diff --git a/reactos/.hgeol b/.hgeol similarity index 100% rename from reactos/.hgeol rename to .hgeol diff --git a/reactos/CMakeLists.txt b/CMakeLists.txt similarity index 100% rename from reactos/CMakeLists.txt rename to CMakeLists.txt diff --git a/reactos/COPYING b/COPYING similarity index 100% rename from reactos/COPYING rename to COPYING diff --git a/reactos/COPYING.ARM b/COPYING.ARM similarity index 100% rename from reactos/COPYING.ARM rename to COPYING.ARM diff --git a/reactos/COPYING.LIB b/COPYING.LIB similarity index 100% rename from reactos/COPYING.LIB rename to COPYING.LIB diff --git a/reactos/COPYING3 b/COPYING3 similarity index 100% rename from reactos/COPYING3 rename to COPYING3 diff --git a/reactos/COPYING3.LIB b/COPYING3.LIB similarity index 100% rename from reactos/COPYING3.LIB rename to COPYING3.LIB diff --git a/reactos/CREDITS b/CREDITS similarity index 100% rename from reactos/CREDITS rename to CREDITS diff --git a/reactos/Doxyfile b/Doxyfile similarity index 100% rename from reactos/Doxyfile rename to Doxyfile diff --git a/reactos/INSTALL b/INSTALL similarity index 100% rename from reactos/INSTALL rename to INSTALL diff --git a/reactos/PreLoad.cmake b/PreLoad.cmake similarity index 100% rename from reactos/PreLoad.cmake rename to PreLoad.cmake diff --git a/reactos/README b/README similarity index 100% rename from reactos/README rename to README diff --git a/reactos/apistatus.lst b/apistatus.lst similarity index 100% rename from reactos/apistatus.lst rename to apistatus.lst diff --git a/reactos/base/CMakeLists.txt b/base/CMakeLists.txt similarity index 100% rename from reactos/base/CMakeLists.txt rename to base/CMakeLists.txt diff --git a/reactos/base/applications/CMakeLists.txt b/base/applications/CMakeLists.txt similarity index 100% rename from reactos/base/applications/CMakeLists.txt rename to base/applications/CMakeLists.txt diff --git a/reactos/base/applications/atactl/CMakeLists.txt b/base/applications/atactl/CMakeLists.txt similarity index 100% rename from reactos/base/applications/atactl/CMakeLists.txt rename to base/applications/atactl/CMakeLists.txt diff --git a/reactos/base/applications/atactl/atactl.cpp b/base/applications/atactl/atactl.cpp similarity index 100% rename from reactos/base/applications/atactl/atactl.cpp rename to base/applications/atactl/atactl.cpp diff --git a/reactos/base/applications/atactl/helper.h b/base/applications/atactl/helper.h similarity index 100% rename from reactos/base/applications/atactl/helper.h rename to base/applications/atactl/helper.h diff --git a/reactos/base/applications/cacls/CMakeLists.txt b/base/applications/cacls/CMakeLists.txt similarity index 100% rename from reactos/base/applications/cacls/CMakeLists.txt rename to base/applications/cacls/CMakeLists.txt diff --git a/reactos/base/applications/cacls/cacls.c b/base/applications/cacls/cacls.c similarity index 100% rename from reactos/base/applications/cacls/cacls.c rename to base/applications/cacls/cacls.c diff --git a/reactos/base/applications/cacls/cacls.rc b/base/applications/cacls/cacls.rc similarity index 100% rename from reactos/base/applications/cacls/cacls.rc rename to base/applications/cacls/cacls.rc diff --git a/reactos/base/applications/cacls/lang/bg-BG.rc b/base/applications/cacls/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/cacls/lang/bg-BG.rc rename to base/applications/cacls/lang/bg-BG.rc diff --git a/reactos/base/applications/cacls/lang/ca-ES.rc b/base/applications/cacls/lang/ca-ES.rc similarity index 100% rename from reactos/base/applications/cacls/lang/ca-ES.rc rename to base/applications/cacls/lang/ca-ES.rc diff --git a/reactos/base/applications/cacls/lang/cs-CZ.rc b/base/applications/cacls/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/cacls/lang/cs-CZ.rc rename to base/applications/cacls/lang/cs-CZ.rc diff --git a/reactos/base/applications/cacls/lang/da-DK.rc b/base/applications/cacls/lang/da-DK.rc similarity index 100% rename from reactos/base/applications/cacls/lang/da-DK.rc rename to base/applications/cacls/lang/da-DK.rc diff --git a/reactos/base/applications/cacls/lang/de-DE.rc b/base/applications/cacls/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/cacls/lang/de-DE.rc rename to base/applications/cacls/lang/de-DE.rc diff --git a/reactos/base/applications/cacls/lang/el-GR.rc b/base/applications/cacls/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/cacls/lang/el-GR.rc rename to base/applications/cacls/lang/el-GR.rc diff --git a/reactos/base/applications/cacls/lang/en-US.rc b/base/applications/cacls/lang/en-US.rc similarity index 100% rename from reactos/base/applications/cacls/lang/en-US.rc rename to base/applications/cacls/lang/en-US.rc diff --git a/reactos/base/applications/cacls/lang/es-ES.rc b/base/applications/cacls/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/cacls/lang/es-ES.rc rename to base/applications/cacls/lang/es-ES.rc diff --git a/reactos/base/applications/cacls/lang/fr-FR.rc b/base/applications/cacls/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/cacls/lang/fr-FR.rc rename to base/applications/cacls/lang/fr-FR.rc diff --git a/reactos/base/applications/cacls/lang/id-ID.rc b/base/applications/cacls/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/cacls/lang/id-ID.rc rename to base/applications/cacls/lang/id-ID.rc diff --git a/reactos/base/applications/cacls/lang/it-IT.rc b/base/applications/cacls/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/cacls/lang/it-IT.rc rename to base/applications/cacls/lang/it-IT.rc diff --git a/reactos/base/applications/cacls/lang/ja-JP.rc b/base/applications/cacls/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/cacls/lang/ja-JP.rc rename to base/applications/cacls/lang/ja-JP.rc diff --git a/reactos/base/applications/cacls/lang/ko-KR.rc b/base/applications/cacls/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/cacls/lang/ko-KR.rc rename to base/applications/cacls/lang/ko-KR.rc diff --git a/reactos/base/applications/cacls/lang/nl-NL.rc b/base/applications/cacls/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/cacls/lang/nl-NL.rc rename to base/applications/cacls/lang/nl-NL.rc diff --git a/reactos/base/applications/cacls/lang/no-NO.rc b/base/applications/cacls/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/cacls/lang/no-NO.rc rename to base/applications/cacls/lang/no-NO.rc diff --git a/reactos/base/applications/cacls/lang/pl-PL.rc b/base/applications/cacls/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/cacls/lang/pl-PL.rc rename to base/applications/cacls/lang/pl-PL.rc diff --git a/reactos/base/applications/cacls/lang/pt-BR.rc b/base/applications/cacls/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/cacls/lang/pt-BR.rc rename to base/applications/cacls/lang/pt-BR.rc diff --git a/reactos/base/applications/cacls/lang/ro-RO.rc b/base/applications/cacls/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/cacls/lang/ro-RO.rc rename to base/applications/cacls/lang/ro-RO.rc diff --git a/reactos/base/applications/cacls/lang/ru-RU.rc b/base/applications/cacls/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/cacls/lang/ru-RU.rc rename to base/applications/cacls/lang/ru-RU.rc diff --git a/reactos/base/applications/cacls/lang/sk-SK.rc b/base/applications/cacls/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/cacls/lang/sk-SK.rc rename to base/applications/cacls/lang/sk-SK.rc diff --git a/reactos/base/applications/cacls/lang/sv-SE.rc b/base/applications/cacls/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/cacls/lang/sv-SE.rc rename to base/applications/cacls/lang/sv-SE.rc diff --git a/reactos/base/applications/cacls/lang/uk-UA.rc b/base/applications/cacls/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/cacls/lang/uk-UA.rc rename to base/applications/cacls/lang/uk-UA.rc diff --git a/reactos/base/applications/cacls/lang/zh-CN.rc b/base/applications/cacls/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/cacls/lang/zh-CN.rc rename to base/applications/cacls/lang/zh-CN.rc diff --git a/reactos/base/applications/cacls/lang/zh-TW.rc b/base/applications/cacls/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/cacls/lang/zh-TW.rc rename to base/applications/cacls/lang/zh-TW.rc diff --git a/reactos/base/applications/cacls/precomp.h b/base/applications/cacls/precomp.h similarity index 100% rename from reactos/base/applications/cacls/precomp.h rename to base/applications/cacls/precomp.h diff --git a/reactos/base/applications/cacls/resource.h b/base/applications/cacls/resource.h similarity index 100% rename from reactos/base/applications/cacls/resource.h rename to base/applications/cacls/resource.h diff --git a/reactos/base/applications/cacls/rsrc.rc b/base/applications/cacls/rsrc.rc similarity index 100% rename from reactos/base/applications/cacls/rsrc.rc rename to base/applications/cacls/rsrc.rc diff --git a/reactos/base/applications/calc/CMakeLists.txt b/base/applications/calc/CMakeLists.txt similarity index 100% rename from reactos/base/applications/calc/CMakeLists.txt rename to base/applications/calc/CMakeLists.txt diff --git a/reactos/base/applications/calc/about.c b/base/applications/calc/about.c similarity index 100% rename from reactos/base/applications/calc/about.c rename to base/applications/calc/about.c diff --git a/reactos/base/applications/calc/calc.h b/base/applications/calc/calc.h similarity index 100% rename from reactos/base/applications/calc/calc.h rename to base/applications/calc/calc.h diff --git a/reactos/base/applications/calc/convert.c b/base/applications/calc/convert.c similarity index 100% rename from reactos/base/applications/calc/convert.c rename to base/applications/calc/convert.c diff --git a/reactos/base/applications/calc/copying.txt b/base/applications/calc/copying.txt similarity index 100% rename from reactos/base/applications/calc/copying.txt rename to base/applications/calc/copying.txt diff --git a/reactos/base/applications/calc/fun_mpfr.c b/base/applications/calc/fun_mpfr.c similarity index 100% rename from reactos/base/applications/calc/fun_mpfr.c rename to base/applications/calc/fun_mpfr.c diff --git a/reactos/base/applications/calc/function.c b/base/applications/calc/function.c similarity index 100% rename from reactos/base/applications/calc/function.c rename to base/applications/calc/function.c diff --git a/reactos/base/applications/calc/help.txt b/base/applications/calc/help.txt similarity index 100% rename from reactos/base/applications/calc/help.txt rename to base/applications/calc/help.txt diff --git a/reactos/base/applications/calc/lang/bg-BG.rc b/base/applications/calc/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/calc/lang/bg-BG.rc rename to base/applications/calc/lang/bg-BG.rc diff --git a/reactos/base/applications/calc/lang/cs-CZ.rc b/base/applications/calc/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/calc/lang/cs-CZ.rc rename to base/applications/calc/lang/cs-CZ.rc diff --git a/reactos/base/applications/calc/lang/de-DE.rc b/base/applications/calc/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/calc/lang/de-DE.rc rename to base/applications/calc/lang/de-DE.rc diff --git a/reactos/base/applications/calc/lang/el-GR.rc b/base/applications/calc/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/calc/lang/el-GR.rc rename to base/applications/calc/lang/el-GR.rc diff --git a/reactos/base/applications/calc/lang/en-US.rc b/base/applications/calc/lang/en-US.rc similarity index 100% rename from reactos/base/applications/calc/lang/en-US.rc rename to base/applications/calc/lang/en-US.rc diff --git a/reactos/base/applications/calc/lang/es-ES.rc b/base/applications/calc/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/calc/lang/es-ES.rc rename to base/applications/calc/lang/es-ES.rc diff --git a/reactos/base/applications/calc/lang/fr-FR.rc b/base/applications/calc/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/calc/lang/fr-FR.rc rename to base/applications/calc/lang/fr-FR.rc diff --git a/reactos/base/applications/calc/lang/hu-HU.rc b/base/applications/calc/lang/hu-HU.rc similarity index 100% rename from reactos/base/applications/calc/lang/hu-HU.rc rename to base/applications/calc/lang/hu-HU.rc diff --git a/reactos/base/applications/calc/lang/it-IT.rc b/base/applications/calc/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/calc/lang/it-IT.rc rename to base/applications/calc/lang/it-IT.rc diff --git a/reactos/base/applications/calc/lang/ja-JP.rc b/base/applications/calc/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/calc/lang/ja-JP.rc rename to base/applications/calc/lang/ja-JP.rc diff --git a/reactos/base/applications/calc/lang/ko-KR.rc b/base/applications/calc/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/calc/lang/ko-KR.rc rename to base/applications/calc/lang/ko-KR.rc diff --git a/reactos/base/applications/calc/lang/nl-NL.rc b/base/applications/calc/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/calc/lang/nl-NL.rc rename to base/applications/calc/lang/nl-NL.rc diff --git a/reactos/base/applications/calc/lang/no-NO.rc b/base/applications/calc/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/calc/lang/no-NO.rc rename to base/applications/calc/lang/no-NO.rc diff --git a/reactos/base/applications/calc/lang/pl-PL.rc b/base/applications/calc/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/calc/lang/pl-PL.rc rename to base/applications/calc/lang/pl-PL.rc diff --git a/reactos/base/applications/calc/lang/pt-BR.rc b/base/applications/calc/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/calc/lang/pt-BR.rc rename to base/applications/calc/lang/pt-BR.rc diff --git a/reactos/base/applications/calc/lang/ro-RO.rc b/base/applications/calc/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/calc/lang/ro-RO.rc rename to base/applications/calc/lang/ro-RO.rc diff --git a/reactos/base/applications/calc/lang/ru-RU.rc b/base/applications/calc/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/calc/lang/ru-RU.rc rename to base/applications/calc/lang/ru-RU.rc diff --git a/reactos/base/applications/calc/lang/sk-SK.rc b/base/applications/calc/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/calc/lang/sk-SK.rc rename to base/applications/calc/lang/sk-SK.rc diff --git a/reactos/base/applications/calc/lang/sv-SE.rc b/base/applications/calc/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/calc/lang/sv-SE.rc rename to base/applications/calc/lang/sv-SE.rc diff --git a/reactos/base/applications/calc/lang/th-TH.rc b/base/applications/calc/lang/th-TH.rc similarity index 100% rename from reactos/base/applications/calc/lang/th-TH.rc rename to base/applications/calc/lang/th-TH.rc diff --git a/reactos/base/applications/calc/lang/uk-UA.rc b/base/applications/calc/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/calc/lang/uk-UA.rc rename to base/applications/calc/lang/uk-UA.rc diff --git a/reactos/base/applications/calc/lang/zh-CN.rc b/base/applications/calc/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/calc/lang/zh-CN.rc rename to base/applications/calc/lang/zh-CN.rc diff --git a/reactos/base/applications/calc/readme.txt b/base/applications/calc/readme.txt similarity index 100% rename from reactos/base/applications/calc/readme.txt rename to base/applications/calc/readme.txt diff --git a/reactos/base/applications/calc/res/ROS_logo.bmp b/base/applications/calc/res/ROS_logo.bmp similarity index 100% rename from reactos/base/applications/calc/res/ROS_logo.bmp rename to base/applications/calc/res/ROS_logo.bmp diff --git a/reactos/base/applications/calc/res/calc.ico b/base/applications/calc/res/calc.ico similarity index 100% rename from reactos/base/applications/calc/res/calc.ico rename to base/applications/calc/res/calc.ico diff --git a/reactos/base/applications/calc/res/calc_sm.ico b/base/applications/calc/res/calc_sm.ico similarity index 100% rename from reactos/base/applications/calc/res/calc_sm.ico rename to base/applications/calc/res/calc_sm.ico diff --git a/reactos/base/applications/calc/resource.h b/base/applications/calc/resource.h similarity index 100% rename from reactos/base/applications/calc/resource.h rename to base/applications/calc/resource.h diff --git a/reactos/base/applications/calc/resource.rc b/base/applications/calc/resource.rc similarity index 100% rename from reactos/base/applications/calc/resource.rc rename to base/applications/calc/resource.rc diff --git a/reactos/base/applications/calc/rpn.c b/base/applications/calc/rpn.c similarity index 100% rename from reactos/base/applications/calc/rpn.c rename to base/applications/calc/rpn.c diff --git a/reactos/base/applications/calc/rpn_mpfr.c b/base/applications/calc/rpn_mpfr.c similarity index 100% rename from reactos/base/applications/calc/rpn_mpfr.c rename to base/applications/calc/rpn_mpfr.c diff --git a/reactos/base/applications/calc/todo.txt b/base/applications/calc/todo.txt similarity index 100% rename from reactos/base/applications/calc/todo.txt rename to base/applications/calc/todo.txt diff --git a/reactos/base/applications/calc/utl.c b/base/applications/calc/utl.c similarity index 100% rename from reactos/base/applications/calc/utl.c rename to base/applications/calc/utl.c diff --git a/reactos/base/applications/calc/utl_mpfr.c b/base/applications/calc/utl_mpfr.c similarity index 100% rename from reactos/base/applications/calc/utl_mpfr.c rename to base/applications/calc/utl_mpfr.c diff --git a/reactos/base/applications/calc/whatsnew.txt b/base/applications/calc/whatsnew.txt similarity index 100% rename from reactos/base/applications/calc/whatsnew.txt rename to base/applications/calc/whatsnew.txt diff --git a/reactos/base/applications/calc/winmain.c b/base/applications/calc/winmain.c similarity index 100% rename from reactos/base/applications/calc/winmain.c rename to base/applications/calc/winmain.c diff --git a/reactos/base/applications/calc/wmmsg.h b/base/applications/calc/wmmsg.h similarity index 100% rename from reactos/base/applications/calc/wmmsg.h rename to base/applications/calc/wmmsg.h diff --git a/reactos/base/applications/charmap/CMakeLists.txt b/base/applications/charmap/CMakeLists.txt similarity index 100% rename from reactos/base/applications/charmap/CMakeLists.txt rename to base/applications/charmap/CMakeLists.txt diff --git a/reactos/base/applications/charmap/about.c b/base/applications/charmap/about.c similarity index 100% rename from reactos/base/applications/charmap/about.c rename to base/applications/charmap/about.c diff --git a/reactos/base/applications/charmap/charmap.c b/base/applications/charmap/charmap.c similarity index 100% rename from reactos/base/applications/charmap/charmap.c rename to base/applications/charmap/charmap.c diff --git a/reactos/base/applications/charmap/charmap.rc b/base/applications/charmap/charmap.rc similarity index 100% rename from reactos/base/applications/charmap/charmap.rc rename to base/applications/charmap/charmap.rc diff --git a/reactos/base/applications/charmap/lang/bg-BG.rc b/base/applications/charmap/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/charmap/lang/bg-BG.rc rename to base/applications/charmap/lang/bg-BG.rc diff --git a/reactos/base/applications/charmap/lang/ca-ES.rc b/base/applications/charmap/lang/ca-ES.rc similarity index 100% rename from reactos/base/applications/charmap/lang/ca-ES.rc rename to base/applications/charmap/lang/ca-ES.rc diff --git a/reactos/base/applications/charmap/lang/cs-CZ.rc b/base/applications/charmap/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/charmap/lang/cs-CZ.rc rename to base/applications/charmap/lang/cs-CZ.rc diff --git a/reactos/base/applications/charmap/lang/de-DE.rc b/base/applications/charmap/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/charmap/lang/de-DE.rc rename to base/applications/charmap/lang/de-DE.rc diff --git a/reactos/base/applications/charmap/lang/el-GR.rc b/base/applications/charmap/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/charmap/lang/el-GR.rc rename to base/applications/charmap/lang/el-GR.rc diff --git a/reactos/base/applications/charmap/lang/en-US.rc b/base/applications/charmap/lang/en-US.rc similarity index 100% rename from reactos/base/applications/charmap/lang/en-US.rc rename to base/applications/charmap/lang/en-US.rc diff --git a/reactos/base/applications/charmap/lang/es-ES.rc b/base/applications/charmap/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/charmap/lang/es-ES.rc rename to base/applications/charmap/lang/es-ES.rc diff --git a/reactos/base/applications/charmap/lang/fr-FR.rc b/base/applications/charmap/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/charmap/lang/fr-FR.rc rename to base/applications/charmap/lang/fr-FR.rc diff --git a/reactos/base/applications/charmap/lang/id-ID.rc b/base/applications/charmap/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/charmap/lang/id-ID.rc rename to base/applications/charmap/lang/id-ID.rc diff --git a/reactos/base/applications/charmap/lang/it-IT.rc b/base/applications/charmap/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/charmap/lang/it-IT.rc rename to base/applications/charmap/lang/it-IT.rc diff --git a/reactos/base/applications/charmap/lang/ja-JP.rc b/base/applications/charmap/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/charmap/lang/ja-JP.rc rename to base/applications/charmap/lang/ja-JP.rc diff --git a/reactos/base/applications/charmap/lang/ko-KR.rc b/base/applications/charmap/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/charmap/lang/ko-KR.rc rename to base/applications/charmap/lang/ko-KR.rc diff --git a/reactos/base/applications/charmap/lang/lt-LT.rc b/base/applications/charmap/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/charmap/lang/lt-LT.rc rename to base/applications/charmap/lang/lt-LT.rc diff --git a/reactos/base/applications/charmap/lang/nl-NL.rc b/base/applications/charmap/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/charmap/lang/nl-NL.rc rename to base/applications/charmap/lang/nl-NL.rc diff --git a/reactos/base/applications/charmap/lang/no-NO.rc b/base/applications/charmap/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/charmap/lang/no-NO.rc rename to base/applications/charmap/lang/no-NO.rc diff --git a/reactos/base/applications/charmap/lang/pl-PL.rc b/base/applications/charmap/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/charmap/lang/pl-PL.rc rename to base/applications/charmap/lang/pl-PL.rc diff --git a/reactos/base/applications/charmap/lang/pt-BR.rc b/base/applications/charmap/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/charmap/lang/pt-BR.rc rename to base/applications/charmap/lang/pt-BR.rc diff --git a/reactos/base/applications/charmap/lang/ro-RO.rc b/base/applications/charmap/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/charmap/lang/ro-RO.rc rename to base/applications/charmap/lang/ro-RO.rc diff --git a/reactos/base/applications/charmap/lang/ru-RU.rc b/base/applications/charmap/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/charmap/lang/ru-RU.rc rename to base/applications/charmap/lang/ru-RU.rc diff --git a/reactos/base/applications/charmap/lang/sk-SK.rc b/base/applications/charmap/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/charmap/lang/sk-SK.rc rename to base/applications/charmap/lang/sk-SK.rc diff --git a/reactos/base/applications/charmap/lang/sv-SE.rc b/base/applications/charmap/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/charmap/lang/sv-SE.rc rename to base/applications/charmap/lang/sv-SE.rc diff --git a/reactos/base/applications/charmap/lang/uk-UA.rc b/base/applications/charmap/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/charmap/lang/uk-UA.rc rename to base/applications/charmap/lang/uk-UA.rc diff --git a/reactos/base/applications/charmap/lang/zh-CN.rc b/base/applications/charmap/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/charmap/lang/zh-CN.rc rename to base/applications/charmap/lang/zh-CN.rc diff --git a/reactos/base/applications/charmap/lang/zh-TW.rc b/base/applications/charmap/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/charmap/lang/zh-TW.rc rename to base/applications/charmap/lang/zh-TW.rc diff --git a/reactos/base/applications/charmap/lrgcell.c b/base/applications/charmap/lrgcell.c similarity index 100% rename from reactos/base/applications/charmap/lrgcell.c rename to base/applications/charmap/lrgcell.c diff --git a/reactos/base/applications/charmap/map.c b/base/applications/charmap/map.c similarity index 100% rename from reactos/base/applications/charmap/map.c rename to base/applications/charmap/map.c diff --git a/reactos/base/applications/charmap/precomp.h b/base/applications/charmap/precomp.h similarity index 100% rename from reactos/base/applications/charmap/precomp.h rename to base/applications/charmap/precomp.h diff --git a/reactos/base/applications/charmap/res/charmap.ico b/base/applications/charmap/res/charmap.ico similarity index 100% rename from reactos/base/applications/charmap/res/charmap.ico rename to base/applications/charmap/res/charmap.ico diff --git a/reactos/base/applications/charmap/resource.h b/base/applications/charmap/resource.h similarity index 100% rename from reactos/base/applications/charmap/resource.h rename to base/applications/charmap/resource.h diff --git a/reactos/base/applications/charmap/rsrc.rc b/base/applications/charmap/rsrc.rc similarity index 100% rename from reactos/base/applications/charmap/rsrc.rc rename to base/applications/charmap/rsrc.rc diff --git a/reactos/base/applications/charmap/settings.c b/base/applications/charmap/settings.c similarity index 100% rename from reactos/base/applications/charmap/settings.c rename to base/applications/charmap/settings.c diff --git a/reactos/base/applications/cmdutils/CMakeLists.txt b/base/applications/cmdutils/CMakeLists.txt similarity index 100% rename from reactos/base/applications/cmdutils/CMakeLists.txt rename to base/applications/cmdutils/CMakeLists.txt diff --git a/reactos/base/applications/cmdutils/dbgprint/CMakeLists.txt b/base/applications/cmdutils/dbgprint/CMakeLists.txt similarity index 100% rename from reactos/base/applications/cmdutils/dbgprint/CMakeLists.txt rename to base/applications/cmdutils/dbgprint/CMakeLists.txt diff --git a/reactos/base/applications/cmdutils/dbgprint/dbgprint.c b/base/applications/cmdutils/dbgprint/dbgprint.c similarity index 100% rename from reactos/base/applications/cmdutils/dbgprint/dbgprint.c rename to base/applications/cmdutils/dbgprint/dbgprint.c diff --git a/reactos/base/applications/cmdutils/doskey/CMakeLists.txt b/base/applications/cmdutils/doskey/CMakeLists.txt similarity index 100% rename from reactos/base/applications/cmdutils/doskey/CMakeLists.txt rename to base/applications/cmdutils/doskey/CMakeLists.txt diff --git a/reactos/base/applications/cmdutils/doskey/doskey.c b/base/applications/cmdutils/doskey/doskey.c similarity index 100% rename from reactos/base/applications/cmdutils/doskey/doskey.c rename to base/applications/cmdutils/doskey/doskey.c diff --git a/reactos/base/applications/cmdutils/doskey/doskey.h b/base/applications/cmdutils/doskey/doskey.h similarity index 100% rename from reactos/base/applications/cmdutils/doskey/doskey.h rename to base/applications/cmdutils/doskey/doskey.h diff --git a/reactos/base/applications/cmdutils/doskey/doskey.rc b/base/applications/cmdutils/doskey/doskey.rc similarity index 100% rename from reactos/base/applications/cmdutils/doskey/doskey.rc rename to base/applications/cmdutils/doskey/doskey.rc diff --git a/reactos/base/applications/cmdutils/doskey/lang/bg-BG.rc b/base/applications/cmdutils/doskey/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/cmdutils/doskey/lang/bg-BG.rc rename to base/applications/cmdutils/doskey/lang/bg-BG.rc diff --git a/reactos/base/applications/cmdutils/doskey/lang/de-DE.rc b/base/applications/cmdutils/doskey/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/cmdutils/doskey/lang/de-DE.rc rename to base/applications/cmdutils/doskey/lang/de-DE.rc diff --git a/reactos/base/applications/cmdutils/doskey/lang/en-US.rc b/base/applications/cmdutils/doskey/lang/en-US.rc similarity index 100% rename from reactos/base/applications/cmdutils/doskey/lang/en-US.rc rename to base/applications/cmdutils/doskey/lang/en-US.rc diff --git a/reactos/base/applications/cmdutils/doskey/lang/es-ES.rc b/base/applications/cmdutils/doskey/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/cmdutils/doskey/lang/es-ES.rc rename to base/applications/cmdutils/doskey/lang/es-ES.rc diff --git a/reactos/base/applications/cmdutils/doskey/lang/fr-FR.rc b/base/applications/cmdutils/doskey/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/cmdutils/doskey/lang/fr-FR.rc rename to base/applications/cmdutils/doskey/lang/fr-FR.rc diff --git a/reactos/base/applications/cmdutils/doskey/lang/pl-PL.rc b/base/applications/cmdutils/doskey/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/cmdutils/doskey/lang/pl-PL.rc rename to base/applications/cmdutils/doskey/lang/pl-PL.rc diff --git a/reactos/base/applications/cmdutils/doskey/lang/ro-RO.rc b/base/applications/cmdutils/doskey/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/cmdutils/doskey/lang/ro-RO.rc rename to base/applications/cmdutils/doskey/lang/ro-RO.rc diff --git a/reactos/base/applications/cmdutils/doskey/lang/sv-SE.rc b/base/applications/cmdutils/doskey/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/cmdutils/doskey/lang/sv-SE.rc rename to base/applications/cmdutils/doskey/lang/sv-SE.rc diff --git a/reactos/base/applications/cmdutils/doskey/lang/uk-UA.rc b/base/applications/cmdutils/doskey/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/cmdutils/doskey/lang/uk-UA.rc rename to base/applications/cmdutils/doskey/lang/uk-UA.rc diff --git a/reactos/base/applications/cmdutils/doskey/lang/zh-CN.rc b/base/applications/cmdutils/doskey/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/cmdutils/doskey/lang/zh-CN.rc rename to base/applications/cmdutils/doskey/lang/zh-CN.rc diff --git a/reactos/base/applications/cmdutils/find/CMakeLists.txt b/base/applications/cmdutils/find/CMakeLists.txt similarity index 100% rename from reactos/base/applications/cmdutils/find/CMakeLists.txt rename to base/applications/cmdutils/find/CMakeLists.txt diff --git a/reactos/base/applications/cmdutils/find/find.c b/base/applications/cmdutils/find/find.c similarity index 100% rename from reactos/base/applications/cmdutils/find/find.c rename to base/applications/cmdutils/find/find.c diff --git a/reactos/base/applications/cmdutils/find/find.rc b/base/applications/cmdutils/find/find.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/find.rc rename to base/applications/cmdutils/find/find.rc diff --git a/reactos/base/applications/cmdutils/find/lang/bg-BG.rc b/base/applications/cmdutils/find/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/bg-BG.rc rename to base/applications/cmdutils/find/lang/bg-BG.rc diff --git a/reactos/base/applications/cmdutils/find/lang/ca-ES.rc b/base/applications/cmdutils/find/lang/ca-ES.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/ca-ES.rc rename to base/applications/cmdutils/find/lang/ca-ES.rc diff --git a/reactos/base/applications/cmdutils/find/lang/cs-CZ.rc b/base/applications/cmdutils/find/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/cs-CZ.rc rename to base/applications/cmdutils/find/lang/cs-CZ.rc diff --git a/reactos/base/applications/cmdutils/find/lang/de-DE.rc b/base/applications/cmdutils/find/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/de-DE.rc rename to base/applications/cmdutils/find/lang/de-DE.rc diff --git a/reactos/base/applications/cmdutils/find/lang/el-GR.rc b/base/applications/cmdutils/find/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/el-GR.rc rename to base/applications/cmdutils/find/lang/el-GR.rc diff --git a/reactos/base/applications/cmdutils/find/lang/en-US.rc b/base/applications/cmdutils/find/lang/en-US.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/en-US.rc rename to base/applications/cmdutils/find/lang/en-US.rc diff --git a/reactos/base/applications/cmdutils/find/lang/es-ES.rc b/base/applications/cmdutils/find/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/es-ES.rc rename to base/applications/cmdutils/find/lang/es-ES.rc diff --git a/reactos/base/applications/cmdutils/find/lang/fr-FR.rc b/base/applications/cmdutils/find/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/fr-FR.rc rename to base/applications/cmdutils/find/lang/fr-FR.rc diff --git a/reactos/base/applications/cmdutils/find/lang/it-IT.rc b/base/applications/cmdutils/find/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/it-IT.rc rename to base/applications/cmdutils/find/lang/it-IT.rc diff --git a/reactos/base/applications/cmdutils/find/lang/lt-LT.rc b/base/applications/cmdutils/find/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/lt-LT.rc rename to base/applications/cmdutils/find/lang/lt-LT.rc diff --git a/reactos/base/applications/cmdutils/find/lang/no-NO.rc b/base/applications/cmdutils/find/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/no-NO.rc rename to base/applications/cmdutils/find/lang/no-NO.rc diff --git a/reactos/base/applications/cmdutils/find/lang/pl-PL.rc b/base/applications/cmdutils/find/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/pl-PL.rc rename to base/applications/cmdutils/find/lang/pl-PL.rc diff --git a/reactos/base/applications/cmdutils/find/lang/pt-BR.rc b/base/applications/cmdutils/find/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/pt-BR.rc rename to base/applications/cmdutils/find/lang/pt-BR.rc diff --git a/reactos/base/applications/cmdutils/find/lang/ro-RO.rc b/base/applications/cmdutils/find/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/ro-RO.rc rename to base/applications/cmdutils/find/lang/ro-RO.rc diff --git a/reactos/base/applications/cmdutils/find/lang/ru-RU.rc b/base/applications/cmdutils/find/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/ru-RU.rc rename to base/applications/cmdutils/find/lang/ru-RU.rc diff --git a/reactos/base/applications/cmdutils/find/lang/sk-SK.rc b/base/applications/cmdutils/find/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/sk-SK.rc rename to base/applications/cmdutils/find/lang/sk-SK.rc diff --git a/reactos/base/applications/cmdutils/find/lang/sv-SE.rc b/base/applications/cmdutils/find/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/sv-SE.rc rename to base/applications/cmdutils/find/lang/sv-SE.rc diff --git a/reactos/base/applications/cmdutils/find/lang/uk-UA.rc b/base/applications/cmdutils/find/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/uk-UA.rc rename to base/applications/cmdutils/find/lang/uk-UA.rc diff --git a/reactos/base/applications/cmdutils/find/lang/zh-CN.rc b/base/applications/cmdutils/find/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/lang/zh-CN.rc rename to base/applications/cmdutils/find/lang/zh-CN.rc diff --git a/reactos/base/applications/cmdutils/find/resource.h b/base/applications/cmdutils/find/resource.h similarity index 100% rename from reactos/base/applications/cmdutils/find/resource.h rename to base/applications/cmdutils/find/resource.h diff --git a/reactos/base/applications/cmdutils/find/rsrc.rc b/base/applications/cmdutils/find/rsrc.rc similarity index 100% rename from reactos/base/applications/cmdutils/find/rsrc.rc rename to base/applications/cmdutils/find/rsrc.rc diff --git a/reactos/base/applications/cmdutils/hostname/CMakeLists.txt b/base/applications/cmdutils/hostname/CMakeLists.txt similarity index 100% rename from reactos/base/applications/cmdutils/hostname/CMakeLists.txt rename to base/applications/cmdutils/hostname/CMakeLists.txt diff --git a/reactos/base/applications/cmdutils/hostname/hostname.c b/base/applications/cmdutils/hostname/hostname.c similarity index 100% rename from reactos/base/applications/cmdutils/hostname/hostname.c rename to base/applications/cmdutils/hostname/hostname.c diff --git a/reactos/base/applications/cmdutils/hostname/hostname.rc b/base/applications/cmdutils/hostname/hostname.rc similarity index 100% rename from reactos/base/applications/cmdutils/hostname/hostname.rc rename to base/applications/cmdutils/hostname/hostname.rc diff --git a/reactos/base/applications/cmdutils/lodctr/CMakeLists.txt b/base/applications/cmdutils/lodctr/CMakeLists.txt similarity index 100% rename from reactos/base/applications/cmdutils/lodctr/CMakeLists.txt rename to base/applications/cmdutils/lodctr/CMakeLists.txt diff --git a/reactos/base/applications/cmdutils/lodctr/lodctr_main.c b/base/applications/cmdutils/lodctr/lodctr_main.c similarity index 100% rename from reactos/base/applications/cmdutils/lodctr/lodctr_main.c rename to base/applications/cmdutils/lodctr/lodctr_main.c diff --git a/reactos/base/applications/cmdutils/more/CMakeLists.txt b/base/applications/cmdutils/more/CMakeLists.txt similarity index 100% rename from reactos/base/applications/cmdutils/more/CMakeLists.txt rename to base/applications/cmdutils/more/CMakeLists.txt diff --git a/reactos/base/applications/cmdutils/more/lang/bg-BG.rc b/base/applications/cmdutils/more/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/bg-BG.rc rename to base/applications/cmdutils/more/lang/bg-BG.rc diff --git a/reactos/base/applications/cmdutils/more/lang/ca-ES.rc b/base/applications/cmdutils/more/lang/ca-ES.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/ca-ES.rc rename to base/applications/cmdutils/more/lang/ca-ES.rc diff --git a/reactos/base/applications/cmdutils/more/lang/cs-CZ.rc b/base/applications/cmdutils/more/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/cs-CZ.rc rename to base/applications/cmdutils/more/lang/cs-CZ.rc diff --git a/reactos/base/applications/cmdutils/more/lang/de-DE.rc b/base/applications/cmdutils/more/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/de-DE.rc rename to base/applications/cmdutils/more/lang/de-DE.rc diff --git a/reactos/base/applications/cmdutils/more/lang/el-GR.rc b/base/applications/cmdutils/more/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/el-GR.rc rename to base/applications/cmdutils/more/lang/el-GR.rc diff --git a/reactos/base/applications/cmdutils/more/lang/en-US.rc b/base/applications/cmdutils/more/lang/en-US.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/en-US.rc rename to base/applications/cmdutils/more/lang/en-US.rc diff --git a/reactos/base/applications/cmdutils/more/lang/es-ES.rc b/base/applications/cmdutils/more/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/es-ES.rc rename to base/applications/cmdutils/more/lang/es-ES.rc diff --git a/reactos/base/applications/cmdutils/more/lang/fr-FR.rc b/base/applications/cmdutils/more/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/fr-FR.rc rename to base/applications/cmdutils/more/lang/fr-FR.rc diff --git a/reactos/base/applications/cmdutils/more/lang/it-IT.rc b/base/applications/cmdutils/more/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/it-IT.rc rename to base/applications/cmdutils/more/lang/it-IT.rc diff --git a/reactos/base/applications/cmdutils/more/lang/lt-LT.rc b/base/applications/cmdutils/more/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/lt-LT.rc rename to base/applications/cmdutils/more/lang/lt-LT.rc diff --git a/reactos/base/applications/cmdutils/more/lang/no-NO.rc b/base/applications/cmdutils/more/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/no-NO.rc rename to base/applications/cmdutils/more/lang/no-NO.rc diff --git a/reactos/base/applications/cmdutils/more/lang/pl-PL.rc b/base/applications/cmdutils/more/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/pl-PL.rc rename to base/applications/cmdutils/more/lang/pl-PL.rc diff --git a/reactos/base/applications/cmdutils/more/lang/ro-RO.rc b/base/applications/cmdutils/more/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/ro-RO.rc rename to base/applications/cmdutils/more/lang/ro-RO.rc diff --git a/reactos/base/applications/cmdutils/more/lang/ru-RU.rc b/base/applications/cmdutils/more/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/ru-RU.rc rename to base/applications/cmdutils/more/lang/ru-RU.rc diff --git a/reactos/base/applications/cmdutils/more/lang/sk-SK.rc b/base/applications/cmdutils/more/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/sk-SK.rc rename to base/applications/cmdutils/more/lang/sk-SK.rc diff --git a/reactos/base/applications/cmdutils/more/lang/sv-SE.rc b/base/applications/cmdutils/more/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/sv-SE.rc rename to base/applications/cmdutils/more/lang/sv-SE.rc diff --git a/reactos/base/applications/cmdutils/more/lang/uk-UA.rc b/base/applications/cmdutils/more/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/uk-UA.rc rename to base/applications/cmdutils/more/lang/uk-UA.rc diff --git a/reactos/base/applications/cmdutils/more/lang/zh-CN.rc b/base/applications/cmdutils/more/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/lang/zh-CN.rc rename to base/applications/cmdutils/more/lang/zh-CN.rc diff --git a/reactos/base/applications/cmdutils/more/more.c b/base/applications/cmdutils/more/more.c similarity index 100% rename from reactos/base/applications/cmdutils/more/more.c rename to base/applications/cmdutils/more/more.c diff --git a/reactos/base/applications/cmdutils/more/more.rc b/base/applications/cmdutils/more/more.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/more.rc rename to base/applications/cmdutils/more/more.rc diff --git a/reactos/base/applications/cmdutils/more/resource.h b/base/applications/cmdutils/more/resource.h similarity index 100% rename from reactos/base/applications/cmdutils/more/resource.h rename to base/applications/cmdutils/more/resource.h diff --git a/reactos/base/applications/cmdutils/more/rsrc.rc b/base/applications/cmdutils/more/rsrc.rc similarity index 100% rename from reactos/base/applications/cmdutils/more/rsrc.rc rename to base/applications/cmdutils/more/rsrc.rc diff --git a/reactos/base/applications/cmdutils/reg/Bg.rc b/base/applications/cmdutils/reg/Bg.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Bg.rc rename to base/applications/cmdutils/reg/Bg.rc diff --git a/reactos/base/applications/cmdutils/reg/CMakeLists.txt b/base/applications/cmdutils/reg/CMakeLists.txt similarity index 100% rename from reactos/base/applications/cmdutils/reg/CMakeLists.txt rename to base/applications/cmdutils/reg/CMakeLists.txt diff --git a/reactos/base/applications/cmdutils/reg/Da.rc b/base/applications/cmdutils/reg/Da.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Da.rc rename to base/applications/cmdutils/reg/Da.rc diff --git a/reactos/base/applications/cmdutils/reg/De.rc b/base/applications/cmdutils/reg/De.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/De.rc rename to base/applications/cmdutils/reg/De.rc diff --git a/reactos/base/applications/cmdutils/reg/En.rc b/base/applications/cmdutils/reg/En.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/En.rc rename to base/applications/cmdutils/reg/En.rc diff --git a/reactos/base/applications/cmdutils/reg/Es.rc b/base/applications/cmdutils/reg/Es.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Es.rc rename to base/applications/cmdutils/reg/Es.rc diff --git a/reactos/base/applications/cmdutils/reg/Fr.rc b/base/applications/cmdutils/reg/Fr.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Fr.rc rename to base/applications/cmdutils/reg/Fr.rc diff --git a/reactos/base/applications/cmdutils/reg/It.rc b/base/applications/cmdutils/reg/It.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/It.rc rename to base/applications/cmdutils/reg/It.rc diff --git a/reactos/base/applications/cmdutils/reg/Ja.rc b/base/applications/cmdutils/reg/Ja.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Ja.rc rename to base/applications/cmdutils/reg/Ja.rc diff --git a/reactos/base/applications/cmdutils/reg/Ko.rc b/base/applications/cmdutils/reg/Ko.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Ko.rc rename to base/applications/cmdutils/reg/Ko.rc diff --git a/reactos/base/applications/cmdutils/reg/Lt.rc b/base/applications/cmdutils/reg/Lt.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Lt.rc rename to base/applications/cmdutils/reg/Lt.rc diff --git a/reactos/base/applications/cmdutils/reg/Nl.rc b/base/applications/cmdutils/reg/Nl.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Nl.rc rename to base/applications/cmdutils/reg/Nl.rc diff --git a/reactos/base/applications/cmdutils/reg/No.rc b/base/applications/cmdutils/reg/No.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/No.rc rename to base/applications/cmdutils/reg/No.rc diff --git a/reactos/base/applications/cmdutils/reg/Pl.rc b/base/applications/cmdutils/reg/Pl.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Pl.rc rename to base/applications/cmdutils/reg/Pl.rc diff --git a/reactos/base/applications/cmdutils/reg/Pt.rc b/base/applications/cmdutils/reg/Pt.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Pt.rc rename to base/applications/cmdutils/reg/Pt.rc diff --git a/reactos/base/applications/cmdutils/reg/Ro.rc b/base/applications/cmdutils/reg/Ro.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Ro.rc rename to base/applications/cmdutils/reg/Ro.rc diff --git a/reactos/base/applications/cmdutils/reg/Ru.rc b/base/applications/cmdutils/reg/Ru.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Ru.rc rename to base/applications/cmdutils/reg/Ru.rc diff --git a/reactos/base/applications/cmdutils/reg/Si.rc b/base/applications/cmdutils/reg/Si.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Si.rc rename to base/applications/cmdutils/reg/Si.rc diff --git a/reactos/base/applications/cmdutils/reg/Sv.rc b/base/applications/cmdutils/reg/Sv.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Sv.rc rename to base/applications/cmdutils/reg/Sv.rc diff --git a/reactos/base/applications/cmdutils/reg/Uk.rc b/base/applications/cmdutils/reg/Uk.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/Uk.rc rename to base/applications/cmdutils/reg/Uk.rc diff --git a/reactos/base/applications/cmdutils/reg/reg.c b/base/applications/cmdutils/reg/reg.c similarity index 100% rename from reactos/base/applications/cmdutils/reg/reg.c rename to base/applications/cmdutils/reg/reg.c diff --git a/reactos/base/applications/cmdutils/reg/reg.h b/base/applications/cmdutils/reg/reg.h similarity index 100% rename from reactos/base/applications/cmdutils/reg/reg.h rename to base/applications/cmdutils/reg/reg.h diff --git a/reactos/base/applications/cmdutils/reg/rsrc.rc b/base/applications/cmdutils/reg/rsrc.rc similarity index 100% rename from reactos/base/applications/cmdutils/reg/rsrc.rc rename to base/applications/cmdutils/reg/rsrc.rc diff --git a/reactos/base/applications/cmdutils/xcopy/CMakeLists.txt b/base/applications/cmdutils/xcopy/CMakeLists.txt similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/CMakeLists.txt rename to base/applications/cmdutils/xcopy/CMakeLists.txt diff --git a/reactos/base/applications/cmdutils/xcopy/Da.rc b/base/applications/cmdutils/xcopy/Da.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Da.rc rename to base/applications/cmdutils/xcopy/Da.rc diff --git a/reactos/base/applications/cmdutils/xcopy/De.rc b/base/applications/cmdutils/xcopy/De.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/De.rc rename to base/applications/cmdutils/xcopy/De.rc diff --git a/reactos/base/applications/cmdutils/xcopy/En.rc b/base/applications/cmdutils/xcopy/En.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/En.rc rename to base/applications/cmdutils/xcopy/En.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Es.rc b/base/applications/cmdutils/xcopy/Es.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Es.rc rename to base/applications/cmdutils/xcopy/Es.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Fr.rc b/base/applications/cmdutils/xcopy/Fr.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Fr.rc rename to base/applications/cmdutils/xcopy/Fr.rc diff --git a/reactos/base/applications/cmdutils/xcopy/It.rc b/base/applications/cmdutils/xcopy/It.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/It.rc rename to base/applications/cmdutils/xcopy/It.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Ja.rc b/base/applications/cmdutils/xcopy/Ja.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Ja.rc rename to base/applications/cmdutils/xcopy/Ja.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Ko.rc b/base/applications/cmdutils/xcopy/Ko.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Ko.rc rename to base/applications/cmdutils/xcopy/Ko.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Lt.rc b/base/applications/cmdutils/xcopy/Lt.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Lt.rc rename to base/applications/cmdutils/xcopy/Lt.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Nl.rc b/base/applications/cmdutils/xcopy/Nl.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Nl.rc rename to base/applications/cmdutils/xcopy/Nl.rc diff --git a/reactos/base/applications/cmdutils/xcopy/No.rc b/base/applications/cmdutils/xcopy/No.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/No.rc rename to base/applications/cmdutils/xcopy/No.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Pl.rc b/base/applications/cmdutils/xcopy/Pl.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Pl.rc rename to base/applications/cmdutils/xcopy/Pl.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Pt.rc b/base/applications/cmdutils/xcopy/Pt.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Pt.rc rename to base/applications/cmdutils/xcopy/Pt.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Ro.rc b/base/applications/cmdutils/xcopy/Ro.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Ro.rc rename to base/applications/cmdutils/xcopy/Ro.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Ru.rc b/base/applications/cmdutils/xcopy/Ru.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Ru.rc rename to base/applications/cmdutils/xcopy/Ru.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Si.rc b/base/applications/cmdutils/xcopy/Si.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Si.rc rename to base/applications/cmdutils/xcopy/Si.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Sr.rc b/base/applications/cmdutils/xcopy/Sr.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Sr.rc rename to base/applications/cmdutils/xcopy/Sr.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Sv.rc b/base/applications/cmdutils/xcopy/Sv.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Sv.rc rename to base/applications/cmdutils/xcopy/Sv.rc diff --git a/reactos/base/applications/cmdutils/xcopy/Uk.rc b/base/applications/cmdutils/xcopy/Uk.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/Uk.rc rename to base/applications/cmdutils/xcopy/Uk.rc diff --git a/reactos/base/applications/cmdutils/xcopy/rsrc.rc b/base/applications/cmdutils/xcopy/rsrc.rc similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/rsrc.rc rename to base/applications/cmdutils/xcopy/rsrc.rc diff --git a/reactos/base/applications/cmdutils/xcopy/xcopy.c b/base/applications/cmdutils/xcopy/xcopy.c similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/xcopy.c rename to base/applications/cmdutils/xcopy/xcopy.c diff --git a/reactos/base/applications/cmdutils/xcopy/xcopy.h b/base/applications/cmdutils/xcopy/xcopy.h similarity index 100% rename from reactos/base/applications/cmdutils/xcopy/xcopy.h rename to base/applications/cmdutils/xcopy/xcopy.h diff --git a/reactos/base/applications/control/CMakeLists.txt b/base/applications/control/CMakeLists.txt similarity index 100% rename from reactos/base/applications/control/CMakeLists.txt rename to base/applications/control/CMakeLists.txt diff --git a/reactos/base/applications/control/control.c b/base/applications/control/control.c similarity index 100% rename from reactos/base/applications/control/control.c rename to base/applications/control/control.c diff --git a/reactos/base/applications/control/control.dsp b/base/applications/control/control.dsp similarity index 100% rename from reactos/base/applications/control/control.dsp rename to base/applications/control/control.dsp diff --git a/reactos/base/applications/control/control.dsw b/base/applications/control/control.dsw similarity index 100% rename from reactos/base/applications/control/control.dsw rename to base/applications/control/control.dsw diff --git a/reactos/base/applications/control/control.h b/base/applications/control/control.h similarity index 100% rename from reactos/base/applications/control/control.h rename to base/applications/control/control.h diff --git a/reactos/base/applications/control/control.rc b/base/applications/control/control.rc similarity index 100% rename from reactos/base/applications/control/control.rc rename to base/applications/control/control.rc diff --git a/reactos/base/applications/control/resource.h b/base/applications/control/resource.h similarity index 100% rename from reactos/base/applications/control/resource.h rename to base/applications/control/resource.h diff --git a/reactos/base/applications/control/resources/config.ico b/base/applications/control/resources/config.ico similarity index 100% rename from reactos/base/applications/control/resources/config.ico rename to base/applications/control/resources/config.ico diff --git a/reactos/base/applications/dxdiag/CMakeLists.txt b/base/applications/dxdiag/CMakeLists.txt similarity index 100% rename from reactos/base/applications/dxdiag/CMakeLists.txt rename to base/applications/dxdiag/CMakeLists.txt diff --git a/reactos/base/applications/dxdiag/d3dtest.c b/base/applications/dxdiag/d3dtest.c similarity index 100% rename from reactos/base/applications/dxdiag/d3dtest.c rename to base/applications/dxdiag/d3dtest.c diff --git a/reactos/base/applications/dxdiag/d3dtest7.c b/base/applications/dxdiag/d3dtest7.c similarity index 100% rename from reactos/base/applications/dxdiag/d3dtest7.c rename to base/applications/dxdiag/d3dtest7.c diff --git a/reactos/base/applications/dxdiag/d3dtest8.c b/base/applications/dxdiag/d3dtest8.c similarity index 100% rename from reactos/base/applications/dxdiag/d3dtest8.c rename to base/applications/dxdiag/d3dtest8.c diff --git a/reactos/base/applications/dxdiag/d3dtest9.c b/base/applications/dxdiag/d3dtest9.c similarity index 100% rename from reactos/base/applications/dxdiag/d3dtest9.c rename to base/applications/dxdiag/d3dtest9.c diff --git a/reactos/base/applications/dxdiag/ddtest.c b/base/applications/dxdiag/ddtest.c similarity index 100% rename from reactos/base/applications/dxdiag/ddtest.c rename to base/applications/dxdiag/ddtest.c diff --git a/reactos/base/applications/dxdiag/display.c b/base/applications/dxdiag/display.c similarity index 100% rename from reactos/base/applications/dxdiag/display.c rename to base/applications/dxdiag/display.c diff --git a/reactos/base/applications/dxdiag/dxdiag.c b/base/applications/dxdiag/dxdiag.c similarity index 100% rename from reactos/base/applications/dxdiag/dxdiag.c rename to base/applications/dxdiag/dxdiag.c diff --git a/reactos/base/applications/dxdiag/dxdiag.rc b/base/applications/dxdiag/dxdiag.rc similarity index 100% rename from reactos/base/applications/dxdiag/dxdiag.rc rename to base/applications/dxdiag/dxdiag.rc diff --git a/reactos/base/applications/dxdiag/help.c b/base/applications/dxdiag/help.c similarity index 100% rename from reactos/base/applications/dxdiag/help.c rename to base/applications/dxdiag/help.c diff --git a/reactos/base/applications/dxdiag/input.c b/base/applications/dxdiag/input.c similarity index 100% rename from reactos/base/applications/dxdiag/input.c rename to base/applications/dxdiag/input.c diff --git a/reactos/base/applications/dxdiag/lang/bg-BG.rc b/base/applications/dxdiag/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/bg-BG.rc rename to base/applications/dxdiag/lang/bg-BG.rc diff --git a/reactos/base/applications/dxdiag/lang/cs-CZ.rc b/base/applications/dxdiag/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/cs-CZ.rc rename to base/applications/dxdiag/lang/cs-CZ.rc diff --git a/reactos/base/applications/dxdiag/lang/de-DE.rc b/base/applications/dxdiag/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/de-DE.rc rename to base/applications/dxdiag/lang/de-DE.rc diff --git a/reactos/base/applications/dxdiag/lang/en-US.rc b/base/applications/dxdiag/lang/en-US.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/en-US.rc rename to base/applications/dxdiag/lang/en-US.rc diff --git a/reactos/base/applications/dxdiag/lang/es-ES.rc b/base/applications/dxdiag/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/es-ES.rc rename to base/applications/dxdiag/lang/es-ES.rc diff --git a/reactos/base/applications/dxdiag/lang/fr-FR.rc b/base/applications/dxdiag/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/fr-FR.rc rename to base/applications/dxdiag/lang/fr-FR.rc diff --git a/reactos/base/applications/dxdiag/lang/ja-JP.rc b/base/applications/dxdiag/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/ja-JP.rc rename to base/applications/dxdiag/lang/ja-JP.rc diff --git a/reactos/base/applications/dxdiag/lang/ko-KR.rc b/base/applications/dxdiag/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/ko-KR.rc rename to base/applications/dxdiag/lang/ko-KR.rc diff --git a/reactos/base/applications/dxdiag/lang/nl-NL.rc b/base/applications/dxdiag/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/nl-NL.rc rename to base/applications/dxdiag/lang/nl-NL.rc diff --git a/reactos/base/applications/dxdiag/lang/no-NO.rc b/base/applications/dxdiag/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/no-NO.rc rename to base/applications/dxdiag/lang/no-NO.rc diff --git a/reactos/base/applications/dxdiag/lang/pl-PL.rc b/base/applications/dxdiag/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/pl-PL.rc rename to base/applications/dxdiag/lang/pl-PL.rc diff --git a/reactos/base/applications/dxdiag/lang/pt-BR.rc b/base/applications/dxdiag/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/pt-BR.rc rename to base/applications/dxdiag/lang/pt-BR.rc diff --git a/reactos/base/applications/dxdiag/lang/ro-RO.rc b/base/applications/dxdiag/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/ro-RO.rc rename to base/applications/dxdiag/lang/ro-RO.rc diff --git a/reactos/base/applications/dxdiag/lang/ru-RU.rc b/base/applications/dxdiag/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/ru-RU.rc rename to base/applications/dxdiag/lang/ru-RU.rc diff --git a/reactos/base/applications/dxdiag/lang/sk-SK.rc b/base/applications/dxdiag/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/sk-SK.rc rename to base/applications/dxdiag/lang/sk-SK.rc diff --git a/reactos/base/applications/dxdiag/lang/sv-SE.rc b/base/applications/dxdiag/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/sv-SE.rc rename to base/applications/dxdiag/lang/sv-SE.rc diff --git a/reactos/base/applications/dxdiag/lang/tr-TR.rc b/base/applications/dxdiag/lang/tr-TR.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/tr-TR.rc rename to base/applications/dxdiag/lang/tr-TR.rc diff --git a/reactos/base/applications/dxdiag/lang/uk-UA.rc b/base/applications/dxdiag/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/uk-UA.rc rename to base/applications/dxdiag/lang/uk-UA.rc diff --git a/reactos/base/applications/dxdiag/lang/zh-CN.rc b/base/applications/dxdiag/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/zh-CN.rc rename to base/applications/dxdiag/lang/zh-CN.rc diff --git a/reactos/base/applications/dxdiag/lang/zh-TW.rc b/base/applications/dxdiag/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/dxdiag/lang/zh-TW.rc rename to base/applications/dxdiag/lang/zh-TW.rc diff --git a/reactos/base/applications/dxdiag/music.c b/base/applications/dxdiag/music.c similarity index 100% rename from reactos/base/applications/dxdiag/music.c rename to base/applications/dxdiag/music.c diff --git a/reactos/base/applications/dxdiag/network.c b/base/applications/dxdiag/network.c similarity index 100% rename from reactos/base/applications/dxdiag/network.c rename to base/applications/dxdiag/network.c diff --git a/reactos/base/applications/dxdiag/precomp.h b/base/applications/dxdiag/precomp.h similarity index 100% rename from reactos/base/applications/dxdiag/precomp.h rename to base/applications/dxdiag/precomp.h diff --git a/reactos/base/applications/dxdiag/res/dxdiag.ico b/base/applications/dxdiag/res/dxdiag.ico similarity index 100% rename from reactos/base/applications/dxdiag/res/dxdiag.ico rename to base/applications/dxdiag/res/dxdiag.ico diff --git a/reactos/base/applications/dxdiag/resource.h b/base/applications/dxdiag/resource.h similarity index 100% rename from reactos/base/applications/dxdiag/resource.h rename to base/applications/dxdiag/resource.h diff --git a/reactos/base/applications/dxdiag/rsrc.rc b/base/applications/dxdiag/rsrc.rc similarity index 100% rename from reactos/base/applications/dxdiag/rsrc.rc rename to base/applications/dxdiag/rsrc.rc diff --git a/reactos/base/applications/dxdiag/sound.c b/base/applications/dxdiag/sound.c similarity index 100% rename from reactos/base/applications/dxdiag/sound.c rename to base/applications/dxdiag/sound.c diff --git a/reactos/base/applications/dxdiag/system.c b/base/applications/dxdiag/system.c similarity index 100% rename from reactos/base/applications/dxdiag/system.c rename to base/applications/dxdiag/system.c diff --git a/reactos/base/applications/extrac32/CMakeLists.txt b/base/applications/extrac32/CMakeLists.txt similarity index 100% rename from reactos/base/applications/extrac32/CMakeLists.txt rename to base/applications/extrac32/CMakeLists.txt diff --git a/reactos/base/applications/extrac32/extrac32.c b/base/applications/extrac32/extrac32.c similarity index 100% rename from reactos/base/applications/extrac32/extrac32.c rename to base/applications/extrac32/extrac32.c diff --git a/reactos/base/applications/findstr/CMakeLists.txt b/base/applications/findstr/CMakeLists.txt similarity index 100% rename from reactos/base/applications/findstr/CMakeLists.txt rename to base/applications/findstr/CMakeLists.txt diff --git a/reactos/base/applications/findstr/findstr.c b/base/applications/findstr/findstr.c similarity index 100% rename from reactos/base/applications/findstr/findstr.c rename to base/applications/findstr/findstr.c diff --git a/reactos/base/applications/findstr/findstr.rc b/base/applications/findstr/findstr.rc similarity index 100% rename from reactos/base/applications/findstr/findstr.rc rename to base/applications/findstr/findstr.rc diff --git a/reactos/base/applications/findstr/lang/bg-BG.rc b/base/applications/findstr/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/findstr/lang/bg-BG.rc rename to base/applications/findstr/lang/bg-BG.rc diff --git a/reactos/base/applications/findstr/lang/ca-ES.rc b/base/applications/findstr/lang/ca-ES.rc similarity index 100% rename from reactos/base/applications/findstr/lang/ca-ES.rc rename to base/applications/findstr/lang/ca-ES.rc diff --git a/reactos/base/applications/findstr/lang/cs-CZ.rc b/base/applications/findstr/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/findstr/lang/cs-CZ.rc rename to base/applications/findstr/lang/cs-CZ.rc diff --git a/reactos/base/applications/findstr/lang/de-DE.rc b/base/applications/findstr/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/findstr/lang/de-DE.rc rename to base/applications/findstr/lang/de-DE.rc diff --git a/reactos/base/applications/findstr/lang/el-GR.rc b/base/applications/findstr/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/findstr/lang/el-GR.rc rename to base/applications/findstr/lang/el-GR.rc diff --git a/reactos/base/applications/findstr/lang/en-US.rc b/base/applications/findstr/lang/en-US.rc similarity index 100% rename from reactos/base/applications/findstr/lang/en-US.rc rename to base/applications/findstr/lang/en-US.rc diff --git a/reactos/base/applications/findstr/lang/es-ES.rc b/base/applications/findstr/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/findstr/lang/es-ES.rc rename to base/applications/findstr/lang/es-ES.rc diff --git a/reactos/base/applications/findstr/lang/fr-FR.rc b/base/applications/findstr/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/findstr/lang/fr-FR.rc rename to base/applications/findstr/lang/fr-FR.rc diff --git a/reactos/base/applications/findstr/lang/it-IT.rc b/base/applications/findstr/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/findstr/lang/it-IT.rc rename to base/applications/findstr/lang/it-IT.rc diff --git a/reactos/base/applications/findstr/lang/lt-LT.rc b/base/applications/findstr/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/findstr/lang/lt-LT.rc rename to base/applications/findstr/lang/lt-LT.rc diff --git a/reactos/base/applications/findstr/lang/no-NO.rc b/base/applications/findstr/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/findstr/lang/no-NO.rc rename to base/applications/findstr/lang/no-NO.rc diff --git a/reactos/base/applications/findstr/lang/pl-PL.rc b/base/applications/findstr/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/findstr/lang/pl-PL.rc rename to base/applications/findstr/lang/pl-PL.rc diff --git a/reactos/base/applications/findstr/lang/pt-BR.rc b/base/applications/findstr/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/findstr/lang/pt-BR.rc rename to base/applications/findstr/lang/pt-BR.rc diff --git a/reactos/base/applications/findstr/lang/ro-RO.rc b/base/applications/findstr/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/findstr/lang/ro-RO.rc rename to base/applications/findstr/lang/ro-RO.rc diff --git a/reactos/base/applications/findstr/lang/ru-RU.rc b/base/applications/findstr/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/findstr/lang/ru-RU.rc rename to base/applications/findstr/lang/ru-RU.rc diff --git a/reactos/base/applications/findstr/lang/sk-SK.rc b/base/applications/findstr/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/findstr/lang/sk-SK.rc rename to base/applications/findstr/lang/sk-SK.rc diff --git a/reactos/base/applications/findstr/lang/sv-SE.rc b/base/applications/findstr/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/findstr/lang/sv-SE.rc rename to base/applications/findstr/lang/sv-SE.rc diff --git a/reactos/base/applications/findstr/lang/uk-UA.rc b/base/applications/findstr/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/findstr/lang/uk-UA.rc rename to base/applications/findstr/lang/uk-UA.rc diff --git a/reactos/base/applications/findstr/lang/zh-CN.rc b/base/applications/findstr/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/findstr/lang/zh-CN.rc rename to base/applications/findstr/lang/zh-CN.rc diff --git a/reactos/base/applications/findstr/lang/zh-TW.rc b/base/applications/findstr/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/findstr/lang/zh-TW.rc rename to base/applications/findstr/lang/zh-TW.rc diff --git a/reactos/base/applications/findstr/resource.h b/base/applications/findstr/resource.h similarity index 100% rename from reactos/base/applications/findstr/resource.h rename to base/applications/findstr/resource.h diff --git a/reactos/base/applications/findstr/rsrc.rc b/base/applications/findstr/rsrc.rc similarity index 100% rename from reactos/base/applications/findstr/rsrc.rc rename to base/applications/findstr/rsrc.rc diff --git a/reactos/base/applications/fontview/CMakeLists.txt b/base/applications/fontview/CMakeLists.txt similarity index 100% rename from reactos/base/applications/fontview/CMakeLists.txt rename to base/applications/fontview/CMakeLists.txt diff --git a/reactos/base/applications/fontview/display.c b/base/applications/fontview/display.c similarity index 100% rename from reactos/base/applications/fontview/display.c rename to base/applications/fontview/display.c diff --git a/reactos/base/applications/fontview/display.h b/base/applications/fontview/display.h similarity index 100% rename from reactos/base/applications/fontview/display.h rename to base/applications/fontview/display.h diff --git a/reactos/base/applications/fontview/fontview.c b/base/applications/fontview/fontview.c similarity index 100% rename from reactos/base/applications/fontview/fontview.c rename to base/applications/fontview/fontview.c diff --git a/reactos/base/applications/fontview/fontview.h b/base/applications/fontview/fontview.h similarity index 100% rename from reactos/base/applications/fontview/fontview.h rename to base/applications/fontview/fontview.h diff --git a/reactos/base/applications/fontview/fontview.rc b/base/applications/fontview/fontview.rc similarity index 100% rename from reactos/base/applications/fontview/fontview.rc rename to base/applications/fontview/fontview.rc diff --git a/reactos/base/applications/fontview/lang/bg-BG.rc b/base/applications/fontview/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/fontview/lang/bg-BG.rc rename to base/applications/fontview/lang/bg-BG.rc diff --git a/reactos/base/applications/fontview/lang/de-DE.rc b/base/applications/fontview/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/fontview/lang/de-DE.rc rename to base/applications/fontview/lang/de-DE.rc diff --git a/reactos/base/applications/fontview/lang/en-US.rc b/base/applications/fontview/lang/en-US.rc similarity index 100% rename from reactos/base/applications/fontview/lang/en-US.rc rename to base/applications/fontview/lang/en-US.rc diff --git a/reactos/base/applications/fontview/lang/es-ES.rc b/base/applications/fontview/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/fontview/lang/es-ES.rc rename to base/applications/fontview/lang/es-ES.rc diff --git a/reactos/base/applications/fontview/lang/fr-FR.rc b/base/applications/fontview/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/fontview/lang/fr-FR.rc rename to base/applications/fontview/lang/fr-FR.rc diff --git a/reactos/base/applications/fontview/lang/lt-LT.rc b/base/applications/fontview/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/fontview/lang/lt-LT.rc rename to base/applications/fontview/lang/lt-LT.rc diff --git a/reactos/base/applications/fontview/lang/no-NO.rc b/base/applications/fontview/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/fontview/lang/no-NO.rc rename to base/applications/fontview/lang/no-NO.rc diff --git a/reactos/base/applications/fontview/lang/pl-PL.rc b/base/applications/fontview/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/fontview/lang/pl-PL.rc rename to base/applications/fontview/lang/pl-PL.rc diff --git a/reactos/base/applications/fontview/lang/pt-BR.rc b/base/applications/fontview/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/fontview/lang/pt-BR.rc rename to base/applications/fontview/lang/pt-BR.rc diff --git a/reactos/base/applications/fontview/lang/ro-RO.rc b/base/applications/fontview/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/fontview/lang/ro-RO.rc rename to base/applications/fontview/lang/ro-RO.rc diff --git a/reactos/base/applications/fontview/lang/ru-RU.rc b/base/applications/fontview/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/fontview/lang/ru-RU.rc rename to base/applications/fontview/lang/ru-RU.rc diff --git a/reactos/base/applications/fontview/lang/sk-SK.rc b/base/applications/fontview/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/fontview/lang/sk-SK.rc rename to base/applications/fontview/lang/sk-SK.rc diff --git a/reactos/base/applications/fontview/lang/sv-SE.rc b/base/applications/fontview/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/fontview/lang/sv-SE.rc rename to base/applications/fontview/lang/sv-SE.rc diff --git a/reactos/base/applications/fontview/lang/uk-UA.rc b/base/applications/fontview/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/fontview/lang/uk-UA.rc rename to base/applications/fontview/lang/uk-UA.rc diff --git a/reactos/base/applications/fontview/lang/zh-CN.rc b/base/applications/fontview/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/fontview/lang/zh-CN.rc rename to base/applications/fontview/lang/zh-CN.rc diff --git a/reactos/base/applications/fontview/lang/zh-TW.rc b/base/applications/fontview/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/fontview/lang/zh-TW.rc rename to base/applications/fontview/lang/zh-TW.rc diff --git a/reactos/base/applications/fontview/resource.h b/base/applications/fontview/resource.h similarity index 100% rename from reactos/base/applications/fontview/resource.h rename to base/applications/fontview/resource.h diff --git a/reactos/base/applications/fontview/ttf.ico b/base/applications/fontview/ttf.ico similarity index 100% rename from reactos/base/applications/fontview/ttf.ico rename to base/applications/fontview/ttf.ico diff --git a/reactos/base/applications/games/CMakeLists.txt b/base/applications/games/CMakeLists.txt similarity index 100% rename from reactos/base/applications/games/CMakeLists.txt rename to base/applications/games/CMakeLists.txt diff --git a/reactos/base/applications/games/solitaire/CMakeLists.txt b/base/applications/games/solitaire/CMakeLists.txt similarity index 100% rename from reactos/base/applications/games/solitaire/CMakeLists.txt rename to base/applications/games/solitaire/CMakeLists.txt diff --git a/reactos/base/applications/games/solitaire/ReadMe.txt b/base/applications/games/solitaire/ReadMe.txt similarity index 100% rename from reactos/base/applications/games/solitaire/ReadMe.txt rename to base/applications/games/solitaire/ReadMe.txt diff --git a/reactos/base/applications/games/solitaire/lang/bg-BG.rc b/base/applications/games/solitaire/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/bg-BG.rc rename to base/applications/games/solitaire/lang/bg-BG.rc diff --git a/reactos/base/applications/games/solitaire/lang/ca-ES.rc b/base/applications/games/solitaire/lang/ca-ES.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/ca-ES.rc rename to base/applications/games/solitaire/lang/ca-ES.rc diff --git a/reactos/base/applications/games/solitaire/lang/cs-CZ.rc b/base/applications/games/solitaire/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/cs-CZ.rc rename to base/applications/games/solitaire/lang/cs-CZ.rc diff --git a/reactos/base/applications/games/solitaire/lang/de-DE.rc b/base/applications/games/solitaire/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/de-DE.rc rename to base/applications/games/solitaire/lang/de-DE.rc diff --git a/reactos/base/applications/games/solitaire/lang/el-GR.rc b/base/applications/games/solitaire/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/el-GR.rc rename to base/applications/games/solitaire/lang/el-GR.rc diff --git a/reactos/base/applications/games/solitaire/lang/en-US.rc b/base/applications/games/solitaire/lang/en-US.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/en-US.rc rename to base/applications/games/solitaire/lang/en-US.rc diff --git a/reactos/base/applications/games/solitaire/lang/es-ES.rc b/base/applications/games/solitaire/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/es-ES.rc rename to base/applications/games/solitaire/lang/es-ES.rc diff --git a/reactos/base/applications/games/solitaire/lang/eu-ES.rc b/base/applications/games/solitaire/lang/eu-ES.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/eu-ES.rc rename to base/applications/games/solitaire/lang/eu-ES.rc diff --git a/reactos/base/applications/games/solitaire/lang/fr-FR.rc b/base/applications/games/solitaire/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/fr-FR.rc rename to base/applications/games/solitaire/lang/fr-FR.rc diff --git a/reactos/base/applications/games/solitaire/lang/hu-HU.rc b/base/applications/games/solitaire/lang/hu-HU.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/hu-HU.rc rename to base/applications/games/solitaire/lang/hu-HU.rc diff --git a/reactos/base/applications/games/solitaire/lang/id-ID.rc b/base/applications/games/solitaire/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/id-ID.rc rename to base/applications/games/solitaire/lang/id-ID.rc diff --git a/reactos/base/applications/games/solitaire/lang/it-IT.rc b/base/applications/games/solitaire/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/it-IT.rc rename to base/applications/games/solitaire/lang/it-IT.rc diff --git a/reactos/base/applications/games/solitaire/lang/ja-JP.rc b/base/applications/games/solitaire/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/ja-JP.rc rename to base/applications/games/solitaire/lang/ja-JP.rc diff --git a/reactos/base/applications/games/solitaire/lang/ko-KR.rc b/base/applications/games/solitaire/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/ko-KR.rc rename to base/applications/games/solitaire/lang/ko-KR.rc diff --git a/reactos/base/applications/games/solitaire/lang/lt-LT.rc b/base/applications/games/solitaire/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/lt-LT.rc rename to base/applications/games/solitaire/lang/lt-LT.rc diff --git a/reactos/base/applications/games/solitaire/lang/nl-NL.rc b/base/applications/games/solitaire/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/nl-NL.rc rename to base/applications/games/solitaire/lang/nl-NL.rc diff --git a/reactos/base/applications/games/solitaire/lang/no-NO.rc b/base/applications/games/solitaire/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/no-NO.rc rename to base/applications/games/solitaire/lang/no-NO.rc diff --git a/reactos/base/applications/games/solitaire/lang/pl-PL.rc b/base/applications/games/solitaire/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/pl-PL.rc rename to base/applications/games/solitaire/lang/pl-PL.rc diff --git a/reactos/base/applications/games/solitaire/lang/ro-RO.rc b/base/applications/games/solitaire/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/ro-RO.rc rename to base/applications/games/solitaire/lang/ro-RO.rc diff --git a/reactos/base/applications/games/solitaire/lang/ru-RU.rc b/base/applications/games/solitaire/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/ru-RU.rc rename to base/applications/games/solitaire/lang/ru-RU.rc diff --git a/reactos/base/applications/games/solitaire/lang/sk-SK.rc b/base/applications/games/solitaire/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/sk-SK.rc rename to base/applications/games/solitaire/lang/sk-SK.rc diff --git a/reactos/base/applications/games/solitaire/lang/sv-SE.rc b/base/applications/games/solitaire/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/sv-SE.rc rename to base/applications/games/solitaire/lang/sv-SE.rc diff --git a/reactos/base/applications/games/solitaire/lang/th-TH.rc b/base/applications/games/solitaire/lang/th-TH.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/th-TH.rc rename to base/applications/games/solitaire/lang/th-TH.rc diff --git a/reactos/base/applications/games/solitaire/lang/uk-UA.rc b/base/applications/games/solitaire/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/uk-UA.rc rename to base/applications/games/solitaire/lang/uk-UA.rc diff --git a/reactos/base/applications/games/solitaire/lang/zh-CN.rc b/base/applications/games/solitaire/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/zh-CN.rc rename to base/applications/games/solitaire/lang/zh-CN.rc diff --git a/reactos/base/applications/games/solitaire/lang/zh-TW.rc b/base/applications/games/solitaire/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/games/solitaire/lang/zh-TW.rc rename to base/applications/games/solitaire/lang/zh-TW.rc diff --git a/reactos/base/applications/games/solitaire/resource.h b/base/applications/games/solitaire/resource.h similarity index 100% rename from reactos/base/applications/games/solitaire/resource.h rename to base/applications/games/solitaire/resource.h diff --git a/reactos/base/applications/games/solitaire/rsrc.rc b/base/applications/games/solitaire/rsrc.rc similarity index 100% rename from reactos/base/applications/games/solitaire/rsrc.rc rename to base/applications/games/solitaire/rsrc.rc diff --git a/reactos/base/applications/games/solitaire/solcreate.cpp b/base/applications/games/solitaire/solcreate.cpp similarity index 100% rename from reactos/base/applications/games/solitaire/solcreate.cpp rename to base/applications/games/solitaire/solcreate.cpp diff --git a/reactos/base/applications/games/solitaire/solgame.cpp b/base/applications/games/solitaire/solgame.cpp similarity index 100% rename from reactos/base/applications/games/solitaire/solgame.cpp rename to base/applications/games/solitaire/solgame.cpp diff --git a/reactos/base/applications/games/solitaire/solitaire.cpp b/base/applications/games/solitaire/solitaire.cpp similarity index 100% rename from reactos/base/applications/games/solitaire/solitaire.cpp rename to base/applications/games/solitaire/solitaire.cpp diff --git a/reactos/base/applications/games/solitaire/solitaire.h b/base/applications/games/solitaire/solitaire.h similarity index 100% rename from reactos/base/applications/games/solitaire/solitaire.h rename to base/applications/games/solitaire/solitaire.h diff --git a/reactos/base/applications/games/solitaire/solitaire.ico b/base/applications/games/solitaire/solitaire.ico similarity index 100% rename from reactos/base/applications/games/solitaire/solitaire.ico rename to base/applications/games/solitaire/solitaire.ico diff --git a/reactos/base/applications/games/spider/CMakeLists.txt b/base/applications/games/spider/CMakeLists.txt similarity index 100% rename from reactos/base/applications/games/spider/CMakeLists.txt rename to base/applications/games/spider/CMakeLists.txt diff --git a/reactos/base/applications/games/spider/lang/bg-BG.rc b/base/applications/games/spider/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/bg-BG.rc rename to base/applications/games/spider/lang/bg-BG.rc diff --git a/reactos/base/applications/games/spider/lang/de-DE.rc b/base/applications/games/spider/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/de-DE.rc rename to base/applications/games/spider/lang/de-DE.rc diff --git a/reactos/base/applications/games/spider/lang/en-US.rc b/base/applications/games/spider/lang/en-US.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/en-US.rc rename to base/applications/games/spider/lang/en-US.rc diff --git a/reactos/base/applications/games/spider/lang/es-ES.rc b/base/applications/games/spider/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/es-ES.rc rename to base/applications/games/spider/lang/es-ES.rc diff --git a/reactos/base/applications/games/spider/lang/fr-FR.rc b/base/applications/games/spider/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/fr-FR.rc rename to base/applications/games/spider/lang/fr-FR.rc diff --git a/reactos/base/applications/games/spider/lang/hu-HU.rc b/base/applications/games/spider/lang/hu-HU.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/hu-HU.rc rename to base/applications/games/spider/lang/hu-HU.rc diff --git a/reactos/base/applications/games/spider/lang/it-IT.rc b/base/applications/games/spider/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/it-IT.rc rename to base/applications/games/spider/lang/it-IT.rc diff --git a/reactos/base/applications/games/spider/lang/ja-JP.rc b/base/applications/games/spider/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/ja-JP.rc rename to base/applications/games/spider/lang/ja-JP.rc diff --git a/reactos/base/applications/games/spider/lang/nl-NL.rc b/base/applications/games/spider/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/nl-NL.rc rename to base/applications/games/spider/lang/nl-NL.rc diff --git a/reactos/base/applications/games/spider/lang/pl-PL.rc b/base/applications/games/spider/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/pl-PL.rc rename to base/applications/games/spider/lang/pl-PL.rc diff --git a/reactos/base/applications/games/spider/lang/pt-BR.rc b/base/applications/games/spider/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/pt-BR.rc rename to base/applications/games/spider/lang/pt-BR.rc diff --git a/reactos/base/applications/games/spider/lang/ro-RO.rc b/base/applications/games/spider/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/ro-RO.rc rename to base/applications/games/spider/lang/ro-RO.rc diff --git a/reactos/base/applications/games/spider/lang/ru-RU.rc b/base/applications/games/spider/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/ru-RU.rc rename to base/applications/games/spider/lang/ru-RU.rc diff --git a/reactos/base/applications/games/spider/lang/sk-SK.rc b/base/applications/games/spider/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/sk-SK.rc rename to base/applications/games/spider/lang/sk-SK.rc diff --git a/reactos/base/applications/games/spider/lang/sv-SE.rc b/base/applications/games/spider/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/sv-SE.rc rename to base/applications/games/spider/lang/sv-SE.rc diff --git a/reactos/base/applications/games/spider/lang/uk-UA.rc b/base/applications/games/spider/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/uk-UA.rc rename to base/applications/games/spider/lang/uk-UA.rc diff --git a/reactos/base/applications/games/spider/lang/zh-CN.rc b/base/applications/games/spider/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/zh-CN.rc rename to base/applications/games/spider/lang/zh-CN.rc diff --git a/reactos/base/applications/games/spider/lang/zh-TW.rc b/base/applications/games/spider/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/games/spider/lang/zh-TW.rc rename to base/applications/games/spider/lang/zh-TW.rc diff --git a/reactos/base/applications/games/spider/resource.h b/base/applications/games/spider/resource.h similarity index 100% rename from reactos/base/applications/games/spider/resource.h rename to base/applications/games/spider/resource.h diff --git a/reactos/base/applications/games/spider/rsrc.rc b/base/applications/games/spider/rsrc.rc similarity index 100% rename from reactos/base/applications/games/spider/rsrc.rc rename to base/applications/games/spider/rsrc.rc diff --git a/reactos/base/applications/games/spider/spider.cpp b/base/applications/games/spider/spider.cpp similarity index 100% rename from reactos/base/applications/games/spider/spider.cpp rename to base/applications/games/spider/spider.cpp diff --git a/reactos/base/applications/games/spider/spider.h b/base/applications/games/spider/spider.h similarity index 100% rename from reactos/base/applications/games/spider/spider.h rename to base/applications/games/spider/spider.h diff --git a/reactos/base/applications/games/spider/spider.ico b/base/applications/games/spider/spider.ico similarity index 100% rename from reactos/base/applications/games/spider/spider.ico rename to base/applications/games/spider/spider.ico diff --git a/reactos/base/applications/games/spider/spigame.cpp b/base/applications/games/spider/spigame.cpp similarity index 100% rename from reactos/base/applications/games/spider/spigame.cpp rename to base/applications/games/spider/spigame.cpp diff --git a/reactos/base/applications/games/winmine/CMakeLists.txt b/base/applications/games/winmine/CMakeLists.txt similarity index 100% rename from reactos/base/applications/games/winmine/CMakeLists.txt rename to base/applications/games/winmine/CMakeLists.txt diff --git a/reactos/base/applications/games/winmine/dialog.c b/base/applications/games/winmine/dialog.c similarity index 100% rename from reactos/base/applications/games/winmine/dialog.c rename to base/applications/games/winmine/dialog.c diff --git a/reactos/base/applications/games/winmine/lang/bg-BG.rc b/base/applications/games/winmine/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/bg-BG.rc rename to base/applications/games/winmine/lang/bg-BG.rc diff --git a/reactos/base/applications/games/winmine/lang/cs-CZ.rc b/base/applications/games/winmine/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/cs-CZ.rc rename to base/applications/games/winmine/lang/cs-CZ.rc diff --git a/reactos/base/applications/games/winmine/lang/da-DK.rc b/base/applications/games/winmine/lang/da-DK.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/da-DK.rc rename to base/applications/games/winmine/lang/da-DK.rc diff --git a/reactos/base/applications/games/winmine/lang/de-DE.rc b/base/applications/games/winmine/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/de-DE.rc rename to base/applications/games/winmine/lang/de-DE.rc diff --git a/reactos/base/applications/games/winmine/lang/en-US.rc b/base/applications/games/winmine/lang/en-US.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/en-US.rc rename to base/applications/games/winmine/lang/en-US.rc diff --git a/reactos/base/applications/games/winmine/lang/es-ES.rc b/base/applications/games/winmine/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/es-ES.rc rename to base/applications/games/winmine/lang/es-ES.rc diff --git a/reactos/base/applications/games/winmine/lang/fi-FI.rc b/base/applications/games/winmine/lang/fi-FI.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/fi-FI.rc rename to base/applications/games/winmine/lang/fi-FI.rc diff --git a/reactos/base/applications/games/winmine/lang/fr-FR.rc b/base/applications/games/winmine/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/fr-FR.rc rename to base/applications/games/winmine/lang/fr-FR.rc diff --git a/reactos/base/applications/games/winmine/lang/it-IT.rc b/base/applications/games/winmine/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/it-IT.rc rename to base/applications/games/winmine/lang/it-IT.rc diff --git a/reactos/base/applications/games/winmine/lang/ja-JP.rc b/base/applications/games/winmine/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/ja-JP.rc rename to base/applications/games/winmine/lang/ja-JP.rc diff --git a/reactos/base/applications/games/winmine/lang/ko-KR.rc b/base/applications/games/winmine/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/ko-KR.rc rename to base/applications/games/winmine/lang/ko-KR.rc diff --git a/reactos/base/applications/games/winmine/lang/lt-LT.rc b/base/applications/games/winmine/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/lt-LT.rc rename to base/applications/games/winmine/lang/lt-LT.rc diff --git a/reactos/base/applications/games/winmine/lang/nl-NL.rc b/base/applications/games/winmine/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/nl-NL.rc rename to base/applications/games/winmine/lang/nl-NL.rc diff --git a/reactos/base/applications/games/winmine/lang/no-NO.rc b/base/applications/games/winmine/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/no-NO.rc rename to base/applications/games/winmine/lang/no-NO.rc diff --git a/reactos/base/applications/games/winmine/lang/pl-PL.rc b/base/applications/games/winmine/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/pl-PL.rc rename to base/applications/games/winmine/lang/pl-PL.rc diff --git a/reactos/base/applications/games/winmine/lang/pt-PT.rc b/base/applications/games/winmine/lang/pt-PT.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/pt-PT.rc rename to base/applications/games/winmine/lang/pt-PT.rc diff --git a/reactos/base/applications/games/winmine/lang/ro-RO.rc b/base/applications/games/winmine/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/ro-RO.rc rename to base/applications/games/winmine/lang/ro-RO.rc diff --git a/reactos/base/applications/games/winmine/lang/ru-RU.rc b/base/applications/games/winmine/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/ru-RU.rc rename to base/applications/games/winmine/lang/ru-RU.rc diff --git a/reactos/base/applications/games/winmine/lang/sl-SI.rc b/base/applications/games/winmine/lang/sl-SI.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/sl-SI.rc rename to base/applications/games/winmine/lang/sl-SI.rc diff --git a/reactos/base/applications/games/winmine/lang/sv-SE.rc b/base/applications/games/winmine/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/sv-SE.rc rename to base/applications/games/winmine/lang/sv-SE.rc diff --git a/reactos/base/applications/games/winmine/lang/tr-TR.rc b/base/applications/games/winmine/lang/tr-TR.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/tr-TR.rc rename to base/applications/games/winmine/lang/tr-TR.rc diff --git a/reactos/base/applications/games/winmine/lang/uk-UA.rc b/base/applications/games/winmine/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/uk-UA.rc rename to base/applications/games/winmine/lang/uk-UA.rc diff --git a/reactos/base/applications/games/winmine/lang/zh-CN.rc b/base/applications/games/winmine/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/zh-CN.rc rename to base/applications/games/winmine/lang/zh-CN.rc diff --git a/reactos/base/applications/games/winmine/lang/zh-TW.rc b/base/applications/games/winmine/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/games/winmine/lang/zh-TW.rc rename to base/applications/games/winmine/lang/zh-TW.rc diff --git a/reactos/base/applications/games/winmine/main.c b/base/applications/games/winmine/main.c similarity index 100% rename from reactos/base/applications/games/winmine/main.c rename to base/applications/games/winmine/main.c diff --git a/reactos/base/applications/games/winmine/main.h b/base/applications/games/winmine/main.h similarity index 100% rename from reactos/base/applications/games/winmine/main.h rename to base/applications/games/winmine/main.h diff --git a/reactos/base/applications/games/winmine/rc/faces.bmp b/base/applications/games/winmine/rc/faces.bmp similarity index 100% rename from reactos/base/applications/games/winmine/rc/faces.bmp rename to base/applications/games/winmine/rc/faces.bmp diff --git a/reactos/base/applications/games/winmine/rc/leds.bmp b/base/applications/games/winmine/rc/leds.bmp similarity index 100% rename from reactos/base/applications/games/winmine/rc/leds.bmp rename to base/applications/games/winmine/rc/leds.bmp diff --git a/reactos/base/applications/games/winmine/rc/mines.bmp b/base/applications/games/winmine/rc/mines.bmp similarity index 100% rename from reactos/base/applications/games/winmine/rc/mines.bmp rename to base/applications/games/winmine/rc/mines.bmp diff --git a/reactos/base/applications/games/winmine/rc/winemine.ico b/base/applications/games/winmine/rc/winemine.ico similarity index 100% rename from reactos/base/applications/games/winmine/rc/winemine.ico rename to base/applications/games/winmine/rc/winemine.ico diff --git a/reactos/base/applications/games/winmine/resource.h b/base/applications/games/winmine/resource.h similarity index 100% rename from reactos/base/applications/games/winmine/resource.h rename to base/applications/games/winmine/resource.h diff --git a/reactos/base/applications/games/winmine/rsrc.rc b/base/applications/games/winmine/rsrc.rc similarity index 100% rename from reactos/base/applications/games/winmine/rsrc.rc rename to base/applications/games/winmine/rsrc.rc diff --git a/reactos/base/applications/hh/CMakeLists.txt b/base/applications/hh/CMakeLists.txt similarity index 100% rename from reactos/base/applications/hh/CMakeLists.txt rename to base/applications/hh/CMakeLists.txt diff --git a/reactos/base/applications/hh/hh.ico b/base/applications/hh/hh.ico similarity index 100% rename from reactos/base/applications/hh/hh.ico rename to base/applications/hh/hh.ico diff --git a/reactos/base/applications/hh/hh.rc b/base/applications/hh/hh.rc similarity index 100% rename from reactos/base/applications/hh/hh.rc rename to base/applications/hh/hh.rc diff --git a/reactos/base/applications/hh/main.c b/base/applications/hh/main.c similarity index 100% rename from reactos/base/applications/hh/main.c rename to base/applications/hh/main.c diff --git a/reactos/base/applications/iexplore/CMakeLists.txt b/base/applications/iexplore/CMakeLists.txt similarity index 100% rename from reactos/base/applications/iexplore/CMakeLists.txt rename to base/applications/iexplore/CMakeLists.txt diff --git a/reactos/base/applications/iexplore/iexplore.ico b/base/applications/iexplore/iexplore.ico similarity index 100% rename from reactos/base/applications/iexplore/iexplore.ico rename to base/applications/iexplore/iexplore.ico diff --git a/reactos/base/applications/iexplore/iexplore.rc b/base/applications/iexplore/iexplore.rc similarity index 100% rename from reactos/base/applications/iexplore/iexplore.rc rename to base/applications/iexplore/iexplore.rc diff --git a/reactos/base/applications/iexplore/main.c b/base/applications/iexplore/main.c similarity index 100% rename from reactos/base/applications/iexplore/main.c rename to base/applications/iexplore/main.c diff --git a/reactos/base/applications/kbswitch/CMakeLists.txt b/base/applications/kbswitch/CMakeLists.txt similarity index 100% rename from reactos/base/applications/kbswitch/CMakeLists.txt rename to base/applications/kbswitch/CMakeLists.txt diff --git a/reactos/base/applications/kbswitch/kbsdll/CMakeLists.txt b/base/applications/kbswitch/kbsdll/CMakeLists.txt similarity index 100% rename from reactos/base/applications/kbswitch/kbsdll/CMakeLists.txt rename to base/applications/kbswitch/kbsdll/CMakeLists.txt diff --git a/reactos/base/applications/kbswitch/kbsdll/kbsdll.c b/base/applications/kbswitch/kbsdll/kbsdll.c similarity index 100% rename from reactos/base/applications/kbswitch/kbsdll/kbsdll.c rename to base/applications/kbswitch/kbsdll/kbsdll.c diff --git a/reactos/base/applications/kbswitch/kbsdll/kbsdll.rc b/base/applications/kbswitch/kbsdll/kbsdll.rc similarity index 100% rename from reactos/base/applications/kbswitch/kbsdll/kbsdll.rc rename to base/applications/kbswitch/kbsdll/kbsdll.rc diff --git a/reactos/base/applications/kbswitch/kbsdll/kbsdll.spec b/base/applications/kbswitch/kbsdll/kbsdll.spec similarity index 100% rename from reactos/base/applications/kbswitch/kbsdll/kbsdll.spec rename to base/applications/kbswitch/kbsdll/kbsdll.spec diff --git a/reactos/base/applications/kbswitch/kbswitch.c b/base/applications/kbswitch/kbswitch.c similarity index 100% rename from reactos/base/applications/kbswitch/kbswitch.c rename to base/applications/kbswitch/kbswitch.c diff --git a/reactos/base/applications/kbswitch/kbswitch.h b/base/applications/kbswitch/kbswitch.h similarity index 100% rename from reactos/base/applications/kbswitch/kbswitch.h rename to base/applications/kbswitch/kbswitch.h diff --git a/reactos/base/applications/kbswitch/kbswitch.rc b/base/applications/kbswitch/kbswitch.rc similarity index 100% rename from reactos/base/applications/kbswitch/kbswitch.rc rename to base/applications/kbswitch/kbswitch.rc diff --git a/reactos/base/applications/kbswitch/lang/bg-BG.rc b/base/applications/kbswitch/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/bg-BG.rc rename to base/applications/kbswitch/lang/bg-BG.rc diff --git a/reactos/base/applications/kbswitch/lang/cs-CZ.rc b/base/applications/kbswitch/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/cs-CZ.rc rename to base/applications/kbswitch/lang/cs-CZ.rc diff --git a/reactos/base/applications/kbswitch/lang/de-DE.rc b/base/applications/kbswitch/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/de-DE.rc rename to base/applications/kbswitch/lang/de-DE.rc diff --git a/reactos/base/applications/kbswitch/lang/en-US.rc b/base/applications/kbswitch/lang/en-US.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/en-US.rc rename to base/applications/kbswitch/lang/en-US.rc diff --git a/reactos/base/applications/kbswitch/lang/es-ES.rc b/base/applications/kbswitch/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/es-ES.rc rename to base/applications/kbswitch/lang/es-ES.rc diff --git a/reactos/base/applications/kbswitch/lang/fr-FR.rc b/base/applications/kbswitch/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/fr-FR.rc rename to base/applications/kbswitch/lang/fr-FR.rc diff --git a/reactos/base/applications/kbswitch/lang/it-IT.rc b/base/applications/kbswitch/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/it-IT.rc rename to base/applications/kbswitch/lang/it-IT.rc diff --git a/reactos/base/applications/kbswitch/lang/ja-JP.rc b/base/applications/kbswitch/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/ja-JP.rc rename to base/applications/kbswitch/lang/ja-JP.rc diff --git a/reactos/base/applications/kbswitch/lang/lt-LT.rc b/base/applications/kbswitch/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/lt-LT.rc rename to base/applications/kbswitch/lang/lt-LT.rc diff --git a/reactos/base/applications/kbswitch/lang/no-NO.rc b/base/applications/kbswitch/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/no-NO.rc rename to base/applications/kbswitch/lang/no-NO.rc diff --git a/reactos/base/applications/kbswitch/lang/pl-PL.rc b/base/applications/kbswitch/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/pl-PL.rc rename to base/applications/kbswitch/lang/pl-PL.rc diff --git a/reactos/base/applications/kbswitch/lang/pt-BR.rc b/base/applications/kbswitch/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/pt-BR.rc rename to base/applications/kbswitch/lang/pt-BR.rc diff --git a/reactos/base/applications/kbswitch/lang/ro-RO.rc b/base/applications/kbswitch/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/ro-RO.rc rename to base/applications/kbswitch/lang/ro-RO.rc diff --git a/reactos/base/applications/kbswitch/lang/ru-RU.rc b/base/applications/kbswitch/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/ru-RU.rc rename to base/applications/kbswitch/lang/ru-RU.rc diff --git a/reactos/base/applications/kbswitch/lang/sk-SK.rc b/base/applications/kbswitch/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/sk-SK.rc rename to base/applications/kbswitch/lang/sk-SK.rc diff --git a/reactos/base/applications/kbswitch/lang/sv-SE.rc b/base/applications/kbswitch/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/sv-SE.rc rename to base/applications/kbswitch/lang/sv-SE.rc diff --git a/reactos/base/applications/kbswitch/lang/uk-UA.rc b/base/applications/kbswitch/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/uk-UA.rc rename to base/applications/kbswitch/lang/uk-UA.rc diff --git a/reactos/base/applications/kbswitch/lang/zh-CN.rc b/base/applications/kbswitch/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/zh-CN.rc rename to base/applications/kbswitch/lang/zh-CN.rc diff --git a/reactos/base/applications/kbswitch/lang/zh-TW.rc b/base/applications/kbswitch/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/kbswitch/lang/zh-TW.rc rename to base/applications/kbswitch/lang/zh-TW.rc diff --git a/reactos/base/applications/kbswitch/res/kbswitch.ico b/base/applications/kbswitch/res/kbswitch.ico similarity index 100% rename from reactos/base/applications/kbswitch/res/kbswitch.ico rename to base/applications/kbswitch/res/kbswitch.ico diff --git a/reactos/base/applications/kbswitch/resource.h b/base/applications/kbswitch/resource.h similarity index 100% rename from reactos/base/applications/kbswitch/resource.h rename to base/applications/kbswitch/resource.h diff --git a/reactos/base/applications/kbswitch/rsrc.rc b/base/applications/kbswitch/rsrc.rc similarity index 100% rename from reactos/base/applications/kbswitch/rsrc.rc rename to base/applications/kbswitch/rsrc.rc diff --git a/reactos/base/applications/logoff/CMakeLists.txt b/base/applications/logoff/CMakeLists.txt similarity index 100% rename from reactos/base/applications/logoff/CMakeLists.txt rename to base/applications/logoff/CMakeLists.txt diff --git a/reactos/base/applications/logoff/lang/bg-BG.rc b/base/applications/logoff/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/logoff/lang/bg-BG.rc rename to base/applications/logoff/lang/bg-BG.rc diff --git a/reactos/base/applications/logoff/lang/ca-ES.rc b/base/applications/logoff/lang/ca-ES.rc similarity index 100% rename from reactos/base/applications/logoff/lang/ca-ES.rc rename to base/applications/logoff/lang/ca-ES.rc diff --git a/reactos/base/applications/logoff/lang/cs-CZ.rc b/base/applications/logoff/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/logoff/lang/cs-CZ.rc rename to base/applications/logoff/lang/cs-CZ.rc diff --git a/reactos/base/applications/logoff/lang/de-DE.rc b/base/applications/logoff/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/logoff/lang/de-DE.rc rename to base/applications/logoff/lang/de-DE.rc diff --git a/reactos/base/applications/logoff/lang/el-GR.rc b/base/applications/logoff/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/logoff/lang/el-GR.rc rename to base/applications/logoff/lang/el-GR.rc diff --git a/reactos/base/applications/logoff/lang/en-US.rc b/base/applications/logoff/lang/en-US.rc similarity index 100% rename from reactos/base/applications/logoff/lang/en-US.rc rename to base/applications/logoff/lang/en-US.rc diff --git a/reactos/base/applications/logoff/lang/es-ES.rc b/base/applications/logoff/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/logoff/lang/es-ES.rc rename to base/applications/logoff/lang/es-ES.rc diff --git a/reactos/base/applications/logoff/lang/fr-FR.rc b/base/applications/logoff/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/logoff/lang/fr-FR.rc rename to base/applications/logoff/lang/fr-FR.rc diff --git a/reactos/base/applications/logoff/lang/it-IT.rc b/base/applications/logoff/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/logoff/lang/it-IT.rc rename to base/applications/logoff/lang/it-IT.rc diff --git a/reactos/base/applications/logoff/lang/ja-JP.rc b/base/applications/logoff/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/logoff/lang/ja-JP.rc rename to base/applications/logoff/lang/ja-JP.rc diff --git a/reactos/base/applications/logoff/lang/ko-KR.rc b/base/applications/logoff/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/logoff/lang/ko-KR.rc rename to base/applications/logoff/lang/ko-KR.rc diff --git a/reactos/base/applications/logoff/lang/lt-LT.rc b/base/applications/logoff/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/logoff/lang/lt-LT.rc rename to base/applications/logoff/lang/lt-LT.rc diff --git a/reactos/base/applications/logoff/lang/no-NO.rc b/base/applications/logoff/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/logoff/lang/no-NO.rc rename to base/applications/logoff/lang/no-NO.rc diff --git a/reactos/base/applications/logoff/lang/pl-PL.rc b/base/applications/logoff/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/logoff/lang/pl-PL.rc rename to base/applications/logoff/lang/pl-PL.rc diff --git a/reactos/base/applications/logoff/lang/pt-BR.rc b/base/applications/logoff/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/logoff/lang/pt-BR.rc rename to base/applications/logoff/lang/pt-BR.rc diff --git a/reactos/base/applications/logoff/lang/ro-RO.rc b/base/applications/logoff/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/logoff/lang/ro-RO.rc rename to base/applications/logoff/lang/ro-RO.rc diff --git a/reactos/base/applications/logoff/lang/ru-RU.rc b/base/applications/logoff/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/logoff/lang/ru-RU.rc rename to base/applications/logoff/lang/ru-RU.rc diff --git a/reactos/base/applications/logoff/lang/sk-SK.rc b/base/applications/logoff/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/logoff/lang/sk-SK.rc rename to base/applications/logoff/lang/sk-SK.rc diff --git a/reactos/base/applications/logoff/lang/sv-SE.rc b/base/applications/logoff/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/logoff/lang/sv-SE.rc rename to base/applications/logoff/lang/sv-SE.rc diff --git a/reactos/base/applications/logoff/lang/uk-UA.rc b/base/applications/logoff/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/logoff/lang/uk-UA.rc rename to base/applications/logoff/lang/uk-UA.rc diff --git a/reactos/base/applications/logoff/lang/zh-CN.rc b/base/applications/logoff/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/logoff/lang/zh-CN.rc rename to base/applications/logoff/lang/zh-CN.rc diff --git a/reactos/base/applications/logoff/lang/zh-TW.rc b/base/applications/logoff/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/logoff/lang/zh-TW.rc rename to base/applications/logoff/lang/zh-TW.rc diff --git a/reactos/base/applications/logoff/logoff.c b/base/applications/logoff/logoff.c similarity index 100% rename from reactos/base/applications/logoff/logoff.c rename to base/applications/logoff/logoff.c diff --git a/reactos/base/applications/logoff/logoff.rc b/base/applications/logoff/logoff.rc similarity index 100% rename from reactos/base/applications/logoff/logoff.rc rename to base/applications/logoff/logoff.rc diff --git a/reactos/base/applications/logoff/misc.c b/base/applications/logoff/misc.c similarity index 100% rename from reactos/base/applications/logoff/misc.c rename to base/applications/logoff/misc.c diff --git a/reactos/base/applications/logoff/precomp.h b/base/applications/logoff/precomp.h similarity index 100% rename from reactos/base/applications/logoff/precomp.h rename to base/applications/logoff/precomp.h diff --git a/reactos/base/applications/logoff/resource.h b/base/applications/logoff/resource.h similarity index 100% rename from reactos/base/applications/logoff/resource.h rename to base/applications/logoff/resource.h diff --git a/reactos/base/applications/logoff/rsrc.rc b/base/applications/logoff/rsrc.rc similarity index 100% rename from reactos/base/applications/logoff/rsrc.rc rename to base/applications/logoff/rsrc.rc diff --git a/reactos/base/applications/magnify/CMakeLists.txt b/base/applications/magnify/CMakeLists.txt similarity index 100% rename from reactos/base/applications/magnify/CMakeLists.txt rename to base/applications/magnify/CMakeLists.txt diff --git a/reactos/base/applications/magnify/lang/bg-BG.rc b/base/applications/magnify/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/magnify/lang/bg-BG.rc rename to base/applications/magnify/lang/bg-BG.rc diff --git a/reactos/base/applications/magnify/lang/de-DE.rc b/base/applications/magnify/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/magnify/lang/de-DE.rc rename to base/applications/magnify/lang/de-DE.rc diff --git a/reactos/base/applications/magnify/lang/en-US.rc b/base/applications/magnify/lang/en-US.rc similarity index 100% rename from reactos/base/applications/magnify/lang/en-US.rc rename to base/applications/magnify/lang/en-US.rc diff --git a/reactos/base/applications/magnify/lang/es-ES.rc b/base/applications/magnify/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/magnify/lang/es-ES.rc rename to base/applications/magnify/lang/es-ES.rc diff --git a/reactos/base/applications/magnify/lang/fr-FR.rc b/base/applications/magnify/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/magnify/lang/fr-FR.rc rename to base/applications/magnify/lang/fr-FR.rc diff --git a/reactos/base/applications/magnify/lang/it-IT.rc b/base/applications/magnify/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/magnify/lang/it-IT.rc rename to base/applications/magnify/lang/it-IT.rc diff --git a/reactos/base/applications/magnify/lang/ja-JP.rc b/base/applications/magnify/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/magnify/lang/ja-JP.rc rename to base/applications/magnify/lang/ja-JP.rc diff --git a/reactos/base/applications/magnify/lang/no-NO.rc b/base/applications/magnify/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/magnify/lang/no-NO.rc rename to base/applications/magnify/lang/no-NO.rc diff --git a/reactos/base/applications/magnify/lang/pl-PL.rc b/base/applications/magnify/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/magnify/lang/pl-PL.rc rename to base/applications/magnify/lang/pl-PL.rc diff --git a/reactos/base/applications/magnify/lang/pt-BR.rc b/base/applications/magnify/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/magnify/lang/pt-BR.rc rename to base/applications/magnify/lang/pt-BR.rc diff --git a/reactos/base/applications/magnify/lang/ro-RO.rc b/base/applications/magnify/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/magnify/lang/ro-RO.rc rename to base/applications/magnify/lang/ro-RO.rc diff --git a/reactos/base/applications/magnify/lang/ru-RU.rc b/base/applications/magnify/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/magnify/lang/ru-RU.rc rename to base/applications/magnify/lang/ru-RU.rc diff --git a/reactos/base/applications/magnify/lang/sk-SK.rc b/base/applications/magnify/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/magnify/lang/sk-SK.rc rename to base/applications/magnify/lang/sk-SK.rc diff --git a/reactos/base/applications/magnify/lang/sv-SE.rc b/base/applications/magnify/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/magnify/lang/sv-SE.rc rename to base/applications/magnify/lang/sv-SE.rc diff --git a/reactos/base/applications/magnify/lang/uk-UA.rc b/base/applications/magnify/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/magnify/lang/uk-UA.rc rename to base/applications/magnify/lang/uk-UA.rc diff --git a/reactos/base/applications/magnify/lang/zh-CN.rc b/base/applications/magnify/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/magnify/lang/zh-CN.rc rename to base/applications/magnify/lang/zh-CN.rc diff --git a/reactos/base/applications/magnify/lang/zh-TW.rc b/base/applications/magnify/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/magnify/lang/zh-TW.rc rename to base/applications/magnify/lang/zh-TW.rc diff --git a/reactos/base/applications/magnify/magnifier.c b/base/applications/magnify/magnifier.c similarity index 100% rename from reactos/base/applications/magnify/magnifier.c rename to base/applications/magnify/magnifier.c diff --git a/reactos/base/applications/magnify/magnifier.h b/base/applications/magnify/magnifier.h similarity index 100% rename from reactos/base/applications/magnify/magnifier.h rename to base/applications/magnify/magnifier.h diff --git a/reactos/base/applications/magnify/magnify.rc b/base/applications/magnify/magnify.rc similarity index 100% rename from reactos/base/applications/magnify/magnify.rc rename to base/applications/magnify/magnify.rc diff --git a/reactos/base/applications/magnify/res/magnify.ico b/base/applications/magnify/res/magnify.ico similarity index 100% rename from reactos/base/applications/magnify/res/magnify.ico rename to base/applications/magnify/res/magnify.ico diff --git a/reactos/base/applications/magnify/resource.h b/base/applications/magnify/resource.h similarity index 100% rename from reactos/base/applications/magnify/resource.h rename to base/applications/magnify/resource.h diff --git a/reactos/base/applications/magnify/rsrc.rc b/base/applications/magnify/rsrc.rc similarity index 100% rename from reactos/base/applications/magnify/rsrc.rc rename to base/applications/magnify/rsrc.rc diff --git a/reactos/base/applications/magnify/settings.c b/base/applications/magnify/settings.c similarity index 100% rename from reactos/base/applications/magnify/settings.c rename to base/applications/magnify/settings.c diff --git a/reactos/base/applications/mmc/CMakeLists.txt b/base/applications/mmc/CMakeLists.txt similarity index 100% rename from reactos/base/applications/mmc/CMakeLists.txt rename to base/applications/mmc/CMakeLists.txt diff --git a/reactos/base/applications/mmc/console.c b/base/applications/mmc/console.c similarity index 100% rename from reactos/base/applications/mmc/console.c rename to base/applications/mmc/console.c diff --git a/reactos/base/applications/mmc/lang/bg-BG.rc b/base/applications/mmc/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/mmc/lang/bg-BG.rc rename to base/applications/mmc/lang/bg-BG.rc diff --git a/reactos/base/applications/mmc/lang/ca-ES.rc b/base/applications/mmc/lang/ca-ES.rc similarity index 100% rename from reactos/base/applications/mmc/lang/ca-ES.rc rename to base/applications/mmc/lang/ca-ES.rc diff --git a/reactos/base/applications/mmc/lang/cs-CZ.rc b/base/applications/mmc/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/mmc/lang/cs-CZ.rc rename to base/applications/mmc/lang/cs-CZ.rc diff --git a/reactos/base/applications/mmc/lang/de-DE.rc b/base/applications/mmc/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/mmc/lang/de-DE.rc rename to base/applications/mmc/lang/de-DE.rc diff --git a/reactos/base/applications/mmc/lang/el-GR.rc b/base/applications/mmc/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/mmc/lang/el-GR.rc rename to base/applications/mmc/lang/el-GR.rc diff --git a/reactos/base/applications/mmc/lang/en-US.rc b/base/applications/mmc/lang/en-US.rc similarity index 100% rename from reactos/base/applications/mmc/lang/en-US.rc rename to base/applications/mmc/lang/en-US.rc diff --git a/reactos/base/applications/mmc/lang/es-ES.rc b/base/applications/mmc/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/mmc/lang/es-ES.rc rename to base/applications/mmc/lang/es-ES.rc diff --git a/reactos/base/applications/mmc/lang/fr-FR.rc b/base/applications/mmc/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/mmc/lang/fr-FR.rc rename to base/applications/mmc/lang/fr-FR.rc diff --git a/reactos/base/applications/mmc/lang/it-IT.rc b/base/applications/mmc/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/mmc/lang/it-IT.rc rename to base/applications/mmc/lang/it-IT.rc diff --git a/reactos/base/applications/mmc/lang/ko-KR.rc b/base/applications/mmc/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/mmc/lang/ko-KR.rc rename to base/applications/mmc/lang/ko-KR.rc diff --git a/reactos/base/applications/mmc/lang/lt-LT.rc b/base/applications/mmc/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/mmc/lang/lt-LT.rc rename to base/applications/mmc/lang/lt-LT.rc diff --git a/reactos/base/applications/mmc/lang/no-NO.rc b/base/applications/mmc/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/mmc/lang/no-NO.rc rename to base/applications/mmc/lang/no-NO.rc diff --git a/reactos/base/applications/mmc/lang/pl-PL.rc b/base/applications/mmc/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/mmc/lang/pl-PL.rc rename to base/applications/mmc/lang/pl-PL.rc diff --git a/reactos/base/applications/mmc/lang/pt-BR.rc b/base/applications/mmc/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/mmc/lang/pt-BR.rc rename to base/applications/mmc/lang/pt-BR.rc diff --git a/reactos/base/applications/mmc/lang/ro-RO.rc b/base/applications/mmc/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/mmc/lang/ro-RO.rc rename to base/applications/mmc/lang/ro-RO.rc diff --git a/reactos/base/applications/mmc/lang/ru-RU.rc b/base/applications/mmc/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/mmc/lang/ru-RU.rc rename to base/applications/mmc/lang/ru-RU.rc diff --git a/reactos/base/applications/mmc/lang/sk-SK.rc b/base/applications/mmc/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/mmc/lang/sk-SK.rc rename to base/applications/mmc/lang/sk-SK.rc diff --git a/reactos/base/applications/mmc/lang/sv-SE.rc b/base/applications/mmc/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/mmc/lang/sv-SE.rc rename to base/applications/mmc/lang/sv-SE.rc diff --git a/reactos/base/applications/mmc/lang/uk-UA.rc b/base/applications/mmc/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/mmc/lang/uk-UA.rc rename to base/applications/mmc/lang/uk-UA.rc diff --git a/reactos/base/applications/mmc/lang/zh-CN.rc b/base/applications/mmc/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/mmc/lang/zh-CN.rc rename to base/applications/mmc/lang/zh-CN.rc diff --git a/reactos/base/applications/mmc/lang/zh-TW.rc b/base/applications/mmc/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/mmc/lang/zh-TW.rc rename to base/applications/mmc/lang/zh-TW.rc diff --git a/reactos/base/applications/mmc/misc.c b/base/applications/mmc/misc.c similarity index 100% rename from reactos/base/applications/mmc/misc.c rename to base/applications/mmc/misc.c diff --git a/reactos/base/applications/mmc/mmc.c b/base/applications/mmc/mmc.c similarity index 100% rename from reactos/base/applications/mmc/mmc.c rename to base/applications/mmc/mmc.c diff --git a/reactos/base/applications/mmc/mmc.rc b/base/applications/mmc/mmc.rc similarity index 100% rename from reactos/base/applications/mmc/mmc.rc rename to base/applications/mmc/mmc.rc diff --git a/reactos/base/applications/mmc/precomp.h b/base/applications/mmc/precomp.h similarity index 100% rename from reactos/base/applications/mmc/precomp.h rename to base/applications/mmc/precomp.h diff --git a/reactos/base/applications/mmc/resource.h b/base/applications/mmc/resource.h similarity index 100% rename from reactos/base/applications/mmc/resource.h rename to base/applications/mmc/resource.h diff --git a/reactos/base/applications/mmc/resources/mmc.ico b/base/applications/mmc/resources/mmc.ico similarity index 100% rename from reactos/base/applications/mmc/resources/mmc.ico rename to base/applications/mmc/resources/mmc.ico diff --git a/reactos/base/applications/mmc/rsrc.rc b/base/applications/mmc/rsrc.rc similarity index 100% rename from reactos/base/applications/mmc/rsrc.rc rename to base/applications/mmc/rsrc.rc diff --git a/reactos/base/applications/mplay32/CMakeLists.txt b/base/applications/mplay32/CMakeLists.txt similarity index 100% rename from reactos/base/applications/mplay32/CMakeLists.txt rename to base/applications/mplay32/CMakeLists.txt diff --git a/reactos/base/applications/mplay32/lang/bg-BG.rc b/base/applications/mplay32/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/bg-BG.rc rename to base/applications/mplay32/lang/bg-BG.rc diff --git a/reactos/base/applications/mplay32/lang/cs-CZ.rc b/base/applications/mplay32/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/cs-CZ.rc rename to base/applications/mplay32/lang/cs-CZ.rc diff --git a/reactos/base/applications/mplay32/lang/de-DE.rc b/base/applications/mplay32/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/de-DE.rc rename to base/applications/mplay32/lang/de-DE.rc diff --git a/reactos/base/applications/mplay32/lang/en-US.rc b/base/applications/mplay32/lang/en-US.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/en-US.rc rename to base/applications/mplay32/lang/en-US.rc diff --git a/reactos/base/applications/mplay32/lang/es-ES.rc b/base/applications/mplay32/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/es-ES.rc rename to base/applications/mplay32/lang/es-ES.rc diff --git a/reactos/base/applications/mplay32/lang/fr-FR.rc b/base/applications/mplay32/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/fr-FR.rc rename to base/applications/mplay32/lang/fr-FR.rc diff --git a/reactos/base/applications/mplay32/lang/it-IT.rc b/base/applications/mplay32/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/it-IT.rc rename to base/applications/mplay32/lang/it-IT.rc diff --git a/reactos/base/applications/mplay32/lang/ja-JP.rc b/base/applications/mplay32/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/ja-JP.rc rename to base/applications/mplay32/lang/ja-JP.rc diff --git a/reactos/base/applications/mplay32/lang/nl-NL.rc b/base/applications/mplay32/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/nl-NL.rc rename to base/applications/mplay32/lang/nl-NL.rc diff --git a/reactos/base/applications/mplay32/lang/no-NO.rc b/base/applications/mplay32/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/no-NO.rc rename to base/applications/mplay32/lang/no-NO.rc diff --git a/reactos/base/applications/mplay32/lang/pl-PL.rc b/base/applications/mplay32/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/pl-PL.rc rename to base/applications/mplay32/lang/pl-PL.rc diff --git a/reactos/base/applications/mplay32/lang/pt-BR.rc b/base/applications/mplay32/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/pt-BR.rc rename to base/applications/mplay32/lang/pt-BR.rc diff --git a/reactos/base/applications/mplay32/lang/ro-RO.rc b/base/applications/mplay32/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/ro-RO.rc rename to base/applications/mplay32/lang/ro-RO.rc diff --git a/reactos/base/applications/mplay32/lang/ru-RU.rc b/base/applications/mplay32/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/ru-RU.rc rename to base/applications/mplay32/lang/ru-RU.rc diff --git a/reactos/base/applications/mplay32/lang/sk-SK.rc b/base/applications/mplay32/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/sk-SK.rc rename to base/applications/mplay32/lang/sk-SK.rc diff --git a/reactos/base/applications/mplay32/lang/sv-SE.rc b/base/applications/mplay32/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/sv-SE.rc rename to base/applications/mplay32/lang/sv-SE.rc diff --git a/reactos/base/applications/mplay32/lang/uk-UA.rc b/base/applications/mplay32/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/uk-UA.rc rename to base/applications/mplay32/lang/uk-UA.rc diff --git a/reactos/base/applications/mplay32/lang/zh-CN.rc b/base/applications/mplay32/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/zh-CN.rc rename to base/applications/mplay32/lang/zh-CN.rc diff --git a/reactos/base/applications/mplay32/lang/zh-TW.rc b/base/applications/mplay32/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/mplay32/lang/zh-TW.rc rename to base/applications/mplay32/lang/zh-TW.rc diff --git a/reactos/base/applications/mplay32/mplay32.c b/base/applications/mplay32/mplay32.c similarity index 100% rename from reactos/base/applications/mplay32/mplay32.c rename to base/applications/mplay32/mplay32.c diff --git a/reactos/base/applications/mplay32/mplay32.h b/base/applications/mplay32/mplay32.h similarity index 100% rename from reactos/base/applications/mplay32/mplay32.h rename to base/applications/mplay32/mplay32.h diff --git a/reactos/base/applications/mplay32/mplay32.rc b/base/applications/mplay32/mplay32.rc similarity index 100% rename from reactos/base/applications/mplay32/mplay32.rc rename to base/applications/mplay32/mplay32.rc diff --git a/reactos/base/applications/mplay32/resource.h b/base/applications/mplay32/resource.h similarity index 100% rename from reactos/base/applications/mplay32/resource.h rename to base/applications/mplay32/resource.h diff --git a/reactos/base/applications/mplay32/resources/backward.bmp b/base/applications/mplay32/resources/backward.bmp similarity index 100% rename from reactos/base/applications/mplay32/resources/backward.bmp rename to base/applications/mplay32/resources/backward.bmp diff --git a/reactos/base/applications/mplay32/resources/eject.bmp b/base/applications/mplay32/resources/eject.bmp similarity index 100% rename from reactos/base/applications/mplay32/resources/eject.bmp rename to base/applications/mplay32/resources/eject.bmp diff --git a/reactos/base/applications/mplay32/resources/forward.bmp b/base/applications/mplay32/resources/forward.bmp similarity index 100% rename from reactos/base/applications/mplay32/resources/forward.bmp rename to base/applications/mplay32/resources/forward.bmp diff --git a/reactos/base/applications/mplay32/resources/mplay32.ico b/base/applications/mplay32/resources/mplay32.ico similarity index 100% rename from reactos/base/applications/mplay32/resources/mplay32.ico rename to base/applications/mplay32/resources/mplay32.ico diff --git a/reactos/base/applications/mplay32/resources/pause.bmp b/base/applications/mplay32/resources/pause.bmp similarity index 100% rename from reactos/base/applications/mplay32/resources/pause.bmp rename to base/applications/mplay32/resources/pause.bmp diff --git a/reactos/base/applications/mplay32/resources/play.bmp b/base/applications/mplay32/resources/play.bmp similarity index 100% rename from reactos/base/applications/mplay32/resources/play.bmp rename to base/applications/mplay32/resources/play.bmp diff --git a/reactos/base/applications/mplay32/resources/seekback.bmp b/base/applications/mplay32/resources/seekback.bmp similarity index 100% rename from reactos/base/applications/mplay32/resources/seekback.bmp rename to base/applications/mplay32/resources/seekback.bmp diff --git a/reactos/base/applications/mplay32/resources/seekforw.bmp b/base/applications/mplay32/resources/seekforw.bmp similarity index 100% rename from reactos/base/applications/mplay32/resources/seekforw.bmp rename to base/applications/mplay32/resources/seekforw.bmp diff --git a/reactos/base/applications/mplay32/resources/stop.bmp b/base/applications/mplay32/resources/stop.bmp similarity index 100% rename from reactos/base/applications/mplay32/resources/stop.bmp rename to base/applications/mplay32/resources/stop.bmp diff --git a/reactos/base/applications/mplay32/rsrc.rc b/base/applications/mplay32/rsrc.rc similarity index 100% rename from reactos/base/applications/mplay32/rsrc.rc rename to base/applications/mplay32/rsrc.rc diff --git a/reactos/base/applications/msconfig/CMakeLists.txt b/base/applications/msconfig/CMakeLists.txt similarity index 100% rename from reactos/base/applications/msconfig/CMakeLists.txt rename to base/applications/msconfig/CMakeLists.txt diff --git a/reactos/base/applications/msconfig/freeldrpage.c b/base/applications/msconfig/freeldrpage.c similarity index 100% rename from reactos/base/applications/msconfig/freeldrpage.c rename to base/applications/msconfig/freeldrpage.c diff --git a/reactos/base/applications/msconfig/freeldrpage.h b/base/applications/msconfig/freeldrpage.h similarity index 100% rename from reactos/base/applications/msconfig/freeldrpage.h rename to base/applications/msconfig/freeldrpage.h diff --git a/reactos/base/applications/msconfig/generalpage.c b/base/applications/msconfig/generalpage.c similarity index 100% rename from reactos/base/applications/msconfig/generalpage.c rename to base/applications/msconfig/generalpage.c diff --git a/reactos/base/applications/msconfig/generalpage.h b/base/applications/msconfig/generalpage.h similarity index 100% rename from reactos/base/applications/msconfig/generalpage.h rename to base/applications/msconfig/generalpage.h diff --git a/reactos/base/applications/msconfig/lang/bg-BG.rc b/base/applications/msconfig/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/bg-BG.rc rename to base/applications/msconfig/lang/bg-BG.rc diff --git a/reactos/base/applications/msconfig/lang/ca-ES.rc b/base/applications/msconfig/lang/ca-ES.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/ca-ES.rc rename to base/applications/msconfig/lang/ca-ES.rc diff --git a/reactos/base/applications/msconfig/lang/cs-CZ.rc b/base/applications/msconfig/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/cs-CZ.rc rename to base/applications/msconfig/lang/cs-CZ.rc diff --git a/reactos/base/applications/msconfig/lang/de-DE.rc b/base/applications/msconfig/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/de-DE.rc rename to base/applications/msconfig/lang/de-DE.rc diff --git a/reactos/base/applications/msconfig/lang/el-GR.rc b/base/applications/msconfig/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/el-GR.rc rename to base/applications/msconfig/lang/el-GR.rc diff --git a/reactos/base/applications/msconfig/lang/en-US.rc b/base/applications/msconfig/lang/en-US.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/en-US.rc rename to base/applications/msconfig/lang/en-US.rc diff --git a/reactos/base/applications/msconfig/lang/es-ES.rc b/base/applications/msconfig/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/es-ES.rc rename to base/applications/msconfig/lang/es-ES.rc diff --git a/reactos/base/applications/msconfig/lang/fr-FR.rc b/base/applications/msconfig/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/fr-FR.rc rename to base/applications/msconfig/lang/fr-FR.rc diff --git a/reactos/base/applications/msconfig/lang/hu-HU.rc b/base/applications/msconfig/lang/hu-HU.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/hu-HU.rc rename to base/applications/msconfig/lang/hu-HU.rc diff --git a/reactos/base/applications/msconfig/lang/id-ID.rc b/base/applications/msconfig/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/id-ID.rc rename to base/applications/msconfig/lang/id-ID.rc diff --git a/reactos/base/applications/msconfig/lang/it-IT.rc b/base/applications/msconfig/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/it-IT.rc rename to base/applications/msconfig/lang/it-IT.rc diff --git a/reactos/base/applications/msconfig/lang/ko-KR.rc b/base/applications/msconfig/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/ko-KR.rc rename to base/applications/msconfig/lang/ko-KR.rc diff --git a/reactos/base/applications/msconfig/lang/nl-NL.rc b/base/applications/msconfig/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/nl-NL.rc rename to base/applications/msconfig/lang/nl-NL.rc diff --git a/reactos/base/applications/msconfig/lang/no-NO.rc b/base/applications/msconfig/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/no-NO.rc rename to base/applications/msconfig/lang/no-NO.rc diff --git a/reactos/base/applications/msconfig/lang/pl-PL.rc b/base/applications/msconfig/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/pl-PL.rc rename to base/applications/msconfig/lang/pl-PL.rc diff --git a/reactos/base/applications/msconfig/lang/pt-BR.rc b/base/applications/msconfig/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/pt-BR.rc rename to base/applications/msconfig/lang/pt-BR.rc diff --git a/reactos/base/applications/msconfig/lang/ro-RO.rc b/base/applications/msconfig/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/ro-RO.rc rename to base/applications/msconfig/lang/ro-RO.rc diff --git a/reactos/base/applications/msconfig/lang/ru-RU.rc b/base/applications/msconfig/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/ru-RU.rc rename to base/applications/msconfig/lang/ru-RU.rc diff --git a/reactos/base/applications/msconfig/lang/sk-SK.rc b/base/applications/msconfig/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/sk-SK.rc rename to base/applications/msconfig/lang/sk-SK.rc diff --git a/reactos/base/applications/msconfig/lang/sv-SE.rc b/base/applications/msconfig/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/sv-SE.rc rename to base/applications/msconfig/lang/sv-SE.rc diff --git a/reactos/base/applications/msconfig/lang/th-TH.rc b/base/applications/msconfig/lang/th-TH.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/th-TH.rc rename to base/applications/msconfig/lang/th-TH.rc diff --git a/reactos/base/applications/msconfig/lang/uk-UA.rc b/base/applications/msconfig/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/uk-UA.rc rename to base/applications/msconfig/lang/uk-UA.rc diff --git a/reactos/base/applications/msconfig/lang/zh-CN.rc b/base/applications/msconfig/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/zh-CN.rc rename to base/applications/msconfig/lang/zh-CN.rc diff --git a/reactos/base/applications/msconfig/lang/zh-TW.rc b/base/applications/msconfig/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/msconfig/lang/zh-TW.rc rename to base/applications/msconfig/lang/zh-TW.rc diff --git a/reactos/base/applications/msconfig/msconfig.c b/base/applications/msconfig/msconfig.c similarity index 100% rename from reactos/base/applications/msconfig/msconfig.c rename to base/applications/msconfig/msconfig.c diff --git a/reactos/base/applications/msconfig/msconfig.h b/base/applications/msconfig/msconfig.h similarity index 100% rename from reactos/base/applications/msconfig/msconfig.h rename to base/applications/msconfig/msconfig.h diff --git a/reactos/base/applications/msconfig/msconfig.rc b/base/applications/msconfig/msconfig.rc similarity index 100% rename from reactos/base/applications/msconfig/msconfig.rc rename to base/applications/msconfig/msconfig.rc diff --git a/reactos/base/applications/msconfig/precomp.h b/base/applications/msconfig/precomp.h similarity index 100% rename from reactos/base/applications/msconfig/precomp.h rename to base/applications/msconfig/precomp.h diff --git a/reactos/base/applications/msconfig/res/msconfig.ico b/base/applications/msconfig/res/msconfig.ico similarity index 100% rename from reactos/base/applications/msconfig/res/msconfig.ico rename to base/applications/msconfig/res/msconfig.ico diff --git a/reactos/base/applications/msconfig/resource.h b/base/applications/msconfig/resource.h similarity index 100% rename from reactos/base/applications/msconfig/resource.h rename to base/applications/msconfig/resource.h diff --git a/reactos/base/applications/msconfig/rsrc.rc b/base/applications/msconfig/rsrc.rc similarity index 100% rename from reactos/base/applications/msconfig/rsrc.rc rename to base/applications/msconfig/rsrc.rc diff --git a/reactos/base/applications/msconfig/srvpage.c b/base/applications/msconfig/srvpage.c similarity index 100% rename from reactos/base/applications/msconfig/srvpage.c rename to base/applications/msconfig/srvpage.c diff --git a/reactos/base/applications/msconfig/srvpage.h b/base/applications/msconfig/srvpage.h similarity index 100% rename from reactos/base/applications/msconfig/srvpage.h rename to base/applications/msconfig/srvpage.h diff --git a/reactos/base/applications/msconfig/startuppage.c b/base/applications/msconfig/startuppage.c similarity index 100% rename from reactos/base/applications/msconfig/startuppage.c rename to base/applications/msconfig/startuppage.c diff --git a/reactos/base/applications/msconfig/startuppage.h b/base/applications/msconfig/startuppage.h similarity index 100% rename from reactos/base/applications/msconfig/startuppage.h rename to base/applications/msconfig/startuppage.h diff --git a/reactos/base/applications/msconfig/systempage.c b/base/applications/msconfig/systempage.c similarity index 100% rename from reactos/base/applications/msconfig/systempage.c rename to base/applications/msconfig/systempage.c diff --git a/reactos/base/applications/msconfig/systempage.h b/base/applications/msconfig/systempage.h similarity index 100% rename from reactos/base/applications/msconfig/systempage.h rename to base/applications/msconfig/systempage.h diff --git a/reactos/base/applications/msconfig/toolspage.c b/base/applications/msconfig/toolspage.c similarity index 100% rename from reactos/base/applications/msconfig/toolspage.c rename to base/applications/msconfig/toolspage.c diff --git a/reactos/base/applications/msconfig/toolspage.h b/base/applications/msconfig/toolspage.h similarity index 100% rename from reactos/base/applications/msconfig/toolspage.h rename to base/applications/msconfig/toolspage.h diff --git a/reactos/base/applications/mscutils/CMakeLists.txt b/base/applications/mscutils/CMakeLists.txt similarity index 100% rename from reactos/base/applications/mscutils/CMakeLists.txt rename to base/applications/mscutils/CMakeLists.txt diff --git a/reactos/base/applications/mscutils/devmgmt/CMakeLists.txt b/base/applications/mscutils/devmgmt/CMakeLists.txt similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/CMakeLists.txt rename to base/applications/mscutils/devmgmt/CMakeLists.txt diff --git a/reactos/base/applications/mscutils/devmgmt/about.c b/base/applications/mscutils/devmgmt/about.c similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/about.c rename to base/applications/mscutils/devmgmt/about.c diff --git a/reactos/base/applications/mscutils/devmgmt/devmgmt.c b/base/applications/mscutils/devmgmt/devmgmt.c similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/devmgmt.c rename to base/applications/mscutils/devmgmt/devmgmt.c diff --git a/reactos/base/applications/mscutils/devmgmt/devmgmt.rc b/base/applications/mscutils/devmgmt/devmgmt.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/devmgmt.rc rename to base/applications/mscutils/devmgmt/devmgmt.rc diff --git a/reactos/base/applications/mscutils/devmgmt/enumdevices.c b/base/applications/mscutils/devmgmt/enumdevices.c similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/enumdevices.c rename to base/applications/mscutils/devmgmt/enumdevices.c diff --git a/reactos/base/applications/mscutils/devmgmt/lang/bg-BG.rc b/base/applications/mscutils/devmgmt/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/bg-BG.rc rename to base/applications/mscutils/devmgmt/lang/bg-BG.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/cs-CZ.rc b/base/applications/mscutils/devmgmt/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/cs-CZ.rc rename to base/applications/mscutils/devmgmt/lang/cs-CZ.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/de-DE.rc b/base/applications/mscutils/devmgmt/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/de-DE.rc rename to base/applications/mscutils/devmgmt/lang/de-DE.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/el-GR.rc b/base/applications/mscutils/devmgmt/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/el-GR.rc rename to base/applications/mscutils/devmgmt/lang/el-GR.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/en-US.rc b/base/applications/mscutils/devmgmt/lang/en-US.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/en-US.rc rename to base/applications/mscutils/devmgmt/lang/en-US.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/es-ES.rc b/base/applications/mscutils/devmgmt/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/es-ES.rc rename to base/applications/mscutils/devmgmt/lang/es-ES.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/fr-FR.rc b/base/applications/mscutils/devmgmt/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/fr-FR.rc rename to base/applications/mscutils/devmgmt/lang/fr-FR.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/id-ID.rc b/base/applications/mscutils/devmgmt/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/id-ID.rc rename to base/applications/mscutils/devmgmt/lang/id-ID.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/it-IT.rc b/base/applications/mscutils/devmgmt/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/it-IT.rc rename to base/applications/mscutils/devmgmt/lang/it-IT.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/ja-JP.rc b/base/applications/mscutils/devmgmt/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/ja-JP.rc rename to base/applications/mscutils/devmgmt/lang/ja-JP.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/ko-KR.rc b/base/applications/mscutils/devmgmt/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/ko-KR.rc rename to base/applications/mscutils/devmgmt/lang/ko-KR.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/no-NO.rc b/base/applications/mscutils/devmgmt/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/no-NO.rc rename to base/applications/mscutils/devmgmt/lang/no-NO.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/pl-PL.rc b/base/applications/mscutils/devmgmt/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/pl-PL.rc rename to base/applications/mscutils/devmgmt/lang/pl-PL.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/pt-BR.rc b/base/applications/mscutils/devmgmt/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/pt-BR.rc rename to base/applications/mscutils/devmgmt/lang/pt-BR.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/ro-RO.rc b/base/applications/mscutils/devmgmt/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/ro-RO.rc rename to base/applications/mscutils/devmgmt/lang/ro-RO.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/ru-RU.rc b/base/applications/mscutils/devmgmt/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/ru-RU.rc rename to base/applications/mscutils/devmgmt/lang/ru-RU.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/sk-SK.rc b/base/applications/mscutils/devmgmt/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/sk-SK.rc rename to base/applications/mscutils/devmgmt/lang/sk-SK.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/sv-SE.rc b/base/applications/mscutils/devmgmt/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/sv-SE.rc rename to base/applications/mscutils/devmgmt/lang/sv-SE.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/th-TH.rc b/base/applications/mscutils/devmgmt/lang/th-TH.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/th-TH.rc rename to base/applications/mscutils/devmgmt/lang/th-TH.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/uk-UA.rc b/base/applications/mscutils/devmgmt/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/uk-UA.rc rename to base/applications/mscutils/devmgmt/lang/uk-UA.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/zh-CN.rc b/base/applications/mscutils/devmgmt/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/lang/zh-CN.rc rename to base/applications/mscutils/devmgmt/lang/zh-CN.rc diff --git a/reactos/base/applications/mscutils/devmgmt/mainwnd.c b/base/applications/mscutils/devmgmt/mainwnd.c similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/mainwnd.c rename to base/applications/mscutils/devmgmt/mainwnd.c diff --git a/reactos/base/applications/mscutils/devmgmt/misc.c b/base/applications/mscutils/devmgmt/misc.c similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/misc.c rename to base/applications/mscutils/devmgmt/misc.c diff --git a/reactos/base/applications/mscutils/devmgmt/precomp.h b/base/applications/mscutils/devmgmt/precomp.h similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/precomp.h rename to base/applications/mscutils/devmgmt/precomp.h diff --git a/reactos/base/applications/mscutils/devmgmt/res/computer.ico b/base/applications/mscutils/devmgmt/res/computer.ico similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/res/computer.ico rename to base/applications/mscutils/devmgmt/res/computer.ico diff --git a/reactos/base/applications/mscutils/devmgmt/res/exit.bmp b/base/applications/mscutils/devmgmt/res/exit.bmp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/res/exit.bmp rename to base/applications/mscutils/devmgmt/res/exit.bmp diff --git a/reactos/base/applications/mscutils/devmgmt/res/help.bmp b/base/applications/mscutils/devmgmt/res/help.bmp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/res/help.bmp rename to base/applications/mscutils/devmgmt/res/help.bmp diff --git a/reactos/base/applications/mscutils/devmgmt/res/properties.bmp b/base/applications/mscutils/devmgmt/res/properties.bmp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/res/properties.bmp rename to base/applications/mscutils/devmgmt/res/properties.bmp diff --git a/reactos/base/applications/mscutils/devmgmt/res/refresh.bmp b/base/applications/mscutils/devmgmt/res/refresh.bmp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/res/refresh.bmp rename to base/applications/mscutils/devmgmt/res/refresh.bmp diff --git a/reactos/base/applications/mscutils/devmgmt/res/root.bmp b/base/applications/mscutils/devmgmt/res/root.bmp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/res/root.bmp rename to base/applications/mscutils/devmgmt/res/root.bmp diff --git a/reactos/base/applications/mscutils/devmgmt/resource.h b/base/applications/mscutils/devmgmt/resource.h similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/resource.h rename to base/applications/mscutils/devmgmt/resource.h diff --git a/reactos/base/applications/mscutils/devmgmt/rsrc.rc b/base/applications/mscutils/devmgmt/rsrc.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt/rsrc.rc rename to base/applications/mscutils/devmgmt/rsrc.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/DeviceView.cpp b/base/applications/mscutils/devmgmt_new/DeviceView.cpp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/DeviceView.cpp rename to base/applications/mscutils/devmgmt_new/DeviceView.cpp diff --git a/reactos/base/applications/mscutils/devmgmt_new/DeviceView.h b/base/applications/mscutils/devmgmt_new/DeviceView.h similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/DeviceView.h rename to base/applications/mscutils/devmgmt_new/DeviceView.h diff --git a/reactos/base/applications/mscutils/devmgmt_new/Devices.cpp b/base/applications/mscutils/devmgmt_new/Devices.cpp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/Devices.cpp rename to base/applications/mscutils/devmgmt_new/Devices.cpp diff --git a/reactos/base/applications/mscutils/devmgmt_new/Devices.h b/base/applications/mscutils/devmgmt_new/Devices.h similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/Devices.h rename to base/applications/mscutils/devmgmt_new/Devices.h diff --git a/reactos/base/applications/mscutils/devmgmt_new/MainWindow.cpp b/base/applications/mscutils/devmgmt_new/MainWindow.cpp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/MainWindow.cpp rename to base/applications/mscutils/devmgmt_new/MainWindow.cpp diff --git a/reactos/base/applications/mscutils/devmgmt_new/MainWindow.h b/base/applications/mscutils/devmgmt_new/MainWindow.h similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/MainWindow.h rename to base/applications/mscutils/devmgmt_new/MainWindow.h diff --git a/reactos/base/applications/mscutils/devmgmt_new/Resource.h b/base/applications/mscutils/devmgmt_new/Resource.h similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/Resource.h rename to base/applications/mscutils/devmgmt_new/Resource.h diff --git a/reactos/base/applications/mscutils/devmgmt_new/devmgmt.cpp b/base/applications/mscutils/devmgmt_new/devmgmt.cpp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/devmgmt.cpp rename to base/applications/mscutils/devmgmt_new/devmgmt.cpp diff --git a/reactos/base/applications/mscutils/devmgmt_new/devmgmt.h b/base/applications/mscutils/devmgmt_new/devmgmt.h similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/devmgmt.h rename to base/applications/mscutils/devmgmt_new/devmgmt.h diff --git a/reactos/base/applications/mscutils/devmgmt_new/devmgmt.rc b/base/applications/mscutils/devmgmt_new/devmgmt.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/devmgmt.rc rename to base/applications/mscutils/devmgmt_new/devmgmt.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/devmgmt_new.sln b/base/applications/mscutils/devmgmt_new/devmgmt_new.sln similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/devmgmt_new.sln rename to base/applications/mscutils/devmgmt_new/devmgmt_new.sln diff --git a/reactos/base/applications/mscutils/devmgmt_new/devmgmt_new.vcxproj b/base/applications/mscutils/devmgmt_new/devmgmt_new.vcxproj similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/devmgmt_new.vcxproj rename to base/applications/mscutils/devmgmt_new/devmgmt_new.vcxproj diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/bg-BG.rc b/base/applications/mscutils/devmgmt_new/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/bg-BG.rc rename to base/applications/mscutils/devmgmt_new/lang/bg-BG.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/de-DE.rc b/base/applications/mscutils/devmgmt_new/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/de-DE.rc rename to base/applications/mscutils/devmgmt_new/lang/de-DE.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/el-GR.rc b/base/applications/mscutils/devmgmt_new/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/el-GR.rc rename to base/applications/mscutils/devmgmt_new/lang/el-GR.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/en-US.rc b/base/applications/mscutils/devmgmt_new/lang/en-US.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/en-US.rc rename to base/applications/mscutils/devmgmt_new/lang/en-US.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/es-ES.rc b/base/applications/mscutils/devmgmt_new/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/es-ES.rc rename to base/applications/mscutils/devmgmt_new/lang/es-ES.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/fr-FR.rc b/base/applications/mscutils/devmgmt_new/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/fr-FR.rc rename to base/applications/mscutils/devmgmt_new/lang/fr-FR.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/id-ID.rc b/base/applications/mscutils/devmgmt_new/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/id-ID.rc rename to base/applications/mscutils/devmgmt_new/lang/id-ID.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/it-IT.rc b/base/applications/mscutils/devmgmt_new/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/it-IT.rc rename to base/applications/mscutils/devmgmt_new/lang/it-IT.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/ja-JP.rc b/base/applications/mscutils/devmgmt_new/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/ja-JP.rc rename to base/applications/mscutils/devmgmt_new/lang/ja-JP.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/ko-KR.rc b/base/applications/mscutils/devmgmt_new/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/ko-KR.rc rename to base/applications/mscutils/devmgmt_new/lang/ko-KR.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/no-NO.rc b/base/applications/mscutils/devmgmt_new/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/no-NO.rc rename to base/applications/mscutils/devmgmt_new/lang/no-NO.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/pl-PL.rc b/base/applications/mscutils/devmgmt_new/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/pl-PL.rc rename to base/applications/mscutils/devmgmt_new/lang/pl-PL.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/pt-BR.rc b/base/applications/mscutils/devmgmt_new/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/pt-BR.rc rename to base/applications/mscutils/devmgmt_new/lang/pt-BR.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/ro-RO.rc b/base/applications/mscutils/devmgmt_new/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/ro-RO.rc rename to base/applications/mscutils/devmgmt_new/lang/ro-RO.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/ru-RU.rc b/base/applications/mscutils/devmgmt_new/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/ru-RU.rc rename to base/applications/mscutils/devmgmt_new/lang/ru-RU.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/sk-SK.rc b/base/applications/mscutils/devmgmt_new/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/sk-SK.rc rename to base/applications/mscutils/devmgmt_new/lang/sk-SK.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/sv-SE.rc b/base/applications/mscutils/devmgmt_new/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/sv-SE.rc rename to base/applications/mscutils/devmgmt_new/lang/sv-SE.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/th-TH.rc b/base/applications/mscutils/devmgmt_new/lang/th-TH.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/th-TH.rc rename to base/applications/mscutils/devmgmt_new/lang/th-TH.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/uk-UA.rc b/base/applications/mscutils/devmgmt_new/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/uk-UA.rc rename to base/applications/mscutils/devmgmt_new/lang/uk-UA.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/zh-CN.rc b/base/applications/mscutils/devmgmt_new/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/lang/zh-CN.rc rename to base/applications/mscutils/devmgmt_new/lang/zh-CN.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/res/computer.ico b/base/applications/mscutils/devmgmt_new/res/computer.ico similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/res/computer.ico rename to base/applications/mscutils/devmgmt_new/res/computer.ico diff --git a/reactos/base/applications/mscutils/devmgmt_new/res/exit.bmp b/base/applications/mscutils/devmgmt_new/res/exit.bmp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/res/exit.bmp rename to base/applications/mscutils/devmgmt_new/res/exit.bmp diff --git a/reactos/base/applications/mscutils/devmgmt_new/res/help.bmp b/base/applications/mscutils/devmgmt_new/res/help.bmp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/res/help.bmp rename to base/applications/mscutils/devmgmt_new/res/help.bmp diff --git a/reactos/base/applications/mscutils/devmgmt_new/res/properties.bmp b/base/applications/mscutils/devmgmt_new/res/properties.bmp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/res/properties.bmp rename to base/applications/mscutils/devmgmt_new/res/properties.bmp diff --git a/reactos/base/applications/mscutils/devmgmt_new/res/refresh.bmp b/base/applications/mscutils/devmgmt_new/res/refresh.bmp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/res/refresh.bmp rename to base/applications/mscutils/devmgmt_new/res/refresh.bmp diff --git a/reactos/base/applications/mscutils/devmgmt_new/res/root.bmp b/base/applications/mscutils/devmgmt_new/res/root.bmp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/res/root.bmp rename to base/applications/mscutils/devmgmt_new/res/root.bmp diff --git a/reactos/base/applications/mscutils/devmgmt_new/rsrc.rc b/base/applications/mscutils/devmgmt_new/rsrc.rc similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/rsrc.rc rename to base/applications/mscutils/devmgmt_new/rsrc.rc diff --git a/reactos/base/applications/mscutils/devmgmt_new/stdafx.cpp b/base/applications/mscutils/devmgmt_new/stdafx.cpp similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/stdafx.cpp rename to base/applications/mscutils/devmgmt_new/stdafx.cpp diff --git a/reactos/base/applications/mscutils/devmgmt_new/stdafx.h b/base/applications/mscutils/devmgmt_new/stdafx.h similarity index 100% rename from reactos/base/applications/mscutils/devmgmt_new/stdafx.h rename to base/applications/mscutils/devmgmt_new/stdafx.h diff --git a/reactos/base/applications/mscutils/eventvwr/CMakeLists.txt b/base/applications/mscutils/eventvwr/CMakeLists.txt similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/CMakeLists.txt rename to base/applications/mscutils/eventvwr/CMakeLists.txt diff --git a/reactos/base/applications/mscutils/eventvwr/eventvwr.c b/base/applications/mscutils/eventvwr/eventvwr.c similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/eventvwr.c rename to base/applications/mscutils/eventvwr/eventvwr.c diff --git a/reactos/base/applications/mscutils/eventvwr/eventvwr.h b/base/applications/mscutils/eventvwr/eventvwr.h similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/eventvwr.h rename to base/applications/mscutils/eventvwr/eventvwr.h diff --git a/reactos/base/applications/mscutils/eventvwr/eventvwr.rc b/base/applications/mscutils/eventvwr/eventvwr.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/eventvwr.rc rename to base/applications/mscutils/eventvwr/eventvwr.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/bg-BG.rc b/base/applications/mscutils/eventvwr/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/bg-BG.rc rename to base/applications/mscutils/eventvwr/lang/bg-BG.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/de-DE.rc b/base/applications/mscutils/eventvwr/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/de-DE.rc rename to base/applications/mscutils/eventvwr/lang/de-DE.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/el-GR.rc b/base/applications/mscutils/eventvwr/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/el-GR.rc rename to base/applications/mscutils/eventvwr/lang/el-GR.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/en-US.rc b/base/applications/mscutils/eventvwr/lang/en-US.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/en-US.rc rename to base/applications/mscutils/eventvwr/lang/en-US.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/es-ES.rc b/base/applications/mscutils/eventvwr/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/es-ES.rc rename to base/applications/mscutils/eventvwr/lang/es-ES.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/fr-FR.rc b/base/applications/mscutils/eventvwr/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/fr-FR.rc rename to base/applications/mscutils/eventvwr/lang/fr-FR.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/it-IT.rc b/base/applications/mscutils/eventvwr/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/it-IT.rc rename to base/applications/mscutils/eventvwr/lang/it-IT.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/ja-JP.rc b/base/applications/mscutils/eventvwr/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/ja-JP.rc rename to base/applications/mscutils/eventvwr/lang/ja-JP.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/ko-KR.rc b/base/applications/mscutils/eventvwr/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/ko-KR.rc rename to base/applications/mscutils/eventvwr/lang/ko-KR.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/no-NO.rc b/base/applications/mscutils/eventvwr/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/no-NO.rc rename to base/applications/mscutils/eventvwr/lang/no-NO.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/pl-PL.rc b/base/applications/mscutils/eventvwr/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/pl-PL.rc rename to base/applications/mscutils/eventvwr/lang/pl-PL.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/pt-BR.rc b/base/applications/mscutils/eventvwr/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/pt-BR.rc rename to base/applications/mscutils/eventvwr/lang/pt-BR.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/ro-RO.rc b/base/applications/mscutils/eventvwr/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/ro-RO.rc rename to base/applications/mscutils/eventvwr/lang/ro-RO.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/ru-RU.rc b/base/applications/mscutils/eventvwr/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/ru-RU.rc rename to base/applications/mscutils/eventvwr/lang/ru-RU.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/sk-SK.rc b/base/applications/mscutils/eventvwr/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/sk-SK.rc rename to base/applications/mscutils/eventvwr/lang/sk-SK.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/sv-SE.rc b/base/applications/mscutils/eventvwr/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/sv-SE.rc rename to base/applications/mscutils/eventvwr/lang/sv-SE.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/uk-UA.rc b/base/applications/mscutils/eventvwr/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/uk-UA.rc rename to base/applications/mscutils/eventvwr/lang/uk-UA.rc diff --git a/reactos/base/applications/mscutils/eventvwr/lang/zh-CN.rc b/base/applications/mscutils/eventvwr/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/lang/zh-CN.rc rename to base/applications/mscutils/eventvwr/lang/zh-CN.rc diff --git a/reactos/base/applications/mscutils/eventvwr/res/error.ico b/base/applications/mscutils/eventvwr/res/error.ico similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/res/error.ico rename to base/applications/mscutils/eventvwr/res/error.ico diff --git a/reactos/base/applications/mscutils/eventvwr/res/eventvwr.ico b/base/applications/mscutils/eventvwr/res/eventvwr.ico similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/res/eventvwr.ico rename to base/applications/mscutils/eventvwr/res/eventvwr.ico diff --git a/reactos/base/applications/mscutils/eventvwr/res/info.ico b/base/applications/mscutils/eventvwr/res/info.ico similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/res/info.ico rename to base/applications/mscutils/eventvwr/res/info.ico diff --git a/reactos/base/applications/mscutils/eventvwr/res/warning.ico b/base/applications/mscutils/eventvwr/res/warning.ico similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/res/warning.ico rename to base/applications/mscutils/eventvwr/res/warning.ico diff --git a/reactos/base/applications/mscutils/eventvwr/resource.h b/base/applications/mscutils/eventvwr/resource.h similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/resource.h rename to base/applications/mscutils/eventvwr/resource.h diff --git a/reactos/base/applications/mscutils/eventvwr/rsrc.rc b/base/applications/mscutils/eventvwr/rsrc.rc similarity index 100% rename from reactos/base/applications/mscutils/eventvwr/rsrc.rc rename to base/applications/mscutils/eventvwr/rsrc.rc diff --git a/reactos/base/applications/mscutils/servman/CMakeLists.txt b/base/applications/mscutils/servman/CMakeLists.txt similarity index 100% rename from reactos/base/applications/mscutils/servman/CMakeLists.txt rename to base/applications/mscutils/servman/CMakeLists.txt diff --git a/reactos/base/applications/mscutils/servman/about.c b/base/applications/mscutils/servman/about.c similarity index 100% rename from reactos/base/applications/mscutils/servman/about.c rename to base/applications/mscutils/servman/about.c diff --git a/reactos/base/applications/mscutils/servman/control.c b/base/applications/mscutils/servman/control.c similarity index 100% rename from reactos/base/applications/mscutils/servman/control.c rename to base/applications/mscutils/servman/control.c diff --git a/reactos/base/applications/mscutils/servman/create.c b/base/applications/mscutils/servman/create.c similarity index 100% rename from reactos/base/applications/mscutils/servman/create.c rename to base/applications/mscutils/servman/create.c diff --git a/reactos/base/applications/mscutils/servman/delete.c b/base/applications/mscutils/servman/delete.c similarity index 100% rename from reactos/base/applications/mscutils/servman/delete.c rename to base/applications/mscutils/servman/delete.c diff --git a/reactos/base/applications/mscutils/servman/dependencies_tv1.c b/base/applications/mscutils/servman/dependencies_tv1.c similarity index 100% rename from reactos/base/applications/mscutils/servman/dependencies_tv1.c rename to base/applications/mscutils/servman/dependencies_tv1.c diff --git a/reactos/base/applications/mscutils/servman/dependencies_tv2.c b/base/applications/mscutils/servman/dependencies_tv2.c similarity index 100% rename from reactos/base/applications/mscutils/servman/dependencies_tv2.c rename to base/applications/mscutils/servman/dependencies_tv2.c diff --git a/reactos/base/applications/mscutils/servman/export.c b/base/applications/mscutils/servman/export.c similarity index 100% rename from reactos/base/applications/mscutils/servman/export.c rename to base/applications/mscutils/servman/export.c diff --git a/reactos/base/applications/mscutils/servman/lang/bg-BG.rc b/base/applications/mscutils/servman/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/bg-BG.rc rename to base/applications/mscutils/servman/lang/bg-BG.rc diff --git a/reactos/base/applications/mscutils/servman/lang/de-DE.rc b/base/applications/mscutils/servman/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/de-DE.rc rename to base/applications/mscutils/servman/lang/de-DE.rc diff --git a/reactos/base/applications/mscutils/servman/lang/el-GR.rc b/base/applications/mscutils/servman/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/el-GR.rc rename to base/applications/mscutils/servman/lang/el-GR.rc diff --git a/reactos/base/applications/mscutils/servman/lang/en-US.rc b/base/applications/mscutils/servman/lang/en-US.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/en-US.rc rename to base/applications/mscutils/servman/lang/en-US.rc diff --git a/reactos/base/applications/mscutils/servman/lang/es-ES.rc b/base/applications/mscutils/servman/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/es-ES.rc rename to base/applications/mscutils/servman/lang/es-ES.rc diff --git a/reactos/base/applications/mscutils/servman/lang/fr-FR.rc b/base/applications/mscutils/servman/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/fr-FR.rc rename to base/applications/mscutils/servman/lang/fr-FR.rc diff --git a/reactos/base/applications/mscutils/servman/lang/id-ID.rc b/base/applications/mscutils/servman/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/id-ID.rc rename to base/applications/mscutils/servman/lang/id-ID.rc diff --git a/reactos/base/applications/mscutils/servman/lang/it-IT.rc b/base/applications/mscutils/servman/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/it-IT.rc rename to base/applications/mscutils/servman/lang/it-IT.rc diff --git a/reactos/base/applications/mscutils/servman/lang/ja-JP.rc b/base/applications/mscutils/servman/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/ja-JP.rc rename to base/applications/mscutils/servman/lang/ja-JP.rc diff --git a/reactos/base/applications/mscutils/servman/lang/ko-KR.rc b/base/applications/mscutils/servman/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/ko-KR.rc rename to base/applications/mscutils/servman/lang/ko-KR.rc diff --git a/reactos/base/applications/mscutils/servman/lang/no-NO.rc b/base/applications/mscutils/servman/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/no-NO.rc rename to base/applications/mscutils/servman/lang/no-NO.rc diff --git a/reactos/base/applications/mscutils/servman/lang/pl-PL.rc b/base/applications/mscutils/servman/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/pl-PL.rc rename to base/applications/mscutils/servman/lang/pl-PL.rc diff --git a/reactos/base/applications/mscutils/servman/lang/ro-RO.rc b/base/applications/mscutils/servman/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/ro-RO.rc rename to base/applications/mscutils/servman/lang/ro-RO.rc diff --git a/reactos/base/applications/mscutils/servman/lang/ru-RU.rc b/base/applications/mscutils/servman/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/ru-RU.rc rename to base/applications/mscutils/servman/lang/ru-RU.rc diff --git a/reactos/base/applications/mscutils/servman/lang/sk-SK.rc b/base/applications/mscutils/servman/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/sk-SK.rc rename to base/applications/mscutils/servman/lang/sk-SK.rc diff --git a/reactos/base/applications/mscutils/servman/lang/sv-SE.rc b/base/applications/mscutils/servman/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/sv-SE.rc rename to base/applications/mscutils/servman/lang/sv-SE.rc diff --git a/reactos/base/applications/mscutils/servman/lang/th-TH.rc b/base/applications/mscutils/servman/lang/th-TH.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/th-TH.rc rename to base/applications/mscutils/servman/lang/th-TH.rc diff --git a/reactos/base/applications/mscutils/servman/lang/uk-UA.rc b/base/applications/mscutils/servman/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/uk-UA.rc rename to base/applications/mscutils/servman/lang/uk-UA.rc diff --git a/reactos/base/applications/mscutils/servman/lang/zh-CN.rc b/base/applications/mscutils/servman/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/lang/zh-CN.rc rename to base/applications/mscutils/servman/lang/zh-CN.rc diff --git a/reactos/base/applications/mscutils/servman/listview.c b/base/applications/mscutils/servman/listview.c similarity index 100% rename from reactos/base/applications/mscutils/servman/listview.c rename to base/applications/mscutils/servman/listview.c diff --git a/reactos/base/applications/mscutils/servman/mainwnd.c b/base/applications/mscutils/servman/mainwnd.c similarity index 100% rename from reactos/base/applications/mscutils/servman/mainwnd.c rename to base/applications/mscutils/servman/mainwnd.c diff --git a/reactos/base/applications/mscutils/servman/manifest.xml b/base/applications/mscutils/servman/manifest.xml similarity index 100% rename from reactos/base/applications/mscutils/servman/manifest.xml rename to base/applications/mscutils/servman/manifest.xml diff --git a/reactos/base/applications/mscutils/servman/misc.c b/base/applications/mscutils/servman/misc.c similarity index 100% rename from reactos/base/applications/mscutils/servman/misc.c rename to base/applications/mscutils/servman/misc.c diff --git a/reactos/base/applications/mscutils/servman/precomp.h b/base/applications/mscutils/servman/precomp.h similarity index 100% rename from reactos/base/applications/mscutils/servman/precomp.h rename to base/applications/mscutils/servman/precomp.h diff --git a/reactos/base/applications/mscutils/servman/progress.c b/base/applications/mscutils/servman/progress.c similarity index 100% rename from reactos/base/applications/mscutils/servman/progress.c rename to base/applications/mscutils/servman/progress.c diff --git a/reactos/base/applications/mscutils/servman/propsheet.c b/base/applications/mscutils/servman/propsheet.c similarity index 100% rename from reactos/base/applications/mscutils/servman/propsheet.c rename to base/applications/mscutils/servman/propsheet.c diff --git a/reactos/base/applications/mscutils/servman/propsheet_depends.c b/base/applications/mscutils/servman/propsheet_depends.c similarity index 100% rename from reactos/base/applications/mscutils/servman/propsheet_depends.c rename to base/applications/mscutils/servman/propsheet_depends.c diff --git a/reactos/base/applications/mscutils/servman/propsheet_general.c b/base/applications/mscutils/servman/propsheet_general.c similarity index 100% rename from reactos/base/applications/mscutils/servman/propsheet_general.c rename to base/applications/mscutils/servman/propsheet_general.c diff --git a/reactos/base/applications/mscutils/servman/query.c b/base/applications/mscutils/servman/query.c similarity index 100% rename from reactos/base/applications/mscutils/servman/query.c rename to base/applications/mscutils/servman/query.c diff --git a/reactos/base/applications/mscutils/servman/res/create.bmp b/base/applications/mscutils/servman/res/create.bmp similarity index 100% rename from reactos/base/applications/mscutils/servman/res/create.bmp rename to base/applications/mscutils/servman/res/create.bmp diff --git a/reactos/base/applications/mscutils/servman/res/delete.bmp b/base/applications/mscutils/servman/res/delete.bmp similarity index 100% rename from reactos/base/applications/mscutils/servman/res/delete.bmp rename to base/applications/mscutils/servman/res/delete.bmp diff --git a/reactos/base/applications/mscutils/servman/res/driver.ico b/base/applications/mscutils/servman/res/driver.ico similarity index 100% rename from reactos/base/applications/mscutils/servman/res/driver.ico rename to base/applications/mscutils/servman/res/driver.ico diff --git a/reactos/base/applications/mscutils/servman/res/export.bmp b/base/applications/mscutils/servman/res/export.bmp similarity index 100% rename from reactos/base/applications/mscutils/servman/res/export.bmp rename to base/applications/mscutils/servman/res/export.bmp diff --git a/reactos/base/applications/mscutils/servman/res/nodepends.ico b/base/applications/mscutils/servman/res/nodepends.ico similarity index 100% rename from reactos/base/applications/mscutils/servman/res/nodepends.ico rename to base/applications/mscutils/servman/res/nodepends.ico diff --git a/reactos/base/applications/mscutils/servman/res/pause.bmp b/base/applications/mscutils/servman/res/pause.bmp similarity index 100% rename from reactos/base/applications/mscutils/servman/res/pause.bmp rename to base/applications/mscutils/servman/res/pause.bmp diff --git a/reactos/base/applications/mscutils/servman/res/properties.bmp b/base/applications/mscutils/servman/res/properties.bmp similarity index 100% rename from reactos/base/applications/mscutils/servman/res/properties.bmp rename to base/applications/mscutils/servman/res/properties.bmp diff --git a/reactos/base/applications/mscutils/servman/res/refresh.bmp b/base/applications/mscutils/servman/res/refresh.bmp similarity index 100% rename from reactos/base/applications/mscutils/servman/res/refresh.bmp rename to base/applications/mscutils/servman/res/refresh.bmp diff --git a/reactos/base/applications/mscutils/servman/res/restart.bmp b/base/applications/mscutils/servman/res/restart.bmp similarity index 100% rename from reactos/base/applications/mscutils/servman/res/restart.bmp rename to base/applications/mscutils/servman/res/restart.bmp diff --git a/reactos/base/applications/mscutils/servman/res/start.bmp b/base/applications/mscutils/servman/res/start.bmp similarity index 100% rename from reactos/base/applications/mscutils/servman/res/start.bmp rename to base/applications/mscutils/servman/res/start.bmp diff --git a/reactos/base/applications/mscutils/servman/res/stop.bmp b/base/applications/mscutils/servman/res/stop.bmp similarity index 100% rename from reactos/base/applications/mscutils/servman/res/stop.bmp rename to base/applications/mscutils/servman/res/stop.bmp diff --git a/reactos/base/applications/mscutils/servman/res/system.ico b/base/applications/mscutils/servman/res/system.ico similarity index 100% rename from reactos/base/applications/mscutils/servman/res/system.ico rename to base/applications/mscutils/servman/res/system.ico diff --git a/reactos/base/applications/mscutils/servman/resource.h b/base/applications/mscutils/servman/resource.h similarity index 100% rename from reactos/base/applications/mscutils/servman/resource.h rename to base/applications/mscutils/servman/resource.h diff --git a/reactos/base/applications/mscutils/servman/rsrc.rc b/base/applications/mscutils/servman/rsrc.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/rsrc.rc rename to base/applications/mscutils/servman/rsrc.rc diff --git a/reactos/base/applications/mscutils/servman/servman.c b/base/applications/mscutils/servman/servman.c similarity index 100% rename from reactos/base/applications/mscutils/servman/servman.c rename to base/applications/mscutils/servman/servman.c diff --git a/reactos/base/applications/mscutils/servman/servman.rc b/base/applications/mscutils/servman/servman.rc similarity index 100% rename from reactos/base/applications/mscutils/servman/servman.rc rename to base/applications/mscutils/servman/servman.rc diff --git a/reactos/base/applications/mscutils/servman/start.c b/base/applications/mscutils/servman/start.c similarity index 100% rename from reactos/base/applications/mscutils/servman/start.c rename to base/applications/mscutils/servman/start.c diff --git a/reactos/base/applications/mscutils/servman/stop.c b/base/applications/mscutils/servman/stop.c similarity index 100% rename from reactos/base/applications/mscutils/servman/stop.c rename to base/applications/mscutils/servman/stop.c diff --git a/reactos/base/applications/mscutils/servman/stop_dependencies.c b/base/applications/mscutils/servman/stop_dependencies.c similarity index 100% rename from reactos/base/applications/mscutils/servman/stop_dependencies.c rename to base/applications/mscutils/servman/stop_dependencies.c diff --git a/reactos/base/applications/mspaint/CMakeLists.txt b/base/applications/mspaint/CMakeLists.txt similarity index 100% rename from reactos/base/applications/mspaint/CMakeLists.txt rename to base/applications/mspaint/CMakeLists.txt diff --git a/reactos/base/applications/mspaint/definitions.h b/base/applications/mspaint/definitions.h similarity index 100% rename from reactos/base/applications/mspaint/definitions.h rename to base/applications/mspaint/definitions.h diff --git a/reactos/base/applications/mspaint/dialogs.c b/base/applications/mspaint/dialogs.c similarity index 100% rename from reactos/base/applications/mspaint/dialogs.c rename to base/applications/mspaint/dialogs.c diff --git a/reactos/base/applications/mspaint/dialogs.h b/base/applications/mspaint/dialogs.h similarity index 100% rename from reactos/base/applications/mspaint/dialogs.h rename to base/applications/mspaint/dialogs.h diff --git a/reactos/base/applications/mspaint/dib.c b/base/applications/mspaint/dib.c similarity index 100% rename from reactos/base/applications/mspaint/dib.c rename to base/applications/mspaint/dib.c diff --git a/reactos/base/applications/mspaint/dib.h b/base/applications/mspaint/dib.h similarity index 100% rename from reactos/base/applications/mspaint/dib.h rename to base/applications/mspaint/dib.h diff --git a/reactos/base/applications/mspaint/drawing.c b/base/applications/mspaint/drawing.c similarity index 100% rename from reactos/base/applications/mspaint/drawing.c rename to base/applications/mspaint/drawing.c diff --git a/reactos/base/applications/mspaint/drawing.h b/base/applications/mspaint/drawing.h similarity index 100% rename from reactos/base/applications/mspaint/drawing.h rename to base/applications/mspaint/drawing.h diff --git a/reactos/base/applications/mspaint/globalvar.h b/base/applications/mspaint/globalvar.h similarity index 100% rename from reactos/base/applications/mspaint/globalvar.h rename to base/applications/mspaint/globalvar.h diff --git a/reactos/base/applications/mspaint/help/Paint.chm b/base/applications/mspaint/help/Paint.chm similarity index 100% rename from reactos/base/applications/mspaint/help/Paint.chm rename to base/applications/mspaint/help/Paint.chm diff --git a/reactos/base/applications/mspaint/help/Paint.hhp b/base/applications/mspaint/help/Paint.hhp similarity index 100% rename from reactos/base/applications/mspaint/help/Paint.hhp rename to base/applications/mspaint/help/Paint.hhp diff --git a/reactos/base/applications/mspaint/help/Table of Contents.hhc b/base/applications/mspaint/help/Table of Contents.hhc similarity index 100% rename from reactos/base/applications/mspaint/help/Table of Contents.hhc rename to base/applications/mspaint/help/Table of Contents.hhc diff --git a/reactos/base/applications/mspaint/help/airbrush.png b/base/applications/mspaint/help/airbrush.png similarity index 100% rename from reactos/base/applications/mspaint/help/airbrush.png rename to base/applications/mspaint/help/airbrush.png diff --git a/reactos/base/applications/mspaint/help/appwindow.png b/base/applications/mspaint/help/appwindow.png similarity index 100% rename from reactos/base/applications/mspaint/help/appwindow.png rename to base/applications/mspaint/help/appwindow.png diff --git a/reactos/base/applications/mspaint/help/bezier.png b/base/applications/mspaint/help/bezier.png similarity index 100% rename from reactos/base/applications/mspaint/help/bezier.png rename to base/applications/mspaint/help/bezier.png diff --git a/reactos/base/applications/mspaint/help/brush.png b/base/applications/mspaint/help/brush.png similarity index 100% rename from reactos/base/applications/mspaint/help/brush.png rename to base/applications/mspaint/help/brush.png diff --git a/reactos/base/applications/mspaint/help/color.png b/base/applications/mspaint/help/color.png similarity index 100% rename from reactos/base/applications/mspaint/help/color.png rename to base/applications/mspaint/help/color.png diff --git a/reactos/base/applications/mspaint/help/ellipse.png b/base/applications/mspaint/help/ellipse.png similarity index 100% rename from reactos/base/applications/mspaint/help/ellipse.png rename to base/applications/mspaint/help/ellipse.png diff --git a/reactos/base/applications/mspaint/help/fill.png b/base/applications/mspaint/help/fill.png similarity index 100% rename from reactos/base/applications/mspaint/help/fill.png rename to base/applications/mspaint/help/fill.png diff --git a/reactos/base/applications/mspaint/help/freesel.png b/base/applications/mspaint/help/freesel.png similarity index 100% rename from reactos/base/applications/mspaint/help/freesel.png rename to base/applications/mspaint/help/freesel.png diff --git a/reactos/base/applications/mspaint/help/line.png b/base/applications/mspaint/help/line.png similarity index 100% rename from reactos/base/applications/mspaint/help/line.png rename to base/applications/mspaint/help/line.png diff --git a/reactos/base/applications/mspaint/help/palette.png b/base/applications/mspaint/help/palette.png similarity index 100% rename from reactos/base/applications/mspaint/help/palette.png rename to base/applications/mspaint/help/palette.png diff --git a/reactos/base/applications/mspaint/help/pen.png b/base/applications/mspaint/help/pen.png similarity index 100% rename from reactos/base/applications/mspaint/help/pen.png rename to base/applications/mspaint/help/pen.png diff --git a/reactos/base/applications/mspaint/help/rect.png b/base/applications/mspaint/help/rect.png similarity index 100% rename from reactos/base/applications/mspaint/help/rect.png rename to base/applications/mspaint/help/rect.png diff --git a/reactos/base/applications/mspaint/help/rectsel.png b/base/applications/mspaint/help/rectsel.png similarity index 100% rename from reactos/base/applications/mspaint/help/rectsel.png rename to base/applications/mspaint/help/rectsel.png diff --git a/reactos/base/applications/mspaint/help/rrect.png b/base/applications/mspaint/help/rrect.png similarity index 100% rename from reactos/base/applications/mspaint/help/rrect.png rename to base/applications/mspaint/help/rrect.png diff --git a/reactos/base/applications/mspaint/help/rubber.png b/base/applications/mspaint/help/rubber.png similarity index 100% rename from reactos/base/applications/mspaint/help/rubber.png rename to base/applications/mspaint/help/rubber.png diff --git a/reactos/base/applications/mspaint/help/settings.html b/base/applications/mspaint/help/settings.html similarity index 100% rename from reactos/base/applications/mspaint/help/settings.html rename to base/applications/mspaint/help/settings.html diff --git a/reactos/base/applications/mspaint/help/settings1.png b/base/applications/mspaint/help/settings1.png similarity index 100% rename from reactos/base/applications/mspaint/help/settings1.png rename to base/applications/mspaint/help/settings1.png diff --git a/reactos/base/applications/mspaint/help/settings2.png b/base/applications/mspaint/help/settings2.png similarity index 100% rename from reactos/base/applications/mspaint/help/settings2.png rename to base/applications/mspaint/help/settings2.png diff --git a/reactos/base/applications/mspaint/help/settings3.png b/base/applications/mspaint/help/settings3.png similarity index 100% rename from reactos/base/applications/mspaint/help/settings3.png rename to base/applications/mspaint/help/settings3.png diff --git a/reactos/base/applications/mspaint/help/settings4.png b/base/applications/mspaint/help/settings4.png similarity index 100% rename from reactos/base/applications/mspaint/help/settings4.png rename to base/applications/mspaint/help/settings4.png diff --git a/reactos/base/applications/mspaint/help/settings5.png b/base/applications/mspaint/help/settings5.png similarity index 100% rename from reactos/base/applications/mspaint/help/settings5.png rename to base/applications/mspaint/help/settings5.png diff --git a/reactos/base/applications/mspaint/help/settings6.png b/base/applications/mspaint/help/settings6.png similarity index 100% rename from reactos/base/applications/mspaint/help/settings6.png rename to base/applications/mspaint/help/settings6.png diff --git a/reactos/base/applications/mspaint/help/shape.png b/base/applications/mspaint/help/shape.png similarity index 100% rename from reactos/base/applications/mspaint/help/shape.png rename to base/applications/mspaint/help/shape.png diff --git a/reactos/base/applications/mspaint/help/text.png b/base/applications/mspaint/help/text.png similarity index 100% rename from reactos/base/applications/mspaint/help/text.png rename to base/applications/mspaint/help/text.png diff --git a/reactos/base/applications/mspaint/help/toolbox.png b/base/applications/mspaint/help/toolbox.png similarity index 100% rename from reactos/base/applications/mspaint/help/toolbox.png rename to base/applications/mspaint/help/toolbox.png diff --git a/reactos/base/applications/mspaint/help/tools.html b/base/applications/mspaint/help/tools.html similarity index 100% rename from reactos/base/applications/mspaint/help/tools.html rename to base/applications/mspaint/help/tools.html diff --git a/reactos/base/applications/mspaint/help/usage.html b/base/applications/mspaint/help/usage.html similarity index 100% rename from reactos/base/applications/mspaint/help/usage.html rename to base/applications/mspaint/help/usage.html diff --git a/reactos/base/applications/mspaint/help/zoom.png b/base/applications/mspaint/help/zoom.png similarity index 100% rename from reactos/base/applications/mspaint/help/zoom.png rename to base/applications/mspaint/help/zoom.png diff --git a/reactos/base/applications/mspaint/history.c b/base/applications/mspaint/history.c similarity index 100% rename from reactos/base/applications/mspaint/history.c rename to base/applications/mspaint/history.c diff --git a/reactos/base/applications/mspaint/history.h b/base/applications/mspaint/history.h similarity index 100% rename from reactos/base/applications/mspaint/history.h rename to base/applications/mspaint/history.h diff --git a/reactos/base/applications/mspaint/icons.rc b/base/applications/mspaint/icons.rc similarity index 100% rename from reactos/base/applications/mspaint/icons.rc rename to base/applications/mspaint/icons.rc diff --git a/reactos/base/applications/mspaint/icons/airbrush_cur.ico b/base/applications/mspaint/icons/airbrush_cur.ico similarity index 100% rename from reactos/base/applications/mspaint/icons/airbrush_cur.ico rename to base/applications/mspaint/icons/airbrush_cur.ico diff --git a/reactos/base/applications/mspaint/icons/color_cur.ico b/base/applications/mspaint/icons/color_cur.ico similarity index 100% rename from reactos/base/applications/mspaint/icons/color_cur.ico rename to base/applications/mspaint/icons/color_cur.ico diff --git a/reactos/base/applications/mspaint/icons/fill_cur.ico b/base/applications/mspaint/icons/fill_cur.ico similarity index 100% rename from reactos/base/applications/mspaint/icons/fill_cur.ico rename to base/applications/mspaint/icons/fill_cur.ico diff --git a/reactos/base/applications/mspaint/icons/horzstretch.ico b/base/applications/mspaint/icons/horzstretch.ico similarity index 100% rename from reactos/base/applications/mspaint/icons/horzstretch.ico rename to base/applications/mspaint/icons/horzstretch.ico diff --git a/reactos/base/applications/mspaint/icons/iconbar.bmp b/base/applications/mspaint/icons/iconbar.bmp similarity index 100% rename from reactos/base/applications/mspaint/icons/iconbar.bmp rename to base/applications/mspaint/icons/iconbar.bmp diff --git a/reactos/base/applications/mspaint/icons/nontransparent.ico b/base/applications/mspaint/icons/nontransparent.ico similarity index 100% rename from reactos/base/applications/mspaint/icons/nontransparent.ico rename to base/applications/mspaint/icons/nontransparent.ico diff --git a/reactos/base/applications/mspaint/icons/paint.ico b/base/applications/mspaint/icons/paint.ico similarity index 100% rename from reactos/base/applications/mspaint/icons/paint.ico rename to base/applications/mspaint/icons/paint.ico diff --git a/reactos/base/applications/mspaint/icons/paint.svg b/base/applications/mspaint/icons/paint.svg similarity index 100% rename from reactos/base/applications/mspaint/icons/paint.svg rename to base/applications/mspaint/icons/paint.svg diff --git a/reactos/base/applications/mspaint/icons/pen_cur.ico b/base/applications/mspaint/icons/pen_cur.ico similarity index 100% rename from reactos/base/applications/mspaint/icons/pen_cur.ico rename to base/applications/mspaint/icons/pen_cur.ico diff --git a/reactos/base/applications/mspaint/icons/transparency.xcf b/base/applications/mspaint/icons/transparency.xcf similarity index 100% rename from reactos/base/applications/mspaint/icons/transparency.xcf rename to base/applications/mspaint/icons/transparency.xcf diff --git a/reactos/base/applications/mspaint/icons/transparent.ico b/base/applications/mspaint/icons/transparent.ico similarity index 100% rename from reactos/base/applications/mspaint/icons/transparent.ico rename to base/applications/mspaint/icons/transparent.ico diff --git a/reactos/base/applications/mspaint/icons/vertstretch.ico b/base/applications/mspaint/icons/vertstretch.ico similarity index 100% rename from reactos/base/applications/mspaint/icons/vertstretch.ico rename to base/applications/mspaint/icons/vertstretch.ico diff --git a/reactos/base/applications/mspaint/icons/zoom_cur.ico b/base/applications/mspaint/icons/zoom_cur.ico similarity index 100% rename from reactos/base/applications/mspaint/icons/zoom_cur.ico rename to base/applications/mspaint/icons/zoom_cur.ico diff --git a/reactos/base/applications/mspaint/lang/bg-BG.rc b/base/applications/mspaint/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/bg-BG.rc rename to base/applications/mspaint/lang/bg-BG.rc diff --git a/reactos/base/applications/mspaint/lang/cs-CZ.rc b/base/applications/mspaint/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/cs-CZ.rc rename to base/applications/mspaint/lang/cs-CZ.rc diff --git a/reactos/base/applications/mspaint/lang/de-DE.rc b/base/applications/mspaint/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/de-DE.rc rename to base/applications/mspaint/lang/de-DE.rc diff --git a/reactos/base/applications/mspaint/lang/en-GB.rc b/base/applications/mspaint/lang/en-GB.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/en-GB.rc rename to base/applications/mspaint/lang/en-GB.rc diff --git a/reactos/base/applications/mspaint/lang/en-US.rc b/base/applications/mspaint/lang/en-US.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/en-US.rc rename to base/applications/mspaint/lang/en-US.rc diff --git a/reactos/base/applications/mspaint/lang/es-ES.rc b/base/applications/mspaint/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/es-ES.rc rename to base/applications/mspaint/lang/es-ES.rc diff --git a/reactos/base/applications/mspaint/lang/eu-ES.rc b/base/applications/mspaint/lang/eu-ES.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/eu-ES.rc rename to base/applications/mspaint/lang/eu-ES.rc diff --git a/reactos/base/applications/mspaint/lang/fr-FR.rc b/base/applications/mspaint/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/fr-FR.rc rename to base/applications/mspaint/lang/fr-FR.rc diff --git a/reactos/base/applications/mspaint/lang/hu-HU.rc b/base/applications/mspaint/lang/hu-HU.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/hu-HU.rc rename to base/applications/mspaint/lang/hu-HU.rc diff --git a/reactos/base/applications/mspaint/lang/it-IT.rc b/base/applications/mspaint/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/it-IT.rc rename to base/applications/mspaint/lang/it-IT.rc diff --git a/reactos/base/applications/mspaint/lang/ja-JP.rc b/base/applications/mspaint/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/ja-JP.rc rename to base/applications/mspaint/lang/ja-JP.rc diff --git a/reactos/base/applications/mspaint/lang/nl-NL.rc b/base/applications/mspaint/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/nl-NL.rc rename to base/applications/mspaint/lang/nl-NL.rc diff --git a/reactos/base/applications/mspaint/lang/no-NO.rc b/base/applications/mspaint/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/no-NO.rc rename to base/applications/mspaint/lang/no-NO.rc diff --git a/reactos/base/applications/mspaint/lang/pl-PL.rc b/base/applications/mspaint/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/pl-PL.rc rename to base/applications/mspaint/lang/pl-PL.rc diff --git a/reactos/base/applications/mspaint/lang/pt-BR.rc b/base/applications/mspaint/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/pt-BR.rc rename to base/applications/mspaint/lang/pt-BR.rc diff --git a/reactos/base/applications/mspaint/lang/pt-PT.rc b/base/applications/mspaint/lang/pt-PT.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/pt-PT.rc rename to base/applications/mspaint/lang/pt-PT.rc diff --git a/reactos/base/applications/mspaint/lang/ro-RO.rc b/base/applications/mspaint/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/ro-RO.rc rename to base/applications/mspaint/lang/ro-RO.rc diff --git a/reactos/base/applications/mspaint/lang/ru-RU.rc b/base/applications/mspaint/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/ru-RU.rc rename to base/applications/mspaint/lang/ru-RU.rc diff --git a/reactos/base/applications/mspaint/lang/sk-SK.rc b/base/applications/mspaint/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/sk-SK.rc rename to base/applications/mspaint/lang/sk-SK.rc diff --git a/reactos/base/applications/mspaint/lang/sv-SE.rc b/base/applications/mspaint/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/sv-SE.rc rename to base/applications/mspaint/lang/sv-SE.rc diff --git a/reactos/base/applications/mspaint/lang/uk-UA.rc b/base/applications/mspaint/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/uk-UA.rc rename to base/applications/mspaint/lang/uk-UA.rc diff --git a/reactos/base/applications/mspaint/lang/zh-CN.rc b/base/applications/mspaint/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/zh-CN.rc rename to base/applications/mspaint/lang/zh-CN.rc diff --git a/reactos/base/applications/mspaint/lang/zh-TW.rc b/base/applications/mspaint/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/mspaint/lang/zh-TW.rc rename to base/applications/mspaint/lang/zh-TW.rc diff --git a/reactos/base/applications/mspaint/main.c b/base/applications/mspaint/main.c similarity index 100% rename from reactos/base/applications/mspaint/main.c rename to base/applications/mspaint/main.c diff --git a/reactos/base/applications/mspaint/mouse.c b/base/applications/mspaint/mouse.c similarity index 100% rename from reactos/base/applications/mspaint/mouse.c rename to base/applications/mspaint/mouse.c diff --git a/reactos/base/applications/mspaint/mouse.h b/base/applications/mspaint/mouse.h similarity index 100% rename from reactos/base/applications/mspaint/mouse.h rename to base/applications/mspaint/mouse.h diff --git a/reactos/base/applications/mspaint/mspaint.exe.amd64.manifest b/base/applications/mspaint/mspaint.exe.amd64.manifest similarity index 100% rename from reactos/base/applications/mspaint/mspaint.exe.amd64.manifest rename to base/applications/mspaint/mspaint.exe.amd64.manifest diff --git a/reactos/base/applications/mspaint/mspaint.exe.manifest b/base/applications/mspaint/mspaint.exe.manifest similarity index 100% rename from reactos/base/applications/mspaint/mspaint.exe.manifest rename to base/applications/mspaint/mspaint.exe.manifest diff --git a/reactos/base/applications/mspaint/palette.c b/base/applications/mspaint/palette.c similarity index 100% rename from reactos/base/applications/mspaint/palette.c rename to base/applications/mspaint/palette.c diff --git a/reactos/base/applications/mspaint/palette.h b/base/applications/mspaint/palette.h similarity index 100% rename from reactos/base/applications/mspaint/palette.h rename to base/applications/mspaint/palette.h diff --git a/reactos/base/applications/mspaint/precomp.h b/base/applications/mspaint/precomp.h similarity index 100% rename from reactos/base/applications/mspaint/precomp.h rename to base/applications/mspaint/precomp.h diff --git a/reactos/base/applications/mspaint/registry.c b/base/applications/mspaint/registry.c similarity index 100% rename from reactos/base/applications/mspaint/registry.c rename to base/applications/mspaint/registry.c diff --git a/reactos/base/applications/mspaint/registry.h b/base/applications/mspaint/registry.h similarity index 100% rename from reactos/base/applications/mspaint/registry.h rename to base/applications/mspaint/registry.h diff --git a/reactos/base/applications/mspaint/rsrc.rc b/base/applications/mspaint/rsrc.rc similarity index 100% rename from reactos/base/applications/mspaint/rsrc.rc rename to base/applications/mspaint/rsrc.rc diff --git a/reactos/base/applications/mspaint/selection.c b/base/applications/mspaint/selection.c similarity index 100% rename from reactos/base/applications/mspaint/selection.c rename to base/applications/mspaint/selection.c diff --git a/reactos/base/applications/mspaint/selection.h b/base/applications/mspaint/selection.h similarity index 100% rename from reactos/base/applications/mspaint/selection.h rename to base/applications/mspaint/selection.h diff --git a/reactos/base/applications/mspaint/sizebox.c b/base/applications/mspaint/sizebox.c similarity index 100% rename from reactos/base/applications/mspaint/sizebox.c rename to base/applications/mspaint/sizebox.c diff --git a/reactos/base/applications/mspaint/sizebox.h b/base/applications/mspaint/sizebox.h similarity index 100% rename from reactos/base/applications/mspaint/sizebox.h rename to base/applications/mspaint/sizebox.h diff --git a/reactos/base/applications/mspaint/toolsettings.c b/base/applications/mspaint/toolsettings.c similarity index 100% rename from reactos/base/applications/mspaint/toolsettings.c rename to base/applications/mspaint/toolsettings.c diff --git a/reactos/base/applications/mspaint/toolsettings.h b/base/applications/mspaint/toolsettings.h similarity index 100% rename from reactos/base/applications/mspaint/toolsettings.h rename to base/applications/mspaint/toolsettings.h diff --git a/reactos/base/applications/mspaint/winproc.c b/base/applications/mspaint/winproc.c similarity index 100% rename from reactos/base/applications/mspaint/winproc.c rename to base/applications/mspaint/winproc.c diff --git a/reactos/base/applications/mspaint/winproc.h b/base/applications/mspaint/winproc.h similarity index 100% rename from reactos/base/applications/mspaint/winproc.h rename to base/applications/mspaint/winproc.h diff --git a/reactos/base/applications/mstsc/CMakeLists.txt b/base/applications/mstsc/CMakeLists.txt similarity index 100% rename from reactos/base/applications/mstsc/CMakeLists.txt rename to base/applications/mstsc/CMakeLists.txt diff --git a/reactos/base/applications/mstsc/bitmap.c b/base/applications/mstsc/bitmap.c similarity index 100% rename from reactos/base/applications/mstsc/bitmap.c rename to base/applications/mstsc/bitmap.c diff --git a/reactos/base/applications/mstsc/bsops.c b/base/applications/mstsc/bsops.c similarity index 100% rename from reactos/base/applications/mstsc/bsops.c rename to base/applications/mstsc/bsops.c diff --git a/reactos/base/applications/mstsc/bsops.h b/base/applications/mstsc/bsops.h similarity index 100% rename from reactos/base/applications/mstsc/bsops.h rename to base/applications/mstsc/bsops.h diff --git a/reactos/base/applications/mstsc/cache.c b/base/applications/mstsc/cache.c similarity index 100% rename from reactos/base/applications/mstsc/cache.c rename to base/applications/mstsc/cache.c diff --git a/reactos/base/applications/mstsc/channels.c b/base/applications/mstsc/channels.c similarity index 100% rename from reactos/base/applications/mstsc/channels.c rename to base/applications/mstsc/channels.c diff --git a/reactos/base/applications/mstsc/connectdialog.c b/base/applications/mstsc/connectdialog.c similarity index 100% rename from reactos/base/applications/mstsc/connectdialog.c rename to base/applications/mstsc/connectdialog.c diff --git a/reactos/base/applications/mstsc/constants.h b/base/applications/mstsc/constants.h similarity index 100% rename from reactos/base/applications/mstsc/constants.h rename to base/applications/mstsc/constants.h diff --git a/reactos/base/applications/mstsc/iso.c b/base/applications/mstsc/iso.c similarity index 100% rename from reactos/base/applications/mstsc/iso.c rename to base/applications/mstsc/iso.c diff --git a/reactos/base/applications/mstsc/lang/bg-BG.rc b/base/applications/mstsc/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/bg-BG.rc rename to base/applications/mstsc/lang/bg-BG.rc diff --git a/reactos/base/applications/mstsc/lang/ca-ES.rc b/base/applications/mstsc/lang/ca-ES.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/ca-ES.rc rename to base/applications/mstsc/lang/ca-ES.rc diff --git a/reactos/base/applications/mstsc/lang/cs-CZ.rc b/base/applications/mstsc/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/cs-CZ.rc rename to base/applications/mstsc/lang/cs-CZ.rc diff --git a/reactos/base/applications/mstsc/lang/de-DE.rc b/base/applications/mstsc/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/de-DE.rc rename to base/applications/mstsc/lang/de-DE.rc diff --git a/reactos/base/applications/mstsc/lang/el-GR.rc b/base/applications/mstsc/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/el-GR.rc rename to base/applications/mstsc/lang/el-GR.rc diff --git a/reactos/base/applications/mstsc/lang/en-US.rc b/base/applications/mstsc/lang/en-US.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/en-US.rc rename to base/applications/mstsc/lang/en-US.rc diff --git a/reactos/base/applications/mstsc/lang/es-ES.rc b/base/applications/mstsc/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/es-ES.rc rename to base/applications/mstsc/lang/es-ES.rc diff --git a/reactos/base/applications/mstsc/lang/fr-FR.rc b/base/applications/mstsc/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/fr-FR.rc rename to base/applications/mstsc/lang/fr-FR.rc diff --git a/reactos/base/applications/mstsc/lang/it-IT.rc b/base/applications/mstsc/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/it-IT.rc rename to base/applications/mstsc/lang/it-IT.rc diff --git a/reactos/base/applications/mstsc/lang/ja-JP.rc b/base/applications/mstsc/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/ja-JP.rc rename to base/applications/mstsc/lang/ja-JP.rc diff --git a/reactos/base/applications/mstsc/lang/ko-KR.rc b/base/applications/mstsc/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/ko-KR.rc rename to base/applications/mstsc/lang/ko-KR.rc diff --git a/reactos/base/applications/mstsc/lang/lt-LT.rc b/base/applications/mstsc/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/lt-LT.rc rename to base/applications/mstsc/lang/lt-LT.rc diff --git a/reactos/base/applications/mstsc/lang/no-NO.rc b/base/applications/mstsc/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/no-NO.rc rename to base/applications/mstsc/lang/no-NO.rc diff --git a/reactos/base/applications/mstsc/lang/pl-PL.rc b/base/applications/mstsc/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/pl-PL.rc rename to base/applications/mstsc/lang/pl-PL.rc diff --git a/reactos/base/applications/mstsc/lang/ro-RO.rc b/base/applications/mstsc/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/ro-RO.rc rename to base/applications/mstsc/lang/ro-RO.rc diff --git a/reactos/base/applications/mstsc/lang/ru-RU.rc b/base/applications/mstsc/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/ru-RU.rc rename to base/applications/mstsc/lang/ru-RU.rc diff --git a/reactos/base/applications/mstsc/lang/sk-SK.rc b/base/applications/mstsc/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/sk-SK.rc rename to base/applications/mstsc/lang/sk-SK.rc diff --git a/reactos/base/applications/mstsc/lang/sv-SE.rc b/base/applications/mstsc/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/sv-SE.rc rename to base/applications/mstsc/lang/sv-SE.rc diff --git a/reactos/base/applications/mstsc/lang/uk-UA.rc b/base/applications/mstsc/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/uk-UA.rc rename to base/applications/mstsc/lang/uk-UA.rc diff --git a/reactos/base/applications/mstsc/lang/zh-CN.rc b/base/applications/mstsc/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/zh-CN.rc rename to base/applications/mstsc/lang/zh-CN.rc diff --git a/reactos/base/applications/mstsc/lang/zh-TW.rc b/base/applications/mstsc/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/mstsc/lang/zh-TW.rc rename to base/applications/mstsc/lang/zh-TW.rc diff --git a/reactos/base/applications/mstsc/licence.c b/base/applications/mstsc/licence.c similarity index 100% rename from reactos/base/applications/mstsc/licence.c rename to base/applications/mstsc/licence.c diff --git a/reactos/base/applications/mstsc/mcs.c b/base/applications/mstsc/mcs.c similarity index 100% rename from reactos/base/applications/mstsc/mcs.c rename to base/applications/mstsc/mcs.c diff --git a/reactos/base/applications/mstsc/mppc.c b/base/applications/mstsc/mppc.c similarity index 100% rename from reactos/base/applications/mstsc/mppc.c rename to base/applications/mstsc/mppc.c diff --git a/reactos/base/applications/mstsc/orders.c b/base/applications/mstsc/orders.c similarity index 100% rename from reactos/base/applications/mstsc/orders.c rename to base/applications/mstsc/orders.c diff --git a/reactos/base/applications/mstsc/orders.h b/base/applications/mstsc/orders.h similarity index 100% rename from reactos/base/applications/mstsc/orders.h rename to base/applications/mstsc/orders.h diff --git a/reactos/base/applications/mstsc/parse.h b/base/applications/mstsc/parse.h similarity index 100% rename from reactos/base/applications/mstsc/parse.h rename to base/applications/mstsc/parse.h diff --git a/reactos/base/applications/mstsc/precomp.h b/base/applications/mstsc/precomp.h similarity index 100% rename from reactos/base/applications/mstsc/precomp.h rename to base/applications/mstsc/precomp.h diff --git a/reactos/base/applications/mstsc/proto.h b/base/applications/mstsc/proto.h similarity index 100% rename from reactos/base/applications/mstsc/proto.h rename to base/applications/mstsc/proto.h diff --git a/reactos/base/applications/mstsc/pstcache.c b/base/applications/mstsc/pstcache.c similarity index 100% rename from reactos/base/applications/mstsc/pstcache.c rename to base/applications/mstsc/pstcache.c diff --git a/reactos/base/applications/mstsc/rdc.rc b/base/applications/mstsc/rdc.rc similarity index 100% rename from reactos/base/applications/mstsc/rdc.rc rename to base/applications/mstsc/rdc.rc diff --git a/reactos/base/applications/mstsc/rdesktop.h b/base/applications/mstsc/rdesktop.h similarity index 100% rename from reactos/base/applications/mstsc/rdesktop.h rename to base/applications/mstsc/rdesktop.h diff --git a/reactos/base/applications/mstsc/rdp.c b/base/applications/mstsc/rdp.c similarity index 100% rename from reactos/base/applications/mstsc/rdp.c rename to base/applications/mstsc/rdp.c diff --git a/reactos/base/applications/mstsc/rdp5.c b/base/applications/mstsc/rdp5.c similarity index 100% rename from reactos/base/applications/mstsc/rdp5.c rename to base/applications/mstsc/rdp5.c diff --git a/reactos/base/applications/mstsc/res/colors.ico b/base/applications/mstsc/res/colors.ico similarity index 100% rename from reactos/base/applications/mstsc/res/colors.ico rename to base/applications/mstsc/res/colors.ico diff --git a/reactos/base/applications/mstsc/res/connection.ico b/base/applications/mstsc/res/connection.ico similarity index 100% rename from reactos/base/applications/mstsc/res/connection.ico rename to base/applications/mstsc/res/connection.ico diff --git a/reactos/base/applications/mstsc/res/header.bmp b/base/applications/mstsc/res/header.bmp similarity index 100% rename from reactos/base/applications/mstsc/res/header.bmp rename to base/applications/mstsc/res/header.bmp diff --git a/reactos/base/applications/mstsc/res/header.pdn b/base/applications/mstsc/res/header.pdn similarity index 100% rename from reactos/base/applications/mstsc/res/header.pdn rename to base/applications/mstsc/res/header.pdn diff --git a/reactos/base/applications/mstsc/res/logon.ico b/base/applications/mstsc/res/logon.ico similarity index 100% rename from reactos/base/applications/mstsc/res/logon.ico rename to base/applications/mstsc/res/logon.ico diff --git a/reactos/base/applications/mstsc/res/mstsc.ico b/base/applications/mstsc/res/mstsc.ico similarity index 100% rename from reactos/base/applications/mstsc/res/mstsc.ico rename to base/applications/mstsc/res/mstsc.ico diff --git a/reactos/base/applications/mstsc/res/remote.ico b/base/applications/mstsc/res/remote.ico similarity index 100% rename from reactos/base/applications/mstsc/res/remote.ico rename to base/applications/mstsc/res/remote.ico diff --git a/reactos/base/applications/mstsc/res/spectrum.bmp b/base/applications/mstsc/res/spectrum.bmp similarity index 100% rename from reactos/base/applications/mstsc/res/spectrum.bmp rename to base/applications/mstsc/res/spectrum.bmp diff --git a/reactos/base/applications/mstsc/res/video-display.png b/base/applications/mstsc/res/video-display.png similarity index 100% rename from reactos/base/applications/mstsc/res/video-display.png rename to base/applications/mstsc/res/video-display.png diff --git a/reactos/base/applications/mstsc/resource.h b/base/applications/mstsc/resource.h similarity index 100% rename from reactos/base/applications/mstsc/resource.h rename to base/applications/mstsc/resource.h diff --git a/reactos/base/applications/mstsc/rsrc.rc b/base/applications/mstsc/rsrc.rc similarity index 100% rename from reactos/base/applications/mstsc/rsrc.rc rename to base/applications/mstsc/rsrc.rc diff --git a/reactos/base/applications/mstsc/secure.c b/base/applications/mstsc/secure.c similarity index 100% rename from reactos/base/applications/mstsc/secure.c rename to base/applications/mstsc/secure.c diff --git a/reactos/base/applications/mstsc/settings.c b/base/applications/mstsc/settings.c similarity index 100% rename from reactos/base/applications/mstsc/settings.c rename to base/applications/mstsc/settings.c diff --git a/reactos/base/applications/mstsc/ssl_calls.c b/base/applications/mstsc/ssl_calls.c similarity index 100% rename from reactos/base/applications/mstsc/ssl_calls.c rename to base/applications/mstsc/ssl_calls.c diff --git a/reactos/base/applications/mstsc/tcp.c b/base/applications/mstsc/tcp.c similarity index 100% rename from reactos/base/applications/mstsc/tcp.c rename to base/applications/mstsc/tcp.c diff --git a/reactos/base/applications/mstsc/types.h b/base/applications/mstsc/types.h similarity index 100% rename from reactos/base/applications/mstsc/types.h rename to base/applications/mstsc/types.h diff --git a/reactos/base/applications/mstsc/uimain.c b/base/applications/mstsc/uimain.c similarity index 100% rename from reactos/base/applications/mstsc/uimain.c rename to base/applications/mstsc/uimain.c diff --git a/reactos/base/applications/mstsc/uimain.h b/base/applications/mstsc/uimain.h similarity index 100% rename from reactos/base/applications/mstsc/uimain.h rename to base/applications/mstsc/uimain.h diff --git a/reactos/base/applications/mstsc/win32.c b/base/applications/mstsc/win32.c similarity index 100% rename from reactos/base/applications/mstsc/win32.c rename to base/applications/mstsc/win32.c diff --git a/reactos/base/applications/network/CMakeLists.txt b/base/applications/network/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/CMakeLists.txt rename to base/applications/network/CMakeLists.txt diff --git a/reactos/base/applications/network/arp/CMakeLists.txt b/base/applications/network/arp/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/arp/CMakeLists.txt rename to base/applications/network/arp/CMakeLists.txt diff --git a/reactos/base/applications/network/arp/arp.c b/base/applications/network/arp/arp.c similarity index 100% rename from reactos/base/applications/network/arp/arp.c rename to base/applications/network/arp/arp.c diff --git a/reactos/base/applications/network/arp/arp.rc b/base/applications/network/arp/arp.rc similarity index 100% rename from reactos/base/applications/network/arp/arp.rc rename to base/applications/network/arp/arp.rc diff --git a/reactos/base/applications/network/dwnl/CMakeLists.txt b/base/applications/network/dwnl/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/dwnl/CMakeLists.txt rename to base/applications/network/dwnl/CMakeLists.txt diff --git a/reactos/base/applications/network/dwnl/dwnl.c b/base/applications/network/dwnl/dwnl.c similarity index 100% rename from reactos/base/applications/network/dwnl/dwnl.c rename to base/applications/network/dwnl/dwnl.c diff --git a/reactos/base/applications/network/finger/CMakeLists.txt b/base/applications/network/finger/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/finger/CMakeLists.txt rename to base/applications/network/finger/CMakeLists.txt diff --git a/reactos/base/applications/network/finger/LICENSE.txt b/base/applications/network/finger/LICENSE.txt similarity index 100% rename from reactos/base/applications/network/finger/LICENSE.txt rename to base/applications/network/finger/LICENSE.txt diff --git a/reactos/base/applications/network/finger/err.c b/base/applications/network/finger/err.c similarity index 100% rename from reactos/base/applications/network/finger/err.c rename to base/applications/network/finger/err.c diff --git a/reactos/base/applications/network/finger/err.h b/base/applications/network/finger/err.h similarity index 100% rename from reactos/base/applications/network/finger/err.h rename to base/applications/network/finger/err.h diff --git a/reactos/base/applications/network/finger/finger.c b/base/applications/network/finger/finger.c similarity index 100% rename from reactos/base/applications/network/finger/finger.c rename to base/applications/network/finger/finger.c diff --git a/reactos/base/applications/network/finger/finger.rc b/base/applications/network/finger/finger.rc similarity index 100% rename from reactos/base/applications/network/finger/finger.rc rename to base/applications/network/finger/finger.rc diff --git a/reactos/base/applications/network/finger/getopt.c b/base/applications/network/finger/getopt.c similarity index 100% rename from reactos/base/applications/network/finger/getopt.c rename to base/applications/network/finger/getopt.c diff --git a/reactos/base/applications/network/finger/getopt.h b/base/applications/network/finger/getopt.h similarity index 100% rename from reactos/base/applications/network/finger/getopt.h rename to base/applications/network/finger/getopt.h diff --git a/reactos/base/applications/network/finger/net.c b/base/applications/network/finger/net.c similarity index 100% rename from reactos/base/applications/network/finger/net.c rename to base/applications/network/finger/net.c diff --git a/reactos/base/applications/network/finger/precomp.h b/base/applications/network/finger/precomp.h similarity index 100% rename from reactos/base/applications/network/finger/precomp.h rename to base/applications/network/finger/precomp.h diff --git a/reactos/base/applications/network/finger/various.h b/base/applications/network/finger/various.h similarity index 100% rename from reactos/base/applications/network/finger/various.h rename to base/applications/network/finger/various.h diff --git a/reactos/base/applications/network/ftp/CMakeLists.txt b/base/applications/network/ftp/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/ftp/CMakeLists.txt rename to base/applications/network/ftp/CMakeLists.txt diff --git a/reactos/base/applications/network/ftp/cmds.c b/base/applications/network/ftp/cmds.c similarity index 100% rename from reactos/base/applications/network/ftp/cmds.c rename to base/applications/network/ftp/cmds.c diff --git a/reactos/base/applications/network/ftp/cmdtab.c b/base/applications/network/ftp/cmdtab.c similarity index 100% rename from reactos/base/applications/network/ftp/cmdtab.c rename to base/applications/network/ftp/cmdtab.c diff --git a/reactos/base/applications/network/ftp/domacro.c b/base/applications/network/ftp/domacro.c similarity index 100% rename from reactos/base/applications/network/ftp/domacro.c rename to base/applications/network/ftp/domacro.c diff --git a/reactos/base/applications/network/ftp/fake.c b/base/applications/network/ftp/fake.c similarity index 100% rename from reactos/base/applications/network/ftp/fake.c rename to base/applications/network/ftp/fake.c diff --git a/reactos/base/applications/network/ftp/fake.h b/base/applications/network/ftp/fake.h similarity index 100% rename from reactos/base/applications/network/ftp/fake.h rename to base/applications/network/ftp/fake.h diff --git a/reactos/base/applications/network/ftp/ftp.c b/base/applications/network/ftp/ftp.c similarity index 100% rename from reactos/base/applications/network/ftp/ftp.c rename to base/applications/network/ftp/ftp.c diff --git a/reactos/base/applications/network/ftp/ftp.rc b/base/applications/network/ftp/ftp.rc similarity index 100% rename from reactos/base/applications/network/ftp/ftp.rc rename to base/applications/network/ftp/ftp.rc diff --git a/reactos/base/applications/network/ftp/ftp_var.h b/base/applications/network/ftp/ftp_var.h similarity index 100% rename from reactos/base/applications/network/ftp/ftp_var.h rename to base/applications/network/ftp/ftp_var.h diff --git a/reactos/base/applications/network/ftp/main.c b/base/applications/network/ftp/main.c similarity index 100% rename from reactos/base/applications/network/ftp/main.c rename to base/applications/network/ftp/main.c diff --git a/reactos/base/applications/network/ftp/pathnames.h b/base/applications/network/ftp/pathnames.h similarity index 100% rename from reactos/base/applications/network/ftp/pathnames.h rename to base/applications/network/ftp/pathnames.h diff --git a/reactos/base/applications/network/ftp/precomp.h b/base/applications/network/ftp/precomp.h similarity index 100% rename from reactos/base/applications/network/ftp/precomp.h rename to base/applications/network/ftp/precomp.h diff --git a/reactos/base/applications/network/ftp/prototypes.h b/base/applications/network/ftp/prototypes.h similarity index 100% rename from reactos/base/applications/network/ftp/prototypes.h rename to base/applications/network/ftp/prototypes.h diff --git a/reactos/base/applications/network/ftp/ruserpass.c b/base/applications/network/ftp/ruserpass.c similarity index 100% rename from reactos/base/applications/network/ftp/ruserpass.c rename to base/applications/network/ftp/ruserpass.c diff --git a/reactos/base/applications/network/ipconfig/CMakeLists.txt b/base/applications/network/ipconfig/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/ipconfig/CMakeLists.txt rename to base/applications/network/ipconfig/CMakeLists.txt diff --git a/reactos/base/applications/network/ipconfig/ipconfig.c b/base/applications/network/ipconfig/ipconfig.c similarity index 100% rename from reactos/base/applications/network/ipconfig/ipconfig.c rename to base/applications/network/ipconfig/ipconfig.c diff --git a/reactos/base/applications/network/ipconfig/ipconfig.rc b/base/applications/network/ipconfig/ipconfig.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/ipconfig.rc rename to base/applications/network/ipconfig/ipconfig.rc diff --git a/reactos/base/applications/network/ipconfig/lang/bg-BG.rc b/base/applications/network/ipconfig/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/bg-BG.rc rename to base/applications/network/ipconfig/lang/bg-BG.rc diff --git a/reactos/base/applications/network/ipconfig/lang/de-DE.rc b/base/applications/network/ipconfig/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/de-DE.rc rename to base/applications/network/ipconfig/lang/de-DE.rc diff --git a/reactos/base/applications/network/ipconfig/lang/el-GR.rc b/base/applications/network/ipconfig/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/el-GR.rc rename to base/applications/network/ipconfig/lang/el-GR.rc diff --git a/reactos/base/applications/network/ipconfig/lang/en-US.rc b/base/applications/network/ipconfig/lang/en-US.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/en-US.rc rename to base/applications/network/ipconfig/lang/en-US.rc diff --git a/reactos/base/applications/network/ipconfig/lang/es-ES.rc b/base/applications/network/ipconfig/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/es-ES.rc rename to base/applications/network/ipconfig/lang/es-ES.rc diff --git a/reactos/base/applications/network/ipconfig/lang/fr-FR.rc b/base/applications/network/ipconfig/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/fr-FR.rc rename to base/applications/network/ipconfig/lang/fr-FR.rc diff --git a/reactos/base/applications/network/ipconfig/lang/id-ID.rc b/base/applications/network/ipconfig/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/id-ID.rc rename to base/applications/network/ipconfig/lang/id-ID.rc diff --git a/reactos/base/applications/network/ipconfig/lang/it-IT.rc b/base/applications/network/ipconfig/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/it-IT.rc rename to base/applications/network/ipconfig/lang/it-IT.rc diff --git a/reactos/base/applications/network/ipconfig/lang/no-NO.rc b/base/applications/network/ipconfig/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/no-NO.rc rename to base/applications/network/ipconfig/lang/no-NO.rc diff --git a/reactos/base/applications/network/ipconfig/lang/pl-PL.rc b/base/applications/network/ipconfig/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/pl-PL.rc rename to base/applications/network/ipconfig/lang/pl-PL.rc diff --git a/reactos/base/applications/network/ipconfig/lang/ro-RO.rc b/base/applications/network/ipconfig/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/ro-RO.rc rename to base/applications/network/ipconfig/lang/ro-RO.rc diff --git a/reactos/base/applications/network/ipconfig/lang/ru-RU.rc b/base/applications/network/ipconfig/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/ru-RU.rc rename to base/applications/network/ipconfig/lang/ru-RU.rc diff --git a/reactos/base/applications/network/ipconfig/lang/sk-SK.rc b/base/applications/network/ipconfig/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/sk-SK.rc rename to base/applications/network/ipconfig/lang/sk-SK.rc diff --git a/reactos/base/applications/network/ipconfig/lang/sv-SE.rc b/base/applications/network/ipconfig/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/sv-SE.rc rename to base/applications/network/ipconfig/lang/sv-SE.rc diff --git a/reactos/base/applications/network/ipconfig/lang/uk-UA.rc b/base/applications/network/ipconfig/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/uk-UA.rc rename to base/applications/network/ipconfig/lang/uk-UA.rc diff --git a/reactos/base/applications/network/ipconfig/lang/zh-CN.rc b/base/applications/network/ipconfig/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/network/ipconfig/lang/zh-CN.rc rename to base/applications/network/ipconfig/lang/zh-CN.rc diff --git a/reactos/base/applications/network/ipconfig/resource.h b/base/applications/network/ipconfig/resource.h similarity index 100% rename from reactos/base/applications/network/ipconfig/resource.h rename to base/applications/network/ipconfig/resource.h diff --git a/reactos/base/applications/network/net/CMakeLists.txt b/base/applications/network/net/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/net/CMakeLists.txt rename to base/applications/network/net/CMakeLists.txt diff --git a/reactos/base/applications/network/net/cmdStop.c b/base/applications/network/net/cmdStop.c similarity index 100% rename from reactos/base/applications/network/net/cmdStop.c rename to base/applications/network/net/cmdStop.c diff --git a/reactos/base/applications/network/net/cmdstart.c b/base/applications/network/net/cmdstart.c similarity index 100% rename from reactos/base/applications/network/net/cmdstart.c rename to base/applications/network/net/cmdstart.c diff --git a/reactos/base/applications/network/net/help.c b/base/applications/network/net/help.c similarity index 100% rename from reactos/base/applications/network/net/help.c rename to base/applications/network/net/help.c diff --git a/reactos/base/applications/network/net/main.c b/base/applications/network/net/main.c similarity index 100% rename from reactos/base/applications/network/net/main.c rename to base/applications/network/net/main.c diff --git a/reactos/base/applications/network/net/net.h b/base/applications/network/net/net.h similarity index 100% rename from reactos/base/applications/network/net/net.h rename to base/applications/network/net/net.h diff --git a/reactos/base/applications/network/netsh/CMakeLists.txt b/base/applications/network/netsh/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/netsh/CMakeLists.txt rename to base/applications/network/netsh/CMakeLists.txt diff --git a/reactos/base/applications/network/netsh/netsh.c b/base/applications/network/netsh/netsh.c similarity index 100% rename from reactos/base/applications/network/netsh/netsh.c rename to base/applications/network/netsh/netsh.c diff --git a/reactos/base/applications/network/netstat/CMakeLists.txt b/base/applications/network/netstat/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/netstat/CMakeLists.txt rename to base/applications/network/netstat/CMakeLists.txt diff --git a/reactos/base/applications/network/netstat/netstat.c b/base/applications/network/netstat/netstat.c similarity index 100% rename from reactos/base/applications/network/netstat/netstat.c rename to base/applications/network/netstat/netstat.c diff --git a/reactos/base/applications/network/netstat/netstat.h b/base/applications/network/netstat/netstat.h similarity index 100% rename from reactos/base/applications/network/netstat/netstat.h rename to base/applications/network/netstat/netstat.h diff --git a/reactos/base/applications/network/netstat/netstat.rc b/base/applications/network/netstat/netstat.rc similarity index 100% rename from reactos/base/applications/network/netstat/netstat.rc rename to base/applications/network/netstat/netstat.rc diff --git a/reactos/base/applications/network/nslookup/CMakeLists.txt b/base/applications/network/nslookup/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/nslookup/CMakeLists.txt rename to base/applications/network/nslookup/CMakeLists.txt diff --git a/reactos/base/applications/network/nslookup/nslookup.c b/base/applications/network/nslookup/nslookup.c similarity index 100% rename from reactos/base/applications/network/nslookup/nslookup.c rename to base/applications/network/nslookup/nslookup.c diff --git a/reactos/base/applications/network/nslookup/nslookup.h b/base/applications/network/nslookup/nslookup.h similarity index 100% rename from reactos/base/applications/network/nslookup/nslookup.h rename to base/applications/network/nslookup/nslookup.h diff --git a/reactos/base/applications/network/nslookup/nslookup.rc b/base/applications/network/nslookup/nslookup.rc similarity index 100% rename from reactos/base/applications/network/nslookup/nslookup.rc rename to base/applications/network/nslookup/nslookup.rc diff --git a/reactos/base/applications/network/nslookup/utility.c b/base/applications/network/nslookup/utility.c similarity index 100% rename from reactos/base/applications/network/nslookup/utility.c rename to base/applications/network/nslookup/utility.c diff --git a/reactos/base/applications/network/ping/CMakeLists.txt b/base/applications/network/ping/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/ping/CMakeLists.txt rename to base/applications/network/ping/CMakeLists.txt diff --git a/reactos/base/applications/network/ping/lang/bg-BG.rc b/base/applications/network/ping/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/network/ping/lang/bg-BG.rc rename to base/applications/network/ping/lang/bg-BG.rc diff --git a/reactos/base/applications/network/ping/lang/cs-CZ.rc b/base/applications/network/ping/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/network/ping/lang/cs-CZ.rc rename to base/applications/network/ping/lang/cs-CZ.rc diff --git a/reactos/base/applications/network/ping/lang/de-DE.rc b/base/applications/network/ping/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/network/ping/lang/de-DE.rc rename to base/applications/network/ping/lang/de-DE.rc diff --git a/reactos/base/applications/network/ping/lang/en-US.rc b/base/applications/network/ping/lang/en-US.rc similarity index 100% rename from reactos/base/applications/network/ping/lang/en-US.rc rename to base/applications/network/ping/lang/en-US.rc diff --git a/reactos/base/applications/network/ping/lang/fr-FR.rc b/base/applications/network/ping/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/network/ping/lang/fr-FR.rc rename to base/applications/network/ping/lang/fr-FR.rc diff --git a/reactos/base/applications/network/ping/lang/it-IT.rc b/base/applications/network/ping/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/network/ping/lang/it-IT.rc rename to base/applications/network/ping/lang/it-IT.rc diff --git a/reactos/base/applications/network/ping/lang/pl-PL.rc b/base/applications/network/ping/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/network/ping/lang/pl-PL.rc rename to base/applications/network/ping/lang/pl-PL.rc diff --git a/reactos/base/applications/network/ping/lang/ro-RO.rc b/base/applications/network/ping/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/network/ping/lang/ro-RO.rc rename to base/applications/network/ping/lang/ro-RO.rc diff --git a/reactos/base/applications/network/ping/lang/sv-SE.rc b/base/applications/network/ping/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/network/ping/lang/sv-SE.rc rename to base/applications/network/ping/lang/sv-SE.rc diff --git a/reactos/base/applications/network/ping/lang/uk-UA.rc b/base/applications/network/ping/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/network/ping/lang/uk-UA.rc rename to base/applications/network/ping/lang/uk-UA.rc diff --git a/reactos/base/applications/network/ping/lang/zh-CN.rc b/base/applications/network/ping/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/network/ping/lang/zh-CN.rc rename to base/applications/network/ping/lang/zh-CN.rc diff --git a/reactos/base/applications/network/ping/ping.c b/base/applications/network/ping/ping.c similarity index 100% rename from reactos/base/applications/network/ping/ping.c rename to base/applications/network/ping/ping.c diff --git a/reactos/base/applications/network/ping/ping.rc b/base/applications/network/ping/ping.rc similarity index 100% rename from reactos/base/applications/network/ping/ping.rc rename to base/applications/network/ping/ping.rc diff --git a/reactos/base/applications/network/ping/resource.h b/base/applications/network/ping/resource.h similarity index 100% rename from reactos/base/applications/network/ping/resource.h rename to base/applications/network/ping/resource.h diff --git a/reactos/base/applications/network/route/CMakeLists.txt b/base/applications/network/route/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/route/CMakeLists.txt rename to base/applications/network/route/CMakeLists.txt diff --git a/reactos/base/applications/network/route/route.c b/base/applications/network/route/route.c similarity index 100% rename from reactos/base/applications/network/route/route.c rename to base/applications/network/route/route.c diff --git a/reactos/base/applications/network/route/route.rc b/base/applications/network/route/route.rc similarity index 100% rename from reactos/base/applications/network/route/route.rc rename to base/applications/network/route/route.rc diff --git a/reactos/base/applications/network/telnet/CMakeLists.txt b/base/applications/network/telnet/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/telnet/CMakeLists.txt rename to base/applications/network/telnet/CMakeLists.txt diff --git a/reactos/base/applications/network/telnet/Makefile.mingw b/base/applications/network/telnet/Makefile.mingw similarity index 100% rename from reactos/base/applications/network/telnet/Makefile.mingw rename to base/applications/network/telnet/Makefile.mingw diff --git a/reactos/base/applications/network/telnet/doc/00readme.avs b/base/applications/network/telnet/doc/00readme.avs similarity index 100% rename from reactos/base/applications/network/telnet/doc/00readme.avs rename to base/applications/network/telnet/doc/00readme.avs diff --git a/reactos/base/applications/network/telnet/doc/bugs.txt b/base/applications/network/telnet/doc/bugs.txt similarity index 100% rename from reactos/base/applications/network/telnet/doc/bugs.txt rename to base/applications/network/telnet/doc/bugs.txt diff --git a/reactos/base/applications/network/telnet/doc/changes.txt b/base/applications/network/telnet/doc/changes.txt similarity index 100% rename from reactos/base/applications/network/telnet/doc/changes.txt rename to base/applications/network/telnet/doc/changes.txt diff --git a/reactos/base/applications/network/telnet/doc/license.txt b/base/applications/network/telnet/doc/license.txt similarity index 100% rename from reactos/base/applications/network/telnet/doc/license.txt rename to base/applications/network/telnet/doc/license.txt diff --git a/reactos/base/applications/network/telnet/doc/options.txt b/base/applications/network/telnet/doc/options.txt similarity index 100% rename from reactos/base/applications/network/telnet/doc/options.txt rename to base/applications/network/telnet/doc/options.txt diff --git a/reactos/base/applications/network/telnet/doc/readme.txt b/base/applications/network/telnet/doc/readme.txt similarity index 100% rename from reactos/base/applications/network/telnet/doc/readme.txt rename to base/applications/network/telnet/doc/readme.txt diff --git a/reactos/base/applications/network/telnet/doc/ssh.txt b/base/applications/network/telnet/doc/ssh.txt similarity index 100% rename from reactos/base/applications/network/telnet/doc/ssh.txt rename to base/applications/network/telnet/doc/ssh.txt diff --git a/reactos/base/applications/network/telnet/resource/tnmsg.h b/base/applications/network/telnet/resource/tnmsg.h similarity index 100% rename from reactos/base/applications/network/telnet/resource/tnmsg.h rename to base/applications/network/telnet/resource/tnmsg.h diff --git a/reactos/base/applications/network/telnet/resource/tnmsg.rc b/base/applications/network/telnet/resource/tnmsg.rc similarity index 100% rename from reactos/base/applications/network/telnet/resource/tnmsg.rc rename to base/applications/network/telnet/resource/tnmsg.rc diff --git a/reactos/base/applications/network/telnet/src/ansiprsr.cpp b/base/applications/network/telnet/src/ansiprsr.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/ansiprsr.cpp rename to base/applications/network/telnet/src/ansiprsr.cpp diff --git a/reactos/base/applications/network/telnet/src/ansiprsr.h b/base/applications/network/telnet/src/ansiprsr.h similarity index 100% rename from reactos/base/applications/network/telnet/src/ansiprsr.h rename to base/applications/network/telnet/src/ansiprsr.h diff --git a/reactos/base/applications/network/telnet/src/keytrans.cpp b/base/applications/network/telnet/src/keytrans.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/keytrans.cpp rename to base/applications/network/telnet/src/keytrans.cpp diff --git a/reactos/base/applications/network/telnet/src/keytrans.h b/base/applications/network/telnet/src/keytrans.h similarity index 100% rename from reactos/base/applications/network/telnet/src/keytrans.h rename to base/applications/network/telnet/src/keytrans.h diff --git a/reactos/base/applications/network/telnet/src/precomp.h b/base/applications/network/telnet/src/precomp.h similarity index 100% rename from reactos/base/applications/network/telnet/src/precomp.h rename to base/applications/network/telnet/src/precomp.h diff --git a/reactos/base/applications/network/telnet/src/stl_bids.h b/base/applications/network/telnet/src/stl_bids.h similarity index 100% rename from reactos/base/applications/network/telnet/src/stl_bids.h rename to base/applications/network/telnet/src/stl_bids.h diff --git a/reactos/base/applications/network/telnet/src/tcharmap.cpp b/base/applications/network/telnet/src/tcharmap.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tcharmap.cpp rename to base/applications/network/telnet/src/tcharmap.cpp diff --git a/reactos/base/applications/network/telnet/src/tcharmap.h b/base/applications/network/telnet/src/tcharmap.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tcharmap.h rename to base/applications/network/telnet/src/tcharmap.h diff --git a/reactos/base/applications/network/telnet/src/tconsole.cpp b/base/applications/network/telnet/src/tconsole.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tconsole.cpp rename to base/applications/network/telnet/src/tconsole.cpp diff --git a/reactos/base/applications/network/telnet/src/tconsole.h b/base/applications/network/telnet/src/tconsole.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tconsole.h rename to base/applications/network/telnet/src/tconsole.h diff --git a/reactos/base/applications/network/telnet/src/telnet.h b/base/applications/network/telnet/src/telnet.h similarity index 100% rename from reactos/base/applications/network/telnet/src/telnet.h rename to base/applications/network/telnet/src/telnet.h diff --git a/reactos/base/applications/network/telnet/src/tkeydef.cpp b/base/applications/network/telnet/src/tkeydef.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tkeydef.cpp rename to base/applications/network/telnet/src/tkeydef.cpp diff --git a/reactos/base/applications/network/telnet/src/tkeydef.h b/base/applications/network/telnet/src/tkeydef.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tkeydef.h rename to base/applications/network/telnet/src/tkeydef.h diff --git a/reactos/base/applications/network/telnet/src/tkeymap.cpp b/base/applications/network/telnet/src/tkeymap.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tkeymap.cpp rename to base/applications/network/telnet/src/tkeymap.cpp diff --git a/reactos/base/applications/network/telnet/src/tkeymap.h b/base/applications/network/telnet/src/tkeymap.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tkeymap.h rename to base/applications/network/telnet/src/tkeymap.h diff --git a/reactos/base/applications/network/telnet/src/tmapldr.cpp b/base/applications/network/telnet/src/tmapldr.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tmapldr.cpp rename to base/applications/network/telnet/src/tmapldr.cpp diff --git a/reactos/base/applications/network/telnet/src/tmapldr.h b/base/applications/network/telnet/src/tmapldr.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tmapldr.h rename to base/applications/network/telnet/src/tmapldr.h diff --git a/reactos/base/applications/network/telnet/src/tmouse.cpp b/base/applications/network/telnet/src/tmouse.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tmouse.cpp rename to base/applications/network/telnet/src/tmouse.cpp diff --git a/reactos/base/applications/network/telnet/src/tmouse.h b/base/applications/network/telnet/src/tmouse.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tmouse.h rename to base/applications/network/telnet/src/tmouse.h diff --git a/reactos/base/applications/network/telnet/src/tnclass.cpp b/base/applications/network/telnet/src/tnclass.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tnclass.cpp rename to base/applications/network/telnet/src/tnclass.cpp diff --git a/reactos/base/applications/network/telnet/src/tnclass.h b/base/applications/network/telnet/src/tnclass.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tnclass.h rename to base/applications/network/telnet/src/tnclass.h diff --git a/reactos/base/applications/network/telnet/src/tnclip.cpp b/base/applications/network/telnet/src/tnclip.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tnclip.cpp rename to base/applications/network/telnet/src/tnclip.cpp diff --git a/reactos/base/applications/network/telnet/src/tnclip.h b/base/applications/network/telnet/src/tnclip.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tnclip.h rename to base/applications/network/telnet/src/tnclip.h diff --git a/reactos/base/applications/network/telnet/src/tncon.cpp b/base/applications/network/telnet/src/tncon.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tncon.cpp rename to base/applications/network/telnet/src/tncon.cpp diff --git a/reactos/base/applications/network/telnet/src/tncon.h b/base/applications/network/telnet/src/tncon.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tncon.h rename to base/applications/network/telnet/src/tncon.h diff --git a/reactos/base/applications/network/telnet/src/tnconfig.cpp b/base/applications/network/telnet/src/tnconfig.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tnconfig.cpp rename to base/applications/network/telnet/src/tnconfig.cpp diff --git a/reactos/base/applications/network/telnet/src/tnconfig.h b/base/applications/network/telnet/src/tnconfig.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tnconfig.h rename to base/applications/network/telnet/src/tnconfig.h diff --git a/reactos/base/applications/network/telnet/src/tnerror.cpp b/base/applications/network/telnet/src/tnerror.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tnerror.cpp rename to base/applications/network/telnet/src/tnerror.cpp diff --git a/reactos/base/applications/network/telnet/src/tnerror.h b/base/applications/network/telnet/src/tnerror.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tnerror.h rename to base/applications/network/telnet/src/tnerror.h diff --git a/reactos/base/applications/network/telnet/src/tnetwork.cpp b/base/applications/network/telnet/src/tnetwork.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tnetwork.cpp rename to base/applications/network/telnet/src/tnetwork.cpp diff --git a/reactos/base/applications/network/telnet/src/tnetwork.h b/base/applications/network/telnet/src/tnetwork.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tnetwork.h rename to base/applications/network/telnet/src/tnetwork.h diff --git a/reactos/base/applications/network/telnet/src/tnmain.cpp b/base/applications/network/telnet/src/tnmain.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tnmain.cpp rename to base/applications/network/telnet/src/tnmain.cpp diff --git a/reactos/base/applications/network/telnet/src/tnmain.h b/base/applications/network/telnet/src/tnmain.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tnmain.h rename to base/applications/network/telnet/src/tnmain.h diff --git a/reactos/base/applications/network/telnet/src/tnmisc.cpp b/base/applications/network/telnet/src/tnmisc.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tnmisc.cpp rename to base/applications/network/telnet/src/tnmisc.cpp diff --git a/reactos/base/applications/network/telnet/src/tnmisc.h b/base/applications/network/telnet/src/tnmisc.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tnmisc.h rename to base/applications/network/telnet/src/tnmisc.h diff --git a/reactos/base/applications/network/telnet/src/tnmsg.h b/base/applications/network/telnet/src/tnmsg.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tnmsg.h rename to base/applications/network/telnet/src/tnmsg.h diff --git a/reactos/base/applications/network/telnet/src/tparams.h b/base/applications/network/telnet/src/tparams.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tparams.h rename to base/applications/network/telnet/src/tparams.h diff --git a/reactos/base/applications/network/telnet/src/tparser.h b/base/applications/network/telnet/src/tparser.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tparser.h rename to base/applications/network/telnet/src/tparser.h diff --git a/reactos/base/applications/network/telnet/src/tscript.cpp b/base/applications/network/telnet/src/tscript.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tscript.cpp rename to base/applications/network/telnet/src/tscript.cpp diff --git a/reactos/base/applications/network/telnet/src/tscript.h b/base/applications/network/telnet/src/tscript.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tscript.h rename to base/applications/network/telnet/src/tscript.h diff --git a/reactos/base/applications/network/telnet/src/tscroll.cpp b/base/applications/network/telnet/src/tscroll.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/tscroll.cpp rename to base/applications/network/telnet/src/tscroll.cpp diff --git a/reactos/base/applications/network/telnet/src/tscroll.h b/base/applications/network/telnet/src/tscroll.h similarity index 100% rename from reactos/base/applications/network/telnet/src/tscroll.h rename to base/applications/network/telnet/src/tscroll.h diff --git a/reactos/base/applications/network/telnet/src/ttelhndl.cpp b/base/applications/network/telnet/src/ttelhndl.cpp similarity index 100% rename from reactos/base/applications/network/telnet/src/ttelhndl.cpp rename to base/applications/network/telnet/src/ttelhndl.cpp diff --git a/reactos/base/applications/network/telnet/src/ttelhndl.h b/base/applications/network/telnet/src/ttelhndl.h similarity index 100% rename from reactos/base/applications/network/telnet/src/ttelhndl.h rename to base/applications/network/telnet/src/ttelhndl.h diff --git a/reactos/base/applications/network/telnet/telnet.cfg b/base/applications/network/telnet/telnet.cfg similarity index 100% rename from reactos/base/applications/network/telnet/telnet.cfg rename to base/applications/network/telnet/telnet.cfg diff --git a/reactos/base/applications/network/telnet/telnet.ico b/base/applications/network/telnet/telnet.ico similarity index 100% rename from reactos/base/applications/network/telnet/telnet.ico rename to base/applications/network/telnet/telnet.ico diff --git a/reactos/base/applications/network/telnet/telnet.ini b/base/applications/network/telnet/telnet.ini similarity index 100% rename from reactos/base/applications/network/telnet/telnet.ini rename to base/applications/network/telnet/telnet.ini diff --git a/reactos/base/applications/network/telnet/telnet.rc b/base/applications/network/telnet/telnet.rc similarity index 100% rename from reactos/base/applications/network/telnet/telnet.rc rename to base/applications/network/telnet/telnet.rc diff --git a/reactos/base/applications/network/tracert/CMakeLists.txt b/base/applications/network/tracert/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/tracert/CMakeLists.txt rename to base/applications/network/tracert/CMakeLists.txt diff --git a/reactos/base/applications/network/tracert/tracert.c b/base/applications/network/tracert/tracert.c similarity index 100% rename from reactos/base/applications/network/tracert/tracert.c rename to base/applications/network/tracert/tracert.c diff --git a/reactos/base/applications/network/tracert/tracert.h b/base/applications/network/tracert/tracert.h similarity index 100% rename from reactos/base/applications/network/tracert/tracert.h rename to base/applications/network/tracert/tracert.h diff --git a/reactos/base/applications/network/tracert/tracert.rc b/base/applications/network/tracert/tracert.rc similarity index 100% rename from reactos/base/applications/network/tracert/tracert.rc rename to base/applications/network/tracert/tracert.rc diff --git a/reactos/base/applications/network/whois/CMakeLists.txt b/base/applications/network/whois/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/whois/CMakeLists.txt rename to base/applications/network/whois/CMakeLists.txt diff --git a/reactos/base/applications/network/whois/LICENSE.txt b/base/applications/network/whois/LICENSE.txt similarity index 100% rename from reactos/base/applications/network/whois/LICENSE.txt rename to base/applications/network/whois/LICENSE.txt diff --git a/reactos/base/applications/network/whois/whois.c b/base/applications/network/whois/whois.c similarity index 100% rename from reactos/base/applications/network/whois/whois.c rename to base/applications/network/whois/whois.c diff --git a/reactos/base/applications/network/whois/whois.rc b/base/applications/network/whois/whois.rc similarity index 100% rename from reactos/base/applications/network/whois/whois.rc rename to base/applications/network/whois/whois.rc diff --git a/reactos/base/applications/network/wlanconf/CMakeLists.txt b/base/applications/network/wlanconf/CMakeLists.txt similarity index 100% rename from reactos/base/applications/network/wlanconf/CMakeLists.txt rename to base/applications/network/wlanconf/CMakeLists.txt diff --git a/reactos/base/applications/network/wlanconf/lang/en-US.rc b/base/applications/network/wlanconf/lang/en-US.rc similarity index 100% rename from reactos/base/applications/network/wlanconf/lang/en-US.rc rename to base/applications/network/wlanconf/lang/en-US.rc diff --git a/reactos/base/applications/network/wlanconf/resource.h b/base/applications/network/wlanconf/resource.h similarity index 100% rename from reactos/base/applications/network/wlanconf/resource.h rename to base/applications/network/wlanconf/resource.h diff --git a/reactos/base/applications/network/wlanconf/wlanconf.c b/base/applications/network/wlanconf/wlanconf.c similarity index 100% rename from reactos/base/applications/network/wlanconf/wlanconf.c rename to base/applications/network/wlanconf/wlanconf.c diff --git a/reactos/base/applications/network/wlanconf/wlanconf.rc b/base/applications/network/wlanconf/wlanconf.rc similarity index 100% rename from reactos/base/applications/network/wlanconf/wlanconf.rc rename to base/applications/network/wlanconf/wlanconf.rc diff --git a/reactos/base/applications/notepad/CMakeLists.txt b/base/applications/notepad/CMakeLists.txt similarity index 100% rename from reactos/base/applications/notepad/CMakeLists.txt rename to base/applications/notepad/CMakeLists.txt diff --git a/reactos/base/applications/notepad/ChangeLog b/base/applications/notepad/ChangeLog similarity index 100% rename from reactos/base/applications/notepad/ChangeLog rename to base/applications/notepad/ChangeLog diff --git a/reactos/base/applications/notepad/dialog.c b/base/applications/notepad/dialog.c similarity index 100% rename from reactos/base/applications/notepad/dialog.c rename to base/applications/notepad/dialog.c diff --git a/reactos/base/applications/notepad/dialog.h b/base/applications/notepad/dialog.h similarity index 100% rename from reactos/base/applications/notepad/dialog.h rename to base/applications/notepad/dialog.h diff --git a/reactos/base/applications/notepad/lang/bg-BG.rc b/base/applications/notepad/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/notepad/lang/bg-BG.rc rename to base/applications/notepad/lang/bg-BG.rc diff --git a/reactos/base/applications/notepad/lang/cs-CZ.rc b/base/applications/notepad/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/notepad/lang/cs-CZ.rc rename to base/applications/notepad/lang/cs-CZ.rc diff --git a/reactos/base/applications/notepad/lang/da-DK.rc b/base/applications/notepad/lang/da-DK.rc similarity index 100% rename from reactos/base/applications/notepad/lang/da-DK.rc rename to base/applications/notepad/lang/da-DK.rc diff --git a/reactos/base/applications/notepad/lang/de-DE.rc b/base/applications/notepad/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/notepad/lang/de-DE.rc rename to base/applications/notepad/lang/de-DE.rc diff --git a/reactos/base/applications/notepad/lang/el-GR.rc b/base/applications/notepad/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/notepad/lang/el-GR.rc rename to base/applications/notepad/lang/el-GR.rc diff --git a/reactos/base/applications/notepad/lang/en-US.rc b/base/applications/notepad/lang/en-US.rc similarity index 100% rename from reactos/base/applications/notepad/lang/en-US.rc rename to base/applications/notepad/lang/en-US.rc diff --git a/reactos/base/applications/notepad/lang/es-ES.rc b/base/applications/notepad/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/notepad/lang/es-ES.rc rename to base/applications/notepad/lang/es-ES.rc diff --git a/reactos/base/applications/notepad/lang/eu-ES.rc b/base/applications/notepad/lang/eu-ES.rc similarity index 100% rename from reactos/base/applications/notepad/lang/eu-ES.rc rename to base/applications/notepad/lang/eu-ES.rc diff --git a/reactos/base/applications/notepad/lang/fi-FI.rc b/base/applications/notepad/lang/fi-FI.rc similarity index 100% rename from reactos/base/applications/notepad/lang/fi-FI.rc rename to base/applications/notepad/lang/fi-FI.rc diff --git a/reactos/base/applications/notepad/lang/fr-FR.rc b/base/applications/notepad/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/notepad/lang/fr-FR.rc rename to base/applications/notepad/lang/fr-FR.rc diff --git a/reactos/base/applications/notepad/lang/hu-HU.rc b/base/applications/notepad/lang/hu-HU.rc similarity index 100% rename from reactos/base/applications/notepad/lang/hu-HU.rc rename to base/applications/notepad/lang/hu-HU.rc diff --git a/reactos/base/applications/notepad/lang/hy-AM.rc b/base/applications/notepad/lang/hy-AM.rc similarity index 100% rename from reactos/base/applications/notepad/lang/hy-AM.rc rename to base/applications/notepad/lang/hy-AM.rc diff --git a/reactos/base/applications/notepad/lang/id-ID.rc b/base/applications/notepad/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/notepad/lang/id-ID.rc rename to base/applications/notepad/lang/id-ID.rc diff --git a/reactos/base/applications/notepad/lang/it-IT.rc b/base/applications/notepad/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/notepad/lang/it-IT.rc rename to base/applications/notepad/lang/it-IT.rc diff --git a/reactos/base/applications/notepad/lang/ja-JP.rc b/base/applications/notepad/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/notepad/lang/ja-JP.rc rename to base/applications/notepad/lang/ja-JP.rc diff --git a/reactos/base/applications/notepad/lang/lt-LT.rc b/base/applications/notepad/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/notepad/lang/lt-LT.rc rename to base/applications/notepad/lang/lt-LT.rc diff --git a/reactos/base/applications/notepad/lang/nl-NL.rc b/base/applications/notepad/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/notepad/lang/nl-NL.rc rename to base/applications/notepad/lang/nl-NL.rc diff --git a/reactos/base/applications/notepad/lang/no-NO.rc b/base/applications/notepad/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/notepad/lang/no-NO.rc rename to base/applications/notepad/lang/no-NO.rc diff --git a/reactos/base/applications/notepad/lang/pl-PL.rc b/base/applications/notepad/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/notepad/lang/pl-PL.rc rename to base/applications/notepad/lang/pl-PL.rc diff --git a/reactos/base/applications/notepad/lang/pt-BR.rc b/base/applications/notepad/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/notepad/lang/pt-BR.rc rename to base/applications/notepad/lang/pt-BR.rc diff --git a/reactos/base/applications/notepad/lang/pt-PT.rc b/base/applications/notepad/lang/pt-PT.rc similarity index 100% rename from reactos/base/applications/notepad/lang/pt-PT.rc rename to base/applications/notepad/lang/pt-PT.rc diff --git a/reactos/base/applications/notepad/lang/ro-RO.rc b/base/applications/notepad/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/notepad/lang/ro-RO.rc rename to base/applications/notepad/lang/ro-RO.rc diff --git a/reactos/base/applications/notepad/lang/ru-RU.rc b/base/applications/notepad/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/notepad/lang/ru-RU.rc rename to base/applications/notepad/lang/ru-RU.rc diff --git a/reactos/base/applications/notepad/lang/sk-SK.rc b/base/applications/notepad/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/notepad/lang/sk-SK.rc rename to base/applications/notepad/lang/sk-SK.rc diff --git a/reactos/base/applications/notepad/lang/sl-SI.rc b/base/applications/notepad/lang/sl-SI.rc similarity index 100% rename from reactos/base/applications/notepad/lang/sl-SI.rc rename to base/applications/notepad/lang/sl-SI.rc diff --git a/reactos/base/applications/notepad/lang/sv-SE.rc b/base/applications/notepad/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/notepad/lang/sv-SE.rc rename to base/applications/notepad/lang/sv-SE.rc diff --git a/reactos/base/applications/notepad/lang/th-TH.rc b/base/applications/notepad/lang/th-TH.rc similarity index 100% rename from reactos/base/applications/notepad/lang/th-TH.rc rename to base/applications/notepad/lang/th-TH.rc diff --git a/reactos/base/applications/notepad/lang/tr-TR.rc b/base/applications/notepad/lang/tr-TR.rc similarity index 100% rename from reactos/base/applications/notepad/lang/tr-TR.rc rename to base/applications/notepad/lang/tr-TR.rc diff --git a/reactos/base/applications/notepad/lang/uk-UA.rc b/base/applications/notepad/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/notepad/lang/uk-UA.rc rename to base/applications/notepad/lang/uk-UA.rc diff --git a/reactos/base/applications/notepad/lang/zh-CN.rc b/base/applications/notepad/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/notepad/lang/zh-CN.rc rename to base/applications/notepad/lang/zh-CN.rc diff --git a/reactos/base/applications/notepad/license.c b/base/applications/notepad/license.c similarity index 100% rename from reactos/base/applications/notepad/license.c rename to base/applications/notepad/license.c diff --git a/reactos/base/applications/notepad/main.c b/base/applications/notepad/main.c similarity index 100% rename from reactos/base/applications/notepad/main.c rename to base/applications/notepad/main.c diff --git a/reactos/base/applications/notepad/main.h b/base/applications/notepad/main.h similarity index 100% rename from reactos/base/applications/notepad/main.h rename to base/applications/notepad/main.h diff --git a/reactos/base/applications/notepad/notepad.h b/base/applications/notepad/notepad.h similarity index 100% rename from reactos/base/applications/notepad/notepad.h rename to base/applications/notepad/notepad.h diff --git a/reactos/base/applications/notepad/notepad_res.h b/base/applications/notepad/notepad_res.h similarity index 100% rename from reactos/base/applications/notepad/notepad_res.h rename to base/applications/notepad/notepad_res.h diff --git a/reactos/base/applications/notepad/res/notepad.ico b/base/applications/notepad/res/notepad.ico similarity index 100% rename from reactos/base/applications/notepad/res/notepad.ico rename to base/applications/notepad/res/notepad.ico diff --git a/reactos/base/applications/notepad/rsrc.rc b/base/applications/notepad/rsrc.rc similarity index 100% rename from reactos/base/applications/notepad/rsrc.rc rename to base/applications/notepad/rsrc.rc diff --git a/reactos/base/applications/notepad/settings.c b/base/applications/notepad/settings.c similarity index 100% rename from reactos/base/applications/notepad/settings.c rename to base/applications/notepad/settings.c diff --git a/reactos/base/applications/notepad/text.c b/base/applications/notepad/text.c similarity index 100% rename from reactos/base/applications/notepad/text.c rename to base/applications/notepad/text.c diff --git a/reactos/base/applications/rapps/CMakeLists.txt b/base/applications/rapps/CMakeLists.txt similarity index 100% rename from reactos/base/applications/rapps/CMakeLists.txt rename to base/applications/rapps/CMakeLists.txt diff --git a/reactos/base/applications/rapps/CreateCabFile.bat b/base/applications/rapps/CreateCabFile.bat similarity index 100% rename from reactos/base/applications/rapps/CreateCabFile.bat rename to base/applications/rapps/CreateCabFile.bat diff --git a/reactos/base/applications/rapps/CreateCabFile.sh b/base/applications/rapps/CreateCabFile.sh similarity index 100% rename from reactos/base/applications/rapps/CreateCabFile.sh rename to base/applications/rapps/CreateCabFile.sh diff --git a/reactos/base/applications/rapps/README.ENG b/base/applications/rapps/README.ENG similarity index 100% rename from reactos/base/applications/rapps/README.ENG rename to base/applications/rapps/README.ENG diff --git a/reactos/base/applications/rapps/README.RUS b/base/applications/rapps/README.RUS similarity index 100% rename from reactos/base/applications/rapps/README.RUS rename to base/applications/rapps/README.RUS diff --git a/reactos/base/applications/rapps/aboutdlg.c b/base/applications/rapps/aboutdlg.c similarity index 100% rename from reactos/base/applications/rapps/aboutdlg.c rename to base/applications/rapps/aboutdlg.c diff --git a/reactos/base/applications/rapps/available.c b/base/applications/rapps/available.c similarity index 100% rename from reactos/base/applications/rapps/available.c rename to base/applications/rapps/available.c diff --git a/reactos/base/applications/rapps/installdlg.c b/base/applications/rapps/installdlg.c similarity index 100% rename from reactos/base/applications/rapps/installdlg.c rename to base/applications/rapps/installdlg.c diff --git a/reactos/base/applications/rapps/installed.c b/base/applications/rapps/installed.c similarity index 100% rename from reactos/base/applications/rapps/installed.c rename to base/applications/rapps/installed.c diff --git a/reactos/base/applications/rapps/lang/bg-BG.rc b/base/applications/rapps/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/rapps/lang/bg-BG.rc rename to base/applications/rapps/lang/bg-BG.rc diff --git a/reactos/base/applications/rapps/lang/cs-CZ.rc b/base/applications/rapps/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/rapps/lang/cs-CZ.rc rename to base/applications/rapps/lang/cs-CZ.rc diff --git a/reactos/base/applications/rapps/lang/de-DE.rc b/base/applications/rapps/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/rapps/lang/de-DE.rc rename to base/applications/rapps/lang/de-DE.rc diff --git a/reactos/base/applications/rapps/lang/en-US.rc b/base/applications/rapps/lang/en-US.rc similarity index 100% rename from reactos/base/applications/rapps/lang/en-US.rc rename to base/applications/rapps/lang/en-US.rc diff --git a/reactos/base/applications/rapps/lang/es-ES.rc b/base/applications/rapps/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/rapps/lang/es-ES.rc rename to base/applications/rapps/lang/es-ES.rc diff --git a/reactos/base/applications/rapps/lang/fr-FR.rc b/base/applications/rapps/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/rapps/lang/fr-FR.rc rename to base/applications/rapps/lang/fr-FR.rc diff --git a/reactos/base/applications/rapps/lang/it-IT.rc b/base/applications/rapps/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/rapps/lang/it-IT.rc rename to base/applications/rapps/lang/it-IT.rc diff --git a/reactos/base/applications/rapps/lang/ja-JP.rc b/base/applications/rapps/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/rapps/lang/ja-JP.rc rename to base/applications/rapps/lang/ja-JP.rc diff --git a/reactos/base/applications/rapps/lang/no-NO.rc b/base/applications/rapps/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/rapps/lang/no-NO.rc rename to base/applications/rapps/lang/no-NO.rc diff --git a/reactos/base/applications/rapps/lang/pl-PL.rc b/base/applications/rapps/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/rapps/lang/pl-PL.rc rename to base/applications/rapps/lang/pl-PL.rc diff --git a/reactos/base/applications/rapps/lang/pt-BR.rc b/base/applications/rapps/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/rapps/lang/pt-BR.rc rename to base/applications/rapps/lang/pt-BR.rc diff --git a/reactos/base/applications/rapps/lang/ro-RO.rc b/base/applications/rapps/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/rapps/lang/ro-RO.rc rename to base/applications/rapps/lang/ro-RO.rc diff --git a/reactos/base/applications/rapps/lang/ru-RU.rc b/base/applications/rapps/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/rapps/lang/ru-RU.rc rename to base/applications/rapps/lang/ru-RU.rc diff --git a/reactos/base/applications/rapps/lang/sk-SK.rc b/base/applications/rapps/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/rapps/lang/sk-SK.rc rename to base/applications/rapps/lang/sk-SK.rc diff --git a/reactos/base/applications/rapps/lang/sv-SE.rc b/base/applications/rapps/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/rapps/lang/sv-SE.rc rename to base/applications/rapps/lang/sv-SE.rc diff --git a/reactos/base/applications/rapps/lang/uk-UA.rc b/base/applications/rapps/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/rapps/lang/uk-UA.rc rename to base/applications/rapps/lang/uk-UA.rc diff --git a/reactos/base/applications/rapps/lang/zh-CN.rc b/base/applications/rapps/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/rapps/lang/zh-CN.rc rename to base/applications/rapps/lang/zh-CN.rc diff --git a/reactos/base/applications/rapps/listview.c b/base/applications/rapps/listview.c similarity index 100% rename from reactos/base/applications/rapps/listview.c rename to base/applications/rapps/listview.c diff --git a/reactos/base/applications/rapps/loaddlg.c b/base/applications/rapps/loaddlg.c similarity index 100% rename from reactos/base/applications/rapps/loaddlg.c rename to base/applications/rapps/loaddlg.c diff --git a/reactos/base/applications/rapps/manifest.xml b/base/applications/rapps/manifest.xml similarity index 100% rename from reactos/base/applications/rapps/manifest.xml rename to base/applications/rapps/manifest.xml diff --git a/reactos/base/applications/rapps/misc.c b/base/applications/rapps/misc.c similarity index 100% rename from reactos/base/applications/rapps/misc.c rename to base/applications/rapps/misc.c diff --git a/reactos/base/applications/rapps/parser.c b/base/applications/rapps/parser.c similarity index 100% rename from reactos/base/applications/rapps/parser.c rename to base/applications/rapps/parser.c diff --git a/reactos/base/applications/rapps/rapps.h b/base/applications/rapps/rapps.h similarity index 100% rename from reactos/base/applications/rapps/rapps.h rename to base/applications/rapps/rapps.h diff --git a/reactos/base/applications/rapps/rapps.rc b/base/applications/rapps/rapps.rc similarity index 100% rename from reactos/base/applications/rapps/rapps.rc rename to base/applications/rapps/rapps.rc diff --git a/reactos/base/applications/rapps/rapps/7zip.txt b/base/applications/rapps/rapps/7zip.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/7zip.txt rename to base/applications/rapps/rapps/7zip.txt diff --git a/reactos/base/applications/rapps/rapps/abiword.txt b/base/applications/rapps/rapps/abiword.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/abiword.txt rename to base/applications/rapps/rapps/abiword.txt diff --git a/reactos/base/applications/rapps/rapps/abiword28x.txt b/base/applications/rapps/rapps/abiword28x.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/abiword28x.txt rename to base/applications/rapps/rapps/abiword28x.txt diff --git a/reactos/base/applications/rapps/rapps/abyss.txt b/base/applications/rapps/rapps/abyss.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/abyss.txt rename to base/applications/rapps/rapps/abyss.txt diff --git a/reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt b/base/applications/rapps/rapps/ac97forvirtualbox.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt rename to base/applications/rapps/rapps/ac97forvirtualbox.txt diff --git a/reactos/base/applications/rapps/rapps/audiograbber.txt b/base/applications/rapps/rapps/audiograbber.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/audiograbber.txt rename to base/applications/rapps/rapps/audiograbber.txt diff --git a/reactos/base/applications/rapps/rapps/bittorrent.txt b/base/applications/rapps/rapps/bittorrent.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/bittorrent.txt rename to base/applications/rapps/rapps/bittorrent.txt diff --git a/reactos/base/applications/rapps/rapps/cnt.txt b/base/applications/rapps/rapps/cnt.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/cnt.txt rename to base/applications/rapps/rapps/cnt.txt diff --git a/reactos/base/applications/rapps/rapps/comctl32ocx.txt b/base/applications/rapps/rapps/comctl32ocx.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/comctl32ocx.txt rename to base/applications/rapps/rapps/comctl32ocx.txt diff --git a/reactos/base/applications/rapps/rapps/diablo2.txt b/base/applications/rapps/rapps/diablo2.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/diablo2.txt rename to base/applications/rapps/rapps/diablo2.txt diff --git a/reactos/base/applications/rapps/rapps/dosblaster.txt b/base/applications/rapps/rapps/dosblaster.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/dosblaster.txt rename to base/applications/rapps/rapps/dosblaster.txt diff --git a/reactos/base/applications/rapps/rapps/dosbox.txt b/base/applications/rapps/rapps/dosbox.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/dosbox.txt rename to base/applications/rapps/rapps/dosbox.txt diff --git a/reactos/base/applications/rapps/rapps/doublecommander.txt b/base/applications/rapps/rapps/doublecommander.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/doublecommander.txt rename to base/applications/rapps/rapps/doublecommander.txt diff --git a/reactos/base/applications/rapps/rapps/fap.txt b/base/applications/rapps/rapps/fap.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/fap.txt rename to base/applications/rapps/rapps/fap.txt diff --git a/reactos/base/applications/rapps/rapps/firefox2.txt b/base/applications/rapps/rapps/firefox2.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/firefox2.txt rename to base/applications/rapps/rapps/firefox2.txt diff --git a/reactos/base/applications/rapps/rapps/firefox3.txt b/base/applications/rapps/rapps/firefox3.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/firefox3.txt rename to base/applications/rapps/rapps/firefox3.txt diff --git a/reactos/base/applications/rapps/rapps/firefox36.txt b/base/applications/rapps/rapps/firefox36.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/firefox36.txt rename to base/applications/rapps/rapps/firefox36.txt diff --git a/reactos/base/applications/rapps/rapps/firefox5.txt b/base/applications/rapps/rapps/firefox5.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/firefox5.txt rename to base/applications/rapps/rapps/firefox5.txt diff --git a/reactos/base/applications/rapps/rapps/freebasic.txt b/base/applications/rapps/rapps/freebasic.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/freebasic.txt rename to base/applications/rapps/rapps/freebasic.txt diff --git a/reactos/base/applications/rapps/rapps/glidewrapzbag.txt b/base/applications/rapps/rapps/glidewrapzbag.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/glidewrapzbag.txt rename to base/applications/rapps/rapps/glidewrapzbag.txt diff --git a/reactos/base/applications/rapps/rapps/irfanview.txt b/base/applications/rapps/rapps/irfanview.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/irfanview.txt rename to base/applications/rapps/rapps/irfanview.txt diff --git a/reactos/base/applications/rapps/rapps/irfanviewplugins.txt b/base/applications/rapps/rapps/irfanviewplugins.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/irfanviewplugins.txt rename to base/applications/rapps/rapps/irfanviewplugins.txt diff --git a/reactos/base/applications/rapps/rapps/kdewin.txt b/base/applications/rapps/rapps/kdewin.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/kdewin.txt rename to base/applications/rapps/rapps/kdewin.txt diff --git a/reactos/base/applications/rapps/rapps/lbreakout2.txt b/base/applications/rapps/rapps/lbreakout2.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/lbreakout2.txt rename to base/applications/rapps/rapps/lbreakout2.txt diff --git a/reactos/base/applications/rapps/rapps/lgeneral.txt b/base/applications/rapps/rapps/lgeneral.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/lgeneral.txt rename to base/applications/rapps/rapps/lgeneral.txt diff --git a/reactos/base/applications/rapps/rapps/libreoffice.txt b/base/applications/rapps/rapps/libreoffice.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/libreoffice.txt rename to base/applications/rapps/rapps/libreoffice.txt diff --git a/reactos/base/applications/rapps/rapps/lmarbles.txt b/base/applications/rapps/rapps/lmarbles.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/lmarbles.txt rename to base/applications/rapps/rapps/lmarbles.txt diff --git a/reactos/base/applications/rapps/rapps/mfc40.txt b/base/applications/rapps/rapps/mfc40.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/mfc40.txt rename to base/applications/rapps/rapps/mfc40.txt diff --git a/reactos/base/applications/rapps/rapps/mirandaim.txt b/base/applications/rapps/rapps/mirandaim.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/mirandaim.txt rename to base/applications/rapps/rapps/mirandaim.txt diff --git a/reactos/base/applications/rapps/rapps/mirc.txt b/base/applications/rapps/rapps/mirc.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/mirc.txt rename to base/applications/rapps/rapps/mirc.txt diff --git a/reactos/base/applications/rapps/rapps/mirc6.txt b/base/applications/rapps/rapps/mirc6.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/mirc6.txt rename to base/applications/rapps/rapps/mirc6.txt diff --git a/reactos/base/applications/rapps/rapps/mono2.txt b/base/applications/rapps/rapps/mono2.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/mono2.txt rename to base/applications/rapps/rapps/mono2.txt diff --git a/reactos/base/applications/rapps/rapps/mpc.txt b/base/applications/rapps/rapps/mpc.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/mpc.txt rename to base/applications/rapps/rapps/mpc.txt diff --git a/reactos/base/applications/rapps/rapps/msxml3.txt b/base/applications/rapps/rapps/msxml3.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/msxml3.txt rename to base/applications/rapps/rapps/msxml3.txt diff --git a/reactos/base/applications/rapps/rapps/net11.txt b/base/applications/rapps/rapps/net11.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/net11.txt rename to base/applications/rapps/rapps/net11.txt diff --git a/reactos/base/applications/rapps/rapps/net20.txt b/base/applications/rapps/rapps/net20.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/net20.txt rename to base/applications/rapps/rapps/net20.txt diff --git a/reactos/base/applications/rapps/rapps/net20sp2.txt b/base/applications/rapps/rapps/net20sp2.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/net20sp2.txt rename to base/applications/rapps/rapps/net20sp2.txt diff --git a/reactos/base/applications/rapps/rapps/offbyone.txt b/base/applications/rapps/rapps/offbyone.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/offbyone.txt rename to base/applications/rapps/rapps/offbyone.txt diff --git a/reactos/base/applications/rapps/rapps/openoffice2.4.txt b/base/applications/rapps/rapps/openoffice2.4.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/openoffice2.4.txt rename to base/applications/rapps/rapps/openoffice2.4.txt diff --git a/reactos/base/applications/rapps/rapps/openoffice3.0.txt b/base/applications/rapps/rapps/openoffice3.0.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/openoffice3.0.txt rename to base/applications/rapps/rapps/openoffice3.0.txt diff --git a/reactos/base/applications/rapps/rapps/openttd.txt b/base/applications/rapps/rapps/openttd.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/openttd.txt rename to base/applications/rapps/rapps/openttd.txt diff --git a/reactos/base/applications/rapps/rapps/opera.txt b/base/applications/rapps/rapps/opera.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/opera.txt rename to base/applications/rapps/rapps/opera.txt diff --git a/reactos/base/applications/rapps/rapps/opera9.txt b/base/applications/rapps/rapps/opera9.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/opera9.txt rename to base/applications/rapps/rapps/opera9.txt diff --git a/reactos/base/applications/rapps/rapps/putty.txt b/base/applications/rapps/rapps/putty.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/putty.txt rename to base/applications/rapps/rapps/putty.txt diff --git a/reactos/base/applications/rapps/rapps/python.txt b/base/applications/rapps/rapps/python.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/python.txt rename to base/applications/rapps/rapps/python.txt diff --git a/reactos/base/applications/rapps/rapps/python3.txt b/base/applications/rapps/rapps/python3.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/python3.txt rename to base/applications/rapps/rapps/python3.txt diff --git a/reactos/base/applications/rapps/rapps/remood.txt b/base/applications/rapps/rapps/remood.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/remood.txt rename to base/applications/rapps/rapps/remood.txt diff --git a/reactos/base/applications/rapps/rapps/rosbe.txt b/base/applications/rapps/rapps/rosbe.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/rosbe.txt rename to base/applications/rapps/rapps/rosbe.txt diff --git a/reactos/base/applications/rapps/rapps/rosbeamd64.txt b/base/applications/rapps/rapps/rosbeamd64.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/rosbeamd64.txt rename to base/applications/rapps/rapps/rosbeamd64.txt diff --git a/reactos/base/applications/rapps/rapps/rosbearm.txt b/base/applications/rapps/rapps/rosbearm.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/rosbearm.txt rename to base/applications/rapps/rapps/rosbearm.txt diff --git a/reactos/base/applications/rapps/rapps/sambatng.txt b/base/applications/rapps/rapps/sambatng.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/sambatng.txt rename to base/applications/rapps/rapps/sambatng.txt diff --git a/reactos/base/applications/rapps/rapps/sbforvmware.txt b/base/applications/rapps/rapps/sbforvmware.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/sbforvmware.txt rename to base/applications/rapps/rapps/sbforvmware.txt diff --git a/reactos/base/applications/rapps/rapps/scite.txt b/base/applications/rapps/rapps/scite.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/scite.txt rename to base/applications/rapps/rapps/scite.txt diff --git a/reactos/base/applications/rapps/rapps/scummvm.txt b/base/applications/rapps/rapps/scummvm.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/scummvm.txt rename to base/applications/rapps/rapps/scummvm.txt diff --git a/reactos/base/applications/rapps/rapps/sdl_mixer.txt b/base/applications/rapps/rapps/sdl_mixer.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/sdl_mixer.txt rename to base/applications/rapps/rapps/sdl_mixer.txt diff --git a/reactos/base/applications/rapps/rapps/sdl_runtime.txt b/base/applications/rapps/rapps/sdl_runtime.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/sdl_runtime.txt rename to base/applications/rapps/rapps/sdl_runtime.txt diff --git a/reactos/base/applications/rapps/rapps/seamonkey.txt b/base/applications/rapps/rapps/seamonkey.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/seamonkey.txt rename to base/applications/rapps/rapps/seamonkey.txt diff --git a/reactos/base/applications/rapps/rapps/smplayer.txt b/base/applications/rapps/rapps/smplayer.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/smplayer.txt rename to base/applications/rapps/rapps/smplayer.txt diff --git a/reactos/base/applications/rapps/rapps/steam.txt b/base/applications/rapps/rapps/steam.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/steam.txt rename to base/applications/rapps/rapps/steam.txt diff --git a/reactos/base/applications/rapps/rapps/sumatrapdf.txt b/base/applications/rapps/rapps/sumatrapdf.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/sumatrapdf.txt rename to base/applications/rapps/rapps/sumatrapdf.txt diff --git a/reactos/base/applications/rapps/rapps/superfinder.txt b/base/applications/rapps/rapps/superfinder.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/superfinder.txt rename to base/applications/rapps/rapps/superfinder.txt diff --git a/reactos/base/applications/rapps/rapps/tahoma.txt b/base/applications/rapps/rapps/tahoma.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/tahoma.txt rename to base/applications/rapps/rapps/tahoma.txt diff --git a/reactos/base/applications/rapps/rapps/thunderbird.txt b/base/applications/rapps/rapps/thunderbird.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/thunderbird.txt rename to base/applications/rapps/rapps/thunderbird.txt diff --git a/reactos/base/applications/rapps/rapps/thunderbird5.txt b/base/applications/rapps/rapps/thunderbird5.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/thunderbird5.txt rename to base/applications/rapps/rapps/thunderbird5.txt diff --git a/reactos/base/applications/rapps/rapps/tileworld.txt b/base/applications/rapps/rapps/tileworld.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/tileworld.txt rename to base/applications/rapps/rapps/tileworld.txt diff --git a/reactos/base/applications/rapps/rapps/totalcommander.txt b/base/applications/rapps/rapps/totalcommander.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/totalcommander.txt rename to base/applications/rapps/rapps/totalcommander.txt diff --git a/reactos/base/applications/rapps/rapps/tuxpaint.txt b/base/applications/rapps/rapps/tuxpaint.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/tuxpaint.txt rename to base/applications/rapps/rapps/tuxpaint.txt diff --git a/reactos/base/applications/rapps/rapps/ultravnc.txt b/base/applications/rapps/rapps/ultravnc.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/ultravnc.txt rename to base/applications/rapps/rapps/ultravnc.txt diff --git a/reactos/base/applications/rapps/rapps/utorrent.txt b/base/applications/rapps/rapps/utorrent.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/utorrent.txt rename to base/applications/rapps/rapps/utorrent.txt diff --git a/reactos/base/applications/rapps/rapps/vb5run.txt b/base/applications/rapps/rapps/vb5run.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/vb5run.txt rename to base/applications/rapps/rapps/vb5run.txt diff --git a/reactos/base/applications/rapps/rapps/vb6run.txt b/base/applications/rapps/rapps/vb6run.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/vb6run.txt rename to base/applications/rapps/rapps/vb6run.txt diff --git a/reactos/base/applications/rapps/rapps/vc2005sp1run.txt b/base/applications/rapps/rapps/vc2005sp1run.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/vc2005sp1run.txt rename to base/applications/rapps/rapps/vc2005sp1run.txt diff --git a/reactos/base/applications/rapps/rapps/vc2008sp1run.txt b/base/applications/rapps/rapps/vc2008sp1run.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/vc2008sp1run.txt rename to base/applications/rapps/rapps/vc2008sp1run.txt diff --git a/reactos/base/applications/rapps/rapps/vc6run.txt b/base/applications/rapps/rapps/vc6run.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/vc6run.txt rename to base/applications/rapps/rapps/vc6run.txt diff --git a/reactos/base/applications/rapps/rapps/vlc.txt b/base/applications/rapps/rapps/vlc.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/vlc.txt rename to base/applications/rapps/rapps/vlc.txt diff --git a/reactos/base/applications/rapps/rapps/winboard.txt b/base/applications/rapps/rapps/winboard.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/winboard.txt rename to base/applications/rapps/rapps/winboard.txt diff --git a/reactos/base/applications/rapps/rapps/wme9.txt b/base/applications/rapps/rapps/wme9.txt similarity index 100% rename from reactos/base/applications/rapps/rapps/wme9.txt rename to base/applications/rapps/rapps/wme9.txt diff --git a/reactos/base/applications/rapps/rappsmsg.mc b/base/applications/rapps/rappsmsg.mc similarity index 100% rename from reactos/base/applications/rapps/rappsmsg.mc rename to base/applications/rapps/rappsmsg.mc diff --git a/reactos/base/applications/rapps/res/apps.ico b/base/applications/rapps/res/apps.ico similarity index 100% rename from reactos/base/applications/rapps/res/apps.ico rename to base/applications/rapps/res/apps.ico diff --git a/reactos/base/applications/rapps/res/appupd.ico b/base/applications/rapps/res/appupd.ico similarity index 100% rename from reactos/base/applications/rapps/res/appupd.ico rename to base/applications/rapps/res/appupd.ico diff --git a/reactos/base/applications/rapps/res/cat.ico b/base/applications/rapps/res/cat.ico similarity index 100% rename from reactos/base/applications/rapps/res/cat.ico rename to base/applications/rapps/res/cat.ico diff --git a/reactos/base/applications/rapps/res/cats/audio.ico b/base/applications/rapps/res/cats/audio.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/audio.ico rename to base/applications/rapps/res/cats/audio.ico diff --git a/reactos/base/applications/rapps/res/cats/devel.ico b/base/applications/rapps/res/cats/devel.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/devel.ico rename to base/applications/rapps/res/cats/devel.ico diff --git a/reactos/base/applications/rapps/res/cats/drivers.ico b/base/applications/rapps/res/cats/drivers.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/drivers.ico rename to base/applications/rapps/res/cats/drivers.ico diff --git a/reactos/base/applications/rapps/res/cats/edu.ico b/base/applications/rapps/res/cats/edu.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/edu.ico rename to base/applications/rapps/res/cats/edu.ico diff --git a/reactos/base/applications/rapps/res/cats/engineer.ico b/base/applications/rapps/res/cats/engineer.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/engineer.ico rename to base/applications/rapps/res/cats/engineer.ico diff --git a/reactos/base/applications/rapps/res/cats/finance.ico b/base/applications/rapps/res/cats/finance.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/finance.ico rename to base/applications/rapps/res/cats/finance.ico diff --git a/reactos/base/applications/rapps/res/cats/games.ico b/base/applications/rapps/res/cats/games.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/games.ico rename to base/applications/rapps/res/cats/games.ico diff --git a/reactos/base/applications/rapps/res/cats/graphics.ico b/base/applications/rapps/res/cats/graphics.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/graphics.ico rename to base/applications/rapps/res/cats/graphics.ico diff --git a/reactos/base/applications/rapps/res/cats/internet.ico b/base/applications/rapps/res/cats/internet.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/internet.ico rename to base/applications/rapps/res/cats/internet.ico diff --git a/reactos/base/applications/rapps/res/cats/libs.ico b/base/applications/rapps/res/cats/libs.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/libs.ico rename to base/applications/rapps/res/cats/libs.ico diff --git a/reactos/base/applications/rapps/res/cats/office.ico b/base/applications/rapps/res/cats/office.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/office.ico rename to base/applications/rapps/res/cats/office.ico diff --git a/reactos/base/applications/rapps/res/cats/other.ico b/base/applications/rapps/res/cats/other.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/other.ico rename to base/applications/rapps/res/cats/other.ico diff --git a/reactos/base/applications/rapps/res/cats/science.ico b/base/applications/rapps/res/cats/science.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/science.ico rename to base/applications/rapps/res/cats/science.ico diff --git a/reactos/base/applications/rapps/res/cats/tools.ico b/base/applications/rapps/res/cats/tools.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/tools.ico rename to base/applications/rapps/res/cats/tools.ico diff --git a/reactos/base/applications/rapps/res/cats/video.ico b/base/applications/rapps/res/cats/video.ico similarity index 100% rename from reactos/base/applications/rapps/res/cats/video.ico rename to base/applications/rapps/res/cats/video.ico diff --git a/reactos/base/applications/rapps/res/exit.ico b/base/applications/rapps/res/exit.ico similarity index 100% rename from reactos/base/applications/rapps/res/exit.ico rename to base/applications/rapps/res/exit.ico diff --git a/reactos/base/applications/rapps/res/install.ico b/base/applications/rapps/res/install.ico similarity index 100% rename from reactos/base/applications/rapps/res/install.ico rename to base/applications/rapps/res/install.ico diff --git a/reactos/base/applications/rapps/res/main.ico b/base/applications/rapps/res/main.ico similarity index 100% rename from reactos/base/applications/rapps/res/main.ico rename to base/applications/rapps/res/main.ico diff --git a/reactos/base/applications/rapps/res/modify.ico b/base/applications/rapps/res/modify.ico similarity index 100% rename from reactos/base/applications/rapps/res/modify.ico rename to base/applications/rapps/res/modify.ico diff --git a/reactos/base/applications/rapps/res/refresh.ico b/base/applications/rapps/res/refresh.ico similarity index 100% rename from reactos/base/applications/rapps/res/refresh.ico rename to base/applications/rapps/res/refresh.ico diff --git a/reactos/base/applications/rapps/res/settings.ico b/base/applications/rapps/res/settings.ico similarity index 100% rename from reactos/base/applications/rapps/res/settings.ico rename to base/applications/rapps/res/settings.ico diff --git a/reactos/base/applications/rapps/res/uninstall.ico b/base/applications/rapps/res/uninstall.ico similarity index 100% rename from reactos/base/applications/rapps/res/uninstall.ico rename to base/applications/rapps/res/uninstall.ico diff --git a/reactos/base/applications/rapps/resource.h b/base/applications/rapps/resource.h similarity index 100% rename from reactos/base/applications/rapps/resource.h rename to base/applications/rapps/resource.h diff --git a/reactos/base/applications/rapps/richedit.c b/base/applications/rapps/richedit.c similarity index 100% rename from reactos/base/applications/rapps/richedit.c rename to base/applications/rapps/richedit.c diff --git a/reactos/base/applications/rapps/rsrc.rc b/base/applications/rapps/rsrc.rc similarity index 100% rename from reactos/base/applications/rapps/rsrc.rc rename to base/applications/rapps/rsrc.rc diff --git a/reactos/base/applications/rapps/settingsdlg.c b/base/applications/rapps/settingsdlg.c similarity index 100% rename from reactos/base/applications/rapps/settingsdlg.c rename to base/applications/rapps/settingsdlg.c diff --git a/reactos/base/applications/rapps/splitter.c b/base/applications/rapps/splitter.c similarity index 100% rename from reactos/base/applications/rapps/splitter.c rename to base/applications/rapps/splitter.c diff --git a/reactos/base/applications/rapps/statusbar.c b/base/applications/rapps/statusbar.c similarity index 100% rename from reactos/base/applications/rapps/statusbar.c rename to base/applications/rapps/statusbar.c diff --git a/reactos/base/applications/rapps/toolbar.c b/base/applications/rapps/toolbar.c similarity index 100% rename from reactos/base/applications/rapps/toolbar.c rename to base/applications/rapps/toolbar.c diff --git a/reactos/base/applications/rapps/treeview.c b/base/applications/rapps/treeview.c similarity index 100% rename from reactos/base/applications/rapps/treeview.c rename to base/applications/rapps/treeview.c diff --git a/reactos/base/applications/rapps/winmain.c b/base/applications/rapps/winmain.c similarity index 100% rename from reactos/base/applications/rapps/winmain.c rename to base/applications/rapps/winmain.c diff --git a/reactos/base/applications/regedit/CMakeLists.txt b/base/applications/regedit/CMakeLists.txt similarity index 100% rename from reactos/base/applications/regedit/CMakeLists.txt rename to base/applications/regedit/CMakeLists.txt diff --git a/reactos/base/applications/regedit/about.c b/base/applications/regedit/about.c similarity index 100% rename from reactos/base/applications/regedit/about.c rename to base/applications/regedit/about.c diff --git a/reactos/base/applications/regedit/childwnd.c b/base/applications/regedit/childwnd.c similarity index 100% rename from reactos/base/applications/regedit/childwnd.c rename to base/applications/regedit/childwnd.c diff --git a/reactos/base/applications/regedit/clb/CMakeLists.txt b/base/applications/regedit/clb/CMakeLists.txt similarity index 100% rename from reactos/base/applications/regedit/clb/CMakeLists.txt rename to base/applications/regedit/clb/CMakeLists.txt diff --git a/reactos/base/applications/regedit/clb/clb.c b/base/applications/regedit/clb/clb.c similarity index 100% rename from reactos/base/applications/regedit/clb/clb.c rename to base/applications/regedit/clb/clb.c diff --git a/reactos/base/applications/regedit/clb/clb.rc b/base/applications/regedit/clb/clb.rc similarity index 100% rename from reactos/base/applications/regedit/clb/clb.rc rename to base/applications/regedit/clb/clb.rc diff --git a/reactos/base/applications/regedit/clb/clb.spec b/base/applications/regedit/clb/clb.spec similarity index 100% rename from reactos/base/applications/regedit/clb/clb.spec rename to base/applications/regedit/clb/clb.spec diff --git a/reactos/base/applications/regedit/clb/clbdll.h b/base/applications/regedit/clb/clbdll.h similarity index 100% rename from reactos/base/applications/regedit/clb/clbdll.h rename to base/applications/regedit/clb/clbdll.h diff --git a/reactos/base/applications/regedit/clb/lang/bg-BG.rc b/base/applications/regedit/clb/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/bg-BG.rc rename to base/applications/regedit/clb/lang/bg-BG.rc diff --git a/reactos/base/applications/regedit/clb/lang/de-DE.rc b/base/applications/regedit/clb/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/de-DE.rc rename to base/applications/regedit/clb/lang/de-DE.rc diff --git a/reactos/base/applications/regedit/clb/lang/el-GR.rc b/base/applications/regedit/clb/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/el-GR.rc rename to base/applications/regedit/clb/lang/el-GR.rc diff --git a/reactos/base/applications/regedit/clb/lang/en-US.rc b/base/applications/regedit/clb/lang/en-US.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/en-US.rc rename to base/applications/regedit/clb/lang/en-US.rc diff --git a/reactos/base/applications/regedit/clb/lang/es-ES.rc b/base/applications/regedit/clb/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/es-ES.rc rename to base/applications/regedit/clb/lang/es-ES.rc diff --git a/reactos/base/applications/regedit/clb/lang/fr-FR.rc b/base/applications/regedit/clb/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/fr-FR.rc rename to base/applications/regedit/clb/lang/fr-FR.rc diff --git a/reactos/base/applications/regedit/clb/lang/id-ID.rc b/base/applications/regedit/clb/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/id-ID.rc rename to base/applications/regedit/clb/lang/id-ID.rc diff --git a/reactos/base/applications/regedit/clb/lang/it-IT.rc b/base/applications/regedit/clb/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/it-IT.rc rename to base/applications/regedit/clb/lang/it-IT.rc diff --git a/reactos/base/applications/regedit/clb/lang/ja-JP.rc b/base/applications/regedit/clb/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/ja-JP.rc rename to base/applications/regedit/clb/lang/ja-JP.rc diff --git a/reactos/base/applications/regedit/clb/lang/no-NO.rc b/base/applications/regedit/clb/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/no-NO.rc rename to base/applications/regedit/clb/lang/no-NO.rc diff --git a/reactos/base/applications/regedit/clb/lang/pl-PL.rc b/base/applications/regedit/clb/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/pl-PL.rc rename to base/applications/regedit/clb/lang/pl-PL.rc diff --git a/reactos/base/applications/regedit/clb/lang/ru-RU.rc b/base/applications/regedit/clb/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/ru-RU.rc rename to base/applications/regedit/clb/lang/ru-RU.rc diff --git a/reactos/base/applications/regedit/clb/lang/sk-SK.rc b/base/applications/regedit/clb/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/sk-SK.rc rename to base/applications/regedit/clb/lang/sk-SK.rc diff --git a/reactos/base/applications/regedit/clb/lang/th-TH.rc b/base/applications/regedit/clb/lang/th-TH.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/th-TH.rc rename to base/applications/regedit/clb/lang/th-TH.rc diff --git a/reactos/base/applications/regedit/clb/lang/uk-UA.rc b/base/applications/regedit/clb/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/regedit/clb/lang/uk-UA.rc rename to base/applications/regedit/clb/lang/uk-UA.rc diff --git a/reactos/base/applications/regedit/clb/precomp.h b/base/applications/regedit/clb/precomp.h similarity index 100% rename from reactos/base/applications/regedit/clb/precomp.h rename to base/applications/regedit/clb/precomp.h diff --git a/reactos/base/applications/regedit/clb/resource.h b/base/applications/regedit/clb/resource.h similarity index 100% rename from reactos/base/applications/regedit/clb/resource.h rename to base/applications/regedit/clb/resource.h diff --git a/reactos/base/applications/regedit/clb/rsrc.rc b/base/applications/regedit/clb/rsrc.rc similarity index 100% rename from reactos/base/applications/regedit/clb/rsrc.rc rename to base/applications/regedit/clb/rsrc.rc diff --git a/reactos/base/applications/regedit/edit.c b/base/applications/regedit/edit.c similarity index 100% rename from reactos/base/applications/regedit/edit.c rename to base/applications/regedit/edit.c diff --git a/reactos/base/applications/regedit/error.c b/base/applications/regedit/error.c similarity index 100% rename from reactos/base/applications/regedit/error.c rename to base/applications/regedit/error.c diff --git a/reactos/base/applications/regedit/find.c b/base/applications/regedit/find.c similarity index 100% rename from reactos/base/applications/regedit/find.c rename to base/applications/regedit/find.c diff --git a/reactos/base/applications/regedit/framewnd.c b/base/applications/regedit/framewnd.c similarity index 100% rename from reactos/base/applications/regedit/framewnd.c rename to base/applications/regedit/framewnd.c diff --git a/reactos/base/applications/regedit/hexedit.c b/base/applications/regedit/hexedit.c similarity index 100% rename from reactos/base/applications/regedit/hexedit.c rename to base/applications/regedit/hexedit.c diff --git a/reactos/base/applications/regedit/hexedit.h b/base/applications/regedit/hexedit.h similarity index 100% rename from reactos/base/applications/regedit/hexedit.h rename to base/applications/regedit/hexedit.h diff --git a/reactos/base/applications/regedit/lang/bg-BG.rc b/base/applications/regedit/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/regedit/lang/bg-BG.rc rename to base/applications/regedit/lang/bg-BG.rc diff --git a/reactos/base/applications/regedit/lang/cs-CZ.rc b/base/applications/regedit/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/regedit/lang/cs-CZ.rc rename to base/applications/regedit/lang/cs-CZ.rc diff --git a/reactos/base/applications/regedit/lang/de-DE.rc b/base/applications/regedit/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/regedit/lang/de-DE.rc rename to base/applications/regedit/lang/de-DE.rc diff --git a/reactos/base/applications/regedit/lang/el-GR.rc b/base/applications/regedit/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/regedit/lang/el-GR.rc rename to base/applications/regedit/lang/el-GR.rc diff --git a/reactos/base/applications/regedit/lang/en-US.rc b/base/applications/regedit/lang/en-US.rc similarity index 100% rename from reactos/base/applications/regedit/lang/en-US.rc rename to base/applications/regedit/lang/en-US.rc diff --git a/reactos/base/applications/regedit/lang/es-ES.rc b/base/applications/regedit/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/regedit/lang/es-ES.rc rename to base/applications/regedit/lang/es-ES.rc diff --git a/reactos/base/applications/regedit/lang/fr-FR.rc b/base/applications/regedit/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/regedit/lang/fr-FR.rc rename to base/applications/regedit/lang/fr-FR.rc diff --git a/reactos/base/applications/regedit/lang/hu-HU.rc b/base/applications/regedit/lang/hu-HU.rc similarity index 100% rename from reactos/base/applications/regedit/lang/hu-HU.rc rename to base/applications/regedit/lang/hu-HU.rc diff --git a/reactos/base/applications/regedit/lang/id-ID.rc b/base/applications/regedit/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/regedit/lang/id-ID.rc rename to base/applications/regedit/lang/id-ID.rc diff --git a/reactos/base/applications/regedit/lang/it-IT.rc b/base/applications/regedit/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/regedit/lang/it-IT.rc rename to base/applications/regedit/lang/it-IT.rc diff --git a/reactos/base/applications/regedit/lang/ja-JP.rc b/base/applications/regedit/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/regedit/lang/ja-JP.rc rename to base/applications/regedit/lang/ja-JP.rc diff --git a/reactos/base/applications/regedit/lang/ko-KR.rc b/base/applications/regedit/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/regedit/lang/ko-KR.rc rename to base/applications/regedit/lang/ko-KR.rc diff --git a/reactos/base/applications/regedit/lang/nl-NL.rc b/base/applications/regedit/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/regedit/lang/nl-NL.rc rename to base/applications/regedit/lang/nl-NL.rc diff --git a/reactos/base/applications/regedit/lang/no-NO.rc b/base/applications/regedit/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/regedit/lang/no-NO.rc rename to base/applications/regedit/lang/no-NO.rc diff --git a/reactos/base/applications/regedit/lang/pl-PL.rc b/base/applications/regedit/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/regedit/lang/pl-PL.rc rename to base/applications/regedit/lang/pl-PL.rc diff --git a/reactos/base/applications/regedit/lang/pt-BR.rc b/base/applications/regedit/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/regedit/lang/pt-BR.rc rename to base/applications/regedit/lang/pt-BR.rc diff --git a/reactos/base/applications/regedit/lang/pt-PT.rc b/base/applications/regedit/lang/pt-PT.rc similarity index 100% rename from reactos/base/applications/regedit/lang/pt-PT.rc rename to base/applications/regedit/lang/pt-PT.rc diff --git a/reactos/base/applications/regedit/lang/ro-RO.rc b/base/applications/regedit/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/regedit/lang/ro-RO.rc rename to base/applications/regedit/lang/ro-RO.rc diff --git a/reactos/base/applications/regedit/lang/ru-RU.rc b/base/applications/regedit/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/regedit/lang/ru-RU.rc rename to base/applications/regedit/lang/ru-RU.rc diff --git a/reactos/base/applications/regedit/lang/sk-SK.rc b/base/applications/regedit/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/regedit/lang/sk-SK.rc rename to base/applications/regedit/lang/sk-SK.rc diff --git a/reactos/base/applications/regedit/lang/sl-SI.rc b/base/applications/regedit/lang/sl-SI.rc similarity index 100% rename from reactos/base/applications/regedit/lang/sl-SI.rc rename to base/applications/regedit/lang/sl-SI.rc diff --git a/reactos/base/applications/regedit/lang/sv-SE.rc b/base/applications/regedit/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/regedit/lang/sv-SE.rc rename to base/applications/regedit/lang/sv-SE.rc diff --git a/reactos/base/applications/regedit/lang/th-TH.rc b/base/applications/regedit/lang/th-TH.rc similarity index 100% rename from reactos/base/applications/regedit/lang/th-TH.rc rename to base/applications/regedit/lang/th-TH.rc diff --git a/reactos/base/applications/regedit/lang/uk-UA.rc b/base/applications/regedit/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/regedit/lang/uk-UA.rc rename to base/applications/regedit/lang/uk-UA.rc diff --git a/reactos/base/applications/regedit/lang/zh-CN.rc b/base/applications/regedit/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/regedit/lang/zh-CN.rc rename to base/applications/regedit/lang/zh-CN.rc diff --git a/reactos/base/applications/regedit/lang/zh-TW.rc b/base/applications/regedit/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/regedit/lang/zh-TW.rc rename to base/applications/regedit/lang/zh-TW.rc diff --git a/reactos/base/applications/regedit/listview.c b/base/applications/regedit/listview.c similarity index 100% rename from reactos/base/applications/regedit/listview.c rename to base/applications/regedit/listview.c diff --git a/reactos/base/applications/regedit/main.c b/base/applications/regedit/main.c similarity index 100% rename from reactos/base/applications/regedit/main.c rename to base/applications/regedit/main.c diff --git a/reactos/base/applications/regedit/main.h b/base/applications/regedit/main.h similarity index 100% rename from reactos/base/applications/regedit/main.h rename to base/applications/regedit/main.h diff --git a/reactos/base/applications/regedit/regedit.c b/base/applications/regedit/regedit.c similarity index 100% rename from reactos/base/applications/regedit/regedit.c rename to base/applications/regedit/regedit.c diff --git a/reactos/base/applications/regedit/regedit.h b/base/applications/regedit/regedit.h similarity index 100% rename from reactos/base/applications/regedit/regedit.h rename to base/applications/regedit/regedit.h diff --git a/reactos/base/applications/regedit/regedit.rc b/base/applications/regedit/regedit.rc similarity index 100% rename from reactos/base/applications/regedit/regedit.rc rename to base/applications/regedit/regedit.rc diff --git a/reactos/base/applications/regedit/regproc.c b/base/applications/regedit/regproc.c similarity index 100% rename from reactos/base/applications/regedit/regproc.c rename to base/applications/regedit/regproc.c diff --git a/reactos/base/applications/regedit/regproc.h b/base/applications/regedit/regproc.h similarity index 100% rename from reactos/base/applications/regedit/regproc.h rename to base/applications/regedit/regproc.h diff --git a/reactos/base/applications/regedit/res/bin.ico b/base/applications/regedit/res/bin.ico similarity index 100% rename from reactos/base/applications/regedit/res/bin.ico rename to base/applications/regedit/res/bin.ico diff --git a/reactos/base/applications/regedit/res/computer.ico b/base/applications/regedit/res/computer.ico similarity index 100% rename from reactos/base/applications/regedit/res/computer.ico rename to base/applications/regedit/res/computer.ico diff --git a/reactos/base/applications/regedit/res/folder.ico b/base/applications/regedit/res/folder.ico similarity index 100% rename from reactos/base/applications/regedit/res/folder.ico rename to base/applications/regedit/res/folder.ico diff --git a/reactos/base/applications/regedit/res/folderopen.ico b/base/applications/regedit/res/folderopen.ico similarity index 100% rename from reactos/base/applications/regedit/res/folderopen.ico rename to base/applications/regedit/res/folderopen.ico diff --git a/reactos/base/applications/regedit/res/regedit.ico b/base/applications/regedit/res/regedit.ico similarity index 100% rename from reactos/base/applications/regedit/res/regedit.ico rename to base/applications/regedit/res/regedit.ico diff --git a/reactos/base/applications/regedit/res/regfile.ico b/base/applications/regedit/res/regfile.ico similarity index 100% rename from reactos/base/applications/regedit/res/regfile.ico rename to base/applications/regedit/res/regfile.ico diff --git a/reactos/base/applications/regedit/res/string.ico b/base/applications/regedit/res/string.ico similarity index 100% rename from reactos/base/applications/regedit/res/string.ico rename to base/applications/regedit/res/string.ico diff --git a/reactos/base/applications/regedit/resource.h b/base/applications/regedit/resource.h similarity index 100% rename from reactos/base/applications/regedit/resource.h rename to base/applications/regedit/resource.h diff --git a/reactos/base/applications/regedit/rsrc.rc b/base/applications/regedit/rsrc.rc similarity index 100% rename from reactos/base/applications/regedit/rsrc.rc rename to base/applications/regedit/rsrc.rc diff --git a/reactos/base/applications/regedit/security.c b/base/applications/regedit/security.c similarity index 100% rename from reactos/base/applications/regedit/security.c rename to base/applications/regedit/security.c diff --git a/reactos/base/applications/regedit/security.h b/base/applications/regedit/security.h similarity index 100% rename from reactos/base/applications/regedit/security.h rename to base/applications/regedit/security.h diff --git a/reactos/base/applications/regedit/settings.c b/base/applications/regedit/settings.c similarity index 100% rename from reactos/base/applications/regedit/settings.c rename to base/applications/regedit/settings.c diff --git a/reactos/base/applications/regedit/treeview.c b/base/applications/regedit/treeview.c similarity index 100% rename from reactos/base/applications/regedit/treeview.c rename to base/applications/regedit/treeview.c diff --git a/reactos/base/applications/regedt32/CMakeLists.txt b/base/applications/regedt32/CMakeLists.txt similarity index 100% rename from reactos/base/applications/regedt32/CMakeLists.txt rename to base/applications/regedt32/CMakeLists.txt diff --git a/reactos/base/applications/regedt32/regedt32.c b/base/applications/regedt32/regedt32.c similarity index 100% rename from reactos/base/applications/regedt32/regedt32.c rename to base/applications/regedt32/regedt32.c diff --git a/reactos/base/applications/regedt32/res/regedt32.ico b/base/applications/regedt32/res/regedt32.ico similarity index 100% rename from reactos/base/applications/regedt32/res/regedt32.ico rename to base/applications/regedt32/res/regedt32.ico diff --git a/reactos/base/applications/regedt32/resource.h b/base/applications/regedt32/resource.h similarity index 100% rename from reactos/base/applications/regedt32/resource.h rename to base/applications/regedt32/resource.h diff --git a/reactos/base/applications/regedt32/resource.rc b/base/applications/regedt32/resource.rc similarity index 100% rename from reactos/base/applications/regedt32/resource.rc rename to base/applications/regedt32/resource.rc diff --git a/reactos/base/applications/sc/CMakeLists.txt b/base/applications/sc/CMakeLists.txt similarity index 100% rename from reactos/base/applications/sc/CMakeLists.txt rename to base/applications/sc/CMakeLists.txt diff --git a/reactos/base/applications/sc/control.c b/base/applications/sc/control.c similarity index 100% rename from reactos/base/applications/sc/control.c rename to base/applications/sc/control.c diff --git a/reactos/base/applications/sc/create.c b/base/applications/sc/create.c similarity index 100% rename from reactos/base/applications/sc/create.c rename to base/applications/sc/create.c diff --git a/reactos/base/applications/sc/delete.c b/base/applications/sc/delete.c similarity index 100% rename from reactos/base/applications/sc/delete.c rename to base/applications/sc/delete.c diff --git a/reactos/base/applications/sc/print.c b/base/applications/sc/print.c similarity index 100% rename from reactos/base/applications/sc/print.c rename to base/applications/sc/print.c diff --git a/reactos/base/applications/sc/query.c b/base/applications/sc/query.c similarity index 100% rename from reactos/base/applications/sc/query.c rename to base/applications/sc/query.c diff --git a/reactos/base/applications/sc/sc.c b/base/applications/sc/sc.c similarity index 100% rename from reactos/base/applications/sc/sc.c rename to base/applications/sc/sc.c diff --git a/reactos/base/applications/sc/sc.h b/base/applications/sc/sc.h similarity index 100% rename from reactos/base/applications/sc/sc.h rename to base/applications/sc/sc.h diff --git a/reactos/base/applications/sc/sc.rc b/base/applications/sc/sc.rc similarity index 100% rename from reactos/base/applications/sc/sc.rc rename to base/applications/sc/sc.rc diff --git a/reactos/base/applications/sc/start.c b/base/applications/sc/start.c similarity index 100% rename from reactos/base/applications/sc/start.c rename to base/applications/sc/start.c diff --git a/reactos/base/applications/sc/usage.c b/base/applications/sc/usage.c similarity index 100% rename from reactos/base/applications/sc/usage.c rename to base/applications/sc/usage.c diff --git a/reactos/base/applications/screensavers/3dtext/3dtext.c b/base/applications/screensavers/3dtext/3dtext.c similarity index 100% rename from reactos/base/applications/screensavers/3dtext/3dtext.c rename to base/applications/screensavers/3dtext/3dtext.c diff --git a/reactos/base/applications/screensavers/3dtext/3dtext.h b/base/applications/screensavers/3dtext/3dtext.h similarity index 100% rename from reactos/base/applications/screensavers/3dtext/3dtext.h rename to base/applications/screensavers/3dtext/3dtext.h diff --git a/reactos/base/applications/screensavers/3dtext/CMakeLists.txt b/base/applications/screensavers/3dtext/CMakeLists.txt similarity index 100% rename from reactos/base/applications/screensavers/3dtext/CMakeLists.txt rename to base/applications/screensavers/3dtext/CMakeLists.txt diff --git a/reactos/base/applications/screensavers/3dtext/lang/bg-BG.rc b/base/applications/screensavers/3dtext/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/bg-BG.rc rename to base/applications/screensavers/3dtext/lang/bg-BG.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/de-DE.rc b/base/applications/screensavers/3dtext/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/de-DE.rc rename to base/applications/screensavers/3dtext/lang/de-DE.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/el-GR.rc b/base/applications/screensavers/3dtext/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/el-GR.rc rename to base/applications/screensavers/3dtext/lang/el-GR.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/en-US.rc b/base/applications/screensavers/3dtext/lang/en-US.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/en-US.rc rename to base/applications/screensavers/3dtext/lang/en-US.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/es-ES.rc b/base/applications/screensavers/3dtext/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/es-ES.rc rename to base/applications/screensavers/3dtext/lang/es-ES.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/eu-ES.rc b/base/applications/screensavers/3dtext/lang/eu-ES.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/eu-ES.rc rename to base/applications/screensavers/3dtext/lang/eu-ES.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/fr-FR.rc b/base/applications/screensavers/3dtext/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/fr-FR.rc rename to base/applications/screensavers/3dtext/lang/fr-FR.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/it-IT.rc b/base/applications/screensavers/3dtext/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/it-IT.rc rename to base/applications/screensavers/3dtext/lang/it-IT.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/ja-JP.rc b/base/applications/screensavers/3dtext/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/ja-JP.rc rename to base/applications/screensavers/3dtext/lang/ja-JP.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/ko-KR.rc b/base/applications/screensavers/3dtext/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/ko-KR.rc rename to base/applications/screensavers/3dtext/lang/ko-KR.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/lt-LT.rc b/base/applications/screensavers/3dtext/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/lt-LT.rc rename to base/applications/screensavers/3dtext/lang/lt-LT.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/no-NO.rc b/base/applications/screensavers/3dtext/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/no-NO.rc rename to base/applications/screensavers/3dtext/lang/no-NO.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/pl-PL.rc b/base/applications/screensavers/3dtext/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/pl-PL.rc rename to base/applications/screensavers/3dtext/lang/pl-PL.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/ro-RO.rc b/base/applications/screensavers/3dtext/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/ro-RO.rc rename to base/applications/screensavers/3dtext/lang/ro-RO.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/ru-RU.rc b/base/applications/screensavers/3dtext/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/ru-RU.rc rename to base/applications/screensavers/3dtext/lang/ru-RU.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/sk-SK.rc b/base/applications/screensavers/3dtext/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/sk-SK.rc rename to base/applications/screensavers/3dtext/lang/sk-SK.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/sv-SE.rc b/base/applications/screensavers/3dtext/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/sv-SE.rc rename to base/applications/screensavers/3dtext/lang/sv-SE.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/uk-UA.rc b/base/applications/screensavers/3dtext/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/uk-UA.rc rename to base/applications/screensavers/3dtext/lang/uk-UA.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/zh-CN.rc b/base/applications/screensavers/3dtext/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/zh-CN.rc rename to base/applications/screensavers/3dtext/lang/zh-CN.rc diff --git a/reactos/base/applications/screensavers/3dtext/lang/zh-TW.rc b/base/applications/screensavers/3dtext/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/lang/zh-TW.rc rename to base/applications/screensavers/3dtext/lang/zh-TW.rc diff --git a/reactos/base/applications/screensavers/3dtext/resource.h b/base/applications/screensavers/3dtext/resource.h similarity index 100% rename from reactos/base/applications/screensavers/3dtext/resource.h rename to base/applications/screensavers/3dtext/resource.h diff --git a/reactos/base/applications/screensavers/3dtext/rsrc.rc b/base/applications/screensavers/3dtext/rsrc.rc similarity index 100% rename from reactos/base/applications/screensavers/3dtext/rsrc.rc rename to base/applications/screensavers/3dtext/rsrc.rc diff --git a/reactos/base/applications/screensavers/3dtext/settings.c b/base/applications/screensavers/3dtext/settings.c similarity index 100% rename from reactos/base/applications/screensavers/3dtext/settings.c rename to base/applications/screensavers/3dtext/settings.c diff --git a/reactos/base/applications/screensavers/CMakeLists.txt b/base/applications/screensavers/CMakeLists.txt similarity index 100% rename from reactos/base/applications/screensavers/CMakeLists.txt rename to base/applications/screensavers/CMakeLists.txt diff --git a/reactos/base/applications/screensavers/logon/CMakeLists.txt b/base/applications/screensavers/logon/CMakeLists.txt similarity index 100% rename from reactos/base/applications/screensavers/logon/CMakeLists.txt rename to base/applications/screensavers/logon/CMakeLists.txt diff --git a/reactos/base/applications/screensavers/logon/lang/bg-BG.rc b/base/applications/screensavers/logon/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/bg-BG.rc rename to base/applications/screensavers/logon/lang/bg-BG.rc diff --git a/reactos/base/applications/screensavers/logon/lang/de-DE.rc b/base/applications/screensavers/logon/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/de-DE.rc rename to base/applications/screensavers/logon/lang/de-DE.rc diff --git a/reactos/base/applications/screensavers/logon/lang/el-GR.rc b/base/applications/screensavers/logon/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/el-GR.rc rename to base/applications/screensavers/logon/lang/el-GR.rc diff --git a/reactos/base/applications/screensavers/logon/lang/en-US.rc b/base/applications/screensavers/logon/lang/en-US.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/en-US.rc rename to base/applications/screensavers/logon/lang/en-US.rc diff --git a/reactos/base/applications/screensavers/logon/lang/es-ES.rc b/base/applications/screensavers/logon/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/es-ES.rc rename to base/applications/screensavers/logon/lang/es-ES.rc diff --git a/reactos/base/applications/screensavers/logon/lang/eu-ES.rc b/base/applications/screensavers/logon/lang/eu-ES.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/eu-ES.rc rename to base/applications/screensavers/logon/lang/eu-ES.rc diff --git a/reactos/base/applications/screensavers/logon/lang/fr-FR.rc b/base/applications/screensavers/logon/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/fr-FR.rc rename to base/applications/screensavers/logon/lang/fr-FR.rc diff --git a/reactos/base/applications/screensavers/logon/lang/it-IT.rc b/base/applications/screensavers/logon/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/it-IT.rc rename to base/applications/screensavers/logon/lang/it-IT.rc diff --git a/reactos/base/applications/screensavers/logon/lang/ja-JP.rc b/base/applications/screensavers/logon/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/ja-JP.rc rename to base/applications/screensavers/logon/lang/ja-JP.rc diff --git a/reactos/base/applications/screensavers/logon/lang/ko-KR.rc b/base/applications/screensavers/logon/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/ko-KR.rc rename to base/applications/screensavers/logon/lang/ko-KR.rc diff --git a/reactos/base/applications/screensavers/logon/lang/lt-LT.rc b/base/applications/screensavers/logon/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/lt-LT.rc rename to base/applications/screensavers/logon/lang/lt-LT.rc diff --git a/reactos/base/applications/screensavers/logon/lang/nl-NL.rc b/base/applications/screensavers/logon/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/nl-NL.rc rename to base/applications/screensavers/logon/lang/nl-NL.rc diff --git a/reactos/base/applications/screensavers/logon/lang/no-NO.rc b/base/applications/screensavers/logon/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/no-NO.rc rename to base/applications/screensavers/logon/lang/no-NO.rc diff --git a/reactos/base/applications/screensavers/logon/lang/pl-PL.rc b/base/applications/screensavers/logon/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/pl-PL.rc rename to base/applications/screensavers/logon/lang/pl-PL.rc diff --git a/reactos/base/applications/screensavers/logon/lang/pt-BR.rc b/base/applications/screensavers/logon/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/pt-BR.rc rename to base/applications/screensavers/logon/lang/pt-BR.rc diff --git a/reactos/base/applications/screensavers/logon/lang/ro-RO.rc b/base/applications/screensavers/logon/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/ro-RO.rc rename to base/applications/screensavers/logon/lang/ro-RO.rc diff --git a/reactos/base/applications/screensavers/logon/lang/ru-RU.rc b/base/applications/screensavers/logon/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/ru-RU.rc rename to base/applications/screensavers/logon/lang/ru-RU.rc diff --git a/reactos/base/applications/screensavers/logon/lang/sk-SK.rc b/base/applications/screensavers/logon/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/sk-SK.rc rename to base/applications/screensavers/logon/lang/sk-SK.rc diff --git a/reactos/base/applications/screensavers/logon/lang/sv-SE.rc b/base/applications/screensavers/logon/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/sv-SE.rc rename to base/applications/screensavers/logon/lang/sv-SE.rc diff --git a/reactos/base/applications/screensavers/logon/lang/uk-UA.rc b/base/applications/screensavers/logon/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/uk-UA.rc rename to base/applications/screensavers/logon/lang/uk-UA.rc diff --git a/reactos/base/applications/screensavers/logon/lang/zh-CN.rc b/base/applications/screensavers/logon/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/zh-CN.rc rename to base/applications/screensavers/logon/lang/zh-CN.rc diff --git a/reactos/base/applications/screensavers/logon/lang/zh-TW.rc b/base/applications/screensavers/logon/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/lang/zh-TW.rc rename to base/applications/screensavers/logon/lang/zh-TW.rc diff --git a/reactos/base/applications/screensavers/logon/logon.c b/base/applications/screensavers/logon/logon.c similarity index 100% rename from reactos/base/applications/screensavers/logon/logon.c rename to base/applications/screensavers/logon/logon.c diff --git a/reactos/base/applications/screensavers/logon/logon.rc b/base/applications/screensavers/logon/logon.rc similarity index 100% rename from reactos/base/applications/screensavers/logon/logon.rc rename to base/applications/screensavers/logon/logon.rc diff --git a/reactos/base/applications/screensavers/logon/res/0.bmp b/base/applications/screensavers/logon/res/0.bmp similarity index 100% rename from reactos/base/applications/screensavers/logon/res/0.bmp rename to base/applications/screensavers/logon/res/0.bmp diff --git a/reactos/base/applications/screensavers/logon/res/1.bmp b/base/applications/screensavers/logon/res/1.bmp similarity index 100% rename from reactos/base/applications/screensavers/logon/res/1.bmp rename to base/applications/screensavers/logon/res/1.bmp diff --git a/reactos/base/applications/screensavers/logon/resource.h b/base/applications/screensavers/logon/resource.h similarity index 100% rename from reactos/base/applications/screensavers/logon/resource.h rename to base/applications/screensavers/logon/resource.h diff --git a/reactos/base/applications/setup16/CMakeLists.txt b/base/applications/setup16/CMakeLists.txt similarity index 100% rename from reactos/base/applications/setup16/CMakeLists.txt rename to base/applications/setup16/CMakeLists.txt diff --git a/reactos/base/applications/setup16/main.c b/base/applications/setup16/main.c similarity index 100% rename from reactos/base/applications/setup16/main.c rename to base/applications/setup16/main.c diff --git a/reactos/base/applications/shutdown/CMakeLists.txt b/base/applications/shutdown/CMakeLists.txt similarity index 100% rename from reactos/base/applications/shutdown/CMakeLists.txt rename to base/applications/shutdown/CMakeLists.txt diff --git a/reactos/base/applications/shutdown/lang/bg-BG.rc b/base/applications/shutdown/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/bg-BG.rc rename to base/applications/shutdown/lang/bg-BG.rc diff --git a/reactos/base/applications/shutdown/lang/de-DE.rc b/base/applications/shutdown/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/de-DE.rc rename to base/applications/shutdown/lang/de-DE.rc diff --git a/reactos/base/applications/shutdown/lang/el-GR.rc b/base/applications/shutdown/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/el-GR.rc rename to base/applications/shutdown/lang/el-GR.rc diff --git a/reactos/base/applications/shutdown/lang/en-US.rc b/base/applications/shutdown/lang/en-US.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/en-US.rc rename to base/applications/shutdown/lang/en-US.rc diff --git a/reactos/base/applications/shutdown/lang/es-ES.rc b/base/applications/shutdown/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/es-ES.rc rename to base/applications/shutdown/lang/es-ES.rc diff --git a/reactos/base/applications/shutdown/lang/fr-FR.rc b/base/applications/shutdown/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/fr-FR.rc rename to base/applications/shutdown/lang/fr-FR.rc diff --git a/reactos/base/applications/shutdown/lang/it-IT.rc b/base/applications/shutdown/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/it-IT.rc rename to base/applications/shutdown/lang/it-IT.rc diff --git a/reactos/base/applications/shutdown/lang/ja-JP.rc b/base/applications/shutdown/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/ja-JP.rc rename to base/applications/shutdown/lang/ja-JP.rc diff --git a/reactos/base/applications/shutdown/lang/ko-KR.rc b/base/applications/shutdown/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/ko-KR.rc rename to base/applications/shutdown/lang/ko-KR.rc diff --git a/reactos/base/applications/shutdown/lang/lt-LT.rc b/base/applications/shutdown/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/lt-LT.rc rename to base/applications/shutdown/lang/lt-LT.rc diff --git a/reactos/base/applications/shutdown/lang/nl-NL.rc b/base/applications/shutdown/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/nl-NL.rc rename to base/applications/shutdown/lang/nl-NL.rc diff --git a/reactos/base/applications/shutdown/lang/no-NO.rc b/base/applications/shutdown/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/no-NO.rc rename to base/applications/shutdown/lang/no-NO.rc diff --git a/reactos/base/applications/shutdown/lang/pl-PL.rc b/base/applications/shutdown/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/pl-PL.rc rename to base/applications/shutdown/lang/pl-PL.rc diff --git a/reactos/base/applications/shutdown/lang/pt-BR.rc b/base/applications/shutdown/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/pt-BR.rc rename to base/applications/shutdown/lang/pt-BR.rc diff --git a/reactos/base/applications/shutdown/lang/ro-RO.rc b/base/applications/shutdown/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/ro-RO.rc rename to base/applications/shutdown/lang/ro-RO.rc diff --git a/reactos/base/applications/shutdown/lang/ru-RU.rc b/base/applications/shutdown/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/ru-RU.rc rename to base/applications/shutdown/lang/ru-RU.rc diff --git a/reactos/base/applications/shutdown/lang/sk-SK.rc b/base/applications/shutdown/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/sk-SK.rc rename to base/applications/shutdown/lang/sk-SK.rc diff --git a/reactos/base/applications/shutdown/lang/sv-SE.rc b/base/applications/shutdown/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/sv-SE.rc rename to base/applications/shutdown/lang/sv-SE.rc diff --git a/reactos/base/applications/shutdown/lang/uk-UA.rc b/base/applications/shutdown/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/uk-UA.rc rename to base/applications/shutdown/lang/uk-UA.rc diff --git a/reactos/base/applications/shutdown/lang/zh-CN.rc b/base/applications/shutdown/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/zh-CN.rc rename to base/applications/shutdown/lang/zh-CN.rc diff --git a/reactos/base/applications/shutdown/lang/zh-TW.rc b/base/applications/shutdown/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/shutdown/lang/zh-TW.rc rename to base/applications/shutdown/lang/zh-TW.rc diff --git a/reactos/base/applications/shutdown/misc.c b/base/applications/shutdown/misc.c similarity index 100% rename from reactos/base/applications/shutdown/misc.c rename to base/applications/shutdown/misc.c diff --git a/reactos/base/applications/shutdown/precomp.h b/base/applications/shutdown/precomp.h similarity index 100% rename from reactos/base/applications/shutdown/precomp.h rename to base/applications/shutdown/precomp.h diff --git a/reactos/base/applications/shutdown/resource.h b/base/applications/shutdown/resource.h similarity index 100% rename from reactos/base/applications/shutdown/resource.h rename to base/applications/shutdown/resource.h diff --git a/reactos/base/applications/shutdown/rsrc.rc b/base/applications/shutdown/rsrc.rc similarity index 100% rename from reactos/base/applications/shutdown/rsrc.rc rename to base/applications/shutdown/rsrc.rc diff --git a/reactos/base/applications/shutdown/shutdown.c b/base/applications/shutdown/shutdown.c similarity index 100% rename from reactos/base/applications/shutdown/shutdown.c rename to base/applications/shutdown/shutdown.c diff --git a/reactos/base/applications/shutdown/shutdown.rc b/base/applications/shutdown/shutdown.rc similarity index 100% rename from reactos/base/applications/shutdown/shutdown.rc rename to base/applications/shutdown/shutdown.rc diff --git a/reactos/base/applications/sndrec32/CMakeLists.txt b/base/applications/sndrec32/CMakeLists.txt similarity index 100% rename from reactos/base/applications/sndrec32/CMakeLists.txt rename to base/applications/sndrec32/CMakeLists.txt diff --git a/reactos/base/applications/sndrec32/audio_api.hpp b/base/applications/sndrec32/audio_api.hpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_api.hpp rename to base/applications/sndrec32/audio_api.hpp diff --git a/reactos/base/applications/sndrec32/audio_def.hpp b/base/applications/sndrec32/audio_def.hpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_def.hpp rename to base/applications/sndrec32/audio_def.hpp diff --git a/reactos/base/applications/sndrec32/audio_format.cpp b/base/applications/sndrec32/audio_format.cpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_format.cpp rename to base/applications/sndrec32/audio_format.cpp diff --git a/reactos/base/applications/sndrec32/audio_format.hpp b/base/applications/sndrec32/audio_format.hpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_format.hpp rename to base/applications/sndrec32/audio_format.hpp diff --git a/reactos/base/applications/sndrec32/audio_membuffer.cpp b/base/applications/sndrec32/audio_membuffer.cpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_membuffer.cpp rename to base/applications/sndrec32/audio_membuffer.cpp diff --git a/reactos/base/applications/sndrec32/audio_membuffer.hpp b/base/applications/sndrec32/audio_membuffer.hpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_membuffer.hpp rename to base/applications/sndrec32/audio_membuffer.hpp diff --git a/reactos/base/applications/sndrec32/audio_producer.cpp b/base/applications/sndrec32/audio_producer.cpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_producer.cpp rename to base/applications/sndrec32/audio_producer.cpp diff --git a/reactos/base/applications/sndrec32/audio_producer.hpp b/base/applications/sndrec32/audio_producer.hpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_producer.hpp rename to base/applications/sndrec32/audio_producer.hpp diff --git a/reactos/base/applications/sndrec32/audio_receiver.cpp b/base/applications/sndrec32/audio_receiver.cpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_receiver.cpp rename to base/applications/sndrec32/audio_receiver.cpp diff --git a/reactos/base/applications/sndrec32/audio_receiver.hpp b/base/applications/sndrec32/audio_receiver.hpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_receiver.hpp rename to base/applications/sndrec32/audio_receiver.hpp diff --git a/reactos/base/applications/sndrec32/audio_resampler_acm.cpp b/base/applications/sndrec32/audio_resampler_acm.cpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_resampler_acm.cpp rename to base/applications/sndrec32/audio_resampler_acm.cpp diff --git a/reactos/base/applications/sndrec32/audio_resampler_acm.hpp b/base/applications/sndrec32/audio_resampler_acm.hpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_resampler_acm.hpp rename to base/applications/sndrec32/audio_resampler_acm.hpp diff --git a/reactos/base/applications/sndrec32/audio_wavein.cpp b/base/applications/sndrec32/audio_wavein.cpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_wavein.cpp rename to base/applications/sndrec32/audio_wavein.cpp diff --git a/reactos/base/applications/sndrec32/audio_wavein.hpp b/base/applications/sndrec32/audio_wavein.hpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_wavein.hpp rename to base/applications/sndrec32/audio_wavein.hpp diff --git a/reactos/base/applications/sndrec32/audio_waveout.cpp b/base/applications/sndrec32/audio_waveout.cpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_waveout.cpp rename to base/applications/sndrec32/audio_waveout.cpp diff --git a/reactos/base/applications/sndrec32/audio_waveout.hpp b/base/applications/sndrec32/audio_waveout.hpp similarity index 100% rename from reactos/base/applications/sndrec32/audio_waveout.hpp rename to base/applications/sndrec32/audio_waveout.hpp diff --git a/reactos/base/applications/sndrec32/kkaudio.hpp b/base/applications/sndrec32/kkaudio.hpp similarity index 100% rename from reactos/base/applications/sndrec32/kkaudio.hpp rename to base/applications/sndrec32/kkaudio.hpp diff --git a/reactos/base/applications/sndrec32/lang/cs-CZ.rc b/base/applications/sndrec32/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/cs-CZ.rc rename to base/applications/sndrec32/lang/cs-CZ.rc diff --git a/reactos/base/applications/sndrec32/lang/de-DE.rc b/base/applications/sndrec32/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/de-DE.rc rename to base/applications/sndrec32/lang/de-DE.rc diff --git a/reactos/base/applications/sndrec32/lang/en-US.rc b/base/applications/sndrec32/lang/en-US.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/en-US.rc rename to base/applications/sndrec32/lang/en-US.rc diff --git a/reactos/base/applications/sndrec32/lang/es-ES.rc b/base/applications/sndrec32/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/es-ES.rc rename to base/applications/sndrec32/lang/es-ES.rc diff --git a/reactos/base/applications/sndrec32/lang/fr-FR.rc b/base/applications/sndrec32/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/fr-FR.rc rename to base/applications/sndrec32/lang/fr-FR.rc diff --git a/reactos/base/applications/sndrec32/lang/it-IT.rc b/base/applications/sndrec32/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/it-IT.rc rename to base/applications/sndrec32/lang/it-IT.rc diff --git a/reactos/base/applications/sndrec32/lang/ja-JP.rc b/base/applications/sndrec32/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/ja-JP.rc rename to base/applications/sndrec32/lang/ja-JP.rc diff --git a/reactos/base/applications/sndrec32/lang/pl-PL.rc b/base/applications/sndrec32/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/pl-PL.rc rename to base/applications/sndrec32/lang/pl-PL.rc diff --git a/reactos/base/applications/sndrec32/lang/ro-RO.rc b/base/applications/sndrec32/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/ro-RO.rc rename to base/applications/sndrec32/lang/ro-RO.rc diff --git a/reactos/base/applications/sndrec32/lang/sk-SK.rc b/base/applications/sndrec32/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/sk-SK.rc rename to base/applications/sndrec32/lang/sk-SK.rc diff --git a/reactos/base/applications/sndrec32/lang/sv-SE.rc b/base/applications/sndrec32/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/sv-SE.rc rename to base/applications/sndrec32/lang/sv-SE.rc diff --git a/reactos/base/applications/sndrec32/lang/uk-UA.rc b/base/applications/sndrec32/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/uk-UA.rc rename to base/applications/sndrec32/lang/uk-UA.rc diff --git a/reactos/base/applications/sndrec32/lang/zh-CN.rc b/base/applications/sndrec32/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/zh-CN.rc rename to base/applications/sndrec32/lang/zh-CN.rc diff --git a/reactos/base/applications/sndrec32/lang/zh-TW.rc b/base/applications/sndrec32/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/sndrec32/lang/zh-TW.rc rename to base/applications/sndrec32/lang/zh-TW.rc diff --git a/reactos/base/applications/sndrec32/resource.h b/base/applications/sndrec32/resource.h similarity index 100% rename from reactos/base/applications/sndrec32/resource.h rename to base/applications/sndrec32/resource.h diff --git a/reactos/base/applications/sndrec32/resources/but_end.bmp b/base/applications/sndrec32/resources/but_end.bmp similarity index 100% rename from reactos/base/applications/sndrec32/resources/but_end.bmp rename to base/applications/sndrec32/resources/but_end.bmp diff --git a/reactos/base/applications/sndrec32/resources/but_end_dis.bmp b/base/applications/sndrec32/resources/but_end_dis.bmp similarity index 100% rename from reactos/base/applications/sndrec32/resources/but_end_dis.bmp rename to base/applications/sndrec32/resources/but_end_dis.bmp diff --git a/reactos/base/applications/sndrec32/resources/but_play.bmp b/base/applications/sndrec32/resources/but_play.bmp similarity index 100% rename from reactos/base/applications/sndrec32/resources/but_play.bmp rename to base/applications/sndrec32/resources/but_play.bmp diff --git a/reactos/base/applications/sndrec32/resources/but_play_dis.bmp b/base/applications/sndrec32/resources/but_play_dis.bmp similarity index 100% rename from reactos/base/applications/sndrec32/resources/but_play_dis.bmp rename to base/applications/sndrec32/resources/but_play_dis.bmp diff --git a/reactos/base/applications/sndrec32/resources/but_rec.bmp b/base/applications/sndrec32/resources/but_rec.bmp similarity index 100% rename from reactos/base/applications/sndrec32/resources/but_rec.bmp rename to base/applications/sndrec32/resources/but_rec.bmp diff --git a/reactos/base/applications/sndrec32/resources/but_rec_dis.bmp b/base/applications/sndrec32/resources/but_rec_dis.bmp similarity index 100% rename from reactos/base/applications/sndrec32/resources/but_rec_dis.bmp rename to base/applications/sndrec32/resources/but_rec_dis.bmp diff --git a/reactos/base/applications/sndrec32/resources/but_start.bmp b/base/applications/sndrec32/resources/but_start.bmp similarity index 100% rename from reactos/base/applications/sndrec32/resources/but_start.bmp rename to base/applications/sndrec32/resources/but_start.bmp diff --git a/reactos/base/applications/sndrec32/resources/but_start_dis.bmp b/base/applications/sndrec32/resources/but_start_dis.bmp similarity index 100% rename from reactos/base/applications/sndrec32/resources/but_start_dis.bmp rename to base/applications/sndrec32/resources/but_start_dis.bmp diff --git a/reactos/base/applications/sndrec32/resources/but_stop.bmp b/base/applications/sndrec32/resources/but_stop.bmp similarity index 100% rename from reactos/base/applications/sndrec32/resources/but_stop.bmp rename to base/applications/sndrec32/resources/but_stop.bmp diff --git a/reactos/base/applications/sndrec32/resources/but_stop_dis.bmp b/base/applications/sndrec32/resources/but_stop_dis.bmp similarity index 100% rename from reactos/base/applications/sndrec32/resources/but_stop_dis.bmp rename to base/applications/sndrec32/resources/but_stop_dis.bmp diff --git a/reactos/base/applications/sndrec32/resources/record-app.ico b/base/applications/sndrec32/resources/record-app.ico similarity index 100% rename from reactos/base/applications/sndrec32/resources/record-app.ico rename to base/applications/sndrec32/resources/record-app.ico diff --git a/reactos/base/applications/sndrec32/rsrc.rc b/base/applications/sndrec32/rsrc.rc similarity index 100% rename from reactos/base/applications/sndrec32/rsrc.rc rename to base/applications/sndrec32/rsrc.rc diff --git a/reactos/base/applications/sndrec32/sndrec32.cpp b/base/applications/sndrec32/sndrec32.cpp similarity index 100% rename from reactos/base/applications/sndrec32/sndrec32.cpp rename to base/applications/sndrec32/sndrec32.cpp diff --git a/reactos/base/applications/sndrec32/sndrec32.h b/base/applications/sndrec32/sndrec32.h similarity index 100% rename from reactos/base/applications/sndrec32/sndrec32.h rename to base/applications/sndrec32/sndrec32.h diff --git a/reactos/base/applications/sndrec32/stdafx.h b/base/applications/sndrec32/stdafx.h similarity index 100% rename from reactos/base/applications/sndrec32/stdafx.h rename to base/applications/sndrec32/stdafx.h diff --git a/reactos/base/applications/sndrec32/targetver.h b/base/applications/sndrec32/targetver.h similarity index 100% rename from reactos/base/applications/sndrec32/targetver.h rename to base/applications/sndrec32/targetver.h diff --git a/reactos/base/applications/sndvol32/CMakeLists.txt b/base/applications/sndvol32/CMakeLists.txt similarity index 100% rename from reactos/base/applications/sndvol32/CMakeLists.txt rename to base/applications/sndvol32/CMakeLists.txt diff --git a/reactos/base/applications/sndvol32/dialog.c b/base/applications/sndvol32/dialog.c similarity index 100% rename from reactos/base/applications/sndvol32/dialog.c rename to base/applications/sndvol32/dialog.c diff --git a/reactos/base/applications/sndvol32/lang/bg-BG.rc b/base/applications/sndvol32/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/bg-BG.rc rename to base/applications/sndvol32/lang/bg-BG.rc diff --git a/reactos/base/applications/sndvol32/lang/cs-CZ.rc b/base/applications/sndvol32/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/cs-CZ.rc rename to base/applications/sndvol32/lang/cs-CZ.rc diff --git a/reactos/base/applications/sndvol32/lang/de-DE.rc b/base/applications/sndvol32/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/de-DE.rc rename to base/applications/sndvol32/lang/de-DE.rc diff --git a/reactos/base/applications/sndvol32/lang/el-GR.rc b/base/applications/sndvol32/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/el-GR.rc rename to base/applications/sndvol32/lang/el-GR.rc diff --git a/reactos/base/applications/sndvol32/lang/en-US.rc b/base/applications/sndvol32/lang/en-US.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/en-US.rc rename to base/applications/sndvol32/lang/en-US.rc diff --git a/reactos/base/applications/sndvol32/lang/es-ES.rc b/base/applications/sndvol32/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/es-ES.rc rename to base/applications/sndvol32/lang/es-ES.rc diff --git a/reactos/base/applications/sndvol32/lang/fr-FR.rc b/base/applications/sndvol32/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/fr-FR.rc rename to base/applications/sndvol32/lang/fr-FR.rc diff --git a/reactos/base/applications/sndvol32/lang/hu-HU.rc b/base/applications/sndvol32/lang/hu-HU.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/hu-HU.rc rename to base/applications/sndvol32/lang/hu-HU.rc diff --git a/reactos/base/applications/sndvol32/lang/id-ID.rc b/base/applications/sndvol32/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/id-ID.rc rename to base/applications/sndvol32/lang/id-ID.rc diff --git a/reactos/base/applications/sndvol32/lang/it-IT.rc b/base/applications/sndvol32/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/it-IT.rc rename to base/applications/sndvol32/lang/it-IT.rc diff --git a/reactos/base/applications/sndvol32/lang/ja-JP.rc b/base/applications/sndvol32/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/ja-JP.rc rename to base/applications/sndvol32/lang/ja-JP.rc diff --git a/reactos/base/applications/sndvol32/lang/ko-KR.rc b/base/applications/sndvol32/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/ko-KR.rc rename to base/applications/sndvol32/lang/ko-KR.rc diff --git a/reactos/base/applications/sndvol32/lang/lt-LT.rc b/base/applications/sndvol32/lang/lt-LT.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/lt-LT.rc rename to base/applications/sndvol32/lang/lt-LT.rc diff --git a/reactos/base/applications/sndvol32/lang/nl-NL.rc b/base/applications/sndvol32/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/nl-NL.rc rename to base/applications/sndvol32/lang/nl-NL.rc diff --git a/reactos/base/applications/sndvol32/lang/no-NO.rc b/base/applications/sndvol32/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/no-NO.rc rename to base/applications/sndvol32/lang/no-NO.rc diff --git a/reactos/base/applications/sndvol32/lang/pl-PL.rc b/base/applications/sndvol32/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/pl-PL.rc rename to base/applications/sndvol32/lang/pl-PL.rc diff --git a/reactos/base/applications/sndvol32/lang/pt-BR.rc b/base/applications/sndvol32/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/pt-BR.rc rename to base/applications/sndvol32/lang/pt-BR.rc diff --git a/reactos/base/applications/sndvol32/lang/ro-RO.rc b/base/applications/sndvol32/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/ro-RO.rc rename to base/applications/sndvol32/lang/ro-RO.rc diff --git a/reactos/base/applications/sndvol32/lang/ru-RU.rc b/base/applications/sndvol32/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/ru-RU.rc rename to base/applications/sndvol32/lang/ru-RU.rc diff --git a/reactos/base/applications/sndvol32/lang/sk-SK.rc b/base/applications/sndvol32/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/sk-SK.rc rename to base/applications/sndvol32/lang/sk-SK.rc diff --git a/reactos/base/applications/sndvol32/lang/sv-SE.rc b/base/applications/sndvol32/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/sv-SE.rc rename to base/applications/sndvol32/lang/sv-SE.rc diff --git a/reactos/base/applications/sndvol32/lang/th-TH.rc b/base/applications/sndvol32/lang/th-TH.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/th-TH.rc rename to base/applications/sndvol32/lang/th-TH.rc diff --git a/reactos/base/applications/sndvol32/lang/uk-UA.rc b/base/applications/sndvol32/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/uk-UA.rc rename to base/applications/sndvol32/lang/uk-UA.rc diff --git a/reactos/base/applications/sndvol32/lang/zh-CN.rc b/base/applications/sndvol32/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/zh-CN.rc rename to base/applications/sndvol32/lang/zh-CN.rc diff --git a/reactos/base/applications/sndvol32/lang/zh-TW.rc b/base/applications/sndvol32/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/sndvol32/lang/zh-TW.rc rename to base/applications/sndvol32/lang/zh-TW.rc diff --git a/reactos/base/applications/sndvol32/misc.c b/base/applications/sndvol32/misc.c similarity index 100% rename from reactos/base/applications/sndvol32/misc.c rename to base/applications/sndvol32/misc.c diff --git a/reactos/base/applications/sndvol32/mixer.c b/base/applications/sndvol32/mixer.c similarity index 100% rename from reactos/base/applications/sndvol32/mixer.c rename to base/applications/sndvol32/mixer.c diff --git a/reactos/base/applications/sndvol32/resources.h b/base/applications/sndvol32/resources.h similarity index 100% rename from reactos/base/applications/sndvol32/resources.h rename to base/applications/sndvol32/resources.h diff --git a/reactos/base/applications/sndvol32/resources/sndvol32.ico b/base/applications/sndvol32/resources/sndvol32.ico similarity index 100% rename from reactos/base/applications/sndvol32/resources/sndvol32.ico rename to base/applications/sndvol32/resources/sndvol32.ico diff --git a/reactos/base/applications/sndvol32/rsrc.rc b/base/applications/sndvol32/rsrc.rc similarity index 100% rename from reactos/base/applications/sndvol32/rsrc.rc rename to base/applications/sndvol32/rsrc.rc diff --git a/reactos/base/applications/sndvol32/sndvol32.c b/base/applications/sndvol32/sndvol32.c similarity index 100% rename from reactos/base/applications/sndvol32/sndvol32.c rename to base/applications/sndvol32/sndvol32.c diff --git a/reactos/base/applications/sndvol32/sndvol32.h b/base/applications/sndvol32/sndvol32.h similarity index 100% rename from reactos/base/applications/sndvol32/sndvol32.h rename to base/applications/sndvol32/sndvol32.h diff --git a/reactos/base/applications/sndvol32/sndvol32.rc b/base/applications/sndvol32/sndvol32.rc similarity index 100% rename from reactos/base/applications/sndvol32/sndvol32.rc rename to base/applications/sndvol32/sndvol32.rc diff --git a/reactos/base/applications/taskmgr/CMakeLists.txt b/base/applications/taskmgr/CMakeLists.txt similarity index 100% rename from reactos/base/applications/taskmgr/CMakeLists.txt rename to base/applications/taskmgr/CMakeLists.txt diff --git a/reactos/base/applications/taskmgr/about.c b/base/applications/taskmgr/about.c similarity index 100% rename from reactos/base/applications/taskmgr/about.c rename to base/applications/taskmgr/about.c diff --git a/reactos/base/applications/taskmgr/about.h b/base/applications/taskmgr/about.h similarity index 100% rename from reactos/base/applications/taskmgr/about.h rename to base/applications/taskmgr/about.h diff --git a/reactos/base/applications/taskmgr/affinity.c b/base/applications/taskmgr/affinity.c similarity index 100% rename from reactos/base/applications/taskmgr/affinity.c rename to base/applications/taskmgr/affinity.c diff --git a/reactos/base/applications/taskmgr/affinity.h b/base/applications/taskmgr/affinity.h similarity index 100% rename from reactos/base/applications/taskmgr/affinity.h rename to base/applications/taskmgr/affinity.h diff --git a/reactos/base/applications/taskmgr/applpage.c b/base/applications/taskmgr/applpage.c similarity index 100% rename from reactos/base/applications/taskmgr/applpage.c rename to base/applications/taskmgr/applpage.c diff --git a/reactos/base/applications/taskmgr/applpage.h b/base/applications/taskmgr/applpage.h similarity index 100% rename from reactos/base/applications/taskmgr/applpage.h rename to base/applications/taskmgr/applpage.h diff --git a/reactos/base/applications/taskmgr/column.c b/base/applications/taskmgr/column.c similarity index 100% rename from reactos/base/applications/taskmgr/column.c rename to base/applications/taskmgr/column.c diff --git a/reactos/base/applications/taskmgr/column.h b/base/applications/taskmgr/column.h similarity index 100% rename from reactos/base/applications/taskmgr/column.h rename to base/applications/taskmgr/column.h diff --git a/reactos/base/applications/taskmgr/dbgchnl.c b/base/applications/taskmgr/dbgchnl.c similarity index 100% rename from reactos/base/applications/taskmgr/dbgchnl.c rename to base/applications/taskmgr/dbgchnl.c diff --git a/reactos/base/applications/taskmgr/dbgchnl.h b/base/applications/taskmgr/dbgchnl.h similarity index 100% rename from reactos/base/applications/taskmgr/dbgchnl.h rename to base/applications/taskmgr/dbgchnl.h diff --git a/reactos/base/applications/taskmgr/debug.c b/base/applications/taskmgr/debug.c similarity index 100% rename from reactos/base/applications/taskmgr/debug.c rename to base/applications/taskmgr/debug.c diff --git a/reactos/base/applications/taskmgr/debug.h b/base/applications/taskmgr/debug.h similarity index 100% rename from reactos/base/applications/taskmgr/debug.h rename to base/applications/taskmgr/debug.h diff --git a/reactos/base/applications/taskmgr/endproc.c b/base/applications/taskmgr/endproc.c similarity index 100% rename from reactos/base/applications/taskmgr/endproc.c rename to base/applications/taskmgr/endproc.c diff --git a/reactos/base/applications/taskmgr/endproc.h b/base/applications/taskmgr/endproc.h similarity index 100% rename from reactos/base/applications/taskmgr/endproc.h rename to base/applications/taskmgr/endproc.h diff --git a/reactos/base/applications/taskmgr/graph.c b/base/applications/taskmgr/graph.c similarity index 100% rename from reactos/base/applications/taskmgr/graph.c rename to base/applications/taskmgr/graph.c diff --git a/reactos/base/applications/taskmgr/graph.h b/base/applications/taskmgr/graph.h similarity index 100% rename from reactos/base/applications/taskmgr/graph.h rename to base/applications/taskmgr/graph.h diff --git a/reactos/base/applications/taskmgr/graphctl.c b/base/applications/taskmgr/graphctl.c similarity index 100% rename from reactos/base/applications/taskmgr/graphctl.c rename to base/applications/taskmgr/graphctl.c diff --git a/reactos/base/applications/taskmgr/graphctl.h b/base/applications/taskmgr/graphctl.h similarity index 100% rename from reactos/base/applications/taskmgr/graphctl.h rename to base/applications/taskmgr/graphctl.h diff --git a/reactos/base/applications/taskmgr/lang/bg-BG.rc b/base/applications/taskmgr/lang/bg-BG.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/bg-BG.rc rename to base/applications/taskmgr/lang/bg-BG.rc diff --git a/reactos/base/applications/taskmgr/lang/cs-CZ.rc b/base/applications/taskmgr/lang/cs-CZ.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/cs-CZ.rc rename to base/applications/taskmgr/lang/cs-CZ.rc diff --git a/reactos/base/applications/taskmgr/lang/da-DK.rc b/base/applications/taskmgr/lang/da-DK.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/da-DK.rc rename to base/applications/taskmgr/lang/da-DK.rc diff --git a/reactos/base/applications/taskmgr/lang/de-DE.rc b/base/applications/taskmgr/lang/de-DE.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/de-DE.rc rename to base/applications/taskmgr/lang/de-DE.rc diff --git a/reactos/base/applications/taskmgr/lang/el-GR.rc b/base/applications/taskmgr/lang/el-GR.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/el-GR.rc rename to base/applications/taskmgr/lang/el-GR.rc diff --git a/reactos/base/applications/taskmgr/lang/en-US.rc b/base/applications/taskmgr/lang/en-US.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/en-US.rc rename to base/applications/taskmgr/lang/en-US.rc diff --git a/reactos/base/applications/taskmgr/lang/es-ES.rc b/base/applications/taskmgr/lang/es-ES.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/es-ES.rc rename to base/applications/taskmgr/lang/es-ES.rc diff --git a/reactos/base/applications/taskmgr/lang/fr-FR.rc b/base/applications/taskmgr/lang/fr-FR.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/fr-FR.rc rename to base/applications/taskmgr/lang/fr-FR.rc diff --git a/reactos/base/applications/taskmgr/lang/hu-HU.rc b/base/applications/taskmgr/lang/hu-HU.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/hu-HU.rc rename to base/applications/taskmgr/lang/hu-HU.rc diff --git a/reactos/base/applications/taskmgr/lang/id-ID.rc b/base/applications/taskmgr/lang/id-ID.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/id-ID.rc rename to base/applications/taskmgr/lang/id-ID.rc diff --git a/reactos/base/applications/taskmgr/lang/it-IT.rc b/base/applications/taskmgr/lang/it-IT.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/it-IT.rc rename to base/applications/taskmgr/lang/it-IT.rc diff --git a/reactos/base/applications/taskmgr/lang/ja-JP.rc b/base/applications/taskmgr/lang/ja-JP.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/ja-JP.rc rename to base/applications/taskmgr/lang/ja-JP.rc diff --git a/reactos/base/applications/taskmgr/lang/ko-KR.rc b/base/applications/taskmgr/lang/ko-KR.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/ko-KR.rc rename to base/applications/taskmgr/lang/ko-KR.rc diff --git a/reactos/base/applications/taskmgr/lang/nl-NL.rc b/base/applications/taskmgr/lang/nl-NL.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/nl-NL.rc rename to base/applications/taskmgr/lang/nl-NL.rc diff --git a/reactos/base/applications/taskmgr/lang/no-NO.rc b/base/applications/taskmgr/lang/no-NO.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/no-NO.rc rename to base/applications/taskmgr/lang/no-NO.rc diff --git a/reactos/base/applications/taskmgr/lang/pl-PL.rc b/base/applications/taskmgr/lang/pl-PL.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/pl-PL.rc rename to base/applications/taskmgr/lang/pl-PL.rc diff --git a/reactos/base/applications/taskmgr/lang/pt-BR.rc b/base/applications/taskmgr/lang/pt-BR.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/pt-BR.rc rename to base/applications/taskmgr/lang/pt-BR.rc diff --git a/reactos/base/applications/taskmgr/lang/ro-RO.rc b/base/applications/taskmgr/lang/ro-RO.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/ro-RO.rc rename to base/applications/taskmgr/lang/ro-RO.rc diff --git a/reactos/base/applications/taskmgr/lang/ru-RU.rc b/base/applications/taskmgr/lang/ru-RU.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/ru-RU.rc rename to base/applications/taskmgr/lang/ru-RU.rc diff --git a/reactos/base/applications/taskmgr/lang/sk-SK.rc b/base/applications/taskmgr/lang/sk-SK.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/sk-SK.rc rename to base/applications/taskmgr/lang/sk-SK.rc diff --git a/reactos/base/applications/taskmgr/lang/sv-SE.rc b/base/applications/taskmgr/lang/sv-SE.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/sv-SE.rc rename to base/applications/taskmgr/lang/sv-SE.rc diff --git a/reactos/base/applications/taskmgr/lang/uk-UA.rc b/base/applications/taskmgr/lang/uk-UA.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/uk-UA.rc rename to base/applications/taskmgr/lang/uk-UA.rc diff --git a/reactos/base/applications/taskmgr/lang/zh-CN.rc b/base/applications/taskmgr/lang/zh-CN.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/zh-CN.rc rename to base/applications/taskmgr/lang/zh-CN.rc diff --git a/reactos/base/applications/taskmgr/lang/zh-TW.rc b/base/applications/taskmgr/lang/zh-TW.rc similarity index 100% rename from reactos/base/applications/taskmgr/lang/zh-TW.rc rename to base/applications/taskmgr/lang/zh-TW.rc diff --git a/reactos/base/applications/taskmgr/optnmenu.c b/base/applications/taskmgr/optnmenu.c similarity index 100% rename from reactos/base/applications/taskmgr/optnmenu.c rename to base/applications/taskmgr/optnmenu.c diff --git a/reactos/base/applications/taskmgr/optnmenu.h b/base/applications/taskmgr/optnmenu.h similarity index 100% rename from reactos/base/applications/taskmgr/optnmenu.h rename to base/applications/taskmgr/optnmenu.h diff --git a/reactos/base/applications/taskmgr/perfdata.c b/base/applications/taskmgr/perfdata.c similarity index 100% rename from reactos/base/applications/taskmgr/perfdata.c rename to base/applications/taskmgr/perfdata.c diff --git a/reactos/base/applications/taskmgr/perfdata.h b/base/applications/taskmgr/perfdata.h similarity index 100% rename from reactos/base/applications/taskmgr/perfdata.h rename to base/applications/taskmgr/perfdata.h diff --git a/reactos/base/applications/taskmgr/perfpage.c b/base/applications/taskmgr/perfpage.c similarity index 100% rename from reactos/base/applications/taskmgr/perfpage.c rename to base/applications/taskmgr/perfpage.c diff --git a/reactos/base/applications/taskmgr/perfpage.h b/base/applications/taskmgr/perfpage.h similarity index 100% rename from reactos/base/applications/taskmgr/perfpage.h rename to base/applications/taskmgr/perfpage.h diff --git a/reactos/base/applications/taskmgr/precomp.h b/base/applications/taskmgr/precomp.h similarity index 100% rename from reactos/base/applications/taskmgr/precomp.h rename to base/applications/taskmgr/precomp.h diff --git a/reactos/base/applications/taskmgr/priority.c b/base/applications/taskmgr/priority.c similarity index 100% rename from reactos/base/applications/taskmgr/priority.c rename to base/applications/taskmgr/priority.c diff --git a/reactos/base/applications/taskmgr/priority.h b/base/applications/taskmgr/priority.h similarity index 100% rename from reactos/base/applications/taskmgr/priority.h rename to base/applications/taskmgr/priority.h diff --git a/reactos/base/applications/taskmgr/proclist.c b/base/applications/taskmgr/proclist.c similarity index 100% rename from reactos/base/applications/taskmgr/proclist.c rename to base/applications/taskmgr/proclist.c diff --git a/reactos/base/applications/taskmgr/proclist.h b/base/applications/taskmgr/proclist.h similarity index 100% rename from reactos/base/applications/taskmgr/proclist.h rename to base/applications/taskmgr/proclist.h diff --git a/reactos/base/applications/taskmgr/procpage.c b/base/applications/taskmgr/procpage.c similarity index 100% rename from reactos/base/applications/taskmgr/procpage.c rename to base/applications/taskmgr/procpage.c diff --git a/reactos/base/applications/taskmgr/procpage.h b/base/applications/taskmgr/procpage.h similarity index 100% rename from reactos/base/applications/taskmgr/procpage.h rename to base/applications/taskmgr/procpage.h diff --git a/reactos/base/applications/taskmgr/res/taskmgr.ico b/base/applications/taskmgr/res/taskmgr.ico similarity index 100% rename from reactos/base/applications/taskmgr/res/taskmgr.ico rename to base/applications/taskmgr/res/taskmgr.ico diff --git a/reactos/base/applications/taskmgr/res/trayicon.bmp b/base/applications/taskmgr/res/trayicon.bmp similarity index 100% rename from reactos/base/applications/taskmgr/res/trayicon.bmp rename to base/applications/taskmgr/res/trayicon.bmp diff --git a/reactos/base/applications/taskmgr/res/traymask.bmp b/base/applications/taskmgr/res/traymask.bmp similarity index 100% rename from reactos/base/applications/taskmgr/res/traymask.bmp rename to base/applications/taskmgr/res/traymask.bmp diff --git a/reactos/base/applications/taskmgr/res/window.ico b/base/applications/taskmgr/res/window.ico similarity index 100% rename from reactos/base/applications/taskmgr/res/window.ico rename to base/applications/taskmgr/res/window.ico diff --git a/reactos/base/applications/taskmgr/res/windowsm.ico b/base/applications/taskmgr/res/windowsm.ico similarity index 100% rename from reactos/base/applications/taskmgr/res/windowsm.ico rename to base/applications/taskmgr/res/windowsm.ico diff --git a/reactos/base/applications/taskmgr/resource.h b/base/applications/taskmgr/resource.h similarity index 100% rename from reactos/base/applications/taskmgr/resource.h rename to base/applications/taskmgr/resource.h diff --git a/reactos/base/applications/taskmgr/rsrc.rc b/base/applications/taskmgr/rsrc.rc similarity index 100% rename from reactos/base/applications/taskmgr/rsrc.rc rename to base/applications/taskmgr/rsrc.rc diff --git a/reactos/base/applications/taskmgr/run.c b/base/applications/taskmgr/run.c similarity index 100% rename from reactos/base/applications/taskmgr/run.c rename to base/applications/taskmgr/run.c diff --git a/reactos/base/applications/taskmgr/run.h b/base/applications/taskmgr/run.h similarity index 100% rename from reactos/base/applications/taskmgr/run.h rename to base/applications/taskmgr/run.h diff --git a/reactos/base/applications/taskmgr/taskmgr.c b/base/applications/taskmgr/taskmgr.c similarity index 100% rename from reactos/base/applications/taskmgr/taskmgr.c rename to base/applications/taskmgr/taskmgr.c diff --git a/reactos/base/applications/taskmgr/taskmgr.h b/base/applications/taskmgr/taskmgr.h similarity index 100% rename from reactos/base/applications/taskmgr/taskmgr.h rename to base/applications/taskmgr/taskmgr.h diff --git a/reactos/base/applications/taskmgr/taskmgr.rc b/base/applications/taskmgr/taskmgr.rc similarity index 100% rename from reactos/base/applications/taskmgr/taskmgr.rc rename to base/applications/taskmgr/taskmgr.rc diff --git a/reactos/base/applications/taskmgr/trayicon.c b/base/applications/taskmgr/trayicon.c similarity index 100% rename from reactos/base/applications/taskmgr/trayicon.c rename to base/applications/taskmgr/trayicon.c diff --git a/reactos/base/applications/taskmgr/trayicon.h b/base/applications/taskmgr/trayicon.h similarity index 100% rename from reactos/base/applications/taskmgr/trayicon.h rename to base/applications/taskmgr/trayicon.h diff --git a/reactos/base/applications/winhlp32/Bg.rc b/base/applications/winhlp32/Bg.rc similarity index 100% rename from reactos/base/applications/winhlp32/Bg.rc rename to base/applications/winhlp32/Bg.rc diff --git a/reactos/base/applications/winhlp32/CMakeLists.txt b/base/applications/winhlp32/CMakeLists.txt similarity index 100% rename from reactos/base/applications/winhlp32/CMakeLists.txt rename to base/applications/winhlp32/CMakeLists.txt diff --git a/reactos/base/applications/winhlp32/Cs.rc b/base/applications/winhlp32/Cs.rc similarity index 100% rename from reactos/base/applications/winhlp32/Cs.rc rename to base/applications/winhlp32/Cs.rc diff --git a/reactos/base/applications/winhlp32/Da.rc b/base/applications/winhlp32/Da.rc similarity index 100% rename from reactos/base/applications/winhlp32/Da.rc rename to base/applications/winhlp32/Da.rc diff --git a/reactos/base/applications/winhlp32/De.rc b/base/applications/winhlp32/De.rc similarity index 100% rename from reactos/base/applications/winhlp32/De.rc rename to base/applications/winhlp32/De.rc diff --git a/reactos/base/applications/winhlp32/En.rc b/base/applications/winhlp32/En.rc similarity index 100% rename from reactos/base/applications/winhlp32/En.rc rename to base/applications/winhlp32/En.rc diff --git a/reactos/base/applications/winhlp32/Es.rc b/base/applications/winhlp32/Es.rc similarity index 100% rename from reactos/base/applications/winhlp32/Es.rc rename to base/applications/winhlp32/Es.rc diff --git a/reactos/base/applications/winhlp32/Fi.rc b/base/applications/winhlp32/Fi.rc similarity index 100% rename from reactos/base/applications/winhlp32/Fi.rc rename to base/applications/winhlp32/Fi.rc diff --git a/reactos/base/applications/winhlp32/Fr.rc b/base/applications/winhlp32/Fr.rc similarity index 100% rename from reactos/base/applications/winhlp32/Fr.rc rename to base/applications/winhlp32/Fr.rc diff --git a/reactos/base/applications/winhlp32/He.rc b/base/applications/winhlp32/He.rc similarity index 100% rename from reactos/base/applications/winhlp32/He.rc rename to base/applications/winhlp32/He.rc diff --git a/reactos/base/applications/winhlp32/Hu.rc b/base/applications/winhlp32/Hu.rc similarity index 100% rename from reactos/base/applications/winhlp32/Hu.rc rename to base/applications/winhlp32/Hu.rc diff --git a/reactos/base/applications/winhlp32/It.rc b/base/applications/winhlp32/It.rc similarity index 100% rename from reactos/base/applications/winhlp32/It.rc rename to base/applications/winhlp32/It.rc diff --git a/reactos/base/applications/winhlp32/Ja.rc b/base/applications/winhlp32/Ja.rc similarity index 100% rename from reactos/base/applications/winhlp32/Ja.rc rename to base/applications/winhlp32/Ja.rc diff --git a/reactos/base/applications/winhlp32/Ko.rc b/base/applications/winhlp32/Ko.rc similarity index 100% rename from reactos/base/applications/winhlp32/Ko.rc rename to base/applications/winhlp32/Ko.rc diff --git a/reactos/base/applications/winhlp32/Lt.rc b/base/applications/winhlp32/Lt.rc similarity index 100% rename from reactos/base/applications/winhlp32/Lt.rc rename to base/applications/winhlp32/Lt.rc diff --git a/reactos/base/applications/winhlp32/Nl.rc b/base/applications/winhlp32/Nl.rc similarity index 100% rename from reactos/base/applications/winhlp32/Nl.rc rename to base/applications/winhlp32/Nl.rc diff --git a/reactos/base/applications/winhlp32/No.rc b/base/applications/winhlp32/No.rc similarity index 100% rename from reactos/base/applications/winhlp32/No.rc rename to base/applications/winhlp32/No.rc diff --git a/reactos/base/applications/winhlp32/Pl.rc b/base/applications/winhlp32/Pl.rc similarity index 100% rename from reactos/base/applications/winhlp32/Pl.rc rename to base/applications/winhlp32/Pl.rc diff --git a/reactos/base/applications/winhlp32/Pt.rc b/base/applications/winhlp32/Pt.rc similarity index 100% rename from reactos/base/applications/winhlp32/Pt.rc rename to base/applications/winhlp32/Pt.rc diff --git a/reactos/base/applications/winhlp32/Rm.rc b/base/applications/winhlp32/Rm.rc similarity index 100% rename from reactos/base/applications/winhlp32/Rm.rc rename to base/applications/winhlp32/Rm.rc diff --git a/reactos/base/applications/winhlp32/Ro.rc b/base/applications/winhlp32/Ro.rc similarity index 100% rename from reactos/base/applications/winhlp32/Ro.rc rename to base/applications/winhlp32/Ro.rc diff --git a/reactos/base/applications/winhlp32/Ru.rc b/base/applications/winhlp32/Ru.rc similarity index 100% rename from reactos/base/applications/winhlp32/Ru.rc rename to base/applications/winhlp32/Ru.rc diff --git a/reactos/base/applications/winhlp32/Si.rc b/base/applications/winhlp32/Si.rc similarity index 100% rename from reactos/base/applications/winhlp32/Si.rc rename to base/applications/winhlp32/Si.rc diff --git a/reactos/base/applications/winhlp32/Sk.rc b/base/applications/winhlp32/Sk.rc similarity index 100% rename from reactos/base/applications/winhlp32/Sk.rc rename to base/applications/winhlp32/Sk.rc diff --git a/reactos/base/applications/winhlp32/Sr.rc b/base/applications/winhlp32/Sr.rc similarity index 100% rename from reactos/base/applications/winhlp32/Sr.rc rename to base/applications/winhlp32/Sr.rc diff --git a/reactos/base/applications/winhlp32/Sv.rc b/base/applications/winhlp32/Sv.rc similarity index 100% rename from reactos/base/applications/winhlp32/Sv.rc rename to base/applications/winhlp32/Sv.rc diff --git a/reactos/base/applications/winhlp32/Tr.rc b/base/applications/winhlp32/Tr.rc similarity index 100% rename from reactos/base/applications/winhlp32/Tr.rc rename to base/applications/winhlp32/Tr.rc diff --git a/reactos/base/applications/winhlp32/Uk.rc b/base/applications/winhlp32/Uk.rc similarity index 100% rename from reactos/base/applications/winhlp32/Uk.rc rename to base/applications/winhlp32/Uk.rc diff --git a/reactos/base/applications/winhlp32/Zh.rc b/base/applications/winhlp32/Zh.rc similarity index 100% rename from reactos/base/applications/winhlp32/Zh.rc rename to base/applications/winhlp32/Zh.rc diff --git a/reactos/base/applications/winhlp32/callback.c b/base/applications/winhlp32/callback.c similarity index 100% rename from reactos/base/applications/winhlp32/callback.c rename to base/applications/winhlp32/callback.c diff --git a/reactos/base/applications/winhlp32/hlpfile.c b/base/applications/winhlp32/hlpfile.c similarity index 100% rename from reactos/base/applications/winhlp32/hlpfile.c rename to base/applications/winhlp32/hlpfile.c diff --git a/reactos/base/applications/winhlp32/hlpfile.h b/base/applications/winhlp32/hlpfile.h similarity index 100% rename from reactos/base/applications/winhlp32/hlpfile.h rename to base/applications/winhlp32/hlpfile.h diff --git a/reactos/base/applications/winhlp32/lex.yy.c b/base/applications/winhlp32/lex.yy.c similarity index 100% rename from reactos/base/applications/winhlp32/lex.yy.c rename to base/applications/winhlp32/lex.yy.c diff --git a/reactos/base/applications/winhlp32/macro.c b/base/applications/winhlp32/macro.c similarity index 100% rename from reactos/base/applications/winhlp32/macro.c rename to base/applications/winhlp32/macro.c diff --git a/reactos/base/applications/winhlp32/macro.h b/base/applications/winhlp32/macro.h similarity index 100% rename from reactos/base/applications/winhlp32/macro.h rename to base/applications/winhlp32/macro.h diff --git a/reactos/base/applications/winhlp32/macro.lex.l b/base/applications/winhlp32/macro.lex.l similarity index 100% rename from reactos/base/applications/winhlp32/macro.lex.l rename to base/applications/winhlp32/macro.lex.l diff --git a/reactos/base/applications/winhlp32/rsrc.rc b/base/applications/winhlp32/rsrc.rc similarity index 100% rename from reactos/base/applications/winhlp32/rsrc.rc rename to base/applications/winhlp32/rsrc.rc diff --git a/reactos/base/applications/winhlp32/string.c b/base/applications/winhlp32/string.c similarity index 100% rename from reactos/base/applications/winhlp32/string.c rename to base/applications/winhlp32/string.c diff --git a/reactos/base/applications/winhlp32/winhelp.c b/base/applications/winhlp32/winhelp.c similarity index 100% rename from reactos/base/applications/winhlp32/winhelp.c rename to base/applications/winhlp32/winhelp.c diff --git a/reactos/base/applications/winhlp32/winhelp.h b/base/applications/winhlp32/winhelp.h similarity index 100% rename from reactos/base/applications/winhlp32/winhelp.h rename to base/applications/winhlp32/winhelp.h diff --git a/reactos/base/applications/winhlp32/winhelp.ico b/base/applications/winhlp32/winhelp.ico similarity index 100% rename from reactos/base/applications/winhlp32/winhelp.ico rename to base/applications/winhlp32/winhelp.ico diff --git a/reactos/base/applications/winhlp32/winhelp_res.h b/base/applications/winhlp32/winhelp_res.h similarity index 100% rename from reactos/base/applications/winhlp32/winhelp_res.h rename to base/applications/winhlp32/winhelp_res.h diff --git a/reactos/base/applications/winver/CMakeLists.txt b/base/applications/winver/CMakeLists.txt similarity index 100% rename from reactos/base/applications/winver/CMakeLists.txt rename to base/applications/winver/CMakeLists.txt diff --git a/reactos/base/applications/winver/winver.c b/base/applications/winver/winver.c similarity index 100% rename from reactos/base/applications/winver/winver.c rename to base/applications/winver/winver.c diff --git a/reactos/base/applications/wordpad/CMakeLists.txt b/base/applications/wordpad/CMakeLists.txt similarity index 100% rename from reactos/base/applications/wordpad/CMakeLists.txt rename to base/applications/wordpad/CMakeLists.txt diff --git a/reactos/base/applications/wordpad/Da.rc b/base/applications/wordpad/Da.rc similarity index 100% rename from reactos/base/applications/wordpad/Da.rc rename to base/applications/wordpad/Da.rc diff --git a/reactos/base/applications/wordpad/De.rc b/base/applications/wordpad/De.rc similarity index 100% rename from reactos/base/applications/wordpad/De.rc rename to base/applications/wordpad/De.rc diff --git a/reactos/base/applications/wordpad/En.rc b/base/applications/wordpad/En.rc similarity index 100% rename from reactos/base/applications/wordpad/En.rc rename to base/applications/wordpad/En.rc diff --git a/reactos/base/applications/wordpad/Fr.rc b/base/applications/wordpad/Fr.rc similarity index 100% rename from reactos/base/applications/wordpad/Fr.rc rename to base/applications/wordpad/Fr.rc diff --git a/reactos/base/applications/wordpad/Hu.rc b/base/applications/wordpad/Hu.rc similarity index 100% rename from reactos/base/applications/wordpad/Hu.rc rename to base/applications/wordpad/Hu.rc diff --git a/reactos/base/applications/wordpad/It.rc b/base/applications/wordpad/It.rc similarity index 100% rename from reactos/base/applications/wordpad/It.rc rename to base/applications/wordpad/It.rc diff --git a/reactos/base/applications/wordpad/Ja.rc b/base/applications/wordpad/Ja.rc similarity index 100% rename from reactos/base/applications/wordpad/Ja.rc rename to base/applications/wordpad/Ja.rc diff --git a/reactos/base/applications/wordpad/Ko.rc b/base/applications/wordpad/Ko.rc similarity index 100% rename from reactos/base/applications/wordpad/Ko.rc rename to base/applications/wordpad/Ko.rc diff --git a/reactos/base/applications/wordpad/Lt.rc b/base/applications/wordpad/Lt.rc similarity index 100% rename from reactos/base/applications/wordpad/Lt.rc rename to base/applications/wordpad/Lt.rc diff --git a/reactos/base/applications/wordpad/Nl.rc b/base/applications/wordpad/Nl.rc similarity index 100% rename from reactos/base/applications/wordpad/Nl.rc rename to base/applications/wordpad/Nl.rc diff --git a/reactos/base/applications/wordpad/No.rc b/base/applications/wordpad/No.rc similarity index 100% rename from reactos/base/applications/wordpad/No.rc rename to base/applications/wordpad/No.rc diff --git a/reactos/base/applications/wordpad/Pl.rc b/base/applications/wordpad/Pl.rc similarity index 100% rename from reactos/base/applications/wordpad/Pl.rc rename to base/applications/wordpad/Pl.rc diff --git a/reactos/base/applications/wordpad/Pt.rc b/base/applications/wordpad/Pt.rc similarity index 100% rename from reactos/base/applications/wordpad/Pt.rc rename to base/applications/wordpad/Pt.rc diff --git a/reactos/base/applications/wordpad/Ro.rc b/base/applications/wordpad/Ro.rc similarity index 100% rename from reactos/base/applications/wordpad/Ro.rc rename to base/applications/wordpad/Ro.rc diff --git a/reactos/base/applications/wordpad/Ru.rc b/base/applications/wordpad/Ru.rc similarity index 100% rename from reactos/base/applications/wordpad/Ru.rc rename to base/applications/wordpad/Ru.rc diff --git a/reactos/base/applications/wordpad/Si.rc b/base/applications/wordpad/Si.rc similarity index 100% rename from reactos/base/applications/wordpad/Si.rc rename to base/applications/wordpad/Si.rc diff --git a/reactos/base/applications/wordpad/Sv.rc b/base/applications/wordpad/Sv.rc similarity index 100% rename from reactos/base/applications/wordpad/Sv.rc rename to base/applications/wordpad/Sv.rc diff --git a/reactos/base/applications/wordpad/Tr.rc b/base/applications/wordpad/Tr.rc similarity index 100% rename from reactos/base/applications/wordpad/Tr.rc rename to base/applications/wordpad/Tr.rc diff --git a/reactos/base/applications/wordpad/Uk.rc b/base/applications/wordpad/Uk.rc similarity index 100% rename from reactos/base/applications/wordpad/Uk.rc rename to base/applications/wordpad/Uk.rc diff --git a/reactos/base/applications/wordpad/Zh.rc b/base/applications/wordpad/Zh.rc similarity index 100% rename from reactos/base/applications/wordpad/Zh.rc rename to base/applications/wordpad/Zh.rc diff --git a/reactos/base/applications/wordpad/formatbar.bmp b/base/applications/wordpad/formatbar.bmp similarity index 100% rename from reactos/base/applications/wordpad/formatbar.bmp rename to base/applications/wordpad/formatbar.bmp diff --git a/reactos/base/applications/wordpad/olecallback.c b/base/applications/wordpad/olecallback.c similarity index 100% rename from reactos/base/applications/wordpad/olecallback.c rename to base/applications/wordpad/olecallback.c diff --git a/reactos/base/applications/wordpad/print.c b/base/applications/wordpad/print.c similarity index 100% rename from reactos/base/applications/wordpad/print.c rename to base/applications/wordpad/print.c diff --git a/reactos/base/applications/wordpad/registry.c b/base/applications/wordpad/registry.c similarity index 100% rename from reactos/base/applications/wordpad/registry.c rename to base/applications/wordpad/registry.c diff --git a/reactos/base/applications/wordpad/rsrc.rc b/base/applications/wordpad/rsrc.rc similarity index 100% rename from reactos/base/applications/wordpad/rsrc.rc rename to base/applications/wordpad/rsrc.rc diff --git a/reactos/base/applications/wordpad/toolbar.bmp b/base/applications/wordpad/toolbar.bmp similarity index 100% rename from reactos/base/applications/wordpad/toolbar.bmp rename to base/applications/wordpad/toolbar.bmp diff --git a/reactos/base/applications/wordpad/wordpad.c b/base/applications/wordpad/wordpad.c similarity index 100% rename from reactos/base/applications/wordpad/wordpad.c rename to base/applications/wordpad/wordpad.c diff --git a/reactos/base/applications/wordpad/wordpad.h b/base/applications/wordpad/wordpad.h similarity index 100% rename from reactos/base/applications/wordpad/wordpad.h rename to base/applications/wordpad/wordpad.h diff --git a/reactos/base/applications/wordpad/wordpad.ico b/base/applications/wordpad/wordpad.ico similarity index 100% rename from reactos/base/applications/wordpad/wordpad.ico rename to base/applications/wordpad/wordpad.ico diff --git a/reactos/base/applications/wordpad/zoom.cur b/base/applications/wordpad/zoom.cur similarity index 100% rename from reactos/base/applications/wordpad/zoom.cur rename to base/applications/wordpad/zoom.cur diff --git a/reactos/base/applications/write/Bg.rc b/base/applications/write/Bg.rc similarity index 100% rename from reactos/base/applications/write/Bg.rc rename to base/applications/write/Bg.rc diff --git a/reactos/base/applications/write/CMakeLists.txt b/base/applications/write/CMakeLists.txt similarity index 100% rename from reactos/base/applications/write/CMakeLists.txt rename to base/applications/write/CMakeLists.txt diff --git a/reactos/base/applications/write/Da.rc b/base/applications/write/Da.rc similarity index 100% rename from reactos/base/applications/write/Da.rc rename to base/applications/write/Da.rc diff --git a/reactos/base/applications/write/De.rc b/base/applications/write/De.rc similarity index 100% rename from reactos/base/applications/write/De.rc rename to base/applications/write/De.rc diff --git a/reactos/base/applications/write/En.rc b/base/applications/write/En.rc similarity index 100% rename from reactos/base/applications/write/En.rc rename to base/applications/write/En.rc diff --git a/reactos/base/applications/write/Es.rc b/base/applications/write/Es.rc similarity index 100% rename from reactos/base/applications/write/Es.rc rename to base/applications/write/Es.rc diff --git a/reactos/base/applications/write/Fr.rc b/base/applications/write/Fr.rc similarity index 100% rename from reactos/base/applications/write/Fr.rc rename to base/applications/write/Fr.rc diff --git a/reactos/base/applications/write/It.rc b/base/applications/write/It.rc similarity index 100% rename from reactos/base/applications/write/It.rc rename to base/applications/write/It.rc diff --git a/reactos/base/applications/write/Ja.rc b/base/applications/write/Ja.rc similarity index 100% rename from reactos/base/applications/write/Ja.rc rename to base/applications/write/Ja.rc diff --git a/reactos/base/applications/write/Ko.rc b/base/applications/write/Ko.rc similarity index 100% rename from reactos/base/applications/write/Ko.rc rename to base/applications/write/Ko.rc diff --git a/reactos/base/applications/write/Lt.rc b/base/applications/write/Lt.rc similarity index 100% rename from reactos/base/applications/write/Lt.rc rename to base/applications/write/Lt.rc diff --git a/reactos/base/applications/write/Nl.rc b/base/applications/write/Nl.rc similarity index 100% rename from reactos/base/applications/write/Nl.rc rename to base/applications/write/Nl.rc diff --git a/reactos/base/applications/write/No.rc b/base/applications/write/No.rc similarity index 100% rename from reactos/base/applications/write/No.rc rename to base/applications/write/No.rc diff --git a/reactos/base/applications/write/Pl.rc b/base/applications/write/Pl.rc similarity index 100% rename from reactos/base/applications/write/Pl.rc rename to base/applications/write/Pl.rc diff --git a/reactos/base/applications/write/Pt.rc b/base/applications/write/Pt.rc similarity index 100% rename from reactos/base/applications/write/Pt.rc rename to base/applications/write/Pt.rc diff --git a/reactos/base/applications/write/Ro.rc b/base/applications/write/Ro.rc similarity index 100% rename from reactos/base/applications/write/Ro.rc rename to base/applications/write/Ro.rc diff --git a/reactos/base/applications/write/Ru.rc b/base/applications/write/Ru.rc similarity index 100% rename from reactos/base/applications/write/Ru.rc rename to base/applications/write/Ru.rc diff --git a/reactos/base/applications/write/Si.rc b/base/applications/write/Si.rc similarity index 100% rename from reactos/base/applications/write/Si.rc rename to base/applications/write/Si.rc diff --git a/reactos/base/applications/write/Sr.rc b/base/applications/write/Sr.rc similarity index 100% rename from reactos/base/applications/write/Sr.rc rename to base/applications/write/Sr.rc diff --git a/reactos/base/applications/write/Sv.rc b/base/applications/write/Sv.rc similarity index 100% rename from reactos/base/applications/write/Sv.rc rename to base/applications/write/Sv.rc diff --git a/reactos/base/applications/write/Uk.rc b/base/applications/write/Uk.rc similarity index 100% rename from reactos/base/applications/write/Uk.rc rename to base/applications/write/Uk.rc diff --git a/reactos/base/applications/write/Zh.rc b/base/applications/write/Zh.rc similarity index 100% rename from reactos/base/applications/write/Zh.rc rename to base/applications/write/Zh.rc diff --git a/reactos/base/applications/write/resources.h b/base/applications/write/resources.h similarity index 100% rename from reactos/base/applications/write/resources.h rename to base/applications/write/resources.h diff --git a/reactos/base/applications/write/rsrc.rc b/base/applications/write/rsrc.rc similarity index 100% rename from reactos/base/applications/write/rsrc.rc rename to base/applications/write/rsrc.rc diff --git a/reactos/base/applications/write/write.c b/base/applications/write/write.c similarity index 100% rename from reactos/base/applications/write/write.c rename to base/applications/write/write.c diff --git a/reactos/base/services/CMakeLists.txt b/base/services/CMakeLists.txt similarity index 100% rename from reactos/base/services/CMakeLists.txt rename to base/services/CMakeLists.txt diff --git a/reactos/base/services/audiosrv/CMakeLists.txt b/base/services/audiosrv/CMakeLists.txt similarity index 100% rename from reactos/base/services/audiosrv/CMakeLists.txt rename to base/services/audiosrv/CMakeLists.txt diff --git a/reactos/base/services/audiosrv/audiosrv.h b/base/services/audiosrv/audiosrv.h similarity index 100% rename from reactos/base/services/audiosrv/audiosrv.h rename to base/services/audiosrv/audiosrv.h diff --git a/reactos/base/services/audiosrv/audiosrv.rc b/base/services/audiosrv/audiosrv.rc similarity index 100% rename from reactos/base/services/audiosrv/audiosrv.rc rename to base/services/audiosrv/audiosrv.rc diff --git a/reactos/base/services/audiosrv/audiosrv.txt b/base/services/audiosrv/audiosrv.txt similarity index 100% rename from reactos/base/services/audiosrv/audiosrv.txt rename to base/services/audiosrv/audiosrv.txt diff --git a/reactos/base/services/audiosrv/debug.c b/base/services/audiosrv/debug.c similarity index 100% rename from reactos/base/services/audiosrv/debug.c rename to base/services/audiosrv/debug.c diff --git a/reactos/base/services/audiosrv/main.c b/base/services/audiosrv/main.c similarity index 100% rename from reactos/base/services/audiosrv/main.c rename to base/services/audiosrv/main.c diff --git a/reactos/base/services/audiosrv/pnp.c b/base/services/audiosrv/pnp.c similarity index 100% rename from reactos/base/services/audiosrv/pnp.c rename to base/services/audiosrv/pnp.c diff --git a/reactos/base/services/audiosrv/pnp_list_lock.c b/base/services/audiosrv/pnp_list_lock.c similarity index 100% rename from reactos/base/services/audiosrv/pnp_list_lock.c rename to base/services/audiosrv/pnp_list_lock.c diff --git a/reactos/base/services/audiosrv/pnp_list_manager.c b/base/services/audiosrv/pnp_list_manager.c similarity index 100% rename from reactos/base/services/audiosrv/pnp_list_manager.c rename to base/services/audiosrv/pnp_list_manager.c diff --git a/reactos/base/services/audiosrv/services.c b/base/services/audiosrv/services.c similarity index 100% rename from reactos/base/services/audiosrv/services.c rename to base/services/audiosrv/services.c diff --git a/reactos/base/services/eventlog/CMakeLists.txt b/base/services/eventlog/CMakeLists.txt similarity index 100% rename from reactos/base/services/eventlog/CMakeLists.txt rename to base/services/eventlog/CMakeLists.txt diff --git a/reactos/base/services/eventlog/eventlog.c b/base/services/eventlog/eventlog.c similarity index 100% rename from reactos/base/services/eventlog/eventlog.c rename to base/services/eventlog/eventlog.c diff --git a/reactos/base/services/eventlog/eventlog.h b/base/services/eventlog/eventlog.h similarity index 100% rename from reactos/base/services/eventlog/eventlog.h rename to base/services/eventlog/eventlog.h diff --git a/reactos/base/services/eventlog/eventlog.rc b/base/services/eventlog/eventlog.rc similarity index 100% rename from reactos/base/services/eventlog/eventlog.rc rename to base/services/eventlog/eventlog.rc diff --git a/reactos/base/services/eventlog/eventsource.c b/base/services/eventlog/eventsource.c similarity index 100% rename from reactos/base/services/eventlog/eventsource.c rename to base/services/eventlog/eventsource.c diff --git a/reactos/base/services/eventlog/file.c b/base/services/eventlog/file.c similarity index 100% rename from reactos/base/services/eventlog/file.c rename to base/services/eventlog/file.c diff --git a/reactos/base/services/eventlog/logport.c b/base/services/eventlog/logport.c similarity index 100% rename from reactos/base/services/eventlog/logport.c rename to base/services/eventlog/logport.c diff --git a/reactos/base/services/eventlog/rpc.c b/base/services/eventlog/rpc.c similarity index 100% rename from reactos/base/services/eventlog/rpc.c rename to base/services/eventlog/rpc.c diff --git a/reactos/base/services/rpcss/CMakeLists.txt b/base/services/rpcss/CMakeLists.txt similarity index 100% rename from reactos/base/services/rpcss/CMakeLists.txt rename to base/services/rpcss/CMakeLists.txt diff --git a/reactos/base/services/rpcss/epm.idl b/base/services/rpcss/epm.idl similarity index 100% rename from reactos/base/services/rpcss/epm.idl rename to base/services/rpcss/epm.idl diff --git a/reactos/base/services/rpcss/epmp.c b/base/services/rpcss/epmp.c similarity index 100% rename from reactos/base/services/rpcss/epmp.c rename to base/services/rpcss/epmp.c diff --git a/reactos/base/services/rpcss/irot.idl b/base/services/rpcss/irot.idl similarity index 100% rename from reactos/base/services/rpcss/irot.idl rename to base/services/rpcss/irot.idl diff --git a/reactos/base/services/rpcss/irotp.c b/base/services/rpcss/irotp.c similarity index 100% rename from reactos/base/services/rpcss/irotp.c rename to base/services/rpcss/irotp.c diff --git a/reactos/base/services/rpcss/rpcss.h b/base/services/rpcss/rpcss.h similarity index 100% rename from reactos/base/services/rpcss/rpcss.h rename to base/services/rpcss/rpcss.h diff --git a/reactos/base/services/rpcss/rpcss.rc b/base/services/rpcss/rpcss.rc similarity index 100% rename from reactos/base/services/rpcss/rpcss.rc rename to base/services/rpcss/rpcss.rc diff --git a/reactos/base/services/rpcss/rpcss_main.c b/base/services/rpcss/rpcss_main.c similarity index 100% rename from reactos/base/services/rpcss/rpcss_main.c rename to base/services/rpcss/rpcss_main.c diff --git a/reactos/base/services/rpcss/rpcss_ros.diff b/base/services/rpcss/rpcss_ros.diff similarity index 100% rename from reactos/base/services/rpcss/rpcss_ros.diff rename to base/services/rpcss/rpcss_ros.diff diff --git a/reactos/base/services/rpcss/service_main.c b/base/services/rpcss/service_main.c similarity index 100% rename from reactos/base/services/rpcss/service_main.c rename to base/services/rpcss/service_main.c diff --git a/reactos/base/services/spoolsv/CMakeLists.txt b/base/services/spoolsv/CMakeLists.txt similarity index 100% rename from reactos/base/services/spoolsv/CMakeLists.txt rename to base/services/spoolsv/CMakeLists.txt diff --git a/reactos/base/services/spoolsv/spoolsv.c b/base/services/spoolsv/spoolsv.c similarity index 100% rename from reactos/base/services/spoolsv/spoolsv.c rename to base/services/spoolsv/spoolsv.c diff --git a/reactos/base/services/spoolsv/spoolsv.rc b/base/services/spoolsv/spoolsv.rc similarity index 100% rename from reactos/base/services/spoolsv/spoolsv.rc rename to base/services/spoolsv/spoolsv.rc diff --git a/reactos/base/services/svchost/CMakeLists.txt b/base/services/svchost/CMakeLists.txt similarity index 100% rename from reactos/base/services/svchost/CMakeLists.txt rename to base/services/svchost/CMakeLists.txt diff --git a/reactos/base/services/svchost/svchost.c b/base/services/svchost/svchost.c similarity index 100% rename from reactos/base/services/svchost/svchost.c rename to base/services/svchost/svchost.c diff --git a/reactos/base/services/svchost/svchost.h b/base/services/svchost/svchost.h similarity index 100% rename from reactos/base/services/svchost/svchost.h rename to base/services/svchost/svchost.h diff --git a/reactos/base/services/svchost/svchost.rc b/base/services/svchost/svchost.rc similarity index 100% rename from reactos/base/services/svchost/svchost.rc rename to base/services/svchost/svchost.rc diff --git a/reactos/base/services/tcpsvcs/CMakeLists.txt b/base/services/tcpsvcs/CMakeLists.txt similarity index 100% rename from reactos/base/services/tcpsvcs/CMakeLists.txt rename to base/services/tcpsvcs/CMakeLists.txt diff --git a/reactos/base/services/tcpsvcs/chargen.c b/base/services/tcpsvcs/chargen.c similarity index 100% rename from reactos/base/services/tcpsvcs/chargen.c rename to base/services/tcpsvcs/chargen.c diff --git a/reactos/base/services/tcpsvcs/daytime.c b/base/services/tcpsvcs/daytime.c similarity index 100% rename from reactos/base/services/tcpsvcs/daytime.c rename to base/services/tcpsvcs/daytime.c diff --git a/reactos/base/services/tcpsvcs/discard.c b/base/services/tcpsvcs/discard.c similarity index 100% rename from reactos/base/services/tcpsvcs/discard.c rename to base/services/tcpsvcs/discard.c diff --git a/reactos/base/services/tcpsvcs/echo.c b/base/services/tcpsvcs/echo.c similarity index 100% rename from reactos/base/services/tcpsvcs/echo.c rename to base/services/tcpsvcs/echo.c diff --git a/reactos/base/services/tcpsvcs/log.c b/base/services/tcpsvcs/log.c similarity index 100% rename from reactos/base/services/tcpsvcs/log.c rename to base/services/tcpsvcs/log.c diff --git a/reactos/base/services/tcpsvcs/qotd.c b/base/services/tcpsvcs/qotd.c similarity index 100% rename from reactos/base/services/tcpsvcs/qotd.c rename to base/services/tcpsvcs/qotd.c diff --git a/reactos/base/services/tcpsvcs/quotes b/base/services/tcpsvcs/quotes similarity index 100% rename from reactos/base/services/tcpsvcs/quotes rename to base/services/tcpsvcs/quotes diff --git a/reactos/base/services/tcpsvcs/skelserver.c b/base/services/tcpsvcs/skelserver.c similarity index 100% rename from reactos/base/services/tcpsvcs/skelserver.c rename to base/services/tcpsvcs/skelserver.c diff --git a/reactos/base/services/tcpsvcs/tcpsvcs.c b/base/services/tcpsvcs/tcpsvcs.c similarity index 100% rename from reactos/base/services/tcpsvcs/tcpsvcs.c rename to base/services/tcpsvcs/tcpsvcs.c diff --git a/reactos/base/services/tcpsvcs/tcpsvcs.h b/base/services/tcpsvcs/tcpsvcs.h similarity index 100% rename from reactos/base/services/tcpsvcs/tcpsvcs.h rename to base/services/tcpsvcs/tcpsvcs.h diff --git a/reactos/base/services/tcpsvcs/tcpsvcs.rc b/base/services/tcpsvcs/tcpsvcs.rc similarity index 100% rename from reactos/base/services/tcpsvcs/tcpsvcs.rc rename to base/services/tcpsvcs/tcpsvcs.rc diff --git a/reactos/base/services/telnetd/CMakeLists.txt b/base/services/telnetd/CMakeLists.txt similarity index 100% rename from reactos/base/services/telnetd/CMakeLists.txt rename to base/services/telnetd/CMakeLists.txt diff --git a/reactos/base/services/telnetd/serviceentry.c b/base/services/telnetd/serviceentry.c similarity index 100% rename from reactos/base/services/telnetd/serviceentry.c rename to base/services/telnetd/serviceentry.c diff --git a/reactos/base/services/telnetd/syslog.c b/base/services/telnetd/syslog.c similarity index 100% rename from reactos/base/services/telnetd/syslog.c rename to base/services/telnetd/syslog.c diff --git a/reactos/base/services/telnetd/syslog.h b/base/services/telnetd/syslog.h similarity index 100% rename from reactos/base/services/telnetd/syslog.h rename to base/services/telnetd/syslog.h diff --git a/reactos/base/services/telnetd/telnetd.c b/base/services/telnetd/telnetd.c similarity index 100% rename from reactos/base/services/telnetd/telnetd.c rename to base/services/telnetd/telnetd.c diff --git a/reactos/base/services/telnetd/telnetd.h b/base/services/telnetd/telnetd.h similarity index 100% rename from reactos/base/services/telnetd/telnetd.h rename to base/services/telnetd/telnetd.h diff --git a/reactos/base/services/telnetd/telnetd.rc b/base/services/telnetd/telnetd.rc similarity index 100% rename from reactos/base/services/telnetd/telnetd.rc rename to base/services/telnetd/telnetd.rc diff --git a/reactos/base/services/telnetd/telnetd.vcproj b/base/services/telnetd/telnetd.vcproj similarity index 100% rename from reactos/base/services/telnetd/telnetd.vcproj rename to base/services/telnetd/telnetd.vcproj diff --git a/reactos/base/services/tftpd/CMakeLists.txt b/base/services/tftpd/CMakeLists.txt similarity index 100% rename from reactos/base/services/tftpd/CMakeLists.txt rename to base/services/tftpd/CMakeLists.txt diff --git a/reactos/base/services/tftpd/README.txt b/base/services/tftpd/README.txt similarity index 100% rename from reactos/base/services/tftpd/README.txt rename to base/services/tftpd/README.txt diff --git a/reactos/base/services/tftpd/tftpd.cpp b/base/services/tftpd/tftpd.cpp similarity index 100% rename from reactos/base/services/tftpd/tftpd.cpp rename to base/services/tftpd/tftpd.cpp diff --git a/reactos/base/services/tftpd/tftpd.h b/base/services/tftpd/tftpd.h similarity index 100% rename from reactos/base/services/tftpd/tftpd.h rename to base/services/tftpd/tftpd.h diff --git a/reactos/base/services/thmsvc/CMakeLists.txt b/base/services/thmsvc/CMakeLists.txt similarity index 100% rename from reactos/base/services/thmsvc/CMakeLists.txt rename to base/services/thmsvc/CMakeLists.txt diff --git a/reactos/base/services/thmsvc/thmsvc.c b/base/services/thmsvc/thmsvc.c similarity index 100% rename from reactos/base/services/thmsvc/thmsvc.c rename to base/services/thmsvc/thmsvc.c diff --git a/reactos/base/services/thmsvc/thmsvc.rc b/base/services/thmsvc/thmsvc.rc similarity index 100% rename from reactos/base/services/thmsvc/thmsvc.rc rename to base/services/thmsvc/thmsvc.rc diff --git a/reactos/base/services/umpnpmgr/CMakeLists.txt b/base/services/umpnpmgr/CMakeLists.txt similarity index 100% rename from reactos/base/services/umpnpmgr/CMakeLists.txt rename to base/services/umpnpmgr/CMakeLists.txt diff --git a/reactos/base/services/umpnpmgr/umpnpmgr.c b/base/services/umpnpmgr/umpnpmgr.c similarity index 100% rename from reactos/base/services/umpnpmgr/umpnpmgr.c rename to base/services/umpnpmgr/umpnpmgr.c diff --git a/reactos/base/services/umpnpmgr/umpnpmgr.rc b/base/services/umpnpmgr/umpnpmgr.rc similarity index 100% rename from reactos/base/services/umpnpmgr/umpnpmgr.rc rename to base/services/umpnpmgr/umpnpmgr.rc diff --git a/reactos/base/services/wlansvc/CMakeLists.txt b/base/services/wlansvc/CMakeLists.txt similarity index 100% rename from reactos/base/services/wlansvc/CMakeLists.txt rename to base/services/wlansvc/CMakeLists.txt diff --git a/reactos/base/services/wlansvc/rpcserver.c b/base/services/wlansvc/rpcserver.c similarity index 100% rename from reactos/base/services/wlansvc/rpcserver.c rename to base/services/wlansvc/rpcserver.c diff --git a/reactos/base/services/wlansvc/wlansvc.c b/base/services/wlansvc/wlansvc.c similarity index 100% rename from reactos/base/services/wlansvc/wlansvc.c rename to base/services/wlansvc/wlansvc.c diff --git a/reactos/base/setup/CMakeLists.txt b/base/setup/CMakeLists.txt similarity index 100% rename from reactos/base/setup/CMakeLists.txt rename to base/setup/CMakeLists.txt diff --git a/reactos/base/setup/reactos/CMakeLists.txt b/base/setup/reactos/CMakeLists.txt similarity index 100% rename from reactos/base/setup/reactos/CMakeLists.txt rename to base/setup/reactos/CMakeLists.txt diff --git a/reactos/base/setup/reactos/lang/bg-BG.rc b/base/setup/reactos/lang/bg-BG.rc similarity index 100% rename from reactos/base/setup/reactos/lang/bg-BG.rc rename to base/setup/reactos/lang/bg-BG.rc diff --git a/reactos/base/setup/reactos/lang/cs-CZ.rc b/base/setup/reactos/lang/cs-CZ.rc similarity index 100% rename from reactos/base/setup/reactos/lang/cs-CZ.rc rename to base/setup/reactos/lang/cs-CZ.rc diff --git a/reactos/base/setup/reactos/lang/de-DE.rc b/base/setup/reactos/lang/de-DE.rc similarity index 100% rename from reactos/base/setup/reactos/lang/de-DE.rc rename to base/setup/reactos/lang/de-DE.rc diff --git a/reactos/base/setup/reactos/lang/el-GR.rc b/base/setup/reactos/lang/el-GR.rc similarity index 100% rename from reactos/base/setup/reactos/lang/el-GR.rc rename to base/setup/reactos/lang/el-GR.rc diff --git a/reactos/base/setup/reactos/lang/en-US.rc b/base/setup/reactos/lang/en-US.rc similarity index 100% rename from reactos/base/setup/reactos/lang/en-US.rc rename to base/setup/reactos/lang/en-US.rc diff --git a/reactos/base/setup/reactos/lang/es-ES.rc b/base/setup/reactos/lang/es-ES.rc similarity index 100% rename from reactos/base/setup/reactos/lang/es-ES.rc rename to base/setup/reactos/lang/es-ES.rc diff --git a/reactos/base/setup/reactos/lang/et-EE.rc b/base/setup/reactos/lang/et-EE.rc similarity index 100% rename from reactos/base/setup/reactos/lang/et-EE.rc rename to base/setup/reactos/lang/et-EE.rc diff --git a/reactos/base/setup/reactos/lang/fi-FI.rc b/base/setup/reactos/lang/fi-FI.rc similarity index 100% rename from reactos/base/setup/reactos/lang/fi-FI.rc rename to base/setup/reactos/lang/fi-FI.rc diff --git a/reactos/base/setup/reactos/lang/fr-FR.rc b/base/setup/reactos/lang/fr-FR.rc similarity index 100% rename from reactos/base/setup/reactos/lang/fr-FR.rc rename to base/setup/reactos/lang/fr-FR.rc diff --git a/reactos/base/setup/reactos/lang/hu-HU.rc b/base/setup/reactos/lang/hu-HU.rc similarity index 100% rename from reactos/base/setup/reactos/lang/hu-HU.rc rename to base/setup/reactos/lang/hu-HU.rc diff --git a/reactos/base/setup/reactos/lang/it-IT.rc b/base/setup/reactos/lang/it-IT.rc similarity index 100% rename from reactos/base/setup/reactos/lang/it-IT.rc rename to base/setup/reactos/lang/it-IT.rc diff --git a/reactos/base/setup/reactos/lang/no-NO.rc b/base/setup/reactos/lang/no-NO.rc similarity index 100% rename from reactos/base/setup/reactos/lang/no-NO.rc rename to base/setup/reactos/lang/no-NO.rc diff --git a/reactos/base/setup/reactos/lang/pl-PL.rc b/base/setup/reactos/lang/pl-PL.rc similarity index 100% rename from reactos/base/setup/reactos/lang/pl-PL.rc rename to base/setup/reactos/lang/pl-PL.rc diff --git a/reactos/base/setup/reactos/lang/pt-BR.rc b/base/setup/reactos/lang/pt-BR.rc similarity index 100% rename from reactos/base/setup/reactos/lang/pt-BR.rc rename to base/setup/reactos/lang/pt-BR.rc diff --git a/reactos/base/setup/reactos/lang/ro-RO.rc b/base/setup/reactos/lang/ro-RO.rc similarity index 100% rename from reactos/base/setup/reactos/lang/ro-RO.rc rename to base/setup/reactos/lang/ro-RO.rc diff --git a/reactos/base/setup/reactos/lang/ru-RU.rc b/base/setup/reactos/lang/ru-RU.rc similarity index 100% rename from reactos/base/setup/reactos/lang/ru-RU.rc rename to base/setup/reactos/lang/ru-RU.rc diff --git a/reactos/base/setup/reactos/lang/sk-SK.rc b/base/setup/reactos/lang/sk-SK.rc similarity index 100% rename from reactos/base/setup/reactos/lang/sk-SK.rc rename to base/setup/reactos/lang/sk-SK.rc diff --git a/reactos/base/setup/reactos/lang/tr-TR.rc b/base/setup/reactos/lang/tr-TR.rc similarity index 100% rename from reactos/base/setup/reactos/lang/tr-TR.rc rename to base/setup/reactos/lang/tr-TR.rc diff --git a/reactos/base/setup/reactos/lang/uk-UA.rc b/base/setup/reactos/lang/uk-UA.rc similarity index 100% rename from reactos/base/setup/reactos/lang/uk-UA.rc rename to base/setup/reactos/lang/uk-UA.rc diff --git a/reactos/base/setup/reactos/reactos.c b/base/setup/reactos/reactos.c similarity index 100% rename from reactos/base/setup/reactos/reactos.c rename to base/setup/reactos/reactos.c diff --git a/reactos/base/setup/reactos/reactos.rc b/base/setup/reactos/reactos.rc similarity index 100% rename from reactos/base/setup/reactos/reactos.rc rename to base/setup/reactos/reactos.rc diff --git a/reactos/base/setup/reactos/res/header.bmp b/base/setup/reactos/res/header.bmp similarity index 100% rename from reactos/base/setup/reactos/res/header.bmp rename to base/setup/reactos/res/header.bmp diff --git a/reactos/base/setup/reactos/res/reactos.ico b/base/setup/reactos/res/reactos.ico similarity index 100% rename from reactos/base/setup/reactos/res/reactos.ico rename to base/setup/reactos/res/reactos.ico diff --git a/reactos/base/setup/reactos/res/rosbitmap.bmp b/base/setup/reactos/res/rosbitmap.bmp similarity index 100% rename from reactos/base/setup/reactos/res/rosbitmap.bmp rename to base/setup/reactos/res/rosbitmap.bmp diff --git a/reactos/base/setup/reactos/res/watermark.bmp b/base/setup/reactos/res/watermark.bmp similarity index 100% rename from reactos/base/setup/reactos/res/watermark.bmp rename to base/setup/reactos/res/watermark.bmp diff --git a/reactos/base/setup/reactos/resource.h b/base/setup/reactos/resource.h similarity index 100% rename from reactos/base/setup/reactos/resource.h rename to base/setup/reactos/resource.h diff --git a/reactos/base/setup/reactos/rsrc.rc b/base/setup/reactos/rsrc.rc similarity index 100% rename from reactos/base/setup/reactos/rsrc.rc rename to base/setup/reactos/rsrc.rc diff --git a/reactos/base/setup/setup/CMakeLists.txt b/base/setup/setup/CMakeLists.txt similarity index 100% rename from reactos/base/setup/setup/CMakeLists.txt rename to base/setup/setup/CMakeLists.txt diff --git a/reactos/base/setup/setup/setup.c b/base/setup/setup/setup.c similarity index 100% rename from reactos/base/setup/setup/setup.c rename to base/setup/setup/setup.c diff --git a/reactos/base/setup/setup/setup.rc b/base/setup/setup/setup.rc similarity index 100% rename from reactos/base/setup/setup/setup.rc rename to base/setup/setup/setup.rc diff --git a/reactos/base/setup/usetup/CMakeLists.txt b/base/setup/usetup/CMakeLists.txt similarity index 100% rename from reactos/base/setup/usetup/CMakeLists.txt rename to base/setup/usetup/CMakeLists.txt diff --git a/reactos/base/setup/usetup/bootsup.c b/base/setup/usetup/bootsup.c similarity index 100% rename from reactos/base/setup/usetup/bootsup.c rename to base/setup/usetup/bootsup.c diff --git a/reactos/base/setup/usetup/bootsup.h b/base/setup/usetup/bootsup.h similarity index 100% rename from reactos/base/setup/usetup/bootsup.h rename to base/setup/usetup/bootsup.h diff --git a/reactos/base/setup/usetup/cabinet.c b/base/setup/usetup/cabinet.c similarity index 100% rename from reactos/base/setup/usetup/cabinet.c rename to base/setup/usetup/cabinet.c diff --git a/reactos/base/setup/usetup/cabinet.h b/base/setup/usetup/cabinet.h similarity index 100% rename from reactos/base/setup/usetup/cabinet.h rename to base/setup/usetup/cabinet.h diff --git a/reactos/base/setup/usetup/chkdsk.c b/base/setup/usetup/chkdsk.c similarity index 100% rename from reactos/base/setup/usetup/chkdsk.c rename to base/setup/usetup/chkdsk.c diff --git a/reactos/base/setup/usetup/chkdsk.h b/base/setup/usetup/chkdsk.h similarity index 100% rename from reactos/base/setup/usetup/chkdsk.h rename to base/setup/usetup/chkdsk.h diff --git a/reactos/base/setup/usetup/drivesup.c b/base/setup/usetup/drivesup.c similarity index 100% rename from reactos/base/setup/usetup/drivesup.c rename to base/setup/usetup/drivesup.c diff --git a/reactos/base/setup/usetup/drivesup.h b/base/setup/usetup/drivesup.h similarity index 100% rename from reactos/base/setup/usetup/drivesup.h rename to base/setup/usetup/drivesup.h diff --git a/reactos/base/setup/usetup/errorcode.h b/base/setup/usetup/errorcode.h similarity index 100% rename from reactos/base/setup/usetup/errorcode.h rename to base/setup/usetup/errorcode.h diff --git a/reactos/base/setup/usetup/filequeue.c b/base/setup/usetup/filequeue.c similarity index 100% rename from reactos/base/setup/usetup/filequeue.c rename to base/setup/usetup/filequeue.c diff --git a/reactos/base/setup/usetup/filequeue.h b/base/setup/usetup/filequeue.h similarity index 100% rename from reactos/base/setup/usetup/filequeue.h rename to base/setup/usetup/filequeue.h diff --git a/reactos/base/setup/usetup/filesup.c b/base/setup/usetup/filesup.c similarity index 100% rename from reactos/base/setup/usetup/filesup.c rename to base/setup/usetup/filesup.c diff --git a/reactos/base/setup/usetup/filesup.h b/base/setup/usetup/filesup.h similarity index 100% rename from reactos/base/setup/usetup/filesup.h rename to base/setup/usetup/filesup.h diff --git a/reactos/base/setup/usetup/format.c b/base/setup/usetup/format.c similarity index 100% rename from reactos/base/setup/usetup/format.c rename to base/setup/usetup/format.c diff --git a/reactos/base/setup/usetup/format.h b/base/setup/usetup/format.h similarity index 100% rename from reactos/base/setup/usetup/format.h rename to base/setup/usetup/format.h diff --git a/reactos/base/setup/usetup/fslist.c b/base/setup/usetup/fslist.c similarity index 100% rename from reactos/base/setup/usetup/fslist.c rename to base/setup/usetup/fslist.c diff --git a/reactos/base/setup/usetup/fslist.h b/base/setup/usetup/fslist.h similarity index 100% rename from reactos/base/setup/usetup/fslist.h rename to base/setup/usetup/fslist.h diff --git a/reactos/base/setup/usetup/genlist.c b/base/setup/usetup/genlist.c similarity index 100% rename from reactos/base/setup/usetup/genlist.c rename to base/setup/usetup/genlist.c diff --git a/reactos/base/setup/usetup/genlist.h b/base/setup/usetup/genlist.h similarity index 100% rename from reactos/base/setup/usetup/genlist.h rename to base/setup/usetup/genlist.h diff --git a/reactos/base/setup/usetup/host.h b/base/setup/usetup/host.h similarity index 100% rename from reactos/base/setup/usetup/host.h rename to base/setup/usetup/host.h diff --git a/reactos/base/setup/usetup/inffile.c b/base/setup/usetup/inffile.c similarity index 100% rename from reactos/base/setup/usetup/inffile.c rename to base/setup/usetup/inffile.c diff --git a/reactos/base/setup/usetup/inffile.h b/base/setup/usetup/inffile.h similarity index 100% rename from reactos/base/setup/usetup/inffile.h rename to base/setup/usetup/inffile.h diff --git a/reactos/base/setup/usetup/inicache.c b/base/setup/usetup/inicache.c similarity index 100% rename from reactos/base/setup/usetup/inicache.c rename to base/setup/usetup/inicache.c diff --git a/reactos/base/setup/usetup/inicache.h b/base/setup/usetup/inicache.h similarity index 100% rename from reactos/base/setup/usetup/inicache.h rename to base/setup/usetup/inicache.h diff --git a/reactos/base/setup/usetup/interface/consup.c b/base/setup/usetup/interface/consup.c similarity index 100% rename from reactos/base/setup/usetup/interface/consup.c rename to base/setup/usetup/interface/consup.c diff --git a/reactos/base/setup/usetup/interface/consup.h b/base/setup/usetup/interface/consup.h similarity index 100% rename from reactos/base/setup/usetup/interface/consup.h rename to base/setup/usetup/interface/consup.h diff --git a/reactos/base/setup/usetup/interface/devinst.c b/base/setup/usetup/interface/devinst.c similarity index 100% rename from reactos/base/setup/usetup/interface/devinst.c rename to base/setup/usetup/interface/devinst.c diff --git a/reactos/base/setup/usetup/interface/usetup.c b/base/setup/usetup/interface/usetup.c similarity index 100% rename from reactos/base/setup/usetup/interface/usetup.c rename to base/setup/usetup/interface/usetup.c diff --git a/reactos/base/setup/usetup/lang/af-ZA.h b/base/setup/usetup/lang/af-ZA.h similarity index 100% rename from reactos/base/setup/usetup/lang/af-ZA.h rename to base/setup/usetup/lang/af-ZA.h diff --git a/reactos/base/setup/usetup/lang/ar-AE.h b/base/setup/usetup/lang/ar-AE.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-AE.h rename to base/setup/usetup/lang/ar-AE.h diff --git a/reactos/base/setup/usetup/lang/ar-BH.h b/base/setup/usetup/lang/ar-BH.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-BH.h rename to base/setup/usetup/lang/ar-BH.h diff --git a/reactos/base/setup/usetup/lang/ar-DZ.h b/base/setup/usetup/lang/ar-DZ.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-DZ.h rename to base/setup/usetup/lang/ar-DZ.h diff --git a/reactos/base/setup/usetup/lang/ar-EG.h b/base/setup/usetup/lang/ar-EG.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-EG.h rename to base/setup/usetup/lang/ar-EG.h diff --git a/reactos/base/setup/usetup/lang/ar-IQ.h b/base/setup/usetup/lang/ar-IQ.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-IQ.h rename to base/setup/usetup/lang/ar-IQ.h diff --git a/reactos/base/setup/usetup/lang/ar-JO.h b/base/setup/usetup/lang/ar-JO.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-JO.h rename to base/setup/usetup/lang/ar-JO.h diff --git a/reactos/base/setup/usetup/lang/ar-KW.h b/base/setup/usetup/lang/ar-KW.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-KW.h rename to base/setup/usetup/lang/ar-KW.h diff --git a/reactos/base/setup/usetup/lang/ar-LB.h b/base/setup/usetup/lang/ar-LB.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-LB.h rename to base/setup/usetup/lang/ar-LB.h diff --git a/reactos/base/setup/usetup/lang/ar-LY.h b/base/setup/usetup/lang/ar-LY.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-LY.h rename to base/setup/usetup/lang/ar-LY.h diff --git a/reactos/base/setup/usetup/lang/ar-MA.h b/base/setup/usetup/lang/ar-MA.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-MA.h rename to base/setup/usetup/lang/ar-MA.h diff --git a/reactos/base/setup/usetup/lang/ar-OM.h b/base/setup/usetup/lang/ar-OM.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-OM.h rename to base/setup/usetup/lang/ar-OM.h diff --git a/reactos/base/setup/usetup/lang/ar-QA.h b/base/setup/usetup/lang/ar-QA.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-QA.h rename to base/setup/usetup/lang/ar-QA.h diff --git a/reactos/base/setup/usetup/lang/ar-SA.h b/base/setup/usetup/lang/ar-SA.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-SA.h rename to base/setup/usetup/lang/ar-SA.h diff --git a/reactos/base/setup/usetup/lang/ar-SY.h b/base/setup/usetup/lang/ar-SY.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-SY.h rename to base/setup/usetup/lang/ar-SY.h diff --git a/reactos/base/setup/usetup/lang/ar-TN.h b/base/setup/usetup/lang/ar-TN.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-TN.h rename to base/setup/usetup/lang/ar-TN.h diff --git a/reactos/base/setup/usetup/lang/ar-YE.h b/base/setup/usetup/lang/ar-YE.h similarity index 100% rename from reactos/base/setup/usetup/lang/ar-YE.h rename to base/setup/usetup/lang/ar-YE.h diff --git a/reactos/base/setup/usetup/lang/az-AZ.h b/base/setup/usetup/lang/az-AZ.h similarity index 100% rename from reactos/base/setup/usetup/lang/az-AZ.h rename to base/setup/usetup/lang/az-AZ.h diff --git a/reactos/base/setup/usetup/lang/be-BY.h b/base/setup/usetup/lang/be-BY.h similarity index 100% rename from reactos/base/setup/usetup/lang/be-BY.h rename to base/setup/usetup/lang/be-BY.h diff --git a/reactos/base/setup/usetup/lang/bg-BG.h b/base/setup/usetup/lang/bg-BG.h similarity index 100% rename from reactos/base/setup/usetup/lang/bg-BG.h rename to base/setup/usetup/lang/bg-BG.h diff --git a/reactos/base/setup/usetup/lang/ca-ES.h b/base/setup/usetup/lang/ca-ES.h similarity index 100% rename from reactos/base/setup/usetup/lang/ca-ES.h rename to base/setup/usetup/lang/ca-ES.h diff --git a/reactos/base/setup/usetup/lang/cs-CZ.h b/base/setup/usetup/lang/cs-CZ.h similarity index 100% rename from reactos/base/setup/usetup/lang/cs-CZ.h rename to base/setup/usetup/lang/cs-CZ.h diff --git a/reactos/base/setup/usetup/lang/da-DK.h b/base/setup/usetup/lang/da-DK.h similarity index 100% rename from reactos/base/setup/usetup/lang/da-DK.h rename to base/setup/usetup/lang/da-DK.h diff --git a/reactos/base/setup/usetup/lang/de-AT.h b/base/setup/usetup/lang/de-AT.h similarity index 100% rename from reactos/base/setup/usetup/lang/de-AT.h rename to base/setup/usetup/lang/de-AT.h diff --git a/reactos/base/setup/usetup/lang/de-CH.h b/base/setup/usetup/lang/de-CH.h similarity index 100% rename from reactos/base/setup/usetup/lang/de-CH.h rename to base/setup/usetup/lang/de-CH.h diff --git a/reactos/base/setup/usetup/lang/de-DE.h b/base/setup/usetup/lang/de-DE.h similarity index 100% rename from reactos/base/setup/usetup/lang/de-DE.h rename to base/setup/usetup/lang/de-DE.h diff --git a/reactos/base/setup/usetup/lang/de-LI.h b/base/setup/usetup/lang/de-LI.h similarity index 100% rename from reactos/base/setup/usetup/lang/de-LI.h rename to base/setup/usetup/lang/de-LI.h diff --git a/reactos/base/setup/usetup/lang/de-LU.h b/base/setup/usetup/lang/de-LU.h similarity index 100% rename from reactos/base/setup/usetup/lang/de-LU.h rename to base/setup/usetup/lang/de-LU.h diff --git a/reactos/base/setup/usetup/lang/dv-MV.h b/base/setup/usetup/lang/dv-MV.h similarity index 100% rename from reactos/base/setup/usetup/lang/dv-MV.h rename to base/setup/usetup/lang/dv-MV.h diff --git a/reactos/base/setup/usetup/lang/el-GR.h b/base/setup/usetup/lang/el-GR.h similarity index 100% rename from reactos/base/setup/usetup/lang/el-GR.h rename to base/setup/usetup/lang/el-GR.h diff --git a/reactos/base/setup/usetup/lang/en-AU.h b/base/setup/usetup/lang/en-AU.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-AU.h rename to base/setup/usetup/lang/en-AU.h diff --git a/reactos/base/setup/usetup/lang/en-BZ.h b/base/setup/usetup/lang/en-BZ.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-BZ.h rename to base/setup/usetup/lang/en-BZ.h diff --git a/reactos/base/setup/usetup/lang/en-CA.h b/base/setup/usetup/lang/en-CA.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-CA.h rename to base/setup/usetup/lang/en-CA.h diff --git a/reactos/base/setup/usetup/lang/en-CB.h b/base/setup/usetup/lang/en-CB.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-CB.h rename to base/setup/usetup/lang/en-CB.h diff --git a/reactos/base/setup/usetup/lang/en-GB.h b/base/setup/usetup/lang/en-GB.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-GB.h rename to base/setup/usetup/lang/en-GB.h diff --git a/reactos/base/setup/usetup/lang/en-IE.h b/base/setup/usetup/lang/en-IE.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-IE.h rename to base/setup/usetup/lang/en-IE.h diff --git a/reactos/base/setup/usetup/lang/en-JM.h b/base/setup/usetup/lang/en-JM.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-JM.h rename to base/setup/usetup/lang/en-JM.h diff --git a/reactos/base/setup/usetup/lang/en-NZ.h b/base/setup/usetup/lang/en-NZ.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-NZ.h rename to base/setup/usetup/lang/en-NZ.h diff --git a/reactos/base/setup/usetup/lang/en-PH.h b/base/setup/usetup/lang/en-PH.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-PH.h rename to base/setup/usetup/lang/en-PH.h diff --git a/reactos/base/setup/usetup/lang/en-TT.h b/base/setup/usetup/lang/en-TT.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-TT.h rename to base/setup/usetup/lang/en-TT.h diff --git a/reactos/base/setup/usetup/lang/en-US.h b/base/setup/usetup/lang/en-US.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-US.h rename to base/setup/usetup/lang/en-US.h diff --git a/reactos/base/setup/usetup/lang/en-ZA.h b/base/setup/usetup/lang/en-ZA.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-ZA.h rename to base/setup/usetup/lang/en-ZA.h diff --git a/reactos/base/setup/usetup/lang/en-ZW.h b/base/setup/usetup/lang/en-ZW.h similarity index 100% rename from reactos/base/setup/usetup/lang/en-ZW.h rename to base/setup/usetup/lang/en-ZW.h diff --git a/reactos/base/setup/usetup/lang/eo-AA.h b/base/setup/usetup/lang/eo-AA.h similarity index 100% rename from reactos/base/setup/usetup/lang/eo-AA.h rename to base/setup/usetup/lang/eo-AA.h diff --git a/reactos/base/setup/usetup/lang/es-AR.h b/base/setup/usetup/lang/es-AR.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-AR.h rename to base/setup/usetup/lang/es-AR.h diff --git a/reactos/base/setup/usetup/lang/es-BO.h b/base/setup/usetup/lang/es-BO.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-BO.h rename to base/setup/usetup/lang/es-BO.h diff --git a/reactos/base/setup/usetup/lang/es-CL.h b/base/setup/usetup/lang/es-CL.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-CL.h rename to base/setup/usetup/lang/es-CL.h diff --git a/reactos/base/setup/usetup/lang/es-CO.h b/base/setup/usetup/lang/es-CO.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-CO.h rename to base/setup/usetup/lang/es-CO.h diff --git a/reactos/base/setup/usetup/lang/es-CR.h b/base/setup/usetup/lang/es-CR.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-CR.h rename to base/setup/usetup/lang/es-CR.h diff --git a/reactos/base/setup/usetup/lang/es-DO.h b/base/setup/usetup/lang/es-DO.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-DO.h rename to base/setup/usetup/lang/es-DO.h diff --git a/reactos/base/setup/usetup/lang/es-EC.h b/base/setup/usetup/lang/es-EC.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-EC.h rename to base/setup/usetup/lang/es-EC.h diff --git a/reactos/base/setup/usetup/lang/es-ES.h b/base/setup/usetup/lang/es-ES.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-ES.h rename to base/setup/usetup/lang/es-ES.h diff --git a/reactos/base/setup/usetup/lang/es-GT.h b/base/setup/usetup/lang/es-GT.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-GT.h rename to base/setup/usetup/lang/es-GT.h diff --git a/reactos/base/setup/usetup/lang/es-HN.h b/base/setup/usetup/lang/es-HN.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-HN.h rename to base/setup/usetup/lang/es-HN.h diff --git a/reactos/base/setup/usetup/lang/es-MX.h b/base/setup/usetup/lang/es-MX.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-MX.h rename to base/setup/usetup/lang/es-MX.h diff --git a/reactos/base/setup/usetup/lang/es-NI.h b/base/setup/usetup/lang/es-NI.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-NI.h rename to base/setup/usetup/lang/es-NI.h diff --git a/reactos/base/setup/usetup/lang/es-PA.h b/base/setup/usetup/lang/es-PA.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-PA.h rename to base/setup/usetup/lang/es-PA.h diff --git a/reactos/base/setup/usetup/lang/es-PE.h b/base/setup/usetup/lang/es-PE.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-PE.h rename to base/setup/usetup/lang/es-PE.h diff --git a/reactos/base/setup/usetup/lang/es-PR.h b/base/setup/usetup/lang/es-PR.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-PR.h rename to base/setup/usetup/lang/es-PR.h diff --git a/reactos/base/setup/usetup/lang/es-PY.h b/base/setup/usetup/lang/es-PY.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-PY.h rename to base/setup/usetup/lang/es-PY.h diff --git a/reactos/base/setup/usetup/lang/es-SV.h b/base/setup/usetup/lang/es-SV.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-SV.h rename to base/setup/usetup/lang/es-SV.h diff --git a/reactos/base/setup/usetup/lang/es-UY.h b/base/setup/usetup/lang/es-UY.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-UY.h rename to base/setup/usetup/lang/es-UY.h diff --git a/reactos/base/setup/usetup/lang/es-VE.h b/base/setup/usetup/lang/es-VE.h similarity index 100% rename from reactos/base/setup/usetup/lang/es-VE.h rename to base/setup/usetup/lang/es-VE.h diff --git a/reactos/base/setup/usetup/lang/et-EE.h b/base/setup/usetup/lang/et-EE.h similarity index 100% rename from reactos/base/setup/usetup/lang/et-EE.h rename to base/setup/usetup/lang/et-EE.h diff --git a/reactos/base/setup/usetup/lang/eu-ES.h b/base/setup/usetup/lang/eu-ES.h similarity index 100% rename from reactos/base/setup/usetup/lang/eu-ES.h rename to base/setup/usetup/lang/eu-ES.h diff --git a/reactos/base/setup/usetup/lang/fa-IR.h b/base/setup/usetup/lang/fa-IR.h similarity index 100% rename from reactos/base/setup/usetup/lang/fa-IR.h rename to base/setup/usetup/lang/fa-IR.h diff --git a/reactos/base/setup/usetup/lang/fi-FI.h b/base/setup/usetup/lang/fi-FI.h similarity index 100% rename from reactos/base/setup/usetup/lang/fi-FI.h rename to base/setup/usetup/lang/fi-FI.h diff --git a/reactos/base/setup/usetup/lang/fo-FO.h b/base/setup/usetup/lang/fo-FO.h similarity index 100% rename from reactos/base/setup/usetup/lang/fo-FO.h rename to base/setup/usetup/lang/fo-FO.h diff --git a/reactos/base/setup/usetup/lang/fr-BE.h b/base/setup/usetup/lang/fr-BE.h similarity index 100% rename from reactos/base/setup/usetup/lang/fr-BE.h rename to base/setup/usetup/lang/fr-BE.h diff --git a/reactos/base/setup/usetup/lang/fr-CA.h b/base/setup/usetup/lang/fr-CA.h similarity index 100% rename from reactos/base/setup/usetup/lang/fr-CA.h rename to base/setup/usetup/lang/fr-CA.h diff --git a/reactos/base/setup/usetup/lang/fr-CH.h b/base/setup/usetup/lang/fr-CH.h similarity index 100% rename from reactos/base/setup/usetup/lang/fr-CH.h rename to base/setup/usetup/lang/fr-CH.h diff --git a/reactos/base/setup/usetup/lang/fr-FR.h b/base/setup/usetup/lang/fr-FR.h similarity index 100% rename from reactos/base/setup/usetup/lang/fr-FR.h rename to base/setup/usetup/lang/fr-FR.h diff --git a/reactos/base/setup/usetup/lang/fr-LU.h b/base/setup/usetup/lang/fr-LU.h similarity index 100% rename from reactos/base/setup/usetup/lang/fr-LU.h rename to base/setup/usetup/lang/fr-LU.h diff --git a/reactos/base/setup/usetup/lang/fr-MC.h b/base/setup/usetup/lang/fr-MC.h similarity index 100% rename from reactos/base/setup/usetup/lang/fr-MC.h rename to base/setup/usetup/lang/fr-MC.h diff --git a/reactos/base/setup/usetup/lang/gl-ES.h b/base/setup/usetup/lang/gl-ES.h similarity index 100% rename from reactos/base/setup/usetup/lang/gl-ES.h rename to base/setup/usetup/lang/gl-ES.h diff --git a/reactos/base/setup/usetup/lang/gu-IN.h b/base/setup/usetup/lang/gu-IN.h similarity index 100% rename from reactos/base/setup/usetup/lang/gu-IN.h rename to base/setup/usetup/lang/gu-IN.h diff --git a/reactos/base/setup/usetup/lang/he-IL.h b/base/setup/usetup/lang/he-IL.h similarity index 100% rename from reactos/base/setup/usetup/lang/he-IL.h rename to base/setup/usetup/lang/he-IL.h diff --git a/reactos/base/setup/usetup/lang/hi-IN.h b/base/setup/usetup/lang/hi-IN.h similarity index 100% rename from reactos/base/setup/usetup/lang/hi-IN.h rename to base/setup/usetup/lang/hi-IN.h diff --git a/reactos/base/setup/usetup/lang/hr-HR.h b/base/setup/usetup/lang/hr-HR.h similarity index 100% rename from reactos/base/setup/usetup/lang/hr-HR.h rename to base/setup/usetup/lang/hr-HR.h diff --git a/reactos/base/setup/usetup/lang/hu-HU.h b/base/setup/usetup/lang/hu-HU.h similarity index 100% rename from reactos/base/setup/usetup/lang/hu-HU.h rename to base/setup/usetup/lang/hu-HU.h diff --git a/reactos/base/setup/usetup/lang/hy-AM.h b/base/setup/usetup/lang/hy-AM.h similarity index 100% rename from reactos/base/setup/usetup/lang/hy-AM.h rename to base/setup/usetup/lang/hy-AM.h diff --git a/reactos/base/setup/usetup/lang/id-ID.h b/base/setup/usetup/lang/id-ID.h similarity index 100% rename from reactos/base/setup/usetup/lang/id-ID.h rename to base/setup/usetup/lang/id-ID.h diff --git a/reactos/base/setup/usetup/lang/is-IS.h b/base/setup/usetup/lang/is-IS.h similarity index 100% rename from reactos/base/setup/usetup/lang/is-IS.h rename to base/setup/usetup/lang/is-IS.h diff --git a/reactos/base/setup/usetup/lang/it-CH.h b/base/setup/usetup/lang/it-CH.h similarity index 100% rename from reactos/base/setup/usetup/lang/it-CH.h rename to base/setup/usetup/lang/it-CH.h diff --git a/reactos/base/setup/usetup/lang/it-IT.h b/base/setup/usetup/lang/it-IT.h similarity index 100% rename from reactos/base/setup/usetup/lang/it-IT.h rename to base/setup/usetup/lang/it-IT.h diff --git a/reactos/base/setup/usetup/lang/ja-JP.h b/base/setup/usetup/lang/ja-JP.h similarity index 100% rename from reactos/base/setup/usetup/lang/ja-JP.h rename to base/setup/usetup/lang/ja-JP.h diff --git a/reactos/base/setup/usetup/lang/ka-GE.h b/base/setup/usetup/lang/ka-GE.h similarity index 100% rename from reactos/base/setup/usetup/lang/ka-GE.h rename to base/setup/usetup/lang/ka-GE.h diff --git a/reactos/base/setup/usetup/lang/kk-KZ.h b/base/setup/usetup/lang/kk-KZ.h similarity index 100% rename from reactos/base/setup/usetup/lang/kk-KZ.h rename to base/setup/usetup/lang/kk-KZ.h diff --git a/reactos/base/setup/usetup/lang/kn-IN.h b/base/setup/usetup/lang/kn-IN.h similarity index 100% rename from reactos/base/setup/usetup/lang/kn-IN.h rename to base/setup/usetup/lang/kn-IN.h diff --git a/reactos/base/setup/usetup/lang/ko-KR.h b/base/setup/usetup/lang/ko-KR.h similarity index 100% rename from reactos/base/setup/usetup/lang/ko-KR.h rename to base/setup/usetup/lang/ko-KR.h diff --git a/reactos/base/setup/usetup/lang/kok-IN.h b/base/setup/usetup/lang/kok-IN.h similarity index 100% rename from reactos/base/setup/usetup/lang/kok-IN.h rename to base/setup/usetup/lang/kok-IN.h diff --git a/reactos/base/setup/usetup/lang/ky-KG.h b/base/setup/usetup/lang/ky-KG.h similarity index 100% rename from reactos/base/setup/usetup/lang/ky-KG.h rename to base/setup/usetup/lang/ky-KG.h diff --git a/reactos/base/setup/usetup/lang/lt-LT.h b/base/setup/usetup/lang/lt-LT.h similarity index 100% rename from reactos/base/setup/usetup/lang/lt-LT.h rename to base/setup/usetup/lang/lt-LT.h diff --git a/reactos/base/setup/usetup/lang/lv-LV.h b/base/setup/usetup/lang/lv-LV.h similarity index 100% rename from reactos/base/setup/usetup/lang/lv-LV.h rename to base/setup/usetup/lang/lv-LV.h diff --git a/reactos/base/setup/usetup/lang/mk-MK.h b/base/setup/usetup/lang/mk-MK.h similarity index 100% rename from reactos/base/setup/usetup/lang/mk-MK.h rename to base/setup/usetup/lang/mk-MK.h diff --git a/reactos/base/setup/usetup/lang/mn-MN.h b/base/setup/usetup/lang/mn-MN.h similarity index 100% rename from reactos/base/setup/usetup/lang/mn-MN.h rename to base/setup/usetup/lang/mn-MN.h diff --git a/reactos/base/setup/usetup/lang/mr-IN.h b/base/setup/usetup/lang/mr-IN.h similarity index 100% rename from reactos/base/setup/usetup/lang/mr-IN.h rename to base/setup/usetup/lang/mr-IN.h diff --git a/reactos/base/setup/usetup/lang/ms-BN.h b/base/setup/usetup/lang/ms-BN.h similarity index 100% rename from reactos/base/setup/usetup/lang/ms-BN.h rename to base/setup/usetup/lang/ms-BN.h diff --git a/reactos/base/setup/usetup/lang/ms-MY.h b/base/setup/usetup/lang/ms-MY.h similarity index 100% rename from reactos/base/setup/usetup/lang/ms-MY.h rename to base/setup/usetup/lang/ms-MY.h diff --git a/reactos/base/setup/usetup/lang/my-MM.h b/base/setup/usetup/lang/my-MM.h similarity index 100% rename from reactos/base/setup/usetup/lang/my-MM.h rename to base/setup/usetup/lang/my-MM.h diff --git a/reactos/base/setup/usetup/lang/nl-BE.h b/base/setup/usetup/lang/nl-BE.h similarity index 100% rename from reactos/base/setup/usetup/lang/nl-BE.h rename to base/setup/usetup/lang/nl-BE.h diff --git a/reactos/base/setup/usetup/lang/nl-NL.h b/base/setup/usetup/lang/nl-NL.h similarity index 100% rename from reactos/base/setup/usetup/lang/nl-NL.h rename to base/setup/usetup/lang/nl-NL.h diff --git a/reactos/base/setup/usetup/lang/nn-NO.h b/base/setup/usetup/lang/nn-NO.h similarity index 100% rename from reactos/base/setup/usetup/lang/nn-NO.h rename to base/setup/usetup/lang/nn-NO.h diff --git a/reactos/base/setup/usetup/lang/pa-IN.h b/base/setup/usetup/lang/pa-IN.h similarity index 100% rename from reactos/base/setup/usetup/lang/pa-IN.h rename to base/setup/usetup/lang/pa-IN.h diff --git a/reactos/base/setup/usetup/lang/pl-PL.h b/base/setup/usetup/lang/pl-PL.h similarity index 100% rename from reactos/base/setup/usetup/lang/pl-PL.h rename to base/setup/usetup/lang/pl-PL.h diff --git a/reactos/base/setup/usetup/lang/pt-BR.h b/base/setup/usetup/lang/pt-BR.h similarity index 100% rename from reactos/base/setup/usetup/lang/pt-BR.h rename to base/setup/usetup/lang/pt-BR.h diff --git a/reactos/base/setup/usetup/lang/pt-PT.h b/base/setup/usetup/lang/pt-PT.h similarity index 100% rename from reactos/base/setup/usetup/lang/pt-PT.h rename to base/setup/usetup/lang/pt-PT.h diff --git a/reactos/base/setup/usetup/lang/rm-CH.h b/base/setup/usetup/lang/rm-CH.h similarity index 100% rename from reactos/base/setup/usetup/lang/rm-CH.h rename to base/setup/usetup/lang/rm-CH.h diff --git a/reactos/base/setup/usetup/lang/ro-RO.h b/base/setup/usetup/lang/ro-RO.h similarity index 100% rename from reactos/base/setup/usetup/lang/ro-RO.h rename to base/setup/usetup/lang/ro-RO.h diff --git a/reactos/base/setup/usetup/lang/ru-RU.h b/base/setup/usetup/lang/ru-RU.h similarity index 100% rename from reactos/base/setup/usetup/lang/ru-RU.h rename to base/setup/usetup/lang/ru-RU.h diff --git a/reactos/base/setup/usetup/lang/sa-IN.h b/base/setup/usetup/lang/sa-IN.h similarity index 100% rename from reactos/base/setup/usetup/lang/sa-IN.h rename to base/setup/usetup/lang/sa-IN.h diff --git a/reactos/base/setup/usetup/lang/sk-SK.h b/base/setup/usetup/lang/sk-SK.h similarity index 100% rename from reactos/base/setup/usetup/lang/sk-SK.h rename to base/setup/usetup/lang/sk-SK.h diff --git a/reactos/base/setup/usetup/lang/sl-SI.h b/base/setup/usetup/lang/sl-SI.h similarity index 100% rename from reactos/base/setup/usetup/lang/sl-SI.h rename to base/setup/usetup/lang/sl-SI.h diff --git a/reactos/base/setup/usetup/lang/sq-AL.h b/base/setup/usetup/lang/sq-AL.h similarity index 100% rename from reactos/base/setup/usetup/lang/sq-AL.h rename to base/setup/usetup/lang/sq-AL.h diff --git a/reactos/base/setup/usetup/lang/sr-SP.h b/base/setup/usetup/lang/sr-SP.h similarity index 100% rename from reactos/base/setup/usetup/lang/sr-SP.h rename to base/setup/usetup/lang/sr-SP.h diff --git a/reactos/base/setup/usetup/lang/sv-FI.h b/base/setup/usetup/lang/sv-FI.h similarity index 100% rename from reactos/base/setup/usetup/lang/sv-FI.h rename to base/setup/usetup/lang/sv-FI.h diff --git a/reactos/base/setup/usetup/lang/sv-SE.h b/base/setup/usetup/lang/sv-SE.h similarity index 100% rename from reactos/base/setup/usetup/lang/sv-SE.h rename to base/setup/usetup/lang/sv-SE.h diff --git a/reactos/base/setup/usetup/lang/sw-KE.h b/base/setup/usetup/lang/sw-KE.h similarity index 100% rename from reactos/base/setup/usetup/lang/sw-KE.h rename to base/setup/usetup/lang/sw-KE.h diff --git a/reactos/base/setup/usetup/lang/syr-SY.h b/base/setup/usetup/lang/syr-SY.h similarity index 100% rename from reactos/base/setup/usetup/lang/syr-SY.h rename to base/setup/usetup/lang/syr-SY.h diff --git a/reactos/base/setup/usetup/lang/ta-IN.h b/base/setup/usetup/lang/ta-IN.h similarity index 100% rename from reactos/base/setup/usetup/lang/ta-IN.h rename to base/setup/usetup/lang/ta-IN.h diff --git a/reactos/base/setup/usetup/lang/te-IN.h b/base/setup/usetup/lang/te-IN.h similarity index 100% rename from reactos/base/setup/usetup/lang/te-IN.h rename to base/setup/usetup/lang/te-IN.h diff --git a/reactos/base/setup/usetup/lang/th-TH.h b/base/setup/usetup/lang/th-TH.h similarity index 100% rename from reactos/base/setup/usetup/lang/th-TH.h rename to base/setup/usetup/lang/th-TH.h diff --git a/reactos/base/setup/usetup/lang/tr-TR.h b/base/setup/usetup/lang/tr-TR.h similarity index 100% rename from reactos/base/setup/usetup/lang/tr-TR.h rename to base/setup/usetup/lang/tr-TR.h diff --git a/reactos/base/setup/usetup/lang/tt-TA.h b/base/setup/usetup/lang/tt-TA.h similarity index 100% rename from reactos/base/setup/usetup/lang/tt-TA.h rename to base/setup/usetup/lang/tt-TA.h diff --git a/reactos/base/setup/usetup/lang/uk-UA.h b/base/setup/usetup/lang/uk-UA.h similarity index 100% rename from reactos/base/setup/usetup/lang/uk-UA.h rename to base/setup/usetup/lang/uk-UA.h diff --git a/reactos/base/setup/usetup/lang/ur-PK.h b/base/setup/usetup/lang/ur-PK.h similarity index 100% rename from reactos/base/setup/usetup/lang/ur-PK.h rename to base/setup/usetup/lang/ur-PK.h diff --git a/reactos/base/setup/usetup/lang/uz-UZ.h b/base/setup/usetup/lang/uz-UZ.h similarity index 100% rename from reactos/base/setup/usetup/lang/uz-UZ.h rename to base/setup/usetup/lang/uz-UZ.h diff --git a/reactos/base/setup/usetup/lang/vi-VN.h b/base/setup/usetup/lang/vi-VN.h similarity index 100% rename from reactos/base/setup/usetup/lang/vi-VN.h rename to base/setup/usetup/lang/vi-VN.h diff --git a/reactos/base/setup/usetup/lang/wa-BE.h b/base/setup/usetup/lang/wa-BE.h similarity index 100% rename from reactos/base/setup/usetup/lang/wa-BE.h rename to base/setup/usetup/lang/wa-BE.h diff --git a/reactos/base/setup/usetup/lang/zh-CN.h b/base/setup/usetup/lang/zh-CN.h similarity index 100% rename from reactos/base/setup/usetup/lang/zh-CN.h rename to base/setup/usetup/lang/zh-CN.h diff --git a/reactos/base/setup/usetup/lang/zh-HK.h b/base/setup/usetup/lang/zh-HK.h similarity index 100% rename from reactos/base/setup/usetup/lang/zh-HK.h rename to base/setup/usetup/lang/zh-HK.h diff --git a/reactos/base/setup/usetup/lang/zh-MO.h b/base/setup/usetup/lang/zh-MO.h similarity index 100% rename from reactos/base/setup/usetup/lang/zh-MO.h rename to base/setup/usetup/lang/zh-MO.h diff --git a/reactos/base/setup/usetup/lang/zh-SG.h b/base/setup/usetup/lang/zh-SG.h similarity index 100% rename from reactos/base/setup/usetup/lang/zh-SG.h rename to base/setup/usetup/lang/zh-SG.h diff --git a/reactos/base/setup/usetup/lang/zh-TW.h b/base/setup/usetup/lang/zh-TW.h similarity index 100% rename from reactos/base/setup/usetup/lang/zh-TW.h rename to base/setup/usetup/lang/zh-TW.h diff --git a/reactos/base/setup/usetup/mui.c b/base/setup/usetup/mui.c similarity index 100% rename from reactos/base/setup/usetup/mui.c rename to base/setup/usetup/mui.c diff --git a/reactos/base/setup/usetup/mui.h b/base/setup/usetup/mui.h similarity index 100% rename from reactos/base/setup/usetup/mui.h rename to base/setup/usetup/mui.h diff --git a/reactos/base/setup/usetup/muifonts.h b/base/setup/usetup/muifonts.h similarity index 100% rename from reactos/base/setup/usetup/muifonts.h rename to base/setup/usetup/muifonts.h diff --git a/reactos/base/setup/usetup/muilanguages.h b/base/setup/usetup/muilanguages.h similarity index 100% rename from reactos/base/setup/usetup/muilanguages.h rename to base/setup/usetup/muilanguages.h diff --git a/reactos/base/setup/usetup/native/console.c b/base/setup/usetup/native/console.c similarity index 100% rename from reactos/base/setup/usetup/native/console.c rename to base/setup/usetup/native/console.c diff --git a/reactos/base/setup/usetup/native/fslist.c b/base/setup/usetup/native/fslist.c similarity index 100% rename from reactos/base/setup/usetup/native/fslist.c rename to base/setup/usetup/native/fslist.c diff --git a/reactos/base/setup/usetup/native/host_native.h b/base/setup/usetup/native/host_native.h similarity index 100% rename from reactos/base/setup/usetup/native/host_native.h rename to base/setup/usetup/native/host_native.h diff --git a/reactos/base/setup/usetup/native/utils/console.c b/base/setup/usetup/native/utils/console.c similarity index 100% rename from reactos/base/setup/usetup/native/utils/console.c rename to base/setup/usetup/native/utils/console.c diff --git a/reactos/base/setup/usetup/native/utils/console.h b/base/setup/usetup/native/utils/console.h similarity index 100% rename from reactos/base/setup/usetup/native/utils/console.h rename to base/setup/usetup/native/utils/console.h diff --git a/reactos/base/setup/usetup/native/utils/keytrans.c b/base/setup/usetup/native/utils/keytrans.c similarity index 100% rename from reactos/base/setup/usetup/native/utils/keytrans.c rename to base/setup/usetup/native/utils/keytrans.c diff --git a/reactos/base/setup/usetup/native/utils/keytrans.h b/base/setup/usetup/native/utils/keytrans.h similarity index 100% rename from reactos/base/setup/usetup/native/utils/keytrans.h rename to base/setup/usetup/native/utils/keytrans.h diff --git a/reactos/base/setup/usetup/partlist.c b/base/setup/usetup/partlist.c similarity index 100% rename from reactos/base/setup/usetup/partlist.c rename to base/setup/usetup/partlist.c diff --git a/reactos/base/setup/usetup/partlist.h b/base/setup/usetup/partlist.h similarity index 100% rename from reactos/base/setup/usetup/partlist.h rename to base/setup/usetup/partlist.h diff --git a/reactos/base/setup/usetup/progress.c b/base/setup/usetup/progress.c similarity index 100% rename from reactos/base/setup/usetup/progress.c rename to base/setup/usetup/progress.c diff --git a/reactos/base/setup/usetup/progress.h b/base/setup/usetup/progress.h similarity index 100% rename from reactos/base/setup/usetup/progress.h rename to base/setup/usetup/progress.h diff --git a/reactos/base/setup/usetup/registry.c b/base/setup/usetup/registry.c similarity index 100% rename from reactos/base/setup/usetup/registry.c rename to base/setup/usetup/registry.c diff --git a/reactos/base/setup/usetup/registry.h b/base/setup/usetup/registry.h similarity index 100% rename from reactos/base/setup/usetup/registry.h rename to base/setup/usetup/registry.h diff --git a/reactos/base/setup/usetup/settings.c b/base/setup/usetup/settings.c similarity index 100% rename from reactos/base/setup/usetup/settings.c rename to base/setup/usetup/settings.c diff --git a/reactos/base/setup/usetup/settings.h b/base/setup/usetup/settings.h similarity index 100% rename from reactos/base/setup/usetup/settings.h rename to base/setup/usetup/settings.h diff --git a/reactos/base/setup/usetup/usetup.h b/base/setup/usetup/usetup.h similarity index 100% rename from reactos/base/setup/usetup/usetup.h rename to base/setup/usetup/usetup.h diff --git a/reactos/base/setup/usetup/usetup.rc b/base/setup/usetup/usetup.rc similarity index 100% rename from reactos/base/setup/usetup/usetup.rc rename to base/setup/usetup/usetup.rc diff --git a/reactos/base/setup/vmwinst/CMakeLists.txt b/base/setup/vmwinst/CMakeLists.txt similarity index 100% rename from reactos/base/setup/vmwinst/CMakeLists.txt rename to base/setup/vmwinst/CMakeLists.txt diff --git a/reactos/base/setup/vmwinst/lang/bg-BG.rc b/base/setup/vmwinst/lang/bg-BG.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/bg-BG.rc rename to base/setup/vmwinst/lang/bg-BG.rc diff --git a/reactos/base/setup/vmwinst/lang/cs-CZ.rc b/base/setup/vmwinst/lang/cs-CZ.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/cs-CZ.rc rename to base/setup/vmwinst/lang/cs-CZ.rc diff --git a/reactos/base/setup/vmwinst/lang/da-DK.rc b/base/setup/vmwinst/lang/da-DK.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/da-DK.rc rename to base/setup/vmwinst/lang/da-DK.rc diff --git a/reactos/base/setup/vmwinst/lang/de-DE.rc b/base/setup/vmwinst/lang/de-DE.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/de-DE.rc rename to base/setup/vmwinst/lang/de-DE.rc diff --git a/reactos/base/setup/vmwinst/lang/el-GR.rc b/base/setup/vmwinst/lang/el-GR.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/el-GR.rc rename to base/setup/vmwinst/lang/el-GR.rc diff --git a/reactos/base/setup/vmwinst/lang/en-US.rc b/base/setup/vmwinst/lang/en-US.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/en-US.rc rename to base/setup/vmwinst/lang/en-US.rc diff --git a/reactos/base/setup/vmwinst/lang/es-ES.rc b/base/setup/vmwinst/lang/es-ES.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/es-ES.rc rename to base/setup/vmwinst/lang/es-ES.rc diff --git a/reactos/base/setup/vmwinst/lang/fr-FR.rc b/base/setup/vmwinst/lang/fr-FR.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/fr-FR.rc rename to base/setup/vmwinst/lang/fr-FR.rc diff --git a/reactos/base/setup/vmwinst/lang/hu-HU.rc b/base/setup/vmwinst/lang/hu-HU.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/hu-HU.rc rename to base/setup/vmwinst/lang/hu-HU.rc diff --git a/reactos/base/setup/vmwinst/lang/id-ID.rc b/base/setup/vmwinst/lang/id-ID.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/id-ID.rc rename to base/setup/vmwinst/lang/id-ID.rc diff --git a/reactos/base/setup/vmwinst/lang/it-IT.rc b/base/setup/vmwinst/lang/it-IT.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/it-IT.rc rename to base/setup/vmwinst/lang/it-IT.rc diff --git a/reactos/base/setup/vmwinst/lang/ja-JP.rc b/base/setup/vmwinst/lang/ja-JP.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/ja-JP.rc rename to base/setup/vmwinst/lang/ja-JP.rc diff --git a/reactos/base/setup/vmwinst/lang/lt-LT.rc b/base/setup/vmwinst/lang/lt-LT.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/lt-LT.rc rename to base/setup/vmwinst/lang/lt-LT.rc diff --git a/reactos/base/setup/vmwinst/lang/no-NO.rc b/base/setup/vmwinst/lang/no-NO.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/no-NO.rc rename to base/setup/vmwinst/lang/no-NO.rc diff --git a/reactos/base/setup/vmwinst/lang/pl-PL.rc b/base/setup/vmwinst/lang/pl-PL.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/pl-PL.rc rename to base/setup/vmwinst/lang/pl-PL.rc diff --git a/reactos/base/setup/vmwinst/lang/pt-BR.rc b/base/setup/vmwinst/lang/pt-BR.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/pt-BR.rc rename to base/setup/vmwinst/lang/pt-BR.rc diff --git a/reactos/base/setup/vmwinst/lang/ro-RO.rc b/base/setup/vmwinst/lang/ro-RO.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/ro-RO.rc rename to base/setup/vmwinst/lang/ro-RO.rc diff --git a/reactos/base/setup/vmwinst/lang/ru-RU.rc b/base/setup/vmwinst/lang/ru-RU.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/ru-RU.rc rename to base/setup/vmwinst/lang/ru-RU.rc diff --git a/reactos/base/setup/vmwinst/lang/sk-SK.rc b/base/setup/vmwinst/lang/sk-SK.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/sk-SK.rc rename to base/setup/vmwinst/lang/sk-SK.rc diff --git a/reactos/base/setup/vmwinst/lang/sv-SE.rc b/base/setup/vmwinst/lang/sv-SE.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/sv-SE.rc rename to base/setup/vmwinst/lang/sv-SE.rc diff --git a/reactos/base/setup/vmwinst/lang/uk-UA.rc b/base/setup/vmwinst/lang/uk-UA.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/uk-UA.rc rename to base/setup/vmwinst/lang/uk-UA.rc diff --git a/reactos/base/setup/vmwinst/lang/zh-CN.rc b/base/setup/vmwinst/lang/zh-CN.rc similarity index 100% rename from reactos/base/setup/vmwinst/lang/zh-CN.rc rename to base/setup/vmwinst/lang/zh-CN.rc diff --git a/reactos/base/setup/vmwinst/resources/header.bmp b/base/setup/vmwinst/resources/header.bmp similarity index 100% rename from reactos/base/setup/vmwinst/resources/header.bmp rename to base/setup/vmwinst/resources/header.bmp diff --git a/reactos/base/setup/vmwinst/resources/watermark.bmp b/base/setup/vmwinst/resources/watermark.bmp similarity index 100% rename from reactos/base/setup/vmwinst/resources/watermark.bmp rename to base/setup/vmwinst/resources/watermark.bmp diff --git a/reactos/base/setup/vmwinst/rsrc.rc b/base/setup/vmwinst/rsrc.rc similarity index 100% rename from reactos/base/setup/vmwinst/rsrc.rc rename to base/setup/vmwinst/rsrc.rc diff --git a/reactos/base/setup/vmwinst/vmwinst.c b/base/setup/vmwinst/vmwinst.c similarity index 100% rename from reactos/base/setup/vmwinst/vmwinst.c rename to base/setup/vmwinst/vmwinst.c diff --git a/reactos/base/setup/vmwinst/vmwinst.h b/base/setup/vmwinst/vmwinst.h similarity index 100% rename from reactos/base/setup/vmwinst/vmwinst.h rename to base/setup/vmwinst/vmwinst.h diff --git a/reactos/base/setup/vmwinst/vmwinst.rc b/base/setup/vmwinst/vmwinst.rc similarity index 100% rename from reactos/base/setup/vmwinst/vmwinst.rc rename to base/setup/vmwinst/vmwinst.rc diff --git a/reactos/base/setup/welcome/CMakeLists.txt b/base/setup/welcome/CMakeLists.txt similarity index 100% rename from reactos/base/setup/welcome/CMakeLists.txt rename to base/setup/welcome/CMakeLists.txt diff --git a/reactos/base/setup/welcome/lang/bg-BG.rc b/base/setup/welcome/lang/bg-BG.rc similarity index 100% rename from reactos/base/setup/welcome/lang/bg-BG.rc rename to base/setup/welcome/lang/bg-BG.rc diff --git a/reactos/base/setup/welcome/lang/cs-CZ.rc b/base/setup/welcome/lang/cs-CZ.rc similarity index 100% rename from reactos/base/setup/welcome/lang/cs-CZ.rc rename to base/setup/welcome/lang/cs-CZ.rc diff --git a/reactos/base/setup/welcome/lang/da-DK.rc b/base/setup/welcome/lang/da-DK.rc similarity index 100% rename from reactos/base/setup/welcome/lang/da-DK.rc rename to base/setup/welcome/lang/da-DK.rc diff --git a/reactos/base/setup/welcome/lang/de-DE.rc b/base/setup/welcome/lang/de-DE.rc similarity index 100% rename from reactos/base/setup/welcome/lang/de-DE.rc rename to base/setup/welcome/lang/de-DE.rc diff --git a/reactos/base/setup/welcome/lang/el-GR.rc b/base/setup/welcome/lang/el-GR.rc similarity index 100% rename from reactos/base/setup/welcome/lang/el-GR.rc rename to base/setup/welcome/lang/el-GR.rc diff --git a/reactos/base/setup/welcome/lang/en-US.rc b/base/setup/welcome/lang/en-US.rc similarity index 100% rename from reactos/base/setup/welcome/lang/en-US.rc rename to base/setup/welcome/lang/en-US.rc diff --git a/reactos/base/setup/welcome/lang/es-ES.rc b/base/setup/welcome/lang/es-ES.rc similarity index 100% rename from reactos/base/setup/welcome/lang/es-ES.rc rename to base/setup/welcome/lang/es-ES.rc diff --git a/reactos/base/setup/welcome/lang/et-EE.rc b/base/setup/welcome/lang/et-EE.rc similarity index 100% rename from reactos/base/setup/welcome/lang/et-EE.rc rename to base/setup/welcome/lang/et-EE.rc diff --git a/reactos/base/setup/welcome/lang/fr-FR.rc b/base/setup/welcome/lang/fr-FR.rc similarity index 100% rename from reactos/base/setup/welcome/lang/fr-FR.rc rename to base/setup/welcome/lang/fr-FR.rc diff --git a/reactos/base/setup/welcome/lang/hu-HU.rc b/base/setup/welcome/lang/hu-HU.rc similarity index 100% rename from reactos/base/setup/welcome/lang/hu-HU.rc rename to base/setup/welcome/lang/hu-HU.rc diff --git a/reactos/base/setup/welcome/lang/id-ID.rc b/base/setup/welcome/lang/id-ID.rc similarity index 100% rename from reactos/base/setup/welcome/lang/id-ID.rc rename to base/setup/welcome/lang/id-ID.rc diff --git a/reactos/base/setup/welcome/lang/it-IT.rc b/base/setup/welcome/lang/it-IT.rc similarity index 100% rename from reactos/base/setup/welcome/lang/it-IT.rc rename to base/setup/welcome/lang/it-IT.rc diff --git a/reactos/base/setup/welcome/lang/ja-JP.rc b/base/setup/welcome/lang/ja-JP.rc similarity index 100% rename from reactos/base/setup/welcome/lang/ja-JP.rc rename to base/setup/welcome/lang/ja-JP.rc diff --git a/reactos/base/setup/welcome/lang/lt-LT.rc b/base/setup/welcome/lang/lt-LT.rc similarity index 100% rename from reactos/base/setup/welcome/lang/lt-LT.rc rename to base/setup/welcome/lang/lt-LT.rc diff --git a/reactos/base/setup/welcome/lang/nl-NL.rc b/base/setup/welcome/lang/nl-NL.rc similarity index 100% rename from reactos/base/setup/welcome/lang/nl-NL.rc rename to base/setup/welcome/lang/nl-NL.rc diff --git a/reactos/base/setup/welcome/lang/no-NO.rc b/base/setup/welcome/lang/no-NO.rc similarity index 100% rename from reactos/base/setup/welcome/lang/no-NO.rc rename to base/setup/welcome/lang/no-NO.rc diff --git a/reactos/base/setup/welcome/lang/pl-PL.rc b/base/setup/welcome/lang/pl-PL.rc similarity index 100% rename from reactos/base/setup/welcome/lang/pl-PL.rc rename to base/setup/welcome/lang/pl-PL.rc diff --git a/reactos/base/setup/welcome/lang/pt-BR.rc b/base/setup/welcome/lang/pt-BR.rc similarity index 100% rename from reactos/base/setup/welcome/lang/pt-BR.rc rename to base/setup/welcome/lang/pt-BR.rc diff --git a/reactos/base/setup/welcome/lang/ro-RO.rc b/base/setup/welcome/lang/ro-RO.rc similarity index 100% rename from reactos/base/setup/welcome/lang/ro-RO.rc rename to base/setup/welcome/lang/ro-RO.rc diff --git a/reactos/base/setup/welcome/lang/ru-RU.rc b/base/setup/welcome/lang/ru-RU.rc similarity index 100% rename from reactos/base/setup/welcome/lang/ru-RU.rc rename to base/setup/welcome/lang/ru-RU.rc diff --git a/reactos/base/setup/welcome/lang/sk-SK.rc b/base/setup/welcome/lang/sk-SK.rc similarity index 100% rename from reactos/base/setup/welcome/lang/sk-SK.rc rename to base/setup/welcome/lang/sk-SK.rc diff --git a/reactos/base/setup/welcome/lang/sv-SE.rc b/base/setup/welcome/lang/sv-SE.rc similarity index 100% rename from reactos/base/setup/welcome/lang/sv-SE.rc rename to base/setup/welcome/lang/sv-SE.rc diff --git a/reactos/base/setup/welcome/lang/th-TH.rc b/base/setup/welcome/lang/th-TH.rc similarity index 100% rename from reactos/base/setup/welcome/lang/th-TH.rc rename to base/setup/welcome/lang/th-TH.rc diff --git a/reactos/base/setup/welcome/lang/uk-UA.rc b/base/setup/welcome/lang/uk-UA.rc similarity index 100% rename from reactos/base/setup/welcome/lang/uk-UA.rc rename to base/setup/welcome/lang/uk-UA.rc diff --git a/reactos/base/setup/welcome/lang/zh-CN.rc b/base/setup/welcome/lang/zh-CN.rc similarity index 100% rename from reactos/base/setup/welcome/lang/zh-CN.rc rename to base/setup/welcome/lang/zh-CN.rc diff --git a/reactos/base/setup/welcome/res/title.bmp b/base/setup/welcome/res/title.bmp similarity index 100% rename from reactos/base/setup/welcome/res/title.bmp rename to base/setup/welcome/res/title.bmp diff --git a/reactos/base/setup/welcome/res/welcome.ico b/base/setup/welcome/res/welcome.ico similarity index 100% rename from reactos/base/setup/welcome/res/welcome.ico rename to base/setup/welcome/res/welcome.ico diff --git a/reactos/base/setup/welcome/resource.h b/base/setup/welcome/resource.h similarity index 100% rename from reactos/base/setup/welcome/resource.h rename to base/setup/welcome/resource.h diff --git a/reactos/base/setup/welcome/rsrc.rc b/base/setup/welcome/rsrc.rc similarity index 100% rename from reactos/base/setup/welcome/rsrc.rc rename to base/setup/welcome/rsrc.rc diff --git a/reactos/base/setup/welcome/welcome.c b/base/setup/welcome/welcome.c similarity index 100% rename from reactos/base/setup/welcome/welcome.c rename to base/setup/welcome/welcome.c diff --git a/reactos/base/setup/welcome/welcome.rc b/base/setup/welcome/welcome.rc similarity index 100% rename from reactos/base/setup/welcome/welcome.rc rename to base/setup/welcome/welcome.rc diff --git a/reactos/base/shell/CMakeLists.txt b/base/shell/CMakeLists.txt similarity index 100% rename from reactos/base/shell/CMakeLists.txt rename to base/shell/CMakeLists.txt diff --git a/reactos/base/shell/cmd/CMakeLists.txt b/base/shell/cmd/CMakeLists.txt similarity index 100% rename from reactos/base/shell/cmd/CMakeLists.txt rename to base/shell/cmd/CMakeLists.txt diff --git a/reactos/base/shell/cmd/alias.c b/base/shell/cmd/alias.c similarity index 100% rename from reactos/base/shell/cmd/alias.c rename to base/shell/cmd/alias.c diff --git a/reactos/base/shell/cmd/assoc.c b/base/shell/cmd/assoc.c similarity index 100% rename from reactos/base/shell/cmd/assoc.c rename to base/shell/cmd/assoc.c diff --git a/reactos/base/shell/cmd/attrib.c b/base/shell/cmd/attrib.c similarity index 100% rename from reactos/base/shell/cmd/attrib.c rename to base/shell/cmd/attrib.c diff --git a/reactos/base/shell/cmd/batch.c b/base/shell/cmd/batch.c similarity index 100% rename from reactos/base/shell/cmd/batch.c rename to base/shell/cmd/batch.c diff --git a/reactos/base/shell/cmd/batch.h b/base/shell/cmd/batch.h similarity index 100% rename from reactos/base/shell/cmd/batch.h rename to base/shell/cmd/batch.h diff --git a/reactos/base/shell/cmd/beep.c b/base/shell/cmd/beep.c similarity index 100% rename from reactos/base/shell/cmd/beep.c rename to base/shell/cmd/beep.c diff --git a/reactos/base/shell/cmd/call.c b/base/shell/cmd/call.c similarity index 100% rename from reactos/base/shell/cmd/call.c rename to base/shell/cmd/call.c diff --git a/reactos/base/shell/cmd/chcp.c b/base/shell/cmd/chcp.c similarity index 100% rename from reactos/base/shell/cmd/chcp.c rename to base/shell/cmd/chcp.c diff --git a/reactos/base/shell/cmd/choice.c b/base/shell/cmd/choice.c similarity index 100% rename from reactos/base/shell/cmd/choice.c rename to base/shell/cmd/choice.c diff --git a/reactos/base/shell/cmd/cls.c b/base/shell/cmd/cls.c similarity index 100% rename from reactos/base/shell/cmd/cls.c rename to base/shell/cmd/cls.c diff --git a/reactos/base/shell/cmd/cmd.c b/base/shell/cmd/cmd.c similarity index 100% rename from reactos/base/shell/cmd/cmd.c rename to base/shell/cmd/cmd.c diff --git a/reactos/base/shell/cmd/cmd.h b/base/shell/cmd/cmd.h similarity index 100% rename from reactos/base/shell/cmd/cmd.h rename to base/shell/cmd/cmd.h diff --git a/reactos/base/shell/cmd/cmd.rc b/base/shell/cmd/cmd.rc similarity index 100% rename from reactos/base/shell/cmd/cmd.rc rename to base/shell/cmd/cmd.rc diff --git a/reactos/base/shell/cmd/cmddbg.c b/base/shell/cmd/cmddbg.c similarity index 100% rename from reactos/base/shell/cmd/cmddbg.c rename to base/shell/cmd/cmddbg.c diff --git a/reactos/base/shell/cmd/cmddbg.h b/base/shell/cmd/cmddbg.h similarity index 100% rename from reactos/base/shell/cmd/cmddbg.h rename to base/shell/cmd/cmddbg.h diff --git a/reactos/base/shell/cmd/cmdinput.c b/base/shell/cmd/cmdinput.c similarity index 100% rename from reactos/base/shell/cmd/cmdinput.c rename to base/shell/cmd/cmdinput.c diff --git a/reactos/base/shell/cmd/cmdtable.c b/base/shell/cmd/cmdtable.c similarity index 100% rename from reactos/base/shell/cmd/cmdtable.c rename to base/shell/cmd/cmdtable.c diff --git a/reactos/base/shell/cmd/cmdver.h b/base/shell/cmd/cmdver.h similarity index 100% rename from reactos/base/shell/cmd/cmdver.h rename to base/shell/cmd/cmdver.h diff --git a/reactos/base/shell/cmd/color.c b/base/shell/cmd/color.c similarity index 100% rename from reactos/base/shell/cmd/color.c rename to base/shell/cmd/color.c diff --git a/reactos/base/shell/cmd/config.h b/base/shell/cmd/config.h similarity index 100% rename from reactos/base/shell/cmd/config.h rename to base/shell/cmd/config.h diff --git a/reactos/base/shell/cmd/console.c b/base/shell/cmd/console.c similarity index 100% rename from reactos/base/shell/cmd/console.c rename to base/shell/cmd/console.c diff --git a/reactos/base/shell/cmd/copy.c b/base/shell/cmd/copy.c similarity index 100% rename from reactos/base/shell/cmd/copy.c rename to base/shell/cmd/copy.c diff --git a/reactos/base/shell/cmd/date.c b/base/shell/cmd/date.c similarity index 100% rename from reactos/base/shell/cmd/date.c rename to base/shell/cmd/date.c diff --git a/reactos/base/shell/cmd/del.c b/base/shell/cmd/del.c similarity index 100% rename from reactos/base/shell/cmd/del.c rename to base/shell/cmd/del.c diff --git a/reactos/base/shell/cmd/delay.c b/base/shell/cmd/delay.c similarity index 100% rename from reactos/base/shell/cmd/delay.c rename to base/shell/cmd/delay.c diff --git a/reactos/base/shell/cmd/dir.c b/base/shell/cmd/dir.c similarity index 100% rename from reactos/base/shell/cmd/dir.c rename to base/shell/cmd/dir.c diff --git a/reactos/base/shell/cmd/dirstack.c b/base/shell/cmd/dirstack.c similarity index 100% rename from reactos/base/shell/cmd/dirstack.c rename to base/shell/cmd/dirstack.c diff --git a/reactos/base/shell/cmd/echo.c b/base/shell/cmd/echo.c similarity index 100% rename from reactos/base/shell/cmd/echo.c rename to base/shell/cmd/echo.c diff --git a/reactos/base/shell/cmd/error.c b/base/shell/cmd/error.c similarity index 100% rename from reactos/base/shell/cmd/error.c rename to base/shell/cmd/error.c diff --git a/reactos/base/shell/cmd/filecomp.c b/base/shell/cmd/filecomp.c similarity index 100% rename from reactos/base/shell/cmd/filecomp.c rename to base/shell/cmd/filecomp.c diff --git a/reactos/base/shell/cmd/files.txt b/base/shell/cmd/files.txt similarity index 100% rename from reactos/base/shell/cmd/files.txt rename to base/shell/cmd/files.txt diff --git a/reactos/base/shell/cmd/for.c b/base/shell/cmd/for.c similarity index 100% rename from reactos/base/shell/cmd/for.c rename to base/shell/cmd/for.c diff --git a/reactos/base/shell/cmd/free.c b/base/shell/cmd/free.c similarity index 100% rename from reactos/base/shell/cmd/free.c rename to base/shell/cmd/free.c diff --git a/reactos/base/shell/cmd/goto.c b/base/shell/cmd/goto.c similarity index 100% rename from reactos/base/shell/cmd/goto.c rename to base/shell/cmd/goto.c diff --git a/reactos/base/shell/cmd/history.c b/base/shell/cmd/history.c similarity index 100% rename from reactos/base/shell/cmd/history.c rename to base/shell/cmd/history.c diff --git a/reactos/base/shell/cmd/history.txt b/base/shell/cmd/history.txt similarity index 100% rename from reactos/base/shell/cmd/history.txt rename to base/shell/cmd/history.txt diff --git a/reactos/base/shell/cmd/if.c b/base/shell/cmd/if.c similarity index 100% rename from reactos/base/shell/cmd/if.c rename to base/shell/cmd/if.c diff --git a/reactos/base/shell/cmd/internal.c b/base/shell/cmd/internal.c similarity index 100% rename from reactos/base/shell/cmd/internal.c rename to base/shell/cmd/internal.c diff --git a/reactos/base/shell/cmd/label.c b/base/shell/cmd/label.c similarity index 100% rename from reactos/base/shell/cmd/label.c rename to base/shell/cmd/label.c diff --git a/reactos/base/shell/cmd/lang/de-DE.rc b/base/shell/cmd/lang/de-DE.rc similarity index 100% rename from reactos/base/shell/cmd/lang/de-DE.rc rename to base/shell/cmd/lang/de-DE.rc diff --git a/reactos/base/shell/cmd/lang/el-GR.rc b/base/shell/cmd/lang/el-GR.rc similarity index 100% rename from reactos/base/shell/cmd/lang/el-GR.rc rename to base/shell/cmd/lang/el-GR.rc diff --git a/reactos/base/shell/cmd/lang/en-US.rc b/base/shell/cmd/lang/en-US.rc similarity index 100% rename from reactos/base/shell/cmd/lang/en-US.rc rename to base/shell/cmd/lang/en-US.rc diff --git a/reactos/base/shell/cmd/lang/es-ES.rc b/base/shell/cmd/lang/es-ES.rc similarity index 100% rename from reactos/base/shell/cmd/lang/es-ES.rc rename to base/shell/cmd/lang/es-ES.rc diff --git a/reactos/base/shell/cmd/lang/fr-FR.rc b/base/shell/cmd/lang/fr-FR.rc similarity index 100% rename from reactos/base/shell/cmd/lang/fr-FR.rc rename to base/shell/cmd/lang/fr-FR.rc diff --git a/reactos/base/shell/cmd/lang/hu-HU.rc b/base/shell/cmd/lang/hu-HU.rc similarity index 100% rename from reactos/base/shell/cmd/lang/hu-HU.rc rename to base/shell/cmd/lang/hu-HU.rc diff --git a/reactos/base/shell/cmd/lang/id-ID.rc b/base/shell/cmd/lang/id-ID.rc similarity index 100% rename from reactos/base/shell/cmd/lang/id-ID.rc rename to base/shell/cmd/lang/id-ID.rc diff --git a/reactos/base/shell/cmd/lang/it-IT.rc b/base/shell/cmd/lang/it-IT.rc similarity index 100% rename from reactos/base/shell/cmd/lang/it-IT.rc rename to base/shell/cmd/lang/it-IT.rc diff --git a/reactos/base/shell/cmd/lang/ja-JP.rc b/base/shell/cmd/lang/ja-JP.rc similarity index 100% rename from reactos/base/shell/cmd/lang/ja-JP.rc rename to base/shell/cmd/lang/ja-JP.rc diff --git a/reactos/base/shell/cmd/lang/no-NO.rc b/base/shell/cmd/lang/no-NO.rc similarity index 100% rename from reactos/base/shell/cmd/lang/no-NO.rc rename to base/shell/cmd/lang/no-NO.rc diff --git a/reactos/base/shell/cmd/lang/pl-PL.rc b/base/shell/cmd/lang/pl-PL.rc similarity index 100% rename from reactos/base/shell/cmd/lang/pl-PL.rc rename to base/shell/cmd/lang/pl-PL.rc diff --git a/reactos/base/shell/cmd/lang/ro-RO.rc b/base/shell/cmd/lang/ro-RO.rc similarity index 100% rename from reactos/base/shell/cmd/lang/ro-RO.rc rename to base/shell/cmd/lang/ro-RO.rc diff --git a/reactos/base/shell/cmd/lang/ru-RU.rc b/base/shell/cmd/lang/ru-RU.rc similarity index 100% rename from reactos/base/shell/cmd/lang/ru-RU.rc rename to base/shell/cmd/lang/ru-RU.rc diff --git a/reactos/base/shell/cmd/lang/sk-SK.rc b/base/shell/cmd/lang/sk-SK.rc similarity index 100% rename from reactos/base/shell/cmd/lang/sk-SK.rc rename to base/shell/cmd/lang/sk-SK.rc diff --git a/reactos/base/shell/cmd/lang/sv-SE.rc b/base/shell/cmd/lang/sv-SE.rc similarity index 100% rename from reactos/base/shell/cmd/lang/sv-SE.rc rename to base/shell/cmd/lang/sv-SE.rc diff --git a/reactos/base/shell/cmd/lang/uk-UA.rc b/base/shell/cmd/lang/uk-UA.rc similarity index 100% rename from reactos/base/shell/cmd/lang/uk-UA.rc rename to base/shell/cmd/lang/uk-UA.rc diff --git a/reactos/base/shell/cmd/lang/zh-CN.rc b/base/shell/cmd/lang/zh-CN.rc similarity index 100% rename from reactos/base/shell/cmd/lang/zh-CN.rc rename to base/shell/cmd/lang/zh-CN.rc diff --git a/reactos/base/shell/cmd/license.txt b/base/shell/cmd/license.txt similarity index 100% rename from reactos/base/shell/cmd/license.txt rename to base/shell/cmd/license.txt diff --git a/reactos/base/shell/cmd/locale.c b/base/shell/cmd/locale.c similarity index 100% rename from reactos/base/shell/cmd/locale.c rename to base/shell/cmd/locale.c diff --git a/reactos/base/shell/cmd/main.c b/base/shell/cmd/main.c similarity index 100% rename from reactos/base/shell/cmd/main.c rename to base/shell/cmd/main.c diff --git a/reactos/base/shell/cmd/memory.c b/base/shell/cmd/memory.c similarity index 100% rename from reactos/base/shell/cmd/memory.c rename to base/shell/cmd/memory.c diff --git a/reactos/base/shell/cmd/misc.c b/base/shell/cmd/misc.c similarity index 100% rename from reactos/base/shell/cmd/misc.c rename to base/shell/cmd/misc.c diff --git a/reactos/base/shell/cmd/mklink.c b/base/shell/cmd/mklink.c similarity index 100% rename from reactos/base/shell/cmd/mklink.c rename to base/shell/cmd/mklink.c diff --git a/reactos/base/shell/cmd/move.c b/base/shell/cmd/move.c similarity index 100% rename from reactos/base/shell/cmd/move.c rename to base/shell/cmd/move.c diff --git a/reactos/base/shell/cmd/msgbox.c b/base/shell/cmd/msgbox.c similarity index 100% rename from reactos/base/shell/cmd/msgbox.c rename to base/shell/cmd/msgbox.c diff --git a/reactos/base/shell/cmd/parser.c b/base/shell/cmd/parser.c similarity index 100% rename from reactos/base/shell/cmd/parser.c rename to base/shell/cmd/parser.c diff --git a/reactos/base/shell/cmd/path.c b/base/shell/cmd/path.c similarity index 100% rename from reactos/base/shell/cmd/path.c rename to base/shell/cmd/path.c diff --git a/reactos/base/shell/cmd/pause.c b/base/shell/cmd/pause.c similarity index 100% rename from reactos/base/shell/cmd/pause.c rename to base/shell/cmd/pause.c diff --git a/reactos/base/shell/cmd/precomp.h b/base/shell/cmd/precomp.h similarity index 100% rename from reactos/base/shell/cmd/precomp.h rename to base/shell/cmd/precomp.h diff --git a/reactos/base/shell/cmd/prompt.c b/base/shell/cmd/prompt.c similarity index 100% rename from reactos/base/shell/cmd/prompt.c rename to base/shell/cmd/prompt.c diff --git a/reactos/base/shell/cmd/readme.txt b/base/shell/cmd/readme.txt similarity index 100% rename from reactos/base/shell/cmd/readme.txt rename to base/shell/cmd/readme.txt diff --git a/reactos/base/shell/cmd/readme2.txt b/base/shell/cmd/readme2.txt similarity index 100% rename from reactos/base/shell/cmd/readme2.txt rename to base/shell/cmd/readme2.txt diff --git a/reactos/base/shell/cmd/redir.c b/base/shell/cmd/redir.c similarity index 100% rename from reactos/base/shell/cmd/redir.c rename to base/shell/cmd/redir.c diff --git a/reactos/base/shell/cmd/ren.c b/base/shell/cmd/ren.c similarity index 100% rename from reactos/base/shell/cmd/ren.c rename to base/shell/cmd/ren.c diff --git a/reactos/base/shell/cmd/ren.txt b/base/shell/cmd/ren.txt similarity index 100% rename from reactos/base/shell/cmd/ren.txt rename to base/shell/cmd/ren.txt diff --git a/reactos/base/shell/cmd/replace.c b/base/shell/cmd/replace.c similarity index 100% rename from reactos/base/shell/cmd/replace.c rename to base/shell/cmd/replace.c diff --git a/reactos/base/shell/cmd/res/terminal.ico b/base/shell/cmd/res/terminal.ico similarity index 100% rename from reactos/base/shell/cmd/res/terminal.ico rename to base/shell/cmd/res/terminal.ico diff --git a/reactos/base/shell/cmd/resource.h b/base/shell/cmd/resource.h similarity index 100% rename from reactos/base/shell/cmd/resource.h rename to base/shell/cmd/resource.h diff --git a/reactos/base/shell/cmd/rsrc.rc b/base/shell/cmd/rsrc.rc similarity index 100% rename from reactos/base/shell/cmd/rsrc.rc rename to base/shell/cmd/rsrc.rc diff --git a/reactos/base/shell/cmd/screen.c b/base/shell/cmd/screen.c similarity index 100% rename from reactos/base/shell/cmd/screen.c rename to base/shell/cmd/screen.c diff --git a/reactos/base/shell/cmd/set.c b/base/shell/cmd/set.c similarity index 100% rename from reactos/base/shell/cmd/set.c rename to base/shell/cmd/set.c diff --git a/reactos/base/shell/cmd/setlocal.c b/base/shell/cmd/setlocal.c similarity index 100% rename from reactos/base/shell/cmd/setlocal.c rename to base/shell/cmd/setlocal.c diff --git a/reactos/base/shell/cmd/shift.c b/base/shell/cmd/shift.c similarity index 100% rename from reactos/base/shell/cmd/shift.c rename to base/shell/cmd/shift.c diff --git a/reactos/base/shell/cmd/start.c b/base/shell/cmd/start.c similarity index 100% rename from reactos/base/shell/cmd/start.c rename to base/shell/cmd/start.c diff --git a/reactos/base/shell/cmd/strtoclr.c b/base/shell/cmd/strtoclr.c similarity index 100% rename from reactos/base/shell/cmd/strtoclr.c rename to base/shell/cmd/strtoclr.c diff --git a/reactos/base/shell/cmd/time.c b/base/shell/cmd/time.c similarity index 100% rename from reactos/base/shell/cmd/time.c rename to base/shell/cmd/time.c diff --git a/reactos/base/shell/cmd/timer.c b/base/shell/cmd/timer.c similarity index 100% rename from reactos/base/shell/cmd/timer.c rename to base/shell/cmd/timer.c diff --git a/reactos/base/shell/cmd/title.c b/base/shell/cmd/title.c similarity index 100% rename from reactos/base/shell/cmd/title.c rename to base/shell/cmd/title.c diff --git a/reactos/base/shell/cmd/todo.txt b/base/shell/cmd/todo.txt similarity index 100% rename from reactos/base/shell/cmd/todo.txt rename to base/shell/cmd/todo.txt diff --git a/reactos/base/shell/cmd/type.c b/base/shell/cmd/type.c similarity index 100% rename from reactos/base/shell/cmd/type.c rename to base/shell/cmd/type.c diff --git a/reactos/base/shell/cmd/ver.c b/base/shell/cmd/ver.c similarity index 100% rename from reactos/base/shell/cmd/ver.c rename to base/shell/cmd/ver.c diff --git a/reactos/base/shell/cmd/verify.c b/base/shell/cmd/verify.c similarity index 100% rename from reactos/base/shell/cmd/verify.c rename to base/shell/cmd/verify.c diff --git a/reactos/base/shell/cmd/vol.c b/base/shell/cmd/vol.c similarity index 100% rename from reactos/base/shell/cmd/vol.c rename to base/shell/cmd/vol.c diff --git a/reactos/base/shell/cmd/where.c b/base/shell/cmd/where.c similarity index 100% rename from reactos/base/shell/cmd/where.c rename to base/shell/cmd/where.c diff --git a/reactos/base/shell/cmd/window.c b/base/shell/cmd/window.c similarity index 100% rename from reactos/base/shell/cmd/window.c rename to base/shell/cmd/window.c diff --git a/reactos/base/shell/explorer-new/CMakeLists.txt b/base/shell/explorer-new/CMakeLists.txt similarity index 100% rename from reactos/base/shell/explorer-new/CMakeLists.txt rename to base/shell/explorer-new/CMakeLists.txt diff --git a/reactos/base/shell/explorer-new/comcsup.h b/base/shell/explorer-new/comcsup.h similarity index 100% rename from reactos/base/shell/explorer-new/comcsup.h rename to base/shell/explorer-new/comcsup.h diff --git a/reactos/base/shell/explorer-new/desktop.c b/base/shell/explorer-new/desktop.c similarity index 100% rename from reactos/base/shell/explorer-new/desktop.c rename to base/shell/explorer-new/desktop.c diff --git a/reactos/base/shell/explorer-new/dragdrop.c b/base/shell/explorer-new/dragdrop.c similarity index 100% rename from reactos/base/shell/explorer-new/dragdrop.c rename to base/shell/explorer-new/dragdrop.c diff --git a/reactos/base/shell/explorer-new/explorer.c b/base/shell/explorer-new/explorer.c similarity index 100% rename from reactos/base/shell/explorer-new/explorer.c rename to base/shell/explorer-new/explorer.c diff --git a/reactos/base/shell/explorer-new/explorer.rc b/base/shell/explorer-new/explorer.rc similarity index 100% rename from reactos/base/shell/explorer-new/explorer.rc rename to base/shell/explorer-new/explorer.rc diff --git a/reactos/base/shell/explorer-new/lang/bg-BG.rc b/base/shell/explorer-new/lang/bg-BG.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/bg-BG.rc rename to base/shell/explorer-new/lang/bg-BG.rc diff --git a/reactos/base/shell/explorer-new/lang/cs-CZ.rc b/base/shell/explorer-new/lang/cs-CZ.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/cs-CZ.rc rename to base/shell/explorer-new/lang/cs-CZ.rc diff --git a/reactos/base/shell/explorer-new/lang/de-DE.rc b/base/shell/explorer-new/lang/de-DE.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/de-DE.rc rename to base/shell/explorer-new/lang/de-DE.rc diff --git a/reactos/base/shell/explorer-new/lang/en-US.rc b/base/shell/explorer-new/lang/en-US.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/en-US.rc rename to base/shell/explorer-new/lang/en-US.rc diff --git a/reactos/base/shell/explorer-new/lang/es-ES.rc b/base/shell/explorer-new/lang/es-ES.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/es-ES.rc rename to base/shell/explorer-new/lang/es-ES.rc diff --git a/reactos/base/shell/explorer-new/lang/fr-FR.rc b/base/shell/explorer-new/lang/fr-FR.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/fr-FR.rc rename to base/shell/explorer-new/lang/fr-FR.rc diff --git a/reactos/base/shell/explorer-new/lang/it-IT.rc b/base/shell/explorer-new/lang/it-IT.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/it-IT.rc rename to base/shell/explorer-new/lang/it-IT.rc diff --git a/reactos/base/shell/explorer-new/lang/ja-JP.rc b/base/shell/explorer-new/lang/ja-JP.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/ja-JP.rc rename to base/shell/explorer-new/lang/ja-JP.rc diff --git a/reactos/base/shell/explorer-new/lang/ko-KR.rc b/base/shell/explorer-new/lang/ko-KR.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/ko-KR.rc rename to base/shell/explorer-new/lang/ko-KR.rc diff --git a/reactos/base/shell/explorer-new/lang/lt-LT.rc b/base/shell/explorer-new/lang/lt-LT.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/lt-LT.rc rename to base/shell/explorer-new/lang/lt-LT.rc diff --git a/reactos/base/shell/explorer-new/lang/nl-NL.rc b/base/shell/explorer-new/lang/nl-NL.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/nl-NL.rc rename to base/shell/explorer-new/lang/nl-NL.rc diff --git a/reactos/base/shell/explorer-new/lang/no-NO.rc b/base/shell/explorer-new/lang/no-NO.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/no-NO.rc rename to base/shell/explorer-new/lang/no-NO.rc diff --git a/reactos/base/shell/explorer-new/lang/pl-PL.rc b/base/shell/explorer-new/lang/pl-PL.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/pl-PL.rc rename to base/shell/explorer-new/lang/pl-PL.rc diff --git a/reactos/base/shell/explorer-new/lang/pt-BR.rc b/base/shell/explorer-new/lang/pt-BR.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/pt-BR.rc rename to base/shell/explorer-new/lang/pt-BR.rc diff --git a/reactos/base/shell/explorer-new/lang/ro-RO.rc b/base/shell/explorer-new/lang/ro-RO.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/ro-RO.rc rename to base/shell/explorer-new/lang/ro-RO.rc diff --git a/reactos/base/shell/explorer-new/lang/ru-RU.rc b/base/shell/explorer-new/lang/ru-RU.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/ru-RU.rc rename to base/shell/explorer-new/lang/ru-RU.rc diff --git a/reactos/base/shell/explorer-new/lang/sk-SK.rc b/base/shell/explorer-new/lang/sk-SK.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/sk-SK.rc rename to base/shell/explorer-new/lang/sk-SK.rc diff --git a/reactos/base/shell/explorer-new/lang/uk-UA.rc b/base/shell/explorer-new/lang/uk-UA.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/uk-UA.rc rename to base/shell/explorer-new/lang/uk-UA.rc diff --git a/reactos/base/shell/explorer-new/lang/zh-CN.rc b/base/shell/explorer-new/lang/zh-CN.rc similarity index 100% rename from reactos/base/shell/explorer-new/lang/zh-CN.rc rename to base/shell/explorer-new/lang/zh-CN.rc diff --git a/reactos/base/shell/explorer-new/precomp.h b/base/shell/explorer-new/precomp.h similarity index 100% rename from reactos/base/shell/explorer-new/precomp.h rename to base/shell/explorer-new/precomp.h diff --git a/reactos/base/shell/explorer-new/res/auto_hide.bmp b/base/shell/explorer-new/res/auto_hide.bmp similarity index 100% rename from reactos/base/shell/explorer-new/res/auto_hide.bmp rename to base/shell/explorer-new/res/auto_hide.bmp diff --git a/reactos/base/shell/explorer-new/res/lock_group_noql.bmp b/base/shell/explorer-new/res/lock_group_noql.bmp similarity index 100% rename from reactos/base/shell/explorer-new/res/lock_group_noql.bmp rename to base/shell/explorer-new/res/lock_group_noql.bmp diff --git a/reactos/base/shell/explorer-new/res/lock_group_ql.bmp b/base/shell/explorer-new/res/lock_group_ql.bmp similarity index 100% rename from reactos/base/shell/explorer-new/res/lock_group_ql.bmp rename to base/shell/explorer-new/res/lock_group_ql.bmp diff --git a/reactos/base/shell/explorer-new/res/lock_nogroup_noql.bmp b/base/shell/explorer-new/res/lock_nogroup_noql.bmp similarity index 100% rename from reactos/base/shell/explorer-new/res/lock_nogroup_noql.bmp rename to base/shell/explorer-new/res/lock_nogroup_noql.bmp diff --git a/reactos/base/shell/explorer-new/res/lock_nogroup_ql.bmp b/base/shell/explorer-new/res/lock_nogroup_ql.bmp similarity index 100% rename from reactos/base/shell/explorer-new/res/lock_nogroup_ql.bmp rename to base/shell/explorer-new/res/lock_nogroup_ql.bmp diff --git a/reactos/base/shell/explorer-new/res/logov.bmp b/base/shell/explorer-new/res/logov.bmp similarity index 100% rename from reactos/base/shell/explorer-new/res/logov.bmp rename to base/shell/explorer-new/res/logov.bmp diff --git a/reactos/base/shell/explorer-new/res/nolock_group_noql.bmp b/base/shell/explorer-new/res/nolock_group_noql.bmp similarity index 100% rename from reactos/base/shell/explorer-new/res/nolock_group_noql.bmp rename to base/shell/explorer-new/res/nolock_group_noql.bmp diff --git a/reactos/base/shell/explorer-new/res/nolock_group_ql.bmp b/base/shell/explorer-new/res/nolock_group_ql.bmp similarity index 100% rename from reactos/base/shell/explorer-new/res/nolock_group_ql.bmp rename to base/shell/explorer-new/res/nolock_group_ql.bmp diff --git a/reactos/base/shell/explorer-new/res/nolock_nogroup_noql.bmp b/base/shell/explorer-new/res/nolock_nogroup_noql.bmp similarity index 100% rename from reactos/base/shell/explorer-new/res/nolock_nogroup_noql.bmp rename to base/shell/explorer-new/res/nolock_nogroup_noql.bmp diff --git a/reactos/base/shell/explorer-new/res/nolock_nogroup_ql.bmp b/base/shell/explorer-new/res/nolock_nogroup_ql.bmp similarity index 100% rename from reactos/base/shell/explorer-new/res/nolock_nogroup_ql.bmp rename to base/shell/explorer-new/res/nolock_nogroup_ql.bmp diff --git a/reactos/base/shell/explorer-new/res/start.ico b/base/shell/explorer-new/res/start.ico similarity index 100% rename from reactos/base/shell/explorer-new/res/start.ico rename to base/shell/explorer-new/res/start.ico diff --git a/reactos/base/shell/explorer-new/resource.h b/base/shell/explorer-new/resource.h similarity index 100% rename from reactos/base/shell/explorer-new/resource.h rename to base/shell/explorer-new/resource.h diff --git a/reactos/base/shell/explorer-new/startmnu.c b/base/shell/explorer-new/startmnu.c similarity index 100% rename from reactos/base/shell/explorer-new/startmnu.c rename to base/shell/explorer-new/startmnu.c diff --git a/reactos/base/shell/explorer-new/taskband.c b/base/shell/explorer-new/taskband.c similarity index 100% rename from reactos/base/shell/explorer-new/taskband.c rename to base/shell/explorer-new/taskband.c diff --git a/reactos/base/shell/explorer-new/taskswnd.c b/base/shell/explorer-new/taskswnd.c similarity index 100% rename from reactos/base/shell/explorer-new/taskswnd.c rename to base/shell/explorer-new/taskswnd.c diff --git a/reactos/base/shell/explorer-new/tbsite.c b/base/shell/explorer-new/tbsite.c similarity index 100% rename from reactos/base/shell/explorer-new/tbsite.c rename to base/shell/explorer-new/tbsite.c diff --git a/reactos/base/shell/explorer-new/todo.h b/base/shell/explorer-new/todo.h similarity index 100% rename from reactos/base/shell/explorer-new/todo.h rename to base/shell/explorer-new/todo.h diff --git a/reactos/base/shell/explorer-new/trayntfy.c b/base/shell/explorer-new/trayntfy.c similarity index 100% rename from reactos/base/shell/explorer-new/trayntfy.c rename to base/shell/explorer-new/trayntfy.c diff --git a/reactos/base/shell/explorer-new/trayprop.c b/base/shell/explorer-new/trayprop.c similarity index 100% rename from reactos/base/shell/explorer-new/trayprop.c rename to base/shell/explorer-new/trayprop.c diff --git a/reactos/base/shell/explorer-new/traywnd.c b/base/shell/explorer-new/traywnd.c similarity index 100% rename from reactos/base/shell/explorer-new/traywnd.c rename to base/shell/explorer-new/traywnd.c diff --git a/reactos/base/shell/explorer-new/undoc.h b/base/shell/explorer-new/undoc.h similarity index 100% rename from reactos/base/shell/explorer-new/undoc.h rename to base/shell/explorer-new/undoc.h diff --git a/reactos/base/shell/explorer/CMakeLists.txt b/base/shell/explorer/CMakeLists.txt similarity index 100% rename from reactos/base/shell/explorer/CMakeLists.txt rename to base/shell/explorer/CMakeLists.txt diff --git a/reactos/base/shell/explorer/Doxyfile b/base/shell/explorer/Doxyfile similarity index 100% rename from reactos/base/shell/explorer/Doxyfile rename to base/shell/explorer/Doxyfile diff --git a/reactos/base/shell/explorer/Doxyfile-all b/base/shell/explorer/Doxyfile-all similarity index 100% rename from reactos/base/shell/explorer/Doxyfile-all rename to base/shell/explorer/Doxyfile-all diff --git a/reactos/base/shell/explorer/Jamfile b/base/shell/explorer/Jamfile similarity index 100% rename from reactos/base/shell/explorer/Jamfile rename to base/shell/explorer/Jamfile diff --git a/reactos/base/shell/explorer/Make-rosshell-MinGW b/base/shell/explorer/Make-rosshell-MinGW similarity index 100% rename from reactos/base/shell/explorer/Make-rosshell-MinGW rename to base/shell/explorer/Make-rosshell-MinGW diff --git a/reactos/base/shell/explorer/Make-rosshell.mak b/base/shell/explorer/Make-rosshell.mak similarity index 100% rename from reactos/base/shell/explorer/Make-rosshell.mak rename to base/shell/explorer/Make-rosshell.mak diff --git a/reactos/base/shell/explorer/Makefile-MinGW b/base/shell/explorer/Makefile-MinGW similarity index 100% rename from reactos/base/shell/explorer/Makefile-MinGW rename to base/shell/explorer/Makefile-MinGW diff --git a/reactos/base/shell/explorer/Makefile-Wine b/base/shell/explorer/Makefile-Wine similarity index 100% rename from reactos/base/shell/explorer/Makefile-Wine rename to base/shell/explorer/Makefile-Wine diff --git a/reactos/base/shell/explorer/Makefile-precomp b/base/shell/explorer/Makefile-precomp similarity index 100% rename from reactos/base/shell/explorer/Makefile-precomp rename to base/shell/explorer/Makefile-precomp diff --git a/reactos/base/shell/explorer/desktop/desktop.cpp b/base/shell/explorer/desktop/desktop.cpp similarity index 100% rename from reactos/base/shell/explorer/desktop/desktop.cpp rename to base/shell/explorer/desktop/desktop.cpp diff --git a/reactos/base/shell/explorer/desktop/desktop.h b/base/shell/explorer/desktop/desktop.h similarity index 100% rename from reactos/base/shell/explorer/desktop/desktop.h rename to base/shell/explorer/desktop/desktop.h diff --git a/reactos/base/shell/explorer/dialogs/searchprogram.cpp b/base/shell/explorer/dialogs/searchprogram.cpp similarity index 100% rename from reactos/base/shell/explorer/dialogs/searchprogram.cpp rename to base/shell/explorer/dialogs/searchprogram.cpp diff --git a/reactos/base/shell/explorer/dialogs/searchprogram.h b/base/shell/explorer/dialogs/searchprogram.h similarity index 100% rename from reactos/base/shell/explorer/dialogs/searchprogram.h rename to base/shell/explorer/dialogs/searchprogram.h diff --git a/reactos/base/shell/explorer/dialogs/settings.cpp b/base/shell/explorer/dialogs/settings.cpp similarity index 100% rename from reactos/base/shell/explorer/dialogs/settings.cpp rename to base/shell/explorer/dialogs/settings.cpp diff --git a/reactos/base/shell/explorer/dialogs/settings.h b/base/shell/explorer/dialogs/settings.h similarity index 100% rename from reactos/base/shell/explorer/dialogs/settings.h rename to base/shell/explorer/dialogs/settings.h diff --git a/reactos/base/shell/explorer/doc/TODO.txt b/base/shell/explorer/doc/TODO.txt similarity index 100% rename from reactos/base/shell/explorer/doc/TODO.txt rename to base/shell/explorer/doc/TODO.txt diff --git a/reactos/base/shell/explorer/doc/changes.txt b/base/shell/explorer/doc/changes.txt similarity index 100% rename from reactos/base/shell/explorer/doc/changes.txt rename to base/shell/explorer/doc/changes.txt diff --git a/reactos/base/shell/explorer/doc/readme.txt b/base/shell/explorer/doc/readme.txt similarity index 100% rename from reactos/base/shell/explorer/doc/readme.txt rename to base/shell/explorer/doc/readme.txt diff --git a/reactos/base/shell/explorer/doxy-footer.html b/base/shell/explorer/doxy-footer.html similarity index 100% rename from reactos/base/shell/explorer/doxy-footer.html rename to base/shell/explorer/doxy-footer.html diff --git a/reactos/base/shell/explorer/doxy-footer.htmt b/base/shell/explorer/doxy-footer.htmt similarity index 100% rename from reactos/base/shell/explorer/doxy-footer.htmt rename to base/shell/explorer/doxy-footer.htmt diff --git a/reactos/base/shell/explorer/explorer-bg.rc b/base/shell/explorer/explorer-bg.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-bg.rc rename to base/shell/explorer/explorer-bg.rc diff --git a/reactos/base/shell/explorer/explorer-cfg-template.xml b/base/shell/explorer/explorer-cfg-template.xml similarity index 100% rename from reactos/base/shell/explorer/explorer-cfg-template.xml rename to base/shell/explorer/explorer-cfg-template.xml diff --git a/reactos/base/shell/explorer/explorer-cz.rc b/base/shell/explorer/explorer-cz.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-cz.rc rename to base/shell/explorer/explorer-cz.rc diff --git a/reactos/base/shell/explorer/explorer-de.rc b/base/shell/explorer/explorer-de.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-de.rc rename to base/shell/explorer/explorer-de.rc diff --git a/reactos/base/shell/explorer/explorer-el.rc b/base/shell/explorer/explorer-el.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-el.rc rename to base/shell/explorer/explorer-el.rc diff --git a/reactos/base/shell/explorer/explorer-en.rc b/base/shell/explorer/explorer-en.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-en.rc rename to base/shell/explorer/explorer-en.rc diff --git a/reactos/base/shell/explorer/explorer-es.rc b/base/shell/explorer/explorer-es.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-es.rc rename to base/shell/explorer/explorer-es.rc diff --git a/reactos/base/shell/explorer/explorer-fr.rc b/base/shell/explorer/explorer-fr.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-fr.rc rename to base/shell/explorer/explorer-fr.rc diff --git a/reactos/base/shell/explorer/explorer-hu.rc b/base/shell/explorer/explorer-hu.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-hu.rc rename to base/shell/explorer/explorer-hu.rc diff --git a/reactos/base/shell/explorer/explorer-id.rc b/base/shell/explorer/explorer-id.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-id.rc rename to base/shell/explorer/explorer-id.rc diff --git a/reactos/base/shell/explorer/explorer-it.rc b/base/shell/explorer/explorer-it.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-it.rc rename to base/shell/explorer/explorer-it.rc diff --git a/reactos/base/shell/explorer/explorer-ja.rc b/base/shell/explorer/explorer-ja.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-ja.rc rename to base/shell/explorer/explorer-ja.rc diff --git a/reactos/base/shell/explorer/explorer-ko.rc b/base/shell/explorer/explorer-ko.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-ko.rc rename to base/shell/explorer/explorer-ko.rc diff --git a/reactos/base/shell/explorer/explorer-nl.rc b/base/shell/explorer/explorer-nl.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-nl.rc rename to base/shell/explorer/explorer-nl.rc diff --git a/reactos/base/shell/explorer/explorer-no.rc b/base/shell/explorer/explorer-no.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-no.rc rename to base/shell/explorer/explorer-no.rc diff --git a/reactos/base/shell/explorer/explorer-pl.rc b/base/shell/explorer/explorer-pl.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-pl.rc rename to base/shell/explorer/explorer-pl.rc diff --git a/reactos/base/shell/explorer/explorer-pt.rc b/base/shell/explorer/explorer-pt.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-pt.rc rename to base/shell/explorer/explorer-pt.rc diff --git a/reactos/base/shell/explorer/explorer-ro.rc b/base/shell/explorer/explorer-ro.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-ro.rc rename to base/shell/explorer/explorer-ro.rc diff --git a/reactos/base/shell/explorer/explorer-ru.rc b/base/shell/explorer/explorer-ru.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-ru.rc rename to base/shell/explorer/explorer-ru.rc diff --git a/reactos/base/shell/explorer/explorer-sk.rc b/base/shell/explorer/explorer-sk.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-sk.rc rename to base/shell/explorer/explorer-sk.rc diff --git a/reactos/base/shell/explorer/explorer-sv.rc b/base/shell/explorer/explorer-sv.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-sv.rc rename to base/shell/explorer/explorer-sv.rc diff --git a/reactos/base/shell/explorer/explorer-uk.rc b/base/shell/explorer/explorer-uk.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-uk.rc rename to base/shell/explorer/explorer-uk.rc diff --git a/reactos/base/shell/explorer/explorer-zh.rc b/base/shell/explorer/explorer-zh.rc similarity index 100% rename from reactos/base/shell/explorer/explorer-zh.rc rename to base/shell/explorer/explorer-zh.rc diff --git a/reactos/base/shell/explorer/explorer.cpp b/base/shell/explorer/explorer.cpp similarity index 100% rename from reactos/base/shell/explorer/explorer.cpp rename to base/shell/explorer/explorer.cpp diff --git a/reactos/base/shell/explorer/explorer.dsp b/base/shell/explorer/explorer.dsp similarity index 100% rename from reactos/base/shell/explorer/explorer.dsp rename to base/shell/explorer/explorer.dsp diff --git a/reactos/base/shell/explorer/explorer.dsw b/base/shell/explorer/explorer.dsw similarity index 100% rename from reactos/base/shell/explorer/explorer.dsw rename to base/shell/explorer/explorer.dsw diff --git a/reactos/base/shell/explorer/explorer.exe.manifest b/base/shell/explorer/explorer.exe.manifest similarity index 100% rename from reactos/base/shell/explorer/explorer.exe.manifest rename to base/shell/explorer/explorer.exe.manifest diff --git a/reactos/base/shell/explorer/explorer.h b/base/shell/explorer/explorer.h similarity index 100% rename from reactos/base/shell/explorer/explorer.h rename to base/shell/explorer/explorer.h diff --git a/reactos/base/shell/explorer/explorer.rc b/base/shell/explorer/explorer.rc similarity index 100% rename from reactos/base/shell/explorer/explorer.rc rename to base/shell/explorer/explorer.rc diff --git a/reactos/base/shell/explorer/explorer.sln b/base/shell/explorer/explorer.sln similarity index 100% rename from reactos/base/shell/explorer/explorer.sln rename to base/shell/explorer/explorer.sln diff --git a/reactos/base/shell/explorer/explorer.vcproj b/base/shell/explorer/explorer.vcproj similarity index 100% rename from reactos/base/shell/explorer/explorer.vcproj rename to base/shell/explorer/explorer.vcproj diff --git a/reactos/base/shell/explorer/explorer_intres.rc b/base/shell/explorer/explorer_intres.rc similarity index 100% rename from reactos/base/shell/explorer/explorer_intres.rc rename to base/shell/explorer/explorer_intres.rc diff --git a/reactos/base/shell/explorer/externals.h b/base/shell/explorer/externals.h similarity index 100% rename from reactos/base/shell/explorer/externals.h rename to base/shell/explorer/externals.h diff --git a/reactos/base/shell/explorer/globals.h b/base/shell/explorer/globals.h similarity index 100% rename from reactos/base/shell/explorer/globals.h rename to base/shell/explorer/globals.h diff --git a/reactos/base/shell/explorer/i386-stub-win32.c b/base/shell/explorer/i386-stub-win32.c similarity index 100% rename from reactos/base/shell/explorer/i386-stub-win32.c rename to base/shell/explorer/i386-stub-win32.c diff --git a/reactos/base/shell/explorer/make-docu.sh b/base/shell/explorer/make-docu.sh similarity index 100% rename from reactos/base/shell/explorer/make-docu.sh rename to base/shell/explorer/make-docu.sh diff --git a/reactos/base/shell/explorer/make-full-docu.bat b/base/shell/explorer/make-full-docu.bat similarity index 100% rename from reactos/base/shell/explorer/make-full-docu.bat rename to base/shell/explorer/make-full-docu.bat diff --git a/reactos/base/shell/explorer/make_explorer.dsp b/base/shell/explorer/make_explorer.dsp similarity index 100% rename from reactos/base/shell/explorer/make_explorer.dsp rename to base/shell/explorer/make_explorer.dsp diff --git a/reactos/base/shell/explorer/make_explorer.vcproj b/base/shell/explorer/make_explorer.vcproj similarity index 100% rename from reactos/base/shell/explorer/make_explorer.vcproj rename to base/shell/explorer/make_explorer.vcproj diff --git a/reactos/base/shell/explorer/make_rosshell.dsp b/base/shell/explorer/make_rosshell.dsp similarity index 100% rename from reactos/base/shell/explorer/make_rosshell.dsp rename to base/shell/explorer/make_rosshell.dsp diff --git a/reactos/base/shell/explorer/makearchive.bat b/base/shell/explorer/makearchive.bat similarity index 100% rename from reactos/base/shell/explorer/makearchive.bat rename to base/shell/explorer/makearchive.bat diff --git a/reactos/base/shell/explorer/notifyhook/CMakeLists.txt b/base/shell/explorer/notifyhook/CMakeLists.txt similarity index 100% rename from reactos/base/shell/explorer/notifyhook/CMakeLists.txt rename to base/shell/explorer/notifyhook/CMakeLists.txt diff --git a/reactos/base/shell/explorer/notifyhook/notifyhook.c b/base/shell/explorer/notifyhook/notifyhook.c similarity index 100% rename from reactos/base/shell/explorer/notifyhook/notifyhook.c rename to base/shell/explorer/notifyhook/notifyhook.c diff --git a/reactos/base/shell/explorer/notifyhook/notifyhook.def b/base/shell/explorer/notifyhook/notifyhook.def similarity index 100% rename from reactos/base/shell/explorer/notifyhook/notifyhook.def rename to base/shell/explorer/notifyhook/notifyhook.def diff --git a/reactos/base/shell/explorer/notifyhook/notifyhook.dsp b/base/shell/explorer/notifyhook/notifyhook.dsp similarity index 100% rename from reactos/base/shell/explorer/notifyhook/notifyhook.dsp rename to base/shell/explorer/notifyhook/notifyhook.dsp diff --git a/reactos/base/shell/explorer/notifyhook/notifyhook.h b/base/shell/explorer/notifyhook/notifyhook.h similarity index 100% rename from reactos/base/shell/explorer/notifyhook/notifyhook.h rename to base/shell/explorer/notifyhook/notifyhook.h diff --git a/reactos/base/shell/explorer/notifyhook/notifyhook.rc b/base/shell/explorer/notifyhook/notifyhook.rc similarity index 100% rename from reactos/base/shell/explorer/notifyhook/notifyhook.rc rename to base/shell/explorer/notifyhook/notifyhook.rc diff --git a/reactos/base/shell/explorer/notifyhook/notifyhook.spec b/base/shell/explorer/notifyhook/notifyhook.spec similarity index 100% rename from reactos/base/shell/explorer/notifyhook/notifyhook.spec rename to base/shell/explorer/notifyhook/notifyhook.spec diff --git a/reactos/base/shell/explorer/notifyhook/notifyhook.vcproj b/base/shell/explorer/notifyhook/notifyhook.vcproj similarity index 100% rename from reactos/base/shell/explorer/notifyhook/notifyhook.vcproj rename to base/shell/explorer/notifyhook/notifyhook.vcproj diff --git a/reactos/base/shell/explorer/precomp.cpp b/base/shell/explorer/precomp.cpp similarity index 100% rename from reactos/base/shell/explorer/precomp.cpp rename to base/shell/explorer/precomp.cpp diff --git a/reactos/base/shell/explorer/precomp.h b/base/shell/explorer/precomp.h similarity index 100% rename from reactos/base/shell/explorer/precomp.h rename to base/shell/explorer/precomp.h diff --git a/reactos/base/shell/explorer/project-root.jam b/base/shell/explorer/project-root.jam similarity index 100% rename from reactos/base/shell/explorer/project-root.jam rename to base/shell/explorer/project-root.jam diff --git a/reactos/base/shell/explorer/rc-mingw.jam b/base/shell/explorer/rc-mingw.jam similarity index 100% rename from reactos/base/shell/explorer/rc-mingw.jam rename to base/shell/explorer/rc-mingw.jam diff --git a/reactos/base/shell/explorer/res/action.ico b/base/shell/explorer/res/action.ico similarity index 100% rename from reactos/base/shell/explorer/res/action.ico rename to base/shell/explorer/res/action.ico diff --git a/reactos/base/shell/explorer/res/administration.ico b/base/shell/explorer/res/administration.ico similarity index 100% rename from reactos/base/shell/explorer/res/administration.ico rename to base/shell/explorer/res/administration.ico diff --git a/reactos/base/shell/explorer/res/appicon.ico b/base/shell/explorer/res/appicon.ico similarity index 100% rename from reactos/base/shell/explorer/res/appicon.ico rename to base/shell/explorer/res/appicon.ico diff --git a/reactos/base/shell/explorer/res/apps.ico b/base/shell/explorer/res/apps.ico similarity index 100% rename from reactos/base/shell/explorer/res/apps.ico rename to base/shell/explorer/res/apps.ico diff --git a/reactos/base/shell/explorer/res/arrow.ico b/base/shell/explorer/res/arrow.ico similarity index 100% rename from reactos/base/shell/explorer/res/arrow.ico rename to base/shell/explorer/res/arrow.ico diff --git a/reactos/base/shell/explorer/res/arrow_dwn.ico b/base/shell/explorer/res/arrow_dwn.ico similarity index 100% rename from reactos/base/shell/explorer/res/arrow_dwn.ico rename to base/shell/explorer/res/arrow_dwn.ico diff --git a/reactos/base/shell/explorer/res/arrow_up.ico b/base/shell/explorer/res/arrow_up.ico similarity index 100% rename from reactos/base/shell/explorer/res/arrow_up.ico rename to base/shell/explorer/res/arrow_up.ico diff --git a/reactos/base/shell/explorer/res/arrowsel.ico b/base/shell/explorer/res/arrowsel.ico similarity index 100% rename from reactos/base/shell/explorer/res/arrowsel.ico rename to base/shell/explorer/res/arrowsel.ico diff --git a/reactos/base/shell/explorer/res/computer.ico b/base/shell/explorer/res/computer.ico similarity index 100% rename from reactos/base/shell/explorer/res/computer.ico rename to base/shell/explorer/res/computer.ico diff --git a/reactos/base/shell/explorer/res/config.ico b/base/shell/explorer/res/config.ico similarity index 100% rename from reactos/base/shell/explorer/res/config.ico rename to base/shell/explorer/res/config.ico diff --git a/reactos/base/shell/explorer/res/control-panel.ico b/base/shell/explorer/res/control-panel.ico similarity index 100% rename from reactos/base/shell/explorer/res/control-panel.ico rename to base/shell/explorer/res/control-panel.ico diff --git a/reactos/base/shell/explorer/res/desktop-settings.ico b/base/shell/explorer/res/desktop-settings.ico similarity index 100% rename from reactos/base/shell/explorer/res/desktop-settings.ico rename to base/shell/explorer/res/desktop-settings.ico diff --git a/reactos/base/shell/explorer/res/documents.ico b/base/shell/explorer/res/documents.ico similarity index 100% rename from reactos/base/shell/explorer/res/documents.ico rename to base/shell/explorer/res/documents.ico diff --git a/reactos/base/shell/explorer/res/dot.ico b/base/shell/explorer/res/dot.ico similarity index 100% rename from reactos/base/shell/explorer/res/dot.ico rename to base/shell/explorer/res/dot.ico diff --git a/reactos/base/shell/explorer/res/dot_red.ico b/base/shell/explorer/res/dot_red.ico similarity index 100% rename from reactos/base/shell/explorer/res/dot_red.ico rename to base/shell/explorer/res/dot_red.ico diff --git a/reactos/base/shell/explorer/res/dot_trans.ico b/base/shell/explorer/res/dot_trans.ico similarity index 100% rename from reactos/base/shell/explorer/res/dot_trans.ico rename to base/shell/explorer/res/dot_trans.ico diff --git a/reactos/base/shell/explorer/res/drivebar.bmp b/base/shell/explorer/res/drivebar.bmp similarity index 100% rename from reactos/base/shell/explorer/res/drivebar.bmp rename to base/shell/explorer/res/drivebar.bmp diff --git a/reactos/base/shell/explorer/res/explorer.ico b/base/shell/explorer/res/explorer.ico similarity index 100% rename from reactos/base/shell/explorer/res/explorer.ico rename to base/shell/explorer/res/explorer.ico diff --git a/reactos/base/shell/explorer/res/favorites.ico b/base/shell/explorer/res/favorites.ico similarity index 100% rename from reactos/base/shell/explorer/res/favorites.ico rename to base/shell/explorer/res/favorites.ico diff --git a/reactos/base/shell/explorer/res/floating.ico b/base/shell/explorer/res/floating.ico similarity index 100% rename from reactos/base/shell/explorer/res/floating.ico rename to base/shell/explorer/res/floating.ico diff --git a/reactos/base/shell/explorer/res/folder.ico b/base/shell/explorer/res/folder.ico similarity index 100% rename from reactos/base/shell/explorer/res/folder.ico rename to base/shell/explorer/res/folder.ico diff --git a/reactos/base/shell/explorer/res/icoali10.bmp b/base/shell/explorer/res/icoali10.bmp similarity index 100% rename from reactos/base/shell/explorer/res/icoali10.bmp rename to base/shell/explorer/res/icoali10.bmp diff --git a/reactos/base/shell/explorer/res/icoalig0.bmp b/base/shell/explorer/res/icoalig0.bmp similarity index 100% rename from reactos/base/shell/explorer/res/icoalig0.bmp rename to base/shell/explorer/res/icoalig0.bmp diff --git a/reactos/base/shell/explorer/res/icoalig1.bmp b/base/shell/explorer/res/icoalig1.bmp similarity index 100% rename from reactos/base/shell/explorer/res/icoalig1.bmp rename to base/shell/explorer/res/icoalig1.bmp diff --git a/reactos/base/shell/explorer/res/icoalig2.bmp b/base/shell/explorer/res/icoalig2.bmp similarity index 100% rename from reactos/base/shell/explorer/res/icoalig2.bmp rename to base/shell/explorer/res/icoalig2.bmp diff --git a/reactos/base/shell/explorer/res/icoalig3.bmp b/base/shell/explorer/res/icoalig3.bmp similarity index 100% rename from reactos/base/shell/explorer/res/icoalig3.bmp rename to base/shell/explorer/res/icoalig3.bmp diff --git a/reactos/base/shell/explorer/res/icoalig4.bmp b/base/shell/explorer/res/icoalig4.bmp similarity index 100% rename from reactos/base/shell/explorer/res/icoalig4.bmp rename to base/shell/explorer/res/icoalig4.bmp diff --git a/reactos/base/shell/explorer/res/icoalig5.bmp b/base/shell/explorer/res/icoalig5.bmp similarity index 100% rename from reactos/base/shell/explorer/res/icoalig5.bmp rename to base/shell/explorer/res/icoalig5.bmp diff --git a/reactos/base/shell/explorer/res/icoalig6.bmp b/base/shell/explorer/res/icoalig6.bmp similarity index 100% rename from reactos/base/shell/explorer/res/icoalig6.bmp rename to base/shell/explorer/res/icoalig6.bmp diff --git a/reactos/base/shell/explorer/res/icoalig7.bmp b/base/shell/explorer/res/icoalig7.bmp similarity index 100% rename from reactos/base/shell/explorer/res/icoalig7.bmp rename to base/shell/explorer/res/icoalig7.bmp diff --git a/reactos/base/shell/explorer/res/icoalig8.bmp b/base/shell/explorer/res/icoalig8.bmp similarity index 100% rename from reactos/base/shell/explorer/res/icoalig8.bmp rename to base/shell/explorer/res/icoalig8.bmp diff --git a/reactos/base/shell/explorer/res/icoalig9.bmp b/base/shell/explorer/res/icoalig9.bmp similarity index 100% rename from reactos/base/shell/explorer/res/icoalig9.bmp rename to base/shell/explorer/res/icoalig9.bmp diff --git a/reactos/base/shell/explorer/res/images.bmp b/base/shell/explorer/res/images.bmp similarity index 100% rename from reactos/base/shell/explorer/res/images.bmp rename to base/shell/explorer/res/images.bmp diff --git a/reactos/base/shell/explorer/res/info.ico b/base/shell/explorer/res/info.ico similarity index 100% rename from reactos/base/shell/explorer/res/info.ico rename to base/shell/explorer/res/info.ico diff --git a/reactos/base/shell/explorer/res/logoff.ico b/base/shell/explorer/res/logoff.ico similarity index 100% rename from reactos/base/shell/explorer/res/logoff.ico rename to base/shell/explorer/res/logoff.ico diff --git a/reactos/base/shell/explorer/res/logov.bmp b/base/shell/explorer/res/logov.bmp similarity index 100% rename from reactos/base/shell/explorer/res/logov.bmp rename to base/shell/explorer/res/logov.bmp diff --git a/reactos/base/shell/explorer/res/logov.psd b/base/shell/explorer/res/logov.psd similarity index 100% rename from reactos/base/shell/explorer/res/logov.psd rename to base/shell/explorer/res/logov.psd diff --git a/reactos/base/shell/explorer/res/logov16.bmp b/base/shell/explorer/res/logov16.bmp similarity index 100% rename from reactos/base/shell/explorer/res/logov16.bmp rename to base/shell/explorer/res/logov16.bmp diff --git a/reactos/base/shell/explorer/res/logov256.bmp b/base/shell/explorer/res/logov256.bmp similarity index 100% rename from reactos/base/shell/explorer/res/logov256.bmp rename to base/shell/explorer/res/logov256.bmp diff --git a/reactos/base/shell/explorer/res/mdi.bmp b/base/shell/explorer/res/mdi.bmp similarity index 100% rename from reactos/base/shell/explorer/res/mdi.bmp rename to base/shell/explorer/res/mdi.bmp diff --git a/reactos/base/shell/explorer/res/minimize.ico b/base/shell/explorer/res/minimize.ico similarity index 100% rename from reactos/base/shell/explorer/res/minimize.ico rename to base/shell/explorer/res/minimize.ico diff --git a/reactos/base/shell/explorer/res/network-conns.ico b/base/shell/explorer/res/network-conns.ico similarity index 100% rename from reactos/base/shell/explorer/res/network-conns.ico rename to base/shell/explorer/res/network-conns.ico diff --git a/reactos/base/shell/explorer/res/network.ico b/base/shell/explorer/res/network.ico similarity index 100% rename from reactos/base/shell/explorer/res/network.ico rename to base/shell/explorer/res/network.ico diff --git a/reactos/base/shell/explorer/res/notify_l.ico b/base/shell/explorer/res/notify_l.ico similarity index 100% rename from reactos/base/shell/explorer/res/notify_l.ico rename to base/shell/explorer/res/notify_l.ico diff --git a/reactos/base/shell/explorer/res/notify_r.ico b/base/shell/explorer/res/notify_r.ico similarity index 100% rename from reactos/base/shell/explorer/res/notify_r.ico rename to base/shell/explorer/res/notify_r.ico diff --git a/reactos/base/shell/explorer/res/printer.ico b/base/shell/explorer/res/printer.ico similarity index 100% rename from reactos/base/shell/explorer/res/printer.ico rename to base/shell/explorer/res/printer.ico diff --git a/reactos/base/shell/explorer/res/reactos.ico b/base/shell/explorer/res/reactos.ico similarity index 100% rename from reactos/base/shell/explorer/res/reactos.ico rename to base/shell/explorer/res/reactos.ico diff --git a/reactos/base/shell/explorer/res/recent-documents.ico b/base/shell/explorer/res/recent-documents.ico similarity index 100% rename from reactos/base/shell/explorer/res/recent-documents.ico rename to base/shell/explorer/res/recent-documents.ico diff --git a/reactos/base/shell/explorer/res/restart.ico b/base/shell/explorer/res/restart.ico similarity index 100% rename from reactos/base/shell/explorer/res/restart.ico rename to base/shell/explorer/res/restart.ico diff --git a/reactos/base/shell/explorer/res/ros-big.ico b/base/shell/explorer/res/ros-big.ico similarity index 100% rename from reactos/base/shell/explorer/res/ros-big.ico rename to base/shell/explorer/res/ros-big.ico diff --git a/reactos/base/shell/explorer/res/sdi.bmp b/base/shell/explorer/res/sdi.bmp similarity index 100% rename from reactos/base/shell/explorer/res/sdi.bmp rename to base/shell/explorer/res/sdi.bmp diff --git a/reactos/base/shell/explorer/res/search-doc.ico b/base/shell/explorer/res/search-doc.ico similarity index 100% rename from reactos/base/shell/explorer/res/search-doc.ico rename to base/shell/explorer/res/search-doc.ico diff --git a/reactos/base/shell/explorer/res/search.ico b/base/shell/explorer/res/search.ico similarity index 100% rename from reactos/base/shell/explorer/res/search.ico rename to base/shell/explorer/res/search.ico diff --git a/reactos/base/shell/explorer/res/shutdown.ico b/base/shell/explorer/res/shutdown.ico similarity index 100% rename from reactos/base/shell/explorer/res/shutdown.ico rename to base/shell/explorer/res/shutdown.ico diff --git a/reactos/base/shell/explorer/res/speaker.ico b/base/shell/explorer/res/speaker.ico similarity index 100% rename from reactos/base/shell/explorer/res/speaker.ico rename to base/shell/explorer/res/speaker.ico diff --git a/reactos/base/shell/explorer/res/startmenu.ico b/base/shell/explorer/res/startmenu.ico similarity index 100% rename from reactos/base/shell/explorer/res/startmenu.ico rename to base/shell/explorer/res/startmenu.ico diff --git a/reactos/base/shell/explorer/res/toolbar.bmp b/base/shell/explorer/res/toolbar.bmp similarity index 100% rename from reactos/base/shell/explorer/res/toolbar.bmp rename to base/shell/explorer/res/toolbar.bmp diff --git a/reactos/base/shell/explorer/resource.h b/base/shell/explorer/resource.h similarity index 100% rename from reactos/base/shell/explorer/resource.h rename to base/shell/explorer/resource.h diff --git a/reactos/base/shell/explorer/rosshell.dsp b/base/shell/explorer/rosshell.dsp similarity index 100% rename from reactos/base/shell/explorer/rosshell.dsp rename to base/shell/explorer/rosshell.dsp diff --git a/reactos/base/shell/explorer/rosshell.dsw b/base/shell/explorer/rosshell.dsw similarity index 100% rename from reactos/base/shell/explorer/rosshell.dsw rename to base/shell/explorer/rosshell.dsw diff --git a/reactos/base/shell/explorer/services/shellservices.cpp b/base/shell/explorer/services/shellservices.cpp similarity index 100% rename from reactos/base/shell/explorer/services/shellservices.cpp rename to base/shell/explorer/services/shellservices.cpp diff --git a/reactos/base/shell/explorer/services/shellservices.h b/base/shell/explorer/services/shellservices.h similarity index 100% rename from reactos/base/shell/explorer/services/shellservices.h rename to base/shell/explorer/services/shellservices.h diff --git a/reactos/base/shell/explorer/services/startup.c b/base/shell/explorer/services/startup.c similarity index 100% rename from reactos/base/shell/explorer/services/startup.c rename to base/shell/explorer/services/startup.c diff --git a/reactos/base/shell/explorer/shell/entries.cpp b/base/shell/explorer/shell/entries.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/entries.cpp rename to base/shell/explorer/shell/entries.cpp diff --git a/reactos/base/shell/explorer/shell/entries.h b/base/shell/explorer/shell/entries.h similarity index 100% rename from reactos/base/shell/explorer/shell/entries.h rename to base/shell/explorer/shell/entries.h diff --git a/reactos/base/shell/explorer/shell/fatfs.cpp b/base/shell/explorer/shell/fatfs.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/fatfs.cpp rename to base/shell/explorer/shell/fatfs.cpp diff --git a/reactos/base/shell/explorer/shell/fatfs.h b/base/shell/explorer/shell/fatfs.h similarity index 100% rename from reactos/base/shell/explorer/shell/fatfs.h rename to base/shell/explorer/shell/fatfs.h diff --git a/reactos/base/shell/explorer/shell/filechild.cpp b/base/shell/explorer/shell/filechild.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/filechild.cpp rename to base/shell/explorer/shell/filechild.cpp diff --git a/reactos/base/shell/explorer/shell/filechild.h b/base/shell/explorer/shell/filechild.h similarity index 100% rename from reactos/base/shell/explorer/shell/filechild.h rename to base/shell/explorer/shell/filechild.h diff --git a/reactos/base/shell/explorer/shell/mainframe.cpp b/base/shell/explorer/shell/mainframe.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/mainframe.cpp rename to base/shell/explorer/shell/mainframe.cpp diff --git a/reactos/base/shell/explorer/shell/mainframe.h b/base/shell/explorer/shell/mainframe.h similarity index 100% rename from reactos/base/shell/explorer/shell/mainframe.h rename to base/shell/explorer/shell/mainframe.h diff --git a/reactos/base/shell/explorer/shell/ntobjfs.cpp b/base/shell/explorer/shell/ntobjfs.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/ntobjfs.cpp rename to base/shell/explorer/shell/ntobjfs.cpp diff --git a/reactos/base/shell/explorer/shell/ntobjfs.h b/base/shell/explorer/shell/ntobjfs.h similarity index 100% rename from reactos/base/shell/explorer/shell/ntobjfs.h rename to base/shell/explorer/shell/ntobjfs.h diff --git a/reactos/base/shell/explorer/shell/pane.cpp b/base/shell/explorer/shell/pane.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/pane.cpp rename to base/shell/explorer/shell/pane.cpp diff --git a/reactos/base/shell/explorer/shell/pane.h b/base/shell/explorer/shell/pane.h similarity index 100% rename from reactos/base/shell/explorer/shell/pane.h rename to base/shell/explorer/shell/pane.h diff --git a/reactos/base/shell/explorer/shell/regfs.cpp b/base/shell/explorer/shell/regfs.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/regfs.cpp rename to base/shell/explorer/shell/regfs.cpp diff --git a/reactos/base/shell/explorer/shell/regfs.h b/base/shell/explorer/shell/regfs.h similarity index 100% rename from reactos/base/shell/explorer/shell/regfs.h rename to base/shell/explorer/shell/regfs.h diff --git a/reactos/base/shell/explorer/shell/shellbrowser.cpp b/base/shell/explorer/shell/shellbrowser.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/shellbrowser.cpp rename to base/shell/explorer/shell/shellbrowser.cpp diff --git a/reactos/base/shell/explorer/shell/shellbrowser.h b/base/shell/explorer/shell/shellbrowser.h similarity index 100% rename from reactos/base/shell/explorer/shell/shellbrowser.h rename to base/shell/explorer/shell/shellbrowser.h diff --git a/reactos/base/shell/explorer/shell/shellfs.cpp b/base/shell/explorer/shell/shellfs.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/shellfs.cpp rename to base/shell/explorer/shell/shellfs.cpp diff --git a/reactos/base/shell/explorer/shell/shellfs.h b/base/shell/explorer/shell/shellfs.h similarity index 100% rename from reactos/base/shell/explorer/shell/shellfs.h rename to base/shell/explorer/shell/shellfs.h diff --git a/reactos/base/shell/explorer/shell/unixfs.cpp b/base/shell/explorer/shell/unixfs.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/unixfs.cpp rename to base/shell/explorer/shell/unixfs.cpp diff --git a/reactos/base/shell/explorer/shell/unixfs.h b/base/shell/explorer/shell/unixfs.h similarity index 100% rename from reactos/base/shell/explorer/shell/unixfs.h rename to base/shell/explorer/shell/unixfs.h diff --git a/reactos/base/shell/explorer/shell/webchild.cpp b/base/shell/explorer/shell/webchild.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/webchild.cpp rename to base/shell/explorer/shell/webchild.cpp diff --git a/reactos/base/shell/explorer/shell/webchild.h b/base/shell/explorer/shell/webchild.h similarity index 100% rename from reactos/base/shell/explorer/shell/webchild.h rename to base/shell/explorer/shell/webchild.h diff --git a/reactos/base/shell/explorer/shell/winfs.cpp b/base/shell/explorer/shell/winfs.cpp similarity index 100% rename from reactos/base/shell/explorer/shell/winfs.cpp rename to base/shell/explorer/shell/winfs.cpp diff --git a/reactos/base/shell/explorer/shell/winfs.h b/base/shell/explorer/shell/winfs.h similarity index 100% rename from reactos/base/shell/explorer/shell/winfs.h rename to base/shell/explorer/shell/winfs.h diff --git a/reactos/base/shell/explorer/taskbar/desktopbar.cpp b/base/shell/explorer/taskbar/desktopbar.cpp similarity index 100% rename from reactos/base/shell/explorer/taskbar/desktopbar.cpp rename to base/shell/explorer/taskbar/desktopbar.cpp diff --git a/reactos/base/shell/explorer/taskbar/desktopbar.h b/base/shell/explorer/taskbar/desktopbar.h similarity index 100% rename from reactos/base/shell/explorer/taskbar/desktopbar.h rename to base/shell/explorer/taskbar/desktopbar.h diff --git a/reactos/base/shell/explorer/taskbar/favorites.cpp b/base/shell/explorer/taskbar/favorites.cpp similarity index 100% rename from reactos/base/shell/explorer/taskbar/favorites.cpp rename to base/shell/explorer/taskbar/favorites.cpp diff --git a/reactos/base/shell/explorer/taskbar/favorites.h b/base/shell/explorer/taskbar/favorites.h similarity index 100% rename from reactos/base/shell/explorer/taskbar/favorites.h rename to base/shell/explorer/taskbar/favorites.h diff --git a/reactos/base/shell/explorer/taskbar/quicklaunch.cpp b/base/shell/explorer/taskbar/quicklaunch.cpp similarity index 100% rename from reactos/base/shell/explorer/taskbar/quicklaunch.cpp rename to base/shell/explorer/taskbar/quicklaunch.cpp diff --git a/reactos/base/shell/explorer/taskbar/quicklaunch.h b/base/shell/explorer/taskbar/quicklaunch.h similarity index 100% rename from reactos/base/shell/explorer/taskbar/quicklaunch.h rename to base/shell/explorer/taskbar/quicklaunch.h diff --git a/reactos/base/shell/explorer/taskbar/startmenu.cpp b/base/shell/explorer/taskbar/startmenu.cpp similarity index 100% rename from reactos/base/shell/explorer/taskbar/startmenu.cpp rename to base/shell/explorer/taskbar/startmenu.cpp diff --git a/reactos/base/shell/explorer/taskbar/startmenu.h b/base/shell/explorer/taskbar/startmenu.h similarity index 100% rename from reactos/base/shell/explorer/taskbar/startmenu.h rename to base/shell/explorer/taskbar/startmenu.h diff --git a/reactos/base/shell/explorer/taskbar/taskbar.cpp b/base/shell/explorer/taskbar/taskbar.cpp similarity index 100% rename from reactos/base/shell/explorer/taskbar/taskbar.cpp rename to base/shell/explorer/taskbar/taskbar.cpp diff --git a/reactos/base/shell/explorer/taskbar/taskbar.h b/base/shell/explorer/taskbar/taskbar.h similarity index 100% rename from reactos/base/shell/explorer/taskbar/taskbar.h rename to base/shell/explorer/taskbar/taskbar.h diff --git a/reactos/base/shell/explorer/taskbar/traynotify.cpp b/base/shell/explorer/taskbar/traynotify.cpp similarity index 100% rename from reactos/base/shell/explorer/taskbar/traynotify.cpp rename to base/shell/explorer/taskbar/traynotify.cpp diff --git a/reactos/base/shell/explorer/taskbar/traynotify.h b/base/shell/explorer/taskbar/traynotify.h similarity index 100% rename from reactos/base/shell/explorer/taskbar/traynotify.h rename to base/shell/explorer/taskbar/traynotify.h diff --git a/reactos/base/shell/explorer/utility/dragdropimpl.cpp b/base/shell/explorer/utility/dragdropimpl.cpp similarity index 100% rename from reactos/base/shell/explorer/utility/dragdropimpl.cpp rename to base/shell/explorer/utility/dragdropimpl.cpp diff --git a/reactos/base/shell/explorer/utility/dragdropimpl.h b/base/shell/explorer/utility/dragdropimpl.h similarity index 100% rename from reactos/base/shell/explorer/utility/dragdropimpl.h rename to base/shell/explorer/utility/dragdropimpl.h diff --git a/reactos/base/shell/explorer/utility/shellbrowserimpl.cpp b/base/shell/explorer/utility/shellbrowserimpl.cpp similarity index 100% rename from reactos/base/shell/explorer/utility/shellbrowserimpl.cpp rename to base/shell/explorer/utility/shellbrowserimpl.cpp diff --git a/reactos/base/shell/explorer/utility/shellbrowserimpl.h b/base/shell/explorer/utility/shellbrowserimpl.h similarity index 100% rename from reactos/base/shell/explorer/utility/shellbrowserimpl.h rename to base/shell/explorer/utility/shellbrowserimpl.h diff --git a/reactos/base/shell/explorer/utility/shellclasses.cpp b/base/shell/explorer/utility/shellclasses.cpp similarity index 100% rename from reactos/base/shell/explorer/utility/shellclasses.cpp rename to base/shell/explorer/utility/shellclasses.cpp diff --git a/reactos/base/shell/explorer/utility/shellclasses.dsp b/base/shell/explorer/utility/shellclasses.dsp similarity index 100% rename from reactos/base/shell/explorer/utility/shellclasses.dsp rename to base/shell/explorer/utility/shellclasses.dsp diff --git a/reactos/base/shell/explorer/utility/shellclasses.dsw b/base/shell/explorer/utility/shellclasses.dsw similarity index 100% rename from reactos/base/shell/explorer/utility/shellclasses.dsw rename to base/shell/explorer/utility/shellclasses.dsw diff --git a/reactos/base/shell/explorer/utility/shellclasses.h b/base/shell/explorer/utility/shellclasses.h similarity index 100% rename from reactos/base/shell/explorer/utility/shellclasses.h rename to base/shell/explorer/utility/shellclasses.h diff --git a/reactos/base/shell/explorer/utility/shelltests.cpp b/base/shell/explorer/utility/shelltests.cpp similarity index 100% rename from reactos/base/shell/explorer/utility/shelltests.cpp rename to base/shell/explorer/utility/shelltests.cpp diff --git a/reactos/base/shell/explorer/utility/treedroptarget.h b/base/shell/explorer/utility/treedroptarget.h similarity index 100% rename from reactos/base/shell/explorer/utility/treedroptarget.h rename to base/shell/explorer/utility/treedroptarget.h diff --git a/reactos/base/shell/explorer/utility/utility.cpp b/base/shell/explorer/utility/utility.cpp similarity index 100% rename from reactos/base/shell/explorer/utility/utility.cpp rename to base/shell/explorer/utility/utility.cpp diff --git a/reactos/base/shell/explorer/utility/utility.h b/base/shell/explorer/utility/utility.h similarity index 100% rename from reactos/base/shell/explorer/utility/utility.h rename to base/shell/explorer/utility/utility.h diff --git a/reactos/base/shell/explorer/utility/window.cpp b/base/shell/explorer/utility/window.cpp similarity index 100% rename from reactos/base/shell/explorer/utility/window.cpp rename to base/shell/explorer/utility/window.cpp diff --git a/reactos/base/shell/explorer/utility/window.h b/base/shell/explorer/utility/window.h similarity index 100% rename from reactos/base/shell/explorer/utility/window.h rename to base/shell/explorer/utility/window.h diff --git a/reactos/base/shell/explorer/utility/xmlstorage.cpp b/base/shell/explorer/utility/xmlstorage.cpp similarity index 100% rename from reactos/base/shell/explorer/utility/xmlstorage.cpp rename to base/shell/explorer/utility/xmlstorage.cpp diff --git a/reactos/base/shell/explorer/utility/xmlstorage.h b/base/shell/explorer/utility/xmlstorage.h similarity index 100% rename from reactos/base/shell/explorer/utility/xmlstorage.h rename to base/shell/explorer/utility/xmlstorage.h diff --git a/reactos/base/shell/explorer/utility/xs-native.cpp b/base/shell/explorer/utility/xs-native.cpp similarity index 100% rename from reactos/base/shell/explorer/utility/xs-native.cpp rename to base/shell/explorer/utility/xs-native.cpp diff --git a/reactos/base/shell/explorer/wexplorer.dsw b/base/shell/explorer/wexplorer.dsw similarity index 100% rename from reactos/base/shell/explorer/wexplorer.dsw rename to base/shell/explorer/wexplorer.dsw diff --git a/reactos/base/system/CMakeLists.txt b/base/system/CMakeLists.txt similarity index 100% rename from reactos/base/system/CMakeLists.txt rename to base/system/CMakeLists.txt diff --git a/reactos/base/system/autochk/CMakeLists.txt b/base/system/autochk/CMakeLists.txt similarity index 100% rename from reactos/base/system/autochk/CMakeLists.txt rename to base/system/autochk/CMakeLists.txt diff --git a/reactos/base/system/autochk/autochk.c b/base/system/autochk/autochk.c similarity index 100% rename from reactos/base/system/autochk/autochk.c rename to base/system/autochk/autochk.c diff --git a/reactos/base/system/autochk/autochk.rc b/base/system/autochk/autochk.rc similarity index 100% rename from reactos/base/system/autochk/autochk.rc rename to base/system/autochk/autochk.rc diff --git a/reactos/base/system/bootok/CMakeLists.txt b/base/system/bootok/CMakeLists.txt similarity index 100% rename from reactos/base/system/bootok/CMakeLists.txt rename to base/system/bootok/CMakeLists.txt diff --git a/reactos/base/system/bootok/bootok.c b/base/system/bootok/bootok.c similarity index 100% rename from reactos/base/system/bootok/bootok.c rename to base/system/bootok/bootok.c diff --git a/reactos/base/system/bootok/bootok.rc b/base/system/bootok/bootok.rc similarity index 100% rename from reactos/base/system/bootok/bootok.rc rename to base/system/bootok/bootok.rc diff --git a/reactos/base/system/diskpart/CMakeLists.txt b/base/system/diskpart/CMakeLists.txt similarity index 100% rename from reactos/base/system/diskpart/CMakeLists.txt rename to base/system/diskpart/CMakeLists.txt diff --git a/reactos/base/system/diskpart/active.c b/base/system/diskpart/active.c similarity index 100% rename from reactos/base/system/diskpart/active.c rename to base/system/diskpart/active.c diff --git a/reactos/base/system/diskpart/add.c b/base/system/diskpart/add.c similarity index 100% rename from reactos/base/system/diskpart/add.c rename to base/system/diskpart/add.c diff --git a/reactos/base/system/diskpart/assign.c b/base/system/diskpart/assign.c similarity index 100% rename from reactos/base/system/diskpart/assign.c rename to base/system/diskpart/assign.c diff --git a/reactos/base/system/diskpart/attach.c b/base/system/diskpart/attach.c similarity index 100% rename from reactos/base/system/diskpart/attach.c rename to base/system/diskpart/attach.c diff --git a/reactos/base/system/diskpart/attributes.c b/base/system/diskpart/attributes.c similarity index 100% rename from reactos/base/system/diskpart/attributes.c rename to base/system/diskpart/attributes.c diff --git a/reactos/base/system/diskpart/automount.c b/base/system/diskpart/automount.c similarity index 100% rename from reactos/base/system/diskpart/automount.c rename to base/system/diskpart/automount.c diff --git a/reactos/base/system/diskpart/break.c b/base/system/diskpart/break.c similarity index 100% rename from reactos/base/system/diskpart/break.c rename to base/system/diskpart/break.c diff --git a/reactos/base/system/diskpart/clean.c b/base/system/diskpart/clean.c similarity index 100% rename from reactos/base/system/diskpart/clean.c rename to base/system/diskpart/clean.c diff --git a/reactos/base/system/diskpart/compact.c b/base/system/diskpart/compact.c similarity index 100% rename from reactos/base/system/diskpart/compact.c rename to base/system/diskpart/compact.c diff --git a/reactos/base/system/diskpart/convert.c b/base/system/diskpart/convert.c similarity index 100% rename from reactos/base/system/diskpart/convert.c rename to base/system/diskpart/convert.c diff --git a/reactos/base/system/diskpart/create.c b/base/system/diskpart/create.c similarity index 100% rename from reactos/base/system/diskpart/create.c rename to base/system/diskpart/create.c diff --git a/reactos/base/system/diskpart/delete.c b/base/system/diskpart/delete.c similarity index 100% rename from reactos/base/system/diskpart/delete.c rename to base/system/diskpart/delete.c diff --git a/reactos/base/system/diskpart/detach.c b/base/system/diskpart/detach.c similarity index 100% rename from reactos/base/system/diskpart/detach.c rename to base/system/diskpart/detach.c diff --git a/reactos/base/system/diskpart/detail.c b/base/system/diskpart/detail.c similarity index 100% rename from reactos/base/system/diskpart/detail.c rename to base/system/diskpart/detail.c diff --git a/reactos/base/system/diskpart/diskpart.c b/base/system/diskpart/diskpart.c similarity index 100% rename from reactos/base/system/diskpart/diskpart.c rename to base/system/diskpart/diskpart.c diff --git a/reactos/base/system/diskpart/diskpart.h b/base/system/diskpart/diskpart.h similarity index 100% rename from reactos/base/system/diskpart/diskpart.h rename to base/system/diskpart/diskpart.h diff --git a/reactos/base/system/diskpart/diskpart.rc b/base/system/diskpart/diskpart.rc similarity index 100% rename from reactos/base/system/diskpart/diskpart.rc rename to base/system/diskpart/diskpart.rc diff --git a/reactos/base/system/diskpart/expand.c b/base/system/diskpart/expand.c similarity index 100% rename from reactos/base/system/diskpart/expand.c rename to base/system/diskpart/expand.c diff --git a/reactos/base/system/diskpart/extend.c b/base/system/diskpart/extend.c similarity index 100% rename from reactos/base/system/diskpart/extend.c rename to base/system/diskpart/extend.c diff --git a/reactos/base/system/diskpart/filesystems.c b/base/system/diskpart/filesystems.c similarity index 100% rename from reactos/base/system/diskpart/filesystems.c rename to base/system/diskpart/filesystems.c diff --git a/reactos/base/system/diskpart/format.c b/base/system/diskpart/format.c similarity index 100% rename from reactos/base/system/diskpart/format.c rename to base/system/diskpart/format.c diff --git a/reactos/base/system/diskpart/gpt.c b/base/system/diskpart/gpt.c similarity index 100% rename from reactos/base/system/diskpart/gpt.c rename to base/system/diskpart/gpt.c diff --git a/reactos/base/system/diskpart/help.c b/base/system/diskpart/help.c similarity index 100% rename from reactos/base/system/diskpart/help.c rename to base/system/diskpart/help.c diff --git a/reactos/base/system/diskpart/import.c b/base/system/diskpart/import.c similarity index 100% rename from reactos/base/system/diskpart/import.c rename to base/system/diskpart/import.c diff --git a/reactos/base/system/diskpart/inactive.c b/base/system/diskpart/inactive.c similarity index 100% rename from reactos/base/system/diskpart/inactive.c rename to base/system/diskpart/inactive.c diff --git a/reactos/base/system/diskpart/interpreter.c b/base/system/diskpart/interpreter.c similarity index 100% rename from reactos/base/system/diskpart/interpreter.c rename to base/system/diskpart/interpreter.c diff --git a/reactos/base/system/diskpart/lang/en-US.rc b/base/system/diskpart/lang/en-US.rc similarity index 100% rename from reactos/base/system/diskpart/lang/en-US.rc rename to base/system/diskpart/lang/en-US.rc diff --git a/reactos/base/system/diskpart/lang/ro-RO.rc b/base/system/diskpart/lang/ro-RO.rc similarity index 100% rename from reactos/base/system/diskpart/lang/ro-RO.rc rename to base/system/diskpart/lang/ro-RO.rc diff --git a/reactos/base/system/diskpart/list.c b/base/system/diskpart/list.c similarity index 100% rename from reactos/base/system/diskpart/list.c rename to base/system/diskpart/list.c diff --git a/reactos/base/system/diskpart/merge.c b/base/system/diskpart/merge.c similarity index 100% rename from reactos/base/system/diskpart/merge.c rename to base/system/diskpart/merge.c diff --git a/reactos/base/system/diskpart/offline.c b/base/system/diskpart/offline.c similarity index 100% rename from reactos/base/system/diskpart/offline.c rename to base/system/diskpart/offline.c diff --git a/reactos/base/system/diskpart/online.c b/base/system/diskpart/online.c similarity index 100% rename from reactos/base/system/diskpart/online.c rename to base/system/diskpart/online.c diff --git a/reactos/base/system/diskpart/recover.c b/base/system/diskpart/recover.c similarity index 100% rename from reactos/base/system/diskpart/recover.c rename to base/system/diskpart/recover.c diff --git a/reactos/base/system/diskpart/remove.c b/base/system/diskpart/remove.c similarity index 100% rename from reactos/base/system/diskpart/remove.c rename to base/system/diskpart/remove.c diff --git a/reactos/base/system/diskpart/repair.c b/base/system/diskpart/repair.c similarity index 100% rename from reactos/base/system/diskpart/repair.c rename to base/system/diskpart/repair.c diff --git a/reactos/base/system/diskpart/rescan.c b/base/system/diskpart/rescan.c similarity index 100% rename from reactos/base/system/diskpart/rescan.c rename to base/system/diskpart/rescan.c diff --git a/reactos/base/system/diskpart/resource.h b/base/system/diskpart/resource.h similarity index 100% rename from reactos/base/system/diskpart/resource.h rename to base/system/diskpart/resource.h diff --git a/reactos/base/system/diskpart/retain.c b/base/system/diskpart/retain.c similarity index 100% rename from reactos/base/system/diskpart/retain.c rename to base/system/diskpart/retain.c diff --git a/reactos/base/system/diskpart/san.c b/base/system/diskpart/san.c similarity index 100% rename from reactos/base/system/diskpart/san.c rename to base/system/diskpart/san.c diff --git a/reactos/base/system/diskpart/select.c b/base/system/diskpart/select.c similarity index 100% rename from reactos/base/system/diskpart/select.c rename to base/system/diskpart/select.c diff --git a/reactos/base/system/diskpart/setid.c b/base/system/diskpart/setid.c similarity index 100% rename from reactos/base/system/diskpart/setid.c rename to base/system/diskpart/setid.c diff --git a/reactos/base/system/diskpart/shrink.c b/base/system/diskpart/shrink.c similarity index 100% rename from reactos/base/system/diskpart/shrink.c rename to base/system/diskpart/shrink.c diff --git a/reactos/base/system/diskpart/uniqueid.c b/base/system/diskpart/uniqueid.c similarity index 100% rename from reactos/base/system/diskpart/uniqueid.c rename to base/system/diskpart/uniqueid.c diff --git a/reactos/base/system/expand/CMakeLists.txt b/base/system/expand/CMakeLists.txt similarity index 100% rename from reactos/base/system/expand/CMakeLists.txt rename to base/system/expand/CMakeLists.txt diff --git a/reactos/base/system/expand/expand.c b/base/system/expand/expand.c similarity index 100% rename from reactos/base/system/expand/expand.c rename to base/system/expand/expand.c diff --git a/reactos/base/system/expand/expand.rc b/base/system/expand/expand.rc similarity index 100% rename from reactos/base/system/expand/expand.rc rename to base/system/expand/expand.rc diff --git a/reactos/base/system/format/CMakeLists.txt b/base/system/format/CMakeLists.txt similarity index 100% rename from reactos/base/system/format/CMakeLists.txt rename to base/system/format/CMakeLists.txt diff --git a/reactos/base/system/format/format.c b/base/system/format/format.c similarity index 100% rename from reactos/base/system/format/format.c rename to base/system/format/format.c diff --git a/reactos/base/system/format/format.rc b/base/system/format/format.rc similarity index 100% rename from reactos/base/system/format/format.rc rename to base/system/format/format.rc diff --git a/reactos/base/system/format/lang/bg-BG.rc b/base/system/format/lang/bg-BG.rc similarity index 100% rename from reactos/base/system/format/lang/bg-BG.rc rename to base/system/format/lang/bg-BG.rc diff --git a/reactos/base/system/format/lang/cs-CZ.rc b/base/system/format/lang/cs-CZ.rc similarity index 100% rename from reactos/base/system/format/lang/cs-CZ.rc rename to base/system/format/lang/cs-CZ.rc diff --git a/reactos/base/system/format/lang/de-DE.rc b/base/system/format/lang/de-DE.rc similarity index 100% rename from reactos/base/system/format/lang/de-DE.rc rename to base/system/format/lang/de-DE.rc diff --git a/reactos/base/system/format/lang/el-GR.rc b/base/system/format/lang/el-GR.rc similarity index 100% rename from reactos/base/system/format/lang/el-GR.rc rename to base/system/format/lang/el-GR.rc diff --git a/reactos/base/system/format/lang/en-US.rc b/base/system/format/lang/en-US.rc similarity index 100% rename from reactos/base/system/format/lang/en-US.rc rename to base/system/format/lang/en-US.rc diff --git a/reactos/base/system/format/lang/es-ES.rc b/base/system/format/lang/es-ES.rc similarity index 100% rename from reactos/base/system/format/lang/es-ES.rc rename to base/system/format/lang/es-ES.rc diff --git a/reactos/base/system/format/lang/fr-FR.rc b/base/system/format/lang/fr-FR.rc similarity index 100% rename from reactos/base/system/format/lang/fr-FR.rc rename to base/system/format/lang/fr-FR.rc diff --git a/reactos/base/system/format/lang/hu-HU.rc b/base/system/format/lang/hu-HU.rc similarity index 100% rename from reactos/base/system/format/lang/hu-HU.rc rename to base/system/format/lang/hu-HU.rc diff --git a/reactos/base/system/format/lang/id-ID.rc b/base/system/format/lang/id-ID.rc similarity index 100% rename from reactos/base/system/format/lang/id-ID.rc rename to base/system/format/lang/id-ID.rc diff --git a/reactos/base/system/format/lang/it-IT.rc b/base/system/format/lang/it-IT.rc similarity index 100% rename from reactos/base/system/format/lang/it-IT.rc rename to base/system/format/lang/it-IT.rc diff --git a/reactos/base/system/format/lang/ja-JP.rc b/base/system/format/lang/ja-JP.rc similarity index 100% rename from reactos/base/system/format/lang/ja-JP.rc rename to base/system/format/lang/ja-JP.rc diff --git a/reactos/base/system/format/lang/lt-LT.rc b/base/system/format/lang/lt-LT.rc similarity index 100% rename from reactos/base/system/format/lang/lt-LT.rc rename to base/system/format/lang/lt-LT.rc diff --git a/reactos/base/system/format/lang/no-NO.rc b/base/system/format/lang/no-NO.rc similarity index 100% rename from reactos/base/system/format/lang/no-NO.rc rename to base/system/format/lang/no-NO.rc diff --git a/reactos/base/system/format/lang/pl-PL.rc b/base/system/format/lang/pl-PL.rc similarity index 100% rename from reactos/base/system/format/lang/pl-PL.rc rename to base/system/format/lang/pl-PL.rc diff --git a/reactos/base/system/format/lang/ro-RO.rc b/base/system/format/lang/ro-RO.rc similarity index 100% rename from reactos/base/system/format/lang/ro-RO.rc rename to base/system/format/lang/ro-RO.rc diff --git a/reactos/base/system/format/lang/ru-RU.rc b/base/system/format/lang/ru-RU.rc similarity index 100% rename from reactos/base/system/format/lang/ru-RU.rc rename to base/system/format/lang/ru-RU.rc diff --git a/reactos/base/system/format/lang/sk-SK.rc b/base/system/format/lang/sk-SK.rc similarity index 100% rename from reactos/base/system/format/lang/sk-SK.rc rename to base/system/format/lang/sk-SK.rc diff --git a/reactos/base/system/format/lang/uk-UA.rc b/base/system/format/lang/uk-UA.rc similarity index 100% rename from reactos/base/system/format/lang/uk-UA.rc rename to base/system/format/lang/uk-UA.rc diff --git a/reactos/base/system/format/lang/zh-CN.rc b/base/system/format/lang/zh-CN.rc similarity index 100% rename from reactos/base/system/format/lang/zh-CN.rc rename to base/system/format/lang/zh-CN.rc diff --git a/reactos/base/system/format/resource.h b/base/system/format/resource.h similarity index 100% rename from reactos/base/system/format/resource.h rename to base/system/format/resource.h diff --git a/reactos/base/system/format/rsrc.rc b/base/system/format/rsrc.rc similarity index 100% rename from reactos/base/system/format/rsrc.rc rename to base/system/format/rsrc.rc diff --git a/reactos/base/system/logonui/NT5design.c b/base/system/logonui/NT5design.c similarity index 100% rename from reactos/base/system/logonui/NT5design.c rename to base/system/logonui/NT5design.c diff --git a/reactos/base/system/logonui/NT6design.c b/base/system/logonui/NT6design.c similarity index 100% rename from reactos/base/system/logonui/NT6design.c rename to base/system/logonui/NT6design.c diff --git a/reactos/base/system/logonui/lang/en-US.rc b/base/system/logonui/lang/en-US.rc similarity index 100% rename from reactos/base/system/logonui/lang/en-US.rc rename to base/system/logonui/lang/en-US.rc diff --git a/reactos/base/system/logonui/logonui.c b/base/system/logonui/logonui.c similarity index 100% rename from reactos/base/system/logonui/logonui.c rename to base/system/logonui/logonui.c diff --git a/reactos/base/system/logonui/logonui.h b/base/system/logonui/logonui.h similarity index 100% rename from reactos/base/system/logonui/logonui.h rename to base/system/logonui/logonui.h diff --git a/reactos/base/system/logonui/logonui.rc b/base/system/logonui/logonui.rc similarity index 100% rename from reactos/base/system/logonui/logonui.rc rename to base/system/logonui/logonui.rc diff --git a/reactos/base/system/logonui/res/100.bmp b/base/system/logonui/res/100.bmp similarity index 100% rename from reactos/base/system/logonui/res/100.bmp rename to base/system/logonui/res/100.bmp diff --git a/reactos/base/system/logonui/res/123.bmp b/base/system/logonui/res/123.bmp similarity index 100% rename from reactos/base/system/logonui/res/123.bmp rename to base/system/logonui/res/123.bmp diff --git a/reactos/base/system/logonui/res/125.bmp b/base/system/logonui/res/125.bmp similarity index 100% rename from reactos/base/system/logonui/res/125.bmp rename to base/system/logonui/res/125.bmp diff --git a/reactos/base/system/logonui/res/126.bmp b/base/system/logonui/res/126.bmp similarity index 100% rename from reactos/base/system/logonui/res/126.bmp rename to base/system/logonui/res/126.bmp diff --git a/reactos/base/system/logonui/res/unknown.bmp b/base/system/logonui/res/unknown.bmp similarity index 100% rename from reactos/base/system/logonui/res/unknown.bmp rename to base/system/logonui/res/unknown.bmp diff --git a/reactos/base/system/logonui/res/unknown2.bmp b/base/system/logonui/res/unknown2.bmp similarity index 100% rename from reactos/base/system/logonui/res/unknown2.bmp rename to base/system/logonui/res/unknown2.bmp diff --git a/reactos/base/system/logonui/resource.h b/base/system/logonui/resource.h similarity index 100% rename from reactos/base/system/logonui/resource.h rename to base/system/logonui/resource.h diff --git a/reactos/base/system/logonui/rsrc.rc b/base/system/logonui/rsrc.rc similarity index 100% rename from reactos/base/system/logonui/rsrc.rc rename to base/system/logonui/rsrc.rc diff --git a/reactos/base/system/lsass/CMakeLists.txt b/base/system/lsass/CMakeLists.txt similarity index 100% rename from reactos/base/system/lsass/CMakeLists.txt rename to base/system/lsass/CMakeLists.txt diff --git a/reactos/base/system/lsass/lsass.c b/base/system/lsass/lsass.c similarity index 100% rename from reactos/base/system/lsass/lsass.c rename to base/system/lsass/lsass.c diff --git a/reactos/base/system/lsass/lsass.rc b/base/system/lsass/lsass.rc similarity index 100% rename from reactos/base/system/lsass/lsass.rc rename to base/system/lsass/lsass.rc diff --git a/reactos/base/system/msiexec/CMakeLists.txt b/base/system/msiexec/CMakeLists.txt similarity index 100% rename from reactos/base/system/msiexec/CMakeLists.txt rename to base/system/msiexec/CMakeLists.txt diff --git a/reactos/base/system/msiexec/msiexec.c b/base/system/msiexec/msiexec.c similarity index 100% rename from reactos/base/system/msiexec/msiexec.c rename to base/system/msiexec/msiexec.c diff --git a/reactos/base/system/msiexec/msiexec.ico b/base/system/msiexec/msiexec.ico similarity index 100% rename from reactos/base/system/msiexec/msiexec.ico rename to base/system/msiexec/msiexec.ico diff --git a/reactos/base/system/msiexec/rsrc.rc b/base/system/msiexec/rsrc.rc similarity index 100% rename from reactos/base/system/msiexec/rsrc.rc rename to base/system/msiexec/rsrc.rc diff --git a/reactos/base/system/msiexec/service.c b/base/system/msiexec/service.c similarity index 100% rename from reactos/base/system/msiexec/service.c rename to base/system/msiexec/service.c diff --git a/reactos/base/system/regsvr32/CMakeLists.txt b/base/system/regsvr32/CMakeLists.txt similarity index 100% rename from reactos/base/system/regsvr32/CMakeLists.txt rename to base/system/regsvr32/CMakeLists.txt diff --git a/reactos/base/system/regsvr32/lang/bg-BG.rc b/base/system/regsvr32/lang/bg-BG.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/bg-BG.rc rename to base/system/regsvr32/lang/bg-BG.rc diff --git a/reactos/base/system/regsvr32/lang/cs-CZ.rc b/base/system/regsvr32/lang/cs-CZ.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/cs-CZ.rc rename to base/system/regsvr32/lang/cs-CZ.rc diff --git a/reactos/base/system/regsvr32/lang/de-DE.rc b/base/system/regsvr32/lang/de-DE.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/de-DE.rc rename to base/system/regsvr32/lang/de-DE.rc diff --git a/reactos/base/system/regsvr32/lang/en-US.rc b/base/system/regsvr32/lang/en-US.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/en-US.rc rename to base/system/regsvr32/lang/en-US.rc diff --git a/reactos/base/system/regsvr32/lang/es-ES.rc b/base/system/regsvr32/lang/es-ES.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/es-ES.rc rename to base/system/regsvr32/lang/es-ES.rc diff --git a/reactos/base/system/regsvr32/lang/fr-FR.rc b/base/system/regsvr32/lang/fr-FR.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/fr-FR.rc rename to base/system/regsvr32/lang/fr-FR.rc diff --git a/reactos/base/system/regsvr32/lang/hu-HU.rc b/base/system/regsvr32/lang/hu-HU.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/hu-HU.rc rename to base/system/regsvr32/lang/hu-HU.rc diff --git a/reactos/base/system/regsvr32/lang/id-ID.rc b/base/system/regsvr32/lang/id-ID.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/id-ID.rc rename to base/system/regsvr32/lang/id-ID.rc diff --git a/reactos/base/system/regsvr32/lang/it-IT.rc b/base/system/regsvr32/lang/it-IT.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/it-IT.rc rename to base/system/regsvr32/lang/it-IT.rc diff --git a/reactos/base/system/regsvr32/lang/ja-JP.rc b/base/system/regsvr32/lang/ja-JP.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/ja-JP.rc rename to base/system/regsvr32/lang/ja-JP.rc diff --git a/reactos/base/system/regsvr32/lang/lt-LT.rc b/base/system/regsvr32/lang/lt-LT.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/lt-LT.rc rename to base/system/regsvr32/lang/lt-LT.rc diff --git a/reactos/base/system/regsvr32/lang/nl-NL.rc b/base/system/regsvr32/lang/nl-NL.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/nl-NL.rc rename to base/system/regsvr32/lang/nl-NL.rc diff --git a/reactos/base/system/regsvr32/lang/no-NO.rc b/base/system/regsvr32/lang/no-NO.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/no-NO.rc rename to base/system/regsvr32/lang/no-NO.rc diff --git a/reactos/base/system/regsvr32/lang/pl-PL.rc b/base/system/regsvr32/lang/pl-PL.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/pl-PL.rc rename to base/system/regsvr32/lang/pl-PL.rc diff --git a/reactos/base/system/regsvr32/lang/pt-BR.rc b/base/system/regsvr32/lang/pt-BR.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/pt-BR.rc rename to base/system/regsvr32/lang/pt-BR.rc diff --git a/reactos/base/system/regsvr32/lang/ro-RO.rc b/base/system/regsvr32/lang/ro-RO.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/ro-RO.rc rename to base/system/regsvr32/lang/ro-RO.rc diff --git a/reactos/base/system/regsvr32/lang/ru-RU.rc b/base/system/regsvr32/lang/ru-RU.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/ru-RU.rc rename to base/system/regsvr32/lang/ru-RU.rc diff --git a/reactos/base/system/regsvr32/lang/uk-UA.rc b/base/system/regsvr32/lang/uk-UA.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/uk-UA.rc rename to base/system/regsvr32/lang/uk-UA.rc diff --git a/reactos/base/system/regsvr32/lang/zh-CN.rc b/base/system/regsvr32/lang/zh-CN.rc similarity index 100% rename from reactos/base/system/regsvr32/lang/zh-CN.rc rename to base/system/regsvr32/lang/zh-CN.rc diff --git a/reactos/base/system/regsvr32/regsvr32.c b/base/system/regsvr32/regsvr32.c similarity index 100% rename from reactos/base/system/regsvr32/regsvr32.c rename to base/system/regsvr32/regsvr32.c diff --git a/reactos/base/system/regsvr32/regsvr32.rc b/base/system/regsvr32/regsvr32.rc similarity index 100% rename from reactos/base/system/regsvr32/regsvr32.rc rename to base/system/regsvr32/regsvr32.rc diff --git a/reactos/base/system/regsvr32/resource.h b/base/system/regsvr32/resource.h similarity index 100% rename from reactos/base/system/regsvr32/resource.h rename to base/system/regsvr32/resource.h diff --git a/reactos/base/system/regsvr32/rsrc.rc b/base/system/regsvr32/rsrc.rc similarity index 100% rename from reactos/base/system/regsvr32/rsrc.rc rename to base/system/regsvr32/rsrc.rc diff --git a/reactos/base/system/rundll32/CMakeLists.txt b/base/system/rundll32/CMakeLists.txt similarity index 100% rename from reactos/base/system/rundll32/CMakeLists.txt rename to base/system/rundll32/CMakeLists.txt diff --git a/reactos/base/system/rundll32/lang/bg-BG.rc b/base/system/rundll32/lang/bg-BG.rc similarity index 100% rename from reactos/base/system/rundll32/lang/bg-BG.rc rename to base/system/rundll32/lang/bg-BG.rc diff --git a/reactos/base/system/rundll32/lang/cs-CZ.rc b/base/system/rundll32/lang/cs-CZ.rc similarity index 100% rename from reactos/base/system/rundll32/lang/cs-CZ.rc rename to base/system/rundll32/lang/cs-CZ.rc diff --git a/reactos/base/system/rundll32/lang/de-DE.rc b/base/system/rundll32/lang/de-DE.rc similarity index 100% rename from reactos/base/system/rundll32/lang/de-DE.rc rename to base/system/rundll32/lang/de-DE.rc diff --git a/reactos/base/system/rundll32/lang/el-GR.rc b/base/system/rundll32/lang/el-GR.rc similarity index 100% rename from reactos/base/system/rundll32/lang/el-GR.rc rename to base/system/rundll32/lang/el-GR.rc diff --git a/reactos/base/system/rundll32/lang/en-US.rc b/base/system/rundll32/lang/en-US.rc similarity index 100% rename from reactos/base/system/rundll32/lang/en-US.rc rename to base/system/rundll32/lang/en-US.rc diff --git a/reactos/base/system/rundll32/lang/es-ES.rc b/base/system/rundll32/lang/es-ES.rc similarity index 100% rename from reactos/base/system/rundll32/lang/es-ES.rc rename to base/system/rundll32/lang/es-ES.rc diff --git a/reactos/base/system/rundll32/lang/fr-FR.rc b/base/system/rundll32/lang/fr-FR.rc similarity index 100% rename from reactos/base/system/rundll32/lang/fr-FR.rc rename to base/system/rundll32/lang/fr-FR.rc diff --git a/reactos/base/system/rundll32/lang/hu-HU.rc b/base/system/rundll32/lang/hu-HU.rc similarity index 100% rename from reactos/base/system/rundll32/lang/hu-HU.rc rename to base/system/rundll32/lang/hu-HU.rc diff --git a/reactos/base/system/rundll32/lang/id-ID.rc b/base/system/rundll32/lang/id-ID.rc similarity index 100% rename from reactos/base/system/rundll32/lang/id-ID.rc rename to base/system/rundll32/lang/id-ID.rc diff --git a/reactos/base/system/rundll32/lang/it-IT.rc b/base/system/rundll32/lang/it-IT.rc similarity index 100% rename from reactos/base/system/rundll32/lang/it-IT.rc rename to base/system/rundll32/lang/it-IT.rc diff --git a/reactos/base/system/rundll32/lang/ja-JP.rc b/base/system/rundll32/lang/ja-JP.rc similarity index 100% rename from reactos/base/system/rundll32/lang/ja-JP.rc rename to base/system/rundll32/lang/ja-JP.rc diff --git a/reactos/base/system/rundll32/lang/lt-LT.rc b/base/system/rundll32/lang/lt-LT.rc similarity index 100% rename from reactos/base/system/rundll32/lang/lt-LT.rc rename to base/system/rundll32/lang/lt-LT.rc diff --git a/reactos/base/system/rundll32/lang/nl-NL.rc b/base/system/rundll32/lang/nl-NL.rc similarity index 100% rename from reactos/base/system/rundll32/lang/nl-NL.rc rename to base/system/rundll32/lang/nl-NL.rc diff --git a/reactos/base/system/rundll32/lang/no-NO.rc b/base/system/rundll32/lang/no-NO.rc similarity index 100% rename from reactos/base/system/rundll32/lang/no-NO.rc rename to base/system/rundll32/lang/no-NO.rc diff --git a/reactos/base/system/rundll32/lang/pl-PL.rc b/base/system/rundll32/lang/pl-PL.rc similarity index 100% rename from reactos/base/system/rundll32/lang/pl-PL.rc rename to base/system/rundll32/lang/pl-PL.rc diff --git a/reactos/base/system/rundll32/lang/pt-BR.rc b/base/system/rundll32/lang/pt-BR.rc similarity index 100% rename from reactos/base/system/rundll32/lang/pt-BR.rc rename to base/system/rundll32/lang/pt-BR.rc diff --git a/reactos/base/system/rundll32/lang/ro-RO.rc b/base/system/rundll32/lang/ro-RO.rc similarity index 100% rename from reactos/base/system/rundll32/lang/ro-RO.rc rename to base/system/rundll32/lang/ro-RO.rc diff --git a/reactos/base/system/rundll32/lang/ru-RU.rc b/base/system/rundll32/lang/ru-RU.rc similarity index 100% rename from reactos/base/system/rundll32/lang/ru-RU.rc rename to base/system/rundll32/lang/ru-RU.rc diff --git a/reactos/base/system/rundll32/lang/sk-SK.rc b/base/system/rundll32/lang/sk-SK.rc similarity index 100% rename from reactos/base/system/rundll32/lang/sk-SK.rc rename to base/system/rundll32/lang/sk-SK.rc diff --git a/reactos/base/system/rundll32/lang/th-TH.rc b/base/system/rundll32/lang/th-TH.rc similarity index 100% rename from reactos/base/system/rundll32/lang/th-TH.rc rename to base/system/rundll32/lang/th-TH.rc diff --git a/reactos/base/system/rundll32/lang/uk-UA.rc b/base/system/rundll32/lang/uk-UA.rc similarity index 100% rename from reactos/base/system/rundll32/lang/uk-UA.rc rename to base/system/rundll32/lang/uk-UA.rc diff --git a/reactos/base/system/rundll32/lang/zh-CN.rc b/base/system/rundll32/lang/zh-CN.rc similarity index 100% rename from reactos/base/system/rundll32/lang/zh-CN.rc rename to base/system/rundll32/lang/zh-CN.rc diff --git a/reactos/base/system/rundll32/resource.h b/base/system/rundll32/resource.h similarity index 100% rename from reactos/base/system/rundll32/resource.h rename to base/system/rundll32/resource.h diff --git a/reactos/base/system/rundll32/rsrc.rc b/base/system/rundll32/rsrc.rc similarity index 100% rename from reactos/base/system/rundll32/rsrc.rc rename to base/system/rundll32/rsrc.rc diff --git a/reactos/base/system/rundll32/rundll32.c b/base/system/rundll32/rundll32.c similarity index 100% rename from reactos/base/system/rundll32/rundll32.c rename to base/system/rundll32/rundll32.c diff --git a/reactos/base/system/rundll32/rundll32.rc b/base/system/rundll32/rundll32.rc similarity index 100% rename from reactos/base/system/rundll32/rundll32.rc rename to base/system/rundll32/rundll32.rc diff --git a/reactos/base/system/runonce/CMakeLists.txt b/base/system/runonce/CMakeLists.txt similarity index 100% rename from reactos/base/system/runonce/CMakeLists.txt rename to base/system/runonce/CMakeLists.txt diff --git a/reactos/base/system/runonce/lang/de-DE.rc b/base/system/runonce/lang/de-DE.rc similarity index 100% rename from reactos/base/system/runonce/lang/de-DE.rc rename to base/system/runonce/lang/de-DE.rc diff --git a/reactos/base/system/runonce/lang/en-US.rc b/base/system/runonce/lang/en-US.rc similarity index 100% rename from reactos/base/system/runonce/lang/en-US.rc rename to base/system/runonce/lang/en-US.rc diff --git a/reactos/base/system/runonce/lang/es-ES.rc b/base/system/runonce/lang/es-ES.rc similarity index 100% rename from reactos/base/system/runonce/lang/es-ES.rc rename to base/system/runonce/lang/es-ES.rc diff --git a/reactos/base/system/runonce/lang/fr-FR.rc b/base/system/runonce/lang/fr-FR.rc similarity index 100% rename from reactos/base/system/runonce/lang/fr-FR.rc rename to base/system/runonce/lang/fr-FR.rc diff --git a/reactos/base/system/runonce/lang/ja-JP.rc b/base/system/runonce/lang/ja-JP.rc similarity index 100% rename from reactos/base/system/runonce/lang/ja-JP.rc rename to base/system/runonce/lang/ja-JP.rc diff --git a/reactos/base/system/runonce/lang/pl-PL.rc b/base/system/runonce/lang/pl-PL.rc similarity index 100% rename from reactos/base/system/runonce/lang/pl-PL.rc rename to base/system/runonce/lang/pl-PL.rc diff --git a/reactos/base/system/runonce/lang/pt-BR.rc b/base/system/runonce/lang/pt-BR.rc similarity index 100% rename from reactos/base/system/runonce/lang/pt-BR.rc rename to base/system/runonce/lang/pt-BR.rc diff --git a/reactos/base/system/runonce/lang/ro-RO.rc b/base/system/runonce/lang/ro-RO.rc similarity index 100% rename from reactos/base/system/runonce/lang/ro-RO.rc rename to base/system/runonce/lang/ro-RO.rc diff --git a/reactos/base/system/runonce/lang/ru-RU.rc b/base/system/runonce/lang/ru-RU.rc similarity index 100% rename from reactos/base/system/runonce/lang/ru-RU.rc rename to base/system/runonce/lang/ru-RU.rc diff --git a/reactos/base/system/runonce/lang/sk-SK.rc b/base/system/runonce/lang/sk-SK.rc similarity index 100% rename from reactos/base/system/runonce/lang/sk-SK.rc rename to base/system/runonce/lang/sk-SK.rc diff --git a/reactos/base/system/runonce/lang/uk-UA.rc b/base/system/runonce/lang/uk-UA.rc similarity index 100% rename from reactos/base/system/runonce/lang/uk-UA.rc rename to base/system/runonce/lang/uk-UA.rc diff --git a/reactos/base/system/runonce/lang/zh-CN.rc b/base/system/runonce/lang/zh-CN.rc similarity index 100% rename from reactos/base/system/runonce/lang/zh-CN.rc rename to base/system/runonce/lang/zh-CN.rc diff --git a/reactos/base/system/runonce/res/icon.ico b/base/system/runonce/res/icon.ico similarity index 100% rename from reactos/base/system/runonce/res/icon.ico rename to base/system/runonce/res/icon.ico diff --git a/reactos/base/system/runonce/resource.h b/base/system/runonce/resource.h similarity index 100% rename from reactos/base/system/runonce/resource.h rename to base/system/runonce/resource.h diff --git a/reactos/base/system/runonce/rsrc.rc b/base/system/runonce/rsrc.rc similarity index 100% rename from reactos/base/system/runonce/rsrc.rc rename to base/system/runonce/rsrc.rc diff --git a/reactos/base/system/runonce/runonce.c b/base/system/runonce/runonce.c similarity index 100% rename from reactos/base/system/runonce/runonce.c rename to base/system/runonce/runonce.c diff --git a/reactos/base/system/runonce/runonce.h b/base/system/runonce/runonce.h similarity index 100% rename from reactos/base/system/runonce/runonce.h rename to base/system/runonce/runonce.h diff --git a/reactos/base/system/runonce/runonce.rc b/base/system/runonce/runonce.rc similarity index 100% rename from reactos/base/system/runonce/runonce.rc rename to base/system/runonce/runonce.rc diff --git a/reactos/base/system/services/CMakeLists.txt b/base/system/services/CMakeLists.txt similarity index 100% rename from reactos/base/system/services/CMakeLists.txt rename to base/system/services/CMakeLists.txt diff --git a/reactos/base/system/services/config.c b/base/system/services/config.c similarity index 100% rename from reactos/base/system/services/config.c rename to base/system/services/config.c diff --git a/reactos/base/system/services/controlset.c b/base/system/services/controlset.c similarity index 100% rename from reactos/base/system/services/controlset.c rename to base/system/services/controlset.c diff --git a/reactos/base/system/services/database.c b/base/system/services/database.c similarity index 100% rename from reactos/base/system/services/database.c rename to base/system/services/database.c diff --git a/reactos/base/system/services/driver.c b/base/system/services/driver.c similarity index 100% rename from reactos/base/system/services/driver.c rename to base/system/services/driver.c diff --git a/reactos/base/system/services/groupdb.c b/base/system/services/groupdb.c similarity index 100% rename from reactos/base/system/services/groupdb.c rename to base/system/services/groupdb.c diff --git a/reactos/base/system/services/lock.c b/base/system/services/lock.c similarity index 100% rename from reactos/base/system/services/lock.c rename to base/system/services/lock.c diff --git a/reactos/base/system/services/rpcserver.c b/base/system/services/rpcserver.c similarity index 100% rename from reactos/base/system/services/rpcserver.c rename to base/system/services/rpcserver.c diff --git a/reactos/base/system/services/services.c b/base/system/services/services.c similarity index 100% rename from reactos/base/system/services/services.c rename to base/system/services/services.c diff --git a/reactos/base/system/services/services.h b/base/system/services/services.h similarity index 100% rename from reactos/base/system/services/services.h rename to base/system/services/services.h diff --git a/reactos/base/system/services/services.rc b/base/system/services/services.rc similarity index 100% rename from reactos/base/system/services/services.rc rename to base/system/services/services.rc diff --git a/reactos/base/system/smss/CMakeLists.txt b/base/system/smss/CMakeLists.txt similarity index 100% rename from reactos/base/system/smss/CMakeLists.txt rename to base/system/smss/CMakeLists.txt diff --git a/reactos/base/system/smss/crashdmp.c b/base/system/smss/crashdmp.c similarity index 100% rename from reactos/base/system/smss/crashdmp.c rename to base/system/smss/crashdmp.c diff --git a/reactos/base/system/smss/pagefile.c b/base/system/smss/pagefile.c similarity index 100% rename from reactos/base/system/smss/pagefile.c rename to base/system/smss/pagefile.c diff --git a/reactos/base/system/smss/sminit.c b/base/system/smss/sminit.c similarity index 100% rename from reactos/base/system/smss/sminit.c rename to base/system/smss/sminit.c diff --git a/reactos/base/system/smss/smloop.c b/base/system/smss/smloop.c similarity index 100% rename from reactos/base/system/smss/smloop.c rename to base/system/smss/smloop.c diff --git a/reactos/base/system/smss/smsbapi.c b/base/system/smss/smsbapi.c similarity index 100% rename from reactos/base/system/smss/smsbapi.c rename to base/system/smss/smsbapi.c diff --git a/reactos/base/system/smss/smsessn.c b/base/system/smss/smsessn.c similarity index 100% rename from reactos/base/system/smss/smsessn.c rename to base/system/smss/smsessn.c diff --git a/reactos/base/system/smss/smss.c b/base/system/smss/smss.c similarity index 100% rename from reactos/base/system/smss/smss.c rename to base/system/smss/smss.c diff --git a/reactos/base/system/smss/smss.h b/base/system/smss/smss.h similarity index 100% rename from reactos/base/system/smss/smss.h rename to base/system/smss/smss.h diff --git a/reactos/base/system/smss/smss.rc b/base/system/smss/smss.rc similarity index 100% rename from reactos/base/system/smss/smss.rc rename to base/system/smss/smss.rc diff --git a/reactos/base/system/smss/smsubsys.c b/base/system/smss/smsubsys.c similarity index 100% rename from reactos/base/system/smss/smsubsys.c rename to base/system/smss/smsubsys.c diff --git a/reactos/base/system/smss/smutil.c b/base/system/smss/smutil.c similarity index 100% rename from reactos/base/system/smss/smutil.c rename to base/system/smss/smutil.c diff --git a/reactos/base/system/subst/CMakeLists.txt b/base/system/subst/CMakeLists.txt similarity index 100% rename from reactos/base/system/subst/CMakeLists.txt rename to base/system/subst/CMakeLists.txt diff --git a/reactos/base/system/subst/lang/bg-BG.rc b/base/system/subst/lang/bg-BG.rc similarity index 100% rename from reactos/base/system/subst/lang/bg-BG.rc rename to base/system/subst/lang/bg-BG.rc diff --git a/reactos/base/system/subst/lang/en-US.rc b/base/system/subst/lang/en-US.rc similarity index 100% rename from reactos/base/system/subst/lang/en-US.rc rename to base/system/subst/lang/en-US.rc diff --git a/reactos/base/system/subst/lang/es-ES.rc b/base/system/subst/lang/es-ES.rc similarity index 100% rename from reactos/base/system/subst/lang/es-ES.rc rename to base/system/subst/lang/es-ES.rc diff --git a/reactos/base/system/subst/lang/fr-FR.rc b/base/system/subst/lang/fr-FR.rc similarity index 100% rename from reactos/base/system/subst/lang/fr-FR.rc rename to base/system/subst/lang/fr-FR.rc diff --git a/reactos/base/system/subst/lang/it-IT.rc b/base/system/subst/lang/it-IT.rc similarity index 100% rename from reactos/base/system/subst/lang/it-IT.rc rename to base/system/subst/lang/it-IT.rc diff --git a/reactos/base/system/subst/lang/pl-PL.rc b/base/system/subst/lang/pl-PL.rc similarity index 100% rename from reactos/base/system/subst/lang/pl-PL.rc rename to base/system/subst/lang/pl-PL.rc diff --git a/reactos/base/system/subst/lang/ro-RO.rc b/base/system/subst/lang/ro-RO.rc similarity index 100% rename from reactos/base/system/subst/lang/ro-RO.rc rename to base/system/subst/lang/ro-RO.rc diff --git a/reactos/base/system/subst/lang/uk-UA.rc b/base/system/subst/lang/uk-UA.rc similarity index 100% rename from reactos/base/system/subst/lang/uk-UA.rc rename to base/system/subst/lang/uk-UA.rc diff --git a/reactos/base/system/subst/lang/zh-CN.rc b/base/system/subst/lang/zh-CN.rc similarity index 100% rename from reactos/base/system/subst/lang/zh-CN.rc rename to base/system/subst/lang/zh-CN.rc diff --git a/reactos/base/system/subst/resource.h b/base/system/subst/resource.h similarity index 100% rename from reactos/base/system/subst/resource.h rename to base/system/subst/resource.h diff --git a/reactos/base/system/subst/rsrc.rc b/base/system/subst/rsrc.rc similarity index 100% rename from reactos/base/system/subst/rsrc.rc rename to base/system/subst/rsrc.rc diff --git a/reactos/base/system/subst/subst.c b/base/system/subst/subst.c similarity index 100% rename from reactos/base/system/subst/subst.c rename to base/system/subst/subst.c diff --git a/reactos/base/system/subst/subst.rc b/base/system/subst/subst.rc similarity index 100% rename from reactos/base/system/subst/subst.rc rename to base/system/subst/subst.rc diff --git a/reactos/base/system/userinit/CMakeLists.txt b/base/system/userinit/CMakeLists.txt similarity index 100% rename from reactos/base/system/userinit/CMakeLists.txt rename to base/system/userinit/CMakeLists.txt diff --git a/reactos/base/system/userinit/lang/bg-BG.rc b/base/system/userinit/lang/bg-BG.rc similarity index 100% rename from reactos/base/system/userinit/lang/bg-BG.rc rename to base/system/userinit/lang/bg-BG.rc diff --git a/reactos/base/system/userinit/lang/cs-CZ.rc b/base/system/userinit/lang/cs-CZ.rc similarity index 100% rename from reactos/base/system/userinit/lang/cs-CZ.rc rename to base/system/userinit/lang/cs-CZ.rc diff --git a/reactos/base/system/userinit/lang/de-DE.rc b/base/system/userinit/lang/de-DE.rc similarity index 100% rename from reactos/base/system/userinit/lang/de-DE.rc rename to base/system/userinit/lang/de-DE.rc diff --git a/reactos/base/system/userinit/lang/el-GR.rc b/base/system/userinit/lang/el-GR.rc similarity index 100% rename from reactos/base/system/userinit/lang/el-GR.rc rename to base/system/userinit/lang/el-GR.rc diff --git a/reactos/base/system/userinit/lang/en-US.rc b/base/system/userinit/lang/en-US.rc similarity index 100% rename from reactos/base/system/userinit/lang/en-US.rc rename to base/system/userinit/lang/en-US.rc diff --git a/reactos/base/system/userinit/lang/es-ES.rc b/base/system/userinit/lang/es-ES.rc similarity index 100% rename from reactos/base/system/userinit/lang/es-ES.rc rename to base/system/userinit/lang/es-ES.rc diff --git a/reactos/base/system/userinit/lang/fr-FR.rc b/base/system/userinit/lang/fr-FR.rc similarity index 100% rename from reactos/base/system/userinit/lang/fr-FR.rc rename to base/system/userinit/lang/fr-FR.rc diff --git a/reactos/base/system/userinit/lang/hu-HU.rc b/base/system/userinit/lang/hu-HU.rc similarity index 100% rename from reactos/base/system/userinit/lang/hu-HU.rc rename to base/system/userinit/lang/hu-HU.rc diff --git a/reactos/base/system/userinit/lang/id-ID.rc b/base/system/userinit/lang/id-ID.rc similarity index 100% rename from reactos/base/system/userinit/lang/id-ID.rc rename to base/system/userinit/lang/id-ID.rc diff --git a/reactos/base/system/userinit/lang/it-IT.rc b/base/system/userinit/lang/it-IT.rc similarity index 100% rename from reactos/base/system/userinit/lang/it-IT.rc rename to base/system/userinit/lang/it-IT.rc diff --git a/reactos/base/system/userinit/lang/ja-JP.rc b/base/system/userinit/lang/ja-JP.rc similarity index 100% rename from reactos/base/system/userinit/lang/ja-JP.rc rename to base/system/userinit/lang/ja-JP.rc diff --git a/reactos/base/system/userinit/lang/lt-LT.rc b/base/system/userinit/lang/lt-LT.rc similarity index 100% rename from reactos/base/system/userinit/lang/lt-LT.rc rename to base/system/userinit/lang/lt-LT.rc diff --git a/reactos/base/system/userinit/lang/nl-NL.rc b/base/system/userinit/lang/nl-NL.rc similarity index 100% rename from reactos/base/system/userinit/lang/nl-NL.rc rename to base/system/userinit/lang/nl-NL.rc diff --git a/reactos/base/system/userinit/lang/no-NO.rc b/base/system/userinit/lang/no-NO.rc similarity index 100% rename from reactos/base/system/userinit/lang/no-NO.rc rename to base/system/userinit/lang/no-NO.rc diff --git a/reactos/base/system/userinit/lang/pl-PL.rc b/base/system/userinit/lang/pl-PL.rc similarity index 100% rename from reactos/base/system/userinit/lang/pl-PL.rc rename to base/system/userinit/lang/pl-PL.rc diff --git a/reactos/base/system/userinit/lang/pt-BR.rc b/base/system/userinit/lang/pt-BR.rc similarity index 100% rename from reactos/base/system/userinit/lang/pt-BR.rc rename to base/system/userinit/lang/pt-BR.rc diff --git a/reactos/base/system/userinit/lang/ro-RO.rc b/base/system/userinit/lang/ro-RO.rc similarity index 100% rename from reactos/base/system/userinit/lang/ro-RO.rc rename to base/system/userinit/lang/ro-RO.rc diff --git a/reactos/base/system/userinit/lang/ru-RU.rc b/base/system/userinit/lang/ru-RU.rc similarity index 100% rename from reactos/base/system/userinit/lang/ru-RU.rc rename to base/system/userinit/lang/ru-RU.rc diff --git a/reactos/base/system/userinit/lang/sk-SK.rc b/base/system/userinit/lang/sk-SK.rc similarity index 100% rename from reactos/base/system/userinit/lang/sk-SK.rc rename to base/system/userinit/lang/sk-SK.rc diff --git a/reactos/base/system/userinit/lang/sv-SE.rc b/base/system/userinit/lang/sv-SE.rc similarity index 100% rename from reactos/base/system/userinit/lang/sv-SE.rc rename to base/system/userinit/lang/sv-SE.rc diff --git a/reactos/base/system/userinit/lang/th-TH.rc b/base/system/userinit/lang/th-TH.rc similarity index 100% rename from reactos/base/system/userinit/lang/th-TH.rc rename to base/system/userinit/lang/th-TH.rc diff --git a/reactos/base/system/userinit/lang/uk-UA.rc b/base/system/userinit/lang/uk-UA.rc similarity index 100% rename from reactos/base/system/userinit/lang/uk-UA.rc rename to base/system/userinit/lang/uk-UA.rc diff --git a/reactos/base/system/userinit/lang/zh-CN.rc b/base/system/userinit/lang/zh-CN.rc similarity index 100% rename from reactos/base/system/userinit/lang/zh-CN.rc rename to base/system/userinit/lang/zh-CN.rc diff --git a/reactos/base/system/userinit/resource.h b/base/system/userinit/resource.h similarity index 100% rename from reactos/base/system/userinit/resource.h rename to base/system/userinit/resource.h diff --git a/reactos/base/system/userinit/rsrc.rc b/base/system/userinit/rsrc.rc similarity index 100% rename from reactos/base/system/userinit/rsrc.rc rename to base/system/userinit/rsrc.rc diff --git a/reactos/base/system/userinit/userinit.c b/base/system/userinit/userinit.c similarity index 100% rename from reactos/base/system/userinit/userinit.c rename to base/system/userinit/userinit.c diff --git a/reactos/base/system/userinit/userinit.rc b/base/system/userinit/userinit.rc similarity index 100% rename from reactos/base/system/userinit/userinit.rc rename to base/system/userinit/userinit.rc diff --git a/reactos/base/system/winlogon/CMakeLists.txt b/base/system/winlogon/CMakeLists.txt similarity index 100% rename from reactos/base/system/winlogon/CMakeLists.txt rename to base/system/winlogon/CMakeLists.txt diff --git a/reactos/base/system/winlogon/environment.c b/base/system/winlogon/environment.c similarity index 100% rename from reactos/base/system/winlogon/environment.c rename to base/system/winlogon/environment.c diff --git a/reactos/base/system/winlogon/lang/bg-BG.rc b/base/system/winlogon/lang/bg-BG.rc similarity index 100% rename from reactos/base/system/winlogon/lang/bg-BG.rc rename to base/system/winlogon/lang/bg-BG.rc diff --git a/reactos/base/system/winlogon/lang/cs-CZ.rc b/base/system/winlogon/lang/cs-CZ.rc similarity index 100% rename from reactos/base/system/winlogon/lang/cs-CZ.rc rename to base/system/winlogon/lang/cs-CZ.rc diff --git a/reactos/base/system/winlogon/lang/de-DE.rc b/base/system/winlogon/lang/de-DE.rc similarity index 100% rename from reactos/base/system/winlogon/lang/de-DE.rc rename to base/system/winlogon/lang/de-DE.rc diff --git a/reactos/base/system/winlogon/lang/el-GR.rc b/base/system/winlogon/lang/el-GR.rc similarity index 100% rename from reactos/base/system/winlogon/lang/el-GR.rc rename to base/system/winlogon/lang/el-GR.rc diff --git a/reactos/base/system/winlogon/lang/en-US.rc b/base/system/winlogon/lang/en-US.rc similarity index 100% rename from reactos/base/system/winlogon/lang/en-US.rc rename to base/system/winlogon/lang/en-US.rc diff --git a/reactos/base/system/winlogon/lang/es-ES.rc b/base/system/winlogon/lang/es-ES.rc similarity index 100% rename from reactos/base/system/winlogon/lang/es-ES.rc rename to base/system/winlogon/lang/es-ES.rc diff --git a/reactos/base/system/winlogon/lang/fr-FR.rc b/base/system/winlogon/lang/fr-FR.rc similarity index 100% rename from reactos/base/system/winlogon/lang/fr-FR.rc rename to base/system/winlogon/lang/fr-FR.rc diff --git a/reactos/base/system/winlogon/lang/hu-HU.rc b/base/system/winlogon/lang/hu-HU.rc similarity index 100% rename from reactos/base/system/winlogon/lang/hu-HU.rc rename to base/system/winlogon/lang/hu-HU.rc diff --git a/reactos/base/system/winlogon/lang/id-ID.rc b/base/system/winlogon/lang/id-ID.rc similarity index 100% rename from reactos/base/system/winlogon/lang/id-ID.rc rename to base/system/winlogon/lang/id-ID.rc diff --git a/reactos/base/system/winlogon/lang/it-IT.rc b/base/system/winlogon/lang/it-IT.rc similarity index 100% rename from reactos/base/system/winlogon/lang/it-IT.rc rename to base/system/winlogon/lang/it-IT.rc diff --git a/reactos/base/system/winlogon/lang/ja-JP.rc b/base/system/winlogon/lang/ja-JP.rc similarity index 100% rename from reactos/base/system/winlogon/lang/ja-JP.rc rename to base/system/winlogon/lang/ja-JP.rc diff --git a/reactos/base/system/winlogon/lang/lt-LT.rc b/base/system/winlogon/lang/lt-LT.rc similarity index 100% rename from reactos/base/system/winlogon/lang/lt-LT.rc rename to base/system/winlogon/lang/lt-LT.rc diff --git a/reactos/base/system/winlogon/lang/nl-NL.rc b/base/system/winlogon/lang/nl-NL.rc similarity index 100% rename from reactos/base/system/winlogon/lang/nl-NL.rc rename to base/system/winlogon/lang/nl-NL.rc diff --git a/reactos/base/system/winlogon/lang/no-NO.rc b/base/system/winlogon/lang/no-NO.rc similarity index 100% rename from reactos/base/system/winlogon/lang/no-NO.rc rename to base/system/winlogon/lang/no-NO.rc diff --git a/reactos/base/system/winlogon/lang/pl-PL.rc b/base/system/winlogon/lang/pl-PL.rc similarity index 100% rename from reactos/base/system/winlogon/lang/pl-PL.rc rename to base/system/winlogon/lang/pl-PL.rc diff --git a/reactos/base/system/winlogon/lang/pt-BR.rc b/base/system/winlogon/lang/pt-BR.rc similarity index 100% rename from reactos/base/system/winlogon/lang/pt-BR.rc rename to base/system/winlogon/lang/pt-BR.rc diff --git a/reactos/base/system/winlogon/lang/ro-RO.rc b/base/system/winlogon/lang/ro-RO.rc similarity index 100% rename from reactos/base/system/winlogon/lang/ro-RO.rc rename to base/system/winlogon/lang/ro-RO.rc diff --git a/reactos/base/system/winlogon/lang/ru-RU.rc b/base/system/winlogon/lang/ru-RU.rc similarity index 100% rename from reactos/base/system/winlogon/lang/ru-RU.rc rename to base/system/winlogon/lang/ru-RU.rc diff --git a/reactos/base/system/winlogon/lang/sk-SK.rc b/base/system/winlogon/lang/sk-SK.rc similarity index 100% rename from reactos/base/system/winlogon/lang/sk-SK.rc rename to base/system/winlogon/lang/sk-SK.rc diff --git a/reactos/base/system/winlogon/lang/sv-SE.rc b/base/system/winlogon/lang/sv-SE.rc similarity index 100% rename from reactos/base/system/winlogon/lang/sv-SE.rc rename to base/system/winlogon/lang/sv-SE.rc diff --git a/reactos/base/system/winlogon/lang/uk-UA.rc b/base/system/winlogon/lang/uk-UA.rc similarity index 100% rename from reactos/base/system/winlogon/lang/uk-UA.rc rename to base/system/winlogon/lang/uk-UA.rc diff --git a/reactos/base/system/winlogon/lang/zh-CN.rc b/base/system/winlogon/lang/zh-CN.rc similarity index 100% rename from reactos/base/system/winlogon/lang/zh-CN.rc rename to base/system/winlogon/lang/zh-CN.rc diff --git a/reactos/base/system/winlogon/resource.h b/base/system/winlogon/resource.h similarity index 100% rename from reactos/base/system/winlogon/resource.h rename to base/system/winlogon/resource.h diff --git a/reactos/base/system/winlogon/rsrc.rc b/base/system/winlogon/rsrc.rc similarity index 100% rename from reactos/base/system/winlogon/rsrc.rc rename to base/system/winlogon/rsrc.rc diff --git a/reactos/base/system/winlogon/sas.c b/base/system/winlogon/sas.c similarity index 100% rename from reactos/base/system/winlogon/sas.c rename to base/system/winlogon/sas.c diff --git a/reactos/base/system/winlogon/screensaver.c b/base/system/winlogon/screensaver.c similarity index 100% rename from reactos/base/system/winlogon/screensaver.c rename to base/system/winlogon/screensaver.c diff --git a/reactos/base/system/winlogon/setup.c b/base/system/winlogon/setup.c similarity index 100% rename from reactos/base/system/winlogon/setup.c rename to base/system/winlogon/setup.c diff --git a/reactos/base/system/winlogon/setup.h b/base/system/winlogon/setup.h similarity index 100% rename from reactos/base/system/winlogon/setup.h rename to base/system/winlogon/setup.h diff --git a/reactos/base/system/winlogon/winlogon.c b/base/system/winlogon/winlogon.c similarity index 100% rename from reactos/base/system/winlogon/winlogon.c rename to base/system/winlogon/winlogon.c diff --git a/reactos/base/system/winlogon/winlogon.h b/base/system/winlogon/winlogon.h similarity index 100% rename from reactos/base/system/winlogon/winlogon.h rename to base/system/winlogon/winlogon.h diff --git a/reactos/base/system/winlogon/winlogon.rc b/base/system/winlogon/winlogon.rc similarity index 100% rename from reactos/base/system/winlogon/winlogon.rc rename to base/system/winlogon/winlogon.rc diff --git a/reactos/base/system/winlogon/wlx.c b/base/system/winlogon/wlx.c similarity index 100% rename from reactos/base/system/winlogon/wlx.c rename to base/system/winlogon/wlx.c diff --git a/reactos/boot/CMakeLists.txt b/boot/CMakeLists.txt similarity index 100% rename from reactos/boot/CMakeLists.txt rename to boot/CMakeLists.txt diff --git a/reactos/boot/armllb/boot.s b/boot/armllb/boot.s similarity index 100% rename from reactos/boot/armllb/boot.s rename to boot/armllb/boot.s diff --git a/reactos/boot/armllb/crtsupp.c b/boot/armllb/crtsupp.c similarity index 100% rename from reactos/boot/armllb/crtsupp.c rename to boot/armllb/crtsupp.c diff --git a/reactos/boot/armllb/envir.c b/boot/armllb/envir.c similarity index 100% rename from reactos/boot/armllb/envir.c rename to boot/armllb/envir.c diff --git a/reactos/boot/armllb/fw.c b/boot/armllb/fw.c similarity index 100% rename from reactos/boot/armllb/fw.c rename to boot/armllb/fw.c diff --git a/reactos/boot/armllb/hw/keyboard.c b/boot/armllb/hw/keyboard.c similarity index 100% rename from reactos/boot/armllb/hw/keyboard.c rename to boot/armllb/hw/keyboard.c diff --git a/reactos/boot/armllb/hw/matrix.c b/boot/armllb/hw/matrix.c similarity index 100% rename from reactos/boot/armllb/hw/matrix.c rename to boot/armllb/hw/matrix.c diff --git a/reactos/boot/armllb/hw/omap3-beagle/hwinfo.c b/boot/armllb/hw/omap3-beagle/hwinfo.c similarity index 100% rename from reactos/boot/armllb/hw/omap3-beagle/hwinfo.c rename to boot/armllb/hw/omap3-beagle/hwinfo.c diff --git a/reactos/boot/armllb/hw/omap3-beagle/hwinit.c b/boot/armllb/hw/omap3-beagle/hwinit.c similarity index 100% rename from reactos/boot/armllb/hw/omap3-beagle/hwinit.c rename to boot/armllb/hw/omap3-beagle/hwinit.c diff --git a/reactos/boot/armllb/hw/omap3-beagle/hwuart.c b/boot/armllb/hw/omap3-beagle/hwuart.c similarity index 100% rename from reactos/boot/armllb/hw/omap3-beagle/hwuart.c rename to boot/armllb/hw/omap3-beagle/hwuart.c diff --git a/reactos/boot/armllb/hw/omap3-zoom2/hwinfo.c b/boot/armllb/hw/omap3-zoom2/hwinfo.c similarity index 100% rename from reactos/boot/armllb/hw/omap3-zoom2/hwinfo.c rename to boot/armllb/hw/omap3-zoom2/hwinfo.c diff --git a/reactos/boot/armllb/hw/omap3-zoom2/hwinit.c b/boot/armllb/hw/omap3-zoom2/hwinit.c similarity index 100% rename from reactos/boot/armllb/hw/omap3-zoom2/hwinit.c rename to boot/armllb/hw/omap3-zoom2/hwinit.c diff --git a/reactos/boot/armllb/hw/omap3-zoom2/hwlcd.c b/boot/armllb/hw/omap3-zoom2/hwlcd.c similarity index 100% rename from reactos/boot/armllb/hw/omap3-zoom2/hwlcd.c rename to boot/armllb/hw/omap3-zoom2/hwlcd.c diff --git a/reactos/boot/armllb/hw/omap3-zoom2/hwsynkp.c b/boot/armllb/hw/omap3-zoom2/hwsynkp.c similarity index 100% rename from reactos/boot/armllb/hw/omap3-zoom2/hwsynkp.c rename to boot/armllb/hw/omap3-zoom2/hwsynkp.c diff --git a/reactos/boot/armllb/hw/omap3-zoom2/hwtwl40x.c b/boot/armllb/hw/omap3-zoom2/hwtwl40x.c similarity index 100% rename from reactos/boot/armllb/hw/omap3-zoom2/hwtwl40x.c rename to boot/armllb/hw/omap3-zoom2/hwtwl40x.c diff --git a/reactos/boot/armllb/hw/omap3-zoom2/hwuart.c b/boot/armllb/hw/omap3-zoom2/hwuart.c similarity index 100% rename from reactos/boot/armllb/hw/omap3-zoom2/hwuart.c rename to boot/armllb/hw/omap3-zoom2/hwuart.c diff --git a/reactos/boot/armllb/hw/serial.c b/boot/armllb/hw/serial.c similarity index 100% rename from reactos/boot/armllb/hw/serial.c rename to boot/armllb/hw/serial.c diff --git a/reactos/boot/armllb/hw/time.c b/boot/armllb/hw/time.c similarity index 100% rename from reactos/boot/armllb/hw/time.c rename to boot/armllb/hw/time.c diff --git a/reactos/boot/armllb/hw/versatile/hwclcd.c b/boot/armllb/hw/versatile/hwclcd.c similarity index 100% rename from reactos/boot/armllb/hw/versatile/hwclcd.c rename to boot/armllb/hw/versatile/hwclcd.c diff --git a/reactos/boot/armllb/hw/versatile/hwinfo.c b/boot/armllb/hw/versatile/hwinfo.c similarity index 100% rename from reactos/boot/armllb/hw/versatile/hwinfo.c rename to boot/armllb/hw/versatile/hwinfo.c diff --git a/reactos/boot/armllb/hw/versatile/hwinit.c b/boot/armllb/hw/versatile/hwinit.c similarity index 100% rename from reactos/boot/armllb/hw/versatile/hwinit.c rename to boot/armllb/hw/versatile/hwinit.c diff --git a/reactos/boot/armllb/hw/versatile/hwkmi.c b/boot/armllb/hw/versatile/hwkmi.c similarity index 100% rename from reactos/boot/armllb/hw/versatile/hwkmi.c rename to boot/armllb/hw/versatile/hwkmi.c diff --git a/reactos/boot/armllb/hw/versatile/hwuart.c b/boot/armllb/hw/versatile/hwuart.c similarity index 100% rename from reactos/boot/armllb/hw/versatile/hwuart.c rename to boot/armllb/hw/versatile/hwuart.c diff --git a/reactos/boot/armllb/hw/video.c b/boot/armllb/hw/video.c similarity index 100% rename from reactos/boot/armllb/hw/video.c rename to boot/armllb/hw/video.c diff --git a/reactos/boot/armllb/inc/envir.h b/boot/armllb/inc/envir.h similarity index 100% rename from reactos/boot/armllb/inc/envir.h rename to boot/armllb/inc/envir.h diff --git a/reactos/boot/armllb/inc/fw.h b/boot/armllb/inc/fw.h similarity index 100% rename from reactos/boot/armllb/inc/fw.h rename to boot/armllb/inc/fw.h diff --git a/reactos/boot/armllb/inc/hw.h b/boot/armllb/inc/hw.h similarity index 100% rename from reactos/boot/armllb/inc/hw.h rename to boot/armllb/inc/hw.h diff --git a/reactos/boot/armllb/inc/keyboard.h b/boot/armllb/inc/keyboard.h similarity index 100% rename from reactos/boot/armllb/inc/keyboard.h rename to boot/armllb/inc/keyboard.h diff --git a/reactos/boot/armllb/inc/machtype.h b/boot/armllb/inc/machtype.h similarity index 100% rename from reactos/boot/armllb/inc/machtype.h rename to boot/armllb/inc/machtype.h diff --git a/reactos/boot/armllb/inc/omap3.h b/boot/armllb/inc/omap3.h similarity index 100% rename from reactos/boot/armllb/inc/omap3.h rename to boot/armllb/inc/omap3.h diff --git a/reactos/boot/armllb/inc/osloader.h b/boot/armllb/inc/osloader.h similarity index 100% rename from reactos/boot/armllb/inc/osloader.h rename to boot/armllb/inc/osloader.h diff --git a/reactos/boot/armllb/inc/precomp.h b/boot/armllb/inc/precomp.h similarity index 100% rename from reactos/boot/armllb/inc/precomp.h rename to boot/armllb/inc/precomp.h diff --git a/reactos/boot/armllb/inc/serial.h b/boot/armllb/inc/serial.h similarity index 100% rename from reactos/boot/armllb/inc/serial.h rename to boot/armllb/inc/serial.h diff --git a/reactos/boot/armllb/inc/versa.h b/boot/armllb/inc/versa.h similarity index 100% rename from reactos/boot/armllb/inc/versa.h rename to boot/armllb/inc/versa.h diff --git a/reactos/boot/armllb/inc/video.h b/boot/armllb/inc/video.h similarity index 100% rename from reactos/boot/armllb/inc/video.h rename to boot/armllb/inc/video.h diff --git a/reactos/boot/armllb/main.c b/boot/armllb/main.c similarity index 100% rename from reactos/boot/armllb/main.c rename to boot/armllb/main.c diff --git a/reactos/boot/armllb/os/loader.c b/boot/armllb/os/loader.c similarity index 100% rename from reactos/boot/armllb/os/loader.c rename to boot/armllb/os/loader.c diff --git a/reactos/boot/bootdata/CMakeLists.txt b/boot/bootdata/CMakeLists.txt similarity index 100% rename from reactos/boot/bootdata/CMakeLists.txt rename to boot/bootdata/CMakeLists.txt diff --git a/reactos/boot/bootdata/autorun.inf b/boot/bootdata/autorun.inf similarity index 100% rename from reactos/boot/bootdata/autorun.inf rename to boot/bootdata/autorun.inf diff --git a/reactos/boot/bootdata/bootcd.ini b/boot/bootdata/bootcd.ini similarity index 100% rename from reactos/boot/bootdata/bootcd.ini rename to boot/bootdata/bootcd.ini diff --git a/reactos/boot/bootdata/bootcd/unattend.inf b/boot/bootdata/bootcd/unattend.inf similarity index 100% rename from reactos/boot/bootdata/bootcd/unattend.inf rename to boot/bootdata/bootcd/unattend.inf diff --git a/reactos/boot/bootdata/bootcdregtest/AHKAppTests.cmd b/boot/bootdata/bootcdregtest/AHKAppTests.cmd similarity index 100% rename from reactos/boot/bootdata/bootcdregtest/AHKAppTests.cmd rename to boot/bootdata/bootcdregtest/AHKAppTests.cmd diff --git a/reactos/boot/bootdata/bootcdregtest/regtest.cmd b/boot/bootdata/bootcdregtest/regtest.cmd similarity index 100% rename from reactos/boot/bootdata/bootcdregtest/regtest.cmd rename to boot/bootdata/bootcdregtest/regtest.cmd diff --git a/reactos/boot/bootdata/bootcdregtest/testboot.bat.sample b/boot/bootdata/bootcdregtest/testboot.bat.sample similarity index 100% rename from reactos/boot/bootdata/bootcdregtest/testboot.bat.sample rename to boot/bootdata/bootcdregtest/testboot.bat.sample diff --git a/reactos/boot/bootdata/bootcdregtest/unattend.inf b/boot/bootdata/bootcdregtest/unattend.inf similarity index 100% rename from reactos/boot/bootdata/bootcdregtest/unattend.inf rename to boot/bootdata/bootcdregtest/unattend.inf diff --git a/reactos/boot/bootdata/hivecls_amd64.inf b/boot/bootdata/hivecls_amd64.inf similarity index 100% rename from reactos/boot/bootdata/hivecls_amd64.inf rename to boot/bootdata/hivecls_amd64.inf diff --git a/reactos/boot/bootdata/hivecls_arm.inf b/boot/bootdata/hivecls_arm.inf similarity index 100% rename from reactos/boot/bootdata/hivecls_arm.inf rename to boot/bootdata/hivecls_arm.inf diff --git a/reactos/boot/bootdata/hivecls_i386.inf b/boot/bootdata/hivecls_i386.inf similarity index 100% rename from reactos/boot/bootdata/hivecls_i386.inf rename to boot/bootdata/hivecls_i386.inf diff --git a/reactos/boot/bootdata/hivedef_amd64.inf b/boot/bootdata/hivedef_amd64.inf similarity index 100% rename from reactos/boot/bootdata/hivedef_amd64.inf rename to boot/bootdata/hivedef_amd64.inf diff --git a/reactos/boot/bootdata/hivedef_arm.inf b/boot/bootdata/hivedef_arm.inf similarity index 100% rename from reactos/boot/bootdata/hivedef_arm.inf rename to boot/bootdata/hivedef_arm.inf diff --git a/reactos/boot/bootdata/hivedef_i386.inf b/boot/bootdata/hivedef_i386.inf similarity index 100% rename from reactos/boot/bootdata/hivedef_i386.inf rename to boot/bootdata/hivedef_i386.inf diff --git a/reactos/boot/bootdata/hiveinst_arm.inf b/boot/bootdata/hiveinst_arm.inf similarity index 100% rename from reactos/boot/bootdata/hiveinst_arm.inf rename to boot/bootdata/hiveinst_arm.inf diff --git a/reactos/boot/bootdata/hiveinst_i386.inf b/boot/bootdata/hiveinst_i386.inf similarity index 100% rename from reactos/boot/bootdata/hiveinst_i386.inf rename to boot/bootdata/hiveinst_i386.inf diff --git a/reactos/boot/bootdata/hivesft_amd64.inf b/boot/bootdata/hivesft_amd64.inf similarity index 100% rename from reactos/boot/bootdata/hivesft_amd64.inf rename to boot/bootdata/hivesft_amd64.inf diff --git a/reactos/boot/bootdata/hivesft_arm.inf b/boot/bootdata/hivesft_arm.inf similarity index 100% rename from reactos/boot/bootdata/hivesft_arm.inf rename to boot/bootdata/hivesft_arm.inf diff --git a/reactos/boot/bootdata/hivesft_i386.inf b/boot/bootdata/hivesft_i386.inf similarity index 100% rename from reactos/boot/bootdata/hivesft_i386.inf rename to boot/bootdata/hivesft_i386.inf diff --git a/reactos/boot/bootdata/hivesys_amd64.inf b/boot/bootdata/hivesys_amd64.inf similarity index 100% rename from reactos/boot/bootdata/hivesys_amd64.inf rename to boot/bootdata/hivesys_amd64.inf diff --git a/reactos/boot/bootdata/hivesys_arm.inf b/boot/bootdata/hivesys_arm.inf similarity index 100% rename from reactos/boot/bootdata/hivesys_arm.inf rename to boot/bootdata/hivesys_arm.inf diff --git a/reactos/boot/bootdata/hivesys_i386.inf b/boot/bootdata/hivesys_i386.inf similarity index 100% rename from reactos/boot/bootdata/hivesys_i386.inf rename to boot/bootdata/hivesys_i386.inf diff --git a/reactos/boot/bootdata/icon.ico b/boot/bootdata/icon.ico similarity index 100% rename from reactos/boot/bootdata/icon.ico rename to boot/bootdata/icon.ico diff --git a/reactos/boot/bootdata/livecd.inf b/boot/bootdata/livecd.inf similarity index 100% rename from reactos/boot/bootdata/livecd.inf rename to boot/bootdata/livecd.inf diff --git a/reactos/boot/bootdata/livecd.ini b/boot/bootdata/livecd.ini similarity index 100% rename from reactos/boot/bootdata/livecd.ini rename to boot/bootdata/livecd.ini diff --git a/reactos/boot/bootdata/livecd_start.cmd b/boot/bootdata/livecd_start.cmd similarity index 100% rename from reactos/boot/bootdata/livecd_start.cmd rename to boot/bootdata/livecd_start.cmd diff --git a/reactos/boot/bootdata/packages/CMakeLists.txt b/boot/bootdata/packages/CMakeLists.txt similarity index 100% rename from reactos/boot/bootdata/packages/CMakeLists.txt rename to boot/bootdata/packages/CMakeLists.txt diff --git a/reactos/boot/bootdata/packages/reactos.dff.in b/boot/bootdata/packages/reactos.dff.in similarity index 100% rename from reactos/boot/bootdata/packages/reactos.dff.in rename to boot/bootdata/packages/reactos.dff.in diff --git a/reactos/boot/bootdata/readme.txt b/boot/bootdata/readme.txt similarity index 100% rename from reactos/boot/bootdata/readme.txt rename to boot/bootdata/readme.txt diff --git a/reactos/boot/bootdata/system.ini b/boot/bootdata/system.ini similarity index 100% rename from reactos/boot/bootdata/system.ini rename to boot/bootdata/system.ini diff --git a/reactos/boot/bootdata/txtsetup.sif b/boot/bootdata/txtsetup.sif similarity index 100% rename from reactos/boot/bootdata/txtsetup.sif rename to boot/bootdata/txtsetup.sif diff --git a/reactos/boot/freeldr/CMakeLists.txt b/boot/freeldr/CMakeLists.txt similarity index 100% rename from reactos/boot/freeldr/CMakeLists.txt rename to boot/freeldr/CMakeLists.txt diff --git a/reactos/boot/freeldr/FREELDR.INI b/boot/freeldr/FREELDR.INI similarity index 100% rename from reactos/boot/freeldr/FREELDR.INI rename to boot/freeldr/FREELDR.INI diff --git a/reactos/boot/freeldr/bootsect/CMakeLists.txt b/boot/freeldr/bootsect/CMakeLists.txt similarity index 100% rename from reactos/boot/freeldr/bootsect/CMakeLists.txt rename to boot/freeldr/bootsect/CMakeLists.txt diff --git a/reactos/boot/freeldr/bootsect/dosmbr.S b/boot/freeldr/bootsect/dosmbr.S similarity index 100% rename from reactos/boot/freeldr/bootsect/dosmbr.S rename to boot/freeldr/bootsect/dosmbr.S diff --git a/reactos/boot/freeldr/bootsect/dosmbr.asm b/boot/freeldr/bootsect/dosmbr.asm similarity index 100% rename from reactos/boot/freeldr/bootsect/dosmbr.asm rename to boot/freeldr/bootsect/dosmbr.asm diff --git a/reactos/boot/freeldr/bootsect/ext2.S b/boot/freeldr/bootsect/ext2.S similarity index 100% rename from reactos/boot/freeldr/bootsect/ext2.S rename to boot/freeldr/bootsect/ext2.S diff --git a/reactos/boot/freeldr/bootsect/ext2.asm b/boot/freeldr/bootsect/ext2.asm similarity index 100% rename from reactos/boot/freeldr/bootsect/ext2.asm rename to boot/freeldr/bootsect/ext2.asm diff --git a/reactos/boot/freeldr/bootsect/fat.S b/boot/freeldr/bootsect/fat.S similarity index 100% rename from reactos/boot/freeldr/bootsect/fat.S rename to boot/freeldr/bootsect/fat.S diff --git a/reactos/boot/freeldr/bootsect/fat.asm b/boot/freeldr/bootsect/fat.asm similarity index 100% rename from reactos/boot/freeldr/bootsect/fat.asm rename to boot/freeldr/bootsect/fat.asm diff --git a/reactos/boot/freeldr/bootsect/fat.h b/boot/freeldr/bootsect/fat.h similarity index 100% rename from reactos/boot/freeldr/bootsect/fat.h rename to boot/freeldr/bootsect/fat.h diff --git a/reactos/boot/freeldr/bootsect/fat32.S b/boot/freeldr/bootsect/fat32.S similarity index 100% rename from reactos/boot/freeldr/bootsect/fat32.S rename to boot/freeldr/bootsect/fat32.S diff --git a/reactos/boot/freeldr/bootsect/fat32.asm b/boot/freeldr/bootsect/fat32.asm similarity index 100% rename from reactos/boot/freeldr/bootsect/fat32.asm rename to boot/freeldr/bootsect/fat32.asm diff --git a/reactos/boot/freeldr/bootsect/fat32.h b/boot/freeldr/bootsect/fat32.h similarity index 100% rename from reactos/boot/freeldr/bootsect/fat32.h rename to boot/freeldr/bootsect/fat32.h diff --git a/reactos/boot/freeldr/bootsect/fatx.S b/boot/freeldr/bootsect/fatx.S similarity index 100% rename from reactos/boot/freeldr/bootsect/fatx.S rename to boot/freeldr/bootsect/fatx.S diff --git a/reactos/boot/freeldr/bootsect/isoboot.S b/boot/freeldr/bootsect/isoboot.S similarity index 100% rename from reactos/boot/freeldr/bootsect/isoboot.S rename to boot/freeldr/bootsect/isoboot.S diff --git a/reactos/boot/freeldr/bootsect/isoboot.asm b/boot/freeldr/bootsect/isoboot.asm similarity index 100% rename from reactos/boot/freeldr/bootsect/isoboot.asm rename to boot/freeldr/bootsect/isoboot.asm diff --git a/reactos/boot/freeldr/bootsect/isobtrt.S b/boot/freeldr/bootsect/isobtrt.S similarity index 100% rename from reactos/boot/freeldr/bootsect/isobtrt.S rename to boot/freeldr/bootsect/isobtrt.S diff --git a/reactos/boot/freeldr/bootsect/isobtrt.asm b/boot/freeldr/bootsect/isobtrt.asm similarity index 100% rename from reactos/boot/freeldr/bootsect/isobtrt.asm rename to boot/freeldr/bootsect/isobtrt.asm diff --git a/reactos/boot/freeldr/bootsect/ofwboot.s b/boot/freeldr/bootsect/ofwboot.s similarity index 100% rename from reactos/boot/freeldr/bootsect/ofwboot.s rename to boot/freeldr/bootsect/ofwboot.s diff --git a/reactos/boot/freeldr/bootsect/win2k.asm b/boot/freeldr/bootsect/win2k.asm similarity index 100% rename from reactos/boot/freeldr/bootsect/win2k.asm rename to boot/freeldr/bootsect/win2k.asm diff --git a/reactos/boot/freeldr/bootsect/wxpfat16.asm b/boot/freeldr/bootsect/wxpfat16.asm similarity index 100% rename from reactos/boot/freeldr/bootsect/wxpfat16.asm rename to boot/freeldr/bootsect/wxpfat16.asm diff --git a/reactos/boot/freeldr/fdebug/fdebug.c b/boot/freeldr/fdebug/fdebug.c similarity index 100% rename from reactos/boot/freeldr/fdebug/fdebug.c rename to boot/freeldr/fdebug/fdebug.c diff --git a/reactos/boot/freeldr/fdebug/fdebug.ico b/boot/freeldr/fdebug/fdebug.ico similarity index 100% rename from reactos/boot/freeldr/fdebug/fdebug.ico rename to boot/freeldr/fdebug/fdebug.ico diff --git a/reactos/boot/freeldr/fdebug/fdebug.rc b/boot/freeldr/fdebug/fdebug.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/fdebug.rc rename to boot/freeldr/fdebug/fdebug.rc diff --git a/reactos/boot/freeldr/fdebug/lang/bg-BG.rc b/boot/freeldr/fdebug/lang/bg-BG.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/bg-BG.rc rename to boot/freeldr/fdebug/lang/bg-BG.rc diff --git a/reactos/boot/freeldr/fdebug/lang/cs-CZ.rc b/boot/freeldr/fdebug/lang/cs-CZ.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/cs-CZ.rc rename to boot/freeldr/fdebug/lang/cs-CZ.rc diff --git a/reactos/boot/freeldr/fdebug/lang/de-DE.rc b/boot/freeldr/fdebug/lang/de-DE.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/de-DE.rc rename to boot/freeldr/fdebug/lang/de-DE.rc diff --git a/reactos/boot/freeldr/fdebug/lang/el-GR.rc b/boot/freeldr/fdebug/lang/el-GR.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/el-GR.rc rename to boot/freeldr/fdebug/lang/el-GR.rc diff --git a/reactos/boot/freeldr/fdebug/lang/en-US.rc b/boot/freeldr/fdebug/lang/en-US.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/en-US.rc rename to boot/freeldr/fdebug/lang/en-US.rc diff --git a/reactos/boot/freeldr/fdebug/lang/es-ES.rc b/boot/freeldr/fdebug/lang/es-ES.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/es-ES.rc rename to boot/freeldr/fdebug/lang/es-ES.rc diff --git a/reactos/boot/freeldr/fdebug/lang/fr-FR.rc b/boot/freeldr/fdebug/lang/fr-FR.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/fr-FR.rc rename to boot/freeldr/fdebug/lang/fr-FR.rc diff --git a/reactos/boot/freeldr/fdebug/lang/hu-HU.rc b/boot/freeldr/fdebug/lang/hu-HU.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/hu-HU.rc rename to boot/freeldr/fdebug/lang/hu-HU.rc diff --git a/reactos/boot/freeldr/fdebug/lang/id-ID.rc b/boot/freeldr/fdebug/lang/id-ID.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/id-ID.rc rename to boot/freeldr/fdebug/lang/id-ID.rc diff --git a/reactos/boot/freeldr/fdebug/lang/it-IT.rc b/boot/freeldr/fdebug/lang/it-IT.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/it-IT.rc rename to boot/freeldr/fdebug/lang/it-IT.rc diff --git a/reactos/boot/freeldr/fdebug/lang/ja-JP.rc b/boot/freeldr/fdebug/lang/ja-JP.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/ja-JP.rc rename to boot/freeldr/fdebug/lang/ja-JP.rc diff --git a/reactos/boot/freeldr/fdebug/lang/no-NO.rc b/boot/freeldr/fdebug/lang/no-NO.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/no-NO.rc rename to boot/freeldr/fdebug/lang/no-NO.rc diff --git a/reactos/boot/freeldr/fdebug/lang/pl-PL.rc b/boot/freeldr/fdebug/lang/pl-PL.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/pl-PL.rc rename to boot/freeldr/fdebug/lang/pl-PL.rc diff --git a/reactos/boot/freeldr/fdebug/lang/ro-RO.rc b/boot/freeldr/fdebug/lang/ro-RO.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/ro-RO.rc rename to boot/freeldr/fdebug/lang/ro-RO.rc diff --git a/reactos/boot/freeldr/fdebug/lang/ru-RU.rc b/boot/freeldr/fdebug/lang/ru-RU.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/ru-RU.rc rename to boot/freeldr/fdebug/lang/ru-RU.rc diff --git a/reactos/boot/freeldr/fdebug/lang/sk-SK.rc b/boot/freeldr/fdebug/lang/sk-SK.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/sk-SK.rc rename to boot/freeldr/fdebug/lang/sk-SK.rc diff --git a/reactos/boot/freeldr/fdebug/lang/tr-TR.rc b/boot/freeldr/fdebug/lang/tr-TR.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/tr-TR.rc rename to boot/freeldr/fdebug/lang/tr-TR.rc diff --git a/reactos/boot/freeldr/fdebug/lang/uk-UA.rc b/boot/freeldr/fdebug/lang/uk-UA.rc similarity index 100% rename from reactos/boot/freeldr/fdebug/lang/uk-UA.rc rename to boot/freeldr/fdebug/lang/uk-UA.rc diff --git a/reactos/boot/freeldr/fdebug/resource.h b/boot/freeldr/fdebug/resource.h similarity index 100% rename from reactos/boot/freeldr/fdebug/resource.h rename to boot/freeldr/fdebug/resource.h diff --git a/reactos/boot/freeldr/fdebug/rs232.c b/boot/freeldr/fdebug/rs232.c similarity index 100% rename from reactos/boot/freeldr/fdebug/rs232.c rename to boot/freeldr/fdebug/rs232.c diff --git a/reactos/boot/freeldr/fdebug/rs232.h b/boot/freeldr/fdebug/rs232.h similarity index 100% rename from reactos/boot/freeldr/fdebug/rs232.h rename to boot/freeldr/fdebug/rs232.h diff --git a/reactos/boot/freeldr/freeldr/CHANGELOG b/boot/freeldr/freeldr/CHANGELOG similarity index 100% rename from reactos/boot/freeldr/freeldr/CHANGELOG rename to boot/freeldr/freeldr/CHANGELOG diff --git a/reactos/boot/freeldr/freeldr/CMakeLists.txt b/boot/freeldr/freeldr/CMakeLists.txt similarity index 100% rename from reactos/boot/freeldr/freeldr/CMakeLists.txt rename to boot/freeldr/freeldr/CMakeLists.txt diff --git a/reactos/boot/freeldr/freeldr/arcemul/time.c b/boot/freeldr/freeldr/arcemul/time.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arcemul/time.c rename to boot/freeldr/freeldr/arcemul/time.c diff --git a/reactos/boot/freeldr/freeldr/arch/amd64/entry.S b/boot/freeldr/freeldr/arch/amd64/entry.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/amd64/entry.S rename to boot/freeldr/freeldr/arch/amd64/entry.S diff --git a/reactos/boot/freeldr/freeldr/arch/amd64/int386.S b/boot/freeldr/freeldr/arch/amd64/int386.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/amd64/int386.S rename to boot/freeldr/freeldr/arch/amd64/int386.S diff --git a/reactos/boot/freeldr/freeldr/arch/amd64/pnpbios.S b/boot/freeldr/freeldr/arch/amd64/pnpbios.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/amd64/pnpbios.S rename to boot/freeldr/freeldr/arch/amd64/pnpbios.S diff --git a/reactos/boot/freeldr/freeldr/arch/amd64/winldr.c b/boot/freeldr/freeldr/arch/amd64/winldr.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/amd64/winldr.c rename to boot/freeldr/freeldr/arch/amd64/winldr.c diff --git a/reactos/boot/freeldr/freeldr/arch/arm/boot.s b/boot/freeldr/freeldr/arch/arm/boot.s similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/arm/boot.s rename to boot/freeldr/freeldr/arch/arm/boot.s diff --git a/reactos/boot/freeldr/freeldr/arch/arm/macharm.c b/boot/freeldr/freeldr/arch/arm/macharm.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/arm/macharm.c rename to boot/freeldr/freeldr/arch/arm/macharm.c diff --git a/reactos/boot/freeldr/freeldr/arch/arm/winldr.c b/boot/freeldr/freeldr/arch/arm/winldr.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/arm/winldr.c rename to boot/freeldr/freeldr/arch/arm/winldr.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/archmach.c b/boot/freeldr/freeldr/arch/i386/archmach.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/archmach.c rename to boot/freeldr/freeldr/arch/i386/archmach.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/custom.c b/boot/freeldr/freeldr/arch/i386/custom.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/custom.c rename to boot/freeldr/freeldr/arch/i386/custom.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/drivemap.c b/boot/freeldr/freeldr/arch/i386/drivemap.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/drivemap.c rename to boot/freeldr/freeldr/arch/i386/drivemap.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/drvmap.S b/boot/freeldr/freeldr/arch/i386/drvmap.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/drvmap.S rename to boot/freeldr/freeldr/arch/i386/drvmap.S diff --git a/reactos/boot/freeldr/freeldr/arch/i386/entry.S b/boot/freeldr/freeldr/arch/i386/entry.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/entry.S rename to boot/freeldr/freeldr/arch/i386/entry.S diff --git a/reactos/boot/freeldr/freeldr/arch/i386/halstub.c b/boot/freeldr/freeldr/arch/i386/halstub.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/halstub.c rename to boot/freeldr/freeldr/arch/i386/halstub.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/hardware.c b/boot/freeldr/freeldr/arch/i386/hardware.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/hardware.c rename to boot/freeldr/freeldr/arch/i386/hardware.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c b/boot/freeldr/freeldr/arch/i386/hwacpi.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c rename to boot/freeldr/freeldr/arch/i386/hwacpi.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/hwapm.c b/boot/freeldr/freeldr/arch/i386/hwapm.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/hwapm.c rename to boot/freeldr/freeldr/arch/i386/hwapm.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/hwdisk.c b/boot/freeldr/freeldr/arch/i386/hwdisk.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/hwdisk.c rename to boot/freeldr/freeldr/arch/i386/hwdisk.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/hwpci.c b/boot/freeldr/freeldr/arch/i386/hwpci.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/hwpci.c rename to boot/freeldr/freeldr/arch/i386/hwpci.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/i386bug.c b/boot/freeldr/freeldr/arch/i386/i386bug.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/i386bug.c rename to boot/freeldr/freeldr/arch/i386/i386bug.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/i386disk.c b/boot/freeldr/freeldr/arch/i386/i386disk.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/i386disk.c rename to boot/freeldr/freeldr/arch/i386/i386disk.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/i386idt.c b/boot/freeldr/freeldr/arch/i386/i386idt.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/i386idt.c rename to boot/freeldr/freeldr/arch/i386/i386idt.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/i386pnp.S b/boot/freeldr/freeldr/arch/i386/i386pnp.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/i386pnp.S rename to boot/freeldr/freeldr/arch/i386/i386pnp.S diff --git a/reactos/boot/freeldr/freeldr/arch/i386/i386rtl.c b/boot/freeldr/freeldr/arch/i386/i386rtl.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/i386rtl.c rename to boot/freeldr/freeldr/arch/i386/i386rtl.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/i386trap.S b/boot/freeldr/freeldr/arch/i386/i386trap.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/i386trap.S rename to boot/freeldr/freeldr/arch/i386/i386trap.S diff --git a/reactos/boot/freeldr/freeldr/arch/i386/i386vid.c b/boot/freeldr/freeldr/arch/i386/i386vid.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/i386vid.c rename to boot/freeldr/freeldr/arch/i386/i386vid.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/linux.S b/boot/freeldr/freeldr/arch/i386/linux.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/linux.S rename to boot/freeldr/freeldr/arch/i386/linux.S diff --git a/reactos/boot/freeldr/freeldr/arch/i386/machpc.c b/boot/freeldr/freeldr/arch/i386/machpc.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/machpc.c rename to boot/freeldr/freeldr/arch/i386/machpc.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/machxbox.c b/boot/freeldr/freeldr/arch/i386/machxbox.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/machxbox.c rename to boot/freeldr/freeldr/arch/i386/machxbox.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/mb.S b/boot/freeldr/freeldr/arch/i386/mb.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/mb.S rename to boot/freeldr/freeldr/arch/i386/mb.S diff --git a/reactos/boot/freeldr/freeldr/arch/i386/miscboot.c b/boot/freeldr/freeldr/arch/i386/miscboot.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/miscboot.c rename to boot/freeldr/freeldr/arch/i386/miscboot.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/multiboot.S b/boot/freeldr/freeldr/arch/i386/multiboot.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/multiboot.S rename to boot/freeldr/freeldr/arch/i386/multiboot.S diff --git a/reactos/boot/freeldr/freeldr/arch/i386/ntoskrnl.c b/boot/freeldr/freeldr/arch/i386/ntoskrnl.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/ntoskrnl.c rename to boot/freeldr/freeldr/arch/i386/ntoskrnl.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/pccons.c b/boot/freeldr/freeldr/arch/i386/pccons.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/pccons.c rename to boot/freeldr/freeldr/arch/i386/pccons.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/pcdisk.c b/boot/freeldr/freeldr/arch/i386/pcdisk.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/pcdisk.c rename to boot/freeldr/freeldr/arch/i386/pcdisk.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/pcmem.c b/boot/freeldr/freeldr/arch/i386/pcmem.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/pcmem.c rename to boot/freeldr/freeldr/arch/i386/pcmem.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/pcrtc.c b/boot/freeldr/freeldr/arch/i386/pcrtc.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/pcrtc.c rename to boot/freeldr/freeldr/arch/i386/pcrtc.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/pcvideo.c b/boot/freeldr/freeldr/arch/i386/pcvideo.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/pcvideo.c rename to boot/freeldr/freeldr/arch/i386/pcvideo.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/winldr.c b/boot/freeldr/freeldr/arch/i386/winldr.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/winldr.c rename to boot/freeldr/freeldr/arch/i386/winldr.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/xboxcons.c b/boot/freeldr/freeldr/arch/i386/xboxcons.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/xboxcons.c rename to boot/freeldr/freeldr/arch/i386/xboxcons.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/xboxdisk.c b/boot/freeldr/freeldr/arch/i386/xboxdisk.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/xboxdisk.c rename to boot/freeldr/freeldr/arch/i386/xboxdisk.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/xboxfont.c b/boot/freeldr/freeldr/arch/i386/xboxfont.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/xboxfont.c rename to boot/freeldr/freeldr/arch/i386/xboxfont.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c b/boot/freeldr/freeldr/arch/i386/xboxhw.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c rename to boot/freeldr/freeldr/arch/i386/xboxhw.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/xboxi2c.c b/boot/freeldr/freeldr/arch/i386/xboxi2c.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/xboxi2c.c rename to boot/freeldr/freeldr/arch/i386/xboxi2c.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/xboxmem.c b/boot/freeldr/freeldr/arch/i386/xboxmem.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/xboxmem.c rename to boot/freeldr/freeldr/arch/i386/xboxmem.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/xboxrtc.c b/boot/freeldr/freeldr/arch/i386/xboxrtc.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/xboxrtc.c rename to boot/freeldr/freeldr/arch/i386/xboxrtc.c diff --git a/reactos/boot/freeldr/freeldr/arch/i386/xboxvideo.c b/boot/freeldr/freeldr/arch/i386/xboxvideo.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/i386/xboxvideo.c rename to boot/freeldr/freeldr/arch/i386/xboxvideo.c diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/boot.s b/boot/freeldr/freeldr/arch/powerpc/boot.s similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/boot.s rename to boot/freeldr/freeldr/arch/powerpc/boot.s diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/compat.h b/boot/freeldr/freeldr/arch/powerpc/compat.h similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/compat.h rename to boot/freeldr/freeldr/arch/powerpc/compat.h diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/loader.c b/boot/freeldr/freeldr/arch/powerpc/loader.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/loader.c rename to boot/freeldr/freeldr/arch/powerpc/loader.c diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/mach.c b/boot/freeldr/freeldr/arch/powerpc/mach.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/mach.c rename to boot/freeldr/freeldr/arch/powerpc/mach.c diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/mboot.c b/boot/freeldr/freeldr/arch/powerpc/mboot.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/mboot.c rename to boot/freeldr/freeldr/arch/powerpc/mboot.c diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/mmu.c b/boot/freeldr/freeldr/arch/powerpc/mmu.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/mmu.c rename to boot/freeldr/freeldr/arch/powerpc/mmu.c diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/ofw_method.c b/boot/freeldr/freeldr/arch/powerpc/ofw_method.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/ofw_method.c rename to boot/freeldr/freeldr/arch/powerpc/ofw_method.c diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/ofw_util.s b/boot/freeldr/freeldr/arch/powerpc/ofw_util.s similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/ofw_util.s rename to boot/freeldr/freeldr/arch/powerpc/ofw_util.s diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/prep.c b/boot/freeldr/freeldr/arch/powerpc/prep.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/prep.c rename to boot/freeldr/freeldr/arch/powerpc/prep.c diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/prep.h b/boot/freeldr/freeldr/arch/powerpc/prep.h similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/prep.h rename to boot/freeldr/freeldr/arch/powerpc/prep.h diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/prep_ide.c b/boot/freeldr/freeldr/arch/powerpc/prep_ide.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/prep_ide.c rename to boot/freeldr/freeldr/arch/powerpc/prep_ide.c diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/prep_pci.c b/boot/freeldr/freeldr/arch/powerpc/prep_pci.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/prep_pci.c rename to boot/freeldr/freeldr/arch/powerpc/prep_pci.c diff --git a/reactos/boot/freeldr/freeldr/arch/powerpc/prep_vga.c b/boot/freeldr/freeldr/arch/powerpc/prep_vga.c similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/powerpc/prep_vga.c rename to boot/freeldr/freeldr/arch/powerpc/prep_vga.c diff --git a/reactos/boot/freeldr/freeldr/arch/realmode/amd64.S b/boot/freeldr/freeldr/arch/realmode/amd64.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/realmode/amd64.S rename to boot/freeldr/freeldr/arch/realmode/amd64.S diff --git a/reactos/boot/freeldr/freeldr/arch/realmode/fathelp.inc b/boot/freeldr/freeldr/arch/realmode/fathelp.inc similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/realmode/fathelp.inc rename to boot/freeldr/freeldr/arch/realmode/fathelp.inc diff --git a/reactos/boot/freeldr/freeldr/arch/realmode/helpers.inc b/boot/freeldr/freeldr/arch/realmode/helpers.inc similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/realmode/helpers.inc rename to boot/freeldr/freeldr/arch/realmode/helpers.inc diff --git a/reactos/boot/freeldr/freeldr/arch/realmode/i386.S b/boot/freeldr/freeldr/arch/realmode/i386.S similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/realmode/i386.S rename to boot/freeldr/freeldr/arch/realmode/i386.S diff --git a/reactos/boot/freeldr/freeldr/arch/realmode/int386.inc b/boot/freeldr/freeldr/arch/realmode/int386.inc similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/realmode/int386.inc rename to boot/freeldr/freeldr/arch/realmode/int386.inc diff --git a/reactos/boot/freeldr/freeldr/arch/realmode/linux.inc b/boot/freeldr/freeldr/arch/realmode/linux.inc similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/realmode/linux.inc rename to boot/freeldr/freeldr/arch/realmode/linux.inc diff --git a/reactos/boot/freeldr/freeldr/arch/realmode/pnp.inc b/boot/freeldr/freeldr/arch/realmode/pnp.inc similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/realmode/pnp.inc rename to boot/freeldr/freeldr/arch/realmode/pnp.inc diff --git a/reactos/boot/freeldr/freeldr/arch/realmode/pxe.inc b/boot/freeldr/freeldr/arch/realmode/pxe.inc similarity index 100% rename from reactos/boot/freeldr/freeldr/arch/realmode/pxe.inc rename to boot/freeldr/freeldr/arch/realmode/pxe.inc diff --git a/reactos/boot/freeldr/freeldr/bootmgr.c b/boot/freeldr/freeldr/bootmgr.c similarity index 100% rename from reactos/boot/freeldr/freeldr/bootmgr.c rename to boot/freeldr/freeldr/bootmgr.c diff --git a/reactos/boot/freeldr/freeldr/cache/blocklist.c b/boot/freeldr/freeldr/cache/blocklist.c similarity index 100% rename from reactos/boot/freeldr/freeldr/cache/blocklist.c rename to boot/freeldr/freeldr/cache/blocklist.c diff --git a/reactos/boot/freeldr/freeldr/cache/cache.c b/boot/freeldr/freeldr/cache/cache.c similarity index 100% rename from reactos/boot/freeldr/freeldr/cache/cache.c rename to boot/freeldr/freeldr/cache/cache.c diff --git a/reactos/boot/freeldr/freeldr/cmdline.c b/boot/freeldr/freeldr/cmdline.c similarity index 100% rename from reactos/boot/freeldr/freeldr/cmdline.c rename to boot/freeldr/freeldr/cmdline.c diff --git a/reactos/boot/freeldr/freeldr/comm/rs232.c b/boot/freeldr/freeldr/comm/rs232.c similarity index 100% rename from reactos/boot/freeldr/freeldr/comm/rs232.c rename to boot/freeldr/freeldr/comm/rs232.c diff --git a/reactos/boot/freeldr/freeldr/debug.c b/boot/freeldr/freeldr/debug.c similarity index 100% rename from reactos/boot/freeldr/freeldr/debug.c rename to boot/freeldr/freeldr/debug.c diff --git a/reactos/boot/freeldr/freeldr/disk/disk.c b/boot/freeldr/freeldr/disk/disk.c similarity index 100% rename from reactos/boot/freeldr/freeldr/disk/disk.c rename to boot/freeldr/freeldr/disk/disk.c diff --git a/reactos/boot/freeldr/freeldr/disk/partition.c b/boot/freeldr/freeldr/disk/partition.c similarity index 100% rename from reactos/boot/freeldr/freeldr/disk/partition.c rename to boot/freeldr/freeldr/disk/partition.c diff --git a/reactos/boot/freeldr/freeldr/disk/ramdisk.c b/boot/freeldr/freeldr/disk/ramdisk.c similarity index 100% rename from reactos/boot/freeldr/freeldr/disk/ramdisk.c rename to boot/freeldr/freeldr/disk/ramdisk.c diff --git a/reactos/boot/freeldr/freeldr/disk/scsiport.c b/boot/freeldr/freeldr/disk/scsiport.c similarity index 100% rename from reactos/boot/freeldr/freeldr/disk/scsiport.c rename to boot/freeldr/freeldr/disk/scsiport.c diff --git a/reactos/boot/freeldr/freeldr/freeldr.c b/boot/freeldr/freeldr/freeldr.c similarity index 100% rename from reactos/boot/freeldr/freeldr/freeldr.c rename to boot/freeldr/freeldr/freeldr.c diff --git a/reactos/boot/freeldr/freeldr/freeldr.spec b/boot/freeldr/freeldr/freeldr.spec similarity index 100% rename from reactos/boot/freeldr/freeldr/freeldr.spec rename to boot/freeldr/freeldr/freeldr.spec diff --git a/reactos/boot/freeldr/freeldr/freeldr_amd64.lds b/boot/freeldr/freeldr/freeldr_amd64.lds similarity index 100% rename from reactos/boot/freeldr/freeldr/freeldr_amd64.lds rename to boot/freeldr/freeldr/freeldr_amd64.lds diff --git a/reactos/boot/freeldr/freeldr/freeldr_arm.lds b/boot/freeldr/freeldr/freeldr_arm.lds similarity index 100% rename from reactos/boot/freeldr/freeldr/freeldr_arm.lds rename to boot/freeldr/freeldr/freeldr_arm.lds diff --git a/reactos/boot/freeldr/freeldr/freeldr_i386.lds b/boot/freeldr/freeldr/freeldr_i386.lds similarity index 100% rename from reactos/boot/freeldr/freeldr/freeldr_i386.lds rename to boot/freeldr/freeldr/freeldr_i386.lds diff --git a/reactos/boot/freeldr/freeldr/fs/ext2.c b/boot/freeldr/freeldr/fs/ext2.c similarity index 100% rename from reactos/boot/freeldr/freeldr/fs/ext2.c rename to boot/freeldr/freeldr/fs/ext2.c diff --git a/reactos/boot/freeldr/freeldr/fs/fat.c b/boot/freeldr/freeldr/fs/fat.c similarity index 100% rename from reactos/boot/freeldr/freeldr/fs/fat.c rename to boot/freeldr/freeldr/fs/fat.c diff --git a/reactos/boot/freeldr/freeldr/fs/fs.c b/boot/freeldr/freeldr/fs/fs.c similarity index 100% rename from reactos/boot/freeldr/freeldr/fs/fs.c rename to boot/freeldr/freeldr/fs/fs.c diff --git a/reactos/boot/freeldr/freeldr/fs/iso.c b/boot/freeldr/freeldr/fs/iso.c similarity index 100% rename from reactos/boot/freeldr/freeldr/fs/iso.c rename to boot/freeldr/freeldr/fs/iso.c diff --git a/reactos/boot/freeldr/freeldr/fs/ntfs.c b/boot/freeldr/freeldr/fs/ntfs.c similarity index 100% rename from reactos/boot/freeldr/freeldr/fs/ntfs.c rename to boot/freeldr/freeldr/fs/ntfs.c diff --git a/reactos/boot/freeldr/freeldr/fs/pxe.c b/boot/freeldr/freeldr/fs/pxe.c similarity index 100% rename from reactos/boot/freeldr/freeldr/fs/pxe.c rename to boot/freeldr/freeldr/fs/pxe.c diff --git a/reactos/boot/freeldr/freeldr/include/arcemul.h b/boot/freeldr/freeldr/include/arcemul.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arcemul.h rename to boot/freeldr/freeldr/include/arcemul.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/amd64/amd64.h b/boot/freeldr/freeldr/include/arch/amd64/amd64.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/amd64/amd64.h rename to boot/freeldr/freeldr/include/arch/amd64/amd64.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h b/boot/freeldr/freeldr/include/arch/arm/hardware.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h rename to boot/freeldr/freeldr/include/arch/arm/hardware.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/i386/custom.h b/boot/freeldr/freeldr/include/arch/i386/custom.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/i386/custom.h rename to boot/freeldr/freeldr/include/arch/i386/custom.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/i386/drivemap.h b/boot/freeldr/freeldr/include/arch/i386/drivemap.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/i386/drivemap.h rename to boot/freeldr/freeldr/include/arch/i386/drivemap.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/i386/i386.h b/boot/freeldr/freeldr/include/arch/i386/i386.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/i386/i386.h rename to boot/freeldr/freeldr/include/arch/i386/i386.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/i386/machxbox.h b/boot/freeldr/freeldr/include/arch/i386/machxbox.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/i386/machxbox.h rename to boot/freeldr/freeldr/include/arch/i386/machxbox.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/i386/miscboot.h b/boot/freeldr/freeldr/include/arch/i386/miscboot.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/i386/miscboot.h rename to boot/freeldr/freeldr/include/arch/i386/miscboot.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/pc/hardware.h b/boot/freeldr/freeldr/include/arch/pc/hardware.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/pc/hardware.h rename to boot/freeldr/freeldr/include/arch/pc/hardware.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/pc/machpc.h b/boot/freeldr/freeldr/include/arch/pc/machpc.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/pc/machpc.h rename to boot/freeldr/freeldr/include/arch/pc/machpc.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/pc/pcbios.h b/boot/freeldr/freeldr/include/arch/pc/pcbios.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/pc/pcbios.h rename to boot/freeldr/freeldr/include/arch/pc/pcbios.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/pc/pxe.h b/boot/freeldr/freeldr/include/arch/pc/pxe.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/pc/pxe.h rename to boot/freeldr/freeldr/include/arch/pc/pxe.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h b/boot/freeldr/freeldr/include/arch/pc/x86common.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h rename to boot/freeldr/freeldr/include/arch/pc/x86common.h diff --git a/reactos/boot/freeldr/freeldr/include/arch/powerpc/hardware.h b/boot/freeldr/freeldr/include/arch/powerpc/hardware.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/arch/powerpc/hardware.h rename to boot/freeldr/freeldr/include/arch/powerpc/hardware.h diff --git a/reactos/boot/freeldr/freeldr/include/bytesex.h b/boot/freeldr/freeldr/include/bytesex.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/bytesex.h rename to boot/freeldr/freeldr/include/bytesex.h diff --git a/reactos/boot/freeldr/freeldr/include/cache.h b/boot/freeldr/freeldr/include/cache.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/cache.h rename to boot/freeldr/freeldr/include/cache.h diff --git a/reactos/boot/freeldr/freeldr/include/cmdline.h b/boot/freeldr/freeldr/include/cmdline.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/cmdline.h rename to boot/freeldr/freeldr/include/cmdline.h diff --git a/reactos/boot/freeldr/freeldr/include/comm.h b/boot/freeldr/freeldr/include/comm.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/comm.h rename to boot/freeldr/freeldr/include/comm.h diff --git a/reactos/boot/freeldr/freeldr/include/debug.h b/boot/freeldr/freeldr/include/debug.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/debug.h rename to boot/freeldr/freeldr/include/debug.h diff --git a/reactos/boot/freeldr/freeldr/include/disk.h b/boot/freeldr/freeldr/include/disk.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/disk.h rename to boot/freeldr/freeldr/include/disk.h diff --git a/reactos/boot/freeldr/freeldr/include/freeldr.h b/boot/freeldr/freeldr/include/freeldr.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/freeldr.h rename to boot/freeldr/freeldr/include/freeldr.h diff --git a/reactos/boot/freeldr/freeldr/include/fs.h b/boot/freeldr/freeldr/include/fs.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/fs.h rename to boot/freeldr/freeldr/include/fs.h diff --git a/reactos/boot/freeldr/freeldr/include/fs/ext2.h b/boot/freeldr/freeldr/include/fs/ext2.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/fs/ext2.h rename to boot/freeldr/freeldr/include/fs/ext2.h diff --git a/reactos/boot/freeldr/freeldr/include/fs/fat.h b/boot/freeldr/freeldr/include/fs/fat.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/fs/fat.h rename to boot/freeldr/freeldr/include/fs/fat.h diff --git a/reactos/boot/freeldr/freeldr/include/fs/iso.h b/boot/freeldr/freeldr/include/fs/iso.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/fs/iso.h rename to boot/freeldr/freeldr/include/fs/iso.h diff --git a/reactos/boot/freeldr/freeldr/include/fs/ntfs.h b/boot/freeldr/freeldr/include/fs/ntfs.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/fs/ntfs.h rename to boot/freeldr/freeldr/include/fs/ntfs.h diff --git a/reactos/boot/freeldr/freeldr/include/fs/pxe.h b/boot/freeldr/freeldr/include/fs/pxe.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/fs/pxe.h rename to boot/freeldr/freeldr/include/fs/pxe.h diff --git a/reactos/boot/freeldr/freeldr/include/inffile.h b/boot/freeldr/freeldr/include/inffile.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/inffile.h rename to boot/freeldr/freeldr/include/inffile.h diff --git a/reactos/boot/freeldr/freeldr/include/inifile.h b/boot/freeldr/freeldr/include/inifile.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/inifile.h rename to boot/freeldr/freeldr/include/inifile.h diff --git a/reactos/boot/freeldr/freeldr/include/keycodes.h b/boot/freeldr/freeldr/include/keycodes.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/keycodes.h rename to boot/freeldr/freeldr/include/keycodes.h diff --git a/reactos/boot/freeldr/freeldr/include/linux.h b/boot/freeldr/freeldr/include/linux.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/linux.h rename to boot/freeldr/freeldr/include/linux.h diff --git a/reactos/boot/freeldr/freeldr/include/machine.h b/boot/freeldr/freeldr/include/machine.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/machine.h rename to boot/freeldr/freeldr/include/machine.h diff --git a/reactos/boot/freeldr/freeldr/include/mm.h b/boot/freeldr/freeldr/include/mm.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/mm.h rename to boot/freeldr/freeldr/include/mm.h diff --git a/reactos/boot/freeldr/freeldr/include/multiboot.h b/boot/freeldr/freeldr/include/multiboot.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/multiboot.h rename to boot/freeldr/freeldr/include/multiboot.h diff --git a/reactos/boot/freeldr/freeldr/include/ntoskrnl.h b/boot/freeldr/freeldr/include/ntoskrnl.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/ntoskrnl.h rename to boot/freeldr/freeldr/include/ntoskrnl.h diff --git a/reactos/boot/freeldr/freeldr/include/of.h b/boot/freeldr/freeldr/include/of.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/of.h rename to boot/freeldr/freeldr/include/of.h diff --git a/reactos/boot/freeldr/freeldr/include/options.h b/boot/freeldr/freeldr/include/options.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/options.h rename to boot/freeldr/freeldr/include/options.h diff --git a/reactos/boot/freeldr/freeldr/include/oslist.h b/boot/freeldr/freeldr/include/oslist.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/oslist.h rename to boot/freeldr/freeldr/include/oslist.h diff --git a/reactos/boot/freeldr/freeldr/include/ramdisk.h b/boot/freeldr/freeldr/include/ramdisk.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/ramdisk.h rename to boot/freeldr/freeldr/include/ramdisk.h diff --git a/reactos/boot/freeldr/freeldr/include/reactos.h b/boot/freeldr/freeldr/include/reactos.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/reactos.h rename to boot/freeldr/freeldr/include/reactos.h diff --git a/reactos/boot/freeldr/freeldr/include/registry.h b/boot/freeldr/freeldr/include/registry.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/registry.h rename to boot/freeldr/freeldr/include/registry.h diff --git a/reactos/boot/freeldr/freeldr/include/ui.h b/boot/freeldr/freeldr/include/ui.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/ui.h rename to boot/freeldr/freeldr/include/ui.h diff --git a/reactos/boot/freeldr/freeldr/include/ui/gui.h b/boot/freeldr/freeldr/include/ui/gui.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/ui/gui.h rename to boot/freeldr/freeldr/include/ui/gui.h diff --git a/reactos/boot/freeldr/freeldr/include/ui/minitui.h b/boot/freeldr/freeldr/include/ui/minitui.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/ui/minitui.h rename to boot/freeldr/freeldr/include/ui/minitui.h diff --git a/reactos/boot/freeldr/freeldr/include/ui/noui.h b/boot/freeldr/freeldr/include/ui/noui.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/ui/noui.h rename to boot/freeldr/freeldr/include/ui/noui.h diff --git a/reactos/boot/freeldr/freeldr/include/ui/tui.h b/boot/freeldr/freeldr/include/ui/tui.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/ui/tui.h rename to boot/freeldr/freeldr/include/ui/tui.h diff --git a/reactos/boot/freeldr/freeldr/include/ver.h b/boot/freeldr/freeldr/include/ver.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/ver.h rename to boot/freeldr/freeldr/include/ver.h diff --git a/reactos/boot/freeldr/freeldr/include/video.h b/boot/freeldr/freeldr/include/video.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/video.h rename to boot/freeldr/freeldr/include/video.h diff --git a/reactos/boot/freeldr/freeldr/include/winldr.h b/boot/freeldr/freeldr/include/winldr.h similarity index 100% rename from reactos/boot/freeldr/freeldr/include/winldr.h rename to boot/freeldr/freeldr/include/winldr.h diff --git a/reactos/boot/freeldr/freeldr/inffile/inffile.c b/boot/freeldr/freeldr/inffile/inffile.c similarity index 100% rename from reactos/boot/freeldr/freeldr/inffile/inffile.c rename to boot/freeldr/freeldr/inffile/inffile.c diff --git a/reactos/boot/freeldr/freeldr/inifile/ini_init.c b/boot/freeldr/freeldr/inifile/ini_init.c similarity index 100% rename from reactos/boot/freeldr/freeldr/inifile/ini_init.c rename to boot/freeldr/freeldr/inifile/ini_init.c diff --git a/reactos/boot/freeldr/freeldr/inifile/inifile.c b/boot/freeldr/freeldr/inifile/inifile.c similarity index 100% rename from reactos/boot/freeldr/freeldr/inifile/inifile.c rename to boot/freeldr/freeldr/inifile/inifile.c diff --git a/reactos/boot/freeldr/freeldr/inifile/parse.c b/boot/freeldr/freeldr/inifile/parse.c similarity index 100% rename from reactos/boot/freeldr/freeldr/inifile/parse.c rename to boot/freeldr/freeldr/inifile/parse.c diff --git a/reactos/boot/freeldr/freeldr/linuxboot.c b/boot/freeldr/freeldr/linuxboot.c similarity index 100% rename from reactos/boot/freeldr/freeldr/linuxboot.c rename to boot/freeldr/freeldr/linuxboot.c diff --git a/reactos/boot/freeldr/freeldr/machine.c b/boot/freeldr/freeldr/machine.c similarity index 100% rename from reactos/boot/freeldr/freeldr/machine.c rename to boot/freeldr/freeldr/machine.c diff --git a/reactos/boot/freeldr/freeldr/mm/heap.c b/boot/freeldr/freeldr/mm/heap.c similarity index 100% rename from reactos/boot/freeldr/freeldr/mm/heap.c rename to boot/freeldr/freeldr/mm/heap.c diff --git a/reactos/boot/freeldr/freeldr/mm/meminit.c b/boot/freeldr/freeldr/mm/meminit.c similarity index 100% rename from reactos/boot/freeldr/freeldr/mm/meminit.c rename to boot/freeldr/freeldr/mm/meminit.c diff --git a/reactos/boot/freeldr/freeldr/mm/mm.c b/boot/freeldr/freeldr/mm/mm.c similarity index 100% rename from reactos/boot/freeldr/freeldr/mm/mm.c rename to boot/freeldr/freeldr/mm/mm.c diff --git a/reactos/boot/freeldr/freeldr/options.c b/boot/freeldr/freeldr/options.c similarity index 100% rename from reactos/boot/freeldr/freeldr/options.c rename to boot/freeldr/freeldr/options.c diff --git a/reactos/boot/freeldr/freeldr/oslist.c b/boot/freeldr/freeldr/oslist.c similarity index 100% rename from reactos/boot/freeldr/freeldr/oslist.c rename to boot/freeldr/freeldr/oslist.c diff --git a/reactos/boot/freeldr/freeldr/reactos/archwsup.c b/boot/freeldr/freeldr/reactos/archwsup.c similarity index 100% rename from reactos/boot/freeldr/freeldr/reactos/archwsup.c rename to boot/freeldr/freeldr/reactos/archwsup.c diff --git a/reactos/boot/freeldr/freeldr/reactos/arcname.c b/boot/freeldr/freeldr/reactos/arcname.c similarity index 100% rename from reactos/boot/freeldr/freeldr/reactos/arcname.c rename to boot/freeldr/freeldr/reactos/arcname.c diff --git a/reactos/boot/freeldr/freeldr/reactos/binhive.c b/boot/freeldr/freeldr/reactos/binhive.c similarity index 100% rename from reactos/boot/freeldr/freeldr/reactos/binhive.c rename to boot/freeldr/freeldr/reactos/binhive.c diff --git a/reactos/boot/freeldr/freeldr/reactos/registry.c b/boot/freeldr/freeldr/reactos/registry.c similarity index 100% rename from reactos/boot/freeldr/freeldr/reactos/registry.c rename to boot/freeldr/freeldr/reactos/registry.c diff --git a/reactos/boot/freeldr/freeldr/rtl/libsupp.c b/boot/freeldr/freeldr/rtl/libsupp.c similarity index 100% rename from reactos/boot/freeldr/freeldr/rtl/libsupp.c rename to boot/freeldr/freeldr/rtl/libsupp.c diff --git a/reactos/boot/freeldr/freeldr/ui/directui.c b/boot/freeldr/freeldr/ui/directui.c similarity index 100% rename from reactos/boot/freeldr/freeldr/ui/directui.c rename to boot/freeldr/freeldr/ui/directui.c diff --git a/reactos/boot/freeldr/freeldr/ui/gui.c b/boot/freeldr/freeldr/ui/gui.c similarity index 100% rename from reactos/boot/freeldr/freeldr/ui/gui.c rename to boot/freeldr/freeldr/ui/gui.c diff --git a/reactos/boot/freeldr/freeldr/ui/minitui.c b/boot/freeldr/freeldr/ui/minitui.c similarity index 100% rename from reactos/boot/freeldr/freeldr/ui/minitui.c rename to boot/freeldr/freeldr/ui/minitui.c diff --git a/reactos/boot/freeldr/freeldr/ui/noui.c b/boot/freeldr/freeldr/ui/noui.c similarity index 100% rename from reactos/boot/freeldr/freeldr/ui/noui.c rename to boot/freeldr/freeldr/ui/noui.c diff --git a/reactos/boot/freeldr/freeldr/ui/tui.c b/boot/freeldr/freeldr/ui/tui.c similarity index 100% rename from reactos/boot/freeldr/freeldr/ui/tui.c rename to boot/freeldr/freeldr/ui/tui.c diff --git a/reactos/boot/freeldr/freeldr/ui/tuimenu.c b/boot/freeldr/freeldr/ui/tuimenu.c similarity index 100% rename from reactos/boot/freeldr/freeldr/ui/tuimenu.c rename to boot/freeldr/freeldr/ui/tuimenu.c diff --git a/reactos/boot/freeldr/freeldr/ui/ui.c b/boot/freeldr/freeldr/ui/ui.c similarity index 100% rename from reactos/boot/freeldr/freeldr/ui/ui.c rename to boot/freeldr/freeldr/ui/ui.c diff --git a/reactos/boot/freeldr/freeldr/version.c b/boot/freeldr/freeldr/version.c similarity index 100% rename from reactos/boot/freeldr/freeldr/version.c rename to boot/freeldr/freeldr/version.c diff --git a/reactos/boot/freeldr/freeldr/video/fade.c b/boot/freeldr/freeldr/video/fade.c similarity index 100% rename from reactos/boot/freeldr/freeldr/video/fade.c rename to boot/freeldr/freeldr/video/fade.c diff --git a/reactos/boot/freeldr/freeldr/video/palette.c b/boot/freeldr/freeldr/video/palette.c similarity index 100% rename from reactos/boot/freeldr/freeldr/video/palette.c rename to boot/freeldr/freeldr/video/palette.c diff --git a/reactos/boot/freeldr/freeldr/video/video.c b/boot/freeldr/freeldr/video/video.c similarity index 100% rename from reactos/boot/freeldr/freeldr/video/video.c rename to boot/freeldr/freeldr/video/video.c diff --git a/reactos/boot/freeldr/freeldr/windows/conversion.c b/boot/freeldr/freeldr/windows/conversion.c similarity index 100% rename from reactos/boot/freeldr/freeldr/windows/conversion.c rename to boot/freeldr/freeldr/windows/conversion.c diff --git a/reactos/boot/freeldr/freeldr/windows/headless.c b/boot/freeldr/freeldr/windows/headless.c similarity index 100% rename from reactos/boot/freeldr/freeldr/windows/headless.c rename to boot/freeldr/freeldr/windows/headless.c diff --git a/reactos/boot/freeldr/freeldr/windows/peloader.c b/boot/freeldr/freeldr/windows/peloader.c similarity index 100% rename from reactos/boot/freeldr/freeldr/windows/peloader.c rename to boot/freeldr/freeldr/windows/peloader.c diff --git a/reactos/boot/freeldr/freeldr/windows/setupldr.c b/boot/freeldr/freeldr/windows/setupldr.c similarity index 100% rename from reactos/boot/freeldr/freeldr/windows/setupldr.c rename to boot/freeldr/freeldr/windows/setupldr.c diff --git a/reactos/boot/freeldr/freeldr/windows/winldr.c b/boot/freeldr/freeldr/windows/winldr.c similarity index 100% rename from reactos/boot/freeldr/freeldr/windows/winldr.c rename to boot/freeldr/freeldr/windows/winldr.c diff --git a/reactos/boot/freeldr/freeldr/windows/wlmemory.c b/boot/freeldr/freeldr/windows/wlmemory.c similarity index 100% rename from reactos/boot/freeldr/freeldr/windows/wlmemory.c rename to boot/freeldr/freeldr/windows/wlmemory.c diff --git a/reactos/boot/freeldr/freeldr/windows/wlregistry.c b/boot/freeldr/freeldr/windows/wlregistry.c similarity index 100% rename from reactos/boot/freeldr/freeldr/windows/wlregistry.c rename to boot/freeldr/freeldr/windows/wlregistry.c diff --git a/reactos/boot/freeldr/install/CMakeLists.txt b/boot/freeldr/install/CMakeLists.txt similarity index 100% rename from reactos/boot/freeldr/install/CMakeLists.txt rename to boot/freeldr/install/CMakeLists.txt diff --git a/reactos/boot/freeldr/install/install.c b/boot/freeldr/install/install.c similarity index 100% rename from reactos/boot/freeldr/install/install.c rename to boot/freeldr/install/install.c diff --git a/reactos/boot/freeldr/install/install.h b/boot/freeldr/install/install.h similarity index 100% rename from reactos/boot/freeldr/install/install.h rename to boot/freeldr/install/install.h diff --git a/reactos/boot/freeldr/install/linux/finstext2.c b/boot/freeldr/install/linux/finstext2.c similarity index 100% rename from reactos/boot/freeldr/install/linux/finstext2.c rename to boot/freeldr/install/linux/finstext2.c diff --git a/reactos/boot/freeldr/install/linux/finstext2.h b/boot/freeldr/install/linux/finstext2.h similarity index 100% rename from reactos/boot/freeldr/install/linux/finstext2.h rename to boot/freeldr/install/linux/finstext2.h diff --git a/reactos/boot/freeldr/install/volume.c b/boot/freeldr/install/volume.c similarity index 100% rename from reactos/boot/freeldr/install/volume.c rename to boot/freeldr/install/volume.c diff --git a/reactos/boot/freeldr/install/volume.h b/boot/freeldr/install/volume.h similarity index 100% rename from reactos/boot/freeldr/install/volume.h rename to boot/freeldr/install/volume.h diff --git a/reactos/boot/freeldr/notes.txt b/boot/freeldr/notes.txt similarity index 100% rename from reactos/boot/freeldr/notes.txt rename to boot/freeldr/notes.txt diff --git a/reactos/boot/freeldr/tools/.cvsignore b/boot/freeldr/tools/.cvsignore similarity index 100% rename from reactos/boot/freeldr/tools/.cvsignore rename to boot/freeldr/tools/.cvsignore diff --git a/reactos/boot/freeldr/tools/deptool.c b/boot/freeldr/tools/deptool.c similarity index 100% rename from reactos/boot/freeldr/tools/deptool.c rename to boot/freeldr/tools/deptool.c diff --git a/reactos/boot/freeldr/tools/hosttype.c b/boot/freeldr/tools/hosttype.c similarity index 100% rename from reactos/boot/freeldr/tools/hosttype.c rename to boot/freeldr/tools/hosttype.c diff --git a/reactos/boot/freeldr/tools/rcopy.c b/boot/freeldr/tools/rcopy.c similarity index 100% rename from reactos/boot/freeldr/tools/rcopy.c rename to boot/freeldr/tools/rcopy.c diff --git a/reactos/boot/freeldr/tools/rdel.c b/boot/freeldr/tools/rdel.c similarity index 100% rename from reactos/boot/freeldr/tools/rdel.c rename to boot/freeldr/tools/rdel.c diff --git a/reactos/boot/freeldr/tools/rmkdir.c b/boot/freeldr/tools/rmkdir.c similarity index 100% rename from reactos/boot/freeldr/tools/rmkdir.c rename to boot/freeldr/tools/rmkdir.c diff --git a/reactos/boot/freeldr/tools/rrmdir.c b/boot/freeldr/tools/rrmdir.c similarity index 100% rename from reactos/boot/freeldr/tools/rrmdir.c rename to boot/freeldr/tools/rrmdir.c diff --git a/reactos/cmake/CMakeDetermineASMCompiler.cmake b/cmake/CMakeDetermineASMCompiler.cmake similarity index 100% rename from reactos/cmake/CMakeDetermineASMCompiler.cmake rename to cmake/CMakeDetermineASMCompiler.cmake diff --git a/reactos/cmake/CMakeDetermineCompilerId.cmake b/cmake/CMakeDetermineCompilerId.cmake similarity index 100% rename from reactos/cmake/CMakeDetermineCompilerId.cmake rename to cmake/CMakeDetermineCompilerId.cmake diff --git a/reactos/cmake/CMakeMacros.cmake b/cmake/CMakeMacros.cmake similarity index 100% rename from reactos/cmake/CMakeMacros.cmake rename to cmake/CMakeMacros.cmake diff --git a/reactos/cmake/CMakeParseArguments.cmake b/cmake/CMakeParseArguments.cmake similarity index 100% rename from reactos/cmake/CMakeParseArguments.cmake rename to cmake/CMakeParseArguments.cmake diff --git a/reactos/cmake/Compiler/VISUAL-ASM.cmake b/cmake/Compiler/VISUAL-ASM.cmake similarity index 100% rename from reactos/cmake/Compiler/VISUAL-ASM.cmake rename to cmake/Compiler/VISUAL-ASM.cmake diff --git a/reactos/cmake/Platform/Windows-cl.cmake b/cmake/Platform/Windows-cl.cmake similarity index 100% rename from reactos/cmake/Platform/Windows-cl.cmake rename to cmake/Platform/Windows-cl.cmake diff --git a/reactos/cmake/Platform/Windows.cmake b/cmake/Platform/Windows.cmake similarity index 100% rename from reactos/cmake/Platform/Windows.cmake rename to cmake/Platform/Windows.cmake diff --git a/reactos/cmake/baseaddress.cmake b/cmake/baseaddress.cmake similarity index 100% rename from reactos/cmake/baseaddress.cmake rename to cmake/baseaddress.cmake diff --git a/reactos/cmake/compilerflags.cmake b/cmake/compilerflags.cmake similarity index 100% rename from reactos/cmake/compilerflags.cmake rename to cmake/compilerflags.cmake diff --git a/reactos/cmake/config-amd64.cmake b/cmake/config-amd64.cmake similarity index 100% rename from reactos/cmake/config-amd64.cmake rename to cmake/config-amd64.cmake diff --git a/reactos/cmake/config-arm.cmake b/cmake/config-arm.cmake similarity index 100% rename from reactos/cmake/config-arm.cmake rename to cmake/config-arm.cmake diff --git a/reactos/cmake/config.cmake b/cmake/config.cmake similarity index 100% rename from reactos/cmake/config.cmake rename to cmake/config.cmake diff --git a/reactos/cmake/gcc.cmake b/cmake/gcc.cmake similarity index 100% rename from reactos/cmake/gcc.cmake rename to cmake/gcc.cmake diff --git a/reactos/cmake/localization.cmake b/cmake/localization.cmake similarity index 100% rename from reactos/cmake/localization.cmake rename to cmake/localization.cmake diff --git a/reactos/cmake/midl-support.cmake b/cmake/midl-support.cmake similarity index 100% rename from reactos/cmake/midl-support.cmake rename to cmake/midl-support.cmake diff --git a/reactos/cmake/msvc.cmake b/cmake/msvc.cmake similarity index 100% rename from reactos/cmake/msvc.cmake rename to cmake/msvc.cmake diff --git a/reactos/cmake/widl-support.cmake b/cmake/widl-support.cmake similarity index 100% rename from reactos/cmake/widl-support.cmake rename to cmake/widl-support.cmake diff --git a/reactos/cmake/writing_CmakeLists_for_ReactOS.txt b/cmake/writing_CmakeLists_for_ReactOS.txt similarity index 100% rename from reactos/cmake/writing_CmakeLists_for_ReactOS.txt rename to cmake/writing_CmakeLists_for_ReactOS.txt diff --git a/reactos/configure.cmd b/configure.cmd similarity index 100% rename from reactos/configure.cmd rename to configure.cmd diff --git a/reactos/configure.sh b/configure.sh similarity index 100% rename from reactos/configure.sh rename to configure.sh diff --git a/reactos/depmap.xsl b/depmap.xsl similarity index 100% rename from reactos/depmap.xsl rename to depmap.xsl diff --git a/reactos/dll/3rdparty/CMakeLists.txt b/dll/3rdparty/CMakeLists.txt similarity index 100% rename from reactos/dll/3rdparty/CMakeLists.txt rename to dll/3rdparty/CMakeLists.txt diff --git a/reactos/dll/3rdparty/dxtn/CMakeLists.txt b/dll/3rdparty/dxtn/CMakeLists.txt similarity index 100% rename from reactos/dll/3rdparty/dxtn/CMakeLists.txt rename to dll/3rdparty/dxtn/CMakeLists.txt diff --git a/reactos/dll/3rdparty/dxtn/dxtn.c b/dll/3rdparty/dxtn/dxtn.c similarity index 100% rename from reactos/dll/3rdparty/dxtn/dxtn.c rename to dll/3rdparty/dxtn/dxtn.c diff --git a/reactos/dll/3rdparty/dxtn/dxtn.h b/dll/3rdparty/dxtn/dxtn.h similarity index 100% rename from reactos/dll/3rdparty/dxtn/dxtn.h rename to dll/3rdparty/dxtn/dxtn.h diff --git a/reactos/dll/3rdparty/dxtn/dxtn.spec b/dll/3rdparty/dxtn/dxtn.spec similarity index 100% rename from reactos/dll/3rdparty/dxtn/dxtn.spec rename to dll/3rdparty/dxtn/dxtn.spec diff --git a/reactos/dll/3rdparty/dxtn/fxt1.c b/dll/3rdparty/dxtn/fxt1.c similarity index 100% rename from reactos/dll/3rdparty/dxtn/fxt1.c rename to dll/3rdparty/dxtn/fxt1.c diff --git a/reactos/dll/3rdparty/dxtn/fxt1.h b/dll/3rdparty/dxtn/fxt1.h similarity index 100% rename from reactos/dll/3rdparty/dxtn/fxt1.h rename to dll/3rdparty/dxtn/fxt1.h diff --git a/reactos/dll/3rdparty/dxtn/internal.h b/dll/3rdparty/dxtn/internal.h similarity index 100% rename from reactos/dll/3rdparty/dxtn/internal.h rename to dll/3rdparty/dxtn/internal.h diff --git a/reactos/dll/3rdparty/dxtn/texstore.c b/dll/3rdparty/dxtn/texstore.c similarity index 100% rename from reactos/dll/3rdparty/dxtn/texstore.c rename to dll/3rdparty/dxtn/texstore.c diff --git a/reactos/dll/3rdparty/dxtn/types.h b/dll/3rdparty/dxtn/types.h similarity index 100% rename from reactos/dll/3rdparty/dxtn/types.h rename to dll/3rdparty/dxtn/types.h diff --git a/reactos/dll/3rdparty/dxtn/wrapper.c b/dll/3rdparty/dxtn/wrapper.c similarity index 100% rename from reactos/dll/3rdparty/dxtn/wrapper.c rename to dll/3rdparty/dxtn/wrapper.c diff --git a/reactos/dll/3rdparty/libjpeg/CMakeLists.txt b/dll/3rdparty/libjpeg/CMakeLists.txt similarity index 100% rename from reactos/dll/3rdparty/libjpeg/CMakeLists.txt rename to dll/3rdparty/libjpeg/CMakeLists.txt diff --git a/reactos/dll/3rdparty/libjpeg/README b/dll/3rdparty/libjpeg/README similarity index 100% rename from reactos/dll/3rdparty/libjpeg/README rename to dll/3rdparty/libjpeg/README diff --git a/reactos/dll/3rdparty/libjpeg/ansi2knr.c b/dll/3rdparty/libjpeg/ansi2knr.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/ansi2knr.c rename to dll/3rdparty/libjpeg/ansi2knr.c diff --git a/reactos/dll/3rdparty/libjpeg/cdjpeg.c b/dll/3rdparty/libjpeg/cdjpeg.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/cdjpeg.c rename to dll/3rdparty/libjpeg/cdjpeg.c diff --git a/reactos/dll/3rdparty/libjpeg/change.log b/dll/3rdparty/libjpeg/change.log similarity index 100% rename from reactos/dll/3rdparty/libjpeg/change.log rename to dll/3rdparty/libjpeg/change.log diff --git a/reactos/dll/3rdparty/libjpeg/cjpeg.c b/dll/3rdparty/libjpeg/cjpeg.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/cjpeg.c rename to dll/3rdparty/libjpeg/cjpeg.c diff --git a/reactos/dll/3rdparty/libjpeg/ckconfig.c b/dll/3rdparty/libjpeg/ckconfig.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/ckconfig.c rename to dll/3rdparty/libjpeg/ckconfig.c diff --git a/reactos/dll/3rdparty/libjpeg/djpeg.c b/dll/3rdparty/libjpeg/djpeg.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/djpeg.c rename to dll/3rdparty/libjpeg/djpeg.c diff --git a/reactos/dll/3rdparty/libjpeg/example.c b/dll/3rdparty/libjpeg/example.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/example.c rename to dll/3rdparty/libjpeg/example.c diff --git a/reactos/dll/3rdparty/libjpeg/jaricom.c b/dll/3rdparty/libjpeg/jaricom.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jaricom.c rename to dll/3rdparty/libjpeg/jaricom.c diff --git a/reactos/dll/3rdparty/libjpeg/jcapimin.c b/dll/3rdparty/libjpeg/jcapimin.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcapimin.c rename to dll/3rdparty/libjpeg/jcapimin.c diff --git a/reactos/dll/3rdparty/libjpeg/jcapistd.c b/dll/3rdparty/libjpeg/jcapistd.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcapistd.c rename to dll/3rdparty/libjpeg/jcapistd.c diff --git a/reactos/dll/3rdparty/libjpeg/jcarith.c b/dll/3rdparty/libjpeg/jcarith.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcarith.c rename to dll/3rdparty/libjpeg/jcarith.c diff --git a/reactos/dll/3rdparty/libjpeg/jccoefct.c b/dll/3rdparty/libjpeg/jccoefct.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jccoefct.c rename to dll/3rdparty/libjpeg/jccoefct.c diff --git a/reactos/dll/3rdparty/libjpeg/jccolor.c b/dll/3rdparty/libjpeg/jccolor.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jccolor.c rename to dll/3rdparty/libjpeg/jccolor.c diff --git a/reactos/dll/3rdparty/libjpeg/jcdctmgr.c b/dll/3rdparty/libjpeg/jcdctmgr.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcdctmgr.c rename to dll/3rdparty/libjpeg/jcdctmgr.c diff --git a/reactos/dll/3rdparty/libjpeg/jchuff.c b/dll/3rdparty/libjpeg/jchuff.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jchuff.c rename to dll/3rdparty/libjpeg/jchuff.c diff --git a/reactos/dll/3rdparty/libjpeg/jcinit.c b/dll/3rdparty/libjpeg/jcinit.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcinit.c rename to dll/3rdparty/libjpeg/jcinit.c diff --git a/reactos/dll/3rdparty/libjpeg/jcmainct.c b/dll/3rdparty/libjpeg/jcmainct.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcmainct.c rename to dll/3rdparty/libjpeg/jcmainct.c diff --git a/reactos/dll/3rdparty/libjpeg/jcmarker.c b/dll/3rdparty/libjpeg/jcmarker.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcmarker.c rename to dll/3rdparty/libjpeg/jcmarker.c diff --git a/reactos/dll/3rdparty/libjpeg/jcmaster.c b/dll/3rdparty/libjpeg/jcmaster.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcmaster.c rename to dll/3rdparty/libjpeg/jcmaster.c diff --git a/reactos/dll/3rdparty/libjpeg/jcomapi.c b/dll/3rdparty/libjpeg/jcomapi.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcomapi.c rename to dll/3rdparty/libjpeg/jcomapi.c diff --git a/reactos/dll/3rdparty/libjpeg/jcparam.c b/dll/3rdparty/libjpeg/jcparam.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcparam.c rename to dll/3rdparty/libjpeg/jcparam.c diff --git a/reactos/dll/3rdparty/libjpeg/jcprepct.c b/dll/3rdparty/libjpeg/jcprepct.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcprepct.c rename to dll/3rdparty/libjpeg/jcprepct.c diff --git a/reactos/dll/3rdparty/libjpeg/jcsample.c b/dll/3rdparty/libjpeg/jcsample.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jcsample.c rename to dll/3rdparty/libjpeg/jcsample.c diff --git a/reactos/dll/3rdparty/libjpeg/jctrans.c b/dll/3rdparty/libjpeg/jctrans.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jctrans.c rename to dll/3rdparty/libjpeg/jctrans.c diff --git a/reactos/dll/3rdparty/libjpeg/jdapimin.c b/dll/3rdparty/libjpeg/jdapimin.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdapimin.c rename to dll/3rdparty/libjpeg/jdapimin.c diff --git a/reactos/dll/3rdparty/libjpeg/jdapistd.c b/dll/3rdparty/libjpeg/jdapistd.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdapistd.c rename to dll/3rdparty/libjpeg/jdapistd.c diff --git a/reactos/dll/3rdparty/libjpeg/jdarith.c b/dll/3rdparty/libjpeg/jdarith.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdarith.c rename to dll/3rdparty/libjpeg/jdarith.c diff --git a/reactos/dll/3rdparty/libjpeg/jdatadst.c b/dll/3rdparty/libjpeg/jdatadst.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdatadst.c rename to dll/3rdparty/libjpeg/jdatadst.c diff --git a/reactos/dll/3rdparty/libjpeg/jdatasrc.c b/dll/3rdparty/libjpeg/jdatasrc.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdatasrc.c rename to dll/3rdparty/libjpeg/jdatasrc.c diff --git a/reactos/dll/3rdparty/libjpeg/jdcoefct.c b/dll/3rdparty/libjpeg/jdcoefct.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdcoefct.c rename to dll/3rdparty/libjpeg/jdcoefct.c diff --git a/reactos/dll/3rdparty/libjpeg/jdcolor.c b/dll/3rdparty/libjpeg/jdcolor.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdcolor.c rename to dll/3rdparty/libjpeg/jdcolor.c diff --git a/reactos/dll/3rdparty/libjpeg/jddctmgr.c b/dll/3rdparty/libjpeg/jddctmgr.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jddctmgr.c rename to dll/3rdparty/libjpeg/jddctmgr.c diff --git a/reactos/dll/3rdparty/libjpeg/jdhuff.c b/dll/3rdparty/libjpeg/jdhuff.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdhuff.c rename to dll/3rdparty/libjpeg/jdhuff.c diff --git a/reactos/dll/3rdparty/libjpeg/jdinput.c b/dll/3rdparty/libjpeg/jdinput.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdinput.c rename to dll/3rdparty/libjpeg/jdinput.c diff --git a/reactos/dll/3rdparty/libjpeg/jdmainct.c b/dll/3rdparty/libjpeg/jdmainct.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdmainct.c rename to dll/3rdparty/libjpeg/jdmainct.c diff --git a/reactos/dll/3rdparty/libjpeg/jdmarker.c b/dll/3rdparty/libjpeg/jdmarker.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdmarker.c rename to dll/3rdparty/libjpeg/jdmarker.c diff --git a/reactos/dll/3rdparty/libjpeg/jdmaster.c b/dll/3rdparty/libjpeg/jdmaster.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdmaster.c rename to dll/3rdparty/libjpeg/jdmaster.c diff --git a/reactos/dll/3rdparty/libjpeg/jdmerge.c b/dll/3rdparty/libjpeg/jdmerge.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdmerge.c rename to dll/3rdparty/libjpeg/jdmerge.c diff --git a/reactos/dll/3rdparty/libjpeg/jdpostct.c b/dll/3rdparty/libjpeg/jdpostct.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdpostct.c rename to dll/3rdparty/libjpeg/jdpostct.c diff --git a/reactos/dll/3rdparty/libjpeg/jdsample.c b/dll/3rdparty/libjpeg/jdsample.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdsample.c rename to dll/3rdparty/libjpeg/jdsample.c diff --git a/reactos/dll/3rdparty/libjpeg/jdtrans.c b/dll/3rdparty/libjpeg/jdtrans.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jdtrans.c rename to dll/3rdparty/libjpeg/jdtrans.c diff --git a/reactos/dll/3rdparty/libjpeg/jerror.c b/dll/3rdparty/libjpeg/jerror.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jerror.c rename to dll/3rdparty/libjpeg/jerror.c diff --git a/reactos/dll/3rdparty/libjpeg/jfdctflt.c b/dll/3rdparty/libjpeg/jfdctflt.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jfdctflt.c rename to dll/3rdparty/libjpeg/jfdctflt.c diff --git a/reactos/dll/3rdparty/libjpeg/jfdctfst.c b/dll/3rdparty/libjpeg/jfdctfst.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jfdctfst.c rename to dll/3rdparty/libjpeg/jfdctfst.c diff --git a/reactos/dll/3rdparty/libjpeg/jfdctint.c b/dll/3rdparty/libjpeg/jfdctint.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jfdctint.c rename to dll/3rdparty/libjpeg/jfdctint.c diff --git a/reactos/dll/3rdparty/libjpeg/jidctflt.c b/dll/3rdparty/libjpeg/jidctflt.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jidctflt.c rename to dll/3rdparty/libjpeg/jidctflt.c diff --git a/reactos/dll/3rdparty/libjpeg/jidctfst.c b/dll/3rdparty/libjpeg/jidctfst.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jidctfst.c rename to dll/3rdparty/libjpeg/jidctfst.c diff --git a/reactos/dll/3rdparty/libjpeg/jidctint.c b/dll/3rdparty/libjpeg/jidctint.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jidctint.c rename to dll/3rdparty/libjpeg/jidctint.c diff --git a/reactos/dll/3rdparty/libjpeg/jmemansi.c b/dll/3rdparty/libjpeg/jmemansi.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jmemansi.c rename to dll/3rdparty/libjpeg/jmemansi.c diff --git a/reactos/dll/3rdparty/libjpeg/jmemmgr.c b/dll/3rdparty/libjpeg/jmemmgr.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jmemmgr.c rename to dll/3rdparty/libjpeg/jmemmgr.c diff --git a/reactos/dll/3rdparty/libjpeg/jmemname.c b/dll/3rdparty/libjpeg/jmemname.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jmemname.c rename to dll/3rdparty/libjpeg/jmemname.c diff --git a/reactos/dll/3rdparty/libjpeg/jmemnobs.c b/dll/3rdparty/libjpeg/jmemnobs.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jmemnobs.c rename to dll/3rdparty/libjpeg/jmemnobs.c diff --git a/reactos/dll/3rdparty/libjpeg/jpegtran.c b/dll/3rdparty/libjpeg/jpegtran.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jpegtran.c rename to dll/3rdparty/libjpeg/jpegtran.c diff --git a/reactos/dll/3rdparty/libjpeg/jquant1.c b/dll/3rdparty/libjpeg/jquant1.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jquant1.c rename to dll/3rdparty/libjpeg/jquant1.c diff --git a/reactos/dll/3rdparty/libjpeg/jquant2.c b/dll/3rdparty/libjpeg/jquant2.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jquant2.c rename to dll/3rdparty/libjpeg/jquant2.c diff --git a/reactos/dll/3rdparty/libjpeg/jutils.c b/dll/3rdparty/libjpeg/jutils.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/jutils.c rename to dll/3rdparty/libjpeg/jutils.c diff --git a/reactos/dll/3rdparty/libjpeg/rdbmp.c b/dll/3rdparty/libjpeg/rdbmp.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/rdbmp.c rename to dll/3rdparty/libjpeg/rdbmp.c diff --git a/reactos/dll/3rdparty/libjpeg/rdcolmap.c b/dll/3rdparty/libjpeg/rdcolmap.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/rdcolmap.c rename to dll/3rdparty/libjpeg/rdcolmap.c diff --git a/reactos/dll/3rdparty/libjpeg/rdgif.c b/dll/3rdparty/libjpeg/rdgif.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/rdgif.c rename to dll/3rdparty/libjpeg/rdgif.c diff --git a/reactos/dll/3rdparty/libjpeg/rdjpgcom.c b/dll/3rdparty/libjpeg/rdjpgcom.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/rdjpgcom.c rename to dll/3rdparty/libjpeg/rdjpgcom.c diff --git a/reactos/dll/3rdparty/libjpeg/rdppm.c b/dll/3rdparty/libjpeg/rdppm.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/rdppm.c rename to dll/3rdparty/libjpeg/rdppm.c diff --git a/reactos/dll/3rdparty/libjpeg/rdrle.c b/dll/3rdparty/libjpeg/rdrle.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/rdrle.c rename to dll/3rdparty/libjpeg/rdrle.c diff --git a/reactos/dll/3rdparty/libjpeg/rdswitch.c b/dll/3rdparty/libjpeg/rdswitch.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/rdswitch.c rename to dll/3rdparty/libjpeg/rdswitch.c diff --git a/reactos/dll/3rdparty/libjpeg/rdtarga.c b/dll/3rdparty/libjpeg/rdtarga.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/rdtarga.c rename to dll/3rdparty/libjpeg/rdtarga.c diff --git a/reactos/dll/3rdparty/libjpeg/transupp.c b/dll/3rdparty/libjpeg/transupp.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/transupp.c rename to dll/3rdparty/libjpeg/transupp.c diff --git a/reactos/dll/3rdparty/libjpeg/wrbmp.c b/dll/3rdparty/libjpeg/wrbmp.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/wrbmp.c rename to dll/3rdparty/libjpeg/wrbmp.c diff --git a/reactos/dll/3rdparty/libjpeg/wrgif.c b/dll/3rdparty/libjpeg/wrgif.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/wrgif.c rename to dll/3rdparty/libjpeg/wrgif.c diff --git a/reactos/dll/3rdparty/libjpeg/wrjpgcom.c b/dll/3rdparty/libjpeg/wrjpgcom.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/wrjpgcom.c rename to dll/3rdparty/libjpeg/wrjpgcom.c diff --git a/reactos/dll/3rdparty/libjpeg/wrppm.c b/dll/3rdparty/libjpeg/wrppm.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/wrppm.c rename to dll/3rdparty/libjpeg/wrppm.c diff --git a/reactos/dll/3rdparty/libjpeg/wrrle.c b/dll/3rdparty/libjpeg/wrrle.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/wrrle.c rename to dll/3rdparty/libjpeg/wrrle.c diff --git a/reactos/dll/3rdparty/libjpeg/wrtarga.c b/dll/3rdparty/libjpeg/wrtarga.c similarity index 100% rename from reactos/dll/3rdparty/libjpeg/wrtarga.c rename to dll/3rdparty/libjpeg/wrtarga.c diff --git a/reactos/dll/3rdparty/libpng/CMakeLists.txt b/dll/3rdparty/libpng/CMakeLists.txt similarity index 100% rename from reactos/dll/3rdparty/libpng/CMakeLists.txt rename to dll/3rdparty/libpng/CMakeLists.txt diff --git a/reactos/dll/3rdparty/libpng/docs/ANNOUNCE b/dll/3rdparty/libpng/docs/ANNOUNCE similarity index 100% rename from reactos/dll/3rdparty/libpng/docs/ANNOUNCE rename to dll/3rdparty/libpng/docs/ANNOUNCE diff --git a/reactos/dll/3rdparty/libpng/docs/CHANGES b/dll/3rdparty/libpng/docs/CHANGES similarity index 100% rename from reactos/dll/3rdparty/libpng/docs/CHANGES rename to dll/3rdparty/libpng/docs/CHANGES diff --git a/reactos/dll/3rdparty/libpng/docs/INSTALL b/dll/3rdparty/libpng/docs/INSTALL similarity index 100% rename from reactos/dll/3rdparty/libpng/docs/INSTALL rename to dll/3rdparty/libpng/docs/INSTALL diff --git a/reactos/dll/3rdparty/libpng/docs/LICENSE b/dll/3rdparty/libpng/docs/LICENSE similarity index 100% rename from reactos/dll/3rdparty/libpng/docs/LICENSE rename to dll/3rdparty/libpng/docs/LICENSE diff --git a/reactos/dll/3rdparty/libpng/docs/README b/dll/3rdparty/libpng/docs/README similarity index 100% rename from reactos/dll/3rdparty/libpng/docs/README rename to dll/3rdparty/libpng/docs/README diff --git a/reactos/dll/3rdparty/libpng/docs/TODO b/dll/3rdparty/libpng/docs/TODO similarity index 100% rename from reactos/dll/3rdparty/libpng/docs/TODO rename to dll/3rdparty/libpng/docs/TODO diff --git a/reactos/dll/3rdparty/libpng/docs/example.c b/dll/3rdparty/libpng/docs/example.c similarity index 100% rename from reactos/dll/3rdparty/libpng/docs/example.c rename to dll/3rdparty/libpng/docs/example.c diff --git a/reactos/dll/3rdparty/libpng/docs/libpng-manual.txt b/dll/3rdparty/libpng/docs/libpng-manual.txt similarity index 100% rename from reactos/dll/3rdparty/libpng/docs/libpng-manual.txt rename to dll/3rdparty/libpng/docs/libpng-manual.txt diff --git a/reactos/dll/3rdparty/libpng/png.c b/dll/3rdparty/libpng/png.c similarity index 100% rename from reactos/dll/3rdparty/libpng/png.c rename to dll/3rdparty/libpng/png.c diff --git a/reactos/dll/3rdparty/libpng/pngdebug.h b/dll/3rdparty/libpng/pngdebug.h similarity index 100% rename from reactos/dll/3rdparty/libpng/pngdebug.h rename to dll/3rdparty/libpng/pngdebug.h diff --git a/reactos/dll/3rdparty/libpng/pngerror.c b/dll/3rdparty/libpng/pngerror.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngerror.c rename to dll/3rdparty/libpng/pngerror.c diff --git a/reactos/dll/3rdparty/libpng/pngget.c b/dll/3rdparty/libpng/pngget.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngget.c rename to dll/3rdparty/libpng/pngget.c diff --git a/reactos/dll/3rdparty/libpng/pnginfo.h b/dll/3rdparty/libpng/pnginfo.h similarity index 100% rename from reactos/dll/3rdparty/libpng/pnginfo.h rename to dll/3rdparty/libpng/pnginfo.h diff --git a/reactos/dll/3rdparty/libpng/pngmem.c b/dll/3rdparty/libpng/pngmem.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngmem.c rename to dll/3rdparty/libpng/pngmem.c diff --git a/reactos/dll/3rdparty/libpng/pngpread.c b/dll/3rdparty/libpng/pngpread.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngpread.c rename to dll/3rdparty/libpng/pngpread.c diff --git a/reactos/dll/3rdparty/libpng/pngpriv.h b/dll/3rdparty/libpng/pngpriv.h similarity index 100% rename from reactos/dll/3rdparty/libpng/pngpriv.h rename to dll/3rdparty/libpng/pngpriv.h diff --git a/reactos/dll/3rdparty/libpng/pngread.c b/dll/3rdparty/libpng/pngread.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngread.c rename to dll/3rdparty/libpng/pngread.c diff --git a/reactos/dll/3rdparty/libpng/pngrio.c b/dll/3rdparty/libpng/pngrio.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngrio.c rename to dll/3rdparty/libpng/pngrio.c diff --git a/reactos/dll/3rdparty/libpng/pngrtran.c b/dll/3rdparty/libpng/pngrtran.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngrtran.c rename to dll/3rdparty/libpng/pngrtran.c diff --git a/reactos/dll/3rdparty/libpng/pngrutil.c b/dll/3rdparty/libpng/pngrutil.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngrutil.c rename to dll/3rdparty/libpng/pngrutil.c diff --git a/reactos/dll/3rdparty/libpng/pngset.c b/dll/3rdparty/libpng/pngset.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngset.c rename to dll/3rdparty/libpng/pngset.c diff --git a/reactos/dll/3rdparty/libpng/pngstruct.h b/dll/3rdparty/libpng/pngstruct.h similarity index 100% rename from reactos/dll/3rdparty/libpng/pngstruct.h rename to dll/3rdparty/libpng/pngstruct.h diff --git a/reactos/dll/3rdparty/libpng/pngtest.c b/dll/3rdparty/libpng/pngtest.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngtest.c rename to dll/3rdparty/libpng/pngtest.c diff --git a/reactos/dll/3rdparty/libpng/pngtrans.c b/dll/3rdparty/libpng/pngtrans.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngtrans.c rename to dll/3rdparty/libpng/pngtrans.c diff --git a/reactos/dll/3rdparty/libpng/pngwio.c b/dll/3rdparty/libpng/pngwio.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngwio.c rename to dll/3rdparty/libpng/pngwio.c diff --git a/reactos/dll/3rdparty/libpng/pngwrite.c b/dll/3rdparty/libpng/pngwrite.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngwrite.c rename to dll/3rdparty/libpng/pngwrite.c diff --git a/reactos/dll/3rdparty/libpng/pngwtran.c b/dll/3rdparty/libpng/pngwtran.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngwtran.c rename to dll/3rdparty/libpng/pngwtran.c diff --git a/reactos/dll/3rdparty/libpng/pngwutil.c b/dll/3rdparty/libpng/pngwutil.c similarity index 100% rename from reactos/dll/3rdparty/libpng/pngwutil.c rename to dll/3rdparty/libpng/pngwutil.c diff --git a/reactos/dll/3rdparty/libtiff/CMakeLists.txt b/dll/3rdparty/libtiff/CMakeLists.txt similarity index 100% rename from reactos/dll/3rdparty/libtiff/CMakeLists.txt rename to dll/3rdparty/libtiff/CMakeLists.txt diff --git a/reactos/dll/3rdparty/libtiff/libtiff.def b/dll/3rdparty/libtiff/libtiff.def similarity index 100% rename from reactos/dll/3rdparty/libtiff/libtiff.def rename to dll/3rdparty/libtiff/libtiff.def diff --git a/reactos/dll/3rdparty/libtiff/mkg3states.c b/dll/3rdparty/libtiff/mkg3states.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/mkg3states.c rename to dll/3rdparty/libtiff/mkg3states.c diff --git a/reactos/dll/3rdparty/libtiff/rosdiff.patch b/dll/3rdparty/libtiff/rosdiff.patch similarity index 100% rename from reactos/dll/3rdparty/libtiff/rosdiff.patch rename to dll/3rdparty/libtiff/rosdiff.patch diff --git a/reactos/dll/3rdparty/libtiff/tif_aux.c b/dll/3rdparty/libtiff/tif_aux.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_aux.c rename to dll/3rdparty/libtiff/tif_aux.c diff --git a/reactos/dll/3rdparty/libtiff/tif_close.c b/dll/3rdparty/libtiff/tif_close.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_close.c rename to dll/3rdparty/libtiff/tif_close.c diff --git a/reactos/dll/3rdparty/libtiff/tif_codec.c b/dll/3rdparty/libtiff/tif_codec.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_codec.c rename to dll/3rdparty/libtiff/tif_codec.c diff --git a/reactos/dll/3rdparty/libtiff/tif_color.c b/dll/3rdparty/libtiff/tif_color.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_color.c rename to dll/3rdparty/libtiff/tif_color.c diff --git a/reactos/dll/3rdparty/libtiff/tif_compress.c b/dll/3rdparty/libtiff/tif_compress.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_compress.c rename to dll/3rdparty/libtiff/tif_compress.c diff --git a/reactos/dll/3rdparty/libtiff/tif_dir.c b/dll/3rdparty/libtiff/tif_dir.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_dir.c rename to dll/3rdparty/libtiff/tif_dir.c diff --git a/reactos/dll/3rdparty/libtiff/tif_dirinfo.c b/dll/3rdparty/libtiff/tif_dirinfo.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_dirinfo.c rename to dll/3rdparty/libtiff/tif_dirinfo.c diff --git a/reactos/dll/3rdparty/libtiff/tif_dirread.c b/dll/3rdparty/libtiff/tif_dirread.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_dirread.c rename to dll/3rdparty/libtiff/tif_dirread.c diff --git a/reactos/dll/3rdparty/libtiff/tif_dirwrite.c b/dll/3rdparty/libtiff/tif_dirwrite.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_dirwrite.c rename to dll/3rdparty/libtiff/tif_dirwrite.c diff --git a/reactos/dll/3rdparty/libtiff/tif_dumpmode.c b/dll/3rdparty/libtiff/tif_dumpmode.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_dumpmode.c rename to dll/3rdparty/libtiff/tif_dumpmode.c diff --git a/reactos/dll/3rdparty/libtiff/tif_error.c b/dll/3rdparty/libtiff/tif_error.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_error.c rename to dll/3rdparty/libtiff/tif_error.c diff --git a/reactos/dll/3rdparty/libtiff/tif_extension.c b/dll/3rdparty/libtiff/tif_extension.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_extension.c rename to dll/3rdparty/libtiff/tif_extension.c diff --git a/reactos/dll/3rdparty/libtiff/tif_fax3.c b/dll/3rdparty/libtiff/tif_fax3.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_fax3.c rename to dll/3rdparty/libtiff/tif_fax3.c diff --git a/reactos/dll/3rdparty/libtiff/tif_fax3sm.c b/dll/3rdparty/libtiff/tif_fax3sm.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_fax3sm.c rename to dll/3rdparty/libtiff/tif_fax3sm.c diff --git a/reactos/dll/3rdparty/libtiff/tif_flush.c b/dll/3rdparty/libtiff/tif_flush.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_flush.c rename to dll/3rdparty/libtiff/tif_flush.c diff --git a/reactos/dll/3rdparty/libtiff/tif_getimage.c b/dll/3rdparty/libtiff/tif_getimage.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_getimage.c rename to dll/3rdparty/libtiff/tif_getimage.c diff --git a/reactos/dll/3rdparty/libtiff/tif_jbig.c b/dll/3rdparty/libtiff/tif_jbig.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_jbig.c rename to dll/3rdparty/libtiff/tif_jbig.c diff --git a/reactos/dll/3rdparty/libtiff/tif_jpeg.c b/dll/3rdparty/libtiff/tif_jpeg.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_jpeg.c rename to dll/3rdparty/libtiff/tif_jpeg.c diff --git a/reactos/dll/3rdparty/libtiff/tif_luv.c b/dll/3rdparty/libtiff/tif_luv.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_luv.c rename to dll/3rdparty/libtiff/tif_luv.c diff --git a/reactos/dll/3rdparty/libtiff/tif_lzw.c b/dll/3rdparty/libtiff/tif_lzw.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_lzw.c rename to dll/3rdparty/libtiff/tif_lzw.c diff --git a/reactos/dll/3rdparty/libtiff/tif_next.c b/dll/3rdparty/libtiff/tif_next.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_next.c rename to dll/3rdparty/libtiff/tif_next.c diff --git a/reactos/dll/3rdparty/libtiff/tif_ojpeg.c b/dll/3rdparty/libtiff/tif_ojpeg.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_ojpeg.c rename to dll/3rdparty/libtiff/tif_ojpeg.c diff --git a/reactos/dll/3rdparty/libtiff/tif_open.c b/dll/3rdparty/libtiff/tif_open.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_open.c rename to dll/3rdparty/libtiff/tif_open.c diff --git a/reactos/dll/3rdparty/libtiff/tif_packbits.c b/dll/3rdparty/libtiff/tif_packbits.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_packbits.c rename to dll/3rdparty/libtiff/tif_packbits.c diff --git a/reactos/dll/3rdparty/libtiff/tif_pixarlog.c b/dll/3rdparty/libtiff/tif_pixarlog.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_pixarlog.c rename to dll/3rdparty/libtiff/tif_pixarlog.c diff --git a/reactos/dll/3rdparty/libtiff/tif_predict.c b/dll/3rdparty/libtiff/tif_predict.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_predict.c rename to dll/3rdparty/libtiff/tif_predict.c diff --git a/reactos/dll/3rdparty/libtiff/tif_print.c b/dll/3rdparty/libtiff/tif_print.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_print.c rename to dll/3rdparty/libtiff/tif_print.c diff --git a/reactos/dll/3rdparty/libtiff/tif_read.c b/dll/3rdparty/libtiff/tif_read.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_read.c rename to dll/3rdparty/libtiff/tif_read.c diff --git a/reactos/dll/3rdparty/libtiff/tif_strip.c b/dll/3rdparty/libtiff/tif_strip.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_strip.c rename to dll/3rdparty/libtiff/tif_strip.c diff --git a/reactos/dll/3rdparty/libtiff/tif_swab.c b/dll/3rdparty/libtiff/tif_swab.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_swab.c rename to dll/3rdparty/libtiff/tif_swab.c diff --git a/reactos/dll/3rdparty/libtiff/tif_thunder.c b/dll/3rdparty/libtiff/tif_thunder.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_thunder.c rename to dll/3rdparty/libtiff/tif_thunder.c diff --git a/reactos/dll/3rdparty/libtiff/tif_tile.c b/dll/3rdparty/libtiff/tif_tile.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_tile.c rename to dll/3rdparty/libtiff/tif_tile.c diff --git a/reactos/dll/3rdparty/libtiff/tif_version.c b/dll/3rdparty/libtiff/tif_version.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_version.c rename to dll/3rdparty/libtiff/tif_version.c diff --git a/reactos/dll/3rdparty/libtiff/tif_warning.c b/dll/3rdparty/libtiff/tif_warning.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_warning.c rename to dll/3rdparty/libtiff/tif_warning.c diff --git a/reactos/dll/3rdparty/libtiff/tif_win32.c b/dll/3rdparty/libtiff/tif_win32.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_win32.c rename to dll/3rdparty/libtiff/tif_win32.c diff --git a/reactos/dll/3rdparty/libtiff/tif_write.c b/dll/3rdparty/libtiff/tif_write.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_write.c rename to dll/3rdparty/libtiff/tif_write.c diff --git a/reactos/dll/3rdparty/libtiff/tif_zip.c b/dll/3rdparty/libtiff/tif_zip.c similarity index 100% rename from reactos/dll/3rdparty/libtiff/tif_zip.c rename to dll/3rdparty/libtiff/tif_zip.c diff --git a/reactos/dll/3rdparty/libxslt/AUTHORS b/dll/3rdparty/libxslt/AUTHORS similarity index 100% rename from reactos/dll/3rdparty/libxslt/AUTHORS rename to dll/3rdparty/libxslt/AUTHORS diff --git a/reactos/dll/3rdparty/libxslt/CMakeLists.txt b/dll/3rdparty/libxslt/CMakeLists.txt similarity index 100% rename from reactos/dll/3rdparty/libxslt/CMakeLists.txt rename to dll/3rdparty/libxslt/CMakeLists.txt diff --git a/reactos/dll/3rdparty/libxslt/COPYING b/dll/3rdparty/libxslt/COPYING similarity index 100% rename from reactos/dll/3rdparty/libxslt/COPYING rename to dll/3rdparty/libxslt/COPYING diff --git a/reactos/dll/3rdparty/libxslt/ChangeLog b/dll/3rdparty/libxslt/ChangeLog similarity index 100% rename from reactos/dll/3rdparty/libxslt/ChangeLog rename to dll/3rdparty/libxslt/ChangeLog diff --git a/reactos/dll/3rdparty/libxslt/Makefile.am b/dll/3rdparty/libxslt/Makefile.am similarity index 100% rename from reactos/dll/3rdparty/libxslt/Makefile.am rename to dll/3rdparty/libxslt/Makefile.am diff --git a/reactos/dll/3rdparty/libxslt/Makefile.in b/dll/3rdparty/libxslt/Makefile.in similarity index 100% rename from reactos/dll/3rdparty/libxslt/Makefile.in rename to dll/3rdparty/libxslt/Makefile.in diff --git a/reactos/dll/3rdparty/libxslt/NEWS b/dll/3rdparty/libxslt/NEWS similarity index 100% rename from reactos/dll/3rdparty/libxslt/NEWS rename to dll/3rdparty/libxslt/NEWS diff --git a/reactos/dll/3rdparty/libxslt/README b/dll/3rdparty/libxslt/README similarity index 100% rename from reactos/dll/3rdparty/libxslt/README rename to dll/3rdparty/libxslt/README diff --git a/reactos/dll/3rdparty/libxslt/attributes.c b/dll/3rdparty/libxslt/attributes.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/attributes.c rename to dll/3rdparty/libxslt/attributes.c diff --git a/reactos/dll/3rdparty/libxslt/attributes.h b/dll/3rdparty/libxslt/attributes.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/attributes.h rename to dll/3rdparty/libxslt/attributes.h diff --git a/reactos/dll/3rdparty/libxslt/attrvt.c b/dll/3rdparty/libxslt/attrvt.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/attrvt.c rename to dll/3rdparty/libxslt/attrvt.c diff --git a/reactos/dll/3rdparty/libxslt/config.h b/dll/3rdparty/libxslt/config.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/config.h rename to dll/3rdparty/libxslt/config.h diff --git a/reactos/dll/3rdparty/libxslt/documents.c b/dll/3rdparty/libxslt/documents.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/documents.c rename to dll/3rdparty/libxslt/documents.c diff --git a/reactos/dll/3rdparty/libxslt/documents.h b/dll/3rdparty/libxslt/documents.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/documents.h rename to dll/3rdparty/libxslt/documents.h diff --git a/reactos/dll/3rdparty/libxslt/extensions.c b/dll/3rdparty/libxslt/extensions.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/extensions.c rename to dll/3rdparty/libxslt/extensions.c diff --git a/reactos/dll/3rdparty/libxslt/extensions.h b/dll/3rdparty/libxslt/extensions.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/extensions.h rename to dll/3rdparty/libxslt/extensions.h diff --git a/reactos/dll/3rdparty/libxslt/extra.c b/dll/3rdparty/libxslt/extra.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/extra.c rename to dll/3rdparty/libxslt/extra.c diff --git a/reactos/dll/3rdparty/libxslt/extra.h b/dll/3rdparty/libxslt/extra.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/extra.h rename to dll/3rdparty/libxslt/extra.h diff --git a/reactos/dll/3rdparty/libxslt/functions.c b/dll/3rdparty/libxslt/functions.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/functions.c rename to dll/3rdparty/libxslt/functions.c diff --git a/reactos/dll/3rdparty/libxslt/functions.h b/dll/3rdparty/libxslt/functions.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/functions.h rename to dll/3rdparty/libxslt/functions.h diff --git a/reactos/dll/3rdparty/libxslt/imports.c b/dll/3rdparty/libxslt/imports.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/imports.c rename to dll/3rdparty/libxslt/imports.c diff --git a/reactos/dll/3rdparty/libxslt/imports.h b/dll/3rdparty/libxslt/imports.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/imports.h rename to dll/3rdparty/libxslt/imports.h diff --git a/reactos/dll/3rdparty/libxslt/keys.c b/dll/3rdparty/libxslt/keys.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/keys.c rename to dll/3rdparty/libxslt/keys.c diff --git a/reactos/dll/3rdparty/libxslt/keys.h b/dll/3rdparty/libxslt/keys.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/keys.h rename to dll/3rdparty/libxslt/keys.h diff --git a/reactos/dll/3rdparty/libxslt/libxslt.3 b/dll/3rdparty/libxslt/libxslt.3 similarity index 100% rename from reactos/dll/3rdparty/libxslt/libxslt.3 rename to dll/3rdparty/libxslt/libxslt.3 diff --git a/reactos/dll/3rdparty/libxslt/libxslt.h b/dll/3rdparty/libxslt/libxslt.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/libxslt.h rename to dll/3rdparty/libxslt/libxslt.h diff --git a/reactos/dll/3rdparty/libxslt/namespaces.c b/dll/3rdparty/libxslt/namespaces.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/namespaces.c rename to dll/3rdparty/libxslt/namespaces.c diff --git a/reactos/dll/3rdparty/libxslt/namespaces.h b/dll/3rdparty/libxslt/namespaces.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/namespaces.h rename to dll/3rdparty/libxslt/namespaces.h diff --git a/reactos/dll/3rdparty/libxslt/numbers.c b/dll/3rdparty/libxslt/numbers.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/numbers.c rename to dll/3rdparty/libxslt/numbers.c diff --git a/reactos/dll/3rdparty/libxslt/numbersInternals.h b/dll/3rdparty/libxslt/numbersInternals.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/numbersInternals.h rename to dll/3rdparty/libxslt/numbersInternals.h diff --git a/reactos/dll/3rdparty/libxslt/pattern.c b/dll/3rdparty/libxslt/pattern.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/pattern.c rename to dll/3rdparty/libxslt/pattern.c diff --git a/reactos/dll/3rdparty/libxslt/pattern.h b/dll/3rdparty/libxslt/pattern.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/pattern.h rename to dll/3rdparty/libxslt/pattern.h diff --git a/reactos/dll/3rdparty/libxslt/preproc.c b/dll/3rdparty/libxslt/preproc.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/preproc.c rename to dll/3rdparty/libxslt/preproc.c diff --git a/reactos/dll/3rdparty/libxslt/preproc.h b/dll/3rdparty/libxslt/preproc.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/preproc.h rename to dll/3rdparty/libxslt/preproc.h diff --git a/reactos/dll/3rdparty/libxslt/security.c b/dll/3rdparty/libxslt/security.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/security.c rename to dll/3rdparty/libxslt/security.c diff --git a/reactos/dll/3rdparty/libxslt/security.h b/dll/3rdparty/libxslt/security.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/security.h rename to dll/3rdparty/libxslt/security.h diff --git a/reactos/dll/3rdparty/libxslt/templates.c b/dll/3rdparty/libxslt/templates.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/templates.c rename to dll/3rdparty/libxslt/templates.c diff --git a/reactos/dll/3rdparty/libxslt/templates.h b/dll/3rdparty/libxslt/templates.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/templates.h rename to dll/3rdparty/libxslt/templates.h diff --git a/reactos/dll/3rdparty/libxslt/transform.c b/dll/3rdparty/libxslt/transform.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/transform.c rename to dll/3rdparty/libxslt/transform.c diff --git a/reactos/dll/3rdparty/libxslt/transform.h b/dll/3rdparty/libxslt/transform.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/transform.h rename to dll/3rdparty/libxslt/transform.h diff --git a/reactos/dll/3rdparty/libxslt/trio.h b/dll/3rdparty/libxslt/trio.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/trio.h rename to dll/3rdparty/libxslt/trio.h diff --git a/reactos/dll/3rdparty/libxslt/triodef.h b/dll/3rdparty/libxslt/triodef.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/triodef.h rename to dll/3rdparty/libxslt/triodef.h diff --git a/reactos/dll/3rdparty/libxslt/variables.c b/dll/3rdparty/libxslt/variables.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/variables.c rename to dll/3rdparty/libxslt/variables.c diff --git a/reactos/dll/3rdparty/libxslt/variables.h b/dll/3rdparty/libxslt/variables.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/variables.h rename to dll/3rdparty/libxslt/variables.h diff --git a/reactos/dll/3rdparty/libxslt/win32config.h b/dll/3rdparty/libxslt/win32config.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/win32config.h rename to dll/3rdparty/libxslt/win32config.h diff --git a/reactos/dll/3rdparty/libxslt/xslt.c b/dll/3rdparty/libxslt/xslt.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/xslt.c rename to dll/3rdparty/libxslt/xslt.c diff --git a/reactos/dll/3rdparty/libxslt/xslt.h b/dll/3rdparty/libxslt/xslt.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/xslt.h rename to dll/3rdparty/libxslt/xslt.h diff --git a/reactos/dll/3rdparty/libxslt/xsltInternals.h b/dll/3rdparty/libxslt/xsltInternals.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/xsltInternals.h rename to dll/3rdparty/libxslt/xsltInternals.h diff --git a/reactos/dll/3rdparty/libxslt/xsltconfig.h b/dll/3rdparty/libxslt/xsltconfig.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/xsltconfig.h rename to dll/3rdparty/libxslt/xsltconfig.h diff --git a/reactos/dll/3rdparty/libxslt/xsltconfig.h.in b/dll/3rdparty/libxslt/xsltconfig.h.in similarity index 100% rename from reactos/dll/3rdparty/libxslt/xsltconfig.h.in rename to dll/3rdparty/libxslt/xsltconfig.h.in diff --git a/reactos/dll/3rdparty/libxslt/xsltexports.h b/dll/3rdparty/libxslt/xsltexports.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/xsltexports.h rename to dll/3rdparty/libxslt/xsltexports.h diff --git a/reactos/dll/3rdparty/libxslt/xsltlocale.c b/dll/3rdparty/libxslt/xsltlocale.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/xsltlocale.c rename to dll/3rdparty/libxslt/xsltlocale.c diff --git a/reactos/dll/3rdparty/libxslt/xsltlocale.h b/dll/3rdparty/libxslt/xsltlocale.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/xsltlocale.h rename to dll/3rdparty/libxslt/xsltlocale.h diff --git a/reactos/dll/3rdparty/libxslt/xsltutils.c b/dll/3rdparty/libxslt/xsltutils.c similarity index 100% rename from reactos/dll/3rdparty/libxslt/xsltutils.c rename to dll/3rdparty/libxslt/xsltutils.c diff --git a/reactos/dll/3rdparty/libxslt/xsltutils.h b/dll/3rdparty/libxslt/xsltutils.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/xsltutils.h rename to dll/3rdparty/libxslt/xsltutils.h diff --git a/reactos/dll/3rdparty/libxslt/xsltwin32config.h b/dll/3rdparty/libxslt/xsltwin32config.h similarity index 100% rename from reactos/dll/3rdparty/libxslt/xsltwin32config.h rename to dll/3rdparty/libxslt/xsltwin32config.h diff --git a/reactos/dll/3rdparty/libxslt/xsltwin32config.h.in b/dll/3rdparty/libxslt/xsltwin32config.h.in similarity index 100% rename from reactos/dll/3rdparty/libxslt/xsltwin32config.h.in rename to dll/3rdparty/libxslt/xsltwin32config.h.in diff --git a/reactos/dll/CMakeLists.txt b/dll/CMakeLists.txt similarity index 100% rename from reactos/dll/CMakeLists.txt rename to dll/CMakeLists.txt diff --git a/reactos/dll/cpl/CMakeLists.txt b/dll/cpl/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/CMakeLists.txt rename to dll/cpl/CMakeLists.txt diff --git a/reactos/dll/cpl/access/CMakeLists.txt b/dll/cpl/access/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/access/CMakeLists.txt rename to dll/cpl/access/CMakeLists.txt diff --git a/reactos/dll/cpl/access/access.c b/dll/cpl/access/access.c similarity index 100% rename from reactos/dll/cpl/access/access.c rename to dll/cpl/access/access.c diff --git a/reactos/dll/cpl/access/access.h b/dll/cpl/access/access.h similarity index 100% rename from reactos/dll/cpl/access/access.h rename to dll/cpl/access/access.h diff --git a/reactos/dll/cpl/access/access.rc b/dll/cpl/access/access.rc similarity index 100% rename from reactos/dll/cpl/access/access.rc rename to dll/cpl/access/access.rc diff --git a/reactos/dll/cpl/access/access.spec b/dll/cpl/access/access.spec similarity index 100% rename from reactos/dll/cpl/access/access.spec rename to dll/cpl/access/access.spec diff --git a/reactos/dll/cpl/access/display.c b/dll/cpl/access/display.c similarity index 100% rename from reactos/dll/cpl/access/display.c rename to dll/cpl/access/display.c diff --git a/reactos/dll/cpl/access/general.c b/dll/cpl/access/general.c similarity index 100% rename from reactos/dll/cpl/access/general.c rename to dll/cpl/access/general.c diff --git a/reactos/dll/cpl/access/keyboard.c b/dll/cpl/access/keyboard.c similarity index 100% rename from reactos/dll/cpl/access/keyboard.c rename to dll/cpl/access/keyboard.c diff --git a/reactos/dll/cpl/access/lang/bg-BG.rc b/dll/cpl/access/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/access/lang/bg-BG.rc rename to dll/cpl/access/lang/bg-BG.rc diff --git a/reactos/dll/cpl/access/lang/cs-CZ.rc b/dll/cpl/access/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/access/lang/cs-CZ.rc rename to dll/cpl/access/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/access/lang/de-DE.rc b/dll/cpl/access/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/access/lang/de-DE.rc rename to dll/cpl/access/lang/de-DE.rc diff --git a/reactos/dll/cpl/access/lang/el-GR.rc b/dll/cpl/access/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/access/lang/el-GR.rc rename to dll/cpl/access/lang/el-GR.rc diff --git a/reactos/dll/cpl/access/lang/en-US.rc b/dll/cpl/access/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/access/lang/en-US.rc rename to dll/cpl/access/lang/en-US.rc diff --git a/reactos/dll/cpl/access/lang/es-ES.rc b/dll/cpl/access/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/access/lang/es-ES.rc rename to dll/cpl/access/lang/es-ES.rc diff --git a/reactos/dll/cpl/access/lang/fr-FR.rc b/dll/cpl/access/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/access/lang/fr-FR.rc rename to dll/cpl/access/lang/fr-FR.rc diff --git a/reactos/dll/cpl/access/lang/hu-HU.rc b/dll/cpl/access/lang/hu-HU.rc similarity index 100% rename from reactos/dll/cpl/access/lang/hu-HU.rc rename to dll/cpl/access/lang/hu-HU.rc diff --git a/reactos/dll/cpl/access/lang/id-ID.rc b/dll/cpl/access/lang/id-ID.rc similarity index 100% rename from reactos/dll/cpl/access/lang/id-ID.rc rename to dll/cpl/access/lang/id-ID.rc diff --git a/reactos/dll/cpl/access/lang/it-IT.rc b/dll/cpl/access/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/access/lang/it-IT.rc rename to dll/cpl/access/lang/it-IT.rc diff --git a/reactos/dll/cpl/access/lang/ja-JP.rc b/dll/cpl/access/lang/ja-JP.rc similarity index 100% rename from reactos/dll/cpl/access/lang/ja-JP.rc rename to dll/cpl/access/lang/ja-JP.rc diff --git a/reactos/dll/cpl/access/lang/nl-NL.rc b/dll/cpl/access/lang/nl-NL.rc similarity index 100% rename from reactos/dll/cpl/access/lang/nl-NL.rc rename to dll/cpl/access/lang/nl-NL.rc diff --git a/reactos/dll/cpl/access/lang/no-NO.rc b/dll/cpl/access/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/access/lang/no-NO.rc rename to dll/cpl/access/lang/no-NO.rc diff --git a/reactos/dll/cpl/access/lang/pl-PL.rc b/dll/cpl/access/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/access/lang/pl-PL.rc rename to dll/cpl/access/lang/pl-PL.rc diff --git a/reactos/dll/cpl/access/lang/ro-RO.rc b/dll/cpl/access/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/access/lang/ro-RO.rc rename to dll/cpl/access/lang/ro-RO.rc diff --git a/reactos/dll/cpl/access/lang/ru-RU.rc b/dll/cpl/access/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/access/lang/ru-RU.rc rename to dll/cpl/access/lang/ru-RU.rc diff --git a/reactos/dll/cpl/access/lang/sk-SK.rc b/dll/cpl/access/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/access/lang/sk-SK.rc rename to dll/cpl/access/lang/sk-SK.rc diff --git a/reactos/dll/cpl/access/lang/uk-UA.rc b/dll/cpl/access/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/access/lang/uk-UA.rc rename to dll/cpl/access/lang/uk-UA.rc diff --git a/reactos/dll/cpl/access/lang/zh-CN.rc b/dll/cpl/access/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/access/lang/zh-CN.rc rename to dll/cpl/access/lang/zh-CN.rc diff --git a/reactos/dll/cpl/access/mouse.c b/dll/cpl/access/mouse.c similarity index 100% rename from reactos/dll/cpl/access/mouse.c rename to dll/cpl/access/mouse.c diff --git a/reactos/dll/cpl/access/resource.h b/dll/cpl/access/resource.h similarity index 100% rename from reactos/dll/cpl/access/resource.h rename to dll/cpl/access/resource.h diff --git a/reactos/dll/cpl/access/resources/applet.ico b/dll/cpl/access/resources/applet.ico similarity index 100% rename from reactos/dll/cpl/access/resources/applet.ico rename to dll/cpl/access/resources/applet.ico diff --git a/reactos/dll/cpl/access/rsrc.rc b/dll/cpl/access/rsrc.rc similarity index 100% rename from reactos/dll/cpl/access/rsrc.rc rename to dll/cpl/access/rsrc.rc diff --git a/reactos/dll/cpl/access/sound.c b/dll/cpl/access/sound.c similarity index 100% rename from reactos/dll/cpl/access/sound.c rename to dll/cpl/access/sound.c diff --git a/reactos/dll/cpl/appwiz/CMakeLists.txt b/dll/cpl/appwiz/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/appwiz/CMakeLists.txt rename to dll/cpl/appwiz/CMakeLists.txt diff --git a/reactos/dll/cpl/appwiz/appwiz.c b/dll/cpl/appwiz/appwiz.c similarity index 100% rename from reactos/dll/cpl/appwiz/appwiz.c rename to dll/cpl/appwiz/appwiz.c diff --git a/reactos/dll/cpl/appwiz/appwiz.h b/dll/cpl/appwiz/appwiz.h similarity index 100% rename from reactos/dll/cpl/appwiz/appwiz.h rename to dll/cpl/appwiz/appwiz.h diff --git a/reactos/dll/cpl/appwiz/appwiz.rc b/dll/cpl/appwiz/appwiz.rc similarity index 100% rename from reactos/dll/cpl/appwiz/appwiz.rc rename to dll/cpl/appwiz/appwiz.rc diff --git a/reactos/dll/cpl/appwiz/appwiz.spec b/dll/cpl/appwiz/appwiz.spec similarity index 100% rename from reactos/dll/cpl/appwiz/appwiz.spec rename to dll/cpl/appwiz/appwiz.spec diff --git a/reactos/dll/cpl/appwiz/createlink.c b/dll/cpl/appwiz/createlink.c similarity index 100% rename from reactos/dll/cpl/appwiz/createlink.c rename to dll/cpl/appwiz/createlink.c diff --git a/reactos/dll/cpl/appwiz/lang/bg-BG.rc b/dll/cpl/appwiz/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/bg-BG.rc rename to dll/cpl/appwiz/lang/bg-BG.rc diff --git a/reactos/dll/cpl/appwiz/lang/cs-CZ.rc b/dll/cpl/appwiz/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/cs-CZ.rc rename to dll/cpl/appwiz/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/appwiz/lang/de-DE.rc b/dll/cpl/appwiz/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/de-DE.rc rename to dll/cpl/appwiz/lang/de-DE.rc diff --git a/reactos/dll/cpl/appwiz/lang/el-GR.rc b/dll/cpl/appwiz/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/el-GR.rc rename to dll/cpl/appwiz/lang/el-GR.rc diff --git a/reactos/dll/cpl/appwiz/lang/en-US.rc b/dll/cpl/appwiz/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/en-US.rc rename to dll/cpl/appwiz/lang/en-US.rc diff --git a/reactos/dll/cpl/appwiz/lang/es-ES.rc b/dll/cpl/appwiz/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/es-ES.rc rename to dll/cpl/appwiz/lang/es-ES.rc diff --git a/reactos/dll/cpl/appwiz/lang/fr-FR.rc b/dll/cpl/appwiz/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/fr-FR.rc rename to dll/cpl/appwiz/lang/fr-FR.rc diff --git a/reactos/dll/cpl/appwiz/lang/it-IT.rc b/dll/cpl/appwiz/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/it-IT.rc rename to dll/cpl/appwiz/lang/it-IT.rc diff --git a/reactos/dll/cpl/appwiz/lang/no-NO.rc b/dll/cpl/appwiz/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/no-NO.rc rename to dll/cpl/appwiz/lang/no-NO.rc diff --git a/reactos/dll/cpl/appwiz/lang/pl-PL.rc b/dll/cpl/appwiz/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/pl-PL.rc rename to dll/cpl/appwiz/lang/pl-PL.rc diff --git a/reactos/dll/cpl/appwiz/lang/pt-BR.rc b/dll/cpl/appwiz/lang/pt-BR.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/pt-BR.rc rename to dll/cpl/appwiz/lang/pt-BR.rc diff --git a/reactos/dll/cpl/appwiz/lang/ro-RO.rc b/dll/cpl/appwiz/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/ro-RO.rc rename to dll/cpl/appwiz/lang/ro-RO.rc diff --git a/reactos/dll/cpl/appwiz/lang/ru-RU.rc b/dll/cpl/appwiz/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/ru-RU.rc rename to dll/cpl/appwiz/lang/ru-RU.rc diff --git a/reactos/dll/cpl/appwiz/lang/sk-SK.rc b/dll/cpl/appwiz/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/sk-SK.rc rename to dll/cpl/appwiz/lang/sk-SK.rc diff --git a/reactos/dll/cpl/appwiz/lang/uk-UA.rc b/dll/cpl/appwiz/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/uk-UA.rc rename to dll/cpl/appwiz/lang/uk-UA.rc diff --git a/reactos/dll/cpl/appwiz/lang/zh-CN.rc b/dll/cpl/appwiz/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/appwiz/lang/zh-CN.rc rename to dll/cpl/appwiz/lang/zh-CN.rc diff --git a/reactos/dll/cpl/appwiz/resource.h b/dll/cpl/appwiz/resource.h similarity index 100% rename from reactos/dll/cpl/appwiz/resource.h rename to dll/cpl/appwiz/resource.h diff --git a/reactos/dll/cpl/appwiz/resources/1501.ico b/dll/cpl/appwiz/resources/1501.ico similarity index 100% rename from reactos/dll/cpl/appwiz/resources/1501.ico rename to dll/cpl/appwiz/resources/1501.ico diff --git a/reactos/dll/cpl/appwiz/resources/1502.ico b/dll/cpl/appwiz/resources/1502.ico similarity index 100% rename from reactos/dll/cpl/appwiz/resources/1502.ico rename to dll/cpl/appwiz/resources/1502.ico diff --git a/reactos/dll/cpl/appwiz/resources/1503.ico b/dll/cpl/appwiz/resources/1503.ico similarity index 100% rename from reactos/dll/cpl/appwiz/resources/1503.ico rename to dll/cpl/appwiz/resources/1503.ico diff --git a/reactos/dll/cpl/appwiz/resources/1504.ico b/dll/cpl/appwiz/resources/1504.ico similarity index 100% rename from reactos/dll/cpl/appwiz/resources/1504.ico rename to dll/cpl/appwiz/resources/1504.ico diff --git a/reactos/dll/cpl/appwiz/resources/1505.ico b/dll/cpl/appwiz/resources/1505.ico similarity index 100% rename from reactos/dll/cpl/appwiz/resources/1505.ico rename to dll/cpl/appwiz/resources/1505.ico diff --git a/reactos/dll/cpl/appwiz/resources/applet.ico b/dll/cpl/appwiz/resources/applet.ico similarity index 100% rename from reactos/dll/cpl/appwiz/resources/applet.ico rename to dll/cpl/appwiz/resources/applet.ico diff --git a/reactos/dll/cpl/appwiz/resources/watermark.bmp b/dll/cpl/appwiz/resources/watermark.bmp similarity index 100% rename from reactos/dll/cpl/appwiz/resources/watermark.bmp rename to dll/cpl/appwiz/resources/watermark.bmp diff --git a/reactos/dll/cpl/appwiz/rsrc.rc b/dll/cpl/appwiz/rsrc.rc similarity index 100% rename from reactos/dll/cpl/appwiz/rsrc.rc rename to dll/cpl/appwiz/rsrc.rc diff --git a/reactos/dll/cpl/console/CMakeLists.txt b/dll/cpl/console/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/console/CMakeLists.txt rename to dll/cpl/console/CMakeLists.txt diff --git a/reactos/dll/cpl/console/colors.c b/dll/cpl/console/colors.c similarity index 100% rename from reactos/dll/cpl/console/colors.c rename to dll/cpl/console/colors.c diff --git a/reactos/dll/cpl/console/console.c b/dll/cpl/console/console.c similarity index 100% rename from reactos/dll/cpl/console/console.c rename to dll/cpl/console/console.c diff --git a/reactos/dll/cpl/console/console.h b/dll/cpl/console/console.h similarity index 100% rename from reactos/dll/cpl/console/console.h rename to dll/cpl/console/console.h diff --git a/reactos/dll/cpl/console/console.rc b/dll/cpl/console/console.rc similarity index 100% rename from reactos/dll/cpl/console/console.rc rename to dll/cpl/console/console.rc diff --git a/reactos/dll/cpl/console/console.spec b/dll/cpl/console/console.spec similarity index 100% rename from reactos/dll/cpl/console/console.spec rename to dll/cpl/console/console.spec diff --git a/reactos/dll/cpl/console/font.c b/dll/cpl/console/font.c similarity index 100% rename from reactos/dll/cpl/console/font.c rename to dll/cpl/console/font.c diff --git a/reactos/dll/cpl/console/lang/bg-BG.rc b/dll/cpl/console/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/console/lang/bg-BG.rc rename to dll/cpl/console/lang/bg-BG.rc diff --git a/reactos/dll/cpl/console/lang/cs-CZ.rc b/dll/cpl/console/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/console/lang/cs-CZ.rc rename to dll/cpl/console/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/console/lang/de-DE.rc b/dll/cpl/console/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/console/lang/de-DE.rc rename to dll/cpl/console/lang/de-DE.rc diff --git a/reactos/dll/cpl/console/lang/en-US.rc b/dll/cpl/console/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/console/lang/en-US.rc rename to dll/cpl/console/lang/en-US.rc diff --git a/reactos/dll/cpl/console/lang/es-ES.rc b/dll/cpl/console/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/console/lang/es-ES.rc rename to dll/cpl/console/lang/es-ES.rc diff --git a/reactos/dll/cpl/console/lang/fr-FR.rc b/dll/cpl/console/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/console/lang/fr-FR.rc rename to dll/cpl/console/lang/fr-FR.rc diff --git a/reactos/dll/cpl/console/lang/id-ID.rc b/dll/cpl/console/lang/id-ID.rc similarity index 100% rename from reactos/dll/cpl/console/lang/id-ID.rc rename to dll/cpl/console/lang/id-ID.rc diff --git a/reactos/dll/cpl/console/lang/it-IT.rc b/dll/cpl/console/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/console/lang/it-IT.rc rename to dll/cpl/console/lang/it-IT.rc diff --git a/reactos/dll/cpl/console/lang/no-NO.rc b/dll/cpl/console/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/console/lang/no-NO.rc rename to dll/cpl/console/lang/no-NO.rc diff --git a/reactos/dll/cpl/console/lang/pl-PL.rc b/dll/cpl/console/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/console/lang/pl-PL.rc rename to dll/cpl/console/lang/pl-PL.rc diff --git a/reactos/dll/cpl/console/lang/ro-RO.rc b/dll/cpl/console/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/console/lang/ro-RO.rc rename to dll/cpl/console/lang/ro-RO.rc diff --git a/reactos/dll/cpl/console/lang/ru-RU.rc b/dll/cpl/console/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/console/lang/ru-RU.rc rename to dll/cpl/console/lang/ru-RU.rc diff --git a/reactos/dll/cpl/console/lang/sk-SK.rc b/dll/cpl/console/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/console/lang/sk-SK.rc rename to dll/cpl/console/lang/sk-SK.rc diff --git a/reactos/dll/cpl/console/lang/uk-UA.rc b/dll/cpl/console/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/console/lang/uk-UA.rc rename to dll/cpl/console/lang/uk-UA.rc diff --git a/reactos/dll/cpl/console/lang/zh-CN.rc b/dll/cpl/console/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/console/lang/zh-CN.rc rename to dll/cpl/console/lang/zh-CN.rc diff --git a/reactos/dll/cpl/console/layout.c b/dll/cpl/console/layout.c similarity index 100% rename from reactos/dll/cpl/console/layout.c rename to dll/cpl/console/layout.c diff --git a/reactos/dll/cpl/console/options.c b/dll/cpl/console/options.c similarity index 100% rename from reactos/dll/cpl/console/options.c rename to dll/cpl/console/options.c diff --git a/reactos/dll/cpl/console/resource.h b/dll/cpl/console/resource.h similarity index 100% rename from reactos/dll/cpl/console/resource.h rename to dll/cpl/console/resource.h diff --git a/reactos/dll/cpl/console/rsrc.rc b/dll/cpl/console/rsrc.rc similarity index 100% rename from reactos/dll/cpl/console/rsrc.rc rename to dll/cpl/console/rsrc.rc diff --git a/reactos/dll/cpl/desk/CMakeLists.txt b/dll/cpl/desk/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/desk/CMakeLists.txt rename to dll/cpl/desk/CMakeLists.txt diff --git a/reactos/dll/cpl/desk/advappdlg.c b/dll/cpl/desk/advappdlg.c similarity index 100% rename from reactos/dll/cpl/desk/advappdlg.c rename to dll/cpl/desk/advappdlg.c diff --git a/reactos/dll/cpl/desk/advmon.c b/dll/cpl/desk/advmon.c similarity index 100% rename from reactos/dll/cpl/desk/advmon.c rename to dll/cpl/desk/advmon.c diff --git a/reactos/dll/cpl/desk/appearance.c b/dll/cpl/desk/appearance.c similarity index 100% rename from reactos/dll/cpl/desk/appearance.c rename to dll/cpl/desk/appearance.c diff --git a/reactos/dll/cpl/desk/appearance.h b/dll/cpl/desk/appearance.h similarity index 100% rename from reactos/dll/cpl/desk/appearance.h rename to dll/cpl/desk/appearance.h diff --git a/reactos/dll/cpl/desk/background.c b/dll/cpl/desk/background.c similarity index 100% rename from reactos/dll/cpl/desk/background.c rename to dll/cpl/desk/background.c diff --git a/reactos/dll/cpl/desk/classinst.c b/dll/cpl/desk/classinst.c similarity index 100% rename from reactos/dll/cpl/desk/classinst.c rename to dll/cpl/desk/classinst.c diff --git a/reactos/dll/cpl/desk/desk.c b/dll/cpl/desk/desk.c similarity index 100% rename from reactos/dll/cpl/desk/desk.c rename to dll/cpl/desk/desk.c diff --git a/reactos/dll/cpl/desk/desk.h b/dll/cpl/desk/desk.h similarity index 100% rename from reactos/dll/cpl/desk/desk.h rename to dll/cpl/desk/desk.h diff --git a/reactos/dll/cpl/desk/desk.rc b/dll/cpl/desk/desk.rc similarity index 100% rename from reactos/dll/cpl/desk/desk.rc rename to dll/cpl/desk/desk.rc diff --git a/reactos/dll/cpl/desk/desk.spec b/dll/cpl/desk/desk.spec similarity index 100% rename from reactos/dll/cpl/desk/desk.spec rename to dll/cpl/desk/desk.spec diff --git a/reactos/dll/cpl/desk/devsett.c b/dll/cpl/desk/devsett.c similarity index 100% rename from reactos/dll/cpl/desk/devsett.c rename to dll/cpl/desk/devsett.c diff --git a/reactos/dll/cpl/desk/dibitmap.c b/dll/cpl/desk/dibitmap.c similarity index 100% rename from reactos/dll/cpl/desk/dibitmap.c rename to dll/cpl/desk/dibitmap.c diff --git a/reactos/dll/cpl/desk/draw.c b/dll/cpl/desk/draw.c similarity index 100% rename from reactos/dll/cpl/desk/draw.c rename to dll/cpl/desk/draw.c diff --git a/reactos/dll/cpl/desk/draw.h b/dll/cpl/desk/draw.h similarity index 100% rename from reactos/dll/cpl/desk/draw.h rename to dll/cpl/desk/draw.h diff --git a/reactos/dll/cpl/desk/effappdlg.c b/dll/cpl/desk/effappdlg.c similarity index 100% rename from reactos/dll/cpl/desk/effappdlg.c rename to dll/cpl/desk/effappdlg.c diff --git a/reactos/dll/cpl/desk/general.c b/dll/cpl/desk/general.c similarity index 100% rename from reactos/dll/cpl/desk/general.c rename to dll/cpl/desk/general.c diff --git a/reactos/dll/cpl/desk/lang/bg-BG.rc b/dll/cpl/desk/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/bg-BG.rc rename to dll/cpl/desk/lang/bg-BG.rc diff --git a/reactos/dll/cpl/desk/lang/cs-CZ.rc b/dll/cpl/desk/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/cs-CZ.rc rename to dll/cpl/desk/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/desk/lang/de-DE.rc b/dll/cpl/desk/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/de-DE.rc rename to dll/cpl/desk/lang/de-DE.rc diff --git a/reactos/dll/cpl/desk/lang/el-GR.rc b/dll/cpl/desk/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/el-GR.rc rename to dll/cpl/desk/lang/el-GR.rc diff --git a/reactos/dll/cpl/desk/lang/en-US.rc b/dll/cpl/desk/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/en-US.rc rename to dll/cpl/desk/lang/en-US.rc diff --git a/reactos/dll/cpl/desk/lang/es-ES.rc b/dll/cpl/desk/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/es-ES.rc rename to dll/cpl/desk/lang/es-ES.rc diff --git a/reactos/dll/cpl/desk/lang/fr-FR.rc b/dll/cpl/desk/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/fr-FR.rc rename to dll/cpl/desk/lang/fr-FR.rc diff --git a/reactos/dll/cpl/desk/lang/hu-HU.rc b/dll/cpl/desk/lang/hu-HU.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/hu-HU.rc rename to dll/cpl/desk/lang/hu-HU.rc diff --git a/reactos/dll/cpl/desk/lang/id-ID.rc b/dll/cpl/desk/lang/id-ID.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/id-ID.rc rename to dll/cpl/desk/lang/id-ID.rc diff --git a/reactos/dll/cpl/desk/lang/it-IT.rc b/dll/cpl/desk/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/it-IT.rc rename to dll/cpl/desk/lang/it-IT.rc diff --git a/reactos/dll/cpl/desk/lang/ja-JP.rc b/dll/cpl/desk/lang/ja-JP.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/ja-JP.rc rename to dll/cpl/desk/lang/ja-JP.rc diff --git a/reactos/dll/cpl/desk/lang/nl-NL.rc b/dll/cpl/desk/lang/nl-NL.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/nl-NL.rc rename to dll/cpl/desk/lang/nl-NL.rc diff --git a/reactos/dll/cpl/desk/lang/no-NO.rc b/dll/cpl/desk/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/no-NO.rc rename to dll/cpl/desk/lang/no-NO.rc diff --git a/reactos/dll/cpl/desk/lang/pl-PL.rc b/dll/cpl/desk/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/pl-PL.rc rename to dll/cpl/desk/lang/pl-PL.rc diff --git a/reactos/dll/cpl/desk/lang/ro-RO.rc b/dll/cpl/desk/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/ro-RO.rc rename to dll/cpl/desk/lang/ro-RO.rc diff --git a/reactos/dll/cpl/desk/lang/ru-RU.rc b/dll/cpl/desk/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/ru-RU.rc rename to dll/cpl/desk/lang/ru-RU.rc diff --git a/reactos/dll/cpl/desk/lang/sk-SK.rc b/dll/cpl/desk/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/sk-SK.rc rename to dll/cpl/desk/lang/sk-SK.rc diff --git a/reactos/dll/cpl/desk/lang/sv-SE.rc b/dll/cpl/desk/lang/sv-SE.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/sv-SE.rc rename to dll/cpl/desk/lang/sv-SE.rc diff --git a/reactos/dll/cpl/desk/lang/uk-UA.rc b/dll/cpl/desk/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/uk-UA.rc rename to dll/cpl/desk/lang/uk-UA.rc diff --git a/reactos/dll/cpl/desk/lang/zh-CN.rc b/dll/cpl/desk/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/desk/lang/zh-CN.rc rename to dll/cpl/desk/lang/zh-CN.rc diff --git a/reactos/dll/cpl/desk/misc.c b/dll/cpl/desk/misc.c similarity index 100% rename from reactos/dll/cpl/desk/misc.c rename to dll/cpl/desk/misc.c diff --git a/reactos/dll/cpl/desk/monslctl.c b/dll/cpl/desk/monslctl.c similarity index 100% rename from reactos/dll/cpl/desk/monslctl.c rename to dll/cpl/desk/monslctl.c diff --git a/reactos/dll/cpl/desk/monslctl.h b/dll/cpl/desk/monslctl.h similarity index 100% rename from reactos/dll/cpl/desk/monslctl.h rename to dll/cpl/desk/monslctl.h diff --git a/reactos/dll/cpl/desk/preview.c b/dll/cpl/desk/preview.c similarity index 100% rename from reactos/dll/cpl/desk/preview.c rename to dll/cpl/desk/preview.c diff --git a/reactos/dll/cpl/desk/preview.h b/dll/cpl/desk/preview.h similarity index 100% rename from reactos/dll/cpl/desk/preview.h rename to dll/cpl/desk/preview.h diff --git a/reactos/dll/cpl/desk/resource.h b/dll/cpl/desk/resource.h similarity index 100% rename from reactos/dll/cpl/desk/resource.h rename to dll/cpl/desk/resource.h diff --git a/reactos/dll/cpl/desk/resources/applet.ico b/dll/cpl/desk/resources/applet.ico similarity index 100% rename from reactos/dll/cpl/desk/resources/applet.ico rename to dll/cpl/desk/resources/applet.ico diff --git a/reactos/dll/cpl/desk/resources/monitor.bmp b/dll/cpl/desk/resources/monitor.bmp similarity index 100% rename from reactos/dll/cpl/desk/resources/monitor.bmp rename to dll/cpl/desk/resources/monitor.bmp diff --git a/reactos/dll/cpl/desk/resources/spectrum_16.bmp b/dll/cpl/desk/resources/spectrum_16.bmp similarity index 100% rename from reactos/dll/cpl/desk/resources/spectrum_16.bmp rename to dll/cpl/desk/resources/spectrum_16.bmp diff --git a/reactos/dll/cpl/desk/resources/spectrum_4.bmp b/dll/cpl/desk/resources/spectrum_4.bmp similarity index 100% rename from reactos/dll/cpl/desk/resources/spectrum_4.bmp rename to dll/cpl/desk/resources/spectrum_4.bmp diff --git a/reactos/dll/cpl/desk/resources/spectrum_8.bmp b/dll/cpl/desk/resources/spectrum_8.bmp similarity index 100% rename from reactos/dll/cpl/desk/resources/spectrum_8.bmp rename to dll/cpl/desk/resources/spectrum_8.bmp diff --git a/reactos/dll/cpl/desk/rsrc.rc b/dll/cpl/desk/rsrc.rc similarity index 100% rename from reactos/dll/cpl/desk/rsrc.rc rename to dll/cpl/desk/rsrc.rc diff --git a/reactos/dll/cpl/desk/screensaver.c b/dll/cpl/desk/screensaver.c similarity index 100% rename from reactos/dll/cpl/desk/screensaver.c rename to dll/cpl/desk/screensaver.c diff --git a/reactos/dll/cpl/desk/settings.c b/dll/cpl/desk/settings.c similarity index 100% rename from reactos/dll/cpl/desk/settings.c rename to dll/cpl/desk/settings.c diff --git a/reactos/dll/cpl/desk/theme.c b/dll/cpl/desk/theme.c similarity index 100% rename from reactos/dll/cpl/desk/theme.c rename to dll/cpl/desk/theme.c diff --git a/reactos/dll/cpl/hdwwiz/CMakeLists.txt b/dll/cpl/hdwwiz/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/hdwwiz/CMakeLists.txt rename to dll/cpl/hdwwiz/CMakeLists.txt diff --git a/reactos/dll/cpl/hdwwiz/hdwwiz.c b/dll/cpl/hdwwiz/hdwwiz.c similarity index 100% rename from reactos/dll/cpl/hdwwiz/hdwwiz.c rename to dll/cpl/hdwwiz/hdwwiz.c diff --git a/reactos/dll/cpl/hdwwiz/hdwwiz.h b/dll/cpl/hdwwiz/hdwwiz.h similarity index 100% rename from reactos/dll/cpl/hdwwiz/hdwwiz.h rename to dll/cpl/hdwwiz/hdwwiz.h diff --git a/reactos/dll/cpl/hdwwiz/hdwwiz.rc b/dll/cpl/hdwwiz/hdwwiz.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/hdwwiz.rc rename to dll/cpl/hdwwiz/hdwwiz.rc diff --git a/reactos/dll/cpl/hdwwiz/hdwwiz.spec b/dll/cpl/hdwwiz/hdwwiz.spec similarity index 100% rename from reactos/dll/cpl/hdwwiz/hdwwiz.spec rename to dll/cpl/hdwwiz/hdwwiz.spec diff --git a/reactos/dll/cpl/hdwwiz/lang/bg-BG.rc b/dll/cpl/hdwwiz/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/bg-BG.rc rename to dll/cpl/hdwwiz/lang/bg-BG.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/cs-CZ.rc b/dll/cpl/hdwwiz/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/cs-CZ.rc rename to dll/cpl/hdwwiz/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/de-DE.rc b/dll/cpl/hdwwiz/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/de-DE.rc rename to dll/cpl/hdwwiz/lang/de-DE.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/el-GR.rc b/dll/cpl/hdwwiz/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/el-GR.rc rename to dll/cpl/hdwwiz/lang/el-GR.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/en-US.rc b/dll/cpl/hdwwiz/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/en-US.rc rename to dll/cpl/hdwwiz/lang/en-US.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/es-ES.rc b/dll/cpl/hdwwiz/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/es-ES.rc rename to dll/cpl/hdwwiz/lang/es-ES.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/fr-FR.rc b/dll/cpl/hdwwiz/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/fr-FR.rc rename to dll/cpl/hdwwiz/lang/fr-FR.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/hu-HU.rc b/dll/cpl/hdwwiz/lang/hu-HU.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/hu-HU.rc rename to dll/cpl/hdwwiz/lang/hu-HU.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/id-ID.rc b/dll/cpl/hdwwiz/lang/id-ID.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/id-ID.rc rename to dll/cpl/hdwwiz/lang/id-ID.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/it-IT.rc b/dll/cpl/hdwwiz/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/it-IT.rc rename to dll/cpl/hdwwiz/lang/it-IT.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/ja-JP.rc b/dll/cpl/hdwwiz/lang/ja-JP.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/ja-JP.rc rename to dll/cpl/hdwwiz/lang/ja-JP.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/nl-NL.rc b/dll/cpl/hdwwiz/lang/nl-NL.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/nl-NL.rc rename to dll/cpl/hdwwiz/lang/nl-NL.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/no-NO.rc b/dll/cpl/hdwwiz/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/no-NO.rc rename to dll/cpl/hdwwiz/lang/no-NO.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/pl-PL.rc b/dll/cpl/hdwwiz/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/pl-PL.rc rename to dll/cpl/hdwwiz/lang/pl-PL.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/pt-BR.rc b/dll/cpl/hdwwiz/lang/pt-BR.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/pt-BR.rc rename to dll/cpl/hdwwiz/lang/pt-BR.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/ro-RO.rc b/dll/cpl/hdwwiz/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/ro-RO.rc rename to dll/cpl/hdwwiz/lang/ro-RO.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/ru-RU.rc b/dll/cpl/hdwwiz/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/ru-RU.rc rename to dll/cpl/hdwwiz/lang/ru-RU.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/sk-SK.rc b/dll/cpl/hdwwiz/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/sk-SK.rc rename to dll/cpl/hdwwiz/lang/sk-SK.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/th-TH.rc b/dll/cpl/hdwwiz/lang/th-TH.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/th-TH.rc rename to dll/cpl/hdwwiz/lang/th-TH.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/uk-UA.rc b/dll/cpl/hdwwiz/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/uk-UA.rc rename to dll/cpl/hdwwiz/lang/uk-UA.rc diff --git a/reactos/dll/cpl/hdwwiz/lang/zh-CN.rc b/dll/cpl/hdwwiz/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/lang/zh-CN.rc rename to dll/cpl/hdwwiz/lang/zh-CN.rc diff --git a/reactos/dll/cpl/hdwwiz/resource.h b/dll/cpl/hdwwiz/resource.h similarity index 100% rename from reactos/dll/cpl/hdwwiz/resource.h rename to dll/cpl/hdwwiz/resource.h diff --git a/reactos/dll/cpl/hdwwiz/resources/applet.ico b/dll/cpl/hdwwiz/resources/applet.ico similarity index 100% rename from reactos/dll/cpl/hdwwiz/resources/applet.ico rename to dll/cpl/hdwwiz/resources/applet.ico diff --git a/reactos/dll/cpl/hdwwiz/resources/header.bmp b/dll/cpl/hdwwiz/resources/header.bmp similarity index 100% rename from reactos/dll/cpl/hdwwiz/resources/header.bmp rename to dll/cpl/hdwwiz/resources/header.bmp diff --git a/reactos/dll/cpl/hdwwiz/resources/search.ico b/dll/cpl/hdwwiz/resources/search.ico similarity index 100% rename from reactos/dll/cpl/hdwwiz/resources/search.ico rename to dll/cpl/hdwwiz/resources/search.ico diff --git a/reactos/dll/cpl/hdwwiz/resources/warning.ico b/dll/cpl/hdwwiz/resources/warning.ico similarity index 100% rename from reactos/dll/cpl/hdwwiz/resources/warning.ico rename to dll/cpl/hdwwiz/resources/warning.ico diff --git a/reactos/dll/cpl/hdwwiz/resources/watermark.bmp b/dll/cpl/hdwwiz/resources/watermark.bmp similarity index 100% rename from reactos/dll/cpl/hdwwiz/resources/watermark.bmp rename to dll/cpl/hdwwiz/resources/watermark.bmp diff --git a/reactos/dll/cpl/hdwwiz/rsrc.rc b/dll/cpl/hdwwiz/rsrc.rc similarity index 100% rename from reactos/dll/cpl/hdwwiz/rsrc.rc rename to dll/cpl/hdwwiz/rsrc.rc diff --git a/reactos/dll/cpl/inetcpl/CMakeLists.txt b/dll/cpl/inetcpl/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/inetcpl/CMakeLists.txt rename to dll/cpl/inetcpl/CMakeLists.txt diff --git a/reactos/dll/cpl/inetcpl/content.c b/dll/cpl/inetcpl/content.c similarity index 100% rename from reactos/dll/cpl/inetcpl/content.c rename to dll/cpl/inetcpl/content.c diff --git a/reactos/dll/cpl/inetcpl/general.c b/dll/cpl/inetcpl/general.c similarity index 100% rename from reactos/dll/cpl/inetcpl/general.c rename to dll/cpl/inetcpl/general.c diff --git a/reactos/dll/cpl/inetcpl/inetcpl.c b/dll/cpl/inetcpl/inetcpl.c similarity index 100% rename from reactos/dll/cpl/inetcpl/inetcpl.c rename to dll/cpl/inetcpl/inetcpl.c diff --git a/reactos/dll/cpl/inetcpl/inetcpl.h b/dll/cpl/inetcpl/inetcpl.h similarity index 100% rename from reactos/dll/cpl/inetcpl/inetcpl.h rename to dll/cpl/inetcpl/inetcpl.h diff --git a/reactos/dll/cpl/inetcpl/inetcpl.ico b/dll/cpl/inetcpl/inetcpl.ico similarity index 100% rename from reactos/dll/cpl/inetcpl/inetcpl.ico rename to dll/cpl/inetcpl/inetcpl.ico diff --git a/reactos/dll/cpl/inetcpl/inetcpl.rc b/dll/cpl/inetcpl/inetcpl.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/inetcpl.rc rename to dll/cpl/inetcpl/inetcpl.rc diff --git a/reactos/dll/cpl/inetcpl/inetcpl.spec b/dll/cpl/inetcpl/inetcpl.spec similarity index 100% rename from reactos/dll/cpl/inetcpl/inetcpl.spec rename to dll/cpl/inetcpl/inetcpl.spec diff --git a/reactos/dll/cpl/inetcpl/inetcpl.svg b/dll/cpl/inetcpl/inetcpl.svg similarity index 100% rename from reactos/dll/cpl/inetcpl/inetcpl.svg rename to dll/cpl/inetcpl/inetcpl.svg diff --git a/reactos/dll/cpl/inetcpl/lang/He.rc b/dll/cpl/inetcpl/lang/He.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/He.rc rename to dll/cpl/inetcpl/lang/He.rc diff --git a/reactos/dll/cpl/inetcpl/lang/Sr.rc b/dll/cpl/inetcpl/lang/Sr.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/Sr.rc rename to dll/cpl/inetcpl/lang/Sr.rc diff --git a/reactos/dll/cpl/inetcpl/lang/de-DE.rc b/dll/cpl/inetcpl/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/de-DE.rc rename to dll/cpl/inetcpl/lang/de-DE.rc diff --git a/reactos/dll/cpl/inetcpl/lang/en-US.rc b/dll/cpl/inetcpl/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/en-US.rc rename to dll/cpl/inetcpl/lang/en-US.rc diff --git a/reactos/dll/cpl/inetcpl/lang/fr-FR.rc b/dll/cpl/inetcpl/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/fr-FR.rc rename to dll/cpl/inetcpl/lang/fr-FR.rc diff --git a/reactos/dll/cpl/inetcpl/lang/it-IT.rc b/dll/cpl/inetcpl/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/it-IT.rc rename to dll/cpl/inetcpl/lang/it-IT.rc diff --git a/reactos/dll/cpl/inetcpl/lang/ja-JP.rc b/dll/cpl/inetcpl/lang/ja-JP.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/ja-JP.rc rename to dll/cpl/inetcpl/lang/ja-JP.rc diff --git a/reactos/dll/cpl/inetcpl/lang/ko-KR.rc b/dll/cpl/inetcpl/lang/ko-KR.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/ko-KR.rc rename to dll/cpl/inetcpl/lang/ko-KR.rc diff --git a/reactos/dll/cpl/inetcpl/lang/lt-LT.rc b/dll/cpl/inetcpl/lang/lt-LT.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/lt-LT.rc rename to dll/cpl/inetcpl/lang/lt-LT.rc diff --git a/reactos/dll/cpl/inetcpl/lang/nl-NL.rc b/dll/cpl/inetcpl/lang/nl-NL.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/nl-NL.rc rename to dll/cpl/inetcpl/lang/nl-NL.rc diff --git a/reactos/dll/cpl/inetcpl/lang/pl-PL.rc b/dll/cpl/inetcpl/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/pl-PL.rc rename to dll/cpl/inetcpl/lang/pl-PL.rc diff --git a/reactos/dll/cpl/inetcpl/lang/pt-BR.rc b/dll/cpl/inetcpl/lang/pt-BR.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/pt-BR.rc rename to dll/cpl/inetcpl/lang/pt-BR.rc diff --git a/reactos/dll/cpl/inetcpl/lang/ro-RO.rc b/dll/cpl/inetcpl/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/ro-RO.rc rename to dll/cpl/inetcpl/lang/ro-RO.rc diff --git a/reactos/dll/cpl/inetcpl/lang/ru-RU.rc b/dll/cpl/inetcpl/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/ru-RU.rc rename to dll/cpl/inetcpl/lang/ru-RU.rc diff --git a/reactos/dll/cpl/inetcpl/lang/sv-SE.rc b/dll/cpl/inetcpl/lang/sv-SE.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/sv-SE.rc rename to dll/cpl/inetcpl/lang/sv-SE.rc diff --git a/reactos/dll/cpl/inetcpl/lang/uk-UA.rc b/dll/cpl/inetcpl/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/inetcpl/lang/uk-UA.rc rename to dll/cpl/inetcpl/lang/uk-UA.rc diff --git a/reactos/dll/cpl/inetcpl/security.c b/dll/cpl/inetcpl/security.c similarity index 100% rename from reactos/dll/cpl/inetcpl/security.c rename to dll/cpl/inetcpl/security.c diff --git a/reactos/dll/cpl/input/CMakeLists.txt b/dll/cpl/input/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/input/CMakeLists.txt rename to dll/cpl/input/CMakeLists.txt diff --git a/reactos/dll/cpl/input/add.c b/dll/cpl/input/add.c similarity index 100% rename from reactos/dll/cpl/input/add.c rename to dll/cpl/input/add.c diff --git a/reactos/dll/cpl/input/changekeyseq.c b/dll/cpl/input/changekeyseq.c similarity index 100% rename from reactos/dll/cpl/input/changekeyseq.c rename to dll/cpl/input/changekeyseq.c diff --git a/reactos/dll/cpl/input/input.c b/dll/cpl/input/input.c similarity index 100% rename from reactos/dll/cpl/input/input.c rename to dll/cpl/input/input.c diff --git a/reactos/dll/cpl/input/input.h b/dll/cpl/input/input.h similarity index 100% rename from reactos/dll/cpl/input/input.h rename to dll/cpl/input/input.h diff --git a/reactos/dll/cpl/input/input.rc b/dll/cpl/input/input.rc similarity index 100% rename from reactos/dll/cpl/input/input.rc rename to dll/cpl/input/input.rc diff --git a/reactos/dll/cpl/input/input.spec b/dll/cpl/input/input.spec similarity index 100% rename from reactos/dll/cpl/input/input.spec rename to dll/cpl/input/input.spec diff --git a/reactos/dll/cpl/input/keysettings.c b/dll/cpl/input/keysettings.c similarity index 100% rename from reactos/dll/cpl/input/keysettings.c rename to dll/cpl/input/keysettings.c diff --git a/reactos/dll/cpl/input/lang/bg-BG.rc b/dll/cpl/input/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/input/lang/bg-BG.rc rename to dll/cpl/input/lang/bg-BG.rc diff --git a/reactos/dll/cpl/input/lang/cs-CZ.rc b/dll/cpl/input/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/input/lang/cs-CZ.rc rename to dll/cpl/input/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/input/lang/de-DE.rc b/dll/cpl/input/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/input/lang/de-DE.rc rename to dll/cpl/input/lang/de-DE.rc diff --git a/reactos/dll/cpl/input/lang/el-GR.rc b/dll/cpl/input/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/input/lang/el-GR.rc rename to dll/cpl/input/lang/el-GR.rc diff --git a/reactos/dll/cpl/input/lang/en-US.rc b/dll/cpl/input/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/input/lang/en-US.rc rename to dll/cpl/input/lang/en-US.rc diff --git a/reactos/dll/cpl/input/lang/es-ES.rc b/dll/cpl/input/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/input/lang/es-ES.rc rename to dll/cpl/input/lang/es-ES.rc diff --git a/reactos/dll/cpl/input/lang/fr-FR.rc b/dll/cpl/input/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/input/lang/fr-FR.rc rename to dll/cpl/input/lang/fr-FR.rc diff --git a/reactos/dll/cpl/input/lang/it-IT.rc b/dll/cpl/input/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/input/lang/it-IT.rc rename to dll/cpl/input/lang/it-IT.rc diff --git a/reactos/dll/cpl/input/lang/no-NO.rc b/dll/cpl/input/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/input/lang/no-NO.rc rename to dll/cpl/input/lang/no-NO.rc diff --git a/reactos/dll/cpl/input/lang/pl-PL.rc b/dll/cpl/input/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/input/lang/pl-PL.rc rename to dll/cpl/input/lang/pl-PL.rc diff --git a/reactos/dll/cpl/input/lang/ro-RO.rc b/dll/cpl/input/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/input/lang/ro-RO.rc rename to dll/cpl/input/lang/ro-RO.rc diff --git a/reactos/dll/cpl/input/lang/ru-RU.rc b/dll/cpl/input/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/input/lang/ru-RU.rc rename to dll/cpl/input/lang/ru-RU.rc diff --git a/reactos/dll/cpl/input/lang/sk-SK.rc b/dll/cpl/input/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/input/lang/sk-SK.rc rename to dll/cpl/input/lang/sk-SK.rc diff --git a/reactos/dll/cpl/input/lang/uk-UA.rc b/dll/cpl/input/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/input/lang/uk-UA.rc rename to dll/cpl/input/lang/uk-UA.rc diff --git a/reactos/dll/cpl/input/lang/zh-CN.rc b/dll/cpl/input/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/input/lang/zh-CN.rc rename to dll/cpl/input/lang/zh-CN.rc diff --git a/reactos/dll/cpl/input/resource.h b/dll/cpl/input/resource.h similarity index 100% rename from reactos/dll/cpl/input/resource.h rename to dll/cpl/input/resource.h diff --git a/reactos/dll/cpl/input/resources/keyboard-shortcuts.ico b/dll/cpl/input/resources/keyboard-shortcuts.ico similarity index 100% rename from reactos/dll/cpl/input/resources/keyboard-shortcuts.ico rename to dll/cpl/input/resources/keyboard-shortcuts.ico diff --git a/reactos/dll/cpl/input/rsrc.rc b/dll/cpl/input/rsrc.rc similarity index 100% rename from reactos/dll/cpl/input/rsrc.rc rename to dll/cpl/input/rsrc.rc diff --git a/reactos/dll/cpl/input/settings.c b/dll/cpl/input/settings.c similarity index 100% rename from reactos/dll/cpl/input/settings.c rename to dll/cpl/input/settings.c diff --git a/reactos/dll/cpl/intl/CMakeLists.txt b/dll/cpl/intl/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/intl/CMakeLists.txt rename to dll/cpl/intl/CMakeLists.txt diff --git a/reactos/dll/cpl/intl/advanced.c b/dll/cpl/intl/advanced.c similarity index 100% rename from reactos/dll/cpl/intl/advanced.c rename to dll/cpl/intl/advanced.c diff --git a/reactos/dll/cpl/intl/currency.c b/dll/cpl/intl/currency.c similarity index 100% rename from reactos/dll/cpl/intl/currency.c rename to dll/cpl/intl/currency.c diff --git a/reactos/dll/cpl/intl/date.c b/dll/cpl/intl/date.c similarity index 100% rename from reactos/dll/cpl/intl/date.c rename to dll/cpl/intl/date.c diff --git a/reactos/dll/cpl/intl/generalp.c b/dll/cpl/intl/generalp.c similarity index 100% rename from reactos/dll/cpl/intl/generalp.c rename to dll/cpl/intl/generalp.c diff --git a/reactos/dll/cpl/intl/inplocale.c b/dll/cpl/intl/inplocale.c similarity index 100% rename from reactos/dll/cpl/intl/inplocale.c rename to dll/cpl/intl/inplocale.c diff --git a/reactos/dll/cpl/intl/intl.c b/dll/cpl/intl/intl.c similarity index 100% rename from reactos/dll/cpl/intl/intl.c rename to dll/cpl/intl/intl.c diff --git a/reactos/dll/cpl/intl/intl.h b/dll/cpl/intl/intl.h similarity index 100% rename from reactos/dll/cpl/intl/intl.h rename to dll/cpl/intl/intl.h diff --git a/reactos/dll/cpl/intl/intl.rc b/dll/cpl/intl/intl.rc similarity index 100% rename from reactos/dll/cpl/intl/intl.rc rename to dll/cpl/intl/intl.rc diff --git a/reactos/dll/cpl/intl/intl.spec b/dll/cpl/intl/intl.spec similarity index 100% rename from reactos/dll/cpl/intl/intl.spec rename to dll/cpl/intl/intl.spec diff --git a/reactos/dll/cpl/intl/kblayouts.c b/dll/cpl/intl/kblayouts.c similarity index 100% rename from reactos/dll/cpl/intl/kblayouts.c rename to dll/cpl/intl/kblayouts.c diff --git a/reactos/dll/cpl/intl/lang/bg-BG.rc b/dll/cpl/intl/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/bg-BG.rc rename to dll/cpl/intl/lang/bg-BG.rc diff --git a/reactos/dll/cpl/intl/lang/cs-CZ.rc b/dll/cpl/intl/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/cs-CZ.rc rename to dll/cpl/intl/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/intl/lang/de-DE.rc b/dll/cpl/intl/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/de-DE.rc rename to dll/cpl/intl/lang/de-DE.rc diff --git a/reactos/dll/cpl/intl/lang/en-US.rc b/dll/cpl/intl/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/en-US.rc rename to dll/cpl/intl/lang/en-US.rc diff --git a/reactos/dll/cpl/intl/lang/es-ES.rc b/dll/cpl/intl/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/es-ES.rc rename to dll/cpl/intl/lang/es-ES.rc diff --git a/reactos/dll/cpl/intl/lang/fr-FR.rc b/dll/cpl/intl/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/fr-FR.rc rename to dll/cpl/intl/lang/fr-FR.rc diff --git a/reactos/dll/cpl/intl/lang/it-IT.rc b/dll/cpl/intl/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/it-IT.rc rename to dll/cpl/intl/lang/it-IT.rc diff --git a/reactos/dll/cpl/intl/lang/no-NO.rc b/dll/cpl/intl/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/no-NO.rc rename to dll/cpl/intl/lang/no-NO.rc diff --git a/reactos/dll/cpl/intl/lang/pl-PL.rc b/dll/cpl/intl/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/pl-PL.rc rename to dll/cpl/intl/lang/pl-PL.rc diff --git a/reactos/dll/cpl/intl/lang/ro-RO.rc b/dll/cpl/intl/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/ro-RO.rc rename to dll/cpl/intl/lang/ro-RO.rc diff --git a/reactos/dll/cpl/intl/lang/ru-RU.rc b/dll/cpl/intl/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/ru-RU.rc rename to dll/cpl/intl/lang/ru-RU.rc diff --git a/reactos/dll/cpl/intl/lang/sk-SK.rc b/dll/cpl/intl/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/sk-SK.rc rename to dll/cpl/intl/lang/sk-SK.rc diff --git a/reactos/dll/cpl/intl/lang/uk-UA.rc b/dll/cpl/intl/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/uk-UA.rc rename to dll/cpl/intl/lang/uk-UA.rc diff --git a/reactos/dll/cpl/intl/lang/zh-CN.rc b/dll/cpl/intl/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/intl/lang/zh-CN.rc rename to dll/cpl/intl/lang/zh-CN.rc diff --git a/reactos/dll/cpl/intl/languages.c b/dll/cpl/intl/languages.c similarity index 100% rename from reactos/dll/cpl/intl/languages.c rename to dll/cpl/intl/languages.c diff --git a/reactos/dll/cpl/intl/misc.c b/dll/cpl/intl/misc.c similarity index 100% rename from reactos/dll/cpl/intl/misc.c rename to dll/cpl/intl/misc.c diff --git a/reactos/dll/cpl/intl/numbers.c b/dll/cpl/intl/numbers.c similarity index 100% rename from reactos/dll/cpl/intl/numbers.c rename to dll/cpl/intl/numbers.c diff --git a/reactos/dll/cpl/intl/resource.h b/dll/cpl/intl/resource.h similarity index 100% rename from reactos/dll/cpl/intl/resource.h rename to dll/cpl/intl/resource.h diff --git a/reactos/dll/cpl/intl/resources/applet.ico b/dll/cpl/intl/resources/applet.ico similarity index 100% rename from reactos/dll/cpl/intl/resources/applet.ico rename to dll/cpl/intl/resources/applet.ico diff --git a/reactos/dll/cpl/intl/rsrc.rc b/dll/cpl/intl/rsrc.rc similarity index 100% rename from reactos/dll/cpl/intl/rsrc.rc rename to dll/cpl/intl/rsrc.rc diff --git a/reactos/dll/cpl/intl/setupreg.c b/dll/cpl/intl/setupreg.c similarity index 100% rename from reactos/dll/cpl/intl/setupreg.c rename to dll/cpl/intl/setupreg.c diff --git a/reactos/dll/cpl/intl/sort.c b/dll/cpl/intl/sort.c similarity index 100% rename from reactos/dll/cpl/intl/sort.c rename to dll/cpl/intl/sort.c diff --git a/reactos/dll/cpl/intl/time.c b/dll/cpl/intl/time.c similarity index 100% rename from reactos/dll/cpl/intl/time.c rename to dll/cpl/intl/time.c diff --git a/reactos/dll/cpl/joy/CMakeLists.txt b/dll/cpl/joy/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/joy/CMakeLists.txt rename to dll/cpl/joy/CMakeLists.txt diff --git a/reactos/dll/cpl/joy/joy.c b/dll/cpl/joy/joy.c similarity index 100% rename from reactos/dll/cpl/joy/joy.c rename to dll/cpl/joy/joy.c diff --git a/reactos/dll/cpl/joy/joy.h b/dll/cpl/joy/joy.h similarity index 100% rename from reactos/dll/cpl/joy/joy.h rename to dll/cpl/joy/joy.h diff --git a/reactos/dll/cpl/joy/joy.rc b/dll/cpl/joy/joy.rc similarity index 100% rename from reactos/dll/cpl/joy/joy.rc rename to dll/cpl/joy/joy.rc diff --git a/reactos/dll/cpl/joy/joy.spec b/dll/cpl/joy/joy.spec similarity index 100% rename from reactos/dll/cpl/joy/joy.spec rename to dll/cpl/joy/joy.spec diff --git a/reactos/dll/cpl/joy/lang/bg-BG.rc b/dll/cpl/joy/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/bg-BG.rc rename to dll/cpl/joy/lang/bg-BG.rc diff --git a/reactos/dll/cpl/joy/lang/cs-CZ.rc b/dll/cpl/joy/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/cs-CZ.rc rename to dll/cpl/joy/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/joy/lang/de-DE.rc b/dll/cpl/joy/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/de-DE.rc rename to dll/cpl/joy/lang/de-DE.rc diff --git a/reactos/dll/cpl/joy/lang/el-GR.rc b/dll/cpl/joy/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/el-GR.rc rename to dll/cpl/joy/lang/el-GR.rc diff --git a/reactos/dll/cpl/joy/lang/en-US.rc b/dll/cpl/joy/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/en-US.rc rename to dll/cpl/joy/lang/en-US.rc diff --git a/reactos/dll/cpl/joy/lang/es-ES.rc b/dll/cpl/joy/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/es-ES.rc rename to dll/cpl/joy/lang/es-ES.rc diff --git a/reactos/dll/cpl/joy/lang/fr-FR.rc b/dll/cpl/joy/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/fr-FR.rc rename to dll/cpl/joy/lang/fr-FR.rc diff --git a/reactos/dll/cpl/joy/lang/it-IT.rc b/dll/cpl/joy/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/it-IT.rc rename to dll/cpl/joy/lang/it-IT.rc diff --git a/reactos/dll/cpl/joy/lang/no-NO.rc b/dll/cpl/joy/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/no-NO.rc rename to dll/cpl/joy/lang/no-NO.rc diff --git a/reactos/dll/cpl/joy/lang/pl-PL.rc b/dll/cpl/joy/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/pl-PL.rc rename to dll/cpl/joy/lang/pl-PL.rc diff --git a/reactos/dll/cpl/joy/lang/ro-RO.rc b/dll/cpl/joy/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/ro-RO.rc rename to dll/cpl/joy/lang/ro-RO.rc diff --git a/reactos/dll/cpl/joy/lang/ru-RU.rc b/dll/cpl/joy/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/ru-RU.rc rename to dll/cpl/joy/lang/ru-RU.rc diff --git a/reactos/dll/cpl/joy/lang/sk-SK.rc b/dll/cpl/joy/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/sk-SK.rc rename to dll/cpl/joy/lang/sk-SK.rc diff --git a/reactos/dll/cpl/joy/lang/uk-UA.rc b/dll/cpl/joy/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/uk-UA.rc rename to dll/cpl/joy/lang/uk-UA.rc diff --git a/reactos/dll/cpl/joy/lang/zh-CN.rc b/dll/cpl/joy/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/joy/lang/zh-CN.rc rename to dll/cpl/joy/lang/zh-CN.rc diff --git a/reactos/dll/cpl/joy/resource.h b/dll/cpl/joy/resource.h similarity index 100% rename from reactos/dll/cpl/joy/resource.h rename to dll/cpl/joy/resource.h diff --git a/reactos/dll/cpl/joy/resources/applet.ico b/dll/cpl/joy/resources/applet.ico similarity index 100% rename from reactos/dll/cpl/joy/resources/applet.ico rename to dll/cpl/joy/resources/applet.ico diff --git a/reactos/dll/cpl/joy/rsrc.rc b/dll/cpl/joy/rsrc.rc similarity index 100% rename from reactos/dll/cpl/joy/rsrc.rc rename to dll/cpl/joy/rsrc.rc diff --git a/reactos/dll/cpl/liccpa/lang/bg-BG.rc b/dll/cpl/liccpa/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/bg-BG.rc rename to dll/cpl/liccpa/lang/bg-BG.rc diff --git a/reactos/dll/cpl/liccpa/lang/cs-CZ.rc b/dll/cpl/liccpa/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/cs-CZ.rc rename to dll/cpl/liccpa/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/liccpa/lang/de-DE.rc b/dll/cpl/liccpa/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/de-DE.rc rename to dll/cpl/liccpa/lang/de-DE.rc diff --git a/reactos/dll/cpl/liccpa/lang/el-GR.rc b/dll/cpl/liccpa/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/el-GR.rc rename to dll/cpl/liccpa/lang/el-GR.rc diff --git a/reactos/dll/cpl/liccpa/lang/en-US.rc b/dll/cpl/liccpa/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/en-US.rc rename to dll/cpl/liccpa/lang/en-US.rc diff --git a/reactos/dll/cpl/liccpa/lang/es-ES.rc b/dll/cpl/liccpa/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/es-ES.rc rename to dll/cpl/liccpa/lang/es-ES.rc diff --git a/reactos/dll/cpl/liccpa/lang/fr-FR.rc b/dll/cpl/liccpa/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/fr-FR.rc rename to dll/cpl/liccpa/lang/fr-FR.rc diff --git a/reactos/dll/cpl/liccpa/lang/id-ID.rc b/dll/cpl/liccpa/lang/id-ID.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/id-ID.rc rename to dll/cpl/liccpa/lang/id-ID.rc diff --git a/reactos/dll/cpl/liccpa/lang/it-IT.rc b/dll/cpl/liccpa/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/it-IT.rc rename to dll/cpl/liccpa/lang/it-IT.rc diff --git a/reactos/dll/cpl/liccpa/lang/ja-JP.rc b/dll/cpl/liccpa/lang/ja-JP.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/ja-JP.rc rename to dll/cpl/liccpa/lang/ja-JP.rc diff --git a/reactos/dll/cpl/liccpa/lang/no-NO.rc b/dll/cpl/liccpa/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/no-NO.rc rename to dll/cpl/liccpa/lang/no-NO.rc diff --git a/reactos/dll/cpl/liccpa/lang/pl-PL.rc b/dll/cpl/liccpa/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/pl-PL.rc rename to dll/cpl/liccpa/lang/pl-PL.rc diff --git a/reactos/dll/cpl/liccpa/lang/ro-RO.rc b/dll/cpl/liccpa/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/ro-RO.rc rename to dll/cpl/liccpa/lang/ro-RO.rc diff --git a/reactos/dll/cpl/liccpa/lang/ru-RU.rc b/dll/cpl/liccpa/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/ru-RU.rc rename to dll/cpl/liccpa/lang/ru-RU.rc diff --git a/reactos/dll/cpl/liccpa/lang/sk-SK.rc b/dll/cpl/liccpa/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/sk-SK.rc rename to dll/cpl/liccpa/lang/sk-SK.rc diff --git a/reactos/dll/cpl/liccpa/lang/uk-UA.rc b/dll/cpl/liccpa/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/uk-UA.rc rename to dll/cpl/liccpa/lang/uk-UA.rc diff --git a/reactos/dll/cpl/liccpa/lang/zh-CN.rc b/dll/cpl/liccpa/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/liccpa/lang/zh-CN.rc rename to dll/cpl/liccpa/lang/zh-CN.rc diff --git a/reactos/dll/cpl/liccpa/liccpa.c b/dll/cpl/liccpa/liccpa.c similarity index 100% rename from reactos/dll/cpl/liccpa/liccpa.c rename to dll/cpl/liccpa/liccpa.c diff --git a/reactos/dll/cpl/liccpa/liccpa.h b/dll/cpl/liccpa/liccpa.h similarity index 100% rename from reactos/dll/cpl/liccpa/liccpa.h rename to dll/cpl/liccpa/liccpa.h diff --git a/reactos/dll/cpl/liccpa/liccpa.rc b/dll/cpl/liccpa/liccpa.rc similarity index 100% rename from reactos/dll/cpl/liccpa/liccpa.rc rename to dll/cpl/liccpa/liccpa.rc diff --git a/reactos/dll/cpl/liccpa/liccpa.spec b/dll/cpl/liccpa/liccpa.spec similarity index 100% rename from reactos/dll/cpl/liccpa/liccpa.spec rename to dll/cpl/liccpa/liccpa.spec diff --git a/reactos/dll/cpl/liccpa/resource.h b/dll/cpl/liccpa/resource.h similarity index 100% rename from reactos/dll/cpl/liccpa/resource.h rename to dll/cpl/liccpa/resource.h diff --git a/reactos/dll/cpl/liccpa/resources/cpl_icon1.ico b/dll/cpl/liccpa/resources/cpl_icon1.ico similarity index 100% rename from reactos/dll/cpl/liccpa/resources/cpl_icon1.ico rename to dll/cpl/liccpa/resources/cpl_icon1.ico diff --git a/reactos/dll/cpl/liccpa/rsrc.rc b/dll/cpl/liccpa/rsrc.rc similarity index 100% rename from reactos/dll/cpl/liccpa/rsrc.rc rename to dll/cpl/liccpa/rsrc.rc diff --git a/reactos/dll/cpl/main/CMakeLists.txt b/dll/cpl/main/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/main/CMakeLists.txt rename to dll/cpl/main/CMakeLists.txt diff --git a/reactos/dll/cpl/main/keyboard.c b/dll/cpl/main/keyboard.c similarity index 100% rename from reactos/dll/cpl/main/keyboard.c rename to dll/cpl/main/keyboard.c diff --git a/reactos/dll/cpl/main/lang/bg-BG.rc b/dll/cpl/main/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/main/lang/bg-BG.rc rename to dll/cpl/main/lang/bg-BG.rc diff --git a/reactos/dll/cpl/main/lang/cs-CZ.rc b/dll/cpl/main/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/main/lang/cs-CZ.rc rename to dll/cpl/main/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/main/lang/de-DE.rc b/dll/cpl/main/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/main/lang/de-DE.rc rename to dll/cpl/main/lang/de-DE.rc diff --git a/reactos/dll/cpl/main/lang/el-GR.rc b/dll/cpl/main/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/main/lang/el-GR.rc rename to dll/cpl/main/lang/el-GR.rc diff --git a/reactos/dll/cpl/main/lang/en-US.rc b/dll/cpl/main/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/main/lang/en-US.rc rename to dll/cpl/main/lang/en-US.rc diff --git a/reactos/dll/cpl/main/lang/es-ES.rc b/dll/cpl/main/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/main/lang/es-ES.rc rename to dll/cpl/main/lang/es-ES.rc diff --git a/reactos/dll/cpl/main/lang/fr-FR.rc b/dll/cpl/main/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/main/lang/fr-FR.rc rename to dll/cpl/main/lang/fr-FR.rc diff --git a/reactos/dll/cpl/main/lang/hu-HU.rc b/dll/cpl/main/lang/hu-HU.rc similarity index 100% rename from reactos/dll/cpl/main/lang/hu-HU.rc rename to dll/cpl/main/lang/hu-HU.rc diff --git a/reactos/dll/cpl/main/lang/id-ID.rc b/dll/cpl/main/lang/id-ID.rc similarity index 100% rename from reactos/dll/cpl/main/lang/id-ID.rc rename to dll/cpl/main/lang/id-ID.rc diff --git a/reactos/dll/cpl/main/lang/it-IT.rc b/dll/cpl/main/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/main/lang/it-IT.rc rename to dll/cpl/main/lang/it-IT.rc diff --git a/reactos/dll/cpl/main/lang/ja-JP.rc b/dll/cpl/main/lang/ja-JP.rc similarity index 100% rename from reactos/dll/cpl/main/lang/ja-JP.rc rename to dll/cpl/main/lang/ja-JP.rc diff --git a/reactos/dll/cpl/main/lang/nl-NL.rc b/dll/cpl/main/lang/nl-NL.rc similarity index 100% rename from reactos/dll/cpl/main/lang/nl-NL.rc rename to dll/cpl/main/lang/nl-NL.rc diff --git a/reactos/dll/cpl/main/lang/no-NO.rc b/dll/cpl/main/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/main/lang/no-NO.rc rename to dll/cpl/main/lang/no-NO.rc diff --git a/reactos/dll/cpl/main/lang/pl-PL.rc b/dll/cpl/main/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/main/lang/pl-PL.rc rename to dll/cpl/main/lang/pl-PL.rc diff --git a/reactos/dll/cpl/main/lang/ro-RO.rc b/dll/cpl/main/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/main/lang/ro-RO.rc rename to dll/cpl/main/lang/ro-RO.rc diff --git a/reactos/dll/cpl/main/lang/ru-RU.rc b/dll/cpl/main/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/main/lang/ru-RU.rc rename to dll/cpl/main/lang/ru-RU.rc diff --git a/reactos/dll/cpl/main/lang/sk-SK.rc b/dll/cpl/main/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/main/lang/sk-SK.rc rename to dll/cpl/main/lang/sk-SK.rc diff --git a/reactos/dll/cpl/main/lang/uk-UA.rc b/dll/cpl/main/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/main/lang/uk-UA.rc rename to dll/cpl/main/lang/uk-UA.rc diff --git a/reactos/dll/cpl/main/lang/zh-CN.rc b/dll/cpl/main/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/main/lang/zh-CN.rc rename to dll/cpl/main/lang/zh-CN.rc diff --git a/reactos/dll/cpl/main/main.c b/dll/cpl/main/main.c similarity index 100% rename from reactos/dll/cpl/main/main.c rename to dll/cpl/main/main.c diff --git a/reactos/dll/cpl/main/main.h b/dll/cpl/main/main.h similarity index 100% rename from reactos/dll/cpl/main/main.h rename to dll/cpl/main/main.h diff --git a/reactos/dll/cpl/main/main.rc b/dll/cpl/main/main.rc similarity index 100% rename from reactos/dll/cpl/main/main.rc rename to dll/cpl/main/main.rc diff --git a/reactos/dll/cpl/main/main.spec b/dll/cpl/main/main.spec similarity index 100% rename from reactos/dll/cpl/main/main.spec rename to dll/cpl/main/main.spec diff --git a/reactos/dll/cpl/main/mouse.c b/dll/cpl/main/mouse.c similarity index 100% rename from reactos/dll/cpl/main/mouse.c rename to dll/cpl/main/mouse.c diff --git a/reactos/dll/cpl/main/resource.h b/dll/cpl/main/resource.h similarity index 100% rename from reactos/dll/cpl/main/resource.h rename to dll/cpl/main/resource.h diff --git a/reactos/dll/cpl/main/resources/admintools_folder.ico b/dll/cpl/main/resources/admintools_folder.ico similarity index 100% rename from reactos/dll/cpl/main/resources/admintools_folder.ico rename to dll/cpl/main/resources/admintools_folder.ico diff --git a/reactos/dll/cpl/main/resources/folder_closed.ico b/dll/cpl/main/resources/folder_closed.ico similarity index 100% rename from reactos/dll/cpl/main/resources/folder_closed.ico rename to dll/cpl/main/resources/folder_closed.ico diff --git a/reactos/dll/cpl/main/resources/folder_open.ico b/dll/cpl/main/resources/folder_open.ico similarity index 100% rename from reactos/dll/cpl/main/resources/folder_open.ico rename to dll/cpl/main/resources/folder_open.ico diff --git a/reactos/dll/cpl/main/resources/fonts_folder.ico b/dll/cpl/main/resources/fonts_folder.ico similarity index 100% rename from reactos/dll/cpl/main/resources/fonts_folder.ico rename to dll/cpl/main/resources/fonts_folder.ico diff --git a/reactos/dll/cpl/main/resources/keyboard.ico b/dll/cpl/main/resources/keyboard.ico similarity index 100% rename from reactos/dll/cpl/main/resources/keyboard.ico rename to dll/cpl/main/resources/keyboard.ico diff --git a/reactos/dll/cpl/main/resources/look_key.ico b/dll/cpl/main/resources/look_key.ico similarity index 100% rename from reactos/dll/cpl/main/resources/look_key.ico rename to dll/cpl/main/resources/look_key.ico diff --git a/reactos/dll/cpl/main/resources/mouse.ico b/dll/cpl/main/resources/mouse.ico similarity index 100% rename from reactos/dll/cpl/main/resources/mouse.ico rename to dll/cpl/main/resources/mouse.ico diff --git a/reactos/dll/cpl/main/resources/mouse_button.ico b/dll/cpl/main/resources/mouse_button.ico similarity index 100% rename from reactos/dll/cpl/main/resources/mouse_button.ico rename to dll/cpl/main/resources/mouse_button.ico diff --git a/reactos/dll/cpl/main/resources/mouse_left.ico b/dll/cpl/main/resources/mouse_left.ico similarity index 100% rename from reactos/dll/cpl/main/resources/mouse_left.ico rename to dll/cpl/main/resources/mouse_left.ico diff --git a/reactos/dll/cpl/main/resources/mouse_pointer.ico b/dll/cpl/main/resources/mouse_pointer.ico similarity index 100% rename from reactos/dll/cpl/main/resources/mouse_pointer.ico rename to dll/cpl/main/resources/mouse_pointer.ico diff --git a/reactos/dll/cpl/main/resources/mouse_right.ico b/dll/cpl/main/resources/mouse_right.ico similarity index 100% rename from reactos/dll/cpl/main/resources/mouse_right.ico rename to dll/cpl/main/resources/mouse_right.ico diff --git a/reactos/dll/cpl/main/resources/mouse_speed.ico b/dll/cpl/main/resources/mouse_speed.ico similarity index 100% rename from reactos/dll/cpl/main/resources/mouse_speed.ico rename to dll/cpl/main/resources/mouse_speed.ico diff --git a/reactos/dll/cpl/main/resources/mouse_trails.ico b/dll/cpl/main/resources/mouse_trails.ico similarity index 100% rename from reactos/dll/cpl/main/resources/mouse_trails.ico rename to dll/cpl/main/resources/mouse_trails.ico diff --git a/reactos/dll/cpl/main/resources/mouse_wheel.ico b/dll/cpl/main/resources/mouse_wheel.ico similarity index 100% rename from reactos/dll/cpl/main/resources/mouse_wheel.ico rename to dll/cpl/main/resources/mouse_wheel.ico diff --git a/reactos/dll/cpl/main/resources/repeat_delay.ico b/dll/cpl/main/resources/repeat_delay.ico similarity index 100% rename from reactos/dll/cpl/main/resources/repeat_delay.ico rename to dll/cpl/main/resources/repeat_delay.ico diff --git a/reactos/dll/cpl/main/resources/repeat_rate.ico b/dll/cpl/main/resources/repeat_rate.ico similarity index 100% rename from reactos/dll/cpl/main/resources/repeat_rate.ico rename to dll/cpl/main/resources/repeat_rate.ico diff --git a/reactos/dll/cpl/main/rsrc.rc b/dll/cpl/main/rsrc.rc similarity index 100% rename from reactos/dll/cpl/main/rsrc.rc rename to dll/cpl/main/rsrc.rc diff --git a/reactos/dll/cpl/mmsys/CMakeLists.txt b/dll/cpl/mmsys/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/mmsys/CMakeLists.txt rename to dll/cpl/mmsys/CMakeLists.txt diff --git a/reactos/dll/cpl/mmsys/audio.c b/dll/cpl/mmsys/audio.c similarity index 100% rename from reactos/dll/cpl/mmsys/audio.c rename to dll/cpl/mmsys/audio.c diff --git a/reactos/dll/cpl/mmsys/lang/bg-BG.rc b/dll/cpl/mmsys/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/bg-BG.rc rename to dll/cpl/mmsys/lang/bg-BG.rc diff --git a/reactos/dll/cpl/mmsys/lang/cs-CZ.rc b/dll/cpl/mmsys/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/cs-CZ.rc rename to dll/cpl/mmsys/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/mmsys/lang/de-DE.rc b/dll/cpl/mmsys/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/de-DE.rc rename to dll/cpl/mmsys/lang/de-DE.rc diff --git a/reactos/dll/cpl/mmsys/lang/el-GR.rc b/dll/cpl/mmsys/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/el-GR.rc rename to dll/cpl/mmsys/lang/el-GR.rc diff --git a/reactos/dll/cpl/mmsys/lang/en-US.rc b/dll/cpl/mmsys/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/en-US.rc rename to dll/cpl/mmsys/lang/en-US.rc diff --git a/reactos/dll/cpl/mmsys/lang/es-ES.rc b/dll/cpl/mmsys/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/es-ES.rc rename to dll/cpl/mmsys/lang/es-ES.rc diff --git a/reactos/dll/cpl/mmsys/lang/fr-FR.rc b/dll/cpl/mmsys/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/fr-FR.rc rename to dll/cpl/mmsys/lang/fr-FR.rc diff --git a/reactos/dll/cpl/mmsys/lang/id-ID.rc b/dll/cpl/mmsys/lang/id-ID.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/id-ID.rc rename to dll/cpl/mmsys/lang/id-ID.rc diff --git a/reactos/dll/cpl/mmsys/lang/it-IT.rc b/dll/cpl/mmsys/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/it-IT.rc rename to dll/cpl/mmsys/lang/it-IT.rc diff --git a/reactos/dll/cpl/mmsys/lang/nl-NL.rc b/dll/cpl/mmsys/lang/nl-NL.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/nl-NL.rc rename to dll/cpl/mmsys/lang/nl-NL.rc diff --git a/reactos/dll/cpl/mmsys/lang/no-NO.rc b/dll/cpl/mmsys/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/no-NO.rc rename to dll/cpl/mmsys/lang/no-NO.rc diff --git a/reactos/dll/cpl/mmsys/lang/pl-PL.rc b/dll/cpl/mmsys/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/pl-PL.rc rename to dll/cpl/mmsys/lang/pl-PL.rc diff --git a/reactos/dll/cpl/mmsys/lang/pt-BR.rc b/dll/cpl/mmsys/lang/pt-BR.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/pt-BR.rc rename to dll/cpl/mmsys/lang/pt-BR.rc diff --git a/reactos/dll/cpl/mmsys/lang/ro-RO.rc b/dll/cpl/mmsys/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/ro-RO.rc rename to dll/cpl/mmsys/lang/ro-RO.rc diff --git a/reactos/dll/cpl/mmsys/lang/ru-RU.rc b/dll/cpl/mmsys/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/ru-RU.rc rename to dll/cpl/mmsys/lang/ru-RU.rc diff --git a/reactos/dll/cpl/mmsys/lang/sk-SK.rc b/dll/cpl/mmsys/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/sk-SK.rc rename to dll/cpl/mmsys/lang/sk-SK.rc diff --git a/reactos/dll/cpl/mmsys/lang/uk-UA.rc b/dll/cpl/mmsys/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/uk-UA.rc rename to dll/cpl/mmsys/lang/uk-UA.rc diff --git a/reactos/dll/cpl/mmsys/lang/zh-CN.rc b/dll/cpl/mmsys/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/mmsys/lang/zh-CN.rc rename to dll/cpl/mmsys/lang/zh-CN.rc diff --git a/reactos/dll/cpl/mmsys/mmsys.c b/dll/cpl/mmsys/mmsys.c similarity index 100% rename from reactos/dll/cpl/mmsys/mmsys.c rename to dll/cpl/mmsys/mmsys.c diff --git a/reactos/dll/cpl/mmsys/mmsys.h b/dll/cpl/mmsys/mmsys.h similarity index 100% rename from reactos/dll/cpl/mmsys/mmsys.h rename to dll/cpl/mmsys/mmsys.h diff --git a/reactos/dll/cpl/mmsys/mmsys.rc b/dll/cpl/mmsys/mmsys.rc similarity index 100% rename from reactos/dll/cpl/mmsys/mmsys.rc rename to dll/cpl/mmsys/mmsys.rc diff --git a/reactos/dll/cpl/mmsys/mmsys.spec b/dll/cpl/mmsys/mmsys.spec similarity index 100% rename from reactos/dll/cpl/mmsys/mmsys.spec rename to dll/cpl/mmsys/mmsys.spec diff --git a/reactos/dll/cpl/mmsys/resource.h b/dll/cpl/mmsys/resource.h similarity index 100% rename from reactos/dll/cpl/mmsys/resource.h rename to dll/cpl/mmsys/resource.h diff --git a/reactos/dll/cpl/mmsys/resources/3004.ico b/dll/cpl/mmsys/resources/3004.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/3004.ico rename to dll/cpl/mmsys/resources/3004.ico diff --git a/reactos/dll/cpl/mmsys/resources/4353.ico b/dll/cpl/mmsys/resources/4353.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4353.ico rename to dll/cpl/mmsys/resources/4353.ico diff --git a/reactos/dll/cpl/mmsys/resources/4354.ico b/dll/cpl/mmsys/resources/4354.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4354.ico rename to dll/cpl/mmsys/resources/4354.ico diff --git a/reactos/dll/cpl/mmsys/resources/4355.ico b/dll/cpl/mmsys/resources/4355.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4355.ico rename to dll/cpl/mmsys/resources/4355.ico diff --git a/reactos/dll/cpl/mmsys/resources/4356.ico b/dll/cpl/mmsys/resources/4356.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4356.ico rename to dll/cpl/mmsys/resources/4356.ico diff --git a/reactos/dll/cpl/mmsys/resources/4357.ico b/dll/cpl/mmsys/resources/4357.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4357.ico rename to dll/cpl/mmsys/resources/4357.ico diff --git a/reactos/dll/cpl/mmsys/resources/4358.ico b/dll/cpl/mmsys/resources/4358.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4358.ico rename to dll/cpl/mmsys/resources/4358.ico diff --git a/reactos/dll/cpl/mmsys/resources/4359.ico b/dll/cpl/mmsys/resources/4359.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4359.ico rename to dll/cpl/mmsys/resources/4359.ico diff --git a/reactos/dll/cpl/mmsys/resources/4360.ico b/dll/cpl/mmsys/resources/4360.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4360.ico rename to dll/cpl/mmsys/resources/4360.ico diff --git a/reactos/dll/cpl/mmsys/resources/4361.ico b/dll/cpl/mmsys/resources/4361.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4361.ico rename to dll/cpl/mmsys/resources/4361.ico diff --git a/reactos/dll/cpl/mmsys/resources/4362.ico b/dll/cpl/mmsys/resources/4362.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4362.ico rename to dll/cpl/mmsys/resources/4362.ico diff --git a/reactos/dll/cpl/mmsys/resources/4363.ico b/dll/cpl/mmsys/resources/4363.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4363.ico rename to dll/cpl/mmsys/resources/4363.ico diff --git a/reactos/dll/cpl/mmsys/resources/4364.ico b/dll/cpl/mmsys/resources/4364.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4364.ico rename to dll/cpl/mmsys/resources/4364.ico diff --git a/reactos/dll/cpl/mmsys/resources/4365.ico b/dll/cpl/mmsys/resources/4365.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4365.ico rename to dll/cpl/mmsys/resources/4365.ico diff --git a/reactos/dll/cpl/mmsys/resources/4366.ico b/dll/cpl/mmsys/resources/4366.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4366.ico rename to dll/cpl/mmsys/resources/4366.ico diff --git a/reactos/dll/cpl/mmsys/resources/4367.ico b/dll/cpl/mmsys/resources/4367.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4367.ico rename to dll/cpl/mmsys/resources/4367.ico diff --git a/reactos/dll/cpl/mmsys/resources/4368.ico b/dll/cpl/mmsys/resources/4368.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4368.ico rename to dll/cpl/mmsys/resources/4368.ico diff --git a/reactos/dll/cpl/mmsys/resources/4369.ico b/dll/cpl/mmsys/resources/4369.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4369.ico rename to dll/cpl/mmsys/resources/4369.ico diff --git a/reactos/dll/cpl/mmsys/resources/4370.ico b/dll/cpl/mmsys/resources/4370.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4370.ico rename to dll/cpl/mmsys/resources/4370.ico diff --git a/reactos/dll/cpl/mmsys/resources/4371.ico b/dll/cpl/mmsys/resources/4371.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4371.ico rename to dll/cpl/mmsys/resources/4371.ico diff --git a/reactos/dll/cpl/mmsys/resources/4372.ico b/dll/cpl/mmsys/resources/4372.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4372.ico rename to dll/cpl/mmsys/resources/4372.ico diff --git a/reactos/dll/cpl/mmsys/resources/4373.ico b/dll/cpl/mmsys/resources/4373.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4373.ico rename to dll/cpl/mmsys/resources/4373.ico diff --git a/reactos/dll/cpl/mmsys/resources/4374.ico b/dll/cpl/mmsys/resources/4374.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4374.ico rename to dll/cpl/mmsys/resources/4374.ico diff --git a/reactos/dll/cpl/mmsys/resources/4375.ico b/dll/cpl/mmsys/resources/4375.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4375.ico rename to dll/cpl/mmsys/resources/4375.ico diff --git a/reactos/dll/cpl/mmsys/resources/4376.ico b/dll/cpl/mmsys/resources/4376.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4376.ico rename to dll/cpl/mmsys/resources/4376.ico diff --git a/reactos/dll/cpl/mmsys/resources/4377.ico b/dll/cpl/mmsys/resources/4377.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4377.ico rename to dll/cpl/mmsys/resources/4377.ico diff --git a/reactos/dll/cpl/mmsys/resources/4378.ico b/dll/cpl/mmsys/resources/4378.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4378.ico rename to dll/cpl/mmsys/resources/4378.ico diff --git a/reactos/dll/cpl/mmsys/resources/4379.ico b/dll/cpl/mmsys/resources/4379.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4379.ico rename to dll/cpl/mmsys/resources/4379.ico diff --git a/reactos/dll/cpl/mmsys/resources/4380.ico b/dll/cpl/mmsys/resources/4380.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4380.ico rename to dll/cpl/mmsys/resources/4380.ico diff --git a/reactos/dll/cpl/mmsys/resources/4381.ico b/dll/cpl/mmsys/resources/4381.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4381.ico rename to dll/cpl/mmsys/resources/4381.ico diff --git a/reactos/dll/cpl/mmsys/resources/4382.ico b/dll/cpl/mmsys/resources/4382.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4382.ico rename to dll/cpl/mmsys/resources/4382.ico diff --git a/reactos/dll/cpl/mmsys/resources/4383.ico b/dll/cpl/mmsys/resources/4383.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4383.ico rename to dll/cpl/mmsys/resources/4383.ico diff --git a/reactos/dll/cpl/mmsys/resources/4384.ico b/dll/cpl/mmsys/resources/4384.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4384.ico rename to dll/cpl/mmsys/resources/4384.ico diff --git a/reactos/dll/cpl/mmsys/resources/4385.ico b/dll/cpl/mmsys/resources/4385.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4385.ico rename to dll/cpl/mmsys/resources/4385.ico diff --git a/reactos/dll/cpl/mmsys/resources/4386.ico b/dll/cpl/mmsys/resources/4386.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4386.ico rename to dll/cpl/mmsys/resources/4386.ico diff --git a/reactos/dll/cpl/mmsys/resources/4387.ico b/dll/cpl/mmsys/resources/4387.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4387.ico rename to dll/cpl/mmsys/resources/4387.ico diff --git a/reactos/dll/cpl/mmsys/resources/4388.ico b/dll/cpl/mmsys/resources/4388.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4388.ico rename to dll/cpl/mmsys/resources/4388.ico diff --git a/reactos/dll/cpl/mmsys/resources/4390.ico b/dll/cpl/mmsys/resources/4390.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4390.ico rename to dll/cpl/mmsys/resources/4390.ico diff --git a/reactos/dll/cpl/mmsys/resources/4393.ico b/dll/cpl/mmsys/resources/4393.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4393.ico rename to dll/cpl/mmsys/resources/4393.ico diff --git a/reactos/dll/cpl/mmsys/resources/4394.ico b/dll/cpl/mmsys/resources/4394.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/4394.ico rename to dll/cpl/mmsys/resources/4394.ico diff --git a/reactos/dll/cpl/mmsys/resources/play.ico b/dll/cpl/mmsys/resources/play.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/play.ico rename to dll/cpl/mmsys/resources/play.ico diff --git a/reactos/dll/cpl/mmsys/resources/speaker.bmp b/dll/cpl/mmsys/resources/speaker.bmp similarity index 100% rename from reactos/dll/cpl/mmsys/resources/speaker.bmp rename to dll/cpl/mmsys/resources/speaker.bmp diff --git a/reactos/dll/cpl/mmsys/resources/stop.ico b/dll/cpl/mmsys/resources/stop.ico similarity index 100% rename from reactos/dll/cpl/mmsys/resources/stop.ico rename to dll/cpl/mmsys/resources/stop.ico diff --git a/reactos/dll/cpl/mmsys/rsrc.rc b/dll/cpl/mmsys/rsrc.rc similarity index 100% rename from reactos/dll/cpl/mmsys/rsrc.rc rename to dll/cpl/mmsys/rsrc.rc diff --git a/reactos/dll/cpl/mmsys/sounds.c b/dll/cpl/mmsys/sounds.c similarity index 100% rename from reactos/dll/cpl/mmsys/sounds.c rename to dll/cpl/mmsys/sounds.c diff --git a/reactos/dll/cpl/mmsys/voice.c b/dll/cpl/mmsys/voice.c similarity index 100% rename from reactos/dll/cpl/mmsys/voice.c rename to dll/cpl/mmsys/voice.c diff --git a/reactos/dll/cpl/mmsys/volume.c b/dll/cpl/mmsys/volume.c similarity index 100% rename from reactos/dll/cpl/mmsys/volume.c rename to dll/cpl/mmsys/volume.c diff --git a/reactos/dll/cpl/ncpa/CMakeLists.txt b/dll/cpl/ncpa/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/ncpa/CMakeLists.txt rename to dll/cpl/ncpa/CMakeLists.txt diff --git a/reactos/dll/cpl/ncpa/ncpa.c b/dll/cpl/ncpa/ncpa.c similarity index 100% rename from reactos/dll/cpl/ncpa/ncpa.c rename to dll/cpl/ncpa/ncpa.c diff --git a/reactos/dll/cpl/ncpa/ncpa.spec b/dll/cpl/ncpa/ncpa.spec similarity index 100% rename from reactos/dll/cpl/ncpa/ncpa.spec rename to dll/cpl/ncpa/ncpa.spec diff --git a/reactos/dll/cpl/odbccp32/CMakeLists.txt b/dll/cpl/odbccp32/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/odbccp32/CMakeLists.txt rename to dll/cpl/odbccp32/CMakeLists.txt diff --git a/reactos/dll/cpl/odbccp32/odbccp32.c b/dll/cpl/odbccp32/odbccp32.c similarity index 100% rename from reactos/dll/cpl/odbccp32/odbccp32.c rename to dll/cpl/odbccp32/odbccp32.c diff --git a/reactos/dll/cpl/odbccp32/odbccp32.h b/dll/cpl/odbccp32/odbccp32.h similarity index 100% rename from reactos/dll/cpl/odbccp32/odbccp32.h rename to dll/cpl/odbccp32/odbccp32.h diff --git a/reactos/dll/cpl/odbccp32/odbccp32.rc b/dll/cpl/odbccp32/odbccp32.rc similarity index 100% rename from reactos/dll/cpl/odbccp32/odbccp32.rc rename to dll/cpl/odbccp32/odbccp32.rc diff --git a/reactos/dll/cpl/odbccp32/odbccp32.spec b/dll/cpl/odbccp32/odbccp32.spec similarity index 100% rename from reactos/dll/cpl/odbccp32/odbccp32.spec rename to dll/cpl/odbccp32/odbccp32.spec diff --git a/reactos/dll/cpl/powercfg/CMakeLists.txt b/dll/cpl/powercfg/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/powercfg/CMakeLists.txt rename to dll/cpl/powercfg/CMakeLists.txt diff --git a/reactos/dll/cpl/powercfg/advanced.c b/dll/cpl/powercfg/advanced.c similarity index 100% rename from reactos/dll/cpl/powercfg/advanced.c rename to dll/cpl/powercfg/advanced.c diff --git a/reactos/dll/cpl/powercfg/alarms.c b/dll/cpl/powercfg/alarms.c similarity index 100% rename from reactos/dll/cpl/powercfg/alarms.c rename to dll/cpl/powercfg/alarms.c diff --git a/reactos/dll/cpl/powercfg/hibernate.c b/dll/cpl/powercfg/hibernate.c similarity index 100% rename from reactos/dll/cpl/powercfg/hibernate.c rename to dll/cpl/powercfg/hibernate.c diff --git a/reactos/dll/cpl/powercfg/lang/bg-BG.rc b/dll/cpl/powercfg/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/bg-BG.rc rename to dll/cpl/powercfg/lang/bg-BG.rc diff --git a/reactos/dll/cpl/powercfg/lang/cs-CZ.rc b/dll/cpl/powercfg/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/cs-CZ.rc rename to dll/cpl/powercfg/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/powercfg/lang/de-DE.rc b/dll/cpl/powercfg/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/de-DE.rc rename to dll/cpl/powercfg/lang/de-DE.rc diff --git a/reactos/dll/cpl/powercfg/lang/el-GR.rc b/dll/cpl/powercfg/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/el-GR.rc rename to dll/cpl/powercfg/lang/el-GR.rc diff --git a/reactos/dll/cpl/powercfg/lang/en-US.rc b/dll/cpl/powercfg/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/en-US.rc rename to dll/cpl/powercfg/lang/en-US.rc diff --git a/reactos/dll/cpl/powercfg/lang/es-ES.rc b/dll/cpl/powercfg/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/es-ES.rc rename to dll/cpl/powercfg/lang/es-ES.rc diff --git a/reactos/dll/cpl/powercfg/lang/fr-FR.rc b/dll/cpl/powercfg/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/fr-FR.rc rename to dll/cpl/powercfg/lang/fr-FR.rc diff --git a/reactos/dll/cpl/powercfg/lang/id-ID.rc b/dll/cpl/powercfg/lang/id-ID.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/id-ID.rc rename to dll/cpl/powercfg/lang/id-ID.rc diff --git a/reactos/dll/cpl/powercfg/lang/it-IT.rc b/dll/cpl/powercfg/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/it-IT.rc rename to dll/cpl/powercfg/lang/it-IT.rc diff --git a/reactos/dll/cpl/powercfg/lang/ja-JP.rc b/dll/cpl/powercfg/lang/ja-JP.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/ja-JP.rc rename to dll/cpl/powercfg/lang/ja-JP.rc diff --git a/reactos/dll/cpl/powercfg/lang/nl-NL.rc b/dll/cpl/powercfg/lang/nl-NL.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/nl-NL.rc rename to dll/cpl/powercfg/lang/nl-NL.rc diff --git a/reactos/dll/cpl/powercfg/lang/no-NO.rc b/dll/cpl/powercfg/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/no-NO.rc rename to dll/cpl/powercfg/lang/no-NO.rc diff --git a/reactos/dll/cpl/powercfg/lang/pl-PL.rc b/dll/cpl/powercfg/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/pl-PL.rc rename to dll/cpl/powercfg/lang/pl-PL.rc diff --git a/reactos/dll/cpl/powercfg/lang/ro-RO.rc b/dll/cpl/powercfg/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/ro-RO.rc rename to dll/cpl/powercfg/lang/ro-RO.rc diff --git a/reactos/dll/cpl/powercfg/lang/ru-RU.rc b/dll/cpl/powercfg/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/ru-RU.rc rename to dll/cpl/powercfg/lang/ru-RU.rc diff --git a/reactos/dll/cpl/powercfg/lang/sk-SK.rc b/dll/cpl/powercfg/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/sk-SK.rc rename to dll/cpl/powercfg/lang/sk-SK.rc diff --git a/reactos/dll/cpl/powercfg/lang/th-TH.rc b/dll/cpl/powercfg/lang/th-TH.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/th-TH.rc rename to dll/cpl/powercfg/lang/th-TH.rc diff --git a/reactos/dll/cpl/powercfg/lang/uk-UA.rc b/dll/cpl/powercfg/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/uk-UA.rc rename to dll/cpl/powercfg/lang/uk-UA.rc diff --git a/reactos/dll/cpl/powercfg/lang/zh-CN.rc b/dll/cpl/powercfg/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/powercfg/lang/zh-CN.rc rename to dll/cpl/powercfg/lang/zh-CN.rc diff --git a/reactos/dll/cpl/powercfg/powercfg.c b/dll/cpl/powercfg/powercfg.c similarity index 100% rename from reactos/dll/cpl/powercfg/powercfg.c rename to dll/cpl/powercfg/powercfg.c diff --git a/reactos/dll/cpl/powercfg/powercfg.h b/dll/cpl/powercfg/powercfg.h similarity index 100% rename from reactos/dll/cpl/powercfg/powercfg.h rename to dll/cpl/powercfg/powercfg.h diff --git a/reactos/dll/cpl/powercfg/powercfg.rc b/dll/cpl/powercfg/powercfg.rc similarity index 100% rename from reactos/dll/cpl/powercfg/powercfg.rc rename to dll/cpl/powercfg/powercfg.rc diff --git a/reactos/dll/cpl/powercfg/powercfg.spec b/dll/cpl/powercfg/powercfg.spec similarity index 100% rename from reactos/dll/cpl/powercfg/powercfg.spec rename to dll/cpl/powercfg/powercfg.spec diff --git a/reactos/dll/cpl/powercfg/powershemes.c b/dll/cpl/powercfg/powershemes.c similarity index 100% rename from reactos/dll/cpl/powercfg/powershemes.c rename to dll/cpl/powercfg/powershemes.c diff --git a/reactos/dll/cpl/powercfg/resource.h b/dll/cpl/powercfg/resource.h similarity index 100% rename from reactos/dll/cpl/powercfg/resource.h rename to dll/cpl/powercfg/resource.h diff --git a/reactos/dll/cpl/powercfg/resources/ac.ico b/dll/cpl/powercfg/resources/ac.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/ac.ico rename to dll/cpl/powercfg/resources/ac.ico diff --git a/reactos/dll/cpl/powercfg/resources/acdc.ico b/dll/cpl/powercfg/resources/acdc.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/acdc.ico rename to dll/cpl/powercfg/resources/acdc.ico diff --git a/reactos/dll/cpl/powercfg/resources/batterycharging.ico b/dll/cpl/powercfg/resources/batterycharging.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/batterycharging.ico rename to dll/cpl/powercfg/resources/batterycharging.ico diff --git a/reactos/dll/cpl/powercfg/resources/batterychargingcritical.ico b/dll/cpl/powercfg/resources/batterychargingcritical.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/batterychargingcritical.ico rename to dll/cpl/powercfg/resources/batterychargingcritical.ico diff --git a/reactos/dll/cpl/powercfg/resources/batterycharginghalf.ico b/dll/cpl/powercfg/resources/batterycharginghalf.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/batterycharginghalf.ico rename to dll/cpl/powercfg/resources/batterycharginghalf.ico diff --git a/reactos/dll/cpl/powercfg/resources/batterycharginghigh.ico b/dll/cpl/powercfg/resources/batterycharginghigh.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/batterycharginghigh.ico rename to dll/cpl/powercfg/resources/batterycharginghigh.ico diff --git a/reactos/dll/cpl/powercfg/resources/batterycharginglow.ico b/dll/cpl/powercfg/resources/batterycharginglow.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/batterycharginglow.ico rename to dll/cpl/powercfg/resources/batterycharginglow.ico diff --git a/reactos/dll/cpl/powercfg/resources/batterycritical.ico b/dll/cpl/powercfg/resources/batterycritical.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/batterycritical.ico rename to dll/cpl/powercfg/resources/batterycritical.ico diff --git a/reactos/dll/cpl/powercfg/resources/batteryfull.ico b/dll/cpl/powercfg/resources/batteryfull.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/batteryfull.ico rename to dll/cpl/powercfg/resources/batteryfull.ico diff --git a/reactos/dll/cpl/powercfg/resources/batteryhalf.ico b/dll/cpl/powercfg/resources/batteryhalf.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/batteryhalf.ico rename to dll/cpl/powercfg/resources/batteryhalf.ico diff --git a/reactos/dll/cpl/powercfg/resources/batteryhigh.ico b/dll/cpl/powercfg/resources/batteryhigh.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/batteryhigh.ico rename to dll/cpl/powercfg/resources/batteryhigh.ico diff --git a/reactos/dll/cpl/powercfg/resources/batterylow.ico b/dll/cpl/powercfg/resources/batterylow.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/batterylow.ico rename to dll/cpl/powercfg/resources/batterylow.ico diff --git a/reactos/dll/cpl/powercfg/resources/batteryunknown.ico b/dll/cpl/powercfg/resources/batteryunknown.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/batteryunknown.ico rename to dll/cpl/powercfg/resources/batteryunknown.ico diff --git a/reactos/dll/cpl/powercfg/resources/dc.ico b/dll/cpl/powercfg/resources/dc.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/dc.ico rename to dll/cpl/powercfg/resources/dc.ico diff --git a/reactos/dll/cpl/powercfg/resources/hibernate.ico b/dll/cpl/powercfg/resources/hibernate.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/hibernate.ico rename to dll/cpl/powercfg/resources/hibernate.ico diff --git a/reactos/dll/cpl/powercfg/resources/nobattery.ico b/dll/cpl/powercfg/resources/nobattery.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/nobattery.ico rename to dll/cpl/powercfg/resources/nobattery.ico diff --git a/reactos/dll/cpl/powercfg/resources/screen.ico b/dll/cpl/powercfg/resources/screen.ico similarity index 100% rename from reactos/dll/cpl/powercfg/resources/screen.ico rename to dll/cpl/powercfg/resources/screen.ico diff --git a/reactos/dll/cpl/powercfg/rsrc.rc b/dll/cpl/powercfg/rsrc.rc similarity index 100% rename from reactos/dll/cpl/powercfg/rsrc.rc rename to dll/cpl/powercfg/rsrc.rc diff --git a/reactos/dll/cpl/sysdm/CMakeLists.txt b/dll/cpl/sysdm/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/sysdm/CMakeLists.txt rename to dll/cpl/sysdm/CMakeLists.txt diff --git a/reactos/dll/cpl/sysdm/advanced.c b/dll/cpl/sysdm/advanced.c similarity index 100% rename from reactos/dll/cpl/sysdm/advanced.c rename to dll/cpl/sysdm/advanced.c diff --git a/reactos/dll/cpl/sysdm/environment.c b/dll/cpl/sysdm/environment.c similarity index 100% rename from reactos/dll/cpl/sysdm/environment.c rename to dll/cpl/sysdm/environment.c diff --git a/reactos/dll/cpl/sysdm/general.c b/dll/cpl/sysdm/general.c similarity index 100% rename from reactos/dll/cpl/sysdm/general.c rename to dll/cpl/sysdm/general.c diff --git a/reactos/dll/cpl/sysdm/hardprof.c b/dll/cpl/sysdm/hardprof.c similarity index 100% rename from reactos/dll/cpl/sysdm/hardprof.c rename to dll/cpl/sysdm/hardprof.c diff --git a/reactos/dll/cpl/sysdm/hardware.c b/dll/cpl/sysdm/hardware.c similarity index 100% rename from reactos/dll/cpl/sysdm/hardware.c rename to dll/cpl/sysdm/hardware.c diff --git a/reactos/dll/cpl/sysdm/lang/bg-BG.rc b/dll/cpl/sysdm/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/bg-BG.rc rename to dll/cpl/sysdm/lang/bg-BG.rc diff --git a/reactos/dll/cpl/sysdm/lang/cs-CZ.rc b/dll/cpl/sysdm/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/cs-CZ.rc rename to dll/cpl/sysdm/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/sysdm/lang/da-DK.rc b/dll/cpl/sysdm/lang/da-DK.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/da-DK.rc rename to dll/cpl/sysdm/lang/da-DK.rc diff --git a/reactos/dll/cpl/sysdm/lang/de-DE.rc b/dll/cpl/sysdm/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/de-DE.rc rename to dll/cpl/sysdm/lang/de-DE.rc diff --git a/reactos/dll/cpl/sysdm/lang/el-GR.rc b/dll/cpl/sysdm/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/el-GR.rc rename to dll/cpl/sysdm/lang/el-GR.rc diff --git a/reactos/dll/cpl/sysdm/lang/en-US.rc b/dll/cpl/sysdm/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/en-US.rc rename to dll/cpl/sysdm/lang/en-US.rc diff --git a/reactos/dll/cpl/sysdm/lang/es-ES.rc b/dll/cpl/sysdm/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/es-ES.rc rename to dll/cpl/sysdm/lang/es-ES.rc diff --git a/reactos/dll/cpl/sysdm/lang/fr-FR.rc b/dll/cpl/sysdm/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/fr-FR.rc rename to dll/cpl/sysdm/lang/fr-FR.rc diff --git a/reactos/dll/cpl/sysdm/lang/hu-HU.rc b/dll/cpl/sysdm/lang/hu-HU.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/hu-HU.rc rename to dll/cpl/sysdm/lang/hu-HU.rc diff --git a/reactos/dll/cpl/sysdm/lang/id-ID.rc b/dll/cpl/sysdm/lang/id-ID.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/id-ID.rc rename to dll/cpl/sysdm/lang/id-ID.rc diff --git a/reactos/dll/cpl/sysdm/lang/it-IT.rc b/dll/cpl/sysdm/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/it-IT.rc rename to dll/cpl/sysdm/lang/it-IT.rc diff --git a/reactos/dll/cpl/sysdm/lang/ja-JP.rc b/dll/cpl/sysdm/lang/ja-JP.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/ja-JP.rc rename to dll/cpl/sysdm/lang/ja-JP.rc diff --git a/reactos/dll/cpl/sysdm/lang/nl-NL.rc b/dll/cpl/sysdm/lang/nl-NL.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/nl-NL.rc rename to dll/cpl/sysdm/lang/nl-NL.rc diff --git a/reactos/dll/cpl/sysdm/lang/no-NO.rc b/dll/cpl/sysdm/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/no-NO.rc rename to dll/cpl/sysdm/lang/no-NO.rc diff --git a/reactos/dll/cpl/sysdm/lang/pl-PL.rc b/dll/cpl/sysdm/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/pl-PL.rc rename to dll/cpl/sysdm/lang/pl-PL.rc diff --git a/reactos/dll/cpl/sysdm/lang/ro-RO.rc b/dll/cpl/sysdm/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/ro-RO.rc rename to dll/cpl/sysdm/lang/ro-RO.rc diff --git a/reactos/dll/cpl/sysdm/lang/ru-RU.rc b/dll/cpl/sysdm/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/ru-RU.rc rename to dll/cpl/sysdm/lang/ru-RU.rc diff --git a/reactos/dll/cpl/sysdm/lang/sk-SK.rc b/dll/cpl/sysdm/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/sk-SK.rc rename to dll/cpl/sysdm/lang/sk-SK.rc diff --git a/reactos/dll/cpl/sysdm/lang/sv-SE.rc b/dll/cpl/sysdm/lang/sv-SE.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/sv-SE.rc rename to dll/cpl/sysdm/lang/sv-SE.rc diff --git a/reactos/dll/cpl/sysdm/lang/uk-UA.rc b/dll/cpl/sysdm/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/uk-UA.rc rename to dll/cpl/sysdm/lang/uk-UA.rc diff --git a/reactos/dll/cpl/sysdm/lang/zh-CN.rc b/dll/cpl/sysdm/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/sysdm/lang/zh-CN.rc rename to dll/cpl/sysdm/lang/zh-CN.rc diff --git a/reactos/dll/cpl/sysdm/licence.c b/dll/cpl/sysdm/licence.c similarity index 100% rename from reactos/dll/cpl/sysdm/licence.c rename to dll/cpl/sysdm/licence.c diff --git a/reactos/dll/cpl/sysdm/precomp.h b/dll/cpl/sysdm/precomp.h similarity index 100% rename from reactos/dll/cpl/sysdm/precomp.h rename to dll/cpl/sysdm/precomp.h diff --git a/reactos/dll/cpl/sysdm/resource.h b/dll/cpl/sysdm/resource.h similarity index 100% rename from reactos/dll/cpl/sysdm/resource.h rename to dll/cpl/sysdm/resource.h diff --git a/reactos/dll/cpl/sysdm/resources/applet.ico b/dll/cpl/sysdm/resources/applet.ico similarity index 100% rename from reactos/dll/cpl/sysdm/resources/applet.ico rename to dll/cpl/sysdm/resources/applet.ico diff --git a/reactos/dll/cpl/sysdm/resources/devmgr.ico b/dll/cpl/sysdm/resources/devmgr.ico similarity index 100% rename from reactos/dll/cpl/sysdm/resources/devmgr.ico rename to dll/cpl/sysdm/resources/devmgr.ico diff --git a/reactos/dll/cpl/sysdm/resources/down.ico b/dll/cpl/sysdm/resources/down.ico similarity index 100% rename from reactos/dll/cpl/sysdm/resources/down.ico rename to dll/cpl/sysdm/resources/down.ico diff --git a/reactos/dll/cpl/sysdm/resources/gpl.txt b/dll/cpl/sysdm/resources/gpl.txt similarity index 100% rename from reactos/dll/cpl/sysdm/resources/gpl.txt rename to dll/cpl/sysdm/resources/gpl.txt diff --git a/reactos/dll/cpl/sysdm/resources/rosbitmap.bmp b/dll/cpl/sysdm/resources/rosbitmap.bmp similarity index 100% rename from reactos/dll/cpl/sysdm/resources/rosbitmap.bmp rename to dll/cpl/sysdm/resources/rosbitmap.bmp diff --git a/reactos/dll/cpl/sysdm/resources/up.ico b/dll/cpl/sysdm/resources/up.ico similarity index 100% rename from reactos/dll/cpl/sysdm/resources/up.ico rename to dll/cpl/sysdm/resources/up.ico diff --git a/reactos/dll/cpl/sysdm/rsrc.rc b/dll/cpl/sysdm/rsrc.rc similarity index 100% rename from reactos/dll/cpl/sysdm/rsrc.rc rename to dll/cpl/sysdm/rsrc.rc diff --git a/reactos/dll/cpl/sysdm/startrec.c b/dll/cpl/sysdm/startrec.c similarity index 100% rename from reactos/dll/cpl/sysdm/startrec.c rename to dll/cpl/sysdm/startrec.c diff --git a/reactos/dll/cpl/sysdm/sysdm.c b/dll/cpl/sysdm/sysdm.c similarity index 100% rename from reactos/dll/cpl/sysdm/sysdm.c rename to dll/cpl/sysdm/sysdm.c diff --git a/reactos/dll/cpl/sysdm/sysdm.rc b/dll/cpl/sysdm/sysdm.rc similarity index 100% rename from reactos/dll/cpl/sysdm/sysdm.rc rename to dll/cpl/sysdm/sysdm.rc diff --git a/reactos/dll/cpl/sysdm/sysdm.spec b/dll/cpl/sysdm/sysdm.spec similarity index 100% rename from reactos/dll/cpl/sysdm/sysdm.spec rename to dll/cpl/sysdm/sysdm.spec diff --git a/reactos/dll/cpl/sysdm/userprofile.c b/dll/cpl/sysdm/userprofile.c similarity index 100% rename from reactos/dll/cpl/sysdm/userprofile.c rename to dll/cpl/sysdm/userprofile.c diff --git a/reactos/dll/cpl/sysdm/virtmem.c b/dll/cpl/sysdm/virtmem.c similarity index 100% rename from reactos/dll/cpl/sysdm/virtmem.c rename to dll/cpl/sysdm/virtmem.c diff --git a/reactos/dll/cpl/telephon/CMakeLists.txt b/dll/cpl/telephon/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/telephon/CMakeLists.txt rename to dll/cpl/telephon/CMakeLists.txt diff --git a/reactos/dll/cpl/telephon/lang/bg-BG.rc b/dll/cpl/telephon/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/bg-BG.rc rename to dll/cpl/telephon/lang/bg-BG.rc diff --git a/reactos/dll/cpl/telephon/lang/cs-CZ.rc b/dll/cpl/telephon/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/cs-CZ.rc rename to dll/cpl/telephon/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/telephon/lang/de-DE.rc b/dll/cpl/telephon/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/de-DE.rc rename to dll/cpl/telephon/lang/de-DE.rc diff --git a/reactos/dll/cpl/telephon/lang/el-GR.rc b/dll/cpl/telephon/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/el-GR.rc rename to dll/cpl/telephon/lang/el-GR.rc diff --git a/reactos/dll/cpl/telephon/lang/en-US.rc b/dll/cpl/telephon/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/en-US.rc rename to dll/cpl/telephon/lang/en-US.rc diff --git a/reactos/dll/cpl/telephon/lang/es-ES.rc b/dll/cpl/telephon/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/es-ES.rc rename to dll/cpl/telephon/lang/es-ES.rc diff --git a/reactos/dll/cpl/telephon/lang/fr-FR.rc b/dll/cpl/telephon/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/fr-FR.rc rename to dll/cpl/telephon/lang/fr-FR.rc diff --git a/reactos/dll/cpl/telephon/lang/it-IT.rc b/dll/cpl/telephon/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/it-IT.rc rename to dll/cpl/telephon/lang/it-IT.rc diff --git a/reactos/dll/cpl/telephon/lang/ja-JP.rc b/dll/cpl/telephon/lang/ja-JP.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/ja-JP.rc rename to dll/cpl/telephon/lang/ja-JP.rc diff --git a/reactos/dll/cpl/telephon/lang/no-NO.rc b/dll/cpl/telephon/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/no-NO.rc rename to dll/cpl/telephon/lang/no-NO.rc diff --git a/reactos/dll/cpl/telephon/lang/pl-PL.rc b/dll/cpl/telephon/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/pl-PL.rc rename to dll/cpl/telephon/lang/pl-PL.rc diff --git a/reactos/dll/cpl/telephon/lang/ro-RO.rc b/dll/cpl/telephon/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/ro-RO.rc rename to dll/cpl/telephon/lang/ro-RO.rc diff --git a/reactos/dll/cpl/telephon/lang/ru-RU.rc b/dll/cpl/telephon/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/ru-RU.rc rename to dll/cpl/telephon/lang/ru-RU.rc diff --git a/reactos/dll/cpl/telephon/lang/sk-SK.rc b/dll/cpl/telephon/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/sk-SK.rc rename to dll/cpl/telephon/lang/sk-SK.rc diff --git a/reactos/dll/cpl/telephon/lang/uk-UA.rc b/dll/cpl/telephon/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/telephon/lang/uk-UA.rc rename to dll/cpl/telephon/lang/uk-UA.rc diff --git a/reactos/dll/cpl/telephon/resource.h b/dll/cpl/telephon/resource.h similarity index 100% rename from reactos/dll/cpl/telephon/resource.h rename to dll/cpl/telephon/resource.h diff --git a/reactos/dll/cpl/telephon/resources/applet.ico b/dll/cpl/telephon/resources/applet.ico similarity index 100% rename from reactos/dll/cpl/telephon/resources/applet.ico rename to dll/cpl/telephon/resources/applet.ico diff --git a/reactos/dll/cpl/telephon/rsrc.rc b/dll/cpl/telephon/rsrc.rc similarity index 100% rename from reactos/dll/cpl/telephon/rsrc.rc rename to dll/cpl/telephon/rsrc.rc diff --git a/reactos/dll/cpl/telephon/telephon.c b/dll/cpl/telephon/telephon.c similarity index 100% rename from reactos/dll/cpl/telephon/telephon.c rename to dll/cpl/telephon/telephon.c diff --git a/reactos/dll/cpl/telephon/telephon.rc b/dll/cpl/telephon/telephon.rc similarity index 100% rename from reactos/dll/cpl/telephon/telephon.rc rename to dll/cpl/telephon/telephon.rc diff --git a/reactos/dll/cpl/telephon/telephon.spec b/dll/cpl/telephon/telephon.spec similarity index 100% rename from reactos/dll/cpl/telephon/telephon.spec rename to dll/cpl/telephon/telephon.spec diff --git a/reactos/dll/cpl/timedate/CMakeLists.txt b/dll/cpl/timedate/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/timedate/CMakeLists.txt rename to dll/cpl/timedate/CMakeLists.txt diff --git a/reactos/dll/cpl/timedate/clock.c b/dll/cpl/timedate/clock.c similarity index 100% rename from reactos/dll/cpl/timedate/clock.c rename to dll/cpl/timedate/clock.c diff --git a/reactos/dll/cpl/timedate/dateandtime.c b/dll/cpl/timedate/dateandtime.c similarity index 100% rename from reactos/dll/cpl/timedate/dateandtime.c rename to dll/cpl/timedate/dateandtime.c diff --git a/reactos/dll/cpl/timedate/internettime.c b/dll/cpl/timedate/internettime.c similarity index 100% rename from reactos/dll/cpl/timedate/internettime.c rename to dll/cpl/timedate/internettime.c diff --git a/reactos/dll/cpl/timedate/lang/bg-BG.rc b/dll/cpl/timedate/lang/bg-BG.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/bg-BG.rc rename to dll/cpl/timedate/lang/bg-BG.rc diff --git a/reactos/dll/cpl/timedate/lang/cs-CZ.rc b/dll/cpl/timedate/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/cs-CZ.rc rename to dll/cpl/timedate/lang/cs-CZ.rc diff --git a/reactos/dll/cpl/timedate/lang/da-DK.rc b/dll/cpl/timedate/lang/da-DK.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/da-DK.rc rename to dll/cpl/timedate/lang/da-DK.rc diff --git a/reactos/dll/cpl/timedate/lang/de-DE.rc b/dll/cpl/timedate/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/de-DE.rc rename to dll/cpl/timedate/lang/de-DE.rc diff --git a/reactos/dll/cpl/timedate/lang/el-GR.rc b/dll/cpl/timedate/lang/el-GR.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/el-GR.rc rename to dll/cpl/timedate/lang/el-GR.rc diff --git a/reactos/dll/cpl/timedate/lang/en-US.rc b/dll/cpl/timedate/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/en-US.rc rename to dll/cpl/timedate/lang/en-US.rc diff --git a/reactos/dll/cpl/timedate/lang/es-ES.rc b/dll/cpl/timedate/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/es-ES.rc rename to dll/cpl/timedate/lang/es-ES.rc diff --git a/reactos/dll/cpl/timedate/lang/eu-ES.rc b/dll/cpl/timedate/lang/eu-ES.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/eu-ES.rc rename to dll/cpl/timedate/lang/eu-ES.rc diff --git a/reactos/dll/cpl/timedate/lang/fr-FR.rc b/dll/cpl/timedate/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/fr-FR.rc rename to dll/cpl/timedate/lang/fr-FR.rc diff --git a/reactos/dll/cpl/timedate/lang/hu-HU.rc b/dll/cpl/timedate/lang/hu-HU.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/hu-HU.rc rename to dll/cpl/timedate/lang/hu-HU.rc diff --git a/reactos/dll/cpl/timedate/lang/id-ID.rc b/dll/cpl/timedate/lang/id-ID.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/id-ID.rc rename to dll/cpl/timedate/lang/id-ID.rc diff --git a/reactos/dll/cpl/timedate/lang/it-IT.rc b/dll/cpl/timedate/lang/it-IT.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/it-IT.rc rename to dll/cpl/timedate/lang/it-IT.rc diff --git a/reactos/dll/cpl/timedate/lang/ja-JP.rc b/dll/cpl/timedate/lang/ja-JP.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/ja-JP.rc rename to dll/cpl/timedate/lang/ja-JP.rc diff --git a/reactos/dll/cpl/timedate/lang/nl-NL.rc b/dll/cpl/timedate/lang/nl-NL.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/nl-NL.rc rename to dll/cpl/timedate/lang/nl-NL.rc diff --git a/reactos/dll/cpl/timedate/lang/no-NO.rc b/dll/cpl/timedate/lang/no-NO.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/no-NO.rc rename to dll/cpl/timedate/lang/no-NO.rc diff --git a/reactos/dll/cpl/timedate/lang/pl-PL.rc b/dll/cpl/timedate/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/pl-PL.rc rename to dll/cpl/timedate/lang/pl-PL.rc diff --git a/reactos/dll/cpl/timedate/lang/ro-RO.rc b/dll/cpl/timedate/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/ro-RO.rc rename to dll/cpl/timedate/lang/ro-RO.rc diff --git a/reactos/dll/cpl/timedate/lang/ru-RU.rc b/dll/cpl/timedate/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/ru-RU.rc rename to dll/cpl/timedate/lang/ru-RU.rc diff --git a/reactos/dll/cpl/timedate/lang/sk-SK.rc b/dll/cpl/timedate/lang/sk-SK.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/sk-SK.rc rename to dll/cpl/timedate/lang/sk-SK.rc diff --git a/reactos/dll/cpl/timedate/lang/sv-SE.rc b/dll/cpl/timedate/lang/sv-SE.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/sv-SE.rc rename to dll/cpl/timedate/lang/sv-SE.rc diff --git a/reactos/dll/cpl/timedate/lang/th-TH.rc b/dll/cpl/timedate/lang/th-TH.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/th-TH.rc rename to dll/cpl/timedate/lang/th-TH.rc diff --git a/reactos/dll/cpl/timedate/lang/uk-UA.rc b/dll/cpl/timedate/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/uk-UA.rc rename to dll/cpl/timedate/lang/uk-UA.rc diff --git a/reactos/dll/cpl/timedate/lang/zh-CN.rc b/dll/cpl/timedate/lang/zh-CN.rc similarity index 100% rename from reactos/dll/cpl/timedate/lang/zh-CN.rc rename to dll/cpl/timedate/lang/zh-CN.rc diff --git a/reactos/dll/cpl/timedate/monthcal.c b/dll/cpl/timedate/monthcal.c similarity index 100% rename from reactos/dll/cpl/timedate/monthcal.c rename to dll/cpl/timedate/monthcal.c diff --git a/reactos/dll/cpl/timedate/ntpclient.c b/dll/cpl/timedate/ntpclient.c similarity index 100% rename from reactos/dll/cpl/timedate/ntpclient.c rename to dll/cpl/timedate/ntpclient.c diff --git a/reactos/dll/cpl/timedate/resource.h b/dll/cpl/timedate/resource.h similarity index 100% rename from reactos/dll/cpl/timedate/resource.h rename to dll/cpl/timedate/resource.h diff --git a/reactos/dll/cpl/timedate/resources/applet.ico b/dll/cpl/timedate/resources/applet.ico similarity index 100% rename from reactos/dll/cpl/timedate/resources/applet.ico rename to dll/cpl/timedate/resources/applet.ico diff --git a/reactos/dll/cpl/timedate/resources/world.bmp b/dll/cpl/timedate/resources/world.bmp similarity index 100% rename from reactos/dll/cpl/timedate/resources/world.bmp rename to dll/cpl/timedate/resources/world.bmp diff --git a/reactos/dll/cpl/timedate/rsrc.rc b/dll/cpl/timedate/rsrc.rc similarity index 100% rename from reactos/dll/cpl/timedate/rsrc.rc rename to dll/cpl/timedate/rsrc.rc diff --git a/reactos/dll/cpl/timedate/timedate.c b/dll/cpl/timedate/timedate.c similarity index 100% rename from reactos/dll/cpl/timedate/timedate.c rename to dll/cpl/timedate/timedate.c diff --git a/reactos/dll/cpl/timedate/timedate.h b/dll/cpl/timedate/timedate.h similarity index 100% rename from reactos/dll/cpl/timedate/timedate.h rename to dll/cpl/timedate/timedate.h diff --git a/reactos/dll/cpl/timedate/timedate.rc b/dll/cpl/timedate/timedate.rc similarity index 100% rename from reactos/dll/cpl/timedate/timedate.rc rename to dll/cpl/timedate/timedate.rc diff --git a/reactos/dll/cpl/timedate/timedate.spec b/dll/cpl/timedate/timedate.spec similarity index 100% rename from reactos/dll/cpl/timedate/timedate.spec rename to dll/cpl/timedate/timedate.spec diff --git a/reactos/dll/cpl/timedate/timezone.c b/dll/cpl/timedate/timezone.c similarity index 100% rename from reactos/dll/cpl/timedate/timezone.c rename to dll/cpl/timedate/timezone.c diff --git a/reactos/dll/cpl/usrmgr/CMakeLists.txt b/dll/cpl/usrmgr/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/usrmgr/CMakeLists.txt rename to dll/cpl/usrmgr/CMakeLists.txt diff --git a/reactos/dll/cpl/usrmgr/extra.c b/dll/cpl/usrmgr/extra.c similarity index 100% rename from reactos/dll/cpl/usrmgr/extra.c rename to dll/cpl/usrmgr/extra.c diff --git a/reactos/dll/cpl/usrmgr/groupprops.c b/dll/cpl/usrmgr/groupprops.c similarity index 100% rename from reactos/dll/cpl/usrmgr/groupprops.c rename to dll/cpl/usrmgr/groupprops.c diff --git a/reactos/dll/cpl/usrmgr/groups.c b/dll/cpl/usrmgr/groups.c similarity index 100% rename from reactos/dll/cpl/usrmgr/groups.c rename to dll/cpl/usrmgr/groups.c diff --git a/reactos/dll/cpl/usrmgr/lang/de-DE.rc b/dll/cpl/usrmgr/lang/de-DE.rc similarity index 100% rename from reactos/dll/cpl/usrmgr/lang/de-DE.rc rename to dll/cpl/usrmgr/lang/de-DE.rc diff --git a/reactos/dll/cpl/usrmgr/lang/en-US.rc b/dll/cpl/usrmgr/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/usrmgr/lang/en-US.rc rename to dll/cpl/usrmgr/lang/en-US.rc diff --git a/reactos/dll/cpl/usrmgr/lang/es-ES.rc b/dll/cpl/usrmgr/lang/es-ES.rc similarity index 100% rename from reactos/dll/cpl/usrmgr/lang/es-ES.rc rename to dll/cpl/usrmgr/lang/es-ES.rc diff --git a/reactos/dll/cpl/usrmgr/lang/fr-FR.rc b/dll/cpl/usrmgr/lang/fr-FR.rc similarity index 100% rename from reactos/dll/cpl/usrmgr/lang/fr-FR.rc rename to dll/cpl/usrmgr/lang/fr-FR.rc diff --git a/reactos/dll/cpl/usrmgr/lang/pl-PL.rc b/dll/cpl/usrmgr/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/usrmgr/lang/pl-PL.rc rename to dll/cpl/usrmgr/lang/pl-PL.rc diff --git a/reactos/dll/cpl/usrmgr/lang/ro-RO.rc b/dll/cpl/usrmgr/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/usrmgr/lang/ro-RO.rc rename to dll/cpl/usrmgr/lang/ro-RO.rc diff --git a/reactos/dll/cpl/usrmgr/lang/ru-RU.rc b/dll/cpl/usrmgr/lang/ru-RU.rc similarity index 100% rename from reactos/dll/cpl/usrmgr/lang/ru-RU.rc rename to dll/cpl/usrmgr/lang/ru-RU.rc diff --git a/reactos/dll/cpl/usrmgr/lang/uk-UA.rc b/dll/cpl/usrmgr/lang/uk-UA.rc similarity index 100% rename from reactos/dll/cpl/usrmgr/lang/uk-UA.rc rename to dll/cpl/usrmgr/lang/uk-UA.rc diff --git a/reactos/dll/cpl/usrmgr/misc.c b/dll/cpl/usrmgr/misc.c similarity index 100% rename from reactos/dll/cpl/usrmgr/misc.c rename to dll/cpl/usrmgr/misc.c diff --git a/reactos/dll/cpl/usrmgr/resource.h b/dll/cpl/usrmgr/resource.h similarity index 100% rename from reactos/dll/cpl/usrmgr/resource.h rename to dll/cpl/usrmgr/resource.h diff --git a/reactos/dll/cpl/usrmgr/resources/applet.ico b/dll/cpl/usrmgr/resources/applet.ico similarity index 100% rename from reactos/dll/cpl/usrmgr/resources/applet.ico rename to dll/cpl/usrmgr/resources/applet.ico diff --git a/reactos/dll/cpl/usrmgr/resources/group.ico b/dll/cpl/usrmgr/resources/group.ico similarity index 100% rename from reactos/dll/cpl/usrmgr/resources/group.ico rename to dll/cpl/usrmgr/resources/group.ico diff --git a/reactos/dll/cpl/usrmgr/resources/locked.ico b/dll/cpl/usrmgr/resources/locked.ico similarity index 100% rename from reactos/dll/cpl/usrmgr/resources/locked.ico rename to dll/cpl/usrmgr/resources/locked.ico diff --git a/reactos/dll/cpl/usrmgr/resources/user.ico b/dll/cpl/usrmgr/resources/user.ico similarity index 100% rename from reactos/dll/cpl/usrmgr/resources/user.ico rename to dll/cpl/usrmgr/resources/user.ico diff --git a/reactos/dll/cpl/usrmgr/rsrc.rc b/dll/cpl/usrmgr/rsrc.rc similarity index 100% rename from reactos/dll/cpl/usrmgr/rsrc.rc rename to dll/cpl/usrmgr/rsrc.rc diff --git a/reactos/dll/cpl/usrmgr/userprops.c b/dll/cpl/usrmgr/userprops.c similarity index 100% rename from reactos/dll/cpl/usrmgr/userprops.c rename to dll/cpl/usrmgr/userprops.c diff --git a/reactos/dll/cpl/usrmgr/users.c b/dll/cpl/usrmgr/users.c similarity index 100% rename from reactos/dll/cpl/usrmgr/users.c rename to dll/cpl/usrmgr/users.c diff --git a/reactos/dll/cpl/usrmgr/usrmgr.c b/dll/cpl/usrmgr/usrmgr.c similarity index 100% rename from reactos/dll/cpl/usrmgr/usrmgr.c rename to dll/cpl/usrmgr/usrmgr.c diff --git a/reactos/dll/cpl/usrmgr/usrmgr.h b/dll/cpl/usrmgr/usrmgr.h similarity index 100% rename from reactos/dll/cpl/usrmgr/usrmgr.h rename to dll/cpl/usrmgr/usrmgr.h diff --git a/reactos/dll/cpl/usrmgr/usrmgr.rc b/dll/cpl/usrmgr/usrmgr.rc similarity index 100% rename from reactos/dll/cpl/usrmgr/usrmgr.rc rename to dll/cpl/usrmgr/usrmgr.rc diff --git a/reactos/dll/cpl/usrmgr/usrmgr.spec b/dll/cpl/usrmgr/usrmgr.spec similarity index 100% rename from reactos/dll/cpl/usrmgr/usrmgr.spec rename to dll/cpl/usrmgr/usrmgr.spec diff --git a/reactos/dll/cpl/wined3dcfg/CMakeLists.txt b/dll/cpl/wined3dcfg/CMakeLists.txt similarity index 100% rename from reactos/dll/cpl/wined3dcfg/CMakeLists.txt rename to dll/cpl/wined3dcfg/CMakeLists.txt diff --git a/reactos/dll/cpl/wined3dcfg/general.c b/dll/cpl/wined3dcfg/general.c similarity index 100% rename from reactos/dll/cpl/wined3dcfg/general.c rename to dll/cpl/wined3dcfg/general.c diff --git a/reactos/dll/cpl/wined3dcfg/lang/en-US.rc b/dll/cpl/wined3dcfg/lang/en-US.rc similarity index 100% rename from reactos/dll/cpl/wined3dcfg/lang/en-US.rc rename to dll/cpl/wined3dcfg/lang/en-US.rc diff --git a/reactos/dll/cpl/wined3dcfg/lang/pl-PL.rc b/dll/cpl/wined3dcfg/lang/pl-PL.rc similarity index 100% rename from reactos/dll/cpl/wined3dcfg/lang/pl-PL.rc rename to dll/cpl/wined3dcfg/lang/pl-PL.rc diff --git a/reactos/dll/cpl/wined3dcfg/lang/ro-RO.rc b/dll/cpl/wined3dcfg/lang/ro-RO.rc similarity index 100% rename from reactos/dll/cpl/wined3dcfg/lang/ro-RO.rc rename to dll/cpl/wined3dcfg/lang/ro-RO.rc diff --git a/reactos/dll/cpl/wined3dcfg/resource.h b/dll/cpl/wined3dcfg/resource.h similarity index 100% rename from reactos/dll/cpl/wined3dcfg/resource.h rename to dll/cpl/wined3dcfg/resource.h diff --git a/reactos/dll/cpl/wined3dcfg/resources/wined3dcfg.ico b/dll/cpl/wined3dcfg/resources/wined3dcfg.ico similarity index 100% rename from reactos/dll/cpl/wined3dcfg/resources/wined3dcfg.ico rename to dll/cpl/wined3dcfg/resources/wined3dcfg.ico diff --git a/reactos/dll/cpl/wined3dcfg/rsrc.rc b/dll/cpl/wined3dcfg/rsrc.rc similarity index 100% rename from reactos/dll/cpl/wined3dcfg/rsrc.rc rename to dll/cpl/wined3dcfg/rsrc.rc diff --git a/reactos/dll/cpl/wined3dcfg/wined3dcfg.c b/dll/cpl/wined3dcfg/wined3dcfg.c similarity index 100% rename from reactos/dll/cpl/wined3dcfg/wined3dcfg.c rename to dll/cpl/wined3dcfg/wined3dcfg.c diff --git a/reactos/dll/cpl/wined3dcfg/wined3dcfg.h b/dll/cpl/wined3dcfg/wined3dcfg.h similarity index 100% rename from reactos/dll/cpl/wined3dcfg/wined3dcfg.h rename to dll/cpl/wined3dcfg/wined3dcfg.h diff --git a/reactos/dll/cpl/wined3dcfg/wined3dcfg.rc b/dll/cpl/wined3dcfg/wined3dcfg.rc similarity index 100% rename from reactos/dll/cpl/wined3dcfg/wined3dcfg.rc rename to dll/cpl/wined3dcfg/wined3dcfg.rc diff --git a/reactos/dll/cpl/wined3dcfg/wined3dcfg.spec b/dll/cpl/wined3dcfg/wined3dcfg.spec similarity index 100% rename from reactos/dll/cpl/wined3dcfg/wined3dcfg.spec rename to dll/cpl/wined3dcfg/wined3dcfg.spec diff --git a/reactos/dll/directx/CMakeLists.txt b/dll/directx/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/CMakeLists.txt rename to dll/directx/CMakeLists.txt diff --git a/reactos/dll/directx/amstream/CMakeLists.txt b/dll/directx/amstream/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/amstream/CMakeLists.txt rename to dll/directx/amstream/CMakeLists.txt diff --git a/reactos/dll/directx/amstream/amstream.c b/dll/directx/amstream/amstream.c similarity index 100% rename from reactos/dll/directx/amstream/amstream.c rename to dll/directx/amstream/amstream.c diff --git a/reactos/dll/directx/amstream/amstream.rgs b/dll/directx/amstream/amstream.rgs similarity index 100% rename from reactos/dll/directx/amstream/amstream.rgs rename to dll/directx/amstream/amstream.rgs diff --git a/reactos/dll/directx/amstream/amstream.spec b/dll/directx/amstream/amstream.spec similarity index 100% rename from reactos/dll/directx/amstream/amstream.spec rename to dll/directx/amstream/amstream.spec diff --git a/reactos/dll/directx/amstream/amstream_classes.idl b/dll/directx/amstream/amstream_classes.idl similarity index 100% rename from reactos/dll/directx/amstream/amstream_classes.idl rename to dll/directx/amstream/amstream_classes.idl diff --git a/reactos/dll/directx/amstream/amstream_private.h b/dll/directx/amstream/amstream_private.h similarity index 100% rename from reactos/dll/directx/amstream/amstream_private.h rename to dll/directx/amstream/amstream_private.h diff --git a/reactos/dll/directx/amstream/main.c b/dll/directx/amstream/main.c similarity index 100% rename from reactos/dll/directx/amstream/main.c rename to dll/directx/amstream/main.c diff --git a/reactos/dll/directx/amstream/mediastream.c b/dll/directx/amstream/mediastream.c similarity index 100% rename from reactos/dll/directx/amstream/mediastream.c rename to dll/directx/amstream/mediastream.c diff --git a/reactos/dll/directx/amstream/mediastreamfilter.c b/dll/directx/amstream/mediastreamfilter.c similarity index 100% rename from reactos/dll/directx/amstream/mediastreamfilter.c rename to dll/directx/amstream/mediastreamfilter.c diff --git a/reactos/dll/directx/amstream/version.rc b/dll/directx/amstream/version.rc similarity index 100% rename from reactos/dll/directx/amstream/version.rc rename to dll/directx/amstream/version.rc diff --git a/reactos/dll/directx/bdaplgin/bdaplgin.cpp b/dll/directx/bdaplgin/bdaplgin.cpp similarity index 100% rename from reactos/dll/directx/bdaplgin/bdaplgin.cpp rename to dll/directx/bdaplgin/bdaplgin.cpp diff --git a/reactos/dll/directx/bdaplgin/bdaplgin.rc b/dll/directx/bdaplgin/bdaplgin.rc similarity index 100% rename from reactos/dll/directx/bdaplgin/bdaplgin.rc rename to dll/directx/bdaplgin/bdaplgin.rc diff --git a/reactos/dll/directx/bdaplgin/bdaplgin.spec b/dll/directx/bdaplgin/bdaplgin.spec similarity index 100% rename from reactos/dll/directx/bdaplgin/bdaplgin.spec rename to dll/directx/bdaplgin/bdaplgin.spec diff --git a/reactos/dll/directx/bdaplgin/classfactory.cpp b/dll/directx/bdaplgin/classfactory.cpp similarity index 100% rename from reactos/dll/directx/bdaplgin/classfactory.cpp rename to dll/directx/bdaplgin/classfactory.cpp diff --git a/reactos/dll/directx/bdaplgin/controlnode.cpp b/dll/directx/bdaplgin/controlnode.cpp similarity index 100% rename from reactos/dll/directx/bdaplgin/controlnode.cpp rename to dll/directx/bdaplgin/controlnode.cpp diff --git a/reactos/dll/directx/bdaplgin/devicecontrol.cpp b/dll/directx/bdaplgin/devicecontrol.cpp similarity index 100% rename from reactos/dll/directx/bdaplgin/devicecontrol.cpp rename to dll/directx/bdaplgin/devicecontrol.cpp diff --git a/reactos/dll/directx/bdaplgin/digitaldemo.cpp b/dll/directx/bdaplgin/digitaldemo.cpp similarity index 100% rename from reactos/dll/directx/bdaplgin/digitaldemo.cpp rename to dll/directx/bdaplgin/digitaldemo.cpp diff --git a/reactos/dll/directx/bdaplgin/frequencyfilter.cpp b/dll/directx/bdaplgin/frequencyfilter.cpp similarity index 100% rename from reactos/dll/directx/bdaplgin/frequencyfilter.cpp rename to dll/directx/bdaplgin/frequencyfilter.cpp diff --git a/reactos/dll/directx/bdaplgin/lnbinfo.cpp b/dll/directx/bdaplgin/lnbinfo.cpp similarity index 100% rename from reactos/dll/directx/bdaplgin/lnbinfo.cpp rename to dll/directx/bdaplgin/lnbinfo.cpp diff --git a/reactos/dll/directx/bdaplgin/pincontrol.cpp b/dll/directx/bdaplgin/pincontrol.cpp similarity index 100% rename from reactos/dll/directx/bdaplgin/pincontrol.cpp rename to dll/directx/bdaplgin/pincontrol.cpp diff --git a/reactos/dll/directx/bdaplgin/precomp.h b/dll/directx/bdaplgin/precomp.h similarity index 100% rename from reactos/dll/directx/bdaplgin/precomp.h rename to dll/directx/bdaplgin/precomp.h diff --git a/reactos/dll/directx/bdaplgin/signalstatistics.cpp b/dll/directx/bdaplgin/signalstatistics.cpp similarity index 100% rename from reactos/dll/directx/bdaplgin/signalstatistics.cpp rename to dll/directx/bdaplgin/signalstatistics.cpp diff --git a/reactos/dll/directx/d3d8/d3d8.c b/dll/directx/d3d8/d3d8.c similarity index 100% rename from reactos/dll/directx/d3d8/d3d8.c rename to dll/directx/d3d8/d3d8.c diff --git a/reactos/dll/directx/d3d8/d3d8.h b/dll/directx/d3d8/d3d8.h similarity index 100% rename from reactos/dll/directx/d3d8/d3d8.h rename to dll/directx/d3d8/d3d8.h diff --git a/reactos/dll/directx/d3d8/d3d8.rc b/dll/directx/d3d8/d3d8.rc similarity index 100% rename from reactos/dll/directx/d3d8/d3d8.rc rename to dll/directx/d3d8/d3d8.rc diff --git a/reactos/dll/directx/d3d8/d3d8.spec b/dll/directx/d3d8/d3d8.spec similarity index 100% rename from reactos/dll/directx/d3d8/d3d8.spec rename to dll/directx/d3d8/d3d8.spec diff --git a/reactos/dll/directx/d3d8thk/CMakeLists.txt b/dll/directx/d3d8thk/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/d3d8thk/CMakeLists.txt rename to dll/directx/d3d8thk/CMakeLists.txt diff --git a/reactos/dll/directx/d3d8thk/d3d8thk.rc b/dll/directx/d3d8thk/d3d8thk.rc similarity index 100% rename from reactos/dll/directx/d3d8thk/d3d8thk.rc rename to dll/directx/d3d8thk/d3d8thk.rc diff --git a/reactos/dll/directx/d3d8thk/d3d8thk.spec b/dll/directx/d3d8thk/d3d8thk.spec similarity index 100% rename from reactos/dll/directx/d3d8thk/d3d8thk.spec rename to dll/directx/d3d8thk/d3d8thk.spec diff --git a/reactos/dll/directx/d3d9/adapter.c b/dll/directx/d3d9/adapter.c similarity index 100% rename from reactos/dll/directx/d3d9/adapter.c rename to dll/directx/d3d9/adapter.c diff --git a/reactos/dll/directx/d3d9/adapter.h b/dll/directx/d3d9/adapter.h similarity index 100% rename from reactos/dll/directx/d3d9/adapter.h rename to dll/directx/d3d9/adapter.h diff --git a/reactos/dll/directx/d3d9/d3d9.c b/dll/directx/d3d9/d3d9.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9.c rename to dll/directx/d3d9/d3d9.c diff --git a/reactos/dll/directx/d3d9/d3d9.rc b/dll/directx/d3d9/d3d9.rc similarity index 100% rename from reactos/dll/directx/d3d9/d3d9.rc rename to dll/directx/d3d9/d3d9.rc diff --git a/reactos/dll/directx/d3d9/d3d9.spec b/dll/directx/d3d9/d3d9.spec similarity index 100% rename from reactos/dll/directx/d3d9/d3d9.spec rename to dll/directx/d3d9/d3d9.spec diff --git a/reactos/dll/directx/d3d9/d3d9_baseobject.c b/dll/directx/d3d9/d3d9_baseobject.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_baseobject.c rename to dll/directx/d3d9/d3d9_baseobject.c diff --git a/reactos/dll/directx/d3d9/d3d9_baseobject.h b/dll/directx/d3d9/d3d9_baseobject.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_baseobject.h rename to dll/directx/d3d9/d3d9_baseobject.h diff --git a/reactos/dll/directx/d3d9/d3d9_basetexture.h b/dll/directx/d3d9/d3d9_basetexture.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_basetexture.h rename to dll/directx/d3d9/d3d9_basetexture.h diff --git a/reactos/dll/directx/d3d9/d3d9_callbacks.c b/dll/directx/d3d9/d3d9_callbacks.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_callbacks.c rename to dll/directx/d3d9/d3d9_callbacks.c diff --git a/reactos/dll/directx/d3d9/d3d9_callbacks.h b/dll/directx/d3d9/d3d9_callbacks.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_callbacks.h rename to dll/directx/d3d9/d3d9_callbacks.h diff --git a/reactos/dll/directx/d3d9/d3d9_caps.c b/dll/directx/d3d9/d3d9_caps.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_caps.c rename to dll/directx/d3d9/d3d9_caps.c diff --git a/reactos/dll/directx/d3d9/d3d9_caps.h b/dll/directx/d3d9/d3d9_caps.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_caps.h rename to dll/directx/d3d9/d3d9_caps.h diff --git a/reactos/dll/directx/d3d9/d3d9_common.h b/dll/directx/d3d9/d3d9_common.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_common.h rename to dll/directx/d3d9/d3d9_common.h diff --git a/reactos/dll/directx/d3d9/d3d9_create.c b/dll/directx/d3d9/d3d9_create.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_create.c rename to dll/directx/d3d9/d3d9_create.c diff --git a/reactos/dll/directx/d3d9/d3d9_create.h b/dll/directx/d3d9/d3d9_create.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_create.h rename to dll/directx/d3d9/d3d9_create.h diff --git a/reactos/dll/directx/d3d9/d3d9_cursor.c b/dll/directx/d3d9/d3d9_cursor.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_cursor.c rename to dll/directx/d3d9/d3d9_cursor.c diff --git a/reactos/dll/directx/d3d9/d3d9_cursor.h b/dll/directx/d3d9/d3d9_cursor.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_cursor.h rename to dll/directx/d3d9/d3d9_cursor.h diff --git a/reactos/dll/directx/d3d9/d3d9_device.c b/dll/directx/d3d9/d3d9_device.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_device.c rename to dll/directx/d3d9/d3d9_device.c diff --git a/reactos/dll/directx/d3d9/d3d9_device.h b/dll/directx/d3d9/d3d9_device.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_device.h rename to dll/directx/d3d9/d3d9_device.h diff --git a/reactos/dll/directx/d3d9/d3d9_haldevice.c b/dll/directx/d3d9/d3d9_haldevice.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_haldevice.c rename to dll/directx/d3d9/d3d9_haldevice.c diff --git a/reactos/dll/directx/d3d9/d3d9_haldevice.h b/dll/directx/d3d9/d3d9_haldevice.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_haldevice.h rename to dll/directx/d3d9/d3d9_haldevice.h diff --git a/reactos/dll/directx/d3d9/d3d9_helpers.c b/dll/directx/d3d9/d3d9_helpers.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_helpers.c rename to dll/directx/d3d9/d3d9_helpers.c diff --git a/reactos/dll/directx/d3d9/d3d9_helpers.h b/dll/directx/d3d9/d3d9_helpers.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_helpers.h rename to dll/directx/d3d9/d3d9_helpers.h diff --git a/reactos/dll/directx/d3d9/d3d9_impl.c b/dll/directx/d3d9/d3d9_impl.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_impl.c rename to dll/directx/d3d9/d3d9_impl.c diff --git a/reactos/dll/directx/d3d9/d3d9_mipmap.c b/dll/directx/d3d9/d3d9_mipmap.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_mipmap.c rename to dll/directx/d3d9/d3d9_mipmap.c diff --git a/reactos/dll/directx/d3d9/d3d9_mipmap.h b/dll/directx/d3d9/d3d9_mipmap.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_mipmap.h rename to dll/directx/d3d9/d3d9_mipmap.h diff --git a/reactos/dll/directx/d3d9/d3d9_private.h b/dll/directx/d3d9/d3d9_private.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_private.h rename to dll/directx/d3d9/d3d9_private.h diff --git a/reactos/dll/directx/d3d9/d3d9_puredevice.c b/dll/directx/d3d9/d3d9_puredevice.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_puredevice.c rename to dll/directx/d3d9/d3d9_puredevice.c diff --git a/reactos/dll/directx/d3d9/d3d9_puredevice.h b/dll/directx/d3d9/d3d9_puredevice.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_puredevice.h rename to dll/directx/d3d9/d3d9_puredevice.h diff --git a/reactos/dll/directx/d3d9/d3d9_resource.c b/dll/directx/d3d9/d3d9_resource.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_resource.c rename to dll/directx/d3d9/d3d9_resource.c diff --git a/reactos/dll/directx/d3d9/d3d9_resource.h b/dll/directx/d3d9/d3d9_resource.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_resource.h rename to dll/directx/d3d9/d3d9_resource.h diff --git a/reactos/dll/directx/d3d9/d3d9_surface.h b/dll/directx/d3d9/d3d9_surface.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_surface.h rename to dll/directx/d3d9/d3d9_surface.h diff --git a/reactos/dll/directx/d3d9/d3d9_swapchain.c b/dll/directx/d3d9/d3d9_swapchain.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_swapchain.c rename to dll/directx/d3d9/d3d9_swapchain.c diff --git a/reactos/dll/directx/d3d9/d3d9_swapchain.h b/dll/directx/d3d9/d3d9_swapchain.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_swapchain.h rename to dll/directx/d3d9/d3d9_swapchain.h diff --git a/reactos/dll/directx/d3d9/d3d9_texture.c b/dll/directx/d3d9/d3d9_texture.c similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_texture.c rename to dll/directx/d3d9/d3d9_texture.c diff --git a/reactos/dll/directx/d3d9/d3d9_texture.h b/dll/directx/d3d9/d3d9_texture.h similarity index 100% rename from reactos/dll/directx/d3d9/d3d9_texture.h rename to dll/directx/d3d9/d3d9_texture.h diff --git a/reactos/dll/directx/d3d9/device.c b/dll/directx/d3d9/device.c similarity index 100% rename from reactos/dll/directx/d3d9/device.c rename to dll/directx/d3d9/device.c diff --git a/reactos/dll/directx/d3d9/device.h b/dll/directx/d3d9/device.h similarity index 100% rename from reactos/dll/directx/d3d9/device.h rename to dll/directx/d3d9/device.h diff --git a/reactos/dll/directx/d3d9/format.c b/dll/directx/d3d9/format.c similarity index 100% rename from reactos/dll/directx/d3d9/format.c rename to dll/directx/d3d9/format.c diff --git a/reactos/dll/directx/d3d9/format.h b/dll/directx/d3d9/format.h similarity index 100% rename from reactos/dll/directx/d3d9/format.h rename to dll/directx/d3d9/format.h diff --git a/reactos/dll/directx/ddraw/Clipper/clipper.h b/dll/directx/ddraw/Clipper/clipper.h similarity index 100% rename from reactos/dll/directx/ddraw/Clipper/clipper.h rename to dll/directx/ddraw/Clipper/clipper.h diff --git a/reactos/dll/directx/ddraw/Clipper/clipper_main.c b/dll/directx/ddraw/Clipper/clipper_main.c similarity index 100% rename from reactos/dll/directx/ddraw/Clipper/clipper_main.c rename to dll/directx/ddraw/Clipper/clipper_main.c diff --git a/reactos/dll/directx/ddraw/Clipper/clipper_stubs.c b/dll/directx/ddraw/Clipper/clipper_stubs.c similarity index 100% rename from reactos/dll/directx/ddraw/Clipper/clipper_stubs.c rename to dll/directx/ddraw/Clipper/clipper_stubs.c diff --git a/reactos/dll/directx/ddraw/Color/color_stubs.c b/dll/directx/ddraw/Color/color_stubs.c similarity index 100% rename from reactos/dll/directx/ddraw/Color/color_stubs.c rename to dll/directx/ddraw/Color/color_stubs.c diff --git a/reactos/dll/directx/ddraw/Ddraw/GetCaps.c b/dll/directx/ddraw/Ddraw/GetCaps.c similarity index 100% rename from reactos/dll/directx/ddraw/Ddraw/GetCaps.c rename to dll/directx/ddraw/Ddraw/GetCaps.c diff --git a/reactos/dll/directx/ddraw/Ddraw/GetDeviceIdentifier.c b/dll/directx/ddraw/Ddraw/GetDeviceIdentifier.c similarity index 100% rename from reactos/dll/directx/ddraw/Ddraw/GetDeviceIdentifier.c rename to dll/directx/ddraw/Ddraw/GetDeviceIdentifier.c diff --git a/reactos/dll/directx/ddraw/Ddraw/callbacks_dd_hel.c b/dll/directx/ddraw/Ddraw/callbacks_dd_hel.c similarity index 100% rename from reactos/dll/directx/ddraw/Ddraw/callbacks_dd_hel.c rename to dll/directx/ddraw/Ddraw/callbacks_dd_hel.c diff --git a/reactos/dll/directx/ddraw/Ddraw/ddraw.h b/dll/directx/ddraw/Ddraw/ddraw.h similarity index 100% rename from reactos/dll/directx/ddraw/Ddraw/ddraw.h rename to dll/directx/ddraw/Ddraw/ddraw.h diff --git a/reactos/dll/directx/ddraw/Ddraw/ddraw_displaymode.c b/dll/directx/ddraw/Ddraw/ddraw_displaymode.c similarity index 100% rename from reactos/dll/directx/ddraw/Ddraw/ddraw_displaymode.c rename to dll/directx/ddraw/Ddraw/ddraw_displaymode.c diff --git a/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c b/dll/directx/ddraw/Ddraw/ddraw_main.c similarity index 100% rename from reactos/dll/directx/ddraw/Ddraw/ddraw_main.c rename to dll/directx/ddraw/Ddraw/ddraw_main.c diff --git a/reactos/dll/directx/ddraw/Ddraw/ddraw_setcooperativelevel.c b/dll/directx/ddraw/Ddraw/ddraw_setcooperativelevel.c similarity index 100% rename from reactos/dll/directx/ddraw/Ddraw/ddraw_setcooperativelevel.c rename to dll/directx/ddraw/Ddraw/ddraw_setcooperativelevel.c diff --git a/reactos/dll/directx/ddraw/Ddraw/ddraw_stubs.c b/dll/directx/ddraw/Ddraw/ddraw_stubs.c similarity index 100% rename from reactos/dll/directx/ddraw/Ddraw/ddraw_stubs.c rename to dll/directx/ddraw/Ddraw/ddraw_stubs.c diff --git a/reactos/dll/directx/ddraw/Gamma/gamma_stubs.c b/dll/directx/ddraw/Gamma/gamma_stubs.c similarity index 100% rename from reactos/dll/directx/ddraw/Gamma/gamma_stubs.c rename to dll/directx/ddraw/Gamma/gamma_stubs.c diff --git a/reactos/dll/directx/ddraw/Kernel/kernel_stubs.c b/dll/directx/ddraw/Kernel/kernel_stubs.c similarity index 100% rename from reactos/dll/directx/ddraw/Kernel/kernel_stubs.c rename to dll/directx/ddraw/Kernel/kernel_stubs.c diff --git a/reactos/dll/directx/ddraw/Palette/createpalette.c b/dll/directx/ddraw/Palette/createpalette.c similarity index 100% rename from reactos/dll/directx/ddraw/Palette/createpalette.c rename to dll/directx/ddraw/Palette/createpalette.c diff --git a/reactos/dll/directx/ddraw/Palette/palette.c b/dll/directx/ddraw/Palette/palette.c similarity index 100% rename from reactos/dll/directx/ddraw/Palette/palette.c rename to dll/directx/ddraw/Palette/palette.c diff --git a/reactos/dll/directx/ddraw/Palette/palette_stubs.c b/dll/directx/ddraw/Palette/palette_stubs.c similarity index 100% rename from reactos/dll/directx/ddraw/Palette/palette_stubs.c rename to dll/directx/ddraw/Palette/palette_stubs.c diff --git a/reactos/dll/directx/ddraw/Surface/callbacks_surf_hel.c b/dll/directx/ddraw/Surface/callbacks_surf_hel.c similarity index 100% rename from reactos/dll/directx/ddraw/Surface/callbacks_surf_hel.c rename to dll/directx/ddraw/Surface/callbacks_surf_hel.c diff --git a/reactos/dll/directx/ddraw/Surface/createsurface.c b/dll/directx/ddraw/Surface/createsurface.c similarity index 100% rename from reactos/dll/directx/ddraw/Surface/createsurface.c rename to dll/directx/ddraw/Surface/createsurface.c diff --git a/reactos/dll/directx/ddraw/Surface/surface.h b/dll/directx/ddraw/Surface/surface.h similarity index 100% rename from reactos/dll/directx/ddraw/Surface/surface.h rename to dll/directx/ddraw/Surface/surface.h diff --git a/reactos/dll/directx/ddraw/Surface/surface_main.c b/dll/directx/ddraw/Surface/surface_main.c similarity index 100% rename from reactos/dll/directx/ddraw/Surface/surface_main.c rename to dll/directx/ddraw/Surface/surface_main.c diff --git a/reactos/dll/directx/ddraw/Surface/surface_stubs.c b/dll/directx/ddraw/Surface/surface_stubs.c similarity index 100% rename from reactos/dll/directx/ddraw/Surface/surface_stubs.c rename to dll/directx/ddraw/Surface/surface_stubs.c diff --git a/reactos/dll/directx/ddraw/Videoport/videoport_stubs.c b/dll/directx/ddraw/Videoport/videoport_stubs.c similarity index 100% rename from reactos/dll/directx/ddraw/Videoport/videoport_stubs.c rename to dll/directx/ddraw/Videoport/videoport_stubs.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectD3D2_Vtable.c b/dll/directx/ddraw/Vtable/DirectD3D2_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectD3D2_Vtable.c rename to dll/directx/ddraw/Vtable/DirectD3D2_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectD3D3_Vtable.c b/dll/directx/ddraw/Vtable/DirectD3D3_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectD3D3_Vtable.c rename to dll/directx/ddraw/Vtable/DirectD3D3_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectD3D7_Vtable.c b/dll/directx/ddraw/Vtable/DirectD3D7_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectD3D7_Vtable.c rename to dll/directx/ddraw/Vtable/DirectD3D7_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectD3D_Vtable.c b/dll/directx/ddraw/Vtable/DirectD3D_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectD3D_Vtable.c rename to dll/directx/ddraw/Vtable/DirectD3D_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectDraw2_Vtable.c b/dll/directx/ddraw/Vtable/DirectDraw2_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectDraw2_Vtable.c rename to dll/directx/ddraw/Vtable/DirectDraw2_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectDraw4_Vtable.c b/dll/directx/ddraw/Vtable/DirectDraw4_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectDraw4_Vtable.c rename to dll/directx/ddraw/Vtable/DirectDraw4_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectDraw7_Vtable.c b/dll/directx/ddraw/Vtable/DirectDraw7_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectDraw7_Vtable.c rename to dll/directx/ddraw/Vtable/DirectDraw7_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectDrawSurface2_Vtable.c b/dll/directx/ddraw/Vtable/DirectDrawSurface2_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectDrawSurface2_Vtable.c rename to dll/directx/ddraw/Vtable/DirectDrawSurface2_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectDrawSurface3_Vtable.c b/dll/directx/ddraw/Vtable/DirectDrawSurface3_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectDrawSurface3_Vtable.c rename to dll/directx/ddraw/Vtable/DirectDrawSurface3_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectDrawSurface4_Vtable.c b/dll/directx/ddraw/Vtable/DirectDrawSurface4_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectDrawSurface4_Vtable.c rename to dll/directx/ddraw/Vtable/DirectDrawSurface4_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectDrawSurface7_Vtable.c b/dll/directx/ddraw/Vtable/DirectDrawSurface7_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectDrawSurface7_Vtable.c rename to dll/directx/ddraw/Vtable/DirectDrawSurface7_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectDrawSurface_Vtable.c b/dll/directx/ddraw/Vtable/DirectDrawSurface_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectDrawSurface_Vtable.c rename to dll/directx/ddraw/Vtable/DirectDrawSurface_Vtable.c diff --git a/reactos/dll/directx/ddraw/Vtable/DirectDraw_Vtable.c b/dll/directx/ddraw/Vtable/DirectDraw_Vtable.c similarity index 100% rename from reactos/dll/directx/ddraw/Vtable/DirectDraw_Vtable.c rename to dll/directx/ddraw/Vtable/DirectDraw_Vtable.c diff --git a/reactos/dll/directx/ddraw/cleanup.c b/dll/directx/ddraw/cleanup.c similarity index 100% rename from reactos/dll/directx/ddraw/cleanup.c rename to dll/directx/ddraw/cleanup.c diff --git a/reactos/dll/directx/ddraw/d3d/DirectD3D_main.c b/dll/directx/ddraw/d3d/DirectD3D_main.c similarity index 100% rename from reactos/dll/directx/ddraw/d3d/DirectD3D_main.c rename to dll/directx/ddraw/d3d/DirectD3D_main.c diff --git a/reactos/dll/directx/ddraw/ddraw.rc b/dll/directx/ddraw/ddraw.rc similarity index 100% rename from reactos/dll/directx/ddraw/ddraw.rc rename to dll/directx/ddraw/ddraw.rc diff --git a/reactos/dll/directx/ddraw/ddraw.spec b/dll/directx/ddraw/ddraw.spec similarity index 100% rename from reactos/dll/directx/ddraw/ddraw.spec rename to dll/directx/ddraw/ddraw.spec diff --git a/reactos/dll/directx/ddraw/ddraw_structures.txt b/dll/directx/ddraw/ddraw_structures.txt similarity index 100% rename from reactos/dll/directx/ddraw/ddraw_structures.txt rename to dll/directx/ddraw/ddraw_structures.txt diff --git a/reactos/dll/directx/ddraw/main.c b/dll/directx/ddraw/main.c similarity index 100% rename from reactos/dll/directx/ddraw/main.c rename to dll/directx/ddraw/main.c diff --git a/reactos/dll/directx/ddraw/resource.h b/dll/directx/ddraw/resource.h similarity index 100% rename from reactos/dll/directx/ddraw/resource.h rename to dll/directx/ddraw/resource.h diff --git a/reactos/dll/directx/ddraw/rosdraw.h b/dll/directx/ddraw/rosdraw.h similarity index 100% rename from reactos/dll/directx/ddraw/rosdraw.h rename to dll/directx/ddraw/rosdraw.h diff --git a/reactos/dll/directx/ddraw/startup.c b/dll/directx/ddraw/startup.c similarity index 100% rename from reactos/dll/directx/ddraw/startup.c rename to dll/directx/ddraw/startup.c diff --git a/reactos/dll/directx/ddraw/thunks/ddraw_thunk.c b/dll/directx/ddraw/thunks/ddraw_thunk.c similarity index 100% rename from reactos/dll/directx/ddraw/thunks/ddraw_thunk.c rename to dll/directx/ddraw/thunks/ddraw_thunk.c diff --git a/reactos/dll/directx/ddraw/thunks/surface_thunk.c b/dll/directx/ddraw/thunks/surface_thunk.c similarity index 100% rename from reactos/dll/directx/ddraw/thunks/surface_thunk.c rename to dll/directx/ddraw/thunks/surface_thunk.c diff --git a/reactos/dll/directx/devenum/CMakeLists.txt b/dll/directx/devenum/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/devenum/CMakeLists.txt rename to dll/directx/devenum/CMakeLists.txt diff --git a/reactos/dll/directx/devenum/Makefile.in b/dll/directx/devenum/Makefile.in similarity index 100% rename from reactos/dll/directx/devenum/Makefile.in rename to dll/directx/devenum/Makefile.in diff --git a/reactos/dll/directx/devenum/createdevenum.c b/dll/directx/devenum/createdevenum.c similarity index 100% rename from reactos/dll/directx/devenum/createdevenum.c rename to dll/directx/devenum/createdevenum.c diff --git a/reactos/dll/directx/devenum/devenum.rc b/dll/directx/devenum/devenum.rc similarity index 100% rename from reactos/dll/directx/devenum/devenum.rc rename to dll/directx/devenum/devenum.rc diff --git a/reactos/dll/directx/devenum/devenum.spec b/dll/directx/devenum/devenum.spec similarity index 100% rename from reactos/dll/directx/devenum/devenum.spec rename to dll/directx/devenum/devenum.spec diff --git a/reactos/dll/directx/devenum/devenum_main.c b/dll/directx/devenum/devenum_main.c similarity index 100% rename from reactos/dll/directx/devenum/devenum_main.c rename to dll/directx/devenum/devenum_main.c diff --git a/reactos/dll/directx/devenum/devenum_private.h b/dll/directx/devenum/devenum_private.h similarity index 100% rename from reactos/dll/directx/devenum/devenum_private.h rename to dll/directx/devenum/devenum_private.h diff --git a/reactos/dll/directx/devenum/factory.c b/dll/directx/devenum/factory.c similarity index 100% rename from reactos/dll/directx/devenum/factory.c rename to dll/directx/devenum/factory.c diff --git a/reactos/dll/directx/devenum/mediacatenum.c b/dll/directx/devenum/mediacatenum.c similarity index 100% rename from reactos/dll/directx/devenum/mediacatenum.c rename to dll/directx/devenum/mediacatenum.c diff --git a/reactos/dll/directx/devenum/parsedisplayname.c b/dll/directx/devenum/parsedisplayname.c similarity index 100% rename from reactos/dll/directx/devenum/parsedisplayname.c rename to dll/directx/devenum/parsedisplayname.c diff --git a/reactos/dll/directx/dinput/CMakeLists.txt b/dll/directx/dinput/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/dinput/CMakeLists.txt rename to dll/directx/dinput/CMakeLists.txt diff --git a/reactos/dll/directx/dinput/data_formats.c b/dll/directx/dinput/data_formats.c similarity index 100% rename from reactos/dll/directx/dinput/data_formats.c rename to dll/directx/dinput/data_formats.c diff --git a/reactos/dll/directx/dinput/device.c b/dll/directx/dinput/device.c similarity index 100% rename from reactos/dll/directx/dinput/device.c rename to dll/directx/dinput/device.c diff --git a/reactos/dll/directx/dinput/device_private.h b/dll/directx/dinput/device_private.h similarity index 100% rename from reactos/dll/directx/dinput/device_private.h rename to dll/directx/dinput/device_private.h diff --git a/reactos/dll/directx/dinput/dinput.spec b/dll/directx/dinput/dinput.spec similarity index 100% rename from reactos/dll/directx/dinput/dinput.spec rename to dll/directx/dinput/dinput.spec diff --git a/reactos/dll/directx/dinput/dinput_main.c b/dll/directx/dinput/dinput_main.c similarity index 100% rename from reactos/dll/directx/dinput/dinput_main.c rename to dll/directx/dinput/dinput_main.c diff --git a/reactos/dll/directx/dinput/dinput_private.h b/dll/directx/dinput/dinput_private.h similarity index 100% rename from reactos/dll/directx/dinput/dinput_private.h rename to dll/directx/dinput/dinput_private.h diff --git a/reactos/dll/directx/dinput/effect_linuxinput.c b/dll/directx/dinput/effect_linuxinput.c similarity index 100% rename from reactos/dll/directx/dinput/effect_linuxinput.c rename to dll/directx/dinput/effect_linuxinput.c diff --git a/reactos/dll/directx/dinput/joystick_linux.c b/dll/directx/dinput/joystick_linux.c similarity index 100% rename from reactos/dll/directx/dinput/joystick_linux.c rename to dll/directx/dinput/joystick_linux.c diff --git a/reactos/dll/directx/dinput/joystick_linuxinput.c b/dll/directx/dinput/joystick_linuxinput.c similarity index 100% rename from reactos/dll/directx/dinput/joystick_linuxinput.c rename to dll/directx/dinput/joystick_linuxinput.c diff --git a/reactos/dll/directx/dinput/keyboard.c b/dll/directx/dinput/keyboard.c similarity index 100% rename from reactos/dll/directx/dinput/keyboard.c rename to dll/directx/dinput/keyboard.c diff --git a/reactos/dll/directx/dinput/mouse.c b/dll/directx/dinput/mouse.c similarity index 100% rename from reactos/dll/directx/dinput/mouse.c rename to dll/directx/dinput/mouse.c diff --git a/reactos/dll/directx/dinput/regsvr.c b/dll/directx/dinput/regsvr.c similarity index 100% rename from reactos/dll/directx/dinput/regsvr.c rename to dll/directx/dinput/regsvr.c diff --git a/reactos/dll/directx/dinput/version.rc b/dll/directx/dinput/version.rc similarity index 100% rename from reactos/dll/directx/dinput/version.rc rename to dll/directx/dinput/version.rc diff --git a/reactos/dll/directx/dinput8/CMakeLists.txt b/dll/directx/dinput8/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/dinput8/CMakeLists.txt rename to dll/directx/dinput8/CMakeLists.txt diff --git a/reactos/dll/directx/dinput8/dinput8.spec b/dll/directx/dinput8/dinput8.spec similarity index 100% rename from reactos/dll/directx/dinput8/dinput8.spec rename to dll/directx/dinput8/dinput8.spec diff --git a/reactos/dll/directx/dinput8/dinput8_main.c b/dll/directx/dinput8/dinput8_main.c similarity index 100% rename from reactos/dll/directx/dinput8/dinput8_main.c rename to dll/directx/dinput8/dinput8_main.c diff --git a/reactos/dll/directx/dinput8/regsvr.c b/dll/directx/dinput8/regsvr.c similarity index 100% rename from reactos/dll/directx/dinput8/regsvr.c rename to dll/directx/dinput8/regsvr.c diff --git a/reactos/dll/directx/dinput8/version.rc b/dll/directx/dinput8/version.rc similarity index 100% rename from reactos/dll/directx/dinput8/version.rc rename to dll/directx/dinput8/version.rc diff --git a/reactos/dll/directx/dmusic/CMakeLists.txt b/dll/directx/dmusic/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/dmusic/CMakeLists.txt rename to dll/directx/dmusic/CMakeLists.txt diff --git a/reactos/dll/directx/dmusic/buffer.c b/dll/directx/dmusic/buffer.c similarity index 100% rename from reactos/dll/directx/dmusic/buffer.c rename to dll/directx/dmusic/buffer.c diff --git a/reactos/dll/directx/dmusic/clock.c b/dll/directx/dmusic/clock.c similarity index 100% rename from reactos/dll/directx/dmusic/clock.c rename to dll/directx/dmusic/clock.c diff --git a/reactos/dll/directx/dmusic/collection.c b/dll/directx/dmusic/collection.c similarity index 100% rename from reactos/dll/directx/dmusic/collection.c rename to dll/directx/dmusic/collection.c diff --git a/reactos/dll/directx/dmusic/dmusic.c b/dll/directx/dmusic/dmusic.c similarity index 100% rename from reactos/dll/directx/dmusic/dmusic.c rename to dll/directx/dmusic/dmusic.c diff --git a/reactos/dll/directx/dmusic/dmusic.spec b/dll/directx/dmusic/dmusic.spec similarity index 100% rename from reactos/dll/directx/dmusic/dmusic.spec rename to dll/directx/dmusic/dmusic.spec diff --git a/reactos/dll/directx/dmusic/dmusic_main.c b/dll/directx/dmusic/dmusic_main.c similarity index 100% rename from reactos/dll/directx/dmusic/dmusic_main.c rename to dll/directx/dmusic/dmusic_main.c diff --git a/reactos/dll/directx/dmusic/dmusic_private.h b/dll/directx/dmusic/dmusic_private.h similarity index 100% rename from reactos/dll/directx/dmusic/dmusic_private.h rename to dll/directx/dmusic/dmusic_private.h diff --git a/reactos/dll/directx/dmusic/download.c b/dll/directx/dmusic/download.c similarity index 100% rename from reactos/dll/directx/dmusic/download.c rename to dll/directx/dmusic/download.c diff --git a/reactos/dll/directx/dmusic/downloadedinstrument.c b/dll/directx/dmusic/downloadedinstrument.c similarity index 100% rename from reactos/dll/directx/dmusic/downloadedinstrument.c rename to dll/directx/dmusic/downloadedinstrument.c diff --git a/reactos/dll/directx/dmusic/instrument.c b/dll/directx/dmusic/instrument.c similarity index 100% rename from reactos/dll/directx/dmusic/instrument.c rename to dll/directx/dmusic/instrument.c diff --git a/reactos/dll/directx/dmusic/port.c b/dll/directx/dmusic/port.c similarity index 100% rename from reactos/dll/directx/dmusic/port.c rename to dll/directx/dmusic/port.c diff --git a/reactos/dll/directx/dmusic/regsvr.c b/dll/directx/dmusic/regsvr.c similarity index 100% rename from reactos/dll/directx/dmusic/regsvr.c rename to dll/directx/dmusic/regsvr.c diff --git a/reactos/dll/directx/dmusic/version.rc b/dll/directx/dmusic/version.rc similarity index 100% rename from reactos/dll/directx/dmusic/version.rc rename to dll/directx/dmusic/version.rc diff --git a/reactos/dll/directx/dplay/CMakeLists.txt b/dll/directx/dplay/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/dplay/CMakeLists.txt rename to dll/directx/dplay/CMakeLists.txt diff --git a/reactos/dll/directx/dplay/dplay.spec b/dll/directx/dplay/dplay.spec similarity index 100% rename from reactos/dll/directx/dplay/dplay.spec rename to dll/directx/dplay/dplay.spec diff --git a/reactos/dll/directx/dplay/dplay_main.c b/dll/directx/dplay/dplay_main.c similarity index 100% rename from reactos/dll/directx/dplay/dplay_main.c rename to dll/directx/dplay/dplay_main.c diff --git a/reactos/dll/directx/dplay/version.rc b/dll/directx/dplay/version.rc similarity index 100% rename from reactos/dll/directx/dplay/version.rc rename to dll/directx/dplay/version.rc diff --git a/reactos/dll/directx/dplayx/CMakeLists.txt b/dll/directx/dplayx/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/dplayx/CMakeLists.txt rename to dll/directx/dplayx/CMakeLists.txt diff --git a/reactos/dll/directx/dplayx/dpclassfactory.c b/dll/directx/dplayx/dpclassfactory.c similarity index 100% rename from reactos/dll/directx/dplayx/dpclassfactory.c rename to dll/directx/dplayx/dpclassfactory.c diff --git a/reactos/dll/directx/dplayx/dpinit.h b/dll/directx/dplayx/dpinit.h similarity index 100% rename from reactos/dll/directx/dplayx/dpinit.h rename to dll/directx/dplayx/dpinit.h diff --git a/reactos/dll/directx/dplayx/dplay.c b/dll/directx/dplayx/dplay.c similarity index 100% rename from reactos/dll/directx/dplayx/dplay.c rename to dll/directx/dplayx/dplay.c diff --git a/reactos/dll/directx/dplayx/dplay_global.h b/dll/directx/dplayx/dplay_global.h similarity index 100% rename from reactos/dll/directx/dplayx/dplay_global.h rename to dll/directx/dplayx/dplay_global.h diff --git a/reactos/dll/directx/dplayx/dplaysp.c b/dll/directx/dplayx/dplaysp.c similarity index 100% rename from reactos/dll/directx/dplayx/dplaysp.c rename to dll/directx/dplayx/dplaysp.c diff --git a/reactos/dll/directx/dplayx/dplaysp.h b/dll/directx/dplayx/dplaysp.h similarity index 100% rename from reactos/dll/directx/dplayx/dplaysp.h rename to dll/directx/dplayx/dplaysp.h diff --git a/reactos/dll/directx/dplayx/dplayx.spec b/dll/directx/dplayx/dplayx.spec similarity index 100% rename from reactos/dll/directx/dplayx/dplayx.spec rename to dll/directx/dplayx/dplayx.spec diff --git a/reactos/dll/directx/dplayx/dplayx_global.c b/dll/directx/dplayx/dplayx_global.c similarity index 100% rename from reactos/dll/directx/dplayx/dplayx_global.c rename to dll/directx/dplayx/dplayx_global.c diff --git a/reactos/dll/directx/dplayx/dplayx_global.h b/dll/directx/dplayx/dplayx_global.h similarity index 100% rename from reactos/dll/directx/dplayx/dplayx_global.h rename to dll/directx/dplayx/dplayx_global.h diff --git a/reactos/dll/directx/dplayx/dplayx_main.c b/dll/directx/dplayx/dplayx_main.c similarity index 100% rename from reactos/dll/directx/dplayx/dplayx_main.c rename to dll/directx/dplayx/dplayx_main.c diff --git a/reactos/dll/directx/dplayx/dplayx_messages.c b/dll/directx/dplayx/dplayx_messages.c similarity index 100% rename from reactos/dll/directx/dplayx/dplayx_messages.c rename to dll/directx/dplayx/dplayx_messages.c diff --git a/reactos/dll/directx/dplayx/dplayx_messages.h b/dll/directx/dplayx/dplayx_messages.h similarity index 100% rename from reactos/dll/directx/dplayx/dplayx_messages.h rename to dll/directx/dplayx/dplayx_messages.h diff --git a/reactos/dll/directx/dplayx/dplayx_queue.h b/dll/directx/dplayx/dplayx_queue.h similarity index 100% rename from reactos/dll/directx/dplayx/dplayx_queue.h rename to dll/directx/dplayx/dplayx_queue.h diff --git a/reactos/dll/directx/dplayx/dplobby.c b/dll/directx/dplayx/dplobby.c similarity index 100% rename from reactos/dll/directx/dplayx/dplobby.c rename to dll/directx/dplayx/dplobby.c diff --git a/reactos/dll/directx/dplayx/lobbysp.c b/dll/directx/dplayx/lobbysp.c similarity index 100% rename from reactos/dll/directx/dplayx/lobbysp.c rename to dll/directx/dplayx/lobbysp.c diff --git a/reactos/dll/directx/dplayx/lobbysp.h b/dll/directx/dplayx/lobbysp.h similarity index 100% rename from reactos/dll/directx/dplayx/lobbysp.h rename to dll/directx/dplayx/lobbysp.h diff --git a/reactos/dll/directx/dplayx/name_server.c b/dll/directx/dplayx/name_server.c similarity index 100% rename from reactos/dll/directx/dplayx/name_server.c rename to dll/directx/dplayx/name_server.c diff --git a/reactos/dll/directx/dplayx/name_server.h b/dll/directx/dplayx/name_server.h similarity index 100% rename from reactos/dll/directx/dplayx/name_server.h rename to dll/directx/dplayx/name_server.h diff --git a/reactos/dll/directx/dplayx/regsvr.c b/dll/directx/dplayx/regsvr.c similarity index 100% rename from reactos/dll/directx/dplayx/regsvr.c rename to dll/directx/dplayx/regsvr.c diff --git a/reactos/dll/directx/dplayx/version.rc b/dll/directx/dplayx/version.rc similarity index 100% rename from reactos/dll/directx/dplayx/version.rc rename to dll/directx/dplayx/version.rc diff --git a/reactos/dll/directx/dsound/CMakeLists.txt b/dll/directx/dsound/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/dsound/CMakeLists.txt rename to dll/directx/dsound/CMakeLists.txt diff --git a/reactos/dll/directx/dsound/buffer.c b/dll/directx/dsound/buffer.c similarity index 100% rename from reactos/dll/directx/dsound/buffer.c rename to dll/directx/dsound/buffer.c diff --git a/reactos/dll/directx/dsound/capture.c b/dll/directx/dsound/capture.c similarity index 100% rename from reactos/dll/directx/dsound/capture.c rename to dll/directx/dsound/capture.c diff --git a/reactos/dll/directx/dsound/dsound.c b/dll/directx/dsound/dsound.c similarity index 100% rename from reactos/dll/directx/dsound/dsound.c rename to dll/directx/dsound/dsound.c diff --git a/reactos/dll/directx/dsound/dsound.spec b/dll/directx/dsound/dsound.spec similarity index 100% rename from reactos/dll/directx/dsound/dsound.spec rename to dll/directx/dsound/dsound.spec diff --git a/reactos/dll/directx/dsound/dsound_convert.c b/dll/directx/dsound/dsound_convert.c similarity index 100% rename from reactos/dll/directx/dsound/dsound_convert.c rename to dll/directx/dsound/dsound_convert.c diff --git a/reactos/dll/directx/dsound/dsound_main.c b/dll/directx/dsound/dsound_main.c similarity index 100% rename from reactos/dll/directx/dsound/dsound_main.c rename to dll/directx/dsound/dsound_main.c diff --git a/reactos/dll/directx/dsound/dsound_private.h b/dll/directx/dsound/dsound_private.h similarity index 100% rename from reactos/dll/directx/dsound/dsound_private.h rename to dll/directx/dsound/dsound_private.h diff --git a/reactos/dll/directx/dsound/duplex.c b/dll/directx/dsound/duplex.c similarity index 100% rename from reactos/dll/directx/dsound/duplex.c rename to dll/directx/dsound/duplex.c diff --git a/reactos/dll/directx/dsound/mixer.c b/dll/directx/dsound/mixer.c similarity index 100% rename from reactos/dll/directx/dsound/mixer.c rename to dll/directx/dsound/mixer.c diff --git a/reactos/dll/directx/dsound/primary.c b/dll/directx/dsound/primary.c similarity index 100% rename from reactos/dll/directx/dsound/primary.c rename to dll/directx/dsound/primary.c diff --git a/reactos/dll/directx/dsound/propset.c b/dll/directx/dsound/propset.c similarity index 100% rename from reactos/dll/directx/dsound/propset.c rename to dll/directx/dsound/propset.c diff --git a/reactos/dll/directx/dsound/regsvr.c b/dll/directx/dsound/regsvr.c similarity index 100% rename from reactos/dll/directx/dsound/regsvr.c rename to dll/directx/dsound/regsvr.c diff --git a/reactos/dll/directx/dsound/sound3d.c b/dll/directx/dsound/sound3d.c similarity index 100% rename from reactos/dll/directx/dsound/sound3d.c rename to dll/directx/dsound/sound3d.c diff --git a/reactos/dll/directx/dsound/tests/.cvsignore b/dll/directx/dsound/tests/.cvsignore similarity index 100% rename from reactos/dll/directx/dsound/tests/.cvsignore rename to dll/directx/dsound/tests/.cvsignore diff --git a/reactos/dll/directx/dsound/tests/Makefile.in b/dll/directx/dsound/tests/Makefile.in similarity index 100% rename from reactos/dll/directx/dsound/tests/Makefile.in rename to dll/directx/dsound/tests/Makefile.in diff --git a/reactos/dll/directx/dsound/tests/capture.c b/dll/directx/dsound/tests/capture.c similarity index 100% rename from reactos/dll/directx/dsound/tests/capture.c rename to dll/directx/dsound/tests/capture.c diff --git a/reactos/dll/directx/dsound/tests/ds3d.c b/dll/directx/dsound/tests/ds3d.c similarity index 100% rename from reactos/dll/directx/dsound/tests/ds3d.c rename to dll/directx/dsound/tests/ds3d.c diff --git a/reactos/dll/directx/dsound/tests/ds3d8.c b/dll/directx/dsound/tests/ds3d8.c similarity index 100% rename from reactos/dll/directx/dsound/tests/ds3d8.c rename to dll/directx/dsound/tests/ds3d8.c diff --git a/reactos/dll/directx/dsound/tests/dsound.c b/dll/directx/dsound/tests/dsound.c similarity index 100% rename from reactos/dll/directx/dsound/tests/dsound.c rename to dll/directx/dsound/tests/dsound.c diff --git a/reactos/dll/directx/dsound/tests/dsound8.c b/dll/directx/dsound/tests/dsound8.c similarity index 100% rename from reactos/dll/directx/dsound/tests/dsound8.c rename to dll/directx/dsound/tests/dsound8.c diff --git a/reactos/dll/directx/dsound/tests/dsound_test.h b/dll/directx/dsound/tests/dsound_test.h similarity index 100% rename from reactos/dll/directx/dsound/tests/dsound_test.h rename to dll/directx/dsound/tests/dsound_test.h diff --git a/reactos/dll/directx/dsound/tests/propset.c b/dll/directx/dsound/tests/propset.c similarity index 100% rename from reactos/dll/directx/dsound/tests/propset.c rename to dll/directx/dsound/tests/propset.c diff --git a/reactos/dll/directx/dsound/version.rc b/dll/directx/dsound/version.rc similarity index 100% rename from reactos/dll/directx/dsound/version.rc rename to dll/directx/dsound/version.rc diff --git a/reactos/dll/directx/dsound_new/capture.c b/dll/directx/dsound_new/capture.c similarity index 100% rename from reactos/dll/directx/dsound_new/capture.c rename to dll/directx/dsound_new/capture.c diff --git a/reactos/dll/directx/dsound_new/capturebuffer.c b/dll/directx/dsound_new/capturebuffer.c similarity index 100% rename from reactos/dll/directx/dsound_new/capturebuffer.c rename to dll/directx/dsound_new/capturebuffer.c diff --git a/reactos/dll/directx/dsound_new/classfactory.c b/dll/directx/dsound_new/classfactory.c similarity index 100% rename from reactos/dll/directx/dsound_new/classfactory.c rename to dll/directx/dsound_new/classfactory.c diff --git a/reactos/dll/directx/dsound_new/devicelist.c b/dll/directx/dsound_new/devicelist.c similarity index 100% rename from reactos/dll/directx/dsound_new/devicelist.c rename to dll/directx/dsound_new/devicelist.c diff --git a/reactos/dll/directx/dsound_new/directsound.c b/dll/directx/dsound_new/directsound.c similarity index 100% rename from reactos/dll/directx/dsound_new/directsound.c rename to dll/directx/dsound_new/directsound.c diff --git a/reactos/dll/directx/dsound_new/dsound.c b/dll/directx/dsound_new/dsound.c similarity index 100% rename from reactos/dll/directx/dsound_new/dsound.c rename to dll/directx/dsound_new/dsound.c diff --git a/reactos/dll/directx/dsound_new/dsound.spec b/dll/directx/dsound_new/dsound.spec similarity index 100% rename from reactos/dll/directx/dsound_new/dsound.spec rename to dll/directx/dsound_new/dsound.spec diff --git a/reactos/dll/directx/dsound_new/dsound_convert.c b/dll/directx/dsound_new/dsound_convert.c similarity index 100% rename from reactos/dll/directx/dsound_new/dsound_convert.c rename to dll/directx/dsound_new/dsound_convert.c diff --git a/reactos/dll/directx/dsound_new/enum.c b/dll/directx/dsound_new/enum.c similarity index 100% rename from reactos/dll/directx/dsound_new/enum.c rename to dll/directx/dsound_new/enum.c diff --git a/reactos/dll/directx/dsound_new/misc.c b/dll/directx/dsound_new/misc.c similarity index 100% rename from reactos/dll/directx/dsound_new/misc.c rename to dll/directx/dsound_new/misc.c diff --git a/reactos/dll/directx/dsound_new/notify.c b/dll/directx/dsound_new/notify.c similarity index 100% rename from reactos/dll/directx/dsound_new/notify.c rename to dll/directx/dsound_new/notify.c diff --git a/reactos/dll/directx/dsound_new/precomp.h b/dll/directx/dsound_new/precomp.h similarity index 100% rename from reactos/dll/directx/dsound_new/precomp.h rename to dll/directx/dsound_new/precomp.h diff --git a/reactos/dll/directx/dsound_new/primary.c b/dll/directx/dsound_new/primary.c similarity index 100% rename from reactos/dll/directx/dsound_new/primary.c rename to dll/directx/dsound_new/primary.c diff --git a/reactos/dll/directx/dsound_new/property.c b/dll/directx/dsound_new/property.c similarity index 100% rename from reactos/dll/directx/dsound_new/property.c rename to dll/directx/dsound_new/property.c diff --git a/reactos/dll/directx/dsound_new/regsvr.c b/dll/directx/dsound_new/regsvr.c similarity index 100% rename from reactos/dll/directx/dsound_new/regsvr.c rename to dll/directx/dsound_new/regsvr.c diff --git a/reactos/dll/directx/dsound_new/resource.h b/dll/directx/dsound_new/resource.h similarity index 100% rename from reactos/dll/directx/dsound_new/resource.h rename to dll/directx/dsound_new/resource.h diff --git a/reactos/dll/directx/dsound_new/secondary.c b/dll/directx/dsound_new/secondary.c similarity index 100% rename from reactos/dll/directx/dsound_new/secondary.c rename to dll/directx/dsound_new/secondary.c diff --git a/reactos/dll/directx/dsound_new/stubs.c b/dll/directx/dsound_new/stubs.c similarity index 100% rename from reactos/dll/directx/dsound_new/stubs.c rename to dll/directx/dsound_new/stubs.c diff --git a/reactos/dll/directx/dsound_new/version.rc b/dll/directx/dsound_new/version.rc similarity index 100% rename from reactos/dll/directx/dsound_new/version.rc rename to dll/directx/dsound_new/version.rc diff --git a/reactos/dll/directx/dxdiagn/CMakeLists.txt b/dll/directx/dxdiagn/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/dxdiagn/CMakeLists.txt rename to dll/directx/dxdiagn/CMakeLists.txt diff --git a/reactos/dll/directx/dxdiagn/container.c b/dll/directx/dxdiagn/container.c similarity index 100% rename from reactos/dll/directx/dxdiagn/container.c rename to dll/directx/dxdiagn/container.c diff --git a/reactos/dll/directx/dxdiagn/dxdiag_main.c b/dll/directx/dxdiagn/dxdiag_main.c similarity index 100% rename from reactos/dll/directx/dxdiagn/dxdiag_main.c rename to dll/directx/dxdiagn/dxdiag_main.c diff --git a/reactos/dll/directx/dxdiagn/dxdiag_private.h b/dll/directx/dxdiagn/dxdiag_private.h similarity index 100% rename from reactos/dll/directx/dxdiagn/dxdiag_private.h rename to dll/directx/dxdiagn/dxdiag_private.h diff --git a/reactos/dll/directx/dxdiagn/dxdiagn.spec b/dll/directx/dxdiagn/dxdiagn.spec similarity index 100% rename from reactos/dll/directx/dxdiagn/dxdiagn.spec rename to dll/directx/dxdiagn/dxdiagn.spec diff --git a/reactos/dll/directx/dxdiagn/provider.c b/dll/directx/dxdiagn/provider.c similarity index 100% rename from reactos/dll/directx/dxdiagn/provider.c rename to dll/directx/dxdiagn/provider.c diff --git a/reactos/dll/directx/dxdiagn/regsvr.c b/dll/directx/dxdiagn/regsvr.c similarity index 100% rename from reactos/dll/directx/dxdiagn/regsvr.c rename to dll/directx/dxdiagn/regsvr.c diff --git a/reactos/dll/directx/dxdiagn/version.rc b/dll/directx/dxdiagn/version.rc similarity index 100% rename from reactos/dll/directx/dxdiagn/version.rc rename to dll/directx/dxdiagn/version.rc diff --git a/reactos/dll/directx/ksproxy/CMakeLists.txt b/dll/directx/ksproxy/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/ksproxy/CMakeLists.txt rename to dll/directx/ksproxy/CMakeLists.txt diff --git a/reactos/dll/directx/ksproxy/allocator.cpp b/dll/directx/ksproxy/allocator.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/allocator.cpp rename to dll/directx/ksproxy/allocator.cpp diff --git a/reactos/dll/directx/ksproxy/basicaudio.cpp b/dll/directx/ksproxy/basicaudio.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/basicaudio.cpp rename to dll/directx/ksproxy/basicaudio.cpp diff --git a/reactos/dll/directx/ksproxy/classfactory.cpp b/dll/directx/ksproxy/classfactory.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/classfactory.cpp rename to dll/directx/ksproxy/classfactory.cpp diff --git a/reactos/dll/directx/ksproxy/clockforward.cpp b/dll/directx/ksproxy/clockforward.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/clockforward.cpp rename to dll/directx/ksproxy/clockforward.cpp diff --git a/reactos/dll/directx/ksproxy/cvpconfig.cpp b/dll/directx/ksproxy/cvpconfig.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/cvpconfig.cpp rename to dll/directx/ksproxy/cvpconfig.cpp diff --git a/reactos/dll/directx/ksproxy/cvpvbiconfig.cpp b/dll/directx/ksproxy/cvpvbiconfig.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/cvpvbiconfig.cpp rename to dll/directx/ksproxy/cvpvbiconfig.cpp diff --git a/reactos/dll/directx/ksproxy/datatype.cpp b/dll/directx/ksproxy/datatype.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/datatype.cpp rename to dll/directx/ksproxy/datatype.cpp diff --git a/reactos/dll/directx/ksproxy/enum_mediatypes.cpp b/dll/directx/ksproxy/enum_mediatypes.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/enum_mediatypes.cpp rename to dll/directx/ksproxy/enum_mediatypes.cpp diff --git a/reactos/dll/directx/ksproxy/enumpins.cpp b/dll/directx/ksproxy/enumpins.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/enumpins.cpp rename to dll/directx/ksproxy/enumpins.cpp diff --git a/reactos/dll/directx/ksproxy/input_pin.cpp b/dll/directx/ksproxy/input_pin.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/input_pin.cpp rename to dll/directx/ksproxy/input_pin.cpp diff --git a/reactos/dll/directx/ksproxy/interface.cpp b/dll/directx/ksproxy/interface.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/interface.cpp rename to dll/directx/ksproxy/interface.cpp diff --git a/reactos/dll/directx/ksproxy/ksproxy.cpp b/dll/directx/ksproxy/ksproxy.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/ksproxy.cpp rename to dll/directx/ksproxy/ksproxy.cpp diff --git a/reactos/dll/directx/ksproxy/ksproxy.rc b/dll/directx/ksproxy/ksproxy.rc similarity index 100% rename from reactos/dll/directx/ksproxy/ksproxy.rc rename to dll/directx/ksproxy/ksproxy.rc diff --git a/reactos/dll/directx/ksproxy/ksproxy.spec b/dll/directx/ksproxy/ksproxy.spec similarity index 100% rename from reactos/dll/directx/ksproxy/ksproxy.spec rename to dll/directx/ksproxy/ksproxy.spec diff --git a/reactos/dll/directx/ksproxy/mediasample.cpp b/dll/directx/ksproxy/mediasample.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/mediasample.cpp rename to dll/directx/ksproxy/mediasample.cpp diff --git a/reactos/dll/directx/ksproxy/node.cpp b/dll/directx/ksproxy/node.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/node.cpp rename to dll/directx/ksproxy/node.cpp diff --git a/reactos/dll/directx/ksproxy/output_pin.cpp b/dll/directx/ksproxy/output_pin.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/output_pin.cpp rename to dll/directx/ksproxy/output_pin.cpp diff --git a/reactos/dll/directx/ksproxy/precomp.h b/dll/directx/ksproxy/precomp.h similarity index 100% rename from reactos/dll/directx/ksproxy/precomp.h rename to dll/directx/ksproxy/precomp.h diff --git a/reactos/dll/directx/ksproxy/proxy.cpp b/dll/directx/ksproxy/proxy.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/proxy.cpp rename to dll/directx/ksproxy/proxy.cpp diff --git a/reactos/dll/directx/ksproxy/qualityforward.cpp b/dll/directx/ksproxy/qualityforward.cpp similarity index 100% rename from reactos/dll/directx/ksproxy/qualityforward.cpp rename to dll/directx/ksproxy/qualityforward.cpp diff --git a/reactos/dll/directx/ksuser/CMakeLists.txt b/dll/directx/ksuser/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/ksuser/CMakeLists.txt rename to dll/directx/ksuser/CMakeLists.txt diff --git a/reactos/dll/directx/ksuser/ksuser.c b/dll/directx/ksuser/ksuser.c similarity index 100% rename from reactos/dll/directx/ksuser/ksuser.c rename to dll/directx/ksuser/ksuser.c diff --git a/reactos/dll/directx/ksuser/ksuser.h b/dll/directx/ksuser/ksuser.h similarity index 100% rename from reactos/dll/directx/ksuser/ksuser.h rename to dll/directx/ksuser/ksuser.h diff --git a/reactos/dll/directx/ksuser/ksuser.rc b/dll/directx/ksuser/ksuser.rc similarity index 100% rename from reactos/dll/directx/ksuser/ksuser.rc rename to dll/directx/ksuser/ksuser.rc diff --git a/reactos/dll/directx/ksuser/ksuser.spec b/dll/directx/ksuser/ksuser.spec similarity index 100% rename from reactos/dll/directx/ksuser/ksuser.spec rename to dll/directx/ksuser/ksuser.spec diff --git a/reactos/dll/directx/msdmo/CMakeLists.txt b/dll/directx/msdmo/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/msdmo/CMakeLists.txt rename to dll/directx/msdmo/CMakeLists.txt diff --git a/reactos/dll/directx/msdmo/dmoreg.c b/dll/directx/msdmo/dmoreg.c similarity index 100% rename from reactos/dll/directx/msdmo/dmoreg.c rename to dll/directx/msdmo/dmoreg.c diff --git a/reactos/dll/directx/msdmo/dmort.c b/dll/directx/msdmo/dmort.c similarity index 100% rename from reactos/dll/directx/msdmo/dmort.c rename to dll/directx/msdmo/dmort.c diff --git a/reactos/dll/directx/msdmo/msdmo.spec b/dll/directx/msdmo/msdmo.spec similarity index 100% rename from reactos/dll/directx/msdmo/msdmo.spec rename to dll/directx/msdmo/msdmo.spec diff --git a/reactos/dll/directx/msdmo/rsrc.rc b/dll/directx/msdmo/rsrc.rc similarity index 100% rename from reactos/dll/directx/msdmo/rsrc.rc rename to dll/directx/msdmo/rsrc.rc diff --git a/reactos/dll/directx/msdmo/stubs.c b/dll/directx/msdmo/stubs.c similarity index 100% rename from reactos/dll/directx/msdmo/stubs.c rename to dll/directx/msdmo/stubs.c diff --git a/reactos/dll/directx/msdvbnp/classfactory.cpp b/dll/directx/msdvbnp/classfactory.cpp similarity index 100% rename from reactos/dll/directx/msdvbnp/classfactory.cpp rename to dll/directx/msdvbnp/classfactory.cpp diff --git a/reactos/dll/directx/msdvbnp/enum_mediatypes.cpp b/dll/directx/msdvbnp/enum_mediatypes.cpp similarity index 100% rename from reactos/dll/directx/msdvbnp/enum_mediatypes.cpp rename to dll/directx/msdvbnp/enum_mediatypes.cpp diff --git a/reactos/dll/directx/msdvbnp/enumpins.cpp b/dll/directx/msdvbnp/enumpins.cpp similarity index 100% rename from reactos/dll/directx/msdvbnp/enumpins.cpp rename to dll/directx/msdvbnp/enumpins.cpp diff --git a/reactos/dll/directx/msdvbnp/ethernetfilter.cpp b/dll/directx/msdvbnp/ethernetfilter.cpp similarity index 100% rename from reactos/dll/directx/msdvbnp/ethernetfilter.cpp rename to dll/directx/msdvbnp/ethernetfilter.cpp diff --git a/reactos/dll/directx/msdvbnp/ipv4.cpp b/dll/directx/msdvbnp/ipv4.cpp similarity index 100% rename from reactos/dll/directx/msdvbnp/ipv4.cpp rename to dll/directx/msdvbnp/ipv4.cpp diff --git a/reactos/dll/directx/msdvbnp/ipv6.cpp b/dll/directx/msdvbnp/ipv6.cpp similarity index 100% rename from reactos/dll/directx/msdvbnp/ipv6.cpp rename to dll/directx/msdvbnp/ipv6.cpp diff --git a/reactos/dll/directx/msdvbnp/msdvbnp.cpp b/dll/directx/msdvbnp/msdvbnp.cpp similarity index 100% rename from reactos/dll/directx/msdvbnp/msdvbnp.cpp rename to dll/directx/msdvbnp/msdvbnp.cpp diff --git a/reactos/dll/directx/msdvbnp/msdvbnp.rc b/dll/directx/msdvbnp/msdvbnp.rc similarity index 100% rename from reactos/dll/directx/msdvbnp/msdvbnp.rc rename to dll/directx/msdvbnp/msdvbnp.rc diff --git a/reactos/dll/directx/msdvbnp/msdvbnp.spec b/dll/directx/msdvbnp/msdvbnp.spec similarity index 100% rename from reactos/dll/directx/msdvbnp/msdvbnp.spec rename to dll/directx/msdvbnp/msdvbnp.spec diff --git a/reactos/dll/directx/msdvbnp/networkprovider.cpp b/dll/directx/msdvbnp/networkprovider.cpp similarity index 100% rename from reactos/dll/directx/msdvbnp/networkprovider.cpp rename to dll/directx/msdvbnp/networkprovider.cpp diff --git a/reactos/dll/directx/msdvbnp/pin.cpp b/dll/directx/msdvbnp/pin.cpp similarity index 100% rename from reactos/dll/directx/msdvbnp/pin.cpp rename to dll/directx/msdvbnp/pin.cpp diff --git a/reactos/dll/directx/msdvbnp/precomp.h b/dll/directx/msdvbnp/precomp.h similarity index 100% rename from reactos/dll/directx/msdvbnp/precomp.h rename to dll/directx/msdvbnp/precomp.h diff --git a/reactos/dll/directx/msdvbnp/scanningtuner.cpp b/dll/directx/msdvbnp/scanningtuner.cpp similarity index 100% rename from reactos/dll/directx/msdvbnp/scanningtuner.cpp rename to dll/directx/msdvbnp/scanningtuner.cpp diff --git a/reactos/dll/directx/msvidctl/classfactory.cpp b/dll/directx/msvidctl/classfactory.cpp similarity index 100% rename from reactos/dll/directx/msvidctl/classfactory.cpp rename to dll/directx/msvidctl/classfactory.cpp diff --git a/reactos/dll/directx/msvidctl/enumtuningspaces.cpp b/dll/directx/msvidctl/enumtuningspaces.cpp similarity index 100% rename from reactos/dll/directx/msvidctl/enumtuningspaces.cpp rename to dll/directx/msvidctl/enumtuningspaces.cpp diff --git a/reactos/dll/directx/msvidctl/msvidctl.cpp b/dll/directx/msvidctl/msvidctl.cpp similarity index 100% rename from reactos/dll/directx/msvidctl/msvidctl.cpp rename to dll/directx/msvidctl/msvidctl.cpp diff --git a/reactos/dll/directx/msvidctl/msvidctl.rc b/dll/directx/msvidctl/msvidctl.rc similarity index 100% rename from reactos/dll/directx/msvidctl/msvidctl.rc rename to dll/directx/msvidctl/msvidctl.rc diff --git a/reactos/dll/directx/msvidctl/msvidctl.spec b/dll/directx/msvidctl/msvidctl.spec similarity index 100% rename from reactos/dll/directx/msvidctl/msvidctl.spec rename to dll/directx/msvidctl/msvidctl.spec diff --git a/reactos/dll/directx/msvidctl/precomp.h b/dll/directx/msvidctl/precomp.h similarity index 100% rename from reactos/dll/directx/msvidctl/precomp.h rename to dll/directx/msvidctl/precomp.h diff --git a/reactos/dll/directx/msvidctl/tunerequest.cpp b/dll/directx/msvidctl/tunerequest.cpp similarity index 100% rename from reactos/dll/directx/msvidctl/tunerequest.cpp rename to dll/directx/msvidctl/tunerequest.cpp diff --git a/reactos/dll/directx/msvidctl/tuningspace.cpp b/dll/directx/msvidctl/tuningspace.cpp similarity index 100% rename from reactos/dll/directx/msvidctl/tuningspace.cpp rename to dll/directx/msvidctl/tuningspace.cpp diff --git a/reactos/dll/directx/msvidctl/tuningspace_container.cpp b/dll/directx/msvidctl/tuningspace_container.cpp similarity index 100% rename from reactos/dll/directx/msvidctl/tuningspace_container.cpp rename to dll/directx/msvidctl/tuningspace_container.cpp diff --git a/reactos/dll/directx/qedit/CMakeLists.txt b/dll/directx/qedit/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/qedit/CMakeLists.txt rename to dll/directx/qedit/CMakeLists.txt diff --git a/reactos/dll/directx/qedit/main.c b/dll/directx/qedit/main.c similarity index 100% rename from reactos/dll/directx/qedit/main.c rename to dll/directx/qedit/main.c diff --git a/reactos/dll/directx/qedit/mediadet.c b/dll/directx/qedit/mediadet.c similarity index 100% rename from reactos/dll/directx/qedit/mediadet.c rename to dll/directx/qedit/mediadet.c diff --git a/reactos/dll/directx/qedit/qedit.spec b/dll/directx/qedit/qedit.spec similarity index 100% rename from reactos/dll/directx/qedit/qedit.spec rename to dll/directx/qedit/qedit.spec diff --git a/reactos/dll/directx/qedit/qedit_private.h b/dll/directx/qedit/qedit_private.h similarity index 100% rename from reactos/dll/directx/qedit/qedit_private.h rename to dll/directx/qedit/qedit_private.h diff --git a/reactos/dll/directx/qedit/regsvr.c b/dll/directx/qedit/regsvr.c similarity index 100% rename from reactos/dll/directx/qedit/regsvr.c rename to dll/directx/qedit/regsvr.c diff --git a/reactos/dll/directx/qedit/samplegrabber.c b/dll/directx/qedit/samplegrabber.c similarity index 100% rename from reactos/dll/directx/qedit/samplegrabber.c rename to dll/directx/qedit/samplegrabber.c diff --git a/reactos/dll/directx/quartz/CMakeLists.txt b/dll/directx/quartz/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/quartz/CMakeLists.txt rename to dll/directx/quartz/CMakeLists.txt diff --git a/reactos/dll/directx/quartz/acmwrapper.c b/dll/directx/quartz/acmwrapper.c similarity index 100% rename from reactos/dll/directx/quartz/acmwrapper.c rename to dll/directx/quartz/acmwrapper.c diff --git a/reactos/dll/directx/quartz/avidec.c b/dll/directx/quartz/avidec.c similarity index 100% rename from reactos/dll/directx/quartz/avidec.c rename to dll/directx/quartz/avidec.c diff --git a/reactos/dll/directx/quartz/avisplit.c b/dll/directx/quartz/avisplit.c similarity index 100% rename from reactos/dll/directx/quartz/avisplit.c rename to dll/directx/quartz/avisplit.c diff --git a/reactos/dll/directx/quartz/control.c b/dll/directx/quartz/control.c similarity index 100% rename from reactos/dll/directx/quartz/control.c rename to dll/directx/quartz/control.c diff --git a/reactos/dll/directx/quartz/control_private.h b/dll/directx/quartz/control_private.h similarity index 100% rename from reactos/dll/directx/quartz/control_private.h rename to dll/directx/quartz/control_private.h diff --git a/reactos/dll/directx/quartz/dsoundrender.c b/dll/directx/quartz/dsoundrender.c similarity index 100% rename from reactos/dll/directx/quartz/dsoundrender.c rename to dll/directx/quartz/dsoundrender.c diff --git a/reactos/dll/directx/quartz/enumfilters.c b/dll/directx/quartz/enumfilters.c similarity index 100% rename from reactos/dll/directx/quartz/enumfilters.c rename to dll/directx/quartz/enumfilters.c diff --git a/reactos/dll/directx/quartz/enummedia.c b/dll/directx/quartz/enummedia.c similarity index 100% rename from reactos/dll/directx/quartz/enummedia.c rename to dll/directx/quartz/enummedia.c diff --git a/reactos/dll/directx/quartz/enummoniker.c b/dll/directx/quartz/enummoniker.c similarity index 100% rename from reactos/dll/directx/quartz/enummoniker.c rename to dll/directx/quartz/enummoniker.c diff --git a/reactos/dll/directx/quartz/enumpins.c b/dll/directx/quartz/enumpins.c similarity index 100% rename from reactos/dll/directx/quartz/enumpins.c rename to dll/directx/quartz/enumpins.c diff --git a/reactos/dll/directx/quartz/enumregfilters.c b/dll/directx/quartz/enumregfilters.c similarity index 100% rename from reactos/dll/directx/quartz/enumregfilters.c rename to dll/directx/quartz/enumregfilters.c diff --git a/reactos/dll/directx/quartz/filesource.c b/dll/directx/quartz/filesource.c similarity index 100% rename from reactos/dll/directx/quartz/filesource.c rename to dll/directx/quartz/filesource.c diff --git a/reactos/dll/directx/quartz/filtergraph.c b/dll/directx/quartz/filtergraph.c similarity index 100% rename from reactos/dll/directx/quartz/filtergraph.c rename to dll/directx/quartz/filtergraph.c diff --git a/reactos/dll/directx/quartz/filtermapper.c b/dll/directx/quartz/filtermapper.c similarity index 100% rename from reactos/dll/directx/quartz/filtermapper.c rename to dll/directx/quartz/filtermapper.c diff --git a/reactos/dll/directx/quartz/main.c b/dll/directx/quartz/main.c similarity index 100% rename from reactos/dll/directx/quartz/main.c rename to dll/directx/quartz/main.c diff --git a/reactos/dll/directx/quartz/memallocator.c b/dll/directx/quartz/memallocator.c similarity index 100% rename from reactos/dll/directx/quartz/memallocator.c rename to dll/directx/quartz/memallocator.c diff --git a/reactos/dll/directx/quartz/mpegsplit.c b/dll/directx/quartz/mpegsplit.c similarity index 100% rename from reactos/dll/directx/quartz/mpegsplit.c rename to dll/directx/quartz/mpegsplit.c diff --git a/reactos/dll/directx/quartz/nullrenderer.c b/dll/directx/quartz/nullrenderer.c similarity index 100% rename from reactos/dll/directx/quartz/nullrenderer.c rename to dll/directx/quartz/nullrenderer.c diff --git a/reactos/dll/directx/quartz/parser.c b/dll/directx/quartz/parser.c similarity index 100% rename from reactos/dll/directx/quartz/parser.c rename to dll/directx/quartz/parser.c diff --git a/reactos/dll/directx/quartz/parser.h b/dll/directx/quartz/parser.h similarity index 100% rename from reactos/dll/directx/quartz/parser.h rename to dll/directx/quartz/parser.h diff --git a/reactos/dll/directx/quartz/pin.c b/dll/directx/quartz/pin.c similarity index 100% rename from reactos/dll/directx/quartz/pin.c rename to dll/directx/quartz/pin.c diff --git a/reactos/dll/directx/quartz/pin.h b/dll/directx/quartz/pin.h similarity index 100% rename from reactos/dll/directx/quartz/pin.h rename to dll/directx/quartz/pin.h diff --git a/reactos/dll/directx/quartz/quartz.spec b/dll/directx/quartz/quartz.spec similarity index 100% rename from reactos/dll/directx/quartz/quartz.spec rename to dll/directx/quartz/quartz.spec diff --git a/reactos/dll/directx/quartz/quartz_private.h b/dll/directx/quartz/quartz_private.h similarity index 100% rename from reactos/dll/directx/quartz/quartz_private.h rename to dll/directx/quartz/quartz_private.h diff --git a/reactos/dll/directx/quartz/quartz_strmif.idl b/dll/directx/quartz/quartz_strmif.idl similarity index 100% rename from reactos/dll/directx/quartz/quartz_strmif.idl rename to dll/directx/quartz/quartz_strmif.idl diff --git a/reactos/dll/directx/quartz/regsvr.c b/dll/directx/quartz/regsvr.c similarity index 100% rename from reactos/dll/directx/quartz/regsvr.c rename to dll/directx/quartz/regsvr.c diff --git a/reactos/dll/directx/quartz/systemclock.c b/dll/directx/quartz/systemclock.c similarity index 100% rename from reactos/dll/directx/quartz/systemclock.c rename to dll/directx/quartz/systemclock.c diff --git a/reactos/dll/directx/quartz/transform.c b/dll/directx/quartz/transform.c similarity index 100% rename from reactos/dll/directx/quartz/transform.c rename to dll/directx/quartz/transform.c diff --git a/reactos/dll/directx/quartz/transform.h b/dll/directx/quartz/transform.h similarity index 100% rename from reactos/dll/directx/quartz/transform.h rename to dll/directx/quartz/transform.h diff --git a/reactos/dll/directx/quartz/version.rc b/dll/directx/quartz/version.rc similarity index 100% rename from reactos/dll/directx/quartz/version.rc rename to dll/directx/quartz/version.rc diff --git a/reactos/dll/directx/quartz/videorenderer.c b/dll/directx/quartz/videorenderer.c similarity index 100% rename from reactos/dll/directx/quartz/videorenderer.c rename to dll/directx/quartz/videorenderer.c diff --git a/reactos/dll/directx/quartz/waveparser.c b/dll/directx/quartz/waveparser.c similarity index 100% rename from reactos/dll/directx/quartz/waveparser.c rename to dll/directx/quartz/waveparser.c diff --git a/reactos/dll/directx/wine/CMakeLists.txt b/dll/directx/wine/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/CMakeLists.txt rename to dll/directx/wine/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3d8/CMakeLists.txt b/dll/directx/wine/d3d8/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3d8/CMakeLists.txt rename to dll/directx/wine/d3d8/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3d8/buffer.c b/dll/directx/wine/d3d8/buffer.c similarity index 100% rename from reactos/dll/directx/wine/d3d8/buffer.c rename to dll/directx/wine/d3d8/buffer.c diff --git a/reactos/dll/directx/wine/d3d8/d3d8.spec b/dll/directx/wine/d3d8/d3d8.spec similarity index 100% rename from reactos/dll/directx/wine/d3d8/d3d8.spec rename to dll/directx/wine/d3d8/d3d8.spec diff --git a/reactos/dll/directx/wine/d3d8/d3d8_main.c b/dll/directx/wine/d3d8/d3d8_main.c similarity index 100% rename from reactos/dll/directx/wine/d3d8/d3d8_main.c rename to dll/directx/wine/d3d8/d3d8_main.c diff --git a/reactos/dll/directx/wine/d3d8/d3d8_private.h b/dll/directx/wine/d3d8/d3d8_private.h similarity index 100% rename from reactos/dll/directx/wine/d3d8/d3d8_private.h rename to dll/directx/wine/d3d8/d3d8_private.h diff --git a/reactos/dll/directx/wine/d3d8/device.c b/dll/directx/wine/d3d8/device.c similarity index 100% rename from reactos/dll/directx/wine/d3d8/device.c rename to dll/directx/wine/d3d8/device.c diff --git a/reactos/dll/directx/wine/d3d8/directx.c b/dll/directx/wine/d3d8/directx.c similarity index 100% rename from reactos/dll/directx/wine/d3d8/directx.c rename to dll/directx/wine/d3d8/directx.c diff --git a/reactos/dll/directx/wine/d3d8/shader.c b/dll/directx/wine/d3d8/shader.c similarity index 100% rename from reactos/dll/directx/wine/d3d8/shader.c rename to dll/directx/wine/d3d8/shader.c diff --git a/reactos/dll/directx/wine/d3d8/surface.c b/dll/directx/wine/d3d8/surface.c similarity index 100% rename from reactos/dll/directx/wine/d3d8/surface.c rename to dll/directx/wine/d3d8/surface.c diff --git a/reactos/dll/directx/wine/d3d8/swapchain.c b/dll/directx/wine/d3d8/swapchain.c similarity index 100% rename from reactos/dll/directx/wine/d3d8/swapchain.c rename to dll/directx/wine/d3d8/swapchain.c diff --git a/reactos/dll/directx/wine/d3d8/texture.c b/dll/directx/wine/d3d8/texture.c similarity index 100% rename from reactos/dll/directx/wine/d3d8/texture.c rename to dll/directx/wine/d3d8/texture.c diff --git a/reactos/dll/directx/wine/d3d8/version.rc b/dll/directx/wine/d3d8/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3d8/version.rc rename to dll/directx/wine/d3d8/version.rc diff --git a/reactos/dll/directx/wine/d3d8/vertexdeclaration.c b/dll/directx/wine/d3d8/vertexdeclaration.c similarity index 100% rename from reactos/dll/directx/wine/d3d8/vertexdeclaration.c rename to dll/directx/wine/d3d8/vertexdeclaration.c diff --git a/reactos/dll/directx/wine/d3d8/volume.c b/dll/directx/wine/d3d8/volume.c similarity index 100% rename from reactos/dll/directx/wine/d3d8/volume.c rename to dll/directx/wine/d3d8/volume.c diff --git a/reactos/dll/directx/wine/d3d9/CMakeLists.txt b/dll/directx/wine/d3d9/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3d9/CMakeLists.txt rename to dll/directx/wine/d3d9/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3d9/buffer.c b/dll/directx/wine/d3d9/buffer.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/buffer.c rename to dll/directx/wine/d3d9/buffer.c diff --git a/reactos/dll/directx/wine/d3d9/d3d9.spec b/dll/directx/wine/d3d9/d3d9.spec similarity index 100% rename from reactos/dll/directx/wine/d3d9/d3d9.spec rename to dll/directx/wine/d3d9/d3d9.spec diff --git a/reactos/dll/directx/wine/d3d9/d3d9_main.c b/dll/directx/wine/d3d9/d3d9_main.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/d3d9_main.c rename to dll/directx/wine/d3d9/d3d9_main.c diff --git a/reactos/dll/directx/wine/d3d9/d3d9_private.h b/dll/directx/wine/d3d9/d3d9_private.h similarity index 100% rename from reactos/dll/directx/wine/d3d9/d3d9_private.h rename to dll/directx/wine/d3d9/d3d9_private.h diff --git a/reactos/dll/directx/wine/d3d9/device.c b/dll/directx/wine/d3d9/device.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/device.c rename to dll/directx/wine/d3d9/device.c diff --git a/reactos/dll/directx/wine/d3d9/directx.c b/dll/directx/wine/d3d9/directx.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/directx.c rename to dll/directx/wine/d3d9/directx.c diff --git a/reactos/dll/directx/wine/d3d9/query.c b/dll/directx/wine/d3d9/query.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/query.c rename to dll/directx/wine/d3d9/query.c diff --git a/reactos/dll/directx/wine/d3d9/shader.c b/dll/directx/wine/d3d9/shader.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/shader.c rename to dll/directx/wine/d3d9/shader.c diff --git a/reactos/dll/directx/wine/d3d9/stateblock.c b/dll/directx/wine/d3d9/stateblock.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/stateblock.c rename to dll/directx/wine/d3d9/stateblock.c diff --git a/reactos/dll/directx/wine/d3d9/surface.c b/dll/directx/wine/d3d9/surface.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/surface.c rename to dll/directx/wine/d3d9/surface.c diff --git a/reactos/dll/directx/wine/d3d9/swapchain.c b/dll/directx/wine/d3d9/swapchain.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/swapchain.c rename to dll/directx/wine/d3d9/swapchain.c diff --git a/reactos/dll/directx/wine/d3d9/texture.c b/dll/directx/wine/d3d9/texture.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/texture.c rename to dll/directx/wine/d3d9/texture.c diff --git a/reactos/dll/directx/wine/d3d9/version.rc b/dll/directx/wine/d3d9/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3d9/version.rc rename to dll/directx/wine/d3d9/version.rc diff --git a/reactos/dll/directx/wine/d3d9/vertexdeclaration.c b/dll/directx/wine/d3d9/vertexdeclaration.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/vertexdeclaration.c rename to dll/directx/wine/d3d9/vertexdeclaration.c diff --git a/reactos/dll/directx/wine/d3d9/volume.c b/dll/directx/wine/d3d9/volume.c similarity index 100% rename from reactos/dll/directx/wine/d3d9/volume.c rename to dll/directx/wine/d3d9/volume.c diff --git a/reactos/dll/directx/wine/d3dx9_24/CMakeLists.txt b/dll/directx/wine/d3dx9_24/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_24/CMakeLists.txt rename to dll/directx/wine/d3dx9_24/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_24/d3dx9_24.spec b/dll/directx/wine/d3dx9_24/d3dx9_24.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_24/d3dx9_24.spec rename to dll/directx/wine/d3dx9_24/d3dx9_24.spec diff --git a/reactos/dll/directx/wine/d3dx9_24/d3dx9_24_main.c b/dll/directx/wine/d3dx9_24/d3dx9_24_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_24/d3dx9_24_main.c rename to dll/directx/wine/d3dx9_24/d3dx9_24_main.c diff --git a/reactos/dll/directx/wine/d3dx9_24/version.rc b/dll/directx/wine/d3dx9_24/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_24/version.rc rename to dll/directx/wine/d3dx9_24/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_25/CMakeLists.txt b/dll/directx/wine/d3dx9_25/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_25/CMakeLists.txt rename to dll/directx/wine/d3dx9_25/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_25/d3dx9_25.spec b/dll/directx/wine/d3dx9_25/d3dx9_25.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_25/d3dx9_25.spec rename to dll/directx/wine/d3dx9_25/d3dx9_25.spec diff --git a/reactos/dll/directx/wine/d3dx9_25/d3dx9_25_main.c b/dll/directx/wine/d3dx9_25/d3dx9_25_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_25/d3dx9_25_main.c rename to dll/directx/wine/d3dx9_25/d3dx9_25_main.c diff --git a/reactos/dll/directx/wine/d3dx9_25/version.rc b/dll/directx/wine/d3dx9_25/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_25/version.rc rename to dll/directx/wine/d3dx9_25/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_26/CMakeLists.txt b/dll/directx/wine/d3dx9_26/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_26/CMakeLists.txt rename to dll/directx/wine/d3dx9_26/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_26/d3dx9_26.spec b/dll/directx/wine/d3dx9_26/d3dx9_26.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_26/d3dx9_26.spec rename to dll/directx/wine/d3dx9_26/d3dx9_26.spec diff --git a/reactos/dll/directx/wine/d3dx9_26/d3dx9_26_main.c b/dll/directx/wine/d3dx9_26/d3dx9_26_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_26/d3dx9_26_main.c rename to dll/directx/wine/d3dx9_26/d3dx9_26_main.c diff --git a/reactos/dll/directx/wine/d3dx9_26/version.rc b/dll/directx/wine/d3dx9_26/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_26/version.rc rename to dll/directx/wine/d3dx9_26/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_27/CMakeLists.txt b/dll/directx/wine/d3dx9_27/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_27/CMakeLists.txt rename to dll/directx/wine/d3dx9_27/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_27/d3dx9_27.spec b/dll/directx/wine/d3dx9_27/d3dx9_27.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_27/d3dx9_27.spec rename to dll/directx/wine/d3dx9_27/d3dx9_27.spec diff --git a/reactos/dll/directx/wine/d3dx9_27/d3dx9_27_main.c b/dll/directx/wine/d3dx9_27/d3dx9_27_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_27/d3dx9_27_main.c rename to dll/directx/wine/d3dx9_27/d3dx9_27_main.c diff --git a/reactos/dll/directx/wine/d3dx9_27/version.rc b/dll/directx/wine/d3dx9_27/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_27/version.rc rename to dll/directx/wine/d3dx9_27/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_28/CMakeLists.txt b/dll/directx/wine/d3dx9_28/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_28/CMakeLists.txt rename to dll/directx/wine/d3dx9_28/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_28/d3dx9_28.spec b/dll/directx/wine/d3dx9_28/d3dx9_28.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_28/d3dx9_28.spec rename to dll/directx/wine/d3dx9_28/d3dx9_28.spec diff --git a/reactos/dll/directx/wine/d3dx9_28/d3dx9_28_main.c b/dll/directx/wine/d3dx9_28/d3dx9_28_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_28/d3dx9_28_main.c rename to dll/directx/wine/d3dx9_28/d3dx9_28_main.c diff --git a/reactos/dll/directx/wine/d3dx9_28/version.rc b/dll/directx/wine/d3dx9_28/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_28/version.rc rename to dll/directx/wine/d3dx9_28/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_29/CMakeLists.txt b/dll/directx/wine/d3dx9_29/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_29/CMakeLists.txt rename to dll/directx/wine/d3dx9_29/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_29/d3dx9_29.spec b/dll/directx/wine/d3dx9_29/d3dx9_29.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_29/d3dx9_29.spec rename to dll/directx/wine/d3dx9_29/d3dx9_29.spec diff --git a/reactos/dll/directx/wine/d3dx9_29/d3dx9_29_main.c b/dll/directx/wine/d3dx9_29/d3dx9_29_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_29/d3dx9_29_main.c rename to dll/directx/wine/d3dx9_29/d3dx9_29_main.c diff --git a/reactos/dll/directx/wine/d3dx9_29/version.rc b/dll/directx/wine/d3dx9_29/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_29/version.rc rename to dll/directx/wine/d3dx9_29/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_30/CMakeLists.txt b/dll/directx/wine/d3dx9_30/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_30/CMakeLists.txt rename to dll/directx/wine/d3dx9_30/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_30/d3dx9_30.spec b/dll/directx/wine/d3dx9_30/d3dx9_30.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_30/d3dx9_30.spec rename to dll/directx/wine/d3dx9_30/d3dx9_30.spec diff --git a/reactos/dll/directx/wine/d3dx9_30/d3dx9_30_main.c b/dll/directx/wine/d3dx9_30/d3dx9_30_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_30/d3dx9_30_main.c rename to dll/directx/wine/d3dx9_30/d3dx9_30_main.c diff --git a/reactos/dll/directx/wine/d3dx9_30/version.rc b/dll/directx/wine/d3dx9_30/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_30/version.rc rename to dll/directx/wine/d3dx9_30/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_31/CMakeLists.txt b/dll/directx/wine/d3dx9_31/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_31/CMakeLists.txt rename to dll/directx/wine/d3dx9_31/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_31/d3dx9_31.spec b/dll/directx/wine/d3dx9_31/d3dx9_31.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_31/d3dx9_31.spec rename to dll/directx/wine/d3dx9_31/d3dx9_31.spec diff --git a/reactos/dll/directx/wine/d3dx9_31/d3dx9_31_main.c b/dll/directx/wine/d3dx9_31/d3dx9_31_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_31/d3dx9_31_main.c rename to dll/directx/wine/d3dx9_31/d3dx9_31_main.c diff --git a/reactos/dll/directx/wine/d3dx9_31/version.rc b/dll/directx/wine/d3dx9_31/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_31/version.rc rename to dll/directx/wine/d3dx9_31/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_32/CMakeLists.txt b/dll/directx/wine/d3dx9_32/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_32/CMakeLists.txt rename to dll/directx/wine/d3dx9_32/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_32/d3dx9_32.spec b/dll/directx/wine/d3dx9_32/d3dx9_32.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_32/d3dx9_32.spec rename to dll/directx/wine/d3dx9_32/d3dx9_32.spec diff --git a/reactos/dll/directx/wine/d3dx9_32/d3dx9_32_main.c b/dll/directx/wine/d3dx9_32/d3dx9_32_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_32/d3dx9_32_main.c rename to dll/directx/wine/d3dx9_32/d3dx9_32_main.c diff --git a/reactos/dll/directx/wine/d3dx9_32/version.rc b/dll/directx/wine/d3dx9_32/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_32/version.rc rename to dll/directx/wine/d3dx9_32/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_33/CMakeLists.txt b/dll/directx/wine/d3dx9_33/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_33/CMakeLists.txt rename to dll/directx/wine/d3dx9_33/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_33/d3dx9_33.spec b/dll/directx/wine/d3dx9_33/d3dx9_33.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_33/d3dx9_33.spec rename to dll/directx/wine/d3dx9_33/d3dx9_33.spec diff --git a/reactos/dll/directx/wine/d3dx9_33/d3dx9_33_main.c b/dll/directx/wine/d3dx9_33/d3dx9_33_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_33/d3dx9_33_main.c rename to dll/directx/wine/d3dx9_33/d3dx9_33_main.c diff --git a/reactos/dll/directx/wine/d3dx9_33/version.rc b/dll/directx/wine/d3dx9_33/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_33/version.rc rename to dll/directx/wine/d3dx9_33/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_34/CMakeLists.txt b/dll/directx/wine/d3dx9_34/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_34/CMakeLists.txt rename to dll/directx/wine/d3dx9_34/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_34/d3dx9_34.spec b/dll/directx/wine/d3dx9_34/d3dx9_34.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_34/d3dx9_34.spec rename to dll/directx/wine/d3dx9_34/d3dx9_34.spec diff --git a/reactos/dll/directx/wine/d3dx9_34/d3dx9_34_main.c b/dll/directx/wine/d3dx9_34/d3dx9_34_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_34/d3dx9_34_main.c rename to dll/directx/wine/d3dx9_34/d3dx9_34_main.c diff --git a/reactos/dll/directx/wine/d3dx9_34/version.rc b/dll/directx/wine/d3dx9_34/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_34/version.rc rename to dll/directx/wine/d3dx9_34/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_35/CMakeLists.txt b/dll/directx/wine/d3dx9_35/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_35/CMakeLists.txt rename to dll/directx/wine/d3dx9_35/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_35/d3dx9_35.spec b/dll/directx/wine/d3dx9_35/d3dx9_35.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_35/d3dx9_35.spec rename to dll/directx/wine/d3dx9_35/d3dx9_35.spec diff --git a/reactos/dll/directx/wine/d3dx9_35/d3dx9_35_main.c b/dll/directx/wine/d3dx9_35/d3dx9_35_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_35/d3dx9_35_main.c rename to dll/directx/wine/d3dx9_35/d3dx9_35_main.c diff --git a/reactos/dll/directx/wine/d3dx9_35/version.rc b/dll/directx/wine/d3dx9_35/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_35/version.rc rename to dll/directx/wine/d3dx9_35/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_36/CMakeLists.txt b/dll/directx/wine/d3dx9_36/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/CMakeLists.txt rename to dll/directx/wine/d3dx9_36/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_36/core.c b/dll/directx/wine/d3dx9_36/core.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/core.c rename to dll/directx/wine/d3dx9_36/core.c diff --git a/reactos/dll/directx/wine/d3dx9_36/d3dx9_36.spec b/dll/directx/wine/d3dx9_36/d3dx9_36.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/d3dx9_36.spec rename to dll/directx/wine/d3dx9_36/d3dx9_36.spec diff --git a/reactos/dll/directx/wine/d3dx9_36/d3dx9_36_main.c b/dll/directx/wine/d3dx9_36/d3dx9_36_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/d3dx9_36_main.c rename to dll/directx/wine/d3dx9_36/d3dx9_36_main.c diff --git a/reactos/dll/directx/wine/d3dx9_36/d3dx9_36_private.h b/dll/directx/wine/d3dx9_36/d3dx9_36_private.h similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/d3dx9_36_private.h rename to dll/directx/wine/d3dx9_36/d3dx9_36_private.h diff --git a/reactos/dll/directx/wine/d3dx9_36/font.c b/dll/directx/wine/d3dx9_36/font.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/font.c rename to dll/directx/wine/d3dx9_36/font.c diff --git a/reactos/dll/directx/wine/d3dx9_36/math.c b/dll/directx/wine/d3dx9_36/math.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/math.c rename to dll/directx/wine/d3dx9_36/math.c diff --git a/reactos/dll/directx/wine/d3dx9_36/mesh.c b/dll/directx/wine/d3dx9_36/mesh.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/mesh.c rename to dll/directx/wine/d3dx9_36/mesh.c diff --git a/reactos/dll/directx/wine/d3dx9_36/shader.c b/dll/directx/wine/d3dx9_36/shader.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/shader.c rename to dll/directx/wine/d3dx9_36/shader.c diff --git a/reactos/dll/directx/wine/d3dx9_36/sprite.c b/dll/directx/wine/d3dx9_36/sprite.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/sprite.c rename to dll/directx/wine/d3dx9_36/sprite.c diff --git a/reactos/dll/directx/wine/d3dx9_36/surface.c b/dll/directx/wine/d3dx9_36/surface.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/surface.c rename to dll/directx/wine/d3dx9_36/surface.c diff --git a/reactos/dll/directx/wine/d3dx9_36/texture.c b/dll/directx/wine/d3dx9_36/texture.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/texture.c rename to dll/directx/wine/d3dx9_36/texture.c diff --git a/reactos/dll/directx/wine/d3dx9_36/util.c b/dll/directx/wine/d3dx9_36/util.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/util.c rename to dll/directx/wine/d3dx9_36/util.c diff --git a/reactos/dll/directx/wine/d3dx9_36/version.rc b/dll/directx/wine/d3dx9_36/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_36/version.rc rename to dll/directx/wine/d3dx9_36/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_37/CMakeLists.txt b/dll/directx/wine/d3dx9_37/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_37/CMakeLists.txt rename to dll/directx/wine/d3dx9_37/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_37/d3dx9_37.spec b/dll/directx/wine/d3dx9_37/d3dx9_37.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_37/d3dx9_37.spec rename to dll/directx/wine/d3dx9_37/d3dx9_37.spec diff --git a/reactos/dll/directx/wine/d3dx9_37/d3dx9_37_main.c b/dll/directx/wine/d3dx9_37/d3dx9_37_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_37/d3dx9_37_main.c rename to dll/directx/wine/d3dx9_37/d3dx9_37_main.c diff --git a/reactos/dll/directx/wine/d3dx9_37/version.rc b/dll/directx/wine/d3dx9_37/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_37/version.rc rename to dll/directx/wine/d3dx9_37/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_38/CMakeLists.txt b/dll/directx/wine/d3dx9_38/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_38/CMakeLists.txt rename to dll/directx/wine/d3dx9_38/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_38/d3dx9_38.spec b/dll/directx/wine/d3dx9_38/d3dx9_38.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_38/d3dx9_38.spec rename to dll/directx/wine/d3dx9_38/d3dx9_38.spec diff --git a/reactos/dll/directx/wine/d3dx9_38/d3dx9_38_main.c b/dll/directx/wine/d3dx9_38/d3dx9_38_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_38/d3dx9_38_main.c rename to dll/directx/wine/d3dx9_38/d3dx9_38_main.c diff --git a/reactos/dll/directx/wine/d3dx9_38/version.rc b/dll/directx/wine/d3dx9_38/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_38/version.rc rename to dll/directx/wine/d3dx9_38/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_39/CMakeLists.txt b/dll/directx/wine/d3dx9_39/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_39/CMakeLists.txt rename to dll/directx/wine/d3dx9_39/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_39/d3dx9_39.spec b/dll/directx/wine/d3dx9_39/d3dx9_39.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_39/d3dx9_39.spec rename to dll/directx/wine/d3dx9_39/d3dx9_39.spec diff --git a/reactos/dll/directx/wine/d3dx9_39/d3dx9_39_main.c b/dll/directx/wine/d3dx9_39/d3dx9_39_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_39/d3dx9_39_main.c rename to dll/directx/wine/d3dx9_39/d3dx9_39_main.c diff --git a/reactos/dll/directx/wine/d3dx9_39/version.rc b/dll/directx/wine/d3dx9_39/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_39/version.rc rename to dll/directx/wine/d3dx9_39/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_40/CMakeLists.txt b/dll/directx/wine/d3dx9_40/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_40/CMakeLists.txt rename to dll/directx/wine/d3dx9_40/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_40/d3dx9_40.spec b/dll/directx/wine/d3dx9_40/d3dx9_40.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_40/d3dx9_40.spec rename to dll/directx/wine/d3dx9_40/d3dx9_40.spec diff --git a/reactos/dll/directx/wine/d3dx9_40/d3dx9_40_main.c b/dll/directx/wine/d3dx9_40/d3dx9_40_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_40/d3dx9_40_main.c rename to dll/directx/wine/d3dx9_40/d3dx9_40_main.c diff --git a/reactos/dll/directx/wine/d3dx9_40/version.rc b/dll/directx/wine/d3dx9_40/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_40/version.rc rename to dll/directx/wine/d3dx9_40/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_41/CMakeLists.txt b/dll/directx/wine/d3dx9_41/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_41/CMakeLists.txt rename to dll/directx/wine/d3dx9_41/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_41/d3dx9_41.spec b/dll/directx/wine/d3dx9_41/d3dx9_41.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_41/d3dx9_41.spec rename to dll/directx/wine/d3dx9_41/d3dx9_41.spec diff --git a/reactos/dll/directx/wine/d3dx9_41/d3dx9_41_main.c b/dll/directx/wine/d3dx9_41/d3dx9_41_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_41/d3dx9_41_main.c rename to dll/directx/wine/d3dx9_41/d3dx9_41_main.c diff --git a/reactos/dll/directx/wine/d3dx9_41/version.rc b/dll/directx/wine/d3dx9_41/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_41/version.rc rename to dll/directx/wine/d3dx9_41/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_42/CMakeLists.txt b/dll/directx/wine/d3dx9_42/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/d3dx9_42/CMakeLists.txt rename to dll/directx/wine/d3dx9_42/CMakeLists.txt diff --git a/reactos/dll/directx/wine/d3dx9_42/d3dx9_42.spec b/dll/directx/wine/d3dx9_42/d3dx9_42.spec similarity index 100% rename from reactos/dll/directx/wine/d3dx9_42/d3dx9_42.spec rename to dll/directx/wine/d3dx9_42/d3dx9_42.spec diff --git a/reactos/dll/directx/wine/d3dx9_42/d3dx9_42_main.c b/dll/directx/wine/d3dx9_42/d3dx9_42_main.c similarity index 100% rename from reactos/dll/directx/wine/d3dx9_42/d3dx9_42_main.c rename to dll/directx/wine/d3dx9_42/d3dx9_42_main.c diff --git a/reactos/dll/directx/wine/d3dx9_42/version.rc b/dll/directx/wine/d3dx9_42/version.rc similarity index 100% rename from reactos/dll/directx/wine/d3dx9_42/version.rc rename to dll/directx/wine/d3dx9_42/version.rc diff --git a/reactos/dll/directx/wine/ddraw/CMakeLists.txt b/dll/directx/wine/ddraw/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/ddraw/CMakeLists.txt rename to dll/directx/wine/ddraw/CMakeLists.txt diff --git a/reactos/dll/directx/wine/ddraw/clipper.c b/dll/directx/wine/ddraw/clipper.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/clipper.c rename to dll/directx/wine/ddraw/clipper.c diff --git a/reactos/dll/directx/wine/ddraw/ddraw.c b/dll/directx/wine/ddraw/ddraw.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/ddraw.c rename to dll/directx/wine/ddraw/ddraw.c diff --git a/reactos/dll/directx/wine/ddraw/ddraw.rc b/dll/directx/wine/ddraw/ddraw.rc similarity index 100% rename from reactos/dll/directx/wine/ddraw/ddraw.rc rename to dll/directx/wine/ddraw/ddraw.rc diff --git a/reactos/dll/directx/wine/ddraw/ddraw.rgs b/dll/directx/wine/ddraw/ddraw.rgs similarity index 100% rename from reactos/dll/directx/wine/ddraw/ddraw.rgs rename to dll/directx/wine/ddraw/ddraw.rgs diff --git a/reactos/dll/directx/wine/ddraw/ddraw.spec b/dll/directx/wine/ddraw/ddraw.spec similarity index 100% rename from reactos/dll/directx/wine/ddraw/ddraw.spec rename to dll/directx/wine/ddraw/ddraw.spec diff --git a/reactos/dll/directx/wine/ddraw/ddraw_classes.idl b/dll/directx/wine/ddraw/ddraw_classes.idl similarity index 100% rename from reactos/dll/directx/wine/ddraw/ddraw_classes.idl rename to dll/directx/wine/ddraw/ddraw_classes.idl diff --git a/reactos/dll/directx/wine/ddraw/ddraw_private.h b/dll/directx/wine/ddraw/ddraw_private.h similarity index 100% rename from reactos/dll/directx/wine/ddraw/ddraw_private.h rename to dll/directx/wine/ddraw/ddraw_private.h diff --git a/reactos/dll/directx/wine/ddraw/device.c b/dll/directx/wine/ddraw/device.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/device.c rename to dll/directx/wine/ddraw/device.c diff --git a/reactos/dll/directx/wine/ddraw/executebuffer.c b/dll/directx/wine/ddraw/executebuffer.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/executebuffer.c rename to dll/directx/wine/ddraw/executebuffer.c diff --git a/reactos/dll/directx/wine/ddraw/legacy.h b/dll/directx/wine/ddraw/legacy.h similarity index 100% rename from reactos/dll/directx/wine/ddraw/legacy.h rename to dll/directx/wine/ddraw/legacy.h diff --git a/reactos/dll/directx/wine/ddraw/light.c b/dll/directx/wine/ddraw/light.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/light.c rename to dll/directx/wine/ddraw/light.c diff --git a/reactos/dll/directx/wine/ddraw/main.c b/dll/directx/wine/ddraw/main.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/main.c rename to dll/directx/wine/ddraw/main.c diff --git a/reactos/dll/directx/wine/ddraw/material.c b/dll/directx/wine/ddraw/material.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/material.c rename to dll/directx/wine/ddraw/material.c diff --git a/reactos/dll/directx/wine/ddraw/palette.c b/dll/directx/wine/ddraw/palette.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/palette.c rename to dll/directx/wine/ddraw/palette.c diff --git a/reactos/dll/directx/wine/ddraw/stubs.c b/dll/directx/wine/ddraw/stubs.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/stubs.c rename to dll/directx/wine/ddraw/stubs.c diff --git a/reactos/dll/directx/wine/ddraw/surface.c b/dll/directx/wine/ddraw/surface.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/surface.c rename to dll/directx/wine/ddraw/surface.c diff --git a/reactos/dll/directx/wine/ddraw/utils.c b/dll/directx/wine/ddraw/utils.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/utils.c rename to dll/directx/wine/ddraw/utils.c diff --git a/reactos/dll/directx/wine/ddraw/version.rc b/dll/directx/wine/ddraw/version.rc similarity index 100% rename from reactos/dll/directx/wine/ddraw/version.rc rename to dll/directx/wine/ddraw/version.rc diff --git a/reactos/dll/directx/wine/ddraw/vertexbuffer.c b/dll/directx/wine/ddraw/vertexbuffer.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/vertexbuffer.c rename to dll/directx/wine/ddraw/vertexbuffer.c diff --git a/reactos/dll/directx/wine/ddraw/viewport.c b/dll/directx/wine/ddraw/viewport.c similarity index 100% rename from reactos/dll/directx/wine/ddraw/viewport.c rename to dll/directx/wine/ddraw/viewport.c diff --git a/reactos/dll/directx/wine/readme.txt b/dll/directx/wine/readme.txt similarity index 100% rename from reactos/dll/directx/wine/readme.txt rename to dll/directx/wine/readme.txt diff --git a/reactos/dll/directx/wine/wined3d/CMakeLists.txt b/dll/directx/wine/wined3d/CMakeLists.txt similarity index 100% rename from reactos/dll/directx/wine/wined3d/CMakeLists.txt rename to dll/directx/wine/wined3d/CMakeLists.txt diff --git a/reactos/dll/directx/wine/wined3d/arb_program_shader.c b/dll/directx/wine/wined3d/arb_program_shader.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/arb_program_shader.c rename to dll/directx/wine/wined3d/arb_program_shader.c diff --git a/reactos/dll/directx/wine/wined3d/ati_fragment_shader.c b/dll/directx/wine/wined3d/ati_fragment_shader.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/ati_fragment_shader.c rename to dll/directx/wine/wined3d/ati_fragment_shader.c diff --git a/reactos/dll/directx/wine/wined3d/buffer.c b/dll/directx/wine/wined3d/buffer.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/buffer.c rename to dll/directx/wine/wined3d/buffer.c diff --git a/reactos/dll/directx/wine/wined3d/context.c b/dll/directx/wine/wined3d/context.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/context.c rename to dll/directx/wine/wined3d/context.c diff --git a/reactos/dll/directx/wine/wined3d/device.c b/dll/directx/wine/wined3d/device.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/device.c rename to dll/directx/wine/wined3d/device.c diff --git a/reactos/dll/directx/wine/wined3d/directx.c b/dll/directx/wine/wined3d/directx.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/directx.c rename to dll/directx/wine/wined3d/directx.c diff --git a/reactos/dll/directx/wine/wined3d/drawprim.c b/dll/directx/wine/wined3d/drawprim.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/drawprim.c rename to dll/directx/wine/wined3d/drawprim.c diff --git a/reactos/dll/directx/wine/wined3d/gl_compat.c b/dll/directx/wine/wined3d/gl_compat.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/gl_compat.c rename to dll/directx/wine/wined3d/gl_compat.c diff --git a/reactos/dll/directx/wine/wined3d/glsl_shader.c b/dll/directx/wine/wined3d/glsl_shader.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/glsl_shader.c rename to dll/directx/wine/wined3d/glsl_shader.c diff --git a/reactos/dll/directx/wine/wined3d/nvidia_texture_shader.c b/dll/directx/wine/wined3d/nvidia_texture_shader.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/nvidia_texture_shader.c rename to dll/directx/wine/wined3d/nvidia_texture_shader.c diff --git a/reactos/dll/directx/wine/wined3d/palette.c b/dll/directx/wine/wined3d/palette.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/palette.c rename to dll/directx/wine/wined3d/palette.c diff --git a/reactos/dll/directx/wine/wined3d/query.c b/dll/directx/wine/wined3d/query.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/query.c rename to dll/directx/wine/wined3d/query.c diff --git a/reactos/dll/directx/wine/wined3d/resource.c b/dll/directx/wine/wined3d/resource.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/resource.c rename to dll/directx/wine/wined3d/resource.c diff --git a/reactos/dll/directx/wine/wined3d/roshacks.txt b/dll/directx/wine/wined3d/roshacks.txt similarity index 100% rename from reactos/dll/directx/wine/wined3d/roshacks.txt rename to dll/directx/wine/wined3d/roshacks.txt diff --git a/reactos/dll/directx/wine/wined3d/shader.c b/dll/directx/wine/wined3d/shader.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/shader.c rename to dll/directx/wine/wined3d/shader.c diff --git a/reactos/dll/directx/wine/wined3d/shader_sm1.c b/dll/directx/wine/wined3d/shader_sm1.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/shader_sm1.c rename to dll/directx/wine/wined3d/shader_sm1.c diff --git a/reactos/dll/directx/wine/wined3d/shader_sm4.c b/dll/directx/wine/wined3d/shader_sm4.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/shader_sm4.c rename to dll/directx/wine/wined3d/shader_sm4.c diff --git a/reactos/dll/directx/wine/wined3d/state.c b/dll/directx/wine/wined3d/state.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/state.c rename to dll/directx/wine/wined3d/state.c diff --git a/reactos/dll/directx/wine/wined3d/stateblock.c b/dll/directx/wine/wined3d/stateblock.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/stateblock.c rename to dll/directx/wine/wined3d/stateblock.c diff --git a/reactos/dll/directx/wine/wined3d/surface.c b/dll/directx/wine/wined3d/surface.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/surface.c rename to dll/directx/wine/wined3d/surface.c diff --git a/reactos/dll/directx/wine/wined3d/swapchain.c b/dll/directx/wine/wined3d/swapchain.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/swapchain.c rename to dll/directx/wine/wined3d/swapchain.c diff --git a/reactos/dll/directx/wine/wined3d/texture.c b/dll/directx/wine/wined3d/texture.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/texture.c rename to dll/directx/wine/wined3d/texture.c diff --git a/reactos/dll/directx/wine/wined3d/utils.c b/dll/directx/wine/wined3d/utils.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/utils.c rename to dll/directx/wine/wined3d/utils.c diff --git a/reactos/dll/directx/wine/wined3d/version.rc b/dll/directx/wine/wined3d/version.rc similarity index 100% rename from reactos/dll/directx/wine/wined3d/version.rc rename to dll/directx/wine/wined3d/version.rc diff --git a/reactos/dll/directx/wine/wined3d/vertexdeclaration.c b/dll/directx/wine/wined3d/vertexdeclaration.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/vertexdeclaration.c rename to dll/directx/wine/wined3d/vertexdeclaration.c diff --git a/reactos/dll/directx/wine/wined3d/view.c b/dll/directx/wine/wined3d/view.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/view.c rename to dll/directx/wine/wined3d/view.c diff --git a/reactos/dll/directx/wine/wined3d/volume.c b/dll/directx/wine/wined3d/volume.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/volume.c rename to dll/directx/wine/wined3d/volume.c diff --git a/reactos/dll/directx/wine/wined3d/wined3d.spec b/dll/directx/wine/wined3d/wined3d.spec similarity index 100% rename from reactos/dll/directx/wine/wined3d/wined3d.spec rename to dll/directx/wine/wined3d/wined3d.spec diff --git a/reactos/dll/directx/wine/wined3d/wined3d_gl.h b/dll/directx/wine/wined3d/wined3d_gl.h similarity index 100% rename from reactos/dll/directx/wine/wined3d/wined3d_gl.h rename to dll/directx/wine/wined3d/wined3d_gl.h diff --git a/reactos/dll/directx/wine/wined3d/wined3d_main.c b/dll/directx/wine/wined3d/wined3d_main.c similarity index 100% rename from reactos/dll/directx/wine/wined3d/wined3d_main.c rename to dll/directx/wine/wined3d/wined3d_main.c diff --git a/reactos/dll/directx/wine/wined3d/wined3d_private.h b/dll/directx/wine/wined3d/wined3d_private.h similarity index 100% rename from reactos/dll/directx/wine/wined3d/wined3d_private.h rename to dll/directx/wine/wined3d/wined3d_private.h diff --git a/reactos/dll/keyboard/CMakeLists.txt b/dll/keyboard/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/CMakeLists.txt rename to dll/keyboard/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbda1/CMakeLists.txt b/dll/keyboard/kbda1/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbda1/CMakeLists.txt rename to dll/keyboard/kbda1/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbda1/kbda1.c b/dll/keyboard/kbda1/kbda1.c similarity index 100% rename from reactos/dll/keyboard/kbda1/kbda1.c rename to dll/keyboard/kbda1/kbda1.c diff --git a/reactos/dll/keyboard/kbda1/kbda1.rc b/dll/keyboard/kbda1/kbda1.rc similarity index 100% rename from reactos/dll/keyboard/kbda1/kbda1.rc rename to dll/keyboard/kbda1/kbda1.rc diff --git a/reactos/dll/keyboard/kbda1/kbda1.spec b/dll/keyboard/kbda1/kbda1.spec similarity index 100% rename from reactos/dll/keyboard/kbda1/kbda1.spec rename to dll/keyboard/kbda1/kbda1.spec diff --git a/reactos/dll/keyboard/kbda2/CMakeLists.txt b/dll/keyboard/kbda2/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbda2/CMakeLists.txt rename to dll/keyboard/kbda2/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbda2/kbda2.c b/dll/keyboard/kbda2/kbda2.c similarity index 100% rename from reactos/dll/keyboard/kbda2/kbda2.c rename to dll/keyboard/kbda2/kbda2.c diff --git a/reactos/dll/keyboard/kbda2/kbda2.rc b/dll/keyboard/kbda2/kbda2.rc similarity index 100% rename from reactos/dll/keyboard/kbda2/kbda2.rc rename to dll/keyboard/kbda2/kbda2.rc diff --git a/reactos/dll/keyboard/kbda2/kbda2.spec b/dll/keyboard/kbda2/kbda2.spec similarity index 100% rename from reactos/dll/keyboard/kbda2/kbda2.spec rename to dll/keyboard/kbda2/kbda2.spec diff --git a/reactos/dll/keyboard/kbda3/CMakeLists.txt b/dll/keyboard/kbda3/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbda3/CMakeLists.txt rename to dll/keyboard/kbda3/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbda3/kbda3.c b/dll/keyboard/kbda3/kbda3.c similarity index 100% rename from reactos/dll/keyboard/kbda3/kbda3.c rename to dll/keyboard/kbda3/kbda3.c diff --git a/reactos/dll/keyboard/kbda3/kbda3.rc b/dll/keyboard/kbda3/kbda3.rc similarity index 100% rename from reactos/dll/keyboard/kbda3/kbda3.rc rename to dll/keyboard/kbda3/kbda3.rc diff --git a/reactos/dll/keyboard/kbda3/kbda3.spec b/dll/keyboard/kbda3/kbda3.spec similarity index 100% rename from reactos/dll/keyboard/kbda3/kbda3.spec rename to dll/keyboard/kbda3/kbda3.spec diff --git a/reactos/dll/keyboard/kbdal/CMakeLists.txt b/dll/keyboard/kbdal/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdal/CMakeLists.txt rename to dll/keyboard/kbdal/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdal/kbdal.c b/dll/keyboard/kbdal/kbdal.c similarity index 100% rename from reactos/dll/keyboard/kbdal/kbdal.c rename to dll/keyboard/kbdal/kbdal.c diff --git a/reactos/dll/keyboard/kbdal/kbdal.rc b/dll/keyboard/kbdal/kbdal.rc similarity index 100% rename from reactos/dll/keyboard/kbdal/kbdal.rc rename to dll/keyboard/kbdal/kbdal.rc diff --git a/reactos/dll/keyboard/kbdal/kbdal.spec b/dll/keyboard/kbdal/kbdal.spec similarity index 100% rename from reactos/dll/keyboard/kbdal/kbdal.spec rename to dll/keyboard/kbdal/kbdal.spec diff --git a/reactos/dll/keyboard/kbdarme/CMakeLists.txt b/dll/keyboard/kbdarme/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdarme/CMakeLists.txt rename to dll/keyboard/kbdarme/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdarme/kbdarme.c b/dll/keyboard/kbdarme/kbdarme.c similarity index 100% rename from reactos/dll/keyboard/kbdarme/kbdarme.c rename to dll/keyboard/kbdarme/kbdarme.c diff --git a/reactos/dll/keyboard/kbdarme/kbdarme.rc b/dll/keyboard/kbdarme/kbdarme.rc similarity index 100% rename from reactos/dll/keyboard/kbdarme/kbdarme.rc rename to dll/keyboard/kbdarme/kbdarme.rc diff --git a/reactos/dll/keyboard/kbdarme/kbdarme.spec b/dll/keyboard/kbdarme/kbdarme.spec similarity index 100% rename from reactos/dll/keyboard/kbdarme/kbdarme.spec rename to dll/keyboard/kbdarme/kbdarme.spec diff --git a/reactos/dll/keyboard/kbdarmw/CMakeLists.txt b/dll/keyboard/kbdarmw/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdarmw/CMakeLists.txt rename to dll/keyboard/kbdarmw/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdarmw/kbdarmw.c b/dll/keyboard/kbdarmw/kbdarmw.c similarity index 100% rename from reactos/dll/keyboard/kbdarmw/kbdarmw.c rename to dll/keyboard/kbdarmw/kbdarmw.c diff --git a/reactos/dll/keyboard/kbdarmw/kbdarmw.rc b/dll/keyboard/kbdarmw/kbdarmw.rc similarity index 100% rename from reactos/dll/keyboard/kbdarmw/kbdarmw.rc rename to dll/keyboard/kbdarmw/kbdarmw.rc diff --git a/reactos/dll/keyboard/kbdarmw/kbdarmw.spec b/dll/keyboard/kbdarmw/kbdarmw.spec similarity index 100% rename from reactos/dll/keyboard/kbdarmw/kbdarmw.spec rename to dll/keyboard/kbdarmw/kbdarmw.spec diff --git a/reactos/dll/keyboard/kbdaze/CMakeLists.txt b/dll/keyboard/kbdaze/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdaze/CMakeLists.txt rename to dll/keyboard/kbdaze/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdaze/kbdaze.c b/dll/keyboard/kbdaze/kbdaze.c similarity index 100% rename from reactos/dll/keyboard/kbdaze/kbdaze.c rename to dll/keyboard/kbdaze/kbdaze.c diff --git a/reactos/dll/keyboard/kbdaze/kbdaze.rc b/dll/keyboard/kbdaze/kbdaze.rc similarity index 100% rename from reactos/dll/keyboard/kbdaze/kbdaze.rc rename to dll/keyboard/kbdaze/kbdaze.rc diff --git a/reactos/dll/keyboard/kbdaze/kbdaze.spec b/dll/keyboard/kbdaze/kbdaze.spec similarity index 100% rename from reactos/dll/keyboard/kbdaze/kbdaze.spec rename to dll/keyboard/kbdaze/kbdaze.spec diff --git a/reactos/dll/keyboard/kbdazel/CMakeLists.txt b/dll/keyboard/kbdazel/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdazel/CMakeLists.txt rename to dll/keyboard/kbdazel/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdazel/kbdazel.c b/dll/keyboard/kbdazel/kbdazel.c similarity index 100% rename from reactos/dll/keyboard/kbdazel/kbdazel.c rename to dll/keyboard/kbdazel/kbdazel.c diff --git a/reactos/dll/keyboard/kbdazel/kbdazel.rc b/dll/keyboard/kbdazel/kbdazel.rc similarity index 100% rename from reactos/dll/keyboard/kbdazel/kbdazel.rc rename to dll/keyboard/kbdazel/kbdazel.rc diff --git a/reactos/dll/keyboard/kbdazel/kbdazel.spec b/dll/keyboard/kbdazel/kbdazel.spec similarity index 100% rename from reactos/dll/keyboard/kbdazel/kbdazel.spec rename to dll/keyboard/kbdazel/kbdazel.spec diff --git a/reactos/dll/keyboard/kbdbe/CMakeLists.txt b/dll/keyboard/kbdbe/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdbe/CMakeLists.txt rename to dll/keyboard/kbdbe/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdbe/kbdbe.c b/dll/keyboard/kbdbe/kbdbe.c similarity index 100% rename from reactos/dll/keyboard/kbdbe/kbdbe.c rename to dll/keyboard/kbdbe/kbdbe.c diff --git a/reactos/dll/keyboard/kbdbe/kbdbe.rc b/dll/keyboard/kbdbe/kbdbe.rc similarity index 100% rename from reactos/dll/keyboard/kbdbe/kbdbe.rc rename to dll/keyboard/kbdbe/kbdbe.rc diff --git a/reactos/dll/keyboard/kbdbe/kbdbe.spec b/dll/keyboard/kbdbe/kbdbe.spec similarity index 100% rename from reactos/dll/keyboard/kbdbe/kbdbe.spec rename to dll/keyboard/kbdbe/kbdbe.spec diff --git a/reactos/dll/keyboard/kbdbga/CMakeLists.txt b/dll/keyboard/kbdbga/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdbga/CMakeLists.txt rename to dll/keyboard/kbdbga/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdbga/kbdbga.c b/dll/keyboard/kbdbga/kbdbga.c similarity index 100% rename from reactos/dll/keyboard/kbdbga/kbdbga.c rename to dll/keyboard/kbdbga/kbdbga.c diff --git a/reactos/dll/keyboard/kbdbga/kbdbga.rc b/dll/keyboard/kbdbga/kbdbga.rc similarity index 100% rename from reactos/dll/keyboard/kbdbga/kbdbga.rc rename to dll/keyboard/kbdbga/kbdbga.rc diff --git a/reactos/dll/keyboard/kbdbga/kbdbga.spec b/dll/keyboard/kbdbga/kbdbga.spec similarity index 100% rename from reactos/dll/keyboard/kbdbga/kbdbga.spec rename to dll/keyboard/kbdbga/kbdbga.spec diff --git a/reactos/dll/keyboard/kbdbgm/CMakeLists.txt b/dll/keyboard/kbdbgm/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdbgm/CMakeLists.txt rename to dll/keyboard/kbdbgm/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdbgm/kbdbgm.c b/dll/keyboard/kbdbgm/kbdbgm.c similarity index 100% rename from reactos/dll/keyboard/kbdbgm/kbdbgm.c rename to dll/keyboard/kbdbgm/kbdbgm.c diff --git a/reactos/dll/keyboard/kbdbgm/kbdbgm.rc b/dll/keyboard/kbdbgm/kbdbgm.rc similarity index 100% rename from reactos/dll/keyboard/kbdbgm/kbdbgm.rc rename to dll/keyboard/kbdbgm/kbdbgm.rc diff --git a/reactos/dll/keyboard/kbdbgm/kbdbgm.spec b/dll/keyboard/kbdbgm/kbdbgm.spec similarity index 100% rename from reactos/dll/keyboard/kbdbgm/kbdbgm.spec rename to dll/keyboard/kbdbgm/kbdbgm.spec diff --git a/reactos/dll/keyboard/kbdbgt/CMakeLists.txt b/dll/keyboard/kbdbgt/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdbgt/CMakeLists.txt rename to dll/keyboard/kbdbgt/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdbgt/kbdbgt.c b/dll/keyboard/kbdbgt/kbdbgt.c similarity index 100% rename from reactos/dll/keyboard/kbdbgt/kbdbgt.c rename to dll/keyboard/kbdbgt/kbdbgt.c diff --git a/reactos/dll/keyboard/kbdbgt/kbdbgt.rc b/dll/keyboard/kbdbgt/kbdbgt.rc similarity index 100% rename from reactos/dll/keyboard/kbdbgt/kbdbgt.rc rename to dll/keyboard/kbdbgt/kbdbgt.rc diff --git a/reactos/dll/keyboard/kbdbgt/kbdbgt.spec b/dll/keyboard/kbdbgt/kbdbgt.spec similarity index 100% rename from reactos/dll/keyboard/kbdbgt/kbdbgt.spec rename to dll/keyboard/kbdbgt/kbdbgt.spec diff --git a/reactos/dll/keyboard/kbdblr/CMakeLists.txt b/dll/keyboard/kbdblr/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdblr/CMakeLists.txt rename to dll/keyboard/kbdblr/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdblr/kbdblr.c b/dll/keyboard/kbdblr/kbdblr.c similarity index 100% rename from reactos/dll/keyboard/kbdblr/kbdblr.c rename to dll/keyboard/kbdblr/kbdblr.c diff --git a/reactos/dll/keyboard/kbdblr/kbdblr.rc b/dll/keyboard/kbdblr/kbdblr.rc similarity index 100% rename from reactos/dll/keyboard/kbdblr/kbdblr.rc rename to dll/keyboard/kbdblr/kbdblr.rc diff --git a/reactos/dll/keyboard/kbdblr/kbdblr.spec b/dll/keyboard/kbdblr/kbdblr.spec similarity index 100% rename from reactos/dll/keyboard/kbdblr/kbdblr.spec rename to dll/keyboard/kbdblr/kbdblr.spec diff --git a/reactos/dll/keyboard/kbdbr/CMakeLists.txt b/dll/keyboard/kbdbr/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdbr/CMakeLists.txt rename to dll/keyboard/kbdbr/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdbr/kbdbr.c b/dll/keyboard/kbdbr/kbdbr.c similarity index 100% rename from reactos/dll/keyboard/kbdbr/kbdbr.c rename to dll/keyboard/kbdbr/kbdbr.c diff --git a/reactos/dll/keyboard/kbdbr/kbdbr.rc b/dll/keyboard/kbdbr/kbdbr.rc similarity index 100% rename from reactos/dll/keyboard/kbdbr/kbdbr.rc rename to dll/keyboard/kbdbr/kbdbr.rc diff --git a/reactos/dll/keyboard/kbdbr/kbdbr.spec b/dll/keyboard/kbdbr/kbdbr.spec similarity index 100% rename from reactos/dll/keyboard/kbdbr/kbdbr.spec rename to dll/keyboard/kbdbr/kbdbr.spec diff --git a/reactos/dll/keyboard/kbdbur/CMakeLists.txt b/dll/keyboard/kbdbur/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdbur/CMakeLists.txt rename to dll/keyboard/kbdbur/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdbur/kbdbur.c b/dll/keyboard/kbdbur/kbdbur.c similarity index 100% rename from reactos/dll/keyboard/kbdbur/kbdbur.c rename to dll/keyboard/kbdbur/kbdbur.c diff --git a/reactos/dll/keyboard/kbdbur/kbdbur.rc b/dll/keyboard/kbdbur/kbdbur.rc similarity index 100% rename from reactos/dll/keyboard/kbdbur/kbdbur.rc rename to dll/keyboard/kbdbur/kbdbur.rc diff --git a/reactos/dll/keyboard/kbdbur/kbdbur.spec b/dll/keyboard/kbdbur/kbdbur.spec similarity index 100% rename from reactos/dll/keyboard/kbdbur/kbdbur.spec rename to dll/keyboard/kbdbur/kbdbur.spec diff --git a/reactos/dll/keyboard/kbdcan/CMakeLists.txt b/dll/keyboard/kbdcan/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdcan/CMakeLists.txt rename to dll/keyboard/kbdcan/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdcan/kbdcan.c b/dll/keyboard/kbdcan/kbdcan.c similarity index 100% rename from reactos/dll/keyboard/kbdcan/kbdcan.c rename to dll/keyboard/kbdcan/kbdcan.c diff --git a/reactos/dll/keyboard/kbdcan/kbdcan.rc b/dll/keyboard/kbdcan/kbdcan.rc similarity index 100% rename from reactos/dll/keyboard/kbdcan/kbdcan.rc rename to dll/keyboard/kbdcan/kbdcan.rc diff --git a/reactos/dll/keyboard/kbdcan/kbdcan.spec b/dll/keyboard/kbdcan/kbdcan.spec similarity index 100% rename from reactos/dll/keyboard/kbdcan/kbdcan.spec rename to dll/keyboard/kbdcan/kbdcan.spec diff --git a/reactos/dll/keyboard/kbdcr/CMakeLists.txt b/dll/keyboard/kbdcr/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdcr/CMakeLists.txt rename to dll/keyboard/kbdcr/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdcr/kbdcr.c b/dll/keyboard/kbdcr/kbdcr.c similarity index 100% rename from reactos/dll/keyboard/kbdcr/kbdcr.c rename to dll/keyboard/kbdcr/kbdcr.c diff --git a/reactos/dll/keyboard/kbdcr/kbdcr.rc b/dll/keyboard/kbdcr/kbdcr.rc similarity index 100% rename from reactos/dll/keyboard/kbdcr/kbdcr.rc rename to dll/keyboard/kbdcr/kbdcr.rc diff --git a/reactos/dll/keyboard/kbdcr/kbdcr.spec b/dll/keyboard/kbdcr/kbdcr.spec similarity index 100% rename from reactos/dll/keyboard/kbdcr/kbdcr.spec rename to dll/keyboard/kbdcr/kbdcr.spec diff --git a/reactos/dll/keyboard/kbdcz/CMakeLists.txt b/dll/keyboard/kbdcz/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdcz/CMakeLists.txt rename to dll/keyboard/kbdcz/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdcz/kbdcz.c b/dll/keyboard/kbdcz/kbdcz.c similarity index 100% rename from reactos/dll/keyboard/kbdcz/kbdcz.c rename to dll/keyboard/kbdcz/kbdcz.c diff --git a/reactos/dll/keyboard/kbdcz/kbdcz.rc b/dll/keyboard/kbdcz/kbdcz.rc similarity index 100% rename from reactos/dll/keyboard/kbdcz/kbdcz.rc rename to dll/keyboard/kbdcz/kbdcz.rc diff --git a/reactos/dll/keyboard/kbdcz/kbdcz.spec b/dll/keyboard/kbdcz/kbdcz.spec similarity index 100% rename from reactos/dll/keyboard/kbdcz/kbdcz.spec rename to dll/keyboard/kbdcz/kbdcz.spec diff --git a/reactos/dll/keyboard/kbdcz1/CMakeLists.txt b/dll/keyboard/kbdcz1/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdcz1/CMakeLists.txt rename to dll/keyboard/kbdcz1/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdcz1/kbdcz1.c b/dll/keyboard/kbdcz1/kbdcz1.c similarity index 100% rename from reactos/dll/keyboard/kbdcz1/kbdcz1.c rename to dll/keyboard/kbdcz1/kbdcz1.c diff --git a/reactos/dll/keyboard/kbdcz1/kbdcz1.rc b/dll/keyboard/kbdcz1/kbdcz1.rc similarity index 100% rename from reactos/dll/keyboard/kbdcz1/kbdcz1.rc rename to dll/keyboard/kbdcz1/kbdcz1.rc diff --git a/reactos/dll/keyboard/kbdcz1/kbdcz1.spec b/dll/keyboard/kbdcz1/kbdcz1.spec similarity index 100% rename from reactos/dll/keyboard/kbdcz1/kbdcz1.spec rename to dll/keyboard/kbdcz1/kbdcz1.spec diff --git a/reactos/dll/keyboard/kbdda/CMakeLists.txt b/dll/keyboard/kbdda/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdda/CMakeLists.txt rename to dll/keyboard/kbdda/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdda/kbdda.c b/dll/keyboard/kbdda/kbdda.c similarity index 100% rename from reactos/dll/keyboard/kbdda/kbdda.c rename to dll/keyboard/kbdda/kbdda.c diff --git a/reactos/dll/keyboard/kbdda/kbdda.rc b/dll/keyboard/kbdda/kbdda.rc similarity index 100% rename from reactos/dll/keyboard/kbdda/kbdda.rc rename to dll/keyboard/kbdda/kbdda.rc diff --git a/reactos/dll/keyboard/kbdda/kbdda.spec b/dll/keyboard/kbdda/kbdda.spec similarity index 100% rename from reactos/dll/keyboard/kbdda/kbdda.spec rename to dll/keyboard/kbdda/kbdda.spec diff --git a/reactos/dll/keyboard/kbddv/CMakeLists.txt b/dll/keyboard/kbddv/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbddv/CMakeLists.txt rename to dll/keyboard/kbddv/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbddv/kbddv.c b/dll/keyboard/kbddv/kbddv.c similarity index 100% rename from reactos/dll/keyboard/kbddv/kbddv.c rename to dll/keyboard/kbddv/kbddv.c diff --git a/reactos/dll/keyboard/kbddv/kbddv.rc b/dll/keyboard/kbddv/kbddv.rc similarity index 100% rename from reactos/dll/keyboard/kbddv/kbddv.rc rename to dll/keyboard/kbddv/kbddv.rc diff --git a/reactos/dll/keyboard/kbddv/kbddv.spec b/dll/keyboard/kbddv/kbddv.spec similarity index 100% rename from reactos/dll/keyboard/kbddv/kbddv.spec rename to dll/keyboard/kbddv/kbddv.spec diff --git a/reactos/dll/keyboard/kbdes/CMakeLists.txt b/dll/keyboard/kbdes/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdes/CMakeLists.txt rename to dll/keyboard/kbdes/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdes/kbdes.c b/dll/keyboard/kbdes/kbdes.c similarity index 100% rename from reactos/dll/keyboard/kbdes/kbdes.c rename to dll/keyboard/kbdes/kbdes.c diff --git a/reactos/dll/keyboard/kbdes/kbdes.rc b/dll/keyboard/kbdes/kbdes.rc similarity index 100% rename from reactos/dll/keyboard/kbdes/kbdes.rc rename to dll/keyboard/kbdes/kbdes.rc diff --git a/reactos/dll/keyboard/kbdes/kbdes.spec b/dll/keyboard/kbdes/kbdes.spec similarity index 100% rename from reactos/dll/keyboard/kbdes/kbdes.spec rename to dll/keyboard/kbdes/kbdes.spec diff --git a/reactos/dll/keyboard/kbdest/CMakeLists.txt b/dll/keyboard/kbdest/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdest/CMakeLists.txt rename to dll/keyboard/kbdest/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdest/kbdest.c b/dll/keyboard/kbdest/kbdest.c similarity index 100% rename from reactos/dll/keyboard/kbdest/kbdest.c rename to dll/keyboard/kbdest/kbdest.c diff --git a/reactos/dll/keyboard/kbdest/kbdest.rc b/dll/keyboard/kbdest/kbdest.rc similarity index 100% rename from reactos/dll/keyboard/kbdest/kbdest.rc rename to dll/keyboard/kbdest/kbdest.rc diff --git a/reactos/dll/keyboard/kbdest/kbdest.spec b/dll/keyboard/kbdest/kbdest.spec similarity index 100% rename from reactos/dll/keyboard/kbdest/kbdest.spec rename to dll/keyboard/kbdest/kbdest.spec diff --git a/reactos/dll/keyboard/kbdfc/CMakeLists.txt b/dll/keyboard/kbdfc/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdfc/CMakeLists.txt rename to dll/keyboard/kbdfc/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdfc/kbdfc.c b/dll/keyboard/kbdfc/kbdfc.c similarity index 100% rename from reactos/dll/keyboard/kbdfc/kbdfc.c rename to dll/keyboard/kbdfc/kbdfc.c diff --git a/reactos/dll/keyboard/kbdfc/kbdfc.rc b/dll/keyboard/kbdfc/kbdfc.rc similarity index 100% rename from reactos/dll/keyboard/kbdfc/kbdfc.rc rename to dll/keyboard/kbdfc/kbdfc.rc diff --git a/reactos/dll/keyboard/kbdfc/kbdfc.spec b/dll/keyboard/kbdfc/kbdfc.spec similarity index 100% rename from reactos/dll/keyboard/kbdfc/kbdfc.spec rename to dll/keyboard/kbdfc/kbdfc.spec diff --git a/reactos/dll/keyboard/kbdfi/CMakeLists.txt b/dll/keyboard/kbdfi/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdfi/CMakeLists.txt rename to dll/keyboard/kbdfi/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdfi/kbdfi.c b/dll/keyboard/kbdfi/kbdfi.c similarity index 100% rename from reactos/dll/keyboard/kbdfi/kbdfi.c rename to dll/keyboard/kbdfi/kbdfi.c diff --git a/reactos/dll/keyboard/kbdfi/kbdfi.rc b/dll/keyboard/kbdfi/kbdfi.rc similarity index 100% rename from reactos/dll/keyboard/kbdfi/kbdfi.rc rename to dll/keyboard/kbdfi/kbdfi.rc diff --git a/reactos/dll/keyboard/kbdfi/kbdfi.spec b/dll/keyboard/kbdfi/kbdfi.spec similarity index 100% rename from reactos/dll/keyboard/kbdfi/kbdfi.spec rename to dll/keyboard/kbdfi/kbdfi.spec diff --git a/reactos/dll/keyboard/kbdfr/CMakeLists.txt b/dll/keyboard/kbdfr/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdfr/CMakeLists.txt rename to dll/keyboard/kbdfr/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdfr/kbdfr.c b/dll/keyboard/kbdfr/kbdfr.c similarity index 100% rename from reactos/dll/keyboard/kbdfr/kbdfr.c rename to dll/keyboard/kbdfr/kbdfr.c diff --git a/reactos/dll/keyboard/kbdfr/kbdfr.rc b/dll/keyboard/kbdfr/kbdfr.rc similarity index 100% rename from reactos/dll/keyboard/kbdfr/kbdfr.rc rename to dll/keyboard/kbdfr/kbdfr.rc diff --git a/reactos/dll/keyboard/kbdfr/kbdfr.spec b/dll/keyboard/kbdfr/kbdfr.spec similarity index 100% rename from reactos/dll/keyboard/kbdfr/kbdfr.spec rename to dll/keyboard/kbdfr/kbdfr.spec diff --git a/reactos/dll/keyboard/kbdgeo/CMakeLists.txt b/dll/keyboard/kbdgeo/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdgeo/CMakeLists.txt rename to dll/keyboard/kbdgeo/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdgeo/kbdgeo.c b/dll/keyboard/kbdgeo/kbdgeo.c similarity index 100% rename from reactos/dll/keyboard/kbdgeo/kbdgeo.c rename to dll/keyboard/kbdgeo/kbdgeo.c diff --git a/reactos/dll/keyboard/kbdgeo/kbdgeo.rc b/dll/keyboard/kbdgeo/kbdgeo.rc similarity index 100% rename from reactos/dll/keyboard/kbdgeo/kbdgeo.rc rename to dll/keyboard/kbdgeo/kbdgeo.rc diff --git a/reactos/dll/keyboard/kbdgeo/kbdgeo.spec b/dll/keyboard/kbdgeo/kbdgeo.spec similarity index 100% rename from reactos/dll/keyboard/kbdgeo/kbdgeo.spec rename to dll/keyboard/kbdgeo/kbdgeo.spec diff --git a/reactos/dll/keyboard/kbdgerg/CMakeLists.txt b/dll/keyboard/kbdgerg/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdgerg/CMakeLists.txt rename to dll/keyboard/kbdgerg/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdgerg/kbdgerg.c b/dll/keyboard/kbdgerg/kbdgerg.c similarity index 100% rename from reactos/dll/keyboard/kbdgerg/kbdgerg.c rename to dll/keyboard/kbdgerg/kbdgerg.c diff --git a/reactos/dll/keyboard/kbdgerg/kbdgerg.rc b/dll/keyboard/kbdgerg/kbdgerg.rc similarity index 100% rename from reactos/dll/keyboard/kbdgerg/kbdgerg.rc rename to dll/keyboard/kbdgerg/kbdgerg.rc diff --git a/reactos/dll/keyboard/kbdgerg/kbdgerg.spec b/dll/keyboard/kbdgerg/kbdgerg.spec similarity index 100% rename from reactos/dll/keyboard/kbdgerg/kbdgerg.spec rename to dll/keyboard/kbdgerg/kbdgerg.spec diff --git a/reactos/dll/keyboard/kbdgneo/CMakeLists.txt b/dll/keyboard/kbdgneo/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdgneo/CMakeLists.txt rename to dll/keyboard/kbdgneo/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdgneo/kbdgneo.c b/dll/keyboard/kbdgneo/kbdgneo.c similarity index 100% rename from reactos/dll/keyboard/kbdgneo/kbdgneo.c rename to dll/keyboard/kbdgneo/kbdgneo.c diff --git a/reactos/dll/keyboard/kbdgneo/kbdgneo.rc b/dll/keyboard/kbdgneo/kbdgneo.rc similarity index 100% rename from reactos/dll/keyboard/kbdgneo/kbdgneo.rc rename to dll/keyboard/kbdgneo/kbdgneo.rc diff --git a/reactos/dll/keyboard/kbdgneo/kbdgneo.spec b/dll/keyboard/kbdgneo/kbdgneo.spec similarity index 100% rename from reactos/dll/keyboard/kbdgneo/kbdgneo.spec rename to dll/keyboard/kbdgneo/kbdgneo.spec diff --git a/reactos/dll/keyboard/kbdgr/CMakeLists.txt b/dll/keyboard/kbdgr/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdgr/CMakeLists.txt rename to dll/keyboard/kbdgr/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdgr/kbdgr.c b/dll/keyboard/kbdgr/kbdgr.c similarity index 100% rename from reactos/dll/keyboard/kbdgr/kbdgr.c rename to dll/keyboard/kbdgr/kbdgr.c diff --git a/reactos/dll/keyboard/kbdgr/kbdgr.rc b/dll/keyboard/kbdgr/kbdgr.rc similarity index 100% rename from reactos/dll/keyboard/kbdgr/kbdgr.rc rename to dll/keyboard/kbdgr/kbdgr.rc diff --git a/reactos/dll/keyboard/kbdgr/kbdgr.spec b/dll/keyboard/kbdgr/kbdgr.spec similarity index 100% rename from reactos/dll/keyboard/kbdgr/kbdgr.spec rename to dll/keyboard/kbdgr/kbdgr.spec diff --git a/reactos/dll/keyboard/kbdgrist/CMakeLists.txt b/dll/keyboard/kbdgrist/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdgrist/CMakeLists.txt rename to dll/keyboard/kbdgrist/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdgrist/kbdgrist.c b/dll/keyboard/kbdgrist/kbdgrist.c similarity index 100% rename from reactos/dll/keyboard/kbdgrist/kbdgrist.c rename to dll/keyboard/kbdgrist/kbdgrist.c diff --git a/reactos/dll/keyboard/kbdgrist/kbdgrist.rc b/dll/keyboard/kbdgrist/kbdgrist.rc similarity index 100% rename from reactos/dll/keyboard/kbdgrist/kbdgrist.rc rename to dll/keyboard/kbdgrist/kbdgrist.rc diff --git a/reactos/dll/keyboard/kbdgrist/kbdgrist.spec b/dll/keyboard/kbdgrist/kbdgrist.spec similarity index 100% rename from reactos/dll/keyboard/kbdgrist/kbdgrist.spec rename to dll/keyboard/kbdgrist/kbdgrist.spec diff --git a/reactos/dll/keyboard/kbdhe/CMakeLists.txt b/dll/keyboard/kbdhe/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdhe/CMakeLists.txt rename to dll/keyboard/kbdhe/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdhe/kbdhe.c b/dll/keyboard/kbdhe/kbdhe.c similarity index 100% rename from reactos/dll/keyboard/kbdhe/kbdhe.c rename to dll/keyboard/kbdhe/kbdhe.c diff --git a/reactos/dll/keyboard/kbdhe/kbdhe.rc b/dll/keyboard/kbdhe/kbdhe.rc similarity index 100% rename from reactos/dll/keyboard/kbdhe/kbdhe.rc rename to dll/keyboard/kbdhe/kbdhe.rc diff --git a/reactos/dll/keyboard/kbdhe/kbdhe.spec b/dll/keyboard/kbdhe/kbdhe.spec similarity index 100% rename from reactos/dll/keyboard/kbdhe/kbdhe.spec rename to dll/keyboard/kbdhe/kbdhe.spec diff --git a/reactos/dll/keyboard/kbdheb/CMakeLists.txt b/dll/keyboard/kbdheb/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdheb/CMakeLists.txt rename to dll/keyboard/kbdheb/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdheb/kbdheb.c b/dll/keyboard/kbdheb/kbdheb.c similarity index 100% rename from reactos/dll/keyboard/kbdheb/kbdheb.c rename to dll/keyboard/kbdheb/kbdheb.c diff --git a/reactos/dll/keyboard/kbdheb/kbdheb.rc b/dll/keyboard/kbdheb/kbdheb.rc similarity index 100% rename from reactos/dll/keyboard/kbdheb/kbdheb.rc rename to dll/keyboard/kbdheb/kbdheb.rc diff --git a/reactos/dll/keyboard/kbdheb/kbdheb.spec b/dll/keyboard/kbdheb/kbdheb.spec similarity index 100% rename from reactos/dll/keyboard/kbdheb/kbdheb.spec rename to dll/keyboard/kbdheb/kbdheb.spec diff --git a/reactos/dll/keyboard/kbdhu/CMakeLists.txt b/dll/keyboard/kbdhu/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdhu/CMakeLists.txt rename to dll/keyboard/kbdhu/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdhu/kbdhu.c b/dll/keyboard/kbdhu/kbdhu.c similarity index 100% rename from reactos/dll/keyboard/kbdhu/kbdhu.c rename to dll/keyboard/kbdhu/kbdhu.c diff --git a/reactos/dll/keyboard/kbdhu/kbdhu.rc b/dll/keyboard/kbdhu/kbdhu.rc similarity index 100% rename from reactos/dll/keyboard/kbdhu/kbdhu.rc rename to dll/keyboard/kbdhu/kbdhu.rc diff --git a/reactos/dll/keyboard/kbdhu/kbdhu.spec b/dll/keyboard/kbdhu/kbdhu.spec similarity index 100% rename from reactos/dll/keyboard/kbdhu/kbdhu.spec rename to dll/keyboard/kbdhu/kbdhu.spec diff --git a/reactos/dll/keyboard/kbdic/CMakeLists.txt b/dll/keyboard/kbdic/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdic/CMakeLists.txt rename to dll/keyboard/kbdic/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdic/kbdic.c b/dll/keyboard/kbdic/kbdic.c similarity index 100% rename from reactos/dll/keyboard/kbdic/kbdic.c rename to dll/keyboard/kbdic/kbdic.c diff --git a/reactos/dll/keyboard/kbdic/kbdic.rc b/dll/keyboard/kbdic/kbdic.rc similarity index 100% rename from reactos/dll/keyboard/kbdic/kbdic.rc rename to dll/keyboard/kbdic/kbdic.rc diff --git a/reactos/dll/keyboard/kbdic/kbdic.spec b/dll/keyboard/kbdic/kbdic.spec similarity index 100% rename from reactos/dll/keyboard/kbdic/kbdic.spec rename to dll/keyboard/kbdic/kbdic.spec diff --git a/reactos/dll/keyboard/kbdinasa/CMakeLists.txt b/dll/keyboard/kbdinasa/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdinasa/CMakeLists.txt rename to dll/keyboard/kbdinasa/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdinasa/kbdinasa.c b/dll/keyboard/kbdinasa/kbdinasa.c similarity index 100% rename from reactos/dll/keyboard/kbdinasa/kbdinasa.c rename to dll/keyboard/kbdinasa/kbdinasa.c diff --git a/reactos/dll/keyboard/kbdinasa/kbdinasa.rc b/dll/keyboard/kbdinasa/kbdinasa.rc similarity index 100% rename from reactos/dll/keyboard/kbdinasa/kbdinasa.rc rename to dll/keyboard/kbdinasa/kbdinasa.rc diff --git a/reactos/dll/keyboard/kbdinasa/kbdinasa.spec b/dll/keyboard/kbdinasa/kbdinasa.spec similarity index 100% rename from reactos/dll/keyboard/kbdinasa/kbdinasa.spec rename to dll/keyboard/kbdinasa/kbdinasa.spec diff --git a/reactos/dll/keyboard/kbdinben/CMakeLists.txt b/dll/keyboard/kbdinben/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdinben/CMakeLists.txt rename to dll/keyboard/kbdinben/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdinben/kbdinben.c b/dll/keyboard/kbdinben/kbdinben.c similarity index 100% rename from reactos/dll/keyboard/kbdinben/kbdinben.c rename to dll/keyboard/kbdinben/kbdinben.c diff --git a/reactos/dll/keyboard/kbdinben/kbdinben.rc b/dll/keyboard/kbdinben/kbdinben.rc similarity index 100% rename from reactos/dll/keyboard/kbdinben/kbdinben.rc rename to dll/keyboard/kbdinben/kbdinben.rc diff --git a/reactos/dll/keyboard/kbdinben/kbdinben.spec b/dll/keyboard/kbdinben/kbdinben.spec similarity index 100% rename from reactos/dll/keyboard/kbdinben/kbdinben.spec rename to dll/keyboard/kbdinben/kbdinben.spec diff --git a/reactos/dll/keyboard/kbdindev/CMakeLists.txt b/dll/keyboard/kbdindev/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdindev/CMakeLists.txt rename to dll/keyboard/kbdindev/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdindev/kbdindev.c b/dll/keyboard/kbdindev/kbdindev.c similarity index 100% rename from reactos/dll/keyboard/kbdindev/kbdindev.c rename to dll/keyboard/kbdindev/kbdindev.c diff --git a/reactos/dll/keyboard/kbdindev/kbdindev.rc b/dll/keyboard/kbdindev/kbdindev.rc similarity index 100% rename from reactos/dll/keyboard/kbdindev/kbdindev.rc rename to dll/keyboard/kbdindev/kbdindev.rc diff --git a/reactos/dll/keyboard/kbdindev/kbdindev.spec b/dll/keyboard/kbdindev/kbdindev.spec similarity index 100% rename from reactos/dll/keyboard/kbdindev/kbdindev.spec rename to dll/keyboard/kbdindev/kbdindev.spec diff --git a/reactos/dll/keyboard/kbdinguj/CMakeLists.txt b/dll/keyboard/kbdinguj/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdinguj/CMakeLists.txt rename to dll/keyboard/kbdinguj/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdinguj/kbdinguj.c b/dll/keyboard/kbdinguj/kbdinguj.c similarity index 100% rename from reactos/dll/keyboard/kbdinguj/kbdinguj.c rename to dll/keyboard/kbdinguj/kbdinguj.c diff --git a/reactos/dll/keyboard/kbdinguj/kbdinguj.rc b/dll/keyboard/kbdinguj/kbdinguj.rc similarity index 100% rename from reactos/dll/keyboard/kbdinguj/kbdinguj.rc rename to dll/keyboard/kbdinguj/kbdinguj.rc diff --git a/reactos/dll/keyboard/kbdinguj/kbdinguj.spec b/dll/keyboard/kbdinguj/kbdinguj.spec similarity index 100% rename from reactos/dll/keyboard/kbdinguj/kbdinguj.spec rename to dll/keyboard/kbdinguj/kbdinguj.spec diff --git a/reactos/dll/keyboard/kbdinmal/CMakeLists.txt b/dll/keyboard/kbdinmal/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdinmal/CMakeLists.txt rename to dll/keyboard/kbdinmal/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdinmal/kbdinmal.c b/dll/keyboard/kbdinmal/kbdinmal.c similarity index 100% rename from reactos/dll/keyboard/kbdinmal/kbdinmal.c rename to dll/keyboard/kbdinmal/kbdinmal.c diff --git a/reactos/dll/keyboard/kbdinmal/kbdinmal.rc b/dll/keyboard/kbdinmal/kbdinmal.rc similarity index 100% rename from reactos/dll/keyboard/kbdinmal/kbdinmal.rc rename to dll/keyboard/kbdinmal/kbdinmal.rc diff --git a/reactos/dll/keyboard/kbdinmal/kbdinmal.spec b/dll/keyboard/kbdinmal/kbdinmal.spec similarity index 100% rename from reactos/dll/keyboard/kbdinmal/kbdinmal.spec rename to dll/keyboard/kbdinmal/kbdinmal.spec diff --git a/reactos/dll/keyboard/kbdir/CMakeLists.txt b/dll/keyboard/kbdir/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdir/CMakeLists.txt rename to dll/keyboard/kbdir/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdir/kbdir.c b/dll/keyboard/kbdir/kbdir.c similarity index 100% rename from reactos/dll/keyboard/kbdir/kbdir.c rename to dll/keyboard/kbdir/kbdir.c diff --git a/reactos/dll/keyboard/kbdir/kbdir.rc b/dll/keyboard/kbdir/kbdir.rc similarity index 100% rename from reactos/dll/keyboard/kbdir/kbdir.rc rename to dll/keyboard/kbdir/kbdir.rc diff --git a/reactos/dll/keyboard/kbdir/kbdir.spec b/dll/keyboard/kbdir/kbdir.spec similarity index 100% rename from reactos/dll/keyboard/kbdir/kbdir.spec rename to dll/keyboard/kbdir/kbdir.spec diff --git a/reactos/dll/keyboard/kbdit/CMakeLists.txt b/dll/keyboard/kbdit/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdit/CMakeLists.txt rename to dll/keyboard/kbdit/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdit/kbdit.c b/dll/keyboard/kbdit/kbdit.c similarity index 100% rename from reactos/dll/keyboard/kbdit/kbdit.c rename to dll/keyboard/kbdit/kbdit.c diff --git a/reactos/dll/keyboard/kbdit/kbdit.rc b/dll/keyboard/kbdit/kbdit.rc similarity index 100% rename from reactos/dll/keyboard/kbdit/kbdit.rc rename to dll/keyboard/kbdit/kbdit.rc diff --git a/reactos/dll/keyboard/kbdit/kbdit.spec b/dll/keyboard/kbdit/kbdit.spec similarity index 100% rename from reactos/dll/keyboard/kbdit/kbdit.spec rename to dll/keyboard/kbdit/kbdit.spec diff --git a/reactos/dll/keyboard/kbdja/CMakeLists.txt b/dll/keyboard/kbdja/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdja/CMakeLists.txt rename to dll/keyboard/kbdja/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdja/kbdja.c b/dll/keyboard/kbdja/kbdja.c similarity index 100% rename from reactos/dll/keyboard/kbdja/kbdja.c rename to dll/keyboard/kbdja/kbdja.c diff --git a/reactos/dll/keyboard/kbdja/kbdja.rc b/dll/keyboard/kbdja/kbdja.rc similarity index 100% rename from reactos/dll/keyboard/kbdja/kbdja.rc rename to dll/keyboard/kbdja/kbdja.rc diff --git a/reactos/dll/keyboard/kbdja/kbdja.spec b/dll/keyboard/kbdja/kbdja.spec similarity index 100% rename from reactos/dll/keyboard/kbdja/kbdja.spec rename to dll/keyboard/kbdja/kbdja.spec diff --git a/reactos/dll/keyboard/kbdkaz/CMakeLists.txt b/dll/keyboard/kbdkaz/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdkaz/CMakeLists.txt rename to dll/keyboard/kbdkaz/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdkaz/kbdkaz.c b/dll/keyboard/kbdkaz/kbdkaz.c similarity index 100% rename from reactos/dll/keyboard/kbdkaz/kbdkaz.c rename to dll/keyboard/kbdkaz/kbdkaz.c diff --git a/reactos/dll/keyboard/kbdkaz/kbdkaz.rc b/dll/keyboard/kbdkaz/kbdkaz.rc similarity index 100% rename from reactos/dll/keyboard/kbdkaz/kbdkaz.rc rename to dll/keyboard/kbdkaz/kbdkaz.rc diff --git a/reactos/dll/keyboard/kbdkaz/kbdkaz.spec b/dll/keyboard/kbdkaz/kbdkaz.spec similarity index 100% rename from reactos/dll/keyboard/kbdkaz/kbdkaz.spec rename to dll/keyboard/kbdkaz/kbdkaz.spec diff --git a/reactos/dll/keyboard/kbdko/CMakeLists.txt b/dll/keyboard/kbdko/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdko/CMakeLists.txt rename to dll/keyboard/kbdko/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdko/kbdko.c b/dll/keyboard/kbdko/kbdko.c similarity index 100% rename from reactos/dll/keyboard/kbdko/kbdko.c rename to dll/keyboard/kbdko/kbdko.c diff --git a/reactos/dll/keyboard/kbdko/kbdko.rc b/dll/keyboard/kbdko/kbdko.rc similarity index 100% rename from reactos/dll/keyboard/kbdko/kbdko.rc rename to dll/keyboard/kbdko/kbdko.rc diff --git a/reactos/dll/keyboard/kbdko/kbdko.spec b/dll/keyboard/kbdko/kbdko.spec similarity index 100% rename from reactos/dll/keyboard/kbdko/kbdko.spec rename to dll/keyboard/kbdko/kbdko.spec diff --git a/reactos/dll/keyboard/kbdla/CMakeLists.txt b/dll/keyboard/kbdla/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdla/CMakeLists.txt rename to dll/keyboard/kbdla/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdla/kbdla.c b/dll/keyboard/kbdla/kbdla.c similarity index 100% rename from reactos/dll/keyboard/kbdla/kbdla.c rename to dll/keyboard/kbdla/kbdla.c diff --git a/reactos/dll/keyboard/kbdla/kbdla.rc b/dll/keyboard/kbdla/kbdla.rc similarity index 100% rename from reactos/dll/keyboard/kbdla/kbdla.rc rename to dll/keyboard/kbdla/kbdla.rc diff --git a/reactos/dll/keyboard/kbdla/kbdla.spec b/dll/keyboard/kbdla/kbdla.spec similarity index 100% rename from reactos/dll/keyboard/kbdla/kbdla.spec rename to dll/keyboard/kbdla/kbdla.spec diff --git a/reactos/dll/keyboard/kbdlt1/CMakeLists.txt b/dll/keyboard/kbdlt1/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdlt1/CMakeLists.txt rename to dll/keyboard/kbdlt1/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdlt1/kbdlt1.c b/dll/keyboard/kbdlt1/kbdlt1.c similarity index 100% rename from reactos/dll/keyboard/kbdlt1/kbdlt1.c rename to dll/keyboard/kbdlt1/kbdlt1.c diff --git a/reactos/dll/keyboard/kbdlt1/kbdlt1.rc b/dll/keyboard/kbdlt1/kbdlt1.rc similarity index 100% rename from reactos/dll/keyboard/kbdlt1/kbdlt1.rc rename to dll/keyboard/kbdlt1/kbdlt1.rc diff --git a/reactos/dll/keyboard/kbdlt1/kbdlt1.spec b/dll/keyboard/kbdlt1/kbdlt1.spec similarity index 100% rename from reactos/dll/keyboard/kbdlt1/kbdlt1.spec rename to dll/keyboard/kbdlt1/kbdlt1.spec diff --git a/reactos/dll/keyboard/kbdlv/CMakeLists.txt b/dll/keyboard/kbdlv/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdlv/CMakeLists.txt rename to dll/keyboard/kbdlv/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdlv/kbdlv.c b/dll/keyboard/kbdlv/kbdlv.c similarity index 100% rename from reactos/dll/keyboard/kbdlv/kbdlv.c rename to dll/keyboard/kbdlv/kbdlv.c diff --git a/reactos/dll/keyboard/kbdlv/kbdlv.rc b/dll/keyboard/kbdlv/kbdlv.rc similarity index 100% rename from reactos/dll/keyboard/kbdlv/kbdlv.rc rename to dll/keyboard/kbdlv/kbdlv.rc diff --git a/reactos/dll/keyboard/kbdlv/kbdlv.spec b/dll/keyboard/kbdlv/kbdlv.spec similarity index 100% rename from reactos/dll/keyboard/kbdlv/kbdlv.spec rename to dll/keyboard/kbdlv/kbdlv.spec diff --git a/reactos/dll/keyboard/kbdmac/CMakeLists.txt b/dll/keyboard/kbdmac/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdmac/CMakeLists.txt rename to dll/keyboard/kbdmac/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdmac/kbdmac.c b/dll/keyboard/kbdmac/kbdmac.c similarity index 100% rename from reactos/dll/keyboard/kbdmac/kbdmac.c rename to dll/keyboard/kbdmac/kbdmac.c diff --git a/reactos/dll/keyboard/kbdmac/kbdmac.rc b/dll/keyboard/kbdmac/kbdmac.rc similarity index 100% rename from reactos/dll/keyboard/kbdmac/kbdmac.rc rename to dll/keyboard/kbdmac/kbdmac.rc diff --git a/reactos/dll/keyboard/kbdmac/kbdmac.spec b/dll/keyboard/kbdmac/kbdmac.spec similarity index 100% rename from reactos/dll/keyboard/kbdmac/kbdmac.spec rename to dll/keyboard/kbdmac/kbdmac.spec diff --git a/reactos/dll/keyboard/kbdne/CMakeLists.txt b/dll/keyboard/kbdne/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdne/CMakeLists.txt rename to dll/keyboard/kbdne/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdne/kbdne.c b/dll/keyboard/kbdne/kbdne.c similarity index 100% rename from reactos/dll/keyboard/kbdne/kbdne.c rename to dll/keyboard/kbdne/kbdne.c diff --git a/reactos/dll/keyboard/kbdne/kbdne.rc b/dll/keyboard/kbdne/kbdne.rc similarity index 100% rename from reactos/dll/keyboard/kbdne/kbdne.rc rename to dll/keyboard/kbdne/kbdne.rc diff --git a/reactos/dll/keyboard/kbdne/kbdne.spec b/dll/keyboard/kbdne/kbdne.spec similarity index 100% rename from reactos/dll/keyboard/kbdne/kbdne.spec rename to dll/keyboard/kbdne/kbdne.spec diff --git a/reactos/dll/keyboard/kbdno/CMakeLists.txt b/dll/keyboard/kbdno/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdno/CMakeLists.txt rename to dll/keyboard/kbdno/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdno/kbdno.c b/dll/keyboard/kbdno/kbdno.c similarity index 100% rename from reactos/dll/keyboard/kbdno/kbdno.c rename to dll/keyboard/kbdno/kbdno.c diff --git a/reactos/dll/keyboard/kbdno/kbdno.rc b/dll/keyboard/kbdno/kbdno.rc similarity index 100% rename from reactos/dll/keyboard/kbdno/kbdno.rc rename to dll/keyboard/kbdno/kbdno.rc diff --git a/reactos/dll/keyboard/kbdno/kbdno.spec b/dll/keyboard/kbdno/kbdno.spec similarity index 100% rename from reactos/dll/keyboard/kbdno/kbdno.spec rename to dll/keyboard/kbdno/kbdno.spec diff --git a/reactos/dll/keyboard/kbdpl/CMakeLists.txt b/dll/keyboard/kbdpl/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdpl/CMakeLists.txt rename to dll/keyboard/kbdpl/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdpl/kbdpl.c b/dll/keyboard/kbdpl/kbdpl.c similarity index 100% rename from reactos/dll/keyboard/kbdpl/kbdpl.c rename to dll/keyboard/kbdpl/kbdpl.c diff --git a/reactos/dll/keyboard/kbdpl/kbdpl.rc b/dll/keyboard/kbdpl/kbdpl.rc similarity index 100% rename from reactos/dll/keyboard/kbdpl/kbdpl.rc rename to dll/keyboard/kbdpl/kbdpl.rc diff --git a/reactos/dll/keyboard/kbdpl/kbdpl.spec b/dll/keyboard/kbdpl/kbdpl.spec similarity index 100% rename from reactos/dll/keyboard/kbdpl/kbdpl.spec rename to dll/keyboard/kbdpl/kbdpl.spec diff --git a/reactos/dll/keyboard/kbdpl1/CMakeLists.txt b/dll/keyboard/kbdpl1/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdpl1/CMakeLists.txt rename to dll/keyboard/kbdpl1/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdpl1/kbdpl1.c b/dll/keyboard/kbdpl1/kbdpl1.c similarity index 100% rename from reactos/dll/keyboard/kbdpl1/kbdpl1.c rename to dll/keyboard/kbdpl1/kbdpl1.c diff --git a/reactos/dll/keyboard/kbdpl1/kbdpl1.rc b/dll/keyboard/kbdpl1/kbdpl1.rc similarity index 100% rename from reactos/dll/keyboard/kbdpl1/kbdpl1.rc rename to dll/keyboard/kbdpl1/kbdpl1.rc diff --git a/reactos/dll/keyboard/kbdpl1/kbdpl1.spec b/dll/keyboard/kbdpl1/kbdpl1.spec similarity index 100% rename from reactos/dll/keyboard/kbdpl1/kbdpl1.spec rename to dll/keyboard/kbdpl1/kbdpl1.spec diff --git a/reactos/dll/keyboard/kbdpo/CMakeLists.txt b/dll/keyboard/kbdpo/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdpo/CMakeLists.txt rename to dll/keyboard/kbdpo/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdpo/kbdpo.c b/dll/keyboard/kbdpo/kbdpo.c similarity index 100% rename from reactos/dll/keyboard/kbdpo/kbdpo.c rename to dll/keyboard/kbdpo/kbdpo.c diff --git a/reactos/dll/keyboard/kbdpo/kbdpo.rc b/dll/keyboard/kbdpo/kbdpo.rc similarity index 100% rename from reactos/dll/keyboard/kbdpo/kbdpo.rc rename to dll/keyboard/kbdpo/kbdpo.rc diff --git a/reactos/dll/keyboard/kbdpo/kbdpo.spec b/dll/keyboard/kbdpo/kbdpo.spec similarity index 100% rename from reactos/dll/keyboard/kbdpo/kbdpo.spec rename to dll/keyboard/kbdpo/kbdpo.spec diff --git a/reactos/dll/keyboard/kbdro/CMakeLists.txt b/dll/keyboard/kbdro/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdro/CMakeLists.txt rename to dll/keyboard/kbdro/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdro/kbdro.c b/dll/keyboard/kbdro/kbdro.c similarity index 100% rename from reactos/dll/keyboard/kbdro/kbdro.c rename to dll/keyboard/kbdro/kbdro.c diff --git a/reactos/dll/keyboard/kbdro/kbdro.rc b/dll/keyboard/kbdro/kbdro.rc similarity index 100% rename from reactos/dll/keyboard/kbdro/kbdro.rc rename to dll/keyboard/kbdro/kbdro.rc diff --git a/reactos/dll/keyboard/kbdro/kbdro.spec b/dll/keyboard/kbdro/kbdro.spec similarity index 100% rename from reactos/dll/keyboard/kbdro/kbdro.spec rename to dll/keyboard/kbdro/kbdro.spec diff --git a/reactos/dll/keyboard/kbdru/CMakeLists.txt b/dll/keyboard/kbdru/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdru/CMakeLists.txt rename to dll/keyboard/kbdru/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdru/kbdru.c b/dll/keyboard/kbdru/kbdru.c similarity index 100% rename from reactos/dll/keyboard/kbdru/kbdru.c rename to dll/keyboard/kbdru/kbdru.c diff --git a/reactos/dll/keyboard/kbdru/kbdru.rc b/dll/keyboard/kbdru/kbdru.rc similarity index 100% rename from reactos/dll/keyboard/kbdru/kbdru.rc rename to dll/keyboard/kbdru/kbdru.rc diff --git a/reactos/dll/keyboard/kbdru/kbdru.spec b/dll/keyboard/kbdru/kbdru.spec similarity index 100% rename from reactos/dll/keyboard/kbdru/kbdru.spec rename to dll/keyboard/kbdru/kbdru.spec diff --git a/reactos/dll/keyboard/kbdru1/CMakeLists.txt b/dll/keyboard/kbdru1/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdru1/CMakeLists.txt rename to dll/keyboard/kbdru1/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdru1/kbdru1.c b/dll/keyboard/kbdru1/kbdru1.c similarity index 100% rename from reactos/dll/keyboard/kbdru1/kbdru1.c rename to dll/keyboard/kbdru1/kbdru1.c diff --git a/reactos/dll/keyboard/kbdru1/kbdru1.rc b/dll/keyboard/kbdru1/kbdru1.rc similarity index 100% rename from reactos/dll/keyboard/kbdru1/kbdru1.rc rename to dll/keyboard/kbdru1/kbdru1.rc diff --git a/reactos/dll/keyboard/kbdru1/kbdru1.spec b/dll/keyboard/kbdru1/kbdru1.spec similarity index 100% rename from reactos/dll/keyboard/kbdru1/kbdru1.spec rename to dll/keyboard/kbdru1/kbdru1.spec diff --git a/reactos/dll/keyboard/kbdsg/CMakeLists.txt b/dll/keyboard/kbdsg/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdsg/CMakeLists.txt rename to dll/keyboard/kbdsg/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdsg/kbdsg.c b/dll/keyboard/kbdsg/kbdsg.c similarity index 100% rename from reactos/dll/keyboard/kbdsg/kbdsg.c rename to dll/keyboard/kbdsg/kbdsg.c diff --git a/reactos/dll/keyboard/kbdsg/kbdsg.rc b/dll/keyboard/kbdsg/kbdsg.rc similarity index 100% rename from reactos/dll/keyboard/kbdsg/kbdsg.rc rename to dll/keyboard/kbdsg/kbdsg.rc diff --git a/reactos/dll/keyboard/kbdsg/kbdsg.spec b/dll/keyboard/kbdsg/kbdsg.spec similarity index 100% rename from reactos/dll/keyboard/kbdsg/kbdsg.spec rename to dll/keyboard/kbdsg/kbdsg.spec diff --git a/reactos/dll/keyboard/kbdsk/CMakeLists.txt b/dll/keyboard/kbdsk/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdsk/CMakeLists.txt rename to dll/keyboard/kbdsk/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdsk/kbdsk.c b/dll/keyboard/kbdsk/kbdsk.c similarity index 100% rename from reactos/dll/keyboard/kbdsk/kbdsk.c rename to dll/keyboard/kbdsk/kbdsk.c diff --git a/reactos/dll/keyboard/kbdsk/kbdsk.rc b/dll/keyboard/kbdsk/kbdsk.rc similarity index 100% rename from reactos/dll/keyboard/kbdsk/kbdsk.rc rename to dll/keyboard/kbdsk/kbdsk.rc diff --git a/reactos/dll/keyboard/kbdsk/kbdsk.spec b/dll/keyboard/kbdsk/kbdsk.spec similarity index 100% rename from reactos/dll/keyboard/kbdsk/kbdsk.spec rename to dll/keyboard/kbdsk/kbdsk.spec diff --git a/reactos/dll/keyboard/kbdsk1/CMakeLists.txt b/dll/keyboard/kbdsk1/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdsk1/CMakeLists.txt rename to dll/keyboard/kbdsk1/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdsk1/kbdsk1.c b/dll/keyboard/kbdsk1/kbdsk1.c similarity index 100% rename from reactos/dll/keyboard/kbdsk1/kbdsk1.c rename to dll/keyboard/kbdsk1/kbdsk1.c diff --git a/reactos/dll/keyboard/kbdsk1/kbdsk1.rc b/dll/keyboard/kbdsk1/kbdsk1.rc similarity index 100% rename from reactos/dll/keyboard/kbdsk1/kbdsk1.rc rename to dll/keyboard/kbdsk1/kbdsk1.rc diff --git a/reactos/dll/keyboard/kbdsk1/kbdsk1.spec b/dll/keyboard/kbdsk1/kbdsk1.spec similarity index 100% rename from reactos/dll/keyboard/kbdsk1/kbdsk1.spec rename to dll/keyboard/kbdsk1/kbdsk1.spec diff --git a/reactos/dll/keyboard/kbdsw/CMakeLists.txt b/dll/keyboard/kbdsw/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdsw/CMakeLists.txt rename to dll/keyboard/kbdsw/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdsw/kbdsw.c b/dll/keyboard/kbdsw/kbdsw.c similarity index 100% rename from reactos/dll/keyboard/kbdsw/kbdsw.c rename to dll/keyboard/kbdsw/kbdsw.c diff --git a/reactos/dll/keyboard/kbdsw/kbdsw.rc b/dll/keyboard/kbdsw/kbdsw.rc similarity index 100% rename from reactos/dll/keyboard/kbdsw/kbdsw.rc rename to dll/keyboard/kbdsw/kbdsw.rc diff --git a/reactos/dll/keyboard/kbdsw/kbdsw.spec b/dll/keyboard/kbdsw/kbdsw.spec similarity index 100% rename from reactos/dll/keyboard/kbdsw/kbdsw.spec rename to dll/keyboard/kbdsw/kbdsw.spec diff --git a/reactos/dll/keyboard/kbdtat/CMakeLists.txt b/dll/keyboard/kbdtat/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdtat/CMakeLists.txt rename to dll/keyboard/kbdtat/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdtat/kbdtat.c b/dll/keyboard/kbdtat/kbdtat.c similarity index 100% rename from reactos/dll/keyboard/kbdtat/kbdtat.c rename to dll/keyboard/kbdtat/kbdtat.c diff --git a/reactos/dll/keyboard/kbdtat/kbdtat.rc b/dll/keyboard/kbdtat/kbdtat.rc similarity index 100% rename from reactos/dll/keyboard/kbdtat/kbdtat.rc rename to dll/keyboard/kbdtat/kbdtat.rc diff --git a/reactos/dll/keyboard/kbdtat/kbdtat.spec b/dll/keyboard/kbdtat/kbdtat.spec similarity index 100% rename from reactos/dll/keyboard/kbdtat/kbdtat.spec rename to dll/keyboard/kbdtat/kbdtat.spec diff --git a/reactos/dll/keyboard/kbdth0/CMakeLists.txt b/dll/keyboard/kbdth0/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdth0/CMakeLists.txt rename to dll/keyboard/kbdth0/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdth0/kbdth0.c b/dll/keyboard/kbdth0/kbdth0.c similarity index 100% rename from reactos/dll/keyboard/kbdth0/kbdth0.c rename to dll/keyboard/kbdth0/kbdth0.c diff --git a/reactos/dll/keyboard/kbdth0/kbdth0.rc b/dll/keyboard/kbdth0/kbdth0.rc similarity index 100% rename from reactos/dll/keyboard/kbdth0/kbdth0.rc rename to dll/keyboard/kbdth0/kbdth0.rc diff --git a/reactos/dll/keyboard/kbdth0/kbdth0.spec b/dll/keyboard/kbdth0/kbdth0.spec similarity index 100% rename from reactos/dll/keyboard/kbdth0/kbdth0.spec rename to dll/keyboard/kbdth0/kbdth0.spec diff --git a/reactos/dll/keyboard/kbdth1/CMakeLists.txt b/dll/keyboard/kbdth1/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdth1/CMakeLists.txt rename to dll/keyboard/kbdth1/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdth1/kbdth1.c b/dll/keyboard/kbdth1/kbdth1.c similarity index 100% rename from reactos/dll/keyboard/kbdth1/kbdth1.c rename to dll/keyboard/kbdth1/kbdth1.c diff --git a/reactos/dll/keyboard/kbdth1/kbdth1.rc b/dll/keyboard/kbdth1/kbdth1.rc similarity index 100% rename from reactos/dll/keyboard/kbdth1/kbdth1.rc rename to dll/keyboard/kbdth1/kbdth1.rc diff --git a/reactos/dll/keyboard/kbdth1/kbdth1.spec b/dll/keyboard/kbdth1/kbdth1.spec similarity index 100% rename from reactos/dll/keyboard/kbdth1/kbdth1.spec rename to dll/keyboard/kbdth1/kbdth1.spec diff --git a/reactos/dll/keyboard/kbdth2/CMakeLists.txt b/dll/keyboard/kbdth2/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdth2/CMakeLists.txt rename to dll/keyboard/kbdth2/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdth2/kbdth2.c b/dll/keyboard/kbdth2/kbdth2.c similarity index 100% rename from reactos/dll/keyboard/kbdth2/kbdth2.c rename to dll/keyboard/kbdth2/kbdth2.c diff --git a/reactos/dll/keyboard/kbdth2/kbdth2.rc b/dll/keyboard/kbdth2/kbdth2.rc similarity index 100% rename from reactos/dll/keyboard/kbdth2/kbdth2.rc rename to dll/keyboard/kbdth2/kbdth2.rc diff --git a/reactos/dll/keyboard/kbdth2/kbdth2.spec b/dll/keyboard/kbdth2/kbdth2.spec similarity index 100% rename from reactos/dll/keyboard/kbdth2/kbdth2.spec rename to dll/keyboard/kbdth2/kbdth2.spec diff --git a/reactos/dll/keyboard/kbdth3/CMakeLists.txt b/dll/keyboard/kbdth3/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdth3/CMakeLists.txt rename to dll/keyboard/kbdth3/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdth3/kbdth3.c b/dll/keyboard/kbdth3/kbdth3.c similarity index 100% rename from reactos/dll/keyboard/kbdth3/kbdth3.c rename to dll/keyboard/kbdth3/kbdth3.c diff --git a/reactos/dll/keyboard/kbdth3/kbdth3.rc b/dll/keyboard/kbdth3/kbdth3.rc similarity index 100% rename from reactos/dll/keyboard/kbdth3/kbdth3.rc rename to dll/keyboard/kbdth3/kbdth3.rc diff --git a/reactos/dll/keyboard/kbdth3/kbdth3.spec b/dll/keyboard/kbdth3/kbdth3.spec similarity index 100% rename from reactos/dll/keyboard/kbdth3/kbdth3.spec rename to dll/keyboard/kbdth3/kbdth3.spec diff --git a/reactos/dll/keyboard/kbdtuf/CMakeLists.txt b/dll/keyboard/kbdtuf/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdtuf/CMakeLists.txt rename to dll/keyboard/kbdtuf/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdtuf/kbdtuf.c b/dll/keyboard/kbdtuf/kbdtuf.c similarity index 100% rename from reactos/dll/keyboard/kbdtuf/kbdtuf.c rename to dll/keyboard/kbdtuf/kbdtuf.c diff --git a/reactos/dll/keyboard/kbdtuf/kbdtuf.rc b/dll/keyboard/kbdtuf/kbdtuf.rc similarity index 100% rename from reactos/dll/keyboard/kbdtuf/kbdtuf.rc rename to dll/keyboard/kbdtuf/kbdtuf.rc diff --git a/reactos/dll/keyboard/kbdtuf/kbdtuf.spec b/dll/keyboard/kbdtuf/kbdtuf.spec similarity index 100% rename from reactos/dll/keyboard/kbdtuf/kbdtuf.spec rename to dll/keyboard/kbdtuf/kbdtuf.spec diff --git a/reactos/dll/keyboard/kbdtuq/CMakeLists.txt b/dll/keyboard/kbdtuq/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdtuq/CMakeLists.txt rename to dll/keyboard/kbdtuq/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdtuq/kbdtuq.c b/dll/keyboard/kbdtuq/kbdtuq.c similarity index 100% rename from reactos/dll/keyboard/kbdtuq/kbdtuq.c rename to dll/keyboard/kbdtuq/kbdtuq.c diff --git a/reactos/dll/keyboard/kbdtuq/kbdtuq.rc b/dll/keyboard/kbdtuq/kbdtuq.rc similarity index 100% rename from reactos/dll/keyboard/kbdtuq/kbdtuq.rc rename to dll/keyboard/kbdtuq/kbdtuq.rc diff --git a/reactos/dll/keyboard/kbdtuq/kbdtuq.spec b/dll/keyboard/kbdtuq/kbdtuq.spec similarity index 100% rename from reactos/dll/keyboard/kbdtuq/kbdtuq.spec rename to dll/keyboard/kbdtuq/kbdtuq.spec diff --git a/reactos/dll/keyboard/kbduk/CMakeLists.txt b/dll/keyboard/kbduk/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbduk/CMakeLists.txt rename to dll/keyboard/kbduk/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbduk/kbduk.c b/dll/keyboard/kbduk/kbduk.c similarity index 100% rename from reactos/dll/keyboard/kbduk/kbduk.c rename to dll/keyboard/kbduk/kbduk.c diff --git a/reactos/dll/keyboard/kbduk/kbduk.rc b/dll/keyboard/kbduk/kbduk.rc similarity index 100% rename from reactos/dll/keyboard/kbduk/kbduk.rc rename to dll/keyboard/kbduk/kbduk.rc diff --git a/reactos/dll/keyboard/kbduk/kbduk.spec b/dll/keyboard/kbduk/kbduk.spec similarity index 100% rename from reactos/dll/keyboard/kbduk/kbduk.spec rename to dll/keyboard/kbduk/kbduk.spec diff --git a/reactos/dll/keyboard/kbdur/CMakeLists.txt b/dll/keyboard/kbdur/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdur/CMakeLists.txt rename to dll/keyboard/kbdur/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdur/kbdur.c b/dll/keyboard/kbdur/kbdur.c similarity index 100% rename from reactos/dll/keyboard/kbdur/kbdur.c rename to dll/keyboard/kbdur/kbdur.c diff --git a/reactos/dll/keyboard/kbdur/kbdur.rc b/dll/keyboard/kbdur/kbdur.rc similarity index 100% rename from reactos/dll/keyboard/kbdur/kbdur.rc rename to dll/keyboard/kbdur/kbdur.rc diff --git a/reactos/dll/keyboard/kbdur/kbdur.spec b/dll/keyboard/kbdur/kbdur.spec similarity index 100% rename from reactos/dll/keyboard/kbdur/kbdur.spec rename to dll/keyboard/kbdur/kbdur.spec diff --git a/reactos/dll/keyboard/kbdurs/CMakeLists.txt b/dll/keyboard/kbdurs/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdurs/CMakeLists.txt rename to dll/keyboard/kbdurs/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdurs/kbdurs.c b/dll/keyboard/kbdurs/kbdurs.c similarity index 100% rename from reactos/dll/keyboard/kbdurs/kbdurs.c rename to dll/keyboard/kbdurs/kbdurs.c diff --git a/reactos/dll/keyboard/kbdurs/kbdurs.rc b/dll/keyboard/kbdurs/kbdurs.rc similarity index 100% rename from reactos/dll/keyboard/kbdurs/kbdurs.rc rename to dll/keyboard/kbdurs/kbdurs.rc diff --git a/reactos/dll/keyboard/kbdurs/kbdurs.spec b/dll/keyboard/kbdurs/kbdurs.spec similarity index 100% rename from reactos/dll/keyboard/kbdurs/kbdurs.spec rename to dll/keyboard/kbdurs/kbdurs.spec diff --git a/reactos/dll/keyboard/kbdus/CMakeLists.txt b/dll/keyboard/kbdus/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdus/CMakeLists.txt rename to dll/keyboard/kbdus/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdus/kbdus.c b/dll/keyboard/kbdus/kbdus.c similarity index 100% rename from reactos/dll/keyboard/kbdus/kbdus.c rename to dll/keyboard/kbdus/kbdus.c diff --git a/reactos/dll/keyboard/kbdus/kbdus.rc b/dll/keyboard/kbdus/kbdus.rc similarity index 100% rename from reactos/dll/keyboard/kbdus/kbdus.rc rename to dll/keyboard/kbdus/kbdus.rc diff --git a/reactos/dll/keyboard/kbdus/kbdus.spec b/dll/keyboard/kbdus/kbdus.spec similarity index 100% rename from reactos/dll/keyboard/kbdus/kbdus.spec rename to dll/keyboard/kbdus/kbdus.spec diff --git a/reactos/dll/keyboard/kbdusa/CMakeLists.txt b/dll/keyboard/kbdusa/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdusa/CMakeLists.txt rename to dll/keyboard/kbdusa/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdusa/kbdusa.c b/dll/keyboard/kbdusa/kbdusa.c similarity index 100% rename from reactos/dll/keyboard/kbdusa/kbdusa.c rename to dll/keyboard/kbdusa/kbdusa.c diff --git a/reactos/dll/keyboard/kbdusa/kbdusa.rc b/dll/keyboard/kbdusa/kbdusa.rc similarity index 100% rename from reactos/dll/keyboard/kbdusa/kbdusa.rc rename to dll/keyboard/kbdusa/kbdusa.rc diff --git a/reactos/dll/keyboard/kbdusa/kbdusa.spec b/dll/keyboard/kbdusa/kbdusa.spec similarity index 100% rename from reactos/dll/keyboard/kbdusa/kbdusa.spec rename to dll/keyboard/kbdusa/kbdusa.spec diff --git a/reactos/dll/keyboard/kbdusl/CMakeLists.txt b/dll/keyboard/kbdusl/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdusl/CMakeLists.txt rename to dll/keyboard/kbdusl/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdusl/kbdusl.c b/dll/keyboard/kbdusl/kbdusl.c similarity index 100% rename from reactos/dll/keyboard/kbdusl/kbdusl.c rename to dll/keyboard/kbdusl/kbdusl.c diff --git a/reactos/dll/keyboard/kbdusl/kbdusl.rc b/dll/keyboard/kbdusl/kbdusl.rc similarity index 100% rename from reactos/dll/keyboard/kbdusl/kbdusl.rc rename to dll/keyboard/kbdusl/kbdusl.rc diff --git a/reactos/dll/keyboard/kbdusl/kbdusl.spec b/dll/keyboard/kbdusl/kbdusl.spec similarity index 100% rename from reactos/dll/keyboard/kbdusl/kbdusl.spec rename to dll/keyboard/kbdusl/kbdusl.spec diff --git a/reactos/dll/keyboard/kbdusr/CMakeLists.txt b/dll/keyboard/kbdusr/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdusr/CMakeLists.txt rename to dll/keyboard/kbdusr/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdusr/kbdusr.c b/dll/keyboard/kbdusr/kbdusr.c similarity index 100% rename from reactos/dll/keyboard/kbdusr/kbdusr.c rename to dll/keyboard/kbdusr/kbdusr.c diff --git a/reactos/dll/keyboard/kbdusr/kbdusr.rc b/dll/keyboard/kbdusr/kbdusr.rc similarity index 100% rename from reactos/dll/keyboard/kbdusr/kbdusr.rc rename to dll/keyboard/kbdusr/kbdusr.rc diff --git a/reactos/dll/keyboard/kbdusr/kbdusr.spec b/dll/keyboard/kbdusr/kbdusr.spec similarity index 100% rename from reactos/dll/keyboard/kbdusr/kbdusr.spec rename to dll/keyboard/kbdusr/kbdusr.spec diff --git a/reactos/dll/keyboard/kbdusx/CMakeLists.txt b/dll/keyboard/kbdusx/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdusx/CMakeLists.txt rename to dll/keyboard/kbdusx/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdusx/kbdusx.c b/dll/keyboard/kbdusx/kbdusx.c similarity index 100% rename from reactos/dll/keyboard/kbdusx/kbdusx.c rename to dll/keyboard/kbdusx/kbdusx.c diff --git a/reactos/dll/keyboard/kbdusx/kbdusx.rc b/dll/keyboard/kbdusx/kbdusx.rc similarity index 100% rename from reactos/dll/keyboard/kbdusx/kbdusx.rc rename to dll/keyboard/kbdusx/kbdusx.rc diff --git a/reactos/dll/keyboard/kbdusx/kbdusx.spec b/dll/keyboard/kbdusx/kbdusx.spec similarity index 100% rename from reactos/dll/keyboard/kbdusx/kbdusx.spec rename to dll/keyboard/kbdusx/kbdusx.spec diff --git a/reactos/dll/keyboard/kbduzb/CMakeLists.txt b/dll/keyboard/kbduzb/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbduzb/CMakeLists.txt rename to dll/keyboard/kbduzb/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbduzb/kbduzb.c b/dll/keyboard/kbduzb/kbduzb.c similarity index 100% rename from reactos/dll/keyboard/kbduzb/kbduzb.c rename to dll/keyboard/kbduzb/kbduzb.c diff --git a/reactos/dll/keyboard/kbduzb/kbduzb.rc b/dll/keyboard/kbduzb/kbduzb.rc similarity index 100% rename from reactos/dll/keyboard/kbduzb/kbduzb.rc rename to dll/keyboard/kbduzb/kbduzb.rc diff --git a/reactos/dll/keyboard/kbduzb/kbduzb.spec b/dll/keyboard/kbduzb/kbduzb.spec similarity index 100% rename from reactos/dll/keyboard/kbduzb/kbduzb.spec rename to dll/keyboard/kbduzb/kbduzb.spec diff --git a/reactos/dll/keyboard/kbdvntc/CMakeLists.txt b/dll/keyboard/kbdvntc/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdvntc/CMakeLists.txt rename to dll/keyboard/kbdvntc/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdvntc/kbdvntc.c b/dll/keyboard/kbdvntc/kbdvntc.c similarity index 100% rename from reactos/dll/keyboard/kbdvntc/kbdvntc.c rename to dll/keyboard/kbdvntc/kbdvntc.c diff --git a/reactos/dll/keyboard/kbdvntc/kbdvntc.rc b/dll/keyboard/kbdvntc/kbdvntc.rc similarity index 100% rename from reactos/dll/keyboard/kbdvntc/kbdvntc.rc rename to dll/keyboard/kbdvntc/kbdvntc.rc diff --git a/reactos/dll/keyboard/kbdvntc/kbdvntc.spec b/dll/keyboard/kbdvntc/kbdvntc.spec similarity index 100% rename from reactos/dll/keyboard/kbdvntc/kbdvntc.spec rename to dll/keyboard/kbdvntc/kbdvntc.spec diff --git a/reactos/dll/keyboard/kbdycc/CMakeLists.txt b/dll/keyboard/kbdycc/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdycc/CMakeLists.txt rename to dll/keyboard/kbdycc/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdycc/kbdycc.c b/dll/keyboard/kbdycc/kbdycc.c similarity index 100% rename from reactos/dll/keyboard/kbdycc/kbdycc.c rename to dll/keyboard/kbdycc/kbdycc.c diff --git a/reactos/dll/keyboard/kbdycc/kbdycc.rc b/dll/keyboard/kbdycc/kbdycc.rc similarity index 100% rename from reactos/dll/keyboard/kbdycc/kbdycc.rc rename to dll/keyboard/kbdycc/kbdycc.rc diff --git a/reactos/dll/keyboard/kbdycc/kbdycc.spec b/dll/keyboard/kbdycc/kbdycc.spec similarity index 100% rename from reactos/dll/keyboard/kbdycc/kbdycc.spec rename to dll/keyboard/kbdycc/kbdycc.spec diff --git a/reactos/dll/keyboard/kbdycl/CMakeLists.txt b/dll/keyboard/kbdycl/CMakeLists.txt similarity index 100% rename from reactos/dll/keyboard/kbdycl/CMakeLists.txt rename to dll/keyboard/kbdycl/CMakeLists.txt diff --git a/reactos/dll/keyboard/kbdycl/kbdycl.c b/dll/keyboard/kbdycl/kbdycl.c similarity index 100% rename from reactos/dll/keyboard/kbdycl/kbdycl.c rename to dll/keyboard/kbdycl/kbdycl.c diff --git a/reactos/dll/keyboard/kbdycl/kbdycl.rc b/dll/keyboard/kbdycl/kbdycl.rc similarity index 100% rename from reactos/dll/keyboard/kbdycl/kbdycl.rc rename to dll/keyboard/kbdycl/kbdycl.rc diff --git a/reactos/dll/keyboard/kbdycl/kbdycl.spec b/dll/keyboard/kbdycl/kbdycl.spec similarity index 100% rename from reactos/dll/keyboard/kbdycl/kbdycl.spec rename to dll/keyboard/kbdycl/kbdycl.spec diff --git a/reactos/dll/nls/CMakeLists.txt b/dll/nls/CMakeLists.txt similarity index 100% rename from reactos/dll/nls/CMakeLists.txt rename to dll/nls/CMakeLists.txt diff --git a/reactos/dll/nls/idndl/CMakeLists.txt b/dll/nls/idndl/CMakeLists.txt similarity index 100% rename from reactos/dll/nls/idndl/CMakeLists.txt rename to dll/nls/idndl/CMakeLists.txt diff --git a/reactos/dll/nls/idndl/idndl.cpp b/dll/nls/idndl/idndl.cpp similarity index 100% rename from reactos/dll/nls/idndl/idndl.cpp rename to dll/nls/idndl/idndl.cpp diff --git a/reactos/dll/nls/idndl/idndl.spec b/dll/nls/idndl/idndl.spec similarity index 100% rename from reactos/dll/nls/idndl/idndl.spec rename to dll/nls/idndl/idndl.spec diff --git a/reactos/dll/nls/normaliz/CMakeLists.txt b/dll/nls/normaliz/CMakeLists.txt similarity index 100% rename from reactos/dll/nls/normaliz/CMakeLists.txt rename to dll/nls/normaliz/CMakeLists.txt diff --git a/reactos/dll/nls/normaliz/dummy.c b/dll/nls/normaliz/dummy.c similarity index 100% rename from reactos/dll/nls/normaliz/dummy.c rename to dll/nls/normaliz/dummy.c diff --git a/reactos/dll/nls/normaliz/normaliz.spec b/dll/nls/normaliz/normaliz.spec similarity index 100% rename from reactos/dll/nls/normaliz/normaliz.spec rename to dll/nls/normaliz/normaliz.spec diff --git a/reactos/dll/ntdll/CMakeLists.txt b/dll/ntdll/CMakeLists.txt similarity index 100% rename from reactos/dll/ntdll/CMakeLists.txt rename to dll/ntdll/CMakeLists.txt diff --git a/reactos/dll/ntdll/csr/api.c b/dll/ntdll/csr/api.c similarity index 100% rename from reactos/dll/ntdll/csr/api.c rename to dll/ntdll/csr/api.c diff --git a/reactos/dll/ntdll/csr/capture.c b/dll/ntdll/csr/capture.c similarity index 100% rename from reactos/dll/ntdll/csr/capture.c rename to dll/ntdll/csr/capture.c diff --git a/reactos/dll/ntdll/csr/connect.c b/dll/ntdll/csr/connect.c similarity index 100% rename from reactos/dll/ntdll/csr/connect.c rename to dll/ntdll/csr/connect.c diff --git a/reactos/dll/ntdll/dbg/dbgui.c b/dll/ntdll/dbg/dbgui.c similarity index 100% rename from reactos/dll/ntdll/dbg/dbgui.c rename to dll/ntdll/dbg/dbgui.c diff --git a/reactos/dll/ntdll/def/ntdll.rc b/dll/ntdll/def/ntdll.rc similarity index 100% rename from reactos/dll/ntdll/def/ntdll.rc rename to dll/ntdll/def/ntdll.rc diff --git a/reactos/dll/ntdll/def/ntdll.spec b/dll/ntdll/def/ntdll.spec similarity index 100% rename from reactos/dll/ntdll/def/ntdll.spec rename to dll/ntdll/def/ntdll.spec diff --git a/reactos/dll/ntdll/dispatch/amd64/dispatch.S b/dll/ntdll/dispatch/amd64/dispatch.S similarity index 100% rename from reactos/dll/ntdll/dispatch/amd64/dispatch.S rename to dll/ntdll/dispatch/amd64/dispatch.S diff --git a/reactos/dll/ntdll/dispatch/amd64/stubs.c b/dll/ntdll/dispatch/amd64/stubs.c similarity index 100% rename from reactos/dll/ntdll/dispatch/amd64/stubs.c rename to dll/ntdll/dispatch/amd64/stubs.c diff --git a/reactos/dll/ntdll/dispatch/arm/stubs_asm.s b/dll/ntdll/dispatch/arm/stubs_asm.s similarity index 100% rename from reactos/dll/ntdll/dispatch/arm/stubs_asm.s rename to dll/ntdll/dispatch/arm/stubs_asm.s diff --git a/reactos/dll/ntdll/dispatch/dispatch.c b/dll/ntdll/dispatch/dispatch.c similarity index 100% rename from reactos/dll/ntdll/dispatch/dispatch.c rename to dll/ntdll/dispatch/dispatch.c diff --git a/reactos/dll/ntdll/dispatch/i386/dispatch.S b/dll/ntdll/dispatch/i386/dispatch.S similarity index 100% rename from reactos/dll/ntdll/dispatch/i386/dispatch.S rename to dll/ntdll/dispatch/i386/dispatch.S diff --git a/reactos/dll/ntdll/include/ntdll.h b/dll/ntdll/include/ntdll.h similarity index 100% rename from reactos/dll/ntdll/include/ntdll.h rename to dll/ntdll/include/ntdll.h diff --git a/reactos/dll/ntdll/include/ntdllp.h b/dll/ntdll/include/ntdllp.h similarity index 100% rename from reactos/dll/ntdll/include/ntdllp.h rename to dll/ntdll/include/ntdllp.h diff --git a/reactos/dll/ntdll/ldr/ldrapi.c b/dll/ntdll/ldr/ldrapi.c similarity index 100% rename from reactos/dll/ntdll/ldr/ldrapi.c rename to dll/ntdll/ldr/ldrapi.c diff --git a/reactos/dll/ntdll/ldr/ldrinit.c b/dll/ntdll/ldr/ldrinit.c similarity index 100% rename from reactos/dll/ntdll/ldr/ldrinit.c rename to dll/ntdll/ldr/ldrinit.c diff --git a/reactos/dll/ntdll/ldr/ldrpe.c b/dll/ntdll/ldr/ldrpe.c similarity index 100% rename from reactos/dll/ntdll/ldr/ldrpe.c rename to dll/ntdll/ldr/ldrpe.c diff --git a/reactos/dll/ntdll/ldr/ldrutils.c b/dll/ntdll/ldr/ldrutils.c similarity index 100% rename from reactos/dll/ntdll/ldr/ldrutils.c rename to dll/ntdll/ldr/ldrutils.c diff --git a/reactos/dll/ntdll/rtl/libsupp.c b/dll/ntdll/rtl/libsupp.c similarity index 100% rename from reactos/dll/ntdll/rtl/libsupp.c rename to dll/ntdll/rtl/libsupp.c diff --git a/reactos/dll/ntdll/rtl/version.c b/dll/ntdll/rtl/version.c similarity index 100% rename from reactos/dll/ntdll/rtl/version.c rename to dll/ntdll/rtl/version.c diff --git a/reactos/dll/opengl/CMakeLists.txt b/dll/opengl/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/CMakeLists.txt rename to dll/opengl/CMakeLists.txt diff --git a/reactos/dll/opengl/Mesa_for_ReactOS.txt b/dll/opengl/Mesa_for_ReactOS.txt similarity index 100% rename from reactos/dll/opengl/Mesa_for_ReactOS.txt rename to dll/opengl/Mesa_for_ReactOS.txt diff --git a/reactos/dll/opengl/mesa/CMakeLists.txt b/dll/opengl/mesa/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/CMakeLists.txt rename to dll/opengl/mesa/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/SConstruct b/dll/opengl/mesa/SConstruct similarity index 100% rename from reactos/dll/opengl/mesa/SConstruct rename to dll/opengl/mesa/SConstruct diff --git a/reactos/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_indices_gen.c b/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_indices_gen.c similarity index 100% rename from reactos/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_indices_gen.c rename to dll/opengl/mesa/generated/gallium/auxiliary/indices/u_indices_gen.c diff --git a/reactos/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_unfilled_gen.c b/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_unfilled_gen.c similarity index 100% rename from reactos/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_unfilled_gen.c rename to dll/opengl/mesa/generated/gallium/auxiliary/indices/u_unfilled_gen.c diff --git a/reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_srgb.c b/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_srgb.c similarity index 100% rename from reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_srgb.c rename to dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_srgb.c diff --git a/reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_table.c b/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_table.c similarity index 100% rename from reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_table.c rename to dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_table.c diff --git a/reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_half.c b/dll/opengl/mesa/generated/gallium/auxiliary/util/u_half.c similarity index 100% rename from reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_half.c rename to dll/opengl/mesa/generated/gallium/auxiliary/util/u_half.c diff --git a/reactos/dll/opengl/mesa/generated/glsl/builtin_function.cpp b/dll/opengl/mesa/generated/glsl/builtin_function.cpp similarity index 100% rename from reactos/dll/opengl/mesa/generated/glsl/builtin_function.cpp rename to dll/opengl/mesa/generated/glsl/builtin_function.cpp diff --git a/reactos/dll/opengl/mesa/generated/glsl/glcpp/glcpp-lex.c b/dll/opengl/mesa/generated/glsl/glcpp/glcpp-lex.c similarity index 100% rename from reactos/dll/opengl/mesa/generated/glsl/glcpp/glcpp-lex.c rename to dll/opengl/mesa/generated/glsl/glcpp/glcpp-lex.c diff --git a/reactos/dll/opengl/mesa/generated/glsl/glcpp/glcpp-parse.c b/dll/opengl/mesa/generated/glsl/glcpp/glcpp-parse.c similarity index 100% rename from reactos/dll/opengl/mesa/generated/glsl/glcpp/glcpp-parse.c rename to dll/opengl/mesa/generated/glsl/glcpp/glcpp-parse.c diff --git a/reactos/dll/opengl/mesa/generated/glsl/glcpp/glcpp-parse.h b/dll/opengl/mesa/generated/glsl/glcpp/glcpp-parse.h similarity index 100% rename from reactos/dll/opengl/mesa/generated/glsl/glcpp/glcpp-parse.h rename to dll/opengl/mesa/generated/glsl/glcpp/glcpp-parse.h diff --git a/reactos/dll/opengl/mesa/generated/glsl/glsl_lexer.cpp b/dll/opengl/mesa/generated/glsl/glsl_lexer.cpp similarity index 100% rename from reactos/dll/opengl/mesa/generated/glsl/glsl_lexer.cpp rename to dll/opengl/mesa/generated/glsl/glsl_lexer.cpp diff --git a/reactos/dll/opengl/mesa/generated/glsl/glsl_parser.cpp b/dll/opengl/mesa/generated/glsl/glsl_parser.cpp similarity index 100% rename from reactos/dll/opengl/mesa/generated/glsl/glsl_parser.cpp rename to dll/opengl/mesa/generated/glsl/glsl_parser.cpp diff --git a/reactos/dll/opengl/mesa/generated/glsl/glsl_parser.h b/dll/opengl/mesa/generated/glsl/glsl_parser.h similarity index 100% rename from reactos/dll/opengl/mesa/generated/glsl/glsl_parser.h rename to dll/opengl/mesa/generated/glsl/glsl_parser.h diff --git a/reactos/dll/opengl/mesa/generated/mesa/matypes.h b/dll/opengl/mesa/generated/mesa/matypes.h similarity index 100% rename from reactos/dll/opengl/mesa/generated/mesa/matypes.h rename to dll/opengl/mesa/generated/mesa/matypes.h diff --git a/reactos/dll/opengl/mesa/generated/mesa/program/lex.yy.c b/dll/opengl/mesa/generated/mesa/program/lex.yy.c similarity index 100% rename from reactos/dll/opengl/mesa/generated/mesa/program/lex.yy.c rename to dll/opengl/mesa/generated/mesa/program/lex.yy.c diff --git a/reactos/dll/opengl/mesa/generated/mesa/program/program_parse.tab.c b/dll/opengl/mesa/generated/mesa/program/program_parse.tab.c similarity index 100% rename from reactos/dll/opengl/mesa/generated/mesa/program/program_parse.tab.c rename to dll/opengl/mesa/generated/mesa/program/program_parse.tab.c diff --git a/reactos/dll/opengl/mesa/generated/mesa/program/program_parse.tab.h b/dll/opengl/mesa/generated/mesa/program/program_parse.tab.h similarity index 100% rename from reactos/dll/opengl/mesa/generated/mesa/program/program_parse.tab.h rename to dll/opengl/mesa/generated/mesa/program/program_parse.tab.h diff --git a/reactos/dll/opengl/mesa/include/GL/gl.h b/dll/opengl/mesa/include/GL/gl.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/gl.h rename to dll/opengl/mesa/include/GL/gl.h diff --git a/reactos/dll/opengl/mesa/include/GL/gl_mangle.h b/dll/opengl/mesa/include/GL/gl_mangle.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/gl_mangle.h rename to dll/opengl/mesa/include/GL/gl_mangle.h diff --git a/reactos/dll/opengl/mesa/include/GL/glext.h b/dll/opengl/mesa/include/GL/glext.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/glext.h rename to dll/opengl/mesa/include/GL/glext.h diff --git a/reactos/dll/opengl/mesa/include/GL/glu.h b/dll/opengl/mesa/include/GL/glu.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/glu.h rename to dll/opengl/mesa/include/GL/glu.h diff --git a/reactos/dll/opengl/mesa/include/GL/glu_mangle.h b/dll/opengl/mesa/include/GL/glu_mangle.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/glu_mangle.h rename to dll/opengl/mesa/include/GL/glu_mangle.h diff --git a/reactos/dll/opengl/mesa/include/GL/glx.h b/dll/opengl/mesa/include/GL/glx.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/glx.h rename to dll/opengl/mesa/include/GL/glx.h diff --git a/reactos/dll/opengl/mesa/include/GL/glx_mangle.h b/dll/opengl/mesa/include/GL/glx_mangle.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/glx_mangle.h rename to dll/opengl/mesa/include/GL/glx_mangle.h diff --git a/reactos/dll/opengl/mesa/include/GL/glxext.h b/dll/opengl/mesa/include/GL/glxext.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/glxext.h rename to dll/opengl/mesa/include/GL/glxext.h diff --git a/reactos/dll/opengl/mesa/include/GL/internal/dri_interface.h b/dll/opengl/mesa/include/GL/internal/dri_interface.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/internal/dri_interface.h rename to dll/opengl/mesa/include/GL/internal/dri_interface.h diff --git a/reactos/dll/opengl/mesa/include/GL/internal/sarea.h b/dll/opengl/mesa/include/GL/internal/sarea.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/internal/sarea.h rename to dll/opengl/mesa/include/GL/internal/sarea.h diff --git a/reactos/dll/opengl/mesa/include/GL/osmesa.h b/dll/opengl/mesa/include/GL/osmesa.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/osmesa.h rename to dll/opengl/mesa/include/GL/osmesa.h diff --git a/reactos/dll/opengl/mesa/include/GL/vms_x_fix.h b/dll/opengl/mesa/include/GL/vms_x_fix.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/vms_x_fix.h rename to dll/opengl/mesa/include/GL/vms_x_fix.h diff --git a/reactos/dll/opengl/mesa/include/GL/wglext.h b/dll/opengl/mesa/include/GL/wglext.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/wglext.h rename to dll/opengl/mesa/include/GL/wglext.h diff --git a/reactos/dll/opengl/mesa/include/GL/wmesa.h b/dll/opengl/mesa/include/GL/wmesa.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GL/wmesa.h rename to dll/opengl/mesa/include/GL/wmesa.h diff --git a/reactos/dll/opengl/mesa/include/GLES/egl.h b/dll/opengl/mesa/include/GLES/egl.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GLES/egl.h rename to dll/opengl/mesa/include/GLES/egl.h diff --git a/reactos/dll/opengl/mesa/include/GLES/gl.h b/dll/opengl/mesa/include/GLES/gl.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GLES/gl.h rename to dll/opengl/mesa/include/GLES/gl.h diff --git a/reactos/dll/opengl/mesa/include/GLES/glext.h b/dll/opengl/mesa/include/GLES/glext.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GLES/glext.h rename to dll/opengl/mesa/include/GLES/glext.h diff --git a/reactos/dll/opengl/mesa/include/GLES/glplatform.h b/dll/opengl/mesa/include/GLES/glplatform.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GLES/glplatform.h rename to dll/opengl/mesa/include/GLES/glplatform.h diff --git a/reactos/dll/opengl/mesa/include/GLES2/gl2.h b/dll/opengl/mesa/include/GLES2/gl2.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GLES2/gl2.h rename to dll/opengl/mesa/include/GLES2/gl2.h diff --git a/reactos/dll/opengl/mesa/include/GLES2/gl2ext.h b/dll/opengl/mesa/include/GLES2/gl2ext.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GLES2/gl2ext.h rename to dll/opengl/mesa/include/GLES2/gl2ext.h diff --git a/reactos/dll/opengl/mesa/include/GLES2/gl2platform.h b/dll/opengl/mesa/include/GLES2/gl2platform.h similarity index 100% rename from reactos/dll/opengl/mesa/include/GLES2/gl2platform.h rename to dll/opengl/mesa/include/GLES2/gl2platform.h diff --git a/reactos/dll/opengl/mesa/include/KHR/khrplatform.h b/dll/opengl/mesa/include/KHR/khrplatform.h similarity index 100% rename from reactos/dll/opengl/mesa/include/KHR/khrplatform.h rename to dll/opengl/mesa/include/KHR/khrplatform.h diff --git a/reactos/dll/opengl/mesa/include/c99/inttypes.h b/dll/opengl/mesa/include/c99/inttypes.h similarity index 100% rename from reactos/dll/opengl/mesa/include/c99/inttypes.h rename to dll/opengl/mesa/include/c99/inttypes.h diff --git a/reactos/dll/opengl/mesa/include/c99/stdbool.h b/dll/opengl/mesa/include/c99/stdbool.h similarity index 100% rename from reactos/dll/opengl/mesa/include/c99/stdbool.h rename to dll/opengl/mesa/include/c99/stdbool.h diff --git a/reactos/dll/opengl/mesa/include/c99/stdint.h b/dll/opengl/mesa/include/c99/stdint.h similarity index 100% rename from reactos/dll/opengl/mesa/include/c99/stdint.h rename to dll/opengl/mesa/include/c99/stdint.h diff --git a/reactos/dll/opengl/mesa/src/CMakeLists.txt b/dll/opengl/mesa/src/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/CMakeLists.txt rename to dll/opengl/mesa/src/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/src/SConscript b/dll/opengl/mesa/src/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/SConscript rename to dll/opengl/mesa/src/SConscript diff --git a/reactos/dll/opengl/mesa/src/gallium/CMakeLists.txt b/dll/opengl/mesa/src/gallium/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/CMakeLists.txt rename to dll/opengl/mesa/src/gallium/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/src/gallium/SConscript b/dll/opengl/mesa/src/gallium/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/SConscript rename to dll/opengl/mesa/src/gallium/SConscript diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/CMakeLists.txt b/dll/opengl/mesa/src/gallium/auxiliary/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/CMakeLists.txt rename to dll/opengl/mesa/src/gallium/auxiliary/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/Makefile.sources b/dll/opengl/mesa/src/gallium/auxiliary/Makefile.sources similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/Makefile.sources rename to dll/opengl/mesa/src/gallium/auxiliary/Makefile.sources diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/SConscript b/dll/opengl/mesa/src/gallium/auxiliary/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/SConscript rename to dll/opengl/mesa/src/gallium/auxiliary/SConscript diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_cache.c b/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_cache.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_cache.c rename to dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_cache.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_cache.h b/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_cache.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_cache.h rename to dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_cache.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_context.c b/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_context.c rename to dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_context.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_context.h b/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_context.h rename to dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_context.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_hash.c b/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_hash.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_hash.c rename to dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_hash.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_hash.h b/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_hash.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_hash.h rename to dll/opengl/mesa/src/gallium/auxiliary/cso_cache/cso_hash.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_cliptest_tmp.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_cliptest_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_cliptest_tmp.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_cliptest_tmp.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_context.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_context.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_context.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_context.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_context.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_context.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_decompose_tmp.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_decompose_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_decompose_tmp.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_decompose_tmp.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_fs.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_fs.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_fs.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_fs.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_fs.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_fs.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_fs.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_fs.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs_tmp.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs_tmp.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_gs_tmp.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm_sample.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm_sample.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm_sample.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm_sample.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm_translate.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm_translate.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm_translate.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_llvm_translate.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_aaline.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_aaline.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_aaline.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_aaline.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_aapoint.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_aapoint.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_aapoint.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_aapoint.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_clip.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_clip.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_clip.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_clip.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_cull.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_cull.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_cull.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_cull.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_flatshade.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_flatshade.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_flatshade.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_flatshade.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_offset.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_offset.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_offset.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_offset.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_pstipple.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_pstipple.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_pstipple.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_pstipple.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_stipple.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_stipple.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_stipple.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_stipple.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_twoside.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_twoside.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_twoside.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_twoside.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_unfilled.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_unfilled.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_unfilled.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_unfilled.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_util.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_util.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_util.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_util.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_validate.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_validate.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_validate.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_validate.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_vbuf.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_vbuf.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_vbuf.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_vbuf.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_wide_line.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_wide_line.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_wide_line.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_wide_line.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_wide_point.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_wide_point.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_wide_point.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pipe_wide_point.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_private.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_private.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_private.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_private.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_decompose.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_decompose.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_decompose.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_decompose.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_emit.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_emit.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_emit.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_emit.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_post_vs.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_post_vs.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_post_vs.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_post_vs.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_so_emit.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_so_emit.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_so_emit.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_so_emit.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_util.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_util.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_util.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_util.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_vsplit.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_vsplit.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_vsplit.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_vsplit.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_so_emit_tmp.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_so_emit_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_so_emit_tmp.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_so_emit_tmp.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_split_tmp.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_split_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_split_tmp.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_split_tmp.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vbuf.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vbuf.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vbuf.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vbuf.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vertex.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vertex.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vertex.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vertex.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vertex.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vertex.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vertex.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vertex.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs.h b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs.h rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_exec.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_exec.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_exec.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_exec.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_llvm.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_llvm.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_llvm.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_llvm.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_ppc.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_ppc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_ppc.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_ppc.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_variant.c b/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_variant.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_variant.c rename to dll/opengl/mesa/src/gallium/auxiliary/draw/draw_vs_variant.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices.c b/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices.c rename to dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices.h b/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices.h rename to dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices_gen.py b/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices_gen.py similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices_gen.py rename to dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices_gen.py diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices_priv.h b/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices_priv.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices_priv.h rename to dll/opengl/mesa/src/gallium/auxiliary/indices/u_indices_priv.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_unfilled_gen.py b/dll/opengl/mesa/src/gallium/auxiliary/indices/u_unfilled_gen.py similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_unfilled_gen.py rename to dll/opengl/mesa/src/gallium/auxiliary/indices/u_unfilled_gen.py diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_unfilled_indices.c b/dll/opengl/mesa/src/gallium/auxiliary/indices/u_unfilled_indices.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/indices/u_unfilled_indices.c rename to dll/opengl/mesa/src/gallium/auxiliary/indices/u_unfilled_indices.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory.h b/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory.h rename to dll/opengl/mesa/src/gallium/auxiliary/os/os_memory.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_aligned.h b/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_aligned.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_aligned.h rename to dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_aligned.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_debug.h b/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_debug.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_debug.h rename to dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_debug.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_stdc.h b/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_stdc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_stdc.h rename to dll/opengl/mesa/src/gallium/auxiliary/os/os_memory_stdc.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_misc.c b/dll/opengl/mesa/src/gallium/auxiliary/os/os_misc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_misc.c rename to dll/opengl/mesa/src/gallium/auxiliary/os/os_misc.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_misc.h b/dll/opengl/mesa/src/gallium/auxiliary/os/os_misc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_misc.h rename to dll/opengl/mesa/src/gallium/auxiliary/os/os_misc.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_mman.h b/dll/opengl/mesa/src/gallium/auxiliary/os/os_mman.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_mman.h rename to dll/opengl/mesa/src/gallium/auxiliary/os/os_mman.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_thread.h b/dll/opengl/mesa/src/gallium/auxiliary/os/os_thread.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_thread.h rename to dll/opengl/mesa/src/gallium/auxiliary/os/os_thread.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_time.c b/dll/opengl/mesa/src/gallium/auxiliary/os/os_time.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_time.c rename to dll/opengl/mesa/src/gallium/auxiliary/os/os_time.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_time.h b/dll/opengl/mesa/src/gallium/auxiliary/os/os_time.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/os/os_time.h rename to dll/opengl/mesa/src/gallium/auxiliary/os/os_time.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/Makefile b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/Makefile similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/Makefile rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/Makefile diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer.h b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer.h rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.h b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.h rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_malloc.c b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_malloc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_malloc.c rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_buffer_malloc.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr.h b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr.h rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_alt.c b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_alt.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_alt.c rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_alt.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_ondemand.c b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_ondemand.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_ondemand.c rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_ondemand.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_validate.c b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_validate.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_validate.c rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_validate.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_validate.h b/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_validate.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_validate.h rename to dll/opengl/mesa/src/gallium/auxiliary/pipebuffer/pb_validate.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/ADDING b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/ADDING similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/ADDING rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/ADDING diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/filters.h b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/filters.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/filters.h rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/filters.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/postprocess.h b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/postprocess.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/postprocess.h rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/postprocess.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_celshade.c b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_celshade.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_celshade.c rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_celshade.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_celshade.h b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_celshade.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_celshade.h rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_celshade.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_colors.c b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_colors.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_colors.c rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_colors.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_colors.h b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_colors.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_colors.h rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_colors.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_filters.h b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_filters.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_filters.h rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_filters.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_init.c b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_init.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_init.c rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_init.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa.c b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa.c rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa.h b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa.h rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa_areamap.h b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa_areamap.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa_areamap.h rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_mlaa_areamap.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_program.c b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_program.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_program.c rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_program.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_program.h b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_program.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_program.h rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_program.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_run.c b/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_run.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_run.c rename to dll/opengl/mesa/src/gallium/auxiliary/postprocess/pp_run.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/README b/dll/opengl/mesa/src/gallium/auxiliary/rbug/README similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/README rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/README diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug.h b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug.h rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_connection.c b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_connection.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_connection.c rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_connection.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_connection.h b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_connection.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_connection.h rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_connection.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_context.c b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_context.c rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_context.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_context.h b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_context.h rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_context.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_core.c b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_core.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_core.c rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_core.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_core.h b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_core.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_core.h rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_core.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_demarshal.c b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_demarshal.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_demarshal.c rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_demarshal.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_internal.h b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_internal.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_internal.h rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_internal.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_proto.h b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_proto.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_proto.h rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_proto.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_shader.c b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_shader.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_shader.c rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_shader.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_shader.h b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_shader.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_shader.h rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_shader.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_texture.c b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_texture.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_texture.c rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_texture.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_texture.h b/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_texture.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_texture.h rename to dll/opengl/mesa/src/gallium/auxiliary/rbug/rbug_texture.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_cpu.c b/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_cpu.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_cpu.c rename to dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_cpu.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_cpu.h b/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_cpu.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_cpu.h rename to dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_cpu.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_execmem.c b/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_execmem.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_execmem.c rename to dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_execmem.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_execmem.h b/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_execmem.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_execmem.h rename to dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_execmem.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_ppc.c b/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_ppc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_ppc.c rename to dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_ppc.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_ppc.h b/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_ppc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_ppc.h rename to dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_ppc.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_x86sse.c b/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_x86sse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_x86sse.c rename to dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_x86sse.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_x86sse.h b/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_x86sse.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_x86sse.h rename to dll/opengl/mesa/src/gallium/auxiliary/rtasm/rtasm_x86sse.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_build.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_build.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_build.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_build.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_build.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_build.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_build.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_build.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_dump.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_dump.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_dump.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_dump.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_dump.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_dump.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_dump.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_dump.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_exec.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_exec.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_exec.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_exec.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_exec.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_exec.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_exec.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_exec.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_info.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_info.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_info.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_info.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_info.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_info.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_info.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_info.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_iterate.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_iterate.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_iterate.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_iterate.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_iterate.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_iterate.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_iterate.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_iterate.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_parse.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_parse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_parse.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_parse.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_parse.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_parse.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_parse.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_parse.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ppc.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ppc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ppc.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ppc.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ppc.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ppc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ppc.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ppc.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_sanity.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_sanity.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_sanity.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_sanity.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_sanity.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_sanity.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_sanity.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_sanity.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_scan.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_scan.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_scan.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_scan.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_scan.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_scan.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_scan.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_scan.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_strings.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_strings.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_strings.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_strings.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_strings.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_strings.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_strings.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_strings.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_text.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_text.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_text.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_text.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_text.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_text.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_text.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_text.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_transform.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_transform.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_transform.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_transform.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_transform.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_transform.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_transform.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_transform.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ureg.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ureg.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ureg.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ureg.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ureg.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ureg.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ureg.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_ureg.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_util.c b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_util.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_util.c rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_util.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_util.h b/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_util.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_util.h rename to dll/opengl/mesa/src/gallium/auxiliary/tgsi/tgsi_util.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate.c b/dll/opengl/mesa/src/gallium/auxiliary/translate/translate.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate.c rename to dll/opengl/mesa/src/gallium/auxiliary/translate/translate.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate.h b/dll/opengl/mesa/src/gallium/auxiliary/translate/translate.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate.h rename to dll/opengl/mesa/src/gallium/auxiliary/translate/translate.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_cache.c b/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_cache.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_cache.c rename to dll/opengl/mesa/src/gallium/auxiliary/translate/translate_cache.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_cache.h b/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_cache.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_cache.h rename to dll/opengl/mesa/src/gallium/auxiliary/translate/translate_cache.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_generic.c b/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_generic.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_generic.c rename to dll/opengl/mesa/src/gallium/auxiliary/translate/translate_generic.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_sse.c b/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_sse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/translate/translate_sse.c rename to dll/opengl/mesa/src/gallium/auxiliary/translate/translate_sse.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/dbghelp.h b/dll/opengl/mesa/src/gallium/auxiliary/util/dbghelp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/dbghelp.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/dbghelp.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_atomic.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_atomic.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_atomic.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_atomic.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_bitmask.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_bitmask.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_bitmask.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_bitmask.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_bitmask.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_bitmask.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_bitmask.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_bitmask.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_blit.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_blit.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_blit.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_blit.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_blit.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_blit.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_blit.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_blit.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_blitter.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_blitter.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_blitter.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_blitter.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_blitter.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_blitter.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_blitter.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_blitter.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_box.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_box.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_box.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_box.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_cache.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_cache.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_cache.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_cache.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_cache.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_cache.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_cache.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_cache.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_caps.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_caps.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_caps.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_caps.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_caps.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_caps.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_caps.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_caps.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_clear.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_clear.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_clear.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_clear.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_cpu_detect.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_cpu_detect.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_cpu_detect.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_cpu_detect.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_cpu_detect.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_cpu_detect.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_cpu_detect.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_cpu_detect.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_debug.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_debug.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_describe.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_describe.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_describe.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_describe.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_describe.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_describe.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_describe.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_describe.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_memory.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_memory.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_memory.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_memory.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_refcnt.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_refcnt.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_refcnt.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_refcnt.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_refcnt.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_refcnt.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_refcnt.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_refcnt.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_stack.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_stack.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_stack.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_stack.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_stack.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_stack.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_stack.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_stack.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_symbol.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_symbol.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_symbol.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_symbol.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_symbol.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_symbol.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_symbol.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_debug_symbol.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dirty_flags.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_dirty_flags.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dirty_flags.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_dirty_flags.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dirty_surfaces.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_dirty_surfaces.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dirty_surfaces.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_dirty_surfaces.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dl.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_dl.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dl.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_dl.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dl.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_dl.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dl.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_dl.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_double_list.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_double_list.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_double_list.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_double_list.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_draw.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_draw.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw_quad.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw_quad.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw_quad.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_draw_quad.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw_quad.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw_quad.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_draw_quad.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_draw_quad.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dump.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_dump.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dump.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_dump.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dump_defines.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_dump_defines.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dump_defines.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_dump_defines.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dump_state.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_dump_state.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dump_state.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_dump_state.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dynarray.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_dynarray.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_dynarray.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_dynarray.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_fifo.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_fifo.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_fifo.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_fifo.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format.csv b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format.csv similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format.csv rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format.csv diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_etc.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_etc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_etc.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_etc.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_etc.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_etc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_etc.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_etc.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_latc.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_latc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_latc.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_latc.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_latc.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_latc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_latc.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_latc.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_other.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_other.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_other.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_other.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_other.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_other.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_other.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_other.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_pack.py b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_pack.py similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_pack.py rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_pack.py diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_parse.py b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_parse.py similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_parse.py rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_parse.py diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_r11g11b10f.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_r11g11b10f.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_r11g11b10f.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_r11g11b10f.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgb9e5.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgb9e5.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgb9e5.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgb9e5.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgtc.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgtc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgtc.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgtc.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgtc.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgtc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgtc.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_rgtc.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_s3tc.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_s3tc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_s3tc.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_s3tc.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_s3tc.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_s3tc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_s3tc.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_s3tc.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_srgb.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_srgb.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_srgb.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_srgb.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_srgb.py b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_srgb.py similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_srgb.py rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_srgb.py diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_table.py b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_table.py similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_table.py rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_table.py diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_tests.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_tests.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_tests.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_tests.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_tests.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_tests.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_tests.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_tests.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_yuv.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_yuv.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_yuv.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_yuv.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_yuv.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_yuv.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_yuv.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_yuv.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_zs.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_zs.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_zs.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_zs.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_zs.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_zs.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_format_zs.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_format_zs.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_framebuffer.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_framebuffer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_framebuffer.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_framebuffer.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_framebuffer.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_framebuffer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_framebuffer.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_framebuffer.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_gen_mipmap.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_gen_mipmap.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_gen_mipmap.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_gen_mipmap.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_gen_mipmap.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_gen_mipmap.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_gen_mipmap.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_gen_mipmap.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_half.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_half.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_half.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_half.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_half.py b/dll/opengl/mesa/src/gallium/auxiliary/util/u_half.py similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_half.py rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_half.py diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_handle_table.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_handle_table.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_handle_table.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_handle_table.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_handle_table.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_handle_table.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_handle_table.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_handle_table.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_hash.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_hash.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash_table.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash_table.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash_table.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_hash_table.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash_table.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash_table.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_hash_table.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_hash_table.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_index_modify.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_index_modify.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_index_modify.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_index_modify.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_index_modify.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_index_modify.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_index_modify.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_index_modify.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_init.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_init.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_init.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_init.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_inlines.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_inlines.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_inlines.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_inlines.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_keymap.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_keymap.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_keymap.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_keymap.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_keymap.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_keymap.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_keymap.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_keymap.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_linear.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_linear.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_linear.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_linear.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_linear.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_linear.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_linear.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_linear.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_linkage.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_linkage.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_linkage.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_linkage.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_linkage.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_linkage.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_linkage.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_linkage.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_math.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_math.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_math.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_math.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_math.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_math.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_math.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_math.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_memory.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_memory.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_memory.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_memory.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_mm.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_mm.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_mm.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_mm.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_mm.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_mm.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_mm.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_mm.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_network.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_network.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_network.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_network.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_network.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_network.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_network.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_network.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_pack_color.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_pack_color.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_pack_color.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_pack_color.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_pointer.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_pointer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_pointer.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_pointer.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_prim.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_prim.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_prim.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_prim.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_pstipple.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_pstipple.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_pstipple.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_pstipple.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_pstipple.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_pstipple.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_pstipple.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_pstipple.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_rect.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_rect.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_rect.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_rect.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_rect.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_rect.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_rect.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_rect.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_resource.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_resource.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_resource.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_resource.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_ringbuffer.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_ringbuffer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_ringbuffer.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_ringbuffer.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_ringbuffer.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_ringbuffer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_ringbuffer.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_ringbuffer.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_sampler.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_sampler.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_sampler.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_sampler.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_sampler.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_sampler.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_sampler.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_sampler.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_list.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_list.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_list.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_list.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_screen.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_screen.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_screen.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_screen.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_shaders.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_shaders.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_shaders.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_shaders.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_shaders.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_shaders.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_shaders.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_simple_shaders.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_slab.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_slab.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_slab.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_slab.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_slab.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_slab.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_slab.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_slab.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_snprintf.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_snprintf.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_snprintf.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_snprintf.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_split_prim.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_split_prim.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_split_prim.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_split_prim.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_sse.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_sse.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_sse.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_sse.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_staging.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_staging.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_staging.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_staging.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_staging.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_staging.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_staging.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_staging.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_string.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_string.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_string.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_string.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_surface.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_surface.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_surface.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_surface.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_surface.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_surface.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_surface.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_surface.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_surfaces.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_surfaces.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_surfaces.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_surfaces.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_surfaces.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_surfaces.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_surfaces.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_surfaces.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_texture.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_texture.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_texture.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_texture.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_texture.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_texture.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_texture.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_texture.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_tile.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_tile.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_tile.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_tile.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_tile.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_tile.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_tile.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_tile.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_time.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_time.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_time.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_time.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_transfer.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_transfer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_transfer.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_transfer.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_transfer.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_transfer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_transfer.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_transfer.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_upload_mgr.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_upload_mgr.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_upload_mgr.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_upload_mgr.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_upload_mgr.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_upload_mgr.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_upload_mgr.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_upload_mgr.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_vbuf.c b/dll/opengl/mesa/src/gallium/auxiliary/util/u_vbuf.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_vbuf.c rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_vbuf.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_vbuf.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_vbuf.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_vbuf.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_vbuf.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_video.h b/dll/opengl/mesa/src/gallium/auxiliary/util/u_video.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/util/u_video.h rename to dll/opengl/mesa/src/gallium/auxiliary/util/u_video.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_compositor.c b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_compositor.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_compositor.c rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_compositor.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_compositor.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_compositor.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_compositor.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_compositor.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_csc.c b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_csc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_csc.c rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_csc.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_csc.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_csc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_csc.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_csc.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_decoder.c b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_decoder.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_decoder.c rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_decoder.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_decoder.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_decoder.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_decoder.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_decoder.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_defines.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_defines.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_defines.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_defines.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_idct.c b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_idct.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_idct.c rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_idct.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_idct.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_idct.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_idct.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_idct.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mc.c b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mc.c rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mc.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mc.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mc.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mc.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_bitstream.c b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_bitstream.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_bitstream.c rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_bitstream.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_bitstream.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_bitstream.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_bitstream.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_bitstream.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_decoder.c b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_decoder.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_decoder.c rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_decoder.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_decoder.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_decoder.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_decoder.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_mpeg12_decoder.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_types.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_types.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_types.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_types.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vertex_buffers.c b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vertex_buffers.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vertex_buffers.c rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vertex_buffers.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vertex_buffers.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vertex_buffers.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vertex_buffers.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vertex_buffers.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_video_buffer.c b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_video_buffer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_video_buffer.c rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_video_buffer.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_video_buffer.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_video_buffer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_video_buffer.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_video_buffer.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vlc.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vlc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vlc.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_vlc.h diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_zscan.c b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_zscan.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_zscan.c rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_zscan.c diff --git a/reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_zscan.h b/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_zscan.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/auxiliary/vl/vl_zscan.h rename to dll/opengl/mesa/src/gallium/auxiliary/vl/vl_zscan.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/Android.mk b/dll/opengl/mesa/src/gallium/drivers/softpipe/Android.mk similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/Android.mk rename to dll/opengl/mesa/src/gallium/drivers/softpipe/Android.mk diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/CMakeLists.txt b/dll/opengl/mesa/src/gallium/drivers/softpipe/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/CMakeLists.txt rename to dll/opengl/mesa/src/gallium/drivers/softpipe/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/Makefile b/dll/opengl/mesa/src/gallium/drivers/softpipe/Makefile similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/Makefile rename to dll/opengl/mesa/src/gallium/drivers/softpipe/Makefile diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/SConscript b/dll/opengl/mesa/src/gallium/drivers/softpipe/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/SConscript rename to dll/opengl/mesa/src/gallium/drivers/softpipe/SConscript diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_clear.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_clear.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_clear.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_clear.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_clear.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_clear.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_clear.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_clear.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_context.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_context.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_context.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_context.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_context.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_context.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_draw_arrays.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_draw_arrays.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_draw_arrays.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_draw_arrays.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fence.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fence.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fence.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fence.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fence.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fence.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fence.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fence.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_flush.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_flush.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_flush.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_flush.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_flush.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_flush.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_flush.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_flush.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fs.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fs.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fs.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fs.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fs_exec.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fs_exec.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fs_exec.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_fs_exec.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_limits.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_limits.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_limits.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_limits.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_prim_vbuf.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_prim_vbuf.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_prim_vbuf.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_prim_vbuf.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_prim_vbuf.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_prim_vbuf.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_prim_vbuf.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_prim_vbuf.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_public.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_public.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_public.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_public.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_blend.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_blend.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_blend.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_blend.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_depth_test.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_depth_test.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_depth_test.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_depth_test.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_depth_test_tmp.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_depth_test_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_depth_test_tmp.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_depth_test_tmp.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_fs.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_fs.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_fs.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_fs.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_pipe.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_pipe.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_pipe.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_pipe.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_pipe.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_pipe.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_pipe.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_pipe.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_stipple.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_stipple.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_stipple.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_quad_stipple.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_query.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_query.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_query.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_query.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_query.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_query.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_query.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_query.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_screen.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_screen.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_screen.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_screen.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_screen.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_screen.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_screen.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_screen.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_setup.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_setup.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_setup.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_setup.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_setup.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_setup.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_setup.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_setup.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_blend.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_blend.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_blend.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_blend.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_clip.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_clip.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_clip.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_clip.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_derived.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_derived.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_derived.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_derived.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_rasterizer.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_rasterizer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_rasterizer.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_rasterizer.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_sampler.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_sampler.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_sampler.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_sampler.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_shader.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_shader.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_shader.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_shader.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_so.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_so.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_so.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_so.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_surface.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_surface.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_surface.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_surface.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_vertex.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_vertex.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_vertex.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_state_vertex.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_surface.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_surface.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_surface.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_surface.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_surface.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_surface.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_surface.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_surface.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_sample.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_sample.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_sample.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_sample.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_sample.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_sample.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_sample.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_sample.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_tile_cache.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_tile_cache.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_tile_cache.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_tile_cache.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_tile_cache.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_tile_cache.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_tile_cache.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tex_tile_cache.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_texture.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_texture.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_texture.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_texture.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_texture.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_texture.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_texture.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_texture.h diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tile_cache.c b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tile_cache.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tile_cache.c rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tile_cache.c diff --git a/reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tile_cache.h b/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tile_cache.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tile_cache.h rename to dll/opengl/mesa/src/gallium/drivers/softpipe/sp_tile_cache.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/pipe/p_compiler.h b/dll/opengl/mesa/src/gallium/include/pipe/p_compiler.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/pipe/p_compiler.h rename to dll/opengl/mesa/src/gallium/include/pipe/p_compiler.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/pipe/p_config.h b/dll/opengl/mesa/src/gallium/include/pipe/p_config.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/pipe/p_config.h rename to dll/opengl/mesa/src/gallium/include/pipe/p_config.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/pipe/p_context.h b/dll/opengl/mesa/src/gallium/include/pipe/p_context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/pipe/p_context.h rename to dll/opengl/mesa/src/gallium/include/pipe/p_context.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/pipe/p_defines.h b/dll/opengl/mesa/src/gallium/include/pipe/p_defines.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/pipe/p_defines.h rename to dll/opengl/mesa/src/gallium/include/pipe/p_defines.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/pipe/p_format.h b/dll/opengl/mesa/src/gallium/include/pipe/p_format.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/pipe/p_format.h rename to dll/opengl/mesa/src/gallium/include/pipe/p_format.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/pipe/p_screen.h b/dll/opengl/mesa/src/gallium/include/pipe/p_screen.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/pipe/p_screen.h rename to dll/opengl/mesa/src/gallium/include/pipe/p_screen.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/pipe/p_shader_tokens.h b/dll/opengl/mesa/src/gallium/include/pipe/p_shader_tokens.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/pipe/p_shader_tokens.h rename to dll/opengl/mesa/src/gallium/include/pipe/p_shader_tokens.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/pipe/p_state.h b/dll/opengl/mesa/src/gallium/include/pipe/p_state.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/pipe/p_state.h rename to dll/opengl/mesa/src/gallium/include/pipe/p_state.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/pipe/p_video_decoder.h b/dll/opengl/mesa/src/gallium/include/pipe/p_video_decoder.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/pipe/p_video_decoder.h rename to dll/opengl/mesa/src/gallium/include/pipe/p_video_decoder.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/pipe/p_video_enums.h b/dll/opengl/mesa/src/gallium/include/pipe/p_video_enums.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/pipe/p_video_enums.h rename to dll/opengl/mesa/src/gallium/include/pipe/p_video_enums.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/pipe/p_video_state.h b/dll/opengl/mesa/src/gallium/include/pipe/p_video_state.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/pipe/p_video_state.h rename to dll/opengl/mesa/src/gallium/include/pipe/p_video_state.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/state_tracker/drisw_api.h b/dll/opengl/mesa/src/gallium/include/state_tracker/drisw_api.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/state_tracker/drisw_api.h rename to dll/opengl/mesa/src/gallium/include/state_tracker/drisw_api.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/state_tracker/drm_driver.h b/dll/opengl/mesa/src/gallium/include/state_tracker/drm_driver.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/state_tracker/drm_driver.h rename to dll/opengl/mesa/src/gallium/include/state_tracker/drm_driver.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/state_tracker/graw.h b/dll/opengl/mesa/src/gallium/include/state_tracker/graw.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/state_tracker/graw.h rename to dll/opengl/mesa/src/gallium/include/state_tracker/graw.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/state_tracker/st_api.h b/dll/opengl/mesa/src/gallium/include/state_tracker/st_api.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/state_tracker/st_api.h rename to dll/opengl/mesa/src/gallium/include/state_tracker/st_api.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/state_tracker/sw_winsys.h b/dll/opengl/mesa/src/gallium/include/state_tracker/sw_winsys.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/state_tracker/sw_winsys.h rename to dll/opengl/mesa/src/gallium/include/state_tracker/sw_winsys.h diff --git a/reactos/dll/opengl/mesa/src/gallium/include/state_tracker/xlib_sw_winsys.h b/dll/opengl/mesa/src/gallium/include/state_tracker/xlib_sw_winsys.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/include/state_tracker/xlib_sw_winsys.h rename to dll/opengl/mesa/src/gallium/include/state_tracker/xlib_sw_winsys.h diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/CMakeLists.txt b/dll/opengl/mesa/src/gallium/state_trackers/wgl/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/CMakeLists.txt rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/SConscript b/dll/opengl/mesa/src/gallium/state_trackers/wgl/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/SConscript rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/SConscript diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/opengl32.def b/dll/opengl/mesa/src/gallium/state_trackers/wgl/opengl32.def similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/opengl32.def rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/opengl32.def diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/opengl32.mingw.def b/dll/opengl/mesa/src/gallium/state_trackers/wgl/opengl32.mingw.def similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/opengl32.mingw.def rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/opengl32.mingw.def diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_context.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_context.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_context.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_context.h b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_context.h rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_context.h diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_device.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_device.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_device.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_device.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_device.h b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_device.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_device.h rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_device.h diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_context.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_context.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_context.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_extensionsstring.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_extensionsstring.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_extensionsstring.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_extensionsstring.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_gallium.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_gallium.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_gallium.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_gallium.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_gallium.h b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_gallium.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_gallium.h rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_gallium.h diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_pixelformat.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_pixelformat.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_pixelformat.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_pixelformat.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_swapinterval.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_swapinterval.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_swapinterval.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_ext_swapinterval.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_framebuffer.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_framebuffer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_framebuffer.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_framebuffer.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_framebuffer.h b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_framebuffer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_framebuffer.h rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_framebuffer.h diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_getprocaddress.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_getprocaddress.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_getprocaddress.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_getprocaddress.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_icd.h b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_icd.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_icd.h rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_icd.h diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_pixelformat.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_pixelformat.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_pixelformat.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_pixelformat.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_pixelformat.h b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_pixelformat.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_pixelformat.h rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_pixelformat.h diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_st.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_st.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_st.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_st.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_st.h b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_st.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_st.h rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_st.h diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_tls.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_tls.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_tls.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_tls.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_tls.h b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_tls.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_tls.h rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_tls.h diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_wgl.c b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_wgl.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_wgl.c rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_wgl.c diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_wgl.h b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_wgl.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_wgl.h rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_wgl.h diff --git a/reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_winsys.h b/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_winsys.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_winsys.h rename to dll/opengl/mesa/src/gallium/state_trackers/wgl/stw_winsys.h diff --git a/reactos/dll/opengl/mesa/src/gallium/targets/libgl-gdi/CMakeLists.txt b/dll/opengl/mesa/src/gallium/targets/libgl-gdi/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/targets/libgl-gdi/CMakeLists.txt rename to dll/opengl/mesa/src/gallium/targets/libgl-gdi/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/src/gallium/targets/libgl-gdi/SConscript b/dll/opengl/mesa/src/gallium/targets/libgl-gdi/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/targets/libgl-gdi/SConscript rename to dll/opengl/mesa/src/gallium/targets/libgl-gdi/SConscript diff --git a/reactos/dll/opengl/mesa/src/gallium/targets/libgl-gdi/libgl_gdi.c b/dll/opengl/mesa/src/gallium/targets/libgl-gdi/libgl_gdi.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/targets/libgl-gdi/libgl_gdi.c rename to dll/opengl/mesa/src/gallium/targets/libgl-gdi/libgl_gdi.c diff --git a/reactos/dll/opengl/mesa/src/gallium/winsys/SConscript b/dll/opengl/mesa/src/gallium/winsys/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/winsys/SConscript rename to dll/opengl/mesa/src/gallium/winsys/SConscript diff --git a/reactos/dll/opengl/mesa/src/gallium/winsys/sw/gdi/CMakeLists.txt b/dll/opengl/mesa/src/gallium/winsys/sw/gdi/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/winsys/sw/gdi/CMakeLists.txt rename to dll/opengl/mesa/src/gallium/winsys/sw/gdi/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/src/gallium/winsys/sw/gdi/SConscript b/dll/opengl/mesa/src/gallium/winsys/sw/gdi/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/winsys/sw/gdi/SConscript rename to dll/opengl/mesa/src/gallium/winsys/sw/gdi/SConscript diff --git a/reactos/dll/opengl/mesa/src/gallium/winsys/sw/gdi/gdi_sw_winsys.c b/dll/opengl/mesa/src/gallium/winsys/sw/gdi/gdi_sw_winsys.c similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/winsys/sw/gdi/gdi_sw_winsys.c rename to dll/opengl/mesa/src/gallium/winsys/sw/gdi/gdi_sw_winsys.c diff --git a/reactos/dll/opengl/mesa/src/gallium/winsys/sw/gdi/gdi_sw_winsys.h b/dll/opengl/mesa/src/gallium/winsys/sw/gdi/gdi_sw_winsys.h similarity index 100% rename from reactos/dll/opengl/mesa/src/gallium/winsys/sw/gdi/gdi_sw_winsys.h rename to dll/opengl/mesa/src/gallium/winsys/sw/gdi/gdi_sw_winsys.h diff --git a/reactos/dll/opengl/mesa/src/glsl/CMakeLists.txt b/dll/opengl/mesa/src/glsl/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/CMakeLists.txt rename to dll/opengl/mesa/src/glsl/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/src/glsl/Makefile.sources b/dll/opengl/mesa/src/glsl/Makefile.sources similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/Makefile.sources rename to dll/opengl/mesa/src/glsl/Makefile.sources diff --git a/reactos/dll/opengl/mesa/src/glsl/README b/dll/opengl/mesa/src/glsl/README similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/README rename to dll/opengl/mesa/src/glsl/README diff --git a/reactos/dll/opengl/mesa/src/glsl/SConscript b/dll/opengl/mesa/src/glsl/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/SConscript rename to dll/opengl/mesa/src/glsl/SConscript diff --git a/reactos/dll/opengl/mesa/src/glsl/TODO b/dll/opengl/mesa/src/glsl/TODO similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/TODO rename to dll/opengl/mesa/src/glsl/TODO diff --git a/reactos/dll/opengl/mesa/src/glsl/ast.h b/dll/opengl/mesa/src/glsl/ast.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ast.h rename to dll/opengl/mesa/src/glsl/ast.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ast_expr.cpp b/dll/opengl/mesa/src/glsl/ast_expr.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ast_expr.cpp rename to dll/opengl/mesa/src/glsl/ast_expr.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ast_function.cpp b/dll/opengl/mesa/src/glsl/ast_function.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ast_function.cpp rename to dll/opengl/mesa/src/glsl/ast_function.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ast_to_hir.cpp b/dll/opengl/mesa/src/glsl/ast_to_hir.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ast_to_hir.cpp rename to dll/opengl/mesa/src/glsl/ast_to_hir.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ast_type.cpp b/dll/opengl/mesa/src/glsl/ast_type.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ast_type.cpp rename to dll/opengl/mesa/src/glsl/ast_type.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/builtin_stubs.cpp b/dll/opengl/mesa/src/glsl/builtin_stubs.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/builtin_stubs.cpp rename to dll/opengl/mesa/src/glsl/builtin_stubs.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/builtin_types.h b/dll/opengl/mesa/src/glsl/builtin_types.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/builtin_types.h rename to dll/opengl/mesa/src/glsl/builtin_types.h diff --git a/reactos/dll/opengl/mesa/src/glsl/builtin_variables.cpp b/dll/opengl/mesa/src/glsl/builtin_variables.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/builtin_variables.cpp rename to dll/opengl/mesa/src/glsl/builtin_variables.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/README b/dll/opengl/mesa/src/glsl/glcpp/README similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/README rename to dll/opengl/mesa/src/glsl/glcpp/README diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp-lex.c b/dll/opengl/mesa/src/glsl/glcpp/glcpp-lex.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp-lex.c rename to dll/opengl/mesa/src/glsl/glcpp/glcpp-lex.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp-lex.l b/dll/opengl/mesa/src/glsl/glcpp/glcpp-lex.l similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp-lex.l rename to dll/opengl/mesa/src/glsl/glcpp/glcpp-lex.l diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.c b/dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.c rename to dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.h b/dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.h rename to dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.h diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.y b/dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.y similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.y rename to dll/opengl/mesa/src/glsl/glcpp/glcpp-parse.y diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp.c b/dll/opengl/mesa/src/glsl/glcpp/glcpp.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp.c rename to dll/opengl/mesa/src/glsl/glcpp/glcpp.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp.h b/dll/opengl/mesa/src/glsl/glcpp/glcpp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/glcpp.h rename to dll/opengl/mesa/src/glsl/glcpp/glcpp.h diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/pp.c b/dll/opengl/mesa/src/glsl/glcpp/pp.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/pp.c rename to dll/opengl/mesa/src/glsl/glcpp/pp.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/000-content-with-spaces.c b/dll/opengl/mesa/src/glsl/glcpp/tests/000-content-with-spaces.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/000-content-with-spaces.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/000-content-with-spaces.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/000-content-with-spaces.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/000-content-with-spaces.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/000-content-with-spaces.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/000-content-with-spaces.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/001-define.c b/dll/opengl/mesa/src/glsl/glcpp/tests/001-define.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/001-define.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/001-define.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/001-define.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/001-define.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/001-define.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/001-define.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/002-define-chain.c b/dll/opengl/mesa/src/glsl/glcpp/tests/002-define-chain.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/002-define-chain.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/002-define-chain.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/002-define-chain.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/002-define-chain.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/002-define-chain.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/002-define-chain.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/003-define-chain-reverse.c b/dll/opengl/mesa/src/glsl/glcpp/tests/003-define-chain-reverse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/003-define-chain-reverse.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/003-define-chain-reverse.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/003-define-chain-reverse.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/003-define-chain-reverse.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/003-define-chain-reverse.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/003-define-chain-reverse.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/004-define-recursive.c b/dll/opengl/mesa/src/glsl/glcpp/tests/004-define-recursive.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/004-define-recursive.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/004-define-recursive.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/004-define-recursive.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/004-define-recursive.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/004-define-recursive.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/004-define-recursive.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/005-define-composite-chain.c b/dll/opengl/mesa/src/glsl/glcpp/tests/005-define-composite-chain.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/005-define-composite-chain.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/005-define-composite-chain.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/005-define-composite-chain.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/005-define-composite-chain.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/005-define-composite-chain.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/005-define-composite-chain.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/006-define-composite-chain-reverse.c b/dll/opengl/mesa/src/glsl/glcpp/tests/006-define-composite-chain-reverse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/006-define-composite-chain-reverse.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/006-define-composite-chain-reverse.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/006-define-composite-chain-reverse.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/006-define-composite-chain-reverse.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/006-define-composite-chain-reverse.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/006-define-composite-chain-reverse.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/007-define-composite-recursive.c b/dll/opengl/mesa/src/glsl/glcpp/tests/007-define-composite-recursive.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/007-define-composite-recursive.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/007-define-composite-recursive.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/007-define-composite-recursive.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/007-define-composite-recursive.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/007-define-composite-recursive.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/007-define-composite-recursive.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/008-define-empty.c b/dll/opengl/mesa/src/glsl/glcpp/tests/008-define-empty.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/008-define-empty.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/008-define-empty.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/008-define-empty.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/008-define-empty.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/008-define-empty.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/008-define-empty.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/009-undef.c b/dll/opengl/mesa/src/glsl/glcpp/tests/009-undef.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/009-undef.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/009-undef.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/009-undef.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/009-undef.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/009-undef.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/009-undef.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/010-undef-re-define.c b/dll/opengl/mesa/src/glsl/glcpp/tests/010-undef-re-define.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/010-undef-re-define.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/010-undef-re-define.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/010-undef-re-define.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/010-undef-re-define.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/010-undef-re-define.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/010-undef-re-define.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/011-define-func-empty.c b/dll/opengl/mesa/src/glsl/glcpp/tests/011-define-func-empty.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/011-define-func-empty.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/011-define-func-empty.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/011-define-func-empty.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/011-define-func-empty.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/011-define-func-empty.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/011-define-func-empty.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/012-define-func-no-args.c b/dll/opengl/mesa/src/glsl/glcpp/tests/012-define-func-no-args.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/012-define-func-no-args.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/012-define-func-no-args.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/012-define-func-no-args.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/012-define-func-no-args.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/012-define-func-no-args.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/012-define-func-no-args.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/013-define-func-1-arg-unused.c b/dll/opengl/mesa/src/glsl/glcpp/tests/013-define-func-1-arg-unused.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/013-define-func-1-arg-unused.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/013-define-func-1-arg-unused.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/013-define-func-1-arg-unused.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/013-define-func-1-arg-unused.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/013-define-func-1-arg-unused.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/013-define-func-1-arg-unused.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/014-define-func-2-arg-unused.c b/dll/opengl/mesa/src/glsl/glcpp/tests/014-define-func-2-arg-unused.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/014-define-func-2-arg-unused.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/014-define-func-2-arg-unused.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/014-define-func-2-arg-unused.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/014-define-func-2-arg-unused.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/014-define-func-2-arg-unused.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/014-define-func-2-arg-unused.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/015-define-object-with-parens.c b/dll/opengl/mesa/src/glsl/glcpp/tests/015-define-object-with-parens.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/015-define-object-with-parens.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/015-define-object-with-parens.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/015-define-object-with-parens.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/015-define-object-with-parens.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/015-define-object-with-parens.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/015-define-object-with-parens.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/016-define-func-1-arg.c b/dll/opengl/mesa/src/glsl/glcpp/tests/016-define-func-1-arg.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/016-define-func-1-arg.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/016-define-func-1-arg.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/016-define-func-1-arg.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/016-define-func-1-arg.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/016-define-func-1-arg.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/016-define-func-1-arg.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/017-define-func-2-args.c b/dll/opengl/mesa/src/glsl/glcpp/tests/017-define-func-2-args.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/017-define-func-2-args.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/017-define-func-2-args.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/017-define-func-2-args.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/017-define-func-2-args.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/017-define-func-2-args.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/017-define-func-2-args.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/018-define-func-macro-as-parameter.c b/dll/opengl/mesa/src/glsl/glcpp/tests/018-define-func-macro-as-parameter.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/018-define-func-macro-as-parameter.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/018-define-func-macro-as-parameter.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/018-define-func-macro-as-parameter.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/018-define-func-macro-as-parameter.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/018-define-func-macro-as-parameter.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/018-define-func-macro-as-parameter.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/019-define-func-1-arg-multi.c b/dll/opengl/mesa/src/glsl/glcpp/tests/019-define-func-1-arg-multi.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/019-define-func-1-arg-multi.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/019-define-func-1-arg-multi.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/019-define-func-1-arg-multi.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/019-define-func-1-arg-multi.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/019-define-func-1-arg-multi.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/019-define-func-1-arg-multi.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/020-define-func-2-arg-multi.c b/dll/opengl/mesa/src/glsl/glcpp/tests/020-define-func-2-arg-multi.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/020-define-func-2-arg-multi.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/020-define-func-2-arg-multi.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/020-define-func-2-arg-multi.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/020-define-func-2-arg-multi.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/020-define-func-2-arg-multi.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/020-define-func-2-arg-multi.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/021-define-func-compose.c b/dll/opengl/mesa/src/glsl/glcpp/tests/021-define-func-compose.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/021-define-func-compose.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/021-define-func-compose.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/021-define-func-compose.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/021-define-func-compose.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/021-define-func-compose.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/021-define-func-compose.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/022-define-func-arg-with-parens.c b/dll/opengl/mesa/src/glsl/glcpp/tests/022-define-func-arg-with-parens.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/022-define-func-arg-with-parens.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/022-define-func-arg-with-parens.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/022-define-func-arg-with-parens.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/022-define-func-arg-with-parens.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/022-define-func-arg-with-parens.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/022-define-func-arg-with-parens.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/023-define-extra-whitespace.c b/dll/opengl/mesa/src/glsl/glcpp/tests/023-define-extra-whitespace.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/023-define-extra-whitespace.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/023-define-extra-whitespace.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/023-define-extra-whitespace.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/023-define-extra-whitespace.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/023-define-extra-whitespace.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/023-define-extra-whitespace.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/024-define-chain-to-self-recursion.c b/dll/opengl/mesa/src/glsl/glcpp/tests/024-define-chain-to-self-recursion.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/024-define-chain-to-self-recursion.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/024-define-chain-to-self-recursion.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/024-define-chain-to-self-recursion.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/024-define-chain-to-self-recursion.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/024-define-chain-to-self-recursion.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/024-define-chain-to-self-recursion.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/025-func-macro-as-non-macro.c b/dll/opengl/mesa/src/glsl/glcpp/tests/025-func-macro-as-non-macro.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/025-func-macro-as-non-macro.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/025-func-macro-as-non-macro.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/025-func-macro-as-non-macro.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/025-func-macro-as-non-macro.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/025-func-macro-as-non-macro.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/025-func-macro-as-non-macro.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/026-define-func-extra-newlines.c b/dll/opengl/mesa/src/glsl/glcpp/tests/026-define-func-extra-newlines.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/026-define-func-extra-newlines.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/026-define-func-extra-newlines.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/026-define-func-extra-newlines.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/026-define-func-extra-newlines.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/026-define-func-extra-newlines.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/026-define-func-extra-newlines.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/027-define-chain-obj-to-func.c b/dll/opengl/mesa/src/glsl/glcpp/tests/027-define-chain-obj-to-func.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/027-define-chain-obj-to-func.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/027-define-chain-obj-to-func.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/027-define-chain-obj-to-func.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/027-define-chain-obj-to-func.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/027-define-chain-obj-to-func.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/027-define-chain-obj-to-func.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/028-define-chain-obj-to-non-func.c b/dll/opengl/mesa/src/glsl/glcpp/tests/028-define-chain-obj-to-non-func.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/028-define-chain-obj-to-non-func.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/028-define-chain-obj-to-non-func.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/028-define-chain-obj-to-non-func.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/028-define-chain-obj-to-non-func.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/028-define-chain-obj-to-non-func.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/028-define-chain-obj-to-non-func.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/029-define-chain-obj-to-func-with-args.c b/dll/opengl/mesa/src/glsl/glcpp/tests/029-define-chain-obj-to-func-with-args.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/029-define-chain-obj-to-func-with-args.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/029-define-chain-obj-to-func-with-args.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/029-define-chain-obj-to-func-with-args.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/029-define-chain-obj-to-func-with-args.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/029-define-chain-obj-to-func-with-args.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/029-define-chain-obj-to-func-with-args.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/030-define-chain-obj-to-func-compose.c b/dll/opengl/mesa/src/glsl/glcpp/tests/030-define-chain-obj-to-func-compose.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/030-define-chain-obj-to-func-compose.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/030-define-chain-obj-to-func-compose.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/030-define-chain-obj-to-func-compose.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/030-define-chain-obj-to-func-compose.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/030-define-chain-obj-to-func-compose.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/030-define-chain-obj-to-func-compose.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/031-define-chain-func-to-func-compose.c b/dll/opengl/mesa/src/glsl/glcpp/tests/031-define-chain-func-to-func-compose.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/031-define-chain-func-to-func-compose.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/031-define-chain-func-to-func-compose.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/031-define-chain-func-to-func-compose.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/031-define-chain-func-to-func-compose.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/031-define-chain-func-to-func-compose.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/031-define-chain-func-to-func-compose.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/032-define-func-self-recurse.c b/dll/opengl/mesa/src/glsl/glcpp/tests/032-define-func-self-recurse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/032-define-func-self-recurse.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/032-define-func-self-recurse.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/032-define-func-self-recurse.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/032-define-func-self-recurse.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/032-define-func-self-recurse.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/032-define-func-self-recurse.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/033-define-func-self-compose.c b/dll/opengl/mesa/src/glsl/glcpp/tests/033-define-func-self-compose.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/033-define-func-self-compose.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/033-define-func-self-compose.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/033-define-func-self-compose.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/033-define-func-self-compose.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/033-define-func-self-compose.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/033-define-func-self-compose.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/034-define-func-self-compose-non-func.c b/dll/opengl/mesa/src/glsl/glcpp/tests/034-define-func-self-compose-non-func.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/034-define-func-self-compose-non-func.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/034-define-func-self-compose-non-func.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/034-define-func-self-compose-non-func.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/034-define-func-self-compose-non-func.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/034-define-func-self-compose-non-func.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/034-define-func-self-compose-non-func.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/035-define-func-self-compose-non-func-multi-token-argument.c b/dll/opengl/mesa/src/glsl/glcpp/tests/035-define-func-self-compose-non-func-multi-token-argument.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/035-define-func-self-compose-non-func-multi-token-argument.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/035-define-func-self-compose-non-func-multi-token-argument.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/035-define-func-self-compose-non-func-multi-token-argument.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/035-define-func-self-compose-non-func-multi-token-argument.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/035-define-func-self-compose-non-func-multi-token-argument.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/035-define-func-self-compose-non-func-multi-token-argument.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/036-define-func-non-macro-multi-token-argument.c b/dll/opengl/mesa/src/glsl/glcpp/tests/036-define-func-non-macro-multi-token-argument.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/036-define-func-non-macro-multi-token-argument.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/036-define-func-non-macro-multi-token-argument.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/036-define-func-non-macro-multi-token-argument.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/036-define-func-non-macro-multi-token-argument.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/036-define-func-non-macro-multi-token-argument.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/036-define-func-non-macro-multi-token-argument.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/037-finalize-unexpanded-macro.c b/dll/opengl/mesa/src/glsl/glcpp/tests/037-finalize-unexpanded-macro.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/037-finalize-unexpanded-macro.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/037-finalize-unexpanded-macro.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/037-finalize-unexpanded-macro.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/037-finalize-unexpanded-macro.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/037-finalize-unexpanded-macro.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/037-finalize-unexpanded-macro.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/038-func-arg-with-commas.c b/dll/opengl/mesa/src/glsl/glcpp/tests/038-func-arg-with-commas.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/038-func-arg-with-commas.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/038-func-arg-with-commas.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/038-func-arg-with-commas.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/038-func-arg-with-commas.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/038-func-arg-with-commas.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/038-func-arg-with-commas.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/039-func-arg-obj-macro-with-comma.c b/dll/opengl/mesa/src/glsl/glcpp/tests/039-func-arg-obj-macro-with-comma.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/039-func-arg-obj-macro-with-comma.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/039-func-arg-obj-macro-with-comma.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/039-func-arg-obj-macro-with-comma.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/039-func-arg-obj-macro-with-comma.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/039-func-arg-obj-macro-with-comma.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/039-func-arg-obj-macro-with-comma.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/040-token-pasting.c b/dll/opengl/mesa/src/glsl/glcpp/tests/040-token-pasting.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/040-token-pasting.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/040-token-pasting.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/040-token-pasting.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/040-token-pasting.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/040-token-pasting.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/040-token-pasting.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/041-if-0.c b/dll/opengl/mesa/src/glsl/glcpp/tests/041-if-0.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/041-if-0.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/041-if-0.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/041-if-0.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/041-if-0.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/041-if-0.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/041-if-0.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/042-if-1.c b/dll/opengl/mesa/src/glsl/glcpp/tests/042-if-1.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/042-if-1.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/042-if-1.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/042-if-1.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/042-if-1.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/042-if-1.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/042-if-1.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/043-if-0-else.c b/dll/opengl/mesa/src/glsl/glcpp/tests/043-if-0-else.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/043-if-0-else.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/043-if-0-else.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/043-if-0-else.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/043-if-0-else.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/043-if-0-else.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/043-if-0-else.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/044-if-1-else.c b/dll/opengl/mesa/src/glsl/glcpp/tests/044-if-1-else.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/044-if-1-else.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/044-if-1-else.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/044-if-1-else.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/044-if-1-else.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/044-if-1-else.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/044-if-1-else.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/045-if-0-elif.c b/dll/opengl/mesa/src/glsl/glcpp/tests/045-if-0-elif.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/045-if-0-elif.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/045-if-0-elif.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/045-if-0-elif.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/045-if-0-elif.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/045-if-0-elif.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/045-if-0-elif.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/046-if-1-elsif.c b/dll/opengl/mesa/src/glsl/glcpp/tests/046-if-1-elsif.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/046-if-1-elsif.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/046-if-1-elsif.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/046-if-1-elsif.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/046-if-1-elsif.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/046-if-1-elsif.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/046-if-1-elsif.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/047-if-elif-else.c b/dll/opengl/mesa/src/glsl/glcpp/tests/047-if-elif-else.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/047-if-elif-else.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/047-if-elif-else.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/047-if-elif-else.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/047-if-elif-else.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/047-if-elif-else.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/047-if-elif-else.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/048-if-nested.c b/dll/opengl/mesa/src/glsl/glcpp/tests/048-if-nested.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/048-if-nested.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/048-if-nested.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/048-if-nested.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/048-if-nested.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/048-if-nested.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/048-if-nested.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/049-if-expression-precedence.c b/dll/opengl/mesa/src/glsl/glcpp/tests/049-if-expression-precedence.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/049-if-expression-precedence.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/049-if-expression-precedence.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/049-if-expression-precedence.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/049-if-expression-precedence.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/049-if-expression-precedence.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/049-if-expression-precedence.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/050-if-defined.c b/dll/opengl/mesa/src/glsl/glcpp/tests/050-if-defined.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/050-if-defined.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/050-if-defined.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/050-if-defined.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/050-if-defined.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/050-if-defined.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/050-if-defined.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/051-if-relational.c b/dll/opengl/mesa/src/glsl/glcpp/tests/051-if-relational.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/051-if-relational.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/051-if-relational.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/051-if-relational.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/051-if-relational.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/051-if-relational.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/051-if-relational.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/052-if-bitwise.c b/dll/opengl/mesa/src/glsl/glcpp/tests/052-if-bitwise.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/052-if-bitwise.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/052-if-bitwise.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/052-if-bitwise.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/052-if-bitwise.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/052-if-bitwise.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/052-if-bitwise.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/053-if-divide-and-shift.c b/dll/opengl/mesa/src/glsl/glcpp/tests/053-if-divide-and-shift.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/053-if-divide-and-shift.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/053-if-divide-and-shift.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/053-if-divide-and-shift.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/053-if-divide-and-shift.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/053-if-divide-and-shift.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/053-if-divide-and-shift.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/054-if-with-macros.c b/dll/opengl/mesa/src/glsl/glcpp/tests/054-if-with-macros.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/054-if-with-macros.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/054-if-with-macros.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/054-if-with-macros.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/054-if-with-macros.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/054-if-with-macros.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/054-if-with-macros.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/055-define-chain-obj-to-func-parens-in-text.c b/dll/opengl/mesa/src/glsl/glcpp/tests/055-define-chain-obj-to-func-parens-in-text.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/055-define-chain-obj-to-func-parens-in-text.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/055-define-chain-obj-to-func-parens-in-text.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/055-define-chain-obj-to-func-parens-in-text.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/055-define-chain-obj-to-func-parens-in-text.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/055-define-chain-obj-to-func-parens-in-text.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/055-define-chain-obj-to-func-parens-in-text.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/056-macro-argument-with-comma.c b/dll/opengl/mesa/src/glsl/glcpp/tests/056-macro-argument-with-comma.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/056-macro-argument-with-comma.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/056-macro-argument-with-comma.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/056-macro-argument-with-comma.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/056-macro-argument-with-comma.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/056-macro-argument-with-comma.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/056-macro-argument-with-comma.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/057-empty-arguments.c b/dll/opengl/mesa/src/glsl/glcpp/tests/057-empty-arguments.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/057-empty-arguments.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/057-empty-arguments.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/057-empty-arguments.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/057-empty-arguments.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/057-empty-arguments.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/057-empty-arguments.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/058-token-pasting-empty-arguments.c b/dll/opengl/mesa/src/glsl/glcpp/tests/058-token-pasting-empty-arguments.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/058-token-pasting-empty-arguments.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/058-token-pasting-empty-arguments.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/058-token-pasting-empty-arguments.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/058-token-pasting-empty-arguments.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/058-token-pasting-empty-arguments.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/058-token-pasting-empty-arguments.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/059-token-pasting-integer.c b/dll/opengl/mesa/src/glsl/glcpp/tests/059-token-pasting-integer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/059-token-pasting-integer.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/059-token-pasting-integer.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/059-token-pasting-integer.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/059-token-pasting-integer.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/059-token-pasting-integer.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/059-token-pasting-integer.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/060-left-paren-in-macro-right-paren-in-text.c b/dll/opengl/mesa/src/glsl/glcpp/tests/060-left-paren-in-macro-right-paren-in-text.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/060-left-paren-in-macro-right-paren-in-text.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/060-left-paren-in-macro-right-paren-in-text.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/060-left-paren-in-macro-right-paren-in-text.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/060-left-paren-in-macro-right-paren-in-text.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/060-left-paren-in-macro-right-paren-in-text.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/060-left-paren-in-macro-right-paren-in-text.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/061-define-chain-obj-to-func-multi.c b/dll/opengl/mesa/src/glsl/glcpp/tests/061-define-chain-obj-to-func-multi.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/061-define-chain-obj-to-func-multi.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/061-define-chain-obj-to-func-multi.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/061-define-chain-obj-to-func-multi.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/061-define-chain-obj-to-func-multi.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/061-define-chain-obj-to-func-multi.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/061-define-chain-obj-to-func-multi.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/062-if-0-skips-garbage.c b/dll/opengl/mesa/src/glsl/glcpp/tests/062-if-0-skips-garbage.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/062-if-0-skips-garbage.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/062-if-0-skips-garbage.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/062-if-0-skips-garbage.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/062-if-0-skips-garbage.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/062-if-0-skips-garbage.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/062-if-0-skips-garbage.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/063-comments.c b/dll/opengl/mesa/src/glsl/glcpp/tests/063-comments.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/063-comments.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/063-comments.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/063-comments.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/063-comments.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/063-comments.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/063-comments.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/064-version.c b/dll/opengl/mesa/src/glsl/glcpp/tests/064-version.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/064-version.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/064-version.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/064-version.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/064-version.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/064-version.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/064-version.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/065-if-defined-parens.c b/dll/opengl/mesa/src/glsl/glcpp/tests/065-if-defined-parens.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/065-if-defined-parens.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/065-if-defined-parens.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/065-if-defined-parens.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/065-if-defined-parens.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/065-if-defined-parens.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/065-if-defined-parens.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/066-if-nospace-expression.c b/dll/opengl/mesa/src/glsl/glcpp/tests/066-if-nospace-expression.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/066-if-nospace-expression.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/066-if-nospace-expression.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/066-if-nospace-expression.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/066-if-nospace-expression.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/066-if-nospace-expression.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/066-if-nospace-expression.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c b/dll/opengl/mesa/src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/067-nested-ifdef-ifndef.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/068-accidental-pasting.c b/dll/opengl/mesa/src/glsl/glcpp/tests/068-accidental-pasting.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/068-accidental-pasting.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/068-accidental-pasting.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/068-accidental-pasting.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/068-accidental-pasting.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/068-accidental-pasting.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/068-accidental-pasting.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/069-repeated-argument.c b/dll/opengl/mesa/src/glsl/glcpp/tests/069-repeated-argument.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/069-repeated-argument.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/069-repeated-argument.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/069-repeated-argument.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/069-repeated-argument.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/069-repeated-argument.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/069-repeated-argument.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c b/dll/opengl/mesa/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/071-punctuator.c b/dll/opengl/mesa/src/glsl/glcpp/tests/071-punctuator.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/071-punctuator.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/071-punctuator.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/071-punctuator.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/071-punctuator.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/071-punctuator.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/071-punctuator.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/072-token-pasting-same-line.c b/dll/opengl/mesa/src/glsl/glcpp/tests/072-token-pasting-same-line.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/072-token-pasting-same-line.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/072-token-pasting-same-line.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/072-token-pasting-same-line.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/072-token-pasting-same-line.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/072-token-pasting-same-line.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/072-token-pasting-same-line.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/073-if-in-ifdef.c b/dll/opengl/mesa/src/glsl/glcpp/tests/073-if-in-ifdef.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/073-if-in-ifdef.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/073-if-in-ifdef.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/073-if-in-ifdef.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/073-if-in-ifdef.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/073-if-in-ifdef.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/073-if-in-ifdef.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/074-elif-undef.c b/dll/opengl/mesa/src/glsl/glcpp/tests/074-elif-undef.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/074-elif-undef.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/074-elif-undef.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/074-elif-undef.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/074-elif-undef.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/074-elif-undef.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/074-elif-undef.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/075-elif-elif-undef.c b/dll/opengl/mesa/src/glsl/glcpp/tests/075-elif-elif-undef.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/075-elif-elif-undef.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/075-elif-elif-undef.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/075-elif-elif-undef.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/075-elif-elif-undef.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/075-elif-elif-undef.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/075-elif-elif-undef.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/076-elif-undef-nested.c b/dll/opengl/mesa/src/glsl/glcpp/tests/076-elif-undef-nested.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/076-elif-undef-nested.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/076-elif-undef-nested.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/076-elif-undef-nested.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/076-elif-undef-nested.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/076-elif-undef-nested.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/076-elif-undef-nested.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/077-else-without-if.c b/dll/opengl/mesa/src/glsl/glcpp/tests/077-else-without-if.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/077-else-without-if.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/077-else-without-if.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/077-else-without-if.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/077-else-without-if.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/077-else-without-if.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/077-else-without-if.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/078-elif-without-if.c b/dll/opengl/mesa/src/glsl/glcpp/tests/078-elif-without-if.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/078-elif-without-if.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/078-elif-without-if.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/078-elif-without-if.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/078-elif-without-if.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/078-elif-without-if.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/078-elif-without-if.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/079-endif-without-if.c b/dll/opengl/mesa/src/glsl/glcpp/tests/079-endif-without-if.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/079-endif-without-if.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/079-endif-without-if.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/079-endif-without-if.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/079-endif-without-if.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/079-endif-without-if.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/079-endif-without-if.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/080-if-without-expression.c b/dll/opengl/mesa/src/glsl/glcpp/tests/080-if-without-expression.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/080-if-without-expression.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/080-if-without-expression.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/080-if-without-expression.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/080-if-without-expression.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/080-if-without-expression.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/080-if-without-expression.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/081-elif-without-expression.c b/dll/opengl/mesa/src/glsl/glcpp/tests/081-elif-without-expression.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/081-elif-without-expression.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/081-elif-without-expression.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/081-elif-without-expression.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/081-elif-without-expression.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/081-elif-without-expression.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/081-elif-without-expression.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/082-invalid-paste.c b/dll/opengl/mesa/src/glsl/glcpp/tests/082-invalid-paste.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/082-invalid-paste.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/082-invalid-paste.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/082-invalid-paste.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/082-invalid-paste.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/082-invalid-paste.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/082-invalid-paste.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/083-unterminated-if.c b/dll/opengl/mesa/src/glsl/glcpp/tests/083-unterminated-if.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/083-unterminated-if.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/083-unterminated-if.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/083-unterminated-if.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/083-unterminated-if.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/083-unterminated-if.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/083-unterminated-if.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/084-unbalanced-parentheses.c b/dll/opengl/mesa/src/glsl/glcpp/tests/084-unbalanced-parentheses.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/084-unbalanced-parentheses.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/084-unbalanced-parentheses.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/084-unbalanced-parentheses.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/084-unbalanced-parentheses.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/084-unbalanced-parentheses.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/084-unbalanced-parentheses.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/085-incorrect-argument-count.c b/dll/opengl/mesa/src/glsl/glcpp/tests/085-incorrect-argument-count.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/085-incorrect-argument-count.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/085-incorrect-argument-count.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/085-incorrect-argument-count.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/085-incorrect-argument-count.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/085-incorrect-argument-count.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/085-incorrect-argument-count.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/086-reserved-macro-names.c b/dll/opengl/mesa/src/glsl/glcpp/tests/086-reserved-macro-names.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/086-reserved-macro-names.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/086-reserved-macro-names.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/086-reserved-macro-names.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/086-reserved-macro-names.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/086-reserved-macro-names.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/086-reserved-macro-names.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/087-if-comments.c b/dll/opengl/mesa/src/glsl/glcpp/tests/087-if-comments.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/087-if-comments.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/087-if-comments.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/087-if-comments.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/087-if-comments.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/087-if-comments.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/087-if-comments.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/088-redefine-macro-legitimate.c b/dll/opengl/mesa/src/glsl/glcpp/tests/088-redefine-macro-legitimate.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/088-redefine-macro-legitimate.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/088-redefine-macro-legitimate.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/088-redefine-macro-legitimate.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/088-redefine-macro-legitimate.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/088-redefine-macro-legitimate.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/088-redefine-macro-legitimate.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/089-redefine-macro-error.c b/dll/opengl/mesa/src/glsl/glcpp/tests/089-redefine-macro-error.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/089-redefine-macro-error.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/089-redefine-macro-error.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/089-redefine-macro-error.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/089-redefine-macro-error.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/089-redefine-macro-error.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/089-redefine-macro-error.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/090-hash-error.c b/dll/opengl/mesa/src/glsl/glcpp/tests/090-hash-error.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/090-hash-error.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/090-hash-error.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/090-hash-error.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/090-hash-error.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/090-hash-error.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/090-hash-error.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/091-hash-line.c b/dll/opengl/mesa/src/glsl/glcpp/tests/091-hash-line.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/091-hash-line.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/091-hash-line.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/091-hash-line.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/091-hash-line.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/091-hash-line.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/091-hash-line.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/092-redefine-macro-error-2.c b/dll/opengl/mesa/src/glsl/glcpp/tests/092-redefine-macro-error-2.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/092-redefine-macro-error-2.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/092-redefine-macro-error-2.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/092-redefine-macro-error-2.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/092-redefine-macro-error-2.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/092-redefine-macro-error-2.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/092-redefine-macro-error-2.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/093-divide-by-zero.c b/dll/opengl/mesa/src/glsl/glcpp/tests/093-divide-by-zero.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/093-divide-by-zero.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/093-divide-by-zero.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/093-divide-by-zero.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/093-divide-by-zero.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/093-divide-by-zero.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/093-divide-by-zero.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/094-divide-by-zero-short-circuit.c b/dll/opengl/mesa/src/glsl/glcpp/tests/094-divide-by-zero-short-circuit.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/094-divide-by-zero-short-circuit.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/094-divide-by-zero-short-circuit.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/094-divide-by-zero-short-circuit.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/094-divide-by-zero-short-circuit.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/094-divide-by-zero-short-circuit.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/094-divide-by-zero-short-circuit.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/095-recursive-define.c b/dll/opengl/mesa/src/glsl/glcpp/tests/095-recursive-define.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/095-recursive-define.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/095-recursive-define.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/095-recursive-define.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/095-recursive-define.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/095-recursive-define.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/095-recursive-define.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/096-paste-twice.c b/dll/opengl/mesa/src/glsl/glcpp/tests/096-paste-twice.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/096-paste-twice.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/096-paste-twice.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/096-paste-twice.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/096-paste-twice.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/096-paste-twice.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/096-paste-twice.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/097-paste-with-non-function-macro.c b/dll/opengl/mesa/src/glsl/glcpp/tests/097-paste-with-non-function-macro.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/097-paste-with-non-function-macro.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/097-paste-with-non-function-macro.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/097-paste-with-non-function-macro.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/097-paste-with-non-function-macro.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/097-paste-with-non-function-macro.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/097-paste-with-non-function-macro.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/098-elif-undefined.c b/dll/opengl/mesa/src/glsl/glcpp/tests/098-elif-undefined.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/098-elif-undefined.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/098-elif-undefined.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/098-elif-undefined.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/098-elif-undefined.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/098-elif-undefined.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/098-elif-undefined.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/099-c99-example.c b/dll/opengl/mesa/src/glsl/glcpp/tests/099-c99-example.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/099-c99-example.c rename to dll/opengl/mesa/src/glsl/glcpp/tests/099-c99-example.c diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/099-c99-example.c.expected b/dll/opengl/mesa/src/glsl/glcpp/tests/099-c99-example.c.expected similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/099-c99-example.c.expected rename to dll/opengl/mesa/src/glsl/glcpp/tests/099-c99-example.c.expected diff --git a/reactos/dll/opengl/mesa/src/glsl/glcpp/tests/glcpp-test b/dll/opengl/mesa/src/glsl/glcpp/tests/glcpp-test similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glcpp/tests/glcpp-test rename to dll/opengl/mesa/src/glsl/glcpp/tests/glcpp-test diff --git a/reactos/dll/opengl/mesa/src/glsl/glsl_lexer.cpp b/dll/opengl/mesa/src/glsl/glsl_lexer.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glsl_lexer.cpp rename to dll/opengl/mesa/src/glsl/glsl_lexer.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/glsl_lexer.ll b/dll/opengl/mesa/src/glsl/glsl_lexer.ll similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glsl_lexer.ll rename to dll/opengl/mesa/src/glsl/glsl_lexer.ll diff --git a/reactos/dll/opengl/mesa/src/glsl/glsl_parser.cpp b/dll/opengl/mesa/src/glsl/glsl_parser.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glsl_parser.cpp rename to dll/opengl/mesa/src/glsl/glsl_parser.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/glsl_parser.h b/dll/opengl/mesa/src/glsl/glsl_parser.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glsl_parser.h rename to dll/opengl/mesa/src/glsl/glsl_parser.h diff --git a/reactos/dll/opengl/mesa/src/glsl/glsl_parser.yy b/dll/opengl/mesa/src/glsl/glsl_parser.yy similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glsl_parser.yy rename to dll/opengl/mesa/src/glsl/glsl_parser.yy diff --git a/reactos/dll/opengl/mesa/src/glsl/glsl_parser_extras.cpp b/dll/opengl/mesa/src/glsl/glsl_parser_extras.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glsl_parser_extras.cpp rename to dll/opengl/mesa/src/glsl/glsl_parser_extras.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/glsl_parser_extras.h b/dll/opengl/mesa/src/glsl/glsl_parser_extras.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glsl_parser_extras.h rename to dll/opengl/mesa/src/glsl/glsl_parser_extras.h diff --git a/reactos/dll/opengl/mesa/src/glsl/glsl_symbol_table.cpp b/dll/opengl/mesa/src/glsl/glsl_symbol_table.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glsl_symbol_table.cpp rename to dll/opengl/mesa/src/glsl/glsl_symbol_table.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/glsl_symbol_table.h b/dll/opengl/mesa/src/glsl/glsl_symbol_table.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glsl_symbol_table.h rename to dll/opengl/mesa/src/glsl/glsl_symbol_table.h diff --git a/reactos/dll/opengl/mesa/src/glsl/glsl_types.cpp b/dll/opengl/mesa/src/glsl/glsl_types.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glsl_types.cpp rename to dll/opengl/mesa/src/glsl/glsl_types.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/glsl_types.h b/dll/opengl/mesa/src/glsl/glsl_types.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/glsl_types.h rename to dll/opengl/mesa/src/glsl/glsl_types.h diff --git a/reactos/dll/opengl/mesa/src/glsl/hir_field_selection.cpp b/dll/opengl/mesa/src/glsl/hir_field_selection.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/hir_field_selection.cpp rename to dll/opengl/mesa/src/glsl/hir_field_selection.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir.cpp b/dll/opengl/mesa/src/glsl/ir.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir.cpp rename to dll/opengl/mesa/src/glsl/ir.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir.h b/dll/opengl/mesa/src/glsl/ir.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir.h rename to dll/opengl/mesa/src/glsl/ir.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_basic_block.cpp b/dll/opengl/mesa/src/glsl/ir_basic_block.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_basic_block.cpp rename to dll/opengl/mesa/src/glsl/ir_basic_block.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_basic_block.h b/dll/opengl/mesa/src/glsl/ir_basic_block.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_basic_block.h rename to dll/opengl/mesa/src/glsl/ir_basic_block.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_clone.cpp b/dll/opengl/mesa/src/glsl/ir_clone.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_clone.cpp rename to dll/opengl/mesa/src/glsl/ir_clone.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_constant_expression.cpp b/dll/opengl/mesa/src/glsl/ir_constant_expression.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_constant_expression.cpp rename to dll/opengl/mesa/src/glsl/ir_constant_expression.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_expression_flattening.cpp b/dll/opengl/mesa/src/glsl/ir_expression_flattening.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_expression_flattening.cpp rename to dll/opengl/mesa/src/glsl/ir_expression_flattening.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_expression_flattening.h b/dll/opengl/mesa/src/glsl/ir_expression_flattening.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_expression_flattening.h rename to dll/opengl/mesa/src/glsl/ir_expression_flattening.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_function.cpp b/dll/opengl/mesa/src/glsl/ir_function.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_function.cpp rename to dll/opengl/mesa/src/glsl/ir_function.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_function_can_inline.cpp b/dll/opengl/mesa/src/glsl/ir_function_can_inline.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_function_can_inline.cpp rename to dll/opengl/mesa/src/glsl/ir_function_can_inline.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_function_detect_recursion.cpp b/dll/opengl/mesa/src/glsl/ir_function_detect_recursion.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_function_detect_recursion.cpp rename to dll/opengl/mesa/src/glsl/ir_function_detect_recursion.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_function_inlining.h b/dll/opengl/mesa/src/glsl/ir_function_inlining.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_function_inlining.h rename to dll/opengl/mesa/src/glsl/ir_function_inlining.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_hierarchical_visitor.cpp b/dll/opengl/mesa/src/glsl/ir_hierarchical_visitor.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_hierarchical_visitor.cpp rename to dll/opengl/mesa/src/glsl/ir_hierarchical_visitor.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_hierarchical_visitor.h b/dll/opengl/mesa/src/glsl/ir_hierarchical_visitor.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_hierarchical_visitor.h rename to dll/opengl/mesa/src/glsl/ir_hierarchical_visitor.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_hv_accept.cpp b/dll/opengl/mesa/src/glsl/ir_hv_accept.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_hv_accept.cpp rename to dll/opengl/mesa/src/glsl/ir_hv_accept.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_import_prototypes.cpp b/dll/opengl/mesa/src/glsl/ir_import_prototypes.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_import_prototypes.cpp rename to dll/opengl/mesa/src/glsl/ir_import_prototypes.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_optimization.h b/dll/opengl/mesa/src/glsl/ir_optimization.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_optimization.h rename to dll/opengl/mesa/src/glsl/ir_optimization.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_print_visitor.cpp b/dll/opengl/mesa/src/glsl/ir_print_visitor.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_print_visitor.cpp rename to dll/opengl/mesa/src/glsl/ir_print_visitor.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_print_visitor.h b/dll/opengl/mesa/src/glsl/ir_print_visitor.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_print_visitor.h rename to dll/opengl/mesa/src/glsl/ir_print_visitor.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_reader.cpp b/dll/opengl/mesa/src/glsl/ir_reader.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_reader.cpp rename to dll/opengl/mesa/src/glsl/ir_reader.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_reader.h b/dll/opengl/mesa/src/glsl/ir_reader.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_reader.h rename to dll/opengl/mesa/src/glsl/ir_reader.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_rvalue_visitor.cpp b/dll/opengl/mesa/src/glsl/ir_rvalue_visitor.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_rvalue_visitor.cpp rename to dll/opengl/mesa/src/glsl/ir_rvalue_visitor.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_rvalue_visitor.h b/dll/opengl/mesa/src/glsl/ir_rvalue_visitor.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_rvalue_visitor.h rename to dll/opengl/mesa/src/glsl/ir_rvalue_visitor.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_set_program_inouts.cpp b/dll/opengl/mesa/src/glsl/ir_set_program_inouts.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_set_program_inouts.cpp rename to dll/opengl/mesa/src/glsl/ir_set_program_inouts.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_uniform.h b/dll/opengl/mesa/src/glsl/ir_uniform.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_uniform.h rename to dll/opengl/mesa/src/glsl/ir_uniform.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_validate.cpp b/dll/opengl/mesa/src/glsl/ir_validate.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_validate.cpp rename to dll/opengl/mesa/src/glsl/ir_validate.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_variable_refcount.cpp b/dll/opengl/mesa/src/glsl/ir_variable_refcount.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_variable_refcount.cpp rename to dll/opengl/mesa/src/glsl/ir_variable_refcount.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_variable_refcount.h b/dll/opengl/mesa/src/glsl/ir_variable_refcount.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_variable_refcount.h rename to dll/opengl/mesa/src/glsl/ir_variable_refcount.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ir_visitor.h b/dll/opengl/mesa/src/glsl/ir_visitor.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ir_visitor.h rename to dll/opengl/mesa/src/glsl/ir_visitor.h diff --git a/reactos/dll/opengl/mesa/src/glsl/link_functions.cpp b/dll/opengl/mesa/src/glsl/link_functions.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/link_functions.cpp rename to dll/opengl/mesa/src/glsl/link_functions.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/link_uniforms.cpp b/dll/opengl/mesa/src/glsl/link_uniforms.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/link_uniforms.cpp rename to dll/opengl/mesa/src/glsl/link_uniforms.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/linker.cpp b/dll/opengl/mesa/src/glsl/linker.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/linker.cpp rename to dll/opengl/mesa/src/glsl/linker.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/linker.h b/dll/opengl/mesa/src/glsl/linker.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/linker.h rename to dll/opengl/mesa/src/glsl/linker.h diff --git a/reactos/dll/opengl/mesa/src/glsl/list.h b/dll/opengl/mesa/src/glsl/list.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/list.h rename to dll/opengl/mesa/src/glsl/list.h diff --git a/reactos/dll/opengl/mesa/src/glsl/loop_analysis.cpp b/dll/opengl/mesa/src/glsl/loop_analysis.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/loop_analysis.cpp rename to dll/opengl/mesa/src/glsl/loop_analysis.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/loop_analysis.h b/dll/opengl/mesa/src/glsl/loop_analysis.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/loop_analysis.h rename to dll/opengl/mesa/src/glsl/loop_analysis.h diff --git a/reactos/dll/opengl/mesa/src/glsl/loop_controls.cpp b/dll/opengl/mesa/src/glsl/loop_controls.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/loop_controls.cpp rename to dll/opengl/mesa/src/glsl/loop_controls.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/loop_unroll.cpp b/dll/opengl/mesa/src/glsl/loop_unroll.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/loop_unroll.cpp rename to dll/opengl/mesa/src/glsl/loop_unroll.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_clip_distance.cpp b/dll/opengl/mesa/src/glsl/lower_clip_distance.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_clip_distance.cpp rename to dll/opengl/mesa/src/glsl/lower_clip_distance.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_discard.cpp b/dll/opengl/mesa/src/glsl/lower_discard.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_discard.cpp rename to dll/opengl/mesa/src/glsl/lower_discard.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_if_to_cond_assign.cpp b/dll/opengl/mesa/src/glsl/lower_if_to_cond_assign.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_if_to_cond_assign.cpp rename to dll/opengl/mesa/src/glsl/lower_if_to_cond_assign.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_instructions.cpp b/dll/opengl/mesa/src/glsl/lower_instructions.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_instructions.cpp rename to dll/opengl/mesa/src/glsl/lower_instructions.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_jumps.cpp b/dll/opengl/mesa/src/glsl/lower_jumps.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_jumps.cpp rename to dll/opengl/mesa/src/glsl/lower_jumps.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_mat_op_to_vec.cpp b/dll/opengl/mesa/src/glsl/lower_mat_op_to_vec.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_mat_op_to_vec.cpp rename to dll/opengl/mesa/src/glsl/lower_mat_op_to_vec.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_noise.cpp b/dll/opengl/mesa/src/glsl/lower_noise.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_noise.cpp rename to dll/opengl/mesa/src/glsl/lower_noise.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_output_reads.cpp b/dll/opengl/mesa/src/glsl/lower_output_reads.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_output_reads.cpp rename to dll/opengl/mesa/src/glsl/lower_output_reads.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_texture_projection.cpp b/dll/opengl/mesa/src/glsl/lower_texture_projection.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_texture_projection.cpp rename to dll/opengl/mesa/src/glsl/lower_texture_projection.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_variable_index_to_cond_assign.cpp b/dll/opengl/mesa/src/glsl/lower_variable_index_to_cond_assign.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_variable_index_to_cond_assign.cpp rename to dll/opengl/mesa/src/glsl/lower_variable_index_to_cond_assign.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_vec_index_to_cond_assign.cpp b/dll/opengl/mesa/src/glsl/lower_vec_index_to_cond_assign.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_vec_index_to_cond_assign.cpp rename to dll/opengl/mesa/src/glsl/lower_vec_index_to_cond_assign.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_vec_index_to_swizzle.cpp b/dll/opengl/mesa/src/glsl/lower_vec_index_to_swizzle.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_vec_index_to_swizzle.cpp rename to dll/opengl/mesa/src/glsl/lower_vec_index_to_swizzle.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/lower_vector.cpp b/dll/opengl/mesa/src/glsl/lower_vector.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/lower_vector.cpp rename to dll/opengl/mesa/src/glsl/lower_vector.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/main.cpp b/dll/opengl/mesa/src/glsl/main.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/main.cpp rename to dll/opengl/mesa/src/glsl/main.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_algebraic.cpp b/dll/opengl/mesa/src/glsl/opt_algebraic.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_algebraic.cpp rename to dll/opengl/mesa/src/glsl/opt_algebraic.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_constant_folding.cpp b/dll/opengl/mesa/src/glsl/opt_constant_folding.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_constant_folding.cpp rename to dll/opengl/mesa/src/glsl/opt_constant_folding.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_constant_propagation.cpp b/dll/opengl/mesa/src/glsl/opt_constant_propagation.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_constant_propagation.cpp rename to dll/opengl/mesa/src/glsl/opt_constant_propagation.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_constant_variable.cpp b/dll/opengl/mesa/src/glsl/opt_constant_variable.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_constant_variable.cpp rename to dll/opengl/mesa/src/glsl/opt_constant_variable.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_copy_propagation.cpp b/dll/opengl/mesa/src/glsl/opt_copy_propagation.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_copy_propagation.cpp rename to dll/opengl/mesa/src/glsl/opt_copy_propagation.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_copy_propagation_elements.cpp b/dll/opengl/mesa/src/glsl/opt_copy_propagation_elements.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_copy_propagation_elements.cpp rename to dll/opengl/mesa/src/glsl/opt_copy_propagation_elements.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_dead_code.cpp b/dll/opengl/mesa/src/glsl/opt_dead_code.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_dead_code.cpp rename to dll/opengl/mesa/src/glsl/opt_dead_code.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_dead_code_local.cpp b/dll/opengl/mesa/src/glsl/opt_dead_code_local.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_dead_code_local.cpp rename to dll/opengl/mesa/src/glsl/opt_dead_code_local.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_dead_functions.cpp b/dll/opengl/mesa/src/glsl/opt_dead_functions.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_dead_functions.cpp rename to dll/opengl/mesa/src/glsl/opt_dead_functions.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_discard_simplification.cpp b/dll/opengl/mesa/src/glsl/opt_discard_simplification.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_discard_simplification.cpp rename to dll/opengl/mesa/src/glsl/opt_discard_simplification.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_function_inlining.cpp b/dll/opengl/mesa/src/glsl/opt_function_inlining.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_function_inlining.cpp rename to dll/opengl/mesa/src/glsl/opt_function_inlining.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_if_simplification.cpp b/dll/opengl/mesa/src/glsl/opt_if_simplification.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_if_simplification.cpp rename to dll/opengl/mesa/src/glsl/opt_if_simplification.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_noop_swizzle.cpp b/dll/opengl/mesa/src/glsl/opt_noop_swizzle.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_noop_swizzle.cpp rename to dll/opengl/mesa/src/glsl/opt_noop_swizzle.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_redundant_jumps.cpp b/dll/opengl/mesa/src/glsl/opt_redundant_jumps.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_redundant_jumps.cpp rename to dll/opengl/mesa/src/glsl/opt_redundant_jumps.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_structure_splitting.cpp b/dll/opengl/mesa/src/glsl/opt_structure_splitting.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_structure_splitting.cpp rename to dll/opengl/mesa/src/glsl/opt_structure_splitting.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_swizzle_swizzle.cpp b/dll/opengl/mesa/src/glsl/opt_swizzle_swizzle.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_swizzle_swizzle.cpp rename to dll/opengl/mesa/src/glsl/opt_swizzle_swizzle.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/opt_tree_grafting.cpp b/dll/opengl/mesa/src/glsl/opt_tree_grafting.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/opt_tree_grafting.cpp rename to dll/opengl/mesa/src/glsl/opt_tree_grafting.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/program.h b/dll/opengl/mesa/src/glsl/program.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/program.h rename to dll/opengl/mesa/src/glsl/program.h diff --git a/reactos/dll/opengl/mesa/src/glsl/ralloc.c b/dll/opengl/mesa/src/glsl/ralloc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ralloc.c rename to dll/opengl/mesa/src/glsl/ralloc.c diff --git a/reactos/dll/opengl/mesa/src/glsl/ralloc.h b/dll/opengl/mesa/src/glsl/ralloc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/ralloc.h rename to dll/opengl/mesa/src/glsl/ralloc.h diff --git a/reactos/dll/opengl/mesa/src/glsl/s_expression.cpp b/dll/opengl/mesa/src/glsl/s_expression.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/s_expression.cpp rename to dll/opengl/mesa/src/glsl/s_expression.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/s_expression.h b/dll/opengl/mesa/src/glsl/s_expression.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/s_expression.h rename to dll/opengl/mesa/src/glsl/s_expression.h diff --git a/reactos/dll/opengl/mesa/src/glsl/standalone_scaffolding.cpp b/dll/opengl/mesa/src/glsl/standalone_scaffolding.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/standalone_scaffolding.cpp rename to dll/opengl/mesa/src/glsl/standalone_scaffolding.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/standalone_scaffolding.h b/dll/opengl/mesa/src/glsl/standalone_scaffolding.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/standalone_scaffolding.h rename to dll/opengl/mesa/src/glsl/standalone_scaffolding.h diff --git a/reactos/dll/opengl/mesa/src/glsl/strtod.c b/dll/opengl/mesa/src/glsl/strtod.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/strtod.c rename to dll/opengl/mesa/src/glsl/strtod.c diff --git a/reactos/dll/opengl/mesa/src/glsl/strtod.h b/dll/opengl/mesa/src/glsl/strtod.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/strtod.h rename to dll/opengl/mesa/src/glsl/strtod.h diff --git a/reactos/dll/opengl/mesa/src/glsl/test.cpp b/dll/opengl/mesa/src/glsl/test.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/test.cpp rename to dll/opengl/mesa/src/glsl/test.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/test_optpass.cpp b/dll/opengl/mesa/src/glsl/test_optpass.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/test_optpass.cpp rename to dll/opengl/mesa/src/glsl/test_optpass.cpp diff --git a/reactos/dll/opengl/mesa/src/glsl/test_optpass.h b/dll/opengl/mesa/src/glsl/test_optpass.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glsl/test_optpass.h rename to dll/opengl/mesa/src/glsl/test_optpass.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/CMakeLists.txt b/dll/opengl/mesa/src/glu/sgi/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/CMakeLists.txt rename to dll/opengl/mesa/src/glu/sgi/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/SConscript b/dll/opengl/mesa/src/glu/sgi/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/SConscript rename to dll/opengl/mesa/src/glu/sgi/SConscript diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/dummy.cc b/dll/opengl/mesa/src/glu/sgi/dummy.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/dummy.cc rename to dll/opengl/mesa/src/glu/sgi/dummy.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/glu.def b/dll/opengl/mesa/src/glu/sgi/glu.def similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/glu.def rename to dll/opengl/mesa/src/glu/sgi/glu.def diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/glu32.spec b/dll/opengl/mesa/src/glu/sgi/glu32.spec similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/glu32.spec rename to dll/opengl/mesa/src/glu/sgi/glu32.spec diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/include/gluos.h b/dll/opengl/mesa/src/glu/sgi/include/gluos.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/include/gluos.h rename to dll/opengl/mesa/src/glu/sgi/include/gluos.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierEval.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierEval.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierEval.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierEval.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierEval.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierEval.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierEval.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierEval.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatch.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatch.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatch.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatch.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatch.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatch.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatch.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatch.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatchMesh.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatchMesh.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatchMesh.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatchMesh.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatchMesh.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatchMesh.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatchMesh.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/bezierPatchMesh.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glcurveval.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glcurveval.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glcurveval.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glcurveval.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glcurveval.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glcurveval.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glcurveval.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glcurveval.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glimports.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glimports.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glimports.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glimports.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glinterface.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glinterface.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glinterface.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glinterface.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glrenderer.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glrenderer.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glrenderer.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glrenderer.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glrenderer.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glrenderer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glrenderer.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glrenderer.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glsurfeval.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glsurfeval.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glsurfeval.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glsurfeval.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glsurfeval.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glsurfeval.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glsurfeval.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/glsurfeval.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/incurveeval.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/incurveeval.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/incurveeval.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/incurveeval.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/insurfeval.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/insurfeval.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/insurfeval.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/insurfeval.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/mystdio.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/mystdio.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/mystdio.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/mystdio.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/mystdlib.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/mystdlib.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/interface/mystdlib.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/interface/mystdlib.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arc.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arc.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arc.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arc.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arc.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arc.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arc.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arcsorter.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arcsorter.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arcsorter.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arcsorter.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arcsorter.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arcsorter.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arcsorter.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arcsorter.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arctess.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arctess.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arctess.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arctess.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arctess.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arctess.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arctess.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/arctess.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/backend.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/backend.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/backend.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/backend.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/backend.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/backend.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/backend.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/backend.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basiccrveval.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basiccrveval.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basiccrveval.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basiccrveval.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basiccrveval.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basiccrveval.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basiccrveval.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basiccrveval.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basicsurfeval.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basicsurfeval.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basicsurfeval.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basicsurfeval.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basicsurfeval.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basicsurfeval.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basicsurfeval.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/basicsurfeval.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bezierarc.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bezierarc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bezierarc.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bezierarc.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bin.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bin.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bin.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bin.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bin.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bin.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bin.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bin.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bufpool.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bufpool.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bufpool.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bufpool.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bufpool.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bufpool.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bufpool.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/bufpool.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/cachingeval.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/cachingeval.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/cachingeval.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/cachingeval.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/cachingeval.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/cachingeval.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/cachingeval.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/cachingeval.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/ccw.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/ccw.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/ccw.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/ccw.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/coveandtiler.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/coveandtiler.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/coveandtiler.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/coveandtiler.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/coveandtiler.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/coveandtiler.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/coveandtiler.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/coveandtiler.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curve.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curve.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curve.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curve.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curve.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curve.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curve.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curve.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvelist.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvelist.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvelist.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvelist.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvelist.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvelist.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvelist.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvelist.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvesub.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvesub.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvesub.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/curvesub.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/dataTransform.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/dataTransform.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/dataTransform.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/dataTransform.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/dataTransform.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/dataTransform.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/dataTransform.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/dataTransform.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/defines.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/defines.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/defines.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/defines.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaylist.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaylist.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaylist.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaylist.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaylist.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaylist.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaylist.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaylist.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaymode.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaymode.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaymode.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/displaymode.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flist.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flist.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flist.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flist.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flist.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flist.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flist.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flist.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flistsorter.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flistsorter.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flistsorter.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flistsorter.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flistsorter.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flistsorter.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flistsorter.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/flistsorter.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridline.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridline.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridline.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridline.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridtrimvertex.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridtrimvertex.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridtrimvertex.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridtrimvertex.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridvertex.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridvertex.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridvertex.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/gridvertex.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/hull.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/hull.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/hull.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/hull.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/hull.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/hull.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/hull.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/hull.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/intersect.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/intersect.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/intersect.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/intersect.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/jarcloc.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/jarcloc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/jarcloc.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/jarcloc.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/knotvector.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/knotvector.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/knotvector.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/knotvector.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/knotvector.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/knotvector.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/knotvector.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/knotvector.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdesc.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdesc.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdesc.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdesc.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdesc.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdesc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdesc.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdesc.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdescv.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdescv.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdescv.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mapdescv.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/maplist.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/maplist.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/maplist.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/maplist.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/maplist.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/maplist.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/maplist.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/maplist.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mesher.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mesher.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mesher.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mesher.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mesher.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mesher.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mesher.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mesher.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monoTriangulationBackend.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monoTriangulationBackend.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monoTriangulationBackend.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monoTriangulationBackend.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monotonizer.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monotonizer.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monotonizer.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monotonizer.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monotonizer.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monotonizer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monotonizer.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/monotonizer.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/myassert.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/myassert.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/myassert.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/myassert.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mycode.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mycode.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mycode.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mycode.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mymath.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mymath.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mymath.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mymath.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mysetjmp.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mysetjmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mysetjmp.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mysetjmp.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mystring.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mystring.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mystring.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/mystring.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbsconsts.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbsconsts.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbsconsts.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbsconsts.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbsinterfac.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbsinterfac.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbsinterfac.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbsinterfac.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbstess.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbstess.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbstess.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbstess.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbstess.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbstess.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbstess.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/nurbstess.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patch.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patch.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patch.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patch.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patch.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patch.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patch.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patch.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patchlist.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patchlist.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patchlist.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patchlist.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patchlist.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patchlist.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patchlist.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/patchlist.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/pwlarc.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/pwlarc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/pwlarc.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/pwlarc.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/quilt.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/quilt.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/quilt.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/quilt.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/quilt.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/quilt.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/quilt.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/quilt.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/reader.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/reader.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/reader.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/reader.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/reader.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/reader.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/reader.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/reader.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/renderhints.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/renderhints.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/renderhints.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/renderhints.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/renderhints.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/renderhints.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/renderhints.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/renderhints.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/simplemath.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/simplemath.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/simplemath.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/simplemath.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/slicer.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/slicer.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/slicer.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/slicer.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/slicer.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/slicer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/slicer.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/slicer.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/sorter.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/sorter.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/sorter.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/sorter.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/sorter.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/sorter.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/sorter.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/sorter.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/splitarcs.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/splitarcs.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/splitarcs.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/splitarcs.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/subdivider.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/subdivider.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/subdivider.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/subdivider.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/subdivider.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/subdivider.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/subdivider.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/subdivider.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/tobezier.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/tobezier.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/tobezier.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/tobezier.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimline.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimline.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimline.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimline.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimline.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimline.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimline.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimline.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimregion.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimregion.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimregion.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimregion.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimregion.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimregion.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimregion.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimregion.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertex.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertex.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertex.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertex.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertpool.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertpool.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertpool.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertpool.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertpool.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertpool.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertpool.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/trimvertpool.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/types.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/types.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/types.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/types.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/uarray.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/uarray.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/uarray.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/uarray.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/uarray.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/uarray.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/uarray.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/uarray.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/varray.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/varray.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/varray.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/varray.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/varray.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/varray.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/internals/varray.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/internals/varray.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/definitions.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/definitions.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/definitions.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/definitions.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/glimports.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/glimports.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/glimports.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/glimports.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/gridWrap.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/gridWrap.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/gridWrap.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/gridWrap.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/gridWrap.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/gridWrap.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/gridWrap.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/gridWrap.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoChain.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoChain.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoChain.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoChain.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoChain.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoChain.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoChain.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoChain.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoPolyPart.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoPolyPart.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoPolyPart.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoPolyPart.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoPolyPart.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoPolyPart.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoPolyPart.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoPolyPart.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoTriangulation.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoTriangulation.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoTriangulation.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoTriangulation.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoTriangulation.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoTriangulation.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoTriangulation.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/monoTriangulation.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/mystdio.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/mystdio.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/mystdio.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/mystdio.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/mystdlib.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/mystdlib.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/mystdlib.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/mystdlib.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionX.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionX.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionX.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionX.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionX.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionX.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionX.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionX.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/primitiveStream.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/primitiveStream.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/primitiveStream.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/primitiveStream.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/primitiveStream.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/primitiveStream.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/primitiveStream.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/primitiveStream.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/rectBlock.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/rectBlock.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/rectBlock.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/rectBlock.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/rectBlock.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/rectBlock.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/rectBlock.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/rectBlock.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleComp.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleComp.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleComp.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleComp.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleComp.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleComp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleComp.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleComp.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompRight.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompRight.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompRight.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompRight.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompRight.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompRight.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompRight.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompRight.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleMonoPoly.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleMonoPoly.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleMonoPoly.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleMonoPoly.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleMonoPoly.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleMonoPoly.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleMonoPoly.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampleMonoPoly.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/searchTree.cc b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/searchTree.cc similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/searchTree.cc rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/searchTree.cc diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/searchTree.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/searchTree.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/searchTree.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/searchTree.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/zlassert.h b/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/zlassert.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/zlassert.h rename to dll/opengl/mesa/src/glu/sgi/libnurbs/nurbtess/zlassert.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/README b/dll/opengl/mesa/src/glu/sgi/libtess/README similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/README rename to dll/opengl/mesa/src/glu/sgi/libtess/README diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/alg-outline b/dll/opengl/mesa/src/glu/sgi/libtess/alg-outline similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/alg-outline rename to dll/opengl/mesa/src/glu/sgi/libtess/alg-outline diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/dict-list.h b/dll/opengl/mesa/src/glu/sgi/libtess/dict-list.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/dict-list.h rename to dll/opengl/mesa/src/glu/sgi/libtess/dict-list.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/dict.c b/dll/opengl/mesa/src/glu/sgi/libtess/dict.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/dict.c rename to dll/opengl/mesa/src/glu/sgi/libtess/dict.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/dict.h b/dll/opengl/mesa/src/glu/sgi/libtess/dict.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/dict.h rename to dll/opengl/mesa/src/glu/sgi/libtess/dict.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/geom.c b/dll/opengl/mesa/src/glu/sgi/libtess/geom.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/geom.c rename to dll/opengl/mesa/src/glu/sgi/libtess/geom.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/geom.h b/dll/opengl/mesa/src/glu/sgi/libtess/geom.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/geom.h rename to dll/opengl/mesa/src/glu/sgi/libtess/geom.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/memalloc.c b/dll/opengl/mesa/src/glu/sgi/libtess/memalloc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/memalloc.c rename to dll/opengl/mesa/src/glu/sgi/libtess/memalloc.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/memalloc.h b/dll/opengl/mesa/src/glu/sgi/libtess/memalloc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/memalloc.h rename to dll/opengl/mesa/src/glu/sgi/libtess/memalloc.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/mesh.c b/dll/opengl/mesa/src/glu/sgi/libtess/mesh.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/mesh.c rename to dll/opengl/mesa/src/glu/sgi/libtess/mesh.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/mesh.h b/dll/opengl/mesa/src/glu/sgi/libtess/mesh.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/mesh.h rename to dll/opengl/mesa/src/glu/sgi/libtess/mesh.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/normal.c b/dll/opengl/mesa/src/glu/sgi/libtess/normal.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/normal.c rename to dll/opengl/mesa/src/glu/sgi/libtess/normal.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/normal.h b/dll/opengl/mesa/src/glu/sgi/libtess/normal.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/normal.h rename to dll/opengl/mesa/src/glu/sgi/libtess/normal.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/priorityq-heap.c b/dll/opengl/mesa/src/glu/sgi/libtess/priorityq-heap.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/priorityq-heap.c rename to dll/opengl/mesa/src/glu/sgi/libtess/priorityq-heap.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/priorityq-heap.h b/dll/opengl/mesa/src/glu/sgi/libtess/priorityq-heap.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/priorityq-heap.h rename to dll/opengl/mesa/src/glu/sgi/libtess/priorityq-heap.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/priorityq-sort.h b/dll/opengl/mesa/src/glu/sgi/libtess/priorityq-sort.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/priorityq-sort.h rename to dll/opengl/mesa/src/glu/sgi/libtess/priorityq-sort.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/priorityq.c b/dll/opengl/mesa/src/glu/sgi/libtess/priorityq.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/priorityq.c rename to dll/opengl/mesa/src/glu/sgi/libtess/priorityq.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/priorityq.h b/dll/opengl/mesa/src/glu/sgi/libtess/priorityq.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/priorityq.h rename to dll/opengl/mesa/src/glu/sgi/libtess/priorityq.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/render.c b/dll/opengl/mesa/src/glu/sgi/libtess/render.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/render.c rename to dll/opengl/mesa/src/glu/sgi/libtess/render.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/render.h b/dll/opengl/mesa/src/glu/sgi/libtess/render.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/render.h rename to dll/opengl/mesa/src/glu/sgi/libtess/render.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/sweep.c b/dll/opengl/mesa/src/glu/sgi/libtess/sweep.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/sweep.c rename to dll/opengl/mesa/src/glu/sgi/libtess/sweep.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/sweep.h b/dll/opengl/mesa/src/glu/sgi/libtess/sweep.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/sweep.h rename to dll/opengl/mesa/src/glu/sgi/libtess/sweep.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/tess.c b/dll/opengl/mesa/src/glu/sgi/libtess/tess.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/tess.c rename to dll/opengl/mesa/src/glu/sgi/libtess/tess.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/tess.h b/dll/opengl/mesa/src/glu/sgi/libtess/tess.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/tess.h rename to dll/opengl/mesa/src/glu/sgi/libtess/tess.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/tessmono.c b/dll/opengl/mesa/src/glu/sgi/libtess/tessmono.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/tessmono.c rename to dll/opengl/mesa/src/glu/sgi/libtess/tessmono.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libtess/tessmono.h b/dll/opengl/mesa/src/glu/sgi/libtess/tessmono.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libtess/tessmono.h rename to dll/opengl/mesa/src/glu/sgi/libtess/tessmono.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libutil/error.c b/dll/opengl/mesa/src/glu/sgi/libutil/error.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libutil/error.c rename to dll/opengl/mesa/src/glu/sgi/libutil/error.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libutil/glue.c b/dll/opengl/mesa/src/glu/sgi/libutil/glue.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libutil/glue.c rename to dll/opengl/mesa/src/glu/sgi/libutil/glue.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libutil/gluint.h b/dll/opengl/mesa/src/glu/sgi/libutil/gluint.h similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libutil/gluint.h rename to dll/opengl/mesa/src/glu/sgi/libutil/gluint.h diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libutil/mipmap.c b/dll/opengl/mesa/src/glu/sgi/libutil/mipmap.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libutil/mipmap.c rename to dll/opengl/mesa/src/glu/sgi/libutil/mipmap.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libutil/project.c b/dll/opengl/mesa/src/glu/sgi/libutil/project.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libutil/project.c rename to dll/opengl/mesa/src/glu/sgi/libutil/project.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libutil/quad.c b/dll/opengl/mesa/src/glu/sgi/libutil/quad.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libutil/quad.c rename to dll/opengl/mesa/src/glu/sgi/libutil/quad.c diff --git a/reactos/dll/opengl/mesa/src/glu/sgi/libutil/registry.c b/dll/opengl/mesa/src/glu/sgi/libutil/registry.c similarity index 100% rename from reactos/dll/opengl/mesa/src/glu/sgi/libutil/registry.c rename to dll/opengl/mesa/src/glu/sgi/libutil/registry.c diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/CMakeLists.txt b/dll/opengl/mesa/src/mapi/glapi/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/CMakeLists.txt rename to dll/opengl/mesa/src/mapi/glapi/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/Makefile b/dll/opengl/mesa/src/mapi/glapi/Makefile similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/Makefile rename to dll/opengl/mesa/src/mapi/glapi/Makefile diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/SConscript b/dll/opengl/mesa/src/mapi/glapi/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/SConscript rename to dll/opengl/mesa/src/mapi/glapi/SConscript diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/AMD_draw_buffers_blend.xml b/dll/opengl/mesa/src/mapi/glapi/gen/AMD_draw_buffers_blend.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/AMD_draw_buffers_blend.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/AMD_draw_buffers_blend.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/APPLE_object_purgeable.xml b/dll/opengl/mesa/src/mapi/glapi/gen/APPLE_object_purgeable.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/APPLE_object_purgeable.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/APPLE_object_purgeable.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/APPLE_vertex_array_object.xml b/dll/opengl/mesa/src/mapi/glapi/gen/APPLE_vertex_array_object.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/APPLE_vertex_array_object.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/APPLE_vertex_array_object.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_ES2_compatibility.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_ES2_compatibility.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_ES2_compatibility.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_ES2_compatibility.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_color_buffer_float.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_color_buffer_float.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_color_buffer_float.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_color_buffer_float.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_copy_buffer.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_copy_buffer.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_copy_buffer.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_copy_buffer.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_depth_clamp.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_depth_clamp.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_depth_clamp.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_depth_clamp.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_buffers.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_buffers.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_buffers.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_buffers.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_instanced.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_instanced.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_instanced.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_draw_instanced.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_framebuffer_object.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_framebuffer_object.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_framebuffer_object.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_framebuffer_object.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_geometry_shader4.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_geometry_shader4.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_geometry_shader4.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_geometry_shader4.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_get_program_binary.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_get_program_binary.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_get_program_binary.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_get_program_binary.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_instanced_arrays.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_instanced_arrays.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_instanced_arrays.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_instanced_arrays.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_map_buffer_range.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_map_buffer_range.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_map_buffer_range.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_map_buffer_range.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_robustness.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_robustness.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_robustness.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_robustness.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_sampler_objects.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_sampler_objects.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_sampler_objects.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_sampler_objects.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_seamless_cube_map.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_seamless_cube_map.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_seamless_cube_map.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_seamless_cube_map.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_sync.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_sync.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_sync.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_sync.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_buffer_object.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_buffer_object.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_buffer_object.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_buffer_object.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_rgb10_a2ui.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_rgb10_a2ui.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_rgb10_a2ui.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_rgb10_a2ui.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_storage.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_storage.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_storage.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_texture_storage.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_vertex_array_object.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_vertex_array_object.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_vertex_array_object.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_vertex_array_object.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml b/dll/opengl/mesa/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_draw_buffers2.xml b/dll/opengl/mesa/src/mapi/glapi/gen/EXT_draw_buffers2.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_draw_buffers2.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/EXT_draw_buffers2.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_framebuffer_object.xml b/dll/opengl/mesa/src/mapi/glapi/gen/EXT_framebuffer_object.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_framebuffer_object.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/EXT_framebuffer_object.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_gpu_shader4.xml b/dll/opengl/mesa/src/mapi/glapi/gen/EXT_gpu_shader4.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_gpu_shader4.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/EXT_gpu_shader4.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_packed_depth_stencil.xml b/dll/opengl/mesa/src/mapi/glapi/gen/EXT_packed_depth_stencil.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_packed_depth_stencil.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/EXT_packed_depth_stencil.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_provoking_vertex.xml b/dll/opengl/mesa/src/mapi/glapi/gen/EXT_provoking_vertex.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_provoking_vertex.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/EXT_provoking_vertex.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_separate_shader_objects.xml b/dll/opengl/mesa/src/mapi/glapi/gen/EXT_separate_shader_objects.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_separate_shader_objects.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/EXT_separate_shader_objects.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_texture_array.xml b/dll/opengl/mesa/src/mapi/glapi/gen/EXT_texture_array.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_texture_array.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/EXT_texture_array.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_texture_integer.xml b/dll/opengl/mesa/src/mapi/glapi/gen/EXT_texture_integer.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_texture_integer.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/EXT_texture_integer.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_transform_feedback.xml b/dll/opengl/mesa/src/mapi/glapi/gen/EXT_transform_feedback.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/EXT_transform_feedback.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/EXT_transform_feedback.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/GL3x.xml b/dll/opengl/mesa/src/mapi/glapi/gen/GL3x.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/GL3x.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/GL3x.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/Makefile b/dll/opengl/mesa/src/mapi/glapi/gen/Makefile similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/Makefile rename to dll/opengl/mesa/src/mapi/glapi/gen/Makefile diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/NV_conditional_render.xml b/dll/opengl/mesa/src/mapi/glapi/gen/NV_conditional_render.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/NV_conditional_render.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/NV_conditional_render.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/NV_primitive_restart.xml b/dll/opengl/mesa/src/mapi/glapi/gen/NV_primitive_restart.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/NV_primitive_restart.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/NV_primitive_restart.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/NV_texture_barrier.xml b/dll/opengl/mesa/src/mapi/glapi/gen/NV_texture_barrier.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/NV_texture_barrier.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/NV_texture_barrier.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/OES_EGL_image.xml b/dll/opengl/mesa/src/mapi/glapi/gen/OES_EGL_image.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/OES_EGL_image.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/OES_EGL_image.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/OES_fixed_point.xml b/dll/opengl/mesa/src/mapi/glapi/gen/OES_fixed_point.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/OES_fixed_point.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/OES_fixed_point.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/OES_single_precision.xml b/dll/opengl/mesa/src/mapi/glapi/gen/OES_single_precision.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/OES_single_precision.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/OES_single_precision.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/es_EXT.xml b/dll/opengl/mesa/src/mapi/glapi/gen/es_EXT.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/es_EXT.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/es_EXT.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/extension_helper.py b/dll/opengl/mesa/src/mapi/glapi/gen/extension_helper.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/extension_helper.py rename to dll/opengl/mesa/src/mapi/glapi/gen/extension_helper.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_API.xml b/dll/opengl/mesa/src/mapi/glapi/gen/glX_API.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_API.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/glX_API.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_XML.py b/dll/opengl/mesa/src/mapi/glapi/gen/glX_XML.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_XML.py rename to dll/opengl/mesa/src/mapi/glapi/gen/glX_XML.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_doc.py b/dll/opengl/mesa/src/mapi/glapi/gen/glX_doc.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_doc.py rename to dll/opengl/mesa/src/mapi/glapi/gen/glX_doc.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_common.py b/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_common.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_common.py rename to dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_common.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_recv.py b/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_recv.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_recv.py rename to dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_recv.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_send.py b/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_send.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_send.py rename to dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_send.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_size.py b/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_size.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_size.py rename to dll/opengl/mesa/src/mapi/glapi/gen/glX_proto_size.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_server_table.py b/dll/opengl/mesa/src/mapi/glapi/gen/glX_server_table.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/glX_server_table.py rename to dll/opengl/mesa/src/mapi/glapi/gen/glX_server_table.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_API.dtd b/dll/opengl/mesa/src/mapi/glapi/gen/gl_API.dtd similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_API.dtd rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_API.dtd diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_API.xml b/dll/opengl/mesa/src/mapi/glapi/gen/gl_API.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_API.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_API.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_SPARC_asm.py b/dll/opengl/mesa/src/mapi/glapi/gen/gl_SPARC_asm.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_SPARC_asm.py rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_SPARC_asm.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_XML.py b/dll/opengl/mesa/src/mapi/glapi/gen/gl_XML.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_XML.py rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_XML.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_and_es_API.xml b/dll/opengl/mesa/src/mapi/glapi/gen/gl_and_es_API.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_and_es_API.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_and_es_API.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_and_glX_API.xml b/dll/opengl/mesa/src/mapi/glapi/gen/gl_and_glX_API.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_and_glX_API.xml rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_and_glX_API.xml diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_apitemp.py b/dll/opengl/mesa/src/mapi/glapi/gen/gl_apitemp.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_apitemp.py rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_apitemp.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_enums.py b/dll/opengl/mesa/src/mapi/glapi/gen/gl_enums.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_enums.py rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_enums.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_gentable.py b/dll/opengl/mesa/src/mapi/glapi/gen/gl_gentable.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_gentable.py rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_gentable.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_offsets.py b/dll/opengl/mesa/src/mapi/glapi/gen/gl_offsets.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_offsets.py rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_offsets.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_procs.py b/dll/opengl/mesa/src/mapi/glapi/gen/gl_procs.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_procs.py rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_procs.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_table.py b/dll/opengl/mesa/src/mapi/glapi/gen/gl_table.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_table.py rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_table.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_x86-64_asm.py b/dll/opengl/mesa/src/mapi/glapi/gen/gl_x86-64_asm.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_x86-64_asm.py rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_x86-64_asm.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_x86_asm.py b/dll/opengl/mesa/src/mapi/glapi/gen/gl_x86_asm.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gl_x86_asm.py rename to dll/opengl/mesa/src/mapi/glapi/gen/gl_x86_asm.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/glapi_gen.mk b/dll/opengl/mesa/src/mapi/glapi/gen/glapi_gen.mk similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/glapi_gen.mk rename to dll/opengl/mesa/src/mapi/glapi/gen/glapi_gen.mk diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/gles_api.py b/dll/opengl/mesa/src/mapi/glapi/gen/gles_api.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/gles_api.py rename to dll/opengl/mesa/src/mapi/glapi/gen/gles_api.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/license.py b/dll/opengl/mesa/src/mapi/glapi/gen/license.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/license.py rename to dll/opengl/mesa/src/mapi/glapi/gen/license.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/mesadef.py b/dll/opengl/mesa/src/mapi/glapi/gen/mesadef.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/mesadef.py rename to dll/opengl/mesa/src/mapi/glapi/gen/mesadef.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/next_available_offset.sh b/dll/opengl/mesa/src/mapi/glapi/gen/next_available_offset.sh similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/next_available_offset.sh rename to dll/opengl/mesa/src/mapi/glapi/gen/next_available_offset.sh diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/remap_helper.py b/dll/opengl/mesa/src/mapi/glapi/gen/remap_helper.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/remap_helper.py rename to dll/opengl/mesa/src/mapi/glapi/gen/remap_helper.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/gen/typeexpr.py b/dll/opengl/mesa/src/mapi/glapi/gen/typeexpr.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/gen/typeexpr.py rename to dll/opengl/mesa/src/mapi/glapi/gen/typeexpr.py diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi.c b/dll/opengl/mesa/src/mapi/glapi/glapi.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi.c rename to dll/opengl/mesa/src/mapi/glapi/glapi.c diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi.h b/dll/opengl/mesa/src/mapi/glapi/glapi.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi.h rename to dll/opengl/mesa/src/mapi/glapi/glapi.h diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi_dispatch.c b/dll/opengl/mesa/src/mapi/glapi/glapi_dispatch.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi_dispatch.c rename to dll/opengl/mesa/src/mapi/glapi/glapi_dispatch.c diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi_entrypoint.c b/dll/opengl/mesa/src/mapi/glapi/glapi_entrypoint.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi_entrypoint.c rename to dll/opengl/mesa/src/mapi/glapi/glapi_entrypoint.c diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi_gentable.c b/dll/opengl/mesa/src/mapi/glapi/glapi_gentable.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi_gentable.c rename to dll/opengl/mesa/src/mapi/glapi/glapi_gentable.c diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi_getproc.c b/dll/opengl/mesa/src/mapi/glapi/glapi_getproc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi_getproc.c rename to dll/opengl/mesa/src/mapi/glapi/glapi_getproc.c diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi_mapi_tmp.h b/dll/opengl/mesa/src/mapi/glapi/glapi_mapi_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi_mapi_tmp.h rename to dll/opengl/mesa/src/mapi/glapi/glapi_mapi_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi_nop.c b/dll/opengl/mesa/src/mapi/glapi/glapi_nop.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi_nop.c rename to dll/opengl/mesa/src/mapi/glapi/glapi_nop.c diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi_priv.h b/dll/opengl/mesa/src/mapi/glapi/glapi_priv.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi_priv.h rename to dll/opengl/mesa/src/mapi/glapi/glapi_priv.h diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi_sparc.S b/dll/opengl/mesa/src/mapi/glapi/glapi_sparc.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi_sparc.S rename to dll/opengl/mesa/src/mapi/glapi/glapi_sparc.S diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi_x86-64.S b/dll/opengl/mesa/src/mapi/glapi/glapi_x86-64.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi_x86-64.S rename to dll/opengl/mesa/src/mapi/glapi/glapi_x86-64.S diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapi_x86.S b/dll/opengl/mesa/src/mapi/glapi/glapi_x86.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapi_x86.S rename to dll/opengl/mesa/src/mapi/glapi/glapi_x86.S diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapitable.h b/dll/opengl/mesa/src/mapi/glapi/glapitable.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapitable.h rename to dll/opengl/mesa/src/mapi/glapi/glapitable.h diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glapitemp.h b/dll/opengl/mesa/src/mapi/glapi/glapitemp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glapitemp.h rename to dll/opengl/mesa/src/mapi/glapi/glapitemp.h diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glprocs.h b/dll/opengl/mesa/src/mapi/glapi/glprocs.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glprocs.h rename to dll/opengl/mesa/src/mapi/glapi/glprocs.h diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glthread.c b/dll/opengl/mesa/src/mapi/glapi/glthread.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glthread.c rename to dll/opengl/mesa/src/mapi/glapi/glthread.c diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/glthread.h b/dll/opengl/mesa/src/mapi/glapi/glthread.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/glthread.h rename to dll/opengl/mesa/src/mapi/glapi/glthread.h diff --git a/reactos/dll/opengl/mesa/src/mapi/glapi/sources.mak b/dll/opengl/mesa/src/mapi/glapi/sources.mak similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/glapi/sources.mak rename to dll/opengl/mesa/src/mapi/glapi/sources.mak diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/entry.c b/dll/opengl/mesa/src/mapi/mapi/entry.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/entry.c rename to dll/opengl/mesa/src/mapi/mapi/entry.c diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/entry.h b/dll/opengl/mesa/src/mapi/mapi/entry.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/entry.h rename to dll/opengl/mesa/src/mapi/mapi/entry.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/entry_x86-64_tls.h b/dll/opengl/mesa/src/mapi/mapi/entry_x86-64_tls.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/entry_x86-64_tls.h rename to dll/opengl/mesa/src/mapi/mapi/entry_x86-64_tls.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/entry_x86_tls.h b/dll/opengl/mesa/src/mapi/mapi/entry_x86_tls.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/entry_x86_tls.h rename to dll/opengl/mesa/src/mapi/mapi/entry_x86_tls.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/entry_x86_tsd.h b/dll/opengl/mesa/src/mapi/mapi/entry_x86_tsd.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/entry_x86_tsd.h rename to dll/opengl/mesa/src/mapi/mapi/entry_x86_tsd.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/mapi.c b/dll/opengl/mesa/src/mapi/mapi/mapi.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/mapi.c rename to dll/opengl/mesa/src/mapi/mapi/mapi.c diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/mapi.h b/dll/opengl/mesa/src/mapi/mapi/mapi.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/mapi.h rename to dll/opengl/mesa/src/mapi/mapi/mapi.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/mapi_abi.py b/dll/opengl/mesa/src/mapi/mapi/mapi_abi.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/mapi_abi.py rename to dll/opengl/mesa/src/mapi/mapi/mapi_abi.py diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/mapi_glapi.c b/dll/opengl/mesa/src/mapi/mapi/mapi_glapi.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/mapi_glapi.c rename to dll/opengl/mesa/src/mapi/mapi/mapi_glapi.c diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/mapi_tmp.h b/dll/opengl/mesa/src/mapi/mapi/mapi_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/mapi_tmp.h rename to dll/opengl/mesa/src/mapi/mapi/mapi_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/sources.mak b/dll/opengl/mesa/src/mapi/mapi/sources.mak similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/sources.mak rename to dll/opengl/mesa/src/mapi/mapi/sources.mak diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/stub.c b/dll/opengl/mesa/src/mapi/mapi/stub.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/stub.c rename to dll/opengl/mesa/src/mapi/mapi/stub.c diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/stub.h b/dll/opengl/mesa/src/mapi/mapi/stub.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/stub.h rename to dll/opengl/mesa/src/mapi/mapi/stub.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/table.c b/dll/opengl/mesa/src/mapi/mapi/table.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/table.c rename to dll/opengl/mesa/src/mapi/mapi/table.c diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/table.h b/dll/opengl/mesa/src/mapi/mapi/table.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/table.h rename to dll/opengl/mesa/src/mapi/mapi/table.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/u_compiler.h b/dll/opengl/mesa/src/mapi/mapi/u_compiler.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/u_compiler.h rename to dll/opengl/mesa/src/mapi/mapi/u_compiler.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/u_current.c b/dll/opengl/mesa/src/mapi/mapi/u_current.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/u_current.c rename to dll/opengl/mesa/src/mapi/mapi/u_current.c diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/u_current.h b/dll/opengl/mesa/src/mapi/mapi/u_current.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/u_current.h rename to dll/opengl/mesa/src/mapi/mapi/u_current.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/u_execmem.c b/dll/opengl/mesa/src/mapi/mapi/u_execmem.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/u_execmem.c rename to dll/opengl/mesa/src/mapi/mapi/u_execmem.c diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/u_execmem.h b/dll/opengl/mesa/src/mapi/mapi/u_execmem.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/u_execmem.h rename to dll/opengl/mesa/src/mapi/mapi/u_execmem.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/u_macros.h b/dll/opengl/mesa/src/mapi/mapi/u_macros.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/u_macros.h rename to dll/opengl/mesa/src/mapi/mapi/u_macros.h diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/u_thread.c b/dll/opengl/mesa/src/mapi/mapi/u_thread.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/u_thread.c rename to dll/opengl/mesa/src/mapi/mapi/u_thread.c diff --git a/reactos/dll/opengl/mesa/src/mapi/mapi/u_thread.h b/dll/opengl/mesa/src/mapi/mapi/u_thread.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mapi/mapi/u_thread.h rename to dll/opengl/mesa/src/mapi/mapi/u_thread.h diff --git a/reactos/dll/opengl/mesa/src/mesa/CMakeLists.txt b/dll/opengl/mesa/src/mesa/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/CMakeLists.txt rename to dll/opengl/mesa/src/mesa/CMakeLists.txt diff --git a/reactos/dll/opengl/mesa/src/mesa/SConscript b/dll/opengl/mesa/src/mesa/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/SConscript rename to dll/opengl/mesa/src/mesa/SConscript diff --git a/reactos/dll/opengl/mesa/src/mesa/drivers/SConscript b/dll/opengl/mesa/src/mesa/drivers/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/drivers/SConscript rename to dll/opengl/mesa/src/mesa/drivers/SConscript diff --git a/reactos/dll/opengl/mesa/src/mesa/drivers/common/descrip.mms b/dll/opengl/mesa/src/mesa/drivers/common/descrip.mms similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/drivers/common/descrip.mms rename to dll/opengl/mesa/src/mesa/drivers/common/descrip.mms diff --git a/reactos/dll/opengl/mesa/src/mesa/drivers/common/driverfuncs.c b/dll/opengl/mesa/src/mesa/drivers/common/driverfuncs.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/drivers/common/driverfuncs.c rename to dll/opengl/mesa/src/mesa/drivers/common/driverfuncs.c diff --git a/reactos/dll/opengl/mesa/src/mesa/drivers/common/driverfuncs.h b/dll/opengl/mesa/src/mesa/drivers/common/driverfuncs.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/drivers/common/driverfuncs.h rename to dll/opengl/mesa/src/mesa/drivers/common/driverfuncs.h diff --git a/reactos/dll/opengl/mesa/src/mesa/drivers/common/meta.c b/dll/opengl/mesa/src/mesa/drivers/common/meta.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/drivers/common/meta.c rename to dll/opengl/mesa/src/mesa/drivers/common/meta.c diff --git a/reactos/dll/opengl/mesa/src/mesa/drivers/common/meta.h b/dll/opengl/mesa/src/mesa/drivers/common/meta.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/drivers/common/meta.h rename to dll/opengl/mesa/src/mesa/drivers/common/meta.h diff --git a/reactos/dll/opengl/mesa/src/mesa/drivers/osmesa/SConscript b/dll/opengl/mesa/src/mesa/drivers/osmesa/SConscript similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/drivers/osmesa/SConscript rename to dll/opengl/mesa/src/mesa/drivers/osmesa/SConscript diff --git a/reactos/dll/opengl/mesa/src/mesa/drivers/osmesa/osmesa.c b/dll/opengl/mesa/src/mesa/drivers/osmesa/osmesa.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/drivers/osmesa/osmesa.c rename to dll/opengl/mesa/src/mesa/drivers/osmesa/osmesa.c diff --git a/reactos/dll/opengl/mesa/src/mesa/drivers/osmesa/osmesa.def b/dll/opengl/mesa/src/mesa/drivers/osmesa/osmesa.def similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/drivers/osmesa/osmesa.def rename to dll/opengl/mesa/src/mesa/drivers/osmesa/osmesa.def diff --git a/reactos/dll/opengl/mesa/src/mesa/main/APIspec.dtd b/dll/opengl/mesa/src/mesa/main/APIspec.dtd similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/APIspec.dtd rename to dll/opengl/mesa/src/mesa/main/APIspec.dtd diff --git a/reactos/dll/opengl/mesa/src/mesa/main/APIspec.py b/dll/opengl/mesa/src/mesa/main/APIspec.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/APIspec.py rename to dll/opengl/mesa/src/mesa/main/APIspec.py diff --git a/reactos/dll/opengl/mesa/src/mesa/main/APIspec.xml b/dll/opengl/mesa/src/mesa/main/APIspec.xml similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/APIspec.xml rename to dll/opengl/mesa/src/mesa/main/APIspec.xml diff --git a/reactos/dll/opengl/mesa/src/mesa/main/APIspecutil.py b/dll/opengl/mesa/src/mesa/main/APIspecutil.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/APIspecutil.py rename to dll/opengl/mesa/src/mesa/main/APIspecutil.py diff --git a/reactos/dll/opengl/mesa/src/mesa/main/accum.c b/dll/opengl/mesa/src/mesa/main/accum.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/accum.c rename to dll/opengl/mesa/src/mesa/main/accum.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/accum.h b/dll/opengl/mesa/src/mesa/main/accum.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/accum.h rename to dll/opengl/mesa/src/mesa/main/accum.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/api_arrayelt.c b/dll/opengl/mesa/src/mesa/main/api_arrayelt.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/api_arrayelt.c rename to dll/opengl/mesa/src/mesa/main/api_arrayelt.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/api_arrayelt.h b/dll/opengl/mesa/src/mesa/main/api_arrayelt.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/api_arrayelt.h rename to dll/opengl/mesa/src/mesa/main/api_arrayelt.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/api_exec.c b/dll/opengl/mesa/src/mesa/main/api_exec.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/api_exec.c rename to dll/opengl/mesa/src/mesa/main/api_exec.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/api_exec.h b/dll/opengl/mesa/src/mesa/main/api_exec.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/api_exec.h rename to dll/opengl/mesa/src/mesa/main/api_exec.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/api_exec_es1.c b/dll/opengl/mesa/src/mesa/main/api_exec_es1.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/api_exec_es1.c rename to dll/opengl/mesa/src/mesa/main/api_exec_es1.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/api_exec_es2.c b/dll/opengl/mesa/src/mesa/main/api_exec_es2.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/api_exec_es2.c rename to dll/opengl/mesa/src/mesa/main/api_exec_es2.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/api_loopback.c b/dll/opengl/mesa/src/mesa/main/api_loopback.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/api_loopback.c rename to dll/opengl/mesa/src/mesa/main/api_loopback.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/api_loopback.h b/dll/opengl/mesa/src/mesa/main/api_loopback.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/api_loopback.h rename to dll/opengl/mesa/src/mesa/main/api_loopback.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/api_validate.c b/dll/opengl/mesa/src/mesa/main/api_validate.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/api_validate.c rename to dll/opengl/mesa/src/mesa/main/api_validate.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/api_validate.h b/dll/opengl/mesa/src/mesa/main/api_validate.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/api_validate.h rename to dll/opengl/mesa/src/mesa/main/api_validate.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/arbprogram.c b/dll/opengl/mesa/src/mesa/main/arbprogram.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/arbprogram.c rename to dll/opengl/mesa/src/mesa/main/arbprogram.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/arbprogram.h b/dll/opengl/mesa/src/mesa/main/arbprogram.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/arbprogram.h rename to dll/opengl/mesa/src/mesa/main/arbprogram.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/arrayobj.c b/dll/opengl/mesa/src/mesa/main/arrayobj.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/arrayobj.c rename to dll/opengl/mesa/src/mesa/main/arrayobj.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/arrayobj.h b/dll/opengl/mesa/src/mesa/main/arrayobj.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/arrayobj.h rename to dll/opengl/mesa/src/mesa/main/arrayobj.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/atifragshader.c b/dll/opengl/mesa/src/mesa/main/atifragshader.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/atifragshader.c rename to dll/opengl/mesa/src/mesa/main/atifragshader.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/atifragshader.h b/dll/opengl/mesa/src/mesa/main/atifragshader.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/atifragshader.h rename to dll/opengl/mesa/src/mesa/main/atifragshader.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/attrib.c b/dll/opengl/mesa/src/mesa/main/attrib.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/attrib.c rename to dll/opengl/mesa/src/mesa/main/attrib.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/attrib.h b/dll/opengl/mesa/src/mesa/main/attrib.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/attrib.h rename to dll/opengl/mesa/src/mesa/main/attrib.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/bitset.h b/dll/opengl/mesa/src/mesa/main/bitset.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/bitset.h rename to dll/opengl/mesa/src/mesa/main/bitset.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/blend.c b/dll/opengl/mesa/src/mesa/main/blend.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/blend.c rename to dll/opengl/mesa/src/mesa/main/blend.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/blend.h b/dll/opengl/mesa/src/mesa/main/blend.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/blend.h rename to dll/opengl/mesa/src/mesa/main/blend.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/bufferobj.c b/dll/opengl/mesa/src/mesa/main/bufferobj.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/bufferobj.c rename to dll/opengl/mesa/src/mesa/main/bufferobj.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/bufferobj.h b/dll/opengl/mesa/src/mesa/main/bufferobj.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/bufferobj.h rename to dll/opengl/mesa/src/mesa/main/bufferobj.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/buffers.c b/dll/opengl/mesa/src/mesa/main/buffers.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/buffers.c rename to dll/opengl/mesa/src/mesa/main/buffers.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/buffers.h b/dll/opengl/mesa/src/mesa/main/buffers.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/buffers.h rename to dll/opengl/mesa/src/mesa/main/buffers.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/clear.c b/dll/opengl/mesa/src/mesa/main/clear.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/clear.c rename to dll/opengl/mesa/src/mesa/main/clear.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/clear.h b/dll/opengl/mesa/src/mesa/main/clear.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/clear.h rename to dll/opengl/mesa/src/mesa/main/clear.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/clip.c b/dll/opengl/mesa/src/mesa/main/clip.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/clip.c rename to dll/opengl/mesa/src/mesa/main/clip.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/clip.h b/dll/opengl/mesa/src/mesa/main/clip.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/clip.h rename to dll/opengl/mesa/src/mesa/main/clip.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/colormac.h b/dll/opengl/mesa/src/mesa/main/colormac.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/colormac.h rename to dll/opengl/mesa/src/mesa/main/colormac.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/colortab.c b/dll/opengl/mesa/src/mesa/main/colortab.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/colortab.c rename to dll/opengl/mesa/src/mesa/main/colortab.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/colortab.h b/dll/opengl/mesa/src/mesa/main/colortab.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/colortab.h rename to dll/opengl/mesa/src/mesa/main/colortab.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/compiler.h b/dll/opengl/mesa/src/mesa/main/compiler.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/compiler.h rename to dll/opengl/mesa/src/mesa/main/compiler.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/condrender.c b/dll/opengl/mesa/src/mesa/main/condrender.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/condrender.c rename to dll/opengl/mesa/src/mesa/main/condrender.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/condrender.h b/dll/opengl/mesa/src/mesa/main/condrender.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/condrender.h rename to dll/opengl/mesa/src/mesa/main/condrender.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/config.h b/dll/opengl/mesa/src/mesa/main/config.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/config.h rename to dll/opengl/mesa/src/mesa/main/config.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/context.c b/dll/opengl/mesa/src/mesa/main/context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/context.c rename to dll/opengl/mesa/src/mesa/main/context.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/context.h b/dll/opengl/mesa/src/mesa/main/context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/context.h rename to dll/opengl/mesa/src/mesa/main/context.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/convolve.c b/dll/opengl/mesa/src/mesa/main/convolve.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/convolve.c rename to dll/opengl/mesa/src/mesa/main/convolve.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/convolve.h b/dll/opengl/mesa/src/mesa/main/convolve.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/convolve.h rename to dll/opengl/mesa/src/mesa/main/convolve.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/core.h b/dll/opengl/mesa/src/mesa/main/core.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/core.h rename to dll/opengl/mesa/src/mesa/main/core.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/cpuinfo.c b/dll/opengl/mesa/src/mesa/main/cpuinfo.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/cpuinfo.c rename to dll/opengl/mesa/src/mesa/main/cpuinfo.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/cpuinfo.h b/dll/opengl/mesa/src/mesa/main/cpuinfo.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/cpuinfo.h rename to dll/opengl/mesa/src/mesa/main/cpuinfo.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/dd.h b/dll/opengl/mesa/src/mesa/main/dd.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/dd.h rename to dll/opengl/mesa/src/mesa/main/dd.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/debug.c b/dll/opengl/mesa/src/mesa/main/debug.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/debug.c rename to dll/opengl/mesa/src/mesa/main/debug.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/debug.h b/dll/opengl/mesa/src/mesa/main/debug.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/debug.h rename to dll/opengl/mesa/src/mesa/main/debug.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/depth.c b/dll/opengl/mesa/src/mesa/main/depth.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/depth.c rename to dll/opengl/mesa/src/mesa/main/depth.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/depth.h b/dll/opengl/mesa/src/mesa/main/depth.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/depth.h rename to dll/opengl/mesa/src/mesa/main/depth.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/descrip.mms b/dll/opengl/mesa/src/mesa/main/descrip.mms similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/descrip.mms rename to dll/opengl/mesa/src/mesa/main/descrip.mms diff --git a/reactos/dll/opengl/mesa/src/mesa/main/dispatch.h b/dll/opengl/mesa/src/mesa/main/dispatch.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/dispatch.h rename to dll/opengl/mesa/src/mesa/main/dispatch.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/dlist.c b/dll/opengl/mesa/src/mesa/main/dlist.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/dlist.c rename to dll/opengl/mesa/src/mesa/main/dlist.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/dlist.h b/dll/opengl/mesa/src/mesa/main/dlist.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/dlist.h rename to dll/opengl/mesa/src/mesa/main/dlist.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/dlopen.c b/dll/opengl/mesa/src/mesa/main/dlopen.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/dlopen.c rename to dll/opengl/mesa/src/mesa/main/dlopen.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/dlopen.h b/dll/opengl/mesa/src/mesa/main/dlopen.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/dlopen.h rename to dll/opengl/mesa/src/mesa/main/dlopen.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/drawpix.c b/dll/opengl/mesa/src/mesa/main/drawpix.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/drawpix.c rename to dll/opengl/mesa/src/mesa/main/drawpix.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/drawpix.h b/dll/opengl/mesa/src/mesa/main/drawpix.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/drawpix.h rename to dll/opengl/mesa/src/mesa/main/drawpix.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/drawtex.c b/dll/opengl/mesa/src/mesa/main/drawtex.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/drawtex.c rename to dll/opengl/mesa/src/mesa/main/drawtex.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/drawtex.h b/dll/opengl/mesa/src/mesa/main/drawtex.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/drawtex.h rename to dll/opengl/mesa/src/mesa/main/drawtex.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/enable.c b/dll/opengl/mesa/src/mesa/main/enable.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/enable.c rename to dll/opengl/mesa/src/mesa/main/enable.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/enable.h b/dll/opengl/mesa/src/mesa/main/enable.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/enable.h rename to dll/opengl/mesa/src/mesa/main/enable.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/enums.c b/dll/opengl/mesa/src/mesa/main/enums.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/enums.c rename to dll/opengl/mesa/src/mesa/main/enums.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/enums.h b/dll/opengl/mesa/src/mesa/main/enums.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/enums.h rename to dll/opengl/mesa/src/mesa/main/enums.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/es_generator.py b/dll/opengl/mesa/src/mesa/main/es_generator.py similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/es_generator.py rename to dll/opengl/mesa/src/mesa/main/es_generator.py diff --git a/reactos/dll/opengl/mesa/src/mesa/main/eval.c b/dll/opengl/mesa/src/mesa/main/eval.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/eval.c rename to dll/opengl/mesa/src/mesa/main/eval.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/eval.h b/dll/opengl/mesa/src/mesa/main/eval.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/eval.h rename to dll/opengl/mesa/src/mesa/main/eval.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/execmem.c b/dll/opengl/mesa/src/mesa/main/execmem.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/execmem.c rename to dll/opengl/mesa/src/mesa/main/execmem.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/extensions.c b/dll/opengl/mesa/src/mesa/main/extensions.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/extensions.c rename to dll/opengl/mesa/src/mesa/main/extensions.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/extensions.h b/dll/opengl/mesa/src/mesa/main/extensions.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/extensions.h rename to dll/opengl/mesa/src/mesa/main/extensions.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/fbobject.c b/dll/opengl/mesa/src/mesa/main/fbobject.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/fbobject.c rename to dll/opengl/mesa/src/mesa/main/fbobject.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/fbobject.h b/dll/opengl/mesa/src/mesa/main/fbobject.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/fbobject.h rename to dll/opengl/mesa/src/mesa/main/fbobject.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/feedback.c b/dll/opengl/mesa/src/mesa/main/feedback.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/feedback.c rename to dll/opengl/mesa/src/mesa/main/feedback.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/feedback.h b/dll/opengl/mesa/src/mesa/main/feedback.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/feedback.h rename to dll/opengl/mesa/src/mesa/main/feedback.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/ff_fragment_shader.cpp b/dll/opengl/mesa/src/mesa/main/ff_fragment_shader.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/ff_fragment_shader.cpp rename to dll/opengl/mesa/src/mesa/main/ff_fragment_shader.cpp diff --git a/reactos/dll/opengl/mesa/src/mesa/main/ffvertex_prog.c b/dll/opengl/mesa/src/mesa/main/ffvertex_prog.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/ffvertex_prog.c rename to dll/opengl/mesa/src/mesa/main/ffvertex_prog.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/ffvertex_prog.h b/dll/opengl/mesa/src/mesa/main/ffvertex_prog.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/ffvertex_prog.h rename to dll/opengl/mesa/src/mesa/main/ffvertex_prog.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/fog.c b/dll/opengl/mesa/src/mesa/main/fog.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/fog.c rename to dll/opengl/mesa/src/mesa/main/fog.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/fog.h b/dll/opengl/mesa/src/mesa/main/fog.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/fog.h rename to dll/opengl/mesa/src/mesa/main/fog.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/format_pack.c b/dll/opengl/mesa/src/mesa/main/format_pack.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/format_pack.c rename to dll/opengl/mesa/src/mesa/main/format_pack.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/format_pack.h b/dll/opengl/mesa/src/mesa/main/format_pack.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/format_pack.h rename to dll/opengl/mesa/src/mesa/main/format_pack.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/format_unpack.c b/dll/opengl/mesa/src/mesa/main/format_unpack.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/format_unpack.c rename to dll/opengl/mesa/src/mesa/main/format_unpack.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/format_unpack.h b/dll/opengl/mesa/src/mesa/main/format_unpack.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/format_unpack.h rename to dll/opengl/mesa/src/mesa/main/format_unpack.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/formats.c b/dll/opengl/mesa/src/mesa/main/formats.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/formats.c rename to dll/opengl/mesa/src/mesa/main/formats.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/formats.h b/dll/opengl/mesa/src/mesa/main/formats.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/formats.h rename to dll/opengl/mesa/src/mesa/main/formats.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/framebuffer.c b/dll/opengl/mesa/src/mesa/main/framebuffer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/framebuffer.c rename to dll/opengl/mesa/src/mesa/main/framebuffer.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/framebuffer.h b/dll/opengl/mesa/src/mesa/main/framebuffer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/framebuffer.h rename to dll/opengl/mesa/src/mesa/main/framebuffer.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/get.c b/dll/opengl/mesa/src/mesa/main/get.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/get.c rename to dll/opengl/mesa/src/mesa/main/get.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/get.h b/dll/opengl/mesa/src/mesa/main/get.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/get.h rename to dll/opengl/mesa/src/mesa/main/get.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/getstring.c b/dll/opengl/mesa/src/mesa/main/getstring.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/getstring.c rename to dll/opengl/mesa/src/mesa/main/getstring.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/git_sha1.h b/dll/opengl/mesa/src/mesa/main/git_sha1.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/git_sha1.h rename to dll/opengl/mesa/src/mesa/main/git_sha1.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/glheader.h b/dll/opengl/mesa/src/mesa/main/glheader.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/glheader.h rename to dll/opengl/mesa/src/mesa/main/glheader.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/hash.c b/dll/opengl/mesa/src/mesa/main/hash.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/hash.c rename to dll/opengl/mesa/src/mesa/main/hash.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/hash.h b/dll/opengl/mesa/src/mesa/main/hash.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/hash.h rename to dll/opengl/mesa/src/mesa/main/hash.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/hint.c b/dll/opengl/mesa/src/mesa/main/hint.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/hint.c rename to dll/opengl/mesa/src/mesa/main/hint.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/hint.h b/dll/opengl/mesa/src/mesa/main/hint.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/hint.h rename to dll/opengl/mesa/src/mesa/main/hint.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/histogram.c b/dll/opengl/mesa/src/mesa/main/histogram.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/histogram.c rename to dll/opengl/mesa/src/mesa/main/histogram.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/histogram.h b/dll/opengl/mesa/src/mesa/main/histogram.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/histogram.h rename to dll/opengl/mesa/src/mesa/main/histogram.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/image.c b/dll/opengl/mesa/src/mesa/main/image.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/image.c rename to dll/opengl/mesa/src/mesa/main/image.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/image.h b/dll/opengl/mesa/src/mesa/main/image.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/image.h rename to dll/opengl/mesa/src/mesa/main/image.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/imports.c b/dll/opengl/mesa/src/mesa/main/imports.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/imports.c rename to dll/opengl/mesa/src/mesa/main/imports.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/imports.h b/dll/opengl/mesa/src/mesa/main/imports.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/imports.h rename to dll/opengl/mesa/src/mesa/main/imports.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/light.c b/dll/opengl/mesa/src/mesa/main/light.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/light.c rename to dll/opengl/mesa/src/mesa/main/light.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/light.h b/dll/opengl/mesa/src/mesa/main/light.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/light.h rename to dll/opengl/mesa/src/mesa/main/light.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/lines.c b/dll/opengl/mesa/src/mesa/main/lines.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/lines.c rename to dll/opengl/mesa/src/mesa/main/lines.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/lines.h b/dll/opengl/mesa/src/mesa/main/lines.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/lines.h rename to dll/opengl/mesa/src/mesa/main/lines.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/macros.h b/dll/opengl/mesa/src/mesa/main/macros.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/macros.h rename to dll/opengl/mesa/src/mesa/main/macros.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/matrix.c b/dll/opengl/mesa/src/mesa/main/matrix.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/matrix.c rename to dll/opengl/mesa/src/mesa/main/matrix.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/matrix.h b/dll/opengl/mesa/src/mesa/main/matrix.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/matrix.h rename to dll/opengl/mesa/src/mesa/main/matrix.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/mfeatures.h b/dll/opengl/mesa/src/mesa/main/mfeatures.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/mfeatures.h rename to dll/opengl/mesa/src/mesa/main/mfeatures.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/mipmap.c b/dll/opengl/mesa/src/mesa/main/mipmap.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/mipmap.c rename to dll/opengl/mesa/src/mesa/main/mipmap.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/mipmap.h b/dll/opengl/mesa/src/mesa/main/mipmap.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/mipmap.h rename to dll/opengl/mesa/src/mesa/main/mipmap.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/mm.c b/dll/opengl/mesa/src/mesa/main/mm.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/mm.c rename to dll/opengl/mesa/src/mesa/main/mm.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/mm.h b/dll/opengl/mesa/src/mesa/main/mm.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/mm.h rename to dll/opengl/mesa/src/mesa/main/mm.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/mtypes.h b/dll/opengl/mesa/src/mesa/main/mtypes.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/mtypes.h rename to dll/opengl/mesa/src/mesa/main/mtypes.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/multisample.c b/dll/opengl/mesa/src/mesa/main/multisample.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/multisample.c rename to dll/opengl/mesa/src/mesa/main/multisample.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/multisample.h b/dll/opengl/mesa/src/mesa/main/multisample.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/multisample.h rename to dll/opengl/mesa/src/mesa/main/multisample.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/nvprogram.c b/dll/opengl/mesa/src/mesa/main/nvprogram.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/nvprogram.c rename to dll/opengl/mesa/src/mesa/main/nvprogram.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/nvprogram.h b/dll/opengl/mesa/src/mesa/main/nvprogram.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/nvprogram.h rename to dll/opengl/mesa/src/mesa/main/nvprogram.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/pack.c b/dll/opengl/mesa/src/mesa/main/pack.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/pack.c rename to dll/opengl/mesa/src/mesa/main/pack.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/pack.h b/dll/opengl/mesa/src/mesa/main/pack.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/pack.h rename to dll/opengl/mesa/src/mesa/main/pack.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/pack_tmp.h b/dll/opengl/mesa/src/mesa/main/pack_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/pack_tmp.h rename to dll/opengl/mesa/src/mesa/main/pack_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/pbo.c b/dll/opengl/mesa/src/mesa/main/pbo.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/pbo.c rename to dll/opengl/mesa/src/mesa/main/pbo.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/pbo.h b/dll/opengl/mesa/src/mesa/main/pbo.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/pbo.h rename to dll/opengl/mesa/src/mesa/main/pbo.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/pixel.c b/dll/opengl/mesa/src/mesa/main/pixel.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/pixel.c rename to dll/opengl/mesa/src/mesa/main/pixel.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/pixel.h b/dll/opengl/mesa/src/mesa/main/pixel.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/pixel.h rename to dll/opengl/mesa/src/mesa/main/pixel.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/pixelstore.c b/dll/opengl/mesa/src/mesa/main/pixelstore.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/pixelstore.c rename to dll/opengl/mesa/src/mesa/main/pixelstore.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/pixelstore.h b/dll/opengl/mesa/src/mesa/main/pixelstore.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/pixelstore.h rename to dll/opengl/mesa/src/mesa/main/pixelstore.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/pixeltransfer.c b/dll/opengl/mesa/src/mesa/main/pixeltransfer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/pixeltransfer.c rename to dll/opengl/mesa/src/mesa/main/pixeltransfer.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/pixeltransfer.h b/dll/opengl/mesa/src/mesa/main/pixeltransfer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/pixeltransfer.h rename to dll/opengl/mesa/src/mesa/main/pixeltransfer.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/points.c b/dll/opengl/mesa/src/mesa/main/points.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/points.c rename to dll/opengl/mesa/src/mesa/main/points.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/points.h b/dll/opengl/mesa/src/mesa/main/points.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/points.h rename to dll/opengl/mesa/src/mesa/main/points.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/polygon.c b/dll/opengl/mesa/src/mesa/main/polygon.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/polygon.c rename to dll/opengl/mesa/src/mesa/main/polygon.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/polygon.h b/dll/opengl/mesa/src/mesa/main/polygon.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/polygon.h rename to dll/opengl/mesa/src/mesa/main/polygon.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/querymatrix.c b/dll/opengl/mesa/src/mesa/main/querymatrix.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/querymatrix.c rename to dll/opengl/mesa/src/mesa/main/querymatrix.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/queryobj.c b/dll/opengl/mesa/src/mesa/main/queryobj.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/queryobj.c rename to dll/opengl/mesa/src/mesa/main/queryobj.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/queryobj.h b/dll/opengl/mesa/src/mesa/main/queryobj.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/queryobj.h rename to dll/opengl/mesa/src/mesa/main/queryobj.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/rastpos.c b/dll/opengl/mesa/src/mesa/main/rastpos.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/rastpos.c rename to dll/opengl/mesa/src/mesa/main/rastpos.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/rastpos.h b/dll/opengl/mesa/src/mesa/main/rastpos.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/rastpos.h rename to dll/opengl/mesa/src/mesa/main/rastpos.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/readpix.c b/dll/opengl/mesa/src/mesa/main/readpix.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/readpix.c rename to dll/opengl/mesa/src/mesa/main/readpix.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/readpix.h b/dll/opengl/mesa/src/mesa/main/readpix.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/readpix.h rename to dll/opengl/mesa/src/mesa/main/readpix.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/remap.c b/dll/opengl/mesa/src/mesa/main/remap.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/remap.c rename to dll/opengl/mesa/src/mesa/main/remap.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/remap.h b/dll/opengl/mesa/src/mesa/main/remap.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/remap.h rename to dll/opengl/mesa/src/mesa/main/remap.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/remap_helper.h b/dll/opengl/mesa/src/mesa/main/remap_helper.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/remap_helper.h rename to dll/opengl/mesa/src/mesa/main/remap_helper.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/renderbuffer.c b/dll/opengl/mesa/src/mesa/main/renderbuffer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/renderbuffer.c rename to dll/opengl/mesa/src/mesa/main/renderbuffer.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/renderbuffer.h b/dll/opengl/mesa/src/mesa/main/renderbuffer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/renderbuffer.h rename to dll/opengl/mesa/src/mesa/main/renderbuffer.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/samplerobj.c b/dll/opengl/mesa/src/mesa/main/samplerobj.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/samplerobj.c rename to dll/opengl/mesa/src/mesa/main/samplerobj.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/samplerobj.h b/dll/opengl/mesa/src/mesa/main/samplerobj.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/samplerobj.h rename to dll/opengl/mesa/src/mesa/main/samplerobj.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/scissor.c b/dll/opengl/mesa/src/mesa/main/scissor.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/scissor.c rename to dll/opengl/mesa/src/mesa/main/scissor.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/scissor.h b/dll/opengl/mesa/src/mesa/main/scissor.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/scissor.h rename to dll/opengl/mesa/src/mesa/main/scissor.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/shader_query.cpp b/dll/opengl/mesa/src/mesa/main/shader_query.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/shader_query.cpp rename to dll/opengl/mesa/src/mesa/main/shader_query.cpp diff --git a/reactos/dll/opengl/mesa/src/mesa/main/shaderapi.c b/dll/opengl/mesa/src/mesa/main/shaderapi.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/shaderapi.c rename to dll/opengl/mesa/src/mesa/main/shaderapi.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/shaderapi.h b/dll/opengl/mesa/src/mesa/main/shaderapi.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/shaderapi.h rename to dll/opengl/mesa/src/mesa/main/shaderapi.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/shaderobj.c b/dll/opengl/mesa/src/mesa/main/shaderobj.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/shaderobj.c rename to dll/opengl/mesa/src/mesa/main/shaderobj.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/shaderobj.h b/dll/opengl/mesa/src/mesa/main/shaderobj.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/shaderobj.h rename to dll/opengl/mesa/src/mesa/main/shaderobj.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/shared.c b/dll/opengl/mesa/src/mesa/main/shared.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/shared.c rename to dll/opengl/mesa/src/mesa/main/shared.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/shared.h b/dll/opengl/mesa/src/mesa/main/shared.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/shared.h rename to dll/opengl/mesa/src/mesa/main/shared.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/simple_list.h b/dll/opengl/mesa/src/mesa/main/simple_list.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/simple_list.h rename to dll/opengl/mesa/src/mesa/main/simple_list.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/state.c b/dll/opengl/mesa/src/mesa/main/state.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/state.c rename to dll/opengl/mesa/src/mesa/main/state.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/state.h b/dll/opengl/mesa/src/mesa/main/state.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/state.h rename to dll/opengl/mesa/src/mesa/main/state.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/stencil.c b/dll/opengl/mesa/src/mesa/main/stencil.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/stencil.c rename to dll/opengl/mesa/src/mesa/main/stencil.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/stencil.h b/dll/opengl/mesa/src/mesa/main/stencil.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/stencil.h rename to dll/opengl/mesa/src/mesa/main/stencil.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/syncobj.c b/dll/opengl/mesa/src/mesa/main/syncobj.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/syncobj.c rename to dll/opengl/mesa/src/mesa/main/syncobj.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/syncobj.h b/dll/opengl/mesa/src/mesa/main/syncobj.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/syncobj.h rename to dll/opengl/mesa/src/mesa/main/syncobj.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress.c b/dll/opengl/mesa/src/mesa/main/texcompress.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress.c rename to dll/opengl/mesa/src/mesa/main/texcompress.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress.h b/dll/opengl/mesa/src/mesa/main/texcompress.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress.h rename to dll/opengl/mesa/src/mesa/main/texcompress.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress_etc.c b/dll/opengl/mesa/src/mesa/main/texcompress_etc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress_etc.c rename to dll/opengl/mesa/src/mesa/main/texcompress_etc.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress_etc.h b/dll/opengl/mesa/src/mesa/main/texcompress_etc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress_etc.h rename to dll/opengl/mesa/src/mesa/main/texcompress_etc.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress_etc_tmp.h b/dll/opengl/mesa/src/mesa/main/texcompress_etc_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress_etc_tmp.h rename to dll/opengl/mesa/src/mesa/main/texcompress_etc_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress_fxt1.c b/dll/opengl/mesa/src/mesa/main/texcompress_fxt1.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress_fxt1.c rename to dll/opengl/mesa/src/mesa/main/texcompress_fxt1.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress_fxt1.h b/dll/opengl/mesa/src/mesa/main/texcompress_fxt1.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress_fxt1.h rename to dll/opengl/mesa/src/mesa/main/texcompress_fxt1.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress_rgtc.c b/dll/opengl/mesa/src/mesa/main/texcompress_rgtc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress_rgtc.c rename to dll/opengl/mesa/src/mesa/main/texcompress_rgtc.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress_rgtc.h b/dll/opengl/mesa/src/mesa/main/texcompress_rgtc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress_rgtc.h rename to dll/opengl/mesa/src/mesa/main/texcompress_rgtc.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress_rgtc_tmp.h b/dll/opengl/mesa/src/mesa/main/texcompress_rgtc_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress_rgtc_tmp.h rename to dll/opengl/mesa/src/mesa/main/texcompress_rgtc_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress_s3tc.c b/dll/opengl/mesa/src/mesa/main/texcompress_s3tc.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress_s3tc.c rename to dll/opengl/mesa/src/mesa/main/texcompress_s3tc.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texcompress_s3tc.h b/dll/opengl/mesa/src/mesa/main/texcompress_s3tc.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texcompress_s3tc.h rename to dll/opengl/mesa/src/mesa/main/texcompress_s3tc.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texenv.c b/dll/opengl/mesa/src/mesa/main/texenv.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texenv.c rename to dll/opengl/mesa/src/mesa/main/texenv.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texenv.h b/dll/opengl/mesa/src/mesa/main/texenv.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texenv.h rename to dll/opengl/mesa/src/mesa/main/texenv.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texenvprogram.h b/dll/opengl/mesa/src/mesa/main/texenvprogram.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texenvprogram.h rename to dll/opengl/mesa/src/mesa/main/texenvprogram.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texformat.c b/dll/opengl/mesa/src/mesa/main/texformat.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texformat.c rename to dll/opengl/mesa/src/mesa/main/texformat.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texformat.h b/dll/opengl/mesa/src/mesa/main/texformat.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texformat.h rename to dll/opengl/mesa/src/mesa/main/texformat.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texgen.c b/dll/opengl/mesa/src/mesa/main/texgen.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texgen.c rename to dll/opengl/mesa/src/mesa/main/texgen.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texgen.h b/dll/opengl/mesa/src/mesa/main/texgen.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texgen.h rename to dll/opengl/mesa/src/mesa/main/texgen.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texgetimage.c b/dll/opengl/mesa/src/mesa/main/texgetimage.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texgetimage.c rename to dll/opengl/mesa/src/mesa/main/texgetimage.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texgetimage.h b/dll/opengl/mesa/src/mesa/main/texgetimage.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texgetimage.h rename to dll/opengl/mesa/src/mesa/main/texgetimage.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/teximage.c b/dll/opengl/mesa/src/mesa/main/teximage.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/teximage.c rename to dll/opengl/mesa/src/mesa/main/teximage.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/teximage.h b/dll/opengl/mesa/src/mesa/main/teximage.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/teximage.h rename to dll/opengl/mesa/src/mesa/main/teximage.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texobj.c b/dll/opengl/mesa/src/mesa/main/texobj.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texobj.c rename to dll/opengl/mesa/src/mesa/main/texobj.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texobj.h b/dll/opengl/mesa/src/mesa/main/texobj.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texobj.h rename to dll/opengl/mesa/src/mesa/main/texobj.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texpal.c b/dll/opengl/mesa/src/mesa/main/texpal.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texpal.c rename to dll/opengl/mesa/src/mesa/main/texpal.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texpal.h b/dll/opengl/mesa/src/mesa/main/texpal.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texpal.h rename to dll/opengl/mesa/src/mesa/main/texpal.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texparam.c b/dll/opengl/mesa/src/mesa/main/texparam.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texparam.c rename to dll/opengl/mesa/src/mesa/main/texparam.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texparam.h b/dll/opengl/mesa/src/mesa/main/texparam.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texparam.h rename to dll/opengl/mesa/src/mesa/main/texparam.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texstate.c b/dll/opengl/mesa/src/mesa/main/texstate.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texstate.c rename to dll/opengl/mesa/src/mesa/main/texstate.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texstate.h b/dll/opengl/mesa/src/mesa/main/texstate.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texstate.h rename to dll/opengl/mesa/src/mesa/main/texstate.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texstorage.c b/dll/opengl/mesa/src/mesa/main/texstorage.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texstorage.c rename to dll/opengl/mesa/src/mesa/main/texstorage.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texstorage.h b/dll/opengl/mesa/src/mesa/main/texstorage.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texstorage.h rename to dll/opengl/mesa/src/mesa/main/texstorage.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texstore.c b/dll/opengl/mesa/src/mesa/main/texstore.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texstore.c rename to dll/opengl/mesa/src/mesa/main/texstore.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texstore.h b/dll/opengl/mesa/src/mesa/main/texstore.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texstore.h rename to dll/opengl/mesa/src/mesa/main/texstore.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texturebarrier.c b/dll/opengl/mesa/src/mesa/main/texturebarrier.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texturebarrier.c rename to dll/opengl/mesa/src/mesa/main/texturebarrier.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/texturebarrier.h b/dll/opengl/mesa/src/mesa/main/texturebarrier.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/texturebarrier.h rename to dll/opengl/mesa/src/mesa/main/texturebarrier.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/transformfeedback.c b/dll/opengl/mesa/src/mesa/main/transformfeedback.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/transformfeedback.c rename to dll/opengl/mesa/src/mesa/main/transformfeedback.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/transformfeedback.h b/dll/opengl/mesa/src/mesa/main/transformfeedback.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/transformfeedback.h rename to dll/opengl/mesa/src/mesa/main/transformfeedback.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/uniform_query.cpp b/dll/opengl/mesa/src/mesa/main/uniform_query.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/uniform_query.cpp rename to dll/opengl/mesa/src/mesa/main/uniform_query.cpp diff --git a/reactos/dll/opengl/mesa/src/mesa/main/uniforms.c b/dll/opengl/mesa/src/mesa/main/uniforms.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/uniforms.c rename to dll/opengl/mesa/src/mesa/main/uniforms.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/uniforms.h b/dll/opengl/mesa/src/mesa/main/uniforms.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/uniforms.h rename to dll/opengl/mesa/src/mesa/main/uniforms.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/varray.c b/dll/opengl/mesa/src/mesa/main/varray.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/varray.c rename to dll/opengl/mesa/src/mesa/main/varray.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/varray.h b/dll/opengl/mesa/src/mesa/main/varray.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/varray.h rename to dll/opengl/mesa/src/mesa/main/varray.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/version.c b/dll/opengl/mesa/src/mesa/main/version.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/version.c rename to dll/opengl/mesa/src/mesa/main/version.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/version.h b/dll/opengl/mesa/src/mesa/main/version.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/version.h rename to dll/opengl/mesa/src/mesa/main/version.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/viewport.c b/dll/opengl/mesa/src/mesa/main/viewport.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/viewport.c rename to dll/opengl/mesa/src/mesa/main/viewport.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/viewport.h b/dll/opengl/mesa/src/mesa/main/viewport.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/viewport.h rename to dll/opengl/mesa/src/mesa/main/viewport.h diff --git a/reactos/dll/opengl/mesa/src/mesa/main/vsnprintf.c b/dll/opengl/mesa/src/mesa/main/vsnprintf.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/vsnprintf.c rename to dll/opengl/mesa/src/mesa/main/vsnprintf.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/vtxfmt.c b/dll/opengl/mesa/src/mesa/main/vtxfmt.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/vtxfmt.c rename to dll/opengl/mesa/src/mesa/main/vtxfmt.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/vtxfmt.h b/dll/opengl/mesa/src/mesa/main/vtxfmt.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/main/vtxfmt.h rename to dll/opengl/mesa/src/mesa/main/vtxfmt.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/descrip.mms b/dll/opengl/mesa/src/mesa/math/descrip.mms similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/descrip.mms rename to dll/opengl/mesa/src/mesa/math/descrip.mms diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_clip_tmp.h b/dll/opengl/mesa/src/mesa/math/m_clip_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_clip_tmp.h rename to dll/opengl/mesa/src/mesa/math/m_clip_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_copy_tmp.h b/dll/opengl/mesa/src/mesa/math/m_copy_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_copy_tmp.h rename to dll/opengl/mesa/src/mesa/math/m_copy_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_debug.h b/dll/opengl/mesa/src/mesa/math/m_debug.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_debug.h rename to dll/opengl/mesa/src/mesa/math/m_debug.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_debug_clip.c b/dll/opengl/mesa/src/mesa/math/m_debug_clip.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_debug_clip.c rename to dll/opengl/mesa/src/mesa/math/m_debug_clip.c diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_debug_norm.c b/dll/opengl/mesa/src/mesa/math/m_debug_norm.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_debug_norm.c rename to dll/opengl/mesa/src/mesa/math/m_debug_norm.c diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_debug_util.h b/dll/opengl/mesa/src/mesa/math/m_debug_util.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_debug_util.h rename to dll/opengl/mesa/src/mesa/math/m_debug_util.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_debug_xform.c b/dll/opengl/mesa/src/mesa/math/m_debug_xform.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_debug_xform.c rename to dll/opengl/mesa/src/mesa/math/m_debug_xform.c diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_dotprod_tmp.h b/dll/opengl/mesa/src/mesa/math/m_dotprod_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_dotprod_tmp.h rename to dll/opengl/mesa/src/mesa/math/m_dotprod_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_eval.c b/dll/opengl/mesa/src/mesa/math/m_eval.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_eval.c rename to dll/opengl/mesa/src/mesa/math/m_eval.c diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_eval.h b/dll/opengl/mesa/src/mesa/math/m_eval.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_eval.h rename to dll/opengl/mesa/src/mesa/math/m_eval.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_matrix.c b/dll/opengl/mesa/src/mesa/math/m_matrix.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_matrix.c rename to dll/opengl/mesa/src/mesa/math/m_matrix.c diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_matrix.h b/dll/opengl/mesa/src/mesa/math/m_matrix.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_matrix.h rename to dll/opengl/mesa/src/mesa/math/m_matrix.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_norm_tmp.h b/dll/opengl/mesa/src/mesa/math/m_norm_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_norm_tmp.h rename to dll/opengl/mesa/src/mesa/math/m_norm_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_trans_tmp.h b/dll/opengl/mesa/src/mesa/math/m_trans_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_trans_tmp.h rename to dll/opengl/mesa/src/mesa/math/m_trans_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_translate.c b/dll/opengl/mesa/src/mesa/math/m_translate.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_translate.c rename to dll/opengl/mesa/src/mesa/math/m_translate.c diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_translate.h b/dll/opengl/mesa/src/mesa/math/m_translate.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_translate.h rename to dll/opengl/mesa/src/mesa/math/m_translate.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_vector.c b/dll/opengl/mesa/src/mesa/math/m_vector.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_vector.c rename to dll/opengl/mesa/src/mesa/math/m_vector.c diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_vector.h b/dll/opengl/mesa/src/mesa/math/m_vector.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_vector.h rename to dll/opengl/mesa/src/mesa/math/m_vector.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_xform.c b/dll/opengl/mesa/src/mesa/math/m_xform.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_xform.c rename to dll/opengl/mesa/src/mesa/math/m_xform.c diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_xform.h b/dll/opengl/mesa/src/mesa/math/m_xform.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_xform.h rename to dll/opengl/mesa/src/mesa/math/m_xform.h diff --git a/reactos/dll/opengl/mesa/src/mesa/math/m_xform_tmp.h b/dll/opengl/mesa/src/mesa/math/m_xform_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/math/m_xform_tmp.h rename to dll/opengl/mesa/src/mesa/math/m_xform_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/arbprogparse.c b/dll/opengl/mesa/src/mesa/program/arbprogparse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/arbprogparse.c rename to dll/opengl/mesa/src/mesa/program/arbprogparse.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/arbprogparse.h b/dll/opengl/mesa/src/mesa/program/arbprogparse.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/arbprogparse.h rename to dll/opengl/mesa/src/mesa/program/arbprogparse.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/descrip.mms b/dll/opengl/mesa/src/mesa/program/descrip.mms similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/descrip.mms rename to dll/opengl/mesa/src/mesa/program/descrip.mms diff --git a/reactos/dll/opengl/mesa/src/mesa/program/hash_table.c b/dll/opengl/mesa/src/mesa/program/hash_table.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/hash_table.c rename to dll/opengl/mesa/src/mesa/program/hash_table.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/hash_table.h b/dll/opengl/mesa/src/mesa/program/hash_table.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/hash_table.h rename to dll/opengl/mesa/src/mesa/program/hash_table.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/ir_to_mesa.cpp b/dll/opengl/mesa/src/mesa/program/ir_to_mesa.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/ir_to_mesa.cpp rename to dll/opengl/mesa/src/mesa/program/ir_to_mesa.cpp diff --git a/reactos/dll/opengl/mesa/src/mesa/program/ir_to_mesa.h b/dll/opengl/mesa/src/mesa/program/ir_to_mesa.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/ir_to_mesa.h rename to dll/opengl/mesa/src/mesa/program/ir_to_mesa.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/lex.yy.c b/dll/opengl/mesa/src/mesa/program/lex.yy.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/lex.yy.c rename to dll/opengl/mesa/src/mesa/program/lex.yy.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/nvfragparse.c b/dll/opengl/mesa/src/mesa/program/nvfragparse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/nvfragparse.c rename to dll/opengl/mesa/src/mesa/program/nvfragparse.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/nvfragparse.h b/dll/opengl/mesa/src/mesa/program/nvfragparse.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/nvfragparse.h rename to dll/opengl/mesa/src/mesa/program/nvfragparse.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/nvvertparse.c b/dll/opengl/mesa/src/mesa/program/nvvertparse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/nvvertparse.c rename to dll/opengl/mesa/src/mesa/program/nvvertparse.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/nvvertparse.h b/dll/opengl/mesa/src/mesa/program/nvvertparse.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/nvvertparse.h rename to dll/opengl/mesa/src/mesa/program/nvvertparse.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_cache.c b/dll/opengl/mesa/src/mesa/program/prog_cache.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_cache.c rename to dll/opengl/mesa/src/mesa/program/prog_cache.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_cache.h b/dll/opengl/mesa/src/mesa/program/prog_cache.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_cache.h rename to dll/opengl/mesa/src/mesa/program/prog_cache.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_execute.c b/dll/opengl/mesa/src/mesa/program/prog_execute.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_execute.c rename to dll/opengl/mesa/src/mesa/program/prog_execute.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_execute.h b/dll/opengl/mesa/src/mesa/program/prog_execute.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_execute.h rename to dll/opengl/mesa/src/mesa/program/prog_execute.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_instruction.c b/dll/opengl/mesa/src/mesa/program/prog_instruction.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_instruction.c rename to dll/opengl/mesa/src/mesa/program/prog_instruction.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_instruction.h b/dll/opengl/mesa/src/mesa/program/prog_instruction.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_instruction.h rename to dll/opengl/mesa/src/mesa/program/prog_instruction.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_noise.c b/dll/opengl/mesa/src/mesa/program/prog_noise.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_noise.c rename to dll/opengl/mesa/src/mesa/program/prog_noise.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_noise.h b/dll/opengl/mesa/src/mesa/program/prog_noise.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_noise.h rename to dll/opengl/mesa/src/mesa/program/prog_noise.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_opt_constant_fold.c b/dll/opengl/mesa/src/mesa/program/prog_opt_constant_fold.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_opt_constant_fold.c rename to dll/opengl/mesa/src/mesa/program/prog_opt_constant_fold.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_optimize.c b/dll/opengl/mesa/src/mesa/program/prog_optimize.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_optimize.c rename to dll/opengl/mesa/src/mesa/program/prog_optimize.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_optimize.h b/dll/opengl/mesa/src/mesa/program/prog_optimize.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_optimize.h rename to dll/opengl/mesa/src/mesa/program/prog_optimize.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_parameter.c b/dll/opengl/mesa/src/mesa/program/prog_parameter.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_parameter.c rename to dll/opengl/mesa/src/mesa/program/prog_parameter.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_parameter.h b/dll/opengl/mesa/src/mesa/program/prog_parameter.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_parameter.h rename to dll/opengl/mesa/src/mesa/program/prog_parameter.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_parameter_layout.c b/dll/opengl/mesa/src/mesa/program/prog_parameter_layout.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_parameter_layout.c rename to dll/opengl/mesa/src/mesa/program/prog_parameter_layout.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_parameter_layout.h b/dll/opengl/mesa/src/mesa/program/prog_parameter_layout.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_parameter_layout.h rename to dll/opengl/mesa/src/mesa/program/prog_parameter_layout.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_print.c b/dll/opengl/mesa/src/mesa/program/prog_print.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_print.c rename to dll/opengl/mesa/src/mesa/program/prog_print.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_print.h b/dll/opengl/mesa/src/mesa/program/prog_print.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_print.h rename to dll/opengl/mesa/src/mesa/program/prog_print.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_statevars.c b/dll/opengl/mesa/src/mesa/program/prog_statevars.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_statevars.c rename to dll/opengl/mesa/src/mesa/program/prog_statevars.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/prog_statevars.h b/dll/opengl/mesa/src/mesa/program/prog_statevars.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/prog_statevars.h rename to dll/opengl/mesa/src/mesa/program/prog_statevars.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/program.c b/dll/opengl/mesa/src/mesa/program/program.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/program.c rename to dll/opengl/mesa/src/mesa/program/program.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/program.h b/dll/opengl/mesa/src/mesa/program/program.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/program.h rename to dll/opengl/mesa/src/mesa/program/program.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/program_lexer.l b/dll/opengl/mesa/src/mesa/program/program_lexer.l similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/program_lexer.l rename to dll/opengl/mesa/src/mesa/program/program_lexer.l diff --git a/reactos/dll/opengl/mesa/src/mesa/program/program_parse.tab.c b/dll/opengl/mesa/src/mesa/program/program_parse.tab.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/program_parse.tab.c rename to dll/opengl/mesa/src/mesa/program/program_parse.tab.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/program_parse.tab.h b/dll/opengl/mesa/src/mesa/program/program_parse.tab.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/program_parse.tab.h rename to dll/opengl/mesa/src/mesa/program/program_parse.tab.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/program_parse.y b/dll/opengl/mesa/src/mesa/program/program_parse.y similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/program_parse.y rename to dll/opengl/mesa/src/mesa/program/program_parse.y diff --git a/reactos/dll/opengl/mesa/src/mesa/program/program_parse_extra.c b/dll/opengl/mesa/src/mesa/program/program_parse_extra.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/program_parse_extra.c rename to dll/opengl/mesa/src/mesa/program/program_parse_extra.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/program_parser.h b/dll/opengl/mesa/src/mesa/program/program_parser.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/program_parser.h rename to dll/opengl/mesa/src/mesa/program/program_parser.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/programopt.c b/dll/opengl/mesa/src/mesa/program/programopt.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/programopt.c rename to dll/opengl/mesa/src/mesa/program/programopt.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/programopt.h b/dll/opengl/mesa/src/mesa/program/programopt.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/programopt.h rename to dll/opengl/mesa/src/mesa/program/programopt.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/register_allocate.c b/dll/opengl/mesa/src/mesa/program/register_allocate.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/register_allocate.c rename to dll/opengl/mesa/src/mesa/program/register_allocate.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/register_allocate.h b/dll/opengl/mesa/src/mesa/program/register_allocate.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/register_allocate.h rename to dll/opengl/mesa/src/mesa/program/register_allocate.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/sampler.cpp b/dll/opengl/mesa/src/mesa/program/sampler.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/sampler.cpp rename to dll/opengl/mesa/src/mesa/program/sampler.cpp diff --git a/reactos/dll/opengl/mesa/src/mesa/program/sampler.h b/dll/opengl/mesa/src/mesa/program/sampler.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/sampler.h rename to dll/opengl/mesa/src/mesa/program/sampler.h diff --git a/reactos/dll/opengl/mesa/src/mesa/program/string_to_uint_map.cpp b/dll/opengl/mesa/src/mesa/program/string_to_uint_map.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/string_to_uint_map.cpp rename to dll/opengl/mesa/src/mesa/program/string_to_uint_map.cpp diff --git a/reactos/dll/opengl/mesa/src/mesa/program/symbol_table.c b/dll/opengl/mesa/src/mesa/program/symbol_table.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/symbol_table.c rename to dll/opengl/mesa/src/mesa/program/symbol_table.c diff --git a/reactos/dll/opengl/mesa/src/mesa/program/symbol_table.h b/dll/opengl/mesa/src/mesa/program/symbol_table.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/program/symbol_table.h rename to dll/opengl/mesa/src/mesa/program/symbol_table.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/Makefile b/dll/opengl/mesa/src/mesa/state_tracker/Makefile similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/Makefile rename to dll/opengl/mesa/src/mesa/state_tracker/Makefile diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom.h b/dll/opengl/mesa/src/mesa/state_tracker/st_atom.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_blend.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_blend.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_blend.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_blend.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_clip.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_clip.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_clip.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_clip.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_constbuf.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_constbuf.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_constbuf.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_constbuf.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_constbuf.h b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_constbuf.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_constbuf.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_constbuf.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_depth.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_depth.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_depth.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_depth.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_framebuffer.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_framebuffer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_framebuffer.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_framebuffer.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_msaa.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_msaa.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_msaa.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_msaa.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_pixeltransfer.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_pixeltransfer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_pixeltransfer.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_pixeltransfer.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_rasterizer.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_rasterizer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_rasterizer.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_rasterizer.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_sampler.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_sampler.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_sampler.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_sampler.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_scissor.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_scissor.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_scissor.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_scissor.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_shader.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_shader.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_shader.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_shader.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_shader.h b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_shader.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_shader.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_shader.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_stipple.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_stipple.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_stipple.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_stipple.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_texture.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_texture.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_texture.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_texture.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_viewport.c b/dll/opengl/mesa/src/mesa/state_tracker/st_atom_viewport.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_atom_viewport.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_atom_viewport.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cache.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cache.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cache.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cache.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bitmap.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bitmap.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bitmap.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_bitmap.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bitmap.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bitmap.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bitmap.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_bitmap.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_blit.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_blit.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_blit.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_blit.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_blit.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_blit.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_blit.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_blit.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bufferobjects.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bufferobjects.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bufferobjects.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_bufferobjects.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bufferobjects.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bufferobjects.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_bufferobjects.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_bufferobjects.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_clear.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_clear.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_clear.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_clear.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_clear.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_clear.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_clear.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_clear.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_condrender.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_condrender.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_condrender.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_condrender.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_condrender.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_condrender.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_condrender.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_condrender.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawpixels.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawpixels.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawpixels.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawpixels.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawpixels.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawpixels.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawpixels.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawpixels.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawtex.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawtex.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawtex.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawtex.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawtex.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawtex.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawtex.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_drawtex.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_eglimage.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_eglimage.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_eglimage.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_eglimage.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_eglimage.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_eglimage.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_eglimage.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_eglimage.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_fbo.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_fbo.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_fbo.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_fbo.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_fbo.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_fbo.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_fbo.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_fbo.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_feedback.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_feedback.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_feedback.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_feedback.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_feedback.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_feedback.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_feedback.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_feedback.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_flush.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_flush.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_flush.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_flush.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_flush.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_flush.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_flush.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_flush.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_program.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_program.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_program.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_program.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_program.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_program.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_program.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_program.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_queryobj.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_queryobj.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_queryobj.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_queryobj.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_queryobj.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_queryobj.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_queryobj.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_queryobj.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_rasterpos.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_rasterpos.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_rasterpos.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_rasterpos.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_rasterpos.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_rasterpos.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_rasterpos.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_rasterpos.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_readpixels.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_readpixels.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_readpixels.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_readpixels.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_readpixels.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_readpixels.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_readpixels.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_readpixels.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_strings.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_strings.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_strings.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_strings.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_strings.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_strings.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_strings.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_strings.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_syncobj.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_syncobj.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_syncobj.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_syncobj.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_syncobj.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_syncobj.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_syncobj.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_syncobj.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texture.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texture.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texture.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_texture.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texture.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texture.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texture.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_texture.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texturebarrier.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texturebarrier.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texturebarrier.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_texturebarrier.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texturebarrier.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texturebarrier.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_texturebarrier.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_texturebarrier.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_viewport.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_viewport.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_viewport.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_viewport.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_viewport.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_viewport.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_viewport.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_viewport.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_xformfb.c b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_xformfb.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_xformfb.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_xformfb.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_xformfb.h b/dll/opengl/mesa/src/mesa/state_tracker/st_cb_xformfb.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_cb_xformfb.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_cb_xformfb.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_context.c b/dll/opengl/mesa/src/mesa/state_tracker/st_context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_context.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_context.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_context.h b/dll/opengl/mesa/src/mesa/state_tracker/st_context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_context.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_context.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_debug.c b/dll/opengl/mesa/src/mesa/state_tracker/st_debug.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_debug.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_debug.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_debug.h b/dll/opengl/mesa/src/mesa/state_tracker/st_debug.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_debug.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_debug.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_draw.c b/dll/opengl/mesa/src/mesa/state_tracker/st_draw.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_draw.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_draw.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_draw.h b/dll/opengl/mesa/src/mesa/state_tracker/st_draw.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_draw.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_draw.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_draw_feedback.c b/dll/opengl/mesa/src/mesa/state_tracker/st_draw_feedback.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_draw_feedback.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_draw_feedback.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_extensions.c b/dll/opengl/mesa/src/mesa/state_tracker/st_extensions.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_extensions.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_extensions.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_extensions.h b/dll/opengl/mesa/src/mesa/state_tracker/st_extensions.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_extensions.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_extensions.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_format.c b/dll/opengl/mesa/src/mesa/state_tracker/st_format.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_format.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_format.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_format.h b/dll/opengl/mesa/src/mesa/state_tracker/st_format.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_format.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_format.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_gen_mipmap.c b/dll/opengl/mesa/src/mesa/state_tracker/st_gen_mipmap.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_gen_mipmap.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_gen_mipmap.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_gen_mipmap.h b/dll/opengl/mesa/src/mesa/state_tracker/st_gen_mipmap.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_gen_mipmap.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_gen_mipmap.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_gl_api.h b/dll/opengl/mesa/src/mesa/state_tracker/st_gl_api.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_gl_api.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_gl_api.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/dll/opengl/mesa/src/mesa/state_tracker/st_glsl_to_tgsi.cpp similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_glsl_to_tgsi.cpp rename to dll/opengl/mesa/src/mesa/state_tracker/st_glsl_to_tgsi.cpp diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_glsl_to_tgsi.h b/dll/opengl/mesa/src/mesa/state_tracker/st_glsl_to_tgsi.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_glsl_to_tgsi.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_glsl_to_tgsi.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_manager.c b/dll/opengl/mesa/src/mesa/state_tracker/st_manager.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_manager.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_manager.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_manager.h b/dll/opengl/mesa/src/mesa/state_tracker/st_manager.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_manager.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_manager.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_mesa_to_tgsi.c b/dll/opengl/mesa/src/mesa/state_tracker/st_mesa_to_tgsi.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_mesa_to_tgsi.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_mesa_to_tgsi.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_mesa_to_tgsi.h b/dll/opengl/mesa/src/mesa/state_tracker/st_mesa_to_tgsi.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_mesa_to_tgsi.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_mesa_to_tgsi.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_program.c b/dll/opengl/mesa/src/mesa/state_tracker/st_program.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_program.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_program.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_program.h b/dll/opengl/mesa/src/mesa/state_tracker/st_program.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_program.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_program.h diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_texture.c b/dll/opengl/mesa/src/mesa/state_tracker/st_texture.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_texture.c rename to dll/opengl/mesa/src/mesa/state_tracker/st_texture.c diff --git a/reactos/dll/opengl/mesa/src/mesa/state_tracker/st_texture.h b/dll/opengl/mesa/src/mesa/state_tracker/st_texture.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/state_tracker/st_texture.h rename to dll/opengl/mesa/src/mesa/state_tracker/st_texture.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/NOTES b/dll/opengl/mesa/src/mesa/swrast/NOTES similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/NOTES rename to dll/opengl/mesa/src/mesa/swrast/NOTES diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/descrip.mms b/dll/opengl/mesa/src/mesa/swrast/descrip.mms similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/descrip.mms rename to dll/opengl/mesa/src/mesa/swrast/descrip.mms diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_aaline.c b/dll/opengl/mesa/src/mesa/swrast/s_aaline.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_aaline.c rename to dll/opengl/mesa/src/mesa/swrast/s_aaline.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_aaline.h b/dll/opengl/mesa/src/mesa/swrast/s_aaline.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_aaline.h rename to dll/opengl/mesa/src/mesa/swrast/s_aaline.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_aalinetemp.h b/dll/opengl/mesa/src/mesa/swrast/s_aalinetemp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_aalinetemp.h rename to dll/opengl/mesa/src/mesa/swrast/s_aalinetemp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_aatriangle.c b/dll/opengl/mesa/src/mesa/swrast/s_aatriangle.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_aatriangle.c rename to dll/opengl/mesa/src/mesa/swrast/s_aatriangle.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_aatriangle.h b/dll/opengl/mesa/src/mesa/swrast/s_aatriangle.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_aatriangle.h rename to dll/opengl/mesa/src/mesa/swrast/s_aatriangle.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_aatritemp.h b/dll/opengl/mesa/src/mesa/swrast/s_aatritemp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_aatritemp.h rename to dll/opengl/mesa/src/mesa/swrast/s_aatritemp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_alpha.c b/dll/opengl/mesa/src/mesa/swrast/s_alpha.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_alpha.c rename to dll/opengl/mesa/src/mesa/swrast/s_alpha.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_alpha.h b/dll/opengl/mesa/src/mesa/swrast/s_alpha.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_alpha.h rename to dll/opengl/mesa/src/mesa/swrast/s_alpha.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_atifragshader.c b/dll/opengl/mesa/src/mesa/swrast/s_atifragshader.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_atifragshader.c rename to dll/opengl/mesa/src/mesa/swrast/s_atifragshader.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_atifragshader.h b/dll/opengl/mesa/src/mesa/swrast/s_atifragshader.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_atifragshader.h rename to dll/opengl/mesa/src/mesa/swrast/s_atifragshader.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_bitmap.c b/dll/opengl/mesa/src/mesa/swrast/s_bitmap.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_bitmap.c rename to dll/opengl/mesa/src/mesa/swrast/s_bitmap.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_blend.c b/dll/opengl/mesa/src/mesa/swrast/s_blend.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_blend.c rename to dll/opengl/mesa/src/mesa/swrast/s_blend.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_blend.h b/dll/opengl/mesa/src/mesa/swrast/s_blend.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_blend.h rename to dll/opengl/mesa/src/mesa/swrast/s_blend.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_blit.c b/dll/opengl/mesa/src/mesa/swrast/s_blit.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_blit.c rename to dll/opengl/mesa/src/mesa/swrast/s_blit.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_chan.h b/dll/opengl/mesa/src/mesa/swrast/s_chan.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_chan.h rename to dll/opengl/mesa/src/mesa/swrast/s_chan.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_clear.c b/dll/opengl/mesa/src/mesa/swrast/s_clear.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_clear.c rename to dll/opengl/mesa/src/mesa/swrast/s_clear.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_context.c b/dll/opengl/mesa/src/mesa/swrast/s_context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_context.c rename to dll/opengl/mesa/src/mesa/swrast/s_context.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_context.h b/dll/opengl/mesa/src/mesa/swrast/s_context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_context.h rename to dll/opengl/mesa/src/mesa/swrast/s_context.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_copypix.c b/dll/opengl/mesa/src/mesa/swrast/s_copypix.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_copypix.c rename to dll/opengl/mesa/src/mesa/swrast/s_copypix.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_depth.c b/dll/opengl/mesa/src/mesa/swrast/s_depth.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_depth.c rename to dll/opengl/mesa/src/mesa/swrast/s_depth.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_depth.h b/dll/opengl/mesa/src/mesa/swrast/s_depth.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_depth.h rename to dll/opengl/mesa/src/mesa/swrast/s_depth.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_drawpix.c b/dll/opengl/mesa/src/mesa/swrast/s_drawpix.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_drawpix.c rename to dll/opengl/mesa/src/mesa/swrast/s_drawpix.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_feedback.c b/dll/opengl/mesa/src/mesa/swrast/s_feedback.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_feedback.c rename to dll/opengl/mesa/src/mesa/swrast/s_feedback.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_feedback.h b/dll/opengl/mesa/src/mesa/swrast/s_feedback.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_feedback.h rename to dll/opengl/mesa/src/mesa/swrast/s_feedback.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_fog.c b/dll/opengl/mesa/src/mesa/swrast/s_fog.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_fog.c rename to dll/opengl/mesa/src/mesa/swrast/s_fog.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_fog.h b/dll/opengl/mesa/src/mesa/swrast/s_fog.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_fog.h rename to dll/opengl/mesa/src/mesa/swrast/s_fog.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_fragprog.c b/dll/opengl/mesa/src/mesa/swrast/s_fragprog.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_fragprog.c rename to dll/opengl/mesa/src/mesa/swrast/s_fragprog.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_fragprog.h b/dll/opengl/mesa/src/mesa/swrast/s_fragprog.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_fragprog.h rename to dll/opengl/mesa/src/mesa/swrast/s_fragprog.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_lines.c b/dll/opengl/mesa/src/mesa/swrast/s_lines.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_lines.c rename to dll/opengl/mesa/src/mesa/swrast/s_lines.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_lines.h b/dll/opengl/mesa/src/mesa/swrast/s_lines.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_lines.h rename to dll/opengl/mesa/src/mesa/swrast/s_lines.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_linetemp.h b/dll/opengl/mesa/src/mesa/swrast/s_linetemp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_linetemp.h rename to dll/opengl/mesa/src/mesa/swrast/s_linetemp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_logic.c b/dll/opengl/mesa/src/mesa/swrast/s_logic.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_logic.c rename to dll/opengl/mesa/src/mesa/swrast/s_logic.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_logic.h b/dll/opengl/mesa/src/mesa/swrast/s_logic.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_logic.h rename to dll/opengl/mesa/src/mesa/swrast/s_logic.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_masking.c b/dll/opengl/mesa/src/mesa/swrast/s_masking.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_masking.c rename to dll/opengl/mesa/src/mesa/swrast/s_masking.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_masking.h b/dll/opengl/mesa/src/mesa/swrast/s_masking.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_masking.h rename to dll/opengl/mesa/src/mesa/swrast/s_masking.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_points.c b/dll/opengl/mesa/src/mesa/swrast/s_points.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_points.c rename to dll/opengl/mesa/src/mesa/swrast/s_points.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_points.h b/dll/opengl/mesa/src/mesa/swrast/s_points.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_points.h rename to dll/opengl/mesa/src/mesa/swrast/s_points.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_renderbuffer.c b/dll/opengl/mesa/src/mesa/swrast/s_renderbuffer.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_renderbuffer.c rename to dll/opengl/mesa/src/mesa/swrast/s_renderbuffer.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_renderbuffer.h b/dll/opengl/mesa/src/mesa/swrast/s_renderbuffer.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_renderbuffer.h rename to dll/opengl/mesa/src/mesa/swrast/s_renderbuffer.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_span.c b/dll/opengl/mesa/src/mesa/swrast/s_span.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_span.c rename to dll/opengl/mesa/src/mesa/swrast/s_span.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_span.h b/dll/opengl/mesa/src/mesa/swrast/s_span.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_span.h rename to dll/opengl/mesa/src/mesa/swrast/s_span.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_stencil.c b/dll/opengl/mesa/src/mesa/swrast/s_stencil.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_stencil.c rename to dll/opengl/mesa/src/mesa/swrast/s_stencil.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_stencil.h b/dll/opengl/mesa/src/mesa/swrast/s_stencil.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_stencil.h rename to dll/opengl/mesa/src/mesa/swrast/s_stencil.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_texcombine.c b/dll/opengl/mesa/src/mesa/swrast/s_texcombine.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_texcombine.c rename to dll/opengl/mesa/src/mesa/swrast/s_texcombine.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_texcombine.h b/dll/opengl/mesa/src/mesa/swrast/s_texcombine.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_texcombine.h rename to dll/opengl/mesa/src/mesa/swrast/s_texcombine.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_texfetch.c b/dll/opengl/mesa/src/mesa/swrast/s_texfetch.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_texfetch.c rename to dll/opengl/mesa/src/mesa/swrast/s_texfetch.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_texfetch.h b/dll/opengl/mesa/src/mesa/swrast/s_texfetch.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_texfetch.h rename to dll/opengl/mesa/src/mesa/swrast/s_texfetch.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_texfetch_tmp.h b/dll/opengl/mesa/src/mesa/swrast/s_texfetch_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_texfetch_tmp.h rename to dll/opengl/mesa/src/mesa/swrast/s_texfetch_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_texfilter.c b/dll/opengl/mesa/src/mesa/swrast/s_texfilter.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_texfilter.c rename to dll/opengl/mesa/src/mesa/swrast/s_texfilter.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_texfilter.h b/dll/opengl/mesa/src/mesa/swrast/s_texfilter.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_texfilter.h rename to dll/opengl/mesa/src/mesa/swrast/s_texfilter.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_texrender.c b/dll/opengl/mesa/src/mesa/swrast/s_texrender.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_texrender.c rename to dll/opengl/mesa/src/mesa/swrast/s_texrender.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_texture.c b/dll/opengl/mesa/src/mesa/swrast/s_texture.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_texture.c rename to dll/opengl/mesa/src/mesa/swrast/s_texture.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_triangle.c b/dll/opengl/mesa/src/mesa/swrast/s_triangle.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_triangle.c rename to dll/opengl/mesa/src/mesa/swrast/s_triangle.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_triangle.h b/dll/opengl/mesa/src/mesa/swrast/s_triangle.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_triangle.h rename to dll/opengl/mesa/src/mesa/swrast/s_triangle.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_tritemp.h b/dll/opengl/mesa/src/mesa/swrast/s_tritemp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_tritemp.h rename to dll/opengl/mesa/src/mesa/swrast/s_tritemp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_zoom.c b/dll/opengl/mesa/src/mesa/swrast/s_zoom.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_zoom.c rename to dll/opengl/mesa/src/mesa/swrast/s_zoom.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/s_zoom.h b/dll/opengl/mesa/src/mesa/swrast/s_zoom.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/s_zoom.h rename to dll/opengl/mesa/src/mesa/swrast/s_zoom.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast/swrast.h b/dll/opengl/mesa/src/mesa/swrast/swrast.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast/swrast.h rename to dll/opengl/mesa/src/mesa/swrast/swrast.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast_setup/NOTES b/dll/opengl/mesa/src/mesa/swrast_setup/NOTES similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast_setup/NOTES rename to dll/opengl/mesa/src/mesa/swrast_setup/NOTES diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast_setup/descrip.mms b/dll/opengl/mesa/src/mesa/swrast_setup/descrip.mms similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast_setup/descrip.mms rename to dll/opengl/mesa/src/mesa/swrast_setup/descrip.mms diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_context.c b/dll/opengl/mesa/src/mesa/swrast_setup/ss_context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_context.c rename to dll/opengl/mesa/src/mesa/swrast_setup/ss_context.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_context.h b/dll/opengl/mesa/src/mesa/swrast_setup/ss_context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_context.h rename to dll/opengl/mesa/src/mesa/swrast_setup/ss_context.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_triangle.c b/dll/opengl/mesa/src/mesa/swrast_setup/ss_triangle.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_triangle.c rename to dll/opengl/mesa/src/mesa/swrast_setup/ss_triangle.c diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_triangle.h b/dll/opengl/mesa/src/mesa/swrast_setup/ss_triangle.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_triangle.h rename to dll/opengl/mesa/src/mesa/swrast_setup/ss_triangle.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_tritmp.h b/dll/opengl/mesa/src/mesa/swrast_setup/ss_tritmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_tritmp.h rename to dll/opengl/mesa/src/mesa/swrast_setup/ss_tritmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_vb.h b/dll/opengl/mesa/src/mesa/swrast_setup/ss_vb.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_vb.h rename to dll/opengl/mesa/src/mesa/swrast_setup/ss_vb.h diff --git a/reactos/dll/opengl/mesa/src/mesa/swrast_setup/swrast_setup.h b/dll/opengl/mesa/src/mesa/swrast_setup/swrast_setup.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/swrast_setup/swrast_setup.h rename to dll/opengl/mesa/src/mesa/swrast_setup/swrast_setup.h diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/NOTES b/dll/opengl/mesa/src/mesa/tnl/NOTES similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/NOTES rename to dll/opengl/mesa/src/mesa/tnl/NOTES diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/descrip.mms b/dll/opengl/mesa/src/mesa/tnl/descrip.mms similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/descrip.mms rename to dll/opengl/mesa/src/mesa/tnl/descrip.mms diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_context.c b/dll/opengl/mesa/src/mesa/tnl/t_context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_context.c rename to dll/opengl/mesa/src/mesa/tnl/t_context.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_context.h b/dll/opengl/mesa/src/mesa/tnl/t_context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_context.h rename to dll/opengl/mesa/src/mesa/tnl/t_context.h diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_draw.c b/dll/opengl/mesa/src/mesa/tnl/t_draw.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_draw.c rename to dll/opengl/mesa/src/mesa/tnl/t_draw.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_pipeline.c b/dll/opengl/mesa/src/mesa/tnl/t_pipeline.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_pipeline.c rename to dll/opengl/mesa/src/mesa/tnl/t_pipeline.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_pipeline.h b/dll/opengl/mesa/src/mesa/tnl/t_pipeline.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_pipeline.h rename to dll/opengl/mesa/src/mesa/tnl/t_pipeline.h diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_rasterpos.c b/dll/opengl/mesa/src/mesa/tnl/t_rasterpos.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_rasterpos.c rename to dll/opengl/mesa/src/mesa/tnl/t_rasterpos.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_cliptmp.h b/dll/opengl/mesa/src/mesa/tnl/t_vb_cliptmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_cliptmp.h rename to dll/opengl/mesa/src/mesa/tnl/t_vb_cliptmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_fog.c b/dll/opengl/mesa/src/mesa/tnl/t_vb_fog.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_fog.c rename to dll/opengl/mesa/src/mesa/tnl/t_vb_fog.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_light.c b/dll/opengl/mesa/src/mesa/tnl/t_vb_light.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_light.c rename to dll/opengl/mesa/src/mesa/tnl/t_vb_light.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_lighttmp.h b/dll/opengl/mesa/src/mesa/tnl/t_vb_lighttmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_lighttmp.h rename to dll/opengl/mesa/src/mesa/tnl/t_vb_lighttmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_normals.c b/dll/opengl/mesa/src/mesa/tnl/t_vb_normals.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_normals.c rename to dll/opengl/mesa/src/mesa/tnl/t_vb_normals.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_points.c b/dll/opengl/mesa/src/mesa/tnl/t_vb_points.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_points.c rename to dll/opengl/mesa/src/mesa/tnl/t_vb_points.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_program.c b/dll/opengl/mesa/src/mesa/tnl/t_vb_program.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_program.c rename to dll/opengl/mesa/src/mesa/tnl/t_vb_program.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_render.c b/dll/opengl/mesa/src/mesa/tnl/t_vb_render.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_render.c rename to dll/opengl/mesa/src/mesa/tnl/t_vb_render.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_rendertmp.h b/dll/opengl/mesa/src/mesa/tnl/t_vb_rendertmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_rendertmp.h rename to dll/opengl/mesa/src/mesa/tnl/t_vb_rendertmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_texgen.c b/dll/opengl/mesa/src/mesa/tnl/t_vb_texgen.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_texgen.c rename to dll/opengl/mesa/src/mesa/tnl/t_vb_texgen.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_texmat.c b/dll/opengl/mesa/src/mesa/tnl/t_vb_texmat.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_texmat.c rename to dll/opengl/mesa/src/mesa/tnl/t_vb_texmat.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_vertex.c b/dll/opengl/mesa/src/mesa/tnl/t_vb_vertex.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_vertex.c rename to dll/opengl/mesa/src/mesa/tnl/t_vb_vertex.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex.c b/dll/opengl/mesa/src/mesa/tnl/t_vertex.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex.c rename to dll/opengl/mesa/src/mesa/tnl/t_vertex.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex.h b/dll/opengl/mesa/src/mesa/tnl/t_vertex.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex.h rename to dll/opengl/mesa/src/mesa/tnl/t_vertex.h diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex_generic.c b/dll/opengl/mesa/src/mesa/tnl/t_vertex_generic.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex_generic.c rename to dll/opengl/mesa/src/mesa/tnl/t_vertex_generic.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex_sse.c b/dll/opengl/mesa/src/mesa/tnl/t_vertex_sse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex_sse.c rename to dll/opengl/mesa/src/mesa/tnl/t_vertex_sse.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vp_build.c b/dll/opengl/mesa/src/mesa/tnl/t_vp_build.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vp_build.c rename to dll/opengl/mesa/src/mesa/tnl/t_vp_build.c diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/t_vp_build.h b/dll/opengl/mesa/src/mesa/tnl/t_vp_build.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/t_vp_build.h rename to dll/opengl/mesa/src/mesa/tnl/t_vp_build.h diff --git a/reactos/dll/opengl/mesa/src/mesa/tnl/tnl.h b/dll/opengl/mesa/src/mesa/tnl/tnl.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/tnl/tnl.h rename to dll/opengl/mesa/src/mesa/tnl/tnl.h diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/descrip.mms b/dll/opengl/mesa/src/mesa/vbo/descrip.mms similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/descrip.mms rename to dll/opengl/mesa/src/mesa/vbo/descrip.mms diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo.h b/dll/opengl/mesa/src/mesa/vbo/vbo.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo.h rename to dll/opengl/mesa/src/mesa/vbo/vbo.h diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_attrib.h b/dll/opengl/mesa/src/mesa/vbo/vbo_attrib.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_attrib.h rename to dll/opengl/mesa/src/mesa/vbo/vbo_attrib.h diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_attrib_tmp.h b/dll/opengl/mesa/src/mesa/vbo/vbo_attrib_tmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_attrib_tmp.h rename to dll/opengl/mesa/src/mesa/vbo/vbo_attrib_tmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_context.c b/dll/opengl/mesa/src/mesa/vbo/vbo_context.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_context.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_context.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_context.h b/dll/opengl/mesa/src/mesa/vbo/vbo_context.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_context.h rename to dll/opengl/mesa/src/mesa/vbo/vbo_context.h diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec.c b/dll/opengl/mesa/src/mesa/vbo/vbo_exec.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_exec.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec.h b/dll/opengl/mesa/src/mesa/vbo/vbo_exec.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec.h rename to dll/opengl/mesa/src/mesa/vbo/vbo_exec.h diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_api.c b/dll/opengl/mesa/src/mesa/vbo/vbo_exec_api.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_api.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_exec_api.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_array.c b/dll/opengl/mesa/src/mesa/vbo/vbo_exec_array.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_array.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_exec_array.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_draw.c b/dll/opengl/mesa/src/mesa/vbo/vbo_exec_draw.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_draw.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_exec_draw.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_eval.c b/dll/opengl/mesa/src/mesa/vbo/vbo_exec_eval.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_eval.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_exec_eval.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_noop.c b/dll/opengl/mesa/src/mesa/vbo/vbo_noop.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_noop.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_noop.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_noop.h b/dll/opengl/mesa/src/mesa/vbo/vbo_noop.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_noop.h rename to dll/opengl/mesa/src/mesa/vbo/vbo_noop.h diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_rebase.c b/dll/opengl/mesa/src/mesa/vbo/vbo_rebase.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_rebase.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_rebase.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save.c b/dll/opengl/mesa/src/mesa/vbo/vbo_save.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_save.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save.h b/dll/opengl/mesa/src/mesa/vbo/vbo_save.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save.h rename to dll/opengl/mesa/src/mesa/vbo/vbo_save.h diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save_api.c b/dll/opengl/mesa/src/mesa/vbo/vbo_save_api.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save_api.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_save_api.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save_draw.c b/dll/opengl/mesa/src/mesa/vbo/vbo_save_draw.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save_draw.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_save_draw.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save_loopback.c b/dll/opengl/mesa/src/mesa/vbo/vbo_save_loopback.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save_loopback.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_save_loopback.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split.c b/dll/opengl/mesa/src/mesa/vbo/vbo_split.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_split.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split.h b/dll/opengl/mesa/src/mesa/vbo/vbo_split.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split.h rename to dll/opengl/mesa/src/mesa/vbo/vbo_split.h diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split_copy.c b/dll/opengl/mesa/src/mesa/vbo/vbo_split_copy.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split_copy.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_split_copy.c diff --git a/reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split_inplace.c b/dll/opengl/mesa/src/mesa/vbo/vbo_split_inplace.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split_inplace.c rename to dll/opengl/mesa/src/mesa/vbo/vbo_split_inplace.c diff --git a/reactos/dll/opengl/mesa/src/mesa/x86-64/Makefile b/dll/opengl/mesa/src/mesa/x86-64/Makefile similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86-64/Makefile rename to dll/opengl/mesa/src/mesa/x86-64/Makefile diff --git a/reactos/dll/opengl/mesa/src/mesa/x86-64/calling_convention.txt b/dll/opengl/mesa/src/mesa/x86-64/calling_convention.txt similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86-64/calling_convention.txt rename to dll/opengl/mesa/src/mesa/x86-64/calling_convention.txt diff --git a/reactos/dll/opengl/mesa/src/mesa/x86-64/x86-64.c b/dll/opengl/mesa/src/mesa/x86-64/x86-64.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86-64/x86-64.c rename to dll/opengl/mesa/src/mesa/x86-64/x86-64.c diff --git a/reactos/dll/opengl/mesa/src/mesa/x86-64/x86-64.h b/dll/opengl/mesa/src/mesa/x86-64/x86-64.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86-64/x86-64.h rename to dll/opengl/mesa/src/mesa/x86-64/x86-64.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86-64/xform4.S b/dll/opengl/mesa/src/mesa/x86-64/xform4.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86-64/xform4.S rename to dll/opengl/mesa/src/mesa/x86-64/xform4.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/3dnow.c b/dll/opengl/mesa/src/mesa/x86/3dnow.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/3dnow.c rename to dll/opengl/mesa/src/mesa/x86/3dnow.c diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/3dnow.h b/dll/opengl/mesa/src/mesa/x86/3dnow.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/3dnow.h rename to dll/opengl/mesa/src/mesa/x86/3dnow.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/3dnow_normal.S b/dll/opengl/mesa/src/mesa/x86/3dnow_normal.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/3dnow_normal.S rename to dll/opengl/mesa/src/mesa/x86/3dnow_normal.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform1.S b/dll/opengl/mesa/src/mesa/x86/3dnow_xform1.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform1.S rename to dll/opengl/mesa/src/mesa/x86/3dnow_xform1.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform2.S b/dll/opengl/mesa/src/mesa/x86/3dnow_xform2.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform2.S rename to dll/opengl/mesa/src/mesa/x86/3dnow_xform2.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform3.S b/dll/opengl/mesa/src/mesa/x86/3dnow_xform3.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform3.S rename to dll/opengl/mesa/src/mesa/x86/3dnow_xform3.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform4.S b/dll/opengl/mesa/src/mesa/x86/3dnow_xform4.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform4.S rename to dll/opengl/mesa/src/mesa/x86/3dnow_xform4.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/Makefile b/dll/opengl/mesa/src/mesa/x86/Makefile similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/Makefile rename to dll/opengl/mesa/src/mesa/x86/Makefile diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/assyntax.h b/dll/opengl/mesa/src/mesa/x86/assyntax.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/assyntax.h rename to dll/opengl/mesa/src/mesa/x86/assyntax.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/clip_args.h b/dll/opengl/mesa/src/mesa/x86/clip_args.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/clip_args.h rename to dll/opengl/mesa/src/mesa/x86/clip_args.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/common_x86.c b/dll/opengl/mesa/src/mesa/x86/common_x86.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/common_x86.c rename to dll/opengl/mesa/src/mesa/x86/common_x86.c diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/common_x86_asm.S b/dll/opengl/mesa/src/mesa/x86/common_x86_asm.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/common_x86_asm.S rename to dll/opengl/mesa/src/mesa/x86/common_x86_asm.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/common_x86_asm.h b/dll/opengl/mesa/src/mesa/x86/common_x86_asm.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/common_x86_asm.h rename to dll/opengl/mesa/src/mesa/x86/common_x86_asm.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/common_x86_features.h b/dll/opengl/mesa/src/mesa/x86/common_x86_features.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/common_x86_features.h rename to dll/opengl/mesa/src/mesa/x86/common_x86_features.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/gen_matypes.c b/dll/opengl/mesa/src/mesa/x86/gen_matypes.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/gen_matypes.c rename to dll/opengl/mesa/src/mesa/x86/gen_matypes.c diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/mmx.h b/dll/opengl/mesa/src/mesa/x86/mmx.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/mmx.h rename to dll/opengl/mesa/src/mesa/x86/mmx.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/mmx_blend.S b/dll/opengl/mesa/src/mesa/x86/mmx_blend.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/mmx_blend.S rename to dll/opengl/mesa/src/mesa/x86/mmx_blend.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/mmx_blendtmp.h b/dll/opengl/mesa/src/mesa/x86/mmx_blendtmp.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/mmx_blendtmp.h rename to dll/opengl/mesa/src/mesa/x86/mmx_blendtmp.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/norm_args.h b/dll/opengl/mesa/src/mesa/x86/norm_args.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/norm_args.h rename to dll/opengl/mesa/src/mesa/x86/norm_args.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/read_rgba_span_x86.S b/dll/opengl/mesa/src/mesa/x86/read_rgba_span_x86.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/read_rgba_span_x86.S rename to dll/opengl/mesa/src/mesa/x86/read_rgba_span_x86.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/read_rgba_span_x86.h b/dll/opengl/mesa/src/mesa/x86/read_rgba_span_x86.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/read_rgba_span_x86.h rename to dll/opengl/mesa/src/mesa/x86/read_rgba_span_x86.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/rtasm/x86sse.c b/dll/opengl/mesa/src/mesa/x86/rtasm/x86sse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/rtasm/x86sse.c rename to dll/opengl/mesa/src/mesa/x86/rtasm/x86sse.c diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/rtasm/x86sse.h b/dll/opengl/mesa/src/mesa/x86/rtasm/x86sse.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/rtasm/x86sse.h rename to dll/opengl/mesa/src/mesa/x86/rtasm/x86sse.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/sse.c b/dll/opengl/mesa/src/mesa/x86/sse.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/sse.c rename to dll/opengl/mesa/src/mesa/x86/sse.c diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/sse.h b/dll/opengl/mesa/src/mesa/x86/sse.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/sse.h rename to dll/opengl/mesa/src/mesa/x86/sse.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/sse_normal.S b/dll/opengl/mesa/src/mesa/x86/sse_normal.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/sse_normal.S rename to dll/opengl/mesa/src/mesa/x86/sse_normal.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/sse_xform1.S b/dll/opengl/mesa/src/mesa/x86/sse_xform1.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/sse_xform1.S rename to dll/opengl/mesa/src/mesa/x86/sse_xform1.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/sse_xform2.S b/dll/opengl/mesa/src/mesa/x86/sse_xform2.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/sse_xform2.S rename to dll/opengl/mesa/src/mesa/x86/sse_xform2.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/sse_xform3.S b/dll/opengl/mesa/src/mesa/x86/sse_xform3.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/sse_xform3.S rename to dll/opengl/mesa/src/mesa/x86/sse_xform3.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/sse_xform4.S b/dll/opengl/mesa/src/mesa/x86/sse_xform4.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/sse_xform4.S rename to dll/opengl/mesa/src/mesa/x86/sse_xform4.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/x86_cliptest.S b/dll/opengl/mesa/src/mesa/x86/x86_cliptest.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/x86_cliptest.S rename to dll/opengl/mesa/src/mesa/x86/x86_cliptest.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/x86_xform.c b/dll/opengl/mesa/src/mesa/x86/x86_xform.c similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/x86_xform.c rename to dll/opengl/mesa/src/mesa/x86/x86_xform.c diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/x86_xform.h b/dll/opengl/mesa/src/mesa/x86/x86_xform.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/x86_xform.h rename to dll/opengl/mesa/src/mesa/x86/x86_xform.h diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/x86_xform2.S b/dll/opengl/mesa/src/mesa/x86/x86_xform2.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/x86_xform2.S rename to dll/opengl/mesa/src/mesa/x86/x86_xform2.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/x86_xform3.S b/dll/opengl/mesa/src/mesa/x86/x86_xform3.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/x86_xform3.S rename to dll/opengl/mesa/src/mesa/x86/x86_xform3.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/x86_xform4.S b/dll/opengl/mesa/src/mesa/x86/x86_xform4.S similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/x86_xform4.S rename to dll/opengl/mesa/src/mesa/x86/x86_xform4.S diff --git a/reactos/dll/opengl/mesa/src/mesa/x86/xform_args.h b/dll/opengl/mesa/src/mesa/x86/xform_args.h similarity index 100% rename from reactos/dll/opengl/mesa/src/mesa/x86/xform_args.h rename to dll/opengl/mesa/src/mesa/x86/xform_args.h diff --git a/reactos/dll/opengl/opengl32/CMakeLists.txt b/dll/opengl/opengl32/CMakeLists.txt similarity index 100% rename from reactos/dll/opengl/opengl32/CMakeLists.txt rename to dll/opengl/opengl32/CMakeLists.txt diff --git a/reactos/dll/opengl/opengl32/font.c b/dll/opengl/opengl32/font.c similarity index 100% rename from reactos/dll/opengl/opengl32/font.c rename to dll/opengl/opengl32/font.c diff --git a/reactos/dll/opengl/opengl32/gl.c b/dll/opengl/opengl32/gl.c similarity index 100% rename from reactos/dll/opengl/opengl32/gl.c rename to dll/opengl/opengl32/gl.c diff --git a/reactos/dll/opengl/opengl32/glfuncs.h b/dll/opengl/opengl32/glfuncs.h similarity index 100% rename from reactos/dll/opengl/opengl32/glfuncs.h rename to dll/opengl/opengl32/glfuncs.h diff --git a/reactos/dll/opengl/opengl32/icdlist.h b/dll/opengl/opengl32/icdlist.h similarity index 100% rename from reactos/dll/opengl/opengl32/icdlist.h rename to dll/opengl/opengl32/icdlist.h diff --git a/reactos/dll/opengl/opengl32/icdtable.h b/dll/opengl/opengl32/icdtable.h similarity index 100% rename from reactos/dll/opengl/opengl32/icdtable.h rename to dll/opengl/opengl32/icdtable.h diff --git a/reactos/dll/opengl/opengl32/opengl32.c b/dll/opengl/opengl32/opengl32.c similarity index 100% rename from reactos/dll/opengl/opengl32/opengl32.c rename to dll/opengl/opengl32/opengl32.c diff --git a/reactos/dll/opengl/opengl32/opengl32.dsp b/dll/opengl/opengl32/opengl32.dsp similarity index 100% rename from reactos/dll/opengl/opengl32/opengl32.dsp rename to dll/opengl/opengl32/opengl32.dsp diff --git a/reactos/dll/opengl/opengl32/opengl32.dsw b/dll/opengl/opengl32/opengl32.dsw similarity index 100% rename from reactos/dll/opengl/opengl32/opengl32.dsw rename to dll/opengl/opengl32/opengl32.dsw diff --git a/reactos/dll/opengl/opengl32/opengl32.h b/dll/opengl/opengl32/opengl32.h similarity index 100% rename from reactos/dll/opengl/opengl32/opengl32.h rename to dll/opengl/opengl32/opengl32.h diff --git a/reactos/dll/opengl/opengl32/opengl32.spec b/dll/opengl/opengl32/opengl32.spec similarity index 100% rename from reactos/dll/opengl/opengl32/opengl32.spec rename to dll/opengl/opengl32/opengl32.spec diff --git a/reactos/dll/opengl/opengl32/wgl.c b/dll/opengl/opengl32/wgl.c similarity index 100% rename from reactos/dll/opengl/opengl32/wgl.c rename to dll/opengl/opengl32/wgl.c diff --git a/reactos/dll/shellext/CMakeLists.txt b/dll/shellext/CMakeLists.txt similarity index 100% rename from reactos/dll/shellext/CMakeLists.txt rename to dll/shellext/CMakeLists.txt diff --git a/reactos/dll/shellext/deskadp/CMakeLists.txt b/dll/shellext/deskadp/CMakeLists.txt similarity index 100% rename from reactos/dll/shellext/deskadp/CMakeLists.txt rename to dll/shellext/deskadp/CMakeLists.txt diff --git a/reactos/dll/shellext/deskadp/deskadp.c b/dll/shellext/deskadp/deskadp.c similarity index 100% rename from reactos/dll/shellext/deskadp/deskadp.c rename to dll/shellext/deskadp/deskadp.c diff --git a/reactos/dll/shellext/deskadp/deskadp.h b/dll/shellext/deskadp/deskadp.h similarity index 100% rename from reactos/dll/shellext/deskadp/deskadp.h rename to dll/shellext/deskadp/deskadp.h diff --git a/reactos/dll/shellext/deskadp/deskadp.rc b/dll/shellext/deskadp/deskadp.rc similarity index 100% rename from reactos/dll/shellext/deskadp/deskadp.rc rename to dll/shellext/deskadp/deskadp.rc diff --git a/reactos/dll/shellext/deskadp/deskadp.spec b/dll/shellext/deskadp/deskadp.spec similarity index 100% rename from reactos/dll/shellext/deskadp/deskadp.spec rename to dll/shellext/deskadp/deskadp.spec diff --git a/reactos/dll/shellext/deskadp/lang/bg-BG.rc b/dll/shellext/deskadp/lang/bg-BG.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/bg-BG.rc rename to dll/shellext/deskadp/lang/bg-BG.rc diff --git a/reactos/dll/shellext/deskadp/lang/cs-CZ.rc b/dll/shellext/deskadp/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/cs-CZ.rc rename to dll/shellext/deskadp/lang/cs-CZ.rc diff --git a/reactos/dll/shellext/deskadp/lang/de-DE.rc b/dll/shellext/deskadp/lang/de-DE.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/de-DE.rc rename to dll/shellext/deskadp/lang/de-DE.rc diff --git a/reactos/dll/shellext/deskadp/lang/el-GR.rc b/dll/shellext/deskadp/lang/el-GR.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/el-GR.rc rename to dll/shellext/deskadp/lang/el-GR.rc diff --git a/reactos/dll/shellext/deskadp/lang/en-US.rc b/dll/shellext/deskadp/lang/en-US.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/en-US.rc rename to dll/shellext/deskadp/lang/en-US.rc diff --git a/reactos/dll/shellext/deskadp/lang/es-ES.rc b/dll/shellext/deskadp/lang/es-ES.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/es-ES.rc rename to dll/shellext/deskadp/lang/es-ES.rc diff --git a/reactos/dll/shellext/deskadp/lang/eu-ES.rc b/dll/shellext/deskadp/lang/eu-ES.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/eu-ES.rc rename to dll/shellext/deskadp/lang/eu-ES.rc diff --git a/reactos/dll/shellext/deskadp/lang/fr-FR.rc b/dll/shellext/deskadp/lang/fr-FR.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/fr-FR.rc rename to dll/shellext/deskadp/lang/fr-FR.rc diff --git a/reactos/dll/shellext/deskadp/lang/it-IT.rc b/dll/shellext/deskadp/lang/it-IT.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/it-IT.rc rename to dll/shellext/deskadp/lang/it-IT.rc diff --git a/reactos/dll/shellext/deskadp/lang/no-NO.rc b/dll/shellext/deskadp/lang/no-NO.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/no-NO.rc rename to dll/shellext/deskadp/lang/no-NO.rc diff --git a/reactos/dll/shellext/deskadp/lang/pl-PL.rc b/dll/shellext/deskadp/lang/pl-PL.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/pl-PL.rc rename to dll/shellext/deskadp/lang/pl-PL.rc diff --git a/reactos/dll/shellext/deskadp/lang/ro-RO.rc b/dll/shellext/deskadp/lang/ro-RO.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/ro-RO.rc rename to dll/shellext/deskadp/lang/ro-RO.rc diff --git a/reactos/dll/shellext/deskadp/lang/ru-RU.rc b/dll/shellext/deskadp/lang/ru-RU.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/ru-RU.rc rename to dll/shellext/deskadp/lang/ru-RU.rc diff --git a/reactos/dll/shellext/deskadp/lang/sk-SK.rc b/dll/shellext/deskadp/lang/sk-SK.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/sk-SK.rc rename to dll/shellext/deskadp/lang/sk-SK.rc diff --git a/reactos/dll/shellext/deskadp/lang/uk-UA.rc b/dll/shellext/deskadp/lang/uk-UA.rc similarity index 100% rename from reactos/dll/shellext/deskadp/lang/uk-UA.rc rename to dll/shellext/deskadp/lang/uk-UA.rc diff --git a/reactos/dll/shellext/deskadp/precomp.h b/dll/shellext/deskadp/precomp.h similarity index 100% rename from reactos/dll/shellext/deskadp/precomp.h rename to dll/shellext/deskadp/precomp.h diff --git a/reactos/dll/shellext/deskadp/resource.h b/dll/shellext/deskadp/resource.h similarity index 100% rename from reactos/dll/shellext/deskadp/resource.h rename to dll/shellext/deskadp/resource.h diff --git a/reactos/dll/shellext/deskadp/rsrc.rc b/dll/shellext/deskadp/rsrc.rc similarity index 100% rename from reactos/dll/shellext/deskadp/rsrc.rc rename to dll/shellext/deskadp/rsrc.rc diff --git a/reactos/dll/shellext/deskadp/shxiface.c b/dll/shellext/deskadp/shxiface.c similarity index 100% rename from reactos/dll/shellext/deskadp/shxiface.c rename to dll/shellext/deskadp/shxiface.c diff --git a/reactos/dll/shellext/deskmon/CMakeLists.txt b/dll/shellext/deskmon/CMakeLists.txt similarity index 100% rename from reactos/dll/shellext/deskmon/CMakeLists.txt rename to dll/shellext/deskmon/CMakeLists.txt diff --git a/reactos/dll/shellext/deskmon/deskmon.c b/dll/shellext/deskmon/deskmon.c similarity index 100% rename from reactos/dll/shellext/deskmon/deskmon.c rename to dll/shellext/deskmon/deskmon.c diff --git a/reactos/dll/shellext/deskmon/deskmon.h b/dll/shellext/deskmon/deskmon.h similarity index 100% rename from reactos/dll/shellext/deskmon/deskmon.h rename to dll/shellext/deskmon/deskmon.h diff --git a/reactos/dll/shellext/deskmon/deskmon.rc b/dll/shellext/deskmon/deskmon.rc similarity index 100% rename from reactos/dll/shellext/deskmon/deskmon.rc rename to dll/shellext/deskmon/deskmon.rc diff --git a/reactos/dll/shellext/deskmon/deskmon.spec b/dll/shellext/deskmon/deskmon.spec similarity index 100% rename from reactos/dll/shellext/deskmon/deskmon.spec rename to dll/shellext/deskmon/deskmon.spec diff --git a/reactos/dll/shellext/deskmon/lang/bg-BG.rc b/dll/shellext/deskmon/lang/bg-BG.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/bg-BG.rc rename to dll/shellext/deskmon/lang/bg-BG.rc diff --git a/reactos/dll/shellext/deskmon/lang/cs-CZ.rc b/dll/shellext/deskmon/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/cs-CZ.rc rename to dll/shellext/deskmon/lang/cs-CZ.rc diff --git a/reactos/dll/shellext/deskmon/lang/de-DE.rc b/dll/shellext/deskmon/lang/de-DE.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/de-DE.rc rename to dll/shellext/deskmon/lang/de-DE.rc diff --git a/reactos/dll/shellext/deskmon/lang/el-GR.rc b/dll/shellext/deskmon/lang/el-GR.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/el-GR.rc rename to dll/shellext/deskmon/lang/el-GR.rc diff --git a/reactos/dll/shellext/deskmon/lang/en-US.rc b/dll/shellext/deskmon/lang/en-US.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/en-US.rc rename to dll/shellext/deskmon/lang/en-US.rc diff --git a/reactos/dll/shellext/deskmon/lang/es-ES.rc b/dll/shellext/deskmon/lang/es-ES.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/es-ES.rc rename to dll/shellext/deskmon/lang/es-ES.rc diff --git a/reactos/dll/shellext/deskmon/lang/eu-ES.rc b/dll/shellext/deskmon/lang/eu-ES.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/eu-ES.rc rename to dll/shellext/deskmon/lang/eu-ES.rc diff --git a/reactos/dll/shellext/deskmon/lang/fr-FR.rc b/dll/shellext/deskmon/lang/fr-FR.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/fr-FR.rc rename to dll/shellext/deskmon/lang/fr-FR.rc diff --git a/reactos/dll/shellext/deskmon/lang/it-IT.rc b/dll/shellext/deskmon/lang/it-IT.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/it-IT.rc rename to dll/shellext/deskmon/lang/it-IT.rc diff --git a/reactos/dll/shellext/deskmon/lang/no-NO.rc b/dll/shellext/deskmon/lang/no-NO.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/no-NO.rc rename to dll/shellext/deskmon/lang/no-NO.rc diff --git a/reactos/dll/shellext/deskmon/lang/pl-PL.rc b/dll/shellext/deskmon/lang/pl-PL.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/pl-PL.rc rename to dll/shellext/deskmon/lang/pl-PL.rc diff --git a/reactos/dll/shellext/deskmon/lang/ro-RO.rc b/dll/shellext/deskmon/lang/ro-RO.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/ro-RO.rc rename to dll/shellext/deskmon/lang/ro-RO.rc diff --git a/reactos/dll/shellext/deskmon/lang/ru-RU.rc b/dll/shellext/deskmon/lang/ru-RU.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/ru-RU.rc rename to dll/shellext/deskmon/lang/ru-RU.rc diff --git a/reactos/dll/shellext/deskmon/lang/sk-SK.rc b/dll/shellext/deskmon/lang/sk-SK.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/sk-SK.rc rename to dll/shellext/deskmon/lang/sk-SK.rc diff --git a/reactos/dll/shellext/deskmon/lang/uk-UA.rc b/dll/shellext/deskmon/lang/uk-UA.rc similarity index 100% rename from reactos/dll/shellext/deskmon/lang/uk-UA.rc rename to dll/shellext/deskmon/lang/uk-UA.rc diff --git a/reactos/dll/shellext/deskmon/precomp.h b/dll/shellext/deskmon/precomp.h similarity index 100% rename from reactos/dll/shellext/deskmon/precomp.h rename to dll/shellext/deskmon/precomp.h diff --git a/reactos/dll/shellext/deskmon/resource.h b/dll/shellext/deskmon/resource.h similarity index 100% rename from reactos/dll/shellext/deskmon/resource.h rename to dll/shellext/deskmon/resource.h diff --git a/reactos/dll/shellext/deskmon/rsrc.rc b/dll/shellext/deskmon/rsrc.rc similarity index 100% rename from reactos/dll/shellext/deskmon/rsrc.rc rename to dll/shellext/deskmon/rsrc.rc diff --git a/reactos/dll/shellext/deskmon/shxiface.c b/dll/shellext/deskmon/shxiface.c similarity index 100% rename from reactos/dll/shellext/deskmon/shxiface.c rename to dll/shellext/deskmon/shxiface.c diff --git a/reactos/dll/shellext/devcpux/CMakeLists.txt b/dll/shellext/devcpux/CMakeLists.txt similarity index 100% rename from reactos/dll/shellext/devcpux/CMakeLists.txt rename to dll/shellext/devcpux/CMakeLists.txt diff --git a/reactos/dll/shellext/devcpux/devcpux.spec b/dll/shellext/devcpux/devcpux.spec similarity index 100% rename from reactos/dll/shellext/devcpux/devcpux.spec rename to dll/shellext/devcpux/devcpux.spec diff --git a/reactos/dll/shellext/devcpux/processor.c b/dll/shellext/devcpux/processor.c similarity index 100% rename from reactos/dll/shellext/devcpux/processor.c rename to dll/shellext/devcpux/processor.c diff --git a/reactos/dll/shellext/devcpux/processor.rc b/dll/shellext/devcpux/processor.rc similarity index 100% rename from reactos/dll/shellext/devcpux/processor.rc rename to dll/shellext/devcpux/processor.rc diff --git a/reactos/dll/shellext/devcpux/resource.h b/dll/shellext/devcpux/resource.h similarity index 100% rename from reactos/dll/shellext/devcpux/resource.h rename to dll/shellext/devcpux/resource.h diff --git a/reactos/dll/shellext/fontext/CMakeLists.txt b/dll/shellext/fontext/CMakeLists.txt similarity index 100% rename from reactos/dll/shellext/fontext/CMakeLists.txt rename to dll/shellext/fontext/CMakeLists.txt diff --git a/reactos/dll/shellext/fontext/fontext.c b/dll/shellext/fontext/fontext.c similarity index 100% rename from reactos/dll/shellext/fontext/fontext.c rename to dll/shellext/fontext/fontext.c diff --git a/reactos/dll/shellext/fontext/fontext.h b/dll/shellext/fontext/fontext.h similarity index 100% rename from reactos/dll/shellext/fontext/fontext.h rename to dll/shellext/fontext/fontext.h diff --git a/reactos/dll/shellext/fontext/fontext.rc b/dll/shellext/fontext/fontext.rc similarity index 100% rename from reactos/dll/shellext/fontext/fontext.rc rename to dll/shellext/fontext/fontext.rc diff --git a/reactos/dll/shellext/fontext/fontext.spec b/dll/shellext/fontext/fontext.spec similarity index 100% rename from reactos/dll/shellext/fontext/fontext.spec rename to dll/shellext/fontext/fontext.spec diff --git a/reactos/dll/shellext/fontext/lang/en-US.rc b/dll/shellext/fontext/lang/en-US.rc similarity index 100% rename from reactos/dll/shellext/fontext/lang/en-US.rc rename to dll/shellext/fontext/lang/en-US.rc diff --git a/reactos/dll/shellext/fontext/regsvr.c b/dll/shellext/fontext/regsvr.c similarity index 100% rename from reactos/dll/shellext/fontext/regsvr.c rename to dll/shellext/fontext/regsvr.c diff --git a/reactos/dll/shellext/fontext/resource.h b/dll/shellext/fontext/resource.h similarity index 100% rename from reactos/dll/shellext/fontext/resource.h rename to dll/shellext/fontext/resource.h diff --git a/reactos/dll/shellext/fontext/rsrc.rc b/dll/shellext/fontext/rsrc.rc similarity index 100% rename from reactos/dll/shellext/fontext/rsrc.rc rename to dll/shellext/fontext/rsrc.rc diff --git a/reactos/dll/shellext/slayer/CMakeLists.txt b/dll/shellext/slayer/CMakeLists.txt similarity index 100% rename from reactos/dll/shellext/slayer/CMakeLists.txt rename to dll/shellext/slayer/CMakeLists.txt diff --git a/reactos/dll/shellext/slayer/lang/bg-BG.rc b/dll/shellext/slayer/lang/bg-BG.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/bg-BG.rc rename to dll/shellext/slayer/lang/bg-BG.rc diff --git a/reactos/dll/shellext/slayer/lang/cs-CZ.rc b/dll/shellext/slayer/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/cs-CZ.rc rename to dll/shellext/slayer/lang/cs-CZ.rc diff --git a/reactos/dll/shellext/slayer/lang/de-DE.rc b/dll/shellext/slayer/lang/de-DE.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/de-DE.rc rename to dll/shellext/slayer/lang/de-DE.rc diff --git a/reactos/dll/shellext/slayer/lang/en-US.rc b/dll/shellext/slayer/lang/en-US.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/en-US.rc rename to dll/shellext/slayer/lang/en-US.rc diff --git a/reactos/dll/shellext/slayer/lang/es-ES.rc b/dll/shellext/slayer/lang/es-ES.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/es-ES.rc rename to dll/shellext/slayer/lang/es-ES.rc diff --git a/reactos/dll/shellext/slayer/lang/eu-ES.rc b/dll/shellext/slayer/lang/eu-ES.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/eu-ES.rc rename to dll/shellext/slayer/lang/eu-ES.rc diff --git a/reactos/dll/shellext/slayer/lang/fr-FR.rc b/dll/shellext/slayer/lang/fr-FR.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/fr-FR.rc rename to dll/shellext/slayer/lang/fr-FR.rc diff --git a/reactos/dll/shellext/slayer/lang/hu-HU.rc b/dll/shellext/slayer/lang/hu-HU.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/hu-HU.rc rename to dll/shellext/slayer/lang/hu-HU.rc diff --git a/reactos/dll/shellext/slayer/lang/id-ID.rc b/dll/shellext/slayer/lang/id-ID.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/id-ID.rc rename to dll/shellext/slayer/lang/id-ID.rc diff --git a/reactos/dll/shellext/slayer/lang/it-IT.rc b/dll/shellext/slayer/lang/it-IT.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/it-IT.rc rename to dll/shellext/slayer/lang/it-IT.rc diff --git a/reactos/dll/shellext/slayer/lang/nl-NL.rc b/dll/shellext/slayer/lang/nl-NL.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/nl-NL.rc rename to dll/shellext/slayer/lang/nl-NL.rc diff --git a/reactos/dll/shellext/slayer/lang/no-NO.rc b/dll/shellext/slayer/lang/no-NO.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/no-NO.rc rename to dll/shellext/slayer/lang/no-NO.rc diff --git a/reactos/dll/shellext/slayer/lang/pl-PL.rc b/dll/shellext/slayer/lang/pl-PL.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/pl-PL.rc rename to dll/shellext/slayer/lang/pl-PL.rc diff --git a/reactos/dll/shellext/slayer/lang/ro-RO.rc b/dll/shellext/slayer/lang/ro-RO.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/ro-RO.rc rename to dll/shellext/slayer/lang/ro-RO.rc diff --git a/reactos/dll/shellext/slayer/lang/ru-RU.rc b/dll/shellext/slayer/lang/ru-RU.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/ru-RU.rc rename to dll/shellext/slayer/lang/ru-RU.rc diff --git a/reactos/dll/shellext/slayer/lang/sk-SK.rc b/dll/shellext/slayer/lang/sk-SK.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/sk-SK.rc rename to dll/shellext/slayer/lang/sk-SK.rc diff --git a/reactos/dll/shellext/slayer/lang/sv-SE.rc b/dll/shellext/slayer/lang/sv-SE.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/sv-SE.rc rename to dll/shellext/slayer/lang/sv-SE.rc diff --git a/reactos/dll/shellext/slayer/lang/uk-UA.rc b/dll/shellext/slayer/lang/uk-UA.rc similarity index 100% rename from reactos/dll/shellext/slayer/lang/uk-UA.rc rename to dll/shellext/slayer/lang/uk-UA.rc diff --git a/reactos/dll/shellext/slayer/precomp.h b/dll/shellext/slayer/precomp.h similarity index 100% rename from reactos/dll/shellext/slayer/precomp.h rename to dll/shellext/slayer/precomp.h diff --git a/reactos/dll/shellext/slayer/resource.h b/dll/shellext/slayer/resource.h similarity index 100% rename from reactos/dll/shellext/slayer/resource.h rename to dll/shellext/slayer/resource.h diff --git a/reactos/dll/shellext/slayer/rsrc.rc b/dll/shellext/slayer/rsrc.rc similarity index 100% rename from reactos/dll/shellext/slayer/rsrc.rc rename to dll/shellext/slayer/rsrc.rc diff --git a/reactos/dll/shellext/slayer/slayer.c b/dll/shellext/slayer/slayer.c similarity index 100% rename from reactos/dll/shellext/slayer/slayer.c rename to dll/shellext/slayer/slayer.c diff --git a/reactos/dll/shellext/slayer/slayer.h b/dll/shellext/slayer/slayer.h similarity index 100% rename from reactos/dll/shellext/slayer/slayer.h rename to dll/shellext/slayer/slayer.h diff --git a/reactos/dll/shellext/slayer/slayer.rc b/dll/shellext/slayer/slayer.rc similarity index 100% rename from reactos/dll/shellext/slayer/slayer.rc rename to dll/shellext/slayer/slayer.rc diff --git a/reactos/dll/shellext/slayer/slayer.spec b/dll/shellext/slayer/slayer.spec similarity index 100% rename from reactos/dll/shellext/slayer/slayer.spec rename to dll/shellext/slayer/slayer.spec diff --git a/reactos/dll/win32/CMakeLists.txt b/dll/win32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/CMakeLists.txt rename to dll/win32/CMakeLists.txt diff --git a/reactos/dll/win32/acledit/CMakeLists.txt b/dll/win32/acledit/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/acledit/CMakeLists.txt rename to dll/win32/acledit/CMakeLists.txt diff --git a/reactos/dll/win32/acledit/acledit.c b/dll/win32/acledit/acledit.c similarity index 100% rename from reactos/dll/win32/acledit/acledit.c rename to dll/win32/acledit/acledit.c diff --git a/reactos/dll/win32/acledit/acledit.rc b/dll/win32/acledit/acledit.rc similarity index 100% rename from reactos/dll/win32/acledit/acledit.rc rename to dll/win32/acledit/acledit.rc diff --git a/reactos/dll/win32/acledit/acledit.spec b/dll/win32/acledit/acledit.spec similarity index 100% rename from reactos/dll/win32/acledit/acledit.spec rename to dll/win32/acledit/acledit.spec diff --git a/reactos/dll/win32/acledit/acleditint.h b/dll/win32/acledit/acleditint.h similarity index 100% rename from reactos/dll/win32/acledit/acleditint.h rename to dll/win32/acledit/acleditint.h diff --git a/reactos/dll/win32/acledit/resource.h b/dll/win32/acledit/resource.h similarity index 100% rename from reactos/dll/win32/acledit/resource.h rename to dll/win32/acledit/resource.h diff --git a/reactos/dll/win32/acledit/stubs.c b/dll/win32/acledit/stubs.c similarity index 100% rename from reactos/dll/win32/acledit/stubs.c rename to dll/win32/acledit/stubs.c diff --git a/reactos/dll/win32/aclui/CMakeLists.txt b/dll/win32/aclui/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/aclui/CMakeLists.txt rename to dll/win32/aclui/CMakeLists.txt diff --git a/reactos/dll/win32/aclui/aclui.c b/dll/win32/aclui/aclui.c similarity index 100% rename from reactos/dll/win32/aclui/aclui.c rename to dll/win32/aclui/aclui.c diff --git a/reactos/dll/win32/aclui/aclui.rc b/dll/win32/aclui/aclui.rc similarity index 100% rename from reactos/dll/win32/aclui/aclui.rc rename to dll/win32/aclui/aclui.rc diff --git a/reactos/dll/win32/aclui/aclui.spec b/dll/win32/aclui/aclui.spec similarity index 100% rename from reactos/dll/win32/aclui/aclui.spec rename to dll/win32/aclui/aclui.spec diff --git a/reactos/dll/win32/aclui/checklist.c b/dll/win32/aclui/checklist.c similarity index 100% rename from reactos/dll/win32/aclui/checklist.c rename to dll/win32/aclui/checklist.c diff --git a/reactos/dll/win32/aclui/guid.c b/dll/win32/aclui/guid.c similarity index 100% rename from reactos/dll/win32/aclui/guid.c rename to dll/win32/aclui/guid.c diff --git a/reactos/dll/win32/aclui/lang/bg-BG.rc b/dll/win32/aclui/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/bg-BG.rc rename to dll/win32/aclui/lang/bg-BG.rc diff --git a/reactos/dll/win32/aclui/lang/de-DE.rc b/dll/win32/aclui/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/de-DE.rc rename to dll/win32/aclui/lang/de-DE.rc diff --git a/reactos/dll/win32/aclui/lang/el-GR.rc b/dll/win32/aclui/lang/el-GR.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/el-GR.rc rename to dll/win32/aclui/lang/el-GR.rc diff --git a/reactos/dll/win32/aclui/lang/en-US.rc b/dll/win32/aclui/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/en-US.rc rename to dll/win32/aclui/lang/en-US.rc diff --git a/reactos/dll/win32/aclui/lang/es-ES.rc b/dll/win32/aclui/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/es-ES.rc rename to dll/win32/aclui/lang/es-ES.rc diff --git a/reactos/dll/win32/aclui/lang/fr-FR.rc b/dll/win32/aclui/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/fr-FR.rc rename to dll/win32/aclui/lang/fr-FR.rc diff --git a/reactos/dll/win32/aclui/lang/hu-HU.rc b/dll/win32/aclui/lang/hu-HU.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/hu-HU.rc rename to dll/win32/aclui/lang/hu-HU.rc diff --git a/reactos/dll/win32/aclui/lang/id-ID.rc b/dll/win32/aclui/lang/id-ID.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/id-ID.rc rename to dll/win32/aclui/lang/id-ID.rc diff --git a/reactos/dll/win32/aclui/lang/it-IT.rc b/dll/win32/aclui/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/it-IT.rc rename to dll/win32/aclui/lang/it-IT.rc diff --git a/reactos/dll/win32/aclui/lang/ja-JP.rc b/dll/win32/aclui/lang/ja-JP.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/ja-JP.rc rename to dll/win32/aclui/lang/ja-JP.rc diff --git a/reactos/dll/win32/aclui/lang/lt-LT.rc b/dll/win32/aclui/lang/lt-LT.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/lt-LT.rc rename to dll/win32/aclui/lang/lt-LT.rc diff --git a/reactos/dll/win32/aclui/lang/nl-NL.rc b/dll/win32/aclui/lang/nl-NL.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/nl-NL.rc rename to dll/win32/aclui/lang/nl-NL.rc diff --git a/reactos/dll/win32/aclui/lang/no-NO.rc b/dll/win32/aclui/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/no-NO.rc rename to dll/win32/aclui/lang/no-NO.rc diff --git a/reactos/dll/win32/aclui/lang/pl-PL.rc b/dll/win32/aclui/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/pl-PL.rc rename to dll/win32/aclui/lang/pl-PL.rc diff --git a/reactos/dll/win32/aclui/lang/ro-RO.rc b/dll/win32/aclui/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/ro-RO.rc rename to dll/win32/aclui/lang/ro-RO.rc diff --git a/reactos/dll/win32/aclui/lang/ru-RU.rc b/dll/win32/aclui/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/ru-RU.rc rename to dll/win32/aclui/lang/ru-RU.rc diff --git a/reactos/dll/win32/aclui/lang/sv-SE.rc b/dll/win32/aclui/lang/sv-SE.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/sv-SE.rc rename to dll/win32/aclui/lang/sv-SE.rc diff --git a/reactos/dll/win32/aclui/lang/th-TH.rc b/dll/win32/aclui/lang/th-TH.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/th-TH.rc rename to dll/win32/aclui/lang/th-TH.rc diff --git a/reactos/dll/win32/aclui/lang/tr-TR.rc b/dll/win32/aclui/lang/tr-TR.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/tr-TR.rc rename to dll/win32/aclui/lang/tr-TR.rc diff --git a/reactos/dll/win32/aclui/lang/uk-UA.rc b/dll/win32/aclui/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/aclui/lang/uk-UA.rc rename to dll/win32/aclui/lang/uk-UA.rc diff --git a/reactos/dll/win32/aclui/misc.c b/dll/win32/aclui/misc.c similarity index 100% rename from reactos/dll/win32/aclui/misc.c rename to dll/win32/aclui/misc.c diff --git a/reactos/dll/win32/aclui/precomp.h b/dll/win32/aclui/precomp.h similarity index 100% rename from reactos/dll/win32/aclui/precomp.h rename to dll/win32/aclui/precomp.h diff --git a/reactos/dll/win32/aclui/res/usrgrp.bmp b/dll/win32/aclui/res/usrgrp.bmp similarity index 100% rename from reactos/dll/win32/aclui/res/usrgrp.bmp rename to dll/win32/aclui/res/usrgrp.bmp diff --git a/reactos/dll/win32/aclui/resource.h b/dll/win32/aclui/resource.h similarity index 100% rename from reactos/dll/win32/aclui/resource.h rename to dll/win32/aclui/resource.h diff --git a/reactos/dll/win32/aclui/rsrc.rc b/dll/win32/aclui/rsrc.rc similarity index 100% rename from reactos/dll/win32/aclui/rsrc.rc rename to dll/win32/aclui/rsrc.rc diff --git a/reactos/dll/win32/aclui/sidcache.c b/dll/win32/aclui/sidcache.c similarity index 100% rename from reactos/dll/win32/aclui/sidcache.c rename to dll/win32/aclui/sidcache.c diff --git a/reactos/dll/win32/activeds/CMakeLists.txt b/dll/win32/activeds/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/activeds/CMakeLists.txt rename to dll/win32/activeds/CMakeLists.txt diff --git a/reactos/dll/win32/activeds/activeds.spec b/dll/win32/activeds/activeds.spec similarity index 100% rename from reactos/dll/win32/activeds/activeds.spec rename to dll/win32/activeds/activeds.spec diff --git a/reactos/dll/win32/activeds/activeds_main.c b/dll/win32/activeds/activeds_main.c similarity index 100% rename from reactos/dll/win32/activeds/activeds_main.c rename to dll/win32/activeds/activeds_main.c diff --git a/reactos/dll/win32/activeds/stubs.c b/dll/win32/activeds/stubs.c similarity index 100% rename from reactos/dll/win32/activeds/stubs.c rename to dll/win32/activeds/stubs.c diff --git a/reactos/dll/win32/actxprxy/CMakeLists.txt b/dll/win32/actxprxy/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/actxprxy/CMakeLists.txt rename to dll/win32/actxprxy/CMakeLists.txt diff --git a/reactos/dll/win32/actxprxy/actxprxy.spec b/dll/win32/actxprxy/actxprxy.spec similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy.spec rename to dll/win32/actxprxy/actxprxy.spec diff --git a/reactos/dll/win32/actxprxy/actxprxy_activscp.idl b/dll/win32/actxprxy/actxprxy_activscp.idl similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy_activscp.idl rename to dll/win32/actxprxy/actxprxy_activscp.idl diff --git a/reactos/dll/win32/actxprxy/actxprxy_comcat.idl b/dll/win32/actxprxy/actxprxy_comcat.idl similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy_comcat.idl rename to dll/win32/actxprxy/actxprxy_comcat.idl diff --git a/reactos/dll/win32/actxprxy/actxprxy_docobj.idl b/dll/win32/actxprxy/actxprxy_docobj.idl similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy_docobj.idl rename to dll/win32/actxprxy/actxprxy_docobj.idl diff --git a/reactos/dll/win32/actxprxy/actxprxy_hlink.idl b/dll/win32/actxprxy/actxprxy_hlink.idl similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy_hlink.idl rename to dll/win32/actxprxy/actxprxy_hlink.idl diff --git a/reactos/dll/win32/actxprxy/actxprxy_htiframe.idl b/dll/win32/actxprxy/actxprxy_htiframe.idl similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy_htiframe.idl rename to dll/win32/actxprxy/actxprxy_htiframe.idl diff --git a/reactos/dll/win32/actxprxy/actxprxy_objsafe.idl b/dll/win32/actxprxy/actxprxy_objsafe.idl similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy_objsafe.idl rename to dll/win32/actxprxy/actxprxy_objsafe.idl diff --git a/reactos/dll/win32/actxprxy/actxprxy_ocmm.idl b/dll/win32/actxprxy/actxprxy_ocmm.idl similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy_ocmm.idl rename to dll/win32/actxprxy/actxprxy_ocmm.idl diff --git a/reactos/dll/win32/actxprxy/actxprxy_servprov.idl b/dll/win32/actxprxy/actxprxy_servprov.idl similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy_servprov.idl rename to dll/win32/actxprxy/actxprxy_servprov.idl diff --git a/reactos/dll/win32/actxprxy/actxprxy_shldisp.idl b/dll/win32/actxprxy/actxprxy_shldisp.idl similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy_shldisp.idl rename to dll/win32/actxprxy/actxprxy_shldisp.idl diff --git a/reactos/dll/win32/actxprxy/actxprxy_shobjidl.idl b/dll/win32/actxprxy/actxprxy_shobjidl.idl similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy_shobjidl.idl rename to dll/win32/actxprxy/actxprxy_shobjidl.idl diff --git a/reactos/dll/win32/actxprxy/actxprxy_urlhist.idl b/dll/win32/actxprxy/actxprxy_urlhist.idl similarity index 100% rename from reactos/dll/win32/actxprxy/actxprxy_urlhist.idl rename to dll/win32/actxprxy/actxprxy_urlhist.idl diff --git a/reactos/dll/win32/actxprxy/usrmarshal.c b/dll/win32/actxprxy/usrmarshal.c similarity index 100% rename from reactos/dll/win32/actxprxy/usrmarshal.c rename to dll/win32/actxprxy/usrmarshal.c diff --git a/reactos/dll/win32/advapi32/CMakeLists.txt b/dll/win32/advapi32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/advapi32/CMakeLists.txt rename to dll/win32/advapi32/CMakeLists.txt diff --git a/reactos/dll/win32/advapi32/advapi32.h b/dll/win32/advapi32/advapi32.h similarity index 100% rename from reactos/dll/win32/advapi32/advapi32.h rename to dll/win32/advapi32/advapi32.h diff --git a/reactos/dll/win32/advapi32/advapi32.rc b/dll/win32/advapi32/advapi32.rc similarity index 100% rename from reactos/dll/win32/advapi32/advapi32.rc rename to dll/win32/advapi32/advapi32.rc diff --git a/reactos/dll/win32/advapi32/advapi32.spec b/dll/win32/advapi32/advapi32.spec similarity index 100% rename from reactos/dll/win32/advapi32/advapi32.spec rename to dll/win32/advapi32/advapi32.spec diff --git a/reactos/dll/win32/advapi32/crypt/crypt.c b/dll/win32/advapi32/crypt/crypt.c similarity index 100% rename from reactos/dll/win32/advapi32/crypt/crypt.c rename to dll/win32/advapi32/crypt/crypt.c diff --git a/reactos/dll/win32/advapi32/crypt/crypt.h b/dll/win32/advapi32/crypt/crypt.h similarity index 100% rename from reactos/dll/win32/advapi32/crypt/crypt.h rename to dll/win32/advapi32/crypt/crypt.h diff --git a/reactos/dll/win32/advapi32/crypt/crypt_arc4.c b/dll/win32/advapi32/crypt/crypt_arc4.c similarity index 100% rename from reactos/dll/win32/advapi32/crypt/crypt_arc4.c rename to dll/win32/advapi32/crypt/crypt_arc4.c diff --git a/reactos/dll/win32/advapi32/crypt/crypt_des.c b/dll/win32/advapi32/crypt/crypt_des.c similarity index 100% rename from reactos/dll/win32/advapi32/crypt/crypt_des.c rename to dll/win32/advapi32/crypt/crypt_des.c diff --git a/reactos/dll/win32/advapi32/crypt/crypt_lmhash.c b/dll/win32/advapi32/crypt/crypt_lmhash.c similarity index 100% rename from reactos/dll/win32/advapi32/crypt/crypt_lmhash.c rename to dll/win32/advapi32/crypt/crypt_lmhash.c diff --git a/reactos/dll/win32/advapi32/crypt/crypt_md4.c b/dll/win32/advapi32/crypt/crypt_md4.c similarity index 100% rename from reactos/dll/win32/advapi32/crypt/crypt_md4.c rename to dll/win32/advapi32/crypt/crypt_md4.c diff --git a/reactos/dll/win32/advapi32/crypt/crypt_md5.c b/dll/win32/advapi32/crypt/crypt_md5.c similarity index 100% rename from reactos/dll/win32/advapi32/crypt/crypt_md5.c rename to dll/win32/advapi32/crypt/crypt_md5.c diff --git a/reactos/dll/win32/advapi32/crypt/crypt_sha.c b/dll/win32/advapi32/crypt/crypt_sha.c similarity index 100% rename from reactos/dll/win32/advapi32/crypt/crypt_sha.c rename to dll/win32/advapi32/crypt/crypt_sha.c diff --git a/reactos/dll/win32/advapi32/crypt/ros_diff.patch b/dll/win32/advapi32/crypt/ros_diff.patch similarity index 100% rename from reactos/dll/win32/advapi32/crypt/ros_diff.patch rename to dll/win32/advapi32/crypt/ros_diff.patch diff --git a/reactos/dll/win32/advapi32/misc/dllmain.c b/dll/win32/advapi32/misc/dllmain.c similarity index 100% rename from reactos/dll/win32/advapi32/misc/dllmain.c rename to dll/win32/advapi32/misc/dllmain.c diff --git a/reactos/dll/win32/advapi32/misc/efs.c b/dll/win32/advapi32/misc/efs.c similarity index 100% rename from reactos/dll/win32/advapi32/misc/efs.c rename to dll/win32/advapi32/misc/efs.c diff --git a/reactos/dll/win32/advapi32/misc/hwprofiles.c b/dll/win32/advapi32/misc/hwprofiles.c similarity index 100% rename from reactos/dll/win32/advapi32/misc/hwprofiles.c rename to dll/win32/advapi32/misc/hwprofiles.c diff --git a/reactos/dll/win32/advapi32/misc/logon.c b/dll/win32/advapi32/misc/logon.c similarity index 100% rename from reactos/dll/win32/advapi32/misc/logon.c rename to dll/win32/advapi32/misc/logon.c diff --git a/reactos/dll/win32/advapi32/misc/msi.c b/dll/win32/advapi32/misc/msi.c similarity index 100% rename from reactos/dll/win32/advapi32/misc/msi.c rename to dll/win32/advapi32/misc/msi.c diff --git a/reactos/dll/win32/advapi32/misc/shutdown.c b/dll/win32/advapi32/misc/shutdown.c similarity index 100% rename from reactos/dll/win32/advapi32/misc/shutdown.c rename to dll/win32/advapi32/misc/shutdown.c diff --git a/reactos/dll/win32/advapi32/misc/sysfunc.c b/dll/win32/advapi32/misc/sysfunc.c similarity index 100% rename from reactos/dll/win32/advapi32/misc/sysfunc.c rename to dll/win32/advapi32/misc/sysfunc.c diff --git a/reactos/dll/win32/advapi32/misc/trace.c b/dll/win32/advapi32/misc/trace.c similarity index 100% rename from reactos/dll/win32/advapi32/misc/trace.c rename to dll/win32/advapi32/misc/trace.c diff --git a/reactos/dll/win32/advapi32/reg/reg.c b/dll/win32/advapi32/reg/reg.c similarity index 100% rename from reactos/dll/win32/advapi32/reg/reg.c rename to dll/win32/advapi32/reg/reg.c diff --git a/reactos/dll/win32/advapi32/sec/ac.c b/dll/win32/advapi32/sec/ac.c similarity index 100% rename from reactos/dll/win32/advapi32/sec/ac.c rename to dll/win32/advapi32/sec/ac.c diff --git a/reactos/dll/win32/advapi32/sec/audit.c b/dll/win32/advapi32/sec/audit.c similarity index 100% rename from reactos/dll/win32/advapi32/sec/audit.c rename to dll/win32/advapi32/sec/audit.c diff --git a/reactos/dll/win32/advapi32/sec/cred.c b/dll/win32/advapi32/sec/cred.c similarity index 100% rename from reactos/dll/win32/advapi32/sec/cred.c rename to dll/win32/advapi32/sec/cred.c diff --git a/reactos/dll/win32/advapi32/sec/lsa.c b/dll/win32/advapi32/sec/lsa.c similarity index 100% rename from reactos/dll/win32/advapi32/sec/lsa.c rename to dll/win32/advapi32/sec/lsa.c diff --git a/reactos/dll/win32/advapi32/sec/misc.c b/dll/win32/advapi32/sec/misc.c similarity index 100% rename from reactos/dll/win32/advapi32/sec/misc.c rename to dll/win32/advapi32/sec/misc.c diff --git a/reactos/dll/win32/advapi32/sec/sec.c b/dll/win32/advapi32/sec/sec.c similarity index 100% rename from reactos/dll/win32/advapi32/sec/sec.c rename to dll/win32/advapi32/sec/sec.c diff --git a/reactos/dll/win32/advapi32/sec/sid.c b/dll/win32/advapi32/sec/sid.c similarity index 100% rename from reactos/dll/win32/advapi32/sec/sid.c rename to dll/win32/advapi32/sec/sid.c diff --git a/reactos/dll/win32/advapi32/sec/trustee.c b/dll/win32/advapi32/sec/trustee.c similarity index 100% rename from reactos/dll/win32/advapi32/sec/trustee.c rename to dll/win32/advapi32/sec/trustee.c diff --git a/reactos/dll/win32/advapi32/service/eventlog.c b/dll/win32/advapi32/service/eventlog.c similarity index 100% rename from reactos/dll/win32/advapi32/service/eventlog.c rename to dll/win32/advapi32/service/eventlog.c diff --git a/reactos/dll/win32/advapi32/service/rpc.c b/dll/win32/advapi32/service/rpc.c similarity index 100% rename from reactos/dll/win32/advapi32/service/rpc.c rename to dll/win32/advapi32/service/rpc.c diff --git a/reactos/dll/win32/advapi32/service/scm.c b/dll/win32/advapi32/service/scm.c similarity index 100% rename from reactos/dll/win32/advapi32/service/scm.c rename to dll/win32/advapi32/service/scm.c diff --git a/reactos/dll/win32/advapi32/service/sctrl.c b/dll/win32/advapi32/service/sctrl.c similarity index 100% rename from reactos/dll/win32/advapi32/service/sctrl.c rename to dll/win32/advapi32/service/sctrl.c diff --git a/reactos/dll/win32/advapi32/token/privilege.c b/dll/win32/advapi32/token/privilege.c similarity index 100% rename from reactos/dll/win32/advapi32/token/privilege.c rename to dll/win32/advapi32/token/privilege.c diff --git a/reactos/dll/win32/advapi32/token/token.c b/dll/win32/advapi32/token/token.c similarity index 100% rename from reactos/dll/win32/advapi32/token/token.c rename to dll/win32/advapi32/token/token.c diff --git a/reactos/dll/win32/advpack/CMakeLists.txt b/dll/win32/advpack/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/advpack/CMakeLists.txt rename to dll/win32/advpack/CMakeLists.txt diff --git a/reactos/dll/win32/advpack/advpack.c b/dll/win32/advpack/advpack.c similarity index 100% rename from reactos/dll/win32/advpack/advpack.c rename to dll/win32/advpack/advpack.c diff --git a/reactos/dll/win32/advpack/advpack.spec b/dll/win32/advpack/advpack.spec similarity index 100% rename from reactos/dll/win32/advpack/advpack.spec rename to dll/win32/advpack/advpack.spec diff --git a/reactos/dll/win32/advpack/advpack_private.h b/dll/win32/advpack/advpack_private.h similarity index 100% rename from reactos/dll/win32/advpack/advpack_private.h rename to dll/win32/advpack/advpack_private.h diff --git a/reactos/dll/win32/advpack/files.c b/dll/win32/advpack/files.c similarity index 100% rename from reactos/dll/win32/advpack/files.c rename to dll/win32/advpack/files.c diff --git a/reactos/dll/win32/advpack/install.c b/dll/win32/advpack/install.c similarity index 100% rename from reactos/dll/win32/advpack/install.c rename to dll/win32/advpack/install.c diff --git a/reactos/dll/win32/advpack/reg.c b/dll/win32/advpack/reg.c similarity index 100% rename from reactos/dll/win32/advpack/reg.c rename to dll/win32/advpack/reg.c diff --git a/reactos/dll/win32/atl/CMakeLists.txt b/dll/win32/atl/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/atl/CMakeLists.txt rename to dll/win32/atl/CMakeLists.txt diff --git a/reactos/dll/win32/atl/atl.rgs b/dll/win32/atl/atl.rgs similarity index 100% rename from reactos/dll/win32/atl/atl.rgs rename to dll/win32/atl/atl.rgs diff --git a/reactos/dll/win32/atl/atl.spec b/dll/win32/atl/atl.spec similarity index 100% rename from reactos/dll/win32/atl/atl.spec rename to dll/win32/atl/atl.spec diff --git a/reactos/dll/win32/atl/atl_ax.c b/dll/win32/atl/atl_ax.c similarity index 100% rename from reactos/dll/win32/atl/atl_ax.c rename to dll/win32/atl/atl_ax.c diff --git a/reactos/dll/win32/atl/atl_main.c b/dll/win32/atl/atl_main.c similarity index 100% rename from reactos/dll/win32/atl/atl_main.c rename to dll/win32/atl/atl_main.c diff --git a/reactos/dll/win32/atl/atl_ros.diff b/dll/win32/atl/atl_ros.diff similarity index 100% rename from reactos/dll/win32/atl/atl_ros.diff rename to dll/win32/atl/atl_ros.diff diff --git a/reactos/dll/win32/atl/atlbase.h b/dll/win32/atl/atlbase.h similarity index 100% rename from reactos/dll/win32/atl/atlbase.h rename to dll/win32/atl/atlbase.h diff --git a/reactos/dll/win32/atl/atliface.idl b/dll/win32/atl/atliface.idl similarity index 100% rename from reactos/dll/win32/atl/atliface.idl rename to dll/win32/atl/atliface.idl diff --git a/reactos/dll/win32/atl/atlwin.h b/dll/win32/atl/atlwin.h similarity index 100% rename from reactos/dll/win32/atl/atlwin.h rename to dll/win32/atl/atlwin.h diff --git a/reactos/dll/win32/atl/registrar.c b/dll/win32/atl/registrar.c similarity index 100% rename from reactos/dll/win32/atl/registrar.c rename to dll/win32/atl/registrar.c diff --git a/reactos/dll/win32/atl/rsrc.rc b/dll/win32/atl/rsrc.rc similarity index 100% rename from reactos/dll/win32/atl/rsrc.rc rename to dll/win32/atl/rsrc.rc diff --git a/reactos/dll/win32/atl/stubs.c b/dll/win32/atl/stubs.c similarity index 100% rename from reactos/dll/win32/atl/stubs.c rename to dll/win32/atl/stubs.c diff --git a/reactos/dll/win32/authz/CMakeLists.txt b/dll/win32/authz/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/authz/CMakeLists.txt rename to dll/win32/authz/CMakeLists.txt diff --git a/reactos/dll/win32/authz/authz.c b/dll/win32/authz/authz.c similarity index 100% rename from reactos/dll/win32/authz/authz.c rename to dll/win32/authz/authz.c diff --git a/reactos/dll/win32/authz/authz.rc b/dll/win32/authz/authz.rc similarity index 100% rename from reactos/dll/win32/authz/authz.rc rename to dll/win32/authz/authz.rc diff --git a/reactos/dll/win32/authz/authz.spec b/dll/win32/authz/authz.spec similarity index 100% rename from reactos/dll/win32/authz/authz.spec rename to dll/win32/authz/authz.spec diff --git a/reactos/dll/win32/authz/clictx.c b/dll/win32/authz/clictx.c similarity index 100% rename from reactos/dll/win32/authz/clictx.c rename to dll/win32/authz/clictx.c diff --git a/reactos/dll/win32/authz/precomp.h b/dll/win32/authz/precomp.h similarity index 100% rename from reactos/dll/win32/authz/precomp.h rename to dll/win32/authz/precomp.h diff --git a/reactos/dll/win32/authz/resman.c b/dll/win32/authz/resman.c similarity index 100% rename from reactos/dll/win32/authz/resman.c rename to dll/win32/authz/resman.c diff --git a/reactos/dll/win32/avicap32/CMakeLists.txt b/dll/win32/avicap32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/avicap32/CMakeLists.txt rename to dll/win32/avicap32/CMakeLists.txt diff --git a/reactos/dll/win32/avicap32/avicap32.c b/dll/win32/avicap32/avicap32.c similarity index 100% rename from reactos/dll/win32/avicap32/avicap32.c rename to dll/win32/avicap32/avicap32.c diff --git a/reactos/dll/win32/avicap32/avicap32.rc b/dll/win32/avicap32/avicap32.rc similarity index 100% rename from reactos/dll/win32/avicap32/avicap32.rc rename to dll/win32/avicap32/avicap32.rc diff --git a/reactos/dll/win32/avicap32/avicap32.spec b/dll/win32/avicap32/avicap32.spec similarity index 100% rename from reactos/dll/win32/avicap32/avicap32.spec rename to dll/win32/avicap32/avicap32.spec diff --git a/reactos/dll/win32/avifil32/CMakeLists.txt b/dll/win32/avifil32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/avifil32/CMakeLists.txt rename to dll/win32/avifil32/CMakeLists.txt diff --git a/reactos/dll/win32/avifil32/acmstream.c b/dll/win32/avifil32/acmstream.c similarity index 100% rename from reactos/dll/win32/avifil32/acmstream.c rename to dll/win32/avifil32/acmstream.c diff --git a/reactos/dll/win32/avifil32/api.c b/dll/win32/avifil32/api.c similarity index 100% rename from reactos/dll/win32/avifil32/api.c rename to dll/win32/avifil32/api.c diff --git a/reactos/dll/win32/avifil32/avifil32.spec b/dll/win32/avifil32/avifil32.spec similarity index 100% rename from reactos/dll/win32/avifil32/avifil32.spec rename to dll/win32/avifil32/avifil32.spec diff --git a/reactos/dll/win32/avifil32/avifile.c b/dll/win32/avifil32/avifile.c similarity index 100% rename from reactos/dll/win32/avifil32/avifile.c rename to dll/win32/avifil32/avifile.c diff --git a/reactos/dll/win32/avifil32/avifile.rgs b/dll/win32/avifil32/avifile.rgs similarity index 100% rename from reactos/dll/win32/avifil32/avifile.rgs rename to dll/win32/avifil32/avifile.rgs diff --git a/reactos/dll/win32/avifil32/avifile_Bg.rc b/dll/win32/avifil32/avifile_Bg.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Bg.rc rename to dll/win32/avifil32/avifile_Bg.rc diff --git a/reactos/dll/win32/avifil32/avifile_Cs.rc b/dll/win32/avifil32/avifile_Cs.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Cs.rc rename to dll/win32/avifil32/avifile_Cs.rc diff --git a/reactos/dll/win32/avifil32/avifile_Da.rc b/dll/win32/avifil32/avifile_Da.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Da.rc rename to dll/win32/avifil32/avifile_Da.rc diff --git a/reactos/dll/win32/avifil32/avifile_De.rc b/dll/win32/avifil32/avifile_De.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_De.rc rename to dll/win32/avifil32/avifile_De.rc diff --git a/reactos/dll/win32/avifil32/avifile_En.rc b/dll/win32/avifil32/avifile_En.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_En.rc rename to dll/win32/avifil32/avifile_En.rc diff --git a/reactos/dll/win32/avifil32/avifile_Es.rc b/dll/win32/avifil32/avifile_Es.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Es.rc rename to dll/win32/avifil32/avifile_Es.rc diff --git a/reactos/dll/win32/avifil32/avifile_Fr.rc b/dll/win32/avifil32/avifile_Fr.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Fr.rc rename to dll/win32/avifil32/avifile_Fr.rc diff --git a/reactos/dll/win32/avifil32/avifile_Hu.rc b/dll/win32/avifil32/avifile_Hu.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Hu.rc rename to dll/win32/avifil32/avifile_Hu.rc diff --git a/reactos/dll/win32/avifil32/avifile_It.rc b/dll/win32/avifil32/avifile_It.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_It.rc rename to dll/win32/avifil32/avifile_It.rc diff --git a/reactos/dll/win32/avifil32/avifile_Ja.rc b/dll/win32/avifil32/avifile_Ja.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Ja.rc rename to dll/win32/avifil32/avifile_Ja.rc diff --git a/reactos/dll/win32/avifil32/avifile_Ko.rc b/dll/win32/avifil32/avifile_Ko.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Ko.rc rename to dll/win32/avifil32/avifile_Ko.rc diff --git a/reactos/dll/win32/avifil32/avifile_Lt.rc b/dll/win32/avifil32/avifile_Lt.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Lt.rc rename to dll/win32/avifil32/avifile_Lt.rc diff --git a/reactos/dll/win32/avifil32/avifile_Nl.rc b/dll/win32/avifil32/avifile_Nl.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Nl.rc rename to dll/win32/avifil32/avifile_Nl.rc diff --git a/reactos/dll/win32/avifil32/avifile_No.rc b/dll/win32/avifil32/avifile_No.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_No.rc rename to dll/win32/avifil32/avifile_No.rc diff --git a/reactos/dll/win32/avifil32/avifile_Pl.rc b/dll/win32/avifil32/avifile_Pl.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Pl.rc rename to dll/win32/avifil32/avifile_Pl.rc diff --git a/reactos/dll/win32/avifil32/avifile_Pt.rc b/dll/win32/avifil32/avifile_Pt.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Pt.rc rename to dll/win32/avifil32/avifile_Pt.rc diff --git a/reactos/dll/win32/avifil32/avifile_Ro.rc b/dll/win32/avifil32/avifile_Ro.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Ro.rc rename to dll/win32/avifil32/avifile_Ro.rc diff --git a/reactos/dll/win32/avifil32/avifile_Ru.rc b/dll/win32/avifil32/avifile_Ru.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Ru.rc rename to dll/win32/avifil32/avifile_Ru.rc diff --git a/reactos/dll/win32/avifil32/avifile_Si.rc b/dll/win32/avifil32/avifile_Si.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Si.rc rename to dll/win32/avifil32/avifile_Si.rc diff --git a/reactos/dll/win32/avifil32/avifile_Sv.rc b/dll/win32/avifil32/avifile_Sv.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Sv.rc rename to dll/win32/avifil32/avifile_Sv.rc diff --git a/reactos/dll/win32/avifil32/avifile_Tr.rc b/dll/win32/avifil32/avifile_Tr.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Tr.rc rename to dll/win32/avifil32/avifile_Tr.rc diff --git a/reactos/dll/win32/avifil32/avifile_Uk.rc b/dll/win32/avifil32/avifile_Uk.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Uk.rc rename to dll/win32/avifil32/avifile_Uk.rc diff --git a/reactos/dll/win32/avifil32/avifile_Zh.rc b/dll/win32/avifil32/avifile_Zh.rc similarity index 100% rename from reactos/dll/win32/avifil32/avifile_Zh.rc rename to dll/win32/avifil32/avifile_Zh.rc diff --git a/reactos/dll/win32/avifil32/avifile_private.h b/dll/win32/avifil32/avifile_private.h similarity index 100% rename from reactos/dll/win32/avifil32/avifile_private.h rename to dll/win32/avifil32/avifile_private.h diff --git a/reactos/dll/win32/avifil32/editstream.c b/dll/win32/avifil32/editstream.c similarity index 100% rename from reactos/dll/win32/avifil32/editstream.c rename to dll/win32/avifil32/editstream.c diff --git a/reactos/dll/win32/avifil32/extrachunk.c b/dll/win32/avifil32/extrachunk.c similarity index 100% rename from reactos/dll/win32/avifil32/extrachunk.c rename to dll/win32/avifil32/extrachunk.c diff --git a/reactos/dll/win32/avifil32/extrachunk.h b/dll/win32/avifil32/extrachunk.h similarity index 100% rename from reactos/dll/win32/avifil32/extrachunk.h rename to dll/win32/avifil32/extrachunk.h diff --git a/reactos/dll/win32/avifil32/factory.c b/dll/win32/avifil32/factory.c similarity index 100% rename from reactos/dll/win32/avifil32/factory.c rename to dll/win32/avifil32/factory.c diff --git a/reactos/dll/win32/avifil32/getframe.c b/dll/win32/avifil32/getframe.c similarity index 100% rename from reactos/dll/win32/avifil32/getframe.c rename to dll/win32/avifil32/getframe.c diff --git a/reactos/dll/win32/avifil32/icmstream.c b/dll/win32/avifil32/icmstream.c similarity index 100% rename from reactos/dll/win32/avifil32/icmstream.c rename to dll/win32/avifil32/icmstream.c diff --git a/reactos/dll/win32/avifil32/rsrc.rc b/dll/win32/avifil32/rsrc.rc similarity index 100% rename from reactos/dll/win32/avifil32/rsrc.rc rename to dll/win32/avifil32/rsrc.rc diff --git a/reactos/dll/win32/avifil32/tmpfile.c b/dll/win32/avifil32/tmpfile.c similarity index 100% rename from reactos/dll/win32/avifil32/tmpfile.c rename to dll/win32/avifil32/tmpfile.c diff --git a/reactos/dll/win32/avifil32/wavfile.c b/dll/win32/avifil32/wavfile.c similarity index 100% rename from reactos/dll/win32/avifil32/wavfile.c rename to dll/win32/avifil32/wavfile.c diff --git a/reactos/dll/win32/batt/CMakeLists.txt b/dll/win32/batt/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/batt/CMakeLists.txt rename to dll/win32/batt/CMakeLists.txt diff --git a/reactos/dll/win32/batt/batt.c b/dll/win32/batt/batt.c similarity index 100% rename from reactos/dll/win32/batt/batt.c rename to dll/win32/batt/batt.c diff --git a/reactos/dll/win32/batt/batt.rc b/dll/win32/batt/batt.rc similarity index 100% rename from reactos/dll/win32/batt/batt.rc rename to dll/win32/batt/batt.rc diff --git a/reactos/dll/win32/batt/batt.spec b/dll/win32/batt/batt.spec similarity index 100% rename from reactos/dll/win32/batt/batt.spec rename to dll/win32/batt/batt.spec diff --git a/reactos/dll/win32/batt/resource.h b/dll/win32/batt/resource.h similarity index 100% rename from reactos/dll/win32/batt/resource.h rename to dll/win32/batt/resource.h diff --git a/reactos/dll/win32/batt/resources/battery.ico b/dll/win32/batt/resources/battery.ico similarity index 100% rename from reactos/dll/win32/batt/resources/battery.ico rename to dll/win32/batt/resources/battery.ico diff --git a/reactos/dll/win32/bcrypt/CMakeLists.txt b/dll/win32/bcrypt/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/bcrypt/CMakeLists.txt rename to dll/win32/bcrypt/CMakeLists.txt diff --git a/reactos/dll/win32/bcrypt/bcrypt.spec b/dll/win32/bcrypt/bcrypt.spec similarity index 100% rename from reactos/dll/win32/bcrypt/bcrypt.spec rename to dll/win32/bcrypt/bcrypt.spec diff --git a/reactos/dll/win32/bcrypt/bcrypt_main.c b/dll/win32/bcrypt/bcrypt_main.c similarity index 100% rename from reactos/dll/win32/bcrypt/bcrypt_main.c rename to dll/win32/bcrypt/bcrypt_main.c diff --git a/reactos/dll/win32/bcrypt/version.rc b/dll/win32/bcrypt/version.rc similarity index 100% rename from reactos/dll/win32/bcrypt/version.rc rename to dll/win32/bcrypt/version.rc diff --git a/reactos/dll/win32/beepmidi/CMakeLists.txt b/dll/win32/beepmidi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/beepmidi/CMakeLists.txt rename to dll/win32/beepmidi/CMakeLists.txt diff --git a/reactos/dll/win32/beepmidi/beepmidi.c b/dll/win32/beepmidi/beepmidi.c similarity index 100% rename from reactos/dll/win32/beepmidi/beepmidi.c rename to dll/win32/beepmidi/beepmidi.c diff --git a/reactos/dll/win32/beepmidi/beepmidi.spec b/dll/win32/beepmidi/beepmidi.spec similarity index 100% rename from reactos/dll/win32/beepmidi/beepmidi.spec rename to dll/win32/beepmidi/beepmidi.spec diff --git a/reactos/dll/win32/beepmidi/readme.txt b/dll/win32/beepmidi/readme.txt similarity index 100% rename from reactos/dll/win32/beepmidi/readme.txt rename to dll/win32/beepmidi/readme.txt diff --git a/reactos/dll/win32/browseui/CMakeLists.txt b/dll/win32/browseui/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/browseui/CMakeLists.txt rename to dll/win32/browseui/CMakeLists.txt diff --git a/reactos/dll/win32/browseui/aclmulti.cpp b/dll/win32/browseui/aclmulti.cpp similarity index 100% rename from reactos/dll/win32/browseui/aclmulti.cpp rename to dll/win32/browseui/aclmulti.cpp diff --git a/reactos/dll/win32/browseui/aclmulti.h b/dll/win32/browseui/aclmulti.h similarity index 100% rename from reactos/dll/win32/browseui/aclmulti.h rename to dll/win32/browseui/aclmulti.h diff --git a/reactos/dll/win32/browseui/addressband.cpp b/dll/win32/browseui/addressband.cpp similarity index 100% rename from reactos/dll/win32/browseui/addressband.cpp rename to dll/win32/browseui/addressband.cpp diff --git a/reactos/dll/win32/browseui/addressband.h b/dll/win32/browseui/addressband.h similarity index 100% rename from reactos/dll/win32/browseui/addressband.h rename to dll/win32/browseui/addressband.h diff --git a/reactos/dll/win32/browseui/addresseditbox.cpp b/dll/win32/browseui/addresseditbox.cpp similarity index 100% rename from reactos/dll/win32/browseui/addresseditbox.cpp rename to dll/win32/browseui/addresseditbox.cpp diff --git a/reactos/dll/win32/browseui/addresseditbox.h b/dll/win32/browseui/addresseditbox.h similarity index 100% rename from reactos/dll/win32/browseui/addresseditbox.h rename to dll/win32/browseui/addresseditbox.h diff --git a/reactos/dll/win32/browseui/bandproxy.cpp b/dll/win32/browseui/bandproxy.cpp similarity index 100% rename from reactos/dll/win32/browseui/bandproxy.cpp rename to dll/win32/browseui/bandproxy.cpp diff --git a/reactos/dll/win32/browseui/bandproxy.h b/dll/win32/browseui/bandproxy.h similarity index 100% rename from reactos/dll/win32/browseui/bandproxy.h rename to dll/win32/browseui/bandproxy.h diff --git a/reactos/dll/win32/browseui/bandsite.cpp b/dll/win32/browseui/bandsite.cpp similarity index 100% rename from reactos/dll/win32/browseui/bandsite.cpp rename to dll/win32/browseui/bandsite.cpp diff --git a/reactos/dll/win32/browseui/bandsite.h b/dll/win32/browseui/bandsite.h similarity index 100% rename from reactos/dll/win32/browseui/bandsite.h rename to dll/win32/browseui/bandsite.h diff --git a/reactos/dll/win32/browseui/bandsitemenu.cpp b/dll/win32/browseui/bandsitemenu.cpp similarity index 100% rename from reactos/dll/win32/browseui/bandsitemenu.cpp rename to dll/win32/browseui/bandsitemenu.cpp diff --git a/reactos/dll/win32/browseui/bandsitemenu.h b/dll/win32/browseui/bandsitemenu.h similarity index 100% rename from reactos/dll/win32/browseui/bandsitemenu.h rename to dll/win32/browseui/bandsitemenu.h diff --git a/reactos/dll/win32/browseui/basebar.cpp b/dll/win32/browseui/basebar.cpp similarity index 100% rename from reactos/dll/win32/browseui/basebar.cpp rename to dll/win32/browseui/basebar.cpp diff --git a/reactos/dll/win32/browseui/basebarsite.cpp b/dll/win32/browseui/basebarsite.cpp similarity index 100% rename from reactos/dll/win32/browseui/basebarsite.cpp rename to dll/win32/browseui/basebarsite.cpp diff --git a/reactos/dll/win32/browseui/brandband.cpp b/dll/win32/browseui/brandband.cpp similarity index 100% rename from reactos/dll/win32/browseui/brandband.cpp rename to dll/win32/browseui/brandband.cpp diff --git a/reactos/dll/win32/browseui/brandband.h b/dll/win32/browseui/brandband.h similarity index 100% rename from reactos/dll/win32/browseui/brandband.h rename to dll/win32/browseui/brandband.h diff --git a/reactos/dll/win32/browseui/browseui.cpp b/dll/win32/browseui/browseui.cpp similarity index 100% rename from reactos/dll/win32/browseui/browseui.cpp rename to dll/win32/browseui/browseui.cpp diff --git a/reactos/dll/win32/browseui/browseui.rc b/dll/win32/browseui/browseui.rc similarity index 100% rename from reactos/dll/win32/browseui/browseui.rc rename to dll/win32/browseui/browseui.rc diff --git a/reactos/dll/win32/browseui/browseui.spec b/dll/win32/browseui/browseui.spec similarity index 100% rename from reactos/dll/win32/browseui/browseui.spec rename to dll/win32/browseui/browseui.spec diff --git a/reactos/dll/win32/browseui/browseuiord.cpp b/dll/win32/browseui/browseuiord.cpp similarity index 100% rename from reactos/dll/win32/browseui/browseuiord.cpp rename to dll/win32/browseui/browseuiord.cpp diff --git a/reactos/dll/win32/browseui/commonbrowser.cpp b/dll/win32/browseui/commonbrowser.cpp similarity index 100% rename from reactos/dll/win32/browseui/commonbrowser.cpp rename to dll/win32/browseui/commonbrowser.cpp diff --git a/reactos/dll/win32/browseui/commonbrowser.h b/dll/win32/browseui/commonbrowser.h similarity index 100% rename from reactos/dll/win32/browseui/commonbrowser.h rename to dll/win32/browseui/commonbrowser.h diff --git a/reactos/dll/win32/browseui/dllinstall.c b/dll/win32/browseui/dllinstall.c similarity index 100% rename from reactos/dll/win32/browseui/dllinstall.c rename to dll/win32/browseui/dllinstall.c diff --git a/reactos/dll/win32/browseui/globalfoldersettings.cpp b/dll/win32/browseui/globalfoldersettings.cpp similarity index 100% rename from reactos/dll/win32/browseui/globalfoldersettings.cpp rename to dll/win32/browseui/globalfoldersettings.cpp diff --git a/reactos/dll/win32/browseui/globalfoldersettings.h b/dll/win32/browseui/globalfoldersettings.h similarity index 100% rename from reactos/dll/win32/browseui/globalfoldersettings.h rename to dll/win32/browseui/globalfoldersettings.h diff --git a/reactos/dll/win32/browseui/internettoolbar.cpp b/dll/win32/browseui/internettoolbar.cpp similarity index 100% rename from reactos/dll/win32/browseui/internettoolbar.cpp rename to dll/win32/browseui/internettoolbar.cpp diff --git a/reactos/dll/win32/browseui/internettoolbar.h b/dll/win32/browseui/internettoolbar.h similarity index 100% rename from reactos/dll/win32/browseui/internettoolbar.h rename to dll/win32/browseui/internettoolbar.h diff --git a/reactos/dll/win32/browseui/lang/bg-BG.rc b/dll/win32/browseui/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/browseui/lang/bg-BG.rc rename to dll/win32/browseui/lang/bg-BG.rc diff --git a/reactos/dll/win32/browseui/lang/en-US.rc b/dll/win32/browseui/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/browseui/lang/en-US.rc rename to dll/win32/browseui/lang/en-US.rc diff --git a/reactos/dll/win32/browseui/lang/es-ES.rc b/dll/win32/browseui/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/browseui/lang/es-ES.rc rename to dll/win32/browseui/lang/es-ES.rc diff --git a/reactos/dll/win32/browseui/lang/it-IT.rc b/dll/win32/browseui/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/browseui/lang/it-IT.rc rename to dll/win32/browseui/lang/it-IT.rc diff --git a/reactos/dll/win32/browseui/lang/pl-PL.rc b/dll/win32/browseui/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/browseui/lang/pl-PL.rc rename to dll/win32/browseui/lang/pl-PL.rc diff --git a/reactos/dll/win32/browseui/lang/ro-RO.rc b/dll/win32/browseui/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/browseui/lang/ro-RO.rc rename to dll/win32/browseui/lang/ro-RO.rc diff --git a/reactos/dll/win32/browseui/lang/tr-TR.rc b/dll/win32/browseui/lang/tr-TR.rc similarity index 100% rename from reactos/dll/win32/browseui/lang/tr-TR.rc rename to dll/win32/browseui/lang/tr-TR.rc diff --git a/reactos/dll/win32/browseui/lang/uk-UA.rc b/dll/win32/browseui/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/browseui/lang/uk-UA.rc rename to dll/win32/browseui/lang/uk-UA.rc diff --git a/reactos/dll/win32/browseui/newatlinterfaces.h b/dll/win32/browseui/newatlinterfaces.h similarity index 100% rename from reactos/dll/win32/browseui/newatlinterfaces.h rename to dll/win32/browseui/newatlinterfaces.h diff --git a/reactos/dll/win32/browseui/precomp.h b/dll/win32/browseui/precomp.h similarity index 100% rename from reactos/dll/win32/browseui/precomp.h rename to dll/win32/browseui/precomp.h diff --git a/reactos/dll/win32/browseui/regtreeoptions.cpp b/dll/win32/browseui/regtreeoptions.cpp similarity index 100% rename from reactos/dll/win32/browseui/regtreeoptions.cpp rename to dll/win32/browseui/regtreeoptions.cpp diff --git a/reactos/dll/win32/browseui/regtreeoptions.h b/dll/win32/browseui/regtreeoptions.h similarity index 100% rename from reactos/dll/win32/browseui/regtreeoptions.h rename to dll/win32/browseui/regtreeoptions.h diff --git a/reactos/dll/win32/browseui/res/addressband.rgs b/dll/win32/browseui/res/addressband.rgs similarity index 100% rename from reactos/dll/win32/browseui/res/addressband.rgs rename to dll/win32/browseui/res/addressband.rgs diff --git a/reactos/dll/win32/browseui/res/addresseditbox.rgs b/dll/win32/browseui/res/addresseditbox.rgs similarity index 100% rename from reactos/dll/win32/browseui/res/addresseditbox.rgs rename to dll/win32/browseui/res/addresseditbox.rgs diff --git a/reactos/dll/win32/browseui/res/autocompletecontainer.rgs b/dll/win32/browseui/res/autocompletecontainer.rgs similarity index 100% rename from reactos/dll/win32/browseui/res/autocompletecontainer.rgs rename to dll/win32/browseui/res/autocompletecontainer.rgs diff --git a/reactos/dll/win32/browseui/res/bandproxy.rgs b/dll/win32/browseui/res/bandproxy.rgs similarity index 100% rename from reactos/dll/win32/browseui/res/bandproxy.rgs rename to dll/win32/browseui/res/bandproxy.rgs diff --git a/reactos/dll/win32/browseui/res/bandsitemenu.rgs b/dll/win32/browseui/res/bandsitemenu.rgs similarity index 100% rename from reactos/dll/win32/browseui/res/bandsitemenu.rgs rename to dll/win32/browseui/res/bandsitemenu.rgs diff --git a/reactos/dll/win32/browseui/res/brandband.rgs b/dll/win32/browseui/res/brandband.rgs similarity index 100% rename from reactos/dll/win32/browseui/res/brandband.rgs rename to dll/win32/browseui/res/brandband.rgs diff --git a/reactos/dll/win32/browseui/res/commonbrowser.rgs b/dll/win32/browseui/res/commonbrowser.rgs similarity index 100% rename from reactos/dll/win32/browseui/res/commonbrowser.rgs rename to dll/win32/browseui/res/commonbrowser.rgs diff --git a/reactos/dll/win32/browseui/res/globalfoldersettings.rgs b/dll/win32/browseui/res/globalfoldersettings.rgs similarity index 100% rename from reactos/dll/win32/browseui/res/globalfoldersettings.rgs rename to dll/win32/browseui/res/globalfoldersettings.rgs diff --git a/reactos/dll/win32/browseui/res/internettoolbar.rgs b/dll/win32/browseui/res/internettoolbar.rgs similarity index 100% rename from reactos/dll/win32/browseui/res/internettoolbar.rgs rename to dll/win32/browseui/res/internettoolbar.rgs diff --git a/reactos/dll/win32/browseui/res/rebarbandsite.rgs b/dll/win32/browseui/res/rebarbandsite.rgs similarity index 100% rename from reactos/dll/win32/browseui/res/rebarbandsite.rgs rename to dll/win32/browseui/res/rebarbandsite.rgs diff --git a/reactos/dll/win32/browseui/res/regtreeoptions.rgs b/dll/win32/browseui/res/regtreeoptions.rgs similarity index 100% rename from reactos/dll/win32/browseui/res/regtreeoptions.rgs rename to dll/win32/browseui/res/regtreeoptions.rgs diff --git a/reactos/dll/win32/browseui/resource.h b/dll/win32/browseui/resource.h similarity index 100% rename from reactos/dll/win32/browseui/resource.h rename to dll/win32/browseui/resource.h diff --git a/reactos/dll/win32/browseui/shellbrowser.cpp b/dll/win32/browseui/shellbrowser.cpp similarity index 100% rename from reactos/dll/win32/browseui/shellbrowser.cpp rename to dll/win32/browseui/shellbrowser.cpp diff --git a/reactos/dll/win32/browseui/toolsband.cpp b/dll/win32/browseui/toolsband.cpp similarity index 100% rename from reactos/dll/win32/browseui/toolsband.cpp rename to dll/win32/browseui/toolsband.cpp diff --git a/reactos/dll/win32/browseui/travellog.cpp b/dll/win32/browseui/travellog.cpp similarity index 100% rename from reactos/dll/win32/browseui/travellog.cpp rename to dll/win32/browseui/travellog.cpp diff --git a/reactos/dll/win32/browseui/utility.cpp b/dll/win32/browseui/utility.cpp similarity index 100% rename from reactos/dll/win32/browseui/utility.cpp rename to dll/win32/browseui/utility.cpp diff --git a/reactos/dll/win32/browseui/utility.h b/dll/win32/browseui/utility.h similarity index 100% rename from reactos/dll/win32/browseui/utility.h rename to dll/win32/browseui/utility.h diff --git a/reactos/dll/win32/browseui/version.rc b/dll/win32/browseui/version.rc similarity index 100% rename from reactos/dll/win32/browseui/version.rc rename to dll/win32/browseui/version.rc diff --git a/reactos/dll/win32/cabinet/CMakeLists.txt b/dll/win32/cabinet/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/cabinet/CMakeLists.txt rename to dll/win32/cabinet/CMakeLists.txt diff --git a/reactos/dll/win32/cabinet/cabinet.h b/dll/win32/cabinet/cabinet.h similarity index 100% rename from reactos/dll/win32/cabinet/cabinet.h rename to dll/win32/cabinet/cabinet.h diff --git a/reactos/dll/win32/cabinet/cabinet.rc b/dll/win32/cabinet/cabinet.rc similarity index 100% rename from reactos/dll/win32/cabinet/cabinet.rc rename to dll/win32/cabinet/cabinet.rc diff --git a/reactos/dll/win32/cabinet/cabinet.spec b/dll/win32/cabinet/cabinet.spec similarity index 100% rename from reactos/dll/win32/cabinet/cabinet.spec rename to dll/win32/cabinet/cabinet.spec diff --git a/reactos/dll/win32/cabinet/cabinet_main.c b/dll/win32/cabinet/cabinet_main.c similarity index 100% rename from reactos/dll/win32/cabinet/cabinet_main.c rename to dll/win32/cabinet/cabinet_main.c diff --git a/reactos/dll/win32/cabinet/fci.c b/dll/win32/cabinet/fci.c similarity index 100% rename from reactos/dll/win32/cabinet/fci.c rename to dll/win32/cabinet/fci.c diff --git a/reactos/dll/win32/cabinet/fdi.c b/dll/win32/cabinet/fdi.c similarity index 100% rename from reactos/dll/win32/cabinet/fdi.c rename to dll/win32/cabinet/fdi.c diff --git a/reactos/dll/win32/cabinet/stubs.c b/dll/win32/cabinet/stubs.c similarity index 100% rename from reactos/dll/win32/cabinet/stubs.c rename to dll/win32/cabinet/stubs.c diff --git a/reactos/dll/win32/cards/CMakeLists.txt b/dll/win32/cards/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/cards/CMakeLists.txt rename to dll/win32/cards/CMakeLists.txt diff --git a/reactos/dll/win32/cards/cards.c b/dll/win32/cards/cards.c similarity index 100% rename from reactos/dll/win32/cards/cards.c rename to dll/win32/cards/cards.c diff --git a/reactos/dll/win32/cards/cards.h b/dll/win32/cards/cards.h similarity index 100% rename from reactos/dll/win32/cards/cards.h rename to dll/win32/cards/cards.h diff --git a/reactos/dll/win32/cards/cards.rc b/dll/win32/cards/cards.rc similarity index 100% rename from reactos/dll/win32/cards/cards.rc rename to dll/win32/cards/cards.rc diff --git a/reactos/dll/win32/cards/cards.spec b/dll/win32/cards/cards.spec similarity index 100% rename from reactos/dll/win32/cards/cards.spec rename to dll/win32/cards/cards.spec diff --git a/reactos/dll/win32/cards/res/bavarian/Eichel10.bmp b/dll/win32/cards/res/bavarian/Eichel10.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Eichel10.bmp rename to dll/win32/cards/res/bavarian/Eichel10.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Eichel2.bmp b/dll/win32/cards/res/bavarian/Eichel2.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Eichel2.bmp rename to dll/win32/cards/res/bavarian/Eichel2.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Eichel3.bmp b/dll/win32/cards/res/bavarian/Eichel3.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Eichel3.bmp rename to dll/win32/cards/res/bavarian/Eichel3.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Eichel4.bmp b/dll/win32/cards/res/bavarian/Eichel4.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Eichel4.bmp rename to dll/win32/cards/res/bavarian/Eichel4.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Eichel5.bmp b/dll/win32/cards/res/bavarian/Eichel5.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Eichel5.bmp rename to dll/win32/cards/res/bavarian/Eichel5.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Eichel6.bmp b/dll/win32/cards/res/bavarian/Eichel6.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Eichel6.bmp rename to dll/win32/cards/res/bavarian/Eichel6.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Eichel7.bmp b/dll/win32/cards/res/bavarian/Eichel7.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Eichel7.bmp rename to dll/win32/cards/res/bavarian/Eichel7.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Eichel8.bmp b/dll/win32/cards/res/bavarian/Eichel8.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Eichel8.bmp rename to dll/win32/cards/res/bavarian/Eichel8.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Eichel9.bmp b/dll/win32/cards/res/bavarian/Eichel9.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Eichel9.bmp rename to dll/win32/cards/res/bavarian/Eichel9.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/EichelAs.bmp b/dll/win32/cards/res/bavarian/EichelAs.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/EichelAs.bmp rename to dll/win32/cards/res/bavarian/EichelAs.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/EichelKoenig.bmp b/dll/win32/cards/res/bavarian/EichelKoenig.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/EichelKoenig.bmp rename to dll/win32/cards/res/bavarian/EichelKoenig.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/EichelOber.bmp b/dll/win32/cards/res/bavarian/EichelOber.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/EichelOber.bmp rename to dll/win32/cards/res/bavarian/EichelOber.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/EichelUnter.bmp b/dll/win32/cards/res/bavarian/EichelUnter.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/EichelUnter.bmp rename to dll/win32/cards/res/bavarian/EichelUnter.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/FreeCard.bmp b/dll/win32/cards/res/bavarian/FreeCard.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/FreeCard.bmp rename to dll/win32/cards/res/bavarian/FreeCard.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Gras10.bmp b/dll/win32/cards/res/bavarian/Gras10.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Gras10.bmp rename to dll/win32/cards/res/bavarian/Gras10.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Gras2.bmp b/dll/win32/cards/res/bavarian/Gras2.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Gras2.bmp rename to dll/win32/cards/res/bavarian/Gras2.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Gras3.bmp b/dll/win32/cards/res/bavarian/Gras3.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Gras3.bmp rename to dll/win32/cards/res/bavarian/Gras3.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Gras4.bmp b/dll/win32/cards/res/bavarian/Gras4.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Gras4.bmp rename to dll/win32/cards/res/bavarian/Gras4.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Gras5.bmp b/dll/win32/cards/res/bavarian/Gras5.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Gras5.bmp rename to dll/win32/cards/res/bavarian/Gras5.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Gras6.bmp b/dll/win32/cards/res/bavarian/Gras6.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Gras6.bmp rename to dll/win32/cards/res/bavarian/Gras6.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Gras7.bmp b/dll/win32/cards/res/bavarian/Gras7.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Gras7.bmp rename to dll/win32/cards/res/bavarian/Gras7.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Gras8.bmp b/dll/win32/cards/res/bavarian/Gras8.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Gras8.bmp rename to dll/win32/cards/res/bavarian/Gras8.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Gras9.bmp b/dll/win32/cards/res/bavarian/Gras9.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Gras9.bmp rename to dll/win32/cards/res/bavarian/Gras9.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/GrasAs.bmp b/dll/win32/cards/res/bavarian/GrasAs.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/GrasAs.bmp rename to dll/win32/cards/res/bavarian/GrasAs.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/GrasKoenig.bmp b/dll/win32/cards/res/bavarian/GrasKoenig.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/GrasKoenig.bmp rename to dll/win32/cards/res/bavarian/GrasKoenig.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/GrasOber.bmp b/dll/win32/cards/res/bavarian/GrasOber.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/GrasOber.bmp rename to dll/win32/cards/res/bavarian/GrasOber.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/GrasUnter.bmp b/dll/win32/cards/res/bavarian/GrasUnter.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/GrasUnter.bmp rename to dll/win32/cards/res/bavarian/GrasUnter.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Herz10.bmp b/dll/win32/cards/res/bavarian/Herz10.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Herz10.bmp rename to dll/win32/cards/res/bavarian/Herz10.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Herz2.bmp b/dll/win32/cards/res/bavarian/Herz2.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Herz2.bmp rename to dll/win32/cards/res/bavarian/Herz2.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Herz3.bmp b/dll/win32/cards/res/bavarian/Herz3.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Herz3.bmp rename to dll/win32/cards/res/bavarian/Herz3.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Herz4.bmp b/dll/win32/cards/res/bavarian/Herz4.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Herz4.bmp rename to dll/win32/cards/res/bavarian/Herz4.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Herz5.bmp b/dll/win32/cards/res/bavarian/Herz5.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Herz5.bmp rename to dll/win32/cards/res/bavarian/Herz5.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Herz6.bmp b/dll/win32/cards/res/bavarian/Herz6.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Herz6.bmp rename to dll/win32/cards/res/bavarian/Herz6.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Herz7.bmp b/dll/win32/cards/res/bavarian/Herz7.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Herz7.bmp rename to dll/win32/cards/res/bavarian/Herz7.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Herz8.bmp b/dll/win32/cards/res/bavarian/Herz8.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Herz8.bmp rename to dll/win32/cards/res/bavarian/Herz8.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Herz9.bmp b/dll/win32/cards/res/bavarian/Herz9.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Herz9.bmp rename to dll/win32/cards/res/bavarian/Herz9.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/HerzAs.bmp b/dll/win32/cards/res/bavarian/HerzAs.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/HerzAs.bmp rename to dll/win32/cards/res/bavarian/HerzAs.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/HerzKoenig.bmp b/dll/win32/cards/res/bavarian/HerzKoenig.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/HerzKoenig.bmp rename to dll/win32/cards/res/bavarian/HerzKoenig.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/HerzOber.bmp b/dll/win32/cards/res/bavarian/HerzOber.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/HerzOber.bmp rename to dll/win32/cards/res/bavarian/HerzOber.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/HerzUnter.bmp b/dll/win32/cards/res/bavarian/HerzUnter.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/HerzUnter.bmp rename to dll/win32/cards/res/bavarian/HerzUnter.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Joker.bmp b/dll/win32/cards/res/bavarian/Joker.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Joker.bmp rename to dll/win32/cards/res/bavarian/Joker.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/OSign.bmp b/dll/win32/cards/res/bavarian/OSign.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/OSign.bmp rename to dll/win32/cards/res/bavarian/OSign.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken1.bmp b/dll/win32/cards/res/bavarian/Ruecken1.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken1.bmp rename to dll/win32/cards/res/bavarian/Ruecken1.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken10.bmp b/dll/win32/cards/res/bavarian/Ruecken10.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken10.bmp rename to dll/win32/cards/res/bavarian/Ruecken10.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken11.bmp b/dll/win32/cards/res/bavarian/Ruecken11.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken11.bmp rename to dll/win32/cards/res/bavarian/Ruecken11.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken12.bmp b/dll/win32/cards/res/bavarian/Ruecken12.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken12.bmp rename to dll/win32/cards/res/bavarian/Ruecken12.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken2.bmp b/dll/win32/cards/res/bavarian/Ruecken2.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken2.bmp rename to dll/win32/cards/res/bavarian/Ruecken2.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken3.bmp b/dll/win32/cards/res/bavarian/Ruecken3.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken3.bmp rename to dll/win32/cards/res/bavarian/Ruecken3.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken4.bmp b/dll/win32/cards/res/bavarian/Ruecken4.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken4.bmp rename to dll/win32/cards/res/bavarian/Ruecken4.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken5.bmp b/dll/win32/cards/res/bavarian/Ruecken5.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken5.bmp rename to dll/win32/cards/res/bavarian/Ruecken5.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken6.bmp b/dll/win32/cards/res/bavarian/Ruecken6.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken6.bmp rename to dll/win32/cards/res/bavarian/Ruecken6.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken7.bmp b/dll/win32/cards/res/bavarian/Ruecken7.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken7.bmp rename to dll/win32/cards/res/bavarian/Ruecken7.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken8.bmp b/dll/win32/cards/res/bavarian/Ruecken8.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken8.bmp rename to dll/win32/cards/res/bavarian/Ruecken8.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Ruecken9.bmp b/dll/win32/cards/res/bavarian/Ruecken9.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Ruecken9.bmp rename to dll/win32/cards/res/bavarian/Ruecken9.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Schellen10.bmp b/dll/win32/cards/res/bavarian/Schellen10.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Schellen10.bmp rename to dll/win32/cards/res/bavarian/Schellen10.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Schellen2.bmp b/dll/win32/cards/res/bavarian/Schellen2.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Schellen2.bmp rename to dll/win32/cards/res/bavarian/Schellen2.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Schellen3.bmp b/dll/win32/cards/res/bavarian/Schellen3.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Schellen3.bmp rename to dll/win32/cards/res/bavarian/Schellen3.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Schellen4.bmp b/dll/win32/cards/res/bavarian/Schellen4.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Schellen4.bmp rename to dll/win32/cards/res/bavarian/Schellen4.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Schellen5.bmp b/dll/win32/cards/res/bavarian/Schellen5.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Schellen5.bmp rename to dll/win32/cards/res/bavarian/Schellen5.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Schellen6.bmp b/dll/win32/cards/res/bavarian/Schellen6.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Schellen6.bmp rename to dll/win32/cards/res/bavarian/Schellen6.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Schellen7.bmp b/dll/win32/cards/res/bavarian/Schellen7.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Schellen7.bmp rename to dll/win32/cards/res/bavarian/Schellen7.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Schellen8.bmp b/dll/win32/cards/res/bavarian/Schellen8.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Schellen8.bmp rename to dll/win32/cards/res/bavarian/Schellen8.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/Schellen9.bmp b/dll/win32/cards/res/bavarian/Schellen9.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/Schellen9.bmp rename to dll/win32/cards/res/bavarian/Schellen9.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/SchellenAs.bmp b/dll/win32/cards/res/bavarian/SchellenAs.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/SchellenAs.bmp rename to dll/win32/cards/res/bavarian/SchellenAs.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/SchellenKoenig.bmp b/dll/win32/cards/res/bavarian/SchellenKoenig.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/SchellenKoenig.bmp rename to dll/win32/cards/res/bavarian/SchellenKoenig.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/SchellenOber.bmp b/dll/win32/cards/res/bavarian/SchellenOber.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/SchellenOber.bmp rename to dll/win32/cards/res/bavarian/SchellenOber.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/SchellenUnter.bmp b/dll/win32/cards/res/bavarian/SchellenUnter.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/SchellenUnter.bmp rename to dll/win32/cards/res/bavarian/SchellenUnter.bmp diff --git a/reactos/dll/win32/cards/res/bavarian/XSign.bmp b/dll/win32/cards/res/bavarian/XSign.bmp similarity index 100% rename from reactos/dll/win32/cards/res/bavarian/XSign.bmp rename to dll/win32/cards/res/bavarian/XSign.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_1.bmp b/dll/win32/cards/res/default/Background_1.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_1.bmp rename to dll/win32/cards/res/default/Background_1.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_10.bmp b/dll/win32/cards/res/default/Background_10.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_10.bmp rename to dll/win32/cards/res/default/Background_10.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_11.bmp b/dll/win32/cards/res/default/Background_11.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_11.bmp rename to dll/win32/cards/res/default/Background_11.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_12.bmp b/dll/win32/cards/res/default/Background_12.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_12.bmp rename to dll/win32/cards/res/default/Background_12.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_2.bmp b/dll/win32/cards/res/default/Background_2.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_2.bmp rename to dll/win32/cards/res/default/Background_2.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_3.bmp b/dll/win32/cards/res/default/Background_3.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_3.bmp rename to dll/win32/cards/res/default/Background_3.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_4.bmp b/dll/win32/cards/res/default/Background_4.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_4.bmp rename to dll/win32/cards/res/default/Background_4.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_5.bmp b/dll/win32/cards/res/default/Background_5.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_5.bmp rename to dll/win32/cards/res/default/Background_5.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_6.bmp b/dll/win32/cards/res/default/Background_6.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_6.bmp rename to dll/win32/cards/res/default/Background_6.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_7.bmp b/dll/win32/cards/res/default/Background_7.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_7.bmp rename to dll/win32/cards/res/default/Background_7.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_8.bmp b/dll/win32/cards/res/default/Background_8.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_8.bmp rename to dll/win32/cards/res/default/Background_8.bmp diff --git a/reactos/dll/win32/cards/res/default/Background_9.bmp b/dll/win32/cards/res/default/Background_9.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Background_9.bmp rename to dll/win32/cards/res/default/Background_9.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Ace.bmp b/dll/win32/cards/res/default/Clubs_Ace.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Ace.bmp rename to dll/win32/cards/res/default/Clubs_Ace.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Eight.bmp b/dll/win32/cards/res/default/Clubs_Eight.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Eight.bmp rename to dll/win32/cards/res/default/Clubs_Eight.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Five.bmp b/dll/win32/cards/res/default/Clubs_Five.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Five.bmp rename to dll/win32/cards/res/default/Clubs_Five.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Four.bmp b/dll/win32/cards/res/default/Clubs_Four.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Four.bmp rename to dll/win32/cards/res/default/Clubs_Four.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Jack.bmp b/dll/win32/cards/res/default/Clubs_Jack.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Jack.bmp rename to dll/win32/cards/res/default/Clubs_Jack.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_King.bmp b/dll/win32/cards/res/default/Clubs_King.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_King.bmp rename to dll/win32/cards/res/default/Clubs_King.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Nine.bmp b/dll/win32/cards/res/default/Clubs_Nine.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Nine.bmp rename to dll/win32/cards/res/default/Clubs_Nine.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Queen.bmp b/dll/win32/cards/res/default/Clubs_Queen.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Queen.bmp rename to dll/win32/cards/res/default/Clubs_Queen.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Seven.bmp b/dll/win32/cards/res/default/Clubs_Seven.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Seven.bmp rename to dll/win32/cards/res/default/Clubs_Seven.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Six.bmp b/dll/win32/cards/res/default/Clubs_Six.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Six.bmp rename to dll/win32/cards/res/default/Clubs_Six.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Ten.bmp b/dll/win32/cards/res/default/Clubs_Ten.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Ten.bmp rename to dll/win32/cards/res/default/Clubs_Ten.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Three.bmp b/dll/win32/cards/res/default/Clubs_Three.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Three.bmp rename to dll/win32/cards/res/default/Clubs_Three.bmp diff --git a/reactos/dll/win32/cards/res/default/Clubs_Two.bmp b/dll/win32/cards/res/default/Clubs_Two.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Clubs_Two.bmp rename to dll/win32/cards/res/default/Clubs_Two.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Ace.bmp b/dll/win32/cards/res/default/Diamonds_Ace.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Ace.bmp rename to dll/win32/cards/res/default/Diamonds_Ace.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Eight.bmp b/dll/win32/cards/res/default/Diamonds_Eight.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Eight.bmp rename to dll/win32/cards/res/default/Diamonds_Eight.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Five.bmp b/dll/win32/cards/res/default/Diamonds_Five.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Five.bmp rename to dll/win32/cards/res/default/Diamonds_Five.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Four.bmp b/dll/win32/cards/res/default/Diamonds_Four.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Four.bmp rename to dll/win32/cards/res/default/Diamonds_Four.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Jack.bmp b/dll/win32/cards/res/default/Diamonds_Jack.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Jack.bmp rename to dll/win32/cards/res/default/Diamonds_Jack.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_King.bmp b/dll/win32/cards/res/default/Diamonds_King.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_King.bmp rename to dll/win32/cards/res/default/Diamonds_King.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Nine.bmp b/dll/win32/cards/res/default/Diamonds_Nine.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Nine.bmp rename to dll/win32/cards/res/default/Diamonds_Nine.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Queen.bmp b/dll/win32/cards/res/default/Diamonds_Queen.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Queen.bmp rename to dll/win32/cards/res/default/Diamonds_Queen.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Seven.bmp b/dll/win32/cards/res/default/Diamonds_Seven.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Seven.bmp rename to dll/win32/cards/res/default/Diamonds_Seven.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Six.bmp b/dll/win32/cards/res/default/Diamonds_Six.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Six.bmp rename to dll/win32/cards/res/default/Diamonds_Six.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Ten.bmp b/dll/win32/cards/res/default/Diamonds_Ten.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Ten.bmp rename to dll/win32/cards/res/default/Diamonds_Ten.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Three.bmp b/dll/win32/cards/res/default/Diamonds_Three.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Three.bmp rename to dll/win32/cards/res/default/Diamonds_Three.bmp diff --git a/reactos/dll/win32/cards/res/default/Diamonds_Two.bmp b/dll/win32/cards/res/default/Diamonds_Two.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Diamonds_Two.bmp rename to dll/win32/cards/res/default/Diamonds_Two.bmp diff --git a/reactos/dll/win32/cards/res/default/FreeCard.bmp b/dll/win32/cards/res/default/FreeCard.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/FreeCard.bmp rename to dll/win32/cards/res/default/FreeCard.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Ace.bmp b/dll/win32/cards/res/default/Hearts_Ace.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Ace.bmp rename to dll/win32/cards/res/default/Hearts_Ace.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Eight.bmp b/dll/win32/cards/res/default/Hearts_Eight.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Eight.bmp rename to dll/win32/cards/res/default/Hearts_Eight.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Five.bmp b/dll/win32/cards/res/default/Hearts_Five.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Five.bmp rename to dll/win32/cards/res/default/Hearts_Five.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Four.bmp b/dll/win32/cards/res/default/Hearts_Four.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Four.bmp rename to dll/win32/cards/res/default/Hearts_Four.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Jack.bmp b/dll/win32/cards/res/default/Hearts_Jack.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Jack.bmp rename to dll/win32/cards/res/default/Hearts_Jack.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_King.bmp b/dll/win32/cards/res/default/Hearts_King.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_King.bmp rename to dll/win32/cards/res/default/Hearts_King.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Nine.bmp b/dll/win32/cards/res/default/Hearts_Nine.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Nine.bmp rename to dll/win32/cards/res/default/Hearts_Nine.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Queen.bmp b/dll/win32/cards/res/default/Hearts_Queen.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Queen.bmp rename to dll/win32/cards/res/default/Hearts_Queen.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Seven.bmp b/dll/win32/cards/res/default/Hearts_Seven.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Seven.bmp rename to dll/win32/cards/res/default/Hearts_Seven.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Six.bmp b/dll/win32/cards/res/default/Hearts_Six.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Six.bmp rename to dll/win32/cards/res/default/Hearts_Six.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Ten.bmp b/dll/win32/cards/res/default/Hearts_Ten.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Ten.bmp rename to dll/win32/cards/res/default/Hearts_Ten.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Three.bmp b/dll/win32/cards/res/default/Hearts_Three.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Three.bmp rename to dll/win32/cards/res/default/Hearts_Three.bmp diff --git a/reactos/dll/win32/cards/res/default/Hearts_Two.bmp b/dll/win32/cards/res/default/Hearts_Two.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Hearts_Two.bmp rename to dll/win32/cards/res/default/Hearts_Two.bmp diff --git a/reactos/dll/win32/cards/res/default/Joker.bmp b/dll/win32/cards/res/default/Joker.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Joker.bmp rename to dll/win32/cards/res/default/Joker.bmp diff --git a/reactos/dll/win32/cards/res/default/OSign.bmp b/dll/win32/cards/res/default/OSign.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/OSign.bmp rename to dll/win32/cards/res/default/OSign.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Ace.bmp b/dll/win32/cards/res/default/Spades_Ace.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Ace.bmp rename to dll/win32/cards/res/default/Spades_Ace.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Eight.bmp b/dll/win32/cards/res/default/Spades_Eight.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Eight.bmp rename to dll/win32/cards/res/default/Spades_Eight.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Five.bmp b/dll/win32/cards/res/default/Spades_Five.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Five.bmp rename to dll/win32/cards/res/default/Spades_Five.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Four.bmp b/dll/win32/cards/res/default/Spades_Four.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Four.bmp rename to dll/win32/cards/res/default/Spades_Four.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Jack.bmp b/dll/win32/cards/res/default/Spades_Jack.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Jack.bmp rename to dll/win32/cards/res/default/Spades_Jack.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_King.bmp b/dll/win32/cards/res/default/Spades_King.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_King.bmp rename to dll/win32/cards/res/default/Spades_King.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Nine.bmp b/dll/win32/cards/res/default/Spades_Nine.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Nine.bmp rename to dll/win32/cards/res/default/Spades_Nine.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Queen.bmp b/dll/win32/cards/res/default/Spades_Queen.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Queen.bmp rename to dll/win32/cards/res/default/Spades_Queen.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Seven.bmp b/dll/win32/cards/res/default/Spades_Seven.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Seven.bmp rename to dll/win32/cards/res/default/Spades_Seven.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Six.bmp b/dll/win32/cards/res/default/Spades_Six.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Six.bmp rename to dll/win32/cards/res/default/Spades_Six.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Ten.bmp b/dll/win32/cards/res/default/Spades_Ten.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Ten.bmp rename to dll/win32/cards/res/default/Spades_Ten.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Three.bmp b/dll/win32/cards/res/default/Spades_Three.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Three.bmp rename to dll/win32/cards/res/default/Spades_Three.bmp diff --git a/reactos/dll/win32/cards/res/default/Spades_Two.bmp b/dll/win32/cards/res/default/Spades_Two.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/Spades_Two.bmp rename to dll/win32/cards/res/default/Spades_Two.bmp diff --git a/reactos/dll/win32/cards/res/default/XSign.bmp b/dll/win32/cards/res/default/XSign.bmp similarity index 100% rename from reactos/dll/win32/cards/res/default/XSign.bmp rename to dll/win32/cards/res/default/XSign.bmp diff --git a/reactos/dll/win32/cfgmgr32/CMakeLists.txt b/dll/win32/cfgmgr32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/cfgmgr32/CMakeLists.txt rename to dll/win32/cfgmgr32/CMakeLists.txt diff --git a/reactos/dll/win32/cfgmgr32/cfgmgr32.rc b/dll/win32/cfgmgr32/cfgmgr32.rc similarity index 100% rename from reactos/dll/win32/cfgmgr32/cfgmgr32.rc rename to dll/win32/cfgmgr32/cfgmgr32.rc diff --git a/reactos/dll/win32/cfgmgr32/cfgmgr32.spec b/dll/win32/cfgmgr32/cfgmgr32.spec similarity index 100% rename from reactos/dll/win32/cfgmgr32/cfgmgr32.spec rename to dll/win32/cfgmgr32/cfgmgr32.spec diff --git a/reactos/dll/win32/clusapi/CMakeLists.txt b/dll/win32/clusapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/clusapi/CMakeLists.txt rename to dll/win32/clusapi/CMakeLists.txt diff --git a/reactos/dll/win32/clusapi/clusapi.c b/dll/win32/clusapi/clusapi.c similarity index 100% rename from reactos/dll/win32/clusapi/clusapi.c rename to dll/win32/clusapi/clusapi.c diff --git a/reactos/dll/win32/clusapi/clusapi.spec b/dll/win32/clusapi/clusapi.spec similarity index 100% rename from reactos/dll/win32/clusapi/clusapi.spec rename to dll/win32/clusapi/clusapi.spec diff --git a/reactos/dll/win32/comcat/CMakeLists.txt b/dll/win32/comcat/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/comcat/CMakeLists.txt rename to dll/win32/comcat/CMakeLists.txt diff --git a/reactos/dll/win32/comcat/comcat.spec b/dll/win32/comcat/comcat.spec similarity index 100% rename from reactos/dll/win32/comcat/comcat.spec rename to dll/win32/comcat/comcat.spec diff --git a/reactos/dll/win32/comcat/comcat_main.c b/dll/win32/comcat/comcat_main.c similarity index 100% rename from reactos/dll/win32/comcat/comcat_main.c rename to dll/win32/comcat/comcat_main.c diff --git a/reactos/dll/win32/comcat/version.rc b/dll/win32/comcat/version.rc similarity index 100% rename from reactos/dll/win32/comcat/version.rc rename to dll/win32/comcat/version.rc diff --git a/reactos/dll/win32/comctl32/CMakeLists.txt b/dll/win32/comctl32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/comctl32/CMakeLists.txt rename to dll/win32/comctl32/CMakeLists.txt diff --git a/reactos/dll/win32/comctl32/animate.c b/dll/win32/comctl32/animate.c similarity index 100% rename from reactos/dll/win32/comctl32/animate.c rename to dll/win32/comctl32/animate.c diff --git a/reactos/dll/win32/comctl32/comboex.c b/dll/win32/comctl32/comboex.c similarity index 100% rename from reactos/dll/win32/comctl32/comboex.c rename to dll/win32/comctl32/comboex.c diff --git a/reactos/dll/win32/comctl32/comctl32.h b/dll/win32/comctl32/comctl32.h similarity index 100% rename from reactos/dll/win32/comctl32/comctl32.h rename to dll/win32/comctl32/comctl32.h diff --git a/reactos/dll/win32/comctl32/comctl32.manifest b/dll/win32/comctl32/comctl32.manifest similarity index 100% rename from reactos/dll/win32/comctl32/comctl32.manifest rename to dll/win32/comctl32/comctl32.manifest diff --git a/reactos/dll/win32/comctl32/comctl32.spec b/dll/win32/comctl32/comctl32.spec similarity index 100% rename from reactos/dll/win32/comctl32/comctl32.spec rename to dll/win32/comctl32/comctl32.spec diff --git a/reactos/dll/win32/comctl32/comctl32_ros.diff b/dll/win32/comctl32/comctl32_ros.diff similarity index 100% rename from reactos/dll/win32/comctl32/comctl32_ros.diff rename to dll/win32/comctl32/comctl32_ros.diff diff --git a/reactos/dll/win32/comctl32/comctl32undoc.c b/dll/win32/comctl32/comctl32undoc.c similarity index 100% rename from reactos/dll/win32/comctl32/comctl32undoc.c rename to dll/win32/comctl32/comctl32undoc.c diff --git a/reactos/dll/win32/comctl32/comctl_Bg.rc b/dll/win32/comctl32/comctl_Bg.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Bg.rc rename to dll/win32/comctl32/comctl_Bg.rc diff --git a/reactos/dll/win32/comctl32/comctl_Cs.rc b/dll/win32/comctl32/comctl_Cs.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Cs.rc rename to dll/win32/comctl32/comctl_Cs.rc diff --git a/reactos/dll/win32/comctl32/comctl_Da.rc b/dll/win32/comctl32/comctl_Da.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Da.rc rename to dll/win32/comctl32/comctl_Da.rc diff --git a/reactos/dll/win32/comctl32/comctl_De.rc b/dll/win32/comctl32/comctl_De.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_De.rc rename to dll/win32/comctl32/comctl_De.rc diff --git a/reactos/dll/win32/comctl32/comctl_El.rc b/dll/win32/comctl32/comctl_El.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_El.rc rename to dll/win32/comctl32/comctl_El.rc diff --git a/reactos/dll/win32/comctl32/comctl_En.rc b/dll/win32/comctl32/comctl_En.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_En.rc rename to dll/win32/comctl32/comctl_En.rc diff --git a/reactos/dll/win32/comctl32/comctl_Eo.rc b/dll/win32/comctl32/comctl_Eo.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Eo.rc rename to dll/win32/comctl32/comctl_Eo.rc diff --git a/reactos/dll/win32/comctl32/comctl_Es.rc b/dll/win32/comctl32/comctl_Es.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Es.rc rename to dll/win32/comctl32/comctl_Es.rc diff --git a/reactos/dll/win32/comctl32/comctl_Fr.rc b/dll/win32/comctl32/comctl_Fr.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Fr.rc rename to dll/win32/comctl32/comctl_Fr.rc diff --git a/reactos/dll/win32/comctl32/comctl_He.rc b/dll/win32/comctl32/comctl_He.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_He.rc rename to dll/win32/comctl32/comctl_He.rc diff --git a/reactos/dll/win32/comctl32/comctl_Hu.rc b/dll/win32/comctl32/comctl_Hu.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Hu.rc rename to dll/win32/comctl32/comctl_Hu.rc diff --git a/reactos/dll/win32/comctl32/comctl_It.rc b/dll/win32/comctl32/comctl_It.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_It.rc rename to dll/win32/comctl32/comctl_It.rc diff --git a/reactos/dll/win32/comctl32/comctl_Ja.rc b/dll/win32/comctl32/comctl_Ja.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Ja.rc rename to dll/win32/comctl32/comctl_Ja.rc diff --git a/reactos/dll/win32/comctl32/comctl_Ko.rc b/dll/win32/comctl32/comctl_Ko.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Ko.rc rename to dll/win32/comctl32/comctl_Ko.rc diff --git a/reactos/dll/win32/comctl32/comctl_Lt.rc b/dll/win32/comctl32/comctl_Lt.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Lt.rc rename to dll/win32/comctl32/comctl_Lt.rc diff --git a/reactos/dll/win32/comctl32/comctl_Nl.rc b/dll/win32/comctl32/comctl_Nl.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Nl.rc rename to dll/win32/comctl32/comctl_Nl.rc diff --git a/reactos/dll/win32/comctl32/comctl_No.rc b/dll/win32/comctl32/comctl_No.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_No.rc rename to dll/win32/comctl32/comctl_No.rc diff --git a/reactos/dll/win32/comctl32/comctl_Pl.rc b/dll/win32/comctl32/comctl_Pl.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Pl.rc rename to dll/win32/comctl32/comctl_Pl.rc diff --git a/reactos/dll/win32/comctl32/comctl_Pt.rc b/dll/win32/comctl32/comctl_Pt.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Pt.rc rename to dll/win32/comctl32/comctl_Pt.rc diff --git a/reactos/dll/win32/comctl32/comctl_Ro.rc b/dll/win32/comctl32/comctl_Ro.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Ro.rc rename to dll/win32/comctl32/comctl_Ro.rc diff --git a/reactos/dll/win32/comctl32/comctl_Ru.rc b/dll/win32/comctl32/comctl_Ru.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Ru.rc rename to dll/win32/comctl32/comctl_Ru.rc diff --git a/reactos/dll/win32/comctl32/comctl_Si.rc b/dll/win32/comctl32/comctl_Si.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Si.rc rename to dll/win32/comctl32/comctl_Si.rc diff --git a/reactos/dll/win32/comctl32/comctl_Sk.rc b/dll/win32/comctl32/comctl_Sk.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Sk.rc rename to dll/win32/comctl32/comctl_Sk.rc diff --git a/reactos/dll/win32/comctl32/comctl_Sr.rc b/dll/win32/comctl32/comctl_Sr.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Sr.rc rename to dll/win32/comctl32/comctl_Sr.rc diff --git a/reactos/dll/win32/comctl32/comctl_Sv.rc b/dll/win32/comctl32/comctl_Sv.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Sv.rc rename to dll/win32/comctl32/comctl_Sv.rc diff --git a/reactos/dll/win32/comctl32/comctl_Th.rc b/dll/win32/comctl32/comctl_Th.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Th.rc rename to dll/win32/comctl32/comctl_Th.rc diff --git a/reactos/dll/win32/comctl32/comctl_Tr.rc b/dll/win32/comctl32/comctl_Tr.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Tr.rc rename to dll/win32/comctl32/comctl_Tr.rc diff --git a/reactos/dll/win32/comctl32/comctl_Uk.rc b/dll/win32/comctl32/comctl_Uk.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Uk.rc rename to dll/win32/comctl32/comctl_Uk.rc diff --git a/reactos/dll/win32/comctl32/comctl_Zh.rc b/dll/win32/comctl32/comctl_Zh.rc similarity index 100% rename from reactos/dll/win32/comctl32/comctl_Zh.rc rename to dll/win32/comctl32/comctl_Zh.rc diff --git a/reactos/dll/win32/comctl32/commctrl.c b/dll/win32/comctl32/commctrl.c similarity index 100% rename from reactos/dll/win32/comctl32/commctrl.c rename to dll/win32/comctl32/commctrl.c diff --git a/reactos/dll/win32/comctl32/datetime.c b/dll/win32/comctl32/datetime.c similarity index 100% rename from reactos/dll/win32/comctl32/datetime.c rename to dll/win32/comctl32/datetime.c diff --git a/reactos/dll/win32/comctl32/dpa.c b/dll/win32/comctl32/dpa.c similarity index 100% rename from reactos/dll/win32/comctl32/dpa.c rename to dll/win32/comctl32/dpa.c diff --git a/reactos/dll/win32/comctl32/draglist.c b/dll/win32/comctl32/draglist.c similarity index 100% rename from reactos/dll/win32/comctl32/draglist.c rename to dll/win32/comctl32/draglist.c diff --git a/reactos/dll/win32/comctl32/dsa.c b/dll/win32/comctl32/dsa.c similarity index 100% rename from reactos/dll/win32/comctl32/dsa.c rename to dll/win32/comctl32/dsa.c diff --git a/reactos/dll/win32/comctl32/flatsb.c b/dll/win32/comctl32/flatsb.c similarity index 100% rename from reactos/dll/win32/comctl32/flatsb.c rename to dll/win32/comctl32/flatsb.c diff --git a/reactos/dll/win32/comctl32/header.c b/dll/win32/comctl32/header.c similarity index 100% rename from reactos/dll/win32/comctl32/header.c rename to dll/win32/comctl32/header.c diff --git a/reactos/dll/win32/comctl32/hotkey.c b/dll/win32/comctl32/hotkey.c similarity index 100% rename from reactos/dll/win32/comctl32/hotkey.c rename to dll/win32/comctl32/hotkey.c diff --git a/reactos/dll/win32/comctl32/idb_hist_large.bmp b/dll/win32/comctl32/idb_hist_large.bmp similarity index 100% rename from reactos/dll/win32/comctl32/idb_hist_large.bmp rename to dll/win32/comctl32/idb_hist_large.bmp diff --git a/reactos/dll/win32/comctl32/idb_hist_small.bmp b/dll/win32/comctl32/idb_hist_small.bmp similarity index 100% rename from reactos/dll/win32/comctl32/idb_hist_small.bmp rename to dll/win32/comctl32/idb_hist_small.bmp diff --git a/reactos/dll/win32/comctl32/idb_std_large.bmp b/dll/win32/comctl32/idb_std_large.bmp similarity index 100% rename from reactos/dll/win32/comctl32/idb_std_large.bmp rename to dll/win32/comctl32/idb_std_large.bmp diff --git a/reactos/dll/win32/comctl32/idb_std_small.bmp b/dll/win32/comctl32/idb_std_small.bmp similarity index 100% rename from reactos/dll/win32/comctl32/idb_std_small.bmp rename to dll/win32/comctl32/idb_std_small.bmp diff --git a/reactos/dll/win32/comctl32/idb_view_large.bmp b/dll/win32/comctl32/idb_view_large.bmp similarity index 100% rename from reactos/dll/win32/comctl32/idb_view_large.bmp rename to dll/win32/comctl32/idb_view_large.bmp diff --git a/reactos/dll/win32/comctl32/idb_view_small.bmp b/dll/win32/comctl32/idb_view_small.bmp similarity index 100% rename from reactos/dll/win32/comctl32/idb_view_small.bmp rename to dll/win32/comctl32/idb_view_small.bmp diff --git a/reactos/dll/win32/comctl32/idc_copy.cur b/dll/win32/comctl32/idc_copy.cur similarity index 100% rename from reactos/dll/win32/comctl32/idc_copy.cur rename to dll/win32/comctl32/idc_copy.cur diff --git a/reactos/dll/win32/comctl32/idc_divider.cur b/dll/win32/comctl32/idc_divider.cur similarity index 100% rename from reactos/dll/win32/comctl32/idc_divider.cur rename to dll/win32/comctl32/idc_divider.cur diff --git a/reactos/dll/win32/comctl32/idc_divideropen.cur b/dll/win32/comctl32/idc_divideropen.cur similarity index 100% rename from reactos/dll/win32/comctl32/idc_divideropen.cur rename to dll/win32/comctl32/idc_divideropen.cur diff --git a/reactos/dll/win32/comctl32/idc_movebutton.cur b/dll/win32/comctl32/idc_movebutton.cur similarity index 100% rename from reactos/dll/win32/comctl32/idc_movebutton.cur rename to dll/win32/comctl32/idc_movebutton.cur diff --git a/reactos/dll/win32/comctl32/idi_dragarrow.ico b/dll/win32/comctl32/idi_dragarrow.ico similarity index 100% rename from reactos/dll/win32/comctl32/idi_dragarrow.ico rename to dll/win32/comctl32/idi_dragarrow.ico diff --git a/reactos/dll/win32/comctl32/idi_tt_error_sm.ico b/dll/win32/comctl32/idi_tt_error_sm.ico similarity index 100% rename from reactos/dll/win32/comctl32/idi_tt_error_sm.ico rename to dll/win32/comctl32/idi_tt_error_sm.ico diff --git a/reactos/dll/win32/comctl32/idi_tt_info_sm.ico b/dll/win32/comctl32/idi_tt_info_sm.ico similarity index 100% rename from reactos/dll/win32/comctl32/idi_tt_info_sm.ico rename to dll/win32/comctl32/idi_tt_info_sm.ico diff --git a/reactos/dll/win32/comctl32/idi_tt_warn_sm.ico b/dll/win32/comctl32/idi_tt_warn_sm.ico similarity index 100% rename from reactos/dll/win32/comctl32/idi_tt_warn_sm.ico rename to dll/win32/comctl32/idi_tt_warn_sm.ico diff --git a/reactos/dll/win32/comctl32/idt_check.bmp b/dll/win32/comctl32/idt_check.bmp similarity index 100% rename from reactos/dll/win32/comctl32/idt_check.bmp rename to dll/win32/comctl32/idt_check.bmp diff --git a/reactos/dll/win32/comctl32/imagelist.c b/dll/win32/comctl32/imagelist.c similarity index 100% rename from reactos/dll/win32/comctl32/imagelist.c rename to dll/win32/comctl32/imagelist.c diff --git a/reactos/dll/win32/comctl32/ipaddress.c b/dll/win32/comctl32/ipaddress.c similarity index 100% rename from reactos/dll/win32/comctl32/ipaddress.c rename to dll/win32/comctl32/ipaddress.c diff --git a/reactos/dll/win32/comctl32/listview.c b/dll/win32/comctl32/listview.c similarity index 100% rename from reactos/dll/win32/comctl32/listview.c rename to dll/win32/comctl32/listview.c diff --git a/reactos/dll/win32/comctl32/monthcal.c b/dll/win32/comctl32/monthcal.c similarity index 100% rename from reactos/dll/win32/comctl32/monthcal.c rename to dll/win32/comctl32/monthcal.c diff --git a/reactos/dll/win32/comctl32/nativefont.c b/dll/win32/comctl32/nativefont.c similarity index 100% rename from reactos/dll/win32/comctl32/nativefont.c rename to dll/win32/comctl32/nativefont.c diff --git a/reactos/dll/win32/comctl32/pager.c b/dll/win32/comctl32/pager.c similarity index 100% rename from reactos/dll/win32/comctl32/pager.c rename to dll/win32/comctl32/pager.c diff --git a/reactos/dll/win32/comctl32/progress.c b/dll/win32/comctl32/progress.c similarity index 100% rename from reactos/dll/win32/comctl32/progress.c rename to dll/win32/comctl32/progress.c diff --git a/reactos/dll/win32/comctl32/propsheet.c b/dll/win32/comctl32/propsheet.c similarity index 100% rename from reactos/dll/win32/comctl32/propsheet.c rename to dll/win32/comctl32/propsheet.c diff --git a/reactos/dll/win32/comctl32/rebar.c b/dll/win32/comctl32/rebar.c similarity index 100% rename from reactos/dll/win32/comctl32/rebar.c rename to dll/win32/comctl32/rebar.c diff --git a/reactos/dll/win32/comctl32/rsrc.rc b/dll/win32/comctl32/rsrc.rc similarity index 100% rename from reactos/dll/win32/comctl32/rsrc.rc rename to dll/win32/comctl32/rsrc.rc diff --git a/reactos/dll/win32/comctl32/smoothscroll.c b/dll/win32/comctl32/smoothscroll.c similarity index 100% rename from reactos/dll/win32/comctl32/smoothscroll.c rename to dll/win32/comctl32/smoothscroll.c diff --git a/reactos/dll/win32/comctl32/status.c b/dll/win32/comctl32/status.c similarity index 100% rename from reactos/dll/win32/comctl32/status.c rename to dll/win32/comctl32/status.c diff --git a/reactos/dll/win32/comctl32/string.c b/dll/win32/comctl32/string.c similarity index 100% rename from reactos/dll/win32/comctl32/string.c rename to dll/win32/comctl32/string.c diff --git a/reactos/dll/win32/comctl32/stubs.c b/dll/win32/comctl32/stubs.c similarity index 100% rename from reactos/dll/win32/comctl32/stubs.c rename to dll/win32/comctl32/stubs.c diff --git a/reactos/dll/win32/comctl32/syslink.c b/dll/win32/comctl32/syslink.c similarity index 100% rename from reactos/dll/win32/comctl32/syslink.c rename to dll/win32/comctl32/syslink.c diff --git a/reactos/dll/win32/comctl32/tab.c b/dll/win32/comctl32/tab.c similarity index 100% rename from reactos/dll/win32/comctl32/tab.c rename to dll/win32/comctl32/tab.c diff --git a/reactos/dll/win32/comctl32/theme_button.c b/dll/win32/comctl32/theme_button.c similarity index 100% rename from reactos/dll/win32/comctl32/theme_button.c rename to dll/win32/comctl32/theme_button.c diff --git a/reactos/dll/win32/comctl32/theme_combo.c b/dll/win32/comctl32/theme_combo.c similarity index 100% rename from reactos/dll/win32/comctl32/theme_combo.c rename to dll/win32/comctl32/theme_combo.c diff --git a/reactos/dll/win32/comctl32/theme_dialog.c b/dll/win32/comctl32/theme_dialog.c similarity index 100% rename from reactos/dll/win32/comctl32/theme_dialog.c rename to dll/win32/comctl32/theme_dialog.c diff --git a/reactos/dll/win32/comctl32/theme_edit.c b/dll/win32/comctl32/theme_edit.c similarity index 100% rename from reactos/dll/win32/comctl32/theme_edit.c rename to dll/win32/comctl32/theme_edit.c diff --git a/reactos/dll/win32/comctl32/theme_listbox.c b/dll/win32/comctl32/theme_listbox.c similarity index 100% rename from reactos/dll/win32/comctl32/theme_listbox.c rename to dll/win32/comctl32/theme_listbox.c diff --git a/reactos/dll/win32/comctl32/theming.c b/dll/win32/comctl32/theming.c similarity index 100% rename from reactos/dll/win32/comctl32/theming.c rename to dll/win32/comctl32/theming.c diff --git a/reactos/dll/win32/comctl32/toolbar.c b/dll/win32/comctl32/toolbar.c similarity index 100% rename from reactos/dll/win32/comctl32/toolbar.c rename to dll/win32/comctl32/toolbar.c diff --git a/reactos/dll/win32/comctl32/tooltips.c b/dll/win32/comctl32/tooltips.c similarity index 100% rename from reactos/dll/win32/comctl32/tooltips.c rename to dll/win32/comctl32/tooltips.c diff --git a/reactos/dll/win32/comctl32/trackbar.c b/dll/win32/comctl32/trackbar.c similarity index 100% rename from reactos/dll/win32/comctl32/trackbar.c rename to dll/win32/comctl32/trackbar.c diff --git a/reactos/dll/win32/comctl32/treeview.c b/dll/win32/comctl32/treeview.c similarity index 100% rename from reactos/dll/win32/comctl32/treeview.c rename to dll/win32/comctl32/treeview.c diff --git a/reactos/dll/win32/comctl32/updown.c b/dll/win32/comctl32/updown.c similarity index 100% rename from reactos/dll/win32/comctl32/updown.c rename to dll/win32/comctl32/updown.c diff --git a/reactos/dll/win32/comdlg32/800.bmp b/dll/win32/comdlg32/800.bmp similarity index 100% rename from reactos/dll/win32/comdlg32/800.bmp rename to dll/win32/comdlg32/800.bmp diff --git a/reactos/dll/win32/comdlg32/CMakeLists.txt b/dll/win32/comdlg32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/comdlg32/CMakeLists.txt rename to dll/win32/comdlg32/CMakeLists.txt diff --git a/reactos/dll/win32/comdlg32/cdlg.h b/dll/win32/comdlg32/cdlg.h similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg.h rename to dll/win32/comdlg32/cdlg.h diff --git a/reactos/dll/win32/comdlg32/cdlg32.c b/dll/win32/comdlg32/cdlg32.c similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg32.c rename to dll/win32/comdlg32/cdlg32.c diff --git a/reactos/dll/win32/comdlg32/cdlg_Bg.rc b/dll/win32/comdlg32/cdlg_Bg.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Bg.rc rename to dll/win32/comdlg32/cdlg_Bg.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Ca.rc b/dll/win32/comdlg32/cdlg_Ca.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Ca.rc rename to dll/win32/comdlg32/cdlg_Ca.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Cs.rc b/dll/win32/comdlg32/cdlg_Cs.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Cs.rc rename to dll/win32/comdlg32/cdlg_Cs.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Da.rc b/dll/win32/comdlg32/cdlg_Da.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Da.rc rename to dll/win32/comdlg32/cdlg_Da.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_De.rc b/dll/win32/comdlg32/cdlg_De.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_De.rc rename to dll/win32/comdlg32/cdlg_De.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_El.rc b/dll/win32/comdlg32/cdlg_El.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_El.rc rename to dll/win32/comdlg32/cdlg_El.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_En.rc b/dll/win32/comdlg32/cdlg_En.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_En.rc rename to dll/win32/comdlg32/cdlg_En.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Eo.rc b/dll/win32/comdlg32/cdlg_Eo.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Eo.rc rename to dll/win32/comdlg32/cdlg_Eo.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Es.rc b/dll/win32/comdlg32/cdlg_Es.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Es.rc rename to dll/win32/comdlg32/cdlg_Es.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Fi.rc b/dll/win32/comdlg32/cdlg_Fi.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Fi.rc rename to dll/win32/comdlg32/cdlg_Fi.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Fr.rc b/dll/win32/comdlg32/cdlg_Fr.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Fr.rc rename to dll/win32/comdlg32/cdlg_Fr.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_He.rc b/dll/win32/comdlg32/cdlg_He.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_He.rc rename to dll/win32/comdlg32/cdlg_He.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Hu.rc b/dll/win32/comdlg32/cdlg_Hu.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Hu.rc rename to dll/win32/comdlg32/cdlg_Hu.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_It.rc b/dll/win32/comdlg32/cdlg_It.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_It.rc rename to dll/win32/comdlg32/cdlg_It.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Ja.rc b/dll/win32/comdlg32/cdlg_Ja.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Ja.rc rename to dll/win32/comdlg32/cdlg_Ja.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Ko.rc b/dll/win32/comdlg32/cdlg_Ko.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Ko.rc rename to dll/win32/comdlg32/cdlg_Ko.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Lt.rc b/dll/win32/comdlg32/cdlg_Lt.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Lt.rc rename to dll/win32/comdlg32/cdlg_Lt.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Nl.rc b/dll/win32/comdlg32/cdlg_Nl.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Nl.rc rename to dll/win32/comdlg32/cdlg_Nl.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_No.rc b/dll/win32/comdlg32/cdlg_No.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_No.rc rename to dll/win32/comdlg32/cdlg_No.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Pl.rc b/dll/win32/comdlg32/cdlg_Pl.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Pl.rc rename to dll/win32/comdlg32/cdlg_Pl.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Pt.rc b/dll/win32/comdlg32/cdlg_Pt.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Pt.rc rename to dll/win32/comdlg32/cdlg_Pt.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Ro.rc b/dll/win32/comdlg32/cdlg_Ro.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Ro.rc rename to dll/win32/comdlg32/cdlg_Ro.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Ru.rc b/dll/win32/comdlg32/cdlg_Ru.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Ru.rc rename to dll/win32/comdlg32/cdlg_Ru.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Si.rc b/dll/win32/comdlg32/cdlg_Si.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Si.rc rename to dll/win32/comdlg32/cdlg_Si.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Sk.rc b/dll/win32/comdlg32/cdlg_Sk.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Sk.rc rename to dll/win32/comdlg32/cdlg_Sk.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Sr.rc b/dll/win32/comdlg32/cdlg_Sr.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Sr.rc rename to dll/win32/comdlg32/cdlg_Sr.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Sv.rc b/dll/win32/comdlg32/cdlg_Sv.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Sv.rc rename to dll/win32/comdlg32/cdlg_Sv.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Th.rc b/dll/win32/comdlg32/cdlg_Th.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Th.rc rename to dll/win32/comdlg32/cdlg_Th.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Tr.rc b/dll/win32/comdlg32/cdlg_Tr.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Tr.rc rename to dll/win32/comdlg32/cdlg_Tr.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Tw.rc b/dll/win32/comdlg32/cdlg_Tw.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Tw.rc rename to dll/win32/comdlg32/cdlg_Tw.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Uk.rc b/dll/win32/comdlg32/cdlg_Uk.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Uk.rc rename to dll/win32/comdlg32/cdlg_Uk.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_Zh.rc b/dll/win32/comdlg32/cdlg_Zh.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_Zh.rc rename to dll/win32/comdlg32/cdlg_Zh.rc diff --git a/reactos/dll/win32/comdlg32/cdlg_xx.rc b/dll/win32/comdlg32/cdlg_xx.rc similarity index 100% rename from reactos/dll/win32/comdlg32/cdlg_xx.rc rename to dll/win32/comdlg32/cdlg_xx.rc diff --git a/reactos/dll/win32/comdlg32/cdrom.ico b/dll/win32/comdlg32/cdrom.ico similarity index 100% rename from reactos/dll/win32/comdlg32/cdrom.ico rename to dll/win32/comdlg32/cdrom.ico diff --git a/reactos/dll/win32/comdlg32/colordlg.c b/dll/win32/comdlg32/colordlg.c similarity index 100% rename from reactos/dll/win32/comdlg32/colordlg.c rename to dll/win32/comdlg32/colordlg.c diff --git a/reactos/dll/win32/comdlg32/comdlg32.spec b/dll/win32/comdlg32/comdlg32.spec similarity index 100% rename from reactos/dll/win32/comdlg32/comdlg32.spec rename to dll/win32/comdlg32/comdlg32.spec diff --git a/reactos/dll/win32/comdlg32/comdlg32_ros.diff b/dll/win32/comdlg32/comdlg32_ros.diff similarity index 100% rename from reactos/dll/win32/comdlg32/comdlg32_ros.diff rename to dll/win32/comdlg32/comdlg32_ros.diff diff --git a/reactos/dll/win32/comdlg32/filedlg.c b/dll/win32/comdlg32/filedlg.c similarity index 100% rename from reactos/dll/win32/comdlg32/filedlg.c rename to dll/win32/comdlg32/filedlg.c diff --git a/reactos/dll/win32/comdlg32/filedlg31.c b/dll/win32/comdlg32/filedlg31.c similarity index 100% rename from reactos/dll/win32/comdlg32/filedlg31.c rename to dll/win32/comdlg32/filedlg31.c diff --git a/reactos/dll/win32/comdlg32/filedlg31.h b/dll/win32/comdlg32/filedlg31.h similarity index 100% rename from reactos/dll/win32/comdlg32/filedlg31.h rename to dll/win32/comdlg32/filedlg31.h diff --git a/reactos/dll/win32/comdlg32/filedlgbrowser.c b/dll/win32/comdlg32/filedlgbrowser.c similarity index 100% rename from reactos/dll/win32/comdlg32/filedlgbrowser.c rename to dll/win32/comdlg32/filedlgbrowser.c diff --git a/reactos/dll/win32/comdlg32/filedlgbrowser.h b/dll/win32/comdlg32/filedlgbrowser.h similarity index 100% rename from reactos/dll/win32/comdlg32/filedlgbrowser.h rename to dll/win32/comdlg32/filedlgbrowser.h diff --git a/reactos/dll/win32/comdlg32/finddlg.c b/dll/win32/comdlg32/finddlg.c similarity index 100% rename from reactos/dll/win32/comdlg32/finddlg.c rename to dll/win32/comdlg32/finddlg.c diff --git a/reactos/dll/win32/comdlg32/floppy.ico b/dll/win32/comdlg32/floppy.ico similarity index 100% rename from reactos/dll/win32/comdlg32/floppy.ico rename to dll/win32/comdlg32/floppy.ico diff --git a/reactos/dll/win32/comdlg32/folder.ico b/dll/win32/comdlg32/folder.ico similarity index 100% rename from reactos/dll/win32/comdlg32/folder.ico rename to dll/win32/comdlg32/folder.ico diff --git a/reactos/dll/win32/comdlg32/folder2.ico b/dll/win32/comdlg32/folder2.ico similarity index 100% rename from reactos/dll/win32/comdlg32/folder2.ico rename to dll/win32/comdlg32/folder2.ico diff --git a/reactos/dll/win32/comdlg32/fontdlg.c b/dll/win32/comdlg32/fontdlg.c similarity index 100% rename from reactos/dll/win32/comdlg32/fontdlg.c rename to dll/win32/comdlg32/fontdlg.c diff --git a/reactos/dll/win32/comdlg32/fontpics.bmp b/dll/win32/comdlg32/fontpics.bmp similarity index 100% rename from reactos/dll/win32/comdlg32/fontpics.bmp rename to dll/win32/comdlg32/fontpics.bmp diff --git a/reactos/dll/win32/comdlg32/hdisk.ico b/dll/win32/comdlg32/hdisk.ico similarity index 100% rename from reactos/dll/win32/comdlg32/hdisk.ico rename to dll/win32/comdlg32/hdisk.ico diff --git a/reactos/dll/win32/comdlg32/itemdlg.c b/dll/win32/comdlg32/itemdlg.c similarity index 100% rename from reactos/dll/win32/comdlg32/itemdlg.c rename to dll/win32/comdlg32/itemdlg.c diff --git a/reactos/dll/win32/comdlg32/network.ico b/dll/win32/comdlg32/network.ico similarity index 100% rename from reactos/dll/win32/comdlg32/network.ico rename to dll/win32/comdlg32/network.ico diff --git a/reactos/dll/win32/comdlg32/pd32_collate.ico b/dll/win32/comdlg32/pd32_collate.ico similarity index 100% rename from reactos/dll/win32/comdlg32/pd32_collate.ico rename to dll/win32/comdlg32/pd32_collate.ico diff --git a/reactos/dll/win32/comdlg32/pd32_landscape.ico b/dll/win32/comdlg32/pd32_landscape.ico similarity index 100% rename from reactos/dll/win32/comdlg32/pd32_landscape.ico rename to dll/win32/comdlg32/pd32_landscape.ico diff --git a/reactos/dll/win32/comdlg32/pd32_nocollate.ico b/dll/win32/comdlg32/pd32_nocollate.ico similarity index 100% rename from reactos/dll/win32/comdlg32/pd32_nocollate.ico rename to dll/win32/comdlg32/pd32_nocollate.ico diff --git a/reactos/dll/win32/comdlg32/pd32_portrait.ico b/dll/win32/comdlg32/pd32_portrait.ico similarity index 100% rename from reactos/dll/win32/comdlg32/pd32_portrait.ico rename to dll/win32/comdlg32/pd32_portrait.ico diff --git a/reactos/dll/win32/comdlg32/printdlg.c b/dll/win32/comdlg32/printdlg.c similarity index 100% rename from reactos/dll/win32/comdlg32/printdlg.c rename to dll/win32/comdlg32/printdlg.c diff --git a/reactos/dll/win32/comdlg32/rsrc.rc b/dll/win32/comdlg32/rsrc.rc similarity index 100% rename from reactos/dll/win32/comdlg32/rsrc.rc rename to dll/win32/comdlg32/rsrc.rc diff --git a/reactos/dll/win32/compstui/CMakeLists.txt b/dll/win32/compstui/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/compstui/CMakeLists.txt rename to dll/win32/compstui/CMakeLists.txt diff --git a/reactos/dll/win32/compstui/compstui.spec b/dll/win32/compstui/compstui.spec similarity index 100% rename from reactos/dll/win32/compstui/compstui.spec rename to dll/win32/compstui/compstui.spec diff --git a/reactos/dll/win32/compstui/compstui_main.c b/dll/win32/compstui/compstui_main.c similarity index 100% rename from reactos/dll/win32/compstui/compstui_main.c rename to dll/win32/compstui/compstui_main.c diff --git a/reactos/dll/win32/credui/CMakeLists.txt b/dll/win32/credui/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/credui/CMakeLists.txt rename to dll/win32/credui/CMakeLists.txt diff --git a/reactos/dll/win32/credui/banner.bmp b/dll/win32/credui/banner.bmp similarity index 100% rename from reactos/dll/win32/credui/banner.bmp rename to dll/win32/credui/banner.bmp diff --git a/reactos/dll/win32/credui/credui.rc b/dll/win32/credui/credui.rc similarity index 100% rename from reactos/dll/win32/credui/credui.rc rename to dll/win32/credui/credui.rc diff --git a/reactos/dll/win32/credui/credui.spec b/dll/win32/credui/credui.spec similarity index 100% rename from reactos/dll/win32/credui/credui.spec rename to dll/win32/credui/credui.spec diff --git a/reactos/dll/win32/credui/credui_Da.rc b/dll/win32/credui/credui_Da.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Da.rc rename to dll/win32/credui/credui_Da.rc diff --git a/reactos/dll/win32/credui/credui_De.rc b/dll/win32/credui/credui_De.rc similarity index 100% rename from reactos/dll/win32/credui/credui_De.rc rename to dll/win32/credui/credui_De.rc diff --git a/reactos/dll/win32/credui/credui_En.rc b/dll/win32/credui/credui_En.rc similarity index 100% rename from reactos/dll/win32/credui/credui_En.rc rename to dll/win32/credui/credui_En.rc diff --git a/reactos/dll/win32/credui/credui_Es.rc b/dll/win32/credui/credui_Es.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Es.rc rename to dll/win32/credui/credui_Es.rc diff --git a/reactos/dll/win32/credui/credui_Fr.rc b/dll/win32/credui/credui_Fr.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Fr.rc rename to dll/win32/credui/credui_Fr.rc diff --git a/reactos/dll/win32/credui/credui_Hu.rc b/dll/win32/credui/credui_Hu.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Hu.rc rename to dll/win32/credui/credui_Hu.rc diff --git a/reactos/dll/win32/credui/credui_It.rc b/dll/win32/credui/credui_It.rc similarity index 100% rename from reactos/dll/win32/credui/credui_It.rc rename to dll/win32/credui/credui_It.rc diff --git a/reactos/dll/win32/credui/credui_Ko.rc b/dll/win32/credui/credui_Ko.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Ko.rc rename to dll/win32/credui/credui_Ko.rc diff --git a/reactos/dll/win32/credui/credui_Lt.rc b/dll/win32/credui/credui_Lt.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Lt.rc rename to dll/win32/credui/credui_Lt.rc diff --git a/reactos/dll/win32/credui/credui_Nl.rc b/dll/win32/credui/credui_Nl.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Nl.rc rename to dll/win32/credui/credui_Nl.rc diff --git a/reactos/dll/win32/credui/credui_No.rc b/dll/win32/credui/credui_No.rc similarity index 100% rename from reactos/dll/win32/credui/credui_No.rc rename to dll/win32/credui/credui_No.rc diff --git a/reactos/dll/win32/credui/credui_Pl.rc b/dll/win32/credui/credui_Pl.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Pl.rc rename to dll/win32/credui/credui_Pl.rc diff --git a/reactos/dll/win32/credui/credui_Pt.rc b/dll/win32/credui/credui_Pt.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Pt.rc rename to dll/win32/credui/credui_Pt.rc diff --git a/reactos/dll/win32/credui/credui_Ro.rc b/dll/win32/credui/credui_Ro.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Ro.rc rename to dll/win32/credui/credui_Ro.rc diff --git a/reactos/dll/win32/credui/credui_Ru.rc b/dll/win32/credui/credui_Ru.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Ru.rc rename to dll/win32/credui/credui_Ru.rc diff --git a/reactos/dll/win32/credui/credui_Si.rc b/dll/win32/credui/credui_Si.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Si.rc rename to dll/win32/credui/credui_Si.rc diff --git a/reactos/dll/win32/credui/credui_Sv.rc b/dll/win32/credui/credui_Sv.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Sv.rc rename to dll/win32/credui/credui_Sv.rc diff --git a/reactos/dll/win32/credui/credui_Uk.rc b/dll/win32/credui/credui_Uk.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Uk.rc rename to dll/win32/credui/credui_Uk.rc diff --git a/reactos/dll/win32/credui/credui_Zh.rc b/dll/win32/credui/credui_Zh.rc similarity index 100% rename from reactos/dll/win32/credui/credui_Zh.rc rename to dll/win32/credui/credui_Zh.rc diff --git a/reactos/dll/win32/credui/credui_main.c b/dll/win32/credui/credui_main.c similarity index 100% rename from reactos/dll/win32/credui/credui_main.c rename to dll/win32/credui/credui_main.c diff --git a/reactos/dll/win32/credui/credui_resources.h b/dll/win32/credui/credui_resources.h similarity index 100% rename from reactos/dll/win32/credui/credui_resources.h rename to dll/win32/credui/credui_resources.h diff --git a/reactos/dll/win32/crtdll/CMakeLists.txt b/dll/win32/crtdll/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/crtdll/CMakeLists.txt rename to dll/win32/crtdll/CMakeLists.txt diff --git a/reactos/dll/win32/crtdll/crtdll.rc b/dll/win32/crtdll/crtdll.rc similarity index 100% rename from reactos/dll/win32/crtdll/crtdll.rc rename to dll/win32/crtdll/crtdll.rc diff --git a/reactos/dll/win32/crtdll/crtdll.spec b/dll/win32/crtdll/crtdll.spec similarity index 100% rename from reactos/dll/win32/crtdll/crtdll.spec rename to dll/win32/crtdll/crtdll.spec diff --git a/reactos/dll/win32/crtdll/dllmain.c b/dll/win32/crtdll/dllmain.c similarity index 100% rename from reactos/dll/win32/crtdll/dllmain.c rename to dll/win32/crtdll/dllmain.c diff --git a/reactos/dll/win32/crtdll/precomp.h b/dll/win32/crtdll/precomp.h similarity index 100% rename from reactos/dll/win32/crtdll/precomp.h rename to dll/win32/crtdll/precomp.h diff --git a/reactos/dll/win32/crypt32/CMakeLists.txt b/dll/win32/crypt32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/crypt32/CMakeLists.txt rename to dll/win32/crypt32/CMakeLists.txt diff --git a/reactos/dll/win32/crypt32/base64.c b/dll/win32/crypt32/base64.c similarity index 100% rename from reactos/dll/win32/crypt32/base64.c rename to dll/win32/crypt32/base64.c diff --git a/reactos/dll/win32/crypt32/cert.c b/dll/win32/crypt32/cert.c similarity index 100% rename from reactos/dll/win32/crypt32/cert.c rename to dll/win32/crypt32/cert.c diff --git a/reactos/dll/win32/crypt32/chain.c b/dll/win32/crypt32/chain.c similarity index 100% rename from reactos/dll/win32/crypt32/chain.c rename to dll/win32/crypt32/chain.c diff --git a/reactos/dll/win32/crypt32/collectionstore.c b/dll/win32/crypt32/collectionstore.c similarity index 100% rename from reactos/dll/win32/crypt32/collectionstore.c rename to dll/win32/crypt32/collectionstore.c diff --git a/reactos/dll/win32/crypt32/context.c b/dll/win32/crypt32/context.c similarity index 100% rename from reactos/dll/win32/crypt32/context.c rename to dll/win32/crypt32/context.c diff --git a/reactos/dll/win32/crypt32/crl.c b/dll/win32/crypt32/crl.c similarity index 100% rename from reactos/dll/win32/crypt32/crl.c rename to dll/win32/crypt32/crl.c diff --git a/reactos/dll/win32/crypt32/crypt32.rc b/dll/win32/crypt32/crypt32.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32.rc rename to dll/win32/crypt32/crypt32.rc diff --git a/reactos/dll/win32/crypt32/crypt32.spec b/dll/win32/crypt32/crypt32.spec similarity index 100% rename from reactos/dll/win32/crypt32/crypt32.spec rename to dll/win32/crypt32/crypt32.spec diff --git a/reactos/dll/win32/crypt32/crypt32_De.rc b/dll/win32/crypt32/crypt32_De.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_De.rc rename to dll/win32/crypt32/crypt32_De.rc diff --git a/reactos/dll/win32/crypt32/crypt32_En.rc b/dll/win32/crypt32/crypt32_En.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_En.rc rename to dll/win32/crypt32/crypt32_En.rc diff --git a/reactos/dll/win32/crypt32/crypt32_Fr.rc b/dll/win32/crypt32/crypt32_Fr.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_Fr.rc rename to dll/win32/crypt32/crypt32_Fr.rc diff --git a/reactos/dll/win32/crypt32/crypt32_Hu.rc b/dll/win32/crypt32/crypt32_Hu.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_Hu.rc rename to dll/win32/crypt32/crypt32_Hu.rc diff --git a/reactos/dll/win32/crypt32/crypt32_It.rc b/dll/win32/crypt32/crypt32_It.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_It.rc rename to dll/win32/crypt32/crypt32_It.rc diff --git a/reactos/dll/win32/crypt32/crypt32_Ko.rc b/dll/win32/crypt32/crypt32_Ko.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_Ko.rc rename to dll/win32/crypt32/crypt32_Ko.rc diff --git a/reactos/dll/win32/crypt32/crypt32_Lt.rc b/dll/win32/crypt32/crypt32_Lt.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_Lt.rc rename to dll/win32/crypt32/crypt32_Lt.rc diff --git a/reactos/dll/win32/crypt32/crypt32_Nl.rc b/dll/win32/crypt32/crypt32_Nl.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_Nl.rc rename to dll/win32/crypt32/crypt32_Nl.rc diff --git a/reactos/dll/win32/crypt32/crypt32_No.rc b/dll/win32/crypt32/crypt32_No.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_No.rc rename to dll/win32/crypt32/crypt32_No.rc diff --git a/reactos/dll/win32/crypt32/crypt32_Pl.rc b/dll/win32/crypt32/crypt32_Pl.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_Pl.rc rename to dll/win32/crypt32/crypt32_Pl.rc diff --git a/reactos/dll/win32/crypt32/crypt32_Pt.rc b/dll/win32/crypt32/crypt32_Pt.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_Pt.rc rename to dll/win32/crypt32/crypt32_Pt.rc diff --git a/reactos/dll/win32/crypt32/crypt32_Ro.rc b/dll/win32/crypt32/crypt32_Ro.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_Ro.rc rename to dll/win32/crypt32/crypt32_Ro.rc diff --git a/reactos/dll/win32/crypt32/crypt32_Sv.rc b/dll/win32/crypt32/crypt32_Sv.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_Sv.rc rename to dll/win32/crypt32/crypt32_Sv.rc diff --git a/reactos/dll/win32/crypt32/crypt32_Uk.rc b/dll/win32/crypt32/crypt32_Uk.rc similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_Uk.rc rename to dll/win32/crypt32/crypt32_Uk.rc diff --git a/reactos/dll/win32/crypt32/crypt32_private.h b/dll/win32/crypt32/crypt32_private.h similarity index 100% rename from reactos/dll/win32/crypt32/crypt32_private.h rename to dll/win32/crypt32/crypt32_private.h diff --git a/reactos/dll/win32/crypt32/cryptres.h b/dll/win32/crypt32/cryptres.h similarity index 100% rename from reactos/dll/win32/crypt32/cryptres.h rename to dll/win32/crypt32/cryptres.h diff --git a/reactos/dll/win32/crypt32/ctl.c b/dll/win32/crypt32/ctl.c similarity index 100% rename from reactos/dll/win32/crypt32/ctl.c rename to dll/win32/crypt32/ctl.c diff --git a/reactos/dll/win32/crypt32/decode.c b/dll/win32/crypt32/decode.c similarity index 100% rename from reactos/dll/win32/crypt32/decode.c rename to dll/win32/crypt32/decode.c diff --git a/reactos/dll/win32/crypt32/encode.c b/dll/win32/crypt32/encode.c similarity index 100% rename from reactos/dll/win32/crypt32/encode.c rename to dll/win32/crypt32/encode.c diff --git a/reactos/dll/win32/crypt32/filestore.c b/dll/win32/crypt32/filestore.c similarity index 100% rename from reactos/dll/win32/crypt32/filestore.c rename to dll/win32/crypt32/filestore.c diff --git a/reactos/dll/win32/crypt32/main.c b/dll/win32/crypt32/main.c similarity index 100% rename from reactos/dll/win32/crypt32/main.c rename to dll/win32/crypt32/main.c diff --git a/reactos/dll/win32/crypt32/message.c b/dll/win32/crypt32/message.c similarity index 100% rename from reactos/dll/win32/crypt32/message.c rename to dll/win32/crypt32/message.c diff --git a/reactos/dll/win32/crypt32/msg.c b/dll/win32/crypt32/msg.c similarity index 100% rename from reactos/dll/win32/crypt32/msg.c rename to dll/win32/crypt32/msg.c diff --git a/reactos/dll/win32/crypt32/object.c b/dll/win32/crypt32/object.c similarity index 100% rename from reactos/dll/win32/crypt32/object.c rename to dll/win32/crypt32/object.c diff --git a/reactos/dll/win32/crypt32/oid.c b/dll/win32/crypt32/oid.c similarity index 100% rename from reactos/dll/win32/crypt32/oid.c rename to dll/win32/crypt32/oid.c diff --git a/reactos/dll/win32/crypt32/proplist.c b/dll/win32/crypt32/proplist.c similarity index 100% rename from reactos/dll/win32/crypt32/proplist.c rename to dll/win32/crypt32/proplist.c diff --git a/reactos/dll/win32/crypt32/protectdata.c b/dll/win32/crypt32/protectdata.c similarity index 100% rename from reactos/dll/win32/crypt32/protectdata.c rename to dll/win32/crypt32/protectdata.c diff --git a/reactos/dll/win32/crypt32/provstore.c b/dll/win32/crypt32/provstore.c similarity index 100% rename from reactos/dll/win32/crypt32/provstore.c rename to dll/win32/crypt32/provstore.c diff --git a/reactos/dll/win32/crypt32/regstore.c b/dll/win32/crypt32/regstore.c similarity index 100% rename from reactos/dll/win32/crypt32/regstore.c rename to dll/win32/crypt32/regstore.c diff --git a/reactos/dll/win32/crypt32/rootstore.c b/dll/win32/crypt32/rootstore.c similarity index 100% rename from reactos/dll/win32/crypt32/rootstore.c rename to dll/win32/crypt32/rootstore.c diff --git a/reactos/dll/win32/crypt32/serialize.c b/dll/win32/crypt32/serialize.c similarity index 100% rename from reactos/dll/win32/crypt32/serialize.c rename to dll/win32/crypt32/serialize.c diff --git a/reactos/dll/win32/crypt32/sip.c b/dll/win32/crypt32/sip.c similarity index 100% rename from reactos/dll/win32/crypt32/sip.c rename to dll/win32/crypt32/sip.c diff --git a/reactos/dll/win32/crypt32/store.c b/dll/win32/crypt32/store.c similarity index 100% rename from reactos/dll/win32/crypt32/store.c rename to dll/win32/crypt32/store.c diff --git a/reactos/dll/win32/crypt32/str.c b/dll/win32/crypt32/str.c similarity index 100% rename from reactos/dll/win32/crypt32/str.c rename to dll/win32/crypt32/str.c diff --git a/reactos/dll/win32/crypt32/version.rc b/dll/win32/crypt32/version.rc similarity index 100% rename from reactos/dll/win32/crypt32/version.rc rename to dll/win32/crypt32/version.rc diff --git a/reactos/dll/win32/cryptdlg/CMakeLists.txt b/dll/win32/cryptdlg/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/cryptdlg/CMakeLists.txt rename to dll/win32/cryptdlg/CMakeLists.txt diff --git a/reactos/dll/win32/cryptdlg/cryptdlg.rc b/dll/win32/cryptdlg/cryptdlg.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg.rc rename to dll/win32/cryptdlg/cryptdlg.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg.spec b/dll/win32/cryptdlg/cryptdlg.spec similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg.spec rename to dll/win32/cryptdlg/cryptdlg.spec diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_Da.rc b/dll/win32/cryptdlg/cryptdlg_Da.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_Da.rc rename to dll/win32/cryptdlg/cryptdlg_Da.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_De.rc b/dll/win32/cryptdlg/cryptdlg_De.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_De.rc rename to dll/win32/cryptdlg/cryptdlg_De.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_En.rc b/dll/win32/cryptdlg/cryptdlg_En.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_En.rc rename to dll/win32/cryptdlg/cryptdlg_En.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_Fr.rc b/dll/win32/cryptdlg/cryptdlg_Fr.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_Fr.rc rename to dll/win32/cryptdlg/cryptdlg_Fr.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_Hu.rc b/dll/win32/cryptdlg/cryptdlg_Hu.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_Hu.rc rename to dll/win32/cryptdlg/cryptdlg_Hu.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_It.rc b/dll/win32/cryptdlg/cryptdlg_It.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_It.rc rename to dll/win32/cryptdlg/cryptdlg_It.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_Ko.rc b/dll/win32/cryptdlg/cryptdlg_Ko.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_Ko.rc rename to dll/win32/cryptdlg/cryptdlg_Ko.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_Lt.rc b/dll/win32/cryptdlg/cryptdlg_Lt.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_Lt.rc rename to dll/win32/cryptdlg/cryptdlg_Lt.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_Nl.rc b/dll/win32/cryptdlg/cryptdlg_Nl.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_Nl.rc rename to dll/win32/cryptdlg/cryptdlg_Nl.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_No.rc b/dll/win32/cryptdlg/cryptdlg_No.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_No.rc rename to dll/win32/cryptdlg/cryptdlg_No.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_Pl.rc b/dll/win32/cryptdlg/cryptdlg_Pl.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_Pl.rc rename to dll/win32/cryptdlg/cryptdlg_Pl.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_Pt.rc b/dll/win32/cryptdlg/cryptdlg_Pt.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_Pt.rc rename to dll/win32/cryptdlg/cryptdlg_Pt.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_Ro.rc b/dll/win32/cryptdlg/cryptdlg_Ro.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_Ro.rc rename to dll/win32/cryptdlg/cryptdlg_Ro.rc diff --git a/reactos/dll/win32/cryptdlg/cryptdlg_Uk.rc b/dll/win32/cryptdlg/cryptdlg_Uk.rc similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptdlg_Uk.rc rename to dll/win32/cryptdlg/cryptdlg_Uk.rc diff --git a/reactos/dll/win32/cryptdlg/cryptres.h b/dll/win32/cryptdlg/cryptres.h similarity index 100% rename from reactos/dll/win32/cryptdlg/cryptres.h rename to dll/win32/cryptdlg/cryptres.h diff --git a/reactos/dll/win32/cryptdlg/main.c b/dll/win32/cryptdlg/main.c similarity index 100% rename from reactos/dll/win32/cryptdlg/main.c rename to dll/win32/cryptdlg/main.c diff --git a/reactos/dll/win32/cryptdll/CMakeLists.txt b/dll/win32/cryptdll/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/cryptdll/CMakeLists.txt rename to dll/win32/cryptdll/CMakeLists.txt diff --git a/reactos/dll/win32/cryptdll/cryptdll.c b/dll/win32/cryptdll/cryptdll.c similarity index 100% rename from reactos/dll/win32/cryptdll/cryptdll.c rename to dll/win32/cryptdll/cryptdll.c diff --git a/reactos/dll/win32/cryptdll/cryptdll.spec b/dll/win32/cryptdll/cryptdll.spec similarity index 100% rename from reactos/dll/win32/cryptdll/cryptdll.spec rename to dll/win32/cryptdll/cryptdll.spec diff --git a/reactos/dll/win32/cryptdll/stubs.c b/dll/win32/cryptdll/stubs.c similarity index 100% rename from reactos/dll/win32/cryptdll/stubs.c rename to dll/win32/cryptdll/stubs.c diff --git a/reactos/dll/win32/cryptnet/CMakeLists.txt b/dll/win32/cryptnet/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/cryptnet/CMakeLists.txt rename to dll/win32/cryptnet/CMakeLists.txt diff --git a/reactos/dll/win32/cryptnet/cryptnet.spec b/dll/win32/cryptnet/cryptnet.spec similarity index 100% rename from reactos/dll/win32/cryptnet/cryptnet.spec rename to dll/win32/cryptnet/cryptnet.spec diff --git a/reactos/dll/win32/cryptnet/cryptnet_main.c b/dll/win32/cryptnet/cryptnet_main.c similarity index 100% rename from reactos/dll/win32/cryptnet/cryptnet_main.c rename to dll/win32/cryptnet/cryptnet_main.c diff --git a/reactos/dll/win32/cryptui/CMakeLists.txt b/dll/win32/cryptui/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/cryptui/CMakeLists.txt rename to dll/win32/cryptui/CMakeLists.txt diff --git a/reactos/dll/win32/cryptui/cert.bmp b/dll/win32/cryptui/cert.bmp similarity index 100% rename from reactos/dll/win32/cryptui/cert.bmp rename to dll/win32/cryptui/cert.bmp diff --git a/reactos/dll/win32/cryptui/certerror.bmp b/dll/win32/cryptui/certerror.bmp similarity index 100% rename from reactos/dll/win32/cryptui/certerror.bmp rename to dll/win32/cryptui/certerror.bmp diff --git a/reactos/dll/win32/cryptui/certheader.bmp b/dll/win32/cryptui/certheader.bmp similarity index 100% rename from reactos/dll/win32/cryptui/certheader.bmp rename to dll/win32/cryptui/certheader.bmp diff --git a/reactos/dll/win32/cryptui/certwarning.bmp b/dll/win32/cryptui/certwarning.bmp similarity index 100% rename from reactos/dll/win32/cryptui/certwarning.bmp rename to dll/win32/cryptui/certwarning.bmp diff --git a/reactos/dll/win32/cryptui/certwatermark.bmp b/dll/win32/cryptui/certwatermark.bmp similarity index 100% rename from reactos/dll/win32/cryptui/certwatermark.bmp rename to dll/win32/cryptui/certwatermark.bmp diff --git a/reactos/dll/win32/cryptui/checks.bmp b/dll/win32/cryptui/checks.bmp similarity index 100% rename from reactos/dll/win32/cryptui/checks.bmp rename to dll/win32/cryptui/checks.bmp diff --git a/reactos/dll/win32/cryptui/cryptui.rc b/dll/win32/cryptui/cryptui.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui.rc rename to dll/win32/cryptui/cryptui.rc diff --git a/reactos/dll/win32/cryptui/cryptui.spec b/dll/win32/cryptui/cryptui.spec similarity index 100% rename from reactos/dll/win32/cryptui/cryptui.spec rename to dll/win32/cryptui/cryptui.spec diff --git a/reactos/dll/win32/cryptui/cryptui_De.rc b/dll/win32/cryptui/cryptui_De.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_De.rc rename to dll/win32/cryptui/cryptui_De.rc diff --git a/reactos/dll/win32/cryptui/cryptui_En.rc b/dll/win32/cryptui/cryptui_En.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_En.rc rename to dll/win32/cryptui/cryptui_En.rc diff --git a/reactos/dll/win32/cryptui/cryptui_Fr.rc b/dll/win32/cryptui/cryptui_Fr.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_Fr.rc rename to dll/win32/cryptui/cryptui_Fr.rc diff --git a/reactos/dll/win32/cryptui/cryptui_It.rc b/dll/win32/cryptui/cryptui_It.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_It.rc rename to dll/win32/cryptui/cryptui_It.rc diff --git a/reactos/dll/win32/cryptui/cryptui_Ko.rc b/dll/win32/cryptui/cryptui_Ko.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_Ko.rc rename to dll/win32/cryptui/cryptui_Ko.rc diff --git a/reactos/dll/win32/cryptui/cryptui_Lt.rc b/dll/win32/cryptui/cryptui_Lt.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_Lt.rc rename to dll/win32/cryptui/cryptui_Lt.rc diff --git a/reactos/dll/win32/cryptui/cryptui_Nl.rc b/dll/win32/cryptui/cryptui_Nl.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_Nl.rc rename to dll/win32/cryptui/cryptui_Nl.rc diff --git a/reactos/dll/win32/cryptui/cryptui_No.rc b/dll/win32/cryptui/cryptui_No.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_No.rc rename to dll/win32/cryptui/cryptui_No.rc diff --git a/reactos/dll/win32/cryptui/cryptui_Pl.rc b/dll/win32/cryptui/cryptui_Pl.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_Pl.rc rename to dll/win32/cryptui/cryptui_Pl.rc diff --git a/reactos/dll/win32/cryptui/cryptui_Pt.rc b/dll/win32/cryptui/cryptui_Pt.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_Pt.rc rename to dll/win32/cryptui/cryptui_Pt.rc diff --git a/reactos/dll/win32/cryptui/cryptui_Ro.rc b/dll/win32/cryptui/cryptui_Ro.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_Ro.rc rename to dll/win32/cryptui/cryptui_Ro.rc diff --git a/reactos/dll/win32/cryptui/cryptui_Uk.rc b/dll/win32/cryptui/cryptui_Uk.rc similarity index 100% rename from reactos/dll/win32/cryptui/cryptui_Uk.rc rename to dll/win32/cryptui/cryptui_Uk.rc diff --git a/reactos/dll/win32/cryptui/cryptuires.h b/dll/win32/cryptui/cryptuires.h similarity index 100% rename from reactos/dll/win32/cryptui/cryptuires.h rename to dll/win32/cryptui/cryptuires.h diff --git a/reactos/dll/win32/cryptui/main.c b/dll/win32/cryptui/main.c similarity index 100% rename from reactos/dll/win32/cryptui/main.c rename to dll/win32/cryptui/main.c diff --git a/reactos/dll/win32/cryptui/smallicons.bmp b/dll/win32/cryptui/smallicons.bmp similarity index 100% rename from reactos/dll/win32/cryptui/smallicons.bmp rename to dll/win32/cryptui/smallicons.bmp diff --git a/reactos/dll/win32/dbghelp/CMakeLists.txt b/dll/win32/dbghelp/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/dbghelp/CMakeLists.txt rename to dll/win32/dbghelp/CMakeLists.txt diff --git a/reactos/dll/win32/dbghelp/coff.c b/dll/win32/dbghelp/coff.c similarity index 100% rename from reactos/dll/win32/dbghelp/coff.c rename to dll/win32/dbghelp/coff.c diff --git a/reactos/dll/win32/dbghelp/cpu_arm.c b/dll/win32/dbghelp/cpu_arm.c similarity index 100% rename from reactos/dll/win32/dbghelp/cpu_arm.c rename to dll/win32/dbghelp/cpu_arm.c diff --git a/reactos/dll/win32/dbghelp/cpu_i386.c b/dll/win32/dbghelp/cpu_i386.c similarity index 100% rename from reactos/dll/win32/dbghelp/cpu_i386.c rename to dll/win32/dbghelp/cpu_i386.c diff --git a/reactos/dll/win32/dbghelp/cpu_ppc.c b/dll/win32/dbghelp/cpu_ppc.c similarity index 100% rename from reactos/dll/win32/dbghelp/cpu_ppc.c rename to dll/win32/dbghelp/cpu_ppc.c diff --git a/reactos/dll/win32/dbghelp/cpu_sparc.c b/dll/win32/dbghelp/cpu_sparc.c similarity index 100% rename from reactos/dll/win32/dbghelp/cpu_sparc.c rename to dll/win32/dbghelp/cpu_sparc.c diff --git a/reactos/dll/win32/dbghelp/cpu_x86_64.c b/dll/win32/dbghelp/cpu_x86_64.c similarity index 100% rename from reactos/dll/win32/dbghelp/cpu_x86_64.c rename to dll/win32/dbghelp/cpu_x86_64.c diff --git a/reactos/dll/win32/dbghelp/crc32.c b/dll/win32/dbghelp/crc32.c similarity index 100% rename from reactos/dll/win32/dbghelp/crc32.c rename to dll/win32/dbghelp/crc32.c diff --git a/reactos/dll/win32/dbghelp/dbghelp.c b/dll/win32/dbghelp/dbghelp.c similarity index 100% rename from reactos/dll/win32/dbghelp/dbghelp.c rename to dll/win32/dbghelp/dbghelp.c diff --git a/reactos/dll/win32/dbghelp/dbghelp.spec b/dll/win32/dbghelp/dbghelp.spec similarity index 100% rename from reactos/dll/win32/dbghelp/dbghelp.spec rename to dll/win32/dbghelp/dbghelp.spec diff --git a/reactos/dll/win32/dbghelp/dbghelp_private.h b/dll/win32/dbghelp/dbghelp_private.h similarity index 100% rename from reactos/dll/win32/dbghelp/dbghelp_private.h rename to dll/win32/dbghelp/dbghelp_private.h diff --git a/reactos/dll/win32/dbghelp/dbghelp_ros.diff b/dll/win32/dbghelp/dbghelp_ros.diff similarity index 100% rename from reactos/dll/win32/dbghelp/dbghelp_ros.diff rename to dll/win32/dbghelp/dbghelp_ros.diff diff --git a/reactos/dll/win32/dbghelp/dwarf.c b/dll/win32/dbghelp/dwarf.c similarity index 100% rename from reactos/dll/win32/dbghelp/dwarf.c rename to dll/win32/dbghelp/dwarf.c diff --git a/reactos/dll/win32/dbghelp/dwarf.h b/dll/win32/dbghelp/dwarf.h similarity index 100% rename from reactos/dll/win32/dbghelp/dwarf.h rename to dll/win32/dbghelp/dwarf.h diff --git a/reactos/dll/win32/dbghelp/elf_module.c b/dll/win32/dbghelp/elf_module.c similarity index 100% rename from reactos/dll/win32/dbghelp/elf_module.c rename to dll/win32/dbghelp/elf_module.c diff --git a/reactos/dll/win32/dbghelp/image.c b/dll/win32/dbghelp/image.c similarity index 100% rename from reactos/dll/win32/dbghelp/image.c rename to dll/win32/dbghelp/image.c diff --git a/reactos/dll/win32/dbghelp/image_private.h b/dll/win32/dbghelp/image_private.h similarity index 100% rename from reactos/dll/win32/dbghelp/image_private.h rename to dll/win32/dbghelp/image_private.h diff --git a/reactos/dll/win32/dbghelp/macho_module.c b/dll/win32/dbghelp/macho_module.c similarity index 100% rename from reactos/dll/win32/dbghelp/macho_module.c rename to dll/win32/dbghelp/macho_module.c diff --git a/reactos/dll/win32/dbghelp/minidump.c b/dll/win32/dbghelp/minidump.c similarity index 100% rename from reactos/dll/win32/dbghelp/minidump.c rename to dll/win32/dbghelp/minidump.c diff --git a/reactos/dll/win32/dbghelp/module.c b/dll/win32/dbghelp/module.c similarity index 100% rename from reactos/dll/win32/dbghelp/module.c rename to dll/win32/dbghelp/module.c diff --git a/reactos/dll/win32/dbghelp/msc.c b/dll/win32/dbghelp/msc.c similarity index 100% rename from reactos/dll/win32/dbghelp/msc.c rename to dll/win32/dbghelp/msc.c diff --git a/reactos/dll/win32/dbghelp/path.c b/dll/win32/dbghelp/path.c similarity index 100% rename from reactos/dll/win32/dbghelp/path.c rename to dll/win32/dbghelp/path.c diff --git a/reactos/dll/win32/dbghelp/pe_module.c b/dll/win32/dbghelp/pe_module.c similarity index 100% rename from reactos/dll/win32/dbghelp/pe_module.c rename to dll/win32/dbghelp/pe_module.c diff --git a/reactos/dll/win32/dbghelp/regex.c b/dll/win32/dbghelp/regex.c similarity index 100% rename from reactos/dll/win32/dbghelp/regex.c rename to dll/win32/dbghelp/regex.c diff --git a/reactos/dll/win32/dbghelp/rosstubs.c b/dll/win32/dbghelp/rosstubs.c similarity index 100% rename from reactos/dll/win32/dbghelp/rosstubs.c rename to dll/win32/dbghelp/rosstubs.c diff --git a/reactos/dll/win32/dbghelp/source.c b/dll/win32/dbghelp/source.c similarity index 100% rename from reactos/dll/win32/dbghelp/source.c rename to dll/win32/dbghelp/source.c diff --git a/reactos/dll/win32/dbghelp/stabs.c b/dll/win32/dbghelp/stabs.c similarity index 100% rename from reactos/dll/win32/dbghelp/stabs.c rename to dll/win32/dbghelp/stabs.c diff --git a/reactos/dll/win32/dbghelp/stack.c b/dll/win32/dbghelp/stack.c similarity index 100% rename from reactos/dll/win32/dbghelp/stack.c rename to dll/win32/dbghelp/stack.c diff --git a/reactos/dll/win32/dbghelp/storage.c b/dll/win32/dbghelp/storage.c similarity index 100% rename from reactos/dll/win32/dbghelp/storage.c rename to dll/win32/dbghelp/storage.c diff --git a/reactos/dll/win32/dbghelp/symbol.c b/dll/win32/dbghelp/symbol.c similarity index 100% rename from reactos/dll/win32/dbghelp/symbol.c rename to dll/win32/dbghelp/symbol.c diff --git a/reactos/dll/win32/dbghelp/type.c b/dll/win32/dbghelp/type.c similarity index 100% rename from reactos/dll/win32/dbghelp/type.c rename to dll/win32/dbghelp/type.c diff --git a/reactos/dll/win32/dbghelp/version.rc b/dll/win32/dbghelp/version.rc similarity index 100% rename from reactos/dll/win32/dbghelp/version.rc rename to dll/win32/dbghelp/version.rc diff --git a/reactos/dll/win32/dbghelp/wdbgexts.h b/dll/win32/dbghelp/wdbgexts.h similarity index 100% rename from reactos/dll/win32/dbghelp/wdbgexts.h rename to dll/win32/dbghelp/wdbgexts.h diff --git a/reactos/dll/win32/dciman32/CMakeLists.txt b/dll/win32/dciman32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/dciman32/CMakeLists.txt rename to dll/win32/dciman32/CMakeLists.txt diff --git a/reactos/dll/win32/dciman32/dciman32.spec b/dll/win32/dciman32/dciman32.spec similarity index 100% rename from reactos/dll/win32/dciman32/dciman32.spec rename to dll/win32/dciman32/dciman32.spec diff --git a/reactos/dll/win32/dciman32/dciman_main.c b/dll/win32/dciman32/dciman_main.c similarity index 100% rename from reactos/dll/win32/dciman32/dciman_main.c rename to dll/win32/dciman32/dciman_main.c diff --git a/reactos/dll/win32/devmgr/CMakeLists.txt b/dll/win32/devmgr/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/devmgr/CMakeLists.txt rename to dll/win32/devmgr/CMakeLists.txt diff --git a/reactos/dll/win32/devmgr/advprop.c b/dll/win32/devmgr/advprop.c similarity index 100% rename from reactos/dll/win32/devmgr/advprop.c rename to dll/win32/devmgr/advprop.c diff --git a/reactos/dll/win32/devmgr/devmgr.rc b/dll/win32/devmgr/devmgr.rc similarity index 100% rename from reactos/dll/win32/devmgr/devmgr.rc rename to dll/win32/devmgr/devmgr.rc diff --git a/reactos/dll/win32/devmgr/devmgr.spec b/dll/win32/devmgr/devmgr.spec similarity index 100% rename from reactos/dll/win32/devmgr/devmgr.spec rename to dll/win32/devmgr/devmgr.spec diff --git a/reactos/dll/win32/devmgr/devprblm.c b/dll/win32/devmgr/devprblm.c similarity index 100% rename from reactos/dll/win32/devmgr/devprblm.c rename to dll/win32/devmgr/devprblm.c diff --git a/reactos/dll/win32/devmgr/hwpage.c b/dll/win32/devmgr/hwpage.c similarity index 100% rename from reactos/dll/win32/devmgr/hwpage.c rename to dll/win32/devmgr/hwpage.c diff --git a/reactos/dll/win32/devmgr/lang/bg-BG.rc b/dll/win32/devmgr/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/bg-BG.rc rename to dll/win32/devmgr/lang/bg-BG.rc diff --git a/reactos/dll/win32/devmgr/lang/cs-CZ.rc b/dll/win32/devmgr/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/cs-CZ.rc rename to dll/win32/devmgr/lang/cs-CZ.rc diff --git a/reactos/dll/win32/devmgr/lang/de-DE.rc b/dll/win32/devmgr/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/de-DE.rc rename to dll/win32/devmgr/lang/de-DE.rc diff --git a/reactos/dll/win32/devmgr/lang/el-GR.rc b/dll/win32/devmgr/lang/el-GR.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/el-GR.rc rename to dll/win32/devmgr/lang/el-GR.rc diff --git a/reactos/dll/win32/devmgr/lang/en-US.rc b/dll/win32/devmgr/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/en-US.rc rename to dll/win32/devmgr/lang/en-US.rc diff --git a/reactos/dll/win32/devmgr/lang/es-ES.rc b/dll/win32/devmgr/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/es-ES.rc rename to dll/win32/devmgr/lang/es-ES.rc diff --git a/reactos/dll/win32/devmgr/lang/fr-FR.rc b/dll/win32/devmgr/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/fr-FR.rc rename to dll/win32/devmgr/lang/fr-FR.rc diff --git a/reactos/dll/win32/devmgr/lang/hu-HU.rc b/dll/win32/devmgr/lang/hu-HU.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/hu-HU.rc rename to dll/win32/devmgr/lang/hu-HU.rc diff --git a/reactos/dll/win32/devmgr/lang/id-ID.rc b/dll/win32/devmgr/lang/id-ID.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/id-ID.rc rename to dll/win32/devmgr/lang/id-ID.rc diff --git a/reactos/dll/win32/devmgr/lang/it-IT.rc b/dll/win32/devmgr/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/it-IT.rc rename to dll/win32/devmgr/lang/it-IT.rc diff --git a/reactos/dll/win32/devmgr/lang/no-NO.rc b/dll/win32/devmgr/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/no-NO.rc rename to dll/win32/devmgr/lang/no-NO.rc diff --git a/reactos/dll/win32/devmgr/lang/pl-PL.rc b/dll/win32/devmgr/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/pl-PL.rc rename to dll/win32/devmgr/lang/pl-PL.rc diff --git a/reactos/dll/win32/devmgr/lang/pt-BR.rc b/dll/win32/devmgr/lang/pt-BR.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/pt-BR.rc rename to dll/win32/devmgr/lang/pt-BR.rc diff --git a/reactos/dll/win32/devmgr/lang/ro-RO.rc b/dll/win32/devmgr/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/ro-RO.rc rename to dll/win32/devmgr/lang/ro-RO.rc diff --git a/reactos/dll/win32/devmgr/lang/ru-RU.rc b/dll/win32/devmgr/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/ru-RU.rc rename to dll/win32/devmgr/lang/ru-RU.rc diff --git a/reactos/dll/win32/devmgr/lang/sk-SK.rc b/dll/win32/devmgr/lang/sk-SK.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/sk-SK.rc rename to dll/win32/devmgr/lang/sk-SK.rc diff --git a/reactos/dll/win32/devmgr/lang/uk-UA.rc b/dll/win32/devmgr/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/devmgr/lang/uk-UA.rc rename to dll/win32/devmgr/lang/uk-UA.rc diff --git a/reactos/dll/win32/devmgr/misc.c b/dll/win32/devmgr/misc.c similarity index 100% rename from reactos/dll/win32/devmgr/misc.c rename to dll/win32/devmgr/misc.c diff --git a/reactos/dll/win32/devmgr/precomp.h b/dll/win32/devmgr/precomp.h similarity index 100% rename from reactos/dll/win32/devmgr/precomp.h rename to dll/win32/devmgr/precomp.h diff --git a/reactos/dll/win32/devmgr/resource.h b/dll/win32/devmgr/resource.h similarity index 100% rename from reactos/dll/win32/devmgr/resource.h rename to dll/win32/devmgr/resource.h diff --git a/reactos/dll/win32/devmgr/resources/devmgr.ico b/dll/win32/devmgr/resources/devmgr.ico similarity index 100% rename from reactos/dll/win32/devmgr/resources/devmgr.ico rename to dll/win32/devmgr/resources/devmgr.ico diff --git a/reactos/dll/win32/devmgr/stubs.c b/dll/win32/devmgr/stubs.c similarity index 100% rename from reactos/dll/win32/devmgr/stubs.c rename to dll/win32/devmgr/stubs.c diff --git a/reactos/dll/win32/dhcpcsvc/CMakeLists.txt b/dll/win32/dhcpcsvc/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/dhcpcsvc/CMakeLists.txt rename to dll/win32/dhcpcsvc/CMakeLists.txt diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/adapter.c b/dll/win32/dhcpcsvc/dhcp/adapter.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/adapter.c rename to dll/win32/dhcpcsvc/dhcp/adapter.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/alloc.c b/dll/win32/dhcpcsvc/dhcp/alloc.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/alloc.c rename to dll/win32/dhcpcsvc/dhcp/alloc.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/api.c b/dll/win32/dhcpcsvc/dhcp/api.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/api.c rename to dll/win32/dhcpcsvc/dhcp/api.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/compat.c b/dll/win32/dhcpcsvc/dhcp/compat.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/compat.c rename to dll/win32/dhcpcsvc/dhcp/compat.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/dhclient.c b/dll/win32/dhcpcsvc/dhcp/dhclient.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/dhclient.c rename to dll/win32/dhcpcsvc/dhcp/dhclient.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/dispatch.c b/dll/win32/dhcpcsvc/dhcp/dispatch.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/dispatch.c rename to dll/win32/dhcpcsvc/dhcp/dispatch.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/hash.c b/dll/win32/dhcpcsvc/dhcp/hash.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/hash.c rename to dll/win32/dhcpcsvc/dhcp/hash.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/options.c b/dll/win32/dhcpcsvc/dhcp/options.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/options.c rename to dll/win32/dhcpcsvc/dhcp/options.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/pipe.c b/dll/win32/dhcpcsvc/dhcp/pipe.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/pipe.c rename to dll/win32/dhcpcsvc/dhcp/pipe.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/socket.c b/dll/win32/dhcpcsvc/dhcp/socket.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/socket.c rename to dll/win32/dhcpcsvc/dhcp/socket.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/tables.c b/dll/win32/dhcpcsvc/dhcp/tables.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/tables.c rename to dll/win32/dhcpcsvc/dhcp/tables.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/tree.c b/dll/win32/dhcpcsvc/dhcp/tree.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/tree.c rename to dll/win32/dhcpcsvc/dhcp/tree.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/util.c b/dll/win32/dhcpcsvc/dhcp/util.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcp/util.c rename to dll/win32/dhcpcsvc/dhcp/util.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcpcsvc.c b/dll/win32/dhcpcsvc/dhcpcsvc.c similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcpcsvc.c rename to dll/win32/dhcpcsvc/dhcpcsvc.c diff --git a/reactos/dll/win32/dhcpcsvc/dhcpcsvc.rc b/dll/win32/dhcpcsvc/dhcpcsvc.rc similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcpcsvc.rc rename to dll/win32/dhcpcsvc/dhcpcsvc.rc diff --git a/reactos/dll/win32/dhcpcsvc/dhcpcsvc.spec b/dll/win32/dhcpcsvc/dhcpcsvc.spec similarity index 100% rename from reactos/dll/win32/dhcpcsvc/dhcpcsvc.spec rename to dll/win32/dhcpcsvc/dhcpcsvc.spec diff --git a/reactos/dll/win32/dhcpcsvc/include/debug.h b/dll/win32/dhcpcsvc/include/debug.h similarity index 100% rename from reactos/dll/win32/dhcpcsvc/include/debug.h rename to dll/win32/dhcpcsvc/include/debug.h diff --git a/reactos/dll/win32/dhcpcsvc/include/dhcp.h b/dll/win32/dhcpcsvc/include/dhcp.h similarity index 100% rename from reactos/dll/win32/dhcpcsvc/include/dhcp.h rename to dll/win32/dhcpcsvc/include/dhcp.h diff --git a/reactos/dll/win32/dhcpcsvc/include/dhcpd.h b/dll/win32/dhcpcsvc/include/dhcpd.h similarity index 100% rename from reactos/dll/win32/dhcpcsvc/include/dhcpd.h rename to dll/win32/dhcpcsvc/include/dhcpd.h diff --git a/reactos/dll/win32/dhcpcsvc/include/hash.h b/dll/win32/dhcpcsvc/include/hash.h similarity index 100% rename from reactos/dll/win32/dhcpcsvc/include/hash.h rename to dll/win32/dhcpcsvc/include/hash.h diff --git a/reactos/dll/win32/dhcpcsvc/include/rosdhcp.h b/dll/win32/dhcpcsvc/include/rosdhcp.h similarity index 100% rename from reactos/dll/win32/dhcpcsvc/include/rosdhcp.h rename to dll/win32/dhcpcsvc/include/rosdhcp.h diff --git a/reactos/dll/win32/dhcpcsvc/include/tree.h b/dll/win32/dhcpcsvc/include/tree.h similarity index 100% rename from reactos/dll/win32/dhcpcsvc/include/tree.h rename to dll/win32/dhcpcsvc/include/tree.h diff --git a/reactos/dll/win32/dnsapi/CMakeLists.txt b/dll/win32/dnsapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/dnsapi/CMakeLists.txt rename to dll/win32/dnsapi/CMakeLists.txt diff --git a/reactos/dll/win32/dnsapi/dnsapi.rc b/dll/win32/dnsapi/dnsapi.rc similarity index 100% rename from reactos/dll/win32/dnsapi/dnsapi.rc rename to dll/win32/dnsapi/dnsapi.rc diff --git a/reactos/dll/win32/dnsapi/dnsapi.spec b/dll/win32/dnsapi/dnsapi.spec similarity index 100% rename from reactos/dll/win32/dnsapi/dnsapi.spec rename to dll/win32/dnsapi/dnsapi.spec diff --git a/reactos/dll/win32/dnsapi/dnsapi/adns.c b/dll/win32/dnsapi/dnsapi/adns.c similarity index 100% rename from reactos/dll/win32/dnsapi/dnsapi/adns.c rename to dll/win32/dnsapi/dnsapi/adns.c diff --git a/reactos/dll/win32/dnsapi/dnsapi/context.c b/dll/win32/dnsapi/dnsapi/context.c similarity index 100% rename from reactos/dll/win32/dnsapi/dnsapi/context.c rename to dll/win32/dnsapi/dnsapi/context.c diff --git a/reactos/dll/win32/dnsapi/dnsapi/memory.c b/dll/win32/dnsapi/dnsapi/memory.c similarity index 100% rename from reactos/dll/win32/dnsapi/dnsapi/memory.c rename to dll/win32/dnsapi/dnsapi/memory.c diff --git a/reactos/dll/win32/dnsapi/dnsapi/names.c b/dll/win32/dnsapi/dnsapi/names.c similarity index 100% rename from reactos/dll/win32/dnsapi/dnsapi/names.c rename to dll/win32/dnsapi/dnsapi/names.c diff --git a/reactos/dll/win32/dnsapi/dnsapi/precomp.h b/dll/win32/dnsapi/dnsapi/precomp.h similarity index 100% rename from reactos/dll/win32/dnsapi/dnsapi/precomp.h rename to dll/win32/dnsapi/dnsapi/precomp.h diff --git a/reactos/dll/win32/dnsapi/dnsapi/query.c b/dll/win32/dnsapi/dnsapi/query.c similarity index 100% rename from reactos/dll/win32/dnsapi/dnsapi/query.c rename to dll/win32/dnsapi/dnsapi/query.c diff --git a/reactos/dll/win32/dnsapi/dnsapi/record.c b/dll/win32/dnsapi/dnsapi/record.c similarity index 100% rename from reactos/dll/win32/dnsapi/dnsapi/record.c rename to dll/win32/dnsapi/dnsapi/record.c diff --git a/reactos/dll/win32/dnsapi/dnsapi/stubs.c b/dll/win32/dnsapi/dnsapi/stubs.c similarity index 100% rename from reactos/dll/win32/dnsapi/dnsapi/stubs.c rename to dll/win32/dnsapi/dnsapi/stubs.c diff --git a/reactos/dll/win32/dnsapi/include/internal/windns.h b/dll/win32/dnsapi/include/internal/windns.h similarity index 100% rename from reactos/dll/win32/dnsapi/include/internal/windns.h rename to dll/win32/dnsapi/include/internal/windns.h diff --git a/reactos/dll/win32/dwmapi/CMakeLists.txt b/dll/win32/dwmapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/dwmapi/CMakeLists.txt rename to dll/win32/dwmapi/CMakeLists.txt diff --git a/reactos/dll/win32/dwmapi/dwmapi.spec b/dll/win32/dwmapi/dwmapi.spec similarity index 100% rename from reactos/dll/win32/dwmapi/dwmapi.spec rename to dll/win32/dwmapi/dwmapi.spec diff --git a/reactos/dll/win32/dwmapi/dwmapi_main.c b/dll/win32/dwmapi/dwmapi_main.c similarity index 100% rename from reactos/dll/win32/dwmapi/dwmapi_main.c rename to dll/win32/dwmapi/dwmapi_main.c diff --git a/reactos/dll/win32/dwmapi/dwmapi_ros.diff b/dll/win32/dwmapi/dwmapi_ros.diff similarity index 100% rename from reactos/dll/win32/dwmapi/dwmapi_ros.diff rename to dll/win32/dwmapi/dwmapi_ros.diff diff --git a/reactos/dll/win32/dwmapi/version.rc b/dll/win32/dwmapi/version.rc similarity index 100% rename from reactos/dll/win32/dwmapi/version.rc rename to dll/win32/dwmapi/version.rc diff --git a/reactos/dll/win32/faultrep/CMakeLists.txt b/dll/win32/faultrep/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/faultrep/CMakeLists.txt rename to dll/win32/faultrep/CMakeLists.txt diff --git a/reactos/dll/win32/faultrep/faultrep.c b/dll/win32/faultrep/faultrep.c similarity index 100% rename from reactos/dll/win32/faultrep/faultrep.c rename to dll/win32/faultrep/faultrep.c diff --git a/reactos/dll/win32/faultrep/faultrep.spec b/dll/win32/faultrep/faultrep.spec similarity index 100% rename from reactos/dll/win32/faultrep/faultrep.spec rename to dll/win32/faultrep/faultrep.spec diff --git a/reactos/dll/win32/fmifs/CMakeLists.txt b/dll/win32/fmifs/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/fmifs/CMakeLists.txt rename to dll/win32/fmifs/CMakeLists.txt diff --git a/reactos/dll/win32/fmifs/chkdsk.c b/dll/win32/fmifs/chkdsk.c similarity index 100% rename from reactos/dll/win32/fmifs/chkdsk.c rename to dll/win32/fmifs/chkdsk.c diff --git a/reactos/dll/win32/fmifs/compress.c b/dll/win32/fmifs/compress.c similarity index 100% rename from reactos/dll/win32/fmifs/compress.c rename to dll/win32/fmifs/compress.c diff --git a/reactos/dll/win32/fmifs/diskcopy.c b/dll/win32/fmifs/diskcopy.c similarity index 100% rename from reactos/dll/win32/fmifs/diskcopy.c rename to dll/win32/fmifs/diskcopy.c diff --git a/reactos/dll/win32/fmifs/extend.c b/dll/win32/fmifs/extend.c similarity index 100% rename from reactos/dll/win32/fmifs/extend.c rename to dll/win32/fmifs/extend.c diff --git a/reactos/dll/win32/fmifs/fmifs.rc b/dll/win32/fmifs/fmifs.rc similarity index 100% rename from reactos/dll/win32/fmifs/fmifs.rc rename to dll/win32/fmifs/fmifs.rc diff --git a/reactos/dll/win32/fmifs/fmifs.spec b/dll/win32/fmifs/fmifs.spec similarity index 100% rename from reactos/dll/win32/fmifs/fmifs.spec rename to dll/win32/fmifs/fmifs.spec diff --git a/reactos/dll/win32/fmifs/format.c b/dll/win32/fmifs/format.c similarity index 100% rename from reactos/dll/win32/fmifs/format.c rename to dll/win32/fmifs/format.c diff --git a/reactos/dll/win32/fmifs/init.c b/dll/win32/fmifs/init.c similarity index 100% rename from reactos/dll/win32/fmifs/init.c rename to dll/win32/fmifs/init.c diff --git a/reactos/dll/win32/fmifs/media.c b/dll/win32/fmifs/media.c similarity index 100% rename from reactos/dll/win32/fmifs/media.c rename to dll/win32/fmifs/media.c diff --git a/reactos/dll/win32/fmifs/precomp.h b/dll/win32/fmifs/precomp.h similarity index 100% rename from reactos/dll/win32/fmifs/precomp.h rename to dll/win32/fmifs/precomp.h diff --git a/reactos/dll/win32/fmifs/query.c b/dll/win32/fmifs/query.c similarity index 100% rename from reactos/dll/win32/fmifs/query.c rename to dll/win32/fmifs/query.c diff --git a/reactos/dll/win32/fusion/CMakeLists.txt b/dll/win32/fusion/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/fusion/CMakeLists.txt rename to dll/win32/fusion/CMakeLists.txt diff --git a/reactos/dll/win32/fusion/asmcache.c b/dll/win32/fusion/asmcache.c similarity index 100% rename from reactos/dll/win32/fusion/asmcache.c rename to dll/win32/fusion/asmcache.c diff --git a/reactos/dll/win32/fusion/asmenum.c b/dll/win32/fusion/asmenum.c similarity index 100% rename from reactos/dll/win32/fusion/asmenum.c rename to dll/win32/fusion/asmenum.c diff --git a/reactos/dll/win32/fusion/asmname.c b/dll/win32/fusion/asmname.c similarity index 100% rename from reactos/dll/win32/fusion/asmname.c rename to dll/win32/fusion/asmname.c diff --git a/reactos/dll/win32/fusion/assembly.c b/dll/win32/fusion/assembly.c similarity index 100% rename from reactos/dll/win32/fusion/assembly.c rename to dll/win32/fusion/assembly.c diff --git a/reactos/dll/win32/fusion/fusion.c b/dll/win32/fusion/fusion.c similarity index 100% rename from reactos/dll/win32/fusion/fusion.c rename to dll/win32/fusion/fusion.c diff --git a/reactos/dll/win32/fusion/fusion.spec b/dll/win32/fusion/fusion.spec similarity index 100% rename from reactos/dll/win32/fusion/fusion.spec rename to dll/win32/fusion/fusion.spec diff --git a/reactos/dll/win32/fusion/fusion_main.c b/dll/win32/fusion/fusion_main.c similarity index 100% rename from reactos/dll/win32/fusion/fusion_main.c rename to dll/win32/fusion/fusion_main.c diff --git a/reactos/dll/win32/fusion/fusionpriv.h b/dll/win32/fusion/fusionpriv.h similarity index 100% rename from reactos/dll/win32/fusion/fusionpriv.h rename to dll/win32/fusion/fusionpriv.h diff --git a/reactos/dll/win32/fusion/version.rc b/dll/win32/fusion/version.rc similarity index 100% rename from reactos/dll/win32/fusion/version.rc rename to dll/win32/fusion/version.rc diff --git a/reactos/dll/win32/gdiplus/CMakeLists.txt b/dll/win32/gdiplus/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/gdiplus/CMakeLists.txt rename to dll/win32/gdiplus/CMakeLists.txt diff --git a/reactos/dll/win32/gdiplus/brush.c b/dll/win32/gdiplus/brush.c similarity index 100% rename from reactos/dll/win32/gdiplus/brush.c rename to dll/win32/gdiplus/brush.c diff --git a/reactos/dll/win32/gdiplus/customlinecap.c b/dll/win32/gdiplus/customlinecap.c similarity index 100% rename from reactos/dll/win32/gdiplus/customlinecap.c rename to dll/win32/gdiplus/customlinecap.c diff --git a/reactos/dll/win32/gdiplus/font.c b/dll/win32/gdiplus/font.c similarity index 100% rename from reactos/dll/win32/gdiplus/font.c rename to dll/win32/gdiplus/font.c diff --git a/reactos/dll/win32/gdiplus/gdiplus.c b/dll/win32/gdiplus/gdiplus.c similarity index 100% rename from reactos/dll/win32/gdiplus/gdiplus.c rename to dll/win32/gdiplus/gdiplus.c diff --git a/reactos/dll/win32/gdiplus/gdiplus.manifest b/dll/win32/gdiplus/gdiplus.manifest similarity index 100% rename from reactos/dll/win32/gdiplus/gdiplus.manifest rename to dll/win32/gdiplus/gdiplus.manifest diff --git a/reactos/dll/win32/gdiplus/gdiplus.rc b/dll/win32/gdiplus/gdiplus.rc similarity index 100% rename from reactos/dll/win32/gdiplus/gdiplus.rc rename to dll/win32/gdiplus/gdiplus.rc diff --git a/reactos/dll/win32/gdiplus/gdiplus.spec b/dll/win32/gdiplus/gdiplus.spec similarity index 100% rename from reactos/dll/win32/gdiplus/gdiplus.spec rename to dll/win32/gdiplus/gdiplus.spec diff --git a/reactos/dll/win32/gdiplus/gdiplus_private.h b/dll/win32/gdiplus/gdiplus_private.h similarity index 100% rename from reactos/dll/win32/gdiplus/gdiplus_private.h rename to dll/win32/gdiplus/gdiplus_private.h diff --git a/reactos/dll/win32/gdiplus/gdiplus_ros.diff b/dll/win32/gdiplus/gdiplus_ros.diff similarity index 100% rename from reactos/dll/win32/gdiplus/gdiplus_ros.diff rename to dll/win32/gdiplus/gdiplus_ros.diff diff --git a/reactos/dll/win32/gdiplus/graphics.c b/dll/win32/gdiplus/graphics.c similarity index 100% rename from reactos/dll/win32/gdiplus/graphics.c rename to dll/win32/gdiplus/graphics.c diff --git a/reactos/dll/win32/gdiplus/graphicspath.c b/dll/win32/gdiplus/graphicspath.c similarity index 100% rename from reactos/dll/win32/gdiplus/graphicspath.c rename to dll/win32/gdiplus/graphicspath.c diff --git a/reactos/dll/win32/gdiplus/image.c b/dll/win32/gdiplus/image.c similarity index 100% rename from reactos/dll/win32/gdiplus/image.c rename to dll/win32/gdiplus/image.c diff --git a/reactos/dll/win32/gdiplus/imageattributes.c b/dll/win32/gdiplus/imageattributes.c similarity index 100% rename from reactos/dll/win32/gdiplus/imageattributes.c rename to dll/win32/gdiplus/imageattributes.c diff --git a/reactos/dll/win32/gdiplus/matrix.c b/dll/win32/gdiplus/matrix.c similarity index 100% rename from reactos/dll/win32/gdiplus/matrix.c rename to dll/win32/gdiplus/matrix.c diff --git a/reactos/dll/win32/gdiplus/metafile.c b/dll/win32/gdiplus/metafile.c similarity index 100% rename from reactos/dll/win32/gdiplus/metafile.c rename to dll/win32/gdiplus/metafile.c diff --git a/reactos/dll/win32/gdiplus/pathiterator.c b/dll/win32/gdiplus/pathiterator.c similarity index 100% rename from reactos/dll/win32/gdiplus/pathiterator.c rename to dll/win32/gdiplus/pathiterator.c diff --git a/reactos/dll/win32/gdiplus/pen.c b/dll/win32/gdiplus/pen.c similarity index 100% rename from reactos/dll/win32/gdiplus/pen.c rename to dll/win32/gdiplus/pen.c diff --git a/reactos/dll/win32/gdiplus/region.c b/dll/win32/gdiplus/region.c similarity index 100% rename from reactos/dll/win32/gdiplus/region.c rename to dll/win32/gdiplus/region.c diff --git a/reactos/dll/win32/gdiplus/stringformat.c b/dll/win32/gdiplus/stringformat.c similarity index 100% rename from reactos/dll/win32/gdiplus/stringformat.c rename to dll/win32/gdiplus/stringformat.c diff --git a/reactos/dll/win32/getuname/CMakeLists.txt b/dll/win32/getuname/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/getuname/CMakeLists.txt rename to dll/win32/getuname/CMakeLists.txt diff --git a/reactos/dll/win32/getuname/getuname.c b/dll/win32/getuname/getuname.c similarity index 100% rename from reactos/dll/win32/getuname/getuname.c rename to dll/win32/getuname/getuname.c diff --git a/reactos/dll/win32/getuname/getuname.rc b/dll/win32/getuname/getuname.rc similarity index 100% rename from reactos/dll/win32/getuname/getuname.rc rename to dll/win32/getuname/getuname.rc diff --git a/reactos/dll/win32/getuname/getuname.spec b/dll/win32/getuname/getuname.spec similarity index 100% rename from reactos/dll/win32/getuname/getuname.spec rename to dll/win32/getuname/getuname.spec diff --git a/reactos/dll/win32/hhctrl.ocx/CMakeLists.txt b/dll/win32/hhctrl.ocx/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/CMakeLists.txt rename to dll/win32/hhctrl.ocx/CMakeLists.txt diff --git a/reactos/dll/win32/hhctrl.ocx/Cs.rc b/dll/win32/hhctrl.ocx/Cs.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Cs.rc rename to dll/win32/hhctrl.ocx/Cs.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Da.rc b/dll/win32/hhctrl.ocx/Da.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Da.rc rename to dll/win32/hhctrl.ocx/Da.rc diff --git a/reactos/dll/win32/hhctrl.ocx/De.rc b/dll/win32/hhctrl.ocx/De.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/De.rc rename to dll/win32/hhctrl.ocx/De.rc diff --git a/reactos/dll/win32/hhctrl.ocx/El.rc b/dll/win32/hhctrl.ocx/El.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/El.rc rename to dll/win32/hhctrl.ocx/El.rc diff --git a/reactos/dll/win32/hhctrl.ocx/En.rc b/dll/win32/hhctrl.ocx/En.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/En.rc rename to dll/win32/hhctrl.ocx/En.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Es.rc b/dll/win32/hhctrl.ocx/Es.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Es.rc rename to dll/win32/hhctrl.ocx/Es.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Fi.rc b/dll/win32/hhctrl.ocx/Fi.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Fi.rc rename to dll/win32/hhctrl.ocx/Fi.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Fr.rc b/dll/win32/hhctrl.ocx/Fr.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Fr.rc rename to dll/win32/hhctrl.ocx/Fr.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Hu.rc b/dll/win32/hhctrl.ocx/Hu.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Hu.rc rename to dll/win32/hhctrl.ocx/Hu.rc diff --git a/reactos/dll/win32/hhctrl.ocx/It.rc b/dll/win32/hhctrl.ocx/It.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/It.rc rename to dll/win32/hhctrl.ocx/It.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Ja.rc b/dll/win32/hhctrl.ocx/Ja.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Ja.rc rename to dll/win32/hhctrl.ocx/Ja.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Ko.rc b/dll/win32/hhctrl.ocx/Ko.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Ko.rc rename to dll/win32/hhctrl.ocx/Ko.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Lt.rc b/dll/win32/hhctrl.ocx/Lt.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Lt.rc rename to dll/win32/hhctrl.ocx/Lt.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Nl.rc b/dll/win32/hhctrl.ocx/Nl.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Nl.rc rename to dll/win32/hhctrl.ocx/Nl.rc diff --git a/reactos/dll/win32/hhctrl.ocx/No.rc b/dll/win32/hhctrl.ocx/No.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/No.rc rename to dll/win32/hhctrl.ocx/No.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Pl.rc b/dll/win32/hhctrl.ocx/Pl.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Pl.rc rename to dll/win32/hhctrl.ocx/Pl.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Pt.rc b/dll/win32/hhctrl.ocx/Pt.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Pt.rc rename to dll/win32/hhctrl.ocx/Pt.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Ro.rc b/dll/win32/hhctrl.ocx/Ro.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Ro.rc rename to dll/win32/hhctrl.ocx/Ro.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Ru.rc b/dll/win32/hhctrl.ocx/Ru.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Ru.rc rename to dll/win32/hhctrl.ocx/Ru.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Si.rc b/dll/win32/hhctrl.ocx/Si.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Si.rc rename to dll/win32/hhctrl.ocx/Si.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Sv.rc b/dll/win32/hhctrl.ocx/Sv.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Sv.rc rename to dll/win32/hhctrl.ocx/Sv.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Tr.rc b/dll/win32/hhctrl.ocx/Tr.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Tr.rc rename to dll/win32/hhctrl.ocx/Tr.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Uk.rc b/dll/win32/hhctrl.ocx/Uk.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Uk.rc rename to dll/win32/hhctrl.ocx/Uk.rc diff --git a/reactos/dll/win32/hhctrl.ocx/Zh.rc b/dll/win32/hhctrl.ocx/Zh.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/Zh.rc rename to dll/win32/hhctrl.ocx/Zh.rc diff --git a/reactos/dll/win32/hhctrl.ocx/chm.c b/dll/win32/hhctrl.ocx/chm.c similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/chm.c rename to dll/win32/hhctrl.ocx/chm.c diff --git a/reactos/dll/win32/hhctrl.ocx/content.c b/dll/win32/hhctrl.ocx/content.c similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/content.c rename to dll/win32/hhctrl.ocx/content.c diff --git a/reactos/dll/win32/hhctrl.ocx/help.c b/dll/win32/hhctrl.ocx/help.c similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/help.c rename to dll/win32/hhctrl.ocx/help.c diff --git a/reactos/dll/win32/hhctrl.ocx/hhctrl.c b/dll/win32/hhctrl.ocx/hhctrl.c similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/hhctrl.c rename to dll/win32/hhctrl.ocx/hhctrl.c diff --git a/reactos/dll/win32/hhctrl.ocx/hhctrl.h b/dll/win32/hhctrl.ocx/hhctrl.h similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/hhctrl.h rename to dll/win32/hhctrl.ocx/hhctrl.h diff --git a/reactos/dll/win32/hhctrl.ocx/hhctrl.ocx.spec b/dll/win32/hhctrl.ocx/hhctrl.ocx.spec similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/hhctrl.ocx.spec rename to dll/win32/hhctrl.ocx/hhctrl.ocx.spec diff --git a/reactos/dll/win32/hhctrl.ocx/hhctrl.rc b/dll/win32/hhctrl.ocx/hhctrl.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/hhctrl.rc rename to dll/win32/hhctrl.ocx/hhctrl.rc diff --git a/reactos/dll/win32/hhctrl.ocx/index.c b/dll/win32/hhctrl.ocx/index.c similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/index.c rename to dll/win32/hhctrl.ocx/index.c diff --git a/reactos/dll/win32/hhctrl.ocx/regsvr.c b/dll/win32/hhctrl.ocx/regsvr.c similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/regsvr.c rename to dll/win32/hhctrl.ocx/regsvr.c diff --git a/reactos/dll/win32/hhctrl.ocx/resource.h b/dll/win32/hhctrl.ocx/resource.h similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/resource.h rename to dll/win32/hhctrl.ocx/resource.h diff --git a/reactos/dll/win32/hhctrl.ocx/search.c b/dll/win32/hhctrl.ocx/search.c similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/search.c rename to dll/win32/hhctrl.ocx/search.c diff --git a/reactos/dll/win32/hhctrl.ocx/stream.c b/dll/win32/hhctrl.ocx/stream.c similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/stream.c rename to dll/win32/hhctrl.ocx/stream.c diff --git a/reactos/dll/win32/hhctrl.ocx/stream.h b/dll/win32/hhctrl.ocx/stream.h similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/stream.h rename to dll/win32/hhctrl.ocx/stream.h diff --git a/reactos/dll/win32/hhctrl.ocx/version.rc b/dll/win32/hhctrl.ocx/version.rc similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/version.rc rename to dll/win32/hhctrl.ocx/version.rc diff --git a/reactos/dll/win32/hhctrl.ocx/webbrowser.c b/dll/win32/hhctrl.ocx/webbrowser.c similarity index 100% rename from reactos/dll/win32/hhctrl.ocx/webbrowser.c rename to dll/win32/hhctrl.ocx/webbrowser.c diff --git a/reactos/dll/win32/hid/CMakeLists.txt b/dll/win32/hid/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/hid/CMakeLists.txt rename to dll/win32/hid/CMakeLists.txt diff --git a/reactos/dll/win32/hid/hid.c b/dll/win32/hid/hid.c similarity index 100% rename from reactos/dll/win32/hid/hid.c rename to dll/win32/hid/hid.c diff --git a/reactos/dll/win32/hid/hid.rc b/dll/win32/hid/hid.rc similarity index 100% rename from reactos/dll/win32/hid/hid.rc rename to dll/win32/hid/hid.rc diff --git a/reactos/dll/win32/hid/hid.spec b/dll/win32/hid/hid.spec similarity index 100% rename from reactos/dll/win32/hid/hid.spec rename to dll/win32/hid/hid.spec diff --git a/reactos/dll/win32/hid/precomp.h b/dll/win32/hid/precomp.h similarity index 100% rename from reactos/dll/win32/hid/precomp.h rename to dll/win32/hid/precomp.h diff --git a/reactos/dll/win32/hid/stubs.c b/dll/win32/hid/stubs.c similarity index 100% rename from reactos/dll/win32/hid/stubs.c rename to dll/win32/hid/stubs.c diff --git a/reactos/dll/win32/hlink/CMakeLists.txt b/dll/win32/hlink/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/hlink/CMakeLists.txt rename to dll/win32/hlink/CMakeLists.txt diff --git a/reactos/dll/win32/hlink/browse_ctx.c b/dll/win32/hlink/browse_ctx.c similarity index 100% rename from reactos/dll/win32/hlink/browse_ctx.c rename to dll/win32/hlink/browse_ctx.c diff --git a/reactos/dll/win32/hlink/extserv.c b/dll/win32/hlink/extserv.c similarity index 100% rename from reactos/dll/win32/hlink/extserv.c rename to dll/win32/hlink/extserv.c diff --git a/reactos/dll/win32/hlink/hlink.rc b/dll/win32/hlink/hlink.rc similarity index 100% rename from reactos/dll/win32/hlink/hlink.rc rename to dll/win32/hlink/hlink.rc diff --git a/reactos/dll/win32/hlink/hlink.rgs b/dll/win32/hlink/hlink.rgs similarity index 100% rename from reactos/dll/win32/hlink/hlink.rgs rename to dll/win32/hlink/hlink.rgs diff --git a/reactos/dll/win32/hlink/hlink.spec b/dll/win32/hlink/hlink.spec similarity index 100% rename from reactos/dll/win32/hlink/hlink.spec rename to dll/win32/hlink/hlink.spec diff --git a/reactos/dll/win32/hlink/hlink_classes.idl b/dll/win32/hlink/hlink_classes.idl similarity index 100% rename from reactos/dll/win32/hlink/hlink_classes.idl rename to dll/win32/hlink/hlink_classes.idl diff --git a/reactos/dll/win32/hlink/hlink_main.c b/dll/win32/hlink/hlink_main.c similarity index 100% rename from reactos/dll/win32/hlink/hlink_main.c rename to dll/win32/hlink/hlink_main.c diff --git a/reactos/dll/win32/hlink/hlink_private.h b/dll/win32/hlink/hlink_private.h similarity index 100% rename from reactos/dll/win32/hlink/hlink_private.h rename to dll/win32/hlink/hlink_private.h diff --git a/reactos/dll/win32/hlink/link.c b/dll/win32/hlink/link.c similarity index 100% rename from reactos/dll/win32/hlink/link.c rename to dll/win32/hlink/link.c diff --git a/reactos/dll/win32/hnetcfg/CMakeLists.txt b/dll/win32/hnetcfg/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/hnetcfg/CMakeLists.txt rename to dll/win32/hnetcfg/CMakeLists.txt diff --git a/reactos/dll/win32/hnetcfg/apps.c b/dll/win32/hnetcfg/apps.c similarity index 100% rename from reactos/dll/win32/hnetcfg/apps.c rename to dll/win32/hnetcfg/apps.c diff --git a/reactos/dll/win32/hnetcfg/hnetcfg.c b/dll/win32/hnetcfg/hnetcfg.c similarity index 100% rename from reactos/dll/win32/hnetcfg/hnetcfg.c rename to dll/win32/hnetcfg/hnetcfg.c diff --git a/reactos/dll/win32/hnetcfg/hnetcfg.idl b/dll/win32/hnetcfg/hnetcfg.idl similarity index 100% rename from reactos/dll/win32/hnetcfg/hnetcfg.idl rename to dll/win32/hnetcfg/hnetcfg.idl diff --git a/reactos/dll/win32/hnetcfg/hnetcfg.rc b/dll/win32/hnetcfg/hnetcfg.rc similarity index 100% rename from reactos/dll/win32/hnetcfg/hnetcfg.rc rename to dll/win32/hnetcfg/hnetcfg.rc diff --git a/reactos/dll/win32/hnetcfg/hnetcfg.rgs b/dll/win32/hnetcfg/hnetcfg.rgs similarity index 100% rename from reactos/dll/win32/hnetcfg/hnetcfg.rgs rename to dll/win32/hnetcfg/hnetcfg.rgs diff --git a/reactos/dll/win32/hnetcfg/hnetcfg.spec b/dll/win32/hnetcfg/hnetcfg.spec similarity index 100% rename from reactos/dll/win32/hnetcfg/hnetcfg.spec rename to dll/win32/hnetcfg/hnetcfg.spec diff --git a/reactos/dll/win32/hnetcfg/hnetcfg_private.h b/dll/win32/hnetcfg/hnetcfg_private.h similarity index 100% rename from reactos/dll/win32/hnetcfg/hnetcfg_private.h rename to dll/win32/hnetcfg/hnetcfg_private.h diff --git a/reactos/dll/win32/hnetcfg/manager.c b/dll/win32/hnetcfg/manager.c similarity index 100% rename from reactos/dll/win32/hnetcfg/manager.c rename to dll/win32/hnetcfg/manager.c diff --git a/reactos/dll/win32/hnetcfg/policy.c b/dll/win32/hnetcfg/policy.c similarity index 100% rename from reactos/dll/win32/hnetcfg/policy.c rename to dll/win32/hnetcfg/policy.c diff --git a/reactos/dll/win32/hnetcfg/port.c b/dll/win32/hnetcfg/port.c similarity index 100% rename from reactos/dll/win32/hnetcfg/port.c rename to dll/win32/hnetcfg/port.c diff --git a/reactos/dll/win32/hnetcfg/profile.c b/dll/win32/hnetcfg/profile.c similarity index 100% rename from reactos/dll/win32/hnetcfg/profile.c rename to dll/win32/hnetcfg/profile.c diff --git a/reactos/dll/win32/hnetcfg/service.c b/dll/win32/hnetcfg/service.c similarity index 100% rename from reactos/dll/win32/hnetcfg/service.c rename to dll/win32/hnetcfg/service.c diff --git a/reactos/dll/win32/httpapi/CMakeLists.txt b/dll/win32/httpapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/httpapi/CMakeLists.txt rename to dll/win32/httpapi/CMakeLists.txt diff --git a/reactos/dll/win32/httpapi/httpapi.spec b/dll/win32/httpapi/httpapi.spec similarity index 100% rename from reactos/dll/win32/httpapi/httpapi.spec rename to dll/win32/httpapi/httpapi.spec diff --git a/reactos/dll/win32/httpapi/httpapi_main.c b/dll/win32/httpapi/httpapi_main.c similarity index 100% rename from reactos/dll/win32/httpapi/httpapi_main.c rename to dll/win32/httpapi/httpapi_main.c diff --git a/reactos/dll/win32/iccvid/CMakeLists.txt b/dll/win32/iccvid/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/iccvid/CMakeLists.txt rename to dll/win32/iccvid/CMakeLists.txt diff --git a/reactos/dll/win32/iccvid/iccvid.c b/dll/win32/iccvid/iccvid.c similarity index 100% rename from reactos/dll/win32/iccvid/iccvid.c rename to dll/win32/iccvid/iccvid.c diff --git a/reactos/dll/win32/iccvid/iccvid.spec b/dll/win32/iccvid/iccvid.spec similarity index 100% rename from reactos/dll/win32/iccvid/iccvid.spec rename to dll/win32/iccvid/iccvid.spec diff --git a/reactos/dll/win32/iccvid/iccvid_Cy.rc b/dll/win32/iccvid/iccvid_Cy.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Cy.rc rename to dll/win32/iccvid/iccvid_Cy.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Da.rc b/dll/win32/iccvid/iccvid_Da.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Da.rc rename to dll/win32/iccvid/iccvid_Da.rc diff --git a/reactos/dll/win32/iccvid/iccvid_De.rc b/dll/win32/iccvid/iccvid_De.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_De.rc rename to dll/win32/iccvid/iccvid_De.rc diff --git a/reactos/dll/win32/iccvid/iccvid_En.rc b/dll/win32/iccvid/iccvid_En.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_En.rc rename to dll/win32/iccvid/iccvid_En.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Es.rc b/dll/win32/iccvid/iccvid_Es.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Es.rc rename to dll/win32/iccvid/iccvid_Es.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Fr.rc b/dll/win32/iccvid/iccvid_Fr.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Fr.rc rename to dll/win32/iccvid/iccvid_Fr.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Hu.rc b/dll/win32/iccvid/iccvid_Hu.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Hu.rc rename to dll/win32/iccvid/iccvid_Hu.rc diff --git a/reactos/dll/win32/iccvid/iccvid_It.rc b/dll/win32/iccvid/iccvid_It.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_It.rc rename to dll/win32/iccvid/iccvid_It.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Ja.rc b/dll/win32/iccvid/iccvid_Ja.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Ja.rc rename to dll/win32/iccvid/iccvid_Ja.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Ko.rc b/dll/win32/iccvid/iccvid_Ko.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Ko.rc rename to dll/win32/iccvid/iccvid_Ko.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Lt.rc b/dll/win32/iccvid/iccvid_Lt.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Lt.rc rename to dll/win32/iccvid/iccvid_Lt.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Nl.rc b/dll/win32/iccvid/iccvid_Nl.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Nl.rc rename to dll/win32/iccvid/iccvid_Nl.rc diff --git a/reactos/dll/win32/iccvid/iccvid_No.rc b/dll/win32/iccvid/iccvid_No.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_No.rc rename to dll/win32/iccvid/iccvid_No.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Pl.rc b/dll/win32/iccvid/iccvid_Pl.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Pl.rc rename to dll/win32/iccvid/iccvid_Pl.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Pt.rc b/dll/win32/iccvid/iccvid_Pt.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Pt.rc rename to dll/win32/iccvid/iccvid_Pt.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Ro.rc b/dll/win32/iccvid/iccvid_Ro.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Ro.rc rename to dll/win32/iccvid/iccvid_Ro.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Ru.rc b/dll/win32/iccvid/iccvid_Ru.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Ru.rc rename to dll/win32/iccvid/iccvid_Ru.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Si.rc b/dll/win32/iccvid/iccvid_Si.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Si.rc rename to dll/win32/iccvid/iccvid_Si.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Sv.rc b/dll/win32/iccvid/iccvid_Sv.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Sv.rc rename to dll/win32/iccvid/iccvid_Sv.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Tr.rc b/dll/win32/iccvid/iccvid_Tr.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Tr.rc rename to dll/win32/iccvid/iccvid_Tr.rc diff --git a/reactos/dll/win32/iccvid/iccvid_Uk.rc b/dll/win32/iccvid/iccvid_Uk.rc similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_Uk.rc rename to dll/win32/iccvid/iccvid_Uk.rc diff --git a/reactos/dll/win32/iccvid/iccvid_private.h b/dll/win32/iccvid/iccvid_private.h similarity index 100% rename from reactos/dll/win32/iccvid/iccvid_private.h rename to dll/win32/iccvid/iccvid_private.h diff --git a/reactos/dll/win32/iccvid/rsrc.rc b/dll/win32/iccvid/rsrc.rc similarity index 100% rename from reactos/dll/win32/iccvid/rsrc.rc rename to dll/win32/iccvid/rsrc.rc diff --git a/reactos/dll/win32/icmp/CMakeLists.txt b/dll/win32/icmp/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/icmp/CMakeLists.txt rename to dll/win32/icmp/CMakeLists.txt diff --git a/reactos/dll/win32/icmp/icmp.rc b/dll/win32/icmp/icmp.rc similarity index 100% rename from reactos/dll/win32/icmp/icmp.rc rename to dll/win32/icmp/icmp.rc diff --git a/reactos/dll/win32/icmp/icmp.spec b/dll/win32/icmp/icmp.spec similarity index 100% rename from reactos/dll/win32/icmp/icmp.spec rename to dll/win32/icmp/icmp.spec diff --git a/reactos/dll/win32/icmp/icmp_main.c b/dll/win32/icmp/icmp_main.c similarity index 100% rename from reactos/dll/win32/icmp/icmp_main.c rename to dll/win32/icmp/icmp_main.c diff --git a/reactos/dll/win32/icmp/ip.h b/dll/win32/icmp/ip.h similarity index 100% rename from reactos/dll/win32/icmp/ip.h rename to dll/win32/icmp/ip.h diff --git a/reactos/dll/win32/icmp/ip_icmp.h b/dll/win32/icmp/ip_icmp.h similarity index 100% rename from reactos/dll/win32/icmp/ip_icmp.h rename to dll/win32/icmp/ip_icmp.h diff --git a/reactos/dll/win32/imaadp32.acm/CMakeLists.txt b/dll/win32/imaadp32.acm/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/imaadp32.acm/CMakeLists.txt rename to dll/win32/imaadp32.acm/CMakeLists.txt diff --git a/reactos/dll/win32/imaadp32.acm/imaadp32.acm.spec b/dll/win32/imaadp32.acm/imaadp32.acm.spec similarity index 100% rename from reactos/dll/win32/imaadp32.acm/imaadp32.acm.spec rename to dll/win32/imaadp32.acm/imaadp32.acm.spec diff --git a/reactos/dll/win32/imaadp32.acm/imaadp32.c b/dll/win32/imaadp32.acm/imaadp32.c similarity index 100% rename from reactos/dll/win32/imaadp32.acm/imaadp32.c rename to dll/win32/imaadp32.acm/imaadp32.c diff --git a/reactos/dll/win32/imagehlp/CMakeLists.txt b/dll/win32/imagehlp/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/imagehlp/CMakeLists.txt rename to dll/win32/imagehlp/CMakeLists.txt diff --git a/reactos/dll/win32/imagehlp/access.c b/dll/win32/imagehlp/access.c similarity index 100% rename from reactos/dll/win32/imagehlp/access.c rename to dll/win32/imagehlp/access.c diff --git a/reactos/dll/win32/imagehlp/imagehlp.rc b/dll/win32/imagehlp/imagehlp.rc similarity index 100% rename from reactos/dll/win32/imagehlp/imagehlp.rc rename to dll/win32/imagehlp/imagehlp.rc diff --git a/reactos/dll/win32/imagehlp/imagehlp.spec b/dll/win32/imagehlp/imagehlp.spec similarity index 100% rename from reactos/dll/win32/imagehlp/imagehlp.spec rename to dll/win32/imagehlp/imagehlp.spec diff --git a/reactos/dll/win32/imagehlp/imagehlp_main.c b/dll/win32/imagehlp/imagehlp_main.c similarity index 100% rename from reactos/dll/win32/imagehlp/imagehlp_main.c rename to dll/win32/imagehlp/imagehlp_main.c diff --git a/reactos/dll/win32/imagehlp/integrity.c b/dll/win32/imagehlp/integrity.c similarity index 100% rename from reactos/dll/win32/imagehlp/integrity.c rename to dll/win32/imagehlp/integrity.c diff --git a/reactos/dll/win32/imagehlp/modify.c b/dll/win32/imagehlp/modify.c similarity index 100% rename from reactos/dll/win32/imagehlp/modify.c rename to dll/win32/imagehlp/modify.c diff --git a/reactos/dll/win32/imagehlp/precomp.h b/dll/win32/imagehlp/precomp.h similarity index 100% rename from reactos/dll/win32/imagehlp/precomp.h rename to dll/win32/imagehlp/precomp.h diff --git a/reactos/dll/win32/imm32/CMakeLists.txt b/dll/win32/imm32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/imm32/CMakeLists.txt rename to dll/win32/imm32/CMakeLists.txt diff --git a/reactos/dll/win32/imm32/imm.c b/dll/win32/imm32/imm.c similarity index 100% rename from reactos/dll/win32/imm32/imm.c rename to dll/win32/imm32/imm.c diff --git a/reactos/dll/win32/imm32/imm32.spec b/dll/win32/imm32/imm32.spec similarity index 100% rename from reactos/dll/win32/imm32/imm32.spec rename to dll/win32/imm32/imm32.spec diff --git a/reactos/dll/win32/imm32/version.rc b/dll/win32/imm32/version.rc similarity index 100% rename from reactos/dll/win32/imm32/version.rc rename to dll/win32/imm32/version.rc diff --git a/reactos/dll/win32/inetcomm/CMakeLists.txt b/dll/win32/inetcomm/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/inetcomm/CMakeLists.txt rename to dll/win32/inetcomm/CMakeLists.txt diff --git a/reactos/dll/win32/inetcomm/imaptransport.c b/dll/win32/inetcomm/imaptransport.c similarity index 100% rename from reactos/dll/win32/inetcomm/imaptransport.c rename to dll/win32/inetcomm/imaptransport.c diff --git a/reactos/dll/win32/inetcomm/inetcomm.idl b/dll/win32/inetcomm/inetcomm.idl similarity index 100% rename from reactos/dll/win32/inetcomm/inetcomm.idl rename to dll/win32/inetcomm/inetcomm.idl diff --git a/reactos/dll/win32/inetcomm/inetcomm.rc b/dll/win32/inetcomm/inetcomm.rc similarity index 100% rename from reactos/dll/win32/inetcomm/inetcomm.rc rename to dll/win32/inetcomm/inetcomm.rc diff --git a/reactos/dll/win32/inetcomm/inetcomm.rgs b/dll/win32/inetcomm/inetcomm.rgs similarity index 100% rename from reactos/dll/win32/inetcomm/inetcomm.rgs rename to dll/win32/inetcomm/inetcomm.rgs diff --git a/reactos/dll/win32/inetcomm/inetcomm.spec b/dll/win32/inetcomm/inetcomm.spec similarity index 100% rename from reactos/dll/win32/inetcomm/inetcomm.spec rename to dll/win32/inetcomm/inetcomm.spec diff --git a/reactos/dll/win32/inetcomm/inetcomm_main.c b/dll/win32/inetcomm/inetcomm_main.c similarity index 100% rename from reactos/dll/win32/inetcomm/inetcomm_main.c rename to dll/win32/inetcomm/inetcomm_main.c diff --git a/reactos/dll/win32/inetcomm/inetcomm_private.h b/dll/win32/inetcomm/inetcomm_private.h similarity index 100% rename from reactos/dll/win32/inetcomm/inetcomm_private.h rename to dll/win32/inetcomm/inetcomm_private.h diff --git a/reactos/dll/win32/inetcomm/internettransport.c b/dll/win32/inetcomm/internettransport.c similarity index 100% rename from reactos/dll/win32/inetcomm/internettransport.c rename to dll/win32/inetcomm/internettransport.c diff --git a/reactos/dll/win32/inetcomm/mimeintl.c b/dll/win32/inetcomm/mimeintl.c similarity index 100% rename from reactos/dll/win32/inetcomm/mimeintl.c rename to dll/win32/inetcomm/mimeintl.c diff --git a/reactos/dll/win32/inetcomm/mimeole.c b/dll/win32/inetcomm/mimeole.c similarity index 100% rename from reactos/dll/win32/inetcomm/mimeole.c rename to dll/win32/inetcomm/mimeole.c diff --git a/reactos/dll/win32/inetcomm/pop3transport.c b/dll/win32/inetcomm/pop3transport.c similarity index 100% rename from reactos/dll/win32/inetcomm/pop3transport.c rename to dll/win32/inetcomm/pop3transport.c diff --git a/reactos/dll/win32/inetcomm/smtptransport.c b/dll/win32/inetcomm/smtptransport.c similarity index 100% rename from reactos/dll/win32/inetcomm/smtptransport.c rename to dll/win32/inetcomm/smtptransport.c diff --git a/reactos/dll/win32/inetmib1/CMakeLists.txt b/dll/win32/inetmib1/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/inetmib1/CMakeLists.txt rename to dll/win32/inetmib1/CMakeLists.txt diff --git a/reactos/dll/win32/inetmib1/inetmib1.spec b/dll/win32/inetmib1/inetmib1.spec similarity index 100% rename from reactos/dll/win32/inetmib1/inetmib1.spec rename to dll/win32/inetmib1/inetmib1.spec diff --git a/reactos/dll/win32/inetmib1/main.c b/dll/win32/inetmib1/main.c similarity index 100% rename from reactos/dll/win32/inetmib1/main.c rename to dll/win32/inetmib1/main.c diff --git a/reactos/dll/win32/initpki/CMakeLists.txt b/dll/win32/initpki/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/initpki/CMakeLists.txt rename to dll/win32/initpki/CMakeLists.txt diff --git a/reactos/dll/win32/initpki/initpki.spec b/dll/win32/initpki/initpki.spec similarity index 100% rename from reactos/dll/win32/initpki/initpki.spec rename to dll/win32/initpki/initpki.spec diff --git a/reactos/dll/win32/initpki/main.c b/dll/win32/initpki/main.c similarity index 100% rename from reactos/dll/win32/initpki/main.c rename to dll/win32/initpki/main.c diff --git a/reactos/dll/win32/inseng/CMakeLists.txt b/dll/win32/inseng/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/inseng/CMakeLists.txt rename to dll/win32/inseng/CMakeLists.txt diff --git a/reactos/dll/win32/inseng/inseng.idl b/dll/win32/inseng/inseng.idl similarity index 100% rename from reactos/dll/win32/inseng/inseng.idl rename to dll/win32/inseng/inseng.idl diff --git a/reactos/dll/win32/inseng/inseng.rc b/dll/win32/inseng/inseng.rc similarity index 100% rename from reactos/dll/win32/inseng/inseng.rc rename to dll/win32/inseng/inseng.rc diff --git a/reactos/dll/win32/inseng/inseng.rgs b/dll/win32/inseng/inseng.rgs similarity index 100% rename from reactos/dll/win32/inseng/inseng.rgs rename to dll/win32/inseng/inseng.rgs diff --git a/reactos/dll/win32/inseng/inseng.spec b/dll/win32/inseng/inseng.spec similarity index 100% rename from reactos/dll/win32/inseng/inseng.spec rename to dll/win32/inseng/inseng.spec diff --git a/reactos/dll/win32/inseng/inseng_main.c b/dll/win32/inseng/inseng_main.c similarity index 100% rename from reactos/dll/win32/inseng/inseng_main.c rename to dll/win32/inseng/inseng_main.c diff --git a/reactos/dll/win32/iologmsg/CMakeLists.txt b/dll/win32/iologmsg/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/iologmsg/CMakeLists.txt rename to dll/win32/iologmsg/CMakeLists.txt diff --git a/reactos/dll/win32/iologmsg/iologmsg.rc b/dll/win32/iologmsg/iologmsg.rc similarity index 100% rename from reactos/dll/win32/iologmsg/iologmsg.rc rename to dll/win32/iologmsg/iologmsg.rc diff --git a/reactos/dll/win32/iphlpapi/CMakeLists.txt b/dll/win32/iphlpapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/iphlpapi/CMakeLists.txt rename to dll/win32/iphlpapi/CMakeLists.txt diff --git a/reactos/dll/win32/iphlpapi/dhcp.h b/dll/win32/iphlpapi/dhcp.h similarity index 100% rename from reactos/dll/win32/iphlpapi/dhcp.h rename to dll/win32/iphlpapi/dhcp.h diff --git a/reactos/dll/win32/iphlpapi/dhcp_reactos.c b/dll/win32/iphlpapi/dhcp_reactos.c similarity index 100% rename from reactos/dll/win32/iphlpapi/dhcp_reactos.c rename to dll/win32/iphlpapi/dhcp_reactos.c diff --git a/reactos/dll/win32/iphlpapi/ifenum.h b/dll/win32/iphlpapi/ifenum.h similarity index 100% rename from reactos/dll/win32/iphlpapi/ifenum.h rename to dll/win32/iphlpapi/ifenum.h diff --git a/reactos/dll/win32/iphlpapi/ifenum_reactos.c b/dll/win32/iphlpapi/ifenum_reactos.c similarity index 100% rename from reactos/dll/win32/iphlpapi/ifenum_reactos.c rename to dll/win32/iphlpapi/ifenum_reactos.c diff --git a/reactos/dll/win32/iphlpapi/iphlpapi.rc b/dll/win32/iphlpapi/iphlpapi.rc similarity index 100% rename from reactos/dll/win32/iphlpapi/iphlpapi.rc rename to dll/win32/iphlpapi/iphlpapi.rc diff --git a/reactos/dll/win32/iphlpapi/iphlpapi.spec b/dll/win32/iphlpapi/iphlpapi.spec similarity index 100% rename from reactos/dll/win32/iphlpapi/iphlpapi.spec rename to dll/win32/iphlpapi/iphlpapi.spec diff --git a/reactos/dll/win32/iphlpapi/iphlpapi_main.c b/dll/win32/iphlpapi/iphlpapi_main.c similarity index 100% rename from reactos/dll/win32/iphlpapi/iphlpapi_main.c rename to dll/win32/iphlpapi/iphlpapi_main.c diff --git a/reactos/dll/win32/iphlpapi/iphlpapi_private.h b/dll/win32/iphlpapi/iphlpapi_private.h similarity index 100% rename from reactos/dll/win32/iphlpapi/iphlpapi_private.h rename to dll/win32/iphlpapi/iphlpapi_private.h diff --git a/reactos/dll/win32/iphlpapi/ipstats.h b/dll/win32/iphlpapi/ipstats.h similarity index 100% rename from reactos/dll/win32/iphlpapi/ipstats.h rename to dll/win32/iphlpapi/ipstats.h diff --git a/reactos/dll/win32/iphlpapi/ipstats_reactos.c b/dll/win32/iphlpapi/ipstats_reactos.c similarity index 100% rename from reactos/dll/win32/iphlpapi/ipstats_reactos.c rename to dll/win32/iphlpapi/ipstats_reactos.c diff --git a/reactos/dll/win32/iphlpapi/media.c b/dll/win32/iphlpapi/media.c similarity index 100% rename from reactos/dll/win32/iphlpapi/media.c rename to dll/win32/iphlpapi/media.c diff --git a/reactos/dll/win32/iphlpapi/merge-notes.txt b/dll/win32/iphlpapi/merge-notes.txt similarity index 100% rename from reactos/dll/win32/iphlpapi/merge-notes.txt rename to dll/win32/iphlpapi/merge-notes.txt diff --git a/reactos/dll/win32/iphlpapi/registry.c b/dll/win32/iphlpapi/registry.c similarity index 100% rename from reactos/dll/win32/iphlpapi/registry.c rename to dll/win32/iphlpapi/registry.c diff --git a/reactos/dll/win32/iphlpapi/resinfo.c b/dll/win32/iphlpapi/resinfo.c similarity index 100% rename from reactos/dll/win32/iphlpapi/resinfo.c rename to dll/win32/iphlpapi/resinfo.c diff --git a/reactos/dll/win32/iphlpapi/resinfo.h b/dll/win32/iphlpapi/resinfo.h similarity index 100% rename from reactos/dll/win32/iphlpapi/resinfo.h rename to dll/win32/iphlpapi/resinfo.h diff --git a/reactos/dll/win32/iphlpapi/resinfo_reactos.c b/dll/win32/iphlpapi/resinfo_reactos.c similarity index 100% rename from reactos/dll/win32/iphlpapi/resinfo_reactos.c rename to dll/win32/iphlpapi/resinfo_reactos.c diff --git a/reactos/dll/win32/iphlpapi/route.c b/dll/win32/iphlpapi/route.c similarity index 100% rename from reactos/dll/win32/iphlpapi/route.c rename to dll/win32/iphlpapi/route.c diff --git a/reactos/dll/win32/iphlpapi/route.h b/dll/win32/iphlpapi/route.h similarity index 100% rename from reactos/dll/win32/iphlpapi/route.h rename to dll/win32/iphlpapi/route.h diff --git a/reactos/dll/win32/iphlpapi/route_reactos.c b/dll/win32/iphlpapi/route_reactos.c similarity index 100% rename from reactos/dll/win32/iphlpapi/route_reactos.c rename to dll/win32/iphlpapi/route_reactos.c diff --git a/reactos/dll/win32/iprtprio/iprtprio.c b/dll/win32/iprtprio/iprtprio.c similarity index 100% rename from reactos/dll/win32/iprtprio/iprtprio.c rename to dll/win32/iprtprio/iprtprio.c diff --git a/reactos/dll/win32/iprtprio/iprtprio.def b/dll/win32/iprtprio/iprtprio.def similarity index 100% rename from reactos/dll/win32/iprtprio/iprtprio.def rename to dll/win32/iprtprio/iprtprio.def diff --git a/reactos/dll/win32/iprtprio/iprtprio.rc b/dll/win32/iprtprio/iprtprio.rc similarity index 100% rename from reactos/dll/win32/iprtprio/iprtprio.rc rename to dll/win32/iprtprio/iprtprio.rc diff --git a/reactos/dll/win32/itircl/CMakeLists.txt b/dll/win32/itircl/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/itircl/CMakeLists.txt rename to dll/win32/itircl/CMakeLists.txt diff --git a/reactos/dll/win32/itircl/itircl.spec b/dll/win32/itircl/itircl.spec similarity index 100% rename from reactos/dll/win32/itircl/itircl.spec rename to dll/win32/itircl/itircl.spec diff --git a/reactos/dll/win32/itircl/itircl_main.c b/dll/win32/itircl/itircl_main.c similarity index 100% rename from reactos/dll/win32/itircl/itircl_main.c rename to dll/win32/itircl/itircl_main.c diff --git a/reactos/dll/win32/itss/CMakeLists.txt b/dll/win32/itss/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/itss/CMakeLists.txt rename to dll/win32/itss/CMakeLists.txt diff --git a/reactos/dll/win32/itss/chm_lib.c b/dll/win32/itss/chm_lib.c similarity index 100% rename from reactos/dll/win32/itss/chm_lib.c rename to dll/win32/itss/chm_lib.c diff --git a/reactos/dll/win32/itss/chm_lib.h b/dll/win32/itss/chm_lib.h similarity index 100% rename from reactos/dll/win32/itss/chm_lib.h rename to dll/win32/itss/chm_lib.h diff --git a/reactos/dll/win32/itss/itss.c b/dll/win32/itss/itss.c similarity index 100% rename from reactos/dll/win32/itss/itss.c rename to dll/win32/itss/itss.c diff --git a/reactos/dll/win32/itss/itss.idl b/dll/win32/itss/itss.idl similarity index 100% rename from reactos/dll/win32/itss/itss.idl rename to dll/win32/itss/itss.idl diff --git a/reactos/dll/win32/itss/itss.rgs b/dll/win32/itss/itss.rgs similarity index 100% rename from reactos/dll/win32/itss/itss.rgs rename to dll/win32/itss/itss.rgs diff --git a/reactos/dll/win32/itss/itss.spec b/dll/win32/itss/itss.spec similarity index 100% rename from reactos/dll/win32/itss/itss.spec rename to dll/win32/itss/itss.spec diff --git a/reactos/dll/win32/itss/itss_r.rgs b/dll/win32/itss/itss_r.rgs similarity index 100% rename from reactos/dll/win32/itss/itss_r.rgs rename to dll/win32/itss/itss_r.rgs diff --git a/reactos/dll/win32/itss/itsstor.h b/dll/win32/itss/itsstor.h similarity index 100% rename from reactos/dll/win32/itss/itsstor.h rename to dll/win32/itss/itsstor.h diff --git a/reactos/dll/win32/itss/lzx.c b/dll/win32/itss/lzx.c similarity index 100% rename from reactos/dll/win32/itss/lzx.c rename to dll/win32/itss/lzx.c diff --git a/reactos/dll/win32/itss/lzx.h b/dll/win32/itss/lzx.h similarity index 100% rename from reactos/dll/win32/itss/lzx.h rename to dll/win32/itss/lzx.h diff --git a/reactos/dll/win32/itss/moniker.c b/dll/win32/itss/moniker.c similarity index 100% rename from reactos/dll/win32/itss/moniker.c rename to dll/win32/itss/moniker.c diff --git a/reactos/dll/win32/itss/protocol.c b/dll/win32/itss/protocol.c similarity index 100% rename from reactos/dll/win32/itss/protocol.c rename to dll/win32/itss/protocol.c diff --git a/reactos/dll/win32/itss/rsrc.rc b/dll/win32/itss/rsrc.rc similarity index 100% rename from reactos/dll/win32/itss/rsrc.rc rename to dll/win32/itss/rsrc.rc diff --git a/reactos/dll/win32/itss/storage.c b/dll/win32/itss/storage.c similarity index 100% rename from reactos/dll/win32/itss/storage.c rename to dll/win32/itss/storage.c diff --git a/reactos/dll/win32/jscript/CMakeLists.txt b/dll/win32/jscript/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/jscript/CMakeLists.txt rename to dll/win32/jscript/CMakeLists.txt diff --git a/reactos/dll/win32/jscript/activex.c b/dll/win32/jscript/activex.c similarity index 100% rename from reactos/dll/win32/jscript/activex.c rename to dll/win32/jscript/activex.c diff --git a/reactos/dll/win32/jscript/array.c b/dll/win32/jscript/array.c similarity index 100% rename from reactos/dll/win32/jscript/array.c rename to dll/win32/jscript/array.c diff --git a/reactos/dll/win32/jscript/bool.c b/dll/win32/jscript/bool.c similarity index 100% rename from reactos/dll/win32/jscript/bool.c rename to dll/win32/jscript/bool.c diff --git a/reactos/dll/win32/jscript/date.c b/dll/win32/jscript/date.c similarity index 100% rename from reactos/dll/win32/jscript/date.c rename to dll/win32/jscript/date.c diff --git a/reactos/dll/win32/jscript/dispex.c b/dll/win32/jscript/dispex.c similarity index 100% rename from reactos/dll/win32/jscript/dispex.c rename to dll/win32/jscript/dispex.c diff --git a/reactos/dll/win32/jscript/engine.c b/dll/win32/jscript/engine.c similarity index 100% rename from reactos/dll/win32/jscript/engine.c rename to dll/win32/jscript/engine.c diff --git a/reactos/dll/win32/jscript/engine.h b/dll/win32/jscript/engine.h similarity index 100% rename from reactos/dll/win32/jscript/engine.h rename to dll/win32/jscript/engine.h diff --git a/reactos/dll/win32/jscript/error.c b/dll/win32/jscript/error.c similarity index 100% rename from reactos/dll/win32/jscript/error.c rename to dll/win32/jscript/error.c diff --git a/reactos/dll/win32/jscript/function.c b/dll/win32/jscript/function.c similarity index 100% rename from reactos/dll/win32/jscript/function.c rename to dll/win32/jscript/function.c diff --git a/reactos/dll/win32/jscript/global.c b/dll/win32/jscript/global.c similarity index 100% rename from reactos/dll/win32/jscript/global.c rename to dll/win32/jscript/global.c diff --git a/reactos/dll/win32/jscript/jscript.c b/dll/win32/jscript/jscript.c similarity index 100% rename from reactos/dll/win32/jscript/jscript.c rename to dll/win32/jscript/jscript.c diff --git a/reactos/dll/win32/jscript/jscript.h b/dll/win32/jscript/jscript.h similarity index 100% rename from reactos/dll/win32/jscript/jscript.h rename to dll/win32/jscript/jscript.h diff --git a/reactos/dll/win32/jscript/jscript.inf b/dll/win32/jscript/jscript.inf similarity index 100% rename from reactos/dll/win32/jscript/jscript.inf rename to dll/win32/jscript/jscript.inf diff --git a/reactos/dll/win32/jscript/jscript.spec b/dll/win32/jscript/jscript.spec similarity index 100% rename from reactos/dll/win32/jscript/jscript.spec rename to dll/win32/jscript/jscript.spec diff --git a/reactos/dll/win32/jscript/jscript_Da.rc b/dll/win32/jscript/jscript_Da.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Da.rc rename to dll/win32/jscript/jscript_Da.rc diff --git a/reactos/dll/win32/jscript/jscript_De.rc b/dll/win32/jscript/jscript_De.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_De.rc rename to dll/win32/jscript/jscript_De.rc diff --git a/reactos/dll/win32/jscript/jscript_En.rc b/dll/win32/jscript/jscript_En.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_En.rc rename to dll/win32/jscript/jscript_En.rc diff --git a/reactos/dll/win32/jscript/jscript_Es.rc b/dll/win32/jscript/jscript_Es.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Es.rc rename to dll/win32/jscript/jscript_Es.rc diff --git a/reactos/dll/win32/jscript/jscript_Fr.rc b/dll/win32/jscript/jscript_Fr.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Fr.rc rename to dll/win32/jscript/jscript_Fr.rc diff --git a/reactos/dll/win32/jscript/jscript_Hu.rc b/dll/win32/jscript/jscript_Hu.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Hu.rc rename to dll/win32/jscript/jscript_Hu.rc diff --git a/reactos/dll/win32/jscript/jscript_It.rc b/dll/win32/jscript/jscript_It.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_It.rc rename to dll/win32/jscript/jscript_It.rc diff --git a/reactos/dll/win32/jscript/jscript_Ja.rc b/dll/win32/jscript/jscript_Ja.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Ja.rc rename to dll/win32/jscript/jscript_Ja.rc diff --git a/reactos/dll/win32/jscript/jscript_Ko.rc b/dll/win32/jscript/jscript_Ko.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Ko.rc rename to dll/win32/jscript/jscript_Ko.rc diff --git a/reactos/dll/win32/jscript/jscript_Lt.rc b/dll/win32/jscript/jscript_Lt.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Lt.rc rename to dll/win32/jscript/jscript_Lt.rc diff --git a/reactos/dll/win32/jscript/jscript_Nl.rc b/dll/win32/jscript/jscript_Nl.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Nl.rc rename to dll/win32/jscript/jscript_Nl.rc diff --git a/reactos/dll/win32/jscript/jscript_No.rc b/dll/win32/jscript/jscript_No.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_No.rc rename to dll/win32/jscript/jscript_No.rc diff --git a/reactos/dll/win32/jscript/jscript_Pl.rc b/dll/win32/jscript/jscript_Pl.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Pl.rc rename to dll/win32/jscript/jscript_Pl.rc diff --git a/reactos/dll/win32/jscript/jscript_Pt.rc b/dll/win32/jscript/jscript_Pt.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Pt.rc rename to dll/win32/jscript/jscript_Pt.rc diff --git a/reactos/dll/win32/jscript/jscript_Ro.rc b/dll/win32/jscript/jscript_Ro.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Ro.rc rename to dll/win32/jscript/jscript_Ro.rc diff --git a/reactos/dll/win32/jscript/jscript_Ru.rc b/dll/win32/jscript/jscript_Ru.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Ru.rc rename to dll/win32/jscript/jscript_Ru.rc diff --git a/reactos/dll/win32/jscript/jscript_Si.rc b/dll/win32/jscript/jscript_Si.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Si.rc rename to dll/win32/jscript/jscript_Si.rc diff --git a/reactos/dll/win32/jscript/jscript_Uk.rc b/dll/win32/jscript/jscript_Uk.rc similarity index 100% rename from reactos/dll/win32/jscript/jscript_Uk.rc rename to dll/win32/jscript/jscript_Uk.rc diff --git a/reactos/dll/win32/jscript/jscript_main.c b/dll/win32/jscript/jscript_main.c similarity index 100% rename from reactos/dll/win32/jscript/jscript_main.c rename to dll/win32/jscript/jscript_main.c diff --git a/reactos/dll/win32/jscript/jsglobal.idl b/dll/win32/jscript/jsglobal.idl similarity index 100% rename from reactos/dll/win32/jscript/jsglobal.idl rename to dll/win32/jscript/jsglobal.idl diff --git a/reactos/dll/win32/jscript/jsglobal_dispid.h b/dll/win32/jscript/jsglobal_dispid.h similarity index 100% rename from reactos/dll/win32/jscript/jsglobal_dispid.h rename to dll/win32/jscript/jsglobal_dispid.h diff --git a/reactos/dll/win32/jscript/jsutils.c b/dll/win32/jscript/jsutils.c similarity index 100% rename from reactos/dll/win32/jscript/jsutils.c rename to dll/win32/jscript/jsutils.c diff --git a/reactos/dll/win32/jscript/lex.c b/dll/win32/jscript/lex.c similarity index 100% rename from reactos/dll/win32/jscript/lex.c rename to dll/win32/jscript/lex.c diff --git a/reactos/dll/win32/jscript/math.c b/dll/win32/jscript/math.c similarity index 100% rename from reactos/dll/win32/jscript/math.c rename to dll/win32/jscript/math.c diff --git a/reactos/dll/win32/jscript/number.c b/dll/win32/jscript/number.c similarity index 100% rename from reactos/dll/win32/jscript/number.c rename to dll/win32/jscript/number.c diff --git a/reactos/dll/win32/jscript/object.c b/dll/win32/jscript/object.c similarity index 100% rename from reactos/dll/win32/jscript/object.c rename to dll/win32/jscript/object.c diff --git a/reactos/dll/win32/jscript/parser.tab.c b/dll/win32/jscript/parser.tab.c similarity index 100% rename from reactos/dll/win32/jscript/parser.tab.c rename to dll/win32/jscript/parser.tab.c diff --git a/reactos/dll/win32/jscript/parser.tab.h b/dll/win32/jscript/parser.tab.h similarity index 100% rename from reactos/dll/win32/jscript/parser.tab.h rename to dll/win32/jscript/parser.tab.h diff --git a/reactos/dll/win32/jscript/parser.y b/dll/win32/jscript/parser.y similarity index 100% rename from reactos/dll/win32/jscript/parser.y rename to dll/win32/jscript/parser.y diff --git a/reactos/dll/win32/jscript/regexp.c b/dll/win32/jscript/regexp.c similarity index 100% rename from reactos/dll/win32/jscript/regexp.c rename to dll/win32/jscript/regexp.c diff --git a/reactos/dll/win32/jscript/resource.h b/dll/win32/jscript/resource.h similarity index 100% rename from reactos/dll/win32/jscript/resource.h rename to dll/win32/jscript/resource.h diff --git a/reactos/dll/win32/jscript/rsrc.rc b/dll/win32/jscript/rsrc.rc similarity index 100% rename from reactos/dll/win32/jscript/rsrc.rc rename to dll/win32/jscript/rsrc.rc diff --git a/reactos/dll/win32/jscript/string.c b/dll/win32/jscript/string.c similarity index 100% rename from reactos/dll/win32/jscript/string.c rename to dll/win32/jscript/string.c diff --git a/reactos/dll/win32/kernel32/CMakeLists.txt b/dll/win32/kernel32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/kernel32/CMakeLists.txt rename to dll/win32/kernel32/CMakeLists.txt diff --git a/reactos/dll/win32/kernel32/client/amd64/fiber.S b/dll/win32/kernel32/client/amd64/fiber.S similarity index 100% rename from reactos/dll/win32/kernel32/client/amd64/fiber.S rename to dll/win32/kernel32/client/amd64/fiber.S diff --git a/reactos/dll/win32/kernel32/client/amd64/thread.S b/dll/win32/kernel32/client/amd64/thread.S similarity index 100% rename from reactos/dll/win32/kernel32/client/amd64/thread.S rename to dll/win32/kernel32/client/amd64/thread.S diff --git a/reactos/dll/win32/kernel32/client/appcache.c b/dll/win32/kernel32/client/appcache.c similarity index 100% rename from reactos/dll/win32/kernel32/client/appcache.c rename to dll/win32/kernel32/client/appcache.c diff --git a/reactos/dll/win32/kernel32/client/atom.c b/dll/win32/kernel32/client/atom.c similarity index 100% rename from reactos/dll/win32/kernel32/client/atom.c rename to dll/win32/kernel32/client/atom.c diff --git a/reactos/dll/win32/kernel32/client/compname.c b/dll/win32/kernel32/client/compname.c similarity index 100% rename from reactos/dll/win32/kernel32/client/compname.c rename to dll/win32/kernel32/client/compname.c diff --git a/reactos/dll/win32/kernel32/client/debugger.c b/dll/win32/kernel32/client/debugger.c similarity index 100% rename from reactos/dll/win32/kernel32/client/debugger.c rename to dll/win32/kernel32/client/debugger.c diff --git a/reactos/dll/win32/kernel32/client/dllmain.c b/dll/win32/kernel32/client/dllmain.c similarity index 100% rename from reactos/dll/win32/kernel32/client/dllmain.c rename to dll/win32/kernel32/client/dllmain.c diff --git a/reactos/dll/win32/kernel32/client/dosdev.c b/dll/win32/kernel32/client/dosdev.c similarity index 100% rename from reactos/dll/win32/kernel32/client/dosdev.c rename to dll/win32/kernel32/client/dosdev.c diff --git a/reactos/dll/win32/kernel32/client/environ.c b/dll/win32/kernel32/client/environ.c similarity index 100% rename from reactos/dll/win32/kernel32/client/environ.c rename to dll/win32/kernel32/client/environ.c diff --git a/reactos/dll/win32/kernel32/client/except.c b/dll/win32/kernel32/client/except.c similarity index 100% rename from reactos/dll/win32/kernel32/client/except.c rename to dll/win32/kernel32/client/except.c diff --git a/reactos/dll/win32/kernel32/client/fiber.c b/dll/win32/kernel32/client/fiber.c similarity index 100% rename from reactos/dll/win32/kernel32/client/fiber.c rename to dll/win32/kernel32/client/fiber.c diff --git a/reactos/dll/win32/kernel32/client/file/backup.c b/dll/win32/kernel32/client/file/backup.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/backup.c rename to dll/win32/kernel32/client/file/backup.c diff --git a/reactos/dll/win32/kernel32/client/file/cnotify.c b/dll/win32/kernel32/client/file/cnotify.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/cnotify.c rename to dll/win32/kernel32/client/file/cnotify.c diff --git a/reactos/dll/win32/kernel32/client/file/console.c b/dll/win32/kernel32/client/file/console.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/console.c rename to dll/win32/kernel32/client/file/console.c diff --git a/reactos/dll/win32/kernel32/client/file/copy.c b/dll/win32/kernel32/client/file/copy.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/copy.c rename to dll/win32/kernel32/client/file/copy.c diff --git a/reactos/dll/win32/kernel32/client/file/create.c b/dll/win32/kernel32/client/file/create.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/create.c rename to dll/win32/kernel32/client/file/create.c diff --git a/reactos/dll/win32/kernel32/client/file/delete.c b/dll/win32/kernel32/client/file/delete.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/delete.c rename to dll/win32/kernel32/client/file/delete.c diff --git a/reactos/dll/win32/kernel32/client/file/deviceio.c b/dll/win32/kernel32/client/file/deviceio.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/deviceio.c rename to dll/win32/kernel32/client/file/deviceio.c diff --git a/reactos/dll/win32/kernel32/client/file/dir.c b/dll/win32/kernel32/client/file/dir.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/dir.c rename to dll/win32/kernel32/client/file/dir.c diff --git a/reactos/dll/win32/kernel32/client/file/fileinfo.c b/dll/win32/kernel32/client/file/fileinfo.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/fileinfo.c rename to dll/win32/kernel32/client/file/fileinfo.c diff --git a/reactos/dll/win32/kernel32/client/file/filemap.c b/dll/win32/kernel32/client/file/filemap.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/filemap.c rename to dll/win32/kernel32/client/file/filemap.c diff --git a/reactos/dll/win32/kernel32/client/file/filename.c b/dll/win32/kernel32/client/file/filename.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/filename.c rename to dll/win32/kernel32/client/file/filename.c diff --git a/reactos/dll/win32/kernel32/client/file/find.c b/dll/win32/kernel32/client/file/find.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/find.c rename to dll/win32/kernel32/client/file/find.c diff --git a/reactos/dll/win32/kernel32/client/file/hardlink.c b/dll/win32/kernel32/client/file/hardlink.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/hardlink.c rename to dll/win32/kernel32/client/file/hardlink.c diff --git a/reactos/dll/win32/kernel32/client/file/iocompl.c b/dll/win32/kernel32/client/file/iocompl.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/iocompl.c rename to dll/win32/kernel32/client/file/iocompl.c diff --git a/reactos/dll/win32/kernel32/client/file/lfile.c b/dll/win32/kernel32/client/file/lfile.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/lfile.c rename to dll/win32/kernel32/client/file/lfile.c diff --git a/reactos/dll/win32/kernel32/client/file/lock.c b/dll/win32/kernel32/client/file/lock.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/lock.c rename to dll/win32/kernel32/client/file/lock.c diff --git a/reactos/dll/win32/kernel32/client/file/mailslot.c b/dll/win32/kernel32/client/file/mailslot.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/mailslot.c rename to dll/win32/kernel32/client/file/mailslot.c diff --git a/reactos/dll/win32/kernel32/client/file/move.c b/dll/win32/kernel32/client/file/move.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/move.c rename to dll/win32/kernel32/client/file/move.c diff --git a/reactos/dll/win32/kernel32/client/file/npipe.c b/dll/win32/kernel32/client/file/npipe.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/npipe.c rename to dll/win32/kernel32/client/file/npipe.c diff --git a/reactos/dll/win32/kernel32/client/file/rw.c b/dll/win32/kernel32/client/file/rw.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/rw.c rename to dll/win32/kernel32/client/file/rw.c diff --git a/reactos/dll/win32/kernel32/client/file/tape.c b/dll/win32/kernel32/client/file/tape.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/tape.c rename to dll/win32/kernel32/client/file/tape.c diff --git a/reactos/dll/win32/kernel32/client/file/volume.c b/dll/win32/kernel32/client/file/volume.c similarity index 100% rename from reactos/dll/win32/kernel32/client/file/volume.c rename to dll/win32/kernel32/client/file/volume.c diff --git a/reactos/dll/win32/kernel32/client/handle.c b/dll/win32/kernel32/client/handle.c similarity index 100% rename from reactos/dll/win32/kernel32/client/handle.c rename to dll/win32/kernel32/client/handle.c diff --git a/reactos/dll/win32/kernel32/client/heapmem.c b/dll/win32/kernel32/client/heapmem.c similarity index 100% rename from reactos/dll/win32/kernel32/client/heapmem.c rename to dll/win32/kernel32/client/heapmem.c diff --git a/reactos/dll/win32/kernel32/client/i386/fiber.S b/dll/win32/kernel32/client/i386/fiber.S similarity index 100% rename from reactos/dll/win32/kernel32/client/i386/fiber.S rename to dll/win32/kernel32/client/i386/fiber.S diff --git a/reactos/dll/win32/kernel32/client/i386/thread.S b/dll/win32/kernel32/client/i386/thread.S similarity index 100% rename from reactos/dll/win32/kernel32/client/i386/thread.S rename to dll/win32/kernel32/client/i386/thread.S diff --git a/reactos/dll/win32/kernel32/client/job.c b/dll/win32/kernel32/client/job.c similarity index 100% rename from reactos/dll/win32/kernel32/client/job.c rename to dll/win32/kernel32/client/job.c diff --git a/reactos/dll/win32/kernel32/client/loader.c b/dll/win32/kernel32/client/loader.c similarity index 100% rename from reactos/dll/win32/kernel32/client/loader.c rename to dll/win32/kernel32/client/loader.c diff --git a/reactos/dll/win32/kernel32/client/path.c b/dll/win32/kernel32/client/path.c similarity index 100% rename from reactos/dll/win32/kernel32/client/path.c rename to dll/win32/kernel32/client/path.c diff --git a/reactos/dll/win32/kernel32/client/perfcnt.c b/dll/win32/kernel32/client/perfcnt.c similarity index 100% rename from reactos/dll/win32/kernel32/client/perfcnt.c rename to dll/win32/kernel32/client/perfcnt.c diff --git a/reactos/dll/win32/kernel32/client/power.c b/dll/win32/kernel32/client/power.c similarity index 100% rename from reactos/dll/win32/kernel32/client/power.c rename to dll/win32/kernel32/client/power.c diff --git a/reactos/dll/win32/kernel32/client/proc.c b/dll/win32/kernel32/client/proc.c similarity index 100% rename from reactos/dll/win32/kernel32/client/proc.c rename to dll/win32/kernel32/client/proc.c diff --git a/reactos/dll/win32/kernel32/client/resntfy.c b/dll/win32/kernel32/client/resntfy.c similarity index 100% rename from reactos/dll/win32/kernel32/client/resntfy.c rename to dll/win32/kernel32/client/resntfy.c diff --git a/reactos/dll/win32/kernel32/client/session.c b/dll/win32/kernel32/client/session.c similarity index 100% rename from reactos/dll/win32/kernel32/client/session.c rename to dll/win32/kernel32/client/session.c diff --git a/reactos/dll/win32/kernel32/client/synch.c b/dll/win32/kernel32/client/synch.c similarity index 100% rename from reactos/dll/win32/kernel32/client/synch.c rename to dll/win32/kernel32/client/synch.c diff --git a/reactos/dll/win32/kernel32/client/sysinfo.c b/dll/win32/kernel32/client/sysinfo.c similarity index 100% rename from reactos/dll/win32/kernel32/client/sysinfo.c rename to dll/win32/kernel32/client/sysinfo.c diff --git a/reactos/dll/win32/kernel32/client/thread.c b/dll/win32/kernel32/client/thread.c similarity index 100% rename from reactos/dll/win32/kernel32/client/thread.c rename to dll/win32/kernel32/client/thread.c diff --git a/reactos/dll/win32/kernel32/client/time.c b/dll/win32/kernel32/client/time.c similarity index 100% rename from reactos/dll/win32/kernel32/client/time.c rename to dll/win32/kernel32/client/time.c diff --git a/reactos/dll/win32/kernel32/client/timerqueue.c b/dll/win32/kernel32/client/timerqueue.c similarity index 100% rename from reactos/dll/win32/kernel32/client/timerqueue.c rename to dll/win32/kernel32/client/timerqueue.c diff --git a/reactos/dll/win32/kernel32/client/toolhelp.c b/dll/win32/kernel32/client/toolhelp.c similarity index 100% rename from reactos/dll/win32/kernel32/client/toolhelp.c rename to dll/win32/kernel32/client/toolhelp.c diff --git a/reactos/dll/win32/kernel32/client/utils.c b/dll/win32/kernel32/client/utils.c similarity index 100% rename from reactos/dll/win32/kernel32/client/utils.c rename to dll/win32/kernel32/client/utils.c diff --git a/reactos/dll/win32/kernel32/client/vdm.c b/dll/win32/kernel32/client/vdm.c similarity index 100% rename from reactos/dll/win32/kernel32/client/vdm.c rename to dll/win32/kernel32/client/vdm.c diff --git a/reactos/dll/win32/kernel32/client/version.c b/dll/win32/kernel32/client/version.c similarity index 100% rename from reactos/dll/win32/kernel32/client/version.c rename to dll/win32/kernel32/client/version.c diff --git a/reactos/dll/win32/kernel32/client/virtmem.c b/dll/win32/kernel32/client/virtmem.c similarity index 100% rename from reactos/dll/win32/kernel32/client/virtmem.c rename to dll/win32/kernel32/client/virtmem.c diff --git a/reactos/dll/win32/kernel32/client/vista.c b/dll/win32/kernel32/client/vista.c similarity index 100% rename from reactos/dll/win32/kernel32/client/vista.c rename to dll/win32/kernel32/client/vista.c diff --git a/reactos/dll/win32/kernel32/include/base_x.h b/dll/win32/kernel32/include/base_x.h similarity index 100% rename from reactos/dll/win32/kernel32/include/base_x.h rename to dll/win32/kernel32/include/base_x.h diff --git a/reactos/dll/win32/kernel32/include/baseheap.h b/dll/win32/kernel32/include/baseheap.h similarity index 100% rename from reactos/dll/win32/kernel32/include/baseheap.h rename to dll/win32/kernel32/include/baseheap.h diff --git a/reactos/dll/win32/kernel32/include/kernel32.h b/dll/win32/kernel32/include/kernel32.h similarity index 100% rename from reactos/dll/win32/kernel32/include/kernel32.h rename to dll/win32/kernel32/include/kernel32.h diff --git a/reactos/dll/win32/kernel32/k32.h b/dll/win32/kernel32/k32.h similarity index 100% rename from reactos/dll/win32/kernel32/k32.h rename to dll/win32/kernel32/k32.h diff --git a/reactos/dll/win32/kernel32/kernel32.rc b/dll/win32/kernel32/kernel32.rc similarity index 100% rename from reactos/dll/win32/kernel32/kernel32.rc rename to dll/win32/kernel32/kernel32.rc diff --git a/reactos/dll/win32/kernel32/kernel32.spec b/dll/win32/kernel32/kernel32.spec similarity index 100% rename from reactos/dll/win32/kernel32/kernel32.spec rename to dll/win32/kernel32/kernel32.spec diff --git a/reactos/dll/win32/kernel32/wine/actctx.c b/dll/win32/kernel32/wine/actctx.c similarity index 100% rename from reactos/dll/win32/kernel32/wine/actctx.c rename to dll/win32/kernel32/wine/actctx.c diff --git a/reactos/dll/win32/kernel32/wine/comm.c b/dll/win32/kernel32/wine/comm.c similarity index 100% rename from reactos/dll/win32/kernel32/wine/comm.c rename to dll/win32/kernel32/wine/comm.c diff --git a/reactos/dll/win32/kernel32/wine/lzexpand.c b/dll/win32/kernel32/wine/lzexpand.c similarity index 100% rename from reactos/dll/win32/kernel32/wine/lzexpand.c rename to dll/win32/kernel32/wine/lzexpand.c diff --git a/reactos/dll/win32/kernel32/wine/muldiv.c b/dll/win32/kernel32/wine/muldiv.c similarity index 100% rename from reactos/dll/win32/kernel32/wine/muldiv.c rename to dll/win32/kernel32/wine/muldiv.c diff --git a/reactos/dll/win32/kernel32/wine/profile.c b/dll/win32/kernel32/wine/profile.c similarity index 100% rename from reactos/dll/win32/kernel32/wine/profile.c rename to dll/win32/kernel32/wine/profile.c diff --git a/reactos/dll/win32/kernel32/wine/res.c b/dll/win32/kernel32/wine/res.c similarity index 100% rename from reactos/dll/win32/kernel32/wine/res.c rename to dll/win32/kernel32/wine/res.c diff --git a/reactos/dll/win32/kernel32/wine/timezone.c b/dll/win32/kernel32/wine/timezone.c similarity index 100% rename from reactos/dll/win32/kernel32/wine/timezone.c rename to dll/win32/kernel32/wine/timezone.c diff --git a/reactos/dll/win32/kernel32/winnls/lang/bg-BG.mc b/dll/win32/kernel32/winnls/lang/bg-BG.mc similarity index 100% rename from reactos/dll/win32/kernel32/winnls/lang/bg-BG.mc rename to dll/win32/kernel32/winnls/lang/bg-BG.mc diff --git a/reactos/dll/win32/kernel32/winnls/lang/de-DE.mc b/dll/win32/kernel32/winnls/lang/de-DE.mc similarity index 100% rename from reactos/dll/win32/kernel32/winnls/lang/de-DE.mc rename to dll/win32/kernel32/winnls/lang/de-DE.mc diff --git a/reactos/dll/win32/kernel32/winnls/lang/de-DE.rc b/dll/win32/kernel32/winnls/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/kernel32/winnls/lang/de-DE.rc rename to dll/win32/kernel32/winnls/lang/de-DE.rc diff --git a/reactos/dll/win32/kernel32/winnls/lang/en-US.rc b/dll/win32/kernel32/winnls/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/kernel32/winnls/lang/en-US.rc rename to dll/win32/kernel32/winnls/lang/en-US.rc diff --git a/reactos/dll/win32/kernel32/winnls/lang/es-ES.rc b/dll/win32/kernel32/winnls/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/kernel32/winnls/lang/es-ES.rc rename to dll/win32/kernel32/winnls/lang/es-ES.rc diff --git a/reactos/dll/win32/kernel32/winnls/lang/pl-PL.mc b/dll/win32/kernel32/winnls/lang/pl-PL.mc similarity index 100% rename from reactos/dll/win32/kernel32/winnls/lang/pl-PL.mc rename to dll/win32/kernel32/winnls/lang/pl-PL.mc diff --git a/reactos/dll/win32/kernel32/winnls/lang/ro-RO.rc b/dll/win32/kernel32/winnls/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/kernel32/winnls/lang/ro-RO.rc rename to dll/win32/kernel32/winnls/lang/ro-RO.rc diff --git a/reactos/dll/win32/kernel32/winnls/lang/ru-RU.mc b/dll/win32/kernel32/winnls/lang/ru-RU.mc similarity index 100% rename from reactos/dll/win32/kernel32/winnls/lang/ru-RU.mc rename to dll/win32/kernel32/winnls/lang/ru-RU.mc diff --git a/reactos/dll/win32/kernel32/winnls/lang/ru-RU.rc b/dll/win32/kernel32/winnls/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/kernel32/winnls/lang/ru-RU.rc rename to dll/win32/kernel32/winnls/lang/ru-RU.rc diff --git a/reactos/dll/win32/kernel32/winnls/lang/uk-UA.rc b/dll/win32/kernel32/winnls/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/kernel32/winnls/lang/uk-UA.rc rename to dll/win32/kernel32/winnls/lang/uk-UA.rc diff --git a/reactos/dll/win32/kernel32/winnls/locale_rc.rc b/dll/win32/kernel32/winnls/locale_rc.rc similarity index 100% rename from reactos/dll/win32/kernel32/winnls/locale_rc.rc rename to dll/win32/kernel32/winnls/locale_rc.rc diff --git a/reactos/dll/win32/kernel32/winnls/nls/afk.nls b/dll/win32/kernel32/winnls/nls/afk.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/afk.nls rename to dll/win32/kernel32/winnls/nls/afk.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ara.nls b/dll/win32/kernel32/winnls/nls/ara.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ara.nls rename to dll/win32/kernel32/winnls/nls/ara.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/arb.nls b/dll/win32/kernel32/winnls/nls/arb.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/arb.nls rename to dll/win32/kernel32/winnls/nls/arb.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/are.nls b/dll/win32/kernel32/winnls/nls/are.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/are.nls rename to dll/win32/kernel32/winnls/nls/are.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/arg.nls b/dll/win32/kernel32/winnls/nls/arg.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/arg.nls rename to dll/win32/kernel32/winnls/nls/arg.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/arh.nls b/dll/win32/kernel32/winnls/nls/arh.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/arh.nls rename to dll/win32/kernel32/winnls/nls/arh.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ari.nls b/dll/win32/kernel32/winnls/nls/ari.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ari.nls rename to dll/win32/kernel32/winnls/nls/ari.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/arj.nls b/dll/win32/kernel32/winnls/nls/arj.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/arj.nls rename to dll/win32/kernel32/winnls/nls/arj.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ark.nls b/dll/win32/kernel32/winnls/nls/ark.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ark.nls rename to dll/win32/kernel32/winnls/nls/ark.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/arl.nls b/dll/win32/kernel32/winnls/nls/arl.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/arl.nls rename to dll/win32/kernel32/winnls/nls/arl.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/arm.nls b/dll/win32/kernel32/winnls/nls/arm.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/arm.nls rename to dll/win32/kernel32/winnls/nls/arm.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/aro.nls b/dll/win32/kernel32/winnls/nls/aro.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/aro.nls rename to dll/win32/kernel32/winnls/nls/aro.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/arq.nls b/dll/win32/kernel32/winnls/nls/arq.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/arq.nls rename to dll/win32/kernel32/winnls/nls/arq.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ars.nls b/dll/win32/kernel32/winnls/nls/ars.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ars.nls rename to dll/win32/kernel32/winnls/nls/ars.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/art.nls b/dll/win32/kernel32/winnls/nls/art.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/art.nls rename to dll/win32/kernel32/winnls/nls/art.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/aru.nls b/dll/win32/kernel32/winnls/nls/aru.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/aru.nls rename to dll/win32/kernel32/winnls/nls/aru.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ary.nls b/dll/win32/kernel32/winnls/nls/ary.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ary.nls rename to dll/win32/kernel32/winnls/nls/ary.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/aze.nls b/dll/win32/kernel32/winnls/nls/aze.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/aze.nls rename to dll/win32/kernel32/winnls/nls/aze.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/azl.nls b/dll/win32/kernel32/winnls/nls/azl.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/azl.nls rename to dll/win32/kernel32/winnls/nls/azl.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/bel.nls b/dll/win32/kernel32/winnls/nls/bel.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/bel.nls rename to dll/win32/kernel32/winnls/nls/bel.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/bgr.nls b/dll/win32/kernel32/winnls/nls/bgr.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/bgr.nls rename to dll/win32/kernel32/winnls/nls/bgr.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/brf.nls b/dll/win32/kernel32/winnls/nls/brf.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/brf.nls rename to dll/win32/kernel32/winnls/nls/brf.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/cat.nls b/dll/win32/kernel32/winnls/nls/cat.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/cat.nls rename to dll/win32/kernel32/winnls/nls/cat.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/chs.nls b/dll/win32/kernel32/winnls/nls/chs.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/chs.nls rename to dll/win32/kernel32/winnls/nls/chs.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/cht.nls b/dll/win32/kernel32/winnls/nls/cht.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/cht.nls rename to dll/win32/kernel32/winnls/nls/cht.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/csy.nls b/dll/win32/kernel32/winnls/nls/csy.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/csy.nls rename to dll/win32/kernel32/winnls/nls/csy.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/cym.nls b/dll/win32/kernel32/winnls/nls/cym.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/cym.nls rename to dll/win32/kernel32/winnls/nls/cym.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/dan.nls b/dll/win32/kernel32/winnls/nls/dan.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/dan.nls rename to dll/win32/kernel32/winnls/nls/dan.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/dea.nls b/dll/win32/kernel32/winnls/nls/dea.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/dea.nls rename to dll/win32/kernel32/winnls/nls/dea.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/dec.nls b/dll/win32/kernel32/winnls/nls/dec.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/dec.nls rename to dll/win32/kernel32/winnls/nls/dec.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/del.nls b/dll/win32/kernel32/winnls/nls/del.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/del.nls rename to dll/win32/kernel32/winnls/nls/del.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/des.nls b/dll/win32/kernel32/winnls/nls/des.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/des.nls rename to dll/win32/kernel32/winnls/nls/des.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/deu.nls b/dll/win32/kernel32/winnls/nls/deu.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/deu.nls rename to dll/win32/kernel32/winnls/nls/deu.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/div.nls b/dll/win32/kernel32/winnls/nls/div.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/div.nls rename to dll/win32/kernel32/winnls/nls/div.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ell.nls b/dll/win32/kernel32/winnls/nls/ell.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ell.nls rename to dll/win32/kernel32/winnls/nls/ell.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ena.nls b/dll/win32/kernel32/winnls/nls/ena.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ena.nls rename to dll/win32/kernel32/winnls/nls/ena.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/enb.nls b/dll/win32/kernel32/winnls/nls/enb.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/enb.nls rename to dll/win32/kernel32/winnls/nls/enb.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/enc.nls b/dll/win32/kernel32/winnls/nls/enc.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/enc.nls rename to dll/win32/kernel32/winnls/nls/enc.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/eng.nls b/dll/win32/kernel32/winnls/nls/eng.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/eng.nls rename to dll/win32/kernel32/winnls/nls/eng.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/eni.nls b/dll/win32/kernel32/winnls/nls/eni.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/eni.nls rename to dll/win32/kernel32/winnls/nls/eni.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/enj.nls b/dll/win32/kernel32/winnls/nls/enj.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/enj.nls rename to dll/win32/kernel32/winnls/nls/enj.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/enl.nls b/dll/win32/kernel32/winnls/nls/enl.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/enl.nls rename to dll/win32/kernel32/winnls/nls/enl.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/enp.nls b/dll/win32/kernel32/winnls/nls/enp.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/enp.nls rename to dll/win32/kernel32/winnls/nls/enp.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ens.nls b/dll/win32/kernel32/winnls/nls/ens.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ens.nls rename to dll/win32/kernel32/winnls/nls/ens.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ent.nls b/dll/win32/kernel32/winnls/nls/ent.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ent.nls rename to dll/win32/kernel32/winnls/nls/ent.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/enu.nls b/dll/win32/kernel32/winnls/nls/enu.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/enu.nls rename to dll/win32/kernel32/winnls/nls/enu.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/enw.nls b/dll/win32/kernel32/winnls/nls/enw.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/enw.nls rename to dll/win32/kernel32/winnls/nls/enw.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/enz.nls b/dll/win32/kernel32/winnls/nls/enz.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/enz.nls rename to dll/win32/kernel32/winnls/nls/enz.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esa.nls b/dll/win32/kernel32/winnls/nls/esa.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esa.nls rename to dll/win32/kernel32/winnls/nls/esa.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esb.nls b/dll/win32/kernel32/winnls/nls/esb.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esb.nls rename to dll/win32/kernel32/winnls/nls/esb.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esc.nls b/dll/win32/kernel32/winnls/nls/esc.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esc.nls rename to dll/win32/kernel32/winnls/nls/esc.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esd.nls b/dll/win32/kernel32/winnls/nls/esd.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esd.nls rename to dll/win32/kernel32/winnls/nls/esd.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ese.nls b/dll/win32/kernel32/winnls/nls/ese.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ese.nls rename to dll/win32/kernel32/winnls/nls/ese.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esf.nls b/dll/win32/kernel32/winnls/nls/esf.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esf.nls rename to dll/win32/kernel32/winnls/nls/esf.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esg.nls b/dll/win32/kernel32/winnls/nls/esg.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esg.nls rename to dll/win32/kernel32/winnls/nls/esg.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esh.nls b/dll/win32/kernel32/winnls/nls/esh.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esh.nls rename to dll/win32/kernel32/winnls/nls/esh.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esi.nls b/dll/win32/kernel32/winnls/nls/esi.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esi.nls rename to dll/win32/kernel32/winnls/nls/esi.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esl.nls b/dll/win32/kernel32/winnls/nls/esl.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esl.nls rename to dll/win32/kernel32/winnls/nls/esl.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esm.nls b/dll/win32/kernel32/winnls/nls/esm.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esm.nls rename to dll/win32/kernel32/winnls/nls/esm.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esn.nls b/dll/win32/kernel32/winnls/nls/esn.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esn.nls rename to dll/win32/kernel32/winnls/nls/esn.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/eso.nls b/dll/win32/kernel32/winnls/nls/eso.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/eso.nls rename to dll/win32/kernel32/winnls/nls/eso.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esp.nls b/dll/win32/kernel32/winnls/nls/esp.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esp.nls rename to dll/win32/kernel32/winnls/nls/esp.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esr.nls b/dll/win32/kernel32/winnls/nls/esr.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esr.nls rename to dll/win32/kernel32/winnls/nls/esr.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ess.nls b/dll/win32/kernel32/winnls/nls/ess.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ess.nls rename to dll/win32/kernel32/winnls/nls/ess.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esu.nls b/dll/win32/kernel32/winnls/nls/esu.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esu.nls rename to dll/win32/kernel32/winnls/nls/esu.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esv.nls b/dll/win32/kernel32/winnls/nls/esv.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esv.nls rename to dll/win32/kernel32/winnls/nls/esv.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esy.nls b/dll/win32/kernel32/winnls/nls/esy.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esy.nls rename to dll/win32/kernel32/winnls/nls/esy.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/esz.nls b/dll/win32/kernel32/winnls/nls/esz.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/esz.nls rename to dll/win32/kernel32/winnls/nls/esz.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/eti.nls b/dll/win32/kernel32/winnls/nls/eti.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/eti.nls rename to dll/win32/kernel32/winnls/nls/eti.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/euq.nls b/dll/win32/kernel32/winnls/nls/euq.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/euq.nls rename to dll/win32/kernel32/winnls/nls/euq.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/far.nls b/dll/win32/kernel32/winnls/nls/far.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/far.nls rename to dll/win32/kernel32/winnls/nls/far.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/fin.nls b/dll/win32/kernel32/winnls/nls/fin.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/fin.nls rename to dll/win32/kernel32/winnls/nls/fin.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/fos.nls b/dll/win32/kernel32/winnls/nls/fos.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/fos.nls rename to dll/win32/kernel32/winnls/nls/fos.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/fra.nls b/dll/win32/kernel32/winnls/nls/fra.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/fra.nls rename to dll/win32/kernel32/winnls/nls/fra.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/frb.nls b/dll/win32/kernel32/winnls/nls/frb.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/frb.nls rename to dll/win32/kernel32/winnls/nls/frb.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/frc.nls b/dll/win32/kernel32/winnls/nls/frc.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/frc.nls rename to dll/win32/kernel32/winnls/nls/frc.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/frl.nls b/dll/win32/kernel32/winnls/nls/frl.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/frl.nls rename to dll/win32/kernel32/winnls/nls/frl.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/frm.nls b/dll/win32/kernel32/winnls/nls/frm.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/frm.nls rename to dll/win32/kernel32/winnls/nls/frm.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/frs.nls b/dll/win32/kernel32/winnls/nls/frs.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/frs.nls rename to dll/win32/kernel32/winnls/nls/frs.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/glc.nls b/dll/win32/kernel32/winnls/nls/glc.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/glc.nls rename to dll/win32/kernel32/winnls/nls/glc.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/guj.nls b/dll/win32/kernel32/winnls/nls/guj.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/guj.nls rename to dll/win32/kernel32/winnls/nls/guj.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/heb.nls b/dll/win32/kernel32/winnls/nls/heb.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/heb.nls rename to dll/win32/kernel32/winnls/nls/heb.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/hin.nls b/dll/win32/kernel32/winnls/nls/hin.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/hin.nls rename to dll/win32/kernel32/winnls/nls/hin.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/hrv.nls b/dll/win32/kernel32/winnls/nls/hrv.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/hrv.nls rename to dll/win32/kernel32/winnls/nls/hrv.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/hun.nls b/dll/win32/kernel32/winnls/nls/hun.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/hun.nls rename to dll/win32/kernel32/winnls/nls/hun.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/hye.nls b/dll/win32/kernel32/winnls/nls/hye.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/hye.nls rename to dll/win32/kernel32/winnls/nls/hye.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ind.nls b/dll/win32/kernel32/winnls/nls/ind.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ind.nls rename to dll/win32/kernel32/winnls/nls/ind.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/isl.nls b/dll/win32/kernel32/winnls/nls/isl.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/isl.nls rename to dll/win32/kernel32/winnls/nls/isl.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ita.nls b/dll/win32/kernel32/winnls/nls/ita.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ita.nls rename to dll/win32/kernel32/winnls/nls/ita.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/its.nls b/dll/win32/kernel32/winnls/nls/its.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/its.nls rename to dll/win32/kernel32/winnls/nls/its.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/jpn.nls b/dll/win32/kernel32/winnls/nls/jpn.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/jpn.nls rename to dll/win32/kernel32/winnls/nls/jpn.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/kan.nls b/dll/win32/kernel32/winnls/nls/kan.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/kan.nls rename to dll/win32/kernel32/winnls/nls/kan.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/kat.nls b/dll/win32/kernel32/winnls/nls/kat.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/kat.nls rename to dll/win32/kernel32/winnls/nls/kat.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/kkz.nls b/dll/win32/kernel32/winnls/nls/kkz.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/kkz.nls rename to dll/win32/kernel32/winnls/nls/kkz.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/knk.nls b/dll/win32/kernel32/winnls/nls/knk.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/knk.nls rename to dll/win32/kernel32/winnls/nls/knk.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/kor.nls b/dll/win32/kernel32/winnls/nls/kor.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/kor.nls rename to dll/win32/kernel32/winnls/nls/kor.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/kyr.nls b/dll/win32/kernel32/winnls/nls/kyr.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/kyr.nls rename to dll/win32/kernel32/winnls/nls/kyr.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/lth.nls b/dll/win32/kernel32/winnls/nls/lth.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/lth.nls rename to dll/win32/kernel32/winnls/nls/lth.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/lvi.nls b/dll/win32/kernel32/winnls/nls/lvi.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/lvi.nls rename to dll/win32/kernel32/winnls/nls/lvi.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/mar.nls b/dll/win32/kernel32/winnls/nls/mar.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/mar.nls rename to dll/win32/kernel32/winnls/nls/mar.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/mki.nls b/dll/win32/kernel32/winnls/nls/mki.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/mki.nls rename to dll/win32/kernel32/winnls/nls/mki.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/mon.nls b/dll/win32/kernel32/winnls/nls/mon.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/mon.nls rename to dll/win32/kernel32/winnls/nls/mon.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/msb.nls b/dll/win32/kernel32/winnls/nls/msb.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/msb.nls rename to dll/win32/kernel32/winnls/nls/msb.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/msl.nls b/dll/win32/kernel32/winnls/nls/msl.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/msl.nls rename to dll/win32/kernel32/winnls/nls/msl.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/nlb.nls b/dll/win32/kernel32/winnls/nls/nlb.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/nlb.nls rename to dll/win32/kernel32/winnls/nls/nlb.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/nld.nls b/dll/win32/kernel32/winnls/nls/nld.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/nld.nls rename to dll/win32/kernel32/winnls/nls/nld.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/non.nls b/dll/win32/kernel32/winnls/nls/non.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/non.nls rename to dll/win32/kernel32/winnls/nls/non.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/nor.nls b/dll/win32/kernel32/winnls/nls/nor.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/nor.nls rename to dll/win32/kernel32/winnls/nls/nor.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/pan.nls b/dll/win32/kernel32/winnls/nls/pan.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/pan.nls rename to dll/win32/kernel32/winnls/nls/pan.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/plk.nls b/dll/win32/kernel32/winnls/nls/plk.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/plk.nls rename to dll/win32/kernel32/winnls/nls/plk.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ptb.nls b/dll/win32/kernel32/winnls/nls/ptb.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ptb.nls rename to dll/win32/kernel32/winnls/nls/ptb.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ptg.nls b/dll/win32/kernel32/winnls/nls/ptg.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ptg.nls rename to dll/win32/kernel32/winnls/nls/ptg.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/rmc.nls b/dll/win32/kernel32/winnls/nls/rmc.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/rmc.nls rename to dll/win32/kernel32/winnls/nls/rmc.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/rom.nls b/dll/win32/kernel32/winnls/nls/rom.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/rom.nls rename to dll/win32/kernel32/winnls/nls/rom.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/rus.nls b/dll/win32/kernel32/winnls/nls/rus.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/rus.nls rename to dll/win32/kernel32/winnls/nls/rus.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/san.nls b/dll/win32/kernel32/winnls/nls/san.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/san.nls rename to dll/win32/kernel32/winnls/nls/san.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/sky.nls b/dll/win32/kernel32/winnls/nls/sky.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/sky.nls rename to dll/win32/kernel32/winnls/nls/sky.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/slv.nls b/dll/win32/kernel32/winnls/nls/slv.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/slv.nls rename to dll/win32/kernel32/winnls/nls/slv.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/sqi.nls b/dll/win32/kernel32/winnls/nls/sqi.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/sqi.nls rename to dll/win32/kernel32/winnls/nls/sqi.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/srb.nls b/dll/win32/kernel32/winnls/nls/srb.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/srb.nls rename to dll/win32/kernel32/winnls/nls/srb.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/srl.nls b/dll/win32/kernel32/winnls/nls/srl.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/srl.nls rename to dll/win32/kernel32/winnls/nls/srl.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/sve.nls b/dll/win32/kernel32/winnls/nls/sve.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/sve.nls rename to dll/win32/kernel32/winnls/nls/sve.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/svf.nls b/dll/win32/kernel32/winnls/nls/svf.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/svf.nls rename to dll/win32/kernel32/winnls/nls/svf.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/swk.nls b/dll/win32/kernel32/winnls/nls/swk.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/swk.nls rename to dll/win32/kernel32/winnls/nls/swk.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/syr.nls b/dll/win32/kernel32/winnls/nls/syr.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/syr.nls rename to dll/win32/kernel32/winnls/nls/syr.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/tam.nls b/dll/win32/kernel32/winnls/nls/tam.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/tam.nls rename to dll/win32/kernel32/winnls/nls/tam.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/tel.nls b/dll/win32/kernel32/winnls/nls/tel.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/tel.nls rename to dll/win32/kernel32/winnls/nls/tel.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/tha.nls b/dll/win32/kernel32/winnls/nls/tha.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/tha.nls rename to dll/win32/kernel32/winnls/nls/tha.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/trk.nls b/dll/win32/kernel32/winnls/nls/trk.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/trk.nls rename to dll/win32/kernel32/winnls/nls/trk.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ttt.nls b/dll/win32/kernel32/winnls/nls/ttt.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ttt.nls rename to dll/win32/kernel32/winnls/nls/ttt.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/ukr.nls b/dll/win32/kernel32/winnls/nls/ukr.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/ukr.nls rename to dll/win32/kernel32/winnls/nls/ukr.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/urd.nls b/dll/win32/kernel32/winnls/nls/urd.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/urd.nls rename to dll/win32/kernel32/winnls/nls/urd.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/uzb.nls b/dll/win32/kernel32/winnls/nls/uzb.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/uzb.nls rename to dll/win32/kernel32/winnls/nls/uzb.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/uzl.nls b/dll/win32/kernel32/winnls/nls/uzl.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/uzl.nls rename to dll/win32/kernel32/winnls/nls/uzl.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/vit.nls b/dll/win32/kernel32/winnls/nls/vit.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/vit.nls rename to dll/win32/kernel32/winnls/nls/vit.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/zhh.nls b/dll/win32/kernel32/winnls/nls/zhh.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/zhh.nls rename to dll/win32/kernel32/winnls/nls/zhh.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/zhi.nls b/dll/win32/kernel32/winnls/nls/zhi.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/zhi.nls rename to dll/win32/kernel32/winnls/nls/zhi.nls diff --git a/reactos/dll/win32/kernel32/winnls/nls/zhm.nls b/dll/win32/kernel32/winnls/nls/zhm.nls similarity index 100% rename from reactos/dll/win32/kernel32/winnls/nls/zhm.nls rename to dll/win32/kernel32/winnls/nls/zhm.nls diff --git a/reactos/dll/win32/kernel32/winnls/string/casemap.c b/dll/win32/kernel32/winnls/string/casemap.c similarity index 100% rename from reactos/dll/win32/kernel32/winnls/string/casemap.c rename to dll/win32/kernel32/winnls/string/casemap.c diff --git a/reactos/dll/win32/kernel32/winnls/string/collation.c b/dll/win32/kernel32/winnls/string/collation.c similarity index 100% rename from reactos/dll/win32/kernel32/winnls/string/collation.c rename to dll/win32/kernel32/winnls/string/collation.c diff --git a/reactos/dll/win32/kernel32/winnls/string/fold.c b/dll/win32/kernel32/winnls/string/fold.c similarity index 100% rename from reactos/dll/win32/kernel32/winnls/string/fold.c rename to dll/win32/kernel32/winnls/string/fold.c diff --git a/reactos/dll/win32/kernel32/winnls/string/format_msg.c b/dll/win32/kernel32/winnls/string/format_msg.c similarity index 100% rename from reactos/dll/win32/kernel32/winnls/string/format_msg.c rename to dll/win32/kernel32/winnls/string/format_msg.c diff --git a/reactos/dll/win32/kernel32/winnls/string/lang.c b/dll/win32/kernel32/winnls/string/lang.c similarity index 100% rename from reactos/dll/win32/kernel32/winnls/string/lang.c rename to dll/win32/kernel32/winnls/string/lang.c diff --git a/reactos/dll/win32/kernel32/winnls/string/lcformat.c b/dll/win32/kernel32/winnls/string/lcformat.c similarity index 100% rename from reactos/dll/win32/kernel32/winnls/string/lcformat.c rename to dll/win32/kernel32/winnls/string/lcformat.c diff --git a/reactos/dll/win32/kernel32/winnls/string/lcformat_private.h b/dll/win32/kernel32/winnls/string/lcformat_private.h similarity index 100% rename from reactos/dll/win32/kernel32/winnls/string/lcformat_private.h rename to dll/win32/kernel32/winnls/string/lcformat_private.h diff --git a/reactos/dll/win32/kernel32/winnls/string/lstring.c b/dll/win32/kernel32/winnls/string/lstring.c similarity index 100% rename from reactos/dll/win32/kernel32/winnls/string/lstring.c rename to dll/win32/kernel32/winnls/string/lstring.c diff --git a/reactos/dll/win32/kernel32/winnls/string/nls.c b/dll/win32/kernel32/winnls/string/nls.c similarity index 100% rename from reactos/dll/win32/kernel32/winnls/string/nls.c rename to dll/win32/kernel32/winnls/string/nls.c diff --git a/reactos/dll/win32/kernel32/winnls/string/sortkey.c b/dll/win32/kernel32/winnls/string/sortkey.c similarity index 100% rename from reactos/dll/win32/kernel32/winnls/string/sortkey.c rename to dll/win32/kernel32/winnls/string/sortkey.c diff --git a/reactos/dll/win32/loadperf/CMakeLists.txt b/dll/win32/loadperf/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/loadperf/CMakeLists.txt rename to dll/win32/loadperf/CMakeLists.txt diff --git a/reactos/dll/win32/loadperf/loadperf.spec b/dll/win32/loadperf/loadperf.spec similarity index 100% rename from reactos/dll/win32/loadperf/loadperf.spec rename to dll/win32/loadperf/loadperf.spec diff --git a/reactos/dll/win32/loadperf/loadperf_main.c b/dll/win32/loadperf/loadperf_main.c similarity index 100% rename from reactos/dll/win32/loadperf/loadperf_main.c rename to dll/win32/loadperf/loadperf_main.c diff --git a/reactos/dll/win32/loadperf/stubs.c b/dll/win32/loadperf/stubs.c similarity index 100% rename from reactos/dll/win32/loadperf/stubs.c rename to dll/win32/loadperf/stubs.c diff --git a/reactos/dll/win32/localspl/CMakeLists.txt b/dll/win32/localspl/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/localspl/CMakeLists.txt rename to dll/win32/localspl/CMakeLists.txt diff --git a/reactos/dll/win32/localspl/localmon.c b/dll/win32/localspl/localmon.c similarity index 100% rename from reactos/dll/win32/localspl/localmon.c rename to dll/win32/localspl/localmon.c diff --git a/reactos/dll/win32/localspl/localspl.rc b/dll/win32/localspl/localspl.rc similarity index 100% rename from reactos/dll/win32/localspl/localspl.rc rename to dll/win32/localspl/localspl.rc diff --git a/reactos/dll/win32/localspl/localspl.spec b/dll/win32/localspl/localspl.spec similarity index 100% rename from reactos/dll/win32/localspl/localspl.spec rename to dll/win32/localspl/localspl.spec diff --git a/reactos/dll/win32/localspl/localspl_main.c b/dll/win32/localspl/localspl_main.c similarity index 100% rename from reactos/dll/win32/localspl/localspl_main.c rename to dll/win32/localspl/localspl_main.c diff --git a/reactos/dll/win32/localspl/localspl_private.h b/dll/win32/localspl/localspl_private.h similarity index 100% rename from reactos/dll/win32/localspl/localspl_private.h rename to dll/win32/localspl/localspl_private.h diff --git a/reactos/dll/win32/localspl/provider.c b/dll/win32/localspl/provider.c similarity index 100% rename from reactos/dll/win32/localspl/provider.c rename to dll/win32/localspl/provider.c diff --git a/reactos/dll/win32/localspl/spl_Cy.rc b/dll/win32/localspl/spl_Cy.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Cy.rc rename to dll/win32/localspl/spl_Cy.rc diff --git a/reactos/dll/win32/localspl/spl_Da.rc b/dll/win32/localspl/spl_Da.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Da.rc rename to dll/win32/localspl/spl_Da.rc diff --git a/reactos/dll/win32/localspl/spl_De.rc b/dll/win32/localspl/spl_De.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_De.rc rename to dll/win32/localspl/spl_De.rc diff --git a/reactos/dll/win32/localspl/spl_En.rc b/dll/win32/localspl/spl_En.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_En.rc rename to dll/win32/localspl/spl_En.rc diff --git a/reactos/dll/win32/localspl/spl_Es.rc b/dll/win32/localspl/spl_Es.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Es.rc rename to dll/win32/localspl/spl_Es.rc diff --git a/reactos/dll/win32/localspl/spl_Fr.rc b/dll/win32/localspl/spl_Fr.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Fr.rc rename to dll/win32/localspl/spl_Fr.rc diff --git a/reactos/dll/win32/localspl/spl_Hu.rc b/dll/win32/localspl/spl_Hu.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Hu.rc rename to dll/win32/localspl/spl_Hu.rc diff --git a/reactos/dll/win32/localspl/spl_It.rc b/dll/win32/localspl/spl_It.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_It.rc rename to dll/win32/localspl/spl_It.rc diff --git a/reactos/dll/win32/localspl/spl_Ja.rc b/dll/win32/localspl/spl_Ja.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Ja.rc rename to dll/win32/localspl/spl_Ja.rc diff --git a/reactos/dll/win32/localspl/spl_Ko.rc b/dll/win32/localspl/spl_Ko.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Ko.rc rename to dll/win32/localspl/spl_Ko.rc diff --git a/reactos/dll/win32/localspl/spl_Lt.rc b/dll/win32/localspl/spl_Lt.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Lt.rc rename to dll/win32/localspl/spl_Lt.rc diff --git a/reactos/dll/win32/localspl/spl_Nl.rc b/dll/win32/localspl/spl_Nl.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Nl.rc rename to dll/win32/localspl/spl_Nl.rc diff --git a/reactos/dll/win32/localspl/spl_No.rc b/dll/win32/localspl/spl_No.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_No.rc rename to dll/win32/localspl/spl_No.rc diff --git a/reactos/dll/win32/localspl/spl_Pl.rc b/dll/win32/localspl/spl_Pl.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Pl.rc rename to dll/win32/localspl/spl_Pl.rc diff --git a/reactos/dll/win32/localspl/spl_Pt.rc b/dll/win32/localspl/spl_Pt.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Pt.rc rename to dll/win32/localspl/spl_Pt.rc diff --git a/reactos/dll/win32/localspl/spl_Ro.rc b/dll/win32/localspl/spl_Ro.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Ro.rc rename to dll/win32/localspl/spl_Ro.rc diff --git a/reactos/dll/win32/localspl/spl_Ru.rc b/dll/win32/localspl/spl_Ru.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Ru.rc rename to dll/win32/localspl/spl_Ru.rc diff --git a/reactos/dll/win32/localspl/spl_Si.rc b/dll/win32/localspl/spl_Si.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Si.rc rename to dll/win32/localspl/spl_Si.rc diff --git a/reactos/dll/win32/localspl/spl_Sv.rc b/dll/win32/localspl/spl_Sv.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Sv.rc rename to dll/win32/localspl/spl_Sv.rc diff --git a/reactos/dll/win32/localspl/spl_Uk.rc b/dll/win32/localspl/spl_Uk.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Uk.rc rename to dll/win32/localspl/spl_Uk.rc diff --git a/reactos/dll/win32/localspl/spl_Zh.rc b/dll/win32/localspl/spl_Zh.rc similarity index 100% rename from reactos/dll/win32/localspl/spl_Zh.rc rename to dll/win32/localspl/spl_Zh.rc diff --git a/reactos/dll/win32/localui/CMakeLists.txt b/dll/win32/localui/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/localui/CMakeLists.txt rename to dll/win32/localui/CMakeLists.txt diff --git a/reactos/dll/win32/localui/localui.c b/dll/win32/localui/localui.c similarity index 100% rename from reactos/dll/win32/localui/localui.c rename to dll/win32/localui/localui.c diff --git a/reactos/dll/win32/localui/localui.h b/dll/win32/localui/localui.h similarity index 100% rename from reactos/dll/win32/localui/localui.h rename to dll/win32/localui/localui.h diff --git a/reactos/dll/win32/localui/localui.rc b/dll/win32/localui/localui.rc similarity index 100% rename from reactos/dll/win32/localui/localui.rc rename to dll/win32/localui/localui.rc diff --git a/reactos/dll/win32/localui/localui.spec b/dll/win32/localui/localui.spec similarity index 100% rename from reactos/dll/win32/localui/localui.spec rename to dll/win32/localui/localui.spec diff --git a/reactos/dll/win32/localui/ui_Da.rc b/dll/win32/localui/ui_Da.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Da.rc rename to dll/win32/localui/ui_Da.rc diff --git a/reactos/dll/win32/localui/ui_De.rc b/dll/win32/localui/ui_De.rc similarity index 100% rename from reactos/dll/win32/localui/ui_De.rc rename to dll/win32/localui/ui_De.rc diff --git a/reactos/dll/win32/localui/ui_En.rc b/dll/win32/localui/ui_En.rc similarity index 100% rename from reactos/dll/win32/localui/ui_En.rc rename to dll/win32/localui/ui_En.rc diff --git a/reactos/dll/win32/localui/ui_Es.rc b/dll/win32/localui/ui_Es.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Es.rc rename to dll/win32/localui/ui_Es.rc diff --git a/reactos/dll/win32/localui/ui_Fr.rc b/dll/win32/localui/ui_Fr.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Fr.rc rename to dll/win32/localui/ui_Fr.rc diff --git a/reactos/dll/win32/localui/ui_Hu.rc b/dll/win32/localui/ui_Hu.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Hu.rc rename to dll/win32/localui/ui_Hu.rc diff --git a/reactos/dll/win32/localui/ui_It.rc b/dll/win32/localui/ui_It.rc similarity index 100% rename from reactos/dll/win32/localui/ui_It.rc rename to dll/win32/localui/ui_It.rc diff --git a/reactos/dll/win32/localui/ui_Ja.rc b/dll/win32/localui/ui_Ja.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Ja.rc rename to dll/win32/localui/ui_Ja.rc diff --git a/reactos/dll/win32/localui/ui_Ko.rc b/dll/win32/localui/ui_Ko.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Ko.rc rename to dll/win32/localui/ui_Ko.rc diff --git a/reactos/dll/win32/localui/ui_Lt.rc b/dll/win32/localui/ui_Lt.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Lt.rc rename to dll/win32/localui/ui_Lt.rc diff --git a/reactos/dll/win32/localui/ui_Nl.rc b/dll/win32/localui/ui_Nl.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Nl.rc rename to dll/win32/localui/ui_Nl.rc diff --git a/reactos/dll/win32/localui/ui_No.rc b/dll/win32/localui/ui_No.rc similarity index 100% rename from reactos/dll/win32/localui/ui_No.rc rename to dll/win32/localui/ui_No.rc diff --git a/reactos/dll/win32/localui/ui_Pl.rc b/dll/win32/localui/ui_Pl.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Pl.rc rename to dll/win32/localui/ui_Pl.rc diff --git a/reactos/dll/win32/localui/ui_Pt.rc b/dll/win32/localui/ui_Pt.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Pt.rc rename to dll/win32/localui/ui_Pt.rc diff --git a/reactos/dll/win32/localui/ui_Ro.rc b/dll/win32/localui/ui_Ro.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Ro.rc rename to dll/win32/localui/ui_Ro.rc diff --git a/reactos/dll/win32/localui/ui_Ru.rc b/dll/win32/localui/ui_Ru.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Ru.rc rename to dll/win32/localui/ui_Ru.rc diff --git a/reactos/dll/win32/localui/ui_Si.rc b/dll/win32/localui/ui_Si.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Si.rc rename to dll/win32/localui/ui_Si.rc diff --git a/reactos/dll/win32/localui/ui_Sv.rc b/dll/win32/localui/ui_Sv.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Sv.rc rename to dll/win32/localui/ui_Sv.rc diff --git a/reactos/dll/win32/localui/ui_Uk.rc b/dll/win32/localui/ui_Uk.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Uk.rc rename to dll/win32/localui/ui_Uk.rc diff --git a/reactos/dll/win32/localui/ui_Zh.rc b/dll/win32/localui/ui_Zh.rc similarity index 100% rename from reactos/dll/win32/localui/ui_Zh.rc rename to dll/win32/localui/ui_Zh.rc diff --git a/reactos/dll/win32/lpk/CMakeLists.txt b/dll/win32/lpk/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/lpk/CMakeLists.txt rename to dll/win32/lpk/CMakeLists.txt diff --git a/reactos/dll/win32/lpk/dllmain.c b/dll/win32/lpk/dllmain.c similarity index 100% rename from reactos/dll/win32/lpk/dllmain.c rename to dll/win32/lpk/dllmain.c diff --git a/reactos/dll/win32/lpk/lpk.rc b/dll/win32/lpk/lpk.rc similarity index 100% rename from reactos/dll/win32/lpk/lpk.rc rename to dll/win32/lpk/lpk.rc diff --git a/reactos/dll/win32/lpk/lpk.spec b/dll/win32/lpk/lpk.spec similarity index 100% rename from reactos/dll/win32/lpk/lpk.spec rename to dll/win32/lpk/lpk.spec diff --git a/reactos/dll/win32/lpk/ros_lpk.h b/dll/win32/lpk/ros_lpk.h similarity index 100% rename from reactos/dll/win32/lpk/ros_lpk.h rename to dll/win32/lpk/ros_lpk.h diff --git a/reactos/dll/win32/lpk/stub.c b/dll/win32/lpk/stub.c similarity index 100% rename from reactos/dll/win32/lpk/stub.c rename to dll/win32/lpk/stub.c diff --git a/reactos/dll/win32/lsasrv/CMakeLists.txt b/dll/win32/lsasrv/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/lsasrv/CMakeLists.txt rename to dll/win32/lsasrv/CMakeLists.txt diff --git a/reactos/dll/win32/lsasrv/authport.c b/dll/win32/lsasrv/authport.c similarity index 100% rename from reactos/dll/win32/lsasrv/authport.c rename to dll/win32/lsasrv/authport.c diff --git a/reactos/dll/win32/lsasrv/database.c b/dll/win32/lsasrv/database.c similarity index 100% rename from reactos/dll/win32/lsasrv/database.c rename to dll/win32/lsasrv/database.c diff --git a/reactos/dll/win32/lsasrv/lsarpc.c b/dll/win32/lsasrv/lsarpc.c similarity index 100% rename from reactos/dll/win32/lsasrv/lsarpc.c rename to dll/win32/lsasrv/lsarpc.c diff --git a/reactos/dll/win32/lsasrv/lsasrv.c b/dll/win32/lsasrv/lsasrv.c similarity index 100% rename from reactos/dll/win32/lsasrv/lsasrv.c rename to dll/win32/lsasrv/lsasrv.c diff --git a/reactos/dll/win32/lsasrv/lsasrv.h b/dll/win32/lsasrv/lsasrv.h similarity index 100% rename from reactos/dll/win32/lsasrv/lsasrv.h rename to dll/win32/lsasrv/lsasrv.h diff --git a/reactos/dll/win32/lsasrv/lsasrv.rc b/dll/win32/lsasrv/lsasrv.rc similarity index 100% rename from reactos/dll/win32/lsasrv/lsasrv.rc rename to dll/win32/lsasrv/lsasrv.rc diff --git a/reactos/dll/win32/lsasrv/lsasrv.spec b/dll/win32/lsasrv/lsasrv.spec similarity index 100% rename from reactos/dll/win32/lsasrv/lsasrv.spec rename to dll/win32/lsasrv/lsasrv.spec diff --git a/reactos/dll/win32/lsasrv/policy.c b/dll/win32/lsasrv/policy.c similarity index 100% rename from reactos/dll/win32/lsasrv/policy.c rename to dll/win32/lsasrv/policy.c diff --git a/reactos/dll/win32/lsasrv/privileges.c b/dll/win32/lsasrv/privileges.c similarity index 100% rename from reactos/dll/win32/lsasrv/privileges.c rename to dll/win32/lsasrv/privileges.c diff --git a/reactos/dll/win32/lsasrv/sids.c b/dll/win32/lsasrv/sids.c similarity index 100% rename from reactos/dll/win32/lsasrv/sids.c rename to dll/win32/lsasrv/sids.c diff --git a/reactos/dll/win32/lz32/CMakeLists.txt b/dll/win32/lz32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/lz32/CMakeLists.txt rename to dll/win32/lz32/CMakeLists.txt diff --git a/reactos/dll/win32/lz32/lz32.spec b/dll/win32/lz32/lz32.spec similarity index 100% rename from reactos/dll/win32/lz32/lz32.spec rename to dll/win32/lz32/lz32.spec diff --git a/reactos/dll/win32/lz32/version.rc b/dll/win32/lz32/version.rc similarity index 100% rename from reactos/dll/win32/lz32/version.rc rename to dll/win32/lz32/version.rc diff --git a/reactos/dll/win32/mapi32/CMakeLists.txt b/dll/win32/mapi32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mapi32/CMakeLists.txt rename to dll/win32/mapi32/CMakeLists.txt diff --git a/reactos/dll/win32/mapi32/Cy.rc b/dll/win32/mapi32/Cy.rc similarity index 100% rename from reactos/dll/win32/mapi32/Cy.rc rename to dll/win32/mapi32/Cy.rc diff --git a/reactos/dll/win32/mapi32/Da.rc b/dll/win32/mapi32/Da.rc similarity index 100% rename from reactos/dll/win32/mapi32/Da.rc rename to dll/win32/mapi32/Da.rc diff --git a/reactos/dll/win32/mapi32/De.rc b/dll/win32/mapi32/De.rc similarity index 100% rename from reactos/dll/win32/mapi32/De.rc rename to dll/win32/mapi32/De.rc diff --git a/reactos/dll/win32/mapi32/En.rc b/dll/win32/mapi32/En.rc similarity index 100% rename from reactos/dll/win32/mapi32/En.rc rename to dll/win32/mapi32/En.rc diff --git a/reactos/dll/win32/mapi32/Es.rc b/dll/win32/mapi32/Es.rc similarity index 100% rename from reactos/dll/win32/mapi32/Es.rc rename to dll/win32/mapi32/Es.rc diff --git a/reactos/dll/win32/mapi32/Fr.rc b/dll/win32/mapi32/Fr.rc similarity index 100% rename from reactos/dll/win32/mapi32/Fr.rc rename to dll/win32/mapi32/Fr.rc diff --git a/reactos/dll/win32/mapi32/Ga.rc b/dll/win32/mapi32/Ga.rc similarity index 100% rename from reactos/dll/win32/mapi32/Ga.rc rename to dll/win32/mapi32/Ga.rc diff --git a/reactos/dll/win32/mapi32/Hu.rc b/dll/win32/mapi32/Hu.rc similarity index 100% rename from reactos/dll/win32/mapi32/Hu.rc rename to dll/win32/mapi32/Hu.rc diff --git a/reactos/dll/win32/mapi32/It.rc b/dll/win32/mapi32/It.rc similarity index 100% rename from reactos/dll/win32/mapi32/It.rc rename to dll/win32/mapi32/It.rc diff --git a/reactos/dll/win32/mapi32/Ja.rc b/dll/win32/mapi32/Ja.rc similarity index 100% rename from reactos/dll/win32/mapi32/Ja.rc rename to dll/win32/mapi32/Ja.rc diff --git a/reactos/dll/win32/mapi32/Ko.rc b/dll/win32/mapi32/Ko.rc similarity index 100% rename from reactos/dll/win32/mapi32/Ko.rc rename to dll/win32/mapi32/Ko.rc diff --git a/reactos/dll/win32/mapi32/Lt.rc b/dll/win32/mapi32/Lt.rc similarity index 100% rename from reactos/dll/win32/mapi32/Lt.rc rename to dll/win32/mapi32/Lt.rc diff --git a/reactos/dll/win32/mapi32/Nl.rc b/dll/win32/mapi32/Nl.rc similarity index 100% rename from reactos/dll/win32/mapi32/Nl.rc rename to dll/win32/mapi32/Nl.rc diff --git a/reactos/dll/win32/mapi32/No.rc b/dll/win32/mapi32/No.rc similarity index 100% rename from reactos/dll/win32/mapi32/No.rc rename to dll/win32/mapi32/No.rc diff --git a/reactos/dll/win32/mapi32/Pl.rc b/dll/win32/mapi32/Pl.rc similarity index 100% rename from reactos/dll/win32/mapi32/Pl.rc rename to dll/win32/mapi32/Pl.rc diff --git a/reactos/dll/win32/mapi32/Pt.rc b/dll/win32/mapi32/Pt.rc similarity index 100% rename from reactos/dll/win32/mapi32/Pt.rc rename to dll/win32/mapi32/Pt.rc diff --git a/reactos/dll/win32/mapi32/Ro.rc b/dll/win32/mapi32/Ro.rc similarity index 100% rename from reactos/dll/win32/mapi32/Ro.rc rename to dll/win32/mapi32/Ro.rc diff --git a/reactos/dll/win32/mapi32/Ru.rc b/dll/win32/mapi32/Ru.rc similarity index 100% rename from reactos/dll/win32/mapi32/Ru.rc rename to dll/win32/mapi32/Ru.rc diff --git a/reactos/dll/win32/mapi32/Si.rc b/dll/win32/mapi32/Si.rc similarity index 100% rename from reactos/dll/win32/mapi32/Si.rc rename to dll/win32/mapi32/Si.rc diff --git a/reactos/dll/win32/mapi32/Uk.rc b/dll/win32/mapi32/Uk.rc similarity index 100% rename from reactos/dll/win32/mapi32/Uk.rc rename to dll/win32/mapi32/Uk.rc diff --git a/reactos/dll/win32/mapi32/imalloc.c b/dll/win32/mapi32/imalloc.c similarity index 100% rename from reactos/dll/win32/mapi32/imalloc.c rename to dll/win32/mapi32/imalloc.c diff --git a/reactos/dll/win32/mapi32/mapi32.spec b/dll/win32/mapi32/mapi32.spec similarity index 100% rename from reactos/dll/win32/mapi32/mapi32.spec rename to dll/win32/mapi32/mapi32.spec diff --git a/reactos/dll/win32/mapi32/mapi32_main.c b/dll/win32/mapi32/mapi32_main.c similarity index 100% rename from reactos/dll/win32/mapi32/mapi32_main.c rename to dll/win32/mapi32/mapi32_main.c diff --git a/reactos/dll/win32/mapi32/prop.c b/dll/win32/mapi32/prop.c similarity index 100% rename from reactos/dll/win32/mapi32/prop.c rename to dll/win32/mapi32/prop.c diff --git a/reactos/dll/win32/mapi32/res.h b/dll/win32/mapi32/res.h similarity index 100% rename from reactos/dll/win32/mapi32/res.h rename to dll/win32/mapi32/res.h diff --git a/reactos/dll/win32/mapi32/sendmail.c b/dll/win32/mapi32/sendmail.c similarity index 100% rename from reactos/dll/win32/mapi32/sendmail.c rename to dll/win32/mapi32/sendmail.c diff --git a/reactos/dll/win32/mapi32/stubs.c b/dll/win32/mapi32/stubs.c similarity index 100% rename from reactos/dll/win32/mapi32/stubs.c rename to dll/win32/mapi32/stubs.c diff --git a/reactos/dll/win32/mapi32/util.c b/dll/win32/mapi32/util.c similarity index 100% rename from reactos/dll/win32/mapi32/util.c rename to dll/win32/mapi32/util.c diff --git a/reactos/dll/win32/mapi32/util.h b/dll/win32/mapi32/util.h similarity index 100% rename from reactos/dll/win32/mapi32/util.h rename to dll/win32/mapi32/util.h diff --git a/reactos/dll/win32/mapi32/version.rc b/dll/win32/mapi32/version.rc similarity index 100% rename from reactos/dll/win32/mapi32/version.rc rename to dll/win32/mapi32/version.rc diff --git a/reactos/dll/win32/mciavi32/CMakeLists.txt b/dll/win32/mciavi32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mciavi32/CMakeLists.txt rename to dll/win32/mciavi32/CMakeLists.txt diff --git a/reactos/dll/win32/mciavi32/info.c b/dll/win32/mciavi32/info.c similarity index 100% rename from reactos/dll/win32/mciavi32/info.c rename to dll/win32/mciavi32/info.c diff --git a/reactos/dll/win32/mciavi32/mciavi.c b/dll/win32/mciavi32/mciavi.c similarity index 100% rename from reactos/dll/win32/mciavi32/mciavi.c rename to dll/win32/mciavi32/mciavi.c diff --git a/reactos/dll/win32/mciavi32/mciavi32.spec b/dll/win32/mciavi32/mciavi32.spec similarity index 100% rename from reactos/dll/win32/mciavi32/mciavi32.spec rename to dll/win32/mciavi32/mciavi32.spec diff --git a/reactos/dll/win32/mciavi32/mciavi_res.rc b/dll/win32/mciavi32/mciavi_res.rc similarity index 100% rename from reactos/dll/win32/mciavi32/mciavi_res.rc rename to dll/win32/mciavi32/mciavi_res.rc diff --git a/reactos/dll/win32/mciavi32/mmoutput.c b/dll/win32/mciavi32/mmoutput.c similarity index 100% rename from reactos/dll/win32/mciavi32/mmoutput.c rename to dll/win32/mciavi32/mmoutput.c diff --git a/reactos/dll/win32/mciavi32/private_mciavi.h b/dll/win32/mciavi32/private_mciavi.h similarity index 100% rename from reactos/dll/win32/mciavi32/private_mciavi.h rename to dll/win32/mciavi32/private_mciavi.h diff --git a/reactos/dll/win32/mciavi32/wnd.c b/dll/win32/mciavi32/wnd.c similarity index 100% rename from reactos/dll/win32/mciavi32/wnd.c rename to dll/win32/mciavi32/wnd.c diff --git a/reactos/dll/win32/mcicda/CMakeLists.txt b/dll/win32/mcicda/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mcicda/CMakeLists.txt rename to dll/win32/mcicda/CMakeLists.txt diff --git a/reactos/dll/win32/mcicda/mcicda.c b/dll/win32/mcicda/mcicda.c similarity index 100% rename from reactos/dll/win32/mcicda/mcicda.c rename to dll/win32/mcicda/mcicda.c diff --git a/reactos/dll/win32/mcicda/mcicda.spec b/dll/win32/mcicda/mcicda.spec similarity index 100% rename from reactos/dll/win32/mcicda/mcicda.spec rename to dll/win32/mcicda/mcicda.spec diff --git a/reactos/dll/win32/mciqtz32/CMakeLists.txt b/dll/win32/mciqtz32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mciqtz32/CMakeLists.txt rename to dll/win32/mciqtz32/CMakeLists.txt diff --git a/reactos/dll/win32/mciqtz32/mciavi_res.rc b/dll/win32/mciqtz32/mciavi_res.rc similarity index 100% rename from reactos/dll/win32/mciqtz32/mciavi_res.rc rename to dll/win32/mciqtz32/mciavi_res.rc diff --git a/reactos/dll/win32/mciqtz32/mciqtz.c b/dll/win32/mciqtz32/mciqtz.c similarity index 100% rename from reactos/dll/win32/mciqtz32/mciqtz.c rename to dll/win32/mciqtz32/mciqtz.c diff --git a/reactos/dll/win32/mciqtz32/mciqtz32.spec b/dll/win32/mciqtz32/mciqtz32.spec similarity index 100% rename from reactos/dll/win32/mciqtz32/mciqtz32.spec rename to dll/win32/mciqtz32/mciqtz32.spec diff --git a/reactos/dll/win32/mciqtz32/mciqtz_private.h b/dll/win32/mciqtz32/mciqtz_private.h similarity index 100% rename from reactos/dll/win32/mciqtz32/mciqtz_private.h rename to dll/win32/mciqtz32/mciqtz_private.h diff --git a/reactos/dll/win32/mciqtz32/version.rc b/dll/win32/mciqtz32/version.rc similarity index 100% rename from reactos/dll/win32/mciqtz32/version.rc rename to dll/win32/mciqtz32/version.rc diff --git a/reactos/dll/win32/mciseq/CMakeLists.txt b/dll/win32/mciseq/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mciseq/CMakeLists.txt rename to dll/win32/mciseq/CMakeLists.txt diff --git a/reactos/dll/win32/mciseq/mcimidi.c b/dll/win32/mciseq/mcimidi.c similarity index 100% rename from reactos/dll/win32/mciseq/mcimidi.c rename to dll/win32/mciseq/mcimidi.c diff --git a/reactos/dll/win32/mciseq/mciseq.spec b/dll/win32/mciseq/mciseq.spec similarity index 100% rename from reactos/dll/win32/mciseq/mciseq.spec rename to dll/win32/mciseq/mciseq.spec diff --git a/reactos/dll/win32/mciwave/CMakeLists.txt b/dll/win32/mciwave/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mciwave/CMakeLists.txt rename to dll/win32/mciwave/CMakeLists.txt diff --git a/reactos/dll/win32/mciwave/mciwave.c b/dll/win32/mciwave/mciwave.c similarity index 100% rename from reactos/dll/win32/mciwave/mciwave.c rename to dll/win32/mciwave/mciwave.c diff --git a/reactos/dll/win32/mciwave/mciwave.spec b/dll/win32/mciwave/mciwave.spec similarity index 100% rename from reactos/dll/win32/mciwave/mciwave.spec rename to dll/win32/mciwave/mciwave.spec diff --git a/reactos/dll/win32/mlang/CMakeLists.txt b/dll/win32/mlang/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mlang/CMakeLists.txt rename to dll/win32/mlang/CMakeLists.txt diff --git a/reactos/dll/win32/mlang/mlang.c b/dll/win32/mlang/mlang.c similarity index 100% rename from reactos/dll/win32/mlang/mlang.c rename to dll/win32/mlang/mlang.c diff --git a/reactos/dll/win32/mlang/mlang.rc b/dll/win32/mlang/mlang.rc similarity index 100% rename from reactos/dll/win32/mlang/mlang.rc rename to dll/win32/mlang/mlang.rc diff --git a/reactos/dll/win32/mlang/mlang.rgs b/dll/win32/mlang/mlang.rgs similarity index 100% rename from reactos/dll/win32/mlang/mlang.rgs rename to dll/win32/mlang/mlang.rgs diff --git a/reactos/dll/win32/mlang/mlang.spec b/dll/win32/mlang/mlang.spec similarity index 100% rename from reactos/dll/win32/mlang/mlang.spec rename to dll/win32/mlang/mlang.spec diff --git a/reactos/dll/win32/mlang/mlang_classes.idl b/dll/win32/mlang/mlang_classes.idl similarity index 100% rename from reactos/dll/win32/mlang/mlang_classes.idl rename to dll/win32/mlang/mlang_classes.idl diff --git a/reactos/dll/win32/mmdrv/CMakeLists.txt b/dll/win32/mmdrv/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mmdrv/CMakeLists.txt rename to dll/win32/mmdrv/CMakeLists.txt diff --git a/reactos/dll/win32/mmdrv/TODO b/dll/win32/mmdrv/TODO similarity index 100% rename from reactos/dll/win32/mmdrv/TODO rename to dll/win32/mmdrv/TODO diff --git a/reactos/dll/win32/mmdrv/auxil.c b/dll/win32/mmdrv/auxil.c similarity index 100% rename from reactos/dll/win32/mmdrv/auxil.c rename to dll/win32/mmdrv/auxil.c diff --git a/reactos/dll/win32/mmdrv/common.c b/dll/win32/mmdrv/common.c similarity index 100% rename from reactos/dll/win32/mmdrv/common.c rename to dll/win32/mmdrv/common.c diff --git a/reactos/dll/win32/mmdrv/entry.c b/dll/win32/mmdrv/entry.c similarity index 100% rename from reactos/dll/win32/mmdrv/entry.c rename to dll/win32/mmdrv/entry.c diff --git a/reactos/dll/win32/mmdrv/kernel.c b/dll/win32/mmdrv/kernel.c similarity index 100% rename from reactos/dll/win32/mmdrv/kernel.c rename to dll/win32/mmdrv/kernel.c diff --git a/reactos/dll/win32/mmdrv/midi.c b/dll/win32/mmdrv/midi.c similarity index 100% rename from reactos/dll/win32/mmdrv/midi.c rename to dll/win32/mmdrv/midi.c diff --git a/reactos/dll/win32/mmdrv/mmddk.h b/dll/win32/mmdrv/mmddk.h similarity index 100% rename from reactos/dll/win32/mmdrv/mmddk.h rename to dll/win32/mmdrv/mmddk.h diff --git a/reactos/dll/win32/mmdrv/mmdef.h b/dll/win32/mmdrv/mmdef.h similarity index 100% rename from reactos/dll/win32/mmdrv/mmdef.h rename to dll/win32/mmdrv/mmdef.h diff --git a/reactos/dll/win32/mmdrv/mmdrv.h b/dll/win32/mmdrv/mmdrv.h similarity index 100% rename from reactos/dll/win32/mmdrv/mmdrv.h rename to dll/win32/mmdrv/mmdrv.h diff --git a/reactos/dll/win32/mmdrv/mmdrv.spec b/dll/win32/mmdrv/mmdrv.spec similarity index 100% rename from reactos/dll/win32/mmdrv/mmdrv.spec rename to dll/win32/mmdrv/mmdrv.spec diff --git a/reactos/dll/win32/mmdrv/mme.c b/dll/win32/mmdrv/mme.c similarity index 100% rename from reactos/dll/win32/mmdrv/mme.c rename to dll/win32/mmdrv/mme.c diff --git a/reactos/dll/win32/mmdrv/mmioctl.h b/dll/win32/mmdrv/mmioctl.h similarity index 100% rename from reactos/dll/win32/mmdrv/mmioctl.h rename to dll/win32/mmdrv/mmioctl.h diff --git a/reactos/dll/win32/mmdrv/session.c b/dll/win32/mmdrv/session.c similarity index 100% rename from reactos/dll/win32/mmdrv/session.c rename to dll/win32/mmdrv/session.c diff --git a/reactos/dll/win32/mmdrv/utils.c b/dll/win32/mmdrv/utils.c similarity index 100% rename from reactos/dll/win32/mmdrv/utils.c rename to dll/win32/mmdrv/utils.c diff --git a/reactos/dll/win32/mmdrv/wave.c b/dll/win32/mmdrv/wave.c similarity index 100% rename from reactos/dll/win32/mmdrv/wave.c rename to dll/win32/mmdrv/wave.c diff --git a/reactos/dll/win32/mmdrv/wave.h b/dll/win32/mmdrv/wave.h similarity index 100% rename from reactos/dll/win32/mmdrv/wave.h rename to dll/win32/mmdrv/wave.h diff --git a/reactos/dll/win32/mmdrv/wave_io.c b/dll/win32/mmdrv/wave_io.c similarity index 100% rename from reactos/dll/win32/mmdrv/wave_io.c rename to dll/win32/mmdrv/wave_io.c diff --git a/reactos/dll/win32/modemui/CMakeLists.txt b/dll/win32/modemui/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/modemui/CMakeLists.txt rename to dll/win32/modemui/CMakeLists.txt diff --git a/reactos/dll/win32/modemui/lang/de-DE.rc b/dll/win32/modemui/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/modemui/lang/de-DE.rc rename to dll/win32/modemui/lang/de-DE.rc diff --git a/reactos/dll/win32/modemui/lang/en-US.rc b/dll/win32/modemui/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/modemui/lang/en-US.rc rename to dll/win32/modemui/lang/en-US.rc diff --git a/reactos/dll/win32/modemui/lang/es-ES.rc b/dll/win32/modemui/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/modemui/lang/es-ES.rc rename to dll/win32/modemui/lang/es-ES.rc diff --git a/reactos/dll/win32/modemui/lang/no-NO.rc b/dll/win32/modemui/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/modemui/lang/no-NO.rc rename to dll/win32/modemui/lang/no-NO.rc diff --git a/reactos/dll/win32/modemui/lang/pl-PL.rc b/dll/win32/modemui/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/modemui/lang/pl-PL.rc rename to dll/win32/modemui/lang/pl-PL.rc diff --git a/reactos/dll/win32/modemui/lang/ro-RO.rc b/dll/win32/modemui/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/modemui/lang/ro-RO.rc rename to dll/win32/modemui/lang/ro-RO.rc diff --git a/reactos/dll/win32/modemui/lang/ru-RU.rc b/dll/win32/modemui/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/modemui/lang/ru-RU.rc rename to dll/win32/modemui/lang/ru-RU.rc diff --git a/reactos/dll/win32/modemui/lang/uk-UA.rc b/dll/win32/modemui/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/modemui/lang/uk-UA.rc rename to dll/win32/modemui/lang/uk-UA.rc diff --git a/reactos/dll/win32/modemui/modemui.c b/dll/win32/modemui/modemui.c similarity index 100% rename from reactos/dll/win32/modemui/modemui.c rename to dll/win32/modemui/modemui.c diff --git a/reactos/dll/win32/modemui/modemui.rc b/dll/win32/modemui/modemui.rc similarity index 100% rename from reactos/dll/win32/modemui/modemui.rc rename to dll/win32/modemui/modemui.rc diff --git a/reactos/dll/win32/modemui/modemui.spec b/dll/win32/modemui/modemui.spec similarity index 100% rename from reactos/dll/win32/modemui/modemui.spec rename to dll/win32/modemui/modemui.spec diff --git a/reactos/dll/win32/modemui/res/5100.ico b/dll/win32/modemui/res/5100.ico similarity index 100% rename from reactos/dll/win32/modemui/res/5100.ico rename to dll/win32/modemui/res/5100.ico diff --git a/reactos/dll/win32/modemui/res/700.ico b/dll/win32/modemui/res/700.ico similarity index 100% rename from reactos/dll/win32/modemui/res/700.ico rename to dll/win32/modemui/res/700.ico diff --git a/reactos/dll/win32/modemui/res/701.ico b/dll/win32/modemui/res/701.ico similarity index 100% rename from reactos/dll/win32/modemui/res/701.ico rename to dll/win32/modemui/res/701.ico diff --git a/reactos/dll/win32/modemui/res/702.ico b/dll/win32/modemui/res/702.ico similarity index 100% rename from reactos/dll/win32/modemui/res/702.ico rename to dll/win32/modemui/res/702.ico diff --git a/reactos/dll/win32/modemui/res/703.ico b/dll/win32/modemui/res/703.ico similarity index 100% rename from reactos/dll/win32/modemui/res/703.ico rename to dll/win32/modemui/res/703.ico diff --git a/reactos/dll/win32/modemui/resource.h b/dll/win32/modemui/resource.h similarity index 100% rename from reactos/dll/win32/modemui/resource.h rename to dll/win32/modemui/resource.h diff --git a/reactos/dll/win32/mpr/CMakeLists.txt b/dll/win32/mpr/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mpr/CMakeLists.txt rename to dll/win32/mpr/CMakeLists.txt diff --git a/reactos/dll/win32/mpr/auth.c b/dll/win32/mpr/auth.c similarity index 100% rename from reactos/dll/win32/mpr/auth.c rename to dll/win32/mpr/auth.c diff --git a/reactos/dll/win32/mpr/mpr.rc b/dll/win32/mpr/mpr.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr.rc rename to dll/win32/mpr/mpr.rc diff --git a/reactos/dll/win32/mpr/mpr.spec b/dll/win32/mpr/mpr.spec similarity index 100% rename from reactos/dll/win32/mpr/mpr.spec rename to dll/win32/mpr/mpr.spec diff --git a/reactos/dll/win32/mpr/mpr_Bg.rc b/dll/win32/mpr/mpr_Bg.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Bg.rc rename to dll/win32/mpr/mpr_Bg.rc diff --git a/reactos/dll/win32/mpr/mpr_Cs.rc b/dll/win32/mpr/mpr_Cs.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Cs.rc rename to dll/win32/mpr/mpr_Cs.rc diff --git a/reactos/dll/win32/mpr/mpr_Da.rc b/dll/win32/mpr/mpr_Da.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Da.rc rename to dll/win32/mpr/mpr_Da.rc diff --git a/reactos/dll/win32/mpr/mpr_De.rc b/dll/win32/mpr/mpr_De.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_De.rc rename to dll/win32/mpr/mpr_De.rc diff --git a/reactos/dll/win32/mpr/mpr_En.rc b/dll/win32/mpr/mpr_En.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_En.rc rename to dll/win32/mpr/mpr_En.rc diff --git a/reactos/dll/win32/mpr/mpr_Es.rc b/dll/win32/mpr/mpr_Es.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Es.rc rename to dll/win32/mpr/mpr_Es.rc diff --git a/reactos/dll/win32/mpr/mpr_Fr.rc b/dll/win32/mpr/mpr_Fr.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Fr.rc rename to dll/win32/mpr/mpr_Fr.rc diff --git a/reactos/dll/win32/mpr/mpr_Hu.rc b/dll/win32/mpr/mpr_Hu.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Hu.rc rename to dll/win32/mpr/mpr_Hu.rc diff --git a/reactos/dll/win32/mpr/mpr_It.rc b/dll/win32/mpr/mpr_It.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_It.rc rename to dll/win32/mpr/mpr_It.rc diff --git a/reactos/dll/win32/mpr/mpr_Ja.rc b/dll/win32/mpr/mpr_Ja.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Ja.rc rename to dll/win32/mpr/mpr_Ja.rc diff --git a/reactos/dll/win32/mpr/mpr_Ko.rc b/dll/win32/mpr/mpr_Ko.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Ko.rc rename to dll/win32/mpr/mpr_Ko.rc diff --git a/reactos/dll/win32/mpr/mpr_Lt.rc b/dll/win32/mpr/mpr_Lt.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Lt.rc rename to dll/win32/mpr/mpr_Lt.rc diff --git a/reactos/dll/win32/mpr/mpr_Nl.rc b/dll/win32/mpr/mpr_Nl.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Nl.rc rename to dll/win32/mpr/mpr_Nl.rc diff --git a/reactos/dll/win32/mpr/mpr_No.rc b/dll/win32/mpr/mpr_No.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_No.rc rename to dll/win32/mpr/mpr_No.rc diff --git a/reactos/dll/win32/mpr/mpr_Pl.rc b/dll/win32/mpr/mpr_Pl.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Pl.rc rename to dll/win32/mpr/mpr_Pl.rc diff --git a/reactos/dll/win32/mpr/mpr_Pt.rc b/dll/win32/mpr/mpr_Pt.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Pt.rc rename to dll/win32/mpr/mpr_Pt.rc diff --git a/reactos/dll/win32/mpr/mpr_Ro.rc b/dll/win32/mpr/mpr_Ro.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Ro.rc rename to dll/win32/mpr/mpr_Ro.rc diff --git a/reactos/dll/win32/mpr/mpr_Ru.rc b/dll/win32/mpr/mpr_Ru.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Ru.rc rename to dll/win32/mpr/mpr_Ru.rc diff --git a/reactos/dll/win32/mpr/mpr_Si.rc b/dll/win32/mpr/mpr_Si.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Si.rc rename to dll/win32/mpr/mpr_Si.rc diff --git a/reactos/dll/win32/mpr/mpr_Sv.rc b/dll/win32/mpr/mpr_Sv.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Sv.rc rename to dll/win32/mpr/mpr_Sv.rc diff --git a/reactos/dll/win32/mpr/mpr_Tr.rc b/dll/win32/mpr/mpr_Tr.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Tr.rc rename to dll/win32/mpr/mpr_Tr.rc diff --git a/reactos/dll/win32/mpr/mpr_Uk.rc b/dll/win32/mpr/mpr_Uk.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Uk.rc rename to dll/win32/mpr/mpr_Uk.rc diff --git a/reactos/dll/win32/mpr/mpr_Zh.rc b/dll/win32/mpr/mpr_Zh.rc similarity index 100% rename from reactos/dll/win32/mpr/mpr_Zh.rc rename to dll/win32/mpr/mpr_Zh.rc diff --git a/reactos/dll/win32/mpr/mpr_main.c b/dll/win32/mpr/mpr_main.c similarity index 100% rename from reactos/dll/win32/mpr/mpr_main.c rename to dll/win32/mpr/mpr_main.c diff --git a/reactos/dll/win32/mpr/mpr_ros.diff b/dll/win32/mpr/mpr_ros.diff similarity index 100% rename from reactos/dll/win32/mpr/mpr_ros.diff rename to dll/win32/mpr/mpr_ros.diff diff --git a/reactos/dll/win32/mpr/mprres.h b/dll/win32/mpr/mprres.h similarity index 100% rename from reactos/dll/win32/mpr/mprres.h rename to dll/win32/mpr/mprres.h diff --git a/reactos/dll/win32/mpr/multinet.c b/dll/win32/mpr/multinet.c similarity index 100% rename from reactos/dll/win32/mpr/multinet.c rename to dll/win32/mpr/multinet.c diff --git a/reactos/dll/win32/mpr/netspi.h b/dll/win32/mpr/netspi.h similarity index 100% rename from reactos/dll/win32/mpr/netspi.h rename to dll/win32/mpr/netspi.h diff --git a/reactos/dll/win32/mpr/nps.c b/dll/win32/mpr/nps.c similarity index 100% rename from reactos/dll/win32/mpr/nps.c rename to dll/win32/mpr/nps.c diff --git a/reactos/dll/win32/mpr/pwcache.c b/dll/win32/mpr/pwcache.c similarity index 100% rename from reactos/dll/win32/mpr/pwcache.c rename to dll/win32/mpr/pwcache.c diff --git a/reactos/dll/win32/mpr/version.rc b/dll/win32/mpr/version.rc similarity index 100% rename from reactos/dll/win32/mpr/version.rc rename to dll/win32/mpr/version.rc diff --git a/reactos/dll/win32/mpr/wnet.c b/dll/win32/mpr/wnet.c similarity index 100% rename from reactos/dll/win32/mpr/wnet.c rename to dll/win32/mpr/wnet.c diff --git a/reactos/dll/win32/mpr/wnetpriv.h b/dll/win32/mpr/wnetpriv.h similarity index 100% rename from reactos/dll/win32/mpr/wnetpriv.h rename to dll/win32/mpr/wnetpriv.h diff --git a/reactos/dll/win32/mprapi/CMakeLists.txt b/dll/win32/mprapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mprapi/CMakeLists.txt rename to dll/win32/mprapi/CMakeLists.txt diff --git a/reactos/dll/win32/mprapi/mprapi.c b/dll/win32/mprapi/mprapi.c similarity index 100% rename from reactos/dll/win32/mprapi/mprapi.c rename to dll/win32/mprapi/mprapi.c diff --git a/reactos/dll/win32/mprapi/mprapi.spec b/dll/win32/mprapi/mprapi.spec similarity index 100% rename from reactos/dll/win32/mprapi/mprapi.spec rename to dll/win32/mprapi/mprapi.spec diff --git a/reactos/dll/win32/msacm32/CMakeLists.txt b/dll/win32/msacm32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msacm32/CMakeLists.txt rename to dll/win32/msacm32/CMakeLists.txt diff --git a/reactos/dll/win32/msacm32/driver.c b/dll/win32/msacm32/driver.c similarity index 100% rename from reactos/dll/win32/msacm32/driver.c rename to dll/win32/msacm32/driver.c diff --git a/reactos/dll/win32/msacm32/filter.c b/dll/win32/msacm32/filter.c similarity index 100% rename from reactos/dll/win32/msacm32/filter.c rename to dll/win32/msacm32/filter.c diff --git a/reactos/dll/win32/msacm32/format.c b/dll/win32/msacm32/format.c similarity index 100% rename from reactos/dll/win32/msacm32/format.c rename to dll/win32/msacm32/format.c diff --git a/reactos/dll/win32/msacm32/imaadp32/Makefile.in b/dll/win32/msacm32/imaadp32/Makefile.in similarity index 100% rename from reactos/dll/win32/msacm32/imaadp32/Makefile.in rename to dll/win32/msacm32/imaadp32/Makefile.in diff --git a/reactos/dll/win32/msacm32/imaadp32/imaadp32.acm.spec b/dll/win32/msacm32/imaadp32/imaadp32.acm.spec similarity index 100% rename from reactos/dll/win32/msacm32/imaadp32/imaadp32.acm.spec rename to dll/win32/msacm32/imaadp32/imaadp32.acm.spec diff --git a/reactos/dll/win32/msacm32/imaadp32/imaadp32.c b/dll/win32/msacm32/imaadp32/imaadp32.c similarity index 100% rename from reactos/dll/win32/msacm32/imaadp32/imaadp32.c rename to dll/win32/msacm32/imaadp32/imaadp32.c diff --git a/reactos/dll/win32/msacm32/internal.c b/dll/win32/msacm32/internal.c similarity index 100% rename from reactos/dll/win32/msacm32/internal.c rename to dll/win32/msacm32/internal.c diff --git a/reactos/dll/win32/msacm32/msacm.rc b/dll/win32/msacm32/msacm.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm.rc rename to dll/win32/msacm32/msacm.rc diff --git a/reactos/dll/win32/msacm32/msacm.spec b/dll/win32/msacm32/msacm.spec similarity index 100% rename from reactos/dll/win32/msacm32/msacm.spec rename to dll/win32/msacm32/msacm.spec diff --git a/reactos/dll/win32/msacm32/msacm.spec.def b/dll/win32/msacm32/msacm.spec.def similarity index 100% rename from reactos/dll/win32/msacm32/msacm.spec.def rename to dll/win32/msacm32/msacm.spec.def diff --git a/reactos/dll/win32/msacm32/msacm32.drv/CMakeLists.txt b/dll/win32/msacm32/msacm32.drv/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msacm32/msacm32.drv/CMakeLists.txt rename to dll/win32/msacm32/msacm32.drv/CMakeLists.txt diff --git a/reactos/dll/win32/msacm32/msacm32.drv/msacm32.drv.spec b/dll/win32/msacm32/msacm32.drv/msacm32.drv.spec similarity index 100% rename from reactos/dll/win32/msacm32/msacm32.drv/msacm32.drv.spec rename to dll/win32/msacm32/msacm32.drv/msacm32.drv.spec diff --git a/reactos/dll/win32/msacm32/msacm32.drv/wavemap.c b/dll/win32/msacm32/msacm32.drv/wavemap.c similarity index 100% rename from reactos/dll/win32/msacm32/msacm32.drv/wavemap.c rename to dll/win32/msacm32/msacm32.drv/wavemap.c diff --git a/reactos/dll/win32/msacm32/msacm32.drv/wavemap.rc b/dll/win32/msacm32/msacm32.drv/wavemap.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm32.drv/wavemap.rc rename to dll/win32/msacm32/msacm32.drv/wavemap.rc diff --git a/reactos/dll/win32/msacm32/msacm32.spec b/dll/win32/msacm32/msacm32.spec similarity index 100% rename from reactos/dll/win32/msacm32/msacm32.spec rename to dll/win32/msacm32/msacm32.spec diff --git a/reactos/dll/win32/msacm32/msacm32_main.c b/dll/win32/msacm32/msacm32_main.c similarity index 100% rename from reactos/dll/win32/msacm32/msacm32_main.c rename to dll/win32/msacm32/msacm32_main.c diff --git a/reactos/dll/win32/msacm32/msacm_Bg.rc b/dll/win32/msacm32/msacm_Bg.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Bg.rc rename to dll/win32/msacm32/msacm_Bg.rc diff --git a/reactos/dll/win32/msacm32/msacm_Cs.rc b/dll/win32/msacm32/msacm_Cs.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Cs.rc rename to dll/win32/msacm32/msacm_Cs.rc diff --git a/reactos/dll/win32/msacm32/msacm_Da.rc b/dll/win32/msacm32/msacm_Da.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Da.rc rename to dll/win32/msacm32/msacm_Da.rc diff --git a/reactos/dll/win32/msacm32/msacm_De.rc b/dll/win32/msacm32/msacm_De.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_De.rc rename to dll/win32/msacm32/msacm_De.rc diff --git a/reactos/dll/win32/msacm32/msacm_El.rc b/dll/win32/msacm32/msacm_El.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_El.rc rename to dll/win32/msacm32/msacm_El.rc diff --git a/reactos/dll/win32/msacm32/msacm_En.rc b/dll/win32/msacm32/msacm_En.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_En.rc rename to dll/win32/msacm32/msacm_En.rc diff --git a/reactos/dll/win32/msacm32/msacm_Es.rc b/dll/win32/msacm32/msacm_Es.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Es.rc rename to dll/win32/msacm32/msacm_Es.rc diff --git a/reactos/dll/win32/msacm32/msacm_Fr.rc b/dll/win32/msacm32/msacm_Fr.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Fr.rc rename to dll/win32/msacm32/msacm_Fr.rc diff --git a/reactos/dll/win32/msacm32/msacm_Hu.rc b/dll/win32/msacm32/msacm_Hu.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Hu.rc rename to dll/win32/msacm32/msacm_Hu.rc diff --git a/reactos/dll/win32/msacm32/msacm_It.rc b/dll/win32/msacm32/msacm_It.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_It.rc rename to dll/win32/msacm32/msacm_It.rc diff --git a/reactos/dll/win32/msacm32/msacm_Ja.rc b/dll/win32/msacm32/msacm_Ja.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Ja.rc rename to dll/win32/msacm32/msacm_Ja.rc diff --git a/reactos/dll/win32/msacm32/msacm_Ko.rc b/dll/win32/msacm32/msacm_Ko.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Ko.rc rename to dll/win32/msacm32/msacm_Ko.rc diff --git a/reactos/dll/win32/msacm32/msacm_Lt.rc b/dll/win32/msacm32/msacm_Lt.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Lt.rc rename to dll/win32/msacm32/msacm_Lt.rc diff --git a/reactos/dll/win32/msacm32/msacm_Nl.rc b/dll/win32/msacm32/msacm_Nl.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Nl.rc rename to dll/win32/msacm32/msacm_Nl.rc diff --git a/reactos/dll/win32/msacm32/msacm_No.rc b/dll/win32/msacm32/msacm_No.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_No.rc rename to dll/win32/msacm32/msacm_No.rc diff --git a/reactos/dll/win32/msacm32/msacm_Pl.rc b/dll/win32/msacm32/msacm_Pl.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Pl.rc rename to dll/win32/msacm32/msacm_Pl.rc diff --git a/reactos/dll/win32/msacm32/msacm_Pt.rc b/dll/win32/msacm32/msacm_Pt.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Pt.rc rename to dll/win32/msacm32/msacm_Pt.rc diff --git a/reactos/dll/win32/msacm32/msacm_Ro.rc b/dll/win32/msacm32/msacm_Ro.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Ro.rc rename to dll/win32/msacm32/msacm_Ro.rc diff --git a/reactos/dll/win32/msacm32/msacm_Ru.rc b/dll/win32/msacm32/msacm_Ru.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Ru.rc rename to dll/win32/msacm32/msacm_Ru.rc diff --git a/reactos/dll/win32/msacm32/msacm_Si.rc b/dll/win32/msacm32/msacm_Si.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Si.rc rename to dll/win32/msacm32/msacm_Si.rc diff --git a/reactos/dll/win32/msacm32/msacm_Sv.rc b/dll/win32/msacm32/msacm_Sv.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Sv.rc rename to dll/win32/msacm32/msacm_Sv.rc diff --git a/reactos/dll/win32/msacm32/msacm_Tr.rc b/dll/win32/msacm32/msacm_Tr.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Tr.rc rename to dll/win32/msacm32/msacm_Tr.rc diff --git a/reactos/dll/win32/msacm32/msacm_Uk.rc b/dll/win32/msacm32/msacm_Uk.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Uk.rc rename to dll/win32/msacm32/msacm_Uk.rc diff --git a/reactos/dll/win32/msacm32/msacm_Zh.rc b/dll/win32/msacm32/msacm_Zh.rc similarity index 100% rename from reactos/dll/win32/msacm32/msacm_Zh.rc rename to dll/win32/msacm32/msacm_Zh.rc diff --git a/reactos/dll/win32/msacm32/msacm_main.c b/dll/win32/msacm32/msacm_main.c similarity index 100% rename from reactos/dll/win32/msacm32/msacm_main.c rename to dll/win32/msacm32/msacm_main.c diff --git a/reactos/dll/win32/msacm32/msacm_ros.diff b/dll/win32/msacm32/msacm_ros.diff similarity index 100% rename from reactos/dll/win32/msacm32/msacm_ros.diff rename to dll/win32/msacm32/msacm_ros.diff diff --git a/reactos/dll/win32/msacm32/msadp32/Makefile.in b/dll/win32/msacm32/msadp32/Makefile.in similarity index 100% rename from reactos/dll/win32/msacm32/msadp32/Makefile.in rename to dll/win32/msacm32/msadp32/Makefile.in diff --git a/reactos/dll/win32/msacm32/msadp32/msadp32.acm.spec b/dll/win32/msacm32/msadp32/msadp32.acm.spec similarity index 100% rename from reactos/dll/win32/msacm32/msadp32/msadp32.acm.spec rename to dll/win32/msacm32/msadp32/msadp32.acm.spec diff --git a/reactos/dll/win32/msacm32/msadp32/msadp32.c b/dll/win32/msacm32/msadp32/msadp32.c similarity index 100% rename from reactos/dll/win32/msacm32/msadp32/msadp32.c rename to dll/win32/msacm32/msadp32/msadp32.c diff --git a/reactos/dll/win32/msacm32/pcmconverter.c b/dll/win32/msacm32/pcmconverter.c similarity index 100% rename from reactos/dll/win32/msacm32/pcmconverter.c rename to dll/win32/msacm32/pcmconverter.c diff --git a/reactos/dll/win32/msacm32/stream.c b/dll/win32/msacm32/stream.c similarity index 100% rename from reactos/dll/win32/msacm32/stream.c rename to dll/win32/msacm32/stream.c diff --git a/reactos/dll/win32/msacm32/wineacm.h b/dll/win32/msacm32/wineacm.h similarity index 100% rename from reactos/dll/win32/msacm32/wineacm.h rename to dll/win32/msacm32/wineacm.h diff --git a/reactos/dll/win32/msadp32.acm/CMakeLists.txt b/dll/win32/msadp32.acm/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msadp32.acm/CMakeLists.txt rename to dll/win32/msadp32.acm/CMakeLists.txt diff --git a/reactos/dll/win32/msadp32.acm/msadp32.acm.spec b/dll/win32/msadp32.acm/msadp32.acm.spec similarity index 100% rename from reactos/dll/win32/msadp32.acm/msadp32.acm.spec rename to dll/win32/msadp32.acm/msadp32.acm.spec diff --git a/reactos/dll/win32/msadp32.acm/msadp32.c b/dll/win32/msadp32.acm/msadp32.c similarity index 100% rename from reactos/dll/win32/msadp32.acm/msadp32.c rename to dll/win32/msadp32.acm/msadp32.c diff --git a/reactos/dll/win32/msafd/CMakeLists.txt b/dll/win32/msafd/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msafd/CMakeLists.txt rename to dll/win32/msafd/CMakeLists.txt diff --git a/reactos/dll/win32/msafd/include/debug.h b/dll/win32/msafd/include/debug.h similarity index 100% rename from reactos/dll/win32/msafd/include/debug.h rename to dll/win32/msafd/include/debug.h diff --git a/reactos/dll/win32/msafd/include/helpers.h b/dll/win32/msafd/include/helpers.h similarity index 100% rename from reactos/dll/win32/msafd/include/helpers.h rename to dll/win32/msafd/include/helpers.h diff --git a/reactos/dll/win32/msafd/misc/dllmain.c b/dll/win32/msafd/misc/dllmain.c similarity index 100% rename from reactos/dll/win32/msafd/misc/dllmain.c rename to dll/win32/msafd/misc/dllmain.c diff --git a/reactos/dll/win32/msafd/misc/event.c b/dll/win32/msafd/misc/event.c similarity index 100% rename from reactos/dll/win32/msafd/misc/event.c rename to dll/win32/msafd/misc/event.c diff --git a/reactos/dll/win32/msafd/misc/helpers.c b/dll/win32/msafd/misc/helpers.c similarity index 100% rename from reactos/dll/win32/msafd/misc/helpers.c rename to dll/win32/msafd/misc/helpers.c diff --git a/reactos/dll/win32/msafd/misc/sndrcv.c b/dll/win32/msafd/misc/sndrcv.c similarity index 100% rename from reactos/dll/win32/msafd/misc/sndrcv.c rename to dll/win32/msafd/misc/sndrcv.c diff --git a/reactos/dll/win32/msafd/misc/stubs.c b/dll/win32/msafd/misc/stubs.c similarity index 100% rename from reactos/dll/win32/msafd/misc/stubs.c rename to dll/win32/msafd/misc/stubs.c diff --git a/reactos/dll/win32/msafd/msafd.h b/dll/win32/msafd/msafd.h similarity index 100% rename from reactos/dll/win32/msafd/msafd.h rename to dll/win32/msafd/msafd.h diff --git a/reactos/dll/win32/msafd/msafd.rc b/dll/win32/msafd/msafd.rc similarity index 100% rename from reactos/dll/win32/msafd/msafd.rc rename to dll/win32/msafd/msafd.rc diff --git a/reactos/dll/win32/msafd/msafd.spec b/dll/win32/msafd/msafd.spec similarity index 100% rename from reactos/dll/win32/msafd/msafd.spec rename to dll/win32/msafd/msafd.spec diff --git a/reactos/dll/win32/mscat32/CMakeLists.txt b/dll/win32/mscat32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mscat32/CMakeLists.txt rename to dll/win32/mscat32/CMakeLists.txt diff --git a/reactos/dll/win32/mscat32/main.c b/dll/win32/mscat32/main.c similarity index 100% rename from reactos/dll/win32/mscat32/main.c rename to dll/win32/mscat32/main.c diff --git a/reactos/dll/win32/mscat32/mscat32.spec b/dll/win32/mscat32/mscat32.spec similarity index 100% rename from reactos/dll/win32/mscat32/mscat32.spec rename to dll/win32/mscat32/mscat32.spec diff --git a/reactos/dll/win32/mscms/CMakeLists.txt b/dll/win32/mscms/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mscms/CMakeLists.txt rename to dll/win32/mscms/CMakeLists.txt diff --git a/reactos/dll/win32/mscms/handle.c b/dll/win32/mscms/handle.c similarity index 100% rename from reactos/dll/win32/mscms/handle.c rename to dll/win32/mscms/handle.c diff --git a/reactos/dll/win32/mscms/icc.c b/dll/win32/mscms/icc.c similarity index 100% rename from reactos/dll/win32/mscms/icc.c rename to dll/win32/mscms/icc.c diff --git a/reactos/dll/win32/mscms/mscms.spec b/dll/win32/mscms/mscms.spec similarity index 100% rename from reactos/dll/win32/mscms/mscms.spec rename to dll/win32/mscms/mscms.spec diff --git a/reactos/dll/win32/mscms/mscms_main.c b/dll/win32/mscms/mscms_main.c similarity index 100% rename from reactos/dll/win32/mscms/mscms_main.c rename to dll/win32/mscms/mscms_main.c diff --git a/reactos/dll/win32/mscms/mscms_priv.h b/dll/win32/mscms/mscms_priv.h similarity index 100% rename from reactos/dll/win32/mscms/mscms_priv.h rename to dll/win32/mscms/mscms_priv.h diff --git a/reactos/dll/win32/mscms/profile.c b/dll/win32/mscms/profile.c similarity index 100% rename from reactos/dll/win32/mscms/profile.c rename to dll/win32/mscms/profile.c diff --git a/reactos/dll/win32/mscms/stub.c b/dll/win32/mscms/stub.c similarity index 100% rename from reactos/dll/win32/mscms/stub.c rename to dll/win32/mscms/stub.c diff --git a/reactos/dll/win32/mscms/transform.c b/dll/win32/mscms/transform.c similarity index 100% rename from reactos/dll/win32/mscms/transform.c rename to dll/win32/mscms/transform.c diff --git a/reactos/dll/win32/mscms/version.rc b/dll/win32/mscms/version.rc similarity index 100% rename from reactos/dll/win32/mscms/version.rc rename to dll/win32/mscms/version.rc diff --git a/reactos/dll/win32/mscoree/CMakeLists.txt b/dll/win32/mscoree/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mscoree/CMakeLists.txt rename to dll/win32/mscoree/CMakeLists.txt diff --git a/reactos/dll/win32/mscoree/assembly.c b/dll/win32/mscoree/assembly.c similarity index 100% rename from reactos/dll/win32/mscoree/assembly.c rename to dll/win32/mscoree/assembly.c diff --git a/reactos/dll/win32/mscoree/config.c b/dll/win32/mscoree/config.c similarity index 100% rename from reactos/dll/win32/mscoree/config.c rename to dll/win32/mscoree/config.c diff --git a/reactos/dll/win32/mscoree/cordebug.c b/dll/win32/mscoree/cordebug.c similarity index 100% rename from reactos/dll/win32/mscoree/cordebug.c rename to dll/win32/mscoree/cordebug.c diff --git a/reactos/dll/win32/mscoree/corruntimehost.c b/dll/win32/mscoree/corruntimehost.c similarity index 100% rename from reactos/dll/win32/mscoree/corruntimehost.c rename to dll/win32/mscoree/corruntimehost.c diff --git a/reactos/dll/win32/mscoree/metadata.c b/dll/win32/mscoree/metadata.c similarity index 100% rename from reactos/dll/win32/mscoree/metadata.c rename to dll/win32/mscoree/metadata.c diff --git a/reactos/dll/win32/mscoree/metahost.c b/dll/win32/mscoree/metahost.c similarity index 100% rename from reactos/dll/win32/mscoree/metahost.c rename to dll/win32/mscoree/metahost.c diff --git a/reactos/dll/win32/mscoree/mscoree.rc b/dll/win32/mscoree/mscoree.rc similarity index 100% rename from reactos/dll/win32/mscoree/mscoree.rc rename to dll/win32/mscoree/mscoree.rc diff --git a/reactos/dll/win32/mscoree/mscoree.rgs b/dll/win32/mscoree/mscoree.rgs similarity index 100% rename from reactos/dll/win32/mscoree/mscoree.rgs rename to dll/win32/mscoree/mscoree.rgs diff --git a/reactos/dll/win32/mscoree/mscoree.spec b/dll/win32/mscoree/mscoree.spec similarity index 100% rename from reactos/dll/win32/mscoree/mscoree.spec rename to dll/win32/mscoree/mscoree.spec diff --git a/reactos/dll/win32/mscoree/mscoree_main.c b/dll/win32/mscoree/mscoree_main.c similarity index 100% rename from reactos/dll/win32/mscoree/mscoree_main.c rename to dll/win32/mscoree/mscoree_main.c diff --git a/reactos/dll/win32/mscoree/mscoree_private.h b/dll/win32/mscoree/mscoree_private.h similarity index 100% rename from reactos/dll/win32/mscoree/mscoree_private.h rename to dll/win32/mscoree/mscoree_private.h diff --git a/reactos/dll/win32/msctf/CMakeLists.txt b/dll/win32/msctf/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msctf/CMakeLists.txt rename to dll/win32/msctf/CMakeLists.txt diff --git a/reactos/dll/win32/msctf/categorymgr.c b/dll/win32/msctf/categorymgr.c similarity index 100% rename from reactos/dll/win32/msctf/categorymgr.c rename to dll/win32/msctf/categorymgr.c diff --git a/reactos/dll/win32/msctf/compartmentmgr.c b/dll/win32/msctf/compartmentmgr.c similarity index 100% rename from reactos/dll/win32/msctf/compartmentmgr.c rename to dll/win32/msctf/compartmentmgr.c diff --git a/reactos/dll/win32/msctf/context.c b/dll/win32/msctf/context.c similarity index 100% rename from reactos/dll/win32/msctf/context.c rename to dll/win32/msctf/context.c diff --git a/reactos/dll/win32/msctf/displayattributemgr.c b/dll/win32/msctf/displayattributemgr.c similarity index 100% rename from reactos/dll/win32/msctf/displayattributemgr.c rename to dll/win32/msctf/displayattributemgr.c diff --git a/reactos/dll/win32/msctf/documentmgr.c b/dll/win32/msctf/documentmgr.c similarity index 100% rename from reactos/dll/win32/msctf/documentmgr.c rename to dll/win32/msctf/documentmgr.c diff --git a/reactos/dll/win32/msctf/inputprocessor.c b/dll/win32/msctf/inputprocessor.c similarity index 100% rename from reactos/dll/win32/msctf/inputprocessor.c rename to dll/win32/msctf/inputprocessor.c diff --git a/reactos/dll/win32/msctf/langbarmgr.c b/dll/win32/msctf/langbarmgr.c similarity index 100% rename from reactos/dll/win32/msctf/langbarmgr.c rename to dll/win32/msctf/langbarmgr.c diff --git a/reactos/dll/win32/msctf/msctf.c b/dll/win32/msctf/msctf.c similarity index 100% rename from reactos/dll/win32/msctf/msctf.c rename to dll/win32/msctf/msctf.c diff --git a/reactos/dll/win32/msctf/msctf.rgs b/dll/win32/msctf/msctf.rgs similarity index 100% rename from reactos/dll/win32/msctf/msctf.rgs rename to dll/win32/msctf/msctf.rgs diff --git a/reactos/dll/win32/msctf/msctf.spec b/dll/win32/msctf/msctf.spec similarity index 100% rename from reactos/dll/win32/msctf/msctf.spec rename to dll/win32/msctf/msctf.spec diff --git a/reactos/dll/win32/msctf/msctf_classes.idl b/dll/win32/msctf/msctf_classes.idl similarity index 100% rename from reactos/dll/win32/msctf/msctf_classes.idl rename to dll/win32/msctf/msctf_classes.idl diff --git a/reactos/dll/win32/msctf/msctf_internal.h b/dll/win32/msctf/msctf_internal.h similarity index 100% rename from reactos/dll/win32/msctf/msctf_internal.h rename to dll/win32/msctf/msctf_internal.h diff --git a/reactos/dll/win32/msctf/range.c b/dll/win32/msctf/range.c similarity index 100% rename from reactos/dll/win32/msctf/range.c rename to dll/win32/msctf/range.c diff --git a/reactos/dll/win32/msctf/threadmgr.c b/dll/win32/msctf/threadmgr.c similarity index 100% rename from reactos/dll/win32/msctf/threadmgr.c rename to dll/win32/msctf/threadmgr.c diff --git a/reactos/dll/win32/msctf/version.rc b/dll/win32/msctf/version.rc similarity index 100% rename from reactos/dll/win32/msctf/version.rc rename to dll/win32/msctf/version.rc diff --git a/reactos/dll/win32/msftedit/CMakeLists.txt b/dll/win32/msftedit/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msftedit/CMakeLists.txt rename to dll/win32/msftedit/CMakeLists.txt diff --git a/reactos/dll/win32/msftedit/msftedit.spec b/dll/win32/msftedit/msftedit.spec similarity index 100% rename from reactos/dll/win32/msftedit/msftedit.spec rename to dll/win32/msftedit/msftedit.spec diff --git a/reactos/dll/win32/msftedit/msftedit_main.c b/dll/win32/msftedit/msftedit_main.c similarity index 100% rename from reactos/dll/win32/msftedit/msftedit_main.c rename to dll/win32/msftedit/msftedit_main.c diff --git a/reactos/dll/win32/msftedit/version.rc b/dll/win32/msftedit/version.rc similarity index 100% rename from reactos/dll/win32/msftedit/version.rc rename to dll/win32/msftedit/version.rc diff --git a/reactos/dll/win32/msg711.acm/CMakeLists.txt b/dll/win32/msg711.acm/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msg711.acm/CMakeLists.txt rename to dll/win32/msg711.acm/CMakeLists.txt diff --git a/reactos/dll/win32/msg711.acm/msg711.acm.spec b/dll/win32/msg711.acm/msg711.acm.spec similarity index 100% rename from reactos/dll/win32/msg711.acm/msg711.acm.spec rename to dll/win32/msg711.acm/msg711.acm.spec diff --git a/reactos/dll/win32/msg711.acm/msg711.c b/dll/win32/msg711.acm/msg711.c similarity index 100% rename from reactos/dll/win32/msg711.acm/msg711.c rename to dll/win32/msg711.acm/msg711.c diff --git a/reactos/dll/win32/msgina/CMakeLists.txt b/dll/win32/msgina/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msgina/CMakeLists.txt rename to dll/win32/msgina/CMakeLists.txt diff --git a/reactos/dll/win32/msgina/gui.c b/dll/win32/msgina/gui.c similarity index 100% rename from reactos/dll/win32/msgina/gui.c rename to dll/win32/msgina/gui.c diff --git a/reactos/dll/win32/msgina/lang/bg-BG.rc b/dll/win32/msgina/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/bg-BG.rc rename to dll/win32/msgina/lang/bg-BG.rc diff --git a/reactos/dll/win32/msgina/lang/cs-CZ.rc b/dll/win32/msgina/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/cs-CZ.rc rename to dll/win32/msgina/lang/cs-CZ.rc diff --git a/reactos/dll/win32/msgina/lang/de-DE.rc b/dll/win32/msgina/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/de-DE.rc rename to dll/win32/msgina/lang/de-DE.rc diff --git a/reactos/dll/win32/msgina/lang/en-US.rc b/dll/win32/msgina/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/en-US.rc rename to dll/win32/msgina/lang/en-US.rc diff --git a/reactos/dll/win32/msgina/lang/es-ES.rc b/dll/win32/msgina/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/es-ES.rc rename to dll/win32/msgina/lang/es-ES.rc diff --git a/reactos/dll/win32/msgina/lang/fr-FR.rc b/dll/win32/msgina/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/fr-FR.rc rename to dll/win32/msgina/lang/fr-FR.rc diff --git a/reactos/dll/win32/msgina/lang/id-ID.rc b/dll/win32/msgina/lang/id-ID.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/id-ID.rc rename to dll/win32/msgina/lang/id-ID.rc diff --git a/reactos/dll/win32/msgina/lang/it-IT.rc b/dll/win32/msgina/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/it-IT.rc rename to dll/win32/msgina/lang/it-IT.rc diff --git a/reactos/dll/win32/msgina/lang/ja-JP.rc b/dll/win32/msgina/lang/ja-JP.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/ja-JP.rc rename to dll/win32/msgina/lang/ja-JP.rc diff --git a/reactos/dll/win32/msgina/lang/no-NO.rc b/dll/win32/msgina/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/no-NO.rc rename to dll/win32/msgina/lang/no-NO.rc diff --git a/reactos/dll/win32/msgina/lang/pl-PL.rc b/dll/win32/msgina/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/pl-PL.rc rename to dll/win32/msgina/lang/pl-PL.rc diff --git a/reactos/dll/win32/msgina/lang/ro-RO.rc b/dll/win32/msgina/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/ro-RO.rc rename to dll/win32/msgina/lang/ro-RO.rc diff --git a/reactos/dll/win32/msgina/lang/ru-RU.rc b/dll/win32/msgina/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/ru-RU.rc rename to dll/win32/msgina/lang/ru-RU.rc diff --git a/reactos/dll/win32/msgina/lang/sk-SK.rc b/dll/win32/msgina/lang/sk-SK.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/sk-SK.rc rename to dll/win32/msgina/lang/sk-SK.rc diff --git a/reactos/dll/win32/msgina/lang/uk-UA.rc b/dll/win32/msgina/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/msgina/lang/uk-UA.rc rename to dll/win32/msgina/lang/uk-UA.rc diff --git a/reactos/dll/win32/msgina/msgina.c b/dll/win32/msgina/msgina.c similarity index 100% rename from reactos/dll/win32/msgina/msgina.c rename to dll/win32/msgina/msgina.c diff --git a/reactos/dll/win32/msgina/msgina.h b/dll/win32/msgina/msgina.h similarity index 100% rename from reactos/dll/win32/msgina/msgina.h rename to dll/win32/msgina/msgina.h diff --git a/reactos/dll/win32/msgina/msgina.rc b/dll/win32/msgina/msgina.rc similarity index 100% rename from reactos/dll/win32/msgina/msgina.rc rename to dll/win32/msgina/msgina.rc diff --git a/reactos/dll/win32/msgina/msgina.spec b/dll/win32/msgina/msgina.spec similarity index 100% rename from reactos/dll/win32/msgina/msgina.spec rename to dll/win32/msgina/msgina.spec diff --git a/reactos/dll/win32/msgina/resource.h b/dll/win32/msgina/resource.h similarity index 100% rename from reactos/dll/win32/msgina/resource.h rename to dll/win32/msgina/resource.h diff --git a/reactos/dll/win32/msgina/resources/21.ico b/dll/win32/msgina/resources/21.ico similarity index 100% rename from reactos/dll/win32/msgina/resources/21.ico rename to dll/win32/msgina/resources/21.ico diff --git a/reactos/dll/win32/msgina/resources/ico_logoff.ico b/dll/win32/msgina/resources/ico_logoff.ico similarity index 100% rename from reactos/dll/win32/msgina/resources/ico_logoff.ico rename to dll/win32/msgina/resources/ico_logoff.ico diff --git a/reactos/dll/win32/msgina/resources/reactos.bmp b/dll/win32/msgina/resources/reactos.bmp similarity index 100% rename from reactos/dll/win32/msgina/resources/reactos.bmp rename to dll/win32/msgina/resources/reactos.bmp diff --git a/reactos/dll/win32/msgina/stubs.c b/dll/win32/msgina/stubs.c similarity index 100% rename from reactos/dll/win32/msgina/stubs.c rename to dll/win32/msgina/stubs.c diff --git a/reactos/dll/win32/msgina/tui.c b/dll/win32/msgina/tui.c similarity index 100% rename from reactos/dll/win32/msgina/tui.c rename to dll/win32/msgina/tui.c diff --git a/reactos/dll/win32/msgsm32.acm/CMakeLists.txt b/dll/win32/msgsm32.acm/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msgsm32.acm/CMakeLists.txt rename to dll/win32/msgsm32.acm/CMakeLists.txt diff --git a/reactos/dll/win32/msgsm32.acm/msgsm32.acm.spec b/dll/win32/msgsm32.acm/msgsm32.acm.spec similarity index 100% rename from reactos/dll/win32/msgsm32.acm/msgsm32.acm.spec rename to dll/win32/msgsm32.acm/msgsm32.acm.spec diff --git a/reactos/dll/win32/msgsm32.acm/msgsm32.c b/dll/win32/msgsm32.acm/msgsm32.c similarity index 100% rename from reactos/dll/win32/msgsm32.acm/msgsm32.c rename to dll/win32/msgsm32.acm/msgsm32.c diff --git a/reactos/dll/win32/mshtml.tlb/CMakeLists.txt b/dll/win32/mshtml.tlb/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mshtml.tlb/CMakeLists.txt rename to dll/win32/mshtml.tlb/CMakeLists.txt diff --git a/reactos/dll/win32/mshtml.tlb/mshtml.tlb.spec b/dll/win32/mshtml.tlb/mshtml.tlb.spec similarity index 100% rename from reactos/dll/win32/mshtml.tlb/mshtml.tlb.spec rename to dll/win32/mshtml.tlb/mshtml.tlb.spec diff --git a/reactos/dll/win32/mshtml.tlb/mshtml_tlb.idl b/dll/win32/mshtml.tlb/mshtml_tlb.idl similarity index 100% rename from reactos/dll/win32/mshtml.tlb/mshtml_tlb.idl rename to dll/win32/mshtml.tlb/mshtml_tlb.idl diff --git a/reactos/dll/win32/mshtml.tlb/rsrc.rc b/dll/win32/mshtml.tlb/rsrc.rc similarity index 100% rename from reactos/dll/win32/mshtml.tlb/rsrc.rc rename to dll/win32/mshtml.tlb/rsrc.rc diff --git a/reactos/dll/win32/mshtml/Bg.rc b/dll/win32/mshtml/Bg.rc similarity index 100% rename from reactos/dll/win32/mshtml/Bg.rc rename to dll/win32/mshtml/Bg.rc diff --git a/reactos/dll/win32/mshtml/CMakeLists.txt b/dll/win32/mshtml/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mshtml/CMakeLists.txt rename to dll/win32/mshtml/CMakeLists.txt diff --git a/reactos/dll/win32/mshtml/Da.rc b/dll/win32/mshtml/Da.rc similarity index 100% rename from reactos/dll/win32/mshtml/Da.rc rename to dll/win32/mshtml/Da.rc diff --git a/reactos/dll/win32/mshtml/De.rc b/dll/win32/mshtml/De.rc similarity index 100% rename from reactos/dll/win32/mshtml/De.rc rename to dll/win32/mshtml/De.rc diff --git a/reactos/dll/win32/mshtml/En.rc b/dll/win32/mshtml/En.rc similarity index 100% rename from reactos/dll/win32/mshtml/En.rc rename to dll/win32/mshtml/En.rc diff --git a/reactos/dll/win32/mshtml/Es.rc b/dll/win32/mshtml/Es.rc similarity index 100% rename from reactos/dll/win32/mshtml/Es.rc rename to dll/win32/mshtml/Es.rc diff --git a/reactos/dll/win32/mshtml/Fi.rc b/dll/win32/mshtml/Fi.rc similarity index 100% rename from reactos/dll/win32/mshtml/Fi.rc rename to dll/win32/mshtml/Fi.rc diff --git a/reactos/dll/win32/mshtml/Fr.rc b/dll/win32/mshtml/Fr.rc similarity index 100% rename from reactos/dll/win32/mshtml/Fr.rc rename to dll/win32/mshtml/Fr.rc diff --git a/reactos/dll/win32/mshtml/Hu.rc b/dll/win32/mshtml/Hu.rc similarity index 100% rename from reactos/dll/win32/mshtml/Hu.rc rename to dll/win32/mshtml/Hu.rc diff --git a/reactos/dll/win32/mshtml/It.rc b/dll/win32/mshtml/It.rc similarity index 100% rename from reactos/dll/win32/mshtml/It.rc rename to dll/win32/mshtml/It.rc diff --git a/reactos/dll/win32/mshtml/Ja.rc b/dll/win32/mshtml/Ja.rc similarity index 100% rename from reactos/dll/win32/mshtml/Ja.rc rename to dll/win32/mshtml/Ja.rc diff --git a/reactos/dll/win32/mshtml/Ko.rc b/dll/win32/mshtml/Ko.rc similarity index 100% rename from reactos/dll/win32/mshtml/Ko.rc rename to dll/win32/mshtml/Ko.rc diff --git a/reactos/dll/win32/mshtml/Lt.rc b/dll/win32/mshtml/Lt.rc similarity index 100% rename from reactos/dll/win32/mshtml/Lt.rc rename to dll/win32/mshtml/Lt.rc diff --git a/reactos/dll/win32/mshtml/Nl.rc b/dll/win32/mshtml/Nl.rc similarity index 100% rename from reactos/dll/win32/mshtml/Nl.rc rename to dll/win32/mshtml/Nl.rc diff --git a/reactos/dll/win32/mshtml/No.rc b/dll/win32/mshtml/No.rc similarity index 100% rename from reactos/dll/win32/mshtml/No.rc rename to dll/win32/mshtml/No.rc diff --git a/reactos/dll/win32/mshtml/Pl.rc b/dll/win32/mshtml/Pl.rc similarity index 100% rename from reactos/dll/win32/mshtml/Pl.rc rename to dll/win32/mshtml/Pl.rc diff --git a/reactos/dll/win32/mshtml/Pt.rc b/dll/win32/mshtml/Pt.rc similarity index 100% rename from reactos/dll/win32/mshtml/Pt.rc rename to dll/win32/mshtml/Pt.rc diff --git a/reactos/dll/win32/mshtml/Ro.rc b/dll/win32/mshtml/Ro.rc similarity index 100% rename from reactos/dll/win32/mshtml/Ro.rc rename to dll/win32/mshtml/Ro.rc diff --git a/reactos/dll/win32/mshtml/Ru.rc b/dll/win32/mshtml/Ru.rc similarity index 100% rename from reactos/dll/win32/mshtml/Ru.rc rename to dll/win32/mshtml/Ru.rc diff --git a/reactos/dll/win32/mshtml/Si.rc b/dll/win32/mshtml/Si.rc similarity index 100% rename from reactos/dll/win32/mshtml/Si.rc rename to dll/win32/mshtml/Si.rc diff --git a/reactos/dll/win32/mshtml/Sv.rc b/dll/win32/mshtml/Sv.rc similarity index 100% rename from reactos/dll/win32/mshtml/Sv.rc rename to dll/win32/mshtml/Sv.rc diff --git a/reactos/dll/win32/mshtml/Tr.rc b/dll/win32/mshtml/Tr.rc similarity index 100% rename from reactos/dll/win32/mshtml/Tr.rc rename to dll/win32/mshtml/Tr.rc diff --git a/reactos/dll/win32/mshtml/Uk.rc b/dll/win32/mshtml/Uk.rc similarity index 100% rename from reactos/dll/win32/mshtml/Uk.rc rename to dll/win32/mshtml/Uk.rc diff --git a/reactos/dll/win32/mshtml/Zh.rc b/dll/win32/mshtml/Zh.rc similarity index 100% rename from reactos/dll/win32/mshtml/Zh.rc rename to dll/win32/mshtml/Zh.rc diff --git a/reactos/dll/win32/mshtml/blank.htm b/dll/win32/mshtml/blank.htm similarity index 100% rename from reactos/dll/win32/mshtml/blank.htm rename to dll/win32/mshtml/blank.htm diff --git a/reactos/dll/win32/mshtml/conpoint.c b/dll/win32/mshtml/conpoint.c similarity index 100% rename from reactos/dll/win32/mshtml/conpoint.c rename to dll/win32/mshtml/conpoint.c diff --git a/reactos/dll/win32/mshtml/dispex.c b/dll/win32/mshtml/dispex.c similarity index 100% rename from reactos/dll/win32/mshtml/dispex.c rename to dll/win32/mshtml/dispex.c diff --git a/reactos/dll/win32/mshtml/editor.c b/dll/win32/mshtml/editor.c similarity index 100% rename from reactos/dll/win32/mshtml/editor.c rename to dll/win32/mshtml/editor.c diff --git a/reactos/dll/win32/mshtml/hlink.c b/dll/win32/mshtml/hlink.c similarity index 100% rename from reactos/dll/win32/mshtml/hlink.c rename to dll/win32/mshtml/hlink.c diff --git a/reactos/dll/win32/mshtml/htmlanchor.c b/dll/win32/mshtml/htmlanchor.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlanchor.c rename to dll/win32/mshtml/htmlanchor.c diff --git a/reactos/dll/win32/mshtml/htmlbody.c b/dll/win32/mshtml/htmlbody.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlbody.c rename to dll/win32/mshtml/htmlbody.c diff --git a/reactos/dll/win32/mshtml/htmlcomment.c b/dll/win32/mshtml/htmlcomment.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlcomment.c rename to dll/win32/mshtml/htmlcomment.c diff --git a/reactos/dll/win32/mshtml/htmlcurstyle.c b/dll/win32/mshtml/htmlcurstyle.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlcurstyle.c rename to dll/win32/mshtml/htmlcurstyle.c diff --git a/reactos/dll/win32/mshtml/htmldoc.c b/dll/win32/mshtml/htmldoc.c similarity index 100% rename from reactos/dll/win32/mshtml/htmldoc.c rename to dll/win32/mshtml/htmldoc.c diff --git a/reactos/dll/win32/mshtml/htmldoc3.c b/dll/win32/mshtml/htmldoc3.c similarity index 100% rename from reactos/dll/win32/mshtml/htmldoc3.c rename to dll/win32/mshtml/htmldoc3.c diff --git a/reactos/dll/win32/mshtml/htmldoc5.c b/dll/win32/mshtml/htmldoc5.c similarity index 100% rename from reactos/dll/win32/mshtml/htmldoc5.c rename to dll/win32/mshtml/htmldoc5.c diff --git a/reactos/dll/win32/mshtml/htmlelem.c b/dll/win32/mshtml/htmlelem.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlelem.c rename to dll/win32/mshtml/htmlelem.c diff --git a/reactos/dll/win32/mshtml/htmlelem2.c b/dll/win32/mshtml/htmlelem2.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlelem2.c rename to dll/win32/mshtml/htmlelem2.c diff --git a/reactos/dll/win32/mshtml/htmlelem3.c b/dll/win32/mshtml/htmlelem3.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlelem3.c rename to dll/win32/mshtml/htmlelem3.c diff --git a/reactos/dll/win32/mshtml/htmlelemcol.c b/dll/win32/mshtml/htmlelemcol.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlelemcol.c rename to dll/win32/mshtml/htmlelemcol.c diff --git a/reactos/dll/win32/mshtml/htmlevent.c b/dll/win32/mshtml/htmlevent.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlevent.c rename to dll/win32/mshtml/htmlevent.c diff --git a/reactos/dll/win32/mshtml/htmlevent.h b/dll/win32/mshtml/htmlevent.h similarity index 100% rename from reactos/dll/win32/mshtml/htmlevent.h rename to dll/win32/mshtml/htmlevent.h diff --git a/reactos/dll/win32/mshtml/htmlform.c b/dll/win32/mshtml/htmlform.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlform.c rename to dll/win32/mshtml/htmlform.c diff --git a/reactos/dll/win32/mshtml/htmlframe.c b/dll/win32/mshtml/htmlframe.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlframe.c rename to dll/win32/mshtml/htmlframe.c diff --git a/reactos/dll/win32/mshtml/htmlframebase.c b/dll/win32/mshtml/htmlframebase.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlframebase.c rename to dll/win32/mshtml/htmlframebase.c diff --git a/reactos/dll/win32/mshtml/htmlgeneric.c b/dll/win32/mshtml/htmlgeneric.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlgeneric.c rename to dll/win32/mshtml/htmlgeneric.c diff --git a/reactos/dll/win32/mshtml/htmliframe.c b/dll/win32/mshtml/htmliframe.c similarity index 100% rename from reactos/dll/win32/mshtml/htmliframe.c rename to dll/win32/mshtml/htmliframe.c diff --git a/reactos/dll/win32/mshtml/htmlimg.c b/dll/win32/mshtml/htmlimg.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlimg.c rename to dll/win32/mshtml/htmlimg.c diff --git a/reactos/dll/win32/mshtml/htmlinput.c b/dll/win32/mshtml/htmlinput.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlinput.c rename to dll/win32/mshtml/htmlinput.c diff --git a/reactos/dll/win32/mshtml/htmllocation.c b/dll/win32/mshtml/htmllocation.c similarity index 100% rename from reactos/dll/win32/mshtml/htmllocation.c rename to dll/win32/mshtml/htmllocation.c diff --git a/reactos/dll/win32/mshtml/htmlnode.c b/dll/win32/mshtml/htmlnode.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlnode.c rename to dll/win32/mshtml/htmlnode.c diff --git a/reactos/dll/win32/mshtml/htmloption.c b/dll/win32/mshtml/htmloption.c similarity index 100% rename from reactos/dll/win32/mshtml/htmloption.c rename to dll/win32/mshtml/htmloption.c diff --git a/reactos/dll/win32/mshtml/htmlscreen.c b/dll/win32/mshtml/htmlscreen.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlscreen.c rename to dll/win32/mshtml/htmlscreen.c diff --git a/reactos/dll/win32/mshtml/htmlscript.c b/dll/win32/mshtml/htmlscript.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlscript.c rename to dll/win32/mshtml/htmlscript.c diff --git a/reactos/dll/win32/mshtml/htmlselect.c b/dll/win32/mshtml/htmlselect.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlselect.c rename to dll/win32/mshtml/htmlselect.c diff --git a/reactos/dll/win32/mshtml/htmlstyle.c b/dll/win32/mshtml/htmlstyle.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlstyle.c rename to dll/win32/mshtml/htmlstyle.c diff --git a/reactos/dll/win32/mshtml/htmlstyle.h b/dll/win32/mshtml/htmlstyle.h similarity index 100% rename from reactos/dll/win32/mshtml/htmlstyle.h rename to dll/win32/mshtml/htmlstyle.h diff --git a/reactos/dll/win32/mshtml/htmlstyle2.c b/dll/win32/mshtml/htmlstyle2.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlstyle2.c rename to dll/win32/mshtml/htmlstyle2.c diff --git a/reactos/dll/win32/mshtml/htmlstyle3.c b/dll/win32/mshtml/htmlstyle3.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlstyle3.c rename to dll/win32/mshtml/htmlstyle3.c diff --git a/reactos/dll/win32/mshtml/htmlstylesheet.c b/dll/win32/mshtml/htmlstylesheet.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlstylesheet.c rename to dll/win32/mshtml/htmlstylesheet.c diff --git a/reactos/dll/win32/mshtml/htmltable.c b/dll/win32/mshtml/htmltable.c similarity index 100% rename from reactos/dll/win32/mshtml/htmltable.c rename to dll/win32/mshtml/htmltable.c diff --git a/reactos/dll/win32/mshtml/htmltablerow.c b/dll/win32/mshtml/htmltablerow.c similarity index 100% rename from reactos/dll/win32/mshtml/htmltablerow.c rename to dll/win32/mshtml/htmltablerow.c diff --git a/reactos/dll/win32/mshtml/htmltextarea.c b/dll/win32/mshtml/htmltextarea.c similarity index 100% rename from reactos/dll/win32/mshtml/htmltextarea.c rename to dll/win32/mshtml/htmltextarea.c diff --git a/reactos/dll/win32/mshtml/htmltextcont.c b/dll/win32/mshtml/htmltextcont.c similarity index 100% rename from reactos/dll/win32/mshtml/htmltextcont.c rename to dll/win32/mshtml/htmltextcont.c diff --git a/reactos/dll/win32/mshtml/htmltextnode.c b/dll/win32/mshtml/htmltextnode.c similarity index 100% rename from reactos/dll/win32/mshtml/htmltextnode.c rename to dll/win32/mshtml/htmltextnode.c diff --git a/reactos/dll/win32/mshtml/htmlwindow.c b/dll/win32/mshtml/htmlwindow.c similarity index 100% rename from reactos/dll/win32/mshtml/htmlwindow.c rename to dll/win32/mshtml/htmlwindow.c diff --git a/reactos/dll/win32/mshtml/install.c b/dll/win32/mshtml/install.c similarity index 100% rename from reactos/dll/win32/mshtml/install.c rename to dll/win32/mshtml/install.c diff --git a/reactos/dll/win32/mshtml/loadopts.c b/dll/win32/mshtml/loadopts.c similarity index 100% rename from reactos/dll/win32/mshtml/loadopts.c rename to dll/win32/mshtml/loadopts.c diff --git a/reactos/dll/win32/mshtml/main.c b/dll/win32/mshtml/main.c similarity index 100% rename from reactos/dll/win32/mshtml/main.c rename to dll/win32/mshtml/main.c diff --git a/reactos/dll/win32/mshtml/mshtml.inf b/dll/win32/mshtml/mshtml.inf similarity index 100% rename from reactos/dll/win32/mshtml/mshtml.inf rename to dll/win32/mshtml/mshtml.inf diff --git a/reactos/dll/win32/mshtml/mshtml.spec b/dll/win32/mshtml/mshtml.spec similarity index 100% rename from reactos/dll/win32/mshtml/mshtml.spec rename to dll/win32/mshtml/mshtml.spec diff --git a/reactos/dll/win32/mshtml/mshtml_private.h b/dll/win32/mshtml/mshtml_private.h similarity index 100% rename from reactos/dll/win32/mshtml/mshtml_private.h rename to dll/win32/mshtml/mshtml_private.h diff --git a/reactos/dll/win32/mshtml/mutation.c b/dll/win32/mshtml/mutation.c similarity index 100% rename from reactos/dll/win32/mshtml/mutation.c rename to dll/win32/mshtml/mutation.c diff --git a/reactos/dll/win32/mshtml/navigate.c b/dll/win32/mshtml/navigate.c similarity index 100% rename from reactos/dll/win32/mshtml/navigate.c rename to dll/win32/mshtml/navigate.c diff --git a/reactos/dll/win32/mshtml/nsembed.c b/dll/win32/mshtml/nsembed.c similarity index 100% rename from reactos/dll/win32/mshtml/nsembed.c rename to dll/win32/mshtml/nsembed.c diff --git a/reactos/dll/win32/mshtml/nsevents.c b/dll/win32/mshtml/nsevents.c similarity index 100% rename from reactos/dll/win32/mshtml/nsevents.c rename to dll/win32/mshtml/nsevents.c diff --git a/reactos/dll/win32/mshtml/nsiface.idl b/dll/win32/mshtml/nsiface.idl similarity index 100% rename from reactos/dll/win32/mshtml/nsiface.idl rename to dll/win32/mshtml/nsiface.idl diff --git a/reactos/dll/win32/mshtml/nsio.c b/dll/win32/mshtml/nsio.c similarity index 100% rename from reactos/dll/win32/mshtml/nsio.c rename to dll/win32/mshtml/nsio.c diff --git a/reactos/dll/win32/mshtml/nsservice.c b/dll/win32/mshtml/nsservice.c similarity index 100% rename from reactos/dll/win32/mshtml/nsservice.c rename to dll/win32/mshtml/nsservice.c diff --git a/reactos/dll/win32/mshtml/olecmd.c b/dll/win32/mshtml/olecmd.c similarity index 100% rename from reactos/dll/win32/mshtml/olecmd.c rename to dll/win32/mshtml/olecmd.c diff --git a/reactos/dll/win32/mshtml/oleobj.c b/dll/win32/mshtml/oleobj.c similarity index 100% rename from reactos/dll/win32/mshtml/oleobj.c rename to dll/win32/mshtml/oleobj.c diff --git a/reactos/dll/win32/mshtml/olewnd.c b/dll/win32/mshtml/olewnd.c similarity index 100% rename from reactos/dll/win32/mshtml/olewnd.c rename to dll/win32/mshtml/olewnd.c diff --git a/reactos/dll/win32/mshtml/omnavigator.c b/dll/win32/mshtml/omnavigator.c similarity index 100% rename from reactos/dll/win32/mshtml/omnavigator.c rename to dll/win32/mshtml/omnavigator.c diff --git a/reactos/dll/win32/mshtml/persist.c b/dll/win32/mshtml/persist.c similarity index 100% rename from reactos/dll/win32/mshtml/persist.c rename to dll/win32/mshtml/persist.c diff --git a/reactos/dll/win32/mshtml/protocol.c b/dll/win32/mshtml/protocol.c similarity index 100% rename from reactos/dll/win32/mshtml/protocol.c rename to dll/win32/mshtml/protocol.c diff --git a/reactos/dll/win32/mshtml/resource.h b/dll/win32/mshtml/resource.h similarity index 100% rename from reactos/dll/win32/mshtml/resource.h rename to dll/win32/mshtml/resource.h diff --git a/reactos/dll/win32/mshtml/ros_diff.patch b/dll/win32/mshtml/ros_diff.patch similarity index 100% rename from reactos/dll/win32/mshtml/ros_diff.patch rename to dll/win32/mshtml/ros_diff.patch diff --git a/reactos/dll/win32/mshtml/rsrc.rc b/dll/win32/mshtml/rsrc.rc similarity index 100% rename from reactos/dll/win32/mshtml/rsrc.rc rename to dll/win32/mshtml/rsrc.rc diff --git a/reactos/dll/win32/mshtml/script.c b/dll/win32/mshtml/script.c similarity index 100% rename from reactos/dll/win32/mshtml/script.c rename to dll/win32/mshtml/script.c diff --git a/reactos/dll/win32/mshtml/secmgr.c b/dll/win32/mshtml/secmgr.c similarity index 100% rename from reactos/dll/win32/mshtml/secmgr.c rename to dll/win32/mshtml/secmgr.c diff --git a/reactos/dll/win32/mshtml/selection.c b/dll/win32/mshtml/selection.c similarity index 100% rename from reactos/dll/win32/mshtml/selection.c rename to dll/win32/mshtml/selection.c diff --git a/reactos/dll/win32/mshtml/service.c b/dll/win32/mshtml/service.c similarity index 100% rename from reactos/dll/win32/mshtml/service.c rename to dll/win32/mshtml/service.c diff --git a/reactos/dll/win32/mshtml/task.c b/dll/win32/mshtml/task.c similarity index 100% rename from reactos/dll/win32/mshtml/task.c rename to dll/win32/mshtml/task.c diff --git a/reactos/dll/win32/mshtml/txtrange.c b/dll/win32/mshtml/txtrange.c similarity index 100% rename from reactos/dll/win32/mshtml/txtrange.c rename to dll/win32/mshtml/txtrange.c diff --git a/reactos/dll/win32/mshtml/view.c b/dll/win32/mshtml/view.c similarity index 100% rename from reactos/dll/win32/mshtml/view.c rename to dll/win32/mshtml/view.c diff --git a/reactos/dll/win32/msi/CMakeLists.txt b/dll/win32/msi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msi/CMakeLists.txt rename to dll/win32/msi/CMakeLists.txt diff --git a/reactos/dll/win32/msi/action.c b/dll/win32/msi/action.c similarity index 100% rename from reactos/dll/win32/msi/action.c rename to dll/win32/msi/action.c diff --git a/reactos/dll/win32/msi/alter.c b/dll/win32/msi/alter.c similarity index 100% rename from reactos/dll/win32/msi/alter.c rename to dll/win32/msi/alter.c diff --git a/reactos/dll/win32/msi/appsearch.c b/dll/win32/msi/appsearch.c similarity index 100% rename from reactos/dll/win32/msi/appsearch.c rename to dll/win32/msi/appsearch.c diff --git a/reactos/dll/win32/msi/assembly.c b/dll/win32/msi/assembly.c similarity index 100% rename from reactos/dll/win32/msi/assembly.c rename to dll/win32/msi/assembly.c diff --git a/reactos/dll/win32/msi/automation.c b/dll/win32/msi/automation.c similarity index 100% rename from reactos/dll/win32/msi/automation.c rename to dll/win32/msi/automation.c diff --git a/reactos/dll/win32/msi/classes.c b/dll/win32/msi/classes.c similarity index 100% rename from reactos/dll/win32/msi/classes.c rename to dll/win32/msi/classes.c diff --git a/reactos/dll/win32/msi/cond.tab.c b/dll/win32/msi/cond.tab.c similarity index 100% rename from reactos/dll/win32/msi/cond.tab.c rename to dll/win32/msi/cond.tab.c diff --git a/reactos/dll/win32/msi/cond.y b/dll/win32/msi/cond.y similarity index 100% rename from reactos/dll/win32/msi/cond.y rename to dll/win32/msi/cond.y diff --git a/reactos/dll/win32/msi/create.c b/dll/win32/msi/create.c similarity index 100% rename from reactos/dll/win32/msi/create.c rename to dll/win32/msi/create.c diff --git a/reactos/dll/win32/msi/custom.c b/dll/win32/msi/custom.c similarity index 100% rename from reactos/dll/win32/msi/custom.c rename to dll/win32/msi/custom.c diff --git a/reactos/dll/win32/msi/database.c b/dll/win32/msi/database.c similarity index 100% rename from reactos/dll/win32/msi/database.c rename to dll/win32/msi/database.c diff --git a/reactos/dll/win32/msi/delete.c b/dll/win32/msi/delete.c similarity index 100% rename from reactos/dll/win32/msi/delete.c rename to dll/win32/msi/delete.c diff --git a/reactos/dll/win32/msi/dialog.c b/dll/win32/msi/dialog.c similarity index 100% rename from reactos/dll/win32/msi/dialog.c rename to dll/win32/msi/dialog.c diff --git a/reactos/dll/win32/msi/distinct.c b/dll/win32/msi/distinct.c similarity index 100% rename from reactos/dll/win32/msi/distinct.c rename to dll/win32/msi/distinct.c diff --git a/reactos/dll/win32/msi/drop.c b/dll/win32/msi/drop.c similarity index 100% rename from reactos/dll/win32/msi/drop.c rename to dll/win32/msi/drop.c diff --git a/reactos/dll/win32/msi/events.c b/dll/win32/msi/events.c similarity index 100% rename from reactos/dll/win32/msi/events.c rename to dll/win32/msi/events.c diff --git a/reactos/dll/win32/msi/files.c b/dll/win32/msi/files.c similarity index 100% rename from reactos/dll/win32/msi/files.c rename to dll/win32/msi/files.c diff --git a/reactos/dll/win32/msi/font.c b/dll/win32/msi/font.c similarity index 100% rename from reactos/dll/win32/msi/font.c rename to dll/win32/msi/font.c diff --git a/reactos/dll/win32/msi/format.c b/dll/win32/msi/format.c similarity index 100% rename from reactos/dll/win32/msi/format.c rename to dll/win32/msi/format.c diff --git a/reactos/dll/win32/msi/handle.c b/dll/win32/msi/handle.c similarity index 100% rename from reactos/dll/win32/msi/handle.c rename to dll/win32/msi/handle.c diff --git a/reactos/dll/win32/msi/insert.c b/dll/win32/msi/insert.c similarity index 100% rename from reactos/dll/win32/msi/insert.c rename to dll/win32/msi/insert.c diff --git a/reactos/dll/win32/msi/instabsent.bmp b/dll/win32/msi/instabsent.bmp similarity index 100% rename from reactos/dll/win32/msi/instabsent.bmp rename to dll/win32/msi/instabsent.bmp diff --git a/reactos/dll/win32/msi/instadvert.bmp b/dll/win32/msi/instadvert.bmp similarity index 100% rename from reactos/dll/win32/msi/instadvert.bmp rename to dll/win32/msi/instadvert.bmp diff --git a/reactos/dll/win32/msi/install.c b/dll/win32/msi/install.c similarity index 100% rename from reactos/dll/win32/msi/install.c rename to dll/win32/msi/install.c diff --git a/reactos/dll/win32/msi/instlocal.bmp b/dll/win32/msi/instlocal.bmp similarity index 100% rename from reactos/dll/win32/msi/instlocal.bmp rename to dll/win32/msi/instlocal.bmp diff --git a/reactos/dll/win32/msi/media.c b/dll/win32/msi/media.c similarity index 100% rename from reactos/dll/win32/msi/media.c rename to dll/win32/msi/media.c diff --git a/reactos/dll/win32/msi/msi.c b/dll/win32/msi/msi.c similarity index 100% rename from reactos/dll/win32/msi/msi.c rename to dll/win32/msi/msi.c diff --git a/reactos/dll/win32/msi/msi.rc b/dll/win32/msi/msi.rc similarity index 100% rename from reactos/dll/win32/msi/msi.rc rename to dll/win32/msi/msi.rc diff --git a/reactos/dll/win32/msi/msi.rgs b/dll/win32/msi/msi.rgs similarity index 100% rename from reactos/dll/win32/msi/msi.rgs rename to dll/win32/msi/msi.rgs diff --git a/reactos/dll/win32/msi/msi.spec b/dll/win32/msi/msi.spec similarity index 100% rename from reactos/dll/win32/msi/msi.spec rename to dll/win32/msi/msi.spec diff --git a/reactos/dll/win32/msi/msi_Bg.rc b/dll/win32/msi/msi_Bg.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Bg.rc rename to dll/win32/msi/msi_Bg.rc diff --git a/reactos/dll/win32/msi/msi_Da.rc b/dll/win32/msi/msi_Da.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Da.rc rename to dll/win32/msi/msi_Da.rc diff --git a/reactos/dll/win32/msi/msi_De.rc b/dll/win32/msi/msi_De.rc similarity index 100% rename from reactos/dll/win32/msi/msi_De.rc rename to dll/win32/msi/msi_De.rc diff --git a/reactos/dll/win32/msi/msi_En.rc b/dll/win32/msi/msi_En.rc similarity index 100% rename from reactos/dll/win32/msi/msi_En.rc rename to dll/win32/msi/msi_En.rc diff --git a/reactos/dll/win32/msi/msi_Es.rc b/dll/win32/msi/msi_Es.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Es.rc rename to dll/win32/msi/msi_Es.rc diff --git a/reactos/dll/win32/msi/msi_Fi.rc b/dll/win32/msi/msi_Fi.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Fi.rc rename to dll/win32/msi/msi_Fi.rc diff --git a/reactos/dll/win32/msi/msi_Fr.rc b/dll/win32/msi/msi_Fr.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Fr.rc rename to dll/win32/msi/msi_Fr.rc diff --git a/reactos/dll/win32/msi/msi_Hu.rc b/dll/win32/msi/msi_Hu.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Hu.rc rename to dll/win32/msi/msi_Hu.rc diff --git a/reactos/dll/win32/msi/msi_It.rc b/dll/win32/msi/msi_It.rc similarity index 100% rename from reactos/dll/win32/msi/msi_It.rc rename to dll/win32/msi/msi_It.rc diff --git a/reactos/dll/win32/msi/msi_Ja.rc b/dll/win32/msi/msi_Ja.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Ja.rc rename to dll/win32/msi/msi_Ja.rc diff --git a/reactos/dll/win32/msi/msi_Ko.rc b/dll/win32/msi/msi_Ko.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Ko.rc rename to dll/win32/msi/msi_Ko.rc diff --git a/reactos/dll/win32/msi/msi_Lt.rc b/dll/win32/msi/msi_Lt.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Lt.rc rename to dll/win32/msi/msi_Lt.rc diff --git a/reactos/dll/win32/msi/msi_Nl.rc b/dll/win32/msi/msi_Nl.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Nl.rc rename to dll/win32/msi/msi_Nl.rc diff --git a/reactos/dll/win32/msi/msi_No.rc b/dll/win32/msi/msi_No.rc similarity index 100% rename from reactos/dll/win32/msi/msi_No.rc rename to dll/win32/msi/msi_No.rc diff --git a/reactos/dll/win32/msi/msi_Pl.rc b/dll/win32/msi/msi_Pl.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Pl.rc rename to dll/win32/msi/msi_Pl.rc diff --git a/reactos/dll/win32/msi/msi_Pt.rc b/dll/win32/msi/msi_Pt.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Pt.rc rename to dll/win32/msi/msi_Pt.rc diff --git a/reactos/dll/win32/msi/msi_Ro.rc b/dll/win32/msi/msi_Ro.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Ro.rc rename to dll/win32/msi/msi_Ro.rc diff --git a/reactos/dll/win32/msi/msi_Ru.rc b/dll/win32/msi/msi_Ru.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Ru.rc rename to dll/win32/msi/msi_Ru.rc diff --git a/reactos/dll/win32/msi/msi_Si.rc b/dll/win32/msi/msi_Si.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Si.rc rename to dll/win32/msi/msi_Si.rc diff --git a/reactos/dll/win32/msi/msi_Sr.rc b/dll/win32/msi/msi_Sr.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Sr.rc rename to dll/win32/msi/msi_Sr.rc diff --git a/reactos/dll/win32/msi/msi_Sv.rc b/dll/win32/msi/msi_Sv.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Sv.rc rename to dll/win32/msi/msi_Sv.rc diff --git a/reactos/dll/win32/msi/msi_Tr.rc b/dll/win32/msi/msi_Tr.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Tr.rc rename to dll/win32/msi/msi_Tr.rc diff --git a/reactos/dll/win32/msi/msi_Uk.rc b/dll/win32/msi/msi_Uk.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Uk.rc rename to dll/win32/msi/msi_Uk.rc diff --git a/reactos/dll/win32/msi/msi_Zh.rc b/dll/win32/msi/msi_Zh.rc similarity index 100% rename from reactos/dll/win32/msi/msi_Zh.rc rename to dll/win32/msi/msi_Zh.rc diff --git a/reactos/dll/win32/msi/msi_main.c b/dll/win32/msi/msi_main.c similarity index 100% rename from reactos/dll/win32/msi/msi_main.c rename to dll/win32/msi/msi_main.c diff --git a/reactos/dll/win32/msi/msi_ros.diff b/dll/win32/msi/msi_ros.diff similarity index 100% rename from reactos/dll/win32/msi/msi_ros.diff rename to dll/win32/msi/msi_ros.diff diff --git a/reactos/dll/win32/msi/msipriv.h b/dll/win32/msi/msipriv.h similarity index 100% rename from reactos/dll/win32/msi/msipriv.h rename to dll/win32/msi/msipriv.h diff --git a/reactos/dll/win32/msi/msiquery.c b/dll/win32/msi/msiquery.c similarity index 100% rename from reactos/dll/win32/msi/msiquery.c rename to dll/win32/msi/msiquery.c diff --git a/reactos/dll/win32/msi/msiserver.idl b/dll/win32/msi/msiserver.idl similarity index 100% rename from reactos/dll/win32/msi/msiserver.idl rename to dll/win32/msi/msiserver.idl diff --git a/reactos/dll/win32/msi/msiserver.rgs b/dll/win32/msi/msiserver.rgs similarity index 100% rename from reactos/dll/win32/msi/msiserver.rgs rename to dll/win32/msi/msiserver.rgs diff --git a/reactos/dll/win32/msi/msiserver_dispids.h b/dll/win32/msi/msiserver_dispids.h similarity index 100% rename from reactos/dll/win32/msi/msiserver_dispids.h rename to dll/win32/msi/msiserver_dispids.h diff --git a/reactos/dll/win32/msi/msvchelper.h b/dll/win32/msi/msvchelper.h similarity index 100% rename from reactos/dll/win32/msi/msvchelper.h rename to dll/win32/msi/msvchelper.h diff --git a/reactos/dll/win32/msi/package.c b/dll/win32/msi/package.c similarity index 100% rename from reactos/dll/win32/msi/package.c rename to dll/win32/msi/package.c diff --git a/reactos/dll/win32/msi/patch.c b/dll/win32/msi/patch.c similarity index 100% rename from reactos/dll/win32/msi/patch.c rename to dll/win32/msi/patch.c diff --git a/reactos/dll/win32/msi/query.h b/dll/win32/msi/query.h similarity index 100% rename from reactos/dll/win32/msi/query.h rename to dll/win32/msi/query.h diff --git a/reactos/dll/win32/msi/record.c b/dll/win32/msi/record.c similarity index 100% rename from reactos/dll/win32/msi/record.c rename to dll/win32/msi/record.c diff --git a/reactos/dll/win32/msi/registry.c b/dll/win32/msi/registry.c similarity index 100% rename from reactos/dll/win32/msi/registry.c rename to dll/win32/msi/registry.c diff --git a/reactos/dll/win32/msi/script.c b/dll/win32/msi/script.c similarity index 100% rename from reactos/dll/win32/msi/script.c rename to dll/win32/msi/script.c diff --git a/reactos/dll/win32/msi/select.c b/dll/win32/msi/select.c similarity index 100% rename from reactos/dll/win32/msi/select.c rename to dll/win32/msi/select.c diff --git a/reactos/dll/win32/msi/source.c b/dll/win32/msi/source.c similarity index 100% rename from reactos/dll/win32/msi/source.c rename to dll/win32/msi/source.c diff --git a/reactos/dll/win32/msi/sql.tab.c b/dll/win32/msi/sql.tab.c similarity index 100% rename from reactos/dll/win32/msi/sql.tab.c rename to dll/win32/msi/sql.tab.c diff --git a/reactos/dll/win32/msi/sql.tab.h b/dll/win32/msi/sql.tab.h similarity index 100% rename from reactos/dll/win32/msi/sql.tab.h rename to dll/win32/msi/sql.tab.h diff --git a/reactos/dll/win32/msi/sql.y b/dll/win32/msi/sql.y similarity index 100% rename from reactos/dll/win32/msi/sql.y rename to dll/win32/msi/sql.y diff --git a/reactos/dll/win32/msi/storages.c b/dll/win32/msi/storages.c similarity index 100% rename from reactos/dll/win32/msi/storages.c rename to dll/win32/msi/storages.c diff --git a/reactos/dll/win32/msi/streams.c b/dll/win32/msi/streams.c similarity index 100% rename from reactos/dll/win32/msi/streams.c rename to dll/win32/msi/streams.c diff --git a/reactos/dll/win32/msi/string.c b/dll/win32/msi/string.c similarity index 100% rename from reactos/dll/win32/msi/string.c rename to dll/win32/msi/string.c diff --git a/reactos/dll/win32/msi/suminfo.c b/dll/win32/msi/suminfo.c similarity index 100% rename from reactos/dll/win32/msi/suminfo.c rename to dll/win32/msi/suminfo.c diff --git a/reactos/dll/win32/msi/table.c b/dll/win32/msi/table.c similarity index 100% rename from reactos/dll/win32/msi/table.c rename to dll/win32/msi/table.c diff --git a/reactos/dll/win32/msi/tokenize.c b/dll/win32/msi/tokenize.c similarity index 100% rename from reactos/dll/win32/msi/tokenize.c rename to dll/win32/msi/tokenize.c diff --git a/reactos/dll/win32/msi/update.c b/dll/win32/msi/update.c similarity index 100% rename from reactos/dll/win32/msi/update.c rename to dll/win32/msi/update.c diff --git a/reactos/dll/win32/msi/upgrade.c b/dll/win32/msi/upgrade.c similarity index 100% rename from reactos/dll/win32/msi/upgrade.c rename to dll/win32/msi/upgrade.c diff --git a/reactos/dll/win32/msi/version.rc b/dll/win32/msi/version.rc similarity index 100% rename from reactos/dll/win32/msi/version.rc rename to dll/win32/msi/version.rc diff --git a/reactos/dll/win32/msi/where.c b/dll/win32/msi/where.c similarity index 100% rename from reactos/dll/win32/msi/where.c rename to dll/win32/msi/where.c diff --git a/reactos/dll/win32/msimg32/CMakeLists.txt b/dll/win32/msimg32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msimg32/CMakeLists.txt rename to dll/win32/msimg32/CMakeLists.txt diff --git a/reactos/dll/win32/msimg32/msimg32.spec b/dll/win32/msimg32/msimg32.spec similarity index 100% rename from reactos/dll/win32/msimg32/msimg32.spec rename to dll/win32/msimg32/msimg32.spec diff --git a/reactos/dll/win32/msimg32/msimg32_main.c b/dll/win32/msimg32/msimg32_main.c similarity index 100% rename from reactos/dll/win32/msimg32/msimg32_main.c rename to dll/win32/msimg32/msimg32_main.c diff --git a/reactos/dll/win32/msimtf/CMakeLists.txt b/dll/win32/msimtf/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msimtf/CMakeLists.txt rename to dll/win32/msimtf/CMakeLists.txt diff --git a/reactos/dll/win32/msimtf/activeimmapp.c b/dll/win32/msimtf/activeimmapp.c similarity index 100% rename from reactos/dll/win32/msimtf/activeimmapp.c rename to dll/win32/msimtf/activeimmapp.c diff --git a/reactos/dll/win32/msimtf/main.c b/dll/win32/msimtf/main.c similarity index 100% rename from reactos/dll/win32/msimtf/main.c rename to dll/win32/msimtf/main.c diff --git a/reactos/dll/win32/msimtf/msimtf.idl b/dll/win32/msimtf/msimtf.idl similarity index 100% rename from reactos/dll/win32/msimtf/msimtf.idl rename to dll/win32/msimtf/msimtf.idl diff --git a/reactos/dll/win32/msimtf/msimtf.rgs b/dll/win32/msimtf/msimtf.rgs similarity index 100% rename from reactos/dll/win32/msimtf/msimtf.rgs rename to dll/win32/msimtf/msimtf.rgs diff --git a/reactos/dll/win32/msimtf/msimtf.spec b/dll/win32/msimtf/msimtf.spec similarity index 100% rename from reactos/dll/win32/msimtf/msimtf.spec rename to dll/win32/msimtf/msimtf.spec diff --git a/reactos/dll/win32/msimtf/msimtf_ros.diff b/dll/win32/msimtf/msimtf_ros.diff similarity index 100% rename from reactos/dll/win32/msimtf/msimtf_ros.diff rename to dll/win32/msimtf/msimtf_ros.diff diff --git a/reactos/dll/win32/msimtf/rsrc.rc b/dll/win32/msimtf/rsrc.rc similarity index 100% rename from reactos/dll/win32/msimtf/rsrc.rc rename to dll/win32/msimtf/rsrc.rc diff --git a/reactos/dll/win32/msisip/CMakeLists.txt b/dll/win32/msisip/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msisip/CMakeLists.txt rename to dll/win32/msisip/CMakeLists.txt diff --git a/reactos/dll/win32/msisip/main.c b/dll/win32/msisip/main.c similarity index 100% rename from reactos/dll/win32/msisip/main.c rename to dll/win32/msisip/main.c diff --git a/reactos/dll/win32/msisip/msisip.spec b/dll/win32/msisip/msisip.spec similarity index 100% rename from reactos/dll/win32/msisip/msisip.spec rename to dll/win32/msisip/msisip.spec diff --git a/reactos/dll/win32/msisys.ocx/CMakeLists.txt b/dll/win32/msisys.ocx/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msisys.ocx/CMakeLists.txt rename to dll/win32/msisys.ocx/CMakeLists.txt diff --git a/reactos/dll/win32/msisys.ocx/msisys.c b/dll/win32/msisys.ocx/msisys.c similarity index 100% rename from reactos/dll/win32/msisys.ocx/msisys.c rename to dll/win32/msisys.ocx/msisys.c diff --git a/reactos/dll/win32/msisys.ocx/msisys.ocx.spec b/dll/win32/msisys.ocx/msisys.ocx.spec similarity index 100% rename from reactos/dll/win32/msisys.ocx/msisys.ocx.spec rename to dll/win32/msisys.ocx/msisys.ocx.spec diff --git a/reactos/dll/win32/msnet32/CMakeLists.txt b/dll/win32/msnet32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msnet32/CMakeLists.txt rename to dll/win32/msnet32/CMakeLists.txt diff --git a/reactos/dll/win32/msnet32/msnet32.spec b/dll/win32/msnet32/msnet32.spec similarity index 100% rename from reactos/dll/win32/msnet32/msnet32.spec rename to dll/win32/msnet32/msnet32.spec diff --git a/reactos/dll/win32/msnet32/msnet_main.c b/dll/win32/msnet32/msnet_main.c similarity index 100% rename from reactos/dll/win32/msnet32/msnet_main.c rename to dll/win32/msnet32/msnet_main.c diff --git a/reactos/dll/win32/msports/CMakeLists.txt b/dll/win32/msports/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msports/CMakeLists.txt rename to dll/win32/msports/CMakeLists.txt diff --git a/reactos/dll/win32/msports/classinst.c b/dll/win32/msports/classinst.c similarity index 100% rename from reactos/dll/win32/msports/classinst.c rename to dll/win32/msports/classinst.c diff --git a/reactos/dll/win32/msports/comdb.c b/dll/win32/msports/comdb.c similarity index 100% rename from reactos/dll/win32/msports/comdb.c rename to dll/win32/msports/comdb.c diff --git a/reactos/dll/win32/msports/internal.h b/dll/win32/msports/internal.h similarity index 100% rename from reactos/dll/win32/msports/internal.h rename to dll/win32/msports/internal.h diff --git a/reactos/dll/win32/msports/lang/bg-BG.rc b/dll/win32/msports/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/msports/lang/bg-BG.rc rename to dll/win32/msports/lang/bg-BG.rc diff --git a/reactos/dll/win32/msports/lang/de-DE.rc b/dll/win32/msports/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/msports/lang/de-DE.rc rename to dll/win32/msports/lang/de-DE.rc diff --git a/reactos/dll/win32/msports/lang/en-US.rc b/dll/win32/msports/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/msports/lang/en-US.rc rename to dll/win32/msports/lang/en-US.rc diff --git a/reactos/dll/win32/msports/lang/pl-PL.rc b/dll/win32/msports/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/msports/lang/pl-PL.rc rename to dll/win32/msports/lang/pl-PL.rc diff --git a/reactos/dll/win32/msports/lang/ro-RO.rc b/dll/win32/msports/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/msports/lang/ro-RO.rc rename to dll/win32/msports/lang/ro-RO.rc diff --git a/reactos/dll/win32/msports/lang/uk-UA.rc b/dll/win32/msports/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/msports/lang/uk-UA.rc rename to dll/win32/msports/lang/uk-UA.rc diff --git a/reactos/dll/win32/msports/msports.c b/dll/win32/msports/msports.c similarity index 100% rename from reactos/dll/win32/msports/msports.c rename to dll/win32/msports/msports.c diff --git a/reactos/dll/win32/msports/msports.rc b/dll/win32/msports/msports.rc similarity index 100% rename from reactos/dll/win32/msports/msports.rc rename to dll/win32/msports/msports.rc diff --git a/reactos/dll/win32/msports/msports.spec b/dll/win32/msports/msports.spec similarity index 100% rename from reactos/dll/win32/msports/msports.spec rename to dll/win32/msports/msports.spec diff --git a/reactos/dll/win32/msports/precomp.h b/dll/win32/msports/precomp.h similarity index 100% rename from reactos/dll/win32/msports/precomp.h rename to dll/win32/msports/precomp.h diff --git a/reactos/dll/win32/msports/resource.h b/dll/win32/msports/resource.h similarity index 100% rename from reactos/dll/win32/msports/resource.h rename to dll/win32/msports/resource.h diff --git a/reactos/dll/win32/msports/serial.c b/dll/win32/msports/serial.c similarity index 100% rename from reactos/dll/win32/msports/serial.c rename to dll/win32/msports/serial.c diff --git a/reactos/dll/win32/msrle32/CMakeLists.txt b/dll/win32/msrle32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msrle32/CMakeLists.txt rename to dll/win32/msrle32/CMakeLists.txt diff --git a/reactos/dll/win32/msrle32/msrle32.c b/dll/win32/msrle32/msrle32.c similarity index 100% rename from reactos/dll/win32/msrle32/msrle32.c rename to dll/win32/msrle32/msrle32.c diff --git a/reactos/dll/win32/msrle32/msrle32.spec b/dll/win32/msrle32/msrle32.spec similarity index 100% rename from reactos/dll/win32/msrle32/msrle32.spec rename to dll/win32/msrle32/msrle32.spec diff --git a/reactos/dll/win32/msrle32/msrle_Bg.rc b/dll/win32/msrle32/msrle_Bg.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Bg.rc rename to dll/win32/msrle32/msrle_Bg.rc diff --git a/reactos/dll/win32/msrle32/msrle_Cs.rc b/dll/win32/msrle32/msrle_Cs.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Cs.rc rename to dll/win32/msrle32/msrle_Cs.rc diff --git a/reactos/dll/win32/msrle32/msrle_Cy.rc b/dll/win32/msrle32/msrle_Cy.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Cy.rc rename to dll/win32/msrle32/msrle_Cy.rc diff --git a/reactos/dll/win32/msrle32/msrle_Da.rc b/dll/win32/msrle32/msrle_Da.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Da.rc rename to dll/win32/msrle32/msrle_Da.rc diff --git a/reactos/dll/win32/msrle32/msrle_De.rc b/dll/win32/msrle32/msrle_De.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_De.rc rename to dll/win32/msrle32/msrle_De.rc diff --git a/reactos/dll/win32/msrle32/msrle_En.rc b/dll/win32/msrle32/msrle_En.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_En.rc rename to dll/win32/msrle32/msrle_En.rc diff --git a/reactos/dll/win32/msrle32/msrle_Es.rc b/dll/win32/msrle32/msrle_Es.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Es.rc rename to dll/win32/msrle32/msrle_Es.rc diff --git a/reactos/dll/win32/msrle32/msrle_Fr.rc b/dll/win32/msrle32/msrle_Fr.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Fr.rc rename to dll/win32/msrle32/msrle_Fr.rc diff --git a/reactos/dll/win32/msrle32/msrle_Hu.rc b/dll/win32/msrle32/msrle_Hu.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Hu.rc rename to dll/win32/msrle32/msrle_Hu.rc diff --git a/reactos/dll/win32/msrle32/msrle_It.rc b/dll/win32/msrle32/msrle_It.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_It.rc rename to dll/win32/msrle32/msrle_It.rc diff --git a/reactos/dll/win32/msrle32/msrle_Ja.rc b/dll/win32/msrle32/msrle_Ja.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Ja.rc rename to dll/win32/msrle32/msrle_Ja.rc diff --git a/reactos/dll/win32/msrle32/msrle_Ko.rc b/dll/win32/msrle32/msrle_Ko.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Ko.rc rename to dll/win32/msrle32/msrle_Ko.rc diff --git a/reactos/dll/win32/msrle32/msrle_Lt.rc b/dll/win32/msrle32/msrle_Lt.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Lt.rc rename to dll/win32/msrle32/msrle_Lt.rc diff --git a/reactos/dll/win32/msrle32/msrle_Nl.rc b/dll/win32/msrle32/msrle_Nl.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Nl.rc rename to dll/win32/msrle32/msrle_Nl.rc diff --git a/reactos/dll/win32/msrle32/msrle_No.rc b/dll/win32/msrle32/msrle_No.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_No.rc rename to dll/win32/msrle32/msrle_No.rc diff --git a/reactos/dll/win32/msrle32/msrle_Pl.rc b/dll/win32/msrle32/msrle_Pl.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Pl.rc rename to dll/win32/msrle32/msrle_Pl.rc diff --git a/reactos/dll/win32/msrle32/msrle_Pt.rc b/dll/win32/msrle32/msrle_Pt.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Pt.rc rename to dll/win32/msrle32/msrle_Pt.rc diff --git a/reactos/dll/win32/msrle32/msrle_Ro.rc b/dll/win32/msrle32/msrle_Ro.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Ro.rc rename to dll/win32/msrle32/msrle_Ro.rc diff --git a/reactos/dll/win32/msrle32/msrle_Ru.rc b/dll/win32/msrle32/msrle_Ru.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Ru.rc rename to dll/win32/msrle32/msrle_Ru.rc diff --git a/reactos/dll/win32/msrle32/msrle_Si.rc b/dll/win32/msrle32/msrle_Si.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Si.rc rename to dll/win32/msrle32/msrle_Si.rc diff --git a/reactos/dll/win32/msrle32/msrle_Sv.rc b/dll/win32/msrle32/msrle_Sv.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Sv.rc rename to dll/win32/msrle32/msrle_Sv.rc diff --git a/reactos/dll/win32/msrle32/msrle_Tr.rc b/dll/win32/msrle32/msrle_Tr.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Tr.rc rename to dll/win32/msrle32/msrle_Tr.rc diff --git a/reactos/dll/win32/msrle32/msrle_Uk.rc b/dll/win32/msrle32/msrle_Uk.rc similarity index 100% rename from reactos/dll/win32/msrle32/msrle_Uk.rc rename to dll/win32/msrle32/msrle_Uk.rc diff --git a/reactos/dll/win32/msrle32/msrle_private.h b/dll/win32/msrle32/msrle_private.h similarity index 100% rename from reactos/dll/win32/msrle32/msrle_private.h rename to dll/win32/msrle32/msrle_private.h diff --git a/reactos/dll/win32/msrle32/rsrc.rc b/dll/win32/msrle32/rsrc.rc similarity index 100% rename from reactos/dll/win32/msrle32/rsrc.rc rename to dll/win32/msrle32/rsrc.rc diff --git a/reactos/dll/win32/mssign32/CMakeLists.txt b/dll/win32/mssign32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mssign32/CMakeLists.txt rename to dll/win32/mssign32/CMakeLists.txt diff --git a/reactos/dll/win32/mssign32/mssign32.spec b/dll/win32/mssign32/mssign32.spec similarity index 100% rename from reactos/dll/win32/mssign32/mssign32.spec rename to dll/win32/mssign32/mssign32.spec diff --git a/reactos/dll/win32/mssign32/mssign32_main.c b/dll/win32/mssign32/mssign32_main.c similarity index 100% rename from reactos/dll/win32/mssign32/mssign32_main.c rename to dll/win32/mssign32/mssign32_main.c diff --git a/reactos/dll/win32/mssip32/CMakeLists.txt b/dll/win32/mssip32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mssip32/CMakeLists.txt rename to dll/win32/mssip32/CMakeLists.txt diff --git a/reactos/dll/win32/mssip32/main.c b/dll/win32/mssip32/main.c similarity index 100% rename from reactos/dll/win32/mssip32/main.c rename to dll/win32/mssip32/main.c diff --git a/reactos/dll/win32/mssip32/mssip32.spec b/dll/win32/mssip32/mssip32.spec similarity index 100% rename from reactos/dll/win32/mssip32/mssip32.spec rename to dll/win32/mssip32/mssip32.spec diff --git a/reactos/dll/win32/mstask/CMakeLists.txt b/dll/win32/mstask/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mstask/CMakeLists.txt rename to dll/win32/mstask/CMakeLists.txt diff --git a/reactos/dll/win32/mstask/factory.c b/dll/win32/mstask/factory.c similarity index 100% rename from reactos/dll/win32/mstask/factory.c rename to dll/win32/mstask/factory.c diff --git a/reactos/dll/win32/mstask/mstask.rgs b/dll/win32/mstask/mstask.rgs similarity index 100% rename from reactos/dll/win32/mstask/mstask.rgs rename to dll/win32/mstask/mstask.rgs diff --git a/reactos/dll/win32/mstask/mstask.spec b/dll/win32/mstask/mstask.spec similarity index 100% rename from reactos/dll/win32/mstask/mstask.spec rename to dll/win32/mstask/mstask.spec diff --git a/reactos/dll/win32/mstask/mstask_local.idl b/dll/win32/mstask/mstask_local.idl similarity index 100% rename from reactos/dll/win32/mstask/mstask_local.idl rename to dll/win32/mstask/mstask_local.idl diff --git a/reactos/dll/win32/mstask/mstask_main.c b/dll/win32/mstask/mstask_main.c similarity index 100% rename from reactos/dll/win32/mstask/mstask_main.c rename to dll/win32/mstask/mstask_main.c diff --git a/reactos/dll/win32/mstask/mstask_private.h b/dll/win32/mstask/mstask_private.h similarity index 100% rename from reactos/dll/win32/mstask/mstask_private.h rename to dll/win32/mstask/mstask_private.h diff --git a/reactos/dll/win32/mstask/rsrc.rc b/dll/win32/mstask/rsrc.rc similarity index 100% rename from reactos/dll/win32/mstask/rsrc.rc rename to dll/win32/mstask/rsrc.rc diff --git a/reactos/dll/win32/mstask/task.c b/dll/win32/mstask/task.c similarity index 100% rename from reactos/dll/win32/mstask/task.c rename to dll/win32/mstask/task.c diff --git a/reactos/dll/win32/mstask/task_scheduler.c b/dll/win32/mstask/task_scheduler.c similarity index 100% rename from reactos/dll/win32/mstask/task_scheduler.c rename to dll/win32/mstask/task_scheduler.c diff --git a/reactos/dll/win32/mstask/task_trigger.c b/dll/win32/mstask/task_trigger.c similarity index 100% rename from reactos/dll/win32/mstask/task_trigger.c rename to dll/win32/mstask/task_trigger.c diff --git a/reactos/dll/win32/msvcrt/CMakeLists.txt b/dll/win32/msvcrt/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msvcrt/CMakeLists.txt rename to dll/win32/msvcrt/CMakeLists.txt diff --git a/reactos/dll/win32/msvcrt/dllmain.c b/dll/win32/msvcrt/dllmain.c similarity index 100% rename from reactos/dll/win32/msvcrt/dllmain.c rename to dll/win32/msvcrt/dllmain.c diff --git a/reactos/dll/win32/msvcrt/msvcrt.rc b/dll/win32/msvcrt/msvcrt.rc similarity index 100% rename from reactos/dll/win32/msvcrt/msvcrt.rc rename to dll/win32/msvcrt/msvcrt.rc diff --git a/reactos/dll/win32/msvcrt/msvcrt.spec b/dll/win32/msvcrt/msvcrt.spec similarity index 100% rename from reactos/dll/win32/msvcrt/msvcrt.spec rename to dll/win32/msvcrt/msvcrt.spec diff --git a/reactos/dll/win32/msvcrt/precomp.h b/dll/win32/msvcrt/precomp.h similarity index 100% rename from reactos/dll/win32/msvcrt/precomp.h rename to dll/win32/msvcrt/precomp.h diff --git a/reactos/dll/win32/msvcrt/stubs.c b/dll/win32/msvcrt/stubs.c similarity index 100% rename from reactos/dll/win32/msvcrt/stubs.c rename to dll/win32/msvcrt/stubs.c diff --git a/reactos/dll/win32/msvcrt20/CMakeLists.txt b/dll/win32/msvcrt20/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msvcrt20/CMakeLists.txt rename to dll/win32/msvcrt20/CMakeLists.txt diff --git a/reactos/dll/win32/msvcrt20/msvcrt20.c b/dll/win32/msvcrt20/msvcrt20.c similarity index 100% rename from reactos/dll/win32/msvcrt20/msvcrt20.c rename to dll/win32/msvcrt20/msvcrt20.c diff --git a/reactos/dll/win32/msvcrt20/msvcrt20.spec b/dll/win32/msvcrt20/msvcrt20.spec similarity index 100% rename from reactos/dll/win32/msvcrt20/msvcrt20.spec rename to dll/win32/msvcrt20/msvcrt20.spec diff --git a/reactos/dll/win32/msvcrt20/stubs.c b/dll/win32/msvcrt20/stubs.c similarity index 100% rename from reactos/dll/win32/msvcrt20/stubs.c rename to dll/win32/msvcrt20/stubs.c diff --git a/reactos/dll/win32/msvcrt40/CMakeLists.txt b/dll/win32/msvcrt40/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msvcrt40/CMakeLists.txt rename to dll/win32/msvcrt40/CMakeLists.txt diff --git a/reactos/dll/win32/msvcrt40/msvcrt40.c b/dll/win32/msvcrt40/msvcrt40.c similarity index 100% rename from reactos/dll/win32/msvcrt40/msvcrt40.c rename to dll/win32/msvcrt40/msvcrt40.c diff --git a/reactos/dll/win32/msvcrt40/msvcrt40.spec b/dll/win32/msvcrt40/msvcrt40.spec similarity index 100% rename from reactos/dll/win32/msvcrt40/msvcrt40.spec rename to dll/win32/msvcrt40/msvcrt40.spec diff --git a/reactos/dll/win32/msvcrt40/stubs.c b/dll/win32/msvcrt40/stubs.c similarity index 100% rename from reactos/dll/win32/msvcrt40/stubs.c rename to dll/win32/msvcrt40/stubs.c diff --git a/reactos/dll/win32/msvfw32/CMakeLists.txt b/dll/win32/msvfw32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msvfw32/CMakeLists.txt rename to dll/win32/msvfw32/CMakeLists.txt diff --git a/reactos/dll/win32/msvfw32/drawdib.c b/dll/win32/msvfw32/drawdib.c similarity index 100% rename from reactos/dll/win32/msvfw32/drawdib.c rename to dll/win32/msvfw32/drawdib.c diff --git a/reactos/dll/win32/msvfw32/mciwnd.c b/dll/win32/msvfw32/mciwnd.c similarity index 100% rename from reactos/dll/win32/msvfw32/mciwnd.c rename to dll/win32/msvfw32/mciwnd.c diff --git a/reactos/dll/win32/msvfw32/msvfw32.spec b/dll/win32/msvfw32/msvfw32.spec similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32.spec rename to dll/win32/msvfw32/msvfw32.spec diff --git a/reactos/dll/win32/msvfw32/msvfw32_Da.rc b/dll/win32/msvfw32/msvfw32_Da.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Da.rc rename to dll/win32/msvfw32/msvfw32_Da.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_De.rc b/dll/win32/msvfw32/msvfw32_De.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_De.rc rename to dll/win32/msvfw32/msvfw32_De.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_En.rc b/dll/win32/msvfw32/msvfw32_En.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_En.rc rename to dll/win32/msvfw32/msvfw32_En.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Es.rc b/dll/win32/msvfw32/msvfw32_Es.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Es.rc rename to dll/win32/msvfw32/msvfw32_Es.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Fr.rc b/dll/win32/msvfw32/msvfw32_Fr.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Fr.rc rename to dll/win32/msvfw32/msvfw32_Fr.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Hu.rc b/dll/win32/msvfw32/msvfw32_Hu.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Hu.rc rename to dll/win32/msvfw32/msvfw32_Hu.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_It.rc b/dll/win32/msvfw32/msvfw32_It.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_It.rc rename to dll/win32/msvfw32/msvfw32_It.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Ko.rc b/dll/win32/msvfw32/msvfw32_Ko.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Ko.rc rename to dll/win32/msvfw32/msvfw32_Ko.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Lt.rc b/dll/win32/msvfw32/msvfw32_Lt.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Lt.rc rename to dll/win32/msvfw32/msvfw32_Lt.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Nl.rc b/dll/win32/msvfw32/msvfw32_Nl.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Nl.rc rename to dll/win32/msvfw32/msvfw32_Nl.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_No.rc b/dll/win32/msvfw32/msvfw32_No.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_No.rc rename to dll/win32/msvfw32/msvfw32_No.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Pl.rc b/dll/win32/msvfw32/msvfw32_Pl.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Pl.rc rename to dll/win32/msvfw32/msvfw32_Pl.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Pt.rc b/dll/win32/msvfw32/msvfw32_Pt.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Pt.rc rename to dll/win32/msvfw32/msvfw32_Pt.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Ro.rc b/dll/win32/msvfw32/msvfw32_Ro.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Ro.rc rename to dll/win32/msvfw32/msvfw32_Ro.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Ru.rc b/dll/win32/msvfw32/msvfw32_Ru.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Ru.rc rename to dll/win32/msvfw32/msvfw32_Ru.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Si.rc b/dll/win32/msvfw32/msvfw32_Si.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Si.rc rename to dll/win32/msvfw32/msvfw32_Si.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Sv.rc b/dll/win32/msvfw32/msvfw32_Sv.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Sv.rc rename to dll/win32/msvfw32/msvfw32_Sv.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Tr.rc b/dll/win32/msvfw32/msvfw32_Tr.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Tr.rc rename to dll/win32/msvfw32/msvfw32_Tr.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Uk.rc b/dll/win32/msvfw32/msvfw32_Uk.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Uk.rc rename to dll/win32/msvfw32/msvfw32_Uk.rc diff --git a/reactos/dll/win32/msvfw32/msvfw32_Zh.rc b/dll/win32/msvfw32/msvfw32_Zh.rc similarity index 100% rename from reactos/dll/win32/msvfw32/msvfw32_Zh.rc rename to dll/win32/msvfw32/msvfw32_Zh.rc diff --git a/reactos/dll/win32/msvfw32/msvideo.spec b/dll/win32/msvfw32/msvideo.spec similarity index 100% rename from reactos/dll/win32/msvfw32/msvideo.spec rename to dll/win32/msvfw32/msvideo.spec diff --git a/reactos/dll/win32/msvfw32/msvideo_main.c b/dll/win32/msvfw32/msvideo_main.c similarity index 100% rename from reactos/dll/win32/msvfw32/msvideo_main.c rename to dll/win32/msvfw32/msvideo_main.c diff --git a/reactos/dll/win32/msvfw32/msvideo_private.h b/dll/win32/msvfw32/msvideo_private.h similarity index 100% rename from reactos/dll/win32/msvfw32/msvideo_private.h rename to dll/win32/msvfw32/msvideo_private.h diff --git a/reactos/dll/win32/msvfw32/rsrc.rc b/dll/win32/msvfw32/rsrc.rc similarity index 100% rename from reactos/dll/win32/msvfw32/rsrc.rc rename to dll/win32/msvfw32/rsrc.rc diff --git a/reactos/dll/win32/msvidc32/CMakeLists.txt b/dll/win32/msvidc32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msvidc32/CMakeLists.txt rename to dll/win32/msvidc32/CMakeLists.txt diff --git a/reactos/dll/win32/msvidc32/msvidc32.spec b/dll/win32/msvidc32/msvidc32.spec similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32.spec rename to dll/win32/msvidc32/msvidc32.spec diff --git a/reactos/dll/win32/msvidc32/msvidc32_Cy.rc b/dll/win32/msvidc32/msvidc32_Cy.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Cy.rc rename to dll/win32/msvidc32/msvidc32_Cy.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Da.rc b/dll/win32/msvidc32/msvidc32_Da.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Da.rc rename to dll/win32/msvidc32/msvidc32_Da.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_De.rc b/dll/win32/msvidc32/msvidc32_De.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_De.rc rename to dll/win32/msvidc32/msvidc32_De.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_En.rc b/dll/win32/msvidc32/msvidc32_En.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_En.rc rename to dll/win32/msvidc32/msvidc32_En.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Es.rc b/dll/win32/msvidc32/msvidc32_Es.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Es.rc rename to dll/win32/msvidc32/msvidc32_Es.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Fr.rc b/dll/win32/msvidc32/msvidc32_Fr.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Fr.rc rename to dll/win32/msvidc32/msvidc32_Fr.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Hu.rc b/dll/win32/msvidc32/msvidc32_Hu.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Hu.rc rename to dll/win32/msvidc32/msvidc32_Hu.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_It.rc b/dll/win32/msvidc32/msvidc32_It.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_It.rc rename to dll/win32/msvidc32/msvidc32_It.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Ja.rc b/dll/win32/msvidc32/msvidc32_Ja.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Ja.rc rename to dll/win32/msvidc32/msvidc32_Ja.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Ko.rc b/dll/win32/msvidc32/msvidc32_Ko.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Ko.rc rename to dll/win32/msvidc32/msvidc32_Ko.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Lt.rc b/dll/win32/msvidc32/msvidc32_Lt.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Lt.rc rename to dll/win32/msvidc32/msvidc32_Lt.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Nl.rc b/dll/win32/msvidc32/msvidc32_Nl.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Nl.rc rename to dll/win32/msvidc32/msvidc32_Nl.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_No.rc b/dll/win32/msvidc32/msvidc32_No.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_No.rc rename to dll/win32/msvidc32/msvidc32_No.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Pl.rc b/dll/win32/msvidc32/msvidc32_Pl.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Pl.rc rename to dll/win32/msvidc32/msvidc32_Pl.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Pt.rc b/dll/win32/msvidc32/msvidc32_Pt.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Pt.rc rename to dll/win32/msvidc32/msvidc32_Pt.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Ro.rc b/dll/win32/msvidc32/msvidc32_Ro.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Ro.rc rename to dll/win32/msvidc32/msvidc32_Ro.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Ru.rc b/dll/win32/msvidc32/msvidc32_Ru.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Ru.rc rename to dll/win32/msvidc32/msvidc32_Ru.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Si.rc b/dll/win32/msvidc32/msvidc32_Si.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Si.rc rename to dll/win32/msvidc32/msvidc32_Si.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Sv.rc b/dll/win32/msvidc32/msvidc32_Sv.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Sv.rc rename to dll/win32/msvidc32/msvidc32_Sv.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Tr.rc b/dll/win32/msvidc32/msvidc32_Tr.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Tr.rc rename to dll/win32/msvidc32/msvidc32_Tr.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_Uk.rc b/dll/win32/msvidc32/msvidc32_Uk.rc similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_Uk.rc rename to dll/win32/msvidc32/msvidc32_Uk.rc diff --git a/reactos/dll/win32/msvidc32/msvidc32_private.h b/dll/win32/msvidc32/msvidc32_private.h similarity index 100% rename from reactos/dll/win32/msvidc32/msvidc32_private.h rename to dll/win32/msvidc32/msvidc32_private.h diff --git a/reactos/dll/win32/msvidc32/msvideo1.c b/dll/win32/msvidc32/msvideo1.c similarity index 100% rename from reactos/dll/win32/msvidc32/msvideo1.c rename to dll/win32/msvidc32/msvideo1.c diff --git a/reactos/dll/win32/msvidc32/rsrc.rc b/dll/win32/msvidc32/rsrc.rc similarity index 100% rename from reactos/dll/win32/msvidc32/rsrc.rc rename to dll/win32/msvidc32/rsrc.rc diff --git a/reactos/dll/win32/mswsock/CMakeLists.txt b/dll/win32/mswsock/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/mswsock/CMakeLists.txt rename to dll/win32/mswsock/CMakeLists.txt diff --git a/reactos/dll/win32/mswsock/extensions.c b/dll/win32/mswsock/extensions.c similarity index 100% rename from reactos/dll/win32/mswsock/extensions.c rename to dll/win32/mswsock/extensions.c diff --git a/reactos/dll/win32/mswsock/mswsock.rc b/dll/win32/mswsock/mswsock.rc similarity index 100% rename from reactos/dll/win32/mswsock/mswsock.rc rename to dll/win32/mswsock/mswsock.rc diff --git a/reactos/dll/win32/mswsock/mswsock.spec b/dll/win32/mswsock/mswsock.spec similarity index 100% rename from reactos/dll/win32/mswsock/mswsock.spec rename to dll/win32/mswsock/mswsock.spec diff --git a/reactos/dll/win32/mswsock/precomp.h b/dll/win32/mswsock/precomp.h similarity index 100% rename from reactos/dll/win32/mswsock/precomp.h rename to dll/win32/mswsock/precomp.h diff --git a/reactos/dll/win32/mswsock/stubs.c b/dll/win32/mswsock/stubs.c similarity index 100% rename from reactos/dll/win32/mswsock/stubs.c rename to dll/win32/mswsock/stubs.c diff --git a/reactos/dll/win32/msxml/CMakeLists.txt b/dll/win32/msxml/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msxml/CMakeLists.txt rename to dll/win32/msxml/CMakeLists.txt diff --git a/reactos/dll/win32/msxml/Makefile.in b/dll/win32/msxml/Makefile.in similarity index 100% rename from reactos/dll/win32/msxml/Makefile.in rename to dll/win32/msxml/Makefile.in diff --git a/reactos/dll/win32/msxml/main.c b/dll/win32/msxml/main.c similarity index 100% rename from reactos/dll/win32/msxml/main.c rename to dll/win32/msxml/main.c diff --git a/reactos/dll/win32/msxml/msxml.rgs b/dll/win32/msxml/msxml.rgs similarity index 100% rename from reactos/dll/win32/msxml/msxml.rgs rename to dll/win32/msxml/msxml.rgs diff --git a/reactos/dll/win32/msxml/msxml.spec b/dll/win32/msxml/msxml.spec similarity index 100% rename from reactos/dll/win32/msxml/msxml.spec rename to dll/win32/msxml/msxml.spec diff --git a/reactos/dll/win32/msxml/msxml_tlb.idl b/dll/win32/msxml/msxml_tlb.idl similarity index 100% rename from reactos/dll/win32/msxml/msxml_tlb.idl rename to dll/win32/msxml/msxml_tlb.idl diff --git a/reactos/dll/win32/msxml/msxml_tlb.rgs b/dll/win32/msxml/msxml_tlb.rgs similarity index 100% rename from reactos/dll/win32/msxml/msxml_tlb.rgs rename to dll/win32/msxml/msxml_tlb.rgs diff --git a/reactos/dll/win32/msxml/rsrc.rc b/dll/win32/msxml/rsrc.rc similarity index 100% rename from reactos/dll/win32/msxml/rsrc.rc rename to dll/win32/msxml/rsrc.rc diff --git a/reactos/dll/win32/msxml2/CMakeLists.txt b/dll/win32/msxml2/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msxml2/CMakeLists.txt rename to dll/win32/msxml2/CMakeLists.txt diff --git a/reactos/dll/win32/msxml2/Makefile.in b/dll/win32/msxml2/Makefile.in similarity index 100% rename from reactos/dll/win32/msxml2/Makefile.in rename to dll/win32/msxml2/Makefile.in diff --git a/reactos/dll/win32/msxml2/main.c b/dll/win32/msxml2/main.c similarity index 100% rename from reactos/dll/win32/msxml2/main.c rename to dll/win32/msxml2/main.c diff --git a/reactos/dll/win32/msxml2/msxml2.rc b/dll/win32/msxml2/msxml2.rc similarity index 100% rename from reactos/dll/win32/msxml2/msxml2.rc rename to dll/win32/msxml2/msxml2.rc diff --git a/reactos/dll/win32/msxml2/msxml2.spec b/dll/win32/msxml2/msxml2.spec similarity index 100% rename from reactos/dll/win32/msxml2/msxml2.spec rename to dll/win32/msxml2/msxml2.spec diff --git a/reactos/dll/win32/msxml2/msxml2_tlb.idl b/dll/win32/msxml2/msxml2_tlb.idl similarity index 100% rename from reactos/dll/win32/msxml2/msxml2_tlb.idl rename to dll/win32/msxml2/msxml2_tlb.idl diff --git a/reactos/dll/win32/msxml2/msxml2_tlb.rgs b/dll/win32/msxml2/msxml2_tlb.rgs similarity index 100% rename from reactos/dll/win32/msxml2/msxml2_tlb.rgs rename to dll/win32/msxml2/msxml2_tlb.rgs diff --git a/reactos/dll/win32/msxml3/CMakeLists.txt b/dll/win32/msxml3/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msxml3/CMakeLists.txt rename to dll/win32/msxml3/CMakeLists.txt diff --git a/reactos/dll/win32/msxml3/attribute.c b/dll/win32/msxml3/attribute.c similarity index 100% rename from reactos/dll/win32/msxml3/attribute.c rename to dll/win32/msxml3/attribute.c diff --git a/reactos/dll/win32/msxml3/bsc.c b/dll/win32/msxml3/bsc.c similarity index 100% rename from reactos/dll/win32/msxml3/bsc.c rename to dll/win32/msxml3/bsc.c diff --git a/reactos/dll/win32/msxml3/cdata.c b/dll/win32/msxml3/cdata.c similarity index 100% rename from reactos/dll/win32/msxml3/cdata.c rename to dll/win32/msxml3/cdata.c diff --git a/reactos/dll/win32/msxml3/comment.c b/dll/win32/msxml3/comment.c similarity index 100% rename from reactos/dll/win32/msxml3/comment.c rename to dll/win32/msxml3/comment.c diff --git a/reactos/dll/win32/msxml3/datatypes.xsd b/dll/win32/msxml3/datatypes.xsd similarity index 100% rename from reactos/dll/win32/msxml3/datatypes.xsd rename to dll/win32/msxml3/datatypes.xsd diff --git a/reactos/dll/win32/msxml3/dispex.c b/dll/win32/msxml3/dispex.c similarity index 100% rename from reactos/dll/win32/msxml3/dispex.c rename to dll/win32/msxml3/dispex.c diff --git a/reactos/dll/win32/msxml3/docfrag.c b/dll/win32/msxml3/docfrag.c similarity index 100% rename from reactos/dll/win32/msxml3/docfrag.c rename to dll/win32/msxml3/docfrag.c diff --git a/reactos/dll/win32/msxml3/doctype.c b/dll/win32/msxml3/doctype.c similarity index 100% rename from reactos/dll/win32/msxml3/doctype.c rename to dll/win32/msxml3/doctype.c diff --git a/reactos/dll/win32/msxml3/domdoc.c b/dll/win32/msxml3/domdoc.c similarity index 100% rename from reactos/dll/win32/msxml3/domdoc.c rename to dll/win32/msxml3/domdoc.c diff --git a/reactos/dll/win32/msxml3/domimpl.c b/dll/win32/msxml3/domimpl.c similarity index 100% rename from reactos/dll/win32/msxml3/domimpl.c rename to dll/win32/msxml3/domimpl.c diff --git a/reactos/dll/win32/msxml3/element.c b/dll/win32/msxml3/element.c similarity index 100% rename from reactos/dll/win32/msxml3/element.c rename to dll/win32/msxml3/element.c diff --git a/reactos/dll/win32/msxml3/entityref.c b/dll/win32/msxml3/entityref.c similarity index 100% rename from reactos/dll/win32/msxml3/entityref.c rename to dll/win32/msxml3/entityref.c diff --git a/reactos/dll/win32/msxml3/factory.c b/dll/win32/msxml3/factory.c similarity index 100% rename from reactos/dll/win32/msxml3/factory.c rename to dll/win32/msxml3/factory.c diff --git a/reactos/dll/win32/msxml3/httprequest.c b/dll/win32/msxml3/httprequest.c similarity index 100% rename from reactos/dll/win32/msxml3/httprequest.c rename to dll/win32/msxml3/httprequest.c diff --git a/reactos/dll/win32/msxml3/main.c b/dll/win32/msxml3/main.c similarity index 100% rename from reactos/dll/win32/msxml3/main.c rename to dll/win32/msxml3/main.c diff --git a/reactos/dll/win32/msxml3/msvc.h b/dll/win32/msxml3/msvc.h similarity index 100% rename from reactos/dll/win32/msxml3/msvc.h rename to dll/win32/msxml3/msvc.h diff --git a/reactos/dll/win32/msxml3/msxml3.manifest b/dll/win32/msxml3/msxml3.manifest similarity index 100% rename from reactos/dll/win32/msxml3/msxml3.manifest rename to dll/win32/msxml3/msxml3.manifest diff --git a/reactos/dll/win32/msxml3/msxml3.spec b/dll/win32/msxml3/msxml3.spec similarity index 100% rename from reactos/dll/win32/msxml3/msxml3.spec rename to dll/win32/msxml3/msxml3.spec diff --git a/reactos/dll/win32/msxml3/msxml3_ros.diff b/dll/win32/msxml3/msxml3_ros.diff similarity index 100% rename from reactos/dll/win32/msxml3/msxml3_ros.diff rename to dll/win32/msxml3/msxml3_ros.diff diff --git a/reactos/dll/win32/msxml3/msxml3_v1.idl b/dll/win32/msxml3/msxml3_v1.idl similarity index 100% rename from reactos/dll/win32/msxml3/msxml3_v1.idl rename to dll/win32/msxml3/msxml3_v1.idl diff --git a/reactos/dll/win32/msxml3/msxml3_v1.rgs b/dll/win32/msxml3/msxml3_v1.rgs similarity index 100% rename from reactos/dll/win32/msxml3/msxml3_v1.rgs rename to dll/win32/msxml3/msxml3_v1.rgs diff --git a/reactos/dll/win32/msxml3/msxml_private.h b/dll/win32/msxml3/msxml_private.h similarity index 100% rename from reactos/dll/win32/msxml3/msxml_private.h rename to dll/win32/msxml3/msxml_private.h diff --git a/reactos/dll/win32/msxml3/mxnamespace.c b/dll/win32/msxml3/mxnamespace.c similarity index 100% rename from reactos/dll/win32/msxml3/mxnamespace.c rename to dll/win32/msxml3/mxnamespace.c diff --git a/reactos/dll/win32/msxml3/mxwriter.c b/dll/win32/msxml3/mxwriter.c similarity index 100% rename from reactos/dll/win32/msxml3/mxwriter.c rename to dll/win32/msxml3/mxwriter.c diff --git a/reactos/dll/win32/msxml3/node.c b/dll/win32/msxml3/node.c similarity index 100% rename from reactos/dll/win32/msxml3/node.c rename to dll/win32/msxml3/node.c diff --git a/reactos/dll/win32/msxml3/nodelist.c b/dll/win32/msxml3/nodelist.c similarity index 100% rename from reactos/dll/win32/msxml3/nodelist.c rename to dll/win32/msxml3/nodelist.c diff --git a/reactos/dll/win32/msxml3/nodemap.c b/dll/win32/msxml3/nodemap.c similarity index 100% rename from reactos/dll/win32/msxml3/nodemap.c rename to dll/win32/msxml3/nodemap.c diff --git a/reactos/dll/win32/msxml3/parseerror.c b/dll/win32/msxml3/parseerror.c similarity index 100% rename from reactos/dll/win32/msxml3/parseerror.c rename to dll/win32/msxml3/parseerror.c diff --git a/reactos/dll/win32/msxml3/pi.c b/dll/win32/msxml3/pi.c similarity index 100% rename from reactos/dll/win32/msxml3/pi.c rename to dll/win32/msxml3/pi.c diff --git a/reactos/dll/win32/msxml3/saxreader.c b/dll/win32/msxml3/saxreader.c similarity index 100% rename from reactos/dll/win32/msxml3/saxreader.c rename to dll/win32/msxml3/saxreader.c diff --git a/reactos/dll/win32/msxml3/schema.c b/dll/win32/msxml3/schema.c similarity index 100% rename from reactos/dll/win32/msxml3/schema.c rename to dll/win32/msxml3/schema.c diff --git a/reactos/dll/win32/msxml3/schemas.rc b/dll/win32/msxml3/schemas.rc similarity index 100% rename from reactos/dll/win32/msxml3/schemas.rc rename to dll/win32/msxml3/schemas.rc diff --git a/reactos/dll/win32/msxml3/selection.c b/dll/win32/msxml3/selection.c similarity index 100% rename from reactos/dll/win32/msxml3/selection.c rename to dll/win32/msxml3/selection.c diff --git a/reactos/dll/win32/msxml3/stylesheet.c b/dll/win32/msxml3/stylesheet.c similarity index 100% rename from reactos/dll/win32/msxml3/stylesheet.c rename to dll/win32/msxml3/stylesheet.c diff --git a/reactos/dll/win32/msxml3/text.c b/dll/win32/msxml3/text.c similarity index 100% rename from reactos/dll/win32/msxml3/text.c rename to dll/win32/msxml3/text.c diff --git a/reactos/dll/win32/msxml3/uuid.c b/dll/win32/msxml3/uuid.c similarity index 100% rename from reactos/dll/win32/msxml3/uuid.c rename to dll/win32/msxml3/uuid.c diff --git a/reactos/dll/win32/msxml3/version.rc b/dll/win32/msxml3/version.rc similarity index 100% rename from reactos/dll/win32/msxml3/version.rc rename to dll/win32/msxml3/version.rc diff --git a/reactos/dll/win32/msxml3/xdr.c b/dll/win32/msxml3/xdr.c similarity index 100% rename from reactos/dll/win32/msxml3/xdr.c rename to dll/win32/msxml3/xdr.c diff --git a/reactos/dll/win32/msxml3/xmldoc.c b/dll/win32/msxml3/xmldoc.c similarity index 100% rename from reactos/dll/win32/msxml3/xmldoc.c rename to dll/win32/msxml3/xmldoc.c diff --git a/reactos/dll/win32/msxml3/xmlelem.c b/dll/win32/msxml3/xmlelem.c similarity index 100% rename from reactos/dll/win32/msxml3/xmlelem.c rename to dll/win32/msxml3/xmlelem.c diff --git a/reactos/dll/win32/msxml3/xmlparser.c b/dll/win32/msxml3/xmlparser.c similarity index 100% rename from reactos/dll/win32/msxml3/xmlparser.c rename to dll/win32/msxml3/xmlparser.c diff --git a/reactos/dll/win32/msxml3/xmlparser.idl b/dll/win32/msxml3/xmlparser.idl similarity index 100% rename from reactos/dll/win32/msxml3/xmlparser.idl rename to dll/win32/msxml3/xmlparser.idl diff --git a/reactos/dll/win32/msxml3/xmlparser.rgs b/dll/win32/msxml3/xmlparser.rgs similarity index 100% rename from reactos/dll/win32/msxml3/xmlparser.rgs rename to dll/win32/msxml3/xmlparser.rgs diff --git a/reactos/dll/win32/msxml3/xmlview.c b/dll/win32/msxml3/xmlview.c similarity index 100% rename from reactos/dll/win32/msxml3/xmlview.c rename to dll/win32/msxml3/xmlview.c diff --git a/reactos/dll/win32/msxml3/xslpattern.h b/dll/win32/msxml3/xslpattern.h similarity index 100% rename from reactos/dll/win32/msxml3/xslpattern.h rename to dll/win32/msxml3/xslpattern.h diff --git a/reactos/dll/win32/msxml3/xslpattern.l b/dll/win32/msxml3/xslpattern.l similarity index 100% rename from reactos/dll/win32/msxml3/xslpattern.l rename to dll/win32/msxml3/xslpattern.l diff --git a/reactos/dll/win32/msxml3/xslpattern.tab.c b/dll/win32/msxml3/xslpattern.tab.c similarity index 100% rename from reactos/dll/win32/msxml3/xslpattern.tab.c rename to dll/win32/msxml3/xslpattern.tab.c diff --git a/reactos/dll/win32/msxml3/xslpattern.tab.h b/dll/win32/msxml3/xslpattern.tab.h similarity index 100% rename from reactos/dll/win32/msxml3/xslpattern.tab.h rename to dll/win32/msxml3/xslpattern.tab.h diff --git a/reactos/dll/win32/msxml3/xslpattern.y b/dll/win32/msxml3/xslpattern.y similarity index 100% rename from reactos/dll/win32/msxml3/xslpattern.y rename to dll/win32/msxml3/xslpattern.y diff --git a/reactos/dll/win32/msxml3/xslpattern.yy.c b/dll/win32/msxml3/xslpattern.yy.c similarity index 100% rename from reactos/dll/win32/msxml3/xslpattern.yy.c rename to dll/win32/msxml3/xslpattern.yy.c diff --git a/reactos/dll/win32/msxml4/CMakeLists.txt b/dll/win32/msxml4/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msxml4/CMakeLists.txt rename to dll/win32/msxml4/CMakeLists.txt diff --git a/reactos/dll/win32/msxml4/Makefile.in b/dll/win32/msxml4/Makefile.in similarity index 100% rename from reactos/dll/win32/msxml4/Makefile.in rename to dll/win32/msxml4/Makefile.in diff --git a/reactos/dll/win32/msxml4/main.c b/dll/win32/msxml4/main.c similarity index 100% rename from reactos/dll/win32/msxml4/main.c rename to dll/win32/msxml4/main.c diff --git a/reactos/dll/win32/msxml4/msxml4.manifest b/dll/win32/msxml4/msxml4.manifest similarity index 100% rename from reactos/dll/win32/msxml4/msxml4.manifest rename to dll/win32/msxml4/msxml4.manifest diff --git a/reactos/dll/win32/msxml4/msxml4.spec b/dll/win32/msxml4/msxml4.spec similarity index 100% rename from reactos/dll/win32/msxml4/msxml4.spec rename to dll/win32/msxml4/msxml4.spec diff --git a/reactos/dll/win32/msxml4/msxml4_tlb.idl b/dll/win32/msxml4/msxml4_tlb.idl similarity index 100% rename from reactos/dll/win32/msxml4/msxml4_tlb.idl rename to dll/win32/msxml4/msxml4_tlb.idl diff --git a/reactos/dll/win32/msxml4/msxml4_tlb.rgs b/dll/win32/msxml4/msxml4_tlb.rgs similarity index 100% rename from reactos/dll/win32/msxml4/msxml4_tlb.rgs rename to dll/win32/msxml4/msxml4_tlb.rgs diff --git a/reactos/dll/win32/msxml4/rsrc.rc b/dll/win32/msxml4/rsrc.rc similarity index 100% rename from reactos/dll/win32/msxml4/rsrc.rc rename to dll/win32/msxml4/rsrc.rc diff --git a/reactos/dll/win32/msxml6/CMakeLists.txt b/dll/win32/msxml6/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/msxml6/CMakeLists.txt rename to dll/win32/msxml6/CMakeLists.txt diff --git a/reactos/dll/win32/msxml6/Makefile.in b/dll/win32/msxml6/Makefile.in similarity index 100% rename from reactos/dll/win32/msxml6/Makefile.in rename to dll/win32/msxml6/Makefile.in diff --git a/reactos/dll/win32/msxml6/main.c b/dll/win32/msxml6/main.c similarity index 100% rename from reactos/dll/win32/msxml6/main.c rename to dll/win32/msxml6/main.c diff --git a/reactos/dll/win32/msxml6/msxml6.manifest b/dll/win32/msxml6/msxml6.manifest similarity index 100% rename from reactos/dll/win32/msxml6/msxml6.manifest rename to dll/win32/msxml6/msxml6.manifest diff --git a/reactos/dll/win32/msxml6/msxml6.spec b/dll/win32/msxml6/msxml6.spec similarity index 100% rename from reactos/dll/win32/msxml6/msxml6.spec rename to dll/win32/msxml6/msxml6.spec diff --git a/reactos/dll/win32/msxml6/msxml6_tlb.idl b/dll/win32/msxml6/msxml6_tlb.idl similarity index 100% rename from reactos/dll/win32/msxml6/msxml6_tlb.idl rename to dll/win32/msxml6/msxml6_tlb.idl diff --git a/reactos/dll/win32/msxml6/msxml6_tlb.rgs b/dll/win32/msxml6/msxml6_tlb.rgs similarity index 100% rename from reactos/dll/win32/msxml6/msxml6_tlb.rgs rename to dll/win32/msxml6/msxml6_tlb.rgs diff --git a/reactos/dll/win32/msxml6/rsrc.rc b/dll/win32/msxml6/rsrc.rc similarity index 100% rename from reactos/dll/win32/msxml6/rsrc.rc rename to dll/win32/msxml6/rsrc.rc diff --git a/reactos/dll/win32/nddeapi/CMakeLists.txt b/dll/win32/nddeapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/nddeapi/CMakeLists.txt rename to dll/win32/nddeapi/CMakeLists.txt diff --git a/reactos/dll/win32/nddeapi/nddeapi.c b/dll/win32/nddeapi/nddeapi.c similarity index 100% rename from reactos/dll/win32/nddeapi/nddeapi.c rename to dll/win32/nddeapi/nddeapi.c diff --git a/reactos/dll/win32/nddeapi/nddeapi.spec b/dll/win32/nddeapi/nddeapi.spec similarity index 100% rename from reactos/dll/win32/nddeapi/nddeapi.spec rename to dll/win32/nddeapi/nddeapi.spec diff --git a/reactos/dll/win32/netapi32/CMakeLists.txt b/dll/win32/netapi32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/netapi32/CMakeLists.txt rename to dll/win32/netapi32/CMakeLists.txt diff --git a/reactos/dll/win32/netapi32/access.c b/dll/win32/netapi32/access.c similarity index 100% rename from reactos/dll/win32/netapi32/access.c rename to dll/win32/netapi32/access.c diff --git a/reactos/dll/win32/netapi32/apibuf.c b/dll/win32/netapi32/apibuf.c similarity index 100% rename from reactos/dll/win32/netapi32/apibuf.c rename to dll/win32/netapi32/apibuf.c diff --git a/reactos/dll/win32/netapi32/browsr.c b/dll/win32/netapi32/browsr.c similarity index 100% rename from reactos/dll/win32/netapi32/browsr.c rename to dll/win32/netapi32/browsr.c diff --git a/reactos/dll/win32/netapi32/ds.c b/dll/win32/netapi32/ds.c similarity index 100% rename from reactos/dll/win32/netapi32/ds.c rename to dll/win32/netapi32/ds.c diff --git a/reactos/dll/win32/netapi32/local_group.c b/dll/win32/netapi32/local_group.c similarity index 100% rename from reactos/dll/win32/netapi32/local_group.c rename to dll/win32/netapi32/local_group.c diff --git a/reactos/dll/win32/netapi32/nbcmdqueue.c b/dll/win32/netapi32/nbcmdqueue.c similarity index 100% rename from reactos/dll/win32/netapi32/nbcmdqueue.c rename to dll/win32/netapi32/nbcmdqueue.c diff --git a/reactos/dll/win32/netapi32/nbcmdqueue.h b/dll/win32/netapi32/nbcmdqueue.h similarity index 100% rename from reactos/dll/win32/netapi32/nbcmdqueue.h rename to dll/win32/netapi32/nbcmdqueue.h diff --git a/reactos/dll/win32/netapi32/nbnamecache.c b/dll/win32/netapi32/nbnamecache.c similarity index 100% rename from reactos/dll/win32/netapi32/nbnamecache.c rename to dll/win32/netapi32/nbnamecache.c diff --git a/reactos/dll/win32/netapi32/nbnamecache.h b/dll/win32/netapi32/nbnamecache.h similarity index 100% rename from reactos/dll/win32/netapi32/nbnamecache.h rename to dll/win32/netapi32/nbnamecache.h diff --git a/reactos/dll/win32/netapi32/nbt.c b/dll/win32/netapi32/nbt.c similarity index 100% rename from reactos/dll/win32/netapi32/nbt.c rename to dll/win32/netapi32/nbt.c diff --git a/reactos/dll/win32/netapi32/netapi32.c b/dll/win32/netapi32/netapi32.c similarity index 100% rename from reactos/dll/win32/netapi32/netapi32.c rename to dll/win32/netapi32/netapi32.c diff --git a/reactos/dll/win32/netapi32/netapi32.spec b/dll/win32/netapi32/netapi32.spec similarity index 100% rename from reactos/dll/win32/netapi32/netapi32.spec rename to dll/win32/netapi32/netapi32.spec diff --git a/reactos/dll/win32/netapi32/netbios.c b/dll/win32/netapi32/netbios.c similarity index 100% rename from reactos/dll/win32/netapi32/netbios.c rename to dll/win32/netapi32/netbios.c diff --git a/reactos/dll/win32/netapi32/netbios.h b/dll/win32/netapi32/netbios.h similarity index 100% rename from reactos/dll/win32/netapi32/netbios.h rename to dll/win32/netapi32/netbios.h diff --git a/reactos/dll/win32/netapi32/share.c b/dll/win32/netapi32/share.c similarity index 100% rename from reactos/dll/win32/netapi32/share.c rename to dll/win32/netapi32/share.c diff --git a/reactos/dll/win32/netapi32/wksta.c b/dll/win32/netapi32/wksta.c similarity index 100% rename from reactos/dll/win32/netapi32/wksta.c rename to dll/win32/netapi32/wksta.c diff --git a/reactos/dll/win32/netcfgx/CMakeLists.txt b/dll/win32/netcfgx/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/netcfgx/CMakeLists.txt rename to dll/win32/netcfgx/CMakeLists.txt diff --git a/reactos/dll/win32/netcfgx/classfactory.c b/dll/win32/netcfgx/classfactory.c similarity index 100% rename from reactos/dll/win32/netcfgx/classfactory.c rename to dll/win32/netcfgx/classfactory.c diff --git a/reactos/dll/win32/netcfgx/inetcfgcomp_iface.c b/dll/win32/netcfgx/inetcfgcomp_iface.c similarity index 100% rename from reactos/dll/win32/netcfgx/inetcfgcomp_iface.c rename to dll/win32/netcfgx/inetcfgcomp_iface.c diff --git a/reactos/dll/win32/netcfgx/lang/bg-BG.rc b/dll/win32/netcfgx/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/bg-BG.rc rename to dll/win32/netcfgx/lang/bg-BG.rc diff --git a/reactos/dll/win32/netcfgx/lang/cs-CZ.rc b/dll/win32/netcfgx/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/cs-CZ.rc rename to dll/win32/netcfgx/lang/cs-CZ.rc diff --git a/reactos/dll/win32/netcfgx/lang/da-DK.rc b/dll/win32/netcfgx/lang/da-DK.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/da-DK.rc rename to dll/win32/netcfgx/lang/da-DK.rc diff --git a/reactos/dll/win32/netcfgx/lang/de-DE.rc b/dll/win32/netcfgx/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/de-DE.rc rename to dll/win32/netcfgx/lang/de-DE.rc diff --git a/reactos/dll/win32/netcfgx/lang/el-GR.rc b/dll/win32/netcfgx/lang/el-GR.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/el-GR.rc rename to dll/win32/netcfgx/lang/el-GR.rc diff --git a/reactos/dll/win32/netcfgx/lang/en-US.rc b/dll/win32/netcfgx/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/en-US.rc rename to dll/win32/netcfgx/lang/en-US.rc diff --git a/reactos/dll/win32/netcfgx/lang/es-ES.rc b/dll/win32/netcfgx/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/es-ES.rc rename to dll/win32/netcfgx/lang/es-ES.rc diff --git a/reactos/dll/win32/netcfgx/lang/fr-FR.rc b/dll/win32/netcfgx/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/fr-FR.rc rename to dll/win32/netcfgx/lang/fr-FR.rc diff --git a/reactos/dll/win32/netcfgx/lang/hu-HU.rc b/dll/win32/netcfgx/lang/hu-HU.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/hu-HU.rc rename to dll/win32/netcfgx/lang/hu-HU.rc diff --git a/reactos/dll/win32/netcfgx/lang/id-ID.rc b/dll/win32/netcfgx/lang/id-ID.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/id-ID.rc rename to dll/win32/netcfgx/lang/id-ID.rc diff --git a/reactos/dll/win32/netcfgx/lang/it-IT.rc b/dll/win32/netcfgx/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/it-IT.rc rename to dll/win32/netcfgx/lang/it-IT.rc diff --git a/reactos/dll/win32/netcfgx/lang/ja-JP.rc b/dll/win32/netcfgx/lang/ja-JP.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/ja-JP.rc rename to dll/win32/netcfgx/lang/ja-JP.rc diff --git a/reactos/dll/win32/netcfgx/lang/nl-NL.rc b/dll/win32/netcfgx/lang/nl-NL.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/nl-NL.rc rename to dll/win32/netcfgx/lang/nl-NL.rc diff --git a/reactos/dll/win32/netcfgx/lang/no-NO.rc b/dll/win32/netcfgx/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/no-NO.rc rename to dll/win32/netcfgx/lang/no-NO.rc diff --git a/reactos/dll/win32/netcfgx/lang/pl-PL.rc b/dll/win32/netcfgx/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/pl-PL.rc rename to dll/win32/netcfgx/lang/pl-PL.rc diff --git a/reactos/dll/win32/netcfgx/lang/ro-RO.rc b/dll/win32/netcfgx/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/ro-RO.rc rename to dll/win32/netcfgx/lang/ro-RO.rc diff --git a/reactos/dll/win32/netcfgx/lang/ru-RU.rc b/dll/win32/netcfgx/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/ru-RU.rc rename to dll/win32/netcfgx/lang/ru-RU.rc diff --git a/reactos/dll/win32/netcfgx/lang/sk-SK.rc b/dll/win32/netcfgx/lang/sk-SK.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/sk-SK.rc rename to dll/win32/netcfgx/lang/sk-SK.rc diff --git a/reactos/dll/win32/netcfgx/lang/sv-SE.rc b/dll/win32/netcfgx/lang/sv-SE.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/sv-SE.rc rename to dll/win32/netcfgx/lang/sv-SE.rc diff --git a/reactos/dll/win32/netcfgx/lang/uk-UA.rc b/dll/win32/netcfgx/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/uk-UA.rc rename to dll/win32/netcfgx/lang/uk-UA.rc diff --git a/reactos/dll/win32/netcfgx/lang/zh-CN.rc b/dll/win32/netcfgx/lang/zh-CN.rc similarity index 100% rename from reactos/dll/win32/netcfgx/lang/zh-CN.rc rename to dll/win32/netcfgx/lang/zh-CN.rc diff --git a/reactos/dll/win32/netcfgx/netcfg_iface.c b/dll/win32/netcfgx/netcfg_iface.c similarity index 100% rename from reactos/dll/win32/netcfgx/netcfg_iface.c rename to dll/win32/netcfgx/netcfg_iface.c diff --git a/reactos/dll/win32/netcfgx/netcfgx.c b/dll/win32/netcfgx/netcfgx.c similarity index 100% rename from reactos/dll/win32/netcfgx/netcfgx.c rename to dll/win32/netcfgx/netcfgx.c diff --git a/reactos/dll/win32/netcfgx/netcfgx.rc b/dll/win32/netcfgx/netcfgx.rc similarity index 100% rename from reactos/dll/win32/netcfgx/netcfgx.rc rename to dll/win32/netcfgx/netcfgx.rc diff --git a/reactos/dll/win32/netcfgx/netcfgx.spec b/dll/win32/netcfgx/netcfgx.spec similarity index 100% rename from reactos/dll/win32/netcfgx/netcfgx.spec rename to dll/win32/netcfgx/netcfgx.spec diff --git a/reactos/dll/win32/netcfgx/precomp.h b/dll/win32/netcfgx/precomp.h similarity index 100% rename from reactos/dll/win32/netcfgx/precomp.h rename to dll/win32/netcfgx/precomp.h diff --git a/reactos/dll/win32/netcfgx/resource.h b/dll/win32/netcfgx/resource.h similarity index 100% rename from reactos/dll/win32/netcfgx/resource.h rename to dll/win32/netcfgx/resource.h diff --git a/reactos/dll/win32/netcfgx/tcpipconf_notify.c b/dll/win32/netcfgx/tcpipconf_notify.c similarity index 100% rename from reactos/dll/win32/netcfgx/tcpipconf_notify.c rename to dll/win32/netcfgx/tcpipconf_notify.c diff --git a/reactos/dll/win32/netevent/CMakeLists.txt b/dll/win32/netevent/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/netevent/CMakeLists.txt rename to dll/win32/netevent/CMakeLists.txt diff --git a/reactos/dll/win32/netevent/netevt.rc b/dll/win32/netevent/netevt.rc similarity index 100% rename from reactos/dll/win32/netevent/netevt.rc rename to dll/win32/netevent/netevt.rc diff --git a/reactos/dll/win32/netid/CMakeLists.txt b/dll/win32/netid/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/netid/CMakeLists.txt rename to dll/win32/netid/CMakeLists.txt diff --git a/reactos/dll/win32/netid/lang/bg-BG.rc b/dll/win32/netid/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/netid/lang/bg-BG.rc rename to dll/win32/netid/lang/bg-BG.rc diff --git a/reactos/dll/win32/netid/lang/cs-CZ.rc b/dll/win32/netid/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/netid/lang/cs-CZ.rc rename to dll/win32/netid/lang/cs-CZ.rc diff --git a/reactos/dll/win32/netid/lang/de-DE.rc b/dll/win32/netid/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/netid/lang/de-DE.rc rename to dll/win32/netid/lang/de-DE.rc diff --git a/reactos/dll/win32/netid/lang/el-GR.rc b/dll/win32/netid/lang/el-GR.rc similarity index 100% rename from reactos/dll/win32/netid/lang/el-GR.rc rename to dll/win32/netid/lang/el-GR.rc diff --git a/reactos/dll/win32/netid/lang/en-US.rc b/dll/win32/netid/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/netid/lang/en-US.rc rename to dll/win32/netid/lang/en-US.rc diff --git a/reactos/dll/win32/netid/lang/es-ES.rc b/dll/win32/netid/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/netid/lang/es-ES.rc rename to dll/win32/netid/lang/es-ES.rc diff --git a/reactos/dll/win32/netid/lang/fr-FR.rc b/dll/win32/netid/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/netid/lang/fr-FR.rc rename to dll/win32/netid/lang/fr-FR.rc diff --git a/reactos/dll/win32/netid/lang/id-ID.rc b/dll/win32/netid/lang/id-ID.rc similarity index 100% rename from reactos/dll/win32/netid/lang/id-ID.rc rename to dll/win32/netid/lang/id-ID.rc diff --git a/reactos/dll/win32/netid/lang/it-IT.rc b/dll/win32/netid/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/netid/lang/it-IT.rc rename to dll/win32/netid/lang/it-IT.rc diff --git a/reactos/dll/win32/netid/lang/ja-JP.rc b/dll/win32/netid/lang/ja-JP.rc similarity index 100% rename from reactos/dll/win32/netid/lang/ja-JP.rc rename to dll/win32/netid/lang/ja-JP.rc diff --git a/reactos/dll/win32/netid/lang/nl-NL.rc b/dll/win32/netid/lang/nl-NL.rc similarity index 100% rename from reactos/dll/win32/netid/lang/nl-NL.rc rename to dll/win32/netid/lang/nl-NL.rc diff --git a/reactos/dll/win32/netid/lang/no-NO.rc b/dll/win32/netid/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/netid/lang/no-NO.rc rename to dll/win32/netid/lang/no-NO.rc diff --git a/reactos/dll/win32/netid/lang/pl-PL.rc b/dll/win32/netid/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/netid/lang/pl-PL.rc rename to dll/win32/netid/lang/pl-PL.rc diff --git a/reactos/dll/win32/netid/lang/ro-RO.rc b/dll/win32/netid/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/netid/lang/ro-RO.rc rename to dll/win32/netid/lang/ro-RO.rc diff --git a/reactos/dll/win32/netid/lang/ru-RU.rc b/dll/win32/netid/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/netid/lang/ru-RU.rc rename to dll/win32/netid/lang/ru-RU.rc diff --git a/reactos/dll/win32/netid/lang/sk-SK.rc b/dll/win32/netid/lang/sk-SK.rc similarity index 100% rename from reactos/dll/win32/netid/lang/sk-SK.rc rename to dll/win32/netid/lang/sk-SK.rc diff --git a/reactos/dll/win32/netid/lang/uk-UA.rc b/dll/win32/netid/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/netid/lang/uk-UA.rc rename to dll/win32/netid/lang/uk-UA.rc diff --git a/reactos/dll/win32/netid/netid.c b/dll/win32/netid/netid.c similarity index 100% rename from reactos/dll/win32/netid/netid.c rename to dll/win32/netid/netid.c diff --git a/reactos/dll/win32/netid/netid.def b/dll/win32/netid/netid.def similarity index 100% rename from reactos/dll/win32/netid/netid.def rename to dll/win32/netid/netid.def diff --git a/reactos/dll/win32/netid/netid.rc b/dll/win32/netid/netid.rc similarity index 100% rename from reactos/dll/win32/netid/netid.rc rename to dll/win32/netid/netid.rc diff --git a/reactos/dll/win32/netid/netid.spec b/dll/win32/netid/netid.spec similarity index 100% rename from reactos/dll/win32/netid/netid.spec rename to dll/win32/netid/netid.spec diff --git a/reactos/dll/win32/netid/res/101.ico b/dll/win32/netid/res/101.ico similarity index 100% rename from reactos/dll/win32/netid/res/101.ico rename to dll/win32/netid/res/101.ico diff --git a/reactos/dll/win32/netid/res/102.ico b/dll/win32/netid/res/102.ico similarity index 100% rename from reactos/dll/win32/netid/res/102.ico rename to dll/win32/netid/res/102.ico diff --git a/reactos/dll/win32/netid/resource.h b/dll/win32/netid/resource.h similarity index 100% rename from reactos/dll/win32/netid/resource.h rename to dll/win32/netid/resource.h diff --git a/reactos/dll/win32/netid/rsrc.rc b/dll/win32/netid/rsrc.rc similarity index 100% rename from reactos/dll/win32/netid/rsrc.rc rename to dll/win32/netid/rsrc.rc diff --git a/reactos/dll/win32/netshell/CMakeLists.txt b/dll/win32/netshell/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/netshell/CMakeLists.txt rename to dll/win32/netshell/CMakeLists.txt diff --git a/reactos/dll/win32/netshell/README b/dll/win32/netshell/README similarity index 100% rename from reactos/dll/win32/netshell/README rename to dll/win32/netshell/README diff --git a/reactos/dll/win32/netshell/classfactory.cpp b/dll/win32/netshell/classfactory.cpp similarity index 100% rename from reactos/dll/win32/netshell/classfactory.cpp rename to dll/win32/netshell/classfactory.cpp diff --git a/reactos/dll/win32/netshell/connectmanager.cpp b/dll/win32/netshell/connectmanager.cpp similarity index 100% rename from reactos/dll/win32/netshell/connectmanager.cpp rename to dll/win32/netshell/connectmanager.cpp diff --git a/reactos/dll/win32/netshell/enumlist.cpp b/dll/win32/netshell/enumlist.cpp similarity index 100% rename from reactos/dll/win32/netshell/enumlist.cpp rename to dll/win32/netshell/enumlist.cpp diff --git a/reactos/dll/win32/netshell/enumlist.h b/dll/win32/netshell/enumlist.h similarity index 100% rename from reactos/dll/win32/netshell/enumlist.h rename to dll/win32/netshell/enumlist.h diff --git a/reactos/dll/win32/netshell/lanconnectui.cpp b/dll/win32/netshell/lanconnectui.cpp similarity index 100% rename from reactos/dll/win32/netshell/lanconnectui.cpp rename to dll/win32/netshell/lanconnectui.cpp diff --git a/reactos/dll/win32/netshell/lang/bg-BG.rc b/dll/win32/netshell/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/bg-BG.rc rename to dll/win32/netshell/lang/bg-BG.rc diff --git a/reactos/dll/win32/netshell/lang/cs-CZ.rc b/dll/win32/netshell/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/cs-CZ.rc rename to dll/win32/netshell/lang/cs-CZ.rc diff --git a/reactos/dll/win32/netshell/lang/da-DK.rc b/dll/win32/netshell/lang/da-DK.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/da-DK.rc rename to dll/win32/netshell/lang/da-DK.rc diff --git a/reactos/dll/win32/netshell/lang/de-DE.rc b/dll/win32/netshell/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/de-DE.rc rename to dll/win32/netshell/lang/de-DE.rc diff --git a/reactos/dll/win32/netshell/lang/el-GR.rc b/dll/win32/netshell/lang/el-GR.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/el-GR.rc rename to dll/win32/netshell/lang/el-GR.rc diff --git a/reactos/dll/win32/netshell/lang/en-US.rc b/dll/win32/netshell/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/en-US.rc rename to dll/win32/netshell/lang/en-US.rc diff --git a/reactos/dll/win32/netshell/lang/es-ES.rc b/dll/win32/netshell/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/es-ES.rc rename to dll/win32/netshell/lang/es-ES.rc diff --git a/reactos/dll/win32/netshell/lang/fr-FR.rc b/dll/win32/netshell/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/fr-FR.rc rename to dll/win32/netshell/lang/fr-FR.rc diff --git a/reactos/dll/win32/netshell/lang/hu-HU.rc b/dll/win32/netshell/lang/hu-HU.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/hu-HU.rc rename to dll/win32/netshell/lang/hu-HU.rc diff --git a/reactos/dll/win32/netshell/lang/id-ID.rc b/dll/win32/netshell/lang/id-ID.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/id-ID.rc rename to dll/win32/netshell/lang/id-ID.rc diff --git a/reactos/dll/win32/netshell/lang/it-IT.rc b/dll/win32/netshell/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/it-IT.rc rename to dll/win32/netshell/lang/it-IT.rc diff --git a/reactos/dll/win32/netshell/lang/ja-JP.rc b/dll/win32/netshell/lang/ja-JP.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/ja-JP.rc rename to dll/win32/netshell/lang/ja-JP.rc diff --git a/reactos/dll/win32/netshell/lang/nl-NL.rc b/dll/win32/netshell/lang/nl-NL.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/nl-NL.rc rename to dll/win32/netshell/lang/nl-NL.rc diff --git a/reactos/dll/win32/netshell/lang/no-NO.rc b/dll/win32/netshell/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/no-NO.rc rename to dll/win32/netshell/lang/no-NO.rc diff --git a/reactos/dll/win32/netshell/lang/pl-PL.rc b/dll/win32/netshell/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/pl-PL.rc rename to dll/win32/netshell/lang/pl-PL.rc diff --git a/reactos/dll/win32/netshell/lang/ro-RO.rc b/dll/win32/netshell/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/ro-RO.rc rename to dll/win32/netshell/lang/ro-RO.rc diff --git a/reactos/dll/win32/netshell/lang/ru-RU.rc b/dll/win32/netshell/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/ru-RU.rc rename to dll/win32/netshell/lang/ru-RU.rc diff --git a/reactos/dll/win32/netshell/lang/sk-SK.rc b/dll/win32/netshell/lang/sk-SK.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/sk-SK.rc rename to dll/win32/netshell/lang/sk-SK.rc diff --git a/reactos/dll/win32/netshell/lang/sv-SE.rc b/dll/win32/netshell/lang/sv-SE.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/sv-SE.rc rename to dll/win32/netshell/lang/sv-SE.rc diff --git a/reactos/dll/win32/netshell/lang/uk-UA.rc b/dll/win32/netshell/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/uk-UA.rc rename to dll/win32/netshell/lang/uk-UA.rc diff --git a/reactos/dll/win32/netshell/lang/zh-CN.rc b/dll/win32/netshell/lang/zh-CN.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/zh-CN.rc rename to dll/win32/netshell/lang/zh-CN.rc diff --git a/reactos/dll/win32/netshell/lang/zh-TW.rc b/dll/win32/netshell/lang/zh-TW.rc similarity index 100% rename from reactos/dll/win32/netshell/lang/zh-TW.rc rename to dll/win32/netshell/lang/zh-TW.rc diff --git a/reactos/dll/win32/netshell/lanstatusui.cpp b/dll/win32/netshell/lanstatusui.cpp similarity index 100% rename from reactos/dll/win32/netshell/lanstatusui.cpp rename to dll/win32/netshell/lanstatusui.cpp diff --git a/reactos/dll/win32/netshell/netshell.cpp b/dll/win32/netshell/netshell.cpp similarity index 100% rename from reactos/dll/win32/netshell/netshell.cpp rename to dll/win32/netshell/netshell.cpp diff --git a/reactos/dll/win32/netshell/netshell.rc b/dll/win32/netshell/netshell.rc similarity index 100% rename from reactos/dll/win32/netshell/netshell.rc rename to dll/win32/netshell/netshell.rc diff --git a/reactos/dll/win32/netshell/netshell.spec b/dll/win32/netshell/netshell.spec similarity index 100% rename from reactos/dll/win32/netshell/netshell.spec rename to dll/win32/netshell/netshell.spec diff --git a/reactos/dll/win32/netshell/precomp.h b/dll/win32/netshell/precomp.h similarity index 100% rename from reactos/dll/win32/netshell/precomp.h rename to dll/win32/netshell/precomp.h diff --git a/reactos/dll/win32/netshell/res/neterror.ico b/dll/win32/netshell/res/neterror.ico similarity index 100% rename from reactos/dll/win32/netshell/res/neterror.ico rename to dll/win32/netshell/res/neterror.ico diff --git a/reactos/dll/win32/netshell/res/netidle.ico b/dll/win32/netshell/res/netidle.ico similarity index 100% rename from reactos/dll/win32/netshell/res/netidle.ico rename to dll/win32/netshell/res/netidle.ico diff --git a/reactos/dll/win32/netshell/res/netoff.ico b/dll/win32/netshell/res/netoff.ico similarity index 100% rename from reactos/dll/win32/netshell/res/netoff.ico rename to dll/win32/netshell/res/netoff.ico diff --git a/reactos/dll/win32/netshell/res/netrec.ico b/dll/win32/netshell/res/netrec.ico similarity index 100% rename from reactos/dll/win32/netshell/res/netrec.ico rename to dll/win32/netshell/res/netrec.ico diff --git a/reactos/dll/win32/netshell/res/netshell.ico b/dll/win32/netshell/res/netshell.ico similarity index 100% rename from reactos/dll/win32/netshell/res/netshell.ico rename to dll/win32/netshell/res/netshell.ico diff --git a/reactos/dll/win32/netshell/res/nettrans.ico b/dll/win32/netshell/res/nettrans.ico similarity index 100% rename from reactos/dll/win32/netshell/res/nettrans.ico rename to dll/win32/netshell/res/nettrans.ico diff --git a/reactos/dll/win32/netshell/res/nettrrec.ico b/dll/win32/netshell/res/nettrrec.ico similarity index 100% rename from reactos/dll/win32/netshell/res/nettrrec.ico rename to dll/win32/netshell/res/nettrrec.ico diff --git a/reactos/dll/win32/netshell/resource.h b/dll/win32/netshell/resource.h similarity index 100% rename from reactos/dll/win32/netshell/resource.h rename to dll/win32/netshell/resource.h diff --git a/reactos/dll/win32/netshell/shfldr_netconnect.cpp b/dll/win32/netshell/shfldr_netconnect.cpp similarity index 100% rename from reactos/dll/win32/netshell/shfldr_netconnect.cpp rename to dll/win32/netshell/shfldr_netconnect.cpp diff --git a/reactos/dll/win32/newdev/CMakeLists.txt b/dll/win32/newdev/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/newdev/CMakeLists.txt rename to dll/win32/newdev/CMakeLists.txt diff --git a/reactos/dll/win32/newdev/lang/bg-BG.rc b/dll/win32/newdev/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/bg-BG.rc rename to dll/win32/newdev/lang/bg-BG.rc diff --git a/reactos/dll/win32/newdev/lang/cs-CZ.rc b/dll/win32/newdev/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/cs-CZ.rc rename to dll/win32/newdev/lang/cs-CZ.rc diff --git a/reactos/dll/win32/newdev/lang/de-DE.rc b/dll/win32/newdev/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/de-DE.rc rename to dll/win32/newdev/lang/de-DE.rc diff --git a/reactos/dll/win32/newdev/lang/el-GR.rc b/dll/win32/newdev/lang/el-GR.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/el-GR.rc rename to dll/win32/newdev/lang/el-GR.rc diff --git a/reactos/dll/win32/newdev/lang/en-US.rc b/dll/win32/newdev/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/en-US.rc rename to dll/win32/newdev/lang/en-US.rc diff --git a/reactos/dll/win32/newdev/lang/es-ES.rc b/dll/win32/newdev/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/es-ES.rc rename to dll/win32/newdev/lang/es-ES.rc diff --git a/reactos/dll/win32/newdev/lang/fr-FR.rc b/dll/win32/newdev/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/fr-FR.rc rename to dll/win32/newdev/lang/fr-FR.rc diff --git a/reactos/dll/win32/newdev/lang/hu-HU.rc b/dll/win32/newdev/lang/hu-HU.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/hu-HU.rc rename to dll/win32/newdev/lang/hu-HU.rc diff --git a/reactos/dll/win32/newdev/lang/id-ID.rc b/dll/win32/newdev/lang/id-ID.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/id-ID.rc rename to dll/win32/newdev/lang/id-ID.rc diff --git a/reactos/dll/win32/newdev/lang/it-IT.rc b/dll/win32/newdev/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/it-IT.rc rename to dll/win32/newdev/lang/it-IT.rc diff --git a/reactos/dll/win32/newdev/lang/ja-JP.rc b/dll/win32/newdev/lang/ja-JP.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/ja-JP.rc rename to dll/win32/newdev/lang/ja-JP.rc diff --git a/reactos/dll/win32/newdev/lang/nl-NL.rc b/dll/win32/newdev/lang/nl-NL.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/nl-NL.rc rename to dll/win32/newdev/lang/nl-NL.rc diff --git a/reactos/dll/win32/newdev/lang/no-NO.rc b/dll/win32/newdev/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/no-NO.rc rename to dll/win32/newdev/lang/no-NO.rc diff --git a/reactos/dll/win32/newdev/lang/pl-PL.rc b/dll/win32/newdev/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/pl-PL.rc rename to dll/win32/newdev/lang/pl-PL.rc diff --git a/reactos/dll/win32/newdev/lang/ro-RO.rc b/dll/win32/newdev/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/ro-RO.rc rename to dll/win32/newdev/lang/ro-RO.rc diff --git a/reactos/dll/win32/newdev/lang/ru-RU.rc b/dll/win32/newdev/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/ru-RU.rc rename to dll/win32/newdev/lang/ru-RU.rc diff --git a/reactos/dll/win32/newdev/lang/sk-SK.rc b/dll/win32/newdev/lang/sk-SK.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/sk-SK.rc rename to dll/win32/newdev/lang/sk-SK.rc diff --git a/reactos/dll/win32/newdev/lang/th-TH.rc b/dll/win32/newdev/lang/th-TH.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/th-TH.rc rename to dll/win32/newdev/lang/th-TH.rc diff --git a/reactos/dll/win32/newdev/lang/uk-UA.rc b/dll/win32/newdev/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/newdev/lang/uk-UA.rc rename to dll/win32/newdev/lang/uk-UA.rc diff --git a/reactos/dll/win32/newdev/newdev.c b/dll/win32/newdev/newdev.c similarity index 100% rename from reactos/dll/win32/newdev/newdev.c rename to dll/win32/newdev/newdev.c diff --git a/reactos/dll/win32/newdev/newdev.rc b/dll/win32/newdev/newdev.rc similarity index 100% rename from reactos/dll/win32/newdev/newdev.rc rename to dll/win32/newdev/newdev.rc diff --git a/reactos/dll/win32/newdev/newdev.spec b/dll/win32/newdev/newdev.spec similarity index 100% rename from reactos/dll/win32/newdev/newdev.spec rename to dll/win32/newdev/newdev.spec diff --git a/reactos/dll/win32/newdev/newdev_private.h b/dll/win32/newdev/newdev_private.h similarity index 100% rename from reactos/dll/win32/newdev/newdev_private.h rename to dll/win32/newdev/newdev_private.h diff --git a/reactos/dll/win32/newdev/resource.h b/dll/win32/newdev/resource.h similarity index 100% rename from reactos/dll/win32/newdev/resource.h rename to dll/win32/newdev/resource.h diff --git a/reactos/dll/win32/newdev/resources/header.bmp b/dll/win32/newdev/resources/header.bmp similarity index 100% rename from reactos/dll/win32/newdev/resources/header.bmp rename to dll/win32/newdev/resources/header.bmp diff --git a/reactos/dll/win32/newdev/resources/watermark.bmp b/dll/win32/newdev/resources/watermark.bmp similarity index 100% rename from reactos/dll/win32/newdev/resources/watermark.bmp rename to dll/win32/newdev/resources/watermark.bmp diff --git a/reactos/dll/win32/newdev/rsrc.rc b/dll/win32/newdev/rsrc.rc similarity index 100% rename from reactos/dll/win32/newdev/rsrc.rc rename to dll/win32/newdev/rsrc.rc diff --git a/reactos/dll/win32/newdev/stubs.c b/dll/win32/newdev/stubs.c similarity index 100% rename from reactos/dll/win32/newdev/stubs.c rename to dll/win32/newdev/stubs.c diff --git a/reactos/dll/win32/newdev/wizard.c b/dll/win32/newdev/wizard.c similarity index 100% rename from reactos/dll/win32/newdev/wizard.c rename to dll/win32/newdev/wizard.c diff --git a/reactos/dll/win32/ntdsapi/CMakeLists.txt b/dll/win32/ntdsapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/ntdsapi/CMakeLists.txt rename to dll/win32/ntdsapi/CMakeLists.txt diff --git a/reactos/dll/win32/ntdsapi/ntdsapi.c b/dll/win32/ntdsapi/ntdsapi.c similarity index 100% rename from reactos/dll/win32/ntdsapi/ntdsapi.c rename to dll/win32/ntdsapi/ntdsapi.c diff --git a/reactos/dll/win32/ntdsapi/ntdsapi.spec b/dll/win32/ntdsapi/ntdsapi.spec similarity index 100% rename from reactos/dll/win32/ntdsapi/ntdsapi.spec rename to dll/win32/ntdsapi/ntdsapi.spec diff --git a/reactos/dll/win32/ntlanman/CMakeLists.txt b/dll/win32/ntlanman/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/ntlanman/CMakeLists.txt rename to dll/win32/ntlanman/CMakeLists.txt diff --git a/reactos/dll/win32/ntlanman/ntlanman.c b/dll/win32/ntlanman/ntlanman.c similarity index 100% rename from reactos/dll/win32/ntlanman/ntlanman.c rename to dll/win32/ntlanman/ntlanman.c diff --git a/reactos/dll/win32/ntlanman/ntlanman.rc b/dll/win32/ntlanman/ntlanman.rc similarity index 100% rename from reactos/dll/win32/ntlanman/ntlanman.rc rename to dll/win32/ntlanman/ntlanman.rc diff --git a/reactos/dll/win32/ntlanman/ntlanman.spec b/dll/win32/ntlanman/ntlanman.spec similarity index 100% rename from reactos/dll/win32/ntlanman/ntlanman.spec rename to dll/win32/ntlanman/ntlanman.spec diff --git a/reactos/dll/win32/ntmarta/CMakeLists.txt b/dll/win32/ntmarta/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/ntmarta/CMakeLists.txt rename to dll/win32/ntmarta/CMakeLists.txt diff --git a/reactos/dll/win32/ntmarta/ntmarta.c b/dll/win32/ntmarta/ntmarta.c similarity index 100% rename from reactos/dll/win32/ntmarta/ntmarta.c rename to dll/win32/ntmarta/ntmarta.c diff --git a/reactos/dll/win32/ntmarta/ntmarta.h b/dll/win32/ntmarta/ntmarta.h similarity index 100% rename from reactos/dll/win32/ntmarta/ntmarta.h rename to dll/win32/ntmarta/ntmarta.h diff --git a/reactos/dll/win32/ntmarta/ntmarta.rc b/dll/win32/ntmarta/ntmarta.rc similarity index 100% rename from reactos/dll/win32/ntmarta/ntmarta.rc rename to dll/win32/ntmarta/ntmarta.rc diff --git a/reactos/dll/win32/ntmarta/ntmarta.spec b/dll/win32/ntmarta/ntmarta.spec similarity index 100% rename from reactos/dll/win32/ntmarta/ntmarta.spec rename to dll/win32/ntmarta/ntmarta.spec diff --git a/reactos/dll/win32/ntprint/CMakeLists.txt b/dll/win32/ntprint/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/ntprint/CMakeLists.txt rename to dll/win32/ntprint/CMakeLists.txt diff --git a/reactos/dll/win32/ntprint/ntprint.c b/dll/win32/ntprint/ntprint.c similarity index 100% rename from reactos/dll/win32/ntprint/ntprint.c rename to dll/win32/ntprint/ntprint.c diff --git a/reactos/dll/win32/ntprint/ntprint.rc b/dll/win32/ntprint/ntprint.rc similarity index 100% rename from reactos/dll/win32/ntprint/ntprint.rc rename to dll/win32/ntprint/ntprint.rc diff --git a/reactos/dll/win32/ntprint/ntprint.spec b/dll/win32/ntprint/ntprint.spec similarity index 100% rename from reactos/dll/win32/ntprint/ntprint.spec rename to dll/win32/ntprint/ntprint.spec diff --git a/reactos/dll/win32/objsel/CMakeLists.txt b/dll/win32/objsel/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/objsel/CMakeLists.txt rename to dll/win32/objsel/CMakeLists.txt diff --git a/reactos/dll/win32/objsel/factory.c b/dll/win32/objsel/factory.c similarity index 100% rename from reactos/dll/win32/objsel/factory.c rename to dll/win32/objsel/factory.c diff --git a/reactos/dll/win32/objsel/objsel.c b/dll/win32/objsel/objsel.c similarity index 100% rename from reactos/dll/win32/objsel/objsel.c rename to dll/win32/objsel/objsel.c diff --git a/reactos/dll/win32/objsel/objsel.rc b/dll/win32/objsel/objsel.rc similarity index 100% rename from reactos/dll/win32/objsel/objsel.rc rename to dll/win32/objsel/objsel.rc diff --git a/reactos/dll/win32/objsel/objsel.rgs b/dll/win32/objsel/objsel.rgs similarity index 100% rename from reactos/dll/win32/objsel/objsel.rgs rename to dll/win32/objsel/objsel.rgs diff --git a/reactos/dll/win32/objsel/objsel.spec b/dll/win32/objsel/objsel.spec similarity index 100% rename from reactos/dll/win32/objsel/objsel.spec rename to dll/win32/objsel/objsel.spec diff --git a/reactos/dll/win32/objsel/objsel_classes.idl b/dll/win32/objsel/objsel_classes.idl similarity index 100% rename from reactos/dll/win32/objsel/objsel_classes.idl rename to dll/win32/objsel/objsel_classes.idl diff --git a/reactos/dll/win32/objsel/objsel_private.h b/dll/win32/objsel/objsel_private.h similarity index 100% rename from reactos/dll/win32/objsel/objsel_private.h rename to dll/win32/objsel/objsel_private.h diff --git a/reactos/dll/win32/odbc32/CMakeLists.txt b/dll/win32/odbc32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/odbc32/CMakeLists.txt rename to dll/win32/odbc32/CMakeLists.txt diff --git a/reactos/dll/win32/odbc32/README.txt b/dll/win32/odbc32/README.txt similarity index 100% rename from reactos/dll/win32/odbc32/README.txt rename to dll/win32/odbc32/README.txt diff --git a/reactos/dll/win32/odbc32/odbc32.rc b/dll/win32/odbc32/odbc32.rc similarity index 100% rename from reactos/dll/win32/odbc32/odbc32.rc rename to dll/win32/odbc32/odbc32.rc diff --git a/reactos/dll/win32/odbc32/odbc32.spec b/dll/win32/odbc32/odbc32.spec similarity index 100% rename from reactos/dll/win32/odbc32/odbc32.spec rename to dll/win32/odbc32/odbc32.spec diff --git a/reactos/dll/win32/odbc32/odbc32_ros.diff b/dll/win32/odbc32/odbc32_ros.diff similarity index 100% rename from reactos/dll/win32/odbc32/odbc32_ros.diff rename to dll/win32/odbc32/odbc32_ros.diff diff --git a/reactos/dll/win32/odbc32/proxyodbc.c b/dll/win32/odbc32/proxyodbc.c similarity index 100% rename from reactos/dll/win32/odbc32/proxyodbc.c rename to dll/win32/odbc32/proxyodbc.c diff --git a/reactos/dll/win32/odbc32/proxyodbc.h b/dll/win32/odbc32/proxyodbc.h similarity index 100% rename from reactos/dll/win32/odbc32/proxyodbc.h rename to dll/win32/odbc32/proxyodbc.h diff --git a/reactos/dll/win32/odbccp32/CMakeLists.txt b/dll/win32/odbccp32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/odbccp32/CMakeLists.txt rename to dll/win32/odbccp32/CMakeLists.txt diff --git a/reactos/dll/win32/odbccp32/odbccp32.c b/dll/win32/odbccp32/odbccp32.c similarity index 100% rename from reactos/dll/win32/odbccp32/odbccp32.c rename to dll/win32/odbccp32/odbccp32.c diff --git a/reactos/dll/win32/odbccp32/odbccp32.spec b/dll/win32/odbccp32/odbccp32.spec similarity index 100% rename from reactos/dll/win32/odbccp32/odbccp32.spec rename to dll/win32/odbccp32/odbccp32.spec diff --git a/reactos/dll/win32/ole32/CMakeLists.txt b/dll/win32/ole32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/ole32/CMakeLists.txt rename to dll/win32/ole32/CMakeLists.txt diff --git a/reactos/dll/win32/ole32/antimoniker.c b/dll/win32/ole32/antimoniker.c similarity index 100% rename from reactos/dll/win32/ole32/antimoniker.c rename to dll/win32/ole32/antimoniker.c diff --git a/reactos/dll/win32/ole32/bindctx.c b/dll/win32/ole32/bindctx.c similarity index 100% rename from reactos/dll/win32/ole32/bindctx.c rename to dll/win32/ole32/bindctx.c diff --git a/reactos/dll/win32/ole32/classmoniker.c b/dll/win32/ole32/classmoniker.c similarity index 100% rename from reactos/dll/win32/ole32/classmoniker.c rename to dll/win32/ole32/classmoniker.c diff --git a/reactos/dll/win32/ole32/clipboard.c b/dll/win32/ole32/clipboard.c similarity index 100% rename from reactos/dll/win32/ole32/clipboard.c rename to dll/win32/ole32/clipboard.c diff --git a/reactos/dll/win32/ole32/comcat.c b/dll/win32/ole32/comcat.c similarity index 100% rename from reactos/dll/win32/ole32/comcat.c rename to dll/win32/ole32/comcat.c diff --git a/reactos/dll/win32/ole32/compobj.c b/dll/win32/ole32/compobj.c similarity index 100% rename from reactos/dll/win32/ole32/compobj.c rename to dll/win32/ole32/compobj.c diff --git a/reactos/dll/win32/ole32/compobj_private.h b/dll/win32/ole32/compobj_private.h similarity index 100% rename from reactos/dll/win32/ole32/compobj_private.h rename to dll/win32/ole32/compobj_private.h diff --git a/reactos/dll/win32/ole32/compositemoniker.c b/dll/win32/ole32/compositemoniker.c similarity index 100% rename from reactos/dll/win32/ole32/compositemoniker.c rename to dll/win32/ole32/compositemoniker.c diff --git a/reactos/dll/win32/ole32/datacache.c b/dll/win32/ole32/datacache.c similarity index 100% rename from reactos/dll/win32/ole32/datacache.c rename to dll/win32/ole32/datacache.c diff --git a/reactos/dll/win32/ole32/dcom.idl b/dll/win32/ole32/dcom.idl similarity index 100% rename from reactos/dll/win32/ole32/dcom.idl rename to dll/win32/ole32/dcom.idl diff --git a/reactos/dll/win32/ole32/defaulthandler.c b/dll/win32/ole32/defaulthandler.c similarity index 100% rename from reactos/dll/win32/ole32/defaulthandler.c rename to dll/win32/ole32/defaulthandler.c diff --git a/reactos/dll/win32/ole32/dictionary.c b/dll/win32/ole32/dictionary.c similarity index 100% rename from reactos/dll/win32/ole32/dictionary.c rename to dll/win32/ole32/dictionary.c diff --git a/reactos/dll/win32/ole32/dictionary.h b/dll/win32/ole32/dictionary.h similarity index 100% rename from reactos/dll/win32/ole32/dictionary.h rename to dll/win32/ole32/dictionary.h diff --git a/reactos/dll/win32/ole32/drag_copy.cur b/dll/win32/ole32/drag_copy.cur similarity index 100% rename from reactos/dll/win32/ole32/drag_copy.cur rename to dll/win32/ole32/drag_copy.cur diff --git a/reactos/dll/win32/ole32/drag_link.cur b/dll/win32/ole32/drag_link.cur similarity index 100% rename from reactos/dll/win32/ole32/drag_link.cur rename to dll/win32/ole32/drag_link.cur diff --git a/reactos/dll/win32/ole32/drag_move.cur b/dll/win32/ole32/drag_move.cur similarity index 100% rename from reactos/dll/win32/ole32/drag_move.cur rename to dll/win32/ole32/drag_move.cur diff --git a/reactos/dll/win32/ole32/enumx.c b/dll/win32/ole32/enumx.c similarity index 100% rename from reactos/dll/win32/ole32/enumx.c rename to dll/win32/ole32/enumx.c diff --git a/reactos/dll/win32/ole32/enumx.h b/dll/win32/ole32/enumx.h similarity index 100% rename from reactos/dll/win32/ole32/enumx.h rename to dll/win32/ole32/enumx.h diff --git a/reactos/dll/win32/ole32/errorinfo.c b/dll/win32/ole32/errorinfo.c similarity index 100% rename from reactos/dll/win32/ole32/errorinfo.c rename to dll/win32/ole32/errorinfo.c diff --git a/reactos/dll/win32/ole32/filelockbytes.c b/dll/win32/ole32/filelockbytes.c similarity index 100% rename from reactos/dll/win32/ole32/filelockbytes.c rename to dll/win32/ole32/filelockbytes.c diff --git a/reactos/dll/win32/ole32/filemoniker.c b/dll/win32/ole32/filemoniker.c similarity index 100% rename from reactos/dll/win32/ole32/filemoniker.c rename to dll/win32/ole32/filemoniker.c diff --git a/reactos/dll/win32/ole32/ftmarshal.c b/dll/win32/ole32/ftmarshal.c similarity index 100% rename from reactos/dll/win32/ole32/ftmarshal.c rename to dll/win32/ole32/ftmarshal.c diff --git a/reactos/dll/win32/ole32/git.c b/dll/win32/ole32/git.c similarity index 100% rename from reactos/dll/win32/ole32/git.c rename to dll/win32/ole32/git.c diff --git a/reactos/dll/win32/ole32/hglobalstream.c b/dll/win32/ole32/hglobalstream.c similarity index 100% rename from reactos/dll/win32/ole32/hglobalstream.c rename to dll/win32/ole32/hglobalstream.c diff --git a/reactos/dll/win32/ole32/ifs.c b/dll/win32/ole32/ifs.c similarity index 100% rename from reactos/dll/win32/ole32/ifs.c rename to dll/win32/ole32/ifs.c diff --git a/reactos/dll/win32/ole32/irot.idl b/dll/win32/ole32/irot.idl similarity index 100% rename from reactos/dll/win32/ole32/irot.idl rename to dll/win32/ole32/irot.idl diff --git a/reactos/dll/win32/ole32/itemmoniker.c b/dll/win32/ole32/itemmoniker.c similarity index 100% rename from reactos/dll/win32/ole32/itemmoniker.c rename to dll/win32/ole32/itemmoniker.c diff --git a/reactos/dll/win32/ole32/marshal.c b/dll/win32/ole32/marshal.c similarity index 100% rename from reactos/dll/win32/ole32/marshal.c rename to dll/win32/ole32/marshal.c diff --git a/reactos/dll/win32/ole32/memlockbytes.c b/dll/win32/ole32/memlockbytes.c similarity index 100% rename from reactos/dll/win32/ole32/memlockbytes.c rename to dll/win32/ole32/memlockbytes.c diff --git a/reactos/dll/win32/ole32/moniker.c b/dll/win32/ole32/moniker.c similarity index 100% rename from reactos/dll/win32/ole32/moniker.c rename to dll/win32/ole32/moniker.c diff --git a/reactos/dll/win32/ole32/moniker.h b/dll/win32/ole32/moniker.h similarity index 100% rename from reactos/dll/win32/ole32/moniker.h rename to dll/win32/ole32/moniker.h diff --git a/reactos/dll/win32/ole32/nodrop.cur b/dll/win32/ole32/nodrop.cur similarity index 100% rename from reactos/dll/win32/ole32/nodrop.cur rename to dll/win32/ole32/nodrop.cur diff --git a/reactos/dll/win32/ole32/ole2.c b/dll/win32/ole32/ole2.c similarity index 100% rename from reactos/dll/win32/ole32/ole2.c rename to dll/win32/ole32/ole2.c diff --git a/reactos/dll/win32/ole32/ole2impl.c b/dll/win32/ole32/ole2impl.c similarity index 100% rename from reactos/dll/win32/ole32/ole2impl.c rename to dll/win32/ole32/ole2impl.c diff --git a/reactos/dll/win32/ole32/ole2stubs.c b/dll/win32/ole32/ole2stubs.c similarity index 100% rename from reactos/dll/win32/ole32/ole2stubs.c rename to dll/win32/ole32/ole2stubs.c diff --git a/reactos/dll/win32/ole32/ole32.rgs b/dll/win32/ole32/ole32.rgs similarity index 100% rename from reactos/dll/win32/ole32/ole32.rgs rename to dll/win32/ole32/ole32.rgs diff --git a/reactos/dll/win32/ole32/ole32.spec b/dll/win32/ole32/ole32.spec similarity index 100% rename from reactos/dll/win32/ole32/ole32.spec rename to dll/win32/ole32/ole32.spec diff --git a/reactos/dll/win32/ole32/ole32_main.c b/dll/win32/ole32/ole32_main.c similarity index 100% rename from reactos/dll/win32/ole32/ole32_main.c rename to dll/win32/ole32/ole32_main.c diff --git a/reactos/dll/win32/ole32/ole32_objidl.idl b/dll/win32/ole32/ole32_objidl.idl similarity index 100% rename from reactos/dll/win32/ole32/ole32_objidl.idl rename to dll/win32/ole32/ole32_objidl.idl diff --git a/reactos/dll/win32/ole32/ole32_oleidl.idl b/dll/win32/ole32/ole32_oleidl.idl similarity index 100% rename from reactos/dll/win32/ole32/ole32_oleidl.idl rename to dll/win32/ole32/ole32_oleidl.idl diff --git a/reactos/dll/win32/ole32/ole32_unknwn.idl b/dll/win32/ole32/ole32_unknwn.idl similarity index 100% rename from reactos/dll/win32/ole32/ole32_unknwn.idl rename to dll/win32/ole32/ole32_unknwn.idl diff --git a/reactos/dll/win32/ole32/ole32res.rc b/dll/win32/ole32/ole32res.rc similarity index 100% rename from reactos/dll/win32/ole32/ole32res.rc rename to dll/win32/ole32/ole32res.rc diff --git a/reactos/dll/win32/ole32/oleobj.c b/dll/win32/ole32/oleobj.c similarity index 100% rename from reactos/dll/win32/ole32/oleobj.c rename to dll/win32/ole32/oleobj.c diff --git a/reactos/dll/win32/ole32/oleproxy.c b/dll/win32/ole32/oleproxy.c similarity index 100% rename from reactos/dll/win32/ole32/oleproxy.c rename to dll/win32/ole32/oleproxy.c diff --git a/reactos/dll/win32/ole32/olestd.h b/dll/win32/ole32/olestd.h similarity index 100% rename from reactos/dll/win32/ole32/olestd.h rename to dll/win32/ole32/olestd.h diff --git a/reactos/dll/win32/ole32/pointermoniker.c b/dll/win32/ole32/pointermoniker.c similarity index 100% rename from reactos/dll/win32/ole32/pointermoniker.c rename to dll/win32/ole32/pointermoniker.c diff --git a/reactos/dll/win32/ole32/rpc.c b/dll/win32/ole32/rpc.c similarity index 100% rename from reactos/dll/win32/ole32/rpc.c rename to dll/win32/ole32/rpc.c diff --git a/reactos/dll/win32/ole32/stg_prop.c b/dll/win32/ole32/stg_prop.c similarity index 100% rename from reactos/dll/win32/ole32/stg_prop.c rename to dll/win32/ole32/stg_prop.c diff --git a/reactos/dll/win32/ole32/stg_stream.c b/dll/win32/ole32/stg_stream.c similarity index 100% rename from reactos/dll/win32/ole32/stg_stream.c rename to dll/win32/ole32/stg_stream.c diff --git a/reactos/dll/win32/ole32/storage32.c b/dll/win32/ole32/storage32.c similarity index 100% rename from reactos/dll/win32/ole32/storage32.c rename to dll/win32/ole32/storage32.c diff --git a/reactos/dll/win32/ole32/storage32.h b/dll/win32/ole32/storage32.h similarity index 100% rename from reactos/dll/win32/ole32/storage32.h rename to dll/win32/ole32/storage32.h diff --git a/reactos/dll/win32/ole32/stubmanager.c b/dll/win32/ole32/stubmanager.c similarity index 100% rename from reactos/dll/win32/ole32/stubmanager.c rename to dll/win32/ole32/stubmanager.c diff --git a/reactos/dll/win32/ole32/usrmarshal.c b/dll/win32/ole32/usrmarshal.c similarity index 100% rename from reactos/dll/win32/ole32/usrmarshal.c rename to dll/win32/ole32/usrmarshal.c diff --git a/reactos/dll/win32/oleacc/CMakeLists.txt b/dll/win32/oleacc/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/oleacc/CMakeLists.txt rename to dll/win32/oleacc/CMakeLists.txt diff --git a/reactos/dll/win32/oleacc/main.c b/dll/win32/oleacc/main.c similarity index 100% rename from reactos/dll/win32/oleacc/main.c rename to dll/win32/oleacc/main.c diff --git a/reactos/dll/win32/oleacc/oleacc.rc b/dll/win32/oleacc/oleacc.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc.rc rename to dll/win32/oleacc/oleacc.rc diff --git a/reactos/dll/win32/oleacc/oleacc.spec b/dll/win32/oleacc/oleacc.spec similarity index 100% rename from reactos/dll/win32/oleacc/oleacc.spec rename to dll/win32/oleacc/oleacc.spec diff --git a/reactos/dll/win32/oleacc/oleacc_De.rc b/dll/win32/oleacc/oleacc_De.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_De.rc rename to dll/win32/oleacc/oleacc_De.rc diff --git a/reactos/dll/win32/oleacc/oleacc_En.rc b/dll/win32/oleacc/oleacc_En.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_En.rc rename to dll/win32/oleacc/oleacc_En.rc diff --git a/reactos/dll/win32/oleacc/oleacc_Fr.rc b/dll/win32/oleacc/oleacc_Fr.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_Fr.rc rename to dll/win32/oleacc/oleacc_Fr.rc diff --git a/reactos/dll/win32/oleacc/oleacc_Hu.rc b/dll/win32/oleacc/oleacc_Hu.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_Hu.rc rename to dll/win32/oleacc/oleacc_Hu.rc diff --git a/reactos/dll/win32/oleacc/oleacc_It.rc b/dll/win32/oleacc/oleacc_It.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_It.rc rename to dll/win32/oleacc/oleacc_It.rc diff --git a/reactos/dll/win32/oleacc/oleacc_Ko.rc b/dll/win32/oleacc/oleacc_Ko.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_Ko.rc rename to dll/win32/oleacc/oleacc_Ko.rc diff --git a/reactos/dll/win32/oleacc/oleacc_Lt.rc b/dll/win32/oleacc/oleacc_Lt.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_Lt.rc rename to dll/win32/oleacc/oleacc_Lt.rc diff --git a/reactos/dll/win32/oleacc/oleacc_Nl.rc b/dll/win32/oleacc/oleacc_Nl.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_Nl.rc rename to dll/win32/oleacc/oleacc_Nl.rc diff --git a/reactos/dll/win32/oleacc/oleacc_No.rc b/dll/win32/oleacc/oleacc_No.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_No.rc rename to dll/win32/oleacc/oleacc_No.rc diff --git a/reactos/dll/win32/oleacc/oleacc_Pl.rc b/dll/win32/oleacc/oleacc_Pl.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_Pl.rc rename to dll/win32/oleacc/oleacc_Pl.rc diff --git a/reactos/dll/win32/oleacc/oleacc_Pt.rc b/dll/win32/oleacc/oleacc_Pt.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_Pt.rc rename to dll/win32/oleacc/oleacc_Pt.rc diff --git a/reactos/dll/win32/oleacc/oleacc_Ro.rc b/dll/win32/oleacc/oleacc_Ro.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_Ro.rc rename to dll/win32/oleacc/oleacc_Ro.rc diff --git a/reactos/dll/win32/oleacc/oleacc_Si.rc b/dll/win32/oleacc/oleacc_Si.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_Si.rc rename to dll/win32/oleacc/oleacc_Si.rc diff --git a/reactos/dll/win32/oleacc/oleacc_Uk.rc b/dll/win32/oleacc/oleacc_Uk.rc similarity index 100% rename from reactos/dll/win32/oleacc/oleacc_Uk.rc rename to dll/win32/oleacc/oleacc_Uk.rc diff --git a/reactos/dll/win32/oleaut32/CMakeLists.txt b/dll/win32/oleaut32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/oleaut32/CMakeLists.txt rename to dll/win32/oleaut32/CMakeLists.txt diff --git a/reactos/dll/win32/oleaut32/connpt.c b/dll/win32/oleaut32/connpt.c similarity index 100% rename from reactos/dll/win32/oleaut32/connpt.c rename to dll/win32/oleaut32/connpt.c diff --git a/reactos/dll/win32/oleaut32/connpt.h b/dll/win32/oleaut32/connpt.h similarity index 100% rename from reactos/dll/win32/oleaut32/connpt.h rename to dll/win32/oleaut32/connpt.h diff --git a/reactos/dll/win32/oleaut32/dispatch.c b/dll/win32/oleaut32/dispatch.c similarity index 100% rename from reactos/dll/win32/oleaut32/dispatch.c rename to dll/win32/oleaut32/dispatch.c diff --git a/reactos/dll/win32/oleaut32/hash.c b/dll/win32/oleaut32/hash.c similarity index 100% rename from reactos/dll/win32/oleaut32/hash.c rename to dll/win32/oleaut32/hash.c diff --git a/reactos/dll/win32/oleaut32/msvc.S b/dll/win32/oleaut32/msvc.S similarity index 100% rename from reactos/dll/win32/oleaut32/msvc.S rename to dll/win32/oleaut32/msvc.S diff --git a/reactos/dll/win32/oleaut32/oleaut.c b/dll/win32/oleaut32/oleaut.c similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut.c rename to dll/win32/oleaut32/oleaut.c diff --git a/reactos/dll/win32/oleaut32/oleaut32.rc b/dll/win32/oleaut32/oleaut32.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32.rc rename to dll/win32/oleaut32/oleaut32.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32.spec b/dll/win32/oleaut32/oleaut32.spec similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32.spec rename to dll/win32/oleaut32/oleaut32.spec diff --git a/reactos/dll/win32/oleaut32/oleaut32_Bg.rc b/dll/win32/oleaut32/oleaut32_Bg.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Bg.rc rename to dll/win32/oleaut32/oleaut32_Bg.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Cy.rc b/dll/win32/oleaut32/oleaut32_Cy.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Cy.rc rename to dll/win32/oleaut32/oleaut32_Cy.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Cz.rc b/dll/win32/oleaut32/oleaut32_Cz.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Cz.rc rename to dll/win32/oleaut32/oleaut32_Cz.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Da.rc b/dll/win32/oleaut32/oleaut32_Da.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Da.rc rename to dll/win32/oleaut32/oleaut32_Da.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_De.rc b/dll/win32/oleaut32/oleaut32_De.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_De.rc rename to dll/win32/oleaut32/oleaut32_De.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_El.rc b/dll/win32/oleaut32/oleaut32_El.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_El.rc rename to dll/win32/oleaut32/oleaut32_El.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_En.rc b/dll/win32/oleaut32/oleaut32_En.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_En.rc rename to dll/win32/oleaut32/oleaut32_En.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Es.rc b/dll/win32/oleaut32/oleaut32_Es.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Es.rc rename to dll/win32/oleaut32/oleaut32_Es.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Fr.rc b/dll/win32/oleaut32/oleaut32_Fr.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Fr.rc rename to dll/win32/oleaut32/oleaut32_Fr.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Hu.rc b/dll/win32/oleaut32/oleaut32_Hu.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Hu.rc rename to dll/win32/oleaut32/oleaut32_Hu.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_It.rc b/dll/win32/oleaut32/oleaut32_It.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_It.rc rename to dll/win32/oleaut32/oleaut32_It.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Ja.rc b/dll/win32/oleaut32/oleaut32_Ja.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Ja.rc rename to dll/win32/oleaut32/oleaut32_Ja.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Ko.rc b/dll/win32/oleaut32/oleaut32_Ko.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Ko.rc rename to dll/win32/oleaut32/oleaut32_Ko.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Lt.rc b/dll/win32/oleaut32/oleaut32_Lt.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Lt.rc rename to dll/win32/oleaut32/oleaut32_Lt.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Nl.rc b/dll/win32/oleaut32/oleaut32_Nl.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Nl.rc rename to dll/win32/oleaut32/oleaut32_Nl.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_No.rc b/dll/win32/oleaut32/oleaut32_No.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_No.rc rename to dll/win32/oleaut32/oleaut32_No.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Pl.rc b/dll/win32/oleaut32/oleaut32_Pl.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Pl.rc rename to dll/win32/oleaut32/oleaut32_Pl.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Pt.rc b/dll/win32/oleaut32/oleaut32_Pt.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Pt.rc rename to dll/win32/oleaut32/oleaut32_Pt.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Ro.rc b/dll/win32/oleaut32/oleaut32_Ro.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Ro.rc rename to dll/win32/oleaut32/oleaut32_Ro.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Ru.rc b/dll/win32/oleaut32/oleaut32_Ru.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Ru.rc rename to dll/win32/oleaut32/oleaut32_Ru.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Si.rc b/dll/win32/oleaut32/oleaut32_Si.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Si.rc rename to dll/win32/oleaut32/oleaut32_Si.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Sv.rc b/dll/win32/oleaut32/oleaut32_Sv.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Sv.rc rename to dll/win32/oleaut32/oleaut32_Sv.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Th.rc b/dll/win32/oleaut32/oleaut32_Th.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Th.rc rename to dll/win32/oleaut32/oleaut32_Th.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Tr.rc b/dll/win32/oleaut32/oleaut32_Tr.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Tr.rc rename to dll/win32/oleaut32/oleaut32_Tr.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Uk.rc b/dll/win32/oleaut32/oleaut32_Uk.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Uk.rc rename to dll/win32/oleaut32/oleaut32_Uk.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_Zh.rc b/dll/win32/oleaut32/oleaut32_Zh.rc similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_Zh.rc rename to dll/win32/oleaut32/oleaut32_Zh.rc diff --git a/reactos/dll/win32/oleaut32/oleaut32_oaidl.idl b/dll/win32/oleaut32/oleaut32_oaidl.idl similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_oaidl.idl rename to dll/win32/oleaut32/oleaut32_oaidl.idl diff --git a/reactos/dll/win32/oleaut32/oleaut32_ocidl.idl b/dll/win32/oleaut32/oleaut32_ocidl.idl similarity index 100% rename from reactos/dll/win32/oleaut32/oleaut32_ocidl.idl rename to dll/win32/oleaut32/oleaut32_ocidl.idl diff --git a/reactos/dll/win32/oleaut32/olefont.c b/dll/win32/oleaut32/olefont.c similarity index 100% rename from reactos/dll/win32/oleaut32/olefont.c rename to dll/win32/oleaut32/olefont.c diff --git a/reactos/dll/win32/oleaut32/olepicture.c b/dll/win32/oleaut32/olepicture.c similarity index 100% rename from reactos/dll/win32/oleaut32/olepicture.c rename to dll/win32/oleaut32/olepicture.c diff --git a/reactos/dll/win32/oleaut32/recinfo.c b/dll/win32/oleaut32/recinfo.c similarity index 100% rename from reactos/dll/win32/oleaut32/recinfo.c rename to dll/win32/oleaut32/recinfo.c diff --git a/reactos/dll/win32/oleaut32/regsvr.c b/dll/win32/oleaut32/regsvr.c similarity index 100% rename from reactos/dll/win32/oleaut32/regsvr.c rename to dll/win32/oleaut32/regsvr.c diff --git a/reactos/dll/win32/oleaut32/resource.h b/dll/win32/oleaut32/resource.h similarity index 100% rename from reactos/dll/win32/oleaut32/resource.h rename to dll/win32/oleaut32/resource.h diff --git a/reactos/dll/win32/oleaut32/safearray.c b/dll/win32/oleaut32/safearray.c similarity index 100% rename from reactos/dll/win32/oleaut32/safearray.c rename to dll/win32/oleaut32/safearray.c diff --git a/reactos/dll/win32/oleaut32/stubs.c b/dll/win32/oleaut32/stubs.c similarity index 100% rename from reactos/dll/win32/oleaut32/stubs.c rename to dll/win32/oleaut32/stubs.c diff --git a/reactos/dll/win32/oleaut32/tmarshal.c b/dll/win32/oleaut32/tmarshal.c similarity index 100% rename from reactos/dll/win32/oleaut32/tmarshal.c rename to dll/win32/oleaut32/tmarshal.c diff --git a/reactos/dll/win32/oleaut32/typelib.c b/dll/win32/oleaut32/typelib.c similarity index 100% rename from reactos/dll/win32/oleaut32/typelib.c rename to dll/win32/oleaut32/typelib.c diff --git a/reactos/dll/win32/oleaut32/typelib.h b/dll/win32/oleaut32/typelib.h similarity index 100% rename from reactos/dll/win32/oleaut32/typelib.h rename to dll/win32/oleaut32/typelib.h diff --git a/reactos/dll/win32/oleaut32/typelib2.c b/dll/win32/oleaut32/typelib2.c similarity index 100% rename from reactos/dll/win32/oleaut32/typelib2.c rename to dll/win32/oleaut32/typelib2.c diff --git a/reactos/dll/win32/oleaut32/ungif.c b/dll/win32/oleaut32/ungif.c similarity index 100% rename from reactos/dll/win32/oleaut32/ungif.c rename to dll/win32/oleaut32/ungif.c diff --git a/reactos/dll/win32/oleaut32/ungif.h b/dll/win32/oleaut32/ungif.h similarity index 100% rename from reactos/dll/win32/oleaut32/ungif.h rename to dll/win32/oleaut32/ungif.h diff --git a/reactos/dll/win32/oleaut32/usrmarshal.c b/dll/win32/oleaut32/usrmarshal.c similarity index 100% rename from reactos/dll/win32/oleaut32/usrmarshal.c rename to dll/win32/oleaut32/usrmarshal.c diff --git a/reactos/dll/win32/oleaut32/varformat.c b/dll/win32/oleaut32/varformat.c similarity index 100% rename from reactos/dll/win32/oleaut32/varformat.c rename to dll/win32/oleaut32/varformat.c diff --git a/reactos/dll/win32/oleaut32/variant.c b/dll/win32/oleaut32/variant.c similarity index 100% rename from reactos/dll/win32/oleaut32/variant.c rename to dll/win32/oleaut32/variant.c diff --git a/reactos/dll/win32/oleaut32/variant.h b/dll/win32/oleaut32/variant.h similarity index 100% rename from reactos/dll/win32/oleaut32/variant.h rename to dll/win32/oleaut32/variant.h diff --git a/reactos/dll/win32/oleaut32/vartype.c b/dll/win32/oleaut32/vartype.c similarity index 100% rename from reactos/dll/win32/oleaut32/vartype.c rename to dll/win32/oleaut32/vartype.c diff --git a/reactos/dll/win32/oleaut32/version.rc b/dll/win32/oleaut32/version.rc similarity index 100% rename from reactos/dll/win32/oleaut32/version.rc rename to dll/win32/oleaut32/version.rc diff --git a/reactos/dll/win32/olecli32/CMakeLists.txt b/dll/win32/olecli32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/olecli32/CMakeLists.txt rename to dll/win32/olecli32/CMakeLists.txt diff --git a/reactos/dll/win32/olecli32/olecli.h b/dll/win32/olecli32/olecli.h similarity index 100% rename from reactos/dll/win32/olecli32/olecli.h rename to dll/win32/olecli32/olecli.h diff --git a/reactos/dll/win32/olecli32/olecli32.spec b/dll/win32/olecli32/olecli32.spec similarity index 100% rename from reactos/dll/win32/olecli32/olecli32.spec rename to dll/win32/olecli32/olecli32.spec diff --git a/reactos/dll/win32/olecli32/olecli_main.c b/dll/win32/olecli32/olecli_main.c similarity index 100% rename from reactos/dll/win32/olecli32/olecli_main.c rename to dll/win32/olecli32/olecli_main.c diff --git a/reactos/dll/win32/oledlg/CMakeLists.txt b/dll/win32/oledlg/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/oledlg/CMakeLists.txt rename to dll/win32/oledlg/CMakeLists.txt diff --git a/reactos/dll/win32/oledlg/insobjdlg.c b/dll/win32/oledlg/insobjdlg.c similarity index 100% rename from reactos/dll/win32/oledlg/insobjdlg.c rename to dll/win32/oledlg/insobjdlg.c diff --git a/reactos/dll/win32/oledlg/oledlg.spec b/dll/win32/oledlg/oledlg.spec similarity index 100% rename from reactos/dll/win32/oledlg/oledlg.spec rename to dll/win32/oledlg/oledlg.spec diff --git a/reactos/dll/win32/oledlg/oledlg_Cs.rc b/dll/win32/oledlg/oledlg_Cs.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Cs.rc rename to dll/win32/oledlg/oledlg_Cs.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Da.rc b/dll/win32/oledlg/oledlg_Da.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Da.rc rename to dll/win32/oledlg/oledlg_Da.rc diff --git a/reactos/dll/win32/oledlg/oledlg_De.rc b/dll/win32/oledlg/oledlg_De.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_De.rc rename to dll/win32/oledlg/oledlg_De.rc diff --git a/reactos/dll/win32/oledlg/oledlg_En.rc b/dll/win32/oledlg/oledlg_En.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_En.rc rename to dll/win32/oledlg/oledlg_En.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Es.rc b/dll/win32/oledlg/oledlg_Es.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Es.rc rename to dll/win32/oledlg/oledlg_Es.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Fr.rc b/dll/win32/oledlg/oledlg_Fr.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Fr.rc rename to dll/win32/oledlg/oledlg_Fr.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Hu.rc b/dll/win32/oledlg/oledlg_Hu.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Hu.rc rename to dll/win32/oledlg/oledlg_Hu.rc diff --git a/reactos/dll/win32/oledlg/oledlg_It.rc b/dll/win32/oledlg/oledlg_It.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_It.rc rename to dll/win32/oledlg/oledlg_It.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Ja.rc b/dll/win32/oledlg/oledlg_Ja.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Ja.rc rename to dll/win32/oledlg/oledlg_Ja.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Ko.rc b/dll/win32/oledlg/oledlg_Ko.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Ko.rc rename to dll/win32/oledlg/oledlg_Ko.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Lt.rc b/dll/win32/oledlg/oledlg_Lt.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Lt.rc rename to dll/win32/oledlg/oledlg_Lt.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Nl.rc b/dll/win32/oledlg/oledlg_Nl.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Nl.rc rename to dll/win32/oledlg/oledlg_Nl.rc diff --git a/reactos/dll/win32/oledlg/oledlg_No.rc b/dll/win32/oledlg/oledlg_No.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_No.rc rename to dll/win32/oledlg/oledlg_No.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Pl.rc b/dll/win32/oledlg/oledlg_Pl.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Pl.rc rename to dll/win32/oledlg/oledlg_Pl.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Pt.rc b/dll/win32/oledlg/oledlg_Pt.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Pt.rc rename to dll/win32/oledlg/oledlg_Pt.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Ro.rc b/dll/win32/oledlg/oledlg_Ro.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Ro.rc rename to dll/win32/oledlg/oledlg_Ro.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Ru.rc b/dll/win32/oledlg/oledlg_Ru.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Ru.rc rename to dll/win32/oledlg/oledlg_Ru.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Si.rc b/dll/win32/oledlg/oledlg_Si.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Si.rc rename to dll/win32/oledlg/oledlg_Si.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Sv.rc b/dll/win32/oledlg/oledlg_Sv.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Sv.rc rename to dll/win32/oledlg/oledlg_Sv.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Tr.rc b/dll/win32/oledlg/oledlg_Tr.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Tr.rc rename to dll/win32/oledlg/oledlg_Tr.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Uk.rc b/dll/win32/oledlg/oledlg_Uk.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Uk.rc rename to dll/win32/oledlg/oledlg_Uk.rc diff --git a/reactos/dll/win32/oledlg/oledlg_Zh.rc b/dll/win32/oledlg/oledlg_Zh.rc similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_Zh.rc rename to dll/win32/oledlg/oledlg_Zh.rc diff --git a/reactos/dll/win32/oledlg/oledlg_main.c b/dll/win32/oledlg/oledlg_main.c similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_main.c rename to dll/win32/oledlg/oledlg_main.c diff --git a/reactos/dll/win32/oledlg/oledlg_private.h b/dll/win32/oledlg/oledlg_private.h similarity index 100% rename from reactos/dll/win32/oledlg/oledlg_private.h rename to dll/win32/oledlg/oledlg_private.h diff --git a/reactos/dll/win32/oledlg/pastespl.c b/dll/win32/oledlg/pastespl.c similarity index 100% rename from reactos/dll/win32/oledlg/pastespl.c rename to dll/win32/oledlg/pastespl.c diff --git a/reactos/dll/win32/oledlg/resource.h b/dll/win32/oledlg/resource.h similarity index 100% rename from reactos/dll/win32/oledlg/resource.h rename to dll/win32/oledlg/resource.h diff --git a/reactos/dll/win32/oledlg/rsrc.rc b/dll/win32/oledlg/rsrc.rc similarity index 100% rename from reactos/dll/win32/oledlg/rsrc.rc rename to dll/win32/oledlg/rsrc.rc diff --git a/reactos/dll/win32/olepro32/CMakeLists.txt b/dll/win32/olepro32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/olepro32/CMakeLists.txt rename to dll/win32/olepro32/CMakeLists.txt diff --git a/reactos/dll/win32/olepro32/README b/dll/win32/olepro32/README similarity index 100% rename from reactos/dll/win32/olepro32/README rename to dll/win32/olepro32/README diff --git a/reactos/dll/win32/olepro32/olepro32.spec b/dll/win32/olepro32/olepro32.spec similarity index 100% rename from reactos/dll/win32/olepro32/olepro32.spec rename to dll/win32/olepro32/olepro32.spec diff --git a/reactos/dll/win32/olepro32/olepro32stubs.c b/dll/win32/olepro32/olepro32stubs.c similarity index 100% rename from reactos/dll/win32/olepro32/olepro32stubs.c rename to dll/win32/olepro32/olepro32stubs.c diff --git a/reactos/dll/win32/olepro32/version.rc b/dll/win32/olepro32/version.rc similarity index 100% rename from reactos/dll/win32/olepro32/version.rc rename to dll/win32/olepro32/version.rc diff --git a/reactos/dll/win32/olesvr32/CMakeLists.txt b/dll/win32/olesvr32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/olesvr32/CMakeLists.txt rename to dll/win32/olesvr32/CMakeLists.txt diff --git a/reactos/dll/win32/olesvr32/olesvr32.spec b/dll/win32/olesvr32/olesvr32.spec similarity index 100% rename from reactos/dll/win32/olesvr32/olesvr32.spec rename to dll/win32/olesvr32/olesvr32.spec diff --git a/reactos/dll/win32/olesvr32/olesvr_main.c b/dll/win32/olesvr32/olesvr_main.c similarity index 100% rename from reactos/dll/win32/olesvr32/olesvr_main.c rename to dll/win32/olesvr32/olesvr_main.c diff --git a/reactos/dll/win32/olethk32/CMakeLists.txt b/dll/win32/olethk32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/olethk32/CMakeLists.txt rename to dll/win32/olethk32/CMakeLists.txt diff --git a/reactos/dll/win32/olethk32/main.c b/dll/win32/olethk32/main.c similarity index 100% rename from reactos/dll/win32/olethk32/main.c rename to dll/win32/olethk32/main.c diff --git a/reactos/dll/win32/olethk32/olethk32.spec b/dll/win32/olethk32/olethk32.spec similarity index 100% rename from reactos/dll/win32/olethk32/olethk32.spec rename to dll/win32/olethk32/olethk32.spec diff --git a/reactos/dll/win32/olethk32/version.rc b/dll/win32/olethk32/version.rc similarity index 100% rename from reactos/dll/win32/olethk32/version.rc rename to dll/win32/olethk32/version.rc diff --git a/reactos/dll/win32/pdh/CMakeLists.txt b/dll/win32/pdh/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/pdh/CMakeLists.txt rename to dll/win32/pdh/CMakeLists.txt diff --git a/reactos/dll/win32/pdh/pdh.spec b/dll/win32/pdh/pdh.spec similarity index 100% rename from reactos/dll/win32/pdh/pdh.spec rename to dll/win32/pdh/pdh.spec diff --git a/reactos/dll/win32/pdh/pdh_main.c b/dll/win32/pdh/pdh_main.c similarity index 100% rename from reactos/dll/win32/pdh/pdh_main.c rename to dll/win32/pdh/pdh_main.c diff --git a/reactos/dll/win32/pidgen/CMakeLists.txt b/dll/win32/pidgen/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/pidgen/CMakeLists.txt rename to dll/win32/pidgen/CMakeLists.txt diff --git a/reactos/dll/win32/pidgen/bink.bin b/dll/win32/pidgen/bink.bin similarity index 100% rename from reactos/dll/win32/pidgen/bink.bin rename to dll/win32/pidgen/bink.bin diff --git a/reactos/dll/win32/pidgen/main.c b/dll/win32/pidgen/main.c similarity index 100% rename from reactos/dll/win32/pidgen/main.c rename to dll/win32/pidgen/main.c diff --git a/reactos/dll/win32/pidgen/pidgen.spec b/dll/win32/pidgen/pidgen.spec similarity index 100% rename from reactos/dll/win32/pidgen/pidgen.spec rename to dll/win32/pidgen/pidgen.spec diff --git a/reactos/dll/win32/pidgen/rsrc.rc b/dll/win32/pidgen/rsrc.rc similarity index 100% rename from reactos/dll/win32/pidgen/rsrc.rc rename to dll/win32/pidgen/rsrc.rc diff --git a/reactos/dll/win32/powrprof/CMakeLists.txt b/dll/win32/powrprof/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/powrprof/CMakeLists.txt rename to dll/win32/powrprof/CMakeLists.txt diff --git a/reactos/dll/win32/powrprof/powrprof.c b/dll/win32/powrprof/powrprof.c similarity index 100% rename from reactos/dll/win32/powrprof/powrprof.c rename to dll/win32/powrprof/powrprof.c diff --git a/reactos/dll/win32/powrprof/powrprof.rc b/dll/win32/powrprof/powrprof.rc similarity index 100% rename from reactos/dll/win32/powrprof/powrprof.rc rename to dll/win32/powrprof/powrprof.rc diff --git a/reactos/dll/win32/powrprof/powrprof.spec b/dll/win32/powrprof/powrprof.spec similarity index 100% rename from reactos/dll/win32/powrprof/powrprof.spec rename to dll/win32/powrprof/powrprof.spec diff --git a/reactos/dll/win32/printui/CMakeLists.txt b/dll/win32/printui/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/printui/CMakeLists.txt rename to dll/win32/printui/CMakeLists.txt diff --git a/reactos/dll/win32/printui/printui.c b/dll/win32/printui/printui.c similarity index 100% rename from reactos/dll/win32/printui/printui.c rename to dll/win32/printui/printui.c diff --git a/reactos/dll/win32/printui/printui.rc b/dll/win32/printui/printui.rc similarity index 100% rename from reactos/dll/win32/printui/printui.rc rename to dll/win32/printui/printui.rc diff --git a/reactos/dll/win32/printui/printui.spec b/dll/win32/printui/printui.spec similarity index 100% rename from reactos/dll/win32/printui/printui.spec rename to dll/win32/printui/printui.spec diff --git a/reactos/dll/win32/printui/printui_private.h b/dll/win32/printui/printui_private.h similarity index 100% rename from reactos/dll/win32/printui/printui_private.h rename to dll/win32/printui/printui_private.h diff --git a/reactos/dll/win32/psapi/CMakeLists.txt b/dll/win32/psapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/psapi/CMakeLists.txt rename to dll/win32/psapi/CMakeLists.txt diff --git a/reactos/dll/win32/psapi/internal.h b/dll/win32/psapi/internal.h similarity index 100% rename from reactos/dll/win32/psapi/internal.h rename to dll/win32/psapi/internal.h diff --git a/reactos/dll/win32/psapi/malloc.c b/dll/win32/psapi/malloc.c similarity index 100% rename from reactos/dll/win32/psapi/malloc.c rename to dll/win32/psapi/malloc.c diff --git a/reactos/dll/win32/psapi/precomp.h b/dll/win32/psapi/precomp.h similarity index 100% rename from reactos/dll/win32/psapi/precomp.h rename to dll/win32/psapi/precomp.h diff --git a/reactos/dll/win32/psapi/psapi.c b/dll/win32/psapi/psapi.c similarity index 100% rename from reactos/dll/win32/psapi/psapi.c rename to dll/win32/psapi/psapi.c diff --git a/reactos/dll/win32/psapi/psapi.rc b/dll/win32/psapi/psapi.rc similarity index 100% rename from reactos/dll/win32/psapi/psapi.rc rename to dll/win32/psapi/psapi.rc diff --git a/reactos/dll/win32/psapi/psapi.spec b/dll/win32/psapi/psapi.spec similarity index 100% rename from reactos/dll/win32/psapi/psapi.spec rename to dll/win32/psapi/psapi.spec diff --git a/reactos/dll/win32/pstorec/CMakeLists.txt b/dll/win32/pstorec/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/pstorec/CMakeLists.txt rename to dll/win32/pstorec/CMakeLists.txt diff --git a/reactos/dll/win32/pstorec/pstorec.c b/dll/win32/pstorec/pstorec.c similarity index 100% rename from reactos/dll/win32/pstorec/pstorec.c rename to dll/win32/pstorec/pstorec.c diff --git a/reactos/dll/win32/pstorec/pstorec.rgs b/dll/win32/pstorec/pstorec.rgs similarity index 100% rename from reactos/dll/win32/pstorec/pstorec.rgs rename to dll/win32/pstorec/pstorec.rgs diff --git a/reactos/dll/win32/pstorec/pstorec.spec b/dll/win32/pstorec/pstorec.spec similarity index 100% rename from reactos/dll/win32/pstorec/pstorec.spec rename to dll/win32/pstorec/pstorec.spec diff --git a/reactos/dll/win32/pstorec/pstorec_tlb.idl b/dll/win32/pstorec/pstorec_tlb.idl similarity index 100% rename from reactos/dll/win32/pstorec/pstorec_tlb.idl rename to dll/win32/pstorec/pstorec_tlb.idl diff --git a/reactos/dll/win32/pstorec/rsrc.rc b/dll/win32/pstorec/rsrc.rc similarity index 100% rename from reactos/dll/win32/pstorec/rsrc.rc rename to dll/win32/pstorec/rsrc.rc diff --git a/reactos/dll/win32/qmgr/CMakeLists.txt b/dll/win32/qmgr/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/qmgr/CMakeLists.txt rename to dll/win32/qmgr/CMakeLists.txt diff --git a/reactos/dll/win32/qmgr/enum_files.c b/dll/win32/qmgr/enum_files.c similarity index 100% rename from reactos/dll/win32/qmgr/enum_files.c rename to dll/win32/qmgr/enum_files.c diff --git a/reactos/dll/win32/qmgr/enum_jobs.c b/dll/win32/qmgr/enum_jobs.c similarity index 100% rename from reactos/dll/win32/qmgr/enum_jobs.c rename to dll/win32/qmgr/enum_jobs.c diff --git a/reactos/dll/win32/qmgr/factory.c b/dll/win32/qmgr/factory.c similarity index 100% rename from reactos/dll/win32/qmgr/factory.c rename to dll/win32/qmgr/factory.c diff --git a/reactos/dll/win32/qmgr/file.c b/dll/win32/qmgr/file.c similarity index 100% rename from reactos/dll/win32/qmgr/file.c rename to dll/win32/qmgr/file.c diff --git a/reactos/dll/win32/qmgr/job.c b/dll/win32/qmgr/job.c similarity index 100% rename from reactos/dll/win32/qmgr/job.c rename to dll/win32/qmgr/job.c diff --git a/reactos/dll/win32/qmgr/qmgr.c b/dll/win32/qmgr/qmgr.c similarity index 100% rename from reactos/dll/win32/qmgr/qmgr.c rename to dll/win32/qmgr/qmgr.c diff --git a/reactos/dll/win32/qmgr/qmgr.h b/dll/win32/qmgr/qmgr.h similarity index 100% rename from reactos/dll/win32/qmgr/qmgr.h rename to dll/win32/qmgr/qmgr.h diff --git a/reactos/dll/win32/qmgr/qmgr.inf b/dll/win32/qmgr/qmgr.inf similarity index 100% rename from reactos/dll/win32/qmgr/qmgr.inf rename to dll/win32/qmgr/qmgr.inf diff --git a/reactos/dll/win32/qmgr/qmgr.spec b/dll/win32/qmgr/qmgr.spec similarity index 100% rename from reactos/dll/win32/qmgr/qmgr.spec rename to dll/win32/qmgr/qmgr.spec diff --git a/reactos/dll/win32/qmgr/qmgr_local.idl b/dll/win32/qmgr/qmgr_local.idl similarity index 100% rename from reactos/dll/win32/qmgr/qmgr_local.idl rename to dll/win32/qmgr/qmgr_local.idl diff --git a/reactos/dll/win32/qmgr/qmgr_main.c b/dll/win32/qmgr/qmgr_main.c similarity index 100% rename from reactos/dll/win32/qmgr/qmgr_main.c rename to dll/win32/qmgr/qmgr_main.c diff --git a/reactos/dll/win32/qmgr/rsrc.rc b/dll/win32/qmgr/rsrc.rc similarity index 100% rename from reactos/dll/win32/qmgr/rsrc.rc rename to dll/win32/qmgr/rsrc.rc diff --git a/reactos/dll/win32/qmgr/service.c b/dll/win32/qmgr/service.c similarity index 100% rename from reactos/dll/win32/qmgr/service.c rename to dll/win32/qmgr/service.c diff --git a/reactos/dll/win32/qmgrprxy/CMakeLists.txt b/dll/win32/qmgrprxy/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/qmgrprxy/CMakeLists.txt rename to dll/win32/qmgrprxy/CMakeLists.txt diff --git a/reactos/dll/win32/qmgrprxy/qmgrprxy.idl b/dll/win32/qmgrprxy/qmgrprxy.idl similarity index 100% rename from reactos/dll/win32/qmgrprxy/qmgrprxy.idl rename to dll/win32/qmgrprxy/qmgrprxy.idl diff --git a/reactos/dll/win32/qmgrprxy/qmgrprxy.spec b/dll/win32/qmgrprxy/qmgrprxy.spec similarity index 100% rename from reactos/dll/win32/qmgrprxy/qmgrprxy.spec rename to dll/win32/qmgrprxy/qmgrprxy.spec diff --git a/reactos/dll/win32/qmgrprxy/version.rc b/dll/win32/qmgrprxy/version.rc similarity index 100% rename from reactos/dll/win32/qmgrprxy/version.rc rename to dll/win32/qmgrprxy/version.rc diff --git a/reactos/dll/win32/query/CMakeLists.txt b/dll/win32/query/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/query/CMakeLists.txt rename to dll/win32/query/CMakeLists.txt diff --git a/reactos/dll/win32/query/query.spec b/dll/win32/query/query.spec similarity index 100% rename from reactos/dll/win32/query/query.spec rename to dll/win32/query/query.spec diff --git a/reactos/dll/win32/query/query_main.c b/dll/win32/query/query_main.c similarity index 100% rename from reactos/dll/win32/query/query_main.c rename to dll/win32/query/query_main.c diff --git a/reactos/dll/win32/rasadhlp/CMakeLists.txt b/dll/win32/rasadhlp/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/rasadhlp/CMakeLists.txt rename to dll/win32/rasadhlp/CMakeLists.txt diff --git a/reactos/dll/win32/rasadhlp/autodial.c b/dll/win32/rasadhlp/autodial.c similarity index 100% rename from reactos/dll/win32/rasadhlp/autodial.c rename to dll/win32/rasadhlp/autodial.c diff --git a/reactos/dll/win32/rasadhlp/init.c b/dll/win32/rasadhlp/init.c similarity index 100% rename from reactos/dll/win32/rasadhlp/init.c rename to dll/win32/rasadhlp/init.c diff --git a/reactos/dll/win32/rasadhlp/precomp.h b/dll/win32/rasadhlp/precomp.h similarity index 100% rename from reactos/dll/win32/rasadhlp/precomp.h rename to dll/win32/rasadhlp/precomp.h diff --git a/reactos/dll/win32/rasadhlp/rasadhlp.spec b/dll/win32/rasadhlp/rasadhlp.spec similarity index 100% rename from reactos/dll/win32/rasadhlp/rasadhlp.spec rename to dll/win32/rasadhlp/rasadhlp.spec diff --git a/reactos/dll/win32/rasadhlp/winsock.c b/dll/win32/rasadhlp/winsock.c similarity index 100% rename from reactos/dll/win32/rasadhlp/winsock.c rename to dll/win32/rasadhlp/winsock.c diff --git a/reactos/dll/win32/rasapi32/CMakeLists.txt b/dll/win32/rasapi32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/rasapi32/CMakeLists.txt rename to dll/win32/rasapi32/CMakeLists.txt diff --git a/reactos/dll/win32/rasapi32/rasapi.c b/dll/win32/rasapi32/rasapi.c similarity index 100% rename from reactos/dll/win32/rasapi32/rasapi.c rename to dll/win32/rasapi32/rasapi.c diff --git a/reactos/dll/win32/rasapi32/rasapi32.spec b/dll/win32/rasapi32/rasapi32.spec similarity index 100% rename from reactos/dll/win32/rasapi32/rasapi32.spec rename to dll/win32/rasapi32/rasapi32.spec diff --git a/reactos/dll/win32/rasdlg/CMakeLists.txt b/dll/win32/rasdlg/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/rasdlg/CMakeLists.txt rename to dll/win32/rasdlg/CMakeLists.txt diff --git a/reactos/dll/win32/rasdlg/lang/de-DE.rc b/dll/win32/rasdlg/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/rasdlg/lang/de-DE.rc rename to dll/win32/rasdlg/lang/de-DE.rc diff --git a/reactos/dll/win32/rasdlg/lang/en-US.rc b/dll/win32/rasdlg/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/rasdlg/lang/en-US.rc rename to dll/win32/rasdlg/lang/en-US.rc diff --git a/reactos/dll/win32/rasdlg/lang/no-NO.rc b/dll/win32/rasdlg/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/rasdlg/lang/no-NO.rc rename to dll/win32/rasdlg/lang/no-NO.rc diff --git a/reactos/dll/win32/rasdlg/lang/pl-PL.rc b/dll/win32/rasdlg/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/rasdlg/lang/pl-PL.rc rename to dll/win32/rasdlg/lang/pl-PL.rc diff --git a/reactos/dll/win32/rasdlg/lang/ro-RO.rc b/dll/win32/rasdlg/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/rasdlg/lang/ro-RO.rc rename to dll/win32/rasdlg/lang/ro-RO.rc diff --git a/reactos/dll/win32/rasdlg/lang/ru-RU.rc b/dll/win32/rasdlg/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/rasdlg/lang/ru-RU.rc rename to dll/win32/rasdlg/lang/ru-RU.rc diff --git a/reactos/dll/win32/rasdlg/lang/uk-UA.rc b/dll/win32/rasdlg/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/rasdlg/lang/uk-UA.rc rename to dll/win32/rasdlg/lang/uk-UA.rc diff --git a/reactos/dll/win32/rasdlg/rasdlg.c b/dll/win32/rasdlg/rasdlg.c similarity index 100% rename from reactos/dll/win32/rasdlg/rasdlg.c rename to dll/win32/rasdlg/rasdlg.c diff --git a/reactos/dll/win32/rasdlg/rasdlg.rc b/dll/win32/rasdlg/rasdlg.rc similarity index 100% rename from reactos/dll/win32/rasdlg/rasdlg.rc rename to dll/win32/rasdlg/rasdlg.rc diff --git a/reactos/dll/win32/rasdlg/rasdlg.spec b/dll/win32/rasdlg/rasdlg.spec similarity index 100% rename from reactos/dll/win32/rasdlg/rasdlg.spec rename to dll/win32/rasdlg/rasdlg.spec diff --git a/reactos/dll/win32/rasdlg/res/bitmaps/100.bmp b/dll/win32/rasdlg/res/bitmaps/100.bmp similarity index 100% rename from reactos/dll/win32/rasdlg/res/bitmaps/100.bmp rename to dll/win32/rasdlg/res/bitmaps/100.bmp diff --git a/reactos/dll/win32/rasdlg/res/bitmaps/101.bmp b/dll/win32/rasdlg/res/bitmaps/101.bmp similarity index 100% rename from reactos/dll/win32/rasdlg/res/bitmaps/101.bmp rename to dll/win32/rasdlg/res/bitmaps/101.bmp diff --git a/reactos/dll/win32/rasdlg/res/bitmaps/102.bmp b/dll/win32/rasdlg/res/bitmaps/102.bmp similarity index 100% rename from reactos/dll/win32/rasdlg/res/bitmaps/102.bmp rename to dll/win32/rasdlg/res/bitmaps/102.bmp diff --git a/reactos/dll/win32/rasdlg/res/bitmaps/1678.bmp b/dll/win32/rasdlg/res/bitmaps/1678.bmp similarity index 100% rename from reactos/dll/win32/rasdlg/res/bitmaps/1678.bmp rename to dll/win32/rasdlg/res/bitmaps/1678.bmp diff --git a/reactos/dll/win32/rasdlg/res/icons/134.ico b/dll/win32/rasdlg/res/icons/134.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/134.ico rename to dll/win32/rasdlg/res/icons/134.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/135.ico b/dll/win32/rasdlg/res/icons/135.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/135.ico rename to dll/win32/rasdlg/res/icons/135.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/144.ico b/dll/win32/rasdlg/res/icons/144.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/144.ico rename to dll/win32/rasdlg/res/icons/144.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/145.ico b/dll/win32/rasdlg/res/icons/145.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/145.ico rename to dll/win32/rasdlg/res/icons/145.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/15102.ico b/dll/win32/rasdlg/res/icons/15102.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/15102.ico rename to dll/win32/rasdlg/res/icons/15102.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/50.ico b/dll/win32/rasdlg/res/icons/50.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/50.ico rename to dll/win32/rasdlg/res/icons/50.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/51.ico b/dll/win32/rasdlg/res/icons/51.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/51.ico rename to dll/win32/rasdlg/res/icons/51.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/52.ico b/dll/win32/rasdlg/res/icons/52.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/52.ico rename to dll/win32/rasdlg/res/icons/52.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/53.ico b/dll/win32/rasdlg/res/icons/53.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/53.ico rename to dll/win32/rasdlg/res/icons/53.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/54.ico b/dll/win32/rasdlg/res/icons/54.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/54.ico rename to dll/win32/rasdlg/res/icons/54.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/55.ico b/dll/win32/rasdlg/res/icons/55.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/55.ico rename to dll/win32/rasdlg/res/icons/55.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/56.ico b/dll/win32/rasdlg/res/icons/56.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/56.ico rename to dll/win32/rasdlg/res/icons/56.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/562.ico b/dll/win32/rasdlg/res/icons/562.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/562.ico rename to dll/win32/rasdlg/res/icons/562.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/563.ico b/dll/win32/rasdlg/res/icons/563.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/563.ico rename to dll/win32/rasdlg/res/icons/563.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/57.ico b/dll/win32/rasdlg/res/icons/57.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/57.ico rename to dll/win32/rasdlg/res/icons/57.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/58.ico b/dll/win32/rasdlg/res/icons/58.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/58.ico rename to dll/win32/rasdlg/res/icons/58.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/59.ico b/dll/win32/rasdlg/res/icons/59.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/59.ico rename to dll/win32/rasdlg/res/icons/59.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/60.ico b/dll/win32/rasdlg/res/icons/60.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/60.ico rename to dll/win32/rasdlg/res/icons/60.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/61.ico b/dll/win32/rasdlg/res/icons/61.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/61.ico rename to dll/win32/rasdlg/res/icons/61.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/62.ico b/dll/win32/rasdlg/res/icons/62.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/62.ico rename to dll/win32/rasdlg/res/icons/62.ico diff --git a/reactos/dll/win32/rasdlg/res/icons/63.ico b/dll/win32/rasdlg/res/icons/63.ico similarity index 100% rename from reactos/dll/win32/rasdlg/res/icons/63.ico rename to dll/win32/rasdlg/res/icons/63.ico diff --git a/reactos/dll/win32/rasdlg/resource.h b/dll/win32/rasdlg/resource.h similarity index 100% rename from reactos/dll/win32/rasdlg/resource.h rename to dll/win32/rasdlg/resource.h diff --git a/reactos/dll/win32/rasman/CMakeLists.txt b/dll/win32/rasman/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/rasman/CMakeLists.txt rename to dll/win32/rasman/CMakeLists.txt diff --git a/reactos/dll/win32/rasman/rasman.c b/dll/win32/rasman/rasman.c similarity index 100% rename from reactos/dll/win32/rasman/rasman.c rename to dll/win32/rasman/rasman.c diff --git a/reactos/dll/win32/rasman/rasman.rc b/dll/win32/rasman/rasman.rc similarity index 100% rename from reactos/dll/win32/rasman/rasman.rc rename to dll/win32/rasman/rasman.rc diff --git a/reactos/dll/win32/rasman/rasman.spec b/dll/win32/rasman/rasman.spec similarity index 100% rename from reactos/dll/win32/rasman/rasman.spec rename to dll/win32/rasman/rasman.spec diff --git a/reactos/dll/win32/resutils/CMakeLists.txt b/dll/win32/resutils/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/resutils/CMakeLists.txt rename to dll/win32/resutils/CMakeLists.txt diff --git a/reactos/dll/win32/resutils/resutils.c b/dll/win32/resutils/resutils.c similarity index 100% rename from reactos/dll/win32/resutils/resutils.c rename to dll/win32/resutils/resutils.c diff --git a/reactos/dll/win32/resutils/resutils.spec b/dll/win32/resutils/resutils.spec similarity index 100% rename from reactos/dll/win32/resutils/resutils.spec rename to dll/win32/resutils/resutils.spec diff --git a/reactos/dll/win32/riched20/CMakeLists.txt b/dll/win32/riched20/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/riched20/CMakeLists.txt rename to dll/win32/riched20/CMakeLists.txt diff --git a/reactos/dll/win32/riched20/caret.c b/dll/win32/riched20/caret.c similarity index 100% rename from reactos/dll/win32/riched20/caret.c rename to dll/win32/riched20/caret.c diff --git a/reactos/dll/win32/riched20/clipboard.c b/dll/win32/riched20/clipboard.c similarity index 100% rename from reactos/dll/win32/riched20/clipboard.c rename to dll/win32/riched20/clipboard.c diff --git a/reactos/dll/win32/riched20/context.c b/dll/win32/riched20/context.c similarity index 100% rename from reactos/dll/win32/riched20/context.c rename to dll/win32/riched20/context.c diff --git a/reactos/dll/win32/riched20/editor.c b/dll/win32/riched20/editor.c similarity index 100% rename from reactos/dll/win32/riched20/editor.c rename to dll/win32/riched20/editor.c diff --git a/reactos/dll/win32/riched20/editor.h b/dll/win32/riched20/editor.h similarity index 100% rename from reactos/dll/win32/riched20/editor.h rename to dll/win32/riched20/editor.h diff --git a/reactos/dll/win32/riched20/editstr.h b/dll/win32/riched20/editstr.h similarity index 100% rename from reactos/dll/win32/riched20/editstr.h rename to dll/win32/riched20/editstr.h diff --git a/reactos/dll/win32/riched20/list.c b/dll/win32/riched20/list.c similarity index 100% rename from reactos/dll/win32/riched20/list.c rename to dll/win32/riched20/list.c diff --git a/reactos/dll/win32/riched20/msvc-thiscall.c b/dll/win32/riched20/msvc-thiscall.c similarity index 100% rename from reactos/dll/win32/riched20/msvc-thiscall.c rename to dll/win32/riched20/msvc-thiscall.c diff --git a/reactos/dll/win32/riched20/msvc.h b/dll/win32/riched20/msvc.h similarity index 100% rename from reactos/dll/win32/riched20/msvc.h rename to dll/win32/riched20/msvc.h diff --git a/reactos/dll/win32/riched20/ocr_reverse.cur b/dll/win32/riched20/ocr_reverse.cur similarity index 100% rename from reactos/dll/win32/riched20/ocr_reverse.cur rename to dll/win32/riched20/ocr_reverse.cur diff --git a/reactos/dll/win32/riched20/paint.c b/dll/win32/riched20/paint.c similarity index 100% rename from reactos/dll/win32/riched20/paint.c rename to dll/win32/riched20/paint.c diff --git a/reactos/dll/win32/riched20/para.c b/dll/win32/riched20/para.c similarity index 100% rename from reactos/dll/win32/riched20/para.c rename to dll/win32/riched20/para.c diff --git a/reactos/dll/win32/riched20/reader.c b/dll/win32/riched20/reader.c similarity index 100% rename from reactos/dll/win32/riched20/reader.c rename to dll/win32/riched20/reader.c diff --git a/reactos/dll/win32/riched20/res.h b/dll/win32/riched20/res.h similarity index 100% rename from reactos/dll/win32/riched20/res.h rename to dll/win32/riched20/res.h diff --git a/reactos/dll/win32/riched20/riched20.spec b/dll/win32/riched20/riched20.spec similarity index 100% rename from reactos/dll/win32/riched20/riched20.spec rename to dll/win32/riched20/riched20.spec diff --git a/reactos/dll/win32/riched20/richole.c b/dll/win32/riched20/richole.c similarity index 100% rename from reactos/dll/win32/riched20/richole.c rename to dll/win32/riched20/richole.c diff --git a/reactos/dll/win32/riched20/row.c b/dll/win32/riched20/row.c similarity index 100% rename from reactos/dll/win32/riched20/row.c rename to dll/win32/riched20/row.c diff --git a/reactos/dll/win32/riched20/rtf.h b/dll/win32/riched20/rtf.h similarity index 100% rename from reactos/dll/win32/riched20/rtf.h rename to dll/win32/riched20/rtf.h diff --git a/reactos/dll/win32/riched20/run.c b/dll/win32/riched20/run.c similarity index 100% rename from reactos/dll/win32/riched20/run.c rename to dll/win32/riched20/run.c diff --git a/reactos/dll/win32/riched20/string.c b/dll/win32/riched20/string.c similarity index 100% rename from reactos/dll/win32/riched20/string.c rename to dll/win32/riched20/string.c diff --git a/reactos/dll/win32/riched20/style.c b/dll/win32/riched20/style.c similarity index 100% rename from reactos/dll/win32/riched20/style.c rename to dll/win32/riched20/style.c diff --git a/reactos/dll/win32/riched20/table.c b/dll/win32/riched20/table.c similarity index 100% rename from reactos/dll/win32/riched20/table.c rename to dll/win32/riched20/table.c diff --git a/reactos/dll/win32/riched20/txthost.c b/dll/win32/riched20/txthost.c similarity index 100% rename from reactos/dll/win32/riched20/txthost.c rename to dll/win32/riched20/txthost.c diff --git a/reactos/dll/win32/riched20/txtsrv.c b/dll/win32/riched20/txtsrv.c similarity index 100% rename from reactos/dll/win32/riched20/txtsrv.c rename to dll/win32/riched20/txtsrv.c diff --git a/reactos/dll/win32/riched20/undo.c b/dll/win32/riched20/undo.c similarity index 100% rename from reactos/dll/win32/riched20/undo.c rename to dll/win32/riched20/undo.c diff --git a/reactos/dll/win32/riched20/version.rc b/dll/win32/riched20/version.rc similarity index 100% rename from reactos/dll/win32/riched20/version.rc rename to dll/win32/riched20/version.rc diff --git a/reactos/dll/win32/riched20/wrap.c b/dll/win32/riched20/wrap.c similarity index 100% rename from reactos/dll/win32/riched20/wrap.c rename to dll/win32/riched20/wrap.c diff --git a/reactos/dll/win32/riched20/writer.c b/dll/win32/riched20/writer.c similarity index 100% rename from reactos/dll/win32/riched20/writer.c rename to dll/win32/riched20/writer.c diff --git a/reactos/dll/win32/riched32/CMakeLists.txt b/dll/win32/riched32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/riched32/CMakeLists.txt rename to dll/win32/riched32/CMakeLists.txt diff --git a/reactos/dll/win32/riched32/riched32.spec b/dll/win32/riched32/riched32.spec similarity index 100% rename from reactos/dll/win32/riched32/riched32.spec rename to dll/win32/riched32/riched32.spec diff --git a/reactos/dll/win32/riched32/richedit.c b/dll/win32/riched32/richedit.c similarity index 100% rename from reactos/dll/win32/riched32/richedit.c rename to dll/win32/riched32/richedit.c diff --git a/reactos/dll/win32/riched32/version.rc b/dll/win32/riched32/version.rc similarity index 100% rename from reactos/dll/win32/riched32/version.rc rename to dll/win32/riched32/version.rc diff --git a/reactos/dll/win32/rpcrt4/CMakeLists.txt b/dll/win32/rpcrt4/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/rpcrt4/CMakeLists.txt rename to dll/win32/rpcrt4/CMakeLists.txt diff --git a/reactos/dll/win32/rpcrt4/cproxy.c b/dll/win32/rpcrt4/cproxy.c similarity index 100% rename from reactos/dll/win32/rpcrt4/cproxy.c rename to dll/win32/rpcrt4/cproxy.c diff --git a/reactos/dll/win32/rpcrt4/cpsf.c b/dll/win32/rpcrt4/cpsf.c similarity index 100% rename from reactos/dll/win32/rpcrt4/cpsf.c rename to dll/win32/rpcrt4/cpsf.c diff --git a/reactos/dll/win32/rpcrt4/cpsf.h b/dll/win32/rpcrt4/cpsf.h similarity index 100% rename from reactos/dll/win32/rpcrt4/cpsf.h rename to dll/win32/rpcrt4/cpsf.h diff --git a/reactos/dll/win32/rpcrt4/cstub.c b/dll/win32/rpcrt4/cstub.c similarity index 100% rename from reactos/dll/win32/rpcrt4/cstub.c rename to dll/win32/rpcrt4/cstub.c diff --git a/reactos/dll/win32/rpcrt4/epm.idl b/dll/win32/rpcrt4/epm.idl similarity index 100% rename from reactos/dll/win32/rpcrt4/epm.idl rename to dll/win32/rpcrt4/epm.idl diff --git a/reactos/dll/win32/rpcrt4/epm_towers.h b/dll/win32/rpcrt4/epm_towers.h similarity index 100% rename from reactos/dll/win32/rpcrt4/epm_towers.h rename to dll/win32/rpcrt4/epm_towers.h diff --git a/reactos/dll/win32/rpcrt4/msvc.S b/dll/win32/rpcrt4/msvc.S similarity index 100% rename from reactos/dll/win32/rpcrt4/msvc.S rename to dll/win32/rpcrt4/msvc.S diff --git a/reactos/dll/win32/rpcrt4/ncastatus.h b/dll/win32/rpcrt4/ncastatus.h similarity index 100% rename from reactos/dll/win32/rpcrt4/ncastatus.h rename to dll/win32/rpcrt4/ncastatus.h diff --git a/reactos/dll/win32/rpcrt4/ndr_clientserver.c b/dll/win32/rpcrt4/ndr_clientserver.c similarity index 100% rename from reactos/dll/win32/rpcrt4/ndr_clientserver.c rename to dll/win32/rpcrt4/ndr_clientserver.c diff --git a/reactos/dll/win32/rpcrt4/ndr_contexthandle.c b/dll/win32/rpcrt4/ndr_contexthandle.c similarity index 100% rename from reactos/dll/win32/rpcrt4/ndr_contexthandle.c rename to dll/win32/rpcrt4/ndr_contexthandle.c diff --git a/reactos/dll/win32/rpcrt4/ndr_es.c b/dll/win32/rpcrt4/ndr_es.c similarity index 100% rename from reactos/dll/win32/rpcrt4/ndr_es.c rename to dll/win32/rpcrt4/ndr_es.c diff --git a/reactos/dll/win32/rpcrt4/ndr_fullpointer.c b/dll/win32/rpcrt4/ndr_fullpointer.c similarity index 100% rename from reactos/dll/win32/rpcrt4/ndr_fullpointer.c rename to dll/win32/rpcrt4/ndr_fullpointer.c diff --git a/reactos/dll/win32/rpcrt4/ndr_marshall.c b/dll/win32/rpcrt4/ndr_marshall.c similarity index 100% rename from reactos/dll/win32/rpcrt4/ndr_marshall.c rename to dll/win32/rpcrt4/ndr_marshall.c diff --git a/reactos/dll/win32/rpcrt4/ndr_misc.h b/dll/win32/rpcrt4/ndr_misc.h similarity index 100% rename from reactos/dll/win32/rpcrt4/ndr_misc.h rename to dll/win32/rpcrt4/ndr_misc.h diff --git a/reactos/dll/win32/rpcrt4/ndr_ole.c b/dll/win32/rpcrt4/ndr_ole.c similarity index 100% rename from reactos/dll/win32/rpcrt4/ndr_ole.c rename to dll/win32/rpcrt4/ndr_ole.c diff --git a/reactos/dll/win32/rpcrt4/ndr_stubless.c b/dll/win32/rpcrt4/ndr_stubless.c similarity index 100% rename from reactos/dll/win32/rpcrt4/ndr_stubless.c rename to dll/win32/rpcrt4/ndr_stubless.c diff --git a/reactos/dll/win32/rpcrt4/ndr_stubless.h b/dll/win32/rpcrt4/ndr_stubless.h similarity index 100% rename from reactos/dll/win32/rpcrt4/ndr_stubless.h rename to dll/win32/rpcrt4/ndr_stubless.h diff --git a/reactos/dll/win32/rpcrt4/rpc_assoc.c b/dll/win32/rpcrt4/rpc_assoc.c similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_assoc.c rename to dll/win32/rpcrt4/rpc_assoc.c diff --git a/reactos/dll/win32/rpcrt4/rpc_assoc.h b/dll/win32/rpcrt4/rpc_assoc.h similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_assoc.h rename to dll/win32/rpcrt4/rpc_assoc.h diff --git a/reactos/dll/win32/rpcrt4/rpc_async.c b/dll/win32/rpcrt4/rpc_async.c similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_async.c rename to dll/win32/rpcrt4/rpc_async.c diff --git a/reactos/dll/win32/rpcrt4/rpc_binding.c b/dll/win32/rpcrt4/rpc_binding.c similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_binding.c rename to dll/win32/rpcrt4/rpc_binding.c diff --git a/reactos/dll/win32/rpcrt4/rpc_binding.h b/dll/win32/rpcrt4/rpc_binding.h similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_binding.h rename to dll/win32/rpcrt4/rpc_binding.h diff --git a/reactos/dll/win32/rpcrt4/rpc_defs.h b/dll/win32/rpcrt4/rpc_defs.h similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_defs.h rename to dll/win32/rpcrt4/rpc_defs.h diff --git a/reactos/dll/win32/rpcrt4/rpc_epmap.c b/dll/win32/rpcrt4/rpc_epmap.c similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_epmap.c rename to dll/win32/rpcrt4/rpc_epmap.c diff --git a/reactos/dll/win32/rpcrt4/rpc_message.c b/dll/win32/rpcrt4/rpc_message.c similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_message.c rename to dll/win32/rpcrt4/rpc_message.c diff --git a/reactos/dll/win32/rpcrt4/rpc_message.h b/dll/win32/rpcrt4/rpc_message.h similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_message.h rename to dll/win32/rpcrt4/rpc_message.h diff --git a/reactos/dll/win32/rpcrt4/rpc_server.c b/dll/win32/rpcrt4/rpc_server.c similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_server.c rename to dll/win32/rpcrt4/rpc_server.c diff --git a/reactos/dll/win32/rpcrt4/rpc_server.h b/dll/win32/rpcrt4/rpc_server.h similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_server.h rename to dll/win32/rpcrt4/rpc_server.h diff --git a/reactos/dll/win32/rpcrt4/rpc_transport.c b/dll/win32/rpcrt4/rpc_transport.c similarity index 100% rename from reactos/dll/win32/rpcrt4/rpc_transport.c rename to dll/win32/rpcrt4/rpc_transport.c diff --git a/reactos/dll/win32/rpcrt4/rpcrt4.rc b/dll/win32/rpcrt4/rpcrt4.rc similarity index 100% rename from reactos/dll/win32/rpcrt4/rpcrt4.rc rename to dll/win32/rpcrt4/rpcrt4.rc diff --git a/reactos/dll/win32/rpcrt4/rpcrt4.spec b/dll/win32/rpcrt4/rpcrt4.spec similarity index 100% rename from reactos/dll/win32/rpcrt4/rpcrt4.spec rename to dll/win32/rpcrt4/rpcrt4.spec diff --git a/reactos/dll/win32/rpcrt4/rpcrt4_main.c b/dll/win32/rpcrt4/rpcrt4_main.c similarity index 100% rename from reactos/dll/win32/rpcrt4/rpcrt4_main.c rename to dll/win32/rpcrt4/rpcrt4_main.c diff --git a/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff b/dll/win32/rpcrt4/rpcrt4_ros.diff similarity index 100% rename from reactos/dll/win32/rpcrt4/rpcrt4_ros.diff rename to dll/win32/rpcrt4/rpcrt4_ros.diff diff --git a/reactos/dll/win32/rpcrt4/unix_func.c b/dll/win32/rpcrt4/unix_func.c similarity index 100% rename from reactos/dll/win32/rpcrt4/unix_func.c rename to dll/win32/rpcrt4/unix_func.c diff --git a/reactos/dll/win32/rpcrt4/version.rc b/dll/win32/rpcrt4/version.rc similarity index 100% rename from reactos/dll/win32/rpcrt4/version.rc rename to dll/win32/rpcrt4/version.rc diff --git a/reactos/dll/win32/rsabase/CMakeLists.txt b/dll/win32/rsabase/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/rsabase/CMakeLists.txt rename to dll/win32/rsabase/CMakeLists.txt diff --git a/reactos/dll/win32/rsabase/rsabase.spec b/dll/win32/rsabase/rsabase.spec similarity index 100% rename from reactos/dll/win32/rsabase/rsabase.spec rename to dll/win32/rsabase/rsabase.spec diff --git a/reactos/dll/win32/rsabase/version.rc b/dll/win32/rsabase/version.rc similarity index 100% rename from reactos/dll/win32/rsabase/version.rc rename to dll/win32/rsabase/version.rc diff --git a/reactos/dll/win32/rsaenh/CMakeLists.txt b/dll/win32/rsaenh/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/rsaenh/CMakeLists.txt rename to dll/win32/rsaenh/CMakeLists.txt diff --git a/reactos/dll/win32/rsaenh/aes.c b/dll/win32/rsaenh/aes.c similarity index 100% rename from reactos/dll/win32/rsaenh/aes.c rename to dll/win32/rsaenh/aes.c diff --git a/reactos/dll/win32/rsaenh/des.c b/dll/win32/rsaenh/des.c similarity index 100% rename from reactos/dll/win32/rsaenh/des.c rename to dll/win32/rsaenh/des.c diff --git a/reactos/dll/win32/rsaenh/handle.c b/dll/win32/rsaenh/handle.c similarity index 100% rename from reactos/dll/win32/rsaenh/handle.c rename to dll/win32/rsaenh/handle.c diff --git a/reactos/dll/win32/rsaenh/handle.h b/dll/win32/rsaenh/handle.h similarity index 100% rename from reactos/dll/win32/rsaenh/handle.h rename to dll/win32/rsaenh/handle.h diff --git a/reactos/dll/win32/rsaenh/implglue.c b/dll/win32/rsaenh/implglue.c similarity index 100% rename from reactos/dll/win32/rsaenh/implglue.c rename to dll/win32/rsaenh/implglue.c diff --git a/reactos/dll/win32/rsaenh/implglue.h b/dll/win32/rsaenh/implglue.h similarity index 100% rename from reactos/dll/win32/rsaenh/implglue.h rename to dll/win32/rsaenh/implglue.h diff --git a/reactos/dll/win32/rsaenh/md2.c b/dll/win32/rsaenh/md2.c similarity index 100% rename from reactos/dll/win32/rsaenh/md2.c rename to dll/win32/rsaenh/md2.c diff --git a/reactos/dll/win32/rsaenh/mpi.c b/dll/win32/rsaenh/mpi.c similarity index 100% rename from reactos/dll/win32/rsaenh/mpi.c rename to dll/win32/rsaenh/mpi.c diff --git a/reactos/dll/win32/rsaenh/rc2.c b/dll/win32/rsaenh/rc2.c similarity index 100% rename from reactos/dll/win32/rsaenh/rc2.c rename to dll/win32/rsaenh/rc2.c diff --git a/reactos/dll/win32/rsaenh/rc4.c b/dll/win32/rsaenh/rc4.c similarity index 100% rename from reactos/dll/win32/rsaenh/rc4.c rename to dll/win32/rsaenh/rc4.c diff --git a/reactos/dll/win32/rsaenh/rsa.c b/dll/win32/rsaenh/rsa.c similarity index 100% rename from reactos/dll/win32/rsaenh/rsa.c rename to dll/win32/rsaenh/rsa.c diff --git a/reactos/dll/win32/rsaenh/rsaenh.c b/dll/win32/rsaenh/rsaenh.c similarity index 100% rename from reactos/dll/win32/rsaenh/rsaenh.c rename to dll/win32/rsaenh/rsaenh.c diff --git a/reactos/dll/win32/rsaenh/rsaenh.rgs b/dll/win32/rsaenh/rsaenh.rgs similarity index 100% rename from reactos/dll/win32/rsaenh/rsaenh.rgs rename to dll/win32/rsaenh/rsaenh.rgs diff --git a/reactos/dll/win32/rsaenh/rsaenh.spec b/dll/win32/rsaenh/rsaenh.spec similarity index 100% rename from reactos/dll/win32/rsaenh/rsaenh.spec rename to dll/win32/rsaenh/rsaenh.spec diff --git a/reactos/dll/win32/rsaenh/rsrc.rc b/dll/win32/rsaenh/rsrc.rc similarity index 100% rename from reactos/dll/win32/rsaenh/rsrc.rc rename to dll/win32/rsaenh/rsrc.rc diff --git a/reactos/dll/win32/rsaenh/sha2.c b/dll/win32/rsaenh/sha2.c similarity index 100% rename from reactos/dll/win32/rsaenh/sha2.c rename to dll/win32/rsaenh/sha2.c diff --git a/reactos/dll/win32/rsaenh/sha2.h b/dll/win32/rsaenh/sha2.h similarity index 100% rename from reactos/dll/win32/rsaenh/sha2.h rename to dll/win32/rsaenh/sha2.h diff --git a/reactos/dll/win32/rsaenh/tomcrypt.h b/dll/win32/rsaenh/tomcrypt.h similarity index 100% rename from reactos/dll/win32/rsaenh/tomcrypt.h rename to dll/win32/rsaenh/tomcrypt.h diff --git a/reactos/dll/win32/samlib/CMakeLists.txt b/dll/win32/samlib/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/samlib/CMakeLists.txt rename to dll/win32/samlib/CMakeLists.txt diff --git a/reactos/dll/win32/samlib/dllmain.c b/dll/win32/samlib/dllmain.c similarity index 100% rename from reactos/dll/win32/samlib/dllmain.c rename to dll/win32/samlib/dllmain.c diff --git a/reactos/dll/win32/samlib/precomp.h b/dll/win32/samlib/precomp.h similarity index 100% rename from reactos/dll/win32/samlib/precomp.h rename to dll/win32/samlib/precomp.h diff --git a/reactos/dll/win32/samlib/samlib.c b/dll/win32/samlib/samlib.c similarity index 100% rename from reactos/dll/win32/samlib/samlib.c rename to dll/win32/samlib/samlib.c diff --git a/reactos/dll/win32/samlib/samlib.rc b/dll/win32/samlib/samlib.rc similarity index 100% rename from reactos/dll/win32/samlib/samlib.rc rename to dll/win32/samlib/samlib.rc diff --git a/reactos/dll/win32/samlib/samlib.spec b/dll/win32/samlib/samlib.spec similarity index 100% rename from reactos/dll/win32/samlib/samlib.spec rename to dll/win32/samlib/samlib.spec diff --git a/reactos/dll/win32/samsrv/CMakeLists.txt b/dll/win32/samsrv/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/samsrv/CMakeLists.txt rename to dll/win32/samsrv/CMakeLists.txt diff --git a/reactos/dll/win32/samsrv/database.c b/dll/win32/samsrv/database.c similarity index 100% rename from reactos/dll/win32/samsrv/database.c rename to dll/win32/samsrv/database.c diff --git a/reactos/dll/win32/samsrv/registry.c b/dll/win32/samsrv/registry.c similarity index 100% rename from reactos/dll/win32/samsrv/registry.c rename to dll/win32/samsrv/registry.c diff --git a/reactos/dll/win32/samsrv/samrpc.c b/dll/win32/samsrv/samrpc.c similarity index 100% rename from reactos/dll/win32/samsrv/samrpc.c rename to dll/win32/samsrv/samrpc.c diff --git a/reactos/dll/win32/samsrv/samsrv.c b/dll/win32/samsrv/samsrv.c similarity index 100% rename from reactos/dll/win32/samsrv/samsrv.c rename to dll/win32/samsrv/samsrv.c diff --git a/reactos/dll/win32/samsrv/samsrv.h b/dll/win32/samsrv/samsrv.h similarity index 100% rename from reactos/dll/win32/samsrv/samsrv.h rename to dll/win32/samsrv/samsrv.h diff --git a/reactos/dll/win32/samsrv/samsrv.rc b/dll/win32/samsrv/samsrv.rc similarity index 100% rename from reactos/dll/win32/samsrv/samsrv.rc rename to dll/win32/samsrv/samsrv.rc diff --git a/reactos/dll/win32/samsrv/samsrv.spec b/dll/win32/samsrv/samsrv.spec similarity index 100% rename from reactos/dll/win32/samsrv/samsrv.spec rename to dll/win32/samsrv/samsrv.spec diff --git a/reactos/dll/win32/samsrv/setup.c b/dll/win32/samsrv/setup.c similarity index 100% rename from reactos/dll/win32/samsrv/setup.c rename to dll/win32/samsrv/setup.c diff --git a/reactos/dll/win32/sccbase/CMakeLists.txt b/dll/win32/sccbase/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/sccbase/CMakeLists.txt rename to dll/win32/sccbase/CMakeLists.txt diff --git a/reactos/dll/win32/sccbase/main.c b/dll/win32/sccbase/main.c similarity index 100% rename from reactos/dll/win32/sccbase/main.c rename to dll/win32/sccbase/main.c diff --git a/reactos/dll/win32/sccbase/sccbase.spec b/dll/win32/sccbase/sccbase.spec similarity index 100% rename from reactos/dll/win32/sccbase/sccbase.spec rename to dll/win32/sccbase/sccbase.spec diff --git a/reactos/dll/win32/schannel/CMakeLists.txt b/dll/win32/schannel/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/schannel/CMakeLists.txt rename to dll/win32/schannel/CMakeLists.txt diff --git a/reactos/dll/win32/schannel/lsamode.c b/dll/win32/schannel/lsamode.c similarity index 100% rename from reactos/dll/win32/schannel/lsamode.c rename to dll/win32/schannel/lsamode.c diff --git a/reactos/dll/win32/schannel/schannel.spec b/dll/win32/schannel/schannel.spec similarity index 100% rename from reactos/dll/win32/schannel/schannel.spec rename to dll/win32/schannel/schannel.spec diff --git a/reactos/dll/win32/schannel/schannel_main.c b/dll/win32/schannel/schannel_main.c similarity index 100% rename from reactos/dll/win32/schannel/schannel_main.c rename to dll/win32/schannel/schannel_main.c diff --git a/reactos/dll/win32/schannel/usermode.c b/dll/win32/schannel/usermode.c similarity index 100% rename from reactos/dll/win32/schannel/usermode.c rename to dll/win32/schannel/usermode.c diff --git a/reactos/dll/win32/schannel/version.rc b/dll/win32/schannel/version.rc similarity index 100% rename from reactos/dll/win32/schannel/version.rc rename to dll/win32/schannel/version.rc diff --git a/reactos/dll/win32/secur32/CMakeLists.txt b/dll/win32/secur32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/secur32/CMakeLists.txt rename to dll/win32/secur32/CMakeLists.txt diff --git a/reactos/dll/win32/secur32/dllmain.c b/dll/win32/secur32/dllmain.c similarity index 100% rename from reactos/dll/win32/secur32/dllmain.c rename to dll/win32/secur32/dllmain.c diff --git a/reactos/dll/win32/secur32/precomp.h b/dll/win32/secur32/precomp.h similarity index 100% rename from reactos/dll/win32/secur32/precomp.h rename to dll/win32/secur32/precomp.h diff --git a/reactos/dll/win32/secur32/secext.c b/dll/win32/secur32/secext.c similarity index 100% rename from reactos/dll/win32/secur32/secext.c rename to dll/win32/secur32/secext.c diff --git a/reactos/dll/win32/secur32/secur32.rc b/dll/win32/secur32/secur32.rc similarity index 100% rename from reactos/dll/win32/secur32/secur32.rc rename to dll/win32/secur32/secur32.rc diff --git a/reactos/dll/win32/secur32/secur32.spec b/dll/win32/secur32/secur32.spec similarity index 100% rename from reactos/dll/win32/secur32/secur32.spec rename to dll/win32/secur32/secur32.spec diff --git a/reactos/dll/win32/secur32/sspi.c b/dll/win32/secur32/sspi.c similarity index 100% rename from reactos/dll/win32/secur32/sspi.c rename to dll/win32/secur32/sspi.c diff --git a/reactos/dll/win32/secur32/stubs.c b/dll/win32/secur32/stubs.c similarity index 100% rename from reactos/dll/win32/secur32/stubs.c rename to dll/win32/secur32/stubs.c diff --git a/reactos/dll/win32/security/CMakeLists.txt b/dll/win32/security/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/security/CMakeLists.txt rename to dll/win32/security/CMakeLists.txt diff --git a/reactos/dll/win32/security/security.rc b/dll/win32/security/security.rc similarity index 100% rename from reactos/dll/win32/security/security.rc rename to dll/win32/security/security.rc diff --git a/reactos/dll/win32/security/security.spec b/dll/win32/security/security.spec similarity index 100% rename from reactos/dll/win32/security/security.spec rename to dll/win32/security/security.spec diff --git a/reactos/dll/win32/sensapi/CMakeLists.txt b/dll/win32/sensapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/sensapi/CMakeLists.txt rename to dll/win32/sensapi/CMakeLists.txt diff --git a/reactos/dll/win32/sensapi/sensapi.c b/dll/win32/sensapi/sensapi.c similarity index 100% rename from reactos/dll/win32/sensapi/sensapi.c rename to dll/win32/sensapi/sensapi.c diff --git a/reactos/dll/win32/sensapi/sensapi.spec b/dll/win32/sensapi/sensapi.spec similarity index 100% rename from reactos/dll/win32/sensapi/sensapi.spec rename to dll/win32/sensapi/sensapi.spec diff --git a/reactos/dll/win32/serialui/CMakeLists.txt b/dll/win32/serialui/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/serialui/CMakeLists.txt rename to dll/win32/serialui/CMakeLists.txt diff --git a/reactos/dll/win32/serialui/lang/bg-BG.rc b/dll/win32/serialui/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/bg-BG.rc rename to dll/win32/serialui/lang/bg-BG.rc diff --git a/reactos/dll/win32/serialui/lang/cs-CZ.rc b/dll/win32/serialui/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/cs-CZ.rc rename to dll/win32/serialui/lang/cs-CZ.rc diff --git a/reactos/dll/win32/serialui/lang/de-DE.rc b/dll/win32/serialui/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/de-DE.rc rename to dll/win32/serialui/lang/de-DE.rc diff --git a/reactos/dll/win32/serialui/lang/en-US.rc b/dll/win32/serialui/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/en-US.rc rename to dll/win32/serialui/lang/en-US.rc diff --git a/reactos/dll/win32/serialui/lang/es-ES.rc b/dll/win32/serialui/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/es-ES.rc rename to dll/win32/serialui/lang/es-ES.rc diff --git a/reactos/dll/win32/serialui/lang/fr-FR.rc b/dll/win32/serialui/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/fr-FR.rc rename to dll/win32/serialui/lang/fr-FR.rc diff --git a/reactos/dll/win32/serialui/lang/id-ID.rc b/dll/win32/serialui/lang/id-ID.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/id-ID.rc rename to dll/win32/serialui/lang/id-ID.rc diff --git a/reactos/dll/win32/serialui/lang/it-IT.rc b/dll/win32/serialui/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/it-IT.rc rename to dll/win32/serialui/lang/it-IT.rc diff --git a/reactos/dll/win32/serialui/lang/no-NO.rc b/dll/win32/serialui/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/no-NO.rc rename to dll/win32/serialui/lang/no-NO.rc diff --git a/reactos/dll/win32/serialui/lang/pl-PL.rc b/dll/win32/serialui/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/pl-PL.rc rename to dll/win32/serialui/lang/pl-PL.rc diff --git a/reactos/dll/win32/serialui/lang/ro-RO.rc b/dll/win32/serialui/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/ro-RO.rc rename to dll/win32/serialui/lang/ro-RO.rc diff --git a/reactos/dll/win32/serialui/lang/ru-RU.rc b/dll/win32/serialui/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/ru-RU.rc rename to dll/win32/serialui/lang/ru-RU.rc diff --git a/reactos/dll/win32/serialui/lang/uk-UA.rc b/dll/win32/serialui/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/serialui/lang/uk-UA.rc rename to dll/win32/serialui/lang/uk-UA.rc diff --git a/reactos/dll/win32/serialui/resource.h b/dll/win32/serialui/resource.h similarity index 100% rename from reactos/dll/win32/serialui/resource.h rename to dll/win32/serialui/resource.h diff --git a/reactos/dll/win32/serialui/serialui.c b/dll/win32/serialui/serialui.c similarity index 100% rename from reactos/dll/win32/serialui/serialui.c rename to dll/win32/serialui/serialui.c diff --git a/reactos/dll/win32/serialui/serialui.h b/dll/win32/serialui/serialui.h similarity index 100% rename from reactos/dll/win32/serialui/serialui.h rename to dll/win32/serialui/serialui.h diff --git a/reactos/dll/win32/serialui/serialui.rc b/dll/win32/serialui/serialui.rc similarity index 100% rename from reactos/dll/win32/serialui/serialui.rc rename to dll/win32/serialui/serialui.rc diff --git a/reactos/dll/win32/serialui/serialui.spec b/dll/win32/serialui/serialui.spec similarity index 100% rename from reactos/dll/win32/serialui/serialui.spec rename to dll/win32/serialui/serialui.spec diff --git a/reactos/dll/win32/setupapi/CMakeLists.txt b/dll/win32/setupapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/setupapi/CMakeLists.txt rename to dll/win32/setupapi/CMakeLists.txt diff --git a/reactos/dll/win32/setupapi/cfgmgr.c b/dll/win32/setupapi/cfgmgr.c similarity index 100% rename from reactos/dll/win32/setupapi/cfgmgr.c rename to dll/win32/setupapi/cfgmgr.c diff --git a/reactos/dll/win32/setupapi/devclass.c b/dll/win32/setupapi/devclass.c similarity index 100% rename from reactos/dll/win32/setupapi/devclass.c rename to dll/win32/setupapi/devclass.c diff --git a/reactos/dll/win32/setupapi/devinst.c b/dll/win32/setupapi/devinst.c similarity index 100% rename from reactos/dll/win32/setupapi/devinst.c rename to dll/win32/setupapi/devinst.c diff --git a/reactos/dll/win32/setupapi/dirid.c b/dll/win32/setupapi/dirid.c similarity index 100% rename from reactos/dll/win32/setupapi/dirid.c rename to dll/win32/setupapi/dirid.c diff --git a/reactos/dll/win32/setupapi/diskspace.c b/dll/win32/setupapi/diskspace.c similarity index 100% rename from reactos/dll/win32/setupapi/diskspace.c rename to dll/win32/setupapi/diskspace.c diff --git a/reactos/dll/win32/setupapi/driver.c b/dll/win32/setupapi/driver.c similarity index 100% rename from reactos/dll/win32/setupapi/driver.c rename to dll/win32/setupapi/driver.c diff --git a/reactos/dll/win32/setupapi/install.c b/dll/win32/setupapi/install.c similarity index 100% rename from reactos/dll/win32/setupapi/install.c rename to dll/win32/setupapi/install.c diff --git a/reactos/dll/win32/setupapi/interface.c b/dll/win32/setupapi/interface.c similarity index 100% rename from reactos/dll/win32/setupapi/interface.c rename to dll/win32/setupapi/interface.c diff --git a/reactos/dll/win32/setupapi/lang/bg-BG.rc b/dll/win32/setupapi/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/bg-BG.rc rename to dll/win32/setupapi/lang/bg-BG.rc diff --git a/reactos/dll/win32/setupapi/lang/cs-CZ.rc b/dll/win32/setupapi/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/cs-CZ.rc rename to dll/win32/setupapi/lang/cs-CZ.rc diff --git a/reactos/dll/win32/setupapi/lang/da-DK.rc b/dll/win32/setupapi/lang/da-DK.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/da-DK.rc rename to dll/win32/setupapi/lang/da-DK.rc diff --git a/reactos/dll/win32/setupapi/lang/de-DE.rc b/dll/win32/setupapi/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/de-DE.rc rename to dll/win32/setupapi/lang/de-DE.rc diff --git a/reactos/dll/win32/setupapi/lang/en-US.rc b/dll/win32/setupapi/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/en-US.rc rename to dll/win32/setupapi/lang/en-US.rc diff --git a/reactos/dll/win32/setupapi/lang/es-ES.rc b/dll/win32/setupapi/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/es-ES.rc rename to dll/win32/setupapi/lang/es-ES.rc diff --git a/reactos/dll/win32/setupapi/lang/fi-FI.rc b/dll/win32/setupapi/lang/fi-FI.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/fi-FI.rc rename to dll/win32/setupapi/lang/fi-FI.rc diff --git a/reactos/dll/win32/setupapi/lang/fr-FR.rc b/dll/win32/setupapi/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/fr-FR.rc rename to dll/win32/setupapi/lang/fr-FR.rc diff --git a/reactos/dll/win32/setupapi/lang/hu-HU.rc b/dll/win32/setupapi/lang/hu-HU.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/hu-HU.rc rename to dll/win32/setupapi/lang/hu-HU.rc diff --git a/reactos/dll/win32/setupapi/lang/id-ID.rc b/dll/win32/setupapi/lang/id-ID.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/id-ID.rc rename to dll/win32/setupapi/lang/id-ID.rc diff --git a/reactos/dll/win32/setupapi/lang/it-IT.rc b/dll/win32/setupapi/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/it-IT.rc rename to dll/win32/setupapi/lang/it-IT.rc diff --git a/reactos/dll/win32/setupapi/lang/ja-JP.rc b/dll/win32/setupapi/lang/ja-JP.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/ja-JP.rc rename to dll/win32/setupapi/lang/ja-JP.rc diff --git a/reactos/dll/win32/setupapi/lang/ko-KR.rc b/dll/win32/setupapi/lang/ko-KR.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/ko-KR.rc rename to dll/win32/setupapi/lang/ko-KR.rc diff --git a/reactos/dll/win32/setupapi/lang/nl-NL.rc b/dll/win32/setupapi/lang/nl-NL.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/nl-NL.rc rename to dll/win32/setupapi/lang/nl-NL.rc diff --git a/reactos/dll/win32/setupapi/lang/no-NO.rc b/dll/win32/setupapi/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/no-NO.rc rename to dll/win32/setupapi/lang/no-NO.rc diff --git a/reactos/dll/win32/setupapi/lang/pl-PL.rc b/dll/win32/setupapi/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/pl-PL.rc rename to dll/win32/setupapi/lang/pl-PL.rc diff --git a/reactos/dll/win32/setupapi/lang/pt-BR.rc b/dll/win32/setupapi/lang/pt-BR.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/pt-BR.rc rename to dll/win32/setupapi/lang/pt-BR.rc diff --git a/reactos/dll/win32/setupapi/lang/ro-RO.rc b/dll/win32/setupapi/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/ro-RO.rc rename to dll/win32/setupapi/lang/ro-RO.rc diff --git a/reactos/dll/win32/setupapi/lang/ru-RU.rc b/dll/win32/setupapi/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/ru-RU.rc rename to dll/win32/setupapi/lang/ru-RU.rc diff --git a/reactos/dll/win32/setupapi/lang/sk-SK.rc b/dll/win32/setupapi/lang/sk-SK.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/sk-SK.rc rename to dll/win32/setupapi/lang/sk-SK.rc diff --git a/reactos/dll/win32/setupapi/lang/sv-SE.rc b/dll/win32/setupapi/lang/sv-SE.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/sv-SE.rc rename to dll/win32/setupapi/lang/sv-SE.rc diff --git a/reactos/dll/win32/setupapi/lang/th-TH.rc b/dll/win32/setupapi/lang/th-TH.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/th-TH.rc rename to dll/win32/setupapi/lang/th-TH.rc diff --git a/reactos/dll/win32/setupapi/lang/tr-TR.rc b/dll/win32/setupapi/lang/tr-TR.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/tr-TR.rc rename to dll/win32/setupapi/lang/tr-TR.rc diff --git a/reactos/dll/win32/setupapi/lang/uk-UA.rc b/dll/win32/setupapi/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/setupapi/lang/uk-UA.rc rename to dll/win32/setupapi/lang/uk-UA.rc diff --git a/reactos/dll/win32/setupapi/misc.c b/dll/win32/setupapi/misc.c similarity index 100% rename from reactos/dll/win32/setupapi/misc.c rename to dll/win32/setupapi/misc.c diff --git a/reactos/dll/win32/setupapi/parser.c b/dll/win32/setupapi/parser.c similarity index 100% rename from reactos/dll/win32/setupapi/parser.c rename to dll/win32/setupapi/parser.c diff --git a/reactos/dll/win32/setupapi/query.c b/dll/win32/setupapi/query.c similarity index 100% rename from reactos/dll/win32/setupapi/query.c rename to dll/win32/setupapi/query.c diff --git a/reactos/dll/win32/setupapi/queue.c b/dll/win32/setupapi/queue.c similarity index 100% rename from reactos/dll/win32/setupapi/queue.c rename to dll/win32/setupapi/queue.c diff --git a/reactos/dll/win32/setupapi/res/1.ico b/dll/win32/setupapi/res/1.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/1.ico rename to dll/win32/setupapi/res/1.ico diff --git a/reactos/dll/win32/setupapi/res/10.ico b/dll/win32/setupapi/res/10.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/10.ico rename to dll/win32/setupapi/res/10.ico diff --git a/reactos/dll/win32/setupapi/res/105.ico b/dll/win32/setupapi/res/105.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/105.ico rename to dll/win32/setupapi/res/105.ico diff --git a/reactos/dll/win32/setupapi/res/11.ico b/dll/win32/setupapi/res/11.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/11.ico rename to dll/win32/setupapi/res/11.ico diff --git a/reactos/dll/win32/setupapi/res/159.ico b/dll/win32/setupapi/res/159.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/159.ico rename to dll/win32/setupapi/res/159.ico diff --git a/reactos/dll/win32/setupapi/res/161.ico b/dll/win32/setupapi/res/161.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/161.ico rename to dll/win32/setupapi/res/161.ico diff --git a/reactos/dll/win32/setupapi/res/18.ico b/dll/win32/setupapi/res/18.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/18.ico rename to dll/win32/setupapi/res/18.ico diff --git a/reactos/dll/win32/setupapi/res/19.ico b/dll/win32/setupapi/res/19.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/19.ico rename to dll/win32/setupapi/res/19.ico diff --git a/reactos/dll/win32/setupapi/res/2.ico b/dll/win32/setupapi/res/2.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/2.ico rename to dll/win32/setupapi/res/2.ico diff --git a/reactos/dll/win32/setupapi/res/20.ico b/dll/win32/setupapi/res/20.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/20.ico rename to dll/win32/setupapi/res/20.ico diff --git a/reactos/dll/win32/setupapi/res/21.ico b/dll/win32/setupapi/res/21.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/21.ico rename to dll/win32/setupapi/res/21.ico diff --git a/reactos/dll/win32/setupapi/res/22.ico b/dll/win32/setupapi/res/22.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/22.ico rename to dll/win32/setupapi/res/22.ico diff --git a/reactos/dll/win32/setupapi/res/23.ico b/dll/win32/setupapi/res/23.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/23.ico rename to dll/win32/setupapi/res/23.ico diff --git a/reactos/dll/win32/setupapi/res/24.ico b/dll/win32/setupapi/res/24.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/24.ico rename to dll/win32/setupapi/res/24.ico diff --git a/reactos/dll/win32/setupapi/res/25.ico b/dll/win32/setupapi/res/25.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/25.ico rename to dll/win32/setupapi/res/25.ico diff --git a/reactos/dll/win32/setupapi/res/26.ico b/dll/win32/setupapi/res/26.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/26.ico rename to dll/win32/setupapi/res/26.ico diff --git a/reactos/dll/win32/setupapi/res/27.ico b/dll/win32/setupapi/res/27.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/27.ico rename to dll/win32/setupapi/res/27.ico diff --git a/reactos/dll/win32/setupapi/res/28.ico b/dll/win32/setupapi/res/28.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/28.ico rename to dll/win32/setupapi/res/28.ico diff --git a/reactos/dll/win32/setupapi/res/3.ico b/dll/win32/setupapi/res/3.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/3.ico rename to dll/win32/setupapi/res/3.ico diff --git a/reactos/dll/win32/setupapi/res/4.ico b/dll/win32/setupapi/res/4.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/4.ico rename to dll/win32/setupapi/res/4.ico diff --git a/reactos/dll/win32/setupapi/res/40.ico b/dll/win32/setupapi/res/40.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/40.ico rename to dll/win32/setupapi/res/40.ico diff --git a/reactos/dll/win32/setupapi/res/41.ico b/dll/win32/setupapi/res/41.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/41.ico rename to dll/win32/setupapi/res/41.ico diff --git a/reactos/dll/win32/setupapi/res/42.ico b/dll/win32/setupapi/res/42.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/42.ico rename to dll/win32/setupapi/res/42.ico diff --git a/reactos/dll/win32/setupapi/res/43.ico b/dll/win32/setupapi/res/43.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/43.ico rename to dll/win32/setupapi/res/43.ico diff --git a/reactos/dll/win32/setupapi/res/5.ico b/dll/win32/setupapi/res/5.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/5.ico rename to dll/win32/setupapi/res/5.ico diff --git a/reactos/dll/win32/setupapi/res/50.ico b/dll/win32/setupapi/res/50.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/50.ico rename to dll/win32/setupapi/res/50.ico diff --git a/reactos/dll/win32/setupapi/res/500.ico b/dll/win32/setupapi/res/500.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/500.ico rename to dll/win32/setupapi/res/500.ico diff --git a/reactos/dll/win32/setupapi/res/501.ico b/dll/win32/setupapi/res/501.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/501.ico rename to dll/win32/setupapi/res/501.ico diff --git a/reactos/dll/win32/setupapi/res/502.ico b/dll/win32/setupapi/res/502.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/502.ico rename to dll/win32/setupapi/res/502.ico diff --git a/reactos/dll/win32/setupapi/res/51.ico b/dll/win32/setupapi/res/51.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/51.ico rename to dll/win32/setupapi/res/51.ico diff --git a/reactos/dll/win32/setupapi/res/52.ico b/dll/win32/setupapi/res/52.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/52.ico rename to dll/win32/setupapi/res/52.ico diff --git a/reactos/dll/win32/setupapi/res/53.ico b/dll/win32/setupapi/res/53.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/53.ico rename to dll/win32/setupapi/res/53.ico diff --git a/reactos/dll/win32/setupapi/res/54.ico b/dll/win32/setupapi/res/54.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/54.ico rename to dll/win32/setupapi/res/54.ico diff --git a/reactos/dll/win32/setupapi/res/6.ico b/dll/win32/setupapi/res/6.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/6.ico rename to dll/win32/setupapi/res/6.ico diff --git a/reactos/dll/win32/setupapi/res/7.ico b/dll/win32/setupapi/res/7.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/7.ico rename to dll/win32/setupapi/res/7.ico diff --git a/reactos/dll/win32/setupapi/res/8.ico b/dll/win32/setupapi/res/8.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/8.ico rename to dll/win32/setupapi/res/8.ico diff --git a/reactos/dll/win32/setupapi/res/9.ico b/dll/win32/setupapi/res/9.ico similarity index 100% rename from reactos/dll/win32/setupapi/res/9.ico rename to dll/win32/setupapi/res/9.ico diff --git a/reactos/dll/win32/setupapi/res/Icon_Licence/COPYING b/dll/win32/setupapi/res/Icon_Licence/COPYING similarity index 100% rename from reactos/dll/win32/setupapi/res/Icon_Licence/COPYING rename to dll/win32/setupapi/res/Icon_Licence/COPYING diff --git a/reactos/dll/win32/setupapi/res/Icon_Licence/Tango.txt b/dll/win32/setupapi/res/Icon_Licence/Tango.txt similarity index 100% rename from reactos/dll/win32/setupapi/res/Icon_Licence/Tango.txt rename to dll/win32/setupapi/res/Icon_Licence/Tango.txt diff --git a/reactos/dll/win32/setupapi/res/icons_res.rc b/dll/win32/setupapi/res/icons_res.rc similarity index 100% rename from reactos/dll/win32/setupapi/res/icons_res.rc rename to dll/win32/setupapi/res/icons_res.rc diff --git a/reactos/dll/win32/setupapi/resource.h b/dll/win32/setupapi/resource.h similarity index 100% rename from reactos/dll/win32/setupapi/resource.h rename to dll/win32/setupapi/resource.h diff --git a/reactos/dll/win32/setupapi/rpc.c b/dll/win32/setupapi/rpc.c similarity index 100% rename from reactos/dll/win32/setupapi/rpc.c rename to dll/win32/setupapi/rpc.c diff --git a/reactos/dll/win32/setupapi/rpc_private.h b/dll/win32/setupapi/rpc_private.h similarity index 100% rename from reactos/dll/win32/setupapi/rpc_private.h rename to dll/win32/setupapi/rpc_private.h diff --git a/reactos/dll/win32/setupapi/setupapi.rc b/dll/win32/setupapi/setupapi.rc similarity index 100% rename from reactos/dll/win32/setupapi/setupapi.rc rename to dll/win32/setupapi/setupapi.rc diff --git a/reactos/dll/win32/setupapi/setupapi.spec b/dll/win32/setupapi/setupapi.spec similarity index 100% rename from reactos/dll/win32/setupapi/setupapi.spec rename to dll/win32/setupapi/setupapi.spec diff --git a/reactos/dll/win32/setupapi/setupapi_private.h b/dll/win32/setupapi/setupapi_private.h similarity index 100% rename from reactos/dll/win32/setupapi/setupapi_private.h rename to dll/win32/setupapi/setupapi_private.h diff --git a/reactos/dll/win32/setupapi/setupcab.c b/dll/win32/setupapi/setupcab.c similarity index 100% rename from reactos/dll/win32/setupapi/setupcab.c rename to dll/win32/setupapi/setupcab.c diff --git a/reactos/dll/win32/setupapi/stringtable.c b/dll/win32/setupapi/stringtable.c similarity index 100% rename from reactos/dll/win32/setupapi/stringtable.c rename to dll/win32/setupapi/stringtable.c diff --git a/reactos/dll/win32/setupapi/stubs.c b/dll/win32/setupapi/stubs.c similarity index 100% rename from reactos/dll/win32/setupapi/stubs.c rename to dll/win32/setupapi/stubs.c diff --git a/reactos/dll/win32/sfc/CMakeLists.txt b/dll/win32/sfc/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/sfc/CMakeLists.txt rename to dll/win32/sfc/CMakeLists.txt diff --git a/reactos/dll/win32/sfc/precomp.h b/dll/win32/sfc/precomp.h similarity index 100% rename from reactos/dll/win32/sfc/precomp.h rename to dll/win32/sfc/precomp.h diff --git a/reactos/dll/win32/sfc/sfc.c b/dll/win32/sfc/sfc.c similarity index 100% rename from reactos/dll/win32/sfc/sfc.c rename to dll/win32/sfc/sfc.c diff --git a/reactos/dll/win32/sfc/sfc.spec b/dll/win32/sfc/sfc.spec similarity index 100% rename from reactos/dll/win32/sfc/sfc.spec rename to dll/win32/sfc/sfc.spec diff --git a/reactos/dll/win32/sfc_os/CMakeLists.txt b/dll/win32/sfc_os/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/sfc_os/CMakeLists.txt rename to dll/win32/sfc_os/CMakeLists.txt diff --git a/reactos/dll/win32/sfc_os/precomp.h b/dll/win32/sfc_os/precomp.h similarity index 100% rename from reactos/dll/win32/sfc_os/precomp.h rename to dll/win32/sfc_os/precomp.h diff --git a/reactos/dll/win32/sfc_os/sfc_os.c b/dll/win32/sfc_os/sfc_os.c similarity index 100% rename from reactos/dll/win32/sfc_os/sfc_os.c rename to dll/win32/sfc_os/sfc_os.c diff --git a/reactos/dll/win32/sfc_os/sfc_os.spec b/dll/win32/sfc_os/sfc_os.spec similarity index 100% rename from reactos/dll/win32/sfc_os/sfc_os.spec rename to dll/win32/sfc_os/sfc_os.spec diff --git a/reactos/dll/win32/shdoclc/Bg.rc b/dll/win32/shdoclc/Bg.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Bg.rc rename to dll/win32/shdoclc/Bg.rc diff --git a/reactos/dll/win32/shdoclc/CMakeLists.txt b/dll/win32/shdoclc/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/shdoclc/CMakeLists.txt rename to dll/win32/shdoclc/CMakeLists.txt diff --git a/reactos/dll/win32/shdoclc/Da.rc b/dll/win32/shdoclc/Da.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Da.rc rename to dll/win32/shdoclc/Da.rc diff --git a/reactos/dll/win32/shdoclc/De.rc b/dll/win32/shdoclc/De.rc similarity index 100% rename from reactos/dll/win32/shdoclc/De.rc rename to dll/win32/shdoclc/De.rc diff --git a/reactos/dll/win32/shdoclc/En.rc b/dll/win32/shdoclc/En.rc similarity index 100% rename from reactos/dll/win32/shdoclc/En.rc rename to dll/win32/shdoclc/En.rc diff --git a/reactos/dll/win32/shdoclc/Es.rc b/dll/win32/shdoclc/Es.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Es.rc rename to dll/win32/shdoclc/Es.rc diff --git a/reactos/dll/win32/shdoclc/Fi.rc b/dll/win32/shdoclc/Fi.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Fi.rc rename to dll/win32/shdoclc/Fi.rc diff --git a/reactos/dll/win32/shdoclc/Fr.rc b/dll/win32/shdoclc/Fr.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Fr.rc rename to dll/win32/shdoclc/Fr.rc diff --git a/reactos/dll/win32/shdoclc/Hu.rc b/dll/win32/shdoclc/Hu.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Hu.rc rename to dll/win32/shdoclc/Hu.rc diff --git a/reactos/dll/win32/shdoclc/It.rc b/dll/win32/shdoclc/It.rc similarity index 100% rename from reactos/dll/win32/shdoclc/It.rc rename to dll/win32/shdoclc/It.rc diff --git a/reactos/dll/win32/shdoclc/Ja.rc b/dll/win32/shdoclc/Ja.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Ja.rc rename to dll/win32/shdoclc/Ja.rc diff --git a/reactos/dll/win32/shdoclc/Ko.rc b/dll/win32/shdoclc/Ko.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Ko.rc rename to dll/win32/shdoclc/Ko.rc diff --git a/reactos/dll/win32/shdoclc/Lt.rc b/dll/win32/shdoclc/Lt.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Lt.rc rename to dll/win32/shdoclc/Lt.rc diff --git a/reactos/dll/win32/shdoclc/Nl.rc b/dll/win32/shdoclc/Nl.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Nl.rc rename to dll/win32/shdoclc/Nl.rc diff --git a/reactos/dll/win32/shdoclc/No.rc b/dll/win32/shdoclc/No.rc similarity index 100% rename from reactos/dll/win32/shdoclc/No.rc rename to dll/win32/shdoclc/No.rc diff --git a/reactos/dll/win32/shdoclc/Pl.rc b/dll/win32/shdoclc/Pl.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Pl.rc rename to dll/win32/shdoclc/Pl.rc diff --git a/reactos/dll/win32/shdoclc/Pt.rc b/dll/win32/shdoclc/Pt.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Pt.rc rename to dll/win32/shdoclc/Pt.rc diff --git a/reactos/dll/win32/shdoclc/Ro.rc b/dll/win32/shdoclc/Ro.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Ro.rc rename to dll/win32/shdoclc/Ro.rc diff --git a/reactos/dll/win32/shdoclc/Ru.rc b/dll/win32/shdoclc/Ru.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Ru.rc rename to dll/win32/shdoclc/Ru.rc diff --git a/reactos/dll/win32/shdoclc/Si.rc b/dll/win32/shdoclc/Si.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Si.rc rename to dll/win32/shdoclc/Si.rc diff --git a/reactos/dll/win32/shdoclc/Sv.rc b/dll/win32/shdoclc/Sv.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Sv.rc rename to dll/win32/shdoclc/Sv.rc diff --git a/reactos/dll/win32/shdoclc/Tr.rc b/dll/win32/shdoclc/Tr.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Tr.rc rename to dll/win32/shdoclc/Tr.rc diff --git a/reactos/dll/win32/shdoclc/Uk.rc b/dll/win32/shdoclc/Uk.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Uk.rc rename to dll/win32/shdoclc/Uk.rc diff --git a/reactos/dll/win32/shdoclc/Zh.rc b/dll/win32/shdoclc/Zh.rc similarity index 100% rename from reactos/dll/win32/shdoclc/Zh.rc rename to dll/win32/shdoclc/Zh.rc diff --git a/reactos/dll/win32/shdoclc/rsrc.rc b/dll/win32/shdoclc/rsrc.rc similarity index 100% rename from reactos/dll/win32/shdoclc/rsrc.rc rename to dll/win32/shdoclc/rsrc.rc diff --git a/reactos/dll/win32/shdoclc/shdoclc.h b/dll/win32/shdoclc/shdoclc.h similarity index 100% rename from reactos/dll/win32/shdoclc/shdoclc.h rename to dll/win32/shdoclc/shdoclc.h diff --git a/reactos/dll/win32/shdoclc/shdoclc.spec b/dll/win32/shdoclc/shdoclc.spec similarity index 100% rename from reactos/dll/win32/shdoclc/shdoclc.spec rename to dll/win32/shdoclc/shdoclc.spec diff --git a/reactos/dll/win32/shdocvw/CMakeLists.txt b/dll/win32/shdocvw/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/shdocvw/CMakeLists.txt rename to dll/win32/shdocvw/CMakeLists.txt diff --git a/reactos/dll/win32/shdocvw/De.rc b/dll/win32/shdocvw/De.rc similarity index 100% rename from reactos/dll/win32/shdocvw/De.rc rename to dll/win32/shdocvw/De.rc diff --git a/reactos/dll/win32/shdocvw/En.rc b/dll/win32/shdocvw/En.rc similarity index 100% rename from reactos/dll/win32/shdocvw/En.rc rename to dll/win32/shdocvw/En.rc diff --git a/reactos/dll/win32/shdocvw/Es.rc b/dll/win32/shdocvw/Es.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Es.rc rename to dll/win32/shdocvw/Es.rc diff --git a/reactos/dll/win32/shdocvw/Fr.rc b/dll/win32/shdocvw/Fr.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Fr.rc rename to dll/win32/shdocvw/Fr.rc diff --git a/reactos/dll/win32/shdocvw/He.rc b/dll/win32/shdocvw/He.rc similarity index 100% rename from reactos/dll/win32/shdocvw/He.rc rename to dll/win32/shdocvw/He.rc diff --git a/reactos/dll/win32/shdocvw/It.rc b/dll/win32/shdocvw/It.rc similarity index 100% rename from reactos/dll/win32/shdocvw/It.rc rename to dll/win32/shdocvw/It.rc diff --git a/reactos/dll/win32/shdocvw/Ko.rc b/dll/win32/shdocvw/Ko.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Ko.rc rename to dll/win32/shdocvw/Ko.rc diff --git a/reactos/dll/win32/shdocvw/Lt.rc b/dll/win32/shdocvw/Lt.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Lt.rc rename to dll/win32/shdocvw/Lt.rc diff --git a/reactos/dll/win32/shdocvw/Nl.rc b/dll/win32/shdocvw/Nl.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Nl.rc rename to dll/win32/shdocvw/Nl.rc diff --git a/reactos/dll/win32/shdocvw/Pl.rc b/dll/win32/shdocvw/Pl.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Pl.rc rename to dll/win32/shdocvw/Pl.rc diff --git a/reactos/dll/win32/shdocvw/Pt.rc b/dll/win32/shdocvw/Pt.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Pt.rc rename to dll/win32/shdocvw/Pt.rc diff --git a/reactos/dll/win32/shdocvw/Ro.rc b/dll/win32/shdocvw/Ro.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Ro.rc rename to dll/win32/shdocvw/Ro.rc diff --git a/reactos/dll/win32/shdocvw/Si.rc b/dll/win32/shdocvw/Si.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Si.rc rename to dll/win32/shdocvw/Si.rc diff --git a/reactos/dll/win32/shdocvw/Sr.rc b/dll/win32/shdocvw/Sr.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Sr.rc rename to dll/win32/shdocvw/Sr.rc diff --git a/reactos/dll/win32/shdocvw/Sv.rc b/dll/win32/shdocvw/Sv.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Sv.rc rename to dll/win32/shdocvw/Sv.rc diff --git a/reactos/dll/win32/shdocvw/Uk.rc b/dll/win32/shdocvw/Uk.rc similarity index 100% rename from reactos/dll/win32/shdocvw/Uk.rc rename to dll/win32/shdocvw/Uk.rc diff --git a/reactos/dll/win32/shdocvw/classinfo.c b/dll/win32/shdocvw/classinfo.c similarity index 100% rename from reactos/dll/win32/shdocvw/classinfo.c rename to dll/win32/shdocvw/classinfo.c diff --git a/reactos/dll/win32/shdocvw/client.c b/dll/win32/shdocvw/client.c similarity index 100% rename from reactos/dll/win32/shdocvw/client.c rename to dll/win32/shdocvw/client.c diff --git a/reactos/dll/win32/shdocvw/dochost.c b/dll/win32/shdocvw/dochost.c similarity index 100% rename from reactos/dll/win32/shdocvw/dochost.c rename to dll/win32/shdocvw/dochost.c diff --git a/reactos/dll/win32/shdocvw/events.c b/dll/win32/shdocvw/events.c similarity index 100% rename from reactos/dll/win32/shdocvw/events.c rename to dll/win32/shdocvw/events.c diff --git a/reactos/dll/win32/shdocvw/factory.c b/dll/win32/shdocvw/factory.c similarity index 100% rename from reactos/dll/win32/shdocvw/factory.c rename to dll/win32/shdocvw/factory.c diff --git a/reactos/dll/win32/shdocvw/frame.c b/dll/win32/shdocvw/frame.c similarity index 100% rename from reactos/dll/win32/shdocvw/frame.c rename to dll/win32/shdocvw/frame.c diff --git a/reactos/dll/win32/shdocvw/ie.c b/dll/win32/shdocvw/ie.c similarity index 100% rename from reactos/dll/win32/shdocvw/ie.c rename to dll/win32/shdocvw/ie.c diff --git a/reactos/dll/win32/shdocvw/ietoolbar.bmp b/dll/win32/shdocvw/ietoolbar.bmp similarity index 100% rename from reactos/dll/win32/shdocvw/ietoolbar.bmp rename to dll/win32/shdocvw/ietoolbar.bmp diff --git a/reactos/dll/win32/shdocvw/ietoolbar.svg b/dll/win32/shdocvw/ietoolbar.svg similarity index 100% rename from reactos/dll/win32/shdocvw/ietoolbar.svg rename to dll/win32/shdocvw/ietoolbar.svg diff --git a/reactos/dll/win32/shdocvw/iexplore.c b/dll/win32/shdocvw/iexplore.c similarity index 100% rename from reactos/dll/win32/shdocvw/iexplore.c rename to dll/win32/shdocvw/iexplore.c diff --git a/reactos/dll/win32/shdocvw/intshcut.c b/dll/win32/shdocvw/intshcut.c similarity index 100% rename from reactos/dll/win32/shdocvw/intshcut.c rename to dll/win32/shdocvw/intshcut.c diff --git a/reactos/dll/win32/shdocvw/navigate.c b/dll/win32/shdocvw/navigate.c similarity index 100% rename from reactos/dll/win32/shdocvw/navigate.c rename to dll/win32/shdocvw/navigate.c diff --git a/reactos/dll/win32/shdocvw/oleobject.c b/dll/win32/shdocvw/oleobject.c similarity index 100% rename from reactos/dll/win32/shdocvw/oleobject.c rename to dll/win32/shdocvw/oleobject.c diff --git a/reactos/dll/win32/shdocvw/persist.c b/dll/win32/shdocvw/persist.c similarity index 100% rename from reactos/dll/win32/shdocvw/persist.c rename to dll/win32/shdocvw/persist.c diff --git a/reactos/dll/win32/shdocvw/resource.h b/dll/win32/shdocvw/resource.h similarity index 100% rename from reactos/dll/win32/shdocvw/resource.h rename to dll/win32/shdocvw/resource.h diff --git a/reactos/dll/win32/shdocvw/shdocvw.h b/dll/win32/shdocvw/shdocvw.h similarity index 100% rename from reactos/dll/win32/shdocvw/shdocvw.h rename to dll/win32/shdocvw/shdocvw.h diff --git a/reactos/dll/win32/shdocvw/shdocvw.inf b/dll/win32/shdocvw/shdocvw.inf similarity index 100% rename from reactos/dll/win32/shdocvw/shdocvw.inf rename to dll/win32/shdocvw/shdocvw.inf diff --git a/reactos/dll/win32/shdocvw/shdocvw.rc b/dll/win32/shdocvw/shdocvw.rc similarity index 100% rename from reactos/dll/win32/shdocvw/shdocvw.rc rename to dll/win32/shdocvw/shdocvw.rc diff --git a/reactos/dll/win32/shdocvw/shdocvw.spec b/dll/win32/shdocvw/shdocvw.spec similarity index 100% rename from reactos/dll/win32/shdocvw/shdocvw.spec rename to dll/win32/shdocvw/shdocvw.spec diff --git a/reactos/dll/win32/shdocvw/shdocvw_main.c b/dll/win32/shdocvw/shdocvw_main.c similarity index 100% rename from reactos/dll/win32/shdocvw/shdocvw_main.c rename to dll/win32/shdocvw/shdocvw_main.c diff --git a/reactos/dll/win32/shdocvw/shdocvw_v1.idl b/dll/win32/shdocvw/shdocvw_v1.idl similarity index 100% rename from reactos/dll/win32/shdocvw/shdocvw_v1.idl rename to dll/win32/shdocvw/shdocvw_v1.idl diff --git a/reactos/dll/win32/shdocvw/shlinstobj.c b/dll/win32/shdocvw/shlinstobj.c similarity index 100% rename from reactos/dll/win32/shdocvw/shlinstobj.c rename to dll/win32/shdocvw/shlinstobj.c diff --git a/reactos/dll/win32/shdocvw/taskbarlist.c b/dll/win32/shdocvw/taskbarlist.c similarity index 100% rename from reactos/dll/win32/shdocvw/taskbarlist.c rename to dll/win32/shdocvw/taskbarlist.c diff --git a/reactos/dll/win32/shdocvw/urlhist.c b/dll/win32/shdocvw/urlhist.c similarity index 100% rename from reactos/dll/win32/shdocvw/urlhist.c rename to dll/win32/shdocvw/urlhist.c diff --git a/reactos/dll/win32/shdocvw/version.rc b/dll/win32/shdocvw/version.rc similarity index 100% rename from reactos/dll/win32/shdocvw/version.rc rename to dll/win32/shdocvw/version.rc diff --git a/reactos/dll/win32/shdocvw/view.c b/dll/win32/shdocvw/view.c similarity index 100% rename from reactos/dll/win32/shdocvw/view.c rename to dll/win32/shdocvw/view.c diff --git a/reactos/dll/win32/shdocvw/webbrowser.c b/dll/win32/shdocvw/webbrowser.c similarity index 100% rename from reactos/dll/win32/shdocvw/webbrowser.c rename to dll/win32/shdocvw/webbrowser.c diff --git a/reactos/dll/win32/shell32/CMakeLists.txt b/dll/win32/shell32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/shell32/CMakeLists.txt rename to dll/win32/shell32/CMakeLists.txt diff --git a/reactos/dll/win32/shell32/TODO.txt b/dll/win32/shell32/TODO.txt similarity index 100% rename from reactos/dll/win32/shell32/TODO.txt rename to dll/win32/shell32/TODO.txt diff --git a/reactos/dll/win32/shell32/authors.cpp b/dll/win32/shell32/authors.cpp similarity index 100% rename from reactos/dll/win32/shell32/authors.cpp rename to dll/win32/shell32/authors.cpp diff --git a/reactos/dll/win32/shell32/autocomplete.cpp b/dll/win32/shell32/autocomplete.cpp similarity index 100% rename from reactos/dll/win32/shell32/autocomplete.cpp rename to dll/win32/shell32/autocomplete.cpp diff --git a/reactos/dll/win32/shell32/autocomplete.h b/dll/win32/shell32/autocomplete.h similarity index 100% rename from reactos/dll/win32/shell32/autocomplete.h rename to dll/win32/shell32/autocomplete.h diff --git a/reactos/dll/win32/shell32/avi_res.rc b/dll/win32/shell32/avi_res.rc similarity index 100% rename from reactos/dll/win32/shell32/avi_res.rc rename to dll/win32/shell32/avi_res.rc diff --git a/reactos/dll/win32/shell32/bitmap_res.rc b/dll/win32/shell32/bitmap_res.rc similarity index 100% rename from reactos/dll/win32/shell32/bitmap_res.rc rename to dll/win32/shell32/bitmap_res.rc diff --git a/reactos/dll/win32/shell32/brsfolder.cpp b/dll/win32/shell32/brsfolder.cpp similarity index 100% rename from reactos/dll/win32/shell32/brsfolder.cpp rename to dll/win32/shell32/brsfolder.cpp diff --git a/reactos/dll/win32/shell32/changenotify.cpp b/dll/win32/shell32/changenotify.cpp similarity index 100% rename from reactos/dll/win32/shell32/changenotify.cpp rename to dll/win32/shell32/changenotify.cpp diff --git a/reactos/dll/win32/shell32/classes.cpp b/dll/win32/shell32/classes.cpp similarity index 100% rename from reactos/dll/win32/shell32/classes.cpp rename to dll/win32/shell32/classes.cpp diff --git a/reactos/dll/win32/shell32/clipboard.cpp b/dll/win32/shell32/clipboard.cpp similarity index 100% rename from reactos/dll/win32/shell32/clipboard.cpp rename to dll/win32/shell32/clipboard.cpp diff --git a/reactos/dll/win32/shell32/control.cpp b/dll/win32/shell32/control.cpp similarity index 100% rename from reactos/dll/win32/shell32/control.cpp rename to dll/win32/shell32/control.cpp diff --git a/reactos/dll/win32/shell32/cpanel.h b/dll/win32/shell32/cpanel.h similarity index 100% rename from reactos/dll/win32/shell32/cpanel.h rename to dll/win32/shell32/cpanel.h diff --git a/reactos/dll/win32/shell32/dataobject.cpp b/dll/win32/shell32/dataobject.cpp similarity index 100% rename from reactos/dll/win32/shell32/dataobject.cpp rename to dll/win32/shell32/dataobject.cpp diff --git a/reactos/dll/win32/shell32/dde.cpp b/dll/win32/shell32/dde.cpp similarity index 100% rename from reactos/dll/win32/shell32/dde.cpp rename to dll/win32/shell32/dde.cpp diff --git a/reactos/dll/win32/shell32/debughlp.cpp b/dll/win32/shell32/debughlp.cpp similarity index 100% rename from reactos/dll/win32/shell32/debughlp.cpp rename to dll/win32/shell32/debughlp.cpp diff --git a/reactos/dll/win32/shell32/debughlp.h b/dll/win32/shell32/debughlp.h similarity index 100% rename from reactos/dll/win32/shell32/debughlp.h rename to dll/win32/shell32/debughlp.h diff --git a/reactos/dll/win32/shell32/defcontextmenu.cpp b/dll/win32/shell32/defcontextmenu.cpp similarity index 100% rename from reactos/dll/win32/shell32/defcontextmenu.cpp rename to dll/win32/shell32/defcontextmenu.cpp diff --git a/reactos/dll/win32/shell32/desktop.cpp b/dll/win32/shell32/desktop.cpp similarity index 100% rename from reactos/dll/win32/shell32/desktop.cpp rename to dll/win32/shell32/desktop.cpp diff --git a/reactos/dll/win32/shell32/dialogs.cpp b/dll/win32/shell32/dialogs.cpp similarity index 100% rename from reactos/dll/win32/shell32/dialogs.cpp rename to dll/win32/shell32/dialogs.cpp diff --git a/reactos/dll/win32/shell32/dragdrophelper.cpp b/dll/win32/shell32/dragdrophelper.cpp similarity index 100% rename from reactos/dll/win32/shell32/dragdrophelper.cpp rename to dll/win32/shell32/dragdrophelper.cpp diff --git a/reactos/dll/win32/shell32/dragdrophelper.h b/dll/win32/shell32/dragdrophelper.h similarity index 100% rename from reactos/dll/win32/shell32/dragdrophelper.h rename to dll/win32/shell32/dragdrophelper.h diff --git a/reactos/dll/win32/shell32/drive.cpp b/dll/win32/shell32/drive.cpp similarity index 100% rename from reactos/dll/win32/shell32/drive.cpp rename to dll/win32/shell32/drive.cpp diff --git a/reactos/dll/win32/shell32/drvdefext.cpp b/dll/win32/shell32/drvdefext.cpp similarity index 100% rename from reactos/dll/win32/shell32/drvdefext.cpp rename to dll/win32/shell32/drvdefext.cpp diff --git a/reactos/dll/win32/shell32/drvdefext.h b/dll/win32/shell32/drvdefext.h similarity index 100% rename from reactos/dll/win32/shell32/drvdefext.h rename to dll/win32/shell32/drvdefext.h diff --git a/reactos/dll/win32/shell32/enumidlist.cpp b/dll/win32/shell32/enumidlist.cpp similarity index 100% rename from reactos/dll/win32/shell32/enumidlist.cpp rename to dll/win32/shell32/enumidlist.cpp diff --git a/reactos/dll/win32/shell32/enumidlist.h b/dll/win32/shell32/enumidlist.h similarity index 100% rename from reactos/dll/win32/shell32/enumidlist.h rename to dll/win32/shell32/enumidlist.h diff --git a/reactos/dll/win32/shell32/extracticon.cpp b/dll/win32/shell32/extracticon.cpp similarity index 100% rename from reactos/dll/win32/shell32/extracticon.cpp rename to dll/win32/shell32/extracticon.cpp diff --git a/reactos/dll/win32/shell32/filedefext.cpp b/dll/win32/shell32/filedefext.cpp similarity index 100% rename from reactos/dll/win32/shell32/filedefext.cpp rename to dll/win32/shell32/filedefext.cpp diff --git a/reactos/dll/win32/shell32/filedefext.h b/dll/win32/shell32/filedefext.h similarity index 100% rename from reactos/dll/win32/shell32/filedefext.h rename to dll/win32/shell32/filedefext.h diff --git a/reactos/dll/win32/shell32/folder_options.cpp b/dll/win32/shell32/folder_options.cpp similarity index 100% rename from reactos/dll/win32/shell32/folder_options.cpp rename to dll/win32/shell32/folder_options.cpp diff --git a/reactos/dll/win32/shell32/folders.cpp b/dll/win32/shell32/folders.cpp similarity index 100% rename from reactos/dll/win32/shell32/folders.cpp rename to dll/win32/shell32/folders.cpp diff --git a/reactos/dll/win32/shell32/folders/admintools.cpp b/dll/win32/shell32/folders/admintools.cpp similarity index 100% rename from reactos/dll/win32/shell32/folders/admintools.cpp rename to dll/win32/shell32/folders/admintools.cpp diff --git a/reactos/dll/win32/shell32/folders/admintools.h b/dll/win32/shell32/folders/admintools.h similarity index 100% rename from reactos/dll/win32/shell32/folders/admintools.h rename to dll/win32/shell32/folders/admintools.h diff --git a/reactos/dll/win32/shell32/folders/cpanel.cpp b/dll/win32/shell32/folders/cpanel.cpp similarity index 100% rename from reactos/dll/win32/shell32/folders/cpanel.cpp rename to dll/win32/shell32/folders/cpanel.cpp diff --git a/reactos/dll/win32/shell32/folders/cpanel.h b/dll/win32/shell32/folders/cpanel.h similarity index 100% rename from reactos/dll/win32/shell32/folders/cpanel.h rename to dll/win32/shell32/folders/cpanel.h diff --git a/reactos/dll/win32/shell32/folders/desktop.cpp b/dll/win32/shell32/folders/desktop.cpp similarity index 100% rename from reactos/dll/win32/shell32/folders/desktop.cpp rename to dll/win32/shell32/folders/desktop.cpp diff --git a/reactos/dll/win32/shell32/folders/desktop.h b/dll/win32/shell32/folders/desktop.h similarity index 100% rename from reactos/dll/win32/shell32/folders/desktop.h rename to dll/win32/shell32/folders/desktop.h diff --git a/reactos/dll/win32/shell32/folders/fonts.cpp b/dll/win32/shell32/folders/fonts.cpp similarity index 100% rename from reactos/dll/win32/shell32/folders/fonts.cpp rename to dll/win32/shell32/folders/fonts.cpp diff --git a/reactos/dll/win32/shell32/folders/fonts.h b/dll/win32/shell32/folders/fonts.h similarity index 100% rename from reactos/dll/win32/shell32/folders/fonts.h rename to dll/win32/shell32/folders/fonts.h diff --git a/reactos/dll/win32/shell32/folders/fs.cpp b/dll/win32/shell32/folders/fs.cpp similarity index 100% rename from reactos/dll/win32/shell32/folders/fs.cpp rename to dll/win32/shell32/folders/fs.cpp diff --git a/reactos/dll/win32/shell32/folders/fs.h b/dll/win32/shell32/folders/fs.h similarity index 100% rename from reactos/dll/win32/shell32/folders/fs.h rename to dll/win32/shell32/folders/fs.h diff --git a/reactos/dll/win32/shell32/folders/mycomp.cpp b/dll/win32/shell32/folders/mycomp.cpp similarity index 100% rename from reactos/dll/win32/shell32/folders/mycomp.cpp rename to dll/win32/shell32/folders/mycomp.cpp diff --git a/reactos/dll/win32/shell32/folders/mycomp.h b/dll/win32/shell32/folders/mycomp.h similarity index 100% rename from reactos/dll/win32/shell32/folders/mycomp.h rename to dll/win32/shell32/folders/mycomp.h diff --git a/reactos/dll/win32/shell32/folders/mydocuments.cpp b/dll/win32/shell32/folders/mydocuments.cpp similarity index 100% rename from reactos/dll/win32/shell32/folders/mydocuments.cpp rename to dll/win32/shell32/folders/mydocuments.cpp diff --git a/reactos/dll/win32/shell32/folders/mydocuments.h b/dll/win32/shell32/folders/mydocuments.h similarity index 100% rename from reactos/dll/win32/shell32/folders/mydocuments.h rename to dll/win32/shell32/folders/mydocuments.h diff --git a/reactos/dll/win32/shell32/folders/netplaces.cpp b/dll/win32/shell32/folders/netplaces.cpp similarity index 100% rename from reactos/dll/win32/shell32/folders/netplaces.cpp rename to dll/win32/shell32/folders/netplaces.cpp diff --git a/reactos/dll/win32/shell32/folders/netplaces.h b/dll/win32/shell32/folders/netplaces.h similarity index 100% rename from reactos/dll/win32/shell32/folders/netplaces.h rename to dll/win32/shell32/folders/netplaces.h diff --git a/reactos/dll/win32/shell32/folders/printers.cpp b/dll/win32/shell32/folders/printers.cpp similarity index 100% rename from reactos/dll/win32/shell32/folders/printers.cpp rename to dll/win32/shell32/folders/printers.cpp diff --git a/reactos/dll/win32/shell32/folders/printers.h b/dll/win32/shell32/folders/printers.h similarity index 100% rename from reactos/dll/win32/shell32/folders/printers.h rename to dll/win32/shell32/folders/printers.h diff --git a/reactos/dll/win32/shell32/folders/recyclebin.cpp b/dll/win32/shell32/folders/recyclebin.cpp similarity index 100% rename from reactos/dll/win32/shell32/folders/recyclebin.cpp rename to dll/win32/shell32/folders/recyclebin.cpp diff --git a/reactos/dll/win32/shell32/folders/recyclebin.h b/dll/win32/shell32/folders/recyclebin.h similarity index 100% rename from reactos/dll/win32/shell32/folders/recyclebin.h rename to dll/win32/shell32/folders/recyclebin.h diff --git a/reactos/dll/win32/shell32/fprop.cpp b/dll/win32/shell32/fprop.cpp similarity index 100% rename from reactos/dll/win32/shell32/fprop.cpp rename to dll/win32/shell32/fprop.cpp diff --git a/reactos/dll/win32/shell32/icon_res.rc b/dll/win32/shell32/icon_res.rc similarity index 100% rename from reactos/dll/win32/shell32/icon_res.rc rename to dll/win32/shell32/icon_res.rc diff --git a/reactos/dll/win32/shell32/iconcache.cpp b/dll/win32/shell32/iconcache.cpp similarity index 100% rename from reactos/dll/win32/shell32/iconcache.cpp rename to dll/win32/shell32/iconcache.cpp diff --git a/reactos/dll/win32/shell32/lang/bg-BG.rc b/dll/win32/shell32/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/bg-BG.rc rename to dll/win32/shell32/lang/bg-BG.rc diff --git a/reactos/dll/win32/shell32/lang/ca-ES.rc b/dll/win32/shell32/lang/ca-ES.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/ca-ES.rc rename to dll/win32/shell32/lang/ca-ES.rc diff --git a/reactos/dll/win32/shell32/lang/cs-CZ.rc b/dll/win32/shell32/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/cs-CZ.rc rename to dll/win32/shell32/lang/cs-CZ.rc diff --git a/reactos/dll/win32/shell32/lang/da-DK.rc b/dll/win32/shell32/lang/da-DK.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/da-DK.rc rename to dll/win32/shell32/lang/da-DK.rc diff --git a/reactos/dll/win32/shell32/lang/de-DE.rc b/dll/win32/shell32/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/de-DE.rc rename to dll/win32/shell32/lang/de-DE.rc diff --git a/reactos/dll/win32/shell32/lang/el-GR.rc b/dll/win32/shell32/lang/el-GR.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/el-GR.rc rename to dll/win32/shell32/lang/el-GR.rc diff --git a/reactos/dll/win32/shell32/lang/en-GB.rc b/dll/win32/shell32/lang/en-GB.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/en-GB.rc rename to dll/win32/shell32/lang/en-GB.rc diff --git a/reactos/dll/win32/shell32/lang/en-US.rc b/dll/win32/shell32/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/en-US.rc rename to dll/win32/shell32/lang/en-US.rc diff --git a/reactos/dll/win32/shell32/lang/es-ES.rc b/dll/win32/shell32/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/es-ES.rc rename to dll/win32/shell32/lang/es-ES.rc diff --git a/reactos/dll/win32/shell32/lang/fi-FI.rc b/dll/win32/shell32/lang/fi-FI.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/fi-FI.rc rename to dll/win32/shell32/lang/fi-FI.rc diff --git a/reactos/dll/win32/shell32/lang/fr-FR.rc b/dll/win32/shell32/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/fr-FR.rc rename to dll/win32/shell32/lang/fr-FR.rc diff --git a/reactos/dll/win32/shell32/lang/hu-HU.rc b/dll/win32/shell32/lang/hu-HU.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/hu-HU.rc rename to dll/win32/shell32/lang/hu-HU.rc diff --git a/reactos/dll/win32/shell32/lang/it-IT.rc b/dll/win32/shell32/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/it-IT.rc rename to dll/win32/shell32/lang/it-IT.rc diff --git a/reactos/dll/win32/shell32/lang/ja-JP.rc b/dll/win32/shell32/lang/ja-JP.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/ja-JP.rc rename to dll/win32/shell32/lang/ja-JP.rc diff --git a/reactos/dll/win32/shell32/lang/ko-KR.rc b/dll/win32/shell32/lang/ko-KR.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/ko-KR.rc rename to dll/win32/shell32/lang/ko-KR.rc diff --git a/reactos/dll/win32/shell32/lang/nl-NL.rc b/dll/win32/shell32/lang/nl-NL.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/nl-NL.rc rename to dll/win32/shell32/lang/nl-NL.rc diff --git a/reactos/dll/win32/shell32/lang/no-NO.rc b/dll/win32/shell32/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/no-NO.rc rename to dll/win32/shell32/lang/no-NO.rc diff --git a/reactos/dll/win32/shell32/lang/pl-PL.rc b/dll/win32/shell32/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/pl-PL.rc rename to dll/win32/shell32/lang/pl-PL.rc diff --git a/reactos/dll/win32/shell32/lang/pt-BR.rc b/dll/win32/shell32/lang/pt-BR.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/pt-BR.rc rename to dll/win32/shell32/lang/pt-BR.rc diff --git a/reactos/dll/win32/shell32/lang/pt-PT.rc b/dll/win32/shell32/lang/pt-PT.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/pt-PT.rc rename to dll/win32/shell32/lang/pt-PT.rc diff --git a/reactos/dll/win32/shell32/lang/ro-RO.rc b/dll/win32/shell32/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/ro-RO.rc rename to dll/win32/shell32/lang/ro-RO.rc diff --git a/reactos/dll/win32/shell32/lang/ru-RU.rc b/dll/win32/shell32/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/ru-RU.rc rename to dll/win32/shell32/lang/ru-RU.rc diff --git a/reactos/dll/win32/shell32/lang/sk-SK.rc b/dll/win32/shell32/lang/sk-SK.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/sk-SK.rc rename to dll/win32/shell32/lang/sk-SK.rc diff --git a/reactos/dll/win32/shell32/lang/sl-SI.rc b/dll/win32/shell32/lang/sl-SI.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/sl-SI.rc rename to dll/win32/shell32/lang/sl-SI.rc diff --git a/reactos/dll/win32/shell32/lang/sv-SE.rc b/dll/win32/shell32/lang/sv-SE.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/sv-SE.rc rename to dll/win32/shell32/lang/sv-SE.rc diff --git a/reactos/dll/win32/shell32/lang/tr-TR.rc b/dll/win32/shell32/lang/tr-TR.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/tr-TR.rc rename to dll/win32/shell32/lang/tr-TR.rc diff --git a/reactos/dll/win32/shell32/lang/uk-UA.rc b/dll/win32/shell32/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/uk-UA.rc rename to dll/win32/shell32/lang/uk-UA.rc diff --git a/reactos/dll/win32/shell32/lang/zh-CN.rc b/dll/win32/shell32/lang/zh-CN.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/zh-CN.rc rename to dll/win32/shell32/lang/zh-CN.rc diff --git a/reactos/dll/win32/shell32/lang/zh-TW.rc b/dll/win32/shell32/lang/zh-TW.rc similarity index 100% rename from reactos/dll/win32/shell32/lang/zh-TW.rc rename to dll/win32/shell32/lang/zh-TW.rc diff --git a/reactos/dll/win32/shell32/newmenu.cpp b/dll/win32/shell32/newmenu.cpp similarity index 100% rename from reactos/dll/win32/shell32/newmenu.cpp rename to dll/win32/shell32/newmenu.cpp diff --git a/reactos/dll/win32/shell32/newmenu.h b/dll/win32/shell32/newmenu.h similarity index 100% rename from reactos/dll/win32/shell32/newmenu.h rename to dll/win32/shell32/newmenu.h diff --git a/reactos/dll/win32/shell32/openwithmenu.cpp b/dll/win32/shell32/openwithmenu.cpp similarity index 100% rename from reactos/dll/win32/shell32/openwithmenu.cpp rename to dll/win32/shell32/openwithmenu.cpp diff --git a/reactos/dll/win32/shell32/openwithmenu.h b/dll/win32/shell32/openwithmenu.h similarity index 100% rename from reactos/dll/win32/shell32/openwithmenu.h rename to dll/win32/shell32/openwithmenu.h diff --git a/reactos/dll/win32/shell32/pidl.cpp b/dll/win32/shell32/pidl.cpp similarity index 100% rename from reactos/dll/win32/shell32/pidl.cpp rename to dll/win32/shell32/pidl.cpp diff --git a/reactos/dll/win32/shell32/pidl.h b/dll/win32/shell32/pidl.h similarity index 100% rename from reactos/dll/win32/shell32/pidl.h rename to dll/win32/shell32/pidl.h diff --git a/reactos/dll/win32/shell32/precomp.h b/dll/win32/shell32/precomp.h similarity index 100% rename from reactos/dll/win32/shell32/precomp.h rename to dll/win32/shell32/precomp.h diff --git a/reactos/dll/win32/shell32/res/avis/160+161+167+168.avi b/dll/win32/shell32/res/avis/160+161+167+168.avi similarity index 100% rename from reactos/dll/win32/shell32/res/avis/160+161+167+168.avi rename to dll/win32/shell32/res/avis/160+161+167+168.avi diff --git a/reactos/dll/win32/shell32/res/avis/162.avi b/dll/win32/shell32/res/avis/162.avi similarity index 100% rename from reactos/dll/win32/shell32/res/avis/162.avi rename to dll/win32/shell32/res/avis/162.avi diff --git a/reactos/dll/win32/shell32/res/avis/163.avi b/dll/win32/shell32/res/avis/163.avi similarity index 100% rename from reactos/dll/win32/shell32/res/avis/163.avi rename to dll/win32/shell32/res/avis/163.avi diff --git a/reactos/dll/win32/shell32/res/avis/164+169.avi b/dll/win32/shell32/res/avis/164+169.avi similarity index 100% rename from reactos/dll/win32/shell32/res/avis/164+169.avi rename to dll/win32/shell32/res/avis/164+169.avi diff --git a/reactos/dll/win32/shell32/res/avis/170.avi b/dll/win32/shell32/res/avis/170.avi similarity index 100% rename from reactos/dll/win32/shell32/res/avis/170.avi rename to dll/win32/shell32/res/avis/170.avi diff --git a/reactos/dll/win32/shell32/res/avis/Licence/COPYING b/dll/win32/shell32/res/avis/Licence/COPYING similarity index 100% rename from reactos/dll/win32/shell32/res/avis/Licence/COPYING rename to dll/win32/shell32/res/avis/Licence/COPYING diff --git a/reactos/dll/win32/shell32/res/avis/Licence/Tango.txt b/dll/win32/shell32/res/avis/Licence/Tango.txt similarity index 100% rename from reactos/dll/win32/shell32/res/avis/Licence/Tango.txt rename to dll/win32/shell32/res/avis/Licence/Tango.txt diff --git a/reactos/dll/win32/shell32/res/bitmaps/204.bmp b/dll/win32/shell32/res/bitmaps/204.bmp similarity index 100% rename from reactos/dll/win32/shell32/res/bitmaps/204.bmp rename to dll/win32/shell32/res/bitmaps/204.bmp diff --git a/reactos/dll/win32/shell32/res/bitmaps/205.bmp b/dll/win32/shell32/res/bitmaps/205.bmp similarity index 100% rename from reactos/dll/win32/shell32/res/bitmaps/205.bmp rename to dll/win32/shell32/res/bitmaps/205.bmp diff --git a/reactos/dll/win32/shell32/res/bitmaps/206.bmp b/dll/win32/shell32/res/bitmaps/206.bmp similarity index 100% rename from reactos/dll/win32/shell32/res/bitmaps/206.bmp rename to dll/win32/shell32/res/bitmaps/206.bmp diff --git a/reactos/dll/win32/shell32/res/bitmaps/207.bmp b/dll/win32/shell32/res/bitmaps/207.bmp similarity index 100% rename from reactos/dll/win32/shell32/res/bitmaps/207.bmp rename to dll/win32/shell32/res/bitmaps/207.bmp diff --git a/reactos/dll/win32/shell32/res/bitmaps/225.bmp b/dll/win32/shell32/res/bitmaps/225.bmp similarity index 100% rename from reactos/dll/win32/shell32/res/bitmaps/225.bmp rename to dll/win32/shell32/res/bitmaps/225.bmp diff --git a/reactos/dll/win32/shell32/res/bitmaps/226.bmp b/dll/win32/shell32/res/bitmaps/226.bmp similarity index 100% rename from reactos/dll/win32/shell32/res/bitmaps/226.bmp rename to dll/win32/shell32/res/bitmaps/226.bmp diff --git a/reactos/dll/win32/shell32/res/bitmaps/227.bmp b/dll/win32/shell32/res/bitmaps/227.bmp similarity index 100% rename from reactos/dll/win32/shell32/res/bitmaps/227.bmp rename to dll/win32/shell32/res/bitmaps/227.bmp diff --git a/reactos/dll/win32/shell32/res/bitmaps/228.bmp b/dll/win32/shell32/res/bitmaps/228.bmp similarity index 100% rename from reactos/dll/win32/shell32/res/bitmaps/228.bmp rename to dll/win32/shell32/res/bitmaps/228.bmp diff --git a/reactos/dll/win32/shell32/res/bitmaps/shell_about_logo_24bpp.bmp b/dll/win32/shell32/res/bitmaps/shell_about_logo_24bpp.bmp similarity index 100% rename from reactos/dll/win32/shell32/res/bitmaps/shell_about_logo_24bpp.bmp rename to dll/win32/shell32/res/bitmaps/shell_about_logo_24bpp.bmp diff --git a/reactos/dll/win32/shell32/res/icons/1.ico b/dll/win32/shell32/res/icons/1.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/1.ico rename to dll/win32/shell32/res/icons/1.ico diff --git a/reactos/dll/win32/shell32/res/icons/10.ico b/dll/win32/shell32/res/icons/10.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/10.ico rename to dll/win32/shell32/res/icons/10.ico diff --git a/reactos/dll/win32/shell32/res/icons/1001.ico b/dll/win32/shell32/res/icons/1001.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/1001.ico rename to dll/win32/shell32/res/icons/1001.ico diff --git a/reactos/dll/win32/shell32/res/icons/1004.ico b/dll/win32/shell32/res/icons/1004.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/1004.ico rename to dll/win32/shell32/res/icons/1004.ico diff --git a/reactos/dll/win32/shell32/res/icons/11.ico b/dll/win32/shell32/res/icons/11.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/11.ico rename to dll/win32/shell32/res/icons/11.ico diff --git a/reactos/dll/win32/shell32/res/icons/12.ico b/dll/win32/shell32/res/icons/12.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/12.ico rename to dll/win32/shell32/res/icons/12.ico diff --git a/reactos/dll/win32/shell32/res/icons/13.ico b/dll/win32/shell32/res/icons/13.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/13.ico rename to dll/win32/shell32/res/icons/13.ico diff --git a/reactos/dll/win32/shell32/res/icons/134.ico b/dll/win32/shell32/res/icons/134.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/134.ico rename to dll/win32/shell32/res/icons/134.ico diff --git a/reactos/dll/win32/shell32/res/icons/135.ico b/dll/win32/shell32/res/icons/135.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/135.ico rename to dll/win32/shell32/res/icons/135.ico diff --git a/reactos/dll/win32/shell32/res/icons/137.ico b/dll/win32/shell32/res/icons/137.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/137.ico rename to dll/win32/shell32/res/icons/137.ico diff --git a/reactos/dll/win32/shell32/res/icons/138.ico b/dll/win32/shell32/res/icons/138.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/138.ico rename to dll/win32/shell32/res/icons/138.ico diff --git a/reactos/dll/win32/shell32/res/icons/14.ico b/dll/win32/shell32/res/icons/14.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/14.ico rename to dll/win32/shell32/res/icons/14.ico diff --git a/reactos/dll/win32/shell32/res/icons/15.ico b/dll/win32/shell32/res/icons/15.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/15.ico rename to dll/win32/shell32/res/icons/15.ico diff --git a/reactos/dll/win32/shell32/res/icons/151.ico b/dll/win32/shell32/res/icons/151.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/151.ico rename to dll/win32/shell32/res/icons/151.ico diff --git a/reactos/dll/win32/shell32/res/icons/152.ico b/dll/win32/shell32/res/icons/152.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/152.ico rename to dll/win32/shell32/res/icons/152.ico diff --git a/reactos/dll/win32/shell32/res/icons/153.ico b/dll/win32/shell32/res/icons/153.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/153.ico rename to dll/win32/shell32/res/icons/153.ico diff --git a/reactos/dll/win32/shell32/res/icons/154.ico b/dll/win32/shell32/res/icons/154.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/154.ico rename to dll/win32/shell32/res/icons/154.ico diff --git a/reactos/dll/win32/shell32/res/icons/155.ico b/dll/win32/shell32/res/icons/155.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/155.ico rename to dll/win32/shell32/res/icons/155.ico diff --git a/reactos/dll/win32/shell32/res/icons/156.ico b/dll/win32/shell32/res/icons/156.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/156.ico rename to dll/win32/shell32/res/icons/156.ico diff --git a/reactos/dll/win32/shell32/res/icons/157.ico b/dll/win32/shell32/res/icons/157.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/157.ico rename to dll/win32/shell32/res/icons/157.ico diff --git a/reactos/dll/win32/shell32/res/icons/16.ico b/dll/win32/shell32/res/icons/16.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/16.ico rename to dll/win32/shell32/res/icons/16.ico diff --git a/reactos/dll/win32/shell32/res/icons/160.ico b/dll/win32/shell32/res/icons/160.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/160.ico rename to dll/win32/shell32/res/icons/160.ico diff --git a/reactos/dll/win32/shell32/res/icons/161.ico b/dll/win32/shell32/res/icons/161.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/161.ico rename to dll/win32/shell32/res/icons/161.ico diff --git a/reactos/dll/win32/shell32/res/icons/16710.ico b/dll/win32/shell32/res/icons/16710.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/16710.ico rename to dll/win32/shell32/res/icons/16710.ico diff --git a/reactos/dll/win32/shell32/res/icons/16715.ico b/dll/win32/shell32/res/icons/16715.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/16715.ico rename to dll/win32/shell32/res/icons/16715.ico diff --git a/reactos/dll/win32/shell32/res/icons/16717.ico b/dll/win32/shell32/res/icons/16717.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/16717.ico rename to dll/win32/shell32/res/icons/16717.ico diff --git a/reactos/dll/win32/shell32/res/icons/16718.ico b/dll/win32/shell32/res/icons/16718.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/16718.ico rename to dll/win32/shell32/res/icons/16718.ico diff --git a/reactos/dll/win32/shell32/res/icons/16721.ico b/dll/win32/shell32/res/icons/16721.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/16721.ico rename to dll/win32/shell32/res/icons/16721.ico diff --git a/reactos/dll/win32/shell32/res/icons/17.ico b/dll/win32/shell32/res/icons/17.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/17.ico rename to dll/win32/shell32/res/icons/17.ico diff --git a/reactos/dll/win32/shell32/res/icons/1700.ico b/dll/win32/shell32/res/icons/1700.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/1700.ico rename to dll/win32/shell32/res/icons/1700.ico diff --git a/reactos/dll/win32/shell32/res/icons/172.ico b/dll/win32/shell32/res/icons/172.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/172.ico rename to dll/win32/shell32/res/icons/172.ico diff --git a/reactos/dll/win32/shell32/res/icons/173.ico b/dll/win32/shell32/res/icons/173.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/173.ico rename to dll/win32/shell32/res/icons/173.ico diff --git a/reactos/dll/win32/shell32/res/icons/18.ico b/dll/win32/shell32/res/icons/18.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/18.ico rename to dll/win32/shell32/res/icons/18.ico diff --git a/reactos/dll/win32/shell32/res/icons/182.ico b/dll/win32/shell32/res/icons/182.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/182.ico rename to dll/win32/shell32/res/icons/182.ico diff --git a/reactos/dll/win32/shell32/res/icons/183.ico b/dll/win32/shell32/res/icons/183.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/183.ico rename to dll/win32/shell32/res/icons/183.ico diff --git a/reactos/dll/win32/shell32/res/icons/184.ico b/dll/win32/shell32/res/icons/184.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/184.ico rename to dll/win32/shell32/res/icons/184.ico diff --git a/reactos/dll/win32/shell32/res/icons/185.ico b/dll/win32/shell32/res/icons/185.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/185.ico rename to dll/win32/shell32/res/icons/185.ico diff --git a/reactos/dll/win32/shell32/res/icons/186.ico b/dll/win32/shell32/res/icons/186.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/186.ico rename to dll/win32/shell32/res/icons/186.ico diff --git a/reactos/dll/win32/shell32/res/icons/187.ico b/dll/win32/shell32/res/icons/187.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/187.ico rename to dll/win32/shell32/res/icons/187.ico diff --git a/reactos/dll/win32/shell32/res/icons/19.ico b/dll/win32/shell32/res/icons/19.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/19.ico rename to dll/win32/shell32/res/icons/19.ico diff --git a/reactos/dll/win32/shell32/res/icons/191.ico b/dll/win32/shell32/res/icons/191.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/191.ico rename to dll/win32/shell32/res/icons/191.ico diff --git a/reactos/dll/win32/shell32/res/icons/192.ico b/dll/win32/shell32/res/icons/192.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/192.ico rename to dll/win32/shell32/res/icons/192.ico diff --git a/reactos/dll/win32/shell32/res/icons/2.ico b/dll/win32/shell32/res/icons/2.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/2.ico rename to dll/win32/shell32/res/icons/2.ico diff --git a/reactos/dll/win32/shell32/res/icons/20.ico b/dll/win32/shell32/res/icons/20.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/20.ico rename to dll/win32/shell32/res/icons/20.ico diff --git a/reactos/dll/win32/shell32/res/icons/21.ico b/dll/win32/shell32/res/icons/21.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/21.ico rename to dll/win32/shell32/res/icons/21.ico diff --git a/reactos/dll/win32/shell32/res/icons/210.ico b/dll/win32/shell32/res/icons/210.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/210.ico rename to dll/win32/shell32/res/icons/210.ico diff --git a/reactos/dll/win32/shell32/res/icons/22.ico b/dll/win32/shell32/res/icons/22.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/22.ico rename to dll/win32/shell32/res/icons/22.ico diff --git a/reactos/dll/win32/shell32/res/icons/220.ico b/dll/win32/shell32/res/icons/220.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/220.ico rename to dll/win32/shell32/res/icons/220.ico diff --git a/reactos/dll/win32/shell32/res/icons/221.ico b/dll/win32/shell32/res/icons/221.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/221.ico rename to dll/win32/shell32/res/icons/221.ico diff --git a/reactos/dll/win32/shell32/res/icons/222.ico b/dll/win32/shell32/res/icons/222.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/222.ico rename to dll/win32/shell32/res/icons/222.ico diff --git a/reactos/dll/win32/shell32/res/icons/224.ico b/dll/win32/shell32/res/icons/224.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/224.ico rename to dll/win32/shell32/res/icons/224.ico diff --git a/reactos/dll/win32/shell32/res/icons/225.ico b/dll/win32/shell32/res/icons/225.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/225.ico rename to dll/win32/shell32/res/icons/225.ico diff --git a/reactos/dll/win32/shell32/res/icons/226.ico b/dll/win32/shell32/res/icons/226.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/226.ico rename to dll/win32/shell32/res/icons/226.ico diff --git a/reactos/dll/win32/shell32/res/icons/228.ico b/dll/win32/shell32/res/icons/228.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/228.ico rename to dll/win32/shell32/res/icons/228.ico diff --git a/reactos/dll/win32/shell32/res/icons/23.ico b/dll/win32/shell32/res/icons/23.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/23.ico rename to dll/win32/shell32/res/icons/23.ico diff --git a/reactos/dll/win32/shell32/res/icons/233.ico b/dll/win32/shell32/res/icons/233.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/233.ico rename to dll/win32/shell32/res/icons/233.ico diff --git a/reactos/dll/win32/shell32/res/icons/235.ico b/dll/win32/shell32/res/icons/235.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/235.ico rename to dll/win32/shell32/res/icons/235.ico diff --git a/reactos/dll/win32/shell32/res/icons/236.ico b/dll/win32/shell32/res/icons/236.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/236.ico rename to dll/win32/shell32/res/icons/236.ico diff --git a/reactos/dll/win32/shell32/res/icons/237.ico b/dll/win32/shell32/res/icons/237.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/237.ico rename to dll/win32/shell32/res/icons/237.ico diff --git a/reactos/dll/win32/shell32/res/icons/238.ico b/dll/win32/shell32/res/icons/238.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/238.ico rename to dll/win32/shell32/res/icons/238.ico diff --git a/reactos/dll/win32/shell32/res/icons/24.ico b/dll/win32/shell32/res/icons/24.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/24.ico rename to dll/win32/shell32/res/icons/24.ico diff --git a/reactos/dll/win32/shell32/res/icons/240.ico b/dll/win32/shell32/res/icons/240.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/240.ico rename to dll/win32/shell32/res/icons/240.ico diff --git a/reactos/dll/win32/shell32/res/icons/245.ico b/dll/win32/shell32/res/icons/245.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/245.ico rename to dll/win32/shell32/res/icons/245.ico diff --git a/reactos/dll/win32/shell32/res/icons/246.ico b/dll/win32/shell32/res/icons/246.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/246.ico rename to dll/win32/shell32/res/icons/246.ico diff --git a/reactos/dll/win32/shell32/res/icons/248.ico b/dll/win32/shell32/res/icons/248.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/248.ico rename to dll/win32/shell32/res/icons/248.ico diff --git a/reactos/dll/win32/shell32/res/icons/249.ico b/dll/win32/shell32/res/icons/249.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/249.ico rename to dll/win32/shell32/res/icons/249.ico diff --git a/reactos/dll/win32/shell32/res/icons/25.ico b/dll/win32/shell32/res/icons/25.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/25.ico rename to dll/win32/shell32/res/icons/25.ico diff --git a/reactos/dll/win32/shell32/res/icons/250.ico b/dll/win32/shell32/res/icons/250.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/250.ico rename to dll/win32/shell32/res/icons/250.ico diff --git a/reactos/dll/win32/shell32/res/icons/252.ico b/dll/win32/shell32/res/icons/252.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/252.ico rename to dll/win32/shell32/res/icons/252.ico diff --git a/reactos/dll/win32/shell32/res/icons/254.ico b/dll/win32/shell32/res/icons/254.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/254.ico rename to dll/win32/shell32/res/icons/254.ico diff --git a/reactos/dll/win32/shell32/res/icons/255.ico b/dll/win32/shell32/res/icons/255.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/255.ico rename to dll/win32/shell32/res/icons/255.ico diff --git a/reactos/dll/win32/shell32/res/icons/263.ico b/dll/win32/shell32/res/icons/263.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/263.ico rename to dll/win32/shell32/res/icons/263.ico diff --git a/reactos/dll/win32/shell32/res/icons/265.ico b/dll/win32/shell32/res/icons/265.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/265.ico rename to dll/win32/shell32/res/icons/265.ico diff --git a/reactos/dll/win32/shell32/res/icons/268.ico b/dll/win32/shell32/res/icons/268.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/268.ico rename to dll/win32/shell32/res/icons/268.ico diff --git a/reactos/dll/win32/shell32/res/icons/269.ico b/dll/win32/shell32/res/icons/269.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/269.ico rename to dll/win32/shell32/res/icons/269.ico diff --git a/reactos/dll/win32/shell32/res/icons/270.ico b/dll/win32/shell32/res/icons/270.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/270.ico rename to dll/win32/shell32/res/icons/270.ico diff --git a/reactos/dll/win32/shell32/res/icons/271.ico b/dll/win32/shell32/res/icons/271.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/271.ico rename to dll/win32/shell32/res/icons/271.ico diff --git a/reactos/dll/win32/shell32/res/icons/277.ico b/dll/win32/shell32/res/icons/277.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/277.ico rename to dll/win32/shell32/res/icons/277.ico diff --git a/reactos/dll/win32/shell32/res/icons/279.ico b/dll/win32/shell32/res/icons/279.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/279.ico rename to dll/win32/shell32/res/icons/279.ico diff --git a/reactos/dll/win32/shell32/res/icons/28.ico b/dll/win32/shell32/res/icons/28.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/28.ico rename to dll/win32/shell32/res/icons/28.ico diff --git a/reactos/dll/win32/shell32/res/icons/289.ico b/dll/win32/shell32/res/icons/289.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/289.ico rename to dll/win32/shell32/res/icons/289.ico diff --git a/reactos/dll/win32/shell32/res/icons/29.ico b/dll/win32/shell32/res/icons/29.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/29.ico rename to dll/win32/shell32/res/icons/29.ico diff --git a/reactos/dll/win32/shell32/res/icons/290.ico b/dll/win32/shell32/res/icons/290.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/290.ico rename to dll/win32/shell32/res/icons/290.ico diff --git a/reactos/dll/win32/shell32/res/icons/291.ico b/dll/win32/shell32/res/icons/291.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/291.ico rename to dll/win32/shell32/res/icons/291.ico diff --git a/reactos/dll/win32/shell32/res/icons/292.ico b/dll/win32/shell32/res/icons/292.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/292.ico rename to dll/win32/shell32/res/icons/292.ico diff --git a/reactos/dll/win32/shell32/res/icons/293.ico b/dll/win32/shell32/res/icons/293.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/293.ico rename to dll/win32/shell32/res/icons/293.ico diff --git a/reactos/dll/win32/shell32/res/icons/294.ico b/dll/win32/shell32/res/icons/294.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/294.ico rename to dll/win32/shell32/res/icons/294.ico diff --git a/reactos/dll/win32/shell32/res/icons/295.ico b/dll/win32/shell32/res/icons/295.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/295.ico rename to dll/win32/shell32/res/icons/295.ico diff --git a/reactos/dll/win32/shell32/res/icons/296.ico b/dll/win32/shell32/res/icons/296.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/296.ico rename to dll/win32/shell32/res/icons/296.ico diff --git a/reactos/dll/win32/shell32/res/icons/297.ico b/dll/win32/shell32/res/icons/297.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/297.ico rename to dll/win32/shell32/res/icons/297.ico diff --git a/reactos/dll/win32/shell32/res/icons/298.ico b/dll/win32/shell32/res/icons/298.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/298.ico rename to dll/win32/shell32/res/icons/298.ico diff --git a/reactos/dll/win32/shell32/res/icons/299.ico b/dll/win32/shell32/res/icons/299.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/299.ico rename to dll/win32/shell32/res/icons/299.ico diff --git a/reactos/dll/win32/shell32/res/icons/3.ico b/dll/win32/shell32/res/icons/3.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/3.ico rename to dll/win32/shell32/res/icons/3.ico diff --git a/reactos/dll/win32/shell32/res/icons/30.ico b/dll/win32/shell32/res/icons/30.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/30.ico rename to dll/win32/shell32/res/icons/30.ico diff --git a/reactos/dll/win32/shell32/res/icons/302.ico b/dll/win32/shell32/res/icons/302.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/302.ico rename to dll/win32/shell32/res/icons/302.ico diff --git a/reactos/dll/win32/shell32/res/icons/304.ico b/dll/win32/shell32/res/icons/304.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/304.ico rename to dll/win32/shell32/res/icons/304.ico diff --git a/reactos/dll/win32/shell32/res/icons/305.ico b/dll/win32/shell32/res/icons/305.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/305.ico rename to dll/win32/shell32/res/icons/305.ico diff --git a/reactos/dll/win32/shell32/res/icons/309.ico b/dll/win32/shell32/res/icons/309.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/309.ico rename to dll/win32/shell32/res/icons/309.ico diff --git a/reactos/dll/win32/shell32/res/icons/315.ico b/dll/win32/shell32/res/icons/315.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/315.ico rename to dll/win32/shell32/res/icons/315.ico diff --git a/reactos/dll/win32/shell32/res/icons/317.ico b/dll/win32/shell32/res/icons/317.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/317.ico rename to dll/win32/shell32/res/icons/317.ico diff --git a/reactos/dll/win32/shell32/res/icons/318.ico b/dll/win32/shell32/res/icons/318.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/318.ico rename to dll/win32/shell32/res/icons/318.ico diff --git a/reactos/dll/win32/shell32/res/icons/319.ico b/dll/win32/shell32/res/icons/319.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/319.ico rename to dll/win32/shell32/res/icons/319.ico diff --git a/reactos/dll/win32/shell32/res/icons/32.ico b/dll/win32/shell32/res/icons/32.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/32.ico rename to dll/win32/shell32/res/icons/32.ico diff --git a/reactos/dll/win32/shell32/res/icons/322.ico b/dll/win32/shell32/res/icons/322.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/322.ico rename to dll/win32/shell32/res/icons/322.ico diff --git a/reactos/dll/win32/shell32/res/icons/323.ico b/dll/win32/shell32/res/icons/323.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/323.ico rename to dll/win32/shell32/res/icons/323.ico diff --git a/reactos/dll/win32/shell32/res/icons/324.ico b/dll/win32/shell32/res/icons/324.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/324.ico rename to dll/win32/shell32/res/icons/324.ico diff --git a/reactos/dll/win32/shell32/res/icons/325.ico b/dll/win32/shell32/res/icons/325.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/325.ico rename to dll/win32/shell32/res/icons/325.ico diff --git a/reactos/dll/win32/shell32/res/icons/326.ico b/dll/win32/shell32/res/icons/326.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/326.ico rename to dll/win32/shell32/res/icons/326.ico diff --git a/reactos/dll/win32/shell32/res/icons/327.ico b/dll/win32/shell32/res/icons/327.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/327.ico rename to dll/win32/shell32/res/icons/327.ico diff --git a/reactos/dll/win32/shell32/res/icons/328.ico b/dll/win32/shell32/res/icons/328.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/328.ico rename to dll/win32/shell32/res/icons/328.ico diff --git a/reactos/dll/win32/shell32/res/icons/329.ico b/dll/win32/shell32/res/icons/329.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/329.ico rename to dll/win32/shell32/res/icons/329.ico diff --git a/reactos/dll/win32/shell32/res/icons/33.ico b/dll/win32/shell32/res/icons/33.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/33.ico rename to dll/win32/shell32/res/icons/33.ico diff --git a/reactos/dll/win32/shell32/res/icons/330.ico b/dll/win32/shell32/res/icons/330.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/330.ico rename to dll/win32/shell32/res/icons/330.ico diff --git a/reactos/dll/win32/shell32/res/icons/35.ico b/dll/win32/shell32/res/icons/35.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/35.ico rename to dll/win32/shell32/res/icons/35.ico diff --git a/reactos/dll/win32/shell32/res/icons/36.ico b/dll/win32/shell32/res/icons/36.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/36.ico rename to dll/win32/shell32/res/icons/36.ico diff --git a/reactos/dll/win32/shell32/res/icons/37.ico b/dll/win32/shell32/res/icons/37.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/37.ico rename to dll/win32/shell32/res/icons/37.ico diff --git a/reactos/dll/win32/shell32/res/icons/38.ico b/dll/win32/shell32/res/icons/38.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/38.ico rename to dll/win32/shell32/res/icons/38.ico diff --git a/reactos/dll/win32/shell32/res/icons/39.ico b/dll/win32/shell32/res/icons/39.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/39.ico rename to dll/win32/shell32/res/icons/39.ico diff --git a/reactos/dll/win32/shell32/res/icons/4.ico b/dll/win32/shell32/res/icons/4.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/4.ico rename to dll/win32/shell32/res/icons/4.ico diff --git a/reactos/dll/win32/shell32/res/icons/40.ico b/dll/win32/shell32/res/icons/40.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/40.ico rename to dll/win32/shell32/res/icons/40.ico diff --git a/reactos/dll/win32/shell32/res/icons/41.ico b/dll/win32/shell32/res/icons/41.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/41.ico rename to dll/win32/shell32/res/icons/41.ico diff --git a/reactos/dll/win32/shell32/res/icons/44.ico b/dll/win32/shell32/res/icons/44.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/44.ico rename to dll/win32/shell32/res/icons/44.ico diff --git a/reactos/dll/win32/shell32/res/icons/45.ico b/dll/win32/shell32/res/icons/45.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/45.ico rename to dll/win32/shell32/res/icons/45.ico diff --git a/reactos/dll/win32/shell32/res/icons/46.ico b/dll/win32/shell32/res/icons/46.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/46.ico rename to dll/win32/shell32/res/icons/46.ico diff --git a/reactos/dll/win32/shell32/res/icons/47.ico b/dll/win32/shell32/res/icons/47.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/47.ico rename to dll/win32/shell32/res/icons/47.ico diff --git a/reactos/dll/win32/shell32/res/icons/48.ico b/dll/win32/shell32/res/icons/48.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/48.ico rename to dll/win32/shell32/res/icons/48.ico diff --git a/reactos/dll/win32/shell32/res/icons/5.ico b/dll/win32/shell32/res/icons/5.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/5.ico rename to dll/win32/shell32/res/icons/5.ico diff --git a/reactos/dll/win32/shell32/res/icons/54.ico b/dll/win32/shell32/res/icons/54.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/54.ico rename to dll/win32/shell32/res/icons/54.ico diff --git a/reactos/dll/win32/shell32/res/icons/6.ico b/dll/win32/shell32/res/icons/6.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/6.ico rename to dll/win32/shell32/res/icons/6.ico diff --git a/reactos/dll/win32/shell32/res/icons/7.ico b/dll/win32/shell32/res/icons/7.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/7.ico rename to dll/win32/shell32/res/icons/7.ico diff --git a/reactos/dll/win32/shell32/res/icons/8.ico b/dll/win32/shell32/res/icons/8.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/8.ico rename to dll/win32/shell32/res/icons/8.ico diff --git a/reactos/dll/win32/shell32/res/icons/8240.ico b/dll/win32/shell32/res/icons/8240.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/8240.ico rename to dll/win32/shell32/res/icons/8240.ico diff --git a/reactos/dll/win32/shell32/res/icons/9.ico b/dll/win32/shell32/res/icons/9.ico similarity index 100% rename from reactos/dll/win32/shell32/res/icons/9.ico rename to dll/win32/shell32/res/icons/9.ico diff --git a/reactos/dll/win32/shell32/res/icons/Icon_Licence/COPYING b/dll/win32/shell32/res/icons/Icon_Licence/COPYING similarity index 100% rename from reactos/dll/win32/shell32/res/icons/Icon_Licence/COPYING rename to dll/win32/shell32/res/icons/Icon_Licence/COPYING diff --git a/reactos/dll/win32/shell32/res/icons/Icon_Licence/Tango.txt b/dll/win32/shell32/res/icons/Icon_Licence/Tango.txt similarity index 100% rename from reactos/dll/win32/shell32/res/icons/Icon_Licence/Tango.txt rename to dll/win32/shell32/res/icons/Icon_Licence/Tango.txt diff --git a/reactos/dll/win32/shell32/res/rgs/adminfoldershortcut.rgs b/dll/win32/shell32/res/rgs/adminfoldershortcut.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/adminfoldershortcut.rgs rename to dll/win32/shell32/res/rgs/adminfoldershortcut.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/autocomplete.rgs b/dll/win32/shell32/res/rgs/autocomplete.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/autocomplete.rgs rename to dll/win32/shell32/res/rgs/autocomplete.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/controlpanel.rgs b/dll/win32/shell32/res/rgs/controlpanel.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/controlpanel.rgs rename to dll/win32/shell32/res/rgs/controlpanel.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/dragdrophelper.rgs b/dll/win32/shell32/res/rgs/dragdrophelper.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/dragdrophelper.rgs rename to dll/win32/shell32/res/rgs/dragdrophelper.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/folderoptions.rgs b/dll/win32/shell32/res/rgs/folderoptions.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/folderoptions.rgs rename to dll/win32/shell32/res/rgs/folderoptions.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/foldershortcut.rgs b/dll/win32/shell32/res/rgs/foldershortcut.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/foldershortcut.rgs rename to dll/win32/shell32/res/rgs/foldershortcut.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/fontsfoldershortcut.rgs b/dll/win32/shell32/res/rgs/fontsfoldershortcut.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/fontsfoldershortcut.rgs rename to dll/win32/shell32/res/rgs/fontsfoldershortcut.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/menubandsite.rgs b/dll/win32/shell32/res/rgs/menubandsite.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/menubandsite.rgs rename to dll/win32/shell32/res/rgs/menubandsite.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/mycomputer.rgs b/dll/win32/shell32/res/rgs/mycomputer.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/mycomputer.rgs rename to dll/win32/shell32/res/rgs/mycomputer.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/mydocuments.rgs b/dll/win32/shell32/res/rgs/mydocuments.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/mydocuments.rgs rename to dll/win32/shell32/res/rgs/mydocuments.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/networkplaces.rgs b/dll/win32/shell32/res/rgs/networkplaces.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/networkplaces.rgs rename to dll/win32/shell32/res/rgs/networkplaces.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/newmenu.rgs b/dll/win32/shell32/res/rgs/newmenu.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/newmenu.rgs rename to dll/win32/shell32/res/rgs/newmenu.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/openwithmenu.rgs b/dll/win32/shell32/res/rgs/openwithmenu.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/openwithmenu.rgs rename to dll/win32/shell32/res/rgs/openwithmenu.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/printers.rgs b/dll/win32/shell32/res/rgs/printers.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/printers.rgs rename to dll/win32/shell32/res/rgs/printers.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/recyclebin.rgs b/dll/win32/shell32/res/rgs/recyclebin.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/recyclebin.rgs rename to dll/win32/shell32/res/rgs/recyclebin.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/shelldesktop.rgs b/dll/win32/shell32/res/rgs/shelldesktop.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/shelldesktop.rgs rename to dll/win32/shell32/res/rgs/shelldesktop.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/shelldrvdefext.rgs b/dll/win32/shell32/res/rgs/shelldrvdefext.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/shelldrvdefext.rgs rename to dll/win32/shell32/res/rgs/shelldrvdefext.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/shellfiledefext.rgs b/dll/win32/shell32/res/rgs/shellfiledefext.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/shellfiledefext.rgs rename to dll/win32/shell32/res/rgs/shellfiledefext.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/shellfsfolder.rgs b/dll/win32/shell32/res/rgs/shellfsfolder.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/shellfsfolder.rgs rename to dll/win32/shell32/res/rgs/shellfsfolder.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/shelllink.rgs b/dll/win32/shell32/res/rgs/shelllink.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/shelllink.rgs rename to dll/win32/shell32/res/rgs/shelllink.rgs diff --git a/reactos/dll/win32/shell32/res/rgs/startmenu.rgs b/dll/win32/shell32/res/rgs/startmenu.rgs similarity index 100% rename from reactos/dll/win32/shell32/res/rgs/startmenu.rgs rename to dll/win32/shell32/res/rgs/startmenu.rgs diff --git a/reactos/dll/win32/shell32/rgs_res.rc b/dll/win32/shell32/rgs_res.rc similarity index 100% rename from reactos/dll/win32/shell32/rgs_res.rc rename to dll/win32/shell32/rgs_res.rc diff --git a/reactos/dll/win32/shell32/shell32.rc b/dll/win32/shell32/shell32.rc similarity index 100% rename from reactos/dll/win32/shell32/shell32.rc rename to dll/win32/shell32/shell32.rc diff --git a/reactos/dll/win32/shell32/shell32.spec b/dll/win32/shell32/shell32.spec similarity index 100% rename from reactos/dll/win32/shell32/shell32.spec rename to dll/win32/shell32/shell32.spec diff --git a/reactos/dll/win32/shell32/shell32_main.cpp b/dll/win32/shell32/shell32_main.cpp similarity index 100% rename from reactos/dll/win32/shell32/shell32_main.cpp rename to dll/win32/shell32/shell32_main.cpp diff --git a/reactos/dll/win32/shell32/shell32_main.h b/dll/win32/shell32/shell32_main.h similarity index 100% rename from reactos/dll/win32/shell32/shell32_main.h rename to dll/win32/shell32/shell32_main.h diff --git a/reactos/dll/win32/shell32/shell32_version.h b/dll/win32/shell32/shell32_version.h similarity index 100% rename from reactos/dll/win32/shell32/shell32_version.h rename to dll/win32/shell32/shell32_version.h diff --git a/reactos/dll/win32/shell32/shell32_version.rc b/dll/win32/shell32/shell32_version.rc similarity index 100% rename from reactos/dll/win32/shell32/shell32_version.rc rename to dll/win32/shell32/shell32_version.rc diff --git a/reactos/dll/win32/shell32/shellfolder.h b/dll/win32/shell32/shellfolder.h similarity index 100% rename from reactos/dll/win32/shell32/shellfolder.h rename to dll/win32/shell32/shellfolder.h diff --git a/reactos/dll/win32/shell32/shellitem.cpp b/dll/win32/shell32/shellitem.cpp similarity index 100% rename from reactos/dll/win32/shell32/shellitem.cpp rename to dll/win32/shell32/shellitem.cpp diff --git a/reactos/dll/win32/shell32/shellitem.h b/dll/win32/shell32/shellitem.h similarity index 100% rename from reactos/dll/win32/shell32/shellitem.h rename to dll/win32/shell32/shellitem.h diff --git a/reactos/dll/win32/shell32/shelllink.cpp b/dll/win32/shell32/shelllink.cpp similarity index 100% rename from reactos/dll/win32/shell32/shelllink.cpp rename to dll/win32/shell32/shelllink.cpp diff --git a/reactos/dll/win32/shell32/shelllink.h b/dll/win32/shell32/shelllink.h similarity index 100% rename from reactos/dll/win32/shell32/shelllink.h rename to dll/win32/shell32/shelllink.h diff --git a/reactos/dll/win32/shell32/shellole.cpp b/dll/win32/shell32/shellole.cpp similarity index 100% rename from reactos/dll/win32/shell32/shellole.cpp rename to dll/win32/shell32/shellole.cpp diff --git a/reactos/dll/win32/shell32/shellord.cpp b/dll/win32/shell32/shellord.cpp similarity index 100% rename from reactos/dll/win32/shell32/shellord.cpp rename to dll/win32/shell32/shellord.cpp diff --git a/reactos/dll/win32/shell32/shellpath.cpp b/dll/win32/shell32/shellpath.cpp similarity index 100% rename from reactos/dll/win32/shell32/shellpath.cpp rename to dll/win32/shell32/shellpath.cpp diff --git a/reactos/dll/win32/shell32/shellreg.cpp b/dll/win32/shell32/shellreg.cpp similarity index 100% rename from reactos/dll/win32/shell32/shellreg.cpp rename to dll/win32/shell32/shellreg.cpp diff --git a/reactos/dll/win32/shell32/shellstring.cpp b/dll/win32/shell32/shellstring.cpp similarity index 100% rename from reactos/dll/win32/shell32/shellstring.cpp rename to dll/win32/shell32/shellstring.cpp diff --git a/reactos/dll/win32/shell32/shfldr.h b/dll/win32/shell32/shfldr.h similarity index 100% rename from reactos/dll/win32/shell32/shfldr.h rename to dll/win32/shell32/shfldr.h diff --git a/reactos/dll/win32/shell32/shlexec.cpp b/dll/win32/shell32/shlexec.cpp similarity index 100% rename from reactos/dll/win32/shell32/shlexec.cpp rename to dll/win32/shell32/shlexec.cpp diff --git a/reactos/dll/win32/shell32/shlfileop.cpp b/dll/win32/shell32/shlfileop.cpp similarity index 100% rename from reactos/dll/win32/shell32/shlfileop.cpp rename to dll/win32/shell32/shlfileop.cpp diff --git a/reactos/dll/win32/shell32/shlfolder.cpp b/dll/win32/shell32/shlfolder.cpp similarity index 100% rename from reactos/dll/win32/shell32/shlfolder.cpp rename to dll/win32/shell32/shlfolder.cpp diff --git a/reactos/dll/win32/shell32/shlfsbind.cpp b/dll/win32/shell32/shlfsbind.cpp similarity index 100% rename from reactos/dll/win32/shell32/shlfsbind.cpp rename to dll/win32/shell32/shlfsbind.cpp diff --git a/reactos/dll/win32/shell32/shlmenu.cpp b/dll/win32/shell32/shlmenu.cpp similarity index 100% rename from reactos/dll/win32/shell32/shlmenu.cpp rename to dll/win32/shell32/shlmenu.cpp diff --git a/reactos/dll/win32/shell32/shlview.cpp b/dll/win32/shell32/shlview.cpp similarity index 100% rename from reactos/dll/win32/shell32/shlview.cpp rename to dll/win32/shell32/shlview.cpp diff --git a/reactos/dll/win32/shell32/shobjidl_local.idl b/dll/win32/shell32/shobjidl_local.idl similarity index 100% rename from reactos/dll/win32/shell32/shobjidl_local.idl rename to dll/win32/shell32/shobjidl_local.idl diff --git a/reactos/dll/win32/shell32/shpolicy.cpp b/dll/win32/shell32/shpolicy.cpp similarity index 100% rename from reactos/dll/win32/shell32/shpolicy.cpp rename to dll/win32/shell32/shpolicy.cpp diff --git a/reactos/dll/win32/shell32/shresdef.h b/dll/win32/shell32/shresdef.h similarity index 100% rename from reactos/dll/win32/shell32/shresdef.h rename to dll/win32/shell32/shresdef.h diff --git a/reactos/dll/win32/shell32/startmenu.cpp b/dll/win32/shell32/startmenu.cpp similarity index 100% rename from reactos/dll/win32/shell32/startmenu.cpp rename to dll/win32/shell32/startmenu.cpp diff --git a/reactos/dll/win32/shell32/startmenu.h b/dll/win32/shell32/startmenu.h similarity index 100% rename from reactos/dll/win32/shell32/startmenu.h rename to dll/win32/shell32/startmenu.h diff --git a/reactos/dll/win32/shell32/stubs.cpp b/dll/win32/shell32/stubs.cpp similarity index 100% rename from reactos/dll/win32/shell32/stubs.cpp rename to dll/win32/shell32/stubs.cpp diff --git a/reactos/dll/win32/shell32/systray.cpp b/dll/win32/shell32/systray.cpp similarity index 100% rename from reactos/dll/win32/shell32/systray.cpp rename to dll/win32/shell32/systray.cpp diff --git a/reactos/dll/win32/shell32/undocshell.h b/dll/win32/shell32/undocshell.h similarity index 100% rename from reactos/dll/win32/shell32/undocshell.h rename to dll/win32/shell32/undocshell.h diff --git a/reactos/dll/win32/shell32/xdg.h b/dll/win32/shell32/xdg.h similarity index 100% rename from reactos/dll/win32/shell32/xdg.h rename to dll/win32/shell32/xdg.h diff --git a/reactos/dll/win32/shfolder/CMakeLists.txt b/dll/win32/shfolder/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/shfolder/CMakeLists.txt rename to dll/win32/shfolder/CMakeLists.txt diff --git a/reactos/dll/win32/shfolder/shfolder.spec b/dll/win32/shfolder/shfolder.spec similarity index 100% rename from reactos/dll/win32/shfolder/shfolder.spec rename to dll/win32/shfolder/shfolder.spec diff --git a/reactos/dll/win32/shfolder/version.rc b/dll/win32/shfolder/version.rc similarity index 100% rename from reactos/dll/win32/shfolder/version.rc rename to dll/win32/shfolder/version.rc diff --git a/reactos/dll/win32/shimgvw/CMakeLists.txt b/dll/win32/shimgvw/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/shimgvw/CMakeLists.txt rename to dll/win32/shimgvw/CMakeLists.txt diff --git a/reactos/dll/win32/shimgvw/lang/bg-BG.rc b/dll/win32/shimgvw/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/bg-BG.rc rename to dll/win32/shimgvw/lang/bg-BG.rc diff --git a/reactos/dll/win32/shimgvw/lang/cs-CZ.rc b/dll/win32/shimgvw/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/cs-CZ.rc rename to dll/win32/shimgvw/lang/cs-CZ.rc diff --git a/reactos/dll/win32/shimgvw/lang/de-DE.rc b/dll/win32/shimgvw/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/de-DE.rc rename to dll/win32/shimgvw/lang/de-DE.rc diff --git a/reactos/dll/win32/shimgvw/lang/en-US.rc b/dll/win32/shimgvw/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/en-US.rc rename to dll/win32/shimgvw/lang/en-US.rc diff --git a/reactos/dll/win32/shimgvw/lang/es-ES.rc b/dll/win32/shimgvw/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/es-ES.rc rename to dll/win32/shimgvw/lang/es-ES.rc diff --git a/reactos/dll/win32/shimgvw/lang/fr-FR.rc b/dll/win32/shimgvw/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/fr-FR.rc rename to dll/win32/shimgvw/lang/fr-FR.rc diff --git a/reactos/dll/win32/shimgvw/lang/it-IT.rc b/dll/win32/shimgvw/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/it-IT.rc rename to dll/win32/shimgvw/lang/it-IT.rc diff --git a/reactos/dll/win32/shimgvw/lang/lt-LT.rc b/dll/win32/shimgvw/lang/lt-LT.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/lt-LT.rc rename to dll/win32/shimgvw/lang/lt-LT.rc diff --git a/reactos/dll/win32/shimgvw/lang/no-NO.rc b/dll/win32/shimgvw/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/no-NO.rc rename to dll/win32/shimgvw/lang/no-NO.rc diff --git a/reactos/dll/win32/shimgvw/lang/pl-PL.rc b/dll/win32/shimgvw/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/pl-PL.rc rename to dll/win32/shimgvw/lang/pl-PL.rc diff --git a/reactos/dll/win32/shimgvw/lang/ro-RO.rc b/dll/win32/shimgvw/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/ro-RO.rc rename to dll/win32/shimgvw/lang/ro-RO.rc diff --git a/reactos/dll/win32/shimgvw/lang/ru-RU.rc b/dll/win32/shimgvw/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/ru-RU.rc rename to dll/win32/shimgvw/lang/ru-RU.rc diff --git a/reactos/dll/win32/shimgvw/lang/sk-SK.rc b/dll/win32/shimgvw/lang/sk-SK.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/sk-SK.rc rename to dll/win32/shimgvw/lang/sk-SK.rc diff --git a/reactos/dll/win32/shimgvw/lang/uk-UA.rc b/dll/win32/shimgvw/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/shimgvw/lang/uk-UA.rc rename to dll/win32/shimgvw/lang/uk-UA.rc diff --git a/reactos/dll/win32/shimgvw/res/main.ico b/dll/win32/shimgvw/res/main.ico similarity index 100% rename from reactos/dll/win32/shimgvw/res/main.ico rename to dll/win32/shimgvw/res/main.ico diff --git a/reactos/dll/win32/shimgvw/res/next.bmp b/dll/win32/shimgvw/res/next.bmp similarity index 100% rename from reactos/dll/win32/shimgvw/res/next.bmp rename to dll/win32/shimgvw/res/next.bmp diff --git a/reactos/dll/win32/shimgvw/res/prev.bmp b/dll/win32/shimgvw/res/prev.bmp similarity index 100% rename from reactos/dll/win32/shimgvw/res/prev.bmp rename to dll/win32/shimgvw/res/prev.bmp diff --git a/reactos/dll/win32/shimgvw/res/print.bmp b/dll/win32/shimgvw/res/print.bmp similarity index 100% rename from reactos/dll/win32/shimgvw/res/print.bmp rename to dll/win32/shimgvw/res/print.bmp diff --git a/reactos/dll/win32/shimgvw/res/rot1.bmp b/dll/win32/shimgvw/res/rot1.bmp similarity index 100% rename from reactos/dll/win32/shimgvw/res/rot1.bmp rename to dll/win32/shimgvw/res/rot1.bmp diff --git a/reactos/dll/win32/shimgvw/res/rot2.bmp b/dll/win32/shimgvw/res/rot2.bmp similarity index 100% rename from reactos/dll/win32/shimgvw/res/rot2.bmp rename to dll/win32/shimgvw/res/rot2.bmp diff --git a/reactos/dll/win32/shimgvw/res/save.bmp b/dll/win32/shimgvw/res/save.bmp similarity index 100% rename from reactos/dll/win32/shimgvw/res/save.bmp rename to dll/win32/shimgvw/res/save.bmp diff --git a/reactos/dll/win32/shimgvw/res/zoomm.bmp b/dll/win32/shimgvw/res/zoomm.bmp similarity index 100% rename from reactos/dll/win32/shimgvw/res/zoomm.bmp rename to dll/win32/shimgvw/res/zoomm.bmp diff --git a/reactos/dll/win32/shimgvw/res/zoomp.bmp b/dll/win32/shimgvw/res/zoomp.bmp similarity index 100% rename from reactos/dll/win32/shimgvw/res/zoomp.bmp rename to dll/win32/shimgvw/res/zoomp.bmp diff --git a/reactos/dll/win32/shimgvw/resource.h b/dll/win32/shimgvw/resource.h similarity index 100% rename from reactos/dll/win32/shimgvw/resource.h rename to dll/win32/shimgvw/resource.h diff --git a/reactos/dll/win32/shimgvw/rsrc.rc b/dll/win32/shimgvw/rsrc.rc similarity index 100% rename from reactos/dll/win32/shimgvw/rsrc.rc rename to dll/win32/shimgvw/rsrc.rc diff --git a/reactos/dll/win32/shimgvw/shimgvw.c b/dll/win32/shimgvw/shimgvw.c similarity index 100% rename from reactos/dll/win32/shimgvw/shimgvw.c rename to dll/win32/shimgvw/shimgvw.c diff --git a/reactos/dll/win32/shimgvw/shimgvw.h b/dll/win32/shimgvw/shimgvw.h similarity index 100% rename from reactos/dll/win32/shimgvw/shimgvw.h rename to dll/win32/shimgvw/shimgvw.h diff --git a/reactos/dll/win32/shimgvw/shimgvw.rc b/dll/win32/shimgvw/shimgvw.rc similarity index 100% rename from reactos/dll/win32/shimgvw/shimgvw.rc rename to dll/win32/shimgvw/shimgvw.rc diff --git a/reactos/dll/win32/shimgvw/shimgvw.spec b/dll/win32/shimgvw/shimgvw.spec similarity index 100% rename from reactos/dll/win32/shimgvw/shimgvw.spec rename to dll/win32/shimgvw/shimgvw.spec diff --git a/reactos/dll/win32/shlwapi/CMakeLists.txt b/dll/win32/shlwapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/shlwapi/CMakeLists.txt rename to dll/win32/shlwapi/CMakeLists.txt diff --git a/reactos/dll/win32/shlwapi/assoc.c b/dll/win32/shlwapi/assoc.c similarity index 100% rename from reactos/dll/win32/shlwapi/assoc.c rename to dll/win32/shlwapi/assoc.c diff --git a/reactos/dll/win32/shlwapi/clist.c b/dll/win32/shlwapi/clist.c similarity index 100% rename from reactos/dll/win32/shlwapi/clist.c rename to dll/win32/shlwapi/clist.c diff --git a/reactos/dll/win32/shlwapi/istream.c b/dll/win32/shlwapi/istream.c similarity index 100% rename from reactos/dll/win32/shlwapi/istream.c rename to dll/win32/shlwapi/istream.c diff --git a/reactos/dll/win32/shlwapi/msgbox.c b/dll/win32/shlwapi/msgbox.c similarity index 100% rename from reactos/dll/win32/shlwapi/msgbox.c rename to dll/win32/shlwapi/msgbox.c diff --git a/reactos/dll/win32/shlwapi/ordinal.c b/dll/win32/shlwapi/ordinal.c similarity index 100% rename from reactos/dll/win32/shlwapi/ordinal.c rename to dll/win32/shlwapi/ordinal.c diff --git a/reactos/dll/win32/shlwapi/path.c b/dll/win32/shlwapi/path.c similarity index 100% rename from reactos/dll/win32/shlwapi/path.c rename to dll/win32/shlwapi/path.c diff --git a/reactos/dll/win32/shlwapi/reg.c b/dll/win32/shlwapi/reg.c similarity index 100% rename from reactos/dll/win32/shlwapi/reg.c rename to dll/win32/shlwapi/reg.c diff --git a/reactos/dll/win32/shlwapi/regstream.c b/dll/win32/shlwapi/regstream.c similarity index 100% rename from reactos/dll/win32/shlwapi/regstream.c rename to dll/win32/shlwapi/regstream.c diff --git a/reactos/dll/win32/shlwapi/resource.h b/dll/win32/shlwapi/resource.h similarity index 100% rename from reactos/dll/win32/shlwapi/resource.h rename to dll/win32/shlwapi/resource.h diff --git a/reactos/dll/win32/shlwapi/shlwapi.rc b/dll/win32/shlwapi/shlwapi.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi.rc rename to dll/win32/shlwapi/shlwapi.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi.spec b/dll/win32/shlwapi/shlwapi.spec similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi.spec rename to dll/win32/shlwapi/shlwapi.spec diff --git a/reactos/dll/win32/shlwapi/shlwapi_Da.rc b/dll/win32/shlwapi/shlwapi_Da.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Da.rc rename to dll/win32/shlwapi/shlwapi_Da.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_De.rc b/dll/win32/shlwapi/shlwapi_De.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_De.rc rename to dll/win32/shlwapi/shlwapi_De.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_En.rc b/dll/win32/shlwapi/shlwapi_En.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_En.rc rename to dll/win32/shlwapi/shlwapi_En.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Es.rc b/dll/win32/shlwapi/shlwapi_Es.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Es.rc rename to dll/win32/shlwapi/shlwapi_Es.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Fi.rc b/dll/win32/shlwapi/shlwapi_Fi.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Fi.rc rename to dll/win32/shlwapi/shlwapi_Fi.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Fr.rc b/dll/win32/shlwapi/shlwapi_Fr.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Fr.rc rename to dll/win32/shlwapi/shlwapi_Fr.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Hu.rc b/dll/win32/shlwapi/shlwapi_Hu.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Hu.rc rename to dll/win32/shlwapi/shlwapi_Hu.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_It.rc b/dll/win32/shlwapi/shlwapi_It.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_It.rc rename to dll/win32/shlwapi/shlwapi_It.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Ja.rc b/dll/win32/shlwapi/shlwapi_Ja.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Ja.rc rename to dll/win32/shlwapi/shlwapi_Ja.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Ko.rc b/dll/win32/shlwapi/shlwapi_Ko.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Ko.rc rename to dll/win32/shlwapi/shlwapi_Ko.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Lt.rc b/dll/win32/shlwapi/shlwapi_Lt.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Lt.rc rename to dll/win32/shlwapi/shlwapi_Lt.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Nl.rc b/dll/win32/shlwapi/shlwapi_Nl.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Nl.rc rename to dll/win32/shlwapi/shlwapi_Nl.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_No.rc b/dll/win32/shlwapi/shlwapi_No.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_No.rc rename to dll/win32/shlwapi/shlwapi_No.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Pl.rc b/dll/win32/shlwapi/shlwapi_Pl.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Pl.rc rename to dll/win32/shlwapi/shlwapi_Pl.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Pt.rc b/dll/win32/shlwapi/shlwapi_Pt.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Pt.rc rename to dll/win32/shlwapi/shlwapi_Pt.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Ro.rc b/dll/win32/shlwapi/shlwapi_Ro.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Ro.rc rename to dll/win32/shlwapi/shlwapi_Ro.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Ru.rc b/dll/win32/shlwapi/shlwapi_Ru.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Ru.rc rename to dll/win32/shlwapi/shlwapi_Ru.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Si.rc b/dll/win32/shlwapi/shlwapi_Si.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Si.rc rename to dll/win32/shlwapi/shlwapi_Si.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Sk.rc b/dll/win32/shlwapi/shlwapi_Sk.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Sk.rc rename to dll/win32/shlwapi/shlwapi_Sk.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Sv.rc b/dll/win32/shlwapi/shlwapi_Sv.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Sv.rc rename to dll/win32/shlwapi/shlwapi_Sv.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Tr.rc b/dll/win32/shlwapi/shlwapi_Tr.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Tr.rc rename to dll/win32/shlwapi/shlwapi_Tr.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Uk.rc b/dll/win32/shlwapi/shlwapi_Uk.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Uk.rc rename to dll/win32/shlwapi/shlwapi_Uk.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_Zh.rc b/dll/win32/shlwapi/shlwapi_Zh.rc similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_Zh.rc rename to dll/win32/shlwapi/shlwapi_Zh.rc diff --git a/reactos/dll/win32/shlwapi/shlwapi_main.c b/dll/win32/shlwapi/shlwapi_main.c similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_main.c rename to dll/win32/shlwapi/shlwapi_main.c diff --git a/reactos/dll/win32/shlwapi/shlwapi_ros.diff b/dll/win32/shlwapi/shlwapi_ros.diff similarity index 100% rename from reactos/dll/win32/shlwapi/shlwapi_ros.diff rename to dll/win32/shlwapi/shlwapi_ros.diff diff --git a/reactos/dll/win32/shlwapi/stopwatch.c b/dll/win32/shlwapi/stopwatch.c similarity index 100% rename from reactos/dll/win32/shlwapi/stopwatch.c rename to dll/win32/shlwapi/stopwatch.c diff --git a/reactos/dll/win32/shlwapi/string.c b/dll/win32/shlwapi/string.c similarity index 100% rename from reactos/dll/win32/shlwapi/string.c rename to dll/win32/shlwapi/string.c diff --git a/reactos/dll/win32/shlwapi/thread.c b/dll/win32/shlwapi/thread.c similarity index 100% rename from reactos/dll/win32/shlwapi/thread.c rename to dll/win32/shlwapi/thread.c diff --git a/reactos/dll/win32/shlwapi/url.c b/dll/win32/shlwapi/url.c similarity index 100% rename from reactos/dll/win32/shlwapi/url.c rename to dll/win32/shlwapi/url.c diff --git a/reactos/dll/win32/shlwapi/version.rc b/dll/win32/shlwapi/version.rc similarity index 100% rename from reactos/dll/win32/shlwapi/version.rc rename to dll/win32/shlwapi/version.rc diff --git a/reactos/dll/win32/shlwapi/wsprintf.c b/dll/win32/shlwapi/wsprintf.c similarity index 100% rename from reactos/dll/win32/shlwapi/wsprintf.c rename to dll/win32/shlwapi/wsprintf.c diff --git a/reactos/dll/win32/slbcsp/CMakeLists.txt b/dll/win32/slbcsp/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/slbcsp/CMakeLists.txt rename to dll/win32/slbcsp/CMakeLists.txt diff --git a/reactos/dll/win32/slbcsp/main.c b/dll/win32/slbcsp/main.c similarity index 100% rename from reactos/dll/win32/slbcsp/main.c rename to dll/win32/slbcsp/main.c diff --git a/reactos/dll/win32/slbcsp/slbcsp.spec b/dll/win32/slbcsp/slbcsp.spec similarity index 100% rename from reactos/dll/win32/slbcsp/slbcsp.spec rename to dll/win32/slbcsp/slbcsp.spec diff --git a/reactos/dll/win32/smdll/CMakeLists.txt b/dll/win32/smdll/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/smdll/CMakeLists.txt rename to dll/win32/smdll/CMakeLists.txt diff --git a/reactos/dll/win32/smdll/dllmain.c b/dll/win32/smdll/dllmain.c similarity index 100% rename from reactos/dll/win32/smdll/dllmain.c rename to dll/win32/smdll/dllmain.c diff --git a/reactos/dll/win32/smdll/precomp.h b/dll/win32/smdll/precomp.h similarity index 100% rename from reactos/dll/win32/smdll/precomp.h rename to dll/win32/smdll/precomp.h diff --git a/reactos/dll/win32/smdll/query.c b/dll/win32/smdll/query.c similarity index 100% rename from reactos/dll/win32/smdll/query.c rename to dll/win32/smdll/query.c diff --git a/reactos/dll/win32/smdll/readme.txt b/dll/win32/smdll/readme.txt similarity index 100% rename from reactos/dll/win32/smdll/readme.txt rename to dll/win32/smdll/readme.txt diff --git a/reactos/dll/win32/smdll/smdll.rc b/dll/win32/smdll/smdll.rc similarity index 100% rename from reactos/dll/win32/smdll/smdll.rc rename to dll/win32/smdll/smdll.rc diff --git a/reactos/dll/win32/smdll/smdll.spec b/dll/win32/smdll/smdll.spec similarity index 100% rename from reactos/dll/win32/smdll/smdll.spec rename to dll/win32/smdll/smdll.spec diff --git a/reactos/dll/win32/sndblst/CMakeLists.txt b/dll/win32/sndblst/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/sndblst/CMakeLists.txt rename to dll/win32/sndblst/CMakeLists.txt diff --git a/reactos/dll/win32/sndblst/sndblst.c b/dll/win32/sndblst/sndblst.c similarity index 100% rename from reactos/dll/win32/sndblst/sndblst.c rename to dll/win32/sndblst/sndblst.c diff --git a/reactos/dll/win32/sndblst/sndblst.spec b/dll/win32/sndblst/sndblst.spec similarity index 100% rename from reactos/dll/win32/sndblst/sndblst.spec rename to dll/win32/sndblst/sndblst.spec diff --git a/reactos/dll/win32/snmpapi/CMakeLists.txt b/dll/win32/snmpapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/snmpapi/CMakeLists.txt rename to dll/win32/snmpapi/CMakeLists.txt diff --git a/reactos/dll/win32/snmpapi/main.c b/dll/win32/snmpapi/main.c similarity index 100% rename from reactos/dll/win32/snmpapi/main.c rename to dll/win32/snmpapi/main.c diff --git a/reactos/dll/win32/snmpapi/snmpapi.rc b/dll/win32/snmpapi/snmpapi.rc similarity index 100% rename from reactos/dll/win32/snmpapi/snmpapi.rc rename to dll/win32/snmpapi/snmpapi.rc diff --git a/reactos/dll/win32/snmpapi/snmpapi.spec b/dll/win32/snmpapi/snmpapi.spec similarity index 100% rename from reactos/dll/win32/snmpapi/snmpapi.spec rename to dll/win32/snmpapi/snmpapi.spec diff --git a/reactos/dll/win32/softpub/CMakeLists.txt b/dll/win32/softpub/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/softpub/CMakeLists.txt rename to dll/win32/softpub/CMakeLists.txt diff --git a/reactos/dll/win32/softpub/softpub.rc b/dll/win32/softpub/softpub.rc similarity index 100% rename from reactos/dll/win32/softpub/softpub.rc rename to dll/win32/softpub/softpub.rc diff --git a/reactos/dll/win32/softpub/softpub.spec b/dll/win32/softpub/softpub.spec similarity index 100% rename from reactos/dll/win32/softpub/softpub.spec rename to dll/win32/softpub/softpub.spec diff --git a/reactos/dll/win32/spoolss/CMakeLists.txt b/dll/win32/spoolss/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/spoolss/CMakeLists.txt rename to dll/win32/spoolss/CMakeLists.txt diff --git a/reactos/dll/win32/spoolss/router.c b/dll/win32/spoolss/router.c similarity index 100% rename from reactos/dll/win32/spoolss/router.c rename to dll/win32/spoolss/router.c diff --git a/reactos/dll/win32/spoolss/spoolss.h b/dll/win32/spoolss/spoolss.h similarity index 100% rename from reactos/dll/win32/spoolss/spoolss.h rename to dll/win32/spoolss/spoolss.h diff --git a/reactos/dll/win32/spoolss/spoolss.spec b/dll/win32/spoolss/spoolss.spec similarity index 100% rename from reactos/dll/win32/spoolss/spoolss.spec rename to dll/win32/spoolss/spoolss.spec diff --git a/reactos/dll/win32/spoolss/spoolss_main.c b/dll/win32/spoolss/spoolss_main.c similarity index 100% rename from reactos/dll/win32/spoolss/spoolss_main.c rename to dll/win32/spoolss/spoolss_main.c diff --git a/reactos/dll/win32/srclient/CMakeLists.txt b/dll/win32/srclient/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/srclient/CMakeLists.txt rename to dll/win32/srclient/CMakeLists.txt diff --git a/reactos/dll/win32/srclient/srclient.spec b/dll/win32/srclient/srclient.spec similarity index 100% rename from reactos/dll/win32/srclient/srclient.spec rename to dll/win32/srclient/srclient.spec diff --git a/reactos/dll/win32/srclient/srclient_main.c b/dll/win32/srclient/srclient_main.c similarity index 100% rename from reactos/dll/win32/srclient/srclient_main.c rename to dll/win32/srclient/srclient_main.c diff --git a/reactos/dll/win32/stdole2.tlb/CMakeLists.txt b/dll/win32/stdole2.tlb/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/stdole2.tlb/CMakeLists.txt rename to dll/win32/stdole2.tlb/CMakeLists.txt diff --git a/reactos/dll/win32/stdole2.tlb/rsrc.rc b/dll/win32/stdole2.tlb/rsrc.rc similarity index 100% rename from reactos/dll/win32/stdole2.tlb/rsrc.rc rename to dll/win32/stdole2.tlb/rsrc.rc diff --git a/reactos/dll/win32/stdole2.tlb/std_ole_v2.idl b/dll/win32/stdole2.tlb/std_ole_v2.idl similarity index 100% rename from reactos/dll/win32/stdole2.tlb/std_ole_v2.idl rename to dll/win32/stdole2.tlb/std_ole_v2.idl diff --git a/reactos/dll/win32/stdole2.tlb/stdole2.tlb.rgs b/dll/win32/stdole2.tlb/stdole2.tlb.rgs similarity index 100% rename from reactos/dll/win32/stdole2.tlb/stdole2.tlb.rgs rename to dll/win32/stdole2.tlb/stdole2.tlb.rgs diff --git a/reactos/dll/win32/stdole2.tlb/stdole2.tlb.spec b/dll/win32/stdole2.tlb/stdole2.tlb.spec similarity index 100% rename from reactos/dll/win32/stdole2.tlb/stdole2.tlb.spec rename to dll/win32/stdole2.tlb/stdole2.tlb.spec diff --git a/reactos/dll/win32/stdole32.tlb/CMakeLists.txt b/dll/win32/stdole32.tlb/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/stdole32.tlb/CMakeLists.txt rename to dll/win32/stdole32.tlb/CMakeLists.txt diff --git a/reactos/dll/win32/stdole32.tlb/rsrc.rc b/dll/win32/stdole32.tlb/rsrc.rc similarity index 100% rename from reactos/dll/win32/stdole32.tlb/rsrc.rc rename to dll/win32/stdole32.tlb/rsrc.rc diff --git a/reactos/dll/win32/stdole32.tlb/std_ole_v1.idl b/dll/win32/stdole32.tlb/std_ole_v1.idl similarity index 100% rename from reactos/dll/win32/stdole32.tlb/std_ole_v1.idl rename to dll/win32/stdole32.tlb/std_ole_v1.idl diff --git a/reactos/dll/win32/stdole32.tlb/stdole32.tlb.rgs b/dll/win32/stdole32.tlb/stdole32.tlb.rgs similarity index 100% rename from reactos/dll/win32/stdole32.tlb/stdole32.tlb.rgs rename to dll/win32/stdole32.tlb/stdole32.tlb.rgs diff --git a/reactos/dll/win32/stdole32.tlb/stdole32.tlb.spec b/dll/win32/stdole32.tlb/stdole32.tlb.spec similarity index 100% rename from reactos/dll/win32/stdole32.tlb/stdole32.tlb.spec rename to dll/win32/stdole32.tlb/stdole32.tlb.spec diff --git a/reactos/dll/win32/sti/CMakeLists.txt b/dll/win32/sti/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/sti/CMakeLists.txt rename to dll/win32/sti/CMakeLists.txt diff --git a/reactos/dll/win32/sti/sti.c b/dll/win32/sti/sti.c similarity index 100% rename from reactos/dll/win32/sti/sti.c rename to dll/win32/sti/sti.c diff --git a/reactos/dll/win32/sti/sti.rc b/dll/win32/sti/sti.rc similarity index 100% rename from reactos/dll/win32/sti/sti.rc rename to dll/win32/sti/sti.rc diff --git a/reactos/dll/win32/sti/sti.rgs b/dll/win32/sti/sti.rgs similarity index 100% rename from reactos/dll/win32/sti/sti.rgs rename to dll/win32/sti/sti.rgs diff --git a/reactos/dll/win32/sti/sti.spec b/dll/win32/sti/sti.spec similarity index 100% rename from reactos/dll/win32/sti/sti.spec rename to dll/win32/sti/sti.spec diff --git a/reactos/dll/win32/sti/sti_main.c b/dll/win32/sti/sti_main.c similarity index 100% rename from reactos/dll/win32/sti/sti_main.c rename to dll/win32/sti/sti_main.c diff --git a/reactos/dll/win32/sti/sti_private.h b/dll/win32/sti/sti_private.h similarity index 100% rename from reactos/dll/win32/sti/sti_private.h rename to dll/win32/sti/sti_private.h diff --git a/reactos/dll/win32/sti/sti_wia.idl b/dll/win32/sti/sti_wia.idl similarity index 100% rename from reactos/dll/win32/sti/sti_wia.idl rename to dll/win32/sti/sti_wia.idl diff --git a/reactos/dll/win32/sxs/CMakeLists.txt b/dll/win32/sxs/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/sxs/CMakeLists.txt rename to dll/win32/sxs/CMakeLists.txt diff --git a/reactos/dll/win32/sxs/cache.c b/dll/win32/sxs/cache.c similarity index 100% rename from reactos/dll/win32/sxs/cache.c rename to dll/win32/sxs/cache.c diff --git a/reactos/dll/win32/sxs/name.c b/dll/win32/sxs/name.c similarity index 100% rename from reactos/dll/win32/sxs/name.c rename to dll/win32/sxs/name.c diff --git a/reactos/dll/win32/sxs/sxs.c b/dll/win32/sxs/sxs.c similarity index 100% rename from reactos/dll/win32/sxs/sxs.c rename to dll/win32/sxs/sxs.c diff --git a/reactos/dll/win32/sxs/sxs.spec b/dll/win32/sxs/sxs.spec similarity index 100% rename from reactos/dll/win32/sxs/sxs.spec rename to dll/win32/sxs/sxs.spec diff --git a/reactos/dll/win32/sxs/sxs_private.h b/dll/win32/sxs/sxs_private.h similarity index 100% rename from reactos/dll/win32/sxs/sxs_private.h rename to dll/win32/sxs/sxs_private.h diff --git a/reactos/dll/win32/syssetup/CMakeLists.txt b/dll/win32/syssetup/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/syssetup/CMakeLists.txt rename to dll/win32/syssetup/CMakeLists.txt diff --git a/reactos/dll/win32/syssetup/COPYING b/dll/win32/syssetup/COPYING similarity index 100% rename from reactos/dll/win32/syssetup/COPYING rename to dll/win32/syssetup/COPYING diff --git a/reactos/dll/win32/syssetup/classinst.c b/dll/win32/syssetup/classinst.c similarity index 100% rename from reactos/dll/win32/syssetup/classinst.c rename to dll/win32/syssetup/classinst.c diff --git a/reactos/dll/win32/syssetup/dllmain.c b/dll/win32/syssetup/dllmain.c similarity index 100% rename from reactos/dll/win32/syssetup/dllmain.c rename to dll/win32/syssetup/dllmain.c diff --git a/reactos/dll/win32/syssetup/globals.h b/dll/win32/syssetup/globals.h similarity index 100% rename from reactos/dll/win32/syssetup/globals.h rename to dll/win32/syssetup/globals.h diff --git a/reactos/dll/win32/syssetup/install.c b/dll/win32/syssetup/install.c similarity index 100% rename from reactos/dll/win32/syssetup/install.c rename to dll/win32/syssetup/install.c diff --git a/reactos/dll/win32/syssetup/lang/bg-BG.rc b/dll/win32/syssetup/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/bg-BG.rc rename to dll/win32/syssetup/lang/bg-BG.rc diff --git a/reactos/dll/win32/syssetup/lang/cs-CZ.rc b/dll/win32/syssetup/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/cs-CZ.rc rename to dll/win32/syssetup/lang/cs-CZ.rc diff --git a/reactos/dll/win32/syssetup/lang/de-DE.rc b/dll/win32/syssetup/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/de-DE.rc rename to dll/win32/syssetup/lang/de-DE.rc diff --git a/reactos/dll/win32/syssetup/lang/el-GR.rc b/dll/win32/syssetup/lang/el-GR.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/el-GR.rc rename to dll/win32/syssetup/lang/el-GR.rc diff --git a/reactos/dll/win32/syssetup/lang/en-US.rc b/dll/win32/syssetup/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/en-US.rc rename to dll/win32/syssetup/lang/en-US.rc diff --git a/reactos/dll/win32/syssetup/lang/es-ES.rc b/dll/win32/syssetup/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/es-ES.rc rename to dll/win32/syssetup/lang/es-ES.rc diff --git a/reactos/dll/win32/syssetup/lang/et-EE.rc b/dll/win32/syssetup/lang/et-EE.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/et-EE.rc rename to dll/win32/syssetup/lang/et-EE.rc diff --git a/reactos/dll/win32/syssetup/lang/fr-FR.rc b/dll/win32/syssetup/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/fr-FR.rc rename to dll/win32/syssetup/lang/fr-FR.rc diff --git a/reactos/dll/win32/syssetup/lang/hu-HU.rc b/dll/win32/syssetup/lang/hu-HU.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/hu-HU.rc rename to dll/win32/syssetup/lang/hu-HU.rc diff --git a/reactos/dll/win32/syssetup/lang/id-ID.rc b/dll/win32/syssetup/lang/id-ID.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/id-ID.rc rename to dll/win32/syssetup/lang/id-ID.rc diff --git a/reactos/dll/win32/syssetup/lang/it-IT.rc b/dll/win32/syssetup/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/it-IT.rc rename to dll/win32/syssetup/lang/it-IT.rc diff --git a/reactos/dll/win32/syssetup/lang/ja-JP.rc b/dll/win32/syssetup/lang/ja-JP.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/ja-JP.rc rename to dll/win32/syssetup/lang/ja-JP.rc diff --git a/reactos/dll/win32/syssetup/lang/nl-NL.rc b/dll/win32/syssetup/lang/nl-NL.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/nl-NL.rc rename to dll/win32/syssetup/lang/nl-NL.rc diff --git a/reactos/dll/win32/syssetup/lang/no-NO.rc b/dll/win32/syssetup/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/no-NO.rc rename to dll/win32/syssetup/lang/no-NO.rc diff --git a/reactos/dll/win32/syssetup/lang/pl-PL.rc b/dll/win32/syssetup/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/pl-PL.rc rename to dll/win32/syssetup/lang/pl-PL.rc diff --git a/reactos/dll/win32/syssetup/lang/pt-BR.rc b/dll/win32/syssetup/lang/pt-BR.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/pt-BR.rc rename to dll/win32/syssetup/lang/pt-BR.rc diff --git a/reactos/dll/win32/syssetup/lang/ro-RO.rc b/dll/win32/syssetup/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/ro-RO.rc rename to dll/win32/syssetup/lang/ro-RO.rc diff --git a/reactos/dll/win32/syssetup/lang/ru-RU.rc b/dll/win32/syssetup/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/ru-RU.rc rename to dll/win32/syssetup/lang/ru-RU.rc diff --git a/reactos/dll/win32/syssetup/lang/sk-SK.rc b/dll/win32/syssetup/lang/sk-SK.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/sk-SK.rc rename to dll/win32/syssetup/lang/sk-SK.rc diff --git a/reactos/dll/win32/syssetup/lang/tr-TR.rc b/dll/win32/syssetup/lang/tr-TR.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/tr-TR.rc rename to dll/win32/syssetup/lang/tr-TR.rc diff --git a/reactos/dll/win32/syssetup/lang/uk-UA.rc b/dll/win32/syssetup/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/uk-UA.rc rename to dll/win32/syssetup/lang/uk-UA.rc diff --git a/reactos/dll/win32/syssetup/lang/zh-CN.rc b/dll/win32/syssetup/lang/zh-CN.rc similarity index 100% rename from reactos/dll/win32/syssetup/lang/zh-CN.rc rename to dll/win32/syssetup/lang/zh-CN.rc diff --git a/reactos/dll/win32/syssetup/logfile.c b/dll/win32/syssetup/logfile.c similarity index 100% rename from reactos/dll/win32/syssetup/logfile.c rename to dll/win32/syssetup/logfile.c diff --git a/reactos/dll/win32/syssetup/precomp.h b/dll/win32/syssetup/precomp.h similarity index 100% rename from reactos/dll/win32/syssetup/precomp.h rename to dll/win32/syssetup/precomp.h diff --git a/reactos/dll/win32/syssetup/resource.h b/dll/win32/syssetup/resource.h similarity index 100% rename from reactos/dll/win32/syssetup/resource.h rename to dll/win32/syssetup/resource.h diff --git a/reactos/dll/win32/syssetup/resources/1.ico b/dll/win32/syssetup/resources/1.ico similarity index 100% rename from reactos/dll/win32/syssetup/resources/1.ico rename to dll/win32/syssetup/resources/1.ico diff --git a/reactos/dll/win32/syssetup/resources/2.ico b/dll/win32/syssetup/resources/2.ico similarity index 100% rename from reactos/dll/win32/syssetup/resources/2.ico rename to dll/win32/syssetup/resources/2.ico diff --git a/reactos/dll/win32/syssetup/resources/3.ico b/dll/win32/syssetup/resources/3.ico similarity index 100% rename from reactos/dll/win32/syssetup/resources/3.ico rename to dll/win32/syssetup/resources/3.ico diff --git a/reactos/dll/win32/syssetup/resources/4.ico b/dll/win32/syssetup/resources/4.ico similarity index 100% rename from reactos/dll/win32/syssetup/resources/4.ico rename to dll/win32/syssetup/resources/4.ico diff --git a/reactos/dll/win32/syssetup/resources/5.ico b/dll/win32/syssetup/resources/5.ico similarity index 100% rename from reactos/dll/win32/syssetup/resources/5.ico rename to dll/win32/syssetup/resources/5.ico diff --git a/reactos/dll/win32/syssetup/resources/header.bmp b/dll/win32/syssetup/resources/header.bmp similarity index 100% rename from reactos/dll/win32/syssetup/resources/header.bmp rename to dll/win32/syssetup/resources/header.bmp diff --git a/reactos/dll/win32/syssetup/resources/watermark.bmp b/dll/win32/syssetup/resources/watermark.bmp similarity index 100% rename from reactos/dll/win32/syssetup/resources/watermark.bmp rename to dll/win32/syssetup/resources/watermark.bmp diff --git a/reactos/dll/win32/syssetup/security.c b/dll/win32/syssetup/security.c similarity index 100% rename from reactos/dll/win32/syssetup/security.c rename to dll/win32/syssetup/security.c diff --git a/reactos/dll/win32/syssetup/syssetup.rc b/dll/win32/syssetup/syssetup.rc similarity index 100% rename from reactos/dll/win32/syssetup/syssetup.rc rename to dll/win32/syssetup/syssetup.rc diff --git a/reactos/dll/win32/syssetup/syssetup.spec b/dll/win32/syssetup/syssetup.spec similarity index 100% rename from reactos/dll/win32/syssetup/syssetup.spec rename to dll/win32/syssetup/syssetup.spec diff --git a/reactos/dll/win32/syssetup/wizard.c b/dll/win32/syssetup/wizard.c similarity index 100% rename from reactos/dll/win32/syssetup/wizard.c rename to dll/win32/syssetup/wizard.c diff --git a/reactos/dll/win32/t2embed/CMakeLists.txt b/dll/win32/t2embed/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/t2embed/CMakeLists.txt rename to dll/win32/t2embed/CMakeLists.txt diff --git a/reactos/dll/win32/t2embed/t2embed.c b/dll/win32/t2embed/t2embed.c similarity index 100% rename from reactos/dll/win32/t2embed/t2embed.c rename to dll/win32/t2embed/t2embed.c diff --git a/reactos/dll/win32/t2embed/t2embed.rc b/dll/win32/t2embed/t2embed.rc similarity index 100% rename from reactos/dll/win32/t2embed/t2embed.rc rename to dll/win32/t2embed/t2embed.rc diff --git a/reactos/dll/win32/t2embed/t2embed.spec b/dll/win32/t2embed/t2embed.spec similarity index 100% rename from reactos/dll/win32/t2embed/t2embed.spec rename to dll/win32/t2embed/t2embed.spec diff --git a/reactos/dll/win32/tapi32/CMakeLists.txt b/dll/win32/tapi32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/tapi32/CMakeLists.txt rename to dll/win32/tapi32/CMakeLists.txt diff --git a/reactos/dll/win32/tapi32/assisted.c b/dll/win32/tapi32/assisted.c similarity index 100% rename from reactos/dll/win32/tapi32/assisted.c rename to dll/win32/tapi32/assisted.c diff --git a/reactos/dll/win32/tapi32/internal.c b/dll/win32/tapi32/internal.c similarity index 100% rename from reactos/dll/win32/tapi32/internal.c rename to dll/win32/tapi32/internal.c diff --git a/reactos/dll/win32/tapi32/line.c b/dll/win32/tapi32/line.c similarity index 100% rename from reactos/dll/win32/tapi32/line.c rename to dll/win32/tapi32/line.c diff --git a/reactos/dll/win32/tapi32/phone.c b/dll/win32/tapi32/phone.c similarity index 100% rename from reactos/dll/win32/tapi32/phone.c rename to dll/win32/tapi32/phone.c diff --git a/reactos/dll/win32/tapi32/tapi32.spec b/dll/win32/tapi32/tapi32.spec similarity index 100% rename from reactos/dll/win32/tapi32/tapi32.spec rename to dll/win32/tapi32/tapi32.spec diff --git a/reactos/dll/win32/tapiui/CMakeLists.txt b/dll/win32/tapiui/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/tapiui/CMakeLists.txt rename to dll/win32/tapiui/CMakeLists.txt diff --git a/reactos/dll/win32/tapiui/lang/de-DE.rc b/dll/win32/tapiui/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/tapiui/lang/de-DE.rc rename to dll/win32/tapiui/lang/de-DE.rc diff --git a/reactos/dll/win32/tapiui/lang/en-US.rc b/dll/win32/tapiui/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/tapiui/lang/en-US.rc rename to dll/win32/tapiui/lang/en-US.rc diff --git a/reactos/dll/win32/tapiui/lang/no-NO.rc b/dll/win32/tapiui/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/tapiui/lang/no-NO.rc rename to dll/win32/tapiui/lang/no-NO.rc diff --git a/reactos/dll/win32/tapiui/lang/pl-PL.rc b/dll/win32/tapiui/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/tapiui/lang/pl-PL.rc rename to dll/win32/tapiui/lang/pl-PL.rc diff --git a/reactos/dll/win32/tapiui/lang/ro-RO.rc b/dll/win32/tapiui/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/tapiui/lang/ro-RO.rc rename to dll/win32/tapiui/lang/ro-RO.rc diff --git a/reactos/dll/win32/tapiui/lang/ru-RU.rc b/dll/win32/tapiui/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/tapiui/lang/ru-RU.rc rename to dll/win32/tapiui/lang/ru-RU.rc diff --git a/reactos/dll/win32/tapiui/lang/uk-UA.rc b/dll/win32/tapiui/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/tapiui/lang/uk-UA.rc rename to dll/win32/tapiui/lang/uk-UA.rc diff --git a/reactos/dll/win32/tapiui/res/201.ico b/dll/win32/tapiui/res/201.ico similarity index 100% rename from reactos/dll/win32/tapiui/res/201.ico rename to dll/win32/tapiui/res/201.ico diff --git a/reactos/dll/win32/tapiui/res/202.ico b/dll/win32/tapiui/res/202.ico similarity index 100% rename from reactos/dll/win32/tapiui/res/202.ico rename to dll/win32/tapiui/res/202.ico diff --git a/reactos/dll/win32/tapiui/res/203.ico b/dll/win32/tapiui/res/203.ico similarity index 100% rename from reactos/dll/win32/tapiui/res/203.ico rename to dll/win32/tapiui/res/203.ico diff --git a/reactos/dll/win32/tapiui/res/301.bmp b/dll/win32/tapiui/res/301.bmp similarity index 100% rename from reactos/dll/win32/tapiui/res/301.bmp rename to dll/win32/tapiui/res/301.bmp diff --git a/reactos/dll/win32/tapiui/res/302.bmp b/dll/win32/tapiui/res/302.bmp similarity index 100% rename from reactos/dll/win32/tapiui/res/302.bmp rename to dll/win32/tapiui/res/302.bmp diff --git a/reactos/dll/win32/tapiui/res/504.ico b/dll/win32/tapiui/res/504.ico similarity index 100% rename from reactos/dll/win32/tapiui/res/504.ico rename to dll/win32/tapiui/res/504.ico diff --git a/reactos/dll/win32/tapiui/resource.h b/dll/win32/tapiui/resource.h similarity index 100% rename from reactos/dll/win32/tapiui/resource.h rename to dll/win32/tapiui/resource.h diff --git a/reactos/dll/win32/tapiui/tapiui.rc b/dll/win32/tapiui/tapiui.rc similarity index 100% rename from reactos/dll/win32/tapiui/tapiui.rc rename to dll/win32/tapiui/tapiui.rc diff --git a/reactos/dll/win32/traffic/CMakeLists.txt b/dll/win32/traffic/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/traffic/CMakeLists.txt rename to dll/win32/traffic/CMakeLists.txt diff --git a/reactos/dll/win32/traffic/traffic.spec b/dll/win32/traffic/traffic.spec similarity index 100% rename from reactos/dll/win32/traffic/traffic.spec rename to dll/win32/traffic/traffic.spec diff --git a/reactos/dll/win32/traffic/traffic_main.c b/dll/win32/traffic/traffic_main.c similarity index 100% rename from reactos/dll/win32/traffic/traffic_main.c rename to dll/win32/traffic/traffic_main.c diff --git a/reactos/dll/win32/twain_32/CMakeLists.txt b/dll/win32/twain_32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/twain_32/CMakeLists.txt rename to dll/win32/twain_32/CMakeLists.txt diff --git a/reactos/dll/win32/twain_32/README b/dll/win32/twain_32/README similarity index 100% rename from reactos/dll/win32/twain_32/README rename to dll/win32/twain_32/README diff --git a/reactos/dll/win32/twain_32/TWAIN b/dll/win32/twain_32/TWAIN similarity index 100% rename from reactos/dll/win32/twain_32/TWAIN rename to dll/win32/twain_32/TWAIN diff --git a/reactos/dll/win32/twain_32/capability.c b/dll/win32/twain_32/capability.c similarity index 100% rename from reactos/dll/win32/twain_32/capability.c rename to dll/win32/twain_32/capability.c diff --git a/reactos/dll/win32/twain_32/ds_audio.c b/dll/win32/twain_32/ds_audio.c similarity index 100% rename from reactos/dll/win32/twain_32/ds_audio.c rename to dll/win32/twain_32/ds_audio.c diff --git a/reactos/dll/win32/twain_32/ds_ctrl.c b/dll/win32/twain_32/ds_ctrl.c similarity index 100% rename from reactos/dll/win32/twain_32/ds_ctrl.c rename to dll/win32/twain_32/ds_ctrl.c diff --git a/reactos/dll/win32/twain_32/ds_image.c b/dll/win32/twain_32/ds_image.c similarity index 100% rename from reactos/dll/win32/twain_32/ds_image.c rename to dll/win32/twain_32/ds_image.c diff --git a/reactos/dll/win32/twain_32/dsm_ctrl.c b/dll/win32/twain_32/dsm_ctrl.c similarity index 100% rename from reactos/dll/win32/twain_32/dsm_ctrl.c rename to dll/win32/twain_32/dsm_ctrl.c diff --git a/reactos/dll/win32/twain_32/twain.h b/dll/win32/twain_32/twain.h similarity index 100% rename from reactos/dll/win32/twain_32/twain.h rename to dll/win32/twain_32/twain.h diff --git a/reactos/dll/win32/twain_32/twain32_main.c b/dll/win32/twain_32/twain32_main.c similarity index 100% rename from reactos/dll/win32/twain_32/twain32_main.c rename to dll/win32/twain_32/twain32_main.c diff --git a/reactos/dll/win32/twain_32/twain_32.rc b/dll/win32/twain_32/twain_32.rc similarity index 100% rename from reactos/dll/win32/twain_32/twain_32.rc rename to dll/win32/twain_32/twain_32.rc diff --git a/reactos/dll/win32/twain_32/twain_32.spec b/dll/win32/twain_32/twain_32.spec similarity index 100% rename from reactos/dll/win32/twain_32/twain_32.spec rename to dll/win32/twain_32/twain_32.spec diff --git a/reactos/dll/win32/twain_32/twain_i.h b/dll/win32/twain_32/twain_i.h similarity index 100% rename from reactos/dll/win32/twain_32/twain_i.h rename to dll/win32/twain_32/twain_i.h diff --git a/reactos/dll/win32/uext2/CMakeLists.txt b/dll/win32/uext2/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/uext2/CMakeLists.txt rename to dll/win32/uext2/CMakeLists.txt diff --git a/reactos/dll/win32/uext2/uext2.c b/dll/win32/uext2/uext2.c similarity index 100% rename from reactos/dll/win32/uext2/uext2.c rename to dll/win32/uext2/uext2.c diff --git a/reactos/dll/win32/uext2/uext2.rc b/dll/win32/uext2/uext2.rc similarity index 100% rename from reactos/dll/win32/uext2/uext2.rc rename to dll/win32/uext2/uext2.rc diff --git a/reactos/dll/win32/uext2/uext2.spec b/dll/win32/uext2/uext2.spec similarity index 100% rename from reactos/dll/win32/uext2/uext2.spec rename to dll/win32/uext2/uext2.spec diff --git a/reactos/dll/win32/ufat/CMakeLists.txt b/dll/win32/ufat/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/ufat/CMakeLists.txt rename to dll/win32/ufat/CMakeLists.txt diff --git a/reactos/dll/win32/ufat/ufat.c b/dll/win32/ufat/ufat.c similarity index 100% rename from reactos/dll/win32/ufat/ufat.c rename to dll/win32/ufat/ufat.c diff --git a/reactos/dll/win32/ufat/ufat.rc b/dll/win32/ufat/ufat.rc similarity index 100% rename from reactos/dll/win32/ufat/ufat.rc rename to dll/win32/ufat/ufat.rc diff --git a/reactos/dll/win32/ufat/ufat.spec b/dll/win32/ufat/ufat.spec similarity index 100% rename from reactos/dll/win32/ufat/ufat.spec rename to dll/win32/ufat/ufat.spec diff --git a/reactos/dll/win32/ufatx/CMakeLists.txt b/dll/win32/ufatx/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/ufatx/CMakeLists.txt rename to dll/win32/ufatx/CMakeLists.txt diff --git a/reactos/dll/win32/ufatx/ufatx.rc b/dll/win32/ufatx/ufatx.rc similarity index 100% rename from reactos/dll/win32/ufatx/ufatx.rc rename to dll/win32/ufatx/ufatx.rc diff --git a/reactos/dll/win32/ufatx/ufatx.spec b/dll/win32/ufatx/ufatx.spec similarity index 100% rename from reactos/dll/win32/ufatx/ufatx.spec rename to dll/win32/ufatx/ufatx.spec diff --git a/reactos/dll/win32/unicows/CMakeLists.txt b/dll/win32/unicows/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/unicows/CMakeLists.txt rename to dll/win32/unicows/CMakeLists.txt diff --git a/reactos/dll/win32/unicows/unicows.spec b/dll/win32/unicows/unicows.spec similarity index 100% rename from reactos/dll/win32/unicows/unicows.spec rename to dll/win32/unicows/unicows.spec diff --git a/reactos/dll/win32/untfs/CMakeLists.txt b/dll/win32/untfs/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/untfs/CMakeLists.txt rename to dll/win32/untfs/CMakeLists.txt diff --git a/reactos/dll/win32/untfs/untfs.c b/dll/win32/untfs/untfs.c similarity index 100% rename from reactos/dll/win32/untfs/untfs.c rename to dll/win32/untfs/untfs.c diff --git a/reactos/dll/win32/untfs/untfs.rc b/dll/win32/untfs/untfs.rc similarity index 100% rename from reactos/dll/win32/untfs/untfs.rc rename to dll/win32/untfs/untfs.rc diff --git a/reactos/dll/win32/untfs/untfs.spec b/dll/win32/untfs/untfs.spec similarity index 100% rename from reactos/dll/win32/untfs/untfs.spec rename to dll/win32/untfs/untfs.spec diff --git a/reactos/dll/win32/updspapi/CMakeLists.txt b/dll/win32/updspapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/updspapi/CMakeLists.txt rename to dll/win32/updspapi/CMakeLists.txt diff --git a/reactos/dll/win32/updspapi/main.c b/dll/win32/updspapi/main.c similarity index 100% rename from reactos/dll/win32/updspapi/main.c rename to dll/win32/updspapi/main.c diff --git a/reactos/dll/win32/updspapi/updspapi.spec b/dll/win32/updspapi/updspapi.spec similarity index 100% rename from reactos/dll/win32/updspapi/updspapi.spec rename to dll/win32/updspapi/updspapi.spec diff --git a/reactos/dll/win32/url/CMakeLists.txt b/dll/win32/url/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/url/CMakeLists.txt rename to dll/win32/url/CMakeLists.txt diff --git a/reactos/dll/win32/url/url.spec b/dll/win32/url/url.spec similarity index 100% rename from reactos/dll/win32/url/url.spec rename to dll/win32/url/url.spec diff --git a/reactos/dll/win32/url/url_main.c b/dll/win32/url/url_main.c similarity index 100% rename from reactos/dll/win32/url/url_main.c rename to dll/win32/url/url_main.c diff --git a/reactos/dll/win32/urlmon/CMakeLists.txt b/dll/win32/urlmon/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/urlmon/CMakeLists.txt rename to dll/win32/urlmon/CMakeLists.txt diff --git a/reactos/dll/win32/urlmon/bindctx.c b/dll/win32/urlmon/bindctx.c similarity index 100% rename from reactos/dll/win32/urlmon/bindctx.c rename to dll/win32/urlmon/bindctx.c diff --git a/reactos/dll/win32/urlmon/binding.c b/dll/win32/urlmon/binding.c similarity index 100% rename from reactos/dll/win32/urlmon/binding.c rename to dll/win32/urlmon/binding.c diff --git a/reactos/dll/win32/urlmon/bindprot.c b/dll/win32/urlmon/bindprot.c similarity index 100% rename from reactos/dll/win32/urlmon/bindprot.c rename to dll/win32/urlmon/bindprot.c diff --git a/reactos/dll/win32/urlmon/download.c b/dll/win32/urlmon/download.c similarity index 100% rename from reactos/dll/win32/urlmon/download.c rename to dll/win32/urlmon/download.c diff --git a/reactos/dll/win32/urlmon/file.c b/dll/win32/urlmon/file.c similarity index 100% rename from reactos/dll/win32/urlmon/file.c rename to dll/win32/urlmon/file.c diff --git a/reactos/dll/win32/urlmon/format.c b/dll/win32/urlmon/format.c similarity index 100% rename from reactos/dll/win32/urlmon/format.c rename to dll/win32/urlmon/format.c diff --git a/reactos/dll/win32/urlmon/ftp.c b/dll/win32/urlmon/ftp.c similarity index 100% rename from reactos/dll/win32/urlmon/ftp.c rename to dll/win32/urlmon/ftp.c diff --git a/reactos/dll/win32/urlmon/gopher.c b/dll/win32/urlmon/gopher.c similarity index 100% rename from reactos/dll/win32/urlmon/gopher.c rename to dll/win32/urlmon/gopher.c diff --git a/reactos/dll/win32/urlmon/http.c b/dll/win32/urlmon/http.c similarity index 100% rename from reactos/dll/win32/urlmon/http.c rename to dll/win32/urlmon/http.c diff --git a/reactos/dll/win32/urlmon/internet.c b/dll/win32/urlmon/internet.c similarity index 100% rename from reactos/dll/win32/urlmon/internet.c rename to dll/win32/urlmon/internet.c diff --git a/reactos/dll/win32/urlmon/mimefilter.c b/dll/win32/urlmon/mimefilter.c similarity index 100% rename from reactos/dll/win32/urlmon/mimefilter.c rename to dll/win32/urlmon/mimefilter.c diff --git a/reactos/dll/win32/urlmon/mk.c b/dll/win32/urlmon/mk.c similarity index 100% rename from reactos/dll/win32/urlmon/mk.c rename to dll/win32/urlmon/mk.c diff --git a/reactos/dll/win32/urlmon/protocol.c b/dll/win32/urlmon/protocol.c similarity index 100% rename from reactos/dll/win32/urlmon/protocol.c rename to dll/win32/urlmon/protocol.c diff --git a/reactos/dll/win32/urlmon/protproxy.c b/dll/win32/urlmon/protproxy.c similarity index 100% rename from reactos/dll/win32/urlmon/protproxy.c rename to dll/win32/urlmon/protproxy.c diff --git a/reactos/dll/win32/urlmon/rsrc.rc b/dll/win32/urlmon/rsrc.rc similarity index 100% rename from reactos/dll/win32/urlmon/rsrc.rc rename to dll/win32/urlmon/rsrc.rc diff --git a/reactos/dll/win32/urlmon/sec_mgr.c b/dll/win32/urlmon/sec_mgr.c similarity index 100% rename from reactos/dll/win32/urlmon/sec_mgr.c rename to dll/win32/urlmon/sec_mgr.c diff --git a/reactos/dll/win32/urlmon/session.c b/dll/win32/urlmon/session.c similarity index 100% rename from reactos/dll/win32/urlmon/session.c rename to dll/win32/urlmon/session.c diff --git a/reactos/dll/win32/urlmon/umon.c b/dll/win32/urlmon/umon.c similarity index 100% rename from reactos/dll/win32/urlmon/umon.c rename to dll/win32/urlmon/umon.c diff --git a/reactos/dll/win32/urlmon/umstream.c b/dll/win32/urlmon/umstream.c similarity index 100% rename from reactos/dll/win32/urlmon/umstream.c rename to dll/win32/urlmon/umstream.c diff --git a/reactos/dll/win32/urlmon/uri.c b/dll/win32/urlmon/uri.c similarity index 100% rename from reactos/dll/win32/urlmon/uri.c rename to dll/win32/urlmon/uri.c diff --git a/reactos/dll/win32/urlmon/urlmon.inf b/dll/win32/urlmon/urlmon.inf similarity index 100% rename from reactos/dll/win32/urlmon/urlmon.inf rename to dll/win32/urlmon/urlmon.inf diff --git a/reactos/dll/win32/urlmon/urlmon.rgs b/dll/win32/urlmon/urlmon.rgs similarity index 100% rename from reactos/dll/win32/urlmon/urlmon.rgs rename to dll/win32/urlmon/urlmon.rgs diff --git a/reactos/dll/win32/urlmon/urlmon.spec b/dll/win32/urlmon/urlmon.spec similarity index 100% rename from reactos/dll/win32/urlmon/urlmon.spec rename to dll/win32/urlmon/urlmon.spec diff --git a/reactos/dll/win32/urlmon/urlmon_main.c b/dll/win32/urlmon/urlmon_main.c similarity index 100% rename from reactos/dll/win32/urlmon/urlmon_main.c rename to dll/win32/urlmon/urlmon_main.c diff --git a/reactos/dll/win32/urlmon/urlmon_main.h b/dll/win32/urlmon/urlmon_main.h similarity index 100% rename from reactos/dll/win32/urlmon/urlmon_main.h rename to dll/win32/urlmon/urlmon_main.h diff --git a/reactos/dll/win32/urlmon/urlmon_urlmon.idl b/dll/win32/urlmon/urlmon_urlmon.idl similarity index 100% rename from reactos/dll/win32/urlmon/urlmon_urlmon.idl rename to dll/win32/urlmon/urlmon_urlmon.idl diff --git a/reactos/dll/win32/urlmon/usrmarshal.c b/dll/win32/urlmon/usrmarshal.c similarity index 100% rename from reactos/dll/win32/urlmon/usrmarshal.c rename to dll/win32/urlmon/usrmarshal.c diff --git a/reactos/dll/win32/urlmon/version.rc b/dll/win32/urlmon/version.rc similarity index 100% rename from reactos/dll/win32/urlmon/version.rc rename to dll/win32/urlmon/version.rc diff --git a/reactos/dll/win32/userenv/CMakeLists.txt b/dll/win32/userenv/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/userenv/CMakeLists.txt rename to dll/win32/userenv/CMakeLists.txt diff --git a/reactos/dll/win32/userenv/desktop.c b/dll/win32/userenv/desktop.c similarity index 100% rename from reactos/dll/win32/userenv/desktop.c rename to dll/win32/userenv/desktop.c diff --git a/reactos/dll/win32/userenv/directory.c b/dll/win32/userenv/directory.c similarity index 100% rename from reactos/dll/win32/userenv/directory.c rename to dll/win32/userenv/directory.c diff --git a/reactos/dll/win32/userenv/environment.c b/dll/win32/userenv/environment.c similarity index 100% rename from reactos/dll/win32/userenv/environment.c rename to dll/win32/userenv/environment.c diff --git a/reactos/dll/win32/userenv/gpolicy.c b/dll/win32/userenv/gpolicy.c similarity index 100% rename from reactos/dll/win32/userenv/gpolicy.c rename to dll/win32/userenv/gpolicy.c diff --git a/reactos/dll/win32/userenv/internal.h b/dll/win32/userenv/internal.h similarity index 100% rename from reactos/dll/win32/userenv/internal.h rename to dll/win32/userenv/internal.h diff --git a/reactos/dll/win32/userenv/lang/bg-BG.rc b/dll/win32/userenv/lang/bg-BG.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/bg-BG.rc rename to dll/win32/userenv/lang/bg-BG.rc diff --git a/reactos/dll/win32/userenv/lang/cs-CZ.rc b/dll/win32/userenv/lang/cs-CZ.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/cs-CZ.rc rename to dll/win32/userenv/lang/cs-CZ.rc diff --git a/reactos/dll/win32/userenv/lang/da-DK.rc b/dll/win32/userenv/lang/da-DK.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/da-DK.rc rename to dll/win32/userenv/lang/da-DK.rc diff --git a/reactos/dll/win32/userenv/lang/de-DE.rc b/dll/win32/userenv/lang/de-DE.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/de-DE.rc rename to dll/win32/userenv/lang/de-DE.rc diff --git a/reactos/dll/win32/userenv/lang/el-GR.rc b/dll/win32/userenv/lang/el-GR.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/el-GR.rc rename to dll/win32/userenv/lang/el-GR.rc diff --git a/reactos/dll/win32/userenv/lang/en-US.rc b/dll/win32/userenv/lang/en-US.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/en-US.rc rename to dll/win32/userenv/lang/en-US.rc diff --git a/reactos/dll/win32/userenv/lang/es-ES.rc b/dll/win32/userenv/lang/es-ES.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/es-ES.rc rename to dll/win32/userenv/lang/es-ES.rc diff --git a/reactos/dll/win32/userenv/lang/fi-FI.rc b/dll/win32/userenv/lang/fi-FI.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/fi-FI.rc rename to dll/win32/userenv/lang/fi-FI.rc diff --git a/reactos/dll/win32/userenv/lang/fr-FR.rc b/dll/win32/userenv/lang/fr-FR.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/fr-FR.rc rename to dll/win32/userenv/lang/fr-FR.rc diff --git a/reactos/dll/win32/userenv/lang/hu-HU.rc b/dll/win32/userenv/lang/hu-HU.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/hu-HU.rc rename to dll/win32/userenv/lang/hu-HU.rc diff --git a/reactos/dll/win32/userenv/lang/id-ID.rc b/dll/win32/userenv/lang/id-ID.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/id-ID.rc rename to dll/win32/userenv/lang/id-ID.rc diff --git a/reactos/dll/win32/userenv/lang/it-IT.rc b/dll/win32/userenv/lang/it-IT.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/it-IT.rc rename to dll/win32/userenv/lang/it-IT.rc diff --git a/reactos/dll/win32/userenv/lang/ja-JP.rc b/dll/win32/userenv/lang/ja-JP.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/ja-JP.rc rename to dll/win32/userenv/lang/ja-JP.rc diff --git a/reactos/dll/win32/userenv/lang/lt-LT.rc b/dll/win32/userenv/lang/lt-LT.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/lt-LT.rc rename to dll/win32/userenv/lang/lt-LT.rc diff --git a/reactos/dll/win32/userenv/lang/nl-NL.rc b/dll/win32/userenv/lang/nl-NL.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/nl-NL.rc rename to dll/win32/userenv/lang/nl-NL.rc diff --git a/reactos/dll/win32/userenv/lang/no-NO.rc b/dll/win32/userenv/lang/no-NO.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/no-NO.rc rename to dll/win32/userenv/lang/no-NO.rc diff --git a/reactos/dll/win32/userenv/lang/pl-PL.rc b/dll/win32/userenv/lang/pl-PL.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/pl-PL.rc rename to dll/win32/userenv/lang/pl-PL.rc diff --git a/reactos/dll/win32/userenv/lang/pt-BR.rc b/dll/win32/userenv/lang/pt-BR.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/pt-BR.rc rename to dll/win32/userenv/lang/pt-BR.rc diff --git a/reactos/dll/win32/userenv/lang/ro-RO.rc b/dll/win32/userenv/lang/ro-RO.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/ro-RO.rc rename to dll/win32/userenv/lang/ro-RO.rc diff --git a/reactos/dll/win32/userenv/lang/ru-RU.rc b/dll/win32/userenv/lang/ru-RU.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/ru-RU.rc rename to dll/win32/userenv/lang/ru-RU.rc diff --git a/reactos/dll/win32/userenv/lang/sk-SK.rc b/dll/win32/userenv/lang/sk-SK.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/sk-SK.rc rename to dll/win32/userenv/lang/sk-SK.rc diff --git a/reactos/dll/win32/userenv/lang/sv-SE.rc b/dll/win32/userenv/lang/sv-SE.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/sv-SE.rc rename to dll/win32/userenv/lang/sv-SE.rc diff --git a/reactos/dll/win32/userenv/lang/th-TH.rc b/dll/win32/userenv/lang/th-TH.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/th-TH.rc rename to dll/win32/userenv/lang/th-TH.rc diff --git a/reactos/dll/win32/userenv/lang/uk-UA.rc b/dll/win32/userenv/lang/uk-UA.rc similarity index 100% rename from reactos/dll/win32/userenv/lang/uk-UA.rc rename to dll/win32/userenv/lang/uk-UA.rc diff --git a/reactos/dll/win32/userenv/misc.c b/dll/win32/userenv/misc.c similarity index 100% rename from reactos/dll/win32/userenv/misc.c rename to dll/win32/userenv/misc.c diff --git a/reactos/dll/win32/userenv/precomp.h b/dll/win32/userenv/precomp.h similarity index 100% rename from reactos/dll/win32/userenv/precomp.h rename to dll/win32/userenv/precomp.h diff --git a/reactos/dll/win32/userenv/profile.c b/dll/win32/userenv/profile.c similarity index 100% rename from reactos/dll/win32/userenv/profile.c rename to dll/win32/userenv/profile.c diff --git a/reactos/dll/win32/userenv/registry.c b/dll/win32/userenv/registry.c similarity index 100% rename from reactos/dll/win32/userenv/registry.c rename to dll/win32/userenv/registry.c diff --git a/reactos/dll/win32/userenv/resources.h b/dll/win32/userenv/resources.h similarity index 100% rename from reactos/dll/win32/userenv/resources.h rename to dll/win32/userenv/resources.h diff --git a/reactos/dll/win32/userenv/setup.c b/dll/win32/userenv/setup.c similarity index 100% rename from reactos/dll/win32/userenv/setup.c rename to dll/win32/userenv/setup.c diff --git a/reactos/dll/win32/userenv/userenv.c b/dll/win32/userenv/userenv.c similarity index 100% rename from reactos/dll/win32/userenv/userenv.c rename to dll/win32/userenv/userenv.c diff --git a/reactos/dll/win32/userenv/userenv.rc b/dll/win32/userenv/userenv.rc similarity index 100% rename from reactos/dll/win32/userenv/userenv.rc rename to dll/win32/userenv/userenv.rc diff --git a/reactos/dll/win32/userenv/userenv.spec b/dll/win32/userenv/userenv.spec similarity index 100% rename from reactos/dll/win32/userenv/userenv.spec rename to dll/win32/userenv/userenv.spec diff --git a/reactos/dll/win32/usp10/CMakeLists.txt b/dll/win32/usp10/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/usp10/CMakeLists.txt rename to dll/win32/usp10/CMakeLists.txt diff --git a/reactos/dll/win32/usp10/bidi.c b/dll/win32/usp10/bidi.c similarity index 100% rename from reactos/dll/win32/usp10/bidi.c rename to dll/win32/usp10/bidi.c diff --git a/reactos/dll/win32/usp10/breaking.c b/dll/win32/usp10/breaking.c similarity index 100% rename from reactos/dll/win32/usp10/breaking.c rename to dll/win32/usp10/breaking.c diff --git a/reactos/dll/win32/usp10/indic.c b/dll/win32/usp10/indic.c similarity index 100% rename from reactos/dll/win32/usp10/indic.c rename to dll/win32/usp10/indic.c diff --git a/reactos/dll/win32/usp10/indicsyllable.c b/dll/win32/usp10/indicsyllable.c similarity index 100% rename from reactos/dll/win32/usp10/indicsyllable.c rename to dll/win32/usp10/indicsyllable.c diff --git a/reactos/dll/win32/usp10/linebreak.c b/dll/win32/usp10/linebreak.c similarity index 100% rename from reactos/dll/win32/usp10/linebreak.c rename to dll/win32/usp10/linebreak.c diff --git a/reactos/dll/win32/usp10/mirror.c b/dll/win32/usp10/mirror.c similarity index 100% rename from reactos/dll/win32/usp10/mirror.c rename to dll/win32/usp10/mirror.c diff --git a/reactos/dll/win32/usp10/opentype.c b/dll/win32/usp10/opentype.c similarity index 100% rename from reactos/dll/win32/usp10/opentype.c rename to dll/win32/usp10/opentype.c diff --git a/reactos/dll/win32/usp10/shape.c b/dll/win32/usp10/shape.c similarity index 100% rename from reactos/dll/win32/usp10/shape.c rename to dll/win32/usp10/shape.c diff --git a/reactos/dll/win32/usp10/shaping.c b/dll/win32/usp10/shaping.c similarity index 100% rename from reactos/dll/win32/usp10/shaping.c rename to dll/win32/usp10/shaping.c diff --git a/reactos/dll/win32/usp10/usp10.c b/dll/win32/usp10/usp10.c similarity index 100% rename from reactos/dll/win32/usp10/usp10.c rename to dll/win32/usp10/usp10.c diff --git a/reactos/dll/win32/usp10/usp10.spec b/dll/win32/usp10/usp10.spec similarity index 100% rename from reactos/dll/win32/usp10/usp10.spec rename to dll/win32/usp10/usp10.spec diff --git a/reactos/dll/win32/usp10/usp10_internal.h b/dll/win32/usp10/usp10_internal.h similarity index 100% rename from reactos/dll/win32/usp10/usp10_internal.h rename to dll/win32/usp10/usp10_internal.h diff --git a/reactos/dll/win32/usp10/usp10_ros.diff b/dll/win32/usp10/usp10_ros.diff similarity index 100% rename from reactos/dll/win32/usp10/usp10_ros.diff rename to dll/win32/usp10/usp10_ros.diff diff --git a/reactos/dll/win32/uxtheme/CMakeLists.txt b/dll/win32/uxtheme/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/uxtheme/CMakeLists.txt rename to dll/win32/uxtheme/CMakeLists.txt diff --git a/reactos/dll/win32/uxtheme/buffer.c b/dll/win32/uxtheme/buffer.c similarity index 100% rename from reactos/dll/win32/uxtheme/buffer.c rename to dll/win32/uxtheme/buffer.c diff --git a/reactos/dll/win32/uxtheme/draw.c b/dll/win32/uxtheme/draw.c similarity index 100% rename from reactos/dll/win32/uxtheme/draw.c rename to dll/win32/uxtheme/draw.c diff --git a/reactos/dll/win32/uxtheme/main.c b/dll/win32/uxtheme/main.c similarity index 100% rename from reactos/dll/win32/uxtheme/main.c rename to dll/win32/uxtheme/main.c diff --git a/reactos/dll/win32/uxtheme/metric.c b/dll/win32/uxtheme/metric.c similarity index 100% rename from reactos/dll/win32/uxtheme/metric.c rename to dll/win32/uxtheme/metric.c diff --git a/reactos/dll/win32/uxtheme/msstyles.c b/dll/win32/uxtheme/msstyles.c similarity index 100% rename from reactos/dll/win32/uxtheme/msstyles.c rename to dll/win32/uxtheme/msstyles.c diff --git a/reactos/dll/win32/uxtheme/ncscrollbar.c b/dll/win32/uxtheme/ncscrollbar.c similarity index 100% rename from reactos/dll/win32/uxtheme/ncscrollbar.c rename to dll/win32/uxtheme/ncscrollbar.c diff --git a/reactos/dll/win32/uxtheme/nonclient.c b/dll/win32/uxtheme/nonclient.c similarity index 100% rename from reactos/dll/win32/uxtheme/nonclient.c rename to dll/win32/uxtheme/nonclient.c diff --git a/reactos/dll/win32/uxtheme/property.c b/dll/win32/uxtheme/property.c similarity index 100% rename from reactos/dll/win32/uxtheme/property.c rename to dll/win32/uxtheme/property.c diff --git a/reactos/dll/win32/uxtheme/stylemap.c b/dll/win32/uxtheme/stylemap.c similarity index 100% rename from reactos/dll/win32/uxtheme/stylemap.c rename to dll/win32/uxtheme/stylemap.c diff --git a/reactos/dll/win32/uxtheme/system.c b/dll/win32/uxtheme/system.c similarity index 100% rename from reactos/dll/win32/uxtheme/system.c rename to dll/win32/uxtheme/system.c diff --git a/reactos/dll/win32/uxtheme/themehooks.c b/dll/win32/uxtheme/themehooks.c similarity index 100% rename from reactos/dll/win32/uxtheme/themehooks.c rename to dll/win32/uxtheme/themehooks.c diff --git a/reactos/dll/win32/uxtheme/uxini.c b/dll/win32/uxtheme/uxini.c similarity index 100% rename from reactos/dll/win32/uxtheme/uxini.c rename to dll/win32/uxtheme/uxini.c diff --git a/reactos/dll/win32/uxtheme/uxtheme.spec b/dll/win32/uxtheme/uxtheme.spec similarity index 100% rename from reactos/dll/win32/uxtheme/uxtheme.spec rename to dll/win32/uxtheme/uxtheme.spec diff --git a/reactos/dll/win32/uxtheme/uxthemep.h b/dll/win32/uxtheme/uxthemep.h similarity index 100% rename from reactos/dll/win32/uxtheme/uxthemep.h rename to dll/win32/uxtheme/uxthemep.h diff --git a/reactos/dll/win32/uxtheme/version.rc b/dll/win32/uxtheme/version.rc similarity index 100% rename from reactos/dll/win32/uxtheme/version.rc rename to dll/win32/uxtheme/version.rc diff --git a/reactos/dll/win32/vdmdbg/CMakeLists.txt b/dll/win32/vdmdbg/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/vdmdbg/CMakeLists.txt rename to dll/win32/vdmdbg/CMakeLists.txt diff --git a/reactos/dll/win32/vdmdbg/vdmdbg.c b/dll/win32/vdmdbg/vdmdbg.c similarity index 100% rename from reactos/dll/win32/vdmdbg/vdmdbg.c rename to dll/win32/vdmdbg/vdmdbg.c diff --git a/reactos/dll/win32/vdmdbg/vdmdbg.h b/dll/win32/vdmdbg/vdmdbg.h similarity index 100% rename from reactos/dll/win32/vdmdbg/vdmdbg.h rename to dll/win32/vdmdbg/vdmdbg.h diff --git a/reactos/dll/win32/vdmdbg/vdmdbg.spec b/dll/win32/vdmdbg/vdmdbg.spec similarity index 100% rename from reactos/dll/win32/vdmdbg/vdmdbg.spec rename to dll/win32/vdmdbg/vdmdbg.spec diff --git a/reactos/dll/win32/version/CMakeLists.txt b/dll/win32/version/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/version/CMakeLists.txt rename to dll/win32/version/CMakeLists.txt diff --git a/reactos/dll/win32/version/info.c b/dll/win32/version/info.c similarity index 100% rename from reactos/dll/win32/version/info.c rename to dll/win32/version/info.c diff --git a/reactos/dll/win32/version/install.c b/dll/win32/version/install.c similarity index 100% rename from reactos/dll/win32/version/install.c rename to dll/win32/version/install.c diff --git a/reactos/dll/win32/version/resource.c b/dll/win32/version/resource.c similarity index 100% rename from reactos/dll/win32/version/resource.c rename to dll/win32/version/resource.c diff --git a/reactos/dll/win32/version/version.rc b/dll/win32/version/version.rc similarity index 100% rename from reactos/dll/win32/version/version.rc rename to dll/win32/version/version.rc diff --git a/reactos/dll/win32/version/version.spec b/dll/win32/version/version.spec similarity index 100% rename from reactos/dll/win32/version/version.spec rename to dll/win32/version/version.spec diff --git a/reactos/dll/win32/wdmaud.drv/CMakeLists.txt b/dll/win32/wdmaud.drv/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wdmaud.drv/CMakeLists.txt rename to dll/win32/wdmaud.drv/CMakeLists.txt diff --git a/reactos/dll/win32/wdmaud.drv/legacy.c b/dll/win32/wdmaud.drv/legacy.c similarity index 100% rename from reactos/dll/win32/wdmaud.drv/legacy.c rename to dll/win32/wdmaud.drv/legacy.c diff --git a/reactos/dll/win32/wdmaud.drv/mixer.c b/dll/win32/wdmaud.drv/mixer.c similarity index 100% rename from reactos/dll/win32/wdmaud.drv/mixer.c rename to dll/win32/wdmaud.drv/mixer.c diff --git a/reactos/dll/win32/wdmaud.drv/mmixer.c b/dll/win32/wdmaud.drv/mmixer.c similarity index 100% rename from reactos/dll/win32/wdmaud.drv/mmixer.c rename to dll/win32/wdmaud.drv/mmixer.c diff --git a/reactos/dll/win32/wdmaud.drv/wdmaud.c b/dll/win32/wdmaud.drv/wdmaud.c similarity index 100% rename from reactos/dll/win32/wdmaud.drv/wdmaud.c rename to dll/win32/wdmaud.drv/wdmaud.c diff --git a/reactos/dll/win32/wdmaud.drv/wdmaud.h b/dll/win32/wdmaud.drv/wdmaud.h similarity index 100% rename from reactos/dll/win32/wdmaud.drv/wdmaud.h rename to dll/win32/wdmaud.drv/wdmaud.h diff --git a/reactos/dll/win32/wdmaud.drv/wdmaud.rc b/dll/win32/wdmaud.drv/wdmaud.rc similarity index 100% rename from reactos/dll/win32/wdmaud.drv/wdmaud.rc rename to dll/win32/wdmaud.drv/wdmaud.rc diff --git a/reactos/dll/win32/wdmaud.drv/wdmaud.spec b/dll/win32/wdmaud.drv/wdmaud.spec similarity index 100% rename from reactos/dll/win32/wdmaud.drv/wdmaud.spec rename to dll/win32/wdmaud.drv/wdmaud.spec diff --git a/reactos/dll/win32/wer/main.c b/dll/win32/wer/main.c similarity index 100% rename from reactos/dll/win32/wer/main.c rename to dll/win32/wer/main.c diff --git a/reactos/dll/win32/wer/wer.spec b/dll/win32/wer/wer.spec similarity index 100% rename from reactos/dll/win32/wer/wer.spec rename to dll/win32/wer/wer.spec diff --git a/reactos/dll/win32/windowscodecs/CMakeLists.txt b/dll/win32/windowscodecs/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/windowscodecs/CMakeLists.txt rename to dll/win32/windowscodecs/CMakeLists.txt diff --git a/reactos/dll/win32/windowscodecs/bmpdecode.c b/dll/win32/windowscodecs/bmpdecode.c similarity index 100% rename from reactos/dll/win32/windowscodecs/bmpdecode.c rename to dll/win32/windowscodecs/bmpdecode.c diff --git a/reactos/dll/win32/windowscodecs/bmpencode.c b/dll/win32/windowscodecs/bmpencode.c similarity index 100% rename from reactos/dll/win32/windowscodecs/bmpencode.c rename to dll/win32/windowscodecs/bmpencode.c diff --git a/reactos/dll/win32/windowscodecs/clsfactory.c b/dll/win32/windowscodecs/clsfactory.c similarity index 100% rename from reactos/dll/win32/windowscodecs/clsfactory.c rename to dll/win32/windowscodecs/clsfactory.c diff --git a/reactos/dll/win32/windowscodecs/converter.c b/dll/win32/windowscodecs/converter.c similarity index 100% rename from reactos/dll/win32/windowscodecs/converter.c rename to dll/win32/windowscodecs/converter.c diff --git a/reactos/dll/win32/windowscodecs/fliprotate.c b/dll/win32/windowscodecs/fliprotate.c similarity index 100% rename from reactos/dll/win32/windowscodecs/fliprotate.c rename to dll/win32/windowscodecs/fliprotate.c diff --git a/reactos/dll/win32/windowscodecs/gifformat.c b/dll/win32/windowscodecs/gifformat.c similarity index 100% rename from reactos/dll/win32/windowscodecs/gifformat.c rename to dll/win32/windowscodecs/gifformat.c diff --git a/reactos/dll/win32/windowscodecs/icoformat.c b/dll/win32/windowscodecs/icoformat.c similarity index 100% rename from reactos/dll/win32/windowscodecs/icoformat.c rename to dll/win32/windowscodecs/icoformat.c diff --git a/reactos/dll/win32/windowscodecs/imgfactory.c b/dll/win32/windowscodecs/imgfactory.c similarity index 100% rename from reactos/dll/win32/windowscodecs/imgfactory.c rename to dll/win32/windowscodecs/imgfactory.c diff --git a/reactos/dll/win32/windowscodecs/info.c b/dll/win32/windowscodecs/info.c similarity index 100% rename from reactos/dll/win32/windowscodecs/info.c rename to dll/win32/windowscodecs/info.c diff --git a/reactos/dll/win32/windowscodecs/jpegformat.c b/dll/win32/windowscodecs/jpegformat.c similarity index 100% rename from reactos/dll/win32/windowscodecs/jpegformat.c rename to dll/win32/windowscodecs/jpegformat.c diff --git a/reactos/dll/win32/windowscodecs/main.c b/dll/win32/windowscodecs/main.c similarity index 100% rename from reactos/dll/win32/windowscodecs/main.c rename to dll/win32/windowscodecs/main.c diff --git a/reactos/dll/win32/windowscodecs/palette.c b/dll/win32/windowscodecs/palette.c similarity index 100% rename from reactos/dll/win32/windowscodecs/palette.c rename to dll/win32/windowscodecs/palette.c diff --git a/reactos/dll/win32/windowscodecs/pngformat.c b/dll/win32/windowscodecs/pngformat.c similarity index 100% rename from reactos/dll/win32/windowscodecs/pngformat.c rename to dll/win32/windowscodecs/pngformat.c diff --git a/reactos/dll/win32/windowscodecs/propertybag.c b/dll/win32/windowscodecs/propertybag.c similarity index 100% rename from reactos/dll/win32/windowscodecs/propertybag.c rename to dll/win32/windowscodecs/propertybag.c diff --git a/reactos/dll/win32/windowscodecs/regsvr.c b/dll/win32/windowscodecs/regsvr.c similarity index 100% rename from reactos/dll/win32/windowscodecs/regsvr.c rename to dll/win32/windowscodecs/regsvr.c diff --git a/reactos/dll/win32/windowscodecs/stream.c b/dll/win32/windowscodecs/stream.c similarity index 100% rename from reactos/dll/win32/windowscodecs/stream.c rename to dll/win32/windowscodecs/stream.c diff --git a/reactos/dll/win32/windowscodecs/tiffformat.c b/dll/win32/windowscodecs/tiffformat.c similarity index 100% rename from reactos/dll/win32/windowscodecs/tiffformat.c rename to dll/win32/windowscodecs/tiffformat.c diff --git a/reactos/dll/win32/windowscodecs/typeof.h b/dll/win32/windowscodecs/typeof.h similarity index 100% rename from reactos/dll/win32/windowscodecs/typeof.h rename to dll/win32/windowscodecs/typeof.h diff --git a/reactos/dll/win32/windowscodecs/ungif.c b/dll/win32/windowscodecs/ungif.c similarity index 100% rename from reactos/dll/win32/windowscodecs/ungif.c rename to dll/win32/windowscodecs/ungif.c diff --git a/reactos/dll/win32/windowscodecs/ungif.h b/dll/win32/windowscodecs/ungif.h similarity index 100% rename from reactos/dll/win32/windowscodecs/ungif.h rename to dll/win32/windowscodecs/ungif.h diff --git a/reactos/dll/win32/windowscodecs/version.rc b/dll/win32/windowscodecs/version.rc similarity index 100% rename from reactos/dll/win32/windowscodecs/version.rc rename to dll/win32/windowscodecs/version.rc diff --git a/reactos/dll/win32/windowscodecs/wincodecs_private.h b/dll/win32/windowscodecs/wincodecs_private.h similarity index 100% rename from reactos/dll/win32/windowscodecs/wincodecs_private.h rename to dll/win32/windowscodecs/wincodecs_private.h diff --git a/reactos/dll/win32/windowscodecs/windowscodecs.spec b/dll/win32/windowscodecs/windowscodecs.spec similarity index 100% rename from reactos/dll/win32/windowscodecs/windowscodecs.spec rename to dll/win32/windowscodecs/windowscodecs.spec diff --git a/reactos/dll/win32/winemp3.acm/CMakeLists.txt b/dll/win32/winemp3.acm/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/winemp3.acm/CMakeLists.txt rename to dll/win32/winemp3.acm/CMakeLists.txt diff --git a/reactos/dll/win32/winemp3.acm/mpegl3.c b/dll/win32/winemp3.acm/mpegl3.c similarity index 100% rename from reactos/dll/win32/winemp3.acm/mpegl3.c rename to dll/win32/winemp3.acm/mpegl3.c diff --git a/reactos/dll/win32/winemp3.acm/winemp3.acm.spec b/dll/win32/winemp3.acm/winemp3.acm.spec similarity index 100% rename from reactos/dll/win32/winemp3.acm/winemp3.acm.spec rename to dll/win32/winemp3.acm/winemp3.acm.spec diff --git a/reactos/dll/win32/winfax/CMakeLists.txt b/dll/win32/winfax/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/winfax/CMakeLists.txt rename to dll/win32/winfax/CMakeLists.txt diff --git a/reactos/dll/win32/winfax/precomp.h b/dll/win32/winfax/precomp.h similarity index 100% rename from reactos/dll/win32/winfax/precomp.h rename to dll/win32/winfax/precomp.h diff --git a/reactos/dll/win32/winfax/winfax.c b/dll/win32/winfax/winfax.c similarity index 100% rename from reactos/dll/win32/winfax/winfax.c rename to dll/win32/winfax/winfax.c diff --git a/reactos/dll/win32/winfax/winfax.rc b/dll/win32/winfax/winfax.rc similarity index 100% rename from reactos/dll/win32/winfax/winfax.rc rename to dll/win32/winfax/winfax.rc diff --git a/reactos/dll/win32/winfax/winfax.spec b/dll/win32/winfax/winfax.spec similarity index 100% rename from reactos/dll/win32/winfax/winfax.spec rename to dll/win32/winfax/winfax.spec diff --git a/reactos/dll/win32/wing32/CMakeLists.txt b/dll/win32/wing32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wing32/CMakeLists.txt rename to dll/win32/wing32/CMakeLists.txt diff --git a/reactos/dll/win32/wing32/wing32.c b/dll/win32/wing32/wing32.c similarity index 100% rename from reactos/dll/win32/wing32/wing32.c rename to dll/win32/wing32/wing32.c diff --git a/reactos/dll/win32/wing32/wing32.spec b/dll/win32/wing32/wing32.spec similarity index 100% rename from reactos/dll/win32/wing32/wing32.spec rename to dll/win32/wing32/wing32.spec diff --git a/reactos/dll/win32/winhttp/CMakeLists.txt b/dll/win32/winhttp/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/winhttp/CMakeLists.txt rename to dll/win32/winhttp/CMakeLists.txt diff --git a/reactos/dll/win32/winhttp/cookie.c b/dll/win32/winhttp/cookie.c similarity index 100% rename from reactos/dll/win32/winhttp/cookie.c rename to dll/win32/winhttp/cookie.c diff --git a/reactos/dll/win32/winhttp/handle.c b/dll/win32/winhttp/handle.c similarity index 100% rename from reactos/dll/win32/winhttp/handle.c rename to dll/win32/winhttp/handle.c diff --git a/reactos/dll/win32/winhttp/inet_ntop.c b/dll/win32/winhttp/inet_ntop.c similarity index 100% rename from reactos/dll/win32/winhttp/inet_ntop.c rename to dll/win32/winhttp/inet_ntop.c diff --git a/reactos/dll/win32/winhttp/main.c b/dll/win32/winhttp/main.c similarity index 100% rename from reactos/dll/win32/winhttp/main.c rename to dll/win32/winhttp/main.c diff --git a/reactos/dll/win32/winhttp/net.c b/dll/win32/winhttp/net.c similarity index 100% rename from reactos/dll/win32/winhttp/net.c rename to dll/win32/winhttp/net.c diff --git a/reactos/dll/win32/winhttp/pac.js b/dll/win32/winhttp/pac.js similarity index 100% rename from reactos/dll/win32/winhttp/pac.js rename to dll/win32/winhttp/pac.js diff --git a/reactos/dll/win32/winhttp/request.c b/dll/win32/winhttp/request.c similarity index 100% rename from reactos/dll/win32/winhttp/request.c rename to dll/win32/winhttp/request.c diff --git a/reactos/dll/win32/winhttp/rsrc.rc b/dll/win32/winhttp/rsrc.rc similarity index 100% rename from reactos/dll/win32/winhttp/rsrc.rc rename to dll/win32/winhttp/rsrc.rc diff --git a/reactos/dll/win32/winhttp/session.c b/dll/win32/winhttp/session.c similarity index 100% rename from reactos/dll/win32/winhttp/session.c rename to dll/win32/winhttp/session.c diff --git a/reactos/dll/win32/winhttp/url.c b/dll/win32/winhttp/url.c similarity index 100% rename from reactos/dll/win32/winhttp/url.c rename to dll/win32/winhttp/url.c diff --git a/reactos/dll/win32/winhttp/winhttp.spec b/dll/win32/winhttp/winhttp.spec similarity index 100% rename from reactos/dll/win32/winhttp/winhttp.spec rename to dll/win32/winhttp/winhttp.spec diff --git a/reactos/dll/win32/winhttp/winhttp_private.h b/dll/win32/winhttp/winhttp_private.h similarity index 100% rename from reactos/dll/win32/winhttp/winhttp_private.h rename to dll/win32/winhttp/winhttp_private.h diff --git a/reactos/dll/win32/winhttp/winhttp_ros.diff b/dll/win32/winhttp/winhttp_ros.diff similarity index 100% rename from reactos/dll/win32/winhttp/winhttp_ros.diff rename to dll/win32/winhttp/winhttp_ros.diff diff --git a/reactos/dll/win32/winhttp/winhttp_tlb.idl b/dll/win32/winhttp/winhttp_tlb.idl similarity index 100% rename from reactos/dll/win32/winhttp/winhttp_tlb.idl rename to dll/win32/winhttp/winhttp_tlb.idl diff --git a/reactos/dll/win32/winhttp/winhttp_tlb.rgs b/dll/win32/winhttp/winhttp_tlb.rgs similarity index 100% rename from reactos/dll/win32/winhttp/winhttp_tlb.rgs rename to dll/win32/winhttp/winhttp_tlb.rgs diff --git a/reactos/dll/win32/wininet/CMakeLists.txt b/dll/win32/wininet/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wininet/CMakeLists.txt rename to dll/win32/wininet/CMakeLists.txt diff --git a/reactos/dll/win32/wininet/cookie.c b/dll/win32/wininet/cookie.c similarity index 100% rename from reactos/dll/win32/wininet/cookie.c rename to dll/win32/wininet/cookie.c diff --git a/reactos/dll/win32/wininet/dialogs.c b/dll/win32/wininet/dialogs.c similarity index 100% rename from reactos/dll/win32/wininet/dialogs.c rename to dll/win32/wininet/dialogs.c diff --git a/reactos/dll/win32/wininet/ftp.c b/dll/win32/wininet/ftp.c similarity index 100% rename from reactos/dll/win32/wininet/ftp.c rename to dll/win32/wininet/ftp.c diff --git a/reactos/dll/win32/wininet/gopher.c b/dll/win32/wininet/gopher.c similarity index 100% rename from reactos/dll/win32/wininet/gopher.c rename to dll/win32/wininet/gopher.c diff --git a/reactos/dll/win32/wininet/http.c b/dll/win32/wininet/http.c similarity index 100% rename from reactos/dll/win32/wininet/http.c rename to dll/win32/wininet/http.c diff --git a/reactos/dll/win32/wininet/inet_ntop.c b/dll/win32/wininet/inet_ntop.c similarity index 100% rename from reactos/dll/win32/wininet/inet_ntop.c rename to dll/win32/wininet/inet_ntop.c diff --git a/reactos/dll/win32/wininet/internet.c b/dll/win32/wininet/internet.c similarity index 100% rename from reactos/dll/win32/wininet/internet.c rename to dll/win32/wininet/internet.c diff --git a/reactos/dll/win32/wininet/internet.h b/dll/win32/wininet/internet.h similarity index 100% rename from reactos/dll/win32/wininet/internet.h rename to dll/win32/wininet/internet.h diff --git a/reactos/dll/win32/wininet/netconnection.c b/dll/win32/wininet/netconnection.c similarity index 100% rename from reactos/dll/win32/wininet/netconnection.c rename to dll/win32/wininet/netconnection.c diff --git a/reactos/dll/win32/wininet/resource.h b/dll/win32/wininet/resource.h similarity index 100% rename from reactos/dll/win32/wininet/resource.h rename to dll/win32/wininet/resource.h diff --git a/reactos/dll/win32/wininet/rsrc.rc b/dll/win32/wininet/rsrc.rc similarity index 100% rename from reactos/dll/win32/wininet/rsrc.rc rename to dll/win32/wininet/rsrc.rc diff --git a/reactos/dll/win32/wininet/urlcache.c b/dll/win32/wininet/urlcache.c similarity index 100% rename from reactos/dll/win32/wininet/urlcache.c rename to dll/win32/wininet/urlcache.c diff --git a/reactos/dll/win32/wininet/utility.c b/dll/win32/wininet/utility.c similarity index 100% rename from reactos/dll/win32/wininet/utility.c rename to dll/win32/wininet/utility.c diff --git a/reactos/dll/win32/wininet/version.rc b/dll/win32/wininet/version.rc similarity index 100% rename from reactos/dll/win32/wininet/version.rc rename to dll/win32/wininet/version.rc diff --git a/reactos/dll/win32/wininet/wininet.spec b/dll/win32/wininet/wininet.spec similarity index 100% rename from reactos/dll/win32/wininet/wininet.spec rename to dll/win32/wininet/wininet.spec diff --git a/reactos/dll/win32/wininet/wininet_Bg.rc b/dll/win32/wininet/wininet_Bg.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Bg.rc rename to dll/win32/wininet/wininet_Bg.rc diff --git a/reactos/dll/win32/wininet/wininet_Cs.rc b/dll/win32/wininet/wininet_Cs.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Cs.rc rename to dll/win32/wininet/wininet_Cs.rc diff --git a/reactos/dll/win32/wininet/wininet_Da.rc b/dll/win32/wininet/wininet_Da.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Da.rc rename to dll/win32/wininet/wininet_Da.rc diff --git a/reactos/dll/win32/wininet/wininet_De.rc b/dll/win32/wininet/wininet_De.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_De.rc rename to dll/win32/wininet/wininet_De.rc diff --git a/reactos/dll/win32/wininet/wininet_En.rc b/dll/win32/wininet/wininet_En.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_En.rc rename to dll/win32/wininet/wininet_En.rc diff --git a/reactos/dll/win32/wininet/wininet_Eo.rc b/dll/win32/wininet/wininet_Eo.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Eo.rc rename to dll/win32/wininet/wininet_Eo.rc diff --git a/reactos/dll/win32/wininet/wininet_Es.rc b/dll/win32/wininet/wininet_Es.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Es.rc rename to dll/win32/wininet/wininet_Es.rc diff --git a/reactos/dll/win32/wininet/wininet_Fi.rc b/dll/win32/wininet/wininet_Fi.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Fi.rc rename to dll/win32/wininet/wininet_Fi.rc diff --git a/reactos/dll/win32/wininet/wininet_Fr.rc b/dll/win32/wininet/wininet_Fr.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Fr.rc rename to dll/win32/wininet/wininet_Fr.rc diff --git a/reactos/dll/win32/wininet/wininet_He.rc b/dll/win32/wininet/wininet_He.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_He.rc rename to dll/win32/wininet/wininet_He.rc diff --git a/reactos/dll/win32/wininet/wininet_Hu.rc b/dll/win32/wininet/wininet_Hu.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Hu.rc rename to dll/win32/wininet/wininet_Hu.rc diff --git a/reactos/dll/win32/wininet/wininet_It.rc b/dll/win32/wininet/wininet_It.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_It.rc rename to dll/win32/wininet/wininet_It.rc diff --git a/reactos/dll/win32/wininet/wininet_Ja.rc b/dll/win32/wininet/wininet_Ja.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Ja.rc rename to dll/win32/wininet/wininet_Ja.rc diff --git a/reactos/dll/win32/wininet/wininet_Ko.rc b/dll/win32/wininet/wininet_Ko.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Ko.rc rename to dll/win32/wininet/wininet_Ko.rc diff --git a/reactos/dll/win32/wininet/wininet_Lt.rc b/dll/win32/wininet/wininet_Lt.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Lt.rc rename to dll/win32/wininet/wininet_Lt.rc diff --git a/reactos/dll/win32/wininet/wininet_Nl.rc b/dll/win32/wininet/wininet_Nl.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Nl.rc rename to dll/win32/wininet/wininet_Nl.rc diff --git a/reactos/dll/win32/wininet/wininet_No.rc b/dll/win32/wininet/wininet_No.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_No.rc rename to dll/win32/wininet/wininet_No.rc diff --git a/reactos/dll/win32/wininet/wininet_Pl.rc b/dll/win32/wininet/wininet_Pl.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Pl.rc rename to dll/win32/wininet/wininet_Pl.rc diff --git a/reactos/dll/win32/wininet/wininet_Pt.rc b/dll/win32/wininet/wininet_Pt.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Pt.rc rename to dll/win32/wininet/wininet_Pt.rc diff --git a/reactos/dll/win32/wininet/wininet_Ro.rc b/dll/win32/wininet/wininet_Ro.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Ro.rc rename to dll/win32/wininet/wininet_Ro.rc diff --git a/reactos/dll/win32/wininet/wininet_Ru.rc b/dll/win32/wininet/wininet_Ru.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Ru.rc rename to dll/win32/wininet/wininet_Ru.rc diff --git a/reactos/dll/win32/wininet/wininet_Si.rc b/dll/win32/wininet/wininet_Si.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Si.rc rename to dll/win32/wininet/wininet_Si.rc diff --git a/reactos/dll/win32/wininet/wininet_Sr.rc b/dll/win32/wininet/wininet_Sr.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Sr.rc rename to dll/win32/wininet/wininet_Sr.rc diff --git a/reactos/dll/win32/wininet/wininet_Sv.rc b/dll/win32/wininet/wininet_Sv.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Sv.rc rename to dll/win32/wininet/wininet_Sv.rc diff --git a/reactos/dll/win32/wininet/wininet_Tr.rc b/dll/win32/wininet/wininet_Tr.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Tr.rc rename to dll/win32/wininet/wininet_Tr.rc diff --git a/reactos/dll/win32/wininet/wininet_Uk.rc b/dll/win32/wininet/wininet_Uk.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Uk.rc rename to dll/win32/wininet/wininet_Uk.rc diff --git a/reactos/dll/win32/wininet/wininet_Zh.rc b/dll/win32/wininet/wininet_Zh.rc similarity index 100% rename from reactos/dll/win32/wininet/wininet_Zh.rc rename to dll/win32/wininet/wininet_Zh.rc diff --git a/reactos/dll/win32/wininet/wininet_main.c b/dll/win32/wininet/wininet_main.c similarity index 100% rename from reactos/dll/win32/wininet/wininet_main.c rename to dll/win32/wininet/wininet_main.c diff --git a/reactos/dll/win32/wininet/wininet_ros.diff b/dll/win32/wininet/wininet_ros.diff similarity index 100% rename from reactos/dll/win32/wininet/wininet_ros.diff rename to dll/win32/wininet/wininet_ros.diff diff --git a/reactos/dll/win32/winmm/CMakeLists.txt b/dll/win32/winmm/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/winmm/CMakeLists.txt rename to dll/win32/winmm/CMakeLists.txt diff --git a/reactos/dll/win32/winmm/driver.c b/dll/win32/winmm/driver.c similarity index 100% rename from reactos/dll/win32/winmm/driver.c rename to dll/win32/winmm/driver.c diff --git a/reactos/dll/win32/winmm/joystick.c b/dll/win32/winmm/joystick.c similarity index 100% rename from reactos/dll/win32/winmm/joystick.c rename to dll/win32/winmm/joystick.c diff --git a/reactos/dll/win32/winmm/lolvldrv.c b/dll/win32/winmm/lolvldrv.c similarity index 100% rename from reactos/dll/win32/winmm/lolvldrv.c rename to dll/win32/winmm/lolvldrv.c diff --git a/reactos/dll/win32/winmm/mci.c b/dll/win32/winmm/mci.c similarity index 100% rename from reactos/dll/win32/winmm/mci.c rename to dll/win32/winmm/mci.c diff --git a/reactos/dll/win32/winmm/midimap/CMakeLists.txt b/dll/win32/winmm/midimap/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/winmm/midimap/CMakeLists.txt rename to dll/win32/winmm/midimap/CMakeLists.txt diff --git a/reactos/dll/win32/winmm/midimap/midimap.c b/dll/win32/winmm/midimap/midimap.c similarity index 100% rename from reactos/dll/win32/winmm/midimap/midimap.c rename to dll/win32/winmm/midimap/midimap.c diff --git a/reactos/dll/win32/winmm/midimap/midimap.drv.spec b/dll/win32/winmm/midimap/midimap.drv.spec similarity index 100% rename from reactos/dll/win32/winmm/midimap/midimap.drv.spec rename to dll/win32/winmm/midimap/midimap.drv.spec diff --git a/reactos/dll/win32/winmm/midimap/midimap.rc b/dll/win32/winmm/midimap/midimap.rc similarity index 100% rename from reactos/dll/win32/winmm/midimap/midimap.rc rename to dll/win32/winmm/midimap/midimap.rc diff --git a/reactos/dll/win32/winmm/midimap/midimap.spec b/dll/win32/winmm/midimap/midimap.spec similarity index 100% rename from reactos/dll/win32/winmm/midimap/midimap.spec rename to dll/win32/winmm/midimap/midimap.spec diff --git a/reactos/dll/win32/winmm/mmio.c b/dll/win32/winmm/mmio.c similarity index 100% rename from reactos/dll/win32/winmm/mmio.c rename to dll/win32/winmm/mmio.c diff --git a/reactos/dll/win32/winmm/playsound.c b/dll/win32/winmm/playsound.c similarity index 100% rename from reactos/dll/win32/winmm/playsound.c rename to dll/win32/winmm/playsound.c diff --git a/reactos/dll/win32/winmm/registry.c b/dll/win32/winmm/registry.c similarity index 100% rename from reactos/dll/win32/winmm/registry.c rename to dll/win32/winmm/registry.c diff --git a/reactos/dll/win32/winmm/time.c b/dll/win32/winmm/time.c similarity index 100% rename from reactos/dll/win32/winmm/time.c rename to dll/win32/winmm/time.c diff --git a/reactos/dll/win32/winmm/winemm.h b/dll/win32/winmm/winemm.h similarity index 100% rename from reactos/dll/win32/winmm/winemm.h rename to dll/win32/winmm/winemm.h diff --git a/reactos/dll/win32/winmm/winemm16.h b/dll/win32/winmm/winemm16.h similarity index 100% rename from reactos/dll/win32/winmm/winemm16.h rename to dll/win32/winmm/winemm16.h diff --git a/reactos/dll/win32/winmm/winmm.c b/dll/win32/winmm/winmm.c similarity index 100% rename from reactos/dll/win32/winmm/winmm.c rename to dll/win32/winmm/winmm.c diff --git a/reactos/dll/win32/winmm/winmm.spec b/dll/win32/winmm/winmm.spec similarity index 100% rename from reactos/dll/win32/winmm/winmm.spec rename to dll/win32/winmm/winmm.spec diff --git a/reactos/dll/win32/winmm/winmm_Br.rc b/dll/win32/winmm/winmm_Br.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Br.rc rename to dll/win32/winmm/winmm_Br.rc diff --git a/reactos/dll/win32/winmm/winmm_Cs.rc b/dll/win32/winmm/winmm_Cs.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Cs.rc rename to dll/win32/winmm/winmm_Cs.rc diff --git a/reactos/dll/win32/winmm/winmm_De.rc b/dll/win32/winmm/winmm_De.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_De.rc rename to dll/win32/winmm/winmm_De.rc diff --git a/reactos/dll/win32/winmm/winmm_En.rc b/dll/win32/winmm/winmm_En.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_En.rc rename to dll/win32/winmm/winmm_En.rc diff --git a/reactos/dll/win32/winmm/winmm_Es.rc b/dll/win32/winmm/winmm_Es.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Es.rc rename to dll/win32/winmm/winmm_Es.rc diff --git a/reactos/dll/win32/winmm/winmm_Fr.rc b/dll/win32/winmm/winmm_Fr.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Fr.rc rename to dll/win32/winmm/winmm_Fr.rc diff --git a/reactos/dll/win32/winmm/winmm_Hu.rc b/dll/win32/winmm/winmm_Hu.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Hu.rc rename to dll/win32/winmm/winmm_Hu.rc diff --git a/reactos/dll/win32/winmm/winmm_Id.rc b/dll/win32/winmm/winmm_Id.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Id.rc rename to dll/win32/winmm/winmm_Id.rc diff --git a/reactos/dll/win32/winmm/winmm_It.rc b/dll/win32/winmm/winmm_It.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_It.rc rename to dll/win32/winmm/winmm_It.rc diff --git a/reactos/dll/win32/winmm/winmm_Ja.rc b/dll/win32/winmm/winmm_Ja.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Ja.rc rename to dll/win32/winmm/winmm_Ja.rc diff --git a/reactos/dll/win32/winmm/winmm_Nl.rc b/dll/win32/winmm/winmm_Nl.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Nl.rc rename to dll/win32/winmm/winmm_Nl.rc diff --git a/reactos/dll/win32/winmm/winmm_No.rc b/dll/win32/winmm/winmm_No.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_No.rc rename to dll/win32/winmm/winmm_No.rc diff --git a/reactos/dll/win32/winmm/winmm_Pl.rc b/dll/win32/winmm/winmm_Pl.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Pl.rc rename to dll/win32/winmm/winmm_Pl.rc diff --git a/reactos/dll/win32/winmm/winmm_Pt.rc b/dll/win32/winmm/winmm_Pt.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Pt.rc rename to dll/win32/winmm/winmm_Pt.rc diff --git a/reactos/dll/win32/winmm/winmm_Ro.rc b/dll/win32/winmm/winmm_Ro.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Ro.rc rename to dll/win32/winmm/winmm_Ro.rc diff --git a/reactos/dll/win32/winmm/winmm_Ru.rc b/dll/win32/winmm/winmm_Ru.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Ru.rc rename to dll/win32/winmm/winmm_Ru.rc diff --git a/reactos/dll/win32/winmm/winmm_Si.rc b/dll/win32/winmm/winmm_Si.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Si.rc rename to dll/win32/winmm/winmm_Si.rc diff --git a/reactos/dll/win32/winmm/winmm_Sk.rc b/dll/win32/winmm/winmm_Sk.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Sk.rc rename to dll/win32/winmm/winmm_Sk.rc diff --git a/reactos/dll/win32/winmm/winmm_Uk.rc b/dll/win32/winmm/winmm_Uk.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_Uk.rc rename to dll/win32/winmm/winmm_Uk.rc diff --git a/reactos/dll/win32/winmm/winmm_res.rc b/dll/win32/winmm/winmm_res.rc similarity index 100% rename from reactos/dll/win32/winmm/winmm_res.rc rename to dll/win32/winmm/winmm_res.rc diff --git a/reactos/dll/win32/winscard/precomp.h b/dll/win32/winscard/precomp.h similarity index 100% rename from reactos/dll/win32/winscard/precomp.h rename to dll/win32/winscard/precomp.h diff --git a/reactos/dll/win32/winscard/winscard.c b/dll/win32/winscard/winscard.c similarity index 100% rename from reactos/dll/win32/winscard/winscard.c rename to dll/win32/winscard/winscard.c diff --git a/reactos/dll/win32/winscard/winscard.def b/dll/win32/winscard/winscard.def similarity index 100% rename from reactos/dll/win32/winscard/winscard.def rename to dll/win32/winscard/winscard.def diff --git a/reactos/dll/win32/winscard/winscard.rc b/dll/win32/winscard/winscard.rc similarity index 100% rename from reactos/dll/win32/winscard/winscard.rc rename to dll/win32/winscard/winscard.rc diff --git a/reactos/dll/win32/winspool/CMakeLists.txt b/dll/win32/winspool/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/winspool/CMakeLists.txt rename to dll/win32/winspool/CMakeLists.txt diff --git a/reactos/dll/win32/winspool/info.c b/dll/win32/winspool/info.c similarity index 100% rename from reactos/dll/win32/winspool/info.c rename to dll/win32/winspool/info.c diff --git a/reactos/dll/win32/winspool/stubs.c b/dll/win32/winspool/stubs.c similarity index 100% rename from reactos/dll/win32/winspool/stubs.c rename to dll/win32/winspool/stubs.c diff --git a/reactos/dll/win32/winspool/winspool.rc b/dll/win32/winspool/winspool.rc similarity index 100% rename from reactos/dll/win32/winspool/winspool.rc rename to dll/win32/winspool/winspool.rc diff --git a/reactos/dll/win32/winspool/winspool.spec b/dll/win32/winspool/winspool.spec similarity index 100% rename from reactos/dll/win32/winspool/winspool.spec rename to dll/win32/winspool/winspool.spec diff --git a/reactos/dll/win32/winsta/CMakeLists.txt b/dll/win32/winsta/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/winsta/CMakeLists.txt rename to dll/win32/winsta/CMakeLists.txt diff --git a/reactos/dll/win32/winsta/logon.c b/dll/win32/winsta/logon.c similarity index 100% rename from reactos/dll/win32/winsta/logon.c rename to dll/win32/winsta/logon.c diff --git a/reactos/dll/win32/winsta/main.c b/dll/win32/winsta/main.c similarity index 100% rename from reactos/dll/win32/winsta/main.c rename to dll/win32/winsta/main.c diff --git a/reactos/dll/win32/winsta/misc.c b/dll/win32/winsta/misc.c similarity index 100% rename from reactos/dll/win32/winsta/misc.c rename to dll/win32/winsta/misc.c diff --git a/reactos/dll/win32/winsta/query.c b/dll/win32/winsta/query.c similarity index 100% rename from reactos/dll/win32/winsta/query.c rename to dll/win32/winsta/query.c diff --git a/reactos/dll/win32/winsta/security.c b/dll/win32/winsta/security.c similarity index 100% rename from reactos/dll/win32/winsta/security.c rename to dll/win32/winsta/security.c diff --git a/reactos/dll/win32/winsta/server.c b/dll/win32/winsta/server.c similarity index 100% rename from reactos/dll/win32/winsta/server.c rename to dll/win32/winsta/server.c diff --git a/reactos/dll/win32/winsta/winsta.h b/dll/win32/winsta/winsta.h similarity index 100% rename from reactos/dll/win32/winsta/winsta.h rename to dll/win32/winsta/winsta.h diff --git a/reactos/dll/win32/winsta/winsta.rc b/dll/win32/winsta/winsta.rc similarity index 100% rename from reactos/dll/win32/winsta/winsta.rc rename to dll/win32/winsta/winsta.rc diff --git a/reactos/dll/win32/winsta/winsta.spec b/dll/win32/winsta/winsta.spec similarity index 100% rename from reactos/dll/win32/winsta/winsta.spec rename to dll/win32/winsta/winsta.spec diff --git a/reactos/dll/win32/winsta/ws.c b/dll/win32/winsta/ws.c similarity index 100% rename from reactos/dll/win32/winsta/ws.c rename to dll/win32/winsta/ws.c diff --git a/reactos/dll/win32/wintrust/CMakeLists.txt b/dll/win32/wintrust/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wintrust/CMakeLists.txt rename to dll/win32/wintrust/CMakeLists.txt diff --git a/reactos/dll/win32/wintrust/asn.c b/dll/win32/wintrust/asn.c similarity index 100% rename from reactos/dll/win32/wintrust/asn.c rename to dll/win32/wintrust/asn.c diff --git a/reactos/dll/win32/wintrust/crypt.c b/dll/win32/wintrust/crypt.c similarity index 100% rename from reactos/dll/win32/wintrust/crypt.c rename to dll/win32/wintrust/crypt.c diff --git a/reactos/dll/win32/wintrust/register.c b/dll/win32/wintrust/register.c similarity index 100% rename from reactos/dll/win32/wintrust/register.c rename to dll/win32/wintrust/register.c diff --git a/reactos/dll/win32/wintrust/softpub.c b/dll/win32/wintrust/softpub.c similarity index 100% rename from reactos/dll/win32/wintrust/softpub.c rename to dll/win32/wintrust/softpub.c diff --git a/reactos/dll/win32/wintrust/version.rc b/dll/win32/wintrust/version.rc similarity index 100% rename from reactos/dll/win32/wintrust/version.rc rename to dll/win32/wintrust/version.rc diff --git a/reactos/dll/win32/wintrust/wintrust.spec b/dll/win32/wintrust/wintrust.spec similarity index 100% rename from reactos/dll/win32/wintrust/wintrust.spec rename to dll/win32/wintrust/wintrust.spec diff --git a/reactos/dll/win32/wintrust/wintrust_main.c b/dll/win32/wintrust/wintrust_main.c similarity index 100% rename from reactos/dll/win32/wintrust/wintrust_main.c rename to dll/win32/wintrust/wintrust_main.c diff --git a/reactos/dll/win32/wintrust/wintrust_priv.h b/dll/win32/wintrust/wintrust_priv.h similarity index 100% rename from reactos/dll/win32/wintrust/wintrust_priv.h rename to dll/win32/wintrust/wintrust_priv.h diff --git a/reactos/dll/win32/wlanapi/CMakeLists.txt b/dll/win32/wlanapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wlanapi/CMakeLists.txt rename to dll/win32/wlanapi/CMakeLists.txt diff --git a/reactos/dll/win32/wlanapi/main.c b/dll/win32/wlanapi/main.c similarity index 100% rename from reactos/dll/win32/wlanapi/main.c rename to dll/win32/wlanapi/main.c diff --git a/reactos/dll/win32/wlanapi/wlanapi.spec b/dll/win32/wlanapi/wlanapi.spec similarity index 100% rename from reactos/dll/win32/wlanapi/wlanapi.spec rename to dll/win32/wlanapi/wlanapi.spec diff --git a/reactos/dll/win32/wldap32/CMakeLists.txt b/dll/win32/wldap32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wldap32/CMakeLists.txt rename to dll/win32/wldap32/CMakeLists.txt diff --git a/reactos/dll/win32/wldap32/add.c b/dll/win32/wldap32/add.c similarity index 100% rename from reactos/dll/win32/wldap32/add.c rename to dll/win32/wldap32/add.c diff --git a/reactos/dll/win32/wldap32/ber.c b/dll/win32/wldap32/ber.c similarity index 100% rename from reactos/dll/win32/wldap32/ber.c rename to dll/win32/wldap32/ber.c diff --git a/reactos/dll/win32/wldap32/bind.c b/dll/win32/wldap32/bind.c similarity index 100% rename from reactos/dll/win32/wldap32/bind.c rename to dll/win32/wldap32/bind.c diff --git a/reactos/dll/win32/wldap32/compare.c b/dll/win32/wldap32/compare.c similarity index 100% rename from reactos/dll/win32/wldap32/compare.c rename to dll/win32/wldap32/compare.c diff --git a/reactos/dll/win32/wldap32/control.c b/dll/win32/wldap32/control.c similarity index 100% rename from reactos/dll/win32/wldap32/control.c rename to dll/win32/wldap32/control.c diff --git a/reactos/dll/win32/wldap32/delete.c b/dll/win32/wldap32/delete.c similarity index 100% rename from reactos/dll/win32/wldap32/delete.c rename to dll/win32/wldap32/delete.c diff --git a/reactos/dll/win32/wldap32/dn.c b/dll/win32/wldap32/dn.c similarity index 100% rename from reactos/dll/win32/wldap32/dn.c rename to dll/win32/wldap32/dn.c diff --git a/reactos/dll/win32/wldap32/error.c b/dll/win32/wldap32/error.c similarity index 100% rename from reactos/dll/win32/wldap32/error.c rename to dll/win32/wldap32/error.c diff --git a/reactos/dll/win32/wldap32/extended.c b/dll/win32/wldap32/extended.c similarity index 100% rename from reactos/dll/win32/wldap32/extended.c rename to dll/win32/wldap32/extended.c diff --git a/reactos/dll/win32/wldap32/init.c b/dll/win32/wldap32/init.c similarity index 100% rename from reactos/dll/win32/wldap32/init.c rename to dll/win32/wldap32/init.c diff --git a/reactos/dll/win32/wldap32/main.c b/dll/win32/wldap32/main.c similarity index 100% rename from reactos/dll/win32/wldap32/main.c rename to dll/win32/wldap32/main.c diff --git a/reactos/dll/win32/wldap32/misc.c b/dll/win32/wldap32/misc.c similarity index 100% rename from reactos/dll/win32/wldap32/misc.c rename to dll/win32/wldap32/misc.c diff --git a/reactos/dll/win32/wldap32/modify.c b/dll/win32/wldap32/modify.c similarity index 100% rename from reactos/dll/win32/wldap32/modify.c rename to dll/win32/wldap32/modify.c diff --git a/reactos/dll/win32/wldap32/modrdn.c b/dll/win32/wldap32/modrdn.c similarity index 100% rename from reactos/dll/win32/wldap32/modrdn.c rename to dll/win32/wldap32/modrdn.c diff --git a/reactos/dll/win32/wldap32/option.c b/dll/win32/wldap32/option.c similarity index 100% rename from reactos/dll/win32/wldap32/option.c rename to dll/win32/wldap32/option.c diff --git a/reactos/dll/win32/wldap32/page.c b/dll/win32/wldap32/page.c similarity index 100% rename from reactos/dll/win32/wldap32/page.c rename to dll/win32/wldap32/page.c diff --git a/reactos/dll/win32/wldap32/parse.c b/dll/win32/wldap32/parse.c similarity index 100% rename from reactos/dll/win32/wldap32/parse.c rename to dll/win32/wldap32/parse.c diff --git a/reactos/dll/win32/wldap32/rename.c b/dll/win32/wldap32/rename.c similarity index 100% rename from reactos/dll/win32/wldap32/rename.c rename to dll/win32/wldap32/rename.c diff --git a/reactos/dll/win32/wldap32/search.c b/dll/win32/wldap32/search.c similarity index 100% rename from reactos/dll/win32/wldap32/search.c rename to dll/win32/wldap32/search.c diff --git a/reactos/dll/win32/wldap32/value.c b/dll/win32/wldap32/value.c similarity index 100% rename from reactos/dll/win32/wldap32/value.c rename to dll/win32/wldap32/value.c diff --git a/reactos/dll/win32/wldap32/winldap_private.h b/dll/win32/wldap32/winldap_private.h similarity index 100% rename from reactos/dll/win32/wldap32/winldap_private.h rename to dll/win32/wldap32/winldap_private.h diff --git a/reactos/dll/win32/wldap32/wldap32.h b/dll/win32/wldap32/wldap32.h similarity index 100% rename from reactos/dll/win32/wldap32/wldap32.h rename to dll/win32/wldap32/wldap32.h diff --git a/reactos/dll/win32/wldap32/wldap32.rc b/dll/win32/wldap32/wldap32.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32.rc rename to dll/win32/wldap32/wldap32.rc diff --git a/reactos/dll/win32/wldap32/wldap32.spec b/dll/win32/wldap32/wldap32.spec similarity index 100% rename from reactos/dll/win32/wldap32/wldap32.spec rename to dll/win32/wldap32/wldap32.spec diff --git a/reactos/dll/win32/wldap32/wldap32_Da.rc b/dll/win32/wldap32/wldap32_Da.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Da.rc rename to dll/win32/wldap32/wldap32_Da.rc diff --git a/reactos/dll/win32/wldap32/wldap32_De.rc b/dll/win32/wldap32/wldap32_De.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_De.rc rename to dll/win32/wldap32/wldap32_De.rc diff --git a/reactos/dll/win32/wldap32/wldap32_En.rc b/dll/win32/wldap32/wldap32_En.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_En.rc rename to dll/win32/wldap32/wldap32_En.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Es.rc b/dll/win32/wldap32/wldap32_Es.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Es.rc rename to dll/win32/wldap32/wldap32_Es.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Fr.rc b/dll/win32/wldap32/wldap32_Fr.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Fr.rc rename to dll/win32/wldap32/wldap32_Fr.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Hu.rc b/dll/win32/wldap32/wldap32_Hu.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Hu.rc rename to dll/win32/wldap32/wldap32_Hu.rc diff --git a/reactos/dll/win32/wldap32/wldap32_It.rc b/dll/win32/wldap32/wldap32_It.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_It.rc rename to dll/win32/wldap32/wldap32_It.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Ko.rc b/dll/win32/wldap32/wldap32_Ko.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Ko.rc rename to dll/win32/wldap32/wldap32_Ko.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Lt.rc b/dll/win32/wldap32/wldap32_Lt.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Lt.rc rename to dll/win32/wldap32/wldap32_Lt.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Nl.rc b/dll/win32/wldap32/wldap32_Nl.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Nl.rc rename to dll/win32/wldap32/wldap32_Nl.rc diff --git a/reactos/dll/win32/wldap32/wldap32_No.rc b/dll/win32/wldap32/wldap32_No.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_No.rc rename to dll/win32/wldap32/wldap32_No.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Pl.rc b/dll/win32/wldap32/wldap32_Pl.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Pl.rc rename to dll/win32/wldap32/wldap32_Pl.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Pt.rc b/dll/win32/wldap32/wldap32_Pt.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Pt.rc rename to dll/win32/wldap32/wldap32_Pt.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Ro.rc b/dll/win32/wldap32/wldap32_Ro.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Ro.rc rename to dll/win32/wldap32/wldap32_Ro.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Ru.rc b/dll/win32/wldap32/wldap32_Ru.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Ru.rc rename to dll/win32/wldap32/wldap32_Ru.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Sv.rc b/dll/win32/wldap32/wldap32_Sv.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Sv.rc rename to dll/win32/wldap32/wldap32_Sv.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Tr.rc b/dll/win32/wldap32/wldap32_Tr.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Tr.rc rename to dll/win32/wldap32/wldap32_Tr.rc diff --git a/reactos/dll/win32/wldap32/wldap32_Uk.rc b/dll/win32/wldap32/wldap32_Uk.rc similarity index 100% rename from reactos/dll/win32/wldap32/wldap32_Uk.rc rename to dll/win32/wldap32/wldap32_Uk.rc diff --git a/reactos/dll/win32/wmi/CMakeLists.txt b/dll/win32/wmi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wmi/CMakeLists.txt rename to dll/win32/wmi/CMakeLists.txt diff --git a/reactos/dll/win32/wmi/wmi.rc b/dll/win32/wmi/wmi.rc similarity index 100% rename from reactos/dll/win32/wmi/wmi.rc rename to dll/win32/wmi/wmi.rc diff --git a/reactos/dll/win32/wmi/wmi.spec b/dll/win32/wmi/wmi.spec similarity index 100% rename from reactos/dll/win32/wmi/wmi.spec rename to dll/win32/wmi/wmi.spec diff --git a/reactos/dll/win32/ws2_32/CMakeLists.txt b/dll/win32/ws2_32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/ws2_32/CMakeLists.txt rename to dll/win32/ws2_32/CMakeLists.txt diff --git a/reactos/dll/win32/ws2_32/include/catalog.h b/dll/win32/ws2_32/include/catalog.h similarity index 100% rename from reactos/dll/win32/ws2_32/include/catalog.h rename to dll/win32/ws2_32/include/catalog.h diff --git a/reactos/dll/win32/ws2_32/include/debug.h b/dll/win32/ws2_32/include/debug.h similarity index 100% rename from reactos/dll/win32/ws2_32/include/debug.h rename to dll/win32/ws2_32/include/debug.h diff --git a/reactos/dll/win32/ws2_32/include/handle.h b/dll/win32/ws2_32/include/handle.h similarity index 100% rename from reactos/dll/win32/ws2_32/include/handle.h rename to dll/win32/ws2_32/include/handle.h diff --git a/reactos/dll/win32/ws2_32/include/upcall.h b/dll/win32/ws2_32/include/upcall.h similarity index 100% rename from reactos/dll/win32/ws2_32/include/upcall.h rename to dll/win32/ws2_32/include/upcall.h diff --git a/reactos/dll/win32/ws2_32/include/ws2_32.h b/dll/win32/ws2_32/include/ws2_32.h similarity index 100% rename from reactos/dll/win32/ws2_32/include/ws2_32.h rename to dll/win32/ws2_32/include/ws2_32.h diff --git a/reactos/dll/win32/ws2_32/misc/async.c b/dll/win32/ws2_32/misc/async.c similarity index 100% rename from reactos/dll/win32/ws2_32/misc/async.c rename to dll/win32/ws2_32/misc/async.c diff --git a/reactos/dll/win32/ws2_32/misc/bsd.c b/dll/win32/ws2_32/misc/bsd.c similarity index 100% rename from reactos/dll/win32/ws2_32/misc/bsd.c rename to dll/win32/ws2_32/misc/bsd.c diff --git a/reactos/dll/win32/ws2_32/misc/catalog.c b/dll/win32/ws2_32/misc/catalog.c similarity index 100% rename from reactos/dll/win32/ws2_32/misc/catalog.c rename to dll/win32/ws2_32/misc/catalog.c diff --git a/reactos/dll/win32/ws2_32/misc/dllmain.c b/dll/win32/ws2_32/misc/dllmain.c similarity index 100% rename from reactos/dll/win32/ws2_32/misc/dllmain.c rename to dll/win32/ws2_32/misc/dllmain.c diff --git a/reactos/dll/win32/ws2_32/misc/event.c b/dll/win32/ws2_32/misc/event.c similarity index 100% rename from reactos/dll/win32/ws2_32/misc/event.c rename to dll/win32/ws2_32/misc/event.c diff --git a/reactos/dll/win32/ws2_32/misc/handle.c b/dll/win32/ws2_32/misc/handle.c similarity index 100% rename from reactos/dll/win32/ws2_32/misc/handle.c rename to dll/win32/ws2_32/misc/handle.c diff --git a/reactos/dll/win32/ws2_32/misc/ns.c b/dll/win32/ws2_32/misc/ns.c similarity index 100% rename from reactos/dll/win32/ws2_32/misc/ns.c rename to dll/win32/ws2_32/misc/ns.c diff --git a/reactos/dll/win32/ws2_32/misc/sndrcv.c b/dll/win32/ws2_32/misc/sndrcv.c similarity index 100% rename from reactos/dll/win32/ws2_32/misc/sndrcv.c rename to dll/win32/ws2_32/misc/sndrcv.c diff --git a/reactos/dll/win32/ws2_32/misc/stubs.c b/dll/win32/ws2_32/misc/stubs.c similarity index 100% rename from reactos/dll/win32/ws2_32/misc/stubs.c rename to dll/win32/ws2_32/misc/stubs.c diff --git a/reactos/dll/win32/ws2_32/misc/upcall.c b/dll/win32/ws2_32/misc/upcall.c similarity index 100% rename from reactos/dll/win32/ws2_32/misc/upcall.c rename to dll/win32/ws2_32/misc/upcall.c diff --git a/reactos/dll/win32/ws2_32/tests/setup.c b/dll/win32/ws2_32/tests/setup.c similarity index 100% rename from reactos/dll/win32/ws2_32/tests/setup.c rename to dll/win32/ws2_32/tests/setup.c diff --git a/reactos/dll/win32/ws2_32/tests/stubs.tst b/dll/win32/ws2_32/tests/stubs.tst similarity index 100% rename from reactos/dll/win32/ws2_32/tests/stubs.tst rename to dll/win32/ws2_32/tests/stubs.tst diff --git a/reactos/dll/win32/ws2_32/tests/tests/WinsockEvent.c b/dll/win32/ws2_32/tests/tests/WinsockEvent.c similarity index 100% rename from reactos/dll/win32/ws2_32/tests/tests/WinsockEvent.c rename to dll/win32/ws2_32/tests/tests/WinsockEvent.c diff --git a/reactos/dll/win32/ws2_32/ws2_32.rc b/dll/win32/ws2_32/ws2_32.rc similarity index 100% rename from reactos/dll/win32/ws2_32/ws2_32.rc rename to dll/win32/ws2_32/ws2_32.rc diff --git a/reactos/dll/win32/ws2_32/ws2_32.spec b/dll/win32/ws2_32/ws2_32.spec similarity index 100% rename from reactos/dll/win32/ws2_32/ws2_32.spec rename to dll/win32/ws2_32/ws2_32.spec diff --git a/reactos/dll/win32/ws2_32_new/CMakeLists.txt b/dll/win32/ws2_32_new/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/ws2_32_new/CMakeLists.txt rename to dll/win32/ws2_32_new/CMakeLists.txt diff --git a/reactos/dll/win32/ws2_32_new/inc/ws2_32.h b/dll/win32/ws2_32_new/inc/ws2_32.h similarity index 100% rename from reactos/dll/win32/ws2_32_new/inc/ws2_32.h rename to dll/win32/ws2_32_new/inc/ws2_32.h diff --git a/reactos/dll/win32/ws2_32_new/inc/ws2_32p.h b/dll/win32/ws2_32_new/inc/ws2_32p.h similarity index 100% rename from reactos/dll/win32/ws2_32_new/inc/ws2_32p.h rename to dll/win32/ws2_32_new/inc/ws2_32p.h diff --git a/reactos/dll/win32/ws2_32_new/src/addrconv.c b/dll/win32/ws2_32_new/src/addrconv.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/addrconv.c rename to dll/win32/ws2_32_new/src/addrconv.c diff --git a/reactos/dll/win32/ws2_32_new/src/addrinfo.c b/dll/win32/ws2_32_new/src/addrinfo.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/addrinfo.c rename to dll/win32/ws2_32_new/src/addrinfo.c diff --git a/reactos/dll/win32/ws2_32_new/src/async.c b/dll/win32/ws2_32_new/src/async.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/async.c rename to dll/win32/ws2_32_new/src/async.c diff --git a/reactos/dll/win32/ws2_32_new/src/bhook.c b/dll/win32/ws2_32_new/src/bhook.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/bhook.c rename to dll/win32/ws2_32_new/src/bhook.c diff --git a/reactos/dll/win32/ws2_32_new/src/dcatalog.c b/dll/win32/ws2_32_new/src/dcatalog.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/dcatalog.c rename to dll/win32/ws2_32_new/src/dcatalog.c diff --git a/reactos/dll/win32/ws2_32_new/src/dcatitem.c b/dll/win32/ws2_32_new/src/dcatitem.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/dcatitem.c rename to dll/win32/ws2_32_new/src/dcatitem.c diff --git a/reactos/dll/win32/ws2_32_new/src/dllmain.c b/dll/win32/ws2_32_new/src/dllmain.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/dllmain.c rename to dll/win32/ws2_32_new/src/dllmain.c diff --git a/reactos/dll/win32/ws2_32_new/src/dprocess.c b/dll/win32/ws2_32_new/src/dprocess.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/dprocess.c rename to dll/win32/ws2_32_new/src/dprocess.c diff --git a/reactos/dll/win32/ws2_32_new/src/dprovide.c b/dll/win32/ws2_32_new/src/dprovide.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/dprovide.c rename to dll/win32/ws2_32_new/src/dprovide.c diff --git a/reactos/dll/win32/ws2_32_new/src/dsocket.c b/dll/win32/ws2_32_new/src/dsocket.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/dsocket.c rename to dll/win32/ws2_32_new/src/dsocket.c diff --git a/reactos/dll/win32/ws2_32_new/src/dthread.c b/dll/win32/ws2_32_new/src/dthread.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/dthread.c rename to dll/win32/ws2_32_new/src/dthread.c diff --git a/reactos/dll/win32/ws2_32_new/src/dupsock.c b/dll/win32/ws2_32_new/src/dupsock.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/dupsock.c rename to dll/win32/ws2_32_new/src/dupsock.c diff --git a/reactos/dll/win32/ws2_32_new/src/enumprot.c b/dll/win32/ws2_32_new/src/enumprot.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/enumprot.c rename to dll/win32/ws2_32_new/src/enumprot.c diff --git a/reactos/dll/win32/ws2_32_new/src/event.c b/dll/win32/ws2_32_new/src/event.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/event.c rename to dll/win32/ws2_32_new/src/event.c diff --git a/reactos/dll/win32/ws2_32_new/src/getproto.c b/dll/win32/ws2_32_new/src/getproto.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/getproto.c rename to dll/win32/ws2_32_new/src/getproto.c diff --git a/reactos/dll/win32/ws2_32_new/src/getxbyxx.c b/dll/win32/ws2_32_new/src/getxbyxx.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/getxbyxx.c rename to dll/win32/ws2_32_new/src/getxbyxx.c diff --git a/reactos/dll/win32/ws2_32_new/src/ioctl.c b/dll/win32/ws2_32_new/src/ioctl.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/ioctl.c rename to dll/win32/ws2_32_new/src/ioctl.c diff --git a/reactos/dll/win32/ws2_32_new/src/nscatalo.c b/dll/win32/ws2_32_new/src/nscatalo.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/nscatalo.c rename to dll/win32/ws2_32_new/src/nscatalo.c diff --git a/reactos/dll/win32/ws2_32_new/src/nscatent.c b/dll/win32/ws2_32_new/src/nscatent.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/nscatent.c rename to dll/win32/ws2_32_new/src/nscatent.c diff --git a/reactos/dll/win32/ws2_32_new/src/nspinstl.c b/dll/win32/ws2_32_new/src/nspinstl.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/nspinstl.c rename to dll/win32/ws2_32_new/src/nspinstl.c diff --git a/reactos/dll/win32/ws2_32_new/src/nsprovid.c b/dll/win32/ws2_32_new/src/nsprovid.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/nsprovid.c rename to dll/win32/ws2_32_new/src/nsprovid.c diff --git a/reactos/dll/win32/ws2_32_new/src/nsquery.c b/dll/win32/ws2_32_new/src/nsquery.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/nsquery.c rename to dll/win32/ws2_32_new/src/nsquery.c diff --git a/reactos/dll/win32/ws2_32_new/src/qos.c b/dll/win32/ws2_32_new/src/qos.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/qos.c rename to dll/win32/ws2_32_new/src/qos.c diff --git a/reactos/dll/win32/ws2_32_new/src/qshelpr.c b/dll/win32/ws2_32_new/src/qshelpr.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/qshelpr.c rename to dll/win32/ws2_32_new/src/qshelpr.c diff --git a/reactos/dll/win32/ws2_32_new/src/rasdial.c b/dll/win32/ws2_32_new/src/rasdial.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/rasdial.c rename to dll/win32/ws2_32_new/src/rasdial.c diff --git a/reactos/dll/win32/ws2_32_new/src/recv.c b/dll/win32/ws2_32_new/src/recv.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/recv.c rename to dll/win32/ws2_32_new/src/recv.c diff --git a/reactos/dll/win32/ws2_32_new/src/rnr.c b/dll/win32/ws2_32_new/src/rnr.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/rnr.c rename to dll/win32/ws2_32_new/src/rnr.c diff --git a/reactos/dll/win32/ws2_32_new/src/scihlpr.c b/dll/win32/ws2_32_new/src/scihlpr.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/scihlpr.c rename to dll/win32/ws2_32_new/src/scihlpr.c diff --git a/reactos/dll/win32/ws2_32_new/src/select.c b/dll/win32/ws2_32_new/src/select.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/select.c rename to dll/win32/ws2_32_new/src/select.c diff --git a/reactos/dll/win32/ws2_32_new/src/send.c b/dll/win32/ws2_32_new/src/send.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/send.c rename to dll/win32/ws2_32_new/src/send.c diff --git a/reactos/dll/win32/ws2_32_new/src/sockctrl.c b/dll/win32/ws2_32_new/src/sockctrl.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/sockctrl.c rename to dll/win32/ws2_32_new/src/sockctrl.c diff --git a/reactos/dll/win32/ws2_32_new/src/socklife.c b/dll/win32/ws2_32_new/src/socklife.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/socklife.c rename to dll/win32/ws2_32_new/src/socklife.c diff --git a/reactos/dll/win32/ws2_32_new/src/spinstal.c b/dll/win32/ws2_32_new/src/spinstal.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/spinstal.c rename to dll/win32/ws2_32_new/src/spinstal.c diff --git a/reactos/dll/win32/ws2_32_new/src/sputil.c b/dll/win32/ws2_32_new/src/sputil.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/sputil.c rename to dll/win32/ws2_32_new/src/sputil.c diff --git a/reactos/dll/win32/ws2_32_new/src/startup.c b/dll/win32/ws2_32_new/src/startup.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/startup.c rename to dll/win32/ws2_32_new/src/startup.c diff --git a/reactos/dll/win32/ws2_32_new/src/wsautil.c b/dll/win32/ws2_32_new/src/wsautil.c similarity index 100% rename from reactos/dll/win32/ws2_32_new/src/wsautil.c rename to dll/win32/ws2_32_new/src/wsautil.c diff --git a/reactos/dll/win32/ws2_32_new/ws2_32.rc b/dll/win32/ws2_32_new/ws2_32.rc similarity index 100% rename from reactos/dll/win32/ws2_32_new/ws2_32.rc rename to dll/win32/ws2_32_new/ws2_32.rc diff --git a/reactos/dll/win32/ws2_32_new/ws2_32.spec b/dll/win32/ws2_32_new/ws2_32.spec similarity index 100% rename from reactos/dll/win32/ws2_32_new/ws2_32.spec rename to dll/win32/ws2_32_new/ws2_32.spec diff --git a/reactos/dll/win32/ws2help/CMakeLists.txt b/dll/win32/ws2help/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/ws2help/CMakeLists.txt rename to dll/win32/ws2help/CMakeLists.txt diff --git a/reactos/dll/win32/ws2help/apc.c b/dll/win32/ws2help/apc.c similarity index 100% rename from reactos/dll/win32/ws2help/apc.c rename to dll/win32/ws2help/apc.c diff --git a/reactos/dll/win32/ws2help/context.c b/dll/win32/ws2help/context.c similarity index 100% rename from reactos/dll/win32/ws2help/context.c rename to dll/win32/ws2help/context.c diff --git a/reactos/dll/win32/ws2help/dllmain.c b/dll/win32/ws2help/dllmain.c similarity index 100% rename from reactos/dll/win32/ws2help/dllmain.c rename to dll/win32/ws2help/dllmain.c diff --git a/reactos/dll/win32/ws2help/handle.c b/dll/win32/ws2help/handle.c similarity index 100% rename from reactos/dll/win32/ws2help/handle.c rename to dll/win32/ws2help/handle.c diff --git a/reactos/dll/win32/ws2help/notify.c b/dll/win32/ws2help/notify.c similarity index 100% rename from reactos/dll/win32/ws2help/notify.c rename to dll/win32/ws2help/notify.c diff --git a/reactos/dll/win32/ws2help/precomp.h b/dll/win32/ws2help/precomp.h similarity index 100% rename from reactos/dll/win32/ws2help/precomp.h rename to dll/win32/ws2help/precomp.h diff --git a/reactos/dll/win32/ws2help/ws2help.rc b/dll/win32/ws2help/ws2help.rc similarity index 100% rename from reactos/dll/win32/ws2help/ws2help.rc rename to dll/win32/ws2help/ws2help.rc diff --git a/reactos/dll/win32/ws2help/ws2help.spec b/dll/win32/ws2help/ws2help.spec similarity index 100% rename from reactos/dll/win32/ws2help/ws2help.spec rename to dll/win32/ws2help/ws2help.spec diff --git a/reactos/dll/win32/ws2help/wshdrv.h b/dll/win32/ws2help/wshdrv.h similarity index 100% rename from reactos/dll/win32/ws2help/wshdrv.h rename to dll/win32/ws2help/wshdrv.h diff --git a/reactos/dll/win32/wshirda/CMakeLists.txt b/dll/win32/wshirda/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wshirda/CMakeLists.txt rename to dll/win32/wshirda/CMakeLists.txt diff --git a/reactos/dll/win32/wshirda/debug.h b/dll/win32/wshirda/debug.h similarity index 100% rename from reactos/dll/win32/wshirda/debug.h rename to dll/win32/wshirda/debug.h diff --git a/reactos/dll/win32/wshirda/wshirda.c b/dll/win32/wshirda/wshirda.c similarity index 100% rename from reactos/dll/win32/wshirda/wshirda.c rename to dll/win32/wshirda/wshirda.c diff --git a/reactos/dll/win32/wshirda/wshirda.h b/dll/win32/wshirda/wshirda.h similarity index 100% rename from reactos/dll/win32/wshirda/wshirda.h rename to dll/win32/wshirda/wshirda.h diff --git a/reactos/dll/win32/wshirda/wshirda.rc b/dll/win32/wshirda/wshirda.rc similarity index 100% rename from reactos/dll/win32/wshirda/wshirda.rc rename to dll/win32/wshirda/wshirda.rc diff --git a/reactos/dll/win32/wshirda/wshirda.spec b/dll/win32/wshirda/wshirda.spec similarity index 100% rename from reactos/dll/win32/wshirda/wshirda.spec rename to dll/win32/wshirda/wshirda.spec diff --git a/reactos/dll/win32/wshtcpip/CMakeLists.txt b/dll/win32/wshtcpip/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wshtcpip/CMakeLists.txt rename to dll/win32/wshtcpip/CMakeLists.txt diff --git a/reactos/dll/win32/wshtcpip/wshtcpip.c b/dll/win32/wshtcpip/wshtcpip.c similarity index 100% rename from reactos/dll/win32/wshtcpip/wshtcpip.c rename to dll/win32/wshtcpip/wshtcpip.c diff --git a/reactos/dll/win32/wshtcpip/wshtcpip.h b/dll/win32/wshtcpip/wshtcpip.h similarity index 100% rename from reactos/dll/win32/wshtcpip/wshtcpip.h rename to dll/win32/wshtcpip/wshtcpip.h diff --git a/reactos/dll/win32/wshtcpip/wshtcpip.rc b/dll/win32/wshtcpip/wshtcpip.rc similarity index 100% rename from reactos/dll/win32/wshtcpip/wshtcpip.rc rename to dll/win32/wshtcpip/wshtcpip.rc diff --git a/reactos/dll/win32/wshtcpip/wshtcpip.spec b/dll/win32/wshtcpip/wshtcpip.spec similarity index 100% rename from reactos/dll/win32/wshtcpip/wshtcpip.spec rename to dll/win32/wshtcpip/wshtcpip.spec diff --git a/reactos/dll/win32/wshtcpip/wshtcpip_specs b/dll/win32/wshtcpip/wshtcpip_specs similarity index 100% rename from reactos/dll/win32/wshtcpip/wshtcpip_specs rename to dll/win32/wshtcpip/wshtcpip_specs diff --git a/reactos/dll/win32/wsock32/CMakeLists.txt b/dll/win32/wsock32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wsock32/CMakeLists.txt rename to dll/win32/wsock32/CMakeLists.txt diff --git a/reactos/dll/win32/wsock32/stubs.c b/dll/win32/wsock32/stubs.c similarity index 100% rename from reactos/dll/win32/wsock32/stubs.c rename to dll/win32/wsock32/stubs.c diff --git a/reactos/dll/win32/wsock32/wsock32.rc b/dll/win32/wsock32/wsock32.rc similarity index 100% rename from reactos/dll/win32/wsock32/wsock32.rc rename to dll/win32/wsock32/wsock32.rc diff --git a/reactos/dll/win32/wsock32/wsock32.spec b/dll/win32/wsock32/wsock32.spec similarity index 100% rename from reactos/dll/win32/wsock32/wsock32.spec rename to dll/win32/wsock32/wsock32.spec diff --git a/reactos/dll/win32/wtsapi32/CMakeLists.txt b/dll/win32/wtsapi32/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wtsapi32/CMakeLists.txt rename to dll/win32/wtsapi32/CMakeLists.txt diff --git a/reactos/dll/win32/wtsapi32/wtsapi32.c b/dll/win32/wtsapi32/wtsapi32.c similarity index 100% rename from reactos/dll/win32/wtsapi32/wtsapi32.c rename to dll/win32/wtsapi32/wtsapi32.c diff --git a/reactos/dll/win32/wtsapi32/wtsapi32.spec b/dll/win32/wtsapi32/wtsapi32.spec similarity index 100% rename from reactos/dll/win32/wtsapi32/wtsapi32.spec rename to dll/win32/wtsapi32/wtsapi32.spec diff --git a/reactos/dll/win32/wuapi/CMakeLists.txt b/dll/win32/wuapi/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/wuapi/CMakeLists.txt rename to dll/win32/wuapi/CMakeLists.txt diff --git a/reactos/dll/win32/wuapi/downloader.c b/dll/win32/wuapi/downloader.c similarity index 100% rename from reactos/dll/win32/wuapi/downloader.c rename to dll/win32/wuapi/downloader.c diff --git a/reactos/dll/win32/wuapi/installer.c b/dll/win32/wuapi/installer.c similarity index 100% rename from reactos/dll/win32/wuapi/installer.c rename to dll/win32/wuapi/installer.c diff --git a/reactos/dll/win32/wuapi/main.c b/dll/win32/wuapi/main.c similarity index 100% rename from reactos/dll/win32/wuapi/main.c rename to dll/win32/wuapi/main.c diff --git a/reactos/dll/win32/wuapi/searcher.c b/dll/win32/wuapi/searcher.c similarity index 100% rename from reactos/dll/win32/wuapi/searcher.c rename to dll/win32/wuapi/searcher.c diff --git a/reactos/dll/win32/wuapi/session.c b/dll/win32/wuapi/session.c similarity index 100% rename from reactos/dll/win32/wuapi/session.c rename to dll/win32/wuapi/session.c diff --git a/reactos/dll/win32/wuapi/systeminfo.c b/dll/win32/wuapi/systeminfo.c similarity index 100% rename from reactos/dll/win32/wuapi/systeminfo.c rename to dll/win32/wuapi/systeminfo.c diff --git a/reactos/dll/win32/wuapi/updates.c b/dll/win32/wuapi/updates.c similarity index 100% rename from reactos/dll/win32/wuapi/updates.c rename to dll/win32/wuapi/updates.c diff --git a/reactos/dll/win32/wuapi/wuapi.rc b/dll/win32/wuapi/wuapi.rc similarity index 100% rename from reactos/dll/win32/wuapi/wuapi.rc rename to dll/win32/wuapi/wuapi.rc diff --git a/reactos/dll/win32/wuapi/wuapi.rgs b/dll/win32/wuapi/wuapi.rgs similarity index 100% rename from reactos/dll/win32/wuapi/wuapi.rgs rename to dll/win32/wuapi/wuapi.rgs diff --git a/reactos/dll/win32/wuapi/wuapi.spec b/dll/win32/wuapi/wuapi.spec similarity index 100% rename from reactos/dll/win32/wuapi/wuapi.spec rename to dll/win32/wuapi/wuapi.spec diff --git a/reactos/dll/win32/wuapi/wuapi_private.h b/dll/win32/wuapi/wuapi_private.h similarity index 100% rename from reactos/dll/win32/wuapi/wuapi_private.h rename to dll/win32/wuapi/wuapi_private.h diff --git a/reactos/dll/win32/wuapi/wuapi_tlb.idl b/dll/win32/wuapi/wuapi_tlb.idl similarity index 100% rename from reactos/dll/win32/wuapi/wuapi_tlb.idl rename to dll/win32/wuapi/wuapi_tlb.idl diff --git a/reactos/dll/win32/xinput1_1/CMakeLists.txt b/dll/win32/xinput1_1/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/xinput1_1/CMakeLists.txt rename to dll/win32/xinput1_1/CMakeLists.txt diff --git a/reactos/dll/win32/xinput1_1/version.rc b/dll/win32/xinput1_1/version.rc similarity index 100% rename from reactos/dll/win32/xinput1_1/version.rc rename to dll/win32/xinput1_1/version.rc diff --git a/reactos/dll/win32/xinput1_1/xinput1_1.spec b/dll/win32/xinput1_1/xinput1_1.spec similarity index 100% rename from reactos/dll/win32/xinput1_1/xinput1_1.spec rename to dll/win32/xinput1_1/xinput1_1.spec diff --git a/reactos/dll/win32/xinput1_1/xinput1_1_main.c b/dll/win32/xinput1_1/xinput1_1_main.c similarity index 100% rename from reactos/dll/win32/xinput1_1/xinput1_1_main.c rename to dll/win32/xinput1_1/xinput1_1_main.c diff --git a/reactos/dll/win32/xinput1_2/CMakeLists.txt b/dll/win32/xinput1_2/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/xinput1_2/CMakeLists.txt rename to dll/win32/xinput1_2/CMakeLists.txt diff --git a/reactos/dll/win32/xinput1_2/version.rc b/dll/win32/xinput1_2/version.rc similarity index 100% rename from reactos/dll/win32/xinput1_2/version.rc rename to dll/win32/xinput1_2/version.rc diff --git a/reactos/dll/win32/xinput1_2/xinput1_2.spec b/dll/win32/xinput1_2/xinput1_2.spec similarity index 100% rename from reactos/dll/win32/xinput1_2/xinput1_2.spec rename to dll/win32/xinput1_2/xinput1_2.spec diff --git a/reactos/dll/win32/xinput1_2/xinput1_2_main.c b/dll/win32/xinput1_2/xinput1_2_main.c similarity index 100% rename from reactos/dll/win32/xinput1_2/xinput1_2_main.c rename to dll/win32/xinput1_2/xinput1_2_main.c diff --git a/reactos/dll/win32/xinput1_3/CMakeLists.txt b/dll/win32/xinput1_3/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/xinput1_3/CMakeLists.txt rename to dll/win32/xinput1_3/CMakeLists.txt diff --git a/reactos/dll/win32/xinput1_3/version.rc b/dll/win32/xinput1_3/version.rc similarity index 100% rename from reactos/dll/win32/xinput1_3/version.rc rename to dll/win32/xinput1_3/version.rc diff --git a/reactos/dll/win32/xinput1_3/xinput1_3.spec b/dll/win32/xinput1_3/xinput1_3.spec similarity index 100% rename from reactos/dll/win32/xinput1_3/xinput1_3.spec rename to dll/win32/xinput1_3/xinput1_3.spec diff --git a/reactos/dll/win32/xinput1_3/xinput1_3_main.c b/dll/win32/xinput1_3/xinput1_3_main.c similarity index 100% rename from reactos/dll/win32/xinput1_3/xinput1_3_main.c rename to dll/win32/xinput1_3/xinput1_3_main.c diff --git a/reactos/dll/win32/xinput9_1_0/CMakeLists.txt b/dll/win32/xinput9_1_0/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/xinput9_1_0/CMakeLists.txt rename to dll/win32/xinput9_1_0/CMakeLists.txt diff --git a/reactos/dll/win32/xinput9_1_0/version.rc b/dll/win32/xinput9_1_0/version.rc similarity index 100% rename from reactos/dll/win32/xinput9_1_0/version.rc rename to dll/win32/xinput9_1_0/version.rc diff --git a/reactos/dll/win32/xinput9_1_0/xinput9_1_0.spec b/dll/win32/xinput9_1_0/xinput9_1_0.spec similarity index 100% rename from reactos/dll/win32/xinput9_1_0/xinput9_1_0.spec rename to dll/win32/xinput9_1_0/xinput9_1_0.spec diff --git a/reactos/dll/win32/xinput9_1_0/xinput9_1_0_main.c b/dll/win32/xinput9_1_0/xinput9_1_0_main.c similarity index 100% rename from reactos/dll/win32/xinput9_1_0/xinput9_1_0_main.c rename to dll/win32/xinput9_1_0/xinput9_1_0_main.c diff --git a/reactos/dll/win32/xmllite/CMakeLists.txt b/dll/win32/xmllite/CMakeLists.txt similarity index 100% rename from reactos/dll/win32/xmllite/CMakeLists.txt rename to dll/win32/xmllite/CMakeLists.txt diff --git a/reactos/dll/win32/xmllite/reader.c b/dll/win32/xmllite/reader.c similarity index 100% rename from reactos/dll/win32/xmllite/reader.c rename to dll/win32/xmllite/reader.c diff --git a/reactos/dll/win32/xmllite/writer.c b/dll/win32/xmllite/writer.c similarity index 100% rename from reactos/dll/win32/xmllite/writer.c rename to dll/win32/xmllite/writer.c diff --git a/reactos/dll/win32/xmllite/xmllite.spec b/dll/win32/xmllite/xmllite.spec similarity index 100% rename from reactos/dll/win32/xmllite/xmllite.spec rename to dll/win32/xmllite/xmllite.spec diff --git a/reactos/dll/win32/xmllite/xmllite_main.c b/dll/win32/xmllite/xmllite_main.c similarity index 100% rename from reactos/dll/win32/xmllite/xmllite_main.c rename to dll/win32/xmllite/xmllite_main.c diff --git a/reactos/drivers/CMakeLists.txt b/drivers/CMakeLists.txt similarity index 100% rename from reactos/drivers/CMakeLists.txt rename to drivers/CMakeLists.txt diff --git a/reactos/drivers/base/CMakeLists.txt b/drivers/base/CMakeLists.txt similarity index 100% rename from reactos/drivers/base/CMakeLists.txt rename to drivers/base/CMakeLists.txt diff --git a/reactos/drivers/base/beep/CMakeLists.txt b/drivers/base/beep/CMakeLists.txt similarity index 100% rename from reactos/drivers/base/beep/CMakeLists.txt rename to drivers/base/beep/CMakeLists.txt diff --git a/reactos/drivers/base/beep/beep.c b/drivers/base/beep/beep.c similarity index 100% rename from reactos/drivers/base/beep/beep.c rename to drivers/base/beep/beep.c diff --git a/reactos/drivers/base/beep/beep.rc b/drivers/base/beep/beep.rc similarity index 100% rename from reactos/drivers/base/beep/beep.rc rename to drivers/base/beep/beep.rc diff --git a/reactos/drivers/base/bootvid/CMakeLists.txt b/drivers/base/bootvid/CMakeLists.txt similarity index 100% rename from reactos/drivers/base/bootvid/CMakeLists.txt rename to drivers/base/bootvid/CMakeLists.txt diff --git a/reactos/drivers/base/bootvid/arm/bootdata.c b/drivers/base/bootvid/arm/bootdata.c similarity index 100% rename from reactos/drivers/base/bootvid/arm/bootdata.c rename to drivers/base/bootvid/arm/bootdata.c diff --git a/reactos/drivers/base/bootvid/arm/bootvid.c b/drivers/base/bootvid/arm/bootvid.c similarity index 100% rename from reactos/drivers/base/bootvid/arm/bootvid.c rename to drivers/base/bootvid/arm/bootvid.c diff --git a/reactos/drivers/base/bootvid/bootvid.rc b/drivers/base/bootvid/bootvid.rc similarity index 100% rename from reactos/drivers/base/bootvid/bootvid.rc rename to drivers/base/bootvid/bootvid.rc diff --git a/reactos/drivers/base/bootvid/bootvid.spec b/drivers/base/bootvid/bootvid.spec similarity index 100% rename from reactos/drivers/base/bootvid/bootvid.spec rename to drivers/base/bootvid/bootvid.spec diff --git a/reactos/drivers/base/bootvid/i386/bootdata.c b/drivers/base/bootvid/i386/bootdata.c similarity index 100% rename from reactos/drivers/base/bootvid/i386/bootdata.c rename to drivers/base/bootvid/i386/bootdata.c diff --git a/reactos/drivers/base/bootvid/i386/bootvid.c b/drivers/base/bootvid/i386/bootvid.c similarity index 100% rename from reactos/drivers/base/bootvid/i386/bootvid.c rename to drivers/base/bootvid/i386/bootvid.c diff --git a/reactos/drivers/base/bootvid/i386/vga.c b/drivers/base/bootvid/i386/vga.c similarity index 100% rename from reactos/drivers/base/bootvid/i386/vga.c rename to drivers/base/bootvid/i386/vga.c diff --git a/reactos/drivers/base/bootvid/precomp.h b/drivers/base/bootvid/precomp.h similarity index 100% rename from reactos/drivers/base/bootvid/precomp.h rename to drivers/base/bootvid/precomp.h diff --git a/reactos/drivers/base/kdcom/CMakeLists.txt b/drivers/base/kdcom/CMakeLists.txt similarity index 100% rename from reactos/drivers/base/kdcom/CMakeLists.txt rename to drivers/base/kdcom/CMakeLists.txt diff --git a/reactos/drivers/base/kdcom/arm/kdbg.c b/drivers/base/kdcom/arm/kdbg.c similarity index 100% rename from reactos/drivers/base/kdcom/arm/kdbg.c rename to drivers/base/kdcom/arm/kdbg.c diff --git a/reactos/drivers/base/kdcom/i386/kdbg.c b/drivers/base/kdcom/i386/kdbg.c similarity index 100% rename from reactos/drivers/base/kdcom/i386/kdbg.c rename to drivers/base/kdcom/i386/kdbg.c diff --git a/reactos/drivers/base/kdcom/kdcom.rc b/drivers/base/kdcom/kdcom.rc similarity index 100% rename from reactos/drivers/base/kdcom/kdcom.rc rename to drivers/base/kdcom/kdcom.rc diff --git a/reactos/drivers/base/kdcom/kdcom.spec b/drivers/base/kdcom/kdcom.spec similarity index 100% rename from reactos/drivers/base/kdcom/kdcom.spec rename to drivers/base/kdcom/kdcom.spec diff --git a/reactos/drivers/base/kddll/CMakeLists.txt b/drivers/base/kddll/CMakeLists.txt similarity index 100% rename from reactos/drivers/base/kddll/CMakeLists.txt rename to drivers/base/kddll/CMakeLists.txt diff --git a/reactos/drivers/base/kddll/kdcom.c b/drivers/base/kddll/kdcom.c similarity index 100% rename from reactos/drivers/base/kddll/kdcom.c rename to drivers/base/kddll/kdcom.c diff --git a/reactos/drivers/base/kddll/kdcom.h b/drivers/base/kddll/kdcom.h similarity index 100% rename from reactos/drivers/base/kddll/kdcom.h rename to drivers/base/kddll/kdcom.h diff --git a/reactos/drivers/base/kddll/kdcom.spec b/drivers/base/kddll/kdcom.spec similarity index 100% rename from reactos/drivers/base/kddll/kdcom.spec rename to drivers/base/kddll/kdcom.spec diff --git a/reactos/drivers/base/kddll/kddll.c b/drivers/base/kddll/kddll.c similarity index 100% rename from reactos/drivers/base/kddll/kddll.c rename to drivers/base/kddll/kddll.c diff --git a/reactos/drivers/base/kddll/kddll.h b/drivers/base/kddll/kddll.h similarity index 100% rename from reactos/drivers/base/kddll/kddll.h rename to drivers/base/kddll/kddll.h diff --git a/reactos/drivers/base/kddll/kddll.spec b/drivers/base/kddll/kddll.spec similarity index 100% rename from reactos/drivers/base/kddll/kddll.spec rename to drivers/base/kddll/kddll.spec diff --git a/reactos/drivers/base/kddll/kdserial.c b/drivers/base/kddll/kdserial.c similarity index 100% rename from reactos/drivers/base/kddll/kdserial.c rename to drivers/base/kddll/kdserial.c diff --git a/reactos/drivers/base/nmidebug/CMakeLists.txt b/drivers/base/nmidebug/CMakeLists.txt similarity index 100% rename from reactos/drivers/base/nmidebug/CMakeLists.txt rename to drivers/base/nmidebug/CMakeLists.txt diff --git a/reactos/drivers/base/nmidebug/nmidebug.c b/drivers/base/nmidebug/nmidebug.c similarity index 100% rename from reactos/drivers/base/nmidebug/nmidebug.c rename to drivers/base/nmidebug/nmidebug.c diff --git a/reactos/drivers/base/nmidebug/nmidebug.rc b/drivers/base/nmidebug/nmidebug.rc similarity index 100% rename from reactos/drivers/base/nmidebug/nmidebug.rc rename to drivers/base/nmidebug/nmidebug.rc diff --git a/reactos/drivers/base/null/CMakeLists.txt b/drivers/base/null/CMakeLists.txt similarity index 100% rename from reactos/drivers/base/null/CMakeLists.txt rename to drivers/base/null/CMakeLists.txt diff --git a/reactos/drivers/base/null/null.c b/drivers/base/null/null.c similarity index 100% rename from reactos/drivers/base/null/null.c rename to drivers/base/null/null.c diff --git a/reactos/drivers/base/null/null.rc b/drivers/base/null/null.rc similarity index 100% rename from reactos/drivers/base/null/null.rc rename to drivers/base/null/null.rc diff --git a/reactos/drivers/battery/CMakeLists.txt b/drivers/battery/CMakeLists.txt similarity index 100% rename from reactos/drivers/battery/CMakeLists.txt rename to drivers/battery/CMakeLists.txt diff --git a/reactos/drivers/battery/battc/CMakeLists.txt b/drivers/battery/battc/CMakeLists.txt similarity index 100% rename from reactos/drivers/battery/battc/CMakeLists.txt rename to drivers/battery/battc/CMakeLists.txt diff --git a/reactos/drivers/battery/battc/battc.c b/drivers/battery/battc/battc.c similarity index 100% rename from reactos/drivers/battery/battc/battc.c rename to drivers/battery/battc/battc.c diff --git a/reactos/drivers/battery/battc/battc.h b/drivers/battery/battc/battc.h similarity index 100% rename from reactos/drivers/battery/battc/battc.h rename to drivers/battery/battc/battc.h diff --git a/reactos/drivers/battery/battc/battc.rc b/drivers/battery/battc/battc.rc similarity index 100% rename from reactos/drivers/battery/battc/battc.rc rename to drivers/battery/battc/battc.rc diff --git a/reactos/drivers/battery/battc/battc.spec b/drivers/battery/battc/battc.spec similarity index 100% rename from reactos/drivers/battery/battc/battc.spec rename to drivers/battery/battc/battc.spec diff --git a/reactos/drivers/bluetooth/CMakeLists.txt b/drivers/bluetooth/CMakeLists.txt similarity index 100% rename from reactos/drivers/bluetooth/CMakeLists.txt rename to drivers/bluetooth/CMakeLists.txt diff --git a/reactos/drivers/bluetooth/fbtusb/CMakeLists.txt b/drivers/bluetooth/fbtusb/CMakeLists.txt similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/CMakeLists.txt rename to drivers/bluetooth/fbtusb/CMakeLists.txt diff --git a/reactos/drivers/bluetooth/fbtusb/fbtdev.c b/drivers/bluetooth/fbtusb/fbtdev.c similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/fbtdev.c rename to drivers/bluetooth/fbtusb/fbtdev.c diff --git a/reactos/drivers/bluetooth/fbtusb/fbtpnp.c b/drivers/bluetooth/fbtusb/fbtpnp.c similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/fbtpnp.c rename to drivers/bluetooth/fbtusb/fbtpnp.c diff --git a/reactos/drivers/bluetooth/fbtusb/fbtpwr.c b/drivers/bluetooth/fbtusb/fbtpwr.c similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/fbtpwr.c rename to drivers/bluetooth/fbtusb/fbtpwr.c diff --git a/reactos/drivers/bluetooth/fbtusb/fbtrwr.c b/drivers/bluetooth/fbtusb/fbtrwr.c similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/fbtrwr.c rename to drivers/bluetooth/fbtusb/fbtrwr.c diff --git a/reactos/drivers/bluetooth/fbtusb/fbtusb.c b/drivers/bluetooth/fbtusb/fbtusb.c similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/fbtusb.c rename to drivers/bluetooth/fbtusb/fbtusb.c diff --git a/reactos/drivers/bluetooth/fbtusb/fbtusb.rc b/drivers/bluetooth/fbtusb/fbtusb.rc similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/fbtusb.rc rename to drivers/bluetooth/fbtusb/fbtusb.rc diff --git a/reactos/drivers/bluetooth/fbtusb/fbtwmi.c b/drivers/bluetooth/fbtusb/fbtwmi.c similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/fbtwmi.c rename to drivers/bluetooth/fbtusb/fbtwmi.c diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtHciCmdStructs.h b/drivers/bluetooth/fbtusb/include/fbtHciCmdStructs.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtHciCmdStructs.h rename to drivers/bluetooth/fbtusb/include/fbtHciCmdStructs.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtHciCmds.h b/drivers/bluetooth/fbtusb/include/fbtHciCmds.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtHciCmds.h rename to drivers/bluetooth/fbtusb/include/fbtHciCmds.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtHciDefs.h b/drivers/bluetooth/fbtusb/include/fbtHciDefs.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtHciDefs.h rename to drivers/bluetooth/fbtusb/include/fbtHciDefs.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtHciErrors.h b/drivers/bluetooth/fbtusb/include/fbtHciErrors.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtHciErrors.h rename to drivers/bluetooth/fbtusb/include/fbtHciErrors.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtHciEventStructs.h b/drivers/bluetooth/fbtusb/include/fbtHciEventStructs.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtHciEventStructs.h rename to drivers/bluetooth/fbtusb/include/fbtHciEventStructs.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtHciEvents.h b/drivers/bluetooth/fbtusb/include/fbtHciEvents.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtHciEvents.h rename to drivers/bluetooth/fbtusb/include/fbtHciEvents.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtHciLocal.h b/drivers/bluetooth/fbtusb/include/fbtHciLocal.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtHciLocal.h rename to drivers/bluetooth/fbtusb/include/fbtHciLocal.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtHciOpCodes.h b/drivers/bluetooth/fbtusb/include/fbtHciOpCodes.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtHciOpCodes.h rename to drivers/bluetooth/fbtusb/include/fbtHciOpCodes.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtHciParms.h b/drivers/bluetooth/fbtusb/include/fbtHciParms.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtHciParms.h rename to drivers/bluetooth/fbtusb/include/fbtHciParms.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtHciRoundTrip.h b/drivers/bluetooth/fbtusb/include/fbtHciRoundTrip.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtHciRoundTrip.h rename to drivers/bluetooth/fbtusb/include/fbtHciRoundTrip.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtHciSizes.h b/drivers/bluetooth/fbtusb/include/fbtHciSizes.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtHciSizes.h rename to drivers/bluetooth/fbtusb/include/fbtHciSizes.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtSeXcpt.h b/drivers/bluetooth/fbtusb/include/fbtSeXcpt.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtSeXcpt.h rename to drivers/bluetooth/fbtusb/include/fbtSeXcpt.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtdev.h b/drivers/bluetooth/fbtusb/include/fbtdev.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtdev.h rename to drivers/bluetooth/fbtusb/include/fbtdev.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbthci.h b/drivers/bluetooth/fbtusb/include/fbthci.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbthci.h rename to drivers/bluetooth/fbtusb/include/fbthci.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbthw.h b/drivers/bluetooth/fbtusb/include/fbthw.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbthw.h rename to drivers/bluetooth/fbtusb/include/fbthw.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtlog.h b/drivers/bluetooth/fbtusb/include/fbtlog.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtlog.h rename to drivers/bluetooth/fbtusb/include/fbtlog.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtpnp.h b/drivers/bluetooth/fbtusb/include/fbtpnp.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtpnp.h rename to drivers/bluetooth/fbtusb/include/fbtpnp.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtpwr.h b/drivers/bluetooth/fbtusb/include/fbtpwr.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtpwr.h rename to drivers/bluetooth/fbtusb/include/fbtpwr.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtreg.h b/drivers/bluetooth/fbtusb/include/fbtreg.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtreg.h rename to drivers/bluetooth/fbtusb/include/fbtreg.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtrwr.h b/drivers/bluetooth/fbtusb/include/fbtrwr.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtrwr.h rename to drivers/bluetooth/fbtusb/include/fbtrwr.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtusb.h b/drivers/bluetooth/fbtusb/include/fbtusb.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtusb.h rename to drivers/bluetooth/fbtusb/include/fbtusb.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtusr.h b/drivers/bluetooth/fbtusb/include/fbtusr.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtusr.h rename to drivers/bluetooth/fbtusb/include/fbtusr.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtutil.h b/drivers/bluetooth/fbtusb/include/fbtutil.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtutil.h rename to drivers/bluetooth/fbtusb/include/fbtutil.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtwmi.h b/drivers/bluetooth/fbtusb/include/fbtwmi.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtwmi.h rename to drivers/bluetooth/fbtusb/include/fbtwmi.h diff --git a/reactos/drivers/bluetooth/fbtusb/include/fbtxcpt.h b/drivers/bluetooth/fbtusb/include/fbtxcpt.h similarity index 100% rename from reactos/drivers/bluetooth/fbtusb/include/fbtxcpt.h rename to drivers/bluetooth/fbtusb/include/fbtxcpt.h diff --git a/reactos/drivers/bus/CMakeLists.txt b/drivers/bus/CMakeLists.txt similarity index 100% rename from reactos/drivers/bus/CMakeLists.txt rename to drivers/bus/CMakeLists.txt diff --git a/reactos/drivers/bus/acpi/CMakeLists.txt b/drivers/bus/acpi/CMakeLists.txt similarity index 100% rename from reactos/drivers/bus/acpi/CMakeLists.txt rename to drivers/bus/acpi/CMakeLists.txt diff --git a/reactos/drivers/bus/acpi/acpi.rc b/drivers/bus/acpi/acpi.rc similarity index 100% rename from reactos/drivers/bus/acpi/acpi.rc rename to drivers/bus/acpi/acpi.rc diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dsargs.c b/drivers/bus/acpi/acpica/dispatcher/dsargs.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dsargs.c rename to drivers/bus/acpi/acpica/dispatcher/dsargs.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dscontrol.c b/drivers/bus/acpi/acpica/dispatcher/dscontrol.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dscontrol.c rename to drivers/bus/acpi/acpica/dispatcher/dscontrol.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dsfield.c b/drivers/bus/acpi/acpica/dispatcher/dsfield.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dsfield.c rename to drivers/bus/acpi/acpica/dispatcher/dsfield.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dsinit.c b/drivers/bus/acpi/acpica/dispatcher/dsinit.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dsinit.c rename to drivers/bus/acpi/acpica/dispatcher/dsinit.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dsmethod.c b/drivers/bus/acpi/acpica/dispatcher/dsmethod.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dsmethod.c rename to drivers/bus/acpi/acpica/dispatcher/dsmethod.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dsmthdat.c b/drivers/bus/acpi/acpica/dispatcher/dsmthdat.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dsmthdat.c rename to drivers/bus/acpi/acpica/dispatcher/dsmthdat.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dsobject.c b/drivers/bus/acpi/acpica/dispatcher/dsobject.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dsobject.c rename to drivers/bus/acpi/acpica/dispatcher/dsobject.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dsopcode.c b/drivers/bus/acpi/acpica/dispatcher/dsopcode.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dsopcode.c rename to drivers/bus/acpi/acpica/dispatcher/dsopcode.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dsutils.c b/drivers/bus/acpi/acpica/dispatcher/dsutils.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dsutils.c rename to drivers/bus/acpi/acpica/dispatcher/dsutils.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dswexec.c b/drivers/bus/acpi/acpica/dispatcher/dswexec.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dswexec.c rename to drivers/bus/acpi/acpica/dispatcher/dswexec.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dswload.c b/drivers/bus/acpi/acpica/dispatcher/dswload.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dswload.c rename to drivers/bus/acpi/acpica/dispatcher/dswload.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dswload2.c b/drivers/bus/acpi/acpica/dispatcher/dswload2.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dswload2.c rename to drivers/bus/acpi/acpica/dispatcher/dswload2.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dswscope.c b/drivers/bus/acpi/acpica/dispatcher/dswscope.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dswscope.c rename to drivers/bus/acpi/acpica/dispatcher/dswscope.c diff --git a/reactos/drivers/bus/acpi/acpica/dispatcher/dswstate.c b/drivers/bus/acpi/acpica/dispatcher/dswstate.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/dispatcher/dswstate.c rename to drivers/bus/acpi/acpica/dispatcher/dswstate.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evevent.c b/drivers/bus/acpi/acpica/events/evevent.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evevent.c rename to drivers/bus/acpi/acpica/events/evevent.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evglock.c b/drivers/bus/acpi/acpica/events/evglock.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evglock.c rename to drivers/bus/acpi/acpica/events/evglock.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evgpe.c b/drivers/bus/acpi/acpica/events/evgpe.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evgpe.c rename to drivers/bus/acpi/acpica/events/evgpe.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evgpeblk.c b/drivers/bus/acpi/acpica/events/evgpeblk.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evgpeblk.c rename to drivers/bus/acpi/acpica/events/evgpeblk.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evgpeinit.c b/drivers/bus/acpi/acpica/events/evgpeinit.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evgpeinit.c rename to drivers/bus/acpi/acpica/events/evgpeinit.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evgpeutil.c b/drivers/bus/acpi/acpica/events/evgpeutil.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evgpeutil.c rename to drivers/bus/acpi/acpica/events/evgpeutil.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evmisc.c b/drivers/bus/acpi/acpica/events/evmisc.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evmisc.c rename to drivers/bus/acpi/acpica/events/evmisc.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evregion.c b/drivers/bus/acpi/acpica/events/evregion.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evregion.c rename to drivers/bus/acpi/acpica/events/evregion.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evrgnini.c b/drivers/bus/acpi/acpica/events/evrgnini.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evrgnini.c rename to drivers/bus/acpi/acpica/events/evrgnini.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evsci.c b/drivers/bus/acpi/acpica/events/evsci.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evsci.c rename to drivers/bus/acpi/acpica/events/evsci.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evxface.c b/drivers/bus/acpi/acpica/events/evxface.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evxface.c rename to drivers/bus/acpi/acpica/events/evxface.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evxfevnt.c b/drivers/bus/acpi/acpica/events/evxfevnt.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evxfevnt.c rename to drivers/bus/acpi/acpica/events/evxfevnt.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evxfgpe.c b/drivers/bus/acpi/acpica/events/evxfgpe.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evxfgpe.c rename to drivers/bus/acpi/acpica/events/evxfgpe.c diff --git a/reactos/drivers/bus/acpi/acpica/events/evxfregn.c b/drivers/bus/acpi/acpica/events/evxfregn.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/events/evxfregn.c rename to drivers/bus/acpi/acpica/events/evxfregn.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exconfig.c b/drivers/bus/acpi/acpica/executer/exconfig.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exconfig.c rename to drivers/bus/acpi/acpica/executer/exconfig.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exconvrt.c b/drivers/bus/acpi/acpica/executer/exconvrt.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exconvrt.c rename to drivers/bus/acpi/acpica/executer/exconvrt.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/excreate.c b/drivers/bus/acpi/acpica/executer/excreate.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/excreate.c rename to drivers/bus/acpi/acpica/executer/excreate.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exdebug.c b/drivers/bus/acpi/acpica/executer/exdebug.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exdebug.c rename to drivers/bus/acpi/acpica/executer/exdebug.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exdump.c b/drivers/bus/acpi/acpica/executer/exdump.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exdump.c rename to drivers/bus/acpi/acpica/executer/exdump.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exfield.c b/drivers/bus/acpi/acpica/executer/exfield.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exfield.c rename to drivers/bus/acpi/acpica/executer/exfield.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exfldio.c b/drivers/bus/acpi/acpica/executer/exfldio.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exfldio.c rename to drivers/bus/acpi/acpica/executer/exfldio.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exmisc.c b/drivers/bus/acpi/acpica/executer/exmisc.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exmisc.c rename to drivers/bus/acpi/acpica/executer/exmisc.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exmutex.c b/drivers/bus/acpi/acpica/executer/exmutex.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exmutex.c rename to drivers/bus/acpi/acpica/executer/exmutex.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exnames.c b/drivers/bus/acpi/acpica/executer/exnames.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exnames.c rename to drivers/bus/acpi/acpica/executer/exnames.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exoparg1.c b/drivers/bus/acpi/acpica/executer/exoparg1.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exoparg1.c rename to drivers/bus/acpi/acpica/executer/exoparg1.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exoparg2.c b/drivers/bus/acpi/acpica/executer/exoparg2.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exoparg2.c rename to drivers/bus/acpi/acpica/executer/exoparg2.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exoparg3.c b/drivers/bus/acpi/acpica/executer/exoparg3.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exoparg3.c rename to drivers/bus/acpi/acpica/executer/exoparg3.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exoparg6.c b/drivers/bus/acpi/acpica/executer/exoparg6.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exoparg6.c rename to drivers/bus/acpi/acpica/executer/exoparg6.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exprep.c b/drivers/bus/acpi/acpica/executer/exprep.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exprep.c rename to drivers/bus/acpi/acpica/executer/exprep.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exregion.c b/drivers/bus/acpi/acpica/executer/exregion.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exregion.c rename to drivers/bus/acpi/acpica/executer/exregion.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exresnte.c b/drivers/bus/acpi/acpica/executer/exresnte.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exresnte.c rename to drivers/bus/acpi/acpica/executer/exresnte.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exresolv.c b/drivers/bus/acpi/acpica/executer/exresolv.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exresolv.c rename to drivers/bus/acpi/acpica/executer/exresolv.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exresop.c b/drivers/bus/acpi/acpica/executer/exresop.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exresop.c rename to drivers/bus/acpi/acpica/executer/exresop.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exstore.c b/drivers/bus/acpi/acpica/executer/exstore.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exstore.c rename to drivers/bus/acpi/acpica/executer/exstore.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exstoren.c b/drivers/bus/acpi/acpica/executer/exstoren.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exstoren.c rename to drivers/bus/acpi/acpica/executer/exstoren.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exstorob.c b/drivers/bus/acpi/acpica/executer/exstorob.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exstorob.c rename to drivers/bus/acpi/acpica/executer/exstorob.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exsystem.c b/drivers/bus/acpi/acpica/executer/exsystem.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exsystem.c rename to drivers/bus/acpi/acpica/executer/exsystem.c diff --git a/reactos/drivers/bus/acpi/acpica/executer/exutils.c b/drivers/bus/acpi/acpica/executer/exutils.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/executer/exutils.c rename to drivers/bus/acpi/acpica/executer/exutils.c diff --git a/reactos/drivers/bus/acpi/acpica/hardware/hwacpi.c b/drivers/bus/acpi/acpica/hardware/hwacpi.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/hardware/hwacpi.c rename to drivers/bus/acpi/acpica/hardware/hwacpi.c diff --git a/reactos/drivers/bus/acpi/acpica/hardware/hwgpe.c b/drivers/bus/acpi/acpica/hardware/hwgpe.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/hardware/hwgpe.c rename to drivers/bus/acpi/acpica/hardware/hwgpe.c diff --git a/reactos/drivers/bus/acpi/acpica/hardware/hwpci.c b/drivers/bus/acpi/acpica/hardware/hwpci.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/hardware/hwpci.c rename to drivers/bus/acpi/acpica/hardware/hwpci.c diff --git a/reactos/drivers/bus/acpi/acpica/hardware/hwregs.c b/drivers/bus/acpi/acpica/hardware/hwregs.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/hardware/hwregs.c rename to drivers/bus/acpi/acpica/hardware/hwregs.c diff --git a/reactos/drivers/bus/acpi/acpica/hardware/hwsleep.c b/drivers/bus/acpi/acpica/hardware/hwsleep.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/hardware/hwsleep.c rename to drivers/bus/acpi/acpica/hardware/hwsleep.c diff --git a/reactos/drivers/bus/acpi/acpica/hardware/hwtimer.c b/drivers/bus/acpi/acpica/hardware/hwtimer.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/hardware/hwtimer.c rename to drivers/bus/acpi/acpica/hardware/hwtimer.c diff --git a/reactos/drivers/bus/acpi/acpica/hardware/hwvalid.c b/drivers/bus/acpi/acpica/hardware/hwvalid.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/hardware/hwvalid.c rename to drivers/bus/acpi/acpica/hardware/hwvalid.c diff --git a/reactos/drivers/bus/acpi/acpica/hardware/hwxface.c b/drivers/bus/acpi/acpica/hardware/hwxface.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/hardware/hwxface.c rename to drivers/bus/acpi/acpica/hardware/hwxface.c diff --git a/reactos/drivers/bus/acpi/acpica/include/acapps.h b/drivers/bus/acpi/acpica/include/acapps.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acapps.h rename to drivers/bus/acpi/acpica/include/acapps.h diff --git a/reactos/drivers/bus/acpi/acpica/include/accommon.h b/drivers/bus/acpi/acpica/include/accommon.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/accommon.h rename to drivers/bus/acpi/acpica/include/accommon.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acconfig.h b/drivers/bus/acpi/acpica/include/acconfig.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acconfig.h rename to drivers/bus/acpi/acpica/include/acconfig.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acdebug.h b/drivers/bus/acpi/acpica/include/acdebug.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acdebug.h rename to drivers/bus/acpi/acpica/include/acdebug.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acdisasm.h b/drivers/bus/acpi/acpica/include/acdisasm.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acdisasm.h rename to drivers/bus/acpi/acpica/include/acdisasm.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acdispat.h b/drivers/bus/acpi/acpica/include/acdispat.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acdispat.h rename to drivers/bus/acpi/acpica/include/acdispat.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acevents.h b/drivers/bus/acpi/acpica/include/acevents.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acevents.h rename to drivers/bus/acpi/acpica/include/acevents.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acexcep.h b/drivers/bus/acpi/acpica/include/acexcep.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acexcep.h rename to drivers/bus/acpi/acpica/include/acexcep.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acglobal.h b/drivers/bus/acpi/acpica/include/acglobal.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acglobal.h rename to drivers/bus/acpi/acpica/include/acglobal.h diff --git a/reactos/drivers/bus/acpi/acpica/include/achware.h b/drivers/bus/acpi/acpica/include/achware.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/achware.h rename to drivers/bus/acpi/acpica/include/achware.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acinterp.h b/drivers/bus/acpi/acpica/include/acinterp.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acinterp.h rename to drivers/bus/acpi/acpica/include/acinterp.h diff --git a/reactos/drivers/bus/acpi/acpica/include/aclocal.h b/drivers/bus/acpi/acpica/include/aclocal.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/aclocal.h rename to drivers/bus/acpi/acpica/include/aclocal.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acmacros.h b/drivers/bus/acpi/acpica/include/acmacros.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acmacros.h rename to drivers/bus/acpi/acpica/include/acmacros.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acnames.h b/drivers/bus/acpi/acpica/include/acnames.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acnames.h rename to drivers/bus/acpi/acpica/include/acnames.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acnamesp.h b/drivers/bus/acpi/acpica/include/acnamesp.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acnamesp.h rename to drivers/bus/acpi/acpica/include/acnamesp.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acobject.h b/drivers/bus/acpi/acpica/include/acobject.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acobject.h rename to drivers/bus/acpi/acpica/include/acobject.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acopcode.h b/drivers/bus/acpi/acpica/include/acopcode.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acopcode.h rename to drivers/bus/acpi/acpica/include/acopcode.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acoutput.h b/drivers/bus/acpi/acpica/include/acoutput.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acoutput.h rename to drivers/bus/acpi/acpica/include/acoutput.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acparser.h b/drivers/bus/acpi/acpica/include/acparser.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acparser.h rename to drivers/bus/acpi/acpica/include/acparser.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acpi.h b/drivers/bus/acpi/acpica/include/acpi.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acpi.h rename to drivers/bus/acpi/acpica/include/acpi.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acpiosxf.h b/drivers/bus/acpi/acpica/include/acpiosxf.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acpiosxf.h rename to drivers/bus/acpi/acpica/include/acpiosxf.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acpixf.h b/drivers/bus/acpi/acpica/include/acpixf.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acpixf.h rename to drivers/bus/acpi/acpica/include/acpixf.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acpredef.h b/drivers/bus/acpi/acpica/include/acpredef.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acpredef.h rename to drivers/bus/acpi/acpica/include/acpredef.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acresrc.h b/drivers/bus/acpi/acpica/include/acresrc.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acresrc.h rename to drivers/bus/acpi/acpica/include/acresrc.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acrestyp.h b/drivers/bus/acpi/acpica/include/acrestyp.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acrestyp.h rename to drivers/bus/acpi/acpica/include/acrestyp.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acstruct.h b/drivers/bus/acpi/acpica/include/acstruct.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acstruct.h rename to drivers/bus/acpi/acpica/include/acstruct.h diff --git a/reactos/drivers/bus/acpi/acpica/include/actables.h b/drivers/bus/acpi/acpica/include/actables.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/actables.h rename to drivers/bus/acpi/acpica/include/actables.h diff --git a/reactos/drivers/bus/acpi/acpica/include/actbl.h b/drivers/bus/acpi/acpica/include/actbl.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/actbl.h rename to drivers/bus/acpi/acpica/include/actbl.h diff --git a/reactos/drivers/bus/acpi/acpica/include/actbl1.h b/drivers/bus/acpi/acpica/include/actbl1.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/actbl1.h rename to drivers/bus/acpi/acpica/include/actbl1.h diff --git a/reactos/drivers/bus/acpi/acpica/include/actbl2.h b/drivers/bus/acpi/acpica/include/actbl2.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/actbl2.h rename to drivers/bus/acpi/acpica/include/actbl2.h diff --git a/reactos/drivers/bus/acpi/acpica/include/actbl71.h b/drivers/bus/acpi/acpica/include/actbl71.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/actbl71.h rename to drivers/bus/acpi/acpica/include/actbl71.h diff --git a/reactos/drivers/bus/acpi/acpica/include/actypes.h b/drivers/bus/acpi/acpica/include/actypes.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/actypes.h rename to drivers/bus/acpi/acpica/include/actypes.h diff --git a/reactos/drivers/bus/acpi/acpica/include/acutils.h b/drivers/bus/acpi/acpica/include/acutils.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/acutils.h rename to drivers/bus/acpi/acpica/include/acutils.h diff --git a/reactos/drivers/bus/acpi/acpica/include/amlcode.h b/drivers/bus/acpi/acpica/include/amlcode.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/amlcode.h rename to drivers/bus/acpi/acpica/include/amlcode.h diff --git a/reactos/drivers/bus/acpi/acpica/include/amlresrc.h b/drivers/bus/acpi/acpica/include/amlresrc.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/amlresrc.h rename to drivers/bus/acpi/acpica/include/amlresrc.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/accygwin.h b/drivers/bus/acpi/acpica/include/platform/accygwin.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/accygwin.h rename to drivers/bus/acpi/acpica/include/platform/accygwin.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acdos16.h b/drivers/bus/acpi/acpica/include/platform/acdos16.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/acdos16.h rename to drivers/bus/acpi/acpica/include/platform/acdos16.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acefi.h b/drivers/bus/acpi/acpica/include/platform/acefi.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/acefi.h rename to drivers/bus/acpi/acpica/include/platform/acefi.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acenv.h b/drivers/bus/acpi/acpica/include/platform/acenv.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/acenv.h rename to drivers/bus/acpi/acpica/include/platform/acenv.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acfreebsd.h b/drivers/bus/acpi/acpica/include/platform/acfreebsd.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/acfreebsd.h rename to drivers/bus/acpi/acpica/include/platform/acfreebsd.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acgcc.h b/drivers/bus/acpi/acpica/include/platform/acgcc.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/acgcc.h rename to drivers/bus/acpi/acpica/include/platform/acgcc.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acintel.h b/drivers/bus/acpi/acpica/include/platform/acintel.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/acintel.h rename to drivers/bus/acpi/acpica/include/platform/acintel.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/aclinux.h b/drivers/bus/acpi/acpica/include/platform/aclinux.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/aclinux.h rename to drivers/bus/acpi/acpica/include/platform/aclinux.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acmsvc.h b/drivers/bus/acpi/acpica/include/platform/acmsvc.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/acmsvc.h rename to drivers/bus/acpi/acpica/include/platform/acmsvc.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acnetbsd.h b/drivers/bus/acpi/acpica/include/platform/acnetbsd.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/acnetbsd.h rename to drivers/bus/acpi/acpica/include/platform/acnetbsd.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acos2.h b/drivers/bus/acpi/acpica/include/platform/acos2.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/acos2.h rename to drivers/bus/acpi/acpica/include/platform/acos2.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acwin.h b/drivers/bus/acpi/acpica/include/platform/acwin.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/acwin.h rename to drivers/bus/acpi/acpica/include/platform/acwin.h diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acwin64.h b/drivers/bus/acpi/acpica/include/platform/acwin64.h similarity index 100% rename from reactos/drivers/bus/acpi/acpica/include/platform/acwin64.h rename to drivers/bus/acpi/acpica/include/platform/acwin64.h diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsaccess.c b/drivers/bus/acpi/acpica/namespace/nsaccess.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsaccess.c rename to drivers/bus/acpi/acpica/namespace/nsaccess.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsalloc.c b/drivers/bus/acpi/acpica/namespace/nsalloc.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsalloc.c rename to drivers/bus/acpi/acpica/namespace/nsalloc.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsdump.c b/drivers/bus/acpi/acpica/namespace/nsdump.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsdump.c rename to drivers/bus/acpi/acpica/namespace/nsdump.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsdumpdv.c b/drivers/bus/acpi/acpica/namespace/nsdumpdv.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsdumpdv.c rename to drivers/bus/acpi/acpica/namespace/nsdumpdv.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nseval.c b/drivers/bus/acpi/acpica/namespace/nseval.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nseval.c rename to drivers/bus/acpi/acpica/namespace/nseval.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsinit.c b/drivers/bus/acpi/acpica/namespace/nsinit.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsinit.c rename to drivers/bus/acpi/acpica/namespace/nsinit.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsload.c b/drivers/bus/acpi/acpica/namespace/nsload.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsload.c rename to drivers/bus/acpi/acpica/namespace/nsload.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsnames.c b/drivers/bus/acpi/acpica/namespace/nsnames.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsnames.c rename to drivers/bus/acpi/acpica/namespace/nsnames.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsobject.c b/drivers/bus/acpi/acpica/namespace/nsobject.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsobject.c rename to drivers/bus/acpi/acpica/namespace/nsobject.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsparse.c b/drivers/bus/acpi/acpica/namespace/nsparse.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsparse.c rename to drivers/bus/acpi/acpica/namespace/nsparse.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nspredef.c b/drivers/bus/acpi/acpica/namespace/nspredef.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nspredef.c rename to drivers/bus/acpi/acpica/namespace/nspredef.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsrepair.c b/drivers/bus/acpi/acpica/namespace/nsrepair.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsrepair.c rename to drivers/bus/acpi/acpica/namespace/nsrepair.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsrepair2.c b/drivers/bus/acpi/acpica/namespace/nsrepair2.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsrepair2.c rename to drivers/bus/acpi/acpica/namespace/nsrepair2.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nssearch.c b/drivers/bus/acpi/acpica/namespace/nssearch.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nssearch.c rename to drivers/bus/acpi/acpica/namespace/nssearch.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsutils.c b/drivers/bus/acpi/acpica/namespace/nsutils.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsutils.c rename to drivers/bus/acpi/acpica/namespace/nsutils.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nswalk.c b/drivers/bus/acpi/acpica/namespace/nswalk.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nswalk.c rename to drivers/bus/acpi/acpica/namespace/nswalk.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsxfeval.c b/drivers/bus/acpi/acpica/namespace/nsxfeval.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsxfeval.c rename to drivers/bus/acpi/acpica/namespace/nsxfeval.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsxfname.c b/drivers/bus/acpi/acpica/namespace/nsxfname.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsxfname.c rename to drivers/bus/acpi/acpica/namespace/nsxfname.c diff --git a/reactos/drivers/bus/acpi/acpica/namespace/nsxfobj.c b/drivers/bus/acpi/acpica/namespace/nsxfobj.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/namespace/nsxfobj.c rename to drivers/bus/acpi/acpica/namespace/nsxfobj.c diff --git a/reactos/drivers/bus/acpi/acpica/parser/psargs.c b/drivers/bus/acpi/acpica/parser/psargs.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/parser/psargs.c rename to drivers/bus/acpi/acpica/parser/psargs.c diff --git a/reactos/drivers/bus/acpi/acpica/parser/psloop.c b/drivers/bus/acpi/acpica/parser/psloop.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/parser/psloop.c rename to drivers/bus/acpi/acpica/parser/psloop.c diff --git a/reactos/drivers/bus/acpi/acpica/parser/psopcode.c b/drivers/bus/acpi/acpica/parser/psopcode.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/parser/psopcode.c rename to drivers/bus/acpi/acpica/parser/psopcode.c diff --git a/reactos/drivers/bus/acpi/acpica/parser/psparse.c b/drivers/bus/acpi/acpica/parser/psparse.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/parser/psparse.c rename to drivers/bus/acpi/acpica/parser/psparse.c diff --git a/reactos/drivers/bus/acpi/acpica/parser/psscope.c b/drivers/bus/acpi/acpica/parser/psscope.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/parser/psscope.c rename to drivers/bus/acpi/acpica/parser/psscope.c diff --git a/reactos/drivers/bus/acpi/acpica/parser/pstree.c b/drivers/bus/acpi/acpica/parser/pstree.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/parser/pstree.c rename to drivers/bus/acpi/acpica/parser/pstree.c diff --git a/reactos/drivers/bus/acpi/acpica/parser/psutils.c b/drivers/bus/acpi/acpica/parser/psutils.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/parser/psutils.c rename to drivers/bus/acpi/acpica/parser/psutils.c diff --git a/reactos/drivers/bus/acpi/acpica/parser/pswalk.c b/drivers/bus/acpi/acpica/parser/pswalk.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/parser/pswalk.c rename to drivers/bus/acpi/acpica/parser/pswalk.c diff --git a/reactos/drivers/bus/acpi/acpica/parser/psxface.c b/drivers/bus/acpi/acpica/parser/psxface.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/parser/psxface.c rename to drivers/bus/acpi/acpica/parser/psxface.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rsaddr.c b/drivers/bus/acpi/acpica/resources/rsaddr.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rsaddr.c rename to drivers/bus/acpi/acpica/resources/rsaddr.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rscalc.c b/drivers/bus/acpi/acpica/resources/rscalc.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rscalc.c rename to drivers/bus/acpi/acpica/resources/rscalc.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rscreate.c b/drivers/bus/acpi/acpica/resources/rscreate.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rscreate.c rename to drivers/bus/acpi/acpica/resources/rscreate.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rsdump.c b/drivers/bus/acpi/acpica/resources/rsdump.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rsdump.c rename to drivers/bus/acpi/acpica/resources/rsdump.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rsinfo.c b/drivers/bus/acpi/acpica/resources/rsinfo.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rsinfo.c rename to drivers/bus/acpi/acpica/resources/rsinfo.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rsio.c b/drivers/bus/acpi/acpica/resources/rsio.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rsio.c rename to drivers/bus/acpi/acpica/resources/rsio.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rsirq.c b/drivers/bus/acpi/acpica/resources/rsirq.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rsirq.c rename to drivers/bus/acpi/acpica/resources/rsirq.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rslist.c b/drivers/bus/acpi/acpica/resources/rslist.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rslist.c rename to drivers/bus/acpi/acpica/resources/rslist.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rsmemory.c b/drivers/bus/acpi/acpica/resources/rsmemory.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rsmemory.c rename to drivers/bus/acpi/acpica/resources/rsmemory.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rsmisc.c b/drivers/bus/acpi/acpica/resources/rsmisc.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rsmisc.c rename to drivers/bus/acpi/acpica/resources/rsmisc.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rsutils.c b/drivers/bus/acpi/acpica/resources/rsutils.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rsutils.c rename to drivers/bus/acpi/acpica/resources/rsutils.c diff --git a/reactos/drivers/bus/acpi/acpica/resources/rsxface.c b/drivers/bus/acpi/acpica/resources/rsxface.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/resources/rsxface.c rename to drivers/bus/acpi/acpica/resources/rsxface.c diff --git a/reactos/drivers/bus/acpi/acpica/tables/tbconvrt.c b/drivers/bus/acpi/acpica/tables/tbconvrt.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/tables/tbconvrt.c rename to drivers/bus/acpi/acpica/tables/tbconvrt.c diff --git a/reactos/drivers/bus/acpi/acpica/tables/tbfadt.c b/drivers/bus/acpi/acpica/tables/tbfadt.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/tables/tbfadt.c rename to drivers/bus/acpi/acpica/tables/tbfadt.c diff --git a/reactos/drivers/bus/acpi/acpica/tables/tbfind.c b/drivers/bus/acpi/acpica/tables/tbfind.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/tables/tbfind.c rename to drivers/bus/acpi/acpica/tables/tbfind.c diff --git a/reactos/drivers/bus/acpi/acpica/tables/tbget.c b/drivers/bus/acpi/acpica/tables/tbget.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/tables/tbget.c rename to drivers/bus/acpi/acpica/tables/tbget.c diff --git a/reactos/drivers/bus/acpi/acpica/tables/tbinstal.c b/drivers/bus/acpi/acpica/tables/tbinstal.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/tables/tbinstal.c rename to drivers/bus/acpi/acpica/tables/tbinstal.c diff --git a/reactos/drivers/bus/acpi/acpica/tables/tbutils.c b/drivers/bus/acpi/acpica/tables/tbutils.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/tables/tbutils.c rename to drivers/bus/acpi/acpica/tables/tbutils.c diff --git a/reactos/drivers/bus/acpi/acpica/tables/tbxface.c b/drivers/bus/acpi/acpica/tables/tbxface.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/tables/tbxface.c rename to drivers/bus/acpi/acpica/tables/tbxface.c diff --git a/reactos/drivers/bus/acpi/acpica/tables/tbxfroot.c b/drivers/bus/acpi/acpica/tables/tbxfroot.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/tables/tbxfroot.c rename to drivers/bus/acpi/acpica/tables/tbxfroot.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utalloc.c b/drivers/bus/acpi/acpica/utilities/utalloc.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utalloc.c rename to drivers/bus/acpi/acpica/utilities/utalloc.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utcache.c b/drivers/bus/acpi/acpica/utilities/utcache.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utcache.c rename to drivers/bus/acpi/acpica/utilities/utcache.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utclib.c b/drivers/bus/acpi/acpica/utilities/utclib.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utclib.c rename to drivers/bus/acpi/acpica/utilities/utclib.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utcopy.c b/drivers/bus/acpi/acpica/utilities/utcopy.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utcopy.c rename to drivers/bus/acpi/acpica/utilities/utcopy.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utdebug.c b/drivers/bus/acpi/acpica/utilities/utdebug.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utdebug.c rename to drivers/bus/acpi/acpica/utilities/utdebug.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utdecode.c b/drivers/bus/acpi/acpica/utilities/utdecode.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utdecode.c rename to drivers/bus/acpi/acpica/utilities/utdecode.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utdelete.c b/drivers/bus/acpi/acpica/utilities/utdelete.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utdelete.c rename to drivers/bus/acpi/acpica/utilities/utdelete.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/uteval.c b/drivers/bus/acpi/acpica/utilities/uteval.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/uteval.c rename to drivers/bus/acpi/acpica/utilities/uteval.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utglobal.c b/drivers/bus/acpi/acpica/utilities/utglobal.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utglobal.c rename to drivers/bus/acpi/acpica/utilities/utglobal.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utids.c b/drivers/bus/acpi/acpica/utilities/utids.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utids.c rename to drivers/bus/acpi/acpica/utilities/utids.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utinit.c b/drivers/bus/acpi/acpica/utilities/utinit.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utinit.c rename to drivers/bus/acpi/acpica/utilities/utinit.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utlock.c b/drivers/bus/acpi/acpica/utilities/utlock.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utlock.c rename to drivers/bus/acpi/acpica/utilities/utlock.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utmath.c b/drivers/bus/acpi/acpica/utilities/utmath.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utmath.c rename to drivers/bus/acpi/acpica/utilities/utmath.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utmisc.c b/drivers/bus/acpi/acpica/utilities/utmisc.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utmisc.c rename to drivers/bus/acpi/acpica/utilities/utmisc.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utmutex.c b/drivers/bus/acpi/acpica/utilities/utmutex.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utmutex.c rename to drivers/bus/acpi/acpica/utilities/utmutex.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utobject.c b/drivers/bus/acpi/acpica/utilities/utobject.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utobject.c rename to drivers/bus/acpi/acpica/utilities/utobject.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utosi.c b/drivers/bus/acpi/acpica/utilities/utosi.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utosi.c rename to drivers/bus/acpi/acpica/utilities/utosi.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utresrc.c b/drivers/bus/acpi/acpica/utilities/utresrc.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utresrc.c rename to drivers/bus/acpi/acpica/utilities/utresrc.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utstate.c b/drivers/bus/acpi/acpica/utilities/utstate.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utstate.c rename to drivers/bus/acpi/acpica/utilities/utstate.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/uttrack.c b/drivers/bus/acpi/acpica/utilities/uttrack.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/uttrack.c rename to drivers/bus/acpi/acpica/utilities/uttrack.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utxface.c b/drivers/bus/acpi/acpica/utilities/utxface.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utxface.c rename to drivers/bus/acpi/acpica/utilities/utxface.c diff --git a/reactos/drivers/bus/acpi/acpica/utilities/utxferror.c b/drivers/bus/acpi/acpica/utilities/utxferror.c similarity index 100% rename from reactos/drivers/bus/acpi/acpica/utilities/utxferror.c rename to drivers/bus/acpi/acpica/utilities/utxferror.c diff --git a/reactos/drivers/bus/acpi/acpienum.c b/drivers/bus/acpi/acpienum.c similarity index 100% rename from reactos/drivers/bus/acpi/acpienum.c rename to drivers/bus/acpi/acpienum.c diff --git a/reactos/drivers/bus/acpi/busmgr/bus.c b/drivers/bus/acpi/busmgr/bus.c similarity index 100% rename from reactos/drivers/bus/acpi/busmgr/bus.c rename to drivers/bus/acpi/busmgr/bus.c diff --git a/reactos/drivers/bus/acpi/busmgr/button.c b/drivers/bus/acpi/busmgr/button.c similarity index 100% rename from reactos/drivers/bus/acpi/busmgr/button.c rename to drivers/bus/acpi/busmgr/button.c diff --git a/reactos/drivers/bus/acpi/busmgr/power.c b/drivers/bus/acpi/busmgr/power.c similarity index 100% rename from reactos/drivers/bus/acpi/busmgr/power.c rename to drivers/bus/acpi/busmgr/power.c diff --git a/reactos/drivers/bus/acpi/busmgr/system.c b/drivers/bus/acpi/busmgr/system.c similarity index 100% rename from reactos/drivers/bus/acpi/busmgr/system.c rename to drivers/bus/acpi/busmgr/system.c diff --git a/reactos/drivers/bus/acpi/busmgr/utils.c b/drivers/bus/acpi/busmgr/utils.c similarity index 100% rename from reactos/drivers/bus/acpi/busmgr/utils.c rename to drivers/bus/acpi/busmgr/utils.c diff --git a/reactos/drivers/bus/acpi/buspdo.c b/drivers/bus/acpi/buspdo.c similarity index 100% rename from reactos/drivers/bus/acpi/buspdo.c rename to drivers/bus/acpi/buspdo.c diff --git a/reactos/drivers/bus/acpi/cmbatt/CMakeLists.txt b/drivers/bus/acpi/cmbatt/CMakeLists.txt similarity index 100% rename from reactos/drivers/bus/acpi/cmbatt/CMakeLists.txt rename to drivers/bus/acpi/cmbatt/CMakeLists.txt diff --git a/reactos/drivers/bus/acpi/cmbatt/cmbatt.c b/drivers/bus/acpi/cmbatt/cmbatt.c similarity index 100% rename from reactos/drivers/bus/acpi/cmbatt/cmbatt.c rename to drivers/bus/acpi/cmbatt/cmbatt.c diff --git a/reactos/drivers/bus/acpi/cmbatt/cmbatt.h b/drivers/bus/acpi/cmbatt/cmbatt.h similarity index 100% rename from reactos/drivers/bus/acpi/cmbatt/cmbatt.h rename to drivers/bus/acpi/cmbatt/cmbatt.h diff --git a/reactos/drivers/bus/acpi/cmbatt/cmbatt.rc b/drivers/bus/acpi/cmbatt/cmbatt.rc similarity index 100% rename from reactos/drivers/bus/acpi/cmbatt/cmbatt.rc rename to drivers/bus/acpi/cmbatt/cmbatt.rc diff --git a/reactos/drivers/bus/acpi/cmbatt/cmbpnp.c b/drivers/bus/acpi/cmbatt/cmbpnp.c similarity index 100% rename from reactos/drivers/bus/acpi/cmbatt/cmbpnp.c rename to drivers/bus/acpi/cmbatt/cmbpnp.c diff --git a/reactos/drivers/bus/acpi/cmbatt/cmbwmi.c b/drivers/bus/acpi/cmbatt/cmbwmi.c similarity index 100% rename from reactos/drivers/bus/acpi/cmbatt/cmbwmi.c rename to drivers/bus/acpi/cmbatt/cmbwmi.c diff --git a/reactos/drivers/bus/acpi/cmbatt/cmexec.c b/drivers/bus/acpi/cmbatt/cmexec.c similarity index 100% rename from reactos/drivers/bus/acpi/cmbatt/cmexec.c rename to drivers/bus/acpi/cmbatt/cmexec.c diff --git a/reactos/drivers/bus/acpi/compbatt/CMakeLists.txt b/drivers/bus/acpi/compbatt/CMakeLists.txt similarity index 100% rename from reactos/drivers/bus/acpi/compbatt/CMakeLists.txt rename to drivers/bus/acpi/compbatt/CMakeLists.txt diff --git a/reactos/drivers/bus/acpi/compbatt/compbatt.c b/drivers/bus/acpi/compbatt/compbatt.c similarity index 100% rename from reactos/drivers/bus/acpi/compbatt/compbatt.c rename to drivers/bus/acpi/compbatt/compbatt.c diff --git a/reactos/drivers/bus/acpi/compbatt/compbatt.h b/drivers/bus/acpi/compbatt/compbatt.h similarity index 100% rename from reactos/drivers/bus/acpi/compbatt/compbatt.h rename to drivers/bus/acpi/compbatt/compbatt.h diff --git a/reactos/drivers/bus/acpi/compbatt/compbatt.rc b/drivers/bus/acpi/compbatt/compbatt.rc similarity index 100% rename from reactos/drivers/bus/acpi/compbatt/compbatt.rc rename to drivers/bus/acpi/compbatt/compbatt.rc diff --git a/reactos/drivers/bus/acpi/compbatt/compmisc.c b/drivers/bus/acpi/compbatt/compmisc.c similarity index 100% rename from reactos/drivers/bus/acpi/compbatt/compmisc.c rename to drivers/bus/acpi/compbatt/compmisc.c diff --git a/reactos/drivers/bus/acpi/compbatt/comppnp.c b/drivers/bus/acpi/compbatt/comppnp.c similarity index 100% rename from reactos/drivers/bus/acpi/compbatt/comppnp.c rename to drivers/bus/acpi/compbatt/comppnp.c diff --git a/reactos/drivers/bus/acpi/eval.c b/drivers/bus/acpi/eval.c similarity index 100% rename from reactos/drivers/bus/acpi/eval.c rename to drivers/bus/acpi/eval.c diff --git a/reactos/drivers/bus/acpi/include/acpi_bus.h b/drivers/bus/acpi/include/acpi_bus.h similarity index 100% rename from reactos/drivers/bus/acpi/include/acpi_bus.h rename to drivers/bus/acpi/include/acpi_bus.h diff --git a/reactos/drivers/bus/acpi/include/acpi_drivers.h b/drivers/bus/acpi/include/acpi_drivers.h similarity index 100% rename from reactos/drivers/bus/acpi/include/acpi_drivers.h rename to drivers/bus/acpi/include/acpi_drivers.h diff --git a/reactos/drivers/bus/acpi/include/acpisys.h b/drivers/bus/acpi/include/acpisys.h similarity index 100% rename from reactos/drivers/bus/acpi/include/acpisys.h rename to drivers/bus/acpi/include/acpisys.h diff --git a/reactos/drivers/bus/acpi/include/glue.h b/drivers/bus/acpi/include/glue.h similarity index 100% rename from reactos/drivers/bus/acpi/include/glue.h rename to drivers/bus/acpi/include/glue.h diff --git a/reactos/drivers/bus/acpi/include/list.h b/drivers/bus/acpi/include/list.h similarity index 100% rename from reactos/drivers/bus/acpi/include/list.h rename to drivers/bus/acpi/include/list.h diff --git a/reactos/drivers/bus/acpi/interface.c b/drivers/bus/acpi/interface.c similarity index 100% rename from reactos/drivers/bus/acpi/interface.c rename to drivers/bus/acpi/interface.c diff --git a/reactos/drivers/bus/acpi/main.c b/drivers/bus/acpi/main.c similarity index 100% rename from reactos/drivers/bus/acpi/main.c rename to drivers/bus/acpi/main.c diff --git a/reactos/drivers/bus/acpi/osl.c b/drivers/bus/acpi/osl.c similarity index 100% rename from reactos/drivers/bus/acpi/osl.c rename to drivers/bus/acpi/osl.c diff --git a/reactos/drivers/bus/acpi/pnp.c b/drivers/bus/acpi/pnp.c similarity index 100% rename from reactos/drivers/bus/acpi/pnp.c rename to drivers/bus/acpi/pnp.c diff --git a/reactos/drivers/bus/acpi/power.c b/drivers/bus/acpi/power.c similarity index 100% rename from reactos/drivers/bus/acpi/power.c rename to drivers/bus/acpi/power.c diff --git a/reactos/drivers/bus/isapnp/CMakeLists.txt b/drivers/bus/isapnp/CMakeLists.txt similarity index 100% rename from reactos/drivers/bus/isapnp/CMakeLists.txt rename to drivers/bus/isapnp/CMakeLists.txt diff --git a/reactos/drivers/bus/isapnp/fdo.c b/drivers/bus/isapnp/fdo.c similarity index 100% rename from reactos/drivers/bus/isapnp/fdo.c rename to drivers/bus/isapnp/fdo.c diff --git a/reactos/drivers/bus/isapnp/hardware.c b/drivers/bus/isapnp/hardware.c similarity index 100% rename from reactos/drivers/bus/isapnp/hardware.c rename to drivers/bus/isapnp/hardware.c diff --git a/reactos/drivers/bus/isapnp/isapnp.c b/drivers/bus/isapnp/isapnp.c similarity index 100% rename from reactos/drivers/bus/isapnp/isapnp.c rename to drivers/bus/isapnp/isapnp.c diff --git a/reactos/drivers/bus/isapnp/isapnp.h b/drivers/bus/isapnp/isapnp.h similarity index 100% rename from reactos/drivers/bus/isapnp/isapnp.h rename to drivers/bus/isapnp/isapnp.h diff --git a/reactos/drivers/bus/isapnp/isapnp.rc b/drivers/bus/isapnp/isapnp.rc similarity index 100% rename from reactos/drivers/bus/isapnp/isapnp.rc rename to drivers/bus/isapnp/isapnp.rc diff --git a/reactos/drivers/bus/isapnp/isapnphw.h b/drivers/bus/isapnp/isapnphw.h similarity index 100% rename from reactos/drivers/bus/isapnp/isapnphw.h rename to drivers/bus/isapnp/isapnphw.h diff --git a/reactos/drivers/bus/isapnp/pdo.c b/drivers/bus/isapnp/pdo.c similarity index 100% rename from reactos/drivers/bus/isapnp/pdo.c rename to drivers/bus/isapnp/pdo.c diff --git a/reactos/drivers/bus/pci/CMakeLists.txt b/drivers/bus/pci/CMakeLists.txt similarity index 100% rename from reactos/drivers/bus/pci/CMakeLists.txt rename to drivers/bus/pci/CMakeLists.txt diff --git a/reactos/drivers/bus/pci/fdo.c b/drivers/bus/pci/fdo.c similarity index 100% rename from reactos/drivers/bus/pci/fdo.c rename to drivers/bus/pci/fdo.c diff --git a/reactos/drivers/bus/pci/pci.c b/drivers/bus/pci/pci.c similarity index 100% rename from reactos/drivers/bus/pci/pci.c rename to drivers/bus/pci/pci.c diff --git a/reactos/drivers/bus/pci/pci.h b/drivers/bus/pci/pci.h similarity index 100% rename from reactos/drivers/bus/pci/pci.h rename to drivers/bus/pci/pci.h diff --git a/reactos/drivers/bus/pci/pci.rc b/drivers/bus/pci/pci.rc similarity index 100% rename from reactos/drivers/bus/pci/pci.rc rename to drivers/bus/pci/pci.rc diff --git a/reactos/drivers/bus/pci/pcidef.h b/drivers/bus/pci/pcidef.h similarity index 100% rename from reactos/drivers/bus/pci/pcidef.h rename to drivers/bus/pci/pcidef.h diff --git a/reactos/drivers/bus/pci/pdo.c b/drivers/bus/pci/pdo.c similarity index 100% rename from reactos/drivers/bus/pci/pdo.c rename to drivers/bus/pci/pdo.c diff --git a/reactos/drivers/bus/pcix/CMakeLists.txt b/drivers/bus/pcix/CMakeLists.txt similarity index 100% rename from reactos/drivers/bus/pcix/CMakeLists.txt rename to drivers/bus/pcix/CMakeLists.txt diff --git a/reactos/drivers/bus/pcix/arb/ar_busno.c b/drivers/bus/pcix/arb/ar_busno.c similarity index 100% rename from reactos/drivers/bus/pcix/arb/ar_busno.c rename to drivers/bus/pcix/arb/ar_busno.c diff --git a/reactos/drivers/bus/pcix/arb/ar_memio.c b/drivers/bus/pcix/arb/ar_memio.c similarity index 100% rename from reactos/drivers/bus/pcix/arb/ar_memio.c rename to drivers/bus/pcix/arb/ar_memio.c diff --git a/reactos/drivers/bus/pcix/arb/arb_comn.c b/drivers/bus/pcix/arb/arb_comn.c similarity index 100% rename from reactos/drivers/bus/pcix/arb/arb_comn.c rename to drivers/bus/pcix/arb/arb_comn.c diff --git a/reactos/drivers/bus/pcix/arb/tr_irq.c b/drivers/bus/pcix/arb/tr_irq.c similarity index 100% rename from reactos/drivers/bus/pcix/arb/tr_irq.c rename to drivers/bus/pcix/arb/tr_irq.c diff --git a/reactos/drivers/bus/pcix/debug.c b/drivers/bus/pcix/debug.c similarity index 100% rename from reactos/drivers/bus/pcix/debug.c rename to drivers/bus/pcix/debug.c diff --git a/reactos/drivers/bus/pcix/device.c b/drivers/bus/pcix/device.c similarity index 100% rename from reactos/drivers/bus/pcix/device.c rename to drivers/bus/pcix/device.c diff --git a/reactos/drivers/bus/pcix/dispatch.c b/drivers/bus/pcix/dispatch.c similarity index 100% rename from reactos/drivers/bus/pcix/dispatch.c rename to drivers/bus/pcix/dispatch.c diff --git a/reactos/drivers/bus/pcix/enum.c b/drivers/bus/pcix/enum.c similarity index 100% rename from reactos/drivers/bus/pcix/enum.c rename to drivers/bus/pcix/enum.c diff --git a/reactos/drivers/bus/pcix/fdo.c b/drivers/bus/pcix/fdo.c similarity index 100% rename from reactos/drivers/bus/pcix/fdo.c rename to drivers/bus/pcix/fdo.c diff --git a/reactos/drivers/bus/pcix/guid.c b/drivers/bus/pcix/guid.c similarity index 100% rename from reactos/drivers/bus/pcix/guid.c rename to drivers/bus/pcix/guid.c diff --git a/reactos/drivers/bus/pcix/hookhal.c b/drivers/bus/pcix/hookhal.c similarity index 100% rename from reactos/drivers/bus/pcix/hookhal.c rename to drivers/bus/pcix/hookhal.c diff --git a/reactos/drivers/bus/pcix/init.c b/drivers/bus/pcix/init.c similarity index 100% rename from reactos/drivers/bus/pcix/init.c rename to drivers/bus/pcix/init.c diff --git a/reactos/drivers/bus/pcix/intrface/agpintrf.c b/drivers/bus/pcix/intrface/agpintrf.c similarity index 100% rename from reactos/drivers/bus/pcix/intrface/agpintrf.c rename to drivers/bus/pcix/intrface/agpintrf.c diff --git a/reactos/drivers/bus/pcix/intrface/busintrf.c b/drivers/bus/pcix/intrface/busintrf.c similarity index 100% rename from reactos/drivers/bus/pcix/intrface/busintrf.c rename to drivers/bus/pcix/intrface/busintrf.c diff --git a/reactos/drivers/bus/pcix/intrface/cardbus.c b/drivers/bus/pcix/intrface/cardbus.c similarity index 100% rename from reactos/drivers/bus/pcix/intrface/cardbus.c rename to drivers/bus/pcix/intrface/cardbus.c diff --git a/reactos/drivers/bus/pcix/intrface/devhere.c b/drivers/bus/pcix/intrface/devhere.c similarity index 100% rename from reactos/drivers/bus/pcix/intrface/devhere.c rename to drivers/bus/pcix/intrface/devhere.c diff --git a/reactos/drivers/bus/pcix/intrface/ideintrf.c b/drivers/bus/pcix/intrface/ideintrf.c similarity index 100% rename from reactos/drivers/bus/pcix/intrface/ideintrf.c rename to drivers/bus/pcix/intrface/ideintrf.c diff --git a/reactos/drivers/bus/pcix/intrface/intrface.c b/drivers/bus/pcix/intrface/intrface.c similarity index 100% rename from reactos/drivers/bus/pcix/intrface/intrface.c rename to drivers/bus/pcix/intrface/intrface.c diff --git a/reactos/drivers/bus/pcix/intrface/lddintrf.c b/drivers/bus/pcix/intrface/lddintrf.c similarity index 100% rename from reactos/drivers/bus/pcix/intrface/lddintrf.c rename to drivers/bus/pcix/intrface/lddintrf.c diff --git a/reactos/drivers/bus/pcix/intrface/locintrf.c b/drivers/bus/pcix/intrface/locintrf.c similarity index 100% rename from reactos/drivers/bus/pcix/intrface/locintrf.c rename to drivers/bus/pcix/intrface/locintrf.c diff --git a/reactos/drivers/bus/pcix/intrface/pmeintf.c b/drivers/bus/pcix/intrface/pmeintf.c similarity index 100% rename from reactos/drivers/bus/pcix/intrface/pmeintf.c rename to drivers/bus/pcix/intrface/pmeintf.c diff --git a/reactos/drivers/bus/pcix/intrface/routintf.c b/drivers/bus/pcix/intrface/routintf.c similarity index 100% rename from reactos/drivers/bus/pcix/intrface/routintf.c rename to drivers/bus/pcix/intrface/routintf.c diff --git a/reactos/drivers/bus/pcix/pci.h b/drivers/bus/pcix/pci.h similarity index 100% rename from reactos/drivers/bus/pcix/pci.h rename to drivers/bus/pcix/pci.h diff --git a/reactos/drivers/bus/pcix/pci.rc b/drivers/bus/pcix/pci.rc similarity index 100% rename from reactos/drivers/bus/pcix/pci.rc rename to drivers/bus/pcix/pci.rc diff --git a/reactos/drivers/bus/pcix/pci/busno.c b/drivers/bus/pcix/pci/busno.c similarity index 100% rename from reactos/drivers/bus/pcix/pci/busno.c rename to drivers/bus/pcix/pci/busno.c diff --git a/reactos/drivers/bus/pcix/pci/config.c b/drivers/bus/pcix/pci/config.c similarity index 100% rename from reactos/drivers/bus/pcix/pci/config.c rename to drivers/bus/pcix/pci/config.c diff --git a/reactos/drivers/bus/pcix/pci/devhere.c b/drivers/bus/pcix/pci/devhere.c similarity index 100% rename from reactos/drivers/bus/pcix/pci/devhere.c rename to drivers/bus/pcix/pci/devhere.c diff --git a/reactos/drivers/bus/pcix/pci/id.c b/drivers/bus/pcix/pci/id.c similarity index 100% rename from reactos/drivers/bus/pcix/pci/id.c rename to drivers/bus/pcix/pci/id.c diff --git a/reactos/drivers/bus/pcix/pci/ppbridge.c b/drivers/bus/pcix/pci/ppbridge.c similarity index 100% rename from reactos/drivers/bus/pcix/pci/ppbridge.c rename to drivers/bus/pcix/pci/ppbridge.c diff --git a/reactos/drivers/bus/pcix/pci/romimage.c b/drivers/bus/pcix/pci/romimage.c similarity index 100% rename from reactos/drivers/bus/pcix/pci/romimage.c rename to drivers/bus/pcix/pci/romimage.c diff --git a/reactos/drivers/bus/pcix/pci/state.c b/drivers/bus/pcix/pci/state.c similarity index 100% rename from reactos/drivers/bus/pcix/pci/state.c rename to drivers/bus/pcix/pci/state.c diff --git a/reactos/drivers/bus/pcix/pcivrify.c b/drivers/bus/pcix/pcivrify.c similarity index 100% rename from reactos/drivers/bus/pcix/pcivrify.c rename to drivers/bus/pcix/pcivrify.c diff --git a/reactos/drivers/bus/pcix/pdo.c b/drivers/bus/pcix/pdo.c similarity index 100% rename from reactos/drivers/bus/pcix/pdo.c rename to drivers/bus/pcix/pdo.c diff --git a/reactos/drivers/bus/pcix/power.c b/drivers/bus/pcix/power.c similarity index 100% rename from reactos/drivers/bus/pcix/power.c rename to drivers/bus/pcix/power.c diff --git a/reactos/drivers/bus/pcix/usage.c b/drivers/bus/pcix/usage.c similarity index 100% rename from reactos/drivers/bus/pcix/usage.c rename to drivers/bus/pcix/usage.c diff --git a/reactos/drivers/bus/pcix/utils.c b/drivers/bus/pcix/utils.c similarity index 100% rename from reactos/drivers/bus/pcix/utils.c rename to drivers/bus/pcix/utils.c diff --git a/reactos/drivers/bus/pcmcia/CMakeLists.txt b/drivers/bus/pcmcia/CMakeLists.txt similarity index 100% rename from reactos/drivers/bus/pcmcia/CMakeLists.txt rename to drivers/bus/pcmcia/CMakeLists.txt diff --git a/reactos/drivers/bus/pcmcia/fdo.c b/drivers/bus/pcmcia/fdo.c similarity index 100% rename from reactos/drivers/bus/pcmcia/fdo.c rename to drivers/bus/pcmcia/fdo.c diff --git a/reactos/drivers/bus/pcmcia/pcmcia.c b/drivers/bus/pcmcia/pcmcia.c similarity index 100% rename from reactos/drivers/bus/pcmcia/pcmcia.c rename to drivers/bus/pcmcia/pcmcia.c diff --git a/reactos/drivers/bus/pcmcia/pcmcia.h b/drivers/bus/pcmcia/pcmcia.h similarity index 100% rename from reactos/drivers/bus/pcmcia/pcmcia.h rename to drivers/bus/pcmcia/pcmcia.h diff --git a/reactos/drivers/bus/pcmcia/pcmcia.rc b/drivers/bus/pcmcia/pcmcia.rc similarity index 100% rename from reactos/drivers/bus/pcmcia/pcmcia.rc rename to drivers/bus/pcmcia/pcmcia.rc diff --git a/reactos/drivers/bus/pcmcia/pdo.c b/drivers/bus/pcmcia/pdo.c similarity index 100% rename from reactos/drivers/bus/pcmcia/pdo.c rename to drivers/bus/pcmcia/pdo.c diff --git a/reactos/drivers/filesystems/CMakeLists.txt b/drivers/filesystems/CMakeLists.txt similarity index 100% rename from reactos/drivers/filesystems/CMakeLists.txt rename to drivers/filesystems/CMakeLists.txt diff --git a/reactos/drivers/filesystems/cdfs/CMakeLists.txt b/drivers/filesystems/cdfs/CMakeLists.txt similarity index 100% rename from reactos/drivers/filesystems/cdfs/CMakeLists.txt rename to drivers/filesystems/cdfs/CMakeLists.txt diff --git a/reactos/drivers/filesystems/cdfs/cdfs.c b/drivers/filesystems/cdfs/cdfs.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/cdfs.c rename to drivers/filesystems/cdfs/cdfs.c diff --git a/reactos/drivers/filesystems/cdfs/cdfs.h b/drivers/filesystems/cdfs/cdfs.h similarity index 100% rename from reactos/drivers/filesystems/cdfs/cdfs.h rename to drivers/filesystems/cdfs/cdfs.h diff --git a/reactos/drivers/filesystems/cdfs/cdfs.rc b/drivers/filesystems/cdfs/cdfs.rc similarity index 100% rename from reactos/drivers/filesystems/cdfs/cdfs.rc rename to drivers/filesystems/cdfs/cdfs.rc diff --git a/reactos/drivers/filesystems/cdfs/cleanup.c b/drivers/filesystems/cdfs/cleanup.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/cleanup.c rename to drivers/filesystems/cdfs/cleanup.c diff --git a/reactos/drivers/filesystems/cdfs/close.c b/drivers/filesystems/cdfs/close.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/close.c rename to drivers/filesystems/cdfs/close.c diff --git a/reactos/drivers/filesystems/cdfs/common.c b/drivers/filesystems/cdfs/common.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/common.c rename to drivers/filesystems/cdfs/common.c diff --git a/reactos/drivers/filesystems/cdfs/create.c b/drivers/filesystems/cdfs/create.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/create.c rename to drivers/filesystems/cdfs/create.c diff --git a/reactos/drivers/filesystems/cdfs/devctrl.c b/drivers/filesystems/cdfs/devctrl.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/devctrl.c rename to drivers/filesystems/cdfs/devctrl.c diff --git a/reactos/drivers/filesystems/cdfs/dirctl.c b/drivers/filesystems/cdfs/dirctl.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/dirctl.c rename to drivers/filesystems/cdfs/dirctl.c diff --git a/reactos/drivers/filesystems/cdfs/fcb.c b/drivers/filesystems/cdfs/fcb.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/fcb.c rename to drivers/filesystems/cdfs/fcb.c diff --git a/reactos/drivers/filesystems/cdfs/finfo.c b/drivers/filesystems/cdfs/finfo.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/finfo.c rename to drivers/filesystems/cdfs/finfo.c diff --git a/reactos/drivers/filesystems/cdfs/fsctl.c b/drivers/filesystems/cdfs/fsctl.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/fsctl.c rename to drivers/filesystems/cdfs/fsctl.c diff --git a/reactos/drivers/filesystems/cdfs/misc.c b/drivers/filesystems/cdfs/misc.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/misc.c rename to drivers/filesystems/cdfs/misc.c diff --git a/reactos/drivers/filesystems/cdfs/rw.c b/drivers/filesystems/cdfs/rw.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/rw.c rename to drivers/filesystems/cdfs/rw.c diff --git a/reactos/drivers/filesystems/cdfs/volinfo.c b/drivers/filesystems/cdfs/volinfo.c similarity index 100% rename from reactos/drivers/filesystems/cdfs/volinfo.c rename to drivers/filesystems/cdfs/volinfo.c diff --git a/reactos/drivers/filesystems/ext2/CMakeLists.txt b/drivers/filesystems/ext2/CMakeLists.txt similarity index 100% rename from reactos/drivers/filesystems/ext2/CMakeLists.txt rename to drivers/filesystems/ext2/CMakeLists.txt diff --git a/reactos/drivers/filesystems/ext2/ext2fs.rc b/drivers/filesystems/ext2/ext2fs.rc similarity index 100% rename from reactos/drivers/filesystems/ext2/ext2fs.rc rename to drivers/filesystems/ext2/ext2fs.rc diff --git a/reactos/drivers/filesystems/ext2/inc/errmsg.h b/drivers/filesystems/ext2/inc/errmsg.h similarity index 100% rename from reactos/drivers/filesystems/ext2/inc/errmsg.h rename to drivers/filesystems/ext2/inc/errmsg.h diff --git a/reactos/drivers/filesystems/ext2/inc/ext2_fs.h b/drivers/filesystems/ext2/inc/ext2_fs.h similarity index 100% rename from reactos/drivers/filesystems/ext2/inc/ext2_fs.h rename to drivers/filesystems/ext2/inc/ext2_fs.h diff --git a/reactos/drivers/filesystems/ext2/inc/ext2fsd.h b/drivers/filesystems/ext2/inc/ext2fsd.h similarity index 100% rename from reactos/drivers/filesystems/ext2/inc/ext2fsd.h rename to drivers/filesystems/ext2/inc/ext2fsd.h diff --git a/reactos/drivers/filesystems/ext2/inc/ext2metadata.h b/drivers/filesystems/ext2/inc/ext2metadata.h similarity index 100% rename from reactos/drivers/filesystems/ext2/inc/ext2metadata.h rename to drivers/filesystems/ext2/inc/ext2metadata.h diff --git a/reactos/drivers/filesystems/ext2/inc/protos.h b/drivers/filesystems/ext2/inc/protos.h similarity index 100% rename from reactos/drivers/filesystems/ext2/inc/protos.h rename to drivers/filesystems/ext2/inc/protos.h diff --git a/reactos/drivers/filesystems/ext2/inc/resource.h b/drivers/filesystems/ext2/inc/resource.h similarity index 100% rename from reactos/drivers/filesystems/ext2/inc/resource.h rename to drivers/filesystems/ext2/inc/resource.h diff --git a/reactos/drivers/filesystems/ext2/inc/struct.h b/drivers/filesystems/ext2/inc/struct.h similarity index 100% rename from reactos/drivers/filesystems/ext2/inc/struct.h rename to drivers/filesystems/ext2/inc/struct.h diff --git a/reactos/drivers/filesystems/ext2/src/DiskIO.c b/drivers/filesystems/ext2/src/DiskIO.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/DiskIO.c rename to drivers/filesystems/ext2/src/DiskIO.c diff --git a/reactos/drivers/filesystems/ext2/src/cleanup.c b/drivers/filesystems/ext2/src/cleanup.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/cleanup.c rename to drivers/filesystems/ext2/src/cleanup.c diff --git a/reactos/drivers/filesystems/ext2/src/close.c b/drivers/filesystems/ext2/src/close.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/close.c rename to drivers/filesystems/ext2/src/close.c diff --git a/reactos/drivers/filesystems/ext2/src/create.c b/drivers/filesystems/ext2/src/create.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/create.c rename to drivers/filesystems/ext2/src/create.c diff --git a/reactos/drivers/filesystems/ext2/src/devcntrl.c b/drivers/filesystems/ext2/src/devcntrl.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/devcntrl.c rename to drivers/filesystems/ext2/src/devcntrl.c diff --git a/reactos/drivers/filesystems/ext2/src/dircntrl.c b/drivers/filesystems/ext2/src/dircntrl.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/dircntrl.c rename to drivers/filesystems/ext2/src/dircntrl.c diff --git a/reactos/drivers/filesystems/ext2/src/ext2.rc b/drivers/filesystems/ext2/src/ext2.rc similarity index 100% rename from reactos/drivers/filesystems/ext2/src/ext2.rc rename to drivers/filesystems/ext2/src/ext2.rc diff --git a/reactos/drivers/filesystems/ext2/src/ext2init.c b/drivers/filesystems/ext2/src/ext2init.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/ext2init.c rename to drivers/filesystems/ext2/src/ext2init.c diff --git a/reactos/drivers/filesystems/ext2/src/fastio.c b/drivers/filesystems/ext2/src/fastio.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/fastio.c rename to drivers/filesystems/ext2/src/fastio.c diff --git a/reactos/drivers/filesystems/ext2/src/fileinfo.c b/drivers/filesystems/ext2/src/fileinfo.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/fileinfo.c rename to drivers/filesystems/ext2/src/fileinfo.c diff --git a/reactos/drivers/filesystems/ext2/src/flush.c b/drivers/filesystems/ext2/src/flush.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/flush.c rename to drivers/filesystems/ext2/src/flush.c diff --git a/reactos/drivers/filesystems/ext2/src/fsctrl.c b/drivers/filesystems/ext2/src/fsctrl.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/fsctrl.c rename to drivers/filesystems/ext2/src/fsctrl.c diff --git a/reactos/drivers/filesystems/ext2/src/io.c b/drivers/filesystems/ext2/src/io.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/io.c rename to drivers/filesystems/ext2/src/io.c diff --git a/reactos/drivers/filesystems/ext2/src/metadata.c b/drivers/filesystems/ext2/src/metadata.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/metadata.c rename to drivers/filesystems/ext2/src/metadata.c diff --git a/reactos/drivers/filesystems/ext2/src/misc.c b/drivers/filesystems/ext2/src/misc.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/misc.c rename to drivers/filesystems/ext2/src/misc.c diff --git a/reactos/drivers/filesystems/ext2/src/read.c b/drivers/filesystems/ext2/src/read.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/read.c rename to drivers/filesystems/ext2/src/read.c diff --git a/reactos/drivers/filesystems/ext2/src/shutdown.c b/drivers/filesystems/ext2/src/shutdown.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/shutdown.c rename to drivers/filesystems/ext2/src/shutdown.c diff --git a/reactos/drivers/filesystems/ext2/src/volinfo.c b/drivers/filesystems/ext2/src/volinfo.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/volinfo.c rename to drivers/filesystems/ext2/src/volinfo.c diff --git a/reactos/drivers/filesystems/ext2/src/write.c b/drivers/filesystems/ext2/src/write.c similarity index 100% rename from reactos/drivers/filesystems/ext2/src/write.c rename to drivers/filesystems/ext2/src/write.c diff --git a/reactos/drivers/filesystems/fastfat/CMakeLists.txt b/drivers/filesystems/fastfat/CMakeLists.txt similarity index 100% rename from reactos/drivers/filesystems/fastfat/CMakeLists.txt rename to drivers/filesystems/fastfat/CMakeLists.txt diff --git a/reactos/drivers/filesystems/fastfat/blockdev.c b/drivers/filesystems/fastfat/blockdev.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/blockdev.c rename to drivers/filesystems/fastfat/blockdev.c diff --git a/reactos/drivers/filesystems/fastfat/cleanup.c b/drivers/filesystems/fastfat/cleanup.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/cleanup.c rename to drivers/filesystems/fastfat/cleanup.c diff --git a/reactos/drivers/filesystems/fastfat/close.c b/drivers/filesystems/fastfat/close.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/close.c rename to drivers/filesystems/fastfat/close.c diff --git a/reactos/drivers/filesystems/fastfat/create.c b/drivers/filesystems/fastfat/create.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/create.c rename to drivers/filesystems/fastfat/create.c diff --git a/reactos/drivers/filesystems/fastfat/dir.c b/drivers/filesystems/fastfat/dir.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/dir.c rename to drivers/filesystems/fastfat/dir.c diff --git a/reactos/drivers/filesystems/fastfat/direntry.c b/drivers/filesystems/fastfat/direntry.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/direntry.c rename to drivers/filesystems/fastfat/direntry.c diff --git a/reactos/drivers/filesystems/fastfat/dirwr.c b/drivers/filesystems/fastfat/dirwr.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/dirwr.c rename to drivers/filesystems/fastfat/dirwr.c diff --git a/reactos/drivers/filesystems/fastfat/ea.c b/drivers/filesystems/fastfat/ea.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/ea.c rename to drivers/filesystems/fastfat/ea.c diff --git a/reactos/drivers/filesystems/fastfat/fastio.c b/drivers/filesystems/fastfat/fastio.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/fastio.c rename to drivers/filesystems/fastfat/fastio.c diff --git a/reactos/drivers/filesystems/fastfat/fat.c b/drivers/filesystems/fastfat/fat.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/fat.c rename to drivers/filesystems/fastfat/fat.c diff --git a/reactos/drivers/filesystems/fastfat/fcb.c b/drivers/filesystems/fastfat/fcb.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/fcb.c rename to drivers/filesystems/fastfat/fcb.c diff --git a/reactos/drivers/filesystems/fastfat/finfo.c b/drivers/filesystems/fastfat/finfo.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/finfo.c rename to drivers/filesystems/fastfat/finfo.c diff --git a/reactos/drivers/filesystems/fastfat/flush.c b/drivers/filesystems/fastfat/flush.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/flush.c rename to drivers/filesystems/fastfat/flush.c diff --git a/reactos/drivers/filesystems/fastfat/fsctl.c b/drivers/filesystems/fastfat/fsctl.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/fsctl.c rename to drivers/filesystems/fastfat/fsctl.c diff --git a/reactos/drivers/filesystems/fastfat/iface.c b/drivers/filesystems/fastfat/iface.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/iface.c rename to drivers/filesystems/fastfat/iface.c diff --git a/reactos/drivers/filesystems/fastfat/misc.c b/drivers/filesystems/fastfat/misc.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/misc.c rename to drivers/filesystems/fastfat/misc.c diff --git a/reactos/drivers/filesystems/fastfat/pnp.c b/drivers/filesystems/fastfat/pnp.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/pnp.c rename to drivers/filesystems/fastfat/pnp.c diff --git a/reactos/drivers/filesystems/fastfat/rw.c b/drivers/filesystems/fastfat/rw.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/rw.c rename to drivers/filesystems/fastfat/rw.c diff --git a/reactos/drivers/filesystems/fastfat/shutdown.c b/drivers/filesystems/fastfat/shutdown.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/shutdown.c rename to drivers/filesystems/fastfat/shutdown.c diff --git a/reactos/drivers/filesystems/fastfat/string.c b/drivers/filesystems/fastfat/string.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/string.c rename to drivers/filesystems/fastfat/string.c diff --git a/reactos/drivers/filesystems/fastfat/vfat.h b/drivers/filesystems/fastfat/vfat.h similarity index 100% rename from reactos/drivers/filesystems/fastfat/vfat.h rename to drivers/filesystems/fastfat/vfat.h diff --git a/reactos/drivers/filesystems/fastfat/vfat005.1st b/drivers/filesystems/fastfat/vfat005.1st similarity index 100% rename from reactos/drivers/filesystems/fastfat/vfat005.1st rename to drivers/filesystems/fastfat/vfat005.1st diff --git a/reactos/drivers/filesystems/fastfat/vfat_fr.txt b/drivers/filesystems/fastfat/vfat_fr.txt similarity index 100% rename from reactos/drivers/filesystems/fastfat/vfat_fr.txt rename to drivers/filesystems/fastfat/vfat_fr.txt diff --git a/reactos/drivers/filesystems/fastfat/vfatfs.rc b/drivers/filesystems/fastfat/vfatfs.rc similarity index 100% rename from reactos/drivers/filesystems/fastfat/vfatfs.rc rename to drivers/filesystems/fastfat/vfatfs.rc diff --git a/reactos/drivers/filesystems/fastfat/volume.c b/drivers/filesystems/fastfat/volume.c similarity index 100% rename from reactos/drivers/filesystems/fastfat/volume.c rename to drivers/filesystems/fastfat/volume.c diff --git a/reactos/drivers/filesystems/fastfat_new/CMakeLists.txt b/drivers/filesystems/fastfat_new/CMakeLists.txt similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/CMakeLists.txt rename to drivers/filesystems/fastfat_new/CMakeLists.txt diff --git a/reactos/drivers/filesystems/fastfat_new/cleanup.c b/drivers/filesystems/fastfat_new/cleanup.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/cleanup.c rename to drivers/filesystems/fastfat_new/cleanup.c diff --git a/reactos/drivers/filesystems/fastfat_new/close.c b/drivers/filesystems/fastfat_new/close.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/close.c rename to drivers/filesystems/fastfat_new/close.c diff --git a/reactos/drivers/filesystems/fastfat_new/create.c b/drivers/filesystems/fastfat_new/create.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/create.c rename to drivers/filesystems/fastfat_new/create.c diff --git a/reactos/drivers/filesystems/fastfat_new/device.c b/drivers/filesystems/fastfat_new/device.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/device.c rename to drivers/filesystems/fastfat_new/device.c diff --git a/reactos/drivers/filesystems/fastfat_new/dir.c b/drivers/filesystems/fastfat_new/dir.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/dir.c rename to drivers/filesystems/fastfat_new/dir.c diff --git a/reactos/drivers/filesystems/fastfat_new/ea.c b/drivers/filesystems/fastfat_new/ea.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/ea.c rename to drivers/filesystems/fastfat_new/ea.c diff --git a/reactos/drivers/filesystems/fastfat_new/fastfat.c b/drivers/filesystems/fastfat_new/fastfat.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/fastfat.c rename to drivers/filesystems/fastfat_new/fastfat.c diff --git a/reactos/drivers/filesystems/fastfat_new/fastfat.h b/drivers/filesystems/fastfat_new/fastfat.h similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/fastfat.h rename to drivers/filesystems/fastfat_new/fastfat.h diff --git a/reactos/drivers/filesystems/fastfat_new/fastfat.rc b/drivers/filesystems/fastfat_new/fastfat.rc similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/fastfat.rc rename to drivers/filesystems/fastfat_new/fastfat.rc diff --git a/reactos/drivers/filesystems/fastfat_new/fastio.c b/drivers/filesystems/fastfat_new/fastio.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/fastio.c rename to drivers/filesystems/fastfat_new/fastio.c diff --git a/reactos/drivers/filesystems/fastfat_new/fat.c b/drivers/filesystems/fastfat_new/fat.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/fat.c rename to drivers/filesystems/fastfat_new/fat.c diff --git a/reactos/drivers/filesystems/fastfat_new/fat.h b/drivers/filesystems/fastfat_new/fat.h similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/fat.h rename to drivers/filesystems/fastfat_new/fat.h diff --git a/reactos/drivers/filesystems/fastfat_new/fatstruc.h b/drivers/filesystems/fastfat_new/fatstruc.h similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/fatstruc.h rename to drivers/filesystems/fastfat_new/fatstruc.h diff --git a/reactos/drivers/filesystems/fastfat_new/fcb.c b/drivers/filesystems/fastfat_new/fcb.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/fcb.c rename to drivers/filesystems/fastfat_new/fcb.c diff --git a/reactos/drivers/filesystems/fastfat_new/finfo.c b/drivers/filesystems/fastfat_new/finfo.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/finfo.c rename to drivers/filesystems/fastfat_new/finfo.c diff --git a/reactos/drivers/filesystems/fastfat_new/flush.c b/drivers/filesystems/fastfat_new/flush.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/flush.c rename to drivers/filesystems/fastfat_new/flush.c diff --git a/reactos/drivers/filesystems/fastfat_new/fsctl.c b/drivers/filesystems/fastfat_new/fsctl.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/fsctl.c rename to drivers/filesystems/fastfat_new/fsctl.c diff --git a/reactos/drivers/filesystems/fastfat_new/fullfat.c b/drivers/filesystems/fastfat_new/fullfat.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/fullfat.c rename to drivers/filesystems/fastfat_new/fullfat.c diff --git a/reactos/drivers/filesystems/fastfat_new/lock.c b/drivers/filesystems/fastfat_new/lock.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/lock.c rename to drivers/filesystems/fastfat_new/lock.c diff --git a/reactos/drivers/filesystems/fastfat_new/rw.c b/drivers/filesystems/fastfat_new/rw.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/rw.c rename to drivers/filesystems/fastfat_new/rw.c diff --git a/reactos/drivers/filesystems/fastfat_new/shutdown.c b/drivers/filesystems/fastfat_new/shutdown.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/shutdown.c rename to drivers/filesystems/fastfat_new/shutdown.c diff --git a/reactos/drivers/filesystems/fastfat_new/volume.c b/drivers/filesystems/fastfat_new/volume.c similarity index 100% rename from reactos/drivers/filesystems/fastfat_new/volume.c rename to drivers/filesystems/fastfat_new/volume.c diff --git a/reactos/drivers/filesystems/fs_rec/CMakeLists.txt b/drivers/filesystems/fs_rec/CMakeLists.txt similarity index 100% rename from reactos/drivers/filesystems/fs_rec/CMakeLists.txt rename to drivers/filesystems/fs_rec/CMakeLists.txt diff --git a/reactos/drivers/filesystems/fs_rec/blockdev.c b/drivers/filesystems/fs_rec/blockdev.c similarity index 100% rename from reactos/drivers/filesystems/fs_rec/blockdev.c rename to drivers/filesystems/fs_rec/blockdev.c diff --git a/reactos/drivers/filesystems/fs_rec/cdfs.c b/drivers/filesystems/fs_rec/cdfs.c similarity index 100% rename from reactos/drivers/filesystems/fs_rec/cdfs.c rename to drivers/filesystems/fs_rec/cdfs.c diff --git a/reactos/drivers/filesystems/fs_rec/ext2.c b/drivers/filesystems/fs_rec/ext2.c similarity index 100% rename from reactos/drivers/filesystems/fs_rec/ext2.c rename to drivers/filesystems/fs_rec/ext2.c diff --git a/reactos/drivers/filesystems/fs_rec/fat.c b/drivers/filesystems/fs_rec/fat.c similarity index 100% rename from reactos/drivers/filesystems/fs_rec/fat.c rename to drivers/filesystems/fs_rec/fat.c diff --git a/reactos/drivers/filesystems/fs_rec/fs_rec.c b/drivers/filesystems/fs_rec/fs_rec.c similarity index 100% rename from reactos/drivers/filesystems/fs_rec/fs_rec.c rename to drivers/filesystems/fs_rec/fs_rec.c diff --git a/reactos/drivers/filesystems/fs_rec/fs_rec.h b/drivers/filesystems/fs_rec/fs_rec.h similarity index 100% rename from reactos/drivers/filesystems/fs_rec/fs_rec.h rename to drivers/filesystems/fs_rec/fs_rec.h diff --git a/reactos/drivers/filesystems/fs_rec/fs_rec.rc b/drivers/filesystems/fs_rec/fs_rec.rc similarity index 100% rename from reactos/drivers/filesystems/fs_rec/fs_rec.rc rename to drivers/filesystems/fs_rec/fs_rec.rc diff --git a/reactos/drivers/filesystems/fs_rec/ntfs.c b/drivers/filesystems/fs_rec/ntfs.c similarity index 100% rename from reactos/drivers/filesystems/fs_rec/ntfs.c rename to drivers/filesystems/fs_rec/ntfs.c diff --git a/reactos/drivers/filesystems/fs_rec/udfs.c b/drivers/filesystems/fs_rec/udfs.c similarity index 100% rename from reactos/drivers/filesystems/fs_rec/udfs.c rename to drivers/filesystems/fs_rec/udfs.c diff --git a/reactos/drivers/filesystems/fs_rec/udfs.h b/drivers/filesystems/fs_rec/udfs.h similarity index 100% rename from reactos/drivers/filesystems/fs_rec/udfs.h rename to drivers/filesystems/fs_rec/udfs.h diff --git a/reactos/drivers/filesystems/msfs/CMakeLists.txt b/drivers/filesystems/msfs/CMakeLists.txt similarity index 100% rename from reactos/drivers/filesystems/msfs/CMakeLists.txt rename to drivers/filesystems/msfs/CMakeLists.txt diff --git a/reactos/drivers/filesystems/msfs/create.c b/drivers/filesystems/msfs/create.c similarity index 100% rename from reactos/drivers/filesystems/msfs/create.c rename to drivers/filesystems/msfs/create.c diff --git a/reactos/drivers/filesystems/msfs/finfo.c b/drivers/filesystems/msfs/finfo.c similarity index 100% rename from reactos/drivers/filesystems/msfs/finfo.c rename to drivers/filesystems/msfs/finfo.c diff --git a/reactos/drivers/filesystems/msfs/fsctrl.c b/drivers/filesystems/msfs/fsctrl.c similarity index 100% rename from reactos/drivers/filesystems/msfs/fsctrl.c rename to drivers/filesystems/msfs/fsctrl.c diff --git a/reactos/drivers/filesystems/msfs/msfs.c b/drivers/filesystems/msfs/msfs.c similarity index 100% rename from reactos/drivers/filesystems/msfs/msfs.c rename to drivers/filesystems/msfs/msfs.c diff --git a/reactos/drivers/filesystems/msfs/msfs.h b/drivers/filesystems/msfs/msfs.h similarity index 100% rename from reactos/drivers/filesystems/msfs/msfs.h rename to drivers/filesystems/msfs/msfs.h diff --git a/reactos/drivers/filesystems/msfs/msfs.rc b/drivers/filesystems/msfs/msfs.rc similarity index 100% rename from reactos/drivers/filesystems/msfs/msfs.rc rename to drivers/filesystems/msfs/msfs.rc diff --git a/reactos/drivers/filesystems/msfs/rw.c b/drivers/filesystems/msfs/rw.c similarity index 100% rename from reactos/drivers/filesystems/msfs/rw.c rename to drivers/filesystems/msfs/rw.c diff --git a/reactos/drivers/filesystems/mup/CMakeLists.txt b/drivers/filesystems/mup/CMakeLists.txt similarity index 100% rename from reactos/drivers/filesystems/mup/CMakeLists.txt rename to drivers/filesystems/mup/CMakeLists.txt diff --git a/reactos/drivers/filesystems/mup/create.c b/drivers/filesystems/mup/create.c similarity index 100% rename from reactos/drivers/filesystems/mup/create.c rename to drivers/filesystems/mup/create.c diff --git a/reactos/drivers/filesystems/mup/mup.c b/drivers/filesystems/mup/mup.c similarity index 100% rename from reactos/drivers/filesystems/mup/mup.c rename to drivers/filesystems/mup/mup.c diff --git a/reactos/drivers/filesystems/mup/mup.h b/drivers/filesystems/mup/mup.h similarity index 100% rename from reactos/drivers/filesystems/mup/mup.h rename to drivers/filesystems/mup/mup.h diff --git a/reactos/drivers/filesystems/mup/mup.rc b/drivers/filesystems/mup/mup.rc similarity index 100% rename from reactos/drivers/filesystems/mup/mup.rc rename to drivers/filesystems/mup/mup.rc diff --git a/reactos/drivers/filesystems/npfs/CMakeLists.txt b/drivers/filesystems/npfs/CMakeLists.txt similarity index 100% rename from reactos/drivers/filesystems/npfs/CMakeLists.txt rename to drivers/filesystems/npfs/CMakeLists.txt diff --git a/reactos/drivers/filesystems/npfs/create.c b/drivers/filesystems/npfs/create.c similarity index 100% rename from reactos/drivers/filesystems/npfs/create.c rename to drivers/filesystems/npfs/create.c diff --git a/reactos/drivers/filesystems/npfs/dirctl.c b/drivers/filesystems/npfs/dirctl.c similarity index 100% rename from reactos/drivers/filesystems/npfs/dirctl.c rename to drivers/filesystems/npfs/dirctl.c diff --git a/reactos/drivers/filesystems/npfs/finfo.c b/drivers/filesystems/npfs/finfo.c similarity index 100% rename from reactos/drivers/filesystems/npfs/finfo.c rename to drivers/filesystems/npfs/finfo.c diff --git a/reactos/drivers/filesystems/npfs/fsctrl.c b/drivers/filesystems/npfs/fsctrl.c similarity index 100% rename from reactos/drivers/filesystems/npfs/fsctrl.c rename to drivers/filesystems/npfs/fsctrl.c diff --git a/reactos/drivers/filesystems/npfs/npfs.c b/drivers/filesystems/npfs/npfs.c similarity index 100% rename from reactos/drivers/filesystems/npfs/npfs.c rename to drivers/filesystems/npfs/npfs.c diff --git a/reactos/drivers/filesystems/npfs/npfs.h b/drivers/filesystems/npfs/npfs.h similarity index 100% rename from reactos/drivers/filesystems/npfs/npfs.h rename to drivers/filesystems/npfs/npfs.h diff --git a/reactos/drivers/filesystems/npfs/npfs.rc b/drivers/filesystems/npfs/npfs.rc similarity index 100% rename from reactos/drivers/filesystems/npfs/npfs.rc rename to drivers/filesystems/npfs/npfs.rc diff --git a/reactos/drivers/filesystems/npfs/rw.c b/drivers/filesystems/npfs/rw.c similarity index 100% rename from reactos/drivers/filesystems/npfs/rw.c rename to drivers/filesystems/npfs/rw.c diff --git a/reactos/drivers/filesystems/npfs/volume.c b/drivers/filesystems/npfs/volume.c similarity index 100% rename from reactos/drivers/filesystems/npfs/volume.c rename to drivers/filesystems/npfs/volume.c diff --git a/reactos/drivers/filesystems/ntfs/CMakeLists.txt b/drivers/filesystems/ntfs/CMakeLists.txt similarity index 100% rename from reactos/drivers/filesystems/ntfs/CMakeLists.txt rename to drivers/filesystems/ntfs/CMakeLists.txt diff --git a/reactos/drivers/filesystems/ntfs/attrib.c b/drivers/filesystems/ntfs/attrib.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/attrib.c rename to drivers/filesystems/ntfs/attrib.c diff --git a/reactos/drivers/filesystems/ntfs/blockdev.c b/drivers/filesystems/ntfs/blockdev.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/blockdev.c rename to drivers/filesystems/ntfs/blockdev.c diff --git a/reactos/drivers/filesystems/ntfs/close.c b/drivers/filesystems/ntfs/close.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/close.c rename to drivers/filesystems/ntfs/close.c diff --git a/reactos/drivers/filesystems/ntfs/create.c b/drivers/filesystems/ntfs/create.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/create.c rename to drivers/filesystems/ntfs/create.c diff --git a/reactos/drivers/filesystems/ntfs/dirctl.c b/drivers/filesystems/ntfs/dirctl.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/dirctl.c rename to drivers/filesystems/ntfs/dirctl.c diff --git a/reactos/drivers/filesystems/ntfs/dispatch.c b/drivers/filesystems/ntfs/dispatch.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/dispatch.c rename to drivers/filesystems/ntfs/dispatch.c diff --git a/reactos/drivers/filesystems/ntfs/fastio.c b/drivers/filesystems/ntfs/fastio.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/fastio.c rename to drivers/filesystems/ntfs/fastio.c diff --git a/reactos/drivers/filesystems/ntfs/fcb.c b/drivers/filesystems/ntfs/fcb.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/fcb.c rename to drivers/filesystems/ntfs/fcb.c diff --git a/reactos/drivers/filesystems/ntfs/finfo.c b/drivers/filesystems/ntfs/finfo.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/finfo.c rename to drivers/filesystems/ntfs/finfo.c diff --git a/reactos/drivers/filesystems/ntfs/fsctl.c b/drivers/filesystems/ntfs/fsctl.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/fsctl.c rename to drivers/filesystems/ntfs/fsctl.c diff --git a/reactos/drivers/filesystems/ntfs/mft.c b/drivers/filesystems/ntfs/mft.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/mft.c rename to drivers/filesystems/ntfs/mft.c diff --git a/reactos/drivers/filesystems/ntfs/misc.c b/drivers/filesystems/ntfs/misc.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/misc.c rename to drivers/filesystems/ntfs/misc.c diff --git a/reactos/drivers/filesystems/ntfs/notes.txt b/drivers/filesystems/ntfs/notes.txt similarity index 100% rename from reactos/drivers/filesystems/ntfs/notes.txt rename to drivers/filesystems/ntfs/notes.txt diff --git a/reactos/drivers/filesystems/ntfs/ntfs.c b/drivers/filesystems/ntfs/ntfs.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/ntfs.c rename to drivers/filesystems/ntfs/ntfs.c diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/drivers/filesystems/ntfs/ntfs.h similarity index 100% rename from reactos/drivers/filesystems/ntfs/ntfs.h rename to drivers/filesystems/ntfs/ntfs.h diff --git a/reactos/drivers/filesystems/ntfs/ntfs.rc b/drivers/filesystems/ntfs/ntfs.rc similarity index 100% rename from reactos/drivers/filesystems/ntfs/ntfs.rc rename to drivers/filesystems/ntfs/ntfs.rc diff --git a/reactos/drivers/filesystems/ntfs/rw.c b/drivers/filesystems/ntfs/rw.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/rw.c rename to drivers/filesystems/ntfs/rw.c diff --git a/reactos/drivers/filesystems/ntfs/volinfo.c b/drivers/filesystems/ntfs/volinfo.c similarity index 100% rename from reactos/drivers/filesystems/ntfs/volinfo.c rename to drivers/filesystems/ntfs/volinfo.c diff --git a/reactos/drivers/filters/CMakeLists.txt b/drivers/filters/CMakeLists.txt similarity index 100% rename from reactos/drivers/filters/CMakeLists.txt rename to drivers/filters/CMakeLists.txt diff --git a/reactos/drivers/filters/mountmgr/CMakeLists.txt b/drivers/filters/mountmgr/CMakeLists.txt similarity index 100% rename from reactos/drivers/filters/mountmgr/CMakeLists.txt rename to drivers/filters/mountmgr/CMakeLists.txt diff --git a/reactos/drivers/filters/mountmgr/database.c b/drivers/filters/mountmgr/database.c similarity index 100% rename from reactos/drivers/filters/mountmgr/database.c rename to drivers/filters/mountmgr/database.c diff --git a/reactos/drivers/filters/mountmgr/device.c b/drivers/filters/mountmgr/device.c similarity index 100% rename from reactos/drivers/filters/mountmgr/device.c rename to drivers/filters/mountmgr/device.c diff --git a/reactos/drivers/filters/mountmgr/mntmgr.h b/drivers/filters/mountmgr/mntmgr.h similarity index 100% rename from reactos/drivers/filters/mountmgr/mntmgr.h rename to drivers/filters/mountmgr/mntmgr.h diff --git a/reactos/drivers/filters/mountmgr/mountmgr.c b/drivers/filters/mountmgr/mountmgr.c similarity index 100% rename from reactos/drivers/filters/mountmgr/mountmgr.c rename to drivers/filters/mountmgr/mountmgr.c diff --git a/reactos/drivers/filters/mountmgr/mountmgr.rc b/drivers/filters/mountmgr/mountmgr.rc similarity index 100% rename from reactos/drivers/filters/mountmgr/mountmgr.rc rename to drivers/filters/mountmgr/mountmgr.rc diff --git a/reactos/drivers/filters/mountmgr/notify.c b/drivers/filters/mountmgr/notify.c similarity index 100% rename from reactos/drivers/filters/mountmgr/notify.c rename to drivers/filters/mountmgr/notify.c diff --git a/reactos/drivers/filters/mountmgr/point.c b/drivers/filters/mountmgr/point.c similarity index 100% rename from reactos/drivers/filters/mountmgr/point.c rename to drivers/filters/mountmgr/point.c diff --git a/reactos/drivers/filters/mountmgr/symlink.c b/drivers/filters/mountmgr/symlink.c similarity index 100% rename from reactos/drivers/filters/mountmgr/symlink.c rename to drivers/filters/mountmgr/symlink.c diff --git a/reactos/drivers/filters/mountmgr/uniqueid.c b/drivers/filters/mountmgr/uniqueid.c similarity index 100% rename from reactos/drivers/filters/mountmgr/uniqueid.c rename to drivers/filters/mountmgr/uniqueid.c diff --git a/reactos/drivers/hid/CMakeLists.txt b/drivers/hid/CMakeLists.txt similarity index 100% rename from reactos/drivers/hid/CMakeLists.txt rename to drivers/hid/CMakeLists.txt diff --git a/reactos/drivers/hid/hidclass/CMakeLists.txt b/drivers/hid/hidclass/CMakeLists.txt similarity index 100% rename from reactos/drivers/hid/hidclass/CMakeLists.txt rename to drivers/hid/hidclass/CMakeLists.txt diff --git a/reactos/drivers/hid/hidclass/fdo.c b/drivers/hid/hidclass/fdo.c similarity index 100% rename from reactos/drivers/hid/hidclass/fdo.c rename to drivers/hid/hidclass/fdo.c diff --git a/reactos/drivers/hid/hidclass/hidclass.c b/drivers/hid/hidclass/hidclass.c similarity index 100% rename from reactos/drivers/hid/hidclass/hidclass.c rename to drivers/hid/hidclass/hidclass.c diff --git a/reactos/drivers/hid/hidclass/hidclass.rc b/drivers/hid/hidclass/hidclass.rc similarity index 100% rename from reactos/drivers/hid/hidclass/hidclass.rc rename to drivers/hid/hidclass/hidclass.rc diff --git a/reactos/drivers/hid/hidclass/hidclass.spec b/drivers/hid/hidclass/hidclass.spec similarity index 100% rename from reactos/drivers/hid/hidclass/hidclass.spec rename to drivers/hid/hidclass/hidclass.spec diff --git a/reactos/drivers/hid/hidclass/pdo.c b/drivers/hid/hidclass/pdo.c similarity index 100% rename from reactos/drivers/hid/hidclass/pdo.c rename to drivers/hid/hidclass/pdo.c diff --git a/reactos/drivers/hid/hidclass/precomp.h b/drivers/hid/hidclass/precomp.h similarity index 100% rename from reactos/drivers/hid/hidclass/precomp.h rename to drivers/hid/hidclass/precomp.h diff --git a/reactos/drivers/hid/hidparse/CMakeLists.txt b/drivers/hid/hidparse/CMakeLists.txt similarity index 100% rename from reactos/drivers/hid/hidparse/CMakeLists.txt rename to drivers/hid/hidparse/CMakeLists.txt diff --git a/reactos/drivers/hid/hidparse/hidparse.c b/drivers/hid/hidparse/hidparse.c similarity index 100% rename from reactos/drivers/hid/hidparse/hidparse.c rename to drivers/hid/hidparse/hidparse.c diff --git a/reactos/drivers/hid/hidparse/hidparse.h b/drivers/hid/hidparse/hidparse.h similarity index 100% rename from reactos/drivers/hid/hidparse/hidparse.h rename to drivers/hid/hidparse/hidparse.h diff --git a/reactos/drivers/hid/hidparse/hidparse.rc b/drivers/hid/hidparse/hidparse.rc similarity index 100% rename from reactos/drivers/hid/hidparse/hidparse.rc rename to drivers/hid/hidparse/hidparse.rc diff --git a/reactos/drivers/hid/hidparse/hidparse.spec b/drivers/hid/hidparse/hidparse.spec similarity index 100% rename from reactos/drivers/hid/hidparse/hidparse.spec rename to drivers/hid/hidparse/hidparse.spec diff --git a/reactos/drivers/hid/hidusb/CMakeLists.txt b/drivers/hid/hidusb/CMakeLists.txt similarity index 100% rename from reactos/drivers/hid/hidusb/CMakeLists.txt rename to drivers/hid/hidusb/CMakeLists.txt diff --git a/reactos/drivers/hid/hidusb/hidusb.c b/drivers/hid/hidusb/hidusb.c similarity index 100% rename from reactos/drivers/hid/hidusb/hidusb.c rename to drivers/hid/hidusb/hidusb.c diff --git a/reactos/drivers/hid/hidusb/hidusb.h b/drivers/hid/hidusb/hidusb.h similarity index 100% rename from reactos/drivers/hid/hidusb/hidusb.h rename to drivers/hid/hidusb/hidusb.h diff --git a/reactos/drivers/hid/hidusb/hidusb.rc b/drivers/hid/hidusb/hidusb.rc similarity index 100% rename from reactos/drivers/hid/hidusb/hidusb.rc rename to drivers/hid/hidusb/hidusb.rc diff --git a/reactos/drivers/hid/kbdhid/CMakeLists.txt b/drivers/hid/kbdhid/CMakeLists.txt similarity index 100% rename from reactos/drivers/hid/kbdhid/CMakeLists.txt rename to drivers/hid/kbdhid/CMakeLists.txt diff --git a/reactos/drivers/hid/kbdhid/kbdhid.c b/drivers/hid/kbdhid/kbdhid.c similarity index 100% rename from reactos/drivers/hid/kbdhid/kbdhid.c rename to drivers/hid/kbdhid/kbdhid.c diff --git a/reactos/drivers/hid/kbdhid/kbdhid.h b/drivers/hid/kbdhid/kbdhid.h similarity index 100% rename from reactos/drivers/hid/kbdhid/kbdhid.h rename to drivers/hid/kbdhid/kbdhid.h diff --git a/reactos/drivers/hid/kbdhid/kbdhid.rc b/drivers/hid/kbdhid/kbdhid.rc similarity index 100% rename from reactos/drivers/hid/kbdhid/kbdhid.rc rename to drivers/hid/kbdhid/kbdhid.rc diff --git a/reactos/drivers/hid/mouhid/CMakeLists.txt b/drivers/hid/mouhid/CMakeLists.txt similarity index 100% rename from reactos/drivers/hid/mouhid/CMakeLists.txt rename to drivers/hid/mouhid/CMakeLists.txt diff --git a/reactos/drivers/hid/mouhid/mouhid.c b/drivers/hid/mouhid/mouhid.c similarity index 100% rename from reactos/drivers/hid/mouhid/mouhid.c rename to drivers/hid/mouhid/mouhid.c diff --git a/reactos/drivers/hid/mouhid/mouhid.h b/drivers/hid/mouhid/mouhid.h similarity index 100% rename from reactos/drivers/hid/mouhid/mouhid.h rename to drivers/hid/mouhid/mouhid.h diff --git a/reactos/drivers/hid/mouhid/mouhid.rc b/drivers/hid/mouhid/mouhid.rc similarity index 100% rename from reactos/drivers/hid/mouhid/mouhid.rc rename to drivers/hid/mouhid/mouhid.rc diff --git a/reactos/drivers/input/CMakeLists.txt b/drivers/input/CMakeLists.txt similarity index 100% rename from reactos/drivers/input/CMakeLists.txt rename to drivers/input/CMakeLists.txt diff --git a/reactos/drivers/input/i8042prt/CMakeLists.txt b/drivers/input/i8042prt/CMakeLists.txt similarity index 100% rename from reactos/drivers/input/i8042prt/CMakeLists.txt rename to drivers/input/i8042prt/CMakeLists.txt diff --git a/reactos/drivers/input/i8042prt/README.txt b/drivers/input/i8042prt/README.txt similarity index 100% rename from reactos/drivers/input/i8042prt/README.txt rename to drivers/input/i8042prt/README.txt diff --git a/reactos/drivers/input/i8042prt/createclose.c b/drivers/input/i8042prt/createclose.c similarity index 100% rename from reactos/drivers/input/i8042prt/createclose.c rename to drivers/input/i8042prt/createclose.c diff --git a/reactos/drivers/input/i8042prt/i8042prt.c b/drivers/input/i8042prt/i8042prt.c similarity index 100% rename from reactos/drivers/input/i8042prt/i8042prt.c rename to drivers/input/i8042prt/i8042prt.c diff --git a/reactos/drivers/input/i8042prt/i8042prt.h b/drivers/input/i8042prt/i8042prt.h similarity index 100% rename from reactos/drivers/input/i8042prt/i8042prt.h rename to drivers/input/i8042prt/i8042prt.h diff --git a/reactos/drivers/input/i8042prt/i8042prt.rc b/drivers/input/i8042prt/i8042prt.rc similarity index 100% rename from reactos/drivers/input/i8042prt/i8042prt.rc rename to drivers/input/i8042prt/i8042prt.rc diff --git a/reactos/drivers/input/i8042prt/keyboard.c b/drivers/input/i8042prt/keyboard.c similarity index 100% rename from reactos/drivers/input/i8042prt/keyboard.c rename to drivers/input/i8042prt/keyboard.c diff --git a/reactos/drivers/input/i8042prt/misc.c b/drivers/input/i8042prt/misc.c similarity index 100% rename from reactos/drivers/input/i8042prt/misc.c rename to drivers/input/i8042prt/misc.c diff --git a/reactos/drivers/input/i8042prt/mouse.c b/drivers/input/i8042prt/mouse.c similarity index 100% rename from reactos/drivers/input/i8042prt/mouse.c rename to drivers/input/i8042prt/mouse.c diff --git a/reactos/drivers/input/i8042prt/pnp.c b/drivers/input/i8042prt/pnp.c similarity index 100% rename from reactos/drivers/input/i8042prt/pnp.c rename to drivers/input/i8042prt/pnp.c diff --git a/reactos/drivers/input/i8042prt/ps2pp.c b/drivers/input/i8042prt/ps2pp.c similarity index 100% rename from reactos/drivers/input/i8042prt/ps2pp.c rename to drivers/input/i8042prt/ps2pp.c diff --git a/reactos/drivers/input/i8042prt/readwrite.c b/drivers/input/i8042prt/readwrite.c similarity index 100% rename from reactos/drivers/input/i8042prt/readwrite.c rename to drivers/input/i8042prt/readwrite.c diff --git a/reactos/drivers/input/i8042prt/registry.c b/drivers/input/i8042prt/registry.c similarity index 100% rename from reactos/drivers/input/i8042prt/registry.c rename to drivers/input/i8042prt/registry.c diff --git a/reactos/drivers/input/kbdclass/CMakeLists.txt b/drivers/input/kbdclass/CMakeLists.txt similarity index 100% rename from reactos/drivers/input/kbdclass/CMakeLists.txt rename to drivers/input/kbdclass/CMakeLists.txt diff --git a/reactos/drivers/input/kbdclass/kbdclass.c b/drivers/input/kbdclass/kbdclass.c similarity index 100% rename from reactos/drivers/input/kbdclass/kbdclass.c rename to drivers/input/kbdclass/kbdclass.c diff --git a/reactos/drivers/input/kbdclass/kbdclass.h b/drivers/input/kbdclass/kbdclass.h similarity index 100% rename from reactos/drivers/input/kbdclass/kbdclass.h rename to drivers/input/kbdclass/kbdclass.h diff --git a/reactos/drivers/input/kbdclass/kbdclass.rc b/drivers/input/kbdclass/kbdclass.rc similarity index 100% rename from reactos/drivers/input/kbdclass/kbdclass.rc rename to drivers/input/kbdclass/kbdclass.rc diff --git a/reactos/drivers/input/kbdclass/misc.c b/drivers/input/kbdclass/misc.c similarity index 100% rename from reactos/drivers/input/kbdclass/misc.c rename to drivers/input/kbdclass/misc.c diff --git a/reactos/drivers/input/mouclass/CMakeLists.txt b/drivers/input/mouclass/CMakeLists.txt similarity index 100% rename from reactos/drivers/input/mouclass/CMakeLists.txt rename to drivers/input/mouclass/CMakeLists.txt diff --git a/reactos/drivers/input/mouclass/misc.c b/drivers/input/mouclass/misc.c similarity index 100% rename from reactos/drivers/input/mouclass/misc.c rename to drivers/input/mouclass/misc.c diff --git a/reactos/drivers/input/mouclass/mouclass.c b/drivers/input/mouclass/mouclass.c similarity index 100% rename from reactos/drivers/input/mouclass/mouclass.c rename to drivers/input/mouclass/mouclass.c diff --git a/reactos/drivers/input/mouclass/mouclass.h b/drivers/input/mouclass/mouclass.h similarity index 100% rename from reactos/drivers/input/mouclass/mouclass.h rename to drivers/input/mouclass/mouclass.h diff --git a/reactos/drivers/input/mouclass/mouclass.rc b/drivers/input/mouclass/mouclass.rc similarity index 100% rename from reactos/drivers/input/mouclass/mouclass.rc rename to drivers/input/mouclass/mouclass.rc diff --git a/reactos/drivers/input/sermouse/CMakeLists.txt b/drivers/input/sermouse/CMakeLists.txt similarity index 100% rename from reactos/drivers/input/sermouse/CMakeLists.txt rename to drivers/input/sermouse/CMakeLists.txt diff --git a/reactos/drivers/input/sermouse/createclose.c b/drivers/input/sermouse/createclose.c similarity index 100% rename from reactos/drivers/input/sermouse/createclose.c rename to drivers/input/sermouse/createclose.c diff --git a/reactos/drivers/input/sermouse/detect.c b/drivers/input/sermouse/detect.c similarity index 100% rename from reactos/drivers/input/sermouse/detect.c rename to drivers/input/sermouse/detect.c diff --git a/reactos/drivers/input/sermouse/fdo.c b/drivers/input/sermouse/fdo.c similarity index 100% rename from reactos/drivers/input/sermouse/fdo.c rename to drivers/input/sermouse/fdo.c diff --git a/reactos/drivers/input/sermouse/internaldevctl.c b/drivers/input/sermouse/internaldevctl.c similarity index 100% rename from reactos/drivers/input/sermouse/internaldevctl.c rename to drivers/input/sermouse/internaldevctl.c diff --git a/reactos/drivers/input/sermouse/misc.c b/drivers/input/sermouse/misc.c similarity index 100% rename from reactos/drivers/input/sermouse/misc.c rename to drivers/input/sermouse/misc.c diff --git a/reactos/drivers/input/sermouse/readmouse.c b/drivers/input/sermouse/readmouse.c similarity index 100% rename from reactos/drivers/input/sermouse/readmouse.c rename to drivers/input/sermouse/readmouse.c diff --git a/reactos/drivers/input/sermouse/sermouse.c b/drivers/input/sermouse/sermouse.c similarity index 100% rename from reactos/drivers/input/sermouse/sermouse.c rename to drivers/input/sermouse/sermouse.c diff --git a/reactos/drivers/input/sermouse/sermouse.h b/drivers/input/sermouse/sermouse.h similarity index 100% rename from reactos/drivers/input/sermouse/sermouse.h rename to drivers/input/sermouse/sermouse.h diff --git a/reactos/drivers/input/sermouse/sermouse.rc b/drivers/input/sermouse/sermouse.rc similarity index 100% rename from reactos/drivers/input/sermouse/sermouse.rc rename to drivers/input/sermouse/sermouse.rc diff --git a/reactos/drivers/input/sermouse/sermouse.txt b/drivers/input/sermouse/sermouse.txt similarity index 100% rename from reactos/drivers/input/sermouse/sermouse.txt rename to drivers/input/sermouse/sermouse.txt diff --git a/reactos/drivers/ksfilter/CMakeLists.txt b/drivers/ksfilter/CMakeLists.txt similarity index 100% rename from reactos/drivers/ksfilter/CMakeLists.txt rename to drivers/ksfilter/CMakeLists.txt diff --git a/reactos/drivers/ksfilter/ks/CMakeLists.txt b/drivers/ksfilter/ks/CMakeLists.txt similarity index 100% rename from reactos/drivers/ksfilter/ks/CMakeLists.txt rename to drivers/ksfilter/ks/CMakeLists.txt diff --git a/reactos/drivers/ksfilter/ks/allocators.c b/drivers/ksfilter/ks/allocators.c similarity index 100% rename from reactos/drivers/ksfilter/ks/allocators.c rename to drivers/ksfilter/ks/allocators.c diff --git a/reactos/drivers/ksfilter/ks/api.c b/drivers/ksfilter/ks/api.c similarity index 100% rename from reactos/drivers/ksfilter/ks/api.c rename to drivers/ksfilter/ks/api.c diff --git a/reactos/drivers/ksfilter/ks/bag.c b/drivers/ksfilter/ks/bag.c similarity index 100% rename from reactos/drivers/ksfilter/ks/bag.c rename to drivers/ksfilter/ks/bag.c diff --git a/reactos/drivers/ksfilter/ks/clocks.c b/drivers/ksfilter/ks/clocks.c similarity index 100% rename from reactos/drivers/ksfilter/ks/clocks.c rename to drivers/ksfilter/ks/clocks.c diff --git a/reactos/drivers/ksfilter/ks/connectivity.c b/drivers/ksfilter/ks/connectivity.c similarity index 100% rename from reactos/drivers/ksfilter/ks/connectivity.c rename to drivers/ksfilter/ks/connectivity.c diff --git a/reactos/drivers/ksfilter/ks/device.c b/drivers/ksfilter/ks/device.c similarity index 100% rename from reactos/drivers/ksfilter/ks/device.c rename to drivers/ksfilter/ks/device.c diff --git a/reactos/drivers/ksfilter/ks/deviceinterface.c b/drivers/ksfilter/ks/deviceinterface.c similarity index 100% rename from reactos/drivers/ksfilter/ks/deviceinterface.c rename to drivers/ksfilter/ks/deviceinterface.c diff --git a/reactos/drivers/ksfilter/ks/driver.c b/drivers/ksfilter/ks/driver.c similarity index 100% rename from reactos/drivers/ksfilter/ks/driver.c rename to drivers/ksfilter/ks/driver.c diff --git a/reactos/drivers/ksfilter/ks/event.c b/drivers/ksfilter/ks/event.c similarity index 100% rename from reactos/drivers/ksfilter/ks/event.c rename to drivers/ksfilter/ks/event.c diff --git a/reactos/drivers/ksfilter/ks/filter.c b/drivers/ksfilter/ks/filter.c similarity index 100% rename from reactos/drivers/ksfilter/ks/filter.c rename to drivers/ksfilter/ks/filter.c diff --git a/reactos/drivers/ksfilter/ks/filterfactory.c b/drivers/ksfilter/ks/filterfactory.c similarity index 100% rename from reactos/drivers/ksfilter/ks/filterfactory.c rename to drivers/ksfilter/ks/filterfactory.c diff --git a/reactos/drivers/ksfilter/ks/image.c b/drivers/ksfilter/ks/image.c similarity index 100% rename from reactos/drivers/ksfilter/ks/image.c rename to drivers/ksfilter/ks/image.c diff --git a/reactos/drivers/ksfilter/ks/irp.c b/drivers/ksfilter/ks/irp.c similarity index 100% rename from reactos/drivers/ksfilter/ks/irp.c rename to drivers/ksfilter/ks/irp.c diff --git a/reactos/drivers/ksfilter/ks/kcom.c b/drivers/ksfilter/ks/kcom.c similarity index 100% rename from reactos/drivers/ksfilter/ks/kcom.c rename to drivers/ksfilter/ks/kcom.c diff --git a/reactos/drivers/ksfilter/ks/ks.rc b/drivers/ksfilter/ks/ks.rc similarity index 100% rename from reactos/drivers/ksfilter/ks/ks.rc rename to drivers/ksfilter/ks/ks.rc diff --git a/reactos/drivers/ksfilter/ks/ks.spec b/drivers/ksfilter/ks/ks.spec similarity index 100% rename from reactos/drivers/ksfilter/ks/ks.spec rename to drivers/ksfilter/ks/ks.spec diff --git a/reactos/drivers/ksfilter/ks/ksfunc.h b/drivers/ksfilter/ks/ksfunc.h similarity index 100% rename from reactos/drivers/ksfilter/ks/ksfunc.h rename to drivers/ksfilter/ks/ksfunc.h diff --git a/reactos/drivers/ksfilter/ks/ksiface.h b/drivers/ksfilter/ks/ksiface.h similarity index 100% rename from reactos/drivers/ksfilter/ks/ksiface.h rename to drivers/ksfilter/ks/ksiface.h diff --git a/reactos/drivers/ksfilter/ks/kstypes.h b/drivers/ksfilter/ks/kstypes.h similarity index 100% rename from reactos/drivers/ksfilter/ks/kstypes.h rename to drivers/ksfilter/ks/kstypes.h diff --git a/reactos/drivers/ksfilter/ks/methods.c b/drivers/ksfilter/ks/methods.c similarity index 100% rename from reactos/drivers/ksfilter/ks/methods.c rename to drivers/ksfilter/ks/methods.c diff --git a/reactos/drivers/ksfilter/ks/misc.c b/drivers/ksfilter/ks/misc.c similarity index 100% rename from reactos/drivers/ksfilter/ks/misc.c rename to drivers/ksfilter/ks/misc.c diff --git a/reactos/drivers/ksfilter/ks/msvc.S b/drivers/ksfilter/ks/msvc.S similarity index 100% rename from reactos/drivers/ksfilter/ks/msvc.S rename to drivers/ksfilter/ks/msvc.S diff --git a/reactos/drivers/ksfilter/ks/pin.c b/drivers/ksfilter/ks/pin.c similarity index 100% rename from reactos/drivers/ksfilter/ks/pin.c rename to drivers/ksfilter/ks/pin.c diff --git a/reactos/drivers/ksfilter/ks/priv.h b/drivers/ksfilter/ks/priv.h similarity index 100% rename from reactos/drivers/ksfilter/ks/priv.h rename to drivers/ksfilter/ks/priv.h diff --git a/reactos/drivers/ksfilter/ks/property.c b/drivers/ksfilter/ks/property.c similarity index 100% rename from reactos/drivers/ksfilter/ks/property.c rename to drivers/ksfilter/ks/property.c diff --git a/reactos/drivers/ksfilter/ks/swenum.c b/drivers/ksfilter/ks/swenum.c similarity index 100% rename from reactos/drivers/ksfilter/ks/swenum.c rename to drivers/ksfilter/ks/swenum.c diff --git a/reactos/drivers/ksfilter/ks/topology.c b/drivers/ksfilter/ks/topology.c similarity index 100% rename from reactos/drivers/ksfilter/ks/topology.c rename to drivers/ksfilter/ks/topology.c diff --git a/reactos/drivers/ksfilter/ks/unknown.c b/drivers/ksfilter/ks/unknown.c similarity index 100% rename from reactos/drivers/ksfilter/ks/unknown.c rename to drivers/ksfilter/ks/unknown.c diff --git a/reactos/drivers/ksfilter/ks/worker.c b/drivers/ksfilter/ks/worker.c similarity index 100% rename from reactos/drivers/ksfilter/ks/worker.c rename to drivers/ksfilter/ks/worker.c diff --git a/reactos/drivers/ksfilter/swenum/CMakeLists.txt b/drivers/ksfilter/swenum/CMakeLists.txt similarity index 100% rename from reactos/drivers/ksfilter/swenum/CMakeLists.txt rename to drivers/ksfilter/swenum/CMakeLists.txt diff --git a/reactos/drivers/ksfilter/swenum/precomp.h b/drivers/ksfilter/swenum/precomp.h similarity index 100% rename from reactos/drivers/ksfilter/swenum/precomp.h rename to drivers/ksfilter/swenum/precomp.h diff --git a/reactos/drivers/ksfilter/swenum/swenum.c b/drivers/ksfilter/swenum/swenum.c similarity index 100% rename from reactos/drivers/ksfilter/swenum/swenum.c rename to drivers/ksfilter/swenum/swenum.c diff --git a/reactos/drivers/multimedia/README b/drivers/multimedia/README similarity index 100% rename from reactos/drivers/multimedia/README rename to drivers/multimedia/README diff --git a/reactos/drivers/multimedia/audio/mpu401_nt4/mpu401.c b/drivers/multimedia/audio/mpu401_nt4/mpu401.c similarity index 100% rename from reactos/drivers/multimedia/audio/mpu401_nt4/mpu401.c rename to drivers/multimedia/audio/mpu401_nt4/mpu401.c diff --git a/reactos/drivers/multimedia/audio/mpu401_nt4/mpu401.h b/drivers/multimedia/audio/mpu401_nt4/mpu401.h similarity index 100% rename from reactos/drivers/multimedia/audio/mpu401_nt4/mpu401.h rename to drivers/multimedia/audio/mpu401_nt4/mpu401.h diff --git a/reactos/drivers/multimedia/audio/mpu401_nt4/mpu401.rc b/drivers/multimedia/audio/mpu401_nt4/mpu401.rc similarity index 100% rename from reactos/drivers/multimedia/audio/mpu401_nt4/mpu401.rc rename to drivers/multimedia/audio/mpu401_nt4/mpu401.rc diff --git a/reactos/drivers/multimedia/audio/mpu401_nt4/portio.c b/drivers/multimedia/audio/mpu401_nt4/portio.c similarity index 100% rename from reactos/drivers/multimedia/audio/mpu401_nt4/portio.c rename to drivers/multimedia/audio/mpu401_nt4/portio.c diff --git a/reactos/drivers/multimedia/audio/mpu401_nt4/readme.txt b/drivers/multimedia/audio/mpu401_nt4/readme.txt similarity index 100% rename from reactos/drivers/multimedia/audio/mpu401_nt4/readme.txt rename to drivers/multimedia/audio/mpu401_nt4/readme.txt diff --git a/reactos/drivers/multimedia/audio/mpu401_nt4/sbdebug.h b/drivers/multimedia/audio/mpu401_nt4/sbdebug.h similarity index 100% rename from reactos/drivers/multimedia/audio/mpu401_nt4/sbdebug.h rename to drivers/multimedia/audio/mpu401_nt4/sbdebug.h diff --git a/reactos/drivers/multimedia/audio/mpu401_nt4/settings.c b/drivers/multimedia/audio/mpu401_nt4/settings.c similarity index 100% rename from reactos/drivers/multimedia/audio/mpu401_nt4/settings.c rename to drivers/multimedia/audio/mpu401_nt4/settings.c diff --git a/reactos/drivers/multimedia/audio/mpu401_nt4/test.c b/drivers/multimedia/audio/mpu401_nt4/test.c similarity index 100% rename from reactos/drivers/multimedia/audio/mpu401_nt4/test.c rename to drivers/multimedia/audio/mpu401_nt4/test.c diff --git a/reactos/drivers/multimedia/audio/sb16_nt4.old/control.c b/drivers/multimedia/audio/sb16_nt4.old/control.c similarity index 100% rename from reactos/drivers/multimedia/audio/sb16_nt4.old/control.c rename to drivers/multimedia/audio/sb16_nt4.old/control.c diff --git a/reactos/drivers/multimedia/audio/sb16_nt4.old/interrupt.c b/drivers/multimedia/audio/sb16_nt4.old/interrupt.c similarity index 100% rename from reactos/drivers/multimedia/audio/sb16_nt4.old/interrupt.c rename to drivers/multimedia/audio/sb16_nt4.old/interrupt.c diff --git a/reactos/drivers/multimedia/audio/sb16_nt4.old/main.c b/drivers/multimedia/audio/sb16_nt4.old/main.c similarity index 100% rename from reactos/drivers/multimedia/audio/sb16_nt4.old/main.c rename to drivers/multimedia/audio/sb16_nt4.old/main.c diff --git a/reactos/drivers/multimedia/audio/sb16_nt4.old/sndblst.h b/drivers/multimedia/audio/sb16_nt4.old/sndblst.h similarity index 100% rename from reactos/drivers/multimedia/audio/sb16_nt4.old/sndblst.h rename to drivers/multimedia/audio/sb16_nt4.old/sndblst.h diff --git a/reactos/drivers/multimedia/audio/sndblst.old/card.c b/drivers/multimedia/audio/sndblst.old/card.c similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst.old/card.c rename to drivers/multimedia/audio/sndblst.old/card.c diff --git a/reactos/drivers/multimedia/audio/sndblst.old/dma.c b/drivers/multimedia/audio/sndblst.old/dma.c similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst.old/dma.c rename to drivers/multimedia/audio/sndblst.old/dma.c diff --git a/reactos/drivers/multimedia/audio/sndblst.old/irq.c b/drivers/multimedia/audio/sndblst.old/irq.c similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst.old/irq.c rename to drivers/multimedia/audio/sndblst.old/irq.c diff --git a/reactos/drivers/multimedia/audio/sndblst.old/portio.c b/drivers/multimedia/audio/sndblst.old/portio.c similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst.old/portio.c rename to drivers/multimedia/audio/sndblst.old/portio.c diff --git a/reactos/drivers/multimedia/audio/sndblst.old/sbdebug.h b/drivers/multimedia/audio/sndblst.old/sbdebug.h similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst.old/sbdebug.h rename to drivers/multimedia/audio/sndblst.old/sbdebug.h diff --git a/reactos/drivers/multimedia/audio/sndblst.old/settings.c b/drivers/multimedia/audio/sndblst.old/settings.c similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst.old/settings.c rename to drivers/multimedia/audio/sndblst.old/settings.c diff --git a/reactos/drivers/multimedia/audio/sndblst.old/sndblst.c b/drivers/multimedia/audio/sndblst.old/sndblst.c similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst.old/sndblst.c rename to drivers/multimedia/audio/sndblst.old/sndblst.c diff --git a/reactos/drivers/multimedia/audio/sndblst.old/sndblst.h b/drivers/multimedia/audio/sndblst.old/sndblst.h similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst.old/sndblst.h rename to drivers/multimedia/audio/sndblst.old/sndblst.h diff --git a/reactos/drivers/multimedia/audio/sndblst.old/sndblst.rc b/drivers/multimedia/audio/sndblst.old/sndblst.rc similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst.old/sndblst.rc rename to drivers/multimedia/audio/sndblst.old/sndblst.rc diff --git a/reactos/drivers/multimedia/audio/sndblst.old/test.c b/drivers/multimedia/audio/sndblst.old/test.c similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst.old/test.c rename to drivers/multimedia/audio/sndblst.old/test.c diff --git a/reactos/drivers/multimedia/audio/sndblst.old/test/sb.c b/drivers/multimedia/audio/sndblst.old/test/sb.c similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst.old/test/sb.c rename to drivers/multimedia/audio/sndblst.old/test/sb.c diff --git a/reactos/drivers/multimedia/audio/sndblst_sys/sndblst.c b/drivers/multimedia/audio/sndblst_sys/sndblst.c similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst_sys/sndblst.c rename to drivers/multimedia/audio/sndblst_sys/sndblst.c diff --git a/reactos/drivers/multimedia/audio/sndblst_sys/sndblst.rc b/drivers/multimedia/audio/sndblst_sys/sndblst.rc similarity index 100% rename from reactos/drivers/multimedia/audio/sndblst_sys/sndblst.rc rename to drivers/multimedia/audio/sndblst_sys/sndblst.rc diff --git a/reactos/drivers/multimedia/audio/sound/dsp.c b/drivers/multimedia/audio/sound/dsp.c similarity index 100% rename from reactos/drivers/multimedia/audio/sound/dsp.c rename to drivers/multimedia/audio/sound/dsp.c diff --git a/reactos/drivers/multimedia/audio/sound/dsp.h b/drivers/multimedia/audio/sound/dsp.h similarity index 100% rename from reactos/drivers/multimedia/audio/sound/dsp.h rename to drivers/multimedia/audio/sound/dsp.h diff --git a/reactos/drivers/multimedia/audio/sound/in.h b/drivers/multimedia/audio/sound/in.h similarity index 100% rename from reactos/drivers/multimedia/audio/sound/in.h rename to drivers/multimedia/audio/sound/in.h diff --git a/reactos/drivers/multimedia/audio/sound/include/devices.h b/drivers/multimedia/audio/sound/include/devices.h similarity index 100% rename from reactos/drivers/multimedia/audio/sound/include/devices.h rename to drivers/multimedia/audio/sound/include/devices.h diff --git a/reactos/drivers/multimedia/audio/sound/mixer.c b/drivers/multimedia/audio/sound/mixer.c similarity index 100% rename from reactos/drivers/multimedia/audio/sound/mixer.c rename to drivers/multimedia/audio/sound/mixer.c diff --git a/reactos/drivers/multimedia/audio/sound/mixer.h b/drivers/multimedia/audio/sound/mixer.h similarity index 100% rename from reactos/drivers/multimedia/audio/sound/mixer.h rename to drivers/multimedia/audio/sound/mixer.h diff --git a/reactos/drivers/multimedia/audio/sound/sb16.c b/drivers/multimedia/audio/sound/sb16.c similarity index 100% rename from reactos/drivers/multimedia/audio/sound/sb16.c rename to drivers/multimedia/audio/sound/sb16.c diff --git a/reactos/drivers/multimedia/audio/sound/sb16.h b/drivers/multimedia/audio/sound/sb16.h similarity index 100% rename from reactos/drivers/multimedia/audio/sound/sb16.h rename to drivers/multimedia/audio/sound/sb16.h diff --git a/reactos/drivers/multimedia/audio/sound/sb16.rc b/drivers/multimedia/audio/sound/sb16.rc similarity index 100% rename from reactos/drivers/multimedia/audio/sound/sb16.rc rename to drivers/multimedia/audio/sound/sb16.rc diff --git a/reactos/drivers/multimedia/audio/sound/sb_waveout.c b/drivers/multimedia/audio/sound/sb_waveout.c similarity index 100% rename from reactos/drivers/multimedia/audio/sound/sb_waveout.c rename to drivers/multimedia/audio/sound/sb_waveout.c diff --git a/reactos/drivers/multimedia/audio/sound/sound.c b/drivers/multimedia/audio/sound/sound.c similarity index 100% rename from reactos/drivers/multimedia/audio/sound/sound.c rename to drivers/multimedia/audio/sound/sound.c diff --git a/reactos/drivers/multimedia/audio/sound/wave.c b/drivers/multimedia/audio/sound/wave.c similarity index 100% rename from reactos/drivers/multimedia/audio/sound/wave.c rename to drivers/multimedia/audio/sound/wave.c diff --git a/reactos/drivers/multimedia/audio/sound/wave.h b/drivers/multimedia/audio/sound/wave.h similarity index 100% rename from reactos/drivers/multimedia/audio/sound/wave.h rename to drivers/multimedia/audio/sound/wave.h diff --git a/reactos/drivers/multimedia/bdasup/bdasup.c b/drivers/multimedia/bdasup/bdasup.c similarity index 100% rename from reactos/drivers/multimedia/bdasup/bdasup.c rename to drivers/multimedia/bdasup/bdasup.c diff --git a/reactos/drivers/multimedia/bdasup/bdasup.spec b/drivers/multimedia/bdasup/bdasup.spec similarity index 100% rename from reactos/drivers/multimedia/bdasup/bdasup.spec rename to drivers/multimedia/bdasup/bdasup.spec diff --git a/reactos/drivers/multimedia/bdasup/precomp.h b/drivers/multimedia/bdasup/precomp.h similarity index 100% rename from reactos/drivers/multimedia/bdasup/precomp.h rename to drivers/multimedia/bdasup/precomp.h diff --git a/reactos/drivers/network/CMakeLists.txt b/drivers/network/CMakeLists.txt similarity index 100% rename from reactos/drivers/network/CMakeLists.txt rename to drivers/network/CMakeLists.txt diff --git a/reactos/drivers/network/acd/acd/main.c b/drivers/network/acd/acd/main.c similarity index 100% rename from reactos/drivers/network/acd/acd/main.c rename to drivers/network/acd/acd/main.c diff --git a/reactos/drivers/network/acd/include/acdapi.h b/drivers/network/acd/include/acdapi.h similarity index 100% rename from reactos/drivers/network/acd/include/acdapi.h rename to drivers/network/acd/include/acdapi.h diff --git a/reactos/drivers/network/acd/rasacd.rc b/drivers/network/acd/rasacd.rc similarity index 100% rename from reactos/drivers/network/acd/rasacd.rc rename to drivers/network/acd/rasacd.rc diff --git a/reactos/drivers/network/afd/CMakeLists.txt b/drivers/network/afd/CMakeLists.txt similarity index 100% rename from reactos/drivers/network/afd/CMakeLists.txt rename to drivers/network/afd/CMakeLists.txt diff --git a/reactos/drivers/network/afd/afd.rc b/drivers/network/afd/afd.rc similarity index 100% rename from reactos/drivers/network/afd/afd.rc rename to drivers/network/afd/afd.rc diff --git a/reactos/drivers/network/afd/afd/bind.c b/drivers/network/afd/afd/bind.c similarity index 100% rename from reactos/drivers/network/afd/afd/bind.c rename to drivers/network/afd/afd/bind.c diff --git a/reactos/drivers/network/afd/afd/connect.c b/drivers/network/afd/afd/connect.c similarity index 100% rename from reactos/drivers/network/afd/afd/connect.c rename to drivers/network/afd/afd/connect.c diff --git a/reactos/drivers/network/afd/afd/context.c b/drivers/network/afd/afd/context.c similarity index 100% rename from reactos/drivers/network/afd/afd/context.c rename to drivers/network/afd/afd/context.c diff --git a/reactos/drivers/network/afd/afd/event.c b/drivers/network/afd/afd/event.c similarity index 100% rename from reactos/drivers/network/afd/afd/event.c rename to drivers/network/afd/afd/event.c diff --git a/reactos/drivers/network/afd/afd/info.c b/drivers/network/afd/afd/info.c similarity index 100% rename from reactos/drivers/network/afd/afd/info.c rename to drivers/network/afd/afd/info.c diff --git a/reactos/drivers/network/afd/afd/listen.c b/drivers/network/afd/afd/listen.c similarity index 100% rename from reactos/drivers/network/afd/afd/listen.c rename to drivers/network/afd/afd/listen.c diff --git a/reactos/drivers/network/afd/afd/lock.c b/drivers/network/afd/afd/lock.c similarity index 100% rename from reactos/drivers/network/afd/afd/lock.c rename to drivers/network/afd/afd/lock.c diff --git a/reactos/drivers/network/afd/afd/main.c b/drivers/network/afd/afd/main.c similarity index 100% rename from reactos/drivers/network/afd/afd/main.c rename to drivers/network/afd/afd/main.c diff --git a/reactos/drivers/network/afd/afd/read.c b/drivers/network/afd/afd/read.c similarity index 100% rename from reactos/drivers/network/afd/afd/read.c rename to drivers/network/afd/afd/read.c diff --git a/reactos/drivers/network/afd/afd/select.c b/drivers/network/afd/afd/select.c similarity index 100% rename from reactos/drivers/network/afd/afd/select.c rename to drivers/network/afd/afd/select.c diff --git a/reactos/drivers/network/afd/afd/tdi.c b/drivers/network/afd/afd/tdi.c similarity index 100% rename from reactos/drivers/network/afd/afd/tdi.c rename to drivers/network/afd/afd/tdi.c diff --git a/reactos/drivers/network/afd/afd/tdiconn.c b/drivers/network/afd/afd/tdiconn.c similarity index 100% rename from reactos/drivers/network/afd/afd/tdiconn.c rename to drivers/network/afd/afd/tdiconn.c diff --git a/reactos/drivers/network/afd/afd/write.c b/drivers/network/afd/afd/write.c similarity index 100% rename from reactos/drivers/network/afd/afd/write.c rename to drivers/network/afd/afd/write.c diff --git a/reactos/drivers/network/afd/doc/simple_select.txt b/drivers/network/afd/doc/simple_select.txt similarity index 100% rename from reactos/drivers/network/afd/doc/simple_select.txt rename to drivers/network/afd/doc/simple_select.txt diff --git a/reactos/drivers/network/afd/include/afd.h b/drivers/network/afd/include/afd.h similarity index 100% rename from reactos/drivers/network/afd/include/afd.h rename to drivers/network/afd/include/afd.h diff --git a/reactos/drivers/network/afd/include/debug.h b/drivers/network/afd/include/debug.h similarity index 100% rename from reactos/drivers/network/afd/include/debug.h rename to drivers/network/afd/include/debug.h diff --git a/reactos/drivers/network/afd/include/tdi_proto.h b/drivers/network/afd/include/tdi_proto.h similarity index 100% rename from reactos/drivers/network/afd/include/tdi_proto.h rename to drivers/network/afd/include/tdi_proto.h diff --git a/reactos/drivers/network/afd/include/tdiconn.h b/drivers/network/afd/include/tdiconn.h similarity index 100% rename from reactos/drivers/network/afd/include/tdiconn.h rename to drivers/network/afd/include/tdiconn.h diff --git a/reactos/drivers/network/dd/CMakeLists.txt b/drivers/network/dd/CMakeLists.txt similarity index 100% rename from reactos/drivers/network/dd/CMakeLists.txt rename to drivers/network/dd/CMakeLists.txt diff --git a/reactos/drivers/network/dd/ne2000/CMakeLists.txt b/drivers/network/dd/ne2000/CMakeLists.txt similarity index 100% rename from reactos/drivers/network/dd/ne2000/CMakeLists.txt rename to drivers/network/dd/ne2000/CMakeLists.txt diff --git a/reactos/drivers/network/dd/ne2000/include/8390.h b/drivers/network/dd/ne2000/include/8390.h similarity index 100% rename from reactos/drivers/network/dd/ne2000/include/8390.h rename to drivers/network/dd/ne2000/include/8390.h diff --git a/reactos/drivers/network/dd/ne2000/include/debug.h b/drivers/network/dd/ne2000/include/debug.h similarity index 100% rename from reactos/drivers/network/dd/ne2000/include/debug.h rename to drivers/network/dd/ne2000/include/debug.h diff --git a/reactos/drivers/network/dd/ne2000/include/ne2000.h b/drivers/network/dd/ne2000/include/ne2000.h similarity index 100% rename from reactos/drivers/network/dd/ne2000/include/ne2000.h rename to drivers/network/dd/ne2000/include/ne2000.h diff --git a/reactos/drivers/network/dd/ne2000/ne2000.rc b/drivers/network/dd/ne2000/ne2000.rc similarity index 100% rename from reactos/drivers/network/dd/ne2000/ne2000.rc rename to drivers/network/dd/ne2000/ne2000.rc diff --git a/reactos/drivers/network/dd/ne2000/ne2000/8390.c b/drivers/network/dd/ne2000/ne2000/8390.c similarity index 100% rename from reactos/drivers/network/dd/ne2000/ne2000/8390.c rename to drivers/network/dd/ne2000/ne2000/8390.c diff --git a/reactos/drivers/network/dd/ne2000/ne2000/main.c b/drivers/network/dd/ne2000/ne2000/main.c similarity index 100% rename from reactos/drivers/network/dd/ne2000/ne2000/main.c rename to drivers/network/dd/ne2000/ne2000/main.c diff --git a/reactos/drivers/network/dd/pcnet/CMakeLists.txt b/drivers/network/dd/pcnet/CMakeLists.txt similarity index 100% rename from reactos/drivers/network/dd/pcnet/CMakeLists.txt rename to drivers/network/dd/pcnet/CMakeLists.txt diff --git a/reactos/drivers/network/dd/pcnet/pci.h b/drivers/network/dd/pcnet/pci.h similarity index 100% rename from reactos/drivers/network/dd/pcnet/pci.h rename to drivers/network/dd/pcnet/pci.h diff --git a/reactos/drivers/network/dd/pcnet/pcnet.c b/drivers/network/dd/pcnet/pcnet.c similarity index 100% rename from reactos/drivers/network/dd/pcnet/pcnet.c rename to drivers/network/dd/pcnet/pcnet.c diff --git a/reactos/drivers/network/dd/pcnet/pcnet.h b/drivers/network/dd/pcnet/pcnet.h similarity index 100% rename from reactos/drivers/network/dd/pcnet/pcnet.h rename to drivers/network/dd/pcnet/pcnet.h diff --git a/reactos/drivers/network/dd/pcnet/pcnet.rc b/drivers/network/dd/pcnet/pcnet.rc similarity index 100% rename from reactos/drivers/network/dd/pcnet/pcnet.rc rename to drivers/network/dd/pcnet/pcnet.rc diff --git a/reactos/drivers/network/dd/pcnet/pcnethw.h b/drivers/network/dd/pcnet/pcnethw.h similarity index 100% rename from reactos/drivers/network/dd/pcnet/pcnethw.h rename to drivers/network/dd/pcnet/pcnethw.h diff --git a/reactos/drivers/network/dd/pcnet/requests.c b/drivers/network/dd/pcnet/requests.c similarity index 100% rename from reactos/drivers/network/dd/pcnet/requests.c rename to drivers/network/dd/pcnet/requests.c diff --git a/reactos/drivers/network/lan/include/debug.h b/drivers/network/lan/include/debug.h similarity index 100% rename from reactos/drivers/network/lan/include/debug.h rename to drivers/network/lan/include/debug.h diff --git a/reactos/drivers/network/lan/include/lan.h b/drivers/network/lan/include/lan.h similarity index 100% rename from reactos/drivers/network/lan/include/lan.h rename to drivers/network/lan/include/lan.h diff --git a/reactos/drivers/network/lan/include/memtrack.h b/drivers/network/lan/include/memtrack.h similarity index 100% rename from reactos/drivers/network/lan/include/memtrack.h rename to drivers/network/lan/include/memtrack.h diff --git a/reactos/drivers/network/lan/include/net_lan.h b/drivers/network/lan/include/net_lan.h similarity index 100% rename from reactos/drivers/network/lan/include/net_lan.h rename to drivers/network/lan/include/net_lan.h diff --git a/reactos/drivers/network/lan/include/net_wh.h b/drivers/network/lan/include/net_wh.h similarity index 100% rename from reactos/drivers/network/lan/include/net_wh.h rename to drivers/network/lan/include/net_wh.h diff --git a/reactos/drivers/network/lan/include/precomp.h b/drivers/network/lan/include/precomp.h similarity index 100% rename from reactos/drivers/network/lan/include/precomp.h rename to drivers/network/lan/include/precomp.h diff --git a/reactos/drivers/network/lan/lan.rc b/drivers/network/lan/lan.rc similarity index 100% rename from reactos/drivers/network/lan/lan.rc rename to drivers/network/lan/lan.rc diff --git a/reactos/drivers/network/lan/lan/lan.c b/drivers/network/lan/lan/lan.c similarity index 100% rename from reactos/drivers/network/lan/lan/lan.c rename to drivers/network/lan/lan/lan.c diff --git a/reactos/drivers/network/lan/lan/routines.c b/drivers/network/lan/lan/routines.c similarity index 100% rename from reactos/drivers/network/lan/lan/routines.c rename to drivers/network/lan/lan/routines.c diff --git a/reactos/drivers/network/ndis/CMakeLists.txt b/drivers/network/ndis/CMakeLists.txt similarity index 100% rename from reactos/drivers/network/ndis/CMakeLists.txt rename to drivers/network/ndis/CMakeLists.txt diff --git a/reactos/drivers/network/ndis/DIRS b/drivers/network/ndis/DIRS similarity index 100% rename from reactos/drivers/network/ndis/DIRS rename to drivers/network/ndis/DIRS diff --git a/reactos/drivers/network/ndis/include/buffer.h b/drivers/network/ndis/include/buffer.h similarity index 100% rename from reactos/drivers/network/ndis/include/buffer.h rename to drivers/network/ndis/include/buffer.h diff --git a/reactos/drivers/network/ndis/include/debug.h b/drivers/network/ndis/include/debug.h similarity index 100% rename from reactos/drivers/network/ndis/include/debug.h rename to drivers/network/ndis/include/debug.h diff --git a/reactos/drivers/network/ndis/include/efilter.h b/drivers/network/ndis/include/efilter.h similarity index 100% rename from reactos/drivers/network/ndis/include/efilter.h rename to drivers/network/ndis/include/efilter.h diff --git a/reactos/drivers/network/ndis/include/miniport.h b/drivers/network/ndis/include/miniport.h similarity index 100% rename from reactos/drivers/network/ndis/include/miniport.h rename to drivers/network/ndis/include/miniport.h diff --git a/reactos/drivers/network/ndis/include/ndissys.h b/drivers/network/ndis/include/ndissys.h similarity index 100% rename from reactos/drivers/network/ndis/include/ndissys.h rename to drivers/network/ndis/include/ndissys.h diff --git a/reactos/drivers/network/ndis/include/protocol.h b/drivers/network/ndis/include/protocol.h similarity index 100% rename from reactos/drivers/network/ndis/include/protocol.h rename to drivers/network/ndis/include/protocol.h diff --git a/reactos/drivers/network/ndis/ndis.rc b/drivers/network/ndis/ndis.rc similarity index 100% rename from reactos/drivers/network/ndis/ndis.rc rename to drivers/network/ndis/ndis.rc diff --git a/reactos/drivers/network/ndis/ndis.spec b/drivers/network/ndis/ndis.spec similarity index 100% rename from reactos/drivers/network/ndis/ndis.spec rename to drivers/network/ndis/ndis.spec diff --git a/reactos/drivers/network/ndis/ndis/30stubs.c b/drivers/network/ndis/ndis/30stubs.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/30stubs.c rename to drivers/network/ndis/ndis/30stubs.c diff --git a/reactos/drivers/network/ndis/ndis/40stubs.c b/drivers/network/ndis/ndis/40stubs.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/40stubs.c rename to drivers/network/ndis/ndis/40stubs.c diff --git a/reactos/drivers/network/ndis/ndis/50stubs.c b/drivers/network/ndis/ndis/50stubs.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/50stubs.c rename to drivers/network/ndis/ndis/50stubs.c diff --git a/reactos/drivers/network/ndis/ndis/SOURCES b/drivers/network/ndis/ndis/SOURCES similarity index 100% rename from reactos/drivers/network/ndis/ndis/SOURCES rename to drivers/network/ndis/ndis/SOURCES diff --git a/reactos/drivers/network/ndis/ndis/buffer.c b/drivers/network/ndis/ndis/buffer.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/buffer.c rename to drivers/network/ndis/ndis/buffer.c diff --git a/reactos/drivers/network/ndis/ndis/cl.c b/drivers/network/ndis/ndis/cl.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/cl.c rename to drivers/network/ndis/ndis/cl.c diff --git a/reactos/drivers/network/ndis/ndis/cm.c b/drivers/network/ndis/ndis/cm.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/cm.c rename to drivers/network/ndis/ndis/cm.c diff --git a/reactos/drivers/network/ndis/ndis/co.c b/drivers/network/ndis/ndis/co.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/co.c rename to drivers/network/ndis/ndis/co.c diff --git a/reactos/drivers/network/ndis/ndis/config.c b/drivers/network/ndis/ndis/config.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/config.c rename to drivers/network/ndis/ndis/config.c diff --git a/reactos/drivers/network/ndis/ndis/control.c b/drivers/network/ndis/ndis/control.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/control.c rename to drivers/network/ndis/ndis/control.c diff --git a/reactos/drivers/network/ndis/ndis/efilter.c b/drivers/network/ndis/ndis/efilter.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/efilter.c rename to drivers/network/ndis/ndis/efilter.c diff --git a/reactos/drivers/network/ndis/ndis/hardware.c b/drivers/network/ndis/ndis/hardware.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/hardware.c rename to drivers/network/ndis/ndis/hardware.c diff --git a/reactos/drivers/network/ndis/ndis/io.c b/drivers/network/ndis/ndis/io.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/io.c rename to drivers/network/ndis/ndis/io.c diff --git a/reactos/drivers/network/ndis/ndis/main.c b/drivers/network/ndis/ndis/main.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/main.c rename to drivers/network/ndis/ndis/main.c diff --git a/reactos/drivers/network/ndis/ndis/memory.c b/drivers/network/ndis/ndis/memory.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/memory.c rename to drivers/network/ndis/ndis/memory.c diff --git a/reactos/drivers/network/ndis/ndis/miniport.c b/drivers/network/ndis/ndis/miniport.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/miniport.c rename to drivers/network/ndis/ndis/miniport.c diff --git a/reactos/drivers/network/ndis/ndis/misc.c b/drivers/network/ndis/ndis/misc.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/misc.c rename to drivers/network/ndis/ndis/misc.c diff --git a/reactos/drivers/network/ndis/ndis/object.c b/drivers/network/ndis/ndis/object.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/object.c rename to drivers/network/ndis/ndis/object.c diff --git a/reactos/drivers/network/ndis/ndis/protocol.c b/drivers/network/ndis/ndis/protocol.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/protocol.c rename to drivers/network/ndis/ndis/protocol.c diff --git a/reactos/drivers/network/ndis/ndis/string.c b/drivers/network/ndis/ndis/string.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/string.c rename to drivers/network/ndis/ndis/string.c diff --git a/reactos/drivers/network/ndis/ndis/time.c b/drivers/network/ndis/ndis/time.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/time.c rename to drivers/network/ndis/ndis/time.c diff --git a/reactos/drivers/network/ndis/ndis/workitem.c b/drivers/network/ndis/ndis/workitem.c similarity index 100% rename from reactos/drivers/network/ndis/ndis/workitem.c rename to drivers/network/ndis/ndis/workitem.c diff --git a/reactos/drivers/network/ndis/readme.txt b/drivers/network/ndis/readme.txt similarity index 100% rename from reactos/drivers/network/ndis/readme.txt rename to drivers/network/ndis/readme.txt diff --git a/reactos/drivers/network/ndisuio/CMakeLists.txt b/drivers/network/ndisuio/CMakeLists.txt similarity index 100% rename from reactos/drivers/network/ndisuio/CMakeLists.txt rename to drivers/network/ndisuio/CMakeLists.txt diff --git a/reactos/drivers/network/ndisuio/createclose.c b/drivers/network/ndisuio/createclose.c similarity index 100% rename from reactos/drivers/network/ndisuio/createclose.c rename to drivers/network/ndisuio/createclose.c diff --git a/reactos/drivers/network/ndisuio/ioctl.c b/drivers/network/ndisuio/ioctl.c similarity index 100% rename from reactos/drivers/network/ndisuio/ioctl.c rename to drivers/network/ndisuio/ioctl.c diff --git a/reactos/drivers/network/ndisuio/main.c b/drivers/network/ndisuio/main.c similarity index 100% rename from reactos/drivers/network/ndisuio/main.c rename to drivers/network/ndisuio/main.c diff --git a/reactos/drivers/network/ndisuio/misc.c b/drivers/network/ndisuio/misc.c similarity index 100% rename from reactos/drivers/network/ndisuio/misc.c rename to drivers/network/ndisuio/misc.c diff --git a/reactos/drivers/network/ndisuio/ndisuio.h b/drivers/network/ndisuio/ndisuio.h similarity index 100% rename from reactos/drivers/network/ndisuio/ndisuio.h rename to drivers/network/ndisuio/ndisuio.h diff --git a/reactos/drivers/network/ndisuio/ndisuio.rc b/drivers/network/ndisuio/ndisuio.rc similarity index 100% rename from reactos/drivers/network/ndisuio/ndisuio.rc rename to drivers/network/ndisuio/ndisuio.rc diff --git a/reactos/drivers/network/ndisuio/protocol.c b/drivers/network/ndisuio/protocol.c similarity index 100% rename from reactos/drivers/network/ndisuio/protocol.c rename to drivers/network/ndisuio/protocol.c diff --git a/reactos/drivers/network/ndisuio/readwrite.c b/drivers/network/ndisuio/readwrite.c similarity index 100% rename from reactos/drivers/network/ndisuio/readwrite.c rename to drivers/network/ndisuio/readwrite.c diff --git a/reactos/drivers/network/tcpip/CMakeLists.txt b/drivers/network/tcpip/CMakeLists.txt similarity index 100% rename from reactos/drivers/network/tcpip/CMakeLists.txt rename to drivers/network/tcpip/CMakeLists.txt diff --git a/reactos/drivers/network/tcpip/DIRS b/drivers/network/tcpip/DIRS similarity index 100% rename from reactos/drivers/network/tcpip/DIRS rename to drivers/network/tcpip/DIRS diff --git a/reactos/drivers/network/tcpip/datalink/SOURCES b/drivers/network/tcpip/datalink/SOURCES similarity index 100% rename from reactos/drivers/network/tcpip/datalink/SOURCES rename to drivers/network/tcpip/datalink/SOURCES diff --git a/reactos/drivers/network/tcpip/datalink/lan.c b/drivers/network/tcpip/datalink/lan.c similarity index 100% rename from reactos/drivers/network/tcpip/datalink/lan.c rename to drivers/network/tcpip/datalink/lan.c diff --git a/reactos/drivers/network/tcpip/include/address.h b/drivers/network/tcpip/include/address.h similarity index 100% rename from reactos/drivers/network/tcpip/include/address.h rename to drivers/network/tcpip/include/address.h diff --git a/reactos/drivers/network/tcpip/include/arp.h b/drivers/network/tcpip/include/arp.h similarity index 100% rename from reactos/drivers/network/tcpip/include/arp.h rename to drivers/network/tcpip/include/arp.h diff --git a/reactos/drivers/network/tcpip/include/checksum.h b/drivers/network/tcpip/include/checksum.h similarity index 100% rename from reactos/drivers/network/tcpip/include/checksum.h rename to drivers/network/tcpip/include/checksum.h diff --git a/reactos/drivers/network/tcpip/include/datagram.h b/drivers/network/tcpip/include/datagram.h similarity index 100% rename from reactos/drivers/network/tcpip/include/datagram.h rename to drivers/network/tcpip/include/datagram.h diff --git a/reactos/drivers/network/tcpip/include/debug.h b/drivers/network/tcpip/include/debug.h similarity index 100% rename from reactos/drivers/network/tcpip/include/debug.h rename to drivers/network/tcpip/include/debug.h diff --git a/reactos/drivers/network/tcpip/include/dispatch.h b/drivers/network/tcpip/include/dispatch.h similarity index 100% rename from reactos/drivers/network/tcpip/include/dispatch.h rename to drivers/network/tcpip/include/dispatch.h diff --git a/reactos/drivers/network/tcpip/include/fileobjs.h b/drivers/network/tcpip/include/fileobjs.h similarity index 100% rename from reactos/drivers/network/tcpip/include/fileobjs.h rename to drivers/network/tcpip/include/fileobjs.h diff --git a/reactos/drivers/network/tcpip/include/icmp.h b/drivers/network/tcpip/include/icmp.h similarity index 100% rename from reactos/drivers/network/tcpip/include/icmp.h rename to drivers/network/tcpip/include/icmp.h diff --git a/reactos/drivers/network/tcpip/include/info.h b/drivers/network/tcpip/include/info.h similarity index 100% rename from reactos/drivers/network/tcpip/include/info.h rename to drivers/network/tcpip/include/info.h diff --git a/reactos/drivers/network/tcpip/include/interface.h b/drivers/network/tcpip/include/interface.h similarity index 100% rename from reactos/drivers/network/tcpip/include/interface.h rename to drivers/network/tcpip/include/interface.h diff --git a/reactos/drivers/network/tcpip/include/ip.h b/drivers/network/tcpip/include/ip.h similarity index 100% rename from reactos/drivers/network/tcpip/include/ip.h rename to drivers/network/tcpip/include/ip.h diff --git a/reactos/drivers/network/tcpip/include/lan.h b/drivers/network/tcpip/include/lan.h similarity index 100% rename from reactos/drivers/network/tcpip/include/lan.h rename to drivers/network/tcpip/include/lan.h diff --git a/reactos/drivers/network/tcpip/include/linux.h b/drivers/network/tcpip/include/linux.h similarity index 100% rename from reactos/drivers/network/tcpip/include/linux.h rename to drivers/network/tcpip/include/linux.h diff --git a/reactos/drivers/network/tcpip/include/lock.h b/drivers/network/tcpip/include/lock.h similarity index 100% rename from reactos/drivers/network/tcpip/include/lock.h rename to drivers/network/tcpip/include/lock.h diff --git a/reactos/drivers/network/tcpip/include/loopback.h b/drivers/network/tcpip/include/loopback.h similarity index 100% rename from reactos/drivers/network/tcpip/include/loopback.h rename to drivers/network/tcpip/include/loopback.h diff --git a/reactos/drivers/network/tcpip/include/neighbor.h b/drivers/network/tcpip/include/neighbor.h similarity index 100% rename from reactos/drivers/network/tcpip/include/neighbor.h rename to drivers/network/tcpip/include/neighbor.h diff --git a/reactos/drivers/network/tcpip/include/pool.h b/drivers/network/tcpip/include/pool.h similarity index 100% rename from reactos/drivers/network/tcpip/include/pool.h rename to drivers/network/tcpip/include/pool.h diff --git a/reactos/drivers/network/tcpip/include/ports.h b/drivers/network/tcpip/include/ports.h similarity index 100% rename from reactos/drivers/network/tcpip/include/ports.h rename to drivers/network/tcpip/include/ports.h diff --git a/reactos/drivers/network/tcpip/include/precomp.h b/drivers/network/tcpip/include/precomp.h similarity index 100% rename from reactos/drivers/network/tcpip/include/precomp.h rename to drivers/network/tcpip/include/precomp.h diff --git a/reactos/drivers/network/tcpip/include/rawip.h b/drivers/network/tcpip/include/rawip.h similarity index 100% rename from reactos/drivers/network/tcpip/include/rawip.h rename to drivers/network/tcpip/include/rawip.h diff --git a/reactos/drivers/network/tcpip/include/receive.h b/drivers/network/tcpip/include/receive.h similarity index 100% rename from reactos/drivers/network/tcpip/include/receive.h rename to drivers/network/tcpip/include/receive.h diff --git a/reactos/drivers/network/tcpip/include/route.h b/drivers/network/tcpip/include/route.h similarity index 100% rename from reactos/drivers/network/tcpip/include/route.h rename to drivers/network/tcpip/include/route.h diff --git a/reactos/drivers/network/tcpip/include/router.h b/drivers/network/tcpip/include/router.h similarity index 100% rename from reactos/drivers/network/tcpip/include/router.h rename to drivers/network/tcpip/include/router.h diff --git a/reactos/drivers/network/tcpip/include/routines.h b/drivers/network/tcpip/include/routines.h similarity index 100% rename from reactos/drivers/network/tcpip/include/routines.h rename to drivers/network/tcpip/include/routines.h diff --git a/reactos/drivers/network/tcpip/include/tags.h b/drivers/network/tcpip/include/tags.h similarity index 100% rename from reactos/drivers/network/tcpip/include/tags.h rename to drivers/network/tcpip/include/tags.h diff --git a/reactos/drivers/network/tcpip/include/tcp.h b/drivers/network/tcpip/include/tcp.h similarity index 100% rename from reactos/drivers/network/tcpip/include/tcp.h rename to drivers/network/tcpip/include/tcp.h diff --git a/reactos/drivers/network/tcpip/include/tcpcore.h b/drivers/network/tcpip/include/tcpcore.h similarity index 100% rename from reactos/drivers/network/tcpip/include/tcpcore.h rename to drivers/network/tcpip/include/tcpcore.h diff --git a/reactos/drivers/network/tcpip/include/tcpdef.h b/drivers/network/tcpip/include/tcpdef.h similarity index 100% rename from reactos/drivers/network/tcpip/include/tcpdef.h rename to drivers/network/tcpip/include/tcpdef.h diff --git a/reactos/drivers/network/tcpip/include/tcpip.h b/drivers/network/tcpip/include/tcpip.h similarity index 100% rename from reactos/drivers/network/tcpip/include/tcpip.h rename to drivers/network/tcpip/include/tcpip.h diff --git a/reactos/drivers/network/tcpip/include/ticonsts.h b/drivers/network/tcpip/include/ticonsts.h similarity index 100% rename from reactos/drivers/network/tcpip/include/ticonsts.h rename to drivers/network/tcpip/include/ticonsts.h diff --git a/reactos/drivers/network/tcpip/include/tilists.h b/drivers/network/tcpip/include/tilists.h similarity index 100% rename from reactos/drivers/network/tcpip/include/tilists.h rename to drivers/network/tcpip/include/tilists.h diff --git a/reactos/drivers/network/tcpip/include/titypes.h b/drivers/network/tcpip/include/titypes.h similarity index 100% rename from reactos/drivers/network/tcpip/include/titypes.h rename to drivers/network/tcpip/include/titypes.h diff --git a/reactos/drivers/network/tcpip/include/transmit.h b/drivers/network/tcpip/include/transmit.h similarity index 100% rename from reactos/drivers/network/tcpip/include/transmit.h rename to drivers/network/tcpip/include/transmit.h diff --git a/reactos/drivers/network/tcpip/include/udp.h b/drivers/network/tcpip/include/udp.h similarity index 100% rename from reactos/drivers/network/tcpip/include/udp.h rename to drivers/network/tcpip/include/udp.h diff --git a/reactos/drivers/network/tcpip/include/wait.h b/drivers/network/tcpip/include/wait.h similarity index 100% rename from reactos/drivers/network/tcpip/include/wait.h rename to drivers/network/tcpip/include/wait.h diff --git a/reactos/drivers/network/tcpip/notes.txt b/drivers/network/tcpip/notes.txt similarity index 100% rename from reactos/drivers/network/tcpip/notes.txt rename to drivers/network/tcpip/notes.txt diff --git a/reactos/drivers/network/tcpip/readme.txt b/drivers/network/tcpip/readme.txt similarity index 100% rename from reactos/drivers/network/tcpip/readme.txt rename to drivers/network/tcpip/readme.txt diff --git a/reactos/drivers/network/tcpip/tcpip.rc b/drivers/network/tcpip/tcpip.rc similarity index 100% rename from reactos/drivers/network/tcpip/tcpip.rc rename to drivers/network/tcpip/tcpip.rc diff --git a/reactos/drivers/network/tcpip/tcpip.spec b/drivers/network/tcpip/tcpip.spec similarity index 100% rename from reactos/drivers/network/tcpip/tcpip.spec rename to drivers/network/tcpip/tcpip.spec diff --git a/reactos/drivers/network/tcpip/tcpip/SOURCES b/drivers/network/tcpip/tcpip/SOURCES similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/SOURCES rename to drivers/network/tcpip/tcpip/SOURCES diff --git a/reactos/drivers/network/tcpip/tcpip/ainfo.c b/drivers/network/tcpip/tcpip/ainfo.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/ainfo.c rename to drivers/network/tcpip/tcpip/ainfo.c diff --git a/reactos/drivers/network/tcpip/tcpip/buffer.c b/drivers/network/tcpip/tcpip/buffer.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/buffer.c rename to drivers/network/tcpip/tcpip/buffer.c diff --git a/reactos/drivers/network/tcpip/tcpip/dispatch.c b/drivers/network/tcpip/tcpip/dispatch.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/dispatch.c rename to drivers/network/tcpip/tcpip/dispatch.c diff --git a/reactos/drivers/network/tcpip/tcpip/fileobjs.c b/drivers/network/tcpip/tcpip/fileobjs.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/fileobjs.c rename to drivers/network/tcpip/tcpip/fileobjs.c diff --git a/reactos/drivers/network/tcpip/tcpip/iinfo.c b/drivers/network/tcpip/tcpip/iinfo.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/iinfo.c rename to drivers/network/tcpip/tcpip/iinfo.c diff --git a/reactos/drivers/network/tcpip/tcpip/info.c b/drivers/network/tcpip/tcpip/info.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/info.c rename to drivers/network/tcpip/tcpip/info.c diff --git a/reactos/drivers/network/tcpip/tcpip/lock.c b/drivers/network/tcpip/tcpip/lock.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/lock.c rename to drivers/network/tcpip/tcpip/lock.c diff --git a/reactos/drivers/network/tcpip/tcpip/main.c b/drivers/network/tcpip/tcpip/main.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/main.c rename to drivers/network/tcpip/tcpip/main.c diff --git a/reactos/drivers/network/tcpip/tcpip/mockbuffer.c b/drivers/network/tcpip/tcpip/mockbuffer.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/mockbuffer.c rename to drivers/network/tcpip/tcpip/mockbuffer.c diff --git a/reactos/drivers/network/tcpip/tcpip/mocklock.c b/drivers/network/tcpip/tcpip/mocklock.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/mocklock.c rename to drivers/network/tcpip/tcpip/mocklock.c diff --git a/reactos/drivers/network/tcpip/tcpip/mockpool.c b/drivers/network/tcpip/tcpip/mockpool.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/mockpool.c rename to drivers/network/tcpip/tcpip/mockpool.c diff --git a/reactos/drivers/network/tcpip/tcpip/mockwait.c b/drivers/network/tcpip/tcpip/mockwait.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/mockwait.c rename to drivers/network/tcpip/tcpip/mockwait.c diff --git a/reactos/drivers/network/tcpip/tcpip/ninfo.c b/drivers/network/tcpip/tcpip/ninfo.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/ninfo.c rename to drivers/network/tcpip/tcpip/ninfo.c diff --git a/reactos/drivers/network/tcpip/tcpip/proto.c b/drivers/network/tcpip/tcpip/proto.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/proto.c rename to drivers/network/tcpip/tcpip/proto.c diff --git a/reactos/drivers/network/tcpip/tcpip/resource.rc b/drivers/network/tcpip/tcpip/resource.rc similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/resource.rc rename to drivers/network/tcpip/tcpip/resource.rc diff --git a/reactos/drivers/network/tcpip/tcpip/tcpip.def b/drivers/network/tcpip/tcpip/tcpip.def similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/tcpip.def rename to drivers/network/tcpip/tcpip/tcpip.def diff --git a/reactos/drivers/network/tcpip/tcpip/tinfo.c b/drivers/network/tcpip/tcpip/tinfo.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/tinfo.c rename to drivers/network/tcpip/tcpip/tinfo.c diff --git a/reactos/drivers/network/tcpip/tcpip/wait.c b/drivers/network/tcpip/tcpip/wait.c similarity index 100% rename from reactos/drivers/network/tcpip/tcpip/wait.c rename to drivers/network/tcpip/tcpip/wait.c diff --git a/reactos/drivers/network/tcpip/tests/setup.c b/drivers/network/tcpip/tests/setup.c similarity index 100% rename from reactos/drivers/network/tcpip/tests/setup.c rename to drivers/network/tcpip/tests/setup.c diff --git a/reactos/drivers/network/tcpip/tests/stubs.tst b/drivers/network/tcpip/tests/stubs.tst similarity index 100% rename from reactos/drivers/network/tcpip/tests/stubs.tst rename to drivers/network/tcpip/tests/stubs.tst diff --git a/reactos/drivers/network/tcpip/tests/tests/ipreceive.c b/drivers/network/tcpip/tests/tests/ipreceive.c similarity index 100% rename from reactos/drivers/network/tcpip/tests/tests/ipreceive.c rename to drivers/network/tcpip/tests/tests/ipreceive.c diff --git a/reactos/drivers/network/tcpip/tests/tests/tigetprotocolnumber.c b/drivers/network/tcpip/tests/tests/tigetprotocolnumber.c similarity index 100% rename from reactos/drivers/network/tcpip/tests/tests/tigetprotocolnumber.c rename to drivers/network/tcpip/tests/tests/tigetprotocolnumber.c diff --git a/reactos/drivers/network/tdi/CMakeLists.txt b/drivers/network/tdi/CMakeLists.txt similarity index 100% rename from reactos/drivers/network/tdi/CMakeLists.txt rename to drivers/network/tdi/CMakeLists.txt diff --git a/reactos/drivers/network/tdi/cte/events.c b/drivers/network/tdi/cte/events.c similarity index 100% rename from reactos/drivers/network/tdi/cte/events.c rename to drivers/network/tdi/cte/events.c diff --git a/reactos/drivers/network/tdi/cte/string.c b/drivers/network/tdi/cte/string.c similarity index 100% rename from reactos/drivers/network/tdi/cte/string.c rename to drivers/network/tdi/cte/string.c diff --git a/reactos/drivers/network/tdi/cte/timer.c b/drivers/network/tdi/cte/timer.c similarity index 100% rename from reactos/drivers/network/tdi/cte/timer.c rename to drivers/network/tdi/cte/timer.c diff --git a/reactos/drivers/network/tdi/misc/main.c b/drivers/network/tdi/misc/main.c similarity index 100% rename from reactos/drivers/network/tdi/misc/main.c rename to drivers/network/tdi/misc/main.c diff --git a/reactos/drivers/network/tdi/misc/tdi.rc b/drivers/network/tdi/misc/tdi.rc similarity index 100% rename from reactos/drivers/network/tdi/misc/tdi.rc rename to drivers/network/tdi/misc/tdi.rc diff --git a/reactos/drivers/network/tdi/misc/tdi.spec b/drivers/network/tdi/misc/tdi.spec similarity index 100% rename from reactos/drivers/network/tdi/misc/tdi.spec rename to drivers/network/tdi/misc/tdi.spec diff --git a/reactos/drivers/network/tdi/precomp.h b/drivers/network/tdi/precomp.h similarity index 100% rename from reactos/drivers/network/tdi/precomp.h rename to drivers/network/tdi/precomp.h diff --git a/reactos/drivers/network/tdi/tdi/dereg.c b/drivers/network/tdi/tdi/dereg.c similarity index 100% rename from reactos/drivers/network/tdi/tdi/dereg.c rename to drivers/network/tdi/tdi/dereg.c diff --git a/reactos/drivers/network/tdi/tdi/handler.c b/drivers/network/tdi/tdi/handler.c similarity index 100% rename from reactos/drivers/network/tdi/tdi/handler.c rename to drivers/network/tdi/tdi/handler.c diff --git a/reactos/drivers/network/tdi/tdi/obsolete.c b/drivers/network/tdi/tdi/obsolete.c similarity index 100% rename from reactos/drivers/network/tdi/tdi/obsolete.c rename to drivers/network/tdi/tdi/obsolete.c diff --git a/reactos/drivers/network/tdi/tdi/stubs.c b/drivers/network/tdi/tdi/stubs.c similarity index 100% rename from reactos/drivers/network/tdi/tdi/stubs.c rename to drivers/network/tdi/tdi/stubs.c diff --git a/reactos/drivers/parallel/CMakeLists.txt b/drivers/parallel/CMakeLists.txt similarity index 100% rename from reactos/drivers/parallel/CMakeLists.txt rename to drivers/parallel/CMakeLists.txt diff --git a/reactos/drivers/parallel/parallel/CMakeLists.txt b/drivers/parallel/parallel/CMakeLists.txt similarity index 100% rename from reactos/drivers/parallel/parallel/CMakeLists.txt rename to drivers/parallel/parallel/CMakeLists.txt diff --git a/reactos/drivers/parallel/parallel/parallel.c b/drivers/parallel/parallel/parallel.c similarity index 100% rename from reactos/drivers/parallel/parallel/parallel.c rename to drivers/parallel/parallel/parallel.c diff --git a/reactos/drivers/parallel/parallel/parallel.h b/drivers/parallel/parallel/parallel.h similarity index 100% rename from reactos/drivers/parallel/parallel/parallel.h rename to drivers/parallel/parallel/parallel.h diff --git a/reactos/drivers/parallel/parallel/parallel.rc b/drivers/parallel/parallel/parallel.rc similarity index 100% rename from reactos/drivers/parallel/parallel/parallel.rc rename to drivers/parallel/parallel/parallel.rc diff --git a/reactos/drivers/sac/driver/chanmgr.c b/drivers/sac/driver/chanmgr.c similarity index 100% rename from reactos/drivers/sac/driver/chanmgr.c rename to drivers/sac/driver/chanmgr.c diff --git a/reactos/drivers/sac/driver/channel.c b/drivers/sac/driver/channel.c similarity index 100% rename from reactos/drivers/sac/driver/channel.c rename to drivers/sac/driver/channel.c diff --git a/reactos/drivers/sac/driver/cmdchan.c b/drivers/sac/driver/cmdchan.c similarity index 100% rename from reactos/drivers/sac/driver/cmdchan.c rename to drivers/sac/driver/cmdchan.c diff --git a/reactos/drivers/sac/driver/concmd.c b/drivers/sac/driver/concmd.c similarity index 100% rename from reactos/drivers/sac/driver/concmd.c rename to drivers/sac/driver/concmd.c diff --git a/reactos/drivers/sac/driver/conmgr.c b/drivers/sac/driver/conmgr.c similarity index 100% rename from reactos/drivers/sac/driver/conmgr.c rename to drivers/sac/driver/conmgr.c diff --git a/reactos/drivers/sac/driver/data.c b/drivers/sac/driver/data.c similarity index 100% rename from reactos/drivers/sac/driver/data.c rename to drivers/sac/driver/data.c diff --git a/reactos/drivers/sac/driver/dispatch.c b/drivers/sac/driver/dispatch.c similarity index 100% rename from reactos/drivers/sac/driver/dispatch.c rename to drivers/sac/driver/dispatch.c diff --git a/reactos/drivers/sac/driver/init.c b/drivers/sac/driver/init.c similarity index 100% rename from reactos/drivers/sac/driver/init.c rename to drivers/sac/driver/init.c diff --git a/reactos/drivers/sac/driver/memory.c b/drivers/sac/driver/memory.c similarity index 100% rename from reactos/drivers/sac/driver/memory.c rename to drivers/sac/driver/memory.c diff --git a/reactos/drivers/sac/driver/rawchan.c b/drivers/sac/driver/rawchan.c similarity index 100% rename from reactos/drivers/sac/driver/rawchan.c rename to drivers/sac/driver/rawchan.c diff --git a/reactos/drivers/sac/driver/sacdrv.h b/drivers/sac/driver/sacdrv.h similarity index 100% rename from reactos/drivers/sac/driver/sacdrv.h rename to drivers/sac/driver/sacdrv.h diff --git a/reactos/drivers/sac/driver/sacdrv.rc b/drivers/sac/driver/sacdrv.rc similarity index 100% rename from reactos/drivers/sac/driver/sacdrv.rc rename to drivers/sac/driver/sacdrv.rc diff --git a/reactos/drivers/sac/driver/util.c b/drivers/sac/driver/util.c similarity index 100% rename from reactos/drivers/sac/driver/util.c rename to drivers/sac/driver/util.c diff --git a/reactos/drivers/sac/driver/vtutf8chan.c b/drivers/sac/driver/vtutf8chan.c similarity index 100% rename from reactos/drivers/sac/driver/vtutf8chan.c rename to drivers/sac/driver/vtutf8chan.c diff --git a/reactos/drivers/serial/CMakeLists.txt b/drivers/serial/CMakeLists.txt similarity index 100% rename from reactos/drivers/serial/CMakeLists.txt rename to drivers/serial/CMakeLists.txt diff --git a/reactos/drivers/serial/serenum/CMakeLists.txt b/drivers/serial/serenum/CMakeLists.txt similarity index 100% rename from reactos/drivers/serial/serenum/CMakeLists.txt rename to drivers/serial/serenum/CMakeLists.txt diff --git a/reactos/drivers/serial/serenum/detect.c b/drivers/serial/serenum/detect.c similarity index 100% rename from reactos/drivers/serial/serenum/detect.c rename to drivers/serial/serenum/detect.c diff --git a/reactos/drivers/serial/serenum/fdo.c b/drivers/serial/serenum/fdo.c similarity index 100% rename from reactos/drivers/serial/serenum/fdo.c rename to drivers/serial/serenum/fdo.c diff --git a/reactos/drivers/serial/serenum/misc.c b/drivers/serial/serenum/misc.c similarity index 100% rename from reactos/drivers/serial/serenum/misc.c rename to drivers/serial/serenum/misc.c diff --git a/reactos/drivers/serial/serenum/pdo.c b/drivers/serial/serenum/pdo.c similarity index 100% rename from reactos/drivers/serial/serenum/pdo.c rename to drivers/serial/serenum/pdo.c diff --git a/reactos/drivers/serial/serenum/serenum.c b/drivers/serial/serenum/serenum.c similarity index 100% rename from reactos/drivers/serial/serenum/serenum.c rename to drivers/serial/serenum/serenum.c diff --git a/reactos/drivers/serial/serenum/serenum.h b/drivers/serial/serenum/serenum.h similarity index 100% rename from reactos/drivers/serial/serenum/serenum.h rename to drivers/serial/serenum/serenum.h diff --git a/reactos/drivers/serial/serenum/serenum.rc b/drivers/serial/serenum/serenum.rc similarity index 100% rename from reactos/drivers/serial/serenum/serenum.rc rename to drivers/serial/serenum/serenum.rc diff --git a/reactos/drivers/serial/serial/CMakeLists.txt b/drivers/serial/serial/CMakeLists.txt similarity index 100% rename from reactos/drivers/serial/serial/CMakeLists.txt rename to drivers/serial/serial/CMakeLists.txt diff --git a/reactos/drivers/serial/serial/circularbuffer.c b/drivers/serial/serial/circularbuffer.c similarity index 100% rename from reactos/drivers/serial/serial/circularbuffer.c rename to drivers/serial/serial/circularbuffer.c diff --git a/reactos/drivers/serial/serial/cleanup.c b/drivers/serial/serial/cleanup.c similarity index 100% rename from reactos/drivers/serial/serial/cleanup.c rename to drivers/serial/serial/cleanup.c diff --git a/reactos/drivers/serial/serial/close.c b/drivers/serial/serial/close.c similarity index 100% rename from reactos/drivers/serial/serial/close.c rename to drivers/serial/serial/close.c diff --git a/reactos/drivers/serial/serial/create.c b/drivers/serial/serial/create.c similarity index 100% rename from reactos/drivers/serial/serial/create.c rename to drivers/serial/serial/create.c diff --git a/reactos/drivers/serial/serial/devctrl.c b/drivers/serial/serial/devctrl.c similarity index 100% rename from reactos/drivers/serial/serial/devctrl.c rename to drivers/serial/serial/devctrl.c diff --git a/reactos/drivers/serial/serial/info.c b/drivers/serial/serial/info.c similarity index 100% rename from reactos/drivers/serial/serial/info.c rename to drivers/serial/serial/info.c diff --git a/reactos/drivers/serial/serial/legacy.c b/drivers/serial/serial/legacy.c similarity index 100% rename from reactos/drivers/serial/serial/legacy.c rename to drivers/serial/serial/legacy.c diff --git a/reactos/drivers/serial/serial/misc.c b/drivers/serial/serial/misc.c similarity index 100% rename from reactos/drivers/serial/serial/misc.c rename to drivers/serial/serial/misc.c diff --git a/reactos/drivers/serial/serial/pnp.c b/drivers/serial/serial/pnp.c similarity index 100% rename from reactos/drivers/serial/serial/pnp.c rename to drivers/serial/serial/pnp.c diff --git a/reactos/drivers/serial/serial/power.c b/drivers/serial/serial/power.c similarity index 100% rename from reactos/drivers/serial/serial/power.c rename to drivers/serial/serial/power.c diff --git a/reactos/drivers/serial/serial/rw.c b/drivers/serial/serial/rw.c similarity index 100% rename from reactos/drivers/serial/serial/rw.c rename to drivers/serial/serial/rw.c diff --git a/reactos/drivers/serial/serial/serial.c b/drivers/serial/serial/serial.c similarity index 100% rename from reactos/drivers/serial/serial/serial.c rename to drivers/serial/serial/serial.c diff --git a/reactos/drivers/serial/serial/serial.h b/drivers/serial/serial/serial.h similarity index 100% rename from reactos/drivers/serial/serial/serial.h rename to drivers/serial/serial/serial.h diff --git a/reactos/drivers/serial/serial/serial.rc b/drivers/serial/serial/serial.rc similarity index 100% rename from reactos/drivers/serial/serial/serial.rc rename to drivers/serial/serial/serial.rc diff --git a/reactos/drivers/setup/CMakeLists.txt b/drivers/setup/CMakeLists.txt similarity index 100% rename from reactos/drivers/setup/CMakeLists.txt rename to drivers/setup/CMakeLists.txt diff --git a/reactos/drivers/setup/blue/CMakeLists.txt b/drivers/setup/blue/CMakeLists.txt similarity index 100% rename from reactos/drivers/setup/blue/CMakeLists.txt rename to drivers/setup/blue/CMakeLists.txt diff --git a/reactos/drivers/setup/blue/blue.c b/drivers/setup/blue/blue.c similarity index 100% rename from reactos/drivers/setup/blue/blue.c rename to drivers/setup/blue/blue.c diff --git a/reactos/drivers/setup/blue/blue.h b/drivers/setup/blue/blue.h similarity index 100% rename from reactos/drivers/setup/blue/blue.h rename to drivers/setup/blue/blue.h diff --git a/reactos/drivers/setup/blue/blue.rc b/drivers/setup/blue/blue.rc similarity index 100% rename from reactos/drivers/setup/blue/blue.rc rename to drivers/setup/blue/blue.rc diff --git a/reactos/drivers/setup/blue/font.c b/drivers/setup/blue/font.c similarity index 100% rename from reactos/drivers/setup/blue/font.c rename to drivers/setup/blue/font.c diff --git a/reactos/drivers/storage/CMakeLists.txt b/drivers/storage/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/CMakeLists.txt rename to drivers/storage/CMakeLists.txt diff --git a/reactos/drivers/storage/class/CMakeLists.txt b/drivers/storage/class/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/class/CMakeLists.txt rename to drivers/storage/class/CMakeLists.txt diff --git a/reactos/drivers/storage/class/cdrom/CMakeLists.txt b/drivers/storage/class/cdrom/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/class/cdrom/CMakeLists.txt rename to drivers/storage/class/cdrom/CMakeLists.txt diff --git a/reactos/drivers/storage/class/cdrom/cdrom.c b/drivers/storage/class/cdrom/cdrom.c similarity index 100% rename from reactos/drivers/storage/class/cdrom/cdrom.c rename to drivers/storage/class/cdrom/cdrom.c diff --git a/reactos/drivers/storage/class/cdrom/cdrom.rc b/drivers/storage/class/cdrom/cdrom.rc similarity index 100% rename from reactos/drivers/storage/class/cdrom/cdrom.rc rename to drivers/storage/class/cdrom/cdrom.rc diff --git a/reactos/drivers/storage/class/cdrom/findscsi.c b/drivers/storage/class/cdrom/findscsi.c similarity index 100% rename from reactos/drivers/storage/class/cdrom/findscsi.c rename to drivers/storage/class/cdrom/findscsi.c diff --git a/reactos/drivers/storage/class/cdrom/license.txt b/drivers/storage/class/cdrom/license.txt similarity index 100% rename from reactos/drivers/storage/class/cdrom/license.txt rename to drivers/storage/class/cdrom/license.txt diff --git a/reactos/drivers/storage/class/cdrom/precomp.h b/drivers/storage/class/cdrom/precomp.h similarity index 100% rename from reactos/drivers/storage/class/cdrom/precomp.h rename to drivers/storage/class/cdrom/precomp.h diff --git a/reactos/drivers/storage/class/cdrom_new/CMakeLists.txt b/drivers/storage/class/cdrom_new/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/class/cdrom_new/CMakeLists.txt rename to drivers/storage/class/cdrom_new/CMakeLists.txt diff --git a/reactos/drivers/storage/class/cdrom_new/cdrom.c b/drivers/storage/class/cdrom_new/cdrom.c similarity index 100% rename from reactos/drivers/storage/class/cdrom_new/cdrom.c rename to drivers/storage/class/cdrom_new/cdrom.c diff --git a/reactos/drivers/storage/class/cdrom_new/cdrom.h b/drivers/storage/class/cdrom_new/cdrom.h similarity index 100% rename from reactos/drivers/storage/class/cdrom_new/cdrom.h rename to drivers/storage/class/cdrom_new/cdrom.h diff --git a/reactos/drivers/storage/class/cdrom_new/cdrom.inf b/drivers/storage/class/cdrom_new/cdrom.inf similarity index 100% rename from reactos/drivers/storage/class/cdrom_new/cdrom.inf rename to drivers/storage/class/cdrom_new/cdrom.inf diff --git a/reactos/drivers/storage/class/cdrom_new/data.c b/drivers/storage/class/cdrom_new/data.c similarity index 100% rename from reactos/drivers/storage/class/cdrom_new/data.c rename to drivers/storage/class/cdrom_new/data.c diff --git a/reactos/drivers/storage/class/cdrom_new/ioctl.c b/drivers/storage/class/cdrom_new/ioctl.c similarity index 100% rename from reactos/drivers/storage/class/cdrom_new/ioctl.c rename to drivers/storage/class/cdrom_new/ioctl.c diff --git a/reactos/drivers/storage/class/cdrom_new/mmc.c b/drivers/storage/class/cdrom_new/mmc.c similarity index 100% rename from reactos/drivers/storage/class/cdrom_new/mmc.c rename to drivers/storage/class/cdrom_new/mmc.c diff --git a/reactos/drivers/storage/class/cdrom_new/scsicdrm.rc b/drivers/storage/class/cdrom_new/scsicdrm.rc similarity index 100% rename from reactos/drivers/storage/class/cdrom_new/scsicdrm.rc rename to drivers/storage/class/cdrom_new/scsicdrm.rc diff --git a/reactos/drivers/storage/class/cdrom_new/sec.c b/drivers/storage/class/cdrom_new/sec.c similarity index 100% rename from reactos/drivers/storage/class/cdrom_new/sec.c rename to drivers/storage/class/cdrom_new/sec.c diff --git a/reactos/drivers/storage/class/cdrom_new/sec.h b/drivers/storage/class/cdrom_new/sec.h similarity index 100% rename from reactos/drivers/storage/class/cdrom_new/sec.h rename to drivers/storage/class/cdrom_new/sec.h diff --git a/reactos/drivers/storage/class/cdrom_new/trace.h b/drivers/storage/class/cdrom_new/trace.h similarity index 100% rename from reactos/drivers/storage/class/cdrom_new/trace.h rename to drivers/storage/class/cdrom_new/trace.h diff --git a/reactos/drivers/storage/class/class2/CMakeLists.txt b/drivers/storage/class/class2/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/class/class2/CMakeLists.txt rename to drivers/storage/class/class2/CMakeLists.txt diff --git a/reactos/drivers/storage/class/class2/class2.c b/drivers/storage/class/class2/class2.c similarity index 100% rename from reactos/drivers/storage/class/class2/class2.c rename to drivers/storage/class/class2/class2.c diff --git a/reactos/drivers/storage/class/class2/class2.rc b/drivers/storage/class/class2/class2.rc similarity index 100% rename from reactos/drivers/storage/class/class2/class2.rc rename to drivers/storage/class/class2/class2.rc diff --git a/reactos/drivers/storage/class/class2/class2.spec b/drivers/storage/class/class2/class2.spec similarity index 100% rename from reactos/drivers/storage/class/class2/class2.spec rename to drivers/storage/class/class2/class2.spec diff --git a/reactos/drivers/storage/class/class2/license.txt b/drivers/storage/class/class2/license.txt similarity index 100% rename from reactos/drivers/storage/class/class2/license.txt rename to drivers/storage/class/class2/license.txt diff --git a/reactos/drivers/storage/class/disk/CMakeLists.txt b/drivers/storage/class/disk/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/class/disk/CMakeLists.txt rename to drivers/storage/class/disk/CMakeLists.txt diff --git a/reactos/drivers/storage/class/disk/disk.c b/drivers/storage/class/disk/disk.c similarity index 100% rename from reactos/drivers/storage/class/disk/disk.c rename to drivers/storage/class/disk/disk.c diff --git a/reactos/drivers/storage/class/disk/disk.rc b/drivers/storage/class/disk/disk.rc similarity index 100% rename from reactos/drivers/storage/class/disk/disk.rc rename to drivers/storage/class/disk/disk.rc diff --git a/reactos/drivers/storage/class/disk/license.txt b/drivers/storage/class/disk/license.txt similarity index 100% rename from reactos/drivers/storage/class/disk/license.txt rename to drivers/storage/class/disk/license.txt diff --git a/reactos/drivers/storage/class/disk_new/CMakeLists.txt b/drivers/storage/class/disk_new/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/class/disk_new/CMakeLists.txt rename to drivers/storage/class/disk_new/CMakeLists.txt diff --git a/reactos/drivers/storage/class/disk_new/data.c b/drivers/storage/class/disk_new/data.c similarity index 100% rename from reactos/drivers/storage/class/disk_new/data.c rename to drivers/storage/class/disk_new/data.c diff --git a/reactos/drivers/storage/class/disk_new/disk.c b/drivers/storage/class/disk_new/disk.c similarity index 100% rename from reactos/drivers/storage/class/disk_new/disk.c rename to drivers/storage/class/disk_new/disk.c diff --git a/reactos/drivers/storage/class/disk_new/disk.h b/drivers/storage/class/disk_new/disk.h similarity index 100% rename from reactos/drivers/storage/class/disk_new/disk.h rename to drivers/storage/class/disk_new/disk.h diff --git a/reactos/drivers/storage/class/disk_new/disk.rc b/drivers/storage/class/disk_new/disk.rc similarity index 100% rename from reactos/drivers/storage/class/disk_new/disk.rc rename to drivers/storage/class/disk_new/disk.rc diff --git a/reactos/drivers/storage/class/disk_new/diskdev.inf b/drivers/storage/class/disk_new/diskdev.inf similarity index 100% rename from reactos/drivers/storage/class/disk_new/diskdev.inf rename to drivers/storage/class/disk_new/diskdev.inf diff --git a/reactos/drivers/storage/class/disk_new/diskwmi.c b/drivers/storage/class/disk_new/diskwmi.c similarity index 100% rename from reactos/drivers/storage/class/disk_new/diskwmi.c rename to drivers/storage/class/disk_new/diskwmi.c diff --git a/reactos/drivers/storage/class/disk_new/enum.c b/drivers/storage/class/disk_new/enum.c similarity index 100% rename from reactos/drivers/storage/class/disk_new/enum.c rename to drivers/storage/class/disk_new/enum.c diff --git a/reactos/drivers/storage/class/disk_new/geometry.c b/drivers/storage/class/disk_new/geometry.c similarity index 100% rename from reactos/drivers/storage/class/disk_new/geometry.c rename to drivers/storage/class/disk_new/geometry.c diff --git a/reactos/drivers/storage/class/disk_new/part.c b/drivers/storage/class/disk_new/part.c similarity index 100% rename from reactos/drivers/storage/class/disk_new/part.c rename to drivers/storage/class/disk_new/part.c diff --git a/reactos/drivers/storage/class/disk_new/pnp.c b/drivers/storage/class/disk_new/pnp.c similarity index 100% rename from reactos/drivers/storage/class/disk_new/pnp.c rename to drivers/storage/class/disk_new/pnp.c diff --git a/reactos/drivers/storage/class/include/class2.h b/drivers/storage/class/include/class2.h similarity index 100% rename from reactos/drivers/storage/class/include/class2.h rename to drivers/storage/class/include/class2.h diff --git a/reactos/drivers/storage/class/ramdisk/CMakeLists.txt b/drivers/storage/class/ramdisk/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/class/ramdisk/CMakeLists.txt rename to drivers/storage/class/ramdisk/CMakeLists.txt diff --git a/reactos/drivers/storage/class/ramdisk/ramdisk.c b/drivers/storage/class/ramdisk/ramdisk.c similarity index 100% rename from reactos/drivers/storage/class/ramdisk/ramdisk.c rename to drivers/storage/class/ramdisk/ramdisk.c diff --git a/reactos/drivers/storage/class/ramdisk/ramdisk.rc b/drivers/storage/class/ramdisk/ramdisk.rc similarity index 100% rename from reactos/drivers/storage/class/ramdisk/ramdisk.rc rename to drivers/storage/class/ramdisk/ramdisk.rc diff --git a/reactos/drivers/storage/classpnp/CMakeLists.txt b/drivers/storage/classpnp/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/classpnp/CMakeLists.txt rename to drivers/storage/classpnp/CMakeLists.txt diff --git a/reactos/drivers/storage/classpnp/autorun.c b/drivers/storage/classpnp/autorun.c similarity index 100% rename from reactos/drivers/storage/classpnp/autorun.c rename to drivers/storage/classpnp/autorun.c diff --git a/reactos/drivers/storage/classpnp/class.c b/drivers/storage/classpnp/class.c similarity index 100% rename from reactos/drivers/storage/classpnp/class.c rename to drivers/storage/classpnp/class.c diff --git a/reactos/drivers/storage/classpnp/class.rc b/drivers/storage/classpnp/class.rc similarity index 100% rename from reactos/drivers/storage/classpnp/class.rc rename to drivers/storage/classpnp/class.rc diff --git a/reactos/drivers/storage/classpnp/classp.h b/drivers/storage/classpnp/classp.h similarity index 100% rename from reactos/drivers/storage/classpnp/classp.h rename to drivers/storage/classpnp/classp.h diff --git a/reactos/drivers/storage/classpnp/classpnp.spec b/drivers/storage/classpnp/classpnp.spec similarity index 100% rename from reactos/drivers/storage/classpnp/classpnp.spec rename to drivers/storage/classpnp/classpnp.spec diff --git a/reactos/drivers/storage/classpnp/classwmi.c b/drivers/storage/classpnp/classwmi.c similarity index 100% rename from reactos/drivers/storage/classpnp/classwmi.c rename to drivers/storage/classpnp/classwmi.c diff --git a/reactos/drivers/storage/classpnp/clntirp.c b/drivers/storage/classpnp/clntirp.c similarity index 100% rename from reactos/drivers/storage/classpnp/clntirp.c rename to drivers/storage/classpnp/clntirp.c diff --git a/reactos/drivers/storage/classpnp/create.c b/drivers/storage/classpnp/create.c similarity index 100% rename from reactos/drivers/storage/classpnp/create.c rename to drivers/storage/classpnp/create.c diff --git a/reactos/drivers/storage/classpnp/data.c b/drivers/storage/classpnp/data.c similarity index 100% rename from reactos/drivers/storage/classpnp/data.c rename to drivers/storage/classpnp/data.c diff --git a/reactos/drivers/storage/classpnp/debug.c b/drivers/storage/classpnp/debug.c similarity index 100% rename from reactos/drivers/storage/classpnp/debug.c rename to drivers/storage/classpnp/debug.c diff --git a/reactos/drivers/storage/classpnp/debug.h b/drivers/storage/classpnp/debug.h similarity index 100% rename from reactos/drivers/storage/classpnp/debug.h rename to drivers/storage/classpnp/debug.h diff --git a/reactos/drivers/storage/classpnp/dictlib.c b/drivers/storage/classpnp/dictlib.c similarity index 100% rename from reactos/drivers/storage/classpnp/dictlib.c rename to drivers/storage/classpnp/dictlib.c diff --git a/reactos/drivers/storage/classpnp/lock.c b/drivers/storage/classpnp/lock.c similarity index 100% rename from reactos/drivers/storage/classpnp/lock.c rename to drivers/storage/classpnp/lock.c diff --git a/reactos/drivers/storage/classpnp/obsolete.c b/drivers/storage/classpnp/obsolete.c similarity index 100% rename from reactos/drivers/storage/classpnp/obsolete.c rename to drivers/storage/classpnp/obsolete.c diff --git a/reactos/drivers/storage/classpnp/power.c b/drivers/storage/classpnp/power.c similarity index 100% rename from reactos/drivers/storage/classpnp/power.c rename to drivers/storage/classpnp/power.c diff --git a/reactos/drivers/storage/classpnp/retry.c b/drivers/storage/classpnp/retry.c similarity index 100% rename from reactos/drivers/storage/classpnp/retry.c rename to drivers/storage/classpnp/retry.c diff --git a/reactos/drivers/storage/classpnp/utils.c b/drivers/storage/classpnp/utils.c similarity index 100% rename from reactos/drivers/storage/classpnp/utils.c rename to drivers/storage/classpnp/utils.c diff --git a/reactos/drivers/storage/classpnp/xferpkt.c b/drivers/storage/classpnp/xferpkt.c similarity index 100% rename from reactos/drivers/storage/classpnp/xferpkt.c rename to drivers/storage/classpnp/xferpkt.c diff --git a/reactos/drivers/storage/fdc/CMakeLists.txt b/drivers/storage/fdc/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/fdc/CMakeLists.txt rename to drivers/storage/fdc/CMakeLists.txt diff --git a/reactos/drivers/storage/fdc/fdc/CMakeLists.txt b/drivers/storage/fdc/fdc/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/fdc/fdc/CMakeLists.txt rename to drivers/storage/fdc/fdc/CMakeLists.txt diff --git a/reactos/drivers/storage/fdc/fdc/SOURCES b/drivers/storage/fdc/fdc/SOURCES similarity index 100% rename from reactos/drivers/storage/fdc/fdc/SOURCES rename to drivers/storage/fdc/fdc/SOURCES diff --git a/reactos/drivers/storage/floppy/CMakeLists.txt b/drivers/storage/floppy/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/floppy/CMakeLists.txt rename to drivers/storage/floppy/CMakeLists.txt diff --git a/reactos/drivers/storage/floppy/SOURCES b/drivers/storage/floppy/SOURCES similarity index 100% rename from reactos/drivers/storage/floppy/SOURCES rename to drivers/storage/floppy/SOURCES diff --git a/reactos/drivers/storage/floppy/csqrtns.c b/drivers/storage/floppy/csqrtns.c similarity index 100% rename from reactos/drivers/storage/floppy/csqrtns.c rename to drivers/storage/floppy/csqrtns.c diff --git a/reactos/drivers/storage/floppy/csqrtns.h b/drivers/storage/floppy/csqrtns.h similarity index 100% rename from reactos/drivers/storage/floppy/csqrtns.h rename to drivers/storage/floppy/csqrtns.h diff --git a/reactos/drivers/storage/floppy/floppy.c b/drivers/storage/floppy/floppy.c similarity index 100% rename from reactos/drivers/storage/floppy/floppy.c rename to drivers/storage/floppy/floppy.c diff --git a/reactos/drivers/storage/floppy/floppy.h b/drivers/storage/floppy/floppy.h similarity index 100% rename from reactos/drivers/storage/floppy/floppy.h rename to drivers/storage/floppy/floppy.h diff --git a/reactos/drivers/storage/floppy/floppy.rc b/drivers/storage/floppy/floppy.rc similarity index 100% rename from reactos/drivers/storage/floppy/floppy.rc rename to drivers/storage/floppy/floppy.rc diff --git a/reactos/drivers/storage/floppy/hardware.c b/drivers/storage/floppy/hardware.c similarity index 100% rename from reactos/drivers/storage/floppy/hardware.c rename to drivers/storage/floppy/hardware.c diff --git a/reactos/drivers/storage/floppy/hardware.h b/drivers/storage/floppy/hardware.h similarity index 100% rename from reactos/drivers/storage/floppy/hardware.h rename to drivers/storage/floppy/hardware.h diff --git a/reactos/drivers/storage/floppy/ioctl.c b/drivers/storage/floppy/ioctl.c similarity index 100% rename from reactos/drivers/storage/floppy/ioctl.c rename to drivers/storage/floppy/ioctl.c diff --git a/reactos/drivers/storage/floppy/ioctl.h b/drivers/storage/floppy/ioctl.h similarity index 100% rename from reactos/drivers/storage/floppy/ioctl.h rename to drivers/storage/floppy/ioctl.h diff --git a/reactos/drivers/storage/floppy/precomp.h b/drivers/storage/floppy/precomp.h similarity index 100% rename from reactos/drivers/storage/floppy/precomp.h rename to drivers/storage/floppy/precomp.h diff --git a/reactos/drivers/storage/floppy/readwrite.c b/drivers/storage/floppy/readwrite.c similarity index 100% rename from reactos/drivers/storage/floppy/readwrite.c rename to drivers/storage/floppy/readwrite.c diff --git a/reactos/drivers/storage/floppy/readwrite.h b/drivers/storage/floppy/readwrite.h similarity index 100% rename from reactos/drivers/storage/floppy/readwrite.h rename to drivers/storage/floppy/readwrite.h diff --git a/reactos/drivers/storage/ide/CMakeLists.txt b/drivers/storage/ide/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/ide/CMakeLists.txt rename to drivers/storage/ide/CMakeLists.txt diff --git a/reactos/drivers/storage/ide/atapi/CMakeLists.txt b/drivers/storage/ide/atapi/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/ide/atapi/CMakeLists.txt rename to drivers/storage/ide/atapi/CMakeLists.txt diff --git a/reactos/drivers/storage/ide/atapi/atapi.c b/drivers/storage/ide/atapi/atapi.c similarity index 100% rename from reactos/drivers/storage/ide/atapi/atapi.c rename to drivers/storage/ide/atapi/atapi.c diff --git a/reactos/drivers/storage/ide/atapi/atapi.h b/drivers/storage/ide/atapi/atapi.h similarity index 100% rename from reactos/drivers/storage/ide/atapi/atapi.h rename to drivers/storage/ide/atapi/atapi.h diff --git a/reactos/drivers/storage/ide/atapi/atapi.rc b/drivers/storage/ide/atapi/atapi.rc similarity index 100% rename from reactos/drivers/storage/ide/atapi/atapi.rc rename to drivers/storage/ide/atapi/atapi.rc diff --git a/reactos/drivers/storage/ide/atapi/license.txt b/drivers/storage/ide/atapi/license.txt similarity index 100% rename from reactos/drivers/storage/ide/atapi/license.txt rename to drivers/storage/ide/atapi/license.txt diff --git a/reactos/drivers/storage/ide/pciide/CMakeLists.txt b/drivers/storage/ide/pciide/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/ide/pciide/CMakeLists.txt rename to drivers/storage/ide/pciide/CMakeLists.txt diff --git a/reactos/drivers/storage/ide/pciide/pciide.c b/drivers/storage/ide/pciide/pciide.c similarity index 100% rename from reactos/drivers/storage/ide/pciide/pciide.c rename to drivers/storage/ide/pciide/pciide.c diff --git a/reactos/drivers/storage/ide/pciide/pciide.h b/drivers/storage/ide/pciide/pciide.h similarity index 100% rename from reactos/drivers/storage/ide/pciide/pciide.h rename to drivers/storage/ide/pciide/pciide.h diff --git a/reactos/drivers/storage/ide/pciide/pciide.rc b/drivers/storage/ide/pciide/pciide.rc similarity index 100% rename from reactos/drivers/storage/ide/pciide/pciide.rc rename to drivers/storage/ide/pciide/pciide.rc diff --git a/reactos/drivers/storage/ide/pciidex/CMakeLists.txt b/drivers/storage/ide/pciidex/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/ide/pciidex/CMakeLists.txt rename to drivers/storage/ide/pciidex/CMakeLists.txt diff --git a/reactos/drivers/storage/ide/pciidex/fdo.c b/drivers/storage/ide/pciidex/fdo.c similarity index 100% rename from reactos/drivers/storage/ide/pciidex/fdo.c rename to drivers/storage/ide/pciidex/fdo.c diff --git a/reactos/drivers/storage/ide/pciidex/miniport.c b/drivers/storage/ide/pciidex/miniport.c similarity index 100% rename from reactos/drivers/storage/ide/pciidex/miniport.c rename to drivers/storage/ide/pciidex/miniport.c diff --git a/reactos/drivers/storage/ide/pciidex/misc.c b/drivers/storage/ide/pciidex/misc.c similarity index 100% rename from reactos/drivers/storage/ide/pciidex/misc.c rename to drivers/storage/ide/pciidex/misc.c diff --git a/reactos/drivers/storage/ide/pciidex/pciidex.c b/drivers/storage/ide/pciidex/pciidex.c similarity index 100% rename from reactos/drivers/storage/ide/pciidex/pciidex.c rename to drivers/storage/ide/pciidex/pciidex.c diff --git a/reactos/drivers/storage/ide/pciidex/pciidex.h b/drivers/storage/ide/pciidex/pciidex.h similarity index 100% rename from reactos/drivers/storage/ide/pciidex/pciidex.h rename to drivers/storage/ide/pciidex/pciidex.h diff --git a/reactos/drivers/storage/ide/pciidex/pciidex.rc b/drivers/storage/ide/pciidex/pciidex.rc similarity index 100% rename from reactos/drivers/storage/ide/pciidex/pciidex.rc rename to drivers/storage/ide/pciidex/pciidex.rc diff --git a/reactos/drivers/storage/ide/pciidex/pciidex.spec b/drivers/storage/ide/pciidex/pciidex.spec similarity index 100% rename from reactos/drivers/storage/ide/pciidex/pciidex.spec rename to drivers/storage/ide/pciidex/pciidex.spec diff --git a/reactos/drivers/storage/ide/pciidex/pdo.c b/drivers/storage/ide/pciidex/pdo.c similarity index 100% rename from reactos/drivers/storage/ide/pciidex/pdo.c rename to drivers/storage/ide/pciidex/pdo.c diff --git a/reactos/drivers/storage/ide/uniata/CMakeLists.txt b/drivers/storage/ide/uniata/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/ide/uniata/CMakeLists.txt rename to drivers/storage/ide/uniata/CMakeLists.txt diff --git a/reactos/drivers/storage/ide/uniata/atapi.h b/drivers/storage/ide/uniata/atapi.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/atapi.h rename to drivers/storage/ide/uniata/atapi.h diff --git a/reactos/drivers/storage/ide/uniata/badblock.h b/drivers/storage/ide/uniata/badblock.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/badblock.h rename to drivers/storage/ide/uniata/badblock.h diff --git a/reactos/drivers/storage/ide/uniata/bm_devs.h b/drivers/storage/ide/uniata/bm_devs.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/bm_devs.h rename to drivers/storage/ide/uniata/bm_devs.h diff --git a/reactos/drivers/storage/ide/uniata/bsmaster.h b/drivers/storage/ide/uniata/bsmaster.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/bsmaster.h rename to drivers/storage/ide/uniata/bsmaster.h diff --git a/reactos/drivers/storage/ide/uniata/config.h b/drivers/storage/ide/uniata/config.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/config.h rename to drivers/storage/ide/uniata/config.h diff --git a/reactos/drivers/storage/ide/uniata/id_ata.cpp b/drivers/storage/ide/uniata/id_ata.cpp similarity index 100% rename from reactos/drivers/storage/ide/uniata/id_ata.cpp rename to drivers/storage/ide/uniata/id_ata.cpp diff --git a/reactos/drivers/storage/ide/uniata/id_badblock.cpp b/drivers/storage/ide/uniata/id_badblock.cpp similarity index 100% rename from reactos/drivers/storage/ide/uniata/id_badblock.cpp rename to drivers/storage/ide/uniata/id_badblock.cpp diff --git a/reactos/drivers/storage/ide/uniata/id_dma.cpp b/drivers/storage/ide/uniata/id_dma.cpp similarity index 100% rename from reactos/drivers/storage/ide/uniata/id_dma.cpp rename to drivers/storage/ide/uniata/id_dma.cpp diff --git a/reactos/drivers/storage/ide/uniata/id_init.cpp b/drivers/storage/ide/uniata/id_init.cpp similarity index 100% rename from reactos/drivers/storage/ide/uniata/id_init.cpp rename to drivers/storage/ide/uniata/id_init.cpp diff --git a/reactos/drivers/storage/ide/uniata/id_probe.cpp b/drivers/storage/ide/uniata/id_probe.cpp similarity index 100% rename from reactos/drivers/storage/ide/uniata/id_probe.cpp rename to drivers/storage/ide/uniata/id_probe.cpp diff --git a/reactos/drivers/storage/ide/uniata/id_queue.cpp b/drivers/storage/ide/uniata/id_queue.cpp similarity index 100% rename from reactos/drivers/storage/ide/uniata/id_queue.cpp rename to drivers/storage/ide/uniata/id_queue.cpp diff --git a/reactos/drivers/storage/ide/uniata/id_queue.h b/drivers/storage/ide/uniata/id_queue.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/id_queue.h rename to drivers/storage/ide/uniata/id_queue.h diff --git a/reactos/drivers/storage/ide/uniata/id_sata.cpp b/drivers/storage/ide/uniata/id_sata.cpp similarity index 100% rename from reactos/drivers/storage/ide/uniata/id_sata.cpp rename to drivers/storage/ide/uniata/id_sata.cpp diff --git a/reactos/drivers/storage/ide/uniata/id_sata.h b/drivers/storage/ide/uniata/id_sata.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/id_sata.h rename to drivers/storage/ide/uniata/id_sata.h diff --git a/reactos/drivers/storage/ide/uniata/idedma.def b/drivers/storage/ide/uniata/idedma.def similarity index 100% rename from reactos/drivers/storage/ide/uniata/idedma.def rename to drivers/storage/ide/uniata/idedma.def diff --git a/reactos/drivers/storage/ide/uniata/idedma.rc b/drivers/storage/ide/uniata/idedma.rc similarity index 100% rename from reactos/drivers/storage/ide/uniata/idedma.rc rename to drivers/storage/ide/uniata/idedma.rc diff --git a/reactos/drivers/storage/ide/uniata/inc/CrNtDecl.h b/drivers/storage/ide/uniata/inc/CrNtDecl.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/inc/CrNtDecl.h rename to drivers/storage/ide/uniata/inc/CrNtDecl.h diff --git a/reactos/drivers/storage/ide/uniata/inc/CrNtStubs.h b/drivers/storage/ide/uniata/inc/CrNtStubs.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/inc/CrNtStubs.h rename to drivers/storage/ide/uniata/inc/CrNtStubs.h diff --git a/reactos/drivers/storage/ide/uniata/inc/CrossNt.h b/drivers/storage/ide/uniata/inc/CrossNt.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/inc/CrossNt.h rename to drivers/storage/ide/uniata/inc/CrossNt.h diff --git a/reactos/drivers/storage/ide/uniata/inc/PostDbgMesg.h b/drivers/storage/ide/uniata/inc/PostDbgMesg.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/inc/PostDbgMesg.h rename to drivers/storage/ide/uniata/inc/PostDbgMesg.h diff --git a/reactos/drivers/storage/ide/uniata/inc/misc.h b/drivers/storage/ide/uniata/inc/misc.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/inc/misc.h rename to drivers/storage/ide/uniata/inc/misc.h diff --git a/reactos/drivers/storage/ide/uniata/inc/rwlock.h b/drivers/storage/ide/uniata/inc/rwlock.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/inc/rwlock.h rename to drivers/storage/ide/uniata/inc/rwlock.h diff --git a/reactos/drivers/storage/ide/uniata/ntddk_ex.h b/drivers/storage/ide/uniata/ntddk_ex.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/ntddk_ex.h rename to drivers/storage/ide/uniata/ntddk_ex.h diff --git a/reactos/drivers/storage/ide/uniata/ntddscsi.h b/drivers/storage/ide/uniata/ntddscsi.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/ntddscsi.h rename to drivers/storage/ide/uniata/ntddscsi.h diff --git a/reactos/drivers/storage/ide/uniata/ros_glue/ros_glue.cpp b/drivers/storage/ide/uniata/ros_glue/ros_glue.cpp similarity index 100% rename from reactos/drivers/storage/ide/uniata/ros_glue/ros_glue.cpp rename to drivers/storage/ide/uniata/ros_glue/ros_glue.cpp diff --git a/reactos/drivers/storage/ide/uniata/scsi.h b/drivers/storage/ide/uniata/scsi.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/scsi.h rename to drivers/storage/ide/uniata/scsi.h diff --git a/reactos/drivers/storage/ide/uniata/srb.h b/drivers/storage/ide/uniata/srb.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/srb.h rename to drivers/storage/ide/uniata/srb.h diff --git a/reactos/drivers/storage/ide/uniata/stdafx.h b/drivers/storage/ide/uniata/stdafx.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/stdafx.h rename to drivers/storage/ide/uniata/stdafx.h diff --git a/reactos/drivers/storage/ide/uniata/todo.txt b/drivers/storage/ide/uniata/todo.txt similarity index 100% rename from reactos/drivers/storage/ide/uniata/todo.txt rename to drivers/storage/ide/uniata/todo.txt diff --git a/reactos/drivers/storage/ide/uniata/tools.h b/drivers/storage/ide/uniata/tools.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/tools.h rename to drivers/storage/ide/uniata/tools.h diff --git a/reactos/drivers/storage/ide/uniata/uata_ctl.h b/drivers/storage/ide/uniata/uata_ctl.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/uata_ctl.h rename to drivers/storage/ide/uniata/uata_ctl.h diff --git a/reactos/drivers/storage/ide/uniata/uniata_ver.h b/drivers/storage/ide/uniata/uniata_ver.h similarity index 100% rename from reactos/drivers/storage/ide/uniata/uniata_ver.h rename to drivers/storage/ide/uniata/uniata_ver.h diff --git a/reactos/drivers/storage/ide/uniata/warningfixes.diff b/drivers/storage/ide/uniata/warningfixes.diff similarity index 100% rename from reactos/drivers/storage/ide/uniata/warningfixes.diff rename to drivers/storage/ide/uniata/warningfixes.diff diff --git a/reactos/drivers/storage/inc/class.h b/drivers/storage/inc/class.h similarity index 100% rename from reactos/drivers/storage/inc/class.h rename to drivers/storage/inc/class.h diff --git a/reactos/drivers/storage/inc/ide.h b/drivers/storage/inc/ide.h similarity index 100% rename from reactos/drivers/storage/inc/ide.h rename to drivers/storage/inc/ide.h diff --git a/reactos/drivers/storage/inc/ideuser.h b/drivers/storage/inc/ideuser.h similarity index 100% rename from reactos/drivers/storage/inc/ideuser.h rename to drivers/storage/inc/ideuser.h diff --git a/reactos/drivers/storage/inc/physlogi.h b/drivers/storage/inc/physlogi.h similarity index 100% rename from reactos/drivers/storage/inc/physlogi.h rename to drivers/storage/inc/physlogi.h diff --git a/reactos/drivers/storage/inc/rbc.h b/drivers/storage/inc/rbc.h similarity index 100% rename from reactos/drivers/storage/inc/rbc.h rename to drivers/storage/inc/rbc.h diff --git a/reactos/drivers/storage/inc/tape.h b/drivers/storage/inc/tape.h similarity index 100% rename from reactos/drivers/storage/inc/tape.h rename to drivers/storage/inc/tape.h diff --git a/reactos/drivers/storage/port/CMakeLists.txt b/drivers/storage/port/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/port/CMakeLists.txt rename to drivers/storage/port/CMakeLists.txt diff --git a/reactos/drivers/storage/port/buslogic/BT958.bmf b/drivers/storage/port/buslogic/BT958.bmf similarity index 100% rename from reactos/drivers/storage/port/buslogic/BT958.bmf rename to drivers/storage/port/buslogic/BT958.bmf diff --git a/reactos/drivers/storage/port/buslogic/BT958.mof b/drivers/storage/port/buslogic/BT958.mof similarity index 100% rename from reactos/drivers/storage/port/buslogic/BT958.mof rename to drivers/storage/port/buslogic/BT958.mof diff --git a/reactos/drivers/storage/port/buslogic/BT958dt.h b/drivers/storage/port/buslogic/BT958dt.h similarity index 100% rename from reactos/drivers/storage/port/buslogic/BT958dt.h rename to drivers/storage/port/buslogic/BT958dt.h diff --git a/reactos/drivers/storage/port/buslogic/BusLogic958.c b/drivers/storage/port/buslogic/BusLogic958.c similarity index 100% rename from reactos/drivers/storage/port/buslogic/BusLogic958.c rename to drivers/storage/port/buslogic/BusLogic958.c diff --git a/reactos/drivers/storage/port/buslogic/BusLogic958.h b/drivers/storage/port/buslogic/BusLogic958.h similarity index 100% rename from reactos/drivers/storage/port/buslogic/BusLogic958.h rename to drivers/storage/port/buslogic/BusLogic958.h diff --git a/reactos/drivers/storage/port/buslogic/BusLogic958.rc b/drivers/storage/port/buslogic/BusLogic958.rc similarity index 100% rename from reactos/drivers/storage/port/buslogic/BusLogic958.rc rename to drivers/storage/port/buslogic/BusLogic958.rc diff --git a/reactos/drivers/storage/port/buslogic/CMakeLists.txt b/drivers/storage/port/buslogic/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/port/buslogic/CMakeLists.txt rename to drivers/storage/port/buslogic/CMakeLists.txt diff --git a/reactos/drivers/storage/port/buslogic/Log.c b/drivers/storage/port/buslogic/Log.c similarity index 100% rename from reactos/drivers/storage/port/buslogic/Log.c rename to drivers/storage/port/buslogic/Log.c diff --git a/reactos/drivers/storage/port/buslogic/Log.h b/drivers/storage/port/buslogic/Log.h similarity index 100% rename from reactos/drivers/storage/port/buslogic/Log.h rename to drivers/storage/port/buslogic/Log.h diff --git a/reactos/drivers/storage/port/buslogic/README.ReactOS b/drivers/storage/port/buslogic/README.ReactOS similarity index 100% rename from reactos/drivers/storage/port/buslogic/README.ReactOS rename to drivers/storage/port/buslogic/README.ReactOS diff --git a/reactos/drivers/storage/port/buslogic/makefile.inc b/drivers/storage/port/buslogic/makefile.inc similarity index 100% rename from reactos/drivers/storage/port/buslogic/makefile.inc rename to drivers/storage/port/buslogic/makefile.inc diff --git a/reactos/drivers/storage/port/buslogic/makefile.original b/drivers/storage/port/buslogic/makefile.original similarity index 100% rename from reactos/drivers/storage/port/buslogic/makefile.original rename to drivers/storage/port/buslogic/makefile.original diff --git a/reactos/drivers/storage/port/buslogic/resource.h b/drivers/storage/port/buslogic/resource.h similarity index 100% rename from reactos/drivers/storage/port/buslogic/resource.h rename to drivers/storage/port/buslogic/resource.h diff --git a/reactos/drivers/storage/port/buslogic/sources b/drivers/storage/port/buslogic/sources similarity index 100% rename from reactos/drivers/storage/port/buslogic/sources rename to drivers/storage/port/buslogic/sources diff --git a/reactos/drivers/storage/port/buslogic/wmi.c b/drivers/storage/port/buslogic/wmi.c similarity index 100% rename from reactos/drivers/storage/port/buslogic/wmi.c rename to drivers/storage/port/buslogic/wmi.c diff --git a/reactos/drivers/storage/scsiport/CMakeLists.txt b/drivers/storage/scsiport/CMakeLists.txt similarity index 100% rename from reactos/drivers/storage/scsiport/CMakeLists.txt rename to drivers/storage/scsiport/CMakeLists.txt diff --git a/reactos/drivers/storage/scsiport/precomp.h b/drivers/storage/scsiport/precomp.h similarity index 100% rename from reactos/drivers/storage/scsiport/precomp.h rename to drivers/storage/scsiport/precomp.h diff --git a/reactos/drivers/storage/scsiport/scsiport.c b/drivers/storage/scsiport/scsiport.c similarity index 100% rename from reactos/drivers/storage/scsiport/scsiport.c rename to drivers/storage/scsiport/scsiport.c diff --git a/reactos/drivers/storage/scsiport/scsiport.rc b/drivers/storage/scsiport/scsiport.rc similarity index 100% rename from reactos/drivers/storage/scsiport/scsiport.rc rename to drivers/storage/scsiport/scsiport.rc diff --git a/reactos/drivers/storage/scsiport/scsiport.spec b/drivers/storage/scsiport/scsiport.spec similarity index 100% rename from reactos/drivers/storage/scsiport/scsiport.spec rename to drivers/storage/scsiport/scsiport.spec diff --git a/reactos/drivers/storage/scsiport/scsiport_int.h b/drivers/storage/scsiport/scsiport_int.h similarity index 100% rename from reactos/drivers/storage/scsiport/scsiport_int.h rename to drivers/storage/scsiport/scsiport_int.h diff --git a/reactos/drivers/storage/scsiport/stubs.c b/drivers/storage/scsiport/stubs.c similarity index 100% rename from reactos/drivers/storage/scsiport/stubs.c rename to drivers/storage/scsiport/stubs.c diff --git a/reactos/drivers/usb/CMakeLists.txt b/drivers/usb/CMakeLists.txt similarity index 100% rename from reactos/drivers/usb/CMakeLists.txt rename to drivers/usb/CMakeLists.txt diff --git a/reactos/drivers/usb/usbccgp/CMakeLists.txt b/drivers/usb/usbccgp/CMakeLists.txt similarity index 100% rename from reactos/drivers/usb/usbccgp/CMakeLists.txt rename to drivers/usb/usbccgp/CMakeLists.txt diff --git a/reactos/drivers/usb/usbccgp/descriptor.c b/drivers/usb/usbccgp/descriptor.c similarity index 100% rename from reactos/drivers/usb/usbccgp/descriptor.c rename to drivers/usb/usbccgp/descriptor.c diff --git a/reactos/drivers/usb/usbccgp/fdo.c b/drivers/usb/usbccgp/fdo.c similarity index 100% rename from reactos/drivers/usb/usbccgp/fdo.c rename to drivers/usb/usbccgp/fdo.c diff --git a/reactos/drivers/usb/usbccgp/function.c b/drivers/usb/usbccgp/function.c similarity index 100% rename from reactos/drivers/usb/usbccgp/function.c rename to drivers/usb/usbccgp/function.c diff --git a/reactos/drivers/usb/usbccgp/misc.c b/drivers/usb/usbccgp/misc.c similarity index 100% rename from reactos/drivers/usb/usbccgp/misc.c rename to drivers/usb/usbccgp/misc.c diff --git a/reactos/drivers/usb/usbccgp/pdo.c b/drivers/usb/usbccgp/pdo.c similarity index 100% rename from reactos/drivers/usb/usbccgp/pdo.c rename to drivers/usb/usbccgp/pdo.c diff --git a/reactos/drivers/usb/usbccgp/usbccgp.c b/drivers/usb/usbccgp/usbccgp.c similarity index 100% rename from reactos/drivers/usb/usbccgp/usbccgp.c rename to drivers/usb/usbccgp/usbccgp.c diff --git a/reactos/drivers/usb/usbccgp/usbccgp.h b/drivers/usb/usbccgp/usbccgp.h similarity index 100% rename from reactos/drivers/usb/usbccgp/usbccgp.h rename to drivers/usb/usbccgp/usbccgp.h diff --git a/reactos/drivers/usb/usbccgp/usbccgp.rc b/drivers/usb/usbccgp/usbccgp.rc similarity index 100% rename from reactos/drivers/usb/usbccgp/usbccgp.rc rename to drivers/usb/usbccgp/usbccgp.rc diff --git a/reactos/drivers/usb/usbd/CMakeLists.txt b/drivers/usb/usbd/CMakeLists.txt similarity index 100% rename from reactos/drivers/usb/usbd/CMakeLists.txt rename to drivers/usb/usbd/CMakeLists.txt diff --git a/reactos/drivers/usb/usbd/test.c b/drivers/usb/usbd/test.c similarity index 100% rename from reactos/drivers/usb/usbd/test.c rename to drivers/usb/usbd/test.c diff --git a/reactos/drivers/usb/usbd/usbd.c b/drivers/usb/usbd/usbd.c similarity index 100% rename from reactos/drivers/usb/usbd/usbd.c rename to drivers/usb/usbd/usbd.c diff --git a/reactos/drivers/usb/usbd/usbd.rc b/drivers/usb/usbd/usbd.rc similarity index 100% rename from reactos/drivers/usb/usbd/usbd.rc rename to drivers/usb/usbd/usbd.rc diff --git a/reactos/drivers/usb/usbd/usbd.spec b/drivers/usb/usbd/usbd.spec similarity index 100% rename from reactos/drivers/usb/usbd/usbd.spec rename to drivers/usb/usbd/usbd.spec diff --git a/reactos/drivers/usb/usbehci/CMakeLists.txt b/drivers/usb/usbehci/CMakeLists.txt similarity index 100% rename from reactos/drivers/usb/usbehci/CMakeLists.txt rename to drivers/usb/usbehci/CMakeLists.txt diff --git a/reactos/drivers/usb/usbehci/hardware.cpp b/drivers/usb/usbehci/hardware.cpp similarity index 100% rename from reactos/drivers/usb/usbehci/hardware.cpp rename to drivers/usb/usbehci/hardware.cpp diff --git a/reactos/drivers/usb/usbehci/hardware.h b/drivers/usb/usbehci/hardware.h similarity index 100% rename from reactos/drivers/usb/usbehci/hardware.h rename to drivers/usb/usbehci/hardware.h diff --git a/reactos/drivers/usb/usbehci/interfaces.h b/drivers/usb/usbehci/interfaces.h similarity index 100% rename from reactos/drivers/usb/usbehci/interfaces.h rename to drivers/usb/usbehci/interfaces.h diff --git a/reactos/drivers/usb/usbehci/usb_queue.cpp b/drivers/usb/usbehci/usb_queue.cpp similarity index 100% rename from reactos/drivers/usb/usbehci/usb_queue.cpp rename to drivers/usb/usbehci/usb_queue.cpp diff --git a/reactos/drivers/usb/usbehci/usb_request.cpp b/drivers/usb/usbehci/usb_request.cpp similarity index 100% rename from reactos/drivers/usb/usbehci/usb_request.cpp rename to drivers/usb/usbehci/usb_request.cpp diff --git a/reactos/drivers/usb/usbehci/usbehci.cpp b/drivers/usb/usbehci/usbehci.cpp similarity index 100% rename from reactos/drivers/usb/usbehci/usbehci.cpp rename to drivers/usb/usbehci/usbehci.cpp diff --git a/reactos/drivers/usb/usbehci/usbehci.h b/drivers/usb/usbehci/usbehci.h similarity index 100% rename from reactos/drivers/usb/usbehci/usbehci.h rename to drivers/usb/usbehci/usbehci.h diff --git a/reactos/drivers/usb/usbehci/usbehci.rc b/drivers/usb/usbehci/usbehci.rc similarity index 100% rename from reactos/drivers/usb/usbehci/usbehci.rc rename to drivers/usb/usbehci/usbehci.rc diff --git a/reactos/drivers/usb/usbhub/CMakeLists.txt b/drivers/usb/usbhub/CMakeLists.txt similarity index 100% rename from reactos/drivers/usb/usbhub/CMakeLists.txt rename to drivers/usb/usbhub/CMakeLists.txt diff --git a/reactos/drivers/usb/usbhub/fdo.c b/drivers/usb/usbhub/fdo.c similarity index 100% rename from reactos/drivers/usb/usbhub/fdo.c rename to drivers/usb/usbhub/fdo.c diff --git a/reactos/drivers/usb/usbhub/hub_fdo.c b/drivers/usb/usbhub/hub_fdo.c similarity index 100% rename from reactos/drivers/usb/usbhub/hub_fdo.c rename to drivers/usb/usbhub/hub_fdo.c diff --git a/reactos/drivers/usb/usbhub/misc.c b/drivers/usb/usbhub/misc.c similarity index 100% rename from reactos/drivers/usb/usbhub/misc.c rename to drivers/usb/usbhub/misc.c diff --git a/reactos/drivers/usb/usbhub/pdo.c b/drivers/usb/usbhub/pdo.c similarity index 100% rename from reactos/drivers/usb/usbhub/pdo.c rename to drivers/usb/usbhub/pdo.c diff --git a/reactos/drivers/usb/usbhub/usbhub.c b/drivers/usb/usbhub/usbhub.c similarity index 100% rename from reactos/drivers/usb/usbhub/usbhub.c rename to drivers/usb/usbhub/usbhub.c diff --git a/reactos/drivers/usb/usbhub/usbhub.h b/drivers/usb/usbhub/usbhub.h similarity index 100% rename from reactos/drivers/usb/usbhub/usbhub.h rename to drivers/usb/usbhub/usbhub.h diff --git a/reactos/drivers/usb/usbhub/usbhub.rc b/drivers/usb/usbhub/usbhub.rc similarity index 100% rename from reactos/drivers/usb/usbhub/usbhub.rc rename to drivers/usb/usbhub/usbhub.rc diff --git a/reactos/drivers/usb/usbohci/CMakeLists.txt b/drivers/usb/usbohci/CMakeLists.txt similarity index 100% rename from reactos/drivers/usb/usbohci/CMakeLists.txt rename to drivers/usb/usbohci/CMakeLists.txt diff --git a/reactos/drivers/usb/usbohci/hardware.cpp b/drivers/usb/usbohci/hardware.cpp similarity index 100% rename from reactos/drivers/usb/usbohci/hardware.cpp rename to drivers/usb/usbohci/hardware.cpp diff --git a/reactos/drivers/usb/usbohci/hardware.h b/drivers/usb/usbohci/hardware.h similarity index 100% rename from reactos/drivers/usb/usbohci/hardware.h rename to drivers/usb/usbohci/hardware.h diff --git a/reactos/drivers/usb/usbohci/interfaces.h b/drivers/usb/usbohci/interfaces.h similarity index 100% rename from reactos/drivers/usb/usbohci/interfaces.h rename to drivers/usb/usbohci/interfaces.h diff --git a/reactos/drivers/usb/usbohci/usb_queue.cpp b/drivers/usb/usbohci/usb_queue.cpp similarity index 100% rename from reactos/drivers/usb/usbohci/usb_queue.cpp rename to drivers/usb/usbohci/usb_queue.cpp diff --git a/reactos/drivers/usb/usbohci/usb_request.cpp b/drivers/usb/usbohci/usb_request.cpp similarity index 100% rename from reactos/drivers/usb/usbohci/usb_request.cpp rename to drivers/usb/usbohci/usb_request.cpp diff --git a/reactos/drivers/usb/usbohci/usbohci.cpp b/drivers/usb/usbohci/usbohci.cpp similarity index 100% rename from reactos/drivers/usb/usbohci/usbohci.cpp rename to drivers/usb/usbohci/usbohci.cpp diff --git a/reactos/drivers/usb/usbohci/usbohci.h b/drivers/usb/usbohci/usbohci.h similarity index 100% rename from reactos/drivers/usb/usbohci/usbohci.h rename to drivers/usb/usbohci/usbohci.h diff --git a/reactos/drivers/usb/usbohci/usbohci.rc b/drivers/usb/usbohci/usbohci.rc similarity index 100% rename from reactos/drivers/usb/usbohci/usbohci.rc rename to drivers/usb/usbohci/usbohci.rc diff --git a/reactos/drivers/usb/usbstor/CMakeLists.txt b/drivers/usb/usbstor/CMakeLists.txt similarity index 100% rename from reactos/drivers/usb/usbstor/CMakeLists.txt rename to drivers/usb/usbstor/CMakeLists.txt diff --git a/reactos/drivers/usb/usbstor/descriptor.c b/drivers/usb/usbstor/descriptor.c similarity index 100% rename from reactos/drivers/usb/usbstor/descriptor.c rename to drivers/usb/usbstor/descriptor.c diff --git a/reactos/drivers/usb/usbstor/disk.c b/drivers/usb/usbstor/disk.c similarity index 100% rename from reactos/drivers/usb/usbstor/disk.c rename to drivers/usb/usbstor/disk.c diff --git a/reactos/drivers/usb/usbstor/error.c b/drivers/usb/usbstor/error.c similarity index 100% rename from reactos/drivers/usb/usbstor/error.c rename to drivers/usb/usbstor/error.c diff --git a/reactos/drivers/usb/usbstor/fdo.c b/drivers/usb/usbstor/fdo.c similarity index 100% rename from reactos/drivers/usb/usbstor/fdo.c rename to drivers/usb/usbstor/fdo.c diff --git a/reactos/drivers/usb/usbstor/misc.c b/drivers/usb/usbstor/misc.c similarity index 100% rename from reactos/drivers/usb/usbstor/misc.c rename to drivers/usb/usbstor/misc.c diff --git a/reactos/drivers/usb/usbstor/pdo.c b/drivers/usb/usbstor/pdo.c similarity index 100% rename from reactos/drivers/usb/usbstor/pdo.c rename to drivers/usb/usbstor/pdo.c diff --git a/reactos/drivers/usb/usbstor/queue.c b/drivers/usb/usbstor/queue.c similarity index 100% rename from reactos/drivers/usb/usbstor/queue.c rename to drivers/usb/usbstor/queue.c diff --git a/reactos/drivers/usb/usbstor/scsi.c b/drivers/usb/usbstor/scsi.c similarity index 100% rename from reactos/drivers/usb/usbstor/scsi.c rename to drivers/usb/usbstor/scsi.c diff --git a/reactos/drivers/usb/usbstor/usbstor.c b/drivers/usb/usbstor/usbstor.c similarity index 100% rename from reactos/drivers/usb/usbstor/usbstor.c rename to drivers/usb/usbstor/usbstor.c diff --git a/reactos/drivers/usb/usbstor/usbstor.h b/drivers/usb/usbstor/usbstor.h similarity index 100% rename from reactos/drivers/usb/usbstor/usbstor.h rename to drivers/usb/usbstor/usbstor.h diff --git a/reactos/drivers/usb/usbstor/usbstor.rc b/drivers/usb/usbstor/usbstor.rc similarity index 100% rename from reactos/drivers/usb/usbstor/usbstor.rc rename to drivers/usb/usbstor/usbstor.rc diff --git a/reactos/drivers/usb/usbuhci/CMakeLists.txt b/drivers/usb/usbuhci/CMakeLists.txt similarity index 100% rename from reactos/drivers/usb/usbuhci/CMakeLists.txt rename to drivers/usb/usbuhci/CMakeLists.txt diff --git a/reactos/drivers/usb/usbuhci/hardware.cpp b/drivers/usb/usbuhci/hardware.cpp similarity index 100% rename from reactos/drivers/usb/usbuhci/hardware.cpp rename to drivers/usb/usbuhci/hardware.cpp diff --git a/reactos/drivers/usb/usbuhci/hardware.h b/drivers/usb/usbuhci/hardware.h similarity index 100% rename from reactos/drivers/usb/usbuhci/hardware.h rename to drivers/usb/usbuhci/hardware.h diff --git a/reactos/drivers/usb/usbuhci/interfaces.h b/drivers/usb/usbuhci/interfaces.h similarity index 100% rename from reactos/drivers/usb/usbuhci/interfaces.h rename to drivers/usb/usbuhci/interfaces.h diff --git a/reactos/drivers/usb/usbuhci/usb_queue.cpp b/drivers/usb/usbuhci/usb_queue.cpp similarity index 100% rename from reactos/drivers/usb/usbuhci/usb_queue.cpp rename to drivers/usb/usbuhci/usb_queue.cpp diff --git a/reactos/drivers/usb/usbuhci/usb_request.cpp b/drivers/usb/usbuhci/usb_request.cpp similarity index 100% rename from reactos/drivers/usb/usbuhci/usb_request.cpp rename to drivers/usb/usbuhci/usb_request.cpp diff --git a/reactos/drivers/usb/usbuhci/usbuhci.cpp b/drivers/usb/usbuhci/usbuhci.cpp similarity index 100% rename from reactos/drivers/usb/usbuhci/usbuhci.cpp rename to drivers/usb/usbuhci/usbuhci.cpp diff --git a/reactos/drivers/usb/usbuhci/usbuhci.h b/drivers/usb/usbuhci/usbuhci.h similarity index 100% rename from reactos/drivers/usb/usbuhci/usbuhci.h rename to drivers/usb/usbuhci/usbuhci.h diff --git a/reactos/drivers/usb/usbuhci/usbuhci.rc b/drivers/usb/usbuhci/usbuhci.rc similarity index 100% rename from reactos/drivers/usb/usbuhci/usbuhci.rc rename to drivers/usb/usbuhci/usbuhci.rc diff --git a/reactos/drivers/wdm/CMakeLists.txt b/drivers/wdm/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/CMakeLists.txt rename to drivers/wdm/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/CMakeLists.txt b/drivers/wdm/audio/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/audio/CMakeLists.txt rename to drivers/wdm/audio/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/backpln/CMakeLists.txt b/drivers/wdm/audio/backpln/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/audio/backpln/CMakeLists.txt rename to drivers/wdm/audio/backpln/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/backpln/audio_test/CMakeLists.txt b/drivers/wdm/audio/backpln/audio_test/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/audio/backpln/audio_test/CMakeLists.txt rename to drivers/wdm/audio/backpln/audio_test/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/backpln/audio_test/audio_test.c b/drivers/wdm/audio/backpln/audio_test/audio_test.c similarity index 100% rename from reactos/drivers/wdm/audio/backpln/audio_test/audio_test.c rename to drivers/wdm/audio/backpln/audio_test/audio_test.c diff --git a/reactos/drivers/wdm/audio/backpln/portcls/CMakeLists.txt b/drivers/wdm/audio/backpln/portcls/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/CMakeLists.txt rename to drivers/wdm/audio/backpln/portcls/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/backpln/portcls/adapter.cpp b/drivers/wdm/audio/backpln/portcls/adapter.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/adapter.cpp rename to drivers/wdm/audio/backpln/portcls/adapter.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/api.cpp b/drivers/wdm/audio/backpln/portcls/api.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/api.cpp rename to drivers/wdm/audio/backpln/portcls/api.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/connection.cpp b/drivers/wdm/audio/backpln/portcls/connection.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/connection.cpp rename to drivers/wdm/audio/backpln/portcls/connection.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/dispatcher.cpp b/drivers/wdm/audio/backpln/portcls/dispatcher.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/dispatcher.cpp rename to drivers/wdm/audio/backpln/portcls/dispatcher.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/dll.cpp b/drivers/wdm/audio/backpln/portcls/dll.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/dll.cpp rename to drivers/wdm/audio/backpln/portcls/dll.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/dma_slave.cpp b/drivers/wdm/audio/backpln/portcls/dma_slave.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/dma_slave.cpp rename to drivers/wdm/audio/backpln/portcls/dma_slave.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/drm.cpp b/drivers/wdm/audio/backpln/portcls/drm.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/drm.cpp rename to drivers/wdm/audio/backpln/portcls/drm.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/drm_port.cpp b/drivers/wdm/audio/backpln/portcls/drm_port.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/drm_port.cpp rename to drivers/wdm/audio/backpln/portcls/drm_port.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/filter_dmus.cpp b/drivers/wdm/audio/backpln/portcls/filter_dmus.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/filter_dmus.cpp rename to drivers/wdm/audio/backpln/portcls/filter_dmus.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/filter_topology.cpp b/drivers/wdm/audio/backpln/portcls/filter_topology.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/filter_topology.cpp rename to drivers/wdm/audio/backpln/portcls/filter_topology.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/filter_wavecyclic.cpp b/drivers/wdm/audio/backpln/portcls/filter_wavecyclic.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/filter_wavecyclic.cpp rename to drivers/wdm/audio/backpln/portcls/filter_wavecyclic.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/filter_wavepci.cpp b/drivers/wdm/audio/backpln/portcls/filter_wavepci.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/filter_wavepci.cpp rename to drivers/wdm/audio/backpln/portcls/filter_wavepci.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/filter_wavert.cpp b/drivers/wdm/audio/backpln/portcls/filter_wavert.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/filter_wavert.cpp rename to drivers/wdm/audio/backpln/portcls/filter_wavert.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/guids.cpp b/drivers/wdm/audio/backpln/portcls/guids.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/guids.cpp rename to drivers/wdm/audio/backpln/portcls/guids.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/interfaces.hpp b/drivers/wdm/audio/backpln/portcls/interfaces.hpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/interfaces.hpp rename to drivers/wdm/audio/backpln/portcls/interfaces.hpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/interrupt.cpp b/drivers/wdm/audio/backpln/portcls/interrupt.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/interrupt.cpp rename to drivers/wdm/audio/backpln/portcls/interrupt.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/irp.cpp b/drivers/wdm/audio/backpln/portcls/irp.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/irp.cpp rename to drivers/wdm/audio/backpln/portcls/irp.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/irpstream.cpp b/drivers/wdm/audio/backpln/portcls/irpstream.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/irpstream.cpp rename to drivers/wdm/audio/backpln/portcls/irpstream.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/miniport.cpp b/drivers/wdm/audio/backpln/portcls/miniport.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/miniport.cpp rename to drivers/wdm/audio/backpln/portcls/miniport.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/miniport_dmus.cpp b/drivers/wdm/audio/backpln/portcls/miniport_dmus.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/miniport_dmus.cpp rename to drivers/wdm/audio/backpln/portcls/miniport_dmus.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/miniport_fmsynth.cpp b/drivers/wdm/audio/backpln/portcls/miniport_fmsynth.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/miniport_fmsynth.cpp rename to drivers/wdm/audio/backpln/portcls/miniport_fmsynth.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/pin_dmus.cpp b/drivers/wdm/audio/backpln/portcls/pin_dmus.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/pin_dmus.cpp rename to drivers/wdm/audio/backpln/portcls/pin_dmus.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp b/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp rename to drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.cpp b/drivers/wdm/audio/backpln/portcls/pin_wavepci.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.cpp rename to drivers/wdm/audio/backpln/portcls/pin_wavepci.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/pin_wavert.cpp b/drivers/wdm/audio/backpln/portcls/pin_wavert.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/pin_wavert.cpp rename to drivers/wdm/audio/backpln/portcls/pin_wavert.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/pool.cpp b/drivers/wdm/audio/backpln/portcls/pool.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/pool.cpp rename to drivers/wdm/audio/backpln/portcls/pool.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/port.cpp b/drivers/wdm/audio/backpln/portcls/port.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/port.cpp rename to drivers/wdm/audio/backpln/portcls/port.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/port_dmus.cpp b/drivers/wdm/audio/backpln/portcls/port_dmus.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/port_dmus.cpp rename to drivers/wdm/audio/backpln/portcls/port_dmus.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/port_topology.cpp b/drivers/wdm/audio/backpln/portcls/port_topology.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/port_topology.cpp rename to drivers/wdm/audio/backpln/portcls/port_topology.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/port_wavecyclic.cpp b/drivers/wdm/audio/backpln/portcls/port_wavecyclic.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/port_wavecyclic.cpp rename to drivers/wdm/audio/backpln/portcls/port_wavecyclic.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/port_wavepci.cpp b/drivers/wdm/audio/backpln/portcls/port_wavepci.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/port_wavepci.cpp rename to drivers/wdm/audio/backpln/portcls/port_wavepci.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/port_wavert.cpp b/drivers/wdm/audio/backpln/portcls/port_wavert.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/port_wavert.cpp rename to drivers/wdm/audio/backpln/portcls/port_wavert.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/port_wavertstream.cpp b/drivers/wdm/audio/backpln/portcls/port_wavertstream.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/port_wavertstream.cpp rename to drivers/wdm/audio/backpln/portcls/port_wavertstream.cpp diff --git a/reactos/drivers/multimedia/portcls.NEW/portcls.rc b/drivers/wdm/audio/backpln/portcls/portcls.rc similarity index 100% rename from reactos/drivers/multimedia/portcls.NEW/portcls.rc rename to drivers/wdm/audio/backpln/portcls/portcls.rc diff --git a/reactos/drivers/wdm/audio/backpln/portcls/portcls.spec b/drivers/wdm/audio/backpln/portcls/portcls.spec similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/portcls.spec rename to drivers/wdm/audio/backpln/portcls/portcls.spec diff --git a/reactos/drivers/wdm/audio/backpln/portcls/power.cpp b/drivers/wdm/audio/backpln/portcls/power.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/power.cpp rename to drivers/wdm/audio/backpln/portcls/power.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/private.hpp b/drivers/wdm/audio/backpln/portcls/private.hpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/private.hpp rename to drivers/wdm/audio/backpln/portcls/private.hpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/propertyhandler.cpp b/drivers/wdm/audio/backpln/portcls/propertyhandler.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/propertyhandler.cpp rename to drivers/wdm/audio/backpln/portcls/propertyhandler.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/purecall.cpp b/drivers/wdm/audio/backpln/portcls/purecall.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/purecall.cpp rename to drivers/wdm/audio/backpln/portcls/purecall.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/registry.cpp b/drivers/wdm/audio/backpln/portcls/registry.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/registry.cpp rename to drivers/wdm/audio/backpln/portcls/registry.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/resource.cpp b/drivers/wdm/audio/backpln/portcls/resource.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/resource.cpp rename to drivers/wdm/audio/backpln/portcls/resource.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/service_group.cpp b/drivers/wdm/audio/backpln/portcls/service_group.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/service_group.cpp rename to drivers/wdm/audio/backpln/portcls/service_group.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/undoc.cpp b/drivers/wdm/audio/backpln/portcls/undoc.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/undoc.cpp rename to drivers/wdm/audio/backpln/portcls/undoc.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/unregister.cpp b/drivers/wdm/audio/backpln/portcls/unregister.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/unregister.cpp rename to drivers/wdm/audio/backpln/portcls/unregister.cpp diff --git a/reactos/drivers/wdm/audio/backpln/portcls/version.cpp b/drivers/wdm/audio/backpln/portcls/version.cpp similarity index 100% rename from reactos/drivers/wdm/audio/backpln/portcls/version.cpp rename to drivers/wdm/audio/backpln/portcls/version.cpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/CHANGELOG.txt b/drivers/wdm/audio/drivers/CMIDriver/CHANGELOG.txt similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/CHANGELOG.txt rename to drivers/wdm/audio/drivers/CMIDriver/CHANGELOG.txt diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/CM8738-x32-WaveRT.inf b/drivers/wdm/audio/drivers/CMIDriver/CM8738-x32-WaveRT.inf similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/CM8738-x32-WaveRT.inf rename to drivers/wdm/audio/drivers/CMIDriver/CM8738-x32-WaveRT.inf diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/CM8738-x32.inf b/drivers/wdm/audio/drivers/CMIDriver/CM8738-x32.inf similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/CM8738-x32.inf rename to drivers/wdm/audio/drivers/CMIDriver/CM8738-x32.inf diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/CM8738-x64-WaveRT.inf b/drivers/wdm/audio/drivers/CMIDriver/CM8738-x64-WaveRT.inf similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/CM8738-x64-WaveRT.inf rename to drivers/wdm/audio/drivers/CMIDriver/CM8738-x64-WaveRT.inf diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/CM8738-x64.inf b/drivers/wdm/audio/drivers/CMIDriver/CM8738-x64.inf similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/CM8738-x64.inf rename to drivers/wdm/audio/drivers/CMIDriver/CM8738-x64.inf diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/adapter.cpp b/drivers/wdm/audio/drivers/CMIDriver/adapter.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/adapter.cpp rename to drivers/wdm/audio/drivers/CMIDriver/adapter.cpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/adapter.hpp b/drivers/wdm/audio/drivers/CMIDriver/adapter.hpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/adapter.hpp rename to drivers/wdm/audio/drivers/CMIDriver/adapter.hpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/main.cpp b/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/main.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/main.cpp rename to drivers/wdm/audio/drivers/CMIDriver/cmicontrol/main.cpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/main.h b/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/main.h similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/main.h rename to drivers/wdm/audio/drivers/CMIDriver/cmicontrol/main.h diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/makefile b/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/makefile similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/makefile rename to drivers/wdm/audio/drivers/CMIDriver/cmicontrol/makefile diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/resource.h b/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/resource.h similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/resource.h rename to drivers/wdm/audio/drivers/CMIDriver/cmicontrol/resource.h diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/sources b/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/sources similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/sources rename to drivers/wdm/audio/drivers/CMIDriver/cmicontrol/sources diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.aps b/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.aps similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.aps rename to drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.aps diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.ico b/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.ico similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.ico rename to drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.ico diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.ico-license.txt b/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.ico-license.txt similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.ico-license.txt rename to drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.ico-license.txt diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.rc b/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.rc similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.rc rename to drivers/wdm/audio/drivers/CMIDriver/cmicontrol/window.rc diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cmipci.rc b/drivers/wdm/audio/drivers/CMIDriver/cmipci.rc similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cmipci.rc rename to drivers/wdm/audio/drivers/CMIDriver/cmipci.rc diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cmireg.hpp b/drivers/wdm/audio/drivers/CMIDriver/cmireg.hpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cmireg.hpp rename to drivers/wdm/audio/drivers/CMIDriver/cmireg.hpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/common.cpp b/drivers/wdm/audio/drivers/CMIDriver/common.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/common.cpp rename to drivers/wdm/audio/drivers/CMIDriver/common.cpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/common.hpp b/drivers/wdm/audio/drivers/CMIDriver/common.hpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/common.hpp rename to drivers/wdm/audio/drivers/CMIDriver/common.hpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.cpp b/drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.cpp rename to drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.cpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.def b/drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.def similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.def rename to drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.def diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.rc b/drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.rc similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.rc rename to drivers/wdm/audio/drivers/CMIDriver/cpl/cmicpl.rc diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/makefile b/drivers/wdm/audio/drivers/CMIDriver/cpl/makefile similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/makefile rename to drivers/wdm/audio/drivers/CMIDriver/cpl/makefile diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/resource.h b/drivers/wdm/audio/drivers/CMIDriver/cpl/resource.h similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/resource.h rename to drivers/wdm/audio/drivers/CMIDriver/cpl/resource.h diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/sources b/drivers/wdm/audio/drivers/CMIDriver/cpl/sources similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/cpl/sources rename to drivers/wdm/audio/drivers/CMIDriver/cpl/sources diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/debug.hpp b/drivers/wdm/audio/drivers/CMIDriver/debug.hpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/debug.hpp rename to drivers/wdm/audio/drivers/CMIDriver/debug.hpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/installer/main.cpp b/drivers/wdm/audio/drivers/CMIDriver/installer/main.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/installer/main.cpp rename to drivers/wdm/audio/drivers/CMIDriver/installer/main.cpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/installer/main.h b/drivers/wdm/audio/drivers/CMIDriver/installer/main.h similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/installer/main.h rename to drivers/wdm/audio/drivers/CMIDriver/installer/main.h diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/installer/makefile b/drivers/wdm/audio/drivers/CMIDriver/installer/makefile similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/installer/makefile rename to drivers/wdm/audio/drivers/CMIDriver/installer/makefile diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/installer/resource.h b/drivers/wdm/audio/drivers/CMIDriver/installer/resource.h similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/installer/resource.h rename to drivers/wdm/audio/drivers/CMIDriver/installer/resource.h diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/installer/sources b/drivers/wdm/audio/drivers/CMIDriver/installer/sources similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/installer/sources rename to drivers/wdm/audio/drivers/CMIDriver/installer/sources diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/installer/window.rc b/drivers/wdm/audio/drivers/CMIDriver/installer/window.rc similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/installer/window.rc rename to drivers/wdm/audio/drivers/CMIDriver/installer/window.rc diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/interfaces.hpp b/drivers/wdm/audio/drivers/CMIDriver/interfaces.hpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/interfaces.hpp rename to drivers/wdm/audio/drivers/CMIDriver/interfaces.hpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/mintopo.cpp b/drivers/wdm/audio/drivers/CMIDriver/mintopo.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/mintopo.cpp rename to drivers/wdm/audio/drivers/CMIDriver/mintopo.cpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/mintopo.hpp b/drivers/wdm/audio/drivers/CMIDriver/mintopo.hpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/mintopo.hpp rename to drivers/wdm/audio/drivers/CMIDriver/mintopo.hpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/mintopotables.hpp b/drivers/wdm/audio/drivers/CMIDriver/mintopotables.hpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/mintopotables.hpp rename to drivers/wdm/audio/drivers/CMIDriver/mintopotables.hpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/minwave.cpp b/drivers/wdm/audio/drivers/CMIDriver/minwave.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/minwave.cpp rename to drivers/wdm/audio/drivers/CMIDriver/minwave.cpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/minwave.hpp b/drivers/wdm/audio/drivers/CMIDriver/minwave.hpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/minwave.hpp rename to drivers/wdm/audio/drivers/CMIDriver/minwave.hpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/minwavetables.hpp b/drivers/wdm/audio/drivers/CMIDriver/minwavetables.hpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/minwavetables.hpp rename to drivers/wdm/audio/drivers/CMIDriver/minwavetables.hpp diff --git a/reactos/drivers/wdm/audio/drivers/CMIDriver/property.h b/drivers/wdm/audio/drivers/CMIDriver/property.h similarity index 100% rename from reactos/drivers/wdm/audio/drivers/CMIDriver/property.h rename to drivers/wdm/audio/drivers/CMIDriver/property.h diff --git a/reactos/drivers/wdm/audio/drivers/mpu401/adapter.cpp b/drivers/wdm/audio/drivers/mpu401/adapter.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/mpu401/adapter.cpp rename to drivers/wdm/audio/drivers/mpu401/adapter.cpp diff --git a/reactos/drivers/wdm/audio/drivers/mpu401/mpu401.rc b/drivers/wdm/audio/drivers/mpu401/mpu401.rc similarity index 100% rename from reactos/drivers/wdm/audio/drivers/mpu401/mpu401.rc rename to drivers/wdm/audio/drivers/mpu401/mpu401.rc diff --git a/reactos/drivers/wdm/audio/drivers/sb16/adapter.cpp b/drivers/wdm/audio/drivers/sb16/adapter.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/sb16/adapter.cpp rename to drivers/wdm/audio/drivers/sb16/adapter.cpp diff --git a/reactos/drivers/wdm/audio/drivers/sb16/main.cpp b/drivers/wdm/audio/drivers/sb16/main.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/sb16/main.cpp rename to drivers/wdm/audio/drivers/sb16/main.cpp diff --git a/reactos/drivers/wdm/audio/drivers/sb16/sb16.h b/drivers/wdm/audio/drivers/sb16/sb16.h similarity index 100% rename from reactos/drivers/wdm/audio/drivers/sb16/sb16.h rename to drivers/wdm/audio/drivers/sb16/sb16.h diff --git a/reactos/drivers/wdm/audio/drivers/sb16/stdunk.cpp b/drivers/wdm/audio/drivers/sb16/stdunk.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drivers/sb16/stdunk.cpp rename to drivers/wdm/audio/drivers/sb16/stdunk.cpp diff --git a/reactos/drivers/wdm/audio/drm/CMakeLists.txt b/drivers/wdm/audio/drm/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/audio/drm/CMakeLists.txt rename to drivers/wdm/audio/drm/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/drm/drmk/CMakeLists.txt b/drivers/wdm/audio/drm/drmk/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/audio/drm/drmk/CMakeLists.txt rename to drivers/wdm/audio/drm/drmk/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/drm/drmk/drmk.rc b/drivers/wdm/audio/drm/drmk/drmk.rc similarity index 100% rename from reactos/drivers/wdm/audio/drm/drmk/drmk.rc rename to drivers/wdm/audio/drm/drmk/drmk.rc diff --git a/reactos/drivers/wdm/audio/drm/drmk/drmk.spec b/drivers/wdm/audio/drm/drmk/drmk.spec similarity index 100% rename from reactos/drivers/wdm/audio/drm/drmk/drmk.spec rename to drivers/wdm/audio/drm/drmk/drmk.spec diff --git a/reactos/drivers/wdm/audio/drm/drmk/stubs.cpp b/drivers/wdm/audio/drm/drmk/stubs.cpp similarity index 100% rename from reactos/drivers/wdm/audio/drm/drmk/stubs.cpp rename to drivers/wdm/audio/drm/drmk/stubs.cpp diff --git a/reactos/drivers/wdm/audio/filters/CMakeLists.txt b/drivers/wdm/audio/filters/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/audio/filters/CMakeLists.txt rename to drivers/wdm/audio/filters/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/filters/kmixer/CMakeLists.txt b/drivers/wdm/audio/filters/kmixer/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/audio/filters/kmixer/CMakeLists.txt rename to drivers/wdm/audio/filters/kmixer/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/filters/kmixer/filter.c b/drivers/wdm/audio/filters/kmixer/filter.c similarity index 100% rename from reactos/drivers/wdm/audio/filters/kmixer/filter.c rename to drivers/wdm/audio/filters/kmixer/filter.c diff --git a/reactos/drivers/wdm/audio/filters/kmixer/kmixer.c b/drivers/wdm/audio/filters/kmixer/kmixer.c similarity index 100% rename from reactos/drivers/wdm/audio/filters/kmixer/kmixer.c rename to drivers/wdm/audio/filters/kmixer/kmixer.c diff --git a/reactos/drivers/wdm/audio/filters/kmixer/kmixer.h b/drivers/wdm/audio/filters/kmixer/kmixer.h similarity index 100% rename from reactos/drivers/wdm/audio/filters/kmixer/kmixer.h rename to drivers/wdm/audio/filters/kmixer/kmixer.h diff --git a/reactos/drivers/wdm/audio/filters/kmixer/pin.c b/drivers/wdm/audio/filters/kmixer/pin.c similarity index 100% rename from reactos/drivers/wdm/audio/filters/kmixer/pin.c rename to drivers/wdm/audio/filters/kmixer/pin.c diff --git a/reactos/drivers/wdm/audio/filters/splitter/filter.c b/drivers/wdm/audio/filters/splitter/filter.c similarity index 100% rename from reactos/drivers/wdm/audio/filters/splitter/filter.c rename to drivers/wdm/audio/filters/splitter/filter.c diff --git a/reactos/drivers/wdm/audio/filters/splitter/pin.c b/drivers/wdm/audio/filters/splitter/pin.c similarity index 100% rename from reactos/drivers/wdm/audio/filters/splitter/pin.c rename to drivers/wdm/audio/filters/splitter/pin.c diff --git a/reactos/drivers/wdm/audio/filters/splitter/precomp.h b/drivers/wdm/audio/filters/splitter/precomp.h similarity index 100% rename from reactos/drivers/wdm/audio/filters/splitter/precomp.h rename to drivers/wdm/audio/filters/splitter/precomp.h diff --git a/reactos/drivers/wdm/audio/filters/splitter/splitter.c b/drivers/wdm/audio/filters/splitter/splitter.c similarity index 100% rename from reactos/drivers/wdm/audio/filters/splitter/splitter.c rename to drivers/wdm/audio/filters/splitter/splitter.c diff --git a/reactos/drivers/wdm/audio/legacy/CMakeLists.txt b/drivers/wdm/audio/legacy/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/audio/legacy/CMakeLists.txt rename to drivers/wdm/audio/legacy/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/legacy/stream/control.c b/drivers/wdm/audio/legacy/stream/control.c similarity index 100% rename from reactos/drivers/wdm/audio/legacy/stream/control.c rename to drivers/wdm/audio/legacy/stream/control.c diff --git a/reactos/drivers/wdm/audio/legacy/stream/dll.c b/drivers/wdm/audio/legacy/stream/dll.c similarity index 100% rename from reactos/drivers/wdm/audio/legacy/stream/dll.c rename to drivers/wdm/audio/legacy/stream/dll.c diff --git a/reactos/drivers/wdm/audio/legacy/stream/driver.c b/drivers/wdm/audio/legacy/stream/driver.c similarity index 100% rename from reactos/drivers/wdm/audio/legacy/stream/driver.c rename to drivers/wdm/audio/legacy/stream/driver.c diff --git a/reactos/drivers/wdm/audio/legacy/stream/filter.c b/drivers/wdm/audio/legacy/stream/filter.c similarity index 100% rename from reactos/drivers/wdm/audio/legacy/stream/filter.c rename to drivers/wdm/audio/legacy/stream/filter.c diff --git a/reactos/drivers/wdm/audio/legacy/stream/helper.c b/drivers/wdm/audio/legacy/stream/helper.c similarity index 100% rename from reactos/drivers/wdm/audio/legacy/stream/helper.c rename to drivers/wdm/audio/legacy/stream/helper.c diff --git a/reactos/drivers/wdm/audio/legacy/stream/pnp.c b/drivers/wdm/audio/legacy/stream/pnp.c similarity index 100% rename from reactos/drivers/wdm/audio/legacy/stream/pnp.c rename to drivers/wdm/audio/legacy/stream/pnp.c diff --git a/reactos/drivers/wdm/audio/legacy/stream/stream.h b/drivers/wdm/audio/legacy/stream/stream.h similarity index 100% rename from reactos/drivers/wdm/audio/legacy/stream/stream.h rename to drivers/wdm/audio/legacy/stream/stream.h diff --git a/reactos/drivers/wdm/audio/legacy/stream/stream.rc b/drivers/wdm/audio/legacy/stream/stream.rc similarity index 100% rename from reactos/drivers/wdm/audio/legacy/stream/stream.rc rename to drivers/wdm/audio/legacy/stream/stream.rc diff --git a/reactos/drivers/wdm/audio/legacy/stream/stream.spec b/drivers/wdm/audio/legacy/stream/stream.spec similarity index 100% rename from reactos/drivers/wdm/audio/legacy/stream/stream.spec rename to drivers/wdm/audio/legacy/stream/stream.spec diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/CMakeLists.txt b/drivers/wdm/audio/legacy/wdmaud/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/audio/legacy/wdmaud/CMakeLists.txt rename to drivers/wdm/audio/legacy/wdmaud/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/control.c b/drivers/wdm/audio/legacy/wdmaud/control.c similarity index 100% rename from reactos/drivers/wdm/audio/legacy/wdmaud/control.c rename to drivers/wdm/audio/legacy/wdmaud/control.c diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/deviface.c b/drivers/wdm/audio/legacy/wdmaud/deviface.c similarity index 100% rename from reactos/drivers/wdm/audio/legacy/wdmaud/deviface.c rename to drivers/wdm/audio/legacy/wdmaud/deviface.c diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/entry.c b/drivers/wdm/audio/legacy/wdmaud/entry.c similarity index 100% rename from reactos/drivers/wdm/audio/legacy/wdmaud/entry.c rename to drivers/wdm/audio/legacy/wdmaud/entry.c diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/interface.h b/drivers/wdm/audio/legacy/wdmaud/interface.h similarity index 100% rename from reactos/drivers/wdm/audio/legacy/wdmaud/interface.h rename to drivers/wdm/audio/legacy/wdmaud/interface.h diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/mmixer.c b/drivers/wdm/audio/legacy/wdmaud/mmixer.c similarity index 100% rename from reactos/drivers/wdm/audio/legacy/wdmaud/mmixer.c rename to drivers/wdm/audio/legacy/wdmaud/mmixer.c diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/sup.c b/drivers/wdm/audio/legacy/wdmaud/sup.c similarity index 100% rename from reactos/drivers/wdm/audio/legacy/wdmaud/sup.c rename to drivers/wdm/audio/legacy/wdmaud/sup.c diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.h b/drivers/wdm/audio/legacy/wdmaud/wdmaud.h similarity index 100% rename from reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.h rename to drivers/wdm/audio/legacy/wdmaud/wdmaud.h diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.rc b/drivers/wdm/audio/legacy/wdmaud/wdmaud.rc similarity index 100% rename from reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.rc rename to drivers/wdm/audio/legacy/wdmaud/wdmaud.rc diff --git a/reactos/drivers/wdm/audio/sysaudio/CMakeLists.txt b/drivers/wdm/audio/sysaudio/CMakeLists.txt similarity index 100% rename from reactos/drivers/wdm/audio/sysaudio/CMakeLists.txt rename to drivers/wdm/audio/sysaudio/CMakeLists.txt diff --git a/reactos/drivers/wdm/audio/sysaudio/control.c b/drivers/wdm/audio/sysaudio/control.c similarity index 100% rename from reactos/drivers/wdm/audio/sysaudio/control.c rename to drivers/wdm/audio/sysaudio/control.c diff --git a/reactos/drivers/wdm/audio/sysaudio/deviface.c b/drivers/wdm/audio/sysaudio/deviface.c similarity index 100% rename from reactos/drivers/wdm/audio/sysaudio/deviface.c rename to drivers/wdm/audio/sysaudio/deviface.c diff --git a/reactos/drivers/wdm/audio/sysaudio/dispatcher.c b/drivers/wdm/audio/sysaudio/dispatcher.c similarity index 100% rename from reactos/drivers/wdm/audio/sysaudio/dispatcher.c rename to drivers/wdm/audio/sysaudio/dispatcher.c diff --git a/reactos/drivers/wdm/audio/sysaudio/main.c b/drivers/wdm/audio/sysaudio/main.c similarity index 100% rename from reactos/drivers/wdm/audio/sysaudio/main.c rename to drivers/wdm/audio/sysaudio/main.c diff --git a/reactos/drivers/wdm/audio/sysaudio/pin.c b/drivers/wdm/audio/sysaudio/pin.c similarity index 100% rename from reactos/drivers/wdm/audio/sysaudio/pin.c rename to drivers/wdm/audio/sysaudio/pin.c diff --git a/reactos/drivers/wdm/audio/sysaudio/sysaudio.h b/drivers/wdm/audio/sysaudio/sysaudio.h similarity index 100% rename from reactos/drivers/wdm/audio/sysaudio/sysaudio.h rename to drivers/wdm/audio/sysaudio/sysaudio.h diff --git a/reactos/drivers/wdm/audio/sysaudio/sysaudio.rc b/drivers/wdm/audio/sysaudio/sysaudio.rc similarity index 100% rename from reactos/drivers/wdm/audio/sysaudio/sysaudio.rc rename to drivers/wdm/audio/sysaudio/sysaudio.rc diff --git a/reactos/drivers/wmi/CMakeLists.txt b/drivers/wmi/CMakeLists.txt similarity index 100% rename from reactos/drivers/wmi/CMakeLists.txt rename to drivers/wmi/CMakeLists.txt diff --git a/reactos/drivers/wmi/wmilib.c b/drivers/wmi/wmilib.c similarity index 100% rename from reactos/drivers/wmi/wmilib.c rename to drivers/wmi/wmilib.c diff --git a/reactos/drivers/wmi/wmilib.rc b/drivers/wmi/wmilib.rc similarity index 100% rename from reactos/drivers/wmi/wmilib.rc rename to drivers/wmi/wmilib.rc diff --git a/reactos/drivers/wmi/wmilib.spec b/drivers/wmi/wmilib.spec similarity index 100% rename from reactos/drivers/wmi/wmilib.spec rename to drivers/wmi/wmilib.spec diff --git a/reactos/global.lds b/global.lds similarity index 100% rename from reactos/global.lds rename to global.lds diff --git a/reactos/hal/CMakeLists.txt b/hal/CMakeLists.txt similarity index 100% rename from reactos/hal/CMakeLists.txt rename to hal/CMakeLists.txt diff --git a/reactos/hal/hal.spec b/hal/hal.spec similarity index 100% rename from reactos/hal/hal.spec rename to hal/hal.spec diff --git a/reactos/hal/halarm/generic/beep.c b/hal/halarm/generic/beep.c similarity index 100% rename from reactos/hal/halarm/generic/beep.c rename to hal/halarm/generic/beep.c diff --git a/reactos/hal/halarm/generic/bus.c b/hal/halarm/generic/bus.c similarity index 100% rename from reactos/hal/halarm/generic/bus.c rename to hal/halarm/generic/bus.c diff --git a/reactos/hal/halarm/generic/cache.S b/hal/halarm/generic/cache.S similarity index 100% rename from reactos/hal/halarm/generic/cache.S rename to hal/halarm/generic/cache.S diff --git a/reactos/hal/halarm/generic/display.c b/hal/halarm/generic/display.c similarity index 100% rename from reactos/hal/halarm/generic/display.c rename to hal/halarm/generic/display.c diff --git a/reactos/hal/halarm/generic/dma.c b/hal/halarm/generic/dma.c similarity index 100% rename from reactos/hal/halarm/generic/dma.c rename to hal/halarm/generic/dma.c diff --git a/reactos/hal/halarm/generic/drive.c b/hal/halarm/generic/drive.c similarity index 100% rename from reactos/hal/halarm/generic/drive.c rename to hal/halarm/generic/drive.c diff --git a/reactos/hal/halarm/generic/fmutex.c b/hal/halarm/generic/fmutex.c similarity index 100% rename from reactos/hal/halarm/generic/fmutex.c rename to hal/halarm/generic/fmutex.c diff --git a/reactos/hal/halarm/generic/halinit.c b/hal/halarm/generic/halinit.c similarity index 100% rename from reactos/hal/halarm/generic/halinit.c rename to hal/halarm/generic/halinit.c diff --git a/reactos/hal/halarm/generic/misc.c b/hal/halarm/generic/misc.c similarity index 100% rename from reactos/hal/halarm/generic/misc.c rename to hal/halarm/generic/misc.c diff --git a/reactos/hal/halarm/generic/pic.c b/hal/halarm/generic/pic.c similarity index 100% rename from reactos/hal/halarm/generic/pic.c rename to hal/halarm/generic/pic.c diff --git a/reactos/hal/halarm/generic/portio.c b/hal/halarm/generic/portio.c similarity index 100% rename from reactos/hal/halarm/generic/portio.c rename to hal/halarm/generic/portio.c diff --git a/reactos/hal/halarm/generic/processor.c b/hal/halarm/generic/processor.c similarity index 100% rename from reactos/hal/halarm/generic/processor.c rename to hal/halarm/generic/processor.c diff --git a/reactos/hal/halarm/generic/profil.c b/hal/halarm/generic/profil.c similarity index 100% rename from reactos/hal/halarm/generic/profil.c rename to hal/halarm/generic/profil.c diff --git a/reactos/hal/halarm/generic/reboot.c b/hal/halarm/generic/reboot.c similarity index 100% rename from reactos/hal/halarm/generic/reboot.c rename to hal/halarm/generic/reboot.c diff --git a/reactos/hal/halarm/generic/rtc.c b/hal/halarm/generic/rtc.c similarity index 100% rename from reactos/hal/halarm/generic/rtc.c rename to hal/halarm/generic/rtc.c diff --git a/reactos/hal/halarm/generic/spinlock.c b/hal/halarm/generic/spinlock.c similarity index 100% rename from reactos/hal/halarm/generic/spinlock.c rename to hal/halarm/generic/spinlock.c diff --git a/reactos/hal/halarm/generic/sysinfo.c b/hal/halarm/generic/sysinfo.c similarity index 100% rename from reactos/hal/halarm/generic/sysinfo.c rename to hal/halarm/generic/sysinfo.c diff --git a/reactos/hal/halarm/generic/timer.c b/hal/halarm/generic/timer.c similarity index 100% rename from reactos/hal/halarm/generic/timer.c rename to hal/halarm/generic/timer.c diff --git a/reactos/hal/halarm/generic/usage.c b/hal/halarm/generic/usage.c similarity index 100% rename from reactos/hal/halarm/generic/usage.c rename to hal/halarm/generic/usage.c diff --git a/reactos/hal/halarm/include/hal.h b/hal/halarm/include/hal.h similarity index 100% rename from reactos/hal/halarm/include/hal.h rename to hal/halarm/include/hal.h diff --git a/reactos/hal/halarm/include/halp.h b/hal/halarm/include/halp.h similarity index 100% rename from reactos/hal/halarm/include/halp.h rename to hal/halarm/include/halp.h diff --git a/reactos/hal/halarm/omap3/halinit_up.c b/hal/halarm/omap3/halinit_up.c similarity index 100% rename from reactos/hal/halarm/omap3/halinit_up.c rename to hal/halarm/omap3/halinit_up.c diff --git a/reactos/hal/halarm/omap3/halup.rc b/hal/halarm/omap3/halup.rc similarity index 100% rename from reactos/hal/halarm/omap3/halup.rc rename to hal/halarm/omap3/halup.rc diff --git a/reactos/hal/halarm/versa/halinit_up.c b/hal/halarm/versa/halinit_up.c similarity index 100% rename from reactos/hal/halarm/versa/halinit_up.c rename to hal/halarm/versa/halinit_up.c diff --git a/reactos/hal/halarm/versa/halup.rc b/hal/halarm/versa/halup.rc similarity index 100% rename from reactos/hal/halarm/versa/halup.rc rename to hal/halarm/versa/halup.rc diff --git a/reactos/hal/halppc/generic/beep.c b/hal/halppc/generic/beep.c similarity index 100% rename from reactos/hal/halppc/generic/beep.c rename to hal/halppc/generic/beep.c diff --git a/reactos/hal/halppc/generic/bus.c b/hal/halppc/generic/bus.c similarity index 100% rename from reactos/hal/halppc/generic/bus.c rename to hal/halppc/generic/bus.c diff --git a/reactos/hal/halppc/generic/cmos.c b/hal/halppc/generic/cmos.c similarity index 100% rename from reactos/hal/halppc/generic/cmos.c rename to hal/halppc/generic/cmos.c diff --git a/reactos/hal/halppc/generic/display.c b/hal/halppc/generic/display.c similarity index 100% rename from reactos/hal/halppc/generic/display.c rename to hal/halppc/generic/display.c diff --git a/reactos/hal/halppc/generic/dma.c b/hal/halppc/generic/dma.c similarity index 100% rename from reactos/hal/halppc/generic/dma.c rename to hal/halppc/generic/dma.c diff --git a/reactos/hal/halppc/generic/drive.c b/hal/halppc/generic/drive.c similarity index 100% rename from reactos/hal/halppc/generic/drive.c rename to hal/halppc/generic/drive.c diff --git a/reactos/hal/halppc/generic/enum.c b/hal/halppc/generic/enum.c similarity index 100% rename from reactos/hal/halppc/generic/enum.c rename to hal/halppc/generic/enum.c diff --git a/reactos/hal/halppc/generic/fmutex.c b/hal/halppc/generic/fmutex.c similarity index 100% rename from reactos/hal/halppc/generic/fmutex.c rename to hal/halppc/generic/fmutex.c diff --git a/reactos/hal/halppc/generic/font.c b/hal/halppc/generic/font.c similarity index 100% rename from reactos/hal/halppc/generic/font.c rename to hal/halppc/generic/font.c diff --git a/reactos/hal/halppc/generic/halinit.c b/hal/halppc/generic/halinit.c similarity index 100% rename from reactos/hal/halppc/generic/halinit.c rename to hal/halppc/generic/halinit.c diff --git a/reactos/hal/halppc/generic/irql.c b/hal/halppc/generic/irql.c similarity index 100% rename from reactos/hal/halppc/generic/irql.c rename to hal/halppc/generic/irql.c diff --git a/reactos/hal/halppc/generic/isa.c b/hal/halppc/generic/isa.c similarity index 100% rename from reactos/hal/halppc/generic/isa.c rename to hal/halppc/generic/isa.c diff --git a/reactos/hal/halppc/generic/misc.c b/hal/halppc/generic/misc.c similarity index 100% rename from reactos/hal/halppc/generic/misc.c rename to hal/halppc/generic/misc.c diff --git a/reactos/hal/halppc/generic/pci.c b/hal/halppc/generic/pci.c similarity index 100% rename from reactos/hal/halppc/generic/pci.c rename to hal/halppc/generic/pci.c diff --git a/reactos/hal/halppc/generic/portio.c b/hal/halppc/generic/portio.c similarity index 100% rename from reactos/hal/halppc/generic/portio.c rename to hal/halppc/generic/portio.c diff --git a/reactos/hal/halppc/generic/processor.c b/hal/halppc/generic/processor.c similarity index 100% rename from reactos/hal/halppc/generic/processor.c rename to hal/halppc/generic/processor.c diff --git a/reactos/hal/halppc/generic/profil.c b/hal/halppc/generic/profil.c similarity index 100% rename from reactos/hal/halppc/generic/profil.c rename to hal/halppc/generic/profil.c diff --git a/reactos/hal/halppc/generic/reboot.c b/hal/halppc/generic/reboot.c similarity index 100% rename from reactos/hal/halppc/generic/reboot.c rename to hal/halppc/generic/reboot.c diff --git a/reactos/hal/halppc/generic/spinlock.c b/hal/halppc/generic/spinlock.c similarity index 100% rename from reactos/hal/halppc/generic/spinlock.c rename to hal/halppc/generic/spinlock.c diff --git a/reactos/hal/halppc/generic/sysinfo.c b/hal/halppc/generic/sysinfo.c similarity index 100% rename from reactos/hal/halppc/generic/sysinfo.c rename to hal/halppc/generic/sysinfo.c diff --git a/reactos/hal/halppc/generic/timer.c b/hal/halppc/generic/timer.c similarity index 100% rename from reactos/hal/halppc/generic/timer.c rename to hal/halppc/generic/timer.c diff --git a/reactos/hal/halppc/include/apic.h b/hal/halppc/include/apic.h similarity index 100% rename from reactos/hal/halppc/include/apic.h rename to hal/halppc/include/apic.h diff --git a/reactos/hal/halppc/include/bus.h b/hal/halppc/include/bus.h similarity index 100% rename from reactos/hal/halppc/include/bus.h rename to hal/halppc/include/bus.h diff --git a/reactos/hal/halppc/include/hal.h b/hal/halppc/include/hal.h similarity index 100% rename from reactos/hal/halppc/include/hal.h rename to hal/halppc/include/hal.h diff --git a/reactos/hal/halppc/include/haldma.h b/hal/halppc/include/haldma.h similarity index 100% rename from reactos/hal/halppc/include/haldma.h rename to hal/halppc/include/haldma.h diff --git a/reactos/hal/halppc/include/halirq.h b/hal/halppc/include/halirq.h similarity index 100% rename from reactos/hal/halppc/include/halirq.h rename to hal/halppc/include/halirq.h diff --git a/reactos/hal/halppc/include/halp.h b/hal/halppc/include/halp.h similarity index 100% rename from reactos/hal/halppc/include/halp.h rename to hal/halppc/include/halp.h diff --git a/reactos/hal/halppc/include/ioapic.h b/hal/halppc/include/ioapic.h similarity index 100% rename from reactos/hal/halppc/include/ioapic.h rename to hal/halppc/include/ioapic.h diff --git a/reactos/hal/halppc/include/mps.h b/hal/halppc/include/mps.h similarity index 100% rename from reactos/hal/halppc/include/mps.h rename to hal/halppc/include/mps.h diff --git a/reactos/hal/halppc/up/halinit_up.c b/hal/halppc/up/halinit_up.c similarity index 100% rename from reactos/hal/halppc/up/halinit_up.c rename to hal/halppc/up/halinit_up.c diff --git a/reactos/hal/halppc/up/halup.rc b/hal/halppc/up/halup.rc similarity index 100% rename from reactos/hal/halppc/up/halup.rc rename to hal/halppc/up/halup.rc diff --git a/reactos/hal/halx86/CMakeLists.txt b/hal/halx86/CMakeLists.txt similarity index 100% rename from reactos/hal/halx86/CMakeLists.txt rename to hal/halx86/CMakeLists.txt diff --git a/reactos/hal/halx86/acpi/busemul.c b/hal/halx86/acpi/busemul.c similarity index 100% rename from reactos/hal/halx86/acpi/busemul.c rename to hal/halx86/acpi/busemul.c diff --git a/reactos/hal/halx86/acpi/halacpi.c b/hal/halx86/acpi/halacpi.c similarity index 100% rename from reactos/hal/halx86/acpi/halacpi.c rename to hal/halx86/acpi/halacpi.c diff --git a/reactos/hal/halx86/acpi/halacpi.rc b/hal/halx86/acpi/halacpi.rc similarity index 100% rename from reactos/hal/halx86/acpi/halacpi.rc rename to hal/halx86/acpi/halacpi.rc diff --git a/reactos/hal/halx86/acpi/halpnpdd.c b/hal/halx86/acpi/halpnpdd.c similarity index 100% rename from reactos/hal/halx86/acpi/halpnpdd.c rename to hal/halx86/acpi/halpnpdd.c diff --git a/reactos/hal/halx86/amd64/halinit.c b/hal/halx86/amd64/halinit.c similarity index 100% rename from reactos/hal/halx86/amd64/halinit.c rename to hal/halx86/amd64/halinit.c diff --git a/reactos/hal/halx86/amd64/mps.S b/hal/halx86/amd64/mps.S similarity index 100% rename from reactos/hal/halx86/amd64/mps.S rename to hal/halx86/amd64/mps.S diff --git a/reactos/hal/halx86/amd64/processor.c b/hal/halx86/amd64/processor.c similarity index 100% rename from reactos/hal/halx86/amd64/processor.c rename to hal/halx86/amd64/processor.c diff --git a/reactos/hal/halx86/amd64/stubs.c b/hal/halx86/amd64/stubs.c similarity index 100% rename from reactos/hal/halx86/amd64/stubs.c rename to hal/halx86/amd64/stubs.c diff --git a/reactos/hal/halx86/amd64/systimer.S b/hal/halx86/amd64/systimer.S similarity index 100% rename from reactos/hal/halx86/amd64/systimer.S rename to hal/halx86/amd64/systimer.S diff --git a/reactos/hal/halx86/amd64/x86bios.c b/hal/halx86/amd64/x86bios.c similarity index 100% rename from reactos/hal/halx86/amd64/x86bios.c rename to hal/halx86/amd64/x86bios.c diff --git a/reactos/hal/halx86/apic/apic.c b/hal/halx86/apic/apic.c similarity index 100% rename from reactos/hal/halx86/apic/apic.c rename to hal/halx86/apic/apic.c diff --git a/reactos/hal/halx86/apic/apic.h b/hal/halx86/apic/apic.h similarity index 100% rename from reactos/hal/halx86/apic/apic.h rename to hal/halx86/apic/apic.h diff --git a/reactos/hal/halx86/apic/apictimer.c b/hal/halx86/apic/apictimer.c similarity index 100% rename from reactos/hal/halx86/apic/apictimer.c rename to hal/halx86/apic/apictimer.c diff --git a/reactos/hal/halx86/apic/apictrap.S b/hal/halx86/apic/apictrap.S similarity index 100% rename from reactos/hal/halx86/apic/apictrap.S rename to hal/halx86/apic/apictrap.S diff --git a/reactos/hal/halx86/apic/halinit_apic.c b/hal/halx86/apic/halinit_apic.c similarity index 100% rename from reactos/hal/halx86/apic/halinit_apic.c rename to hal/halx86/apic/halinit_apic.c diff --git a/reactos/hal/halx86/apic/rtctimer.c b/hal/halx86/apic/rtctimer.c similarity index 100% rename from reactos/hal/halx86/apic/rtctimer.c rename to hal/halx86/apic/rtctimer.c diff --git a/reactos/hal/halx86/apic/tsc.c b/hal/halx86/apic/tsc.c similarity index 100% rename from reactos/hal/halx86/apic/tsc.c rename to hal/halx86/apic/tsc.c diff --git a/reactos/hal/halx86/apic/tsc.h b/hal/halx86/apic/tsc.h similarity index 100% rename from reactos/hal/halx86/apic/tsc.h rename to hal/halx86/apic/tsc.h diff --git a/reactos/hal/halx86/apic/tsccal.S b/hal/halx86/apic/tsccal.S similarity index 100% rename from reactos/hal/halx86/apic/tsccal.S rename to hal/halx86/apic/tsccal.S diff --git a/reactos/hal/halx86/generic/beep.c b/hal/halx86/generic/beep.c similarity index 100% rename from reactos/hal/halx86/generic/beep.c rename to hal/halx86/generic/beep.c diff --git a/reactos/hal/halx86/generic/bios.c b/hal/halx86/generic/bios.c similarity index 100% rename from reactos/hal/halx86/generic/bios.c rename to hal/halx86/generic/bios.c diff --git a/reactos/hal/halx86/generic/cmos.c b/hal/halx86/generic/cmos.c similarity index 100% rename from reactos/hal/halx86/generic/cmos.c rename to hal/halx86/generic/cmos.c diff --git a/reactos/hal/halx86/generic/display.c b/hal/halx86/generic/display.c similarity index 100% rename from reactos/hal/halx86/generic/display.c rename to hal/halx86/generic/display.c diff --git a/reactos/hal/halx86/generic/dma.c b/hal/halx86/generic/dma.c similarity index 100% rename from reactos/hal/halx86/generic/dma.c rename to hal/halx86/generic/dma.c diff --git a/reactos/hal/halx86/generic/drive.c b/hal/halx86/generic/drive.c similarity index 100% rename from reactos/hal/halx86/generic/drive.c rename to hal/halx86/generic/drive.c diff --git a/reactos/hal/halx86/generic/halinit.c b/hal/halx86/generic/halinit.c similarity index 100% rename from reactos/hal/halx86/generic/halinit.c rename to hal/halx86/generic/halinit.c diff --git a/reactos/hal/halx86/generic/memory.c b/hal/halx86/generic/memory.c similarity index 100% rename from reactos/hal/halx86/generic/memory.c rename to hal/halx86/generic/memory.c diff --git a/reactos/hal/halx86/generic/misc.c b/hal/halx86/generic/misc.c similarity index 100% rename from reactos/hal/halx86/generic/misc.c rename to hal/halx86/generic/misc.c diff --git a/reactos/hal/halx86/generic/portio.c b/hal/halx86/generic/portio.c similarity index 100% rename from reactos/hal/halx86/generic/portio.c rename to hal/halx86/generic/portio.c diff --git a/reactos/hal/halx86/generic/profil.c b/hal/halx86/generic/profil.c similarity index 100% rename from reactos/hal/halx86/generic/profil.c rename to hal/halx86/generic/profil.c diff --git a/reactos/hal/halx86/generic/reboot.c b/hal/halx86/generic/reboot.c similarity index 100% rename from reactos/hal/halx86/generic/reboot.c rename to hal/halx86/generic/reboot.c diff --git a/reactos/hal/halx86/generic/spinlock.c b/hal/halx86/generic/spinlock.c similarity index 100% rename from reactos/hal/halx86/generic/spinlock.c rename to hal/halx86/generic/spinlock.c diff --git a/reactos/hal/halx86/generic/sysinfo.c b/hal/halx86/generic/sysinfo.c similarity index 100% rename from reactos/hal/halx86/generic/sysinfo.c rename to hal/halx86/generic/sysinfo.c diff --git a/reactos/hal/halx86/generic/systimer.S b/hal/halx86/generic/systimer.S similarity index 100% rename from reactos/hal/halx86/generic/systimer.S rename to hal/halx86/generic/systimer.S diff --git a/reactos/hal/halx86/generic/timer.c b/hal/halx86/generic/timer.c similarity index 100% rename from reactos/hal/halx86/generic/timer.c rename to hal/halx86/generic/timer.c diff --git a/reactos/hal/halx86/generic/trap.S b/hal/halx86/generic/trap.S similarity index 100% rename from reactos/hal/halx86/generic/trap.S rename to hal/halx86/generic/trap.S diff --git a/reactos/hal/halx86/generic/usage.c b/hal/halx86/generic/usage.c similarity index 100% rename from reactos/hal/halx86/generic/usage.c rename to hal/halx86/generic/usage.c diff --git a/reactos/hal/halx86/generic/v86.S b/hal/halx86/generic/v86.S similarity index 100% rename from reactos/hal/halx86/generic/v86.S rename to hal/halx86/generic/v86.S diff --git a/reactos/hal/halx86/include/apic.h b/hal/halx86/include/apic.h similarity index 100% rename from reactos/hal/halx86/include/apic.h rename to hal/halx86/include/apic.h diff --git a/reactos/hal/halx86/include/bus.h b/hal/halx86/include/bus.h similarity index 100% rename from reactos/hal/halx86/include/bus.h rename to hal/halx86/include/bus.h diff --git a/reactos/hal/halx86/include/hal.h b/hal/halx86/include/hal.h similarity index 100% rename from reactos/hal/halx86/include/hal.h rename to hal/halx86/include/hal.h diff --git a/reactos/hal/halx86/include/halacpi.h b/hal/halx86/include/halacpi.h similarity index 100% rename from reactos/hal/halx86/include/halacpi.h rename to hal/halx86/include/halacpi.h diff --git a/reactos/hal/halx86/include/haldma.h b/hal/halx86/include/haldma.h similarity index 100% rename from reactos/hal/halx86/include/haldma.h rename to hal/halx86/include/haldma.h diff --git a/reactos/hal/halx86/include/halirq.h b/hal/halx86/include/halirq.h similarity index 100% rename from reactos/hal/halx86/include/halirq.h rename to hal/halx86/include/halirq.h diff --git a/reactos/hal/halx86/include/halp.h b/hal/halx86/include/halp.h similarity index 100% rename from reactos/hal/halx86/include/halp.h rename to hal/halx86/include/halp.h diff --git a/reactos/hal/halx86/include/ioapic.h b/hal/halx86/include/ioapic.h similarity index 100% rename from reactos/hal/halx86/include/ioapic.h rename to hal/halx86/include/ioapic.h diff --git a/reactos/hal/halx86/include/mps.h b/hal/halx86/include/mps.h similarity index 100% rename from reactos/hal/halx86/include/mps.h rename to hal/halx86/include/mps.h diff --git a/reactos/hal/halx86/legacy/bus/bushndlr.c b/hal/halx86/legacy/bus/bushndlr.c similarity index 100% rename from reactos/hal/halx86/legacy/bus/bushndlr.c rename to hal/halx86/legacy/bus/bushndlr.c diff --git a/reactos/hal/halx86/legacy/bus/cmosbus.c b/hal/halx86/legacy/bus/cmosbus.c similarity index 100% rename from reactos/hal/halx86/legacy/bus/cmosbus.c rename to hal/halx86/legacy/bus/cmosbus.c diff --git a/reactos/hal/halx86/legacy/bus/isabus.c b/hal/halx86/legacy/bus/isabus.c similarity index 100% rename from reactos/hal/halx86/legacy/bus/isabus.c rename to hal/halx86/legacy/bus/isabus.c diff --git a/reactos/hal/halx86/legacy/bus/pci_classes.ids b/hal/halx86/legacy/bus/pci_classes.ids similarity index 100% rename from reactos/hal/halx86/legacy/bus/pci_classes.ids rename to hal/halx86/legacy/bus/pci_classes.ids diff --git a/reactos/hal/halx86/legacy/bus/pci_vendors.ids b/hal/halx86/legacy/bus/pci_vendors.ids similarity index 100% rename from reactos/hal/halx86/legacy/bus/pci_vendors.ids rename to hal/halx86/legacy/bus/pci_vendors.ids diff --git a/reactos/hal/halx86/legacy/bus/pcibus.c b/hal/halx86/legacy/bus/pcibus.c similarity index 100% rename from reactos/hal/halx86/legacy/bus/pcibus.c rename to hal/halx86/legacy/bus/pcibus.c diff --git a/reactos/hal/halx86/legacy/bus/sysbus.c b/hal/halx86/legacy/bus/sysbus.c similarity index 100% rename from reactos/hal/halx86/legacy/bus/sysbus.c rename to hal/halx86/legacy/bus/sysbus.c diff --git a/reactos/hal/halx86/legacy/bussupp.c b/hal/halx86/legacy/bussupp.c similarity index 100% rename from reactos/hal/halx86/legacy/bussupp.c rename to hal/halx86/legacy/bussupp.c diff --git a/reactos/hal/halx86/legacy/halpcat.c b/hal/halx86/legacy/halpcat.c similarity index 100% rename from reactos/hal/halx86/legacy/halpcat.c rename to hal/halx86/legacy/halpcat.c diff --git a/reactos/hal/halx86/legacy/halpnpdd.c b/hal/halx86/legacy/halpnpdd.c similarity index 100% rename from reactos/hal/halx86/legacy/halpnpdd.c rename to hal/halx86/legacy/halpnpdd.c diff --git a/reactos/hal/halx86/mp/apic.c b/hal/halx86/mp/apic.c similarity index 100% rename from reactos/hal/halx86/mp/apic.c rename to hal/halx86/mp/apic.c diff --git a/reactos/hal/halx86/mp/halinit_mp.c b/hal/halx86/mp/halinit_mp.c similarity index 100% rename from reactos/hal/halx86/mp/halinit_mp.c rename to hal/halx86/mp/halinit_mp.c diff --git a/reactos/hal/halx86/mp/halmp.rc b/hal/halx86/mp/halmp.rc similarity index 100% rename from reactos/hal/halx86/mp/halmp.rc rename to hal/halx86/mp/halmp.rc diff --git a/reactos/hal/halx86/mp/ioapic.c b/hal/halx86/mp/ioapic.c similarity index 100% rename from reactos/hal/halx86/mp/ioapic.c rename to hal/halx86/mp/ioapic.c diff --git a/reactos/hal/halx86/mp/ipi_mp.c b/hal/halx86/mp/ipi_mp.c similarity index 100% rename from reactos/hal/halx86/mp/ipi_mp.c rename to hal/halx86/mp/ipi_mp.c diff --git a/reactos/hal/halx86/mp/mpconfig.c b/hal/halx86/mp/mpconfig.c similarity index 100% rename from reactos/hal/halx86/mp/mpconfig.c rename to hal/halx86/mp/mpconfig.c diff --git a/reactos/hal/halx86/mp/mps.S b/hal/halx86/mp/mps.S similarity index 100% rename from reactos/hal/halx86/mp/mps.S rename to hal/halx86/mp/mps.S diff --git a/reactos/hal/halx86/mp/mpsboot.asm b/hal/halx86/mp/mpsboot.asm similarity index 100% rename from reactos/hal/halx86/mp/mpsboot.asm rename to hal/halx86/mp/mpsboot.asm diff --git a/reactos/hal/halx86/mp/mpsirql.c b/hal/halx86/mp/mpsirql.c similarity index 100% rename from reactos/hal/halx86/mp/mpsirql.c rename to hal/halx86/mp/mpsirql.c diff --git a/reactos/hal/halx86/mp/processor_mp.c b/hal/halx86/mp/processor_mp.c similarity index 100% rename from reactos/hal/halx86/mp/processor_mp.c rename to hal/halx86/mp/processor_mp.c diff --git a/reactos/hal/halx86/up/halinit_mini.c b/hal/halx86/up/halinit_mini.c similarity index 100% rename from reactos/hal/halx86/up/halinit_mini.c rename to hal/halx86/up/halinit_mini.c diff --git a/reactos/hal/halx86/up/halinit_up.c b/hal/halx86/up/halinit_up.c similarity index 100% rename from reactos/hal/halx86/up/halinit_up.c rename to hal/halx86/up/halinit_up.c diff --git a/reactos/hal/halx86/up/halup.rc b/hal/halx86/up/halup.rc similarity index 100% rename from reactos/hal/halx86/up/halup.rc rename to hal/halx86/up/halup.rc diff --git a/reactos/hal/halx86/up/pic.c b/hal/halx86/up/pic.c similarity index 100% rename from reactos/hal/halx86/up/pic.c rename to hal/halx86/up/pic.c diff --git a/reactos/hal/halx86/up/processor.c b/hal/halx86/up/processor.c similarity index 100% rename from reactos/hal/halx86/up/processor.c rename to hal/halx86/up/processor.c diff --git a/reactos/hal/halx86/xbox/halinit_xbox.c b/hal/halx86/xbox/halinit_xbox.c similarity index 100% rename from reactos/hal/halx86/xbox/halinit_xbox.c rename to hal/halx86/xbox/halinit_xbox.c diff --git a/reactos/hal/halx86/xbox/halxbox.h b/hal/halx86/xbox/halxbox.h similarity index 100% rename from reactos/hal/halx86/xbox/halxbox.h rename to hal/halx86/xbox/halxbox.h diff --git a/reactos/hal/halx86/xbox/halxbox.rc b/hal/halx86/xbox/halxbox.rc similarity index 100% rename from reactos/hal/halx86/xbox/halxbox.rc rename to hal/halx86/xbox/halxbox.rc diff --git a/reactos/hal/halx86/xbox/part_xbox.c b/hal/halx86/xbox/part_xbox.c similarity index 100% rename from reactos/hal/halx86/xbox/part_xbox.c rename to hal/halx86/xbox/part_xbox.c diff --git a/reactos/include/GL/gl.h b/include/GL/gl.h similarity index 100% rename from reactos/include/GL/gl.h rename to include/GL/gl.h diff --git a/reactos/include/GL/glext.h b/include/GL/glext.h similarity index 100% rename from reactos/include/GL/glext.h rename to include/GL/glext.h diff --git a/reactos/include/GL/glu.h b/include/GL/glu.h similarity index 100% rename from reactos/include/GL/glu.h rename to include/GL/glu.h diff --git a/reactos/include/asm/CMakeLists.txt b/include/asm/CMakeLists.txt similarity index 100% rename from reactos/include/asm/CMakeLists.txt rename to include/asm/CMakeLists.txt diff --git a/reactos/include/asm/asm.inc b/include/asm/asm.inc similarity index 100% rename from reactos/include/asm/asm.inc rename to include/asm/asm.inc diff --git a/reactos/include/asm/genincdata.c b/include/asm/genincdata.c similarity index 100% rename from reactos/include/asm/genincdata.c rename to include/asm/genincdata.c diff --git a/reactos/include/asm/ks386.template.h b/include/asm/ks386.template.h similarity index 100% rename from reactos/include/asm/ks386.template.h rename to include/asm/ks386.template.h diff --git a/reactos/include/asm/ksamd64.template.h b/include/asm/ksamd64.template.h similarity index 100% rename from reactos/include/asm/ksamd64.template.h rename to include/asm/ksamd64.template.h diff --git a/reactos/include/asm/ksx.template.h b/include/asm/ksx.template.h similarity index 100% rename from reactos/include/asm/ksx.template.h rename to include/asm/ksx.template.h diff --git a/reactos/include/asm/syscalls.inc b/include/asm/syscalls.inc similarity index 100% rename from reactos/include/asm/syscalls.inc rename to include/asm/syscalls.inc diff --git a/reactos/include/asm/trapamd64.inc b/include/asm/trapamd64.inc similarity index 100% rename from reactos/include/asm/trapamd64.inc rename to include/asm/trapamd64.inc diff --git a/reactos/include/c++/cerrno b/include/c++/cerrno similarity index 100% rename from reactos/include/c++/cerrno rename to include/c++/cerrno diff --git a/reactos/include/c++/cfloat b/include/c++/cfloat similarity index 100% rename from reactos/include/c++/cfloat rename to include/c++/cfloat diff --git a/reactos/include/c++/climits b/include/c++/climits similarity index 100% rename from reactos/include/c++/climits rename to include/c++/climits diff --git a/reactos/include/c++/clocale b/include/c++/clocale similarity index 100% rename from reactos/include/c++/clocale rename to include/c++/clocale diff --git a/reactos/include/c++/cmath b/include/c++/cmath similarity index 100% rename from reactos/include/c++/cmath rename to include/c++/cmath diff --git a/reactos/include/c++/cstddef b/include/c++/cstddef similarity index 100% rename from reactos/include/c++/cstddef rename to include/c++/cstddef diff --git a/reactos/include/c++/cstdio b/include/c++/cstdio similarity index 100% rename from reactos/include/c++/cstdio rename to include/c++/cstdio diff --git a/reactos/include/c++/cstdlib b/include/c++/cstdlib similarity index 100% rename from reactos/include/c++/cstdlib rename to include/c++/cstdlib diff --git a/reactos/include/c++/cstring b/include/c++/cstring similarity index 100% rename from reactos/include/c++/cstring rename to include/c++/cstring diff --git a/reactos/include/c++/ctime b/include/c++/ctime similarity index 100% rename from reactos/include/c++/ctime rename to include/c++/ctime diff --git a/reactos/include/c++/cwchar b/include/c++/cwchar similarity index 100% rename from reactos/include/c++/cwchar rename to include/c++/cwchar diff --git a/reactos/include/c++/exception b/include/c++/exception similarity index 100% rename from reactos/include/c++/exception rename to include/c++/exception diff --git a/reactos/include/c++/fstream b/include/c++/fstream similarity index 100% rename from reactos/include/c++/fstream rename to include/c++/fstream diff --git a/reactos/include/c++/ios b/include/c++/ios similarity index 100% rename from reactos/include/c++/ios rename to include/c++/ios diff --git a/reactos/include/c++/iostream b/include/c++/iostream similarity index 100% rename from reactos/include/c++/iostream rename to include/c++/iostream diff --git a/reactos/include/c++/istream b/include/c++/istream similarity index 100% rename from reactos/include/c++/istream rename to include/c++/istream diff --git a/reactos/include/c++/limits b/include/c++/limits similarity index 100% rename from reactos/include/c++/limits rename to include/c++/limits diff --git a/reactos/include/c++/new b/include/c++/new similarity index 100% rename from reactos/include/c++/new rename to include/c++/new diff --git a/reactos/include/c++/sstream b/include/c++/sstream similarity index 100% rename from reactos/include/c++/sstream rename to include/c++/sstream diff --git a/reactos/include/c++/stlport/algorithm b/include/c++/stlport/algorithm similarity index 100% rename from reactos/include/c++/stlport/algorithm rename to include/c++/stlport/algorithm diff --git a/reactos/include/c++/stlport/assert.h b/include/c++/stlport/assert.h similarity index 100% rename from reactos/include/c++/stlport/assert.h rename to include/c++/stlport/assert.h diff --git a/reactos/include/c++/stlport/bitset b/include/c++/stlport/bitset similarity index 100% rename from reactos/include/c++/stlport/bitset rename to include/c++/stlport/bitset diff --git a/reactos/include/c++/stlport/cassert b/include/c++/stlport/cassert similarity index 100% rename from reactos/include/c++/stlport/cassert rename to include/c++/stlport/cassert diff --git a/reactos/include/c++/stlport/cctype b/include/c++/stlport/cctype similarity index 100% rename from reactos/include/c++/stlport/cctype rename to include/c++/stlport/cctype diff --git a/reactos/include/c++/stlport/cerrno b/include/c++/stlport/cerrno similarity index 100% rename from reactos/include/c++/stlport/cerrno rename to include/c++/stlport/cerrno diff --git a/reactos/include/c++/stlport/cfloat b/include/c++/stlport/cfloat similarity index 100% rename from reactos/include/c++/stlport/cfloat rename to include/c++/stlport/cfloat diff --git a/reactos/include/c++/stlport/ciso646 b/include/c++/stlport/ciso646 similarity index 100% rename from reactos/include/c++/stlport/ciso646 rename to include/c++/stlport/ciso646 diff --git a/reactos/include/c++/stlport/climits b/include/c++/stlport/climits similarity index 100% rename from reactos/include/c++/stlport/climits rename to include/c++/stlport/climits diff --git a/reactos/include/c++/stlport/clocale b/include/c++/stlport/clocale similarity index 100% rename from reactos/include/c++/stlport/clocale rename to include/c++/stlport/clocale diff --git a/reactos/include/c++/stlport/cmath b/include/c++/stlport/cmath similarity index 100% rename from reactos/include/c++/stlport/cmath rename to include/c++/stlport/cmath diff --git a/reactos/include/c++/stlport/complex b/include/c++/stlport/complex similarity index 100% rename from reactos/include/c++/stlport/complex rename to include/c++/stlport/complex diff --git a/reactos/include/c++/stlport/csetjmp b/include/c++/stlport/csetjmp similarity index 100% rename from reactos/include/c++/stlport/csetjmp rename to include/c++/stlport/csetjmp diff --git a/reactos/include/c++/stlport/csignal b/include/c++/stlport/csignal similarity index 100% rename from reactos/include/c++/stlport/csignal rename to include/c++/stlport/csignal diff --git a/reactos/include/c++/stlport/cstdarg b/include/c++/stlport/cstdarg similarity index 100% rename from reactos/include/c++/stlport/cstdarg rename to include/c++/stlport/cstdarg diff --git a/reactos/include/c++/stlport/cstddef b/include/c++/stlport/cstddef similarity index 100% rename from reactos/include/c++/stlport/cstddef rename to include/c++/stlport/cstddef diff --git a/reactos/include/c++/stlport/cstdio b/include/c++/stlport/cstdio similarity index 100% rename from reactos/include/c++/stlport/cstdio rename to include/c++/stlport/cstdio diff --git a/reactos/include/c++/stlport/cstdlib b/include/c++/stlport/cstdlib similarity index 100% rename from reactos/include/c++/stlport/cstdlib rename to include/c++/stlport/cstdlib diff --git a/reactos/include/c++/stlport/cstring b/include/c++/stlport/cstring similarity index 100% rename from reactos/include/c++/stlport/cstring rename to include/c++/stlport/cstring diff --git a/reactos/include/c++/stlport/ctime b/include/c++/stlport/ctime similarity index 100% rename from reactos/include/c++/stlport/ctime rename to include/c++/stlport/ctime diff --git a/reactos/include/c++/stlport/ctype.h b/include/c++/stlport/ctype.h similarity index 100% rename from reactos/include/c++/stlport/ctype.h rename to include/c++/stlport/ctype.h diff --git a/reactos/include/c++/stlport/cwchar b/include/c++/stlport/cwchar similarity index 100% rename from reactos/include/c++/stlport/cwchar rename to include/c++/stlport/cwchar diff --git a/reactos/include/c++/stlport/cwctype b/include/c++/stlport/cwctype similarity index 100% rename from reactos/include/c++/stlport/cwctype rename to include/c++/stlport/cwctype diff --git a/reactos/include/c++/stlport/deque b/include/c++/stlport/deque similarity index 100% rename from reactos/include/c++/stlport/deque rename to include/c++/stlport/deque diff --git a/reactos/include/c++/stlport/errno.h b/include/c++/stlport/errno.h similarity index 100% rename from reactos/include/c++/stlport/errno.h rename to include/c++/stlport/errno.h diff --git a/reactos/include/c++/stlport/exception b/include/c++/stlport/exception similarity index 100% rename from reactos/include/c++/stlport/exception rename to include/c++/stlport/exception diff --git a/reactos/include/c++/stlport/exception.h b/include/c++/stlport/exception.h similarity index 100% rename from reactos/include/c++/stlport/exception.h rename to include/c++/stlport/exception.h diff --git a/reactos/include/c++/stlport/float.h b/include/c++/stlport/float.h similarity index 100% rename from reactos/include/c++/stlport/float.h rename to include/c++/stlport/float.h diff --git a/reactos/include/c++/stlport/fstream b/include/c++/stlport/fstream similarity index 100% rename from reactos/include/c++/stlport/fstream rename to include/c++/stlport/fstream diff --git a/reactos/include/c++/stlport/fstream.h b/include/c++/stlport/fstream.h similarity index 100% rename from reactos/include/c++/stlport/fstream.h rename to include/c++/stlport/fstream.h diff --git a/reactos/include/c++/stlport/functional b/include/c++/stlport/functional similarity index 100% rename from reactos/include/c++/stlport/functional rename to include/c++/stlport/functional diff --git a/reactos/include/c++/stlport/hash_map b/include/c++/stlport/hash_map similarity index 100% rename from reactos/include/c++/stlport/hash_map rename to include/c++/stlport/hash_map diff --git a/reactos/include/c++/stlport/hash_set b/include/c++/stlport/hash_set similarity index 100% rename from reactos/include/c++/stlport/hash_set rename to include/c++/stlport/hash_set diff --git a/reactos/include/c++/stlport/iomanip b/include/c++/stlport/iomanip similarity index 100% rename from reactos/include/c++/stlport/iomanip rename to include/c++/stlport/iomanip diff --git a/reactos/include/c++/stlport/iomanip.h b/include/c++/stlport/iomanip.h similarity index 100% rename from reactos/include/c++/stlport/iomanip.h rename to include/c++/stlport/iomanip.h diff --git a/reactos/include/c++/stlport/ios b/include/c++/stlport/ios similarity index 100% rename from reactos/include/c++/stlport/ios rename to include/c++/stlport/ios diff --git a/reactos/include/c++/stlport/ios.h b/include/c++/stlport/ios.h similarity index 100% rename from reactos/include/c++/stlport/ios.h rename to include/c++/stlport/ios.h diff --git a/reactos/include/c++/stlport/iosfwd b/include/c++/stlport/iosfwd similarity index 100% rename from reactos/include/c++/stlport/iosfwd rename to include/c++/stlport/iosfwd diff --git a/reactos/include/c++/stlport/iostream b/include/c++/stlport/iostream similarity index 100% rename from reactos/include/c++/stlport/iostream rename to include/c++/stlport/iostream diff --git a/reactos/include/c++/stlport/iostream.h b/include/c++/stlport/iostream.h similarity index 100% rename from reactos/include/c++/stlport/iostream.h rename to include/c++/stlport/iostream.h diff --git a/reactos/include/c++/stlport/iso646.h b/include/c++/stlport/iso646.h similarity index 100% rename from reactos/include/c++/stlport/iso646.h rename to include/c++/stlport/iso646.h diff --git a/reactos/include/c++/stlport/istream b/include/c++/stlport/istream similarity index 100% rename from reactos/include/c++/stlport/istream rename to include/c++/stlport/istream diff --git a/reactos/include/c++/stlport/istream.h b/include/c++/stlport/istream.h similarity index 100% rename from reactos/include/c++/stlport/istream.h rename to include/c++/stlport/istream.h diff --git a/reactos/include/c++/stlport/iterator b/include/c++/stlport/iterator similarity index 100% rename from reactos/include/c++/stlport/iterator rename to include/c++/stlport/iterator diff --git a/reactos/include/c++/stlport/limits b/include/c++/stlport/limits similarity index 100% rename from reactos/include/c++/stlport/limits rename to include/c++/stlport/limits diff --git a/reactos/include/c++/stlport/limits.h b/include/c++/stlport/limits.h similarity index 100% rename from reactos/include/c++/stlport/limits.h rename to include/c++/stlport/limits.h diff --git a/reactos/include/c++/stlport/list b/include/c++/stlport/list similarity index 100% rename from reactos/include/c++/stlport/list rename to include/c++/stlport/list diff --git a/reactos/include/c++/stlport/locale b/include/c++/stlport/locale similarity index 100% rename from reactos/include/c++/stlport/locale rename to include/c++/stlport/locale diff --git a/reactos/include/c++/stlport/locale.h b/include/c++/stlport/locale.h similarity index 100% rename from reactos/include/c++/stlport/locale.h rename to include/c++/stlport/locale.h diff --git a/reactos/include/c++/stlport/map b/include/c++/stlport/map similarity index 100% rename from reactos/include/c++/stlport/map rename to include/c++/stlport/map diff --git a/reactos/include/c++/stlport/math.h b/include/c++/stlport/math.h similarity index 100% rename from reactos/include/c++/stlport/math.h rename to include/c++/stlport/math.h diff --git a/reactos/include/c++/stlport/mem.h b/include/c++/stlport/mem.h similarity index 100% rename from reactos/include/c++/stlport/mem.h rename to include/c++/stlport/mem.h diff --git a/reactos/include/c++/stlport/memory b/include/c++/stlport/memory similarity index 100% rename from reactos/include/c++/stlport/memory rename to include/c++/stlport/memory diff --git a/reactos/include/c++/stlport/new b/include/c++/stlport/new similarity index 100% rename from reactos/include/c++/stlport/new rename to include/c++/stlport/new diff --git a/reactos/include/c++/stlport/new.h b/include/c++/stlport/new.h similarity index 100% rename from reactos/include/c++/stlport/new.h rename to include/c++/stlport/new.h diff --git a/reactos/include/c++/stlport/numeric b/include/c++/stlport/numeric similarity index 100% rename from reactos/include/c++/stlport/numeric rename to include/c++/stlport/numeric diff --git a/reactos/include/c++/stlport/ostream b/include/c++/stlport/ostream similarity index 100% rename from reactos/include/c++/stlport/ostream rename to include/c++/stlport/ostream diff --git a/reactos/include/c++/stlport/ostream.h b/include/c++/stlport/ostream.h similarity index 100% rename from reactos/include/c++/stlport/ostream.h rename to include/c++/stlport/ostream.h diff --git a/reactos/include/c++/stlport/pthread.h b/include/c++/stlport/pthread.h similarity index 100% rename from reactos/include/c++/stlport/pthread.h rename to include/c++/stlport/pthread.h diff --git a/reactos/include/c++/stlport/pthread_alloc b/include/c++/stlport/pthread_alloc similarity index 100% rename from reactos/include/c++/stlport/pthread_alloc rename to include/c++/stlport/pthread_alloc diff --git a/reactos/include/c++/stlport/queue b/include/c++/stlport/queue similarity index 100% rename from reactos/include/c++/stlport/queue rename to include/c++/stlport/queue diff --git a/reactos/include/c++/stlport/rlocks.h b/include/c++/stlport/rlocks.h similarity index 100% rename from reactos/include/c++/stlport/rlocks.h rename to include/c++/stlport/rlocks.h diff --git a/reactos/include/c++/stlport/rope b/include/c++/stlport/rope similarity index 100% rename from reactos/include/c++/stlport/rope rename to include/c++/stlport/rope diff --git a/reactos/include/c++/stlport/set b/include/c++/stlport/set similarity index 100% rename from reactos/include/c++/stlport/set rename to include/c++/stlport/set diff --git a/reactos/include/c++/stlport/setjmp.h b/include/c++/stlport/setjmp.h similarity index 100% rename from reactos/include/c++/stlport/setjmp.h rename to include/c++/stlport/setjmp.h diff --git a/reactos/include/c++/stlport/signal.h b/include/c++/stlport/signal.h similarity index 100% rename from reactos/include/c++/stlport/signal.h rename to include/c++/stlport/signal.h diff --git a/reactos/include/c++/stlport/slist b/include/c++/stlport/slist similarity index 100% rename from reactos/include/c++/stlport/slist rename to include/c++/stlport/slist diff --git a/reactos/include/c++/stlport/sstream b/include/c++/stlport/sstream similarity index 100% rename from reactos/include/c++/stlport/sstream rename to include/c++/stlport/sstream diff --git a/reactos/include/c++/stlport/stack b/include/c++/stlport/stack similarity index 100% rename from reactos/include/c++/stlport/stack rename to include/c++/stlport/stack diff --git a/reactos/include/c++/stlport/stdarg.h b/include/c++/stlport/stdarg.h similarity index 100% rename from reactos/include/c++/stlport/stdarg.h rename to include/c++/stlport/stdarg.h diff --git a/reactos/include/c++/stlport/stddef.h b/include/c++/stlport/stddef.h similarity index 100% rename from reactos/include/c++/stlport/stddef.h rename to include/c++/stlport/stddef.h diff --git a/reactos/include/c++/stlport/stdexcept b/include/c++/stlport/stdexcept similarity index 100% rename from reactos/include/c++/stlport/stdexcept rename to include/c++/stlport/stdexcept diff --git a/reactos/include/c++/stlport/stdio.h b/include/c++/stlport/stdio.h similarity index 100% rename from reactos/include/c++/stlport/stdio.h rename to include/c++/stlport/stdio.h diff --git a/reactos/include/c++/stlport/stdiostream.h b/include/c++/stlport/stdiostream.h similarity index 100% rename from reactos/include/c++/stlport/stdiostream.h rename to include/c++/stlport/stdiostream.h diff --git a/reactos/include/c++/stlport/stdlib.h b/include/c++/stlport/stdlib.h similarity index 100% rename from reactos/include/c++/stlport/stdlib.h rename to include/c++/stlport/stdlib.h diff --git a/reactos/include/c++/stlport/stl/_abbrevs.h b/include/c++/stlport/stl/_abbrevs.h similarity index 100% rename from reactos/include/c++/stlport/stl/_abbrevs.h rename to include/c++/stlport/stl/_abbrevs.h diff --git a/reactos/include/c++/stlport/stl/_algo.c b/include/c++/stlport/stl/_algo.c similarity index 100% rename from reactos/include/c++/stlport/stl/_algo.c rename to include/c++/stlport/stl/_algo.c diff --git a/reactos/include/c++/stlport/stl/_algo.h b/include/c++/stlport/stl/_algo.h similarity index 100% rename from reactos/include/c++/stlport/stl/_algo.h rename to include/c++/stlport/stl/_algo.h diff --git a/reactos/include/c++/stlport/stl/_algobase.c b/include/c++/stlport/stl/_algobase.c similarity index 100% rename from reactos/include/c++/stlport/stl/_algobase.c rename to include/c++/stlport/stl/_algobase.c diff --git a/reactos/include/c++/stlport/stl/_algobase.h b/include/c++/stlport/stl/_algobase.h similarity index 100% rename from reactos/include/c++/stlport/stl/_algobase.h rename to include/c++/stlport/stl/_algobase.h diff --git a/reactos/include/c++/stlport/stl/_alloc.c b/include/c++/stlport/stl/_alloc.c similarity index 100% rename from reactos/include/c++/stlport/stl/_alloc.c rename to include/c++/stlport/stl/_alloc.c diff --git a/reactos/include/c++/stlport/stl/_alloc.h b/include/c++/stlport/stl/_alloc.h similarity index 100% rename from reactos/include/c++/stlport/stl/_alloc.h rename to include/c++/stlport/stl/_alloc.h diff --git a/reactos/include/c++/stlport/stl/_auto_ptr.h b/include/c++/stlport/stl/_auto_ptr.h similarity index 100% rename from reactos/include/c++/stlport/stl/_auto_ptr.h rename to include/c++/stlport/stl/_auto_ptr.h diff --git a/reactos/include/c++/stlport/stl/_bitset.c b/include/c++/stlport/stl/_bitset.c similarity index 100% rename from reactos/include/c++/stlport/stl/_bitset.c rename to include/c++/stlport/stl/_bitset.c diff --git a/reactos/include/c++/stlport/stl/_bitset.h b/include/c++/stlport/stl/_bitset.h similarity index 100% rename from reactos/include/c++/stlport/stl/_bitset.h rename to include/c++/stlport/stl/_bitset.h diff --git a/reactos/include/c++/stlport/stl/_bvector.h b/include/c++/stlport/stl/_bvector.h similarity index 100% rename from reactos/include/c++/stlport/stl/_bvector.h rename to include/c++/stlport/stl/_bvector.h diff --git a/reactos/include/c++/stlport/stl/_carray.h b/include/c++/stlport/stl/_carray.h similarity index 100% rename from reactos/include/c++/stlport/stl/_carray.h rename to include/c++/stlport/stl/_carray.h diff --git a/reactos/include/c++/stlport/stl/_cctype.h b/include/c++/stlport/stl/_cctype.h similarity index 100% rename from reactos/include/c++/stlport/stl/_cctype.h rename to include/c++/stlport/stl/_cctype.h diff --git a/reactos/include/c++/stlport/stl/_clocale.h b/include/c++/stlport/stl/_clocale.h similarity index 100% rename from reactos/include/c++/stlport/stl/_clocale.h rename to include/c++/stlport/stl/_clocale.h diff --git a/reactos/include/c++/stlport/stl/_cmath.h b/include/c++/stlport/stl/_cmath.h similarity index 100% rename from reactos/include/c++/stlport/stl/_cmath.h rename to include/c++/stlport/stl/_cmath.h diff --git a/reactos/include/c++/stlport/stl/_codecvt.h b/include/c++/stlport/stl/_codecvt.h similarity index 100% rename from reactos/include/c++/stlport/stl/_codecvt.h rename to include/c++/stlport/stl/_codecvt.h diff --git a/reactos/include/c++/stlport/stl/_collate.h b/include/c++/stlport/stl/_collate.h similarity index 100% rename from reactos/include/c++/stlport/stl/_collate.h rename to include/c++/stlport/stl/_collate.h diff --git a/reactos/include/c++/stlport/stl/_complex.c b/include/c++/stlport/stl/_complex.c similarity index 100% rename from reactos/include/c++/stlport/stl/_complex.c rename to include/c++/stlport/stl/_complex.c diff --git a/reactos/include/c++/stlport/stl/_complex.h b/include/c++/stlport/stl/_complex.h similarity index 100% rename from reactos/include/c++/stlport/stl/_complex.h rename to include/c++/stlport/stl/_complex.h diff --git a/reactos/include/c++/stlport/stl/_config_compat_post.h b/include/c++/stlport/stl/_config_compat_post.h similarity index 100% rename from reactos/include/c++/stlport/stl/_config_compat_post.h rename to include/c++/stlport/stl/_config_compat_post.h diff --git a/reactos/include/c++/stlport/stl/_construct.h b/include/c++/stlport/stl/_construct.h similarity index 100% rename from reactos/include/c++/stlport/stl/_construct.h rename to include/c++/stlport/stl/_construct.h diff --git a/reactos/include/c++/stlport/stl/_cprolog.h b/include/c++/stlport/stl/_cprolog.h similarity index 100% rename from reactos/include/c++/stlport/stl/_cprolog.h rename to include/c++/stlport/stl/_cprolog.h diff --git a/reactos/include/c++/stlport/stl/_csetjmp.h b/include/c++/stlport/stl/_csetjmp.h similarity index 100% rename from reactos/include/c++/stlport/stl/_csetjmp.h rename to include/c++/stlport/stl/_csetjmp.h diff --git a/reactos/include/c++/stlport/stl/_csignal.h b/include/c++/stlport/stl/_csignal.h similarity index 100% rename from reactos/include/c++/stlport/stl/_csignal.h rename to include/c++/stlport/stl/_csignal.h diff --git a/reactos/include/c++/stlport/stl/_cstdarg.h b/include/c++/stlport/stl/_cstdarg.h similarity index 100% rename from reactos/include/c++/stlport/stl/_cstdarg.h rename to include/c++/stlport/stl/_cstdarg.h diff --git a/reactos/include/c++/stlport/stl/_cstddef.h b/include/c++/stlport/stl/_cstddef.h similarity index 100% rename from reactos/include/c++/stlport/stl/_cstddef.h rename to include/c++/stlport/stl/_cstddef.h diff --git a/reactos/include/c++/stlport/stl/_cstdio.h b/include/c++/stlport/stl/_cstdio.h similarity index 100% rename from reactos/include/c++/stlport/stl/_cstdio.h rename to include/c++/stlport/stl/_cstdio.h diff --git a/reactos/include/c++/stlport/stl/_cstdlib.h b/include/c++/stlport/stl/_cstdlib.h similarity index 100% rename from reactos/include/c++/stlport/stl/_cstdlib.h rename to include/c++/stlport/stl/_cstdlib.h diff --git a/reactos/include/c++/stlport/stl/_cstring.h b/include/c++/stlport/stl/_cstring.h similarity index 100% rename from reactos/include/c++/stlport/stl/_cstring.h rename to include/c++/stlport/stl/_cstring.h diff --git a/reactos/include/c++/stlport/stl/_ctime.h b/include/c++/stlport/stl/_ctime.h similarity index 100% rename from reactos/include/c++/stlport/stl/_ctime.h rename to include/c++/stlport/stl/_ctime.h diff --git a/reactos/include/c++/stlport/stl/_ctraits_fns.h b/include/c++/stlport/stl/_ctraits_fns.h similarity index 100% rename from reactos/include/c++/stlport/stl/_ctraits_fns.h rename to include/c++/stlport/stl/_ctraits_fns.h diff --git a/reactos/include/c++/stlport/stl/_ctype.h b/include/c++/stlport/stl/_ctype.h similarity index 100% rename from reactos/include/c++/stlport/stl/_ctype.h rename to include/c++/stlport/stl/_ctype.h diff --git a/reactos/include/c++/stlport/stl/_cwchar.h b/include/c++/stlport/stl/_cwchar.h similarity index 100% rename from reactos/include/c++/stlport/stl/_cwchar.h rename to include/c++/stlport/stl/_cwchar.h diff --git a/reactos/include/c++/stlport/stl/_cwctype.h b/include/c++/stlport/stl/_cwctype.h similarity index 100% rename from reactos/include/c++/stlport/stl/_cwctype.h rename to include/c++/stlport/stl/_cwctype.h diff --git a/reactos/include/c++/stlport/stl/_deque.c b/include/c++/stlport/stl/_deque.c similarity index 100% rename from reactos/include/c++/stlport/stl/_deque.c rename to include/c++/stlport/stl/_deque.c diff --git a/reactos/include/c++/stlport/stl/_deque.h b/include/c++/stlport/stl/_deque.h similarity index 100% rename from reactos/include/c++/stlport/stl/_deque.h rename to include/c++/stlport/stl/_deque.h diff --git a/reactos/include/c++/stlport/stl/_epilog.h b/include/c++/stlport/stl/_epilog.h similarity index 100% rename from reactos/include/c++/stlport/stl/_epilog.h rename to include/c++/stlport/stl/_epilog.h diff --git a/reactos/include/c++/stlport/stl/_exception.h b/include/c++/stlport/stl/_exception.h similarity index 100% rename from reactos/include/c++/stlport/stl/_exception.h rename to include/c++/stlport/stl/_exception.h diff --git a/reactos/include/c++/stlport/stl/_facets_fwd.h b/include/c++/stlport/stl/_facets_fwd.h similarity index 100% rename from reactos/include/c++/stlport/stl/_facets_fwd.h rename to include/c++/stlport/stl/_facets_fwd.h diff --git a/reactos/include/c++/stlport/stl/_fstream.c b/include/c++/stlport/stl/_fstream.c similarity index 100% rename from reactos/include/c++/stlport/stl/_fstream.c rename to include/c++/stlport/stl/_fstream.c diff --git a/reactos/include/c++/stlport/stl/_fstream.h b/include/c++/stlport/stl/_fstream.h similarity index 100% rename from reactos/include/c++/stlport/stl/_fstream.h rename to include/c++/stlport/stl/_fstream.h diff --git a/reactos/include/c++/stlport/stl/_function.h b/include/c++/stlport/stl/_function.h similarity index 100% rename from reactos/include/c++/stlport/stl/_function.h rename to include/c++/stlport/stl/_function.h diff --git a/reactos/include/c++/stlport/stl/_function_adaptors.h b/include/c++/stlport/stl/_function_adaptors.h similarity index 100% rename from reactos/include/c++/stlport/stl/_function_adaptors.h rename to include/c++/stlport/stl/_function_adaptors.h diff --git a/reactos/include/c++/stlport/stl/_function_base.h b/include/c++/stlport/stl/_function_base.h similarity index 100% rename from reactos/include/c++/stlport/stl/_function_base.h rename to include/c++/stlport/stl/_function_base.h diff --git a/reactos/include/c++/stlport/stl/_hash_fun.h b/include/c++/stlport/stl/_hash_fun.h similarity index 100% rename from reactos/include/c++/stlport/stl/_hash_fun.h rename to include/c++/stlport/stl/_hash_fun.h diff --git a/reactos/include/c++/stlport/stl/_hash_map.h b/include/c++/stlport/stl/_hash_map.h similarity index 100% rename from reactos/include/c++/stlport/stl/_hash_map.h rename to include/c++/stlport/stl/_hash_map.h diff --git a/reactos/include/c++/stlport/stl/_hash_set.h b/include/c++/stlport/stl/_hash_set.h similarity index 100% rename from reactos/include/c++/stlport/stl/_hash_set.h rename to include/c++/stlport/stl/_hash_set.h diff --git a/reactos/include/c++/stlport/stl/_hashtable.c b/include/c++/stlport/stl/_hashtable.c similarity index 100% rename from reactos/include/c++/stlport/stl/_hashtable.c rename to include/c++/stlport/stl/_hashtable.c diff --git a/reactos/include/c++/stlport/stl/_hashtable.h b/include/c++/stlport/stl/_hashtable.h similarity index 100% rename from reactos/include/c++/stlport/stl/_hashtable.h rename to include/c++/stlport/stl/_hashtable.h diff --git a/reactos/include/c++/stlport/stl/_heap.c b/include/c++/stlport/stl/_heap.c similarity index 100% rename from reactos/include/c++/stlport/stl/_heap.c rename to include/c++/stlport/stl/_heap.c diff --git a/reactos/include/c++/stlport/stl/_heap.h b/include/c++/stlport/stl/_heap.h similarity index 100% rename from reactos/include/c++/stlport/stl/_heap.h rename to include/c++/stlport/stl/_heap.h diff --git a/reactos/include/c++/stlport/stl/_iomanip.h b/include/c++/stlport/stl/_iomanip.h similarity index 100% rename from reactos/include/c++/stlport/stl/_iomanip.h rename to include/c++/stlport/stl/_iomanip.h diff --git a/reactos/include/c++/stlport/stl/_ios.c b/include/c++/stlport/stl/_ios.c similarity index 100% rename from reactos/include/c++/stlport/stl/_ios.c rename to include/c++/stlport/stl/_ios.c diff --git a/reactos/include/c++/stlport/stl/_ios.h b/include/c++/stlport/stl/_ios.h similarity index 100% rename from reactos/include/c++/stlport/stl/_ios.h rename to include/c++/stlport/stl/_ios.h diff --git a/reactos/include/c++/stlport/stl/_ios_base.h b/include/c++/stlport/stl/_ios_base.h similarity index 100% rename from reactos/include/c++/stlport/stl/_ios_base.h rename to include/c++/stlport/stl/_ios_base.h diff --git a/reactos/include/c++/stlport/stl/_ioserr.h b/include/c++/stlport/stl/_ioserr.h similarity index 100% rename from reactos/include/c++/stlport/stl/_ioserr.h rename to include/c++/stlport/stl/_ioserr.h diff --git a/reactos/include/c++/stlport/stl/_iosfwd.h b/include/c++/stlport/stl/_iosfwd.h similarity index 100% rename from reactos/include/c++/stlport/stl/_iosfwd.h rename to include/c++/stlport/stl/_iosfwd.h diff --git a/reactos/include/c++/stlport/stl/_iostream_string.h b/include/c++/stlport/stl/_iostream_string.h similarity index 100% rename from reactos/include/c++/stlport/stl/_iostream_string.h rename to include/c++/stlport/stl/_iostream_string.h diff --git a/reactos/include/c++/stlport/stl/_istream.c b/include/c++/stlport/stl/_istream.c similarity index 100% rename from reactos/include/c++/stlport/stl/_istream.c rename to include/c++/stlport/stl/_istream.c diff --git a/reactos/include/c++/stlport/stl/_istream.h b/include/c++/stlport/stl/_istream.h similarity index 100% rename from reactos/include/c++/stlport/stl/_istream.h rename to include/c++/stlport/stl/_istream.h diff --git a/reactos/include/c++/stlport/stl/_istreambuf_iterator.h b/include/c++/stlport/stl/_istreambuf_iterator.h similarity index 100% rename from reactos/include/c++/stlport/stl/_istreambuf_iterator.h rename to include/c++/stlport/stl/_istreambuf_iterator.h diff --git a/reactos/include/c++/stlport/stl/_iterator.h b/include/c++/stlport/stl/_iterator.h similarity index 100% rename from reactos/include/c++/stlport/stl/_iterator.h rename to include/c++/stlport/stl/_iterator.h diff --git a/reactos/include/c++/stlport/stl/_iterator_base.h b/include/c++/stlport/stl/_iterator_base.h similarity index 100% rename from reactos/include/c++/stlport/stl/_iterator_base.h rename to include/c++/stlport/stl/_iterator_base.h diff --git a/reactos/include/c++/stlport/stl/_iterator_old.h b/include/c++/stlport/stl/_iterator_old.h similarity index 100% rename from reactos/include/c++/stlport/stl/_iterator_old.h rename to include/c++/stlport/stl/_iterator_old.h diff --git a/reactos/include/c++/stlport/stl/_limits.c b/include/c++/stlport/stl/_limits.c similarity index 100% rename from reactos/include/c++/stlport/stl/_limits.c rename to include/c++/stlport/stl/_limits.c diff --git a/reactos/include/c++/stlport/stl/_limits.h b/include/c++/stlport/stl/_limits.h similarity index 100% rename from reactos/include/c++/stlport/stl/_limits.h rename to include/c++/stlport/stl/_limits.h diff --git a/reactos/include/c++/stlport/stl/_list.c b/include/c++/stlport/stl/_list.c similarity index 100% rename from reactos/include/c++/stlport/stl/_list.c rename to include/c++/stlport/stl/_list.c diff --git a/reactos/include/c++/stlport/stl/_list.h b/include/c++/stlport/stl/_list.h similarity index 100% rename from reactos/include/c++/stlport/stl/_list.h rename to include/c++/stlport/stl/_list.h diff --git a/reactos/include/c++/stlport/stl/_locale.h b/include/c++/stlport/stl/_locale.h similarity index 100% rename from reactos/include/c++/stlport/stl/_locale.h rename to include/c++/stlport/stl/_locale.h diff --git a/reactos/include/c++/stlport/stl/_map.h b/include/c++/stlport/stl/_map.h similarity index 100% rename from reactos/include/c++/stlport/stl/_map.h rename to include/c++/stlport/stl/_map.h diff --git a/reactos/include/c++/stlport/stl/_mbstate_t.h b/include/c++/stlport/stl/_mbstate_t.h similarity index 100% rename from reactos/include/c++/stlport/stl/_mbstate_t.h rename to include/c++/stlport/stl/_mbstate_t.h diff --git a/reactos/include/c++/stlport/stl/_messages_facets.h b/include/c++/stlport/stl/_messages_facets.h similarity index 100% rename from reactos/include/c++/stlport/stl/_messages_facets.h rename to include/c++/stlport/stl/_messages_facets.h diff --git a/reactos/include/c++/stlport/stl/_monetary.c b/include/c++/stlport/stl/_monetary.c similarity index 100% rename from reactos/include/c++/stlport/stl/_monetary.c rename to include/c++/stlport/stl/_monetary.c diff --git a/reactos/include/c++/stlport/stl/_monetary.h b/include/c++/stlport/stl/_monetary.h similarity index 100% rename from reactos/include/c++/stlport/stl/_monetary.h rename to include/c++/stlport/stl/_monetary.h diff --git a/reactos/include/c++/stlport/stl/_move_construct_fwk.h b/include/c++/stlport/stl/_move_construct_fwk.h similarity index 100% rename from reactos/include/c++/stlport/stl/_move_construct_fwk.h rename to include/c++/stlport/stl/_move_construct_fwk.h diff --git a/reactos/include/c++/stlport/stl/_new.h b/include/c++/stlport/stl/_new.h similarity index 100% rename from reactos/include/c++/stlport/stl/_new.h rename to include/c++/stlport/stl/_new.h diff --git a/reactos/include/c++/stlport/stl/_num_get.c b/include/c++/stlport/stl/_num_get.c similarity index 100% rename from reactos/include/c++/stlport/stl/_num_get.c rename to include/c++/stlport/stl/_num_get.c diff --git a/reactos/include/c++/stlport/stl/_num_get.h b/include/c++/stlport/stl/_num_get.h similarity index 100% rename from reactos/include/c++/stlport/stl/_num_get.h rename to include/c++/stlport/stl/_num_get.h diff --git a/reactos/include/c++/stlport/stl/_num_put.c b/include/c++/stlport/stl/_num_put.c similarity index 100% rename from reactos/include/c++/stlport/stl/_num_put.c rename to include/c++/stlport/stl/_num_put.c diff --git a/reactos/include/c++/stlport/stl/_num_put.h b/include/c++/stlport/stl/_num_put.h similarity index 100% rename from reactos/include/c++/stlport/stl/_num_put.h rename to include/c++/stlport/stl/_num_put.h diff --git a/reactos/include/c++/stlport/stl/_numeric.c b/include/c++/stlport/stl/_numeric.c similarity index 100% rename from reactos/include/c++/stlport/stl/_numeric.c rename to include/c++/stlport/stl/_numeric.c diff --git a/reactos/include/c++/stlport/stl/_numeric.h b/include/c++/stlport/stl/_numeric.h similarity index 100% rename from reactos/include/c++/stlport/stl/_numeric.h rename to include/c++/stlport/stl/_numeric.h diff --git a/reactos/include/c++/stlport/stl/_numpunct.h b/include/c++/stlport/stl/_numpunct.h similarity index 100% rename from reactos/include/c++/stlport/stl/_numpunct.h rename to include/c++/stlport/stl/_numpunct.h diff --git a/reactos/include/c++/stlport/stl/_ostream.c b/include/c++/stlport/stl/_ostream.c similarity index 100% rename from reactos/include/c++/stlport/stl/_ostream.c rename to include/c++/stlport/stl/_ostream.c diff --git a/reactos/include/c++/stlport/stl/_ostream.h b/include/c++/stlport/stl/_ostream.h similarity index 100% rename from reactos/include/c++/stlport/stl/_ostream.h rename to include/c++/stlport/stl/_ostream.h diff --git a/reactos/include/c++/stlport/stl/_ostreambuf_iterator.h b/include/c++/stlport/stl/_ostreambuf_iterator.h similarity index 100% rename from reactos/include/c++/stlport/stl/_ostreambuf_iterator.h rename to include/c++/stlport/stl/_ostreambuf_iterator.h diff --git a/reactos/include/c++/stlport/stl/_pair.h b/include/c++/stlport/stl/_pair.h similarity index 100% rename from reactos/include/c++/stlport/stl/_pair.h rename to include/c++/stlport/stl/_pair.h diff --git a/reactos/include/c++/stlport/stl/_prolog.h b/include/c++/stlport/stl/_prolog.h similarity index 100% rename from reactos/include/c++/stlport/stl/_prolog.h rename to include/c++/stlport/stl/_prolog.h diff --git a/reactos/include/c++/stlport/stl/_pthread_alloc.h b/include/c++/stlport/stl/_pthread_alloc.h similarity index 100% rename from reactos/include/c++/stlport/stl/_pthread_alloc.h rename to include/c++/stlport/stl/_pthread_alloc.h diff --git a/reactos/include/c++/stlport/stl/_ptrs_specialize.h b/include/c++/stlport/stl/_ptrs_specialize.h similarity index 100% rename from reactos/include/c++/stlport/stl/_ptrs_specialize.h rename to include/c++/stlport/stl/_ptrs_specialize.h diff --git a/reactos/include/c++/stlport/stl/_queue.h b/include/c++/stlport/stl/_queue.h similarity index 100% rename from reactos/include/c++/stlport/stl/_queue.h rename to include/c++/stlport/stl/_queue.h diff --git a/reactos/include/c++/stlport/stl/_range_errors.c b/include/c++/stlport/stl/_range_errors.c similarity index 100% rename from reactos/include/c++/stlport/stl/_range_errors.c rename to include/c++/stlport/stl/_range_errors.c diff --git a/reactos/include/c++/stlport/stl/_range_errors.h b/include/c++/stlport/stl/_range_errors.h similarity index 100% rename from reactos/include/c++/stlport/stl/_range_errors.h rename to include/c++/stlport/stl/_range_errors.h diff --git a/reactos/include/c++/stlport/stl/_raw_storage_iter.h b/include/c++/stlport/stl/_raw_storage_iter.h similarity index 100% rename from reactos/include/c++/stlport/stl/_raw_storage_iter.h rename to include/c++/stlport/stl/_raw_storage_iter.h diff --git a/reactos/include/c++/stlport/stl/_relops_cont.h b/include/c++/stlport/stl/_relops_cont.h similarity index 100% rename from reactos/include/c++/stlport/stl/_relops_cont.h rename to include/c++/stlport/stl/_relops_cont.h diff --git a/reactos/include/c++/stlport/stl/_relops_hash_cont.h b/include/c++/stlport/stl/_relops_hash_cont.h similarity index 100% rename from reactos/include/c++/stlport/stl/_relops_hash_cont.h rename to include/c++/stlport/stl/_relops_hash_cont.h diff --git a/reactos/include/c++/stlport/stl/_rope.c b/include/c++/stlport/stl/_rope.c similarity index 100% rename from reactos/include/c++/stlport/stl/_rope.c rename to include/c++/stlport/stl/_rope.c diff --git a/reactos/include/c++/stlport/stl/_rope.h b/include/c++/stlport/stl/_rope.h similarity index 100% rename from reactos/include/c++/stlport/stl/_rope.h rename to include/c++/stlport/stl/_rope.h diff --git a/reactos/include/c++/stlport/stl/_set.h b/include/c++/stlport/stl/_set.h similarity index 100% rename from reactos/include/c++/stlport/stl/_set.h rename to include/c++/stlport/stl/_set.h diff --git a/reactos/include/c++/stlport/stl/_slist.c b/include/c++/stlport/stl/_slist.c similarity index 100% rename from reactos/include/c++/stlport/stl/_slist.c rename to include/c++/stlport/stl/_slist.c diff --git a/reactos/include/c++/stlport/stl/_slist.h b/include/c++/stlport/stl/_slist.h similarity index 100% rename from reactos/include/c++/stlport/stl/_slist.h rename to include/c++/stlport/stl/_slist.h diff --git a/reactos/include/c++/stlport/stl/_slist_base.c b/include/c++/stlport/stl/_slist_base.c similarity index 100% rename from reactos/include/c++/stlport/stl/_slist_base.c rename to include/c++/stlport/stl/_slist_base.c diff --git a/reactos/include/c++/stlport/stl/_slist_base.h b/include/c++/stlport/stl/_slist_base.h similarity index 100% rename from reactos/include/c++/stlport/stl/_slist_base.h rename to include/c++/stlport/stl/_slist_base.h diff --git a/reactos/include/c++/stlport/stl/_sparc_atomic.h b/include/c++/stlport/stl/_sparc_atomic.h similarity index 100% rename from reactos/include/c++/stlport/stl/_sparc_atomic.h rename to include/c++/stlport/stl/_sparc_atomic.h diff --git a/reactos/include/c++/stlport/stl/_sstream.c b/include/c++/stlport/stl/_sstream.c similarity index 100% rename from reactos/include/c++/stlport/stl/_sstream.c rename to include/c++/stlport/stl/_sstream.c diff --git a/reactos/include/c++/stlport/stl/_sstream.h b/include/c++/stlport/stl/_sstream.h similarity index 100% rename from reactos/include/c++/stlport/stl/_sstream.h rename to include/c++/stlport/stl/_sstream.h diff --git a/reactos/include/c++/stlport/stl/_stack.h b/include/c++/stlport/stl/_stack.h similarity index 100% rename from reactos/include/c++/stlport/stl/_stack.h rename to include/c++/stlport/stl/_stack.h diff --git a/reactos/include/c++/stlport/stl/_stdexcept.h b/include/c++/stlport/stl/_stdexcept.h similarity index 100% rename from reactos/include/c++/stlport/stl/_stdexcept.h rename to include/c++/stlport/stl/_stdexcept.h diff --git a/reactos/include/c++/stlport/stl/_stdexcept_base.c b/include/c++/stlport/stl/_stdexcept_base.c similarity index 100% rename from reactos/include/c++/stlport/stl/_stdexcept_base.c rename to include/c++/stlport/stl/_stdexcept_base.c diff --git a/reactos/include/c++/stlport/stl/_stdexcept_base.h b/include/c++/stlport/stl/_stdexcept_base.h similarity index 100% rename from reactos/include/c++/stlport/stl/_stdexcept_base.h rename to include/c++/stlport/stl/_stdexcept_base.h diff --git a/reactos/include/c++/stlport/stl/_stlport_version.h b/include/c++/stlport/stl/_stlport_version.h similarity index 100% rename from reactos/include/c++/stlport/stl/_stlport_version.h rename to include/c++/stlport/stl/_stlport_version.h diff --git a/reactos/include/c++/stlport/stl/_stream_iterator.h b/include/c++/stlport/stl/_stream_iterator.h similarity index 100% rename from reactos/include/c++/stlport/stl/_stream_iterator.h rename to include/c++/stlport/stl/_stream_iterator.h diff --git a/reactos/include/c++/stlport/stl/_streambuf.c b/include/c++/stlport/stl/_streambuf.c similarity index 100% rename from reactos/include/c++/stlport/stl/_streambuf.c rename to include/c++/stlport/stl/_streambuf.c diff --git a/reactos/include/c++/stlport/stl/_streambuf.h b/include/c++/stlport/stl/_streambuf.h similarity index 100% rename from reactos/include/c++/stlport/stl/_streambuf.h rename to include/c++/stlport/stl/_streambuf.h diff --git a/reactos/include/c++/stlport/stl/_string.c b/include/c++/stlport/stl/_string.c similarity index 100% rename from reactos/include/c++/stlport/stl/_string.c rename to include/c++/stlport/stl/_string.c diff --git a/reactos/include/c++/stlport/stl/_string.h b/include/c++/stlport/stl/_string.h similarity index 100% rename from reactos/include/c++/stlport/stl/_string.h rename to include/c++/stlport/stl/_string.h diff --git a/reactos/include/c++/stlport/stl/_string_base.h b/include/c++/stlport/stl/_string_base.h similarity index 100% rename from reactos/include/c++/stlport/stl/_string_base.h rename to include/c++/stlport/stl/_string_base.h diff --git a/reactos/include/c++/stlport/stl/_string_fwd.h b/include/c++/stlport/stl/_string_fwd.h similarity index 100% rename from reactos/include/c++/stlport/stl/_string_fwd.h rename to include/c++/stlport/stl/_string_fwd.h diff --git a/reactos/include/c++/stlport/stl/_string_hash.h b/include/c++/stlport/stl/_string_hash.h similarity index 100% rename from reactos/include/c++/stlport/stl/_string_hash.h rename to include/c++/stlport/stl/_string_hash.h diff --git a/reactos/include/c++/stlport/stl/_string_io.c b/include/c++/stlport/stl/_string_io.c similarity index 100% rename from reactos/include/c++/stlport/stl/_string_io.c rename to include/c++/stlport/stl/_string_io.c diff --git a/reactos/include/c++/stlport/stl/_string_io.h b/include/c++/stlport/stl/_string_io.h similarity index 100% rename from reactos/include/c++/stlport/stl/_string_io.h rename to include/c++/stlport/stl/_string_io.h diff --git a/reactos/include/c++/stlport/stl/_string_npos.h b/include/c++/stlport/stl/_string_npos.h similarity index 100% rename from reactos/include/c++/stlport/stl/_string_npos.h rename to include/c++/stlport/stl/_string_npos.h diff --git a/reactos/include/c++/stlport/stl/_string_operators.h b/include/c++/stlport/stl/_string_operators.h similarity index 100% rename from reactos/include/c++/stlport/stl/_string_operators.h rename to include/c++/stlport/stl/_string_operators.h diff --git a/reactos/include/c++/stlport/stl/_string_sum.h b/include/c++/stlport/stl/_string_sum.h similarity index 100% rename from reactos/include/c++/stlport/stl/_string_sum.h rename to include/c++/stlport/stl/_string_sum.h diff --git a/reactos/include/c++/stlport/stl/_string_sum_methods.h b/include/c++/stlport/stl/_string_sum_methods.h similarity index 100% rename from reactos/include/c++/stlport/stl/_string_sum_methods.h rename to include/c++/stlport/stl/_string_sum_methods.h diff --git a/reactos/include/c++/stlport/stl/_string_workaround.h b/include/c++/stlport/stl/_string_workaround.h similarity index 100% rename from reactos/include/c++/stlport/stl/_string_workaround.h rename to include/c++/stlport/stl/_string_workaround.h diff --git a/reactos/include/c++/stlport/stl/_strstream.h b/include/c++/stlport/stl/_strstream.h similarity index 100% rename from reactos/include/c++/stlport/stl/_strstream.h rename to include/c++/stlport/stl/_strstream.h diff --git a/reactos/include/c++/stlport/stl/_tempbuf.c b/include/c++/stlport/stl/_tempbuf.c similarity index 100% rename from reactos/include/c++/stlport/stl/_tempbuf.c rename to include/c++/stlport/stl/_tempbuf.c diff --git a/reactos/include/c++/stlport/stl/_tempbuf.h b/include/c++/stlport/stl/_tempbuf.h similarity index 100% rename from reactos/include/c++/stlport/stl/_tempbuf.h rename to include/c++/stlport/stl/_tempbuf.h diff --git a/reactos/include/c++/stlport/stl/_threads.c b/include/c++/stlport/stl/_threads.c similarity index 100% rename from reactos/include/c++/stlport/stl/_threads.c rename to include/c++/stlport/stl/_threads.c diff --git a/reactos/include/c++/stlport/stl/_threads.h b/include/c++/stlport/stl/_threads.h similarity index 100% rename from reactos/include/c++/stlport/stl/_threads.h rename to include/c++/stlport/stl/_threads.h diff --git a/reactos/include/c++/stlport/stl/_time_facets.c b/include/c++/stlport/stl/_time_facets.c similarity index 100% rename from reactos/include/c++/stlport/stl/_time_facets.c rename to include/c++/stlport/stl/_time_facets.c diff --git a/reactos/include/c++/stlport/stl/_time_facets.h b/include/c++/stlport/stl/_time_facets.h similarity index 100% rename from reactos/include/c++/stlport/stl/_time_facets.h rename to include/c++/stlport/stl/_time_facets.h diff --git a/reactos/include/c++/stlport/stl/_tree.c b/include/c++/stlport/stl/_tree.c similarity index 100% rename from reactos/include/c++/stlport/stl/_tree.c rename to include/c++/stlport/stl/_tree.c diff --git a/reactos/include/c++/stlport/stl/_tree.h b/include/c++/stlport/stl/_tree.h similarity index 100% rename from reactos/include/c++/stlport/stl/_tree.h rename to include/c++/stlport/stl/_tree.h diff --git a/reactos/include/c++/stlport/stl/_typeinfo.h b/include/c++/stlport/stl/_typeinfo.h similarity index 100% rename from reactos/include/c++/stlport/stl/_typeinfo.h rename to include/c++/stlport/stl/_typeinfo.h diff --git a/reactos/include/c++/stlport/stl/_uninitialized.h b/include/c++/stlport/stl/_uninitialized.h similarity index 100% rename from reactos/include/c++/stlport/stl/_uninitialized.h rename to include/c++/stlport/stl/_uninitialized.h diff --git a/reactos/include/c++/stlport/stl/_unordered_map.h b/include/c++/stlport/stl/_unordered_map.h similarity index 100% rename from reactos/include/c++/stlport/stl/_unordered_map.h rename to include/c++/stlport/stl/_unordered_map.h diff --git a/reactos/include/c++/stlport/stl/_unordered_set.h b/include/c++/stlport/stl/_unordered_set.h similarity index 100% rename from reactos/include/c++/stlport/stl/_unordered_set.h rename to include/c++/stlport/stl/_unordered_set.h diff --git a/reactos/include/c++/stlport/stl/_valarray.c b/include/c++/stlport/stl/_valarray.c similarity index 100% rename from reactos/include/c++/stlport/stl/_valarray.c rename to include/c++/stlport/stl/_valarray.c diff --git a/reactos/include/c++/stlport/stl/_valarray.h b/include/c++/stlport/stl/_valarray.h similarity index 100% rename from reactos/include/c++/stlport/stl/_valarray.h rename to include/c++/stlport/stl/_valarray.h diff --git a/reactos/include/c++/stlport/stl/_vector.c b/include/c++/stlport/stl/_vector.c similarity index 100% rename from reactos/include/c++/stlport/stl/_vector.c rename to include/c++/stlport/stl/_vector.c diff --git a/reactos/include/c++/stlport/stl/_vector.h b/include/c++/stlport/stl/_vector.h similarity index 100% rename from reactos/include/c++/stlport/stl/_vector.h rename to include/c++/stlport/stl/_vector.h diff --git a/reactos/include/c++/stlport/stl/boost_type_traits.h b/include/c++/stlport/stl/boost_type_traits.h similarity index 100% rename from reactos/include/c++/stlport/stl/boost_type_traits.h rename to include/c++/stlport/stl/boost_type_traits.h diff --git a/reactos/include/c++/stlport/stl/c_locale.h b/include/c++/stlport/stl/c_locale.h similarity index 100% rename from reactos/include/c++/stlport/stl/c_locale.h rename to include/c++/stlport/stl/c_locale.h diff --git a/reactos/include/c++/stlport/stl/char_traits.h b/include/c++/stlport/stl/char_traits.h similarity index 100% rename from reactos/include/c++/stlport/stl/char_traits.h rename to include/c++/stlport/stl/char_traits.h diff --git a/reactos/include/c++/stlport/stl/concept_checks.h b/include/c++/stlport/stl/concept_checks.h similarity index 100% rename from reactos/include/c++/stlport/stl/concept_checks.h rename to include/c++/stlport/stl/concept_checks.h diff --git a/reactos/include/c++/stlport/stl/config/_aix.h b/include/c++/stlport/stl/config/_aix.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_aix.h rename to include/c++/stlport/stl/config/_aix.h diff --git a/reactos/include/c++/stlport/stl/config/_apcc.h b/include/c++/stlport/stl/config/_apcc.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_apcc.h rename to include/c++/stlport/stl/config/_apcc.h diff --git a/reactos/include/c++/stlport/stl/config/_apple.h b/include/c++/stlport/stl/config/_apple.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_apple.h rename to include/c++/stlport/stl/config/_apple.h diff --git a/reactos/include/c++/stlport/stl/config/_as400.h b/include/c++/stlport/stl/config/_as400.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_as400.h rename to include/c++/stlport/stl/config/_as400.h diff --git a/reactos/include/c++/stlport/stl/config/_auto_link.h b/include/c++/stlport/stl/config/_auto_link.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_auto_link.h rename to include/c++/stlport/stl/config/_auto_link.h diff --git a/reactos/include/c++/stlport/stl/config/_bc.h b/include/c++/stlport/stl/config/_bc.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_bc.h rename to include/c++/stlport/stl/config/_bc.h diff --git a/reactos/include/c++/stlport/stl/config/_como.h b/include/c++/stlport/stl/config/_como.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_como.h rename to include/c++/stlport/stl/config/_como.h diff --git a/reactos/include/c++/stlport/stl/config/_cray.h b/include/c++/stlport/stl/config/_cray.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_cray.h rename to include/c++/stlport/stl/config/_cray.h diff --git a/reactos/include/c++/stlport/stl/config/_cygwin.h b/include/c++/stlport/stl/config/_cygwin.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_cygwin.h rename to include/c++/stlport/stl/config/_cygwin.h diff --git a/reactos/include/c++/stlport/stl/config/_dec.h b/include/c++/stlport/stl/config/_dec.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_dec.h rename to include/c++/stlport/stl/config/_dec.h diff --git a/reactos/include/c++/stlport/stl/config/_dec_vms.h b/include/c++/stlport/stl/config/_dec_vms.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_dec_vms.h rename to include/c++/stlport/stl/config/_dec_vms.h diff --git a/reactos/include/c++/stlport/stl/config/_detect_dll_or_lib.h b/include/c++/stlport/stl/config/_detect_dll_or_lib.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_detect_dll_or_lib.h rename to include/c++/stlport/stl/config/_detect_dll_or_lib.h diff --git a/reactos/include/c++/stlport/stl/config/_dm.h b/include/c++/stlport/stl/config/_dm.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_dm.h rename to include/c++/stlport/stl/config/_dm.h diff --git a/reactos/include/c++/stlport/stl/config/_epilog.h b/include/c++/stlport/stl/config/_epilog.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_epilog.h rename to include/c++/stlport/stl/config/_epilog.h diff --git a/reactos/include/c++/stlport/stl/config/_evc.h b/include/c++/stlport/stl/config/_evc.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_evc.h rename to include/c++/stlport/stl/config/_evc.h diff --git a/reactos/include/c++/stlport/stl/config/_feedback.h b/include/c++/stlport/stl/config/_feedback.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_feedback.h rename to include/c++/stlport/stl/config/_feedback.h diff --git a/reactos/include/c++/stlport/stl/config/_freebsd.h b/include/c++/stlport/stl/config/_freebsd.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_freebsd.h rename to include/c++/stlport/stl/config/_freebsd.h diff --git a/reactos/include/c++/stlport/stl/config/_fujitsu.h b/include/c++/stlport/stl/config/_fujitsu.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_fujitsu.h rename to include/c++/stlport/stl/config/_fujitsu.h diff --git a/reactos/include/c++/stlport/stl/config/_gcc.h b/include/c++/stlport/stl/config/_gcc.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_gcc.h rename to include/c++/stlport/stl/config/_gcc.h diff --git a/reactos/include/c++/stlport/stl/config/_hpacc.h b/include/c++/stlport/stl/config/_hpacc.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_hpacc.h rename to include/c++/stlport/stl/config/_hpacc.h diff --git a/reactos/include/c++/stlport/stl/config/_hpux.h b/include/c++/stlport/stl/config/_hpux.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_hpux.h rename to include/c++/stlport/stl/config/_hpux.h diff --git a/reactos/include/c++/stlport/stl/config/_ibm.h b/include/c++/stlport/stl/config/_ibm.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_ibm.h rename to include/c++/stlport/stl/config/_ibm.h diff --git a/reactos/include/c++/stlport/stl/config/_icc.h b/include/c++/stlport/stl/config/_icc.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_icc.h rename to include/c++/stlport/stl/config/_icc.h diff --git a/reactos/include/c++/stlport/stl/config/_intel.h b/include/c++/stlport/stl/config/_intel.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_intel.h rename to include/c++/stlport/stl/config/_intel.h diff --git a/reactos/include/c++/stlport/stl/config/_kai.h b/include/c++/stlport/stl/config/_kai.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_kai.h rename to include/c++/stlport/stl/config/_kai.h diff --git a/reactos/include/c++/stlport/stl/config/_linux.h b/include/c++/stlport/stl/config/_linux.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_linux.h rename to include/c++/stlport/stl/config/_linux.h diff --git a/reactos/include/c++/stlport/stl/config/_mac.h b/include/c++/stlport/stl/config/_mac.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_mac.h rename to include/c++/stlport/stl/config/_mac.h diff --git a/reactos/include/c++/stlport/stl/config/_macosx.h b/include/c++/stlport/stl/config/_macosx.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_macosx.h rename to include/c++/stlport/stl/config/_macosx.h diff --git a/reactos/include/c++/stlport/stl/config/_mlc.h b/include/c++/stlport/stl/config/_mlc.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_mlc.h rename to include/c++/stlport/stl/config/_mlc.h diff --git a/reactos/include/c++/stlport/stl/config/_msvc.h b/include/c++/stlport/stl/config/_msvc.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_msvc.h rename to include/c++/stlport/stl/config/_msvc.h diff --git a/reactos/include/c++/stlport/stl/config/_mwerks.h b/include/c++/stlport/stl/config/_mwerks.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_mwerks.h rename to include/c++/stlport/stl/config/_mwerks.h diff --git a/reactos/include/c++/stlport/stl/config/_native_headers.h b/include/c++/stlport/stl/config/_native_headers.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_native_headers.h rename to include/c++/stlport/stl/config/_native_headers.h diff --git a/reactos/include/c++/stlport/stl/config/_openbsd.h b/include/c++/stlport/stl/config/_openbsd.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_openbsd.h rename to include/c++/stlport/stl/config/_openbsd.h diff --git a/reactos/include/c++/stlport/stl/config/_prolog.h b/include/c++/stlport/stl/config/_prolog.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_prolog.h rename to include/c++/stlport/stl/config/_prolog.h diff --git a/reactos/include/c++/stlport/stl/config/_reactos.h b/include/c++/stlport/stl/config/_reactos.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_reactos.h rename to include/c++/stlport/stl/config/_reactos.h diff --git a/reactos/include/c++/stlport/stl/config/_sgi.h b/include/c++/stlport/stl/config/_sgi.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_sgi.h rename to include/c++/stlport/stl/config/_sgi.h diff --git a/reactos/include/c++/stlport/stl/config/_solaris.h b/include/c++/stlport/stl/config/_solaris.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_solaris.h rename to include/c++/stlport/stl/config/_solaris.h diff --git a/reactos/include/c++/stlport/stl/config/_sunprocc.h b/include/c++/stlport/stl/config/_sunprocc.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_sunprocc.h rename to include/c++/stlport/stl/config/_sunprocc.h diff --git a/reactos/include/c++/stlport/stl/config/_system.h b/include/c++/stlport/stl/config/_system.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_system.h rename to include/c++/stlport/stl/config/_system.h diff --git a/reactos/include/c++/stlport/stl/config/_warnings_off.h b/include/c++/stlport/stl/config/_warnings_off.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_warnings_off.h rename to include/c++/stlport/stl/config/_warnings_off.h diff --git a/reactos/include/c++/stlport/stl/config/_watcom.h b/include/c++/stlport/stl/config/_watcom.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_watcom.h rename to include/c++/stlport/stl/config/_watcom.h diff --git a/reactos/include/c++/stlport/stl/config/_windows.h b/include/c++/stlport/stl/config/_windows.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/_windows.h rename to include/c++/stlport/stl/config/_windows.h diff --git a/reactos/include/c++/stlport/stl/config/compat.h b/include/c++/stlport/stl/config/compat.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/compat.h rename to include/c++/stlport/stl/config/compat.h diff --git a/reactos/include/c++/stlport/stl/config/features.h b/include/c++/stlport/stl/config/features.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/features.h rename to include/c++/stlport/stl/config/features.h diff --git a/reactos/include/c++/stlport/stl/config/host.h b/include/c++/stlport/stl/config/host.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/host.h rename to include/c++/stlport/stl/config/host.h diff --git a/reactos/include/c++/stlport/stl/config/stl_confix.h b/include/c++/stlport/stl/config/stl_confix.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/stl_confix.h rename to include/c++/stlport/stl/config/stl_confix.h diff --git a/reactos/include/c++/stlport/stl/config/stl_mycomp.h b/include/c++/stlport/stl/config/stl_mycomp.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/stl_mycomp.h rename to include/c++/stlport/stl/config/stl_mycomp.h diff --git a/reactos/include/c++/stlport/stl/config/user_config.h b/include/c++/stlport/stl/config/user_config.h similarity index 100% rename from reactos/include/c++/stlport/stl/config/user_config.h rename to include/c++/stlport/stl/config/user_config.h diff --git a/reactos/include/c++/stlport/stl/debug/_debug.c b/include/c++/stlport/stl/debug/_debug.c similarity index 100% rename from reactos/include/c++/stlport/stl/debug/_debug.c rename to include/c++/stlport/stl/debug/_debug.c diff --git a/reactos/include/c++/stlport/stl/debug/_debug.h b/include/c++/stlport/stl/debug/_debug.h similarity index 100% rename from reactos/include/c++/stlport/stl/debug/_debug.h rename to include/c++/stlport/stl/debug/_debug.h diff --git a/reactos/include/c++/stlport/stl/debug/_deque.h b/include/c++/stlport/stl/debug/_deque.h similarity index 100% rename from reactos/include/c++/stlport/stl/debug/_deque.h rename to include/c++/stlport/stl/debug/_deque.h diff --git a/reactos/include/c++/stlport/stl/debug/_hashtable.h b/include/c++/stlport/stl/debug/_hashtable.h similarity index 100% rename from reactos/include/c++/stlport/stl/debug/_hashtable.h rename to include/c++/stlport/stl/debug/_hashtable.h diff --git a/reactos/include/c++/stlport/stl/debug/_iterator.h b/include/c++/stlport/stl/debug/_iterator.h similarity index 100% rename from reactos/include/c++/stlport/stl/debug/_iterator.h rename to include/c++/stlport/stl/debug/_iterator.h diff --git a/reactos/include/c++/stlport/stl/debug/_list.h b/include/c++/stlport/stl/debug/_list.h similarity index 100% rename from reactos/include/c++/stlport/stl/debug/_list.h rename to include/c++/stlport/stl/debug/_list.h diff --git a/reactos/include/c++/stlport/stl/debug/_slist.h b/include/c++/stlport/stl/debug/_slist.h similarity index 100% rename from reactos/include/c++/stlport/stl/debug/_slist.h rename to include/c++/stlport/stl/debug/_slist.h diff --git a/reactos/include/c++/stlport/stl/debug/_string.h b/include/c++/stlport/stl/debug/_string.h similarity index 100% rename from reactos/include/c++/stlport/stl/debug/_string.h rename to include/c++/stlport/stl/debug/_string.h diff --git a/reactos/include/c++/stlport/stl/debug/_string_sum_methods.h b/include/c++/stlport/stl/debug/_string_sum_methods.h similarity index 100% rename from reactos/include/c++/stlport/stl/debug/_string_sum_methods.h rename to include/c++/stlport/stl/debug/_string_sum_methods.h diff --git a/reactos/include/c++/stlport/stl/debug/_tree.h b/include/c++/stlport/stl/debug/_tree.h similarity index 100% rename from reactos/include/c++/stlport/stl/debug/_tree.h rename to include/c++/stlport/stl/debug/_tree.h diff --git a/reactos/include/c++/stlport/stl/debug/_vector.h b/include/c++/stlport/stl/debug/_vector.h similarity index 100% rename from reactos/include/c++/stlport/stl/debug/_vector.h rename to include/c++/stlport/stl/debug/_vector.h diff --git a/reactos/include/c++/stlport/stl/msl_string.h b/include/c++/stlport/stl/msl_string.h similarity index 100% rename from reactos/include/c++/stlport/stl/msl_string.h rename to include/c++/stlport/stl/msl_string.h diff --git a/reactos/include/c++/stlport/stl/pointers/_deque.h b/include/c++/stlport/stl/pointers/_deque.h similarity index 100% rename from reactos/include/c++/stlport/stl/pointers/_deque.h rename to include/c++/stlport/stl/pointers/_deque.h diff --git a/reactos/include/c++/stlport/stl/pointers/_list.h b/include/c++/stlport/stl/pointers/_list.h similarity index 100% rename from reactos/include/c++/stlport/stl/pointers/_list.h rename to include/c++/stlport/stl/pointers/_list.h diff --git a/reactos/include/c++/stlport/stl/pointers/_set.h b/include/c++/stlport/stl/pointers/_set.h similarity index 100% rename from reactos/include/c++/stlport/stl/pointers/_set.h rename to include/c++/stlport/stl/pointers/_set.h diff --git a/reactos/include/c++/stlport/stl/pointers/_slist.h b/include/c++/stlport/stl/pointers/_slist.h similarity index 100% rename from reactos/include/c++/stlport/stl/pointers/_slist.h rename to include/c++/stlport/stl/pointers/_slist.h diff --git a/reactos/include/c++/stlport/stl/pointers/_tools.h b/include/c++/stlport/stl/pointers/_tools.h similarity index 100% rename from reactos/include/c++/stlport/stl/pointers/_tools.h rename to include/c++/stlport/stl/pointers/_tools.h diff --git a/reactos/include/c++/stlport/stl/pointers/_vector.h b/include/c++/stlport/stl/pointers/_vector.h similarity index 100% rename from reactos/include/c++/stlport/stl/pointers/_vector.h rename to include/c++/stlport/stl/pointers/_vector.h diff --git a/reactos/include/c++/stlport/stl/type_manips.h b/include/c++/stlport/stl/type_manips.h similarity index 100% rename from reactos/include/c++/stlport/stl/type_manips.h rename to include/c++/stlport/stl/type_manips.h diff --git a/reactos/include/c++/stlport/stl/type_traits.h b/include/c++/stlport/stl/type_traits.h similarity index 100% rename from reactos/include/c++/stlport/stl/type_traits.h rename to include/c++/stlport/stl/type_traits.h diff --git a/reactos/include/c++/stlport/streambuf b/include/c++/stlport/streambuf similarity index 100% rename from reactos/include/c++/stlport/streambuf rename to include/c++/stlport/streambuf diff --git a/reactos/include/c++/stlport/streambuf.h b/include/c++/stlport/streambuf.h similarity index 100% rename from reactos/include/c++/stlport/streambuf.h rename to include/c++/stlport/streambuf.h diff --git a/reactos/include/c++/stlport/string b/include/c++/stlport/string similarity index 100% rename from reactos/include/c++/stlport/string rename to include/c++/stlport/string diff --git a/reactos/include/c++/stlport/string.h b/include/c++/stlport/string.h similarity index 100% rename from reactos/include/c++/stlport/string.h rename to include/c++/stlport/string.h diff --git a/reactos/include/c++/stlport/strstream b/include/c++/stlport/strstream similarity index 100% rename from reactos/include/c++/stlport/strstream rename to include/c++/stlport/strstream diff --git a/reactos/include/c++/stlport/strstream.h b/include/c++/stlport/strstream.h similarity index 100% rename from reactos/include/c++/stlport/strstream.h rename to include/c++/stlport/strstream.h diff --git a/reactos/include/c++/stlport/time.h b/include/c++/stlport/time.h similarity index 100% rename from reactos/include/c++/stlport/time.h rename to include/c++/stlport/time.h diff --git a/reactos/include/c++/stlport/type_traits b/include/c++/stlport/type_traits similarity index 100% rename from reactos/include/c++/stlport/type_traits rename to include/c++/stlport/type_traits diff --git a/reactos/include/c++/stlport/typeinfo b/include/c++/stlport/typeinfo similarity index 100% rename from reactos/include/c++/stlport/typeinfo rename to include/c++/stlport/typeinfo diff --git a/reactos/include/c++/stlport/typeinfo.h b/include/c++/stlport/typeinfo.h similarity index 100% rename from reactos/include/c++/stlport/typeinfo.h rename to include/c++/stlport/typeinfo.h diff --git a/reactos/include/c++/stlport/unordered_map b/include/c++/stlport/unordered_map similarity index 100% rename from reactos/include/c++/stlport/unordered_map rename to include/c++/stlport/unordered_map diff --git a/reactos/include/c++/stlport/unordered_set b/include/c++/stlport/unordered_set similarity index 100% rename from reactos/include/c++/stlport/unordered_set rename to include/c++/stlport/unordered_set diff --git a/reactos/include/c++/stlport/using/cstring b/include/c++/stlport/using/cstring similarity index 100% rename from reactos/include/c++/stlport/using/cstring rename to include/c++/stlport/using/cstring diff --git a/reactos/include/c++/stlport/using/export b/include/c++/stlport/using/export similarity index 100% rename from reactos/include/c++/stlport/using/export rename to include/c++/stlport/using/export diff --git a/reactos/include/c++/stlport/using/fstream b/include/c++/stlport/using/fstream similarity index 100% rename from reactos/include/c++/stlport/using/fstream rename to include/c++/stlport/using/fstream diff --git a/reactos/include/c++/stlport/using/h/fstream.h b/include/c++/stlport/using/h/fstream.h similarity index 100% rename from reactos/include/c++/stlport/using/h/fstream.h rename to include/c++/stlport/using/h/fstream.h diff --git a/reactos/include/c++/stlport/using/h/iomanip.h b/include/c++/stlport/using/h/iomanip.h similarity index 100% rename from reactos/include/c++/stlport/using/h/iomanip.h rename to include/c++/stlport/using/h/iomanip.h diff --git a/reactos/include/c++/stlport/using/h/iostream.h b/include/c++/stlport/using/h/iostream.h similarity index 100% rename from reactos/include/c++/stlport/using/h/iostream.h rename to include/c++/stlport/using/h/iostream.h diff --git a/reactos/include/c++/stlport/using/h/ostream.h b/include/c++/stlport/using/h/ostream.h similarity index 100% rename from reactos/include/c++/stlport/using/h/ostream.h rename to include/c++/stlport/using/h/ostream.h diff --git a/reactos/include/c++/stlport/using/h/streambuf.h b/include/c++/stlport/using/h/streambuf.h similarity index 100% rename from reactos/include/c++/stlport/using/h/streambuf.h rename to include/c++/stlport/using/h/streambuf.h diff --git a/reactos/include/c++/stlport/using/h/strstream.h b/include/c++/stlport/using/h/strstream.h similarity index 100% rename from reactos/include/c++/stlport/using/h/strstream.h rename to include/c++/stlport/using/h/strstream.h diff --git a/reactos/include/c++/stlport/using/iomanip b/include/c++/stlport/using/iomanip similarity index 100% rename from reactos/include/c++/stlport/using/iomanip rename to include/c++/stlport/using/iomanip diff --git a/reactos/include/c++/stlport/using/ios b/include/c++/stlport/using/ios similarity index 100% rename from reactos/include/c++/stlport/using/ios rename to include/c++/stlport/using/ios diff --git a/reactos/include/c++/stlport/using/iosfwd b/include/c++/stlport/using/iosfwd similarity index 100% rename from reactos/include/c++/stlport/using/iosfwd rename to include/c++/stlport/using/iosfwd diff --git a/reactos/include/c++/stlport/using/iostream b/include/c++/stlport/using/iostream similarity index 100% rename from reactos/include/c++/stlport/using/iostream rename to include/c++/stlport/using/iostream diff --git a/reactos/include/c++/stlport/using/istream b/include/c++/stlport/using/istream similarity index 100% rename from reactos/include/c++/stlport/using/istream rename to include/c++/stlport/using/istream diff --git a/reactos/include/c++/stlport/using/locale b/include/c++/stlport/using/locale similarity index 100% rename from reactos/include/c++/stlport/using/locale rename to include/c++/stlport/using/locale diff --git a/reactos/include/c++/stlport/using/ostream b/include/c++/stlport/using/ostream similarity index 100% rename from reactos/include/c++/stlport/using/ostream rename to include/c++/stlport/using/ostream diff --git a/reactos/include/c++/stlport/using/sstream b/include/c++/stlport/using/sstream similarity index 100% rename from reactos/include/c++/stlport/using/sstream rename to include/c++/stlport/using/sstream diff --git a/reactos/include/c++/stlport/using/streambuf b/include/c++/stlport/using/streambuf similarity index 100% rename from reactos/include/c++/stlport/using/streambuf rename to include/c++/stlport/using/streambuf diff --git a/reactos/include/c++/stlport/using/strstream b/include/c++/stlport/using/strstream similarity index 100% rename from reactos/include/c++/stlport/using/strstream rename to include/c++/stlport/using/strstream diff --git a/reactos/include/c++/stlport/utility b/include/c++/stlport/utility similarity index 100% rename from reactos/include/c++/stlport/utility rename to include/c++/stlport/utility diff --git a/reactos/include/c++/stlport/valarray b/include/c++/stlport/valarray similarity index 100% rename from reactos/include/c++/stlport/valarray rename to include/c++/stlport/valarray diff --git a/reactos/include/c++/stlport/vector b/include/c++/stlport/vector similarity index 100% rename from reactos/include/c++/stlport/vector rename to include/c++/stlport/vector diff --git a/reactos/include/c++/stlport/wchar.h b/include/c++/stlport/wchar.h similarity index 100% rename from reactos/include/c++/stlport/wchar.h rename to include/c++/stlport/wchar.h diff --git a/reactos/include/c++/stlport/wctype.h b/include/c++/stlport/wctype.h similarity index 100% rename from reactos/include/c++/stlport/wctype.h rename to include/c++/stlport/wctype.h diff --git a/reactos/include/c++/typeinfo b/include/c++/typeinfo similarity index 100% rename from reactos/include/c++/typeinfo rename to include/c++/typeinfo diff --git a/reactos/include/crt/_mingw.h b/include/crt/_mingw.h similarity index 100% rename from reactos/include/crt/_mingw.h rename to include/crt/_mingw.h diff --git a/reactos/include/crt/_mingw_mac.h b/include/crt/_mingw_mac.h similarity index 100% rename from reactos/include/crt/_mingw_mac.h rename to include/crt/_mingw_mac.h diff --git a/reactos/include/crt/_mingw_unicode.h b/include/crt/_mingw_unicode.h similarity index 100% rename from reactos/include/crt/_mingw_unicode.h rename to include/crt/_mingw_unicode.h diff --git a/reactos/include/crt/assert.h b/include/crt/assert.h similarity index 100% rename from reactos/include/crt/assert.h rename to include/crt/assert.h diff --git a/reactos/include/crt/complex.h b/include/crt/complex.h similarity index 100% rename from reactos/include/crt/complex.h rename to include/crt/complex.h diff --git a/reactos/include/crt/conio.h b/include/crt/conio.h similarity index 100% rename from reactos/include/crt/conio.h rename to include/crt/conio.h diff --git a/reactos/include/crt/crtdbg.h b/include/crt/crtdbg.h similarity index 100% rename from reactos/include/crt/crtdbg.h rename to include/crt/crtdbg.h diff --git a/reactos/include/crt/crtdefs.h b/include/crt/crtdefs.h similarity index 100% rename from reactos/include/crt/crtdefs.h rename to include/crt/crtdefs.h diff --git a/reactos/include/crt/ctype.h b/include/crt/ctype.h similarity index 100% rename from reactos/include/crt/ctype.h rename to include/crt/ctype.h diff --git a/reactos/include/crt/direct.h b/include/crt/direct.h similarity index 100% rename from reactos/include/crt/direct.h rename to include/crt/direct.h diff --git a/reactos/include/crt/dirent.h b/include/crt/dirent.h similarity index 100% rename from reactos/include/crt/dirent.h rename to include/crt/dirent.h diff --git a/reactos/include/crt/dos.h b/include/crt/dos.h similarity index 100% rename from reactos/include/crt/dos.h rename to include/crt/dos.h diff --git a/reactos/include/crt/dvec.h b/include/crt/dvec.h similarity index 100% rename from reactos/include/crt/dvec.h rename to include/crt/dvec.h diff --git a/reactos/include/crt/eh.h b/include/crt/eh.h similarity index 100% rename from reactos/include/crt/eh.h rename to include/crt/eh.h diff --git a/reactos/include/crt/emmintrin.h b/include/crt/emmintrin.h similarity index 100% rename from reactos/include/crt/emmintrin.h rename to include/crt/emmintrin.h diff --git a/reactos/include/crt/errno.h b/include/crt/errno.h similarity index 100% rename from reactos/include/crt/errno.h rename to include/crt/errno.h diff --git a/reactos/include/crt/excpt.h b/include/crt/excpt.h similarity index 100% rename from reactos/include/crt/excpt.h rename to include/crt/excpt.h diff --git a/reactos/include/crt/fcntl.h b/include/crt/fcntl.h similarity index 100% rename from reactos/include/crt/fcntl.h rename to include/crt/fcntl.h diff --git a/reactos/include/crt/fenv.h b/include/crt/fenv.h similarity index 100% rename from reactos/include/crt/fenv.h rename to include/crt/fenv.h diff --git a/reactos/include/crt/float.h b/include/crt/float.h similarity index 100% rename from reactos/include/crt/float.h rename to include/crt/float.h diff --git a/reactos/include/crt/fpieee.h b/include/crt/fpieee.h similarity index 100% rename from reactos/include/crt/fpieee.h rename to include/crt/fpieee.h diff --git a/reactos/include/crt/fvec.h b/include/crt/fvec.h similarity index 100% rename from reactos/include/crt/fvec.h rename to include/crt/fvec.h diff --git a/reactos/include/crt/getopt.h b/include/crt/getopt.h similarity index 100% rename from reactos/include/crt/getopt.h rename to include/crt/getopt.h diff --git a/reactos/include/crt/inttypes.h b/include/crt/inttypes.h similarity index 100% rename from reactos/include/crt/inttypes.h rename to include/crt/inttypes.h diff --git a/reactos/include/crt/io.h b/include/crt/io.h similarity index 100% rename from reactos/include/crt/io.h rename to include/crt/io.h diff --git a/reactos/include/crt/libgen.h b/include/crt/libgen.h similarity index 100% rename from reactos/include/crt/libgen.h rename to include/crt/libgen.h diff --git a/reactos/include/crt/limits.h b/include/crt/limits.h similarity index 100% rename from reactos/include/crt/limits.h rename to include/crt/limits.h diff --git a/reactos/include/crt/locale.h b/include/crt/locale.h similarity index 100% rename from reactos/include/crt/locale.h rename to include/crt/locale.h diff --git a/reactos/include/crt/malloc.h b/include/crt/malloc.h similarity index 100% rename from reactos/include/crt/malloc.h rename to include/crt/malloc.h diff --git a/reactos/include/crt/math.h b/include/crt/math.h similarity index 100% rename from reactos/include/crt/math.h rename to include/crt/math.h diff --git a/reactos/include/crt/mbctype.h b/include/crt/mbctype.h similarity index 100% rename from reactos/include/crt/mbctype.h rename to include/crt/mbctype.h diff --git a/reactos/include/crt/mbstring.h b/include/crt/mbstring.h similarity index 100% rename from reactos/include/crt/mbstring.h rename to include/crt/mbstring.h diff --git a/reactos/include/crt/mem.h b/include/crt/mem.h similarity index 100% rename from reactos/include/crt/mem.h rename to include/crt/mem.h diff --git a/reactos/include/crt/memory.h b/include/crt/memory.h similarity index 100% rename from reactos/include/crt/memory.h rename to include/crt/memory.h diff --git a/reactos/include/crt/mingw32/gcc_float.h b/include/crt/mingw32/gcc_float.h similarity index 100% rename from reactos/include/crt/mingw32/gcc_float.h rename to include/crt/mingw32/gcc_float.h diff --git a/reactos/include/crt/mingw32/intrin.h b/include/crt/mingw32/intrin.h similarity index 100% rename from reactos/include/crt/mingw32/intrin.h rename to include/crt/mingw32/intrin.h diff --git a/reactos/include/crt/mingw32/intrin_arm.h b/include/crt/mingw32/intrin_arm.h similarity index 100% rename from reactos/include/crt/mingw32/intrin_arm.h rename to include/crt/mingw32/intrin_arm.h diff --git a/reactos/include/crt/mingw32/intrin_ppc.h b/include/crt/mingw32/intrin_ppc.h similarity index 100% rename from reactos/include/crt/mingw32/intrin_ppc.h rename to include/crt/mingw32/intrin_ppc.h diff --git a/reactos/include/crt/mingw32/intrin_x86.h b/include/crt/mingw32/intrin_x86.h similarity index 100% rename from reactos/include/crt/mingw32/intrin_x86.h rename to include/crt/mingw32/intrin_x86.h diff --git a/reactos/include/crt/mingw32/intrin_x86_64.h b/include/crt/mingw32/intrin_x86_64.h similarity index 100% rename from reactos/include/crt/mingw32/intrin_x86_64.h rename to include/crt/mingw32/intrin_x86_64.h diff --git a/reactos/include/crt/mingw32/stdbool.h b/include/crt/mingw32/stdbool.h similarity index 100% rename from reactos/include/crt/mingw32/stdbool.h rename to include/crt/mingw32/stdbool.h diff --git a/reactos/include/crt/mingw_math.h b/include/crt/mingw_math.h similarity index 100% rename from reactos/include/crt/mingw_math.h rename to include/crt/mingw_math.h diff --git a/reactos/include/crt/minmax.h b/include/crt/minmax.h similarity index 100% rename from reactos/include/crt/minmax.h rename to include/crt/minmax.h diff --git a/reactos/include/crt/mmintrin.h b/include/crt/mmintrin.h similarity index 100% rename from reactos/include/crt/mmintrin.h rename to include/crt/mmintrin.h diff --git a/reactos/include/crt/msc/intrin.h b/include/crt/msc/intrin.h similarity index 100% rename from reactos/include/crt/msc/intrin.h rename to include/crt/msc/intrin.h diff --git a/reactos/include/crt/msc/msc_float.h b/include/crt/msc/msc_float.h similarity index 100% rename from reactos/include/crt/msc/msc_float.h rename to include/crt/msc/msc_float.h diff --git a/reactos/include/crt/new.h b/include/crt/new.h similarity index 100% rename from reactos/include/crt/new.h rename to include/crt/new.h diff --git a/reactos/include/crt/pgobootrun.h b/include/crt/pgobootrun.h similarity index 100% rename from reactos/include/crt/pgobootrun.h rename to include/crt/pgobootrun.h diff --git a/reactos/include/crt/process.h b/include/crt/process.h similarity index 100% rename from reactos/include/crt/process.h rename to include/crt/process.h diff --git a/reactos/include/crt/rtcapi.h b/include/crt/rtcapi.h similarity index 100% rename from reactos/include/crt/rtcapi.h rename to include/crt/rtcapi.h diff --git a/reactos/include/crt/search.h b/include/crt/search.h similarity index 100% rename from reactos/include/crt/search.h rename to include/crt/search.h diff --git a/reactos/include/crt/sec_api/conio_s.h b/include/crt/sec_api/conio_s.h similarity index 100% rename from reactos/include/crt/sec_api/conio_s.h rename to include/crt/sec_api/conio_s.h diff --git a/reactos/include/crt/sec_api/crtdbg_s.h b/include/crt/sec_api/crtdbg_s.h similarity index 100% rename from reactos/include/crt/sec_api/crtdbg_s.h rename to include/crt/sec_api/crtdbg_s.h diff --git a/reactos/include/crt/sec_api/io_s.h b/include/crt/sec_api/io_s.h similarity index 100% rename from reactos/include/crt/sec_api/io_s.h rename to include/crt/sec_api/io_s.h diff --git a/reactos/include/crt/sec_api/mbstring_s.h b/include/crt/sec_api/mbstring_s.h similarity index 100% rename from reactos/include/crt/sec_api/mbstring_s.h rename to include/crt/sec_api/mbstring_s.h diff --git a/reactos/include/crt/sec_api/search_s.h b/include/crt/sec_api/search_s.h similarity index 100% rename from reactos/include/crt/sec_api/search_s.h rename to include/crt/sec_api/search_s.h diff --git a/reactos/include/crt/sec_api/stdio_s.h b/include/crt/sec_api/stdio_s.h similarity index 100% rename from reactos/include/crt/sec_api/stdio_s.h rename to include/crt/sec_api/stdio_s.h diff --git a/reactos/include/crt/sec_api/stdlib_s.h b/include/crt/sec_api/stdlib_s.h similarity index 100% rename from reactos/include/crt/sec_api/stdlib_s.h rename to include/crt/sec_api/stdlib_s.h diff --git a/reactos/include/crt/sec_api/stralign_s.h b/include/crt/sec_api/stralign_s.h similarity index 100% rename from reactos/include/crt/sec_api/stralign_s.h rename to include/crt/sec_api/stralign_s.h diff --git a/reactos/include/crt/sec_api/string_s.h b/include/crt/sec_api/string_s.h similarity index 100% rename from reactos/include/crt/sec_api/string_s.h rename to include/crt/sec_api/string_s.h diff --git a/reactos/include/crt/sec_api/sys/timeb_s.h b/include/crt/sec_api/sys/timeb_s.h similarity index 100% rename from reactos/include/crt/sec_api/sys/timeb_s.h rename to include/crt/sec_api/sys/timeb_s.h diff --git a/reactos/include/crt/sec_api/tchar_s.h b/include/crt/sec_api/tchar_s.h similarity index 100% rename from reactos/include/crt/sec_api/tchar_s.h rename to include/crt/sec_api/tchar_s.h diff --git a/reactos/include/crt/sec_api/time_s.h b/include/crt/sec_api/time_s.h similarity index 100% rename from reactos/include/crt/sec_api/time_s.h rename to include/crt/sec_api/time_s.h diff --git a/reactos/include/crt/sec_api/wchar_s.h b/include/crt/sec_api/wchar_s.h similarity index 100% rename from reactos/include/crt/sec_api/wchar_s.h rename to include/crt/sec_api/wchar_s.h diff --git a/reactos/include/crt/setjmp.h b/include/crt/setjmp.h similarity index 100% rename from reactos/include/crt/setjmp.h rename to include/crt/setjmp.h diff --git a/reactos/include/crt/setjmpex.h b/include/crt/setjmpex.h similarity index 100% rename from reactos/include/crt/setjmpex.h rename to include/crt/setjmpex.h diff --git a/reactos/include/crt/share.h b/include/crt/share.h similarity index 100% rename from reactos/include/crt/share.h rename to include/crt/share.h diff --git a/reactos/include/crt/signal.h b/include/crt/signal.h similarity index 100% rename from reactos/include/crt/signal.h rename to include/crt/signal.h diff --git a/reactos/include/crt/stdarg.h b/include/crt/stdarg.h similarity index 100% rename from reactos/include/crt/stdarg.h rename to include/crt/stdarg.h diff --git a/reactos/include/crt/stddef.h b/include/crt/stddef.h similarity index 100% rename from reactos/include/crt/stddef.h rename to include/crt/stddef.h diff --git a/reactos/include/crt/stdexcpt.h b/include/crt/stdexcpt.h similarity index 100% rename from reactos/include/crt/stdexcpt.h rename to include/crt/stdexcpt.h diff --git a/reactos/include/crt/stdint.h b/include/crt/stdint.h similarity index 100% rename from reactos/include/crt/stdint.h rename to include/crt/stdint.h diff --git a/reactos/include/crt/stdio.h b/include/crt/stdio.h similarity index 100% rename from reactos/include/crt/stdio.h rename to include/crt/stdio.h diff --git a/reactos/include/crt/stdlib.h b/include/crt/stdlib.h similarity index 100% rename from reactos/include/crt/stdlib.h rename to include/crt/stdlib.h diff --git a/reactos/include/crt/string.h b/include/crt/string.h similarity index 100% rename from reactos/include/crt/string.h rename to include/crt/string.h diff --git a/reactos/include/crt/strings.h b/include/crt/strings.h similarity index 100% rename from reactos/include/crt/strings.h rename to include/crt/strings.h diff --git a/reactos/include/crt/sys/cdefs.h b/include/crt/sys/cdefs.h similarity index 100% rename from reactos/include/crt/sys/cdefs.h rename to include/crt/sys/cdefs.h diff --git a/reactos/include/crt/sys/fcntl.h b/include/crt/sys/fcntl.h similarity index 100% rename from reactos/include/crt/sys/fcntl.h rename to include/crt/sys/fcntl.h diff --git a/reactos/include/crt/sys/file.h b/include/crt/sys/file.h similarity index 100% rename from reactos/include/crt/sys/file.h rename to include/crt/sys/file.h diff --git a/reactos/include/crt/sys/ioctl.h b/include/crt/sys/ioctl.h similarity index 100% rename from reactos/include/crt/sys/ioctl.h rename to include/crt/sys/ioctl.h diff --git a/reactos/include/crt/sys/locking.h b/include/crt/sys/locking.h similarity index 100% rename from reactos/include/crt/sys/locking.h rename to include/crt/sys/locking.h diff --git a/reactos/include/crt/sys/param.h b/include/crt/sys/param.h similarity index 100% rename from reactos/include/crt/sys/param.h rename to include/crt/sys/param.h diff --git a/reactos/include/crt/sys/stat.h b/include/crt/sys/stat.h similarity index 100% rename from reactos/include/crt/sys/stat.h rename to include/crt/sys/stat.h diff --git a/reactos/include/crt/sys/time.h b/include/crt/sys/time.h similarity index 100% rename from reactos/include/crt/sys/time.h rename to include/crt/sys/time.h diff --git a/reactos/include/crt/sys/timeb.h b/include/crt/sys/timeb.h similarity index 100% rename from reactos/include/crt/sys/timeb.h rename to include/crt/sys/timeb.h diff --git a/reactos/include/crt/sys/types.h b/include/crt/sys/types.h similarity index 100% rename from reactos/include/crt/sys/types.h rename to include/crt/sys/types.h diff --git a/reactos/include/crt/sys/unistd.h b/include/crt/sys/unistd.h similarity index 100% rename from reactos/include/crt/sys/unistd.h rename to include/crt/sys/unistd.h diff --git a/reactos/include/crt/sys/utime.h b/include/crt/sys/utime.h similarity index 100% rename from reactos/include/crt/sys/utime.h rename to include/crt/sys/utime.h diff --git a/reactos/include/crt/tchar.h b/include/crt/tchar.h similarity index 100% rename from reactos/include/crt/tchar.h rename to include/crt/tchar.h diff --git a/reactos/include/crt/time.h b/include/crt/time.h similarity index 100% rename from reactos/include/crt/time.h rename to include/crt/time.h diff --git a/reactos/include/crt/typeinfo.h b/include/crt/typeinfo.h similarity index 100% rename from reactos/include/crt/typeinfo.h rename to include/crt/typeinfo.h diff --git a/reactos/include/crt/unistd.h b/include/crt/unistd.h similarity index 100% rename from reactos/include/crt/unistd.h rename to include/crt/unistd.h diff --git a/reactos/include/crt/utime.h b/include/crt/utime.h similarity index 100% rename from reactos/include/crt/utime.h rename to include/crt/utime.h diff --git a/reactos/include/crt/vadefs.h b/include/crt/vadefs.h similarity index 100% rename from reactos/include/crt/vadefs.h rename to include/crt/vadefs.h diff --git a/reactos/include/crt/varargs.h b/include/crt/varargs.h similarity index 100% rename from reactos/include/crt/varargs.h rename to include/crt/varargs.h diff --git a/reactos/include/crt/wchar.h b/include/crt/wchar.h similarity index 100% rename from reactos/include/crt/wchar.h rename to include/crt/wchar.h diff --git a/reactos/include/crt/wctype.h b/include/crt/wctype.h similarity index 100% rename from reactos/include/crt/wctype.h rename to include/crt/wctype.h diff --git a/reactos/include/crt/xlocinfo.h b/include/crt/xlocinfo.h similarity index 100% rename from reactos/include/crt/xlocinfo.h rename to include/crt/xlocinfo.h diff --git a/reactos/include/crt/xmath.h b/include/crt/xmath.h similarity index 100% rename from reactos/include/crt/xmath.h rename to include/crt/xmath.h diff --git a/reactos/include/crt/xmmintrin.h b/include/crt/xmmintrin.h similarity index 100% rename from reactos/include/crt/xmmintrin.h rename to include/crt/xmmintrin.h diff --git a/reactos/include/crt/ymath.h b/include/crt/ymath.h similarity index 100% rename from reactos/include/crt/ymath.h rename to include/crt/ymath.h diff --git a/reactos/include/crt/yvals.h b/include/crt/yvals.h similarity index 100% rename from reactos/include/crt/yvals.h rename to include/crt/yvals.h diff --git a/reactos/include/ddk/acpiioct.h b/include/ddk/acpiioct.h similarity index 100% rename from reactos/include/ddk/acpiioct.h rename to include/ddk/acpiioct.h diff --git a/reactos/include/ddk/afilter.h b/include/ddk/afilter.h similarity index 100% rename from reactos/include/ddk/afilter.h rename to include/ddk/afilter.h diff --git a/reactos/include/ddk/amtvuids.h b/include/ddk/amtvuids.h similarity index 100% rename from reactos/include/ddk/amtvuids.h rename to include/ddk/amtvuids.h diff --git a/reactos/include/ddk/atm.h b/include/ddk/atm.h similarity index 100% rename from reactos/include/ddk/atm.h rename to include/ddk/atm.h diff --git a/reactos/include/ddk/bdasup.h b/include/ddk/bdasup.h similarity index 100% rename from reactos/include/ddk/bdasup.h rename to include/ddk/bdasup.h diff --git a/reactos/include/ddk/classpnp.h b/include/ddk/classpnp.h similarity index 100% rename from reactos/include/ddk/classpnp.h rename to include/ddk/classpnp.h diff --git a/reactos/include/ddk/csq.h b/include/ddk/csq.h similarity index 100% rename from reactos/include/ddk/csq.h rename to include/ddk/csq.h diff --git a/reactos/include/ddk/d3dhal.h b/include/ddk/d3dhal.h similarity index 100% rename from reactos/include/ddk/d3dhal.h rename to include/ddk/d3dhal.h diff --git a/reactos/include/ddk/d3dhalex.h b/include/ddk/d3dhalex.h similarity index 100% rename from reactos/include/ddk/d3dhalex.h rename to include/ddk/d3dhalex.h diff --git a/reactos/include/ddk/d4drvif.h b/include/ddk/d4drvif.h similarity index 100% rename from reactos/include/ddk/d4drvif.h rename to include/ddk/d4drvif.h diff --git a/reactos/include/ddk/d4iface.h b/include/ddk/d4iface.h similarity index 100% rename from reactos/include/ddk/d4iface.h rename to include/ddk/d4iface.h diff --git a/reactos/include/ddk/dciddi.h b/include/ddk/dciddi.h similarity index 100% rename from reactos/include/ddk/dciddi.h rename to include/ddk/dciddi.h diff --git a/reactos/include/ddk/dderror.h b/include/ddk/dderror.h similarity index 100% rename from reactos/include/ddk/dderror.h rename to include/ddk/dderror.h diff --git a/reactos/include/ddk/dmusicks.h b/include/ddk/dmusicks.h similarity index 100% rename from reactos/include/ddk/dmusicks.h rename to include/ddk/dmusicks.h diff --git a/reactos/include/ddk/dmusprop.h b/include/ddk/dmusprop.h similarity index 100% rename from reactos/include/ddk/dmusprop.h rename to include/ddk/dmusprop.h diff --git a/reactos/include/ddk/drivinit.h b/include/ddk/drivinit.h similarity index 100% rename from reactos/include/ddk/drivinit.h rename to include/ddk/drivinit.h diff --git a/reactos/include/ddk/drmk.h b/include/ddk/drmk.h similarity index 100% rename from reactos/include/ddk/drmk.h rename to include/ddk/drmk.h diff --git a/reactos/include/ddk/dxapi.h b/include/ddk/dxapi.h similarity index 100% rename from reactos/include/ddk/dxapi.h rename to include/ddk/dxapi.h diff --git a/reactos/include/ddk/fltkernel.h b/include/ddk/fltkernel.h similarity index 100% rename from reactos/include/ddk/fltkernel.h rename to include/ddk/fltkernel.h diff --git a/reactos/include/ddk/fltsafe.h b/include/ddk/fltsafe.h similarity index 100% rename from reactos/include/ddk/fltsafe.h rename to include/ddk/fltsafe.h diff --git a/reactos/include/ddk/fltuser.h b/include/ddk/fltuser.h similarity index 100% rename from reactos/include/ddk/fltuser.h rename to include/ddk/fltuser.h diff --git a/reactos/include/ddk/fltuserstructures.h b/include/ddk/fltuserstructures.h similarity index 100% rename from reactos/include/ddk/fltuserstructures.h rename to include/ddk/fltuserstructures.h diff --git a/reactos/include/ddk/fltwinerror.h b/include/ddk/fltwinerror.h similarity index 100% rename from reactos/include/ddk/fltwinerror.h rename to include/ddk/fltwinerror.h diff --git a/reactos/include/ddk/hidclass.h b/include/ddk/hidclass.h similarity index 100% rename from reactos/include/ddk/hidclass.h rename to include/ddk/hidclass.h diff --git a/reactos/include/ddk/hidpddi.h b/include/ddk/hidpddi.h similarity index 100% rename from reactos/include/ddk/hidpddi.h rename to include/ddk/hidpddi.h diff --git a/reactos/include/ddk/hidport.h b/include/ddk/hidport.h similarity index 100% rename from reactos/include/ddk/hidport.h rename to include/ddk/hidport.h diff --git a/reactos/include/ddk/hubbusif.h b/include/ddk/hubbusif.h similarity index 100% rename from reactos/include/ddk/hubbusif.h rename to include/ddk/hubbusif.h diff --git a/reactos/include/ddk/ide.h b/include/ddk/ide.h similarity index 100% rename from reactos/include/ddk/ide.h rename to include/ddk/ide.h diff --git a/reactos/include/ddk/ioaccess.h b/include/ddk/ioaccess.h similarity index 100% rename from reactos/include/ddk/ioaccess.h rename to include/ddk/ioaccess.h diff --git a/reactos/include/ddk/kbdmou.h b/include/ddk/kbdmou.h similarity index 100% rename from reactos/include/ddk/kbdmou.h rename to include/ddk/kbdmou.h diff --git a/reactos/include/ddk/mcd.h b/include/ddk/mcd.h similarity index 100% rename from reactos/include/ddk/mcd.h rename to include/ddk/mcd.h diff --git a/reactos/include/ddk/mce.h b/include/ddk/mce.h similarity index 100% rename from reactos/include/ddk/mce.h rename to include/ddk/mce.h diff --git a/reactos/include/ddk/miniport.h b/include/ddk/miniport.h similarity index 100% rename from reactos/include/ddk/miniport.h rename to include/ddk/miniport.h diff --git a/reactos/include/ddk/minitape.h b/include/ddk/minitape.h similarity index 100% rename from reactos/include/ddk/minitape.h rename to include/ddk/minitape.h diff --git a/reactos/include/ddk/mountdev.h b/include/ddk/mountdev.h similarity index 100% rename from reactos/include/ddk/mountdev.h rename to include/ddk/mountdev.h diff --git a/reactos/include/ddk/mountmgr.h b/include/ddk/mountmgr.h similarity index 100% rename from reactos/include/ddk/mountmgr.h rename to include/ddk/mountmgr.h diff --git a/reactos/include/ddk/msports.h b/include/ddk/msports.h similarity index 100% rename from reactos/include/ddk/msports.h rename to include/ddk/msports.h diff --git a/reactos/include/ddk/ndis.h b/include/ddk/ndis.h similarity index 100% rename from reactos/include/ddk/ndis.h rename to include/ddk/ndis.h diff --git a/reactos/include/ddk/ndisguid.h b/include/ddk/ndisguid.h similarity index 100% rename from reactos/include/ddk/ndisguid.h rename to include/ddk/ndisguid.h diff --git a/reactos/include/ddk/ndistapi.h b/include/ddk/ndistapi.h similarity index 100% rename from reactos/include/ddk/ndistapi.h rename to include/ddk/ndistapi.h diff --git a/reactos/include/ddk/ndiswan.h b/include/ddk/ndiswan.h similarity index 100% rename from reactos/include/ddk/ndiswan.h rename to include/ddk/ndiswan.h diff --git a/reactos/include/ddk/netioddk.h b/include/ddk/netioddk.h similarity index 100% rename from reactos/include/ddk/netioddk.h rename to include/ddk/netioddk.h diff --git a/reactos/include/ddk/netpnp.h b/include/ddk/netpnp.h similarity index 100% rename from reactos/include/ddk/netpnp.h rename to include/ddk/netpnp.h diff --git a/reactos/include/ddk/ntagp.h b/include/ddk/ntagp.h similarity index 100% rename from reactos/include/ddk/ntagp.h rename to include/ddk/ntagp.h diff --git a/reactos/include/ddk/ntddk.h b/include/ddk/ntddk.h similarity index 100% rename from reactos/include/ddk/ntddk.h rename to include/ddk/ntddk.h diff --git a/reactos/include/ddk/ntddpcm.h b/include/ddk/ntddpcm.h similarity index 100% rename from reactos/include/ddk/ntddpcm.h rename to include/ddk/ntddpcm.h diff --git a/reactos/include/ddk/ntddsnd.h b/include/ddk/ntddsnd.h similarity index 100% rename from reactos/include/ddk/ntddsnd.h rename to include/ddk/ntddsnd.h diff --git a/reactos/include/ddk/ntifs.h b/include/ddk/ntifs.h similarity index 100% rename from reactos/include/ddk/ntifs.h rename to include/ddk/ntifs.h diff --git a/reactos/include/ddk/ntimage.h b/include/ddk/ntimage.h similarity index 100% rename from reactos/include/ddk/ntimage.h rename to include/ddk/ntimage.h diff --git a/reactos/include/ddk/ntintsafe.h b/include/ddk/ntintsafe.h similarity index 100% rename from reactos/include/ddk/ntintsafe.h rename to include/ddk/ntintsafe.h diff --git a/reactos/include/ddk/ntnls.h b/include/ddk/ntnls.h similarity index 100% rename from reactos/include/ddk/ntnls.h rename to include/ddk/ntnls.h diff --git a/reactos/include/ddk/ntpoapi.h b/include/ddk/ntpoapi.h similarity index 100% rename from reactos/include/ddk/ntpoapi.h rename to include/ddk/ntpoapi.h diff --git a/reactos/include/ddk/ntsam.h b/include/ddk/ntsam.h similarity index 100% rename from reactos/include/ddk/ntsam.h rename to include/ddk/ntsam.h diff --git a/reactos/include/ddk/ntstrsafe.h b/include/ddk/ntstrsafe.h similarity index 100% rename from reactos/include/ddk/ntstrsafe.h rename to include/ddk/ntstrsafe.h diff --git a/reactos/include/ddk/oprghdlr.h b/include/ddk/oprghdlr.h similarity index 100% rename from reactos/include/ddk/oprghdlr.h rename to include/ddk/oprghdlr.h diff --git a/reactos/include/ddk/parallel.h b/include/ddk/parallel.h similarity index 100% rename from reactos/include/ddk/parallel.h rename to include/ddk/parallel.h diff --git a/reactos/include/ddk/pfhook.h b/include/ddk/pfhook.h similarity index 100% rename from reactos/include/ddk/pfhook.h rename to include/ddk/pfhook.h diff --git a/reactos/include/ddk/poclass.h b/include/ddk/poclass.h similarity index 100% rename from reactos/include/ddk/poclass.h rename to include/ddk/poclass.h diff --git a/reactos/include/ddk/portcls.h b/include/ddk/portcls.h similarity index 100% rename from reactos/include/ddk/portcls.h rename to include/ddk/portcls.h diff --git a/reactos/include/ddk/punknown.h b/include/ddk/punknown.h similarity index 100% rename from reactos/include/ddk/punknown.h rename to include/ddk/punknown.h diff --git a/reactos/include/ddk/scsi.h b/include/ddk/scsi.h similarity index 100% rename from reactos/include/ddk/scsi.h rename to include/ddk/scsi.h diff --git a/reactos/include/ddk/scsiscan.h b/include/ddk/scsiscan.h similarity index 100% rename from reactos/include/ddk/scsiscan.h rename to include/ddk/scsiscan.h diff --git a/reactos/include/ddk/scsiwmi.h b/include/ddk/scsiwmi.h similarity index 100% rename from reactos/include/ddk/scsiwmi.h rename to include/ddk/scsiwmi.h diff --git a/reactos/include/ddk/smbus.h b/include/ddk/smbus.h similarity index 100% rename from reactos/include/ddk/smbus.h rename to include/ddk/smbus.h diff --git a/reactos/include/ddk/srb.h b/include/ddk/srb.h similarity index 100% rename from reactos/include/ddk/srb.h rename to include/ddk/srb.h diff --git a/reactos/include/ddk/stdunk.h b/include/ddk/stdunk.h similarity index 100% rename from reactos/include/ddk/stdunk.h rename to include/ddk/stdunk.h diff --git a/reactos/include/ddk/storport.h b/include/ddk/storport.h similarity index 100% rename from reactos/include/ddk/storport.h rename to include/ddk/storport.h diff --git a/reactos/include/ddk/strmini.h b/include/ddk/strmini.h similarity index 100% rename from reactos/include/ddk/strmini.h rename to include/ddk/strmini.h diff --git a/reactos/include/ddk/swenum.h b/include/ddk/swenum.h similarity index 100% rename from reactos/include/ddk/swenum.h rename to include/ddk/swenum.h diff --git a/reactos/include/ddk/tdikrnl.h b/include/ddk/tdikrnl.h similarity index 100% rename from reactos/include/ddk/tdikrnl.h rename to include/ddk/tdikrnl.h diff --git a/reactos/include/ddk/tdistat.h b/include/ddk/tdistat.h similarity index 100% rename from reactos/include/ddk/tdistat.h rename to include/ddk/tdistat.h diff --git a/reactos/include/ddk/upssvc.h b/include/ddk/upssvc.h similarity index 100% rename from reactos/include/ddk/upssvc.h rename to include/ddk/upssvc.h diff --git a/reactos/include/ddk/usbbusif.h b/include/ddk/usbbusif.h similarity index 100% rename from reactos/include/ddk/usbbusif.h rename to include/ddk/usbbusif.h diff --git a/reactos/include/ddk/usbdlib.h b/include/ddk/usbdlib.h similarity index 100% rename from reactos/include/ddk/usbdlib.h rename to include/ddk/usbdlib.h diff --git a/reactos/include/ddk/usbdrivr.h b/include/ddk/usbdrivr.h similarity index 100% rename from reactos/include/ddk/usbdrivr.h rename to include/ddk/usbdrivr.h diff --git a/reactos/include/ddk/usbkern.h b/include/ddk/usbkern.h similarity index 100% rename from reactos/include/ddk/usbkern.h rename to include/ddk/usbkern.h diff --git a/reactos/include/ddk/usbprint.h b/include/ddk/usbprint.h similarity index 100% rename from reactos/include/ddk/usbprint.h rename to include/ddk/usbprint.h diff --git a/reactos/include/ddk/usbprotocoldefs.h b/include/ddk/usbprotocoldefs.h similarity index 100% rename from reactos/include/ddk/usbprotocoldefs.h rename to include/ddk/usbprotocoldefs.h diff --git a/reactos/include/ddk/usbscan.h b/include/ddk/usbscan.h similarity index 100% rename from reactos/include/ddk/usbscan.h rename to include/ddk/usbscan.h diff --git a/reactos/include/ddk/usbstorioctl.h b/include/ddk/usbstorioctl.h similarity index 100% rename from reactos/include/ddk/usbstorioctl.h rename to include/ddk/usbstorioctl.h diff --git a/reactos/include/ddk/video.h b/include/ddk/video.h similarity index 100% rename from reactos/include/ddk/video.h rename to include/ddk/video.h diff --git a/reactos/include/ddk/videoagp.h b/include/ddk/videoagp.h similarity index 100% rename from reactos/include/ddk/videoagp.h rename to include/ddk/videoagp.h diff --git a/reactos/include/ddk/wdm.h b/include/ddk/wdm.h similarity index 100% rename from reactos/include/ddk/wdm.h rename to include/ddk/wdm.h diff --git a/reactos/include/ddk/wdmguid.h b/include/ddk/wdmguid.h similarity index 100% rename from reactos/include/ddk/wdmguid.h rename to include/ddk/wdmguid.h diff --git a/reactos/include/ddk/wmidata.h b/include/ddk/wmidata.h similarity index 100% rename from reactos/include/ddk/wmidata.h rename to include/ddk/wmidata.h diff --git a/reactos/include/ddk/wmilib.h b/include/ddk/wmilib.h similarity index 100% rename from reactos/include/ddk/wmilib.h rename to include/ddk/wmilib.h diff --git a/reactos/include/ddk/ws2san.h b/include/ddk/ws2san.h similarity index 100% rename from reactos/include/ddk/ws2san.h rename to include/ddk/ws2san.h diff --git a/reactos/include/ddk/wsk.h b/include/ddk/wsk.h similarity index 100% rename from reactos/include/ddk/wsk.h rename to include/ddk/wsk.h diff --git a/reactos/include/ddk/xfilter.h b/include/ddk/xfilter.h similarity index 100% rename from reactos/include/ddk/xfilter.h rename to include/ddk/xfilter.h diff --git a/reactos/include/dxsdk/CMakeLists.txt b/include/dxsdk/CMakeLists.txt similarity index 100% rename from reactos/include/dxsdk/CMakeLists.txt rename to include/dxsdk/CMakeLists.txt diff --git a/reactos/include/dxsdk/Iwstdec.h b/include/dxsdk/Iwstdec.h similarity index 100% rename from reactos/include/dxsdk/Iwstdec.h rename to include/dxsdk/Iwstdec.h diff --git a/reactos/include/dxsdk/activecf.h b/include/dxsdk/activecf.h similarity index 100% rename from reactos/include/dxsdk/activecf.h rename to include/dxsdk/activecf.h diff --git a/reactos/include/dxsdk/amaudio.h b/include/dxsdk/amaudio.h similarity index 100% rename from reactos/include/dxsdk/amaudio.h rename to include/dxsdk/amaudio.h diff --git a/reactos/include/dxsdk/amparse.h b/include/dxsdk/amparse.h similarity index 100% rename from reactos/include/dxsdk/amparse.h rename to include/dxsdk/amparse.h diff --git a/reactos/include/dxsdk/amstream.idl b/include/dxsdk/amstream.idl similarity index 100% rename from reactos/include/dxsdk/amstream.idl rename to include/dxsdk/amstream.idl diff --git a/reactos/include/dxsdk/amva.h b/include/dxsdk/amva.h similarity index 100% rename from reactos/include/dxsdk/amva.h rename to include/dxsdk/amva.h diff --git a/reactos/include/dxsdk/amvideo.h b/include/dxsdk/amvideo.h similarity index 100% rename from reactos/include/dxsdk/amvideo.h rename to include/dxsdk/amvideo.h diff --git a/reactos/include/dxsdk/amvideo.idl b/include/dxsdk/amvideo.idl similarity index 100% rename from reactos/include/dxsdk/amvideo.idl rename to include/dxsdk/amvideo.idl diff --git a/reactos/include/dxsdk/atsmedia.h b/include/dxsdk/atsmedia.h similarity index 100% rename from reactos/include/dxsdk/atsmedia.h rename to include/dxsdk/atsmedia.h diff --git a/reactos/include/dxsdk/audevcod.h b/include/dxsdk/audevcod.h similarity index 100% rename from reactos/include/dxsdk/audevcod.h rename to include/dxsdk/audevcod.h diff --git a/reactos/include/dxsdk/austream.idl b/include/dxsdk/austream.idl similarity index 100% rename from reactos/include/dxsdk/austream.idl rename to include/dxsdk/austream.idl diff --git a/reactos/include/dxsdk/aviriff.h b/include/dxsdk/aviriff.h similarity index 100% rename from reactos/include/dxsdk/aviriff.h rename to include/dxsdk/aviriff.h diff --git a/reactos/include/dxsdk/axcore.idl b/include/dxsdk/axcore.idl similarity index 100% rename from reactos/include/dxsdk/axcore.idl rename to include/dxsdk/axcore.idl diff --git a/reactos/include/dxsdk/axextend.idl b/include/dxsdk/axextend.idl similarity index 100% rename from reactos/include/dxsdk/axextend.idl rename to include/dxsdk/axextend.idl diff --git a/reactos/include/dxsdk/axextendenums.h b/include/dxsdk/axextendenums.h similarity index 100% rename from reactos/include/dxsdk/axextendenums.h rename to include/dxsdk/axextendenums.h diff --git a/reactos/include/dxsdk/bdamedia.h b/include/dxsdk/bdamedia.h similarity index 100% rename from reactos/include/dxsdk/bdamedia.h rename to include/dxsdk/bdamedia.h diff --git a/reactos/include/dxsdk/bdatif.idl b/include/dxsdk/bdatif.idl similarity index 100% rename from reactos/include/dxsdk/bdatif.idl rename to include/dxsdk/bdatif.idl diff --git a/reactos/include/dxsdk/bdatypes.h b/include/dxsdk/bdatypes.h similarity index 100% rename from reactos/include/dxsdk/bdatypes.h rename to include/dxsdk/bdatypes.h diff --git a/reactos/include/dxsdk/comlite.h b/include/dxsdk/comlite.h similarity index 100% rename from reactos/include/dxsdk/comlite.h rename to include/dxsdk/comlite.h diff --git a/reactos/include/dxsdk/d3d8caps.h b/include/dxsdk/d3d8caps.h similarity index 100% rename from reactos/include/dxsdk/d3d8caps.h rename to include/dxsdk/d3d8caps.h diff --git a/reactos/include/dxsdk/d3d9caps.h b/include/dxsdk/d3d9caps.h similarity index 100% rename from reactos/include/dxsdk/d3d9caps.h rename to include/dxsdk/d3d9caps.h diff --git a/reactos/include/dxsdk/d3dcaps.h b/include/dxsdk/d3dcaps.h similarity index 100% rename from reactos/include/dxsdk/d3dcaps.h rename to include/dxsdk/d3dcaps.h diff --git a/reactos/include/dxsdk/d3drmwin.h b/include/dxsdk/d3drmwin.h similarity index 100% rename from reactos/include/dxsdk/d3drmwin.h rename to include/dxsdk/d3drmwin.h diff --git a/reactos/include/dxsdk/d3dvec.inl b/include/dxsdk/d3dvec.inl similarity index 100% rename from reactos/include/dxsdk/d3dvec.inl rename to include/dxsdk/d3dvec.inl diff --git a/reactos/include/dxsdk/d3dx9.h b/include/dxsdk/d3dx9.h similarity index 100% rename from reactos/include/dxsdk/d3dx9.h rename to include/dxsdk/d3dx9.h diff --git a/reactos/include/dxsdk/d3dx9core.h b/include/dxsdk/d3dx9core.h similarity index 100% rename from reactos/include/dxsdk/d3dx9core.h rename to include/dxsdk/d3dx9core.h diff --git a/reactos/include/dxsdk/d3dx9math.h b/include/dxsdk/d3dx9math.h similarity index 100% rename from reactos/include/dxsdk/d3dx9math.h rename to include/dxsdk/d3dx9math.h diff --git a/reactos/include/dxsdk/d3dx9math.inl b/include/dxsdk/d3dx9math.inl similarity index 100% rename from reactos/include/dxsdk/d3dx9math.inl rename to include/dxsdk/d3dx9math.inl diff --git a/reactos/include/dxsdk/d3dx9mesh.h b/include/dxsdk/d3dx9mesh.h similarity index 100% rename from reactos/include/dxsdk/d3dx9mesh.h rename to include/dxsdk/d3dx9mesh.h diff --git a/reactos/include/dxsdk/d3dx9shader.h b/include/dxsdk/d3dx9shader.h similarity index 100% rename from reactos/include/dxsdk/d3dx9shader.h rename to include/dxsdk/d3dx9shader.h diff --git a/reactos/include/dxsdk/d3dx9shape.h b/include/dxsdk/d3dx9shape.h similarity index 100% rename from reactos/include/dxsdk/d3dx9shape.h rename to include/dxsdk/d3dx9shape.h diff --git a/reactos/include/dxsdk/d3dx9tex.h b/include/dxsdk/d3dx9tex.h similarity index 100% rename from reactos/include/dxsdk/d3dx9tex.h rename to include/dxsdk/d3dx9tex.h diff --git a/reactos/include/dxsdk/d3dx9xof.h b/include/dxsdk/d3dx9xof.h similarity index 100% rename from reactos/include/dxsdk/d3dx9xof.h rename to include/dxsdk/d3dx9xof.h diff --git a/reactos/include/dxsdk/ddrawex.h b/include/dxsdk/ddrawex.h similarity index 100% rename from reactos/include/dxsdk/ddrawex.h rename to include/dxsdk/ddrawex.h diff --git a/reactos/include/dxsdk/ddstream.idl b/include/dxsdk/ddstream.idl similarity index 100% rename from reactos/include/dxsdk/ddstream.idl rename to include/dxsdk/ddstream.idl diff --git a/reactos/include/dxsdk/devenum.idl b/include/dxsdk/devenum.idl similarity index 100% rename from reactos/include/dxsdk/devenum.idl rename to include/dxsdk/devenum.idl diff --git a/reactos/include/dxsdk/dls1.h b/include/dxsdk/dls1.h similarity index 100% rename from reactos/include/dxsdk/dls1.h rename to include/dxsdk/dls1.h diff --git a/reactos/include/dxsdk/dls2.h b/include/dxsdk/dls2.h similarity index 100% rename from reactos/include/dxsdk/dls2.h rename to include/dxsdk/dls2.h diff --git a/reactos/include/dxsdk/dmdls.h b/include/dxsdk/dmdls.h similarity index 100% rename from reactos/include/dxsdk/dmdls.h rename to include/dxsdk/dmdls.h diff --git a/reactos/include/dxsdk/dmerror.h b/include/dxsdk/dmerror.h similarity index 100% rename from reactos/include/dxsdk/dmerror.h rename to include/dxsdk/dmerror.h diff --git a/reactos/include/dxsdk/dmksctrl.h b/include/dxsdk/dmksctrl.h similarity index 100% rename from reactos/include/dxsdk/dmksctrl.h rename to include/dxsdk/dmksctrl.h diff --git a/reactos/include/dxsdk/dmo.h b/include/dxsdk/dmo.h similarity index 100% rename from reactos/include/dxsdk/dmo.h rename to include/dxsdk/dmo.h diff --git a/reactos/include/dxsdk/dmodshow.idl b/include/dxsdk/dmodshow.idl similarity index 100% rename from reactos/include/dxsdk/dmodshow.idl rename to include/dxsdk/dmodshow.idl diff --git a/reactos/include/dxsdk/dmoreg.h b/include/dxsdk/dmoreg.h similarity index 100% rename from reactos/include/dxsdk/dmoreg.h rename to include/dxsdk/dmoreg.h diff --git a/reactos/include/dxsdk/dmort.h b/include/dxsdk/dmort.h similarity index 100% rename from reactos/include/dxsdk/dmort.h rename to include/dxsdk/dmort.h diff --git a/reactos/include/dxsdk/dmplugin.h b/include/dxsdk/dmplugin.h similarity index 100% rename from reactos/include/dxsdk/dmplugin.h rename to include/dxsdk/dmplugin.h diff --git a/reactos/include/dxsdk/dmusbuff.h b/include/dxsdk/dmusbuff.h similarity index 100% rename from reactos/include/dxsdk/dmusbuff.h rename to include/dxsdk/dmusbuff.h diff --git a/reactos/include/dxsdk/dmusicc.h b/include/dxsdk/dmusicc.h similarity index 100% rename from reactos/include/dxsdk/dmusicc.h rename to include/dxsdk/dmusicc.h diff --git a/reactos/include/dxsdk/dmusicf.h b/include/dxsdk/dmusicf.h similarity index 100% rename from reactos/include/dxsdk/dmusicf.h rename to include/dxsdk/dmusicf.h diff --git a/reactos/include/dxsdk/dmusici.h b/include/dxsdk/dmusici.h similarity index 100% rename from reactos/include/dxsdk/dmusici.h rename to include/dxsdk/dmusici.h diff --git a/reactos/include/dxsdk/dmusics.h b/include/dxsdk/dmusics.h similarity index 100% rename from reactos/include/dxsdk/dmusics.h rename to include/dxsdk/dmusics.h diff --git a/reactos/include/dxsdk/dsconf.h b/include/dxsdk/dsconf.h similarity index 100% rename from reactos/include/dxsdk/dsconf.h rename to include/dxsdk/dsconf.h diff --git a/reactos/include/dxsdk/dsetup.h b/include/dxsdk/dsetup.h similarity index 100% rename from reactos/include/dxsdk/dsetup.h rename to include/dxsdk/dsetup.h diff --git a/reactos/include/dxsdk/dshow.h b/include/dxsdk/dshow.h similarity index 100% rename from reactos/include/dxsdk/dshow.h rename to include/dxsdk/dshow.h diff --git a/reactos/include/dxsdk/dshowasf.idl b/include/dxsdk/dshowasf.idl similarity index 100% rename from reactos/include/dxsdk/dshowasf.idl rename to include/dxsdk/dshowasf.idl diff --git a/reactos/include/dxsdk/dv.h b/include/dxsdk/dv.h similarity index 100% rename from reactos/include/dxsdk/dv.h rename to include/dxsdk/dv.h diff --git a/reactos/include/dxsdk/dx7todx8.h b/include/dxsdk/dx7todx8.h similarity index 100% rename from reactos/include/dxsdk/dx7todx8.h rename to include/dxsdk/dx7todx8.h diff --git a/reactos/include/dxsdk/dxdiag.h b/include/dxsdk/dxdiag.h similarity index 100% rename from reactos/include/dxsdk/dxdiag.h rename to include/dxsdk/dxdiag.h diff --git a/reactos/include/dxsdk/dxerr8.h b/include/dxsdk/dxerr8.h similarity index 100% rename from reactos/include/dxsdk/dxerr8.h rename to include/dxsdk/dxerr8.h diff --git a/reactos/include/dxsdk/dxerr9.h b/include/dxsdk/dxerr9.h similarity index 100% rename from reactos/include/dxsdk/dxerr9.h rename to include/dxsdk/dxerr9.h diff --git a/reactos/include/dxsdk/dxfile.h b/include/dxsdk/dxfile.h similarity index 100% rename from reactos/include/dxsdk/dxfile.h rename to include/dxsdk/dxfile.h diff --git a/reactos/include/dxsdk/dxsdkver.h b/include/dxsdk/dxsdkver.h similarity index 100% rename from reactos/include/dxsdk/dxsdkver.h rename to include/dxsdk/dxsdkver.h diff --git a/reactos/include/dxsdk/dyngraph.idl b/include/dxsdk/dyngraph.idl similarity index 100% rename from reactos/include/dxsdk/dyngraph.idl rename to include/dxsdk/dyngraph.idl diff --git a/reactos/include/dxsdk/errors.h b/include/dxsdk/errors.h similarity index 100% rename from reactos/include/dxsdk/errors.h rename to include/dxsdk/errors.h diff --git a/reactos/include/dxsdk/evcode.h b/include/dxsdk/evcode.h similarity index 100% rename from reactos/include/dxsdk/evcode.h rename to include/dxsdk/evcode.h diff --git a/reactos/include/dxsdk/il21dec.h b/include/dxsdk/il21dec.h similarity index 100% rename from reactos/include/dxsdk/il21dec.h rename to include/dxsdk/il21dec.h diff --git a/reactos/include/dxsdk/ksguid.h b/include/dxsdk/ksguid.h similarity index 100% rename from reactos/include/dxsdk/ksguid.h rename to include/dxsdk/ksguid.h diff --git a/reactos/include/dxsdk/ksuuids.h b/include/dxsdk/ksuuids.h similarity index 100% rename from reactos/include/dxsdk/ksuuids.h rename to include/dxsdk/ksuuids.h diff --git a/reactos/include/dxsdk/mediaerr.h b/include/dxsdk/mediaerr.h similarity index 100% rename from reactos/include/dxsdk/mediaerr.h rename to include/dxsdk/mediaerr.h diff --git a/reactos/include/dxsdk/mediaobj.idl b/include/dxsdk/mediaobj.idl similarity index 100% rename from reactos/include/dxsdk/mediaobj.idl rename to include/dxsdk/mediaobj.idl diff --git a/reactos/include/dxsdk/medparam.idl b/include/dxsdk/medparam.idl similarity index 100% rename from reactos/include/dxsdk/medparam.idl rename to include/dxsdk/medparam.idl diff --git a/reactos/include/dxsdk/mixerocx.idl b/include/dxsdk/mixerocx.idl similarity index 100% rename from reactos/include/dxsdk/mixerocx.idl rename to include/dxsdk/mixerocx.idl diff --git a/reactos/include/dxsdk/mmstream.idl b/include/dxsdk/mmstream.idl similarity index 100% rename from reactos/include/dxsdk/mmstream.idl rename to include/dxsdk/mmstream.idl diff --git a/reactos/include/dxsdk/mpconfig.h b/include/dxsdk/mpconfig.h similarity index 100% rename from reactos/include/dxsdk/mpconfig.h rename to include/dxsdk/mpconfig.h diff --git a/reactos/include/dxsdk/mpeg2bits.h b/include/dxsdk/mpeg2bits.h similarity index 100% rename from reactos/include/dxsdk/mpeg2bits.h rename to include/dxsdk/mpeg2bits.h diff --git a/reactos/include/dxsdk/mpeg2error.h b/include/dxsdk/mpeg2error.h similarity index 100% rename from reactos/include/dxsdk/mpeg2error.h rename to include/dxsdk/mpeg2error.h diff --git a/reactos/include/dxsdk/mpegtype.h b/include/dxsdk/mpegtype.h similarity index 100% rename from reactos/include/dxsdk/mpegtype.h rename to include/dxsdk/mpegtype.h diff --git a/reactos/include/dxsdk/pixplugin.h b/include/dxsdk/pixplugin.h similarity index 100% rename from reactos/include/dxsdk/pixplugin.h rename to include/dxsdk/pixplugin.h diff --git a/reactos/include/dxsdk/qedit.idl b/include/dxsdk/qedit.idl similarity index 100% rename from reactos/include/dxsdk/qedit.idl rename to include/dxsdk/qedit.idl diff --git a/reactos/include/dxsdk/regbag.idl b/include/dxsdk/regbag.idl similarity index 100% rename from reactos/include/dxsdk/regbag.idl rename to include/dxsdk/regbag.idl diff --git a/reactos/include/dxsdk/rmxfguid.h b/include/dxsdk/rmxfguid.h similarity index 100% rename from reactos/include/dxsdk/rmxfguid.h rename to include/dxsdk/rmxfguid.h diff --git a/reactos/include/dxsdk/strmif.idl b/include/dxsdk/strmif.idl similarity index 100% rename from reactos/include/dxsdk/strmif.idl rename to include/dxsdk/strmif.idl diff --git a/reactos/include/dxsdk/tvratings.idl b/include/dxsdk/tvratings.idl similarity index 100% rename from reactos/include/dxsdk/tvratings.idl rename to include/dxsdk/tvratings.idl diff --git a/reactos/include/dxsdk/uuids.h b/include/dxsdk/uuids.h similarity index 100% rename from reactos/include/dxsdk/uuids.h rename to include/dxsdk/uuids.h diff --git a/reactos/include/dxsdk/vidcap.idl b/include/dxsdk/vidcap.idl similarity index 100% rename from reactos/include/dxsdk/vidcap.idl rename to include/dxsdk/vidcap.idl diff --git a/reactos/include/dxsdk/videoacc.idl b/include/dxsdk/videoacc.idl similarity index 100% rename from reactos/include/dxsdk/videoacc.idl rename to include/dxsdk/videoacc.idl diff --git a/reactos/include/dxsdk/vmrender.idl b/include/dxsdk/vmrender.idl similarity index 100% rename from reactos/include/dxsdk/vmrender.idl rename to include/dxsdk/vmrender.idl diff --git a/reactos/include/dxsdk/vpconfig.h b/include/dxsdk/vpconfig.h similarity index 100% rename from reactos/include/dxsdk/vpconfig.h rename to include/dxsdk/vpconfig.h diff --git a/reactos/include/dxsdk/vpnotify.h b/include/dxsdk/vpnotify.h similarity index 100% rename from reactos/include/dxsdk/vpnotify.h rename to include/dxsdk/vpnotify.h diff --git a/reactos/include/dxsdk/vptype.h b/include/dxsdk/vptype.h similarity index 100% rename from reactos/include/dxsdk/vptype.h rename to include/dxsdk/vptype.h diff --git a/reactos/include/host/config.h b/include/host/config.h similarity index 100% rename from reactos/include/host/config.h rename to include/host/config.h diff --git a/reactos/include/host/debug.h b/include/host/debug.h similarity index 100% rename from reactos/include/host/debug.h rename to include/host/debug.h diff --git a/reactos/include/host/guiddef.h b/include/host/guiddef.h similarity index 100% rename from reactos/include/host/guiddef.h rename to include/host/guiddef.h diff --git a/reactos/include/host/nls.h b/include/host/nls.h similarity index 100% rename from reactos/include/host/nls.h rename to include/host/nls.h diff --git a/reactos/include/host/poppack.h b/include/host/poppack.h similarity index 100% rename from reactos/include/host/poppack.h rename to include/host/poppack.h diff --git a/reactos/include/host/pshpack1.h b/include/host/pshpack1.h similarity index 100% rename from reactos/include/host/pshpack1.h rename to include/host/pshpack1.h diff --git a/reactos/include/host/pshpack2.h b/include/host/pshpack2.h similarity index 100% rename from reactos/include/host/pshpack2.h rename to include/host/pshpack2.h diff --git a/reactos/include/host/pshpack4.h b/include/host/pshpack4.h similarity index 100% rename from reactos/include/host/pshpack4.h rename to include/host/pshpack4.h diff --git a/reactos/include/host/pshpack8.h b/include/host/pshpack8.h similarity index 100% rename from reactos/include/host/pshpack8.h rename to include/host/pshpack8.h diff --git a/reactos/include/host/pshpck16.h b/include/host/pshpck16.h similarity index 100% rename from reactos/include/host/pshpck16.h rename to include/host/pshpck16.h diff --git a/reactos/include/host/typedefs.h b/include/host/typedefs.h similarity index 100% rename from reactos/include/host/typedefs.h rename to include/host/typedefs.h diff --git a/reactos/include/host/wine/list.h b/include/host/wine/list.h similarity index 100% rename from reactos/include/host/wine/list.h rename to include/host/wine/list.h diff --git a/reactos/include/host/wine/port.h b/include/host/wine/port.h similarity index 100% rename from reactos/include/host/wine/port.h rename to include/host/wine/port.h diff --git a/reactos/include/host/wine/rpcfc.h b/include/host/wine/rpcfc.h similarity index 100% rename from reactos/include/host/wine/rpcfc.h rename to include/host/wine/rpcfc.h diff --git a/reactos/include/host/wine/unicode.h b/include/host/wine/unicode.h similarity index 100% rename from reactos/include/host/wine/unicode.h rename to include/host/wine/unicode.h diff --git a/reactos/include/host/wine/wpp.h b/include/host/wine/wpp.h similarity index 100% rename from reactos/include/host/wine/wpp.h rename to include/host/wine/wpp.h diff --git a/reactos/include/ndk/amd64/asm.h b/include/ndk/amd64/asm.h similarity index 100% rename from reactos/include/ndk/amd64/asm.h rename to include/ndk/amd64/asm.h diff --git a/reactos/include/ndk/amd64/ketypes.h b/include/ndk/amd64/ketypes.h similarity index 100% rename from reactos/include/ndk/amd64/ketypes.h rename to include/ndk/amd64/ketypes.h diff --git a/reactos/include/ndk/amd64/mmtypes.h b/include/ndk/amd64/mmtypes.h similarity index 100% rename from reactos/include/ndk/amd64/mmtypes.h rename to include/ndk/amd64/mmtypes.h diff --git a/reactos/include/ndk/arch/ketypes.h b/include/ndk/arch/ketypes.h similarity index 100% rename from reactos/include/ndk/arch/ketypes.h rename to include/ndk/arch/ketypes.h diff --git a/reactos/include/ndk/arch/mmtypes.h b/include/ndk/arch/mmtypes.h similarity index 100% rename from reactos/include/ndk/arch/mmtypes.h rename to include/ndk/arch/mmtypes.h diff --git a/reactos/include/ndk/arm/ketypes.h b/include/ndk/arm/ketypes.h similarity index 100% rename from reactos/include/ndk/arm/ketypes.h rename to include/ndk/arm/ketypes.h diff --git a/reactos/include/ndk/arm/mmtypes.h b/include/ndk/arm/mmtypes.h similarity index 100% rename from reactos/include/ndk/arm/mmtypes.h rename to include/ndk/arm/mmtypes.h diff --git a/reactos/include/ndk/asm.h b/include/ndk/asm.h similarity index 100% rename from reactos/include/ndk/asm.h rename to include/ndk/asm.h diff --git a/reactos/include/ndk/cctypes.h b/include/ndk/cctypes.h similarity index 100% rename from reactos/include/ndk/cctypes.h rename to include/ndk/cctypes.h diff --git a/reactos/include/ndk/cmfuncs.h b/include/ndk/cmfuncs.h similarity index 100% rename from reactos/include/ndk/cmfuncs.h rename to include/ndk/cmfuncs.h diff --git a/reactos/include/ndk/cmtypes.h b/include/ndk/cmtypes.h similarity index 100% rename from reactos/include/ndk/cmtypes.h rename to include/ndk/cmtypes.h diff --git a/reactos/include/ndk/dbgkfuncs.h b/include/ndk/dbgkfuncs.h similarity index 100% rename from reactos/include/ndk/dbgkfuncs.h rename to include/ndk/dbgkfuncs.h diff --git a/reactos/include/ndk/dbgktypes.h b/include/ndk/dbgktypes.h similarity index 100% rename from reactos/include/ndk/dbgktypes.h rename to include/ndk/dbgktypes.h diff --git a/reactos/include/ndk/exfuncs.h b/include/ndk/exfuncs.h similarity index 100% rename from reactos/include/ndk/exfuncs.h rename to include/ndk/exfuncs.h diff --git a/reactos/include/ndk/extypes.h b/include/ndk/extypes.h similarity index 100% rename from reactos/include/ndk/extypes.h rename to include/ndk/extypes.h diff --git a/reactos/include/ndk/gpl.txt b/include/ndk/gpl.txt similarity index 100% rename from reactos/include/ndk/gpl.txt rename to include/ndk/gpl.txt diff --git a/reactos/include/ndk/halfuncs.h b/include/ndk/halfuncs.h similarity index 100% rename from reactos/include/ndk/halfuncs.h rename to include/ndk/halfuncs.h diff --git a/reactos/include/ndk/haltypes.h b/include/ndk/haltypes.h similarity index 100% rename from reactos/include/ndk/haltypes.h rename to include/ndk/haltypes.h diff --git a/reactos/include/ndk/i386/asm.h b/include/ndk/i386/asm.h similarity index 100% rename from reactos/include/ndk/i386/asm.h rename to include/ndk/i386/asm.h diff --git a/reactos/include/ndk/i386/ketypes.h b/include/ndk/i386/ketypes.h similarity index 100% rename from reactos/include/ndk/i386/ketypes.h rename to include/ndk/i386/ketypes.h diff --git a/reactos/include/ndk/i386/mmtypes.h b/include/ndk/i386/mmtypes.h similarity index 100% rename from reactos/include/ndk/i386/mmtypes.h rename to include/ndk/i386/mmtypes.h diff --git a/reactos/include/ndk/ifssupp.h b/include/ndk/ifssupp.h similarity index 100% rename from reactos/include/ndk/ifssupp.h rename to include/ndk/ifssupp.h diff --git a/reactos/include/ndk/inbvfuncs.h b/include/ndk/inbvfuncs.h similarity index 100% rename from reactos/include/ndk/inbvfuncs.h rename to include/ndk/inbvfuncs.h diff --git a/reactos/include/ndk/inbvtypes.h b/include/ndk/inbvtypes.h similarity index 100% rename from reactos/include/ndk/inbvtypes.h rename to include/ndk/inbvtypes.h diff --git a/reactos/include/ndk/inline_ntcurrentteb.h b/include/ndk/inline_ntcurrentteb.h similarity index 100% rename from reactos/include/ndk/inline_ntcurrentteb.h rename to include/ndk/inline_ntcurrentteb.h diff --git a/reactos/include/ndk/iofuncs.h b/include/ndk/iofuncs.h similarity index 100% rename from reactos/include/ndk/iofuncs.h rename to include/ndk/iofuncs.h diff --git a/reactos/include/ndk/iotypes.h b/include/ndk/iotypes.h similarity index 100% rename from reactos/include/ndk/iotypes.h rename to include/ndk/iotypes.h diff --git a/reactos/include/ndk/kbd.h b/include/ndk/kbd.h similarity index 100% rename from reactos/include/ndk/kbd.h rename to include/ndk/kbd.h diff --git a/reactos/include/ndk/kdfuncs.h b/include/ndk/kdfuncs.h similarity index 100% rename from reactos/include/ndk/kdfuncs.h rename to include/ndk/kdfuncs.h diff --git a/reactos/include/ndk/kdtypes.h b/include/ndk/kdtypes.h similarity index 100% rename from reactos/include/ndk/kdtypes.h rename to include/ndk/kdtypes.h diff --git a/reactos/include/ndk/kefuncs.h b/include/ndk/kefuncs.h similarity index 100% rename from reactos/include/ndk/kefuncs.h rename to include/ndk/kefuncs.h diff --git a/reactos/include/ndk/ketypes.h b/include/ndk/ketypes.h similarity index 100% rename from reactos/include/ndk/ketypes.h rename to include/ndk/ketypes.h diff --git a/reactos/include/ndk/ldrfuncs.h b/include/ndk/ldrfuncs.h similarity index 100% rename from reactos/include/ndk/ldrfuncs.h rename to include/ndk/ldrfuncs.h diff --git a/reactos/include/ndk/ldrtypes.h b/include/ndk/ldrtypes.h similarity index 100% rename from reactos/include/ndk/ldrtypes.h rename to include/ndk/ldrtypes.h diff --git a/reactos/include/ndk/lgpl.txt b/include/ndk/lgpl.txt similarity index 100% rename from reactos/include/ndk/lgpl.txt rename to include/ndk/lgpl.txt diff --git a/reactos/include/ndk/lpcfuncs.h b/include/ndk/lpcfuncs.h similarity index 100% rename from reactos/include/ndk/lpcfuncs.h rename to include/ndk/lpcfuncs.h diff --git a/reactos/include/ndk/lpctypes.h b/include/ndk/lpctypes.h similarity index 100% rename from reactos/include/ndk/lpctypes.h rename to include/ndk/lpctypes.h diff --git a/reactos/include/ndk/mmfuncs.h b/include/ndk/mmfuncs.h similarity index 100% rename from reactos/include/ndk/mmfuncs.h rename to include/ndk/mmfuncs.h diff --git a/reactos/include/ndk/mmtypes.h b/include/ndk/mmtypes.h similarity index 100% rename from reactos/include/ndk/mmtypes.h rename to include/ndk/mmtypes.h diff --git a/reactos/include/ndk/ndk.txt b/include/ndk/ndk.txt similarity index 100% rename from reactos/include/ndk/ndk.txt rename to include/ndk/ndk.txt diff --git a/reactos/include/ndk/ntndk.h b/include/ndk/ntndk.h similarity index 100% rename from reactos/include/ndk/ntndk.h rename to include/ndk/ntndk.h diff --git a/reactos/include/ndk/obfuncs.h b/include/ndk/obfuncs.h similarity index 100% rename from reactos/include/ndk/obfuncs.h rename to include/ndk/obfuncs.h diff --git a/reactos/include/ndk/obtypes.h b/include/ndk/obtypes.h similarity index 100% rename from reactos/include/ndk/obtypes.h rename to include/ndk/obtypes.h diff --git a/reactos/include/ndk/peb_teb.h b/include/ndk/peb_teb.h similarity index 100% rename from reactos/include/ndk/peb_teb.h rename to include/ndk/peb_teb.h diff --git a/reactos/include/ndk/pofuncs.h b/include/ndk/pofuncs.h similarity index 100% rename from reactos/include/ndk/pofuncs.h rename to include/ndk/pofuncs.h diff --git a/reactos/include/ndk/potypes.h b/include/ndk/potypes.h similarity index 100% rename from reactos/include/ndk/potypes.h rename to include/ndk/potypes.h diff --git a/reactos/include/ndk/powerpc/ketypes.h b/include/ndk/powerpc/ketypes.h similarity index 100% rename from reactos/include/ndk/powerpc/ketypes.h rename to include/ndk/powerpc/ketypes.h diff --git a/reactos/include/ndk/powerpc/mmtypes.h b/include/ndk/powerpc/mmtypes.h similarity index 100% rename from reactos/include/ndk/powerpc/mmtypes.h rename to include/ndk/powerpc/mmtypes.h diff --git a/reactos/include/ndk/psfuncs.h b/include/ndk/psfuncs.h similarity index 100% rename from reactos/include/ndk/psfuncs.h rename to include/ndk/psfuncs.h diff --git a/reactos/include/ndk/pstypes.h b/include/ndk/pstypes.h similarity index 100% rename from reactos/include/ndk/pstypes.h rename to include/ndk/pstypes.h diff --git a/reactos/include/ndk/readme.txt b/include/ndk/readme.txt similarity index 100% rename from reactos/include/ndk/readme.txt rename to include/ndk/readme.txt diff --git a/reactos/include/ndk/rtlfuncs.h b/include/ndk/rtlfuncs.h similarity index 100% rename from reactos/include/ndk/rtlfuncs.h rename to include/ndk/rtlfuncs.h diff --git a/reactos/include/ndk/rtltypes.h b/include/ndk/rtltypes.h similarity index 100% rename from reactos/include/ndk/rtltypes.h rename to include/ndk/rtltypes.h diff --git a/reactos/include/ndk/sefuncs.h b/include/ndk/sefuncs.h similarity index 100% rename from reactos/include/ndk/sefuncs.h rename to include/ndk/sefuncs.h diff --git a/reactos/include/ndk/setypes.h b/include/ndk/setypes.h similarity index 100% rename from reactos/include/ndk/setypes.h rename to include/ndk/setypes.h diff --git a/reactos/include/ndk/tests/CMakeLists.txt b/include/ndk/tests/CMakeLists.txt similarity index 100% rename from reactos/include/ndk/tests/CMakeLists.txt rename to include/ndk/tests/CMakeLists.txt diff --git a/reactos/include/ndk/tests/win2003_x64.c b/include/ndk/tests/win2003_x64.c similarity index 100% rename from reactos/include/ndk/tests/win2003_x64.c rename to include/ndk/tests/win2003_x64.c diff --git a/reactos/include/ndk/tests/win2003_x86.c b/include/ndk/tests/win2003_x86.c similarity index 100% rename from reactos/include/ndk/tests/win2003_x86.c rename to include/ndk/tests/win2003_x86.c diff --git a/reactos/include/ndk/tests/win7_x64.c b/include/ndk/tests/win7_x64.c similarity index 100% rename from reactos/include/ndk/tests/win7_x64.c rename to include/ndk/tests/win7_x64.c diff --git a/reactos/include/ndk/tests/win7_x86.c b/include/ndk/tests/win7_x86.c similarity index 100% rename from reactos/include/ndk/tests/win7_x86.c rename to include/ndk/tests/win7_x86.c diff --git a/reactos/include/ndk/tests/winvista_x64.c b/include/ndk/tests/winvista_x64.c similarity index 100% rename from reactos/include/ndk/tests/winvista_x64.c rename to include/ndk/tests/winvista_x64.c diff --git a/reactos/include/ndk/tests/winvista_x86.c b/include/ndk/tests/winvista_x86.c similarity index 100% rename from reactos/include/ndk/tests/winvista_x86.c rename to include/ndk/tests/winvista_x86.c diff --git a/reactos/include/ndk/umfuncs.h b/include/ndk/umfuncs.h similarity index 100% rename from reactos/include/ndk/umfuncs.h rename to include/ndk/umfuncs.h diff --git a/reactos/include/ndk/umtypes.h b/include/ndk/umtypes.h similarity index 100% rename from reactos/include/ndk/umtypes.h rename to include/ndk/umtypes.h diff --git a/reactos/include/ndk/vffuncs.h b/include/ndk/vffuncs.h similarity index 100% rename from reactos/include/ndk/vffuncs.h rename to include/ndk/vffuncs.h diff --git a/reactos/include/ndk/vftypes.h b/include/ndk/vftypes.h similarity index 100% rename from reactos/include/ndk/vftypes.h rename to include/ndk/vftypes.h diff --git a/reactos/include/psdk/CMakeLists.txt b/include/psdk/CMakeLists.txt similarity index 100% rename from reactos/include/psdk/CMakeLists.txt rename to include/psdk/CMakeLists.txt diff --git a/reactos/include/psdk/README.w32api b/include/psdk/README.w32api similarity index 100% rename from reactos/include/psdk/README.w32api rename to include/psdk/README.w32api diff --git a/reactos/include/psdk/accctrl.h b/include/psdk/accctrl.h similarity index 100% rename from reactos/include/psdk/accctrl.h rename to include/psdk/accctrl.h diff --git a/reactos/include/psdk/access.idl b/include/psdk/access.idl similarity index 100% rename from reactos/include/psdk/access.idl rename to include/psdk/access.idl diff --git a/reactos/include/psdk/aclapi.h b/include/psdk/aclapi.h similarity index 100% rename from reactos/include/psdk/aclapi.h rename to include/psdk/aclapi.h diff --git a/reactos/include/psdk/aclui.h b/include/psdk/aclui.h similarity index 100% rename from reactos/include/psdk/aclui.h rename to include/psdk/aclui.h diff --git a/reactos/include/psdk/activaut.idl b/include/psdk/activaut.idl similarity index 100% rename from reactos/include/psdk/activaut.idl rename to include/psdk/activaut.idl diff --git a/reactos/include/psdk/activdbg.idl b/include/psdk/activdbg.idl similarity index 100% rename from reactos/include/psdk/activdbg.idl rename to include/psdk/activdbg.idl diff --git a/reactos/include/psdk/activscp.idl b/include/psdk/activscp.idl similarity index 100% rename from reactos/include/psdk/activscp.idl rename to include/psdk/activscp.idl diff --git a/reactos/include/psdk/adshlp.h b/include/psdk/adshlp.h similarity index 100% rename from reactos/include/psdk/adshlp.h rename to include/psdk/adshlp.h diff --git a/reactos/include/psdk/advpub.h b/include/psdk/advpub.h similarity index 100% rename from reactos/include/psdk/advpub.h rename to include/psdk/advpub.h diff --git a/reactos/include/psdk/af_irda.h b/include/psdk/af_irda.h similarity index 100% rename from reactos/include/psdk/af_irda.h rename to include/psdk/af_irda.h diff --git a/reactos/include/psdk/afxres.h b/include/psdk/afxres.h similarity index 100% rename from reactos/include/psdk/afxres.h rename to include/psdk/afxres.h diff --git a/reactos/include/psdk/appmgmt.h b/include/psdk/appmgmt.h similarity index 100% rename from reactos/include/psdk/appmgmt.h rename to include/psdk/appmgmt.h diff --git a/reactos/include/psdk/asptlb.idl b/include/psdk/asptlb.idl similarity index 100% rename from reactos/include/psdk/asptlb.idl rename to include/psdk/asptlb.idl diff --git a/reactos/include/psdk/asynot.idl b/include/psdk/asynot.idl similarity index 100% rename from reactos/include/psdk/asynot.idl rename to include/psdk/asynot.idl diff --git a/reactos/include/psdk/asysta.idl b/include/psdk/asysta.idl similarity index 100% rename from reactos/include/psdk/asysta.idl rename to include/psdk/asysta.idl diff --git a/reactos/include/psdk/atliface.idl b/include/psdk/atliface.idl similarity index 100% rename from reactos/include/psdk/atliface.idl rename to include/psdk/atliface.idl diff --git a/reactos/include/psdk/atsmedia.h b/include/psdk/atsmedia.h similarity index 100% rename from reactos/include/psdk/atsmedia.h rename to include/psdk/atsmedia.h diff --git a/reactos/include/psdk/authz.h b/include/psdk/authz.h similarity index 100% rename from reactos/include/psdk/authz.h rename to include/psdk/authz.h diff --git a/reactos/include/psdk/basetsd.h b/include/psdk/basetsd.h similarity index 100% rename from reactos/include/psdk/basetsd.h rename to include/psdk/basetsd.h diff --git a/reactos/include/psdk/basetyps.h b/include/psdk/basetyps.h similarity index 100% rename from reactos/include/psdk/basetyps.h rename to include/psdk/basetyps.h diff --git a/reactos/include/psdk/batclass.h b/include/psdk/batclass.h similarity index 100% rename from reactos/include/psdk/batclass.h rename to include/psdk/batclass.h diff --git a/reactos/include/psdk/bcrypt.h b/include/psdk/bcrypt.h similarity index 100% rename from reactos/include/psdk/bcrypt.h rename to include/psdk/bcrypt.h diff --git a/reactos/include/psdk/bdaiface.idl b/include/psdk/bdaiface.idl similarity index 100% rename from reactos/include/psdk/bdaiface.idl rename to include/psdk/bdaiface.idl diff --git a/reactos/include/psdk/binres.idl b/include/psdk/binres.idl similarity index 100% rename from reactos/include/psdk/binres.idl rename to include/psdk/binres.idl diff --git a/reactos/include/psdk/bits.idl b/include/psdk/bits.idl similarity index 100% rename from reactos/include/psdk/bits.idl rename to include/psdk/bits.idl diff --git a/reactos/include/psdk/bits1_5.idl b/include/psdk/bits1_5.idl similarity index 100% rename from reactos/include/psdk/bits1_5.idl rename to include/psdk/bits1_5.idl diff --git a/reactos/include/psdk/bitsmsg.h b/include/psdk/bitsmsg.h similarity index 100% rename from reactos/include/psdk/bitsmsg.h rename to include/psdk/bitsmsg.h diff --git a/reactos/include/psdk/cderr.h b/include/psdk/cderr.h similarity index 100% rename from reactos/include/psdk/cderr.h rename to include/psdk/cderr.h diff --git a/reactos/include/psdk/cfg.h b/include/psdk/cfg.h similarity index 100% rename from reactos/include/psdk/cfg.h rename to include/psdk/cfg.h diff --git a/reactos/include/psdk/cfgmgr32.h b/include/psdk/cfgmgr32.h similarity index 100% rename from reactos/include/psdk/cfgmgr32.h rename to include/psdk/cfgmgr32.h diff --git a/reactos/include/psdk/cguid.h b/include/psdk/cguid.h similarity index 100% rename from reactos/include/psdk/cguid.h rename to include/psdk/cguid.h diff --git a/reactos/include/psdk/cierror.h b/include/psdk/cierror.h similarity index 100% rename from reactos/include/psdk/cierror.h rename to include/psdk/cierror.h diff --git a/reactos/include/psdk/clusapi.h b/include/psdk/clusapi.h similarity index 100% rename from reactos/include/psdk/clusapi.h rename to include/psdk/clusapi.h diff --git a/reactos/include/psdk/cmdbas.idl b/include/psdk/cmdbas.idl similarity index 100% rename from reactos/include/psdk/cmdbas.idl rename to include/psdk/cmdbas.idl diff --git a/reactos/include/psdk/cmdtxt.idl b/include/psdk/cmdtxt.idl similarity index 100% rename from reactos/include/psdk/cmdtxt.idl rename to include/psdk/cmdtxt.idl diff --git a/reactos/include/psdk/comcat.idl b/include/psdk/comcat.idl similarity index 100% rename from reactos/include/psdk/comcat.idl rename to include/psdk/comcat.idl diff --git a/reactos/include/psdk/commctrl.h b/include/psdk/commctrl.h similarity index 100% rename from reactos/include/psdk/commctrl.h rename to include/psdk/commctrl.h diff --git a/reactos/include/psdk/commdlg.h b/include/psdk/commdlg.h similarity index 100% rename from reactos/include/psdk/commdlg.h rename to include/psdk/commdlg.h diff --git a/reactos/include/psdk/common.ver b/include/psdk/common.ver similarity index 100% rename from reactos/include/psdk/common.ver rename to include/psdk/common.ver diff --git a/reactos/include/psdk/commoncontrols.idl b/include/psdk/commoncontrols.idl similarity index 100% rename from reactos/include/psdk/commoncontrols.idl rename to include/psdk/commoncontrols.idl diff --git a/reactos/include/psdk/compstui.h b/include/psdk/compstui.h similarity index 100% rename from reactos/include/psdk/compstui.h rename to include/psdk/compstui.h diff --git a/reactos/include/psdk/concurrencysal.h b/include/psdk/concurrencysal.h similarity index 100% rename from reactos/include/psdk/concurrencysal.h rename to include/psdk/concurrencysal.h diff --git a/reactos/include/psdk/control.idl b/include/psdk/control.idl similarity index 100% rename from reactos/include/psdk/control.idl rename to include/psdk/control.idl diff --git a/reactos/include/psdk/cor.idl b/include/psdk/cor.idl similarity index 100% rename from reactos/include/psdk/cor.idl rename to include/psdk/cor.idl diff --git a/reactos/include/psdk/cordebug.idl b/include/psdk/cordebug.idl similarity index 100% rename from reactos/include/psdk/cordebug.idl rename to include/psdk/cordebug.idl diff --git a/reactos/include/psdk/corerror.h b/include/psdk/corerror.h similarity index 100% rename from reactos/include/psdk/corerror.h rename to include/psdk/corerror.h diff --git a/reactos/include/psdk/corhdr.h b/include/psdk/corhdr.h similarity index 100% rename from reactos/include/psdk/corhdr.h rename to include/psdk/corhdr.h diff --git a/reactos/include/psdk/cpl.h b/include/psdk/cpl.h similarity index 100% rename from reactos/include/psdk/cpl.h rename to include/psdk/cpl.h diff --git a/reactos/include/psdk/cplext.h b/include/psdk/cplext.h similarity index 100% rename from reactos/include/psdk/cplext.h rename to include/psdk/cplext.h diff --git a/reactos/include/psdk/crtrow.idl b/include/psdk/crtrow.idl similarity index 100% rename from reactos/include/psdk/crtrow.idl rename to include/psdk/crtrow.idl diff --git a/reactos/include/psdk/cryptdlg.h b/include/psdk/cryptdlg.h similarity index 100% rename from reactos/include/psdk/cryptdlg.h rename to include/psdk/cryptdlg.h diff --git a/reactos/include/psdk/cryptuiapi.h b/include/psdk/cryptuiapi.h similarity index 100% rename from reactos/include/psdk/cryptuiapi.h rename to include/psdk/cryptuiapi.h diff --git a/reactos/include/psdk/ctfutb.idl b/include/psdk/ctfutb.idl similarity index 100% rename from reactos/include/psdk/ctfutb.idl rename to include/psdk/ctfutb.idl diff --git a/reactos/include/psdk/ctxtcall.idl b/include/psdk/ctxtcall.idl similarity index 100% rename from reactos/include/psdk/ctxtcall.idl rename to include/psdk/ctxtcall.idl diff --git a/reactos/include/psdk/custcntl.h b/include/psdk/custcntl.h similarity index 100% rename from reactos/include/psdk/custcntl.h rename to include/psdk/custcntl.h diff --git a/reactos/include/psdk/cvconst.h b/include/psdk/cvconst.h similarity index 100% rename from reactos/include/psdk/cvconst.h rename to include/psdk/cvconst.h diff --git a/reactos/include/psdk/d3d.h b/include/psdk/d3d.h similarity index 100% rename from reactos/include/psdk/d3d.h rename to include/psdk/d3d.h diff --git a/reactos/include/psdk/d3d8.h b/include/psdk/d3d8.h similarity index 100% rename from reactos/include/psdk/d3d8.h rename to include/psdk/d3d8.h diff --git a/reactos/include/psdk/d3d8types.h b/include/psdk/d3d8types.h similarity index 100% rename from reactos/include/psdk/d3d8types.h rename to include/psdk/d3d8types.h diff --git a/reactos/include/psdk/d3d9.h b/include/psdk/d3d9.h similarity index 100% rename from reactos/include/psdk/d3d9.h rename to include/psdk/d3d9.h diff --git a/reactos/include/psdk/d3d9types.h b/include/psdk/d3d9types.h similarity index 100% rename from reactos/include/psdk/d3d9types.h rename to include/psdk/d3d9types.h diff --git a/reactos/include/psdk/d3dnthal.h b/include/psdk/d3dnthal.h similarity index 100% rename from reactos/include/psdk/d3dnthal.h rename to include/psdk/d3dnthal.h diff --git a/reactos/include/psdk/d3drm.h b/include/psdk/d3drm.h similarity index 100% rename from reactos/include/psdk/d3drm.h rename to include/psdk/d3drm.h diff --git a/reactos/include/psdk/d3drmdef.h b/include/psdk/d3drmdef.h similarity index 100% rename from reactos/include/psdk/d3drmdef.h rename to include/psdk/d3drmdef.h diff --git a/reactos/include/psdk/d3dtypes.h b/include/psdk/d3dtypes.h similarity index 100% rename from reactos/include/psdk/d3dtypes.h rename to include/psdk/d3dtypes.h diff --git a/reactos/include/psdk/d3dx8core.h b/include/psdk/d3dx8core.h similarity index 100% rename from reactos/include/psdk/d3dx8core.h rename to include/psdk/d3dx8core.h diff --git a/reactos/include/psdk/dbccmd.idl b/include/psdk/dbccmd.idl similarity index 100% rename from reactos/include/psdk/dbccmd.idl rename to include/psdk/dbccmd.idl diff --git a/reactos/include/psdk/dbcses.idl b/include/psdk/dbcses.idl similarity index 100% rename from reactos/include/psdk/dbcses.idl rename to include/psdk/dbcses.idl diff --git a/reactos/include/psdk/dbdsad.idl b/include/psdk/dbdsad.idl similarity index 100% rename from reactos/include/psdk/dbdsad.idl rename to include/psdk/dbdsad.idl diff --git a/reactos/include/psdk/dbghelp.h b/include/psdk/dbghelp.h similarity index 100% rename from reactos/include/psdk/dbghelp.h rename to include/psdk/dbghelp.h diff --git a/reactos/include/psdk/dbinit.idl b/include/psdk/dbinit.idl similarity index 100% rename from reactos/include/psdk/dbinit.idl rename to include/psdk/dbinit.idl diff --git a/reactos/include/psdk/dbprop.idl b/include/psdk/dbprop.idl similarity index 100% rename from reactos/include/psdk/dbprop.idl rename to include/psdk/dbprop.idl diff --git a/reactos/include/psdk/dbs.idl b/include/psdk/dbs.idl similarity index 100% rename from reactos/include/psdk/dbs.idl rename to include/psdk/dbs.idl diff --git a/reactos/include/psdk/dbt.h b/include/psdk/dbt.h similarity index 100% rename from reactos/include/psdk/dbt.h rename to include/psdk/dbt.h diff --git a/reactos/include/psdk/dciman.h b/include/psdk/dciman.h similarity index 100% rename from reactos/include/psdk/dciman.h rename to include/psdk/dciman.h diff --git a/reactos/include/psdk/dde.h b/include/psdk/dde.h similarity index 100% rename from reactos/include/psdk/dde.h rename to include/psdk/dde.h diff --git a/reactos/include/psdk/ddeml.h b/include/psdk/ddeml.h similarity index 100% rename from reactos/include/psdk/ddeml.h rename to include/psdk/ddeml.h diff --git a/reactos/include/psdk/ddkernel.h b/include/psdk/ddkernel.h similarity index 100% rename from reactos/include/psdk/ddkernel.h rename to include/psdk/ddkernel.h diff --git a/reactos/include/psdk/ddkmapi.h b/include/psdk/ddkmapi.h similarity index 100% rename from reactos/include/psdk/ddkmapi.h rename to include/psdk/ddkmapi.h diff --git a/reactos/include/psdk/ddraw.h b/include/psdk/ddraw.h similarity index 100% rename from reactos/include/psdk/ddraw.h rename to include/psdk/ddraw.h diff --git a/reactos/include/psdk/ddrawgdi.h b/include/psdk/ddrawgdi.h similarity index 100% rename from reactos/include/psdk/ddrawgdi.h rename to include/psdk/ddrawgdi.h diff --git a/reactos/include/psdk/ddrawi.h b/include/psdk/ddrawi.h similarity index 100% rename from reactos/include/psdk/ddrawi.h rename to include/psdk/ddrawi.h diff --git a/reactos/include/psdk/ddrawint.h b/include/psdk/ddrawint.h similarity index 100% rename from reactos/include/psdk/ddrawint.h rename to include/psdk/ddrawint.h diff --git a/reactos/include/psdk/delayimp.h b/include/psdk/delayimp.h similarity index 100% rename from reactos/include/psdk/delayimp.h rename to include/psdk/delayimp.h diff --git a/reactos/include/psdk/devenum.idl b/include/psdk/devenum.idl similarity index 100% rename from reactos/include/psdk/devenum.idl rename to include/psdk/devenum.idl diff --git a/reactos/include/psdk/devguid.h b/include/psdk/devguid.h similarity index 100% rename from reactos/include/psdk/devguid.h rename to include/psdk/devguid.h diff --git a/reactos/include/psdk/devioctl.h b/include/psdk/devioctl.h similarity index 100% rename from reactos/include/psdk/devioctl.h rename to include/psdk/devioctl.h diff --git a/reactos/include/psdk/devpropdef.h b/include/psdk/devpropdef.h similarity index 100% rename from reactos/include/psdk/devpropdef.h rename to include/psdk/devpropdef.h diff --git a/reactos/include/psdk/dhcpcapi.h b/include/psdk/dhcpcapi.h similarity index 100% rename from reactos/include/psdk/dhcpcapi.h rename to include/psdk/dhcpcapi.h diff --git a/reactos/include/psdk/dhcpcsdk.h b/include/psdk/dhcpcsdk.h similarity index 100% rename from reactos/include/psdk/dhcpcsdk.h rename to include/psdk/dhcpcsdk.h diff --git a/reactos/include/psdk/digitalv.h b/include/psdk/digitalv.h similarity index 100% rename from reactos/include/psdk/digitalv.h rename to include/psdk/digitalv.h diff --git a/reactos/include/psdk/dimm.idl b/include/psdk/dimm.idl similarity index 100% rename from reactos/include/psdk/dimm.idl rename to include/psdk/dimm.idl diff --git a/reactos/include/psdk/dinput.h b/include/psdk/dinput.h similarity index 100% rename from reactos/include/psdk/dinput.h rename to include/psdk/dinput.h diff --git a/reactos/include/psdk/diskguid.h b/include/psdk/diskguid.h similarity index 100% rename from reactos/include/psdk/diskguid.h rename to include/psdk/diskguid.h diff --git a/reactos/include/psdk/dispex.idl b/include/psdk/dispex.idl similarity index 100% rename from reactos/include/psdk/dispex.idl rename to include/psdk/dispex.idl diff --git a/reactos/include/psdk/dlgs.h b/include/psdk/dlgs.h similarity index 100% rename from reactos/include/psdk/dlgs.h rename to include/psdk/dlgs.h diff --git a/reactos/include/psdk/dmemmgr.h b/include/psdk/dmemmgr.h similarity index 100% rename from reactos/include/psdk/dmemmgr.h rename to include/psdk/dmemmgr.h diff --git a/reactos/include/psdk/dmksctrl.h b/include/psdk/dmksctrl.h similarity index 100% rename from reactos/include/psdk/dmksctrl.h rename to include/psdk/dmksctrl.h diff --git a/reactos/include/psdk/docobj.idl b/include/psdk/docobj.idl similarity index 100% rename from reactos/include/psdk/docobj.idl rename to include/psdk/docobj.idl diff --git a/reactos/include/psdk/downloadmgr.idl b/include/psdk/downloadmgr.idl similarity index 100% rename from reactos/include/psdk/downloadmgr.idl rename to include/psdk/downloadmgr.idl diff --git a/reactos/include/psdk/dpfilter.h b/include/psdk/dpfilter.h similarity index 100% rename from reactos/include/psdk/dpfilter.h rename to include/psdk/dpfilter.h diff --git a/reactos/include/psdk/dplay.h b/include/psdk/dplay.h similarity index 100% rename from reactos/include/psdk/dplay.h rename to include/psdk/dplay.h diff --git a/reactos/include/psdk/dplobby.h b/include/psdk/dplobby.h similarity index 100% rename from reactos/include/psdk/dplobby.h rename to include/psdk/dplobby.h diff --git a/reactos/include/psdk/driverspecs.h b/include/psdk/driverspecs.h similarity index 100% rename from reactos/include/psdk/driverspecs.h rename to include/psdk/driverspecs.h diff --git a/reactos/include/psdk/dsdriver.h b/include/psdk/dsdriver.h similarity index 100% rename from reactos/include/psdk/dsdriver.h rename to include/psdk/dsdriver.h diff --git a/reactos/include/psdk/dsgetdc.h b/include/psdk/dsgetdc.h similarity index 100% rename from reactos/include/psdk/dsgetdc.h rename to include/psdk/dsgetdc.h diff --git a/reactos/include/psdk/dsound.h b/include/psdk/dsound.h similarity index 100% rename from reactos/include/psdk/dsound.h rename to include/psdk/dsound.h diff --git a/reactos/include/psdk/dsrole.h b/include/psdk/dsrole.h similarity index 100% rename from reactos/include/psdk/dsrole.h rename to include/psdk/dsrole.h diff --git a/reactos/include/psdk/dvdevcod.h b/include/psdk/dvdevcod.h similarity index 100% rename from reactos/include/psdk/dvdevcod.h rename to include/psdk/dvdevcod.h diff --git a/reactos/include/psdk/dvdmedia.h b/include/psdk/dvdmedia.h similarity index 100% rename from reactos/include/psdk/dvdmedia.h rename to include/psdk/dvdmedia.h diff --git a/reactos/include/psdk/dvp.h b/include/psdk/dvp.h similarity index 100% rename from reactos/include/psdk/dvp.h rename to include/psdk/dvp.h diff --git a/reactos/include/psdk/dwmapi.h b/include/psdk/dwmapi.h similarity index 100% rename from reactos/include/psdk/dwmapi.h rename to include/psdk/dwmapi.h diff --git a/reactos/include/psdk/dyngraph.idl b/include/psdk/dyngraph.idl similarity index 100% rename from reactos/include/psdk/dyngraph.idl rename to include/psdk/dyngraph.idl diff --git a/reactos/include/psdk/eaptypes.h b/include/psdk/eaptypes.h similarity index 100% rename from reactos/include/psdk/eaptypes.h rename to include/psdk/eaptypes.h diff --git a/reactos/include/psdk/edevdefs.h b/include/psdk/edevdefs.h similarity index 100% rename from reactos/include/psdk/edevdefs.h rename to include/psdk/edevdefs.h diff --git a/reactos/include/psdk/errorrep.h b/include/psdk/errorrep.h similarity index 100% rename from reactos/include/psdk/errorrep.h rename to include/psdk/errorrep.h diff --git a/reactos/include/psdk/evntprov.h b/include/psdk/evntprov.h similarity index 100% rename from reactos/include/psdk/evntprov.h rename to include/psdk/evntprov.h diff --git a/reactos/include/psdk/evntrace.h b/include/psdk/evntrace.h similarity index 100% rename from reactos/include/psdk/evntrace.h rename to include/psdk/evntrace.h diff --git a/reactos/include/psdk/exdisp.idl b/include/psdk/exdisp.idl similarity index 100% rename from reactos/include/psdk/exdisp.idl rename to include/psdk/exdisp.idl diff --git a/reactos/include/psdk/exdispid.h b/include/psdk/exdispid.h similarity index 100% rename from reactos/include/psdk/exdispid.h rename to include/psdk/exdispid.h diff --git a/reactos/include/psdk/fci.h b/include/psdk/fci.h similarity index 100% rename from reactos/include/psdk/fci.h rename to include/psdk/fci.h diff --git a/reactos/include/psdk/fdi.h b/include/psdk/fdi.h similarity index 100% rename from reactos/include/psdk/fdi.h rename to include/psdk/fdi.h diff --git a/reactos/include/psdk/fusion.idl b/include/psdk/fusion.idl similarity index 100% rename from reactos/include/psdk/fusion.idl rename to include/psdk/fusion.idl diff --git a/reactos/include/psdk/gdiplus.h b/include/psdk/gdiplus.h similarity index 100% rename from reactos/include/psdk/gdiplus.h rename to include/psdk/gdiplus.h diff --git a/reactos/include/psdk/gdiplusbase.h b/include/psdk/gdiplusbase.h similarity index 100% rename from reactos/include/psdk/gdiplusbase.h rename to include/psdk/gdiplusbase.h diff --git a/reactos/include/psdk/gdiplusbrush.h b/include/psdk/gdiplusbrush.h similarity index 100% rename from reactos/include/psdk/gdiplusbrush.h rename to include/psdk/gdiplusbrush.h diff --git a/reactos/include/psdk/gdipluscolor.h b/include/psdk/gdipluscolor.h similarity index 100% rename from reactos/include/psdk/gdipluscolor.h rename to include/psdk/gdipluscolor.h diff --git a/reactos/include/psdk/gdipluscolormatrix.h b/include/psdk/gdipluscolormatrix.h similarity index 100% rename from reactos/include/psdk/gdipluscolormatrix.h rename to include/psdk/gdipluscolormatrix.h diff --git a/reactos/include/psdk/gdipluseffects.h b/include/psdk/gdipluseffects.h similarity index 100% rename from reactos/include/psdk/gdipluseffects.h rename to include/psdk/gdipluseffects.h diff --git a/reactos/include/psdk/gdiplusenums.h b/include/psdk/gdiplusenums.h similarity index 100% rename from reactos/include/psdk/gdiplusenums.h rename to include/psdk/gdiplusenums.h diff --git a/reactos/include/psdk/gdiplusflat.h b/include/psdk/gdiplusflat.h similarity index 100% rename from reactos/include/psdk/gdiplusflat.h rename to include/psdk/gdiplusflat.h diff --git a/reactos/include/psdk/gdiplusgpstubs.h b/include/psdk/gdiplusgpstubs.h similarity index 100% rename from reactos/include/psdk/gdiplusgpstubs.h rename to include/psdk/gdiplusgpstubs.h diff --git a/reactos/include/psdk/gdiplusgraphics.h b/include/psdk/gdiplusgraphics.h similarity index 100% rename from reactos/include/psdk/gdiplusgraphics.h rename to include/psdk/gdiplusgraphics.h diff --git a/reactos/include/psdk/gdiplusheaders.h b/include/psdk/gdiplusheaders.h similarity index 100% rename from reactos/include/psdk/gdiplusheaders.h rename to include/psdk/gdiplusheaders.h diff --git a/reactos/include/psdk/gdiplusimageattributes.h b/include/psdk/gdiplusimageattributes.h similarity index 100% rename from reactos/include/psdk/gdiplusimageattributes.h rename to include/psdk/gdiplusimageattributes.h diff --git a/reactos/include/psdk/gdiplusimaging.h b/include/psdk/gdiplusimaging.h similarity index 100% rename from reactos/include/psdk/gdiplusimaging.h rename to include/psdk/gdiplusimaging.h diff --git a/reactos/include/psdk/gdiplusinit.h b/include/psdk/gdiplusinit.h similarity index 100% rename from reactos/include/psdk/gdiplusinit.h rename to include/psdk/gdiplusinit.h diff --git a/reactos/include/psdk/gdipluslinecaps.h b/include/psdk/gdipluslinecaps.h similarity index 100% rename from reactos/include/psdk/gdipluslinecaps.h rename to include/psdk/gdipluslinecaps.h diff --git a/reactos/include/psdk/gdiplusmatrix.h b/include/psdk/gdiplusmatrix.h similarity index 100% rename from reactos/include/psdk/gdiplusmatrix.h rename to include/psdk/gdiplusmatrix.h diff --git a/reactos/include/psdk/gdiplusmem.h b/include/psdk/gdiplusmem.h similarity index 100% rename from reactos/include/psdk/gdiplusmem.h rename to include/psdk/gdiplusmem.h diff --git a/reactos/include/psdk/gdiplusmetafile.h b/include/psdk/gdiplusmetafile.h similarity index 100% rename from reactos/include/psdk/gdiplusmetafile.h rename to include/psdk/gdiplusmetafile.h diff --git a/reactos/include/psdk/gdiplusmetaheader.h b/include/psdk/gdiplusmetaheader.h similarity index 100% rename from reactos/include/psdk/gdiplusmetaheader.h rename to include/psdk/gdiplusmetaheader.h diff --git a/reactos/include/psdk/gdipluspath.h b/include/psdk/gdipluspath.h similarity index 100% rename from reactos/include/psdk/gdipluspath.h rename to include/psdk/gdipluspath.h diff --git a/reactos/include/psdk/gdipluspen.h b/include/psdk/gdipluspen.h similarity index 100% rename from reactos/include/psdk/gdipluspen.h rename to include/psdk/gdipluspen.h diff --git a/reactos/include/psdk/gdipluspixelformats.h b/include/psdk/gdipluspixelformats.h similarity index 100% rename from reactos/include/psdk/gdipluspixelformats.h rename to include/psdk/gdipluspixelformats.h diff --git a/reactos/include/psdk/gdiplusstringformat.h b/include/psdk/gdiplusstringformat.h similarity index 100% rename from reactos/include/psdk/gdiplusstringformat.h rename to include/psdk/gdiplusstringformat.h diff --git a/reactos/include/psdk/gdiplustypes.h b/include/psdk/gdiplustypes.h similarity index 100% rename from reactos/include/psdk/gdiplustypes.h rename to include/psdk/gdiplustypes.h diff --git a/reactos/include/psdk/guiddef.h b/include/psdk/guiddef.h similarity index 100% rename from reactos/include/psdk/guiddef.h rename to include/psdk/guiddef.h diff --git a/reactos/include/psdk/hidpi.h b/include/psdk/hidpi.h similarity index 100% rename from reactos/include/psdk/hidpi.h rename to include/psdk/hidpi.h diff --git a/reactos/include/psdk/hidusage.h b/include/psdk/hidusage.h similarity index 100% rename from reactos/include/psdk/hidusage.h rename to include/psdk/hidusage.h diff --git a/reactos/include/psdk/hlguids.h b/include/psdk/hlguids.h similarity index 100% rename from reactos/include/psdk/hlguids.h rename to include/psdk/hlguids.h diff --git a/reactos/include/psdk/hlink.idl b/include/psdk/hlink.idl similarity index 100% rename from reactos/include/psdk/hlink.idl rename to include/psdk/hlink.idl diff --git a/reactos/include/psdk/htiframe.idl b/include/psdk/htiframe.idl similarity index 100% rename from reactos/include/psdk/htiframe.idl rename to include/psdk/htiframe.idl diff --git a/reactos/include/psdk/htmlhelp.h b/include/psdk/htmlhelp.h similarity index 100% rename from reactos/include/psdk/htmlhelp.h rename to include/psdk/htmlhelp.h diff --git a/reactos/include/psdk/http.h b/include/psdk/http.h similarity index 100% rename from reactos/include/psdk/http.h rename to include/psdk/http.h diff --git a/reactos/include/psdk/httpext.h b/include/psdk/httpext.h similarity index 100% rename from reactos/include/psdk/httpext.h rename to include/psdk/httpext.h diff --git a/reactos/include/psdk/httprequest.idl b/include/psdk/httprequest.idl similarity index 100% rename from reactos/include/psdk/httprequest.idl rename to include/psdk/httprequest.idl diff --git a/reactos/include/psdk/httprequestid.h b/include/psdk/httprequestid.h similarity index 100% rename from reactos/include/psdk/httprequestid.h rename to include/psdk/httprequestid.h diff --git a/reactos/include/psdk/i_cryptasn1tls.h b/include/psdk/i_cryptasn1tls.h similarity index 100% rename from reactos/include/psdk/i_cryptasn1tls.h rename to include/psdk/i_cryptasn1tls.h diff --git a/reactos/include/psdk/iads.idl b/include/psdk/iads.idl similarity index 100% rename from reactos/include/psdk/iads.idl rename to include/psdk/iads.idl diff --git a/reactos/include/psdk/icftypes.idl b/include/psdk/icftypes.idl similarity index 100% rename from reactos/include/psdk/icftypes.idl rename to include/psdk/icftypes.idl diff --git a/reactos/include/psdk/icm.h b/include/psdk/icm.h similarity index 100% rename from reactos/include/psdk/icm.h rename to include/psdk/icm.h diff --git a/reactos/include/psdk/icmpapi.h b/include/psdk/icmpapi.h similarity index 100% rename from reactos/include/psdk/icmpapi.h rename to include/psdk/icmpapi.h diff --git a/reactos/include/psdk/idispids.h b/include/psdk/idispids.h similarity index 100% rename from reactos/include/psdk/idispids.h rename to include/psdk/idispids.h diff --git a/reactos/include/psdk/idndl.h b/include/psdk/idndl.h similarity index 100% rename from reactos/include/psdk/idndl.h rename to include/psdk/idndl.h diff --git a/reactos/include/psdk/ieverp.h b/include/psdk/ieverp.h similarity index 100% rename from reactos/include/psdk/ieverp.h rename to include/psdk/ieverp.h diff --git a/reactos/include/psdk/ifdef.h b/include/psdk/ifdef.h similarity index 100% rename from reactos/include/psdk/ifdef.h rename to include/psdk/ifdef.h diff --git a/reactos/include/psdk/imagehlp.h b/include/psdk/imagehlp.h similarity index 100% rename from reactos/include/psdk/imagehlp.h rename to include/psdk/imagehlp.h diff --git a/reactos/include/psdk/imm.h b/include/psdk/imm.h similarity index 100% rename from reactos/include/psdk/imm.h rename to include/psdk/imm.h diff --git a/reactos/include/psdk/imnact.idl b/include/psdk/imnact.idl similarity index 100% rename from reactos/include/psdk/imnact.idl rename to include/psdk/imnact.idl diff --git a/reactos/include/psdk/imnxport.idl b/include/psdk/imnxport.idl similarity index 100% rename from reactos/include/psdk/imnxport.idl rename to include/psdk/imnxport.idl diff --git a/reactos/include/psdk/in6addr.h b/include/psdk/in6addr.h similarity index 100% rename from reactos/include/psdk/in6addr.h rename to include/psdk/in6addr.h diff --git a/reactos/include/psdk/inaddr.h b/include/psdk/inaddr.h similarity index 100% rename from reactos/include/psdk/inaddr.h rename to include/psdk/inaddr.h diff --git a/reactos/include/psdk/indexsrv.idl b/include/psdk/indexsrv.idl similarity index 100% rename from reactos/include/psdk/indexsrv.idl rename to include/psdk/indexsrv.idl diff --git a/reactos/include/psdk/initguid.h b/include/psdk/initguid.h similarity index 100% rename from reactos/include/psdk/initguid.h rename to include/psdk/initguid.h diff --git a/reactos/include/psdk/intsafe.h b/include/psdk/intsafe.h similarity index 100% rename from reactos/include/psdk/intsafe.h rename to include/psdk/intsafe.h diff --git a/reactos/include/psdk/intshcut.h b/include/psdk/intshcut.h similarity index 100% rename from reactos/include/psdk/intshcut.h rename to include/psdk/intshcut.h diff --git a/reactos/include/psdk/ioevent.h b/include/psdk/ioevent.h similarity index 100% rename from reactos/include/psdk/ioevent.h rename to include/psdk/ioevent.h diff --git a/reactos/include/psdk/ipexport.h b/include/psdk/ipexport.h similarity index 100% rename from reactos/include/psdk/ipexport.h rename to include/psdk/ipexport.h diff --git a/reactos/include/psdk/iphlpapi.h b/include/psdk/iphlpapi.h similarity index 100% rename from reactos/include/psdk/iphlpapi.h rename to include/psdk/iphlpapi.h diff --git a/reactos/include/psdk/ipifcons.h b/include/psdk/ipifcons.h similarity index 100% rename from reactos/include/psdk/ipifcons.h rename to include/psdk/ipifcons.h diff --git a/reactos/include/psdk/iprtrmib.h b/include/psdk/iprtrmib.h similarity index 100% rename from reactos/include/psdk/iprtrmib.h rename to include/psdk/iprtrmib.h diff --git a/reactos/include/psdk/iptypes.h b/include/psdk/iptypes.h similarity index 100% rename from reactos/include/psdk/iptypes.h rename to include/psdk/iptypes.h diff --git a/reactos/include/psdk/isguids.h b/include/psdk/isguids.h similarity index 100% rename from reactos/include/psdk/isguids.h rename to include/psdk/isguids.h diff --git a/reactos/include/psdk/kcom.h b/include/psdk/kcom.h similarity index 100% rename from reactos/include/psdk/kcom.h rename to include/psdk/kcom.h diff --git a/reactos/include/psdk/knownfolders.h b/include/psdk/knownfolders.h similarity index 100% rename from reactos/include/psdk/knownfolders.h rename to include/psdk/knownfolders.h diff --git a/reactos/include/psdk/ks.h b/include/psdk/ks.h similarity index 100% rename from reactos/include/psdk/ks.h rename to include/psdk/ks.h diff --git a/reactos/include/psdk/ksdebug.h b/include/psdk/ksdebug.h similarity index 100% rename from reactos/include/psdk/ksdebug.h rename to include/psdk/ksdebug.h diff --git a/reactos/include/psdk/ksmedia.h b/include/psdk/ksmedia.h similarity index 100% rename from reactos/include/psdk/ksmedia.h rename to include/psdk/ksmedia.h diff --git a/reactos/include/psdk/ksproxy.h b/include/psdk/ksproxy.h similarity index 100% rename from reactos/include/psdk/ksproxy.h rename to include/psdk/ksproxy.h diff --git a/reactos/include/psdk/ksuuids.h b/include/psdk/ksuuids.h similarity index 100% rename from reactos/include/psdk/ksuuids.h rename to include/psdk/ksuuids.h diff --git a/reactos/include/psdk/ktmtypes.h b/include/psdk/ktmtypes.h similarity index 100% rename from reactos/include/psdk/ktmtypes.h rename to include/psdk/ktmtypes.h diff --git a/reactos/include/psdk/l2cmn.h b/include/psdk/l2cmn.h similarity index 100% rename from reactos/include/psdk/l2cmn.h rename to include/psdk/l2cmn.h diff --git a/reactos/include/psdk/largeint.h b/include/psdk/largeint.h similarity index 100% rename from reactos/include/psdk/largeint.h rename to include/psdk/largeint.h diff --git a/reactos/include/psdk/lm.h b/include/psdk/lm.h similarity index 100% rename from reactos/include/psdk/lm.h rename to include/psdk/lm.h diff --git a/reactos/include/psdk/lmaccess.h b/include/psdk/lmaccess.h similarity index 100% rename from reactos/include/psdk/lmaccess.h rename to include/psdk/lmaccess.h diff --git a/reactos/include/psdk/lmalert.h b/include/psdk/lmalert.h similarity index 100% rename from reactos/include/psdk/lmalert.h rename to include/psdk/lmalert.h diff --git a/reactos/include/psdk/lmapibuf.h b/include/psdk/lmapibuf.h similarity index 100% rename from reactos/include/psdk/lmapibuf.h rename to include/psdk/lmapibuf.h diff --git a/reactos/include/psdk/lmat.h b/include/psdk/lmat.h similarity index 100% rename from reactos/include/psdk/lmat.h rename to include/psdk/lmat.h diff --git a/reactos/include/psdk/lmaudit.h b/include/psdk/lmaudit.h similarity index 100% rename from reactos/include/psdk/lmaudit.h rename to include/psdk/lmaudit.h diff --git a/reactos/include/psdk/lmchdev.h b/include/psdk/lmchdev.h similarity index 100% rename from reactos/include/psdk/lmchdev.h rename to include/psdk/lmchdev.h diff --git a/reactos/include/psdk/lmconfig.h b/include/psdk/lmconfig.h similarity index 100% rename from reactos/include/psdk/lmconfig.h rename to include/psdk/lmconfig.h diff --git a/reactos/include/psdk/lmcons.h b/include/psdk/lmcons.h similarity index 100% rename from reactos/include/psdk/lmcons.h rename to include/psdk/lmcons.h diff --git a/reactos/include/psdk/lmerr.h b/include/psdk/lmerr.h similarity index 100% rename from reactos/include/psdk/lmerr.h rename to include/psdk/lmerr.h diff --git a/reactos/include/psdk/lmerrlog.h b/include/psdk/lmerrlog.h similarity index 100% rename from reactos/include/psdk/lmerrlog.h rename to include/psdk/lmerrlog.h diff --git a/reactos/include/psdk/lmjoin.h b/include/psdk/lmjoin.h similarity index 100% rename from reactos/include/psdk/lmjoin.h rename to include/psdk/lmjoin.h diff --git a/reactos/include/psdk/lmmsg.h b/include/psdk/lmmsg.h similarity index 100% rename from reactos/include/psdk/lmmsg.h rename to include/psdk/lmmsg.h diff --git a/reactos/include/psdk/lmon.h b/include/psdk/lmon.h similarity index 100% rename from reactos/include/psdk/lmon.h rename to include/psdk/lmon.h diff --git a/reactos/include/psdk/lmremutl.h b/include/psdk/lmremutl.h similarity index 100% rename from reactos/include/psdk/lmremutl.h rename to include/psdk/lmremutl.h diff --git a/reactos/include/psdk/lmrepl.h b/include/psdk/lmrepl.h similarity index 100% rename from reactos/include/psdk/lmrepl.h rename to include/psdk/lmrepl.h diff --git a/reactos/include/psdk/lmserver.h b/include/psdk/lmserver.h similarity index 100% rename from reactos/include/psdk/lmserver.h rename to include/psdk/lmserver.h diff --git a/reactos/include/psdk/lmshare.h b/include/psdk/lmshare.h similarity index 100% rename from reactos/include/psdk/lmshare.h rename to include/psdk/lmshare.h diff --git a/reactos/include/psdk/lmsname.h b/include/psdk/lmsname.h similarity index 100% rename from reactos/include/psdk/lmsname.h rename to include/psdk/lmsname.h diff --git a/reactos/include/psdk/lmstats.h b/include/psdk/lmstats.h similarity index 100% rename from reactos/include/psdk/lmstats.h rename to include/psdk/lmstats.h diff --git a/reactos/include/psdk/lmsvc.h b/include/psdk/lmsvc.h similarity index 100% rename from reactos/include/psdk/lmsvc.h rename to include/psdk/lmsvc.h diff --git a/reactos/include/psdk/lmuse.h b/include/psdk/lmuse.h similarity index 100% rename from reactos/include/psdk/lmuse.h rename to include/psdk/lmuse.h diff --git a/reactos/include/psdk/lmuseflg.h b/include/psdk/lmuseflg.h similarity index 100% rename from reactos/include/psdk/lmuseflg.h rename to include/psdk/lmuseflg.h diff --git a/reactos/include/psdk/lmwksta.h b/include/psdk/lmwksta.h similarity index 100% rename from reactos/include/psdk/lmwksta.h rename to include/psdk/lmwksta.h diff --git a/reactos/include/psdk/loadperf.h b/include/psdk/loadperf.h similarity index 100% rename from reactos/include/psdk/loadperf.h rename to include/psdk/loadperf.h diff --git a/reactos/include/psdk/lzexpand.h b/include/psdk/lzexpand.h similarity index 100% rename from reactos/include/psdk/lzexpand.h rename to include/psdk/lzexpand.h diff --git a/reactos/include/psdk/mapi.h b/include/psdk/mapi.h similarity index 100% rename from reactos/include/psdk/mapi.h rename to include/psdk/mapi.h diff --git a/reactos/include/psdk/mapicode.h b/include/psdk/mapicode.h similarity index 100% rename from reactos/include/psdk/mapicode.h rename to include/psdk/mapicode.h diff --git a/reactos/include/psdk/mapidefs.h b/include/psdk/mapidefs.h similarity index 100% rename from reactos/include/psdk/mapidefs.h rename to include/psdk/mapidefs.h diff --git a/reactos/include/psdk/mapiform.h b/include/psdk/mapiform.h similarity index 100% rename from reactos/include/psdk/mapiform.h rename to include/psdk/mapiform.h diff --git a/reactos/include/psdk/mapiguid.h b/include/psdk/mapiguid.h similarity index 100% rename from reactos/include/psdk/mapiguid.h rename to include/psdk/mapiguid.h diff --git a/reactos/include/psdk/mapitags.h b/include/psdk/mapitags.h similarity index 100% rename from reactos/include/psdk/mapitags.h rename to include/psdk/mapitags.h diff --git a/reactos/include/psdk/mapiutil.h b/include/psdk/mapiutil.h similarity index 100% rename from reactos/include/psdk/mapiutil.h rename to include/psdk/mapiutil.h diff --git a/reactos/include/psdk/mapival.h b/include/psdk/mapival.h similarity index 100% rename from reactos/include/psdk/mapival.h rename to include/psdk/mapival.h diff --git a/reactos/include/psdk/mapix.h b/include/psdk/mapix.h similarity index 100% rename from reactos/include/psdk/mapix.h rename to include/psdk/mapix.h diff --git a/reactos/include/psdk/mciavi.h b/include/psdk/mciavi.h similarity index 100% rename from reactos/include/psdk/mciavi.h rename to include/psdk/mciavi.h diff --git a/reactos/include/psdk/mcx.h b/include/psdk/mcx.h similarity index 100% rename from reactos/include/psdk/mcx.h rename to include/psdk/mcx.h diff --git a/reactos/include/psdk/metahost.idl b/include/psdk/metahost.idl similarity index 100% rename from reactos/include/psdk/metahost.idl rename to include/psdk/metahost.idl diff --git a/reactos/include/psdk/mgmtapi.h b/include/psdk/mgmtapi.h similarity index 100% rename from reactos/include/psdk/mgmtapi.h rename to include/psdk/mgmtapi.h diff --git a/reactos/include/psdk/midles.h b/include/psdk/midles.h similarity index 100% rename from reactos/include/psdk/midles.h rename to include/psdk/midles.h diff --git a/reactos/include/psdk/mimeinfo.idl b/include/psdk/mimeinfo.idl similarity index 100% rename from reactos/include/psdk/mimeinfo.idl rename to include/psdk/mimeinfo.idl diff --git a/reactos/include/psdk/mimeole.idl b/include/psdk/mimeole.idl similarity index 100% rename from reactos/include/psdk/mimeole.idl rename to include/psdk/mimeole.idl diff --git a/reactos/include/psdk/mlang.idl b/include/psdk/mlang.idl similarity index 100% rename from reactos/include/psdk/mlang.idl rename to include/psdk/mlang.idl diff --git a/reactos/include/psdk/mmddk.h b/include/psdk/mmddk.h similarity index 100% rename from reactos/include/psdk/mmddk.h rename to include/psdk/mmddk.h diff --git a/reactos/include/psdk/mmreg.h b/include/psdk/mmreg.h similarity index 100% rename from reactos/include/psdk/mmreg.h rename to include/psdk/mmreg.h diff --git a/reactos/include/psdk/mmsystem.h b/include/psdk/mmsystem.h similarity index 100% rename from reactos/include/psdk/mmsystem.h rename to include/psdk/mmsystem.h diff --git a/reactos/include/psdk/mprapi.h b/include/psdk/mprapi.h similarity index 100% rename from reactos/include/psdk/mprapi.h rename to include/psdk/mprapi.h diff --git a/reactos/include/psdk/msacm.h b/include/psdk/msacm.h similarity index 100% rename from reactos/include/psdk/msacm.h rename to include/psdk/msacm.h diff --git a/reactos/include/psdk/msacmdlg.h b/include/psdk/msacmdlg.h similarity index 100% rename from reactos/include/psdk/msacmdlg.h rename to include/psdk/msacmdlg.h diff --git a/reactos/include/psdk/mscat.h b/include/psdk/mscat.h similarity index 100% rename from reactos/include/psdk/mscat.h rename to include/psdk/mscat.h diff --git a/reactos/include/psdk/mscoree.idl b/include/psdk/mscoree.idl similarity index 100% rename from reactos/include/psdk/mscoree.idl rename to include/psdk/mscoree.idl diff --git a/reactos/include/psdk/msctf.idl b/include/psdk/msctf.idl similarity index 100% rename from reactos/include/psdk/msctf.idl rename to include/psdk/msctf.idl diff --git a/reactos/include/psdk/msdadc.idl b/include/psdk/msdadc.idl similarity index 100% rename from reactos/include/psdk/msdadc.idl rename to include/psdk/msdadc.idl diff --git a/reactos/include/psdk/mshtmcid.h b/include/psdk/mshtmcid.h similarity index 100% rename from reactos/include/psdk/mshtmcid.h rename to include/psdk/mshtmcid.h diff --git a/reactos/include/psdk/mshtmdid.h b/include/psdk/mshtmdid.h similarity index 100% rename from reactos/include/psdk/mshtmdid.h rename to include/psdk/mshtmdid.h diff --git a/reactos/include/psdk/mshtmhst.idl b/include/psdk/mshtmhst.idl similarity index 100% rename from reactos/include/psdk/mshtmhst.idl rename to include/psdk/mshtmhst.idl diff --git a/reactos/include/psdk/mshtml.idl b/include/psdk/mshtml.idl similarity index 100% rename from reactos/include/psdk/mshtml.idl rename to include/psdk/mshtml.idl diff --git a/reactos/include/psdk/msi.h b/include/psdk/msi.h similarity index 100% rename from reactos/include/psdk/msi.h rename to include/psdk/msi.h diff --git a/reactos/include/psdk/msidefs.h b/include/psdk/msidefs.h similarity index 100% rename from reactos/include/psdk/msidefs.h rename to include/psdk/msidefs.h diff --git a/reactos/include/psdk/msinkaut.idl b/include/psdk/msinkaut.idl similarity index 100% rename from reactos/include/psdk/msinkaut.idl rename to include/psdk/msinkaut.idl diff --git a/reactos/include/psdk/msiquery.h b/include/psdk/msiquery.h similarity index 100% rename from reactos/include/psdk/msiquery.h rename to include/psdk/msiquery.h diff --git a/reactos/include/psdk/mssip.h b/include/psdk/mssip.h similarity index 100% rename from reactos/include/psdk/mssip.h rename to include/psdk/mssip.h diff --git a/reactos/include/psdk/mstask.idl b/include/psdk/mstask.idl similarity index 100% rename from reactos/include/psdk/mstask.idl rename to include/psdk/mstask.idl diff --git a/reactos/include/psdk/mstcpip.h b/include/psdk/mstcpip.h similarity index 100% rename from reactos/include/psdk/mstcpip.h rename to include/psdk/mstcpip.h diff --git a/reactos/include/psdk/mswsock.h b/include/psdk/mswsock.h similarity index 100% rename from reactos/include/psdk/mswsock.h rename to include/psdk/mswsock.h diff --git a/reactos/include/psdk/mswsockdef.h b/include/psdk/mswsockdef.h similarity index 100% rename from reactos/include/psdk/mswsockdef.h rename to include/psdk/mswsockdef.h diff --git a/reactos/include/psdk/msxml.idl b/include/psdk/msxml.idl similarity index 100% rename from reactos/include/psdk/msxml.idl rename to include/psdk/msxml.idl diff --git a/reactos/include/psdk/msxml2.idl b/include/psdk/msxml2.idl similarity index 100% rename from reactos/include/psdk/msxml2.idl rename to include/psdk/msxml2.idl diff --git a/reactos/include/psdk/msxml2did.h b/include/psdk/msxml2did.h similarity index 100% rename from reactos/include/psdk/msxml2did.h rename to include/psdk/msxml2did.h diff --git a/reactos/include/psdk/msxml6.idl b/include/psdk/msxml6.idl similarity index 100% rename from reactos/include/psdk/msxml6.idl rename to include/psdk/msxml6.idl diff --git a/reactos/include/psdk/msxml6did.h b/include/psdk/msxml6did.h similarity index 100% rename from reactos/include/psdk/msxml6did.h rename to include/psdk/msxml6did.h diff --git a/reactos/include/psdk/msxmldid.h b/include/psdk/msxmldid.h similarity index 100% rename from reactos/include/psdk/msxmldid.h rename to include/psdk/msxmldid.h diff --git a/reactos/include/psdk/multimon.h b/include/psdk/multimon.h similarity index 100% rename from reactos/include/psdk/multimon.h rename to include/psdk/multimon.h diff --git a/reactos/include/psdk/nb30.h b/include/psdk/nb30.h similarity index 100% rename from reactos/include/psdk/nb30.h rename to include/psdk/nb30.h diff --git a/reactos/include/psdk/nddeapi.h b/include/psdk/nddeapi.h similarity index 100% rename from reactos/include/psdk/nddeapi.h rename to include/psdk/nddeapi.h diff --git a/reactos/include/psdk/ndrtypes.h b/include/psdk/ndrtypes.h similarity index 100% rename from reactos/include/psdk/ndrtypes.h rename to include/psdk/ndrtypes.h diff --git a/reactos/include/psdk/netcfgn.h b/include/psdk/netcfgn.h similarity index 100% rename from reactos/include/psdk/netcfgn.h rename to include/psdk/netcfgn.h diff --git a/reactos/include/psdk/netcfgx.h b/include/psdk/netcfgx.h similarity index 100% rename from reactos/include/psdk/netcfgx.h rename to include/psdk/netcfgx.h diff --git a/reactos/include/psdk/netcon.h b/include/psdk/netcon.h similarity index 100% rename from reactos/include/psdk/netcon.h rename to include/psdk/netcon.h diff --git a/reactos/include/psdk/netcon.idl b/include/psdk/netcon.idl similarity index 100% rename from reactos/include/psdk/netcon.idl rename to include/psdk/netcon.idl diff --git a/reactos/include/psdk/netevent.h b/include/psdk/netevent.h similarity index 100% rename from reactos/include/psdk/netevent.h rename to include/psdk/netevent.h diff --git a/reactos/include/psdk/netfw.idl b/include/psdk/netfw.idl similarity index 100% rename from reactos/include/psdk/netfw.idl rename to include/psdk/netfw.idl diff --git a/reactos/include/psdk/netioapi.h b/include/psdk/netioapi.h similarity index 100% rename from reactos/include/psdk/netioapi.h rename to include/psdk/netioapi.h diff --git a/reactos/include/psdk/netiodef.h b/include/psdk/netiodef.h similarity index 100% rename from reactos/include/psdk/netiodef.h rename to include/psdk/netiodef.h diff --git a/reactos/include/psdk/nettypes.h b/include/psdk/nettypes.h similarity index 100% rename from reactos/include/psdk/nettypes.h rename to include/psdk/nettypes.h diff --git a/reactos/include/psdk/newdev.h b/include/psdk/newdev.h similarity index 100% rename from reactos/include/psdk/newdev.h rename to include/psdk/newdev.h diff --git a/reactos/include/psdk/nldef.h b/include/psdk/nldef.h similarity index 100% rename from reactos/include/psdk/nldef.h rename to include/psdk/nldef.h diff --git a/reactos/include/psdk/npapi.h b/include/psdk/npapi.h similarity index 100% rename from reactos/include/psdk/npapi.h rename to include/psdk/npapi.h diff --git a/reactos/include/psdk/nspapi.h b/include/psdk/nspapi.h similarity index 100% rename from reactos/include/psdk/nspapi.h rename to include/psdk/nspapi.h diff --git a/reactos/include/psdk/ntdd1394.h b/include/psdk/ntdd1394.h similarity index 100% rename from reactos/include/psdk/ntdd1394.h rename to include/psdk/ntdd1394.h diff --git a/reactos/include/psdk/ntdd8042.h b/include/psdk/ntdd8042.h similarity index 100% rename from reactos/include/psdk/ntdd8042.h rename to include/psdk/ntdd8042.h diff --git a/reactos/include/psdk/ntddbeep.h b/include/psdk/ntddbeep.h similarity index 100% rename from reactos/include/psdk/ntddbeep.h rename to include/psdk/ntddbeep.h diff --git a/reactos/include/psdk/ntddcdrm.h b/include/psdk/ntddcdrm.h similarity index 100% rename from reactos/include/psdk/ntddcdrm.h rename to include/psdk/ntddcdrm.h diff --git a/reactos/include/psdk/ntddcdvd.h b/include/psdk/ntddcdvd.h similarity index 100% rename from reactos/include/psdk/ntddcdvd.h rename to include/psdk/ntddcdvd.h diff --git a/reactos/include/psdk/ntddchgr.h b/include/psdk/ntddchgr.h similarity index 100% rename from reactos/include/psdk/ntddchgr.h rename to include/psdk/ntddchgr.h diff --git a/reactos/include/psdk/ntdddisk.h b/include/psdk/ntdddisk.h similarity index 100% rename from reactos/include/psdk/ntdddisk.h rename to include/psdk/ntdddisk.h diff --git a/reactos/include/psdk/ntddft.h b/include/psdk/ntddft.h similarity index 100% rename from reactos/include/psdk/ntddft.h rename to include/psdk/ntddft.h diff --git a/reactos/include/psdk/ntddkbd.h b/include/psdk/ntddkbd.h similarity index 100% rename from reactos/include/psdk/ntddkbd.h rename to include/psdk/ntddkbd.h diff --git a/reactos/include/psdk/ntddmmc.h b/include/psdk/ntddmmc.h similarity index 100% rename from reactos/include/psdk/ntddmmc.h rename to include/psdk/ntddmmc.h diff --git a/reactos/include/psdk/ntddmou.h b/include/psdk/ntddmou.h similarity index 100% rename from reactos/include/psdk/ntddmou.h rename to include/psdk/ntddmou.h diff --git a/reactos/include/psdk/ntddndis.h b/include/psdk/ntddndis.h similarity index 100% rename from reactos/include/psdk/ntddndis.h rename to include/psdk/ntddndis.h diff --git a/reactos/include/psdk/ntddpar.h b/include/psdk/ntddpar.h similarity index 100% rename from reactos/include/psdk/ntddpar.h rename to include/psdk/ntddpar.h diff --git a/reactos/include/psdk/ntddscsi.h b/include/psdk/ntddscsi.h similarity index 100% rename from reactos/include/psdk/ntddscsi.h rename to include/psdk/ntddscsi.h diff --git a/reactos/include/psdk/ntddser.h b/include/psdk/ntddser.h similarity index 100% rename from reactos/include/psdk/ntddser.h rename to include/psdk/ntddser.h diff --git a/reactos/include/psdk/ntddstor.h b/include/psdk/ntddstor.h similarity index 100% rename from reactos/include/psdk/ntddstor.h rename to include/psdk/ntddstor.h diff --git a/reactos/include/psdk/ntddtape.h b/include/psdk/ntddtape.h similarity index 100% rename from reactos/include/psdk/ntddtape.h rename to include/psdk/ntddtape.h diff --git a/reactos/include/psdk/ntddtdi.h b/include/psdk/ntddtdi.h similarity index 100% rename from reactos/include/psdk/ntddtdi.h rename to include/psdk/ntddtdi.h diff --git a/reactos/include/psdk/ntddvdeo.h b/include/psdk/ntddvdeo.h similarity index 100% rename from reactos/include/psdk/ntddvdeo.h rename to include/psdk/ntddvdeo.h diff --git a/reactos/include/psdk/ntddvol.h b/include/psdk/ntddvol.h similarity index 100% rename from reactos/include/psdk/ntddvol.h rename to include/psdk/ntddvol.h diff --git a/reactos/include/psdk/ntdef.h b/include/psdk/ntdef.h similarity index 100% rename from reactos/include/psdk/ntdef.h rename to include/psdk/ntdef.h diff --git a/reactos/include/psdk/ntdll.h b/include/psdk/ntdll.h similarity index 100% rename from reactos/include/psdk/ntdll.h rename to include/psdk/ntdll.h diff --git a/reactos/include/psdk/ntdsapi.h b/include/psdk/ntdsapi.h similarity index 100% rename from reactos/include/psdk/ntdsapi.h rename to include/psdk/ntdsapi.h diff --git a/reactos/include/psdk/ntgdi.h b/include/psdk/ntgdi.h similarity index 100% rename from reactos/include/psdk/ntgdi.h rename to include/psdk/ntgdi.h diff --git a/reactos/include/psdk/ntiologc.h b/include/psdk/ntiologc.h similarity index 100% rename from reactos/include/psdk/ntiologc.h rename to include/psdk/ntiologc.h diff --git a/reactos/include/psdk/ntldap.h b/include/psdk/ntldap.h similarity index 100% rename from reactos/include/psdk/ntldap.h rename to include/psdk/ntldap.h diff --git a/reactos/include/psdk/ntlsa.h b/include/psdk/ntlsa.h similarity index 100% rename from reactos/include/psdk/ntlsa.h rename to include/psdk/ntlsa.h diff --git a/reactos/include/psdk/ntquery.h b/include/psdk/ntquery.h similarity index 100% rename from reactos/include/psdk/ntquery.h rename to include/psdk/ntquery.h diff --git a/reactos/include/psdk/ntsecapi.h b/include/psdk/ntsecapi.h similarity index 100% rename from reactos/include/psdk/ntsecapi.h rename to include/psdk/ntsecapi.h diff --git a/reactos/include/psdk/ntsecpkg.h b/include/psdk/ntsecpkg.h similarity index 100% rename from reactos/include/psdk/ntsecpkg.h rename to include/psdk/ntsecpkg.h diff --git a/reactos/include/psdk/ntstatus.h b/include/psdk/ntstatus.h similarity index 100% rename from reactos/include/psdk/ntstatus.h rename to include/psdk/ntstatus.h diff --git a/reactos/include/psdk/ntverp.h b/include/psdk/ntverp.h similarity index 100% rename from reactos/include/psdk/ntverp.h rename to include/psdk/ntverp.h diff --git a/reactos/include/psdk/oaidl.idl b/include/psdk/oaidl.idl similarity index 100% rename from reactos/include/psdk/oaidl.idl rename to include/psdk/oaidl.idl diff --git a/reactos/include/psdk/objbase.h b/include/psdk/objbase.h similarity index 100% rename from reactos/include/psdk/objbase.h rename to include/psdk/objbase.h diff --git a/reactos/include/psdk/objectarray.idl b/include/psdk/objectarray.idl similarity index 100% rename from reactos/include/psdk/objectarray.idl rename to include/psdk/objectarray.idl diff --git a/reactos/include/psdk/objerror.h b/include/psdk/objerror.h similarity index 100% rename from reactos/include/psdk/objerror.h rename to include/psdk/objerror.h diff --git a/reactos/include/psdk/objfwd.h b/include/psdk/objfwd.h similarity index 100% rename from reactos/include/psdk/objfwd.h rename to include/psdk/objfwd.h diff --git a/reactos/include/psdk/objidl.idl b/include/psdk/objidl.idl similarity index 100% rename from reactos/include/psdk/objidl.idl rename to include/psdk/objidl.idl diff --git a/reactos/include/psdk/objsafe.idl b/include/psdk/objsafe.idl similarity index 100% rename from reactos/include/psdk/objsafe.idl rename to include/psdk/objsafe.idl diff --git a/reactos/include/psdk/objsel.h b/include/psdk/objsel.h similarity index 100% rename from reactos/include/psdk/objsel.h rename to include/psdk/objsel.h diff --git a/reactos/include/psdk/ocidl.idl b/include/psdk/ocidl.idl similarity index 100% rename from reactos/include/psdk/ocidl.idl rename to include/psdk/ocidl.idl diff --git a/reactos/include/psdk/ocmm.idl b/include/psdk/ocmm.idl similarity index 100% rename from reactos/include/psdk/ocmm.idl rename to include/psdk/ocmm.idl diff --git a/reactos/include/psdk/odbcinst.h b/include/psdk/odbcinst.h similarity index 100% rename from reactos/include/psdk/odbcinst.h rename to include/psdk/odbcinst.h diff --git a/reactos/include/psdk/ole.h b/include/psdk/ole.h similarity index 100% rename from reactos/include/psdk/ole.h rename to include/psdk/ole.h diff --git a/reactos/include/psdk/ole2.h b/include/psdk/ole2.h similarity index 100% rename from reactos/include/psdk/ole2.h rename to include/psdk/ole2.h diff --git a/reactos/include/psdk/ole2ver.h b/include/psdk/ole2ver.h similarity index 100% rename from reactos/include/psdk/ole2ver.h rename to include/psdk/ole2ver.h diff --git a/reactos/include/psdk/oleacc.idl b/include/psdk/oleacc.idl similarity index 100% rename from reactos/include/psdk/oleacc.idl rename to include/psdk/oleacc.idl diff --git a/reactos/include/psdk/oleauto.h b/include/psdk/oleauto.h similarity index 100% rename from reactos/include/psdk/oleauto.h rename to include/psdk/oleauto.h diff --git a/reactos/include/psdk/olectl.h b/include/psdk/olectl.h similarity index 100% rename from reactos/include/psdk/olectl.h rename to include/psdk/olectl.h diff --git a/reactos/include/psdk/olectlid.h b/include/psdk/olectlid.h similarity index 100% rename from reactos/include/psdk/olectlid.h rename to include/psdk/olectlid.h diff --git a/reactos/include/psdk/oledb.idl b/include/psdk/oledb.idl similarity index 100% rename from reactos/include/psdk/oledb.idl rename to include/psdk/oledb.idl diff --git a/reactos/include/psdk/oledlg.h b/include/psdk/oledlg.h similarity index 100% rename from reactos/include/psdk/oledlg.h rename to include/psdk/oledlg.h diff --git a/reactos/include/psdk/oleidl.idl b/include/psdk/oleidl.idl similarity index 100% rename from reactos/include/psdk/oleidl.idl rename to include/psdk/oleidl.idl diff --git a/reactos/include/psdk/opnrst.idl b/include/psdk/opnrst.idl similarity index 100% rename from reactos/include/psdk/opnrst.idl rename to include/psdk/opnrst.idl diff --git a/reactos/include/psdk/optary.idl b/include/psdk/optary.idl similarity index 100% rename from reactos/include/psdk/optary.idl rename to include/psdk/optary.idl diff --git a/reactos/include/psdk/pbt.h b/include/psdk/pbt.h similarity index 100% rename from reactos/include/psdk/pbt.h rename to include/psdk/pbt.h diff --git a/reactos/include/psdk/pdh.h b/include/psdk/pdh.h similarity index 100% rename from reactos/include/psdk/pdh.h rename to include/psdk/pdh.h diff --git a/reactos/include/psdk/pdhmsg.h b/include/psdk/pdhmsg.h similarity index 100% rename from reactos/include/psdk/pdhmsg.h rename to include/psdk/pdhmsg.h diff --git a/reactos/include/psdk/perhist.idl b/include/psdk/perhist.idl similarity index 100% rename from reactos/include/psdk/perhist.idl rename to include/psdk/perhist.idl diff --git a/reactos/include/psdk/polarity.h b/include/psdk/polarity.h similarity index 100% rename from reactos/include/psdk/polarity.h rename to include/psdk/polarity.h diff --git a/reactos/include/psdk/poppack.h b/include/psdk/poppack.h similarity index 100% rename from reactos/include/psdk/poppack.h rename to include/psdk/poppack.h diff --git a/reactos/include/psdk/powrprof.h b/include/psdk/powrprof.h similarity index 100% rename from reactos/include/psdk/powrprof.h rename to include/psdk/powrprof.h diff --git a/reactos/include/psdk/prntfont.h b/include/psdk/prntfont.h similarity index 100% rename from reactos/include/psdk/prntfont.h rename to include/psdk/prntfont.h diff --git a/reactos/include/psdk/propidl.idl b/include/psdk/propidl.idl similarity index 100% rename from reactos/include/psdk/propidl.idl rename to include/psdk/propidl.idl diff --git a/reactos/include/psdk/propkeydef.h b/include/psdk/propkeydef.h similarity index 100% rename from reactos/include/psdk/propkeydef.h rename to include/psdk/propkeydef.h diff --git a/reactos/include/psdk/propsys.idl b/include/psdk/propsys.idl similarity index 100% rename from reactos/include/psdk/propsys.idl rename to include/psdk/propsys.idl diff --git a/reactos/include/psdk/propvarutil.h b/include/psdk/propvarutil.h similarity index 100% rename from reactos/include/psdk/propvarutil.h rename to include/psdk/propvarutil.h diff --git a/reactos/include/psdk/prsht.h b/include/psdk/prsht.h similarity index 100% rename from reactos/include/psdk/prsht.h rename to include/psdk/prsht.h diff --git a/reactos/include/psdk/psapi.h b/include/psdk/psapi.h similarity index 100% rename from reactos/include/psdk/psapi.h rename to include/psdk/psapi.h diff --git a/reactos/include/psdk/pshpack1.h b/include/psdk/pshpack1.h similarity index 100% rename from reactos/include/psdk/pshpack1.h rename to include/psdk/pshpack1.h diff --git a/reactos/include/psdk/pshpack2.h b/include/psdk/pshpack2.h similarity index 100% rename from reactos/include/psdk/pshpack2.h rename to include/psdk/pshpack2.h diff --git a/reactos/include/psdk/pshpack4.h b/include/psdk/pshpack4.h similarity index 100% rename from reactos/include/psdk/pshpack4.h rename to include/psdk/pshpack4.h diff --git a/reactos/include/psdk/pshpack8.h b/include/psdk/pshpack8.h similarity index 100% rename from reactos/include/psdk/pshpack8.h rename to include/psdk/pshpack8.h diff --git a/reactos/include/psdk/pshpck16.h b/include/psdk/pshpck16.h similarity index 100% rename from reactos/include/psdk/pshpck16.h rename to include/psdk/pshpck16.h diff --git a/reactos/include/psdk/pstore.idl b/include/psdk/pstore.idl similarity index 100% rename from reactos/include/psdk/pstore.idl rename to include/psdk/pstore.idl diff --git a/reactos/include/psdk/qos.h b/include/psdk/qos.h similarity index 100% rename from reactos/include/psdk/qos.h rename to include/psdk/qos.h diff --git a/reactos/include/psdk/rapi.h b/include/psdk/rapi.h similarity index 100% rename from reactos/include/psdk/rapi.h rename to include/psdk/rapi.h diff --git a/reactos/include/psdk/ras.h b/include/psdk/ras.h similarity index 100% rename from reactos/include/psdk/ras.h rename to include/psdk/ras.h diff --git a/reactos/include/psdk/rasdlg.h b/include/psdk/rasdlg.h similarity index 100% rename from reactos/include/psdk/rasdlg.h rename to include/psdk/rasdlg.h diff --git a/reactos/include/psdk/raseapif.h b/include/psdk/raseapif.h similarity index 100% rename from reactos/include/psdk/raseapif.h rename to include/psdk/raseapif.h diff --git a/reactos/include/psdk/raserror.h b/include/psdk/raserror.h similarity index 100% rename from reactos/include/psdk/raserror.h rename to include/psdk/raserror.h diff --git a/reactos/include/psdk/rassapi.h b/include/psdk/rassapi.h similarity index 100% rename from reactos/include/psdk/rassapi.h rename to include/psdk/rassapi.h diff --git a/reactos/include/psdk/rasshost.h b/include/psdk/rasshost.h similarity index 100% rename from reactos/include/psdk/rasshost.h rename to include/psdk/rasshost.h diff --git a/reactos/include/psdk/reason.h b/include/psdk/reason.h similarity index 100% rename from reactos/include/psdk/reason.h rename to include/psdk/reason.h diff --git a/reactos/include/psdk/regstr.h b/include/psdk/regstr.h similarity index 100% rename from reactos/include/psdk/regstr.h rename to include/psdk/regstr.h diff --git a/reactos/include/psdk/richedit.h b/include/psdk/richedit.h similarity index 100% rename from reactos/include/psdk/richedit.h rename to include/psdk/richedit.h diff --git a/reactos/include/psdk/richole.idl b/include/psdk/richole.idl similarity index 100% rename from reactos/include/psdk/richole.idl rename to include/psdk/richole.idl diff --git a/reactos/include/psdk/row.idl b/include/psdk/row.idl similarity index 100% rename from reactos/include/psdk/row.idl rename to include/psdk/row.idl diff --git a/reactos/include/psdk/rowchg.idl b/include/psdk/rowchg.idl similarity index 100% rename from reactos/include/psdk/rowchg.idl rename to include/psdk/rowchg.idl diff --git a/reactos/include/psdk/rpc.h b/include/psdk/rpc.h similarity index 100% rename from reactos/include/psdk/rpc.h rename to include/psdk/rpc.h diff --git a/reactos/include/psdk/rpcasync.h b/include/psdk/rpcasync.h similarity index 100% rename from reactos/include/psdk/rpcasync.h rename to include/psdk/rpcasync.h diff --git a/reactos/include/psdk/rpcdce.h b/include/psdk/rpcdce.h similarity index 100% rename from reactos/include/psdk/rpcdce.h rename to include/psdk/rpcdce.h diff --git a/reactos/include/psdk/rpcdce2.h b/include/psdk/rpcdce2.h similarity index 100% rename from reactos/include/psdk/rpcdce2.h rename to include/psdk/rpcdce2.h diff --git a/reactos/include/psdk/rpcdcep.h b/include/psdk/rpcdcep.h similarity index 100% rename from reactos/include/psdk/rpcdcep.h rename to include/psdk/rpcdcep.h diff --git a/reactos/include/psdk/rpcndr.h b/include/psdk/rpcndr.h similarity index 100% rename from reactos/include/psdk/rpcndr.h rename to include/psdk/rpcndr.h diff --git a/reactos/include/psdk/rpcnsi.h b/include/psdk/rpcnsi.h similarity index 100% rename from reactos/include/psdk/rpcnsi.h rename to include/psdk/rpcnsi.h diff --git a/reactos/include/psdk/rpcnsip.h b/include/psdk/rpcnsip.h similarity index 100% rename from reactos/include/psdk/rpcnsip.h rename to include/psdk/rpcnsip.h diff --git a/reactos/include/psdk/rpcnterr.h b/include/psdk/rpcnterr.h similarity index 100% rename from reactos/include/psdk/rpcnterr.h rename to include/psdk/rpcnterr.h diff --git a/reactos/include/psdk/rpcproxy.h b/include/psdk/rpcproxy.h similarity index 100% rename from reactos/include/psdk/rpcproxy.h rename to include/psdk/rpcproxy.h diff --git a/reactos/include/psdk/rstbas.idl b/include/psdk/rstbas.idl similarity index 100% rename from reactos/include/psdk/rstbas.idl rename to include/psdk/rstbas.idl diff --git a/reactos/include/psdk/rstinf.idl b/include/psdk/rstinf.idl similarity index 100% rename from reactos/include/psdk/rstinf.idl rename to include/psdk/rstinf.idl diff --git a/reactos/include/psdk/rstloc.idl b/include/psdk/rstloc.idl similarity index 100% rename from reactos/include/psdk/rstloc.idl rename to include/psdk/rstloc.idl diff --git a/reactos/include/psdk/sal.h b/include/psdk/sal.h similarity index 100% rename from reactos/include/psdk/sal.h rename to include/psdk/sal.h diff --git a/reactos/include/psdk/sal_old.h b/include/psdk/sal_old.h similarity index 100% rename from reactos/include/psdk/sal_old.h rename to include/psdk/sal_old.h diff --git a/reactos/include/psdk/scarderr.h b/include/psdk/scarderr.h similarity index 100% rename from reactos/include/psdk/scarderr.h rename to include/psdk/scarderr.h diff --git a/reactos/include/psdk/schannel.h b/include/psdk/schannel.h similarity index 100% rename from reactos/include/psdk/schannel.h rename to include/psdk/schannel.h diff --git a/reactos/include/psdk/schemadef.h b/include/psdk/schemadef.h similarity index 100% rename from reactos/include/psdk/schemadef.h rename to include/psdk/schemadef.h diff --git a/reactos/include/psdk/schnlsp.h b/include/psdk/schnlsp.h similarity index 100% rename from reactos/include/psdk/schnlsp.h rename to include/psdk/schnlsp.h diff --git a/reactos/include/psdk/scrnsave.h b/include/psdk/scrnsave.h similarity index 100% rename from reactos/include/psdk/scrnsave.h rename to include/psdk/scrnsave.h diff --git a/reactos/include/psdk/sddl.h b/include/psdk/sddl.h similarity index 100% rename from reactos/include/psdk/sddl.h rename to include/psdk/sddl.h diff --git a/reactos/include/psdk/sdkddkver.h b/include/psdk/sdkddkver.h similarity index 100% rename from reactos/include/psdk/sdkddkver.h rename to include/psdk/sdkddkver.h diff --git a/reactos/include/psdk/secext.h b/include/psdk/secext.h similarity index 100% rename from reactos/include/psdk/secext.h rename to include/psdk/secext.h diff --git a/reactos/include/psdk/security.h b/include/psdk/security.h similarity index 100% rename from reactos/include/psdk/security.h rename to include/psdk/security.h diff --git a/reactos/include/psdk/sensapi.h b/include/psdk/sensapi.h similarity index 100% rename from reactos/include/psdk/sensapi.h rename to include/psdk/sensapi.h diff --git a/reactos/include/psdk/sensevts.idl b/include/psdk/sensevts.idl similarity index 100% rename from reactos/include/psdk/sensevts.idl rename to include/psdk/sensevts.idl diff --git a/reactos/include/psdk/servprov.idl b/include/psdk/servprov.idl similarity index 100% rename from reactos/include/psdk/servprov.idl rename to include/psdk/servprov.idl diff --git a/reactos/include/psdk/sesprp.idl b/include/psdk/sesprp.idl similarity index 100% rename from reactos/include/psdk/sesprp.idl rename to include/psdk/sesprp.idl diff --git a/reactos/include/psdk/setupapi.h b/include/psdk/setupapi.h similarity index 100% rename from reactos/include/psdk/setupapi.h rename to include/psdk/setupapi.h diff --git a/reactos/include/psdk/sfc.h b/include/psdk/sfc.h similarity index 100% rename from reactos/include/psdk/sfc.h rename to include/psdk/sfc.h diff --git a/reactos/include/psdk/shdeprecated.idl b/include/psdk/shdeprecated.idl similarity index 100% rename from reactos/include/psdk/shdeprecated.idl rename to include/psdk/shdeprecated.idl diff --git a/reactos/include/psdk/shdispid.h b/include/psdk/shdispid.h similarity index 100% rename from reactos/include/psdk/shdispid.h rename to include/psdk/shdispid.h diff --git a/reactos/include/psdk/shellapi.h b/include/psdk/shellapi.h similarity index 100% rename from reactos/include/psdk/shellapi.h rename to include/psdk/shellapi.h diff --git a/reactos/include/psdk/shldisp.idl b/include/psdk/shldisp.idl similarity index 100% rename from reactos/include/psdk/shldisp.idl rename to include/psdk/shldisp.idl diff --git a/reactos/include/psdk/shlguid.h b/include/psdk/shlguid.h similarity index 100% rename from reactos/include/psdk/shlguid.h rename to include/psdk/shlguid.h diff --git a/reactos/include/psdk/shlguid_undoc.h b/include/psdk/shlguid_undoc.h similarity index 100% rename from reactos/include/psdk/shlguid_undoc.h rename to include/psdk/shlguid_undoc.h diff --git a/reactos/include/psdk/shlobj.h b/include/psdk/shlobj.h similarity index 100% rename from reactos/include/psdk/shlobj.h rename to include/psdk/shlobj.h diff --git a/reactos/include/psdk/shlobj_undoc.h b/include/psdk/shlobj_undoc.h similarity index 100% rename from reactos/include/psdk/shlobj_undoc.h rename to include/psdk/shlobj_undoc.h diff --git a/reactos/include/psdk/shlwapi.h b/include/psdk/shlwapi.h similarity index 100% rename from reactos/include/psdk/shlwapi.h rename to include/psdk/shlwapi.h diff --git a/reactos/include/psdk/shlwapi_undoc.h b/include/psdk/shlwapi_undoc.h similarity index 100% rename from reactos/include/psdk/shlwapi_undoc.h rename to include/psdk/shlwapi_undoc.h diff --git a/reactos/include/psdk/shobjidl.idl b/include/psdk/shobjidl.idl similarity index 100% rename from reactos/include/psdk/shobjidl.idl rename to include/psdk/shobjidl.idl diff --git a/reactos/include/psdk/shtypes.idl b/include/psdk/shtypes.idl similarity index 100% rename from reactos/include/psdk/shtypes.idl rename to include/psdk/shtypes.idl diff --git a/reactos/include/psdk/snmp.h b/include/psdk/snmp.h similarity index 100% rename from reactos/include/psdk/snmp.h rename to include/psdk/snmp.h diff --git a/reactos/include/psdk/softpub.h b/include/psdk/softpub.h similarity index 100% rename from reactos/include/psdk/softpub.h rename to include/psdk/softpub.h diff --git a/reactos/include/psdk/specstrings.h b/include/psdk/specstrings.h similarity index 100% rename from reactos/include/psdk/specstrings.h rename to include/psdk/specstrings.h diff --git a/reactos/include/psdk/sql.h b/include/psdk/sql.h similarity index 100% rename from reactos/include/psdk/sql.h rename to include/psdk/sql.h diff --git a/reactos/include/psdk/sqlext.h b/include/psdk/sqlext.h similarity index 100% rename from reactos/include/psdk/sqlext.h rename to include/psdk/sqlext.h diff --git a/reactos/include/psdk/sqltypes.h b/include/psdk/sqltypes.h similarity index 100% rename from reactos/include/psdk/sqltypes.h rename to include/psdk/sqltypes.h diff --git a/reactos/include/psdk/sqlucode.h b/include/psdk/sqlucode.h similarity index 100% rename from reactos/include/psdk/sqlucode.h rename to include/psdk/sqlucode.h diff --git a/reactos/include/psdk/srrestoreptapi.h b/include/psdk/srrestoreptapi.h similarity index 100% rename from reactos/include/psdk/srrestoreptapi.h rename to include/psdk/srrestoreptapi.h diff --git a/reactos/include/psdk/sspi.h b/include/psdk/sspi.h similarity index 100% rename from reactos/include/psdk/sspi.h rename to include/psdk/sspi.h diff --git a/reactos/include/psdk/stdole2.idl b/include/psdk/stdole2.idl similarity index 100% rename from reactos/include/psdk/stdole2.idl rename to include/psdk/stdole2.idl diff --git a/reactos/include/psdk/sti.h b/include/psdk/sti.h similarity index 100% rename from reactos/include/psdk/sti.h rename to include/psdk/sti.h diff --git a/reactos/include/psdk/stierr.h b/include/psdk/stierr.h similarity index 100% rename from reactos/include/psdk/stierr.h rename to include/psdk/stierr.h diff --git a/reactos/include/psdk/stireg.h b/include/psdk/stireg.h similarity index 100% rename from reactos/include/psdk/stireg.h rename to include/psdk/stireg.h diff --git a/reactos/include/psdk/strmif.idl b/include/psdk/strmif.idl similarity index 100% rename from reactos/include/psdk/strmif.idl rename to include/psdk/strmif.idl diff --git a/reactos/include/psdk/strsafe.h b/include/psdk/strsafe.h similarity index 100% rename from reactos/include/psdk/strsafe.h rename to include/psdk/strsafe.h diff --git a/reactos/include/psdk/structuredquerycondition.idl b/include/psdk/structuredquerycondition.idl similarity index 100% rename from reactos/include/psdk/structuredquerycondition.idl rename to include/psdk/structuredquerycondition.idl diff --git a/reactos/include/psdk/subauth.h b/include/psdk/subauth.h similarity index 100% rename from reactos/include/psdk/subauth.h rename to include/psdk/subauth.h diff --git a/reactos/include/psdk/svcguid.h b/include/psdk/svcguid.h similarity index 100% rename from reactos/include/psdk/svcguid.h rename to include/psdk/svcguid.h diff --git a/reactos/include/psdk/svrapi.h b/include/psdk/svrapi.h similarity index 100% rename from reactos/include/psdk/svrapi.h rename to include/psdk/svrapi.h diff --git a/reactos/include/psdk/t2embapi.h b/include/psdk/t2embapi.h similarity index 100% rename from reactos/include/psdk/t2embapi.h rename to include/psdk/t2embapi.h diff --git a/reactos/include/psdk/tapi.h b/include/psdk/tapi.h similarity index 100% rename from reactos/include/psdk/tapi.h rename to include/psdk/tapi.h diff --git a/reactos/include/psdk/tcpioctl.h b/include/psdk/tcpioctl.h similarity index 100% rename from reactos/include/psdk/tcpioctl.h rename to include/psdk/tcpioctl.h diff --git a/reactos/include/psdk/tdi.h b/include/psdk/tdi.h similarity index 100% rename from reactos/include/psdk/tdi.h rename to include/psdk/tdi.h diff --git a/reactos/include/psdk/tdiinfo.h b/include/psdk/tdiinfo.h similarity index 100% rename from reactos/include/psdk/tdiinfo.h rename to include/psdk/tdiinfo.h diff --git a/reactos/include/psdk/textserv.h b/include/psdk/textserv.h similarity index 100% rename from reactos/include/psdk/textserv.h rename to include/psdk/textserv.h diff --git a/reactos/include/psdk/textstor.idl b/include/psdk/textstor.idl similarity index 100% rename from reactos/include/psdk/textstor.idl rename to include/psdk/textstor.idl diff --git a/reactos/include/psdk/tlhelp32.h b/include/psdk/tlhelp32.h similarity index 100% rename from reactos/include/psdk/tlhelp32.h rename to include/psdk/tlhelp32.h diff --git a/reactos/include/psdk/tmschema.h b/include/psdk/tmschema.h similarity index 100% rename from reactos/include/psdk/tmschema.h rename to include/psdk/tmschema.h diff --git a/reactos/include/psdk/tom.idl b/include/psdk/tom.idl similarity index 100% rename from reactos/include/psdk/tom.idl rename to include/psdk/tom.idl diff --git a/reactos/include/psdk/traffic.h b/include/psdk/traffic.h similarity index 100% rename from reactos/include/psdk/traffic.h rename to include/psdk/traffic.h diff --git a/reactos/include/psdk/tuner.idl b/include/psdk/tuner.idl similarity index 100% rename from reactos/include/psdk/tuner.idl rename to include/psdk/tuner.idl diff --git a/reactos/include/psdk/tvout.h b/include/psdk/tvout.h similarity index 100% rename from reactos/include/psdk/tvout.h rename to include/psdk/tvout.h diff --git a/reactos/include/psdk/twain.h b/include/psdk/twain.h similarity index 100% rename from reactos/include/psdk/twain.h rename to include/psdk/twain.h diff --git a/reactos/include/psdk/unknown.h b/include/psdk/unknown.h similarity index 100% rename from reactos/include/psdk/unknown.h rename to include/psdk/unknown.h diff --git a/reactos/include/psdk/unknwn.idl b/include/psdk/unknwn.idl similarity index 100% rename from reactos/include/psdk/unknwn.idl rename to include/psdk/unknwn.idl diff --git a/reactos/include/psdk/urlhist.idl b/include/psdk/urlhist.idl similarity index 100% rename from reactos/include/psdk/urlhist.idl rename to include/psdk/urlhist.idl diff --git a/reactos/include/psdk/urlmon.idl b/include/psdk/urlmon.idl similarity index 100% rename from reactos/include/psdk/urlmon.idl rename to include/psdk/urlmon.idl diff --git a/reactos/include/psdk/usb.h b/include/psdk/usb.h similarity index 100% rename from reactos/include/psdk/usb.h rename to include/psdk/usb.h diff --git a/reactos/include/psdk/usb100.h b/include/psdk/usb100.h similarity index 100% rename from reactos/include/psdk/usb100.h rename to include/psdk/usb100.h diff --git a/reactos/include/psdk/usb200.h b/include/psdk/usb200.h similarity index 100% rename from reactos/include/psdk/usb200.h rename to include/psdk/usb200.h diff --git a/reactos/include/psdk/usbcamdi.h b/include/psdk/usbcamdi.h similarity index 100% rename from reactos/include/psdk/usbcamdi.h rename to include/psdk/usbcamdi.h diff --git a/reactos/include/psdk/usbdi.h b/include/psdk/usbdi.h similarity index 100% rename from reactos/include/psdk/usbdi.h rename to include/psdk/usbdi.h diff --git a/reactos/include/psdk/usbioctl.h b/include/psdk/usbioctl.h similarity index 100% rename from reactos/include/psdk/usbioctl.h rename to include/psdk/usbioctl.h diff --git a/reactos/include/psdk/usbiodef.h b/include/psdk/usbiodef.h similarity index 100% rename from reactos/include/psdk/usbiodef.h rename to include/psdk/usbiodef.h diff --git a/reactos/include/psdk/usbrpmif.h b/include/psdk/usbrpmif.h similarity index 100% rename from reactos/include/psdk/usbrpmif.h rename to include/psdk/usbrpmif.h diff --git a/reactos/include/psdk/usbuser.h b/include/psdk/usbuser.h similarity index 100% rename from reactos/include/psdk/usbuser.h rename to include/psdk/usbuser.h diff --git a/reactos/include/psdk/userenv.h b/include/psdk/userenv.h similarity index 100% rename from reactos/include/psdk/userenv.h rename to include/psdk/userenv.h diff --git a/reactos/include/psdk/usp10.h b/include/psdk/usp10.h similarity index 100% rename from reactos/include/psdk/usp10.h rename to include/psdk/usp10.h diff --git a/reactos/include/psdk/uxtheme.h b/include/psdk/uxtheme.h similarity index 100% rename from reactos/include/psdk/uxtheme.h rename to include/psdk/uxtheme.h diff --git a/reactos/include/psdk/vfw.h b/include/psdk/vfw.h similarity index 100% rename from reactos/include/psdk/vfw.h rename to include/psdk/vfw.h diff --git a/reactos/include/psdk/vfwmsgs.h b/include/psdk/vfwmsgs.h similarity index 100% rename from reactos/include/psdk/vfwmsgs.h rename to include/psdk/vfwmsgs.h diff --git a/reactos/include/psdk/vmr9.idl b/include/psdk/vmr9.idl similarity index 100% rename from reactos/include/psdk/vmr9.idl rename to include/psdk/vmr9.idl diff --git a/reactos/include/psdk/vmrender.idl b/include/psdk/vmrender.idl similarity index 100% rename from reactos/include/psdk/vmrender.idl rename to include/psdk/vmrender.idl diff --git a/reactos/include/psdk/vsstyle.h b/include/psdk/vsstyle.h similarity index 100% rename from reactos/include/psdk/vsstyle.h rename to include/psdk/vsstyle.h diff --git a/reactos/include/psdk/vssym32.h b/include/psdk/vssym32.h similarity index 100% rename from reactos/include/psdk/vssym32.h rename to include/psdk/vssym32.h diff --git a/reactos/include/psdk/w32api.h b/include/psdk/w32api.h similarity index 100% rename from reactos/include/psdk/w32api.h rename to include/psdk/w32api.h diff --git a/reactos/include/psdk/warning.h b/include/psdk/warning.h similarity index 100% rename from reactos/include/psdk/warning.h rename to include/psdk/warning.h diff --git a/reactos/include/psdk/wbemcli.idl b/include/psdk/wbemcli.idl similarity index 100% rename from reactos/include/psdk/wbemcli.idl rename to include/psdk/wbemcli.idl diff --git a/reactos/include/psdk/wdbgexts.h b/include/psdk/wdbgexts.h similarity index 100% rename from reactos/include/psdk/wdbgexts.h rename to include/psdk/wdbgexts.h diff --git a/reactos/include/psdk/werapi.h b/include/psdk/werapi.h similarity index 100% rename from reactos/include/psdk/werapi.h rename to include/psdk/werapi.h diff --git a/reactos/include/psdk/wia.h b/include/psdk/wia.h similarity index 100% rename from reactos/include/psdk/wia.h rename to include/psdk/wia.h diff --git a/reactos/include/psdk/wia_lh.idl b/include/psdk/wia_lh.idl similarity index 100% rename from reactos/include/psdk/wia_lh.idl rename to include/psdk/wia_lh.idl diff --git a/reactos/include/psdk/wia_xp.idl b/include/psdk/wia_xp.idl similarity index 100% rename from reactos/include/psdk/wia_xp.idl rename to include/psdk/wia_xp.idl diff --git a/reactos/include/psdk/winable.h b/include/psdk/winable.h similarity index 100% rename from reactos/include/psdk/winable.h rename to include/psdk/winable.h diff --git a/reactos/include/psdk/winbase.h b/include/psdk/winbase.h similarity index 100% rename from reactos/include/psdk/winbase.h rename to include/psdk/winbase.h diff --git a/reactos/include/psdk/winber.h b/include/psdk/winber.h similarity index 100% rename from reactos/include/psdk/winber.h rename to include/psdk/winber.h diff --git a/reactos/include/psdk/wincodec.idl b/include/psdk/wincodec.idl similarity index 100% rename from reactos/include/psdk/wincodec.idl rename to include/psdk/wincodec.idl diff --git a/reactos/include/psdk/wincon.h b/include/psdk/wincon.h similarity index 100% rename from reactos/include/psdk/wincon.h rename to include/psdk/wincon.h diff --git a/reactos/include/psdk/wincred.h b/include/psdk/wincred.h similarity index 100% rename from reactos/include/psdk/wincred.h rename to include/psdk/wincred.h diff --git a/reactos/include/psdk/wincrypt.h b/include/psdk/wincrypt.h similarity index 100% rename from reactos/include/psdk/wincrypt.h rename to include/psdk/wincrypt.h diff --git a/reactos/include/psdk/winddi.h b/include/psdk/winddi.h similarity index 100% rename from reactos/include/psdk/winddi.h rename to include/psdk/winddi.h diff --git a/reactos/include/psdk/winddiui.h b/include/psdk/winddiui.h similarity index 100% rename from reactos/include/psdk/winddiui.h rename to include/psdk/winddiui.h diff --git a/reactos/include/psdk/windef.h b/include/psdk/windef.h similarity index 100% rename from reactos/include/psdk/windef.h rename to include/psdk/windef.h diff --git a/reactos/include/psdk/windns.h b/include/psdk/windns.h similarity index 100% rename from reactos/include/psdk/windns.h rename to include/psdk/windns.h diff --git a/reactos/include/psdk/windot11.h b/include/psdk/windot11.h similarity index 100% rename from reactos/include/psdk/windot11.h rename to include/psdk/windot11.h diff --git a/reactos/include/psdk/windows.h b/include/psdk/windows.h similarity index 100% rename from reactos/include/psdk/windows.h rename to include/psdk/windows.h diff --git a/reactos/include/psdk/windowsx.h b/include/psdk/windowsx.h similarity index 100% rename from reactos/include/psdk/windowsx.h rename to include/psdk/windowsx.h diff --git a/reactos/include/psdk/winefs.h b/include/psdk/winefs.h similarity index 100% rename from reactos/include/psdk/winefs.h rename to include/psdk/winefs.h diff --git a/reactos/include/psdk/winerror.h b/include/psdk/winerror.h similarity index 100% rename from reactos/include/psdk/winerror.h rename to include/psdk/winerror.h diff --git a/reactos/include/psdk/winfax.h b/include/psdk/winfax.h similarity index 100% rename from reactos/include/psdk/winfax.h rename to include/psdk/winfax.h diff --git a/reactos/include/psdk/wingdi.h b/include/psdk/wingdi.h similarity index 100% rename from reactos/include/psdk/wingdi.h rename to include/psdk/wingdi.h diff --git a/reactos/include/psdk/winhttp.h b/include/psdk/winhttp.h similarity index 100% rename from reactos/include/psdk/winhttp.h rename to include/psdk/winhttp.h diff --git a/reactos/include/psdk/wininet.h b/include/psdk/wininet.h similarity index 100% rename from reactos/include/psdk/wininet.h rename to include/psdk/wininet.h diff --git a/reactos/include/psdk/winineti.h b/include/psdk/winineti.h similarity index 100% rename from reactos/include/psdk/winineti.h rename to include/psdk/winineti.h diff --git a/reactos/include/psdk/winioctl.h b/include/psdk/winioctl.h similarity index 100% rename from reactos/include/psdk/winioctl.h rename to include/psdk/winioctl.h diff --git a/reactos/include/psdk/winldap.h b/include/psdk/winldap.h similarity index 100% rename from reactos/include/psdk/winldap.h rename to include/psdk/winldap.h diff --git a/reactos/include/psdk/winnetwk.h b/include/psdk/winnetwk.h similarity index 100% rename from reactos/include/psdk/winnetwk.h rename to include/psdk/winnetwk.h diff --git a/reactos/include/psdk/winnls.h b/include/psdk/winnls.h similarity index 100% rename from reactos/include/psdk/winnls.h rename to include/psdk/winnls.h diff --git a/reactos/include/psdk/winnls32.h b/include/psdk/winnls32.h similarity index 100% rename from reactos/include/psdk/winnls32.h rename to include/psdk/winnls32.h diff --git a/reactos/include/psdk/winnt.h b/include/psdk/winnt.h similarity index 100% rename from reactos/include/psdk/winnt.h rename to include/psdk/winnt.h diff --git a/reactos/include/psdk/winperf.h b/include/psdk/winperf.h similarity index 100% rename from reactos/include/psdk/winperf.h rename to include/psdk/winperf.h diff --git a/reactos/include/psdk/winreg.h b/include/psdk/winreg.h similarity index 100% rename from reactos/include/psdk/winreg.h rename to include/psdk/winreg.h diff --git a/reactos/include/psdk/winres.h b/include/psdk/winres.h similarity index 100% rename from reactos/include/psdk/winres.h rename to include/psdk/winres.h diff --git a/reactos/include/psdk/winresrc.h b/include/psdk/winresrc.h similarity index 100% rename from reactos/include/psdk/winresrc.h rename to include/psdk/winresrc.h diff --git a/reactos/include/psdk/winsafer.h b/include/psdk/winsafer.h similarity index 100% rename from reactos/include/psdk/winsafer.h rename to include/psdk/winsafer.h diff --git a/reactos/include/psdk/winscard.h b/include/psdk/winscard.h similarity index 100% rename from reactos/include/psdk/winscard.h rename to include/psdk/winscard.h diff --git a/reactos/include/psdk/winsmcrd.h b/include/psdk/winsmcrd.h similarity index 100% rename from reactos/include/psdk/winsmcrd.h rename to include/psdk/winsmcrd.h diff --git a/reactos/include/psdk/winsnmp.h b/include/psdk/winsnmp.h similarity index 100% rename from reactos/include/psdk/winsnmp.h rename to include/psdk/winsnmp.h diff --git a/reactos/include/psdk/winsock.h b/include/psdk/winsock.h similarity index 100% rename from reactos/include/psdk/winsock.h rename to include/psdk/winsock.h diff --git a/reactos/include/psdk/winsock2.h b/include/psdk/winsock2.h similarity index 100% rename from reactos/include/psdk/winsock2.h rename to include/psdk/winsock2.h diff --git a/reactos/include/psdk/winsplp.h b/include/psdk/winsplp.h similarity index 100% rename from reactos/include/psdk/winsplp.h rename to include/psdk/winsplp.h diff --git a/reactos/include/psdk/winspool.h b/include/psdk/winspool.h similarity index 100% rename from reactos/include/psdk/winspool.h rename to include/psdk/winspool.h diff --git a/reactos/include/psdk/winsvc.h b/include/psdk/winsvc.h similarity index 100% rename from reactos/include/psdk/winsvc.h rename to include/psdk/winsvc.h diff --git a/reactos/include/psdk/winsxs.idl b/include/psdk/winsxs.idl similarity index 100% rename from reactos/include/psdk/winsxs.idl rename to include/psdk/winsxs.idl diff --git a/reactos/include/psdk/winternl.h b/include/psdk/winternl.h similarity index 100% rename from reactos/include/psdk/winternl.h rename to include/psdk/winternl.h diff --git a/reactos/include/psdk/wintrust.h b/include/psdk/wintrust.h similarity index 100% rename from reactos/include/psdk/wintrust.h rename to include/psdk/wintrust.h diff --git a/reactos/include/psdk/winuser.h b/include/psdk/winuser.h similarity index 100% rename from reactos/include/psdk/winuser.h rename to include/psdk/winuser.h diff --git a/reactos/include/psdk/winver.h b/include/psdk/winver.h similarity index 100% rename from reactos/include/psdk/winver.h rename to include/psdk/winver.h diff --git a/reactos/include/psdk/winwlx.h b/include/psdk/winwlx.h similarity index 100% rename from reactos/include/psdk/winwlx.h rename to include/psdk/winwlx.h diff --git a/reactos/include/psdk/wlanapi.h b/include/psdk/wlanapi.h similarity index 100% rename from reactos/include/psdk/wlanapi.h rename to include/psdk/wlanapi.h diff --git a/reactos/include/psdk/wlantypes.h b/include/psdk/wlantypes.h similarity index 100% rename from reactos/include/psdk/wlantypes.h rename to include/psdk/wlantypes.h diff --git a/reactos/include/psdk/wmistr.h b/include/psdk/wmistr.h similarity index 100% rename from reactos/include/psdk/wmistr.h rename to include/psdk/wmistr.h diff --git a/reactos/include/psdk/ws2atm.h b/include/psdk/ws2atm.h similarity index 100% rename from reactos/include/psdk/ws2atm.h rename to include/psdk/ws2atm.h diff --git a/reactos/include/psdk/ws2bth.h b/include/psdk/ws2bth.h similarity index 100% rename from reactos/include/psdk/ws2bth.h rename to include/psdk/ws2bth.h diff --git a/reactos/include/psdk/ws2def.h b/include/psdk/ws2def.h similarity index 100% rename from reactos/include/psdk/ws2def.h rename to include/psdk/ws2def.h diff --git a/reactos/include/psdk/ws2ipdef.h b/include/psdk/ws2ipdef.h similarity index 100% rename from reactos/include/psdk/ws2ipdef.h rename to include/psdk/ws2ipdef.h diff --git a/reactos/include/psdk/ws2spi.h b/include/psdk/ws2spi.h similarity index 100% rename from reactos/include/psdk/ws2spi.h rename to include/psdk/ws2spi.h diff --git a/reactos/include/psdk/ws2tcpip.h b/include/psdk/ws2tcpip.h similarity index 100% rename from reactos/include/psdk/ws2tcpip.h rename to include/psdk/ws2tcpip.h diff --git a/reactos/include/psdk/wsahelp.h b/include/psdk/wsahelp.h similarity index 100% rename from reactos/include/psdk/wsahelp.h rename to include/psdk/wsahelp.h diff --git a/reactos/include/psdk/wsipv6ok.h b/include/psdk/wsipv6ok.h similarity index 100% rename from reactos/include/psdk/wsipv6ok.h rename to include/psdk/wsipv6ok.h diff --git a/reactos/include/psdk/wsipx.h b/include/psdk/wsipx.h similarity index 100% rename from reactos/include/psdk/wsipx.h rename to include/psdk/wsipx.h diff --git a/reactos/include/psdk/wsnetbs.h b/include/psdk/wsnetbs.h similarity index 100% rename from reactos/include/psdk/wsnetbs.h rename to include/psdk/wsnetbs.h diff --git a/reactos/include/psdk/wspiapi.h b/include/psdk/wspiapi.h similarity index 100% rename from reactos/include/psdk/wspiapi.h rename to include/psdk/wspiapi.h diff --git a/reactos/include/psdk/wtsapi32.h b/include/psdk/wtsapi32.h similarity index 100% rename from reactos/include/psdk/wtsapi32.h rename to include/psdk/wtsapi32.h diff --git a/reactos/include/psdk/wtypes.idl b/include/psdk/wtypes.idl similarity index 100% rename from reactos/include/psdk/wtypes.idl rename to include/psdk/wtypes.idl diff --git a/reactos/include/psdk/wuapi.idl b/include/psdk/wuapi.idl similarity index 100% rename from reactos/include/psdk/wuapi.idl rename to include/psdk/wuapi.idl diff --git a/reactos/include/psdk/xcmc.h b/include/psdk/xcmc.h similarity index 100% rename from reactos/include/psdk/xcmc.h rename to include/psdk/xcmc.h diff --git a/reactos/include/psdk/xinput.h b/include/psdk/xinput.h similarity index 100% rename from reactos/include/psdk/xinput.h rename to include/psdk/xinput.h diff --git a/reactos/include/psdk/xmldom.h b/include/psdk/xmldom.h similarity index 100% rename from reactos/include/psdk/xmldom.h rename to include/psdk/xmldom.h diff --git a/reactos/include/psdk/xmldom.idl b/include/psdk/xmldom.idl similarity index 100% rename from reactos/include/psdk/xmldom.idl rename to include/psdk/xmldom.idl diff --git a/reactos/include/psdk/xmldomdid.h b/include/psdk/xmldomdid.h similarity index 100% rename from reactos/include/psdk/xmldomdid.h rename to include/psdk/xmldomdid.h diff --git a/reactos/include/psdk/xmldso.idl b/include/psdk/xmldso.idl similarity index 100% rename from reactos/include/psdk/xmldso.idl rename to include/psdk/xmldso.idl diff --git a/reactos/include/psdk/xmldsodid.h b/include/psdk/xmldsodid.h similarity index 100% rename from reactos/include/psdk/xmldsodid.h rename to include/psdk/xmldsodid.h diff --git a/reactos/include/psdk/xmllite.idl b/include/psdk/xmllite.idl similarity index 100% rename from reactos/include/psdk/xmllite.idl rename to include/psdk/xmllite.idl diff --git a/reactos/include/psdk/xprtdefs.h b/include/psdk/xprtdefs.h similarity index 100% rename from reactos/include/psdk/xprtdefs.h rename to include/psdk/xprtdefs.h diff --git a/reactos/include/psdk/zmouse.h b/include/psdk/zmouse.h similarity index 100% rename from reactos/include/psdk/zmouse.h rename to include/psdk/zmouse.h diff --git a/reactos/include/reactos/arc/arc.h b/include/reactos/arc/arc.h similarity index 100% rename from reactos/include/reactos/arc/arc.h rename to include/reactos/arc/arc.h diff --git a/reactos/include/reactos/arc/setupblk.h b/include/reactos/arc/setupblk.h similarity index 100% rename from reactos/include/reactos/arc/setupblk.h rename to include/reactos/arc/setupblk.h diff --git a/reactos/include/reactos/arm/armddk.h b/include/reactos/arm/armddk.h similarity index 100% rename from reactos/include/reactos/arm/armddk.h rename to include/reactos/arm/armddk.h diff --git a/reactos/include/reactos/arm/peripherals/pl011.h b/include/reactos/arm/peripherals/pl011.h similarity index 100% rename from reactos/include/reactos/arm/peripherals/pl011.h rename to include/reactos/arm/peripherals/pl011.h diff --git a/reactos/include/reactos/arm/peripherals/pl190.h b/include/reactos/arm/peripherals/pl190.h similarity index 100% rename from reactos/include/reactos/arm/peripherals/pl190.h rename to include/reactos/arm/peripherals/pl190.h diff --git a/reactos/include/reactos/arm/peripherals/sp804.h b/include/reactos/arm/peripherals/sp804.h similarity index 100% rename from reactos/include/reactos/arm/peripherals/sp804.h rename to include/reactos/arm/peripherals/sp804.h diff --git a/reactos/include/reactos/buildno.h.cmake b/include/reactos/buildno.h.cmake similarity index 100% rename from reactos/include/reactos/buildno.h.cmake rename to include/reactos/buildno.h.cmake diff --git a/reactos/include/reactos/chew/chew.h b/include/reactos/chew/chew.h similarity index 100% rename from reactos/include/reactos/chew/chew.h rename to include/reactos/chew/chew.h diff --git a/reactos/include/reactos/debug.h b/include/reactos/debug.h similarity index 100% rename from reactos/include/reactos/debug.h rename to include/reactos/debug.h diff --git a/reactos/include/reactos/dll/desk/deskcplx.h b/include/reactos/dll/desk/deskcplx.h similarity index 100% rename from reactos/include/reactos/dll/desk/deskcplx.h rename to include/reactos/dll/desk/deskcplx.h diff --git a/reactos/include/reactos/dll/devmgr/devmgr.h b/include/reactos/dll/devmgr/devmgr.h similarity index 100% rename from reactos/include/reactos/dll/devmgr/devmgr.h rename to include/reactos/dll/devmgr/devmgr.h diff --git a/reactos/include/reactos/dll/directx/d3d8thk.h b/include/reactos/dll/directx/d3d8thk.h similarity index 100% rename from reactos/include/reactos/dll/directx/d3d8thk.h rename to include/reactos/dll/directx/d3d8thk.h diff --git a/reactos/include/reactos/drivers/acpi/acpi.h b/include/reactos/drivers/acpi/acpi.h similarity index 100% rename from reactos/include/reactos/drivers/acpi/acpi.h rename to include/reactos/drivers/acpi/acpi.h diff --git a/reactos/include/reactos/drivers/afd/shared.h b/include/reactos/drivers/afd/shared.h similarity index 100% rename from reactos/include/reactos/drivers/afd/shared.h rename to include/reactos/drivers/afd/shared.h diff --git a/reactos/include/reactos/drivers/blue/ntddblue.h b/include/reactos/drivers/blue/ntddblue.h similarity index 100% rename from reactos/include/reactos/drivers/blue/ntddblue.h rename to include/reactos/drivers/blue/ntddblue.h diff --git a/reactos/include/reactos/drivers/bootvid/bootvid.h b/include/reactos/drivers/bootvid/bootvid.h similarity index 100% rename from reactos/include/reactos/drivers/bootvid/bootvid.h rename to include/reactos/drivers/bootvid/bootvid.h diff --git a/reactos/include/reactos/drivers/directx/directxint.h b/include/reactos/drivers/directx/directxint.h similarity index 100% rename from reactos/include/reactos/drivers/directx/directxint.h rename to include/reactos/drivers/directx/directxint.h diff --git a/reactos/include/reactos/drivers/directx/dxeng.h b/include/reactos/drivers/directx/dxeng.h similarity index 100% rename from reactos/include/reactos/drivers/directx/dxeng.h rename to include/reactos/drivers/directx/dxeng.h diff --git a/reactos/include/reactos/drivers/directx/dxg.h b/include/reactos/drivers/directx/dxg.h similarity index 100% rename from reactos/include/reactos/drivers/directx/dxg.h rename to include/reactos/drivers/directx/dxg.h diff --git a/reactos/include/reactos/drivers/ndisuio/nuiouser.h b/include/reactos/drivers/ndisuio/nuiouser.h similarity index 100% rename from reactos/include/reactos/drivers/ndisuio/nuiouser.h rename to include/reactos/drivers/ndisuio/nuiouser.h diff --git a/reactos/include/reactos/drivers/ntddrdsk.h b/include/reactos/drivers/ntddrdsk.h similarity index 100% rename from reactos/include/reactos/drivers/ntddrdsk.h rename to include/reactos/drivers/ntddrdsk.h diff --git a/reactos/include/reactos/drivers/pci/pci.h b/include/reactos/drivers/pci/pci.h similarity index 100% rename from reactos/include/reactos/drivers/pci/pci.h rename to include/reactos/drivers/pci/pci.h diff --git a/reactos/include/reactos/drivers/serial/ns16550.h b/include/reactos/drivers/serial/ns16550.h similarity index 100% rename from reactos/include/reactos/drivers/serial/ns16550.h rename to include/reactos/drivers/serial/ns16550.h diff --git a/reactos/include/reactos/elf/common.h b/include/reactos/elf/common.h similarity index 100% rename from reactos/include/reactos/elf/common.h rename to include/reactos/elf/common.h diff --git a/reactos/include/reactos/elf/elf-i386.h b/include/reactos/elf/elf-i386.h similarity index 100% rename from reactos/include/reactos/elf/elf-i386.h rename to include/reactos/elf/elf-i386.h diff --git a/reactos/include/reactos/elf/elf-powerpc.h b/include/reactos/elf/elf-powerpc.h similarity index 100% rename from reactos/include/reactos/elf/elf-powerpc.h rename to include/reactos/elf/elf-powerpc.h diff --git a/reactos/include/reactos/elf/elf.h b/include/reactos/elf/elf.h similarity index 100% rename from reactos/include/reactos/elf/elf.h rename to include/reactos/elf/elf.h diff --git a/reactos/include/reactos/elf/elf32.h b/include/reactos/elf/elf32.h similarity index 100% rename from reactos/include/reactos/elf/elf32.h rename to include/reactos/elf/elf32.h diff --git a/reactos/include/reactos/elf/elf64.h b/include/reactos/elf/elf64.h similarity index 100% rename from reactos/include/reactos/elf/elf64.h rename to include/reactos/elf/elf64.h diff --git a/reactos/include/reactos/elf/generic.h b/include/reactos/elf/generic.h similarity index 100% rename from reactos/include/reactos/elf/generic.h rename to include/reactos/elf/generic.h diff --git a/reactos/include/reactos/elf/machine.h b/include/reactos/elf/machine.h similarity index 100% rename from reactos/include/reactos/elf/machine.h rename to include/reactos/elf/machine.h diff --git a/reactos/include/reactos/elf/reactos.h b/include/reactos/elf/reactos.h similarity index 100% rename from reactos/include/reactos/elf/reactos.h rename to include/reactos/elf/reactos.h diff --git a/reactos/include/reactos/exeformat.h b/include/reactos/exeformat.h similarity index 100% rename from reactos/include/reactos/exeformat.h rename to include/reactos/exeformat.h diff --git a/reactos/include/reactos/idl/eventlogrpc.acf b/include/reactos/idl/eventlogrpc.acf similarity index 100% rename from reactos/include/reactos/idl/eventlogrpc.acf rename to include/reactos/idl/eventlogrpc.acf diff --git a/reactos/include/reactos/idl/eventlogrpc.idl b/include/reactos/idl/eventlogrpc.idl similarity index 100% rename from reactos/include/reactos/idl/eventlogrpc.idl rename to include/reactos/idl/eventlogrpc.idl diff --git a/reactos/include/reactos/idl/lsa.acf b/include/reactos/idl/lsa.acf similarity index 100% rename from reactos/include/reactos/idl/lsa.acf rename to include/reactos/idl/lsa.acf diff --git a/reactos/include/reactos/idl/lsa.idl b/include/reactos/idl/lsa.idl similarity index 100% rename from reactos/include/reactos/idl/lsa.idl rename to include/reactos/idl/lsa.idl diff --git a/reactos/include/reactos/idl/ms-dtyp.idl b/include/reactos/idl/ms-dtyp.idl similarity index 100% rename from reactos/include/reactos/idl/ms-dtyp.idl rename to include/reactos/idl/ms-dtyp.idl diff --git a/reactos/include/reactos/idl/pnp.acf b/include/reactos/idl/pnp.acf similarity index 100% rename from reactos/include/reactos/idl/pnp.acf rename to include/reactos/idl/pnp.acf diff --git a/reactos/include/reactos/idl/pnp.idl b/include/reactos/idl/pnp.idl similarity index 100% rename from reactos/include/reactos/idl/pnp.idl rename to include/reactos/idl/pnp.idl diff --git a/reactos/include/reactos/idl/sam.acf b/include/reactos/idl/sam.acf similarity index 100% rename from reactos/include/reactos/idl/sam.acf rename to include/reactos/idl/sam.acf diff --git a/reactos/include/reactos/idl/sam.idl b/include/reactos/idl/sam.idl similarity index 100% rename from reactos/include/reactos/idl/sam.idl rename to include/reactos/idl/sam.idl diff --git a/reactos/include/reactos/idl/svcctl.acf b/include/reactos/idl/svcctl.acf similarity index 100% rename from reactos/include/reactos/idl/svcctl.acf rename to include/reactos/idl/svcctl.acf diff --git a/reactos/include/reactos/idl/svcctl.idl b/include/reactos/idl/svcctl.idl similarity index 100% rename from reactos/include/reactos/idl/svcctl.idl rename to include/reactos/idl/svcctl.idl diff --git a/reactos/include/reactos/idl/wlansvc.idl b/include/reactos/idl/wlansvc.idl similarity index 100% rename from reactos/include/reactos/idl/wlansvc.idl rename to include/reactos/idl/wlansvc.idl diff --git a/reactos/include/reactos/kddll.h b/include/reactos/kddll.h similarity index 100% rename from reactos/include/reactos/kddll.h rename to include/reactos/kddll.h diff --git a/reactos/include/reactos/kdros.h b/include/reactos/kdros.h similarity index 100% rename from reactos/include/reactos/kdros.h rename to include/reactos/kdros.h diff --git a/reactos/include/reactos/kjk/argv_parser.h b/include/reactos/kjk/argv_parser.h similarity index 100% rename from reactos/include/reactos/kjk/argv_parser.h rename to include/reactos/kjk/argv_parser.h diff --git a/reactos/include/reactos/kjk/null_output_iterator.h b/include/reactos/kjk/null_output_iterator.h similarity index 100% rename from reactos/include/reactos/kjk/null_output_iterator.h rename to include/reactos/kjk/null_output_iterator.h diff --git a/reactos/include/reactos/kjk/stringz_iterator.h b/include/reactos/kjk/stringz_iterator.h similarity index 100% rename from reactos/include/reactos/kjk/stringz_iterator.h rename to include/reactos/kjk/stringz_iterator.h diff --git a/reactos/include/reactos/ks386.inc b/include/reactos/ks386.inc similarity index 100% rename from reactos/include/reactos/ks386.inc rename to include/reactos/ks386.inc diff --git a/reactos/include/reactos/ksamd64.inc b/include/reactos/ksamd64.inc similarity index 100% rename from reactos/include/reactos/ksamd64.inc rename to include/reactos/ksamd64.inc diff --git a/reactos/include/reactos/libs/audiosrv/audiosrv.h b/include/reactos/libs/audiosrv/audiosrv.h similarity index 100% rename from reactos/include/reactos/libs/audiosrv/audiosrv.h rename to include/reactos/libs/audiosrv/audiosrv.h diff --git a/reactos/include/reactos/libs/cportlib/cportlib.h b/include/reactos/libs/cportlib/cportlib.h similarity index 100% rename from reactos/include/reactos/libs/cportlib/cportlib.h rename to include/reactos/libs/cportlib/cportlib.h diff --git a/reactos/include/reactos/libs/dhcp/rosdhcp_public.h b/include/reactos/libs/dhcp/rosdhcp_public.h similarity index 100% rename from reactos/include/reactos/libs/dhcp/rosdhcp_public.h rename to include/reactos/libs/dhcp/rosdhcp_public.h diff --git a/reactos/include/reactos/libs/epsapi/epsapi.h b/include/reactos/libs/epsapi/epsapi.h similarity index 100% rename from reactos/include/reactos/libs/epsapi/epsapi.h rename to include/reactos/libs/epsapi/epsapi.h diff --git a/reactos/include/reactos/libs/expat/expat.h b/include/reactos/libs/expat/expat.h similarity index 100% rename from reactos/include/reactos/libs/expat/expat.h rename to include/reactos/libs/expat/expat.h diff --git a/reactos/include/reactos/libs/expat/expat_external.h b/include/reactos/libs/expat/expat_external.h similarity index 100% rename from reactos/include/reactos/libs/expat/expat_external.h rename to include/reactos/libs/expat/expat_external.h diff --git a/reactos/include/reactos/libs/fmifs/fmifs.h b/include/reactos/libs/fmifs/fmifs.h similarity index 100% rename from reactos/include/reactos/libs/fmifs/fmifs.h rename to include/reactos/libs/fmifs/fmifs.h diff --git a/reactos/include/reactos/libs/fslib/ext2lib.h b/include/reactos/libs/fslib/ext2lib.h similarity index 100% rename from reactos/include/reactos/libs/fslib/ext2lib.h rename to include/reactos/libs/fslib/ext2lib.h diff --git a/reactos/include/reactos/libs/fslib/vfatlib.h b/include/reactos/libs/fslib/vfatlib.h similarity index 100% rename from reactos/include/reactos/libs/fslib/vfatlib.h rename to include/reactos/libs/fslib/vfatlib.h diff --git a/reactos/include/reactos/libs/fslib/vfatxlib.h b/include/reactos/libs/fslib/vfatxlib.h similarity index 100% rename from reactos/include/reactos/libs/fslib/vfatxlib.h rename to include/reactos/libs/fslib/vfatxlib.h diff --git a/reactos/include/reactos/libs/fullfat/fat.h b/include/reactos/libs/fullfat/fat.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/fat.h rename to include/reactos/libs/fullfat/fat.h diff --git a/reactos/include/reactos/libs/fullfat/ff_blk.h b/include/reactos/libs/fullfat/ff_blk.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_blk.h rename to include/reactos/libs/fullfat/ff_blk.h diff --git a/reactos/include/reactos/libs/fullfat/ff_config.h b/include/reactos/libs/fullfat/ff_config.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_config.h rename to include/reactos/libs/fullfat/ff_config.h diff --git a/reactos/include/reactos/libs/fullfat/ff_crc.h b/include/reactos/libs/fullfat/ff_crc.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_crc.h rename to include/reactos/libs/fullfat/ff_crc.h diff --git a/reactos/include/reactos/libs/fullfat/ff_dir.h b/include/reactos/libs/fullfat/ff_dir.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_dir.h rename to include/reactos/libs/fullfat/ff_dir.h diff --git a/reactos/include/reactos/libs/fullfat/ff_error.h b/include/reactos/libs/fullfat/ff_error.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_error.h rename to include/reactos/libs/fullfat/ff_error.h diff --git a/reactos/include/reactos/libs/fullfat/ff_fat.h b/include/reactos/libs/fullfat/ff_fat.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_fat.h rename to include/reactos/libs/fullfat/ff_fat.h diff --git a/reactos/include/reactos/libs/fullfat/ff_fatdef.h b/include/reactos/libs/fullfat/ff_fatdef.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_fatdef.h rename to include/reactos/libs/fullfat/ff_fatdef.h diff --git a/reactos/include/reactos/libs/fullfat/ff_file.h b/include/reactos/libs/fullfat/ff_file.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_file.h rename to include/reactos/libs/fullfat/ff_file.h diff --git a/reactos/include/reactos/libs/fullfat/ff_format.h b/include/reactos/libs/fullfat/ff_format.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_format.h rename to include/reactos/libs/fullfat/ff_format.h diff --git a/reactos/include/reactos/libs/fullfat/ff_hash.h b/include/reactos/libs/fullfat/ff_hash.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_hash.h rename to include/reactos/libs/fullfat/ff_hash.h diff --git a/reactos/include/reactos/libs/fullfat/ff_ioman.h b/include/reactos/libs/fullfat/ff_ioman.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_ioman.h rename to include/reactos/libs/fullfat/ff_ioman.h diff --git a/reactos/include/reactos/libs/fullfat/ff_memory.h b/include/reactos/libs/fullfat/ff_memory.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_memory.h rename to include/reactos/libs/fullfat/ff_memory.h diff --git a/reactos/include/reactos/libs/fullfat/ff_safety.h b/include/reactos/libs/fullfat/ff_safety.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_safety.h rename to include/reactos/libs/fullfat/ff_safety.h diff --git a/reactos/include/reactos/libs/fullfat/ff_string.h b/include/reactos/libs/fullfat/ff_string.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_string.h rename to include/reactos/libs/fullfat/ff_string.h diff --git a/reactos/include/reactos/libs/fullfat/ff_time.h b/include/reactos/libs/fullfat/ff_time.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_time.h rename to include/reactos/libs/fullfat/ff_time.h diff --git a/reactos/include/reactos/libs/fullfat/ff_types.h b/include/reactos/libs/fullfat/ff_types.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_types.h rename to include/reactos/libs/fullfat/ff_types.h diff --git a/reactos/include/reactos/libs/fullfat/ff_unicode.h b/include/reactos/libs/fullfat/ff_unicode.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/ff_unicode.h rename to include/reactos/libs/fullfat/ff_unicode.h diff --git a/reactos/include/reactos/libs/fullfat/fullfat.h b/include/reactos/libs/fullfat/fullfat.h similarity index 100% rename from reactos/include/reactos/libs/fullfat/fullfat.h rename to include/reactos/libs/fullfat/fullfat.h diff --git a/reactos/include/reactos/libs/libjpeg/cderror.h b/include/reactos/libs/libjpeg/cderror.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/cderror.h rename to include/reactos/libs/libjpeg/cderror.h diff --git a/reactos/include/reactos/libs/libjpeg/cdjpeg.h b/include/reactos/libs/libjpeg/cdjpeg.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/cdjpeg.h rename to include/reactos/libs/libjpeg/cdjpeg.h diff --git a/reactos/include/reactos/libs/libjpeg/jconfig.h b/include/reactos/libs/libjpeg/jconfig.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/jconfig.h rename to include/reactos/libs/libjpeg/jconfig.h diff --git a/reactos/include/reactos/libs/libjpeg/jdct.h b/include/reactos/libs/libjpeg/jdct.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/jdct.h rename to include/reactos/libs/libjpeg/jdct.h diff --git a/reactos/include/reactos/libs/libjpeg/jerror.h b/include/reactos/libs/libjpeg/jerror.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/jerror.h rename to include/reactos/libs/libjpeg/jerror.h diff --git a/reactos/include/reactos/libs/libjpeg/jinclude.h b/include/reactos/libs/libjpeg/jinclude.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/jinclude.h rename to include/reactos/libs/libjpeg/jinclude.h diff --git a/reactos/include/reactos/libs/libjpeg/jmemsys.h b/include/reactos/libs/libjpeg/jmemsys.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/jmemsys.h rename to include/reactos/libs/libjpeg/jmemsys.h diff --git a/reactos/include/reactos/libs/libjpeg/jmorecfg.h b/include/reactos/libs/libjpeg/jmorecfg.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/jmorecfg.h rename to include/reactos/libs/libjpeg/jmorecfg.h diff --git a/reactos/include/reactos/libs/libjpeg/jpegint.h b/include/reactos/libs/libjpeg/jpegint.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/jpegint.h rename to include/reactos/libs/libjpeg/jpegint.h diff --git a/reactos/include/reactos/libs/libjpeg/jpeglib.h b/include/reactos/libs/libjpeg/jpeglib.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/jpeglib.h rename to include/reactos/libs/libjpeg/jpeglib.h diff --git a/reactos/include/reactos/libs/libjpeg/jversion.h b/include/reactos/libs/libjpeg/jversion.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/jversion.h rename to include/reactos/libs/libjpeg/jversion.h diff --git a/reactos/include/reactos/libs/libjpeg/rosdiff.patch b/include/reactos/libs/libjpeg/rosdiff.patch similarity index 100% rename from reactos/include/reactos/libs/libjpeg/rosdiff.patch rename to include/reactos/libs/libjpeg/rosdiff.patch diff --git a/reactos/include/reactos/libs/libjpeg/transupp.h b/include/reactos/libs/libjpeg/transupp.h similarity index 100% rename from reactos/include/reactos/libs/libjpeg/transupp.h rename to include/reactos/libs/libjpeg/transupp.h diff --git a/reactos/include/reactos/libs/libmpg123/aligncheck.h b/include/reactos/libs/libmpg123/aligncheck.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/aligncheck.h rename to include/reactos/libs/libmpg123/aligncheck.h diff --git a/reactos/include/reactos/libs/libmpg123/compat.h b/include/reactos/libs/libmpg123/compat.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/compat.h rename to include/reactos/libs/libmpg123/compat.h diff --git a/reactos/include/reactos/libs/libmpg123/config.h b/include/reactos/libs/libmpg123/config.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/config.h rename to include/reactos/libs/libmpg123/config.h diff --git a/reactos/include/reactos/libs/libmpg123/debug.h b/include/reactos/libs/libmpg123/debug.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/debug.h rename to include/reactos/libs/libmpg123/debug.h diff --git a/reactos/include/reactos/libs/libmpg123/decode.h b/include/reactos/libs/libmpg123/decode.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/decode.h rename to include/reactos/libs/libmpg123/decode.h diff --git a/reactos/include/reactos/libs/libmpg123/dither.h b/include/reactos/libs/libmpg123/dither.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/dither.h rename to include/reactos/libs/libmpg123/dither.h diff --git a/reactos/include/reactos/libs/libmpg123/frame.h b/include/reactos/libs/libmpg123/frame.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/frame.h rename to include/reactos/libs/libmpg123/frame.h diff --git a/reactos/include/reactos/libs/libmpg123/getbits.h b/include/reactos/libs/libmpg123/getbits.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/getbits.h rename to include/reactos/libs/libmpg123/getbits.h diff --git a/reactos/include/reactos/libs/libmpg123/getcpuflags.h b/include/reactos/libs/libmpg123/getcpuflags.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/getcpuflags.h rename to include/reactos/libs/libmpg123/getcpuflags.h diff --git a/reactos/include/reactos/libs/libmpg123/huffman.h b/include/reactos/libs/libmpg123/huffman.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/huffman.h rename to include/reactos/libs/libmpg123/huffman.h diff --git a/reactos/include/reactos/libs/libmpg123/icy.h b/include/reactos/libs/libmpg123/icy.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/icy.h rename to include/reactos/libs/libmpg123/icy.h diff --git a/reactos/include/reactos/libs/libmpg123/icy2utf8.h b/include/reactos/libs/libmpg123/icy2utf8.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/icy2utf8.h rename to include/reactos/libs/libmpg123/icy2utf8.h diff --git a/reactos/include/reactos/libs/libmpg123/id3.h b/include/reactos/libs/libmpg123/id3.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/id3.h rename to include/reactos/libs/libmpg123/id3.h diff --git a/reactos/include/reactos/libs/libmpg123/index.h b/include/reactos/libs/libmpg123/index.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/index.h rename to include/reactos/libs/libmpg123/index.h diff --git a/reactos/include/reactos/libs/libmpg123/l12_integer_tables.h b/include/reactos/libs/libmpg123/l12_integer_tables.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/l12_integer_tables.h rename to include/reactos/libs/libmpg123/l12_integer_tables.h diff --git a/reactos/include/reactos/libs/libmpg123/l2tables.h b/include/reactos/libs/libmpg123/l2tables.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/l2tables.h rename to include/reactos/libs/libmpg123/l2tables.h diff --git a/reactos/include/reactos/libs/libmpg123/l3_integer_tables.h b/include/reactos/libs/libmpg123/l3_integer_tables.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/l3_integer_tables.h rename to include/reactos/libs/libmpg123/l3_integer_tables.h diff --git a/reactos/include/reactos/libs/libmpg123/mangle.h b/include/reactos/libs/libmpg123/mangle.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/mangle.h rename to include/reactos/libs/libmpg123/mangle.h diff --git a/reactos/include/reactos/libs/libmpg123/mpg123.h b/include/reactos/libs/libmpg123/mpg123.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/mpg123.h rename to include/reactos/libs/libmpg123/mpg123.h diff --git a/reactos/include/reactos/libs/libmpg123/mpg123lib_intern.h b/include/reactos/libs/libmpg123/mpg123lib_intern.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/mpg123lib_intern.h rename to include/reactos/libs/libmpg123/mpg123lib_intern.h diff --git a/reactos/include/reactos/libs/libmpg123/optimize.h b/include/reactos/libs/libmpg123/optimize.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/optimize.h rename to include/reactos/libs/libmpg123/optimize.h diff --git a/reactos/include/reactos/libs/libmpg123/parse.h b/include/reactos/libs/libmpg123/parse.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/parse.h rename to include/reactos/libs/libmpg123/parse.h diff --git a/reactos/include/reactos/libs/libmpg123/reader.h b/include/reactos/libs/libmpg123/reader.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/reader.h rename to include/reactos/libs/libmpg123/reader.h diff --git a/reactos/include/reactos/libs/libmpg123/sample.h b/include/reactos/libs/libmpg123/sample.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/sample.h rename to include/reactos/libs/libmpg123/sample.h diff --git a/reactos/include/reactos/libs/libmpg123/synth.h b/include/reactos/libs/libmpg123/synth.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/synth.h rename to include/reactos/libs/libmpg123/synth.h diff --git a/reactos/include/reactos/libs/libmpg123/synth_8bit.h b/include/reactos/libs/libmpg123/synth_8bit.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/synth_8bit.h rename to include/reactos/libs/libmpg123/synth_8bit.h diff --git a/reactos/include/reactos/libs/libmpg123/synth_mono.h b/include/reactos/libs/libmpg123/synth_mono.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/synth_mono.h rename to include/reactos/libs/libmpg123/synth_mono.h diff --git a/reactos/include/reactos/libs/libmpg123/synth_ntom.h b/include/reactos/libs/libmpg123/synth_ntom.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/synth_ntom.h rename to include/reactos/libs/libmpg123/synth_ntom.h diff --git a/reactos/include/reactos/libs/libmpg123/synth_sse3d.h b/include/reactos/libs/libmpg123/synth_sse3d.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/synth_sse3d.h rename to include/reactos/libs/libmpg123/synth_sse3d.h diff --git a/reactos/include/reactos/libs/libmpg123/synths.h b/include/reactos/libs/libmpg123/synths.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/synths.h rename to include/reactos/libs/libmpg123/synths.h diff --git a/reactos/include/reactos/libs/libmpg123/true.h b/include/reactos/libs/libmpg123/true.h similarity index 100% rename from reactos/include/reactos/libs/libmpg123/true.h rename to include/reactos/libs/libmpg123/true.h diff --git a/reactos/include/reactos/libs/libpng/png.h b/include/reactos/libs/libpng/png.h similarity index 100% rename from reactos/include/reactos/libs/libpng/png.h rename to include/reactos/libs/libpng/png.h diff --git a/reactos/include/reactos/libs/libpng/pngconf.h b/include/reactos/libs/libpng/pngconf.h similarity index 100% rename from reactos/include/reactos/libs/libpng/pngconf.h rename to include/reactos/libs/libpng/pngconf.h diff --git a/reactos/include/reactos/libs/libpng/pnglibconf.h b/include/reactos/libs/libpng/pnglibconf.h similarity index 100% rename from reactos/include/reactos/libs/libpng/pnglibconf.h rename to include/reactos/libs/libpng/pnglibconf.h diff --git a/reactos/include/reactos/libs/libtiff/rosdiff.patch b/include/reactos/libs/libtiff/rosdiff.patch similarity index 100% rename from reactos/include/reactos/libs/libtiff/rosdiff.patch rename to include/reactos/libs/libtiff/rosdiff.patch diff --git a/reactos/include/reactos/libs/libtiff/t4.h b/include/reactos/libs/libtiff/t4.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/t4.h rename to include/reactos/libs/libtiff/t4.h diff --git a/reactos/include/reactos/libs/libtiff/tif_config.h b/include/reactos/libs/libtiff/tif_config.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/tif_config.h rename to include/reactos/libs/libtiff/tif_config.h diff --git a/reactos/include/reactos/libs/libtiff/tif_config.vc.h b/include/reactos/libs/libtiff/tif_config.vc.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/tif_config.vc.h rename to include/reactos/libs/libtiff/tif_config.vc.h diff --git a/reactos/include/reactos/libs/libtiff/tif_dir.h b/include/reactos/libs/libtiff/tif_dir.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/tif_dir.h rename to include/reactos/libs/libtiff/tif_dir.h diff --git a/reactos/include/reactos/libs/libtiff/tif_fax3.h b/include/reactos/libs/libtiff/tif_fax3.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/tif_fax3.h rename to include/reactos/libs/libtiff/tif_fax3.h diff --git a/reactos/include/reactos/libs/libtiff/tif_predict.h b/include/reactos/libs/libtiff/tif_predict.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/tif_predict.h rename to include/reactos/libs/libtiff/tif_predict.h diff --git a/reactos/include/reactos/libs/libtiff/tiff.h b/include/reactos/libs/libtiff/tiff.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/tiff.h rename to include/reactos/libs/libtiff/tiff.h diff --git a/reactos/include/reactos/libs/libtiff/tiffconf.h b/include/reactos/libs/libtiff/tiffconf.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/tiffconf.h rename to include/reactos/libs/libtiff/tiffconf.h diff --git a/reactos/include/reactos/libs/libtiff/tiffconf.vc.h b/include/reactos/libs/libtiff/tiffconf.vc.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/tiffconf.vc.h rename to include/reactos/libs/libtiff/tiffconf.vc.h diff --git a/reactos/include/reactos/libs/libtiff/tiffio.h b/include/reactos/libs/libtiff/tiffio.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/tiffio.h rename to include/reactos/libs/libtiff/tiffio.h diff --git a/reactos/include/reactos/libs/libtiff/tiffio.hxx b/include/reactos/libs/libtiff/tiffio.hxx similarity index 100% rename from reactos/include/reactos/libs/libtiff/tiffio.hxx rename to include/reactos/libs/libtiff/tiffio.hxx diff --git a/reactos/include/reactos/libs/libtiff/tiffiop.h b/include/reactos/libs/libtiff/tiffiop.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/tiffiop.h rename to include/reactos/libs/libtiff/tiffiop.h diff --git a/reactos/include/reactos/libs/libtiff/tiffvers.h b/include/reactos/libs/libtiff/tiffvers.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/tiffvers.h rename to include/reactos/libs/libtiff/tiffvers.h diff --git a/reactos/include/reactos/libs/libtiff/uvcode.h b/include/reactos/libs/libtiff/uvcode.h similarity index 100% rename from reactos/include/reactos/libs/libtiff/uvcode.h rename to include/reactos/libs/libtiff/uvcode.h diff --git a/reactos/include/reactos/libs/libxml/DOCBparser.h b/include/reactos/libs/libxml/DOCBparser.h similarity index 100% rename from reactos/include/reactos/libs/libxml/DOCBparser.h rename to include/reactos/libs/libxml/DOCBparser.h diff --git a/reactos/include/reactos/libs/libxml/HTMLparser.h b/include/reactos/libs/libxml/HTMLparser.h similarity index 100% rename from reactos/include/reactos/libs/libxml/HTMLparser.h rename to include/reactos/libs/libxml/HTMLparser.h diff --git a/reactos/include/reactos/libs/libxml/HTMLtree.h b/include/reactos/libs/libxml/HTMLtree.h similarity index 100% rename from reactos/include/reactos/libs/libxml/HTMLtree.h rename to include/reactos/libs/libxml/HTMLtree.h diff --git a/reactos/include/reactos/libs/libxml/Makefile.am b/include/reactos/libs/libxml/Makefile.am similarity index 100% rename from reactos/include/reactos/libs/libxml/Makefile.am rename to include/reactos/libs/libxml/Makefile.am diff --git a/reactos/include/reactos/libs/libxml/Makefile.in b/include/reactos/libs/libxml/Makefile.in similarity index 100% rename from reactos/include/reactos/libs/libxml/Makefile.in rename to include/reactos/libs/libxml/Makefile.in diff --git a/reactos/include/reactos/libs/libxml/SAX.h b/include/reactos/libs/libxml/SAX.h similarity index 100% rename from reactos/include/reactos/libs/libxml/SAX.h rename to include/reactos/libs/libxml/SAX.h diff --git a/reactos/include/reactos/libs/libxml/SAX2.h b/include/reactos/libs/libxml/SAX2.h similarity index 100% rename from reactos/include/reactos/libs/libxml/SAX2.h rename to include/reactos/libs/libxml/SAX2.h diff --git a/reactos/include/reactos/libs/libxml/c14n.h b/include/reactos/libs/libxml/c14n.h similarity index 100% rename from reactos/include/reactos/libs/libxml/c14n.h rename to include/reactos/libs/libxml/c14n.h diff --git a/reactos/include/reactos/libs/libxml/catalog.h b/include/reactos/libs/libxml/catalog.h similarity index 100% rename from reactos/include/reactos/libs/libxml/catalog.h rename to include/reactos/libs/libxml/catalog.h diff --git a/reactos/include/reactos/libs/libxml/chvalid.h b/include/reactos/libs/libxml/chvalid.h similarity index 100% rename from reactos/include/reactos/libs/libxml/chvalid.h rename to include/reactos/libs/libxml/chvalid.h diff --git a/reactos/include/reactos/libs/libxml/debugXML.h b/include/reactos/libs/libxml/debugXML.h similarity index 100% rename from reactos/include/reactos/libs/libxml/debugXML.h rename to include/reactos/libs/libxml/debugXML.h diff --git a/reactos/include/reactos/libs/libxml/dict.h b/include/reactos/libs/libxml/dict.h similarity index 100% rename from reactos/include/reactos/libs/libxml/dict.h rename to include/reactos/libs/libxml/dict.h diff --git a/reactos/include/reactos/libs/libxml/encoding.h b/include/reactos/libs/libxml/encoding.h similarity index 100% rename from reactos/include/reactos/libs/libxml/encoding.h rename to include/reactos/libs/libxml/encoding.h diff --git a/reactos/include/reactos/libs/libxml/entities.h b/include/reactos/libs/libxml/entities.h similarity index 100% rename from reactos/include/reactos/libs/libxml/entities.h rename to include/reactos/libs/libxml/entities.h diff --git a/reactos/include/reactos/libs/libxml/globals.h b/include/reactos/libs/libxml/globals.h similarity index 100% rename from reactos/include/reactos/libs/libxml/globals.h rename to include/reactos/libs/libxml/globals.h diff --git a/reactos/include/reactos/libs/libxml/hash.h b/include/reactos/libs/libxml/hash.h similarity index 100% rename from reactos/include/reactos/libs/libxml/hash.h rename to include/reactos/libs/libxml/hash.h diff --git a/reactos/include/reactos/libs/libxml/list.h b/include/reactos/libs/libxml/list.h similarity index 100% rename from reactos/include/reactos/libs/libxml/list.h rename to include/reactos/libs/libxml/list.h diff --git a/reactos/include/reactos/libs/libxml/nanoftp.h b/include/reactos/libs/libxml/nanoftp.h similarity index 100% rename from reactos/include/reactos/libs/libxml/nanoftp.h rename to include/reactos/libs/libxml/nanoftp.h diff --git a/reactos/include/reactos/libs/libxml/nanohttp.h b/include/reactos/libs/libxml/nanohttp.h similarity index 100% rename from reactos/include/reactos/libs/libxml/nanohttp.h rename to include/reactos/libs/libxml/nanohttp.h diff --git a/reactos/include/reactos/libs/libxml/parser.h b/include/reactos/libs/libxml/parser.h similarity index 100% rename from reactos/include/reactos/libs/libxml/parser.h rename to include/reactos/libs/libxml/parser.h diff --git a/reactos/include/reactos/libs/libxml/parserInternals.h b/include/reactos/libs/libxml/parserInternals.h similarity index 100% rename from reactos/include/reactos/libs/libxml/parserInternals.h rename to include/reactos/libs/libxml/parserInternals.h diff --git a/reactos/include/reactos/libs/libxml/pattern.h b/include/reactos/libs/libxml/pattern.h similarity index 100% rename from reactos/include/reactos/libs/libxml/pattern.h rename to include/reactos/libs/libxml/pattern.h diff --git a/reactos/include/reactos/libs/libxml/relaxng.h b/include/reactos/libs/libxml/relaxng.h similarity index 100% rename from reactos/include/reactos/libs/libxml/relaxng.h rename to include/reactos/libs/libxml/relaxng.h diff --git a/reactos/include/reactos/libs/libxml/schemasInternals.h b/include/reactos/libs/libxml/schemasInternals.h similarity index 100% rename from reactos/include/reactos/libs/libxml/schemasInternals.h rename to include/reactos/libs/libxml/schemasInternals.h diff --git a/reactos/include/reactos/libs/libxml/schematron.h b/include/reactos/libs/libxml/schematron.h similarity index 100% rename from reactos/include/reactos/libs/libxml/schematron.h rename to include/reactos/libs/libxml/schematron.h diff --git a/reactos/include/reactos/libs/libxml/threads.h b/include/reactos/libs/libxml/threads.h similarity index 100% rename from reactos/include/reactos/libs/libxml/threads.h rename to include/reactos/libs/libxml/threads.h diff --git a/reactos/include/reactos/libs/libxml/tree.h b/include/reactos/libs/libxml/tree.h similarity index 100% rename from reactos/include/reactos/libs/libxml/tree.h rename to include/reactos/libs/libxml/tree.h diff --git a/reactos/include/reactos/libs/libxml/uri.h b/include/reactos/libs/libxml/uri.h similarity index 100% rename from reactos/include/reactos/libs/libxml/uri.h rename to include/reactos/libs/libxml/uri.h diff --git a/reactos/include/reactos/libs/libxml/valid.h b/include/reactos/libs/libxml/valid.h similarity index 100% rename from reactos/include/reactos/libs/libxml/valid.h rename to include/reactos/libs/libxml/valid.h diff --git a/reactos/include/reactos/libs/libxml/xinclude.h b/include/reactos/libs/libxml/xinclude.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xinclude.h rename to include/reactos/libs/libxml/xinclude.h diff --git a/reactos/include/reactos/libs/libxml/xlink.h b/include/reactos/libs/libxml/xlink.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xlink.h rename to include/reactos/libs/libxml/xlink.h diff --git a/reactos/include/reactos/libs/libxml/xmlIO.h b/include/reactos/libs/libxml/xmlIO.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlIO.h rename to include/reactos/libs/libxml/xmlIO.h diff --git a/reactos/include/reactos/libs/libxml/xmlautomata.h b/include/reactos/libs/libxml/xmlautomata.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlautomata.h rename to include/reactos/libs/libxml/xmlautomata.h diff --git a/reactos/include/reactos/libs/libxml/xmlerror.h b/include/reactos/libs/libxml/xmlerror.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlerror.h rename to include/reactos/libs/libxml/xmlerror.h diff --git a/reactos/include/reactos/libs/libxml/xmlexports.h b/include/reactos/libs/libxml/xmlexports.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlexports.h rename to include/reactos/libs/libxml/xmlexports.h diff --git a/reactos/include/reactos/libs/libxml/xmlmemory.h b/include/reactos/libs/libxml/xmlmemory.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlmemory.h rename to include/reactos/libs/libxml/xmlmemory.h diff --git a/reactos/include/reactos/libs/libxml/xmlmodule.h b/include/reactos/libs/libxml/xmlmodule.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlmodule.h rename to include/reactos/libs/libxml/xmlmodule.h diff --git a/reactos/include/reactos/libs/libxml/xmlreader.h b/include/reactos/libs/libxml/xmlreader.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlreader.h rename to include/reactos/libs/libxml/xmlreader.h diff --git a/reactos/include/reactos/libs/libxml/xmlregexp.h b/include/reactos/libs/libxml/xmlregexp.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlregexp.h rename to include/reactos/libs/libxml/xmlregexp.h diff --git a/reactos/include/reactos/libs/libxml/xmlsave.h b/include/reactos/libs/libxml/xmlsave.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlsave.h rename to include/reactos/libs/libxml/xmlsave.h diff --git a/reactos/include/reactos/libs/libxml/xmlschemas.h b/include/reactos/libs/libxml/xmlschemas.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlschemas.h rename to include/reactos/libs/libxml/xmlschemas.h diff --git a/reactos/include/reactos/libs/libxml/xmlschemastypes.h b/include/reactos/libs/libxml/xmlschemastypes.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlschemastypes.h rename to include/reactos/libs/libxml/xmlschemastypes.h diff --git a/reactos/include/reactos/libs/libxml/xmlstring.h b/include/reactos/libs/libxml/xmlstring.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlstring.h rename to include/reactos/libs/libxml/xmlstring.h diff --git a/reactos/include/reactos/libs/libxml/xmlunicode.h b/include/reactos/libs/libxml/xmlunicode.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlunicode.h rename to include/reactos/libs/libxml/xmlunicode.h diff --git a/reactos/include/reactos/libs/libxml/xmlversion.h b/include/reactos/libs/libxml/xmlversion.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlversion.h rename to include/reactos/libs/libxml/xmlversion.h diff --git a/reactos/include/reactos/libs/libxml/xmlversion.h.in b/include/reactos/libs/libxml/xmlversion.h.in similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlversion.h.in rename to include/reactos/libs/libxml/xmlversion.h.in diff --git a/reactos/include/reactos/libs/libxml/xmlwriter.h b/include/reactos/libs/libxml/xmlwriter.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xmlwriter.h rename to include/reactos/libs/libxml/xmlwriter.h diff --git a/reactos/include/reactos/libs/libxml/xpath.h b/include/reactos/libs/libxml/xpath.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xpath.h rename to include/reactos/libs/libxml/xpath.h diff --git a/reactos/include/reactos/libs/libxml/xpathInternals.h b/include/reactos/libs/libxml/xpathInternals.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xpathInternals.h rename to include/reactos/libs/libxml/xpathInternals.h diff --git a/reactos/include/reactos/libs/libxml/xpointer.h b/include/reactos/libs/libxml/xpointer.h similarity index 100% rename from reactos/include/reactos/libs/libxml/xpointer.h rename to include/reactos/libs/libxml/xpointer.h diff --git a/reactos/include/reactos/libs/libxslt/extensions.h b/include/reactos/libs/libxslt/extensions.h similarity index 100% rename from reactos/include/reactos/libs/libxslt/extensions.h rename to include/reactos/libs/libxslt/extensions.h diff --git a/reactos/include/reactos/libs/libxslt/libxslt.h b/include/reactos/libs/libxslt/libxslt.h similarity index 100% rename from reactos/include/reactos/libs/libxslt/libxslt.h rename to include/reactos/libs/libxslt/libxslt.h diff --git a/reactos/include/reactos/libs/libxslt/numbersInternals.h b/include/reactos/libs/libxslt/numbersInternals.h similarity index 100% rename from reactos/include/reactos/libs/libxslt/numbersInternals.h rename to include/reactos/libs/libxslt/numbersInternals.h diff --git a/reactos/include/reactos/libs/libxslt/pattern.h b/include/reactos/libs/libxslt/pattern.h similarity index 100% rename from reactos/include/reactos/libs/libxslt/pattern.h rename to include/reactos/libs/libxslt/pattern.h diff --git a/reactos/include/reactos/libs/libxslt/transform.h b/include/reactos/libs/libxslt/transform.h similarity index 100% rename from reactos/include/reactos/libs/libxslt/transform.h rename to include/reactos/libs/libxslt/transform.h diff --git a/reactos/include/reactos/libs/libxslt/xslt.h b/include/reactos/libs/libxslt/xslt.h similarity index 100% rename from reactos/include/reactos/libs/libxslt/xslt.h rename to include/reactos/libs/libxslt/xslt.h diff --git a/reactos/include/reactos/libs/libxslt/xsltInternals.h b/include/reactos/libs/libxslt/xsltInternals.h similarity index 100% rename from reactos/include/reactos/libs/libxslt/xsltInternals.h rename to include/reactos/libs/libxslt/xsltInternals.h diff --git a/reactos/include/reactos/libs/libxslt/xsltconfig.h b/include/reactos/libs/libxslt/xsltconfig.h similarity index 100% rename from reactos/include/reactos/libs/libxslt/xsltconfig.h rename to include/reactos/libs/libxslt/xsltconfig.h diff --git a/reactos/include/reactos/libs/libxslt/xsltexports.h b/include/reactos/libs/libxslt/xsltexports.h similarity index 100% rename from reactos/include/reactos/libs/libxslt/xsltexports.h rename to include/reactos/libs/libxslt/xsltexports.h diff --git a/reactos/include/reactos/libs/libxslt/xsltlocale.h b/include/reactos/libs/libxslt/xsltlocale.h similarity index 100% rename from reactos/include/reactos/libs/libxslt/xsltlocale.h rename to include/reactos/libs/libxslt/xsltlocale.h diff --git a/reactos/include/reactos/libs/libxslt/xsltutils.h b/include/reactos/libs/libxslt/xsltutils.h similarity index 100% rename from reactos/include/reactos/libs/libxslt/xsltutils.h rename to include/reactos/libs/libxslt/xsltutils.h diff --git a/reactos/include/reactos/libs/ppcmmu/mmu.h b/include/reactos/libs/ppcmmu/mmu.h similarity index 100% rename from reactos/include/reactos/libs/ppcmmu/mmu.h rename to include/reactos/libs/ppcmmu/mmu.h diff --git a/reactos/include/reactos/libs/ppcmmu/mmuutil.h b/include/reactos/libs/ppcmmu/mmuutil.h similarity index 100% rename from reactos/include/reactos/libs/ppcmmu/mmuutil.h rename to include/reactos/libs/ppcmmu/mmuutil.h diff --git a/reactos/include/reactos/libs/pseh/excpt.h b/include/reactos/libs/pseh/excpt.h similarity index 100% rename from reactos/include/reactos/libs/pseh/excpt.h rename to include/reactos/libs/pseh/excpt.h diff --git a/reactos/include/reactos/libs/pseh/framebased.h b/include/reactos/libs/pseh/framebased.h similarity index 100% rename from reactos/include/reactos/libs/pseh/framebased.h rename to include/reactos/libs/pseh/framebased.h diff --git a/reactos/include/reactos/libs/pseh/framebased/internal.h b/include/reactos/libs/pseh/framebased/internal.h similarity index 100% rename from reactos/include/reactos/libs/pseh/framebased/internal.h rename to include/reactos/libs/pseh/framebased/internal.h diff --git a/reactos/include/reactos/libs/pseh/pseh.h b/include/reactos/libs/pseh/pseh.h similarity index 100% rename from reactos/include/reactos/libs/pseh/pseh.h rename to include/reactos/libs/pseh/pseh.h diff --git a/reactos/include/reactos/libs/pseh/pseh2.h b/include/reactos/libs/pseh/pseh2.h similarity index 100% rename from reactos/include/reactos/libs/pseh/pseh2.h rename to include/reactos/libs/pseh/pseh2.h diff --git a/reactos/include/reactos/libs/pseh/pseh2_64.h b/include/reactos/libs/pseh/pseh2_64.h similarity index 100% rename from reactos/include/reactos/libs/pseh/pseh2_64.h rename to include/reactos/libs/pseh/pseh2_64.h diff --git a/reactos/include/reactos/libs/pseh/pseh3.h b/include/reactos/libs/pseh/pseh3.h similarity index 100% rename from reactos/include/reactos/libs/pseh/pseh3.h rename to include/reactos/libs/pseh/pseh3.h diff --git a/reactos/include/reactos/libs/samsrv/samsrv.h b/include/reactos/libs/samsrv/samsrv.h similarity index 100% rename from reactos/include/reactos/libs/samsrv/samsrv.h rename to include/reactos/libs/samsrv/samsrv.h diff --git a/reactos/include/reactos/libs/sound/devname.h b/include/reactos/libs/sound/devname.h similarity index 100% rename from reactos/include/reactos/libs/sound/devname.h rename to include/reactos/libs/sound/devname.h diff --git a/reactos/include/reactos/libs/sound/hardware.h b/include/reactos/libs/sound/hardware.h similarity index 100% rename from reactos/include/reactos/libs/sound/hardware.h rename to include/reactos/libs/sound/hardware.h diff --git a/reactos/include/reactos/libs/sound/midi.h b/include/reactos/libs/sound/midi.h similarity index 100% rename from reactos/include/reactos/libs/sound/midi.h rename to include/reactos/libs/sound/midi.h diff --git a/reactos/include/reactos/libs/sound/midiuart.h b/include/reactos/libs/sound/midiuart.h similarity index 100% rename from reactos/include/reactos/libs/sound/midiuart.h rename to include/reactos/libs/sound/midiuart.h diff --git a/reactos/include/reactos/libs/sound/mmebuddy.h b/include/reactos/libs/sound/mmebuddy.h similarity index 100% rename from reactos/include/reactos/libs/sound/mmebuddy.h rename to include/reactos/libs/sound/mmebuddy.h diff --git a/reactos/include/reactos/libs/sound/mment4.h b/include/reactos/libs/sound/mment4.h similarity index 100% rename from reactos/include/reactos/libs/sound/mment4.h rename to include/reactos/libs/sound/mment4.h diff --git a/reactos/include/reactos/libs/sound/sbdsp.h b/include/reactos/libs/sound/sbdsp.h similarity index 100% rename from reactos/include/reactos/libs/sound/sbdsp.h rename to include/reactos/libs/sound/sbdsp.h diff --git a/reactos/include/reactos/libs/sound/sndnames.h b/include/reactos/libs/sound/sndnames.h similarity index 100% rename from reactos/include/reactos/libs/sound/sndnames.h rename to include/reactos/libs/sound/sndnames.h diff --git a/reactos/include/reactos/libs/sound/sndtypes.h b/include/reactos/libs/sound/sndtypes.h similarity index 100% rename from reactos/include/reactos/libs/sound/sndtypes.h rename to include/reactos/libs/sound/sndtypes.h diff --git a/reactos/include/reactos/libs/sound/time.h b/include/reactos/libs/sound/time.h similarity index 100% rename from reactos/include/reactos/libs/sound/time.h rename to include/reactos/libs/sound/time.h diff --git a/reactos/include/reactos/libs/syssetup/syssetup.h b/include/reactos/libs/syssetup/syssetup.h similarity index 100% rename from reactos/include/reactos/libs/syssetup/syssetup.h rename to include/reactos/libs/syssetup/syssetup.h diff --git a/reactos/include/reactos/libs/umpnpmgr/sysguid.h b/include/reactos/libs/umpnpmgr/sysguid.h similarity index 100% rename from reactos/include/reactos/libs/umpnpmgr/sysguid.h rename to include/reactos/libs/umpnpmgr/sysguid.h diff --git a/reactos/include/reactos/libs/zlib/zconf.h b/include/reactos/libs/zlib/zconf.h similarity index 100% rename from reactos/include/reactos/libs/zlib/zconf.h rename to include/reactos/libs/zlib/zconf.h diff --git a/reactos/include/reactos/libs/zlib/zlib.h b/include/reactos/libs/zlib/zlib.h similarity index 100% rename from reactos/include/reactos/libs/zlib/zlib.h rename to include/reactos/libs/zlib/zlib.h diff --git a/reactos/include/reactos/mc/CMakeLists.txt b/include/reactos/mc/CMakeLists.txt similarity index 100% rename from reactos/include/reactos/mc/CMakeLists.txt rename to include/reactos/mc/CMakeLists.txt diff --git a/reactos/include/reactos/mc/bugcodes.mc b/include/reactos/mc/bugcodes.mc similarity index 100% rename from reactos/include/reactos/mc/bugcodes.mc rename to include/reactos/mc/bugcodes.mc diff --git a/reactos/include/reactos/mc/errcodes.mc b/include/reactos/mc/errcodes.mc similarity index 100% rename from reactos/include/reactos/mc/errcodes.mc rename to include/reactos/mc/errcodes.mc diff --git a/reactos/include/reactos/mc/neteventmsg.mc b/include/reactos/mc/neteventmsg.mc similarity index 100% rename from reactos/include/reactos/mc/neteventmsg.mc rename to include/reactos/mc/neteventmsg.mc diff --git a/reactos/include/reactos/mc/ntiologc.mc b/include/reactos/mc/ntiologc.mc similarity index 100% rename from reactos/include/reactos/mc/ntiologc.mc rename to include/reactos/mc/ntiologc.mc diff --git a/reactos/include/reactos/mc/ntstatus.mc b/include/reactos/mc/ntstatus.mc similarity index 100% rename from reactos/include/reactos/mc/ntstatus.mc rename to include/reactos/mc/ntstatus.mc diff --git a/reactos/include/reactos/mc/pciclass.mc b/include/reactos/mc/pciclass.mc similarity index 100% rename from reactos/include/reactos/mc/pciclass.mc rename to include/reactos/mc/pciclass.mc diff --git a/reactos/include/reactos/mc/sacmsg.mc b/include/reactos/mc/sacmsg.mc similarity index 100% rename from reactos/include/reactos/mc/sacmsg.mc rename to include/reactos/mc/sacmsg.mc diff --git a/reactos/include/reactos/msvctarget.h b/include/reactos/msvctarget.h similarity index 100% rename from reactos/include/reactos/msvctarget.h rename to include/reactos/msvctarget.h diff --git a/reactos/include/reactos/probe.h b/include/reactos/probe.h similarity index 100% rename from reactos/include/reactos/probe.h rename to include/reactos/probe.h diff --git a/reactos/include/reactos/reactx.h b/include/reactos/reactx.h similarity index 100% rename from reactos/include/reactos/reactx.h rename to include/reactos/reactx.h diff --git a/reactos/include/reactos/rosioctl.h b/include/reactos/rosioctl.h similarity index 100% rename from reactos/include/reactos/rosioctl.h rename to include/reactos/rosioctl.h diff --git a/reactos/include/reactos/rossym.h b/include/reactos/rossym.h similarity index 100% rename from reactos/include/reactos/rossym.h rename to include/reactos/rossym.h diff --git a/reactos/include/reactos/services/services.h b/include/reactos/services/services.h similarity index 100% rename from reactos/include/reactos/services/services.h rename to include/reactos/services/services.h diff --git a/reactos/include/reactos/stubs.h b/include/reactos/stubs.h similarity index 100% rename from reactos/include/reactos/stubs.h rename to include/reactos/stubs.h diff --git a/reactos/include/reactos/subsys/csr/server.h b/include/reactos/subsys/csr/server.h similarity index 100% rename from reactos/include/reactos/subsys/csr/server.h rename to include/reactos/subsys/csr/server.h diff --git a/reactos/include/reactos/subsys/csrss/csrss.h b/include/reactos/subsys/csrss/csrss.h similarity index 100% rename from reactos/include/reactos/subsys/csrss/csrss.h rename to include/reactos/subsys/csrss/csrss.h diff --git a/reactos/include/reactos/subsys/lsass/lsasrv.h b/include/reactos/subsys/lsass/lsasrv.h similarity index 100% rename from reactos/include/reactos/subsys/lsass/lsasrv.h rename to include/reactos/subsys/lsass/lsasrv.h diff --git a/reactos/include/reactos/subsys/lsass/lsass.h b/include/reactos/subsys/lsass/lsass.h similarity index 100% rename from reactos/include/reactos/subsys/lsass/lsass.h rename to include/reactos/subsys/lsass/lsass.h diff --git a/reactos/include/reactos/subsys/sm/api.h b/include/reactos/subsys/sm/api.h similarity index 100% rename from reactos/include/reactos/subsys/sm/api.h rename to include/reactos/subsys/sm/api.h diff --git a/reactos/include/reactos/subsys/sm/helper.h b/include/reactos/subsys/sm/helper.h similarity index 100% rename from reactos/include/reactos/subsys/sm/helper.h rename to include/reactos/subsys/sm/helper.h diff --git a/reactos/include/reactos/subsys/sm/ns.h b/include/reactos/subsys/sm/ns.h similarity index 100% rename from reactos/include/reactos/subsys/sm/ns.h rename to include/reactos/subsys/sm/ns.h diff --git a/reactos/include/reactos/subsys/sm/smmsg.h b/include/reactos/subsys/sm/smmsg.h similarity index 100% rename from reactos/include/reactos/subsys/sm/smmsg.h rename to include/reactos/subsys/sm/smmsg.h diff --git a/reactos/include/reactos/subsys/win/base.h b/include/reactos/subsys/win/base.h similarity index 100% rename from reactos/include/reactos/subsys/win/base.h rename to include/reactos/subsys/win/base.h diff --git a/reactos/include/reactos/subsys/win/windows.h b/include/reactos/subsys/win/windows.h similarity index 100% rename from reactos/include/reactos/subsys/win/windows.h rename to include/reactos/subsys/win/windows.h diff --git a/reactos/include/reactos/undocuser.h b/include/reactos/undocuser.h similarity index 100% rename from reactos/include/reactos/undocuser.h rename to include/reactos/undocuser.h diff --git a/reactos/include/reactos/uxundoc.h b/include/reactos/uxundoc.h similarity index 100% rename from reactos/include/reactos/uxundoc.h rename to include/reactos/uxundoc.h diff --git a/reactos/include/reactos/version.cmake b/include/reactos/version.cmake similarity index 100% rename from reactos/include/reactos/version.cmake rename to include/reactos/version.cmake diff --git a/reactos/include/reactos/version.h.cmake b/include/reactos/version.h.cmake similarity index 100% rename from reactos/include/reactos/version.h.cmake rename to include/reactos/version.h.cmake diff --git a/reactos/include/reactos/version.rc b/include/reactos/version.rc similarity index 100% rename from reactos/include/reactos/version.rc rename to include/reactos/version.rc diff --git a/reactos/include/reactos/windbgkd.h b/include/reactos/windbgkd.h similarity index 100% rename from reactos/include/reactos/windbgkd.h rename to include/reactos/windbgkd.h diff --git a/reactos/include/reactos/wine/CMakeLists.txt b/include/reactos/wine/CMakeLists.txt similarity index 100% rename from reactos/include/reactos/wine/CMakeLists.txt rename to include/reactos/wine/CMakeLists.txt diff --git a/reactos/include/reactos/wine/alloca.h b/include/reactos/wine/alloca.h similarity index 100% rename from reactos/include/reactos/wine/alloca.h rename to include/reactos/wine/alloca.h diff --git a/reactos/include/reactos/wine/commctrl.h b/include/reactos/wine/commctrl.h similarity index 100% rename from reactos/include/reactos/wine/commctrl.h rename to include/reactos/wine/commctrl.h diff --git a/reactos/include/reactos/wine/config.h b/include/reactos/wine/config.h similarity index 100% rename from reactos/include/reactos/wine/config.h rename to include/reactos/wine/config.h diff --git a/reactos/include/reactos/wine/dcetypes.idl b/include/reactos/wine/dcetypes.idl similarity index 100% rename from reactos/include/reactos/wine/dcetypes.idl rename to include/reactos/wine/dcetypes.idl diff --git a/reactos/include/reactos/wine/ddk/compstui.h b/include/reactos/wine/ddk/compstui.h similarity index 100% rename from reactos/include/reactos/wine/ddk/compstui.h rename to include/reactos/wine/ddk/compstui.h diff --git a/reactos/include/reactos/wine/ddk/imm.h b/include/reactos/wine/ddk/imm.h similarity index 100% rename from reactos/include/reactos/wine/ddk/imm.h rename to include/reactos/wine/ddk/imm.h diff --git a/reactos/include/reactos/wine/ddk/winddiui.h b/include/reactos/wine/ddk/winddiui.h similarity index 100% rename from reactos/include/reactos/wine/ddk/winddiui.h rename to include/reactos/wine/ddk/winddiui.h diff --git a/reactos/include/reactos/wine/ddk/winsplp.h b/include/reactos/wine/ddk/winsplp.h similarity index 100% rename from reactos/include/reactos/wine/ddk/winsplp.h rename to include/reactos/wine/ddk/winsplp.h diff --git a/reactos/include/reactos/wine/debug.h b/include/reactos/wine/debug.h similarity index 100% rename from reactos/include/reactos/wine/debug.h rename to include/reactos/wine/debug.h diff --git a/reactos/include/reactos/wine/epm.idl b/include/reactos/wine/epm.idl similarity index 100% rename from reactos/include/reactos/wine/epm.idl rename to include/reactos/wine/epm.idl diff --git a/reactos/include/reactos/wine/exception.h b/include/reactos/wine/exception.h similarity index 100% rename from reactos/include/reactos/wine/exception.h rename to include/reactos/wine/exception.h diff --git a/reactos/include/reactos/wine/guiddef.h b/include/reactos/wine/guiddef.h similarity index 100% rename from reactos/include/reactos/wine/guiddef.h rename to include/reactos/wine/guiddef.h diff --git a/reactos/include/reactos/wine/imm.h b/include/reactos/wine/imm.h similarity index 100% rename from reactos/include/reactos/wine/imm.h rename to include/reactos/wine/imm.h diff --git a/reactos/include/reactos/wine/irot.idl b/include/reactos/wine/irot.idl similarity index 100% rename from reactos/include/reactos/wine/irot.idl rename to include/reactos/wine/irot.idl diff --git a/reactos/include/reactos/wine/itss.idl b/include/reactos/wine/itss.idl similarity index 100% rename from reactos/include/reactos/wine/itss.idl rename to include/reactos/wine/itss.idl diff --git a/reactos/include/reactos/wine/library.h b/include/reactos/wine/library.h similarity index 100% rename from reactos/include/reactos/wine/library.h rename to include/reactos/wine/library.h diff --git a/reactos/include/reactos/wine/list.h b/include/reactos/wine/list.h similarity index 100% rename from reactos/include/reactos/wine/list.h rename to include/reactos/wine/list.h diff --git a/reactos/include/reactos/wine/lmbrowsr.h b/include/reactos/wine/lmbrowsr.h similarity index 100% rename from reactos/include/reactos/wine/lmbrowsr.h rename to include/reactos/wine/lmbrowsr.h diff --git a/reactos/include/reactos/wine/mmreg.h b/include/reactos/wine/mmreg.h similarity index 100% rename from reactos/include/reactos/wine/mmreg.h rename to include/reactos/wine/mmreg.h diff --git a/reactos/include/reactos/wine/msacmdrv.h b/include/reactos/wine/msacmdrv.h similarity index 100% rename from reactos/include/reactos/wine/msacmdrv.h rename to include/reactos/wine/msacmdrv.h diff --git a/reactos/include/reactos/wine/mscvpdb.h b/include/reactos/wine/mscvpdb.h similarity index 100% rename from reactos/include/reactos/wine/mscvpdb.h rename to include/reactos/wine/mscvpdb.h diff --git a/reactos/include/reactos/wine/msvcrt/fcntl.h b/include/reactos/wine/msvcrt/fcntl.h similarity index 100% rename from reactos/include/reactos/wine/msvcrt/fcntl.h rename to include/reactos/wine/msvcrt/fcntl.h diff --git a/reactos/include/reactos/wine/port.h b/include/reactos/wine/port.h similarity index 100% rename from reactos/include/reactos/wine/port.h rename to include/reactos/wine/port.h diff --git a/reactos/include/reactos/wine/rbtree.h b/include/reactos/wine/rbtree.h similarity index 100% rename from reactos/include/reactos/wine/rbtree.h rename to include/reactos/wine/rbtree.h diff --git a/reactos/include/reactos/wine/regex.h b/include/reactos/wine/regex.h similarity index 100% rename from reactos/include/reactos/wine/regex.h rename to include/reactos/wine/regex.h diff --git a/reactos/include/reactos/wine/rpcfc.h b/include/reactos/wine/rpcfc.h similarity index 100% rename from reactos/include/reactos/wine/rpcfc.h rename to include/reactos/wine/rpcfc.h diff --git a/reactos/include/reactos/wine/rpcss_shared.h b/include/reactos/wine/rpcss_shared.h similarity index 100% rename from reactos/include/reactos/wine/rpcss_shared.h rename to include/reactos/wine/rpcss_shared.h diff --git a/reactos/include/reactos/wine/test.h b/include/reactos/wine/test.h similarity index 100% rename from reactos/include/reactos/wine/test.h rename to include/reactos/wine/test.h diff --git a/reactos/include/reactos/wine/typeof.h b/include/reactos/wine/typeof.h similarity index 100% rename from reactos/include/reactos/wine/typeof.h rename to include/reactos/wine/typeof.h diff --git a/reactos/include/reactos/wine/unicode.h b/include/reactos/wine/unicode.h similarity index 100% rename from reactos/include/reactos/wine/unicode.h rename to include/reactos/wine/unicode.h diff --git a/reactos/include/reactos/wine/wgl_driver.h b/include/reactos/wine/wgl_driver.h similarity index 100% rename from reactos/include/reactos/wine/wgl_driver.h rename to include/reactos/wine/wgl_driver.h diff --git a/reactos/include/reactos/wine/wglext.h b/include/reactos/wine/wglext.h similarity index 100% rename from reactos/include/reactos/wine/wglext.h rename to include/reactos/wine/wglext.h diff --git a/reactos/include/reactos/wine/winbase16.h b/include/reactos/wine/winbase16.h similarity index 100% rename from reactos/include/reactos/wine/winbase16.h rename to include/reactos/wine/winbase16.h diff --git a/reactos/include/reactos/wine/windef16.h b/include/reactos/wine/windef16.h similarity index 100% rename from reactos/include/reactos/wine/windef16.h rename to include/reactos/wine/windef16.h diff --git a/reactos/include/reactos/wine/wine_common_ver.rc b/include/reactos/wine/wine_common_ver.rc similarity index 100% rename from reactos/include/reactos/wine/wine_common_ver.rc rename to include/reactos/wine/wine_common_ver.rc diff --git a/reactos/include/reactos/wine/wined3d.h b/include/reactos/wine/wined3d.h similarity index 100% rename from reactos/include/reactos/wine/wined3d.h rename to include/reactos/wine/wined3d.h diff --git a/reactos/include/reactos/wine/wingdi16.h b/include/reactos/wine/wingdi16.h similarity index 100% rename from reactos/include/reactos/wine/wingdi16.h rename to include/reactos/wine/wingdi16.h diff --git a/reactos/include/reactos/wine/winsock16.h b/include/reactos/wine/winsock16.h similarity index 100% rename from reactos/include/reactos/wine/winsock16.h rename to include/reactos/wine/winsock16.h diff --git a/reactos/include/reactos/wine/wownt32.h b/include/reactos/wine/wownt32.h similarity index 100% rename from reactos/include/reactos/wine/wownt32.h rename to include/reactos/wine/wownt32.h diff --git a/reactos/include/reactos/wine/wpp.h b/include/reactos/wine/wpp.h similarity index 100% rename from reactos/include/reactos/wine/wpp.h rename to include/reactos/wine/wpp.h diff --git a/reactos/include/reactos/winlogon.h b/include/reactos/winlogon.h similarity index 100% rename from reactos/include/reactos/winlogon.h rename to include/reactos/winlogon.h diff --git a/reactos/include/reactos/winsock/msafd.h b/include/reactos/winsock/msafd.h similarity index 100% rename from reactos/include/reactos/winsock/msafd.h rename to include/reactos/winsock/msafd.h diff --git a/reactos/include/reactos/winsock/msafdlib.h b/include/reactos/winsock/msafdlib.h similarity index 100% rename from reactos/include/reactos/winsock/msafdlib.h rename to include/reactos/winsock/msafdlib.h diff --git a/reactos/include/reactos/winsock/mswinsock.h b/include/reactos/winsock/mswinsock.h similarity index 100% rename from reactos/include/reactos/winsock/mswinsock.h rename to include/reactos/winsock/mswinsock.h diff --git a/reactos/include/reactos/winsock/nsp_dns.h b/include/reactos/winsock/nsp_dns.h similarity index 100% rename from reactos/include/reactos/winsock/nsp_dns.h rename to include/reactos/winsock/nsp_dns.h diff --git a/reactos/include/reactos/winsock/rnr20lib.h b/include/reactos/winsock/rnr20lib.h similarity index 100% rename from reactos/include/reactos/winsock/rnr20lib.h rename to include/reactos/winsock/rnr20lib.h diff --git a/reactos/include/reactos/winsock/ws2help.h b/include/reactos/winsock/ws2help.h similarity index 100% rename from reactos/include/reactos/winsock/ws2help.h rename to include/reactos/winsock/ws2help.h diff --git a/reactos/include/reactos/winsock/wsmobile.h b/include/reactos/winsock/wsmobile.h similarity index 100% rename from reactos/include/reactos/winsock/wsmobile.h rename to include/reactos/winsock/wsmobile.h diff --git a/reactos/include/xdk/amd64/ke.h b/include/xdk/amd64/ke.h similarity index 100% rename from reactos/include/xdk/amd64/ke.h rename to include/xdk/amd64/ke.h diff --git a/reactos/include/xdk/amd64/mm.h b/include/xdk/amd64/mm.h similarity index 100% rename from reactos/include/xdk/amd64/mm.h rename to include/xdk/amd64/mm.h diff --git a/reactos/include/xdk/arm/ke.h b/include/xdk/arm/ke.h similarity index 100% rename from reactos/include/xdk/arm/ke.h rename to include/xdk/arm/ke.h diff --git a/reactos/include/xdk/ccfuncs.h b/include/xdk/ccfuncs.h similarity index 100% rename from reactos/include/xdk/ccfuncs.h rename to include/xdk/ccfuncs.h diff --git a/reactos/include/xdk/cctypes.h b/include/xdk/cctypes.h similarity index 100% rename from reactos/include/xdk/cctypes.h rename to include/xdk/cctypes.h diff --git a/reactos/include/xdk/cmfuncs.h b/include/xdk/cmfuncs.h similarity index 100% rename from reactos/include/xdk/cmfuncs.h rename to include/xdk/cmfuncs.h diff --git a/reactos/include/xdk/cmtypes.h b/include/xdk/cmtypes.h similarity index 100% rename from reactos/include/xdk/cmtypes.h rename to include/xdk/cmtypes.h diff --git a/reactos/include/xdk/devioctl.template.h b/include/xdk/devioctl.template.h similarity index 100% rename from reactos/include/xdk/devioctl.template.h rename to include/xdk/devioctl.template.h diff --git a/reactos/include/xdk/exfuncs.h b/include/xdk/exfuncs.h similarity index 100% rename from reactos/include/xdk/exfuncs.h rename to include/xdk/exfuncs.h diff --git a/reactos/include/xdk/extypes.h b/include/xdk/extypes.h similarity index 100% rename from reactos/include/xdk/extypes.h rename to include/xdk/extypes.h diff --git a/reactos/include/xdk/fsrtlfuncs.h b/include/xdk/fsrtlfuncs.h similarity index 100% rename from reactos/include/xdk/fsrtlfuncs.h rename to include/xdk/fsrtlfuncs.h diff --git a/reactos/include/xdk/fsrtltypes.h b/include/xdk/fsrtltypes.h similarity index 100% rename from reactos/include/xdk/fsrtltypes.h rename to include/xdk/fsrtltypes.h diff --git a/reactos/include/xdk/generate.bat b/include/xdk/generate.bat similarity index 100% rename from reactos/include/xdk/generate.bat rename to include/xdk/generate.bat diff --git a/reactos/include/xdk/halfuncs.h b/include/xdk/halfuncs.h similarity index 100% rename from reactos/include/xdk/halfuncs.h rename to include/xdk/halfuncs.h diff --git a/reactos/include/xdk/haltypes.h b/include/xdk/haltypes.h similarity index 100% rename from reactos/include/xdk/haltypes.h rename to include/xdk/haltypes.h diff --git a/reactos/include/xdk/ia64/ke.h b/include/xdk/ia64/ke.h similarity index 100% rename from reactos/include/xdk/ia64/ke.h rename to include/xdk/ia64/ke.h diff --git a/reactos/include/xdk/interlocked.h b/include/xdk/interlocked.h similarity index 100% rename from reactos/include/xdk/interlocked.h rename to include/xdk/interlocked.h diff --git a/reactos/include/xdk/iofuncs.h b/include/xdk/iofuncs.h similarity index 100% rename from reactos/include/xdk/iofuncs.h rename to include/xdk/iofuncs.h diff --git a/reactos/include/xdk/iotypes.h b/include/xdk/iotypes.h similarity index 100% rename from reactos/include/xdk/iotypes.h rename to include/xdk/iotypes.h diff --git a/reactos/include/xdk/kdfuncs.h b/include/xdk/kdfuncs.h similarity index 100% rename from reactos/include/xdk/kdfuncs.h rename to include/xdk/kdfuncs.h diff --git a/reactos/include/xdk/kdtypes.h b/include/xdk/kdtypes.h similarity index 100% rename from reactos/include/xdk/kdtypes.h rename to include/xdk/kdtypes.h diff --git a/reactos/include/xdk/kefuncs.h b/include/xdk/kefuncs.h similarity index 100% rename from reactos/include/xdk/kefuncs.h rename to include/xdk/kefuncs.h diff --git a/reactos/include/xdk/ketypes.h b/include/xdk/ketypes.h similarity index 100% rename from reactos/include/xdk/ketypes.h rename to include/xdk/ketypes.h diff --git a/reactos/include/xdk/mips/ke.h b/include/xdk/mips/ke.h similarity index 100% rename from reactos/include/xdk/mips/ke.h rename to include/xdk/mips/ke.h diff --git a/reactos/include/xdk/mmfuncs.h b/include/xdk/mmfuncs.h similarity index 100% rename from reactos/include/xdk/mmfuncs.h rename to include/xdk/mmfuncs.h diff --git a/reactos/include/xdk/mmtypes.h b/include/xdk/mmtypes.h similarity index 100% rename from reactos/include/xdk/mmtypes.h rename to include/xdk/mmtypes.h diff --git a/reactos/include/xdk/ntddk.template.h b/include/xdk/ntddk.template.h similarity index 100% rename from reactos/include/xdk/ntddk.template.h rename to include/xdk/ntddk.template.h diff --git a/reactos/include/xdk/ntifs.template.h b/include/xdk/ntifs.template.h similarity index 100% rename from reactos/include/xdk/ntifs.template.h rename to include/xdk/ntifs.template.h diff --git a/reactos/include/xdk/nttmapi.h b/include/xdk/nttmapi.h similarity index 100% rename from reactos/include/xdk/nttmapi.h rename to include/xdk/nttmapi.h diff --git a/reactos/include/xdk/obfuncs.h b/include/xdk/obfuncs.h similarity index 100% rename from reactos/include/xdk/obfuncs.h rename to include/xdk/obfuncs.h diff --git a/reactos/include/xdk/obtypes.h b/include/xdk/obtypes.h similarity index 100% rename from reactos/include/xdk/obtypes.h rename to include/xdk/obtypes.h diff --git a/reactos/include/xdk/pofuncs.h b/include/xdk/pofuncs.h similarity index 100% rename from reactos/include/xdk/pofuncs.h rename to include/xdk/pofuncs.h diff --git a/reactos/include/xdk/potypes.h b/include/xdk/potypes.h similarity index 100% rename from reactos/include/xdk/potypes.h rename to include/xdk/potypes.h diff --git a/reactos/include/xdk/ppc/ke.h b/include/xdk/ppc/ke.h similarity index 100% rename from reactos/include/xdk/ppc/ke.h rename to include/xdk/ppc/ke.h diff --git a/reactos/include/xdk/psfuncs.h b/include/xdk/psfuncs.h similarity index 100% rename from reactos/include/xdk/psfuncs.h rename to include/xdk/psfuncs.h diff --git a/reactos/include/xdk/pstypes.h b/include/xdk/pstypes.h similarity index 100% rename from reactos/include/xdk/pstypes.h rename to include/xdk/pstypes.h diff --git a/reactos/include/xdk/rtlfuncs.h b/include/xdk/rtlfuncs.h similarity index 100% rename from reactos/include/xdk/rtlfuncs.h rename to include/xdk/rtlfuncs.h diff --git a/reactos/include/xdk/rtltypes.h b/include/xdk/rtltypes.h similarity index 100% rename from reactos/include/xdk/rtltypes.h rename to include/xdk/rtltypes.h diff --git a/reactos/include/xdk/sefuncs.h b/include/xdk/sefuncs.h similarity index 100% rename from reactos/include/xdk/sefuncs.h rename to include/xdk/sefuncs.h diff --git a/reactos/include/xdk/setypes.h b/include/xdk/setypes.h similarity index 100% rename from reactos/include/xdk/setypes.h rename to include/xdk/setypes.h diff --git a/reactos/include/xdk/sspi.h b/include/xdk/sspi.h similarity index 100% rename from reactos/include/xdk/sspi.h rename to include/xdk/sspi.h diff --git a/reactos/include/xdk/wdm.template.h b/include/xdk/wdm.template.h similarity index 100% rename from reactos/include/xdk/wdm.template.h rename to include/xdk/wdm.template.h diff --git a/reactos/include/xdk/wmifuncs.h b/include/xdk/wmifuncs.h similarity index 100% rename from reactos/include/xdk/wmifuncs.h rename to include/xdk/wmifuncs.h diff --git a/reactos/include/xdk/wmitypes.h b/include/xdk/wmitypes.h similarity index 100% rename from reactos/include/xdk/wmitypes.h rename to include/xdk/wmitypes.h diff --git a/reactos/include/xdk/x86/ke.h b/include/xdk/x86/ke.h similarity index 100% rename from reactos/include/xdk/x86/ke.h rename to include/xdk/x86/ke.h diff --git a/reactos/include/xdk/x86/mm.h b/include/xdk/x86/mm.h similarity index 100% rename from reactos/include/xdk/x86/mm.h rename to include/xdk/x86/mm.h diff --git a/reactos/include/xdk/zwfuncs.h b/include/xdk/zwfuncs.h similarity index 100% rename from reactos/include/xdk/zwfuncs.h rename to include/xdk/zwfuncs.h diff --git a/reactos/lib/3rdparty/CMakeLists.txt b/lib/3rdparty/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/CMakeLists.txt rename to lib/3rdparty/CMakeLists.txt diff --git a/reactos/lib/3rdparty/adns/CMakeLists.txt b/lib/3rdparty/adns/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/adns/CMakeLists.txt rename to lib/3rdparty/adns/CMakeLists.txt diff --git a/reactos/lib/3rdparty/adns/COPYING b/lib/3rdparty/adns/COPYING similarity index 100% rename from reactos/lib/3rdparty/adns/COPYING rename to lib/3rdparty/adns/COPYING diff --git a/reactos/lib/3rdparty/adns/GPL-vs-LGPL b/lib/3rdparty/adns/GPL-vs-LGPL similarity index 100% rename from reactos/lib/3rdparty/adns/GPL-vs-LGPL rename to lib/3rdparty/adns/GPL-vs-LGPL diff --git a/reactos/lib/3rdparty/adns/INSTALL b/lib/3rdparty/adns/INSTALL similarity index 100% rename from reactos/lib/3rdparty/adns/INSTALL rename to lib/3rdparty/adns/INSTALL diff --git a/reactos/lib/3rdparty/adns/Makefile.in b/lib/3rdparty/adns/Makefile.in similarity index 100% rename from reactos/lib/3rdparty/adns/Makefile.in rename to lib/3rdparty/adns/Makefile.in diff --git a/reactos/lib/3rdparty/adns/README b/lib/3rdparty/adns/README similarity index 100% rename from reactos/lib/3rdparty/adns/README rename to lib/3rdparty/adns/README diff --git a/reactos/lib/3rdparty/adns/README.html b/lib/3rdparty/adns/README.html similarity index 100% rename from reactos/lib/3rdparty/adns/README.html rename to lib/3rdparty/adns/README.html diff --git a/reactos/lib/3rdparty/adns/TODO b/lib/3rdparty/adns/TODO similarity index 100% rename from reactos/lib/3rdparty/adns/TODO rename to lib/3rdparty/adns/TODO diff --git a/reactos/lib/3rdparty/adns/acconfig.h b/lib/3rdparty/adns/acconfig.h similarity index 100% rename from reactos/lib/3rdparty/adns/acconfig.h rename to lib/3rdparty/adns/acconfig.h diff --git a/reactos/lib/3rdparty/adns/aclocal.m4 b/lib/3rdparty/adns/aclocal.m4 similarity index 100% rename from reactos/lib/3rdparty/adns/aclocal.m4 rename to lib/3rdparty/adns/aclocal.m4 diff --git a/reactos/lib/3rdparty/adns/adns_win32/README.TXT b/lib/3rdparty/adns/adns_win32/README.TXT similarity index 100% rename from reactos/lib/3rdparty/adns/adns_win32/README.TXT rename to lib/3rdparty/adns/adns_win32/README.TXT diff --git a/reactos/lib/3rdparty/adns/adns_win32/adns_unix_calls.c b/lib/3rdparty/adns/adns_win32/adns_unix_calls.c similarity index 100% rename from reactos/lib/3rdparty/adns/adns_win32/adns_unix_calls.c rename to lib/3rdparty/adns/adns_win32/adns_unix_calls.c diff --git a/reactos/lib/3rdparty/adns/adns_win32/adns_win32.h b/lib/3rdparty/adns/adns_win32/adns_win32.h similarity index 100% rename from reactos/lib/3rdparty/adns/adns_win32/adns_win32.h rename to lib/3rdparty/adns/adns_win32/adns_win32.h diff --git a/reactos/lib/3rdparty/adns/adns_win32/getopt.c b/lib/3rdparty/adns/adns_win32/getopt.c similarity index 100% rename from reactos/lib/3rdparty/adns/adns_win32/getopt.c rename to lib/3rdparty/adns/adns_win32/getopt.c diff --git a/reactos/lib/3rdparty/adns/adns_win32/getopt.h b/lib/3rdparty/adns/adns_win32/getopt.h similarity index 100% rename from reactos/lib/3rdparty/adns/adns_win32/getopt.h rename to lib/3rdparty/adns/adns_win32/getopt.h diff --git a/reactos/lib/3rdparty/adns/adns_win32/timercmp.h b/lib/3rdparty/adns/adns_win32/timercmp.h similarity index 100% rename from reactos/lib/3rdparty/adns/adns_win32/timercmp.h rename to lib/3rdparty/adns/adns_win32/timercmp.h diff --git a/reactos/lib/3rdparty/adns/changelog b/lib/3rdparty/adns/changelog similarity index 100% rename from reactos/lib/3rdparty/adns/changelog rename to lib/3rdparty/adns/changelog diff --git a/reactos/lib/3rdparty/adns/client/Makefile.in b/lib/3rdparty/adns/client/Makefile.in similarity index 100% rename from reactos/lib/3rdparty/adns/client/Makefile.in rename to lib/3rdparty/adns/client/Makefile.in diff --git a/reactos/lib/3rdparty/adns/client/adh-main.c b/lib/3rdparty/adns/client/adh-main.c similarity index 100% rename from reactos/lib/3rdparty/adns/client/adh-main.c rename to lib/3rdparty/adns/client/adh-main.c diff --git a/reactos/lib/3rdparty/adns/client/adh-opts.c b/lib/3rdparty/adns/client/adh-opts.c similarity index 100% rename from reactos/lib/3rdparty/adns/client/adh-opts.c rename to lib/3rdparty/adns/client/adh-opts.c diff --git a/reactos/lib/3rdparty/adns/client/adh-query.c b/lib/3rdparty/adns/client/adh-query.c similarity index 100% rename from reactos/lib/3rdparty/adns/client/adh-query.c rename to lib/3rdparty/adns/client/adh-query.c diff --git a/reactos/lib/3rdparty/adns/client/adnshost.h b/lib/3rdparty/adns/client/adnshost.h similarity index 100% rename from reactos/lib/3rdparty/adns/client/adnshost.h rename to lib/3rdparty/adns/client/adnshost.h diff --git a/reactos/lib/3rdparty/adns/client/adnslogres.c b/lib/3rdparty/adns/client/adnslogres.c similarity index 100% rename from reactos/lib/3rdparty/adns/client/adnslogres.c rename to lib/3rdparty/adns/client/adnslogres.c diff --git a/reactos/lib/3rdparty/adns/client/adnsresfilter.c b/lib/3rdparty/adns/client/adnsresfilter.c similarity index 100% rename from reactos/lib/3rdparty/adns/client/adnsresfilter.c rename to lib/3rdparty/adns/client/adnsresfilter.c diff --git a/reactos/lib/3rdparty/adns/client/adnstest.c b/lib/3rdparty/adns/client/adnstest.c similarity index 100% rename from reactos/lib/3rdparty/adns/client/adnstest.c rename to lib/3rdparty/adns/client/adnstest.c diff --git a/reactos/lib/3rdparty/adns/client/client.h b/lib/3rdparty/adns/client/client.h similarity index 100% rename from reactos/lib/3rdparty/adns/client/client.h rename to lib/3rdparty/adns/client/client.h diff --git a/reactos/lib/3rdparty/adns/client/fanftest.c b/lib/3rdparty/adns/client/fanftest.c similarity index 100% rename from reactos/lib/3rdparty/adns/client/fanftest.c rename to lib/3rdparty/adns/client/fanftest.c diff --git a/reactos/lib/3rdparty/adns/configure.in b/lib/3rdparty/adns/configure.in similarity index 100% rename from reactos/lib/3rdparty/adns/configure.in rename to lib/3rdparty/adns/configure.in diff --git a/reactos/lib/3rdparty/adns/dynamic/Makefile.in b/lib/3rdparty/adns/dynamic/Makefile.in similarity index 100% rename from reactos/lib/3rdparty/adns/dynamic/Makefile.in rename to lib/3rdparty/adns/dynamic/Makefile.in diff --git a/reactos/lib/3rdparty/adns/install-sh b/lib/3rdparty/adns/install-sh similarity index 100% rename from reactos/lib/3rdparty/adns/install-sh rename to lib/3rdparty/adns/install-sh diff --git a/reactos/lib/3rdparty/adns/settings.make.in b/lib/3rdparty/adns/settings.make.in similarity index 100% rename from reactos/lib/3rdparty/adns/settings.make.in rename to lib/3rdparty/adns/settings.make.in diff --git a/reactos/lib/3rdparty/adns/src/Makefile.in b/lib/3rdparty/adns/src/Makefile.in similarity index 100% rename from reactos/lib/3rdparty/adns/src/Makefile.in rename to lib/3rdparty/adns/src/Makefile.in diff --git a/reactos/lib/3rdparty/adns/src/adns.h b/lib/3rdparty/adns/src/adns.h similarity index 100% rename from reactos/lib/3rdparty/adns/src/adns.h rename to lib/3rdparty/adns/src/adns.h diff --git a/reactos/lib/3rdparty/adns/src/adns.make b/lib/3rdparty/adns/src/adns.make similarity index 100% rename from reactos/lib/3rdparty/adns/src/adns.make rename to lib/3rdparty/adns/src/adns.make diff --git a/reactos/lib/3rdparty/adns/src/check.c b/lib/3rdparty/adns/src/check.c similarity index 100% rename from reactos/lib/3rdparty/adns/src/check.c rename to lib/3rdparty/adns/src/check.c diff --git a/reactos/lib/3rdparty/adns/src/config.h b/lib/3rdparty/adns/src/config.h similarity index 100% rename from reactos/lib/3rdparty/adns/src/config.h rename to lib/3rdparty/adns/src/config.h diff --git a/reactos/lib/3rdparty/adns/src/config.h.in b/lib/3rdparty/adns/src/config.h.in similarity index 100% rename from reactos/lib/3rdparty/adns/src/config.h.in rename to lib/3rdparty/adns/src/config.h.in diff --git a/reactos/lib/3rdparty/adns/src/dlist.h b/lib/3rdparty/adns/src/dlist.h similarity index 100% rename from reactos/lib/3rdparty/adns/src/dlist.h rename to lib/3rdparty/adns/src/dlist.h diff --git a/reactos/lib/3rdparty/adns/src/event.c b/lib/3rdparty/adns/src/event.c similarity index 100% rename from reactos/lib/3rdparty/adns/src/event.c rename to lib/3rdparty/adns/src/event.c diff --git a/reactos/lib/3rdparty/adns/src/general.c b/lib/3rdparty/adns/src/general.c similarity index 100% rename from reactos/lib/3rdparty/adns/src/general.c rename to lib/3rdparty/adns/src/general.c diff --git a/reactos/lib/3rdparty/adns/src/internal.h b/lib/3rdparty/adns/src/internal.h similarity index 100% rename from reactos/lib/3rdparty/adns/src/internal.h rename to lib/3rdparty/adns/src/internal.h diff --git a/reactos/lib/3rdparty/adns/src/parse.c b/lib/3rdparty/adns/src/parse.c similarity index 100% rename from reactos/lib/3rdparty/adns/src/parse.c rename to lib/3rdparty/adns/src/parse.c diff --git a/reactos/lib/3rdparty/adns/src/poll.c b/lib/3rdparty/adns/src/poll.c similarity index 100% rename from reactos/lib/3rdparty/adns/src/poll.c rename to lib/3rdparty/adns/src/poll.c diff --git a/reactos/lib/3rdparty/adns/src/query.c b/lib/3rdparty/adns/src/query.c similarity index 100% rename from reactos/lib/3rdparty/adns/src/query.c rename to lib/3rdparty/adns/src/query.c diff --git a/reactos/lib/3rdparty/adns/src/reply.c b/lib/3rdparty/adns/src/reply.c similarity index 100% rename from reactos/lib/3rdparty/adns/src/reply.c rename to lib/3rdparty/adns/src/reply.c diff --git a/reactos/lib/3rdparty/adns/src/setup.c b/lib/3rdparty/adns/src/setup.c similarity index 100% rename from reactos/lib/3rdparty/adns/src/setup.c rename to lib/3rdparty/adns/src/setup.c diff --git a/reactos/lib/3rdparty/adns/src/transmit.c b/lib/3rdparty/adns/src/transmit.c similarity index 100% rename from reactos/lib/3rdparty/adns/src/transmit.c rename to lib/3rdparty/adns/src/transmit.c diff --git a/reactos/lib/3rdparty/adns/src/tvarith.h b/lib/3rdparty/adns/src/tvarith.h similarity index 100% rename from reactos/lib/3rdparty/adns/src/tvarith.h rename to lib/3rdparty/adns/src/tvarith.h diff --git a/reactos/lib/3rdparty/adns/src/types.c b/lib/3rdparty/adns/src/types.c similarity index 100% rename from reactos/lib/3rdparty/adns/src/types.c rename to lib/3rdparty/adns/src/types.c diff --git a/reactos/lib/3rdparty/bzip2/CHANGES b/lib/3rdparty/bzip2/CHANGES similarity index 100% rename from reactos/lib/3rdparty/bzip2/CHANGES rename to lib/3rdparty/bzip2/CHANGES diff --git a/reactos/lib/3rdparty/bzip2/CMakeLists.txt b/lib/3rdparty/bzip2/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/bzip2/CMakeLists.txt rename to lib/3rdparty/bzip2/CMakeLists.txt diff --git a/reactos/lib/3rdparty/bzip2/LICENSE b/lib/3rdparty/bzip2/LICENSE similarity index 100% rename from reactos/lib/3rdparty/bzip2/LICENSE rename to lib/3rdparty/bzip2/LICENSE diff --git a/reactos/lib/3rdparty/bzip2/Makefile-libbz2_so b/lib/3rdparty/bzip2/Makefile-libbz2_so similarity index 100% rename from reactos/lib/3rdparty/bzip2/Makefile-libbz2_so rename to lib/3rdparty/bzip2/Makefile-libbz2_so diff --git a/reactos/lib/3rdparty/bzip2/README b/lib/3rdparty/bzip2/README similarity index 100% rename from reactos/lib/3rdparty/bzip2/README rename to lib/3rdparty/bzip2/README diff --git a/reactos/lib/3rdparty/bzip2/README.COMPILATION.PROBLEMS b/lib/3rdparty/bzip2/README.COMPILATION.PROBLEMS similarity index 100% rename from reactos/lib/3rdparty/bzip2/README.COMPILATION.PROBLEMS rename to lib/3rdparty/bzip2/README.COMPILATION.PROBLEMS diff --git a/reactos/lib/3rdparty/bzip2/README.reactos b/lib/3rdparty/bzip2/README.reactos similarity index 100% rename from reactos/lib/3rdparty/bzip2/README.reactos rename to lib/3rdparty/bzip2/README.reactos diff --git a/reactos/lib/3rdparty/bzip2/Y2K_INFO b/lib/3rdparty/bzip2/Y2K_INFO similarity index 100% rename from reactos/lib/3rdparty/bzip2/Y2K_INFO rename to lib/3rdparty/bzip2/Y2K_INFO diff --git a/reactos/lib/3rdparty/bzip2/blocksort.c b/lib/3rdparty/bzip2/blocksort.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/blocksort.c rename to lib/3rdparty/bzip2/blocksort.c diff --git a/reactos/lib/3rdparty/bzip2/bzip2.1 b/lib/3rdparty/bzip2/bzip2.1 similarity index 100% rename from reactos/lib/3rdparty/bzip2/bzip2.1 rename to lib/3rdparty/bzip2/bzip2.1 diff --git a/reactos/lib/3rdparty/bzip2/bzip2.1.preformatted b/lib/3rdparty/bzip2/bzip2.1.preformatted similarity index 100% rename from reactos/lib/3rdparty/bzip2/bzip2.1.preformatted rename to lib/3rdparty/bzip2/bzip2.1.preformatted diff --git a/reactos/lib/3rdparty/bzip2/bzip2.c b/lib/3rdparty/bzip2/bzip2.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/bzip2.c rename to lib/3rdparty/bzip2/bzip2.c diff --git a/reactos/lib/3rdparty/bzip2/bzip2.txt b/lib/3rdparty/bzip2/bzip2.txt similarity index 100% rename from reactos/lib/3rdparty/bzip2/bzip2.txt rename to lib/3rdparty/bzip2/bzip2.txt diff --git a/reactos/lib/3rdparty/bzip2/bzip2recover.c b/lib/3rdparty/bzip2/bzip2recover.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/bzip2recover.c rename to lib/3rdparty/bzip2/bzip2recover.c diff --git a/reactos/lib/3rdparty/bzip2/bzlib.c b/lib/3rdparty/bzip2/bzlib.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/bzlib.c rename to lib/3rdparty/bzip2/bzlib.c diff --git a/reactos/lib/3rdparty/bzip2/bzlib.h b/lib/3rdparty/bzip2/bzlib.h similarity index 100% rename from reactos/lib/3rdparty/bzip2/bzlib.h rename to lib/3rdparty/bzip2/bzlib.h diff --git a/reactos/lib/3rdparty/bzip2/bzlib_private.h b/lib/3rdparty/bzip2/bzlib_private.h similarity index 100% rename from reactos/lib/3rdparty/bzip2/bzlib_private.h rename to lib/3rdparty/bzip2/bzlib_private.h diff --git a/reactos/lib/3rdparty/bzip2/compress.c b/lib/3rdparty/bzip2/compress.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/compress.c rename to lib/3rdparty/bzip2/compress.c diff --git a/reactos/lib/3rdparty/bzip2/crctable.c b/lib/3rdparty/bzip2/crctable.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/crctable.c rename to lib/3rdparty/bzip2/crctable.c diff --git a/reactos/lib/3rdparty/bzip2/decompress.c b/lib/3rdparty/bzip2/decompress.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/decompress.c rename to lib/3rdparty/bzip2/decompress.c diff --git a/reactos/lib/3rdparty/bzip2/dllmain.c b/lib/3rdparty/bzip2/dllmain.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/dllmain.c rename to lib/3rdparty/bzip2/dllmain.c diff --git a/reactos/lib/3rdparty/bzip2/dlltest.c b/lib/3rdparty/bzip2/dlltest.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/dlltest.c rename to lib/3rdparty/bzip2/dlltest.c diff --git a/reactos/lib/3rdparty/bzip2/dlltest.dsp b/lib/3rdparty/bzip2/dlltest.dsp similarity index 100% rename from reactos/lib/3rdparty/bzip2/dlltest.dsp rename to lib/3rdparty/bzip2/dlltest.dsp diff --git a/reactos/lib/3rdparty/bzip2/huffman.c b/lib/3rdparty/bzip2/huffman.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/huffman.c rename to lib/3rdparty/bzip2/huffman.c diff --git a/reactos/lib/3rdparty/bzip2/libbz2.def b/lib/3rdparty/bzip2/libbz2.def similarity index 100% rename from reactos/lib/3rdparty/bzip2/libbz2.def rename to lib/3rdparty/bzip2/libbz2.def diff --git a/reactos/lib/3rdparty/bzip2/libbz2.dsp b/lib/3rdparty/bzip2/libbz2.dsp similarity index 100% rename from reactos/lib/3rdparty/bzip2/libbz2.dsp rename to lib/3rdparty/bzip2/libbz2.dsp diff --git a/reactos/lib/3rdparty/bzip2/makefile.msc b/lib/3rdparty/bzip2/makefile.msc similarity index 100% rename from reactos/lib/3rdparty/bzip2/makefile.msc rename to lib/3rdparty/bzip2/makefile.msc diff --git a/reactos/lib/3rdparty/bzip2/manual.ps b/lib/3rdparty/bzip2/manual.ps similarity index 100% rename from reactos/lib/3rdparty/bzip2/manual.ps rename to lib/3rdparty/bzip2/manual.ps diff --git a/reactos/lib/3rdparty/bzip2/manual.texi b/lib/3rdparty/bzip2/manual.texi similarity index 100% rename from reactos/lib/3rdparty/bzip2/manual.texi rename to lib/3rdparty/bzip2/manual.texi diff --git a/reactos/lib/3rdparty/bzip2/manual_1.html b/lib/3rdparty/bzip2/manual_1.html similarity index 100% rename from reactos/lib/3rdparty/bzip2/manual_1.html rename to lib/3rdparty/bzip2/manual_1.html diff --git a/reactos/lib/3rdparty/bzip2/manual_2.html b/lib/3rdparty/bzip2/manual_2.html similarity index 100% rename from reactos/lib/3rdparty/bzip2/manual_2.html rename to lib/3rdparty/bzip2/manual_2.html diff --git a/reactos/lib/3rdparty/bzip2/manual_3.html b/lib/3rdparty/bzip2/manual_3.html similarity index 100% rename from reactos/lib/3rdparty/bzip2/manual_3.html rename to lib/3rdparty/bzip2/manual_3.html diff --git a/reactos/lib/3rdparty/bzip2/manual_4.html b/lib/3rdparty/bzip2/manual_4.html similarity index 100% rename from reactos/lib/3rdparty/bzip2/manual_4.html rename to lib/3rdparty/bzip2/manual_4.html diff --git a/reactos/lib/3rdparty/bzip2/manual_toc.html b/lib/3rdparty/bzip2/manual_toc.html similarity index 100% rename from reactos/lib/3rdparty/bzip2/manual_toc.html rename to lib/3rdparty/bzip2/manual_toc.html diff --git a/reactos/lib/3rdparty/bzip2/randtable.c b/lib/3rdparty/bzip2/randtable.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/randtable.c rename to lib/3rdparty/bzip2/randtable.c diff --git a/reactos/lib/3rdparty/bzip2/sample1.ref b/lib/3rdparty/bzip2/sample1.ref similarity index 100% rename from reactos/lib/3rdparty/bzip2/sample1.ref rename to lib/3rdparty/bzip2/sample1.ref diff --git a/reactos/lib/3rdparty/bzip2/sample2.ref b/lib/3rdparty/bzip2/sample2.ref similarity index 100% rename from reactos/lib/3rdparty/bzip2/sample2.ref rename to lib/3rdparty/bzip2/sample2.ref diff --git a/reactos/lib/3rdparty/bzip2/sample3.ref b/lib/3rdparty/bzip2/sample3.ref similarity index 100% rename from reactos/lib/3rdparty/bzip2/sample3.ref rename to lib/3rdparty/bzip2/sample3.ref diff --git a/reactos/lib/3rdparty/bzip2/spewG.c b/lib/3rdparty/bzip2/spewG.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/spewG.c rename to lib/3rdparty/bzip2/spewG.c diff --git a/reactos/lib/3rdparty/bzip2/unbzip2.spec b/lib/3rdparty/bzip2/unbzip2.spec similarity index 100% rename from reactos/lib/3rdparty/bzip2/unbzip2.spec rename to lib/3rdparty/bzip2/unbzip2.spec diff --git a/reactos/lib/3rdparty/bzip2/unzcrash.c b/lib/3rdparty/bzip2/unzcrash.c similarity index 100% rename from reactos/lib/3rdparty/bzip2/unzcrash.c rename to lib/3rdparty/bzip2/unzcrash.c diff --git a/reactos/lib/3rdparty/bzip2/words0 b/lib/3rdparty/bzip2/words0 similarity index 100% rename from reactos/lib/3rdparty/bzip2/words0 rename to lib/3rdparty/bzip2/words0 diff --git a/reactos/lib/3rdparty/bzip2/words1 b/lib/3rdparty/bzip2/words1 similarity index 100% rename from reactos/lib/3rdparty/bzip2/words1 rename to lib/3rdparty/bzip2/words1 diff --git a/reactos/lib/3rdparty/bzip2/words2 b/lib/3rdparty/bzip2/words2 similarity index 100% rename from reactos/lib/3rdparty/bzip2/words2 rename to lib/3rdparty/bzip2/words2 diff --git a/reactos/lib/3rdparty/bzip2/words3 b/lib/3rdparty/bzip2/words3 similarity index 100% rename from reactos/lib/3rdparty/bzip2/words3 rename to lib/3rdparty/bzip2/words3 diff --git a/reactos/lib/3rdparty/cardlib/CMakeLists.txt b/lib/3rdparty/cardlib/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/cardlib/CMakeLists.txt rename to lib/3rdparty/cardlib/CMakeLists.txt diff --git a/reactos/lib/3rdparty/cardlib/ReadMe.txt b/lib/3rdparty/cardlib/ReadMe.txt similarity index 100% rename from reactos/lib/3rdparty/cardlib/ReadMe.txt rename to lib/3rdparty/cardlib/ReadMe.txt diff --git a/reactos/lib/3rdparty/cardlib/card.h b/lib/3rdparty/cardlib/card.h similarity index 100% rename from reactos/lib/3rdparty/cardlib/card.h rename to lib/3rdparty/cardlib/card.h diff --git a/reactos/lib/3rdparty/cardlib/cardbitmaps.cpp b/lib/3rdparty/cardlib/cardbitmaps.cpp similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardbitmaps.cpp rename to lib/3rdparty/cardlib/cardbitmaps.cpp diff --git a/reactos/lib/3rdparty/cardlib/cardbutton.cpp b/lib/3rdparty/cardlib/cardbutton.cpp similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardbutton.cpp rename to lib/3rdparty/cardlib/cardbutton.cpp diff --git a/reactos/lib/3rdparty/cardlib/cardbutton.h b/lib/3rdparty/cardlib/cardbutton.h similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardbutton.h rename to lib/3rdparty/cardlib/cardbutton.h diff --git a/reactos/lib/3rdparty/cardlib/cardcolor.cpp b/lib/3rdparty/cardlib/cardcolor.cpp similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardcolor.cpp rename to lib/3rdparty/cardlib/cardcolor.cpp diff --git a/reactos/lib/3rdparty/cardlib/cardcolor.h b/lib/3rdparty/cardlib/cardcolor.h similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardcolor.h rename to lib/3rdparty/cardlib/cardcolor.h diff --git a/reactos/lib/3rdparty/cardlib/cardcount.cpp b/lib/3rdparty/cardlib/cardcount.cpp similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardcount.cpp rename to lib/3rdparty/cardlib/cardcount.cpp diff --git a/reactos/lib/3rdparty/cardlib/cardcount.h b/lib/3rdparty/cardlib/cardcount.h similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardcount.h rename to lib/3rdparty/cardlib/cardcount.h diff --git a/reactos/lib/3rdparty/cardlib/cardlib.cpp b/lib/3rdparty/cardlib/cardlib.cpp similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardlib.cpp rename to lib/3rdparty/cardlib/cardlib.cpp diff --git a/reactos/lib/3rdparty/cardlib/cardlib.h b/lib/3rdparty/cardlib/cardlib.h similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardlib.h rename to lib/3rdparty/cardlib/cardlib.h diff --git a/reactos/lib/3rdparty/cardlib/cardregion.cpp b/lib/3rdparty/cardlib/cardregion.cpp similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardregion.cpp rename to lib/3rdparty/cardlib/cardregion.cpp diff --git a/reactos/lib/3rdparty/cardlib/cardregion.h b/lib/3rdparty/cardlib/cardregion.h similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardregion.h rename to lib/3rdparty/cardlib/cardregion.h diff --git a/reactos/lib/3rdparty/cardlib/cardrgndraw.cpp b/lib/3rdparty/cardlib/cardrgndraw.cpp similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardrgndraw.cpp rename to lib/3rdparty/cardlib/cardrgndraw.cpp diff --git a/reactos/lib/3rdparty/cardlib/cardrgnmouse.cpp b/lib/3rdparty/cardlib/cardrgnmouse.cpp similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardrgnmouse.cpp rename to lib/3rdparty/cardlib/cardrgnmouse.cpp diff --git a/reactos/lib/3rdparty/cardlib/cardstack.cpp b/lib/3rdparty/cardlib/cardstack.cpp similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardstack.cpp rename to lib/3rdparty/cardlib/cardstack.cpp diff --git a/reactos/lib/3rdparty/cardlib/cardstack.h b/lib/3rdparty/cardlib/cardstack.h similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardstack.h rename to lib/3rdparty/cardlib/cardstack.h diff --git a/reactos/lib/3rdparty/cardlib/cardwindow.cpp b/lib/3rdparty/cardlib/cardwindow.cpp similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardwindow.cpp rename to lib/3rdparty/cardlib/cardwindow.cpp diff --git a/reactos/lib/3rdparty/cardlib/cardwindow.h b/lib/3rdparty/cardlib/cardwindow.h similarity index 100% rename from reactos/lib/3rdparty/cardlib/cardwindow.h rename to lib/3rdparty/cardlib/cardwindow.h diff --git a/reactos/lib/3rdparty/cardlib/dropzone.cpp b/lib/3rdparty/cardlib/dropzone.cpp similarity index 100% rename from reactos/lib/3rdparty/cardlib/dropzone.cpp rename to lib/3rdparty/cardlib/dropzone.cpp diff --git a/reactos/lib/3rdparty/cardlib/dropzone.h b/lib/3rdparty/cardlib/dropzone.h similarity index 100% rename from reactos/lib/3rdparty/cardlib/dropzone.h rename to lib/3rdparty/cardlib/dropzone.h diff --git a/reactos/lib/3rdparty/cardlib/globals.h b/lib/3rdparty/cardlib/globals.h similarity index 100% rename from reactos/lib/3rdparty/cardlib/globals.h rename to lib/3rdparty/cardlib/globals.h diff --git a/reactos/lib/3rdparty/expat/CMakeLists.txt b/lib/3rdparty/expat/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/expat/CMakeLists.txt rename to lib/3rdparty/expat/CMakeLists.txt diff --git a/reactos/lib/3rdparty/expat/COPYING b/lib/3rdparty/expat/COPYING similarity index 100% rename from reactos/lib/3rdparty/expat/COPYING rename to lib/3rdparty/expat/COPYING diff --git a/reactos/lib/3rdparty/expat/Makefile.in b/lib/3rdparty/expat/Makefile.in similarity index 100% rename from reactos/lib/3rdparty/expat/Makefile.in rename to lib/3rdparty/expat/Makefile.in diff --git a/reactos/lib/3rdparty/expat/README b/lib/3rdparty/expat/README similarity index 100% rename from reactos/lib/3rdparty/expat/README rename to lib/3rdparty/expat/README diff --git a/reactos/lib/3rdparty/expat/expat.dsw b/lib/3rdparty/expat/expat.dsw similarity index 100% rename from reactos/lib/3rdparty/expat/expat.dsw rename to lib/3rdparty/expat/expat.dsw diff --git a/reactos/lib/3rdparty/expat/expat.spec b/lib/3rdparty/expat/expat.spec similarity index 100% rename from reactos/lib/3rdparty/expat/expat.spec rename to lib/3rdparty/expat/expat.spec diff --git a/reactos/lib/3rdparty/expat/lib/Makefile.MPW b/lib/3rdparty/expat/lib/Makefile.MPW similarity index 100% rename from reactos/lib/3rdparty/expat/lib/Makefile.MPW rename to lib/3rdparty/expat/lib/Makefile.MPW diff --git a/reactos/lib/3rdparty/expat/lib/ascii.h b/lib/3rdparty/expat/lib/ascii.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/ascii.h rename to lib/3rdparty/expat/lib/ascii.h diff --git a/reactos/lib/3rdparty/expat/lib/asciitab.h b/lib/3rdparty/expat/lib/asciitab.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/asciitab.h rename to lib/3rdparty/expat/lib/asciitab.h diff --git a/reactos/lib/3rdparty/expat/lib/expat.dsp b/lib/3rdparty/expat/lib/expat.dsp similarity index 100% rename from reactos/lib/3rdparty/expat/lib/expat.dsp rename to lib/3rdparty/expat/lib/expat.dsp diff --git a/reactos/lib/3rdparty/expat/lib/expat_config.h b/lib/3rdparty/expat/lib/expat_config.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/expat_config.h rename to lib/3rdparty/expat/lib/expat_config.h diff --git a/reactos/lib/3rdparty/expat/lib/expat_static.dsp b/lib/3rdparty/expat/lib/expat_static.dsp similarity index 100% rename from reactos/lib/3rdparty/expat/lib/expat_static.dsp rename to lib/3rdparty/expat/lib/expat_static.dsp diff --git a/reactos/lib/3rdparty/expat/lib/expatw.dsp b/lib/3rdparty/expat/lib/expatw.dsp similarity index 100% rename from reactos/lib/3rdparty/expat/lib/expatw.dsp rename to lib/3rdparty/expat/lib/expatw.dsp diff --git a/reactos/lib/3rdparty/expat/lib/expatw_static.dsp b/lib/3rdparty/expat/lib/expatw_static.dsp similarity index 100% rename from reactos/lib/3rdparty/expat/lib/expatw_static.dsp rename to lib/3rdparty/expat/lib/expatw_static.dsp diff --git a/reactos/lib/3rdparty/expat/lib/iasciitab.h b/lib/3rdparty/expat/lib/iasciitab.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/iasciitab.h rename to lib/3rdparty/expat/lib/iasciitab.h diff --git a/reactos/lib/3rdparty/expat/lib/internal.h b/lib/3rdparty/expat/lib/internal.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/internal.h rename to lib/3rdparty/expat/lib/internal.h diff --git a/reactos/lib/3rdparty/expat/lib/latin1tab.h b/lib/3rdparty/expat/lib/latin1tab.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/latin1tab.h rename to lib/3rdparty/expat/lib/latin1tab.h diff --git a/reactos/lib/3rdparty/expat/lib/libexpat.def b/lib/3rdparty/expat/lib/libexpat.def similarity index 100% rename from reactos/lib/3rdparty/expat/lib/libexpat.def rename to lib/3rdparty/expat/lib/libexpat.def diff --git a/reactos/lib/3rdparty/expat/lib/libexpatw.def b/lib/3rdparty/expat/lib/libexpatw.def similarity index 100% rename from reactos/lib/3rdparty/expat/lib/libexpatw.def rename to lib/3rdparty/expat/lib/libexpatw.def diff --git a/reactos/lib/3rdparty/expat/lib/macconfig.h b/lib/3rdparty/expat/lib/macconfig.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/macconfig.h rename to lib/3rdparty/expat/lib/macconfig.h diff --git a/reactos/lib/3rdparty/expat/lib/nametab.h b/lib/3rdparty/expat/lib/nametab.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/nametab.h rename to lib/3rdparty/expat/lib/nametab.h diff --git a/reactos/lib/3rdparty/expat/lib/utf8tab.h b/lib/3rdparty/expat/lib/utf8tab.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/utf8tab.h rename to lib/3rdparty/expat/lib/utf8tab.h diff --git a/reactos/lib/3rdparty/expat/lib/winconfig.h b/lib/3rdparty/expat/lib/winconfig.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/winconfig.h rename to lib/3rdparty/expat/lib/winconfig.h diff --git a/reactos/lib/3rdparty/expat/lib/xmlparse.c b/lib/3rdparty/expat/lib/xmlparse.c similarity index 100% rename from reactos/lib/3rdparty/expat/lib/xmlparse.c rename to lib/3rdparty/expat/lib/xmlparse.c diff --git a/reactos/lib/3rdparty/expat/lib/xmlrole.c b/lib/3rdparty/expat/lib/xmlrole.c similarity index 100% rename from reactos/lib/3rdparty/expat/lib/xmlrole.c rename to lib/3rdparty/expat/lib/xmlrole.c diff --git a/reactos/lib/3rdparty/expat/lib/xmlrole.h b/lib/3rdparty/expat/lib/xmlrole.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/xmlrole.h rename to lib/3rdparty/expat/lib/xmlrole.h diff --git a/reactos/lib/3rdparty/expat/lib/xmltok.c b/lib/3rdparty/expat/lib/xmltok.c similarity index 100% rename from reactos/lib/3rdparty/expat/lib/xmltok.c rename to lib/3rdparty/expat/lib/xmltok.c diff --git a/reactos/lib/3rdparty/expat/lib/xmltok.h b/lib/3rdparty/expat/lib/xmltok.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/xmltok.h rename to lib/3rdparty/expat/lib/xmltok.h diff --git a/reactos/lib/3rdparty/expat/lib/xmltok_impl.c b/lib/3rdparty/expat/lib/xmltok_impl.c similarity index 100% rename from reactos/lib/3rdparty/expat/lib/xmltok_impl.c rename to lib/3rdparty/expat/lib/xmltok_impl.c diff --git a/reactos/lib/3rdparty/expat/lib/xmltok_impl.h b/lib/3rdparty/expat/lib/xmltok_impl.h similarity index 100% rename from reactos/lib/3rdparty/expat/lib/xmltok_impl.h rename to lib/3rdparty/expat/lib/xmltok_impl.h diff --git a/reactos/lib/3rdparty/expat/lib/xmltok_ns.c b/lib/3rdparty/expat/lib/xmltok_ns.c similarity index 100% rename from reactos/lib/3rdparty/expat/lib/xmltok_ns.c rename to lib/3rdparty/expat/lib/xmltok_ns.c diff --git a/reactos/lib/3rdparty/freetype/CMakeLists.txt b/lib/3rdparty/freetype/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/freetype/CMakeLists.txt rename to lib/3rdparty/freetype/CMakeLists.txt diff --git a/reactos/lib/3rdparty/freetype/ChangeLog b/lib/3rdparty/freetype/ChangeLog similarity index 100% rename from reactos/lib/3rdparty/freetype/ChangeLog rename to lib/3rdparty/freetype/ChangeLog diff --git a/reactos/lib/3rdparty/freetype/ChangeLog.20 b/lib/3rdparty/freetype/ChangeLog.20 similarity index 100% rename from reactos/lib/3rdparty/freetype/ChangeLog.20 rename to lib/3rdparty/freetype/ChangeLog.20 diff --git a/reactos/lib/3rdparty/freetype/ChangeLog.21 b/lib/3rdparty/freetype/ChangeLog.21 similarity index 100% rename from reactos/lib/3rdparty/freetype/ChangeLog.21 rename to lib/3rdparty/freetype/ChangeLog.21 diff --git a/reactos/lib/3rdparty/freetype/ChangeLog.22 b/lib/3rdparty/freetype/ChangeLog.22 similarity index 100% rename from reactos/lib/3rdparty/freetype/ChangeLog.22 rename to lib/3rdparty/freetype/ChangeLog.22 diff --git a/reactos/lib/3rdparty/freetype/ChangeLog.23 b/lib/3rdparty/freetype/ChangeLog.23 similarity index 100% rename from reactos/lib/3rdparty/freetype/ChangeLog.23 rename to lib/3rdparty/freetype/ChangeLog.23 diff --git a/reactos/lib/3rdparty/freetype/Jamfile b/lib/3rdparty/freetype/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/Jamfile rename to lib/3rdparty/freetype/Jamfile diff --git a/reactos/lib/3rdparty/freetype/Jamrules b/lib/3rdparty/freetype/Jamrules similarity index 100% rename from reactos/lib/3rdparty/freetype/Jamrules rename to lib/3rdparty/freetype/Jamrules diff --git a/reactos/lib/3rdparty/freetype/Makefile b/lib/3rdparty/freetype/Makefile similarity index 100% rename from reactos/lib/3rdparty/freetype/Makefile rename to lib/3rdparty/freetype/Makefile diff --git a/reactos/lib/3rdparty/freetype/README b/lib/3rdparty/freetype/README similarity index 100% rename from reactos/lib/3rdparty/freetype/README rename to lib/3rdparty/freetype/README diff --git a/reactos/lib/3rdparty/freetype/README.ROS b/lib/3rdparty/freetype/README.ROS similarity index 100% rename from reactos/lib/3rdparty/freetype/README.ROS rename to lib/3rdparty/freetype/README.ROS diff --git a/reactos/lib/3rdparty/freetype/README.git b/lib/3rdparty/freetype/README.git similarity index 100% rename from reactos/lib/3rdparty/freetype/README.git rename to lib/3rdparty/freetype/README.git diff --git a/reactos/lib/3rdparty/freetype/autogen.sh b/lib/3rdparty/freetype/autogen.sh similarity index 100% rename from reactos/lib/3rdparty/freetype/autogen.sh rename to lib/3rdparty/freetype/autogen.sh diff --git a/reactos/lib/3rdparty/freetype/configure b/lib/3rdparty/freetype/configure similarity index 100% rename from reactos/lib/3rdparty/freetype/configure rename to lib/3rdparty/freetype/configure diff --git a/reactos/lib/3rdparty/freetype/devel/ft2build.h b/lib/3rdparty/freetype/devel/ft2build.h similarity index 100% rename from reactos/lib/3rdparty/freetype/devel/ft2build.h rename to lib/3rdparty/freetype/devel/ft2build.h diff --git a/reactos/lib/3rdparty/freetype/devel/ftoption.h b/lib/3rdparty/freetype/devel/ftoption.h similarity index 100% rename from reactos/lib/3rdparty/freetype/devel/ftoption.h rename to lib/3rdparty/freetype/devel/ftoption.h diff --git a/reactos/lib/3rdparty/freetype/freetype.def b/lib/3rdparty/freetype/freetype.def similarity index 100% rename from reactos/lib/3rdparty/freetype/freetype.def rename to lib/3rdparty/freetype/freetype.def diff --git a/reactos/lib/3rdparty/freetype/freetype.rc b/lib/3rdparty/freetype/freetype.rc similarity index 100% rename from reactos/lib/3rdparty/freetype/freetype.rc rename to lib/3rdparty/freetype/freetype.rc diff --git a/reactos/lib/3rdparty/freetype/freetype_ros.diff b/lib/3rdparty/freetype/freetype_ros.diff similarity index 100% rename from reactos/lib/3rdparty/freetype/freetype_ros.diff rename to lib/3rdparty/freetype/freetype_ros.diff diff --git a/reactos/lib/3rdparty/freetype/include/freetype/config/ftconfig.h b/lib/3rdparty/freetype/include/freetype/config/ftconfig.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/config/ftconfig.h rename to lib/3rdparty/freetype/include/freetype/config/ftconfig.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/config/ftheader.h b/lib/3rdparty/freetype/include/freetype/config/ftheader.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/config/ftheader.h rename to lib/3rdparty/freetype/include/freetype/config/ftheader.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/config/ftmodule.h b/lib/3rdparty/freetype/include/freetype/config/ftmodule.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/config/ftmodule.h rename to lib/3rdparty/freetype/include/freetype/config/ftmodule.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/config/ftoption.h b/lib/3rdparty/freetype/include/freetype/config/ftoption.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/config/ftoption.h rename to lib/3rdparty/freetype/include/freetype/config/ftoption.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/config/ftstdlib.h b/lib/3rdparty/freetype/include/freetype/config/ftstdlib.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/config/ftstdlib.h rename to lib/3rdparty/freetype/include/freetype/config/ftstdlib.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/freetype.h b/lib/3rdparty/freetype/include/freetype/freetype.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/freetype.h rename to lib/3rdparty/freetype/include/freetype/freetype.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftadvanc.h b/lib/3rdparty/freetype/include/freetype/ftadvanc.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftadvanc.h rename to lib/3rdparty/freetype/include/freetype/ftadvanc.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftbbox.h b/lib/3rdparty/freetype/include/freetype/ftbbox.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftbbox.h rename to lib/3rdparty/freetype/include/freetype/ftbbox.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftbdf.h b/lib/3rdparty/freetype/include/freetype/ftbdf.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftbdf.h rename to lib/3rdparty/freetype/include/freetype/ftbdf.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftbitmap.h b/lib/3rdparty/freetype/include/freetype/ftbitmap.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftbitmap.h rename to lib/3rdparty/freetype/include/freetype/ftbitmap.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftcache.h b/lib/3rdparty/freetype/include/freetype/ftcache.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftcache.h rename to lib/3rdparty/freetype/include/freetype/ftcache.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftchapters.h b/lib/3rdparty/freetype/include/freetype/ftchapters.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftchapters.h rename to lib/3rdparty/freetype/include/freetype/ftchapters.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftcid.h b/lib/3rdparty/freetype/include/freetype/ftcid.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftcid.h rename to lib/3rdparty/freetype/include/freetype/ftcid.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/fterrdef.h b/lib/3rdparty/freetype/include/freetype/fterrdef.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/fterrdef.h rename to lib/3rdparty/freetype/include/freetype/fterrdef.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/fterrors.h b/lib/3rdparty/freetype/include/freetype/fterrors.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/fterrors.h rename to lib/3rdparty/freetype/include/freetype/fterrors.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftgasp.h b/lib/3rdparty/freetype/include/freetype/ftgasp.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftgasp.h rename to lib/3rdparty/freetype/include/freetype/ftgasp.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftglyph.h b/lib/3rdparty/freetype/include/freetype/ftglyph.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftglyph.h rename to lib/3rdparty/freetype/include/freetype/ftglyph.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftgxval.h b/lib/3rdparty/freetype/include/freetype/ftgxval.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftgxval.h rename to lib/3rdparty/freetype/include/freetype/ftgxval.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftgzip.h b/lib/3rdparty/freetype/include/freetype/ftgzip.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftgzip.h rename to lib/3rdparty/freetype/include/freetype/ftgzip.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftimage.h b/lib/3rdparty/freetype/include/freetype/ftimage.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftimage.h rename to lib/3rdparty/freetype/include/freetype/ftimage.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftincrem.h b/lib/3rdparty/freetype/include/freetype/ftincrem.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftincrem.h rename to lib/3rdparty/freetype/include/freetype/ftincrem.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftlcdfil.h b/lib/3rdparty/freetype/include/freetype/ftlcdfil.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftlcdfil.h rename to lib/3rdparty/freetype/include/freetype/ftlcdfil.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftlist.h b/lib/3rdparty/freetype/include/freetype/ftlist.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftlist.h rename to lib/3rdparty/freetype/include/freetype/ftlist.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftlzw.h b/lib/3rdparty/freetype/include/freetype/ftlzw.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftlzw.h rename to lib/3rdparty/freetype/include/freetype/ftlzw.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftmac.h b/lib/3rdparty/freetype/include/freetype/ftmac.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftmac.h rename to lib/3rdparty/freetype/include/freetype/ftmac.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftmm.h b/lib/3rdparty/freetype/include/freetype/ftmm.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftmm.h rename to lib/3rdparty/freetype/include/freetype/ftmm.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftmodapi.h b/lib/3rdparty/freetype/include/freetype/ftmodapi.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftmodapi.h rename to lib/3rdparty/freetype/include/freetype/ftmodapi.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftmoderr.h b/lib/3rdparty/freetype/include/freetype/ftmoderr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftmoderr.h rename to lib/3rdparty/freetype/include/freetype/ftmoderr.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftotval.h b/lib/3rdparty/freetype/include/freetype/ftotval.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftotval.h rename to lib/3rdparty/freetype/include/freetype/ftotval.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftoutln.h b/lib/3rdparty/freetype/include/freetype/ftoutln.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftoutln.h rename to lib/3rdparty/freetype/include/freetype/ftoutln.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftpfr.h b/lib/3rdparty/freetype/include/freetype/ftpfr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftpfr.h rename to lib/3rdparty/freetype/include/freetype/ftpfr.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftrender.h b/lib/3rdparty/freetype/include/freetype/ftrender.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftrender.h rename to lib/3rdparty/freetype/include/freetype/ftrender.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftsizes.h b/lib/3rdparty/freetype/include/freetype/ftsizes.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftsizes.h rename to lib/3rdparty/freetype/include/freetype/ftsizes.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftsnames.h b/lib/3rdparty/freetype/include/freetype/ftsnames.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftsnames.h rename to lib/3rdparty/freetype/include/freetype/ftsnames.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftstroke.h b/lib/3rdparty/freetype/include/freetype/ftstroke.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftstroke.h rename to lib/3rdparty/freetype/include/freetype/ftstroke.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftsynth.h b/lib/3rdparty/freetype/include/freetype/ftsynth.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftsynth.h rename to lib/3rdparty/freetype/include/freetype/ftsynth.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftsystem.h b/lib/3rdparty/freetype/include/freetype/ftsystem.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftsystem.h rename to lib/3rdparty/freetype/include/freetype/ftsystem.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/fttrigon.h b/lib/3rdparty/freetype/include/freetype/fttrigon.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/fttrigon.h rename to lib/3rdparty/freetype/include/freetype/fttrigon.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/fttypes.h b/lib/3rdparty/freetype/include/freetype/fttypes.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/fttypes.h rename to lib/3rdparty/freetype/include/freetype/fttypes.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftwinfnt.h b/lib/3rdparty/freetype/include/freetype/ftwinfnt.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftwinfnt.h rename to lib/3rdparty/freetype/include/freetype/ftwinfnt.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ftxf86.h b/lib/3rdparty/freetype/include/freetype/ftxf86.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ftxf86.h rename to lib/3rdparty/freetype/include/freetype/ftxf86.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/autohint.h b/lib/3rdparty/freetype/include/freetype/internal/autohint.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/autohint.h rename to lib/3rdparty/freetype/include/freetype/internal/autohint.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftcalc.h b/lib/3rdparty/freetype/include/freetype/internal/ftcalc.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/ftcalc.h rename to lib/3rdparty/freetype/include/freetype/internal/ftcalc.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftdebug.h b/lib/3rdparty/freetype/include/freetype/internal/ftdebug.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/ftdebug.h rename to lib/3rdparty/freetype/include/freetype/internal/ftdebug.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftdriver.h b/lib/3rdparty/freetype/include/freetype/internal/ftdriver.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/ftdriver.h rename to lib/3rdparty/freetype/include/freetype/internal/ftdriver.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftgloadr.h b/lib/3rdparty/freetype/include/freetype/internal/ftgloadr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/ftgloadr.h rename to lib/3rdparty/freetype/include/freetype/internal/ftgloadr.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftmemory.h b/lib/3rdparty/freetype/include/freetype/internal/ftmemory.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/ftmemory.h rename to lib/3rdparty/freetype/include/freetype/internal/ftmemory.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftobjs.h b/lib/3rdparty/freetype/include/freetype/internal/ftobjs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/ftobjs.h rename to lib/3rdparty/freetype/include/freetype/internal/ftobjs.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftpic.h b/lib/3rdparty/freetype/include/freetype/internal/ftpic.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/ftpic.h rename to lib/3rdparty/freetype/include/freetype/internal/ftpic.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftrfork.h b/lib/3rdparty/freetype/include/freetype/internal/ftrfork.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/ftrfork.h rename to lib/3rdparty/freetype/include/freetype/internal/ftrfork.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftserv.h b/lib/3rdparty/freetype/include/freetype/internal/ftserv.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/ftserv.h rename to lib/3rdparty/freetype/include/freetype/internal/ftserv.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftstream.h b/lib/3rdparty/freetype/include/freetype/internal/ftstream.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/ftstream.h rename to lib/3rdparty/freetype/include/freetype/internal/ftstream.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/fttrace.h b/lib/3rdparty/freetype/include/freetype/internal/fttrace.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/fttrace.h rename to lib/3rdparty/freetype/include/freetype/internal/fttrace.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/ftvalid.h b/lib/3rdparty/freetype/include/freetype/internal/ftvalid.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/ftvalid.h rename to lib/3rdparty/freetype/include/freetype/internal/ftvalid.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/internal.h b/lib/3rdparty/freetype/include/freetype/internal/internal.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/internal.h rename to lib/3rdparty/freetype/include/freetype/internal/internal.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/pcftypes.h b/lib/3rdparty/freetype/include/freetype/internal/pcftypes.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/pcftypes.h rename to lib/3rdparty/freetype/include/freetype/internal/pcftypes.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/psaux.h b/lib/3rdparty/freetype/include/freetype/internal/psaux.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/psaux.h rename to lib/3rdparty/freetype/include/freetype/internal/psaux.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/pshints.h b/lib/3rdparty/freetype/include/freetype/internal/pshints.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/pshints.h rename to lib/3rdparty/freetype/include/freetype/internal/pshints.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svbdf.h b/lib/3rdparty/freetype/include/freetype/internal/services/svbdf.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svbdf.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svbdf.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svcid.h b/lib/3rdparty/freetype/include/freetype/internal/services/svcid.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svcid.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svcid.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgldict.h b/lib/3rdparty/freetype/include/freetype/internal/services/svgldict.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgldict.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svgldict.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgxval.h b/lib/3rdparty/freetype/include/freetype/internal/services/svgxval.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svgxval.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svgxval.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svkern.h b/lib/3rdparty/freetype/include/freetype/internal/services/svkern.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svkern.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svkern.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svmm.h b/lib/3rdparty/freetype/include/freetype/internal/services/svmm.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svmm.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svmm.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svotval.h b/lib/3rdparty/freetype/include/freetype/internal/services/svotval.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svotval.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svotval.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpfr.h b/lib/3rdparty/freetype/include/freetype/internal/services/svpfr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpfr.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svpfr.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpostnm.h b/lib/3rdparty/freetype/include/freetype/internal/services/svpostnm.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpostnm.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svpostnm.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpscmap.h b/lib/3rdparty/freetype/include/freetype/internal/services/svpscmap.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpscmap.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svpscmap.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpsinfo.h b/lib/3rdparty/freetype/include/freetype/internal/services/svpsinfo.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svpsinfo.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svpsinfo.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svsfnt.h b/lib/3rdparty/freetype/include/freetype/internal/services/svsfnt.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svsfnt.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svsfnt.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttcmap.h b/lib/3rdparty/freetype/include/freetype/internal/services/svttcmap.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttcmap.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svttcmap.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svtteng.h b/lib/3rdparty/freetype/include/freetype/internal/services/svtteng.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svtteng.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svtteng.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttglyf.h b/lib/3rdparty/freetype/include/freetype/internal/services/svttglyf.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svttglyf.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svttglyf.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svwinfnt.h b/lib/3rdparty/freetype/include/freetype/internal/services/svwinfnt.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svwinfnt.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svwinfnt.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/services/svxf86nm.h b/lib/3rdparty/freetype/include/freetype/internal/services/svxf86nm.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/services/svxf86nm.h rename to lib/3rdparty/freetype/include/freetype/internal/services/svxf86nm.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/sfnt.h b/lib/3rdparty/freetype/include/freetype/internal/sfnt.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/sfnt.h rename to lib/3rdparty/freetype/include/freetype/internal/sfnt.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/t1types.h b/lib/3rdparty/freetype/include/freetype/internal/t1types.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/t1types.h rename to lib/3rdparty/freetype/include/freetype/internal/t1types.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/internal/tttypes.h b/lib/3rdparty/freetype/include/freetype/internal/tttypes.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/internal/tttypes.h rename to lib/3rdparty/freetype/include/freetype/internal/tttypes.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/t1tables.h b/lib/3rdparty/freetype/include/freetype/t1tables.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/t1tables.h rename to lib/3rdparty/freetype/include/freetype/t1tables.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ttnameid.h b/lib/3rdparty/freetype/include/freetype/ttnameid.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ttnameid.h rename to lib/3rdparty/freetype/include/freetype/ttnameid.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/tttables.h b/lib/3rdparty/freetype/include/freetype/tttables.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/tttables.h rename to lib/3rdparty/freetype/include/freetype/tttables.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/tttags.h b/lib/3rdparty/freetype/include/freetype/tttags.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/tttags.h rename to lib/3rdparty/freetype/include/freetype/tttags.h diff --git a/reactos/lib/3rdparty/freetype/include/freetype/ttunpat.h b/lib/3rdparty/freetype/include/freetype/ttunpat.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/freetype/ttunpat.h rename to lib/3rdparty/freetype/include/freetype/ttunpat.h diff --git a/reactos/lib/3rdparty/freetype/include/ft2build.h b/lib/3rdparty/freetype/include/ft2build.h similarity index 100% rename from reactos/lib/3rdparty/freetype/include/ft2build.h rename to lib/3rdparty/freetype/include/ft2build.h diff --git a/reactos/lib/3rdparty/freetype/modules.cfg b/lib/3rdparty/freetype/modules.cfg similarity index 100% rename from reactos/lib/3rdparty/freetype/modules.cfg rename to lib/3rdparty/freetype/modules.cfg diff --git a/reactos/lib/3rdparty/freetype/objs/README b/lib/3rdparty/freetype/objs/README similarity index 100% rename from reactos/lib/3rdparty/freetype/objs/README rename to lib/3rdparty/freetype/objs/README diff --git a/reactos/lib/3rdparty/freetype/src/Jamfile b/lib/3rdparty/freetype/src/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/Jamfile rename to lib/3rdparty/freetype/src/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/autofit/Jamfile b/lib/3rdparty/freetype/src/autofit/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/Jamfile rename to lib/3rdparty/freetype/src/autofit/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afangles.c b/lib/3rdparty/freetype/src/autofit/afangles.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afangles.c rename to lib/3rdparty/freetype/src/autofit/afangles.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afangles.h b/lib/3rdparty/freetype/src/autofit/afangles.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afangles.h rename to lib/3rdparty/freetype/src/autofit/afangles.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afcjk.c b/lib/3rdparty/freetype/src/autofit/afcjk.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afcjk.c rename to lib/3rdparty/freetype/src/autofit/afcjk.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afcjk.h b/lib/3rdparty/freetype/src/autofit/afcjk.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afcjk.h rename to lib/3rdparty/freetype/src/autofit/afcjk.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afdummy.c b/lib/3rdparty/freetype/src/autofit/afdummy.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afdummy.c rename to lib/3rdparty/freetype/src/autofit/afdummy.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afdummy.h b/lib/3rdparty/freetype/src/autofit/afdummy.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afdummy.h rename to lib/3rdparty/freetype/src/autofit/afdummy.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aferrors.h b/lib/3rdparty/freetype/src/autofit/aferrors.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/aferrors.h rename to lib/3rdparty/freetype/src/autofit/aferrors.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afglobal.c b/lib/3rdparty/freetype/src/autofit/afglobal.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afglobal.c rename to lib/3rdparty/freetype/src/autofit/afglobal.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afglobal.h b/lib/3rdparty/freetype/src/autofit/afglobal.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afglobal.h rename to lib/3rdparty/freetype/src/autofit/afglobal.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afhints.c b/lib/3rdparty/freetype/src/autofit/afhints.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afhints.c rename to lib/3rdparty/freetype/src/autofit/afhints.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afhints.h b/lib/3rdparty/freetype/src/autofit/afhints.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afhints.h rename to lib/3rdparty/freetype/src/autofit/afhints.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afindic.c b/lib/3rdparty/freetype/src/autofit/afindic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afindic.c rename to lib/3rdparty/freetype/src/autofit/afindic.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afindic.h b/lib/3rdparty/freetype/src/autofit/afindic.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afindic.h rename to lib/3rdparty/freetype/src/autofit/afindic.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aflatin.c b/lib/3rdparty/freetype/src/autofit/aflatin.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/aflatin.c rename to lib/3rdparty/freetype/src/autofit/aflatin.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aflatin.h b/lib/3rdparty/freetype/src/autofit/aflatin.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/aflatin.h rename to lib/3rdparty/freetype/src/autofit/aflatin.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aflatin2.c b/lib/3rdparty/freetype/src/autofit/aflatin2.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/aflatin2.c rename to lib/3rdparty/freetype/src/autofit/aflatin2.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aflatin2.h b/lib/3rdparty/freetype/src/autofit/aflatin2.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/aflatin2.h rename to lib/3rdparty/freetype/src/autofit/aflatin2.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afloader.c b/lib/3rdparty/freetype/src/autofit/afloader.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afloader.c rename to lib/3rdparty/freetype/src/autofit/afloader.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afloader.h b/lib/3rdparty/freetype/src/autofit/afloader.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afloader.h rename to lib/3rdparty/freetype/src/autofit/afloader.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afmodule.c b/lib/3rdparty/freetype/src/autofit/afmodule.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afmodule.c rename to lib/3rdparty/freetype/src/autofit/afmodule.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afmodule.h b/lib/3rdparty/freetype/src/autofit/afmodule.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afmodule.h rename to lib/3rdparty/freetype/src/autofit/afmodule.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afpic.c b/lib/3rdparty/freetype/src/autofit/afpic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afpic.c rename to lib/3rdparty/freetype/src/autofit/afpic.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afpic.h b/lib/3rdparty/freetype/src/autofit/afpic.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afpic.h rename to lib/3rdparty/freetype/src/autofit/afpic.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/aftypes.h b/lib/3rdparty/freetype/src/autofit/aftypes.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/aftypes.h rename to lib/3rdparty/freetype/src/autofit/aftypes.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afwarp.c b/lib/3rdparty/freetype/src/autofit/afwarp.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afwarp.c rename to lib/3rdparty/freetype/src/autofit/afwarp.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/afwarp.h b/lib/3rdparty/freetype/src/autofit/afwarp.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/afwarp.h rename to lib/3rdparty/freetype/src/autofit/afwarp.h diff --git a/reactos/lib/3rdparty/freetype/src/autofit/autofit.c b/lib/3rdparty/freetype/src/autofit/autofit.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/autofit.c rename to lib/3rdparty/freetype/src/autofit/autofit.c diff --git a/reactos/lib/3rdparty/freetype/src/autofit/module.mk b/lib/3rdparty/freetype/src/autofit/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/module.mk rename to lib/3rdparty/freetype/src/autofit/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/autofit/rules.mk b/lib/3rdparty/freetype/src/autofit/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/autofit/rules.mk rename to lib/3rdparty/freetype/src/autofit/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/base/Jamfile b/lib/3rdparty/freetype/src/base/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/Jamfile rename to lib/3rdparty/freetype/src/base/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/base/basepic.c b/lib/3rdparty/freetype/src/base/basepic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/basepic.c rename to lib/3rdparty/freetype/src/base/basepic.c diff --git a/reactos/lib/3rdparty/freetype/src/base/basepic.h b/lib/3rdparty/freetype/src/base/basepic.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/basepic.h rename to lib/3rdparty/freetype/src/base/basepic.h diff --git a/reactos/lib/3rdparty/freetype/src/base/ftadvanc.c b/lib/3rdparty/freetype/src/base/ftadvanc.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftadvanc.c rename to lib/3rdparty/freetype/src/base/ftadvanc.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftapi.c b/lib/3rdparty/freetype/src/base/ftapi.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftapi.c rename to lib/3rdparty/freetype/src/base/ftapi.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftbase.c b/lib/3rdparty/freetype/src/base/ftbase.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftbase.c rename to lib/3rdparty/freetype/src/base/ftbase.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftbase.h b/lib/3rdparty/freetype/src/base/ftbase.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftbase.h rename to lib/3rdparty/freetype/src/base/ftbase.h diff --git a/reactos/lib/3rdparty/freetype/src/base/ftbbox.c b/lib/3rdparty/freetype/src/base/ftbbox.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftbbox.c rename to lib/3rdparty/freetype/src/base/ftbbox.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftbdf.c b/lib/3rdparty/freetype/src/base/ftbdf.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftbdf.c rename to lib/3rdparty/freetype/src/base/ftbdf.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftbitmap.c b/lib/3rdparty/freetype/src/base/ftbitmap.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftbitmap.c rename to lib/3rdparty/freetype/src/base/ftbitmap.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftcalc.c b/lib/3rdparty/freetype/src/base/ftcalc.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftcalc.c rename to lib/3rdparty/freetype/src/base/ftcalc.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftcid.c b/lib/3rdparty/freetype/src/base/ftcid.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftcid.c rename to lib/3rdparty/freetype/src/base/ftcid.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftdbgmem.c b/lib/3rdparty/freetype/src/base/ftdbgmem.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftdbgmem.c rename to lib/3rdparty/freetype/src/base/ftdbgmem.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftdebug.c b/lib/3rdparty/freetype/src/base/ftdebug.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftdebug.c rename to lib/3rdparty/freetype/src/base/ftdebug.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftfstype.c b/lib/3rdparty/freetype/src/base/ftfstype.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftfstype.c rename to lib/3rdparty/freetype/src/base/ftfstype.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftgasp.c b/lib/3rdparty/freetype/src/base/ftgasp.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftgasp.c rename to lib/3rdparty/freetype/src/base/ftgasp.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftgloadr.c b/lib/3rdparty/freetype/src/base/ftgloadr.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftgloadr.c rename to lib/3rdparty/freetype/src/base/ftgloadr.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftglyph.c b/lib/3rdparty/freetype/src/base/ftglyph.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftglyph.c rename to lib/3rdparty/freetype/src/base/ftglyph.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftgxval.c b/lib/3rdparty/freetype/src/base/ftgxval.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftgxval.c rename to lib/3rdparty/freetype/src/base/ftgxval.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftinit.c b/lib/3rdparty/freetype/src/base/ftinit.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftinit.c rename to lib/3rdparty/freetype/src/base/ftinit.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftlcdfil.c b/lib/3rdparty/freetype/src/base/ftlcdfil.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftlcdfil.c rename to lib/3rdparty/freetype/src/base/ftlcdfil.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftmac.c b/lib/3rdparty/freetype/src/base/ftmac.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftmac.c rename to lib/3rdparty/freetype/src/base/ftmac.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftmm.c b/lib/3rdparty/freetype/src/base/ftmm.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftmm.c rename to lib/3rdparty/freetype/src/base/ftmm.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftnames.c b/lib/3rdparty/freetype/src/base/ftnames.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftnames.c rename to lib/3rdparty/freetype/src/base/ftnames.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftobjs.c b/lib/3rdparty/freetype/src/base/ftobjs.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftobjs.c rename to lib/3rdparty/freetype/src/base/ftobjs.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftotval.c b/lib/3rdparty/freetype/src/base/ftotval.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftotval.c rename to lib/3rdparty/freetype/src/base/ftotval.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftoutln.c b/lib/3rdparty/freetype/src/base/ftoutln.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftoutln.c rename to lib/3rdparty/freetype/src/base/ftoutln.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftpatent.c b/lib/3rdparty/freetype/src/base/ftpatent.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftpatent.c rename to lib/3rdparty/freetype/src/base/ftpatent.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftpfr.c b/lib/3rdparty/freetype/src/base/ftpfr.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftpfr.c rename to lib/3rdparty/freetype/src/base/ftpfr.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftpic.c b/lib/3rdparty/freetype/src/base/ftpic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftpic.c rename to lib/3rdparty/freetype/src/base/ftpic.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftrfork.c b/lib/3rdparty/freetype/src/base/ftrfork.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftrfork.c rename to lib/3rdparty/freetype/src/base/ftrfork.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftsnames.c b/lib/3rdparty/freetype/src/base/ftsnames.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftsnames.c rename to lib/3rdparty/freetype/src/base/ftsnames.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftstream.c b/lib/3rdparty/freetype/src/base/ftstream.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftstream.c rename to lib/3rdparty/freetype/src/base/ftstream.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftstroke.c b/lib/3rdparty/freetype/src/base/ftstroke.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftstroke.c rename to lib/3rdparty/freetype/src/base/ftstroke.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftsynth.c b/lib/3rdparty/freetype/src/base/ftsynth.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftsynth.c rename to lib/3rdparty/freetype/src/base/ftsynth.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftsystem.c b/lib/3rdparty/freetype/src/base/ftsystem.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftsystem.c rename to lib/3rdparty/freetype/src/base/ftsystem.c diff --git a/reactos/lib/3rdparty/freetype/src/base/fttrigon.c b/lib/3rdparty/freetype/src/base/fttrigon.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/fttrigon.c rename to lib/3rdparty/freetype/src/base/fttrigon.c diff --git a/reactos/lib/3rdparty/freetype/src/base/fttype1.c b/lib/3rdparty/freetype/src/base/fttype1.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/fttype1.c rename to lib/3rdparty/freetype/src/base/fttype1.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftutil.c b/lib/3rdparty/freetype/src/base/ftutil.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftutil.c rename to lib/3rdparty/freetype/src/base/ftutil.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftwinfnt.c b/lib/3rdparty/freetype/src/base/ftwinfnt.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftwinfnt.c rename to lib/3rdparty/freetype/src/base/ftwinfnt.c diff --git a/reactos/lib/3rdparty/freetype/src/base/ftxf86.c b/lib/3rdparty/freetype/src/base/ftxf86.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/ftxf86.c rename to lib/3rdparty/freetype/src/base/ftxf86.c diff --git a/reactos/lib/3rdparty/freetype/src/base/rules.mk b/lib/3rdparty/freetype/src/base/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/base/rules.mk rename to lib/3rdparty/freetype/src/base/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/bdf/Jamfile b/lib/3rdparty/freetype/src/bdf/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/bdf/Jamfile rename to lib/3rdparty/freetype/src/bdf/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/bdf/README b/lib/3rdparty/freetype/src/bdf/README similarity index 100% rename from reactos/lib/3rdparty/freetype/src/bdf/README rename to lib/3rdparty/freetype/src/bdf/README diff --git a/reactos/lib/3rdparty/freetype/src/bdf/bdf.c b/lib/3rdparty/freetype/src/bdf/bdf.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/bdf/bdf.c rename to lib/3rdparty/freetype/src/bdf/bdf.c diff --git a/reactos/lib/3rdparty/freetype/src/bdf/bdf.h b/lib/3rdparty/freetype/src/bdf/bdf.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/bdf/bdf.h rename to lib/3rdparty/freetype/src/bdf/bdf.h diff --git a/reactos/lib/3rdparty/freetype/src/bdf/bdfdrivr.c b/lib/3rdparty/freetype/src/bdf/bdfdrivr.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/bdf/bdfdrivr.c rename to lib/3rdparty/freetype/src/bdf/bdfdrivr.c diff --git a/reactos/lib/3rdparty/freetype/src/bdf/bdfdrivr.h b/lib/3rdparty/freetype/src/bdf/bdfdrivr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/bdf/bdfdrivr.h rename to lib/3rdparty/freetype/src/bdf/bdfdrivr.h diff --git a/reactos/lib/3rdparty/freetype/src/bdf/bdferror.h b/lib/3rdparty/freetype/src/bdf/bdferror.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/bdf/bdferror.h rename to lib/3rdparty/freetype/src/bdf/bdferror.h diff --git a/reactos/lib/3rdparty/freetype/src/bdf/bdflib.c b/lib/3rdparty/freetype/src/bdf/bdflib.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/bdf/bdflib.c rename to lib/3rdparty/freetype/src/bdf/bdflib.c diff --git a/reactos/lib/3rdparty/freetype/src/bdf/module.mk b/lib/3rdparty/freetype/src/bdf/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/bdf/module.mk rename to lib/3rdparty/freetype/src/bdf/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/bdf/rules.mk b/lib/3rdparty/freetype/src/bdf/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/bdf/rules.mk rename to lib/3rdparty/freetype/src/bdf/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/cache/Jamfile b/lib/3rdparty/freetype/src/cache/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/Jamfile rename to lib/3rdparty/freetype/src/cache/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcache.c b/lib/3rdparty/freetype/src/cache/ftcache.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcache.c rename to lib/3rdparty/freetype/src/cache/ftcache.c diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcbasic.c b/lib/3rdparty/freetype/src/cache/ftcbasic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcbasic.c rename to lib/3rdparty/freetype/src/cache/ftcbasic.c diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftccache.c b/lib/3rdparty/freetype/src/cache/ftccache.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftccache.c rename to lib/3rdparty/freetype/src/cache/ftccache.c diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftccache.h b/lib/3rdparty/freetype/src/cache/ftccache.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftccache.h rename to lib/3rdparty/freetype/src/cache/ftccache.h diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftccback.h b/lib/3rdparty/freetype/src/cache/ftccback.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftccback.h rename to lib/3rdparty/freetype/src/cache/ftccback.h diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftccmap.c b/lib/3rdparty/freetype/src/cache/ftccmap.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftccmap.c rename to lib/3rdparty/freetype/src/cache/ftccmap.c diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcerror.h b/lib/3rdparty/freetype/src/cache/ftcerror.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcerror.h rename to lib/3rdparty/freetype/src/cache/ftcerror.h diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcglyph.c b/lib/3rdparty/freetype/src/cache/ftcglyph.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcglyph.c rename to lib/3rdparty/freetype/src/cache/ftcglyph.c diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcglyph.h b/lib/3rdparty/freetype/src/cache/ftcglyph.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcglyph.h rename to lib/3rdparty/freetype/src/cache/ftcglyph.h diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcimage.c b/lib/3rdparty/freetype/src/cache/ftcimage.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcimage.c rename to lib/3rdparty/freetype/src/cache/ftcimage.c diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcimage.h b/lib/3rdparty/freetype/src/cache/ftcimage.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcimage.h rename to lib/3rdparty/freetype/src/cache/ftcimage.h diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcmanag.c b/lib/3rdparty/freetype/src/cache/ftcmanag.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcmanag.c rename to lib/3rdparty/freetype/src/cache/ftcmanag.c diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcmanag.h b/lib/3rdparty/freetype/src/cache/ftcmanag.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcmanag.h rename to lib/3rdparty/freetype/src/cache/ftcmanag.h diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcmru.c b/lib/3rdparty/freetype/src/cache/ftcmru.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcmru.c rename to lib/3rdparty/freetype/src/cache/ftcmru.c diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcmru.h b/lib/3rdparty/freetype/src/cache/ftcmru.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcmru.h rename to lib/3rdparty/freetype/src/cache/ftcmru.h diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcsbits.c b/lib/3rdparty/freetype/src/cache/ftcsbits.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcsbits.c rename to lib/3rdparty/freetype/src/cache/ftcsbits.c diff --git a/reactos/lib/3rdparty/freetype/src/cache/ftcsbits.h b/lib/3rdparty/freetype/src/cache/ftcsbits.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/ftcsbits.h rename to lib/3rdparty/freetype/src/cache/ftcsbits.h diff --git a/reactos/lib/3rdparty/freetype/src/cache/rules.mk b/lib/3rdparty/freetype/src/cache/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cache/rules.mk rename to lib/3rdparty/freetype/src/cache/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/cff/Jamfile b/lib/3rdparty/freetype/src/cff/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/Jamfile rename to lib/3rdparty/freetype/src/cff/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/cff/cff.c b/lib/3rdparty/freetype/src/cff/cff.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cff.c rename to lib/3rdparty/freetype/src/cff/cff.c diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffcmap.c b/lib/3rdparty/freetype/src/cff/cffcmap.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffcmap.c rename to lib/3rdparty/freetype/src/cff/cffcmap.c diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffcmap.h b/lib/3rdparty/freetype/src/cff/cffcmap.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffcmap.h rename to lib/3rdparty/freetype/src/cff/cffcmap.h diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffdrivr.c b/lib/3rdparty/freetype/src/cff/cffdrivr.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffdrivr.c rename to lib/3rdparty/freetype/src/cff/cffdrivr.c diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffdrivr.h b/lib/3rdparty/freetype/src/cff/cffdrivr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffdrivr.h rename to lib/3rdparty/freetype/src/cff/cffdrivr.h diff --git a/reactos/lib/3rdparty/freetype/src/cff/cfferrs.h b/lib/3rdparty/freetype/src/cff/cfferrs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cfferrs.h rename to lib/3rdparty/freetype/src/cff/cfferrs.h diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffgload.c b/lib/3rdparty/freetype/src/cff/cffgload.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffgload.c rename to lib/3rdparty/freetype/src/cff/cffgload.c diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffgload.h b/lib/3rdparty/freetype/src/cff/cffgload.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffgload.h rename to lib/3rdparty/freetype/src/cff/cffgload.h diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffload.c b/lib/3rdparty/freetype/src/cff/cffload.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffload.c rename to lib/3rdparty/freetype/src/cff/cffload.c diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffload.h b/lib/3rdparty/freetype/src/cff/cffload.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffload.h rename to lib/3rdparty/freetype/src/cff/cffload.h diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffobjs.c b/lib/3rdparty/freetype/src/cff/cffobjs.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffobjs.c rename to lib/3rdparty/freetype/src/cff/cffobjs.c diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffobjs.h b/lib/3rdparty/freetype/src/cff/cffobjs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffobjs.h rename to lib/3rdparty/freetype/src/cff/cffobjs.h diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffparse.c b/lib/3rdparty/freetype/src/cff/cffparse.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffparse.c rename to lib/3rdparty/freetype/src/cff/cffparse.c diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffparse.h b/lib/3rdparty/freetype/src/cff/cffparse.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffparse.h rename to lib/3rdparty/freetype/src/cff/cffparse.h diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffpic.c b/lib/3rdparty/freetype/src/cff/cffpic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffpic.c rename to lib/3rdparty/freetype/src/cff/cffpic.c diff --git a/reactos/lib/3rdparty/freetype/src/cff/cffpic.h b/lib/3rdparty/freetype/src/cff/cffpic.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cffpic.h rename to lib/3rdparty/freetype/src/cff/cffpic.h diff --git a/reactos/lib/3rdparty/freetype/src/cff/cfftoken.h b/lib/3rdparty/freetype/src/cff/cfftoken.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cfftoken.h rename to lib/3rdparty/freetype/src/cff/cfftoken.h diff --git a/reactos/lib/3rdparty/freetype/src/cff/cfftypes.h b/lib/3rdparty/freetype/src/cff/cfftypes.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/cfftypes.h rename to lib/3rdparty/freetype/src/cff/cfftypes.h diff --git a/reactos/lib/3rdparty/freetype/src/cff/module.mk b/lib/3rdparty/freetype/src/cff/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/module.mk rename to lib/3rdparty/freetype/src/cff/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/cff/rules.mk b/lib/3rdparty/freetype/src/cff/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cff/rules.mk rename to lib/3rdparty/freetype/src/cff/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/cid/Jamfile b/lib/3rdparty/freetype/src/cid/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/Jamfile rename to lib/3rdparty/freetype/src/cid/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/cid/ciderrs.h b/lib/3rdparty/freetype/src/cid/ciderrs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/ciderrs.h rename to lib/3rdparty/freetype/src/cid/ciderrs.h diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidgload.c b/lib/3rdparty/freetype/src/cid/cidgload.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/cidgload.c rename to lib/3rdparty/freetype/src/cid/cidgload.c diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidgload.h b/lib/3rdparty/freetype/src/cid/cidgload.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/cidgload.h rename to lib/3rdparty/freetype/src/cid/cidgload.h diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidload.c b/lib/3rdparty/freetype/src/cid/cidload.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/cidload.c rename to lib/3rdparty/freetype/src/cid/cidload.c diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidload.h b/lib/3rdparty/freetype/src/cid/cidload.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/cidload.h rename to lib/3rdparty/freetype/src/cid/cidload.h diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidobjs.c b/lib/3rdparty/freetype/src/cid/cidobjs.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/cidobjs.c rename to lib/3rdparty/freetype/src/cid/cidobjs.c diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidobjs.h b/lib/3rdparty/freetype/src/cid/cidobjs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/cidobjs.h rename to lib/3rdparty/freetype/src/cid/cidobjs.h diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidparse.c b/lib/3rdparty/freetype/src/cid/cidparse.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/cidparse.c rename to lib/3rdparty/freetype/src/cid/cidparse.c diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidparse.h b/lib/3rdparty/freetype/src/cid/cidparse.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/cidparse.h rename to lib/3rdparty/freetype/src/cid/cidparse.h diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidriver.c b/lib/3rdparty/freetype/src/cid/cidriver.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/cidriver.c rename to lib/3rdparty/freetype/src/cid/cidriver.c diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidriver.h b/lib/3rdparty/freetype/src/cid/cidriver.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/cidriver.h rename to lib/3rdparty/freetype/src/cid/cidriver.h diff --git a/reactos/lib/3rdparty/freetype/src/cid/cidtoken.h b/lib/3rdparty/freetype/src/cid/cidtoken.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/cidtoken.h rename to lib/3rdparty/freetype/src/cid/cidtoken.h diff --git a/reactos/lib/3rdparty/freetype/src/cid/module.mk b/lib/3rdparty/freetype/src/cid/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/module.mk rename to lib/3rdparty/freetype/src/cid/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/cid/rules.mk b/lib/3rdparty/freetype/src/cid/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/rules.mk rename to lib/3rdparty/freetype/src/cid/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/cid/type1cid.c b/lib/3rdparty/freetype/src/cid/type1cid.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/cid/type1cid.c rename to lib/3rdparty/freetype/src/cid/type1cid.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/Jamfile b/lib/3rdparty/freetype/src/gxvalid/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/Jamfile rename to lib/3rdparty/freetype/src/gxvalid/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/README b/lib/3rdparty/freetype/src/gxvalid/README similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/README rename to lib/3rdparty/freetype/src/gxvalid/README diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.c b/lib/3rdparty/freetype/src/gxvalid/gxvalid.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.c rename to lib/3rdparty/freetype/src/gxvalid/gxvalid.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.h b/lib/3rdparty/freetype/src/gxvalid/gxvalid.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvalid.h rename to lib/3rdparty/freetype/src/gxvalid/gxvalid.h diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvbsln.c b/lib/3rdparty/freetype/src/gxvalid/gxvbsln.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvbsln.c rename to lib/3rdparty/freetype/src/gxvalid/gxvbsln.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.c b/lib/3rdparty/freetype/src/gxvalid/gxvcommn.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.c rename to lib/3rdparty/freetype/src/gxvalid/gxvcommn.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.h b/lib/3rdparty/freetype/src/gxvalid/gxvcommn.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.h rename to lib/3rdparty/freetype/src/gxvalid/gxvcommn.h diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxverror.h b/lib/3rdparty/freetype/src/gxvalid/gxverror.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxverror.h rename to lib/3rdparty/freetype/src/gxvalid/gxverror.h diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.c b/lib/3rdparty/freetype/src/gxvalid/gxvfeat.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.c rename to lib/3rdparty/freetype/src/gxvalid/gxvfeat.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.h b/lib/3rdparty/freetype/src/gxvalid/gxvfeat.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.h rename to lib/3rdparty/freetype/src/gxvalid/gxvfeat.h diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvfgen.c b/lib/3rdparty/freetype/src/gxvalid/gxvfgen.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvfgen.c rename to lib/3rdparty/freetype/src/gxvalid/gxvfgen.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvjust.c b/lib/3rdparty/freetype/src/gxvalid/gxvjust.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvjust.c rename to lib/3rdparty/freetype/src/gxvalid/gxvjust.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvkern.c b/lib/3rdparty/freetype/src/gxvalid/gxvkern.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvkern.c rename to lib/3rdparty/freetype/src/gxvalid/gxvkern.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvlcar.c b/lib/3rdparty/freetype/src/gxvalid/gxvlcar.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvlcar.c rename to lib/3rdparty/freetype/src/gxvalid/gxvlcar.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.c b/lib/3rdparty/freetype/src/gxvalid/gxvmod.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmod.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.h b/lib/3rdparty/freetype/src/gxvalid/gxvmod.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmod.h rename to lib/3rdparty/freetype/src/gxvalid/gxvmod.h diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.c b/lib/3rdparty/freetype/src/gxvalid/gxvmort.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmort.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.h b/lib/3rdparty/freetype/src/gxvalid/gxvmort.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.h rename to lib/3rdparty/freetype/src/gxvalid/gxvmort.h diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort0.c b/lib/3rdparty/freetype/src/gxvalid/gxvmort0.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort0.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmort0.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort1.c b/lib/3rdparty/freetype/src/gxvalid/gxvmort1.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort1.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmort1.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort2.c b/lib/3rdparty/freetype/src/gxvalid/gxvmort2.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort2.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmort2.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort4.c b/lib/3rdparty/freetype/src/gxvalid/gxvmort4.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort4.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmort4.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort5.c b/lib/3rdparty/freetype/src/gxvalid/gxvmort5.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort5.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmort5.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.c b/lib/3rdparty/freetype/src/gxvalid/gxvmorx.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmorx.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.h b/lib/3rdparty/freetype/src/gxvalid/gxvmorx.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.h rename to lib/3rdparty/freetype/src/gxvalid/gxvmorx.h diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx0.c b/lib/3rdparty/freetype/src/gxvalid/gxvmorx0.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx0.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmorx0.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx1.c b/lib/3rdparty/freetype/src/gxvalid/gxvmorx1.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx1.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmorx1.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx2.c b/lib/3rdparty/freetype/src/gxvalid/gxvmorx2.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx2.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmorx2.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx4.c b/lib/3rdparty/freetype/src/gxvalid/gxvmorx4.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx4.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmorx4.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx5.c b/lib/3rdparty/freetype/src/gxvalid/gxvmorx5.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx5.c rename to lib/3rdparty/freetype/src/gxvalid/gxvmorx5.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvopbd.c b/lib/3rdparty/freetype/src/gxvalid/gxvopbd.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvopbd.c rename to lib/3rdparty/freetype/src/gxvalid/gxvopbd.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvprop.c b/lib/3rdparty/freetype/src/gxvalid/gxvprop.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvprop.c rename to lib/3rdparty/freetype/src/gxvalid/gxvprop.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/gxvtrak.c b/lib/3rdparty/freetype/src/gxvalid/gxvtrak.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/gxvtrak.c rename to lib/3rdparty/freetype/src/gxvalid/gxvtrak.c diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/module.mk b/lib/3rdparty/freetype/src/gxvalid/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/module.mk rename to lib/3rdparty/freetype/src/gxvalid/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/gxvalid/rules.mk b/lib/3rdparty/freetype/src/gxvalid/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gxvalid/rules.mk rename to lib/3rdparty/freetype/src/gxvalid/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/gzip/Jamfile b/lib/3rdparty/freetype/src/gzip/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/Jamfile rename to lib/3rdparty/freetype/src/gzip/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/gzip/adler32.c b/lib/3rdparty/freetype/src/gzip/adler32.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/adler32.c rename to lib/3rdparty/freetype/src/gzip/adler32.c diff --git a/reactos/lib/3rdparty/freetype/src/gzip/ftgzip.c b/lib/3rdparty/freetype/src/gzip/ftgzip.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/ftgzip.c rename to lib/3rdparty/freetype/src/gzip/ftgzip.c diff --git a/reactos/lib/3rdparty/freetype/src/gzip/infblock.c b/lib/3rdparty/freetype/src/gzip/infblock.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/infblock.c rename to lib/3rdparty/freetype/src/gzip/infblock.c diff --git a/reactos/lib/3rdparty/freetype/src/gzip/infblock.h b/lib/3rdparty/freetype/src/gzip/infblock.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/infblock.h rename to lib/3rdparty/freetype/src/gzip/infblock.h diff --git a/reactos/lib/3rdparty/freetype/src/gzip/infcodes.c b/lib/3rdparty/freetype/src/gzip/infcodes.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/infcodes.c rename to lib/3rdparty/freetype/src/gzip/infcodes.c diff --git a/reactos/lib/3rdparty/freetype/src/gzip/infcodes.h b/lib/3rdparty/freetype/src/gzip/infcodes.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/infcodes.h rename to lib/3rdparty/freetype/src/gzip/infcodes.h diff --git a/reactos/lib/3rdparty/freetype/src/gzip/inffixed.h b/lib/3rdparty/freetype/src/gzip/inffixed.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/inffixed.h rename to lib/3rdparty/freetype/src/gzip/inffixed.h diff --git a/reactos/lib/3rdparty/freetype/src/gzip/inflate.c b/lib/3rdparty/freetype/src/gzip/inflate.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/inflate.c rename to lib/3rdparty/freetype/src/gzip/inflate.c diff --git a/reactos/lib/3rdparty/freetype/src/gzip/inftrees.c b/lib/3rdparty/freetype/src/gzip/inftrees.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/inftrees.c rename to lib/3rdparty/freetype/src/gzip/inftrees.c diff --git a/reactos/lib/3rdparty/freetype/src/gzip/inftrees.h b/lib/3rdparty/freetype/src/gzip/inftrees.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/inftrees.h rename to lib/3rdparty/freetype/src/gzip/inftrees.h diff --git a/reactos/lib/3rdparty/freetype/src/gzip/infutil.c b/lib/3rdparty/freetype/src/gzip/infutil.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/infutil.c rename to lib/3rdparty/freetype/src/gzip/infutil.c diff --git a/reactos/lib/3rdparty/freetype/src/gzip/infutil.h b/lib/3rdparty/freetype/src/gzip/infutil.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/infutil.h rename to lib/3rdparty/freetype/src/gzip/infutil.h diff --git a/reactos/lib/3rdparty/freetype/src/gzip/rules.mk b/lib/3rdparty/freetype/src/gzip/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/rules.mk rename to lib/3rdparty/freetype/src/gzip/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/gzip/zconf.h b/lib/3rdparty/freetype/src/gzip/zconf.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/zconf.h rename to lib/3rdparty/freetype/src/gzip/zconf.h diff --git a/reactos/lib/3rdparty/freetype/src/gzip/zlib.h b/lib/3rdparty/freetype/src/gzip/zlib.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/zlib.h rename to lib/3rdparty/freetype/src/gzip/zlib.h diff --git a/reactos/lib/3rdparty/freetype/src/gzip/zutil.c b/lib/3rdparty/freetype/src/gzip/zutil.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/zutil.c rename to lib/3rdparty/freetype/src/gzip/zutil.c diff --git a/reactos/lib/3rdparty/freetype/src/gzip/zutil.h b/lib/3rdparty/freetype/src/gzip/zutil.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/gzip/zutil.h rename to lib/3rdparty/freetype/src/gzip/zutil.h diff --git a/reactos/lib/3rdparty/freetype/src/lzw/Jamfile b/lib/3rdparty/freetype/src/lzw/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/lzw/Jamfile rename to lib/3rdparty/freetype/src/lzw/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/lzw/ftlzw.c b/lib/3rdparty/freetype/src/lzw/ftlzw.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/lzw/ftlzw.c rename to lib/3rdparty/freetype/src/lzw/ftlzw.c diff --git a/reactos/lib/3rdparty/freetype/src/lzw/ftzopen.c b/lib/3rdparty/freetype/src/lzw/ftzopen.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/lzw/ftzopen.c rename to lib/3rdparty/freetype/src/lzw/ftzopen.c diff --git a/reactos/lib/3rdparty/freetype/src/lzw/ftzopen.h b/lib/3rdparty/freetype/src/lzw/ftzopen.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/lzw/ftzopen.h rename to lib/3rdparty/freetype/src/lzw/ftzopen.h diff --git a/reactos/lib/3rdparty/freetype/src/lzw/rules.mk b/lib/3rdparty/freetype/src/lzw/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/lzw/rules.mk rename to lib/3rdparty/freetype/src/lzw/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/Jamfile b/lib/3rdparty/freetype/src/otvalid/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/Jamfile rename to lib/3rdparty/freetype/src/otvalid/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/module.mk b/lib/3rdparty/freetype/src/otvalid/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/module.mk rename to lib/3rdparty/freetype/src/otvalid/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvalid.c b/lib/3rdparty/freetype/src/otvalid/otvalid.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvalid.c rename to lib/3rdparty/freetype/src/otvalid/otvalid.c diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvalid.h b/lib/3rdparty/freetype/src/otvalid/otvalid.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvalid.h rename to lib/3rdparty/freetype/src/otvalid/otvalid.h diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvbase.c b/lib/3rdparty/freetype/src/otvalid/otvbase.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvbase.c rename to lib/3rdparty/freetype/src/otvalid/otvbase.c diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.c b/lib/3rdparty/freetype/src/otvalid/otvcommn.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.c rename to lib/3rdparty/freetype/src/otvalid/otvcommn.c diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.h b/lib/3rdparty/freetype/src/otvalid/otvcommn.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.h rename to lib/3rdparty/freetype/src/otvalid/otvcommn.h diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otverror.h b/lib/3rdparty/freetype/src/otvalid/otverror.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otverror.h rename to lib/3rdparty/freetype/src/otvalid/otverror.h diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvgdef.c b/lib/3rdparty/freetype/src/otvalid/otvgdef.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvgdef.c rename to lib/3rdparty/freetype/src/otvalid/otvgdef.c diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.c b/lib/3rdparty/freetype/src/otvalid/otvgpos.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.c rename to lib/3rdparty/freetype/src/otvalid/otvgpos.c diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.h b/lib/3rdparty/freetype/src/otvalid/otvgpos.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.h rename to lib/3rdparty/freetype/src/otvalid/otvgpos.h diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvgsub.c b/lib/3rdparty/freetype/src/otvalid/otvgsub.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvgsub.c rename to lib/3rdparty/freetype/src/otvalid/otvgsub.c diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvjstf.c b/lib/3rdparty/freetype/src/otvalid/otvjstf.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvjstf.c rename to lib/3rdparty/freetype/src/otvalid/otvjstf.c diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvmath.c b/lib/3rdparty/freetype/src/otvalid/otvmath.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvmath.c rename to lib/3rdparty/freetype/src/otvalid/otvmath.c diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvmod.c b/lib/3rdparty/freetype/src/otvalid/otvmod.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvmod.c rename to lib/3rdparty/freetype/src/otvalid/otvmod.c diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/otvmod.h b/lib/3rdparty/freetype/src/otvalid/otvmod.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/otvmod.h rename to lib/3rdparty/freetype/src/otvalid/otvmod.h diff --git a/reactos/lib/3rdparty/freetype/src/otvalid/rules.mk b/lib/3rdparty/freetype/src/otvalid/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/otvalid/rules.mk rename to lib/3rdparty/freetype/src/otvalid/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/pcf/Jamfile b/lib/3rdparty/freetype/src/pcf/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/Jamfile rename to lib/3rdparty/freetype/src/pcf/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/pcf/README b/lib/3rdparty/freetype/src/pcf/README similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/README rename to lib/3rdparty/freetype/src/pcf/README diff --git a/reactos/lib/3rdparty/freetype/src/pcf/module.mk b/lib/3rdparty/freetype/src/pcf/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/module.mk rename to lib/3rdparty/freetype/src/pcf/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcf.c b/lib/3rdparty/freetype/src/pcf/pcf.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/pcf.c rename to lib/3rdparty/freetype/src/pcf/pcf.c diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcf.h b/lib/3rdparty/freetype/src/pcf/pcf.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/pcf.h rename to lib/3rdparty/freetype/src/pcf/pcf.h diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcfdrivr.c b/lib/3rdparty/freetype/src/pcf/pcfdrivr.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/pcfdrivr.c rename to lib/3rdparty/freetype/src/pcf/pcfdrivr.c diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcfdrivr.h b/lib/3rdparty/freetype/src/pcf/pcfdrivr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/pcfdrivr.h rename to lib/3rdparty/freetype/src/pcf/pcfdrivr.h diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcferror.h b/lib/3rdparty/freetype/src/pcf/pcferror.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/pcferror.h rename to lib/3rdparty/freetype/src/pcf/pcferror.h diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcfread.c b/lib/3rdparty/freetype/src/pcf/pcfread.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/pcfread.c rename to lib/3rdparty/freetype/src/pcf/pcfread.c diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcfread.h b/lib/3rdparty/freetype/src/pcf/pcfread.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/pcfread.h rename to lib/3rdparty/freetype/src/pcf/pcfread.h diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcfutil.c b/lib/3rdparty/freetype/src/pcf/pcfutil.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/pcfutil.c rename to lib/3rdparty/freetype/src/pcf/pcfutil.c diff --git a/reactos/lib/3rdparty/freetype/src/pcf/pcfutil.h b/lib/3rdparty/freetype/src/pcf/pcfutil.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/pcfutil.h rename to lib/3rdparty/freetype/src/pcf/pcfutil.h diff --git a/reactos/lib/3rdparty/freetype/src/pcf/rules.mk b/lib/3rdparty/freetype/src/pcf/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pcf/rules.mk rename to lib/3rdparty/freetype/src/pcf/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/pfr/Jamfile b/lib/3rdparty/freetype/src/pfr/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/Jamfile rename to lib/3rdparty/freetype/src/pfr/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/pfr/module.mk b/lib/3rdparty/freetype/src/pfr/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/module.mk rename to lib/3rdparty/freetype/src/pfr/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfr.c b/lib/3rdparty/freetype/src/pfr/pfr.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfr.c rename to lib/3rdparty/freetype/src/pfr/pfr.c diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.c b/lib/3rdparty/freetype/src/pfr/pfrcmap.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.c rename to lib/3rdparty/freetype/src/pfr/pfrcmap.c diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.h b/lib/3rdparty/freetype/src/pfr/pfrcmap.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.h rename to lib/3rdparty/freetype/src/pfr/pfrcmap.h diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.c b/lib/3rdparty/freetype/src/pfr/pfrdrivr.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.c rename to lib/3rdparty/freetype/src/pfr/pfrdrivr.c diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.h b/lib/3rdparty/freetype/src/pfr/pfrdrivr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.h rename to lib/3rdparty/freetype/src/pfr/pfrdrivr.h diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrerror.h b/lib/3rdparty/freetype/src/pfr/pfrerror.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrerror.h rename to lib/3rdparty/freetype/src/pfr/pfrerror.h diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrgload.c b/lib/3rdparty/freetype/src/pfr/pfrgload.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrgload.c rename to lib/3rdparty/freetype/src/pfr/pfrgload.c diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrgload.h b/lib/3rdparty/freetype/src/pfr/pfrgload.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrgload.h rename to lib/3rdparty/freetype/src/pfr/pfrgload.h diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrload.c b/lib/3rdparty/freetype/src/pfr/pfrload.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrload.c rename to lib/3rdparty/freetype/src/pfr/pfrload.c diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrload.h b/lib/3rdparty/freetype/src/pfr/pfrload.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrload.h rename to lib/3rdparty/freetype/src/pfr/pfrload.h diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.c b/lib/3rdparty/freetype/src/pfr/pfrobjs.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.c rename to lib/3rdparty/freetype/src/pfr/pfrobjs.c diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.h b/lib/3rdparty/freetype/src/pfr/pfrobjs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.h rename to lib/3rdparty/freetype/src/pfr/pfrobjs.h diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.c b/lib/3rdparty/freetype/src/pfr/pfrsbit.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.c rename to lib/3rdparty/freetype/src/pfr/pfrsbit.c diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.h b/lib/3rdparty/freetype/src/pfr/pfrsbit.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.h rename to lib/3rdparty/freetype/src/pfr/pfrsbit.h diff --git a/reactos/lib/3rdparty/freetype/src/pfr/pfrtypes.h b/lib/3rdparty/freetype/src/pfr/pfrtypes.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/pfrtypes.h rename to lib/3rdparty/freetype/src/pfr/pfrtypes.h diff --git a/reactos/lib/3rdparty/freetype/src/pfr/rules.mk b/lib/3rdparty/freetype/src/pfr/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pfr/rules.mk rename to lib/3rdparty/freetype/src/pfr/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/psaux/Jamfile b/lib/3rdparty/freetype/src/psaux/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/Jamfile rename to lib/3rdparty/freetype/src/psaux/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/psaux/afmparse.c b/lib/3rdparty/freetype/src/psaux/afmparse.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/afmparse.c rename to lib/3rdparty/freetype/src/psaux/afmparse.c diff --git a/reactos/lib/3rdparty/freetype/src/psaux/afmparse.h b/lib/3rdparty/freetype/src/psaux/afmparse.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/afmparse.h rename to lib/3rdparty/freetype/src/psaux/afmparse.h diff --git a/reactos/lib/3rdparty/freetype/src/psaux/module.mk b/lib/3rdparty/freetype/src/psaux/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/module.mk rename to lib/3rdparty/freetype/src/psaux/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psaux.c b/lib/3rdparty/freetype/src/psaux/psaux.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/psaux.c rename to lib/3rdparty/freetype/src/psaux/psaux.c diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psauxerr.h b/lib/3rdparty/freetype/src/psaux/psauxerr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/psauxerr.h rename to lib/3rdparty/freetype/src/psaux/psauxerr.h diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psauxmod.c b/lib/3rdparty/freetype/src/psaux/psauxmod.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/psauxmod.c rename to lib/3rdparty/freetype/src/psaux/psauxmod.c diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psauxmod.h b/lib/3rdparty/freetype/src/psaux/psauxmod.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/psauxmod.h rename to lib/3rdparty/freetype/src/psaux/psauxmod.h diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psconv.c b/lib/3rdparty/freetype/src/psaux/psconv.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/psconv.c rename to lib/3rdparty/freetype/src/psaux/psconv.c diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psconv.h b/lib/3rdparty/freetype/src/psaux/psconv.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/psconv.h rename to lib/3rdparty/freetype/src/psaux/psconv.h diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psobjs.c b/lib/3rdparty/freetype/src/psaux/psobjs.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/psobjs.c rename to lib/3rdparty/freetype/src/psaux/psobjs.c diff --git a/reactos/lib/3rdparty/freetype/src/psaux/psobjs.h b/lib/3rdparty/freetype/src/psaux/psobjs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/psobjs.h rename to lib/3rdparty/freetype/src/psaux/psobjs.h diff --git a/reactos/lib/3rdparty/freetype/src/psaux/rules.mk b/lib/3rdparty/freetype/src/psaux/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/rules.mk rename to lib/3rdparty/freetype/src/psaux/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/psaux/t1cmap.c b/lib/3rdparty/freetype/src/psaux/t1cmap.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/t1cmap.c rename to lib/3rdparty/freetype/src/psaux/t1cmap.c diff --git a/reactos/lib/3rdparty/freetype/src/psaux/t1cmap.h b/lib/3rdparty/freetype/src/psaux/t1cmap.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/t1cmap.h rename to lib/3rdparty/freetype/src/psaux/t1cmap.h diff --git a/reactos/lib/3rdparty/freetype/src/psaux/t1decode.c b/lib/3rdparty/freetype/src/psaux/t1decode.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/t1decode.c rename to lib/3rdparty/freetype/src/psaux/t1decode.c diff --git a/reactos/lib/3rdparty/freetype/src/psaux/t1decode.h b/lib/3rdparty/freetype/src/psaux/t1decode.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psaux/t1decode.h rename to lib/3rdparty/freetype/src/psaux/t1decode.h diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/Jamfile b/lib/3rdparty/freetype/src/pshinter/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/Jamfile rename to lib/3rdparty/freetype/src/pshinter/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/module.mk b/lib/3rdparty/freetype/src/pshinter/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/module.mk rename to lib/3rdparty/freetype/src/pshinter/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.c b/lib/3rdparty/freetype/src/pshinter/pshalgo.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.c rename to lib/3rdparty/freetype/src/pshinter/pshalgo.c diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.h b/lib/3rdparty/freetype/src/pshinter/pshalgo.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.h rename to lib/3rdparty/freetype/src/pshinter/pshalgo.h diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshglob.c b/lib/3rdparty/freetype/src/pshinter/pshglob.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshglob.c rename to lib/3rdparty/freetype/src/pshinter/pshglob.c diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshglob.h b/lib/3rdparty/freetype/src/pshinter/pshglob.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshglob.h rename to lib/3rdparty/freetype/src/pshinter/pshglob.h diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshinter.c b/lib/3rdparty/freetype/src/pshinter/pshinter.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshinter.c rename to lib/3rdparty/freetype/src/pshinter/pshinter.c diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshmod.c b/lib/3rdparty/freetype/src/pshinter/pshmod.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshmod.c rename to lib/3rdparty/freetype/src/pshinter/pshmod.c diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshmod.h b/lib/3rdparty/freetype/src/pshinter/pshmod.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshmod.h rename to lib/3rdparty/freetype/src/pshinter/pshmod.h diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshnterr.h b/lib/3rdparty/freetype/src/pshinter/pshnterr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshnterr.h rename to lib/3rdparty/freetype/src/pshinter/pshnterr.h diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshpic.c b/lib/3rdparty/freetype/src/pshinter/pshpic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshpic.c rename to lib/3rdparty/freetype/src/pshinter/pshpic.c diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshpic.h b/lib/3rdparty/freetype/src/pshinter/pshpic.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshpic.h rename to lib/3rdparty/freetype/src/pshinter/pshpic.h diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshrec.c b/lib/3rdparty/freetype/src/pshinter/pshrec.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshrec.c rename to lib/3rdparty/freetype/src/pshinter/pshrec.c diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/pshrec.h b/lib/3rdparty/freetype/src/pshinter/pshrec.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/pshrec.h rename to lib/3rdparty/freetype/src/pshinter/pshrec.h diff --git a/reactos/lib/3rdparty/freetype/src/pshinter/rules.mk b/lib/3rdparty/freetype/src/pshinter/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/pshinter/rules.mk rename to lib/3rdparty/freetype/src/pshinter/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/psnames/Jamfile b/lib/3rdparty/freetype/src/psnames/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psnames/Jamfile rename to lib/3rdparty/freetype/src/psnames/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/psnames/module.mk b/lib/3rdparty/freetype/src/psnames/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psnames/module.mk rename to lib/3rdparty/freetype/src/psnames/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/psnames/psmodule.c b/lib/3rdparty/freetype/src/psnames/psmodule.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psnames/psmodule.c rename to lib/3rdparty/freetype/src/psnames/psmodule.c diff --git a/reactos/lib/3rdparty/freetype/src/psnames/psmodule.h b/lib/3rdparty/freetype/src/psnames/psmodule.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psnames/psmodule.h rename to lib/3rdparty/freetype/src/psnames/psmodule.h diff --git a/reactos/lib/3rdparty/freetype/src/psnames/psnamerr.h b/lib/3rdparty/freetype/src/psnames/psnamerr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psnames/psnamerr.h rename to lib/3rdparty/freetype/src/psnames/psnamerr.h diff --git a/reactos/lib/3rdparty/freetype/src/psnames/psnames.c b/lib/3rdparty/freetype/src/psnames/psnames.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psnames/psnames.c rename to lib/3rdparty/freetype/src/psnames/psnames.c diff --git a/reactos/lib/3rdparty/freetype/src/psnames/pspic.c b/lib/3rdparty/freetype/src/psnames/pspic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psnames/pspic.c rename to lib/3rdparty/freetype/src/psnames/pspic.c diff --git a/reactos/lib/3rdparty/freetype/src/psnames/pspic.h b/lib/3rdparty/freetype/src/psnames/pspic.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psnames/pspic.h rename to lib/3rdparty/freetype/src/psnames/pspic.h diff --git a/reactos/lib/3rdparty/freetype/src/psnames/pstables.h b/lib/3rdparty/freetype/src/psnames/pstables.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psnames/pstables.h rename to lib/3rdparty/freetype/src/psnames/pstables.h diff --git a/reactos/lib/3rdparty/freetype/src/psnames/rules.mk b/lib/3rdparty/freetype/src/psnames/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/psnames/rules.mk rename to lib/3rdparty/freetype/src/psnames/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/raster/Jamfile b/lib/3rdparty/freetype/src/raster/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/Jamfile rename to lib/3rdparty/freetype/src/raster/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/raster/ftmisc.h b/lib/3rdparty/freetype/src/raster/ftmisc.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/ftmisc.h rename to lib/3rdparty/freetype/src/raster/ftmisc.h diff --git a/reactos/lib/3rdparty/freetype/src/raster/ftraster.c b/lib/3rdparty/freetype/src/raster/ftraster.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/ftraster.c rename to lib/3rdparty/freetype/src/raster/ftraster.c diff --git a/reactos/lib/3rdparty/freetype/src/raster/ftraster.h b/lib/3rdparty/freetype/src/raster/ftraster.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/ftraster.h rename to lib/3rdparty/freetype/src/raster/ftraster.h diff --git a/reactos/lib/3rdparty/freetype/src/raster/ftrend1.c b/lib/3rdparty/freetype/src/raster/ftrend1.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/ftrend1.c rename to lib/3rdparty/freetype/src/raster/ftrend1.c diff --git a/reactos/lib/3rdparty/freetype/src/raster/ftrend1.h b/lib/3rdparty/freetype/src/raster/ftrend1.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/ftrend1.h rename to lib/3rdparty/freetype/src/raster/ftrend1.h diff --git a/reactos/lib/3rdparty/freetype/src/raster/module.mk b/lib/3rdparty/freetype/src/raster/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/module.mk rename to lib/3rdparty/freetype/src/raster/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/raster/raster.c b/lib/3rdparty/freetype/src/raster/raster.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/raster.c rename to lib/3rdparty/freetype/src/raster/raster.c diff --git a/reactos/lib/3rdparty/freetype/src/raster/rasterrs.h b/lib/3rdparty/freetype/src/raster/rasterrs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/rasterrs.h rename to lib/3rdparty/freetype/src/raster/rasterrs.h diff --git a/reactos/lib/3rdparty/freetype/src/raster/rastpic.c b/lib/3rdparty/freetype/src/raster/rastpic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/rastpic.c rename to lib/3rdparty/freetype/src/raster/rastpic.c diff --git a/reactos/lib/3rdparty/freetype/src/raster/rastpic.h b/lib/3rdparty/freetype/src/raster/rastpic.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/rastpic.h rename to lib/3rdparty/freetype/src/raster/rastpic.h diff --git a/reactos/lib/3rdparty/freetype/src/raster/rules.mk b/lib/3rdparty/freetype/src/raster/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/raster/rules.mk rename to lib/3rdparty/freetype/src/raster/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/Jamfile b/lib/3rdparty/freetype/src/sfnt/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/Jamfile rename to lib/3rdparty/freetype/src/sfnt/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/module.mk b/lib/3rdparty/freetype/src/sfnt/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/module.mk rename to lib/3rdparty/freetype/src/sfnt/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/rules.mk b/lib/3rdparty/freetype/src/sfnt/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/rules.mk rename to lib/3rdparty/freetype/src/sfnt/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.c b/lib/3rdparty/freetype/src/sfnt/sfdriver.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.c rename to lib/3rdparty/freetype/src/sfnt/sfdriver.c diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.h b/lib/3rdparty/freetype/src/sfnt/sfdriver.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.h rename to lib/3rdparty/freetype/src/sfnt/sfdriver.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sferrors.h b/lib/3rdparty/freetype/src/sfnt/sferrors.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/sferrors.h rename to lib/3rdparty/freetype/src/sfnt/sferrors.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfnt.c b/lib/3rdparty/freetype/src/sfnt/sfnt.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/sfnt.c rename to lib/3rdparty/freetype/src/sfnt/sfnt.c diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.c b/lib/3rdparty/freetype/src/sfnt/sfntpic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.c rename to lib/3rdparty/freetype/src/sfnt/sfntpic.c diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.h b/lib/3rdparty/freetype/src/sfnt/sfntpic.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.h rename to lib/3rdparty/freetype/src/sfnt/sfntpic.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.c b/lib/3rdparty/freetype/src/sfnt/sfobjs.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.c rename to lib/3rdparty/freetype/src/sfnt/sfobjs.c diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.h b/lib/3rdparty/freetype/src/sfnt/sfobjs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.h rename to lib/3rdparty/freetype/src/sfnt/sfobjs.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.c b/lib/3rdparty/freetype/src/sfnt/ttbdf.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.c rename to lib/3rdparty/freetype/src/sfnt/ttbdf.c diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.h b/lib/3rdparty/freetype/src/sfnt/ttbdf.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.h rename to lib/3rdparty/freetype/src/sfnt/ttbdf.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.c b/lib/3rdparty/freetype/src/sfnt/ttcmap.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.c rename to lib/3rdparty/freetype/src/sfnt/ttcmap.c diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.h b/lib/3rdparty/freetype/src/sfnt/ttcmap.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.h rename to lib/3rdparty/freetype/src/sfnt/ttcmap.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttcmapc.h b/lib/3rdparty/freetype/src/sfnt/ttcmapc.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttcmapc.h rename to lib/3rdparty/freetype/src/sfnt/ttcmapc.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttkern.c b/lib/3rdparty/freetype/src/sfnt/ttkern.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttkern.c rename to lib/3rdparty/freetype/src/sfnt/ttkern.c diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttkern.h b/lib/3rdparty/freetype/src/sfnt/ttkern.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttkern.h rename to lib/3rdparty/freetype/src/sfnt/ttkern.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttload.c b/lib/3rdparty/freetype/src/sfnt/ttload.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttload.c rename to lib/3rdparty/freetype/src/sfnt/ttload.c diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttload.h b/lib/3rdparty/freetype/src/sfnt/ttload.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttload.h rename to lib/3rdparty/freetype/src/sfnt/ttload.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.c b/lib/3rdparty/freetype/src/sfnt/ttmtx.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.c rename to lib/3rdparty/freetype/src/sfnt/ttmtx.c diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.h b/lib/3rdparty/freetype/src/sfnt/ttmtx.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.h rename to lib/3rdparty/freetype/src/sfnt/ttmtx.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttpost.c b/lib/3rdparty/freetype/src/sfnt/ttpost.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttpost.c rename to lib/3rdparty/freetype/src/sfnt/ttpost.c diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttpost.h b/lib/3rdparty/freetype/src/sfnt/ttpost.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttpost.h rename to lib/3rdparty/freetype/src/sfnt/ttpost.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.c b/lib/3rdparty/freetype/src/sfnt/ttsbit.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.c rename to lib/3rdparty/freetype/src/sfnt/ttsbit.c diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.h b/lib/3rdparty/freetype/src/sfnt/ttsbit.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.h rename to lib/3rdparty/freetype/src/sfnt/ttsbit.h diff --git a/reactos/lib/3rdparty/freetype/src/sfnt/ttsbit0.c b/lib/3rdparty/freetype/src/sfnt/ttsbit0.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/sfnt/ttsbit0.c rename to lib/3rdparty/freetype/src/sfnt/ttsbit0.c diff --git a/reactos/lib/3rdparty/freetype/src/smooth/Jamfile b/lib/3rdparty/freetype/src/smooth/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/smooth/Jamfile rename to lib/3rdparty/freetype/src/smooth/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftgrays.c b/lib/3rdparty/freetype/src/smooth/ftgrays.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/smooth/ftgrays.c rename to lib/3rdparty/freetype/src/smooth/ftgrays.c diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftgrays.h b/lib/3rdparty/freetype/src/smooth/ftgrays.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/smooth/ftgrays.h rename to lib/3rdparty/freetype/src/smooth/ftgrays.h diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftsmerrs.h b/lib/3rdparty/freetype/src/smooth/ftsmerrs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/smooth/ftsmerrs.h rename to lib/3rdparty/freetype/src/smooth/ftsmerrs.h diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.c b/lib/3rdparty/freetype/src/smooth/ftsmooth.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.c rename to lib/3rdparty/freetype/src/smooth/ftsmooth.c diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.h b/lib/3rdparty/freetype/src/smooth/ftsmooth.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.h rename to lib/3rdparty/freetype/src/smooth/ftsmooth.h diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftspic.c b/lib/3rdparty/freetype/src/smooth/ftspic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/smooth/ftspic.c rename to lib/3rdparty/freetype/src/smooth/ftspic.c diff --git a/reactos/lib/3rdparty/freetype/src/smooth/ftspic.h b/lib/3rdparty/freetype/src/smooth/ftspic.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/smooth/ftspic.h rename to lib/3rdparty/freetype/src/smooth/ftspic.h diff --git a/reactos/lib/3rdparty/freetype/src/smooth/module.mk b/lib/3rdparty/freetype/src/smooth/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/smooth/module.mk rename to lib/3rdparty/freetype/src/smooth/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/smooth/rules.mk b/lib/3rdparty/freetype/src/smooth/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/smooth/rules.mk rename to lib/3rdparty/freetype/src/smooth/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/smooth/smooth.c b/lib/3rdparty/freetype/src/smooth/smooth.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/smooth/smooth.c rename to lib/3rdparty/freetype/src/smooth/smooth.c diff --git a/reactos/lib/3rdparty/freetype/src/tools/Jamfile b/lib/3rdparty/freetype/src/tools/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/Jamfile rename to lib/3rdparty/freetype/src/tools/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/tools/apinames.c b/lib/3rdparty/freetype/src/tools/apinames.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/apinames.c rename to lib/3rdparty/freetype/src/tools/apinames.c diff --git a/reactos/lib/3rdparty/freetype/src/tools/chktrcmp.py b/lib/3rdparty/freetype/src/tools/chktrcmp.py similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/chktrcmp.py rename to lib/3rdparty/freetype/src/tools/chktrcmp.py diff --git a/reactos/lib/3rdparty/freetype/src/tools/cordic.py b/lib/3rdparty/freetype/src/tools/cordic.py similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/cordic.py rename to lib/3rdparty/freetype/src/tools/cordic.py diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/content.py b/lib/3rdparty/freetype/src/tools/docmaker/content.py similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/docmaker/content.py rename to lib/3rdparty/freetype/src/tools/docmaker/content.py diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/docbeauty.py b/lib/3rdparty/freetype/src/tools/docmaker/docbeauty.py similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/docmaker/docbeauty.py rename to lib/3rdparty/freetype/src/tools/docmaker/docbeauty.py diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/docmaker.py b/lib/3rdparty/freetype/src/tools/docmaker/docmaker.py similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/docmaker/docmaker.py rename to lib/3rdparty/freetype/src/tools/docmaker/docmaker.py diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/formatter.py b/lib/3rdparty/freetype/src/tools/docmaker/formatter.py similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/docmaker/formatter.py rename to lib/3rdparty/freetype/src/tools/docmaker/formatter.py diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/sources.py b/lib/3rdparty/freetype/src/tools/docmaker/sources.py similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/docmaker/sources.py rename to lib/3rdparty/freetype/src/tools/docmaker/sources.py diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/tohtml.py b/lib/3rdparty/freetype/src/tools/docmaker/tohtml.py similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/docmaker/tohtml.py rename to lib/3rdparty/freetype/src/tools/docmaker/tohtml.py diff --git a/reactos/lib/3rdparty/freetype/src/tools/docmaker/utils.py b/lib/3rdparty/freetype/src/tools/docmaker/utils.py similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/docmaker/utils.py rename to lib/3rdparty/freetype/src/tools/docmaker/utils.py diff --git a/reactos/lib/3rdparty/freetype/src/tools/ftrandom/Makefile b/lib/3rdparty/freetype/src/tools/ftrandom/Makefile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/ftrandom/Makefile rename to lib/3rdparty/freetype/src/tools/ftrandom/Makefile diff --git a/reactos/lib/3rdparty/freetype/src/tools/ftrandom/README b/lib/3rdparty/freetype/src/tools/ftrandom/README similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/ftrandom/README rename to lib/3rdparty/freetype/src/tools/ftrandom/README diff --git a/reactos/lib/3rdparty/freetype/src/tools/ftrandom/ftrandom.c b/lib/3rdparty/freetype/src/tools/ftrandom/ftrandom.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/ftrandom/ftrandom.c rename to lib/3rdparty/freetype/src/tools/ftrandom/ftrandom.c diff --git a/reactos/lib/3rdparty/freetype/src/tools/glnames.py b/lib/3rdparty/freetype/src/tools/glnames.py similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/glnames.py rename to lib/3rdparty/freetype/src/tools/glnames.py diff --git a/reactos/lib/3rdparty/freetype/src/tools/test_afm.c b/lib/3rdparty/freetype/src/tools/test_afm.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/test_afm.c rename to lib/3rdparty/freetype/src/tools/test_afm.c diff --git a/reactos/lib/3rdparty/freetype/src/tools/test_bbox.c b/lib/3rdparty/freetype/src/tools/test_bbox.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/test_bbox.c rename to lib/3rdparty/freetype/src/tools/test_bbox.c diff --git a/reactos/lib/3rdparty/freetype/src/tools/test_trig.c b/lib/3rdparty/freetype/src/tools/test_trig.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/tools/test_trig.c rename to lib/3rdparty/freetype/src/tools/test_trig.c diff --git a/reactos/lib/3rdparty/freetype/src/truetype/Jamfile b/lib/3rdparty/freetype/src/truetype/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/Jamfile rename to lib/3rdparty/freetype/src/truetype/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/truetype/module.mk b/lib/3rdparty/freetype/src/truetype/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/module.mk rename to lib/3rdparty/freetype/src/truetype/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/truetype/rules.mk b/lib/3rdparty/freetype/src/truetype/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/rules.mk rename to lib/3rdparty/freetype/src/truetype/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/truetype/truetype.c b/lib/3rdparty/freetype/src/truetype/truetype.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/truetype.c rename to lib/3rdparty/freetype/src/truetype/truetype.c diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttdriver.c b/lib/3rdparty/freetype/src/truetype/ttdriver.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttdriver.c rename to lib/3rdparty/freetype/src/truetype/ttdriver.c diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttdriver.h b/lib/3rdparty/freetype/src/truetype/ttdriver.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttdriver.h rename to lib/3rdparty/freetype/src/truetype/ttdriver.h diff --git a/reactos/lib/3rdparty/freetype/src/truetype/tterrors.h b/lib/3rdparty/freetype/src/truetype/tterrors.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/tterrors.h rename to lib/3rdparty/freetype/src/truetype/tterrors.h diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttgload.c b/lib/3rdparty/freetype/src/truetype/ttgload.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttgload.c rename to lib/3rdparty/freetype/src/truetype/ttgload.c diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttgload.c.old b/lib/3rdparty/freetype/src/truetype/ttgload.c.old similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttgload.c.old rename to lib/3rdparty/freetype/src/truetype/ttgload.c.old diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttgload.h b/lib/3rdparty/freetype/src/truetype/ttgload.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttgload.h rename to lib/3rdparty/freetype/src/truetype/ttgload.h diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.c b/lib/3rdparty/freetype/src/truetype/ttgxvar.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.c rename to lib/3rdparty/freetype/src/truetype/ttgxvar.c diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.h b/lib/3rdparty/freetype/src/truetype/ttgxvar.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.h rename to lib/3rdparty/freetype/src/truetype/ttgxvar.h diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttinterp.c b/lib/3rdparty/freetype/src/truetype/ttinterp.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttinterp.c rename to lib/3rdparty/freetype/src/truetype/ttinterp.c diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttinterp.h b/lib/3rdparty/freetype/src/truetype/ttinterp.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttinterp.h rename to lib/3rdparty/freetype/src/truetype/ttinterp.h diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttobjs.c b/lib/3rdparty/freetype/src/truetype/ttobjs.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttobjs.c rename to lib/3rdparty/freetype/src/truetype/ttobjs.c diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttobjs.h b/lib/3rdparty/freetype/src/truetype/ttobjs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttobjs.h rename to lib/3rdparty/freetype/src/truetype/ttobjs.h diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttpic.c b/lib/3rdparty/freetype/src/truetype/ttpic.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttpic.c rename to lib/3rdparty/freetype/src/truetype/ttpic.c diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttpic.h b/lib/3rdparty/freetype/src/truetype/ttpic.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttpic.h rename to lib/3rdparty/freetype/src/truetype/ttpic.h diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttpload.c b/lib/3rdparty/freetype/src/truetype/ttpload.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttpload.c rename to lib/3rdparty/freetype/src/truetype/ttpload.c diff --git a/reactos/lib/3rdparty/freetype/src/truetype/ttpload.h b/lib/3rdparty/freetype/src/truetype/ttpload.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/truetype/ttpload.h rename to lib/3rdparty/freetype/src/truetype/ttpload.h diff --git a/reactos/lib/3rdparty/freetype/src/type1/Jamfile b/lib/3rdparty/freetype/src/type1/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/Jamfile rename to lib/3rdparty/freetype/src/type1/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/type1/module.mk b/lib/3rdparty/freetype/src/type1/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/module.mk rename to lib/3rdparty/freetype/src/type1/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/type1/rules.mk b/lib/3rdparty/freetype/src/type1/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/rules.mk rename to lib/3rdparty/freetype/src/type1/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1afm.c b/lib/3rdparty/freetype/src/type1/t1afm.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1afm.c rename to lib/3rdparty/freetype/src/type1/t1afm.c diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1afm.h b/lib/3rdparty/freetype/src/type1/t1afm.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1afm.h rename to lib/3rdparty/freetype/src/type1/t1afm.h diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1driver.c b/lib/3rdparty/freetype/src/type1/t1driver.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1driver.c rename to lib/3rdparty/freetype/src/type1/t1driver.c diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1driver.h b/lib/3rdparty/freetype/src/type1/t1driver.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1driver.h rename to lib/3rdparty/freetype/src/type1/t1driver.h diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1errors.h b/lib/3rdparty/freetype/src/type1/t1errors.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1errors.h rename to lib/3rdparty/freetype/src/type1/t1errors.h diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1gload.c b/lib/3rdparty/freetype/src/type1/t1gload.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1gload.c rename to lib/3rdparty/freetype/src/type1/t1gload.c diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1gload.h b/lib/3rdparty/freetype/src/type1/t1gload.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1gload.h rename to lib/3rdparty/freetype/src/type1/t1gload.h diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1load.c b/lib/3rdparty/freetype/src/type1/t1load.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1load.c rename to lib/3rdparty/freetype/src/type1/t1load.c diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1load.h b/lib/3rdparty/freetype/src/type1/t1load.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1load.h rename to lib/3rdparty/freetype/src/type1/t1load.h diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1objs.c b/lib/3rdparty/freetype/src/type1/t1objs.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1objs.c rename to lib/3rdparty/freetype/src/type1/t1objs.c diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1objs.h b/lib/3rdparty/freetype/src/type1/t1objs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1objs.h rename to lib/3rdparty/freetype/src/type1/t1objs.h diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1parse.c b/lib/3rdparty/freetype/src/type1/t1parse.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1parse.c rename to lib/3rdparty/freetype/src/type1/t1parse.c diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1parse.h b/lib/3rdparty/freetype/src/type1/t1parse.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1parse.h rename to lib/3rdparty/freetype/src/type1/t1parse.h diff --git a/reactos/lib/3rdparty/freetype/src/type1/t1tokens.h b/lib/3rdparty/freetype/src/type1/t1tokens.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/t1tokens.h rename to lib/3rdparty/freetype/src/type1/t1tokens.h diff --git a/reactos/lib/3rdparty/freetype/src/type1/type1.c b/lib/3rdparty/freetype/src/type1/type1.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type1/type1.c rename to lib/3rdparty/freetype/src/type1/type1.c diff --git a/reactos/lib/3rdparty/freetype/src/type42/Jamfile b/lib/3rdparty/freetype/src/type42/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/Jamfile rename to lib/3rdparty/freetype/src/type42/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/type42/module.mk b/lib/3rdparty/freetype/src/type42/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/module.mk rename to lib/3rdparty/freetype/src/type42/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/type42/rules.mk b/lib/3rdparty/freetype/src/type42/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/rules.mk rename to lib/3rdparty/freetype/src/type42/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42drivr.c b/lib/3rdparty/freetype/src/type42/t42drivr.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/t42drivr.c rename to lib/3rdparty/freetype/src/type42/t42drivr.c diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42drivr.h b/lib/3rdparty/freetype/src/type42/t42drivr.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/t42drivr.h rename to lib/3rdparty/freetype/src/type42/t42drivr.h diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42error.h b/lib/3rdparty/freetype/src/type42/t42error.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/t42error.h rename to lib/3rdparty/freetype/src/type42/t42error.h diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42objs.c b/lib/3rdparty/freetype/src/type42/t42objs.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/t42objs.c rename to lib/3rdparty/freetype/src/type42/t42objs.c diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42objs.h b/lib/3rdparty/freetype/src/type42/t42objs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/t42objs.h rename to lib/3rdparty/freetype/src/type42/t42objs.h diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42parse.c b/lib/3rdparty/freetype/src/type42/t42parse.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/t42parse.c rename to lib/3rdparty/freetype/src/type42/t42parse.c diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42parse.h b/lib/3rdparty/freetype/src/type42/t42parse.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/t42parse.h rename to lib/3rdparty/freetype/src/type42/t42parse.h diff --git a/reactos/lib/3rdparty/freetype/src/type42/t42types.h b/lib/3rdparty/freetype/src/type42/t42types.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/t42types.h rename to lib/3rdparty/freetype/src/type42/t42types.h diff --git a/reactos/lib/3rdparty/freetype/src/type42/type42.c b/lib/3rdparty/freetype/src/type42/type42.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/type42/type42.c rename to lib/3rdparty/freetype/src/type42/type42.c diff --git a/reactos/lib/3rdparty/freetype/src/winfonts/Jamfile b/lib/3rdparty/freetype/src/winfonts/Jamfile similarity index 100% rename from reactos/lib/3rdparty/freetype/src/winfonts/Jamfile rename to lib/3rdparty/freetype/src/winfonts/Jamfile diff --git a/reactos/lib/3rdparty/freetype/src/winfonts/fnterrs.h b/lib/3rdparty/freetype/src/winfonts/fnterrs.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/winfonts/fnterrs.h rename to lib/3rdparty/freetype/src/winfonts/fnterrs.h diff --git a/reactos/lib/3rdparty/freetype/src/winfonts/module.mk b/lib/3rdparty/freetype/src/winfonts/module.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/winfonts/module.mk rename to lib/3rdparty/freetype/src/winfonts/module.mk diff --git a/reactos/lib/3rdparty/freetype/src/winfonts/rules.mk b/lib/3rdparty/freetype/src/winfonts/rules.mk similarity index 100% rename from reactos/lib/3rdparty/freetype/src/winfonts/rules.mk rename to lib/3rdparty/freetype/src/winfonts/rules.mk diff --git a/reactos/lib/3rdparty/freetype/src/winfonts/winfnt.c b/lib/3rdparty/freetype/src/winfonts/winfnt.c similarity index 100% rename from reactos/lib/3rdparty/freetype/src/winfonts/winfnt.c rename to lib/3rdparty/freetype/src/winfonts/winfnt.c diff --git a/reactos/lib/3rdparty/freetype/src/winfonts/winfnt.h b/lib/3rdparty/freetype/src/winfonts/winfnt.h similarity index 100% rename from reactos/lib/3rdparty/freetype/src/winfonts/winfnt.h rename to lib/3rdparty/freetype/src/winfonts/winfnt.h diff --git a/reactos/lib/3rdparty/freetype/version.sed b/lib/3rdparty/freetype/version.sed similarity index 100% rename from reactos/lib/3rdparty/freetype/version.sed rename to lib/3rdparty/freetype/version.sed diff --git a/reactos/lib/3rdparty/fullfat/CMakeLists.txt b/lib/3rdparty/fullfat/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/fullfat/CMakeLists.txt rename to lib/3rdparty/fullfat/CMakeLists.txt diff --git a/reactos/lib/3rdparty/fullfat/ff_blk.c b/lib/3rdparty/fullfat/ff_blk.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_blk.c rename to lib/3rdparty/fullfat/ff_blk.c diff --git a/reactos/lib/3rdparty/fullfat/ff_crc.c b/lib/3rdparty/fullfat/ff_crc.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_crc.c rename to lib/3rdparty/fullfat/ff_crc.c diff --git a/reactos/lib/3rdparty/fullfat/ff_dir.c b/lib/3rdparty/fullfat/ff_dir.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_dir.c rename to lib/3rdparty/fullfat/ff_dir.c diff --git a/reactos/lib/3rdparty/fullfat/ff_error.c b/lib/3rdparty/fullfat/ff_error.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_error.c rename to lib/3rdparty/fullfat/ff_error.c diff --git a/reactos/lib/3rdparty/fullfat/ff_fat.c b/lib/3rdparty/fullfat/ff_fat.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_fat.c rename to lib/3rdparty/fullfat/ff_fat.c diff --git a/reactos/lib/3rdparty/fullfat/ff_file.c b/lib/3rdparty/fullfat/ff_file.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_file.c rename to lib/3rdparty/fullfat/ff_file.c diff --git a/reactos/lib/3rdparty/fullfat/ff_format.c b/lib/3rdparty/fullfat/ff_format.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_format.c rename to lib/3rdparty/fullfat/ff_format.c diff --git a/reactos/lib/3rdparty/fullfat/ff_hash.c b/lib/3rdparty/fullfat/ff_hash.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_hash.c rename to lib/3rdparty/fullfat/ff_hash.c diff --git a/reactos/lib/3rdparty/fullfat/ff_ioman.c b/lib/3rdparty/fullfat/ff_ioman.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_ioman.c rename to lib/3rdparty/fullfat/ff_ioman.c diff --git a/reactos/lib/3rdparty/fullfat/ff_memory.c b/lib/3rdparty/fullfat/ff_memory.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_memory.c rename to lib/3rdparty/fullfat/ff_memory.c diff --git a/reactos/lib/3rdparty/fullfat/ff_safety.c b/lib/3rdparty/fullfat/ff_safety.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_safety.c rename to lib/3rdparty/fullfat/ff_safety.c diff --git a/reactos/lib/3rdparty/fullfat/ff_string.c b/lib/3rdparty/fullfat/ff_string.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_string.c rename to lib/3rdparty/fullfat/ff_string.c diff --git a/reactos/lib/3rdparty/fullfat/ff_time.c b/lib/3rdparty/fullfat/ff_time.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_time.c rename to lib/3rdparty/fullfat/ff_time.c diff --git a/reactos/lib/3rdparty/fullfat/ff_unicode.c b/lib/3rdparty/fullfat/ff_unicode.c similarity index 100% rename from reactos/lib/3rdparty/fullfat/ff_unicode.c rename to lib/3rdparty/fullfat/ff_unicode.c diff --git a/reactos/lib/3rdparty/libmpg123/CMakeLists.txt b/lib/3rdparty/libmpg123/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/libmpg123/CMakeLists.txt rename to lib/3rdparty/libmpg123/CMakeLists.txt diff --git a/reactos/lib/3rdparty/libmpg123/compat.c b/lib/3rdparty/libmpg123/compat.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/compat.c rename to lib/3rdparty/libmpg123/compat.c diff --git a/reactos/lib/3rdparty/libmpg123/dct36_3dnow.S b/lib/3rdparty/libmpg123/dct36_3dnow.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct36_3dnow.S rename to lib/3rdparty/libmpg123/dct36_3dnow.S diff --git a/reactos/lib/3rdparty/libmpg123/dct36_3dnowext.S b/lib/3rdparty/libmpg123/dct36_3dnowext.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct36_3dnowext.S rename to lib/3rdparty/libmpg123/dct36_3dnowext.S diff --git a/reactos/lib/3rdparty/libmpg123/dct64.c b/lib/3rdparty/libmpg123/dct64.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct64.c rename to lib/3rdparty/libmpg123/dct64.c diff --git a/reactos/lib/3rdparty/libmpg123/dct64_3dnow.S b/lib/3rdparty/libmpg123/dct64_3dnow.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct64_3dnow.S rename to lib/3rdparty/libmpg123/dct64_3dnow.S diff --git a/reactos/lib/3rdparty/libmpg123/dct64_3dnowext.S b/lib/3rdparty/libmpg123/dct64_3dnowext.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct64_3dnowext.S rename to lib/3rdparty/libmpg123/dct64_3dnowext.S diff --git a/reactos/lib/3rdparty/libmpg123/dct64_altivec.c b/lib/3rdparty/libmpg123/dct64_altivec.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct64_altivec.c rename to lib/3rdparty/libmpg123/dct64_altivec.c diff --git a/reactos/lib/3rdparty/libmpg123/dct64_i386.c b/lib/3rdparty/libmpg123/dct64_i386.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct64_i386.c rename to lib/3rdparty/libmpg123/dct64_i386.c diff --git a/reactos/lib/3rdparty/libmpg123/dct64_i486.c b/lib/3rdparty/libmpg123/dct64_i486.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct64_i486.c rename to lib/3rdparty/libmpg123/dct64_i486.c diff --git a/reactos/lib/3rdparty/libmpg123/dct64_mmx.S b/lib/3rdparty/libmpg123/dct64_mmx.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct64_mmx.S rename to lib/3rdparty/libmpg123/dct64_mmx.S diff --git a/reactos/lib/3rdparty/libmpg123/dct64_sse.S b/lib/3rdparty/libmpg123/dct64_sse.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct64_sse.S rename to lib/3rdparty/libmpg123/dct64_sse.S diff --git a/reactos/lib/3rdparty/libmpg123/dct64_sse_float.S b/lib/3rdparty/libmpg123/dct64_sse_float.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct64_sse_float.S rename to lib/3rdparty/libmpg123/dct64_sse_float.S diff --git a/reactos/lib/3rdparty/libmpg123/dct64_x86_64.S b/lib/3rdparty/libmpg123/dct64_x86_64.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct64_x86_64.S rename to lib/3rdparty/libmpg123/dct64_x86_64.S diff --git a/reactos/lib/3rdparty/libmpg123/dct64_x86_64_float.S b/lib/3rdparty/libmpg123/dct64_x86_64_float.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dct64_x86_64_float.S rename to lib/3rdparty/libmpg123/dct64_x86_64_float.S diff --git a/reactos/lib/3rdparty/libmpg123/dither.c b/lib/3rdparty/libmpg123/dither.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/dither.c rename to lib/3rdparty/libmpg123/dither.c diff --git a/reactos/lib/3rdparty/libmpg123/equalizer.c b/lib/3rdparty/libmpg123/equalizer.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/equalizer.c rename to lib/3rdparty/libmpg123/equalizer.c diff --git a/reactos/lib/3rdparty/libmpg123/equalizer_3dnow.S b/lib/3rdparty/libmpg123/equalizer_3dnow.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/equalizer_3dnow.S rename to lib/3rdparty/libmpg123/equalizer_3dnow.S diff --git a/reactos/lib/3rdparty/libmpg123/feature.c b/lib/3rdparty/libmpg123/feature.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/feature.c rename to lib/3rdparty/libmpg123/feature.c diff --git a/reactos/lib/3rdparty/libmpg123/format.c b/lib/3rdparty/libmpg123/format.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/format.c rename to lib/3rdparty/libmpg123/format.c diff --git a/reactos/lib/3rdparty/libmpg123/frame.c b/lib/3rdparty/libmpg123/frame.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/frame.c rename to lib/3rdparty/libmpg123/frame.c diff --git a/reactos/lib/3rdparty/libmpg123/getcpuflags.S b/lib/3rdparty/libmpg123/getcpuflags.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/getcpuflags.S rename to lib/3rdparty/libmpg123/getcpuflags.S diff --git a/reactos/lib/3rdparty/libmpg123/icy.c b/lib/3rdparty/libmpg123/icy.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/icy.c rename to lib/3rdparty/libmpg123/icy.c diff --git a/reactos/lib/3rdparty/libmpg123/icy2utf8.c b/lib/3rdparty/libmpg123/icy2utf8.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/icy2utf8.c rename to lib/3rdparty/libmpg123/icy2utf8.c diff --git a/reactos/lib/3rdparty/libmpg123/id3.c b/lib/3rdparty/libmpg123/id3.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/id3.c rename to lib/3rdparty/libmpg123/id3.c diff --git a/reactos/lib/3rdparty/libmpg123/index.c b/lib/3rdparty/libmpg123/index.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/index.c rename to lib/3rdparty/libmpg123/index.c diff --git a/reactos/lib/3rdparty/libmpg123/layer1.c b/lib/3rdparty/libmpg123/layer1.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/layer1.c rename to lib/3rdparty/libmpg123/layer1.c diff --git a/reactos/lib/3rdparty/libmpg123/layer2.c b/lib/3rdparty/libmpg123/layer2.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/layer2.c rename to lib/3rdparty/libmpg123/layer2.c diff --git a/reactos/lib/3rdparty/libmpg123/layer3.c b/lib/3rdparty/libmpg123/layer3.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/layer3.c rename to lib/3rdparty/libmpg123/layer3.c diff --git a/reactos/lib/3rdparty/libmpg123/lfs_alias.c b/lib/3rdparty/libmpg123/lfs_alias.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/lfs_alias.c rename to lib/3rdparty/libmpg123/lfs_alias.c diff --git a/reactos/lib/3rdparty/libmpg123/lfs_wrap.c b/lib/3rdparty/libmpg123/lfs_wrap.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/lfs_wrap.c rename to lib/3rdparty/libmpg123/lfs_wrap.c diff --git a/reactos/lib/3rdparty/libmpg123/libmpg123.c b/lib/3rdparty/libmpg123/libmpg123.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/libmpg123.c rename to lib/3rdparty/libmpg123/libmpg123.c diff --git a/reactos/lib/3rdparty/libmpg123/ntom.c b/lib/3rdparty/libmpg123/ntom.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/ntom.c rename to lib/3rdparty/libmpg123/ntom.c diff --git a/reactos/lib/3rdparty/libmpg123/optimize.c b/lib/3rdparty/libmpg123/optimize.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/optimize.c rename to lib/3rdparty/libmpg123/optimize.c diff --git a/reactos/lib/3rdparty/libmpg123/parse.c b/lib/3rdparty/libmpg123/parse.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/parse.c rename to lib/3rdparty/libmpg123/parse.c diff --git a/reactos/lib/3rdparty/libmpg123/readers.c b/lib/3rdparty/libmpg123/readers.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/readers.c rename to lib/3rdparty/libmpg123/readers.c diff --git a/reactos/lib/3rdparty/libmpg123/stringbuf.c b/lib/3rdparty/libmpg123/stringbuf.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/stringbuf.c rename to lib/3rdparty/libmpg123/stringbuf.c diff --git a/reactos/lib/3rdparty/libmpg123/synth.c b/lib/3rdparty/libmpg123/synth.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth.c rename to lib/3rdparty/libmpg123/synth.c diff --git a/reactos/lib/3rdparty/libmpg123/synth_3dnow.S b/lib/3rdparty/libmpg123/synth_3dnow.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_3dnow.S rename to lib/3rdparty/libmpg123/synth_3dnow.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_3dnowext.S b/lib/3rdparty/libmpg123/synth_3dnowext.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_3dnowext.S rename to lib/3rdparty/libmpg123/synth_3dnowext.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_8bit.c b/lib/3rdparty/libmpg123/synth_8bit.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_8bit.c rename to lib/3rdparty/libmpg123/synth_8bit.c diff --git a/reactos/lib/3rdparty/libmpg123/synth_altivec.c b/lib/3rdparty/libmpg123/synth_altivec.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_altivec.c rename to lib/3rdparty/libmpg123/synth_altivec.c diff --git a/reactos/lib/3rdparty/libmpg123/synth_arm.S b/lib/3rdparty/libmpg123/synth_arm.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_arm.S rename to lib/3rdparty/libmpg123/synth_arm.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_arm_accurate.S b/lib/3rdparty/libmpg123/synth_arm_accurate.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_arm_accurate.S rename to lib/3rdparty/libmpg123/synth_arm_accurate.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_i486.c b/lib/3rdparty/libmpg123/synth_i486.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_i486.c rename to lib/3rdparty/libmpg123/synth_i486.c diff --git a/reactos/lib/3rdparty/libmpg123/synth_i586.S b/lib/3rdparty/libmpg123/synth_i586.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_i586.S rename to lib/3rdparty/libmpg123/synth_i586.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_i586_dither.S b/lib/3rdparty/libmpg123/synth_i586_dither.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_i586_dither.S rename to lib/3rdparty/libmpg123/synth_i586_dither.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_mmx.S b/lib/3rdparty/libmpg123/synth_mmx.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_mmx.S rename to lib/3rdparty/libmpg123/synth_mmx.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_real.c b/lib/3rdparty/libmpg123/synth_real.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_real.c rename to lib/3rdparty/libmpg123/synth_real.c diff --git a/reactos/lib/3rdparty/libmpg123/synth_s32.c b/lib/3rdparty/libmpg123/synth_s32.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_s32.c rename to lib/3rdparty/libmpg123/synth_s32.c diff --git a/reactos/lib/3rdparty/libmpg123/synth_sse.S b/lib/3rdparty/libmpg123/synth_sse.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_sse.S rename to lib/3rdparty/libmpg123/synth_sse.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_sse_accurate.S b/lib/3rdparty/libmpg123/synth_sse_accurate.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_sse_accurate.S rename to lib/3rdparty/libmpg123/synth_sse_accurate.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_sse_float.S b/lib/3rdparty/libmpg123/synth_sse_float.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_sse_float.S rename to lib/3rdparty/libmpg123/synth_sse_float.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_sse_s32.S b/lib/3rdparty/libmpg123/synth_sse_s32.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_sse_s32.S rename to lib/3rdparty/libmpg123/synth_sse_s32.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_stereo_sse_accurate.S b/lib/3rdparty/libmpg123/synth_stereo_sse_accurate.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_stereo_sse_accurate.S rename to lib/3rdparty/libmpg123/synth_stereo_sse_accurate.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_stereo_sse_float.S b/lib/3rdparty/libmpg123/synth_stereo_sse_float.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_stereo_sse_float.S rename to lib/3rdparty/libmpg123/synth_stereo_sse_float.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_stereo_sse_s32.S b/lib/3rdparty/libmpg123/synth_stereo_sse_s32.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_stereo_sse_s32.S rename to lib/3rdparty/libmpg123/synth_stereo_sse_s32.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_stereo_x86_64.S b/lib/3rdparty/libmpg123/synth_stereo_x86_64.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_stereo_x86_64.S rename to lib/3rdparty/libmpg123/synth_stereo_x86_64.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_stereo_x86_64_accurate.S b/lib/3rdparty/libmpg123/synth_stereo_x86_64_accurate.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_stereo_x86_64_accurate.S rename to lib/3rdparty/libmpg123/synth_stereo_x86_64_accurate.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_stereo_x86_64_float.S b/lib/3rdparty/libmpg123/synth_stereo_x86_64_float.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_stereo_x86_64_float.S rename to lib/3rdparty/libmpg123/synth_stereo_x86_64_float.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_stereo_x86_64_s32.S b/lib/3rdparty/libmpg123/synth_stereo_x86_64_s32.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_stereo_x86_64_s32.S rename to lib/3rdparty/libmpg123/synth_stereo_x86_64_s32.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_x86_64.S b/lib/3rdparty/libmpg123/synth_x86_64.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_x86_64.S rename to lib/3rdparty/libmpg123/synth_x86_64.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_x86_64_accurate.S b/lib/3rdparty/libmpg123/synth_x86_64_accurate.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_x86_64_accurate.S rename to lib/3rdparty/libmpg123/synth_x86_64_accurate.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_x86_64_float.S b/lib/3rdparty/libmpg123/synth_x86_64_float.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_x86_64_float.S rename to lib/3rdparty/libmpg123/synth_x86_64_float.S diff --git a/reactos/lib/3rdparty/libmpg123/synth_x86_64_s32.S b/lib/3rdparty/libmpg123/synth_x86_64_s32.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/synth_x86_64_s32.S rename to lib/3rdparty/libmpg123/synth_x86_64_s32.S diff --git a/reactos/lib/3rdparty/libmpg123/tabinit.c b/lib/3rdparty/libmpg123/tabinit.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/tabinit.c rename to lib/3rdparty/libmpg123/tabinit.c diff --git a/reactos/lib/3rdparty/libmpg123/tabinit_mmx.S b/lib/3rdparty/libmpg123/tabinit_mmx.S similarity index 100% rename from reactos/lib/3rdparty/libmpg123/tabinit_mmx.S rename to lib/3rdparty/libmpg123/tabinit_mmx.S diff --git a/reactos/lib/3rdparty/libmpg123/testcpu.c b/lib/3rdparty/libmpg123/testcpu.c similarity index 100% rename from reactos/lib/3rdparty/libmpg123/testcpu.c rename to lib/3rdparty/libmpg123/testcpu.c diff --git a/reactos/lib/3rdparty/libsamplerate/CMakeLists.txt b/lib/3rdparty/libsamplerate/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/CMakeLists.txt rename to lib/3rdparty/libsamplerate/CMakeLists.txt diff --git a/reactos/lib/3rdparty/libsamplerate/common.h b/lib/3rdparty/libsamplerate/common.h similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/common.h rename to lib/3rdparty/libsamplerate/common.h diff --git a/reactos/lib/3rdparty/libsamplerate/config.h b/lib/3rdparty/libsamplerate/config.h similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/config.h rename to lib/3rdparty/libsamplerate/config.h diff --git a/reactos/lib/3rdparty/libsamplerate/fastest_coeffs.h b/lib/3rdparty/libsamplerate/fastest_coeffs.h similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/fastest_coeffs.h rename to lib/3rdparty/libsamplerate/fastest_coeffs.h diff --git a/reactos/lib/3rdparty/libsamplerate/float_cast.h b/lib/3rdparty/libsamplerate/float_cast.h similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/float_cast.h rename to lib/3rdparty/libsamplerate/float_cast.h diff --git a/reactos/lib/3rdparty/libsamplerate/high_qual_coeffs.h b/lib/3rdparty/libsamplerate/high_qual_coeffs.h similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/high_qual_coeffs.h rename to lib/3rdparty/libsamplerate/high_qual_coeffs.h diff --git a/reactos/lib/3rdparty/libsamplerate/mid_qual_coeffs.h b/lib/3rdparty/libsamplerate/mid_qual_coeffs.h similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/mid_qual_coeffs.h rename to lib/3rdparty/libsamplerate/mid_qual_coeffs.h diff --git a/reactos/lib/3rdparty/libsamplerate/samplerate.c b/lib/3rdparty/libsamplerate/samplerate.c similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/samplerate.c rename to lib/3rdparty/libsamplerate/samplerate.c diff --git a/reactos/lib/3rdparty/libsamplerate/samplerate.h b/lib/3rdparty/libsamplerate/samplerate.h similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/samplerate.h rename to lib/3rdparty/libsamplerate/samplerate.h diff --git a/reactos/lib/3rdparty/libsamplerate/src_linear.c b/lib/3rdparty/libsamplerate/src_linear.c similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/src_linear.c rename to lib/3rdparty/libsamplerate/src_linear.c diff --git a/reactos/lib/3rdparty/libsamplerate/src_sinc.c b/lib/3rdparty/libsamplerate/src_sinc.c similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/src_sinc.c rename to lib/3rdparty/libsamplerate/src_sinc.c diff --git a/reactos/lib/3rdparty/libsamplerate/src_zoh.c b/lib/3rdparty/libsamplerate/src_zoh.c similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/src_zoh.c rename to lib/3rdparty/libsamplerate/src_zoh.c diff --git a/reactos/lib/3rdparty/libsamplerate/unistd.h b/lib/3rdparty/libsamplerate/unistd.h similarity index 100% rename from reactos/lib/3rdparty/libsamplerate/unistd.h rename to lib/3rdparty/libsamplerate/unistd.h diff --git a/reactos/lib/3rdparty/libwine/CMakeLists.txt b/lib/3rdparty/libwine/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/libwine/CMakeLists.txt rename to lib/3rdparty/libwine/CMakeLists.txt diff --git a/reactos/lib/3rdparty/libwine/config.c b/lib/3rdparty/libwine/config.c similarity index 100% rename from reactos/lib/3rdparty/libwine/config.c rename to lib/3rdparty/libwine/config.c diff --git a/reactos/lib/3rdparty/libwine/debug.c b/lib/3rdparty/libwine/debug.c similarity index 100% rename from reactos/lib/3rdparty/libwine/debug.c rename to lib/3rdparty/libwine/debug.c diff --git a/reactos/lib/3rdparty/libwine/debug_ros.c b/lib/3rdparty/libwine/debug_ros.c similarity index 100% rename from reactos/lib/3rdparty/libwine/debug_ros.c rename to lib/3rdparty/libwine/debug_ros.c diff --git a/reactos/lib/3rdparty/libwine/isinf.c b/lib/3rdparty/libwine/isinf.c similarity index 100% rename from reactos/lib/3rdparty/libwine/isinf.c rename to lib/3rdparty/libwine/isinf.c diff --git a/reactos/lib/3rdparty/libwine/isnan.c b/lib/3rdparty/libwine/isnan.c similarity index 100% rename from reactos/lib/3rdparty/libwine/isnan.c rename to lib/3rdparty/libwine/isnan.c diff --git a/reactos/lib/3rdparty/libwine/loader.c b/lib/3rdparty/libwine/loader.c similarity index 100% rename from reactos/lib/3rdparty/libwine/loader.c rename to lib/3rdparty/libwine/loader.c diff --git a/reactos/lib/3rdparty/libwine/register.c b/lib/3rdparty/libwine/register.c similarity index 100% rename from reactos/lib/3rdparty/libwine/register.c rename to lib/3rdparty/libwine/register.c diff --git a/reactos/lib/3rdparty/libwine/string.c b/lib/3rdparty/libwine/string.c similarity index 100% rename from reactos/lib/3rdparty/libwine/string.c rename to lib/3rdparty/libwine/string.c diff --git a/reactos/lib/3rdparty/libxml2/AUTHORS b/lib/3rdparty/libxml2/AUTHORS similarity index 100% rename from reactos/lib/3rdparty/libxml2/AUTHORS rename to lib/3rdparty/libxml2/AUTHORS diff --git a/reactos/lib/3rdparty/libxml2/CMakeLists.txt b/lib/3rdparty/libxml2/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/libxml2/CMakeLists.txt rename to lib/3rdparty/libxml2/CMakeLists.txt diff --git a/reactos/lib/3rdparty/libxml2/COPYING b/lib/3rdparty/libxml2/COPYING similarity index 100% rename from reactos/lib/3rdparty/libxml2/COPYING rename to lib/3rdparty/libxml2/COPYING diff --git a/reactos/lib/3rdparty/libxml2/ChangeLog b/lib/3rdparty/libxml2/ChangeLog similarity index 100% rename from reactos/lib/3rdparty/libxml2/ChangeLog rename to lib/3rdparty/libxml2/ChangeLog diff --git a/reactos/lib/3rdparty/libxml2/Copyright b/lib/3rdparty/libxml2/Copyright similarity index 100% rename from reactos/lib/3rdparty/libxml2/Copyright rename to lib/3rdparty/libxml2/Copyright diff --git a/reactos/lib/3rdparty/libxml2/DOCBparser.c b/lib/3rdparty/libxml2/DOCBparser.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/DOCBparser.c rename to lib/3rdparty/libxml2/DOCBparser.c diff --git a/reactos/lib/3rdparty/libxml2/HTMLparser.c b/lib/3rdparty/libxml2/HTMLparser.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/HTMLparser.c rename to lib/3rdparty/libxml2/HTMLparser.c diff --git a/reactos/lib/3rdparty/libxml2/HTMLtree.c b/lib/3rdparty/libxml2/HTMLtree.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/HTMLtree.c rename to lib/3rdparty/libxml2/HTMLtree.c diff --git a/reactos/lib/3rdparty/libxml2/INSTALL b/lib/3rdparty/libxml2/INSTALL similarity index 100% rename from reactos/lib/3rdparty/libxml2/INSTALL rename to lib/3rdparty/libxml2/INSTALL diff --git a/reactos/lib/3rdparty/libxml2/Makefile.am b/lib/3rdparty/libxml2/Makefile.am similarity index 100% rename from reactos/lib/3rdparty/libxml2/Makefile.am rename to lib/3rdparty/libxml2/Makefile.am diff --git a/reactos/lib/3rdparty/libxml2/Makefile.in b/lib/3rdparty/libxml2/Makefile.in similarity index 100% rename from reactos/lib/3rdparty/libxml2/Makefile.in rename to lib/3rdparty/libxml2/Makefile.in diff --git a/reactos/lib/3rdparty/libxml2/Makefile.tests b/lib/3rdparty/libxml2/Makefile.tests similarity index 100% rename from reactos/lib/3rdparty/libxml2/Makefile.tests rename to lib/3rdparty/libxml2/Makefile.tests diff --git a/reactos/lib/3rdparty/libxml2/NEWS b/lib/3rdparty/libxml2/NEWS similarity index 100% rename from reactos/lib/3rdparty/libxml2/NEWS rename to lib/3rdparty/libxml2/NEWS diff --git a/reactos/lib/3rdparty/libxml2/README b/lib/3rdparty/libxml2/README similarity index 100% rename from reactos/lib/3rdparty/libxml2/README rename to lib/3rdparty/libxml2/README diff --git a/reactos/lib/3rdparty/libxml2/README.tests b/lib/3rdparty/libxml2/README.tests similarity index 100% rename from reactos/lib/3rdparty/libxml2/README.tests rename to lib/3rdparty/libxml2/README.tests diff --git a/reactos/lib/3rdparty/libxml2/SAX.c b/lib/3rdparty/libxml2/SAX.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/SAX.c rename to lib/3rdparty/libxml2/SAX.c diff --git a/reactos/lib/3rdparty/libxml2/SAX2.c b/lib/3rdparty/libxml2/SAX2.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/SAX2.c rename to lib/3rdparty/libxml2/SAX2.c diff --git a/reactos/lib/3rdparty/libxml2/TODO b/lib/3rdparty/libxml2/TODO similarity index 100% rename from reactos/lib/3rdparty/libxml2/TODO rename to lib/3rdparty/libxml2/TODO diff --git a/reactos/lib/3rdparty/libxml2/TODO_SCHEMAS b/lib/3rdparty/libxml2/TODO_SCHEMAS similarity index 100% rename from reactos/lib/3rdparty/libxml2/TODO_SCHEMAS rename to lib/3rdparty/libxml2/TODO_SCHEMAS diff --git a/reactos/lib/3rdparty/libxml2/acconfig.h b/lib/3rdparty/libxml2/acconfig.h similarity index 100% rename from reactos/lib/3rdparty/libxml2/acconfig.h rename to lib/3rdparty/libxml2/acconfig.h diff --git a/reactos/lib/3rdparty/libxml2/acinclude.m4 b/lib/3rdparty/libxml2/acinclude.m4 similarity index 100% rename from reactos/lib/3rdparty/libxml2/acinclude.m4 rename to lib/3rdparty/libxml2/acinclude.m4 diff --git a/reactos/lib/3rdparty/libxml2/aclocal.m4 b/lib/3rdparty/libxml2/aclocal.m4 similarity index 100% rename from reactos/lib/3rdparty/libxml2/aclocal.m4 rename to lib/3rdparty/libxml2/aclocal.m4 diff --git a/reactos/lib/3rdparty/libxml2/c14n.c b/lib/3rdparty/libxml2/c14n.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/c14n.c rename to lib/3rdparty/libxml2/c14n.c diff --git a/reactos/lib/3rdparty/libxml2/catalog.c b/lib/3rdparty/libxml2/catalog.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/catalog.c rename to lib/3rdparty/libxml2/catalog.c diff --git a/reactos/lib/3rdparty/libxml2/check-relaxng-test-suite.py b/lib/3rdparty/libxml2/check-relaxng-test-suite.py similarity index 100% rename from reactos/lib/3rdparty/libxml2/check-relaxng-test-suite.py rename to lib/3rdparty/libxml2/check-relaxng-test-suite.py diff --git a/reactos/lib/3rdparty/libxml2/check-relaxng-test-suite2.py b/lib/3rdparty/libxml2/check-relaxng-test-suite2.py similarity index 100% rename from reactos/lib/3rdparty/libxml2/check-relaxng-test-suite2.py rename to lib/3rdparty/libxml2/check-relaxng-test-suite2.py diff --git a/reactos/lib/3rdparty/libxml2/check-xinclude-test-suite.py b/lib/3rdparty/libxml2/check-xinclude-test-suite.py similarity index 100% rename from reactos/lib/3rdparty/libxml2/check-xinclude-test-suite.py rename to lib/3rdparty/libxml2/check-xinclude-test-suite.py diff --git a/reactos/lib/3rdparty/libxml2/check-xml-test-suite.py b/lib/3rdparty/libxml2/check-xml-test-suite.py similarity index 100% rename from reactos/lib/3rdparty/libxml2/check-xml-test-suite.py rename to lib/3rdparty/libxml2/check-xml-test-suite.py diff --git a/reactos/lib/3rdparty/libxml2/check-xsddata-test-suite.py b/lib/3rdparty/libxml2/check-xsddata-test-suite.py similarity index 100% rename from reactos/lib/3rdparty/libxml2/check-xsddata-test-suite.py rename to lib/3rdparty/libxml2/check-xsddata-test-suite.py diff --git a/reactos/lib/3rdparty/libxml2/chvalid.c b/lib/3rdparty/libxml2/chvalid.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/chvalid.c rename to lib/3rdparty/libxml2/chvalid.c diff --git a/reactos/lib/3rdparty/libxml2/config.guess b/lib/3rdparty/libxml2/config.guess similarity index 100% rename from reactos/lib/3rdparty/libxml2/config.guess rename to lib/3rdparty/libxml2/config.guess diff --git a/reactos/lib/3rdparty/libxml2/config.h b/lib/3rdparty/libxml2/config.h similarity index 100% rename from reactos/lib/3rdparty/libxml2/config.h rename to lib/3rdparty/libxml2/config.h diff --git a/reactos/lib/3rdparty/libxml2/config.h.in b/lib/3rdparty/libxml2/config.h.in similarity index 100% rename from reactos/lib/3rdparty/libxml2/config.h.in rename to lib/3rdparty/libxml2/config.h.in diff --git a/reactos/lib/3rdparty/libxml2/config.sub b/lib/3rdparty/libxml2/config.sub similarity index 100% rename from reactos/lib/3rdparty/libxml2/config.sub rename to lib/3rdparty/libxml2/config.sub diff --git a/reactos/lib/3rdparty/libxml2/configure b/lib/3rdparty/libxml2/configure similarity index 100% rename from reactos/lib/3rdparty/libxml2/configure rename to lib/3rdparty/libxml2/configure diff --git a/reactos/lib/3rdparty/libxml2/configure.in b/lib/3rdparty/libxml2/configure.in similarity index 100% rename from reactos/lib/3rdparty/libxml2/configure.in rename to lib/3rdparty/libxml2/configure.in diff --git a/reactos/lib/3rdparty/libxml2/dbgen.pl b/lib/3rdparty/libxml2/dbgen.pl similarity index 100% rename from reactos/lib/3rdparty/libxml2/dbgen.pl rename to lib/3rdparty/libxml2/dbgen.pl diff --git a/reactos/lib/3rdparty/libxml2/dbgenattr.pl b/lib/3rdparty/libxml2/dbgenattr.pl similarity index 100% rename from reactos/lib/3rdparty/libxml2/dbgenattr.pl rename to lib/3rdparty/libxml2/dbgenattr.pl diff --git a/reactos/lib/3rdparty/libxml2/debugXML.c b/lib/3rdparty/libxml2/debugXML.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/debugXML.c rename to lib/3rdparty/libxml2/debugXML.c diff --git a/reactos/lib/3rdparty/libxml2/depcomp b/lib/3rdparty/libxml2/depcomp similarity index 100% rename from reactos/lib/3rdparty/libxml2/depcomp rename to lib/3rdparty/libxml2/depcomp diff --git a/reactos/lib/3rdparty/libxml2/dict.c b/lib/3rdparty/libxml2/dict.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/dict.c rename to lib/3rdparty/libxml2/dict.c diff --git a/reactos/lib/3rdparty/libxml2/elfgcchack.h b/lib/3rdparty/libxml2/elfgcchack.h similarity index 100% rename from reactos/lib/3rdparty/libxml2/elfgcchack.h rename to lib/3rdparty/libxml2/elfgcchack.h diff --git a/reactos/lib/3rdparty/libxml2/encoding.c b/lib/3rdparty/libxml2/encoding.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/encoding.c rename to lib/3rdparty/libxml2/encoding.c diff --git a/reactos/lib/3rdparty/libxml2/entities.c b/lib/3rdparty/libxml2/entities.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/entities.c rename to lib/3rdparty/libxml2/entities.c diff --git a/reactos/lib/3rdparty/libxml2/error.c b/lib/3rdparty/libxml2/error.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/error.c rename to lib/3rdparty/libxml2/error.c diff --git a/reactos/lib/3rdparty/libxml2/genUnicode.py b/lib/3rdparty/libxml2/genUnicode.py similarity index 100% rename from reactos/lib/3rdparty/libxml2/genUnicode.py rename to lib/3rdparty/libxml2/genUnicode.py diff --git a/reactos/lib/3rdparty/libxml2/gentest.py b/lib/3rdparty/libxml2/gentest.py similarity index 100% rename from reactos/lib/3rdparty/libxml2/gentest.py rename to lib/3rdparty/libxml2/gentest.py diff --git a/reactos/lib/3rdparty/libxml2/globals.c b/lib/3rdparty/libxml2/globals.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/globals.c rename to lib/3rdparty/libxml2/globals.c diff --git a/reactos/lib/3rdparty/libxml2/hash.c b/lib/3rdparty/libxml2/hash.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/hash.c rename to lib/3rdparty/libxml2/hash.c diff --git a/reactos/lib/3rdparty/libxml2/include/Makefile.am b/lib/3rdparty/libxml2/include/Makefile.am similarity index 100% rename from reactos/lib/3rdparty/libxml2/include/Makefile.am rename to lib/3rdparty/libxml2/include/Makefile.am diff --git a/reactos/lib/3rdparty/libxml2/include/Makefile.in b/lib/3rdparty/libxml2/include/Makefile.in similarity index 100% rename from reactos/lib/3rdparty/libxml2/include/Makefile.in rename to lib/3rdparty/libxml2/include/Makefile.in diff --git a/reactos/lib/3rdparty/libxml2/include/win32config.h b/lib/3rdparty/libxml2/include/win32config.h similarity index 100% rename from reactos/lib/3rdparty/libxml2/include/win32config.h rename to lib/3rdparty/libxml2/include/win32config.h diff --git a/reactos/lib/3rdparty/libxml2/include/wsockcompat.h b/lib/3rdparty/libxml2/include/wsockcompat.h similarity index 100% rename from reactos/lib/3rdparty/libxml2/include/wsockcompat.h rename to lib/3rdparty/libxml2/include/wsockcompat.h diff --git a/reactos/lib/3rdparty/libxml2/install-sh b/lib/3rdparty/libxml2/install-sh similarity index 100% rename from reactos/lib/3rdparty/libxml2/install-sh rename to lib/3rdparty/libxml2/install-sh diff --git a/reactos/lib/3rdparty/libxml2/legacy.c b/lib/3rdparty/libxml2/legacy.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/legacy.c rename to lib/3rdparty/libxml2/legacy.c diff --git a/reactos/lib/3rdparty/libxml2/libxml-2.0-uninstalled.pc.in b/lib/3rdparty/libxml2/libxml-2.0-uninstalled.pc.in similarity index 100% rename from reactos/lib/3rdparty/libxml2/libxml-2.0-uninstalled.pc.in rename to lib/3rdparty/libxml2/libxml-2.0-uninstalled.pc.in diff --git a/reactos/lib/3rdparty/libxml2/libxml-2.0.pc.in b/lib/3rdparty/libxml2/libxml-2.0.pc.in similarity index 100% rename from reactos/lib/3rdparty/libxml2/libxml-2.0.pc.in rename to lib/3rdparty/libxml2/libxml-2.0.pc.in diff --git a/reactos/lib/3rdparty/libxml2/libxml.3 b/lib/3rdparty/libxml2/libxml.3 similarity index 100% rename from reactos/lib/3rdparty/libxml2/libxml.3 rename to lib/3rdparty/libxml2/libxml.3 diff --git a/reactos/lib/3rdparty/libxml2/libxml.h b/lib/3rdparty/libxml2/libxml.h similarity index 100% rename from reactos/lib/3rdparty/libxml2/libxml.h rename to lib/3rdparty/libxml2/libxml.h diff --git a/reactos/lib/3rdparty/libxml2/libxml.m4 b/lib/3rdparty/libxml2/libxml.m4 similarity index 100% rename from reactos/lib/3rdparty/libxml2/libxml.m4 rename to lib/3rdparty/libxml2/libxml.m4 diff --git a/reactos/lib/3rdparty/libxml2/libxml.spec.in b/lib/3rdparty/libxml2/libxml.spec.in similarity index 100% rename from reactos/lib/3rdparty/libxml2/libxml.spec.in rename to lib/3rdparty/libxml2/libxml.spec.in diff --git a/reactos/lib/3rdparty/libxml2/libxml2.spec b/lib/3rdparty/libxml2/libxml2.spec similarity index 100% rename from reactos/lib/3rdparty/libxml2/libxml2.spec rename to lib/3rdparty/libxml2/libxml2.spec diff --git a/reactos/lib/3rdparty/libxml2/list.c b/lib/3rdparty/libxml2/list.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/list.c rename to lib/3rdparty/libxml2/list.c diff --git a/reactos/lib/3rdparty/libxml2/ltmain.sh b/lib/3rdparty/libxml2/ltmain.sh similarity index 100% rename from reactos/lib/3rdparty/libxml2/ltmain.sh rename to lib/3rdparty/libxml2/ltmain.sh diff --git a/reactos/lib/3rdparty/libxml2/missing b/lib/3rdparty/libxml2/missing similarity index 100% rename from reactos/lib/3rdparty/libxml2/missing rename to lib/3rdparty/libxml2/missing diff --git a/reactos/lib/3rdparty/libxml2/mkinstalldirs b/lib/3rdparty/libxml2/mkinstalldirs similarity index 100% rename from reactos/lib/3rdparty/libxml2/mkinstalldirs rename to lib/3rdparty/libxml2/mkinstalldirs diff --git a/reactos/lib/3rdparty/libxml2/nanoftp.c b/lib/3rdparty/libxml2/nanoftp.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/nanoftp.c rename to lib/3rdparty/libxml2/nanoftp.c diff --git a/reactos/lib/3rdparty/libxml2/nanohttp.c b/lib/3rdparty/libxml2/nanohttp.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/nanohttp.c rename to lib/3rdparty/libxml2/nanohttp.c diff --git a/reactos/lib/3rdparty/libxml2/parser.c b/lib/3rdparty/libxml2/parser.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/parser.c rename to lib/3rdparty/libxml2/parser.c diff --git a/reactos/lib/3rdparty/libxml2/parserInternals.c b/lib/3rdparty/libxml2/parserInternals.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/parserInternals.c rename to lib/3rdparty/libxml2/parserInternals.c diff --git a/reactos/lib/3rdparty/libxml2/pattern.c b/lib/3rdparty/libxml2/pattern.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/pattern.c rename to lib/3rdparty/libxml2/pattern.c diff --git a/reactos/lib/3rdparty/libxml2/regressions.py b/lib/3rdparty/libxml2/regressions.py similarity index 100% rename from reactos/lib/3rdparty/libxml2/regressions.py rename to lib/3rdparty/libxml2/regressions.py diff --git a/reactos/lib/3rdparty/libxml2/regressions.xml b/lib/3rdparty/libxml2/regressions.xml similarity index 100% rename from reactos/lib/3rdparty/libxml2/regressions.xml rename to lib/3rdparty/libxml2/regressions.xml diff --git a/reactos/lib/3rdparty/libxml2/relaxng.c b/lib/3rdparty/libxml2/relaxng.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/relaxng.c rename to lib/3rdparty/libxml2/relaxng.c diff --git a/reactos/lib/3rdparty/libxml2/runsuite.c b/lib/3rdparty/libxml2/runsuite.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/runsuite.c rename to lib/3rdparty/libxml2/runsuite.c diff --git a/reactos/lib/3rdparty/libxml2/runtest.c b/lib/3rdparty/libxml2/runtest.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/runtest.c rename to lib/3rdparty/libxml2/runtest.c diff --git a/reactos/lib/3rdparty/libxml2/runxmlconf.c b/lib/3rdparty/libxml2/runxmlconf.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/runxmlconf.c rename to lib/3rdparty/libxml2/runxmlconf.c diff --git a/reactos/lib/3rdparty/libxml2/schematron.c b/lib/3rdparty/libxml2/schematron.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/schematron.c rename to lib/3rdparty/libxml2/schematron.c diff --git a/reactos/lib/3rdparty/libxml2/testAutomata.c b/lib/3rdparty/libxml2/testAutomata.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testAutomata.c rename to lib/3rdparty/libxml2/testAutomata.c diff --git a/reactos/lib/3rdparty/libxml2/testC14N.c b/lib/3rdparty/libxml2/testC14N.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testC14N.c rename to lib/3rdparty/libxml2/testC14N.c diff --git a/reactos/lib/3rdparty/libxml2/testHTML.c b/lib/3rdparty/libxml2/testHTML.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testHTML.c rename to lib/3rdparty/libxml2/testHTML.c diff --git a/reactos/lib/3rdparty/libxml2/testModule.c b/lib/3rdparty/libxml2/testModule.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testModule.c rename to lib/3rdparty/libxml2/testModule.c diff --git a/reactos/lib/3rdparty/libxml2/testReader.c b/lib/3rdparty/libxml2/testReader.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testReader.c rename to lib/3rdparty/libxml2/testReader.c diff --git a/reactos/lib/3rdparty/libxml2/testRegexp.c b/lib/3rdparty/libxml2/testRegexp.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testRegexp.c rename to lib/3rdparty/libxml2/testRegexp.c diff --git a/reactos/lib/3rdparty/libxml2/testRelax.c b/lib/3rdparty/libxml2/testRelax.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testRelax.c rename to lib/3rdparty/libxml2/testRelax.c diff --git a/reactos/lib/3rdparty/libxml2/testSAX.c b/lib/3rdparty/libxml2/testSAX.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testSAX.c rename to lib/3rdparty/libxml2/testSAX.c diff --git a/reactos/lib/3rdparty/libxml2/testSchemas.c b/lib/3rdparty/libxml2/testSchemas.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testSchemas.c rename to lib/3rdparty/libxml2/testSchemas.c diff --git a/reactos/lib/3rdparty/libxml2/testThreads.c b/lib/3rdparty/libxml2/testThreads.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testThreads.c rename to lib/3rdparty/libxml2/testThreads.c diff --git a/reactos/lib/3rdparty/libxml2/testThreadsWin32.c b/lib/3rdparty/libxml2/testThreadsWin32.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testThreadsWin32.c rename to lib/3rdparty/libxml2/testThreadsWin32.c diff --git a/reactos/lib/3rdparty/libxml2/testURI.c b/lib/3rdparty/libxml2/testURI.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testURI.c rename to lib/3rdparty/libxml2/testURI.c diff --git a/reactos/lib/3rdparty/libxml2/testXPath.c b/lib/3rdparty/libxml2/testXPath.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testXPath.c rename to lib/3rdparty/libxml2/testXPath.c diff --git a/reactos/lib/3rdparty/libxml2/testapi.c b/lib/3rdparty/libxml2/testapi.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testapi.c rename to lib/3rdparty/libxml2/testapi.c diff --git a/reactos/lib/3rdparty/libxml2/testchar.c b/lib/3rdparty/libxml2/testchar.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testchar.c rename to lib/3rdparty/libxml2/testchar.c diff --git a/reactos/lib/3rdparty/libxml2/testdict.c b/lib/3rdparty/libxml2/testdict.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testdict.c rename to lib/3rdparty/libxml2/testdict.c diff --git a/reactos/lib/3rdparty/libxml2/testdso.c b/lib/3rdparty/libxml2/testdso.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testdso.c rename to lib/3rdparty/libxml2/testdso.c diff --git a/reactos/lib/3rdparty/libxml2/testrecurse.c b/lib/3rdparty/libxml2/testrecurse.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/testrecurse.c rename to lib/3rdparty/libxml2/testrecurse.c diff --git a/reactos/lib/3rdparty/libxml2/threads.c b/lib/3rdparty/libxml2/threads.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/threads.c rename to lib/3rdparty/libxml2/threads.c diff --git a/reactos/lib/3rdparty/libxml2/tree.c b/lib/3rdparty/libxml2/tree.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/tree.c rename to lib/3rdparty/libxml2/tree.c diff --git a/reactos/lib/3rdparty/libxml2/trio.c b/lib/3rdparty/libxml2/trio.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/trio.c rename to lib/3rdparty/libxml2/trio.c diff --git a/reactos/lib/3rdparty/libxml2/trio.h b/lib/3rdparty/libxml2/trio.h similarity index 100% rename from reactos/lib/3rdparty/libxml2/trio.h rename to lib/3rdparty/libxml2/trio.h diff --git a/reactos/lib/3rdparty/libxml2/triodef.h b/lib/3rdparty/libxml2/triodef.h similarity index 100% rename from reactos/lib/3rdparty/libxml2/triodef.h rename to lib/3rdparty/libxml2/triodef.h diff --git a/reactos/lib/3rdparty/libxml2/trionan.c b/lib/3rdparty/libxml2/trionan.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/trionan.c rename to lib/3rdparty/libxml2/trionan.c diff --git a/reactos/lib/3rdparty/libxml2/trionan.h b/lib/3rdparty/libxml2/trionan.h similarity index 100% rename from reactos/lib/3rdparty/libxml2/trionan.h rename to lib/3rdparty/libxml2/trionan.h diff --git a/reactos/lib/3rdparty/libxml2/triop.h b/lib/3rdparty/libxml2/triop.h similarity index 100% rename from reactos/lib/3rdparty/libxml2/triop.h rename to lib/3rdparty/libxml2/triop.h diff --git a/reactos/lib/3rdparty/libxml2/triostr.c b/lib/3rdparty/libxml2/triostr.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/triostr.c rename to lib/3rdparty/libxml2/triostr.c diff --git a/reactos/lib/3rdparty/libxml2/triostr.h b/lib/3rdparty/libxml2/triostr.h similarity index 100% rename from reactos/lib/3rdparty/libxml2/triostr.h rename to lib/3rdparty/libxml2/triostr.h diff --git a/reactos/lib/3rdparty/libxml2/uri.c b/lib/3rdparty/libxml2/uri.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/uri.c rename to lib/3rdparty/libxml2/uri.c diff --git a/reactos/lib/3rdparty/libxml2/valid.c b/lib/3rdparty/libxml2/valid.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/valid.c rename to lib/3rdparty/libxml2/valid.c diff --git a/reactos/lib/3rdparty/libxml2/xinclude.c b/lib/3rdparty/libxml2/xinclude.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xinclude.c rename to lib/3rdparty/libxml2/xinclude.c diff --git a/reactos/lib/3rdparty/libxml2/xlink.c b/lib/3rdparty/libxml2/xlink.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xlink.c rename to lib/3rdparty/libxml2/xlink.c diff --git a/reactos/lib/3rdparty/libxml2/xml2-config.1 b/lib/3rdparty/libxml2/xml2-config.1 similarity index 100% rename from reactos/lib/3rdparty/libxml2/xml2-config.1 rename to lib/3rdparty/libxml2/xml2-config.1 diff --git a/reactos/lib/3rdparty/libxml2/xml2-config.in b/lib/3rdparty/libxml2/xml2-config.in similarity index 100% rename from reactos/lib/3rdparty/libxml2/xml2-config.in rename to lib/3rdparty/libxml2/xml2-config.in diff --git a/reactos/lib/3rdparty/libxml2/xml2Conf.sh.in b/lib/3rdparty/libxml2/xml2Conf.sh.in similarity index 100% rename from reactos/lib/3rdparty/libxml2/xml2Conf.sh.in rename to lib/3rdparty/libxml2/xml2Conf.sh.in diff --git a/reactos/lib/3rdparty/libxml2/xmlIO.c b/lib/3rdparty/libxml2/xmlIO.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlIO.c rename to lib/3rdparty/libxml2/xmlIO.c diff --git a/reactos/lib/3rdparty/libxml2/xmlcatalog.c b/lib/3rdparty/libxml2/xmlcatalog.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlcatalog.c rename to lib/3rdparty/libxml2/xmlcatalog.c diff --git a/reactos/lib/3rdparty/libxml2/xmllint.c b/lib/3rdparty/libxml2/xmllint.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmllint.c rename to lib/3rdparty/libxml2/xmllint.c diff --git a/reactos/lib/3rdparty/libxml2/xmlmemory.c b/lib/3rdparty/libxml2/xmlmemory.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlmemory.c rename to lib/3rdparty/libxml2/xmlmemory.c diff --git a/reactos/lib/3rdparty/libxml2/xmlmodule.c b/lib/3rdparty/libxml2/xmlmodule.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlmodule.c rename to lib/3rdparty/libxml2/xmlmodule.c diff --git a/reactos/lib/3rdparty/libxml2/xmlreader.c b/lib/3rdparty/libxml2/xmlreader.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlreader.c rename to lib/3rdparty/libxml2/xmlreader.c diff --git a/reactos/lib/3rdparty/libxml2/xmlregexp.c b/lib/3rdparty/libxml2/xmlregexp.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlregexp.c rename to lib/3rdparty/libxml2/xmlregexp.c diff --git a/reactos/lib/3rdparty/libxml2/xmlsave.c b/lib/3rdparty/libxml2/xmlsave.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlsave.c rename to lib/3rdparty/libxml2/xmlsave.c diff --git a/reactos/lib/3rdparty/libxml2/xmlschemas.c b/lib/3rdparty/libxml2/xmlschemas.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlschemas.c rename to lib/3rdparty/libxml2/xmlschemas.c diff --git a/reactos/lib/3rdparty/libxml2/xmlschemastypes.c b/lib/3rdparty/libxml2/xmlschemastypes.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlschemastypes.c rename to lib/3rdparty/libxml2/xmlschemastypes.c diff --git a/reactos/lib/3rdparty/libxml2/xmlstring.c b/lib/3rdparty/libxml2/xmlstring.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlstring.c rename to lib/3rdparty/libxml2/xmlstring.c diff --git a/reactos/lib/3rdparty/libxml2/xmlunicode.c b/lib/3rdparty/libxml2/xmlunicode.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlunicode.c rename to lib/3rdparty/libxml2/xmlunicode.c diff --git a/reactos/lib/3rdparty/libxml2/xmlwriter.c b/lib/3rdparty/libxml2/xmlwriter.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xmlwriter.c rename to lib/3rdparty/libxml2/xmlwriter.c diff --git a/reactos/lib/3rdparty/libxml2/xpath.c b/lib/3rdparty/libxml2/xpath.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xpath.c rename to lib/3rdparty/libxml2/xpath.c diff --git a/reactos/lib/3rdparty/libxml2/xpointer.c b/lib/3rdparty/libxml2/xpointer.c similarity index 100% rename from reactos/lib/3rdparty/libxml2/xpointer.c rename to lib/3rdparty/libxml2/xpointer.c diff --git a/reactos/lib/3rdparty/stlport/CMakeLists.txt b/lib/3rdparty/stlport/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/stlport/CMakeLists.txt rename to lib/3rdparty/stlport/CMakeLists.txt diff --git a/reactos/lib/3rdparty/stlport/INSTALL b/lib/3rdparty/stlport/INSTALL similarity index 100% rename from reactos/lib/3rdparty/stlport/INSTALL rename to lib/3rdparty/stlport/INSTALL diff --git a/reactos/lib/3rdparty/stlport/INSTALL.unixes b/lib/3rdparty/stlport/INSTALL.unixes similarity index 100% rename from reactos/lib/3rdparty/stlport/INSTALL.unixes rename to lib/3rdparty/stlport/INSTALL.unixes diff --git a/reactos/lib/3rdparty/stlport/Makefile b/lib/3rdparty/stlport/Makefile similarity index 100% rename from reactos/lib/3rdparty/stlport/Makefile rename to lib/3rdparty/stlport/Makefile diff --git a/reactos/lib/3rdparty/stlport/README b/lib/3rdparty/stlport/README similarity index 100% rename from reactos/lib/3rdparty/stlport/README rename to lib/3rdparty/stlport/README diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/CC.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/CC.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/CC.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/CC.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/aCC.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/aCC.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/aCC.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/aCC.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/CC.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/app/CC.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/CC.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/app/CC.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/aCC.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/app/aCC.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/aCC.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/app/aCC.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/bcc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/app/bcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/bcc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/app/bcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/dmc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/app/dmc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/dmc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/app/dmc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/gcc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/app/gcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/gcc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/app/gcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/icc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/app/icc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/icc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/app/icc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/rules-install.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/app/rules-install.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/rules-install.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/app/rules-install.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/rules.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/app/rules.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/rules.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/app/rules.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/top.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/app/top.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/app/top.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/app/top.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/bcc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/bcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/bcc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/bcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/clean.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/clean.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/clean.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/clean.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/extern.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/extern.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/extern.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/cygming/extern.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/lib.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/lib.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/lib.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/cygming/lib.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/rules-install-so.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/rules-install-so.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/rules-install-so.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/cygming/rules-install-so.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/rules-so.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/rules-so.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/rules-so.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/cygming/rules-so.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/sys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/sys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/sys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/cygming/sys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/targetsys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/targetsys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/cygming/targetsys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/cygming/targetsys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/darwin/lib.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/darwin/lib.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/darwin/lib.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/darwin/lib.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/darwin/sys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/darwin/sys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/darwin/sys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/darwin/sys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/darwin/targetsys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/darwin/targetsys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/darwin/targetsys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/darwin/targetsys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/depend.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/depend.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/depend.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/depend.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/dmc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/dmc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/dmc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/dmc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/extern.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/extern.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/extern.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/extern.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/freebsd/sys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/freebsd/sys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/freebsd/sys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/freebsd/sys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/freebsd/targetsys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/freebsd/targetsys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/freebsd/targetsys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/freebsd/targetsys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/gcc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/gcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/gcc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/gcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/hp-ux/sys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/hp-ux/sys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/hp-ux/sys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/hp-ux/sys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/hp-ux/targetsys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/hp-ux/targetsys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/hp-ux/targetsys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/hp-ux/targetsys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/icc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/icc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/icc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/icc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/CC.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/lib/CC.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/CC.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/lib/CC.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/aCC.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/lib/aCC.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/aCC.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/lib/aCC.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/bcc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/lib/bcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/bcc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/lib/bcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/clean.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/lib/clean.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/clean.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/lib/clean.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/dmc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/lib/dmc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/dmc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/lib/dmc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/gcc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/lib/gcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/gcc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/lib/gcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/icc.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/lib/icc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/icc.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/lib/icc.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/rules-a.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/lib/rules-a.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/rules-a.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/lib/rules-a.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/rules-install-a.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/lib/rules-install-a.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/rules-install-a.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/lib/rules-install-a.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/top.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/lib/top.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/top.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/lib/top.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/vc6.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/lib/vc6.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/lib/vc6.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/lib/vc6.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/linux/sys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/linux/sys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/linux/sys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/linux/sys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/linux/targetsys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/linux/targetsys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/linux/targetsys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/linux/targetsys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/openbsd/sys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/openbsd/sys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/openbsd/sys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/openbsd/sys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/openbsd/targetsys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/openbsd/targetsys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/openbsd/targetsys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/openbsd/targetsys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/subdirs.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/subdirs.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/subdirs.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/subdirs.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/sunos/sys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/sunos/sys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/sunos/sys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/sunos/sys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/sunos/targetsys.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/sunos/targetsys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/sunos/targetsys.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/sunos/targetsys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/sysid.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/sysid.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/sysid.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/sysid.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/targetdirs.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/targetdirs.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/targetdirs.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/targetdirs.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/targets.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/targets.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/targets.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/targets.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/top.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/top.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/top.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/top.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/unix/lib.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/unix/lib.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/unix/lib.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/unix/lib.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/unix/rules-install-so.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/unix/rules-install-so.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/unix/rules-install-so.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/unix/rules-install-so.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/unix/rules-so.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/unix/rules-so.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/unix/rules-so.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/unix/rules-so.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/gmake/vc6.mak b/lib/3rdparty/stlport/build/Makefiles/gmake/vc6.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/gmake/vc6.mak rename to lib/3rdparty/stlport/build/Makefiles/gmake/vc6.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/clean.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/clean.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/clean.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/clean.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc-common.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc-common.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/evc-common.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc3.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc3.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc3.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/evc3.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc4.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc4.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc4.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/evc4.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc8.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc8.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/evc8.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc9.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/evc9.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/evc9.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/icl.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/icl.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/icl.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/icl.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/macro.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/macro.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/macro.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/macro.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-exe-windows.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-exe-windows.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-exe-windows.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-exe-windows.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-a.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-a.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-a.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-a.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-so.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-so.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-so.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/rules-install-so.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/top.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/top.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/top.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/top.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc-common.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc-common.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/vc-common.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc6.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc6.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc6.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/vc6.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc70.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc70.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc70.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/vc70.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc71.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc71.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc71.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/vc71.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc8.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc8.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/vc8.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc9.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/app/vc9.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/app/vc9.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/clean.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/clean.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/clean.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/clean.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/evc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/evc-common.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/evc-common.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/evc-common.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/evc3.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/evc3.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/evc3.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/evc3.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/evc4.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/evc4.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/evc4.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/evc4.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/evc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/evc8.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/evc8.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/evc8.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/evc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/evc9.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/evc9.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/evc9.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/extern.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/extern.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/extern.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/extern.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/icl.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/icl.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/icl.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/icl.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/clean.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/clean.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/clean.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/clean.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc-common.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc-common.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc-common.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc3.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc3.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc3.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc3.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc4.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc4.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc4.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc4.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc8.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc8.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc8.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc9.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc9.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/evc9.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/icl.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/icl.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/icl.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/icl.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/macro.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/macro.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/macro.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/macro.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-a.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-a.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-a.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-a.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-a.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-a.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-a.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-a.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-so.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-so.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-so.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-install-so.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-so.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-so.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-so.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/rules-so.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/top.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/top.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/top.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/top.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc-common.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc-common.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc-common.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc6.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc6.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc6.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc6.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc70.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc70.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc70.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc70.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc71.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc71.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc71.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc71.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc8.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc8.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc8.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc9.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc9.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/lib/vc9.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/rules-o.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/rules-o.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/rules-o.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/rules-o.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/sys.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/sys.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/sys.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/sys.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/sysid.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/sysid.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/sysid.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/sysid.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/targetdirs.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/targetdirs.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/targetdirs.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/targetdirs.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/targets.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/targets.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/targets.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/targets.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/top.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/top.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/top.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/top.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc-common.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc-common.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc-common.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/vc-common.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc6.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc6.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc6.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/vc6.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc70.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc70.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc70.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/vc70.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc71.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc71.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc71.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/vc71.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc8.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc8.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc8.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/vc8.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc9.mak b/lib/3rdparty/stlport/build/Makefiles/nmake/vc9.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/nmake/vc9.mak rename to lib/3rdparty/stlport/build/Makefiles/nmake/vc9.mak diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-app.inc b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-app.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-app.inc rename to lib/3rdparty/stlport/build/Makefiles/templates/Makefile-app.inc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-app b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-app similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-app rename to lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-app diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-lib b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-lib similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-lib rename to lib/3rdparty/stlport/build/Makefiles/templates/Makefile-gcc-lib diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-lib.inc b/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-lib.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/templates/Makefile-lib.inc rename to lib/3rdparty/stlport/build/Makefiles/templates/Makefile-lib.inc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile b/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile rename to lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile.inc b/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile.inc rename to lib/3rdparty/stlport/build/Makefiles/ut/app-c/Makefile.inc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app-c/test.c b/lib/3rdparty/stlport/build/Makefiles/ut/app-c/test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app-c/test.c rename to lib/3rdparty/stlport/build/Makefiles/ut/app-c/test.c diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile b/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile rename to lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile.inc b/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile.inc rename to lib/3rdparty/stlport/build/Makefiles/ut/app1/Makefile.inc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app1/test.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app1/test.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app1/test.cc rename to lib/3rdparty/stlport/build/Makefiles/ut/app1/test.cc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile rename to lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile.inc b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile.inc rename to lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/Makefile.inc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test2.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test2.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test2.cc rename to lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test2.cc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test3.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test3.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test3.cc rename to lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test3.cc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test31.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test31.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test31.cc rename to lib/3rdparty/stlport/build/Makefiles/ut/app2-mult/test31.cc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile b/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile rename to lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile.inc b/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile.inc rename to lib/3rdparty/stlport/build/Makefiles/ut/app2/Makefile.inc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/test.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/test.cc rename to lib/3rdparty/stlport/build/Makefiles/ut/app2/test.cc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/test2.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test2.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/test2.cc rename to lib/3rdparty/stlport/build/Makefiles/ut/app2/test2.cc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/test3.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test3.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/test3.cc rename to lib/3rdparty/stlport/build/Makefiles/ut/app2/test3.cc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/test31.cc b/lib/3rdparty/stlport/build/Makefiles/ut/app2/test31.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/app2/test31.cc rename to lib/3rdparty/stlport/build/Makefiles/ut/app2/test31.cc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile b/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile rename to lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile.inc b/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile.inc rename to lib/3rdparty/stlport/build/Makefiles/ut/so1/Makefile.inc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_c.cc b/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_c.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_c.cc rename to lib/3rdparty/stlport/build/Makefiles/ut/so1/test_c.cc diff --git a/reactos/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_cc.cc b/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_cc.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/Makefiles/ut/so1/test_cc.cc rename to lib/3rdparty/stlport/build/Makefiles/ut/so1/test_cc.cc diff --git a/reactos/lib/3rdparty/stlport/build/lib/CC.mak b/lib/3rdparty/stlport/build/lib/CC.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/CC.mak rename to lib/3rdparty/stlport/build/lib/CC.mak diff --git a/reactos/lib/3rdparty/stlport/build/lib/Makefile.inc b/lib/3rdparty/stlport/build/lib/Makefile.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/Makefile.inc rename to lib/3rdparty/stlport/build/lib/Makefile.inc diff --git a/reactos/lib/3rdparty/stlport/build/lib/README b/lib/3rdparty/stlport/build/lib/README similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/README rename to lib/3rdparty/stlport/build/lib/README diff --git a/reactos/lib/3rdparty/stlport/build/lib/aCC.mak b/lib/3rdparty/stlport/build/lib/aCC.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/aCC.mak rename to lib/3rdparty/stlport/build/lib/aCC.mak diff --git a/reactos/lib/3rdparty/stlport/build/lib/bcc.mak b/lib/3rdparty/stlport/build/lib/bcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/bcc.mak rename to lib/3rdparty/stlport/build/lib/bcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/lib/dmc.mak b/lib/3rdparty/stlport/build/lib/dmc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/dmc.mak rename to lib/3rdparty/stlport/build/lib/dmc.mak diff --git a/reactos/lib/3rdparty/stlport/build/lib/evc.mak b/lib/3rdparty/stlport/build/lib/evc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/evc.mak rename to lib/3rdparty/stlport/build/lib/evc.mak diff --git a/reactos/lib/3rdparty/stlport/build/lib/gcc.mak b/lib/3rdparty/stlport/build/lib/gcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/gcc.mak rename to lib/3rdparty/stlport/build/lib/gcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/lib/icc.mak b/lib/3rdparty/stlport/build/lib/icc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/icc.mak rename to lib/3rdparty/stlport/build/lib/icc.mak diff --git a/reactos/lib/3rdparty/stlport/build/lib/icl.mak b/lib/3rdparty/stlport/build/lib/icl.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/icl.mak rename to lib/3rdparty/stlport/build/lib/icl.mak diff --git a/reactos/lib/3rdparty/stlport/build/lib/msvc.mak b/lib/3rdparty/stlport/build/lib/msvc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/msvc.mak rename to lib/3rdparty/stlport/build/lib/msvc.mak diff --git a/reactos/lib/3rdparty/stlport/build/lib/nmake-src-prefix.mak b/lib/3rdparty/stlport/build/lib/nmake-src-prefix.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/lib/nmake-src-prefix.mak rename to lib/3rdparty/stlport/build/lib/nmake-src-prefix.mak diff --git a/reactos/lib/3rdparty/stlport/build/misc/cxa_atexit/Makefile.inc b/lib/3rdparty/stlport/build/misc/cxa_atexit/Makefile.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/misc/cxa_atexit/Makefile.inc rename to lib/3rdparty/stlport/build/misc/cxa_atexit/Makefile.inc diff --git a/reactos/lib/3rdparty/stlport/build/misc/cxa_atexit/gcc.mak b/lib/3rdparty/stlport/build/misc/cxa_atexit/gcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/misc/cxa_atexit/gcc.mak rename to lib/3rdparty/stlport/build/misc/cxa_atexit/gcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/eh/Makefile.inc b/lib/3rdparty/stlport/build/test/eh/Makefile.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/eh/Makefile.inc rename to lib/3rdparty/stlport/build/test/eh/Makefile.inc diff --git a/reactos/lib/3rdparty/stlport/build/test/eh/bcc.mak b/lib/3rdparty/stlport/build/test/eh/bcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/eh/bcc.mak rename to lib/3rdparty/stlport/build/test/eh/bcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/eh/evc.mak b/lib/3rdparty/stlport/build/test/eh/evc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/eh/evc.mak rename to lib/3rdparty/stlport/build/test/eh/evc.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/eh/gcc.mak b/lib/3rdparty/stlport/build/test/eh/gcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/eh/gcc.mak rename to lib/3rdparty/stlport/build/test/eh/gcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/eh/icl.mak b/lib/3rdparty/stlport/build/test/eh/icl.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/eh/icl.mak rename to lib/3rdparty/stlport/build/test/eh/icl.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/eh/msvc.mak b/lib/3rdparty/stlport/build/test/eh/msvc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/eh/msvc.mak rename to lib/3rdparty/stlport/build/test/eh/msvc.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/eh/nmake-src-prefix.mak b/lib/3rdparty/stlport/build/test/eh/nmake-src-prefix.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/eh/nmake-src-prefix.mak rename to lib/3rdparty/stlport/build/test/eh/nmake-src-prefix.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/CC.mak b/lib/3rdparty/stlport/build/test/unit/CC.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/CC.mak rename to lib/3rdparty/stlport/build/test/unit/CC.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/Makefile.inc b/lib/3rdparty/stlport/build/test/unit/Makefile.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/Makefile.inc rename to lib/3rdparty/stlport/build/test/unit/Makefile.inc diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/README b/lib/3rdparty/stlport/build/test/unit/README similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/README rename to lib/3rdparty/stlport/build/test/unit/README diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/STATUS b/lib/3rdparty/stlport/build/test/unit/STATUS similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/STATUS rename to lib/3rdparty/stlport/build/test/unit/STATUS diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/aCC.mak b/lib/3rdparty/stlport/build/test/unit/aCC.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/aCC.mak rename to lib/3rdparty/stlport/build/test/unit/aCC.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/bcc.mak b/lib/3rdparty/stlport/build/test/unit/bcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/bcc.mak rename to lib/3rdparty/stlport/build/test/unit/bcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/dmc.mak b/lib/3rdparty/stlport/build/test/unit/dmc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/dmc.mak rename to lib/3rdparty/stlport/build/test/unit/dmc.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/evc.mak b/lib/3rdparty/stlport/build/test/unit/evc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/evc.mak rename to lib/3rdparty/stlport/build/test/unit/evc.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/gcc.mak b/lib/3rdparty/stlport/build/test/unit/gcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/gcc.mak rename to lib/3rdparty/stlport/build/test/unit/gcc.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/icc.mak b/lib/3rdparty/stlport/build/test/unit/icc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/icc.mak rename to lib/3rdparty/stlport/build/test/unit/icc.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/icl.mak b/lib/3rdparty/stlport/build/test/unit/icl.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/icl.mak rename to lib/3rdparty/stlport/build/test/unit/icl.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/msvc.mak b/lib/3rdparty/stlport/build/test/unit/msvc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/msvc.mak rename to lib/3rdparty/stlport/build/test/unit/msvc.mak diff --git a/reactos/lib/3rdparty/stlport/build/test/unit/nmake-src-prefix.mak b/lib/3rdparty/stlport/build/test/unit/nmake-src-prefix.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/build/test/unit/nmake-src-prefix.mak rename to lib/3rdparty/stlport/build/test/unit/nmake-src-prefix.mak diff --git a/reactos/lib/3rdparty/stlport/configure b/lib/3rdparty/stlport/configure similarity index 100% rename from reactos/lib/3rdparty/stlport/configure rename to lib/3rdparty/stlport/configure diff --git a/reactos/lib/3rdparty/stlport/configure.bat b/lib/3rdparty/stlport/configure.bat similarity index 100% rename from reactos/lib/3rdparty/stlport/configure.bat rename to lib/3rdparty/stlport/configure.bat diff --git a/reactos/lib/3rdparty/stlport/doc/FAQ b/lib/3rdparty/stlport/doc/FAQ similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/FAQ rename to lib/3rdparty/stlport/doc/FAQ diff --git a/reactos/lib/3rdparty/stlport/doc/README.borland b/lib/3rdparty/stlport/doc/README.borland similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.borland rename to lib/3rdparty/stlport/doc/README.borland diff --git a/reactos/lib/3rdparty/stlport/doc/README.cygwin b/lib/3rdparty/stlport/doc/README.cygwin similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.cygwin rename to lib/3rdparty/stlport/doc/README.cygwin diff --git a/reactos/lib/3rdparty/stlport/doc/README.dmc b/lib/3rdparty/stlport/doc/README.dmc similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.dmc rename to lib/3rdparty/stlport/doc/README.dmc diff --git a/reactos/lib/3rdparty/stlport/doc/README.evc3 b/lib/3rdparty/stlport/doc/README.evc3 similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.evc3 rename to lib/3rdparty/stlport/doc/README.evc3 diff --git a/reactos/lib/3rdparty/stlport/doc/README.evc4 b/lib/3rdparty/stlport/doc/README.evc4 similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.evc4 rename to lib/3rdparty/stlport/doc/README.evc4 diff --git a/reactos/lib/3rdparty/stlport/doc/README.evc8 b/lib/3rdparty/stlport/doc/README.evc8 similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.evc8 rename to lib/3rdparty/stlport/doc/README.evc8 diff --git a/reactos/lib/3rdparty/stlport/doc/README.evc9 b/lib/3rdparty/stlport/doc/README.evc9 similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.evc9 rename to lib/3rdparty/stlport/doc/README.evc9 diff --git a/reactos/lib/3rdparty/stlport/doc/README.intel b/lib/3rdparty/stlport/doc/README.intel similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.intel rename to lib/3rdparty/stlport/doc/README.intel diff --git a/reactos/lib/3rdparty/stlport/doc/README.mingw b/lib/3rdparty/stlport/doc/README.mingw similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.mingw rename to lib/3rdparty/stlport/doc/README.mingw diff --git a/reactos/lib/3rdparty/stlport/doc/README.msvc b/lib/3rdparty/stlport/doc/README.msvc similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.msvc rename to lib/3rdparty/stlport/doc/README.msvc diff --git a/reactos/lib/3rdparty/stlport/doc/README.utf8 b/lib/3rdparty/stlport/doc/README.utf8 similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.utf8 rename to lib/3rdparty/stlport/doc/README.utf8 diff --git a/reactos/lib/3rdparty/stlport/doc/README.wince b/lib/3rdparty/stlport/doc/README.wince similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.wince rename to lib/3rdparty/stlport/doc/README.wince diff --git a/reactos/lib/3rdparty/stlport/doc/README.windows b/lib/3rdparty/stlport/doc/README.windows similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/README.windows rename to lib/3rdparty/stlport/doc/README.windows diff --git a/reactos/lib/3rdparty/stlport/doc/build_system.txt b/lib/3rdparty/stlport/doc/build_system.txt similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/build_system.txt rename to lib/3rdparty/stlport/doc/build_system.txt diff --git a/reactos/lib/3rdparty/stlport/doc/pointer_specialization.txt b/lib/3rdparty/stlport/doc/pointer_specialization.txt similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/pointer_specialization.txt rename to lib/3rdparty/stlport/doc/pointer_specialization.txt diff --git a/reactos/lib/3rdparty/stlport/doc/stlport_namespaces.txt b/lib/3rdparty/stlport/doc/stlport_namespaces.txt similarity index 100% rename from reactos/lib/3rdparty/stlport/doc/stlport_namespaces.txt rename to lib/3rdparty/stlport/doc/stlport_namespaces.txt diff --git a/reactos/lib/3rdparty/stlport/etc/ChangeLog b/lib/3rdparty/stlport/etc/ChangeLog similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/ChangeLog rename to lib/3rdparty/stlport/etc/ChangeLog diff --git a/reactos/lib/3rdparty/stlport/etc/ChangeLog-4.0 b/lib/3rdparty/stlport/etc/ChangeLog-4.0 similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/ChangeLog-4.0 rename to lib/3rdparty/stlport/etc/ChangeLog-4.0 diff --git a/reactos/lib/3rdparty/stlport/etc/ChangeLog-5.1 b/lib/3rdparty/stlport/etc/ChangeLog-5.1 similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/ChangeLog-5.1 rename to lib/3rdparty/stlport/etc/ChangeLog-5.1 diff --git a/reactos/lib/3rdparty/stlport/etc/ReleaseNote.txt b/lib/3rdparty/stlport/etc/ReleaseNote.txt similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/ReleaseNote.txt rename to lib/3rdparty/stlport/etc/ReleaseNote.txt diff --git a/reactos/lib/3rdparty/stlport/etc/STLport-4.5.1.spec b/lib/3rdparty/stlport/etc/STLport-4.5.1.spec similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/STLport-4.5.1.spec rename to lib/3rdparty/stlport/etc/STLport-4.5.1.spec diff --git a/reactos/lib/3rdparty/stlport/etc/STLport-4.5.3.spec b/lib/3rdparty/stlport/etc/STLport-4.5.3.spec similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/STLport-4.5.3.spec rename to lib/3rdparty/stlport/etc/STLport-4.5.3.spec diff --git a/reactos/lib/3rdparty/stlport/etc/STLport-4.6.spec b/lib/3rdparty/stlport/etc/STLport-4.6.spec similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/STLport-4.6.spec rename to lib/3rdparty/stlport/etc/STLport-4.6.spec diff --git a/reactos/lib/3rdparty/stlport/etc/autoexp.dat b/lib/3rdparty/stlport/etc/autoexp.dat similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/autoexp.dat rename to lib/3rdparty/stlport/etc/autoexp.dat diff --git a/reactos/lib/3rdparty/stlport/etc/msvcincl.dat b/lib/3rdparty/stlport/etc/msvcincl.dat similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/msvcincl.dat rename to lib/3rdparty/stlport/etc/msvcincl.dat diff --git a/reactos/lib/3rdparty/stlport/etc/std_headers.txt b/lib/3rdparty/stlport/etc/std_headers.txt similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/std_headers.txt rename to lib/3rdparty/stlport/etc/std_headers.txt diff --git a/reactos/lib/3rdparty/stlport/etc/std_headers_c.txt b/lib/3rdparty/stlport/etc/std_headers_c.txt similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/std_headers_c.txt rename to lib/3rdparty/stlport/etc/std_headers_c.txt diff --git a/reactos/lib/3rdparty/stlport/etc/std_headers_c_h.txt b/lib/3rdparty/stlport/etc/std_headers_c_h.txt similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/std_headers_c_h.txt rename to lib/3rdparty/stlport/etc/std_headers_c_h.txt diff --git a/reactos/lib/3rdparty/stlport/etc/std_headers_classic_iostreams.txt b/lib/3rdparty/stlport/etc/std_headers_classic_iostreams.txt similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/std_headers_classic_iostreams.txt rename to lib/3rdparty/stlport/etc/std_headers_classic_iostreams.txt diff --git a/reactos/lib/3rdparty/stlport/etc/std_headers_cpp_runtime.txt b/lib/3rdparty/stlport/etc/std_headers_cpp_runtime.txt similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/std_headers_cpp_runtime.txt rename to lib/3rdparty/stlport/etc/std_headers_cpp_runtime.txt diff --git a/reactos/lib/3rdparty/stlport/etc/std_headers_cpp_runtime_h.txt b/lib/3rdparty/stlport/etc/std_headers_cpp_runtime_h.txt similarity index 100% rename from reactos/lib/3rdparty/stlport/etc/std_headers_cpp_runtime_h.txt rename to lib/3rdparty/stlport/etc/std_headers_cpp_runtime_h.txt diff --git a/reactos/lib/3rdparty/stlport/src/_stdio_file.h b/lib/3rdparty/stlport/src/_stdio_file.h similarity index 100% rename from reactos/lib/3rdparty/stlport/src/_stdio_file.h rename to lib/3rdparty/stlport/src/_stdio_file.h diff --git a/reactos/lib/3rdparty/stlport/src/acquire_release.h b/lib/3rdparty/stlport/src/acquire_release.h similarity index 100% rename from reactos/lib/3rdparty/stlport/src/acquire_release.h rename to lib/3rdparty/stlport/src/acquire_release.h diff --git a/reactos/lib/3rdparty/stlport/src/aligned_buffer.h b/lib/3rdparty/stlport/src/aligned_buffer.h similarity index 100% rename from reactos/lib/3rdparty/stlport/src/aligned_buffer.h rename to lib/3rdparty/stlport/src/aligned_buffer.h diff --git a/reactos/lib/3rdparty/stlport/src/allocators.cpp b/lib/3rdparty/stlport/src/allocators.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/allocators.cpp rename to lib/3rdparty/stlport/src/allocators.cpp diff --git a/reactos/lib/3rdparty/stlport/src/bitset.cpp b/lib/3rdparty/stlport/src/bitset.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/bitset.cpp rename to lib/3rdparty/stlport/src/bitset.cpp diff --git a/reactos/lib/3rdparty/stlport/src/c_locale.c b/lib/3rdparty/stlport/src/c_locale.c similarity index 100% rename from reactos/lib/3rdparty/stlport/src/c_locale.c rename to lib/3rdparty/stlport/src/c_locale.c diff --git a/reactos/lib/3rdparty/stlport/src/c_locale.h b/lib/3rdparty/stlport/src/c_locale.h similarity index 100% rename from reactos/lib/3rdparty/stlport/src/c_locale.h rename to lib/3rdparty/stlport/src/c_locale.h diff --git a/reactos/lib/3rdparty/stlport/src/c_locale_dummy/c_locale_dummy.c b/lib/3rdparty/stlport/src/c_locale_dummy/c_locale_dummy.c similarity index 100% rename from reactos/lib/3rdparty/stlport/src/c_locale_dummy/c_locale_dummy.c rename to lib/3rdparty/stlport/src/c_locale_dummy/c_locale_dummy.c diff --git a/reactos/lib/3rdparty/stlport/src/c_locale_glibc/c_locale_glibc2.c b/lib/3rdparty/stlport/src/c_locale_glibc/c_locale_glibc2.c similarity index 100% rename from reactos/lib/3rdparty/stlport/src/c_locale_glibc/c_locale_glibc2.c rename to lib/3rdparty/stlport/src/c_locale_glibc/c_locale_glibc2.c diff --git a/reactos/lib/3rdparty/stlport/src/c_locale_win32/c_locale_win32.c b/lib/3rdparty/stlport/src/c_locale_win32/c_locale_win32.c similarity index 100% rename from reactos/lib/3rdparty/stlport/src/c_locale_win32/c_locale_win32.c rename to lib/3rdparty/stlport/src/c_locale_win32/c_locale_win32.c diff --git a/reactos/lib/3rdparty/stlport/src/c_locale_win32/c_wlocale_win32.c b/lib/3rdparty/stlport/src/c_locale_win32/c_wlocale_win32.c similarity index 100% rename from reactos/lib/3rdparty/stlport/src/c_locale_win32/c_wlocale_win32.c rename to lib/3rdparty/stlport/src/c_locale_win32/c_wlocale_win32.c diff --git a/reactos/lib/3rdparty/stlport/src/codecvt.cpp b/lib/3rdparty/stlport/src/codecvt.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/codecvt.cpp rename to lib/3rdparty/stlport/src/codecvt.cpp diff --git a/reactos/lib/3rdparty/stlport/src/collate.cpp b/lib/3rdparty/stlport/src/collate.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/collate.cpp rename to lib/3rdparty/stlport/src/collate.cpp diff --git a/reactos/lib/3rdparty/stlport/src/complex.cpp b/lib/3rdparty/stlport/src/complex.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/complex.cpp rename to lib/3rdparty/stlport/src/complex.cpp diff --git a/reactos/lib/3rdparty/stlport/src/complex_io.cpp b/lib/3rdparty/stlport/src/complex_io.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/complex_io.cpp rename to lib/3rdparty/stlport/src/complex_io.cpp diff --git a/reactos/lib/3rdparty/stlport/src/complex_trig.cpp b/lib/3rdparty/stlport/src/complex_trig.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/complex_trig.cpp rename to lib/3rdparty/stlport/src/complex_trig.cpp diff --git a/reactos/lib/3rdparty/stlport/src/ctype.cpp b/lib/3rdparty/stlport/src/ctype.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/ctype.cpp rename to lib/3rdparty/stlport/src/ctype.cpp diff --git a/reactos/lib/3rdparty/stlport/src/cxa.c b/lib/3rdparty/stlport/src/cxa.c similarity index 100% rename from reactos/lib/3rdparty/stlport/src/cxa.c rename to lib/3rdparty/stlport/src/cxa.c diff --git a/reactos/lib/3rdparty/stlport/src/details/fstream_stdio.cpp b/lib/3rdparty/stlport/src/details/fstream_stdio.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/details/fstream_stdio.cpp rename to lib/3rdparty/stlport/src/details/fstream_stdio.cpp diff --git a/reactos/lib/3rdparty/stlport/src/details/fstream_unistd.cpp b/lib/3rdparty/stlport/src/details/fstream_unistd.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/details/fstream_unistd.cpp rename to lib/3rdparty/stlport/src/details/fstream_unistd.cpp diff --git a/reactos/lib/3rdparty/stlport/src/details/fstream_win32io.cpp b/lib/3rdparty/stlport/src/details/fstream_win32io.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/details/fstream_win32io.cpp rename to lib/3rdparty/stlport/src/details/fstream_win32io.cpp diff --git a/reactos/lib/3rdparty/stlport/src/dll_main.cpp b/lib/3rdparty/stlport/src/dll_main.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/dll_main.cpp rename to lib/3rdparty/stlport/src/dll_main.cpp diff --git a/reactos/lib/3rdparty/stlport/src/facets_byname.cpp b/lib/3rdparty/stlport/src/facets_byname.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/facets_byname.cpp rename to lib/3rdparty/stlport/src/facets_byname.cpp diff --git a/reactos/lib/3rdparty/stlport/src/fstream.cpp b/lib/3rdparty/stlport/src/fstream.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/fstream.cpp rename to lib/3rdparty/stlport/src/fstream.cpp diff --git a/reactos/lib/3rdparty/stlport/src/ios.cpp b/lib/3rdparty/stlport/src/ios.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/ios.cpp rename to lib/3rdparty/stlport/src/ios.cpp diff --git a/reactos/lib/3rdparty/stlport/src/iostream.cpp b/lib/3rdparty/stlport/src/iostream.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/iostream.cpp rename to lib/3rdparty/stlport/src/iostream.cpp diff --git a/reactos/lib/3rdparty/stlport/src/istream.cpp b/lib/3rdparty/stlport/src/istream.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/istream.cpp rename to lib/3rdparty/stlport/src/istream.cpp diff --git a/reactos/lib/3rdparty/stlport/src/locale.cpp b/lib/3rdparty/stlport/src/locale.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/locale.cpp rename to lib/3rdparty/stlport/src/locale.cpp diff --git a/reactos/lib/3rdparty/stlport/src/locale_catalog.cpp b/lib/3rdparty/stlport/src/locale_catalog.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/locale_catalog.cpp rename to lib/3rdparty/stlport/src/locale_catalog.cpp diff --git a/reactos/lib/3rdparty/stlport/src/locale_impl.cpp b/lib/3rdparty/stlport/src/locale_impl.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/locale_impl.cpp rename to lib/3rdparty/stlport/src/locale_impl.cpp diff --git a/reactos/lib/3rdparty/stlport/src/locale_impl.h b/lib/3rdparty/stlport/src/locale_impl.h similarity index 100% rename from reactos/lib/3rdparty/stlport/src/locale_impl.h rename to lib/3rdparty/stlport/src/locale_impl.h diff --git a/reactos/lib/3rdparty/stlport/src/lock_free_slist.h b/lib/3rdparty/stlport/src/lock_free_slist.h similarity index 100% rename from reactos/lib/3rdparty/stlport/src/lock_free_slist.h rename to lib/3rdparty/stlport/src/lock_free_slist.h diff --git a/reactos/lib/3rdparty/stlport/src/message_facets.h b/lib/3rdparty/stlport/src/message_facets.h similarity index 100% rename from reactos/lib/3rdparty/stlport/src/message_facets.h rename to lib/3rdparty/stlport/src/message_facets.h diff --git a/reactos/lib/3rdparty/stlport/src/messages.cpp b/lib/3rdparty/stlport/src/messages.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/messages.cpp rename to lib/3rdparty/stlport/src/messages.cpp diff --git a/reactos/lib/3rdparty/stlport/src/monetary.cpp b/lib/3rdparty/stlport/src/monetary.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/monetary.cpp rename to lib/3rdparty/stlport/src/monetary.cpp diff --git a/reactos/lib/3rdparty/stlport/src/num_get.cpp b/lib/3rdparty/stlport/src/num_get.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/num_get.cpp rename to lib/3rdparty/stlport/src/num_get.cpp diff --git a/reactos/lib/3rdparty/stlport/src/num_get_float.cpp b/lib/3rdparty/stlport/src/num_get_float.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/num_get_float.cpp rename to lib/3rdparty/stlport/src/num_get_float.cpp diff --git a/reactos/lib/3rdparty/stlport/src/num_put.cpp b/lib/3rdparty/stlport/src/num_put.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/num_put.cpp rename to lib/3rdparty/stlport/src/num_put.cpp diff --git a/reactos/lib/3rdparty/stlport/src/num_put_float.cpp b/lib/3rdparty/stlport/src/num_put_float.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/num_put_float.cpp rename to lib/3rdparty/stlport/src/num_put_float.cpp diff --git a/reactos/lib/3rdparty/stlport/src/numpunct.cpp b/lib/3rdparty/stlport/src/numpunct.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/numpunct.cpp rename to lib/3rdparty/stlport/src/numpunct.cpp diff --git a/reactos/lib/3rdparty/stlport/src/ostream.cpp b/lib/3rdparty/stlport/src/ostream.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/ostream.cpp rename to lib/3rdparty/stlport/src/ostream.cpp diff --git a/reactos/lib/3rdparty/stlport/src/sparc_atomic.s b/lib/3rdparty/stlport/src/sparc_atomic.s similarity index 100% rename from reactos/lib/3rdparty/stlport/src/sparc_atomic.s rename to lib/3rdparty/stlport/src/sparc_atomic.s diff --git a/reactos/lib/3rdparty/stlport/src/sparc_atomic64.s b/lib/3rdparty/stlport/src/sparc_atomic64.s similarity index 100% rename from reactos/lib/3rdparty/stlport/src/sparc_atomic64.s rename to lib/3rdparty/stlport/src/sparc_atomic64.s diff --git a/reactos/lib/3rdparty/stlport/src/sstream.cpp b/lib/3rdparty/stlport/src/sstream.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/sstream.cpp rename to lib/3rdparty/stlport/src/sstream.cpp diff --git a/reactos/lib/3rdparty/stlport/src/stdio_streambuf.cpp b/lib/3rdparty/stlport/src/stdio_streambuf.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/stdio_streambuf.cpp rename to lib/3rdparty/stlport/src/stdio_streambuf.cpp diff --git a/reactos/lib/3rdparty/stlport/src/stdio_streambuf.h b/lib/3rdparty/stlport/src/stdio_streambuf.h similarity index 100% rename from reactos/lib/3rdparty/stlport/src/stdio_streambuf.h rename to lib/3rdparty/stlport/src/stdio_streambuf.h diff --git a/reactos/lib/3rdparty/stlport/src/stlport.rc b/lib/3rdparty/stlport/src/stlport.rc similarity index 100% rename from reactos/lib/3rdparty/stlport/src/stlport.rc rename to lib/3rdparty/stlport/src/stlport.rc diff --git a/reactos/lib/3rdparty/stlport/src/stlport_prefix.h b/lib/3rdparty/stlport/src/stlport_prefix.h similarity index 100% rename from reactos/lib/3rdparty/stlport/src/stlport_prefix.h rename to lib/3rdparty/stlport/src/stlport_prefix.h diff --git a/reactos/lib/3rdparty/stlport/src/string.cpp b/lib/3rdparty/stlport/src/string.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/string.cpp rename to lib/3rdparty/stlport/src/string.cpp diff --git a/reactos/lib/3rdparty/stlport/src/strstream.cpp b/lib/3rdparty/stlport/src/strstream.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/strstream.cpp rename to lib/3rdparty/stlport/src/strstream.cpp diff --git a/reactos/lib/3rdparty/stlport/src/time_facets.cpp b/lib/3rdparty/stlport/src/time_facets.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/src/time_facets.cpp rename to lib/3rdparty/stlport/src/time_facets.cpp diff --git a/reactos/lib/3rdparty/stlport/src/warning_disable.h b/lib/3rdparty/stlport/src/warning_disable.h similarity index 100% rename from reactos/lib/3rdparty/stlport/src/warning_disable.h rename to lib/3rdparty/stlport/src/warning_disable.h diff --git a/reactos/lib/3rdparty/stlport/test/compiler/Makefile.inc b/lib/3rdparty/stlport/test/compiler/Makefile.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/Makefile.inc rename to lib/3rdparty/stlport/test/compiler/Makefile.inc diff --git a/reactos/lib/3rdparty/stlport/test/compiler/README b/lib/3rdparty/stlport/test/compiler/README similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/README rename to lib/3rdparty/stlport/test/compiler/README diff --git a/reactos/lib/3rdparty/stlport/test/compiler/StTerm-order/Makefile b/lib/3rdparty/stlport/test/compiler/StTerm-order/Makefile similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/StTerm-order/Makefile rename to lib/3rdparty/stlport/test/compiler/StTerm-order/Makefile diff --git a/reactos/lib/3rdparty/stlport/test/compiler/StTerm-order/Makefile.inc b/lib/3rdparty/stlport/test/compiler/StTerm-order/Makefile.inc similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/StTerm-order/Makefile.inc rename to lib/3rdparty/stlport/test/compiler/StTerm-order/Makefile.inc diff --git a/reactos/lib/3rdparty/stlport/test/compiler/StTerm-order/stterm-test.cc b/lib/3rdparty/stlport/test/compiler/StTerm-order/stterm-test.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/StTerm-order/stterm-test.cc rename to lib/3rdparty/stlport/test/compiler/StTerm-order/stterm-test.cc diff --git a/reactos/lib/3rdparty/stlport/test/compiler/eh.cc b/lib/3rdparty/stlport/test/compiler/eh.cc similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/eh.cc rename to lib/3rdparty/stlport/test/compiler/eh.cc diff --git a/reactos/lib/3rdparty/stlport/test/compiler/gcc.mak b/lib/3rdparty/stlport/test/compiler/gcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/gcc.mak rename to lib/3rdparty/stlport/test/compiler/gcc.mak diff --git a/reactos/lib/3rdparty/stlport/test/compiler/movable.cpp b/lib/3rdparty/stlport/test/compiler/movable.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/movable.cpp rename to lib/3rdparty/stlport/test/compiler/movable.cpp diff --git a/reactos/lib/3rdparty/stlport/test/compiler/partial_spec.cpp b/lib/3rdparty/stlport/test/compiler/partial_spec.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/partial_spec.cpp rename to lib/3rdparty/stlport/test/compiler/partial_spec.cpp diff --git a/reactos/lib/3rdparty/stlport/test/compiler/ttei1.cpp b/lib/3rdparty/stlport/test/compiler/ttei1.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/ttei1.cpp rename to lib/3rdparty/stlport/test/compiler/ttei1.cpp diff --git a/reactos/lib/3rdparty/stlport/test/compiler/ttei2.cpp b/lib/3rdparty/stlport/test/compiler/ttei2.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/ttei2.cpp rename to lib/3rdparty/stlport/test/compiler/ttei2.cpp diff --git a/reactos/lib/3rdparty/stlport/test/compiler/ttei3.cpp b/lib/3rdparty/stlport/test/compiler/ttei3.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/ttei3.cpp rename to lib/3rdparty/stlport/test/compiler/ttei3.cpp diff --git a/reactos/lib/3rdparty/stlport/test/compiler/ttei4.cpp b/lib/3rdparty/stlport/test/compiler/ttei4.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/ttei4.cpp rename to lib/3rdparty/stlport/test/compiler/ttei4.cpp diff --git a/reactos/lib/3rdparty/stlport/test/compiler/ttei5.cpp b/lib/3rdparty/stlport/test/compiler/ttei5.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/ttei5.cpp rename to lib/3rdparty/stlport/test/compiler/ttei5.cpp diff --git a/reactos/lib/3rdparty/stlport/test/compiler/ttei6.cpp b/lib/3rdparty/stlport/test/compiler/ttei6.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/ttei6.cpp rename to lib/3rdparty/stlport/test/compiler/ttei6.cpp diff --git a/reactos/lib/3rdparty/stlport/test/compiler/ttei7.cpp b/lib/3rdparty/stlport/test/compiler/ttei7.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/compiler/ttei7.cpp rename to lib/3rdparty/stlport/test/compiler/ttei7.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/LeakCheck.h b/lib/3rdparty/stlport/test/eh/LeakCheck.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/LeakCheck.h rename to lib/3rdparty/stlport/test/eh/LeakCheck.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/Prefix.h b/lib/3rdparty/stlport/test/eh/Prefix.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/Prefix.h rename to lib/3rdparty/stlport/test/eh/Prefix.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/SortClass.h b/lib/3rdparty/stlport/test/eh/SortClass.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/SortClass.h rename to lib/3rdparty/stlport/test/eh/SortClass.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/TestClass.cpp b/lib/3rdparty/stlport/test/eh/TestClass.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/TestClass.cpp rename to lib/3rdparty/stlport/test/eh/TestClass.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/TestClass.h b/lib/3rdparty/stlport/test/eh/TestClass.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/TestClass.h rename to lib/3rdparty/stlport/test/eh/TestClass.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/Tests.h b/lib/3rdparty/stlport/test/eh/Tests.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/Tests.h rename to lib/3rdparty/stlport/test/eh/Tests.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/ThrowCompare.h b/lib/3rdparty/stlport/test/eh/ThrowCompare.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/ThrowCompare.h rename to lib/3rdparty/stlport/test/eh/ThrowCompare.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/bcb.mak b/lib/3rdparty/stlport/test/eh/bcb.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/bcb.mak rename to lib/3rdparty/stlport/test/eh/bcb.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/bug.cpp b/lib/3rdparty/stlport/test/eh/bug.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/bug.cpp rename to lib/3rdparty/stlport/test/eh/bug.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/como-linux.mak b/lib/3rdparty/stlport/test/eh/como-linux.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/como-linux.mak rename to lib/3rdparty/stlport/test/eh/como-linux.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/como.mak b/lib/3rdparty/stlport/test/eh/como.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/como.mak rename to lib/3rdparty/stlport/test/eh/como.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/cray.mak b/lib/3rdparty/stlport/test/eh/cray.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/cray.mak rename to lib/3rdparty/stlport/test/eh/cray.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/cygwin.mak b/lib/3rdparty/stlport/test/eh/cygwin.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/cygwin.mak rename to lib/3rdparty/stlport/test/eh/cygwin.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/deccxx.mak b/lib/3rdparty/stlport/test/eh/deccxx.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/deccxx.mak rename to lib/3rdparty/stlport/test/eh/deccxx.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/descrip.mms b/lib/3rdparty/stlport/test/eh/descrip.mms similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/descrip.mms rename to lib/3rdparty/stlport/test/eh/descrip.mms diff --git a/reactos/lib/3rdparty/stlport/test/eh/djgpp.mak b/lib/3rdparty/stlport/test/eh/djgpp.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/djgpp.mak rename to lib/3rdparty/stlport/test/eh/djgpp.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/egcs.mak b/lib/3rdparty/stlport/test/eh/egcs.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/egcs.mak rename to lib/3rdparty/stlport/test/eh/egcs.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/export b/lib/3rdparty/stlport/test/eh/export similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/export rename to lib/3rdparty/stlport/test/eh/export diff --git a/reactos/lib/3rdparty/stlport/test/eh/gcc-99r1.mak b/lib/3rdparty/stlport/test/eh/gcc-99r1.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/gcc-99r1.mak rename to lib/3rdparty/stlport/test/eh/gcc-99r1.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/gcc-amigaos-m68k.mak b/lib/3rdparty/stlport/test/eh/gcc-amigaos-m68k.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/gcc-amigaos-m68k.mak rename to lib/3rdparty/stlport/test/eh/gcc-amigaos-m68k.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/gcc-apple-macosx.mak b/lib/3rdparty/stlport/test/eh/gcc-apple-macosx.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/gcc-apple-macosx.mak rename to lib/3rdparty/stlport/test/eh/gcc-apple-macosx.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/gcc-freebsd.mak b/lib/3rdparty/stlport/test/eh/gcc-freebsd.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/gcc-freebsd.mak rename to lib/3rdparty/stlport/test/eh/gcc-freebsd.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/gcc-hp11.mak b/lib/3rdparty/stlport/test/eh/gcc-hp11.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/gcc-hp11.mak rename to lib/3rdparty/stlport/test/eh/gcc-hp11.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/gcc-irix.mak b/lib/3rdparty/stlport/test/eh/gcc-irix.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/gcc-irix.mak rename to lib/3rdparty/stlport/test/eh/gcc-irix.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/gcc-linux.mak b/lib/3rdparty/stlport/test/eh/gcc-linux.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/gcc-linux.mak rename to lib/3rdparty/stlport/test/eh/gcc-linux.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/gcc-netbsd.mak b/lib/3rdparty/stlport/test/eh/gcc-netbsd.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/gcc-netbsd.mak rename to lib/3rdparty/stlport/test/eh/gcc-netbsd.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/gcc.mak b/lib/3rdparty/stlport/test/eh/gcc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/gcc.mak rename to lib/3rdparty/stlport/test/eh/gcc.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/gcc7.mak b/lib/3rdparty/stlport/test/eh/gcc7.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/gcc7.mak rename to lib/3rdparty/stlport/test/eh/gcc7.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/hp.mak b/lib/3rdparty/stlport/test/eh/hp.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/hp.mak rename to lib/3rdparty/stlport/test/eh/hp.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/hpacc.mak b/lib/3rdparty/stlport/test/eh/hpacc.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/hpacc.mak rename to lib/3rdparty/stlport/test/eh/hpacc.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/intel.mak b/lib/3rdparty/stlport/test/eh/intel.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/intel.mak rename to lib/3rdparty/stlport/test/eh/intel.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/intel45.mak b/lib/3rdparty/stlport/test/eh/intel45.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/intel45.mak rename to lib/3rdparty/stlport/test/eh/intel45.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/intel50.mak b/lib/3rdparty/stlport/test/eh/intel50.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/intel50.mak rename to lib/3rdparty/stlport/test/eh/intel50.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/kai.mak b/lib/3rdparty/stlport/test/eh/kai.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/kai.mak rename to lib/3rdparty/stlport/test/eh/kai.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/locale.cpp b/lib/3rdparty/stlport/test/eh/locale.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/locale.cpp rename to lib/3rdparty/stlport/test/eh/locale.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/main.cpp b/lib/3rdparty/stlport/test/eh/main.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/main.cpp rename to lib/3rdparty/stlport/test/eh/main.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/mingw32.mak b/lib/3rdparty/stlport/test/eh/mingw32.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/mingw32.mak rename to lib/3rdparty/stlport/test/eh/mingw32.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/mwerks_console_OS_X.c b/lib/3rdparty/stlport/test/eh/mwerks_console_OS_X.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/mwerks_console_OS_X.c rename to lib/3rdparty/stlport/test/eh/mwerks_console_OS_X.c diff --git a/reactos/lib/3rdparty/stlport/test/eh/mwerks_debug_prefix.h b/lib/3rdparty/stlport/test/eh/mwerks_debug_prefix.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/mwerks_debug_prefix.h rename to lib/3rdparty/stlport/test/eh/mwerks_debug_prefix.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/mwerks_nosgi_debug_prefix.h b/lib/3rdparty/stlport/test/eh/mwerks_nosgi_debug_prefix.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/mwerks_nosgi_debug_prefix.h rename to lib/3rdparty/stlport/test/eh/mwerks_nosgi_debug_prefix.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/mwerks_nosgi_prefix.h b/lib/3rdparty/stlport/test/eh/mwerks_nosgi_prefix.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/mwerks_nosgi_prefix.h rename to lib/3rdparty/stlport/test/eh/mwerks_nosgi_prefix.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/mwerks_prefix.h b/lib/3rdparty/stlport/test/eh/mwerks_prefix.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/mwerks_prefix.h rename to lib/3rdparty/stlport/test/eh/mwerks_prefix.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/nc_alloc.cpp b/lib/3rdparty/stlport/test/eh/nc_alloc.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/nc_alloc.cpp rename to lib/3rdparty/stlport/test/eh/nc_alloc.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/nc_alloc.h b/lib/3rdparty/stlport/test/eh/nc_alloc.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/nc_alloc.h rename to lib/3rdparty/stlport/test/eh/nc_alloc.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/random_number.cpp b/lib/3rdparty/stlport/test/eh/random_number.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/random_number.cpp rename to lib/3rdparty/stlport/test/eh/random_number.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/random_number.h b/lib/3rdparty/stlport/test/eh/random_number.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/random_number.h rename to lib/3rdparty/stlport/test/eh/random_number.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/sgi_mipspro.mak b/lib/3rdparty/stlport/test/eh/sgi_mipspro.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/sgi_mipspro.mak rename to lib/3rdparty/stlport/test/eh/sgi_mipspro.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/sunpro-64.mak b/lib/3rdparty/stlport/test/eh/sunpro-64.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/sunpro-64.mak rename to lib/3rdparty/stlport/test/eh/sunpro-64.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/sunpro.mak b/lib/3rdparty/stlport/test/eh/sunpro.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/sunpro.mak rename to lib/3rdparty/stlport/test/eh/sunpro.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/sunpro42.mak b/lib/3rdparty/stlport/test/eh/sunpro42.mak similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/sunpro42.mak rename to lib/3rdparty/stlport/test/eh/sunpro42.mak diff --git a/reactos/lib/3rdparty/stlport/test/eh/test.cpp b/lib/3rdparty/stlport/test/eh/test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test.cpp rename to lib/3rdparty/stlport/test/eh/test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_algo.cpp b/lib/3rdparty/stlport/test/eh/test_algo.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_algo.cpp rename to lib/3rdparty/stlport/test/eh/test_algo.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_algobase.cpp b/lib/3rdparty/stlport/test/eh/test_algobase.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_algobase.cpp rename to lib/3rdparty/stlport/test/eh/test_algobase.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_assign_op.h b/lib/3rdparty/stlport/test/eh/test_assign_op.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_assign_op.h rename to lib/3rdparty/stlport/test/eh/test_assign_op.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_bit_vector.cpp b/lib/3rdparty/stlport/test/eh/test_bit_vector.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_bit_vector.cpp rename to lib/3rdparty/stlport/test/eh/test_bit_vector.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_bitset.cpp b/lib/3rdparty/stlport/test/eh/test_bitset.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_bitset.cpp rename to lib/3rdparty/stlport/test/eh/test_bitset.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_construct.h b/lib/3rdparty/stlport/test/eh/test_construct.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_construct.h rename to lib/3rdparty/stlport/test/eh/test_construct.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_deque.cpp b/lib/3rdparty/stlport/test/eh/test_deque.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_deque.cpp rename to lib/3rdparty/stlport/test/eh/test_deque.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_hash_map.cpp b/lib/3rdparty/stlport/test/eh/test_hash_map.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_hash_map.cpp rename to lib/3rdparty/stlport/test/eh/test_hash_map.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_hash_resize.h b/lib/3rdparty/stlport/test/eh/test_hash_resize.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_hash_resize.h rename to lib/3rdparty/stlport/test/eh/test_hash_resize.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_hash_set.cpp b/lib/3rdparty/stlport/test/eh/test_hash_set.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_hash_set.cpp rename to lib/3rdparty/stlport/test/eh/test_hash_set.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_insert.h b/lib/3rdparty/stlport/test/eh/test_insert.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_insert.h rename to lib/3rdparty/stlport/test/eh/test_insert.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_list.cpp b/lib/3rdparty/stlport/test/eh/test_list.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_list.cpp rename to lib/3rdparty/stlport/test/eh/test_list.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_map.cpp b/lib/3rdparty/stlport/test/eh/test_map.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_map.cpp rename to lib/3rdparty/stlport/test/eh/test_map.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_push_back.h b/lib/3rdparty/stlport/test/eh/test_push_back.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_push_back.h rename to lib/3rdparty/stlport/test/eh/test_push_back.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_push_front.h b/lib/3rdparty/stlport/test/eh/test_push_front.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_push_front.h rename to lib/3rdparty/stlport/test/eh/test_push_front.h diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_rope.cpp b/lib/3rdparty/stlport/test/eh/test_rope.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_rope.cpp rename to lib/3rdparty/stlport/test/eh/test_rope.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_set.cpp b/lib/3rdparty/stlport/test/eh/test_set.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_set.cpp rename to lib/3rdparty/stlport/test/eh/test_set.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_slist.cpp b/lib/3rdparty/stlport/test/eh/test_slist.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_slist.cpp rename to lib/3rdparty/stlport/test/eh/test_slist.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_string.cpp b/lib/3rdparty/stlport/test/eh/test_string.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_string.cpp rename to lib/3rdparty/stlport/test/eh/test_string.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_valarray.cpp b/lib/3rdparty/stlport/test/eh/test_valarray.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_valarray.cpp rename to lib/3rdparty/stlport/test/eh/test_valarray.cpp diff --git a/reactos/lib/3rdparty/stlport/test/eh/test_vector.cpp b/lib/3rdparty/stlport/test/eh/test_vector.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/eh/test_vector.cpp rename to lib/3rdparty/stlport/test/eh/test_vector.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/_template.cpp b/lib/3rdparty/stlport/test/unit/_template.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/_template.cpp rename to lib/3rdparty/stlport/test/unit/_template.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/accum_test.cpp b/lib/3rdparty/stlport/test/unit/accum_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/accum_test.cpp rename to lib/3rdparty/stlport/test/unit/accum_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/adj_test.cpp b/lib/3rdparty/stlport/test/unit/adj_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/adj_test.cpp rename to lib/3rdparty/stlport/test/unit/adj_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/advance_test.cpp b/lib/3rdparty/stlport/test/unit/advance_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/advance_test.cpp rename to lib/3rdparty/stlport/test/unit/advance_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/alg_test.cpp b/lib/3rdparty/stlport/test/unit/alg_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/alg_test.cpp rename to lib/3rdparty/stlport/test/unit/alg_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/algorithm_header_test.cpp b/lib/3rdparty/stlport/test/unit/algorithm_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/algorithm_header_test.cpp rename to lib/3rdparty/stlport/test/unit/algorithm_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/allocator_test.cpp b/lib/3rdparty/stlport/test/unit/allocator_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/allocator_test.cpp rename to lib/3rdparty/stlport/test/unit/allocator_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/assert_header_test.c b/lib/3rdparty/stlport/test/unit/assert_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/assert_header_test.c rename to lib/3rdparty/stlport/test/unit/assert_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/bcompos_test.cpp b/lib/3rdparty/stlport/test/unit/bcompos_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/bcompos_test.cpp rename to lib/3rdparty/stlport/test/unit/bcompos_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/bind_test.cpp b/lib/3rdparty/stlport/test/unit/bind_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/bind_test.cpp rename to lib/3rdparty/stlport/test/unit/bind_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/binsert_test.cpp b/lib/3rdparty/stlport/test/unit/binsert_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/binsert_test.cpp rename to lib/3rdparty/stlport/test/unit/binsert_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/bitset_header_test.cpp b/lib/3rdparty/stlport/test/unit/bitset_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/bitset_header_test.cpp rename to lib/3rdparty/stlport/test/unit/bitset_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/bitset_test.cpp b/lib/3rdparty/stlport/test/unit/bitset_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/bitset_test.cpp rename to lib/3rdparty/stlport/test/unit/bitset_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/bnegate_test.cpp b/lib/3rdparty/stlport/test/unit/bnegate_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/bnegate_test.cpp rename to lib/3rdparty/stlport/test/unit/bnegate_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/boost_check.cpp b/lib/3rdparty/stlport/test/unit/boost_check.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/boost_check.cpp rename to lib/3rdparty/stlport/test/unit/boost_check.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/bound_test.cpp b/lib/3rdparty/stlport/test/unit/bound_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/bound_test.cpp rename to lib/3rdparty/stlport/test/unit/bound_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/bsearch_test.cpp b/lib/3rdparty/stlport/test/unit/bsearch_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/bsearch_test.cpp rename to lib/3rdparty/stlport/test/unit/bsearch_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/bvector_test.cpp b/lib/3rdparty/stlport/test/unit/bvector_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/bvector_test.cpp rename to lib/3rdparty/stlport/test/unit/bvector_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/c_limits_header_test.c b/lib/3rdparty/stlport/test/unit/c_limits_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/c_limits_header_test.c rename to lib/3rdparty/stlport/test/unit/c_limits_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/c_locale_header_test.c b/lib/3rdparty/stlport/test/unit/c_locale_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/c_locale_header_test.c rename to lib/3rdparty/stlport/test/unit/c_locale_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/cassert_header_test.cpp b/lib/3rdparty/stlport/test/unit/cassert_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cassert_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cassert_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cctype_header_test.cpp b/lib/3rdparty/stlport/test/unit/cctype_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cctype_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cctype_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cerrno_header_test.cpp b/lib/3rdparty/stlport/test/unit/cerrno_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cerrno_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cerrno_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cfloat_header_test.cpp b/lib/3rdparty/stlport/test/unit/cfloat_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cfloat_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cfloat_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/ciso646_header_test.cpp b/lib/3rdparty/stlport/test/unit/ciso646_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/ciso646_header_test.cpp rename to lib/3rdparty/stlport/test/unit/ciso646_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/climits_header_test.cpp b/lib/3rdparty/stlport/test/unit/climits_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/climits_header_test.cpp rename to lib/3rdparty/stlport/test/unit/climits_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/clocale_header_test.cpp b/lib/3rdparty/stlport/test/unit/clocale_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/clocale_header_test.cpp rename to lib/3rdparty/stlport/test/unit/clocale_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cmath_header_test.cpp b/lib/3rdparty/stlport/test/unit/cmath_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cmath_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cmath_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cmath_test.cpp b/lib/3rdparty/stlport/test/unit/cmath_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cmath_test.cpp rename to lib/3rdparty/stlport/test/unit/cmath_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/codecvt_test.cpp b/lib/3rdparty/stlport/test/unit/codecvt_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/codecvt_test.cpp rename to lib/3rdparty/stlport/test/unit/codecvt_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/collate_facets_test.cpp b/lib/3rdparty/stlport/test/unit/collate_facets_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/collate_facets_test.cpp rename to lib/3rdparty/stlport/test/unit/collate_facets_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/complete_digits.h b/lib/3rdparty/stlport/test/unit/complete_digits.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/complete_digits.h rename to lib/3rdparty/stlport/test/unit/complete_digits.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/complex_header_test.cpp b/lib/3rdparty/stlport/test/unit/complex_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/complex_header_test.cpp rename to lib/3rdparty/stlport/test/unit/complex_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/config_test.cpp b/lib/3rdparty/stlport/test/unit/config_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/config_test.cpp rename to lib/3rdparty/stlport/test/unit/config_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/copy_test.cpp b/lib/3rdparty/stlport/test/unit/copy_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/copy_test.cpp rename to lib/3rdparty/stlport/test/unit/copy_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/count_test.cpp b/lib/3rdparty/stlport/test/unit/count_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/count_test.cpp rename to lib/3rdparty/stlport/test/unit/count_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cppunit/cppunit_mini.h b/lib/3rdparty/stlport/test/unit/cppunit/cppunit_mini.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cppunit/cppunit_mini.h rename to lib/3rdparty/stlport/test/unit/cppunit/cppunit_mini.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/cppunit/cppunit_proxy.h b/lib/3rdparty/stlport/test/unit/cppunit/cppunit_proxy.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cppunit/cppunit_proxy.h rename to lib/3rdparty/stlport/test/unit/cppunit/cppunit_proxy.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/cppunit/cppunit_timer.h b/lib/3rdparty/stlport/test/unit/cppunit/cppunit_timer.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cppunit/cppunit_timer.h rename to lib/3rdparty/stlport/test/unit/cppunit/cppunit_timer.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/cppunit/file_reporter.h b/lib/3rdparty/stlport/test/unit/cppunit/file_reporter.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cppunit/file_reporter.h rename to lib/3rdparty/stlport/test/unit/cppunit/file_reporter.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/cppunit/test_main.cpp b/lib/3rdparty/stlport/test/unit/cppunit/test_main.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cppunit/test_main.cpp rename to lib/3rdparty/stlport/test/unit/cppunit/test_main.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/csetjmp_header_test.cpp b/lib/3rdparty/stlport/test/unit/csetjmp_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/csetjmp_header_test.cpp rename to lib/3rdparty/stlport/test/unit/csetjmp_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/csignal_header_test.cpp b/lib/3rdparty/stlport/test/unit/csignal_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/csignal_header_test.cpp rename to lib/3rdparty/stlport/test/unit/csignal_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cstdarg_header_test.cpp b/lib/3rdparty/stlport/test/unit/cstdarg_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cstdarg_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cstdarg_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cstddef_header_test.cpp b/lib/3rdparty/stlport/test/unit/cstddef_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cstddef_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cstddef_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cstdio_header_test.cpp b/lib/3rdparty/stlport/test/unit/cstdio_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cstdio_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cstdio_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cstdlib_header_test.cpp b/lib/3rdparty/stlport/test/unit/cstdlib_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cstdlib_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cstdlib_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cstring_header_test.cpp b/lib/3rdparty/stlport/test/unit/cstring_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cstring_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cstring_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cstring_test.cpp b/lib/3rdparty/stlport/test/unit/cstring_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cstring_test.cpp rename to lib/3rdparty/stlport/test/unit/cstring_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/ctime_header_test.cpp b/lib/3rdparty/stlport/test/unit/ctime_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/ctime_header_test.cpp rename to lib/3rdparty/stlport/test/unit/ctime_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/ctype_facets_test.cpp b/lib/3rdparty/stlport/test/unit/ctype_facets_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/ctype_facets_test.cpp rename to lib/3rdparty/stlport/test/unit/ctype_facets_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/ctype_header_test.c b/lib/3rdparty/stlport/test/unit/ctype_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/ctype_header_test.c rename to lib/3rdparty/stlport/test/unit/ctype_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/cwchar_header_test.cpp b/lib/3rdparty/stlport/test/unit/cwchar_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cwchar_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cwchar_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/cwctype_header_test.cpp b/lib/3rdparty/stlport/test/unit/cwctype_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/cwctype_header_test.cpp rename to lib/3rdparty/stlport/test/unit/cwctype_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/deque_header_test.cpp b/lib/3rdparty/stlport/test/unit/deque_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/deque_header_test.cpp rename to lib/3rdparty/stlport/test/unit/deque_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/deque_test.cpp b/lib/3rdparty/stlport/test/unit/deque_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/deque_test.cpp rename to lib/3rdparty/stlport/test/unit/deque_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/divides_test.cpp b/lib/3rdparty/stlport/test/unit/divides_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/divides_test.cpp rename to lib/3rdparty/stlport/test/unit/divides_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/epilog_test.cpp b/lib/3rdparty/stlport/test/unit/epilog_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/epilog_test.cpp rename to lib/3rdparty/stlport/test/unit/epilog_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/equal_test.cpp b/lib/3rdparty/stlport/test/unit/equal_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/equal_test.cpp rename to lib/3rdparty/stlport/test/unit/equal_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/errno_header_test.c b/lib/3rdparty/stlport/test/unit/errno_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/errno_header_test.c rename to lib/3rdparty/stlport/test/unit/errno_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/exception_header_test.cpp b/lib/3rdparty/stlport/test/unit/exception_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/exception_header_test.cpp rename to lib/3rdparty/stlport/test/unit/exception_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/exception_test.cpp b/lib/3rdparty/stlport/test/unit/exception_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/exception_test.cpp rename to lib/3rdparty/stlport/test/unit/exception_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/fadapter.h b/lib/3rdparty/stlport/test/unit/fadapter.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/fadapter.h rename to lib/3rdparty/stlport/test/unit/fadapter.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/fib.h b/lib/3rdparty/stlport/test/unit/fib.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/fib.h rename to lib/3rdparty/stlport/test/unit/fib.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/fill_test.cpp b/lib/3rdparty/stlport/test/unit/fill_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/fill_test.cpp rename to lib/3rdparty/stlport/test/unit/fill_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/find_test.cpp b/lib/3rdparty/stlport/test/unit/find_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/find_test.cpp rename to lib/3rdparty/stlport/test/unit/find_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/finsert_test.cpp b/lib/3rdparty/stlport/test/unit/finsert_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/finsert_test.cpp rename to lib/3rdparty/stlport/test/unit/finsert_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/float_header_test.c b/lib/3rdparty/stlport/test/unit/float_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/float_header_test.c rename to lib/3rdparty/stlport/test/unit/float_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/foreach_test.cpp b/lib/3rdparty/stlport/test/unit/foreach_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/foreach_test.cpp rename to lib/3rdparty/stlport/test/unit/foreach_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/fstream_header_test.cpp b/lib/3rdparty/stlport/test/unit/fstream_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/fstream_header_test.cpp rename to lib/3rdparty/stlport/test/unit/fstream_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/fstream_test.cpp b/lib/3rdparty/stlport/test/unit/fstream_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/fstream_test.cpp rename to lib/3rdparty/stlport/test/unit/fstream_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/full_streambuf.h b/lib/3rdparty/stlport/test/unit/full_streambuf.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/full_streambuf.h rename to lib/3rdparty/stlport/test/unit/full_streambuf.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/func_test.cpp b/lib/3rdparty/stlport/test/unit/func_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/func_test.cpp rename to lib/3rdparty/stlport/test/unit/func_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/functional_header_test.cpp b/lib/3rdparty/stlport/test/unit/functional_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/functional_header_test.cpp rename to lib/3rdparty/stlport/test/unit/functional_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/generator_test.cpp b/lib/3rdparty/stlport/test/unit/generator_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/generator_test.cpp rename to lib/3rdparty/stlport/test/unit/generator_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/greater_test.cpp b/lib/3rdparty/stlport/test/unit/greater_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/greater_test.cpp rename to lib/3rdparty/stlport/test/unit/greater_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/hash_test.cpp b/lib/3rdparty/stlport/test/unit/hash_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/hash_test.cpp rename to lib/3rdparty/stlport/test/unit/hash_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/heap_test.cpp b/lib/3rdparty/stlport/test/unit/heap_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/heap_test.cpp rename to lib/3rdparty/stlport/test/unit/heap_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/includes_test.cpp b/lib/3rdparty/stlport/test/unit/includes_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/includes_test.cpp rename to lib/3rdparty/stlport/test/unit/includes_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/innerprod_test.cpp b/lib/3rdparty/stlport/test/unit/innerprod_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/innerprod_test.cpp rename to lib/3rdparty/stlport/test/unit/innerprod_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/inplace_test.cpp b/lib/3rdparty/stlport/test/unit/inplace_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/inplace_test.cpp rename to lib/3rdparty/stlport/test/unit/inplace_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/insert_test.cpp b/lib/3rdparty/stlport/test/unit/insert_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/insert_test.cpp rename to lib/3rdparty/stlport/test/unit/insert_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/ioiter_test.cpp b/lib/3rdparty/stlport/test/unit/ioiter_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/ioiter_test.cpp rename to lib/3rdparty/stlport/test/unit/ioiter_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/iomanip_header_test.cpp b/lib/3rdparty/stlport/test/unit/iomanip_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/iomanip_header_test.cpp rename to lib/3rdparty/stlport/test/unit/iomanip_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/ios_header_test.cpp b/lib/3rdparty/stlport/test/unit/ios_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/ios_header_test.cpp rename to lib/3rdparty/stlport/test/unit/ios_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/iosfwd_header_test.cpp b/lib/3rdparty/stlport/test/unit/iosfwd_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/iosfwd_header_test.cpp rename to lib/3rdparty/stlport/test/unit/iosfwd_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/iostream_header_test.cpp b/lib/3rdparty/stlport/test/unit/iostream_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/iostream_header_test.cpp rename to lib/3rdparty/stlport/test/unit/iostream_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/iostream_test.cpp b/lib/3rdparty/stlport/test/unit/iostream_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/iostream_test.cpp rename to lib/3rdparty/stlport/test/unit/iostream_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/iota.h b/lib/3rdparty/stlport/test/unit/iota.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/iota.h rename to lib/3rdparty/stlport/test/unit/iota.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/iota_test.cpp b/lib/3rdparty/stlport/test/unit/iota_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/iota_test.cpp rename to lib/3rdparty/stlport/test/unit/iota_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/iso646_header_test.c b/lib/3rdparty/stlport/test/unit/iso646_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/iso646_header_test.c rename to lib/3rdparty/stlport/test/unit/iso646_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/istmit_test.cpp b/lib/3rdparty/stlport/test/unit/istmit_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/istmit_test.cpp rename to lib/3rdparty/stlport/test/unit/istmit_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/istream_header_test.cpp b/lib/3rdparty/stlport/test/unit/istream_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/istream_header_test.cpp rename to lib/3rdparty/stlport/test/unit/istream_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/iter_test.cpp b/lib/3rdparty/stlport/test/unit/iter_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/iter_test.cpp rename to lib/3rdparty/stlport/test/unit/iter_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/iterator_header_test.cpp b/lib/3rdparty/stlport/test/unit/iterator_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/iterator_header_test.cpp rename to lib/3rdparty/stlport/test/unit/iterator_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/less_test.cpp b/lib/3rdparty/stlport/test/unit/less_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/less_test.cpp rename to lib/3rdparty/stlport/test/unit/less_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/lexcmp_test.cpp b/lib/3rdparty/stlport/test/unit/lexcmp_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/lexcmp_test.cpp rename to lib/3rdparty/stlport/test/unit/lexcmp_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/limits_header_test.cpp b/lib/3rdparty/stlport/test/unit/limits_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/limits_header_test.cpp rename to lib/3rdparty/stlport/test/unit/limits_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/limits_test.cpp b/lib/3rdparty/stlport/test/unit/limits_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/limits_test.cpp rename to lib/3rdparty/stlport/test/unit/limits_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/list_header_test.cpp b/lib/3rdparty/stlport/test/unit/list_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/list_header_test.cpp rename to lib/3rdparty/stlport/test/unit/list_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/list_test.cpp b/lib/3rdparty/stlport/test/unit/list_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/list_test.cpp rename to lib/3rdparty/stlport/test/unit/list_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/locale_header_test.cpp b/lib/3rdparty/stlport/test/unit/locale_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/locale_header_test.cpp rename to lib/3rdparty/stlport/test/unit/locale_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/locale_test.cpp b/lib/3rdparty/stlport/test/unit/locale_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/locale_test.cpp rename to lib/3rdparty/stlport/test/unit/locale_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/locale_test.h b/lib/3rdparty/stlport/test/unit/locale_test.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/locale_test.h rename to lib/3rdparty/stlport/test/unit/locale_test.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/logic_test.cpp b/lib/3rdparty/stlport/test/unit/logic_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/logic_test.cpp rename to lib/3rdparty/stlport/test/unit/logic_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/macro_checks.cpp b/lib/3rdparty/stlport/test/unit/macro_checks.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/macro_checks.cpp rename to lib/3rdparty/stlport/test/unit/macro_checks.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/map_header_test.cpp b/lib/3rdparty/stlport/test/unit/map_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/map_header_test.cpp rename to lib/3rdparty/stlport/test/unit/map_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/map_test.cpp b/lib/3rdparty/stlport/test/unit/map_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/map_test.cpp rename to lib/3rdparty/stlport/test/unit/map_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/math_aux.h b/lib/3rdparty/stlport/test/unit/math_aux.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/math_aux.h rename to lib/3rdparty/stlport/test/unit/math_aux.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/math_header_test.c b/lib/3rdparty/stlport/test/unit/math_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/math_header_test.c rename to lib/3rdparty/stlport/test/unit/math_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/max_test.cpp b/lib/3rdparty/stlport/test/unit/max_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/max_test.cpp rename to lib/3rdparty/stlport/test/unit/max_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/memory_header_test.cpp b/lib/3rdparty/stlport/test/unit/memory_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/memory_header_test.cpp rename to lib/3rdparty/stlport/test/unit/memory_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/memory_test.cpp b/lib/3rdparty/stlport/test/unit/memory_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/memory_test.cpp rename to lib/3rdparty/stlport/test/unit/memory_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/merge_test.cpp b/lib/3rdparty/stlport/test/unit/merge_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/merge_test.cpp rename to lib/3rdparty/stlport/test/unit/merge_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/messages_facets_test.cpp b/lib/3rdparty/stlport/test/unit/messages_facets_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/messages_facets_test.cpp rename to lib/3rdparty/stlport/test/unit/messages_facets_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/mfunptr_test.cpp b/lib/3rdparty/stlport/test/unit/mfunptr_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/mfunptr_test.cpp rename to lib/3rdparty/stlport/test/unit/mfunptr_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/min_test.cpp b/lib/3rdparty/stlport/test/unit/min_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/min_test.cpp rename to lib/3rdparty/stlport/test/unit/min_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/mismatch_test.cpp b/lib/3rdparty/stlport/test/unit/mismatch_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/mismatch_test.cpp rename to lib/3rdparty/stlport/test/unit/mismatch_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/modulus_test.cpp b/lib/3rdparty/stlport/test/unit/modulus_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/modulus_test.cpp rename to lib/3rdparty/stlport/test/unit/modulus_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/money_facets_test.cpp b/lib/3rdparty/stlport/test/unit/money_facets_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/money_facets_test.cpp rename to lib/3rdparty/stlport/test/unit/money_facets_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/multiset_test.cpp b/lib/3rdparty/stlport/test/unit/multiset_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/multiset_test.cpp rename to lib/3rdparty/stlport/test/unit/multiset_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/mvctor_declaration_test.cpp b/lib/3rdparty/stlport/test/unit/mvctor_declaration_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/mvctor_declaration_test.cpp rename to lib/3rdparty/stlport/test/unit/mvctor_declaration_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/mvctor_test.cpp b/lib/3rdparty/stlport/test/unit/mvctor_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/mvctor_test.cpp rename to lib/3rdparty/stlport/test/unit/mvctor_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/mvctor_test.h b/lib/3rdparty/stlport/test/unit/mvctor_test.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/mvctor_test.h rename to lib/3rdparty/stlport/test/unit/mvctor_test.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/mvctor_traits_test.cpp b/lib/3rdparty/stlport/test/unit/mvctor_traits_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/mvctor_traits_test.cpp rename to lib/3rdparty/stlport/test/unit/mvctor_traits_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/neq_test.cpp b/lib/3rdparty/stlport/test/unit/neq_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/neq_test.cpp rename to lib/3rdparty/stlport/test/unit/neq_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/new_header_test.cpp b/lib/3rdparty/stlport/test/unit/new_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/new_header_test.cpp rename to lib/3rdparty/stlport/test/unit/new_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/nthelm_test.cpp b/lib/3rdparty/stlport/test/unit/nthelm_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/nthelm_test.cpp rename to lib/3rdparty/stlport/test/unit/nthelm_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/num_facets_test.cpp b/lib/3rdparty/stlport/test/unit/num_facets_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/num_facets_test.cpp rename to lib/3rdparty/stlport/test/unit/num_facets_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/num_put_get_test.cpp b/lib/3rdparty/stlport/test/unit/num_put_get_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/num_put_get_test.cpp rename to lib/3rdparty/stlport/test/unit/num_put_get_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/numeric_header_test.cpp b/lib/3rdparty/stlport/test/unit/numeric_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/numeric_header_test.cpp rename to lib/3rdparty/stlport/test/unit/numeric_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/ostmit_test.cpp b/lib/3rdparty/stlport/test/unit/ostmit_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/ostmit_test.cpp rename to lib/3rdparty/stlport/test/unit/ostmit_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/ostream_header_test.cpp b/lib/3rdparty/stlport/test/unit/ostream_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/ostream_header_test.cpp rename to lib/3rdparty/stlport/test/unit/ostream_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/pair_test.cpp b/lib/3rdparty/stlport/test/unit/pair_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/pair_test.cpp rename to lib/3rdparty/stlport/test/unit/pair_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/partial_test.cpp b/lib/3rdparty/stlport/test/unit/partial_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/partial_test.cpp rename to lib/3rdparty/stlport/test/unit/partial_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/partition_test.cpp b/lib/3rdparty/stlport/test/unit/partition_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/partition_test.cpp rename to lib/3rdparty/stlport/test/unit/partition_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/perm_test.cpp b/lib/3rdparty/stlport/test/unit/perm_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/perm_test.cpp rename to lib/3rdparty/stlport/test/unit/perm_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/plusminus_test.cpp b/lib/3rdparty/stlport/test/unit/plusminus_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/plusminus_test.cpp rename to lib/3rdparty/stlport/test/unit/plusminus_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/ptr2_test.cpp b/lib/3rdparty/stlport/test/unit/ptr2_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/ptr2_test.cpp rename to lib/3rdparty/stlport/test/unit/ptr2_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/ptrspec_test.cpp b/lib/3rdparty/stlport/test/unit/ptrspec_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/ptrspec_test.cpp rename to lib/3rdparty/stlport/test/unit/ptrspec_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/queue_header_test.cpp b/lib/3rdparty/stlport/test/unit/queue_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/queue_header_test.cpp rename to lib/3rdparty/stlport/test/unit/queue_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/queue_test.cpp b/lib/3rdparty/stlport/test/unit/queue_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/queue_test.cpp rename to lib/3rdparty/stlport/test/unit/queue_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/rawriter_test.cpp b/lib/3rdparty/stlport/test/unit/rawriter_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/rawriter_test.cpp rename to lib/3rdparty/stlport/test/unit/rawriter_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/reference_wrapper_test.cpp b/lib/3rdparty/stlport/test/unit/reference_wrapper_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/reference_wrapper_test.cpp rename to lib/3rdparty/stlport/test/unit/reference_wrapper_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/resolve_name.cpp b/lib/3rdparty/stlport/test/unit/resolve_name.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/resolve_name.cpp rename to lib/3rdparty/stlport/test/unit/resolve_name.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/reviter_test.cpp b/lib/3rdparty/stlport/test/unit/reviter_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/reviter_test.cpp rename to lib/3rdparty/stlport/test/unit/reviter_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/rm_cp_test.cpp b/lib/3rdparty/stlport/test/unit/rm_cp_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/rm_cp_test.cpp rename to lib/3rdparty/stlport/test/unit/rm_cp_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/rndshf_test.cpp b/lib/3rdparty/stlport/test/unit/rndshf_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/rndshf_test.cpp rename to lib/3rdparty/stlport/test/unit/rndshf_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/rope_test.cpp b/lib/3rdparty/stlport/test/unit/rope_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/rope_test.cpp rename to lib/3rdparty/stlport/test/unit/rope_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/rotate_test.cpp b/lib/3rdparty/stlport/test/unit/rotate_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/rotate_test.cpp rename to lib/3rdparty/stlport/test/unit/rotate_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/search_test.cpp b/lib/3rdparty/stlport/test/unit/search_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/search_test.cpp rename to lib/3rdparty/stlport/test/unit/search_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/set_header_test.cpp b/lib/3rdparty/stlport/test/unit/set_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/set_header_test.cpp rename to lib/3rdparty/stlport/test/unit/set_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/set_test.cpp b/lib/3rdparty/stlport/test/unit/set_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/set_test.cpp rename to lib/3rdparty/stlport/test/unit/set_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/setdiff_test.cpp b/lib/3rdparty/stlport/test/unit/setdiff_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/setdiff_test.cpp rename to lib/3rdparty/stlport/test/unit/setdiff_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/setinter_test.cpp b/lib/3rdparty/stlport/test/unit/setinter_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/setinter_test.cpp rename to lib/3rdparty/stlport/test/unit/setinter_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/setjmp_header_test.c b/lib/3rdparty/stlport/test/unit/setjmp_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/setjmp_header_test.c rename to lib/3rdparty/stlport/test/unit/setjmp_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/setjmp_header_test2.cpp b/lib/3rdparty/stlport/test/unit/setjmp_header_test2.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/setjmp_header_test2.cpp rename to lib/3rdparty/stlport/test/unit/setjmp_header_test2.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/setunion_test.cpp b/lib/3rdparty/stlport/test/unit/setunion_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/setunion_test.cpp rename to lib/3rdparty/stlport/test/unit/setunion_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/shared_ptr_test.cpp b/lib/3rdparty/stlport/test/unit/shared_ptr_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/shared_ptr_test.cpp rename to lib/3rdparty/stlport/test/unit/shared_ptr_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/signal_header_test.c b/lib/3rdparty/stlport/test/unit/signal_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/signal_header_test.c rename to lib/3rdparty/stlport/test/unit/signal_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/slist_test.cpp b/lib/3rdparty/stlport/test/unit/slist_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/slist_test.cpp rename to lib/3rdparty/stlport/test/unit/slist_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/sort_test.cpp b/lib/3rdparty/stlport/test/unit/sort_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/sort_test.cpp rename to lib/3rdparty/stlport/test/unit/sort_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/sstream_header_test.cpp b/lib/3rdparty/stlport/test/unit/sstream_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/sstream_header_test.cpp rename to lib/3rdparty/stlport/test/unit/sstream_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/sstream_test.cpp b/lib/3rdparty/stlport/test/unit/sstream_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/sstream_test.cpp rename to lib/3rdparty/stlport/test/unit/sstream_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/stack_allocator.h b/lib/3rdparty/stlport/test/unit/stack_allocator.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/stack_allocator.h rename to lib/3rdparty/stlport/test/unit/stack_allocator.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/stack_header_test.cpp b/lib/3rdparty/stlport/test/unit/stack_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/stack_header_test.cpp rename to lib/3rdparty/stlport/test/unit/stack_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/stack_test.cpp b/lib/3rdparty/stlport/test/unit/stack_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/stack_test.cpp rename to lib/3rdparty/stlport/test/unit/stack_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/stdarg_header_test.c b/lib/3rdparty/stlport/test/unit/stdarg_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/stdarg_header_test.c rename to lib/3rdparty/stlport/test/unit/stdarg_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/stddef_header_test.c b/lib/3rdparty/stlport/test/unit/stddef_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/stddef_header_test.c rename to lib/3rdparty/stlport/test/unit/stddef_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/stdexcept_header_test.cpp b/lib/3rdparty/stlport/test/unit/stdexcept_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/stdexcept_header_test.cpp rename to lib/3rdparty/stlport/test/unit/stdexcept_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/stdio_header_test.c b/lib/3rdparty/stlport/test/unit/stdio_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/stdio_header_test.c rename to lib/3rdparty/stlport/test/unit/stdio_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/stdlib_header_test.c b/lib/3rdparty/stlport/test/unit/stdlib_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/stdlib_header_test.c rename to lib/3rdparty/stlport/test/unit/stdlib_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/stldbg_include.cpp b/lib/3rdparty/stlport/test/unit/stldbg_include.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/stldbg_include.cpp rename to lib/3rdparty/stlport/test/unit/stldbg_include.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/streambuf_header_test.cpp b/lib/3rdparty/stlport/test/unit/streambuf_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/streambuf_header_test.cpp rename to lib/3rdparty/stlport/test/unit/streambuf_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/string_header_test.c b/lib/3rdparty/stlport/test/unit/string_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/string_header_test.c rename to lib/3rdparty/stlport/test/unit/string_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/string_header_test.cpp b/lib/3rdparty/stlport/test/unit/string_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/string_header_test.cpp rename to lib/3rdparty/stlport/test/unit/string_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/string_test.cpp b/lib/3rdparty/stlport/test/unit/string_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/string_test.cpp rename to lib/3rdparty/stlport/test/unit/string_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/strstream_buffer_read_test.cpp b/lib/3rdparty/stlport/test/unit/strstream_buffer_read_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/strstream_buffer_read_test.cpp rename to lib/3rdparty/stlport/test/unit/strstream_buffer_read_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/strstream_header_test.cpp b/lib/3rdparty/stlport/test/unit/strstream_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/strstream_header_test.cpp rename to lib/3rdparty/stlport/test/unit/strstream_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/strstream_test.cpp b/lib/3rdparty/stlport/test/unit/strstream_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/strstream_test.cpp rename to lib/3rdparty/stlport/test/unit/strstream_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/swap_test.cpp b/lib/3rdparty/stlport/test/unit/swap_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/swap_test.cpp rename to lib/3rdparty/stlport/test/unit/swap_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/test_errno.cpp b/lib/3rdparty/stlport/test/unit/test_errno.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/test_errno.cpp rename to lib/3rdparty/stlport/test/unit/test_errno.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/time_facets_test.cpp b/lib/3rdparty/stlport/test/unit/time_facets_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/time_facets_test.cpp rename to lib/3rdparty/stlport/test/unit/time_facets_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/time_header_test.c b/lib/3rdparty/stlport/test/unit/time_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/time_header_test.c rename to lib/3rdparty/stlport/test/unit/time_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/times_test.cpp b/lib/3rdparty/stlport/test/unit/times_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/times_test.cpp rename to lib/3rdparty/stlport/test/unit/times_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/transform_test.cpp b/lib/3rdparty/stlport/test/unit/transform_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/transform_test.cpp rename to lib/3rdparty/stlport/test/unit/transform_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/type_traits_test.cpp b/lib/3rdparty/stlport/test/unit/type_traits_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/type_traits_test.cpp rename to lib/3rdparty/stlport/test/unit/type_traits_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/typeinfo_header_test.cpp b/lib/3rdparty/stlport/test/unit/typeinfo_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/typeinfo_header_test.cpp rename to lib/3rdparty/stlport/test/unit/typeinfo_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/unary.h b/lib/3rdparty/stlport/test/unit/unary.h similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/unary.h rename to lib/3rdparty/stlport/test/unit/unary.h diff --git a/reactos/lib/3rdparty/stlport/test/unit/unary_test.cpp b/lib/3rdparty/stlport/test/unit/unary_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/unary_test.cpp rename to lib/3rdparty/stlport/test/unit/unary_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/uninitialized_test.cpp b/lib/3rdparty/stlport/test/unit/uninitialized_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/uninitialized_test.cpp rename to lib/3rdparty/stlport/test/unit/uninitialized_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/unique_test.cpp b/lib/3rdparty/stlport/test/unit/unique_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/unique_test.cpp rename to lib/3rdparty/stlport/test/unit/unique_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/unordered_test.cpp b/lib/3rdparty/stlport/test/unit/unordered_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/unordered_test.cpp rename to lib/3rdparty/stlport/test/unit/unordered_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/utility_header_test.cpp b/lib/3rdparty/stlport/test/unit/utility_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/utility_header_test.cpp rename to lib/3rdparty/stlport/test/unit/utility_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/valarray_header_test.cpp b/lib/3rdparty/stlport/test/unit/valarray_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/valarray_header_test.cpp rename to lib/3rdparty/stlport/test/unit/valarray_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/valarray_test.cpp b/lib/3rdparty/stlport/test/unit/valarray_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/valarray_test.cpp rename to lib/3rdparty/stlport/test/unit/valarray_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/vector_header_test.cpp b/lib/3rdparty/stlport/test/unit/vector_header_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/vector_header_test.cpp rename to lib/3rdparty/stlport/test/unit/vector_header_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/vector_test.cpp b/lib/3rdparty/stlport/test/unit/vector_test.cpp similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/vector_test.cpp rename to lib/3rdparty/stlport/test/unit/vector_test.cpp diff --git a/reactos/lib/3rdparty/stlport/test/unit/wchar_header_test.c b/lib/3rdparty/stlport/test/unit/wchar_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/wchar_header_test.c rename to lib/3rdparty/stlport/test/unit/wchar_header_test.c diff --git a/reactos/lib/3rdparty/stlport/test/unit/wctype_header_test.c b/lib/3rdparty/stlport/test/unit/wctype_header_test.c similarity index 100% rename from reactos/lib/3rdparty/stlport/test/unit/wctype_header_test.c rename to lib/3rdparty/stlport/test/unit/wctype_header_test.c diff --git a/reactos/lib/3rdparty/zlib/CMakeLists.txt b/lib/3rdparty/zlib/CMakeLists.txt similarity index 100% rename from reactos/lib/3rdparty/zlib/CMakeLists.txt rename to lib/3rdparty/zlib/CMakeLists.txt diff --git a/reactos/lib/3rdparty/zlib/ChangeLog b/lib/3rdparty/zlib/ChangeLog similarity index 100% rename from reactos/lib/3rdparty/zlib/ChangeLog rename to lib/3rdparty/zlib/ChangeLog diff --git a/reactos/lib/3rdparty/zlib/FAQ b/lib/3rdparty/zlib/FAQ similarity index 100% rename from reactos/lib/3rdparty/zlib/FAQ rename to lib/3rdparty/zlib/FAQ diff --git a/reactos/lib/3rdparty/zlib/INDEX b/lib/3rdparty/zlib/INDEX similarity index 100% rename from reactos/lib/3rdparty/zlib/INDEX rename to lib/3rdparty/zlib/INDEX diff --git a/reactos/lib/3rdparty/zlib/Makefile.in b/lib/3rdparty/zlib/Makefile.in similarity index 100% rename from reactos/lib/3rdparty/zlib/Makefile.in rename to lib/3rdparty/zlib/Makefile.in diff --git a/reactos/lib/3rdparty/zlib/README b/lib/3rdparty/zlib/README similarity index 100% rename from reactos/lib/3rdparty/zlib/README rename to lib/3rdparty/zlib/README diff --git a/reactos/lib/3rdparty/zlib/adler32.c b/lib/3rdparty/zlib/adler32.c similarity index 100% rename from reactos/lib/3rdparty/zlib/adler32.c rename to lib/3rdparty/zlib/adler32.c diff --git a/reactos/lib/3rdparty/zlib/algorithm.txt b/lib/3rdparty/zlib/algorithm.txt similarity index 100% rename from reactos/lib/3rdparty/zlib/algorithm.txt rename to lib/3rdparty/zlib/algorithm.txt diff --git a/reactos/lib/3rdparty/zlib/compress.c b/lib/3rdparty/zlib/compress.c similarity index 100% rename from reactos/lib/3rdparty/zlib/compress.c rename to lib/3rdparty/zlib/compress.c diff --git a/reactos/lib/3rdparty/zlib/configure b/lib/3rdparty/zlib/configure similarity index 100% rename from reactos/lib/3rdparty/zlib/configure rename to lib/3rdparty/zlib/configure diff --git a/reactos/lib/3rdparty/zlib/crc32.c b/lib/3rdparty/zlib/crc32.c similarity index 100% rename from reactos/lib/3rdparty/zlib/crc32.c rename to lib/3rdparty/zlib/crc32.c diff --git a/reactos/lib/3rdparty/zlib/crc32.h b/lib/3rdparty/zlib/crc32.h similarity index 100% rename from reactos/lib/3rdparty/zlib/crc32.h rename to lib/3rdparty/zlib/crc32.h diff --git a/reactos/lib/3rdparty/zlib/deflate.c b/lib/3rdparty/zlib/deflate.c similarity index 100% rename from reactos/lib/3rdparty/zlib/deflate.c rename to lib/3rdparty/zlib/deflate.c diff --git a/reactos/lib/3rdparty/zlib/deflate.h b/lib/3rdparty/zlib/deflate.h similarity index 100% rename from reactos/lib/3rdparty/zlib/deflate.h rename to lib/3rdparty/zlib/deflate.h diff --git a/reactos/lib/3rdparty/zlib/gzclose.c b/lib/3rdparty/zlib/gzclose.c similarity index 100% rename from reactos/lib/3rdparty/zlib/gzclose.c rename to lib/3rdparty/zlib/gzclose.c diff --git a/reactos/lib/3rdparty/zlib/gzguts.h b/lib/3rdparty/zlib/gzguts.h similarity index 100% rename from reactos/lib/3rdparty/zlib/gzguts.h rename to lib/3rdparty/zlib/gzguts.h diff --git a/reactos/lib/3rdparty/zlib/gzlib.c b/lib/3rdparty/zlib/gzlib.c similarity index 100% rename from reactos/lib/3rdparty/zlib/gzlib.c rename to lib/3rdparty/zlib/gzlib.c diff --git a/reactos/lib/3rdparty/zlib/gzread.c b/lib/3rdparty/zlib/gzread.c similarity index 100% rename from reactos/lib/3rdparty/zlib/gzread.c rename to lib/3rdparty/zlib/gzread.c diff --git a/reactos/lib/3rdparty/zlib/gzwrite.c b/lib/3rdparty/zlib/gzwrite.c similarity index 100% rename from reactos/lib/3rdparty/zlib/gzwrite.c rename to lib/3rdparty/zlib/gzwrite.c diff --git a/reactos/lib/3rdparty/zlib/infback.c b/lib/3rdparty/zlib/infback.c similarity index 100% rename from reactos/lib/3rdparty/zlib/infback.c rename to lib/3rdparty/zlib/infback.c diff --git a/reactos/lib/3rdparty/zlib/inffast.c b/lib/3rdparty/zlib/inffast.c similarity index 100% rename from reactos/lib/3rdparty/zlib/inffast.c rename to lib/3rdparty/zlib/inffast.c diff --git a/reactos/lib/3rdparty/zlib/inffast.h b/lib/3rdparty/zlib/inffast.h similarity index 100% rename from reactos/lib/3rdparty/zlib/inffast.h rename to lib/3rdparty/zlib/inffast.h diff --git a/reactos/lib/3rdparty/zlib/inffixed.h b/lib/3rdparty/zlib/inffixed.h similarity index 100% rename from reactos/lib/3rdparty/zlib/inffixed.h rename to lib/3rdparty/zlib/inffixed.h diff --git a/reactos/lib/3rdparty/zlib/inflate.c b/lib/3rdparty/zlib/inflate.c similarity index 100% rename from reactos/lib/3rdparty/zlib/inflate.c rename to lib/3rdparty/zlib/inflate.c diff --git a/reactos/lib/3rdparty/zlib/inflate.h b/lib/3rdparty/zlib/inflate.h similarity index 100% rename from reactos/lib/3rdparty/zlib/inflate.h rename to lib/3rdparty/zlib/inflate.h diff --git a/reactos/lib/3rdparty/zlib/inftrees.c b/lib/3rdparty/zlib/inftrees.c similarity index 100% rename from reactos/lib/3rdparty/zlib/inftrees.c rename to lib/3rdparty/zlib/inftrees.c diff --git a/reactos/lib/3rdparty/zlib/inftrees.h b/lib/3rdparty/zlib/inftrees.h similarity index 100% rename from reactos/lib/3rdparty/zlib/inftrees.h rename to lib/3rdparty/zlib/inftrees.h diff --git a/reactos/lib/3rdparty/zlib/trees.c b/lib/3rdparty/zlib/trees.c similarity index 100% rename from reactos/lib/3rdparty/zlib/trees.c rename to lib/3rdparty/zlib/trees.c diff --git a/reactos/lib/3rdparty/zlib/trees.h b/lib/3rdparty/zlib/trees.h similarity index 100% rename from reactos/lib/3rdparty/zlib/trees.h rename to lib/3rdparty/zlib/trees.h diff --git a/reactos/lib/3rdparty/zlib/uncompr.c b/lib/3rdparty/zlib/uncompr.c similarity index 100% rename from reactos/lib/3rdparty/zlib/uncompr.c rename to lib/3rdparty/zlib/uncompr.c diff --git a/reactos/lib/3rdparty/zlib/zutil.c b/lib/3rdparty/zlib/zutil.c similarity index 100% rename from reactos/lib/3rdparty/zlib/zutil.c rename to lib/3rdparty/zlib/zutil.c diff --git a/reactos/lib/3rdparty/zlib/zutil.h b/lib/3rdparty/zlib/zutil.h similarity index 100% rename from reactos/lib/3rdparty/zlib/zutil.h rename to lib/3rdparty/zlib/zutil.h diff --git a/reactos/lib/CMakeLists.txt b/lib/CMakeLists.txt similarity index 100% rename from reactos/lib/CMakeLists.txt rename to lib/CMakeLists.txt diff --git a/reactos/lib/atl/CMakeLists.txt b/lib/atl/CMakeLists.txt similarity index 100% rename from reactos/lib/atl/CMakeLists.txt rename to lib/atl/CMakeLists.txt diff --git a/reactos/lib/atl/atlbase.cpp b/lib/atl/atlbase.cpp similarity index 100% rename from reactos/lib/atl/atlbase.cpp rename to lib/atl/atlbase.cpp diff --git a/reactos/lib/atl/atlbase.h b/lib/atl/atlbase.h similarity index 100% rename from reactos/lib/atl/atlbase.h rename to lib/atl/atlbase.h diff --git a/reactos/lib/atl/atlcom.h b/lib/atl/atlcom.h similarity index 100% rename from reactos/lib/atl/atlcom.h rename to lib/atl/atlcom.h diff --git a/reactos/lib/atl/atlcore.cpp b/lib/atl/atlcore.cpp similarity index 100% rename from reactos/lib/atl/atlcore.cpp rename to lib/atl/atlcore.cpp diff --git a/reactos/lib/atl/atlcore.h b/lib/atl/atlcore.h similarity index 100% rename from reactos/lib/atl/atlcore.h rename to lib/atl/atlcore.h diff --git a/reactos/lib/atl/atlwin.h b/lib/atl/atlwin.h similarity index 100% rename from reactos/lib/atl/atlwin.h rename to lib/atl/atlwin.h diff --git a/reactos/lib/atl/statreg.h b/lib/atl/statreg.h similarity index 100% rename from reactos/lib/atl/statreg.h rename to lib/atl/statreg.h diff --git a/reactos/lib/cmlib/CMakeLists.txt b/lib/cmlib/CMakeLists.txt similarity index 100% rename from reactos/lib/cmlib/CMakeLists.txt rename to lib/cmlib/CMakeLists.txt diff --git a/reactos/lib/cmlib/cmdata.h b/lib/cmlib/cmdata.h similarity index 100% rename from reactos/lib/cmlib/cmdata.h rename to lib/cmlib/cmdata.h diff --git a/reactos/lib/cmlib/cminit.c b/lib/cmlib/cminit.c similarity index 100% rename from reactos/lib/cmlib/cminit.c rename to lib/cmlib/cminit.c diff --git a/reactos/lib/cmlib/cmlib.h b/lib/cmlib/cmlib.h similarity index 100% rename from reactos/lib/cmlib/cmlib.h rename to lib/cmlib/cmlib.h diff --git a/reactos/lib/cmlib/hivebin.c b/lib/cmlib/hivebin.c similarity index 100% rename from reactos/lib/cmlib/hivebin.c rename to lib/cmlib/hivebin.c diff --git a/reactos/lib/cmlib/hivecell.c b/lib/cmlib/hivecell.c similarity index 100% rename from reactos/lib/cmlib/hivecell.c rename to lib/cmlib/hivecell.c diff --git a/reactos/lib/cmlib/hivedata.h b/lib/cmlib/hivedata.h similarity index 100% rename from reactos/lib/cmlib/hivedata.h rename to lib/cmlib/hivedata.h diff --git a/reactos/lib/cmlib/hiveinit.c b/lib/cmlib/hiveinit.c similarity index 100% rename from reactos/lib/cmlib/hiveinit.c rename to lib/cmlib/hiveinit.c diff --git a/reactos/lib/cmlib/hivesum.c b/lib/cmlib/hivesum.c similarity index 100% rename from reactos/lib/cmlib/hivesum.c rename to lib/cmlib/hivesum.c diff --git a/reactos/lib/cmlib/hivewrt.c b/lib/cmlib/hivewrt.c similarity index 100% rename from reactos/lib/cmlib/hivewrt.c rename to lib/cmlib/hivewrt.c diff --git a/reactos/lib/cportlib/CMakeLists.txt b/lib/cportlib/CMakeLists.txt similarity index 100% rename from reactos/lib/cportlib/CMakeLists.txt rename to lib/cportlib/CMakeLists.txt diff --git a/reactos/lib/cportlib/cport.c b/lib/cportlib/cport.c similarity index 100% rename from reactos/lib/cportlib/cport.c rename to lib/cportlib/cport.c diff --git a/reactos/lib/debugsup/debugsup-ntos.spec b/lib/debugsup/debugsup-ntos.spec similarity index 100% rename from reactos/lib/debugsup/debugsup-ntos.spec rename to lib/debugsup/debugsup-ntos.spec diff --git a/reactos/lib/dnslib/CMakeLists.txt b/lib/dnslib/CMakeLists.txt similarity index 100% rename from reactos/lib/dnslib/CMakeLists.txt rename to lib/dnslib/CMakeLists.txt diff --git a/reactos/lib/dnslib/addr.c b/lib/dnslib/addr.c similarity index 100% rename from reactos/lib/dnslib/addr.c rename to lib/dnslib/addr.c diff --git a/reactos/lib/dnslib/debug.c b/lib/dnslib/debug.c similarity index 100% rename from reactos/lib/dnslib/debug.c rename to lib/dnslib/debug.c diff --git a/reactos/lib/dnslib/dnsaddr.c b/lib/dnslib/dnsaddr.c similarity index 100% rename from reactos/lib/dnslib/dnsaddr.c rename to lib/dnslib/dnsaddr.c diff --git a/reactos/lib/dnslib/dnsutil.c b/lib/dnslib/dnsutil.c similarity index 100% rename from reactos/lib/dnslib/dnsutil.c rename to lib/dnslib/dnsutil.c diff --git a/reactos/lib/dnslib/flatbuf.c b/lib/dnslib/flatbuf.c similarity index 100% rename from reactos/lib/dnslib/flatbuf.c rename to lib/dnslib/flatbuf.c diff --git a/reactos/lib/dnslib/hostent.c b/lib/dnslib/hostent.c similarity index 100% rename from reactos/lib/dnslib/hostent.c rename to lib/dnslib/hostent.c diff --git a/reactos/lib/dnslib/inc/dnslib.h b/lib/dnslib/inc/dnslib.h similarity index 100% rename from reactos/lib/dnslib/inc/dnslib.h rename to lib/dnslib/inc/dnslib.h diff --git a/reactos/lib/dnslib/inc/precomp.h b/lib/dnslib/inc/precomp.h similarity index 100% rename from reactos/lib/dnslib/inc/precomp.h rename to lib/dnslib/inc/precomp.h diff --git a/reactos/lib/dnslib/inc/windnsp.h b/lib/dnslib/inc/windnsp.h similarity index 100% rename from reactos/lib/dnslib/inc/windnsp.h rename to lib/dnslib/inc/windnsp.h diff --git a/reactos/lib/dnslib/ip6.c b/lib/dnslib/ip6.c similarity index 100% rename from reactos/lib/dnslib/ip6.c rename to lib/dnslib/ip6.c diff --git a/reactos/lib/dnslib/memory.c b/lib/dnslib/memory.c similarity index 100% rename from reactos/lib/dnslib/memory.c rename to lib/dnslib/memory.c diff --git a/reactos/lib/dnslib/name.c b/lib/dnslib/name.c similarity index 100% rename from reactos/lib/dnslib/name.c rename to lib/dnslib/name.c diff --git a/reactos/lib/dnslib/print.c b/lib/dnslib/print.c similarity index 100% rename from reactos/lib/dnslib/print.c rename to lib/dnslib/print.c diff --git a/reactos/lib/dnslib/record.c b/lib/dnslib/record.c similarity index 100% rename from reactos/lib/dnslib/record.c rename to lib/dnslib/record.c diff --git a/reactos/lib/dnslib/rrprint.c b/lib/dnslib/rrprint.c similarity index 100% rename from reactos/lib/dnslib/rrprint.c rename to lib/dnslib/rrprint.c diff --git a/reactos/lib/dnslib/sablob.c b/lib/dnslib/sablob.c similarity index 100% rename from reactos/lib/dnslib/sablob.c rename to lib/dnslib/sablob.c diff --git a/reactos/lib/dnslib/straddr.c b/lib/dnslib/straddr.c similarity index 100% rename from reactos/lib/dnslib/straddr.c rename to lib/dnslib/straddr.c diff --git a/reactos/lib/dnslib/string.c b/lib/dnslib/string.c similarity index 100% rename from reactos/lib/dnslib/string.c rename to lib/dnslib/string.c diff --git a/reactos/lib/dnslib/table.c b/lib/dnslib/table.c similarity index 100% rename from reactos/lib/dnslib/table.c rename to lib/dnslib/table.c diff --git a/reactos/lib/dnslib/utf8.c b/lib/dnslib/utf8.c similarity index 100% rename from reactos/lib/dnslib/utf8.c rename to lib/dnslib/utf8.c diff --git a/reactos/lib/drivers/CMakeLists.txt b/lib/drivers/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/CMakeLists.txt rename to lib/drivers/CMakeLists.txt diff --git a/reactos/lib/drivers/chew/CMakeLists.txt b/lib/drivers/chew/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/chew/CMakeLists.txt rename to lib/drivers/chew/CMakeLists.txt diff --git a/reactos/lib/drivers/chew/workqueue.c b/lib/drivers/chew/workqueue.c similarity index 100% rename from reactos/lib/drivers/chew/workqueue.c rename to lib/drivers/chew/workqueue.c diff --git a/reactos/lib/drivers/csq/CMakeLists.txt b/lib/drivers/csq/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/csq/CMakeLists.txt rename to lib/drivers/csq/CMakeLists.txt diff --git a/reactos/lib/drivers/csq/SOURCES b/lib/drivers/csq/SOURCES similarity index 100% rename from reactos/lib/drivers/csq/SOURCES rename to lib/drivers/csq/SOURCES diff --git a/reactos/lib/drivers/csq/csq.c b/lib/drivers/csq/csq.c similarity index 100% rename from reactos/lib/drivers/csq/csq.c rename to lib/drivers/csq/csq.c diff --git a/reactos/lib/drivers/csq/csq.def b/lib/drivers/csq/csq.def similarity index 100% rename from reactos/lib/drivers/csq/csq.def rename to lib/drivers/csq/csq.def diff --git a/reactos/lib/drivers/hidparser/CMakeLists.txt b/lib/drivers/hidparser/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/hidparser/CMakeLists.txt rename to lib/drivers/hidparser/CMakeLists.txt diff --git a/reactos/lib/drivers/hidparser/api.c b/lib/drivers/hidparser/api.c similarity index 100% rename from reactos/lib/drivers/hidparser/api.c rename to lib/drivers/hidparser/api.c diff --git a/reactos/lib/drivers/hidparser/context.c b/lib/drivers/hidparser/context.c similarity index 100% rename from reactos/lib/drivers/hidparser/context.c rename to lib/drivers/hidparser/context.c diff --git a/reactos/lib/drivers/hidparser/hidparser.c b/lib/drivers/hidparser/hidparser.c similarity index 100% rename from reactos/lib/drivers/hidparser/hidparser.c rename to lib/drivers/hidparser/hidparser.c diff --git a/reactos/lib/drivers/hidparser/hidparser.h b/lib/drivers/hidparser/hidparser.h similarity index 100% rename from reactos/lib/drivers/hidparser/hidparser.h rename to lib/drivers/hidparser/hidparser.h diff --git a/reactos/lib/drivers/hidparser/parser.c b/lib/drivers/hidparser/parser.c similarity index 100% rename from reactos/lib/drivers/hidparser/parser.c rename to lib/drivers/hidparser/parser.c diff --git a/reactos/lib/drivers/hidparser/parser.h b/lib/drivers/hidparser/parser.h similarity index 100% rename from reactos/lib/drivers/hidparser/parser.h rename to lib/drivers/hidparser/parser.h diff --git a/reactos/lib/drivers/ip/CMakeLists.txt b/lib/drivers/ip/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/ip/CMakeLists.txt rename to lib/drivers/ip/CMakeLists.txt diff --git a/reactos/lib/drivers/ip/network/address.c b/lib/drivers/ip/network/address.c similarity index 100% rename from reactos/lib/drivers/ip/network/address.c rename to lib/drivers/ip/network/address.c diff --git a/reactos/lib/drivers/ip/network/arp.c b/lib/drivers/ip/network/arp.c similarity index 100% rename from reactos/lib/drivers/ip/network/arp.c rename to lib/drivers/ip/network/arp.c diff --git a/reactos/lib/drivers/ip/network/checksum.c b/lib/drivers/ip/network/checksum.c similarity index 100% rename from reactos/lib/drivers/ip/network/checksum.c rename to lib/drivers/ip/network/checksum.c diff --git a/reactos/lib/drivers/ip/network/i386/checksum.S b/lib/drivers/ip/network/i386/checksum.S similarity index 100% rename from reactos/lib/drivers/ip/network/i386/checksum.S rename to lib/drivers/ip/network/i386/checksum.S diff --git a/reactos/lib/drivers/ip/network/icmp.c b/lib/drivers/ip/network/icmp.c similarity index 100% rename from reactos/lib/drivers/ip/network/icmp.c rename to lib/drivers/ip/network/icmp.c diff --git a/reactos/lib/drivers/ip/network/interface.c b/lib/drivers/ip/network/interface.c similarity index 100% rename from reactos/lib/drivers/ip/network/interface.c rename to lib/drivers/ip/network/interface.c diff --git a/reactos/lib/drivers/ip/network/ip.c b/lib/drivers/ip/network/ip.c similarity index 100% rename from reactos/lib/drivers/ip/network/ip.c rename to lib/drivers/ip/network/ip.c diff --git a/reactos/lib/drivers/ip/network/loopback.c b/lib/drivers/ip/network/loopback.c similarity index 100% rename from reactos/lib/drivers/ip/network/loopback.c rename to lib/drivers/ip/network/loopback.c diff --git a/reactos/lib/drivers/ip/network/neighbor.c b/lib/drivers/ip/network/neighbor.c similarity index 100% rename from reactos/lib/drivers/ip/network/neighbor.c rename to lib/drivers/ip/network/neighbor.c diff --git a/reactos/lib/drivers/ip/network/ports.c b/lib/drivers/ip/network/ports.c similarity index 100% rename from reactos/lib/drivers/ip/network/ports.c rename to lib/drivers/ip/network/ports.c diff --git a/reactos/lib/drivers/ip/network/receive.c b/lib/drivers/ip/network/receive.c similarity index 100% rename from reactos/lib/drivers/ip/network/receive.c rename to lib/drivers/ip/network/receive.c diff --git a/reactos/lib/drivers/ip/network/router.c b/lib/drivers/ip/network/router.c similarity index 100% rename from reactos/lib/drivers/ip/network/router.c rename to lib/drivers/ip/network/router.c diff --git a/reactos/lib/drivers/ip/network/routines.c b/lib/drivers/ip/network/routines.c similarity index 100% rename from reactos/lib/drivers/ip/network/routines.c rename to lib/drivers/ip/network/routines.c diff --git a/reactos/lib/drivers/ip/network/transmit.c b/lib/drivers/ip/network/transmit.c similarity index 100% rename from reactos/lib/drivers/ip/network/transmit.c rename to lib/drivers/ip/network/transmit.c diff --git a/reactos/lib/drivers/ip/precomp.h b/lib/drivers/ip/precomp.h similarity index 100% rename from reactos/lib/drivers/ip/precomp.h rename to lib/drivers/ip/precomp.h diff --git a/reactos/lib/drivers/ip/transport/datagram/datagram.c b/lib/drivers/ip/transport/datagram/datagram.c similarity index 100% rename from reactos/lib/drivers/ip/transport/datagram/datagram.c rename to lib/drivers/ip/transport/datagram/datagram.c diff --git a/reactos/lib/drivers/ip/transport/rawip/rawip.c b/lib/drivers/ip/transport/rawip/rawip.c similarity index 100% rename from reactos/lib/drivers/ip/transport/rawip/rawip.c rename to lib/drivers/ip/transport/rawip/rawip.c diff --git a/reactos/lib/drivers/ip/transport/tcp/accept.c b/lib/drivers/ip/transport/tcp/accept.c similarity index 100% rename from reactos/lib/drivers/ip/transport/tcp/accept.c rename to lib/drivers/ip/transport/tcp/accept.c diff --git a/reactos/lib/drivers/ip/transport/tcp/event.c b/lib/drivers/ip/transport/tcp/event.c similarity index 100% rename from reactos/lib/drivers/ip/transport/tcp/event.c rename to lib/drivers/ip/transport/tcp/event.c diff --git a/reactos/lib/drivers/ip/transport/tcp/if.c b/lib/drivers/ip/transport/tcp/if.c similarity index 100% rename from reactos/lib/drivers/ip/transport/tcp/if.c rename to lib/drivers/ip/transport/tcp/if.c diff --git a/reactos/lib/drivers/ip/transport/tcp/tcp.c b/lib/drivers/ip/transport/tcp/tcp.c similarity index 100% rename from reactos/lib/drivers/ip/transport/tcp/tcp.c rename to lib/drivers/ip/transport/tcp/tcp.c diff --git a/reactos/lib/drivers/ip/transport/udp/udp.c b/lib/drivers/ip/transport/udp/udp.c similarity index 100% rename from reactos/lib/drivers/ip/transport/udp/udp.c rename to lib/drivers/ip/transport/udp/udp.c diff --git a/reactos/lib/drivers/libusb/CMakeLists.txt b/lib/drivers/libusb/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/libusb/CMakeLists.txt rename to lib/drivers/libusb/CMakeLists.txt diff --git a/reactos/lib/drivers/libusb/common_interfaces.h b/lib/drivers/libusb/common_interfaces.h similarity index 100% rename from reactos/lib/drivers/libusb/common_interfaces.h rename to lib/drivers/libusb/common_interfaces.h diff --git a/reactos/lib/drivers/libusb/hcd_controller.cpp b/lib/drivers/libusb/hcd_controller.cpp similarity index 100% rename from reactos/lib/drivers/libusb/hcd_controller.cpp rename to lib/drivers/libusb/hcd_controller.cpp diff --git a/reactos/lib/drivers/libusb/hub_controller.cpp b/lib/drivers/libusb/hub_controller.cpp similarity index 100% rename from reactos/lib/drivers/libusb/hub_controller.cpp rename to lib/drivers/libusb/hub_controller.cpp diff --git a/reactos/lib/drivers/libusb/libusb.cpp b/lib/drivers/libusb/libusb.cpp similarity index 100% rename from reactos/lib/drivers/libusb/libusb.cpp rename to lib/drivers/libusb/libusb.cpp diff --git a/reactos/lib/drivers/libusb/libusb.h b/lib/drivers/libusb/libusb.h similarity index 100% rename from reactos/lib/drivers/libusb/libusb.h rename to lib/drivers/libusb/libusb.h diff --git a/reactos/lib/drivers/libusb/memory_manager.cpp b/lib/drivers/libusb/memory_manager.cpp similarity index 100% rename from reactos/lib/drivers/libusb/memory_manager.cpp rename to lib/drivers/libusb/memory_manager.cpp diff --git a/reactos/lib/drivers/libusb/misc.cpp b/lib/drivers/libusb/misc.cpp similarity index 100% rename from reactos/lib/drivers/libusb/misc.cpp rename to lib/drivers/libusb/misc.cpp diff --git a/reactos/lib/drivers/libusb/purecall.cpp b/lib/drivers/libusb/purecall.cpp similarity index 100% rename from reactos/lib/drivers/libusb/purecall.cpp rename to lib/drivers/libusb/purecall.cpp diff --git a/reactos/lib/drivers/libusb/usb_device.cpp b/lib/drivers/libusb/usb_device.cpp similarity index 100% rename from reactos/lib/drivers/libusb/usb_device.cpp rename to lib/drivers/libusb/usb_device.cpp diff --git a/reactos/lib/drivers/lwip/CHANGELOG b/lib/drivers/lwip/CHANGELOG similarity index 100% rename from reactos/lib/drivers/lwip/CHANGELOG rename to lib/drivers/lwip/CHANGELOG diff --git a/reactos/lib/drivers/lwip/CMakeLists.txt b/lib/drivers/lwip/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/lwip/CMakeLists.txt rename to lib/drivers/lwip/CMakeLists.txt diff --git a/reactos/lib/drivers/lwip/COPYING b/lib/drivers/lwip/COPYING similarity index 100% rename from reactos/lib/drivers/lwip/COPYING rename to lib/drivers/lwip/COPYING diff --git a/reactos/lib/drivers/lwip/FILES b/lib/drivers/lwip/FILES similarity index 100% rename from reactos/lib/drivers/lwip/FILES rename to lib/drivers/lwip/FILES diff --git a/reactos/lib/drivers/lwip/README b/lib/drivers/lwip/README similarity index 100% rename from reactos/lib/drivers/lwip/README rename to lib/drivers/lwip/README diff --git a/reactos/lib/drivers/lwip/UPGRADING b/lib/drivers/lwip/UPGRADING similarity index 100% rename from reactos/lib/drivers/lwip/UPGRADING rename to lib/drivers/lwip/UPGRADING diff --git a/reactos/lib/drivers/lwip/doc/FILES b/lib/drivers/lwip/doc/FILES similarity index 100% rename from reactos/lib/drivers/lwip/doc/FILES rename to lib/drivers/lwip/doc/FILES diff --git a/reactos/lib/drivers/lwip/doc/contrib.txt b/lib/drivers/lwip/doc/contrib.txt similarity index 100% rename from reactos/lib/drivers/lwip/doc/contrib.txt rename to lib/drivers/lwip/doc/contrib.txt diff --git a/reactos/lib/drivers/lwip/doc/rawapi.txt b/lib/drivers/lwip/doc/rawapi.txt similarity index 100% rename from reactos/lib/drivers/lwip/doc/rawapi.txt rename to lib/drivers/lwip/doc/rawapi.txt diff --git a/reactos/lib/drivers/lwip/doc/savannah.txt b/lib/drivers/lwip/doc/savannah.txt similarity index 100% rename from reactos/lib/drivers/lwip/doc/savannah.txt rename to lib/drivers/lwip/doc/savannah.txt diff --git a/reactos/lib/drivers/lwip/doc/snmp_agent.txt b/lib/drivers/lwip/doc/snmp_agent.txt similarity index 100% rename from reactos/lib/drivers/lwip/doc/snmp_agent.txt rename to lib/drivers/lwip/doc/snmp_agent.txt diff --git a/reactos/lib/drivers/lwip/doc/sys_arch.txt b/lib/drivers/lwip/doc/sys_arch.txt similarity index 100% rename from reactos/lib/drivers/lwip/doc/sys_arch.txt rename to lib/drivers/lwip/doc/sys_arch.txt diff --git a/reactos/lib/drivers/lwip/src/FILES b/lib/drivers/lwip/src/FILES similarity index 100% rename from reactos/lib/drivers/lwip/src/FILES rename to lib/drivers/lwip/src/FILES diff --git a/reactos/lib/drivers/lwip/src/api/api_lib.c b/lib/drivers/lwip/src/api/api_lib.c similarity index 100% rename from reactos/lib/drivers/lwip/src/api/api_lib.c rename to lib/drivers/lwip/src/api/api_lib.c diff --git a/reactos/lib/drivers/lwip/src/api/api_msg.c b/lib/drivers/lwip/src/api/api_msg.c similarity index 100% rename from reactos/lib/drivers/lwip/src/api/api_msg.c rename to lib/drivers/lwip/src/api/api_msg.c diff --git a/reactos/lib/drivers/lwip/src/api/err.c b/lib/drivers/lwip/src/api/err.c similarity index 100% rename from reactos/lib/drivers/lwip/src/api/err.c rename to lib/drivers/lwip/src/api/err.c diff --git a/reactos/lib/drivers/lwip/src/api/netbuf.c b/lib/drivers/lwip/src/api/netbuf.c similarity index 100% rename from reactos/lib/drivers/lwip/src/api/netbuf.c rename to lib/drivers/lwip/src/api/netbuf.c diff --git a/reactos/lib/drivers/lwip/src/api/netdb.c b/lib/drivers/lwip/src/api/netdb.c similarity index 100% rename from reactos/lib/drivers/lwip/src/api/netdb.c rename to lib/drivers/lwip/src/api/netdb.c diff --git a/reactos/lib/drivers/lwip/src/api/netifapi.c b/lib/drivers/lwip/src/api/netifapi.c similarity index 100% rename from reactos/lib/drivers/lwip/src/api/netifapi.c rename to lib/drivers/lwip/src/api/netifapi.c diff --git a/reactos/lib/drivers/lwip/src/api/sockets.c b/lib/drivers/lwip/src/api/sockets.c similarity index 100% rename from reactos/lib/drivers/lwip/src/api/sockets.c rename to lib/drivers/lwip/src/api/sockets.c diff --git a/reactos/lib/drivers/lwip/src/api/tcpip.c b/lib/drivers/lwip/src/api/tcpip.c similarity index 100% rename from reactos/lib/drivers/lwip/src/api/tcpip.c rename to lib/drivers/lwip/src/api/tcpip.c diff --git a/reactos/lib/drivers/lwip/src/core/def.c b/lib/drivers/lwip/src/core/def.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/def.c rename to lib/drivers/lwip/src/core/def.c diff --git a/reactos/lib/drivers/lwip/src/core/dhcp.c b/lib/drivers/lwip/src/core/dhcp.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/dhcp.c rename to lib/drivers/lwip/src/core/dhcp.c diff --git a/reactos/lib/drivers/lwip/src/core/dns.c b/lib/drivers/lwip/src/core/dns.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/dns.c rename to lib/drivers/lwip/src/core/dns.c diff --git a/reactos/lib/drivers/lwip/src/core/init.c b/lib/drivers/lwip/src/core/init.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/init.c rename to lib/drivers/lwip/src/core/init.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv4/autoip.c b/lib/drivers/lwip/src/core/ipv4/autoip.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv4/autoip.c rename to lib/drivers/lwip/src/core/ipv4/autoip.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv4/icmp.c b/lib/drivers/lwip/src/core/ipv4/icmp.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv4/icmp.c rename to lib/drivers/lwip/src/core/ipv4/icmp.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv4/igmp.c b/lib/drivers/lwip/src/core/ipv4/igmp.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv4/igmp.c rename to lib/drivers/lwip/src/core/ipv4/igmp.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv4/inet.c b/lib/drivers/lwip/src/core/ipv4/inet.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv4/inet.c rename to lib/drivers/lwip/src/core/ipv4/inet.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv4/inet_chksum.c b/lib/drivers/lwip/src/core/ipv4/inet_chksum.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv4/inet_chksum.c rename to lib/drivers/lwip/src/core/ipv4/inet_chksum.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv4/ip.c b/lib/drivers/lwip/src/core/ipv4/ip.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv4/ip.c rename to lib/drivers/lwip/src/core/ipv4/ip.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv4/ip_addr.c b/lib/drivers/lwip/src/core/ipv4/ip_addr.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv4/ip_addr.c rename to lib/drivers/lwip/src/core/ipv4/ip_addr.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv4/ip_frag.c b/lib/drivers/lwip/src/core/ipv4/ip_frag.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv4/ip_frag.c rename to lib/drivers/lwip/src/core/ipv4/ip_frag.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv6/README b/lib/drivers/lwip/src/core/ipv6/README similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv6/README rename to lib/drivers/lwip/src/core/ipv6/README diff --git a/reactos/lib/drivers/lwip/src/core/ipv6/icmp6.c b/lib/drivers/lwip/src/core/ipv6/icmp6.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv6/icmp6.c rename to lib/drivers/lwip/src/core/ipv6/icmp6.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv6/inet6.c b/lib/drivers/lwip/src/core/ipv6/inet6.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv6/inet6.c rename to lib/drivers/lwip/src/core/ipv6/inet6.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv6/ip6.c b/lib/drivers/lwip/src/core/ipv6/ip6.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv6/ip6.c rename to lib/drivers/lwip/src/core/ipv6/ip6.c diff --git a/reactos/lib/drivers/lwip/src/core/ipv6/ip6_addr.c b/lib/drivers/lwip/src/core/ipv6/ip6_addr.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/ipv6/ip6_addr.c rename to lib/drivers/lwip/src/core/ipv6/ip6_addr.c diff --git a/reactos/lib/drivers/lwip/src/core/mem.c b/lib/drivers/lwip/src/core/mem.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/mem.c rename to lib/drivers/lwip/src/core/mem.c diff --git a/reactos/lib/drivers/lwip/src/core/memp.c b/lib/drivers/lwip/src/core/memp.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/memp.c rename to lib/drivers/lwip/src/core/memp.c diff --git a/reactos/lib/drivers/lwip/src/core/netif.c b/lib/drivers/lwip/src/core/netif.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/netif.c rename to lib/drivers/lwip/src/core/netif.c diff --git a/reactos/lib/drivers/lwip/src/core/pbuf.c b/lib/drivers/lwip/src/core/pbuf.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/pbuf.c rename to lib/drivers/lwip/src/core/pbuf.c diff --git a/reactos/lib/drivers/lwip/src/core/raw.c b/lib/drivers/lwip/src/core/raw.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/raw.c rename to lib/drivers/lwip/src/core/raw.c diff --git a/reactos/lib/drivers/lwip/src/core/snmp/asn1_dec.c b/lib/drivers/lwip/src/core/snmp/asn1_dec.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/snmp/asn1_dec.c rename to lib/drivers/lwip/src/core/snmp/asn1_dec.c diff --git a/reactos/lib/drivers/lwip/src/core/snmp/asn1_enc.c b/lib/drivers/lwip/src/core/snmp/asn1_enc.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/snmp/asn1_enc.c rename to lib/drivers/lwip/src/core/snmp/asn1_enc.c diff --git a/reactos/lib/drivers/lwip/src/core/snmp/mib2.c b/lib/drivers/lwip/src/core/snmp/mib2.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/snmp/mib2.c rename to lib/drivers/lwip/src/core/snmp/mib2.c diff --git a/reactos/lib/drivers/lwip/src/core/snmp/mib_structs.c b/lib/drivers/lwip/src/core/snmp/mib_structs.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/snmp/mib_structs.c rename to lib/drivers/lwip/src/core/snmp/mib_structs.c diff --git a/reactos/lib/drivers/lwip/src/core/snmp/msg_in.c b/lib/drivers/lwip/src/core/snmp/msg_in.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/snmp/msg_in.c rename to lib/drivers/lwip/src/core/snmp/msg_in.c diff --git a/reactos/lib/drivers/lwip/src/core/snmp/msg_out.c b/lib/drivers/lwip/src/core/snmp/msg_out.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/snmp/msg_out.c rename to lib/drivers/lwip/src/core/snmp/msg_out.c diff --git a/reactos/lib/drivers/lwip/src/core/stats.c b/lib/drivers/lwip/src/core/stats.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/stats.c rename to lib/drivers/lwip/src/core/stats.c diff --git a/reactos/lib/drivers/lwip/src/core/sys.c b/lib/drivers/lwip/src/core/sys.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/sys.c rename to lib/drivers/lwip/src/core/sys.c diff --git a/reactos/lib/drivers/lwip/src/core/tcp.c b/lib/drivers/lwip/src/core/tcp.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/tcp.c rename to lib/drivers/lwip/src/core/tcp.c diff --git a/reactos/lib/drivers/lwip/src/core/tcp_in.c b/lib/drivers/lwip/src/core/tcp_in.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/tcp_in.c rename to lib/drivers/lwip/src/core/tcp_in.c diff --git a/reactos/lib/drivers/lwip/src/core/tcp_out.c b/lib/drivers/lwip/src/core/tcp_out.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/tcp_out.c rename to lib/drivers/lwip/src/core/tcp_out.c diff --git a/reactos/lib/drivers/lwip/src/core/timers.c b/lib/drivers/lwip/src/core/timers.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/timers.c rename to lib/drivers/lwip/src/core/timers.c diff --git a/reactos/lib/drivers/lwip/src/core/udp.c b/lib/drivers/lwip/src/core/udp.c similarity index 100% rename from reactos/lib/drivers/lwip/src/core/udp.c rename to lib/drivers/lwip/src/core/udp.c diff --git a/reactos/lib/drivers/lwip/src/include/arch/bpstruct.h b/lib/drivers/lwip/src/include/arch/bpstruct.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/arch/bpstruct.h rename to lib/drivers/lwip/src/include/arch/bpstruct.h diff --git a/reactos/lib/drivers/lwip/src/include/arch/cc.h b/lib/drivers/lwip/src/include/arch/cc.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/arch/cc.h rename to lib/drivers/lwip/src/include/arch/cc.h diff --git a/reactos/lib/drivers/lwip/src/include/arch/epstruct.h b/lib/drivers/lwip/src/include/arch/epstruct.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/arch/epstruct.h rename to lib/drivers/lwip/src/include/arch/epstruct.h diff --git a/reactos/lib/drivers/lwip/src/include/arch/perf.h b/lib/drivers/lwip/src/include/arch/perf.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/arch/perf.h rename to lib/drivers/lwip/src/include/arch/perf.h diff --git a/reactos/lib/drivers/lwip/src/include/arch/sys_arch.h b/lib/drivers/lwip/src/include/arch/sys_arch.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/arch/sys_arch.h rename to lib/drivers/lwip/src/include/arch/sys_arch.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv4/lwip/autoip.h b/lib/drivers/lwip/src/include/ipv4/lwip/autoip.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv4/lwip/autoip.h rename to lib/drivers/lwip/src/include/ipv4/lwip/autoip.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv4/lwip/icmp.h b/lib/drivers/lwip/src/include/ipv4/lwip/icmp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv4/lwip/icmp.h rename to lib/drivers/lwip/src/include/ipv4/lwip/icmp.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv4/lwip/igmp.h b/lib/drivers/lwip/src/include/ipv4/lwip/igmp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv4/lwip/igmp.h rename to lib/drivers/lwip/src/include/ipv4/lwip/igmp.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv4/lwip/inet.h b/lib/drivers/lwip/src/include/ipv4/lwip/inet.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv4/lwip/inet.h rename to lib/drivers/lwip/src/include/ipv4/lwip/inet.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv4/lwip/inet_chksum.h b/lib/drivers/lwip/src/include/ipv4/lwip/inet_chksum.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv4/lwip/inet_chksum.h rename to lib/drivers/lwip/src/include/ipv4/lwip/inet_chksum.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv4/lwip/ip.h b/lib/drivers/lwip/src/include/ipv4/lwip/ip.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv4/lwip/ip.h rename to lib/drivers/lwip/src/include/ipv4/lwip/ip.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv4/lwip/ip_addr.h b/lib/drivers/lwip/src/include/ipv4/lwip/ip_addr.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv4/lwip/ip_addr.h rename to lib/drivers/lwip/src/include/ipv4/lwip/ip_addr.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv4/lwip/ip_frag.h b/lib/drivers/lwip/src/include/ipv4/lwip/ip_frag.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv4/lwip/ip_frag.h rename to lib/drivers/lwip/src/include/ipv4/lwip/ip_frag.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv6/lwip/icmp.h b/lib/drivers/lwip/src/include/ipv6/lwip/icmp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv6/lwip/icmp.h rename to lib/drivers/lwip/src/include/ipv6/lwip/icmp.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv6/lwip/inet.h b/lib/drivers/lwip/src/include/ipv6/lwip/inet.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv6/lwip/inet.h rename to lib/drivers/lwip/src/include/ipv6/lwip/inet.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv6/lwip/ip.h b/lib/drivers/lwip/src/include/ipv6/lwip/ip.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv6/lwip/ip.h rename to lib/drivers/lwip/src/include/ipv6/lwip/ip.h diff --git a/reactos/lib/drivers/lwip/src/include/ipv6/lwip/ip_addr.h b/lib/drivers/lwip/src/include/ipv6/lwip/ip_addr.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/ipv6/lwip/ip_addr.h rename to lib/drivers/lwip/src/include/ipv6/lwip/ip_addr.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/api.h b/lib/drivers/lwip/src/include/lwip/api.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/api.h rename to lib/drivers/lwip/src/include/lwip/api.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/api_msg.h b/lib/drivers/lwip/src/include/lwip/api_msg.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/api_msg.h rename to lib/drivers/lwip/src/include/lwip/api_msg.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/arch.h b/lib/drivers/lwip/src/include/lwip/arch.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/arch.h rename to lib/drivers/lwip/src/include/lwip/arch.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/debug.h b/lib/drivers/lwip/src/include/lwip/debug.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/debug.h rename to lib/drivers/lwip/src/include/lwip/debug.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/def.h b/lib/drivers/lwip/src/include/lwip/def.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/def.h rename to lib/drivers/lwip/src/include/lwip/def.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/dhcp.h b/lib/drivers/lwip/src/include/lwip/dhcp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/dhcp.h rename to lib/drivers/lwip/src/include/lwip/dhcp.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/dns.h b/lib/drivers/lwip/src/include/lwip/dns.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/dns.h rename to lib/drivers/lwip/src/include/lwip/dns.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/err.h b/lib/drivers/lwip/src/include/lwip/err.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/err.h rename to lib/drivers/lwip/src/include/lwip/err.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/init.h b/lib/drivers/lwip/src/include/lwip/init.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/init.h rename to lib/drivers/lwip/src/include/lwip/init.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/mem.h b/lib/drivers/lwip/src/include/lwip/mem.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/mem.h rename to lib/drivers/lwip/src/include/lwip/mem.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/memp.h b/lib/drivers/lwip/src/include/lwip/memp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/memp.h rename to lib/drivers/lwip/src/include/lwip/memp.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/memp_std.h b/lib/drivers/lwip/src/include/lwip/memp_std.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/memp_std.h rename to lib/drivers/lwip/src/include/lwip/memp_std.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/netbuf.h b/lib/drivers/lwip/src/include/lwip/netbuf.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/netbuf.h rename to lib/drivers/lwip/src/include/lwip/netbuf.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/netdb.h b/lib/drivers/lwip/src/include/lwip/netdb.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/netdb.h rename to lib/drivers/lwip/src/include/lwip/netdb.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/netif.h b/lib/drivers/lwip/src/include/lwip/netif.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/netif.h rename to lib/drivers/lwip/src/include/lwip/netif.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/netifapi.h b/lib/drivers/lwip/src/include/lwip/netifapi.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/netifapi.h rename to lib/drivers/lwip/src/include/lwip/netifapi.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/opt.h b/lib/drivers/lwip/src/include/lwip/opt.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/opt.h rename to lib/drivers/lwip/src/include/lwip/opt.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/pbuf.h b/lib/drivers/lwip/src/include/lwip/pbuf.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/pbuf.h rename to lib/drivers/lwip/src/include/lwip/pbuf.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/raw.h b/lib/drivers/lwip/src/include/lwip/raw.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/raw.h rename to lib/drivers/lwip/src/include/lwip/raw.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/sio.h b/lib/drivers/lwip/src/include/lwip/sio.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/sio.h rename to lib/drivers/lwip/src/include/lwip/sio.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/snmp.h b/lib/drivers/lwip/src/include/lwip/snmp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/snmp.h rename to lib/drivers/lwip/src/include/lwip/snmp.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/snmp_asn1.h b/lib/drivers/lwip/src/include/lwip/snmp_asn1.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/snmp_asn1.h rename to lib/drivers/lwip/src/include/lwip/snmp_asn1.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/snmp_msg.h b/lib/drivers/lwip/src/include/lwip/snmp_msg.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/snmp_msg.h rename to lib/drivers/lwip/src/include/lwip/snmp_msg.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/snmp_structs.h b/lib/drivers/lwip/src/include/lwip/snmp_structs.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/snmp_structs.h rename to lib/drivers/lwip/src/include/lwip/snmp_structs.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/sockets.h b/lib/drivers/lwip/src/include/lwip/sockets.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/sockets.h rename to lib/drivers/lwip/src/include/lwip/sockets.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/stats.h b/lib/drivers/lwip/src/include/lwip/stats.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/stats.h rename to lib/drivers/lwip/src/include/lwip/stats.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/sys.h b/lib/drivers/lwip/src/include/lwip/sys.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/sys.h rename to lib/drivers/lwip/src/include/lwip/sys.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/tcp.h b/lib/drivers/lwip/src/include/lwip/tcp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/tcp.h rename to lib/drivers/lwip/src/include/lwip/tcp.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/tcp_impl.h b/lib/drivers/lwip/src/include/lwip/tcp_impl.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/tcp_impl.h rename to lib/drivers/lwip/src/include/lwip/tcp_impl.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/tcpip.h b/lib/drivers/lwip/src/include/lwip/tcpip.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/tcpip.h rename to lib/drivers/lwip/src/include/lwip/tcpip.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/timers.h b/lib/drivers/lwip/src/include/lwip/timers.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/timers.h rename to lib/drivers/lwip/src/include/lwip/timers.h diff --git a/reactos/lib/drivers/lwip/src/include/lwip/udp.h b/lib/drivers/lwip/src/include/lwip/udp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwip/udp.h rename to lib/drivers/lwip/src/include/lwip/udp.h diff --git a/reactos/lib/drivers/lwip/src/include/lwipopts.h b/lib/drivers/lwip/src/include/lwipopts.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/lwipopts.h rename to lib/drivers/lwip/src/include/lwipopts.h diff --git a/reactos/lib/drivers/lwip/src/include/netif/etharp.h b/lib/drivers/lwip/src/include/netif/etharp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/netif/etharp.h rename to lib/drivers/lwip/src/include/netif/etharp.h diff --git a/reactos/lib/drivers/lwip/src/include/netif/loopif.h b/lib/drivers/lwip/src/include/netif/loopif.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/netif/loopif.h rename to lib/drivers/lwip/src/include/netif/loopif.h diff --git a/reactos/lib/drivers/lwip/src/include/netif/ppp_oe.h b/lib/drivers/lwip/src/include/netif/ppp_oe.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/netif/ppp_oe.h rename to lib/drivers/lwip/src/include/netif/ppp_oe.h diff --git a/reactos/lib/drivers/lwip/src/include/netif/slipif.h b/lib/drivers/lwip/src/include/netif/slipif.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/netif/slipif.h rename to lib/drivers/lwip/src/include/netif/slipif.h diff --git a/reactos/lib/drivers/lwip/src/include/rosip.h b/lib/drivers/lwip/src/include/rosip.h similarity index 100% rename from reactos/lib/drivers/lwip/src/include/rosip.h rename to lib/drivers/lwip/src/include/rosip.h diff --git a/reactos/lib/drivers/lwip/src/netif/FILES b/lib/drivers/lwip/src/netif/FILES similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/FILES rename to lib/drivers/lwip/src/netif/FILES diff --git a/reactos/lib/drivers/lwip/src/netif/etharp.c b/lib/drivers/lwip/src/netif/etharp.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/etharp.c rename to lib/drivers/lwip/src/netif/etharp.c diff --git a/reactos/lib/drivers/lwip/src/netif/ethernetif.c b/lib/drivers/lwip/src/netif/ethernetif.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ethernetif.c rename to lib/drivers/lwip/src/netif/ethernetif.c diff --git a/reactos/lib/drivers/lwip/src/netif/loopif.c b/lib/drivers/lwip/src/netif/loopif.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/loopif.c rename to lib/drivers/lwip/src/netif/loopif.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/auth.c b/lib/drivers/lwip/src/netif/ppp/auth.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/auth.c rename to lib/drivers/lwip/src/netif/ppp/auth.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/auth.h b/lib/drivers/lwip/src/netif/ppp/auth.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/auth.h rename to lib/drivers/lwip/src/netif/ppp/auth.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/chap.c b/lib/drivers/lwip/src/netif/ppp/chap.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/chap.c rename to lib/drivers/lwip/src/netif/ppp/chap.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/chap.h b/lib/drivers/lwip/src/netif/ppp/chap.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/chap.h rename to lib/drivers/lwip/src/netif/ppp/chap.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/chpms.c b/lib/drivers/lwip/src/netif/ppp/chpms.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/chpms.c rename to lib/drivers/lwip/src/netif/ppp/chpms.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/chpms.h b/lib/drivers/lwip/src/netif/ppp/chpms.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/chpms.h rename to lib/drivers/lwip/src/netif/ppp/chpms.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/fsm.c b/lib/drivers/lwip/src/netif/ppp/fsm.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/fsm.c rename to lib/drivers/lwip/src/netif/ppp/fsm.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/fsm.h b/lib/drivers/lwip/src/netif/ppp/fsm.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/fsm.h rename to lib/drivers/lwip/src/netif/ppp/fsm.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/ipcp.c b/lib/drivers/lwip/src/netif/ppp/ipcp.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/ipcp.c rename to lib/drivers/lwip/src/netif/ppp/ipcp.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/ipcp.h b/lib/drivers/lwip/src/netif/ppp/ipcp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/ipcp.h rename to lib/drivers/lwip/src/netif/ppp/ipcp.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/lcp.c b/lib/drivers/lwip/src/netif/ppp/lcp.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/lcp.c rename to lib/drivers/lwip/src/netif/ppp/lcp.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/lcp.h b/lib/drivers/lwip/src/netif/ppp/lcp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/lcp.h rename to lib/drivers/lwip/src/netif/ppp/lcp.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/magic.c b/lib/drivers/lwip/src/netif/ppp/magic.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/magic.c rename to lib/drivers/lwip/src/netif/ppp/magic.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/magic.h b/lib/drivers/lwip/src/netif/ppp/magic.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/magic.h rename to lib/drivers/lwip/src/netif/ppp/magic.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/md5.c b/lib/drivers/lwip/src/netif/ppp/md5.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/md5.c rename to lib/drivers/lwip/src/netif/ppp/md5.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/md5.h b/lib/drivers/lwip/src/netif/ppp/md5.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/md5.h rename to lib/drivers/lwip/src/netif/ppp/md5.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/pap.c b/lib/drivers/lwip/src/netif/ppp/pap.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/pap.c rename to lib/drivers/lwip/src/netif/ppp/pap.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/pap.h b/lib/drivers/lwip/src/netif/ppp/pap.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/pap.h rename to lib/drivers/lwip/src/netif/ppp/pap.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/ppp.c b/lib/drivers/lwip/src/netif/ppp/ppp.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/ppp.c rename to lib/drivers/lwip/src/netif/ppp/ppp.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/ppp.h b/lib/drivers/lwip/src/netif/ppp/ppp.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/ppp.h rename to lib/drivers/lwip/src/netif/ppp/ppp.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/ppp_oe.c b/lib/drivers/lwip/src/netif/ppp/ppp_oe.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/ppp_oe.c rename to lib/drivers/lwip/src/netif/ppp/ppp_oe.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/pppdebug.h b/lib/drivers/lwip/src/netif/ppp/pppdebug.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/pppdebug.h rename to lib/drivers/lwip/src/netif/ppp/pppdebug.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/randm.c b/lib/drivers/lwip/src/netif/ppp/randm.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/randm.c rename to lib/drivers/lwip/src/netif/ppp/randm.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/randm.h b/lib/drivers/lwip/src/netif/ppp/randm.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/randm.h rename to lib/drivers/lwip/src/netif/ppp/randm.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/vj.c b/lib/drivers/lwip/src/netif/ppp/vj.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/vj.c rename to lib/drivers/lwip/src/netif/ppp/vj.c diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/vj.h b/lib/drivers/lwip/src/netif/ppp/vj.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/vj.h rename to lib/drivers/lwip/src/netif/ppp/vj.h diff --git a/reactos/lib/drivers/lwip/src/netif/ppp/vjbsdhdr.h b/lib/drivers/lwip/src/netif/ppp/vjbsdhdr.h similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/ppp/vjbsdhdr.h rename to lib/drivers/lwip/src/netif/ppp/vjbsdhdr.h diff --git a/reactos/lib/drivers/lwip/src/netif/slipif.c b/lib/drivers/lwip/src/netif/slipif.c similarity index 100% rename from reactos/lib/drivers/lwip/src/netif/slipif.c rename to lib/drivers/lwip/src/netif/slipif.c diff --git a/reactos/lib/drivers/lwip/src/rosip.c b/lib/drivers/lwip/src/rosip.c similarity index 100% rename from reactos/lib/drivers/lwip/src/rosip.c rename to lib/drivers/lwip/src/rosip.c diff --git a/reactos/lib/drivers/lwip/src/rosmem.c b/lib/drivers/lwip/src/rosmem.c similarity index 100% rename from reactos/lib/drivers/lwip/src/rosmem.c rename to lib/drivers/lwip/src/rosmem.c diff --git a/reactos/lib/drivers/lwip/src/rostcp.c b/lib/drivers/lwip/src/rostcp.c similarity index 100% rename from reactos/lib/drivers/lwip/src/rostcp.c rename to lib/drivers/lwip/src/rostcp.c diff --git a/reactos/lib/drivers/lwip/src/sys_arch.c b/lib/drivers/lwip/src/sys_arch.c similarity index 100% rename from reactos/lib/drivers/lwip/src/sys_arch.c rename to lib/drivers/lwip/src/sys_arch.c diff --git a/reactos/lib/drivers/lwip/test/unit/lwip_check.h b/lib/drivers/lwip/test/unit/lwip_check.h similarity index 100% rename from reactos/lib/drivers/lwip/test/unit/lwip_check.h rename to lib/drivers/lwip/test/unit/lwip_check.h diff --git a/reactos/lib/drivers/lwip/test/unit/lwip_unittests.c b/lib/drivers/lwip/test/unit/lwip_unittests.c similarity index 100% rename from reactos/lib/drivers/lwip/test/unit/lwip_unittests.c rename to lib/drivers/lwip/test/unit/lwip_unittests.c diff --git a/reactos/lib/drivers/lwip/test/unit/tcp/tcp_helper.c b/lib/drivers/lwip/test/unit/tcp/tcp_helper.c similarity index 100% rename from reactos/lib/drivers/lwip/test/unit/tcp/tcp_helper.c rename to lib/drivers/lwip/test/unit/tcp/tcp_helper.c diff --git a/reactos/lib/drivers/lwip/test/unit/tcp/tcp_helper.h b/lib/drivers/lwip/test/unit/tcp/tcp_helper.h similarity index 100% rename from reactos/lib/drivers/lwip/test/unit/tcp/tcp_helper.h rename to lib/drivers/lwip/test/unit/tcp/tcp_helper.h diff --git a/reactos/lib/drivers/lwip/test/unit/tcp/test_tcp.c b/lib/drivers/lwip/test/unit/tcp/test_tcp.c similarity index 100% rename from reactos/lib/drivers/lwip/test/unit/tcp/test_tcp.c rename to lib/drivers/lwip/test/unit/tcp/test_tcp.c diff --git a/reactos/lib/drivers/lwip/test/unit/tcp/test_tcp.h b/lib/drivers/lwip/test/unit/tcp/test_tcp.h similarity index 100% rename from reactos/lib/drivers/lwip/test/unit/tcp/test_tcp.h rename to lib/drivers/lwip/test/unit/tcp/test_tcp.h diff --git a/reactos/lib/drivers/lwip/test/unit/tcp/test_tcp_oos.c b/lib/drivers/lwip/test/unit/tcp/test_tcp_oos.c similarity index 100% rename from reactos/lib/drivers/lwip/test/unit/tcp/test_tcp_oos.c rename to lib/drivers/lwip/test/unit/tcp/test_tcp_oos.c diff --git a/reactos/lib/drivers/lwip/test/unit/tcp/test_tcp_oos.h b/lib/drivers/lwip/test/unit/tcp/test_tcp_oos.h similarity index 100% rename from reactos/lib/drivers/lwip/test/unit/tcp/test_tcp_oos.h rename to lib/drivers/lwip/test/unit/tcp/test_tcp_oos.h diff --git a/reactos/lib/drivers/lwip/test/unit/udp/test_udp.c b/lib/drivers/lwip/test/unit/udp/test_udp.c similarity index 100% rename from reactos/lib/drivers/lwip/test/unit/udp/test_udp.c rename to lib/drivers/lwip/test/unit/udp/test_udp.c diff --git a/reactos/lib/drivers/lwip/test/unit/udp/test_udp.h b/lib/drivers/lwip/test/unit/udp/test_udp.h similarity index 100% rename from reactos/lib/drivers/lwip/test/unit/udp/test_udp.h rename to lib/drivers/lwip/test/unit/udp/test_udp.h diff --git a/reactos/lib/drivers/sound/CMakeLists.txt b/lib/drivers/sound/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/sound/CMakeLists.txt rename to lib/drivers/sound/CMakeLists.txt diff --git a/reactos/lib/drivers/sound/legacy/CMakeLists.txt b/lib/drivers/sound/legacy/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/sound/legacy/CMakeLists.txt rename to lib/drivers/sound/legacy/CMakeLists.txt diff --git a/reactos/lib/drivers/sound/legacy/devname.c b/lib/drivers/sound/legacy/devname.c similarity index 100% rename from reactos/lib/drivers/sound/legacy/devname.c rename to lib/drivers/sound/legacy/devname.c diff --git a/reactos/lib/drivers/sound/legacy/hardware.c b/lib/drivers/sound/legacy/hardware.c similarity index 100% rename from reactos/lib/drivers/sound/legacy/hardware.c rename to lib/drivers/sound/legacy/hardware.c diff --git a/reactos/lib/drivers/sound/mmebuddy/CMakeLists.txt b/lib/drivers/sound/mmebuddy/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/CMakeLists.txt rename to lib/drivers/sound/mmebuddy/CMakeLists.txt diff --git a/reactos/lib/drivers/sound/mmebuddy/auxiliary/auxMessage.c b/lib/drivers/sound/mmebuddy/auxiliary/auxMessage.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/auxiliary/auxMessage.c rename to lib/drivers/sound/mmebuddy/auxiliary/auxMessage.c diff --git a/reactos/lib/drivers/sound/mmebuddy/capabilities.c b/lib/drivers/sound/mmebuddy/capabilities.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/capabilities.c rename to lib/drivers/sound/mmebuddy/capabilities.c diff --git a/reactos/lib/drivers/sound/mmebuddy/deviceinstance.c b/lib/drivers/sound/mmebuddy/deviceinstance.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/deviceinstance.c rename to lib/drivers/sound/mmebuddy/deviceinstance.c diff --git a/reactos/lib/drivers/sound/mmebuddy/devicelist.c b/lib/drivers/sound/mmebuddy/devicelist.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/devicelist.c rename to lib/drivers/sound/mmebuddy/devicelist.c diff --git a/reactos/lib/drivers/sound/mmebuddy/functiontable.c b/lib/drivers/sound/mmebuddy/functiontable.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/functiontable.c rename to lib/drivers/sound/mmebuddy/functiontable.c diff --git a/reactos/lib/drivers/sound/mmebuddy/kernel.c b/lib/drivers/sound/mmebuddy/kernel.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/kernel.c rename to lib/drivers/sound/mmebuddy/kernel.c diff --git a/reactos/lib/drivers/sound/mmebuddy/midi/midMessage.c b/lib/drivers/sound/mmebuddy/midi/midMessage.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/midi/midMessage.c rename to lib/drivers/sound/mmebuddy/midi/midMessage.c diff --git a/reactos/lib/drivers/sound/mmebuddy/midi/modMessage.c b/lib/drivers/sound/mmebuddy/midi/modMessage.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/midi/modMessage.c rename to lib/drivers/sound/mmebuddy/midi/modMessage.c diff --git a/reactos/lib/drivers/sound/mmebuddy/mixer/mxdMessage.c b/lib/drivers/sound/mmebuddy/mixer/mxdMessage.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/mixer/mxdMessage.c rename to lib/drivers/sound/mmebuddy/mixer/mxdMessage.c diff --git a/reactos/lib/drivers/sound/mmebuddy/mmewrap.c b/lib/drivers/sound/mmebuddy/mmewrap.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/mmewrap.c rename to lib/drivers/sound/mmebuddy/mmewrap.c diff --git a/reactos/lib/drivers/sound/mmebuddy/precomp.h b/lib/drivers/sound/mmebuddy/precomp.h similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/precomp.h rename to lib/drivers/sound/mmebuddy/precomp.h diff --git a/reactos/lib/drivers/sound/mmebuddy/readme.txt b/lib/drivers/sound/mmebuddy/readme.txt similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/readme.txt rename to lib/drivers/sound/mmebuddy/readme.txt diff --git a/reactos/lib/drivers/sound/mmebuddy/reentrancy.c b/lib/drivers/sound/mmebuddy/reentrancy.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/reentrancy.c rename to lib/drivers/sound/mmebuddy/reentrancy.c diff --git a/reactos/lib/drivers/sound/mmebuddy/thread.c b/lib/drivers/sound/mmebuddy/thread.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/thread.c rename to lib/drivers/sound/mmebuddy/thread.c diff --git a/reactos/lib/drivers/sound/mmebuddy/utility.c b/lib/drivers/sound/mmebuddy/utility.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/utility.c rename to lib/drivers/sound/mmebuddy/utility.c diff --git a/reactos/lib/drivers/sound/mmebuddy/wave/format.c b/lib/drivers/sound/mmebuddy/wave/format.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/wave/format.c rename to lib/drivers/sound/mmebuddy/wave/format.c diff --git a/reactos/lib/drivers/sound/mmebuddy/wave/header.c b/lib/drivers/sound/mmebuddy/wave/header.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/wave/header.c rename to lib/drivers/sound/mmebuddy/wave/header.c diff --git a/reactos/lib/drivers/sound/mmebuddy/wave/streaming.c b/lib/drivers/sound/mmebuddy/wave/streaming.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/wave/streaming.c rename to lib/drivers/sound/mmebuddy/wave/streaming.c diff --git a/reactos/lib/drivers/sound/mmebuddy/wave/widMessage.c b/lib/drivers/sound/mmebuddy/wave/widMessage.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/wave/widMessage.c rename to lib/drivers/sound/mmebuddy/wave/widMessage.c diff --git a/reactos/lib/drivers/sound/mmebuddy/wave/wodMessage.c b/lib/drivers/sound/mmebuddy/wave/wodMessage.c similarity index 100% rename from reactos/lib/drivers/sound/mmebuddy/wave/wodMessage.c rename to lib/drivers/sound/mmebuddy/wave/wodMessage.c diff --git a/reactos/lib/drivers/sound/mment4/CMakeLists.txt b/lib/drivers/sound/mment4/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/sound/mment4/CMakeLists.txt rename to lib/drivers/sound/mment4/CMakeLists.txt diff --git a/reactos/lib/drivers/sound/mment4/control.c b/lib/drivers/sound/mment4/control.c similarity index 100% rename from reactos/lib/drivers/sound/mment4/control.c rename to lib/drivers/sound/mment4/control.c diff --git a/reactos/lib/drivers/sound/mment4/detect.c b/lib/drivers/sound/mment4/detect.c similarity index 100% rename from reactos/lib/drivers/sound/mment4/detect.c rename to lib/drivers/sound/mment4/detect.c diff --git a/reactos/lib/drivers/sound/mment4/precomp.h b/lib/drivers/sound/mment4/precomp.h similarity index 100% rename from reactos/lib/drivers/sound/mment4/precomp.h rename to lib/drivers/sound/mment4/precomp.h diff --git a/reactos/lib/drivers/sound/mment4/registry.c b/lib/drivers/sound/mment4/registry.c similarity index 100% rename from reactos/lib/drivers/sound/mment4/registry.c rename to lib/drivers/sound/mment4/registry.c diff --git a/reactos/lib/drivers/sound/mmixer/CMakeLists.txt b/lib/drivers/sound/mmixer/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/sound/mmixer/CMakeLists.txt rename to lib/drivers/sound/mmixer/CMakeLists.txt diff --git a/reactos/lib/drivers/sound/mmixer/TODO b/lib/drivers/sound/mmixer/TODO similarity index 100% rename from reactos/lib/drivers/sound/mmixer/TODO rename to lib/drivers/sound/mmixer/TODO diff --git a/reactos/lib/drivers/sound/mmixer/controls.c b/lib/drivers/sound/mmixer/controls.c similarity index 100% rename from reactos/lib/drivers/sound/mmixer/controls.c rename to lib/drivers/sound/mmixer/controls.c diff --git a/reactos/lib/drivers/sound/mmixer/filter.c b/lib/drivers/sound/mmixer/filter.c similarity index 100% rename from reactos/lib/drivers/sound/mmixer/filter.c rename to lib/drivers/sound/mmixer/filter.c diff --git a/reactos/lib/drivers/sound/mmixer/midi.c b/lib/drivers/sound/mmixer/midi.c similarity index 100% rename from reactos/lib/drivers/sound/mmixer/midi.c rename to lib/drivers/sound/mmixer/midi.c diff --git a/reactos/lib/drivers/sound/mmixer/mixer.c b/lib/drivers/sound/mmixer/mixer.c similarity index 100% rename from reactos/lib/drivers/sound/mmixer/mixer.c rename to lib/drivers/sound/mmixer/mixer.c diff --git a/reactos/lib/drivers/sound/mmixer/mmixer.h b/lib/drivers/sound/mmixer/mmixer.h similarity index 100% rename from reactos/lib/drivers/sound/mmixer/mmixer.h rename to lib/drivers/sound/mmixer/mmixer.h diff --git a/reactos/lib/drivers/sound/mmixer/priv.h b/lib/drivers/sound/mmixer/priv.h similarity index 100% rename from reactos/lib/drivers/sound/mmixer/priv.h rename to lib/drivers/sound/mmixer/priv.h diff --git a/reactos/lib/drivers/sound/mmixer/sup.c b/lib/drivers/sound/mmixer/sup.c similarity index 100% rename from reactos/lib/drivers/sound/mmixer/sup.c rename to lib/drivers/sound/mmixer/sup.c diff --git a/reactos/lib/drivers/sound/mmixer/topology.c b/lib/drivers/sound/mmixer/topology.c similarity index 100% rename from reactos/lib/drivers/sound/mmixer/topology.c rename to lib/drivers/sound/mmixer/topology.c diff --git a/reactos/lib/drivers/sound/mmixer/wave.c b/lib/drivers/sound/mmixer/wave.c similarity index 100% rename from reactos/lib/drivers/sound/mmixer/wave.c rename to lib/drivers/sound/mmixer/wave.c diff --git a/reactos/lib/drivers/sound/shared/CMakeLists.txt b/lib/drivers/sound/shared/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/sound/shared/CMakeLists.txt rename to lib/drivers/sound/shared/CMakeLists.txt diff --git a/reactos/lib/drivers/sound/shared/time.c b/lib/drivers/sound/shared/time.c similarity index 100% rename from reactos/lib/drivers/sound/shared/time.c rename to lib/drivers/sound/shared/time.c diff --git a/reactos/lib/drivers/sound/soundblaster/CMakeLists.txt b/lib/drivers/sound/soundblaster/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/sound/soundblaster/CMakeLists.txt rename to lib/drivers/sound/soundblaster/CMakeLists.txt diff --git a/reactos/lib/drivers/sound/soundblaster/dsp_io.c b/lib/drivers/sound/soundblaster/dsp_io.c similarity index 100% rename from reactos/lib/drivers/sound/soundblaster/dsp_io.c rename to lib/drivers/sound/soundblaster/dsp_io.c diff --git a/reactos/lib/drivers/sound/soundblaster/mixer.c b/lib/drivers/sound/soundblaster/mixer.c similarity index 100% rename from reactos/lib/drivers/sound/soundblaster/mixer.c rename to lib/drivers/sound/soundblaster/mixer.c diff --git a/reactos/lib/drivers/sound/soundblaster/precomp.h b/lib/drivers/sound/soundblaster/precomp.h similarity index 100% rename from reactos/lib/drivers/sound/soundblaster/precomp.h rename to lib/drivers/sound/soundblaster/precomp.h diff --git a/reactos/lib/drivers/sound/soundblaster/rate.c b/lib/drivers/sound/soundblaster/rate.c similarity index 100% rename from reactos/lib/drivers/sound/soundblaster/rate.c rename to lib/drivers/sound/soundblaster/rate.c diff --git a/reactos/lib/drivers/sound/soundblaster/speaker.c b/lib/drivers/sound/soundblaster/speaker.c similarity index 100% rename from reactos/lib/drivers/sound/soundblaster/speaker.c rename to lib/drivers/sound/soundblaster/speaker.c diff --git a/reactos/lib/drivers/sound/soundblaster/version.c b/lib/drivers/sound/soundblaster/version.c similarity index 100% rename from reactos/lib/drivers/sound/soundblaster/version.c rename to lib/drivers/sound/soundblaster/version.c diff --git a/reactos/lib/drivers/sound/uartmidi/CMakeLists.txt b/lib/drivers/sound/uartmidi/CMakeLists.txt similarity index 100% rename from reactos/lib/drivers/sound/uartmidi/CMakeLists.txt rename to lib/drivers/sound/uartmidi/CMakeLists.txt diff --git a/reactos/lib/drivers/sound/uartmidi/midiuart.c b/lib/drivers/sound/uartmidi/midiuart.c similarity index 100% rename from reactos/lib/drivers/sound/uartmidi/midiuart.c rename to lib/drivers/sound/uartmidi/midiuart.c diff --git a/reactos/lib/epsapi/CMakeLists.txt b/lib/epsapi/CMakeLists.txt similarity index 100% rename from reactos/lib/epsapi/CMakeLists.txt rename to lib/epsapi/CMakeLists.txt diff --git a/reactos/lib/epsapi/enum/drivers.c b/lib/epsapi/enum/drivers.c similarity index 100% rename from reactos/lib/epsapi/enum/drivers.c rename to lib/epsapi/enum/drivers.c diff --git a/reactos/lib/epsapi/enum/modules.c b/lib/epsapi/enum/modules.c similarity index 100% rename from reactos/lib/epsapi/enum/modules.c rename to lib/epsapi/enum/modules.c diff --git a/reactos/lib/epsapi/enum/precomp.h b/lib/epsapi/enum/precomp.h similarity index 100% rename from reactos/lib/epsapi/enum/precomp.h rename to lib/epsapi/enum/precomp.h diff --git a/reactos/lib/epsapi/enum/processes.c b/lib/epsapi/enum/processes.c similarity index 100% rename from reactos/lib/epsapi/enum/processes.c rename to lib/epsapi/enum/processes.c diff --git a/reactos/lib/fslib/CMakeLists.txt b/lib/fslib/CMakeLists.txt similarity index 100% rename from reactos/lib/fslib/CMakeLists.txt rename to lib/fslib/CMakeLists.txt diff --git a/reactos/lib/fslib/ext2lib/Badblock.c b/lib/fslib/ext2lib/Badblock.c similarity index 100% rename from reactos/lib/fslib/ext2lib/Badblock.c rename to lib/fslib/ext2lib/Badblock.c diff --git a/reactos/lib/fslib/ext2lib/Bitmap.c b/lib/fslib/ext2lib/Bitmap.c similarity index 100% rename from reactos/lib/fslib/ext2lib/Bitmap.c rename to lib/fslib/ext2lib/Bitmap.c diff --git a/reactos/lib/fslib/ext2lib/Bitmap.h b/lib/fslib/ext2lib/Bitmap.h similarity index 100% rename from reactos/lib/fslib/ext2lib/Bitmap.h rename to lib/fslib/ext2lib/Bitmap.h diff --git a/reactos/lib/fslib/ext2lib/CMakeLists.txt b/lib/fslib/ext2lib/CMakeLists.txt similarity index 100% rename from reactos/lib/fslib/ext2lib/CMakeLists.txt rename to lib/fslib/ext2lib/CMakeLists.txt diff --git a/reactos/lib/fslib/ext2lib/Disk.c b/lib/fslib/ext2lib/Disk.c similarity index 100% rename from reactos/lib/fslib/ext2lib/Disk.c rename to lib/fslib/ext2lib/Disk.c diff --git a/reactos/lib/fslib/ext2lib/Disk.h b/lib/fslib/ext2lib/Disk.h similarity index 100% rename from reactos/lib/fslib/ext2lib/Disk.h rename to lib/fslib/ext2lib/Disk.h diff --git a/reactos/lib/fslib/ext2lib/Group.c b/lib/fslib/ext2lib/Group.c similarity index 100% rename from reactos/lib/fslib/ext2lib/Group.c rename to lib/fslib/ext2lib/Group.c diff --git a/reactos/lib/fslib/ext2lib/Inode.c b/lib/fslib/ext2lib/Inode.c similarity index 100% rename from reactos/lib/fslib/ext2lib/Inode.c rename to lib/fslib/ext2lib/Inode.c diff --git a/reactos/lib/fslib/ext2lib/Memory.c b/lib/fslib/ext2lib/Memory.c similarity index 100% rename from reactos/lib/fslib/ext2lib/Memory.c rename to lib/fslib/ext2lib/Memory.c diff --git a/reactos/lib/fslib/ext2lib/Mke2fs.c b/lib/fslib/ext2lib/Mke2fs.c similarity index 100% rename from reactos/lib/fslib/ext2lib/Mke2fs.c rename to lib/fslib/ext2lib/Mke2fs.c diff --git a/reactos/lib/fslib/ext2lib/Mke2fs.h b/lib/fslib/ext2lib/Mke2fs.h similarity index 100% rename from reactos/lib/fslib/ext2lib/Mke2fs.h rename to lib/fslib/ext2lib/Mke2fs.h diff --git a/reactos/lib/fslib/ext2lib/Super.c b/lib/fslib/ext2lib/Super.c similarity index 100% rename from reactos/lib/fslib/ext2lib/Super.c rename to lib/fslib/ext2lib/Super.c diff --git a/reactos/lib/fslib/ext2lib/Uuid.c b/lib/fslib/ext2lib/Uuid.c similarity index 100% rename from reactos/lib/fslib/ext2lib/Uuid.c rename to lib/fslib/ext2lib/Uuid.c diff --git a/reactos/lib/fslib/ext2lib/ext2_fs.h b/lib/fslib/ext2lib/ext2_fs.h similarity index 100% rename from reactos/lib/fslib/ext2lib/ext2_fs.h rename to lib/fslib/ext2lib/ext2_fs.h diff --git a/reactos/lib/fslib/ext2lib/types.h b/lib/fslib/ext2lib/types.h similarity index 100% rename from reactos/lib/fslib/ext2lib/types.h rename to lib/fslib/ext2lib/types.h diff --git a/reactos/lib/fslib/ntfslib/CMakeLists.txt b/lib/fslib/ntfslib/CMakeLists.txt similarity index 100% rename from reactos/lib/fslib/ntfslib/CMakeLists.txt rename to lib/fslib/ntfslib/CMakeLists.txt diff --git a/reactos/lib/fslib/ntfslib/ntfslib.c b/lib/fslib/ntfslib/ntfslib.c similarity index 100% rename from reactos/lib/fslib/ntfslib/ntfslib.c rename to lib/fslib/ntfslib/ntfslib.c diff --git a/reactos/lib/fslib/ntfslib/ntfslib.h b/lib/fslib/ntfslib/ntfslib.h similarity index 100% rename from reactos/lib/fslib/ntfslib/ntfslib.h rename to lib/fslib/ntfslib/ntfslib.h diff --git a/reactos/lib/fslib/vfatlib/CMakeLists.txt b/lib/fslib/vfatlib/CMakeLists.txt similarity index 100% rename from reactos/lib/fslib/vfatlib/CMakeLists.txt rename to lib/fslib/vfatlib/CMakeLists.txt diff --git a/reactos/lib/fslib/vfatlib/check/boot.c b/lib/fslib/vfatlib/check/boot.c similarity index 100% rename from reactos/lib/fslib/vfatlib/check/boot.c rename to lib/fslib/vfatlib/check/boot.c diff --git a/reactos/lib/fslib/vfatlib/check/boot.h b/lib/fslib/vfatlib/check/boot.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/boot.h rename to lib/fslib/vfatlib/check/boot.h diff --git a/reactos/lib/fslib/vfatlib/check/byteorder.h b/lib/fslib/vfatlib/check/byteorder.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/byteorder.h rename to lib/fslib/vfatlib/check/byteorder.h diff --git a/reactos/lib/fslib/vfatlib/check/byteswap.h b/lib/fslib/vfatlib/check/byteswap.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/byteswap.h rename to lib/fslib/vfatlib/check/byteswap.h diff --git a/reactos/lib/fslib/vfatlib/check/byteswap1.h b/lib/fslib/vfatlib/check/byteswap1.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/byteswap1.h rename to lib/fslib/vfatlib/check/byteswap1.h diff --git a/reactos/lib/fslib/vfatlib/check/check.c b/lib/fslib/vfatlib/check/check.c similarity index 100% rename from reactos/lib/fslib/vfatlib/check/check.c rename to lib/fslib/vfatlib/check/check.c diff --git a/reactos/lib/fslib/vfatlib/check/check.h b/lib/fslib/vfatlib/check/check.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/check.h rename to lib/fslib/vfatlib/check/check.h diff --git a/reactos/lib/fslib/vfatlib/check/common.c b/lib/fslib/vfatlib/check/common.c similarity index 100% rename from reactos/lib/fslib/vfatlib/check/common.c rename to lib/fslib/vfatlib/check/common.c diff --git a/reactos/lib/fslib/vfatlib/check/common.h b/lib/fslib/vfatlib/check/common.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/common.h rename to lib/fslib/vfatlib/check/common.h diff --git a/reactos/lib/fslib/vfatlib/check/compiler.h b/lib/fslib/vfatlib/check/compiler.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/compiler.h rename to lib/fslib/vfatlib/check/compiler.h diff --git a/reactos/lib/fslib/vfatlib/check/dosfsck.h b/lib/fslib/vfatlib/check/dosfsck.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/dosfsck.h rename to lib/fslib/vfatlib/check/dosfsck.h diff --git a/reactos/lib/fslib/vfatlib/check/fat.c b/lib/fslib/vfatlib/check/fat.c similarity index 100% rename from reactos/lib/fslib/vfatlib/check/fat.c rename to lib/fslib/vfatlib/check/fat.c diff --git a/reactos/lib/fslib/vfatlib/check/fat.h b/lib/fslib/vfatlib/check/fat.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/fat.h rename to lib/fslib/vfatlib/check/fat.h diff --git a/reactos/lib/fslib/vfatlib/check/file.c b/lib/fslib/vfatlib/check/file.c similarity index 100% rename from reactos/lib/fslib/vfatlib/check/file.c rename to lib/fslib/vfatlib/check/file.c diff --git a/reactos/lib/fslib/vfatlib/check/file.h b/lib/fslib/vfatlib/check/file.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/file.h rename to lib/fslib/vfatlib/check/file.h diff --git a/reactos/lib/fslib/vfatlib/check/io.c b/lib/fslib/vfatlib/check/io.c similarity index 100% rename from reactos/lib/fslib/vfatlib/check/io.c rename to lib/fslib/vfatlib/check/io.c diff --git a/reactos/lib/fslib/vfatlib/check/io.h b/lib/fslib/vfatlib/check/io.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/io.h rename to lib/fslib/vfatlib/check/io.h diff --git a/reactos/lib/fslib/vfatlib/check/lfn.c b/lib/fslib/vfatlib/check/lfn.c similarity index 100% rename from reactos/lib/fslib/vfatlib/check/lfn.c rename to lib/fslib/vfatlib/check/lfn.c diff --git a/reactos/lib/fslib/vfatlib/check/lfn.h b/lib/fslib/vfatlib/check/lfn.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/lfn.h rename to lib/fslib/vfatlib/check/lfn.h diff --git a/reactos/lib/fslib/vfatlib/check/msdos_fs.h b/lib/fslib/vfatlib/check/msdos_fs.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/msdos_fs.h rename to lib/fslib/vfatlib/check/msdos_fs.h diff --git a/reactos/lib/fslib/vfatlib/check/swab.h b/lib/fslib/vfatlib/check/swab.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/swab.h rename to lib/fslib/vfatlib/check/swab.h diff --git a/reactos/lib/fslib/vfatlib/check/version.h b/lib/fslib/vfatlib/check/version.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/version.h rename to lib/fslib/vfatlib/check/version.h diff --git a/reactos/lib/fslib/vfatlib/check/vfat.h b/lib/fslib/vfatlib/check/vfat.h similarity index 100% rename from reactos/lib/fslib/vfatlib/check/vfat.h rename to lib/fslib/vfatlib/check/vfat.h diff --git a/reactos/lib/fslib/vfatlib/fat12.c b/lib/fslib/vfatlib/fat12.c similarity index 100% rename from reactos/lib/fslib/vfatlib/fat12.c rename to lib/fslib/vfatlib/fat12.c diff --git a/reactos/lib/fslib/vfatlib/fat16.c b/lib/fslib/vfatlib/fat16.c similarity index 100% rename from reactos/lib/fslib/vfatlib/fat16.c rename to lib/fslib/vfatlib/fat16.c diff --git a/reactos/lib/fslib/vfatlib/fat32.c b/lib/fslib/vfatlib/fat32.c similarity index 100% rename from reactos/lib/fslib/vfatlib/fat32.c rename to lib/fslib/vfatlib/fat32.c diff --git a/reactos/lib/fslib/vfatlib/vfatlib.c b/lib/fslib/vfatlib/vfatlib.c similarity index 100% rename from reactos/lib/fslib/vfatlib/vfatlib.c rename to lib/fslib/vfatlib/vfatlib.c diff --git a/reactos/lib/fslib/vfatlib/vfatlib.h b/lib/fslib/vfatlib/vfatlib.h similarity index 100% rename from reactos/lib/fslib/vfatlib/vfatlib.h rename to lib/fslib/vfatlib/vfatlib.h diff --git a/reactos/lib/fslib/vfatxlib/CMakeLists.txt b/lib/fslib/vfatxlib/CMakeLists.txt similarity index 100% rename from reactos/lib/fslib/vfatxlib/CMakeLists.txt rename to lib/fslib/vfatxlib/CMakeLists.txt diff --git a/reactos/lib/fslib/vfatxlib/fatx.c b/lib/fslib/vfatxlib/fatx.c similarity index 100% rename from reactos/lib/fslib/vfatxlib/fatx.c rename to lib/fslib/vfatxlib/fatx.c diff --git a/reactos/lib/fslib/vfatxlib/vfatxlib.c b/lib/fslib/vfatxlib/vfatxlib.c similarity index 100% rename from reactos/lib/fslib/vfatxlib/vfatxlib.c rename to lib/fslib/vfatxlib/vfatxlib.c diff --git a/reactos/lib/fslib/vfatxlib/vfatxlib.h b/lib/fslib/vfatxlib/vfatxlib.h similarity index 100% rename from reactos/lib/fslib/vfatxlib/vfatxlib.h rename to lib/fslib/vfatxlib/vfatxlib.h diff --git a/reactos/lib/inflib/CMakeLists.txt b/lib/inflib/CMakeLists.txt similarity index 100% rename from reactos/lib/inflib/CMakeLists.txt rename to lib/inflib/CMakeLists.txt diff --git a/reactos/lib/inflib/README.txt b/lib/inflib/README.txt similarity index 100% rename from reactos/lib/inflib/README.txt rename to lib/inflib/README.txt diff --git a/reactos/lib/inflib/builddep.h b/lib/inflib/builddep.h similarity index 100% rename from reactos/lib/inflib/builddep.h rename to lib/inflib/builddep.h diff --git a/reactos/lib/inflib/infcommon.h b/lib/inflib/infcommon.h similarity index 100% rename from reactos/lib/inflib/infcommon.h rename to lib/inflib/infcommon.h diff --git a/reactos/lib/inflib/infcore.c b/lib/inflib/infcore.c similarity index 100% rename from reactos/lib/inflib/infcore.c rename to lib/inflib/infcore.c diff --git a/reactos/lib/inflib/infget.c b/lib/inflib/infget.c similarity index 100% rename from reactos/lib/inflib/infget.c rename to lib/inflib/infget.c diff --git a/reactos/lib/inflib/infhost.h b/lib/inflib/infhost.h similarity index 100% rename from reactos/lib/inflib/infhost.h rename to lib/inflib/infhost.h diff --git a/reactos/lib/inflib/infhostgen.c b/lib/inflib/infhostgen.c similarity index 100% rename from reactos/lib/inflib/infhostgen.c rename to lib/inflib/infhostgen.c diff --git a/reactos/lib/inflib/infhostget.c b/lib/inflib/infhostget.c similarity index 100% rename from reactos/lib/inflib/infhostget.c rename to lib/inflib/infhostget.c diff --git a/reactos/lib/inflib/infhostput.c b/lib/inflib/infhostput.c similarity index 100% rename from reactos/lib/inflib/infhostput.c rename to lib/inflib/infhostput.c diff --git a/reactos/lib/inflib/infhostrtl.c b/lib/inflib/infhostrtl.c similarity index 100% rename from reactos/lib/inflib/infhostrtl.c rename to lib/inflib/infhostrtl.c diff --git a/reactos/lib/inflib/inflib.h b/lib/inflib/inflib.h similarity index 100% rename from reactos/lib/inflib/inflib.h rename to lib/inflib/inflib.h diff --git a/reactos/lib/inflib/infpriv.h b/lib/inflib/infpriv.h similarity index 100% rename from reactos/lib/inflib/infpriv.h rename to lib/inflib/infpriv.h diff --git a/reactos/lib/inflib/infput.c b/lib/inflib/infput.c similarity index 100% rename from reactos/lib/inflib/infput.c rename to lib/inflib/infput.c diff --git a/reactos/lib/inflib/infros.h b/lib/inflib/infros.h similarity index 100% rename from reactos/lib/inflib/infros.h rename to lib/inflib/infros.h diff --git a/reactos/lib/inflib/infrosgen.c b/lib/inflib/infrosgen.c similarity index 100% rename from reactos/lib/inflib/infrosgen.c rename to lib/inflib/infrosgen.c diff --git a/reactos/lib/inflib/infrosget.c b/lib/inflib/infrosget.c similarity index 100% rename from reactos/lib/inflib/infrosget.c rename to lib/inflib/infrosget.c diff --git a/reactos/lib/inflib/infrosput.c b/lib/inflib/infrosput.c similarity index 100% rename from reactos/lib/inflib/infrosput.c rename to lib/inflib/infrosput.c diff --git a/reactos/lib/lsalib/CMakeLists.txt b/lib/lsalib/CMakeLists.txt similarity index 100% rename from reactos/lib/lsalib/CMakeLists.txt rename to lib/lsalib/CMakeLists.txt diff --git a/reactos/lib/lsalib/lsa.c b/lib/lsalib/lsa.c similarity index 100% rename from reactos/lib/lsalib/lsa.c rename to lib/lsalib/lsa.c diff --git a/reactos/lib/ppcmmu/CMakeLists.txt b/lib/ppcmmu/CMakeLists.txt similarity index 100% rename from reactos/lib/ppcmmu/CMakeLists.txt rename to lib/ppcmmu/CMakeLists.txt diff --git a/reactos/lib/ppcmmu/devint.s b/lib/ppcmmu/devint.s similarity index 100% rename from reactos/lib/ppcmmu/devint.s rename to lib/ppcmmu/devint.s diff --git a/reactos/lib/ppcmmu/dummy.c b/lib/ppcmmu/dummy.c similarity index 100% rename from reactos/lib/ppcmmu/dummy.c rename to lib/ppcmmu/dummy.c diff --git a/reactos/lib/ppcmmu/gdblib.c b/lib/ppcmmu/gdblib.c similarity index 100% rename from reactos/lib/ppcmmu/gdblib.c rename to lib/ppcmmu/gdblib.c diff --git a/reactos/lib/ppcmmu/ldscript b/lib/ppcmmu/ldscript similarity index 100% rename from reactos/lib/ppcmmu/ldscript rename to lib/ppcmmu/ldscript diff --git a/reactos/lib/ppcmmu/mmuobject.c b/lib/ppcmmu/mmuobject.c similarity index 100% rename from reactos/lib/ppcmmu/mmuobject.c rename to lib/ppcmmu/mmuobject.c diff --git a/reactos/lib/ppcmmu/mmuobject.h b/lib/ppcmmu/mmuobject.h similarity index 100% rename from reactos/lib/ppcmmu/mmuobject.h rename to lib/ppcmmu/mmuobject.h diff --git a/reactos/lib/ppcmmu/mmutest.c b/lib/ppcmmu/mmutest.c similarity index 100% rename from reactos/lib/ppcmmu/mmutest.c rename to lib/ppcmmu/mmutest.c diff --git a/reactos/lib/ppcmmu/mmuutil.c b/lib/ppcmmu/mmuutil.c similarity index 100% rename from reactos/lib/ppcmmu/mmuutil.c rename to lib/ppcmmu/mmuutil.c diff --git a/reactos/lib/pseh/CMakeLists.txt b/lib/pseh/CMakeLists.txt similarity index 100% rename from reactos/lib/pseh/CMakeLists.txt rename to lib/pseh/CMakeLists.txt diff --git a/reactos/lib/pseh/amd64/framebased.S b/lib/pseh/amd64/framebased.S similarity index 100% rename from reactos/lib/pseh/amd64/framebased.S rename to lib/pseh/amd64/framebased.S diff --git a/reactos/lib/pseh/amd64/seh.s b/lib/pseh/amd64/seh.s similarity index 100% rename from reactos/lib/pseh/amd64/seh.s rename to lib/pseh/amd64/seh.s diff --git a/reactos/lib/pseh/amd64/seh_prolog.s b/lib/pseh/amd64/seh_prolog.s similarity index 100% rename from reactos/lib/pseh/amd64/seh_prolog.s rename to lib/pseh/amd64/seh_prolog.s diff --git a/reactos/lib/pseh/dummy.c b/lib/pseh/dummy.c similarity index 100% rename from reactos/lib/pseh/dummy.c rename to lib/pseh/dummy.c diff --git a/reactos/lib/pseh/framebased.c b/lib/pseh/framebased.c similarity index 100% rename from reactos/lib/pseh/framebased.c rename to lib/pseh/framebased.c diff --git a/reactos/lib/pseh/i386/framebased-gcchack-asm.S b/lib/pseh/i386/framebased-gcchack-asm.S similarity index 100% rename from reactos/lib/pseh/i386/framebased-gcchack-asm.S rename to lib/pseh/i386/framebased-gcchack-asm.S diff --git a/reactos/lib/pseh/i386/framebased-gcchack.c b/lib/pseh/i386/framebased-gcchack.c similarity index 100% rename from reactos/lib/pseh/i386/framebased-gcchack.c rename to lib/pseh/i386/framebased-gcchack.c diff --git a/reactos/lib/pseh/i386/framebased.S b/lib/pseh/i386/framebased.S similarity index 100% rename from reactos/lib/pseh/i386/framebased.S rename to lib/pseh/i386/framebased.S diff --git a/reactos/lib/pseh/i386/pseh3.c b/lib/pseh/i386/pseh3.c similarity index 100% rename from reactos/lib/pseh/i386/pseh3.c rename to lib/pseh/i386/pseh3.c diff --git a/reactos/lib/pseh/i386/pseh3_asmdef.h b/lib/pseh/i386/pseh3_asmdef.h similarity index 100% rename from reactos/lib/pseh/i386/pseh3_asmdef.h rename to lib/pseh/i386/pseh3_asmdef.h diff --git a/reactos/lib/pseh/i386/pseh3_i386.S b/lib/pseh/i386/pseh3_i386.S similarity index 100% rename from reactos/lib/pseh/i386/pseh3_i386.S rename to lib/pseh/i386/pseh3_i386.S diff --git a/reactos/lib/pseh/i386/seh.s b/lib/pseh/i386/seh.s similarity index 100% rename from reactos/lib/pseh/i386/seh.s rename to lib/pseh/i386/seh.s diff --git a/reactos/lib/pseh/i386/seh_prolog.s b/lib/pseh/i386/seh_prolog.s similarity index 100% rename from reactos/lib/pseh/i386/seh_prolog.s rename to lib/pseh/i386/seh_prolog.s diff --git a/reactos/lib/pseh/powerpc/framebased.S b/lib/pseh/powerpc/framebased.S similarity index 100% rename from reactos/lib/pseh/powerpc/framebased.S rename to lib/pseh/powerpc/framebased.S diff --git a/reactos/lib/recyclebin/CMakeLists.txt b/lib/recyclebin/CMakeLists.txt similarity index 100% rename from reactos/lib/recyclebin/CMakeLists.txt rename to lib/recyclebin/CMakeLists.txt diff --git a/reactos/lib/recyclebin/guid.c b/lib/recyclebin/guid.c similarity index 100% rename from reactos/lib/recyclebin/guid.c rename to lib/recyclebin/guid.c diff --git a/reactos/lib/recyclebin/readme.txt b/lib/recyclebin/readme.txt similarity index 100% rename from reactos/lib/recyclebin/readme.txt rename to lib/recyclebin/readme.txt diff --git a/reactos/lib/recyclebin/recyclebin.c b/lib/recyclebin/recyclebin.c similarity index 100% rename from reactos/lib/recyclebin/recyclebin.c rename to lib/recyclebin/recyclebin.c diff --git a/reactos/lib/recyclebin/recyclebin.h b/lib/recyclebin/recyclebin.h similarity index 100% rename from reactos/lib/recyclebin/recyclebin.h rename to lib/recyclebin/recyclebin.h diff --git a/reactos/lib/recyclebin/recyclebin_generic.c b/lib/recyclebin/recyclebin_generic.c similarity index 100% rename from reactos/lib/recyclebin/recyclebin_generic.c rename to lib/recyclebin/recyclebin_generic.c diff --git a/reactos/lib/recyclebin/recyclebin_generic_enumerator.c b/lib/recyclebin/recyclebin_generic_enumerator.c similarity index 100% rename from reactos/lib/recyclebin/recyclebin_generic_enumerator.c rename to lib/recyclebin/recyclebin_generic_enumerator.c diff --git a/reactos/lib/recyclebin/recyclebin_private.h b/lib/recyclebin/recyclebin_private.h similarity index 100% rename from reactos/lib/recyclebin/recyclebin_private.h rename to lib/recyclebin/recyclebin_private.h diff --git a/reactos/lib/recyclebin/recyclebin_v5.c b/lib/recyclebin/recyclebin_v5.c similarity index 100% rename from reactos/lib/recyclebin/recyclebin_v5.c rename to lib/recyclebin/recyclebin_v5.c diff --git a/reactos/lib/recyclebin/recyclebin_v5.h b/lib/recyclebin/recyclebin_v5.h similarity index 100% rename from reactos/lib/recyclebin/recyclebin_v5.h rename to lib/recyclebin/recyclebin_v5.h diff --git a/reactos/lib/recyclebin/recyclebin_v5_enumerator.c b/lib/recyclebin/recyclebin_v5_enumerator.c similarity index 100% rename from reactos/lib/recyclebin/recyclebin_v5_enumerator.c rename to lib/recyclebin/recyclebin_v5_enumerator.c diff --git a/reactos/lib/rossym/CMakeLists.txt b/lib/rossym/CMakeLists.txt similarity index 100% rename from reactos/lib/rossym/CMakeLists.txt rename to lib/rossym/CMakeLists.txt diff --git a/reactos/lib/rossym/compat.h b/lib/rossym/compat.h similarity index 100% rename from reactos/lib/rossym/compat.h rename to lib/rossym/compat.h diff --git a/reactos/lib/rossym/delete.c b/lib/rossym/delete.c similarity index 100% rename from reactos/lib/rossym/delete.c rename to lib/rossym/delete.c diff --git a/reactos/lib/rossym/dummy.c b/lib/rossym/dummy.c similarity index 100% rename from reactos/lib/rossym/dummy.c rename to lib/rossym/dummy.c diff --git a/reactos/lib/rossym/dwarf.h b/lib/rossym/dwarf.h similarity index 100% rename from reactos/lib/rossym/dwarf.h rename to lib/rossym/dwarf.h diff --git a/reactos/lib/rossym/dwarf386.c b/lib/rossym/dwarf386.c similarity index 100% rename from reactos/lib/rossym/dwarf386.c rename to lib/rossym/dwarf386.c diff --git a/reactos/lib/rossym/dwarfabbrev.c b/lib/rossym/dwarfabbrev.c similarity index 100% rename from reactos/lib/rossym/dwarfabbrev.c rename to lib/rossym/dwarfabbrev.c diff --git a/reactos/lib/rossym/dwarfaranges.c b/lib/rossym/dwarfaranges.c similarity index 100% rename from reactos/lib/rossym/dwarfaranges.c rename to lib/rossym/dwarfaranges.c diff --git a/reactos/lib/rossym/dwarfcfa.c b/lib/rossym/dwarfcfa.c similarity index 100% rename from reactos/lib/rossym/dwarfcfa.c rename to lib/rossym/dwarfcfa.c diff --git a/reactos/lib/rossym/dwarfdump.c b/lib/rossym/dwarfdump.c similarity index 100% rename from reactos/lib/rossym/dwarfdump.c rename to lib/rossym/dwarfdump.c diff --git a/reactos/lib/rossym/dwarfeval.c b/lib/rossym/dwarfeval.c similarity index 100% rename from reactos/lib/rossym/dwarfeval.c rename to lib/rossym/dwarfeval.c diff --git a/reactos/lib/rossym/dwarfget.c b/lib/rossym/dwarfget.c similarity index 100% rename from reactos/lib/rossym/dwarfget.c rename to lib/rossym/dwarfget.c diff --git a/reactos/lib/rossym/dwarfinfo.c b/lib/rossym/dwarfinfo.c similarity index 100% rename from reactos/lib/rossym/dwarfinfo.c rename to lib/rossym/dwarfinfo.c diff --git a/reactos/lib/rossym/dwarfopen.c b/lib/rossym/dwarfopen.c similarity index 100% rename from reactos/lib/rossym/dwarfopen.c rename to lib/rossym/dwarfopen.c diff --git a/reactos/lib/rossym/dwarfpc.c b/lib/rossym/dwarfpc.c similarity index 100% rename from reactos/lib/rossym/dwarfpc.c rename to lib/rossym/dwarfpc.c diff --git a/reactos/lib/rossym/dwarfpubnames.c b/lib/rossym/dwarfpubnames.c similarity index 100% rename from reactos/lib/rossym/dwarfpubnames.c rename to lib/rossym/dwarfpubnames.c diff --git a/reactos/lib/rossym/find.c b/lib/rossym/find.c similarity index 100% rename from reactos/lib/rossym/find.c rename to lib/rossym/find.c diff --git a/reactos/lib/rossym/fromfile.c b/lib/rossym/fromfile.c similarity index 100% rename from reactos/lib/rossym/fromfile.c rename to lib/rossym/fromfile.c diff --git a/reactos/lib/rossym/frommem.c b/lib/rossym/frommem.c similarity index 100% rename from reactos/lib/rossym/frommem.c rename to lib/rossym/frommem.c diff --git a/reactos/lib/rossym/fromraw.c b/lib/rossym/fromraw.c similarity index 100% rename from reactos/lib/rossym/fromraw.c rename to lib/rossym/fromraw.c diff --git a/reactos/lib/rossym/getraw.c b/lib/rossym/getraw.c similarity index 100% rename from reactos/lib/rossym/getraw.c rename to lib/rossym/getraw.c diff --git a/reactos/lib/rossym/init.c b/lib/rossym/init.c similarity index 100% rename from reactos/lib/rossym/init.c rename to lib/rossym/init.c diff --git a/reactos/lib/rossym/initkm.c b/lib/rossym/initkm.c similarity index 100% rename from reactos/lib/rossym/initkm.c rename to lib/rossym/initkm.c diff --git a/reactos/lib/rossym/initum.c b/lib/rossym/initum.c similarity index 100% rename from reactos/lib/rossym/initum.c rename to lib/rossym/initum.c diff --git a/reactos/lib/rossym/iofile.c b/lib/rossym/iofile.c similarity index 100% rename from reactos/lib/rossym/iofile.c rename to lib/rossym/iofile.c diff --git a/reactos/lib/rossym/pe.c b/lib/rossym/pe.c similarity index 100% rename from reactos/lib/rossym/pe.c rename to lib/rossym/pe.c diff --git a/reactos/lib/rossym/pe.h b/lib/rossym/pe.h similarity index 100% rename from reactos/lib/rossym/pe.h rename to lib/rossym/pe.h diff --git a/reactos/lib/rossym/rossympriv.h b/lib/rossym/rossympriv.h similarity index 100% rename from reactos/lib/rossym/rossympriv.h rename to lib/rossym/rossympriv.h diff --git a/reactos/lib/rossym/zwfile.c b/lib/rossym/zwfile.c similarity index 100% rename from reactos/lib/rossym/zwfile.c rename to lib/rossym/zwfile.c diff --git a/reactos/lib/rossym_new/CMakeLists.txt b/lib/rossym_new/CMakeLists.txt similarity index 100% rename from reactos/lib/rossym_new/CMakeLists.txt rename to lib/rossym_new/CMakeLists.txt diff --git a/reactos/lib/rossym_new/compat.h b/lib/rossym_new/compat.h similarity index 100% rename from reactos/lib/rossym_new/compat.h rename to lib/rossym_new/compat.h diff --git a/reactos/lib/rossym_new/delete.c b/lib/rossym_new/delete.c similarity index 100% rename from reactos/lib/rossym_new/delete.c rename to lib/rossym_new/delete.c diff --git a/reactos/lib/rossym_new/dummy.c b/lib/rossym_new/dummy.c similarity index 100% rename from reactos/lib/rossym_new/dummy.c rename to lib/rossym_new/dummy.c diff --git a/reactos/lib/rossym_new/dwarf.h b/lib/rossym_new/dwarf.h similarity index 100% rename from reactos/lib/rossym_new/dwarf.h rename to lib/rossym_new/dwarf.h diff --git a/reactos/lib/rossym_new/dwarf386.c b/lib/rossym_new/dwarf386.c similarity index 100% rename from reactos/lib/rossym_new/dwarf386.c rename to lib/rossym_new/dwarf386.c diff --git a/reactos/lib/rossym_new/dwarfabbrev.c b/lib/rossym_new/dwarfabbrev.c similarity index 100% rename from reactos/lib/rossym_new/dwarfabbrev.c rename to lib/rossym_new/dwarfabbrev.c diff --git a/reactos/lib/rossym_new/dwarfaranges.c b/lib/rossym_new/dwarfaranges.c similarity index 100% rename from reactos/lib/rossym_new/dwarfaranges.c rename to lib/rossym_new/dwarfaranges.c diff --git a/reactos/lib/rossym_new/dwarfcfa.c b/lib/rossym_new/dwarfcfa.c similarity index 100% rename from reactos/lib/rossym_new/dwarfcfa.c rename to lib/rossym_new/dwarfcfa.c diff --git a/reactos/lib/rossym_new/dwarfdump.c b/lib/rossym_new/dwarfdump.c similarity index 100% rename from reactos/lib/rossym_new/dwarfdump.c rename to lib/rossym_new/dwarfdump.c diff --git a/reactos/lib/rossym_new/dwarfeval.c b/lib/rossym_new/dwarfeval.c similarity index 100% rename from reactos/lib/rossym_new/dwarfeval.c rename to lib/rossym_new/dwarfeval.c diff --git a/reactos/lib/rossym_new/dwarfget.c b/lib/rossym_new/dwarfget.c similarity index 100% rename from reactos/lib/rossym_new/dwarfget.c rename to lib/rossym_new/dwarfget.c diff --git a/reactos/lib/rossym_new/dwarfinfo.c b/lib/rossym_new/dwarfinfo.c similarity index 100% rename from reactos/lib/rossym_new/dwarfinfo.c rename to lib/rossym_new/dwarfinfo.c diff --git a/reactos/lib/rossym_new/dwarfopen.c b/lib/rossym_new/dwarfopen.c similarity index 100% rename from reactos/lib/rossym_new/dwarfopen.c rename to lib/rossym_new/dwarfopen.c diff --git a/reactos/lib/rossym_new/dwarfpc.c b/lib/rossym_new/dwarfpc.c similarity index 100% rename from reactos/lib/rossym_new/dwarfpc.c rename to lib/rossym_new/dwarfpc.c diff --git a/reactos/lib/rossym_new/dwarfpubnames.c b/lib/rossym_new/dwarfpubnames.c similarity index 100% rename from reactos/lib/rossym_new/dwarfpubnames.c rename to lib/rossym_new/dwarfpubnames.c diff --git a/reactos/lib/rossym_new/find.c b/lib/rossym_new/find.c similarity index 100% rename from reactos/lib/rossym_new/find.c rename to lib/rossym_new/find.c diff --git a/reactos/lib/rossym_new/fromfile.c b/lib/rossym_new/fromfile.c similarity index 100% rename from reactos/lib/rossym_new/fromfile.c rename to lib/rossym_new/fromfile.c diff --git a/reactos/lib/rossym_new/frommem.c b/lib/rossym_new/frommem.c similarity index 100% rename from reactos/lib/rossym_new/frommem.c rename to lib/rossym_new/frommem.c diff --git a/reactos/lib/rossym_new/fromraw.c b/lib/rossym_new/fromraw.c similarity index 100% rename from reactos/lib/rossym_new/fromraw.c rename to lib/rossym_new/fromraw.c diff --git a/reactos/lib/rossym_new/getraw.c b/lib/rossym_new/getraw.c similarity index 100% rename from reactos/lib/rossym_new/getraw.c rename to lib/rossym_new/getraw.c diff --git a/reactos/lib/rossym_new/init.c b/lib/rossym_new/init.c similarity index 100% rename from reactos/lib/rossym_new/init.c rename to lib/rossym_new/init.c diff --git a/reactos/lib/rossym_new/initkm.c b/lib/rossym_new/initkm.c similarity index 100% rename from reactos/lib/rossym_new/initkm.c rename to lib/rossym_new/initkm.c diff --git a/reactos/lib/rossym_new/initum.c b/lib/rossym_new/initum.c similarity index 100% rename from reactos/lib/rossym_new/initum.c rename to lib/rossym_new/initum.c diff --git a/reactos/lib/rossym_new/iofile.c b/lib/rossym_new/iofile.c similarity index 100% rename from reactos/lib/rossym_new/iofile.c rename to lib/rossym_new/iofile.c diff --git a/reactos/lib/rossym_new/pe.c b/lib/rossym_new/pe.c similarity index 100% rename from reactos/lib/rossym_new/pe.c rename to lib/rossym_new/pe.c diff --git a/reactos/lib/rossym_new/pe.h b/lib/rossym_new/pe.h similarity index 100% rename from reactos/lib/rossym_new/pe.h rename to lib/rossym_new/pe.h diff --git a/reactos/lib/rossym_new/precomp.h b/lib/rossym_new/precomp.h similarity index 100% rename from reactos/lib/rossym_new/precomp.h rename to lib/rossym_new/precomp.h diff --git a/reactos/lib/rossym_new/rossympriv.h b/lib/rossym_new/rossympriv.h similarity index 100% rename from reactos/lib/rossym_new/rossympriv.h rename to lib/rossym_new/rossympriv.h diff --git a/reactos/lib/rossym_new/zwfile.c b/lib/rossym_new/zwfile.c similarity index 100% rename from reactos/lib/rossym_new/zwfile.c rename to lib/rossym_new/zwfile.c diff --git a/reactos/lib/rtl/CMakeLists.txt b/lib/rtl/CMakeLists.txt similarity index 100% rename from reactos/lib/rtl/CMakeLists.txt rename to lib/rtl/CMakeLists.txt diff --git a/reactos/lib/rtl/access.c b/lib/rtl/access.c similarity index 100% rename from reactos/lib/rtl/access.c rename to lib/rtl/access.c diff --git a/reactos/lib/rtl/acl.c b/lib/rtl/acl.c similarity index 100% rename from reactos/lib/rtl/acl.c rename to lib/rtl/acl.c diff --git a/reactos/lib/rtl/actctx.c b/lib/rtl/actctx.c similarity index 100% rename from reactos/lib/rtl/actctx.c rename to lib/rtl/actctx.c diff --git a/reactos/lib/rtl/amd64/debug_asm.S b/lib/rtl/amd64/debug_asm.S similarity index 100% rename from reactos/lib/rtl/amd64/debug_asm.S rename to lib/rtl/amd64/debug_asm.S diff --git a/reactos/lib/rtl/amd64/except_asm.S b/lib/rtl/amd64/except_asm.S similarity index 100% rename from reactos/lib/rtl/amd64/except_asm.S rename to lib/rtl/amd64/except_asm.S diff --git a/reactos/lib/rtl/amd64/rtlmem.S b/lib/rtl/amd64/rtlmem.S similarity index 100% rename from reactos/lib/rtl/amd64/rtlmem.S rename to lib/rtl/amd64/rtlmem.S diff --git a/reactos/lib/rtl/amd64/slist.S b/lib/rtl/amd64/slist.S similarity index 100% rename from reactos/lib/rtl/amd64/slist.S rename to lib/rtl/amd64/slist.S diff --git a/reactos/lib/rtl/amd64/stubs.c b/lib/rtl/amd64/stubs.c similarity index 100% rename from reactos/lib/rtl/amd64/stubs.c rename to lib/rtl/amd64/stubs.c diff --git a/reactos/lib/rtl/amd64/unwind.c b/lib/rtl/amd64/unwind.c similarity index 100% rename from reactos/lib/rtl/amd64/unwind.c rename to lib/rtl/amd64/unwind.c diff --git a/reactos/lib/rtl/arm/debug_asm.S b/lib/rtl/arm/debug_asm.S similarity index 100% rename from reactos/lib/rtl/arm/debug_asm.S rename to lib/rtl/arm/debug_asm.S diff --git a/reactos/lib/rtl/assert.c b/lib/rtl/assert.c similarity index 100% rename from reactos/lib/rtl/assert.c rename to lib/rtl/assert.c diff --git a/reactos/lib/rtl/atom.c b/lib/rtl/atom.c similarity index 100% rename from reactos/lib/rtl/atom.c rename to lib/rtl/atom.c diff --git a/reactos/lib/rtl/avlsupp.c b/lib/rtl/avlsupp.c similarity index 100% rename from reactos/lib/rtl/avlsupp.c rename to lib/rtl/avlsupp.c diff --git a/reactos/lib/rtl/avltable.c b/lib/rtl/avltable.c similarity index 100% rename from reactos/lib/rtl/avltable.c rename to lib/rtl/avltable.c diff --git a/reactos/lib/rtl/bitmap.c b/lib/rtl/bitmap.c similarity index 100% rename from reactos/lib/rtl/bitmap.c rename to lib/rtl/bitmap.c diff --git a/reactos/lib/rtl/bootdata.c b/lib/rtl/bootdata.c similarity index 100% rename from reactos/lib/rtl/bootdata.c rename to lib/rtl/bootdata.c diff --git a/reactos/lib/rtl/byteswap.c b/lib/rtl/byteswap.c similarity index 100% rename from reactos/lib/rtl/byteswap.c rename to lib/rtl/byteswap.c diff --git a/reactos/lib/rtl/compress.c b/lib/rtl/compress.c similarity index 100% rename from reactos/lib/rtl/compress.c rename to lib/rtl/compress.c diff --git a/reactos/lib/rtl/condvar.c b/lib/rtl/condvar.c similarity index 100% rename from reactos/lib/rtl/condvar.c rename to lib/rtl/condvar.c diff --git a/reactos/lib/rtl/crc32.c b/lib/rtl/crc32.c similarity index 100% rename from reactos/lib/rtl/crc32.c rename to lib/rtl/crc32.c diff --git a/reactos/lib/rtl/critical.c b/lib/rtl/critical.c similarity index 100% rename from reactos/lib/rtl/critical.c rename to lib/rtl/critical.c diff --git a/reactos/lib/rtl/dbgbuffer.c b/lib/rtl/dbgbuffer.c similarity index 100% rename from reactos/lib/rtl/dbgbuffer.c rename to lib/rtl/dbgbuffer.c diff --git a/reactos/lib/rtl/debug.c b/lib/rtl/debug.c similarity index 100% rename from reactos/lib/rtl/debug.c rename to lib/rtl/debug.c diff --git a/reactos/lib/rtl/dos8dot3.c b/lib/rtl/dos8dot3.c similarity index 100% rename from reactos/lib/rtl/dos8dot3.c rename to lib/rtl/dos8dot3.c diff --git a/reactos/lib/rtl/encode.c b/lib/rtl/encode.c similarity index 100% rename from reactos/lib/rtl/encode.c rename to lib/rtl/encode.c diff --git a/reactos/lib/rtl/env.c b/lib/rtl/env.c similarity index 100% rename from reactos/lib/rtl/env.c rename to lib/rtl/env.c diff --git a/reactos/lib/rtl/error.c b/lib/rtl/error.c similarity index 100% rename from reactos/lib/rtl/error.c rename to lib/rtl/error.c diff --git a/reactos/lib/rtl/exception.c b/lib/rtl/exception.c similarity index 100% rename from reactos/lib/rtl/exception.c rename to lib/rtl/exception.c diff --git a/reactos/lib/rtl/generictable.c b/lib/rtl/generictable.c similarity index 100% rename from reactos/lib/rtl/generictable.c rename to lib/rtl/generictable.c diff --git a/reactos/lib/rtl/handle.c b/lib/rtl/handle.c similarity index 100% rename from reactos/lib/rtl/handle.c rename to lib/rtl/handle.c diff --git a/reactos/lib/rtl/heap.c b/lib/rtl/heap.c similarity index 100% rename from reactos/lib/rtl/heap.c rename to lib/rtl/heap.c diff --git a/reactos/lib/rtl/heap.h b/lib/rtl/heap.h similarity index 100% rename from reactos/lib/rtl/heap.h rename to lib/rtl/heap.h diff --git a/reactos/lib/rtl/heapdbg.c b/lib/rtl/heapdbg.c similarity index 100% rename from reactos/lib/rtl/heapdbg.c rename to lib/rtl/heapdbg.c diff --git a/reactos/lib/rtl/heappage.c b/lib/rtl/heappage.c similarity index 100% rename from reactos/lib/rtl/heappage.c rename to lib/rtl/heappage.c diff --git a/reactos/lib/rtl/i386/debug_asm.S b/lib/rtl/i386/debug_asm.S similarity index 100% rename from reactos/lib/rtl/i386/debug_asm.S rename to lib/rtl/i386/debug_asm.S diff --git a/reactos/lib/rtl/i386/except.c b/lib/rtl/i386/except.c similarity index 100% rename from reactos/lib/rtl/i386/except.c rename to lib/rtl/i386/except.c diff --git a/reactos/lib/rtl/i386/except_asm.s b/lib/rtl/i386/except_asm.s similarity index 100% rename from reactos/lib/rtl/i386/except_asm.s rename to lib/rtl/i386/except_asm.s diff --git a/reactos/lib/rtl/i386/interlck.S b/lib/rtl/i386/interlck.S similarity index 100% rename from reactos/lib/rtl/i386/interlck.S rename to lib/rtl/i386/interlck.S diff --git a/reactos/lib/rtl/i386/res_asm.s b/lib/rtl/i386/res_asm.s similarity index 100% rename from reactos/lib/rtl/i386/res_asm.s rename to lib/rtl/i386/res_asm.s diff --git a/reactos/lib/rtl/i386/rtlmem.s b/lib/rtl/i386/rtlmem.s similarity index 100% rename from reactos/lib/rtl/i386/rtlmem.s rename to lib/rtl/i386/rtlmem.s diff --git a/reactos/lib/rtl/i386/rtlswap.S b/lib/rtl/i386/rtlswap.S similarity index 100% rename from reactos/lib/rtl/i386/rtlswap.S rename to lib/rtl/i386/rtlswap.S diff --git a/reactos/lib/rtl/i386/thread.c b/lib/rtl/i386/thread.c similarity index 100% rename from reactos/lib/rtl/i386/thread.c rename to lib/rtl/i386/thread.c diff --git a/reactos/lib/rtl/image.c b/lib/rtl/image.c similarity index 100% rename from reactos/lib/rtl/image.c rename to lib/rtl/image.c diff --git a/reactos/lib/rtl/interlck.c b/lib/rtl/interlck.c similarity index 100% rename from reactos/lib/rtl/interlck.c rename to lib/rtl/interlck.c diff --git a/reactos/lib/rtl/largeint.c b/lib/rtl/largeint.c similarity index 100% rename from reactos/lib/rtl/largeint.c rename to lib/rtl/largeint.c diff --git a/reactos/lib/rtl/luid.c b/lib/rtl/luid.c similarity index 100% rename from reactos/lib/rtl/luid.c rename to lib/rtl/luid.c diff --git a/reactos/lib/rtl/mem.c b/lib/rtl/mem.c similarity index 100% rename from reactos/lib/rtl/mem.c rename to lib/rtl/mem.c diff --git a/reactos/lib/rtl/message.c b/lib/rtl/message.c similarity index 100% rename from reactos/lib/rtl/message.c rename to lib/rtl/message.c diff --git a/reactos/lib/rtl/network.c b/lib/rtl/network.c similarity index 100% rename from reactos/lib/rtl/network.c rename to lib/rtl/network.c diff --git a/reactos/lib/rtl/nls.c b/lib/rtl/nls.c similarity index 100% rename from reactos/lib/rtl/nls.c rename to lib/rtl/nls.c diff --git a/reactos/lib/rtl/path.c b/lib/rtl/path.c similarity index 100% rename from reactos/lib/rtl/path.c rename to lib/rtl/path.c diff --git a/reactos/lib/rtl/powerpc/debug.c b/lib/rtl/powerpc/debug.c similarity index 100% rename from reactos/lib/rtl/powerpc/debug.c rename to lib/rtl/powerpc/debug.c diff --git a/reactos/lib/rtl/powerpc/except.c b/lib/rtl/powerpc/except.c similarity index 100% rename from reactos/lib/rtl/powerpc/except.c rename to lib/rtl/powerpc/except.c diff --git a/reactos/lib/rtl/powerpc/interlocked.c b/lib/rtl/powerpc/interlocked.c similarity index 100% rename from reactos/lib/rtl/powerpc/interlocked.c rename to lib/rtl/powerpc/interlocked.c diff --git a/reactos/lib/rtl/powerpc/rtlmem.s b/lib/rtl/powerpc/rtlmem.s similarity index 100% rename from reactos/lib/rtl/powerpc/rtlmem.s rename to lib/rtl/powerpc/rtlmem.s diff --git a/reactos/lib/rtl/powerpc/rtlswap.s b/lib/rtl/powerpc/rtlswap.s similarity index 100% rename from reactos/lib/rtl/powerpc/rtlswap.s rename to lib/rtl/powerpc/rtlswap.s diff --git a/reactos/lib/rtl/powerpc/thread.c b/lib/rtl/powerpc/thread.c similarity index 100% rename from reactos/lib/rtl/powerpc/thread.c rename to lib/rtl/powerpc/thread.c diff --git a/reactos/lib/rtl/ppb.c b/lib/rtl/ppb.c similarity index 100% rename from reactos/lib/rtl/ppb.c rename to lib/rtl/ppb.c diff --git a/reactos/lib/rtl/priv.c b/lib/rtl/priv.c similarity index 100% rename from reactos/lib/rtl/priv.c rename to lib/rtl/priv.c diff --git a/reactos/lib/rtl/process.c b/lib/rtl/process.c similarity index 100% rename from reactos/lib/rtl/process.c rename to lib/rtl/process.c diff --git a/reactos/lib/rtl/propvar.c b/lib/rtl/propvar.c similarity index 100% rename from reactos/lib/rtl/propvar.c rename to lib/rtl/propvar.c diff --git a/reactos/lib/rtl/random.c b/lib/rtl/random.c similarity index 100% rename from reactos/lib/rtl/random.c rename to lib/rtl/random.c diff --git a/reactos/lib/rtl/rangelist.c b/lib/rtl/rangelist.c similarity index 100% rename from reactos/lib/rtl/rangelist.c rename to lib/rtl/rangelist.c diff --git a/reactos/lib/rtl/readme.txt b/lib/rtl/readme.txt similarity index 100% rename from reactos/lib/rtl/readme.txt rename to lib/rtl/readme.txt diff --git a/reactos/lib/rtl/registry.c b/lib/rtl/registry.c similarity index 100% rename from reactos/lib/rtl/registry.c rename to lib/rtl/registry.c diff --git a/reactos/lib/rtl/res.c b/lib/rtl/res.c similarity index 100% rename from reactos/lib/rtl/res.c rename to lib/rtl/res.c diff --git a/reactos/lib/rtl/resource.c b/lib/rtl/resource.c similarity index 100% rename from reactos/lib/rtl/resource.c rename to lib/rtl/resource.c diff --git a/reactos/lib/rtl/rtl.h b/lib/rtl/rtl.h similarity index 100% rename from reactos/lib/rtl/rtl.h rename to lib/rtl/rtl.h diff --git a/reactos/lib/rtl/rtlavl.h b/lib/rtl/rtlavl.h similarity index 100% rename from reactos/lib/rtl/rtlavl.h rename to lib/rtl/rtlavl.h diff --git a/reactos/lib/rtl/rtlp.h b/lib/rtl/rtlp.h similarity index 100% rename from reactos/lib/rtl/rtlp.h rename to lib/rtl/rtlp.h diff --git a/reactos/lib/rtl/sd.c b/lib/rtl/sd.c similarity index 100% rename from reactos/lib/rtl/sd.c rename to lib/rtl/sd.c diff --git a/reactos/lib/rtl/security.c b/lib/rtl/security.c similarity index 100% rename from reactos/lib/rtl/security.c rename to lib/rtl/security.c diff --git a/reactos/lib/rtl/sid.c b/lib/rtl/sid.c similarity index 100% rename from reactos/lib/rtl/sid.c rename to lib/rtl/sid.c diff --git a/reactos/lib/rtl/slist.c b/lib/rtl/slist.c similarity index 100% rename from reactos/lib/rtl/slist.c rename to lib/rtl/slist.c diff --git a/reactos/lib/rtl/splaytree.c b/lib/rtl/splaytree.c similarity index 100% rename from reactos/lib/rtl/splaytree.c rename to lib/rtl/splaytree.c diff --git a/reactos/lib/rtl/srw.c b/lib/rtl/srw.c similarity index 100% rename from reactos/lib/rtl/srw.c rename to lib/rtl/srw.c diff --git a/reactos/lib/rtl/thread.c b/lib/rtl/thread.c similarity index 100% rename from reactos/lib/rtl/thread.c rename to lib/rtl/thread.c diff --git a/reactos/lib/rtl/time.c b/lib/rtl/time.c similarity index 100% rename from reactos/lib/rtl/time.c rename to lib/rtl/time.c diff --git a/reactos/lib/rtl/timerqueue.c b/lib/rtl/timerqueue.c similarity index 100% rename from reactos/lib/rtl/timerqueue.c rename to lib/rtl/timerqueue.c diff --git a/reactos/lib/rtl/timezone.c b/lib/rtl/timezone.c similarity index 100% rename from reactos/lib/rtl/timezone.c rename to lib/rtl/timezone.c diff --git a/reactos/lib/rtl/unicode.c b/lib/rtl/unicode.c similarity index 100% rename from reactos/lib/rtl/unicode.c rename to lib/rtl/unicode.c diff --git a/reactos/lib/rtl/unicodeprefix.c b/lib/rtl/unicodeprefix.c similarity index 100% rename from reactos/lib/rtl/unicodeprefix.c rename to lib/rtl/unicodeprefix.c diff --git a/reactos/lib/rtl/vectoreh.c b/lib/rtl/vectoreh.c similarity index 100% rename from reactos/lib/rtl/vectoreh.c rename to lib/rtl/vectoreh.c diff --git a/reactos/lib/rtl/version.c b/lib/rtl/version.c similarity index 100% rename from reactos/lib/rtl/version.c rename to lib/rtl/version.c diff --git a/reactos/lib/rtl/wait.c b/lib/rtl/wait.c similarity index 100% rename from reactos/lib/rtl/wait.c rename to lib/rtl/wait.c diff --git a/reactos/lib/rtl/workitem.c b/lib/rtl/workitem.c similarity index 100% rename from reactos/lib/rtl/workitem.c rename to lib/rtl/workitem.c diff --git a/reactos/lib/sdk/CMakeLists.txt b/lib/sdk/CMakeLists.txt similarity index 100% rename from reactos/lib/sdk/CMakeLists.txt rename to lib/sdk/CMakeLists.txt diff --git a/reactos/lib/sdk/crt/CMakeLists.txt b/lib/sdk/crt/CMakeLists.txt similarity index 100% rename from reactos/lib/sdk/crt/CMakeLists.txt rename to lib/sdk/crt/CMakeLists.txt diff --git a/reactos/lib/sdk/crt/README.txt b/lib/sdk/crt/README.txt similarity index 100% rename from reactos/lib/sdk/crt/README.txt rename to lib/sdk/crt/README.txt diff --git a/reactos/lib/sdk/crt/conio/cgets.c b/lib/sdk/crt/conio/cgets.c similarity index 100% rename from reactos/lib/sdk/crt/conio/cgets.c rename to lib/sdk/crt/conio/cgets.c diff --git a/reactos/lib/sdk/crt/conio/cputs.c b/lib/sdk/crt/conio/cputs.c similarity index 100% rename from reactos/lib/sdk/crt/conio/cputs.c rename to lib/sdk/crt/conio/cputs.c diff --git a/reactos/lib/sdk/crt/conio/getch.c b/lib/sdk/crt/conio/getch.c similarity index 100% rename from reactos/lib/sdk/crt/conio/getch.c rename to lib/sdk/crt/conio/getch.c diff --git a/reactos/lib/sdk/crt/conio/getche.c b/lib/sdk/crt/conio/getche.c similarity index 100% rename from reactos/lib/sdk/crt/conio/getche.c rename to lib/sdk/crt/conio/getche.c diff --git a/reactos/lib/sdk/crt/conio/kbhit.c b/lib/sdk/crt/conio/kbhit.c similarity index 100% rename from reactos/lib/sdk/crt/conio/kbhit.c rename to lib/sdk/crt/conio/kbhit.c diff --git a/reactos/lib/sdk/crt/conio/putch.c b/lib/sdk/crt/conio/putch.c similarity index 100% rename from reactos/lib/sdk/crt/conio/putch.c rename to lib/sdk/crt/conio/putch.c diff --git a/reactos/lib/sdk/crt/conio/ungetch.c b/lib/sdk/crt/conio/ungetch.c similarity index 100% rename from reactos/lib/sdk/crt/conio/ungetch.c rename to lib/sdk/crt/conio/ungetch.c diff --git a/reactos/lib/sdk/crt/crt.cmake b/lib/sdk/crt/crt.cmake similarity index 100% rename from reactos/lib/sdk/crt/crt.cmake rename to lib/sdk/crt/crt.cmake diff --git a/reactos/lib/sdk/crt/direct/chdir.c b/lib/sdk/crt/direct/chdir.c similarity index 100% rename from reactos/lib/sdk/crt/direct/chdir.c rename to lib/sdk/crt/direct/chdir.c diff --git a/reactos/lib/sdk/crt/direct/chdrive.c b/lib/sdk/crt/direct/chdrive.c similarity index 100% rename from reactos/lib/sdk/crt/direct/chdrive.c rename to lib/sdk/crt/direct/chdrive.c diff --git a/reactos/lib/sdk/crt/direct/getcwd.c b/lib/sdk/crt/direct/getcwd.c similarity index 100% rename from reactos/lib/sdk/crt/direct/getcwd.c rename to lib/sdk/crt/direct/getcwd.c diff --git a/reactos/lib/sdk/crt/direct/getdcwd.c b/lib/sdk/crt/direct/getdcwd.c similarity index 100% rename from reactos/lib/sdk/crt/direct/getdcwd.c rename to lib/sdk/crt/direct/getdcwd.c diff --git a/reactos/lib/sdk/crt/direct/getdfree.c b/lib/sdk/crt/direct/getdfree.c similarity index 100% rename from reactos/lib/sdk/crt/direct/getdfree.c rename to lib/sdk/crt/direct/getdfree.c diff --git a/reactos/lib/sdk/crt/direct/getdrive.c b/lib/sdk/crt/direct/getdrive.c similarity index 100% rename from reactos/lib/sdk/crt/direct/getdrive.c rename to lib/sdk/crt/direct/getdrive.c diff --git a/reactos/lib/sdk/crt/direct/mkdir.c b/lib/sdk/crt/direct/mkdir.c similarity index 100% rename from reactos/lib/sdk/crt/direct/mkdir.c rename to lib/sdk/crt/direct/mkdir.c diff --git a/reactos/lib/sdk/crt/direct/rmdir.c b/lib/sdk/crt/direct/rmdir.c similarity index 100% rename from reactos/lib/sdk/crt/direct/rmdir.c rename to lib/sdk/crt/direct/rmdir.c diff --git a/reactos/lib/sdk/crt/direct/wchdir.c b/lib/sdk/crt/direct/wchdir.c similarity index 100% rename from reactos/lib/sdk/crt/direct/wchdir.c rename to lib/sdk/crt/direct/wchdir.c diff --git a/reactos/lib/sdk/crt/direct/wgetcwd.c b/lib/sdk/crt/direct/wgetcwd.c similarity index 100% rename from reactos/lib/sdk/crt/direct/wgetcwd.c rename to lib/sdk/crt/direct/wgetcwd.c diff --git a/reactos/lib/sdk/crt/direct/wgetdcwd.c b/lib/sdk/crt/direct/wgetdcwd.c similarity index 100% rename from reactos/lib/sdk/crt/direct/wgetdcwd.c rename to lib/sdk/crt/direct/wgetdcwd.c diff --git a/reactos/lib/sdk/crt/direct/wmkdir.c b/lib/sdk/crt/direct/wmkdir.c similarity index 100% rename from reactos/lib/sdk/crt/direct/wmkdir.c rename to lib/sdk/crt/direct/wmkdir.c diff --git a/reactos/lib/sdk/crt/direct/wrmdir.c b/lib/sdk/crt/direct/wrmdir.c similarity index 100% rename from reactos/lib/sdk/crt/direct/wrmdir.c rename to lib/sdk/crt/direct/wrmdir.c diff --git a/reactos/lib/sdk/crt/except/amd64/chkstk_asm.s b/lib/sdk/crt/except/amd64/chkstk_asm.s similarity index 100% rename from reactos/lib/sdk/crt/except/amd64/chkstk_asm.s rename to lib/sdk/crt/except/amd64/chkstk_asm.s diff --git a/reactos/lib/sdk/crt/except/amd64/chkstk_ms.s b/lib/sdk/crt/except/amd64/chkstk_ms.s similarity index 100% rename from reactos/lib/sdk/crt/except/amd64/chkstk_ms.s rename to lib/sdk/crt/except/amd64/chkstk_ms.s diff --git a/reactos/lib/sdk/crt/except/amd64/cpp.s b/lib/sdk/crt/except/amd64/cpp.s similarity index 100% rename from reactos/lib/sdk/crt/except/amd64/cpp.s rename to lib/sdk/crt/except/amd64/cpp.s diff --git a/reactos/lib/sdk/crt/except/amd64/ehandler.c b/lib/sdk/crt/except/amd64/ehandler.c similarity index 100% rename from reactos/lib/sdk/crt/except/amd64/ehandler.c rename to lib/sdk/crt/except/amd64/ehandler.c diff --git a/reactos/lib/sdk/crt/except/amd64/seh.s b/lib/sdk/crt/except/amd64/seh.s similarity index 100% rename from reactos/lib/sdk/crt/except/amd64/seh.s rename to lib/sdk/crt/except/amd64/seh.s diff --git a/reactos/lib/sdk/crt/except/cpp.c b/lib/sdk/crt/except/cpp.c similarity index 100% rename from reactos/lib/sdk/crt/except/cpp.c rename to lib/sdk/crt/except/cpp.c diff --git a/reactos/lib/sdk/crt/except/cppexcept.c b/lib/sdk/crt/except/cppexcept.c similarity index 100% rename from reactos/lib/sdk/crt/except/cppexcept.c rename to lib/sdk/crt/except/cppexcept.c diff --git a/reactos/lib/sdk/crt/except/except.c b/lib/sdk/crt/except/except.c similarity index 100% rename from reactos/lib/sdk/crt/except/except.c rename to lib/sdk/crt/except/except.c diff --git a/reactos/lib/sdk/crt/except/i386/chkesp.s b/lib/sdk/crt/except/i386/chkesp.s similarity index 100% rename from reactos/lib/sdk/crt/except/i386/chkesp.s rename to lib/sdk/crt/except/i386/chkesp.s diff --git a/reactos/lib/sdk/crt/except/i386/chkstk_asm.s b/lib/sdk/crt/except/i386/chkstk_asm.s similarity index 100% rename from reactos/lib/sdk/crt/except/i386/chkstk_asm.s rename to lib/sdk/crt/except/i386/chkstk_asm.s diff --git a/reactos/lib/sdk/crt/except/i386/chkstk_ms.s b/lib/sdk/crt/except/i386/chkstk_ms.s similarity index 100% rename from reactos/lib/sdk/crt/except/i386/chkstk_ms.s rename to lib/sdk/crt/except/i386/chkstk_ms.s diff --git a/reactos/lib/sdk/crt/except/i386/cpp.s b/lib/sdk/crt/except/i386/cpp.s similarity index 100% rename from reactos/lib/sdk/crt/except/i386/cpp.s rename to lib/sdk/crt/except/i386/cpp.s diff --git a/reactos/lib/sdk/crt/except/i386/prolog.s b/lib/sdk/crt/except/i386/prolog.s similarity index 100% rename from reactos/lib/sdk/crt/except/i386/prolog.s rename to lib/sdk/crt/except/i386/prolog.s diff --git a/reactos/lib/sdk/crt/except/i386/seh.s b/lib/sdk/crt/except/i386/seh.s similarity index 100% rename from reactos/lib/sdk/crt/except/i386/seh.s rename to lib/sdk/crt/except/i386/seh.s diff --git a/reactos/lib/sdk/crt/except/i386/seh_prolog.s b/lib/sdk/crt/except/i386/seh_prolog.s similarity index 100% rename from reactos/lib/sdk/crt/except/i386/seh_prolog.s rename to lib/sdk/crt/except/i386/seh_prolog.s diff --git a/reactos/lib/sdk/crt/except/i386/unwind.c b/lib/sdk/crt/except/i386/unwind.c similarity index 100% rename from reactos/lib/sdk/crt/except/i386/unwind.c rename to lib/sdk/crt/except/i386/unwind.c diff --git a/reactos/lib/sdk/crt/except/matherr.c b/lib/sdk/crt/except/matherr.c similarity index 100% rename from reactos/lib/sdk/crt/except/matherr.c rename to lib/sdk/crt/except/matherr.c diff --git a/reactos/lib/sdk/crt/except/powerpc/chkstk_asm.s b/lib/sdk/crt/except/powerpc/chkstk_asm.s similarity index 100% rename from reactos/lib/sdk/crt/except/powerpc/chkstk_asm.s rename to lib/sdk/crt/except/powerpc/chkstk_asm.s diff --git a/reactos/lib/sdk/crt/except/powerpc/seh.s b/lib/sdk/crt/except/powerpc/seh.s similarity index 100% rename from reactos/lib/sdk/crt/except/powerpc/seh.s rename to lib/sdk/crt/except/powerpc/seh.s diff --git a/reactos/lib/sdk/crt/except/stack.c b/lib/sdk/crt/except/stack.c similarity index 100% rename from reactos/lib/sdk/crt/except/stack.c rename to lib/sdk/crt/except/stack.c diff --git a/reactos/lib/sdk/crt/except/xcptfil.c b/lib/sdk/crt/except/xcptfil.c similarity index 100% rename from reactos/lib/sdk/crt/except/xcptfil.c rename to lib/sdk/crt/except/xcptfil.c diff --git a/reactos/lib/sdk/crt/float/amd64/clearfp.S b/lib/sdk/crt/float/amd64/clearfp.S similarity index 100% rename from reactos/lib/sdk/crt/float/amd64/clearfp.S rename to lib/sdk/crt/float/amd64/clearfp.S diff --git a/reactos/lib/sdk/crt/float/amd64/fpreset.S b/lib/sdk/crt/float/amd64/fpreset.S similarity index 100% rename from reactos/lib/sdk/crt/float/amd64/fpreset.S rename to lib/sdk/crt/float/amd64/fpreset.S diff --git a/reactos/lib/sdk/crt/float/amd64/getsetfpcw.S b/lib/sdk/crt/float/amd64/getsetfpcw.S similarity index 100% rename from reactos/lib/sdk/crt/float/amd64/getsetfpcw.S rename to lib/sdk/crt/float/amd64/getsetfpcw.S diff --git a/reactos/lib/sdk/crt/float/amd64/logb.S b/lib/sdk/crt/float/amd64/logb.S similarity index 100% rename from reactos/lib/sdk/crt/float/amd64/logb.S rename to lib/sdk/crt/float/amd64/logb.S diff --git a/reactos/lib/sdk/crt/float/chgsign.c b/lib/sdk/crt/float/chgsign.c similarity index 100% rename from reactos/lib/sdk/crt/float/chgsign.c rename to lib/sdk/crt/float/chgsign.c diff --git a/reactos/lib/sdk/crt/float/copysign.c b/lib/sdk/crt/float/copysign.c similarity index 100% rename from reactos/lib/sdk/crt/float/copysign.c rename to lib/sdk/crt/float/copysign.c diff --git a/reactos/lib/sdk/crt/float/fpclass.c b/lib/sdk/crt/float/fpclass.c similarity index 100% rename from reactos/lib/sdk/crt/float/fpclass.c rename to lib/sdk/crt/float/fpclass.c diff --git a/reactos/lib/sdk/crt/float/fpecode.c b/lib/sdk/crt/float/fpecode.c similarity index 100% rename from reactos/lib/sdk/crt/float/fpecode.c rename to lib/sdk/crt/float/fpecode.c diff --git a/reactos/lib/sdk/crt/float/i386/clearfp.c b/lib/sdk/crt/float/i386/clearfp.c similarity index 100% rename from reactos/lib/sdk/crt/float/i386/clearfp.c rename to lib/sdk/crt/float/i386/clearfp.c diff --git a/reactos/lib/sdk/crt/float/i386/cntrlfp.c b/lib/sdk/crt/float/i386/cntrlfp.c similarity index 100% rename from reactos/lib/sdk/crt/float/i386/cntrlfp.c rename to lib/sdk/crt/float/i386/cntrlfp.c diff --git a/reactos/lib/sdk/crt/float/i386/fpreset.c b/lib/sdk/crt/float/i386/fpreset.c similarity index 100% rename from reactos/lib/sdk/crt/float/i386/fpreset.c rename to lib/sdk/crt/float/i386/fpreset.c diff --git a/reactos/lib/sdk/crt/float/i386/logb.c b/lib/sdk/crt/float/i386/logb.c similarity index 100% rename from reactos/lib/sdk/crt/float/i386/logb.c rename to lib/sdk/crt/float/i386/logb.c diff --git a/reactos/lib/sdk/crt/float/i386/statfp.c b/lib/sdk/crt/float/i386/statfp.c similarity index 100% rename from reactos/lib/sdk/crt/float/i386/statfp.c rename to lib/sdk/crt/float/i386/statfp.c diff --git a/reactos/lib/sdk/crt/float/isnan.c b/lib/sdk/crt/float/isnan.c similarity index 100% rename from reactos/lib/sdk/crt/float/isnan.c rename to lib/sdk/crt/float/isnan.c diff --git a/reactos/lib/sdk/crt/float/nafter.c b/lib/sdk/crt/float/nafter.c similarity index 100% rename from reactos/lib/sdk/crt/float/nafter.c rename to lib/sdk/crt/float/nafter.c diff --git a/reactos/lib/sdk/crt/float/scalb.c b/lib/sdk/crt/float/scalb.c similarity index 100% rename from reactos/lib/sdk/crt/float/scalb.c rename to lib/sdk/crt/float/scalb.c diff --git a/reactos/lib/sdk/crt/include/float.h b/lib/sdk/crt/include/float.h similarity index 100% rename from reactos/lib/sdk/crt/include/float.h rename to lib/sdk/crt/include/float.h diff --git a/reactos/lib/sdk/crt/include/internal/atexit.h b/lib/sdk/crt/include/internal/atexit.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/atexit.h rename to lib/sdk/crt/include/internal/atexit.h diff --git a/reactos/lib/sdk/crt/include/internal/console.h b/lib/sdk/crt/include/internal/console.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/console.h rename to lib/sdk/crt/include/internal/console.h diff --git a/reactos/lib/sdk/crt/include/internal/ieee.h b/lib/sdk/crt/include/internal/ieee.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/ieee.h rename to lib/sdk/crt/include/internal/ieee.h diff --git a/reactos/lib/sdk/crt/include/internal/math.h b/lib/sdk/crt/include/internal/math.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/math.h rename to lib/sdk/crt/include/internal/math.h diff --git a/reactos/lib/sdk/crt/include/internal/mbstring.h b/lib/sdk/crt/include/internal/mbstring.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/mbstring.h rename to lib/sdk/crt/include/internal/mbstring.h diff --git a/reactos/lib/sdk/crt/include/internal/mingw-w64/internal.h b/lib/sdk/crt/include/internal/mingw-w64/internal.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/mingw-w64/internal.h rename to lib/sdk/crt/include/internal/mingw-w64/internal.h diff --git a/reactos/lib/sdk/crt/include/internal/mingw-w64/oscalls.h b/lib/sdk/crt/include/internal/mingw-w64/oscalls.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/mingw-w64/oscalls.h rename to lib/sdk/crt/include/internal/mingw-w64/oscalls.h diff --git a/reactos/lib/sdk/crt/include/internal/mingw-w64/sect_attribs.h b/lib/sdk/crt/include/internal/mingw-w64/sect_attribs.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/mingw-w64/sect_attribs.h rename to lib/sdk/crt/include/internal/mingw-w64/sect_attribs.h diff --git a/reactos/lib/sdk/crt/include/internal/mtdll.h b/lib/sdk/crt/include/internal/mtdll.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/mtdll.h rename to lib/sdk/crt/include/internal/mtdll.h diff --git a/reactos/lib/sdk/crt/include/internal/rterror.h b/lib/sdk/crt/include/internal/rterror.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/rterror.h rename to lib/sdk/crt/include/internal/rterror.h diff --git a/reactos/lib/sdk/crt/include/internal/safecrt.h b/lib/sdk/crt/include/internal/safecrt.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/safecrt.h rename to lib/sdk/crt/include/internal/safecrt.h diff --git a/reactos/lib/sdk/crt/include/internal/time.h b/lib/sdk/crt/include/internal/time.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/time.h rename to lib/sdk/crt/include/internal/time.h diff --git a/reactos/lib/sdk/crt/include/internal/tls.h b/lib/sdk/crt/include/internal/tls.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/tls.h rename to lib/sdk/crt/include/internal/tls.h diff --git a/reactos/lib/sdk/crt/include/internal/wine/cppexcept.h b/lib/sdk/crt/include/internal/wine/cppexcept.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/wine/cppexcept.h rename to lib/sdk/crt/include/internal/wine/cppexcept.h diff --git a/reactos/lib/sdk/crt/include/internal/wine/eh.h b/lib/sdk/crt/include/internal/wine/eh.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/wine/eh.h rename to lib/sdk/crt/include/internal/wine/eh.h diff --git a/reactos/lib/sdk/crt/include/internal/wine/msvcrt.h b/lib/sdk/crt/include/internal/wine/msvcrt.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/wine/msvcrt.h rename to lib/sdk/crt/include/internal/wine/msvcrt.h diff --git a/reactos/lib/sdk/crt/include/internal/wine_msc.h b/lib/sdk/crt/include/internal/wine_msc.h similarity index 100% rename from reactos/lib/sdk/crt/include/internal/wine_msc.h rename to lib/sdk/crt/include/internal/wine_msc.h diff --git a/reactos/lib/sdk/crt/libcntpr.cmake b/lib/sdk/crt/libcntpr.cmake similarity index 100% rename from reactos/lib/sdk/crt/libcntpr.cmake rename to lib/sdk/crt/libcntpr.cmake diff --git a/reactos/lib/sdk/crt/locale/locale.c b/lib/sdk/crt/locale/locale.c similarity index 100% rename from reactos/lib/sdk/crt/locale/locale.c rename to lib/sdk/crt/locale/locale.c diff --git a/reactos/lib/sdk/crt/math/abs.c b/lib/sdk/crt/math/abs.c similarity index 100% rename from reactos/lib/sdk/crt/math/abs.c rename to lib/sdk/crt/math/abs.c diff --git a/reactos/lib/sdk/crt/math/acos.c b/lib/sdk/crt/math/acos.c similarity index 100% rename from reactos/lib/sdk/crt/math/acos.c rename to lib/sdk/crt/math/acos.c diff --git a/reactos/lib/sdk/crt/math/adjust.c b/lib/sdk/crt/math/adjust.c similarity index 100% rename from reactos/lib/sdk/crt/math/adjust.c rename to lib/sdk/crt/math/adjust.c diff --git a/reactos/lib/sdk/crt/math/amd64/acos.S b/lib/sdk/crt/math/amd64/acos.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/acos.S rename to lib/sdk/crt/math/amd64/acos.S diff --git a/reactos/lib/sdk/crt/math/amd64/acosf.S b/lib/sdk/crt/math/amd64/acosf.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/acosf.S rename to lib/sdk/crt/math/amd64/acosf.S diff --git a/reactos/lib/sdk/crt/math/amd64/atan.S b/lib/sdk/crt/math/amd64/atan.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/atan.S rename to lib/sdk/crt/math/amd64/atan.S diff --git a/reactos/lib/sdk/crt/math/amd64/atan2.S b/lib/sdk/crt/math/amd64/atan2.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/atan2.S rename to lib/sdk/crt/math/amd64/atan2.S diff --git a/reactos/lib/sdk/crt/math/amd64/ceil.S b/lib/sdk/crt/math/amd64/ceil.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/ceil.S rename to lib/sdk/crt/math/amd64/ceil.S diff --git a/reactos/lib/sdk/crt/math/amd64/ceilf.S b/lib/sdk/crt/math/amd64/ceilf.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/ceilf.S rename to lib/sdk/crt/math/amd64/ceilf.S diff --git a/reactos/lib/sdk/crt/math/amd64/exp.S b/lib/sdk/crt/math/amd64/exp.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/exp.S rename to lib/sdk/crt/math/amd64/exp.S diff --git a/reactos/lib/sdk/crt/math/amd64/fabs.S b/lib/sdk/crt/math/amd64/fabs.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/fabs.S rename to lib/sdk/crt/math/amd64/fabs.S diff --git a/reactos/lib/sdk/crt/math/amd64/floor.S b/lib/sdk/crt/math/amd64/floor.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/floor.S rename to lib/sdk/crt/math/amd64/floor.S diff --git a/reactos/lib/sdk/crt/math/amd64/floorf.S b/lib/sdk/crt/math/amd64/floorf.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/floorf.S rename to lib/sdk/crt/math/amd64/floorf.S diff --git a/reactos/lib/sdk/crt/math/amd64/fmod.S b/lib/sdk/crt/math/amd64/fmod.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/fmod.S rename to lib/sdk/crt/math/amd64/fmod.S diff --git a/reactos/lib/sdk/crt/math/amd64/fmodf.S b/lib/sdk/crt/math/amd64/fmodf.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/fmodf.S rename to lib/sdk/crt/math/amd64/fmodf.S diff --git a/reactos/lib/sdk/crt/math/amd64/ldexp.S b/lib/sdk/crt/math/amd64/ldexp.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/ldexp.S rename to lib/sdk/crt/math/amd64/ldexp.S diff --git a/reactos/lib/sdk/crt/math/amd64/log.S b/lib/sdk/crt/math/amd64/log.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/log.S rename to lib/sdk/crt/math/amd64/log.S diff --git a/reactos/lib/sdk/crt/math/amd64/log10.S b/lib/sdk/crt/math/amd64/log10.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/log10.S rename to lib/sdk/crt/math/amd64/log10.S diff --git a/reactos/lib/sdk/crt/math/amd64/pow.S b/lib/sdk/crt/math/amd64/pow.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/pow.S rename to lib/sdk/crt/math/amd64/pow.S diff --git a/reactos/lib/sdk/crt/math/amd64/sqrt.S b/lib/sdk/crt/math/amd64/sqrt.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/sqrt.S rename to lib/sdk/crt/math/amd64/sqrt.S diff --git a/reactos/lib/sdk/crt/math/amd64/sqrtf.S b/lib/sdk/crt/math/amd64/sqrtf.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/sqrtf.S rename to lib/sdk/crt/math/amd64/sqrtf.S diff --git a/reactos/lib/sdk/crt/math/amd64/tan.S b/lib/sdk/crt/math/amd64/tan.S similarity index 100% rename from reactos/lib/sdk/crt/math/amd64/tan.S rename to lib/sdk/crt/math/amd64/tan.S diff --git a/reactos/lib/sdk/crt/math/asin.c b/lib/sdk/crt/math/asin.c similarity index 100% rename from reactos/lib/sdk/crt/math/asin.c rename to lib/sdk/crt/math/asin.c diff --git a/reactos/lib/sdk/crt/math/cabs.c b/lib/sdk/crt/math/cabs.c similarity index 100% rename from reactos/lib/sdk/crt/math/cabs.c rename to lib/sdk/crt/math/cabs.c diff --git a/reactos/lib/sdk/crt/math/cos.c b/lib/sdk/crt/math/cos.c similarity index 100% rename from reactos/lib/sdk/crt/math/cos.c rename to lib/sdk/crt/math/cos.c diff --git a/reactos/lib/sdk/crt/math/cosf.c b/lib/sdk/crt/math/cosf.c similarity index 100% rename from reactos/lib/sdk/crt/math/cosf.c rename to lib/sdk/crt/math/cosf.c diff --git a/reactos/lib/sdk/crt/math/cosh.c b/lib/sdk/crt/math/cosh.c similarity index 100% rename from reactos/lib/sdk/crt/math/cosh.c rename to lib/sdk/crt/math/cosh.c diff --git a/reactos/lib/sdk/crt/math/div.c b/lib/sdk/crt/math/div.c similarity index 100% rename from reactos/lib/sdk/crt/math/div.c rename to lib/sdk/crt/math/div.c diff --git a/reactos/lib/sdk/crt/math/fdivbug.c b/lib/sdk/crt/math/fdivbug.c similarity index 100% rename from reactos/lib/sdk/crt/math/fdivbug.c rename to lib/sdk/crt/math/fdivbug.c diff --git a/reactos/lib/sdk/crt/math/frexp.c b/lib/sdk/crt/math/frexp.c similarity index 100% rename from reactos/lib/sdk/crt/math/frexp.c rename to lib/sdk/crt/math/frexp.c diff --git a/reactos/lib/sdk/crt/math/huge_val.c b/lib/sdk/crt/math/huge_val.c similarity index 100% rename from reactos/lib/sdk/crt/math/huge_val.c rename to lib/sdk/crt/math/huge_val.c diff --git a/reactos/lib/sdk/crt/math/hypot.c b/lib/sdk/crt/math/hypot.c similarity index 100% rename from reactos/lib/sdk/crt/math/hypot.c rename to lib/sdk/crt/math/hypot.c diff --git a/reactos/lib/sdk/crt/math/i386/alldiv_asm.s b/lib/sdk/crt/math/i386/alldiv_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/alldiv_asm.s rename to lib/sdk/crt/math/i386/alldiv_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/alldvrm_asm.s b/lib/sdk/crt/math/i386/alldvrm_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/alldvrm_asm.s rename to lib/sdk/crt/math/i386/alldvrm_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/allmul_asm.s b/lib/sdk/crt/math/i386/allmul_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/allmul_asm.s rename to lib/sdk/crt/math/i386/allmul_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/allrem_asm.s b/lib/sdk/crt/math/i386/allrem_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/allrem_asm.s rename to lib/sdk/crt/math/i386/allrem_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/allshl_asm.s b/lib/sdk/crt/math/i386/allshl_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/allshl_asm.s rename to lib/sdk/crt/math/i386/allshl_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/allshr_asm.s b/lib/sdk/crt/math/i386/allshr_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/allshr_asm.s rename to lib/sdk/crt/math/i386/allshr_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/atan2.c b/lib/sdk/crt/math/i386/atan2.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/atan2.c rename to lib/sdk/crt/math/i386/atan2.c diff --git a/reactos/lib/sdk/crt/math/i386/atan2_asm.s b/lib/sdk/crt/math/i386/atan2_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/atan2_asm.s rename to lib/sdk/crt/math/i386/atan2_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/atan_asm.s b/lib/sdk/crt/math/i386/atan_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/atan_asm.s rename to lib/sdk/crt/math/i386/atan_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/aulldiv_asm.s b/lib/sdk/crt/math/i386/aulldiv_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/aulldiv_asm.s rename to lib/sdk/crt/math/i386/aulldiv_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/aulldvrm_asm.s b/lib/sdk/crt/math/i386/aulldvrm_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/aulldvrm_asm.s rename to lib/sdk/crt/math/i386/aulldvrm_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/aullrem_asm.s b/lib/sdk/crt/math/i386/aullrem_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/aullrem_asm.s rename to lib/sdk/crt/math/i386/aullrem_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/aullshr_asm.s b/lib/sdk/crt/math/i386/aullshr_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/aullshr_asm.s rename to lib/sdk/crt/math/i386/aullshr_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/ceil_asm.s b/lib/sdk/crt/math/i386/ceil_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/ceil_asm.s rename to lib/sdk/crt/math/i386/ceil_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/ceilf.S b/lib/sdk/crt/math/i386/ceilf.S similarity index 100% rename from reactos/lib/sdk/crt/math/i386/ceilf.S rename to lib/sdk/crt/math/i386/ceilf.S diff --git a/reactos/lib/sdk/crt/math/i386/ci.c b/lib/sdk/crt/math/i386/ci.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/ci.c rename to lib/sdk/crt/math/i386/ci.c diff --git a/reactos/lib/sdk/crt/math/i386/cicos.c b/lib/sdk/crt/math/i386/cicos.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/cicos.c rename to lib/sdk/crt/math/i386/cicos.c diff --git a/reactos/lib/sdk/crt/math/i386/cilog.c b/lib/sdk/crt/math/i386/cilog.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/cilog.c rename to lib/sdk/crt/math/i386/cilog.c diff --git a/reactos/lib/sdk/crt/math/i386/cipow.c b/lib/sdk/crt/math/i386/cipow.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/cipow.c rename to lib/sdk/crt/math/i386/cipow.c diff --git a/reactos/lib/sdk/crt/math/i386/cisin.c b/lib/sdk/crt/math/i386/cisin.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/cisin.c rename to lib/sdk/crt/math/i386/cisin.c diff --git a/reactos/lib/sdk/crt/math/i386/cisqrt.c b/lib/sdk/crt/math/i386/cisqrt.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/cisqrt.c rename to lib/sdk/crt/math/i386/cisqrt.c diff --git a/reactos/lib/sdk/crt/math/i386/cos_asm.s b/lib/sdk/crt/math/i386/cos_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/cos_asm.s rename to lib/sdk/crt/math/i386/cos_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/exp.c b/lib/sdk/crt/math/i386/exp.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/exp.c rename to lib/sdk/crt/math/i386/exp.c diff --git a/reactos/lib/sdk/crt/math/i386/exp_asm.s b/lib/sdk/crt/math/i386/exp_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/exp_asm.s rename to lib/sdk/crt/math/i386/exp_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/fabs_asm.s b/lib/sdk/crt/math/i386/fabs_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/fabs_asm.s rename to lib/sdk/crt/math/i386/fabs_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/floor_asm.s b/lib/sdk/crt/math/i386/floor_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/floor_asm.s rename to lib/sdk/crt/math/i386/floor_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/floorf.S b/lib/sdk/crt/math/i386/floorf.S similarity index 100% rename from reactos/lib/sdk/crt/math/i386/floorf.S rename to lib/sdk/crt/math/i386/floorf.S diff --git a/reactos/lib/sdk/crt/math/i386/fmod.c b/lib/sdk/crt/math/i386/fmod.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/fmod.c rename to lib/sdk/crt/math/i386/fmod.c diff --git a/reactos/lib/sdk/crt/math/i386/fmod_asm.s b/lib/sdk/crt/math/i386/fmod_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/fmod_asm.s rename to lib/sdk/crt/math/i386/fmod_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/fmodf.c b/lib/sdk/crt/math/i386/fmodf.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/fmodf.c rename to lib/sdk/crt/math/i386/fmodf.c diff --git a/reactos/lib/sdk/crt/math/i386/fmodf_asm.s b/lib/sdk/crt/math/i386/fmodf_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/fmodf_asm.s rename to lib/sdk/crt/math/i386/fmodf_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/ftol2_asm.s b/lib/sdk/crt/math/i386/ftol2_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/ftol2_asm.s rename to lib/sdk/crt/math/i386/ftol2_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/ftol_asm.s b/lib/sdk/crt/math/i386/ftol_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/ftol_asm.s rename to lib/sdk/crt/math/i386/ftol_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/ldexp.c b/lib/sdk/crt/math/i386/ldexp.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/ldexp.c rename to lib/sdk/crt/math/i386/ldexp.c diff --git a/reactos/lib/sdk/crt/math/i386/log10_asm.s b/lib/sdk/crt/math/i386/log10_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/log10_asm.s rename to lib/sdk/crt/math/i386/log10_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/log_asm.s b/lib/sdk/crt/math/i386/log_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/log_asm.s rename to lib/sdk/crt/math/i386/log_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/pow_asm.s b/lib/sdk/crt/math/i386/pow_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/pow_asm.s rename to lib/sdk/crt/math/i386/pow_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/sin_asm.s b/lib/sdk/crt/math/i386/sin_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/sin_asm.s rename to lib/sdk/crt/math/i386/sin_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/sqrt_asm.s b/lib/sdk/crt/math/i386/sqrt_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/sqrt_asm.s rename to lib/sdk/crt/math/i386/sqrt_asm.s diff --git a/reactos/lib/sdk/crt/math/i386/sqrtf.c b/lib/sdk/crt/math/i386/sqrtf.c similarity index 100% rename from reactos/lib/sdk/crt/math/i386/sqrtf.c rename to lib/sdk/crt/math/i386/sqrtf.c diff --git a/reactos/lib/sdk/crt/math/i386/tan_asm.s b/lib/sdk/crt/math/i386/tan_asm.s similarity index 100% rename from reactos/lib/sdk/crt/math/i386/tan_asm.s rename to lib/sdk/crt/math/i386/tan_asm.s diff --git a/reactos/lib/sdk/crt/math/ieee754/ieee754.h b/lib/sdk/crt/math/ieee754/ieee754.h similarity index 100% rename from reactos/lib/sdk/crt/math/ieee754/ieee754.h rename to lib/sdk/crt/math/ieee754/ieee754.h diff --git a/reactos/lib/sdk/crt/math/ieee754/j0_y0.c b/lib/sdk/crt/math/ieee754/j0_y0.c similarity index 100% rename from reactos/lib/sdk/crt/math/ieee754/j0_y0.c rename to lib/sdk/crt/math/ieee754/j0_y0.c diff --git a/reactos/lib/sdk/crt/math/ieee754/j1_y1.c b/lib/sdk/crt/math/ieee754/j1_y1.c similarity index 100% rename from reactos/lib/sdk/crt/math/ieee754/j1_y1.c rename to lib/sdk/crt/math/ieee754/j1_y1.c diff --git a/reactos/lib/sdk/crt/math/ieee754/jn_yn.c b/lib/sdk/crt/math/ieee754/jn_yn.c similarity index 100% rename from reactos/lib/sdk/crt/math/ieee754/jn_yn.c rename to lib/sdk/crt/math/ieee754/jn_yn.c diff --git a/reactos/lib/sdk/crt/math/j0_y0.c b/lib/sdk/crt/math/j0_y0.c similarity index 100% rename from reactos/lib/sdk/crt/math/j0_y0.c rename to lib/sdk/crt/math/j0_y0.c diff --git a/reactos/lib/sdk/crt/math/j1_y1.c b/lib/sdk/crt/math/j1_y1.c similarity index 100% rename from reactos/lib/sdk/crt/math/j1_y1.c rename to lib/sdk/crt/math/j1_y1.c diff --git a/reactos/lib/sdk/crt/math/jn_yn.c b/lib/sdk/crt/math/jn_yn.c similarity index 100% rename from reactos/lib/sdk/crt/math/jn_yn.c rename to lib/sdk/crt/math/jn_yn.c diff --git a/reactos/lib/sdk/crt/math/labs.c b/lib/sdk/crt/math/labs.c similarity index 100% rename from reactos/lib/sdk/crt/math/labs.c rename to lib/sdk/crt/math/labs.c diff --git a/reactos/lib/sdk/crt/math/ldiv.c b/lib/sdk/crt/math/ldiv.c similarity index 100% rename from reactos/lib/sdk/crt/math/ldiv.c rename to lib/sdk/crt/math/ldiv.c diff --git a/reactos/lib/sdk/crt/math/logf.c b/lib/sdk/crt/math/logf.c similarity index 100% rename from reactos/lib/sdk/crt/math/logf.c rename to lib/sdk/crt/math/logf.c diff --git a/reactos/lib/sdk/crt/math/modf.c b/lib/sdk/crt/math/modf.c similarity index 100% rename from reactos/lib/sdk/crt/math/modf.c rename to lib/sdk/crt/math/modf.c diff --git a/reactos/lib/sdk/crt/math/powf.c b/lib/sdk/crt/math/powf.c similarity index 100% rename from reactos/lib/sdk/crt/math/powf.c rename to lib/sdk/crt/math/powf.c diff --git a/reactos/lib/sdk/crt/math/powl.c b/lib/sdk/crt/math/powl.c similarity index 100% rename from reactos/lib/sdk/crt/math/powl.c rename to lib/sdk/crt/math/powl.c diff --git a/reactos/lib/sdk/crt/math/rand.c b/lib/sdk/crt/math/rand.c similarity index 100% rename from reactos/lib/sdk/crt/math/rand.c rename to lib/sdk/crt/math/rand.c diff --git a/reactos/lib/sdk/crt/math/rand_nt.c b/lib/sdk/crt/math/rand_nt.c similarity index 100% rename from reactos/lib/sdk/crt/math/rand_nt.c rename to lib/sdk/crt/math/rand_nt.c diff --git a/reactos/lib/sdk/crt/math/s_modf.c b/lib/sdk/crt/math/s_modf.c similarity index 100% rename from reactos/lib/sdk/crt/math/s_modf.c rename to lib/sdk/crt/math/s_modf.c diff --git a/reactos/lib/sdk/crt/math/sin.c b/lib/sdk/crt/math/sin.c similarity index 100% rename from reactos/lib/sdk/crt/math/sin.c rename to lib/sdk/crt/math/sin.c diff --git a/reactos/lib/sdk/crt/math/sinf.c b/lib/sdk/crt/math/sinf.c similarity index 100% rename from reactos/lib/sdk/crt/math/sinf.c rename to lib/sdk/crt/math/sinf.c diff --git a/reactos/lib/sdk/crt/math/sinh.c b/lib/sdk/crt/math/sinh.c similarity index 100% rename from reactos/lib/sdk/crt/math/sinh.c rename to lib/sdk/crt/math/sinh.c diff --git a/reactos/lib/sdk/crt/math/sqrtf.c b/lib/sdk/crt/math/sqrtf.c similarity index 100% rename from reactos/lib/sdk/crt/math/sqrtf.c rename to lib/sdk/crt/math/sqrtf.c diff --git a/reactos/lib/sdk/crt/math/stubs.c b/lib/sdk/crt/math/stubs.c similarity index 100% rename from reactos/lib/sdk/crt/math/stubs.c rename to lib/sdk/crt/math/stubs.c diff --git a/reactos/lib/sdk/crt/math/tanh.c b/lib/sdk/crt/math/tanh.c similarity index 100% rename from reactos/lib/sdk/crt/math/tanh.c rename to lib/sdk/crt/math/tanh.c diff --git a/reactos/lib/sdk/crt/mbstring/hanzen.c b/lib/sdk/crt/mbstring/hanzen.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/hanzen.c rename to lib/sdk/crt/mbstring/hanzen.c diff --git a/reactos/lib/sdk/crt/mbstring/ischira.c b/lib/sdk/crt/mbstring/ischira.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/ischira.c rename to lib/sdk/crt/mbstring/ischira.c diff --git a/reactos/lib/sdk/crt/mbstring/iskana.c b/lib/sdk/crt/mbstring/iskana.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/iskana.c rename to lib/sdk/crt/mbstring/iskana.c diff --git a/reactos/lib/sdk/crt/mbstring/iskmoji.c b/lib/sdk/crt/mbstring/iskmoji.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/iskmoji.c rename to lib/sdk/crt/mbstring/iskmoji.c diff --git a/reactos/lib/sdk/crt/mbstring/iskpun.c b/lib/sdk/crt/mbstring/iskpun.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/iskpun.c rename to lib/sdk/crt/mbstring/iskpun.c diff --git a/reactos/lib/sdk/crt/mbstring/islead.c b/lib/sdk/crt/mbstring/islead.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/islead.c rename to lib/sdk/crt/mbstring/islead.c diff --git a/reactos/lib/sdk/crt/mbstring/islwr.c b/lib/sdk/crt/mbstring/islwr.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/islwr.c rename to lib/sdk/crt/mbstring/islwr.c diff --git a/reactos/lib/sdk/crt/mbstring/ismbal.c b/lib/sdk/crt/mbstring/ismbal.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/ismbal.c rename to lib/sdk/crt/mbstring/ismbal.c diff --git a/reactos/lib/sdk/crt/mbstring/ismbaln.c b/lib/sdk/crt/mbstring/ismbaln.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/ismbaln.c rename to lib/sdk/crt/mbstring/ismbaln.c diff --git a/reactos/lib/sdk/crt/mbstring/ismbc.c b/lib/sdk/crt/mbstring/ismbc.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/ismbc.c rename to lib/sdk/crt/mbstring/ismbc.c diff --git a/reactos/lib/sdk/crt/mbstring/ismbgra.c b/lib/sdk/crt/mbstring/ismbgra.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/ismbgra.c rename to lib/sdk/crt/mbstring/ismbgra.c diff --git a/reactos/lib/sdk/crt/mbstring/ismbkaln.c b/lib/sdk/crt/mbstring/ismbkaln.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/ismbkaln.c rename to lib/sdk/crt/mbstring/ismbkaln.c diff --git a/reactos/lib/sdk/crt/mbstring/ismblead.c b/lib/sdk/crt/mbstring/ismblead.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/ismblead.c rename to lib/sdk/crt/mbstring/ismblead.c diff --git a/reactos/lib/sdk/crt/mbstring/ismbpri.c b/lib/sdk/crt/mbstring/ismbpri.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/ismbpri.c rename to lib/sdk/crt/mbstring/ismbpri.c diff --git a/reactos/lib/sdk/crt/mbstring/ismbpun.c b/lib/sdk/crt/mbstring/ismbpun.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/ismbpun.c rename to lib/sdk/crt/mbstring/ismbpun.c diff --git a/reactos/lib/sdk/crt/mbstring/ismbtrl.c b/lib/sdk/crt/mbstring/ismbtrl.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/ismbtrl.c rename to lib/sdk/crt/mbstring/ismbtrl.c diff --git a/reactos/lib/sdk/crt/mbstring/isuppr.c b/lib/sdk/crt/mbstring/isuppr.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/isuppr.c rename to lib/sdk/crt/mbstring/isuppr.c diff --git a/reactos/lib/sdk/crt/mbstring/jistojms.c b/lib/sdk/crt/mbstring/jistojms.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/jistojms.c rename to lib/sdk/crt/mbstring/jistojms.c diff --git a/reactos/lib/sdk/crt/mbstring/jmstojis.c b/lib/sdk/crt/mbstring/jmstojis.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/jmstojis.c rename to lib/sdk/crt/mbstring/jmstojis.c diff --git a/reactos/lib/sdk/crt/mbstring/mbbtype.c b/lib/sdk/crt/mbstring/mbbtype.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbbtype.c rename to lib/sdk/crt/mbstring/mbbtype.c diff --git a/reactos/lib/sdk/crt/mbstring/mbccpy.c b/lib/sdk/crt/mbstring/mbccpy.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbccpy.c rename to lib/sdk/crt/mbstring/mbccpy.c diff --git a/reactos/lib/sdk/crt/mbstring/mbclen.c b/lib/sdk/crt/mbstring/mbclen.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbclen.c rename to lib/sdk/crt/mbstring/mbclen.c diff --git a/reactos/lib/sdk/crt/mbstring/mbscat.c b/lib/sdk/crt/mbstring/mbscat.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbscat.c rename to lib/sdk/crt/mbstring/mbscat.c diff --git a/reactos/lib/sdk/crt/mbstring/mbschr.c b/lib/sdk/crt/mbstring/mbschr.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbschr.c rename to lib/sdk/crt/mbstring/mbschr.c diff --git a/reactos/lib/sdk/crt/mbstring/mbscmp.c b/lib/sdk/crt/mbstring/mbscmp.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbscmp.c rename to lib/sdk/crt/mbstring/mbscmp.c diff --git a/reactos/lib/sdk/crt/mbstring/mbscoll.c b/lib/sdk/crt/mbstring/mbscoll.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbscoll.c rename to lib/sdk/crt/mbstring/mbscoll.c diff --git a/reactos/lib/sdk/crt/mbstring/mbscpy.c b/lib/sdk/crt/mbstring/mbscpy.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbscpy.c rename to lib/sdk/crt/mbstring/mbscpy.c diff --git a/reactos/lib/sdk/crt/mbstring/mbscspn.c b/lib/sdk/crt/mbstring/mbscspn.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbscspn.c rename to lib/sdk/crt/mbstring/mbscspn.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsdec.c b/lib/sdk/crt/mbstring/mbsdec.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsdec.c rename to lib/sdk/crt/mbstring/mbsdec.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsdup.c b/lib/sdk/crt/mbstring/mbsdup.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsdup.c rename to lib/sdk/crt/mbstring/mbsdup.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsicmp.c b/lib/sdk/crt/mbstring/mbsicmp.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsicmp.c rename to lib/sdk/crt/mbstring/mbsicmp.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsicoll.c b/lib/sdk/crt/mbstring/mbsicoll.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsicoll.c rename to lib/sdk/crt/mbstring/mbsicoll.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsinc.c b/lib/sdk/crt/mbstring/mbsinc.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsinc.c rename to lib/sdk/crt/mbstring/mbsinc.c diff --git a/reactos/lib/sdk/crt/mbstring/mbslen.c b/lib/sdk/crt/mbstring/mbslen.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbslen.c rename to lib/sdk/crt/mbstring/mbslen.c diff --git a/reactos/lib/sdk/crt/mbstring/mbslwr.c b/lib/sdk/crt/mbstring/mbslwr.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbslwr.c rename to lib/sdk/crt/mbstring/mbslwr.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsncat.c b/lib/sdk/crt/mbstring/mbsncat.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsncat.c rename to lib/sdk/crt/mbstring/mbsncat.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsnccnt.c b/lib/sdk/crt/mbstring/mbsnccnt.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsnccnt.c rename to lib/sdk/crt/mbstring/mbsnccnt.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsncmp.c b/lib/sdk/crt/mbstring/mbsncmp.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsncmp.c rename to lib/sdk/crt/mbstring/mbsncmp.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsncoll.c b/lib/sdk/crt/mbstring/mbsncoll.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsncoll.c rename to lib/sdk/crt/mbstring/mbsncoll.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsncpy.c b/lib/sdk/crt/mbstring/mbsncpy.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsncpy.c rename to lib/sdk/crt/mbstring/mbsncpy.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsnextc.c b/lib/sdk/crt/mbstring/mbsnextc.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsnextc.c rename to lib/sdk/crt/mbstring/mbsnextc.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsnicmp.c b/lib/sdk/crt/mbstring/mbsnicmp.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsnicmp.c rename to lib/sdk/crt/mbstring/mbsnicmp.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsnicoll.c b/lib/sdk/crt/mbstring/mbsnicoll.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsnicoll.c rename to lib/sdk/crt/mbstring/mbsnicoll.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsninc.c b/lib/sdk/crt/mbstring/mbsninc.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsninc.c rename to lib/sdk/crt/mbstring/mbsninc.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsnset.c b/lib/sdk/crt/mbstring/mbsnset.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsnset.c rename to lib/sdk/crt/mbstring/mbsnset.c diff --git a/reactos/lib/sdk/crt/mbstring/mbspbrk.c b/lib/sdk/crt/mbstring/mbspbrk.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbspbrk.c rename to lib/sdk/crt/mbstring/mbspbrk.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsrchr.c b/lib/sdk/crt/mbstring/mbsrchr.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsrchr.c rename to lib/sdk/crt/mbstring/mbsrchr.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsrev.c b/lib/sdk/crt/mbstring/mbsrev.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsrev.c rename to lib/sdk/crt/mbstring/mbsrev.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsset.c b/lib/sdk/crt/mbstring/mbsset.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsset.c rename to lib/sdk/crt/mbstring/mbsset.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsspn.c b/lib/sdk/crt/mbstring/mbsspn.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsspn.c rename to lib/sdk/crt/mbstring/mbsspn.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsspnp.c b/lib/sdk/crt/mbstring/mbsspnp.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsspnp.c rename to lib/sdk/crt/mbstring/mbsspnp.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsstr.c b/lib/sdk/crt/mbstring/mbsstr.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsstr.c rename to lib/sdk/crt/mbstring/mbsstr.c diff --git a/reactos/lib/sdk/crt/mbstring/mbstok.c b/lib/sdk/crt/mbstring/mbstok.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbstok.c rename to lib/sdk/crt/mbstring/mbstok.c diff --git a/reactos/lib/sdk/crt/mbstring/mbstrlen.c b/lib/sdk/crt/mbstring/mbstrlen.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbstrlen.c rename to lib/sdk/crt/mbstring/mbstrlen.c diff --git a/reactos/lib/sdk/crt/mbstring/mbsupr.c b/lib/sdk/crt/mbstring/mbsupr.c similarity index 100% rename from reactos/lib/sdk/crt/mbstring/mbsupr.c rename to lib/sdk/crt/mbstring/mbsupr.c diff --git a/reactos/lib/sdk/crt/mem/i386/memchr_asm.s b/lib/sdk/crt/mem/i386/memchr_asm.s similarity index 100% rename from reactos/lib/sdk/crt/mem/i386/memchr_asm.s rename to lib/sdk/crt/mem/i386/memchr_asm.s diff --git a/reactos/lib/sdk/crt/mem/i386/memcpy_asm.s b/lib/sdk/crt/mem/i386/memcpy_asm.s similarity index 100% rename from reactos/lib/sdk/crt/mem/i386/memcpy_asm.s rename to lib/sdk/crt/mem/i386/memcpy_asm.s diff --git a/reactos/lib/sdk/crt/mem/i386/memmove_asm.s b/lib/sdk/crt/mem/i386/memmove_asm.s similarity index 100% rename from reactos/lib/sdk/crt/mem/i386/memmove_asm.s rename to lib/sdk/crt/mem/i386/memmove_asm.s diff --git a/reactos/lib/sdk/crt/mem/i386/memset_asm.s b/lib/sdk/crt/mem/i386/memset_asm.s similarity index 100% rename from reactos/lib/sdk/crt/mem/i386/memset_asm.s rename to lib/sdk/crt/mem/i386/memset_asm.s diff --git a/reactos/lib/sdk/crt/mem/memccpy.c b/lib/sdk/crt/mem/memccpy.c similarity index 100% rename from reactos/lib/sdk/crt/mem/memccpy.c rename to lib/sdk/crt/mem/memccpy.c diff --git a/reactos/lib/sdk/crt/mem/memchr.c b/lib/sdk/crt/mem/memchr.c similarity index 100% rename from reactos/lib/sdk/crt/mem/memchr.c rename to lib/sdk/crt/mem/memchr.c diff --git a/reactos/lib/sdk/crt/mem/memcmp.c b/lib/sdk/crt/mem/memcmp.c similarity index 100% rename from reactos/lib/sdk/crt/mem/memcmp.c rename to lib/sdk/crt/mem/memcmp.c diff --git a/reactos/lib/sdk/crt/mem/memcpy.c b/lib/sdk/crt/mem/memcpy.c similarity index 100% rename from reactos/lib/sdk/crt/mem/memcpy.c rename to lib/sdk/crt/mem/memcpy.c diff --git a/reactos/lib/sdk/crt/mem/memicmp.c b/lib/sdk/crt/mem/memicmp.c similarity index 100% rename from reactos/lib/sdk/crt/mem/memicmp.c rename to lib/sdk/crt/mem/memicmp.c diff --git a/reactos/lib/sdk/crt/mem/memmove.c b/lib/sdk/crt/mem/memmove.c similarity index 100% rename from reactos/lib/sdk/crt/mem/memmove.c rename to lib/sdk/crt/mem/memmove.c diff --git a/reactos/lib/sdk/crt/mem/memset.c b/lib/sdk/crt/mem/memset.c similarity index 100% rename from reactos/lib/sdk/crt/mem/memset.c rename to lib/sdk/crt/mem/memset.c diff --git a/reactos/lib/sdk/crt/misc/amsg.c b/lib/sdk/crt/misc/amsg.c similarity index 100% rename from reactos/lib/sdk/crt/misc/amsg.c rename to lib/sdk/crt/misc/amsg.c diff --git a/reactos/lib/sdk/crt/misc/assert.c b/lib/sdk/crt/misc/assert.c similarity index 100% rename from reactos/lib/sdk/crt/misc/assert.c rename to lib/sdk/crt/misc/assert.c diff --git a/reactos/lib/sdk/crt/misc/environ.c b/lib/sdk/crt/misc/environ.c similarity index 100% rename from reactos/lib/sdk/crt/misc/environ.c rename to lib/sdk/crt/misc/environ.c diff --git a/reactos/lib/sdk/crt/misc/fltused.c b/lib/sdk/crt/misc/fltused.c similarity index 100% rename from reactos/lib/sdk/crt/misc/fltused.c rename to lib/sdk/crt/misc/fltused.c diff --git a/reactos/lib/sdk/crt/misc/getargs.c b/lib/sdk/crt/misc/getargs.c similarity index 100% rename from reactos/lib/sdk/crt/misc/getargs.c rename to lib/sdk/crt/misc/getargs.c diff --git a/reactos/lib/sdk/crt/misc/getopt.c b/lib/sdk/crt/misc/getopt.c similarity index 100% rename from reactos/lib/sdk/crt/misc/getopt.c rename to lib/sdk/crt/misc/getopt.c diff --git a/reactos/lib/sdk/crt/misc/i10output.c b/lib/sdk/crt/misc/i10output.c similarity index 100% rename from reactos/lib/sdk/crt/misc/i10output.c rename to lib/sdk/crt/misc/i10output.c diff --git a/reactos/lib/sdk/crt/misc/i386/readcr4.S b/lib/sdk/crt/misc/i386/readcr4.S similarity index 100% rename from reactos/lib/sdk/crt/misc/i386/readcr4.S rename to lib/sdk/crt/misc/i386/readcr4.S diff --git a/reactos/lib/sdk/crt/misc/initterm.c b/lib/sdk/crt/misc/initterm.c similarity index 100% rename from reactos/lib/sdk/crt/misc/initterm.c rename to lib/sdk/crt/misc/initterm.c diff --git a/reactos/lib/sdk/crt/misc/isblank.c b/lib/sdk/crt/misc/isblank.c similarity index 100% rename from reactos/lib/sdk/crt/misc/isblank.c rename to lib/sdk/crt/misc/isblank.c diff --git a/reactos/lib/sdk/crt/misc/iswblank.c b/lib/sdk/crt/misc/iswblank.c similarity index 100% rename from reactos/lib/sdk/crt/misc/iswblank.c rename to lib/sdk/crt/misc/iswblank.c diff --git a/reactos/lib/sdk/crt/misc/lock.c b/lib/sdk/crt/misc/lock.c similarity index 100% rename from reactos/lib/sdk/crt/misc/lock.c rename to lib/sdk/crt/misc/lock.c diff --git a/reactos/lib/sdk/crt/misc/ofmt_stub.c b/lib/sdk/crt/misc/ofmt_stub.c similarity index 100% rename from reactos/lib/sdk/crt/misc/ofmt_stub.c rename to lib/sdk/crt/misc/ofmt_stub.c diff --git a/reactos/lib/sdk/crt/misc/purecall.c b/lib/sdk/crt/misc/purecall.c similarity index 100% rename from reactos/lib/sdk/crt/misc/purecall.c rename to lib/sdk/crt/misc/purecall.c diff --git a/reactos/lib/sdk/crt/misc/stubs.c b/lib/sdk/crt/misc/stubs.c similarity index 100% rename from reactos/lib/sdk/crt/misc/stubs.c rename to lib/sdk/crt/misc/stubs.c diff --git a/reactos/lib/sdk/crt/misc/tls.c b/lib/sdk/crt/misc/tls.c similarity index 100% rename from reactos/lib/sdk/crt/misc/tls.c rename to lib/sdk/crt/misc/tls.c diff --git a/reactos/lib/sdk/crt/moldname-msvcrt.def b/lib/sdk/crt/moldname-msvcrt.def similarity index 100% rename from reactos/lib/sdk/crt/moldname-msvcrt.def rename to lib/sdk/crt/moldname-msvcrt.def diff --git a/reactos/lib/sdk/crt/msvcrtex.cmake b/lib/sdk/crt/msvcrtex.cmake similarity index 100% rename from reactos/lib/sdk/crt/msvcrtex.cmake rename to lib/sdk/crt/msvcrtex.cmake diff --git a/reactos/lib/sdk/crt/oldnames-msvcrt.S b/lib/sdk/crt/oldnames-msvcrt.S similarity index 100% rename from reactos/lib/sdk/crt/oldnames-msvcrt.S rename to lib/sdk/crt/oldnames-msvcrt.S diff --git a/reactos/lib/sdk/crt/oldnames.cmake b/lib/sdk/crt/oldnames.cmake similarity index 100% rename from reactos/lib/sdk/crt/oldnames.cmake rename to lib/sdk/crt/oldnames.cmake diff --git a/reactos/lib/sdk/crt/precomp.h b/lib/sdk/crt/precomp.h similarity index 100% rename from reactos/lib/sdk/crt/precomp.h rename to lib/sdk/crt/precomp.h diff --git a/reactos/lib/sdk/crt/printf/_cprintf.c b/lib/sdk/crt/printf/_cprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_cprintf.c rename to lib/sdk/crt/printf/_cprintf.c diff --git a/reactos/lib/sdk/crt/printf/_cwprintf.c b/lib/sdk/crt/printf/_cwprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_cwprintf.c rename to lib/sdk/crt/printf/_cwprintf.c diff --git a/reactos/lib/sdk/crt/printf/_snprintf.c b/lib/sdk/crt/printf/_snprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_snprintf.c rename to lib/sdk/crt/printf/_snprintf.c diff --git a/reactos/lib/sdk/crt/printf/_snwprintf.c b/lib/sdk/crt/printf/_snwprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_snwprintf.c rename to lib/sdk/crt/printf/_snwprintf.c diff --git a/reactos/lib/sdk/crt/printf/_sxprintf.c b/lib/sdk/crt/printf/_sxprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_sxprintf.c rename to lib/sdk/crt/printf/_sxprintf.c diff --git a/reactos/lib/sdk/crt/printf/_vcprintf.c b/lib/sdk/crt/printf/_vcprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_vcprintf.c rename to lib/sdk/crt/printf/_vcprintf.c diff --git a/reactos/lib/sdk/crt/printf/_vcwprintf.c b/lib/sdk/crt/printf/_vcwprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_vcwprintf.c rename to lib/sdk/crt/printf/_vcwprintf.c diff --git a/reactos/lib/sdk/crt/printf/_vscprintf.c b/lib/sdk/crt/printf/_vscprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_vscprintf.c rename to lib/sdk/crt/printf/_vscprintf.c diff --git a/reactos/lib/sdk/crt/printf/_vscwprintf.c b/lib/sdk/crt/printf/_vscwprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_vscwprintf.c rename to lib/sdk/crt/printf/_vscwprintf.c diff --git a/reactos/lib/sdk/crt/printf/_vsnprintf.c b/lib/sdk/crt/printf/_vsnprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_vsnprintf.c rename to lib/sdk/crt/printf/_vsnprintf.c diff --git a/reactos/lib/sdk/crt/printf/_vsnwprintf.c b/lib/sdk/crt/printf/_vsnwprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_vsnwprintf.c rename to lib/sdk/crt/printf/_vsnwprintf.c diff --git a/reactos/lib/sdk/crt/printf/_vsprintf_p.c b/lib/sdk/crt/printf/_vsprintf_p.c similarity index 100% rename from reactos/lib/sdk/crt/printf/_vsprintf_p.c rename to lib/sdk/crt/printf/_vsprintf_p.c diff --git a/reactos/lib/sdk/crt/printf/fprintf.c b/lib/sdk/crt/printf/fprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/fprintf.c rename to lib/sdk/crt/printf/fprintf.c diff --git a/reactos/lib/sdk/crt/printf/fprintf_s.c b/lib/sdk/crt/printf/fprintf_s.c similarity index 100% rename from reactos/lib/sdk/crt/printf/fprintf_s.c rename to lib/sdk/crt/printf/fprintf_s.c diff --git a/reactos/lib/sdk/crt/printf/fwprintf.c b/lib/sdk/crt/printf/fwprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/fwprintf.c rename to lib/sdk/crt/printf/fwprintf.c diff --git a/reactos/lib/sdk/crt/printf/fwprintf_s.c b/lib/sdk/crt/printf/fwprintf_s.c similarity index 100% rename from reactos/lib/sdk/crt/printf/fwprintf_s.c rename to lib/sdk/crt/printf/fwprintf_s.c diff --git a/reactos/lib/sdk/crt/printf/printf.c b/lib/sdk/crt/printf/printf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/printf.c rename to lib/sdk/crt/printf/printf.c diff --git a/reactos/lib/sdk/crt/printf/printf_s.c b/lib/sdk/crt/printf/printf_s.c similarity index 100% rename from reactos/lib/sdk/crt/printf/printf_s.c rename to lib/sdk/crt/printf/printf_s.c diff --git a/reactos/lib/sdk/crt/printf/sprintf.c b/lib/sdk/crt/printf/sprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/sprintf.c rename to lib/sdk/crt/printf/sprintf.c diff --git a/reactos/lib/sdk/crt/printf/streamout.c b/lib/sdk/crt/printf/streamout.c similarity index 100% rename from reactos/lib/sdk/crt/printf/streamout.c rename to lib/sdk/crt/printf/streamout.c diff --git a/reactos/lib/sdk/crt/printf/swprintf.c b/lib/sdk/crt/printf/swprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/swprintf.c rename to lib/sdk/crt/printf/swprintf.c diff --git a/reactos/lib/sdk/crt/printf/vfprintf.c b/lib/sdk/crt/printf/vfprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/vfprintf.c rename to lib/sdk/crt/printf/vfprintf.c diff --git a/reactos/lib/sdk/crt/printf/vfprintf_s.c b/lib/sdk/crt/printf/vfprintf_s.c similarity index 100% rename from reactos/lib/sdk/crt/printf/vfprintf_s.c rename to lib/sdk/crt/printf/vfprintf_s.c diff --git a/reactos/lib/sdk/crt/printf/vfwprintf.c b/lib/sdk/crt/printf/vfwprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/vfwprintf.c rename to lib/sdk/crt/printf/vfwprintf.c diff --git a/reactos/lib/sdk/crt/printf/vfwprintf_s.c b/lib/sdk/crt/printf/vfwprintf_s.c similarity index 100% rename from reactos/lib/sdk/crt/printf/vfwprintf_s.c rename to lib/sdk/crt/printf/vfwprintf_s.c diff --git a/reactos/lib/sdk/crt/printf/vprintf.c b/lib/sdk/crt/printf/vprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/vprintf.c rename to lib/sdk/crt/printf/vprintf.c diff --git a/reactos/lib/sdk/crt/printf/vprintf_s.c b/lib/sdk/crt/printf/vprintf_s.c similarity index 100% rename from reactos/lib/sdk/crt/printf/vprintf_s.c rename to lib/sdk/crt/printf/vprintf_s.c diff --git a/reactos/lib/sdk/crt/printf/vsprintf.c b/lib/sdk/crt/printf/vsprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/vsprintf.c rename to lib/sdk/crt/printf/vsprintf.c diff --git a/reactos/lib/sdk/crt/printf/vswprintf.c b/lib/sdk/crt/printf/vswprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/vswprintf.c rename to lib/sdk/crt/printf/vswprintf.c diff --git a/reactos/lib/sdk/crt/printf/vwprintf.c b/lib/sdk/crt/printf/vwprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/vwprintf.c rename to lib/sdk/crt/printf/vwprintf.c diff --git a/reactos/lib/sdk/crt/printf/vwprintf_s.c b/lib/sdk/crt/printf/vwprintf_s.c similarity index 100% rename from reactos/lib/sdk/crt/printf/vwprintf_s.c rename to lib/sdk/crt/printf/vwprintf_s.c diff --git a/reactos/lib/sdk/crt/printf/wprintf.c b/lib/sdk/crt/printf/wprintf.c similarity index 100% rename from reactos/lib/sdk/crt/printf/wprintf.c rename to lib/sdk/crt/printf/wprintf.c diff --git a/reactos/lib/sdk/crt/printf/wprintf_s.c b/lib/sdk/crt/printf/wprintf_s.c similarity index 100% rename from reactos/lib/sdk/crt/printf/wprintf_s.c rename to lib/sdk/crt/printf/wprintf_s.c diff --git a/reactos/lib/sdk/crt/printf/wsprintfA.c b/lib/sdk/crt/printf/wsprintfA.c similarity index 100% rename from reactos/lib/sdk/crt/printf/wsprintfA.c rename to lib/sdk/crt/printf/wsprintfA.c diff --git a/reactos/lib/sdk/crt/printf/wsprintfW.c b/lib/sdk/crt/printf/wsprintfW.c similarity index 100% rename from reactos/lib/sdk/crt/printf/wsprintfW.c rename to lib/sdk/crt/printf/wsprintfW.c diff --git a/reactos/lib/sdk/crt/printf/wstreamout.c b/lib/sdk/crt/printf/wstreamout.c similarity index 100% rename from reactos/lib/sdk/crt/printf/wstreamout.c rename to lib/sdk/crt/printf/wstreamout.c diff --git a/reactos/lib/sdk/crt/printf/wvsnprintfA.c b/lib/sdk/crt/printf/wvsnprintfA.c similarity index 100% rename from reactos/lib/sdk/crt/printf/wvsnprintfA.c rename to lib/sdk/crt/printf/wvsnprintfA.c diff --git a/reactos/lib/sdk/crt/printf/wvsnprintfW.c b/lib/sdk/crt/printf/wvsnprintfW.c similarity index 100% rename from reactos/lib/sdk/crt/printf/wvsnprintfW.c rename to lib/sdk/crt/printf/wvsnprintfW.c diff --git a/reactos/lib/sdk/crt/printf/wvsprintfA.c b/lib/sdk/crt/printf/wvsprintfA.c similarity index 100% rename from reactos/lib/sdk/crt/printf/wvsprintfA.c rename to lib/sdk/crt/printf/wvsprintfA.c diff --git a/reactos/lib/sdk/crt/printf/wvsprintfW.c b/lib/sdk/crt/printf/wvsprintfW.c similarity index 100% rename from reactos/lib/sdk/crt/printf/wvsprintfW.c rename to lib/sdk/crt/printf/wvsprintfW.c diff --git a/reactos/lib/sdk/crt/process/_cwait.c b/lib/sdk/crt/process/_cwait.c similarity index 100% rename from reactos/lib/sdk/crt/process/_cwait.c rename to lib/sdk/crt/process/_cwait.c diff --git a/reactos/lib/sdk/crt/process/_system.c b/lib/sdk/crt/process/_system.c similarity index 100% rename from reactos/lib/sdk/crt/process/_system.c rename to lib/sdk/crt/process/_system.c diff --git a/reactos/lib/sdk/crt/process/dll.c b/lib/sdk/crt/process/dll.c similarity index 100% rename from reactos/lib/sdk/crt/process/dll.c rename to lib/sdk/crt/process/dll.c diff --git a/reactos/lib/sdk/crt/process/process.c b/lib/sdk/crt/process/process.c similarity index 100% rename from reactos/lib/sdk/crt/process/process.c rename to lib/sdk/crt/process/process.c diff --git a/reactos/lib/sdk/crt/process/procid.c b/lib/sdk/crt/process/procid.c similarity index 100% rename from reactos/lib/sdk/crt/process/procid.c rename to lib/sdk/crt/process/procid.c diff --git a/reactos/lib/sdk/crt/process/thread.c b/lib/sdk/crt/process/thread.c similarity index 100% rename from reactos/lib/sdk/crt/process/thread.c rename to lib/sdk/crt/process/thread.c diff --git a/reactos/lib/sdk/crt/process/threadid.c b/lib/sdk/crt/process/threadid.c similarity index 100% rename from reactos/lib/sdk/crt/process/threadid.c rename to lib/sdk/crt/process/threadid.c diff --git a/reactos/lib/sdk/crt/process/threadx.c b/lib/sdk/crt/process/threadx.c similarity index 100% rename from reactos/lib/sdk/crt/process/threadx.c rename to lib/sdk/crt/process/threadx.c diff --git a/reactos/lib/sdk/crt/process/wprocess.c b/lib/sdk/crt/process/wprocess.c similarity index 100% rename from reactos/lib/sdk/crt/process/wprocess.c rename to lib/sdk/crt/process/wprocess.c diff --git a/reactos/lib/sdk/crt/search/bsearch.c b/lib/sdk/crt/search/bsearch.c similarity index 100% rename from reactos/lib/sdk/crt/search/bsearch.c rename to lib/sdk/crt/search/bsearch.c diff --git a/reactos/lib/sdk/crt/search/lfind.c b/lib/sdk/crt/search/lfind.c similarity index 100% rename from reactos/lib/sdk/crt/search/lfind.c rename to lib/sdk/crt/search/lfind.c diff --git a/reactos/lib/sdk/crt/search/lsearch.c b/lib/sdk/crt/search/lsearch.c similarity index 100% rename from reactos/lib/sdk/crt/search/lsearch.c rename to lib/sdk/crt/search/lsearch.c diff --git a/reactos/lib/sdk/crt/setjmp/amd64/setjmp.s b/lib/sdk/crt/setjmp/amd64/setjmp.s similarity index 100% rename from reactos/lib/sdk/crt/setjmp/amd64/setjmp.s rename to lib/sdk/crt/setjmp/amd64/setjmp.s diff --git a/reactos/lib/sdk/crt/setjmp/i386/setjmp.s b/lib/sdk/crt/setjmp/i386/setjmp.s similarity index 100% rename from reactos/lib/sdk/crt/setjmp/i386/setjmp.s rename to lib/sdk/crt/setjmp/i386/setjmp.s diff --git a/reactos/lib/sdk/crt/signal/signal.c b/lib/sdk/crt/signal/signal.c similarity index 100% rename from reactos/lib/sdk/crt/signal/signal.c rename to lib/sdk/crt/signal/signal.c diff --git a/reactos/lib/sdk/crt/signal/xcptinfo.c b/lib/sdk/crt/signal/xcptinfo.c similarity index 100% rename from reactos/lib/sdk/crt/signal/xcptinfo.c rename to lib/sdk/crt/signal/xcptinfo.c diff --git a/reactos/lib/sdk/crt/startup/_newmode.c b/lib/sdk/crt/startup/_newmode.c similarity index 100% rename from reactos/lib/sdk/crt/startup/_newmode.c rename to lib/sdk/crt/startup/_newmode.c diff --git a/reactos/lib/sdk/crt/startup/atonexit.c b/lib/sdk/crt/startup/atonexit.c similarity index 100% rename from reactos/lib/sdk/crt/startup/atonexit.c rename to lib/sdk/crt/startup/atonexit.c diff --git a/reactos/lib/sdk/crt/startup/charmax.c b/lib/sdk/crt/startup/charmax.c similarity index 100% rename from reactos/lib/sdk/crt/startup/charmax.c rename to lib/sdk/crt/startup/charmax.c diff --git a/reactos/lib/sdk/crt/startup/cinitexe.c b/lib/sdk/crt/startup/cinitexe.c similarity index 100% rename from reactos/lib/sdk/crt/startup/cinitexe.c rename to lib/sdk/crt/startup/cinitexe.c diff --git a/reactos/lib/sdk/crt/startup/crt0_c.c b/lib/sdk/crt/startup/crt0_c.c similarity index 100% rename from reactos/lib/sdk/crt/startup/crt0_c.c rename to lib/sdk/crt/startup/crt0_c.c diff --git a/reactos/lib/sdk/crt/startup/crt0_w.c b/lib/sdk/crt/startup/crt0_w.c similarity index 100% rename from reactos/lib/sdk/crt/startup/crt0_w.c rename to lib/sdk/crt/startup/crt0_w.c diff --git a/reactos/lib/sdk/crt/startup/crt_handler.c b/lib/sdk/crt/startup/crt_handler.c similarity index 100% rename from reactos/lib/sdk/crt/startup/crt_handler.c rename to lib/sdk/crt/startup/crt_handler.c diff --git a/reactos/lib/sdk/crt/startup/crtdll.c b/lib/sdk/crt/startup/crtdll.c similarity index 100% rename from reactos/lib/sdk/crt/startup/crtdll.c rename to lib/sdk/crt/startup/crtdll.c diff --git a/reactos/lib/sdk/crt/startup/crtexe.c b/lib/sdk/crt/startup/crtexe.c similarity index 100% rename from reactos/lib/sdk/crt/startup/crtexe.c rename to lib/sdk/crt/startup/crtexe.c diff --git a/reactos/lib/sdk/crt/startup/dll_argv.c b/lib/sdk/crt/startup/dll_argv.c similarity index 100% rename from reactos/lib/sdk/crt/startup/dll_argv.c rename to lib/sdk/crt/startup/dll_argv.c diff --git a/reactos/lib/sdk/crt/startup/dllargv.c b/lib/sdk/crt/startup/dllargv.c similarity index 100% rename from reactos/lib/sdk/crt/startup/dllargv.c rename to lib/sdk/crt/startup/dllargv.c diff --git a/reactos/lib/sdk/crt/startup/dllentry.c b/lib/sdk/crt/startup/dllentry.c similarity index 100% rename from reactos/lib/sdk/crt/startup/dllentry.c rename to lib/sdk/crt/startup/dllentry.c diff --git a/reactos/lib/sdk/crt/startup/dllmain.c b/lib/sdk/crt/startup/dllmain.c similarity index 100% rename from reactos/lib/sdk/crt/startup/dllmain.c rename to lib/sdk/crt/startup/dllmain.c diff --git a/reactos/lib/sdk/crt/startup/gccmain.c b/lib/sdk/crt/startup/gccmain.c similarity index 100% rename from reactos/lib/sdk/crt/startup/gccmain.c rename to lib/sdk/crt/startup/gccmain.c diff --git a/reactos/lib/sdk/crt/startup/gs_support.c b/lib/sdk/crt/startup/gs_support.c similarity index 100% rename from reactos/lib/sdk/crt/startup/gs_support.c rename to lib/sdk/crt/startup/gs_support.c diff --git a/reactos/lib/sdk/crt/startup/merr.c b/lib/sdk/crt/startup/merr.c similarity index 100% rename from reactos/lib/sdk/crt/startup/merr.c rename to lib/sdk/crt/startup/merr.c diff --git a/reactos/lib/sdk/crt/startup/mingw_helpers.c b/lib/sdk/crt/startup/mingw_helpers.c similarity index 100% rename from reactos/lib/sdk/crt/startup/mingw_helpers.c rename to lib/sdk/crt/startup/mingw_helpers.c diff --git a/reactos/lib/sdk/crt/startup/mscmain.c b/lib/sdk/crt/startup/mscmain.c similarity index 100% rename from reactos/lib/sdk/crt/startup/mscmain.c rename to lib/sdk/crt/startup/mscmain.c diff --git a/reactos/lib/sdk/crt/startup/natstart.c b/lib/sdk/crt/startup/natstart.c similarity index 100% rename from reactos/lib/sdk/crt/startup/natstart.c rename to lib/sdk/crt/startup/natstart.c diff --git a/reactos/lib/sdk/crt/startup/pesect.c b/lib/sdk/crt/startup/pesect.c similarity index 100% rename from reactos/lib/sdk/crt/startup/pesect.c rename to lib/sdk/crt/startup/pesect.c diff --git a/reactos/lib/sdk/crt/startup/pseudo-reloc-list.c b/lib/sdk/crt/startup/pseudo-reloc-list.c similarity index 100% rename from reactos/lib/sdk/crt/startup/pseudo-reloc-list.c rename to lib/sdk/crt/startup/pseudo-reloc-list.c diff --git a/reactos/lib/sdk/crt/startup/pseudo-reloc.c b/lib/sdk/crt/startup/pseudo-reloc.c similarity index 100% rename from reactos/lib/sdk/crt/startup/pseudo-reloc.c rename to lib/sdk/crt/startup/pseudo-reloc.c diff --git a/reactos/lib/sdk/crt/startup/reactos.c b/lib/sdk/crt/startup/reactos.c similarity index 100% rename from reactos/lib/sdk/crt/startup/reactos.c rename to lib/sdk/crt/startup/reactos.c diff --git a/reactos/lib/sdk/crt/startup/tlsmcrt.c b/lib/sdk/crt/startup/tlsmcrt.c similarity index 100% rename from reactos/lib/sdk/crt/startup/tlsmcrt.c rename to lib/sdk/crt/startup/tlsmcrt.c diff --git a/reactos/lib/sdk/crt/startup/tlsmthread.c b/lib/sdk/crt/startup/tlsmthread.c similarity index 100% rename from reactos/lib/sdk/crt/startup/tlsmthread.c rename to lib/sdk/crt/startup/tlsmthread.c diff --git a/reactos/lib/sdk/crt/startup/tlssup.c b/lib/sdk/crt/startup/tlssup.c similarity index 100% rename from reactos/lib/sdk/crt/startup/tlssup.c rename to lib/sdk/crt/startup/tlssup.c diff --git a/reactos/lib/sdk/crt/startup/tlsthrd.c b/lib/sdk/crt/startup/tlsthrd.c similarity index 100% rename from reactos/lib/sdk/crt/startup/tlsthrd.c rename to lib/sdk/crt/startup/tlsthrd.c diff --git a/reactos/lib/sdk/crt/startup/txtmode.c b/lib/sdk/crt/startup/txtmode.c similarity index 100% rename from reactos/lib/sdk/crt/startup/txtmode.c rename to lib/sdk/crt/startup/txtmode.c diff --git a/reactos/lib/sdk/crt/startup/wcrtexe.c b/lib/sdk/crt/startup/wcrtexe.c similarity index 100% rename from reactos/lib/sdk/crt/startup/wcrtexe.c rename to lib/sdk/crt/startup/wcrtexe.c diff --git a/reactos/lib/sdk/crt/startup/wdllargv.c b/lib/sdk/crt/startup/wdllargv.c similarity index 100% rename from reactos/lib/sdk/crt/startup/wdllargv.c rename to lib/sdk/crt/startup/wdllargv.c diff --git a/reactos/lib/sdk/crt/startup/wildcard.c b/lib/sdk/crt/startup/wildcard.c similarity index 100% rename from reactos/lib/sdk/crt/startup/wildcard.c rename to lib/sdk/crt/startup/wildcard.c diff --git a/reactos/lib/sdk/crt/stdio/_flsbuf.c b/lib/sdk/crt/stdio/_flsbuf.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/_flsbuf.c rename to lib/sdk/crt/stdio/_flsbuf.c diff --git a/reactos/lib/sdk/crt/stdio/_flswbuf.c b/lib/sdk/crt/stdio/_flswbuf.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/_flswbuf.c rename to lib/sdk/crt/stdio/_flswbuf.c diff --git a/reactos/lib/sdk/crt/stdio/access.c b/lib/sdk/crt/stdio/access.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/access.c rename to lib/sdk/crt/stdio/access.c diff --git a/reactos/lib/sdk/crt/stdio/file.c b/lib/sdk/crt/stdio/file.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/file.c rename to lib/sdk/crt/stdio/file.c diff --git a/reactos/lib/sdk/crt/stdio/find.c b/lib/sdk/crt/stdio/find.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/find.c rename to lib/sdk/crt/stdio/find.c diff --git a/reactos/lib/sdk/crt/stdio/find64.c b/lib/sdk/crt/stdio/find64.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/find64.c rename to lib/sdk/crt/stdio/find64.c diff --git a/reactos/lib/sdk/crt/stdio/findgen.c b/lib/sdk/crt/stdio/findgen.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/findgen.c rename to lib/sdk/crt/stdio/findgen.c diff --git a/reactos/lib/sdk/crt/stdio/findi64.c b/lib/sdk/crt/stdio/findi64.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/findi64.c rename to lib/sdk/crt/stdio/findi64.c diff --git a/reactos/lib/sdk/crt/stdio/fmode.c b/lib/sdk/crt/stdio/fmode.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/fmode.c rename to lib/sdk/crt/stdio/fmode.c diff --git a/reactos/lib/sdk/crt/stdio/perror.c b/lib/sdk/crt/stdio/perror.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/perror.c rename to lib/sdk/crt/stdio/perror.c diff --git a/reactos/lib/sdk/crt/stdio/popen.c b/lib/sdk/crt/stdio/popen.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/popen.c rename to lib/sdk/crt/stdio/popen.c diff --git a/reactos/lib/sdk/crt/stdio/stat.c b/lib/sdk/crt/stdio/stat.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/stat.c rename to lib/sdk/crt/stdio/stat.c diff --git a/reactos/lib/sdk/crt/stdio/stat64.c b/lib/sdk/crt/stdio/stat64.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/stat64.c rename to lib/sdk/crt/stdio/stat64.c diff --git a/reactos/lib/sdk/crt/stdio/waccess.c b/lib/sdk/crt/stdio/waccess.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/waccess.c rename to lib/sdk/crt/stdio/waccess.c diff --git a/reactos/lib/sdk/crt/stdio/wfind.c b/lib/sdk/crt/stdio/wfind.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/wfind.c rename to lib/sdk/crt/stdio/wfind.c diff --git a/reactos/lib/sdk/crt/stdio/wfind64.c b/lib/sdk/crt/stdio/wfind64.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/wfind64.c rename to lib/sdk/crt/stdio/wfind64.c diff --git a/reactos/lib/sdk/crt/stdio/wfindi64.c b/lib/sdk/crt/stdio/wfindi64.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/wfindi64.c rename to lib/sdk/crt/stdio/wfindi64.c diff --git a/reactos/lib/sdk/crt/stdio/wpopen.c b/lib/sdk/crt/stdio/wpopen.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/wpopen.c rename to lib/sdk/crt/stdio/wpopen.c diff --git a/reactos/lib/sdk/crt/stdio/wstat.c b/lib/sdk/crt/stdio/wstat.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/wstat.c rename to lib/sdk/crt/stdio/wstat.c diff --git a/reactos/lib/sdk/crt/stdio/wstat64.c b/lib/sdk/crt/stdio/wstat64.c similarity index 100% rename from reactos/lib/sdk/crt/stdio/wstat64.c rename to lib/sdk/crt/stdio/wstat64.c diff --git a/reactos/lib/sdk/crt/stdlib/_exit.c b/lib/sdk/crt/stdlib/_exit.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/_exit.c rename to lib/sdk/crt/stdlib/_exit.c diff --git a/reactos/lib/sdk/crt/stdlib/abort.c b/lib/sdk/crt/stdlib/abort.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/abort.c rename to lib/sdk/crt/stdlib/abort.c diff --git a/reactos/lib/sdk/crt/stdlib/atexit.c b/lib/sdk/crt/stdlib/atexit.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/atexit.c rename to lib/sdk/crt/stdlib/atexit.c diff --git a/reactos/lib/sdk/crt/stdlib/atold.c b/lib/sdk/crt/stdlib/atold.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/atold.c rename to lib/sdk/crt/stdlib/atold.c diff --git a/reactos/lib/sdk/crt/stdlib/doserrmap.h b/lib/sdk/crt/stdlib/doserrmap.h similarity index 100% rename from reactos/lib/sdk/crt/stdlib/doserrmap.h rename to lib/sdk/crt/stdlib/doserrmap.h diff --git a/reactos/lib/sdk/crt/stdlib/ecvt.c b/lib/sdk/crt/stdlib/ecvt.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/ecvt.c rename to lib/sdk/crt/stdlib/ecvt.c diff --git a/reactos/lib/sdk/crt/stdlib/errno.c b/lib/sdk/crt/stdlib/errno.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/errno.c rename to lib/sdk/crt/stdlib/errno.c diff --git a/reactos/lib/sdk/crt/stdlib/fcvt.c b/lib/sdk/crt/stdlib/fcvt.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/fcvt.c rename to lib/sdk/crt/stdlib/fcvt.c diff --git a/reactos/lib/sdk/crt/stdlib/fcvtbuf.c b/lib/sdk/crt/stdlib/fcvtbuf.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/fcvtbuf.c rename to lib/sdk/crt/stdlib/fcvtbuf.c diff --git a/reactos/lib/sdk/crt/stdlib/fullpath.c b/lib/sdk/crt/stdlib/fullpath.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/fullpath.c rename to lib/sdk/crt/stdlib/fullpath.c diff --git a/reactos/lib/sdk/crt/stdlib/gcvt.c b/lib/sdk/crt/stdlib/gcvt.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/gcvt.c rename to lib/sdk/crt/stdlib/gcvt.c diff --git a/reactos/lib/sdk/crt/stdlib/getenv.c b/lib/sdk/crt/stdlib/getenv.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/getenv.c rename to lib/sdk/crt/stdlib/getenv.c diff --git a/reactos/lib/sdk/crt/stdlib/makepath.c b/lib/sdk/crt/stdlib/makepath.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/makepath.c rename to lib/sdk/crt/stdlib/makepath.c diff --git a/reactos/lib/sdk/crt/stdlib/makepath_s.c b/lib/sdk/crt/stdlib/makepath_s.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/makepath_s.c rename to lib/sdk/crt/stdlib/makepath_s.c diff --git a/reactos/lib/sdk/crt/stdlib/malloc.c b/lib/sdk/crt/stdlib/malloc.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/malloc.c rename to lib/sdk/crt/stdlib/malloc.c diff --git a/reactos/lib/sdk/crt/stdlib/mbstowcs.c b/lib/sdk/crt/stdlib/mbstowcs.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/mbstowcs.c rename to lib/sdk/crt/stdlib/mbstowcs.c diff --git a/reactos/lib/sdk/crt/stdlib/mbtowc.c b/lib/sdk/crt/stdlib/mbtowc.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/mbtowc.c rename to lib/sdk/crt/stdlib/mbtowc.c diff --git a/reactos/lib/sdk/crt/stdlib/obsol.c b/lib/sdk/crt/stdlib/obsol.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/obsol.c rename to lib/sdk/crt/stdlib/obsol.c diff --git a/reactos/lib/sdk/crt/stdlib/putenv.c b/lib/sdk/crt/stdlib/putenv.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/putenv.c rename to lib/sdk/crt/stdlib/putenv.c diff --git a/reactos/lib/sdk/crt/stdlib/qsort.c b/lib/sdk/crt/stdlib/qsort.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/qsort.c rename to lib/sdk/crt/stdlib/qsort.c diff --git a/reactos/lib/sdk/crt/stdlib/rot.c b/lib/sdk/crt/stdlib/rot.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/rot.c rename to lib/sdk/crt/stdlib/rot.c diff --git a/reactos/lib/sdk/crt/stdlib/senv.c b/lib/sdk/crt/stdlib/senv.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/senv.c rename to lib/sdk/crt/stdlib/senv.c diff --git a/reactos/lib/sdk/crt/stdlib/swab.c b/lib/sdk/crt/stdlib/swab.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/swab.c rename to lib/sdk/crt/stdlib/swab.c diff --git a/reactos/lib/sdk/crt/stdlib/wfulpath.c b/lib/sdk/crt/stdlib/wfulpath.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/wfulpath.c rename to lib/sdk/crt/stdlib/wfulpath.c diff --git a/reactos/lib/sdk/crt/stdlib/wmakpath.c b/lib/sdk/crt/stdlib/wmakpath.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/wmakpath.c rename to lib/sdk/crt/stdlib/wmakpath.c diff --git a/reactos/lib/sdk/crt/stdlib/wmakpath_s.c b/lib/sdk/crt/stdlib/wmakpath_s.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/wmakpath_s.c rename to lib/sdk/crt/stdlib/wmakpath_s.c diff --git a/reactos/lib/sdk/crt/stdlib/wputenv.c b/lib/sdk/crt/stdlib/wputenv.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/wputenv.c rename to lib/sdk/crt/stdlib/wputenv.c diff --git a/reactos/lib/sdk/crt/stdlib/wsenv.c b/lib/sdk/crt/stdlib/wsenv.c similarity index 100% rename from reactos/lib/sdk/crt/stdlib/wsenv.c rename to lib/sdk/crt/stdlib/wsenv.c diff --git a/reactos/lib/sdk/crt/string/_mbsnlen.c b/lib/sdk/crt/string/_mbsnlen.c similarity index 100% rename from reactos/lib/sdk/crt/string/_mbsnlen.c rename to lib/sdk/crt/string/_mbsnlen.c diff --git a/reactos/lib/sdk/crt/string/_mbstrnlen.c b/lib/sdk/crt/string/_mbstrnlen.c similarity index 100% rename from reactos/lib/sdk/crt/string/_mbstrnlen.c rename to lib/sdk/crt/string/_mbstrnlen.c diff --git a/reactos/lib/sdk/crt/string/atof.c b/lib/sdk/crt/string/atof.c similarity index 100% rename from reactos/lib/sdk/crt/string/atof.c rename to lib/sdk/crt/string/atof.c diff --git a/reactos/lib/sdk/crt/string/atoi.c b/lib/sdk/crt/string/atoi.c similarity index 100% rename from reactos/lib/sdk/crt/string/atoi.c rename to lib/sdk/crt/string/atoi.c diff --git a/reactos/lib/sdk/crt/string/atoi64.c b/lib/sdk/crt/string/atoi64.c similarity index 100% rename from reactos/lib/sdk/crt/string/atoi64.c rename to lib/sdk/crt/string/atoi64.c diff --git a/reactos/lib/sdk/crt/string/atol.c b/lib/sdk/crt/string/atol.c similarity index 100% rename from reactos/lib/sdk/crt/string/atol.c rename to lib/sdk/crt/string/atol.c diff --git a/reactos/lib/sdk/crt/string/ctype.c b/lib/sdk/crt/string/ctype.c similarity index 100% rename from reactos/lib/sdk/crt/string/ctype.c rename to lib/sdk/crt/string/ctype.c diff --git a/reactos/lib/sdk/crt/string/i386/strcat_asm.s b/lib/sdk/crt/string/i386/strcat_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/strcat_asm.s rename to lib/sdk/crt/string/i386/strcat_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/strchr_asm.s b/lib/sdk/crt/string/i386/strchr_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/strchr_asm.s rename to lib/sdk/crt/string/i386/strchr_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/strcmp_asm.s b/lib/sdk/crt/string/i386/strcmp_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/strcmp_asm.s rename to lib/sdk/crt/string/i386/strcmp_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/strcpy_asm.s b/lib/sdk/crt/string/i386/strcpy_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/strcpy_asm.s rename to lib/sdk/crt/string/i386/strcpy_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/strlen_asm.s b/lib/sdk/crt/string/i386/strlen_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/strlen_asm.s rename to lib/sdk/crt/string/i386/strlen_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/strncat_asm.s b/lib/sdk/crt/string/i386/strncat_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/strncat_asm.s rename to lib/sdk/crt/string/i386/strncat_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/strncmp_asm.s b/lib/sdk/crt/string/i386/strncmp_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/strncmp_asm.s rename to lib/sdk/crt/string/i386/strncmp_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/strncpy_asm.s b/lib/sdk/crt/string/i386/strncpy_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/strncpy_asm.s rename to lib/sdk/crt/string/i386/strncpy_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/strnlen_asm.s b/lib/sdk/crt/string/i386/strnlen_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/strnlen_asm.s rename to lib/sdk/crt/string/i386/strnlen_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/strrchr_asm.s b/lib/sdk/crt/string/i386/strrchr_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/strrchr_asm.s rename to lib/sdk/crt/string/i386/strrchr_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/tchar.h b/lib/sdk/crt/string/i386/tchar.h similarity index 100% rename from reactos/lib/sdk/crt/string/i386/tchar.h rename to lib/sdk/crt/string/i386/tchar.h diff --git a/reactos/lib/sdk/crt/string/i386/tcscat.inc b/lib/sdk/crt/string/i386/tcscat.inc similarity index 100% rename from reactos/lib/sdk/crt/string/i386/tcscat.inc rename to lib/sdk/crt/string/i386/tcscat.inc diff --git a/reactos/lib/sdk/crt/string/i386/tcschr.inc b/lib/sdk/crt/string/i386/tcschr.inc similarity index 100% rename from reactos/lib/sdk/crt/string/i386/tcschr.inc rename to lib/sdk/crt/string/i386/tcschr.inc diff --git a/reactos/lib/sdk/crt/string/i386/tcscmp.inc b/lib/sdk/crt/string/i386/tcscmp.inc similarity index 100% rename from reactos/lib/sdk/crt/string/i386/tcscmp.inc rename to lib/sdk/crt/string/i386/tcscmp.inc diff --git a/reactos/lib/sdk/crt/string/i386/tcscpy.inc b/lib/sdk/crt/string/i386/tcscpy.inc similarity index 100% rename from reactos/lib/sdk/crt/string/i386/tcscpy.inc rename to lib/sdk/crt/string/i386/tcscpy.inc diff --git a/reactos/lib/sdk/crt/string/i386/tcslen.inc b/lib/sdk/crt/string/i386/tcslen.inc similarity index 100% rename from reactos/lib/sdk/crt/string/i386/tcslen.inc rename to lib/sdk/crt/string/i386/tcslen.inc diff --git a/reactos/lib/sdk/crt/string/i386/tcsncat.inc b/lib/sdk/crt/string/i386/tcsncat.inc similarity index 100% rename from reactos/lib/sdk/crt/string/i386/tcsncat.inc rename to lib/sdk/crt/string/i386/tcsncat.inc diff --git a/reactos/lib/sdk/crt/string/i386/tcsncmp.inc b/lib/sdk/crt/string/i386/tcsncmp.inc similarity index 100% rename from reactos/lib/sdk/crt/string/i386/tcsncmp.inc rename to lib/sdk/crt/string/i386/tcsncmp.inc diff --git a/reactos/lib/sdk/crt/string/i386/tcsncpy.inc b/lib/sdk/crt/string/i386/tcsncpy.inc similarity index 100% rename from reactos/lib/sdk/crt/string/i386/tcsncpy.inc rename to lib/sdk/crt/string/i386/tcsncpy.inc diff --git a/reactos/lib/sdk/crt/string/i386/tcsnlen.inc b/lib/sdk/crt/string/i386/tcsnlen.inc similarity index 100% rename from reactos/lib/sdk/crt/string/i386/tcsnlen.inc rename to lib/sdk/crt/string/i386/tcsnlen.inc diff --git a/reactos/lib/sdk/crt/string/i386/tcsrchr.inc b/lib/sdk/crt/string/i386/tcsrchr.inc similarity index 100% rename from reactos/lib/sdk/crt/string/i386/tcsrchr.inc rename to lib/sdk/crt/string/i386/tcsrchr.inc diff --git a/reactos/lib/sdk/crt/string/i386/wcscat_asm.s b/lib/sdk/crt/string/i386/wcscat_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/wcscat_asm.s rename to lib/sdk/crt/string/i386/wcscat_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/wcschr_asm.s b/lib/sdk/crt/string/i386/wcschr_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/wcschr_asm.s rename to lib/sdk/crt/string/i386/wcschr_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/wcscmp_asm.s b/lib/sdk/crt/string/i386/wcscmp_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/wcscmp_asm.s rename to lib/sdk/crt/string/i386/wcscmp_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/wcscpy_asm.s b/lib/sdk/crt/string/i386/wcscpy_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/wcscpy_asm.s rename to lib/sdk/crt/string/i386/wcscpy_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/wcslen_asm.s b/lib/sdk/crt/string/i386/wcslen_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/wcslen_asm.s rename to lib/sdk/crt/string/i386/wcslen_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/wcsncat_asm.s b/lib/sdk/crt/string/i386/wcsncat_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/wcsncat_asm.s rename to lib/sdk/crt/string/i386/wcsncat_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/wcsncmp_asm.s b/lib/sdk/crt/string/i386/wcsncmp_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/wcsncmp_asm.s rename to lib/sdk/crt/string/i386/wcsncmp_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/wcsncpy_asm.s b/lib/sdk/crt/string/i386/wcsncpy_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/wcsncpy_asm.s rename to lib/sdk/crt/string/i386/wcsncpy_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/wcsnlen_asm.s b/lib/sdk/crt/string/i386/wcsnlen_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/wcsnlen_asm.s rename to lib/sdk/crt/string/i386/wcsnlen_asm.s diff --git a/reactos/lib/sdk/crt/string/i386/wcsrchr_asm.s b/lib/sdk/crt/string/i386/wcsrchr_asm.s similarity index 100% rename from reactos/lib/sdk/crt/string/i386/wcsrchr_asm.s rename to lib/sdk/crt/string/i386/wcsrchr_asm.s diff --git a/reactos/lib/sdk/crt/string/is_wctype.c b/lib/sdk/crt/string/is_wctype.c similarity index 100% rename from reactos/lib/sdk/crt/string/is_wctype.c rename to lib/sdk/crt/string/is_wctype.c diff --git a/reactos/lib/sdk/crt/string/iswctype.c b/lib/sdk/crt/string/iswctype.c similarity index 100% rename from reactos/lib/sdk/crt/string/iswctype.c rename to lib/sdk/crt/string/iswctype.c diff --git a/reactos/lib/sdk/crt/string/itoa.c b/lib/sdk/crt/string/itoa.c similarity index 100% rename from reactos/lib/sdk/crt/string/itoa.c rename to lib/sdk/crt/string/itoa.c diff --git a/reactos/lib/sdk/crt/string/itow.c b/lib/sdk/crt/string/itow.c similarity index 100% rename from reactos/lib/sdk/crt/string/itow.c rename to lib/sdk/crt/string/itow.c diff --git a/reactos/lib/sdk/crt/string/mbstowcs_nt.c b/lib/sdk/crt/string/mbstowcs_nt.c similarity index 100% rename from reactos/lib/sdk/crt/string/mbstowcs_nt.c rename to lib/sdk/crt/string/mbstowcs_nt.c diff --git a/reactos/lib/sdk/crt/string/mbstowcs_s.c b/lib/sdk/crt/string/mbstowcs_s.c similarity index 100% rename from reactos/lib/sdk/crt/string/mbstowcs_s.c rename to lib/sdk/crt/string/mbstowcs_s.c diff --git a/reactos/lib/sdk/crt/string/scanf.c b/lib/sdk/crt/string/scanf.c similarity index 100% rename from reactos/lib/sdk/crt/string/scanf.c rename to lib/sdk/crt/string/scanf.c diff --git a/reactos/lib/sdk/crt/string/scanf.h b/lib/sdk/crt/string/scanf.h similarity index 100% rename from reactos/lib/sdk/crt/string/scanf.h rename to lib/sdk/crt/string/scanf.h diff --git a/reactos/lib/sdk/crt/string/splitp.c b/lib/sdk/crt/string/splitp.c similarity index 100% rename from reactos/lib/sdk/crt/string/splitp.c rename to lib/sdk/crt/string/splitp.c diff --git a/reactos/lib/sdk/crt/string/strcat.c b/lib/sdk/crt/string/strcat.c similarity index 100% rename from reactos/lib/sdk/crt/string/strcat.c rename to lib/sdk/crt/string/strcat.c diff --git a/reactos/lib/sdk/crt/string/strchr.c b/lib/sdk/crt/string/strchr.c similarity index 100% rename from reactos/lib/sdk/crt/string/strchr.c rename to lib/sdk/crt/string/strchr.c diff --git a/reactos/lib/sdk/crt/string/strcmp.c b/lib/sdk/crt/string/strcmp.c similarity index 100% rename from reactos/lib/sdk/crt/string/strcmp.c rename to lib/sdk/crt/string/strcmp.c diff --git a/reactos/lib/sdk/crt/string/strcoll.c b/lib/sdk/crt/string/strcoll.c similarity index 100% rename from reactos/lib/sdk/crt/string/strcoll.c rename to lib/sdk/crt/string/strcoll.c diff --git a/reactos/lib/sdk/crt/string/strcpy.c b/lib/sdk/crt/string/strcpy.c similarity index 100% rename from reactos/lib/sdk/crt/string/strcpy.c rename to lib/sdk/crt/string/strcpy.c diff --git a/reactos/lib/sdk/crt/string/strcspn.c b/lib/sdk/crt/string/strcspn.c similarity index 100% rename from reactos/lib/sdk/crt/string/strcspn.c rename to lib/sdk/crt/string/strcspn.c diff --git a/reactos/lib/sdk/crt/string/strdup.c b/lib/sdk/crt/string/strdup.c similarity index 100% rename from reactos/lib/sdk/crt/string/strdup.c rename to lib/sdk/crt/string/strdup.c diff --git a/reactos/lib/sdk/crt/string/strerror.c b/lib/sdk/crt/string/strerror.c similarity index 100% rename from reactos/lib/sdk/crt/string/strerror.c rename to lib/sdk/crt/string/strerror.c diff --git a/reactos/lib/sdk/crt/string/stricmp.c b/lib/sdk/crt/string/stricmp.c similarity index 100% rename from reactos/lib/sdk/crt/string/stricmp.c rename to lib/sdk/crt/string/stricmp.c diff --git a/reactos/lib/sdk/crt/string/string.c b/lib/sdk/crt/string/string.c similarity index 100% rename from reactos/lib/sdk/crt/string/string.c rename to lib/sdk/crt/string/string.c diff --git a/reactos/lib/sdk/crt/string/strlen.c b/lib/sdk/crt/string/strlen.c similarity index 100% rename from reactos/lib/sdk/crt/string/strlen.c rename to lib/sdk/crt/string/strlen.c diff --git a/reactos/lib/sdk/crt/string/strlwr.c b/lib/sdk/crt/string/strlwr.c similarity index 100% rename from reactos/lib/sdk/crt/string/strlwr.c rename to lib/sdk/crt/string/strlwr.c diff --git a/reactos/lib/sdk/crt/string/strncat.c b/lib/sdk/crt/string/strncat.c similarity index 100% rename from reactos/lib/sdk/crt/string/strncat.c rename to lib/sdk/crt/string/strncat.c diff --git a/reactos/lib/sdk/crt/string/strncmp.c b/lib/sdk/crt/string/strncmp.c similarity index 100% rename from reactos/lib/sdk/crt/string/strncmp.c rename to lib/sdk/crt/string/strncmp.c diff --git a/reactos/lib/sdk/crt/string/strncoll.c b/lib/sdk/crt/string/strncoll.c similarity index 100% rename from reactos/lib/sdk/crt/string/strncoll.c rename to lib/sdk/crt/string/strncoll.c diff --git a/reactos/lib/sdk/crt/string/strncpy.c b/lib/sdk/crt/string/strncpy.c similarity index 100% rename from reactos/lib/sdk/crt/string/strncpy.c rename to lib/sdk/crt/string/strncpy.c diff --git a/reactos/lib/sdk/crt/string/strnicmp.c b/lib/sdk/crt/string/strnicmp.c similarity index 100% rename from reactos/lib/sdk/crt/string/strnicmp.c rename to lib/sdk/crt/string/strnicmp.c diff --git a/reactos/lib/sdk/crt/string/strnlen.c b/lib/sdk/crt/string/strnlen.c similarity index 100% rename from reactos/lib/sdk/crt/string/strnlen.c rename to lib/sdk/crt/string/strnlen.c diff --git a/reactos/lib/sdk/crt/string/strpbrk.c b/lib/sdk/crt/string/strpbrk.c similarity index 100% rename from reactos/lib/sdk/crt/string/strpbrk.c rename to lib/sdk/crt/string/strpbrk.c diff --git a/reactos/lib/sdk/crt/string/strrchr.c b/lib/sdk/crt/string/strrchr.c similarity index 100% rename from reactos/lib/sdk/crt/string/strrchr.c rename to lib/sdk/crt/string/strrchr.c diff --git a/reactos/lib/sdk/crt/string/strrev.c b/lib/sdk/crt/string/strrev.c similarity index 100% rename from reactos/lib/sdk/crt/string/strrev.c rename to lib/sdk/crt/string/strrev.c diff --git a/reactos/lib/sdk/crt/string/strset.c b/lib/sdk/crt/string/strset.c similarity index 100% rename from reactos/lib/sdk/crt/string/strset.c rename to lib/sdk/crt/string/strset.c diff --git a/reactos/lib/sdk/crt/string/strspn.c b/lib/sdk/crt/string/strspn.c similarity index 100% rename from reactos/lib/sdk/crt/string/strspn.c rename to lib/sdk/crt/string/strspn.c diff --git a/reactos/lib/sdk/crt/string/strstr.c b/lib/sdk/crt/string/strstr.c similarity index 100% rename from reactos/lib/sdk/crt/string/strstr.c rename to lib/sdk/crt/string/strstr.c diff --git a/reactos/lib/sdk/crt/string/strtod.c b/lib/sdk/crt/string/strtod.c similarity index 100% rename from reactos/lib/sdk/crt/string/strtod.c rename to lib/sdk/crt/string/strtod.c diff --git a/reactos/lib/sdk/crt/string/strtoi64.c b/lib/sdk/crt/string/strtoi64.c similarity index 100% rename from reactos/lib/sdk/crt/string/strtoi64.c rename to lib/sdk/crt/string/strtoi64.c diff --git a/reactos/lib/sdk/crt/string/strtok.c b/lib/sdk/crt/string/strtok.c similarity index 100% rename from reactos/lib/sdk/crt/string/strtok.c rename to lib/sdk/crt/string/strtok.c diff --git a/reactos/lib/sdk/crt/string/strtol.c b/lib/sdk/crt/string/strtol.c similarity index 100% rename from reactos/lib/sdk/crt/string/strtol.c rename to lib/sdk/crt/string/strtol.c diff --git a/reactos/lib/sdk/crt/string/strtold.c b/lib/sdk/crt/string/strtold.c similarity index 100% rename from reactos/lib/sdk/crt/string/strtold.c rename to lib/sdk/crt/string/strtold.c diff --git a/reactos/lib/sdk/crt/string/strtoul.c b/lib/sdk/crt/string/strtoul.c similarity index 100% rename from reactos/lib/sdk/crt/string/strtoul.c rename to lib/sdk/crt/string/strtoul.c diff --git a/reactos/lib/sdk/crt/string/strtoull.c b/lib/sdk/crt/string/strtoull.c similarity index 100% rename from reactos/lib/sdk/crt/string/strtoull.c rename to lib/sdk/crt/string/strtoull.c diff --git a/reactos/lib/sdk/crt/string/strupr.c b/lib/sdk/crt/string/strupr.c similarity index 100% rename from reactos/lib/sdk/crt/string/strupr.c rename to lib/sdk/crt/string/strupr.c diff --git a/reactos/lib/sdk/crt/string/strxfrm.c b/lib/sdk/crt/string/strxfrm.c similarity index 100% rename from reactos/lib/sdk/crt/string/strxfrm.c rename to lib/sdk/crt/string/strxfrm.c diff --git a/reactos/lib/sdk/crt/string/strxspn.h b/lib/sdk/crt/string/strxspn.h similarity index 100% rename from reactos/lib/sdk/crt/string/strxspn.h rename to lib/sdk/crt/string/strxspn.h diff --git a/reactos/lib/sdk/crt/string/tcscat.h b/lib/sdk/crt/string/tcscat.h similarity index 100% rename from reactos/lib/sdk/crt/string/tcscat.h rename to lib/sdk/crt/string/tcscat.h diff --git a/reactos/lib/sdk/crt/string/tcschr.h b/lib/sdk/crt/string/tcschr.h similarity index 100% rename from reactos/lib/sdk/crt/string/tcschr.h rename to lib/sdk/crt/string/tcschr.h diff --git a/reactos/lib/sdk/crt/string/tcscmp.h b/lib/sdk/crt/string/tcscmp.h similarity index 100% rename from reactos/lib/sdk/crt/string/tcscmp.h rename to lib/sdk/crt/string/tcscmp.h diff --git a/reactos/lib/sdk/crt/string/tcscpy.h b/lib/sdk/crt/string/tcscpy.h similarity index 100% rename from reactos/lib/sdk/crt/string/tcscpy.h rename to lib/sdk/crt/string/tcscpy.h diff --git a/reactos/lib/sdk/crt/string/tcslen.h b/lib/sdk/crt/string/tcslen.h similarity index 100% rename from reactos/lib/sdk/crt/string/tcslen.h rename to lib/sdk/crt/string/tcslen.h diff --git a/reactos/lib/sdk/crt/string/tcsncat.h b/lib/sdk/crt/string/tcsncat.h similarity index 100% rename from reactos/lib/sdk/crt/string/tcsncat.h rename to lib/sdk/crt/string/tcsncat.h diff --git a/reactos/lib/sdk/crt/string/tcsncmp.h b/lib/sdk/crt/string/tcsncmp.h similarity index 100% rename from reactos/lib/sdk/crt/string/tcsncmp.h rename to lib/sdk/crt/string/tcsncmp.h diff --git a/reactos/lib/sdk/crt/string/tcsncpy.h b/lib/sdk/crt/string/tcsncpy.h similarity index 100% rename from reactos/lib/sdk/crt/string/tcsncpy.h rename to lib/sdk/crt/string/tcsncpy.h diff --git a/reactos/lib/sdk/crt/string/tcsnlen.h b/lib/sdk/crt/string/tcsnlen.h similarity index 100% rename from reactos/lib/sdk/crt/string/tcsnlen.h rename to lib/sdk/crt/string/tcsnlen.h diff --git a/reactos/lib/sdk/crt/string/tcsrchr.h b/lib/sdk/crt/string/tcsrchr.h similarity index 100% rename from reactos/lib/sdk/crt/string/tcsrchr.h rename to lib/sdk/crt/string/tcsrchr.h diff --git a/reactos/lib/sdk/crt/string/wcs.c b/lib/sdk/crt/string/wcs.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcs.c rename to lib/sdk/crt/string/wcs.c diff --git a/reactos/lib/sdk/crt/string/wcscat.c b/lib/sdk/crt/string/wcscat.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcscat.c rename to lib/sdk/crt/string/wcscat.c diff --git a/reactos/lib/sdk/crt/string/wcschr.c b/lib/sdk/crt/string/wcschr.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcschr.c rename to lib/sdk/crt/string/wcschr.c diff --git a/reactos/lib/sdk/crt/string/wcscmp.c b/lib/sdk/crt/string/wcscmp.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcscmp.c rename to lib/sdk/crt/string/wcscmp.c diff --git a/reactos/lib/sdk/crt/string/wcscpy.c b/lib/sdk/crt/string/wcscpy.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcscpy.c rename to lib/sdk/crt/string/wcscpy.c diff --git a/reactos/lib/sdk/crt/string/wcslen.c b/lib/sdk/crt/string/wcslen.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcslen.c rename to lib/sdk/crt/string/wcslen.c diff --git a/reactos/lib/sdk/crt/string/wcsncat.c b/lib/sdk/crt/string/wcsncat.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcsncat.c rename to lib/sdk/crt/string/wcsncat.c diff --git a/reactos/lib/sdk/crt/string/wcsncmp.c b/lib/sdk/crt/string/wcsncmp.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcsncmp.c rename to lib/sdk/crt/string/wcsncmp.c diff --git a/reactos/lib/sdk/crt/string/wcsncpy.c b/lib/sdk/crt/string/wcsncpy.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcsncpy.c rename to lib/sdk/crt/string/wcsncpy.c diff --git a/reactos/lib/sdk/crt/string/wcsnlen.c b/lib/sdk/crt/string/wcsnlen.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcsnlen.c rename to lib/sdk/crt/string/wcsnlen.c diff --git a/reactos/lib/sdk/crt/string/wcsrchr.c b/lib/sdk/crt/string/wcsrchr.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcsrchr.c rename to lib/sdk/crt/string/wcsrchr.c diff --git a/reactos/lib/sdk/crt/string/wcstod.c b/lib/sdk/crt/string/wcstod.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcstod.c rename to lib/sdk/crt/string/wcstod.c diff --git a/reactos/lib/sdk/crt/string/wcstol.c b/lib/sdk/crt/string/wcstol.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcstol.c rename to lib/sdk/crt/string/wcstol.c diff --git a/reactos/lib/sdk/crt/string/wcstombs_nt.c b/lib/sdk/crt/string/wcstombs_nt.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcstombs_nt.c rename to lib/sdk/crt/string/wcstombs_nt.c diff --git a/reactos/lib/sdk/crt/string/wcstombs_s.c b/lib/sdk/crt/string/wcstombs_s.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcstombs_s.c rename to lib/sdk/crt/string/wcstombs_s.c diff --git a/reactos/lib/sdk/crt/string/wcstoul.c b/lib/sdk/crt/string/wcstoul.c similarity index 100% rename from reactos/lib/sdk/crt/string/wcstoul.c rename to lib/sdk/crt/string/wcstoul.c diff --git a/reactos/lib/sdk/crt/string/wctype.c b/lib/sdk/crt/string/wctype.c similarity index 100% rename from reactos/lib/sdk/crt/string/wctype.c rename to lib/sdk/crt/string/wctype.c diff --git a/reactos/lib/sdk/crt/string/witoa.c b/lib/sdk/crt/string/witoa.c similarity index 100% rename from reactos/lib/sdk/crt/string/witoa.c rename to lib/sdk/crt/string/witoa.c diff --git a/reactos/lib/sdk/crt/string/witow.c b/lib/sdk/crt/string/witow.c similarity index 100% rename from reactos/lib/sdk/crt/string/witow.c rename to lib/sdk/crt/string/witow.c diff --git a/reactos/lib/sdk/crt/string/wsplitp.c b/lib/sdk/crt/string/wsplitp.c similarity index 100% rename from reactos/lib/sdk/crt/string/wsplitp.c rename to lib/sdk/crt/string/wsplitp.c diff --git a/reactos/lib/sdk/crt/string/wtoi.c b/lib/sdk/crt/string/wtoi.c similarity index 100% rename from reactos/lib/sdk/crt/string/wtoi.c rename to lib/sdk/crt/string/wtoi.c diff --git a/reactos/lib/sdk/crt/string/wtoi64.c b/lib/sdk/crt/string/wtoi64.c similarity index 100% rename from reactos/lib/sdk/crt/string/wtoi64.c rename to lib/sdk/crt/string/wtoi64.c diff --git a/reactos/lib/sdk/crt/string/wtol.c b/lib/sdk/crt/string/wtol.c similarity index 100% rename from reactos/lib/sdk/crt/string/wtol.c rename to lib/sdk/crt/string/wtol.c diff --git a/reactos/lib/sdk/crt/sys_stat/systime.c b/lib/sdk/crt/sys_stat/systime.c similarity index 100% rename from reactos/lib/sdk/crt/sys_stat/systime.c rename to lib/sdk/crt/sys_stat/systime.c diff --git a/reactos/lib/sdk/crt/time/asctime.c b/lib/sdk/crt/time/asctime.c similarity index 100% rename from reactos/lib/sdk/crt/time/asctime.c rename to lib/sdk/crt/time/asctime.c diff --git a/reactos/lib/sdk/crt/time/bitsfixup.h b/lib/sdk/crt/time/bitsfixup.h similarity index 100% rename from reactos/lib/sdk/crt/time/bitsfixup.h rename to lib/sdk/crt/time/bitsfixup.h diff --git a/reactos/lib/sdk/crt/time/clock.c b/lib/sdk/crt/time/clock.c similarity index 100% rename from reactos/lib/sdk/crt/time/clock.c rename to lib/sdk/crt/time/clock.c diff --git a/reactos/lib/sdk/crt/time/ctime.c b/lib/sdk/crt/time/ctime.c similarity index 100% rename from reactos/lib/sdk/crt/time/ctime.c rename to lib/sdk/crt/time/ctime.c diff --git a/reactos/lib/sdk/crt/time/ctime32.c b/lib/sdk/crt/time/ctime32.c similarity index 100% rename from reactos/lib/sdk/crt/time/ctime32.c rename to lib/sdk/crt/time/ctime32.c diff --git a/reactos/lib/sdk/crt/time/ctime64.c b/lib/sdk/crt/time/ctime64.c similarity index 100% rename from reactos/lib/sdk/crt/time/ctime64.c rename to lib/sdk/crt/time/ctime64.c diff --git a/reactos/lib/sdk/crt/time/difftime.c b/lib/sdk/crt/time/difftime.c similarity index 100% rename from reactos/lib/sdk/crt/time/difftime.c rename to lib/sdk/crt/time/difftime.c diff --git a/reactos/lib/sdk/crt/time/difftime32.c b/lib/sdk/crt/time/difftime32.c similarity index 100% rename from reactos/lib/sdk/crt/time/difftime32.c rename to lib/sdk/crt/time/difftime32.c diff --git a/reactos/lib/sdk/crt/time/difftime64.c b/lib/sdk/crt/time/difftime64.c similarity index 100% rename from reactos/lib/sdk/crt/time/difftime64.c rename to lib/sdk/crt/time/difftime64.c diff --git a/reactos/lib/sdk/crt/time/ftime.c b/lib/sdk/crt/time/ftime.c similarity index 100% rename from reactos/lib/sdk/crt/time/ftime.c rename to lib/sdk/crt/time/ftime.c diff --git a/reactos/lib/sdk/crt/time/ftime32.c b/lib/sdk/crt/time/ftime32.c similarity index 100% rename from reactos/lib/sdk/crt/time/ftime32.c rename to lib/sdk/crt/time/ftime32.c diff --git a/reactos/lib/sdk/crt/time/ftime64.c b/lib/sdk/crt/time/ftime64.c similarity index 100% rename from reactos/lib/sdk/crt/time/ftime64.c rename to lib/sdk/crt/time/ftime64.c diff --git a/reactos/lib/sdk/crt/time/futime.c b/lib/sdk/crt/time/futime.c similarity index 100% rename from reactos/lib/sdk/crt/time/futime.c rename to lib/sdk/crt/time/futime.c diff --git a/reactos/lib/sdk/crt/time/futime32.c b/lib/sdk/crt/time/futime32.c similarity index 100% rename from reactos/lib/sdk/crt/time/futime32.c rename to lib/sdk/crt/time/futime32.c diff --git a/reactos/lib/sdk/crt/time/futime64.c b/lib/sdk/crt/time/futime64.c similarity index 100% rename from reactos/lib/sdk/crt/time/futime64.c rename to lib/sdk/crt/time/futime64.c diff --git a/reactos/lib/sdk/crt/time/gmtime.c b/lib/sdk/crt/time/gmtime.c similarity index 100% rename from reactos/lib/sdk/crt/time/gmtime.c rename to lib/sdk/crt/time/gmtime.c diff --git a/reactos/lib/sdk/crt/time/localtime.c b/lib/sdk/crt/time/localtime.c similarity index 100% rename from reactos/lib/sdk/crt/time/localtime.c rename to lib/sdk/crt/time/localtime.c diff --git a/reactos/lib/sdk/crt/time/localtime32.c b/lib/sdk/crt/time/localtime32.c similarity index 100% rename from reactos/lib/sdk/crt/time/localtime32.c rename to lib/sdk/crt/time/localtime32.c diff --git a/reactos/lib/sdk/crt/time/localtime64.c b/lib/sdk/crt/time/localtime64.c similarity index 100% rename from reactos/lib/sdk/crt/time/localtime64.c rename to lib/sdk/crt/time/localtime64.c diff --git a/reactos/lib/sdk/crt/time/mktime.c b/lib/sdk/crt/time/mktime.c similarity index 100% rename from reactos/lib/sdk/crt/time/mktime.c rename to lib/sdk/crt/time/mktime.c diff --git a/reactos/lib/sdk/crt/time/strdate.c b/lib/sdk/crt/time/strdate.c similarity index 100% rename from reactos/lib/sdk/crt/time/strdate.c rename to lib/sdk/crt/time/strdate.c diff --git a/reactos/lib/sdk/crt/time/strftime.c b/lib/sdk/crt/time/strftime.c similarity index 100% rename from reactos/lib/sdk/crt/time/strftime.c rename to lib/sdk/crt/time/strftime.c diff --git a/reactos/lib/sdk/crt/time/strtime.c b/lib/sdk/crt/time/strtime.c similarity index 100% rename from reactos/lib/sdk/crt/time/strtime.c rename to lib/sdk/crt/time/strtime.c diff --git a/reactos/lib/sdk/crt/time/time.c b/lib/sdk/crt/time/time.c similarity index 100% rename from reactos/lib/sdk/crt/time/time.c rename to lib/sdk/crt/time/time.c diff --git a/reactos/lib/sdk/crt/time/time32.c b/lib/sdk/crt/time/time32.c similarity index 100% rename from reactos/lib/sdk/crt/time/time32.c rename to lib/sdk/crt/time/time32.c diff --git a/reactos/lib/sdk/crt/time/time64.c b/lib/sdk/crt/time/time64.c similarity index 100% rename from reactos/lib/sdk/crt/time/time64.c rename to lib/sdk/crt/time/time64.c diff --git a/reactos/lib/sdk/crt/time/timezone.c b/lib/sdk/crt/time/timezone.c similarity index 100% rename from reactos/lib/sdk/crt/time/timezone.c rename to lib/sdk/crt/time/timezone.c diff --git a/reactos/lib/sdk/crt/time/utime.c b/lib/sdk/crt/time/utime.c similarity index 100% rename from reactos/lib/sdk/crt/time/utime.c rename to lib/sdk/crt/time/utime.c diff --git a/reactos/lib/sdk/crt/time/utime32.c b/lib/sdk/crt/time/utime32.c similarity index 100% rename from reactos/lib/sdk/crt/time/utime32.c rename to lib/sdk/crt/time/utime32.c diff --git a/reactos/lib/sdk/crt/time/utime64.c b/lib/sdk/crt/time/utime64.c similarity index 100% rename from reactos/lib/sdk/crt/time/utime64.c rename to lib/sdk/crt/time/utime64.c diff --git a/reactos/lib/sdk/crt/time/wasctime.c b/lib/sdk/crt/time/wasctime.c similarity index 100% rename from reactos/lib/sdk/crt/time/wasctime.c rename to lib/sdk/crt/time/wasctime.c diff --git a/reactos/lib/sdk/crt/time/wcsftime.c b/lib/sdk/crt/time/wcsftime.c similarity index 100% rename from reactos/lib/sdk/crt/time/wcsftime.c rename to lib/sdk/crt/time/wcsftime.c diff --git a/reactos/lib/sdk/crt/time/wctime.c b/lib/sdk/crt/time/wctime.c similarity index 100% rename from reactos/lib/sdk/crt/time/wctime.c rename to lib/sdk/crt/time/wctime.c diff --git a/reactos/lib/sdk/crt/time/wctime32.c b/lib/sdk/crt/time/wctime32.c similarity index 100% rename from reactos/lib/sdk/crt/time/wctime32.c rename to lib/sdk/crt/time/wctime32.c diff --git a/reactos/lib/sdk/crt/time/wctime64.c b/lib/sdk/crt/time/wctime64.c similarity index 100% rename from reactos/lib/sdk/crt/time/wctime64.c rename to lib/sdk/crt/time/wctime64.c diff --git a/reactos/lib/sdk/crt/time/wstrdate.c b/lib/sdk/crt/time/wstrdate.c similarity index 100% rename from reactos/lib/sdk/crt/time/wstrdate.c rename to lib/sdk/crt/time/wstrdate.c diff --git a/reactos/lib/sdk/crt/time/wstrtime.c b/lib/sdk/crt/time/wstrtime.c similarity index 100% rename from reactos/lib/sdk/crt/time/wstrtime.c rename to lib/sdk/crt/time/wstrtime.c diff --git a/reactos/lib/sdk/crt/time/wutime.c b/lib/sdk/crt/time/wutime.c similarity index 100% rename from reactos/lib/sdk/crt/time/wutime.c rename to lib/sdk/crt/time/wutime.c diff --git a/reactos/lib/sdk/crt/time/wutime32.c b/lib/sdk/crt/time/wutime32.c similarity index 100% rename from reactos/lib/sdk/crt/time/wutime32.c rename to lib/sdk/crt/time/wutime32.c diff --git a/reactos/lib/sdk/crt/time/wutime64.c b/lib/sdk/crt/time/wutime64.c similarity index 100% rename from reactos/lib/sdk/crt/time/wutime64.c rename to lib/sdk/crt/time/wutime64.c diff --git a/reactos/lib/sdk/crt/wine/heap.c b/lib/sdk/crt/wine/heap.c similarity index 100% rename from reactos/lib/sdk/crt/wine/heap.c rename to lib/sdk/crt/wine/heap.c diff --git a/reactos/lib/sdk/crt/wine/undname.c b/lib/sdk/crt/wine/undname.c similarity index 100% rename from reactos/lib/sdk/crt/wine/undname.c rename to lib/sdk/crt/wine/undname.c diff --git a/reactos/lib/sdk/crt/wstring/wcscoll.c b/lib/sdk/crt/wstring/wcscoll.c similarity index 100% rename from reactos/lib/sdk/crt/wstring/wcscoll.c rename to lib/sdk/crt/wstring/wcscoll.c diff --git a/reactos/lib/sdk/crt/wstring/wcscspn.c b/lib/sdk/crt/wstring/wcscspn.c similarity index 100% rename from reactos/lib/sdk/crt/wstring/wcscspn.c rename to lib/sdk/crt/wstring/wcscspn.c diff --git a/reactos/lib/sdk/crt/wstring/wcsicmp.c b/lib/sdk/crt/wstring/wcsicmp.c similarity index 100% rename from reactos/lib/sdk/crt/wstring/wcsicmp.c rename to lib/sdk/crt/wstring/wcsicmp.c diff --git a/reactos/lib/sdk/crt/wstring/wcslwr.c b/lib/sdk/crt/wstring/wcslwr.c similarity index 100% rename from reactos/lib/sdk/crt/wstring/wcslwr.c rename to lib/sdk/crt/wstring/wcslwr.c diff --git a/reactos/lib/sdk/crt/wstring/wcsnicmp.c b/lib/sdk/crt/wstring/wcsnicmp.c similarity index 100% rename from reactos/lib/sdk/crt/wstring/wcsnicmp.c rename to lib/sdk/crt/wstring/wcsnicmp.c diff --git a/reactos/lib/sdk/crt/wstring/wcsspn.c b/lib/sdk/crt/wstring/wcsspn.c similarity index 100% rename from reactos/lib/sdk/crt/wstring/wcsspn.c rename to lib/sdk/crt/wstring/wcsspn.c diff --git a/reactos/lib/sdk/crt/wstring/wcsstr.c b/lib/sdk/crt/wstring/wcsstr.c similarity index 100% rename from reactos/lib/sdk/crt/wstring/wcsstr.c rename to lib/sdk/crt/wstring/wcsstr.c diff --git a/reactos/lib/sdk/crt/wstring/wcstok.c b/lib/sdk/crt/wstring/wcstok.c similarity index 100% rename from reactos/lib/sdk/crt/wstring/wcstok.c rename to lib/sdk/crt/wstring/wcstok.c diff --git a/reactos/lib/sdk/crt/wstring/wcsupr.c b/lib/sdk/crt/wstring/wcsupr.c similarity index 100% rename from reactos/lib/sdk/crt/wstring/wcsupr.c rename to lib/sdk/crt/wstring/wcsupr.c diff --git a/reactos/lib/sdk/crt/wstring/wcsxfrm.c b/lib/sdk/crt/wstring/wcsxfrm.c similarity index 100% rename from reactos/lib/sdk/crt/wstring/wcsxfrm.c rename to lib/sdk/crt/wstring/wcsxfrm.c diff --git a/reactos/lib/sdk/delayimp/CMakeLists.txt b/lib/sdk/delayimp/CMakeLists.txt similarity index 100% rename from reactos/lib/sdk/delayimp/CMakeLists.txt rename to lib/sdk/delayimp/CMakeLists.txt diff --git a/reactos/lib/sdk/delayimp/delayimp.c b/lib/sdk/delayimp/delayimp.c similarity index 100% rename from reactos/lib/sdk/delayimp/delayimp.c rename to lib/sdk/delayimp/delayimp.c diff --git a/reactos/lib/sdk/dxguid/CMakeLists.txt b/lib/sdk/dxguid/CMakeLists.txt similarity index 100% rename from reactos/lib/sdk/dxguid/CMakeLists.txt rename to lib/sdk/dxguid/CMakeLists.txt diff --git a/reactos/lib/sdk/dxguid/dxguid-mingw.c b/lib/sdk/dxguid/dxguid-mingw.c similarity index 100% rename from reactos/lib/sdk/dxguid/dxguid-mingw.c rename to lib/sdk/dxguid/dxguid-mingw.c diff --git a/reactos/lib/sdk/ioevent/CMakeLists.txt b/lib/sdk/ioevent/CMakeLists.txt similarity index 100% rename from reactos/lib/sdk/ioevent/CMakeLists.txt rename to lib/sdk/ioevent/CMakeLists.txt diff --git a/reactos/lib/sdk/ioevent/ioevent.c b/lib/sdk/ioevent/ioevent.c similarity index 100% rename from reactos/lib/sdk/ioevent/ioevent.c rename to lib/sdk/ioevent/ioevent.c diff --git a/reactos/lib/sdk/nt/CMakeLists.txt b/lib/sdk/nt/CMakeLists.txt similarity index 100% rename from reactos/lib/sdk/nt/CMakeLists.txt rename to lib/sdk/nt/CMakeLists.txt diff --git a/reactos/lib/sdk/nt/entry_point.c b/lib/sdk/nt/entry_point.c similarity index 100% rename from reactos/lib/sdk/nt/entry_point.c rename to lib/sdk/nt/entry_point.c diff --git a/reactos/lib/sdk/nt/readme.txt b/lib/sdk/nt/readme.txt similarity index 100% rename from reactos/lib/sdk/nt/readme.txt rename to lib/sdk/nt/readme.txt diff --git a/reactos/lib/sdk/scrnsave/CMakeLists.txt b/lib/sdk/scrnsave/CMakeLists.txt similarity index 100% rename from reactos/lib/sdk/scrnsave/CMakeLists.txt rename to lib/sdk/scrnsave/CMakeLists.txt diff --git a/reactos/lib/sdk/scrnsave/scrnsave.c b/lib/sdk/scrnsave/scrnsave.c similarity index 100% rename from reactos/lib/sdk/scrnsave/scrnsave.c rename to lib/sdk/scrnsave/scrnsave.c diff --git a/reactos/lib/sdk/strmiids/CMakeLists.txt b/lib/sdk/strmiids/CMakeLists.txt similarity index 100% rename from reactos/lib/sdk/strmiids/CMakeLists.txt rename to lib/sdk/strmiids/CMakeLists.txt diff --git a/reactos/lib/sdk/strmiids/strmiids.c b/lib/sdk/strmiids/strmiids.c similarity index 100% rename from reactos/lib/sdk/strmiids/strmiids.c rename to lib/sdk/strmiids/strmiids.c diff --git a/reactos/lib/sdk/uuid/CMakeLists.txt b/lib/sdk/uuid/CMakeLists.txt similarity index 100% rename from reactos/lib/sdk/uuid/CMakeLists.txt rename to lib/sdk/uuid/CMakeLists.txt diff --git a/reactos/lib/sdk/uuid/bthguid.c b/lib/sdk/uuid/bthguid.c similarity index 100% rename from reactos/lib/sdk/uuid/bthguid.c rename to lib/sdk/uuid/bthguid.c diff --git a/reactos/lib/sdk/uuid/cguid_i.c b/lib/sdk/uuid/cguid_i.c similarity index 100% rename from reactos/lib/sdk/uuid/cguid_i.c rename to lib/sdk/uuid/cguid_i.c diff --git a/reactos/lib/sdk/uuid/cluscfgguids.c b/lib/sdk/uuid/cluscfgguids.c similarity index 100% rename from reactos/lib/sdk/uuid/cluscfgguids.c rename to lib/sdk/uuid/cluscfgguids.c diff --git a/reactos/lib/sdk/uuid/cmdtreeiid.c b/lib/sdk/uuid/cmdtreeiid.c similarity index 100% rename from reactos/lib/sdk/uuid/cmdtreeiid.c rename to lib/sdk/uuid/cmdtreeiid.c diff --git a/reactos/lib/sdk/uuid/hnclsid.c b/lib/sdk/uuid/hnclsid.c similarity index 100% rename from reactos/lib/sdk/uuid/hnclsid.c rename to lib/sdk/uuid/hnclsid.c diff --git a/reactos/lib/sdk/uuid/ieguids.c b/lib/sdk/uuid/ieguids.c similarity index 100% rename from reactos/lib/sdk/uuid/ieguids.c rename to lib/sdk/uuid/ieguids.c diff --git a/reactos/lib/sdk/uuid/iid.c b/lib/sdk/uuid/iid.c similarity index 100% rename from reactos/lib/sdk/uuid/iid.c rename to lib/sdk/uuid/iid.c diff --git a/reactos/lib/sdk/uuid/ncclsid.c b/lib/sdk/uuid/ncclsid.c similarity index 100% rename from reactos/lib/sdk/uuid/ncclsid.c rename to lib/sdk/uuid/ncclsid.c diff --git a/reactos/lib/sdk/uuid/ndisguid.c b/lib/sdk/uuid/ndisguid.c similarity index 100% rename from reactos/lib/sdk/uuid/ndisguid.c rename to lib/sdk/uuid/ndisguid.c diff --git a/reactos/lib/sdk/uuid/netfwv6clsid.c b/lib/sdk/uuid/netfwv6clsid.c similarity index 100% rename from reactos/lib/sdk/uuid/netfwv6clsid.c rename to lib/sdk/uuid/netfwv6clsid.c diff --git a/reactos/lib/sdk/uuid/oledbdat.c b/lib/sdk/uuid/oledbdat.c similarity index 100% rename from reactos/lib/sdk/uuid/oledbdat.c rename to lib/sdk/uuid/oledbdat.c diff --git a/reactos/lib/sdk/uuid/oledbdepiid.c b/lib/sdk/uuid/oledbdepiid.c similarity index 100% rename from reactos/lib/sdk/uuid/oledbdepiid.c rename to lib/sdk/uuid/oledbdepiid.c diff --git a/reactos/lib/sdk/uuid/oledbiid.c b/lib/sdk/uuid/oledbiid.c similarity index 100% rename from reactos/lib/sdk/uuid/oledbiid.c rename to lib/sdk/uuid/oledbiid.c diff --git a/reactos/lib/sdk/uuid/oledbnewiid.c b/lib/sdk/uuid/oledbnewiid.c similarity index 100% rename from reactos/lib/sdk/uuid/oledbnewiid.c rename to lib/sdk/uuid/oledbnewiid.c diff --git a/reactos/lib/sdk/uuid/otherguids.c b/lib/sdk/uuid/otherguids.c similarity index 100% rename from reactos/lib/sdk/uuid/otherguids.c rename to lib/sdk/uuid/otherguids.c diff --git a/reactos/lib/sdk/uuid/qosguid.c b/lib/sdk/uuid/qosguid.c similarity index 100% rename from reactos/lib/sdk/uuid/qosguid.c rename to lib/sdk/uuid/qosguid.c diff --git a/reactos/lib/sdk/uuid/shguids.c b/lib/sdk/uuid/shguids.c similarity index 100% rename from reactos/lib/sdk/uuid/shguids.c rename to lib/sdk/uuid/shguids.c diff --git a/reactos/lib/sdk/uuid/tapi3iid.c b/lib/sdk/uuid/tapi3iid.c similarity index 100% rename from reactos/lib/sdk/uuid/tapi3iid.c rename to lib/sdk/uuid/tapi3iid.c diff --git a/reactos/lib/sdk/uuid/undoc.c b/lib/sdk/uuid/undoc.c similarity index 100% rename from reactos/lib/sdk/uuid/undoc.c rename to lib/sdk/uuid/undoc.c diff --git a/reactos/lib/sdk/uuid/uuid.c b/lib/sdk/uuid/uuid.c similarity index 100% rename from reactos/lib/sdk/uuid/uuid.c rename to lib/sdk/uuid/uuid.c diff --git a/reactos/lib/sdk/uuid/vcguids.c b/lib/sdk/uuid/vcguids.c similarity index 100% rename from reactos/lib/sdk/uuid/vcguids.c rename to lib/sdk/uuid/vcguids.c diff --git a/reactos/lib/sdk/uuid/wdmguids.c b/lib/sdk/uuid/wdmguids.c similarity index 100% rename from reactos/lib/sdk/uuid/wdmguids.c rename to lib/sdk/uuid/wdmguids.c diff --git a/reactos/lib/sdk/wdmguid/CMakeLists.txt b/lib/sdk/wdmguid/CMakeLists.txt similarity index 100% rename from reactos/lib/sdk/wdmguid/CMakeLists.txt rename to lib/sdk/wdmguid/CMakeLists.txt diff --git a/reactos/lib/sdk/wdmguid/wdmguid.c b/lib/sdk/wdmguid/wdmguid.c similarity index 100% rename from reactos/lib/sdk/wdmguid/wdmguid.c rename to lib/sdk/wdmguid/wdmguid.c diff --git a/reactos/lib/smlib/CMakeLists.txt b/lib/smlib/CMakeLists.txt similarity index 100% rename from reactos/lib/smlib/CMakeLists.txt rename to lib/smlib/CMakeLists.txt diff --git a/reactos/lib/smlib/compses.c b/lib/smlib/compses.c similarity index 100% rename from reactos/lib/smlib/compses.c rename to lib/smlib/compses.c diff --git a/reactos/lib/smlib/connect.c b/lib/smlib/connect.c similarity index 100% rename from reactos/lib/smlib/connect.c rename to lib/smlib/connect.c diff --git a/reactos/lib/smlib/execpgm.c b/lib/smlib/execpgm.c similarity index 100% rename from reactos/lib/smlib/execpgm.c rename to lib/smlib/execpgm.c diff --git a/reactos/lib/smlib/lookupss.c b/lib/smlib/lookupss.c similarity index 100% rename from reactos/lib/smlib/lookupss.c rename to lib/smlib/lookupss.c diff --git a/reactos/lib/smlib/precomp.h b/lib/smlib/precomp.h similarity index 100% rename from reactos/lib/smlib/precomp.h rename to lib/smlib/precomp.h diff --git a/reactos/lib/smlib/smclient.c b/lib/smlib/smclient.c similarity index 100% rename from reactos/lib/smlib/smclient.c rename to lib/smlib/smclient.c diff --git a/reactos/lib/tdilib/CMakeLists.txt b/lib/tdilib/CMakeLists.txt similarity index 100% rename from reactos/lib/tdilib/CMakeLists.txt rename to lib/tdilib/CMakeLists.txt diff --git a/reactos/lib/tdilib/enum.c b/lib/tdilib/enum.c similarity index 100% rename from reactos/lib/tdilib/enum.c rename to lib/tdilib/enum.c diff --git a/reactos/lib/tdilib/handle.c b/lib/tdilib/handle.c similarity index 100% rename from reactos/lib/tdilib/handle.c rename to lib/tdilib/handle.c diff --git a/reactos/lib/tdilib/tdilib.h b/lib/tdilib/tdilib.h similarity index 100% rename from reactos/lib/tdilib/tdilib.h rename to lib/tdilib/tdilib.h diff --git a/reactos/media/CMakeLists.txt b/media/CMakeLists.txt similarity index 100% rename from reactos/media/CMakeLists.txt rename to media/CMakeLists.txt diff --git a/reactos/media/doc/3rd Party Files.txt b/media/doc/3rd Party Files.txt similarity index 100% rename from reactos/media/doc/3rd Party Files.txt rename to media/doc/3rd Party Files.txt diff --git a/reactos/media/doc/DdCreateDirectDrawObject.txt b/media/doc/DdCreateDirectDrawObject.txt similarity index 100% rename from reactos/media/doc/DdCreateDirectDrawObject.txt rename to media/doc/DdCreateDirectDrawObject.txt diff --git a/reactos/media/doc/DdDeleteDirectDrawObject.txt b/media/doc/DdDeleteDirectDrawObject.txt similarity index 100% rename from reactos/media/doc/DdDeleteDirectDrawObject.txt rename to media/doc/DdDeleteDirectDrawObject.txt diff --git a/reactos/media/doc/HACKING b/media/doc/HACKING similarity index 100% rename from reactos/media/doc/HACKING rename to media/doc/HACKING diff --git a/reactos/media/doc/INDEX b/media/doc/INDEX similarity index 100% rename from reactos/media/doc/INDEX rename to media/doc/INDEX diff --git a/reactos/media/doc/INTERNALS b/media/doc/INTERNALS similarity index 100% rename from reactos/media/doc/INTERNALS rename to media/doc/INTERNALS diff --git a/reactos/media/doc/LPC.txt b/media/doc/LPC.txt similarity index 100% rename from reactos/media/doc/LPC.txt rename to media/doc/LPC.txt diff --git a/reactos/media/doc/README.WINE b/media/doc/README.WINE similarity index 100% rename from reactos/media/doc/README.WINE rename to media/doc/README.WINE diff --git a/reactos/media/doc/apc b/media/doc/apc similarity index 100% rename from reactos/media/doc/apc rename to media/doc/apc diff --git a/reactos/media/doc/books.txt b/media/doc/books.txt similarity index 100% rename from reactos/media/doc/books.txt rename to media/doc/books.txt diff --git a/reactos/media/doc/irp cancel boilerplate.c b/media/doc/irp cancel boilerplate.c similarity index 100% rename from reactos/media/doc/irp cancel boilerplate.c rename to media/doc/irp cancel boilerplate.c diff --git a/reactos/media/doc/locks.txt b/media/doc/locks.txt similarity index 100% rename from reactos/media/doc/locks.txt rename to media/doc/locks.txt diff --git a/reactos/media/doc/news1 b/media/doc/news1 similarity index 100% rename from reactos/media/doc/news1 rename to media/doc/news1 diff --git a/reactos/media/doc/news2 b/media/doc/news2 similarity index 100% rename from reactos/media/doc/news2 rename to media/doc/news2 diff --git a/reactos/media/doc/notes b/media/doc/notes similarity index 100% rename from reactos/media/doc/notes rename to media/doc/notes diff --git a/reactos/media/doc/todo b/media/doc/todo similarity index 100% rename from reactos/media/doc/todo rename to media/doc/todo diff --git a/reactos/media/doc/win32k_refs.txt b/media/doc/win32k_refs.txt similarity index 100% rename from reactos/media/doc/win32k_refs.txt rename to media/doc/win32k_refs.txt diff --git a/reactos/media/doc/winsta and desktops.txt b/media/doc/winsta and desktops.txt similarity index 100% rename from reactos/media/doc/winsta and desktops.txt rename to media/doc/winsta and desktops.txt diff --git a/reactos/media/drivers/etc/KDBinit b/media/drivers/etc/KDBinit similarity index 100% rename from reactos/media/drivers/etc/KDBinit rename to media/drivers/etc/KDBinit diff --git a/reactos/media/drivers/etc/hosts b/media/drivers/etc/hosts similarity index 100% rename from reactos/media/drivers/etc/hosts rename to media/drivers/etc/hosts diff --git a/reactos/media/drivers/etc/services b/media/drivers/etc/services similarity index 100% rename from reactos/media/drivers/etc/services rename to media/drivers/etc/services diff --git a/reactos/media/fonts/CMakeLists.txt b/media/fonts/CMakeLists.txt similarity index 100% rename from reactos/media/fonts/CMakeLists.txt rename to media/fonts/CMakeLists.txt diff --git a/reactos/media/fonts/DejaVuSans-Bold.ttf b/media/fonts/DejaVuSans-Bold.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSans-Bold.ttf rename to media/fonts/DejaVuSans-Bold.ttf diff --git a/reactos/media/fonts/DejaVuSans-BoldOblique.ttf b/media/fonts/DejaVuSans-BoldOblique.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSans-BoldOblique.ttf rename to media/fonts/DejaVuSans-BoldOblique.ttf diff --git a/reactos/media/fonts/DejaVuSans-Oblique.ttf b/media/fonts/DejaVuSans-Oblique.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSans-Oblique.ttf rename to media/fonts/DejaVuSans-Oblique.ttf diff --git a/reactos/media/fonts/DejaVuSans.ttf b/media/fonts/DejaVuSans.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSans.ttf rename to media/fonts/DejaVuSans.ttf diff --git a/reactos/media/fonts/DejaVuSansMono-Bold.ttf b/media/fonts/DejaVuSansMono-Bold.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSansMono-Bold.ttf rename to media/fonts/DejaVuSansMono-Bold.ttf diff --git a/reactos/media/fonts/DejaVuSansMono-BoldOblique.ttf b/media/fonts/DejaVuSansMono-BoldOblique.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSansMono-BoldOblique.ttf rename to media/fonts/DejaVuSansMono-BoldOblique.ttf diff --git a/reactos/media/fonts/DejaVuSansMono-Oblique.ttf b/media/fonts/DejaVuSansMono-Oblique.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSansMono-Oblique.ttf rename to media/fonts/DejaVuSansMono-Oblique.ttf diff --git a/reactos/media/fonts/DejaVuSansMono.ttf b/media/fonts/DejaVuSansMono.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSansMono.ttf rename to media/fonts/DejaVuSansMono.ttf diff --git a/reactos/media/fonts/DejaVuSerif-Bold.ttf b/media/fonts/DejaVuSerif-Bold.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSerif-Bold.ttf rename to media/fonts/DejaVuSerif-Bold.ttf diff --git a/reactos/media/fonts/DejaVuSerif-BoldItalic.ttf b/media/fonts/DejaVuSerif-BoldItalic.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSerif-BoldItalic.ttf rename to media/fonts/DejaVuSerif-BoldItalic.ttf diff --git a/reactos/media/fonts/DejaVuSerif-Italic.ttf b/media/fonts/DejaVuSerif-Italic.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSerif-Italic.ttf rename to media/fonts/DejaVuSerif-Italic.ttf diff --git a/reactos/media/fonts/DejaVuSerif.ttf b/media/fonts/DejaVuSerif.ttf similarity index 100% rename from reactos/media/fonts/DejaVuSerif.ttf rename to media/fonts/DejaVuSerif.ttf diff --git a/reactos/media/fonts/FreeMono.ttf b/media/fonts/FreeMono.ttf similarity index 100% rename from reactos/media/fonts/FreeMono.ttf rename to media/fonts/FreeMono.ttf diff --git a/reactos/media/fonts/FreeMonoBold.ttf b/media/fonts/FreeMonoBold.ttf similarity index 100% rename from reactos/media/fonts/FreeMonoBold.ttf rename to media/fonts/FreeMonoBold.ttf diff --git a/reactos/media/fonts/FreeMonoBoldOblique.ttf b/media/fonts/FreeMonoBoldOblique.ttf similarity index 100% rename from reactos/media/fonts/FreeMonoBoldOblique.ttf rename to media/fonts/FreeMonoBoldOblique.ttf diff --git a/reactos/media/fonts/FreeMonoOblique.ttf b/media/fonts/FreeMonoOblique.ttf similarity index 100% rename from reactos/media/fonts/FreeMonoOblique.ttf rename to media/fonts/FreeMonoOblique.ttf diff --git a/reactos/media/fonts/LiberationMono-Bold.ttf b/media/fonts/LiberationMono-Bold.ttf similarity index 100% rename from reactos/media/fonts/LiberationMono-Bold.ttf rename to media/fonts/LiberationMono-Bold.ttf diff --git a/reactos/media/fonts/LiberationMono-BoldItalic.ttf b/media/fonts/LiberationMono-BoldItalic.ttf similarity index 100% rename from reactos/media/fonts/LiberationMono-BoldItalic.ttf rename to media/fonts/LiberationMono-BoldItalic.ttf diff --git a/reactos/media/fonts/LiberationMono-Italic.ttf b/media/fonts/LiberationMono-Italic.ttf similarity index 100% rename from reactos/media/fonts/LiberationMono-Italic.ttf rename to media/fonts/LiberationMono-Italic.ttf diff --git a/reactos/media/fonts/LiberationMono-Regular.ttf b/media/fonts/LiberationMono-Regular.ttf similarity index 100% rename from reactos/media/fonts/LiberationMono-Regular.ttf rename to media/fonts/LiberationMono-Regular.ttf diff --git a/reactos/media/fonts/LiberationSans-Bold.ttf b/media/fonts/LiberationSans-Bold.ttf similarity index 100% rename from reactos/media/fonts/LiberationSans-Bold.ttf rename to media/fonts/LiberationSans-Bold.ttf diff --git a/reactos/media/fonts/LiberationSans-BoldItalic.ttf b/media/fonts/LiberationSans-BoldItalic.ttf similarity index 100% rename from reactos/media/fonts/LiberationSans-BoldItalic.ttf rename to media/fonts/LiberationSans-BoldItalic.ttf diff --git a/reactos/media/fonts/LiberationSans-Italic.ttf b/media/fonts/LiberationSans-Italic.ttf similarity index 100% rename from reactos/media/fonts/LiberationSans-Italic.ttf rename to media/fonts/LiberationSans-Italic.ttf diff --git a/reactos/media/fonts/LiberationSans-Regular.ttf b/media/fonts/LiberationSans-Regular.ttf similarity index 100% rename from reactos/media/fonts/LiberationSans-Regular.ttf rename to media/fonts/LiberationSans-Regular.ttf diff --git a/reactos/media/fonts/LiberationSerif-Bold.ttf b/media/fonts/LiberationSerif-Bold.ttf similarity index 100% rename from reactos/media/fonts/LiberationSerif-Bold.ttf rename to media/fonts/LiberationSerif-Bold.ttf diff --git a/reactos/media/fonts/LiberationSerif-BoldItalic.ttf b/media/fonts/LiberationSerif-BoldItalic.ttf similarity index 100% rename from reactos/media/fonts/LiberationSerif-BoldItalic.ttf rename to media/fonts/LiberationSerif-BoldItalic.ttf diff --git a/reactos/media/fonts/LiberationSerif-Italic.ttf b/media/fonts/LiberationSerif-Italic.ttf similarity index 100% rename from reactos/media/fonts/LiberationSerif-Italic.ttf rename to media/fonts/LiberationSerif-Italic.ttf diff --git a/reactos/media/fonts/LiberationSerif-Regular.ttf b/media/fonts/LiberationSerif-Regular.ttf similarity index 100% rename from reactos/media/fonts/LiberationSerif-Regular.ttf rename to media/fonts/LiberationSerif-Regular.ttf diff --git a/reactos/media/fonts/Marlett.ttf b/media/fonts/Marlett.ttf similarity index 100% rename from reactos/media/fonts/Marlett.ttf rename to media/fonts/Marlett.ttf diff --git a/reactos/media/fonts/doc/DejaVu_AUTHORS.txt b/media/fonts/doc/DejaVu_AUTHORS.txt similarity index 100% rename from reactos/media/fonts/doc/DejaVu_AUTHORS.txt rename to media/fonts/doc/DejaVu_AUTHORS.txt diff --git a/reactos/media/fonts/doc/DejaVu_BUGS.txt b/media/fonts/doc/DejaVu_BUGS.txt similarity index 100% rename from reactos/media/fonts/doc/DejaVu_BUGS.txt rename to media/fonts/doc/DejaVu_BUGS.txt diff --git a/reactos/media/fonts/doc/DejaVu_LICENSE.txt b/media/fonts/doc/DejaVu_LICENSE.txt similarity index 100% rename from reactos/media/fonts/doc/DejaVu_LICENSE.txt rename to media/fonts/doc/DejaVu_LICENSE.txt diff --git a/reactos/media/fonts/doc/DejaVu_NEWS.txt b/media/fonts/doc/DejaVu_NEWS.txt similarity index 100% rename from reactos/media/fonts/doc/DejaVu_NEWS.txt rename to media/fonts/doc/DejaVu_NEWS.txt diff --git a/reactos/media/fonts/doc/DejaVu_README.txt b/media/fonts/doc/DejaVu_README.txt similarity index 100% rename from reactos/media/fonts/doc/DejaVu_README.txt rename to media/fonts/doc/DejaVu_README.txt diff --git a/reactos/media/fonts/doc/DejaVu_langcover.txt b/media/fonts/doc/DejaVu_langcover.txt similarity index 100% rename from reactos/media/fonts/doc/DejaVu_langcover.txt rename to media/fonts/doc/DejaVu_langcover.txt diff --git a/reactos/media/fonts/doc/DejaVu_status.txt b/media/fonts/doc/DejaVu_status.txt similarity index 100% rename from reactos/media/fonts/doc/DejaVu_status.txt rename to media/fonts/doc/DejaVu_status.txt diff --git a/reactos/media/fonts/doc/DejaVu_unicover.txt b/media/fonts/doc/DejaVu_unicover.txt similarity index 100% rename from reactos/media/fonts/doc/DejaVu_unicover.txt rename to media/fonts/doc/DejaVu_unicover.txt diff --git a/reactos/media/fonts/doc/FreeFont_AUTHORS.txt b/media/fonts/doc/FreeFont_AUTHORS.txt similarity index 100% rename from reactos/media/fonts/doc/FreeFont_AUTHORS.txt rename to media/fonts/doc/FreeFont_AUTHORS.txt diff --git a/reactos/media/fonts/doc/FreeFont_COPYING.txt b/media/fonts/doc/FreeFont_COPYING.txt similarity index 100% rename from reactos/media/fonts/doc/FreeFont_COPYING.txt rename to media/fonts/doc/FreeFont_COPYING.txt diff --git a/reactos/media/fonts/doc/FreeFont_CREDITS.txt b/media/fonts/doc/FreeFont_CREDITS.txt similarity index 100% rename from reactos/media/fonts/doc/FreeFont_CREDITS.txt rename to media/fonts/doc/FreeFont_CREDITS.txt diff --git a/reactos/media/fonts/doc/FreeFont_ChangeLog.txt b/media/fonts/doc/FreeFont_ChangeLog.txt similarity index 100% rename from reactos/media/fonts/doc/FreeFont_ChangeLog.txt rename to media/fonts/doc/FreeFont_ChangeLog.txt diff --git a/reactos/media/fonts/doc/FreeFont_readme.txt b/media/fonts/doc/FreeFont_readme.txt similarity index 100% rename from reactos/media/fonts/doc/FreeFont_readme.txt rename to media/fonts/doc/FreeFont_readme.txt diff --git a/reactos/media/fonts/doc/LICENSE_DejaVu.txt b/media/fonts/doc/LICENSE_DejaVu.txt similarity index 100% rename from reactos/media/fonts/doc/LICENSE_DejaVu.txt rename to media/fonts/doc/LICENSE_DejaVu.txt diff --git a/reactos/media/fonts/symbol.ttf b/media/fonts/symbol.ttf similarity index 100% rename from reactos/media/fonts/symbol.ttf rename to media/fonts/symbol.ttf diff --git a/reactos/media/fonts/tahoma.ttf b/media/fonts/tahoma.ttf similarity index 100% rename from reactos/media/fonts/tahoma.ttf rename to media/fonts/tahoma.ttf diff --git a/reactos/media/fonts/tahomabd.ttf b/media/fonts/tahomabd.ttf similarity index 100% rename from reactos/media/fonts/tahomabd.ttf rename to media/fonts/tahomabd.ttf diff --git a/reactos/media/graphics/app-rosdebug.svg b/media/graphics/app-rosdebug.svg similarity index 100% rename from reactos/media/graphics/app-rosdebug.svg rename to media/graphics/app-rosdebug.svg diff --git a/reactos/media/graphics/dialog-question.svg b/media/graphics/dialog-question.svg similarity index 100% rename from reactos/media/graphics/dialog-question.svg rename to media/graphics/dialog-question.svg diff --git a/reactos/media/graphics/record-app.svg b/media/graphics/record-app.svg similarity index 100% rename from reactos/media/graphics/record-app.svg rename to media/graphics/record-app.svg diff --git a/reactos/media/graphics/system-shutdown.svg b/media/graphics/system-shutdown.svg similarity index 100% rename from reactos/media/graphics/system-shutdown.svg rename to media/graphics/system-shutdown.svg diff --git a/reactos/media/inf/CMakeLists.txt b/media/inf/CMakeLists.txt similarity index 100% rename from reactos/media/inf/CMakeLists.txt rename to media/inf/CMakeLists.txt diff --git a/reactos/media/inf/NET_NIC.inf b/media/inf/NET_NIC.inf similarity index 100% rename from reactos/media/inf/NET_NIC.inf rename to media/inf/NET_NIC.inf diff --git a/reactos/media/inf/acpi.inf b/media/inf/acpi.inf similarity index 100% rename from reactos/media/inf/acpi.inf rename to media/inf/acpi.inf diff --git a/reactos/media/inf/audio.inf b/media/inf/audio.inf similarity index 100% rename from reactos/media/inf/audio.inf rename to media/inf/audio.inf diff --git a/reactos/media/inf/battery.inf b/media/inf/battery.inf similarity index 100% rename from reactos/media/inf/battery.inf rename to media/inf/battery.inf diff --git a/reactos/media/inf/bda.inf b/media/inf/bda.inf similarity index 100% rename from reactos/media/inf/bda.inf rename to media/inf/bda.inf diff --git a/reactos/media/inf/bth.inf b/media/inf/bth.inf similarity index 100% rename from reactos/media/inf/bth.inf rename to media/inf/bth.inf diff --git a/reactos/media/inf/cdrom.inf b/media/inf/cdrom.inf similarity index 100% rename from reactos/media/inf/cdrom.inf rename to media/inf/cdrom.inf diff --git a/reactos/media/inf/cpu.inf b/media/inf/cpu.inf similarity index 100% rename from reactos/media/inf/cpu.inf rename to media/inf/cpu.inf diff --git a/reactos/media/inf/defltws.inf b/media/inf/defltws.inf similarity index 100% rename from reactos/media/inf/defltws.inf rename to media/inf/defltws.inf diff --git a/reactos/media/inf/disk.inf b/media/inf/disk.inf similarity index 100% rename from reactos/media/inf/disk.inf rename to media/inf/disk.inf diff --git a/reactos/media/inf/display.inf b/media/inf/display.inf similarity index 100% rename from reactos/media/inf/display.inf rename to media/inf/display.inf diff --git a/reactos/media/inf/fdc.inf b/media/inf/fdc.inf similarity index 100% rename from reactos/media/inf/fdc.inf rename to media/inf/fdc.inf diff --git a/reactos/media/inf/font.inf b/media/inf/font.inf similarity index 100% rename from reactos/media/inf/font.inf rename to media/inf/font.inf diff --git a/reactos/media/inf/hal.inf b/media/inf/hal.inf similarity index 100% rename from reactos/media/inf/hal.inf rename to media/inf/hal.inf diff --git a/reactos/media/inf/hdc.inf b/media/inf/hdc.inf similarity index 100% rename from reactos/media/inf/hdc.inf rename to media/inf/hdc.inf diff --git a/reactos/media/inf/input.inf b/media/inf/input.inf similarity index 100% rename from reactos/media/inf/input.inf rename to media/inf/input.inf diff --git a/reactos/media/inf/intl.inf b/media/inf/intl.inf similarity index 100% rename from reactos/media/inf/intl.inf rename to media/inf/intl.inf diff --git a/reactos/media/inf/keyboard.inf b/media/inf/keyboard.inf similarity index 100% rename from reactos/media/inf/keyboard.inf rename to media/inf/keyboard.inf diff --git a/reactos/media/inf/ks.inf b/media/inf/ks.inf similarity index 100% rename from reactos/media/inf/ks.inf rename to media/inf/ks.inf diff --git a/reactos/media/inf/kscaptur.inf b/media/inf/kscaptur.inf similarity index 100% rename from reactos/media/inf/kscaptur.inf rename to media/inf/kscaptur.inf diff --git a/reactos/media/inf/layout.inf b/media/inf/layout.inf similarity index 100% rename from reactos/media/inf/layout.inf rename to media/inf/layout.inf diff --git a/reactos/media/inf/legcydrv.inf b/media/inf/legcydrv.inf similarity index 100% rename from reactos/media/inf/legcydrv.inf rename to media/inf/legcydrv.inf diff --git a/reactos/media/inf/machine.inf b/media/inf/machine.inf similarity index 100% rename from reactos/media/inf/machine.inf rename to media/inf/machine.inf diff --git a/reactos/media/inf/monitor.inf b/media/inf/monitor.inf similarity index 100% rename from reactos/media/inf/monitor.inf rename to media/inf/monitor.inf diff --git a/reactos/media/inf/msmouse.inf b/media/inf/msmouse.inf similarity index 100% rename from reactos/media/inf/msmouse.inf rename to media/inf/msmouse.inf diff --git a/reactos/media/inf/netamd.inf b/media/inf/netamd.inf similarity index 100% rename from reactos/media/inf/netamd.inf rename to media/inf/netamd.inf diff --git a/reactos/media/inf/netisa.inf b/media/inf/netisa.inf similarity index 100% rename from reactos/media/inf/netisa.inf rename to media/inf/netisa.inf diff --git a/reactos/media/inf/netrtpnt.inf b/media/inf/netrtpnt.inf similarity index 100% rename from reactos/media/inf/netrtpnt.inf rename to media/inf/netrtpnt.inf diff --git a/reactos/media/inf/nettcpip.inf b/media/inf/nettcpip.inf similarity index 100% rename from reactos/media/inf/nettcpip.inf rename to media/inf/nettcpip.inf diff --git a/reactos/media/inf/ports.inf b/media/inf/ports.inf similarity index 100% rename from reactos/media/inf/ports.inf rename to media/inf/ports.inf diff --git a/reactos/media/inf/scsi.inf b/media/inf/scsi.inf similarity index 100% rename from reactos/media/inf/scsi.inf rename to media/inf/scsi.inf diff --git a/reactos/media/inf/syssetup.inf b/media/inf/syssetup.inf similarity index 100% rename from reactos/media/inf/syssetup.inf rename to media/inf/syssetup.inf diff --git a/reactos/media/inf/syssetup.inf.tpl b/media/inf/syssetup.inf.tpl similarity index 100% rename from reactos/media/inf/syssetup.inf.tpl rename to media/inf/syssetup.inf.tpl diff --git a/reactos/media/inf/unknown.inf b/media/inf/unknown.inf similarity index 100% rename from reactos/media/inf/unknown.inf rename to media/inf/unknown.inf diff --git a/reactos/media/inf/usb.inf b/media/inf/usb.inf similarity index 100% rename from reactos/media/inf/usb.inf rename to media/inf/usb.inf diff --git a/reactos/media/inf/usbport.inf b/media/inf/usbport.inf similarity index 100% rename from reactos/media/inf/usbport.inf rename to media/inf/usbport.inf diff --git a/reactos/media/inf/usbstor.inf b/media/inf/usbstor.inf similarity index 100% rename from reactos/media/inf/usbstor.inf rename to media/inf/usbstor.inf diff --git a/reactos/media/inf/xboxdisp.inf b/media/inf/xboxdisp.inf similarity index 100% rename from reactos/media/inf/xboxdisp.inf rename to media/inf/xboxdisp.inf diff --git a/reactos/media/nls/CMakeLists.txt b/media/nls/CMakeLists.txt similarity index 100% rename from reactos/media/nls/CMakeLists.txt rename to media/nls/CMakeLists.txt diff --git a/reactos/media/nls/c_037.nls b/media/nls/c_037.nls similarity index 100% rename from reactos/media/nls/c_037.nls rename to media/nls/c_037.nls diff --git a/reactos/media/nls/c_10000.nls b/media/nls/c_10000.nls similarity index 100% rename from reactos/media/nls/c_10000.nls rename to media/nls/c_10000.nls diff --git a/reactos/media/nls/c_10006.nls b/media/nls/c_10006.nls similarity index 100% rename from reactos/media/nls/c_10006.nls rename to media/nls/c_10006.nls diff --git a/reactos/media/nls/c_10007.nls b/media/nls/c_10007.nls similarity index 100% rename from reactos/media/nls/c_10007.nls rename to media/nls/c_10007.nls diff --git a/reactos/media/nls/c_10029.nls b/media/nls/c_10029.nls similarity index 100% rename from reactos/media/nls/c_10029.nls rename to media/nls/c_10029.nls diff --git a/reactos/media/nls/c_1006.nls b/media/nls/c_1006.nls similarity index 100% rename from reactos/media/nls/c_1006.nls rename to media/nls/c_1006.nls diff --git a/reactos/media/nls/c_10079.nls b/media/nls/c_10079.nls similarity index 100% rename from reactos/media/nls/c_10079.nls rename to media/nls/c_10079.nls diff --git a/reactos/media/nls/c_10081.nls b/media/nls/c_10081.nls similarity index 100% rename from reactos/media/nls/c_10081.nls rename to media/nls/c_10081.nls diff --git a/reactos/media/nls/c_1026.nls b/media/nls/c_1026.nls similarity index 100% rename from reactos/media/nls/c_1026.nls rename to media/nls/c_1026.nls diff --git a/reactos/media/nls/c_1250.nls b/media/nls/c_1250.nls similarity index 100% rename from reactos/media/nls/c_1250.nls rename to media/nls/c_1250.nls diff --git a/reactos/media/nls/c_1251.nls b/media/nls/c_1251.nls similarity index 100% rename from reactos/media/nls/c_1251.nls rename to media/nls/c_1251.nls diff --git a/reactos/media/nls/c_1252.nls b/media/nls/c_1252.nls similarity index 100% rename from reactos/media/nls/c_1252.nls rename to media/nls/c_1252.nls diff --git a/reactos/media/nls/c_1253.nls b/media/nls/c_1253.nls similarity index 100% rename from reactos/media/nls/c_1253.nls rename to media/nls/c_1253.nls diff --git a/reactos/media/nls/c_1254.nls b/media/nls/c_1254.nls similarity index 100% rename from reactos/media/nls/c_1254.nls rename to media/nls/c_1254.nls diff --git a/reactos/media/nls/c_1255.nls b/media/nls/c_1255.nls similarity index 100% rename from reactos/media/nls/c_1255.nls rename to media/nls/c_1255.nls diff --git a/reactos/media/nls/c_1256.nls b/media/nls/c_1256.nls similarity index 100% rename from reactos/media/nls/c_1256.nls rename to media/nls/c_1256.nls diff --git a/reactos/media/nls/c_1257.nls b/media/nls/c_1257.nls similarity index 100% rename from reactos/media/nls/c_1257.nls rename to media/nls/c_1257.nls diff --git a/reactos/media/nls/c_1258.nls b/media/nls/c_1258.nls similarity index 100% rename from reactos/media/nls/c_1258.nls rename to media/nls/c_1258.nls diff --git a/reactos/media/nls/c_20866.nls b/media/nls/c_20866.nls similarity index 100% rename from reactos/media/nls/c_20866.nls rename to media/nls/c_20866.nls diff --git a/reactos/media/nls/c_21866.nls b/media/nls/c_21866.nls similarity index 100% rename from reactos/media/nls/c_21866.nls rename to media/nls/c_21866.nls diff --git a/reactos/media/nls/c_28591.nls b/media/nls/c_28591.nls similarity index 100% rename from reactos/media/nls/c_28591.nls rename to media/nls/c_28591.nls diff --git a/reactos/media/nls/c_28592.nls b/media/nls/c_28592.nls similarity index 100% rename from reactos/media/nls/c_28592.nls rename to media/nls/c_28592.nls diff --git a/reactos/media/nls/c_28593.nls b/media/nls/c_28593.nls similarity index 100% rename from reactos/media/nls/c_28593.nls rename to media/nls/c_28593.nls diff --git a/reactos/media/nls/c_28594.nls b/media/nls/c_28594.nls similarity index 100% rename from reactos/media/nls/c_28594.nls rename to media/nls/c_28594.nls diff --git a/reactos/media/nls/c_28595.nls b/media/nls/c_28595.nls similarity index 100% rename from reactos/media/nls/c_28595.nls rename to media/nls/c_28595.nls diff --git a/reactos/media/nls/c_28596.nls b/media/nls/c_28596.nls similarity index 100% rename from reactos/media/nls/c_28596.nls rename to media/nls/c_28596.nls diff --git a/reactos/media/nls/c_28597.nls b/media/nls/c_28597.nls similarity index 100% rename from reactos/media/nls/c_28597.nls rename to media/nls/c_28597.nls diff --git a/reactos/media/nls/c_28598.nls b/media/nls/c_28598.nls similarity index 100% rename from reactos/media/nls/c_28598.nls rename to media/nls/c_28598.nls diff --git a/reactos/media/nls/c_28599.nls b/media/nls/c_28599.nls similarity index 100% rename from reactos/media/nls/c_28599.nls rename to media/nls/c_28599.nls diff --git a/reactos/media/nls/c_28600.nls b/media/nls/c_28600.nls similarity index 100% rename from reactos/media/nls/c_28600.nls rename to media/nls/c_28600.nls diff --git a/reactos/media/nls/c_28603.nls b/media/nls/c_28603.nls similarity index 100% rename from reactos/media/nls/c_28603.nls rename to media/nls/c_28603.nls diff --git a/reactos/media/nls/c_28604.nls b/media/nls/c_28604.nls similarity index 100% rename from reactos/media/nls/c_28604.nls rename to media/nls/c_28604.nls diff --git a/reactos/media/nls/c_28605.nls b/media/nls/c_28605.nls similarity index 100% rename from reactos/media/nls/c_28605.nls rename to media/nls/c_28605.nls diff --git a/reactos/media/nls/c_28606.nls b/media/nls/c_28606.nls similarity index 100% rename from reactos/media/nls/c_28606.nls rename to media/nls/c_28606.nls diff --git a/reactos/media/nls/c_424.nls b/media/nls/c_424.nls similarity index 100% rename from reactos/media/nls/c_424.nls rename to media/nls/c_424.nls diff --git a/reactos/media/nls/c_437.nls b/media/nls/c_437.nls similarity index 100% rename from reactos/media/nls/c_437.nls rename to media/nls/c_437.nls diff --git a/reactos/media/nls/c_500.nls b/media/nls/c_500.nls similarity index 100% rename from reactos/media/nls/c_500.nls rename to media/nls/c_500.nls diff --git a/reactos/media/nls/c_737.nls b/media/nls/c_737.nls similarity index 100% rename from reactos/media/nls/c_737.nls rename to media/nls/c_737.nls diff --git a/reactos/media/nls/c_775.nls b/media/nls/c_775.nls similarity index 100% rename from reactos/media/nls/c_775.nls rename to media/nls/c_775.nls diff --git a/reactos/media/nls/c_850.nls b/media/nls/c_850.nls similarity index 100% rename from reactos/media/nls/c_850.nls rename to media/nls/c_850.nls diff --git a/reactos/media/nls/c_852.nls b/media/nls/c_852.nls similarity index 100% rename from reactos/media/nls/c_852.nls rename to media/nls/c_852.nls diff --git a/reactos/media/nls/c_855.nls b/media/nls/c_855.nls similarity index 100% rename from reactos/media/nls/c_855.nls rename to media/nls/c_855.nls diff --git a/reactos/media/nls/c_856.nls b/media/nls/c_856.nls similarity index 100% rename from reactos/media/nls/c_856.nls rename to media/nls/c_856.nls diff --git a/reactos/media/nls/c_857.nls b/media/nls/c_857.nls similarity index 100% rename from reactos/media/nls/c_857.nls rename to media/nls/c_857.nls diff --git a/reactos/media/nls/c_860.nls b/media/nls/c_860.nls similarity index 100% rename from reactos/media/nls/c_860.nls rename to media/nls/c_860.nls diff --git a/reactos/media/nls/c_861.nls b/media/nls/c_861.nls similarity index 100% rename from reactos/media/nls/c_861.nls rename to media/nls/c_861.nls diff --git a/reactos/media/nls/c_862.nls b/media/nls/c_862.nls similarity index 100% rename from reactos/media/nls/c_862.nls rename to media/nls/c_862.nls diff --git a/reactos/media/nls/c_863.nls b/media/nls/c_863.nls similarity index 100% rename from reactos/media/nls/c_863.nls rename to media/nls/c_863.nls diff --git a/reactos/media/nls/c_864.nls b/media/nls/c_864.nls similarity index 100% rename from reactos/media/nls/c_864.nls rename to media/nls/c_864.nls diff --git a/reactos/media/nls/c_865.nls b/media/nls/c_865.nls similarity index 100% rename from reactos/media/nls/c_865.nls rename to media/nls/c_865.nls diff --git a/reactos/media/nls/c_866.nls b/media/nls/c_866.nls similarity index 100% rename from reactos/media/nls/c_866.nls rename to media/nls/c_866.nls diff --git a/reactos/media/nls/c_869.nls b/media/nls/c_869.nls similarity index 100% rename from reactos/media/nls/c_869.nls rename to media/nls/c_869.nls diff --git a/reactos/media/nls/c_874.nls b/media/nls/c_874.nls similarity index 100% rename from reactos/media/nls/c_874.nls rename to media/nls/c_874.nls diff --git a/reactos/media/nls/c_875.nls b/media/nls/c_875.nls similarity index 100% rename from reactos/media/nls/c_875.nls rename to media/nls/c_875.nls diff --git a/reactos/media/nls/c_878.nls b/media/nls/c_878.nls similarity index 100% rename from reactos/media/nls/c_878.nls rename to media/nls/c_878.nls diff --git a/reactos/media/nls/c_932.nls b/media/nls/c_932.nls similarity index 100% rename from reactos/media/nls/c_932.nls rename to media/nls/c_932.nls diff --git a/reactos/media/nls/c_936.nls b/media/nls/c_936.nls similarity index 100% rename from reactos/media/nls/c_936.nls rename to media/nls/c_936.nls diff --git a/reactos/media/nls/c_949.nls b/media/nls/c_949.nls similarity index 100% rename from reactos/media/nls/c_949.nls rename to media/nls/c_949.nls diff --git a/reactos/media/nls/c_950.nls b/media/nls/c_950.nls similarity index 100% rename from reactos/media/nls/c_950.nls rename to media/nls/c_950.nls diff --git a/reactos/media/nls/l_intl.nls b/media/nls/l_intl.nls similarity index 100% rename from reactos/media/nls/l_intl.nls rename to media/nls/l_intl.nls diff --git a/reactos/media/sounds/ReactOS_LogOn.wav b/media/sounds/ReactOS_LogOn.wav similarity index 100% rename from reactos/media/sounds/ReactOS_LogOn.wav rename to media/sounds/ReactOS_LogOn.wav diff --git a/reactos/media/sounds/error.mp3 b/media/sounds/error.mp3 similarity index 100% rename from reactos/media/sounds/error.mp3 rename to media/sounds/error.mp3 diff --git a/reactos/media/sounds/notice.mp3 b/media/sounds/notice.mp3 similarity index 100% rename from reactos/media/sounds/notice.mp3 rename to media/sounds/notice.mp3 diff --git a/reactos/media/vgafonts/437-8x8.bin b/media/vgafonts/437-8x8.bin similarity index 100% rename from reactos/media/vgafonts/437-8x8.bin rename to media/vgafonts/437-8x8.bin diff --git a/reactos/media/vgafonts/737-8x8.bin b/media/vgafonts/737-8x8.bin similarity index 100% rename from reactos/media/vgafonts/737-8x8.bin rename to media/vgafonts/737-8x8.bin diff --git a/reactos/media/vgafonts/775-8x8.bin b/media/vgafonts/775-8x8.bin similarity index 100% rename from reactos/media/vgafonts/775-8x8.bin rename to media/vgafonts/775-8x8.bin diff --git a/reactos/media/vgafonts/850-8x8.bin b/media/vgafonts/850-8x8.bin similarity index 100% rename from reactos/media/vgafonts/850-8x8.bin rename to media/vgafonts/850-8x8.bin diff --git a/reactos/media/vgafonts/852-8x8.bin b/media/vgafonts/852-8x8.bin similarity index 100% rename from reactos/media/vgafonts/852-8x8.bin rename to media/vgafonts/852-8x8.bin diff --git a/reactos/media/vgafonts/865-8x8.bin b/media/vgafonts/865-8x8.bin similarity index 100% rename from reactos/media/vgafonts/865-8x8.bin rename to media/vgafonts/865-8x8.bin diff --git a/reactos/media/vgafonts/866-8x8.bin b/media/vgafonts/866-8x8.bin similarity index 100% rename from reactos/media/vgafonts/866-8x8.bin rename to media/vgafonts/866-8x8.bin diff --git a/reactos/media/vgafonts/932-8x8.bin b/media/vgafonts/932-8x8.bin similarity index 100% rename from reactos/media/vgafonts/932-8x8.bin rename to media/vgafonts/932-8x8.bin diff --git a/reactos/media/vgafonts/CMakeLists.txt b/media/vgafonts/CMakeLists.txt similarity index 100% rename from reactos/media/vgafonts/CMakeLists.txt rename to media/vgafonts/CMakeLists.txt diff --git a/reactos/media/wallpapers/wallpapers.txt b/media/wallpapers/wallpapers.txt similarity index 100% rename from reactos/media/wallpapers/wallpapers.txt rename to media/wallpapers/wallpapers.txt diff --git a/reactos/modules/CMakeLists.txt b/modules/CMakeLists.txt similarity index 100% rename from reactos/modules/CMakeLists.txt rename to modules/CMakeLists.txt diff --git a/reactos/ntoskrnl/CMakeLists.txt b/ntoskrnl/CMakeLists.txt similarity index 100% rename from reactos/ntoskrnl/CMakeLists.txt rename to ntoskrnl/CMakeLists.txt diff --git a/reactos/ntoskrnl/KrnlFun.c b/ntoskrnl/KrnlFun.c similarity index 100% rename from reactos/ntoskrnl/KrnlFun.c rename to ntoskrnl/KrnlFun.c diff --git a/reactos/ntoskrnl/cache/cachesub.c b/ntoskrnl/cache/cachesub.c similarity index 100% rename from reactos/ntoskrnl/cache/cachesub.c rename to ntoskrnl/cache/cachesub.c diff --git a/reactos/ntoskrnl/cache/copysup.c b/ntoskrnl/cache/copysup.c similarity index 100% rename from reactos/ntoskrnl/cache/copysup.c rename to ntoskrnl/cache/copysup.c diff --git a/reactos/ntoskrnl/cache/fssup.c b/ntoskrnl/cache/fssup.c similarity index 100% rename from reactos/ntoskrnl/cache/fssup.c rename to ntoskrnl/cache/fssup.c diff --git a/reactos/ntoskrnl/cache/lazyrite.c b/ntoskrnl/cache/lazyrite.c similarity index 100% rename from reactos/ntoskrnl/cache/lazyrite.c rename to ntoskrnl/cache/lazyrite.c diff --git a/reactos/ntoskrnl/cache/logsup.c b/ntoskrnl/cache/logsup.c similarity index 100% rename from reactos/ntoskrnl/cache/logsup.c rename to ntoskrnl/cache/logsup.c diff --git a/reactos/ntoskrnl/cache/mdlsup.c b/ntoskrnl/cache/mdlsup.c similarity index 100% rename from reactos/ntoskrnl/cache/mdlsup.c rename to ntoskrnl/cache/mdlsup.c diff --git a/reactos/ntoskrnl/cache/newcc.h b/ntoskrnl/cache/newcc.h similarity index 100% rename from reactos/ntoskrnl/cache/newcc.h rename to ntoskrnl/cache/newcc.h diff --git a/reactos/ntoskrnl/cache/pinsup.c b/ntoskrnl/cache/pinsup.c similarity index 100% rename from reactos/ntoskrnl/cache/pinsup.c rename to ntoskrnl/cache/pinsup.c diff --git a/reactos/ntoskrnl/cache/section/data.c b/ntoskrnl/cache/section/data.c similarity index 100% rename from reactos/ntoskrnl/cache/section/data.c rename to ntoskrnl/cache/section/data.c diff --git a/reactos/ntoskrnl/cache/section/fault.c b/ntoskrnl/cache/section/fault.c similarity index 100% rename from reactos/ntoskrnl/cache/section/fault.c rename to ntoskrnl/cache/section/fault.c diff --git a/reactos/ntoskrnl/cache/section/io.c b/ntoskrnl/cache/section/io.c similarity index 100% rename from reactos/ntoskrnl/cache/section/io.c rename to ntoskrnl/cache/section/io.c diff --git a/reactos/ntoskrnl/cache/section/newmm.h b/ntoskrnl/cache/section/newmm.h similarity index 100% rename from reactos/ntoskrnl/cache/section/newmm.h rename to ntoskrnl/cache/section/newmm.h diff --git a/reactos/ntoskrnl/cache/section/reqtools.c b/ntoskrnl/cache/section/reqtools.c similarity index 100% rename from reactos/ntoskrnl/cache/section/reqtools.c rename to ntoskrnl/cache/section/reqtools.c diff --git a/reactos/ntoskrnl/cache/section/sptab.c b/ntoskrnl/cache/section/sptab.c similarity index 100% rename from reactos/ntoskrnl/cache/section/sptab.c rename to ntoskrnl/cache/section/sptab.c diff --git a/reactos/ntoskrnl/cache/section/swapout.c b/ntoskrnl/cache/section/swapout.c similarity index 100% rename from reactos/ntoskrnl/cache/section/swapout.c rename to ntoskrnl/cache/section/swapout.c diff --git a/reactos/ntoskrnl/cc/cacheman.c b/ntoskrnl/cc/cacheman.c similarity index 100% rename from reactos/ntoskrnl/cc/cacheman.c rename to ntoskrnl/cc/cacheman.c diff --git a/reactos/ntoskrnl/cc/copy.c b/ntoskrnl/cc/copy.c similarity index 100% rename from reactos/ntoskrnl/cc/copy.c rename to ntoskrnl/cc/copy.c diff --git a/reactos/ntoskrnl/cc/fs.c b/ntoskrnl/cc/fs.c similarity index 100% rename from reactos/ntoskrnl/cc/fs.c rename to ntoskrnl/cc/fs.c diff --git a/reactos/ntoskrnl/cc/mdl.c b/ntoskrnl/cc/mdl.c similarity index 100% rename from reactos/ntoskrnl/cc/mdl.c rename to ntoskrnl/cc/mdl.c diff --git a/reactos/ntoskrnl/cc/pin.c b/ntoskrnl/cc/pin.c similarity index 100% rename from reactos/ntoskrnl/cc/pin.c rename to ntoskrnl/cc/pin.c diff --git a/reactos/ntoskrnl/cc/view.c b/ntoskrnl/cc/view.c similarity index 100% rename from reactos/ntoskrnl/cc/view.c rename to ntoskrnl/cc/view.c diff --git a/reactos/ntoskrnl/config/arm/cmhardwr.c b/ntoskrnl/config/arm/cmhardwr.c similarity index 100% rename from reactos/ntoskrnl/config/arm/cmhardwr.c rename to ntoskrnl/config/arm/cmhardwr.c diff --git a/reactos/ntoskrnl/config/cmalloc.c b/ntoskrnl/config/cmalloc.c similarity index 100% rename from reactos/ntoskrnl/config/cmalloc.c rename to ntoskrnl/config/cmalloc.c diff --git a/reactos/ntoskrnl/config/cmapi.c b/ntoskrnl/config/cmapi.c similarity index 100% rename from reactos/ntoskrnl/config/cmapi.c rename to ntoskrnl/config/cmapi.c diff --git a/reactos/ntoskrnl/config/cmboot.c b/ntoskrnl/config/cmboot.c similarity index 100% rename from reactos/ntoskrnl/config/cmboot.c rename to ntoskrnl/config/cmboot.c diff --git a/reactos/ntoskrnl/config/cmcheck.c b/ntoskrnl/config/cmcheck.c similarity index 100% rename from reactos/ntoskrnl/config/cmcheck.c rename to ntoskrnl/config/cmcheck.c diff --git a/reactos/ntoskrnl/config/cmconfig.c b/ntoskrnl/config/cmconfig.c similarity index 100% rename from reactos/ntoskrnl/config/cmconfig.c rename to ntoskrnl/config/cmconfig.c diff --git a/reactos/ntoskrnl/config/cmcontrl.c b/ntoskrnl/config/cmcontrl.c similarity index 100% rename from reactos/ntoskrnl/config/cmcontrl.c rename to ntoskrnl/config/cmcontrl.c diff --git a/reactos/ntoskrnl/config/cmdata.c b/ntoskrnl/config/cmdata.c similarity index 100% rename from reactos/ntoskrnl/config/cmdata.c rename to ntoskrnl/config/cmdata.c diff --git a/reactos/ntoskrnl/config/cmdelay.c b/ntoskrnl/config/cmdelay.c similarity index 100% rename from reactos/ntoskrnl/config/cmdelay.c rename to ntoskrnl/config/cmdelay.c diff --git a/reactos/ntoskrnl/config/cmhook.c b/ntoskrnl/config/cmhook.c similarity index 100% rename from reactos/ntoskrnl/config/cmhook.c rename to ntoskrnl/config/cmhook.c diff --git a/reactos/ntoskrnl/config/cmhvlist.c b/ntoskrnl/config/cmhvlist.c similarity index 100% rename from reactos/ntoskrnl/config/cmhvlist.c rename to ntoskrnl/config/cmhvlist.c diff --git a/reactos/ntoskrnl/config/cmindex.c b/ntoskrnl/config/cmindex.c similarity index 100% rename from reactos/ntoskrnl/config/cmindex.c rename to ntoskrnl/config/cmindex.c diff --git a/reactos/ntoskrnl/config/cminit.c b/ntoskrnl/config/cminit.c similarity index 100% rename from reactos/ntoskrnl/config/cminit.c rename to ntoskrnl/config/cminit.c diff --git a/reactos/ntoskrnl/config/cmkcbncb.c b/ntoskrnl/config/cmkcbncb.c similarity index 100% rename from reactos/ntoskrnl/config/cmkcbncb.c rename to ntoskrnl/config/cmkcbncb.c diff --git a/reactos/ntoskrnl/config/cmkeydel.c b/ntoskrnl/config/cmkeydel.c similarity index 100% rename from reactos/ntoskrnl/config/cmkeydel.c rename to ntoskrnl/config/cmkeydel.c diff --git a/reactos/ntoskrnl/config/cmlazy.c b/ntoskrnl/config/cmlazy.c similarity index 100% rename from reactos/ntoskrnl/config/cmlazy.c rename to ntoskrnl/config/cmlazy.c diff --git a/reactos/ntoskrnl/config/cmmapvw.c b/ntoskrnl/config/cmmapvw.c similarity index 100% rename from reactos/ntoskrnl/config/cmmapvw.c rename to ntoskrnl/config/cmmapvw.c diff --git a/reactos/ntoskrnl/config/cmname.c b/ntoskrnl/config/cmname.c similarity index 100% rename from reactos/ntoskrnl/config/cmname.c rename to ntoskrnl/config/cmname.c diff --git a/reactos/ntoskrnl/config/cmnotify.c b/ntoskrnl/config/cmnotify.c similarity index 100% rename from reactos/ntoskrnl/config/cmnotify.c rename to ntoskrnl/config/cmnotify.c diff --git a/reactos/ntoskrnl/config/cmparse.c b/ntoskrnl/config/cmparse.c similarity index 100% rename from reactos/ntoskrnl/config/cmparse.c rename to ntoskrnl/config/cmparse.c diff --git a/reactos/ntoskrnl/config/cmquota.c b/ntoskrnl/config/cmquota.c similarity index 100% rename from reactos/ntoskrnl/config/cmquota.c rename to ntoskrnl/config/cmquota.c diff --git a/reactos/ntoskrnl/config/cmse.c b/ntoskrnl/config/cmse.c similarity index 100% rename from reactos/ntoskrnl/config/cmse.c rename to ntoskrnl/config/cmse.c diff --git a/reactos/ntoskrnl/config/cmsecach.c b/ntoskrnl/config/cmsecach.c similarity index 100% rename from reactos/ntoskrnl/config/cmsecach.c rename to ntoskrnl/config/cmsecach.c diff --git a/reactos/ntoskrnl/config/cmsysini.c b/ntoskrnl/config/cmsysini.c similarity index 100% rename from reactos/ntoskrnl/config/cmsysini.c rename to ntoskrnl/config/cmsysini.c diff --git a/reactos/ntoskrnl/config/cmvalche.c b/ntoskrnl/config/cmvalche.c similarity index 100% rename from reactos/ntoskrnl/config/cmvalche.c rename to ntoskrnl/config/cmvalche.c diff --git a/reactos/ntoskrnl/config/cmvalue.c b/ntoskrnl/config/cmvalue.c similarity index 100% rename from reactos/ntoskrnl/config/cmvalue.c rename to ntoskrnl/config/cmvalue.c diff --git a/reactos/ntoskrnl/config/cmwraprs.c b/ntoskrnl/config/cmwraprs.c similarity index 100% rename from reactos/ntoskrnl/config/cmwraprs.c rename to ntoskrnl/config/cmwraprs.c diff --git a/reactos/ntoskrnl/config/i386/cmhardwr.c b/ntoskrnl/config/i386/cmhardwr.c similarity index 100% rename from reactos/ntoskrnl/config/i386/cmhardwr.c rename to ntoskrnl/config/i386/cmhardwr.c diff --git a/reactos/ntoskrnl/config/ntapi.c b/ntoskrnl/config/ntapi.c similarity index 100% rename from reactos/ntoskrnl/config/ntapi.c rename to ntoskrnl/config/ntapi.c diff --git a/reactos/ntoskrnl/config/powerpc/cmhardwr.c b/ntoskrnl/config/powerpc/cmhardwr.c similarity index 100% rename from reactos/ntoskrnl/config/powerpc/cmhardwr.c rename to ntoskrnl/config/powerpc/cmhardwr.c diff --git a/reactos/ntoskrnl/dbgk/dbgkobj.c b/ntoskrnl/dbgk/dbgkobj.c similarity index 100% rename from reactos/ntoskrnl/dbgk/dbgkobj.c rename to ntoskrnl/dbgk/dbgkobj.c diff --git a/reactos/ntoskrnl/dbgk/dbgkutil.c b/ntoskrnl/dbgk/dbgkutil.c similarity index 100% rename from reactos/ntoskrnl/dbgk/dbgkutil.c rename to ntoskrnl/dbgk/dbgkutil.c diff --git a/reactos/ntoskrnl/ex/atom.c b/ntoskrnl/ex/atom.c similarity index 100% rename from reactos/ntoskrnl/ex/atom.c rename to ntoskrnl/ex/atom.c diff --git a/reactos/ntoskrnl/ex/callback.c b/ntoskrnl/ex/callback.c similarity index 100% rename from reactos/ntoskrnl/ex/callback.c rename to ntoskrnl/ex/callback.c diff --git a/reactos/ntoskrnl/ex/dbgctrl.c b/ntoskrnl/ex/dbgctrl.c similarity index 100% rename from reactos/ntoskrnl/ex/dbgctrl.c rename to ntoskrnl/ex/dbgctrl.c diff --git a/reactos/ntoskrnl/ex/efi.c b/ntoskrnl/ex/efi.c similarity index 100% rename from reactos/ntoskrnl/ex/efi.c rename to ntoskrnl/ex/efi.c diff --git a/reactos/ntoskrnl/ex/event.c b/ntoskrnl/ex/event.c similarity index 100% rename from reactos/ntoskrnl/ex/event.c rename to ntoskrnl/ex/event.c diff --git a/reactos/ntoskrnl/ex/evtpair.c b/ntoskrnl/ex/evtpair.c similarity index 100% rename from reactos/ntoskrnl/ex/evtpair.c rename to ntoskrnl/ex/evtpair.c diff --git a/reactos/ntoskrnl/ex/exintrin.c b/ntoskrnl/ex/exintrin.c similarity index 100% rename from reactos/ntoskrnl/ex/exintrin.c rename to ntoskrnl/ex/exintrin.c diff --git a/reactos/ntoskrnl/ex/fmutex.c b/ntoskrnl/ex/fmutex.c similarity index 100% rename from reactos/ntoskrnl/ex/fmutex.c rename to ntoskrnl/ex/fmutex.c diff --git a/reactos/ntoskrnl/ex/handle.c b/ntoskrnl/ex/handle.c similarity index 100% rename from reactos/ntoskrnl/ex/handle.c rename to ntoskrnl/ex/handle.c diff --git a/reactos/ntoskrnl/ex/harderr.c b/ntoskrnl/ex/harderr.c similarity index 100% rename from reactos/ntoskrnl/ex/harderr.c rename to ntoskrnl/ex/harderr.c diff --git a/reactos/ntoskrnl/ex/hdlsterm.c b/ntoskrnl/ex/hdlsterm.c similarity index 100% rename from reactos/ntoskrnl/ex/hdlsterm.c rename to ntoskrnl/ex/hdlsterm.c diff --git a/reactos/ntoskrnl/ex/i386/fastinterlck_asm.S b/ntoskrnl/ex/i386/fastinterlck_asm.S similarity index 100% rename from reactos/ntoskrnl/ex/i386/fastinterlck_asm.S rename to ntoskrnl/ex/i386/fastinterlck_asm.S diff --git a/reactos/ntoskrnl/ex/i386/ioport.S b/ntoskrnl/ex/i386/ioport.S similarity index 100% rename from reactos/ntoskrnl/ex/i386/ioport.S rename to ntoskrnl/ex/i386/ioport.S diff --git a/reactos/ntoskrnl/ex/init.c b/ntoskrnl/ex/init.c similarity index 100% rename from reactos/ntoskrnl/ex/init.c rename to ntoskrnl/ex/init.c diff --git a/reactos/ntoskrnl/ex/interlocked.c b/ntoskrnl/ex/interlocked.c similarity index 100% rename from reactos/ntoskrnl/ex/interlocked.c rename to ntoskrnl/ex/interlocked.c diff --git a/reactos/ntoskrnl/ex/keyedevt.c b/ntoskrnl/ex/keyedevt.c similarity index 100% rename from reactos/ntoskrnl/ex/keyedevt.c rename to ntoskrnl/ex/keyedevt.c diff --git a/reactos/ntoskrnl/ex/locale.c b/ntoskrnl/ex/locale.c similarity index 100% rename from reactos/ntoskrnl/ex/locale.c rename to ntoskrnl/ex/locale.c diff --git a/reactos/ntoskrnl/ex/lookas.c b/ntoskrnl/ex/lookas.c similarity index 100% rename from reactos/ntoskrnl/ex/lookas.c rename to ntoskrnl/ex/lookas.c diff --git a/reactos/ntoskrnl/ex/mutant.c b/ntoskrnl/ex/mutant.c similarity index 100% rename from reactos/ntoskrnl/ex/mutant.c rename to ntoskrnl/ex/mutant.c diff --git a/reactos/ntoskrnl/ex/powerpc/ioport.s b/ntoskrnl/ex/powerpc/ioport.s similarity index 100% rename from reactos/ntoskrnl/ex/powerpc/ioport.s rename to ntoskrnl/ex/powerpc/ioport.s diff --git a/reactos/ntoskrnl/ex/profile.c b/ntoskrnl/ex/profile.c similarity index 100% rename from reactos/ntoskrnl/ex/profile.c rename to ntoskrnl/ex/profile.c diff --git a/reactos/ntoskrnl/ex/pushlock.c b/ntoskrnl/ex/pushlock.c similarity index 100% rename from reactos/ntoskrnl/ex/pushlock.c rename to ntoskrnl/ex/pushlock.c diff --git a/reactos/ntoskrnl/ex/resource.c b/ntoskrnl/ex/resource.c similarity index 100% rename from reactos/ntoskrnl/ex/resource.c rename to ntoskrnl/ex/resource.c diff --git a/reactos/ntoskrnl/ex/rundown.c b/ntoskrnl/ex/rundown.c similarity index 100% rename from reactos/ntoskrnl/ex/rundown.c rename to ntoskrnl/ex/rundown.c diff --git a/reactos/ntoskrnl/ex/sem.c b/ntoskrnl/ex/sem.c similarity index 100% rename from reactos/ntoskrnl/ex/sem.c rename to ntoskrnl/ex/sem.c diff --git a/reactos/ntoskrnl/ex/shutdown.c b/ntoskrnl/ex/shutdown.c similarity index 100% rename from reactos/ntoskrnl/ex/shutdown.c rename to ntoskrnl/ex/shutdown.c diff --git a/reactos/ntoskrnl/ex/sysinfo.c b/ntoskrnl/ex/sysinfo.c similarity index 100% rename from reactos/ntoskrnl/ex/sysinfo.c rename to ntoskrnl/ex/sysinfo.c diff --git a/reactos/ntoskrnl/ex/time.c b/ntoskrnl/ex/time.c similarity index 100% rename from reactos/ntoskrnl/ex/time.c rename to ntoskrnl/ex/time.c diff --git a/reactos/ntoskrnl/ex/timer.c b/ntoskrnl/ex/timer.c similarity index 100% rename from reactos/ntoskrnl/ex/timer.c rename to ntoskrnl/ex/timer.c diff --git a/reactos/ntoskrnl/ex/uuid.c b/ntoskrnl/ex/uuid.c similarity index 100% rename from reactos/ntoskrnl/ex/uuid.c rename to ntoskrnl/ex/uuid.c diff --git a/reactos/ntoskrnl/ex/win32k.c b/ntoskrnl/ex/win32k.c similarity index 100% rename from reactos/ntoskrnl/ex/win32k.c rename to ntoskrnl/ex/win32k.c diff --git a/reactos/ntoskrnl/ex/work.c b/ntoskrnl/ex/work.c similarity index 100% rename from reactos/ntoskrnl/ex/work.c rename to ntoskrnl/ex/work.c diff --git a/reactos/ntoskrnl/ex/xipdisp.c b/ntoskrnl/ex/xipdisp.c similarity index 100% rename from reactos/ntoskrnl/ex/xipdisp.c rename to ntoskrnl/ex/xipdisp.c diff --git a/reactos/ntoskrnl/ex/zone.c b/ntoskrnl/ex/zone.c similarity index 100% rename from reactos/ntoskrnl/ex/zone.c rename to ntoskrnl/ex/zone.c diff --git a/reactos/ntoskrnl/ex/zw.S b/ntoskrnl/ex/zw.S similarity index 100% rename from reactos/ntoskrnl/ex/zw.S rename to ntoskrnl/ex/zw.S diff --git a/reactos/ntoskrnl/fsrtl/dbcsname.c b/ntoskrnl/fsrtl/dbcsname.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/dbcsname.c rename to ntoskrnl/fsrtl/dbcsname.c diff --git a/reactos/ntoskrnl/fsrtl/fastio.c b/ntoskrnl/fsrtl/fastio.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/fastio.c rename to ntoskrnl/fsrtl/fastio.c diff --git a/reactos/ntoskrnl/fsrtl/faulttol.c b/ntoskrnl/fsrtl/faulttol.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/faulttol.c rename to ntoskrnl/fsrtl/faulttol.c diff --git a/reactos/ntoskrnl/fsrtl/filelock.c b/ntoskrnl/fsrtl/filelock.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/filelock.c rename to ntoskrnl/fsrtl/filelock.c diff --git a/reactos/ntoskrnl/fsrtl/filter.c b/ntoskrnl/fsrtl/filter.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/filter.c rename to ntoskrnl/fsrtl/filter.c diff --git a/reactos/ntoskrnl/fsrtl/filtrctx.c b/ntoskrnl/fsrtl/filtrctx.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/filtrctx.c rename to ntoskrnl/fsrtl/filtrctx.c diff --git a/reactos/ntoskrnl/fsrtl/fsfilter.c b/ntoskrnl/fsrtl/fsfilter.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/fsfilter.c rename to ntoskrnl/fsrtl/fsfilter.c diff --git a/reactos/ntoskrnl/fsrtl/fsrtlpc.c b/ntoskrnl/fsrtl/fsrtlpc.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/fsrtlpc.c rename to ntoskrnl/fsrtl/fsrtlpc.c diff --git a/reactos/ntoskrnl/fsrtl/largemcb.c b/ntoskrnl/fsrtl/largemcb.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/largemcb.c rename to ntoskrnl/fsrtl/largemcb.c diff --git a/reactos/ntoskrnl/fsrtl/mcb.c b/ntoskrnl/fsrtl/mcb.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/mcb.c rename to ntoskrnl/fsrtl/mcb.c diff --git a/reactos/ntoskrnl/fsrtl/name.c b/ntoskrnl/fsrtl/name.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/name.c rename to ntoskrnl/fsrtl/name.c diff --git a/reactos/ntoskrnl/fsrtl/notify.c b/ntoskrnl/fsrtl/notify.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/notify.c rename to ntoskrnl/fsrtl/notify.c diff --git a/reactos/ntoskrnl/fsrtl/oplock.c b/ntoskrnl/fsrtl/oplock.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/oplock.c rename to ntoskrnl/fsrtl/oplock.c diff --git a/reactos/ntoskrnl/fsrtl/pnp.c b/ntoskrnl/fsrtl/pnp.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/pnp.c rename to ntoskrnl/fsrtl/pnp.c diff --git a/reactos/ntoskrnl/fsrtl/stackovf.c b/ntoskrnl/fsrtl/stackovf.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/stackovf.c rename to ntoskrnl/fsrtl/stackovf.c diff --git a/reactos/ntoskrnl/fsrtl/tunnel.c b/ntoskrnl/fsrtl/tunnel.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/tunnel.c rename to ntoskrnl/fsrtl/tunnel.c diff --git a/reactos/ntoskrnl/fsrtl/unc.c b/ntoskrnl/fsrtl/unc.c similarity index 100% rename from reactos/ntoskrnl/fsrtl/unc.c rename to ntoskrnl/fsrtl/unc.c diff --git a/reactos/ntoskrnl/fstub/disksup.c b/ntoskrnl/fstub/disksup.c similarity index 100% rename from reactos/ntoskrnl/fstub/disksup.c rename to ntoskrnl/fstub/disksup.c diff --git a/reactos/ntoskrnl/fstub/fstubex.c b/ntoskrnl/fstub/fstubex.c similarity index 100% rename from reactos/ntoskrnl/fstub/fstubex.c rename to ntoskrnl/fstub/fstubex.c diff --git a/reactos/ntoskrnl/fstub/halstub.c b/ntoskrnl/fstub/halstub.c similarity index 100% rename from reactos/ntoskrnl/fstub/halstub.c rename to ntoskrnl/fstub/halstub.c diff --git a/reactos/ntoskrnl/fstub/translate.c b/ntoskrnl/fstub/translate.c similarity index 100% rename from reactos/ntoskrnl/fstub/translate.c rename to ntoskrnl/fstub/translate.c diff --git a/reactos/ntoskrnl/inbv/inbv.c b/ntoskrnl/inbv/inbv.c similarity index 100% rename from reactos/ntoskrnl/inbv/inbv.c rename to ntoskrnl/inbv/inbv.c diff --git a/reactos/ntoskrnl/inbv/inbvport.c b/ntoskrnl/inbv/inbvport.c similarity index 100% rename from reactos/ntoskrnl/inbv/inbvport.c rename to ntoskrnl/inbv/inbvport.c diff --git a/reactos/ntoskrnl/inbv/logo/1.bmp b/ntoskrnl/inbv/logo/1.bmp similarity index 100% rename from reactos/ntoskrnl/inbv/logo/1.bmp rename to ntoskrnl/inbv/logo/1.bmp diff --git a/reactos/ntoskrnl/inbv/logo/14.bmp b/ntoskrnl/inbv/logo/14.bmp similarity index 100% rename from reactos/ntoskrnl/inbv/logo/14.bmp rename to ntoskrnl/inbv/logo/14.bmp diff --git a/reactos/ntoskrnl/inbv/logo/15.bmp b/ntoskrnl/inbv/logo/15.bmp similarity index 100% rename from reactos/ntoskrnl/inbv/logo/15.bmp rename to ntoskrnl/inbv/logo/15.bmp diff --git a/reactos/ntoskrnl/inbv/logo/2.bmp b/ntoskrnl/inbv/logo/2.bmp similarity index 100% rename from reactos/ntoskrnl/inbv/logo/2.bmp rename to ntoskrnl/inbv/logo/2.bmp diff --git a/reactos/ntoskrnl/inbv/logo/3.bmp b/ntoskrnl/inbv/logo/3.bmp similarity index 100% rename from reactos/ntoskrnl/inbv/logo/3.bmp rename to ntoskrnl/inbv/logo/3.bmp diff --git a/reactos/ntoskrnl/inbv/logo/4.bmp b/ntoskrnl/inbv/logo/4.bmp similarity index 100% rename from reactos/ntoskrnl/inbv/logo/4.bmp rename to ntoskrnl/inbv/logo/4.bmp diff --git a/reactos/ntoskrnl/inbv/logo/5.bmp b/ntoskrnl/inbv/logo/5.bmp similarity index 100% rename from reactos/ntoskrnl/inbv/logo/5.bmp rename to ntoskrnl/inbv/logo/5.bmp diff --git a/reactos/ntoskrnl/inbv/logo/6.bmp b/ntoskrnl/inbv/logo/6.bmp similarity index 100% rename from reactos/ntoskrnl/inbv/logo/6.bmp rename to ntoskrnl/inbv/logo/6.bmp diff --git a/reactos/ntoskrnl/inbv/logo/7.bmp b/ntoskrnl/inbv/logo/7.bmp similarity index 100% rename from reactos/ntoskrnl/inbv/logo/7.bmp rename to ntoskrnl/inbv/logo/7.bmp diff --git a/reactos/ntoskrnl/inbv/logo/8.bmp b/ntoskrnl/inbv/logo/8.bmp similarity index 100% rename from reactos/ntoskrnl/inbv/logo/8.bmp rename to ntoskrnl/inbv/logo/8.bmp diff --git a/reactos/ntoskrnl/include/config.h b/ntoskrnl/include/config.h similarity index 100% rename from reactos/ntoskrnl/include/config.h rename to ntoskrnl/include/config.h diff --git a/reactos/ntoskrnl/include/internal/amd64/asmmacro.S b/ntoskrnl/include/internal/amd64/asmmacro.S similarity index 100% rename from reactos/ntoskrnl/include/internal/amd64/asmmacro.S rename to ntoskrnl/include/internal/amd64/asmmacro.S diff --git a/reactos/ntoskrnl/include/internal/amd64/intrin_i.h b/ntoskrnl/include/internal/amd64/intrin_i.h similarity index 100% rename from reactos/ntoskrnl/include/internal/amd64/intrin_i.h rename to ntoskrnl/include/internal/amd64/intrin_i.h diff --git a/reactos/ntoskrnl/include/internal/amd64/ke.h b/ntoskrnl/include/internal/amd64/ke.h similarity index 100% rename from reactos/ntoskrnl/include/internal/amd64/ke.h rename to ntoskrnl/include/internal/amd64/ke.h diff --git a/reactos/ntoskrnl/include/internal/amd64/mm.h b/ntoskrnl/include/internal/amd64/mm.h similarity index 100% rename from reactos/ntoskrnl/include/internal/amd64/mm.h rename to ntoskrnl/include/internal/amd64/mm.h diff --git a/reactos/ntoskrnl/include/internal/arch/intrin_i.h b/ntoskrnl/include/internal/arch/intrin_i.h similarity index 100% rename from reactos/ntoskrnl/include/internal/arch/intrin_i.h rename to ntoskrnl/include/internal/arch/intrin_i.h diff --git a/reactos/ntoskrnl/include/internal/arch/ke.h b/ntoskrnl/include/internal/arch/ke.h similarity index 100% rename from reactos/ntoskrnl/include/internal/arch/ke.h rename to ntoskrnl/include/internal/arch/ke.h diff --git a/reactos/ntoskrnl/include/internal/arch/mm.h b/ntoskrnl/include/internal/arch/mm.h similarity index 100% rename from reactos/ntoskrnl/include/internal/arch/mm.h rename to ntoskrnl/include/internal/arch/mm.h diff --git a/reactos/ntoskrnl/include/internal/arm/asmmacro.S b/ntoskrnl/include/internal/arm/asmmacro.S similarity index 100% rename from reactos/ntoskrnl/include/internal/arm/asmmacro.S rename to ntoskrnl/include/internal/arm/asmmacro.S diff --git a/reactos/ntoskrnl/include/internal/arm/intrin_i.h b/ntoskrnl/include/internal/arm/intrin_i.h similarity index 100% rename from reactos/ntoskrnl/include/internal/arm/intrin_i.h rename to ntoskrnl/include/internal/arm/intrin_i.h diff --git a/reactos/ntoskrnl/include/internal/arm/ke.h b/ntoskrnl/include/internal/arm/ke.h similarity index 100% rename from reactos/ntoskrnl/include/internal/arm/ke.h rename to ntoskrnl/include/internal/arm/ke.h diff --git a/reactos/ntoskrnl/include/internal/arm/ksarm.h b/ntoskrnl/include/internal/arm/ksarm.h similarity index 100% rename from reactos/ntoskrnl/include/internal/arm/ksarm.h rename to ntoskrnl/include/internal/arm/ksarm.h diff --git a/reactos/ntoskrnl/include/internal/arm/kxarm.h b/ntoskrnl/include/internal/arm/kxarm.h similarity index 100% rename from reactos/ntoskrnl/include/internal/arm/kxarm.h rename to ntoskrnl/include/internal/arm/kxarm.h diff --git a/reactos/ntoskrnl/include/internal/arm/mm.h b/ntoskrnl/include/internal/arm/mm.h similarity index 100% rename from reactos/ntoskrnl/include/internal/arm/mm.h rename to ntoskrnl/include/internal/arm/mm.h diff --git a/reactos/ntoskrnl/include/internal/cc.h b/ntoskrnl/include/internal/cc.h similarity index 100% rename from reactos/ntoskrnl/include/internal/cc.h rename to ntoskrnl/include/internal/cc.h diff --git a/reactos/ntoskrnl/include/internal/cm.h b/ntoskrnl/include/internal/cm.h similarity index 100% rename from reactos/ntoskrnl/include/internal/cm.h rename to ntoskrnl/include/internal/cm.h diff --git a/reactos/ntoskrnl/include/internal/cm_x.h b/ntoskrnl/include/internal/cm_x.h similarity index 100% rename from reactos/ntoskrnl/include/internal/cm_x.h rename to ntoskrnl/include/internal/cm_x.h diff --git a/reactos/ntoskrnl/include/internal/dbgk.h b/ntoskrnl/include/internal/dbgk.h similarity index 100% rename from reactos/ntoskrnl/include/internal/dbgk.h rename to ntoskrnl/include/internal/dbgk.h diff --git a/reactos/ntoskrnl/include/internal/ex.h b/ntoskrnl/include/internal/ex.h similarity index 100% rename from reactos/ntoskrnl/include/internal/ex.h rename to ntoskrnl/include/internal/ex.h diff --git a/reactos/ntoskrnl/include/internal/fsrtl.h b/ntoskrnl/include/internal/fsrtl.h similarity index 100% rename from reactos/ntoskrnl/include/internal/fsrtl.h rename to ntoskrnl/include/internal/fsrtl.h diff --git a/reactos/ntoskrnl/include/internal/hal.h b/ntoskrnl/include/internal/hal.h similarity index 100% rename from reactos/ntoskrnl/include/internal/hal.h rename to ntoskrnl/include/internal/hal.h diff --git a/reactos/ntoskrnl/include/internal/hdl.h b/ntoskrnl/include/internal/hdl.h similarity index 100% rename from reactos/ntoskrnl/include/internal/hdl.h rename to ntoskrnl/include/internal/hdl.h diff --git a/reactos/ntoskrnl/include/internal/i386/asmmacro.S b/ntoskrnl/include/internal/i386/asmmacro.S similarity index 100% rename from reactos/ntoskrnl/include/internal/i386/asmmacro.S rename to ntoskrnl/include/internal/i386/asmmacro.S diff --git a/reactos/ntoskrnl/include/internal/i386/callconv.s b/ntoskrnl/include/internal/i386/callconv.s similarity index 100% rename from reactos/ntoskrnl/include/internal/i386/callconv.s rename to ntoskrnl/include/internal/i386/callconv.s diff --git a/reactos/ntoskrnl/include/internal/i386/intrin_i.h b/ntoskrnl/include/internal/i386/intrin_i.h similarity index 100% rename from reactos/ntoskrnl/include/internal/i386/intrin_i.h rename to ntoskrnl/include/internal/i386/intrin_i.h diff --git a/reactos/ntoskrnl/include/internal/i386/ke.h b/ntoskrnl/include/internal/i386/ke.h similarity index 100% rename from reactos/ntoskrnl/include/internal/i386/ke.h rename to ntoskrnl/include/internal/i386/ke.h diff --git a/reactos/ntoskrnl/include/internal/i386/mm.h b/ntoskrnl/include/internal/i386/mm.h similarity index 100% rename from reactos/ntoskrnl/include/internal/i386/mm.h rename to ntoskrnl/include/internal/i386/mm.h diff --git a/reactos/ntoskrnl/include/internal/i386/trap_x.h b/ntoskrnl/include/internal/i386/trap_x.h similarity index 100% rename from reactos/ntoskrnl/include/internal/i386/trap_x.h rename to ntoskrnl/include/internal/i386/trap_x.h diff --git a/reactos/ntoskrnl/include/internal/inbv.h b/ntoskrnl/include/internal/inbv.h similarity index 100% rename from reactos/ntoskrnl/include/internal/inbv.h rename to ntoskrnl/include/internal/inbv.h diff --git a/reactos/ntoskrnl/include/internal/io.h b/ntoskrnl/include/internal/io.h similarity index 100% rename from reactos/ntoskrnl/include/internal/io.h rename to ntoskrnl/include/internal/io.h diff --git a/reactos/ntoskrnl/include/internal/io_i.h b/ntoskrnl/include/internal/io_i.h similarity index 100% rename from reactos/ntoskrnl/include/internal/io_i.h rename to ntoskrnl/include/internal/io_i.h diff --git a/reactos/ntoskrnl/include/internal/io_x.h b/ntoskrnl/include/internal/io_x.h similarity index 100% rename from reactos/ntoskrnl/include/internal/io_x.h rename to ntoskrnl/include/internal/io_x.h diff --git a/reactos/ntoskrnl/include/internal/kd.h b/ntoskrnl/include/internal/kd.h similarity index 100% rename from reactos/ntoskrnl/include/internal/kd.h rename to ntoskrnl/include/internal/kd.h diff --git a/reactos/ntoskrnl/include/internal/kd64.h b/ntoskrnl/include/internal/kd64.h similarity index 100% rename from reactos/ntoskrnl/include/internal/kd64.h rename to ntoskrnl/include/internal/kd64.h diff --git a/reactos/ntoskrnl/include/internal/ke.h b/ntoskrnl/include/internal/ke.h similarity index 100% rename from reactos/ntoskrnl/include/internal/ke.h rename to ntoskrnl/include/internal/ke.h diff --git a/reactos/ntoskrnl/include/internal/ke_x.h b/ntoskrnl/include/internal/ke_x.h similarity index 100% rename from reactos/ntoskrnl/include/internal/ke_x.h rename to ntoskrnl/include/internal/ke_x.h diff --git a/reactos/ntoskrnl/include/internal/ldr.h b/ntoskrnl/include/internal/ldr.h similarity index 100% rename from reactos/ntoskrnl/include/internal/ldr.h rename to ntoskrnl/include/internal/ldr.h diff --git a/reactos/ntoskrnl/include/internal/lpc.h b/ntoskrnl/include/internal/lpc.h similarity index 100% rename from reactos/ntoskrnl/include/internal/lpc.h rename to ntoskrnl/include/internal/lpc.h diff --git a/reactos/ntoskrnl/include/internal/lpc_x.h b/ntoskrnl/include/internal/lpc_x.h similarity index 100% rename from reactos/ntoskrnl/include/internal/lpc_x.h rename to ntoskrnl/include/internal/lpc_x.h diff --git a/reactos/ntoskrnl/include/internal/mm.h b/ntoskrnl/include/internal/mm.h similarity index 100% rename from reactos/ntoskrnl/include/internal/mm.h rename to ntoskrnl/include/internal/mm.h diff --git a/reactos/ntoskrnl/include/internal/napi.h b/ntoskrnl/include/internal/napi.h similarity index 100% rename from reactos/ntoskrnl/include/internal/napi.h rename to ntoskrnl/include/internal/napi.h diff --git a/reactos/ntoskrnl/include/internal/ntoskrnl.h b/ntoskrnl/include/internal/ntoskrnl.h similarity index 100% rename from reactos/ntoskrnl/include/internal/ntoskrnl.h rename to ntoskrnl/include/internal/ntoskrnl.h diff --git a/reactos/ntoskrnl/include/internal/ob.h b/ntoskrnl/include/internal/ob.h similarity index 100% rename from reactos/ntoskrnl/include/internal/ob.h rename to ntoskrnl/include/internal/ob.h diff --git a/reactos/ntoskrnl/include/internal/ob_x.h b/ntoskrnl/include/internal/ob_x.h similarity index 100% rename from reactos/ntoskrnl/include/internal/ob_x.h rename to ntoskrnl/include/internal/ob_x.h diff --git a/reactos/ntoskrnl/include/internal/po.h b/ntoskrnl/include/internal/po.h similarity index 100% rename from reactos/ntoskrnl/include/internal/po.h rename to ntoskrnl/include/internal/po.h diff --git a/reactos/ntoskrnl/include/internal/powerpc/intrin_i.h b/ntoskrnl/include/internal/powerpc/intrin_i.h similarity index 100% rename from reactos/ntoskrnl/include/internal/powerpc/intrin_i.h rename to ntoskrnl/include/internal/powerpc/intrin_i.h diff --git a/reactos/ntoskrnl/include/internal/powerpc/ke.h b/ntoskrnl/include/internal/powerpc/ke.h similarity index 100% rename from reactos/ntoskrnl/include/internal/powerpc/ke.h rename to ntoskrnl/include/internal/powerpc/ke.h diff --git a/reactos/ntoskrnl/include/internal/probe.h b/ntoskrnl/include/internal/probe.h similarity index 100% rename from reactos/ntoskrnl/include/internal/probe.h rename to ntoskrnl/include/internal/probe.h diff --git a/reactos/ntoskrnl/include/internal/ps.h b/ntoskrnl/include/internal/ps.h similarity index 100% rename from reactos/ntoskrnl/include/internal/ps.h rename to ntoskrnl/include/internal/ps.h diff --git a/reactos/ntoskrnl/include/internal/ps_i.h b/ntoskrnl/include/internal/ps_i.h similarity index 100% rename from reactos/ntoskrnl/include/internal/ps_i.h rename to ntoskrnl/include/internal/ps_i.h diff --git a/reactos/ntoskrnl/include/internal/ps_x.h b/ntoskrnl/include/internal/ps_x.h similarity index 100% rename from reactos/ntoskrnl/include/internal/ps_x.h rename to ntoskrnl/include/internal/ps_x.h diff --git a/reactos/ntoskrnl/include/internal/rtl.h b/ntoskrnl/include/internal/rtl.h similarity index 100% rename from reactos/ntoskrnl/include/internal/rtl.h rename to ntoskrnl/include/internal/rtl.h diff --git a/reactos/ntoskrnl/include/internal/se.h b/ntoskrnl/include/internal/se.h similarity index 100% rename from reactos/ntoskrnl/include/internal/se.h rename to ntoskrnl/include/internal/se.h diff --git a/reactos/ntoskrnl/include/internal/spinlock.h b/ntoskrnl/include/internal/spinlock.h similarity index 100% rename from reactos/ntoskrnl/include/internal/spinlock.h rename to ntoskrnl/include/internal/spinlock.h diff --git a/reactos/ntoskrnl/include/internal/tag.h b/ntoskrnl/include/internal/tag.h similarity index 100% rename from reactos/ntoskrnl/include/internal/tag.h rename to ntoskrnl/include/internal/tag.h diff --git a/reactos/ntoskrnl/include/internal/test.h b/ntoskrnl/include/internal/test.h similarity index 100% rename from reactos/ntoskrnl/include/internal/test.h rename to ntoskrnl/include/internal/test.h diff --git a/reactos/ntoskrnl/include/internal/vdm.h b/ntoskrnl/include/internal/vdm.h similarity index 100% rename from reactos/ntoskrnl/include/internal/vdm.h rename to ntoskrnl/include/internal/vdm.h diff --git a/reactos/ntoskrnl/include/ntoskrnl.h b/ntoskrnl/include/ntoskrnl.h similarity index 100% rename from reactos/ntoskrnl/include/ntoskrnl.h rename to ntoskrnl/include/ntoskrnl.h diff --git a/reactos/ntoskrnl/include/resource.h b/ntoskrnl/include/resource.h similarity index 100% rename from reactos/ntoskrnl/include/resource.h rename to ntoskrnl/include/resource.h diff --git a/reactos/ntoskrnl/include/sysfuncs.h b/ntoskrnl/include/sysfuncs.h similarity index 100% rename from reactos/ntoskrnl/include/sysfuncs.h rename to ntoskrnl/include/sysfuncs.h diff --git a/reactos/ntoskrnl/include/sysfuncs64.h b/ntoskrnl/include/sysfuncs64.h similarity index 100% rename from reactos/ntoskrnl/include/sysfuncs64.h rename to ntoskrnl/include/sysfuncs64.h diff --git a/reactos/ntoskrnl/io/iomgr/adapter.c b/ntoskrnl/io/iomgr/adapter.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/adapter.c rename to ntoskrnl/io/iomgr/adapter.c diff --git a/reactos/ntoskrnl/io/iomgr/arcname.c b/ntoskrnl/io/iomgr/arcname.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/arcname.c rename to ntoskrnl/io/iomgr/arcname.c diff --git a/reactos/ntoskrnl/io/iomgr/bootlog.c b/ntoskrnl/io/iomgr/bootlog.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/bootlog.c rename to ntoskrnl/io/iomgr/bootlog.c diff --git a/reactos/ntoskrnl/io/iomgr/controller.c b/ntoskrnl/io/iomgr/controller.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/controller.c rename to ntoskrnl/io/iomgr/controller.c diff --git a/reactos/ntoskrnl/io/iomgr/device.c b/ntoskrnl/io/iomgr/device.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/device.c rename to ntoskrnl/io/iomgr/device.c diff --git a/reactos/ntoskrnl/io/iomgr/deviface.c b/ntoskrnl/io/iomgr/deviface.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/deviface.c rename to ntoskrnl/io/iomgr/deviface.c diff --git a/reactos/ntoskrnl/io/iomgr/driver.c b/ntoskrnl/io/iomgr/driver.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/driver.c rename to ntoskrnl/io/iomgr/driver.c diff --git a/reactos/ntoskrnl/io/iomgr/error.c b/ntoskrnl/io/iomgr/error.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/error.c rename to ntoskrnl/io/iomgr/error.c diff --git a/reactos/ntoskrnl/io/iomgr/file.c b/ntoskrnl/io/iomgr/file.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/file.c rename to ntoskrnl/io/iomgr/file.c diff --git a/reactos/ntoskrnl/io/iomgr/iocomp.c b/ntoskrnl/io/iomgr/iocomp.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/iocomp.c rename to ntoskrnl/io/iomgr/iocomp.c diff --git a/reactos/ntoskrnl/io/iomgr/ioevent.c b/ntoskrnl/io/iomgr/ioevent.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/ioevent.c rename to ntoskrnl/io/iomgr/ioevent.c diff --git a/reactos/ntoskrnl/io/iomgr/iofunc.c b/ntoskrnl/io/iomgr/iofunc.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/iofunc.c rename to ntoskrnl/io/iomgr/iofunc.c diff --git a/reactos/ntoskrnl/io/iomgr/iomdl.c b/ntoskrnl/io/iomgr/iomdl.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/iomdl.c rename to ntoskrnl/io/iomgr/iomdl.c diff --git a/reactos/ntoskrnl/io/iomgr/iomgr.c b/ntoskrnl/io/iomgr/iomgr.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/iomgr.c rename to ntoskrnl/io/iomgr/iomgr.c diff --git a/reactos/ntoskrnl/io/iomgr/iorsrce.c b/ntoskrnl/io/iomgr/iorsrce.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/iorsrce.c rename to ntoskrnl/io/iomgr/iorsrce.c diff --git a/reactos/ntoskrnl/io/iomgr/iotimer.c b/ntoskrnl/io/iomgr/iotimer.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/iotimer.c rename to ntoskrnl/io/iomgr/iotimer.c diff --git a/reactos/ntoskrnl/io/iomgr/iowork.c b/ntoskrnl/io/iomgr/iowork.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/iowork.c rename to ntoskrnl/io/iomgr/iowork.c diff --git a/reactos/ntoskrnl/io/iomgr/irp.c b/ntoskrnl/io/iomgr/irp.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/irp.c rename to ntoskrnl/io/iomgr/irp.c diff --git a/reactos/ntoskrnl/io/iomgr/irq.c b/ntoskrnl/io/iomgr/irq.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/irq.c rename to ntoskrnl/io/iomgr/irq.c diff --git a/reactos/ntoskrnl/io/iomgr/ramdisk.c b/ntoskrnl/io/iomgr/ramdisk.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/ramdisk.c rename to ntoskrnl/io/iomgr/ramdisk.c diff --git a/reactos/ntoskrnl/io/iomgr/rawfs.c b/ntoskrnl/io/iomgr/rawfs.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/rawfs.c rename to ntoskrnl/io/iomgr/rawfs.c diff --git a/reactos/ntoskrnl/io/iomgr/remlock.c b/ntoskrnl/io/iomgr/remlock.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/remlock.c rename to ntoskrnl/io/iomgr/remlock.c diff --git a/reactos/ntoskrnl/io/iomgr/symlink.c b/ntoskrnl/io/iomgr/symlink.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/symlink.c rename to ntoskrnl/io/iomgr/symlink.c diff --git a/reactos/ntoskrnl/io/iomgr/util.c b/ntoskrnl/io/iomgr/util.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/util.c rename to ntoskrnl/io/iomgr/util.c diff --git a/reactos/ntoskrnl/io/iomgr/volume.c b/ntoskrnl/io/iomgr/volume.c similarity index 100% rename from reactos/ntoskrnl/io/iomgr/volume.c rename to ntoskrnl/io/iomgr/volume.c diff --git a/reactos/ntoskrnl/io/pnpmgr/plugplay.c b/ntoskrnl/io/pnpmgr/plugplay.c similarity index 100% rename from reactos/ntoskrnl/io/pnpmgr/plugplay.c rename to ntoskrnl/io/pnpmgr/plugplay.c diff --git a/reactos/ntoskrnl/io/pnpmgr/pnpdma.c b/ntoskrnl/io/pnpmgr/pnpdma.c similarity index 100% rename from reactos/ntoskrnl/io/pnpmgr/pnpdma.c rename to ntoskrnl/io/pnpmgr/pnpdma.c diff --git a/reactos/ntoskrnl/io/pnpmgr/pnpinit.c b/ntoskrnl/io/pnpmgr/pnpinit.c similarity index 100% rename from reactos/ntoskrnl/io/pnpmgr/pnpinit.c rename to ntoskrnl/io/pnpmgr/pnpinit.c diff --git a/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c b/ntoskrnl/io/pnpmgr/pnpmgr.c similarity index 100% rename from reactos/ntoskrnl/io/pnpmgr/pnpmgr.c rename to ntoskrnl/io/pnpmgr/pnpmgr.c diff --git a/reactos/ntoskrnl/io/pnpmgr/pnpnotify.c b/ntoskrnl/io/pnpmgr/pnpnotify.c similarity index 100% rename from reactos/ntoskrnl/io/pnpmgr/pnpnotify.c rename to ntoskrnl/io/pnpmgr/pnpnotify.c diff --git a/reactos/ntoskrnl/io/pnpmgr/pnpreport.c b/ntoskrnl/io/pnpmgr/pnpreport.c similarity index 100% rename from reactos/ntoskrnl/io/pnpmgr/pnpreport.c rename to ntoskrnl/io/pnpmgr/pnpreport.c diff --git a/reactos/ntoskrnl/io/pnpmgr/pnpres.c b/ntoskrnl/io/pnpmgr/pnpres.c similarity index 100% rename from reactos/ntoskrnl/io/pnpmgr/pnpres.c rename to ntoskrnl/io/pnpmgr/pnpres.c diff --git a/reactos/ntoskrnl/io/pnpmgr/pnproot.c b/ntoskrnl/io/pnpmgr/pnproot.c similarity index 100% rename from reactos/ntoskrnl/io/pnpmgr/pnproot.c rename to ntoskrnl/io/pnpmgr/pnproot.c diff --git a/reactos/ntoskrnl/io/pnpmgr/pnputil.c b/ntoskrnl/io/pnpmgr/pnputil.c similarity index 100% rename from reactos/ntoskrnl/io/pnpmgr/pnputil.c rename to ntoskrnl/io/pnpmgr/pnputil.c diff --git a/reactos/ntoskrnl/kd/amd64/kd.c b/ntoskrnl/kd/amd64/kd.c similarity index 100% rename from reactos/ntoskrnl/kd/amd64/kd.c rename to ntoskrnl/kd/amd64/kd.c diff --git a/reactos/ntoskrnl/kd/amd64/kdmemsup.c b/ntoskrnl/kd/amd64/kdmemsup.c similarity index 100% rename from reactos/ntoskrnl/kd/amd64/kdmemsup.c rename to ntoskrnl/kd/amd64/kdmemsup.c diff --git a/reactos/ntoskrnl/kd/i386/kdmemsup.c b/ntoskrnl/kd/i386/kdmemsup.c similarity index 100% rename from reactos/ntoskrnl/kd/i386/kdmemsup.c rename to ntoskrnl/kd/i386/kdmemsup.c diff --git a/reactos/ntoskrnl/kd/kdinit.c b/ntoskrnl/kd/kdinit.c similarity index 100% rename from reactos/ntoskrnl/kd/kdinit.c rename to ntoskrnl/kd/kdinit.c diff --git a/reactos/ntoskrnl/kd/kdio.c b/ntoskrnl/kd/kdio.c similarity index 100% rename from reactos/ntoskrnl/kd/kdio.c rename to ntoskrnl/kd/kdio.c diff --git a/reactos/ntoskrnl/kd/kdmain.c b/ntoskrnl/kd/kdmain.c similarity index 100% rename from reactos/ntoskrnl/kd/kdmain.c rename to ntoskrnl/kd/kdmain.c diff --git a/reactos/ntoskrnl/kd/wrappers/bochs.c b/ntoskrnl/kd/wrappers/bochs.c similarity index 100% rename from reactos/ntoskrnl/kd/wrappers/bochs.c rename to ntoskrnl/kd/wrappers/bochs.c diff --git a/reactos/ntoskrnl/kd/wrappers/gdbstub.c b/ntoskrnl/kd/wrappers/gdbstub.c similarity index 100% rename from reactos/ntoskrnl/kd/wrappers/gdbstub.c rename to ntoskrnl/kd/wrappers/gdbstub.c diff --git a/reactos/ntoskrnl/kd/wrappers/gdbstub_powerpc.c b/ntoskrnl/kd/wrappers/gdbstub_powerpc.c similarity index 100% rename from reactos/ntoskrnl/kd/wrappers/gdbstub_powerpc.c rename to ntoskrnl/kd/wrappers/gdbstub_powerpc.c diff --git a/reactos/ntoskrnl/kd/wrappers/kdbg.c b/ntoskrnl/kd/wrappers/kdbg.c similarity index 100% rename from reactos/ntoskrnl/kd/wrappers/kdbg.c rename to ntoskrnl/kd/wrappers/kdbg.c diff --git a/reactos/ntoskrnl/kd64/amd64/kdx64.c b/ntoskrnl/kd64/amd64/kdx64.c similarity index 100% rename from reactos/ntoskrnl/kd64/amd64/kdx64.c rename to ntoskrnl/kd64/amd64/kdx64.c diff --git a/reactos/ntoskrnl/kd64/arm/kdarm.c b/ntoskrnl/kd64/arm/kdarm.c similarity index 100% rename from reactos/ntoskrnl/kd64/arm/kdarm.c rename to ntoskrnl/kd64/arm/kdarm.c diff --git a/reactos/ntoskrnl/kd64/i386/kdx86.c b/ntoskrnl/kd64/i386/kdx86.c similarity index 100% rename from reactos/ntoskrnl/kd64/i386/kdx86.c rename to ntoskrnl/kd64/i386/kdx86.c diff --git a/reactos/ntoskrnl/kd64/kdapi.c b/ntoskrnl/kd64/kdapi.c similarity index 100% rename from reactos/ntoskrnl/kd64/kdapi.c rename to ntoskrnl/kd64/kdapi.c diff --git a/reactos/ntoskrnl/kd64/kdbreak.c b/ntoskrnl/kd64/kdbreak.c similarity index 100% rename from reactos/ntoskrnl/kd64/kdbreak.c rename to ntoskrnl/kd64/kdbreak.c diff --git a/reactos/ntoskrnl/kd64/kddata.c b/ntoskrnl/kd64/kddata.c similarity index 100% rename from reactos/ntoskrnl/kd64/kddata.c rename to ntoskrnl/kd64/kddata.c diff --git a/reactos/ntoskrnl/kd64/kdinit.c b/ntoskrnl/kd64/kdinit.c similarity index 100% rename from reactos/ntoskrnl/kd64/kdinit.c rename to ntoskrnl/kd64/kdinit.c diff --git a/reactos/ntoskrnl/kd64/kdlock.c b/ntoskrnl/kd64/kdlock.c similarity index 100% rename from reactos/ntoskrnl/kd64/kdlock.c rename to ntoskrnl/kd64/kdlock.c diff --git a/reactos/ntoskrnl/kd64/kdprint.c b/ntoskrnl/kd64/kdprint.c similarity index 100% rename from reactos/ntoskrnl/kd64/kdprint.c rename to ntoskrnl/kd64/kdprint.c diff --git a/reactos/ntoskrnl/kd64/kdtrap.c b/ntoskrnl/kd64/kdtrap.c similarity index 100% rename from reactos/ntoskrnl/kd64/kdtrap.c rename to ntoskrnl/kd64/kdtrap.c diff --git a/reactos/ntoskrnl/kdbg/amd64/dis-asm.h b/ntoskrnl/kdbg/amd64/dis-asm.h similarity index 100% rename from reactos/ntoskrnl/kdbg/amd64/dis-asm.h rename to ntoskrnl/kdbg/amd64/dis-asm.h diff --git a/reactos/ntoskrnl/kdbg/amd64/i386-dis.c b/ntoskrnl/kdbg/amd64/i386-dis.c similarity index 100% rename from reactos/ntoskrnl/kdbg/amd64/i386-dis.c rename to ntoskrnl/kdbg/amd64/i386-dis.c diff --git a/reactos/ntoskrnl/kdbg/amd64/kdb.c b/ntoskrnl/kdbg/amd64/kdb.c similarity index 100% rename from reactos/ntoskrnl/kdbg/amd64/kdb.c rename to ntoskrnl/kdbg/amd64/kdb.c diff --git a/reactos/ntoskrnl/kdbg/amd64/kdb_help.S b/ntoskrnl/kdbg/amd64/kdb_help.S similarity index 100% rename from reactos/ntoskrnl/kdbg/amd64/kdb_help.S rename to ntoskrnl/kdbg/amd64/kdb_help.S diff --git a/reactos/ntoskrnl/kdbg/i386/dis-asm.h b/ntoskrnl/kdbg/i386/dis-asm.h similarity index 100% rename from reactos/ntoskrnl/kdbg/i386/dis-asm.h rename to ntoskrnl/kdbg/i386/dis-asm.h diff --git a/reactos/ntoskrnl/kdbg/i386/i386-dis.c b/ntoskrnl/kdbg/i386/i386-dis.c similarity index 100% rename from reactos/ntoskrnl/kdbg/i386/i386-dis.c rename to ntoskrnl/kdbg/i386/i386-dis.c diff --git a/reactos/ntoskrnl/kdbg/i386/kdb_help.S b/ntoskrnl/kdbg/i386/kdb_help.S similarity index 100% rename from reactos/ntoskrnl/kdbg/i386/kdb_help.S rename to ntoskrnl/kdbg/i386/kdb_help.S diff --git a/reactos/ntoskrnl/kdbg/kdb.c b/ntoskrnl/kdbg/kdb.c similarity index 100% rename from reactos/ntoskrnl/kdbg/kdb.c rename to ntoskrnl/kdbg/kdb.c diff --git a/reactos/ntoskrnl/kdbg/kdb.h b/ntoskrnl/kdbg/kdb.h similarity index 100% rename from reactos/ntoskrnl/kdbg/kdb.h rename to ntoskrnl/kdbg/kdb.h diff --git a/reactos/ntoskrnl/kdbg/kdb_cli.c b/ntoskrnl/kdbg/kdb_cli.c similarity index 100% rename from reactos/ntoskrnl/kdbg/kdb_cli.c rename to ntoskrnl/kdbg/kdb_cli.c diff --git a/reactos/ntoskrnl/kdbg/kdb_expr.c b/ntoskrnl/kdbg/kdb_expr.c similarity index 100% rename from reactos/ntoskrnl/kdbg/kdb_expr.c rename to ntoskrnl/kdbg/kdb_expr.c diff --git a/reactos/ntoskrnl/kdbg/kdb_keyboard.c b/ntoskrnl/kdbg/kdb_keyboard.c similarity index 100% rename from reactos/ntoskrnl/kdbg/kdb_keyboard.c rename to ntoskrnl/kdbg/kdb_keyboard.c diff --git a/reactos/ntoskrnl/kdbg/kdb_serial.c b/ntoskrnl/kdbg/kdb_serial.c similarity index 100% rename from reactos/ntoskrnl/kdbg/kdb_serial.c rename to ntoskrnl/kdbg/kdb_serial.c diff --git a/reactos/ntoskrnl/kdbg/kdb_symbols.c b/ntoskrnl/kdbg/kdb_symbols.c similarity index 100% rename from reactos/ntoskrnl/kdbg/kdb_symbols.c rename to ntoskrnl/kdbg/kdb_symbols.c diff --git a/reactos/ntoskrnl/kdbg/kdb_symbols.cmake.c b/ntoskrnl/kdbg/kdb_symbols.cmake.c similarity index 100% rename from reactos/ntoskrnl/kdbg/kdb_symbols.cmake.c rename to ntoskrnl/kdbg/kdb_symbols.cmake.c diff --git a/reactos/ntoskrnl/ke/amd64/boot.S b/ntoskrnl/ke/amd64/boot.S similarity index 100% rename from reactos/ntoskrnl/ke/amd64/boot.S rename to ntoskrnl/ke/amd64/boot.S diff --git a/reactos/ntoskrnl/ke/amd64/context.c b/ntoskrnl/ke/amd64/context.c similarity index 100% rename from reactos/ntoskrnl/ke/amd64/context.c rename to ntoskrnl/ke/amd64/context.c diff --git a/reactos/ntoskrnl/ke/amd64/cpu.c b/ntoskrnl/ke/amd64/cpu.c similarity index 100% rename from reactos/ntoskrnl/ke/amd64/cpu.c rename to ntoskrnl/ke/amd64/cpu.c diff --git a/reactos/ntoskrnl/ke/amd64/ctxswitch.S b/ntoskrnl/ke/amd64/ctxswitch.S similarity index 100% rename from reactos/ntoskrnl/ke/amd64/ctxswitch.S rename to ntoskrnl/ke/amd64/ctxswitch.S diff --git a/reactos/ntoskrnl/ke/amd64/except.c b/ntoskrnl/ke/amd64/except.c similarity index 100% rename from reactos/ntoskrnl/ke/amd64/except.c rename to ntoskrnl/ke/amd64/except.c diff --git a/reactos/ntoskrnl/ke/amd64/interrupt.c b/ntoskrnl/ke/amd64/interrupt.c similarity index 100% rename from reactos/ntoskrnl/ke/amd64/interrupt.c rename to ntoskrnl/ke/amd64/interrupt.c diff --git a/reactos/ntoskrnl/ke/amd64/irql.c b/ntoskrnl/ke/amd64/irql.c similarity index 100% rename from reactos/ntoskrnl/ke/amd64/irql.c rename to ntoskrnl/ke/amd64/irql.c diff --git a/reactos/ntoskrnl/ke/amd64/kiinit.c b/ntoskrnl/ke/amd64/kiinit.c similarity index 100% rename from reactos/ntoskrnl/ke/amd64/kiinit.c rename to ntoskrnl/ke/amd64/kiinit.c diff --git a/reactos/ntoskrnl/ke/amd64/krnlinit.c b/ntoskrnl/ke/amd64/krnlinit.c similarity index 100% rename from reactos/ntoskrnl/ke/amd64/krnlinit.c rename to ntoskrnl/ke/amd64/krnlinit.c diff --git a/reactos/ntoskrnl/ke/amd64/spinlock.c b/ntoskrnl/ke/amd64/spinlock.c similarity index 100% rename from reactos/ntoskrnl/ke/amd64/spinlock.c rename to ntoskrnl/ke/amd64/spinlock.c diff --git a/reactos/ntoskrnl/ke/amd64/stubs.c b/ntoskrnl/ke/amd64/stubs.c similarity index 100% rename from reactos/ntoskrnl/ke/amd64/stubs.c rename to ntoskrnl/ke/amd64/stubs.c diff --git a/reactos/ntoskrnl/ke/amd64/thrdini.c b/ntoskrnl/ke/amd64/thrdini.c similarity index 100% rename from reactos/ntoskrnl/ke/amd64/thrdini.c rename to ntoskrnl/ke/amd64/thrdini.c diff --git a/reactos/ntoskrnl/ke/amd64/trap.S b/ntoskrnl/ke/amd64/trap.S similarity index 100% rename from reactos/ntoskrnl/ke/amd64/trap.S rename to ntoskrnl/ke/amd64/trap.S diff --git a/reactos/ntoskrnl/ke/apc.c b/ntoskrnl/ke/apc.c similarity index 100% rename from reactos/ntoskrnl/ke/apc.c rename to ntoskrnl/ke/apc.c diff --git a/reactos/ntoskrnl/ke/arm/boot.s b/ntoskrnl/ke/arm/boot.s similarity index 100% rename from reactos/ntoskrnl/ke/arm/boot.s rename to ntoskrnl/ke/arm/boot.s diff --git a/reactos/ntoskrnl/ke/arm/cpu.c b/ntoskrnl/ke/arm/cpu.c similarity index 100% rename from reactos/ntoskrnl/ke/arm/cpu.c rename to ntoskrnl/ke/arm/cpu.c diff --git a/reactos/ntoskrnl/ke/arm/ctxswtch.s b/ntoskrnl/ke/arm/ctxswtch.s similarity index 100% rename from reactos/ntoskrnl/ke/arm/ctxswtch.s rename to ntoskrnl/ke/arm/ctxswtch.s diff --git a/reactos/ntoskrnl/ke/arm/exp.c b/ntoskrnl/ke/arm/exp.c similarity index 100% rename from reactos/ntoskrnl/ke/arm/exp.c rename to ntoskrnl/ke/arm/exp.c diff --git a/reactos/ntoskrnl/ke/arm/ke_i.h b/ntoskrnl/ke/arm/ke_i.h similarity index 100% rename from reactos/ntoskrnl/ke/arm/ke_i.h rename to ntoskrnl/ke/arm/ke_i.h diff --git a/reactos/ntoskrnl/ke/arm/kiinit.c b/ntoskrnl/ke/arm/kiinit.c similarity index 100% rename from reactos/ntoskrnl/ke/arm/kiinit.c rename to ntoskrnl/ke/arm/kiinit.c diff --git a/reactos/ntoskrnl/ke/arm/stubs_asm.s b/ntoskrnl/ke/arm/stubs_asm.s similarity index 100% rename from reactos/ntoskrnl/ke/arm/stubs_asm.s rename to ntoskrnl/ke/arm/stubs_asm.s diff --git a/reactos/ntoskrnl/ke/arm/thrdini.c b/ntoskrnl/ke/arm/thrdini.c similarity index 100% rename from reactos/ntoskrnl/ke/arm/thrdini.c rename to ntoskrnl/ke/arm/thrdini.c diff --git a/reactos/ntoskrnl/ke/arm/trap.s b/ntoskrnl/ke/arm/trap.s similarity index 100% rename from reactos/ntoskrnl/ke/arm/trap.s rename to ntoskrnl/ke/arm/trap.s diff --git a/reactos/ntoskrnl/ke/arm/trapc.c b/ntoskrnl/ke/arm/trapc.c similarity index 100% rename from reactos/ntoskrnl/ke/arm/trapc.c rename to ntoskrnl/ke/arm/trapc.c diff --git a/reactos/ntoskrnl/ke/arm/usercall.c b/ntoskrnl/ke/arm/usercall.c similarity index 100% rename from reactos/ntoskrnl/ke/arm/usercall.c rename to ntoskrnl/ke/arm/usercall.c diff --git a/reactos/ntoskrnl/ke/balmgr.c b/ntoskrnl/ke/balmgr.c similarity index 100% rename from reactos/ntoskrnl/ke/balmgr.c rename to ntoskrnl/ke/balmgr.c diff --git a/reactos/ntoskrnl/ke/bug.c b/ntoskrnl/ke/bug.c similarity index 100% rename from reactos/ntoskrnl/ke/bug.c rename to ntoskrnl/ke/bug.c diff --git a/reactos/ntoskrnl/ke/clock.c b/ntoskrnl/ke/clock.c similarity index 100% rename from reactos/ntoskrnl/ke/clock.c rename to ntoskrnl/ke/clock.c diff --git a/reactos/ntoskrnl/ke/config.c b/ntoskrnl/ke/config.c similarity index 100% rename from reactos/ntoskrnl/ke/config.c rename to ntoskrnl/ke/config.c diff --git a/reactos/ntoskrnl/ke/devqueue.c b/ntoskrnl/ke/devqueue.c similarity index 100% rename from reactos/ntoskrnl/ke/devqueue.c rename to ntoskrnl/ke/devqueue.c diff --git a/reactos/ntoskrnl/ke/dpc.c b/ntoskrnl/ke/dpc.c similarity index 100% rename from reactos/ntoskrnl/ke/dpc.c rename to ntoskrnl/ke/dpc.c diff --git a/reactos/ntoskrnl/ke/eventobj.c b/ntoskrnl/ke/eventobj.c similarity index 100% rename from reactos/ntoskrnl/ke/eventobj.c rename to ntoskrnl/ke/eventobj.c diff --git a/reactos/ntoskrnl/ke/except.c b/ntoskrnl/ke/except.c similarity index 100% rename from reactos/ntoskrnl/ke/except.c rename to ntoskrnl/ke/except.c diff --git a/reactos/ntoskrnl/ke/freeze.c b/ntoskrnl/ke/freeze.c similarity index 100% rename from reactos/ntoskrnl/ke/freeze.c rename to ntoskrnl/ke/freeze.c diff --git a/reactos/ntoskrnl/ke/gate.c b/ntoskrnl/ke/gate.c similarity index 100% rename from reactos/ntoskrnl/ke/gate.c rename to ntoskrnl/ke/gate.c diff --git a/reactos/ntoskrnl/ke/gmutex.c b/ntoskrnl/ke/gmutex.c similarity index 100% rename from reactos/ntoskrnl/ke/gmutex.c rename to ntoskrnl/ke/gmutex.c diff --git a/reactos/ntoskrnl/ke/i386/abios.c b/ntoskrnl/ke/i386/abios.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/abios.c rename to ntoskrnl/ke/i386/abios.c diff --git a/reactos/ntoskrnl/ke/i386/context.c b/ntoskrnl/ke/i386/context.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/context.c rename to ntoskrnl/ke/i386/context.c diff --git a/reactos/ntoskrnl/ke/i386/cpu.c b/ntoskrnl/ke/i386/cpu.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/cpu.c rename to ntoskrnl/ke/i386/cpu.c diff --git a/reactos/ntoskrnl/ke/i386/ctxswitch.S b/ntoskrnl/ke/i386/ctxswitch.S similarity index 100% rename from reactos/ntoskrnl/ke/i386/ctxswitch.S rename to ntoskrnl/ke/i386/ctxswitch.S diff --git a/reactos/ntoskrnl/ke/i386/exp.c b/ntoskrnl/ke/i386/exp.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/exp.c rename to ntoskrnl/ke/i386/exp.c diff --git a/reactos/ntoskrnl/ke/i386/irqobj.c b/ntoskrnl/ke/i386/irqobj.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/irqobj.c rename to ntoskrnl/ke/i386/irqobj.c diff --git a/reactos/ntoskrnl/ke/i386/kiinit.c b/ntoskrnl/ke/i386/kiinit.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/kiinit.c rename to ntoskrnl/ke/i386/kiinit.c diff --git a/reactos/ntoskrnl/ke/i386/ldt.c b/ntoskrnl/ke/i386/ldt.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/ldt.c rename to ntoskrnl/ke/i386/ldt.c diff --git a/reactos/ntoskrnl/ke/i386/mtrr.c b/ntoskrnl/ke/i386/mtrr.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/mtrr.c rename to ntoskrnl/ke/i386/mtrr.c diff --git a/reactos/ntoskrnl/ke/i386/patpge.c b/ntoskrnl/ke/i386/patpge.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/patpge.c rename to ntoskrnl/ke/i386/patpge.c diff --git a/reactos/ntoskrnl/ke/i386/thrdini.c b/ntoskrnl/ke/i386/thrdini.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/thrdini.c rename to ntoskrnl/ke/i386/thrdini.c diff --git a/reactos/ntoskrnl/ke/i386/trap.s b/ntoskrnl/ke/i386/trap.s similarity index 100% rename from reactos/ntoskrnl/ke/i386/trap.s rename to ntoskrnl/ke/i386/trap.s diff --git a/reactos/ntoskrnl/ke/i386/traphdlr.c b/ntoskrnl/ke/i386/traphdlr.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/traphdlr.c rename to ntoskrnl/ke/i386/traphdlr.c diff --git a/reactos/ntoskrnl/ke/i386/usercall.c b/ntoskrnl/ke/i386/usercall.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/usercall.c rename to ntoskrnl/ke/i386/usercall.c diff --git a/reactos/ntoskrnl/ke/i386/usercall_asm.S b/ntoskrnl/ke/i386/usercall_asm.S similarity index 100% rename from reactos/ntoskrnl/ke/i386/usercall_asm.S rename to ntoskrnl/ke/i386/usercall_asm.S diff --git a/reactos/ntoskrnl/ke/i386/v86vdm.c b/ntoskrnl/ke/i386/v86vdm.c similarity index 100% rename from reactos/ntoskrnl/ke/i386/v86vdm.c rename to ntoskrnl/ke/i386/v86vdm.c diff --git a/reactos/ntoskrnl/ke/ipi.c b/ntoskrnl/ke/ipi.c similarity index 100% rename from reactos/ntoskrnl/ke/ipi.c rename to ntoskrnl/ke/ipi.c diff --git a/reactos/ntoskrnl/ke/krnlinit.c b/ntoskrnl/ke/krnlinit.c similarity index 100% rename from reactos/ntoskrnl/ke/krnlinit.c rename to ntoskrnl/ke/krnlinit.c diff --git a/reactos/ntoskrnl/ke/mutex.c b/ntoskrnl/ke/mutex.c similarity index 100% rename from reactos/ntoskrnl/ke/mutex.c rename to ntoskrnl/ke/mutex.c diff --git a/reactos/ntoskrnl/ke/powerpc/cpu.c b/ntoskrnl/ke/powerpc/cpu.c similarity index 100% rename from reactos/ntoskrnl/ke/powerpc/cpu.c rename to ntoskrnl/ke/powerpc/cpu.c diff --git a/reactos/ntoskrnl/ke/powerpc/ctxhelp.S b/ntoskrnl/ke/powerpc/ctxhelp.S similarity index 100% rename from reactos/ntoskrnl/ke/powerpc/ctxhelp.S rename to ntoskrnl/ke/powerpc/ctxhelp.S diff --git a/reactos/ntoskrnl/ke/powerpc/ctxswitch.c b/ntoskrnl/ke/powerpc/ctxswitch.c similarity index 100% rename from reactos/ntoskrnl/ke/powerpc/ctxswitch.c rename to ntoskrnl/ke/powerpc/ctxswitch.c diff --git a/reactos/ntoskrnl/ke/powerpc/exp.c b/ntoskrnl/ke/powerpc/exp.c similarity index 100% rename from reactos/ntoskrnl/ke/powerpc/exp.c rename to ntoskrnl/ke/powerpc/exp.c diff --git a/reactos/ntoskrnl/ke/powerpc/kiinit.c b/ntoskrnl/ke/powerpc/kiinit.c similarity index 100% rename from reactos/ntoskrnl/ke/powerpc/kiinit.c rename to ntoskrnl/ke/powerpc/kiinit.c diff --git a/reactos/ntoskrnl/ke/powerpc/main_asm.S b/ntoskrnl/ke/powerpc/main_asm.S similarity index 100% rename from reactos/ntoskrnl/ke/powerpc/main_asm.S rename to ntoskrnl/ke/powerpc/main_asm.S diff --git a/reactos/ntoskrnl/ke/powerpc/ppc_irq.c b/ntoskrnl/ke/powerpc/ppc_irq.c similarity index 100% rename from reactos/ntoskrnl/ke/powerpc/ppc_irq.c rename to ntoskrnl/ke/powerpc/ppc_irq.c diff --git a/reactos/ntoskrnl/ke/powerpc/stubs.c b/ntoskrnl/ke/powerpc/stubs.c similarity index 100% rename from reactos/ntoskrnl/ke/powerpc/stubs.c rename to ntoskrnl/ke/powerpc/stubs.c diff --git a/reactos/ntoskrnl/ke/powerpc/systimer.c b/ntoskrnl/ke/powerpc/systimer.c similarity index 100% rename from reactos/ntoskrnl/ke/powerpc/systimer.c rename to ntoskrnl/ke/powerpc/systimer.c diff --git a/reactos/ntoskrnl/ke/powerpc/thrdini.c b/ntoskrnl/ke/powerpc/thrdini.c similarity index 100% rename from reactos/ntoskrnl/ke/powerpc/thrdini.c rename to ntoskrnl/ke/powerpc/thrdini.c diff --git a/reactos/ntoskrnl/ke/procobj.c b/ntoskrnl/ke/procobj.c similarity index 100% rename from reactos/ntoskrnl/ke/procobj.c rename to ntoskrnl/ke/procobj.c diff --git a/reactos/ntoskrnl/ke/profobj.c b/ntoskrnl/ke/profobj.c similarity index 100% rename from reactos/ntoskrnl/ke/profobj.c rename to ntoskrnl/ke/profobj.c diff --git a/reactos/ntoskrnl/ke/queue.c b/ntoskrnl/ke/queue.c similarity index 100% rename from reactos/ntoskrnl/ke/queue.c rename to ntoskrnl/ke/queue.c diff --git a/reactos/ntoskrnl/ke/semphobj.c b/ntoskrnl/ke/semphobj.c similarity index 100% rename from reactos/ntoskrnl/ke/semphobj.c rename to ntoskrnl/ke/semphobj.c diff --git a/reactos/ntoskrnl/ke/spinlock.c b/ntoskrnl/ke/spinlock.c similarity index 100% rename from reactos/ntoskrnl/ke/spinlock.c rename to ntoskrnl/ke/spinlock.c diff --git a/reactos/ntoskrnl/ke/thrdobj.c b/ntoskrnl/ke/thrdobj.c similarity index 100% rename from reactos/ntoskrnl/ke/thrdobj.c rename to ntoskrnl/ke/thrdobj.c diff --git a/reactos/ntoskrnl/ke/thrdschd.c b/ntoskrnl/ke/thrdschd.c similarity index 100% rename from reactos/ntoskrnl/ke/thrdschd.c rename to ntoskrnl/ke/thrdschd.c diff --git a/reactos/ntoskrnl/ke/time.c b/ntoskrnl/ke/time.c similarity index 100% rename from reactos/ntoskrnl/ke/time.c rename to ntoskrnl/ke/time.c diff --git a/reactos/ntoskrnl/ke/timerobj.c b/ntoskrnl/ke/timerobj.c similarity index 100% rename from reactos/ntoskrnl/ke/timerobj.c rename to ntoskrnl/ke/timerobj.c diff --git a/reactos/ntoskrnl/ke/wait.c b/ntoskrnl/ke/wait.c similarity index 100% rename from reactos/ntoskrnl/ke/wait.c rename to ntoskrnl/ke/wait.c diff --git a/reactos/ntoskrnl/lpc/close.c b/ntoskrnl/lpc/close.c similarity index 100% rename from reactos/ntoskrnl/lpc/close.c rename to ntoskrnl/lpc/close.c diff --git a/reactos/ntoskrnl/lpc/complete.c b/ntoskrnl/lpc/complete.c similarity index 100% rename from reactos/ntoskrnl/lpc/complete.c rename to ntoskrnl/lpc/complete.c diff --git a/reactos/ntoskrnl/lpc/connect.c b/ntoskrnl/lpc/connect.c similarity index 100% rename from reactos/ntoskrnl/lpc/connect.c rename to ntoskrnl/lpc/connect.c diff --git a/reactos/ntoskrnl/lpc/create.c b/ntoskrnl/lpc/create.c similarity index 100% rename from reactos/ntoskrnl/lpc/create.c rename to ntoskrnl/lpc/create.c diff --git a/reactos/ntoskrnl/lpc/listen.c b/ntoskrnl/lpc/listen.c similarity index 100% rename from reactos/ntoskrnl/lpc/listen.c rename to ntoskrnl/lpc/listen.c diff --git a/reactos/ntoskrnl/lpc/port.c b/ntoskrnl/lpc/port.c similarity index 100% rename from reactos/ntoskrnl/lpc/port.c rename to ntoskrnl/lpc/port.c diff --git a/reactos/ntoskrnl/lpc/reply.c b/ntoskrnl/lpc/reply.c similarity index 100% rename from reactos/ntoskrnl/lpc/reply.c rename to ntoskrnl/lpc/reply.c diff --git a/reactos/ntoskrnl/lpc/send.c b/ntoskrnl/lpc/send.c similarity index 100% rename from reactos/ntoskrnl/lpc/send.c rename to ntoskrnl/lpc/send.c diff --git a/reactos/ntoskrnl/mm/ARM3/arm/init.c b/ntoskrnl/mm/ARM3/arm/init.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/arm/init.c rename to ntoskrnl/mm/ARM3/arm/init.c diff --git a/reactos/ntoskrnl/mm/ARM3/contmem.c b/ntoskrnl/mm/ARM3/contmem.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/contmem.c rename to ntoskrnl/mm/ARM3/contmem.c diff --git a/reactos/ntoskrnl/mm/ARM3/drvmgmt.c b/ntoskrnl/mm/ARM3/drvmgmt.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/drvmgmt.c rename to ntoskrnl/mm/ARM3/drvmgmt.c diff --git a/reactos/ntoskrnl/mm/ARM3/dynamic.c b/ntoskrnl/mm/ARM3/dynamic.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/dynamic.c rename to ntoskrnl/mm/ARM3/dynamic.c diff --git a/reactos/ntoskrnl/mm/ARM3/expool.c b/ntoskrnl/mm/ARM3/expool.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/expool.c rename to ntoskrnl/mm/ARM3/expool.c diff --git a/reactos/ntoskrnl/mm/ARM3/hypermap.c b/ntoskrnl/mm/ARM3/hypermap.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/hypermap.c rename to ntoskrnl/mm/ARM3/hypermap.c diff --git a/reactos/ntoskrnl/mm/ARM3/i386/init.c b/ntoskrnl/mm/ARM3/i386/init.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/i386/init.c rename to ntoskrnl/mm/ARM3/i386/init.c diff --git a/reactos/ntoskrnl/mm/ARM3/iosup.c b/ntoskrnl/mm/ARM3/iosup.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/iosup.c rename to ntoskrnl/mm/ARM3/iosup.c diff --git a/reactos/ntoskrnl/mm/ARM3/largepag.c b/ntoskrnl/mm/ARM3/largepag.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/largepag.c rename to ntoskrnl/mm/ARM3/largepag.c diff --git a/reactos/ntoskrnl/mm/ARM3/mdlsup.c b/ntoskrnl/mm/ARM3/mdlsup.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/mdlsup.c rename to ntoskrnl/mm/ARM3/mdlsup.c diff --git a/reactos/ntoskrnl/mm/ARM3/miarm.h b/ntoskrnl/mm/ARM3/miarm.h similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/miarm.h rename to ntoskrnl/mm/ARM3/miarm.h diff --git a/reactos/ntoskrnl/mm/ARM3/miavl.h b/ntoskrnl/mm/ARM3/miavl.h similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/miavl.h rename to ntoskrnl/mm/ARM3/miavl.h diff --git a/reactos/ntoskrnl/mm/ARM3/mmdbg.c b/ntoskrnl/mm/ARM3/mmdbg.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/mmdbg.c rename to ntoskrnl/mm/ARM3/mmdbg.c diff --git a/reactos/ntoskrnl/mm/ARM3/mminit.c b/ntoskrnl/mm/ARM3/mminit.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/mminit.c rename to ntoskrnl/mm/ARM3/mminit.c diff --git a/reactos/ntoskrnl/mm/ARM3/mmsup.c b/ntoskrnl/mm/ARM3/mmsup.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/mmsup.c rename to ntoskrnl/mm/ARM3/mmsup.c diff --git a/reactos/ntoskrnl/mm/ARM3/ncache.c b/ntoskrnl/mm/ARM3/ncache.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/ncache.c rename to ntoskrnl/mm/ARM3/ncache.c diff --git a/reactos/ntoskrnl/mm/ARM3/pagfault.c b/ntoskrnl/mm/ARM3/pagfault.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/pagfault.c rename to ntoskrnl/mm/ARM3/pagfault.c diff --git a/reactos/ntoskrnl/mm/ARM3/pfnlist.c b/ntoskrnl/mm/ARM3/pfnlist.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/pfnlist.c rename to ntoskrnl/mm/ARM3/pfnlist.c diff --git a/reactos/ntoskrnl/mm/ARM3/pool.c b/ntoskrnl/mm/ARM3/pool.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/pool.c rename to ntoskrnl/mm/ARM3/pool.c diff --git a/reactos/ntoskrnl/mm/ARM3/procsup.c b/ntoskrnl/mm/ARM3/procsup.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/procsup.c rename to ntoskrnl/mm/ARM3/procsup.c diff --git a/reactos/ntoskrnl/mm/ARM3/section.c b/ntoskrnl/mm/ARM3/section.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/section.c rename to ntoskrnl/mm/ARM3/section.c diff --git a/reactos/ntoskrnl/mm/ARM3/special.c b/ntoskrnl/mm/ARM3/special.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/special.c rename to ntoskrnl/mm/ARM3/special.c diff --git a/reactos/ntoskrnl/mm/ARM3/sysldr.c b/ntoskrnl/mm/ARM3/sysldr.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/sysldr.c rename to ntoskrnl/mm/ARM3/sysldr.c diff --git a/reactos/ntoskrnl/mm/ARM3/syspte.c b/ntoskrnl/mm/ARM3/syspte.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/syspte.c rename to ntoskrnl/mm/ARM3/syspte.c diff --git a/reactos/ntoskrnl/mm/ARM3/vadnode.c b/ntoskrnl/mm/ARM3/vadnode.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/vadnode.c rename to ntoskrnl/mm/ARM3/vadnode.c diff --git a/reactos/ntoskrnl/mm/ARM3/virtual.c b/ntoskrnl/mm/ARM3/virtual.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/virtual.c rename to ntoskrnl/mm/ARM3/virtual.c diff --git a/reactos/ntoskrnl/mm/ARM3/zeropage.c b/ntoskrnl/mm/ARM3/zeropage.c similarity index 100% rename from reactos/ntoskrnl/mm/ARM3/zeropage.c rename to ntoskrnl/mm/ARM3/zeropage.c diff --git a/reactos/ntoskrnl/mm/amd64/init.c b/ntoskrnl/mm/amd64/init.c similarity index 100% rename from reactos/ntoskrnl/mm/amd64/init.c rename to ntoskrnl/mm/amd64/init.c diff --git a/reactos/ntoskrnl/mm/amd64/page.c b/ntoskrnl/mm/amd64/page.c similarity index 100% rename from reactos/ntoskrnl/mm/amd64/page.c rename to ntoskrnl/mm/amd64/page.c diff --git a/reactos/ntoskrnl/mm/arm/page.c b/ntoskrnl/mm/arm/page.c similarity index 100% rename from reactos/ntoskrnl/mm/arm/page.c rename to ntoskrnl/mm/arm/page.c diff --git a/reactos/ntoskrnl/mm/arm/stubs.c b/ntoskrnl/mm/arm/stubs.c similarity index 100% rename from reactos/ntoskrnl/mm/arm/stubs.c rename to ntoskrnl/mm/arm/stubs.c diff --git a/reactos/ntoskrnl/mm/balance.c b/ntoskrnl/mm/balance.c similarity index 100% rename from reactos/ntoskrnl/mm/balance.c rename to ntoskrnl/mm/balance.c diff --git a/reactos/ntoskrnl/mm/freelist.c b/ntoskrnl/mm/freelist.c similarity index 100% rename from reactos/ntoskrnl/mm/freelist.c rename to ntoskrnl/mm/freelist.c diff --git a/reactos/ntoskrnl/mm/i386/page.c b/ntoskrnl/mm/i386/page.c similarity index 100% rename from reactos/ntoskrnl/mm/i386/page.c rename to ntoskrnl/mm/i386/page.c diff --git a/reactos/ntoskrnl/mm/i386/pagepae.c b/ntoskrnl/mm/i386/pagepae.c similarity index 100% rename from reactos/ntoskrnl/mm/i386/pagepae.c rename to ntoskrnl/mm/i386/pagepae.c diff --git a/reactos/ntoskrnl/mm/marea.c b/ntoskrnl/mm/marea.c similarity index 100% rename from reactos/ntoskrnl/mm/marea.c rename to ntoskrnl/mm/marea.c diff --git a/reactos/ntoskrnl/mm/mmfault.c b/ntoskrnl/mm/mmfault.c similarity index 100% rename from reactos/ntoskrnl/mm/mmfault.c rename to ntoskrnl/mm/mmfault.c diff --git a/reactos/ntoskrnl/mm/mminit.c b/ntoskrnl/mm/mminit.c similarity index 100% rename from reactos/ntoskrnl/mm/mminit.c rename to ntoskrnl/mm/mminit.c diff --git a/reactos/ntoskrnl/mm/pagefile.c b/ntoskrnl/mm/pagefile.c similarity index 100% rename from reactos/ntoskrnl/mm/pagefile.c rename to ntoskrnl/mm/pagefile.c diff --git a/reactos/ntoskrnl/mm/powerpc/page.c b/ntoskrnl/mm/powerpc/page.c similarity index 100% rename from reactos/ntoskrnl/mm/powerpc/page.c rename to ntoskrnl/mm/powerpc/page.c diff --git a/reactos/ntoskrnl/mm/powerpc/pfault.c b/ntoskrnl/mm/powerpc/pfault.c similarity index 100% rename from reactos/ntoskrnl/mm/powerpc/pfault.c rename to ntoskrnl/mm/powerpc/pfault.c diff --git a/reactos/ntoskrnl/mm/region.c b/ntoskrnl/mm/region.c similarity index 100% rename from reactos/ntoskrnl/mm/region.c rename to ntoskrnl/mm/region.c diff --git a/reactos/ntoskrnl/mm/rmap.c b/ntoskrnl/mm/rmap.c similarity index 100% rename from reactos/ntoskrnl/mm/rmap.c rename to ntoskrnl/mm/rmap.c diff --git a/reactos/ntoskrnl/mm/section.c b/ntoskrnl/mm/section.c similarity index 100% rename from reactos/ntoskrnl/mm/section.c rename to ntoskrnl/mm/section.c diff --git a/reactos/ntoskrnl/ntdll.S b/ntoskrnl/ntdll.S similarity index 100% rename from reactos/ntoskrnl/ntdll.S rename to ntoskrnl/ntdll.S diff --git a/reactos/ntoskrnl/ntoskrnl.rc b/ntoskrnl/ntoskrnl.rc similarity index 100% rename from reactos/ntoskrnl/ntoskrnl.rc rename to ntoskrnl/ntoskrnl.rc diff --git a/reactos/ntoskrnl/ntoskrnl.spec b/ntoskrnl/ntoskrnl.spec similarity index 100% rename from reactos/ntoskrnl/ntoskrnl.spec rename to ntoskrnl/ntoskrnl.spec diff --git a/reactos/ntoskrnl/ntoskrnl_amd64.lds b/ntoskrnl/ntoskrnl_amd64.lds similarity index 100% rename from reactos/ntoskrnl/ntoskrnl_amd64.lds rename to ntoskrnl/ntoskrnl_amd64.lds diff --git a/reactos/ntoskrnl/ntoskrnl_arm.lds b/ntoskrnl/ntoskrnl_arm.lds similarity index 100% rename from reactos/ntoskrnl/ntoskrnl_arm.lds rename to ntoskrnl/ntoskrnl_arm.lds diff --git a/reactos/ntoskrnl/ntoskrnl_i386.lds b/ntoskrnl/ntoskrnl_i386.lds similarity index 100% rename from reactos/ntoskrnl/ntoskrnl_i386.lds rename to ntoskrnl/ntoskrnl_i386.lds diff --git a/reactos/ntoskrnl/ntoskrnl_powerpc.lds b/ntoskrnl/ntoskrnl_powerpc.lds similarity index 100% rename from reactos/ntoskrnl/ntoskrnl_powerpc.lds rename to ntoskrnl/ntoskrnl_powerpc.lds diff --git a/reactos/ntoskrnl/ob/obdir.c b/ntoskrnl/ob/obdir.c similarity index 100% rename from reactos/ntoskrnl/ob/obdir.c rename to ntoskrnl/ob/obdir.c diff --git a/reactos/ntoskrnl/ob/obhandle.c b/ntoskrnl/ob/obhandle.c similarity index 100% rename from reactos/ntoskrnl/ob/obhandle.c rename to ntoskrnl/ob/obhandle.c diff --git a/reactos/ntoskrnl/ob/obinit.c b/ntoskrnl/ob/obinit.c similarity index 100% rename from reactos/ntoskrnl/ob/obinit.c rename to ntoskrnl/ob/obinit.c diff --git a/reactos/ntoskrnl/ob/oblife.c b/ntoskrnl/ob/oblife.c similarity index 100% rename from reactos/ntoskrnl/ob/oblife.c rename to ntoskrnl/ob/oblife.c diff --git a/reactos/ntoskrnl/ob/oblink.c b/ntoskrnl/ob/oblink.c similarity index 100% rename from reactos/ntoskrnl/ob/oblink.c rename to ntoskrnl/ob/oblink.c diff --git a/reactos/ntoskrnl/ob/obname.c b/ntoskrnl/ob/obname.c similarity index 100% rename from reactos/ntoskrnl/ob/obname.c rename to ntoskrnl/ob/obname.c diff --git a/reactos/ntoskrnl/ob/obref.c b/ntoskrnl/ob/obref.c similarity index 100% rename from reactos/ntoskrnl/ob/obref.c rename to ntoskrnl/ob/obref.c diff --git a/reactos/ntoskrnl/ob/obsdcach.c b/ntoskrnl/ob/obsdcach.c similarity index 100% rename from reactos/ntoskrnl/ob/obsdcach.c rename to ntoskrnl/ob/obsdcach.c diff --git a/reactos/ntoskrnl/ob/obsecure.c b/ntoskrnl/ob/obsecure.c similarity index 100% rename from reactos/ntoskrnl/ob/obsecure.c rename to ntoskrnl/ob/obsecure.c diff --git a/reactos/ntoskrnl/ob/obwait.c b/ntoskrnl/ob/obwait.c similarity index 100% rename from reactos/ntoskrnl/ob/obwait.c rename to ntoskrnl/ob/obwait.c diff --git a/reactos/ntoskrnl/po/events.c b/ntoskrnl/po/events.c similarity index 100% rename from reactos/ntoskrnl/po/events.c rename to ntoskrnl/po/events.c diff --git a/reactos/ntoskrnl/po/guid.c b/ntoskrnl/po/guid.c similarity index 100% rename from reactos/ntoskrnl/po/guid.c rename to ntoskrnl/po/guid.c diff --git a/reactos/ntoskrnl/po/poshtdwn.c b/ntoskrnl/po/poshtdwn.c similarity index 100% rename from reactos/ntoskrnl/po/poshtdwn.c rename to ntoskrnl/po/poshtdwn.c diff --git a/reactos/ntoskrnl/po/povolume.c b/ntoskrnl/po/povolume.c similarity index 100% rename from reactos/ntoskrnl/po/povolume.c rename to ntoskrnl/po/povolume.c diff --git a/reactos/ntoskrnl/po/power.c b/ntoskrnl/po/power.c similarity index 100% rename from reactos/ntoskrnl/po/power.c rename to ntoskrnl/po/power.c diff --git a/reactos/ntoskrnl/ps/amd64/psctx.c b/ntoskrnl/ps/amd64/psctx.c similarity index 100% rename from reactos/ntoskrnl/ps/amd64/psctx.c rename to ntoskrnl/ps/amd64/psctx.c diff --git a/reactos/ntoskrnl/ps/arm/psctx.c b/ntoskrnl/ps/arm/psctx.c similarity index 100% rename from reactos/ntoskrnl/ps/arm/psctx.c rename to ntoskrnl/ps/arm/psctx.c diff --git a/reactos/ntoskrnl/ps/debug.c b/ntoskrnl/ps/debug.c similarity index 100% rename from reactos/ntoskrnl/ps/debug.c rename to ntoskrnl/ps/debug.c diff --git a/reactos/ntoskrnl/ps/i386/psctx.c b/ntoskrnl/ps/i386/psctx.c similarity index 100% rename from reactos/ntoskrnl/ps/i386/psctx.c rename to ntoskrnl/ps/i386/psctx.c diff --git a/reactos/ntoskrnl/ps/i386/psldt.c b/ntoskrnl/ps/i386/psldt.c similarity index 100% rename from reactos/ntoskrnl/ps/i386/psldt.c rename to ntoskrnl/ps/i386/psldt.c diff --git a/reactos/ntoskrnl/ps/job.c b/ntoskrnl/ps/job.c similarity index 100% rename from reactos/ntoskrnl/ps/job.c rename to ntoskrnl/ps/job.c diff --git a/reactos/ntoskrnl/ps/kill.c b/ntoskrnl/ps/kill.c similarity index 100% rename from reactos/ntoskrnl/ps/kill.c rename to ntoskrnl/ps/kill.c diff --git a/reactos/ntoskrnl/ps/process.c b/ntoskrnl/ps/process.c similarity index 100% rename from reactos/ntoskrnl/ps/process.c rename to ntoskrnl/ps/process.c diff --git a/reactos/ntoskrnl/ps/psmgr.c b/ntoskrnl/ps/psmgr.c similarity index 100% rename from reactos/ntoskrnl/ps/psmgr.c rename to ntoskrnl/ps/psmgr.c diff --git a/reactos/ntoskrnl/ps/psnotify.c b/ntoskrnl/ps/psnotify.c similarity index 100% rename from reactos/ntoskrnl/ps/psnotify.c rename to ntoskrnl/ps/psnotify.c diff --git a/reactos/ntoskrnl/ps/query.c b/ntoskrnl/ps/query.c similarity index 100% rename from reactos/ntoskrnl/ps/query.c rename to ntoskrnl/ps/query.c diff --git a/reactos/ntoskrnl/ps/quota.c b/ntoskrnl/ps/quota.c similarity index 100% rename from reactos/ntoskrnl/ps/quota.c rename to ntoskrnl/ps/quota.c diff --git a/reactos/ntoskrnl/ps/security.c b/ntoskrnl/ps/security.c similarity index 100% rename from reactos/ntoskrnl/ps/security.c rename to ntoskrnl/ps/security.c diff --git a/reactos/ntoskrnl/ps/state.c b/ntoskrnl/ps/state.c similarity index 100% rename from reactos/ntoskrnl/ps/state.c rename to ntoskrnl/ps/state.c diff --git a/reactos/ntoskrnl/ps/thread.c b/ntoskrnl/ps/thread.c similarity index 100% rename from reactos/ntoskrnl/ps/thread.c rename to ntoskrnl/ps/thread.c diff --git a/reactos/ntoskrnl/ps/win32.c b/ntoskrnl/ps/win32.c similarity index 100% rename from reactos/ntoskrnl/ps/win32.c rename to ntoskrnl/ps/win32.c diff --git a/reactos/ntoskrnl/rtl/arm/rtlexcpt.c b/ntoskrnl/rtl/arm/rtlexcpt.c similarity index 100% rename from reactos/ntoskrnl/rtl/arm/rtlexcpt.c rename to ntoskrnl/rtl/arm/rtlexcpt.c diff --git a/reactos/ntoskrnl/rtl/i386/stack.S b/ntoskrnl/rtl/i386/stack.S similarity index 100% rename from reactos/ntoskrnl/rtl/i386/stack.S rename to ntoskrnl/rtl/i386/stack.S diff --git a/reactos/ntoskrnl/rtl/libsupp.c b/ntoskrnl/rtl/libsupp.c similarity index 100% rename from reactos/ntoskrnl/rtl/libsupp.c rename to ntoskrnl/rtl/libsupp.c diff --git a/reactos/ntoskrnl/rtl/misc.c b/ntoskrnl/rtl/misc.c similarity index 100% rename from reactos/ntoskrnl/rtl/misc.c rename to ntoskrnl/rtl/misc.c diff --git a/reactos/ntoskrnl/se/access.c b/ntoskrnl/se/access.c similarity index 100% rename from reactos/ntoskrnl/se/access.c rename to ntoskrnl/se/access.c diff --git a/reactos/ntoskrnl/se/acl.c b/ntoskrnl/se/acl.c similarity index 100% rename from reactos/ntoskrnl/se/acl.c rename to ntoskrnl/se/acl.c diff --git a/reactos/ntoskrnl/se/audit.c b/ntoskrnl/se/audit.c similarity index 100% rename from reactos/ntoskrnl/se/audit.c rename to ntoskrnl/se/audit.c diff --git a/reactos/ntoskrnl/se/lsa.c b/ntoskrnl/se/lsa.c similarity index 100% rename from reactos/ntoskrnl/se/lsa.c rename to ntoskrnl/se/lsa.c diff --git a/reactos/ntoskrnl/se/priv.c b/ntoskrnl/se/priv.c similarity index 100% rename from reactos/ntoskrnl/se/priv.c rename to ntoskrnl/se/priv.c diff --git a/reactos/ntoskrnl/se/sd.c b/ntoskrnl/se/sd.c similarity index 100% rename from reactos/ntoskrnl/se/sd.c rename to ntoskrnl/se/sd.c diff --git a/reactos/ntoskrnl/se/semgr.c b/ntoskrnl/se/semgr.c similarity index 100% rename from reactos/ntoskrnl/se/semgr.c rename to ntoskrnl/se/semgr.c diff --git a/reactos/ntoskrnl/se/sid.c b/ntoskrnl/se/sid.c similarity index 100% rename from reactos/ntoskrnl/se/sid.c rename to ntoskrnl/se/sid.c diff --git a/reactos/ntoskrnl/se/token.c b/ntoskrnl/se/token.c similarity index 100% rename from reactos/ntoskrnl/se/token.c rename to ntoskrnl/se/token.c diff --git a/reactos/ntoskrnl/sysfuncs.lst b/ntoskrnl/sysfuncs.lst similarity index 100% rename from reactos/ntoskrnl/sysfuncs.lst rename to ntoskrnl/sysfuncs.lst diff --git a/reactos/ntoskrnl/tests/TestDebug.c b/ntoskrnl/tests/TestDebug.c similarity index 100% rename from reactos/ntoskrnl/tests/TestDebug.c rename to ntoskrnl/tests/TestDebug.c diff --git a/reactos/ntoskrnl/tests/TestTimer.c b/ntoskrnl/tests/TestTimer.c similarity index 100% rename from reactos/ntoskrnl/tests/TestTimer.c rename to ntoskrnl/tests/TestTimer.c diff --git a/reactos/ntoskrnl/tests/fsrtl.c b/ntoskrnl/tests/fsrtl.c similarity index 100% rename from reactos/ntoskrnl/tests/fsrtl.c rename to ntoskrnl/tests/fsrtl.c diff --git a/reactos/ntoskrnl/tests/setup.c b/ntoskrnl/tests/setup.c similarity index 100% rename from reactos/ntoskrnl/tests/setup.c rename to ntoskrnl/tests/setup.c diff --git a/reactos/ntoskrnl/tests/stubs.tst b/ntoskrnl/tests/stubs.tst similarity index 100% rename from reactos/ntoskrnl/tests/stubs.tst rename to ntoskrnl/tests/stubs.tst diff --git a/reactos/ntoskrnl/tests/symtest.c b/ntoskrnl/tests/symtest.c similarity index 100% rename from reactos/ntoskrnl/tests/symtest.c rename to ntoskrnl/tests/symtest.c diff --git a/reactos/ntoskrnl/tests/tests/VirtualMemory.c b/ntoskrnl/tests/tests/VirtualMemory.c similarity index 100% rename from reactos/ntoskrnl/tests/tests/VirtualMemory.c rename to ntoskrnl/tests/tests/VirtualMemory.c diff --git a/reactos/ntoskrnl/vdm/vdmexec.c b/ntoskrnl/vdm/vdmexec.c similarity index 100% rename from reactos/ntoskrnl/vdm/vdmexec.c rename to ntoskrnl/vdm/vdmexec.c diff --git a/reactos/ntoskrnl/vdm/vdmmain.c b/ntoskrnl/vdm/vdmmain.c similarity index 100% rename from reactos/ntoskrnl/vdm/vdmmain.c rename to ntoskrnl/vdm/vdmmain.c diff --git a/reactos/ntoskrnl/vf/driver.c b/ntoskrnl/vf/driver.c similarity index 100% rename from reactos/ntoskrnl/vf/driver.c rename to ntoskrnl/vf/driver.c diff --git a/reactos/ntoskrnl/wmi/wmi.c b/ntoskrnl/wmi/wmi.c similarity index 100% rename from reactos/ntoskrnl/wmi/wmi.c rename to ntoskrnl/wmi/wmi.c diff --git a/reactos/base/applications/cacls/lang/.gitignore b/reactos/base/applications/cacls/lang/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/base/applications/calc/lang/.gitignore b/reactos/base/applications/calc/lang/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/base/applications/cmdutils/.gitignore b/reactos/base/applications/cmdutils/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/base/setup/.gitignore b/reactos/base/setup/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/base/shell/.gitignore b/reactos/base/shell/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/base/system/.gitignore b/reactos/base/system/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/dll/3rdparty/.gitignore b/reactos/dll/3rdparty/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/dll/win32/.gitignore b/reactos/dll/win32/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/dll/win32/browseui/.gitignore b/reactos/dll/win32/browseui/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/dll/win32/netshell/lang/.gitignore b/reactos/dll/win32/netshell/lang/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/dll/win32/odbccp32/.gitignore b/reactos/dll/win32/odbccp32/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/dll/win32/powrprof/.gitignore b/reactos/dll/win32/powrprof/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/dll/win32/shell32/authors.c b/reactos/dll/win32/shell32/authors.c deleted file mode 100644 index 3101d764863..00000000000 --- a/reactos/dll/win32/shell32/authors.c +++ /dev/null @@ -1,3 +0,0 @@ -#include - -const char * const SHELL_Authors[] = { "Copyright 1993-" COPYRIGHT_YEAR " WINE team", "Copyright 1998-" COPYRIGHT_YEAR " ReactOS Team", 0 }; diff --git a/reactos/dll/win32/shell32/autocomplete.c b/reactos/dll/win32/shell32/autocomplete.c deleted file mode 100644 index b05fd67641b..00000000000 --- a/reactos/dll/win32/shell32/autocomplete.c +++ /dev/null @@ -1,629 +0,0 @@ -/* - * AutoComplete interfaces implementation. - * - * Copyright 2004 Maxime Bellengé - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -/* - Implemented: - - ACO_AUTOAPPEND style - - ACO_AUTOSUGGEST style - - ACO_UPDOWNKEYDROPSLIST style - - - Handle pwzsRegKeyPath and pwszQuickComplete in Init - - TODO: - - implement ACO_SEARCH style - - implement ACO_FILTERPREFIXES style - - implement ACO_USETAB style - - implement ACO_RTLREADING style - - */ - -#include - - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -typedef struct -{ - const IAutoCompleteVtbl *lpVtbl; - const IAutoComplete2Vtbl *lpvtblAutoComplete2; - LONG ref; - BOOL enabled; - HWND hwndEdit; - HWND hwndListBox; - WNDPROC wpOrigEditProc; - WNDPROC wpOrigLBoxProc; - WCHAR *txtbackup; - WCHAR *quickComplete; - IEnumString *enumstr; - AUTOCOMPLETEOPTIONS options; -} IAutoCompleteImpl; - -static const IAutoCompleteVtbl acvt; -static const IAutoComplete2Vtbl ac2vt; - -static IAutoCompleteImpl * impl_from_IAutoComplete2( IAutoComplete2 *iface ) -{ - return (IAutoCompleteImpl *)((char*)iface - FIELD_OFFSET(IAutoCompleteImpl, lpvtblAutoComplete2)); -} - - -/* - converts This to an interface pointer -*/ -#define _IUnknown_(This) (IUnknown*)&(This->lpVtbl) -#define _IAutoComplete2_(This) (IAutoComplete2*)&(This->lpvtblAutoComplete2) - -static LRESULT APIENTRY ACEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); -static LRESULT APIENTRY ACLBoxSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); - -/************************************************************************** - * IAutoComplete_Constructor - */ -HRESULT WINAPI IAutoComplete_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) -{ - IAutoCompleteImpl *lpac; - - if (pUnkOuter && !IsEqualIID (riid, &IID_IUnknown)) - return CLASS_E_NOAGGREGATION; - - lpac = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IAutoCompleteImpl)); - if (!lpac) - return E_OUTOFMEMORY; - - lpac->ref = 1; - lpac->lpVtbl = &acvt; - lpac->lpvtblAutoComplete2 = &ac2vt; - lpac->enabled = TRUE; - lpac->enumstr = NULL; - lpac->options = ACO_AUTOAPPEND; - lpac->wpOrigEditProc = NULL; - lpac->hwndListBox = NULL; - lpac->txtbackup = NULL; - lpac->quickComplete = NULL; - - if (!SUCCEEDED (IUnknown_QueryInterface (_IUnknown_ (lpac), riid, ppv))) { - IUnknown_Release (_IUnknown_ (lpac)); - return E_NOINTERFACE; - } - - TRACE("-- (%p)->\n",lpac); - - return S_OK; -} - -/************************************************************************** - * AutoComplete_QueryInterface - */ -static HRESULT WINAPI IAutoComplete_fnQueryInterface( - IAutoComplete * iface, - REFIID riid, - LPVOID *ppvObj) -{ - IAutoCompleteImpl *This = (IAutoCompleteImpl *)iface; - - TRACE("(%p)->(\n\tIID:\t%s,%p)\n", This, shdebugstr_guid(riid), ppvObj); - *ppvObj = NULL; - - if(IsEqualIID(riid, &IID_IUnknown)) - { - *ppvObj = This; - } - else if(IsEqualIID(riid, &IID_IAutoComplete)) - { - *ppvObj = (IAutoComplete*)This; - } - else if(IsEqualIID(riid, &IID_IAutoComplete2)) - { - *ppvObj = _IAutoComplete2_ (This); - } - - if (*ppvObj) - { - IAutoComplete_AddRef((IAutoComplete*)*ppvObj); - TRACE("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj); - return S_OK; - } - TRACE("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -/****************************************************************************** - * IAutoComplete_fnAddRef - */ -static ULONG WINAPI IAutoComplete_fnAddRef( - IAutoComplete * iface) -{ - IAutoCompleteImpl *This = (IAutoCompleteImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(%u)\n", This, refCount - 1); - - return refCount; -} - -/****************************************************************************** - * IAutoComplete_fnRelease - */ -static ULONG WINAPI IAutoComplete_fnRelease( - IAutoComplete * iface) -{ - IAutoCompleteImpl *This = (IAutoCompleteImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(%u)\n", This, refCount + 1); - - if (!refCount) { - TRACE(" destroying IAutoComplete(%p)\n",This); - HeapFree(GetProcessHeap(), 0, This->quickComplete); - HeapFree(GetProcessHeap(), 0, This->txtbackup); - if (This->hwndListBox) - DestroyWindow(This->hwndListBox); - if (This->enumstr) - IEnumString_Release(This->enumstr); - HeapFree(GetProcessHeap(), 0, This); - } - return refCount; -} - -/****************************************************************************** - * IAutoComplete_fnEnable - */ -static HRESULT WINAPI IAutoComplete_fnEnable( - IAutoComplete * iface, - BOOL fEnable) -{ - IAutoCompleteImpl *This = (IAutoCompleteImpl *)iface; - - HRESULT hr = S_OK; - - TRACE("(%p)->(%s)\n", This, (fEnable)?"true":"false"); - - This->enabled = fEnable; - - return hr; -} - -/****************************************************************************** - * IAutoComplete_fnInit - */ -static HRESULT WINAPI IAutoComplete_fnInit( - IAutoComplete * iface, - HWND hwndEdit, - IUnknown *punkACL, - LPCOLESTR pwzsRegKeyPath, - LPCOLESTR pwszQuickComplete) -{ - IAutoCompleteImpl *This = (IAutoCompleteImpl *)iface; - static const WCHAR lbName[] = {'L','i','s','t','B','o','x',0}; - - TRACE("(%p)->(0x%08lx, %p, %s, %s)\n", - This, hwndEdit, punkACL, debugstr_w(pwzsRegKeyPath), debugstr_w(pwszQuickComplete)); - - if (This->options & ACO_AUTOSUGGEST) TRACE(" ACO_AUTOSUGGEST\n"); - if (This->options & ACO_AUTOAPPEND) TRACE(" ACO_AUTOAPPEND\n"); - if (This->options & ACO_SEARCH) FIXME(" ACO_SEARCH not supported\n"); - if (This->options & ACO_FILTERPREFIXES) FIXME(" ACO_FILTERPREFIXES not supported\n"); - if (This->options & ACO_USETAB) FIXME(" ACO_USETAB not supported\n"); - if (This->options & ACO_UPDOWNKEYDROPSLIST) TRACE(" ACO_UPDOWNKEYDROPSLIST\n"); - if (This->options & ACO_RTLREADING) FIXME(" ACO_RTLREADING not supported\n"); - - This->hwndEdit = hwndEdit; - - if (!SUCCEEDED (IUnknown_QueryInterface (punkACL, &IID_IEnumString, (LPVOID*)&This->enumstr))) { - TRACE("No IEnumString interface\n"); - return E_NOINTERFACE; - } - - This->wpOrigEditProc = (WNDPROC) SetWindowLongPtrW( hwndEdit, GWLP_WNDPROC, (LONG_PTR) ACEditSubclassProc); - SetWindowLongPtrW( hwndEdit, GWLP_USERDATA, (LONG_PTR)This); - - if (This->options & ACO_AUTOSUGGEST) { - HWND hwndParent; - - hwndParent = GetParent(This->hwndEdit); - - /* FIXME : The listbox should be resizable with the mouse. WS_THICKFRAME looks ugly */ - This->hwndListBox = CreateWindowExW(0, lbName, NULL, - WS_BORDER | WS_CHILD | WS_VSCROLL | LBS_HASSTRINGS | LBS_NOTIFY | LBS_NOINTEGRALHEIGHT, - CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, - hwndParent, NULL, - (HINSTANCE)GetWindowLongPtrW( hwndParent, GWLP_HINSTANCE ), NULL); - - if (This->hwndListBox) { - This->wpOrigLBoxProc = (WNDPROC) SetWindowLongPtrW( This->hwndListBox, GWLP_WNDPROC, (LONG_PTR) ACLBoxSubclassProc); - SetWindowLongPtrW( This->hwndListBox, GWLP_USERDATA, (LONG_PTR)This); - } - } - - if (pwzsRegKeyPath) { - WCHAR *key; - WCHAR result[MAX_PATH]; - WCHAR *value; - HKEY hKey = 0; - LONG res; - LONG len; - - /* pwszRegKeyPath contains the key as well as the value, so we split */ - key = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (wcslen(pwzsRegKeyPath)+1)*sizeof(WCHAR)); - wcscpy(key, pwzsRegKeyPath); - value = strrchrW(key, '\\'); - *value = 0; - value++; - /* Now value contains the value and buffer the key */ - res = RegOpenKeyExW(HKEY_CURRENT_USER, key, 0, KEY_READ, &hKey); - if (res != ERROR_SUCCESS) { - /* if the key is not found, MSDN states we must seek in HKEY_LOCAL_MACHINE */ - res = RegOpenKeyExW(HKEY_LOCAL_MACHINE, key, 0, KEY_READ, &hKey); - } - if (res == ERROR_SUCCESS) { - res = RegQueryValueW(hKey, value, result, &len); - if (res == ERROR_SUCCESS) { - This->quickComplete = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len*sizeof(WCHAR)); - wcscpy(This->quickComplete, result); - } - RegCloseKey(hKey); - } - HeapFree(GetProcessHeap(), 0, key); - } - - if ((pwszQuickComplete) && (!This->quickComplete)) { - This->quickComplete = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (wcslen(pwszQuickComplete)+1)*sizeof(WCHAR)); - wcscpy(This->quickComplete, pwszQuickComplete); - } - - return S_OK; -} - -/************************************************************************** - * IAutoComplete_fnVTable - */ -static const IAutoCompleteVtbl acvt = -{ - IAutoComplete_fnQueryInterface, - IAutoComplete_fnAddRef, - IAutoComplete_fnRelease, - IAutoComplete_fnInit, - IAutoComplete_fnEnable, -}; - -/************************************************************************** - * AutoComplete2_QueryInterface - */ -static HRESULT WINAPI IAutoComplete2_fnQueryInterface( - IAutoComplete2 * iface, - REFIID riid, - LPVOID *ppvObj) -{ - IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface); - - TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); - - return IAutoComplete_QueryInterface((IAutoComplete*)This, riid, ppvObj); -} - -/****************************************************************************** - * IAutoComplete2_fnAddRef - */ -static ULONG WINAPI IAutoComplete2_fnAddRef( - IAutoComplete2 * iface) -{ - IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IAutoComplete2_AddRef((IAutoComplete*)This); -} - -/****************************************************************************** - * IAutoComplete2_fnRelease - */ -static ULONG WINAPI IAutoComplete2_fnRelease( - IAutoComplete2 * iface) -{ - IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IAutoComplete_Release((IAutoComplete*)This); -} - -/****************************************************************************** - * IAutoComplete2_fnEnable - */ -static HRESULT WINAPI IAutoComplete2_fnEnable( - IAutoComplete2 * iface, - BOOL fEnable) -{ - IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface); - - TRACE ("(%p)->(%s)\n", This, (fEnable)?"true":"false"); - - return IAutoComplete_Enable((IAutoComplete*)This, fEnable); -} - -/****************************************************************************** - * IAutoComplete2_fnInit - */ -static HRESULT WINAPI IAutoComplete2_fnInit( - IAutoComplete2 * iface, - HWND hwndEdit, - IUnknown *punkACL, - LPCOLESTR pwzsRegKeyPath, - LPCOLESTR pwszQuickComplete) -{ - IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface); - - TRACE("(%p)\n", This); - - return IAutoComplete_Init((IAutoComplete*)This, hwndEdit, punkACL, pwzsRegKeyPath, pwszQuickComplete); -} - -/************************************************************************** - * IAutoComplete_fnGetOptions - */ -static HRESULT WINAPI IAutoComplete2_fnGetOptions( - IAutoComplete2 * iface, - DWORD *pdwFlag) -{ - HRESULT hr = S_OK; - - IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface); - - TRACE("(%p) -> (%p)\n", This, pdwFlag); - - *pdwFlag = This->options; - - return hr; -} - -/************************************************************************** - * IAutoComplete_fnSetOptions - */ -static HRESULT WINAPI IAutoComplete2_fnSetOptions( - IAutoComplete2 * iface, - DWORD dwFlag) -{ - HRESULT hr = S_OK; - - IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface); - - TRACE("(%p) -> (0x%x)\n", This, dwFlag); - - This->options = dwFlag; - - return hr; -} - -/************************************************************************** - * IAutoComplete2_fnVTable - */ -static const IAutoComplete2Vtbl ac2vt = -{ - IAutoComplete2_fnQueryInterface, - IAutoComplete2_fnAddRef, - IAutoComplete2_fnRelease, - IAutoComplete2_fnInit, - IAutoComplete2_fnEnable, - /* IAutoComplete2 */ - IAutoComplete2_fnSetOptions, - IAutoComplete2_fnGetOptions, -}; - -/* - Window procedure for autocompletion - */ -static LRESULT APIENTRY ACEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - IAutoCompleteImpl *This = (IAutoCompleteImpl *)GetWindowLongPtrW(hwnd, GWLP_USERDATA); - LPOLESTR strs; - HRESULT hr; - WCHAR hwndText[255]; - WCHAR *hwndQCText; - RECT r; - BOOL control, filled, displayall = FALSE; - int cpt, height, sel; - - if (!This->enabled) return CallWindowProcW(This->wpOrigEditProc, hwnd, uMsg, wParam, lParam); - - switch (uMsg) - { - case CB_SHOWDROPDOWN: - ShowWindow(This->hwndListBox, SW_HIDE); - break; - case WM_KILLFOCUS: - if ((This->options & ACO_AUTOSUGGEST) && - ((HWND)wParam != This->hwndListBox)) - { - ShowWindow(This->hwndListBox, SW_HIDE); - } - break; - case WM_KEYUP: - - GetWindowTextW( hwnd, (LPWSTR)hwndText, 255); - - switch(wParam) { - case VK_RETURN: - /* If quickComplete is set and control is pressed, replace the string */ - control = GetKeyState(VK_CONTROL) & 0x8000; - if (control && This->quickComplete) { - hwndQCText = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - (wcslen(This->quickComplete)+wcslen(hwndText))*sizeof(WCHAR)); - sel = swprintf(hwndQCText, This->quickComplete, hwndText); - SendMessageW(hwnd, WM_SETTEXT, 0, (LPARAM)hwndQCText); - SendMessageW(hwnd, EM_SETSEL, 0, sel); - HeapFree(GetProcessHeap(), 0, hwndQCText); - } - - ShowWindow(This->hwndListBox, SW_HIDE); - return 0; - case VK_LEFT: - case VK_RIGHT: - return 0; - case VK_UP: - case VK_DOWN: - /* Two cases here : - - if the listbox is not visible, displays it - with all the entries if the style ACO_UPDOWNKEYDROPSLIST - is present but does not select anything. - - if the listbox is visible, change the selection - */ - if ( (This->options & (ACO_AUTOSUGGEST | ACO_UPDOWNKEYDROPSLIST)) - && (!IsWindowVisible(This->hwndListBox) && (! *hwndText)) ) - { - /* We must display all the entries */ - displayall = TRUE; - } else { - if (IsWindowVisible(This->hwndListBox)) { - int count; - - count = SendMessageW(This->hwndListBox, LB_GETCOUNT, 0, 0); - /* Change the selection */ - sel = SendMessageW(This->hwndListBox, LB_GETCURSEL, 0, 0); - if (wParam == VK_UP) - sel = ((sel-1)<0)?count-1:sel-1; - else - sel = ((sel+1)>= count)?-1:sel+1; - SendMessageW(This->hwndListBox, LB_SETCURSEL, sel, 0); - if (sel != -1) { - WCHAR *msg; - int len; - - len = SendMessageW(This->hwndListBox, LB_GETTEXTLEN, sel, (LPARAM)NULL); - msg = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (len+1)*sizeof(WCHAR)); - SendMessageW(This->hwndListBox, LB_GETTEXT, sel, (LPARAM)msg); - SendMessageW(hwnd, WM_SETTEXT, 0, (LPARAM)msg); - SendMessageW(hwnd, EM_SETSEL, wcslen(msg), wcslen(msg)); - HeapFree(GetProcessHeap(), 0, msg); - } else { - SendMessageW(hwnd, WM_SETTEXT, 0, (LPARAM)This->txtbackup); - SendMessageW(hwnd, EM_SETSEL, wcslen(This->txtbackup), wcslen(This->txtbackup)); - } - } - return 0; - } - break; - case VK_BACK: - case VK_DELETE: - if ((! *hwndText) && (This->options & ACO_AUTOSUGGEST)) { - ShowWindow(This->hwndListBox, SW_HIDE); - return CallWindowProcW(This->wpOrigEditProc, hwnd, uMsg, wParam, lParam); - } - if (This->options & ACO_AUTOAPPEND) { - DWORD b; - SendMessageW(hwnd, EM_GETSEL, (WPARAM)&b, (LPARAM)NULL); - if (b>1) { - hwndText[b-1] = '\0'; - } else { - hwndText[0] = '\0'; - SetWindowTextW(hwnd, hwndText); - } - } - break; - default: - ; - } - - SendMessageW(This->hwndListBox, LB_RESETCONTENT, 0, 0); - - HeapFree(GetProcessHeap(), 0, This->txtbackup); - This->txtbackup = HeapAlloc(GetProcessHeap(), - HEAP_ZERO_MEMORY, (wcslen(hwndText)+1)*sizeof(WCHAR)); - wcscpy(This->txtbackup, hwndText); - - /* Returns if there is no text to search and we doesn't want to display all the entries */ - if ((!displayall) && (! *hwndText) ) - break; - - IEnumString_Reset(This->enumstr); - filled = FALSE; - for(cpt = 0;;) { - hr = IEnumString_Next(This->enumstr, 1, &strs, NULL); - if (hr != S_OK) - break; - - if ((LPWSTR)strstrW(strs, hwndText) == strs) { - - if (This->options & ACO_AUTOAPPEND) { - SetWindowTextW(hwnd, strs); - SendMessageW(hwnd, EM_SETSEL, wcslen(hwndText), wcslen(strs)); - break; - } - - if (This->options & ACO_AUTOSUGGEST) { - SendMessageW(This->hwndListBox, LB_ADDSTRING, 0, (LPARAM)strs); - filled = TRUE; - cpt++; - } - } - } - - if (This->options & ACO_AUTOSUGGEST) { - if (filled) { - height = SendMessageW(This->hwndListBox, LB_GETITEMHEIGHT, 0, 0); - SendMessageW(This->hwndListBox, LB_CARETOFF, 0, 0); - GetWindowRect(hwnd, &r); - SetParent(This->hwndListBox, HWND_DESKTOP); - /* It seems that Windows XP displays 7 lines at most - and otherwise displays a vertical scroll bar */ - SetWindowPos(This->hwndListBox, HWND_TOP, - r.left, r.bottom + 1, r.right - r.left, min(height * 7, height*(cpt+1)), - SWP_SHOWWINDOW ); - } else { - ShowWindow(This->hwndListBox, SW_HIDE); - } - } - - break; - default: - return CallWindowProcW(This->wpOrigEditProc, hwnd, uMsg, wParam, lParam); - - } - - return 0; -} - -static LRESULT APIENTRY ACLBoxSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - IAutoCompleteImpl *This = (IAutoCompleteImpl *)GetWindowLongPtrW(hwnd, GWLP_USERDATA); - WCHAR *msg; - int sel, len; - - switch (uMsg) { - case WM_MOUSEMOVE: - sel = SendMessageW(hwnd, LB_ITEMFROMPOINT, 0, lParam); - SendMessageW(hwnd, LB_SETCURSEL, (WPARAM)sel, (LPARAM)0); - break; - case WM_LBUTTONDOWN: - sel = SendMessageW(hwnd, LB_GETCURSEL, 0, 0); - if (sel < 0) - break; - len = SendMessageW(This->hwndListBox, LB_GETTEXTLEN, sel, 0); - msg = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (len+1)*sizeof(WCHAR)); - SendMessageW(hwnd, LB_GETTEXT, sel, (LPARAM)msg); - SendMessageW(This->hwndEdit, WM_SETTEXT, 0, (LPARAM)msg); - SendMessageW(This->hwndEdit, EM_SETSEL, 0, wcslen(msg)); - ShowWindow(hwnd, SW_HIDE); - HeapFree(GetProcessHeap(), 0, msg); - break; - default: - return CallWindowProcW(This->wpOrigLBoxProc, hwnd, uMsg, wParam, lParam); - } - return 0; -} diff --git a/reactos/dll/win32/shell32/brsfolder.c b/reactos/dll/win32/shell32/brsfolder.c deleted file mode 100644 index 8409a3e5512..00000000000 --- a/reactos/dll/win32/shell32/brsfolder.c +++ /dev/null @@ -1,816 +0,0 @@ -/* - * Copyright 1999 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * FIXME: - * - many memory leaks - * - many flags unimplemented - * - implement new dialog style "make new folder" button - * - implement editbox - * - implement new dialog style resizing - */ - -#include - - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -typedef struct tagbrowse_info -{ - HWND hWnd; - HWND hwndTreeView; - LPBROWSEINFOW lpBrowseInfo; - LPITEMIDLIST pidlRet; -} browse_info; - -typedef struct tagTV_ITEMDATA -{ - LPSHELLFOLDER lpsfParent; /* IShellFolder of the parent */ - LPITEMIDLIST lpi; /* PIDL relative to parent */ - LPITEMIDLIST lpifq; /* Fully qualified PIDL */ - IEnumIDList* pEnumIL; /* Children iterator */ -} TV_ITEMDATA, *LPTV_ITEMDATA; - -#define SUPPORTEDFLAGS (BIF_STATUSTEXT | \ - BIF_BROWSEFORCOMPUTER | \ - BIF_RETURNFSANCESTORS | \ - BIF_RETURNONLYFSDIRS | \ - BIF_NONEWFOLDERBUTTON | \ - BIF_NEWDIALOGSTYLE | \ - BIF_BROWSEINCLUDEFILES) - -static void FillTreeView(browse_info*, LPSHELLFOLDER, - LPITEMIDLIST, HTREEITEM, IEnumIDList*); -static HTREEITEM InsertTreeViewItem( browse_info*, IShellFolder *, - LPCITEMIDLIST, LPCITEMIDLIST, IEnumIDList*, HTREEITEM); - -static const WCHAR szBrowseFolderInfo[] = { - '_','_','W','I','N','E','_', - 'B','R','S','F','O','L','D','E','R','D','L','G','_', - 'I','N','F','O',0 -}; - -static DWORD __inline BrowseFlagsToSHCONTF(UINT ulFlags) -{ - return SHCONTF_FOLDERS | (ulFlags & BIF_BROWSEINCLUDEFILES ? SHCONTF_NONFOLDERS : 0); -} - -static void browsefolder_callback( LPBROWSEINFOW lpBrowseInfo, HWND hWnd, - UINT msg, LPARAM param ) -{ - if (!lpBrowseInfo->lpfn) - return; - lpBrowseInfo->lpfn( hWnd, msg, param, lpBrowseInfo->lParam ); -} - -/****************************************************************************** - * InitializeTreeView [Internal] - * - * Called from WM_INITDIALOG handler. - * - * PARAMS - * hwndParent [I] The BrowseForFolder dialog - * root [I] ITEMIDLIST of the root shell folder - */ -static void InitializeTreeView( browse_info *info ) -{ - LPITEMIDLIST pidlParent, pidlChild; - HIMAGELIST hImageList; - HRESULT hr; - IShellFolder *lpsfParent, *lpsfRoot; - IEnumIDList * pEnumChildren = NULL; - HTREEITEM item; - DWORD flags; - LPCITEMIDLIST root = info->lpBrowseInfo->pidlRoot; - - TRACE("%p\n", info ); - - Shell_GetImageLists(NULL, &hImageList); - - if (hImageList) - SendMessageW( info->hwndTreeView, TVM_SETIMAGELIST, 0, (LPARAM)hImageList ); - - /* We want to call InsertTreeViewItem down the code, in order to insert - * the root item of the treeview. Due to InsertTreeViewItem's signature, - * we need the following to do this: - * - * + An ITEMIDLIST corresponding to _the parent_ of root. - * + An ITEMIDLIST, which is a relative path from root's parent to root - * (containing a single SHITEMID). - * + An IShellFolder interface pointer of root's parent folder. - * - * If root is 'Desktop', then root's parent is also 'Desktop'. - */ - - pidlParent = ILClone(root); - ILRemoveLastID(pidlParent); - pidlChild = ILClone(ILFindLastID(root)); - - if (_ILIsDesktop(pidlParent)) { - hr = SHGetDesktopFolder(&lpsfParent); - } else { - IShellFolder *lpsfDesktop; - hr = SHGetDesktopFolder(&lpsfDesktop); - if (!SUCCEEDED(hr)) { - WARN("SHGetDesktopFolder failed! hr = %08x\n", hr); - return; - } - hr = IShellFolder_BindToObject(lpsfDesktop, pidlParent, 0, &IID_IShellFolder, (LPVOID*)&lpsfParent); - IShellFolder_Release(lpsfDesktop); - } - - if (!SUCCEEDED(hr)) { - WARN("Could not bind to parent shell folder! hr = %08x\n", hr); - return; - } - - if (pidlChild && pidlChild->mkid.cb) { - hr = IShellFolder_BindToObject(lpsfParent, pidlChild, 0, &IID_IShellFolder, (LPVOID*)&lpsfRoot); - } else { - lpsfRoot = lpsfParent; - hr = IShellFolder_AddRef(lpsfParent); - } - - if (!SUCCEEDED(hr)) { - WARN("Could not bind to root shell folder! hr = %08x\n", hr); - IShellFolder_Release(lpsfParent); - return; - } - - flags = BrowseFlagsToSHCONTF( info->lpBrowseInfo->ulFlags ); - hr = IShellFolder_EnumObjects( lpsfRoot, info->hWnd, flags, &pEnumChildren ); - if (!SUCCEEDED(hr)) { - WARN("Could not get child iterator! hr = %08x\n", hr); - IShellFolder_Release(lpsfParent); - IShellFolder_Release(lpsfRoot); - return; - } - - SendMessageW( info->hwndTreeView, TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT ); - item = InsertTreeViewItem( info, lpsfParent, pidlChild, - pidlParent, pEnumChildren, TVI_ROOT ); - SendMessageW( info->hwndTreeView, TVM_EXPAND, TVE_EXPAND, (LPARAM)item ); - - IShellFolder_Release(lpsfRoot); - IShellFolder_Release(lpsfParent); -} - -static int GetIcon(LPCITEMIDLIST lpi, UINT uFlags) -{ - SHFILEINFOW sfi; - SHGetFileInfoW((LPCWSTR)lpi, 0 ,&sfi, sizeof(SHFILEINFOW), uFlags); - return sfi.iIcon; -} - -static void GetNormalAndSelectedIcons(LPITEMIDLIST lpifq, LPTVITEMW lpTV_ITEM) -{ - LPITEMIDLIST pidlDesktop = NULL; - DWORD flags; - - TRACE("%p %p\n",lpifq, lpTV_ITEM); - - if (!lpifq) - { - pidlDesktop = _ILCreateDesktop(); - lpifq = pidlDesktop; - } - - flags = SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON; - lpTV_ITEM->iImage = GetIcon( lpifq, flags ); - - flags = SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_OPENICON; - lpTV_ITEM->iSelectedImage = GetIcon( lpifq, flags ); - - if (pidlDesktop) - ILFree( pidlDesktop ); -} - -/****************************************************************************** - * GetName [Internal] - * - * Query a shell folder for the display name of one of it's children - * - * PARAMS - * lpsf [I] IShellFolder interface of the folder to be queried. - * lpi [I] ITEMIDLIST of the child, relative to parent - * dwFlags [I] as in IShellFolder::GetDisplayNameOf - * lpFriendlyName [O] The desired display name in unicode - * - * RETURNS - * Success: TRUE - * Failure: FALSE - */ -static BOOL GetName(LPSHELLFOLDER lpsf, LPCITEMIDLIST lpi, DWORD dwFlags, LPWSTR lpFriendlyName) -{ - BOOL bSuccess=TRUE; - STRRET str; - - TRACE("%p %p %x %p\n", lpsf, lpi, dwFlags, lpFriendlyName); - if (SUCCEEDED(IShellFolder_GetDisplayNameOf(lpsf, lpi, dwFlags, &str))) - bSuccess = StrRetToStrNW(lpFriendlyName, MAX_PATH, &str, lpi); - else - bSuccess = FALSE; - - TRACE("-- %s\n", debugstr_w(lpFriendlyName)); - return bSuccess; -} - -/****************************************************************************** - * InsertTreeViewItem [Internal] - * - * PARAMS - * info [I] data for the dialog - * lpsf [I] IShellFolder interface of the item's parent shell folder - * pidl [I] ITEMIDLIST of the child to insert, relative to parent - * pidlParent [I] ITEMIDLIST of the parent shell folder - * pEnumIL [I] Iterator for the children of the item to be inserted - * hParent [I] The treeview-item that represents the parent shell folder - * - * RETURNS - * Success: Handle to the created and inserted treeview-item - * Failure: NULL - */ -static HTREEITEM InsertTreeViewItem( browse_info *info, IShellFolder * lpsf, - LPCITEMIDLIST pidl, LPCITEMIDLIST pidlParent, IEnumIDList* pEnumIL, - HTREEITEM hParent) -{ - TVITEMW tvi; - TVINSERTSTRUCTW tvins; - WCHAR szBuff[MAX_PATH]; - LPTV_ITEMDATA lptvid=0; - - tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM; - - tvi.cChildren= pEnumIL ? 1 : 0; - tvi.mask |= TVIF_CHILDREN; - - lptvid = SHAlloc( sizeof(TV_ITEMDATA) ); - if (!lptvid) - return NULL; - - if (!GetName(lpsf, pidl, SHGDN_NORMAL, szBuff)) - return NULL; - - tvi.pszText = szBuff; - tvi.cchTextMax = MAX_PATH; - tvi.lParam = (LPARAM)lptvid; - - IShellFolder_AddRef(lpsf); - lptvid->lpsfParent = lpsf; - lptvid->lpi = ILClone(pidl); - lptvid->lpifq = pidlParent ? ILCombine(pidlParent, pidl) : ILClone(pidl); - lptvid->pEnumIL = pEnumIL; - GetNormalAndSelectedIcons(lptvid->lpifq, &tvi); - - tvins.u.item = tvi; - tvins.hInsertAfter = NULL; - tvins.hParent = hParent; - - return (HTREEITEM)SendMessageW(info->hwndTreeView, TVM_INSERTITEM, 0, (LPARAM)&tvins ); -} - -/****************************************************************************** - * FillTreeView [Internal] - * - * For each child (given by lpe) of the parent shell folder, which is given by - * lpsf and whose PIDL is pidl, insert a treeview-item right under hParent - * - * PARAMS - * info [I] data for the dialog - * lpsf [I] IShellFolder interface of the parent shell folder - * pidl [I] ITEMIDLIST of the parent shell folder - * hParent [I] The treeview item that represents the parent shell folder - * lpe [I] An iterator for the children of the parent shell folder - */ -static void FillTreeView( browse_info *info, IShellFolder * lpsf, - LPITEMIDLIST pidl, HTREEITEM hParent, IEnumIDList* lpe) -{ - HTREEITEM hPrev = 0; - LPITEMIDLIST pidlTemp = 0; - ULONG ulFetched; - HRESULT hr; - HWND hwnd = GetParent( info->hwndTreeView ); - - TRACE("%p %p %p %p\n",lpsf, pidl, hParent, lpe); - - /* No IEnumIDList -> No children */ - if (!lpe) return; - - SetCapture( hwnd ); - SetCursor( LoadCursorA( 0, (LPSTR)IDC_WAIT ) ); - - while (NOERROR == IEnumIDList_Next(lpe,1,&pidlTemp,&ulFetched)) - { - ULONG ulAttrs = SFGAO_HASSUBFOLDER | SFGAO_FOLDER; - IEnumIDList* pEnumIL = NULL; - IShellFolder* pSFChild = NULL; - IShellFolder_GetAttributesOf(lpsf, 1, (LPCITEMIDLIST*)&pidlTemp, &ulAttrs); - if (ulAttrs & SFGAO_FOLDER) - { - hr = IShellFolder_BindToObject(lpsf,pidlTemp,NULL,&IID_IShellFolder,(LPVOID*)&pSFChild); - if (SUCCEEDED(hr)) - { - DWORD flags = BrowseFlagsToSHCONTF(info->lpBrowseInfo->ulFlags); - hr = IShellFolder_EnumObjects(pSFChild, hwnd, flags, &pEnumIL); - if (hr == S_OK) - { - if ((IEnumIDList_Skip(pEnumIL, 1) != S_OK) || - FAILED(IEnumIDList_Reset(pEnumIL))) - { - IEnumIDList_Release(pEnumIL); - pEnumIL = NULL; - } - } - IShellFolder_Release(pSFChild); - } - } - - if (!(hPrev = InsertTreeViewItem(info, lpsf, pidlTemp, pidl, pEnumIL, hParent))) - goto done; - SHFree(pidlTemp); /* Finally, free the pidl that the shell gave us... */ - pidlTemp=NULL; - } - -done: - ReleaseCapture(); - SetCursor(LoadCursorW(0, (LPWSTR)IDC_ARROW)); - SHFree(pidlTemp); -} - -static BOOL __inline PIDLIsType(LPCITEMIDLIST pidl, PIDLTYPE type) -{ - LPPIDLDATA data = _ILGetDataPointer(pidl); - if (!data) - return FALSE; - return (data->type == type); -} - -static void BrsFolder_CheckValidSelection( browse_info *info, LPTV_ITEMDATA lptvid ) -{ - LPBROWSEINFOW lpBrowseInfo = info->lpBrowseInfo; - LPCITEMIDLIST pidl = lptvid->lpi; - BOOL bEnabled = TRUE; - DWORD dwAttributes; - HRESULT r; - - if ((lpBrowseInfo->ulFlags & BIF_BROWSEFORCOMPUTER) && - !PIDLIsType(pidl, PT_COMP)) - bEnabled = FALSE; - if (lpBrowseInfo->ulFlags & BIF_RETURNFSANCESTORS) - { - dwAttributes = SFGAO_FILESYSANCESTOR | SFGAO_FILESYSTEM; - r = IShellFolder_GetAttributesOf(lptvid->lpsfParent, 1, - (LPCITEMIDLIST*)&lptvid->lpi, &dwAttributes); - if (FAILED(r) || !(dwAttributes & (SFGAO_FILESYSANCESTOR|SFGAO_FILESYSTEM))) - bEnabled = FALSE; - } - if (lpBrowseInfo->ulFlags & BIF_RETURNONLYFSDIRS) - { - dwAttributes = SFGAO_FOLDER | SFGAO_FILESYSTEM; - r = IShellFolder_GetAttributesOf(lptvid->lpsfParent, 1, - (LPCITEMIDLIST*)&lptvid->lpi, &dwAttributes); - if (FAILED(r) || - ((dwAttributes & (SFGAO_FOLDER|SFGAO_FILESYSTEM)) != (SFGAO_FOLDER|SFGAO_FILESYSTEM))) - { - bEnabled = FALSE; - } - } - SendMessageW(info->hWnd, BFFM_ENABLEOK, 0, (LPARAM)bEnabled); -} - -static LRESULT BrsFolder_Treeview_Delete( browse_info *info, NMTREEVIEWW *pnmtv ) -{ - LPTV_ITEMDATA lptvid = (LPTV_ITEMDATA)pnmtv->itemOld.lParam; - - TRACE("TVN_DELETEITEMA/W %p\n", lptvid); - - IShellFolder_Release(lptvid->lpsfParent); - if (lptvid->pEnumIL) - IEnumIDList_Release(lptvid->pEnumIL); - SHFree(lptvid->lpi); - SHFree(lptvid->lpifq); - SHFree(lptvid); - return 0; -} - -static LRESULT BrsFolder_Treeview_Expand( browse_info *info, NMTREEVIEWW *pnmtv ) -{ - IShellFolder *lpsf2 = NULL; - LPTV_ITEMDATA lptvid = (LPTV_ITEMDATA) pnmtv->itemNew.lParam; - HRESULT r; - - TRACE("TVN_ITEMEXPANDINGA/W\n"); - - if ((pnmtv->itemNew.state & TVIS_EXPANDEDONCE)) - return 0; - - if (lptvid->lpi && lptvid->lpi->mkid.cb) { - r = IShellFolder_BindToObject( lptvid->lpsfParent, lptvid->lpi, 0, - (REFIID)&IID_IShellFolder, (LPVOID *)&lpsf2 ); - } else { - lpsf2 = lptvid->lpsfParent; - r = IShellFolder_AddRef(lpsf2); - } - - if (SUCCEEDED(r)) - FillTreeView( info, lpsf2, lptvid->lpifq, pnmtv->itemNew.hItem, lptvid->pEnumIL); - - /* My Computer is already sorted and trying to do a simple text - * sort will only mess things up */ - if (!_ILIsMyComputer(lptvid->lpi)) - SendMessageW( info->hwndTreeView, TVM_SORTCHILDREN, - FALSE, (LPARAM)pnmtv->itemNew.hItem ); - - return 0; -} - -static HRESULT BrsFolder_Treeview_Changed( browse_info *info, NMTREEVIEWW *pnmtv ) -{ - LPTV_ITEMDATA lptvid = (LPTV_ITEMDATA) pnmtv->itemNew.lParam; - - lptvid = (LPTV_ITEMDATA) pnmtv->itemNew.lParam; - info->pidlRet = lptvid->lpifq; - browsefolder_callback( info->lpBrowseInfo, info->hWnd, BFFM_SELCHANGED, - (LPARAM)info->pidlRet ); - BrsFolder_CheckValidSelection( info, lptvid ); - return 0; -} - -static LRESULT BrsFolder_OnNotify( browse_info *info, UINT CtlID, LPNMHDR lpnmh ) -{ - NMTREEVIEWW *pnmtv = (NMTREEVIEWW *)lpnmh; - - TRACE("%p %x %p msg=%x\n", info, CtlID, lpnmh, pnmtv->hdr.code); - - if (pnmtv->hdr.idFrom != IDD_TREEVIEW) - return 0; - - switch (pnmtv->hdr.code) - { - case TVN_DELETEITEMA: - case TVN_DELETEITEMW: - return BrsFolder_Treeview_Delete( info, pnmtv ); - - case TVN_ITEMEXPANDINGA: - case TVN_ITEMEXPANDINGW: - return BrsFolder_Treeview_Expand( info, pnmtv ); - - case TVN_SELCHANGEDA: - case TVN_SELCHANGEDW: - return BrsFolder_Treeview_Changed( info, pnmtv ); - - default: - WARN("unhandled (%d)\n", pnmtv->hdr.code); - break; - } - - return 0; -} - - -static BOOL BrsFolder_OnCreate( HWND hWnd, browse_info *info ) -{ - LPBROWSEINFOW lpBrowseInfo = info->lpBrowseInfo; - - info->hWnd = hWnd; - SetPropW( hWnd, szBrowseFolderInfo, info ); - - if (lpBrowseInfo->ulFlags & BIF_NEWDIALOGSTYLE) - FIXME("flags BIF_NEWDIALOGSTYLE partially implemented\n"); - if (lpBrowseInfo->ulFlags & ~SUPPORTEDFLAGS) - FIXME("flags %x not implemented\n", lpBrowseInfo->ulFlags & ~SUPPORTEDFLAGS); - - if (lpBrowseInfo->lpszTitle) - SetWindowTextW( GetDlgItem(hWnd, IDD_TITLE), lpBrowseInfo->lpszTitle ); - else - ShowWindow( GetDlgItem(hWnd, IDD_TITLE), SW_HIDE ); - - if (!(lpBrowseInfo->ulFlags & BIF_STATUSTEXT) - || (lpBrowseInfo->ulFlags & BIF_NEWDIALOGSTYLE)) - ShowWindow( GetDlgItem(hWnd, IDD_STATUS), SW_HIDE ); - - /* Hide "Make New Folder" Button? */ - if ((lpBrowseInfo->ulFlags & BIF_NONEWFOLDERBUTTON) - || !(lpBrowseInfo->ulFlags & BIF_NEWDIALOGSTYLE)) - ShowWindow( GetDlgItem(hWnd, IDD_MAKENEWFOLDER), SW_HIDE ); - - /* Hide the editbox? */ - if (!(lpBrowseInfo->ulFlags & BIF_EDITBOX)) - { - ShowWindow( GetDlgItem(hWnd, IDD_FOLDER), SW_HIDE ); - ShowWindow( GetDlgItem(hWnd, IDD_FOLDERTEXT), SW_HIDE ); - } - - info->hwndTreeView = GetDlgItem( hWnd, IDD_TREEVIEW ); - if (info->hwndTreeView) - { - InitializeTreeView( info ); - - /* Resize the treeview if there's not editbox */ - if ((lpBrowseInfo->ulFlags & BIF_NEWDIALOGSTYLE) - && !(lpBrowseInfo->ulFlags & BIF_EDITBOX)) - { - RECT rc; - GetClientRect(info->hwndTreeView, &rc); - SetWindowPos(info->hwndTreeView, HWND_TOP, 0, 0, - rc.right, rc.bottom + 40, SWP_NOMOVE); - } - } - else - ERR("treeview control missing!\n"); - - browsefolder_callback( info->lpBrowseInfo, hWnd, BFFM_INITIALIZED, 0 ); - - return TRUE; -} - -static BOOL BrsFolder_OnCommand( browse_info *info, UINT id ) -{ - LPBROWSEINFOW lpBrowseInfo = info->lpBrowseInfo; - - switch (id) - { - case IDOK: - /* The original pidl is owned by the treeview and will be free'd. */ - info->pidlRet = ILClone(info->pidlRet); - if (info->pidlRet == NULL) /* A null pidl would mean a cancel */ - info->pidlRet = _ILCreateDesktop(); - pdump( info->pidlRet ); - if (lpBrowseInfo->pszDisplayName) - SHGetPathFromIDListW( info->pidlRet, lpBrowseInfo->pszDisplayName ); - EndDialog( info->hWnd, 1 ); - return TRUE; - - case IDCANCEL: - EndDialog( info->hWnd, 0 ); - return TRUE; - - case IDD_MAKENEWFOLDER: - FIXME("make new folder not implemented\n"); - return TRUE; - } - return FALSE; -} - -static BOOL BrsFolder_OnSetExpanded(browse_info *info, LPVOID selection, - BOOL is_str, HTREEITEM *pItem) -{ - LPITEMIDLIST pidlSelection = (LPITEMIDLIST)selection; - LPCITEMIDLIST pidlCurrent, pidlRoot; - TVITEMEXW item; - BOOL bResult = FALSE; - - /* If 'selection' is a string, convert to a Shell ID List. */ - if (is_str) { - IShellFolder *psfDesktop; - HRESULT hr; - - hr = SHGetDesktopFolder(&psfDesktop); - if (FAILED(hr)) - goto done; - - hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, - (LPOLESTR)selection, NULL, &pidlSelection, NULL); - IShellFolder_Release(psfDesktop); - if (FAILED(hr)) - goto done; - } - - /* Move pidlCurrent behind the SHITEMIDs in pidlSelection, which are the root of - * the sub-tree currently displayed. */ - pidlRoot = info->lpBrowseInfo->pidlRoot; - pidlCurrent = pidlSelection; - while (!_ILIsEmpty(pidlRoot) && _ILIsEqualSimple(pidlRoot, pidlCurrent)) { - pidlRoot = ILGetNext(pidlRoot); - pidlCurrent = ILGetNext(pidlCurrent); - } - - /* The given ID List is not part of the SHBrowseForFolder's current sub-tree. */ - if (!_ILIsEmpty(pidlRoot)) - goto done; - - /* Initialize item to point to the first child of the root folder. */ - memset(&item, 0, sizeof(item)); - item.mask = TVIF_PARAM; - item.hItem = TreeView_GetRoot(info->hwndTreeView); - if (item.hItem) - item.hItem = TreeView_GetChild(info->hwndTreeView, item.hItem); - - /* Walk the tree along the nodes corresponding to the remaining ITEMIDLIST */ - while (item.hItem && !_ILIsEmpty(pidlCurrent)) { - LPTV_ITEMDATA pItemData; - - SendMessageW(info->hwndTreeView, TVM_GETITEMW, 0, (LPARAM)&item); - pItemData = (LPTV_ITEMDATA)item.lParam; - - if (_ILIsEqualSimple(pItemData->lpi, pidlCurrent)) { - pidlCurrent = ILGetNext(pidlCurrent); - if (!_ILIsEmpty(pidlCurrent)) { - /* Only expand current node and move on to it's first child, - * if we didn't already reach the last SHITEMID */ - SendMessageW(info->hwndTreeView, TVM_EXPAND, TVE_EXPAND, (LPARAM)item.hItem); - item.hItem = TreeView_GetChild(info->hwndTreeView, item.hItem); - } - } else { - item.hItem = TreeView_GetNextSibling(info->hwndTreeView, item.hItem); - } - } - - if (_ILIsEmpty(pidlCurrent) && item.hItem) - bResult = TRUE; - -done: - if (pidlSelection && pidlSelection != (LPITEMIDLIST)selection) - ILFree(pidlSelection); - - if (pItem) - *pItem = item.hItem; - - return bResult; -} - -static BOOL BrsFolder_OnSetSelectionW(browse_info *info, LPVOID selection, BOOL is_str) { - HTREEITEM hItem; - BOOL bResult; - - bResult = BrsFolder_OnSetExpanded(info, selection, is_str, &hItem); - if (bResult) - SendMessageW(info->hwndTreeView, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItem ); - return bResult; -} - -static BOOL BrsFolder_OnSetSelectionA(browse_info *info, LPVOID selection, BOOL is_str) { - LPWSTR selectionW = NULL; - BOOL result = FALSE; - int length; - - if (!is_str) - return BrsFolder_OnSetSelectionW(info, selection, is_str); - - if ((length = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)selection, -1, NULL, 0)) && - (selectionW = HeapAlloc(GetProcessHeap(), 0, length * sizeof(WCHAR))) && - MultiByteToWideChar(CP_ACP, 0, (LPCSTR)selection, -1, selectionW, length)) - { - result = BrsFolder_OnSetSelectionW(info, selectionW, is_str); - } - - HeapFree(GetProcessHeap(), 0, selectionW); - return result; -} - -/************************************************************************* - * BrsFolderDlgProc32 (not an exported API function) - */ -static INT_PTR CALLBACK BrsFolderDlgProc( HWND hWnd, UINT msg, WPARAM wParam, - LPARAM lParam ) -{ - browse_info *info; - - TRACE("hwnd=%p msg=%04x 0x%08lx 0x%08lx\n", hWnd, msg, wParam, lParam ); - - if (msg == WM_INITDIALOG) - return BrsFolder_OnCreate( hWnd, (browse_info*) lParam ); - - info = (browse_info*) GetPropW( hWnd, szBrowseFolderInfo ); - - switch (msg) - { - case WM_NOTIFY: - return BrsFolder_OnNotify( info, (UINT)wParam, (LPNMHDR)lParam); - - case WM_COMMAND: - return BrsFolder_OnCommand( info, wParam ); - - case BFFM_SETSTATUSTEXTA: - TRACE("Set status %s\n", debugstr_a((LPSTR)lParam)); - SetWindowTextA(GetDlgItem(hWnd, IDD_STATUS), (LPSTR)lParam); - break; - - case BFFM_SETSTATUSTEXTW: - TRACE("Set status %s\n", debugstr_w((LPWSTR)lParam)); - SetWindowTextW(GetDlgItem(hWnd, IDD_STATUS), (LPWSTR)lParam); - break; - - case BFFM_ENABLEOK: - TRACE("Enable %ld\n", lParam); - EnableWindow(GetDlgItem(hWnd, 1), (lParam)?TRUE:FALSE); - break; - - case BFFM_SETOKTEXT: /* unicode only */ - TRACE("Set OK text %s\n", debugstr_w((LPWSTR)wParam)); - SetWindowTextW(GetDlgItem(hWnd, 1), (LPWSTR)wParam); - break; - - case BFFM_SETSELECTIONA: - return BrsFolder_OnSetSelectionA(info, (LPVOID)lParam, (BOOL)wParam); - - case BFFM_SETSELECTIONW: - return BrsFolder_OnSetSelectionW(info, (LPVOID)lParam, (BOOL)wParam); - - case BFFM_SETEXPANDED: /* unicode only */ - return BrsFolder_OnSetExpanded(info, (LPVOID)lParam, (BOOL)wParam, NULL); - } - return FALSE; -} - -static const WCHAR swBrowseTemplateName[] = { - 'S','H','B','R','S','F','O','R','F','O','L','D','E','R','_','M','S','G','B','O','X',0}; -static const WCHAR swNewBrowseTemplateName[] = { - 'S','H','N','E','W','B','R','S','F','O','R','F','O','L','D','E','R','_','M','S','G','B','O','X',0}; - -/************************************************************************* - * SHBrowseForFolderA [SHELL32.@] - * SHBrowseForFolder [SHELL32.@] - */ -LPITEMIDLIST WINAPI SHBrowseForFolderA (LPBROWSEINFOA lpbi) -{ - BROWSEINFOW bi; - LPITEMIDLIST lpid; - INT len; - LPWSTR title; - - TRACE("%p\n", lpbi); - - bi.hwndOwner = lpbi->hwndOwner; - bi.pidlRoot = lpbi->pidlRoot; - if (lpbi->pszDisplayName) - { - bi.pszDisplayName = HeapAlloc( GetProcessHeap(), 0, MAX_PATH * sizeof(WCHAR) ); - MultiByteToWideChar( CP_ACP, 0, lpbi->pszDisplayName, -1, bi.pszDisplayName, MAX_PATH ); - } - else - bi.pszDisplayName = NULL; - - if (lpbi->lpszTitle) - { - len = MultiByteToWideChar( CP_ACP, 0, lpbi->lpszTitle, -1, NULL, 0 ); - title = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); - MultiByteToWideChar( CP_ACP, 0, lpbi->lpszTitle, -1, title, len ); - } - else - title = NULL; - - bi.lpszTitle = title; - bi.ulFlags = lpbi->ulFlags; - bi.lpfn = lpbi->lpfn; - bi.lParam = lpbi->lParam; - bi.iImage = lpbi->iImage; - lpid = SHBrowseForFolderW( &bi ); - if (bi.pszDisplayName) - { - WideCharToMultiByte( CP_ACP, 0, bi.pszDisplayName, -1, - lpbi->pszDisplayName, MAX_PATH, 0, NULL); - HeapFree( GetProcessHeap(), 0, bi.pszDisplayName ); - } - HeapFree(GetProcessHeap(), 0, title); - lpbi->iImage = bi.iImage; - return lpid; -} - - -/************************************************************************* - * SHBrowseForFolderW [SHELL32.@] - * - * NOTES - * crashes when passed a null pointer - */ -LPITEMIDLIST WINAPI SHBrowseForFolderW (LPBROWSEINFOW lpbi) -{ - browse_info info; - DWORD r; - HRESULT hr; - const WCHAR * templateName; - - info.hWnd = 0; - info.pidlRet = NULL; - info.lpBrowseInfo = lpbi; - info.hwndTreeView = NULL; - - hr = OleInitialize(NULL); - - if (lpbi->ulFlags & BIF_NEWDIALOGSTYLE) - templateName = swNewBrowseTemplateName; - else - templateName = swBrowseTemplateName; - r = DialogBoxParamW( shell32_hInstance, templateName, lpbi->hwndOwner, - BrsFolderDlgProc, (LPARAM)&info ); - if (SUCCEEDED(hr)) - OleUninitialize(); - if (!r) - return NULL; - - return info.pidlRet; -} diff --git a/reactos/dll/win32/shell32/changenotify.c b/reactos/dll/win32/shell32/changenotify.c deleted file mode 100644 index 08a4637e946..00000000000 --- a/reactos/dll/win32/shell32/changenotify.c +++ /dev/null @@ -1,473 +0,0 @@ -/* - * shell change notification - * - * Copyright 2000 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -static CRITICAL_SECTION SHELL32_ChangenotifyCS; -static CRITICAL_SECTION_DEBUG critsect_debug = -{ - 0, 0, &SHELL32_ChangenotifyCS, - { &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList }, - 0, 0, { (DWORD_PTR)(__FILE__ ": SHELL32_ChangenotifyCS") } -}; -static CRITICAL_SECTION SHELL32_ChangenotifyCS = { &critsect_debug, -1, 0, 0, 0, 0 }; - -typedef SHChangeNotifyEntry *LPNOTIFYREGISTER; - -/* internal list of notification clients (internal) */ -typedef struct _NOTIFICATIONLIST -{ - struct _NOTIFICATIONLIST *next; - struct _NOTIFICATIONLIST *prev; - HWND hwnd; /* window to notify */ - DWORD uMsg; /* message to send */ - LPNOTIFYREGISTER apidl; /* array of entries to watch*/ - UINT cidl; /* number of pidls in array */ - LONG wEventMask; /* subscribed events */ - LONG wSignalledEvent; /* event that occurred */ - DWORD dwFlags; /* client flags */ - LPCITEMIDLIST pidlSignaled; /*pidl of the path that caused the signal*/ - -} NOTIFICATIONLIST, *LPNOTIFICATIONLIST; - -static NOTIFICATIONLIST *head, *tail; - -#define SHCNE_NOITEMEVENTS ( \ - SHCNE_ASSOCCHANGED ) - -#define SHCNE_ONEITEMEVENTS ( \ - SHCNE_ATTRIBUTES | SHCNE_CREATE | SHCNE_DELETE | SHCNE_DRIVEADD | \ - SHCNE_DRIVEADDGUI | SHCNE_DRIVEREMOVED | SHCNE_FREESPACE | \ - SHCNE_MEDIAINSERTED | SHCNE_MEDIAREMOVED | SHCNE_MKDIR | \ - SHCNE_NETSHARE | SHCNE_NETUNSHARE | SHCNE_RMDIR | \ - SHCNE_SERVERDISCONNECT | SHCNE_UPDATEDIR | SHCNE_UPDATEIMAGE ) - -#define SHCNE_TWOITEMEVENTS ( \ - SHCNE_RENAMEFOLDER | SHCNE_RENAMEITEM | SHCNE_UPDATEITEM ) - -/* for dumping events */ -static const char * DumpEvent( LONG event ) -{ - if( event == SHCNE_ALLEVENTS ) - return "SHCNE_ALLEVENTS"; -#define DUMPEV(x) ,( event & SHCNE_##x )? #x " " : "" - return wine_dbg_sprintf( "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s" - DUMPEV(RENAMEITEM) - DUMPEV(CREATE) - DUMPEV(DELETE) - DUMPEV(MKDIR) - DUMPEV(RMDIR) - DUMPEV(MEDIAINSERTED) - DUMPEV(MEDIAREMOVED) - DUMPEV(DRIVEREMOVED) - DUMPEV(DRIVEADD) - DUMPEV(NETSHARE) - DUMPEV(NETUNSHARE) - DUMPEV(ATTRIBUTES) - DUMPEV(UPDATEDIR) - DUMPEV(UPDATEITEM) - DUMPEV(SERVERDISCONNECT) - DUMPEV(UPDATEIMAGE) - DUMPEV(DRIVEADDGUI) - DUMPEV(RENAMEFOLDER) - DUMPEV(FREESPACE) - DUMPEV(EXTENDED_EVENT) - DUMPEV(ASSOCCHANGED) - DUMPEV(INTERRUPT) - ); -#undef DUMPEV -} - -static const char * NodeName(const NOTIFICATIONLIST *item) -{ - const char *str; - WCHAR path[MAX_PATH]; - - if(SHGetPathFromIDListW(item->apidl[0].pidl, path )) - str = wine_dbg_sprintf("%s", debugstr_w(path)); - else - str = wine_dbg_sprintf("" ); - return str; -} - -static void AddNode(LPNOTIFICATIONLIST item) -{ - TRACE("item %p\n", item ); - - /* link items */ - item->prev = tail; - item->next = NULL; - if( tail ) - tail->next = item; - else - head = item; - tail = item; -} - -static LPNOTIFICATIONLIST FindNode( HANDLE hitem ) -{ - LPNOTIFICATIONLIST ptr; - for( ptr = head; ptr; ptr = ptr->next ) - if( ptr == (LPNOTIFICATIONLIST) hitem ) - return ptr; - return NULL; -} - -static void DeleteNode(LPNOTIFICATIONLIST item) -{ - UINT i; - - TRACE("item=%p prev=%p next=%p\n", item, item->prev, item->next); - - /* remove item from list */ - if( item->prev ) - item->prev->next = item->next; - else - head = item->next; - if( item->next ) - item->next->prev = item->prev; - else - tail = item->prev; - - /* free the item */ - for (i=0; icidl; i++) - SHFree((LPITEMIDLIST)item->apidl[i].pidl); - SHFree(item->apidl); - SHFree(item); -} - -void InitChangeNotifications(void) -{ -} - -void FreeChangeNotifications(void) -{ - TRACE("\n"); - - EnterCriticalSection(&SHELL32_ChangenotifyCS); - - while( head ) - DeleteNode( head ); - - LeaveCriticalSection(&SHELL32_ChangenotifyCS); - - // DeleteCriticalSection(&SHELL32_ChangenotifyCS); // static -} - -/************************************************************************* - * SHChangeNotifyRegister [SHELL32.2] - * - */ -ULONG WINAPI -SHChangeNotifyRegister( - HWND hwnd, - int fSources, - LONG wEventMask, - UINT uMsg, - int cItems, - const SHChangeNotifyEntry *lpItems) -{ - LPNOTIFICATIONLIST item; - int i; - - item = SHAlloc(sizeof(NOTIFICATIONLIST)); - - TRACE("(%p,0x%08x,0x%08x,0x%08x,%d,%p) item=%p\n", - hwnd, fSources, wEventMask, uMsg, cItems, lpItems, item); - - item->next = NULL; - item->prev = NULL; - item->cidl = cItems; - item->apidl = SHAlloc(sizeof(SHChangeNotifyEntry) * cItems); - for(i=0;iapidl[i].pidl = ILClone(lpItems[i].pidl); - item->apidl[i].fRecursive = lpItems[i].fRecursive; - } - item->hwnd = hwnd; - item->uMsg = uMsg; - item->wEventMask = wEventMask; - item->wSignalledEvent = 0; - item->dwFlags = fSources; - - TRACE("new node: %s\n", NodeName( item )); - - EnterCriticalSection(&SHELL32_ChangenotifyCS); - - AddNode(item); - - LeaveCriticalSection(&SHELL32_ChangenotifyCS); - - return (ULONG)item; -} - -/************************************************************************* - * SHChangeNotifyDeregister [SHELL32.4] - */ -BOOL WINAPI SHChangeNotifyDeregister(ULONG hNotify) -{ - LPNOTIFICATIONLIST node; - - TRACE("(0x%08x)\n", hNotify); - - EnterCriticalSection(&SHELL32_ChangenotifyCS); - - node = FindNode((HANDLE)hNotify); - if( node ) - DeleteNode(node); - - LeaveCriticalSection(&SHELL32_ChangenotifyCS); - - return node?TRUE:FALSE; -} - -/************************************************************************* - * SHChangeNotifyUpdateEntryList [SHELL32.5] - */ -BOOL WINAPI SHChangeNotifyUpdateEntryList(DWORD unknown1, DWORD unknown2, - DWORD unknown3, DWORD unknown4) -{ - FIXME("(0x%08x, 0x%08x, 0x%08x, 0x%08x)\n", - unknown1, unknown2, unknown3, unknown4); - - return -1; -} - -static BOOL should_notify( LPCITEMIDLIST changed, LPCITEMIDLIST watched, BOOL sub ) -{ - TRACE("%p %p %d\n", changed, watched, sub ); - if ( !watched ) - return FALSE; - if (ILIsEqual( watched, changed ) ) - return TRUE; - if( sub && ILIsParent( watched, changed, TRUE ) ) - return TRUE; - return FALSE; -} - -/************************************************************************* - * SHChangeNotify [SHELL32.@] - */ -void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2) -{ - LPCITEMIDLIST Pidls[2]; - LPNOTIFICATIONLIST ptr; - UINT typeFlag = uFlags & SHCNF_TYPE; - - Pidls[0] = NULL; - Pidls[1] = NULL; - - TRACE("(0x%08x,0x%08x,%p,%p):stub.\n", wEventId, uFlags, dwItem1, dwItem2); - - if( ( wEventId & SHCNE_NOITEMEVENTS ) && ( dwItem1 || dwItem2 ) ) - { - TRACE("dwItem1 and dwItem2 are not zero, but should be\n"); - dwItem1 = 0; - dwItem2 = 0; - return; - } - else if( ( wEventId & SHCNE_ONEITEMEVENTS ) && dwItem2 ) - { - TRACE("dwItem2 is not zero, but should be\n"); - dwItem2 = 0; - return; - } - - if( ( ( wEventId & SHCNE_NOITEMEVENTS ) && - ( wEventId & ~SHCNE_NOITEMEVENTS ) ) || - ( ( wEventId & SHCNE_ONEITEMEVENTS ) && - ( wEventId & ~SHCNE_ONEITEMEVENTS ) ) || - ( ( wEventId & SHCNE_TWOITEMEVENTS ) && - ( wEventId & ~SHCNE_TWOITEMEVENTS ) ) ) - { - WARN("mutually incompatible events listed\n"); - return; - } - - /* convert paths in IDLists*/ - switch (typeFlag) - { - case SHCNF_PATHA: - if (dwItem1) Pidls[0] = SHSimpleIDListFromPathA((LPCSTR)dwItem1); //FIXME - if (dwItem2) Pidls[1] = SHSimpleIDListFromPathA((LPCSTR)dwItem2); //FIXME - break; - case SHCNF_PATHW: - if (dwItem1) Pidls[0] = SHSimpleIDListFromPathW((LPCWSTR)dwItem1); - if (dwItem2) Pidls[1] = SHSimpleIDListFromPathW((LPCWSTR)dwItem2); - break; - case SHCNF_IDLIST: - Pidls[0] = (LPCITEMIDLIST)dwItem1; - Pidls[1] = (LPCITEMIDLIST)dwItem2; - break; - case SHCNF_PRINTERA: - case SHCNF_PRINTERW: - FIXME("SHChangeNotify with (uFlags & SHCNF_PRINTER)\n"); - return; - case SHCNF_DWORD: - default: - FIXME("unknown type %08x\n",typeFlag); - return; - } - - { - WCHAR path[MAX_PATH]; - - if( Pidls[0] && SHGetPathFromIDListW(Pidls[0], path )) - TRACE("notify %08x on item1 = %s\n", wEventId, debugstr_w(path)); - - if( Pidls[1] && SHGetPathFromIDListW(Pidls[1], path )) - TRACE("notify %08x on item2 = %s\n", wEventId, debugstr_w(path)); - } - - EnterCriticalSection(&SHELL32_ChangenotifyCS); - - /* loop through the list */ - for( ptr = head; ptr; ptr = ptr->next ) - { - BOOL notify; - DWORD i; - - notify = FALSE; - - TRACE("trying %p\n", ptr); - - for( i=0; (icidl) && !notify ; i++ ) - { - LPCITEMIDLIST pidl = ptr->apidl[i].pidl; - BOOL subtree = ptr->apidl[i].fRecursive; - - if (wEventId & ptr->wEventMask) - { - if( !pidl ) /* all ? */ - notify = TRUE; - else if( wEventId & SHCNE_NOITEMEVENTS ) - notify = TRUE; - else if( wEventId & ( SHCNE_ONEITEMEVENTS | SHCNE_TWOITEMEVENTS ) ) - notify = should_notify( Pidls[0], pidl, subtree ); - else if( wEventId & SHCNE_TWOITEMEVENTS ) - notify = should_notify( Pidls[1], pidl, subtree ); - } - } - - if( !notify ) - continue; - - ptr->pidlSignaled = ILClone(Pidls[0]); - - TRACE("notifying %s, event %s(%x) before\n", NodeName( ptr ), DumpEvent( - wEventId ),wEventId ); - - ptr->wSignalledEvent |= wEventId; - - if (ptr->dwFlags & SHCNRF_NewDelivery) - SendMessageW(ptr->hwnd, ptr->uMsg, (WPARAM) ptr, (LPARAM) GetCurrentProcessId()); - else - SendMessageW(ptr->hwnd, ptr->uMsg, (WPARAM)Pidls, wEventId); - - TRACE("notifying %s, event %s(%x) after\n", NodeName( ptr ), DumpEvent( - wEventId ),wEventId ); - - } - TRACE("notify Done\n"); - LeaveCriticalSection(&SHELL32_ChangenotifyCS); - - /* if we allocated it, free it. The ANSI flag is also set in its Unicode sibling. */ - if ((typeFlag & SHCNF_PATHA) || (typeFlag & SHCNF_PRINTERA)) - { - SHFree((LPITEMIDLIST)Pidls[0]); - SHFree((LPITEMIDLIST)Pidls[1]); - } -} - -/************************************************************************* - * NTSHChangeNotifyRegister [SHELL32.640] - * NOTES - * Idlist is an array of structures and Count specifies how many items in the array. - * count should always be one when calling SHChangeNotifyRegister, or - * SHChangeNotifyDeregister will not work properly. - */ -ULONG WINAPI NTSHChangeNotifyRegister( - HWND hwnd, - int fSources, - LONG fEvents, - UINT msg, - int count, - SHChangeNotifyEntry *idlist) -{ - return SHChangeNotifyRegister(hwnd, fSources | SHCNRF_NewDelivery, - fEvents, msg, count, idlist); -} - -/************************************************************************* - * SHChangeNotification_Lock [SHELL32.644] - */ -HANDLE WINAPI SHChangeNotification_Lock( - HANDLE hChange, - DWORD dwProcessId, - LPITEMIDLIST **lppidls, - LPLONG lpwEventId) -{ - DWORD i; - LPNOTIFICATIONLIST node; - LPCITEMIDLIST *idlist; - - TRACE("%p %08x %p %p\n", hChange, dwProcessId, lppidls, lpwEventId); - - /* EnterCriticalSection(&SHELL32_ChangenotifyCS); */ - - node = FindNode( hChange ); - if( node ) - { - idlist = SHAlloc( sizeof(LPCITEMIDLIST *) * node->cidl ); - for(i=0; icidl; i++) - idlist[i] = (LPCITEMIDLIST)node->pidlSignaled; - *lpwEventId = node->wSignalledEvent; - *lppidls = (LPITEMIDLIST*)idlist; - node->wSignalledEvent = 0; - } - else - ERR("Couldn't find %p\n", hChange ); - - /* LeaveCriticalSection(&SHELL32_ChangenotifyCS); */ - - return (HANDLE) node; -} - -/************************************************************************* - * SHChangeNotification_Unlock [SHELL32.645] - */ -BOOL WINAPI SHChangeNotification_Unlock ( HANDLE hLock) -{ - TRACE("\n"); - return 1; -} - -/************************************************************************* - * NTSHChangeNotifyDeregister [SHELL32.641] - */ -DWORD WINAPI NTSHChangeNotifyDeregister(ULONG x1) -{ - FIXME("(0x%08x):semi stub.\n",x1); - - return SHChangeNotifyDeregister( x1 ); -} diff --git a/reactos/dll/win32/shell32/classes.c b/reactos/dll/win32/shell32/classes.c deleted file mode 100644 index edc1eacf5c9..00000000000 --- a/reactos/dll/win32/shell32/classes.c +++ /dev/null @@ -1,507 +0,0 @@ -/* - * file type mapping - * (HKEY_CLASSES_ROOT - Stuff) - * - * Copyright 1998, 1999, 2000 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -#define MAX_EXTENSION_LENGTH 20 - -BOOL HCR_MapTypeToValueW(LPCWSTR szExtension, LPWSTR szFileType, LONG len, BOOL bPrependDot) -{ - HKEY hkey; - WCHAR szTemp[MAX_EXTENSION_LENGTH + 2]; - - TRACE("%s %p\n", debugstr_w(szExtension), debugstr_w(szFileType)); - - /* added because we do not want to have double dots */ - if (szExtension[0] == '.') - bPrependDot = 0; - - if (bPrependDot) - szTemp[0] = '.'; - - lstrcpynW(szTemp + (bPrependDot?1:0), szExtension, MAX_EXTENSION_LENGTH); - - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, szTemp, 0, KEY_READ, &hkey)) - { - return FALSE; - } - - if (RegQueryValueW(hkey, NULL, szFileType, &len)) - { - RegCloseKey(hkey); - return FALSE; - } - - RegCloseKey(hkey); - - TRACE("--UE;\n} %s\n", debugstr_w(szFileType)); - - return TRUE; -} - -BOOL HCR_MapTypeToValueA(LPCSTR szExtension, LPSTR szFileType, LONG len, BOOL bPrependDot) -{ - HKEY hkey; - char szTemp[MAX_EXTENSION_LENGTH + 2]; - - TRACE("%s %p\n", szExtension, szFileType); - - /* added because we do not want to have double dots */ - if (szExtension[0] == '.') - bPrependDot = 0; - - if (bPrependDot) - szTemp[0] = '.'; - - lstrcpynA(szTemp + (bPrependDot?1:0), szExtension, MAX_EXTENSION_LENGTH); - - if (RegOpenKeyExA(HKEY_CLASSES_ROOT, szTemp, 0, KEY_READ, &hkey)) - { - return FALSE; - } - - if (RegLoadMUIStringA(hkey, "FriendlyTypeName", szFileType, len, NULL, 0, NULL) == ERROR_SUCCESS) - { - RegCloseKey(hkey); - return TRUE; - } - - if (RegQueryValueA(hkey, NULL, szFileType, &len)) - { - RegCloseKey(hkey); - return FALSE; - } - - RegCloseKey(hkey); - - TRACE("--UE;\n} %s\n", szFileType); - - return TRUE; -} - -static const WCHAR swShell[] = {'s','h','e','l','l','\\',0}; -static const WCHAR swOpen[] = {'o','p','e','n',0}; -static const WCHAR swCommand[] = {'\\','c','o','m','m','a','n','d',0}; - -BOOL HCR_GetDefaultVerbW( HKEY hkeyClass, LPCWSTR szVerb, LPWSTR szDest, DWORD len ) -{ - WCHAR sTemp[MAX_PATH]; - LONG size; - HKEY hkey; - - TRACE("%p %s %p\n", hkeyClass, debugstr_w(szVerb), szDest); - - if (szVerb) - { - lstrcpynW(szDest, szVerb, len); - return TRUE; - } - - size=len; - *szDest='\0'; - if (!RegQueryValueW(hkeyClass, L"shell", szDest, &size) && *szDest) - { - /* The MSDN says to first try the default verb */ - wcscpy(sTemp, swShell); - wcscat(sTemp, szDest); - wcscat(sTemp, swCommand); - if (!RegOpenKeyExW(hkeyClass, sTemp, 0, KEY_READ, &hkey)) - { - RegCloseKey(hkey); - TRACE("default verb=%s\n", debugstr_w(szDest)); - return TRUE; - } - } - - /* then fallback to 'open' */ - wcscpy(sTemp, swShell); - wcscat(sTemp, swOpen); - wcscat(sTemp, swCommand); - if (!RegOpenKeyExW(hkeyClass, sTemp, 0, KEY_READ, &hkey)) - { - RegCloseKey(hkey); - lstrcpynW(szDest, swOpen, len); - TRACE("default verb=open\n"); - return TRUE; - } - - /* and then just use the first verb on Windows >= 2000 */ - if (!RegOpenKeyExW(hkeyClass, L"shell", 0, KEY_READ, &hkey)) - { - if (!RegEnumKeyW(hkey, 0, szDest, len) && *szDest) - { - TRACE("default verb=first verb=%s\n", debugstr_w(szDest)); - RegCloseKey(hkey); - return TRUE; - } - RegCloseKey(hkey); - } - - - TRACE("no default verb!\n"); - return FALSE; -} - -BOOL HCR_GetExecuteCommandW( HKEY hkeyClass, LPCWSTR szClass, LPCWSTR szVerb, LPWSTR szDest, DWORD len ) -{ - WCHAR sTempVerb[MAX_PATH]; - BOOL ret; - - TRACE("%p %s %s %p\n", hkeyClass, debugstr_w(szClass), debugstr_w(szVerb), szDest); - - if (szClass) - RegOpenKeyExW(HKEY_CLASSES_ROOT, szClass, 0, KEY_READ, &hkeyClass); - if (!hkeyClass) - return FALSE; - ret = FALSE; - - if (HCR_GetDefaultVerbW(hkeyClass, szVerb, sTempVerb, sizeof(sTempVerb))) - { - WCHAR sTemp[MAX_PATH]; - wcscpy(sTemp, swShell); - wcscat(sTemp, sTempVerb); - wcscat(sTemp, swCommand); - ret = (ERROR_SUCCESS == SHGetValueW(hkeyClass, sTemp, NULL, NULL, szDest, &len)); - } - if (szClass) - RegCloseKey(hkeyClass); - - TRACE("-- %s\n", debugstr_w(szDest) ); - return ret; -} - -/*************************************************************************************** -* HCR_GetDefaultIcon [internal] -* -* Gets the icon for a filetype -*/ -static BOOL HCR_RegOpenClassIDKey(REFIID riid, HKEY *hkey) -{ - WCHAR xriid[50]; - swprintf( xriid, L"CLSID\\{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}", - riid->Data1, riid->Data2, riid->Data3, - riid->Data4[0], riid->Data4[1], riid->Data4[2], riid->Data4[3], - riid->Data4[4], riid->Data4[5], riid->Data4[6], riid->Data4[7] ); - - TRACE("%S\n",xriid ); - - return !RegOpenKeyExW(HKEY_CLASSES_ROOT, xriid, 0, KEY_READ, hkey); -} - -static BOOL HCR_RegGetDefaultIconW(HKEY hkey, LPWSTR szDest, DWORD len, int* picon_idx) -{ - DWORD dwType; - WCHAR sTemp[MAX_PATH]; - WCHAR sNum[5]; - - if (!RegQueryValueExW(hkey, NULL, 0, &dwType, (LPBYTE)szDest, &len)) - { - if (dwType == REG_EXPAND_SZ) - { - ExpandEnvironmentStringsW(szDest, sTemp, MAX_PATH); - lstrcpynW(szDest, sTemp, len); - } - if (ParseFieldW (szDest, 2, sNum, 5)) - *picon_idx = atoiW(sNum); - else - *picon_idx=0; /* sometimes the icon number is missing */ - ParseFieldW (szDest, 1, szDest, len); - PathUnquoteSpacesW(szDest); - return TRUE; - } - return FALSE; -} - -static BOOL HCR_RegGetDefaultIconA(HKEY hkey, LPSTR szDest, DWORD len, int* picon_idx) -{ - DWORD dwType; - char sTemp[MAX_PATH]; - char sNum[5]; - - if (!RegQueryValueExA(hkey, NULL, 0, &dwType, (LPBYTE)szDest, &len)) - { - if (dwType == REG_EXPAND_SZ) - { - ExpandEnvironmentStringsA(szDest, sTemp, MAX_PATH); - lstrcpynA(szDest, sTemp, len); - } - if (ParseFieldA (szDest, 2, sNum, 5)) - *picon_idx=atoi(sNum); - else - *picon_idx=0; /* sometimes the icon number is missing */ - ParseFieldA (szDest, 1, szDest, len); - PathUnquoteSpacesA(szDest); - return TRUE; - } - return FALSE; -} - -BOOL HCR_GetDefaultIconW(LPCWSTR szClass, LPWSTR szDest, DWORD len, int* picon_idx) -{ - static const WCHAR swDefaultIcon[] = {'\\','D','e','f','a','u','l','t','I','c','o','n',0}; - HKEY hkey; - WCHAR sTemp[MAX_PATH]; - BOOL ret = FALSE; - - TRACE("%s\n",debugstr_w(szClass) ); - - lstrcpynW(sTemp, szClass, MAX_PATH); - wcscat(sTemp, swDefaultIcon); - - if (!RegOpenKeyExW(HKEY_CLASSES_ROOT, sTemp, 0, KEY_READ, &hkey)) - { - ret = HCR_RegGetDefaultIconW(hkey, szDest, len, picon_idx); - RegCloseKey(hkey); - } - - if(ret) - TRACE("-- %s %i\n", debugstr_w(szDest), *picon_idx); - else - TRACE("-- not found\n"); - - return ret; -} - -BOOL HCR_GetDefaultIconA(LPCSTR szClass, LPSTR szDest, DWORD len, int* picon_idx) -{ - HKEY hkey; - char sTemp[MAX_PATH]; - BOOL ret = FALSE; - - TRACE("%s\n",szClass ); - - sprintf(sTemp, "%s\\DefaultIcon",szClass); - - if (!RegOpenKeyExA(HKEY_CLASSES_ROOT, sTemp, 0, KEY_READ, &hkey)) - { - ret = HCR_RegGetDefaultIconA(hkey, szDest, len, picon_idx); - RegCloseKey(hkey); - } - TRACE("-- %s %i\n", szDest, *picon_idx); - return ret; -} - -BOOL HCR_GetDefaultIconFromGUIDW(REFIID riid, LPWSTR szDest, DWORD len, int* picon_idx) -{ - HKEY hkey; - BOOL ret = FALSE; - - if (HCR_RegOpenClassIDKey(riid, &hkey)) - { - ret = HCR_RegGetDefaultIconW(hkey, szDest, len, picon_idx); - RegCloseKey(hkey); - } - TRACE("-- %s %i\n", debugstr_w(szDest), *picon_idx); - return ret; -} - -/*************************************************************************************** -* HCR_GetClassName [internal] -* -* Gets the name of a registered class -*/ -static const WCHAR swEmpty[] = {0}; - -BOOL HCR_GetClassNameW(REFIID riid, LPWSTR szDest, DWORD len) -{ - HKEY hkey; - BOOL ret = FALSE; - DWORD buflen = len; - WCHAR szName[100]; - LPOLESTR pStr; - - szDest[0] = 0; - - if (StringFromCLSID(riid, &pStr) == S_OK) - { - DWORD dwLen = buflen * sizeof(WCHAR); - swprintf(szName, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\CLSID\\%s", pStr); - if (RegGetValueW(HKEY_CURRENT_USER, szName, NULL, RRF_RT_REG_SZ, NULL, (PVOID)szDest, &dwLen) == ERROR_SUCCESS) - { - ret = TRUE; - } - CoTaskMemFree(pStr); - } - if (!ret && HCR_RegOpenClassIDKey(riid, &hkey)) - { - static const WCHAR wszLocalizedString[] = - { 'L','o','c','a','l','i','z','e','d','S','t','r','i','n','g', 0 }; - if (!RegLoadMUIStringW(hkey, wszLocalizedString, szDest, len, NULL, 0, NULL) || - !RegQueryValueExW(hkey, swEmpty, 0, NULL, (LPBYTE)szDest, &len)) - { - ret = TRUE; - } - RegCloseKey(hkey); - } - - if (!ret || !szDest[0]) - { - if(IsEqualIID(riid, &CLSID_ShellDesktop)) - { - if (LoadStringW(shell32_hInstance, IDS_DESKTOP, szDest, buflen)) - ret = TRUE; - } - else if (IsEqualIID(riid, &CLSID_MyComputer)) - { - if(LoadStringW(shell32_hInstance, IDS_MYCOMPUTER, szDest, buflen)) - ret = TRUE; - } - else if (IsEqualIID(riid, &CLSID_MyDocuments)) - { - if(LoadStringW(shell32_hInstance, IDS_PERSONAL, szDest, buflen)) - ret = TRUE; - } - else if (IsEqualIID(riid, &CLSID_RecycleBin)) - { - if(LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_FOLDER_NAME, szDest, buflen)) - ret = TRUE; - } - else if (IsEqualIID(riid, &CLSID_ControlPanel)) - { - if(LoadStringW(shell32_hInstance, IDS_CONTROLPANEL, szDest, buflen)) - ret = TRUE; - } - else if (IsEqualIID(riid, &CLSID_AdminFolderShortcut)) - { - if(LoadStringW(shell32_hInstance, IDS_ADMINISTRATIVETOOLS, szDest, buflen)) - ret = TRUE; - } - - } - TRACE("-- %s\n", debugstr_w(szDest)); - return ret; -} - -BOOL HCR_GetClassNameA(REFIID riid, LPSTR szDest, DWORD len) -{ HKEY hkey; - BOOL ret = FALSE; - DWORD buflen = len; - - szDest[0] = 0; - if (HCR_RegOpenClassIDKey(riid, &hkey)) - { - if (!RegLoadMUIStringA(hkey,"LocalizedString",szDest,len,NULL,0,NULL) || - !RegQueryValueExA(hkey,"",0,NULL,(LPBYTE)szDest,&len)) - { - ret = TRUE; - } - RegCloseKey(hkey); - } - - if (!ret || !szDest[0]) - { - if(IsEqualIID(riid, &CLSID_ShellDesktop)) - { - if (LoadStringA(shell32_hInstance, IDS_DESKTOP, szDest, buflen)) - ret = TRUE; - } - else if (IsEqualIID(riid, &CLSID_MyComputer)) - { - if(LoadStringA(shell32_hInstance, IDS_MYCOMPUTER, szDest, buflen)) - ret = TRUE; - } - } - - TRACE("-- %s\n", szDest); - - return ret; -} - -/****************************************************************************** - * HCR_GetFolderAttributes [Internal] - * - * Query the registry for a shell folders' attributes - * - * PARAMS - * pidlFolder [I] A simple pidl of type PT_GUID. - * pdwAttributes [IO] In: Attributes to be queried, OUT: Resulting attributes. - * - * RETURNS - * TRUE: Found information for the attributes in the registry - * FALSE: No attribute information found - * - * NOTES - * If queried for an attribute, which is set in the CallForAttributes registry - * value, the function binds to the shellfolder objects and queries it. - */ -BOOL HCR_GetFolderAttributes(LPCITEMIDLIST pidlFolder, LPDWORD pdwAttributes) -{ - HKEY hSFKey; - LPOLESTR pwszCLSID; - LONG lResult; - DWORD dwTemp, dwLen; - static const WCHAR wszAttributes[] = { 'A','t','t','r','i','b','u','t','e','s',0 }; - static const WCHAR wszCallForAttributes[] = { - 'C','a','l','l','F','o','r','A','t','t','r','i','b','u','t','e','s',0 }; - WCHAR wszShellFolderKey[] = { 'C','L','S','I','D','\\','{','0','0','0','2','1','4','0','0','-', - '0','0','0','0','-','0','0','0','0','-','C','0','0','0','-','0','0','0','0','0','0','0', - '0','0','0','4','6','}','\\','S','h','e','l','l','F','o','l','d','e','r',0 }; - - TRACE("(pidlFolder=%p, pdwAttributes=%p)\n", pidlFolder, pdwAttributes); - - if (!_ILIsPidlSimple(pidlFolder)) { - ERR("should be called for simple PIDL's only!\n"); - return FALSE; - } - - if (!_ILIsDesktop(pidlFolder)) { - if (FAILED(StringFromCLSID(_ILGetGUIDPointer(pidlFolder), &pwszCLSID))) return FALSE; - memcpy(&wszShellFolderKey[6], pwszCLSID, 38 * sizeof(WCHAR)); - CoTaskMemFree(pwszCLSID); - } - - lResult = RegOpenKeyExW(HKEY_CLASSES_ROOT, wszShellFolderKey, 0, KEY_READ, &hSFKey); - if (lResult != ERROR_SUCCESS) return FALSE; - - dwLen = sizeof(DWORD); - lResult = RegQueryValueExW(hSFKey, wszCallForAttributes, 0, NULL, (LPBYTE)&dwTemp, &dwLen); - if ((lResult == ERROR_SUCCESS) && (dwTemp & *pdwAttributes)) { - LPSHELLFOLDER psfDesktop, psfFolder; - HRESULT hr; - - RegCloseKey(hSFKey); - hr = SHGetDesktopFolder(&psfDesktop); - if (SUCCEEDED(hr)) { - hr = IShellFolder_BindToObject(psfDesktop, pidlFolder, NULL, &IID_IShellFolder, - (LPVOID*)&psfFolder); - if (SUCCEEDED(hr)) { - hr = IShellFolder_GetAttributesOf(psfFolder, 0, NULL, pdwAttributes); - IShellFolder_Release(psfFolder); - } - IShellFolder_Release(psfDesktop); - } - if (FAILED(hr)) return FALSE; - } else { - lResult = RegQueryValueExW(hSFKey, wszAttributes, 0, NULL, (LPBYTE)&dwTemp, &dwLen); - RegCloseKey(hSFKey); - if (lResult == ERROR_SUCCESS) { - *pdwAttributes &= dwTemp; - } else { - return FALSE; - } - } - - TRACE("-- *pdwAttributes == 0x%08x\n", *pdwAttributes); - - return TRUE; -} diff --git a/reactos/dll/win32/shell32/clipboard.c b/reactos/dll/win32/shell32/clipboard.c deleted file mode 100644 index 24fd0d0f514..00000000000 --- a/reactos/dll/win32/shell32/clipboard.c +++ /dev/null @@ -1,240 +0,0 @@ -/* - * clipboard helper functions - * - * Copyright 2000 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * NOTES: - * - * For copy & paste functions within contextmenus does the shell use - * the OLE clipboard functions in combination with dataobjects. - * The OLE32.DLL gets loaded with LoadLibrary - * - * - a right mousebutton-copy sets the following formats: - * classic: - * Shell IDList Array - * Preferred Drop Effect - * Shell Object Offsets - * HDROP - * FileName - * ole: - * OlePrivateData (ClipboardDataObjectInterface) - * - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -/************************************************************************** - * RenderHDROP - * - * creates a CF_HDROP structure - */ -HGLOBAL RenderHDROP(LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - UINT i; - int size = 0; - WCHAR wszFileName[MAX_PATH]; - HGLOBAL hGlobal = NULL; - DROPFILES *pDropFiles; - int offset; - LPITEMIDLIST *pidls; - - TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); - - pidls = HeapAlloc(GetProcessHeap(), 0, cidl * sizeof(*pidls)); - if (!pidls) - goto cleanup; - - /* get the size needed */ - size = sizeof(DROPFILES); - - for (i=0; ipFiles = offset * sizeof(WCHAR); - pDropFiles->fWide = TRUE; - - for (i=0; icidl = cidl; - - /* root pidl */ - offset = sizeof(CIDA) + sizeof (UINT)*(cidl); - pcida->aoffset[0] = offset; /* first element */ - sizePidl = ILGetSize (pidlRoot); - memcpy(((LPBYTE)pcida)+offset, pidlRoot, sizePidl); - offset += sizePidl; - - for(i=0; iaoffset[i+1] = offset; - sizePidl = ILGetSize(apidl[i]); - memcpy(((LPBYTE)pcida)+offset, apidl[i], sizePidl); - offset += sizePidl; - } - - GlobalUnlock(hGlobal); - return hGlobal; -} - -HGLOBAL RenderSHELLIDLISTOFFSET (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - FIXME("\n"); - return 0; -} - -HGLOBAL RenderFILECONTENTS (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - FIXME("\n"); - return 0; -} - -HGLOBAL RenderFILEDESCRIPTOR (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - FIXME("\n"); - return 0; -} - -HGLOBAL RenderFILENAMEA (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - int size = 0; - char szTemp[MAX_PATH], *szFileName; - LPITEMIDLIST pidl; - HGLOBAL hGlobal; - BOOL bSuccess; - - TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); - - /* get path of combined pidl */ - pidl = ILCombine(pidlRoot, apidl[0]); - if (!pidl) - return 0; - - bSuccess = SHGetPathFromIDListA(pidl, szTemp); - SHFree(pidl); - if (!bSuccess) - return 0; - - size = strlen(szTemp) + 1; - - /* fill the structure */ - hGlobal = GlobalAlloc(GHND|GMEM_SHARE, size); - if(!hGlobal) return hGlobal; - szFileName = (char *)GlobalLock(hGlobal); - memcpy(szFileName, szTemp, size); - GlobalUnlock(hGlobal); - - return hGlobal; -} - -HGLOBAL RenderFILENAMEW (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - int size = 0; - WCHAR szTemp[MAX_PATH], *szFileName; - LPITEMIDLIST pidl; - HGLOBAL hGlobal; - BOOL bSuccess; - - TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); - - /* get path of combined pidl */ - pidl = ILCombine(pidlRoot, apidl[0]); - if (!pidl) - return 0; - - bSuccess = SHGetPathFromIDListW(pidl, szTemp); - SHFree(pidl); - if (!bSuccess) - return 0; - - size = (wcslen(szTemp)+1) * sizeof(WCHAR); - - /* fill the structure */ - hGlobal = GlobalAlloc(GHND|GMEM_SHARE, size); - if(!hGlobal) return hGlobal; - szFileName = (WCHAR *)GlobalLock(hGlobal); - memcpy(szFileName, szTemp, size); - GlobalUnlock(hGlobal); - - return hGlobal; -} - -HGLOBAL RenderPREFEREDDROPEFFECT (DWORD dwFlags) -{ - DWORD * pdwFlag; - HGLOBAL hGlobal; - - TRACE("(0x%08x)\n", dwFlags); - - hGlobal = GlobalAlloc(GHND|GMEM_SHARE, sizeof(DWORD)); - if(!hGlobal) return hGlobal; - pdwFlag = (DWORD*)GlobalLock(hGlobal); - *pdwFlag = dwFlags; - GlobalUnlock(hGlobal); - return hGlobal; -} diff --git a/reactos/dll/win32/shell32/control.c b/reactos/dll/win32/shell32/control.c deleted file mode 100644 index 9b39b4ed642..00000000000 --- a/reactos/dll/win32/shell32/control.c +++ /dev/null @@ -1,522 +0,0 @@ -/* Control Panel management - * - * Copyright 2001 Eric Pouech - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shlctrl); - -CPlApplet* Control_UnloadApplet(CPlApplet* applet) -{ - unsigned i; - CPlApplet* next; - - for (i = 0; i < applet->count; i++) { - if (!applet->info[i].dwSize) continue; - applet->proc(applet->hWnd, CPL_STOP, i, applet->info[i].lData); - } - if (applet->proc) applet->proc(applet->hWnd, CPL_EXIT, 0L, 0L); - FreeLibrary(applet->hModule); - next = applet->next; - HeapFree(GetProcessHeap(), 0, applet); - return next; -} - -CPlApplet* Control_LoadApplet(HWND hWnd, LPCWSTR cmd, CPanel* panel) -{ - CPlApplet* applet; - unsigned i; - CPLINFO info; - NEWCPLINFOW newinfo; - - if (!(applet = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*applet)))) - return applet; - - applet->hWnd = hWnd; - - if (!(applet->hModule = LoadLibraryW(cmd))) { - WARN("Cannot load control panel applet %s\n", debugstr_w(cmd)); - goto theError; - } - if (!(applet->proc = (APPLET_PROC)GetProcAddress(applet->hModule, "CPlApplet"))) { - WARN("Not a valid control panel applet %s\n", debugstr_w(cmd)); - goto theError; - } - if (!applet->proc(hWnd, CPL_INIT, 0L, 0L)) { - WARN("Init of applet has failed\n"); - goto theError; - } - if ((applet->count = applet->proc(hWnd, CPL_GETCOUNT, 0L, 0L)) == 0) { - WARN("No subprogram in applet\n"); - goto theError; - } - - applet = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, applet, - sizeof(*applet) + (applet->count - 1) * sizeof(NEWCPLINFOW)); - - for (i = 0; i < applet->count; i++) { - ZeroMemory(&newinfo, sizeof(newinfo)); - newinfo.dwSize = sizeof(NEWCPLINFOW); - applet->info[i].dwSize = sizeof(NEWCPLINFOW); - /* proc is supposed to return a null value upon success for - * CPL_INQUIRE and CPL_NEWINQUIRE - * However, real drivers don't seem to behave like this - * So, use introspection rather than return value - */ - applet->proc(hWnd, CPL_NEWINQUIRE, i, (LPARAM)&newinfo); - if (newinfo.hIcon == 0) { - applet->proc(hWnd, CPL_INQUIRE, i, (LPARAM)&info); - if (info.idIcon == 0 || info.idName == 0) { - WARN("Couldn't get info from sp %u\n", i); - applet->info[i].dwSize = 0; - } else { - /* convert the old data into the new structure */ - applet->info[i].dwFlags = 0; - applet->info[i].dwHelpContext = 0; - applet->info[i].lData = info.lData; - applet->info[i].hIcon = LoadIconW(applet->hModule, - MAKEINTRESOURCEW(info.idIcon)); - LoadStringW(applet->hModule, info.idName, - applet->info[i].szName, sizeof(applet->info[i].szName) / sizeof(WCHAR)); - LoadStringW(applet->hModule, info.idInfo, - applet->info[i].szInfo, sizeof(applet->info[i].szInfo) / sizeof(WCHAR)); - applet->info[i].szHelpFile[0] = '\0'; - } - } - else - { - CopyMemory(&applet->info[i], &newinfo, newinfo.dwSize); - if (newinfo.dwSize != sizeof(NEWCPLINFOW)) - { - applet->info[i].dwSize = sizeof(NEWCPLINFOW); - lstrcpyW(applet->info[i].szName, newinfo.szName); - lstrcpyW(applet->info[i].szInfo, newinfo.szInfo); - lstrcpyW(applet->info[i].szHelpFile, newinfo.szHelpFile); - } - } - } - - applet->next = panel->first; - panel->first = applet; - - return applet; - - theError: - Control_UnloadApplet(applet); - return NULL; -} - -static void Control_WndProc_Create(HWND hWnd, const CREATESTRUCTW* cs) -{ - CPanel* panel = (CPanel*)cs->lpCreateParams; - - SetWindowLongPtrW(hWnd, 0, (LONG_PTR)panel); - panel->status = 0; - panel->hWnd = hWnd; -} - -#define XICON 32 -#define XSTEP 128 -#define YICON 32 -#define YSTEP 64 - -static BOOL Control_Localize(const CPanel* panel, int cx, int cy, - CPlApplet** papplet, unsigned* psp) -{ - unsigned i, x = (XSTEP-XICON)/2, y = 0; - CPlApplet* applet; - RECT rc; - - GetClientRect(panel->hWnd, &rc); - for (applet = panel->first; applet; applet = applet->next) { - for (i = 0; i < applet->count; i++) { - if (!applet->info[i].dwSize) continue; - if (x + XSTEP >= rc.right - rc.left) { - x = (XSTEP-XICON)/2; - y += YSTEP; - } - if (cx >= x && cx < x + XICON && cy >= y && cy < y + YSTEP) { - *papplet = applet; - *psp = i; - return TRUE; - } - x += XSTEP; - } - } - return FALSE; -} - -static LRESULT Control_WndProc_Paint(const CPanel* panel, WPARAM wParam) -{ - HDC hdc; - PAINTSTRUCT ps; - RECT rc, txtRect; - unsigned i, x = 0, y = 0; - CPlApplet* applet; - HGDIOBJ hOldFont; - - hdc = (wParam) ? (HDC)wParam : BeginPaint(panel->hWnd, &ps); - hOldFont = SelectObject(hdc, GetStockObject(ANSI_VAR_FONT)); - GetClientRect(panel->hWnd, &rc); - for (applet = panel->first; applet; applet = applet->next) { - for (i = 0; i < applet->count; i++) { - if (x + XSTEP >= rc.right - rc.left) { - x = 0; - y += YSTEP; - } - if (!applet->info[i].dwSize) continue; - DrawIcon(hdc, x + (XSTEP-XICON)/2, y, applet->info[i].hIcon); - txtRect.left = x; - txtRect.right = x + XSTEP; - txtRect.top = y + YICON; - txtRect.bottom = y + YSTEP; - DrawTextW(hdc, applet->info[i].szName, -1, &txtRect, - DT_CENTER | DT_VCENTER); - x += XSTEP; - } - } - SelectObject(hdc, hOldFont); - if (!wParam) EndPaint(panel->hWnd, &ps); - return 0; -} - -static LRESULT Control_WndProc_LButton(CPanel* panel, LPARAM lParam, BOOL up) -{ - unsigned i; - CPlApplet* applet; - - if (Control_Localize(panel, (short)LOWORD(lParam), (short)HIWORD(lParam), &applet, &i)) { - if (up) { - if (panel->clkApplet == applet && panel->clkSP == i) { - applet->proc(applet->hWnd, CPL_DBLCLK, i, applet->info[i].lData); - } - } else { - panel->clkApplet = applet; - panel->clkSP = i; - } - } - return 0; -} - -static LRESULT WINAPI Control_WndProc(HWND hWnd, UINT wMsg, - WPARAM lParam1, LPARAM lParam2) -{ - CPanel* panel = (CPanel*)GetWindowLongPtrW(hWnd, 0); - - if (panel || wMsg == WM_CREATE) { - switch (wMsg) { - case WM_CREATE: - Control_WndProc_Create(hWnd, (CREATESTRUCTW*)lParam2); - return 0; - case WM_DESTROY: - { - CPlApplet* applet = panel->first; - while (applet) - applet = Control_UnloadApplet(applet); - } - PostQuitMessage(0); - break; - case WM_PAINT: - return Control_WndProc_Paint(panel, lParam1); - case WM_LBUTTONUP: - return Control_WndProc_LButton(panel, lParam2, TRUE); - case WM_LBUTTONDOWN: - return Control_WndProc_LButton(panel, lParam2, FALSE); -/* EPP case WM_COMMAND: */ -/* EPP return Control_WndProc_Command(mwi, lParam1, lParam2); */ - } - } - - return DefWindowProcW(hWnd, wMsg, lParam1, lParam2); -} - -static void Control_DoInterface(CPanel* panel, HWND hWnd, HINSTANCE hInst) -{ - WNDCLASSW wc; - MSG msg; - const WCHAR* appName = L"ReactOS Control Panel"; - wc.style = CS_HREDRAW|CS_VREDRAW; - wc.lpfnWndProc = Control_WndProc; - wc.cbClsExtra = 0; - wc.cbWndExtra = sizeof(CPlApplet*); - wc.hInstance = hInst; - wc.hIcon = 0; - wc.hCursor = 0; - wc.hbrBackground = GetStockObject(WHITE_BRUSH); - wc.lpszMenuName = NULL; - wc.lpszClassName = L"Shell_Control_WndClass"; - - if (!RegisterClassW(&wc)) return; - - CreateWindowExW(0, wc.lpszClassName, appName, - WS_OVERLAPPEDWINDOW | WS_VISIBLE, - CW_USEDEFAULT, CW_USEDEFAULT, - CW_USEDEFAULT, CW_USEDEFAULT, - hWnd, NULL, hInst, panel); - if (!panel->hWnd) return; - - if (!panel->first) { - /* FIXME appName & message should be localized */ - MessageBoxW(panel->hWnd, L"Cannot load any applets", appName, MB_OK); - return; - } - - while (GetMessageW(&msg, panel->hWnd, 0, 0)) { - TranslateMessage(&msg); - DispatchMessageW(&msg); - } -} - -static void Control_DoWindow(CPanel* panel, HWND hWnd, HINSTANCE hInst) -{ - HANDLE h; - WIN32_FIND_DATAW fd; - WCHAR buffer[MAX_PATH]; - static const WCHAR wszAllCpl[] = {'*','.','c','p','l',0}; - WCHAR *p; - - GetSystemDirectoryW( buffer, MAX_PATH ); - p = buffer + wcslen(buffer); - *p++ = '\\'; - wcscpy(p, wszAllCpl); - - if ((h = FindFirstFileW(buffer, &fd)) != INVALID_HANDLE_VALUE) { - do { - wcscpy(p, fd.cFileName); - Control_LoadApplet(hWnd, buffer, panel); - } while (FindNextFileW(h, &fd)); - FindClose(h); - } - - Control_DoInterface(panel, hWnd, hInst); -} - -static void Control_DoLaunch(CPanel* panel, HWND hWnd, LPCWSTR wszCmd) - /* forms to parse: - * foo.cpl,@sp,str - * foo.cpl,@sp - * foo.cpl,,str - * foo.cpl @sp - * foo.cpl str - * "a path\foo.cpl" - */ -{ - LPWSTR buffer; - LPWSTR beg = NULL; - LPWSTR end; - WCHAR ch; - LPCWSTR ptr, ptr2; - WCHAR szName[MAX_PATH]; - unsigned sp = 0; - LPWSTR extraPmts = NULL; - int quoted = 0; - BOOL spSet = FALSE; - HANDLE hMutex; - UINT Length; - - ptr = wcsrchr(wszCmd, L'\\'); - ptr2 = wcsrchr(wszCmd, L','); - if (!ptr2) - { - ptr2 = wszCmd + wcslen(wszCmd) + 1; - } - - if (ptr) - ptr++; - else - ptr = wszCmd; - - Length = (ptr2 - ptr); - if (Length >= MAX_PATH) - return; - - memcpy(szName, (LPVOID)ptr, Length * sizeof(WCHAR)); - szName[Length] = L'\0'; - hMutex = CreateMutexW(NULL, TRUE, szName); - - if ((!hMutex) || (GetLastError() == ERROR_ALREADY_EXISTS)) - return; - buffer = HeapAlloc(GetProcessHeap(), 0, (wcslen(wszCmd) + 1) * sizeof(*wszCmd)); - if (!buffer) - { - CloseHandle(hMutex); - return; - } - end = wcscpy(buffer, wszCmd); - for (;;) { - ch = *end; - if (ch == '"') quoted = !quoted; - if (!quoted && (ch == ' ' || ch == ',' || ch == '\0')) { - *end = '\0'; - if (beg) { - if (*beg == '@') { - sp = atoiW(beg + 1); - spSet = TRUE; - } else if (*beg == '\0') { - sp = 0; - spSet = TRUE; - } else { - extraPmts = beg; - } - } - if (ch == '\0') break; - beg = end + 1; - if (ch == ' ') while (end[1] == ' ') end++; - } - end++; - } - while ((ptr = StrChrW(buffer, '"'))) - memmove((LPVOID)ptr, ptr+1, wcslen(ptr)*sizeof(WCHAR)); - - while ((ptr = StrChrW(extraPmts, '"'))) - memmove((LPVOID)ptr, ptr+1, wcslen(ptr)*sizeof(WCHAR)); - - TRACE("cmd %s, extra %s, sp %d\n", debugstr_w(buffer), debugstr_w(extraPmts), sp); - - Control_LoadApplet(hWnd, buffer, panel); - - if (panel->first) { - CPlApplet* applet = panel->first; - - assert(applet && applet->next == NULL); - if (sp >= applet->count) { - WARN("Out of bounds (%u >= %u), setting to 0\n", sp, applet->count); - sp = 0; - } - - if ((extraPmts) && extraPmts[0] &&(!spSet)) - { - while ((lstrcmpiW(extraPmts, applet->info[sp].szName)) && (sp < applet->count)) - sp++; - - if (sp >= applet->count) - { - ReleaseMutex(hMutex); - CloseHandle(hMutex); - Control_UnloadApplet(applet); - HeapFree(GetProcessHeap(), 0, buffer); - return; - } - } - if (applet->info[sp].dwSize) { - if (!applet->proc(applet->hWnd, CPL_DBLCLK, sp, applet->info[sp].lData)) - applet->proc(applet->hWnd, CPL_STARTWPARMSA, sp, (LPARAM)extraPmts); - } - Control_UnloadApplet(applet); - } - ReleaseMutex(hMutex); - CloseHandle(hMutex); - HeapFree(GetProcessHeap(), 0, buffer); -} - -/************************************************************************* - * Control_RunDLLW [SHELL32.@] - * - */ -void WINAPI Control_RunDLLW(HWND hWnd, HINSTANCE hInst, LPCWSTR cmd, DWORD nCmdShow) -{ - CPanel panel; - - TRACE("(%p, %p, %s, 0x%08x)\n", - hWnd, hInst, debugstr_w(cmd), nCmdShow); - - memset(&panel, 0, sizeof(panel)); - - if (!cmd || !*cmd) { - Control_DoWindow(&panel, hWnd, hInst); - } else { - Control_DoLaunch(&panel, hWnd, cmd); - } -} - -/************************************************************************* - * Control_RunDLLA [SHELL32.@] - * - */ -void WINAPI Control_RunDLLA(HWND hWnd, HINSTANCE hInst, LPCSTR cmd, DWORD nCmdShow) -{ - DWORD len = MultiByteToWideChar(CP_ACP, 0, cmd, -1, NULL, 0 ); - LPWSTR wszCmd = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - if (wszCmd && MultiByteToWideChar(CP_ACP, 0, cmd, -1, wszCmd, len )) - { - Control_RunDLLW(hWnd, hInst, wszCmd, nCmdShow); - } - HeapFree(GetProcessHeap(), 0, wszCmd); -} - -/************************************************************************* - * Control_FillCache_RunDLLW [SHELL32.@] - * - */ -HRESULT WINAPI Control_FillCache_RunDLLW(HWND hWnd, HANDLE hModule, DWORD w, DWORD x) -{ - FIXME("%p %p 0x%08x 0x%08x stub\n", hWnd, hModule, w, x); - return 0; -} - -/************************************************************************* - * Control_FillCache_RunDLLA [SHELL32.@] - * - */ -HRESULT WINAPI Control_FillCache_RunDLLA(HWND hWnd, HANDLE hModule, DWORD w, DWORD x) -{ - return Control_FillCache_RunDLLW(hWnd, hModule, w, x); -} - - -/************************************************************************* - * RunDLL_CallEntry16 [SHELL32.122] - * the name is probably wrong - */ -void WINAPI RunDLL_CallEntry16( DWORD proc, HWND hwnd, HINSTANCE inst, - LPCSTR cmdline, INT cmdshow ) -{ -#if !defined(__CYGWIN__) && !defined (__MINGW32__) && !defined(_MSC_VER) - WORD args[5]; - SEGPTR cmdline_seg; - - TRACE( "proc %x hwnd %p inst %p cmdline %s cmdshow %d\n", - proc, hwnd, inst, debugstr_a(cmdline), cmdshow ); - - cmdline_seg = MapLS( cmdline ); - args[4] = HWND_16(hwnd); - args[3] = MapHModuleLS(inst); - args[2] = SELECTOROF(cmdline_seg); - args[1] = OFFSETOF(cmdline_seg); - args[0] = cmdshow; - WOWCallback16Ex( proc, WCB16_PASCAL, sizeof(args), args, NULL ); - UnMapLS( cmdline_seg ); -#else - FIXME( "proc %lx hwnd %p inst %p cmdline %s cmdshow %d\n", - proc, hwnd, inst, debugstr_a(cmdline), cmdshow ); -#endif -} - -/************************************************************************* - * CallCPLEntry16 [SHELL32.166] - * - * called by desk.cpl on "Advanced" with: - * hMod("DeskCp16.Dll"), pFunc("CplApplet"), 0, 1, 0xc, 0 - * - */ -DWORD WINAPI CallCPLEntry16(HMODULE hMod, FARPROC pFunc, DWORD dw3, DWORD dw4, DWORD dw5, DWORD dw6) -{ - FIXME("(%p, %p, %08x, %08x, %08x, %08x): stub.\n", hMod, pFunc, dw3, dw4, dw5, dw6); - return 0x0deadbee; -} diff --git a/reactos/dll/win32/shell32/dataobject.c b/reactos/dll/win32/shell32/dataobject.c deleted file mode 100644 index 6da709528c8..00000000000 --- a/reactos/dll/win32/shell32/dataobject.c +++ /dev/null @@ -1,456 +0,0 @@ -/* - * IEnumFORMATETC, IDataObject - * - * selecting and droping objects within the shell and/or common dialogs - * - * Copyright 1998, 1999 - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -/*********************************************************************** -* IEnumFORMATETC implementation -*/ - -typedef struct -{ - /* IUnknown fields */ - const IEnumFORMATETCVtbl *lpVtbl; - LONG ref; - /* IEnumFORMATETC fields */ - UINT posFmt; - UINT countFmt; - LPFORMATETC pFmt; -} IEnumFORMATETCImpl; - -static HRESULT WINAPI IEnumFORMATETC_fnQueryInterface( - LPENUMFORMATETC iface, REFIID riid, LPVOID* ppvObj) -{ - IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface; - TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - - *ppvObj = NULL; - - if(IsEqualIID(riid, &IID_IUnknown)) - { - *ppvObj = This; - } - else if(IsEqualIID(riid, &IID_IEnumFORMATETC)) - { - *ppvObj = (IEnumFORMATETC*)This; - } - - if(*ppvObj) - { - IUnknown_AddRef((IUnknown*)(*ppvObj)); - TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj); - return S_OK; - } - TRACE("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI IEnumFORMATETC_fnAddRef(LPENUMFORMATETC iface) -{ - IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI IEnumFORMATETC_fnRelease(LPENUMFORMATETC iface) -{ - IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(%u)\n", This, refCount + 1); - - if (!refCount) - { - TRACE(" destroying IEnumFORMATETC(%p)\n",This); - SHFree (This->pFmt); - HeapFree(GetProcessHeap(),0,This); - return 0; - } - return refCount; -} - -static HRESULT WINAPI IEnumFORMATETC_fnNext(LPENUMFORMATETC iface, ULONG celt, FORMATETC *rgelt, ULONG *pceltFethed) -{ - IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface; - UINT i; - - TRACE("(%p)->(%u,%p)\n", This, celt, rgelt); - - if(!This->pFmt)return S_FALSE; - if(!rgelt) return E_INVALIDARG; - if (pceltFethed) *pceltFethed = 0; - - for(i = 0; This->posFmt < This->countFmt && celt > i; i++) - { - *rgelt++ = This->pFmt[This->posFmt++]; - } - - if (pceltFethed) *pceltFethed = i; - - return ((i == celt) ? S_OK : S_FALSE); -} - -static HRESULT WINAPI IEnumFORMATETC_fnSkip(LPENUMFORMATETC iface, ULONG celt) -{ - IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface; - TRACE("(%p)->(num=%u)\n", This, celt); - - if((This->posFmt + celt) >= This->countFmt) return S_FALSE; - This->posFmt += celt; - return S_OK; -} - -static HRESULT WINAPI IEnumFORMATETC_fnReset(LPENUMFORMATETC iface) -{ - IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface; - TRACE("(%p)->()\n", This); - - This->posFmt = 0; - return S_OK; -} - -static HRESULT WINAPI IEnumFORMATETC_fnClone(LPENUMFORMATETC iface, LPENUMFORMATETC* ppenum) -{ - IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface; - TRACE("(%p)->(ppenum=%p)\n", This, ppenum); - - if (!ppenum) return E_INVALIDARG; - *ppenum = IEnumFORMATETC_Constructor(This->countFmt, This->pFmt); - if(*ppenum) - IEnumFORMATETC_fnSkip(*ppenum, This->posFmt); - return S_OK; -} - -static const IEnumFORMATETCVtbl efvt = -{ - IEnumFORMATETC_fnQueryInterface, - IEnumFORMATETC_fnAddRef, - IEnumFORMATETC_fnRelease, - IEnumFORMATETC_fnNext, - IEnumFORMATETC_fnSkip, - IEnumFORMATETC_fnReset, - IEnumFORMATETC_fnClone -}; - -LPENUMFORMATETC IEnumFORMATETC_Constructor(UINT cfmt, const FORMATETC afmt[]) -{ - IEnumFORMATETCImpl* ef; - DWORD size=cfmt * sizeof(FORMATETC); - - ef = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IEnumFORMATETCImpl)); - - if(ef) - { - ef->ref=1; - ef->lpVtbl=&efvt; - - ef->countFmt = cfmt; - ef->pFmt = SHAlloc (size); - - if (ef->pFmt) - memcpy(ef->pFmt, afmt, size); - } - - TRACE("(%p)->(%u,%p)\n",ef, cfmt, afmt); - return (LPENUMFORMATETC)ef; -} - - -/*********************************************************************** -* IDataObject implementation -*/ - -/* number of supported formats */ -#define MAX_FORMATS 4 - -typedef struct -{ - /* IUnknown fields */ - const IDataObjectVtbl *lpVtbl; - LONG ref; - - /* IDataObject fields */ - LPITEMIDLIST pidl; - LPITEMIDLIST * apidl; - UINT cidl; - - FORMATETC pFormatEtc[MAX_FORMATS]; - UINT cfShellIDList; - UINT cfFileNameA; - UINT cfFileNameW; - -} IDataObjectImpl; - -/*************************************************************************** -* IDataObject_QueryInterface -*/ -static HRESULT WINAPI IDataObject_fnQueryInterface(LPDATAOBJECT iface, REFIID riid, LPVOID * ppvObj) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - - *ppvObj = NULL; - - if(IsEqualIID(riid, &IID_IUnknown)) /*IUnknown*/ - { - *ppvObj = This; - } - else if(IsEqualIID(riid, &IID_IDataObject)) /*IDataObject*/ - { - *ppvObj = (IDataObject*)This; - } - - if(*ppvObj) - { - IUnknown_AddRef((IUnknown*)*ppvObj); - TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj); - return S_OK; - } - TRACE("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -/************************************************************************** -* IDataObject_AddRef -*/ -static ULONG WINAPI IDataObject_fnAddRef(LPDATAOBJECT iface) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -/************************************************************************** -* IDataObject_Release -*/ -static ULONG WINAPI IDataObject_fnRelease(LPDATAOBJECT iface) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(%u)\n", This, refCount + 1); - - if (!refCount) - { - TRACE(" destroying IDataObject(%p)\n",This); - _ILFreeaPidl(This->apidl, This->cidl); - ILFree(This->pidl), - HeapFree(GetProcessHeap(),0,This); - } - return refCount; -} - -/************************************************************************** -* IDataObject_fnGetData -*/ -static HRESULT WINAPI IDataObject_fnGetData(LPDATAOBJECT iface, LPFORMATETC pformatetcIn, STGMEDIUM *pmedium) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - - char szTemp[256]; - - szTemp[0]=0; - GetClipboardFormatNameA (pformatetcIn->cfFormat, szTemp, 256); - TRACE("(%p)->(%p %p format=%s)\n", This, pformatetcIn, pmedium, szTemp); - - if (pformatetcIn->cfFormat == This->cfShellIDList) - { - if (This->cidl < 1) return(E_UNEXPECTED); - pmedium->u.hGlobal = RenderSHELLIDLIST(This->pidl, This->apidl, This->cidl); - } - else if (pformatetcIn->cfFormat == CF_HDROP) - { - if (This->cidl < 1) return(E_UNEXPECTED); - pmedium->u.hGlobal = RenderHDROP(This->pidl, This->apidl, This->cidl); - } - else if (pformatetcIn->cfFormat == This->cfFileNameA) - { - if (This->cidl < 1) return(E_UNEXPECTED); - pmedium->u.hGlobal = RenderFILENAMEA(This->pidl, This->apidl, This->cidl); - } - else if (pformatetcIn->cfFormat == This->cfFileNameW) - { - if (This->cidl < 1) return(E_UNEXPECTED); - pmedium->u.hGlobal = RenderFILENAMEW(This->pidl, This->apidl, This->cidl); - } - else - { - FIXME("-- expected clipformat not implemented\n"); - return (E_INVALIDARG); - } - if (pmedium->u.hGlobal) - { - pmedium->tymed = TYMED_HGLOBAL; - pmedium->pUnkForRelease = NULL; - return S_OK; - } - return E_OUTOFMEMORY; -} - -static HRESULT WINAPI IDataObject_fnGetDataHere(LPDATAOBJECT iface, LPFORMATETC pformatetc, STGMEDIUM *pmedium) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - FIXME("(%p)->()\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI IDataObject_fnQueryGetData(LPDATAOBJECT iface, LPFORMATETC pformatetc) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - UINT i; - - TRACE("(%p)->(fmt=0x%08x tym=0x%08x)\n", This, pformatetc->cfFormat, pformatetc->tymed); - - if(!(DVASPECT_CONTENT & pformatetc->dwAspect)) - return DV_E_DVASPECT; - - /* check our formats table what we have */ - for (i=0; ipFormatEtc[i].cfFormat == pformatetc->cfFormat) - && (This->pFormatEtc[i].tymed == pformatetc->tymed)) - { - return S_OK; - } - } - - return DV_E_TYMED; -} - -static HRESULT WINAPI IDataObject_fnGetCanonicalFormatEtc(LPDATAOBJECT iface, LPFORMATETC pformatectIn, LPFORMATETC pformatetcOut) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - FIXME("(%p)->()\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI IDataObject_fnSetData(LPDATAOBJECT iface, LPFORMATETC pformatetc, STGMEDIUM *pmedium, BOOL fRelease) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - FIXME("(%p)->()\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI IDataObject_fnEnumFormatEtc(LPDATAOBJECT iface, DWORD dwDirection, IEnumFORMATETC **ppenumFormatEtc) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - - TRACE("(%p)->()\n", This); - *ppenumFormatEtc=NULL; - - /* only get data */ - if (DATADIR_GET == dwDirection) - { - *ppenumFormatEtc = IEnumFORMATETC_Constructor(MAX_FORMATS, This->pFormatEtc); - return (*ppenumFormatEtc) ? S_OK : E_FAIL; - } - - return E_NOTIMPL; -} - -static HRESULT WINAPI IDataObject_fnDAdvise(LPDATAOBJECT iface, FORMATETC *pformatetc, DWORD advf, IAdviseSink *pAdvSink, DWORD *pdwConnection) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - FIXME("(%p)->()\n", This); - return E_NOTIMPL; -} -static HRESULT WINAPI IDataObject_fnDUnadvise(LPDATAOBJECT iface, DWORD dwConnection) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - FIXME("(%p)->()\n", This); - return E_NOTIMPL; -} -static HRESULT WINAPI IDataObject_fnEnumDAdvise(LPDATAOBJECT iface, IEnumSTATDATA **ppenumAdvise) -{ - IDataObjectImpl *This = (IDataObjectImpl *)iface; - FIXME("(%p)->()\n", This); - return E_NOTIMPL; -} - -static const IDataObjectVtbl dtovt = -{ - IDataObject_fnQueryInterface, - IDataObject_fnAddRef, - IDataObject_fnRelease, - IDataObject_fnGetData, - IDataObject_fnGetDataHere, - IDataObject_fnQueryGetData, - IDataObject_fnGetCanonicalFormatEtc, - IDataObject_fnSetData, - IDataObject_fnEnumFormatEtc, - IDataObject_fnDAdvise, - IDataObject_fnDUnadvise, - IDataObject_fnEnumDAdvise -}; - -/************************************************************************** -* IDataObject_Constructor -*/ -LPDATAOBJECT IDataObject_Constructor(HWND hwndOwner, - LPCITEMIDLIST pMyPidl, LPCITEMIDLIST * apidl, UINT cidl) -{ - IDataObjectImpl* dto; - - dto = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDataObjectImpl)); - - if (dto) - { - dto->ref = 1; - dto->lpVtbl = &dtovt; - dto->pidl = ILClone(pMyPidl); - dto->apidl = _ILCopyaPidl(apidl, cidl); - dto->cidl = cidl; - - dto->cfShellIDList = RegisterClipboardFormatW(CFSTR_SHELLIDLIST); - dto->cfFileNameA = RegisterClipboardFormatA(CFSTR_FILENAMEA); - dto->cfFileNameW = RegisterClipboardFormatW(CFSTR_FILENAMEW); - InitFormatEtc(dto->pFormatEtc[0], dto->cfShellIDList, TYMED_HGLOBAL); - InitFormatEtc(dto->pFormatEtc[1], CF_HDROP, TYMED_HGLOBAL); - InitFormatEtc(dto->pFormatEtc[2], dto->cfFileNameA, TYMED_HGLOBAL); - InitFormatEtc(dto->pFormatEtc[3], dto->cfFileNameW, TYMED_HGLOBAL); - } - - TRACE("(%p)->(apidl=%p cidl=%u)\n",dto, apidl, cidl); - return (LPDATAOBJECT)dto; -} - -/************************************************************************* - * SHCreateDataObject [SHELL32.@] - * - */ - -HRESULT WINAPI SHCreateDataObject(LPCITEMIDLIST pidlFolder, UINT cidl, LPCITEMIDLIST* apidl, IDataObject *pdtInner, REFIID riid, void **ppv) -{ - if (IsEqualIID(riid, &IID_IDataObject)) - { - return CIDLData_CreateFromIDArray(pidlFolder, cidl, apidl, (IDataObject**)ppv); - } - return E_FAIL; -} diff --git a/reactos/dll/win32/shell32/dde.c b/reactos/dll/win32/shell32/dde.c deleted file mode 100644 index e2d1458b972..00000000000 --- a/reactos/dll/win32/shell32/dde.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Shell DDE Handling - * - * Copyright 2004 Robert Shearman - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -/* String handles */ -static HSZ hszProgmanTopic; -static HSZ hszProgmanService; -static HSZ hszAsterisk; -static HSZ hszShell; -static HSZ hszAppProperties; -static HSZ hszFolders; -/* DDE Instance ID */ -static DWORD dwDDEInst; - - -static BOOL __inline Dde_OnConnect(HSZ hszTopic, HSZ hszService) -{ - if ((hszTopic == hszProgmanTopic) && (hszService == hszProgmanService)) - return TRUE; - if ((hszTopic == hszProgmanTopic) && (hszService == hszAppProperties)) - return TRUE; - if ((hszTopic == hszShell) && (hszService == hszFolders)) - return TRUE; - if ((hszTopic == hszShell) && (hszService == hszAppProperties)) - return TRUE; - return FALSE; -} - -static void __inline Dde_OnConnectConfirm(HCONV hconv, HSZ hszTopic, HSZ hszService) -{ - FIXME("stub\n"); -} - -static BOOL __inline Dde_OnWildConnect(HSZ hszTopic, HSZ hszService) -{ - FIXME("stub\n"); - return FALSE; -} - -static HDDEDATA __inline Dde_OnRequest(UINT uFmt, HCONV hconv, HSZ hszTopic, - HSZ hszItem) -{ - FIXME("stub\n"); - return NULL; -} - -static DWORD __inline Dde_OnExecute(HCONV hconv, HSZ hszTopic, HDDEDATA hdata) -{ - BYTE * pszCommand; - - pszCommand = DdeAccessData(hdata, NULL); - if (!pszCommand) - return DDE_FNOTPROCESSED; - - FIXME("stub: %s\n", pszCommand); - - DdeUnaccessData(hdata); - - return DDE_FNOTPROCESSED; -} - -static void __inline Dde_OnDisconnect(HCONV hconv) -{ - FIXME("stub\n"); -} - -static HDDEDATA CALLBACK DdeCallback( - UINT uType, - UINT uFmt, - HCONV hconv, - HSZ hsz1, - HSZ hsz2, - HDDEDATA hdata, - ULONG_PTR dwData1, - ULONG_PTR dwData2) -{ - switch (uType) - { - case XTYP_CONNECT: - return (HDDEDATA)(DWORD_PTR)Dde_OnConnect(hsz1, hsz2); - case XTYP_CONNECT_CONFIRM: - Dde_OnConnectConfirm(hconv, hsz1, hsz2); - return NULL; - case XTYP_WILDCONNECT: - return (HDDEDATA)(DWORD_PTR)Dde_OnWildConnect(hsz1, hsz2); - case XTYP_REQUEST: - return Dde_OnRequest(uFmt, hconv, hsz1, hsz2); - case XTYP_EXECUTE: - return (HDDEDATA)(DWORD_PTR)Dde_OnExecute(hconv, hsz1, hdata); - case XTYP_DISCONNECT: - Dde_OnDisconnect(hconv); - return NULL; - default: - return NULL; - } -} - -/************************************************************************* - * ShellDDEInit (SHELL32.@) - * - * Registers the Shell DDE services with the system so that applications - * can use them. - * - * PARAMS - * bInit [I] TRUE to initialize the services, FALSE to uninitalize. - * - * RETURNS - * Nothing. - */ -void WINAPI ShellDDEInit(BOOL bInit) -{ - TRACE("bInit = %s\n", bInit ? "TRUE" : "FALSE"); - - if (bInit) - { - static const WCHAR wszProgman[] = {'P','r','o','g','m','a','n',0}; - static const WCHAR wszAsterisk[] = {'*',0}; - static const WCHAR wszShell[] = {'S','h','e','l','l',0}; - static const WCHAR wszAppProperties[] = - {'A','p','p','P','r','o','p','e','r','t','i','e','s',0}; - static const WCHAR wszFolders[] = {'F','o','l','d','e','r','s',0}; - - DdeInitializeW(&dwDDEInst, DdeCallback, CBF_FAIL_ADVISES | CBF_FAIL_POKES, 0); - - hszProgmanTopic = DdeCreateStringHandleW(dwDDEInst, wszProgman, CP_WINUNICODE); - hszProgmanService = DdeCreateStringHandleW(dwDDEInst, wszProgman, CP_WINUNICODE); - hszAsterisk = DdeCreateStringHandleW(dwDDEInst, wszAsterisk, CP_WINUNICODE); - hszShell = DdeCreateStringHandleW(dwDDEInst, wszShell, CP_WINUNICODE); - hszAppProperties = DdeCreateStringHandleW(dwDDEInst, wszAppProperties, CP_WINUNICODE); - hszFolders = DdeCreateStringHandleW(dwDDEInst, wszFolders, CP_WINUNICODE); - - DdeNameService(dwDDEInst, hszFolders, 0, DNS_REGISTER); - DdeNameService(dwDDEInst, hszProgmanService, 0, DNS_REGISTER); - DdeNameService(dwDDEInst, hszShell, 0, DNS_REGISTER); - } - else - { - /* unregister all services */ - DdeNameService(dwDDEInst, 0, 0, DNS_UNREGISTER); - - DdeFreeStringHandle(dwDDEInst, hszFolders); - DdeFreeStringHandle(dwDDEInst, hszAppProperties); - DdeFreeStringHandle(dwDDEInst, hszShell); - DdeFreeStringHandle(dwDDEInst, hszAsterisk); - DdeFreeStringHandle(dwDDEInst, hszProgmanService); - DdeFreeStringHandle(dwDDEInst, hszProgmanTopic); - - DdeUninitialize(dwDDEInst); - } -} diff --git a/reactos/dll/win32/shell32/debughlp.c b/reactos/dll/win32/shell32/debughlp.c deleted file mode 100644 index 8a2ad756f9c..00000000000 --- a/reactos/dll/win32/shell32/debughlp.c +++ /dev/null @@ -1,425 +0,0 @@ -/* - * Helper functions for debugging - * - * Copyright 1998, 2002 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(pidl); - -static -LPITEMIDLIST _dbg_ILGetNext(LPCITEMIDLIST pidl) -{ - WORD len; - - if(pidl) - { - len = pidl->mkid.cb; - if (len) - { - return (LPITEMIDLIST) (((LPBYTE)pidl)+len); - } - } - return NULL; -} - -static -BOOL _dbg_ILIsDesktop(LPCITEMIDLIST pidl) -{ - return ( !pidl || (pidl && pidl->mkid.cb == 0x00) ); -} - -static -LPPIDLDATA _dbg_ILGetDataPointer(LPCITEMIDLIST pidl) -{ - if(pidl && pidl->mkid.cb != 0x00) - return (LPPIDLDATA) &(pidl->mkid.abID); - return NULL; -} - -static -LPSTR _dbg_ILGetTextPointer(LPCITEMIDLIST pidl) -{ - LPPIDLDATA pdata =_dbg_ILGetDataPointer(pidl); - - if (pdata) - { - switch (pdata->type) - { - case PT_GUID: - case PT_SHELLEXT: - case PT_YAGUID: - return NULL; - - case PT_DRIVE: - case PT_DRIVE1: - case PT_DRIVE2: - case PT_DRIVE3: - return (LPSTR)&(pdata->u.drive.szDriveName); - - case PT_FOLDER: - case PT_FOLDER1: - case PT_VALUE: - case PT_IESPECIAL1: - case PT_IESPECIAL2: - return (LPSTR)&(pdata->u.file.szNames); - - case PT_WORKGRP: - case PT_COMP: - case PT_NETWORK: - case PT_NETPROVIDER: - case PT_SHARE: - return (LPSTR)&(pdata->u.network.szNames); - } - } - return NULL; -} - -static -LPWSTR _dbg_ILGetTextPointerW(LPCITEMIDLIST pidl) -{ - LPPIDLDATA pdata =_dbg_ILGetDataPointer(pidl); - - if (pdata) - { - switch (pdata->type) - { - case PT_GUID: - case PT_SHELLEXT: - case PT_YAGUID: - return NULL; - - case PT_DRIVE: - case PT_DRIVE1: - case PT_DRIVE2: - case PT_DRIVE3: - /* return (LPSTR)&(pdata->u.drive.szDriveName);*/ - return NULL; - - case PT_FOLDER: - case PT_FOLDER1: - case PT_VALUE: - case PT_IESPECIAL1: - case PT_IESPECIAL2: - /* return (LPSTR)&(pdata->u.file.szNames); */ - return NULL; - - case PT_WORKGRP: - case PT_COMP: - case PT_NETWORK: - case PT_NETPROVIDER: - case PT_SHARE: - /* return (LPSTR)&(pdata->u.network.szNames); */ - return NULL; - - case PT_VALUEW: - return (LPWSTR)&(pdata->u.file.szNames); - } - } - return NULL; -} - - -static -LPSTR _dbg_ILGetSTextPointer(LPCITEMIDLIST pidl) -{ - LPPIDLDATA pdata =_dbg_ILGetDataPointer(pidl); - - if (pdata) - { - switch (pdata->type) - { - case PT_FOLDER: - case PT_VALUE: - case PT_IESPECIAL1: - case PT_IESPECIAL2: - return (LPSTR)(pdata->u.file.szNames + strlen (pdata->u.file.szNames) + 1); - - case PT_WORKGRP: - return (LPSTR)(pdata->u.network.szNames + strlen (pdata->u.network.szNames) + 1); - } - } - return NULL; -} - -static -LPWSTR _dbg_ILGetSTextPointerW(LPCITEMIDLIST pidl) -{ - LPPIDLDATA pdata =_dbg_ILGetDataPointer(pidl); - - if (pdata) - { - switch (pdata->type) - { - case PT_FOLDER: - case PT_VALUE: - case PT_IESPECIAL1: - case PT_IESPECIAL2: - /*return (LPSTR)(pdata->u.file.szNames + strlen (pdata->u.file.szNames) + 1); */ - return NULL; - - case PT_WORKGRP: - /* return (LPSTR)(pdata->u.network.szNames + strlen (pdata->u.network.szNames) + 1); */ - return NULL; - - case PT_VALUEW: - return (LPWSTR)(pdata->u.file.szNames + wcslen ((LPWSTR)pdata->u.file.szNames) + 1); - } - } - return NULL; -} - - -static -IID* _dbg_ILGetGUIDPointer(LPCITEMIDLIST pidl) -{ - LPPIDLDATA pdata =_ILGetDataPointer(pidl); - - if (pdata) - { - switch (pdata->type) - { - case PT_SHELLEXT: - case PT_GUID: - case PT_YAGUID: - return &(pdata->u.guid.guid); - } - } - return NULL; -} - -static -void _dbg_ILSimpleGetText (LPCITEMIDLIST pidl, LPSTR szOut, UINT uOutSize) -{ - LPSTR szSrc; - LPWSTR szSrcW; - GUID const * riid; - - if (!pidl) return; - - if (szOut) - *szOut = 0; - - if (_dbg_ILIsDesktop(pidl)) - { - /* desktop */ - if (szOut) lstrcpynA(szOut, "Desktop", uOutSize); - } - else if (( szSrc = _dbg_ILGetTextPointer(pidl) )) - { - /* filesystem */ - if (szOut) lstrcpynA(szOut, szSrc, uOutSize); - } - else if (( szSrcW = _dbg_ILGetTextPointerW(pidl) )) - { - CHAR tmp[MAX_PATH]; - /* unicode filesystem */ - WideCharToMultiByte(CP_ACP,0,szSrcW, -1, tmp, MAX_PATH, NULL, NULL); - if (szOut) lstrcpynA(szOut, tmp, uOutSize); - } - else if (( riid = _dbg_ILGetGUIDPointer(pidl) )) - { - if (szOut) - sprintf( szOut, "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}", - riid->Data1, riid->Data2, riid->Data3, - riid->Data4[0], riid->Data4[1], riid->Data4[2], riid->Data4[3], - riid->Data4[4], riid->Data4[5], riid->Data4[6], riid->Data4[7] ); - } -} - - - - -void pdump (LPCITEMIDLIST pidl) -{ - LPCITEMIDLIST pidltemp = pidl; - - if (!TRACE_ON(pidl)) return; - - if (! pidltemp) - { - MESSAGE ("-------- pidl=NULL (Desktop)\n"); - } - else - { - MESSAGE ("-------- pidl=%p\n", pidl); - if (pidltemp->mkid.cb) - { - do - { - if (_ILIsUnicode(pidltemp)) - { - DWORD dwAttrib = 0; - LPPIDLDATA pData = _dbg_ILGetDataPointer(pidltemp); - DWORD type = pData ? pData->type : 0; - LPWSTR szLongName = _dbg_ILGetTextPointerW(pidltemp); - LPWSTR szShortName = _dbg_ILGetSTextPointerW(pidltemp); - char szName[MAX_PATH]; - - _dbg_ILSimpleGetText(pidltemp, szName, MAX_PATH); - if ( pData && (PT_FOLDER == type || PT_VALUE == type) ) - dwAttrib = pData->u.file.uFileAttribs; - - MESSAGE ("[%p] size=%04u type=%x attr=0x%08x name=%s (%s,%s)\n", - pidltemp, pidltemp->mkid.cb, type, dwAttrib, - debugstr_a(szName), debugstr_w(szLongName), debugstr_w(szShortName)); - } - else - { - DWORD dwAttrib = 0; - LPPIDLDATA pData = _dbg_ILGetDataPointer(pidltemp); - DWORD type = pData ? pData->type : 0; - LPSTR szLongName = _dbg_ILGetTextPointer(pidltemp); - LPSTR szShortName = _dbg_ILGetSTextPointer(pidltemp); - char szName[MAX_PATH]; - - _dbg_ILSimpleGetText(pidltemp, szName, MAX_PATH); - if ( pData && (PT_FOLDER == type || PT_VALUE == type) ) - dwAttrib = pData->u.file.uFileAttribs; - - MESSAGE ("[%p] size=%04u type=%x attr=0x%08x name=%s (%s,%s)\n", - pidltemp, pidltemp->mkid.cb, type, dwAttrib, - debugstr_a(szName), debugstr_a(szLongName), debugstr_a(szShortName)); - } - - pidltemp = _dbg_ILGetNext(pidltemp); - - } while (pidltemp && pidltemp->mkid.cb); - } - else - { - MESSAGE ("empty pidl (Desktop)\n"); - } - pcheck(pidl); - } -} - -static void dump_pidl_hex( LPCITEMIDLIST pidl ) -{ - const unsigned char *p = (const unsigned char *)pidl; - const int max_bytes = 0x80; -#define max_line 0x10 - char szHex[max_line*3+1], szAscii[max_line+1]; - int i, n; - - n = pidl->mkid.cb; - if( n>max_bytes ) - n = max_bytes; - for( i=0; imkid.cb ) - { - type = _dbg_ILGetDataPointer(pidltemp)->type; - switch( type ) - { - case PT_CPLAPPLET: - case PT_GUID: - case PT_SHELLEXT: - case PT_DRIVE: - case PT_DRIVE1: - case PT_DRIVE2: - case PT_DRIVE3: - case PT_FOLDER: - case PT_VALUE: - case PT_VALUEW: - case PT_FOLDER1: - case PT_WORKGRP: - case PT_COMP: - case PT_NETPROVIDER: - case PT_NETWORK: - case PT_IESPECIAL1: - case PT_YAGUID: - case PT_IESPECIAL2: - case PT_SHARE: - break; - default: - ERR("unknown IDLIST %p [%p] size=%u type=%x\n", - pidl, pidltemp, pidltemp->mkid.cb,type ); - dump_pidl_hex( pidltemp ); - return FALSE; - } - pidltemp = _dbg_ILGetNext(pidltemp); - } - return TRUE; -} - -static const struct { - REFIID riid; - const char *name; -} InterfaceDesc[] = { - {&IID_IUnknown, "IID_IUnknown"}, - {&IID_IClassFactory, "IID_IClassFactory"}, - {&IID_IShellView, "IID_IShellView"}, - {&IID_IOleCommandTarget, "IID_IOleCommandTarget"}, - {&IID_IDropTarget, "IID_IDropTarget"}, - {&IID_IDropSource, "IID_IDropSource"}, - {&IID_IViewObject, "IID_IViewObject"}, - {&IID_IContextMenu, "IID_IContextMenu"}, - {&IID_IShellExtInit, "IID_IShellExtInit"}, - {&IID_IShellFolder, "IID_IShellFolder"}, - {&IID_IShellFolder2, "IID_IShellFolder2"}, - {&IID_IPersist, "IID_IPersist"}, - {&IID_IPersistFolder, "IID_IPersistFolder"}, - {&IID_IPersistFolder2, "IID_IPersistFolder2"}, - {&IID_IPersistFolder3, "IID_IPersistFolder3"}, - {&IID_IExtractIconA, "IID_IExtractIconA"}, - {&IID_IExtractIconW, "IID_IExtractIconW"}, - {&IID_IDataObject, "IID_IDataObject"}, - {&IID_IAutoComplete, "IID_IAutoComplete"}, - {&IID_IAutoComplete2, "IID_IAutoComplete2"}, - {&IID_IShellLinkA, "IID_IShellLinkA"}, - {&IID_IShellLinkW, "IID_IShellLinkW"}, - {NULL,NULL}}; - -const char * shdebugstr_guid( const struct _GUID *id ) -{ - int i; - const char* name = NULL; - char clsidbuf[100]; - - if (!id) return "(null)"; - - for (i=0;InterfaceDesc[i].riid && !name;i++) { - if (IsEqualIID(InterfaceDesc[i].riid, id)) name = InterfaceDesc[i].name; - } - if (!name) { - if (HCR_GetClassNameA(id, clsidbuf, 100)) - name = clsidbuf; - } - - return wine_dbg_sprintf( "\n\t{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x} (%s)", - id->Data1, id->Data2, id->Data3, - id->Data4[0], id->Data4[1], id->Data4[2], id->Data4[3], - id->Data4[4], id->Data4[5], id->Data4[6], id->Data4[7], name ? name : "unknown" ); -} diff --git a/reactos/dll/win32/shell32/desktop.c b/reactos/dll/win32/shell32/desktop.c deleted file mode 100644 index cd21bcbae2a..00000000000 --- a/reactos/dll/win32/shell32/desktop.c +++ /dev/null @@ -1,779 +0,0 @@ -/* - * Shell Desktop - * - * Copyright 2008 Thomas Bluemel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(desktop); - -BOOL WINAPI SetShellWindowEx(HWND, HWND); - -#define SHDESK_TAG 0x4b534544 - -static const WCHAR szProgmanClassName[] = {'P','r','o','g','m','a','n'}; -static const WCHAR szProgmanWindowName[] = { - 'P','r','o','g','r','a','m',' ','M','a','n','a','g','e','r' -}; - -static const IShellBrowserVtbl SHDESK_Vtbl; -static const ICommDlgBrowserVtbl SHDESK_ICommDlgBrowser_Vtbl; -static const IServiceProviderVtbl SHDESK_IServiceProvider_Vtbl; - -typedef struct _SHDESK -{ - DWORD Tag; - const IShellBrowserVtbl *lpVtbl; - const ICommDlgBrowserVtbl *lpVtblCommDlgBrowser; - const IServiceProviderVtbl *lpVtblServiceProvider; - LONG Ref; - HWND hWnd; - HWND hWndShellView; - HWND hWndDesktopListView; - IShellDesktopTray *ShellDesk; - IShellView *DesktopView; - IShellBrowser *DefaultShellBrowser; - LPITEMIDLIST pidlDesktopDirectory; - LPITEMIDLIST pidlDesktop; -} SHDESK, *PSHDESK; - -static IUnknown * -IUnknown_from_impl(SHDESK *This) -{ - return (IUnknown *)&This->lpVtbl; -} - -static IShellBrowser * -IShellBrowser_from_impl(SHDESK *This) -{ - return (IShellBrowser *)&This->lpVtbl; -} - -static IOleWindow * -IOleWindow_from_impl(SHDESK *This) -{ - return (IOleWindow *)&This->lpVtbl; -} - -static ICommDlgBrowser * -ICommDlgBrowser_from_impl(SHDESK *This) -{ - return (ICommDlgBrowser *)&This->lpVtblCommDlgBrowser; -} - -static IServiceProvider * -IServiceProvider_from_impl(SHDESK *This) -{ - return (IServiceProvider *)&This->lpVtblServiceProvider; -} - -static SHDESK * -impl_from_IShellBrowser(IShellBrowser *iface) -{ - return (SHDESK *)((ULONG_PTR)iface - FIELD_OFFSET(SHDESK, lpVtbl)); -} - -static SHDESK * -impl_from_ICommDlgBrowser(ICommDlgBrowser *iface) -{ - return (SHDESK *)((ULONG_PTR)iface - FIELD_OFFSET(SHDESK, lpVtblCommDlgBrowser)); -} - -static SHDESK * -impl_from_IServiceProvider(IServiceProvider *iface) -{ - return (SHDESK *)((ULONG_PTR)iface - FIELD_OFFSET(SHDESK, lpVtblServiceProvider)); -} - -static void -SHDESK_Free(SHDESK *This) -{ - if (This->ShellDesk != NULL) - IShellDesktopTray_Release(This->ShellDesk); - - if (This->DesktopView != NULL) - { - if (This->hWndShellView != NULL) - IShellView_DestroyViewWindow(This->DesktopView); - - IShellView_Release(This->DesktopView); - This->DesktopView = NULL; - This->hWndShellView = NULL; - This->hWndDesktopListView = NULL; - } - - if (This->pidlDesktopDirectory != NULL) - { - ILFree(This->pidlDesktopDirectory); - This->pidlDesktopDirectory = NULL; - } - - if (This->pidlDesktop != NULL) - { - ILFree(This->pidlDesktop); - This->pidlDesktop = NULL; - } - - ZeroMemory(This, sizeof(SHDESK)); - LocalFree((HLOCAL)This); -} - -static ULONG STDMETHODCALLTYPE -SHDESK_Release(IShellBrowser *iface) -{ - SHDESK *This = impl_from_IShellBrowser(iface); - ULONG Ret; - - Ret = InterlockedDecrement(&This->Ref); - if (Ret == 0) - SHDESK_Free(This); - - return Ret; -} - -static ULONG STDMETHODCALLTYPE -SHDESK_AddRef(IShellBrowser *iface) -{ - SHDESK *This = impl_from_IShellBrowser(iface); - - return InterlockedIncrement(&This->Ref); -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_QueryInterface(IShellBrowser *iface, REFIID riid, LPVOID *ppvObj) -{ - SHDESK *This; - - if (ppvObj == NULL) - return E_POINTER; - - This = impl_from_IShellBrowser(iface); - - if (IsEqualIID(riid, &IID_IUnknown)) - { - *ppvObj = IUnknown_from_impl(This); - } - else if (This->DefaultShellBrowser != NULL) - { - return IShellBrowser_QueryInterface(This->DefaultShellBrowser, riid, ppvObj); - } - else if (IsEqualIID(riid, &IID_IOleWindow)) - { - *ppvObj = IOleWindow_from_impl(This); - } - else if (IsEqualIID(riid, &IID_IShellBrowser)) - { - *ppvObj = IShellBrowser_from_impl(This); - } - else if (IsEqualIID(riid, &IID_ICommDlgBrowser)) - { - *ppvObj = ICommDlgBrowser_from_impl(This); - } - else if (IsEqualIID(riid, &IID_IServiceProvider)) - { - *ppvObj = IServiceProvider_from_impl(This); - } - else - { - *ppvObj = NULL; - return E_NOINTERFACE; - } - - SHDESK_AddRef(iface); - return S_OK; -} - -static PSHDESK -SHDESK_Create(HWND hWnd, LPCREATESTRUCT lpCreateStruct) -{ - IShellFolder *psfDesktopFolder; - IShellDesktopTray *ShellDesk; - CSFV csfv; - SHDESK *This; - HRESULT hRet; - - ShellDesk = (IShellDesktopTray *)lpCreateStruct->lpCreateParams; - if (ShellDesk == NULL) - { - WARN("No IShellDesk interface provided!"); - return NULL; - } - - This = (PSHDESK)LocalAlloc(LMEM_FIXED, sizeof(SHDESK)); - if (This == NULL) - return NULL; - - ZeroMemory(This, sizeof(SHDESK)); - This->Tag = SHDESK_TAG; - This->lpVtbl = &SHDESK_Vtbl; - This->lpVtblCommDlgBrowser = &SHDESK_ICommDlgBrowser_Vtbl; - This->lpVtblServiceProvider = &SHDESK_IServiceProvider_Vtbl; - This->Ref = 1; - This->hWnd = hWnd; - This->ShellDesk = ShellDesk; - IShellDesktopTray_AddRef(ShellDesk); - - This->pidlDesktopDirectory = SHCloneSpecialIDList(This->hWnd, CSIDL_DESKTOPDIRECTORY, FALSE); - hRet = SHGetSpecialFolderLocation(This->hWnd, CSIDL_DESKTOP, &This->pidlDesktop); - if (!SUCCEEDED(hRet)) - goto Fail; - - hRet = SHGetDesktopFolder(&psfDesktopFolder); - if (!SUCCEEDED(hRet)) - goto Fail; - - ZeroMemory(&csfv, sizeof(csfv)); - csfv.cbSize = sizeof(csfv); - csfv.pshf = psfDesktopFolder; - csfv.psvOuter = NULL; - - hRet = SHCreateShellFolderViewEx(&csfv, &This->DesktopView); - IShellFolder_Release(psfDesktopFolder); - - if (!SUCCEEDED(hRet)) - { -Fail: - SHDESK_Release(IShellBrowser_from_impl(This)); - return NULL; - } - - return This; -} - -static HWND -SHDESK_FindDesktopListView (SHDESK *This) -{ - return FindWindowExW(This->hWndShellView, - NULL, - WC_LISTVIEW, - NULL); -} - -static BOOL -SHDESK_CreateDeskWnd(SHDESK *This) -{ - IShellBrowser *ShellBrowser; - FOLDERSETTINGS fs; - RECT rcClient; - HRESULT hRet; - - if (!GetClientRect(This->hWnd, - &rcClient)) - { - return FALSE; - } - - ShellBrowser = IShellBrowser_from_impl(This); - - fs.ViewMode = FVM_ICON; - fs.fFlags = FWF_DESKTOP | FWF_NOCLIENTEDGE | FWF_NOSCROLL | FWF_TRANSPARENT; - hRet = IShellView_CreateViewWindow(This->DesktopView, NULL, &fs, ShellBrowser, &rcClient, &This->hWndShellView); - if (!SUCCEEDED(hRet)) - return FALSE; - - SetShellWindowEx (This->hWnd, - SHDESK_FindDesktopListView (This)); - - return TRUE; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_GetWindow(IShellBrowser *iface, HWND *phwnd) -{ - SHDESK *This = impl_from_IShellBrowser(iface); - - if (This->hWnd != NULL) - { - *phwnd = This->hWnd; - return S_OK; - } - - *phwnd = NULL; - return E_UNEXPECTED; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_ContextSensitiveHelp(IShellBrowser *iface, BOOL fEnterMode) -{ - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_InsertMenusSB(IShellBrowser *iface, HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) -{ - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_SetMenuSB(IShellBrowser *iface, HMENU hmenuShared, HOLEMENU holemenuRes, HWND hwndActiveObject) -{ - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_RemoveMenusSB(IShellBrowser *iface, HMENU hmenuShared) -{ - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_SetStatusTextSB(IShellBrowser *iface, LPCOLESTR lpszStatusText) -{ - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_EnableModelessSB(IShellBrowser *iface, BOOL fEnable) -{ - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_TranslateAcceleratorSB(IShellBrowser *iface, LPMSG lpmsg, WORD wID) -{ - return S_FALSE; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_BrowseObject(IShellBrowser *iface, LPCITEMIDLIST pidl, UINT wFlags) -{ - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_GetViewStateStream(IShellBrowser *iface, DWORD grfMode, IStream **ppStrm) -{ - return E_NOTIMPL; -} - -static HWND -DesktopGetWindowControl(IN SHDESK *This, - IN UINT id) -{ - switch (id) - { - case FCW_TOOLBAR: - case FCW_STATUS: - case FCW_TREE: - case FCW_PROGRESS: - return NULL; - - default: - return NULL; - } - -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_GetControlWindow(IShellBrowser *iface, UINT id, HWND *lphwnd) -{ - SHDESK *This = impl_from_IShellBrowser(iface); - HWND hWnd; - - hWnd = DesktopGetWindowControl(This, - id); - if (hWnd != NULL) - { - *lphwnd = hWnd; - return S_OK; - } - - *lphwnd = NULL; - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_SendControlMsg(IShellBrowser *iface, UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *pret) -{ - SHDESK *This = impl_from_IShellBrowser(iface); - HWND hWnd; - - if (pret == NULL) - return E_POINTER; - - hWnd = DesktopGetWindowControl(This, - id); - if (hWnd != NULL) - { - *pret = SendMessageW(hWnd, - uMsg, - wParam, - lParam); - return S_OK; - } - - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_QueryActiveShellView(IShellBrowser *iface, IShellView **ppshv) -{ - IShellView *ActiveView; - SHDESK *This = impl_from_IShellBrowser(iface); - - ActiveView = This->DesktopView; - SHDESK_AddRef(iface); - *ppshv = ActiveView; - - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_OnViewWindowActive(IShellBrowser *iface, IShellView *ppshv) -{ - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_SetToolbarItems(IShellBrowser *iface, LPTBBUTTON lpButtons, UINT nButtons, UINT uFlags) -{ - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_ICommDlgBrowser_QueryInterface(ICommDlgBrowser *iface, REFIID riid, LPVOID *ppvObj) -{ - SHDESK *This = impl_from_ICommDlgBrowser(iface); - IShellBrowser *ShellBrowser = IShellBrowser_from_impl(This); - - return SHDESK_QueryInterface(ShellBrowser, riid, ppvObj); -} - -static ULONG STDMETHODCALLTYPE -SHDESK_ICommDlgBrowser_Release(ICommDlgBrowser *iface) -{ - SHDESK *This = impl_from_ICommDlgBrowser(iface); - IShellBrowser *ShellBrowser = IShellBrowser_from_impl(This); - - return SHDESK_Release(ShellBrowser); -} - -static ULONG STDMETHODCALLTYPE -SHDESK_ICommDlgBrowser_AddRef(ICommDlgBrowser *iface) -{ - SHDESK *This = impl_from_ICommDlgBrowser(iface); - IShellBrowser *ShellBrowser = IShellBrowser_from_impl(This); - - return SHDESK_AddRef(ShellBrowser); -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_ICommDlgBrowser_OnDefaultCommand(ICommDlgBrowser *iface, IShellView *ppshv) -{ - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_ICommDlgBrowser_OnStateChange(ICommDlgBrowser *iface, IShellView *ppshv, ULONG uChange) -{ - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_ICommDlgBrowser_IncludeObject(ICommDlgBrowser *iface, IShellView *ppshv, LPCITEMIDLIST pidl) -{ - return S_OK; -} - -static const ICommDlgBrowserVtbl SHDESK_ICommDlgBrowser_Vtbl = -{ - /* IUnknown */ - SHDESK_ICommDlgBrowser_QueryInterface, - SHDESK_ICommDlgBrowser_AddRef, - SHDESK_ICommDlgBrowser_Release, - /* ICommDlgBrowser */ - SHDESK_ICommDlgBrowser_OnDefaultCommand, - SHDESK_ICommDlgBrowser_OnStateChange, - SHDESK_ICommDlgBrowser_IncludeObject -}; - -static HRESULT STDMETHODCALLTYPE -SHDESK_IServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, LPVOID *ppvObj) -{ - SHDESK *This = impl_from_IServiceProvider(iface); - IShellBrowser *ShellBrowser = IShellBrowser_from_impl(This); - - return SHDESK_QueryInterface(ShellBrowser, riid, ppvObj); -} - -static ULONG STDMETHODCALLTYPE -SHDESK_IServiceProvider_Release(IServiceProvider *iface) -{ - SHDESK *This = impl_from_IServiceProvider(iface); - IShellBrowser *ShellBrowser = IShellBrowser_from_impl(This); - - return SHDESK_Release(ShellBrowser); -} - -static ULONG STDMETHODCALLTYPE -SHDESK_IServiceProvider_AddRef(IServiceProvider *iface) -{ - SHDESK *This = impl_from_IServiceProvider(iface); - IShellBrowser *ShellBrowser = IShellBrowser_from_impl(This); - - return SHDESK_AddRef(ShellBrowser); -} - -static HRESULT STDMETHODCALLTYPE -SHDESK_IServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, PVOID *ppv) -{ - /* FIXME - handle guidService */ - return SHDESK_IServiceProvider_QueryInterface(iface, riid, ppv); -} - -static const IServiceProviderVtbl SHDESK_IServiceProvider_Vtbl = -{ - /* IUnknown */ - SHDESK_IServiceProvider_QueryInterface, - SHDESK_IServiceProvider_AddRef, - SHDESK_IServiceProvider_Release, - /* IServiceProvider */ - SHDESK_IServiceProvider_QueryService -}; - -static BOOL -SHDESK_MessageLoop(SHDESK *This) -{ - MSG Msg; - BOOL bRet; - - while ((bRet = GetMessageW(&Msg, NULL, 0, 0)) != 0) - { - if (bRet != -1) - { - TranslateMessage(&Msg); - DispatchMessageW(&Msg); - } - } - - return TRUE; -} - -static LRESULT CALLBACK -ProgmanWindowProc(IN HWND hwnd, - IN UINT uMsg, - IN WPARAM wParam, - IN LPARAM lParam) -{ - SHDESK *This = NULL; - LRESULT Ret = FALSE; - - if (uMsg != WM_NCCREATE) - { - This = (SHDESK*)GetWindowLongPtrW(hwnd, - 0); - if (This == NULL) - goto DefMsgHandler; - } - - if (This != NULL || uMsg == WM_NCCREATE) - { - switch (uMsg) - { - case WM_ERASEBKGND: - return (LRESULT)PaintDesktop((HDC)wParam); - - case WM_GETISHELLBROWSER: - Ret = (LRESULT)IShellBrowser_from_impl(This); - break; - - case WM_SIZE: - if (wParam == SIZE_MINIMIZED) - { - /* Hey, we're the desktop!!! */ - ShowWindow(hwnd, - SW_RESTORE); - } - else - { - RECT rcDesktop; - - rcDesktop.left = GetSystemMetrics(SM_XVIRTUALSCREEN); - rcDesktop.top = GetSystemMetrics(SM_YVIRTUALSCREEN); - rcDesktop.right = GetSystemMetrics(SM_CXVIRTUALSCREEN); - rcDesktop.bottom = GetSystemMetrics(SM_CYVIRTUALSCREEN); - - /* FIXME: Update work area */ - } - break; - - case WM_SYSCOLORCHANGE: - { - InvalidateRect(This->hWnd, - NULL, - TRUE); - - if (This->hWndShellView != NULL) - { - /* Forward the message */ - SendMessageW(This->hWndShellView, - WM_SYSCOLORCHANGE, - wParam, - lParam); - } - break; - } - - case WM_CREATE: - { - IShellDesktopTray_RegisterDesktopWindow(This->ShellDesk, - This->hWnd); - - if (!SHDESK_CreateDeskWnd(This)) - WARN("Could not create the desktop view control!\n"); - break; - } - - case WM_NCCREATE: - { - LPCREATESTRUCT CreateStruct = (LPCREATESTRUCT)lParam; - This = SHDESK_Create(hwnd, CreateStruct); - if (This == NULL) - { - WARN("Failed to create desktop structure\n"); - break; - } - - SetWindowLongPtrW(hwnd, - 0, - (LONG_PTR)This); - Ret = TRUE; - break; - } - - case WM_NCDESTROY: - { - SHDESK_Free(This); - break; - } - - default: -DefMsgHandler: - Ret = DefWindowProcW(hwnd, uMsg, wParam, lParam); - break; - } - } - - return Ret; -} - -static BOOL -RegisterProgmanWindowClass(VOID) -{ - WNDCLASSW wcProgman; - - wcProgman.style = CS_DBLCLKS; - wcProgman.lpfnWndProc = ProgmanWindowProc; - wcProgman.cbClsExtra = 0; - wcProgman.cbWndExtra = sizeof(PSHDESK); - wcProgman.hInstance = shell32_hInstance; - wcProgman.hIcon = NULL; - wcProgman.hCursor = LoadCursorW(NULL, - IDC_ARROW); - wcProgman.hbrBackground = (HBRUSH)(COLOR_BACKGROUND + 1); - wcProgman.lpszMenuName = NULL; - wcProgman.lpszClassName = szProgmanClassName; - - return RegisterClassW(&wcProgman) != 0; -} - - -/************************************************************************* - * SHCreateDesktop [SHELL32.200] - * - */ -HANDLE WINAPI SHCreateDesktop(IShellDesktopTray *ShellDesk) -{ - HWND hWndDesk; - RECT rcDesk; - - if (ShellDesk == NULL) - { - SetLastError(ERROR_INVALID_PARAMETER); - return NULL; - } - - if (RegisterProgmanWindowClass() == 0) - { - WARN("Failed to register the Progman window class!\n"); - return NULL; - } - - rcDesk.left = GetSystemMetrics(SM_XVIRTUALSCREEN); - rcDesk.top = GetSystemMetrics(SM_YVIRTUALSCREEN); - rcDesk.right = rcDesk.left + GetSystemMetrics(SM_CXVIRTUALSCREEN); - rcDesk.bottom = rcDesk.top + GetSystemMetrics(SM_CYVIRTUALSCREEN); - - if (IsRectEmpty(&rcDesk)) - { - rcDesk.left = rcDesk.top = 0; - rcDesk.right = GetSystemMetrics(SM_CXSCREEN); - rcDesk.bottom = GetSystemMetrics(SM_CYSCREEN); - } - - hWndDesk = CreateWindowExW(0, szProgmanClassName, szProgmanWindowName, - WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, - rcDesk.left, rcDesk.top, rcDesk.right, rcDesk.bottom, - NULL, NULL, shell32_hInstance, (LPVOID)ShellDesk); - if (hWndDesk != NULL) - return (HANDLE)GetWindowLongPtrW(hWndDesk, 0); - - return NULL; -} - -/************************************************************************* - * SHCreateDesktop [SHELL32.201] - * - */ -BOOL WINAPI SHDesktopMessageLoop(HANDLE hDesktop) -{ - PSHDESK Desk = (PSHDESK)hDesktop; - - if (Desk == NULL || Desk->Tag != SHDESK_TAG) - { - SetLastError(ERROR_INVALID_PARAMETER); - return FALSE; - } - - return SHDESK_MessageLoop(Desk); -} - -static const IShellBrowserVtbl SHDESK_Vtbl = -{ - /* IUnknown */ - SHDESK_QueryInterface, - SHDESK_AddRef, - SHDESK_Release, - /* IOleWindow */ - SHDESK_GetWindow, - SHDESK_ContextSensitiveHelp, - /* IShellBrowser */ - SHDESK_InsertMenusSB, - SHDESK_SetMenuSB, - SHDESK_RemoveMenusSB, - SHDESK_SetStatusTextSB, - SHDESK_EnableModelessSB, - SHDESK_TranslateAcceleratorSB, - SHDESK_BrowseObject, - SHDESK_GetViewStateStream, - SHDESK_GetControlWindow, - SHDESK_SendControlMsg, - SHDESK_QueryActiveShellView, - SHDESK_OnViewWindowActive, - SHDESK_SetToolbarItems -}; diff --git a/reactos/dll/win32/shell32/dialogs.c b/reactos/dll/win32/shell32/dialogs.c deleted file mode 100644 index 4ea9418bba6..00000000000 --- a/reactos/dll/win32/shell32/dialogs.c +++ /dev/null @@ -1,712 +0,0 @@ -/* - * common shell dialogs - * - * Copyright 2000 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - - -typedef struct - { - HWND hwndOwner ; - HICON hIcon ; - LPCWSTR lpstrDirectory ; - LPCWSTR lpstrTitle ; - LPCWSTR lpstrDescription ; - UINT uFlags ; - } RUNFILEDLGPARAMS ; - -typedef BOOL (WINAPI * LPFNOFN) (OPENFILENAMEW *) ; - -WINE_DEFAULT_DEBUG_CHANNEL(shell); -static INT_PTR CALLBACK RunDlgProc (HWND, UINT, WPARAM, LPARAM) ; -static void FillList (HWND, char *, BOOL) ; - - -/************************************************************************* - * PickIconDlg [SHELL32.62] - * - */ - -typedef struct -{ - HMODULE hLibrary; - HWND hDlgCtrl; - WCHAR szName[MAX_PATH]; - INT Index; -}PICK_ICON_CONTEXT, *PPICK_ICON_CONTEXT; - -BOOL CALLBACK EnumPickIconResourceProc(HMODULE hModule, - LPCWSTR lpszType, - LPWSTR lpszName, - LONG_PTR lParam -) -{ - WCHAR szName[100]; - int index; - HICON hIcon; - PPICK_ICON_CONTEXT pIconContext = (PPICK_ICON_CONTEXT)lParam; - - if (IS_INTRESOURCE(lpszName)) - swprintf(szName, L"%u", lpszName); - else - wcscpy(szName, (WCHAR*)lpszName); - - - hIcon = LoadIconW(pIconContext->hLibrary, (LPCWSTR)lpszName); - if (hIcon == NULL) - return TRUE; - - index = SendMessageW(pIconContext->hDlgCtrl, LB_ADDSTRING, 0, (LPARAM)szName); - if (index != LB_ERR) - SendMessageW(pIconContext->hDlgCtrl, LB_SETITEMDATA, index, (LPARAM)hIcon); - - return TRUE; -} - -void -DestroyIconList(HWND hDlgCtrl) -{ - int count; - int index; - - count = SendMessage(hDlgCtrl, LB_GETCOUNT, 0, 0); - if (count == LB_ERR) - return; - - for(index = 0; index < count; index++) - { - HICON hIcon = (HICON)SendMessageW(hDlgCtrl, LB_GETITEMDATA, index, 0); - DestroyIcon(hIcon); - } -} - -INT_PTR CALLBACK PickIconProc(HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam -) -{ - LPMEASUREITEMSTRUCT lpmis; - LPDRAWITEMSTRUCT lpdis; - HICON hIcon; - INT index, count; - WCHAR szText[MAX_PATH], szTitle[100], szFilter[100]; - OPENFILENAMEW ofn = {0}; - - PPICK_ICON_CONTEXT pIconContext = (PPICK_ICON_CONTEXT)GetWindowLongPtr(hwndDlg, DWLP_USER); - - switch(uMsg) - { - case WM_INITDIALOG: - pIconContext = (PPICK_ICON_CONTEXT)lParam; - SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG)pIconContext); - pIconContext->hDlgCtrl = GetDlgItem(hwndDlg, IDC_PICKICON_LIST); - EnumResourceNamesW(pIconContext->hLibrary, RT_ICON, EnumPickIconResourceProc, (LPARAM)pIconContext); - if (PathUnExpandEnvStringsW(pIconContext->szName, szText, MAX_PATH)) - SendDlgItemMessageW(hwndDlg, IDC_EDIT_PATH, WM_SETTEXT, 0, (LPARAM)szText); - else - SendDlgItemMessageW(hwndDlg, IDC_EDIT_PATH, WM_SETTEXT, 0, (LPARAM)pIconContext->szName); - - count = SendMessage(pIconContext->hDlgCtrl, LB_GETCOUNT, 0, 0); - if (count != LB_ERR) - { - if (count > pIconContext->Index) - SendMessageW(pIconContext->hDlgCtrl, LB_SETCURSEL, pIconContext->Index, 0); - else - SendMessageW(pIconContext->hDlgCtrl, LB_SETCURSEL, 0, 0); - } - return TRUE; - case WM_COMMAND: - switch(LOWORD(wParam)) - { - case IDOK: - index = SendMessageW(pIconContext->hDlgCtrl, LB_GETCURSEL, 0, 0); - pIconContext->Index = index; - SendDlgItemMessageW(hwndDlg, IDC_EDIT_PATH, WM_GETTEXT, MAX_PATH, (LPARAM)pIconContext->szName); - DestroyIconList(pIconContext->hDlgCtrl); - EndDialog(hwndDlg, 1); - break; - case IDCANCEL: - DestroyIconList(pIconContext->hDlgCtrl); - EndDialog(hwndDlg, 0); - break; - case IDC_PICKICON_LIST: - if (HIWORD(wParam) == LBN_SELCHANGE) - InvalidateRect((HWND)lParam, NULL, TRUE); // FIXME USE UPDATE RECT - break; - case IDC_BUTTON_PATH: - szText[0] = 0; - szTitle[0] = 0; - szFilter[0] = 0; - ofn.lStructSize = sizeof(ofn); - ofn.hwndOwner = hwndDlg; - ofn.lpstrFile = szText; - ofn.nMaxFile = MAX_PATH; - LoadStringW(shell32_hInstance, IDS_PICK_ICON_TITLE, szTitle, sizeof(szTitle) / sizeof(WCHAR)); - ofn.lpstrTitle = szTitle; - LoadStringW(shell32_hInstance, IDS_PICK_ICON_FILTER, szFilter, sizeof(szFilter) / sizeof(WCHAR)); - ofn.lpstrFilter = szFilter; - if (GetOpenFileNameW(&ofn)) - { - HMODULE hLibrary; - - if (!wcsicmp(pIconContext->szName, szText)) - break; - - DestroyIconList(pIconContext->hDlgCtrl); - - hLibrary = LoadLibraryExW(szText, NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE); - if (hLibrary == NULL) - break; - FreeLibrary(pIconContext->hLibrary); - pIconContext->hLibrary = hLibrary; - wcscpy(pIconContext->szName, szText); - EnumResourceNamesW(pIconContext->hLibrary, RT_ICON, EnumPickIconResourceProc, (LPARAM)pIconContext); - if (PathUnExpandEnvStringsW(pIconContext->szName, szText, MAX_PATH)) - SendDlgItemMessageW(hwndDlg, IDC_EDIT_PATH, WM_SETTEXT, 0, (LPARAM)szText); - else - SendDlgItemMessageW(hwndDlg, IDC_EDIT_PATH, WM_SETTEXT, 0, (LPARAM)pIconContext->szName); - - SendMessageW(pIconContext->hDlgCtrl, LB_SETCURSEL, 0, 0); - } - break; - } - break; - case WM_MEASUREITEM: - lpmis = (LPMEASUREITEMSTRUCT) lParam; - lpmis->itemHeight = 32; - lpmis->itemWidth = 64; - return TRUE; - case WM_DRAWITEM: - lpdis = (LPDRAWITEMSTRUCT) lParam; - if (lpdis->itemID == -1) - { - break; - } - switch (lpdis->itemAction) - { - case ODA_SELECT: - case ODA_DRAWENTIRE: - index = SendMessageW(pIconContext->hDlgCtrl, LB_GETCURSEL, 0, 0); - hIcon =(HICON)SendMessage(lpdis->hwndItem, LB_GETITEMDATA, lpdis->itemID, (LPARAM) 0); - - if (lpdis->itemID == index) - { - HBRUSH hBrush; - hBrush = CreateSolidBrush(RGB(0, 0, 255)); - FillRect(lpdis->hDC, &lpdis->rcItem, hBrush); - DeleteObject(hBrush); - } - else - { - HBRUSH hBrush; - hBrush = CreateSolidBrush(RGB(255, 255, 255)); - FillRect(lpdis->hDC, &lpdis->rcItem, hBrush); - DeleteObject(hBrush); - } - DrawIconEx(lpdis->hDC, lpdis->rcItem.left,lpdis->rcItem.top, hIcon, - 0, - 0, - 0, - NULL, - DI_NORMAL); - break; - } - break; - } - - return FALSE; -} - -BOOL WINAPI PickIconDlg( - HWND hwndOwner, - LPWSTR lpstrFile, - UINT nMaxFile, - INT* lpdwIconIndex) -{ - HMODULE hLibrary; - int res; - PICK_ICON_CONTEXT IconContext; - - hLibrary = LoadLibraryExW(lpstrFile, NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE); - IconContext.hLibrary = hLibrary; - IconContext.Index = *lpdwIconIndex; - wcscpy(IconContext.szName, lpstrFile); - - res = DialogBoxParamW(shell32_hInstance, MAKEINTRESOURCEW(IDD_PICK_ICON_DIALOG), hwndOwner, PickIconProc, (LPARAM)&IconContext); - if (res) - { - wcscpy(lpstrFile, IconContext.szName); - *lpdwIconIndex = IconContext.Index; - } - - FreeLibrary(hLibrary); - return res; -} - -/************************************************************************* - * RunFileDlg [internal] - * - * The Unicode function that is available as ordinal 61 on Windows NT/2000/XP/... - */ -void WINAPI RunFileDlg( - HWND hwndOwner, - HICON hIcon, - LPCWSTR lpstrDirectory, - LPCWSTR lpstrTitle, - LPCWSTR lpstrDescription, - UINT uFlags) -{ - static const WCHAR resnameW[] = {'S','H','E','L','L','_','R','U','N','_','D','L','G',0}; - RUNFILEDLGPARAMS rfdp; - HRSRC hRes; - LPVOID template; - TRACE("\n"); - - rfdp.hwndOwner = hwndOwner; - rfdp.hIcon = hIcon; - rfdp.lpstrDirectory = lpstrDirectory; - rfdp.lpstrTitle = lpstrTitle; - rfdp.lpstrDescription = lpstrDescription; - rfdp.uFlags = uFlags; - - if (!(hRes = FindResourceW(shell32_hInstance, resnameW, (LPWSTR)RT_DIALOG)) || - !(template = LoadResource(shell32_hInstance, hRes))) - { - ERR("Couldn't load SHELL_RUN_DLG resource\n"); - ShellMessageBoxW(shell32_hInstance, hwndOwner, MAKEINTRESOURCEW(IDS_RUNDLG_ERROR), NULL, MB_OK | MB_ICONERROR); - return; - } - - DialogBoxIndirectParamW(shell32_hInstance, - template, hwndOwner, RunDlgProc, (LPARAM)&rfdp); - -} - -/* find the directory that contains the file being run */ -static LPWSTR RunDlg_GetParentDir(LPCWSTR cmdline) -{ - const WCHAR *src; - WCHAR *dest, *result, *result_end=NULL; - static const WCHAR dotexeW[] = {'.','e','x','e',0}; - - result = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR)*(strlenW(cmdline)+5)); - - src = cmdline; - dest = result; - - if (*src == '"') - { - src++; - while (*src && *src != '"') - { - if (*src == '\\') - result_end = dest; - *dest++ = *src++; - } - } - else { - while (*src) - { - if (isspaceW(*src)) - { - *dest = 0; - if (INVALID_FILE_ATTRIBUTES != GetFileAttributesW(result)) - break; - strcatW(dest, dotexeW); - if (INVALID_FILE_ATTRIBUTES != GetFileAttributesW(result)) - break; - } - else if (*src == '\\') - result_end = dest; - *dest++ = *src++; - } - } - - if (result_end) - { - *result_end = 0; - return result; - } - else - { - HeapFree(GetProcessHeap(), 0, result); - return NULL; - } -} - -/* Dialog procedure for RunFileDlg */ -static INT_PTR CALLBACK RunDlgProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) - { - RUNFILEDLGPARAMS *prfdp = (RUNFILEDLGPARAMS *)GetWindowLongPtrW(hwnd, DWLP_USER); - - switch (message) - { - case WM_INITDIALOG : - prfdp = (RUNFILEDLGPARAMS *)lParam ; - SetWindowLongPtrW(hwnd, DWLP_USER, (LONG_PTR)prfdp); - - if (prfdp->lpstrTitle) - SetWindowTextW(hwnd, prfdp->lpstrTitle); - if (prfdp->lpstrDescription) - SetWindowTextW(GetDlgItem(hwnd, IDC_RUNDLG_DESCRIPTION), prfdp->lpstrDescription); - if (prfdp->uFlags & RFF_NOBROWSE) - { - HWND browse = GetDlgItem(hwnd, IDC_RUNDLG_BROWSE); - ShowWindow(browse, SW_HIDE); - EnableWindow(browse, FALSE); - } - if (prfdp->uFlags & RFF_NOLABEL) - ShowWindow(GetDlgItem(hwnd, IDC_RUNDLG_LABEL), SW_HIDE); - if (prfdp->uFlags & RFF_CALCDIRECTORY) - FIXME("RFF_CALCDIRECTORY not supported\n"); - - if (prfdp->hIcon == NULL) - prfdp->hIcon = LoadIconW(NULL, (LPCWSTR)IDI_WINLOGO); - SendMessageW(hwnd, WM_SETICON, ICON_BIG, (LPARAM)prfdp->hIcon); - SendMessageW(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)prfdp->hIcon); - SendMessageW(GetDlgItem(hwnd, IDC_RUNDLG_ICON), STM_SETICON, (WPARAM)prfdp->hIcon, 0); - - FillList (GetDlgItem (hwnd, IDC_RUNDLG_EDITPATH), NULL, (prfdp->uFlags & RFF_NODEFAULT) == 0) ; - SetFocus (GetDlgItem (hwnd, IDC_RUNDLG_EDITPATH)) ; - return TRUE ; - - case WM_COMMAND : - switch (LOWORD (wParam)) - { - case IDOK : - { - int ic ; - HWND htxt = GetDlgItem (hwnd, IDC_RUNDLG_EDITPATH); - if ((ic = GetWindowTextLengthW (htxt))) - { - WCHAR *psz, *parent=NULL ; - SHELLEXECUTEINFOW sei ; - - ZeroMemory (&sei, sizeof(sei)) ; - sei.cbSize = sizeof(sei) ; - psz = HeapAlloc( GetProcessHeap(), 0, (ic + 1)*sizeof(WCHAR) ); - GetWindowTextW (htxt, psz, ic + 1) ; - - /* according to http://www.codeproject.com/KB/shell/runfiledlg.aspx we should send a - * WM_NOTIFY before execution */ - - sei.hwnd = hwnd; - sei.nShow = SW_SHOWNORMAL; - sei.lpFile = psz; - - if (prfdp->lpstrDirectory) - sei.lpDirectory = prfdp->lpstrDirectory; - else - sei.lpDirectory = parent = RunDlg_GetParentDir(sei.lpFile); - - if (!ShellExecuteExW( &sei )) - { - HeapFree(GetProcessHeap(), 0, psz); - HeapFree(GetProcessHeap(), 0, parent); - SendMessageA (htxt, CB_SETEDITSEL, 0, MAKELPARAM (0, -1)) ; - return TRUE ; - } - - /* FillList is still ANSI */ - GetWindowTextA (htxt, (LPSTR)psz, ic + 1) ; - FillList (htxt, (LPSTR)psz, FALSE) ; - - HeapFree(GetProcessHeap(), 0, psz); - HeapFree(GetProcessHeap(), 0, parent); - EndDialog (hwnd, 0); - } - } - - case IDCANCEL : - EndDialog (hwnd, 0) ; - return TRUE ; - - case IDC_RUNDLG_BROWSE : - { - HMODULE hComdlg = NULL ; - LPFNOFN ofnProc = NULL ; - static const WCHAR comdlg32W[] = {'c','o','m','d','l','g','3','2',0}; - WCHAR szFName[1024] = {0}; - WCHAR filter[MAX_PATH], szCaption[MAX_PATH]; - OPENFILENAMEW ofn; - - LoadStringW(shell32_hInstance, IDS_RUNDLG_BROWSE_FILTER, filter, MAX_PATH); - LoadStringW(shell32_hInstance, IDS_RUNDLG_BROWSE_CAPTION, szCaption, MAX_PATH); - - ZeroMemory(&ofn, sizeof(ofn)); - ofn.lStructSize = sizeof(OPENFILENAMEW); - ofn.hwndOwner = hwnd; - ofn.lpstrFilter = filter; - ofn.lpstrFile = szFName; - ofn.nMaxFile = 1023; - ofn.lpstrTitle = szCaption; - ofn.Flags = OFN_ENABLESIZING | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_PATHMUSTEXIST; - ofn.lpstrInitialDir = prfdp->lpstrDirectory; - - if (NULL == (hComdlg = LoadLibraryExW (comdlg32W, NULL, 0)) || - NULL == (ofnProc = (LPFNOFN)GetProcAddress (hComdlg, "GetOpenFileNameW"))) - { - ERR("Couldn't get GetOpenFileName function entry (lib=%p, proc=%p)\n", hComdlg, ofnProc); - ShellMessageBoxW(shell32_hInstance, hwnd, MAKEINTRESOURCEW(IDS_RUNDLG_BROWSE_ERROR), NULL, MB_OK | MB_ICONERROR); - return TRUE ; - } - - if (ofnProc(&ofn)) - { - SetFocus (GetDlgItem (hwnd, IDOK)) ; - SetWindowTextW (GetDlgItem (hwnd, IDC_RUNDLG_EDITPATH), szFName) ; - SendMessageW (GetDlgItem (hwnd, IDC_RUNDLG_EDITPATH), CB_SETEDITSEL, 0, MAKELPARAM (0, -1)) ; - SetFocus (GetDlgItem (hwnd, IDOK)) ; - } - - FreeLibrary (hComdlg) ; - - return TRUE ; - } - } - return TRUE ; - } - return FALSE ; - } - -/* This grabs the MRU list from the registry and fills the combo for the "Run" dialog above */ -/* fShowDefault ignored if pszLatest != NULL */ -static void FillList (HWND hCb, char *pszLatest, BOOL fShowDefault) - { - HKEY hkey ; -/* char szDbgMsg[256] = "" ; */ - char *pszList = NULL, *pszCmd = NULL, cMatch = 0, cMax = 0x60, szIndex[2] = "-" ; - DWORD icList = 0, icCmd = 0 ; - UINT Nix ; - - SendMessageA (hCb, CB_RESETCONTENT, 0, 0) ; - - if (ERROR_SUCCESS != RegCreateKeyExA ( - HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RunMRU", - 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, NULL)) - MessageBoxA (hCb, "Unable to open registry key !", "Nix", MB_OK) ; - - RegQueryValueExA (hkey, "MRUList", NULL, NULL, NULL, &icList) ; - - if (icList > 0) - { - pszList = HeapAlloc( GetProcessHeap(), 0, icList) ; - if (ERROR_SUCCESS != RegQueryValueExA (hkey, "MRUList", NULL, NULL, (LPBYTE)pszList, &icList)) - MessageBoxA (hCb, "Unable to grab MRUList !", "Nix", MB_OK) ; - } - else - { - icList = 1 ; - pszList = HeapAlloc( GetProcessHeap(), 0, icList) ; - pszList[0] = 0 ; - } - - for (Nix = 0 ; Nix < icList - 1 ; Nix++) - { - if (pszList[Nix] > cMax) - cMax = pszList[Nix] ; - - szIndex[0] = pszList[Nix] ; - - if (ERROR_SUCCESS != RegQueryValueExA (hkey, szIndex, NULL, NULL, NULL, &icCmd)) - MessageBoxA (hCb, "Unable to grab size of index", "Nix", MB_OK) ; - if( pszCmd ) - pszCmd = HeapReAlloc(GetProcessHeap(), 0, pszCmd, icCmd) ; - else - pszCmd = HeapAlloc(GetProcessHeap(), 0, icCmd) ; - if (ERROR_SUCCESS != RegQueryValueExA (hkey, szIndex, NULL, NULL, (LPBYTE)pszCmd, &icCmd)) - MessageBoxA (hCb, "Unable to grab index", "Nix", MB_OK) ; - - if (NULL != pszLatest) - { - if (!lstrcmpiA(pszCmd, pszLatest)) - { - /* - sprintf (szDbgMsg, "Found existing (%d).\n", Nix) ; - MessageBoxA (hCb, szDbgMsg, "Nix", MB_OK) ; - */ - SendMessageA (hCb, CB_INSERTSTRING, 0, (LPARAM)pszCmd) ; - SetWindowTextA (hCb, pszCmd) ; - SendMessageA (hCb, CB_SETEDITSEL, 0, MAKELPARAM (0, -1)) ; - - cMatch = pszList[Nix] ; - memmove (&pszList[1], pszList, Nix) ; - pszList[0] = cMatch ; - continue ; - } - } - - if (26 != icList - 1 || icList - 2 != Nix || cMatch || NULL == pszLatest) - { - /* - sprintf (szDbgMsg, "Happily appending (%d).\n", Nix) ; - MessageBoxA (hCb, szDbgMsg, "Nix", MB_OK) ; - */ - SendMessageA (hCb, CB_ADDSTRING, 0, (LPARAM)pszCmd) ; - if (!Nix && fShowDefault) - { - SetWindowTextA (hCb, pszCmd) ; - SendMessageA (hCb, CB_SETEDITSEL, 0, MAKELPARAM (0, -1)) ; - } - - } - else - { - /* - sprintf (szDbgMsg, "Doing loop thing.\n") ; - MessageBoxA (hCb, szDbgMsg, "Nix", MB_OK) ; - */ - SendMessageA (hCb, CB_INSERTSTRING, 0, (LPARAM)pszLatest) ; - SetWindowTextA (hCb, pszLatest) ; - SendMessageA (hCb, CB_SETEDITSEL, 0, MAKELPARAM (0, -1)) ; - - cMatch = pszList[Nix] ; - memmove (&pszList[1], pszList, Nix) ; - pszList[0] = cMatch ; - szIndex[0] = cMatch ; - RegSetValueExA (hkey, szIndex, 0, REG_SZ, (LPBYTE)pszLatest, strlen (pszLatest) + 1) ; - } - } - - if (!cMatch && NULL != pszLatest) - { - /* - sprintf (szDbgMsg, "Simply inserting (increasing list).\n") ; - MessageBoxA (hCb, szDbgMsg, "Nix", MB_OK) ; - */ - SendMessageA (hCb, CB_INSERTSTRING, 0, (LPARAM)pszLatest) ; - SetWindowTextA (hCb, pszLatest) ; - SendMessageA (hCb, CB_SETEDITSEL, 0, MAKELPARAM (0, -1)) ; - - cMatch = ++cMax ; - if( pszList ) - pszList = HeapReAlloc(GetProcessHeap(), 0, pszList, ++icList) ; - else - pszList = HeapAlloc(GetProcessHeap(), 0, ++icList) ; - memmove (&pszList[1], pszList, icList - 1) ; - pszList[0] = cMatch ; - szIndex[0] = cMatch ; - RegSetValueExA (hkey, szIndex, 0, REG_SZ, (LPBYTE)pszLatest, strlen (pszLatest) + 1) ; - } - - RegSetValueExA (hkey, "MRUList", 0, REG_SZ, (LPBYTE)pszList, strlen (pszList) + 1) ; - - HeapFree( GetProcessHeap(), 0, pszCmd) ; - HeapFree( GetProcessHeap(), 0, pszList) ; - } - - -/************************************************************************* - * ConfirmDialog [internal] - * - * Put up a confirm box, return TRUE if the user confirmed - */ -static BOOL ConfirmDialog(HWND hWndOwner, UINT PromptId, UINT TitleId) -{ - WCHAR Prompt[256]; - WCHAR Title[256]; - - LoadStringW(shell32_hInstance, PromptId, Prompt, sizeof(Prompt) / sizeof(WCHAR)); - LoadStringW(shell32_hInstance, TitleId, Title, sizeof(Title) / sizeof(WCHAR)); - return MessageBoxW(hWndOwner, Prompt, Title, MB_YESNO|MB_ICONQUESTION) == IDYES; -} - - -/************************************************************************* - * RestartDialogEx [SHELL32.730] - */ - -int WINAPI RestartDialogEx(HWND hWndOwner, LPCWSTR lpwstrReason, DWORD uFlags, DWORD uReason) -{ - TRACE("(%p)\n", hWndOwner); - - /* FIXME: use lpwstrReason */ - if (ConfirmDialog(hWndOwner, IDS_RESTART_PROMPT, IDS_RESTART_TITLE)) - { - HANDLE hToken; - TOKEN_PRIVILEGES npr; - - /* enable the shutdown privilege for the current process */ - if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) - { - LookupPrivilegeValueA(0, "SeShutdownPrivilege", &npr.Privileges[0].Luid); - npr.PrivilegeCount = 1; - npr.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; - AdjustTokenPrivileges(hToken, FALSE, &npr, 0, 0, 0); - CloseHandle(hToken); - } - ExitWindowsEx(EWX_REBOOT, uReason); - } - - return 0; -} - - -/************************************************************************* - * LogoffWindowsDialog [SHELL32.54] - */ - -int WINAPI LogoffWindowsDialog(HWND hWndOwner) -{ - if (ConfirmDialog(hWndOwner, IDS_LOGOFF_PROMPT, IDS_LOGOFF_TITLE)) - { - ExitWindowsEx(EWX_LOGOFF, 0); - } - return 0; -} - - -/************************************************************************* - * RestartDialog [SHELL32.59] - */ - -int WINAPI RestartDialog(HWND hWndOwner, LPCWSTR lpstrReason, DWORD uFlags) -{ - return RestartDialogEx(hWndOwner, lpstrReason, uFlags, 0); -} - - -/************************************************************************* - * ExitWindowsDialog [SHELL32.60] - * - * NOTES - * exported by ordinal - */ -void WINAPI ExitWindowsDialog (HWND hWndOwner) -{ - TRACE("(%p)\n", hWndOwner); - - if (ConfirmDialog(hWndOwner, IDS_SHUTDOWN_PROMPT, IDS_SHUTDOWN_TITLE)) - { - HANDLE hToken; - TOKEN_PRIVILEGES npr; - - /* enable shutdown privilege for current process */ - if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) - { - LookupPrivilegeValueA(0, "SeShutdownPrivilege", &npr.Privileges[0].Luid); - npr.PrivilegeCount = 1; - npr.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; - AdjustTokenPrivileges(hToken, FALSE, &npr, 0, 0, 0); - CloseHandle(hToken); - } - ExitWindowsEx(EWX_SHUTDOWN, 0); - } -} diff --git a/reactos/dll/win32/shell32/dragdrophelper.c b/reactos/dll/win32/shell32/dragdrophelper.c deleted file mode 100644 index ebd39a3be37..00000000000 --- a/reactos/dll/win32/shell32/dragdrophelper.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - * file system folder - * - * Copyright 1997 Marcus Meissner - * Copyright 1998, 1999, 2002 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL (shell); - -/*********************************************************************** -* IDropTargetHelper implementation -*/ - -typedef struct { - const IDropTargetHelperVtbl *lpVtbl; - LONG ref; -} IDropTargetHelperImpl; - -static const IDropTargetHelperVtbl vt_IDropTargetHelper; - -#define _IUnknown_(This) (IUnknown*)&(This->lpVtbl) -#define _IDropTargetHelper_(This) (IDropTargetHelper*)&(This->lpVtbl) - -/************************************************************************** -* IDropTargetHelper_Constructor -*/ -HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) -{ - IDropTargetHelperImpl *dth; - - TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid)); - - if (!ppv) - return E_POINTER; - if (pUnkOuter) - return CLASS_E_NOAGGREGATION; - - dth = (IDropTargetHelperImpl *) LocalAlloc (LMEM_ZEROINIT, sizeof (IDropTargetHelperImpl)); - if (!dth) return E_OUTOFMEMORY; - - dth->ref = 0; - dth->lpVtbl = &vt_IDropTargetHelper; - - if (!SUCCEEDED (IUnknown_QueryInterface (_IUnknown_ (dth), riid, ppv))) { - IUnknown_Release (_IUnknown_ (dth)); - return E_NOINTERFACE; - } - - TRACE ("--(%p)\n", dth); - return S_OK; -} - -/************************************************************************** - * IDropTargetHelper_fnQueryInterface - */ -static HRESULT WINAPI IDropTargetHelper_fnQueryInterface (IDropTargetHelper * iface, REFIID riid, LPVOID * ppvObj) -{ - IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface; - - TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); - - *ppvObj = NULL; - - if (IsEqualIID (riid, &IID_IUnknown) || IsEqualIID (riid, &IID_IDropTargetHelper)) { - *ppvObj = This; - } - - if (*ppvObj) { - IUnknown_AddRef ((IUnknown *) (*ppvObj)); - TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj); - return S_OK; - } - FIXME ("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI IDropTargetHelper_fnAddRef (IDropTargetHelper * iface) -{ - IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI IDropTargetHelper_fnRelease (IDropTargetHelper * iface) -{ - IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount + 1); - - if (!refCount) { - TRACE("-- destroying (%p)\n", This); - LocalFree ((HLOCAL) This); - return 0; - } - return refCount; -} - -static HRESULT WINAPI IDropTargetHelper_fnDragEnter ( - IDropTargetHelper * iface, - HWND hwndTarget, - IDataObject* pDataObject, - POINT* ppt, - DWORD dwEffect) -{ - IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface; - FIXME ("(%p)->(%p %p %p 0x%08x)\n", This,hwndTarget, pDataObject, ppt, dwEffect); - return E_NOTIMPL; -} - -static HRESULT WINAPI IDropTargetHelper_fnDragLeave (IDropTargetHelper * iface) -{ - IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface; - FIXME ("(%p)->()\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI IDropTargetHelper_fnDragOver (IDropTargetHelper * iface, POINT* ppt, DWORD dwEffect) -{ - IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface; - FIXME ("(%p)->(%p 0x%08x)\n", This, ppt, dwEffect); - return E_NOTIMPL; -} - -static HRESULT WINAPI IDropTargetHelper_fnDrop (IDropTargetHelper * iface, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) -{ - IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface; - FIXME ("(%p)->(%p %p 0x%08x)\n", This, pDataObject, ppt, dwEffect); - return E_NOTIMPL; -} - -static HRESULT WINAPI IDropTargetHelper_fnShow (IDropTargetHelper * iface, BOOL fShow) -{ - IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface; - FIXME ("(%p)->(%u)\n", This, fShow); - return E_NOTIMPL; -} - -static const IDropTargetHelperVtbl vt_IDropTargetHelper = -{ - IDropTargetHelper_fnQueryInterface, - IDropTargetHelper_fnAddRef, - IDropTargetHelper_fnRelease, - IDropTargetHelper_fnDragEnter, - IDropTargetHelper_fnDragLeave, - IDropTargetHelper_fnDragOver, - IDropTargetHelper_fnDrop, - IDropTargetHelper_fnShow -}; diff --git a/reactos/dll/win32/shell32/drive.c b/reactos/dll/win32/shell32/drive.c deleted file mode 100644 index 240739c6c73..00000000000 --- a/reactos/dll/win32/shell32/drive.c +++ /dev/null @@ -1,1290 +0,0 @@ -/* - * Shell Library Functions - * - * Copyright 2005 Johannes Anderwald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#define MAX_PROPERTY_SHEET_PAGE 32 - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -typedef enum -{ - HWPD_STANDARDLIST = 0, - HWPD_LARGELIST, - HWPD_MAX = HWPD_LARGELIST -} HWPAGE_DISPLAYMODE, *PHWPAGE_DISPLAYMODE; - -typedef -BOOLEAN -(NTAPI *INITIALIZE_FMIFS)( - IN PVOID hinstDll, - IN DWORD dwReason, - IN PVOID reserved -); -typedef -BOOLEAN -(NTAPI *QUERY_AVAILABLEFSFORMAT)( - IN DWORD Index, - IN OUT PWCHAR FileSystem, - OUT UCHAR* Major, - OUT UCHAR* Minor, - OUT BOOLEAN* LastestVersion -); -typedef -BOOLEAN -(NTAPI *ENABLEVOLUMECOMPRESSION)( - IN PWCHAR DriveRoot, - IN USHORT Compression -); - -typedef -VOID -(NTAPI *FORMAT_EX)( - IN PWCHAR DriveRoot, - IN FMIFS_MEDIA_FLAG MediaFlag, - IN PWCHAR Format, - IN PWCHAR Label, - IN BOOLEAN QuickFormat, - IN ULONG ClusterSize, - IN PFMIFSCALLBACK Callback -); - -typedef -VOID -(NTAPI *CHKDSK)( - IN PWCHAR DriveRoot, - IN PWCHAR Format, - IN BOOLEAN CorrectErrors, - IN BOOLEAN Verbose, - IN BOOLEAN CheckOnlyIfDirty, - IN BOOLEAN ScanDrive, - IN PVOID Unused2, - IN PVOID Unused3, - IN PFMIFSCALLBACK Callback -); - - -typedef struct -{ - WCHAR Drive; - UINT Options; - HMODULE hLibrary; - QUERY_AVAILABLEFSFORMAT QueryAvailableFileSystemFormat; - FORMAT_EX FormatEx; - ENABLEVOLUMECOMPRESSION EnableVolumeCompression; - CHKDSK Chkdsk; - UINT Result; -}FORMAT_DRIVE_CONTEXT, *PFORMAT_DRIVE_CONTEXT; - -BOOL InitializeFmifsLibrary(PFORMAT_DRIVE_CONTEXT pContext); -BOOL GetDefaultClusterSize(LPWSTR szFs, PDWORD pClusterSize, PULARGE_INTEGER TotalNumberOfBytes); -HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, IDataObject *pDataObj); -HWND WINAPI -DeviceCreateHardwarePageEx(HWND hWndParent, - LPGUID lpGuids, - UINT uNumberOfGuids, - HWPAGE_DISPLAYMODE DisplayMode); - -HPROPSHEETPAGE SH_CreatePropertySheetPage(LPSTR resname, DLGPROC dlgproc, LPARAM lParam, LPWSTR szTitle); - -#define DRIVE_PROPERTY_PAGES (3) - -static const GUID GUID_DEVCLASS_DISKDRIVE = {0x4d36e967L, 0xe325, 0x11ce, {0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}}; - - -VOID -GetDriveNameWithLetter(LPWSTR szText, UINT Length, WCHAR Drive) -{ - WCHAR szDrive[] = {'C',':','\\', 0}; - DWORD dwMaxComp, dwFileSys, TempLength = 0; - - szDrive[0] = Drive; - if (GetVolumeInformationW(szDrive, szText, Length, NULL, &dwMaxComp, &dwFileSys, NULL, 0)) - { - szText[Length-1] = L'\0'; - TempLength = wcslen(szText); - if (!TempLength) - { - /* load default volume label */ - TempLength = LoadStringW(shell32_hInstance, IDS_DRIVE_FIXED, &szText[Length+1], (sizeof(szText)/sizeof(WCHAR))- Length - 2); - } - } - if (TempLength + 4 < Length) - { - szText[TempLength] = L' '; - szText[TempLength+1] = L'('; - szText[TempLength+2] = szDrive[0]; - szText[TempLength+3] = L')'; - TempLength +=4; - } - - if (TempLength < Length) - szText[TempLength] = L'\0'; - else - szText[Length-1] = L'\0'; -} - - -VOID -InitializeChkDskDialog(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext) -{ - WCHAR szText[100]; - UINT Length; - SetWindowLongPtr(hwndDlg, DWLP_USER, (INT_PTR)pContext); - - Length = GetWindowTextW(hwndDlg, szText, sizeof(szText)/sizeof(WCHAR)); - - GetDriveNameWithLetter(&szText[Length +1], (sizeof(szText)/sizeof(WCHAR))-Length-1, pContext->Drive); - szText[Length] = L' '; - szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0'; - SetWindowText(hwndDlg, szText); -} - -HWND ChkdskDrvDialog = NULL; -BOOLEAN bChkdskSuccess = FALSE; - -BOOLEAN -NTAPI -ChkdskCallback( - IN CALLBACKCOMMAND Command, - IN ULONG SubAction, - IN PVOID ActionInfo) -{ - PDWORD Progress; - PBOOLEAN pSuccess; - switch(Command) - { - case PROGRESS: - Progress = (PDWORD)ActionInfo; - SendDlgItemMessageW(ChkdskDrvDialog, 14002, PBM_SETPOS, (WPARAM)*Progress, 0); - break; - case DONE: - pSuccess = (PBOOLEAN)ActionInfo; - bChkdskSuccess = (*pSuccess); - break; - - case VOLUMEINUSE: - case INSUFFICIENTRIGHTS: - case FSNOTSUPPORTED: - case CLUSTERSIZETOOSMALL: - bChkdskSuccess = FALSE; - FIXME("\n"); - break; - - default: - break; - } - - return TRUE; -} - -VOID -ChkDskNow(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext) -{ - DWORD ClusterSize = 0, dwMaxComponentLength, FileSystemFlags; - WCHAR szFs[30]; - WCHAR szDrive[] = {'C',':','\\', 0}; - WCHAR szVolumeLabel[40]; - ULARGE_INTEGER TotalNumberOfFreeBytes, FreeBytesAvailableUser; - BOOLEAN bCorrectErrors = FALSE, bScanDrive = FALSE; - - szDrive[0] = pContext->Drive; - if(!GetVolumeInformationW(szDrive, szVolumeLabel, sizeof(szVolumeLabel)/sizeof(WCHAR), NULL, &dwMaxComponentLength, &FileSystemFlags, szFs, sizeof(szFs)/sizeof(WCHAR))) - { - FIXME("failed to get drive fs type\n"); - return; - } - - if (!GetDiskFreeSpaceExW(szDrive, &FreeBytesAvailableUser, &TotalNumberOfFreeBytes, NULL)) - { - FIXME("failed to get drive space type\n"); - return; - } - - if (!GetDefaultClusterSize(szFs, &ClusterSize, &TotalNumberOfFreeBytes)) - { - FIXME("invalid cluster size\n"); - return; - } - - if (SendDlgItemMessageW(hwndDlg, 14000, BM_GETCHECK, 0, 0) == BST_CHECKED) - bCorrectErrors = TRUE; - - if (SendDlgItemMessageW(hwndDlg, 14001, BM_GETCHECK, 0, 0) == BST_CHECKED) - bScanDrive = TRUE; - - ChkdskDrvDialog = hwndDlg; - bChkdskSuccess = FALSE; - SendDlgItemMessageW(hwndDlg, 14002, PBM_SETRANGE, 0, MAKELPARAM(0, 100)); - pContext->Chkdsk(szDrive, szFs, bCorrectErrors, TRUE, FALSE, bScanDrive, NULL, NULL, ChkdskCallback); - - ChkdskDrvDialog = NULL; - pContext->Result = bChkdskSuccess; - bChkdskSuccess = FALSE; - -} - -INT_PTR -CALLBACK -ChkDskDlg( - HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam -) -{ - PFORMAT_DRIVE_CONTEXT pContext; - switch(uMsg) - { - case WM_INITDIALOG: - SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)lParam); - InitializeChkDskDialog(hwndDlg, (PFORMAT_DRIVE_CONTEXT)lParam); - return TRUE; - case WM_COMMAND: - switch(LOWORD(wParam)) - { - case IDCANCEL: - EndDialog(hwndDlg, 0); - break; - case IDOK: - pContext = (PFORMAT_DRIVE_CONTEXT) GetWindowLongPtr(hwndDlg, DWLP_USER); - ChkDskNow(hwndDlg, pContext); - break; - } - break; - } - - return FALSE; -} - - -static -ULONGLONG -GetFreeBytesShare(ULONGLONG TotalNumberOfFreeBytes, ULONGLONG TotalNumberOfBytes) -{ - ULONGLONG Temp; - - if (TotalNumberOfFreeBytes == 0LL) - { - return 0; - } - - Temp = TotalNumberOfBytes / 100; - if (Temp >= TotalNumberOfFreeBytes) - { - return 1; - } - else - { - return TotalNumberOfFreeBytes / Temp; - } -} - -static -void -PaintStaticControls(HWND hwndDlg, LPDRAWITEMSTRUCT drawItem) -{ - HBRUSH hBrush; - - if (drawItem->CtlID == 14013) - { - hBrush = CreateSolidBrush(RGB(0, 0, 255)); - if (hBrush) - { - FillRect(drawItem->hDC, &drawItem->rcItem, hBrush); - DeleteObject((HGDIOBJ)hBrush); - } - } - else if (drawItem->CtlID == 14014) - { - hBrush = CreateSolidBrush(RGB(255, 0, 255)); - if (hBrush) - { - FillRect(drawItem->hDC, &drawItem->rcItem, hBrush); - DeleteObject((HGDIOBJ)hBrush); - } - } - else if (drawItem->CtlID == 14015) - { - HBRUSH hBlueBrush; - HBRUSH hMagBrush; - RECT rect; - LONG horzsize; - LONGLONG Result; - WCHAR szBuffer[20]; - - hBlueBrush = CreateSolidBrush(RGB(0, 0, 255)); - hMagBrush = CreateSolidBrush(RGB(255, 0, 255)); - - SendDlgItemMessageW(hwndDlg, 14006, WM_GETTEXT, 20, (LPARAM)szBuffer); - Result = _wtoi(szBuffer); - - CopyRect(&rect, &drawItem->rcItem); - horzsize = rect.right - rect.left; - Result = (Result * horzsize) / 100; - - rect.right = drawItem->rcItem.right - Result; - FillRect(drawItem->hDC, &rect, hBlueBrush); - rect.left = rect.right; - rect.right = drawItem->rcItem.right; - FillRect(drawItem->hDC, &rect, hMagBrush); - DeleteObject(hBlueBrush); - DeleteObject(hMagBrush); - } -} - -static -void -InitializeGeneralDriveDialog(HWND hwndDlg, WCHAR * szDrive) -{ - WCHAR szVolumeName[MAX_PATH+1] = {0}; - DWORD MaxComponentLength = 0; - DWORD FileSystemFlags = 0; - WCHAR FileSystemName[MAX_PATH+1] = {0}; - WCHAR szFormat[50]; - WCHAR szBuffer[128]; - BOOL ret; - UINT DriveType; - ULARGE_INTEGER FreeBytesAvailable; - LARGE_INTEGER TotalNumberOfFreeBytes; - LARGE_INTEGER TotalNumberOfBytes; - - ret = GetVolumeInformationW(szDrive, szVolumeName, MAX_PATH+1, NULL, &MaxComponentLength, &FileSystemFlags, FileSystemName, MAX_PATH+1); - if (ret) - { - /* set volume label */ - SendDlgItemMessageW(hwndDlg, 14000, WM_SETTEXT, (WPARAM)NULL, (LPARAM)szVolumeName); - - /* set filesystem type */ - SendDlgItemMessageW(hwndDlg, 14002, WM_SETTEXT, (WPARAM)NULL, (LPARAM)FileSystemName); - - } - - DriveType = GetDriveTypeW(szDrive); - if (DriveType == DRIVE_FIXED || DriveType == DRIVE_CDROM) - { - - if(GetDiskFreeSpaceExW(szDrive, &FreeBytesAvailable, (PULARGE_INTEGER)&TotalNumberOfBytes, (PULARGE_INTEGER)&TotalNumberOfFreeBytes)) - { - WCHAR szResult[128]; - LONGLONG Result; - HANDLE hVolume; - DWORD BytesReturned = 0; - - swprintf(szResult, L"\\\\.\\%c:", towupper(szDrive[0])); - hVolume = CreateFileW(szResult, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); - if (hVolume != INVALID_HANDLE_VALUE) - { - ret = DeviceIoControl(hVolume, IOCTL_DISK_GET_LENGTH_INFO, NULL, 0, (LPVOID)&TotalNumberOfBytes, sizeof(ULARGE_INTEGER), &BytesReturned, NULL); - if (ret && StrFormatByteSizeW(TotalNumberOfBytes.QuadPart, szResult, sizeof(szResult) / sizeof(WCHAR))) - SendDlgItemMessageW(hwndDlg, 14007, WM_SETTEXT, (WPARAM)NULL, (LPARAM)szResult); - - CloseHandle(hVolume); - } - - TRACE("szResult %s hVOlume %p ret %d LengthInformation %ul Bytesreturned %d\n", debugstr_w(szResult), hVolume, ret, TotalNumberOfBytes.QuadPart, BytesReturned); - - if (StrFormatByteSizeW(TotalNumberOfBytes.QuadPart - FreeBytesAvailable.QuadPart, szResult, sizeof(szResult) / sizeof(WCHAR))) - SendDlgItemMessageW(hwndDlg, 14003, WM_SETTEXT, (WPARAM)NULL, (LPARAM)szResult); - - if (StrFormatByteSizeW(FreeBytesAvailable.QuadPart, szResult, sizeof(szResult) / sizeof(WCHAR))) - SendDlgItemMessageW(hwndDlg, 14005, WM_SETTEXT, (WPARAM)NULL, (LPARAM)szResult); - - Result = GetFreeBytesShare(TotalNumberOfFreeBytes.QuadPart, TotalNumberOfBytes.QuadPart); - /* set free bytes percentage */ - swprintf(szResult, L"%02d%%", Result); - SendDlgItemMessageW(hwndDlg, 14006, WM_SETTEXT, (WPARAM)0, (LPARAM)szResult); - /* store used share amount */ - Result = 100 - Result; - swprintf(szResult, L"%02d%%", Result); - SendDlgItemMessageW(hwndDlg, 14004, WM_SETTEXT, (WPARAM)0, (LPARAM)szResult); - if (DriveType == DRIVE_FIXED) - { - if (LoadStringW(shell32_hInstance, IDS_DRIVE_FIXED, szBuffer, sizeof(szBuffer) / sizeof(WCHAR))) - SendDlgItemMessageW(hwndDlg, 14001, WM_SETTEXT, (WPARAM)0, (LPARAM)szBuffer); - } - else /* DriveType == DRIVE_CDROM) */ - { - if (LoadStringW(shell32_hInstance, IDS_DRIVE_CDROM, szBuffer, sizeof(szBuffer) / sizeof(WCHAR))) - SendDlgItemMessageW(hwndDlg, 14001, WM_SETTEXT, (WPARAM)0, (LPARAM)szBuffer); - } - } - } - /* set drive description */ - SendDlgItemMessageW(hwndDlg, 14009, WM_GETTEXT, (WPARAM)50, (LPARAM)szFormat); - swprintf(szBuffer, szFormat, szDrive); - SendDlgItemMessageW(hwndDlg, 14009, WM_SETTEXT, (WPARAM)NULL, (LPARAM)szBuffer); -} - - -INT_PTR -CALLBACK -DriveGeneralDlg( - HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam -) -{ - LPPROPSHEETPAGEW ppsp; - LPDRAWITEMSTRUCT drawItem; - STARTUPINFOW si; - PROCESS_INFORMATION pi; - WCHAR * lpstr; - WCHAR szPath[MAX_PATH]; - UINT length; - LPPSHNOTIFY lppsn; - - switch(uMsg) - { - case WM_INITDIALOG: - ppsp = (LPPROPSHEETPAGEW)lParam; - if (ppsp == NULL) - break; - lpstr = (WCHAR *)ppsp->lParam; - SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)lpstr); - InitializeGeneralDriveDialog(hwndDlg, lpstr); - return TRUE; - case WM_DRAWITEM: - drawItem = (LPDRAWITEMSTRUCT)lParam; - if (drawItem->CtlID >= 14013 && drawItem->CtlID <= 14015) - { - PaintStaticControls(hwndDlg, drawItem); - return TRUE; - } - break; - case WM_COMMAND: - if (LOWORD(wParam) == 14010) /* Disk Cleanup */ - { - lpstr = (WCHAR*)GetWindowLongPtr(hwndDlg, DWLP_USER); - ZeroMemory( &si, sizeof(si) ); - si.cb = sizeof(si); - ZeroMemory( &pi, sizeof(pi) ); - if (!GetSystemDirectoryW(szPath, MAX_PATH)) - break; - wcscat(szPath, L"\\cleanmgr.exe /D "); - length = wcslen(szPath); - szPath[length] = lpstr[0]; - szPath[length+1] = L'\0'; - if (CreateProcessW(NULL, szPath, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) - { - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - } - break; - } - case WM_NOTIFY: - lppsn = (LPPSHNOTIFY) lParam; - if (LOWORD(wParam) == 14000) - { - if (HIWORD(wParam) == EN_CHANGE) - { - PropSheet_Changed(GetParent(hwndDlg), hwndDlg); - } - break; - } - if (lppsn->hdr.code == PSN_APPLY) - { - lpstr = (LPWSTR)GetWindowLongPtr(hwndDlg, DWLP_USER); - if (lpstr && SendDlgItemMessageW(hwndDlg, 14000, WM_GETTEXT, sizeof(szPath)/sizeof(WCHAR), (LPARAM)szPath)) - { - szPath[(sizeof(szPath)/sizeof(WCHAR))-1] = L'\0'; - SetVolumeLabelW(lpstr, szPath); - } - SetWindowLongPtr( hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR ); - return TRUE; - } - break; - - default: - break; - } - - - return FALSE; -} - -INT_PTR -CALLBACK -DriveExtraDlg( - HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam -) -{ - STARTUPINFOW si; - PROCESS_INFORMATION pi; - WCHAR szPath[MAX_PATH + 10]; - WCHAR szArg[MAX_PATH]; - WCHAR * szDrive; - LPPROPSHEETPAGEW ppsp; - DWORD dwSize; - FORMAT_DRIVE_CONTEXT Context; - - switch (uMsg) - { - case WM_INITDIALOG: - ppsp = (LPPROPSHEETPAGEW)lParam; - SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)ppsp->lParam); - return TRUE; - case WM_COMMAND: - ZeroMemory( &si, sizeof(si) ); - si.cb = sizeof(si); - ZeroMemory( &pi, sizeof(pi) ); - - szDrive = (WCHAR*)GetWindowLongPtr(hwndDlg, DWLP_USER); - switch(LOWORD(wParam)) - { - case 14000: - if (InitializeFmifsLibrary(&Context)) - { - Context.Drive = szDrive[0]; - DialogBoxParamW(shell32_hInstance, L"CHKDSK_DLG", hwndDlg, ChkDskDlg, (LPARAM)&Context); - FreeLibrary(Context.hLibrary); - } - break; - case 14001: - dwSize = sizeof(szPath); - if (RegGetValueW(HKEY_LOCAL_MACHINE, - L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MyComputer\\DefragPath", - NULL, - RRF_RT_REG_EXPAND_SZ, - NULL, - (PVOID)szPath, - &dwSize) == S_OK) - { - swprintf(szArg, szPath, szDrive[0]); - if (!GetSystemDirectoryW(szPath, MAX_PATH)) - break; - szDrive = PathAddBackslashW(szPath); - if (!szDrive) - break; - - wcscat(szDrive, L"mmc.exe"); - if (CreateProcessW(szPath, szArg, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) - { - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - } - } - break; - case 14002: - dwSize = sizeof(szPath); - if (RegGetValueW(HKEY_LOCAL_MACHINE, - L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MyComputer\\BackupPath", - NULL, - RRF_RT_REG_EXPAND_SZ, - NULL, - (PVOID)szPath, - &dwSize) == S_OK) - { - if (CreateProcessW(szPath, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) - { - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - } - } - } - break; - } - return FALSE; -} - -INT_PTR -CALLBACK -DriveHardwareDlg( - HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam -) -{ - GUID Guids[1]; - Guids[0] = GUID_DEVCLASS_DISKDRIVE; - - UNREFERENCED_PARAMETER(lParam); - UNREFERENCED_PARAMETER(wParam); - - switch(uMsg) - { - case WM_INITDIALOG: - /* create the hardware page */ - DeviceCreateHardwarePageEx(hwndDlg, - Guids, - sizeof(Guids) / sizeof(Guids[0]), - 0); - break; - } - - return FALSE; -} - -static -const -struct -{ - LPSTR resname; - DLGPROC dlgproc; - UINT DriveType; -} PropPages[] = -{ - { "DRIVE_GENERAL_DLG", DriveGeneralDlg, -1}, - { "DRIVE_EXTRA_DLG", DriveExtraDlg, DRIVE_FIXED}, - { "DRIVE_HARDWARE_DLG", DriveHardwareDlg, -1}, -}; - -HRESULT -CALLBACK -AddPropSheetPageProc(HPROPSHEETPAGE hpage, LPARAM lParam) -{ - PROPSHEETHEADER *ppsh = (PROPSHEETHEADER *)lParam; - if (ppsh != NULL && ppsh->nPages < MAX_PROPERTY_SHEET_PAGE) - { - ppsh->u3.phpage[ppsh->nPages++] = hpage; - return TRUE; - } - return FALSE; -} - -BOOL -SH_ShowDriveProperties(WCHAR * drive, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST * apidl) -{ - HPSXA hpsx = NULL; - HPROPSHEETPAGE hpsp[MAX_PROPERTY_SHEET_PAGE]; - PROPSHEETHEADERW psh; - BOOL ret; - UINT i; - WCHAR szName[MAX_PATH+6]; - DWORD dwMaxComponent, dwFileSysFlags; - IDataObject * pDataObj = NULL; - UINT DriveType; - - ZeroMemory(&psh, sizeof(PROPSHEETHEADERW)); - psh.dwSize = sizeof(PROPSHEETHEADERW); - //psh.dwFlags = PSH_USECALLBACK | PSH_PROPTITLE; - psh.hwndParent = NULL; - psh.u2.nStartPage = 0; - psh.u3.phpage = hpsp; - - if (GetVolumeInformationW(drive, szName, sizeof(szName)/sizeof(WCHAR), NULL, &dwMaxComponent, - &dwFileSysFlags, NULL, 0)) - { - psh.pszCaption = szName; - psh.dwFlags |= PSH_PROPTITLE; - if (!wcslen(szName)) - { - /* FIXME - * check if disk is a really a local hdd - */ - i = LoadStringW(shell32_hInstance, IDS_DRIVE_FIXED, szName, sizeof(szName)/sizeof(WCHAR)-6); - if (i > 0 && i < (sizeof(szName)/sizeof(WCHAR)) - 6) - { - szName[i] = L' '; - szName[i+1] = L'('; - wcscpy(&szName[i+2], drive); - szName[i+4] = L')'; - szName[i+5] = L'\0'; - } - } - } - - DriveType = GetDriveTypeW(drive); - for (i = 0; i < DRIVE_PROPERTY_PAGES; i++) - { - if (PropPages[i].DriveType == (UINT)-1 || (PropPages[i].DriveType != (UINT)-1 && PropPages[i].DriveType == DriveType)) - { - HPROPSHEETPAGE hprop = SH_CreatePropertySheetPage(PropPages[i].resname, PropPages[i].dlgproc, (LPARAM)drive, NULL); - if (hprop) - { - hpsp[psh.nPages] = hprop; - psh.nPages++; - } - } - } - - if (SHCreateDataObject(pidlFolder, 1, apidl, NULL, &IID_IDataObject, (void**)&pDataObj) == S_OK) - { - hpsx = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, L"Drive", MAX_PROPERTY_SHEET_PAGE-DRIVE_PROPERTY_PAGES, pDataObj); - if (hpsx) - { - SHAddFromPropSheetExtArray(hpsx, (LPFNADDPROPSHEETPAGE)AddPropSheetPageProc, (LPARAM)&psh); - } - } - - ret = PropertySheetW(&psh); - if (pDataObj) - IDataObject_Release(pDataObj); - - if (hpsx) - SHDestroyPropSheetExtArray(hpsx); - - if (ret < 0) - return FALSE; - else - return TRUE; -} - -BOOL -GetDefaultClusterSize(LPWSTR szFs, PDWORD pClusterSize, PULARGE_INTEGER TotalNumberOfBytes) -{ - DWORD ClusterSize; - - if (!wcsicmp(szFs, L"FAT16") || - !wcsicmp(szFs, L"FAT")) //REACTOS HACK - { - if (TotalNumberOfBytes->QuadPart <= (16 * 1024 * 1024)) - ClusterSize = 2048; - else if (TotalNumberOfBytes->QuadPart <= (32 * 1024 * 1024)) - ClusterSize = 512; - else if (TotalNumberOfBytes->QuadPart <= (64 * 1024 * 1024)) - ClusterSize = 1024; - else if (TotalNumberOfBytes->QuadPart <= (128 * 1024 * 1024)) - ClusterSize = 2048; - else if (TotalNumberOfBytes->QuadPart <= (256 * 1024 * 1024)) - ClusterSize = 4096; - else if (TotalNumberOfBytes->QuadPart <= (512 * 1024 * 1024)) - ClusterSize = 8192; - else if (TotalNumberOfBytes->QuadPart <= (1024 * 1024 * 1024)) - ClusterSize = 16384; - else if (TotalNumberOfBytes->QuadPart <= (2048LL * 1024LL * 1024LL)) - ClusterSize = 32768; - else if (TotalNumberOfBytes->QuadPart <= (4096LL * 1024LL * 1024LL)) - ClusterSize = 8192; - else - return FALSE; - } - else if (!wcsicmp(szFs, L"FAT32")) - { - if (TotalNumberOfBytes->QuadPart <=(64 * 1024 * 1024)) - ClusterSize = 512; - else if (TotalNumberOfBytes->QuadPart <= (128 * 1024 * 1024)) - ClusterSize = 1024; - else if (TotalNumberOfBytes->QuadPart <= (256 * 1024 * 1024)) - ClusterSize = 2048; - else if (TotalNumberOfBytes->QuadPart <= (8192LL * 1024LL * 1024LL)) - ClusterSize = 2048; - else if (TotalNumberOfBytes->QuadPart <= (16384LL * 1024LL * 1024LL)) - ClusterSize = 8192; - else if (TotalNumberOfBytes->QuadPart <= (32768LL * 1024LL * 1024LL)) - ClusterSize = 16384; - else - return FALSE; - } - else if (!wcsicmp(szFs, L"NTFS")) - { - if (TotalNumberOfBytes->QuadPart <=(512 * 1024 * 1024)) - ClusterSize = 512; - else if (TotalNumberOfBytes->QuadPart <= (1024 * 1024 * 1024)) - ClusterSize = 1024; - else if (TotalNumberOfBytes->QuadPart <= (2048LL * 1024LL * 1024LL)) - ClusterSize = 2048; - else - ClusterSize = 2048; - } - else - return FALSE; - - *pClusterSize = ClusterSize; - return TRUE; -} - - -VOID -InsertDefaultClusterSizeForFs(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext) -{ - WCHAR szFs[100] = {0}; - WCHAR szDrive[4] = { L'C', ':', '\\', 0 }; - INT iSelIndex; - ULARGE_INTEGER FreeBytesAvailableUser, TotalNumberOfBytes; - DWORD ClusterSize; - LRESULT lIndex; - HWND hDlgCtrl; - - hDlgCtrl = GetDlgItem(hwndDlg, 28677); - iSelIndex = SendMessage(hDlgCtrl, CB_GETCURSEL, 0, 0); - if (iSelIndex == CB_ERR) - return; - - if (SendMessageW(hDlgCtrl, CB_GETLBTEXT, iSelIndex, (LPARAM)szFs) == CB_ERR) - return; - - szFs[(sizeof(szFs)/sizeof(WCHAR))-1] = L'\0'; - szDrive[0] = pContext->Drive + 'A'; - - if (!GetDiskFreeSpaceExW(szDrive, &FreeBytesAvailableUser, &TotalNumberOfBytes, NULL)) - return; - - if (!wcsicmp(szFs, L"FAT16") || - !wcsicmp(szFs, L"FAT")) //REACTOS HACK - { - if (!GetDefaultClusterSize(szFs, &ClusterSize, &TotalNumberOfBytes)) - { - TRACE("FAT16 is not supported on hdd larger than 4G current %lu\n", TotalNumberOfBytes.QuadPart); - SendMessageW(hDlgCtrl, CB_DELETESTRING, iSelIndex, 0); - return; - } - - if (LoadStringW(shell32_hInstance, IDS_DEFAULT_CLUSTER_SIZE, szFs, sizeof(szFs)/sizeof(WCHAR))) - { - hDlgCtrl = GetDlgItem(hwndDlg, 28680); - szFs[(sizeof(szFs)/sizeof(WCHAR))-1] = L'\0'; - SendMessageW(hDlgCtrl, CB_RESETCONTENT, 0, 0); - lIndex = SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)szFs); - if (lIndex != CB_ERR) - SendMessageW(hDlgCtrl, CB_SETITEMDATA, lIndex, (LPARAM)ClusterSize); - SendMessageW(hDlgCtrl, CB_SETCURSEL, 0, 0); - } - } - else if (!wcsicmp(szFs, L"FAT32")) - { - if (!GetDefaultClusterSize(szFs, &ClusterSize, &TotalNumberOfBytes)) - { - TRACE("FAT32 is not supported on hdd larger than 32G current %lu\n", TotalNumberOfBytes.QuadPart); - SendMessageW(hDlgCtrl, CB_DELETESTRING, iSelIndex, 0); - return; - } - - if (LoadStringW(shell32_hInstance, IDS_DEFAULT_CLUSTER_SIZE, szFs, sizeof(szFs)/sizeof(WCHAR))) - { - hDlgCtrl = GetDlgItem(hwndDlg, 28680); - szFs[(sizeof(szFs)/sizeof(WCHAR))-1] = L'\0'; - SendMessageW(hDlgCtrl, CB_RESETCONTENT, 0, 0); - lIndex = SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)szFs); - if (lIndex != CB_ERR) - SendMessageW(hDlgCtrl, CB_SETITEMDATA, lIndex, (LPARAM)ClusterSize); - SendMessageW(hDlgCtrl, CB_SETCURSEL, 0, 0); - } - } - else if (!wcsicmp(szFs, L"NTFS")) - { - if (!GetDefaultClusterSize(szFs, &ClusterSize, &TotalNumberOfBytes)) - { - TRACE("NTFS is not supported on hdd larger than 2TB current %lu\n", TotalNumberOfBytes.QuadPart); - SendMessageW(hDlgCtrl, CB_DELETESTRING, iSelIndex, 0); - return; - } - - hDlgCtrl = GetDlgItem(hwndDlg, 28680); - if (LoadStringW(shell32_hInstance, IDS_DEFAULT_CLUSTER_SIZE, szFs, sizeof(szFs)/sizeof(WCHAR))) - { - szFs[(sizeof(szFs)/sizeof(WCHAR))-1] = L'\0'; - SendMessageW(hDlgCtrl, CB_RESETCONTENT, 0, 0); - lIndex = SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)szFs); - if (lIndex != CB_ERR) - SendMessageW(hDlgCtrl, CB_SETITEMDATA, lIndex, (LPARAM)ClusterSize); - SendMessageW(hDlgCtrl, CB_SETCURSEL, 0, 0); - } - ClusterSize = 512; - for (lIndex = 0; lIndex < 4; lIndex++) - { - TotalNumberOfBytes.QuadPart = ClusterSize; - if (StrFormatByteSizeW(TotalNumberOfBytes.QuadPart, szFs, sizeof(szFs)/sizeof(WCHAR))) - { - lIndex = SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)szFs); - if (lIndex != CB_ERR) - SendMessageW(hDlgCtrl, CB_SETITEMDATA, lIndex, (LPARAM)ClusterSize); - } - ClusterSize *= 2; - } - } - else - { - FIXME("unknown fs\n"); - SendDlgItemMessageW(hwndDlg, 28680, CB_RESETCONTENT, iSelIndex, 0); - return; - } -} - -VOID -InitializeFormatDriveDlg(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext) -{ - WCHAR szText[120]; - WCHAR szDrive[4] = { L'C', ':', '\\', 0 }; - WCHAR szFs[30] = {0}; - INT Length, TempLength; - DWORD dwSerial, dwMaxComp, dwFileSys; - ULARGE_INTEGER FreeBytesAvailableUser, TotalNumberOfBytes; - DWORD dwIndex, dwDefault; - UCHAR uMinor, uMajor; - BOOLEAN Latest; - HWND hDlgCtrl; - - Length = GetWindowTextW(hwndDlg, szText, sizeof(szText)/sizeof(WCHAR)); - if (Length < 0) - Length = 0; - szDrive[0] = pContext->Drive + L'A'; - if (GetVolumeInformationW(szDrive, &szText[Length+1], (sizeof(szText)/sizeof(WCHAR))- Length - 2, &dwSerial, &dwMaxComp, &dwFileSys, szFs, sizeof(szFs)/sizeof(WCHAR))) - { - szText[Length] = L' '; - szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0'; - TempLength = wcslen(&szText[Length+1]); - if (!TempLength) - { - /* load default volume label */ - TempLength = LoadStringW(shell32_hInstance, IDS_DRIVE_FIXED, &szText[Length+1], (sizeof(szText)/sizeof(WCHAR))- Length - 2); - } - else - { - /* set volume label */ - szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0'; - SendDlgItemMessageW(hwndDlg, 28679, WM_SETTEXT, 0, (LPARAM)&szText[Length+1]); - } - Length += TempLength + 1; - } - - if (Length + 4 < (sizeof(szText)/sizeof(WCHAR))) - { - szText[Length] = L' '; - szText[Length+1] = L'('; - szText[Length+2] = szDrive[0]; - szText[Length+3] = L')'; - Length +=4; - } - - if (Length < (sizeof(szText)/sizeof(WCHAR))) - szText[Length] = L'\0'; - else - szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0'; - - /* set window text */ - SetWindowTextW(hwndDlg, szText); - - if (GetDiskFreeSpaceExW(szDrive, &FreeBytesAvailableUser, &TotalNumberOfBytes, NULL)) - { - if (StrFormatByteSizeW(TotalNumberOfBytes.QuadPart, szText, sizeof(szText)/sizeof(WCHAR))) - { - /* add drive capacity */ - szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0'; - SendDlgItemMessageW(hwndDlg, 28673, CB_ADDSTRING, 0, (LPARAM)szText); - SendDlgItemMessageW(hwndDlg, 28673, CB_SETCURSEL, 0, (LPARAM)0); - } - } - - if (pContext->Options & SHFMT_OPT_FULL) - { - /* check quick format button */ - SendDlgItemMessageW(hwndDlg, 28674, BM_SETCHECK, BST_CHECKED, 0); - } - - /* enumerate all available filesystems */ - dwIndex = 0; - dwDefault = 0; - hDlgCtrl = GetDlgItem(hwndDlg, 28677); - - while(pContext->QueryAvailableFileSystemFormat(dwIndex, szText, &uMajor, &uMinor, &Latest)) - { - szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0'; - if (!wcsicmp(szText, szFs)) - dwDefault = dwIndex; - - SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)szText); - dwIndex++; - } - - if (!dwIndex) - { - ERR("no filesystem providers\n"); - return; - } - - /* select default filesys */ - SendMessageW(hDlgCtrl, CB_SETCURSEL, dwDefault, 0); - /* setup cluster combo */ - InsertDefaultClusterSizeForFs(hwndDlg, pContext); - /* hide progress control */ - ShowWindow(GetDlgItem(hwndDlg, 28678), SW_HIDE); -} - -HWND FormatDrvDialog = NULL; -BOOLEAN bSuccess = FALSE; - - -BOOLEAN -NTAPI -FormatExCB( - IN CALLBACKCOMMAND Command, - IN ULONG SubAction, - IN PVOID ActionInfo) -{ - PDWORD Progress; - PBOOLEAN pSuccess; - switch(Command) - { - case PROGRESS: - Progress = (PDWORD)ActionInfo; - SendDlgItemMessageW(FormatDrvDialog, 28678, PBM_SETPOS, (WPARAM)*Progress, 0); - break; - case DONE: - pSuccess = (PBOOLEAN)ActionInfo; - bSuccess = (*pSuccess); - break; - - case VOLUMEINUSE: - case INSUFFICIENTRIGHTS: - case FSNOTSUPPORTED: - case CLUSTERSIZETOOSMALL: - bSuccess = FALSE; - FIXME("\n"); - break; - - default: - break; - } - - return TRUE; -} - - - - - -VOID -FormatDrive(HWND hwndDlg, PFORMAT_DRIVE_CONTEXT pContext) -{ - WCHAR szDrive[4] = { L'C', ':', '\\', 0 }; - WCHAR szFileSys[40] = {0}; - WCHAR szLabel[40] = {0}; - INT iSelIndex; - UINT Length; - HWND hDlgCtrl; - BOOL QuickFormat; - DWORD ClusterSize; - - /* set volume path */ - szDrive[0] = pContext->Drive; - - /* get filesystem */ - hDlgCtrl = GetDlgItem(hwndDlg, 28677); - iSelIndex = SendMessageW(hDlgCtrl, CB_GETCURSEL, 0, 0); - if (iSelIndex == CB_ERR) - { - FIXME("\n"); - return; - } - Length = SendMessageW(hDlgCtrl, CB_GETLBTEXTLEN, iSelIndex, 0); - if (Length == CB_ERR || Length + 1> sizeof(szFileSys)/sizeof(WCHAR)) - { - FIXME("\n"); - return; - } - - /* retrieve the file system */ - SendMessageW(hDlgCtrl, CB_GETLBTEXT, iSelIndex, (LPARAM)szFileSys); - szFileSys[(sizeof(szFileSys)/sizeof(WCHAR))-1] = L'\0'; - - /* retrieve the volume label */ - hDlgCtrl = GetWindow(hwndDlg, 28679); - Length = SendMessageW(hDlgCtrl, WM_GETTEXTLENGTH, 0, 0); - if (Length + 1 > sizeof(szLabel)/sizeof(WCHAR)) - { - FIXME("\n"); - return; - } - SendMessageW(hDlgCtrl, WM_GETTEXT, sizeof(szLabel)/sizeof(WCHAR), (LPARAM)szLabel); - szLabel[(sizeof(szLabel)/sizeof(WCHAR))-1] = L'\0'; - - /* check for quickformat */ - if (SendDlgItemMessageW(hwndDlg, 28674, BM_GETCHECK, 0, 0) == BST_CHECKED) - QuickFormat = TRUE; - else - QuickFormat = FALSE; - - /* get the cluster size */ - hDlgCtrl = GetDlgItem(hwndDlg, 28680); - iSelIndex = SendMessageW(hDlgCtrl, CB_GETCURSEL, 0, 0); - if (iSelIndex == CB_ERR) - { - FIXME("\n"); - return; - } - ClusterSize = SendMessageW(hDlgCtrl, CB_GETITEMDATA, iSelIndex, 0); - if (ClusterSize == CB_ERR) - { - FIXME("\n"); - return; - } - - hDlgCtrl = GetDlgItem(hwndDlg, 28680); - ShowWindow(hDlgCtrl, SW_SHOW); - SendMessageW(hDlgCtrl, PBM_SETRANGE, 0, MAKELPARAM(0, 100)); - bSuccess = FALSE; - - /* FIXME - * will cause display problems - * when performing more than one format - */ - FormatDrvDialog = hwndDlg; - - pContext->FormatEx(szDrive, - FMIFS_HARDDISK, /* FIXME */ - szFileSys, - szLabel, - QuickFormat, - ClusterSize, - FormatExCB); - - ShowWindow(hDlgCtrl, SW_HIDE); - FormatDrvDialog = NULL; - if (!bSuccess) - { - pContext->Result = SHFMT_ERROR; - } - else if (QuickFormat) - { - pContext->Result = SHFMT_OPT_FULL; - } - else - { - pContext->Result = FALSE; - } -} - - -BOOL -CALLBACK -FormatDriveDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - PFORMAT_DRIVE_CONTEXT pContext; - - switch(uMsg) - { - case WM_INITDIALOG: - InitializeFormatDriveDlg(hwndDlg, (PFORMAT_DRIVE_CONTEXT)lParam); - SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)lParam); - return TRUE; - case WM_COMMAND: - switch(LOWORD(wParam)) - { - case IDOK: - pContext = (PFORMAT_DRIVE_CONTEXT)GetWindowLongPtr(hwndDlg, DWLP_USER); - FormatDrive(hwndDlg, pContext); - break; - case IDCANCEL: - pContext = (PFORMAT_DRIVE_CONTEXT)GetWindowLongPtr(hwndDlg, DWLP_USER); - EndDialog(hwndDlg, pContext->Result); - break; - case 28677: // filesystem combo - if (HIWORD(wParam) == CBN_SELENDOK) - { - pContext = (PFORMAT_DRIVE_CONTEXT)GetWindowLongPtr(hwndDlg, DWLP_USER); - InsertDefaultClusterSizeForFs(hwndDlg, pContext); - } - break; - } - } - return FALSE; -} - - -BOOL -InitializeFmifsLibrary(PFORMAT_DRIVE_CONTEXT pContext) -{ - INITIALIZE_FMIFS InitFmifs; - BOOLEAN ret; - HMODULE hLibrary; - - hLibrary = pContext->hLibrary = LoadLibraryW(L"fmifs.dll"); - if(!hLibrary) - { - ERR("failed to load fmifs.dll\n"); - return FALSE; - } - - InitFmifs = (INITIALIZE_FMIFS)GetProcAddress(hLibrary, "InitializeFmIfs"); - if (!InitFmifs) - { - ERR("InitializeFmIfs export is missing\n"); - FreeLibrary(hLibrary); - return FALSE; - } - - ret = (*InitFmifs)(NULL, DLL_PROCESS_ATTACH, NULL); - if (!ret) - { - ERR("fmifs failed to initialize\n"); - FreeLibrary(hLibrary); - return FALSE; - } - - pContext->QueryAvailableFileSystemFormat = (QUERY_AVAILABLEFSFORMAT)GetProcAddress(hLibrary, "QueryAvailableFileSystemFormat"); - if (!pContext->QueryAvailableFileSystemFormat) - { - ERR("QueryAvailableFileSystemFormat export is missing\n"); - FreeLibrary(hLibrary); - return FALSE; - } - - pContext->FormatEx = (FORMAT_EX) GetProcAddress(hLibrary, "FormatEx"); - if (!pContext->FormatEx) - { - ERR("FormatEx export is missing\n"); - FreeLibrary(hLibrary); - return FALSE; - } - - pContext->EnableVolumeCompression = (ENABLEVOLUMECOMPRESSION) GetProcAddress(hLibrary, "EnableVolumeCompression"); - if (!pContext->FormatEx) - { - ERR("EnableVolumeCompression export is missing\n"); - FreeLibrary(hLibrary); - return FALSE; - } - - pContext->Chkdsk = (CHKDSK) GetProcAddress(hLibrary, "Chkdsk"); - if (!pContext->Chkdsk) - { - ERR("Chkdsk export is missing\n"); - FreeLibrary(hLibrary); - return FALSE; - } - - return TRUE; -} - -/************************************************************************* - * SHFormatDrive (SHELL32.@) - */ - -DWORD -WINAPI -SHFormatDrive(HWND hwnd, UINT drive, UINT fmtID, UINT options) -{ - FORMAT_DRIVE_CONTEXT Context; - int result; - - TRACE("%p, 0x%08x, 0x%08x, 0x%08x - stub\n", hwnd, drive, fmtID, options); - - if (!InitializeFmifsLibrary(&Context)) - { - ERR("failed to initialize fmifs\n"); - return SHFMT_NOFORMAT; - } - - Context.Drive = drive; - Context.Options = options; - - result = DialogBoxParamW(shell32_hInstance, L"FORMAT_DLG", hwnd, FormatDriveDlg, (LPARAM)&Context); - - FreeLibrary(Context.hLibrary); - return result; -} - - diff --git a/reactos/dll/win32/shell32/enumidlist.c b/reactos/dll/win32/shell32/enumidlist.c deleted file mode 100644 index 22daeaf1720..00000000000 --- a/reactos/dll/win32/shell32/enumidlist.c +++ /dev/null @@ -1,388 +0,0 @@ -/* - * IEnumIDList - * - * Copyright 1998 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -typedef struct tagENUMLIST -{ - struct tagENUMLIST *pNext; - LPITEMIDLIST pidl; - -} ENUMLIST, *LPENUMLIST; - -typedef struct -{ - const IEnumIDListVtbl *lpVtbl; - LONG ref; - LPENUMLIST mpFirst; - LPENUMLIST mpLast; - LPENUMLIST mpCurrent; - -} IEnumIDListImpl; - -static const IEnumIDListVtbl eidlvt; - -/************************************************************************** - * AddToEnumList() - */ -BOOL AddToEnumList( - IEnumIDList * iface, - LPITEMIDLIST pidl) -{ - IEnumIDListImpl *This = (IEnumIDListImpl *)iface; - - LPENUMLIST pNew; - - TRACE("(%p)->(pidl=%p)\n",This,pidl); - - if (!iface || !pidl) - return FALSE; - - pNew = (LPENUMLIST)SHAlloc(sizeof(ENUMLIST)); - if(pNew) - { - /*set the next pointer */ - pNew->pNext = NULL; - pNew->pidl = pidl; - - /*is This the first item in the list? */ - if(!This->mpFirst) - { - This->mpFirst = pNew; - This->mpCurrent = pNew; - } - - if(This->mpLast) - { - /*add the new item to the end of the list */ - This->mpLast->pNext = pNew; - } - - /*update the last item pointer */ - This->mpLast = pNew; - TRACE("-- (%p)->(first=%p, last=%p)\n",This,This->mpFirst,This->mpLast); - return TRUE; - } - return FALSE; -} -/************************************************************************** - * HasItemWithCLSID() - */ -BOOL HasItemWithCLSID(IEnumIDList *iface, LPITEMIDLIST pidl) -{ - IEnumIDListImpl *This = (IEnumIDListImpl *)iface; - LPENUMLIST pCur; - REFIID refid = _ILGetGUIDPointer(pidl); - - pCur = This->mpFirst; - - while(pCur) - { - LPGUID curid = _ILGetGUIDPointer(pCur->pidl); - if (curid && IsEqualGUID(curid, refid)) - { - return TRUE; - } - pCur = pCur->pNext; - } - return FALSE; -} - - -/************************************************************************** - * CreateFolderEnumList() - */ -BOOL CreateFolderEnumList( - IEnumIDList *list, - LPCWSTR lpszPath, - DWORD dwFlags) -{ - LPITEMIDLIST pidl=NULL; - WIN32_FIND_DATAW stffile; - HANDLE hFile; - WCHAR szPath[MAX_PATH]; - BOOL succeeded = TRUE; - static const WCHAR stars[] = { '*','.','*',0 }; - static const WCHAR dot[] = { '.',0 }; - static const WCHAR dotdot[] = { '.','.',0 }; - - TRACE("(%p)->(path=%s flags=0x%08x)\n", list, debugstr_w(lpszPath), dwFlags); - - if(!lpszPath || !lpszPath[0]) return FALSE; - - wcscpy(szPath, lpszPath); - PathAddBackslashW(szPath); - wcscat(szPath,stars); - - hFile = FindFirstFileW(szPath,&stffile); - if ( hFile != INVALID_HANDLE_VALUE ) - { - BOOL findFinished = FALSE; - - do - { - if ( !(stffile.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) - || (dwFlags & SHCONTF_INCLUDEHIDDEN) ) - { - if ( (stffile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && - dwFlags & SHCONTF_FOLDERS && - strcmpW(stffile.cFileName, dot) && strcmpW(stffile.cFileName, dotdot)) - { - pidl = _ILCreateFromFindDataW(&stffile); - succeeded = succeeded && AddToEnumList(list, pidl); - } - else if (!(stffile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - && dwFlags & SHCONTF_NONFOLDERS) - { - pidl = _ILCreateFromFindDataW(&stffile); - succeeded = succeeded && AddToEnumList(list, pidl); - } - } - if (succeeded) - { - if (!FindNextFileW(hFile, &stffile)) - { - if (GetLastError() == ERROR_NO_MORE_FILES) - findFinished = TRUE; - else - succeeded = FALSE; - } - } - } while (succeeded && !findFinished); - FindClose(hFile); - } - return succeeded; -} - -/************************************************************************** -* DeleteList() -*/ -static BOOL DeleteList( - IEnumIDList * iface) -{ - IEnumIDListImpl *This = (IEnumIDListImpl *)iface; - - LPENUMLIST pDelete; - - TRACE("(%p)->()\n",This); - - while(This->mpFirst) - { pDelete = This->mpFirst; - This->mpFirst = pDelete->pNext; - SHFree(pDelete->pidl); - SHFree(pDelete); - } - This->mpFirst = This->mpLast = This->mpCurrent = NULL; - return TRUE; -} - -/************************************************************************** - * IEnumIDList_Folder_Constructor - * - */ - -IEnumIDList * IEnumIDList_Constructor(void) -{ - IEnumIDListImpl *lpeidl = HeapAlloc(GetProcessHeap(), - HEAP_ZERO_MEMORY, sizeof(IEnumIDListImpl)); - - if (lpeidl) - { - lpeidl->ref = 1; - lpeidl->lpVtbl = &eidlvt; - } - TRACE("-- (%p)->()\n",lpeidl); - - return (IEnumIDList*)lpeidl; -} - -/************************************************************************** - * EnumIDList_QueryInterface - */ -static HRESULT WINAPI IEnumIDList_fnQueryInterface( - IEnumIDList * iface, - REFIID riid, - LPVOID *ppvObj) -{ - IEnumIDListImpl *This = (IEnumIDListImpl *)iface; - - TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - - *ppvObj = NULL; - - if(IsEqualIID(riid, &IID_IUnknown)) /*IUnknown*/ - { *ppvObj = This; - } - else if(IsEqualIID(riid, &IID_IEnumIDList)) /*IEnumIDList*/ - { *ppvObj = (IEnumIDList*)This; - } - - if(*ppvObj) - { IEnumIDList_AddRef((IEnumIDList*)*ppvObj); - TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj); - return S_OK; - } - - TRACE("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -/****************************************************************************** - * IEnumIDList_fnAddRef - */ -static ULONG WINAPI IEnumIDList_fnAddRef( - IEnumIDList * iface) -{ - IEnumIDListImpl *This = (IEnumIDListImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(%u)\n", This, refCount - 1); - - return refCount; -} -/****************************************************************************** - * IEnumIDList_fnRelease - */ -static ULONG WINAPI IEnumIDList_fnRelease( - IEnumIDList * iface) -{ - IEnumIDListImpl *This = (IEnumIDListImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(%u)\n", This, refCount + 1); - - if (!refCount) { - TRACE(" destroying IEnumIDList(%p)\n",This); - DeleteList((IEnumIDList*)This); - HeapFree(GetProcessHeap(),0,This); - } - return refCount; -} - -/************************************************************************** - * IEnumIDList_fnNext - */ - -static HRESULT WINAPI IEnumIDList_fnNext( - IEnumIDList * iface, - ULONG celt, - LPITEMIDLIST * rgelt, - ULONG *pceltFetched) -{ - IEnumIDListImpl *This = (IEnumIDListImpl *)iface; - - ULONG i; - HRESULT hr = S_OK; - LPITEMIDLIST temp; - - TRACE("(%p)->(%d,%p, %p)\n",This,celt,rgelt,pceltFetched); - -/* It is valid to leave pceltFetched NULL when celt is 1. Some of explorer's - * subsystems actually use it (and so may a third party browser) - */ - if(pceltFetched) - *pceltFetched = 0; - - *rgelt=0; - - if(celt > 1 && !pceltFetched) - { return E_INVALIDARG; - } - - if(celt > 0 && !This->mpCurrent) - { return S_FALSE; - } - - for(i = 0; i < celt; i++) - { if(!(This->mpCurrent)) - break; - - temp = ILClone(This->mpCurrent->pidl); - rgelt[i] = temp; - This->mpCurrent = This->mpCurrent->pNext; - } - if(pceltFetched) - { *pceltFetched = i; - } - - return hr; -} - -/************************************************************************** -* IEnumIDList_fnSkip -*/ -static HRESULT WINAPI IEnumIDList_fnSkip( - IEnumIDList * iface,ULONG celt) -{ - IEnumIDListImpl *This = (IEnumIDListImpl *)iface; - - DWORD dwIndex; - HRESULT hr = S_OK; - - TRACE("(%p)->(%u)\n",This,celt); - - for(dwIndex = 0; dwIndex < celt; dwIndex++) - { if(!This->mpCurrent) - { hr = S_FALSE; - break; - } - This->mpCurrent = This->mpCurrent->pNext; - } - return hr; -} -/************************************************************************** -* IEnumIDList_fnReset -*/ -static HRESULT WINAPI IEnumIDList_fnReset( - IEnumIDList * iface) -{ - IEnumIDListImpl *This = (IEnumIDListImpl *)iface; - - TRACE("(%p)\n",This); - This->mpCurrent = This->mpFirst; - return S_OK; -} -/************************************************************************** -* IEnumIDList_fnClone -*/ -static HRESULT WINAPI IEnumIDList_fnClone( - IEnumIDList * iface,LPENUMIDLIST * ppenum) -{ - IEnumIDListImpl *This = (IEnumIDListImpl *)iface; - - TRACE("(%p)->() to (%p)->() E_NOTIMPL\n",This,ppenum); - return E_NOTIMPL; -} - -/************************************************************************** - * IEnumIDList_fnVTable - */ -static const IEnumIDListVtbl eidlvt = -{ - IEnumIDList_fnQueryInterface, - IEnumIDList_fnAddRef, - IEnumIDList_fnRelease, - IEnumIDList_fnNext, - IEnumIDList_fnSkip, - IEnumIDList_fnReset, - IEnumIDList_fnClone, -}; diff --git a/reactos/dll/win32/shell32/extracticon.c b/reactos/dll/win32/shell32/extracticon.c deleted file mode 100644 index 576d46195b2..00000000000 --- a/reactos/dll/win32/shell32/extracticon.c +++ /dev/null @@ -1,546 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS Registry namespace extension - * FILE: dll/win32/shell32/extracticon.c - * PURPOSE: Icon extraction - * - * PROGRAMMERS: Hervé Poussineau (hpoussin@reactos.org) - */ - -#include - -#define CONST_VTABLE - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -struct IconLocation -{ - LPWSTR file; - UINT index; -}; - -struct IconExtraction -{ - LONG ref; - IDefaultExtractIconInit defaultExtractIconInitImpl; - IExtractIconW extractIconWImpl; - IExtractIconA extractIconAImpl; - IPersistFile persistFileImpl; - - UINT flags; - struct IconLocation defaultIcon; - struct IconLocation normalIcon; - struct IconLocation openIcon; - struct IconLocation shortcutIcon; -}; - -static VOID -DuplicateString( - LPCWSTR Source, - LPWSTR *Destination) -{ - SIZE_T cb; - - if (*Destination) - CoTaskMemFree(*Destination); - - cb = (wcslen(Source) + 1) * sizeof(WCHAR); - *Destination = CoTaskMemAlloc(cb); - if (!*Destination) - return; - CopyMemory(*Destination, Source, cb); -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_DefaultExtractIconInit_QueryInterface( - IDefaultExtractIconInit *This, - REFIID riid, - void **ppvObject) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, defaultExtractIconInitImpl); - - TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppvObject); - - if (!ppvObject) - return E_POINTER; - - if (IsEqualIID(riid, &IID_IUnknown)) - *ppvObject = &s->defaultExtractIconInitImpl; - else if (IsEqualIID(riid, &IID_IDefaultExtractIconInit)) - *ppvObject = &s->defaultExtractIconInitImpl; - else if (IsEqualIID(riid, &IID_IExtractIconW)) - *ppvObject = &s->extractIconWImpl; - else if (IsEqualIID(riid, &IID_IExtractIconA)) - *ppvObject = &s->extractIconAImpl; - else if (IsEqualIID(riid, &IID_IPersist)) - *ppvObject = &s->persistFileImpl; - else if (IsEqualIID(riid, &IID_IPersistFile)) - *ppvObject = &s->persistFileImpl; - else - { - *ppvObject = NULL; - return E_NOINTERFACE; - } - - IUnknown_AddRef(This); - return S_OK; -} - -static ULONG STDMETHODCALLTYPE -IconExtraction_DefaultExtractIconInit_AddRef( - IDefaultExtractIconInit *This) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, defaultExtractIconInitImpl); - ULONG refCount = InterlockedIncrement(&s->ref); - TRACE("(%p)\n", This); - return refCount; -} - -static ULONG STDMETHODCALLTYPE -IconExtraction_DefaultExtractIconInit_Release( - IDefaultExtractIconInit *This) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, defaultExtractIconInitImpl); - ULONG refCount; - - TRACE("(%p)\n", This); - - refCount = InterlockedDecrement(&s->ref); - if (refCount == 0) - { - if (s->defaultIcon.file) CoTaskMemFree(s->defaultIcon.file); - if (s->normalIcon.file) CoTaskMemFree(s->normalIcon.file); - if (s->openIcon.file) CoTaskMemFree(s->openIcon.file); - if (s->shortcutIcon.file) CoTaskMemFree(s->shortcutIcon.file); - CoTaskMemFree(s); - } - - return refCount; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_DefaultExtractIconInit_SetDefaultIcon( - IDefaultExtractIconInit *This, - LPCWSTR pszFile, - int iIcon) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, defaultExtractIconInitImpl); - - TRACE("(%p, %s, %d)\n", This, debugstr_w(pszFile), iIcon); - - DuplicateString(pszFile, &s->defaultIcon.file); - if (!s->defaultIcon.file) - return E_OUTOFMEMORY; - s->defaultIcon.index = iIcon; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_DefaultExtractIconInit_SetFlags( - IDefaultExtractIconInit *This, - UINT uFlags) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, defaultExtractIconInitImpl); - - TRACE("(%p, 0x%x)\n", This, uFlags); - - s->flags = uFlags; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_DefaultExtractIconInit_SetKey( - IDefaultExtractIconInit *This, - HKEY hkey) -{ - FIXME("(%p, %p)\n", This, hkey); - UNIMPLEMENTED; - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_DefaultExtractIconInit_SetNormalIcon( - IDefaultExtractIconInit *This, - LPCWSTR pszFile, - int iIcon) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, defaultExtractIconInitImpl); - - TRACE("(%p, %s, %d)\n", This, debugstr_w(pszFile), iIcon); - - DuplicateString(pszFile, &s->normalIcon.file); - if (!s->normalIcon.file) - return E_OUTOFMEMORY; - s->normalIcon.index = iIcon; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_DefaultExtractIconInit_SetOpenIcon( - IDefaultExtractIconInit *This, - LPCWSTR pszFile, - int iIcon) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, defaultExtractIconInitImpl); - - TRACE("(%p, %s, %d)\n", This, debugstr_w(pszFile), iIcon); - - DuplicateString(pszFile, &s->openIcon.file); - if (!s->openIcon.file) - return E_OUTOFMEMORY; - s->openIcon.index = iIcon; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_DefaultExtractIconInit_SetShortcutIcon( - IDefaultExtractIconInit *This, - LPCWSTR pszFile, - int iIcon) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, defaultExtractIconInitImpl); - - TRACE("(%p, %s, %d)\n", This, debugstr_w(pszFile), iIcon); - - DuplicateString(pszFile, &s->shortcutIcon.file); - if (!s->shortcutIcon.file) - return E_OUTOFMEMORY; - s->shortcutIcon.index = iIcon; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_ExtractIconW_QueryInterface( - IExtractIconW *This, - REFIID riid, - void **ppvObject) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, extractIconWImpl); - return IconExtraction_DefaultExtractIconInit_QueryInterface(&s->defaultExtractIconInitImpl, riid, ppvObject); -} - -static ULONG STDMETHODCALLTYPE -IconExtraction_ExtractIconW_AddRef( - IExtractIconW *This) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, extractIconWImpl); - return IconExtraction_DefaultExtractIconInit_AddRef(&s->defaultExtractIconInitImpl); -} - -static ULONG STDMETHODCALLTYPE -IconExtraction_ExtractIconW_Release( - IExtractIconW *This) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, extractIconWImpl); - return IconExtraction_DefaultExtractIconInit_Release(&s->defaultExtractIconInitImpl); -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_ExtractIconW_GetIconLocation( - IExtractIconW *This, - UINT uFlags, - LPWSTR szIconFile, - UINT cchMax, - int *piIndex, - UINT *pwFlags) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, extractIconWImpl); - const struct IconLocation *icon = NULL; - SIZE_T cb; - - TRACE("(%p, 0x%x, %s, 0x%x, %p, %p)\n", This, uFlags, debugstr_w(szIconFile), cchMax, piIndex, pwFlags); - - if (!piIndex || !pwFlags) - return E_POINTER; - - if (uFlags & GIL_DEFAULTICON) - icon = s->defaultIcon.file ? &s->defaultIcon : &s->normalIcon; - else if (uFlags & GIL_FORSHORTCUT) - icon = s->shortcutIcon.file ? &s->shortcutIcon : &s->normalIcon; - else if (uFlags & GIL_OPENICON) - icon = s->openIcon.file ? &s->openIcon : &s->normalIcon; - else - icon = &s->normalIcon; - - if (!icon->file) - return E_FAIL; - - cb = wcslen(icon->file) + 1; - if (cchMax < (UINT)cb) - return E_FAIL; - CopyMemory(szIconFile, icon->file, cb * sizeof(WCHAR)); - *piIndex = icon->index; - *pwFlags = s->flags; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_ExtractIconW_Extract( - IExtractIconW *This, - LPCWSTR pszFile, - UINT nIconIndex, - HICON *phiconLarge, - HICON *phiconSmall, - UINT nIconSize) -{ - TRACE("(%p, %s, %u, %p, %p, %u)\n", This, debugstr_w(pszFile), - nIconIndex, phiconLarge, phiconSmall, nIconSize); - - /* Nothing to do, ExtractIconW::GetIconLocation should be enough */ - return S_FALSE; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_ExtractIconA_QueryInterface( - IExtractIconA *This, - REFIID riid, - void **ppvObject) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, extractIconAImpl); - return IconExtraction_DefaultExtractIconInit_QueryInterface(&s->defaultExtractIconInitImpl, riid, ppvObject); -} - -static ULONG STDMETHODCALLTYPE -IconExtraction_ExtractIconA_AddRef( - IExtractIconA *This) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, extractIconAImpl); - return IconExtraction_DefaultExtractIconInit_AddRef(&s->defaultExtractIconInitImpl); -} - -static ULONG STDMETHODCALLTYPE -IconExtraction_ExtractIconA_Release( - IExtractIconA *This) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, extractIconAImpl); - return IconExtraction_DefaultExtractIconInit_Release(&s->defaultExtractIconInitImpl); -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_ExtractIconA_GetIconLocation( - IExtractIconA *This, - UINT uFlags, - LPSTR szIconFile, - UINT cchMax, - int *piIndex, - UINT *pwFlags) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, extractIconAImpl); - LPWSTR szIconFileW = NULL; - HRESULT hr; - - if (cchMax > 0) - { - szIconFileW = CoTaskMemAlloc(cchMax * sizeof(WCHAR)); - if (!szIconFileW) - return E_OUTOFMEMORY; - } - - hr = IconExtraction_ExtractIconW_GetIconLocation( - &s->extractIconWImpl, uFlags, szIconFileW, cchMax, piIndex, pwFlags); - if (SUCCEEDED(hr) && cchMax > 0) - if (0 == WideCharToMultiByte(CP_ACP, 0, szIconFileW, cchMax, szIconFile, cchMax, NULL, NULL)) - hr = E_FAIL; - - if (szIconFileW) - CoTaskMemFree(szIconFileW); - return hr; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_ExtractIconA_Extract( - IExtractIconA *This, - LPCSTR pszFile, - UINT nIconIndex, - HICON *phiconLarge, - HICON *phiconSmall, - UINT nIconSize) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, extractIconAImpl); - LPWSTR pszFileW = NULL; - int nLength; - HRESULT hr; - - if (pszFile) - { - nLength = MultiByteToWideChar(CP_ACP, 0, pszFile, -1, NULL, 0); - if (nLength == 0) - return E_FAIL; - pszFileW = CoTaskMemAlloc(nLength * sizeof(WCHAR)); - if (!pszFileW) - return E_OUTOFMEMORY; - if (!MultiByteToWideChar(CP_ACP, 0, pszFile, nLength, pszFileW, nLength)) - { - CoTaskMemFree(pszFileW); - return E_FAIL; - } - } - - hr = IconExtraction_ExtractIconW_Extract( - &s->extractIconWImpl, pszFileW, nIconIndex, phiconLarge, phiconSmall, nIconSize); - - if (pszFileW) - CoTaskMemFree(pszFileW); - return hr; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_PersistFile_QueryInterface( - IPersistFile *This, - REFIID riid, - void **ppvObject) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, persistFileImpl); - return IconExtraction_DefaultExtractIconInit_QueryInterface(&s->defaultExtractIconInitImpl, riid, ppvObject); -} - -static ULONG STDMETHODCALLTYPE -IconExtraction_PersistFile_AddRef( - IPersistFile *This) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, persistFileImpl); - return IconExtraction_DefaultExtractIconInit_AddRef(&s->defaultExtractIconInitImpl); -} - -static ULONG STDMETHODCALLTYPE -IconExtraction_PersistFile_Release( - IPersistFile *This) -{ - struct IconExtraction *s = CONTAINING_RECORD(This, struct IconExtraction, persistFileImpl); - return IconExtraction_DefaultExtractIconInit_Release(&s->defaultExtractIconInitImpl); -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_PersistFile_GetClassID( - IPersistFile *This, - CLSID *pClassID) -{ - TRACE("(%p, %p)\n", This, pClassID); - - if (!pClassID) - return E_POINTER; - - *pClassID = GUID_NULL; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_PersistFile_IsDirty( - IPersistFile *This) -{ - FIXME("(%p)\n", This); - UNIMPLEMENTED; - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_PersistFile_Load( - IPersistFile *This, - LPCOLESTR pszFileName, - DWORD dwMode) -{ - FIXME("(%p, %s, %u)\n", This, debugstr_w(pszFileName), dwMode); - UNIMPLEMENTED; - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_PersistFile_Save( - IPersistFile *This, - LPCOLESTR pszFileName, - BOOL fRemember) -{ - FIXME("(%p, %s, %d)\n", This, debugstr_w(pszFileName), fRemember); - UNIMPLEMENTED; - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_PersistFile_SaveCompleted( - IPersistFile *This, - LPCOLESTR pszFileName) -{ - FIXME("(%p, %s)\n", This, debugstr_w(pszFileName)); - UNIMPLEMENTED; - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE -IconExtraction_PersistFile_GetCurFile( - IPersistFile *This, - LPOLESTR *ppszFileName) -{ - FIXME("(%p, %p)\n", This, ppszFileName); - UNIMPLEMENTED; - return E_NOTIMPL; -} - -static const IDefaultExtractIconInitVtbl IconExtractionDefaultExtractIconInitVtbl = -{ - IconExtraction_DefaultExtractIconInit_QueryInterface, - IconExtraction_DefaultExtractIconInit_AddRef, - IconExtraction_DefaultExtractIconInit_Release, - IconExtraction_DefaultExtractIconInit_SetDefaultIcon, - IconExtraction_DefaultExtractIconInit_SetFlags, - IconExtraction_DefaultExtractIconInit_SetKey, - IconExtraction_DefaultExtractIconInit_SetNormalIcon, - IconExtraction_DefaultExtractIconInit_SetOpenIcon, - IconExtraction_DefaultExtractIconInit_SetShortcutIcon, -}; - -static const IExtractIconWVtbl IconExtractionExtractIconWVtbl = -{ - IconExtraction_ExtractIconW_QueryInterface, - IconExtraction_ExtractIconW_AddRef, - IconExtraction_ExtractIconW_Release, - IconExtraction_ExtractIconW_GetIconLocation, - IconExtraction_ExtractIconW_Extract, -}; - -static const IExtractIconAVtbl IconExtractionExtractIconAVtbl = -{ - IconExtraction_ExtractIconA_QueryInterface, - IconExtraction_ExtractIconA_AddRef, - IconExtraction_ExtractIconA_Release, - IconExtraction_ExtractIconA_GetIconLocation, - IconExtraction_ExtractIconA_Extract, -}; - -static const IPersistFileVtbl IconExtractionPersistFileVtbl = -{ - IconExtraction_PersistFile_QueryInterface, - IconExtraction_PersistFile_AddRef, - IconExtraction_PersistFile_Release, - IconExtraction_PersistFile_GetClassID, - IconExtraction_PersistFile_IsDirty, - IconExtraction_PersistFile_Load, - IconExtraction_PersistFile_Save, - IconExtraction_PersistFile_SaveCompleted, - IconExtraction_PersistFile_GetCurFile, -}; - -HRESULT WINAPI -SHCreateDefaultExtractIcon( - REFIID riid, - void **ppv) -{ - struct IconExtraction *s; - - if (!ppv) - return E_POINTER; - - *ppv = NULL; - - s = CoTaskMemAlloc(sizeof(struct IconExtraction)); - if (!s) - return E_OUTOFMEMORY; - memset(s, 0, sizeof(struct IconExtraction)); - s->defaultExtractIconInitImpl.lpVtbl = (IDefaultExtractIconInitVtbl*)&IconExtractionDefaultExtractIconInitVtbl; - s->extractIconAImpl.lpVtbl = (IExtractIconAVtbl*)&IconExtractionExtractIconAVtbl; - s->extractIconWImpl.lpVtbl = (IExtractIconWVtbl*)&IconExtractionExtractIconWVtbl; - s->persistFileImpl.lpVtbl = (IPersistFileVtbl*)&IconExtractionPersistFileVtbl; - s->ref = 1; - *ppv = &s->defaultExtractIconInitImpl; - - return S_OK; -} diff --git a/reactos/dll/win32/shell32/folder_options.c b/reactos/dll/win32/shell32/folder_options.c deleted file mode 100644 index 3d72018dbd3..00000000000 --- a/reactos/dll/win32/shell32/folder_options.c +++ /dev/null @@ -1,829 +0,0 @@ -/* - * Open With Context Menu extension - * - * Copyright 2007 Johannes Anderwald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - - -WINE_DEFAULT_DEBUG_CHANNEL (fprop); -#define MAX_PROPERTY_SHEET_PAGE (32) - -/// Folder Options: -/// CLASSKEY = HKEY_CLASSES_ROOT\CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF} -/// DefaultIcon = %SystemRoot%\system32\SHELL32.dll,-210 -/// Verbs: Open / RunAs -/// Cmd: rundll32.exe shell32.dll,Options_RunDLL 0 - -/// ShellFolder Attributes: 0x0 - -typedef struct -{ - DWORD cFiles; - DWORD cFolder; - LARGE_INTEGER bSize; - HWND hwndDlg; - WCHAR szFolderPath[MAX_PATH]; -}FOLDER_PROPERTIES_CONTEXT, *PFOLDER_PROPERTIES_CONTEXT; - -typedef struct -{ - WCHAR FileExtension[30]; - WCHAR FileDescription[100]; - WCHAR ClassKey[MAX_PATH]; -}FOLDER_FILE_TYPE_ENTRY, *PFOLDER_FILE_TYPE_ENTRY; - -typedef struct -{ - LPCWSTR szKeyName; - UINT ResourceID; -}FOLDER_VIEW_ENTRY, PFOLDER_VIEW_ENTRY; -/* -static FOLDER_VIEW_ENTRY s_Options[] = -{ - { L"AlwaysShowMenus", IDS_ALWAYSSHOWMENUS }, - { L"AutoCheckSelect", -1 }, - { L"ClassicViewState", -1 }, - { L"DontPrettyPath", -1 }, - { L"Filter", -1 }, - { L"FolderContentsInfoTip", IDS_FOLDERCONTENTSTIP }, - { L"FriendlyTree", -1 }, - { L"Hidden", -1, }, - { L"HideFileExt", IDS_HIDEFILEEXT }, - { L"HideIcons", -1}, - { L"IconsOnly", -1}, - { L"ListviewAlphaSelect", -1}, - { L"ListviewShadow", -1}, - { L"ListviewWatermark", -1}, - { L"MapNetDrvBtn", -1}, - { L"PersistBrowsers", -1}, - { L"SeperateProcess", IDS_SEPERATEPROCESS}, - { L"ServerAdminUI", -1}, - { L"SharingWizardOn", IDS_USESHAREWIZARD}, - { L"ShowCompColor", IDS_COMPCOLOR}, - { L"ShowInfoTip", IDS_SHOWINFOTIP}, - { L"ShowPreviewHandlers", -1}, - { L"ShowSuperHidden", IDS_HIDEOSFILES}, - { L"ShowTypeOverlay", -1}, - { L"Start_ShowMyGames", -1}, - { L"StartMenuInit", -1}, - { L"SuperHidden", -1}, - { L"TypeAhead", -1}, - { L"Webview", -1}, - { NULL, -1} - -}; -*/ - -HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, IDataObject *pDataObj); - -INT_PTR -CALLBACK -FolderOptionsGeneralDlg( - HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam -) -{ - - - - return FALSE; -} - -static -VOID -InitializeFolderOptionsListCtrl(HWND hwndDlg) -{ - RECT clientRect; - LVCOLUMNW col; - WCHAR szName[50]; - HWND hDlgCtrl; - - hDlgCtrl = GetDlgItem(hwndDlg, 14003); - - if (!LoadStringW(shell32_hInstance, IDS_COLUMN_EXTENSION, szName, sizeof(szName) / sizeof(WCHAR))) - szName[0] = 0; - szName[(sizeof(szName)/sizeof(WCHAR))-1] = 0; - - GetClientRect(hDlgCtrl, &clientRect); - ZeroMemory(&col, sizeof(LV_COLUMN)); - col.mask = LVCF_SUBITEM | LVCF_WIDTH | LVCF_FMT; - col.iSubItem = 0; - col.pszText = szName; - col.fmt = LVCFMT_LEFT; - col.cx = (clientRect.right - clientRect.left) - GetSystemMetrics(SM_CXVSCROLL); - (void)SendMessageW(hDlgCtrl, LVM_INSERTCOLUMN, 0, (LPARAM)&col); - - - -} - - -INT_PTR -CALLBACK -FolderOptionsViewDlg( - HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam -) -{ - switch(uMsg) - { - case WM_INITDIALOG: - InitializeFolderOptionsListCtrl(hwndDlg); - return TRUE; - } - - return FALSE; - -} - -VOID -InitializeFileTypesListCtrlColumns(HWND hDlgCtrl) -{ - RECT clientRect; - LVCOLUMNW col; - WCHAR szName[50]; - DWORD dwStyle; - int columnSize = 140; - - - if (!LoadStringW(shell32_hInstance, IDS_COLUMN_EXTENSION, szName, sizeof(szName) / sizeof(WCHAR))) - { - /* default to english */ - wcscpy(szName, L"Extensions"); - } - - /* make sure its null terminated */ - szName[(sizeof(szName)/sizeof(WCHAR))-1] = 0; - - GetClientRect(hDlgCtrl, &clientRect); - ZeroMemory(&col, sizeof(LV_COLUMN)); - columnSize = 140; //FIXME - col.iSubItem = 0; - col.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_FMT; - col.fmt = LVCFMT_FIXED_WIDTH; - col.cx = columnSize | LVCFMT_LEFT; - col.cchTextMax = wcslen(szName); - col.pszText = szName; - (void)SendMessageW(hDlgCtrl, LVM_INSERTCOLUMNW, 0, (LPARAM)&col); - - if (!LoadStringW(shell32_hInstance, IDS_FILE_TYPES, szName, sizeof(szName) / sizeof(WCHAR))) - { - /* default to english */ - wcscpy(szName, L"FileTypes"); - } - - col.iSubItem = 1; - col.cx = clientRect.right - clientRect.left - columnSize; - col.cchTextMax = wcslen(szName); - col.pszText = szName; - (void)SendMessageW(hDlgCtrl, LVM_INSERTCOLUMNW, 1, (LPARAM)&col); - - /* set full select style */ - dwStyle = (DWORD) SendMessage(hDlgCtrl, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); - dwStyle = dwStyle | LVS_EX_FULLROWSELECT; - SendMessage(hDlgCtrl, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dwStyle); - -} - -INT -FindItem(HWND hDlgCtrl, WCHAR * ItemName) -{ - LVFINDINFOW findInfo; - ZeroMemory(&findInfo, sizeof(LVFINDINFOW)); - - findInfo.flags = LVFI_STRING; - findInfo.psz = ItemName; - return ListView_FindItem(hDlgCtrl, 0, &findInfo); -} - -VOID -InsertFileType(HWND hDlgCtrl, WCHAR * szName, PINT iItem, WCHAR * szFile) -{ - PFOLDER_FILE_TYPE_ENTRY Entry; - HKEY hKey; - LVITEMW lvItem; - DWORD dwSize; - - if (szName[0] != L'.') - { - /* FIXME handle URL protocol handlers */ - return; - } - - /* allocate file type entry */ - Entry = (PFOLDER_FILE_TYPE_ENTRY)HeapAlloc(GetProcessHeap(), 0, sizeof(FOLDER_FILE_TYPE_ENTRY)); - - if (!Entry) - return; - - /* open key */ - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, szName, 0, KEY_READ, &hKey) != ERROR_SUCCESS) - return; - - /* FIXME check for duplicates */ - - /* query for the default key */ - dwSize = sizeof(Entry->ClassKey); - if (RegQueryValueExW(hKey, NULL, NULL, NULL, (LPBYTE)Entry->ClassKey, &dwSize) != ERROR_SUCCESS) - { - /* no link available */ - Entry->ClassKey[0] = 0; - } - - if (Entry->ClassKey[0]) - { - HKEY hTemp; - /* try open linked key */ - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, Entry->ClassKey, 0, KEY_READ, &hTemp) == ERROR_SUCCESS) - { - /* use linked key */ - RegCloseKey(hKey); - hKey = hTemp; - } - } - - /* read friendly type name */ - if (RegLoadMUIStringW(hKey, L"FriendlyTypeName", Entry->FileDescription, sizeof(Entry->FileDescription), NULL, 0, NULL) != ERROR_SUCCESS) - { - /* read file description */ - dwSize = sizeof(Entry->FileDescription); - Entry->FileDescription[0] = 0; - - /* read default key */ - RegQueryValueExW(hKey, NULL, NULL, NULL, (LPBYTE)Entry->FileDescription, &dwSize); - } - - /* close key */ - RegCloseKey(hKey); - - /* convert extension to upper case */ - wcscpy(Entry->FileExtension, szName); - _wcsupr(Entry->FileExtension); - - if (!Entry->FileDescription[0]) - { - /* construct default 'FileExtensionFile' */ - wcscpy(Entry->FileDescription, &Entry->FileExtension[1]); - wcscat(Entry->FileDescription, L" "); - wcscat(Entry->FileDescription, szFile); - } - - ZeroMemory(&lvItem, sizeof(LVITEMW)); - lvItem.mask = LVIF_TEXT | LVIF_PARAM; - lvItem.iSubItem = 0; - lvItem.pszText = &Entry->FileExtension[1]; - lvItem.iItem = *iItem; - lvItem.lParam = (LPARAM)Entry; - (void)SendMessageW(hDlgCtrl, LVM_INSERTITEMW, 0, (LPARAM)&lvItem); - - ZeroMemory(&lvItem, sizeof(LVITEMW)); - lvItem.mask = LVIF_TEXT; - lvItem.pszText = Entry->FileDescription; - lvItem.iItem = *iItem; - lvItem.iSubItem = 1; - - (void)SendMessageW(hDlgCtrl, LVM_SETITEMW, 0, (LPARAM)&lvItem); - (*iItem)++; -} - -int -CALLBACK -ListViewCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) -{ - PFOLDER_FILE_TYPE_ENTRY Entry1, Entry2; - - Entry1 = (PFOLDER_FILE_TYPE_ENTRY)lParam1; - Entry2 = (PFOLDER_FILE_TYPE_ENTRY)lParam2; - - return wcsicmp(Entry1->FileExtension, Entry2->FileExtension); -} - -BOOL -InitializeFileTypesListCtrl(HWND hwndDlg) -{ - HWND hDlgCtrl; - DWORD dwIndex = 0; - WCHAR szName[50]; - WCHAR szFile[100]; - DWORD dwName; - LVITEMW lvItem; - INT iItem = 0; - - hDlgCtrl = GetDlgItem(hwndDlg, 14000); - InitializeFileTypesListCtrlColumns(hDlgCtrl); - - szFile[0] = 0; - if (!LoadStringW(shell32_hInstance, IDS_SHV_COLUMN1, szFile, sizeof(szFile) / sizeof(WCHAR))) - { - /* default to english */ - wcscpy(szFile, L"File"); - } - szFile[(sizeof(szFile)/sizeof(WCHAR))-1] = 0; - - dwName = sizeof(szName) / sizeof(WCHAR); - - while(RegEnumKeyExW(HKEY_CLASSES_ROOT, dwIndex++, szName, &dwName, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) - { - InsertFileType(hDlgCtrl, szName, &iItem, szFile); - dwName = sizeof(szName) / sizeof(WCHAR); - } - - /* sort list */ - ListView_SortItems(hDlgCtrl, ListViewCompareProc, NULL); - - /* select first item */ - ZeroMemory(&lvItem, sizeof(LVITEMW)); - lvItem.mask = LVIF_STATE; - lvItem.stateMask = (UINT)-1; - lvItem.state = LVIS_FOCUSED|LVIS_SELECTED; - lvItem.iItem = 0; - (void)SendMessageW(hDlgCtrl, LVM_SETITEMW, 0, (LPARAM)&lvItem); - - return TRUE; -} - -PFOLDER_FILE_TYPE_ENTRY -FindSelectedItem( - HWND hDlgCtrl) -{ - UINT Count, Index; - LVITEMW lvItem; - - Count = ListView_GetItemCount(hDlgCtrl); - - for (Index = 0; Index < Count; Index++) - { - ZeroMemory(&lvItem, sizeof(LVITEM)); - lvItem.mask = LVIF_PARAM | LVIF_STATE; - lvItem.iItem = Index; - lvItem.stateMask = (UINT)-1; - - if (ListView_GetItem(hDlgCtrl, &lvItem)) - { - if (lvItem.state & LVIS_SELECTED) - return (PFOLDER_FILE_TYPE_ENTRY)lvItem.lParam; - } - } - - return NULL; -} - - -INT_PTR -CALLBACK -FolderOptionsFileTypesDlg( - HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - LPNMLISTVIEW lppl; - LVITEMW lvItem; - WCHAR Buffer[255], FormatBuffer[255]; - PFOLDER_FILE_TYPE_ENTRY pItem; - OPENASINFO Info; - - switch(uMsg) - { - case WM_INITDIALOG: - InitializeFileTypesListCtrl(hwndDlg); - return TRUE; - case WM_COMMAND: - switch(LOWORD(wParam)) - { - case 14006: - pItem = FindSelectedItem(GetDlgItem(hwndDlg, 14000)); - if (pItem) - { - Info.oaifInFlags = OAIF_ALLOW_REGISTRATION | OAIF_REGISTER_EXT; - Info.pcszClass = pItem->FileExtension; - SHOpenWithDialog(hwndDlg, &Info); - } - break; - } - - break; - case WM_NOTIFY: - lppl = (LPNMLISTVIEW) lParam; - - if (lppl->hdr.code == LVN_ITEMCHANGING) - { - ZeroMemory(&lvItem, sizeof(LVITEM)); - lvItem.mask = LVIF_PARAM; - lvItem.iItem = lppl->iItem; - if (!SendMessageW(lppl->hdr.hwndFrom, LVM_GETITEMW, 0, (LPARAM)&lvItem)) - return TRUE; - - pItem = (PFOLDER_FILE_TYPE_ENTRY)lvItem.lParam; - if (!pItem) - return TRUE; - - if (!(lppl->uOldState & LVIS_FOCUSED) && (lppl->uNewState & LVIS_FOCUSED)) - { - /* new focused item */ - if (!LoadStringW(shell32_hInstance, IDS_FILE_DETAILS, FormatBuffer, sizeof(FormatBuffer) / sizeof(WCHAR))) - { - /* use default english format string */ - wcscpy(FormatBuffer, L"Details for '%s' extension"); - } - - /* format buffer */ - swprintf(Buffer, FormatBuffer, &pItem->FileExtension[1]); - /* update dialog */ - SendDlgItemMessageW(hwndDlg, 14003, WM_SETTEXT, 0, (LPARAM)Buffer); - - if (!LoadStringW(shell32_hInstance, IDS_FILE_DETAILSADV, FormatBuffer, sizeof(FormatBuffer) / sizeof(WCHAR))) - { - /* use default english format string */ - wcscpy(FormatBuffer, L"Files with extension '%s' are of type '%s'. To change settings that affect all '%s' files, click Advanced."); - } - /* format buffer */ - swprintf(Buffer, FormatBuffer, &pItem->FileExtension[1], &pItem->FileDescription[0], &pItem->FileDescription[0]); - /* update dialog */ - SendDlgItemMessageW(hwndDlg, 14007, WM_SETTEXT, 0, (LPARAM)Buffer); - } - } - break; - } - - return FALSE; -} - - -VOID -ShowFolderOptionsDialog(HWND hWnd, HINSTANCE hInst) -{ - PROPSHEETHEADERW pinfo; - HPROPSHEETPAGE hppages[3]; - HPROPSHEETPAGE hpage; - UINT num_pages = 0; - WCHAR szOptions[100]; - - hpage = SH_CreatePropertySheetPage("FOLDER_OPTIONS_GENERAL_DLG", FolderOptionsGeneralDlg, 0, NULL); - if (hpage) - hppages[num_pages++] = hpage; - - hpage = SH_CreatePropertySheetPage("FOLDER_OPTIONS_VIEW_DLG", FolderOptionsViewDlg, 0, NULL); - if (hpage) - hppages[num_pages++] = hpage; - - hpage = SH_CreatePropertySheetPage("FOLDER_OPTIONS_FILETYPES_DLG", FolderOptionsFileTypesDlg, 0, NULL); - if (hpage) - hppages[num_pages++] = hpage; - - szOptions[0] = L'\0'; - LoadStringW(shell32_hInstance, IDS_FOLDER_OPTIONS, szOptions, sizeof(szOptions) / sizeof(WCHAR)); - szOptions[(sizeof(szOptions)/sizeof(WCHAR))-1] = L'\0'; - - memset(&pinfo, 0x0, sizeof(PROPSHEETHEADERW)); - pinfo.dwSize = sizeof(PROPSHEETHEADERW); - pinfo.dwFlags = PSH_NOCONTEXTHELP; - pinfo.nPages = num_pages; - pinfo.u3.phpage = hppages; - pinfo.pszCaption = szOptions; - - PropertySheetW(&pinfo); -} - -VOID -Options_RunDLLCommon(HWND hWnd, HINSTANCE hInst, int fOptions, DWORD nCmdShow) -{ - switch(fOptions) - { - case 0: - ShowFolderOptionsDialog(hWnd, hInst); - break; - case 1: - // show taskbar options dialog - FIXME("notify explorer to show taskbar options dialog"); - //PostMessage(GetShellWindow(), WM_USER+22, fOptions, 0); - break; - default: - FIXME("unrecognized options id %d\n", fOptions); - } -} - -/************************************************************************* - * Options_RunDLL (SHELL32.@) - */ -VOID WINAPI Options_RunDLL(HWND hWnd, HINSTANCE hInst, LPCSTR cmd, DWORD nCmdShow) -{ - Options_RunDLLCommon(hWnd, hInst, StrToIntA(cmd), nCmdShow); -} -/************************************************************************* - * Options_RunDLLA (SHELL32.@) - */ -VOID WINAPI Options_RunDLLA(HWND hWnd, HINSTANCE hInst, LPCSTR cmd, DWORD nCmdShow) -{ - Options_RunDLLCommon(hWnd, hInst, StrToIntA(cmd), nCmdShow); -} - -/************************************************************************* - * Options_RunDLLW (SHELL32.@) - */ -VOID WINAPI Options_RunDLLW(HWND hWnd, HINSTANCE hInst, LPCWSTR cmd, DWORD nCmdShow) -{ - Options_RunDLLCommon(hWnd, hInst, StrToIntW(cmd), nCmdShow); -} - -static -DWORD WINAPI -CountFolderAndFiles(LPVOID lParam) -{ - WIN32_FIND_DATAW FindData; - HANDLE hFile; - UINT Length; - LPWSTR pOffset; - BOOL ret; - PFOLDER_PROPERTIES_CONTEXT pContext = (PFOLDER_PROPERTIES_CONTEXT) lParam; - - pOffset = PathAddBackslashW(pContext->szFolderPath); - if (!pOffset) - return 0; - - Length = pOffset - pContext->szFolderPath; - - wcscpy(pOffset, L"*.*"); - hFile = FindFirstFileW(pContext->szFolderPath, &FindData); - if (hFile == INVALID_HANDLE_VALUE) - return 0; - - do - { - ret = FindNextFileW(hFile, &FindData); - if (ret) - { - if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - if (FindData.cFileName[0] == L'.' && FindData.cFileName[1] == L'.' && - FindData.cFileName[2] == L'\0') - continue; - - pContext->cFolder++; - wcscpy(pOffset, FindData.cFileName); - CountFolderAndFiles((LPVOID)pContext); - pOffset[0] = L'\0'; - } - else - { - pContext->cFiles++; - pContext->bSize.u.LowPart += FindData.nFileSizeLow; - pContext->bSize.u.HighPart += FindData.nFileSizeHigh; - } - } - else if (GetLastError() == ERROR_NO_MORE_FILES) - { - break; - } - }while(1); - - FindClose(hFile); - return 1; -} - -static -VOID -InitializeFolderGeneralDlg(PFOLDER_PROPERTIES_CONTEXT pContext) -{ - LPWSTR pFolderName; - WIN32_FILE_ATTRIBUTE_DATA FolderAttribute; - FILETIME ft; - SYSTEMTIME dt; - WCHAR szBuffer[MAX_PATH+5]; - WCHAR szFormat[30] = {0}; - - static const WCHAR wFormat[] = {'%','0','2','d','/','%','0','2','d','/','%','0','4','d',' ',' ','%','0','2','d',':','%','0','2','u',0}; - - pFolderName = wcsrchr(pContext->szFolderPath, L'\\'); - if (!pFolderName) - return; - - /* set folder name */ - SendDlgItemMessageW(pContext->hwndDlg, 14001, WM_SETTEXT, 0, (LPARAM) (pFolderName + 1)); - /* set folder location */ - pFolderName[0] = L'\0'; - if (wcslen(pContext->szFolderPath) == 2) - { - /* folder is located at root */ - WCHAR szDrive[4] = {L'C',L':',L'\\',L'\0'}; - szDrive[0] = pContext->szFolderPath[0]; - SendDlgItemMessageW(pContext->hwndDlg, 14007, WM_SETTEXT, 0, (LPARAM) szDrive); - } - else - { - SendDlgItemMessageW(pContext->hwndDlg, 14007, WM_SETTEXT, 0, (LPARAM) pContext->szFolderPath); - } - pFolderName[0] = L'\\'; - /* get folder properties */ - if (GetFileAttributesExW(pContext->szFolderPath, GetFileExInfoStandard, (LPVOID)&FolderAttribute)) - { - if (FolderAttribute.dwFileAttributes & FILE_ATTRIBUTE_READONLY) - { - /* check readonly button */ - SendDlgItemMessage(pContext->hwndDlg, 14021, BM_SETCHECK, BST_CHECKED, 0); - } - - if (FolderAttribute.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) - { - /* check hidden button */ - SendDlgItemMessage(pContext->hwndDlg, 14022, BM_SETCHECK, BST_CHECKED, 0); - } - - if (FileTimeToLocalFileTime(&FolderAttribute.ftCreationTime, &ft)) - { - FileTimeToSystemTime(&ft, &dt); - swprintf (szBuffer, wFormat, dt.wDay, dt.wMonth, dt.wYear, dt.wHour, dt.wMinute); - SendDlgItemMessageW(pContext->hwndDlg, 14015, WM_SETTEXT, 0, (LPARAM) szBuffer); - } - } - /* now enumerate enumerate contents */ - wcscpy(szBuffer, pContext->szFolderPath); - CountFolderAndFiles((LPVOID)pContext); - wcscpy(pContext->szFolderPath, szBuffer); - /* set folder details */ - LoadStringW(shell32_hInstance, IDS_FILE_FOLDER, szFormat, sizeof(szFormat)/sizeof(WCHAR)); - szFormat[(sizeof(szFormat)/sizeof(WCHAR))-1] = L'\0'; - swprintf(szBuffer, szFormat, pContext->cFiles, pContext->cFolder); - SendDlgItemMessageW(pContext->hwndDlg, 14011, WM_SETTEXT, 0, (LPARAM) szBuffer); - - if (StrFormatByteSizeW(pContext->bSize.QuadPart, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - /* store folder size */ - SendDlgItemMessageW(pContext->hwndDlg, 14009, WM_SETTEXT, 0, (LPARAM) szBuffer); - } -} - - -INT_PTR -CALLBACK -FolderPropertiesGeneralDlg( - HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam -) -{ - LPPROPSHEETPAGEW ppsp; - PFOLDER_PROPERTIES_CONTEXT pContext; - HICON hIcon; - WIN32_FILE_ATTRIBUTE_DATA FolderAttribute; - LONG res; - LPPSHNOTIFY lppsn; - DWORD Attribute; - - switch(uMsg) - { - case WM_INITDIALOG: - ppsp = (LPPROPSHEETPAGEW)lParam; - if (ppsp == NULL) - break; - hIcon = LoadIconW(shell32_hInstance, MAKEINTRESOURCEW(IDI_SHELL_FOLDER_OPEN)); - if (hIcon) - SendDlgItemMessageW(hwndDlg, 14000, STM_SETICON, (WPARAM)hIcon, 0); - - pContext = SHAlloc(sizeof(FOLDER_PROPERTIES_CONTEXT)); - if (pContext) - { - ZeroMemory(pContext, sizeof(FOLDER_PROPERTIES_CONTEXT)); - pContext->hwndDlg = hwndDlg; - wcscpy(pContext->szFolderPath, (LPWSTR)ppsp->lParam); - SetWindowLongPtr(hwndDlg, DWL_USER, (LONG_PTR)pContext); - InitializeFolderGeneralDlg(pContext); - } - return TRUE; - case WM_COMMAND: - if (HIWORD(wParam) == BN_CLICKED) - { - PropSheet_Changed(GetParent(hwndDlg), hwndDlg); - } - break; - case WM_DESTROY: - pContext = (PFOLDER_PROPERTIES_CONTEXT)GetWindowLongPtr(hwndDlg, DWL_USER); - SHFree((LPVOID)pContext); - break; - case WM_NOTIFY: - pContext = (PFOLDER_PROPERTIES_CONTEXT)GetWindowLongPtr(hwndDlg, DWL_USER); - lppsn = (LPPSHNOTIFY) lParam; - if (lppsn->hdr.code == PSN_APPLY) - { - if (GetFileAttributesExW(pContext->szFolderPath, GetFileExInfoStandard, (LPVOID)&FolderAttribute)) - { - res = SendDlgItemMessageW(hwndDlg, 14021, BM_GETCHECK, 0, 0); - if (res == BST_CHECKED) - FolderAttribute.dwFileAttributes |= FILE_ATTRIBUTE_READONLY; - else - FolderAttribute.dwFileAttributes &= (~FILE_ATTRIBUTE_READONLY); - - res = SendDlgItemMessageW(hwndDlg, 14022, BM_GETCHECK, 0, 0); - if (res == BST_CHECKED) - FolderAttribute.dwFileAttributes |= FILE_ATTRIBUTE_HIDDEN; - else - FolderAttribute.dwFileAttributes &= (~FILE_ATTRIBUTE_HIDDEN); - - Attribute = FolderAttribute.dwFileAttributes & -(FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY); - - SetFileAttributesW(pContext->szFolderPath, Attribute); - } - SetWindowLongPtr( hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR ); - return TRUE; - } - break; - } - return FALSE; -} - -static -BOOL -CALLBACK -FolderAddPropSheetPageProc(HPROPSHEETPAGE hpage, LPARAM lParam) -{ - PROPSHEETHEADERW *ppsh = (PROPSHEETHEADERW *)lParam; - if (ppsh != NULL && ppsh->nPages < MAX_PROPERTY_SHEET_PAGE) - { - ppsh->u3.phpage[ppsh->nPages++] = hpage; - return TRUE; - } - return FALSE; -} - -BOOL -SH_ShowFolderProperties(LPWSTR pwszFolder, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST * apidl) -{ - HPROPSHEETPAGE hppages[MAX_PROPERTY_SHEET_PAGE]; - HPROPSHEETPAGE hpage; - PROPSHEETHEADERW psh; - BOOL ret; - WCHAR szName[MAX_PATH] = {0}; - HPSXA hpsx = NULL; - LPWSTR pFolderName; - IDataObject * pDataObj = NULL; - - if (!PathIsDirectoryW(pwszFolder)) - return FALSE; - - pFolderName = wcsrchr(pwszFolder, L'\\'); - if (!pFolderName) - return FALSE; - - wcscpy(szName, pFolderName + 1); - - hpage = SH_CreatePropertySheetPage("SHELL_FOLDER_GENERAL_DLG", FolderPropertiesGeneralDlg, (LPARAM)pwszFolder, NULL); - if (!hpage) - return FALSE; - - ZeroMemory(&psh, sizeof(PROPSHEETHEADERW)); - hppages[psh.nPages] = hpage; - psh.nPages++; - psh.dwSize = sizeof(PROPSHEETHEADERW); - psh.dwFlags = PSH_PROPTITLE; - psh.hwndParent = NULL; - psh.u3.phpage = hppages; - psh.pszCaption = szName; - - - if (SHCreateDataObject(pidlFolder, 1, apidl, NULL, &IID_IDataObject, (void**)&pDataObj) == S_OK) - { - hpsx = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, L"Directory", MAX_PROPERTY_SHEET_PAGE-1, pDataObj); - if (hpsx) - { - SHAddFromPropSheetExtArray(hpsx, - (LPFNADDPROPSHEETPAGE)FolderAddPropSheetPageProc, - (LPARAM)&psh); - } - } - - ret = PropertySheetW(&psh); - if (pDataObj) - IDataObject_Release(pDataObj); - - if (hpsx) - SHDestroyPropSheetExtArray(hpsx); - - if (ret < 0) - return FALSE; - else - return TRUE; -} - - diff --git a/reactos/dll/win32/shell32/folders.c b/reactos/dll/win32/shell32/folders.c deleted file mode 100644 index d1a6c672b51..00000000000 --- a/reactos/dll/win32/shell32/folders.c +++ /dev/null @@ -1,387 +0,0 @@ -/* - * Copyright 1997 Marcus Meissner - * Copyright 1998 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -WCHAR swShell32Name[MAX_PATH]; - -DWORD NumIconOverlayHandlers = 0; -IShellIconOverlayIdentifier ** Handlers = NULL; - -static HRESULT getIconLocationForFolder(LPCITEMIDLIST pidl, UINT uFlags, - LPWSTR szIconFile, UINT cchMax, int *piIndex, UINT *pwFlags) -{ - int icon_idx; - WCHAR wszPath[MAX_PATH]; - WCHAR wszCLSIDValue[CHARS_IN_GUID]; - static const WCHAR shellClassInfo[] = { '.','S','h','e','l','l','C','l','a','s','s','I','n','f','o',0 }; - static const WCHAR iconFile[] = { 'I','c','o','n','F','i','l','e',0 }; - static const WCHAR clsid[] = { 'C','L','S','I','D',0 }; - static const WCHAR clsid2[] = { 'C','L','S','I','D','2',0 }; - static const WCHAR iconIndex[] = { 'I','c','o','n','I','n','d','e','x',0 }; - - if (SHELL32_GetCustomFolderAttribute(pidl, shellClassInfo, iconFile, - wszPath, MAX_PATH)) - { - WCHAR wszIconIndex[10]; - SHELL32_GetCustomFolderAttribute(pidl, shellClassInfo, iconIndex, - wszIconIndex, 10); - *piIndex = _wtoi(wszIconIndex); - } - else if (SHELL32_GetCustomFolderAttribute(pidl, shellClassInfo, clsid, - wszCLSIDValue, CHARS_IN_GUID) && - HCR_GetDefaultIconW(wszCLSIDValue, szIconFile, cchMax, &icon_idx)) - { - *piIndex = icon_idx; - } - else if (SHELL32_GetCustomFolderAttribute(pidl, shellClassInfo, clsid2, - wszCLSIDValue, CHARS_IN_GUID) && - HCR_GetDefaultIconW(wszCLSIDValue, szIconFile, cchMax, &icon_idx)) - { - *piIndex = icon_idx; - } - else - { - static const WCHAR folder[] = { 'F','o','l','d','e','r',0 }; - - if (!HCR_GetDefaultIconW(folder, szIconFile, cchMax, &icon_idx)) - { - lstrcpynW(szIconFile, swShell32Name, cchMax); - icon_idx = -IDI_SHELL_FOLDER; - } - - if (uFlags & GIL_OPENICON) - *piIndex = icon_idx<0? icon_idx-1: icon_idx+1; - else - *piIndex = icon_idx; - } - - return S_OK; -} - -void InitIconOverlays(void) -{ - HKEY hKey; - DWORD dwIndex, dwResult, dwSize; - WCHAR szName[MAX_PATH]; - WCHAR szValue[100]; - CLSID clsid; - IShellIconOverlayIdentifier * Overlay; - - if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ShellIconOverlayIdentifiers",0, KEY_READ, &hKey) != ERROR_SUCCESS) - return; - - if (RegQueryInfoKeyW(hKey, NULL, NULL, NULL, &dwResult, NULL, NULL, NULL, NULL, NULL, NULL, NULL) != ERROR_SUCCESS) - { - RegCloseKey(hKey); - return; - } - - Handlers = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwResult * sizeof(IShellIconOverlayIdentifier*)); - if (!Handlers) - { - RegCloseKey(hKey); - return; - } - - dwIndex = 0; - - CoInitialize(0); - - do - { - dwSize = sizeof(szName) / sizeof(WCHAR); - dwResult = RegEnumKeyExW(hKey, dwIndex, szName, &dwSize, NULL, NULL, NULL, NULL); - - if (dwResult == ERROR_NO_MORE_ITEMS) - break; - - if (dwResult == ERROR_SUCCESS) - { - dwSize = sizeof(szValue) / sizeof(WCHAR); - if (RegGetValueW(hKey, szName, NULL, RRF_RT_REG_SZ, NULL, szValue, &dwSize) == ERROR_SUCCESS) - { - - CLSIDFromString(szValue, &clsid); - dwResult = CoCreateInstance(&clsid, NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown, (LPVOID*)&Overlay); - if (dwResult == S_OK) - { - Handlers[NumIconOverlayHandlers] = Overlay; - NumIconOverlayHandlers++; - } - } - } - - dwIndex++; - - }while(1); - - RegCloseKey(hKey); -} - -BOOL -GetIconOverlay(LPCITEMIDLIST pidl, WCHAR * wTemp, int* pIndex) -{ - DWORD Index; - HRESULT hResult; - int Priority; - int HighestPriority; - ULONG IconIndex; - ULONG Flags; - WCHAR szPath[MAX_PATH]; - - if(!SHGetPathFromIDListW(pidl, szPath)) - return FALSE; - - - HighestPriority = 101; - IconIndex = NumIconOverlayHandlers; - for(Index = 0; Index < NumIconOverlayHandlers; Index++) - { - hResult = Handlers[Index]->lpVtbl->IsMemberOf(Handlers[Index], szPath, SFGAO_FILESYSTEM); - if (hResult == S_OK) - { - hResult = Handlers[Index]->lpVtbl->GetPriority(Handlers[Index], &Priority); - if (hResult == S_OK) - { - if (Priority < HighestPriority) - { - HighestPriority = Priority; - IconIndex = Index; - } - } - } - } - - if (IconIndex == NumIconOverlayHandlers) - return FALSE; - - hResult = Handlers[IconIndex]->lpVtbl->GetOverlayInfo(Handlers[IconIndex], wTemp, MAX_PATH, pIndex, &Flags); - - if (hResult == S_OK) - return TRUE; - else - return FALSE; -} - -/************************************************************************** -* IExtractIconW_Constructor -*/ -IExtractIconW* IExtractIconW_Constructor(LPCITEMIDLIST pidl) -{ - IDefaultExtractIconInit *initIcon; - IExtractIconW *extractIcon; - GUID const * riid; - int icon_idx; - UINT flags; - CHAR sTemp[MAX_PATH]; - WCHAR wTemp[MAX_PATH]; - LPITEMIDLIST pSimplePidl = ILFindLastID(pidl); - HRESULT hr; - - hr = SHCreateDefaultExtractIcon(&IID_IDefaultExtractIconInit, (void **)&initIcon); - if (!SUCCEEDED(hr)) - return NULL; - - hr = IDefaultExtractIconInit_QueryInterface(initIcon, &IID_IExtractIconW, (void **)&extractIcon); - IDefaultExtractIconInit_Release(initIcon); - if (!SUCCEEDED(hr)) - return NULL; - - if (_ILIsDesktop(pSimplePidl)) - { - IDefaultExtractIconInit_SetNormalIcon(initIcon, swShell32Name, -IDI_SHELL_DESKTOP); - } - else if ((riid = _ILGetGUIDPointer(pSimplePidl))) - { - /* my computer and other shell extensions */ - static const WCHAR fmt[] = { 'C','L','S','I','D','\\', - '{','%','0','8','l','x','-','%','0','4','x','-','%','0','4','x','-', - '%','0','2','x','%','0','2','x','-','%','0','2','x', '%','0','2','x', - '%','0','2','x','%','0','2','x','%','0','2','x','%','0','2','x','}',0 }; - WCHAR xriid[50]; - - swprintf(xriid, fmt, - riid->Data1, riid->Data2, riid->Data3, - riid->Data4[0], riid->Data4[1], riid->Data4[2], riid->Data4[3], - riid->Data4[4], riid->Data4[5], riid->Data4[6], riid->Data4[7]); - - if (HCR_GetDefaultIconW(xriid, wTemp, MAX_PATH, &icon_idx)) - { - IDefaultExtractIconInit_SetNormalIcon(initIcon, wTemp, icon_idx); - } - else - { - if (IsEqualGUID(riid, &CLSID_MyComputer)) - IDefaultExtractIconInit_SetNormalIcon(initIcon, swShell32Name, -IDI_SHELL_MY_COMPUTER); - else if (IsEqualGUID(riid, &CLSID_MyDocuments)) - IDefaultExtractIconInit_SetNormalIcon(initIcon, swShell32Name, -IDI_SHELL_MY_DOCUMENTS); - else if (IsEqualGUID(riid, &CLSID_NetworkPlaces)) - IDefaultExtractIconInit_SetNormalIcon(initIcon, swShell32Name, -IDI_SHELL_MY_NETWORK_PLACES); - else if (IsEqualGUID(riid, &CLSID_UnixFolder) || - IsEqualGUID(riid, &CLSID_UnixDosFolder)) - IDefaultExtractIconInit_SetNormalIcon(initIcon, swShell32Name, -IDI_SHELL_DRIVE); - else - IDefaultExtractIconInit_SetNormalIcon(initIcon, swShell32Name, -IDI_SHELL_FOLDER); - } - } - - else if (_ILIsDrive (pSimplePidl)) - { - static const WCHAR drive[] = { 'D','r','i','v','e',0 }; - int icon_idx = -1; - - if (_ILGetDrive(pSimplePidl, sTemp, MAX_PATH)) - { - switch(GetDriveTypeA(sTemp)) - { - case DRIVE_REMOVABLE: icon_idx = IDI_SHELL_FLOPPY; break; - case DRIVE_CDROM: icon_idx = IDI_SHELL_CDROM; break; - case DRIVE_REMOTE: icon_idx = IDI_SHELL_NETDRIVE; break; - case DRIVE_RAMDISK: icon_idx = IDI_SHELL_RAMDISK; break; - case DRIVE_NO_ROOT_DIR: icon_idx = IDI_SHELL_CDROM; break; - } - } - - if (icon_idx != -1) - { - IDefaultExtractIconInit_SetNormalIcon(initIcon, swShell32Name, -icon_idx); - } - else - { - if (HCR_GetDefaultIconW(drive, wTemp, MAX_PATH, &icon_idx)) - IDefaultExtractIconInit_SetNormalIcon(initIcon, wTemp, icon_idx); - else - IDefaultExtractIconInit_SetNormalIcon(initIcon, swShell32Name, -IDI_SHELL_DRIVE); - } - } - - else if (_ILIsFolder (pSimplePidl)) - { - if (SUCCEEDED(getIconLocationForFolder( - pidl, 0, wTemp, MAX_PATH, - &icon_idx, - &flags))) - { - IDefaultExtractIconInit_SetNormalIcon(initIcon, wTemp, icon_idx); - } - if (SUCCEEDED(getIconLocationForFolder( - pidl, GIL_DEFAULTICON, wTemp, MAX_PATH, - &icon_idx, - &flags))) - { - IDefaultExtractIconInit_SetDefaultIcon(initIcon, wTemp, icon_idx); - } - if (SUCCEEDED(getIconLocationForFolder( - pidl, GIL_FORSHORTCUT, wTemp, MAX_PATH, - &icon_idx, - &flags))) - { - IDefaultExtractIconInit_SetShortcutIcon(initIcon, wTemp, icon_idx); - } - if (SUCCEEDED(getIconLocationForFolder( - pidl, GIL_OPENICON, wTemp, MAX_PATH, - &icon_idx, - &flags))) - { - IDefaultExtractIconInit_SetOpenIcon(initIcon, wTemp, icon_idx); - } - } - else - { - BOOL found = FALSE; - - if (_ILIsCPanelStruct(pSimplePidl)) - { - if (SUCCEEDED(CPanel_GetIconLocationW(pSimplePidl, wTemp, MAX_PATH, &icon_idx))) - found = TRUE; - } - else if (_ILGetExtension(pSimplePidl, sTemp, MAX_PATH)) - { - if (HCR_MapTypeToValueA(sTemp, sTemp, MAX_PATH, TRUE) - && HCR_GetDefaultIconA(sTemp, sTemp, MAX_PATH, &icon_idx)) - { - if (!lstrcmpA("%1", sTemp)) /* icon is in the file */ - { - SHGetPathFromIDListW(pidl, wTemp); - icon_idx = 0; - } - else - { - MultiByteToWideChar(CP_ACP, 0, sTemp, -1, wTemp, MAX_PATH); - } - - found = TRUE; - } - else if (!lstrcmpiA(sTemp, "lnkfile")) - { - /* extract icon from shell shortcut */ - IShellFolder* dsf; - IShellLinkW* psl; - - if (SUCCEEDED(SHGetDesktopFolder(&dsf))) - { - HRESULT hr = IShellFolder_GetUIObjectOf(dsf, NULL, 1, (LPCITEMIDLIST*)&pidl, &IID_IShellLinkW, NULL, (LPVOID*)&psl); - - if (SUCCEEDED(hr)) - { - hr = IShellLinkW_GetIconLocation(psl, wTemp, MAX_PATH, &icon_idx); - - if (SUCCEEDED(hr) && *sTemp) - found = TRUE; - - IShellLinkW_Release(psl); - } - - IShellFolder_Release(dsf); - } - } - } - - if (!found) - /* default icon */ - IDefaultExtractIconInit_SetNormalIcon(initIcon, swShell32Name, 0); - else - IDefaultExtractIconInit_SetNormalIcon(initIcon, wTemp, icon_idx); - } - - return extractIcon; -} - -/************************************************************************** -* IExtractIconA_Constructor -*/ -IExtractIconA* IExtractIconA_Constructor(LPCITEMIDLIST pidl) -{ - IExtractIconW *extractIconW; - IExtractIconA *extractIconA; - HRESULT hr; - - extractIconW = IExtractIconW_Constructor(pidl); - if (!extractIconW) - return NULL; - - hr = extractIconW->lpVtbl->QueryInterface(extractIconW, &IID_IExtractIconA, (void **)&extractIconA); - extractIconW->lpVtbl->Release(extractIconW); - if (!SUCCEEDED(hr)) - return NULL; - return extractIconA; -} diff --git a/reactos/dll/win32/shell32/fprop.c b/reactos/dll/win32/shell32/fprop.c deleted file mode 100644 index 3e324499808..00000000000 --- a/reactos/dll/win32/shell32/fprop.c +++ /dev/null @@ -1,879 +0,0 @@ -/* - * Shell Library Functions - * - * Copyright 2005 Johannes Anderwald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -#define MAX_PROPERTY_SHEET_PAGE 32 - -typedef struct _LANGANDCODEPAGE_ -{ - WORD lang; - WORD code; -} LANGANDCODEPAGE, *LPLANGANDCODEPAGE; - -HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, IDataObject *pDataObj); - -/************************************************************************* - * - * SH_CreatePropertySheetPage [Internal] - * - * creates a property sheet page from an resource name - * - */ - -HPROPSHEETPAGE -SH_CreatePropertySheetPage(LPSTR resname, DLGPROC dlgproc, LPARAM lParam, LPWSTR szTitle) -{ - HRSRC hRes; - LPVOID lpsztemplate; - PROPSHEETPAGEW ppage; - - if (resname == NULL) - return (HPROPSHEETPAGE)0; - - hRes = FindResourceA(shell32_hInstance, resname, (LPSTR)RT_DIALOG); - - if (hRes == NULL) - { - ERR("failed to find resource name\n"); - return (HPROPSHEETPAGE)0; - } - - lpsztemplate = LoadResource(shell32_hInstance, hRes); - - if (lpsztemplate == NULL) - return (HPROPSHEETPAGE)0; - - memset(&ppage, 0x0, sizeof(PROPSHEETPAGEW)); - ppage.dwSize = sizeof(PROPSHEETPAGEW); - ppage.dwFlags = PSP_DLGINDIRECT; - ppage.u.pResource = lpsztemplate; - ppage.pfnDlgProc = dlgproc; - ppage.lParam = lParam; - ppage.pszTitle = szTitle; - - if (szTitle) - { - ppage.dwFlags |= PSP_USETITLE; - } - - return CreatePropertySheetPageW(&ppage); -} - -/************************************************************************* - * - * SH_FileGeneralFileType [Internal] - * - * retrieves file extension description from registry and sets it in dialog - * - * TODO: retrieve file extension default icon and load it - * find executable name from registry, retrieve description from executable - */ - -BOOL -SH_FileGeneralSetFileType(HWND hwndDlg, WCHAR *filext) -{ - WCHAR name[MAX_PATH]; - WCHAR value[MAX_PATH]; - DWORD lname = MAX_PATH; - DWORD lvalue = MAX_PATH; - HKEY hKey; - LONG result; - HWND hDlgCtrl; - - TRACE("fileext %s\n", debugstr_w(filext)); - - if (filext == NULL) - return FALSE; - - hDlgCtrl = GetDlgItem(hwndDlg, 14005); - - if (hDlgCtrl == NULL) - return FALSE; - - if (RegOpenKeyW(HKEY_CLASSES_ROOT, filext, &hKey) != ERROR_SUCCESS) - { - /* the file extension is unknown, so default to string "FileExtension File" */ - SendMessageW(hDlgCtrl, WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)value); - swprintf(name, L"%s %s", &filext[1], value); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)name); - return TRUE; - } - - result = RegEnumValueW(hKey, 0, name, &lname, NULL, NULL, (LPBYTE)value, &lvalue); - RegCloseKey(hKey); - - if (result != ERROR_SUCCESS) - return FALSE; - - if (RegOpenKeyW(HKEY_CLASSES_ROOT, value, &hKey) == ERROR_SUCCESS) - { - if (RegLoadMUIStringW(hKey, L"FriendlyTypeName", value, MAX_PATH, NULL, 0, NULL) != ERROR_SUCCESS) - { - lvalue = lname = MAX_PATH; - result = RegEnumValueW(hKey, 0, name, &lname, NULL, NULL, (LPBYTE)value, &lvalue); - } - - lname = MAX_PATH; - - if (RegGetValueW(hKey, L"DefaultIcon", NULL, RRF_RT_REG_SZ, NULL, name, &lname) == ERROR_SUCCESS) - { - UINT IconIndex; - WCHAR szBuffer[MAX_PATH]; - WCHAR *Offset; - HICON hIcon = 0; - HRSRC hResource; - LPVOID pResource = NULL; - HGLOBAL hGlobal; - HANDLE hLibrary; - Offset = wcsrchr(name, L','); - - if (Offset) - { - IconIndex = _wtoi(Offset + 2); - *Offset = L'\0'; - name[MAX_PATH - 1] = L'\0'; - - if (ExpandEnvironmentStringsW(name, szBuffer, MAX_PATH)) - { - szBuffer[MAX_PATH - 1] = L'\0'; - hLibrary = LoadLibraryExW(szBuffer, NULL, LOAD_LIBRARY_AS_DATAFILE); - if (hLibrary) - { - hResource = FindResourceW(hLibrary, MAKEINTRESOURCEW(IconIndex), (LPCWSTR)RT_ICON); - if (hResource) - { - hGlobal = LoadResource(shell32_hInstance, hResource); - if (hGlobal) - { - pResource = LockResource(hGlobal); - if (pResource != NULL) - { - hIcon = CreateIconFromResource(pResource, SizeofResource(shell32_hInstance, hResource), TRUE, 0x00030000); - TRACE("hIcon %p,- szBuffer %s IconIndex %u error %u icon %p hResource %p pResource %p\n", - hIcon, - debugstr_w(szBuffer), - IconIndex, - MAKEINTRESOURCEW(IconIndex), - hResource, - pResource); - SendDlgItemMessageW(hwndDlg, 14000, STM_SETICON, (WPARAM)hIcon, 0); - } - } - } - FreeLibrary(hLibrary); - } - } - } - } - RegCloseKey(hKey); - } - - /* file extension type */ - value[MAX_PATH - 1] = L'\0'; - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)value); - - return TRUE; -} - -/************************************************************************* - * - * SHFileGeneralGetFileTimeString [Internal] - * - * formats a given LPFILETIME struct into readable user format - */ - -BOOL -SHFileGeneralGetFileTimeString(LPFILETIME lpFileTime, WCHAR *lpResult) -{ - FILETIME ft; - SYSTEMTIME dt; - WORD wYear; - static const WCHAR wFormat[] = { - '%', '0', '2', 'd', '/', '%', '0', '2', 'd', '/', '%', '0', '4', 'd', - ' ', ' ', '%', '0', '2', 'd', ':', '%', '0', '2', 'u', 0 }; - - if (lpFileTime == NULL || lpResult == NULL) - return FALSE; - - if (!FileTimeToLocalFileTime(lpFileTime, &ft)) - return FALSE; - - FileTimeToSystemTime(&ft, &dt); - - wYear = dt.wYear; - - /* ddmmyy */ - swprintf(lpResult, wFormat, dt.wDay, dt.wMonth, wYear, dt.wHour, dt.wMinute); - - TRACE("result %s\n", debugstr_w(lpResult)); - return TRUE; -} - -/************************************************************************* - * - * SH_FileGeneralSetText [Internal] - * - * sets file path string and filename string - * - */ - -BOOL -SH_FileGeneralSetText(HWND hwndDlg, WCHAR *lpstr) -{ - int flength; - int plength; - WCHAR *lpdir; - WCHAR buff[MAX_PATH]; - HWND hDlgCtrl; - - if (lpstr == NULL) - return FALSE; - - lpdir = wcsrchr(lpstr, '\\'); /* find the last occurence of '\\' */ - - plength = wcslen(lpstr); - flength = wcslen(lpdir); - - if (lpdir) - { - /* location text field */ - wcsncpy(buff, lpstr, plength - flength); - buff[plength - flength] = UNICODE_NULL; - hDlgCtrl = GetDlgItem(hwndDlg, 14009); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)buff); - } - - if (flength > 1) - { - /* text filename field */ - wcsncpy(buff, &lpdir[1], flength); - hDlgCtrl = GetDlgItem(hwndDlg, 14001); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)buff); - } - - return TRUE; -} - -/************************************************************************* - * - * SH_FileGeneralSetFileSizeTime [Internal] - * - * retrieves file information from file and sets in dialog - * - */ - -BOOL -SH_FileGeneralSetFileSizeTime(HWND hwndDlg, WCHAR *lpfilename, PULARGE_INTEGER lpfilesize) -{ - BOOL result; - HANDLE hFile; - FILETIME create_time; - FILETIME accessed_time; - FILETIME write_time; - WCHAR resultstr[MAX_PATH]; - HWND hDlgCtrl; - LARGE_INTEGER file_size; - - if (lpfilename == NULL) - return FALSE; - - hFile = CreateFileW(lpfilename, - GENERIC_READ, - FILE_SHARE_READ, - NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL); - - if (hFile == INVALID_HANDLE_VALUE) - { - WARN("failed to open file %s\n", debugstr_w(lpfilename)); - return FALSE; - } - - result = GetFileTime(hFile, &create_time, &accessed_time, &write_time); - - if (!result) - { - WARN("GetFileTime failed\n"); - return FALSE; - } - - if (SHFileGeneralGetFileTimeString(&create_time, resultstr)) - { - hDlgCtrl = GetDlgItem(hwndDlg, 14015); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)resultstr); - } - - if (SHFileGeneralGetFileTimeString(&accessed_time, resultstr)) - { - hDlgCtrl = GetDlgItem(hwndDlg, 14019); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)resultstr); - } - - if (SHFileGeneralGetFileTimeString(&write_time, resultstr)) - { - hDlgCtrl = GetDlgItem(hwndDlg, 14017); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)resultstr); - } - - if (!GetFileSizeEx(hFile, &file_size)) - { - WARN("GetFileSize failed\n"); - CloseHandle(hFile); - return FALSE; - } - - CloseHandle(hFile); - - if (!StrFormatByteSizeW(file_size.QuadPart, - resultstr, - sizeof(resultstr) / sizeof(WCHAR))) - return FALSE; - - hDlgCtrl = GetDlgItem(hwndDlg, 14011); - - TRACE("result size %u resultstr %s\n", file_size.QuadPart, debugstr_w(resultstr)); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)resultstr); - - if (lpfilesize) - lpfilesize->QuadPart = (ULONGLONG)file_size.QuadPart; - - return TRUE; -} - -/************************************************************************* - * - * SH_SetFileVersionText [Internal] - * - * - */ - -BOOL -SH_FileVersionQuerySetText(HWND hwndDlg, DWORD dlgId, LPVOID pInfo, WCHAR *text, WCHAR **resptr) -{ - UINT reslen; - HWND hDlgCtrl; - - if (hwndDlg == NULL || resptr == NULL || text == NULL) - return FALSE; - - if (VerQueryValueW(pInfo, text, (LPVOID *)resptr, &reslen)) - { - /* file description property */ - hDlgCtrl = GetDlgItem(hwndDlg, dlgId); - TRACE("%s :: %s\n", debugstr_w(text), debugstr_w(*resptr)); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)0, (LPARAM)*resptr); - return TRUE; - } - - return FALSE; -} - -/************************************************************************* - * - * SH_FileVersionQuerySetListText [Internal] - * - * retrieves a version string and adds it to listbox - * - */ - -BOOL -SH_FileVersionQuerySetListText(HWND hwndDlg, LPVOID pInfo, const WCHAR *text, WCHAR **resptr, WORD lang, WORD code) -{ - UINT reslen; - HWND hDlgCtrl; - UINT index; - static const WCHAR wFormat[] = { - '\\', 'S', 't', 'r', 'i', 'n', 'g', 'F', 'i', 'l', 'e', 'I', 'n', 'f', 'o', - '\\', '%', '0', '4', 'x', '%', '0', '4', 'x', '\\', '%', 's', 0 }; - WCHAR buff[256]; - - TRACE("text %s, resptr %p hwndDlg %p\n", debugstr_w(text), resptr, hwndDlg); - - if (hwndDlg == NULL || resptr == NULL || text == NULL) - return FALSE; - - swprintf(buff, wFormat, lang, code, text); - - if (VerQueryValueW(pInfo, buff, (LPVOID *)resptr, &reslen)) - { - /* listbox name property */ - hDlgCtrl = GetDlgItem(hwndDlg, 14009); - TRACE("%s :: %s\n", debugstr_w(text), debugstr_w(*resptr)); - index = SendMessageW(hDlgCtrl, LB_ADDSTRING, (WPARAM)-1, (LPARAM)text); - SendMessageW(hDlgCtrl, LB_SETITEMDATA, (WPARAM)index, (LPARAM)(WCHAR *)*resptr); - return TRUE; - } - - return FALSE; -} - -/************************************************************************* - * - * SH_FileVersionInitialize [Internal] - * - * sets all file version properties in dialog - */ - -BOOL -SH_FileVersionInitialize(HWND hwndDlg, WCHAR *lpfilename) -{ - LPVOID pBuf; - DWORD versize; - DWORD handle; - LPVOID info = NULL; - UINT infolen; - WCHAR buff[256]; - HWND hDlgCtrl; - WORD lang = 0; - WORD code = 0; - LPLANGANDCODEPAGE lplangcode; - WCHAR *str; - static const WCHAR wVersionFormat[] = { - '%', 'd', '.', '%', 'd', '.', '%', 'd', '.', '%', 'd', 0 }; - static const WCHAR wFileDescriptionFormat[] = { - '\\', 'S', 't', 'r', 'i', 'n', 'g', 'F', 'i', 'l', 'e', 'I', 'n', 'f', 'o', - '\\', '%', '0', '4', 'x', '%', '0', '4', 'x', - '\\', 'F', 'i', 'l', 'e', 'D', 'e', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', 'n', 0 }; - static const WCHAR wLegalCopyrightFormat[] = { - '\\', 'S', 't', 'r', 'i', 'n', 'g', 'F', 'i', 'l', 'e', 'I', 'n', 'f', 'o', - '\\', '%', '0', '4', 'x', '%', '0', '4', 'x', - '\\', 'L', 'e', 'g', 'a', 'l', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', 0 }; - static const WCHAR wTranslation[] = { - 'V', 'a', 'r', 'F', 'i', 'l', 'e', 'I', 'n', 'f', 'o', - '\\', 'T', 'r', 'a', 'n', 's', 'l', 'a', 't', 'i', 'o', 'n', 0 }; - static const WCHAR wCompanyName[] = { - 'C', 'o', 'm', 'p', 'a', 'n', 'y', 'N', 'a', 'm', 'e', 0 }; - static const WCHAR wFileVersion[] = { - 'F', 'i', 'l', 'e', 'V', 'e', 'r', 's', 'i', 'o', 'n', 0 }; - static const WCHAR wInternalName[] = { - 'I', 'n', 't', 'e', 'r', 'n', 'a', 'l', 'N', 'a', 'm', 'e', 0 }; - static const WCHAR wOriginalFilename[] = { - 'O', 'r', 'i', 'g', 'i', 'n', 'a', 'l', 'F', 'i', 'l', 'e', 'n', 'a', 'm', 'e', 0 }; - static const WCHAR wProductName[] = { - 'P', 'r', 'o', 'd', 'u', 'c', 't', 'N', 'a', 'm', 'e', 0 }; - static const WCHAR wProductVersion[] = { - 'P', 'r', 'o', 'd', 'u', 'c', 't', 'V', 'e', 'r', 's', 'i', 'o', 'n', 0 }; - static const WCHAR wSlash[] = { '\\', 0 }; - - if (lpfilename == 0) - return FALSE; - - if (!(versize = GetFileVersionInfoSizeW(lpfilename, &handle))) - { - WARN("GetFileVersionInfoSize failed\n"); - return FALSE; - } - - if (!(pBuf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, versize))) - { - WARN("HeapAlloc failed bytes %x\n", versize); - return FALSE; - } - - if (!GetFileVersionInfoW(lpfilename, handle, versize, pBuf)) - { - HeapFree(GetProcessHeap(), 0, pBuf); - return FALSE; - } - - if (VerQueryValueW(pBuf, wSlash, &info, &infolen)) - { - VS_FIXEDFILEINFO *inf = (VS_FIXEDFILEINFO *)info; - swprintf(buff, wVersionFormat, HIWORD(inf->dwFileVersionMS), - LOWORD(inf->dwFileVersionMS), - HIWORD(inf->dwFileVersionLS), - LOWORD(inf->dwFileVersionLS)); - hDlgCtrl = GetDlgItem(hwndDlg, 14001); - TRACE("MS %x LS %x res %s \n", inf->dwFileVersionMS, inf->dwFileVersionLS, debugstr_w(buff)); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)buff); - } - - if (VerQueryValueW(pBuf, wTranslation, (LPVOID *)&lplangcode, &infolen)) - { - /* FIXME find language from current locale / if not available, - * default to english - * for now default to first available language - */ - lang = lplangcode->lang; - code = lplangcode->code; - } - - swprintf(buff, wFileDescriptionFormat, lang, code); - SH_FileVersionQuerySetText(hwndDlg, 14003, pBuf, buff, &str); - - swprintf(buff, wLegalCopyrightFormat, lang, code); - SH_FileVersionQuerySetText(hwndDlg, 14005, pBuf, buff, &str); - - /* listbox properties */ - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wCompanyName, &str, lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wFileVersion, &str, lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wInternalName, &str, lang, code); - - /* FIXME insert language identifier */ - - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wOriginalFilename, &str, lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wProductName, &str, lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wProductVersion, &str, lang, code); - SetWindowLongPtr(hwndDlg, DWL_USER, (LONG_PTR)pBuf); - - /* select first item */ - hDlgCtrl = GetDlgItem(hwndDlg, 14009); - SendMessageW(hDlgCtrl, LB_SETCURSEL, 0, 0); - str = (WCHAR *) SendMessageW(hDlgCtrl, LB_GETITEMDATA, (WPARAM)0, (LPARAM)NULL); - hDlgCtrl = GetDlgItem(hwndDlg, 14010); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)str); - - return TRUE; -} - -/************************************************************************* - * - * SH_FileVersionDlgProc - * - * wnd proc of 'Version' property sheet page - */ - -INT_PTR -CALLBACK -SH_FileVersionDlgProc(HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - LPPROPSHEETPAGE ppsp; - WCHAR *lpstr; - LPVOID *buf; - - switch (uMsg) - { - case WM_INITDIALOG: - ppsp = (LPPROPSHEETPAGE)lParam; - - if (ppsp == NULL) - break; - - TRACE("WM_INITDIALOG hwnd %p lParam %p ppsplParam %x\n", hwndDlg, lParam, ppsp->lParam); - - lpstr = (WCHAR *)ppsp->lParam; - - if (lpstr == NULL) - break; - - return SH_FileVersionInitialize(hwndDlg, lpstr); - - case WM_COMMAND: - if (LOWORD(wParam) == 14009 && HIWORD(wParam) == LBN_DBLCLK) - { - HWND hDlgCtrl; - LRESULT lresult; - WCHAR *str; - - hDlgCtrl = GetDlgItem(hwndDlg, 14009); - lresult = SendMessageW(hDlgCtrl, LB_GETCURSEL, (WPARAM)NULL, (LPARAM)NULL); - - if (lresult == LB_ERR) - break; - - str = (WCHAR *) SendMessageW(hDlgCtrl, LB_GETITEMDATA, (WPARAM)lresult, (LPARAM)NULL); - - if (str == NULL) - break; - - hDlgCtrl = GetDlgItem(hwndDlg, 14010); - TRACE("hDlgCtrl %x string %s \n", hDlgCtrl, debugstr_w(str)); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)str); - - return TRUE; - } - break; - - case WM_DESTROY: - buf = (LPVOID) GetWindowLongPtr(hwndDlg, DWL_USER); - HeapFree(GetProcessHeap(), 0, buf); - break; - - default: - break; - } - - return FALSE; -} - -/************************************************************************* - * - * SH_FileGeneralDlgProc - * - * wnd proc of 'General' property sheet page - * - */ - -INT_PTR -CALLBACK -SH_FileGeneralDlgProc(HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - LPPROPSHEETPAGEW ppsp; - WCHAR *lpstr; - - switch (uMsg) - { - case WM_INITDIALOG: - ppsp = (LPPROPSHEETPAGEW)lParam; - - if (ppsp == NULL) - break; - - TRACE("WM_INITDIALOG hwnd %p lParam %p ppsplParam %S\n", hwndDlg, lParam, ppsp->lParam); - - lpstr = (WCHAR *)ppsp->lParam; - - if (lpstr == NULL) - { - ERR("no filename\n"); - break; - } - - /* set general text properties filename filelocation and icon */ - SH_FileGeneralSetText(hwndDlg, lpstr); - - /* enumerate file extension from registry and application which opens it */ - SH_FileGeneralSetFileType(hwndDlg, wcsrchr(lpstr, '.')); - - /* set file time create/modfied/accessed */ - SH_FileGeneralSetFileSizeTime(hwndDlg, lpstr, NULL); - - return TRUE; - - default: - break; - } - - return FALSE; -} - -BOOL -CALLBACK -AddShellPropSheetExCallback(HPROPSHEETPAGE hPage, - LPARAM lParam) -{ - PROPSHEETHEADERW *pinfo = (PROPSHEETHEADERW *)lParam; - - if (pinfo->nPages < MAX_PROPERTY_SHEET_PAGE) - { - pinfo->u3.phpage[pinfo->nPages++] = hPage; - return TRUE; - } - - return FALSE; -} - -int -EnumPropSheetExt(LPWSTR wFileName, PROPSHEETHEADERW *pinfo, int NumPages, HPSXA *hpsxa, IDataObject *pDataObj) -{ - WCHAR szName[MAX_PATH] = { 0 }; - WCHAR *pOffset; - UINT Length; - DWORD dwName; - int Pages; - CLSID clsid; - - pOffset = wcsrchr(wFileName, L'.'); - - if (!pOffset) - { - Length = wcslen(szName); - - if (Length + 6 > sizeof(szName) / sizeof(szName[0])) - return 0; - - if (CLSIDFromString(wFileName, &clsid) == NOERROR) - { - wcscpy(szName, L"CLSID\\"); - wcscpy(&szName[6], wFileName); - } - else - { - wcscpy(szName, wFileName); - } - } - else - { - Length = wcslen(pOffset); - - if (Length >= sizeof(szName) / sizeof(szName[0])) - return 0; - - wcscpy(szName, pOffset); - } - - TRACE("EnumPropSheetExt szName %s\n", debugstr_w(szName)); - - hpsxa[0] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, szName, NumPages, pDataObj); - Pages = SHAddFromPropSheetExtArray(hpsxa[0], AddShellPropSheetExCallback, (LPARAM)pinfo); - - hpsxa[1] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, L"*", NumPages-Pages, pDataObj); - Pages += SHAddFromPropSheetExtArray(hpsxa[1], AddShellPropSheetExCallback, (LPARAM)pinfo); - - hpsxa[2] = NULL; - - if (pOffset) - { - /* try to load property sheet handlers from prog id key */ - dwName = sizeof(szName); - - if (RegGetValueW(HKEY_CLASSES_ROOT, pOffset, NULL, RRF_RT_REG_SZ, NULL, szName, &dwName) == ERROR_SUCCESS) - { - TRACE("EnumPropSheetExt szName %s, pOffset %s\n", debugstr_w(szName), debugstr_w(pOffset)); - szName[(sizeof(szName) / sizeof(WCHAR)) - 1] = L'\0'; - hpsxa[2] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, szName, NumPages - Pages, pDataObj); - Pages += SHAddFromPropSheetExtArray(hpsxa[2], AddShellPropSheetExCallback, (LPARAM)pinfo); - } - } - - return Pages; -} - -/************************************************************************* - * - * SH_ShowPropertiesDialog - * - * called from ShellExecuteExW32 - * - * lpf contains (quoted) path of folder/file - * - * TODO: provide button change application type if file has registered type - * make filename field editable and apply changes to filename on close - */ - -BOOL -SH_ShowPropertiesDialog(WCHAR *lpf, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST *apidl) -{ - PROPSHEETHEADERW pinfo; - HPROPSHEETPAGE hppages[MAX_PROPERTY_SHEET_PAGE]; - WCHAR wFileName[MAX_PATH]; - DWORD dwHandle = 0; - WCHAR *pFileName; - HPSXA hpsxa[3]; - INT_PTR res; - IDataObject *pDataObj = NULL; - HRESULT hResult; - - TRACE("SH_ShowPropertiesDialog entered filename %s\n", debugstr_w(lpf)); - - if (lpf == NULL) - return FALSE; - - if (!wcslen(lpf)) - return FALSE; - - memset(hppages, 0x0, sizeof(HPROPSHEETPAGE) * MAX_PROPERTY_SHEET_PAGE); - - if (lpf[0] == '"') - { - /* remove quotes from lpf */ - LPCWSTR src = lpf + 1; - LPWSTR dst = wFileName; - - while (*src && *src != '"') - *dst++ = *src++; - - *dst = '\0'; - } - else - { - wcscpy(wFileName, lpf); - } - - if (PathIsDirectoryW(wFileName)) - { - return SH_ShowFolderProperties(wFileName, pidlFolder, apidl); - } - - if (wcslen(wFileName) == 3) - { - return SH_ShowDriveProperties(wFileName, pidlFolder, apidl); - } - - pFileName = wcsrchr(wFileName, '\\'); - - if (!pFileName) - pFileName = wFileName; - else - pFileName++; - - memset(&pinfo, 0x0, sizeof(PROPSHEETHEADERW)); - pinfo.dwSize = sizeof(PROPSHEETHEADERW); - pinfo.dwFlags = PSH_NOCONTEXTHELP | PSH_PROPTITLE; - pinfo.u3.phpage = hppages; - pinfo.pszCaption = pFileName; - - hppages[pinfo.nPages] = - SH_CreatePropertySheetPage("SHELL_FILE_GENERAL_DLG", - SH_FileGeneralDlgProc, - (LPARAM)wFileName, - NULL); - - if (hppages[pinfo.nPages]) - pinfo.nPages++; - - hResult = SHCreateDataObject(pidlFolder, 1, apidl, NULL, &IID_IDataObject, (LPVOID *)&pDataObj); - - if (hResult == S_OK) - { - if (!EnumPropSheetExt(wFileName, &pinfo, MAX_PROPERTY_SHEET_PAGE - 1, hpsxa, pDataObj)) - { - hpsxa[0] = NULL; - hpsxa[1] = NULL; - hpsxa[2] = NULL; - } - } - - if (GetFileVersionInfoSizeW(lpf, &dwHandle)) - { - hppages[pinfo.nPages] = - SH_CreatePropertySheetPage("SHELL_FILE_VERSION_DLG", - SH_FileVersionDlgProc, - (LPARAM)wFileName, - NULL); - if (hppages[pinfo.nPages]) - pinfo.nPages++; - } - - res = PropertySheetW(&pinfo); - - if (hResult == S_OK) - { - SHDestroyPropSheetExtArray(hpsxa[0]); - SHDestroyPropSheetExtArray(hpsxa[1]); - SHDestroyPropSheetExtArray(hpsxa[2]); - IDataObject_Release(pDataObj); - } - - return (res != -1); -} - -/*EOF */ diff --git a/reactos/dll/win32/shell32/iconcache.c b/reactos/dll/win32/shell32/iconcache.c deleted file mode 100644 index 01e84c99e75..00000000000 --- a/reactos/dll/win32/shell32/iconcache.c +++ /dev/null @@ -1,934 +0,0 @@ -/* - * shell icon cache (SIC) - * - * Copyright 1998, 1999 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -/********************** THE ICON CACHE ********************************/ - -#define INVALID_INDEX -1 - -typedef struct -{ - LPWSTR sSourceFile; /* file (not path!) containing the icon */ - DWORD dwSourceIndex; /* index within the file, if it is a resoure ID it will be negated */ - DWORD dwListIndex; /* index within the iconlist */ - DWORD dwFlags; /* GIL_* flags */ - DWORD dwAccessTime; -} SIC_ENTRY, * LPSIC_ENTRY; - -static HDPA sic_hdpa = 0; - -static CRITICAL_SECTION SHELL32_SicCS; -static CRITICAL_SECTION_DEBUG critsect_debug = -{ - 0, 0, &SHELL32_SicCS, - { &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList }, - 0, 0, { (DWORD_PTR)(__FILE__ ": SHELL32_SicCS") } -}; -static CRITICAL_SECTION SHELL32_SicCS = { &critsect_debug, -1, 0, 0, 0, 0 }; - -/***************************************************************************** - * SIC_CompareEntries - * - * NOTES - * Callback for DPA_Search - */ -static INT CALLBACK SIC_CompareEntries( LPVOID p1, LPVOID p2, LPARAM lparam) -{ LPSIC_ENTRY e1 = (LPSIC_ENTRY)p1, e2 = (LPSIC_ENTRY)p2; - - TRACE("%p %p %8lx\n", p1, p2, lparam); - - /* Icons in the cache are keyed by the name of the file they are - * loaded from, their resource index and the fact if they have a shortcut - * icon overlay or not. - */ - if (e1->dwSourceIndex != e2->dwSourceIndex || /* first the faster one */ - (e1->dwFlags & GIL_FORSHORTCUT) != (e2->dwFlags & GIL_FORSHORTCUT)) - return 1; - - if (wcsicmp(e1->sSourceFile,e2->sSourceFile)) - return 1; - - return 0; -} - -/* declare SIC_LoadOverlayIcon() */ -static int SIC_LoadOverlayIcon(int icon_idx); - -/***************************************************************************** - * SIC_OverlayShortcutImage [internal] - * - * NOTES - * Creates a new icon as a copy of the passed-in icon, overlayed with a - * shortcut image. - */ -static HICON SIC_OverlayShortcutImage(HICON SourceIcon, BOOL large) -{ ICONINFO SourceIconInfo, ShortcutIconInfo, TargetIconInfo; - HICON ShortcutIcon, TargetIcon; - BITMAP SourceBitmapInfo, ShortcutBitmapInfo; - HDC SourceDC = NULL, - ShortcutDC = NULL, - TargetDC = NULL, - ScreenDC = NULL; - HBITMAP OldSourceBitmap = NULL, - OldShortcutBitmap = NULL, - OldTargetBitmap = NULL; - - static int s_imgListIdx = -1; - - /* Get information about the source icon and shortcut overlay */ - if (! GetIconInfo(SourceIcon, &SourceIconInfo) - || 0 == GetObjectW(SourceIconInfo.hbmColor, sizeof(BITMAP), &SourceBitmapInfo)) - { - return NULL; - } - - /* search for the shortcut icon only once */ - if (s_imgListIdx == -1) - s_imgListIdx = SIC_LoadOverlayIcon(- IDI_SHELL_SHORTCUT); - /* FIXME should use icon index 29 instead of the - resource id, but not all icons are present yet - so we can't use icon indices */ - - if (s_imgListIdx != -1) - { - if (large) - ShortcutIcon = ImageList_GetIcon(ShellBigIconList, s_imgListIdx, ILD_TRANSPARENT); - else - ShortcutIcon = ImageList_GetIcon(ShellSmallIconList, s_imgListIdx, ILD_TRANSPARENT); - } else - ShortcutIcon = NULL; - - if (NULL == ShortcutIcon - || ! GetIconInfo(ShortcutIcon, &ShortcutIconInfo) - || 0 == GetObjectW(ShortcutIconInfo.hbmColor, sizeof(BITMAP), &ShortcutBitmapInfo)) - { - return NULL; - } - - TargetIconInfo = SourceIconInfo; - TargetIconInfo.hbmMask = NULL; - TargetIconInfo.hbmColor = NULL; - - /* Setup the source, shortcut and target masks */ - SourceDC = CreateCompatibleDC(NULL); - if (NULL == SourceDC) goto fail; - OldSourceBitmap = SelectObject(SourceDC, SourceIconInfo.hbmMask); - if (NULL == OldSourceBitmap) goto fail; - - ShortcutDC = CreateCompatibleDC(NULL); - if (NULL == ShortcutDC) goto fail; - OldShortcutBitmap = SelectObject(ShortcutDC, ShortcutIconInfo.hbmMask); - if (NULL == OldShortcutBitmap) goto fail; - - TargetDC = CreateCompatibleDC(NULL); - if (NULL == TargetDC) goto fail; - TargetIconInfo.hbmMask = CreateCompatibleBitmap(TargetDC, SourceBitmapInfo.bmWidth, - SourceBitmapInfo.bmHeight); - if (NULL == TargetIconInfo.hbmMask) goto fail; - ScreenDC = GetDC(NULL); - if (NULL == ScreenDC) goto fail; - TargetIconInfo.hbmColor = CreateCompatibleBitmap(ScreenDC, SourceBitmapInfo.bmWidth, - SourceBitmapInfo.bmHeight); - ReleaseDC(NULL, ScreenDC); - if (NULL == TargetIconInfo.hbmColor) goto fail; - OldTargetBitmap = SelectObject(TargetDC, TargetIconInfo.hbmMask); - if (NULL == OldTargetBitmap) goto fail; - - /* Create the target mask by ANDing the source and shortcut masks */ - if (! BitBlt(TargetDC, 0, 0, SourceBitmapInfo.bmWidth, SourceBitmapInfo.bmHeight, - SourceDC, 0, 0, SRCCOPY) || - ! BitBlt(TargetDC, 0, SourceBitmapInfo.bmHeight - ShortcutBitmapInfo.bmHeight, - ShortcutBitmapInfo.bmWidth, ShortcutBitmapInfo.bmHeight, - ShortcutDC, 0, 0, SRCAND)) - { - goto fail; - } - - /* Setup the source and target xor bitmap */ - if (NULL == SelectObject(SourceDC, SourceIconInfo.hbmColor) || - NULL == SelectObject(TargetDC, TargetIconInfo.hbmColor)) - { - goto fail; - } - - /* Copy the source color bitmap to the target */ - if (! BitBlt(TargetDC, 0, 0, SourceBitmapInfo.bmWidth, SourceBitmapInfo.bmHeight, - SourceDC, 0, 0, SRCCOPY)) goto fail; - - /* Copy the source xor bitmap to the target and clear out part of it by using - the shortcut mask */ - if (NULL == SelectObject(ShortcutDC, ShortcutIconInfo.hbmColor)) goto fail; - if (!MaskBlt(TargetDC, 0, SourceBitmapInfo.bmHeight - ShortcutBitmapInfo.bmHeight, - ShortcutBitmapInfo.bmWidth, ShortcutBitmapInfo.bmHeight, - ShortcutDC, 0, 0, ShortcutIconInfo.hbmMask, 0, 0, - MAKEROP4(0xAA0000, SRCCOPY))) - { - goto fail; - } - - /* Clean up, we're not goto'ing to 'fail' after this so we can be lazy and not set - handles to NULL */ - SelectObject(TargetDC, OldTargetBitmap); - DeleteObject(TargetDC); - SelectObject(ShortcutDC, OldShortcutBitmap); - DeleteObject(ShortcutDC); - SelectObject(SourceDC, OldSourceBitmap); - DeleteObject(SourceDC); - - /* Create the icon using the bitmaps prepared earlier */ - TargetIcon = CreateIconIndirect(&TargetIconInfo); - - /* CreateIconIndirect copies the bitmaps, so we can release our bitmaps now */ - DeleteObject(TargetIconInfo.hbmColor); - DeleteObject(TargetIconInfo.hbmMask); - - return TargetIcon; - -fail: - /* Clean up scratch resources we created */ - if (NULL != OldTargetBitmap) SelectObject(TargetDC, OldTargetBitmap); - if (NULL != TargetIconInfo.hbmColor) DeleteObject(TargetIconInfo.hbmColor); - if (NULL != TargetIconInfo.hbmMask) DeleteObject(TargetIconInfo.hbmMask); - if (NULL != TargetDC) DeleteObject(TargetDC); - if (NULL != OldShortcutBitmap) SelectObject(ShortcutDC, OldShortcutBitmap); - if (NULL != ShortcutDC) DeleteObject(ShortcutDC); - if (NULL != OldSourceBitmap) SelectObject(SourceDC, OldSourceBitmap); - if (NULL != SourceDC) DeleteObject(SourceDC); - - return NULL; -} - -/***************************************************************************** - * SIC_IconAppend [internal] - * - * NOTES - * appends an icon pair to the end of the cache - */ -static INT SIC_IconAppend (LPCWSTR sSourceFile, INT dwSourceIndex, HICON hSmallIcon, HICON hBigIcon, DWORD dwFlags) -{ LPSIC_ENTRY lpsice; - INT ret, index, index1; - WCHAR path[MAX_PATH]; - TRACE("%s %i %p %p\n", debugstr_w(sSourceFile), dwSourceIndex, hSmallIcon ,hBigIcon); - - lpsice = (LPSIC_ENTRY) SHAlloc (sizeof (SIC_ENTRY)); - - GetFullPathNameW(sSourceFile, MAX_PATH, path, NULL); - lpsice->sSourceFile = HeapAlloc( GetProcessHeap(), 0, (wcslen(path)+1)*sizeof(WCHAR) ); - wcscpy( lpsice->sSourceFile, path ); - - lpsice->dwSourceIndex = dwSourceIndex; - lpsice->dwFlags = dwFlags; - - EnterCriticalSection(&SHELL32_SicCS); - - index = DPA_InsertPtr(sic_hdpa, 0x7fff, lpsice); - if ( INVALID_INDEX == index ) - { - HeapFree(GetProcessHeap(), 0, lpsice->sSourceFile); - SHFree(lpsice); - ret = INVALID_INDEX; - } - else - { - index = ImageList_AddIcon (ShellSmallIconList, hSmallIcon); - index1= ImageList_AddIcon (ShellBigIconList, hBigIcon); - - if (index!=index1) - { - FIXME("iconlists out of sync 0x%x 0x%x\n", index, index1); - } - lpsice->dwListIndex = index; - ret = lpsice->dwListIndex; - } - - LeaveCriticalSection(&SHELL32_SicCS); - return ret; -} -/**************************************************************************** - * SIC_LoadIcon [internal] - * - * NOTES - * gets small/big icon by number from a file - */ -static INT SIC_LoadIcon (LPCWSTR sSourceFile, INT dwSourceIndex, DWORD dwFlags) -{ HICON hiconLarge=0; - HICON hiconSmall=0; - HICON hiconLargeShortcut; - HICON hiconSmallShortcut; - -#if defined(__CYGWIN__) || defined (__MINGW32__) || defined(_MSC_VER) - static UINT (WINAPI*PrivateExtractIconExW)(LPCWSTR,int,HICON*,HICON*,UINT) = NULL; - - if (!PrivateExtractIconExW) { - HMODULE hUser32 = GetModuleHandleA("user32"); - PrivateExtractIconExW = (UINT(WINAPI*)(LPCWSTR,int,HICON*,HICON*,UINT)) GetProcAddress(hUser32, "PrivateExtractIconExW"); - } - - if (PrivateExtractIconExW) - PrivateExtractIconExW(sSourceFile, dwSourceIndex, &hiconLarge, &hiconSmall, 1); - else -#endif - { - PrivateExtractIconsW(sSourceFile, dwSourceIndex, 32, 32, &hiconLarge, NULL, 1, 0); - PrivateExtractIconsW(sSourceFile, dwSourceIndex, 16, 16, &hiconSmall, NULL, 1, 0); - } - - if ( !hiconLarge || !hiconSmall) - { - WARN("failure loading icon %i from %s (%p %p)\n", dwSourceIndex, debugstr_w(sSourceFile), hiconLarge, hiconSmall); - return -1; - } - - if (0 != (dwFlags & GIL_FORSHORTCUT)) - { - hiconLargeShortcut = SIC_OverlayShortcutImage(hiconLarge, TRUE); - hiconSmallShortcut = SIC_OverlayShortcutImage(hiconSmall, FALSE); - if (NULL != hiconLargeShortcut && NULL != hiconSmallShortcut) - { - hiconLarge = hiconLargeShortcut; - hiconSmall = hiconSmallShortcut; - } - else - { - WARN("Failed to create shortcut overlayed icons\n"); - if (NULL != hiconLargeShortcut) DestroyIcon(hiconLargeShortcut); - if (NULL != hiconSmallShortcut) DestroyIcon(hiconSmallShortcut); - dwFlags &= ~ GIL_FORSHORTCUT; - } - } - - return SIC_IconAppend (sSourceFile, dwSourceIndex, hiconSmall, hiconLarge, dwFlags); -} -/***************************************************************************** - * SIC_GetIconIndex [internal] - * - * Parameters - * sSourceFile [IN] filename of file containing the icon - * index [IN] index/resID (negated) in this file - * - * NOTES - * look in the cache for a proper icon. if not available the icon is taken - * from the file and cached - */ -INT SIC_GetIconIndex (LPCWSTR sSourceFile, INT dwSourceIndex, DWORD dwFlags ) -{ - SIC_ENTRY sice; - INT ret, index = INVALID_INDEX; - WCHAR path[MAX_PATH]; - - TRACE("%s %i\n", debugstr_w(sSourceFile), dwSourceIndex); - - GetFullPathNameW(sSourceFile, MAX_PATH, path, NULL); - sice.sSourceFile = path; - sice.dwSourceIndex = dwSourceIndex; - sice.dwFlags = dwFlags; - - EnterCriticalSection(&SHELL32_SicCS); - - if (NULL != DPA_GetPtr (sic_hdpa, 0)) - { - /* search linear from position 0*/ - index = DPA_Search (sic_hdpa, &sice, 0, SIC_CompareEntries, 0, 0); - } - - if ( INVALID_INDEX == index ) - { - ret = SIC_LoadIcon (sSourceFile, dwSourceIndex, dwFlags); - } - else - { - TRACE("-- found\n"); - ret = ((LPSIC_ENTRY)DPA_GetPtr(sic_hdpa, index))->dwListIndex; - } - - LeaveCriticalSection(&SHELL32_SicCS); - return ret; -} -/***************************************************************************** - * SIC_Initialize [internal] - */ -BOOL SIC_Initialize(void) -{ - HICON hSm = NULL, hLg = NULL; - INT cx_small, cy_small; - INT cx_large, cy_large; - HDC hDC; - INT bpp; - DWORD ilMask; - - TRACE("Entered SIC_Initialize\n"); - - if (sic_hdpa) - { - TRACE("Icon cache already initialized\n"); - return TRUE; - } - - sic_hdpa = DPA_Create(16); - if (!sic_hdpa) - { - return FALSE; - } - - hDC = CreateICW(L"DISPLAY", NULL, NULL, NULL); - if (!hDC) - { - ERR("Failed to create information context (error %d)\n", GetLastError()); - return FALSE; - } - - bpp = GetDeviceCaps(hDC, BITSPIXEL); - ReleaseDC(NULL, hDC); - - if (bpp <= 4) - ilMask = ILC_COLOR4; - else if (bpp <= 8) - ilMask = ILC_COLOR8; - else if (bpp <= 16) - ilMask = ILC_COLOR16; - else if (bpp <= 24) - ilMask = ILC_COLOR24; - else if (bpp <= 32) - ilMask = ILC_COLOR32; - else - ilMask = ILC_COLOR; - - ilMask |= ILC_MASK; - - cx_small = GetSystemMetrics(SM_CXSMICON); - cy_small = GetSystemMetrics(SM_CYSMICON); - cx_large = GetSystemMetrics(SM_CXICON); - cy_large = GetSystemMetrics(SM_CYICON); - - ShellSmallIconList = ImageList_Create(cx_small, - cy_small, - ilMask, - 100, - 100); - - ShellBigIconList = ImageList_Create(cx_large, - cy_large, - ilMask, - 100, - 100); - if (ShellSmallIconList) - { - /* Load the document icon, which is used as the default if an icon isn't found. */ - hSm = (HICON)LoadImageW(shell32_hInstance, - MAKEINTRESOURCEW(IDI_SHELL_DOCUMENT), - IMAGE_ICON, - cx_small, - cy_small, - LR_SHARED | LR_DEFAULTCOLOR); - if (!hSm) - { - ERR("Failed to load IDI_SHELL_DOCUMENT icon1!\n"); - return FALSE; - } - } - else - { - ERR("Failed to load ShellSmallIconList\n"); - return FALSE; - } - - if (ShellBigIconList) - { - hLg = (HICON)LoadImageW(shell32_hInstance, - MAKEINTRESOURCEW(IDI_SHELL_DOCUMENT), - IMAGE_ICON, - cx_large, - cy_large, - LR_SHARED | LR_DEFAULTCOLOR); - if (!hLg) - { - ERR("Failed to load IDI_SHELL_DOCUMENT icon2!\n"); - DestroyIcon(hSm); - return FALSE; - } - } - else - { - ERR("Failed to load ShellBigIconList\n"); - return FALSE; - } - - SIC_IconAppend(swShell32Name, IDI_SHELL_DOCUMENT-1, hSm, hLg, 0); - SIC_IconAppend(swShell32Name, -IDI_SHELL_DOCUMENT, hSm, hLg, 0); - - TRACE("hIconSmall=%p hIconBig=%p\n",ShellSmallIconList, ShellBigIconList); - - return TRUE; -} -/************************************************************************* - * SIC_Destroy - * - * frees the cache - */ -static INT CALLBACK sic_free( LPVOID ptr, LPVOID lparam ) -{ - HeapFree(GetProcessHeap(), 0, ((LPSIC_ENTRY)ptr)->sSourceFile); - SHFree(ptr); - return TRUE; -} - -void SIC_Destroy(void) -{ - TRACE("\n"); - - EnterCriticalSection(&SHELL32_SicCS); - - if (sic_hdpa) DPA_DestroyCallback(sic_hdpa, sic_free, NULL ); - - sic_hdpa = NULL; - ImageList_Destroy(ShellSmallIconList); - ShellSmallIconList = 0; - ImageList_Destroy(ShellBigIconList); - ShellBigIconList = 0; - - LeaveCriticalSection(&SHELL32_SicCS); - //DeleteCriticalSection(&SHELL32_SicCS); //static -} - -/***************************************************************************** - * SIC_LoadOverlayIcon [internal] - * - * Load a shell overlay icon and return its icon cache index. - */ -static int SIC_LoadOverlayIcon(int icon_idx) -{ - WCHAR buffer[1024], wszIdx[8]; - HKEY hKeyShellIcons; - LPCWSTR iconPath; - int iconIdx; - - static const WCHAR wszShellIcons[] = { - 'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\', - 'W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\', - 'E','x','p','l','o','r','e','r','\\','S','h','e','l','l',' ','I','c','o','n','s',0 - }; - static const WCHAR wszNumFmt[] = {'%','d',0}; - - iconPath = swShell32Name; /* default: load icon from shell32.dll */ - iconIdx = icon_idx; - - if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, wszShellIcons, 0, KEY_READ, &hKeyShellIcons) == ERROR_SUCCESS) - { - DWORD count = sizeof(buffer); - - swprintf(wszIdx, wszNumFmt, icon_idx); - - /* read icon path and index */ - if (RegQueryValueExW(hKeyShellIcons, wszIdx, NULL, NULL, (LPBYTE)buffer, &count) == ERROR_SUCCESS) - { - LPWSTR p = wcschr(buffer, ','); - - if (p) - *p++ = 0; - - iconPath = buffer; - iconIdx = _wtoi(p); - } - - RegCloseKey(hKeyShellIcons); - } - - return SIC_LoadIcon(iconPath, iconIdx, 0); -} - -/************************************************************************* - * Shell_GetImageLists [SHELL32.71] - * - * PARAMETERS - * imglist[1|2] [OUT] pointer which receives imagelist handles - * - */ -BOOL WINAPI Shell_GetImageLists(HIMAGELIST * lpBigList, HIMAGELIST * lpSmallList) -{ TRACE("(%p,%p)\n",lpBigList,lpSmallList); - if (lpBigList) - { *lpBigList = ShellBigIconList; - } - if (lpSmallList) - { *lpSmallList = ShellSmallIconList; - } - - return TRUE; -} -/************************************************************************* - * PidlToSicIndex [INTERNAL] - * - * PARAMETERS - * sh [IN] IShellFolder - * pidl [IN] - * bBigIcon [IN] - * uFlags [IN] GIL_* - * pIndex [OUT] index within the SIC - * - */ -BOOL PidlToSicIndex ( - IShellFolder * sh, - LPCITEMIDLIST pidl, - BOOL bBigIcon, - UINT uFlags, - int * pIndex) -{ - IExtractIconW *ei; - WCHAR szIconFile[MAX_PATH]; /* file containing the icon */ - INT iSourceIndex; /* index or resID(negated) in this file */ - BOOL ret = FALSE; - UINT dwFlags = 0; - int iShortcutDefaultIndex = INVALID_INDEX; - - TRACE("sf=%p pidl=%p %s\n", sh, pidl, bBigIcon?"Big":"Small"); - - if (SUCCEEDED (IShellFolder_GetUIObjectOf(sh, 0, 1, &pidl, &IID_IExtractIconW, 0, (void **)&ei))) - { - if (SUCCEEDED(ei->lpVtbl->GetIconLocation(ei, uFlags, szIconFile, MAX_PATH, &iSourceIndex, &dwFlags))) - { - *pIndex = SIC_GetIconIndex(szIconFile, iSourceIndex, uFlags); - ret = TRUE; - } - ei->lpVtbl->Release(ei); - } - - if (INVALID_INDEX == *pIndex) /* default icon when failed */ - { - if (0 == (uFlags & GIL_FORSHORTCUT)) - { - *pIndex = 0; - } - else - { - if (INVALID_INDEX == iShortcutDefaultIndex) - { - iShortcutDefaultIndex = SIC_LoadIcon(swShell32Name, 0, GIL_FORSHORTCUT); - } - *pIndex = (INVALID_INDEX != iShortcutDefaultIndex ? iShortcutDefaultIndex : 0); - } - } - - return ret; - -} - -/************************************************************************* - * SHMapPIDLToSystemImageListIndex [SHELL32.77] - * - * PARAMETERS - * sh [IN] pointer to an instance of IShellFolder - * pidl [IN] - * pIndex [OUT][OPTIONAL] SIC index for big icon - * - */ -int WINAPI SHMapPIDLToSystemImageListIndex( - IShellFolder *sh, - LPCITEMIDLIST pidl, - int *pIndex) -{ - int Index; - UINT uGilFlags = 0; - - TRACE("(SF=%p,pidl=%p,%p)\n",sh,pidl,pIndex); - pdump(pidl); - - if (SHELL_IsShortcut(pidl)) - uGilFlags |= GIL_FORSHORTCUT; - - if (pIndex) - if (!PidlToSicIndex ( sh, pidl, 1, uGilFlags, pIndex)) - *pIndex = -1; - - if (!PidlToSicIndex ( sh, pidl, 0, uGilFlags, &Index)) - return -1; - - return Index; -} - -/************************************************************************* - * SHMapIDListToImageListIndexAsync [SHELL32.148] - */ -HRESULT WINAPI SHMapIDListToImageListIndexAsync(IUnknown *pts, IShellFolder *psf, - LPCITEMIDLIST pidl, UINT flags, - void *pfn, void *pvData, void *pvHint, - int *piIndex, int *piIndexSel) -{ - FIXME("(%p, %p, %p, 0x%08x, %p, %p, %p, %p, %p)\n", - pts, psf, pidl, flags, pfn, pvData, pvHint, piIndex, piIndexSel); - return E_FAIL; -} - -/************************************************************************* - * Shell_GetCachedImageIndex [SHELL32.72] - * - */ -INT WINAPI Shell_GetCachedImageIndexA(LPCSTR szPath, INT nIndex, UINT bSimulateDoc) -{ - INT ret, len; - LPWSTR szTemp; - - WARN("(%s,%08x,%08x) semi-stub.\n",debugstr_a(szPath), nIndex, bSimulateDoc); - - len = MultiByteToWideChar( CP_ACP, 0, szPath, -1, NULL, 0 ); - szTemp = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); - MultiByteToWideChar( CP_ACP, 0, szPath, -1, szTemp, len ); - - ret = SIC_GetIconIndex( szTemp, nIndex, 0 ); - - HeapFree( GetProcessHeap(), 0, szTemp ); - - return ret; -} - -INT WINAPI Shell_GetCachedImageIndexW(LPCWSTR szPath, INT nIndex, UINT bSimulateDoc) -{ - WARN("(%s,%08x,%08x) semi-stub.\n",debugstr_w(szPath), nIndex, bSimulateDoc); - - return SIC_GetIconIndex(szPath, nIndex, 0); -} - -INT WINAPI Shell_GetCachedImageIndexAW(LPCVOID szPath, INT nIndex, BOOL bSimulateDoc) -{ if( SHELL_OsIsUnicode()) - return Shell_GetCachedImageIndexW(szPath, nIndex, bSimulateDoc); - return Shell_GetCachedImageIndexA(szPath, nIndex, bSimulateDoc); -} - -/************************************************************************* - * ExtractIconExW [SHELL32.@] - * RETURNS - * 0 no icon found - * -1 file is not valid - * or number of icons extracted - */ -UINT WINAPI ExtractIconExW(LPCWSTR lpszFile, INT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIcons) -{ - /* get entry point of undocumented function PrivateExtractIconExW() in user32 */ -#if defined(__CYGWIN__) || defined (__MINGW32__) || defined(_MSC_VER) - static UINT (WINAPI*PrivateExtractIconExW)(LPCWSTR,int,HICON*,HICON*,UINT) = NULL; - - if (!PrivateExtractIconExW) { - HMODULE hUser32 = GetModuleHandleA("user32"); - PrivateExtractIconExW = (UINT(WINAPI*)(LPCWSTR,int,HICON*,HICON*,UINT)) GetProcAddress(hUser32, "PrivateExtractIconExW"); - - if (!PrivateExtractIconExW) - return 0; - } -#endif - - TRACE("%s %i %p %p %i\n", debugstr_w(lpszFile), nIconIndex, phiconLarge, phiconSmall, nIcons); - - return PrivateExtractIconExW(lpszFile, nIconIndex, phiconLarge, phiconSmall, nIcons); -} - -/************************************************************************* - * ExtractIconExA [SHELL32.@] - */ -UINT WINAPI ExtractIconExA(LPCSTR lpszFile, INT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIcons) -{ - UINT ret = 0; - INT len = MultiByteToWideChar(CP_ACP, 0, lpszFile, -1, NULL, 0); - LPWSTR lpwstrFile = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - - TRACE("%s %i %p %p %i\n", lpszFile, nIconIndex, phiconLarge, phiconSmall, nIcons); - - if (lpwstrFile) - { - MultiByteToWideChar(CP_ACP, 0, lpszFile, -1, lpwstrFile, len); - ret = ExtractIconExW(lpwstrFile, nIconIndex, phiconLarge, phiconSmall, nIcons); - HeapFree(GetProcessHeap(), 0, lpwstrFile); - } - return ret; -} - -/************************************************************************* - * ExtractAssociatedIconA (SHELL32.@) - * - * Return icon for given file (either from file itself or from associated - * executable) and patch parameters if needed. - */ -HICON WINAPI ExtractAssociatedIconA(HINSTANCE hInst, LPSTR lpIconPath, LPWORD lpiIcon) -{ - HICON hIcon = NULL; - INT len = MultiByteToWideChar(CP_ACP, 0, lpIconPath, -1, NULL, 0); - /* Note that we need to allocate MAX_PATH, since we are supposed to fill - * the correct executable if there is no icon in lpIconPath directly. - * lpIconPath itself is supposed to be large enough, so make sure lpIconPathW - * is large enough too. Yes, I am puking too. - */ - LPWSTR lpIconPathW = HeapAlloc(GetProcessHeap(), 0, MAX_PATH * sizeof(WCHAR)); - - TRACE("%p %s %p\n", hInst, debugstr_a(lpIconPath), lpiIcon); - - if (lpIconPathW) - { - MultiByteToWideChar(CP_ACP, 0, lpIconPath, -1, lpIconPathW, len); - hIcon = ExtractAssociatedIconW(hInst, lpIconPathW, lpiIcon); - WideCharToMultiByte(CP_ACP, 0, lpIconPathW, -1, lpIconPath, MAX_PATH , NULL, NULL); - HeapFree(GetProcessHeap(), 0, lpIconPathW); - } - return hIcon; -} - -/************************************************************************* - * ExtractAssociatedIconW (SHELL32.@) - * - * Return icon for given file (either from file itself or from associated - * executable) and patch parameters if needed. - */ -HICON WINAPI ExtractAssociatedIconW(HINSTANCE hInst, LPWSTR lpIconPath, LPWORD lpiIcon) -{ - HICON hIcon = NULL; - WORD wDummyIcon = 0; - - TRACE("%p %s %p\n", hInst, debugstr_w(lpIconPath), lpiIcon); - - if(lpiIcon == NULL) - lpiIcon = &wDummyIcon; - - hIcon = ExtractIconW(hInst, lpIconPath, *lpiIcon); - - if( hIcon < (HICON)2 ) - { if( hIcon == (HICON)1 ) /* no icons found in given file */ - { WCHAR tempPath[MAX_PATH]; - HINSTANCE uRet = FindExecutableW(lpIconPath,NULL,tempPath); - - if( uRet > (HINSTANCE)32 && tempPath[0] ) - { wcscpy(lpIconPath,tempPath); - hIcon = ExtractIconW(hInst, lpIconPath, *lpiIcon); - if( hIcon > (HICON)2 ) - return hIcon; - } - } - - if( hIcon == (HICON)1 ) - *lpiIcon = 2; /* MSDOS icon - we found .exe but no icons in it */ - else - *lpiIcon = 6; /* generic icon - found nothing */ - - if (GetModuleFileNameW(hInst, lpIconPath, MAX_PATH)) - hIcon = LoadIconW(hInst, MAKEINTRESOURCEW(*lpiIcon)); - } - return hIcon; -} - -/************************************************************************* - * ExtractAssociatedIconExW (SHELL32.@) - * - * Return icon for given file (either from file itself or from associated - * executable) and patch parameters if needed. - */ -HICON WINAPI ExtractAssociatedIconExW(HINSTANCE hInst, LPWSTR lpIconPath, LPWORD lpiIconIdx, LPWORD lpiIconId) -{ - FIXME("%p %s %p %p): stub\n", hInst, debugstr_w(lpIconPath), lpiIconIdx, lpiIconId); - return 0; -} - -/************************************************************************* - * ExtractAssociatedIconExA (SHELL32.@) - * - * Return icon for given file (either from file itself or from associated - * executable) and patch parameters if needed. - */ -HICON WINAPI ExtractAssociatedIconExA(HINSTANCE hInst, LPSTR lpIconPath, LPWORD lpiIconIdx, LPWORD lpiIconId) -{ - HICON ret; - INT len = MultiByteToWideChar( CP_ACP, 0, lpIconPath, -1, NULL, 0 ); - LPWSTR lpwstrFile = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); - - TRACE("%p %s %p %p)\n", hInst, lpIconPath, lpiIconIdx, lpiIconId); - - MultiByteToWideChar( CP_ACP, 0, lpIconPath, -1, lpwstrFile, len ); - ret = ExtractAssociatedIconExW(hInst, lpwstrFile, lpiIconIdx, lpiIconId); - HeapFree(GetProcessHeap(), 0, lpwstrFile); - return ret; -} - - -/**************************************************************************** - * SHDefExtractIconW [SHELL32.@] - */ -HRESULT WINAPI SHDefExtractIconW(LPCWSTR pszIconFile, int iIndex, UINT uFlags, - HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) -{ - UINT ret; - HICON hIcons[2]; - WARN("%s %d 0x%08x %p %p %d, semi-stub\n", debugstr_w(pszIconFile), iIndex, uFlags, phiconLarge, phiconSmall, nIconSize); - - ret = PrivateExtractIconsW(pszIconFile, iIndex, nIconSize, nIconSize, hIcons, NULL, 2, LR_DEFAULTCOLOR); - /* FIXME: deal with uFlags parameter which contains GIL_ flags */ - if (ret == 0xFFFFFFFF) - return E_FAIL; - if (ret > 0) { - if (phiconLarge) - *phiconLarge = hIcons[0]; - else - DestroyIcon(hIcons[0]); - if (phiconSmall) - *phiconSmall = hIcons[1]; - else - DestroyIcon(hIcons[1]); - return S_OK; - } - return S_FALSE; -} - -/**************************************************************************** - * SHDefExtractIconA [SHELL32.@] - */ -HRESULT WINAPI SHDefExtractIconA(LPCSTR pszIconFile, int iIndex, UINT uFlags, - HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) -{ - HRESULT ret; - INT len = MultiByteToWideChar(CP_ACP, 0, pszIconFile, -1, NULL, 0); - LPWSTR lpwstrFile = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - - TRACE("%s %d 0x%08x %p %p %d\n", pszIconFile, iIndex, uFlags, phiconLarge, phiconSmall, nIconSize); - - MultiByteToWideChar(CP_ACP, 0, pszIconFile, -1, lpwstrFile, len); - ret = SHDefExtractIconW(lpwstrFile, iIndex, uFlags, phiconLarge, phiconSmall, nIconSize); - HeapFree(GetProcessHeap(), 0, lpwstrFile); - return ret; -} - -/**************************************************************************** - * SHGetIconOverlayIndexA [SHELL32.@] - * - * Returns the index of the overlay icon in the system image list. - */ -INT WINAPI SHGetIconOverlayIndexA(LPCSTR pszIconPath, INT iIconIndex) -{ - FIXME("%s, %d\n", debugstr_a(pszIconPath), iIconIndex); - - return -1; -} - -/**************************************************************************** - * SHGetIconOverlayIndexW [SHELL32.@] - * - * Returns the index of the overlay icon in the system image list. - */ -INT WINAPI SHGetIconOverlayIndexW(LPCWSTR pszIconPath, INT iIconIndex) -{ - FIXME("%s, %d\n", debugstr_w(pszIconPath), iIconIndex); - - return -1; -} diff --git a/reactos/dll/win32/shell32/pidl.c b/reactos/dll/win32/shell32/pidl.c deleted file mode 100644 index 59985de032b..00000000000 --- a/reactos/dll/win32/shell32/pidl.c +++ /dev/null @@ -1,2428 +0,0 @@ -/* - * pidl Handling - * - * Copyright 1998 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * NOTES - * a pidl == NULL means desktop and is legal - * - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(pidl); -WINE_DECLARE_DEBUG_CHANNEL(shell); - -/* from comctl32.dll */ -extern LPVOID WINAPI Alloc(INT); -extern BOOL WINAPI Free(LPVOID); - -static LPSTR _ILGetSTextPointer(LPCITEMIDLIST pidl); -static LPWSTR _ILGetTextPointerW(LPCITEMIDLIST pidl); - -/************************************************************************* - * ILGetDisplayNameExA [SHELL32.186] - * - * Retrieves the display name of an ItemIDList - * - * PARAMS - * psf [I] Shell Folder to start with, if NULL the desktop is used - * pidl [I] ItemIDList relative to the psf to get the display name for - * path [O] Filled in with the display name, assumed to be at least MAX_PATH long - * type [I] Type of display name to retrieve - * 0 = SHGDN_FORPARSING | SHGDN_FORADDRESSBAR uses always the desktop as root - * 1 = SHGDN_NORMAL relative to the root folder - * 2 = SHGDN_INFOLDER relative to the root folder, only the last name - * - * RETURNS - * True if the display name could be retrieved successfully, False otherwise - */ -static BOOL ILGetDisplayNameExA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPSTR path, DWORD type) -{ - BOOL ret = FALSE; - WCHAR wPath[MAX_PATH]; - - TRACE("%p %p %p %d\n", psf, pidl, path, type); - - if (!pidl || !path) - return FALSE; - - ret = ILGetDisplayNameExW(psf, pidl, wPath, type); - WideCharToMultiByte(CP_ACP, 0, wPath, -1, path, MAX_PATH, NULL, NULL); - TRACE("%p %p %s\n", psf, pidl, debugstr_a(path)); - - return ret; -} - -BOOL WINAPI ILGetDisplayNameExW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPWSTR path, DWORD type) -{ - LPSHELLFOLDER psfParent, lsf = psf; - HRESULT ret = NO_ERROR; - LPCITEMIDLIST pidllast; - STRRET strret; - DWORD flag; - - TRACE("%p %p %p %d\n", psf, pidl, path, type); - - if (!pidl || !path) - return FALSE; - - if (!lsf) - { - ret = SHGetDesktopFolder(&lsf); - if (FAILED(ret)) - return FALSE; - } - - if (type <= 2) - { - switch (type) - { - case ILGDN_FORPARSING: - flag = SHGDN_FORPARSING | SHGDN_FORADDRESSBAR; - break; - case ILGDN_NORMAL: - flag = SHGDN_NORMAL; - break; - case ILGDN_INFOLDER: - flag = SHGDN_INFOLDER; - break; - default: - FIXME("Unknown type parameter = %x\n", type); - flag = SHGDN_FORPARSING | SHGDN_FORADDRESSBAR; - break; - } - if (!*(const WORD*)pidl || type == ILGDN_FORPARSING) - { - ret = IShellFolder_GetDisplayNameOf(lsf, pidl, flag, &strret); - if (SUCCEEDED(ret)) - { - if(!StrRetToStrNW(path, MAX_PATH, &strret, pidl)) - ret = E_FAIL; - } - } - else - { - ret = SHBindToParent(pidl, &IID_IShellFolder, (LPVOID*)&psfParent, &pidllast); - if (SUCCEEDED(ret)) - { - ret = IShellFolder_GetDisplayNameOf(psfParent, pidllast, flag, &strret); - if (SUCCEEDED(ret)) - { - if(!StrRetToStrNW(path, MAX_PATH, &strret, pidllast)) - ret = E_FAIL; - } - IShellFolder_Release(psfParent); - } - } - } - - TRACE("%p %p %s\n", psf, pidl, debugstr_w(path)); - - if (!psf) - IShellFolder_Release(lsf); - return SUCCEEDED(ret); -} - -/************************************************************************* - * ILGetDisplayNameEx [SHELL32.186] - */ -BOOL WINAPI ILGetDisplayNameEx(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPVOID path, DWORD type) -{ - TRACE_(shell)("%p %p %p %d\n", psf, pidl, path, type); - - if (SHELL_OsIsUnicode()) - return ILGetDisplayNameExW(psf, pidl, path, type); - return ILGetDisplayNameExA(psf, pidl, path, type); -} - -/************************************************************************* - * ILGetDisplayName [SHELL32.15] - */ -BOOL WINAPI ILGetDisplayName(LPCITEMIDLIST pidl, LPVOID path) -{ - TRACE_(shell)("%p %p\n", pidl, path); - - if (SHELL_OsIsUnicode()) - return ILGetDisplayNameExW(NULL, pidl, path, ILGDN_FORPARSING); - return ILGetDisplayNameExA(NULL, pidl, path, ILGDN_FORPARSING); -} - -/************************************************************************* - * ILFindLastID [SHELL32.16] - * - * NOTES - * observed: pidl=Desktop return=pidl - */ -LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl) -{ - LPCITEMIDLIST pidlLast = pidl; - - TRACE("(pidl=%p)\n",pidl); - - if (!pidl) - return NULL; - - while (pidl->mkid.cb) - { - pidlLast = pidl; - pidl = ILGetNext(pidl); - } - return (LPITEMIDLIST)pidlLast; -} - -/************************************************************************* - * ILRemoveLastID [SHELL32.17] - * - * NOTES - * when pidl=Desktop return=FALSE - */ -BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl) -{ - TRACE_(shell)("pidl=%p\n",pidl); - - if (!pidl || !pidl->mkid.cb) - return 0; - ILFindLastID(pidl)->mkid.cb = 0; - return 1; -} - -/************************************************************************* - * ILClone [SHELL32.18] - * - * NOTES - * duplicate an idlist - */ -LPITEMIDLIST WINAPI ILClone (LPCITEMIDLIST pidl) -{ - DWORD len; - LPITEMIDLIST newpidl; - - if (!pidl) - return NULL; - - len = ILGetSize(pidl); - newpidl = SHAlloc(len); - if (newpidl) - memcpy(newpidl,pidl,len); - - TRACE("pidl=%p newpidl=%p\n",pidl, newpidl); - pdump(pidl); - - return newpidl; -} - -/************************************************************************* - * ILCloneFirst [SHELL32.19] - * - * NOTES - * duplicates the first idlist of a complex pidl - */ -LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl) -{ - DWORD len; - LPITEMIDLIST pidlNew = NULL; - - TRACE("pidl=%p\n", pidl); - pdump(pidl); - - if (pidl) - { - len = pidl->mkid.cb; - pidlNew = SHAlloc(len+2); - if (pidlNew) - { - memcpy(pidlNew,pidl,len+2); /* 2 -> mind a desktop pidl */ - - if (len) - ILGetNext(pidlNew)->mkid.cb = 0x00; - } - } - TRACE("-- newpidl=%p\n",pidlNew); - - return pidlNew; -} - -/************************************************************************* - * ILLoadFromStream (SHELL32.26) - * - * NOTES - * the first two bytes are the len, the pidl is following then - */ -HRESULT WINAPI ILLoadFromStream (IStream * pStream, LPITEMIDLIST * ppPidl) -{ - WORD wLen = 0; - DWORD dwBytesRead; - HRESULT ret = E_FAIL; - - - TRACE_(shell)("%p %p\n", pStream , ppPidl); - - SHFree(*ppPidl); - *ppPidl = NULL; - - IStream_AddRef (pStream); - - if (SUCCEEDED(IStream_Read(pStream, &wLen, 2, &dwBytesRead))) - { - TRACE("PIDL length is %d\n", wLen); - if (wLen != 0) - { - *ppPidl = SHAlloc (wLen); - if (SUCCEEDED(IStream_Read(pStream, *ppPidl , wLen, &dwBytesRead))) - { - TRACE("Stream read OK\n"); - ret = S_OK; - } - else - { - WARN("reading pidl failed\n"); - SHFree(*ppPidl); - *ppPidl = NULL; - } - } - else - { - *ppPidl = NULL; - ret = S_OK; - } - } - - /* we are not yet fully compatible */ - if (*ppPidl && !pcheck(*ppPidl)) - { - WARN("Check failed\n"); - SHFree(*ppPidl); - *ppPidl = NULL; - } - - IStream_Release (pStream); - TRACE("done\n"); - return ret; -} - -/************************************************************************* - * ILSaveToStream (SHELL32.27) - * - * NOTES - * the first two bytes are the len, the pidl is following then - */ -HRESULT WINAPI ILSaveToStream (IStream * pStream, LPCITEMIDLIST pPidl) -{ - WORD wLen = 0; - HRESULT ret = E_FAIL; - - TRACE_(shell)("%p %p\n", pStream, pPidl); - - IStream_AddRef (pStream); - - wLen = ILGetSize(pPidl); - - if (SUCCEEDED(IStream_Write(pStream, &wLen, 2, NULL))) - { - if (SUCCEEDED(IStream_Write(pStream, pPidl, wLen, NULL))) - ret = S_OK; - } - IStream_Release (pStream); - - return ret; -} - -/************************************************************************* - * SHILCreateFromPath [SHELL32.28] - * - * Create an ItemIDList from a path - * - * PARAMS - * path [I] - * ppidl [O] - * attributes [I/O] requested attributes on call and actual attributes when - * the function returns - * - * RETURNS - * NO_ERROR if successful, or an OLE errer code otherwise - * - * NOTES - * Wrapper for IShellFolder_ParseDisplayName(). - */ -HRESULT WINAPI SHILCreateFromPathA(LPCSTR path, LPITEMIDLIST * ppidl, DWORD * attributes) -{ - WCHAR lpszDisplayName[MAX_PATH]; - - TRACE_(shell)("%s %p 0x%08x\n", path, ppidl, attributes ? *attributes : 0); - - if (!MultiByteToWideChar(CP_ACP, 0, path, -1, lpszDisplayName, MAX_PATH)) - lpszDisplayName[MAX_PATH-1] = 0; - - return SHILCreateFromPathW(lpszDisplayName, ppidl, attributes); -} - -HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST * ppidl, DWORD * attributes) -{ - LPSHELLFOLDER sf; - DWORD pchEaten; - HRESULT ret = E_FAIL; - - TRACE_(shell)("%s %p 0x%08x\n", debugstr_w(path), ppidl, attributes ? *attributes : 0); - - if (SUCCEEDED (SHGetDesktopFolder(&sf))) - { - ret = IShellFolder_ParseDisplayName(sf, 0, NULL, (LPWSTR)path, &pchEaten, ppidl, attributes); - IShellFolder_Release(sf); - } - return ret; -} - -HRESULT WINAPI SHILCreateFromPathAW (LPCVOID path, LPITEMIDLIST * ppidl, DWORD * attributes) -{ - if ( SHELL_OsIsUnicode()) - return SHILCreateFromPathW (path, ppidl, attributes); - return SHILCreateFromPathA (path, ppidl, attributes); -} - -/************************************************************************* - * SHCloneSpecialIDList [SHELL32.89] - * - * Create an ItemIDList to one of the special folders. - - * PARAMS - * hwndOwner [in] - * nFolder [in] CSIDL_xxxxx - * fCreate [in] Create folder if it does not exist - * - * RETURNS - * Success: The newly created pidl - * Failure: NULL, if inputs are invalid. - * - * NOTES - * exported by ordinal. - * Caller is responsible for deallocating the returned ItemIDList with the - * shells IMalloc interface, aka ILFree. - */ -LPITEMIDLIST WINAPI SHCloneSpecialIDList(HWND hwndOwner, int nFolder, BOOL fCreate) -{ - LPITEMIDLIST ppidl; - TRACE_(shell)("(hwnd=%p,csidl=0x%x,%s).\n", hwndOwner, nFolder, fCreate ? "T" : "F"); - - if (fCreate) - nFolder |= CSIDL_FLAG_CREATE; - - SHGetSpecialFolderLocation(hwndOwner, nFolder, &ppidl); - return ppidl; -} - -/************************************************************************* - * ILGlobalClone [SHELL32.20] - * - * Clones an ItemIDList using Alloc. - * - * PARAMS - * pidl [I] ItemIDList to clone - * - * RETURNS - * Newly allocated ItemIDList. - * - * NOTES - * exported by ordinal. - */ -LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl) -{ - DWORD len; - LPITEMIDLIST newpidl; - - if (!pidl) - return NULL; - - len = ILGetSize(pidl); - newpidl = Alloc(len); - if (newpidl) - memcpy(newpidl,pidl,len); - - TRACE("pidl=%p newpidl=%p\n",pidl, newpidl); - pdump(pidl); - - return newpidl; -} - -/************************************************************************* - * ILIsEqual [SHELL32.21] - * - */ -BOOL WINAPI ILIsEqual(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - char szData1[MAX_PATH]; - char szData2[MAX_PATH]; - - LPCITEMIDLIST pidltemp1 = pidl1; - LPCITEMIDLIST pidltemp2 = pidl2; - - TRACE("pidl1=%p pidl2=%p\n",pidl1, pidl2); - - /* - * Explorer reads from registry directly (StreamMRU), - * so we can only check here - */ - if (!pcheck(pidl1) || !pcheck (pidl2)) - return FALSE; - - pdump (pidl1); - pdump (pidl2); - - if (!pidl1 || !pidl2) - return FALSE; - - while (pidltemp1->mkid.cb && pidltemp2->mkid.cb) - { - _ILSimpleGetText(pidltemp1, szData1, MAX_PATH); - _ILSimpleGetText(pidltemp2, szData2, MAX_PATH); - - if (strcmp( szData1, szData2 )) - return FALSE; - - pidltemp1 = ILGetNext(pidltemp1); - pidltemp2 = ILGetNext(pidltemp2); - } - - if (!pidltemp1->mkid.cb && !pidltemp2->mkid.cb) - return TRUE; - - return FALSE; -} - -/************************************************************************* - * ILIsParent [SHELL32.23] - * - * Verifies that pidlParent is indeed the (immediate) parent of pidlChild. - * - * PARAMS - * pidlParent [I] - * pidlChild [I] - * bImmediate [I] only return true if the parent is the direct parent - * of the child - * - * RETURNS - * True if the parent ItemIDlist is a complete part of the child ItemIdList, - * False otherwise. - * - * NOTES - * parent = a/b, child = a/b/c -> true, c is in folder a/b - * child = a/b/c/d -> false if bImmediate is true, d is not in folder a/b - * child = a/b/c/d -> true if bImmediate is false, d is in a subfolder of a/b - */ -BOOL WINAPI ILIsParent(LPCITEMIDLIST pidlParent, LPCITEMIDLIST pidlChild, BOOL bImmediate) -{ - char szData1[MAX_PATH]; - char szData2[MAX_PATH]; - LPCITEMIDLIST pParent = pidlParent; - LPCITEMIDLIST pChild = pidlChild; - - TRACE("%p %p %x\n", pidlParent, pidlChild, bImmediate); - - if (!pParent || !pChild) - return FALSE; - - while (pParent->mkid.cb && pChild->mkid.cb) - { - _ILSimpleGetText(pParent, szData1, MAX_PATH); - _ILSimpleGetText(pChild, szData2, MAX_PATH); - - if (strcmp( szData1, szData2 )) - return FALSE; - - pParent = ILGetNext(pParent); - pChild = ILGetNext(pChild); - } - - /* child shorter or has equal length to parent */ - if (pParent->mkid.cb || !pChild->mkid.cb) - return FALSE; - - /* not immediate descent */ - if ( ILGetNext(pChild)->mkid.cb && bImmediate) - return FALSE; - - return TRUE; -} - -/************************************************************************* - * ILFindChild [SHELL32.24] - * - * Compares elements from pidl1 and pidl2. - * - * PARAMS - * pidl1 [I] - * pidl2 [I] - * - * RETURNS - * pidl1 is desktop pidl2 - * pidl1 shorter pidl2 pointer to first different element of pidl2 - * if there was at least one equal element - * pidl2 shorter pidl1 0 - * pidl2 equal pidl1 pointer to last 0x00-element of pidl2 - * - * NOTES - * exported by ordinal. - */ -LPITEMIDLIST WINAPI ILFindChild(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - char szData1[MAX_PATH]; - char szData2[MAX_PATH]; - - LPCITEMIDLIST pidltemp1 = pidl1; - LPCITEMIDLIST pidltemp2 = pidl2; - LPCITEMIDLIST ret=NULL; - - TRACE("pidl1=%p pidl2=%p\n",pidl1, pidl2); - - /* explorer reads from registry directly (StreamMRU), - so we can only check here */ - if ((!pcheck (pidl1)) || (!pcheck (pidl2))) - return FALSE; - - pdump (pidl1); - pdump (pidl2); - - if (_ILIsDesktop(pidl1)) - { - ret = pidl2; - } - else - { - while (pidltemp1->mkid.cb && pidltemp2->mkid.cb) - { - _ILSimpleGetText(pidltemp1, szData1, MAX_PATH); - _ILSimpleGetText(pidltemp2, szData2, MAX_PATH); - - if (strcmp(szData1,szData2)) - break; - - pidltemp1 = ILGetNext(pidltemp1); - pidltemp2 = ILGetNext(pidltemp2); - ret = pidltemp2; - } - - if (pidltemp1->mkid.cb) - ret = NULL; /* elements of pidl1 left*/ - } - TRACE_(shell)("--- %p\n", ret); - return (LPITEMIDLIST)ret; /* pidl 1 is shorter */ -} - -/************************************************************************* - * ILCombine [SHELL32.25] - * - * Concatenates two complex ItemIDLists. - * - * PARAMS - * pidl1 [I] first complex ItemIDLists - * pidl2 [I] complex ItemIDLists to append - * - * RETURNS - * if both pidl's == NULL NULL - * if pidl1 == NULL cloned pidl2 - * if pidl2 == NULL cloned pidl1 - * otherwise new pidl with pidl2 appended to pidl1 - * - * NOTES - * exported by ordinal. - * Does not destroy the passed in ItemIDLists! - */ -LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - DWORD len1,len2; - LPITEMIDLIST pidlNew; - - TRACE("pidl=%p pidl=%p\n",pidl1,pidl2); - - if (!pidl1 && !pidl2) return NULL; - - pdump (pidl1); - pdump (pidl2); - - if (!pidl1) - { - pidlNew = ILClone(pidl2); - return pidlNew; - } - - if (!pidl2) - { - pidlNew = ILClone(pidl1); - return pidlNew; - } - - len1 = ILGetSize(pidl1)-2; - len2 = ILGetSize(pidl2); - pidlNew = SHAlloc(len1+len2); - - if (pidlNew) - { - memcpy(pidlNew,pidl1,len1); - memcpy(((BYTE *)pidlNew)+len1,pidl2,len2); - } - - /* TRACE(pidl,"--new pidl=%p\n",pidlNew);*/ - return pidlNew; -} - -/************************************************************************* - * SHGetRealIDL [SHELL32.98] - * - * NOTES - */ -HRESULT WINAPI SHGetRealIDL(LPSHELLFOLDER lpsf, LPCITEMIDLIST pidlSimple, LPITEMIDLIST *pidlReal) -{ - IDataObject* pDataObj; - HRESULT hr; - - hr = IShellFolder_GetUIObjectOf(lpsf, 0, 1, &pidlSimple, - &IID_IDataObject, 0, (LPVOID*)&pDataObj); - if (SUCCEEDED(hr)) - { - STGMEDIUM medium; - FORMATETC fmt; - - fmt.cfFormat = RegisterClipboardFormatW(CFSTR_SHELLIDLIST); - fmt.ptd = NULL; - fmt.dwAspect = DVASPECT_CONTENT; - fmt.lindex = -1; - fmt.tymed = TYMED_HGLOBAL; - - hr = IDataObject_GetData(pDataObj, &fmt, &medium); - - IDataObject_Release(pDataObj); - - if (SUCCEEDED(hr)) - { - /*assert(pida->cidl==1);*/ - LPIDA pida = GlobalLock(medium.u.hGlobal); - - LPCITEMIDLIST pidl_folder = (LPCITEMIDLIST) ((LPBYTE)pida+pida->aoffset[0]); - LPCITEMIDLIST pidl_child = (LPCITEMIDLIST) ((LPBYTE)pida+pida->aoffset[1]); - - *pidlReal = ILCombine(pidl_folder, pidl_child); - - if (!*pidlReal) - hr = E_OUTOFMEMORY; - - GlobalUnlock(medium.u.hGlobal); - GlobalFree(medium.u.hGlobal); - } - } - - return hr; -} - -/************************************************************************* - * SHLogILFromFSIL [SHELL32.95] - * - * NOTES - * pild = CSIDL_DESKTOP ret = 0 - * pild = CSIDL_DRIVES ret = 0 - */ -LPITEMIDLIST WINAPI SHLogILFromFSIL(LPITEMIDLIST pidl) -{ - FIXME("(pidl=%p)\n",pidl); - - pdump(pidl); - - return 0; -} - -/************************************************************************* - * ILGetSize [SHELL32.152] - * - * Gets the byte size of an ItemIDList including zero terminator - * - * PARAMS - * pidl [I] ItemIDList - * - * RETURNS - * size of pidl in bytes - * - * NOTES - * exported by ordinal - */ -UINT WINAPI ILGetSize(LPCITEMIDLIST pidl) -{ - LPCSHITEMID si = &(pidl->mkid); - UINT len=0; - - if (pidl) - { - while (si->cb) - { - len += si->cb; - si = (LPCSHITEMID)(((const BYTE*)si)+si->cb); - } - len += 2; - } - TRACE("pidl=%p size=%u\n",pidl, len); - return len; -} - -/************************************************************************* - * ILGetNext [SHELL32.153] - * - * Gets the next ItemID of an ItemIDList - * - * PARAMS - * pidl [I] ItemIDList - * - * RETURNS - * null -> null - * desktop -> null - * simple pidl -> pointer to 0x0000 element - * - * NOTES - * exported by ordinal. - */ -LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl) -{ - WORD len; - - TRACE("%p\n", pidl); - - if (pidl) - { - len = pidl->mkid.cb; - if (len) - { - pidl = (LPCITEMIDLIST) (((const BYTE*)pidl)+len); - TRACE("-- %p\n", pidl); - return (LPITEMIDLIST)pidl; - } - } - return NULL; -} - -/************************************************************************* - * ILAppend [SHELL32.154] - * - * Adds the single ItemID item to the ItemIDList indicated by pidl. - * If bEnd is FALSE, inserts the item in the front of the list, - * otherwise it adds the item to the end. (???) - * - * PARAMS - * pidl [I] ItemIDList to extend - * item [I] ItemID to prepend/append - * bEnd [I] Indicates if the item should be appended - * - * NOTES - * Destroys the passed in idlist! (???) - */ -LPITEMIDLIST WINAPI ILAppend(LPITEMIDLIST pidl, LPCITEMIDLIST item, BOOL bEnd) -{ - LPITEMIDLIST idlRet; - - WARN("(pidl=%p,pidl=%p,%08u)semi-stub\n",pidl,item,bEnd); - - pdump (pidl); - pdump (item); - - if (_ILIsDesktop(pidl)) - { - idlRet = ILClone(item); - SHFree (pidl); - return idlRet; - } - - if (bEnd) - idlRet = ILCombine(pidl, item); - else - idlRet = ILCombine(item, pidl); - - SHFree(pidl); - return idlRet; -} - -/************************************************************************* - * ILFree [SHELL32.155] - * - * Frees memory (if not NULL) allocated by SHMalloc allocator - * - * PARAMS - * pidl [I] - * - * RETURNS - * Nothing - * - * NOTES - * exported by ordinal - */ -void WINAPI ILFree(LPITEMIDLIST pidl) -{ - TRACE("(pidl=%p)\n",pidl); - SHFree(pidl); -} - -/************************************************************************* - * ILGlobalFree [SHELL32.156] - * - * Frees memory (if not NULL) allocated by Alloc allocator - * - * PARAMS - * pidl [I] - * - * RETURNS - * Nothing - * - * NOTES - * exported by ordinal. - */ -void WINAPI ILGlobalFree( LPITEMIDLIST pidl) -{ - TRACE("%p\n", pidl); - - Free(pidl); -} - -/************************************************************************* - * ILCreateFromPathA [SHELL32.189] - * - * Creates a complex ItemIDList from a path and returns it. - * - * PARAMS - * path [I] - * - * RETURNS - * the newly created complex ItemIDList or NULL if failed - * - * NOTES - * exported by ordinal. - */ -LPITEMIDLIST WINAPI ILCreateFromPathA (LPCSTR path) -{ - LPITEMIDLIST pidlnew = NULL; - - TRACE_(shell)("%s\n", debugstr_a(path)); - - if (SUCCEEDED(SHILCreateFromPathA(path, &pidlnew, NULL))) - return pidlnew; - return NULL; -} - -/************************************************************************* - * ILCreateFromPathW [SHELL32.190] - * - * See ILCreateFromPathA. - */ -LPITEMIDLIST WINAPI ILCreateFromPathW (LPCWSTR path) -{ - LPITEMIDLIST pidlnew = NULL; - - TRACE_(shell)("%s\n", debugstr_w(path)); - - if (SUCCEEDED(SHILCreateFromPathW(path, &pidlnew, NULL))) - return pidlnew; - return NULL; -} - -/************************************************************************* - * ILCreateFromPath [SHELL32.157] - */ -LPITEMIDLIST WINAPI ILCreateFromPathAW (LPCVOID path) -{ - if ( SHELL_OsIsUnicode()) - return ILCreateFromPathW (path); - return ILCreateFromPathA (path); -} - -/************************************************************************* - * _ILParsePathW [internal] - * - * Creates an ItemIDList from a path and returns it. - * - * PARAMS - * path [I] path to parse and convert into an ItemIDList - * lpFindFile [I] pointer to buffer to initialize the FileSystem - * Bind Data object with - * bBindCtx [I] indicates to create a BindContext and assign a - * FileSystem Bind Data object - * ppidl [O] the newly create ItemIDList - * prgfInOut [I/O] requested attributes on input and actual - * attributes on return - * - * RETURNS - * NO_ERROR on success or an OLE error code - * - * NOTES - * If either lpFindFile is non-NULL or bBindCtx is TRUE, this function - * creates a BindContext object and assigns a FileSystem Bind Data object - * to it, passing the BindContext to IShellFolder_ParseDisplayName. Each - * IShellFolder uses that FileSystem Bind Data object of the BindContext - * to pass data about the current path element to the next object. This - * is used to avoid having to verify the current path element on disk, so - * that creating an ItemIDList from a nonexistent path still can work. - */ -static HRESULT _ILParsePathW(LPCWSTR path, LPWIN32_FIND_DATAW lpFindFile, - BOOL bBindCtx, LPITEMIDLIST *ppidl, LPDWORD prgfInOut) -{ - LPSHELLFOLDER pSF = NULL; - LPBC pBC = NULL; - HRESULT ret; - - TRACE("%s %p %d (%p)->%p (%p)->0x%x\n", debugstr_w(path), lpFindFile, bBindCtx, - ppidl, ppidl ? *ppidl : NULL, - prgfInOut, prgfInOut ? *prgfInOut : 0); - - ret = SHGetDesktopFolder(&pSF); - if (FAILED(ret)) - return ret; - - if (lpFindFile || bBindCtx) - ret = IFileSystemBindData_Constructor(lpFindFile, &pBC); - - if (SUCCEEDED(ret)) - { - ret = IShellFolder_ParseDisplayName(pSF, 0, pBC, (LPOLESTR)path, NULL, ppidl, prgfInOut); - } - - if (pBC) - { - IBindCtx_Release(pBC); - pBC = NULL; - } - - IShellFolder_Release(pSF); - - if (FAILED(ret) && ppidl) - *ppidl = NULL; - - TRACE("%s %p 0x%x\n", debugstr_w(path), ppidl ? *ppidl : NULL, prgfInOut ? *prgfInOut : 0); - - return ret; -} - -/************************************************************************* - * SHSimpleIDListFromPath [SHELL32.162] - * - * Creates a simple ItemIDList from a path and returns it. This function - * does not fail on nonexistent paths. - * - * PARAMS - * path [I] path to parse and convert into an ItemIDList - * - * RETURNS - * the newly created simple ItemIDList - * - * NOTES - * Simple in the name does not mean a relative ItemIDList but rather a - * fully qualified list, where only the file name is filled in and the - * directory flag for those ItemID elements this is known about, eg. - * it is not the last element in the ItemIDList or the actual directory - * exists on disk. - * exported by ordinal. - */ -LPITEMIDLIST WINAPI SHSimpleIDListFromPathA(LPCSTR lpszPath) -{ - LPITEMIDLIST pidl = NULL; - LPWSTR wPath = NULL; - int len; - - TRACE("%s\n", debugstr_a(lpszPath)); - - if (lpszPath) - { - len = MultiByteToWideChar(CP_ACP, 0, lpszPath, -1, NULL, 0); - wPath = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, lpszPath, -1, wPath, len); - } - - _ILParsePathW(wPath, NULL, TRUE, &pidl, NULL); - - HeapFree(GetProcessHeap(), 0, wPath); - TRACE("%s %p\n", debugstr_a(lpszPath), pidl); - return pidl; -} - -LPITEMIDLIST WINAPI SHSimpleIDListFromPathW(LPCWSTR lpszPath) -{ - LPITEMIDLIST pidl = NULL; - - TRACE("%s\n", debugstr_w(lpszPath)); - - _ILParsePathW(lpszPath, NULL, TRUE, &pidl, NULL); - TRACE("%s %p\n", debugstr_w(lpszPath), pidl); - return pidl; -} - -LPITEMIDLIST WINAPI SHSimpleIDListFromPathAW(LPCVOID lpszPath) -{ - if ( SHELL_OsIsUnicode()) - return SHSimpleIDListFromPathW (lpszPath); - return SHSimpleIDListFromPathA (lpszPath); -} - -/************************************************************************* - * SHGetDataFromIDListA [SHELL32.247] - * - * NOTES - * the pidl can be a simple one. since we can't get the path out of the pidl - * we have to take all data from the pidl - */ -HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, - int nFormat, LPVOID dest, int len) -{ - LPSTR filename, shortname; - WIN32_FIND_DATAA * pfd; - - TRACE_(shell)("sf=%p pidl=%p 0x%04x %p 0x%04x stub\n",psf,pidl,nFormat,dest,len); - - pdump(pidl); - if (!psf || !dest) - return E_INVALIDARG; - - switch (nFormat) - { - case SHGDFIL_FINDDATA: - pfd = dest; - - if (_ILIsDrive(pidl) || _ILIsSpecialFolder(pidl)) - return E_INVALIDARG; - - if (len < sizeof(WIN32_FIND_DATAA)) - return E_INVALIDARG; - - ZeroMemory(pfd, sizeof (WIN32_FIND_DATAA)); - _ILGetFileDateTime( pidl, &(pfd->ftLastWriteTime)); - pfd->dwFileAttributes = _ILGetFileAttributes(pidl, NULL, 0); - pfd->nFileSizeLow = _ILGetFileSize ( pidl, NULL, 0); - - filename = _ILGetTextPointer(pidl); - shortname = _ILGetSTextPointer(pidl); - - if (filename) - lstrcpynA(pfd->cFileName, filename, sizeof(pfd->cFileName)); - else - pfd->cFileName[0] = '\0'; - - if (shortname) - lstrcpynA(pfd->cAlternateFileName, shortname, sizeof(pfd->cAlternateFileName)); - else - pfd->cAlternateFileName[0] = '\0'; - return NOERROR; - - case SHGDFIL_NETRESOURCE: - case SHGDFIL_DESCRIPTIONID: - FIXME_(shell)("SHGDFIL %i stub\n", nFormat); - break; - - default: - ERR_(shell)("Unknown SHGDFIL %i, please report\n", nFormat); - } - - return E_INVALIDARG; -} - -/************************************************************************* - * SHGetDataFromIDListW [SHELL32.248] - * - */ -HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, - int nFormat, LPVOID dest, int len) -{ - LPSTR filename, shortname; - WIN32_FIND_DATAW * pfd = dest; - - TRACE_(shell)("sf=%p pidl=%p 0x%04x %p 0x%04x stub\n",psf,pidl,nFormat,dest,len); - - pdump(pidl); - - if (!psf || !dest) - return E_INVALIDARG; - - switch (nFormat) - { - case SHGDFIL_FINDDATA: - pfd = dest; - - if (_ILIsDrive(pidl)) - return E_INVALIDARG; - - if (len < sizeof(WIN32_FIND_DATAW)) - return E_INVALIDARG; - - ZeroMemory(pfd, sizeof (WIN32_FIND_DATAW)); - _ILGetFileDateTime( pidl, &(pfd->ftLastWriteTime)); - pfd->dwFileAttributes = _ILGetFileAttributes(pidl, NULL, 0); - pfd->nFileSizeLow = _ILGetFileSize ( pidl, NULL, 0); - - filename = _ILGetTextPointer(pidl); - shortname = _ILGetSTextPointer(pidl); - - if (!filename) - pfd->cFileName[0] = '\0'; - else if (!MultiByteToWideChar(CP_ACP, 0, filename, -1, pfd->cFileName, MAX_PATH)) - pfd->cFileName[MAX_PATH-1] = 0; - - if (!shortname) - pfd->cAlternateFileName[0] = '\0'; - else if (!MultiByteToWideChar(CP_ACP, 0, shortname, -1, pfd->cAlternateFileName, 14)) - pfd->cAlternateFileName[13] = 0; - return NOERROR; - - case SHGDFIL_NETRESOURCE: - case SHGDFIL_DESCRIPTIONID: - FIXME_(shell)("SHGDFIL %i stub\n", nFormat); - break; - - default: - ERR_(shell)("Unknown SHGDFIL %i, please report\n", nFormat); - } - - return E_INVALIDARG; -} - -/************************************************************************* - * SHGetPathFromIDListA [SHELL32.@][NT 4.0: SHELL32.220] - * - * PARAMETERS - * pidl, [IN] pidl - * pszPath [OUT] path - * - * RETURNS - * path from a passed PIDL. - * - * NOTES - * NULL returns FALSE - * desktop pidl gives path to desktop directory back - * special pidls returning FALSE - */ -BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST pidl, LPSTR pszPath) -{ - WCHAR wszPath[MAX_PATH]; - BOOL bSuccess; - - bSuccess = SHGetPathFromIDListW(pidl, wszPath); - WideCharToMultiByte(CP_ACP, 0, wszPath, -1, pszPath, MAX_PATH, NULL, NULL); - - return bSuccess; -} - -/************************************************************************* - * SHGetPathFromIDListW [SHELL32.@] - * - * See SHGetPathFromIDListA. - */ -BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath) -{ - HRESULT hr; - LPCITEMIDLIST pidlLast; - LPSHELLFOLDER psfFolder; - DWORD dwAttributes; - STRRET strret; - - TRACE_(shell)("(pidl=%p,%p)\n", pidl, pszPath); - pdump(pidl); - - *pszPath = '\0'; - if (!pidl) - return FALSE; - - hr = SHBindToParent(pidl, &IID_IShellFolder, (VOID**)&psfFolder, &pidlLast); - if (FAILED(hr)) return FALSE; - - dwAttributes = SFGAO_FILESYSTEM; - hr = IShellFolder_GetAttributesOf(psfFolder, 1, &pidlLast, &dwAttributes); - if (FAILED(hr) || !(dwAttributes & SFGAO_FILESYSTEM)) { - IShellFolder_Release(psfFolder); - return FALSE; - } - - hr = IShellFolder_GetDisplayNameOf(psfFolder, pidlLast, SHGDN_FORPARSING, &strret); - IShellFolder_Release(psfFolder); - if (FAILED(hr)) return FALSE; - - hr = StrRetToBufW(&strret, pidlLast, pszPath, MAX_PATH); - - TRACE_(shell)("-- %s, 0x%08x\n",debugstr_w(pszPath), hr); - return SUCCEEDED(hr); -} - -/************************************************************************* - * SHBindToParent [shell version 5.0] - */ -HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast) -{ - IShellFolder * psfDesktop; - HRESULT hr=E_FAIL; - - TRACE_(shell)("pidl=%p\n", pidl); - pdump(pidl); - - if (!pidl || !ppv) - return E_INVALIDARG; - - *ppv = NULL; - if (ppidlLast) - *ppidlLast = NULL; - - hr = SHGetDesktopFolder(&psfDesktop); - if (FAILED(hr)) - return hr; - - if (_ILIsPidlSimple(pidl)) - { - /* we are on desktop level */ - hr = IShellFolder_QueryInterface(psfDesktop, riid, ppv); - } - else - { - LPITEMIDLIST pidlParent = ILClone(pidl); - ILRemoveLastID(pidlParent); - hr = IShellFolder_BindToObject(psfDesktop, pidlParent, NULL, riid, ppv); - SHFree (pidlParent); - } - - IShellFolder_Release(psfDesktop); - - if (SUCCEEDED(hr) && ppidlLast) - *ppidlLast = ILFindLastID(pidl); - - TRACE_(shell)("-- psf=%p pidl=%p ret=0x%08x\n", *ppv, (ppidlLast)?*ppidlLast:NULL, hr); - return hr; -} - -/************************************************************************** - * - * internal functions - * - * ### 1. section creating pidls ### - * - ************************************************************************* - */ - -/* Basic PIDL constructor. Allocates size + 5 bytes, where: - * - two bytes are SHITEMID.cb - * - one byte is PIDLDATA.type - * - two bytes are the NULL PIDL terminator - * Sets type of the returned PIDL to type. - */ -static LPITEMIDLIST _ILAlloc(PIDLTYPE type, unsigned int size) -{ - LPITEMIDLIST pidlOut = NULL; - - pidlOut = SHAlloc(size + 5); - if(pidlOut) - { - LPPIDLDATA pData; - LPITEMIDLIST pidlNext; - - ZeroMemory(pidlOut, size + 5); - pidlOut->mkid.cb = size + 3; - - pData = _ILGetDataPointer(pidlOut); - if (pData) - pData->type = type; - - pidlNext = ILGetNext(pidlOut); - if (pidlNext) - pidlNext->mkid.cb = 0x00; - TRACE("-- (pidl=%p, size=%u)\n", pidlOut, size); - } - - return pidlOut; -} - -LPITEMIDLIST _ILCreateDesktop(void) -{ - LPITEMIDLIST ret; - - TRACE("()\n"); - ret = SHAlloc(2); - if (ret) - ret->mkid.cb = 0; - return ret; -} - -LPITEMIDLIST _ILCreateMyComputer(void) -{ - TRACE("()\n"); - return _ILCreateGuid(PT_GUID, &CLSID_MyComputer); -} - -LPITEMIDLIST _ILCreateMyDocuments(void) -{ - TRACE("()\n"); - return _ILCreateGuid(PT_GUID, &CLSID_MyDocuments); -} - -LPITEMIDLIST _ILCreateIExplore(void) -{ - TRACE("()\n"); - return _ILCreateGuid(PT_GUID, &CLSID_Internet); -} - -LPITEMIDLIST _ILCreateControlPanel(void) -{ - LPITEMIDLIST parent = _ILCreateGuid(PT_GUID, &CLSID_MyComputer), ret = NULL; - - TRACE("()\n"); - if (parent) - { - LPITEMIDLIST cpl = _ILCreateGuid(PT_SHELLEXT, &CLSID_ControlPanel); - - if (cpl) - { - ret = ILCombine(parent, cpl); - SHFree(cpl); - } - SHFree(parent); - } - return ret; -} - -LPITEMIDLIST _ILCreatePrinters(void) -{ - LPITEMIDLIST parent = _ILCreateGuid(PT_GUID, &CLSID_MyComputer), ret = NULL; - - TRACE("()\n"); - if (parent) - { - LPITEMIDLIST printers = _ILCreateGuid(PT_YAGUID, &CLSID_Printers); - - if (printers) - { - ret = ILCombine(parent, printers); - SHFree(printers); - } - SHFree(parent); - } - return ret; -} - -LPITEMIDLIST _ILCreateNetwork(void) -{ - TRACE("()\n"); - return _ILCreateGuid(PT_GUID, &CLSID_NetworkPlaces); -} - -LPITEMIDLIST _ILCreateBitBucket(void) -{ - TRACE("()\n"); - return _ILCreateGuid(PT_GUID, &CLSID_RecycleBin); -} - -LPITEMIDLIST _ILCreateAdminTools(void) -{ - TRACE("()\n"); - return _ILCreateGuid(PT_GUID, &CLSID_AdminFolderShortcut); //FIXME -} - -LPITEMIDLIST _ILCreateGuid(PIDLTYPE type, REFIID guid) -{ - LPITEMIDLIST pidlOut; - - if (type == PT_SHELLEXT || type == PT_GUID || type == PT_YAGUID) - { - pidlOut = _ILAlloc(type, sizeof(GUIDStruct)); - if (pidlOut) - { - LPPIDLDATA pData = _ILGetDataPointer(pidlOut); - - pData->u.guid.guid = *guid; - TRACE("-- create GUID-pidl %s\n", - debugstr_guid(&(pData->u.guid.guid))); - } - } - else - { - WARN("%d: invalid type for GUID\n", type); - pidlOut = NULL; - } - return pidlOut; -} - -LPITEMIDLIST _ILCreateGuidFromStrA(LPCSTR szGUID) -{ - IID iid; - - if (FAILED(SHCLSIDFromStringA(szGUID, &iid))) - { - ERR("%s is not a GUID\n", szGUID); - return NULL; - } - return _ILCreateGuid(PT_GUID, &iid); -} - -LPITEMIDLIST _ILCreateGuidFromStrW(LPCWSTR szGUID) -{ - IID iid; - - if (FAILED(CLSIDFromString((LPOLESTR)szGUID, &iid))) - { - ERR("%s is not a GUID\n", debugstr_w(szGUID)); - return NULL; - } - return _ILCreateGuid(PT_GUID, &iid); -} - -LPITEMIDLIST _ILCreateFromFindDataW( const WIN32_FIND_DATAW *wfd ) -{ - char buff[MAX_PATH + 14 +1]; /* see WIN32_FIND_DATA */ - DWORD len, len1, wlen, alen; - LPITEMIDLIST pidl; - PIDLTYPE type; - - if (!wfd) - return NULL; - - TRACE("(%s, %s)\n",debugstr_w(wfd->cAlternateFileName), debugstr_w(wfd->cFileName)); - - /* prepare buffer with both names */ - len = WideCharToMultiByte(CP_ACP,0,wfd->cFileName,-1,buff,MAX_PATH,NULL,NULL); - len1 = WideCharToMultiByte(CP_ACP,0,wfd->cAlternateFileName,-1, buff+len, sizeof(buff)-len, NULL, NULL); - alen = len + len1; - - type = (wfd->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? PT_FOLDER : PT_VALUE; - - wlen = wcslen(wfd->cFileName) + 1; - pidl = _ILAlloc(type, FIELD_OFFSET(FileStruct, szNames[alen + (alen & 1)]) + - FIELD_OFFSET(FileStructW, wszName[wlen]) + sizeof(WORD)); - if (pidl) - { - LPPIDLDATA pData = _ILGetDataPointer(pidl); - FileStruct *fs = &pData->u.file; - FileStructW *fsw; - WORD *pOffsetW; - - FileTimeToDosDateTime( &wfd->ftLastWriteTime, &fs->uFileDate, &fs->uFileTime); - fs->dwFileSize = wfd->nFileSizeLow; - fs->uFileAttribs = wfd->dwFileAttributes; - memcpy(fs->szNames, buff, alen); - - fsw = (FileStructW*)(pData->u.file.szNames + alen + (alen & 0x1)); - fsw->cbLen = FIELD_OFFSET(FileStructW, wszName[wlen]) + sizeof(WORD); - FileTimeToDosDateTime( &wfd->ftCreationTime, &fsw->uCreationDate, &fsw->uCreationTime); - FileTimeToDosDateTime( &wfd->ftLastAccessTime, &fsw->uLastAccessDate, &fsw->uLastAccessTime); - memcpy(fsw->wszName, wfd->cFileName, wlen * sizeof(WCHAR)); - - pOffsetW = (WORD*)((LPBYTE)pidl + pidl->mkid.cb - sizeof(WORD)); - *pOffsetW = (LPBYTE)fsw - (LPBYTE)pidl; - TRACE("-- Set Value: %s\n",debugstr_w(fsw->wszName)); - } - return pidl; - -} - -HRESULT _ILCreateFromPathW(LPCWSTR szPath, LPITEMIDLIST* ppidl) -{ - HANDLE hFile; - WIN32_FIND_DATAW stffile; - - if (!ppidl) - return E_INVALIDARG; - - hFile = FindFirstFileW(szPath, &stffile); - if (hFile == INVALID_HANDLE_VALUE) - return HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND); - - FindClose(hFile); - - *ppidl = _ILCreateFromFindDataW(&stffile); - - return *ppidl ? S_OK : E_OUTOFMEMORY; -} - -LPITEMIDLIST _ILCreateDrive(LPCWSTR lpszNew) -{ - LPITEMIDLIST pidlOut; - - TRACE("(%s)\n",debugstr_w(lpszNew)); - - pidlOut = _ILAlloc(PT_DRIVE, sizeof(DriveStruct)); - if (pidlOut) - { - LPSTR pszDest; - - pszDest = _ILGetTextPointer(pidlOut); - if (pszDest) - { - strcpy(pszDest, "x:\\"); - pszDest[0]=towupper(lpszNew[0]); - TRACE("-- create Drive: %s\n", debugstr_a(pszDest)); - } - } - return pidlOut; -} - -/************************************************************************** - * _ILGetDrive() - * - * Gets the text for the drive eg. 'c:\' - * - * RETURNS - * strlen (lpszText) - */ -DWORD _ILGetDrive(LPCITEMIDLIST pidl,LPSTR pOut, UINT uSize) -{ - TRACE("(%p,%p,%u)\n",pidl,pOut,uSize); - - if(_ILIsMyComputer(pidl)) - pidl = ILGetNext(pidl); - - if (pidl && _ILIsDrive(pidl)) - return _ILSimpleGetText(pidl, pOut, uSize); - - return 0; -} - -/************************************************************************** - * - * ### 2. section testing pidls ### - * - ************************************************************************** - * _ILIsUnicode() - * _ILIsDesktop() - * _ILIsMyComputer() - * _ILIsSpecialFolder() - * _ILIsDrive() - * _ILIsFolder() - * _ILIsValue() - * _ILIsPidlSimple() - */ -BOOL _ILIsUnicode(LPCITEMIDLIST pidl) -{ - LPPIDLDATA lpPData = _ILGetDataPointer(pidl); - - TRACE("(%p)\n",pidl); - - return (pidl && lpPData && PT_VALUEW == lpPData->type); -} - -BOOL _ILIsDesktop(LPCITEMIDLIST pidl) -{ - TRACE("(%p)\n",pidl); - - return pidl && pidl->mkid.cb ? 0 : 1; -} - -BOOL _ILIsMyDocuments(LPCITEMIDLIST pidl) -{ - REFIID iid = _ILGetGUIDPointer(pidl); - - TRACE("(%p)\n",pidl); - - if (iid) - return IsEqualIID(iid, &CLSID_MyDocuments); - return FALSE; -} - -BOOL _ILIsControlPanel(LPCITEMIDLIST pidl) -{ - REFIID iid = _ILGetGUIDPointer(pidl); - - TRACE("(%p)\n",pidl); - - if (iid) - return IsEqualIID(iid, &CLSID_ControlPanel); - return FALSE; -} - -BOOL _ILIsNetHood(LPCITEMIDLIST pidl) -{ - REFIID iid = _ILGetGUIDPointer(pidl); - - TRACE("(%p)\n",pidl); - - if (iid) - return IsEqualIID(iid, &CLSID_NetworkPlaces); - return FALSE; -} - - -LPITEMIDLIST _ILCreateNetHood(void) -{ - return _ILCreateGuid(PT_GUID, &CLSID_NetworkPlaces); -} - -LPITEMIDLIST _ILCreateFont(void) -{ - return _ILCreateGuid(PT_GUID, &CLSID_FontsFolderShortcut); -} - -BOOL _ILIsMyComputer(LPCITEMIDLIST pidl) -{ - REFIID iid = _ILGetGUIDPointer(pidl); - - TRACE("(%p)\n",pidl); - - if (iid) - return IsEqualIID(iid, &CLSID_MyComputer); - return FALSE; -} - -BOOL _ILIsPrinter(LPCITEMIDLIST pidl) -{ - REFIID iid = _ILGetGUIDPointer(pidl); - - TRACE("(%p)\n",pidl); - - if (iid) - return IsEqualIID(iid, &CLSID_Printers); - return FALSE; -} - -BOOL _ILIsBitBucket(LPCITEMIDLIST pidl) -{ - REFIID iid = _ILGetGUIDPointer(pidl); - - TRACE("(%p)\n",pidl); - - if (iid) - return IsEqualIID(iid, &CLSID_RecycleBin); - return FALSE; -} - -BOOL _ILIsAdminTools(LPCITEMIDLIST pidl) -{ - REFIID iid = _ILGetGUIDPointer(pidl); - - TRACE("(%p)\n",pidl); - - if (iid) - return IsEqualIID(iid, &CLSID_AdminFolderShortcut); - else - return FALSE; -} - -BOOL _ILIsSpecialFolder (LPCITEMIDLIST pidl) -{ - LPPIDLDATA lpPData = _ILGetDataPointer(pidl); - - TRACE("(%p)\n",pidl); - - return (pidl && ( (lpPData && (PT_GUID== lpPData->type || PT_SHELLEXT== lpPData->type || PT_YAGUID == lpPData->type)) || - (pidl && pidl->mkid.cb == 0x00) - )); -} - -BOOL _ILIsDrive(LPCITEMIDLIST pidl) -{ - LPPIDLDATA lpPData = _ILGetDataPointer(pidl); - - TRACE("(%p)\n",pidl); - - return (pidl && lpPData && (PT_DRIVE == lpPData->type || - PT_DRIVE1 == lpPData->type || - PT_DRIVE2 == lpPData->type || - PT_DRIVE3 == lpPData->type)); -} - -BOOL _ILIsFolder(LPCITEMIDLIST pidl) -{ - LPPIDLDATA lpPData = _ILGetDataPointer(pidl); - - TRACE("(%p)\n",pidl); - - return (pidl && lpPData && (PT_FOLDER == lpPData->type || PT_FOLDER1 == lpPData->type)); -} - -BOOL _ILIsValue(LPCITEMIDLIST pidl) -{ - LPPIDLDATA lpPData = _ILGetDataPointer(pidl); - - TRACE("(%p)\n",pidl); - - return (pidl && lpPData && PT_VALUE == lpPData->type); -} - -BOOL _ILIsCPanelStruct(LPCITEMIDLIST pidl) -{ - LPPIDLDATA lpPData = _ILGetDataPointer(pidl); - - TRACE("(%p)\n",pidl); - - return (pidl && lpPData && (lpPData->type == 0)); -} - -/************************************************************************** - * _ILIsPidlSimple - */ -BOOL _ILIsPidlSimple(LPCITEMIDLIST pidl) -{ - BOOL ret = TRUE; - - if(! _ILIsDesktop(pidl)) /* pidl=NULL or mkid.cb=0 */ - { - WORD len = pidl->mkid.cb; - LPCITEMIDLIST pidlnext = (LPCITEMIDLIST) (((const BYTE*)pidl) + len ); - - if (pidlnext->mkid.cb) - ret = FALSE; - } - - TRACE("%s\n", ret ? "Yes" : "No"); - return ret; -} - -/************************************************************************** - * - * ### 3. section getting values from pidls ### - */ - - /************************************************************************** - * _ILSimpleGetText - * - * gets the text for the first item in the pidl (eg. simple pidl) - * - * returns the length of the string - */ -DWORD _ILSimpleGetText (LPCITEMIDLIST pidl, LPSTR szOut, UINT uOutSize) -{ - DWORD dwReturn=0; - LPSTR szSrc; - LPWSTR szSrcW; - GUID const * riid; - char szTemp[MAX_PATH]; - - TRACE("(%p %p %x)\n",pidl,szOut,uOutSize); - - if (!pidl) - return 0; - - if (szOut) - *szOut = 0; - - if (_ILIsDesktop(pidl)) - { - /* desktop */ - if (HCR_GetClassNameA(&CLSID_ShellDesktop, szTemp, MAX_PATH)) - { - if (szOut) - lstrcpynA(szOut, szTemp, uOutSize); - - dwReturn = strlen (szTemp); - } - } - else if (( szSrc = _ILGetTextPointer(pidl) )) - { - /* filesystem */ - if (szOut) - lstrcpynA(szOut, szSrc, uOutSize); - - dwReturn = strlen(szSrc); - } - else if (( szSrcW = _ILGetTextPointerW(pidl) )) - { - /* unicode filesystem */ - WideCharToMultiByte(CP_ACP,0,szSrcW, -1, szTemp, MAX_PATH, NULL, NULL); - - if (szOut) - lstrcpynA(szOut, szTemp, uOutSize); - - dwReturn = strlen (szTemp); - } - else if (( riid = _ILGetGUIDPointer(pidl) )) - { - /* special folder */ - if ( HCR_GetClassNameA(riid, szTemp, MAX_PATH) ) - { - if (szOut) - lstrcpynA(szOut, szTemp, uOutSize); - - dwReturn = strlen (szTemp); - } - } - else - { - ERR("-- no text\n"); - } - - TRACE("-- (%p=%s 0x%08x)\n",szOut,debugstr_a(szOut),dwReturn); - return dwReturn; -} - - /************************************************************************** - * _ILSimpleGetTextW - * - * gets the text for the first item in the pidl (eg. simple pidl) - * - * returns the length of the string - */ -DWORD _ILSimpleGetTextW (LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize) -{ - DWORD dwReturn; - FileStructW *pFileStructW = _ILGetFileStructW(pidl); - - TRACE("(%p %p %x)\n",pidl,szOut,uOutSize); - - if (pFileStructW) { - lstrcpynW(szOut, pFileStructW->wszName, uOutSize); - dwReturn = wcslen(pFileStructW->wszName); - } else { - GUID const * riid; - WCHAR szTemp[MAX_PATH]; - LPSTR szSrc; - LPWSTR szSrcW; - dwReturn=0; - - if (!pidl) - return 0; - - if (szOut) - *szOut = 0; - - if (_ILIsDesktop(pidl)) - { - /* desktop */ - if (HCR_GetClassNameW(&CLSID_ShellDesktop, szTemp, MAX_PATH)) - { - if (szOut) - lstrcpynW(szOut, szTemp, uOutSize); - - dwReturn = wcslen (szTemp); - } - } - else if (( szSrcW = _ILGetTextPointerW(pidl) )) - { - /* unicode filesystem */ - if (szOut) - lstrcpynW(szOut, szSrcW, uOutSize); - - dwReturn = wcslen(szSrcW); - } - else if (( szSrc = _ILGetTextPointer(pidl) )) - { - /* filesystem */ - MultiByteToWideChar(CP_ACP, 0, szSrc, -1, szTemp, MAX_PATH); - - if (szOut) - lstrcpynW(szOut, szTemp, uOutSize); - - dwReturn = wcslen (szTemp); - } - else if (( riid = _ILGetGUIDPointer(pidl) )) - { - /* special folder */ - if ( HCR_GetClassNameW(riid, szTemp, MAX_PATH) ) - { - if (szOut) - lstrcpynW(szOut, szTemp, uOutSize); - - dwReturn = wcslen (szTemp); - } - } - else - { - ERR("-- no text\n"); - } - } - - TRACE("-- (%p=%s 0x%08x)\n",szOut,debugstr_w(szOut),dwReturn); - return dwReturn; -} - -/************************************************************************** - * - * ### 4. getting pointers to parts of pidls ### - * - ************************************************************************** - * _ILGetDataPointer() - */ -LPPIDLDATA _ILGetDataPointer(LPCITEMIDLIST pidl) -{ - if(pidl && pidl->mkid.cb != 0x00) - return (LPPIDLDATA)pidl->mkid.abID; - return NULL; -} - -/************************************************************************** - * _ILGetTextPointerW() - * gets a pointer to the unicode long filename string stored in the pidl - */ -static LPWSTR _ILGetTextPointerW(LPCITEMIDLIST pidl) -{ - /* TRACE(pidl,"(pidl%p)\n", pidl);*/ - - LPPIDLDATA pdata = _ILGetDataPointer(pidl); - - if (!pdata) - return NULL; - - switch (pdata->type) - { - case PT_GUID: - case PT_SHELLEXT: - case PT_YAGUID: - return NULL; - - case PT_DRIVE: - case PT_DRIVE1: - case PT_DRIVE2: - case PT_DRIVE3: - /*return (LPSTR)&(pdata->u.drive.szDriveName);*/ - return NULL; - - case PT_FOLDER: - case PT_FOLDER1: - case PT_VALUE: - case PT_IESPECIAL1: - case PT_IESPECIAL2: - /*return (LPSTR)&(pdata->u.file.szNames);*/ - return NULL; - - case PT_WORKGRP: - case PT_COMP: - case PT_NETWORK: - case PT_NETPROVIDER: - case PT_SHARE: - /*return (LPSTR)&(pdata->u.network.szNames);*/ - return NULL; - - case PT_VALUEW: - return (LPWSTR)pdata->u.file.szNames; - } - return NULL; -} - - -/************************************************************************** - * _ILGetTextPointer() - * gets a pointer to the long filename string stored in the pidl - */ -LPSTR _ILGetTextPointer(LPCITEMIDLIST pidl) -{ - /* TRACE(pidl,"(pidl%p)\n", pidl);*/ - - LPPIDLDATA pdata = _ILGetDataPointer(pidl); - - if (!pdata) - return NULL; - - switch (pdata->type) - { - case PT_GUID: - case PT_SHELLEXT: - case PT_YAGUID: - return NULL; - - case PT_DRIVE: - case PT_DRIVE1: - case PT_DRIVE2: - case PT_DRIVE3: - return pdata->u.drive.szDriveName; - - case PT_FOLDER: - case PT_FOLDER1: - case PT_VALUE: - case PT_IESPECIAL1: - case PT_IESPECIAL2: - return pdata->u.file.szNames; - - case PT_WORKGRP: - case PT_COMP: - case PT_NETWORK: - case PT_NETPROVIDER: - case PT_SHARE: - return pdata->u.network.szNames; - } - return NULL; -} - -/************************************************************************** - * _ILGetSTextPointer() - * gets a pointer to the short filename string stored in the pidl - */ -static LPSTR _ILGetSTextPointer(LPCITEMIDLIST pidl) -{ - /* TRACE(pidl,"(pidl%p)\n", pidl); */ - - LPPIDLDATA pdata =_ILGetDataPointer(pidl); - - if (!pdata) - return NULL; - - switch (pdata->type) - { - case PT_FOLDER: - case PT_VALUE: - case PT_IESPECIAL1: - case PT_IESPECIAL2: - return pdata->u.file.szNames + strlen (pdata->u.file.szNames) + 1; - - case PT_WORKGRP: - return pdata->u.network.szNames + strlen (pdata->u.network.szNames) + 1; - } - return NULL; -} - -/************************************************************************** - * _ILGetGUIDPointer() - * - * returns reference to guid stored in some pidls - */ -IID* _ILGetGUIDPointer(LPCITEMIDLIST pidl) -{ - LPPIDLDATA pdata =_ILGetDataPointer(pidl); - - TRACE("%p\n", pidl); - - if (!pdata) - return NULL; - - TRACE("pdata->type 0x%04x\n", pdata->type); - switch (pdata->type) - { - case PT_SHELLEXT: - case PT_GUID: - case PT_YAGUID: - return &(pdata->u.guid.guid); - - default: - TRACE("Unknown pidl type 0x%04x\n", pdata->type); - break; - } - return NULL; -} - -/****************************************************************************** - * _ILGetFileStructW [Internal] - * - * Get pointer the a SHITEMID's FileStructW field if present - * - * PARAMS - * pidl [I] The SHITEMID - * - * RETURNS - * Success: Pointer to pidl's FileStructW field. - * Failure: NULL - */ -FileStructW* _ILGetFileStructW(LPCITEMIDLIST pidl) { - FileStructW *pFileStructW; - WORD cbOffset; - - if (!(_ILIsValue(pidl) || _ILIsFolder(pidl))) - return NULL; - - cbOffset = *(const WORD *)((const BYTE *)pidl + pidl->mkid.cb - sizeof(WORD)); - pFileStructW = (FileStructW*)((LPBYTE)pidl + cbOffset); - - /* Currently I don't see a fool prove way to figure out if a pidl is for sure of WinXP - * style with a FileStructW member. If we switch all our shellfolder-implementations to - * the new format, this won't be a problem. For now, we do as many sanity checks as possible. */ - if (cbOffset & 0x1 || /* FileStructW member is word aligned in the pidl */ - /* FileStructW is positioned after FileStruct */ - cbOffset < sizeof(pidl->mkid.cb) + sizeof(PIDLTYPE) + sizeof(FileStruct) || - /* There has to be enough space at cbOffset in the pidl to hold FileStructW and cbOffset */ - cbOffset > pidl->mkid.cb - sizeof(cbOffset) - sizeof(FileStructW) || - pidl->mkid.cb != cbOffset + pFileStructW->cbLen) - { - WARN("Invalid pidl format (cbOffset = %d)!\n", cbOffset); - return NULL; - } - - return pFileStructW; -} - -/************************************************************************* - * _ILGetFileDateTime - * - * Given the ItemIdList, get the FileTime - * - * PARAMS - * pidl [I] The ItemIDList - * pFt [I] the resulted FILETIME of the file - * - * RETURNS - * True if Successful - * - * NOTES - * - */ -BOOL _ILGetFileDateTime(LPCITEMIDLIST pidl, FILETIME *pFt) -{ - LPPIDLDATA pdata = _ILGetDataPointer(pidl); - - if (!pdata) - return FALSE; - - switch (pdata->type) - { - case PT_FOLDER: - case PT_VALUE: - DosDateTimeToFileTime(pdata->u.file.uFileDate, pdata->u.file.uFileTime, pFt); - break; - default: - return FALSE; - } - return TRUE; -} - -BOOL _ILGetFileDate (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize) -{ - FILETIME ft,lft; - SYSTEMTIME time; - BOOL ret; - - if (_ILGetFileDateTime( pidl, &ft )) - { - FileTimeToLocalFileTime(&ft, &lft); - FileTimeToSystemTime (&lft, &time); - - ret = GetDateFormatA(LOCALE_USER_DEFAULT,DATE_SHORTDATE,&time, NULL, pOut, uOutSize); - if (ret) - { - /* Append space + time without seconds */ - pOut[ret-1] = ' '; - GetTimeFormatA(LOCALE_USER_DEFAULT, TIME_NOSECONDS, &time, NULL, &pOut[ret], uOutSize - ret); - } - } - else - { - pOut[0] = '\0'; - ret = FALSE; - } - return ret; -} - -/************************************************************************* - * _ILGetFileSize - * - * Given the ItemIdList, get the FileSize - * - * PARAMS - * pidl [I] The ItemIDList - * pOut [I] The buffer to save the result - * uOutsize [I] The size of the buffer - * - * RETURNS - * The FileSize - * - * NOTES - * pOut can be null when no string is needed - * - */ -DWORD _ILGetFileSize (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize) -{ - LPPIDLDATA pdata = _ILGetDataPointer(pidl); - DWORD dwSize; - - if (!pdata) - return 0; - - switch (pdata->type) - { - case PT_VALUE: - dwSize = pdata->u.file.dwFileSize; - if (pOut) - StrFormatKBSizeA(dwSize, pOut, uOutSize); - return dwSize; - } - if (pOut) - *pOut = 0x00; - return 0; -} - -BOOL _ILGetExtension (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize) -{ - char szTemp[MAX_PATH]; - const char * pPoint; - LPCITEMIDLIST pidlTemp=pidl; - - TRACE("pidl=%p\n",pidl); - - if (!pidl) - return FALSE; - - pidlTemp = ILFindLastID(pidl); - - if (!_ILIsValue(pidlTemp)) - return FALSE; - if (!_ILSimpleGetText(pidlTemp, szTemp, MAX_PATH)) - return FALSE; - - pPoint = PathFindExtensionA(szTemp); - - if (!*pPoint) - return FALSE; - - pPoint++; - lstrcpynA(pOut, pPoint, uOutSize); - TRACE("%s\n",pOut); - - return TRUE; -} - -/************************************************************************* - * _ILGetFileType - * - * Given the ItemIdList, get the file type description - * - * PARAMS - * pidl [I] The ItemIDList (simple) - * pOut [I] The buffer to save the result - * uOutsize [I] The size of the buffer - * - * RETURNS - * nothing - * - * NOTES - * This function copies as much as possible into the buffer. - */ -void _ILGetFileType(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize) -{ - char sType[64]; - - if(_ILIsValue(pidl)) - { - char sTemp[64]; - - if(uOutSize > 0) - pOut[0] = 0; - if (_ILGetExtension (pidl, sType, 64)) - { - if (HCR_MapTypeToValueA(sType, sTemp, 64, TRUE)) - { - /* retrieve description */ - if(HCR_MapTypeToValueA(sTemp, pOut, uOutSize, FALSE )) - return; - } - /* display Ext-file as description */ - strcpy(pOut, sType); - _strupr(pOut); - /* load localized file string */ - sTemp[0] = '\0'; - if(LoadStringA(shell32_hInstance, IDS_SHV_COLUMN1, sTemp, 64)) - { - sTemp[63] = '\0'; - strcat(pOut, "-"); - strcat(pOut, sTemp); - } - } - } - else - { - pOut[0] = '\0'; - LoadStringA(shell32_hInstance, IDS_DIRECTORY, pOut, uOutSize); - /* make sure its null terminated */ - pOut[uOutSize-1] = '\0'; - } -} - -/************************************************************************* - * _ILGetFileAttributes - * - * Given the ItemIdList, get the Attrib string format - * - * PARAMS - * pidl [I] The ItemIDList - * pOut [I] The buffer to save the result - * uOutsize [I] The size of the Buffer - * - * RETURNS - * Attributes - * - * FIXME - * return value 0 in case of error is a valid return value - * - */ -DWORD _ILGetFileAttributes(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize) -{ - LPPIDLDATA pData = _ILGetDataPointer(pidl); - WORD wAttrib = 0; - int i; - - if (!pData) - return 0; - - switch(pData->type) - { - case PT_FOLDER: - case PT_VALUE: - wAttrib = pData->u.file.uFileAttribs; - break; - } - - if(uOutSize >= 6) - { - i=0; - if(wAttrib & FILE_ATTRIBUTE_READONLY) - pOut[i++] = 'R'; - if(wAttrib & FILE_ATTRIBUTE_HIDDEN) - pOut[i++] = 'H'; - if(wAttrib & FILE_ATTRIBUTE_SYSTEM) - pOut[i++] = 'S'; - if(wAttrib & FILE_ATTRIBUTE_ARCHIVE) - pOut[i++] = 'A'; - if(wAttrib & FILE_ATTRIBUTE_COMPRESSED) - pOut[i++] = 'C'; - pOut[i] = 0x00; - } - return wAttrib; -} - -/************************************************************************* - * ILFreeaPidl - * - * free a aPidl struct - */ -void _ILFreeaPidl(LPITEMIDLIST * apidl, UINT cidl) -{ - UINT i; - - if (apidl) - { - for (i = 0; i < cidl; i++) - SHFree(apidl[i]); - SHFree(apidl); - } -} - -/************************************************************************* - * ILCopyaPidl - * - * copies an aPidl struct - */ -LPITEMIDLIST* _ILCopyaPidl(const LPCITEMIDLIST * apidlsrc, UINT cidl) -{ - UINT i; - LPITEMIDLIST *apidldest; - - apidldest = SHAlloc(cidl * sizeof(LPITEMIDLIST)); - if (!apidlsrc) - return NULL; - - for (i = 0; i < cidl; i++) - apidldest[i] = ILClone(apidlsrc[i]); - - return apidldest; -} - -/************************************************************************* - * _ILCopyCidaToaPidl - * - * creates aPidl from CIDA - */ -LPITEMIDLIST* _ILCopyCidaToaPidl(LPITEMIDLIST* pidl, const CIDA * cida) -{ - UINT i; - LPITEMIDLIST *dst; - - dst = SHAlloc(cida->cidl * sizeof(LPITEMIDLIST)); - if (!dst) - return NULL; - - if (pidl) - *pidl = ILClone((LPCITEMIDLIST)(&((const BYTE*)cida)[cida->aoffset[0]])); - - for (i = 0; i < cida->cidl; i++) - dst[i] = ILClone((LPCITEMIDLIST)(&((const BYTE*)cida)[cida->aoffset[i + 1]])); - - return dst; -} diff --git a/reactos/dll/win32/shell32/ros-systray.c b/reactos/dll/win32/shell32/ros-systray.c deleted file mode 100644 index f560b498e03..00000000000 --- a/reactos/dll/win32/shell32/ros-systray.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2004 Martin Fuchs - * - * Pass on icon notification messages to the systray implementation - * in the currently running shell. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - - /* copy data structure for tray notifications */ -typedef struct TrayNotifyCDS_Dummy { - DWORD cookie; - DWORD notify_code; - DWORD nicon_data[1]; // placeholder for NOTIFYICONDATA structure -} TrayNotifyCDS_Dummy; - - /* The only difference between Shell_NotifyIconA and Shell_NotifyIconW is the call to SendMessageA/W. */ -static BOOL SHELL_NotifyIcon(DWORD dwMessage, void* pnid, HWND nid_hwnd, int nid_size, BOOL unicode) -{ - HWND hwnd; - COPYDATASTRUCT data; - - BOOL ret = FALSE; - int len = sizeof(TrayNotifyCDS_Dummy)-sizeof(DWORD)+nid_size; - - TrayNotifyCDS_Dummy* pnotify_data = (TrayNotifyCDS_Dummy*) alloca(len); - - pnotify_data->cookie = 1; - pnotify_data->notify_code = dwMessage; - memcpy(&pnotify_data->nicon_data, pnid, nid_size); - - data.dwData = 1; - data.cbData = len; - data.lpData = pnotify_data; - - for(hwnd=0; (hwnd=FindWindowExW(0, hwnd, L"Shell_TrayWnd", NULL)); ) - if ((unicode?SendMessageW:SendMessageA)(hwnd, WM_COPYDATA, (WPARAM)nid_hwnd, (LPARAM)&data)) - ret = TRUE; - - return ret; -} - - -/************************************************************************* - * Shell_NotifyIcon [SHELL32.296] - * Shell_NotifyIconA [SHELL32.297] - */ -BOOL WINAPI Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA pnid) -{ - return SHELL_NotifyIcon(dwMessage, pnid, pnid->hWnd, pnid->cbSize, FALSE); -} - -/************************************************************************* - * Shell_NotifyIconW [SHELL32.298] - */ -BOOL WINAPI Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW pnid) -{ - return SHELL_NotifyIcon(dwMessage, pnid, pnid->hWnd, pnid->cbSize, TRUE); -} diff --git a/reactos/dll/win32/shell32/she_ocmenu.c b/reactos/dll/win32/shell32/she_ocmenu.c deleted file mode 100644 index 9aea9e1b48e..00000000000 --- a/reactos/dll/win32/shell32/she_ocmenu.c +++ /dev/null @@ -1,1339 +0,0 @@ -/* - * Open With Context Menu extension - * - * Copyright 2007 Johannes Anderwald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL (shell); - -/// -/// [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system] -/// "NoInternetOpenWith"=dword:00000001 -/// - -// TODO -// implement duplicate checks in list box -// implement duplicate checks for MRU! -// implement owner drawn menu - -typedef struct -{ - const IContextMenu2Vtbl *lpVtblContextMenu; - const IShellExtInitVtbl *lpvtblShellExtInit; - LONG wId; - volatile LONG ref; - BOOL NoOpen; - UINT count; - WCHAR szPath[MAX_PATH]; - HMENU hSubMenu; -} SHEOWImpl, *LPSHEOWImpl; - -typedef struct -{ - BOOL bMenu; - HMENU hMenu; - HWND hDlgCtrl; - UINT Count; - BOOL NoOpen; - UINT idCmdFirst; -}OPEN_WITH_CONTEXT, *POPEN_WITH_CONTEXT; - -#define MANUFACTURER_NAME_SIZE 100 - -typedef struct -{ - HICON hIcon; - WCHAR szAppName[MAX_PATH]; - WCHAR szManufacturer[MANUFACTURER_NAME_SIZE]; -}OPEN_ITEM_CONTEXT, *POPEN_ITEM_CONTEXT; - - -typedef struct _LANGANDCODEPAGE_ - { - WORD lang; - WORD code; -} LANGANDCODEPAGE, *LPLANGANDCODEPAGE; - -typedef struct { - DWORD cbSize; - DWORD uMax; - DWORD fFlags; - HKEY hKey; - LPWSTR lpszSubKey; - PROC lpfnCompare; -} MRUINFO, *LPMRUINFO; - -#define MRUF_STRING_LIST 0 - -typedef HANDLE (WINAPI *CREATEMRULISTPROCW)( - LPMRUINFO lpmi -); - -typedef int (WINAPI *ENUMMRULISTW)( - HANDLE hMRU, - int nItem, - void *lpData, - UINT uLen -); - -typedef int (WINAPI *ADDMRUSTRINGW)( - HANDLE hMRU, - LPCWSTR szString -); - -typedef void (WINAPI *FREEMRULIST)( - HANDLE hList); - -static const IShellExtInitVtbl eivt; -static const IContextMenu2Vtbl cmvt; -static HRESULT WINAPI SHEOWCm_fnQueryInterface(IContextMenu2 *iface, REFIID riid, LPVOID *ppvObj); -static ULONG WINAPI SHEOWCm_fnRelease(IContextMenu2 *iface); - -HANDLE OpenMRUList(HKEY hKey); -void LoadItemFromHKCU(POPEN_WITH_CONTEXT pContext, WCHAR * szExt); -void LoadItemFromHKCR(POPEN_WITH_CONTEXT pContext, WCHAR * szExt); -void InsertOpenWithItem(POPEN_WITH_CONTEXT pContext, WCHAR * szAppName); - -static HMODULE hModule = NULL; -static CREATEMRULISTPROCW CreateMRUListProcW = NULL; -static ENUMMRULISTW EnumMRUListW = NULL; -static FREEMRULIST FreeMRUListProc = NULL; -static ADDMRUSTRINGW AddMRUStringW = NULL; - - -HRESULT WINAPI SHEOW_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv) -{ - SHEOWImpl * ow; - HRESULT res; - - ow = LocalAlloc(LMEM_ZEROINIT, sizeof(SHEOWImpl)); - if (!ow) - { - return E_OUTOFMEMORY; - } - - ow->ref = 1; - ow->lpVtblContextMenu = &cmvt; - ow->lpvtblShellExtInit = &eivt; - - TRACE("(%p)->()\n",ow); - - res = SHEOWCm_fnQueryInterface( (IContextMenu2*)&ow->lpVtblContextMenu, riid, ppv ); - SHEOWCm_fnRelease( (IContextMenu2*)&ow->lpVtblContextMenu ); - return res; -} - -static LPSHEOWImpl __inline impl_from_IShellExtInit( IShellExtInit *iface ) -{ - return (SHEOWImpl *)((char*)iface - FIELD_OFFSET(SHEOWImpl, lpvtblShellExtInit)); -} - -static LPSHEOWImpl __inline impl_from_IContextMenu( IContextMenu2 *iface ) -{ - return (SHEOWImpl *)((char*)iface - FIELD_OFFSET(SHEOWImpl, lpVtblContextMenu)); -} - -static HRESULT WINAPI SHEOWCm_fnQueryInterface(IContextMenu2 *iface, REFIID riid, LPVOID *ppvObj) -{ - SHEOWImpl *This = impl_from_IContextMenu(iface); - - TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - - *ppvObj = NULL; - - if(IsEqualIID(riid, &IID_IUnknown) || - IsEqualIID(riid, &IID_IContextMenu) || - IsEqualIID(riid, &IID_IContextMenu2)) - { - *ppvObj = (void *)&This->lpVtblContextMenu; - } - else if(IsEqualIID(riid, &IID_IShellExtInit)) - { - *ppvObj = (void *)&This->lpvtblShellExtInit; - } - - if(*ppvObj) - { - IUnknown_AddRef((IUnknown*)*ppvObj); - TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj); - return S_OK; - } - TRACE("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI SHEOWCm_fnAddRef(IContextMenu2 *iface) -{ - SHEOWImpl *This = impl_from_IContextMenu(iface); - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI SHEOWCm_fnRelease(IContextMenu2 *iface) -{ - SHEOWImpl *This = impl_from_IContextMenu(iface); - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(count=%i)\n", This, refCount + 1); - - if (!refCount) - { - TRACE(" destroying IContextMenu(%p)\n",This); - HeapFree(GetProcessHeap(),0,This); - } - return refCount; -} - -VOID -AddItem(HMENU hMenu, UINT idCmdFirst) -{ - MENUITEMINFOW mii; - WCHAR szBuffer[MAX_PATH]; - static const WCHAR szChoose[] = { 'C','h','o','o','s','e',' ','P','r','o','g','r','a','m','.','.','.',0 }; - - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_TYPE | MIIM_ID; - mii.fType = MFT_SEPARATOR; - mii.wID = -1; - InsertMenuItemW(hMenu, -1, TRUE, &mii); - - if (!LoadStringW(shell32_hInstance, IDS_OPEN_WITH_CHOOSE, szBuffer, sizeof(szBuffer) / sizeof(WCHAR))) - wcscpy(szBuffer, szChoose); - - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - - mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE; - mii.fType = MFT_STRING; - mii.fState = MFS_ENABLED; - mii.wID = idCmdFirst; - mii.dwTypeData = (LPWSTR)szBuffer; - mii.cch = wcslen(szBuffer); - - InsertMenuItemW(hMenu, -1, TRUE, &mii); -} - -static -void -LoadOWItems(POPEN_WITH_CONTEXT pContext, LPCWSTR szName) -{ - WCHAR * szExt; - WCHAR szPath[100]; - DWORD dwPath; - - szExt = wcsrchr(szName, '.'); - if (!szExt) - { - /* FIXME - * show default list of available programs - */ - return; - } - - /* load programs directly associated from HKCU */ - LoadItemFromHKCU(pContext, szExt); - - /* load programs associated from HKCR\Extension */ - LoadItemFromHKCR(pContext, szExt); - - /* load programs referenced from HKCR\ProgId */ - dwPath = sizeof(szPath); - szPath[0] = 0; - if (RegGetValueW(HKEY_CLASSES_ROOT, szExt, NULL, RRF_RT_REG_SZ, NULL, szPath, &dwPath) == ERROR_SUCCESS) - { - szPath[(sizeof(szPath)/sizeof(WCHAR))-1] = L'\0'; - LoadItemFromHKCR(pContext, szPath); - } -} - - - -static HRESULT WINAPI SHEOWCm_fnQueryContextMenu( - IContextMenu2 *iface, - HMENU hmenu, - UINT indexMenu, - UINT idCmdFirst, - UINT idCmdLast, - UINT uFlags) -{ - MENUITEMINFOW mii; - WCHAR szBuffer[100] = {0}; - INT pos; - HMENU hSubMenu = NULL; - OPEN_WITH_CONTEXT Context; - SHEOWImpl *This = impl_from_IContextMenu(iface); - - if (LoadStringW(shell32_hInstance, IDS_OPEN_WITH, szBuffer, sizeof(szBuffer)/sizeof(WCHAR)) < 0) - { - TRACE("failed to load string\n"); - return E_FAIL; - } - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - - hSubMenu = CreatePopupMenu(); - - /* set up context */ - ZeroMemory(&Context, sizeof(OPEN_WITH_CONTEXT)); - Context.bMenu = TRUE; - Context.Count = 0; - Context.hMenu = hSubMenu; - Context.idCmdFirst = idCmdFirst; - /* load items */ - LoadOWItems(&Context, This->szPath); - if (!Context.Count) - { - DestroyMenu(hSubMenu); - hSubMenu = NULL; - This->wId = 0; - This->count = 0; - } - else - { - AddItem(hSubMenu, Context.idCmdFirst++); - This->count = Context.idCmdFirst - idCmdFirst; - /* verb start at index zero */ - This->wId = This->count -1; - This->hSubMenu = hSubMenu; - } - - pos = GetMenuDefaultItem(hmenu, TRUE, 0) + 1; - - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE; - if (hSubMenu) - { - mii.fMask |= MIIM_SUBMENU; - mii.hSubMenu = hSubMenu; - } - mii.dwTypeData = (LPWSTR) szBuffer; - mii.fState = MFS_ENABLED; - if (!pos) - { - mii.fState |= MFS_DEFAULT; - } - - mii.wID = Context.idCmdFirst; - mii.fType = MFT_STRING; - if (InsertMenuItemW( hmenu, pos, TRUE, &mii)) - Context.Count++; - - return MAKE_HRESULT(SEVERITY_SUCCESS, 0, Context.Count); -} - -void -FreeListItems(HWND hwndDlg) -{ - HWND hList; - LRESULT iIndex, iCount; - POPEN_ITEM_CONTEXT pContext; - - hList = GetDlgItem(hwndDlg, 14002); - iCount = SendMessageW(hList, LB_GETCOUNT, 0, 0); - if (iCount == LB_ERR) - return; - - for (iIndex = 0; iIndex < iCount; iIndex++) - { - pContext = (POPEN_ITEM_CONTEXT)SendMessageW(hList, LB_GETITEMDATA, iIndex, 0); - if (pContext) - { - DestroyIcon(pContext->hIcon); - SendMessageW(hList, LB_SETITEMDATA, iIndex, (LPARAM)0); - HeapFree(GetProcessHeap(), 0, pContext); - } - } -} - -BOOL HideApplicationFromList(WCHAR * pFileName) -{ - WCHAR szBuffer[100] = {'A','p','p','l','i','c','a','t','i','o','n','s','\\',0}; - DWORD dwSize = 0; - LONG result; - - if (wcslen(pFileName) > (sizeof(szBuffer)/sizeof(WCHAR)) - 14) - { - ERR("insufficient buffer\n"); - return FALSE; - } - wcscpy(&szBuffer[13], pFileName); - - result = RegGetValueW(HKEY_CLASSES_ROOT, szBuffer, L"NoOpenWith", RRF_RT_REG_SZ, NULL, NULL, &dwSize); - - TRACE("result %d szBuffer %s\n", result, debugstr_w(szBuffer)); - - if (result == ERROR_SUCCESS) - return TRUE; - else - return FALSE; -} - -VOID -WriteStaticShellExtensionKey(HKEY hRootKey, WCHAR * pVerb, WCHAR *pFullPath) -{ - HKEY hShell; - LONG result; - WCHAR szBuffer[MAX_PATH+10] = {'s','h','e','l','l','\\', 0 }; - - if (wcslen(pVerb) > (sizeof(szBuffer)/sizeof(WCHAR)) - 15 || - wcslen(pFullPath) > (sizeof(szBuffer)/sizeof(WCHAR)) - 4) - { - ERR("insufficient buffer\n"); - return; - } - - /* construct verb reg path */ - wcscpy(&szBuffer[6], pVerb); - wcscat(szBuffer, L"\\command"); - - /* create verb reg key */ - if (RegCreateKeyExW(hRootKey, szBuffer, 0, NULL, 0, KEY_WRITE, NULL, &hShell, NULL) != ERROR_SUCCESS) - return; - - /* build command buffer */ - wcscpy(szBuffer, pFullPath); - wcscat(szBuffer, L" %1"); - - result = RegSetValueExW(hShell, NULL, 0, REG_SZ, (const BYTE*)szBuffer, (wcslen(szBuffer)+1)* sizeof(WCHAR)); - RegCloseKey(hShell); -} - -VOID -StoreNewSettings(LPCWSTR szFileName, WCHAR *szAppName) -{ - WCHAR szBuffer[100] = { L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\"}; - WCHAR * pFileExt; - HKEY hKey; - LONG result; - HANDLE hList; - - /* get file extension */ - pFileExt = wcsrchr(szFileName, L'.'); - if (wcslen(pFileExt) > (sizeof(szBuffer)/sizeof(WCHAR)) - 60) - { - ERR("insufficient buffer\n"); - return; - } - wcscpy(&szBuffer[60], pFileExt); - /* open base key for this file extension */ - if (RegCreateKeyExW(HKEY_CURRENT_USER, szBuffer, 0, NULL, 0, KEY_WRITE | KEY_READ, NULL, &hKey, NULL) != ERROR_SUCCESS) - return; - - /* open mru list */ - hList = OpenMRUList(hKey); - - if (!hList) - { - RegCloseKey(hKey); - return; - } - - /* insert the entry */ - result = (*AddMRUStringW)(hList, szAppName); - - /* close mru list */ - (*FreeMRUListProc)((HANDLE)hList); - /* create mru list key */ - RegCloseKey(hKey); -} - -VOID -SetProgrammAsDefaultHandler(LPCWSTR szFileName, WCHAR * szAppName) -{ - HKEY hKey; - HKEY hAppKey; - DWORD dwDisposition; - WCHAR szBuffer[100]; - DWORD dwSize; - BOOL result; - WCHAR * pFileExt; - WCHAR * pFileName; - - /* extract file extension */ - pFileExt = wcsrchr(szFileName, L'.'); - if (!pFileExt) - return; - - /* create file extension key */ - if (RegCreateKeyExW(HKEY_CLASSES_ROOT, pFileExt, 0, NULL, 0, KEY_WRITE, NULL, &hKey, &dwDisposition) != ERROR_SUCCESS) - return; - - if (dwDisposition & REG_CREATED_NEW_KEY) - { - /* a new entry was created create the prog key id */ - wcscpy(szBuffer, &pFileExt[1]); - wcscat(szBuffer, L"_auto_file"); - if (RegSetValueExW(hKey, NULL, 0, REG_SZ, (const BYTE*)szBuffer, (wcslen(szBuffer)+1) * sizeof(WCHAR)) != ERROR_SUCCESS) - { - RegCloseKey(hKey); - return; - } - } - else - { - /* entry already exists fetch prog key id */ - dwSize = sizeof(szBuffer); - if (RegGetValueW(hKey, NULL, NULL, RRF_RT_REG_SZ, NULL, szBuffer, &dwSize) != ERROR_SUCCESS) - { - RegCloseKey(hKey); - return; - } - } - /* close file extension key */ - RegCloseKey(hKey); - - /* create prog id key */ - if (RegCreateKeyExW(HKEY_CLASSES_ROOT, szBuffer, 0, NULL, 0, KEY_WRITE, NULL, &hKey, &dwDisposition) != ERROR_SUCCESS) - return; - - - /* check if there already verbs existing for that app */ - pFileName = wcsrchr(szAppName, L'\\'); - wcscpy(szBuffer, L"Classes\\Applications\\"); - wcscat(szBuffer, pFileName); - wcscat(szBuffer, L"\\shell"); - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, szBuffer, 0, KEY_READ, &hAppKey) == ERROR_SUCCESS) - { - /* copy static verbs from Classes\Applications key */ - HKEY hTemp; - if (RegCreateKeyExW(hKey, L"shell", 0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &hTemp, &dwDisposition) == ERROR_SUCCESS) - { - result = RegCopyTreeW(hAppKey, NULL, hTemp); - RegCloseKey(hTemp); - if (result == ERROR_SUCCESS) - { - /* copied all subkeys, we are done */ - RegCloseKey(hKey); - RegCloseKey(hAppKey); - return; - } - } - RegCloseKey(hAppKey); - } - /* write standard static shell extension */ - WriteStaticShellExtensionKey(hKey, L"open", szAppName); - RegCloseKey(hKey); -} - -void -BrowseForApplication(HWND hwndDlg) -{ - WCHAR szBuffer[64] = {0}; - WCHAR szFilter[256] = {0}; - WCHAR szPath[MAX_PATH]; - OPENFILENAMEW ofn; - OPEN_WITH_CONTEXT Context; - INT count; - - /* load resource open with */ - if (LoadStringW(shell32_hInstance, IDS_OPEN_WITH, szBuffer, sizeof(szBuffer) / sizeof(WCHAR))) - { - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - ofn.lpstrTitle = szBuffer; - ofn.nMaxFileTitle = wcslen(szBuffer); - } - - ZeroMemory(&ofn, sizeof(OPENFILENAMEW)); - ofn.lStructSize = sizeof(OPENFILENAMEW); - ofn.hInstance = shell32_hInstance; - ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; - ofn.nMaxFile = (sizeof(szPath) / sizeof(WCHAR)); - ofn.lpstrFile = szPath; - - /* load the filter resource string */ - if (LoadStringW(shell32_hInstance, IDS_OPEN_WITH_FILTER, szFilter, sizeof(szFilter) / sizeof(WCHAR))) - { - szFilter[(sizeof(szFilter)/sizeof(WCHAR))-1] = 0; - ofn.lpstrFilter = szFilter; - } - ZeroMemory(szPath, sizeof(szPath)); - - /* call openfilename */ - if (!GetOpenFileNameW(&ofn)) - return; - - /* setup context for insert proc */ - ZeroMemory(&Context, sizeof(OPEN_WITH_CONTEXT)); - Context.hDlgCtrl = GetDlgItem(hwndDlg, 14002); - count = SendMessage(Context.hDlgCtrl, LB_GETCOUNT, 0, 0); - InsertOpenWithItem(&Context, szPath); - /* select new item */ - SendMessage(Context.hDlgCtrl, LB_SETCURSEL, count, 0); -} - -POPEN_ITEM_CONTEXT -GetCurrentOpenItemContext(HWND hwndDlg) -{ - LRESULT result; - - /* get current item */ - result = SendDlgItemMessage(hwndDlg, 14002, LB_GETCURSEL, 0, 0); - if(result == LB_ERR) - return NULL; - - /* get item context */ - result = SendDlgItemMessage(hwndDlg, 14002, LB_GETITEMDATA, result, 0); - if (result == LB_ERR) - return NULL; - - return (POPEN_ITEM_CONTEXT)result; -} - -void -ExecuteOpenItem(POPEN_ITEM_CONTEXT pItemContext, LPCWSTR FileName) -{ - STARTUPINFOW si; - PROCESS_INFORMATION pi; - WCHAR szPath[(MAX_PATH * 2)]; - - /* setup path with argument */ - ZeroMemory(&si, sizeof(STARTUPINFOW)); - si.cb = sizeof(STARTUPINFOW); - wcscpy(szPath, pItemContext->szAppName); - wcscat(szPath, L" "); - wcscat(szPath, FileName); - - ERR("path %s\n", debugstr_w(szPath)); - - if (CreateProcessW(NULL, szPath, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) - { - CloseHandle(pi.hThread); - CloseHandle(pi.hProcess); - SHAddToRecentDocs(SHARD_PATHW, FileName); - } -} - - -static INT_PTR CALLBACK OpenWithProgrammDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - LPMEASUREITEMSTRUCT lpmis; - LPDRAWITEMSTRUCT lpdis; - INT index; - WCHAR szBuffer[MAX_PATH + 30] = { 0 }; - OPENASINFO *poainfo; - TEXTMETRIC mt; - COLORREF preColor, preBkColor; - POPEN_ITEM_CONTEXT pItemContext; - LONG YOffset; - OPEN_WITH_CONTEXT Context; - - poainfo = (OPENASINFO*) GetWindowLongPtr(hwndDlg, DWLP_USER); - - switch(uMsg) - { - case WM_INITDIALOG: - SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG)lParam); - poainfo = (OPENASINFO*)lParam; - if (!(poainfo->oaifInFlags & OAIF_ALLOW_REGISTRATION)) - EnableWindow(GetDlgItem(hwndDlg, 14003), FALSE); - if (poainfo->oaifInFlags & OAIF_FORCE_REGISTRATION) - SendDlgItemMessage(hwndDlg, 14003, BM_SETCHECK, BST_CHECKED, 0); - if (poainfo->oaifInFlags & OAIF_HIDE_REGISTRATION) - ShowWindow(GetDlgItem(hwndDlg, 14003), SW_HIDE); - if (poainfo->pcszFile) - { - szBuffer[0] = L'\0'; - SendDlgItemMessageW(hwndDlg, 14001, WM_GETTEXT, sizeof(szBuffer), (LPARAM)szBuffer); - index = wcslen(szBuffer); - if (index + wcslen(poainfo->pcszFile) + 1 < sizeof(szBuffer)/sizeof(szBuffer[0])) - wcscat(szBuffer, poainfo->pcszFile); - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - SendDlgItemMessageW(hwndDlg, 14001, WM_SETTEXT, 0, (LPARAM)szBuffer); - ZeroMemory(&Context, sizeof(OPEN_WITH_CONTEXT)); - Context.hDlgCtrl = GetDlgItem(hwndDlg, 14002); - LoadOWItems(&Context, poainfo->pcszFile); - SendMessage(Context.hDlgCtrl, LB_SETCURSEL, 0, 0); - } - return TRUE; - case WM_MEASUREITEM: - lpmis = (LPMEASUREITEMSTRUCT) lParam; - lpmis->itemHeight = 64; - return TRUE; - case WM_COMMAND: - switch(LOWORD(wParam)) - { - case 14004: /* browse */ - BrowseForApplication(hwndDlg); - return TRUE; - case 14002: - if (HIWORD(wParam) == LBN_SELCHANGE) - InvalidateRect((HWND)lParam, NULL, TRUE); // FIXME USE UPDATE RECT - break; - case 14005: /* ok */ - pItemContext = GetCurrentOpenItemContext(hwndDlg); - if (pItemContext) - { - /* store settings in HKCU path */ - StoreNewSettings(poainfo->pcszFile, pItemContext->szAppName); - - if (SendDlgItemMessage(hwndDlg, 14003, BM_GETCHECK, 0, 0) == BST_CHECKED) - { - /* set programm as default handler */ - SetProgrammAsDefaultHandler(poainfo->pcszFile, pItemContext->szAppName); - } - - if (poainfo->oaifInFlags & OAIF_EXEC) - ExecuteOpenItem(pItemContext, poainfo->pcszFile); - } - FreeListItems(hwndDlg); - EndDialog(hwndDlg, 1); - return TRUE; - case 14006: /* cancel */ - FreeListItems(hwndDlg); - EndDialog(hwndDlg, 0); - return TRUE; - default: - break; - } - break; - case WM_DRAWITEM: - lpdis = (LPDRAWITEMSTRUCT) lParam; - if (lpdis->itemID == -1) - break; - - switch (lpdis->itemAction) - { - case ODA_SELECT: - case ODA_DRAWENTIRE: - index = SendMessageW(lpdis->hwndItem, LB_GETCURSEL, 0, 0); - pItemContext =(POPEN_ITEM_CONTEXT)SendMessage(lpdis->hwndItem, LB_GETITEMDATA, lpdis->itemID, (LPARAM) 0); - - if (lpdis->itemID == index) - { - /* paint focused item with standard background colour */ - HBRUSH hBrush; - hBrush = CreateSolidBrush(RGB(46, 104, 160)); - FillRect(lpdis->hDC, &lpdis->rcItem, hBrush); - DeleteObject(hBrush); - preBkColor = SetBkColor(lpdis->hDC, RGB(46, 104, 160)); - } - else - { - /* paint non focused item with white background */ - HBRUSH hBrush; - hBrush = CreateSolidBrush(RGB(255, 255, 255)); - FillRect(lpdis->hDC, &lpdis->rcItem, hBrush); - DeleteObject(hBrush); - preBkColor = SetBkColor(lpdis->hDC, RGB(255, 255, 255)); - } - - SendMessageW(lpdis->hwndItem, LB_GETTEXT, lpdis->itemID, (LPARAM) szBuffer); - /* paint the icon */ - DrawIconEx(lpdis->hDC, lpdis->rcItem.left,lpdis->rcItem.top, pItemContext->hIcon, 0, 0, 0, NULL, DI_NORMAL); - /* get text size */ - GetTextMetrics(lpdis->hDC, &mt); - /* paint app name */ - YOffset = lpdis->rcItem.top + mt.tmHeight/2; - TextOutW(lpdis->hDC, 45, YOffset, szBuffer, wcslen(szBuffer)); - /* paint manufacturer description */ - YOffset += mt.tmHeight + 2; - preColor = SetTextColor(lpdis->hDC, RGB(192, 192, 192)); - if (pItemContext->szManufacturer[0]) - TextOutW(lpdis->hDC, 45, YOffset, pItemContext->szManufacturer, wcslen(pItemContext->szManufacturer)); - else - TextOutW(lpdis->hDC, 45, YOffset, pItemContext->szAppName, wcslen(pItemContext->szAppName)); - SetTextColor(lpdis->hDC, preColor); - SetBkColor(lpdis->hDC, preBkColor); - break; - } - break; - case WM_CLOSE: - FreeListItems(hwndDlg); - EndDialog(hwndDlg, 0); - return TRUE; - default: - break; - } - return FALSE; -} - -void -FreeMenuItemContext(HMENU hMenu) -{ - INT Count; - INT Index; - MENUITEMINFOW mii; - - /* get item count */ - Count = GetMenuItemCount(hMenu); - if (Count == -1) - return; - - /* setup menuitem info */ - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_DATA | MIIM_FTYPE; - - for(Index = 0; Index < Count; Index++) - { - if (GetMenuItemInfoW(hMenu, Index, TRUE, &mii)) - { - if ((mii.fType & MFT_SEPARATOR) || mii.dwItemData == 0) - continue; - HeapFree(GetProcessHeap(), 0, (LPVOID)mii.dwItemData); - } - } -} - - -static HRESULT WINAPI -SHEOWCm_fnInvokeCommand( IContextMenu2* iface, LPCMINVOKECOMMANDINFO lpici ) -{ - MENUITEMINFOW mii; - SHEOWImpl *This = impl_from_IContextMenu(iface); - - ERR("This %p wId %x count %u verb %x\n", This, This->wId, This->count, LOWORD(lpici->lpVerb)); - - if (This->wId < LOWORD(lpici->lpVerb)) - return E_FAIL; - - if (This->wId == LOWORD(lpici->lpVerb)) - { - OPENASINFO info; - - info.pcszFile = This->szPath; - info.oaifInFlags = OAIF_ALLOW_REGISTRATION | OAIF_REGISTER_EXT | OAIF_EXEC; - info.pcszClass = NULL; - FreeMenuItemContext(This->hSubMenu); - return SHOpenWithDialog(lpici->hwnd, &info); - } - - /* retrieve menu item info */ - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_DATA | MIIM_FTYPE; - - if (GetMenuItemInfoW(This->hSubMenu, LOWORD(lpici->lpVerb), TRUE, &mii)) - { - POPEN_ITEM_CONTEXT pItemContext = (POPEN_ITEM_CONTEXT)mii.dwItemData; - if (pItemContext) - { - /* launch item with specified app */ - ExecuteOpenItem(pItemContext, This->szPath); - } - } - /* free menu item context */ - FreeMenuItemContext(This->hSubMenu); - return S_OK; -} - -static HRESULT WINAPI -SHEOWCm_fnGetCommandString( IContextMenu2* iface, UINT_PTR idCmd, UINT uType, - UINT* pwReserved, LPSTR pszName, UINT cchMax ) -{ - SHEOWImpl *This = impl_from_IContextMenu(iface); - - FIXME("%p %lu %u %p %p %u\n", This, - idCmd, uType, pwReserved, pszName, cchMax ); - - return E_NOTIMPL; -} - -static HRESULT WINAPI SHEOWCm_fnHandleMenuMsg( - IContextMenu2 *iface, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - SHEOWImpl *This = impl_from_IContextMenu(iface); - - TRACE("This %p uMsg %x\n",This, uMsg); - - return E_NOTIMPL; -} - -static const IContextMenu2Vtbl cmvt = -{ - SHEOWCm_fnQueryInterface, - SHEOWCm_fnAddRef, - SHEOWCm_fnRelease, - SHEOWCm_fnQueryContextMenu, - SHEOWCm_fnInvokeCommand, - SHEOWCm_fnGetCommandString, - SHEOWCm_fnHandleMenuMsg -}; - -VOID -GetManufacturer(WCHAR * szAppName, POPEN_ITEM_CONTEXT pContext) -{ - UINT VerSize; - DWORD DummyHandle; - LPVOID pBuf; - WORD lang = 0; - WORD code = 0; - LPLANGANDCODEPAGE lplangcode; - WCHAR szBuffer[100]; - WCHAR * pResult; - BOOL bResult; - - static const WCHAR wFormat[] = L"\\StringFileInfo\\%04x%04x\\CompanyName"; - static const WCHAR wTranslation[] = L"VarFileInfo\\Translation"; - - /* query version info size */ - VerSize = GetFileVersionInfoSizeW(szAppName, &DummyHandle); - if (!VerSize) - { - pContext->szManufacturer[0] = 0; - return; - } - - /* allocate buffer */ - pBuf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, VerSize); - if (!pBuf) - { - pContext->szManufacturer[0] = 0; - return; - } - - /* query version info */ - if(!GetFileVersionInfoW(szAppName, 0, VerSize, pBuf)) - { - pContext->szManufacturer[0] = 0; - HeapFree(GetProcessHeap(), 0, pBuf); - return; - } - - /* query lang code */ - if(VerQueryValueW(pBuf, wTranslation, (LPVOID *)&lplangcode, &VerSize)) - { - /* FIXME find language from current locale / if not available, - * default to english - * for now default to first available language - */ - lang = lplangcode->lang; - code = lplangcode->code; - } - /* set up format */ - swprintf(szBuffer, wFormat, lang, code); - /* query manufacturer */ - pResult = NULL; - bResult = VerQueryValueW(pBuf, szBuffer, (LPVOID *)&pResult, &VerSize); - - if (VerSize && bResult && pResult) - wcscpy(pContext->szManufacturer, pResult); - else - pContext->szManufacturer[0] = 0; - HeapFree(GetProcessHeap(), 0, pBuf); -} - - - - -void -InsertOpenWithItem(POPEN_WITH_CONTEXT pContext, WCHAR * szAppName) -{ - MENUITEMINFOW mii; - POPEN_ITEM_CONTEXT pItemContext; - LRESULT index; - WCHAR * Offset; - WCHAR Buffer[_MAX_FNAME]; - - pItemContext = HeapAlloc(GetProcessHeap(), 0, sizeof(OPEN_ITEM_CONTEXT)); - if (!pItemContext) - return; - - /* store app path */ - wcscpy(pItemContext->szAppName, szAppName); - /* null terminate it */ - pItemContext->szAppName[MAX_PATH-1] = 0; - /* extract path name */ - _wsplitpath(szAppName, NULL, NULL, Buffer, NULL); - Offset = wcsrchr(Buffer, '.'); - if (Offset) - Offset[0] = L'\0'; - Buffer[0] = towupper(Buffer[0]); - - if (pContext->bMenu) - { - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | MIIM_DATA; - mii.fType = MFT_STRING; //MFT_OWNERDRAW; - mii.fState = MFS_ENABLED; - mii.wID = pContext->idCmdFirst; - mii.dwTypeData = Buffer; - mii.cch = wcslen(Buffer); - mii.dwItemData = (ULONG_PTR)pItemContext; - wcscpy(pItemContext->szManufacturer, Buffer); - if (InsertMenuItemW(pContext->hMenu, -1, TRUE, &mii)) - { - pContext->idCmdFirst++; - pContext->Count++; - } - } - else - { - /* get default icon */ - pItemContext->hIcon = ExtractIconW(shell32_hInstance, szAppName, 0); - /* get manufacturer */ - GetManufacturer(pItemContext->szAppName, pItemContext); - index = SendMessageW(pContext->hDlgCtrl, LB_ADDSTRING, 0, (LPARAM)Buffer); - if (index != LB_ERR) - SendMessageW(pContext->hDlgCtrl, LB_SETITEMDATA, index, (LPARAM)pItemContext); - } -} - -void -AddItemFromProgIDList(POPEN_WITH_CONTEXT pContext, HKEY hKey) -{ - FIXME("implement me :)))\n"); -} - -HANDLE -OpenMRUList(HKEY hKey) -{ - MRUINFO info; - - if (!hModule) - { - WCHAR szPath[MAX_PATH]; - if (!GetSystemDirectoryW(szPath, MAX_PATH)) - return 0; - PathAddBackslashW(szPath); - wcscat(szPath, L"comctl32.dll"); - hModule = LoadLibraryExW(szPath, NULL, 0); - } - CreateMRUListProcW = (CREATEMRULISTPROCW)GetProcAddress(hModule, MAKEINTRESOURCEA(400)); - EnumMRUListW = (ENUMMRULISTW)GetProcAddress(hModule, MAKEINTRESOURCEA(403)); - FreeMRUListProc = (FREEMRULIST)GetProcAddress(hModule, MAKEINTRESOURCEA(152)); - AddMRUStringW = (ADDMRUSTRINGW)GetProcAddress(hModule, MAKEINTRESOURCEA(401)); - - if (!CreateMRUListProcW || !EnumMRUListW || !FreeMRUListProc || !AddMRUStringW) - return 0; - - /* initialize mru list info */ - info.cbSize = sizeof(MRUINFO); - info.uMax = 32; - info.fFlags = MRUF_STRING_LIST; - info.hKey = hKey; - info.lpszSubKey = L"OpenWithList"; - info.lpfnCompare = NULL; - - /* load list */ - return (*CreateMRUListProcW)(&info); -} - -void -AddItemFromMRUList(POPEN_WITH_CONTEXT pContext, HKEY hKey) -{ - HANDLE hList; - int nItem, nCount, nResult; - WCHAR szBuffer[MAX_PATH]; - - /* open mru list */ - hList = OpenMRUList(hKey); - if (!hList) - return; - - /* get list count */ - nCount = (*EnumMRUListW)((HANDLE)hList, -1, NULL, 0); - - for(nItem = 0; nItem < nCount; nItem++) - { - nResult = (*EnumMRUListW)((HANDLE)hList, nItem, szBuffer, MAX_PATH); - if (nResult <= 0) - continue; - /* make sure its zero terminated */ - szBuffer[min(MAX_PATH-1, nResult)] = '\0'; - /* insert item */ - if (!HideApplicationFromList(szBuffer)) - InsertOpenWithItem(pContext, szBuffer); - } - - /* free the mru list */ - (*FreeMRUList)((HANDLE)hList); -} - - - -void -LoadItemFromHKCR(POPEN_WITH_CONTEXT pContext, WCHAR * szExt) -{ - HKEY hKey; - HKEY hSubKey; - WCHAR szBuffer[MAX_PATH+10]; - WCHAR szResult[100]; - DWORD dwSize; - - static const WCHAR szOpenWithList[] = L"OpenWithList"; - static const WCHAR szOpenWithProgIds[] = L"OpenWithProgIDs"; - static const WCHAR szPerceivedType[] = L"PerceivedType"; - static const WCHAR szSysFileAssoc[] = L"SystemFileAssociations\\%s"; - - /* check if extension exists */ - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, szExt, 0, KEY_READ | KEY_WRITE, &hKey) != ERROR_SUCCESS) - return; - - if (RegGetValueW(hKey, NULL, L"NoOpen", RRF_RT_REG_SZ, NULL, NULL, &dwSize) == ERROR_SUCCESS) - { - /* display warning dialog */ - pContext->NoOpen = TRUE; - } - - /* check if there is a directly available execute key */ - if (RegOpenKeyExW(hKey, L"shell\\open\\command", 0, KEY_READ, &hSubKey) == ERROR_SUCCESS) - { - DWORD dwBuffer = sizeof(szBuffer); - - if (RegGetValueW(hSubKey, NULL, NULL, RRF_RT_REG_SZ, NULL, (PVOID)szBuffer, &dwBuffer) == ERROR_SUCCESS) - { - WCHAR * Ext = wcsrchr(szBuffer, ' '); - if (Ext) - { - /* erase %1 or extra arguments */ - Ext[0] = 0; - } - if(!HideApplicationFromList(szBuffer)) - InsertOpenWithItem(pContext, szBuffer); - } - RegCloseKey(hSubKey); - } - - /* load items from HKCR\Ext\OpenWithList */ - if (RegOpenKeyExW(hKey, szOpenWithList, 0, KEY_READ | KEY_QUERY_VALUE, &hSubKey) == ERROR_SUCCESS) - { - AddItemFromMRUList(pContext, hKey); - RegCloseKey(hSubKey); - } - - /* load items from HKCR\Ext\OpenWithProgIDs */ - if (RegOpenKeyExW(hKey, szOpenWithProgIds, 0, KEY_READ | KEY_QUERY_VALUE, &hSubKey) == ERROR_SUCCESS) - { - AddItemFromProgIDList(pContext, hSubKey); - RegCloseKey(hSubKey); - } - - /* load items from SystemFileAssociations\Ext key */ - swprintf(szResult, szSysFileAssoc, szExt); - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, szResult, 0, KEY_READ | KEY_WRITE, &hSubKey) == ERROR_SUCCESS) - { - AddItemFromMRUList(pContext, hSubKey); - RegCloseKey(hSubKey); - } - - /* load additional items from referenced PerceivedType*/ - dwSize = sizeof(szBuffer); - if (RegGetValueW(hKey, NULL, szPerceivedType, RRF_RT_REG_SZ, NULL, szBuffer, &dwSize) != ERROR_SUCCESS) - { - RegCloseKey(hKey); - return; - } - RegCloseKey(hKey); - - /* terminate it explictely */ - szBuffer[29] = 0; - swprintf(szResult, szSysFileAssoc, szBuffer); - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, szResult, 0, KEY_READ | KEY_WRITE, &hSubKey) == ERROR_SUCCESS) - { - AddItemFromMRUList(pContext, hSubKey); - RegCloseKey(hSubKey); - } -} - -void -LoadItemFromHKCU(POPEN_WITH_CONTEXT pContext, WCHAR * szExt) -{ - WCHAR szBuffer[MAX_PATH]; - HKEY hKey; - - static const WCHAR szOpenWithProgIDs[] = L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\%s\\OpenWithProgIDs"; - static const WCHAR szOpenWithList[] = L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\%s"; - - /* handle first progid lists */ - swprintf(szBuffer, szOpenWithProgIDs, szExt); - if (RegOpenKeyExW(HKEY_CURRENT_USER, szBuffer, 0, KEY_READ | KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) - { - AddItemFromProgIDList(pContext, hKey); - RegCloseKey(hKey); - } - - /* now handle mru lists */ - swprintf(szBuffer, szOpenWithList, szExt); - if (RegOpenKeyExW(HKEY_CURRENT_USER, szBuffer, 0, KEY_READ | KEY_WRITE, &hKey) == ERROR_SUCCESS) - { - AddItemFromMRUList(pContext, hKey); - RegCloseKey(hKey); - } -} - -HRESULT -SHEOW_LoadOpenWithItems(SHEOWImpl *This, IDataObject *pdtobj) -{ - STGMEDIUM medium; - FORMATETC fmt; - HRESULT hr; - LPIDA pida; - LPCITEMIDLIST pidl_folder; - LPCITEMIDLIST pidl_child; - LPCITEMIDLIST pidl; - DWORD dwPath; - LPWSTR szPtr; - static const WCHAR szShortCut[] = { '.','l','n','k', 0 }; - - fmt.cfFormat = RegisterClipboardFormatW(CFSTR_SHELLIDLIST); - fmt.ptd = NULL; - fmt.dwAspect = DVASPECT_CONTENT; - fmt.lindex = -1; - fmt.tymed = TYMED_HGLOBAL; - - hr = IDataObject_GetData(pdtobj, &fmt, &medium); - - if (FAILED(hr)) - { - ERR("IDataObject_GetData failed with 0x%x\n", hr); - return hr; - } - - /*assert(pida->cidl==1);*/ - pida = (LPIDA)GlobalLock(medium.u.hGlobal); - - pidl_folder = (LPCITEMIDLIST) ((LPBYTE)pida+pida->aoffset[0]); - pidl_child = (LPCITEMIDLIST) ((LPBYTE)pida+pida->aoffset[1]); - - pidl = ILCombine(pidl_folder, pidl_child); - - GlobalUnlock(medium.u.hGlobal); - GlobalFree(medium.u.hGlobal); - - if (!pidl) - { - ERR("no mem\n"); - return E_OUTOFMEMORY; - } - if (_ILIsDesktop(pidl) || _ILIsMyDocuments(pidl) || _ILIsControlPanel(pidl) || _ILIsNetHood(pidl) || - _ILIsBitBucket(pidl) || _ILIsDrive(pidl) || _ILIsCPanelStruct(pidl) || _ILIsFolder(pidl) || _ILIsControlPanel(pidl)) - { - TRACE("pidl is a folder\n"); - SHFree((void*)pidl); - return E_FAIL; - } - - if (!SHGetPathFromIDListW(pidl, This->szPath)) - { - SHFree((void*)pidl); - ERR("SHGetPathFromIDListW failed\n"); - return E_FAIL; - } - - SHFree((void*)pidl); - TRACE("szPath %s\n", debugstr_w(This->szPath)); - - if (GetBinaryTypeW(This->szPath, &dwPath)) - { - TRACE("path is a executable %x\n", dwPath); - return E_FAIL; - } - - szPtr = wcsrchr(This->szPath, '.'); - if (szPtr) - { - if (!_wcsicmp(szPtr, szShortCut)) - { - FIXME("pidl is a shortcut\n"); - return E_FAIL; - } - } - return S_OK; -} - -static HRESULT WINAPI -SHEOW_ExtInit_Initialize( IShellExtInit* iface, LPCITEMIDLIST pidlFolder, - IDataObject *pdtobj, HKEY hkeyProgID ) -{ - SHEOWImpl *This = impl_from_IShellExtInit(iface); - - TRACE("This %p\n", This); - - return SHEOW_LoadOpenWithItems(This, pdtobj); -} - -static ULONG WINAPI SHEOW_ExtInit_AddRef(IShellExtInit *iface) -{ - SHEOWImpl *This = impl_from_IShellExtInit(iface); - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI SHEOW_ExtInit_Release(IShellExtInit *iface) -{ - SHEOWImpl *This = impl_from_IShellExtInit(iface); - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(count=%i)\n", This, refCount + 1); - - if (!refCount) - { - HeapFree(GetProcessHeap(),0,This); - } - return refCount; -} - -static HRESULT WINAPI -SHEOW_ExtInit_QueryInterface( IShellExtInit* iface, REFIID riid, void** ppvObject ) -{ - SHEOWImpl *This = impl_from_IShellExtInit(iface); - return SHEOWCm_fnQueryInterface((IContextMenu2*)This, riid, ppvObject); -} - -static const IShellExtInitVtbl eivt = -{ - SHEOW_ExtInit_QueryInterface, - SHEOW_ExtInit_AddRef, - SHEOW_ExtInit_Release, - SHEOW_ExtInit_Initialize -}; - - -HRESULT WINAPI SHOpenWithDialog( - HWND hwndParent, - const OPENASINFO *poainfo -) -{ - MSG msg; - BOOL bRet; - HWND hwnd; - - if (poainfo->pcszClass == NULL && poainfo->pcszFile == NULL) - return E_FAIL; - - - hwnd = CreateDialogParam(shell32_hInstance, MAKEINTRESOURCE(OPEN_WITH_PROGRAMM_DLG), hwndParent, OpenWithProgrammDlg, (LPARAM)poainfo); - if (hwnd == NULL) - { - ERR("Failed to create dialog\n"); - return E_FAIL; - } - ShowWindow(hwnd, SW_SHOWNORMAL); - - while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) - { - if (!IsWindow(hwnd) || !IsDialogMessage(hwnd, &msg)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - return S_OK; -} diff --git a/reactos/dll/win32/shell32/shell.c b/reactos/dll/win32/shell32/shell.c deleted file mode 100644 index 71761fc49ad..00000000000 --- a/reactos/dll/win32/shell32/shell.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Shell Library Functions - * - * Copyright 1998 Marcus Meissner - * Copyright 2000 Juergen Schmied - * Copyright 2002 Eric Pouech - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include -#include -#include -#include -#include -#include -#include - - - - diff --git a/reactos/dll/win32/shell32/shell32_main.c b/reactos/dll/win32/shell32/shell32_main.c deleted file mode 100644 index 2bf6502443f..00000000000 --- a/reactos/dll/win32/shell32/shell32_main.c +++ /dev/null @@ -1,1370 +0,0 @@ -/* - * Shell basics - * - * Copyright 1998 Marcus Meissner - * Copyright 1998 Juergen Schmied (jsch) * - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -extern const char * const SHELL_Authors[]; - -#define MORE_DEBUG 1 -/************************************************************************* - * CommandLineToArgvW [SHELL32.@] - * - * We must interpret the quotes in the command line to rebuild the argv - * array correctly: - * - arguments are separated by spaces or tabs - * - quotes serve as optional argument delimiters - * '"a b"' -> 'a b' - * - escaped quotes must be converted back to '"' - * '\"' -> '"' - * - an odd number of '\'s followed by '"' correspond to half that number - * of '\' followed by a '"' (extension of the above) - * '\\\"' -> '\"' - * '\\\\\"' -> '\\"' - * - an even number of '\'s followed by a '"' correspond to half that number - * of '\', plus a regular quote serving as an argument delimiter (which - * means it does not appear in the result) - * 'a\\"b c"' -> 'a\b c' - * 'a\\\\"b c"' -> 'a\\b c' - * - '\' that are not followed by a '"' are copied literally - * 'a\b' -> 'a\b' - * 'a\\b' -> 'a\\b' - * - * Note: - * '\t' == 0x0009 - * ' ' == 0x0020 - * '"' == 0x0022 - * '\\' == 0x005c - */ -LPWSTR* WINAPI CommandLineToArgvW(LPCWSTR lpCmdline, int* numargs) -{ - DWORD argc; - LPWSTR *argv; - LPCWSTR cs; - LPWSTR arg,s,d; - LPWSTR cmdline; - int in_quotes,bcount; - - if (*lpCmdline==0) - { - /* Return the path to the executable */ - DWORD len, size=16; - - argv=LocalAlloc(LMEM_FIXED, size); - for (;;) - { - len = GetModuleFileNameW(0, (LPWSTR)(argv+1), (size-sizeof(LPWSTR))/sizeof(WCHAR)); - if (!len) - { - LocalFree(argv); - return NULL; - } - if (len < size) break; - size*=2; - argv=LocalReAlloc(argv, size, 0); - } - argv[0]=(LPWSTR)(argv+1); - if (numargs) - *numargs=1; - - return argv; - } - - /* to get a writable copy */ - argc=0; - bcount=0; - in_quotes=0; - cs=lpCmdline; - while (1) - { - if (*cs==0 || ((*cs==0x0009 || *cs==0x0020) && !in_quotes)) - { - /* space */ - argc++; - /* skip the remaining spaces */ - while (*cs==0x0009 || *cs==0x0020) { - cs++; - } - if (*cs==0) - break; - bcount=0; - continue; - } - else if (*cs==0x005c) - { - /* '\', count them */ - bcount++; - } - else if ((*cs==0x0022) && ((bcount & 1)==0)) - { - /* unescaped '"' */ - in_quotes=!in_quotes; - bcount=0; - } - else - { - /* a regular character */ - bcount=0; - } - cs++; - } - /* Allocate in a single lump, the string array, and the strings that go with it. - * This way the caller can make a single GlobalFree call to free both, as per MSDN. - */ - argv=LocalAlloc(LMEM_FIXED, argc*sizeof(LPWSTR)+(wcslen(lpCmdline)+1)*sizeof(WCHAR)); - if (!argv) - return NULL; - cmdline=(LPWSTR)(argv+argc); - wcscpy(cmdline, lpCmdline); - - argc=0; - bcount=0; - in_quotes=0; - arg=d=s=cmdline; - while (*s) - { - if ((*s==0x0009 || *s==0x0020) && !in_quotes) - { - /* Close the argument and copy it */ - *d=0; - argv[argc++]=arg; - - /* skip the remaining spaces */ - do { - s++; - } while (*s==0x0009 || *s==0x0020); - - /* Start with a new argument */ - arg=d=s; - bcount=0; - } - else if (*s==0x005c) - { - /* '\\' */ - *d++=*s++; - bcount++; - } - else if (*s==0x0022) - { - /* '"' */ - if ((bcount & 1)==0) - { - /* Preceded by an even number of '\', this is half that - * number of '\', plus a quote which we erase. - */ - d-=bcount/2; - in_quotes=!in_quotes; - s++; - } - else - { - /* Preceded by an odd number of '\', this is half that - * number of '\' followed by a '"' - */ - d=d-bcount/2-1; - *d++='"'; - s++; - } - bcount=0; - } - else - { - /* a regular character */ - *d++=*s++; - bcount=0; - } - } - if (*arg) - { - *d='\0'; - argv[argc++]=arg; - } - if (numargs) - *numargs=argc; - - return argv; -} - -static DWORD shgfi_get_exe_type(LPCWSTR szFullPath) -{ - BOOL status = FALSE; - HANDLE hfile; - DWORD BinaryType; - IMAGE_DOS_HEADER mz_header; - IMAGE_NT_HEADERS nt; - DWORD len; - char magic[4]; - - status = GetBinaryTypeW (szFullPath, &BinaryType); - if (!status) - return 0; - if (BinaryType == SCS_DOS_BINARY || BinaryType == SCS_PIF_BINARY) - return 0x4d5a; - - hfile = CreateFileW( szFullPath, GENERIC_READ, FILE_SHARE_READ, - NULL, OPEN_EXISTING, 0, 0 ); - if ( hfile == INVALID_HANDLE_VALUE ) - return 0; - - /* - * The next section is adapted from MODULE_GetBinaryType, as we need - * to examine the image header to get OS and version information. We - * know from calling GetBinaryTypeA that the image is valid and either - * an NE or PE, so much error handling can be omitted. - * Seek to the start of the file and read the header information. - */ - - SetFilePointer( hfile, 0, NULL, SEEK_SET ); - ReadFile( hfile, &mz_header, sizeof(mz_header), &len, NULL ); - - SetFilePointer( hfile, mz_header.e_lfanew, NULL, SEEK_SET ); - ReadFile( hfile, magic, sizeof(magic), &len, NULL ); - if ( *(DWORD*)magic == IMAGE_NT_SIGNATURE ) - { - SetFilePointer( hfile, mz_header.e_lfanew, NULL, SEEK_SET ); - ReadFile( hfile, &nt, sizeof(nt), &len, NULL ); - CloseHandle( hfile ); - /* DLL files are not executable and should return 0 */ - if (nt.FileHeader.Characteristics & IMAGE_FILE_DLL) - return 0; - if (nt.OptionalHeader.Subsystem == IMAGE_SUBSYSTEM_WINDOWS_GUI) - { - return IMAGE_NT_SIGNATURE | - (nt.OptionalHeader.MajorSubsystemVersion << 24) | - (nt.OptionalHeader.MinorSubsystemVersion << 16); - } - return IMAGE_NT_SIGNATURE; - } - else if ( *(WORD*)magic == IMAGE_OS2_SIGNATURE ) - { - IMAGE_OS2_HEADER ne; - SetFilePointer( hfile, mz_header.e_lfanew, NULL, SEEK_SET ); - ReadFile( hfile, &ne, sizeof(ne), &len, NULL ); - CloseHandle( hfile ); - if (ne.ne_exetyp == 2) - return IMAGE_OS2_SIGNATURE | (ne.ne_expver << 16); - return 0; - } - CloseHandle( hfile ); - return 0; -} - -/************************************************************************* - * SHELL_IsShortcut [internal] - * - * Decide if an item id list points to a shell shortcut - */ -BOOL SHELL_IsShortcut(LPCITEMIDLIST pidlLast) -{ - char szTemp[MAX_PATH]; - HKEY keyCls; - BOOL ret = FALSE; - - if (_ILGetExtension(pidlLast, szTemp, MAX_PATH) && - HCR_MapTypeToValueA(szTemp, szTemp, MAX_PATH, TRUE)) - { - if (ERROR_SUCCESS == RegOpenKeyExA(HKEY_CLASSES_ROOT, szTemp, 0, KEY_QUERY_VALUE, &keyCls)) - { - if (ERROR_SUCCESS == RegQueryValueExA(keyCls, "IsShortcut", NULL, NULL, NULL, NULL)) - ret = TRUE; - - RegCloseKey(keyCls); - } - } - - return ret; -} - -#define SHGFI_KNOWN_FLAGS \ - (SHGFI_SMALLICON | SHGFI_OPENICON | SHGFI_SHELLICONSIZE | SHGFI_PIDL | \ - SHGFI_USEFILEATTRIBUTES | SHGFI_ADDOVERLAYS | SHGFI_OVERLAYINDEX | \ - SHGFI_ICON | SHGFI_DISPLAYNAME | SHGFI_TYPENAME | SHGFI_ATTRIBUTES | \ - SHGFI_ICONLOCATION | SHGFI_EXETYPE | SHGFI_SYSICONINDEX | \ - SHGFI_LINKOVERLAY | SHGFI_SELECTED | SHGFI_ATTR_SPECIFIED) - -/************************************************************************* - * SHGetFileInfoW [SHELL32.@] - * - */ -DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes, - SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags ) -{ - WCHAR szLocation[MAX_PATH], szFullPath[MAX_PATH]; - int iIndex; - DWORD_PTR ret = TRUE; - DWORD dwAttributes = 0; - IShellFolder * psfParent = NULL; - IExtractIconW * pei = NULL; - LPITEMIDLIST pidlLast = NULL, pidl = NULL; - HRESULT hr = S_OK; - BOOL IconNotYetLoaded=TRUE; - UINT uGilFlags = 0; - - TRACE("%s fattr=0x%x sfi=%p(attr=0x%08x) size=0x%x flags=0x%x\n", - (flags & SHGFI_PIDL)? "pidl" : debugstr_w(path), dwFileAttributes, - psfi, psfi->dwAttributes, sizeofpsfi, flags); - - if (!path) - return FALSE; - - /* windows initializes these values regardless of the flags */ - if (psfi != NULL) - { - psfi->szDisplayName[0] = '\0'; - psfi->szTypeName[0] = '\0'; - psfi->iIcon = 0; - } - - if (!(flags & SHGFI_PIDL)) - { - /* SHGetFileInfo should work with absolute and relative paths */ - if (PathIsRelativeW(path)) - { - GetCurrentDirectoryW(MAX_PATH, szLocation); - PathCombineW(szFullPath, szLocation, path); - } - else - { - lstrcpynW(szFullPath, path, MAX_PATH); - } - } - - if (flags & SHGFI_EXETYPE) - { - if (flags != SHGFI_EXETYPE) - return 0; - return shgfi_get_exe_type(szFullPath); - } - - /* - * psfi is NULL normally to query EXE type. If it is NULL, none of the - * below makes sense anyway. Windows allows this and just returns FALSE - */ - if (psfi == NULL) - return FALSE; - - /* - * translate the path into a pidl only when SHGFI_USEFILEATTRIBUTES - * is not specified. - * The pidl functions fail on not existing file names - */ - - if (flags & SHGFI_PIDL) - { - pidl = ILClone((LPCITEMIDLIST)path); - } - else if (!(flags & SHGFI_USEFILEATTRIBUTES)) - { - hr = SHILCreateFromPathW(szFullPath, &pidl, &dwAttributes); - } - - if ((flags & SHGFI_PIDL) || !(flags & SHGFI_USEFILEATTRIBUTES)) - { - /* get the parent shellfolder */ - if (pidl) - { - hr = SHBindToParent( pidl, &IID_IShellFolder, (LPVOID*)&psfParent, - (LPCITEMIDLIST*)&pidlLast ); - if (SUCCEEDED(hr)) - pidlLast = ILClone(pidlLast); - ILFree(pidl); - } - else - { - ERR("pidl is null!\n"); - return FALSE; - } - } - - /* get the attributes of the child */ - if (SUCCEEDED(hr) && (flags & SHGFI_ATTRIBUTES)) - { - if (!(flags & SHGFI_ATTR_SPECIFIED)) - { - psfi->dwAttributes = 0xffffffff; - } - if (psfParent) - IShellFolder_GetAttributesOf( psfParent, 1, (LPCITEMIDLIST*)&pidlLast, - &(psfi->dwAttributes) ); - } - - /* get the displayname */ - if (SUCCEEDED(hr) && (flags & SHGFI_DISPLAYNAME)) - { - if (flags & SHGFI_USEFILEATTRIBUTES) - { - wcscpy (psfi->szDisplayName, PathFindFileNameW(szFullPath)); - } - else - { - STRRET str; - hr = IShellFolder_GetDisplayNameOf( psfParent, pidlLast, - SHGDN_INFOLDER, &str); - StrRetToStrNW (psfi->szDisplayName, MAX_PATH, &str, pidlLast); - } - } - - /* get the type name */ - if (SUCCEEDED(hr) && (flags & SHGFI_TYPENAME)) - { - static const WCHAR szFile[] = { 'F','i','l','e',0 }; - static const WCHAR szDashFile[] = { '-','f','i','l','e',0 }; - - if (!(flags & SHGFI_USEFILEATTRIBUTES)) - { - char ftype[80]; - - _ILGetFileType(pidlLast, ftype, 80); - MultiByteToWideChar(CP_ACP, 0, ftype, -1, psfi->szTypeName, 80 ); - } - else - { - if (dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - wcscat (psfi->szTypeName, szFile); - else - { - WCHAR sTemp[64]; - - wcscpy(sTemp,PathFindExtensionW(szFullPath)); - if (!( HCR_MapTypeToValueW(sTemp, sTemp, 64, TRUE) && - HCR_MapTypeToValueW(sTemp, psfi->szTypeName, 80, FALSE ))) - { - lstrcpynW (psfi->szTypeName, sTemp, 64); - wcscat (psfi->szTypeName, szDashFile); - } - } - } - } - - /* ### icons ###*/ - if (flags & SHGFI_OPENICON) - uGilFlags |= GIL_OPENICON; - - if (flags & SHGFI_LINKOVERLAY) - uGilFlags |= GIL_FORSHORTCUT; - else if ((flags&SHGFI_ADDOVERLAYS) || - (flags&(SHGFI_ICON|SHGFI_SMALLICON))==SHGFI_ICON) - { - if (SHELL_IsShortcut(pidlLast)) - uGilFlags |= GIL_FORSHORTCUT; - } - - if (flags & SHGFI_OVERLAYINDEX) - FIXME("SHGFI_OVERLAYINDEX unhandled\n"); - - if (flags & SHGFI_SELECTED) - FIXME("set icon to selected, stub\n"); - - if (flags & SHGFI_SHELLICONSIZE) - FIXME("set icon to shell size, stub\n"); - - /* get the iconlocation */ - if (SUCCEEDED(hr) && (flags & SHGFI_ICONLOCATION )) - { - UINT uDummy,uFlags; - - if (flags & SHGFI_USEFILEATTRIBUTES) - { - if (dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - wcscpy(psfi->szDisplayName, swShell32Name); - psfi->iIcon = -IDI_SHELL_FOLDER; - } - else - { - WCHAR* szExt; - static const WCHAR p1W[] = {'%','1',0}; - WCHAR sTemp [MAX_PATH]; - - szExt = PathFindExtensionW(szFullPath); - TRACE("szExt=%s\n", debugstr_w(szExt)); - if ( szExt && - HCR_MapTypeToValueW(szExt, sTemp, MAX_PATH, TRUE) && - HCR_GetDefaultIconW(sTemp, sTemp, MAX_PATH, &psfi->iIcon)) - { - if (lstrcmpW(p1W, sTemp)) - wcscpy(psfi->szDisplayName, sTemp); - else - { - /* the icon is in the file */ - wcscpy(psfi->szDisplayName, szFullPath); - } - } - else - ret = FALSE; - } - } - else - { - hr = IShellFolder_GetUIObjectOf(psfParent, 0, 1, - (LPCITEMIDLIST*)&pidlLast, &IID_IExtractIconW, - &uDummy, (LPVOID*)&pei); - if (SUCCEEDED(hr)) - { - hr = IExtractIconW_GetIconLocation(pei, uGilFlags, - szLocation, MAX_PATH, &iIndex, &uFlags); - - if (uFlags & GIL_NOTFILENAME) - ret = FALSE; - else - { - wcscpy (psfi->szDisplayName, szLocation); - psfi->iIcon = iIndex; - } - IExtractIconW_Release(pei); - } - } - } - - /* get icon index (or load icon)*/ - if (SUCCEEDED(hr) && (flags & (SHGFI_ICON | SHGFI_SYSICONINDEX))) - { - if (flags & SHGFI_USEFILEATTRIBUTES && !(flags & SHGFI_PIDL)) - { - WCHAR sTemp [MAX_PATH]; - WCHAR * szExt; - int icon_idx=0; - - lstrcpynW(sTemp, szFullPath, MAX_PATH); - - if (dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - psfi->iIcon = SIC_GetIconIndex(swShell32Name, -IDI_SHELL_FOLDER, 0); - else - { - static const WCHAR p1W[] = {'%','1',0}; - - psfi->iIcon = 0; - szExt = PathFindExtensionW(sTemp); - if ( szExt && - HCR_MapTypeToValueW(szExt, sTemp, MAX_PATH, TRUE) && - HCR_GetDefaultIconW(sTemp, sTemp, MAX_PATH, &icon_idx)) - { - if (!lstrcmpW(p1W,sTemp)) /* icon is in the file */ - wcscpy(sTemp, szFullPath); - - if (flags & SHGFI_SYSICONINDEX) - { - psfi->iIcon = SIC_GetIconIndex(sTemp,icon_idx,0); - if (psfi->iIcon == -1) - psfi->iIcon = 0; - } - else - { - UINT ret; - if (flags & SHGFI_SMALLICON) - ret = PrivateExtractIconsW( sTemp,icon_idx, - GetSystemMetrics( SM_CXSMICON ), - GetSystemMetrics( SM_CYSMICON ), - &psfi->hIcon, 0, 1, 0); - else - ret = PrivateExtractIconsW( sTemp, icon_idx, - GetSystemMetrics( SM_CXICON), - GetSystemMetrics( SM_CYICON), - &psfi->hIcon, 0, 1, 0); - if (ret != 0 && ret != 0xFFFFFFFF) - { - IconNotYetLoaded=FALSE; - psfi->iIcon = icon_idx; - } - } - } - } - } - else - { - if (!(PidlToSicIndex(psfParent, pidlLast, !(flags & SHGFI_SMALLICON), - uGilFlags, &(psfi->iIcon)))) - { - ret = FALSE; - } - } - if (ret && (flags & SHGFI_SYSICONINDEX)) - { - if (flags & SHGFI_SMALLICON) - ret = (DWORD_PTR) ShellSmallIconList; - else - ret = (DWORD_PTR) ShellBigIconList; - } - } - - /* icon handle */ - if (SUCCEEDED(hr) && (flags & SHGFI_ICON) && IconNotYetLoaded) - { - if (flags & SHGFI_SMALLICON) - psfi->hIcon = ImageList_GetIcon( ShellSmallIconList, psfi->iIcon, ILD_NORMAL); - else - psfi->hIcon = ImageList_GetIcon( ShellBigIconList, psfi->iIcon, ILD_NORMAL); - } - - if (flags & ~SHGFI_KNOWN_FLAGS) - FIXME("unknown flags %08x\n", flags & ~SHGFI_KNOWN_FLAGS); - - if (psfParent) - IShellFolder_Release(psfParent); - - if (hr != S_OK) - ret = FALSE; - - SHFree(pidlLast); - -#ifdef MORE_DEBUG - TRACE ("icon=%p index=0x%08x attr=0x%08x name=%s type=%s ret=0x%08lx\n", - psfi->hIcon, psfi->iIcon, psfi->dwAttributes, - debugstr_w(psfi->szDisplayName), debugstr_w(psfi->szTypeName), ret); -#endif - - return ret; -} - -/************************************************************************* - * SHGetFileInfoA [SHELL32.@] - * - * Note: - * MSVBVM60.__vbaNew2 expects this function to return a value in range - * 1 .. 0x7fff when the function succeeds and flags does not contain - * SHGFI_EXETYPE or SHGFI_SYSICONINDEX (see bug 7701) - */ -DWORD_PTR WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes, - SHFILEINFOA *psfi, UINT sizeofpsfi, - UINT flags ) -{ - INT len; - LPWSTR temppath = NULL; - LPCWSTR pathW; - DWORD ret; - SHFILEINFOW temppsfi; - - if (flags & SHGFI_PIDL) - { - /* path contains a pidl */ - pathW = (LPCWSTR)path; - } - else - { - len = MultiByteToWideChar(CP_ACP, 0, path, -1, NULL, 0); - temppath = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, path, -1, temppath, len); - pathW = temppath; - } - - if (psfi && (flags & SHGFI_ATTR_SPECIFIED)) - temppsfi.dwAttributes=psfi->dwAttributes; - - if (psfi == NULL) - ret = SHGetFileInfoW(pathW, dwFileAttributes, NULL, sizeof(temppsfi), flags); - else - ret = SHGetFileInfoW(pathW, dwFileAttributes, &temppsfi, sizeof(temppsfi), flags); - - if (psfi) - { - if(flags & SHGFI_ICON) - psfi->hIcon=temppsfi.hIcon; - if(flags & (SHGFI_SYSICONINDEX|SHGFI_ICON|SHGFI_ICONLOCATION)) - psfi->iIcon=temppsfi.iIcon; - if(flags & SHGFI_ATTRIBUTES) - psfi->dwAttributes=temppsfi.dwAttributes; - if(flags & (SHGFI_DISPLAYNAME|SHGFI_ICONLOCATION)) - { - WideCharToMultiByte(CP_ACP, 0, temppsfi.szDisplayName, -1, - psfi->szDisplayName, sizeof(psfi->szDisplayName), NULL, NULL); - } - if(flags & SHGFI_TYPENAME) - { - WideCharToMultiByte(CP_ACP, 0, temppsfi.szTypeName, -1, - psfi->szTypeName, sizeof(psfi->szTypeName), NULL, NULL); - } - } - - HeapFree(GetProcessHeap(), 0, temppath); - - return ret; -} - -/************************************************************************* - * DuplicateIcon [SHELL32.@] - */ -HICON WINAPI DuplicateIcon( HINSTANCE hInstance, HICON hIcon) -{ - ICONINFO IconInfo; - HICON hDupIcon = 0; - - TRACE("%p %p\n", hInstance, hIcon); - - if (GetIconInfo(hIcon, &IconInfo)) - { - hDupIcon = CreateIconIndirect(&IconInfo); - - /* clean up hbmMask and hbmColor */ - DeleteObject(IconInfo.hbmMask); - DeleteObject(IconInfo.hbmColor); - } - - return hDupIcon; -} - -/************************************************************************* - * ExtractIconA [SHELL32.@] - */ -HICON WINAPI ExtractIconA(HINSTANCE hInstance, LPCSTR lpszFile, UINT nIconIndex) -{ - HICON ret; - INT len = MultiByteToWideChar(CP_ACP, 0, lpszFile, -1, NULL, 0); - LPWSTR lpwstrFile = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - - TRACE("%p %s %d\n", hInstance, lpszFile, nIconIndex); - - MultiByteToWideChar(CP_ACP, 0, lpszFile, -1, lpwstrFile, len); - ret = ExtractIconW(hInstance, lpwstrFile, nIconIndex); - HeapFree(GetProcessHeap(), 0, lpwstrFile); - - return ret; -} - -/************************************************************************* - * ExtractIconW [SHELL32.@] - */ -HICON WINAPI ExtractIconW(HINSTANCE hInstance, LPCWSTR lpszFile, UINT nIconIndex) -{ - HICON hIcon = NULL; - UINT ret; - UINT cx = GetSystemMetrics(SM_CXICON), cy = GetSystemMetrics(SM_CYICON); - - TRACE("%p %s %d\n", hInstance, debugstr_w(lpszFile), nIconIndex); - - if (nIconIndex == 0xFFFFFFFF) - { - ret = PrivateExtractIconsW(lpszFile, 0, cx, cy, NULL, NULL, 0, LR_DEFAULTCOLOR); - if (ret != 0xFFFFFFFF && ret) - return (HICON)(UINT_PTR)ret; - return NULL; - } - else - ret = PrivateExtractIconsW(lpszFile, nIconIndex, cx, cy, &hIcon, NULL, 1, LR_DEFAULTCOLOR); - - if (ret == 0xFFFFFFFF) - return (HICON)1; - else if (ret > 0 && hIcon) - return hIcon; - - return NULL; -} - -/************************************************************************* - * Printer_LoadIconsW [SHELL32.205] - */ -VOID WINAPI Printer_LoadIconsW(LPCWSTR wsPrinterName, HICON * pLargeIcon, HICON * pSmallIcon) -{ - INT iconindex=IDI_SHELL_PRINTERS_FOLDER; - - TRACE("(%s, %p, %p)\n", debugstr_w(wsPrinterName), pLargeIcon, pSmallIcon); - - /* We should check if wsPrinterName is - 1. the Default Printer or not - 2. connected or not - 3. a Local Printer or a Network-Printer - and use different Icons - */ - if((wsPrinterName != NULL) && (wsPrinterName[0] != 0)) - { - FIXME("(select Icon by PrinterName %s not implemented)\n", debugstr_w(wsPrinterName)); - } - - if(pLargeIcon != NULL) - *pLargeIcon = LoadImageW(shell32_hInstance, - (LPCWSTR) MAKEINTRESOURCE(iconindex), IMAGE_ICON, - 0, 0, LR_DEFAULTCOLOR|LR_DEFAULTSIZE); - - if(pSmallIcon != NULL) - *pSmallIcon = LoadImageW(shell32_hInstance, - (LPCWSTR) MAKEINTRESOURCE(iconindex), IMAGE_ICON, - 16, 16, LR_DEFAULTCOLOR); -} - -/************************************************************************* - * Printers_RegisterWindowW [SHELL32.213] - * used by "printui.dll": - * find the Window of the given Type for the specific Printer and - * return the already existent hwnd or open a new window - */ -BOOL WINAPI Printers_RegisterWindowW(LPCWSTR wsPrinter, DWORD dwType, - HANDLE * phClassPidl, HWND * phwnd) -{ - FIXME("(%s, %x, %p (%p), %p (%p)) stub!\n", debugstr_w(wsPrinter), dwType, - phClassPidl, (phClassPidl != NULL) ? *(phClassPidl) : NULL, - phwnd, (phwnd != NULL) ? *(phwnd) : NULL); - - return FALSE; -} - -/************************************************************************* - * Printers_UnregisterWindow [SHELL32.214] - */ -VOID WINAPI Printers_UnregisterWindow(HANDLE hClassPidl, HWND hwnd) -{ - FIXME("(%p, %p) stub!\n", hClassPidl, hwnd); -} - -/*************************************************************************/ - -typedef struct -{ - LPCWSTR szApp; - LPCWSTR szOtherStuff; - HICON hIcon; -} ABOUT_INFO; - -#define DROP_FIELD_TOP (-15) -#define DROP_FIELD_HEIGHT 15 - -/************************************************************************* - * SHAppBarMessage [SHELL32.@] - */ -UINT_PTR WINAPI SHAppBarMessage(DWORD msg, PAPPBARDATA data) -{ - int width=data->rc.right - data->rc.left; - int height=data->rc.bottom - data->rc.top; - RECT rec=data->rc; - - TRACE("msg=%d, data={cb=%d, hwnd=%p, callback=%x, edge=%d, rc=%s, lparam=%lx}\n", - msg, data->cbSize, data->hWnd, data->uCallbackMessage, data->uEdge, - wine_dbgstr_rect(&data->rc), data->lParam); - - switch (msg) - { - case ABM_GETSTATE: - return ABS_ALWAYSONTOP | ABS_AUTOHIDE; - case ABM_GETTASKBARPOS: - GetWindowRect(data->hWnd, &rec); - data->rc=rec; - return TRUE; - case ABM_ACTIVATE: - SetActiveWindow(data->hWnd); - return TRUE; - case ABM_GETAUTOHIDEBAR: - return 0; /* pretend there is no autohide bar */ - case ABM_NEW: - /* cbSize, hWnd, and uCallbackMessage are used. All other ignored */ - SetWindowPos(data->hWnd,HWND_TOP,0,0,0,0,SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE); - return TRUE; - case ABM_QUERYPOS: - GetWindowRect(data->hWnd, &(data->rc)); - return TRUE; - case ABM_REMOVE: - FIXME("ABM_REMOVE broken\n"); - /* FIXME: this is wrong; should it be DestroyWindow instead? */ - /*CloseHandle(data->hWnd);*/ - return TRUE; - case ABM_SETAUTOHIDEBAR: - SetWindowPos(data->hWnd,HWND_TOP,rec.left+1000,rec.top, - width,height,SWP_SHOWWINDOW); - return TRUE; - case ABM_SETPOS: - data->uEdge=(ABE_RIGHT | ABE_LEFT); - SetWindowPos(data->hWnd,HWND_TOP,data->rc.left,data->rc.top, - width,height,SWP_SHOWWINDOW); - return TRUE; - case ABM_WINDOWPOSCHANGED: - return TRUE; - } - return FALSE; -} - -/************************************************************************* - * SHHelpShortcuts_RunDLLA [SHELL32.@] - * - */ -DWORD WINAPI SHHelpShortcuts_RunDLLA(DWORD dwArg1, DWORD dwArg2, DWORD dwArg3, DWORD dwArg4) -{ - FIXME("(%x, %x, %x, %x) stub!\n", dwArg1, dwArg2, dwArg3, dwArg4); - return 0; -} - -/************************************************************************* - * SHHelpShortcuts_RunDLLA [SHELL32.@] - * - */ -DWORD WINAPI SHHelpShortcuts_RunDLLW(DWORD dwArg1, DWORD dwArg2, DWORD dwArg3, DWORD dwArg4) -{ - FIXME("(%x, %x, %x, %x) stub!\n", dwArg1, dwArg2, dwArg3, dwArg4); - return 0; -} - -/************************************************************************* - * SHLoadInProc [SHELL32.@] - * Create an instance of specified object class from within - * the shell process and release it immediately - */ -HRESULT WINAPI SHLoadInProc (REFCLSID rclsid) -{ - void *ptr = NULL; - - TRACE("%s\n", debugstr_guid(rclsid)); - - CoCreateInstance(rclsid, NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown,&ptr); - if(ptr) - { - IUnknown * pUnk = ptr; - IUnknown_Release(pUnk); - return NOERROR; - } - return DISP_E_MEMBERNOTFOUND; -} - -static VOID SetRegTextData(HWND hWnd, HKEY hKey, LPWSTR Value, UINT uID) -{ - DWORD dwBufferSize; - DWORD dwType; - LPWSTR lpBuffer; - - if( RegQueryValueExW(hKey, Value, NULL, &dwType, NULL, &dwBufferSize) == ERROR_SUCCESS ) - { - if(dwType == REG_SZ) - { - lpBuffer = HeapAlloc(GetProcessHeap(), 0, dwBufferSize); - - if(lpBuffer) - { - if( RegQueryValueExW(hKey, Value, NULL, &dwType, (LPBYTE)lpBuffer, &dwBufferSize) == ERROR_SUCCESS ) - { - SetDlgItemTextW(hWnd, uID, lpBuffer); - } - - HeapFree(GetProcessHeap(), 0, lpBuffer); - } - } - } -} - -INT_PTR CALLBACK AboutAuthorsDlgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) -{ - switch(msg) - { - case WM_INITDIALOG: - { - const char* const *pstr = SHELL_Authors; - - // Add the authors to the list - SendDlgItemMessageW( hWnd, IDC_SHELL_ABOUT_AUTHORS_LISTBOX, WM_SETREDRAW, FALSE, 0 ); - - while (*pstr) - { - WCHAR name[64]; - - /* authors list is in utf-8 format */ - MultiByteToWideChar( CP_UTF8, 0, *pstr, -1, name, sizeof(name)/sizeof(WCHAR) ); - SendDlgItemMessageW( hWnd, IDC_SHELL_ABOUT_AUTHORS_LISTBOX, LB_ADDSTRING, (WPARAM)-1, (LPARAM)name ); - pstr++; - } - - SendDlgItemMessageW( hWnd, IDC_SHELL_ABOUT_AUTHORS_LISTBOX, WM_SETREDRAW, TRUE, 0 ); - - return TRUE; - } - } - - return FALSE; -} -/************************************************************************* - * AboutDlgProc (internal) - */ -INT_PTR CALLBACK AboutDlgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) -{ - static DWORD cxLogoBmp; - static DWORD cyLogoBmp; - static HBITMAP hLogoBmp; - static HWND hWndAuthors; - - switch(msg) - { - case WM_INITDIALOG: - { - ABOUT_INFO *info = (ABOUT_INFO *)lParam; - - if (info) - { - const WCHAR szRegKey[] = L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"; - HKEY hRegKey; - MEMORYSTATUSEX MemStat; - WCHAR szAppTitle[512]; - WCHAR szAppTitleTemplate[512]; - WCHAR szAuthorsText[20]; - - // Preload the ROS bitmap - hLogoBmp = LoadImage(shell32_hInstance, MAKEINTRESOURCE(IDB_SHELL_ABOUT_LOGO_24BPP), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); - - if(hLogoBmp) - { - BITMAP bmpLogo; - - GetObject( hLogoBmp, sizeof(BITMAP), &bmpLogo ); - - cxLogoBmp = bmpLogo.bmWidth; - cyLogoBmp = bmpLogo.bmHeight; - } - - // Set App-specific stuff (icon, app name, szOtherStuff string) - SendDlgItemMessageW(hWnd, IDC_SHELL_ABOUT_ICON, STM_SETICON, (WPARAM)info->hIcon, 0); - - GetWindowTextW( hWnd, szAppTitleTemplate, sizeof(szAppTitleTemplate) / sizeof(WCHAR) ); - swprintf( szAppTitle, szAppTitleTemplate, info->szApp ); - SetWindowTextW( hWnd, szAppTitle ); - - SetDlgItemTextW( hWnd, IDC_SHELL_ABOUT_APPNAME, info->szApp ); - SetDlgItemTextW( hWnd, IDC_SHELL_ABOUT_OTHERSTUFF, info->szOtherStuff ); - - // Set the registered user and organization name - if(RegOpenKeyExW( HKEY_LOCAL_MACHINE, szRegKey, 0, KEY_QUERY_VALUE, &hRegKey ) == ERROR_SUCCESS) - { - SetRegTextData( hWnd, hRegKey, L"RegisteredOwner", IDC_SHELL_ABOUT_REG_USERNAME ); - SetRegTextData( hWnd, hRegKey, L"RegisteredOrganization", IDC_SHELL_ABOUT_REG_ORGNAME ); - - RegCloseKey( hRegKey ); - } - - // Set the value for the installed physical memory - MemStat.dwLength = sizeof(MemStat); - if( GlobalMemoryStatusEx(&MemStat) ) - { - WCHAR szBuf[12]; - - if (MemStat.ullTotalPhys > 1024 * 1024 * 1024) - { - double dTotalPhys; - WCHAR szDecimalSeparator[4]; - WCHAR szUnits[3]; - - // We're dealing with GBs or more - MemStat.ullTotalPhys /= 1024 * 1024; - - if (MemStat.ullTotalPhys > 1024 * 1024) - { - // We're dealing with TBs or more - MemStat.ullTotalPhys /= 1024; - - if (MemStat.ullTotalPhys > 1024 * 1024) - { - // We're dealing with PBs or more - MemStat.ullTotalPhys /= 1024; - - dTotalPhys = (double)MemStat.ullTotalPhys / 1024; - wcscpy( szUnits, L"PB" ); - } - else - { - dTotalPhys = (double)MemStat.ullTotalPhys / 1024; - wcscpy( szUnits, L"TB" ); - } - } - else - { - dTotalPhys = (double)MemStat.ullTotalPhys / 1024; - wcscpy( szUnits, L"GB" ); - } - - // We need the decimal point of the current locale to display the RAM size correctly - if( GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, szDecimalSeparator, sizeof(szDecimalSeparator) / sizeof(WCHAR)) > 0) - { - UCHAR uDecimals; - UINT uIntegral; - - uIntegral = (UINT)dTotalPhys; - uDecimals = (UCHAR)((UINT)(dTotalPhys * 100) - uIntegral * 100); - - // Display the RAM size with 2 decimals - swprintf(szBuf, L"%u%s%02u %s", uIntegral, szDecimalSeparator, uDecimals, szUnits); - } - } - else - { - // We're dealing with MBs, don't show any decimals - swprintf( szBuf, L"%u MB", (UINT)MemStat.ullTotalPhys / 1024 / 1024 ); - } - - SetDlgItemTextW( hWnd, IDC_SHELL_ABOUT_PHYSMEM, szBuf); - } - - // Add the Authors dialog - hWndAuthors = CreateDialogW( shell32_hInstance, MAKEINTRESOURCEW(IDD_SHELL_ABOUT_AUTHORS), hWnd, AboutAuthorsDlgProc ); - LoadStringW( shell32_hInstance, IDS_SHELL_ABOUT_AUTHORS, szAuthorsText, sizeof(szAuthorsText) / sizeof(WCHAR) ); - SetDlgItemTextW( hWnd, IDC_SHELL_ABOUT_AUTHORS, szAuthorsText ); - } - - return TRUE; - } - - case WM_PAINT: - { - if(hLogoBmp) - { - PAINTSTRUCT ps; - HDC hdc; - HDC hdcMem; - - hdc = BeginPaint(hWnd, &ps); - hdcMem = CreateCompatibleDC(hdc); - - if(hdcMem) - { - SelectObject(hdcMem, hLogoBmp); - BitBlt(hdc, 0, 0, cxLogoBmp, cyLogoBmp, hdcMem, 0, 0, SRCCOPY); - - DeleteDC(hdcMem); - } - - EndPaint(hWnd, &ps); - } - - break; - } - - case WM_COMMAND: - switch(wParam) - { - case IDOK: - case IDCANCEL: - EndDialog(hWnd, TRUE); - return TRUE; - - case IDC_SHELL_ABOUT_AUTHORS: - { - static BOOL bShowingAuthors = FALSE; - WCHAR szAuthorsText[20]; - - if(bShowingAuthors) - { - LoadStringW( shell32_hInstance, IDS_SHELL_ABOUT_AUTHORS, szAuthorsText, sizeof(szAuthorsText) / sizeof(WCHAR) ); - ShowWindow( hWndAuthors, SW_HIDE ); - } - else - { - LoadStringW( shell32_hInstance, IDS_SHELL_ABOUT_BACK, szAuthorsText, sizeof(szAuthorsText) / sizeof(WCHAR) ); - ShowWindow( hWndAuthors, SW_SHOW ); - } - - SetDlgItemTextW( hWnd, IDC_SHELL_ABOUT_AUTHORS, szAuthorsText ); - bShowingAuthors = !bShowingAuthors; - return TRUE; - } - } - break; - - case WM_CLOSE: - EndDialog(hWnd, TRUE); - break; - } - - return FALSE; -} - - -/************************************************************************* - * ShellAboutA [SHELL32.288] - */ -BOOL WINAPI ShellAboutA( HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, HICON hIcon ) -{ - BOOL ret; - LPWSTR appW = NULL, otherW = NULL; - int len; - - if (szApp) - { - len = MultiByteToWideChar(CP_ACP, 0, szApp, -1, NULL, 0); - appW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, szApp, -1, appW, len); - } - if (szOtherStuff) - { - len = MultiByteToWideChar(CP_ACP, 0, szOtherStuff, -1, NULL, 0); - otherW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, szOtherStuff, -1, otherW, len); - } - - ret = ShellAboutW(hWnd, appW, otherW, hIcon); - - HeapFree(GetProcessHeap(), 0, otherW); - HeapFree(GetProcessHeap(), 0, appW); - return ret; -} - - -/************************************************************************* - * ShellAboutW [SHELL32.289] - */ -BOOL WINAPI ShellAboutW( HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, - HICON hIcon ) -{ - ABOUT_INFO info; - HRSRC hRes; - LPVOID DlgTemplate; - BOOL bRet; - - TRACE("\n"); - - // DialogBoxIndirectParamW will be called with the hInstance of the calling application, so we have to preload the dialog template - if(!(hRes = FindResourceW(shell32_hInstance, MAKEINTRESOURCEW(IDD_SHELL_ABOUT), (LPWSTR)RT_DIALOG))) - return FALSE; - if(!(DlgTemplate = (LPVOID)LoadResource(shell32_hInstance, hRes))) - return FALSE; - - info.szApp = szApp; - info.szOtherStuff = szOtherStuff; - info.hIcon = hIcon ? hIcon : LoadIconW( 0, (LPWSTR)IDI_WINLOGO ); - - bRet = DialogBoxIndirectParamW((HINSTANCE)GetWindowLongPtrW( hWnd, GWLP_HINSTANCE ), - DlgTemplate, hWnd, AboutDlgProc, (LPARAM)&info ); - return bRet; -} - -/************************************************************************* - * FreeIconList (SHELL32.@) - */ -void WINAPI FreeIconList( DWORD dw ) -{ - FIXME("%x: stub\n",dw); -} - -/************************************************************************* - * SHLoadNonloadedIconOverlayIdentifiers (SHELL32.@) - */ -HRESULT WINAPI SHLoadNonloadedIconOverlayIdentifiers( VOID ) -{ - FIXME("stub\n"); - return S_OK; -} - -/*********************************************************************** - * DllGetVersion [SHELL32.@] - * - * Retrieves version information of the 'SHELL32.DLL' - * - * PARAMS - * pdvi [O] pointer to version information structure. - * - * RETURNS - * Success: S_OK - * Failure: E_INVALIDARG - * - * NOTES - * Returns version of a shell32.dll from IE4.01 SP1. - */ - -HRESULT WINAPI DllGetVersion (DLLVERSIONINFO *pdvi) -{ - /* FIXME: shouldn't these values come from the version resource? */ - if (pdvi->cbSize == sizeof(DLLVERSIONINFO) || - pdvi->cbSize == sizeof(DLLVERSIONINFO2)) - { - pdvi->dwMajorVersion = WINE_FILEVERSION_MAJOR; - pdvi->dwMinorVersion = WINE_FILEVERSION_MINOR; - pdvi->dwBuildNumber = WINE_FILEVERSION_BUILD; - pdvi->dwPlatformID = WINE_FILEVERSION_PLATFORMID; - if (pdvi->cbSize == sizeof(DLLVERSIONINFO2)) - { - DLLVERSIONINFO2 *pdvi2 = (DLLVERSIONINFO2 *)pdvi; - - pdvi2->dwFlags = 0; - pdvi2->ullVersion = MAKEDLLVERULL(WINE_FILEVERSION_MAJOR, - WINE_FILEVERSION_MINOR, - WINE_FILEVERSION_BUILD, - WINE_FILEVERSION_PLATFORMID); - } - TRACE("%u.%u.%u.%u\n", - pdvi->dwMajorVersion, pdvi->dwMinorVersion, - pdvi->dwBuildNumber, pdvi->dwPlatformID); - return S_OK; - } - else - { - WARN("wrong DLLVERSIONINFO size from app\n"); - return E_INVALIDARG; - } -} - -/************************************************************************* - * global variables of the shell32.dll - * all are once per process - * - */ -HINSTANCE shell32_hInstance = 0; -HIMAGELIST ShellSmallIconList = 0; -HIMAGELIST ShellBigIconList = 0; - - -/************************************************************************* - * SHELL32 DllMain - * - * NOTES - * calling oleinitialize here breaks sone apps. - */ -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad) -{ - TRACE("%p 0x%x %p\n", hinstDLL, fdwReason, fImpLoad); - - switch (fdwReason) - { - case DLL_PROCESS_ATTACH: - shell32_hInstance = hinstDLL; - DisableThreadLibraryCalls(shell32_hInstance); - - /* get full path to this DLL for IExtractIconW_fnGetIconLocation() */ - GetModuleFileNameW(hinstDLL, swShell32Name, MAX_PATH); - swShell32Name[MAX_PATH - 1] = '\0'; - - InitCommonControlsEx(NULL); - - SIC_Initialize(); - InitChangeNotifications(); - InitIconOverlays(); - break; - - case DLL_PROCESS_DETACH: - shell32_hInstance = 0; - SIC_Destroy(); - FreeChangeNotifications(); - break; - } - return TRUE; -} - -/************************************************************************* - * DllInstall [SHELL32.@] - * - * PARAMETERS - * - * BOOL bInstall - TRUE for install, FALSE for uninstall - * LPCWSTR pszCmdLine - command line (unused by shell32?) - */ - -HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline) -{ - FIXME("%s %s: stub\n", bInstall ? "TRUE":"FALSE", debugstr_w(cmdline)); - return S_OK; /* indicate success */ -} - -/*********************************************************************** - * DllCanUnloadNow (SHELL32.@) - */ -HRESULT WINAPI DllCanUnloadNow(void) -{ - TRACE("stub\n"); - return S_FALSE; -} diff --git a/reactos/dll/win32/shell32/shellitem.c b/reactos/dll/win32/shell32/shellitem.c deleted file mode 100644 index 620f854efed..00000000000 --- a/reactos/dll/win32/shell32/shellitem.c +++ /dev/null @@ -1,382 +0,0 @@ -/* - * IShellItem implementation - * - * Copyright 2008 Vincent Povirk for CodeWeavers - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "precomp.h" - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -typedef struct _ShellItem { - const IShellItemVtbl *lpIShellItemVtbl; - LONG ref; - LPITEMIDLIST pidl; - const IPersistIDListVtbl *lpIPersistIDListVtbl; -} ShellItem; - -HRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST pidlParent, - IShellFolder *psfParent, LPCITEMIDLIST pidl, IShellItem **ppsi); - - -static inline ShellItem *impl_from_IPersistIDList( IPersistIDList *iface ) -{ - return (ShellItem*)((char*)iface - FIELD_OFFSET(ShellItem, lpIPersistIDListVtbl)); -} - - -static HRESULT WINAPI ShellItem_QueryInterface(IShellItem *iface, REFIID riid, - void **ppv) -{ - ShellItem *This = (ShellItem*)iface; - - TRACE("(%p,%p,%p)\n", iface, riid, ppv); - - if (!ppv) return E_INVALIDARG; - - if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IShellItem, riid)) - { - *ppv = This; - } - else if (IsEqualIID(&IID_IPersist, riid) || IsEqualIID(&IID_IPersistIDList, riid)) - { - *ppv = (IPersistIDListVtbl *)&(This->lpIPersistIDListVtbl); - } - else { - FIXME("not implemented for %s\n", shdebugstr_guid(riid)); - *ppv = NULL; - return E_NOINTERFACE; - } - - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; -} - -static ULONG WINAPI ShellItem_AddRef(IShellItem *iface) -{ - ShellItem *This = (ShellItem*)iface; - ULONG ref = InterlockedIncrement(&This->ref); - - TRACE("(%p), new refcount=%i\n", iface, ref); - - return ref; -} - -static ULONG WINAPI ShellItem_Release(IShellItem *iface) -{ - ShellItem *This = (ShellItem*)iface; - ULONG ref = InterlockedDecrement(&This->ref); - - TRACE("(%p), new refcount=%i\n", iface, ref); - - if (ref == 0) - { - ILFree(This->pidl); - HeapFree(GetProcessHeap(), 0, This); - } - - return ref; -} - -static HRESULT ShellItem_get_parent_pidl(ShellItem *This, LPITEMIDLIST *parent_pidl) -{ - *parent_pidl = ILClone(This->pidl); - if (*parent_pidl) - { - if (ILRemoveLastID(*parent_pidl)) - return S_OK; - else - { - ILFree(*parent_pidl); - *parent_pidl = NULL; - return E_INVALIDARG; - } - } - else - { - *parent_pidl = NULL; - return E_OUTOFMEMORY; - } -} - -static HRESULT ShellItem_get_parent_shellfolder(ShellItem *This, IShellFolder **ppsf) -{ - LPITEMIDLIST parent_pidl; - IShellFolder *desktop; - HRESULT ret; - - ret = ShellItem_get_parent_pidl(This, &parent_pidl); - if (SUCCEEDED(ret)) - { - ret = SHGetDesktopFolder(&desktop); - if (SUCCEEDED(ret)) - { - ret = IShellFolder_BindToObject(desktop, parent_pidl, NULL, &IID_IShellFolder, (void**)ppsf); - IShellFolder_Release(desktop); - } - ILFree(parent_pidl); - } - - return ret; -} - -static HRESULT WINAPI ShellItem_BindToHandler(IShellItem *iface, IBindCtx *pbc, - REFGUID rbhid, REFIID riid, void **ppvOut) -{ - FIXME("(%p,%p,%s,%p,%p)\n", iface, pbc, shdebugstr_guid(rbhid), riid, ppvOut); - - *ppvOut = NULL; - - return E_NOTIMPL; -} - -static HRESULT WINAPI ShellItem_GetParent(IShellItem *iface, IShellItem **ppsi) -{ - ShellItem *This = (ShellItem*)iface; - LPITEMIDLIST parent_pidl; - HRESULT ret; - - TRACE("(%p,%p)\n", iface, ppsi); - - ret = ShellItem_get_parent_pidl(This, &parent_pidl); - if (SUCCEEDED(ret)) - { - ret = SHCreateShellItem(NULL, NULL, parent_pidl, ppsi); - ILFree(parent_pidl); - } - - return ret; -} - -static HRESULT WINAPI ShellItem_GetDisplayName(IShellItem *iface, SIGDN sigdnName, - LPWSTR *ppszName) -{ - FIXME("(%p,%x,%p)\n", iface, sigdnName, ppszName); - - *ppszName = NULL; - - return E_NOTIMPL; -} - -static HRESULT WINAPI ShellItem_GetAttributes(IShellItem *iface, SFGAOF sfgaoMask, - SFGAOF *psfgaoAttribs) -{ - ShellItem *This = (ShellItem*)iface; - IShellFolder *parent_folder; - LPITEMIDLIST child_pidl; - HRESULT ret; - - TRACE("(%p,%x,%p)\n", iface, sfgaoMask, psfgaoAttribs); - - ret = ShellItem_get_parent_shellfolder(This, &parent_folder); - if (SUCCEEDED(ret)) - { - child_pidl = ILFindLastID(This->pidl); - *psfgaoAttribs = sfgaoMask; - ret = IShellFolder_GetAttributesOf(parent_folder, 1, (LPCITEMIDLIST*)&child_pidl, psfgaoAttribs); - IShellFolder_Release(parent_folder); - } - - return ret; -} - -static HRESULT WINAPI ShellItem_Compare(IShellItem *iface, IShellItem *oth, - SICHINTF hint, int *piOrder) -{ - FIXME("(%p,%p,%x,%p)\n", iface, oth, hint, piOrder); - - return E_NOTIMPL; -} - -static const IShellItemVtbl ShellItem_Vtbl = { - ShellItem_QueryInterface, - ShellItem_AddRef, - ShellItem_Release, - ShellItem_BindToHandler, - ShellItem_GetParent, - ShellItem_GetDisplayName, - ShellItem_GetAttributes, - ShellItem_Compare -}; - - -static HRESULT ShellItem_GetClassID(ShellItem* This, CLSID *pClassID) -{ - TRACE("(%p,%p)\n", This, pClassID); - - *pClassID = CLSID_ShellItem; - return S_OK; -} - - -static HRESULT WINAPI ShellItem_IPersistIDList_QueryInterface(IPersistIDList *iface, - REFIID riid, void **ppv) -{ - ShellItem *This = impl_from_IPersistIDList(iface); - return ShellItem_QueryInterface((IShellItem*)This, riid, ppv); -} - -static ULONG WINAPI ShellItem_IPersistIDList_AddRef(IPersistIDList *iface) -{ - ShellItem *This = impl_from_IPersistIDList(iface); - return ShellItem_AddRef((IShellItem*)This); -} - -static ULONG WINAPI ShellItem_IPersistIDList_Release(IPersistIDList *iface) -{ - ShellItem *This = impl_from_IPersistIDList(iface); - return ShellItem_Release((IShellItem*)This); -} - -static HRESULT WINAPI ShellItem_IPersistIDList_GetClassID(IPersistIDList* iface, - CLSID *pClassID) -{ - ShellItem *This = impl_from_IPersistIDList(iface); - - return ShellItem_GetClassID(This, pClassID); -} - -static HRESULT WINAPI ShellItem_IPersistIDList_SetIDList(IPersistIDList* iface, - LPCITEMIDLIST pidl) -{ - ShellItem *This = impl_from_IPersistIDList(iface); - LPITEMIDLIST new_pidl; - - TRACE("(%p,%p)\n", This, pidl); - - new_pidl = ILClone(pidl); - - if (new_pidl) - { - ILFree(This->pidl); - This->pidl = new_pidl; - return S_OK; - } - else - return E_OUTOFMEMORY; -} - -static HRESULT WINAPI ShellItem_IPersistIDList_GetIDList(IPersistIDList* iface, - LPITEMIDLIST *ppidl) -{ - ShellItem *This = impl_from_IPersistIDList(iface); - - TRACE("(%p,%p)\n", This, ppidl); - - *ppidl = ILClone(This->pidl); - if (*ppidl) - return S_OK; - else - return E_OUTOFMEMORY; -} - -static const IPersistIDListVtbl ShellItem_IPersistIDList_Vtbl = { - ShellItem_IPersistIDList_QueryInterface, - ShellItem_IPersistIDList_AddRef, - ShellItem_IPersistIDList_Release, - ShellItem_IPersistIDList_GetClassID, - ShellItem_IPersistIDList_SetIDList, - ShellItem_IPersistIDList_GetIDList -}; - - -HRESULT WINAPI IShellItem_Constructor(IUnknown *pUnkOuter, REFIID riid, void **ppv) -{ - ShellItem *This; - HRESULT ret; - - TRACE("(%p,%s)\n",pUnkOuter, debugstr_guid(riid)); - - *ppv = NULL; - - if (pUnkOuter) return CLASS_E_NOAGGREGATION; - - This = HeapAlloc(GetProcessHeap(), 0, sizeof(ShellItem)); - This->lpIShellItemVtbl = &ShellItem_Vtbl; - This->ref = 1; - This->pidl = NULL; - This->lpIPersistIDListVtbl = &ShellItem_IPersistIDList_Vtbl; - - ret = ShellItem_QueryInterface((IShellItem*)This, riid, ppv); - ShellItem_Release((IShellItem*)This); - - return ret; -} - -HRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST pidlParent, - IShellFolder *psfParent, LPCITEMIDLIST pidl, IShellItem **ppsi) -{ - ShellItem *This; - LPITEMIDLIST new_pidl; - HRESULT ret; - - TRACE("(%p,%p,%p,%p)\n", pidlParent, psfParent, pidl, ppsi); - - if (!pidl) - { - return E_INVALIDARG; - } - else if (pidlParent || psfParent) - { - LPITEMIDLIST temp_parent=NULL; - if (!pidlParent) - { - IPersistFolder2* ppf2Parent; - - if (FAILED(IPersistFolder2_QueryInterface(psfParent, &IID_IPersistFolder2, (void**)&ppf2Parent))) - { - FIXME("couldn't get IPersistFolder2 interface of parent\n"); - return E_NOINTERFACE; - } - - if (FAILED(IPersistFolder2_GetCurFolder(ppf2Parent, &temp_parent))) - { - FIXME("couldn't get parent PIDL\n"); - IPersistFolder2_Release(ppf2Parent); - return E_NOINTERFACE; - } - - pidlParent = temp_parent; - IPersistFolder2_Release(ppf2Parent); - } - - new_pidl = ILCombine(pidlParent, pidl); - ILFree(temp_parent); - - if (!new_pidl) - return E_OUTOFMEMORY; - } - else - { - new_pidl = ILClone(pidl); - if (!new_pidl) - return E_OUTOFMEMORY; - } - - ret = IShellItem_Constructor(NULL, &IID_IShellItem, (void**)&This); - if (This) - { - *ppsi = (IShellItem*)This; - This->pidl = new_pidl; - } - else - { - *ppsi = NULL; - ILFree(new_pidl); - } - return ret; -} diff --git a/reactos/dll/win32/shell32/shelllink.c b/reactos/dll/win32/shell32/shelllink.c deleted file mode 100644 index 78c25c45ffc..00000000000 --- a/reactos/dll/win32/shell32/shelllink.c +++ /dev/null @@ -1,2989 +0,0 @@ -/* - * - * Copyright 1997 Marcus Meissner - * Copyright 1998 Juergen Schmied - * Copyright 2005 Mike McCormack - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * NOTES - * Nearly complete information about the binary formats - * of .lnk files available at http://www.wotsit.org - * - * You can use winedump to examine the contents of a link file: - * winedump lnk sc.lnk - * - * MSI advertised shortcuts are totally undocumented. They provide an - * icon for a program that is not yet installed, and invoke MSI to - * install the program when the shortcut is clicked on. They are - * created by passing a special string to SetPath, and the information - * in that string is parsed an stored. - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -/* link file formats */ - -#include "pshpack1.h" - -typedef struct _LINK_HEADER -{ - DWORD dwSize; /* 0x00 size of the header - 0x4c */ - GUID MagicGuid; /* 0x04 is CLSID_ShellLink */ - DWORD dwFlags; /* 0x14 describes elements following */ - DWORD dwFileAttr; /* 0x18 attributes of the target file */ - FILETIME Time1; /* 0x1c */ - FILETIME Time2; /* 0x24 */ - FILETIME Time3; /* 0x2c */ - DWORD dwFileLength; /* 0x34 File length */ - DWORD nIcon; /* 0x38 icon number */ - DWORD fStartup; /* 0x3c startup type */ - DWORD wHotKey; /* 0x40 hotkey */ - DWORD Unknown5; /* 0x44 */ - DWORD Unknown6; /* 0x48 */ -} LINK_HEADER, * PLINK_HEADER; - -#define SHLINK_LOCAL 0 -#define SHLINK_REMOTE 1 -#define MAX_PROPERTY_SHEET_PAGE 32 - -typedef struct _LOCATION_INFO -{ - DWORD dwTotalSize; - DWORD dwHeaderSize; - DWORD dwFlags; - DWORD dwVolTableOfs; - DWORD dwLocalPathOfs; - DWORD dwNetworkVolTableOfs; - DWORD dwFinalPathOfs; -} LOCATION_INFO; - -typedef struct _LOCAL_VOLUME_INFO -{ - DWORD dwSize; - DWORD dwType; - DWORD dwVolSerial; - DWORD dwVolLabelOfs; -} LOCAL_VOLUME_INFO; - -typedef struct volume_info_t -{ - DWORD type; - DWORD serial; - WCHAR label[12]; /* assume 8.3 */ -} volume_info; - -#include "poppack.h" - -static const IShellLinkAVtbl slvt; -static const IShellLinkWVtbl slvtw; -static const IPersistFileVtbl pfvt; -static const IPersistStreamVtbl psvt; -static const IShellLinkDataListVtbl dlvt; -static const IShellExtInitVtbl eivt; -static const IContextMenuVtbl cmvt; -static const IObjectWithSiteVtbl owsvt; -static const IShellPropSheetExtVtbl pse; - -/* IShellLink Implementation */ - -typedef struct -{ - const IShellLinkAVtbl *lpVtbl; - const IShellLinkWVtbl *lpvtblw; - const IPersistFileVtbl *lpvtblPersistFile; - const IPersistStreamVtbl *lpvtblPersistStream; - const IShellLinkDataListVtbl *lpvtblShellLinkDataList; - const IShellExtInitVtbl *lpvtblShellExtInit; - const IContextMenuVtbl *lpvtblContextMenu; - const IObjectWithSiteVtbl *lpvtblObjectWithSite; - const IShellPropSheetExtVtbl * lpvtblPropSheetExt; - - LONG ref; - - /* data structures according to the information in the link */ - LPITEMIDLIST pPidl; - WORD wHotKey; - SYSTEMTIME time1; - SYSTEMTIME time2; - SYSTEMTIME time3; - - DWORD iShowCmd; - LPWSTR sIcoPath; - INT iIcoNdx; - LPWSTR sPath; - LPWSTR sArgs; - LPWSTR sWorkDir; - LPWSTR sDescription; - LPWSTR sPathRel; - LPWSTR sProduct; - LPWSTR sComponent; - volume_info volume; - LPWSTR sLinkPath; - LPWSTR sCurFile; - BOOL bRunAs; - BOOL bDirty; - INT iIdOpen; /* id of the "Open" entry in the context menu */ - IUnknown *site; -} IShellLinkImpl, *LPIShellLinkImpl; - -static LPIShellLinkImpl __inline impl_from_IShellLinkW( IShellLinkW *iface ) -{ - return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblw)); -} - -static LPIShellLinkImpl __inline impl_from_IPersistFile( IPersistFile *iface ) -{ - return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblPersistFile)); -} - -static LPIShellLinkImpl __inline impl_from_IPersistStream( IPersistStream *iface ) -{ - return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblPersistStream)); -} - -static LPIShellLinkImpl __inline impl_from_IShellLinkDataList( IShellLinkDataList *iface ) -{ - return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblShellLinkDataList)); -} - -static LPIShellLinkImpl __inline impl_from_IShellExtInit( IShellExtInit *iface ) -{ - return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblShellExtInit)); -} - -static LPIShellLinkImpl __inline impl_from_IContextMenu( IContextMenu *iface ) -{ - return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblContextMenu)); -} - -static LPIShellLinkImpl __inline impl_from_IObjectWithSite( IObjectWithSite *iface ) -{ - return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblObjectWithSite)); -} - -static LPIShellLinkImpl __inline impl_from_IShellPropSheetExt( IShellPropSheetExt *iface ) -{ - return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblPropSheetExt)); -} - - -static HRESULT ShellLink_UpdatePath(LPCWSTR sPathRel, LPCWSTR path, LPCWSTR sWorkDir, LPWSTR* psPath); - -/* strdup on the process heap */ -static LPWSTR __inline HEAP_strdupAtoW( HANDLE heap, DWORD flags, LPCSTR str) -{ - INT len; - LPWSTR p; - - assert(str); - - len = MultiByteToWideChar( CP_ACP, 0, str, -1, NULL, 0 ); - p = HeapAlloc( heap, flags, len*sizeof (WCHAR) ); - if( !p ) - return p; - MultiByteToWideChar( CP_ACP, 0, str, -1, p, len ); - return p; -} - -static LPWSTR __inline strdupW( LPCWSTR src ) -{ - LPWSTR dest; - if (!src) return NULL; - dest = HeapAlloc( GetProcessHeap(), 0, (wcslen(src)+1)*sizeof(WCHAR) ); - if (dest) - wcscpy(dest, src); - return dest; -} - -/************************************************************************** - * ShellLink::QueryInterface implementation - */ -static HRESULT ShellLink_QueryInterface( IShellLinkImpl *This, REFIID riid, LPVOID *ppvObj) -{ - TRACE("(%p)->(\n\tIID:\t%s)\n",This,debugstr_guid(riid)); - - *ppvObj = NULL; - - if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IShellLinkA)) - { - *ppvObj = This; - } - else if(IsEqualIID(riid, &IID_IShellLinkW)) - { - *ppvObj = &(This->lpvtblw); - } - else if(IsEqualIID(riid, &IID_IPersistFile)) - { - *ppvObj = &(This->lpvtblPersistFile); - } - else if(IsEqualIID(riid, &IID_IPersistStream)) - { - *ppvObj = &(This->lpvtblPersistStream); - } - else if(IsEqualIID(riid, &IID_IShellLinkDataList)) - { - *ppvObj = &(This->lpvtblShellLinkDataList); - } - else if(IsEqualIID(riid, &IID_IShellExtInit)) - { - *ppvObj = &(This->lpvtblShellExtInit); - } - else if(IsEqualIID(riid, &IID_IContextMenu)) - { - *ppvObj = &(This->lpvtblContextMenu); - } - else if(IsEqualIID(riid, &IID_IObjectWithSite)) - { - *ppvObj = &(This->lpvtblObjectWithSite); - } - else if(IsEqualIID(riid, &IID_IShellPropSheetExt)) - { - *ppvObj = &(This->lpvtblPropSheetExt); - } - - if(*ppvObj) - { - IUnknown_AddRef((IUnknown*)(*ppvObj)); - TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj); - return S_OK; - } - ERR("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -/************************************************************************** - * ShellLink::AddRef implementation - */ -static ULONG ShellLink_AddRef( IShellLinkImpl *This ) -{ - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -/************************************************************************** - * ShellLink::Release implementation - */ -static ULONG ShellLink_Release( IShellLinkImpl *This ) -{ - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount + 1); - - if (refCount) - return refCount; - - TRACE("-- destroying IShellLink(%p)\n",This); - - HeapFree(GetProcessHeap(), 0, This->sIcoPath); - HeapFree(GetProcessHeap(), 0, This->sArgs); - HeapFree(GetProcessHeap(), 0, This->sWorkDir); - HeapFree(GetProcessHeap(), 0, This->sDescription); - HeapFree(GetProcessHeap(),0,This->sPath); - HeapFree(GetProcessHeap(),0,This->sLinkPath); - - if (This->site) - IUnknown_Release( This->site ); - - if (This->pPidl) - ILFree(This->pPidl); - - LocalFree(This); - - return 0; -} - -static HRESULT ShellLink_GetClassID( IShellLinkImpl *This, CLSID *pclsid ) -{ - TRACE("%p %p\n", This, pclsid); - - *pclsid = CLSID_ShellLink; - return S_OK; -} - -/************************************************************************** - * IPersistFile_QueryInterface - */ -static HRESULT WINAPI IPersistFile_fnQueryInterface( - IPersistFile* iface, - REFIID riid, - LPVOID *ppvObj) -{ - IShellLinkImpl *This = impl_from_IPersistFile(iface); - return ShellLink_QueryInterface( This, riid, ppvObj ); -} - -/****************************************************************************** - * IPersistFile_AddRef - */ -static ULONG WINAPI IPersistFile_fnAddRef(IPersistFile* iface) -{ - IShellLinkImpl *This = impl_from_IPersistFile(iface); - return ShellLink_AddRef( This ); -} - -/****************************************************************************** - * IPersistFile_Release - */ -static ULONG WINAPI IPersistFile_fnRelease(IPersistFile* iface) -{ - IShellLinkImpl *This = impl_from_IPersistFile(iface); - return IShellLinkA_Release((IShellLinkA*)This); -} - -static HRESULT WINAPI IPersistFile_fnGetClassID(IPersistFile* iface, CLSID *pClassID) -{ - IShellLinkImpl *This = impl_from_IPersistFile(iface); - return ShellLink_GetClassID( This, pClassID ); -} - -static HRESULT WINAPI IPersistFile_fnIsDirty(IPersistFile* iface) -{ - IShellLinkImpl *This = impl_from_IPersistFile(iface); - - TRACE("(%p)\n",This); - - if (This->bDirty) - return S_OK; - - return S_FALSE; -} - -static HRESULT WINAPI IPersistFile_fnLoad(IPersistFile* iface, LPCOLESTR pszFileName, DWORD dwMode) -{ - IShellLinkImpl *This = impl_from_IPersistFile(iface); - IPersistStream *StreamThis = (IPersistStream *)&This->lpvtblPersistStream; - HRESULT r; - IStream *stm; - - TRACE("(%p, %s, %x)\n",This, debugstr_w(pszFileName), dwMode); - - if( dwMode == 0 ) - dwMode = STGM_READ | STGM_SHARE_DENY_WRITE; - r = SHCreateStreamOnFileW(pszFileName, dwMode, &stm); - if( SUCCEEDED( r ) ) - { - HeapFree(GetProcessHeap(), 0, This->sLinkPath); - This->sLinkPath = strdupW(pszFileName); - r = IPersistStream_Load(StreamThis, stm); - ShellLink_UpdatePath(This->sPathRel, pszFileName, This->sWorkDir, &This->sPath); - IStream_Release( stm ); - This->bDirty = FALSE; - } - TRACE("-- returning hr %08x\n", r); - return r; -} - -static BOOL StartLinkProcessor( LPCOLESTR szLink ) -{ - static const WCHAR szFormat[] = { - 'w','i','n','e','m','e','n','u','b','u','i','l','d','e','r','.','e','x','e', - ' ','-','w',' ','"','%','s','"',0 }; - LONG len; - LPWSTR buffer; - STARTUPINFOW si; - PROCESS_INFORMATION pi; - BOOL ret; - - len = sizeof(szFormat) + wcslen( szLink ) * sizeof(WCHAR); - buffer = HeapAlloc( GetProcessHeap(), 0, len ); - if( !buffer ) - return FALSE; - - swprintf( buffer, szFormat, szLink ); - - TRACE("starting %s\n",debugstr_w(buffer)); - - memset(&si, 0, sizeof(si)); - si.cb = sizeof(si); - - ret = CreateProcessW( NULL, buffer, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ); - - HeapFree( GetProcessHeap(), 0, buffer ); - - if (ret) - { - CloseHandle( pi.hProcess ); - CloseHandle( pi.hThread ); - } - - return ret; -} - -static HRESULT WINAPI IPersistFile_fnSave(IPersistFile* iface, LPCOLESTR pszFileName, BOOL fRemember) -{ - IShellLinkImpl *This = impl_from_IPersistFile(iface); - IPersistStream *StreamThis = (IPersistStream *)&This->lpvtblPersistStream; - HRESULT r; - IStream *stm; - - TRACE("(%p)->(%s)\n",This,debugstr_w(pszFileName)); - - if (!pszFileName) - return E_FAIL; - - r = SHCreateStreamOnFileW( pszFileName, STGM_READWRITE | STGM_CREATE | STGM_SHARE_EXCLUSIVE, &stm ); - if( SUCCEEDED( r ) ) - { - r = IPersistStream_Save(StreamThis, stm, FALSE); - IStream_Release( stm ); - - if( SUCCEEDED( r ) ) - { - if ( This->sLinkPath ) - { - HeapFree(GetProcessHeap(), 0, This->sLinkPath); - } - This->sLinkPath = HeapAlloc(GetProcessHeap(), 0, (wcslen(pszFileName)+1) * sizeof(WCHAR)); - if ( This->sLinkPath ) - { - wcscpy(This->sLinkPath, pszFileName); - } - - StartLinkProcessor( pszFileName ); - - This->bDirty = FALSE; - } - else - { - DeleteFileW( pszFileName ); - WARN("Failed to create shortcut %s\n", debugstr_w(pszFileName) ); - } - } - - return r; -} - -static HRESULT WINAPI IPersistFile_fnSaveCompleted(IPersistFile* iface, LPCOLESTR pszFileName) -{ - IShellLinkImpl *This = impl_from_IPersistFile(iface); - FIXME("(%p)->(%s)\n",This,debugstr_w(pszFileName)); - return NOERROR; -} - -static HRESULT WINAPI IPersistFile_fnGetCurFile(IPersistFile* iface, LPOLESTR *ppszFileName) -{ - IShellLinkImpl *This = impl_from_IPersistFile(iface); - - *ppszFileName = NULL; - - if ( !This->sLinkPath) - { - /* IPersistFile::GetCurFile called before IPersistFile::Save */ - return S_FALSE; - } - - *ppszFileName = CoTaskMemAlloc((wcslen(This->sLinkPath)+1) * sizeof(WCHAR)); - if (!*ppszFileName) - { - /* out of memory */ - return E_OUTOFMEMORY; - } - - /* copy last saved filename */ - wcscpy(*ppszFileName, This->sLinkPath); - - return NOERROR; -} - -static const IPersistFileVtbl pfvt = -{ - IPersistFile_fnQueryInterface, - IPersistFile_fnAddRef, - IPersistFile_fnRelease, - IPersistFile_fnGetClassID, - IPersistFile_fnIsDirty, - IPersistFile_fnLoad, - IPersistFile_fnSave, - IPersistFile_fnSaveCompleted, - IPersistFile_fnGetCurFile -}; - -/************************************************************************ - * IPersistStream_QueryInterface - */ -static HRESULT WINAPI IPersistStream_fnQueryInterface( - IPersistStream* iface, - REFIID riid, - VOID** ppvObj) -{ - IShellLinkImpl *This = impl_from_IPersistStream(iface); - return ShellLink_QueryInterface( This, riid, ppvObj ); -} - -/************************************************************************ - * IPersistStream_Release - */ -static ULONG WINAPI IPersistStream_fnRelease( - IPersistStream* iface) -{ - IShellLinkImpl *This = impl_from_IPersistStream(iface); - return IShellLinkA_Release((IShellLinkA*)This); -} - -/************************************************************************ - * IPersistStream_AddRef - */ -static ULONG WINAPI IPersistStream_fnAddRef( - IPersistStream* iface) -{ - IShellLinkImpl *This = impl_from_IPersistStream(iface); - return ShellLink_AddRef( This ); -} - -/************************************************************************ - * IPersistStream_GetClassID - * - */ -static HRESULT WINAPI IPersistStream_fnGetClassID( - IPersistStream* iface, - CLSID* pClassID) -{ - IShellLinkImpl *This = impl_from_IPersistStream(iface); - return ShellLink_GetClassID( This, pClassID ); -} - -/************************************************************************ - * IPersistStream_IsDirty (IPersistStream) - */ -static HRESULT WINAPI IPersistStream_fnIsDirty( - IPersistStream* iface) -{ - IShellLinkImpl *This = impl_from_IPersistStream(iface); - - TRACE("(%p)\n", This); - - return S_OK; -} - - -static HRESULT Stream_LoadString( IStream* stm, BOOL unicode, LPWSTR *pstr ) -{ - DWORD count; - USHORT len; - LPVOID temp; - LPWSTR str; - HRESULT r; - - TRACE("%p\n", stm); - - count = 0; - r = IStream_Read(stm, &len, sizeof(len), &count); - if ( FAILED (r) || ( count != sizeof(len) ) ) - return E_FAIL; - - if( unicode ) - len *= sizeof (WCHAR); - - TRACE("reading %d\n", len); - temp = HeapAlloc(GetProcessHeap(), 0, len+sizeof(WCHAR)); - if( !temp ) - return E_OUTOFMEMORY; - count = 0; - r = IStream_Read(stm, temp, len, &count); - if( FAILED (r) || ( count != len ) ) - { - HeapFree( GetProcessHeap(), 0, temp ); - return E_FAIL; - } - - TRACE("read %s\n", debugstr_an(temp,len)); - - /* convert to unicode if necessary */ - if( !unicode ) - { - count = MultiByteToWideChar( CP_ACP, 0, temp, len, NULL, 0 ); - str = HeapAlloc( GetProcessHeap(), 0, (count+1)*sizeof (WCHAR) ); - if( !str ) - { - HeapFree( GetProcessHeap(), 0, temp ); - return E_OUTOFMEMORY; - } - MultiByteToWideChar( CP_ACP, 0, temp, len, str, count ); - HeapFree( GetProcessHeap(), 0, temp ); - } - else - { - count /= 2; - str = temp; - } - str[count] = 0; - - *pstr = str; - - return S_OK; -} - -static HRESULT Stream_ReadChunk( IStream* stm, LPVOID *data ) -{ - DWORD size; - ULONG count; - HRESULT r; - struct sized_chunk { - DWORD size; - unsigned char data[1]; - } *chunk; - - TRACE("%p\n",stm); - - r = IStream_Read( stm, &size, sizeof(size), &count ); - if( FAILED( r ) || count != sizeof(size) ) - return E_FAIL; - - chunk = HeapAlloc( GetProcessHeap(), 0, size ); - if( !chunk ) - return E_OUTOFMEMORY; - - chunk->size = size; - r = IStream_Read( stm, chunk->data, size - sizeof(size), &count ); - if( FAILED( r ) || count != (size - sizeof(size)) ) - { - HeapFree( GetProcessHeap(), 0, chunk ); - return E_FAIL; - } - - TRACE("Read %d bytes\n",chunk->size); - - *data = chunk; - - return S_OK; -} - -static BOOL Stream_LoadVolume( LOCAL_VOLUME_INFO *vol, volume_info *volume ) -{ - const int label_sz = sizeof volume->label/sizeof volume->label[0]; - LPSTR label; - int len; - - volume->serial = vol->dwVolSerial; - volume->type = vol->dwType; - - if( !vol->dwVolLabelOfs ) - return FALSE; - if( vol->dwSize <= vol->dwVolLabelOfs ) - return FALSE; - len = vol->dwSize - vol->dwVolLabelOfs; - - label = (LPSTR) vol; - label += vol->dwVolLabelOfs; - MultiByteToWideChar( CP_ACP, 0, label, len, volume->label, label_sz-1); - - return TRUE; -} - -static LPWSTR Stream_LoadPath( LPCSTR p, DWORD maxlen ) -{ - int len = 0, wlen; - LPWSTR path; - - while( p[len] && (len < maxlen) ) - len++; - - wlen = MultiByteToWideChar(CP_ACP, 0, p, len, NULL, 0); - path = HeapAlloc(GetProcessHeap(), 0, (wlen+1)*sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, p, len, path, wlen); - path[wlen] = 0; - - return path; -} - -static HRESULT Stream_LoadLocation( IStream *stm, - volume_info *volume, LPWSTR *path ) -{ - char *p = NULL; - LOCATION_INFO *loc; - HRESULT r; - DWORD n; - - r = Stream_ReadChunk( stm, (LPVOID*) &p ); - if( FAILED(r) ) - return r; - - loc = (LOCATION_INFO*) p; - if (loc->dwTotalSize < sizeof(LOCATION_INFO)) - { - HeapFree( GetProcessHeap(), 0, p ); - return E_FAIL; - } - - /* if there's valid local volume information, load it */ - if( loc->dwVolTableOfs && - ((loc->dwVolTableOfs + sizeof(LOCAL_VOLUME_INFO)) <= loc->dwTotalSize) ) - { - LOCAL_VOLUME_INFO *volume_info; - - volume_info = (LOCAL_VOLUME_INFO*) &p[loc->dwVolTableOfs]; - Stream_LoadVolume( volume_info, volume ); - } - - /* if there's a local path, load it */ - n = loc->dwLocalPathOfs; - if( n && (n < loc->dwTotalSize) ) - *path = Stream_LoadPath( &p[n], loc->dwTotalSize - n ); - - TRACE("type %d serial %08x name %s path %s\n", volume->type, - volume->serial, debugstr_w(volume->label), debugstr_w(*path)); - - HeapFree( GetProcessHeap(), 0, p ); - return S_OK; -} - -/* - * The format of the advertised shortcut info seems to be: - * - * Offset Description - * ------ ----------- - * - * 0 Length of the block (4 bytes, usually 0x314) - * 4 tag (dword) - * 8 string data in ASCII - * 8+0x104 string data in UNICODE - * - * In the original Win32 implementation the buffers are not initialized - * to zero, so data trailing the string is random garbage. - */ -static HRESULT Stream_LoadAdvertiseInfo( IStream* stm, LPWSTR *str ) -{ - DWORD size; - ULONG count; - HRESULT r; - EXP_DARWIN_LINK buffer; - - TRACE("%p\n",stm); - - r = IStream_Read( stm, &buffer.dbh.cbSize, sizeof (DWORD), &count ); - if( FAILED( r ) ) - return r; - - /* make sure that we read the size of the structure even on error */ - size = sizeof buffer - sizeof (DWORD); - if( buffer.dbh.cbSize != sizeof buffer ) - { - ERR("Ooops. This structure is not as expected...\n"); - return E_FAIL; - } - - r = IStream_Read( stm, &buffer.dbh.dwSignature, size, &count ); - if( FAILED( r ) ) - return r; - - if( count != size ) - return E_FAIL; - - TRACE("magic %08x string = %s\n", buffer.dbh.dwSignature, debugstr_w(buffer.szwDarwinID)); - - if( (buffer.dbh.dwSignature&0xffff0000) != 0xa0000000 ) - { - ERR("Unknown magic number %08x in advertised shortcut\n", buffer.dbh.dwSignature); - return E_FAIL; - } - - *str = HeapAlloc( GetProcessHeap(), 0, - (wcslen(buffer.szwDarwinID)+1) * sizeof(WCHAR) ); - wcscpy( *str, buffer.szwDarwinID ); - - return S_OK; -} - -/************************************************************************ - * IPersistStream_Load (IPersistStream) - */ -static HRESULT WINAPI IPersistStream_fnLoad( - IPersistStream* iface, - IStream* stm) -{ - LINK_HEADER hdr; - ULONG dwBytesRead; - BOOL unicode; - HRESULT r; - DWORD zero; - - IShellLinkImpl *This = impl_from_IPersistStream(iface); - - TRACE("%p %p\n", This, stm); - - if( !stm ) - return STG_E_INVALIDPOINTER; - - dwBytesRead = 0; - r = IStream_Read(stm, &hdr, sizeof(hdr), &dwBytesRead); - if( FAILED( r ) ) - return r; - - if( dwBytesRead != sizeof(hdr)) - return E_FAIL; - if( hdr.dwSize != sizeof(hdr)) - return E_FAIL; - if( !IsEqualIID(&hdr.MagicGuid, &CLSID_ShellLink) ) - return E_FAIL; - - /* free all the old stuff */ - ILFree(This->pPidl); - This->pPidl = NULL; - memset( &This->volume, 0, sizeof This->volume ); - HeapFree(GetProcessHeap(), 0, This->sPath); - This->sPath = NULL; - HeapFree(GetProcessHeap(), 0, This->sDescription); - This->sDescription = NULL; - HeapFree(GetProcessHeap(), 0, This->sPathRel); - This->sPathRel = NULL; - HeapFree(GetProcessHeap(), 0, This->sWorkDir); - This->sWorkDir = NULL; - HeapFree(GetProcessHeap(), 0, This->sArgs); - This->sArgs = NULL; - HeapFree(GetProcessHeap(), 0, This->sIcoPath); - This->sIcoPath = NULL; - HeapFree(GetProcessHeap(), 0, This->sProduct); - This->sProduct = NULL; - HeapFree(GetProcessHeap(), 0, This->sComponent); - This->sComponent = NULL; - - This->wHotKey = (WORD)hdr.wHotKey; - This->iIcoNdx = hdr.nIcon; - FileTimeToSystemTime (&hdr.Time1, &This->time1); - FileTimeToSystemTime (&hdr.Time2, &This->time2); - FileTimeToSystemTime (&hdr.Time3, &This->time3); - if (TRACE_ON(shell)) - { - WCHAR sTemp[MAX_PATH]; - GetDateFormatW(LOCALE_USER_DEFAULT,DATE_SHORTDATE, &This->time1, - NULL, sTemp, sizeof(sTemp)/sizeof(*sTemp)); - TRACE("-- time1: %s\n", debugstr_w(sTemp) ); - GetDateFormatW(LOCALE_USER_DEFAULT,DATE_SHORTDATE, &This->time2, - NULL, sTemp, sizeof(sTemp)/sizeof(*sTemp)); - TRACE("-- time2: %s\n", debugstr_w(sTemp) ); - GetDateFormatW(LOCALE_USER_DEFAULT,DATE_SHORTDATE, &This->time3, - NULL, sTemp, sizeof(sTemp)/sizeof(*sTemp)); - TRACE("-- time3: %s\n", debugstr_w(sTemp) ); - } - - /* load all the new stuff */ - if( hdr.dwFlags & SLDF_HAS_ID_LIST ) - { - r = ILLoadFromStream( stm, &This->pPidl ); - if( FAILED( r ) ) - return r; - } - pdump(This->pPidl); - - /* load the location information */ - if( hdr.dwFlags & SLDF_HAS_LINK_INFO ) - r = Stream_LoadLocation( stm, &This->volume, &This->sPath ); - if( FAILED( r ) ) - goto end; - - unicode = hdr.dwFlags & SLDF_UNICODE; - if( hdr.dwFlags & SLDF_HAS_NAME ) - { - r = Stream_LoadString( stm, unicode, &This->sDescription ); - TRACE("Description -> %s\n",debugstr_w(This->sDescription)); - } - if( FAILED( r ) ) - goto end; - - if( hdr.dwFlags & SLDF_HAS_RELPATH ) - { - r = Stream_LoadString( stm, unicode, &This->sPathRel ); - TRACE("Relative Path-> %s\n",debugstr_w(This->sPathRel)); - } - if( FAILED( r ) ) - goto end; - - if( hdr.dwFlags & SLDF_HAS_WORKINGDIR ) - { - r = Stream_LoadString( stm, unicode, &This->sWorkDir ); - TRACE("Working Dir -> %s\n",debugstr_w(This->sWorkDir)); - } - if( FAILED( r ) ) - goto end; - - if( hdr.dwFlags & SLDF_HAS_ARGS ) - { - r = Stream_LoadString( stm, unicode, &This->sArgs ); - TRACE("Working Dir -> %s\n",debugstr_w(This->sArgs)); - } - if( FAILED( r ) ) - goto end; - - if( hdr.dwFlags & SLDF_HAS_ICONLOCATION ) - { - r = Stream_LoadString( stm, unicode, &This->sIcoPath ); - TRACE("Icon file -> %s\n",debugstr_w(This->sIcoPath)); - } - if( FAILED( r ) ) - goto end; - -#if (NTDDI_VERSION < NTDDI_LONGHORN) - if( hdr.dwFlags & SLDF_HAS_LOGO3ID ) - { - r = Stream_LoadAdvertiseInfo( stm, &This->sProduct ); - TRACE("Product -> %s\n",debugstr_w(This->sProduct)); - } - if( FAILED( r ) ) - goto end; -#endif - - if( hdr.dwFlags & SLDF_HAS_DARWINID ) - { - r = Stream_LoadAdvertiseInfo( stm, &This->sComponent ); - TRACE("Component -> %s\n",debugstr_w(This->sComponent)); - } - if( hdr.dwFlags & SLDF_RUNAS_USER ) - { - This->bRunAs = TRUE; - } - else - { - This->bRunAs = FALSE; - } - - if( FAILED( r ) ) - goto end; - - r = IStream_Read(stm, &zero, sizeof zero, &dwBytesRead); - if( FAILED( r ) || zero || dwBytesRead != sizeof zero ) - ERR("Last word was not zero\n"); - - TRACE("OK\n"); - - pdump (This->pPidl); - - return S_OK; -end: - return r; -} - -/************************************************************************ - * Stream_WriteString - * - * Helper function for IPersistStream_Save. Writes a unicode string - * with terminating nul byte to a stream, preceded by the its length. - */ -static HRESULT Stream_WriteString( IStream* stm, LPCWSTR str ) -{ - USHORT len = wcslen( str ) + 1; - DWORD count; - HRESULT r; - - r = IStream_Write( stm, &len, sizeof(len), &count ); - if( FAILED( r ) ) - return r; - - len *= sizeof(WCHAR); - - r = IStream_Write( stm, str, len, &count ); - if( FAILED( r ) ) - return r; - - return S_OK; -} - -/************************************************************************ - * Stream_WriteLocationInfo - * - * Writes the location info to a stream - * - * FIXME: One day we might want to write the network volume information - * and the final path. - * Figure out how Windows deals with unicode paths here. - */ -static HRESULT Stream_WriteLocationInfo( IStream* stm, LPCWSTR path, - volume_info *volume ) -{ - DWORD total_size, path_size, volume_info_size, label_size, final_path_size; - LOCAL_VOLUME_INFO *vol; - LOCATION_INFO *loc; - LPSTR szLabel, szPath, szFinalPath; - ULONG count = 0; - HRESULT hr; - - TRACE("%p %s %p\n", stm, debugstr_w(path), volume); - - /* figure out the size of everything */ - label_size = WideCharToMultiByte( CP_ACP, 0, volume->label, -1, - NULL, 0, NULL, NULL ); - path_size = WideCharToMultiByte( CP_ACP, 0, path, -1, - NULL, 0, NULL, NULL ); - volume_info_size = sizeof *vol + label_size; - final_path_size = 1; - total_size = sizeof *loc + volume_info_size + path_size + final_path_size; - - /* create pointers to everything */ - loc = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, total_size); - vol = (LOCAL_VOLUME_INFO*) &loc[1]; - szLabel = (LPSTR) &vol[1]; - szPath = &szLabel[label_size]; - szFinalPath = &szPath[path_size]; - - /* fill in the location information header */ - loc->dwTotalSize = total_size; - loc->dwHeaderSize = sizeof (*loc); - loc->dwFlags = 1; - loc->dwVolTableOfs = sizeof (*loc); - loc->dwLocalPathOfs = sizeof (*loc) + volume_info_size; - loc->dwNetworkVolTableOfs = 0; - loc->dwFinalPathOfs = sizeof (*loc) + volume_info_size + path_size; - - /* fill in the volume information */ - vol->dwSize = volume_info_size; - vol->dwType = volume->type; - vol->dwVolSerial = volume->serial; - vol->dwVolLabelOfs = sizeof (*vol); - - /* copy in the strings */ - WideCharToMultiByte( CP_ACP, 0, volume->label, -1, - szLabel, label_size, NULL, NULL ); - WideCharToMultiByte( CP_ACP, 0, path, -1, - szPath, path_size, NULL, NULL ); - szFinalPath[0] = 0; - - hr = IStream_Write( stm, loc, total_size, &count ); - HeapFree(GetProcessHeap(), 0, loc); - - return hr; -} - -static EXP_DARWIN_LINK* shelllink_build_darwinid( LPCWSTR string, DWORD magic ) -{ - EXP_DARWIN_LINK *buffer; - - buffer = LocalAlloc( LMEM_ZEROINIT, sizeof *buffer ); - buffer->dbh.cbSize = sizeof *buffer; - buffer->dbh.dwSignature = magic; - lstrcpynW( buffer->szwDarwinID, string, MAX_PATH ); - WideCharToMultiByte(CP_ACP, 0, string, -1, buffer->szDarwinID, MAX_PATH, NULL, NULL ); - - return buffer; -} - -static HRESULT Stream_WriteAdvertiseInfo( IStream* stm, LPCWSTR string, DWORD magic ) -{ - EXP_DARWIN_LINK *buffer; - ULONG count; - - TRACE("%p\n",stm); - - buffer = shelllink_build_darwinid( string, magic ); - - return IStream_Write( stm, buffer, buffer->dbh.cbSize, &count ); -} - -/************************************************************************ - * IPersistStream_Save (IPersistStream) - * - * FIXME: makes assumptions about byte order - */ -static HRESULT WINAPI IPersistStream_fnSave( - IPersistStream* iface, - IStream* stm, - BOOL fClearDirty) -{ - LINK_HEADER header; - ULONG count; - DWORD zero; - HRESULT r; - - IShellLinkImpl *This = impl_from_IPersistStream(iface); - - TRACE("%p %p %x\n", This, stm, fClearDirty); - - memset(&header, 0, sizeof(header)); - header.dwSize = sizeof(header); - header.fStartup = This->iShowCmd; - header.MagicGuid = CLSID_ShellLink; - - header.wHotKey = This->wHotKey; - header.nIcon = This->iIcoNdx; - header.dwFlags = SLDF_UNICODE; /* strings are in unicode */ - if( This->pPidl ) - header.dwFlags |= SLDF_HAS_ID_LIST; - if( This->sPath ) - header.dwFlags |= SLDF_HAS_LINK_INFO; - if( This->sDescription ) - header.dwFlags |= SLDF_HAS_NAME; - if( This->sWorkDir ) - header.dwFlags |= SLDF_HAS_WORKINGDIR; - if( This->sArgs ) - header.dwFlags |= SLDF_HAS_ARGS; - if( This->sIcoPath ) - header.dwFlags |= SLDF_HAS_ICONLOCATION; -#if (NTDDI_VERSION < NTDDI_LONGHORN) - if( This->sProduct ) - header.dwFlags |= SLDF_HAS_LOGO3ID; -#endif - if( This->sComponent ) - header.dwFlags |= SLDF_HAS_DARWINID; - if( This->bRunAs ) - header.dwFlags |= SLDF_RUNAS_USER; - - SystemTimeToFileTime ( &This->time1, &header.Time1 ); - SystemTimeToFileTime ( &This->time2, &header.Time2 ); - SystemTimeToFileTime ( &This->time3, &header.Time3 ); - - /* write the Shortcut header */ - r = IStream_Write( stm, &header, sizeof(header), &count ); - if( FAILED( r ) ) - { - ERR("Write failed at %d\n",__LINE__); - return r; - } - - TRACE("Writing pidl\n"); - - /* write the PIDL to the shortcut */ - if( This->pPidl ) - { - r = ILSaveToStream( stm, This->pPidl ); - if( FAILED( r ) ) - { - ERR("Failed to write PIDL at %d\n",__LINE__); - return r; - } - } - - if( This->sPath ) - Stream_WriteLocationInfo( stm, This->sPath, &This->volume ); - - if( This->sDescription ) - r = Stream_WriteString( stm, This->sDescription ); - - if( This->sPathRel ) - r = Stream_WriteString( stm, This->sPathRel ); - - if( This->sWorkDir ) - r = Stream_WriteString( stm, This->sWorkDir ); - - if( This->sArgs ) - r = Stream_WriteString( stm, This->sArgs ); - - if( This->sIcoPath ) - r = Stream_WriteString( stm, This->sIcoPath ); - - if( This->sProduct ) - r = Stream_WriteAdvertiseInfo( stm, This->sProduct, EXP_SZ_ICON_SIG ); - - if( This->sComponent ) - r = Stream_WriteAdvertiseInfo( stm, This->sComponent, EXP_DARWIN_ID_SIG ); - - /* the last field is a single zero dword */ - zero = 0; - r = IStream_Write( stm, &zero, sizeof zero, &count ); - - return S_OK; -} - -/************************************************************************ - * IPersistStream_GetSizeMax (IPersistStream) - */ -static HRESULT WINAPI IPersistStream_fnGetSizeMax( - IPersistStream* iface, - ULARGE_INTEGER* pcbSize) -{ - IShellLinkImpl *This = impl_from_IPersistStream(iface); - - TRACE("(%p)\n", This); - - return E_NOTIMPL; -} - -static const IPersistStreamVtbl psvt = -{ - IPersistStream_fnQueryInterface, - IPersistStream_fnAddRef, - IPersistStream_fnRelease, - IPersistStream_fnGetClassID, - IPersistStream_fnIsDirty, - IPersistStream_fnLoad, - IPersistStream_fnSave, - IPersistStream_fnGetSizeMax -}; - -/************************************************************************** - * IShellLink_Constructor - */ -HRESULT WINAPI IShellLink_Constructor( IUnknown *pUnkOuter, - REFIID riid, LPVOID *ppv ) -{ - IShellLinkImpl * sl; - HRESULT r; - - TRACE("unkOut=%p riid=%s\n",pUnkOuter, debugstr_guid(riid)); - - *ppv = NULL; - - if (pUnkOuter) - return CLASS_E_NOAGGREGATION; - sl = LocalAlloc(LMEM_ZEROINIT,sizeof(IShellLinkImpl)); - if (!sl) - return E_OUTOFMEMORY; - - sl->ref = 1; - sl->lpVtbl = &slvt; - sl->lpvtblw = &slvtw; - sl->lpvtblPersistFile = &pfvt; - sl->lpvtblPersistStream = &psvt; - sl->lpvtblShellLinkDataList = &dlvt; - sl->lpvtblShellExtInit = &eivt; - sl->lpvtblContextMenu = &cmvt; - sl->lpvtblObjectWithSite = &owsvt; - sl->lpvtblPropSheetExt = &pse; - sl->iShowCmd = SW_SHOWNORMAL; - sl->bDirty = FALSE; - sl->iIdOpen = -1; - sl->site = NULL; - sl->bRunAs = FALSE; - - TRACE("(%p)->()\n",sl); - - r = ShellLink_QueryInterface( sl, riid, ppv ); - ShellLink_Release( sl ); - return r; -} - - -static BOOL SHELL_ExistsFileW(LPCWSTR path) -{ - if (INVALID_FILE_ATTRIBUTES == GetFileAttributesW(path)) - return FALSE; - return TRUE; -} - -/************************************************************************** - * ShellLink_UpdatePath - * update absolute path in sPath using relative path in sPathRel - */ -static HRESULT ShellLink_UpdatePath(LPCWSTR sPathRel, LPCWSTR path, LPCWSTR sWorkDir, LPWSTR* psPath) -{ - if (!path || !psPath) - return E_INVALIDARG; - - if (!*psPath && sPathRel) { - WCHAR buffer[2*MAX_PATH], abs_path[2*MAX_PATH]; - LPWSTR final = NULL; - - /* first try if [directory of link file] + [relative path] finds an existing file */ - - GetFullPathNameW( path, MAX_PATH*2, buffer, &final ); - if( !final ) - final = buffer; - wcscpy(final, sPathRel); - - *abs_path = '\0'; - - if (SHELL_ExistsFileW(buffer)) { - if (!GetFullPathNameW(buffer, MAX_PATH, abs_path, &final)) - wcscpy(abs_path, buffer); - } else { - /* try if [working directory] + [relative path] finds an existing file */ - if (sWorkDir) { - wcscpy(buffer, sWorkDir); - wcscpy(PathAddBackslashW(buffer), sPathRel); - - if (SHELL_ExistsFileW(buffer)) - if (!GetFullPathNameW(buffer, MAX_PATH, abs_path, &final)) - wcscpy(abs_path, buffer); - } - } - - /* FIXME: This is even not enough - not all shell links can be resolved using this algorithm. */ - if (!*abs_path) - wcscpy(abs_path, sPathRel); - - *psPath = HeapAlloc(GetProcessHeap(), 0, (wcslen(abs_path)+1)*sizeof(WCHAR)); - if (!*psPath) - return E_OUTOFMEMORY; - - wcscpy(*psPath, abs_path); - } - - return S_OK; -} - -/************************************************************************** - * IShellLink_ConstructFromFile - */ -HRESULT WINAPI IShellLink_ConstructFromFile( IUnknown* pUnkOuter, REFIID riid, - LPCITEMIDLIST pidl, LPVOID* ppv) -{ - IShellLinkW* psl; - - HRESULT hr = IShellLink_Constructor(NULL, riid, (LPVOID*)&psl); - - if (SUCCEEDED(hr)) { - IPersistFile* ppf; - - *ppv = NULL; - - hr = IShellLinkW_QueryInterface(psl, &IID_IPersistFile, (LPVOID*)&ppf); - - if (SUCCEEDED(hr)) { - WCHAR path[MAX_PATH]; - - if (SHGetPathFromIDListW(pidl, path)) - hr = IPersistFile_Load(ppf, path, 0); - else - hr = E_FAIL; - - if (SUCCEEDED(hr)) - *ppv = psl; - - IPersistFile_Release(ppf); - } - - if (!*ppv) - IShellLinkW_Release(psl); - } - - return hr; -} - -/************************************************************************** - * IShellLinkA_QueryInterface - */ -static HRESULT WINAPI IShellLinkA_fnQueryInterface( IShellLinkA * iface, REFIID riid, LPVOID *ppvObj) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - return ShellLink_QueryInterface( This, riid, ppvObj ); -} - -/****************************************************************************** - * IShellLinkA_AddRef - */ -static ULONG WINAPI IShellLinkA_fnAddRef(IShellLinkA * iface) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - return ShellLink_AddRef( This ); -} - -/****************************************************************************** - * IShellLinkA_Release - */ -static ULONG WINAPI IShellLinkA_fnRelease(IShellLinkA * iface) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - return ShellLink_Release( This ); -} - -static HRESULT WINAPI IShellLinkA_fnGetPath(IShellLinkA * iface, LPSTR pszFile, - INT cchMaxPath, WIN32_FIND_DATAA *pfd, DWORD fFlags) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(pfile=%p len=%u find_data=%p flags=%u)(%s)\n", - This, pszFile, cchMaxPath, pfd, fFlags, debugstr_w(This->sPath)); - - if (cchMaxPath) - pszFile[0] = 0; - if (This->sPath) - WideCharToMultiByte( CP_ACP, 0, This->sPath, -1, - pszFile, cchMaxPath, NULL, NULL); - - if (pfd) FIXME("(%p): WIN32_FIND_DATA is not yet filled.\n", This); - - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnGetIDList(IShellLinkA * iface, LPITEMIDLIST * ppidl) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(ppidl=%p)\n",This, ppidl); - - return IShellLinkW_GetIDList((IShellLinkW*)&(This->lpvtblw), ppidl); -} - -static HRESULT WINAPI IShellLinkA_fnSetIDList(IShellLinkA * iface, LPCITEMIDLIST pidl) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(pidl=%p)\n",This, pidl); - - if (This->pPidl) - ILFree(This->pPidl); - This->pPidl = ILClone (pidl); - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnGetDescription(IShellLinkA * iface, LPSTR pszName,INT cchMaxName) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(%p len=%u)\n",This, pszName, cchMaxName); - - if( cchMaxName ) - pszName[0] = 0; - if( This->sDescription ) - WideCharToMultiByte( CP_ACP, 0, This->sDescription, -1, - pszName, cchMaxName, NULL, NULL); - - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnSetDescription(IShellLinkA * iface, LPCSTR pszName) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(pName=%s)\n", This, pszName); - - HeapFree(GetProcessHeap(), 0, This->sDescription); - This->sDescription = NULL; - - if ( pszName ) { - This->sDescription = HEAP_strdupAtoW( GetProcessHeap(), 0, pszName); - if ( !This->sDescription ) - return E_OUTOFMEMORY; - } - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnGetWorkingDirectory(IShellLinkA * iface, LPSTR pszDir,INT cchMaxPath) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(%p len=%u)\n", This, pszDir, cchMaxPath); - - if( cchMaxPath ) - pszDir[0] = 0; - if( This->sWorkDir ) - WideCharToMultiByte( CP_ACP, 0, This->sWorkDir, -1, - pszDir, cchMaxPath, NULL, NULL); - - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnSetWorkingDirectory(IShellLinkA * iface, LPCSTR pszDir) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(dir=%s)\n",This, pszDir); - - HeapFree(GetProcessHeap(), 0, This->sWorkDir); - This->sWorkDir = NULL; - - if ( pszDir ) { - This->sWorkDir = HEAP_strdupAtoW( GetProcessHeap(), 0, pszDir); - if ( !This->sWorkDir ) - return E_OUTOFMEMORY; - } - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnGetArguments(IShellLinkA * iface, LPSTR pszArgs,INT cchMaxPath) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(%p len=%u)\n", This, pszArgs, cchMaxPath); - - if( cchMaxPath ) - pszArgs[0] = 0; - if( This->sArgs ) - WideCharToMultiByte( CP_ACP, 0, This->sArgs, -1, - pszArgs, cchMaxPath, NULL, NULL); - - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnSetArguments(IShellLinkA * iface, LPCSTR pszArgs) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(args=%s)\n",This, pszArgs); - - HeapFree(GetProcessHeap(), 0, This->sArgs); - This->sArgs = NULL; - - if ( pszArgs ) { - This->sArgs = HEAP_strdupAtoW( GetProcessHeap(), 0, pszArgs); - if( !This->sArgs ) - return E_OUTOFMEMORY; - } - - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnGetHotkey(IShellLinkA * iface, WORD *pwHotkey) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(%p)(0x%08x)\n",This, pwHotkey, This->wHotKey); - - *pwHotkey = This->wHotKey; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnSetHotkey(IShellLinkA * iface, WORD wHotkey) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(hotkey=%x)\n",This, wHotkey); - - This->wHotKey = wHotkey; - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnGetShowCmd(IShellLinkA * iface, INT *piShowCmd) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(%p)\n",This, piShowCmd); - *piShowCmd = This->iShowCmd; - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnSetShowCmd(IShellLinkA * iface, INT iShowCmd) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p) %d\n",This, iShowCmd); - - This->iShowCmd = iShowCmd; - This->bDirty = TRUE; - - return NOERROR; -} - -static HRESULT SHELL_PidlGeticonLocationA(IShellFolder* psf, LPCITEMIDLIST pidl, - LPSTR pszIconPath, int cchIconPath, int* piIcon) -{ - LPCITEMIDLIST pidlLast; - - HRESULT hr = SHBindToParent(pidl, &IID_IShellFolder, (LPVOID*)&psf, &pidlLast); - - if (SUCCEEDED(hr)) { - IExtractIconA* pei; - - hr = IShellFolder_GetUIObjectOf(psf, 0, 1, &pidlLast, &IID_IExtractIconA, NULL, (LPVOID*)&pei); - - if (SUCCEEDED(hr)) { - hr = IExtractIconA_GetIconLocation(pei, 0, pszIconPath, MAX_PATH, piIcon, NULL); - - IExtractIconA_Release(pei); - } - - IShellFolder_Release(psf); - } - - return hr; -} - -static HRESULT WINAPI IShellLinkA_fnGetIconLocation(IShellLinkA * iface, LPSTR pszIconPath,INT cchIconPath,INT *piIcon) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(%p len=%u iicon=%p)\n", This, pszIconPath, cchIconPath, piIcon); - - pszIconPath[0] = 0; - *piIcon = This->iIcoNdx; - - if (This->sIcoPath) - { - WideCharToMultiByte(CP_ACP, 0, This->sIcoPath, -1, pszIconPath, cchIconPath, NULL, NULL); - return S_OK; - } - - if (This->pPidl || This->sPath) - { - IShellFolder* pdsk; - - HRESULT hr = SHGetDesktopFolder(&pdsk); - - if (SUCCEEDED(hr)) - { - /* first look for an icon using the PIDL (if present) */ - if (This->pPidl) - hr = SHELL_PidlGeticonLocationA(pdsk, This->pPidl, pszIconPath, cchIconPath, piIcon); - else - hr = E_FAIL; - - /* if we couldn't find an icon yet, look for it using the file system path */ - if (FAILED(hr) && This->sPath) - { - LPITEMIDLIST pidl; - - hr = IShellFolder_ParseDisplayName(pdsk, 0, NULL, This->sPath, NULL, &pidl, NULL); - - if (SUCCEEDED(hr)) { - hr = SHELL_PidlGeticonLocationA(pdsk, pidl, pszIconPath, cchIconPath, piIcon); - - SHFree(pidl); - } - } - - IShellFolder_Release(pdsk); - } - - return hr; - } - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnSetIconLocation(IShellLinkA * iface, LPCSTR pszIconPath,INT iIcon) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(path=%s iicon=%u)\n",This, pszIconPath, iIcon); - - HeapFree(GetProcessHeap(), 0, This->sIcoPath); - This->sIcoPath = NULL; - - if ( pszIconPath ) { - This->sIcoPath = HEAP_strdupAtoW(GetProcessHeap(), 0, pszIconPath); - if ( !This->sIcoPath ) - return E_OUTOFMEMORY; - } - - This->iIcoNdx = iIcon; - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkA_fnSetRelativePath(IShellLinkA * iface, LPCSTR pszPathRel, DWORD dwReserved) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(path=%s %x)\n",This, pszPathRel, dwReserved); - - HeapFree(GetProcessHeap(), 0, This->sPathRel); - This->sPathRel = NULL; - - if ( pszPathRel ) { - This->sPathRel = HEAP_strdupAtoW(GetProcessHeap(), 0, pszPathRel); - - if ( !This->sPathRel ) - return E_OUTOFMEMORY; - } - - This->bDirty = TRUE; - - return ShellLink_UpdatePath(This->sPathRel, This->sPath, This->sWorkDir, &This->sPath); -} - -static HRESULT WINAPI IShellLinkA_fnResolve(IShellLinkA * iface, HWND hwnd, DWORD fFlags) -{ - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(hwnd=%p flags=%x)\n",This, hwnd, fFlags); - - return IShellLinkW_Resolve( (IShellLinkW*)&(This->lpvtblw), hwnd, fFlags ); -} - -static HRESULT WINAPI IShellLinkA_fnSetPath(IShellLinkA * iface, LPCSTR pszFile) -{ - HRESULT r; - LPWSTR str; - IShellLinkImpl *This = (IShellLinkImpl *)iface; - - TRACE("(%p)->(path=%s)\n",This, pszFile); - - if (!pszFile) return E_INVALIDARG; - - str = HEAP_strdupAtoW(GetProcessHeap(), 0, pszFile); - if( !str ) - return E_OUTOFMEMORY; - - r = IShellLinkW_SetPath((IShellLinkW*)&(This->lpvtblw), str); - HeapFree( GetProcessHeap(), 0, str ); - - return r; -} - -/************************************************************************** -* IShellLink Implementation -*/ - -static const IShellLinkAVtbl slvt = -{ - IShellLinkA_fnQueryInterface, - IShellLinkA_fnAddRef, - IShellLinkA_fnRelease, - IShellLinkA_fnGetPath, - IShellLinkA_fnGetIDList, - IShellLinkA_fnSetIDList, - IShellLinkA_fnGetDescription, - IShellLinkA_fnSetDescription, - IShellLinkA_fnGetWorkingDirectory, - IShellLinkA_fnSetWorkingDirectory, - IShellLinkA_fnGetArguments, - IShellLinkA_fnSetArguments, - IShellLinkA_fnGetHotkey, - IShellLinkA_fnSetHotkey, - IShellLinkA_fnGetShowCmd, - IShellLinkA_fnSetShowCmd, - IShellLinkA_fnGetIconLocation, - IShellLinkA_fnSetIconLocation, - IShellLinkA_fnSetRelativePath, - IShellLinkA_fnResolve, - IShellLinkA_fnSetPath -}; - - -/************************************************************************** - * IShellLinkW_fnQueryInterface - */ -static HRESULT WINAPI IShellLinkW_fnQueryInterface( - IShellLinkW * iface, REFIID riid, LPVOID *ppvObj) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - return ShellLink_QueryInterface( This, riid, ppvObj ); -} - -/****************************************************************************** - * IShellLinkW_fnAddRef - */ -static ULONG WINAPI IShellLinkW_fnAddRef(IShellLinkW * iface) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - return ShellLink_AddRef( This ); -} - -/****************************************************************************** - * IShellLinkW_fnRelease - */ -static ULONG WINAPI IShellLinkW_fnRelease(IShellLinkW * iface) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - return ShellLink_Release( This ); -} - -static HRESULT WINAPI IShellLinkW_fnGetPath(IShellLinkW * iface, LPWSTR pszFile,INT cchMaxPath, WIN32_FIND_DATAW *pfd, DWORD fFlags) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(pfile=%p len=%u find_data=%p flags=%u)(%s)\n", - This, pszFile, cchMaxPath, pfd, fFlags, debugstr_w(This->sPath)); - - if (This->sComponent || This->sProduct) - return S_FALSE; - - if (cchMaxPath) - pszFile[0] = 0; - if (This->sPath) - lstrcpynW( pszFile, This->sPath, cchMaxPath ); - - if (pfd) FIXME("(%p): WIN32_FIND_DATA is not yet filled.\n", This); - - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnGetIDList(IShellLinkW * iface, LPITEMIDLIST * ppidl) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(ppidl=%p)\n",This, ppidl); - - if (!This->pPidl) - { - *ppidl = NULL; - return S_FALSE; - } - *ppidl = ILClone(This->pPidl); - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnSetIDList(IShellLinkW * iface, LPCITEMIDLIST pidl) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(pidl=%p)\n",This, pidl); - - if( This->pPidl ) - ILFree( This->pPidl ); - This->pPidl = ILClone( pidl ); - if( !This->pPidl ) - return E_FAIL; - - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnGetDescription(IShellLinkW * iface, LPWSTR pszName,INT cchMaxName) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(%p len=%u)\n",This, pszName, cchMaxName); - - pszName[0] = 0; - if( This->sDescription ) - lstrcpynW( pszName, This->sDescription, cchMaxName ); - - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnSetDescription(IShellLinkW * iface, LPCWSTR pszName) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(desc=%s)\n",This, debugstr_w(pszName)); - - HeapFree(GetProcessHeap(), 0, This->sDescription); - This->sDescription = HeapAlloc( GetProcessHeap(), 0, - (wcslen( pszName )+1)*sizeof(WCHAR) ); - if ( !This->sDescription ) - return E_OUTOFMEMORY; - - wcscpy( This->sDescription, pszName ); - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnGetWorkingDirectory(IShellLinkW * iface, LPWSTR pszDir,INT cchMaxPath) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(%p len %u)\n", This, pszDir, cchMaxPath); - - if( cchMaxPath ) - pszDir[0] = 0; - if( This->sWorkDir ) - lstrcpynW( pszDir, This->sWorkDir, cchMaxPath ); - - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnSetWorkingDirectory(IShellLinkW * iface, LPCWSTR pszDir) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(dir=%s)\n",This, debugstr_w(pszDir)); - - HeapFree(GetProcessHeap(), 0, This->sWorkDir); - This->sWorkDir = HeapAlloc( GetProcessHeap(), 0, - (wcslen( pszDir )+1)*sizeof (WCHAR) ); - if ( !This->sWorkDir ) - return E_OUTOFMEMORY; - wcscpy( This->sWorkDir, pszDir ); - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnGetArguments(IShellLinkW * iface, LPWSTR pszArgs,INT cchMaxPath) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(%p len=%u)\n", This, pszArgs, cchMaxPath); - - if( cchMaxPath ) - pszArgs[0] = 0; - if( This->sArgs ) - lstrcpynW( pszArgs, This->sArgs, cchMaxPath ); - - return NOERROR; -} - -static HRESULT WINAPI IShellLinkW_fnSetArguments(IShellLinkW * iface, LPCWSTR pszArgs) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(args=%s)\n",This, debugstr_w(pszArgs)); - - HeapFree(GetProcessHeap(), 0, This->sArgs); - This->sArgs = HeapAlloc( GetProcessHeap(), 0, - (wcslen( pszArgs )+1)*sizeof (WCHAR) ); - if ( !This->sArgs ) - return E_OUTOFMEMORY; - wcscpy( This->sArgs, pszArgs ); - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnGetHotkey(IShellLinkW * iface, WORD *pwHotkey) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(%p)\n",This, pwHotkey); - - *pwHotkey=This->wHotKey; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnSetHotkey(IShellLinkW * iface, WORD wHotkey) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(hotkey=%x)\n",This, wHotkey); - - This->wHotKey = wHotkey; - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnGetShowCmd(IShellLinkW * iface, INT *piShowCmd) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(%p)\n",This, piShowCmd); - - *piShowCmd = This->iShowCmd; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnSetShowCmd(IShellLinkW * iface, INT iShowCmd) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - This->iShowCmd = iShowCmd; - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT SHELL_PidlGeticonLocationW(IShellFolder* psf, LPCITEMIDLIST pidl, - LPWSTR pszIconPath, int cchIconPath, int* piIcon) -{ - LPCITEMIDLIST pidlLast; - UINT wFlags; - - HRESULT hr = SHBindToParent(pidl, &IID_IShellFolder, (LPVOID*)&psf, &pidlLast); - - if (SUCCEEDED(hr)) { - IExtractIconW* pei; - - hr = IShellFolder_GetUIObjectOf(psf, 0, 1, &pidlLast, &IID_IExtractIconW, NULL, (LPVOID*)&pei); - - if (SUCCEEDED(hr)) { - hr = IExtractIconW_GetIconLocation(pei, 0, pszIconPath, MAX_PATH, piIcon, &wFlags); - - IExtractIconW_Release(pei); - } - - IShellFolder_Release(psf); - } - - return hr; -} - -static HRESULT WINAPI IShellLinkW_fnGetIconLocation(IShellLinkW * iface, LPWSTR pszIconPath,INT cchIconPath,INT *piIcon) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(%p len=%u iicon=%p)\n", This, pszIconPath, cchIconPath, piIcon); - - pszIconPath[0] = 0; - *piIcon = This->iIcoNdx; - - if (This->sIcoPath) - { - lstrcpynW(pszIconPath, This->sIcoPath, cchIconPath); - return S_OK; - } - - if (This->pPidl || This->sPath) - { - IShellFolder* pdsk; - - HRESULT hr = SHGetDesktopFolder(&pdsk); - - if (SUCCEEDED(hr)) - { - /* first look for an icon using the PIDL (if present) */ - if (This->pPidl) - hr = SHELL_PidlGeticonLocationW(pdsk, This->pPidl, pszIconPath, cchIconPath, piIcon); - else - hr = E_FAIL; - - /* if we couldn't find an icon yet, look for it using the file system path */ - if (FAILED(hr) && This->sPath) - { - LPITEMIDLIST pidl; - - hr = IShellFolder_ParseDisplayName(pdsk, 0, NULL, This->sPath, NULL, &pidl, NULL); - - if (SUCCEEDED(hr)) - { - hr = SHELL_PidlGeticonLocationW(pdsk, pidl, pszIconPath, cchIconPath, piIcon); - - SHFree(pidl); - } - } - - IShellFolder_Release(pdsk); - } - return hr; - } - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnSetIconLocation(IShellLinkW * iface, LPCWSTR pszIconPath,INT iIcon) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(path=%s iicon=%u)\n",This, debugstr_w(pszIconPath), iIcon); - - HeapFree(GetProcessHeap(), 0, This->sIcoPath); - This->sIcoPath = HeapAlloc( GetProcessHeap(), 0, - (wcslen( pszIconPath )+1)*sizeof (WCHAR) ); - if ( !This->sIcoPath ) - return E_OUTOFMEMORY; - wcscpy( This->sIcoPath, pszIconPath ); - - This->iIcoNdx = iIcon; - This->bDirty = TRUE; - - return S_OK; -} - -static HRESULT WINAPI IShellLinkW_fnSetRelativePath(IShellLinkW * iface, LPCWSTR pszPathRel, DWORD dwReserved) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(path=%s %x)\n",This, debugstr_w(pszPathRel), dwReserved); - - HeapFree(GetProcessHeap(), 0, This->sPathRel); - This->sPathRel = HeapAlloc( GetProcessHeap(), 0, - (wcslen( pszPathRel )+1) * sizeof (WCHAR) ); - if ( !This->sPathRel ) - return E_OUTOFMEMORY; - wcscpy( This->sPathRel, pszPathRel ); - This->bDirty = TRUE; - - return ShellLink_UpdatePath(This->sPathRel, This->sPath, This->sWorkDir, &This->sPath); -} - -static HRESULT WINAPI IShellLinkW_fnResolve(IShellLinkW * iface, HWND hwnd, DWORD fFlags) -{ - HRESULT hr = S_OK; - BOOL bSuccess; - - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - - TRACE("(%p)->(hwnd=%p flags=%x)\n",This, hwnd, fFlags); - - /*FIXME: use IResolveShellLink interface */ - - if (!This->sPath && This->pPidl) { - WCHAR buffer[MAX_PATH]; - - bSuccess = SHGetPathFromIDListW(This->pPidl, buffer); - - if (bSuccess && *buffer) { - This->sPath = HeapAlloc(GetProcessHeap(), 0, (wcslen(buffer)+1)*sizeof(WCHAR)); - if (!This->sPath) - return E_OUTOFMEMORY; - - wcscpy(This->sPath, buffer); - - This->bDirty = TRUE; - } else - hr = S_OK; /* don't report an error occurred while just caching information */ - } - - if (!This->sIcoPath && This->sPath) { - This->sIcoPath = HeapAlloc(GetProcessHeap(), 0, (wcslen(This->sPath)+1)*sizeof(WCHAR)); - if (!This->sIcoPath) - return E_OUTOFMEMORY; - - wcscpy(This->sIcoPath, This->sPath); - This->iIcoNdx = 0; - - This->bDirty = TRUE; - } - - return hr; -} - -static LPWSTR ShellLink_GetAdvertisedArg(LPCWSTR str) -{ - LPWSTR ret; - LPCWSTR p; - DWORD len; - - if( !str ) - return NULL; - - p = wcschr( str, ':' ); - if( !p ) - return NULL; - len = p - str; - ret = HeapAlloc( GetProcessHeap(), 0, sizeof(WCHAR)*(len+1)); - if( !ret ) - return ret; - memcpy( ret, str, sizeof(WCHAR)*len ); - ret[len] = 0; - return ret; -} - -static HRESULT ShellLink_SetAdvertiseInfo(IShellLinkImpl *This, LPCWSTR str) -{ - LPCWSTR szComponent = NULL, szProduct = NULL, p; - WCHAR szGuid[39]; - HRESULT r; - GUID guid; - int len; - - while( str[0] ) - { - /* each segment must start with two colons */ - if( str[0] != ':' || str[1] != ':' ) - return E_FAIL; - - /* the last segment is just two colons */ - if( !str[2] ) - break; - str += 2; - - /* there must be a colon straight after a guid */ - p = wcschr( str, ':' ); - if( !p ) - return E_FAIL; - len = p - str; - if( len != 38 ) - return E_FAIL; - - /* get the guid, and check it's validly formatted */ - memcpy( szGuid, str, sizeof(WCHAR)*len ); - szGuid[len] = 0; - r = CLSIDFromString( szGuid, &guid ); - if( r != S_OK ) - return r; - str = p + 1; - - /* match it up to a guid that we care about */ - if( IsEqualGUID( &guid, &SHELL32_AdvtShortcutComponent ) && !szComponent ) - szComponent = str; - else if( IsEqualGUID( &guid, &SHELL32_AdvtShortcutProduct ) && !szProduct ) - szProduct = str; - else - return E_FAIL; - - /* skip to the next field */ - str = wcschr( str, ':' ); - if( !str ) - return E_FAIL; - } - - /* we have to have a component for an advertised shortcut */ - if( !szComponent ) - return E_FAIL; - - This->sComponent = ShellLink_GetAdvertisedArg( szComponent ); - This->sProduct = ShellLink_GetAdvertisedArg( szProduct ); - - TRACE("Component = %s\n", debugstr_w(This->sComponent)); - TRACE("Product = %s\n", debugstr_w(This->sProduct)); - - return S_OK; -} - -static BOOL ShellLink_GetVolumeInfo(LPCWSTR path, volume_info *volume) -{ - const int label_sz = sizeof volume->label/sizeof volume->label[0]; - WCHAR drive[4] = { path[0], ':', '\\', 0 }; - BOOL r; - - volume->type = GetDriveTypeW(drive); - r = GetVolumeInformationW(drive, volume->label, label_sz, - &volume->serial, NULL, NULL, NULL, 0); - TRACE("r = %d type %d serial %08x name %s\n", r, - volume->type, volume->serial, debugstr_w(volume->label)); - return r; -} - -static HRESULT WINAPI IShellLinkW_fnSetPath(IShellLinkW * iface, LPCWSTR pszFile) -{ - IShellLinkImpl *This = impl_from_IShellLinkW(iface); - WCHAR buffer[MAX_PATH]; - LPWSTR fname, unquoted = NULL; - HRESULT hr = S_OK; - UINT len; - - TRACE("(%p)->(path=%s)\n",This, debugstr_w(pszFile)); - - if (!pszFile) return E_INVALIDARG; - - /* quotes at the ends of the string are stripped */ - len = wcslen(pszFile); - if (pszFile[0] == '"' && pszFile[len-1] == '"') - { - unquoted = strdupW(pszFile); - PathUnquoteSpacesW(unquoted); - pszFile = unquoted; - } - - /* any other quote marks are invalid */ - if (wcschr(pszFile, '"')) - { - HeapFree(GetProcessHeap(), 0, unquoted); - return S_FALSE; - } - - HeapFree(GetProcessHeap(), 0, This->sPath); - This->sPath = NULL; - - HeapFree(GetProcessHeap(), 0, This->sComponent); - This->sComponent = NULL; - - if (This->pPidl) - ILFree(This->pPidl); - This->pPidl = NULL; - - if (S_OK != ShellLink_SetAdvertiseInfo( This, pszFile )) - { - if (*pszFile == '\0') - *buffer = '\0'; - else if (!GetFullPathNameW(pszFile, MAX_PATH, buffer, &fname)) - return E_FAIL; - else if(!PathFileExistsW(buffer) && - !SearchPathW(NULL, pszFile, NULL, MAX_PATH, buffer, NULL)) - hr = S_FALSE; - - This->pPidl = SHSimpleIDListFromPathW(pszFile); - ShellLink_GetVolumeInfo(buffer, &This->volume); - - This->sPath = HeapAlloc( GetProcessHeap(), 0, - (wcslen( buffer )+1) * sizeof (WCHAR) ); - if (!This->sPath) - return E_OUTOFMEMORY; - - wcscpy(This->sPath, buffer); - } - This->bDirty = TRUE; - HeapFree(GetProcessHeap(), 0, unquoted); - - return hr; -} - -/************************************************************************** -* IShellLinkW Implementation -*/ - -static const IShellLinkWVtbl slvtw = -{ - IShellLinkW_fnQueryInterface, - IShellLinkW_fnAddRef, - IShellLinkW_fnRelease, - IShellLinkW_fnGetPath, - IShellLinkW_fnGetIDList, - IShellLinkW_fnSetIDList, - IShellLinkW_fnGetDescription, - IShellLinkW_fnSetDescription, - IShellLinkW_fnGetWorkingDirectory, - IShellLinkW_fnSetWorkingDirectory, - IShellLinkW_fnGetArguments, - IShellLinkW_fnSetArguments, - IShellLinkW_fnGetHotkey, - IShellLinkW_fnSetHotkey, - IShellLinkW_fnGetShowCmd, - IShellLinkW_fnSetShowCmd, - IShellLinkW_fnGetIconLocation, - IShellLinkW_fnSetIconLocation, - IShellLinkW_fnSetRelativePath, - IShellLinkW_fnResolve, - IShellLinkW_fnSetPath -}; - -static HRESULT WINAPI -ShellLink_DataList_QueryInterface( IShellLinkDataList* iface, REFIID riid, void** ppvObject) -{ - IShellLinkImpl *This = impl_from_IShellLinkDataList(iface); - return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvObject); -} - -static ULONG WINAPI -ShellLink_DataList_AddRef( IShellLinkDataList* iface ) -{ - IShellLinkImpl *This = impl_from_IShellLinkDataList(iface); - return IShellLinkA_AddRef((IShellLinkA*)This); -} - -static ULONG WINAPI -ShellLink_DataList_Release( IShellLinkDataList* iface ) -{ - IShellLinkImpl *This = impl_from_IShellLinkDataList(iface); - return ShellLink_Release( This ); -} - -static HRESULT WINAPI -ShellLink_AddDataBlock( IShellLinkDataList* iface, void* pDataBlock ) -{ - FIXME("\n"); - return E_NOTIMPL; -} - -static HRESULT WINAPI -ShellLink_CopyDataBlock( IShellLinkDataList* iface, DWORD dwSig, void** ppDataBlock ) -{ - IShellLinkImpl *This = impl_from_IShellLinkDataList(iface); - LPVOID block = NULL; - HRESULT r = E_FAIL; - - TRACE("%p %08x %p\n", iface, dwSig, ppDataBlock ); - - switch (dwSig) - { - case EXP_DARWIN_ID_SIG: - if (!This->sComponent) - break; - block = shelllink_build_darwinid( This->sComponent, dwSig ); - r = S_OK; - break; - case EXP_SZ_LINK_SIG: - case NT_CONSOLE_PROPS_SIG: - case NT_FE_CONSOLE_PROPS_SIG: - case EXP_SPECIAL_FOLDER_SIG: - case EXP_SZ_ICON_SIG: - FIXME("valid but unhandled datablock %08x\n", dwSig); - break; - default: - ERR("unknown datablock %08x\n", dwSig); - } - *ppDataBlock = block; - return r; -} - -static HRESULT WINAPI -ShellLink_RemoveDataBlock( IShellLinkDataList* iface, DWORD dwSig ) -{ - FIXME("\n"); - return E_NOTIMPL; -} - -static HRESULT WINAPI -ShellLink_GetFlags( IShellLinkDataList* iface, DWORD* pdwFlags ) -{ - IShellLinkImpl *This = impl_from_IShellLinkDataList(iface); - DWORD flags = 0; - - FIXME("%p %p\n", This, pdwFlags ); - - /* FIXME: add more */ - if (This->sArgs) - flags |= SLDF_HAS_ARGS; - if (This->sComponent) - flags |= SLDF_HAS_DARWINID; - if (This->sIcoPath) - flags |= SLDF_HAS_ICONLOCATION; -#if (NTDDI_VERSION < NTDDI_LONGHORN) - if (This->sProduct) - flags |= SLDF_HAS_LOGO3ID; -#endif - if (This->pPidl) - flags |= SLDF_HAS_ID_LIST; - - *pdwFlags = flags; - - return S_OK; -} - -static HRESULT WINAPI -ShellLink_SetFlags( IShellLinkDataList* iface, DWORD dwFlags ) -{ - FIXME("\n"); - return E_NOTIMPL; -} - -static const IShellLinkDataListVtbl dlvt = -{ - ShellLink_DataList_QueryInterface, - ShellLink_DataList_AddRef, - ShellLink_DataList_Release, - ShellLink_AddDataBlock, - ShellLink_CopyDataBlock, - ShellLink_RemoveDataBlock, - ShellLink_GetFlags, - ShellLink_SetFlags -}; - -static HRESULT WINAPI -ShellLink_ExtInit_QueryInterface( IShellExtInit* iface, REFIID riid, void** ppvObject ) -{ - IShellLinkImpl *This = impl_from_IShellExtInit(iface); - return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvObject); -} - -static ULONG WINAPI -ShellLink_ExtInit_AddRef( IShellExtInit* iface ) -{ - IShellLinkImpl *This = impl_from_IShellExtInit(iface); - return IShellLinkA_AddRef((IShellLinkA*)This); -} - -static ULONG WINAPI -ShellLink_ExtInit_Release( IShellExtInit* iface ) -{ - IShellLinkImpl *This = impl_from_IShellExtInit(iface); - return ShellLink_Release( This ); -} - -/************************************************************************** - * ShellLink implementation of IShellExtInit::Initialize() - * - * Loads the shelllink from the dataobject the shell is pointing to. - */ -static HRESULT WINAPI -ShellLink_ExtInit_Initialize( IShellExtInit* iface, LPCITEMIDLIST pidlFolder, - IDataObject *pdtobj, HKEY hkeyProgID ) -{ - IShellLinkImpl *This = impl_from_IShellExtInit(iface); - FORMATETC format; - STGMEDIUM stgm; - UINT count; - HRESULT r = E_FAIL; - - TRACE("%p %p %p %p\n", This, pidlFolder, pdtobj, hkeyProgID ); - - if( !pdtobj ) - return r; - - format.cfFormat = CF_HDROP; - format.ptd = NULL; - format.dwAspect = DVASPECT_CONTENT; - format.lindex = -1; - format.tymed = TYMED_HGLOBAL; - - if( FAILED( IDataObject_GetData( pdtobj, &format, &stgm ) ) ) - return r; - - count = DragQueryFileW( stgm.u.hGlobal, -1, NULL, 0 ); - if( count == 1 ) - { - LPWSTR path; - - count = DragQueryFileW( stgm.u.hGlobal, 0, NULL, 0 ); - count++; - path = HeapAlloc( GetProcessHeap(), 0, count*sizeof(WCHAR) ); - if( path ) - { - IPersistFile *pf = (IPersistFile*) &This->lpvtblPersistFile; - - count = DragQueryFileW( stgm.u.hGlobal, 0, path, count ); - r = IPersistFile_Load( pf, path, 0 ); - HeapFree( GetProcessHeap(), 0, path ); - } - } - ReleaseStgMedium( &stgm ); - - return r; -} - -static const IShellExtInitVtbl eivt = -{ - ShellLink_ExtInit_QueryInterface, - ShellLink_ExtInit_AddRef, - ShellLink_ExtInit_Release, - ShellLink_ExtInit_Initialize -}; - -static HRESULT WINAPI -ShellLink_ContextMenu_QueryInterface( IContextMenu* iface, REFIID riid, void** ppvObject ) -{ - IShellLinkImpl *This = impl_from_IContextMenu(iface); - return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvObject); -} - -static ULONG WINAPI -ShellLink_ContextMenu_AddRef( IContextMenu* iface ) -{ - IShellLinkImpl *This = impl_from_IContextMenu(iface); - return IShellLinkA_AddRef((IShellLinkA*)This); -} - -static ULONG WINAPI -ShellLink_ContextMenu_Release( IContextMenu* iface ) -{ - IShellLinkImpl *This = impl_from_IContextMenu(iface); - return ShellLink_Release( This ); -} - -static HRESULT WINAPI -ShellLink_QueryContextMenu( IContextMenu* iface, HMENU hmenu, UINT indexMenu, - UINT idCmdFirst, UINT idCmdLast, UINT uFlags ) -{ - IShellLinkImpl *This = impl_from_IContextMenu(iface); - WCHAR szOpen[20]; - MENUITEMINFOW mii; - int id = 1; - - TRACE("%p %p %u %u %u %u\n", This, - hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags ); - - if ( !hmenu ) - return E_INVALIDARG; - - if (!LoadStringW(shell32_hInstance, IDS_OPEN_VERB, szOpen, sizeof(szOpen)/sizeof(WCHAR))) - szOpen[0] = L'\0'; - else - szOpen[(sizeof(szOpen)/sizeof(WCHAR))-1] = L'\0'; - - memset( &mii, 0, sizeof(mii) ); - mii.cbSize = sizeof (mii); - mii.fMask = MIIM_TYPE | MIIM_ID | MIIM_STATE; - mii.dwTypeData = (LPWSTR)szOpen; - mii.cch = wcslen( mii.dwTypeData ); - mii.wID = idCmdFirst + id++; - mii.fState = MFS_DEFAULT | MFS_ENABLED; - mii.fType = MFT_STRING; - if (!InsertMenuItemW( hmenu, indexMenu, TRUE, &mii )) - return E_FAIL; - This->iIdOpen = 1; - - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, id ); -} - -static LPWSTR -shelllink_get_msi_component_path( LPWSTR component ) -{ - LPWSTR path; - DWORD r, sz = 0; - - r = CommandLineFromMsiDescriptor( component, NULL, &sz ); - if (r != ERROR_SUCCESS) - return NULL; - - sz++; - path = HeapAlloc( GetProcessHeap(), 0, sz*sizeof(WCHAR) ); - r = CommandLineFromMsiDescriptor( component, path, &sz ); - if (r != ERROR_SUCCESS) - { - HeapFree( GetProcessHeap(), 0, path ); - path = NULL; - } - - TRACE("returning %s\n", debugstr_w( path ) ); - - return path; -} - -INT_PTR CALLBACK ExtendedShortcutProc( - HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam -) -{ - HWND hDlgCtrl; - - switch(uMsg) - { - case WM_INITDIALOG: - if (lParam) - { - hDlgCtrl = GetDlgItem(hwndDlg, 14000); - SendMessage(hDlgCtrl, BM_SETCHECK, BST_CHECKED, 0); - } - return TRUE; - case WM_COMMAND: - hDlgCtrl = GetDlgItem(hwndDlg, 14000); - if (LOWORD(wParam) == IDOK) - { - if ( SendMessage(hDlgCtrl, BM_GETCHECK, 0, 0) == BST_CHECKED ) - EndDialog(hwndDlg, 1); - else - EndDialog(hwndDlg, 0); - } - else if (LOWORD(wParam) == IDCANCEL) - { - EndDialog(hwndDlg, -1); - } - else if (LOWORD(wParam) == 14000) - { - if ( SendMessage(hDlgCtrl, BM_GETCHECK, 0, 0) == BST_CHECKED) - SendMessage(hDlgCtrl, BM_SETCHECK, BST_UNCHECKED, 0); - else - SendMessage(hDlgCtrl, BM_SETCHECK, BST_CHECKED, 0); - - } - } - return FALSE; -} - -/************************************************************************** - * SH_ShellLinkDlgProc - * - * dialog proc of the shortcut property dialog - */ - -INT_PTR -CALLBACK -SH_ShellLinkDlgProc( - HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam -) -{ - LPPROPSHEETPAGEW ppsp; - LPPSHNOTIFY lppsn; - IShellLinkImpl *This; - HWND hDlgCtrl; - WCHAR szBuffer[MAX_PATH]; - WCHAR * ptr; - int IconIndex; - INT_PTR result; - - This = (IShellLinkImpl *)GetWindowLongPtr(hwndDlg, DWLP_USER); - - switch(uMsg) - { - case WM_INITDIALOG: - ppsp = (LPPROPSHEETPAGEW)lParam; - if (ppsp == NULL) - break; - - TRACE("ShellLink_DlgProc (WM_INITDIALOG hwnd %p lParam %p ppsplParam %x)\n",hwndDlg, lParam, ppsp->lParam); - - This = (IShellLinkImpl *)ppsp->lParam; - SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)This); - - TRACE("sArgs: %S sComponent: %S sDescription: %S sIcoPath: %S sPath: %S sPathRel: %S sProduct: %S sWorkDir: %S\n", This->sArgs, This->sComponent ,This->sDescription, - This->sIcoPath, This->sPath, This->sPathRel, This->sProduct, This->sWorkDir); - - /* target path */ - hDlgCtrl = GetDlgItem( hwndDlg, 14009 ); - if ( hDlgCtrl != NULL ) - SendMessageW( hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)This->sPath ); - - /* working dir */ - hDlgCtrl = GetDlgItem( hwndDlg, 14011 ); - if ( hDlgCtrl != NULL ) - SendMessageW( hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)This->sWorkDir ); - - /* description */ - hDlgCtrl = GetDlgItem( hwndDlg, 14019 ); - if ( hDlgCtrl != NULL ) - SendMessageW( hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)This->sDescription ); - return TRUE; - case WM_NOTIFY: - lppsn = (LPPSHNOTIFY) lParam; - if ( lppsn->hdr.code == PSN_APPLY ) - { - /* set working directory */ - hDlgCtrl = GetDlgItem( hwndDlg, 14011 ); - SendMessageW( hDlgCtrl, WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)szBuffer ); - IShellLinkW_fnSetWorkingDirectory((IShellLinkW*)&This->lpvtblw, szBuffer); - /* set link destination */ - hDlgCtrl = GetDlgItem( hwndDlg, 14009 ); - SendMessageW( hDlgCtrl, WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)szBuffer); - if ( !SHELL_ExistsFileW(szBuffer) ) - { - //FIXME load localized error msg - MessageBoxW( hwndDlg, L"file not existing", szBuffer, MB_OK ); - SetWindowLongPtr( hwndDlg, DWL_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE ); - return TRUE; - } - ptr = wcsrchr(szBuffer, L'.'); - if (ptr && !_wcsnicmp(ptr, L".lnk", 4)) - { - // FIXME load localized error msg - MessageBoxW( hwndDlg, L"You cannot create a link to a shortcut", L"Error", MB_ICONERROR ); - SetWindowLongPtr( hwndDlg, DWL_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE ); - return TRUE; - } - - IShellLinkW_fnSetPath((IShellLinkW*)&This->lpvtblw, szBuffer); - - TRACE("This %p sLinkPath %S\n", This, This->sLinkPath); - IPersistFile_fnSave( (IPersistFile*)&This->lpvtblPersistFile, This->sLinkPath, TRUE ); - SetWindowLongPtr( hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR ); - return TRUE; - } - break; - case WM_COMMAND: - switch(LOWORD(wParam)) - { - case 14020: - /// - /// FIXME - /// open target directory - /// - return TRUE; - case 14021: - if (This->sIcoPath) - wcscpy(szBuffer, This->sIcoPath); - else - wcscpy(szBuffer, This->sPath); - - IconIndex = This->iIcoNdx; - if (PickIconDlg(hwndDlg, szBuffer, MAX_PATH, &IconIndex)) - { - IShellLinkW_fnSetIconLocation((IShellLinkW*)&This->lpvtblw, szBuffer, IconIndex); - /// - /// FIXME redraw icon - } - return TRUE; - case 14022: - result = DialogBoxParamW(shell32_hInstance, MAKEINTRESOURCEW(SHELL_EXTENDED_SHORTCUT_DLG), hwndDlg, ExtendedShortcutProc, (LPARAM)This->bRunAs); - if (result == 1 || result == 0) - { - if ( This->bRunAs != result ) - { - PropSheet_Changed(GetParent(hwndDlg), hwndDlg); - } - - This->bRunAs = result; - } - return TRUE; - } - switch(HIWORD(wParam)) - { - case EN_CHANGE: - PropSheet_Changed(GetParent(hwndDlg), hwndDlg); - break; - } - break; - default: - break; - } - return FALSE; -} - -/************************************************************************** - * ShellLink_IShellPropSheetExt interface - */ - -static HRESULT WINAPI - ShellLink_IShellPropSheetExt_QueryInterface( IShellPropSheetExt* iface, REFIID riid, void** ppvObject ) -{ - IShellLinkImpl *This = impl_from_IShellPropSheetExt(iface); - return ShellLink_QueryInterface( This, riid, ppvObject ); -} - -static ULONG WINAPI - ShellLink_IShellPropSheetExt_AddRef( IShellPropSheetExt* iface ) -{ - IShellLinkImpl *This = impl_from_IShellPropSheetExt(iface); - return ShellLink_AddRef( This ); -} - -static ULONG WINAPI - ShellLink_IShellPropSheetExt_Release( IShellPropSheetExt* iface ) -{ - IShellLinkImpl *This = impl_from_IShellPropSheetExt(iface); - return ShellLink_Release( This ); -} - -static HRESULT WINAPI - ShellLink_IShellPropSheetExt_AddPages( IShellPropSheetExt *iface, LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam) -{ - HPROPSHEETPAGE hPage; - BOOL bRet; - IShellLinkImpl *This = impl_from_IShellPropSheetExt(iface); - - hPage = SH_CreatePropertySheetPage("SHELL_GENERAL_SHORTCUT_DLG", SH_ShellLinkDlgProc, (LPARAM)This, NULL); - if (hPage == NULL) - { - ERR("failed to create property sheet page\n"); - return E_FAIL; - } - - bRet = pfnAddPage(hPage, lParam); - if (bRet) - return S_OK; - else - return E_FAIL; -} - -static HRESULT WINAPI - ShellLink_IShellPropSheetExt_ReplacePages( IShellPropSheetExt *iface, UINT uPageID, LPFNADDPROPSHEETPAGE pfnReplacePage, LPARAM lParam) -{ - IShellLinkImpl *This = impl_from_IShellPropSheetExt(iface); - TRACE("(%p) (uPageID %u, pfnReplacePage %p lParam %p\n", This, uPageID, pfnReplacePage, lParam); - return E_NOTIMPL; -} - -static const IShellPropSheetExtVtbl pse = -{ - ShellLink_IShellPropSheetExt_QueryInterface, - ShellLink_IShellPropSheetExt_AddRef, - ShellLink_IShellPropSheetExt_Release, - ShellLink_IShellPropSheetExt_AddPages, - ShellLink_IShellPropSheetExt_ReplacePages -}; - -static HRESULT WINAPI -ShellLink_InvokeCommand( IContextMenu* iface, LPCMINVOKECOMMANDINFO lpici ) -{ - IShellLinkImpl *This = impl_from_IContextMenu(iface); - static const WCHAR szOpen[] = { 'o','p','e','n',0 }; - static const WCHAR szCplOpen[] = { 'c','p','l','o','p','e','n',0 }; - SHELLEXECUTEINFOW sei; - HWND hwnd = NULL; /* FIXME: get using interface set from IObjectWithSite */ - LPWSTR args = NULL; - LPWSTR path = NULL; - HRESULT r; - - TRACE("%p %p\n", This, lpici ); - - if ( lpici->cbSize < sizeof (CMINVOKECOMMANDINFO) ) - return E_INVALIDARG; - - r = IShellLinkW_Resolve( (IShellLinkW*)&(This->lpvtblw), hwnd, 0 ); - if ( FAILED( r ) ) - { - TRACE("failed to resolve component with error 0x%08x", r); - return r; - } - if ( This->sComponent ) - { - path = shelllink_get_msi_component_path( This->sComponent ); - if (!path) - return E_FAIL; - } - else - path = strdupW( This->sPath ); - - if ( lpici->cbSize == sizeof (CMINVOKECOMMANDINFOEX) && - ( lpici->fMask & CMIC_MASK_UNICODE ) ) - { - LPCMINVOKECOMMANDINFOEX iciex = (LPCMINVOKECOMMANDINFOEX) lpici; - DWORD len = 2; - - if ( This->sArgs ) - len += wcslen( This->sArgs ); - if ( iciex->lpParametersW ) - len += wcslen( iciex->lpParametersW ); - - args = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) ); - args[0] = 0; - if ( This->sArgs ) - wcscat( args, This->sArgs ); - if ( iciex->lpParametersW ) - { - static const WCHAR space[] = { ' ', 0 }; - wcscat( args, space ); - wcscat( args, iciex->lpParametersW ); - } - } - else if (This->sArgs != NULL) - { - args = strdupW( This->sArgs ); - } - - memset( &sei, 0, sizeof sei ); - sei.cbSize = sizeof sei; - sei.fMask = SEE_MASK_UNICODE | (lpici->fMask & (SEE_MASK_NOASYNC|SEE_MASK_ASYNCOK|SEE_MASK_FLAG_NO_UI)); - sei.lpFile = path; - sei.nShow = This->iShowCmd; - sei.lpDirectory = This->sWorkDir; - sei.lpParameters = args; - sei.lpVerb = szOpen; - - // HACK for ShellExecuteExW - if (!wcsstr(This->sPath, L".cpl")) - sei.lpVerb = szOpen; - else - sei.lpVerb = szCplOpen; - - if( ShellExecuteExW( &sei ) ) - r = S_OK; - else - r = E_FAIL; - - HeapFree( GetProcessHeap(), 0, args ); - HeapFree( GetProcessHeap(), 0, path ); - - return r; -} - -static HRESULT WINAPI -ShellLink_GetCommandString( IContextMenu* iface, UINT_PTR idCmd, UINT uType, - UINT* pwReserved, LPSTR pszName, UINT cchMax ) -{ - IShellLinkImpl *This = impl_from_IContextMenu(iface); - - FIXME("%p %lu %u %p %p %u\n", This, - idCmd, uType, pwReserved, pszName, cchMax ); - - return E_NOTIMPL; -} - -static const IContextMenuVtbl cmvt = -{ - ShellLink_ContextMenu_QueryInterface, - ShellLink_ContextMenu_AddRef, - ShellLink_ContextMenu_Release, - ShellLink_QueryContextMenu, - ShellLink_InvokeCommand, - ShellLink_GetCommandString -}; - -static HRESULT WINAPI -ShellLink_ObjectWithSite_QueryInterface( IObjectWithSite* iface, REFIID riid, void** ppvObject ) -{ - IShellLinkImpl *This = impl_from_IObjectWithSite(iface); - return ShellLink_QueryInterface( This, riid, ppvObject ); -} - -static ULONG WINAPI -ShellLink_ObjectWithSite_AddRef( IObjectWithSite* iface ) -{ - IShellLinkImpl *This = impl_from_IObjectWithSite(iface); - return ShellLink_AddRef( This ); -} - -static ULONG WINAPI -ShellLink_ObjectWithSite_Release( IObjectWithSite* iface ) -{ - IShellLinkImpl *This = impl_from_IObjectWithSite(iface); - return ShellLink_Release( This ); -} - -static HRESULT WINAPI -ShellLink_GetSite( IObjectWithSite *iface, REFIID iid, void ** ppvSite ) -{ - IShellLinkImpl *This = impl_from_IObjectWithSite(iface); - - TRACE("%p %s %p\n", This, debugstr_guid( iid ), ppvSite ); - - if ( !This->site ) - return E_FAIL; - return IUnknown_QueryInterface( This->site, iid, ppvSite ); -} - -static HRESULT WINAPI -ShellLink_SetSite( IObjectWithSite *iface, IUnknown *punk ) -{ - IShellLinkImpl *This = impl_from_IObjectWithSite(iface); - - TRACE("%p %p\n", iface, punk); - - if ( punk ) - IUnknown_AddRef( punk ); - This->site = punk; - - return S_OK; -} - -static const IObjectWithSiteVtbl owsvt = -{ - ShellLink_ObjectWithSite_QueryInterface, - ShellLink_ObjectWithSite_AddRef, - ShellLink_ObjectWithSite_Release, - ShellLink_SetSite, - ShellLink_GetSite, -}; diff --git a/reactos/dll/win32/shell32/shellole.c b/reactos/dll/win32/shell32/shellole.c deleted file mode 100644 index 37a3334d310..00000000000 --- a/reactos/dll/win32/shell32/shellole.c +++ /dev/null @@ -1,673 +0,0 @@ -/* - * handling of SHELL32.DLL OLE-Objects - * - * Copyright 1997 Marcus Meissner - * Copyright 1998 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -extern HRESULT WINAPI IFSFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv); - -static const WCHAR sShell32[12] = {'S','H','E','L','L','3','2','.','D','L','L','\0'}; -static const GUID dummy1 = {0xD969A300, 0xE7FF, 0x11d0, {0xA9, 0x3B, 0x00, 0xA0, 0xC9, 0x0F, 0x27, 0x19} }; - -/************************************************************************** - * Default ClassFactory types - */ -typedef HRESULT (CALLBACK *LPFNCREATEINSTANCE)(IUnknown* pUnkOuter, REFIID riid, LPVOID* ppvObject); -static IClassFactory * IDefClF_fnConstructor(LPFNCREATEINSTANCE lpfnCI, PLONG pcRefDll, REFIID riidInst); - -/* this table contains all CLSID's of shell32 objects */ -static const struct { - REFIID riid; - LPFNCREATEINSTANCE lpfnCI; -} InterfaceTable[] = { - {&CLSID_ShellFSFolder, &IFSFolder_Constructor}, - {&CLSID_MyComputer, &ISF_MyComputer_Constructor}, - {&CLSID_NetworkPlaces, &ISF_NetworkPlaces_Constructor}, - {&CLSID_ShellDesktop, &ISF_Desktop_Constructor}, - {&CLSID_ShellItem, &IShellItem_Constructor}, - {&CLSID_ShellLink, &IShellLink_Constructor}, - {&CLSID_DragDropHelper, &IDropTargetHelper_Constructor}, - {&CLSID_ControlPanel, &IControlPanel_Constructor}, - {&CLSID_AutoComplete, &IAutoComplete_Constructor}, -#if 0 - {&CLSID_UnixFolder, &UnixFolder_Constructor}, - {&CLSID_UnixDosFolder, &UnixDosFolder_Constructor}, - {&CLSID_FolderShortcut, &FolderShortcut_Constructor}, -#endif - {&CLSID_MyDocuments, &ISF_MyDocuments_Constructor}, - {&CLSID_FontsFolderShortcut, &ISF_Fonts_Constructor}, - {&CLSID_Printers, &ISF_Printers_Constructor}, - {&CLSID_AdminFolderShortcut, &ISF_AdminTools_Constructor}, - {&CLSID_RecycleBin, &RecycleBin_Constructor}, - {&CLSID_OpenWith, &SHEOW_Constructor}, - {&dummy1, &INewItem_Constructor}, - {&CLSID_StartMenu, &StartMenu_Constructor}, - {&CLSID_MenuBandSite, &MenuBandSite_Constructor}, - {NULL,NULL} -}; - - -/* FIXME: this should be SHLWAPI.24 since we can't yet import by ordinal */ - -DWORD WINAPI __SHGUIDToStringW (REFGUID guid, LPWSTR str) -{ - WCHAR sFormat[52] = {'{','%','0','8','l','x','-','%','0','4', - 'x','-','%','0','4','x','-','%','0','2', - 'x','%','0','2','x','-','%','0','2','x', - '%','0','2','x','%','0','2','x','%','0', - '2','x','%','0','2','x','%','0','2','x', - '}','\0'}; - - return swprintf ( str, sFormat, - guid->Data1, guid->Data2, guid->Data3, - guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3], - guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7] ); - -} - -/************************************************************************* - * SHCoCreateInstance [SHELL32.102] - * - * Equivalent to CoCreateInstance. Under Windows 9x this function could sometimes - * use the shell32 built-in "mini-COM" without the need to load ole32.dll - see - * SHLoadOLE for details. - * - * Under wine if a "LoadWithoutCOM" value is present or the object resides in - * shell32.dll the function will load the object manually without the help of ole32 - * - * NOTES - * exported by ordinal - * - * SEE ALSO - * CoCreateInstace, SHLoadOLE - */ -HRESULT WINAPI SHCoCreateInstance( - LPCWSTR aclsid, - const CLSID *clsid, - LPUNKNOWN pUnkOuter, - REFIID refiid, - LPVOID *ppv) -{ - DWORD hres; - CLSID iid; - const CLSID * myclsid = clsid; - WCHAR sKeyName[MAX_PATH]; - const WCHAR sCLSID[7] = {'C','L','S','I','D','\\','\0'}; - WCHAR sClassID[60]; - const WCHAR sInProcServer32[16] ={'\\','I','n','p','r','o','c','S','e','r','v','e','r','3','2','\0'}; - const WCHAR sLoadWithoutCOM[15] ={'L','o','a','d','W','i','t','h','o','u','t','C','O','M','\0'}; - WCHAR sDllPath[MAX_PATH]; - HKEY hKey; - DWORD dwSize; - BOOLEAN bLoadFromShell32 = FALSE; - BOOLEAN bLoadWithoutCOM = FALSE; - IClassFactory * pcf = NULL; - - if(!ppv) return E_POINTER; - *ppv=NULL; - - /* if the clsid is a string, convert it */ - if (!clsid) - { - if (!aclsid) return REGDB_E_CLASSNOTREG; - CLSIDFromString((LPOLESTR)aclsid, &iid); - myclsid = &iid; - } - - TRACE("(%p,%s,unk:%p,%s,%p)\n", - aclsid,shdebugstr_guid(myclsid),pUnkOuter,shdebugstr_guid(refiid),ppv); - - /* we look up the dll path in the registry */ - __SHGUIDToStringW(myclsid, sClassID); - wcscpy(sKeyName, sCLSID); - wcscat(sKeyName, sClassID); - wcscat(sKeyName, sInProcServer32); - - if (ERROR_SUCCESS == RegOpenKeyExW(HKEY_CLASSES_ROOT, sKeyName, 0, KEY_READ, &hKey)) { - dwSize = sizeof(sDllPath); - SHQueryValueExW(hKey, NULL, 0,0, sDllPath, &dwSize ); - - /* if a special registry key is set, we load a shell extension without help of OLE32 */ - bLoadWithoutCOM = (ERROR_SUCCESS == SHQueryValueExW(hKey, sLoadWithoutCOM, 0, 0, 0, 0)); - - /* if the com object is inside shell32, omit use of ole32 */ - bLoadFromShell32 = (0==lstrcmpiW( PathFindFileNameW(sDllPath), sShell32)); - - RegCloseKey (hKey); - } else { - /* since we can't find it in the registry we try internally */ - bLoadFromShell32 = TRUE; - } - - TRACE("WithoutCom=%u FromShell=%u\n", bLoadWithoutCOM, bLoadFromShell32); - - /* now we create an instance */ - if (bLoadFromShell32) { - if (! SUCCEEDED(DllGetClassObject(myclsid, &IID_IClassFactory,(LPVOID*)&pcf))) { - ERR("LoadFromShell failed for CLSID=%s\n", shdebugstr_guid(myclsid)); - } - } else if (bLoadWithoutCOM) { - - /* load an external dll without ole32 */ - HANDLE hLibrary; - typedef HRESULT (CALLBACK *DllGetClassObjectFunc)(REFCLSID clsid, REFIID iid, LPVOID *ppv); - DllGetClassObjectFunc DllGetClassObject; - - if ((hLibrary = LoadLibraryExW(sDllPath, 0, LOAD_WITH_ALTERED_SEARCH_PATH)) == 0) { - ERR("couldn't load InprocServer32 dll %s\n", debugstr_w(sDllPath)); - hres = E_ACCESSDENIED; - goto end; - } else if (!(DllGetClassObject = (DllGetClassObjectFunc)GetProcAddress(hLibrary, "DllGetClassObject"))) { - ERR("couldn't find function DllGetClassObject in %s\n", debugstr_w(sDllPath)); - FreeLibrary( hLibrary ); - hres = E_ACCESSDENIED; - goto end; - } else if (FAILED(hres = DllGetClassObject(myclsid, &IID_IClassFactory, (LPVOID*)&pcf))) { - TRACE("GetClassObject failed 0x%08x\n", hres); - goto end; - } - - } else { - - /* load an external dll in the usual way */ - hres = CoCreateInstance(myclsid, pUnkOuter, CLSCTX_INPROC_SERVER, refiid, ppv); - goto end; - } - - /* here we should have a ClassFactory */ - if (!pcf) return E_ACCESSDENIED; - - hres = IClassFactory_CreateInstance(pcf, pUnkOuter, refiid, ppv); - IClassFactory_Release(pcf); -end: - if(hres!=S_OK) - { - ERR("failed (0x%08x) to create CLSID:%s IID:%s\n", - hres, shdebugstr_guid(myclsid), shdebugstr_guid(refiid)); - ERR("class not found in registry\n"); - } - - TRACE("-- instance: %p\n",*ppv); - return hres; -} - -/************************************************************************* - * DllGetClassObject [SHELL32.@] - * SHDllGetClassObject [SHELL32.128] - */ -HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv) -{ - HRESULT hres = E_OUTOFMEMORY; - IClassFactory * pcf = NULL; - int i; - - TRACE("CLSID:%s,IID:%s\n",shdebugstr_guid(rclsid),shdebugstr_guid(iid)); - - if (!ppv) return E_INVALIDARG; - *ppv = NULL; - - /* search our internal interface table */ - for(i=0;InterfaceTable[i].riid;i++) { - if(IsEqualIID(InterfaceTable[i].riid, rclsid)) { - TRACE("index[%u]\n", i); - pcf = IDefClF_fnConstructor(InterfaceTable[i].lpfnCI, NULL, NULL); - } - } - - if (!pcf) { - FIXME("failed for CLSID=%s\n", shdebugstr_guid(rclsid)); - return CLASS_E_CLASSNOTAVAILABLE; - } - - hres = IClassFactory_QueryInterface(pcf, iid, ppv); - IClassFactory_Release(pcf); - - TRACE("-- pointer to class factory: %p\n",*ppv); - return hres; -} - -/************************************************************************* - * SHCLSIDFromString [SHELL32.147] - * - * Under Windows 9x this was an ANSI version of CLSIDFromString. It also allowed - * to avoid dependency on ole32.dll (see SHLoadOLE for details). - * - * Under Windows NT/2000/XP this is equivalent to CLSIDFromString - * - * NOTES - * exported by ordinal - * - * SEE ALSO - * CLSIDFromString, SHLoadOLE - */ -DWORD WINAPI SHCLSIDFromStringA (LPCSTR clsid, CLSID *id) -{ - WCHAR buffer[40]; - TRACE("(%p(%s) %p)\n", clsid, clsid, id); - if (!MultiByteToWideChar( CP_ACP, 0, clsid, -1, buffer, sizeof(buffer)/sizeof(WCHAR) )) - return CO_E_CLASSSTRING; - return CLSIDFromString( buffer, id ); -} -DWORD WINAPI SHCLSIDFromStringW (LPCWSTR clsid, CLSID *id) -{ - TRACE("(%p(%s) %p)\n", clsid, debugstr_w(clsid), id); - return CLSIDFromString((LPWSTR)clsid, id); -} -DWORD WINAPI SHCLSIDFromStringAW (LPCVOID clsid, CLSID *id) -{ - if (SHELL_OsIsUnicode()) - return SHCLSIDFromStringW (clsid, id); - return SHCLSIDFromStringA (clsid, id); -} - -/************************************************************************* - * SHGetMalloc [SHELL32.@] - * - * Equivalent to CoGetMalloc(MEMCTX_TASK, ...). Under Windows 9x this function - * could use the shell32 built-in "mini-COM" without the need to load ole32.dll - - * see SHLoadOLE for details. - * - * PARAMS - * lpmal [O] Destination for IMalloc interface. - * - * RETURNS - * Success: S_OK. lpmal contains the shells IMalloc interface. - * Failure. An HRESULT error code. - * - * SEE ALSO - * CoGetMalloc, SHLoadOLE - */ -HRESULT WINAPI SHGetMalloc(LPMALLOC *lpmal) -{ - TRACE("(%p)\n", lpmal); - return CoGetMalloc(MEMCTX_TASK, lpmal); -} - -/************************************************************************* - * SHAlloc [SHELL32.196] - * - * Equivalent to CoTaskMemAlloc. Under Windows 9x this function could use - * the shell32 built-in "mini-COM" without the need to load ole32.dll - - * see SHLoadOLE for details. - * - * NOTES - * exported by ordinal - * - * SEE ALSO - * CoTaskMemAlloc, SHLoadOLE - */ -LPVOID WINAPI SHAlloc(DWORD len) -{ - LPVOID ret; - - ret = CoTaskMemAlloc(len); - TRACE("%u bytes at %p\n",len, ret); - return ret; -} - -/************************************************************************* - * SHFree [SHELL32.195] - * - * Equivalent to CoTaskMemFree. Under Windows 9x this function could use - * the shell32 built-in "mini-COM" without the need to load ole32.dll - - * see SHLoadOLE for details. - * - * NOTES - * exported by ordinal - * - * SEE ALSO - * CoTaskMemFree, SHLoadOLE - */ -void WINAPI SHFree(LPVOID pv) -{ - TRACE("%p\n",pv); - CoTaskMemFree(pv); -} - -/************************************************************************* - * SHGetDesktopFolder [SHELL32.@] - */ -HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf) -{ - HRESULT hres = S_OK; - TRACE("\n"); - - if(!psf) return E_INVALIDARG; - *psf = NULL; - hres = ISF_Desktop_Constructor(NULL, &IID_IShellFolder,(LPVOID*)psf); - - TRACE("-- %p->(%p)\n",psf, *psf); - return hres; -} -/************************************************************************** - * Default ClassFactory Implementation - * - * SHCreateDefClassObject - * - * NOTES - * Helper function for dlls without their own classfactory. - * A generic classfactory is returned. - * When the CreateInstance of the cf is called the callback is executed. - */ - -typedef struct -{ - const IClassFactoryVtbl *lpVtbl; - LONG ref; - CLSID *rclsid; - LPFNCREATEINSTANCE lpfnCI; - const IID * riidInst; - LONG * pcRefDll; /* pointer to refcounter in external dll (ugrrr...) */ -} IDefClFImpl; - -static const IClassFactoryVtbl dclfvt; - -/************************************************************************** - * IDefClF_fnConstructor - */ - -static IClassFactory * IDefClF_fnConstructor(LPFNCREATEINSTANCE lpfnCI, PLONG pcRefDll, REFIID riidInst) -{ - IDefClFImpl* lpclf; - - lpclf = HeapAlloc(GetProcessHeap(),0,sizeof(IDefClFImpl)); - lpclf->ref = 1; - lpclf->lpVtbl = &dclfvt; - lpclf->lpfnCI = lpfnCI; - lpclf->pcRefDll = pcRefDll; - - if (pcRefDll) InterlockedIncrement(pcRefDll); - lpclf->riidInst = riidInst; - - TRACE("(%p)%s\n",lpclf, shdebugstr_guid(riidInst)); - return (LPCLASSFACTORY)lpclf; -} -/************************************************************************** - * IDefClF_fnQueryInterface - */ -static HRESULT WINAPI IDefClF_fnQueryInterface( - LPCLASSFACTORY iface, REFIID riid, LPVOID *ppvObj) -{ - IDefClFImpl *This = (IDefClFImpl *)iface; - - TRACE("(%p)->(%s)\n",This,shdebugstr_guid(riid)); - - *ppvObj = NULL; - - if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IClassFactory)) { - *ppvObj = This; - InterlockedIncrement(&This->ref); - return S_OK; - } - - TRACE("-- E_NOINTERFACE\n"); - return E_NOINTERFACE; -} -/****************************************************************************** - * IDefClF_fnAddRef - */ -static ULONG WINAPI IDefClF_fnAddRef(LPCLASSFACTORY iface) -{ - IDefClFImpl *This = (IDefClFImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} -/****************************************************************************** - * IDefClF_fnRelease - */ -static ULONG WINAPI IDefClF_fnRelease(LPCLASSFACTORY iface) -{ - IDefClFImpl *This = (IDefClFImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount + 1); - - if (!refCount) - { - if (This->pcRefDll) InterlockedDecrement(This->pcRefDll); - - TRACE("-- destroying IClassFactory(%p)\n",This); - HeapFree(GetProcessHeap(),0,This); - return 0; - } - return refCount; -} -/****************************************************************************** - * IDefClF_fnCreateInstance - */ -static HRESULT WINAPI IDefClF_fnCreateInstance( - LPCLASSFACTORY iface, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObject) -{ - IDefClFImpl *This = (IDefClFImpl *)iface; - - TRACE("%p->(%p,%s,%p)\n",This,pUnkOuter,shdebugstr_guid(riid),ppvObject); - - *ppvObject = NULL; - - if ( This->riidInst==NULL || - IsEqualCLSID(riid, This->riidInst) || - IsEqualCLSID(riid, &IID_IUnknown) ) - { - return This->lpfnCI(pUnkOuter, riid, ppvObject); - } - - ERR("unknown IID requested %s\n",shdebugstr_guid(riid)); - return E_NOINTERFACE; -} -/****************************************************************************** - * IDefClF_fnLockServer - */ -static HRESULT WINAPI IDefClF_fnLockServer(LPCLASSFACTORY iface, BOOL fLock) -{ - IDefClFImpl *This = (IDefClFImpl *)iface; - TRACE("%p->(0x%x), not implemented\n",This, fLock); - return E_NOTIMPL; -} - -static const IClassFactoryVtbl dclfvt = -{ - IDefClF_fnQueryInterface, - IDefClF_fnAddRef, - IDefClF_fnRelease, - IDefClF_fnCreateInstance, - IDefClF_fnLockServer -}; - -/****************************************************************************** - * SHCreateDefClassObject [SHELL32.70] - */ -HRESULT WINAPI SHCreateDefClassObject( - REFIID riid, - LPVOID* ppv, - LPFNCREATEINSTANCE lpfnCI, /* [in] create instance callback entry */ - LPDWORD pcRefDll, /* [in/out] ref count of the dll */ - REFIID riidInst) /* [in] optional interface to the instance */ -{ - IClassFactory * pcf; - - TRACE("%s %p %p %p %s\n", - shdebugstr_guid(riid), ppv, lpfnCI, pcRefDll, shdebugstr_guid(riidInst)); - - if (! IsEqualCLSID(riid, &IID_IClassFactory) ) return E_NOINTERFACE; - if (! (pcf = IDefClF_fnConstructor(lpfnCI, (PLONG)pcRefDll, riidInst))) return E_OUTOFMEMORY; - *ppv = pcf; - return NOERROR; -} - -/************************************************************************* - * DragAcceptFiles [SHELL32.@] - */ -void WINAPI DragAcceptFiles(HWND hWnd, BOOL b) -{ - LONG exstyle; - - if( !IsWindow(hWnd) ) return; - exstyle = GetWindowLongPtrA(hWnd,GWL_EXSTYLE); - if (b) - exstyle |= WS_EX_ACCEPTFILES; - else - exstyle &= ~WS_EX_ACCEPTFILES; - SetWindowLongPtrA(hWnd,GWL_EXSTYLE,exstyle); -} - -/************************************************************************* - * DragFinish [SHELL32.@] - */ -void WINAPI DragFinish(HDROP h) -{ - TRACE("\n"); - GlobalFree(h); -} - -/************************************************************************* - * DragQueryPoint [SHELL32.@] - */ -BOOL WINAPI DragQueryPoint(HDROP hDrop, POINT *p) -{ - DROPFILES *lpDropFileStruct; - BOOL bRet; - - TRACE("\n"); - - lpDropFileStruct = GlobalLock(hDrop); - - *p = lpDropFileStruct->pt; - bRet = lpDropFileStruct->fNC; - - GlobalUnlock(hDrop); - return bRet; -} - -/************************************************************************* - * DragQueryFileA [SHELL32.@] - * DragQueryFile [SHELL32.@] - */ -UINT WINAPI DragQueryFileA( - HDROP hDrop, - UINT lFile, - LPSTR lpszFile, - UINT lLength) -{ - LPSTR lpDrop; - UINT i = 0; - DROPFILES *lpDropFileStruct = GlobalLock(hDrop); - - TRACE("(%p, %x, %p, %u)\n", hDrop,lFile,lpszFile,lLength); - - if(!lpDropFileStruct) goto end; - - lpDrop = (LPSTR) lpDropFileStruct + lpDropFileStruct->pFiles; - - if(lpDropFileStruct->fWide) { - LPWSTR lpszFileW = NULL; - - if(lpszFile) { - lpszFileW = HeapAlloc(GetProcessHeap(), 0, lLength*sizeof(WCHAR)); - if(lpszFileW == NULL) { - goto end; - } - } - i = DragQueryFileW(hDrop, lFile, lpszFileW, lLength); - - if(lpszFileW) { - WideCharToMultiByte(CP_ACP, 0, lpszFileW, -1, lpszFile, lLength, 0, NULL); - HeapFree(GetProcessHeap(), 0, lpszFileW); - } - goto end; - } - - while (i++ < lFile) - { - while (*lpDrop++); /* skip filename */ - if (!*lpDrop) - { - i = (lFile == 0xFFFFFFFF) ? i : 0; - goto end; - } - } - - i = strlen(lpDrop); - if (!lpszFile ) goto end; /* needed buffer size */ - lstrcpynA (lpszFile, lpDrop, lLength); -end: - GlobalUnlock(hDrop); - return i; -} - -/************************************************************************* - * DragQueryFileW [SHELL32.@] - */ -UINT WINAPI DragQueryFileW( - HDROP hDrop, - UINT lFile, - LPWSTR lpszwFile, - UINT lLength) -{ - LPWSTR lpwDrop; - UINT i = 0; - DROPFILES *lpDropFileStruct = GlobalLock(hDrop); - - TRACE("(%p, %x, %p, %u)\n", hDrop,lFile,lpszwFile,lLength); - - if(!lpDropFileStruct) goto end; - - lpwDrop = (LPWSTR) ((LPSTR)lpDropFileStruct + lpDropFileStruct->pFiles); - - if(lpDropFileStruct->fWide == FALSE) { - LPSTR lpszFileA = NULL; - - if(lpszwFile) { - lpszFileA = HeapAlloc(GetProcessHeap(), 0, lLength); - if(lpszFileA == NULL) { - goto end; - } - } - i = DragQueryFileA(hDrop, lFile, lpszFileA, lLength); - - if(lpszFileA) { - MultiByteToWideChar(CP_ACP, 0, lpszFileA, -1, lpszwFile, lLength); - HeapFree(GetProcessHeap(), 0, lpszFileA); - } - goto end; - } - - i = 0; - while (i++ < lFile) - { - while (*lpwDrop++); /* skip filename */ - if (!*lpwDrop) - { - i = (lFile == 0xFFFFFFFF) ? i : 0; - goto end; - } - } - - i = wcslen(lpwDrop); - if ( !lpszwFile) goto end; /* needed buffer size */ - lstrcpynW (lpszwFile, lpwDrop, lLength); -end: - GlobalUnlock(hDrop); - return i; -} diff --git a/reactos/dll/win32/shell32/shellord.c b/reactos/dll/win32/shell32/shellord.c deleted file mode 100644 index b1f5aed4dba..00000000000 --- a/reactos/dll/win32/shell32/shellord.c +++ /dev/null @@ -1,2323 +0,0 @@ -/* - * The parameters of many functions changes between different OS versions - * (NT uses Unicode strings, 95 uses ASCII strings) - * - * Copyright 1997 Marcus Meissner - * 1998 Jürgen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ -#include "config.h" - -#include -#include -#include - -#define COBJMACROS - -#include "winerror.h" -#include "windef.h" -#include "winbase.h" -#include "winreg.h" -#include "wine/debug.h" -#include "winnls.h" -#include "winternl.h" - -#include "shellapi.h" -#include "objbase.h" -#include "shlguid.h" -#include "wingdi.h" -#include "winuser.h" -#include "shlobj.h" -#include "shell32_main.h" -#include "undocshell.h" -#include "pidl.h" -#include "shlwapi.h" -#include "commdlg.h" -#include "recyclebin.h" -#include "commoncontrols.h" - -WINE_DEFAULT_DEBUG_CHANNEL(shell); -WINE_DECLARE_DEBUG_CHANNEL(pidl); - -/* FIXME: !!! move CREATEMRULIST and flags to header file !!! */ -/* !!! it is in both here and comctl32undoc.c !!! */ -typedef struct tagCREATEMRULIST -{ - DWORD cbSize; /* size of struct */ - DWORD nMaxItems; /* max no. of items in list */ - DWORD dwFlags; /* see below */ - HKEY hKey; /* root reg. key under which list is saved */ - LPCSTR lpszSubKey; /* reg. subkey */ - PROC lpfnCompare; /* item compare proc */ -} CREATEMRULISTA, *LPCREATEMRULISTA; - -/* dwFlags */ -#define MRUF_STRING_LIST 0 /* list will contain strings */ -#define MRUF_BINARY_LIST 1 /* list will contain binary data */ -#define MRUF_DELAYED_SAVE 2 /* only save list order to reg. is FreeMRUList */ - -extern HANDLE WINAPI CreateMRUListA(LPCREATEMRULISTA lpcml); -extern DWORD WINAPI FreeMRUList(HANDLE hMRUList); -extern INT WINAPI AddMRUData(HANDLE hList, LPCVOID lpData, DWORD cbData); -extern INT WINAPI FindMRUData(HANDLE hList, LPCVOID lpData, DWORD cbData, LPINT lpRegNum); -extern INT WINAPI EnumMRUListA(HANDLE hList, INT nItemPos, LPVOID lpBuffer, DWORD nBufferSize); - - -/* Get a function pointer from a DLL handle */ -#define GET_FUNC(func, module, name, fail) \ - do { \ - if (!func) { \ - if (!SHELL32_h##module && !(SHELL32_h##module = LoadLibraryA(#module ".dll"))) return fail; \ - func = (void*)GetProcAddress(SHELL32_h##module, name); \ - if (!func) return fail; \ - } \ - } while (0) - -/* Function pointers for GET_FUNC macro */ -static HMODULE SHELL32_hshlwapi=NULL; -static HANDLE (WINAPI *pSHAllocShared)(LPCVOID,DWORD,DWORD); -static LPVOID (WINAPI *pSHLockShared)(HANDLE,DWORD); -static BOOL (WINAPI *pSHUnlockShared)(LPVOID); -static BOOL (WINAPI *pSHFreeShared)(HANDLE,DWORD); - - -/************************************************************************* - * ParseFieldA [internal] - * - * copies a field from a ',' delimited string - * - * first field is nField = 1 - */ -DWORD WINAPI ParseFieldA( - LPCSTR src, - DWORD nField, - LPSTR dst, - DWORD len) -{ - WARN("(%s,0x%08x,%p,%d) semi-stub.\n",debugstr_a(src),nField,dst,len); - - if (!src || !src[0] || !dst || !len) - return 0; - - /* skip n fields delimited by ',' */ - while (nField > 1) - { - if (*src=='\0') return FALSE; - if (*(src++)==',') nField--; - } - - /* copy part till the next ',' to dst */ - while ( *src!='\0' && *src!=',' && (len--)>0 ) *(dst++)=*(src++); - - /* finalize the string */ - *dst=0x0; - - return TRUE; -} - -/************************************************************************* - * ParseFieldW [internal] - * - * copies a field from a ',' delimited string - * - * first field is nField = 1 - */ -DWORD WINAPI ParseFieldW(LPCWSTR src, DWORD nField, LPWSTR dst, DWORD len) -{ - WARN("(%s,0x%08x,%p,%d) semi-stub.\n", debugstr_w(src), nField, dst, len); - - if (!src || !src[0] || !dst || !len) - return 0; - - /* skip n fields delimited by ',' */ - while (nField > 1) - { - if (*src == 0x0) return FALSE; - if (*src++ == ',') nField--; - } - - /* copy part till the next ',' to dst */ - while ( *src != 0x0 && *src != ',' && (len--)>0 ) *(dst++) = *(src++); - - /* finalize the string */ - *dst = 0x0; - - return TRUE; -} - -/************************************************************************* - * ParseField [SHELL32.58] - */ -DWORD WINAPI ParseFieldAW(LPCVOID src, DWORD nField, LPVOID dst, DWORD len) -{ - if (SHELL_OsIsUnicode()) - return ParseFieldW(src, nField, dst, len); - return ParseFieldA(src, nField, dst, len); -} - -/************************************************************************* - * GetFileNameFromBrowse [SHELL32.63] - * - */ -BOOL WINAPI GetFileNameFromBrowse( - HWND hwndOwner, - LPWSTR lpstrFile, - UINT nMaxFile, - LPCWSTR lpstrInitialDir, - LPCWSTR lpstrDefExt, - LPCWSTR lpstrFilter, - LPCWSTR lpstrTitle) -{ - HMODULE hmodule; - FARPROC pGetOpenFileNameW; - OPENFILENAMEW ofn; - BOOL ret; - - TRACE("%p, %s, %d, %s, %s, %s, %s)\n", - hwndOwner, debugstr_w(lpstrFile), nMaxFile, lpstrInitialDir, lpstrDefExt, - lpstrFilter, lpstrTitle); - - hmodule = LoadLibraryW(L"comdlg32.dll"); - if(!hmodule) return FALSE; - pGetOpenFileNameW = GetProcAddress(hmodule, "GetOpenFileNameW"); - if(!pGetOpenFileNameW) - { - FreeLibrary(hmodule); - return FALSE; - } - - memset(&ofn, 0, sizeof(ofn)); - - ofn.lStructSize = sizeof(ofn); - ofn.hwndOwner = hwndOwner; - ofn.lpstrFilter = lpstrFilter; - ofn.lpstrFile = lpstrFile; - ofn.nMaxFile = nMaxFile; - ofn.lpstrInitialDir = lpstrInitialDir; - ofn.lpstrTitle = lpstrTitle; - ofn.lpstrDefExt = lpstrDefExt; - ofn.Flags = OFN_EXPLORER | OFN_HIDEREADONLY | OFN_FILEMUSTEXIST; - ret = pGetOpenFileNameW(&ofn); - - FreeLibrary(hmodule); - return ret; -} - -/************************************************************************* - * SHGetSetSettings [SHELL32.68] - */ -VOID WINAPI SHGetSetSettings(LPSHELLSTATE lpss, DWORD dwMask, BOOL bSet) -{ - if(bSet) - { - FIXME("%p 0x%08x TRUE\n", lpss, dwMask); - } - else - { - SHGetSettings((LPSHELLFLAGSTATE)lpss,dwMask); - } -} - -/************************************************************************* - * SHGetSettings [SHELL32.@] - * - * NOTES - * the registry path are for win98 (tested) - * and possibly are the same in nt40 - * - */ -VOID WINAPI SHGetSettings(LPSHELLFLAGSTATE lpsfs, DWORD dwMask) -{ - HKEY hKey; - DWORD dwData; - DWORD dwDataSize = sizeof (DWORD); - - TRACE("(%p 0x%08x)\n",lpsfs,dwMask); - - if (RegCreateKeyExA(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - 0, 0, 0, KEY_ALL_ACCESS, 0, &hKey, 0)) - return; - - if ( (SSF_SHOWEXTENSIONS & dwMask) && !RegQueryValueExA(hKey, "HideFileExt", 0, 0, (LPBYTE)&dwData, &dwDataSize)) - lpsfs->fShowExtensions = ((dwData == 0) ? 0 : 1); - - if ( (SSF_SHOWINFOTIP & dwMask) && !RegQueryValueExA(hKey, "ShowInfoTip", 0, 0, (LPBYTE)&dwData, &dwDataSize)) - lpsfs->fShowInfoTip = ((dwData == 0) ? 0 : 1); - - if ( (SSF_DONTPRETTYPATH & dwMask) && !RegQueryValueExA(hKey, "DontPrettyPath", 0, 0, (LPBYTE)&dwData, &dwDataSize)) - lpsfs->fDontPrettyPath = ((dwData == 0) ? 0 : 1); - - if ( (SSF_HIDEICONS & dwMask) && !RegQueryValueExA(hKey, "HideIcons", 0, 0, (LPBYTE)&dwData, &dwDataSize)) - lpsfs->fHideIcons = ((dwData == 0) ? 0 : 1); - - if ( (SSF_MAPNETDRVBUTTON & dwMask) && !RegQueryValueExA(hKey, "MapNetDrvBtn", 0, 0, (LPBYTE)&dwData, &dwDataSize)) - lpsfs->fMapNetDrvBtn = ((dwData == 0) ? 0 : 1); - - if ( (SSF_SHOWATTRIBCOL & dwMask) && !RegQueryValueExA(hKey, "ShowAttribCol", 0, 0, (LPBYTE)&dwData, &dwDataSize)) - lpsfs->fShowAttribCol = ((dwData == 0) ? 0 : 1); - - if (((SSF_SHOWALLOBJECTS | SSF_SHOWSYSFILES) & dwMask) && !RegQueryValueExA(hKey, "Hidden", 0, 0, (LPBYTE)&dwData, &dwDataSize)) - { if (dwData == 0) - { if (SSF_SHOWALLOBJECTS & dwMask) lpsfs->fShowAllObjects = 0; - if (SSF_SHOWSYSFILES & dwMask) lpsfs->fShowSysFiles = 0; - } - else if (dwData == 1) - { if (SSF_SHOWALLOBJECTS & dwMask) lpsfs->fShowAllObjects = 1; - if (SSF_SHOWSYSFILES & dwMask) lpsfs->fShowSysFiles = 0; - } - else if (dwData == 2) - { if (SSF_SHOWALLOBJECTS & dwMask) lpsfs->fShowAllObjects = 0; - if (SSF_SHOWSYSFILES & dwMask) lpsfs->fShowSysFiles = 1; - } - } - RegCloseKey (hKey); - - TRACE("-- 0x%04x\n", *(WORD*)lpsfs); -} - -/************************************************************************* - * SHShellFolderView_Message [SHELL32.73] - * - * Send a message to an explorer cabinet window. - * - * PARAMS - * hwndCabinet [I] The window containing the shellview to communicate with - * dwMessage [I] The SFVM message to send - * dwParam [I] Message parameter - * - * RETURNS - * fixme. - * - * NOTES - * Message SFVM_REARRANGE = 1 - * - * This message gets sent when a column gets clicked to instruct the - * shell view to re-sort the item list. dwParam identifies the column - * that was clicked. - */ -LRESULT WINAPI SHShellFolderView_Message( - HWND hwndCabinet, - UINT uMessage, - LPARAM lParam) -{ - FIXME("%p %08x %08lx stub\n",hwndCabinet, uMessage, lParam); - return 0; -} - -/************************************************************************* - * RegisterShellHook [SHELL32.181] - * - * Register a shell hook. - * - * PARAMS - * hwnd [I] Window handle - * dwType [I] Type of hook. - * - * NOTES - * Exported by ordinal - */ -BOOL WINAPI RegisterShellHook( - HWND hWnd, - DWORD dwType) -{ - FIXME("(%p,0x%08x):stub.\n",hWnd, dwType); - return TRUE; -} - -/************************************************************************* - * ShellMessageBoxW [SHELL32.182] - * - * See ShellMessageBoxA. - * - * NOTE: - * shlwapi.ShellMessageBoxWrapW is a duplicate of shell32.ShellMessageBoxW - * because we can't forward to it in the .spec file since it's exported by - * ordinal. If you change the implementation here please update the code in - * shlwapi as well. - */ -int WINAPI ShellMessageBoxW( - HINSTANCE hInstance, - HWND hWnd, - LPCWSTR lpText, - LPCWSTR lpCaption, - UINT uType, - ...) -{ - WCHAR szText[100],szTitle[100]; - LPCWSTR pszText = szText, pszTitle = szTitle; - LPWSTR pszTemp; - va_list args; - int ret; - - va_start(args, uType); - /* wvsprintfA(buf,fmt, args); */ - - TRACE("(%p,%p,%p,%p,%08x)\n", - hInstance,hWnd,lpText,lpCaption,uType); - - if (IS_INTRESOURCE(lpCaption)) - LoadStringW(hInstance, LOWORD(lpCaption), szTitle, sizeof(szTitle)/sizeof(szTitle[0])); - else - pszTitle = lpCaption; - - if (IS_INTRESOURCE(lpText)) - LoadStringW(hInstance, LOWORD(lpText), szText, sizeof(szText)/sizeof(szText[0])); - else - pszText = lpText; - - FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, - pszText, 0, 0, (LPWSTR)&pszTemp, 0, &args); - - va_end(args); - - ret = MessageBoxW(hWnd,pszTemp,pszTitle,uType); - LocalFree(pszTemp); - return ret; -} - -/************************************************************************* - * ShellMessageBoxA [SHELL32.183] - * - * Format and output an error message. - * - * PARAMS - * hInstance [I] Instance handle of message creator - * hWnd [I] Window handle of message creator - * lpText [I] Resource Id of title or LPSTR - * lpCaption [I] Resource Id of title or LPSTR - * uType [I] Type of error message - * - * RETURNS - * A return value from MessageBoxA(). - * - * NOTES - * Exported by ordinal - */ -int WINAPI ShellMessageBoxA( - HINSTANCE hInstance, - HWND hWnd, - LPCSTR lpText, - LPCSTR lpCaption, - UINT uType, - ...) -{ - char szText[100],szTitle[100]; - LPCSTR pszText = szText, pszTitle = szTitle; - LPSTR pszTemp; - va_list args; - int ret; - - va_start(args, uType); - /* wvsprintfA(buf,fmt, args); */ - - TRACE("(%p,%p,%p,%p,%08x)\n", - hInstance,hWnd,lpText,lpCaption,uType); - - if (IS_INTRESOURCE(lpCaption)) - LoadStringA(hInstance, LOWORD(lpCaption), szTitle, sizeof(szTitle)); - else - pszTitle = lpCaption; - - if (IS_INTRESOURCE(lpText)) - LoadStringA(hInstance, LOWORD(lpText), szText, sizeof(szText)); - else - pszText = lpText; - - FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, - pszText, 0, 0, (LPSTR)&pszTemp, 0, &args); - - va_end(args); - - ret = MessageBoxA(hWnd,pszTemp,pszTitle,uType); - LocalFree(pszTemp); - return ret; -} - -/************************************************************************* - * SHRegisterDragDrop [SHELL32.86] - * - * Probably equivalent to RegisterDragDrop but under Windows 95 it could use the - * shell32 built-in "mini-COM" without the need to load ole32.dll - see SHLoadOLE - * for details. Under Windows 98 this function initializes the true OLE when called - * the first time, on XP always returns E_OUTOFMEMORY and it got removed from Vista. - * - * - * NOTES - * exported by ordinal - * - * SEE ALSO - * RegisterDragDrop, SHLoadOLE - */ -HRESULT WINAPI SHRegisterDragDrop( - HWND hWnd, - LPDROPTARGET pDropTarget) -{ - FIXME("(%p,%p):stub.\n", hWnd, pDropTarget); - return RegisterDragDrop(hWnd, pDropTarget); -} - -/************************************************************************* - * SHRevokeDragDrop [SHELL32.87] - * - * Probably equivalent to RevokeDragDrop but under Windows 9x it could use the - * shell32 built-in "mini-COM" without the need to load ole32.dll - see SHLoadOLE - * for details. Function removed from Windows Vista. - * - * NOTES - * exported by ordinal - * - * SEE ALSO - * RevokeDragDrop, SHLoadOLE - */ -HRESULT WINAPI SHRevokeDragDrop(HWND hWnd) -{ - FIXME("(%p):stub.\n",hWnd); - return RevokeDragDrop(hWnd); -} - -/************************************************************************* - * SHDoDragDrop [SHELL32.88] - * - * Probably equivalent to DoDragDrop but under Windows 9x it could use the - * shell32 built-in "mini-COM" without the need to load ole32.dll - see SHLoadOLE - * for details - * - * NOTES - * exported by ordinal - * - * SEE ALSO - * DoDragDrop, SHLoadOLE - */ -HRESULT WINAPI SHDoDragDrop( - HWND hWnd, - LPDATAOBJECT lpDataObject, - LPDROPSOURCE lpDropSource, - DWORD dwOKEffect, - LPDWORD pdwEffect) -{ - FIXME("(%p %p %p 0x%08x %p):stub.\n", - hWnd, lpDataObject, lpDropSource, dwOKEffect, pdwEffect); - return DoDragDrop(lpDataObject, lpDropSource, dwOKEffect, pdwEffect); -} - -/************************************************************************* - * ArrangeWindows [SHELL32.184] - * - */ -WORD WINAPI ArrangeWindows( - HWND hwndParent, - DWORD dwReserved, - LPCRECT lpRect, - WORD cKids, - CONST HWND * lpKids) -{ - /* Unimplemented in WinXP SP3 */ - TRACE("(%p 0x%08x %p 0x%04x %p):stub.\n", - hwndParent, dwReserved, lpRect, cKids, lpKids); - return 0; -} - -/************************************************************************* - * SignalFileOpen [SHELL32.103] - * - * NOTES - * exported by ordinal - */ -DWORD WINAPI -SignalFileOpen (LPCITEMIDLIST pidl) -{ - FIXME("(0x%08x):stub.\n", pidl); - - return 0; -} - -/************************************************************************* - * SHADD_get_policy - helper function for SHAddToRecentDocs - * - * PARAMETERS - * policy [IN] policy name (null termed string) to find - * type [OUT] ptr to DWORD to receive type - * buffer [OUT] ptr to area to hold data retrieved - * len [IN/OUT] ptr to DWORD holding size of buffer and getting - * length filled - * - * RETURNS - * result of the SHQueryValueEx call - */ -static INT SHADD_get_policy(LPCSTR policy, LPDWORD type, LPVOID buffer, LPDWORD len) -{ - HKEY Policy_basekey; - INT ret; - - /* Get the key for the policies location in the registry - */ - if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, - "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", - 0, KEY_READ, &Policy_basekey)) { - - if (RegOpenKeyExA(HKEY_CURRENT_USER, - "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", - 0, KEY_READ, &Policy_basekey)) { - TRACE("No Explorer Policies location exists. Policy wanted=%s\n", - policy); - *len = 0; - return ERROR_FILE_NOT_FOUND; - } - } - - /* Retrieve the data if it exists - */ - ret = SHQueryValueExA(Policy_basekey, policy, 0, type, buffer, len); - RegCloseKey(Policy_basekey); - return ret; -} - - -/************************************************************************* - * SHADD_compare_mru - helper function for SHAddToRecentDocs - * - * PARAMETERS - * data1 [IN] data being looked for - * data2 [IN] data in MRU - * cbdata [IN] length from FindMRUData call (not used) - * - * RETURNS - * position within MRU list that data was added. - */ -static INT CALLBACK SHADD_compare_mru(LPCVOID data1, LPCVOID data2, DWORD cbData) -{ - return lstrcmpiA(data1, data2); -} - -/************************************************************************* - * SHADD_create_add_mru_data - helper function for SHAddToRecentDocs - * - * PARAMETERS - * mruhandle [IN] handle for created MRU list - * doc_name [IN] null termed pure doc name - * new_lnk_name [IN] null termed path and file name for .lnk file - * buffer [IN/OUT] 2048 byte area to construct MRU data - * len [OUT] ptr to int to receive space used in buffer - * - * RETURNS - * position within MRU list that data was added. - */ -static INT SHADD_create_add_mru_data(HANDLE mruhandle, LPCSTR doc_name, LPCSTR new_lnk_name, - LPSTR buffer, INT *len) -{ - LPSTR ptr; - INT wlen; - - /*FIXME: Document: - * RecentDocs MRU data structure seems to be: - * +0h document file name w/ terminating 0h - * +nh short int w/ size of remaining - * +n+2h 02h 30h, or 01h 30h, or 00h 30h - unknown - * +n+4h 10 bytes zeros - unknown - * +n+eh shortcut file name w/ terminating 0h - * +n+e+nh 3 zero bytes - unknown - */ - - /* Create the MRU data structure for "RecentDocs" - */ - ptr = buffer; - lstrcpyA(ptr, doc_name); - ptr += (lstrlenA(buffer) + 1); - wlen= lstrlenA(new_lnk_name) + 1 + 12; - *((short int*)ptr) = wlen; - ptr += 2; /* step past the length */ - *(ptr++) = 0x30; /* unknown reason */ - *(ptr++) = 0; /* unknown, but can be 0x00, 0x01, 0x02 */ - memset(ptr, 0, 10); - ptr += 10; - lstrcpyA(ptr, new_lnk_name); - ptr += (lstrlenA(new_lnk_name) + 1); - memset(ptr, 0, 3); - ptr += 3; - *len = ptr - buffer; - - /* Add the new entry into the MRU list - */ - return AddMRUData(mruhandle, buffer, *len); -} - -/************************************************************************* - * SHAddToRecentDocs [SHELL32.@] - * - * Modify (add/clear) Shell's list of recently used documents. - * - * PARAMETERS - * uFlags [IN] SHARD_PATHA, SHARD_PATHW or SHARD_PIDL - * pv [IN] string or pidl, NULL clears the list - * - * NOTES - * exported by name - * - * FIXME - * convert to unicode - */ -void WINAPI SHAddToRecentDocs (UINT uFlags,LPCVOID pv) -{ -/* If list is a string list lpfnCompare has the following prototype - * int CALLBACK MRUCompareString(LPCSTR s1, LPCSTR s2) - * for binary lists the prototype is - * int CALLBACK MRUCompareBinary(LPCVOID data1, LPCVOID data2, DWORD cbData) - * where cbData is the no. of bytes to compare. - * Need to check what return value means identical - 0? - */ - - - UINT olderrormode; - HKEY HCUbasekey; - CHAR doc_name[MAX_PATH]; - CHAR link_dir[MAX_PATH]; - CHAR new_lnk_filepath[MAX_PATH]; - CHAR new_lnk_name[MAX_PATH]; - CHAR * ext; - IMalloc *ppM; - LPITEMIDLIST pidl; - HWND hwnd = 0; /* FIXME: get real window handle */ - INT ret; - DWORD data[64], datalen, type; - - TRACE("%04x %p\n", uFlags, pv); - - /*FIXME: Document: - * RecentDocs MRU data structure seems to be: - * +0h document file name w/ terminating 0h - * +nh short int w/ size of remaining - * +n+2h 02h 30h, or 01h 30h, or 00h 30h - unknown - * +n+4h 10 bytes zeros - unknown - * +n+eh shortcut file name w/ terminating 0h - * +n+e+nh 3 zero bytes - unknown - */ - - /* See if we need to do anything. - */ - datalen = 64; - ret=SHADD_get_policy( "NoRecentDocsHistory", &type, data, &datalen); - if ((ret > 0) && (ret != ERROR_FILE_NOT_FOUND)) { - ERR("Error %d getting policy \"NoRecentDocsHistory\"\n", ret); - return; - } - if (ret == ERROR_SUCCESS) { - if (!( (type == REG_DWORD) || - ((type == REG_BINARY) && (datalen == 4)) )) { - ERR("Error policy data for \"NoRecentDocsHistory\" not formatted correctly, type=%d, len=%d\n", - type, datalen); - return; - } - - TRACE("policy value for NoRecentDocsHistory = %08x\n", data[0]); - /* now test the actual policy value */ - if ( data[0] != 0) - return; - } - - /* Open key to where the necessary info is - */ - /* FIXME: This should be done during DLL PROCESS_ATTACH (or THREAD_ATTACH) - * and the close should be done during the _DETACH. The resulting - * key is stored in the DLL global data. - */ - if (RegCreateKeyExA(HKEY_CURRENT_USER, - "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer", - 0, 0, 0, KEY_READ, 0, &HCUbasekey, 0)) { - ERR("Failed to create 'Software\\Microsoft\\Windows\\CurrentVersion\\Explorer'\n"); - return; - } - - /* Get path to user's "Recent" directory - */ - if(SUCCEEDED(SHGetMalloc(&ppM))) { - if (SUCCEEDED(SHGetSpecialFolderLocation(hwnd, CSIDL_RECENT, - &pidl))) { - SHGetPathFromIDListA(pidl, link_dir); - IMalloc_Free(ppM, pidl); - } - else { - /* serious issues */ - link_dir[0] = 0; - ERR("serious issues 1\n"); - } - IMalloc_Release(ppM); - } - else { - /* serious issues */ - link_dir[0] = 0; - ERR("serious issues 2\n"); - } - TRACE("Users Recent dir %s\n", link_dir); - - /* If no input, then go clear the lists */ - if (!pv) { - /* clear user's Recent dir - */ - - /* FIXME: delete all files in "link_dir" - * - * while( more files ) { - * lstrcpyA(old_lnk_name, link_dir); - * PathAppendA(old_lnk_name, filenam); - * DeleteFileA(old_lnk_name); - * } - */ - FIXME("should delete all files in %s\\\n", link_dir); - - /* clear MRU list - */ - /* MS Bug ?? v4.72.3612.1700 of shell32 does the delete against - * HKEY_LOCAL_MACHINE version of ...CurrentVersion\Explorer - * and naturally it fails w/ rc=2. It should do it against - * HKEY_CURRENT_USER which is where it is stored, and where - * the MRU routines expect it!!!! - */ - RegDeleteKeyA(HCUbasekey, "RecentDocs"); - RegCloseKey(HCUbasekey); - return; - } - - /* Have data to add, the jobs to be done: - * 1. Add document to MRU list in registry "HKCU\Software\ - * Microsoft\Windows\CurrentVersion\Explorer\RecentDocs". - * 2. Add shortcut to document in the user's Recent directory - * (CSIDL_RECENT). - * 3. Add shortcut to Start menu's Documents submenu. - */ - - /* Get the pure document name from the input - */ - switch (uFlags) - { - case SHARD_PIDL: - SHGetPathFromIDListA(pv, doc_name); - break; - - case SHARD_PATHA: - lstrcpynA(doc_name, pv, MAX_PATH); - break; - - case SHARD_PATHW: - WideCharToMultiByte(CP_ACP, 0, pv, -1, doc_name, MAX_PATH, NULL, NULL); - break; - - default: - FIXME("Unsupported flags: %u\n", uFlags); - return; - } - - TRACE("full document name %s\n", debugstr_a(doc_name)); - - /* check if file is a shortcut */ - ext = strrchr(doc_name, '.'); - if (!lstrcmpiA(ext, ".lnk")) - { - IShellLinkA * ShellLink; - - IShellLink_ConstructFromFile(NULL, &IID_IShellLinkA, (LPCITEMIDLIST)SHSimpleIDListFromPathA(doc_name), (LPVOID*)&ShellLink); - IShellLinkA_GetPath(ShellLink, doc_name, MAX_PATH, NULL, 0); - - IShellLinkA_Release(ShellLink); - } - - ext = strrchr(doc_name, '.'); - if (!lstrcmpiA(ext, ".exe")) - { - /* executables are not added */ - return; - } - - PathStripPathA(doc_name); - TRACE("stripped document name %s\n", debugstr_a(doc_name)); - - /* *** JOB 1: Update registry for ...\Explorer\RecentDocs list *** */ - - { /* on input needs: - * doc_name - pure file-spec, no path - * link_dir - path to the user's Recent directory - * HCUbasekey - key of ...Windows\CurrentVersion\Explorer" node - * creates: - * new_lnk_name- pure file-spec, no path for new .lnk file - * new_lnk_filepath - * - path and file name of new .lnk file - */ - CREATEMRULISTA mymru; - HANDLE mruhandle; - INT len, pos, bufused, err; - INT i; - DWORD attr; - CHAR buffer[2048]; - CHAR *ptr; - CHAR old_lnk_name[MAX_PATH]; - short int slen; - - mymru.cbSize = sizeof(CREATEMRULISTA); - mymru.nMaxItems = 15; - mymru.dwFlags = MRUF_BINARY_LIST | MRUF_DELAYED_SAVE; - mymru.hKey = HCUbasekey; - mymru.lpszSubKey = "RecentDocs"; - mymru.lpfnCompare = (PROC)SHADD_compare_mru; - mruhandle = CreateMRUListA(&mymru); - if (!mruhandle) { - /* MRU failed */ - ERR("MRU processing failed, handle zero\n"); - RegCloseKey(HCUbasekey); - return; - } - len = lstrlenA(doc_name); - pos = FindMRUData(mruhandle, doc_name, len, 0); - - /* Now get the MRU entry that will be replaced - * and delete the .lnk file for it - */ - if ((bufused = EnumMRUListA(mruhandle, (pos == -1) ? 14 : pos, - buffer, 2048)) != -1) { - ptr = buffer; - ptr += (lstrlenA(buffer) + 1); - slen = *((short int*)ptr); - ptr += 2; /* skip the length area */ - if (bufused >= slen + (ptr-buffer)) { - /* buffer size looks good */ - ptr += 12; /* get to string */ - len = bufused - (ptr-buffer); /* get length of buf remaining */ - if ((lstrlenA(ptr) > 0) && (lstrlenA(ptr) <= len-1)) { - /* appears to be good string */ - lstrcpyA(old_lnk_name, link_dir); - PathAppendA(old_lnk_name, ptr); - if (!DeleteFileA(old_lnk_name)) { - if ((attr = GetFileAttributesA(old_lnk_name)) == INVALID_FILE_ATTRIBUTES) { - if ((err = GetLastError()) != ERROR_FILE_NOT_FOUND) { - ERR("Delete for %s failed, err=%d, attr=%08x\n", - old_lnk_name, err, attr); - } - else { - TRACE("old .lnk file %s did not exist\n", - old_lnk_name); - } - } - else { - ERR("Delete for %s failed, attr=%08x\n", - old_lnk_name, attr); - } - } - else { - TRACE("deleted old .lnk file %s\n", old_lnk_name); - } - } - } - } - - /* Create usable .lnk file name for the "Recent" directory - */ - wsprintfA(new_lnk_name, "%s.lnk", doc_name); - lstrcpyA(new_lnk_filepath, link_dir); - PathAppendA(new_lnk_filepath, new_lnk_name); - i = 1; - olderrormode = SetErrorMode(SEM_FAILCRITICALERRORS); - while (GetFileAttributesA(new_lnk_filepath) != INVALID_FILE_ATTRIBUTES) { - i++; - wsprintfA(new_lnk_name, "%s (%u).lnk", doc_name, i); - lstrcpyA(new_lnk_filepath, link_dir); - PathAppendA(new_lnk_filepath, new_lnk_name); - } - SetErrorMode(olderrormode); - TRACE("new shortcut will be %s\n", new_lnk_filepath); - - /* Now add the new MRU entry and data - */ - pos = SHADD_create_add_mru_data(mruhandle, doc_name, new_lnk_name, - buffer, &len); - FreeMRUList(mruhandle); - TRACE("Updated MRU list, new doc is position %d\n", pos); - } - - /* *** JOB 2: Create shortcut in user's "Recent" directory *** */ - - { /* on input needs: - * doc_name - pure file-spec, no path - * new_lnk_filepath - * - path and file name of new .lnk file - * uFlags[in] - flags on call to SHAddToRecentDocs - * pv[in] - document path/pidl on call to SHAddToRecentDocs - */ - IShellLinkA *psl = NULL; - IPersistFile *pPf = NULL; - HRESULT hres; - CHAR desc[MAX_PATH]; - WCHAR widelink[MAX_PATH]; - - CoInitialize(0); - - hres = CoCreateInstance( &CLSID_ShellLink, - NULL, - CLSCTX_INPROC_SERVER, - &IID_IShellLinkA, - (LPVOID )&psl); - if(SUCCEEDED(hres)) { - - hres = IShellLinkA_QueryInterface(psl, &IID_IPersistFile, - (LPVOID *)&pPf); - if(FAILED(hres)) { - /* bombed */ - ERR("failed QueryInterface for IPersistFile %08x\n", hres); - goto fail; - } - - /* Set the document path or pidl */ - if (uFlags == SHARD_PIDL) { - hres = IShellLinkA_SetIDList(psl, pv); - } else { - hres = IShellLinkA_SetPath(psl, pv); - } - if(FAILED(hres)) { - /* bombed */ - ERR("failed Set{IDList|Path} %08x\n", hres); - goto fail; - } - - lstrcpyA(desc, "Shortcut to "); - lstrcatA(desc, doc_name); - hres = IShellLinkA_SetDescription(psl, desc); - if(FAILED(hres)) { - /* bombed */ - ERR("failed SetDescription %08x\n", hres); - goto fail; - } - - MultiByteToWideChar(CP_ACP, 0, new_lnk_filepath, -1, - widelink, MAX_PATH); - /* create the short cut */ - hres = IPersistFile_Save(pPf, widelink, TRUE); - if(FAILED(hres)) { - /* bombed */ - ERR("failed IPersistFile::Save %08x\n", hres); - IPersistFile_Release(pPf); - IShellLinkA_Release(psl); - goto fail; - } - hres = IPersistFile_SaveCompleted(pPf, widelink); - IPersistFile_Release(pPf); - IShellLinkA_Release(psl); - TRACE("shortcut %s has been created, result=%08x\n", - new_lnk_filepath, hres); - } - else { - ERR("CoCreateInstance failed, hres=%08x\n", hres); - } - } - - fail: - CoUninitialize(); - - /* all done */ - RegCloseKey(HCUbasekey); - return; -} - -/************************************************************************* - * SHCreateShellFolderViewEx [SHELL32.174] - * - * Create a new instance of the default Shell folder view object. - * - * RETURNS - * Success: S_OK - * Failure: error value - * - * NOTES - * see IShellFolder::CreateViewObject - */ -HRESULT WINAPI SHCreateShellFolderViewEx( - LPCSFV psvcbi, /* [in] shelltemplate struct */ - IShellView **ppv) /* [out] IShellView pointer */ -{ - IShellView * psf; - HRESULT hRes; - - TRACE("sf=%p pidl=%p cb=%p mode=0x%08x parm=%p\n", - psvcbi->pshf, psvcbi->pidl, psvcbi->pfnCallback, - psvcbi->fvm, psvcbi->psvOuter); - - psf = IShellView_Constructor(psvcbi->pshf); - - if (!psf) - return E_OUTOFMEMORY; - - IShellView_AddRef(psf); - hRes = IShellView_QueryInterface(psf, &IID_IShellView, (LPVOID *)ppv); - IShellView_Release(psf); - - return hRes; -} -/************************************************************************* - * SHWinHelp [SHELL32.127] - * - */ -HRESULT WINAPI SHWinHelp (DWORD v, DWORD w, DWORD x, DWORD z) -{ FIXME("0x%08x 0x%08x 0x%08x 0x%08x stub\n",v,w,x,z); - return 0; -} -/************************************************************************* - * SHRunControlPanel [SHELL32.161] - * - */ -HRESULT WINAPI SHRunControlPanel (LPCWSTR lpcszCmdLine, HWND hwndMsgParent) -{ - FIXME("0x%08x 0x%08x stub\n",lpcszCmdLine,hwndMsgParent); - return 0; -} - -static LPUNKNOWN SHELL32_IExplorerInterface=0; -/************************************************************************* - * SHSetInstanceExplorer [SHELL32.176] - * - * NOTES - * Sets the interface - */ -VOID WINAPI SHSetInstanceExplorer (LPUNKNOWN lpUnknown) -{ TRACE("%p\n", lpUnknown); - SHELL32_IExplorerInterface = lpUnknown; -} -/************************************************************************* - * SHGetInstanceExplorer [SHELL32.@] - * - * NOTES - * gets the interface pointer of the explorer and a reference - */ -HRESULT WINAPI SHGetInstanceExplorer (IUnknown **lpUnknown) -{ TRACE("%p\n", lpUnknown); - - *lpUnknown = SHELL32_IExplorerInterface; - - if (!SHELL32_IExplorerInterface) - return E_FAIL; - - IUnknown_AddRef(SHELL32_IExplorerInterface); - return NOERROR; -} -/************************************************************************* - * SHFreeUnusedLibraries [SHELL32.123] - * - * Probably equivalent to CoFreeUnusedLibraries but under Windows 9x it could use - * the shell32 built-in "mini-COM" without the need to load ole32.dll - see SHLoadOLE - * for details - * - * NOTES - * exported by ordinal - * - * SEE ALSO - * CoFreeUnusedLibraries, SHLoadOLE - */ -void WINAPI SHFreeUnusedLibraries (void) -{ - FIXME("stub\n"); - CoFreeUnusedLibraries(); -} -/************************************************************************* - * DAD_AutoScroll [SHELL32.129] - * - */ -BOOL WINAPI DAD_AutoScroll(HWND hwnd, AUTO_SCROLL_DATA *samples, const POINT * pt) -{ - FIXME("hwnd = %p %p %p\n",hwnd,samples,pt); - return 0; -} -/************************************************************************* - * DAD_DragEnter [SHELL32.130] - * - */ -BOOL WINAPI DAD_DragEnter(HWND hwnd) -{ - FIXME("hwnd = %p\n",hwnd); - return FALSE; -} -/************************************************************************* - * DAD_DragEnterEx [SHELL32.131] - * - */ -BOOL WINAPI DAD_DragEnterEx(HWND hwnd, POINT p) -{ - FIXME("hwnd = %p (%d,%d)\n",hwnd,p.x,p.y); - return FALSE; -} -/************************************************************************* - * DAD_DragMove [SHELL32.134] - * - */ -BOOL WINAPI DAD_DragMove(POINT p) -{ - FIXME("(%d,%d)\n",p.x,p.y); - return FALSE; -} -/************************************************************************* - * DAD_DragLeave [SHELL32.132] - * - */ -BOOL WINAPI DAD_DragLeave(VOID) -{ - FIXME("\n"); - return FALSE; -} -/************************************************************************* - * DAD_SetDragImage [SHELL32.136] - * - * NOTES - * exported by name - */ -BOOL WINAPI DAD_SetDragImage( - HIMAGELIST himlTrack, - LPPOINT lppt) -{ - FIXME("%p %p stub\n",himlTrack, lppt); - return 0; -} -/************************************************************************* - * DAD_ShowDragImage [SHELL32.137] - * - * NOTES - * exported by name - */ -BOOL WINAPI DAD_ShowDragImage(BOOL bShow) -{ - FIXME("0x%08x stub\n",bShow); - return 0; -} - -static const WCHAR szwCabLocation[] = { - 'S','o','f','t','w','a','r','e','\\', - 'M','i','c','r','o','s','o','f','t','\\', - 'W','i','n','d','o','w','s','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\', - 'E','x','p','l','o','r','e','r','\\', - 'C','a','b','i','n','e','t','S','t','a','t','e',0 -}; - -static const WCHAR szwSettings[] = { 'S','e','t','t','i','n','g','s',0 }; - -/************************************************************************* - * ReadCabinetState [SHELL32.651] NT 4.0 - * - */ -BOOL WINAPI ReadCabinetState(CABINETSTATE *cs, int length) -{ - HKEY hkey = 0; - DWORD type, r; - - TRACE("%p %d\n", cs, length); - - if( (cs == NULL) || (length < (int)sizeof(*cs)) ) - return FALSE; - - r = RegOpenKeyW( HKEY_CURRENT_USER, szwCabLocation, &hkey ); - if( r == ERROR_SUCCESS ) - { - type = REG_BINARY; - r = RegQueryValueExW( hkey, szwSettings, - NULL, &type, (LPBYTE)cs, (LPDWORD)&length ); - RegCloseKey( hkey ); - - } - - /* if we can't read from the registry, create default values */ - if ( (r != ERROR_SUCCESS) || (cs->cLength < sizeof(*cs)) || - (cs->cLength != length) ) - { - ERR("Initializing shell cabinet settings\n"); - memset(cs, 0, sizeof(*cs)); - cs->cLength = sizeof(*cs); - cs->nVersion = 2; - cs->fFullPathTitle = FALSE; - cs->fSaveLocalView = TRUE; - cs->fNotShell = FALSE; - cs->fSimpleDefault = TRUE; - cs->fDontShowDescBar = FALSE; - cs->fNewWindowMode = FALSE; - cs->fShowCompColor = FALSE; - cs->fDontPrettyNames = FALSE; - cs->fAdminsCreateCommonGroups = TRUE; - cs->fMenuEnumFilter = 96; - } - - return TRUE; -} - -/************************************************************************* - * WriteCabinetState [SHELL32.652] NT 4.0 - * - */ -BOOL WINAPI WriteCabinetState(CABINETSTATE *cs) -{ - DWORD r; - HKEY hkey = 0; - - TRACE("%p\n",cs); - - if( cs == NULL ) - return FALSE; - - r = RegCreateKeyExW( HKEY_CURRENT_USER, szwCabLocation, 0, - NULL, 0, KEY_ALL_ACCESS, NULL, &hkey, NULL); - if( r == ERROR_SUCCESS ) - { - r = RegSetValueExW( hkey, szwSettings, 0, - REG_BINARY, (LPBYTE) cs, cs->cLength); - - RegCloseKey( hkey ); - } - - return (r==ERROR_SUCCESS); -} - -/************************************************************************* - * FileIconInit [SHELL32.660] - * - */ -BOOL WINAPI FileIconInit(BOOL bFullInit) -{ FIXME("(%s)\n", bFullInit ? "true" : "false"); - return 0; -} - -/************************************************************************* - * IsUserAnAdmin [SHELL32.680] NT 4.0 - * - * Checks whether the current user is a member of the Administrators group. - * - * PARAMS - * None - * - * RETURNS - * Success: TRUE - * Failure: FALSE - */ -BOOL WINAPI IsUserAnAdmin(VOID) -{ - SID_IDENTIFIER_AUTHORITY Authority = {SECURITY_NT_AUTHORITY}; - HANDLE hToken; - DWORD dwSize; - PTOKEN_GROUPS lpGroups; - PSID lpSid; - DWORD i; - BOOL bResult = FALSE; - - TRACE("\n"); - if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken)) - { - return FALSE; - } - - if (!GetTokenInformation(hToken, TokenGroups, NULL, 0, &dwSize)) - { - if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) - { - CloseHandle(hToken); - return FALSE; - } - } - - lpGroups = HeapAlloc(GetProcessHeap(), 0, dwSize); - if (lpGroups == NULL) - { - CloseHandle(hToken); - return FALSE; - } - - if (!GetTokenInformation(hToken, TokenGroups, lpGroups, dwSize, &dwSize)) - { - HeapFree(GetProcessHeap(), 0, lpGroups); - CloseHandle(hToken); - return FALSE; - } - - CloseHandle(hToken); - - if (!AllocateAndInitializeSid(&Authority, 2, SECURITY_BUILTIN_DOMAIN_RID, - DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, - &lpSid)) - { - HeapFree(GetProcessHeap(), 0, lpGroups); - return FALSE; - } - - for (i = 0; i < lpGroups->GroupCount; i++) - { - if (EqualSid(lpSid, lpGroups->Groups[i].Sid)) - { - bResult = TRUE; - break; - } - } - - FreeSid(lpSid); - HeapFree(GetProcessHeap(), 0, lpGroups); - return bResult; -} - -/************************************************************************* - * SHAllocShared [SHELL32.520] - * - * See shlwapi.SHAllocShared - */ -HANDLE WINAPI SHAllocShared(LPVOID lpvData, DWORD dwSize, DWORD dwProcId) -{ - GET_FUNC(pSHAllocShared, shlwapi, (char*)7, NULL); - return pSHAllocShared(lpvData, dwSize, dwProcId); -} - -/************************************************************************* - * SHLockShared [SHELL32.521] - * - * See shlwapi.SHLockShared - */ -LPVOID WINAPI SHLockShared(HANDLE hShared, DWORD dwProcId) -{ - GET_FUNC(pSHLockShared, shlwapi, (char*)8, NULL); - return pSHLockShared(hShared, dwProcId); -} - -/************************************************************************* - * SHUnlockShared [SHELL32.522] - * - * See shlwapi.SHUnlockShared - */ -BOOL WINAPI SHUnlockShared(LPVOID lpView) -{ - GET_FUNC(pSHUnlockShared, shlwapi, (char*)9, FALSE); - return pSHUnlockShared(lpView); -} - -/************************************************************************* - * SHFreeShared [SHELL32.523] - * - * See shlwapi.SHFreeShared - */ -BOOL WINAPI SHFreeShared(HANDLE hShared, DWORD dwProcId) -{ - GET_FUNC(pSHFreeShared, shlwapi, (char*)10, FALSE); - return pSHFreeShared(hShared, dwProcId); -} - -/************************************************************************* - * SetAppStartingCursor [SHELL32.99] - */ -HRESULT WINAPI SetAppStartingCursor(HWND u, DWORD v) -{ FIXME("hwnd=%p 0x%04x stub\n",u,v ); - return 0; -} - -/************************************************************************* - * SHLoadOLE [SHELL32.151] - * - * To reduce the memory usage of Windows 95, its shell32 contained an - * internal implementation of a part of COM (see e.g. SHGetMalloc, SHCoCreateInstance, - * SHRegisterDragDrop etc.) that allowed to use in-process STA objects without - * the need to load OLE32.DLL. If OLE32.DLL was already loaded, the SH* function - * would just call the Co* functions. - * - * The SHLoadOLE was called when OLE32.DLL was being loaded to transfer all the - * information from the shell32 "mini-COM" to ole32.dll. - * - * See http://blogs.msdn.com/oldnewthing/archive/2004/07/05/173226.aspx for a - * detailed description. - * - * Under wine ole32.dll is always loaded as it is imported by shlwapi.dll which is - * imported by shell32 and no "mini-COM" is used (except for the "LoadWithoutCOM" - * hack in SHCoCreateInstance) - */ -HRESULT WINAPI SHLoadOLE(LPARAM lParam) -{ FIXME("0x%08lx stub\n",lParam); - return S_OK; -} -/************************************************************************* - * DriveType [SHELL32.64] - * - */ -HRESULT WINAPI DriveType(int DriveType) -{ - WCHAR root[] = L"A:\\"; - root[0] = L'A' + DriveType; - return GetDriveTypeW(root); -} -/************************************************************************* - * InvalidateDriveType [SHELL32.65] - * Unimplemented in XP SP3 - */ -int WINAPI InvalidateDriveType(int u) -{ - TRACE("0x%08x stub\n",u); - return 0; -} -/************************************************************************* - * SHAbortInvokeCommand [SHELL32.198] - * - */ -HRESULT WINAPI SHAbortInvokeCommand(void) -{ FIXME("stub\n"); - return 1; -} -/************************************************************************* - * SHOutOfMemoryMessageBox [SHELL32.126] - * - */ -int WINAPI SHOutOfMemoryMessageBox( - HWND hwndOwner, - LPCSTR lpCaption, - UINT uType) -{ - FIXME("%p %s 0x%08x stub\n",hwndOwner, lpCaption, uType); - return 0; -} -/************************************************************************* - * SHFlushClipboard [SHELL32.121] - * - */ -HRESULT WINAPI SHFlushClipboard(void) -{ - return OleFlushClipboard(); -} - -/************************************************************************* - * SHWaitForFileToOpen [SHELL32.97] - * - */ -BOOL WINAPI SHWaitForFileToOpen( - LPCITEMIDLIST pidl, - DWORD dwFlags, - DWORD dwTimeout) -{ - FIXME("%p 0x%08x 0x%08x stub\n", pidl, dwFlags, dwTimeout); - return 0; -} - -/************************************************************************ - * RLBuildListOfPaths [SHELL32.146] - * - * NOTES - * builds a DPA - */ -DWORD WINAPI RLBuildListOfPaths (void) -{ FIXME("stub\n"); - return 0; -} -/************************************************************************ - * SHValidateUNC [SHELL32.173] - * - */ -HRESULT WINAPI SHValidateUNC (HWND hwndOwner, LPWSTR pszFile, UINT fConnect) -{ - FIXME("0x%08x 0x%08x 0x%08x stub\n",hwndOwner,pszFile,fConnect); - return 0; -} - -/************************************************************************ - * DoEnvironmentSubstA [SHELL32.@] - * - * Replace %KEYWORD% in the str with the value of variable KEYWORD - * from environment. If it is not found the %KEYWORD% is left - * intact. If the buffer is too small, str is not modified. - * - * PARAMS - * pszString [I] '\0' terminated string with %keyword%. - * [O] '\0' terminated string with %keyword% substituted. - * cchString [I] size of str. - * - * RETURNS - * cchString length in the HIWORD; - * TRUE in LOWORD if subst was successful and FALSE in other case - */ -DWORD WINAPI DoEnvironmentSubstA(LPSTR pszString, UINT cchString) -{ - LPSTR dst; - BOOL res = FALSE; - FIXME("(%s, %d) stub\n", debugstr_a(pszString), cchString); - if (pszString == NULL) /* Really return 0? */ - return 0; - if ((dst = HeapAlloc(GetProcessHeap(), 0, cchString * sizeof(CHAR)))) - { - DWORD num = ExpandEnvironmentStringsA(pszString, dst, cchString); - if (num && num < cchString) /* dest buffer is too small */ - { - res = TRUE; - memcpy(pszString, dst, num); - } - HeapFree(GetProcessHeap(), 0, dst); - } - return MAKELONG(res,cchString); /* Always cchString? */ -} - -/************************************************************************ - * DoEnvironmentSubstW [SHELL32.@] - * - * See DoEnvironmentSubstA. - */ -DWORD WINAPI DoEnvironmentSubstW(LPWSTR pszString, UINT cchString) -{ - LPWSTR dst; - BOOL res = FALSE; - FIXME("(%s, %d): stub\n", debugstr_w(pszString), cchString); - if ((dst = HeapAlloc(GetProcessHeap(), 0, cchString * sizeof(WCHAR)))) - { - DWORD num = ExpandEnvironmentStringsW(pszString, dst, cchString); - if (num) - { - res = TRUE; - wcscpy(pszString, dst); - } - HeapFree(GetProcessHeap(), 0, dst); - } - - return MAKELONG(res,cchString); -} - -/************************************************************************ - * DoEnvironmentSubst [SHELL32.53] - * - * See DoEnvironmentSubstA. - */ -DWORD WINAPI DoEnvironmentSubstAW(LPVOID x, UINT y) -{ - if (SHELL_OsIsUnicode()) - return DoEnvironmentSubstW(x, y); - return DoEnvironmentSubstA(x, y); -} - -/************************************************************************* - * GUIDFromStringA [SHELL32.703] - */ -BOOL WINAPI GUIDFromStringA(LPCSTR str, LPGUID guid) -{ - TRACE("GUIDFromStringA() stub\n"); - return FALSE; -} - -/************************************************************************* - * GUIDFromStringW [SHELL32.704] - */ -BOOL WINAPI GUIDFromStringW(LPCWSTR str, LPGUID guid) -{ - UNICODE_STRING guid_str; - - RtlInitUnicodeString(&guid_str, str); - return !RtlGUIDFromString(&guid_str, guid); -} - -/************************************************************************* - * PathIsTemporaryW [SHELL32.714] - */ -BOOL WINAPI PathIsTemporaryW(LPWSTR Str) -{ - FIXME("(%s)stub\n", debugstr_w(Str)); - return FALSE; -} - -/************************************************************************* - * PathIsTemporaryA [SHELL32.713] - */ -BOOL WINAPI PathIsTemporaryA(LPSTR Str) -{ - FIXME("(%s)stub\n", debugstr_a(Str)); - return FALSE; -} - -typedef struct _PSXA -{ - UINT uiCount; - UINT uiAllocated; - IShellPropSheetExt *pspsx[1]; -} PSXA, *PPSXA; - -typedef struct _PSXA_CALL -{ - LPFNADDPROPSHEETPAGE lpfnAddReplaceWith; - LPARAM lParam; - BOOL bCalled; - BOOL bMultiple; - UINT uiCount; -} PSXA_CALL, *PPSXA_CALL; - -static BOOL CALLBACK PsxaCall(HPROPSHEETPAGE hpage, LPARAM lParam) -{ - PPSXA_CALL Call = (PPSXA_CALL)lParam; - - if (Call != NULL) - { - if ((Call->bMultiple || !Call->bCalled) && - Call->lpfnAddReplaceWith(hpage, Call->lParam)) - { - Call->bCalled = TRUE; - Call->uiCount++; - return TRUE; - } - } - - return FALSE; -} - -/************************************************************************* - * SHAddFromPropSheetExtArray [SHELL32.167] - */ -UINT WINAPI SHAddFromPropSheetExtArray(HPSXA hpsxa, LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam) -{ - PSXA_CALL Call; - UINT i; - PPSXA psxa = (PPSXA)hpsxa; - - TRACE("(%p,%p,%08lx)\n", hpsxa, lpfnAddPage, lParam); - - if (psxa) - { - ZeroMemory(&Call, sizeof(Call)); - Call.lpfnAddReplaceWith = lpfnAddPage; - Call.lParam = lParam; - Call.bMultiple = TRUE; - - /* Call the AddPage method of all registered IShellPropSheetExt interfaces */ - for (i = 0; i != psxa->uiCount; i++) - { - psxa->pspsx[i]->lpVtbl->AddPages(psxa->pspsx[i], PsxaCall, (LPARAM)&Call); - } - - return Call.uiCount; - } - - return 0; -} - -/************************************************************************* - * SHCreatePropSheetExtArray [SHELL32.168] - */ -HPSXA WINAPI SHCreatePropSheetExtArray(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface) -{ - return SHCreatePropSheetExtArrayEx(hKey, pszSubKey, max_iface, NULL); -} - -/************************************************************************* - * SHCreatePropSheetExtArrayEx [SHELL32.194] - */ -HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, IDataObject *pDataObj) -{ - static const WCHAR szPropSheetSubKey[] = {'s','h','e','l','l','e','x','\\','P','r','o','p','e','r','t','y','S','h','e','e','t','H','a','n','d','l','e','r','s',0}; - WCHAR szHandler[64]; - DWORD dwHandlerLen; - WCHAR szClsidHandler[39]; - DWORD dwClsidSize; - CLSID clsid; - LONG lRet; - DWORD dwIndex; - IShellExtInit *psxi; - IShellPropSheetExt *pspsx; - HKEY hkBase, hkPropSheetHandlers; - PPSXA psxa = NULL; - HRESULT hr; - - TRACE("(%p,%s,%u)\n", hKey, debugstr_w(pszSubKey), max_iface); - - if (max_iface == 0) - return NULL; - - /* Open the registry key */ - lRet = RegOpenKeyW(hKey, pszSubKey, &hkBase); - if (lRet != ERROR_SUCCESS) - return NULL; - - lRet = RegOpenKeyExW(hkBase, szPropSheetSubKey, 0, KEY_ENUMERATE_SUB_KEYS, &hkPropSheetHandlers); - RegCloseKey(hkBase); - if (lRet == ERROR_SUCCESS) - { - /* Create and initialize the Property Sheet Extensions Array */ - psxa = LocalAlloc(LMEM_FIXED, FIELD_OFFSET(PSXA, pspsx[max_iface])); - if (psxa) - { - ZeroMemory(psxa, FIELD_OFFSET(PSXA, pspsx[max_iface])); - psxa->uiAllocated = max_iface; - - /* Enumerate all subkeys and attempt to load the shell extensions */ - dwIndex = 0; - do - { - dwHandlerLen = sizeof(szHandler) / sizeof(szHandler[0]); - lRet = RegEnumKeyExW(hkPropSheetHandlers, dwIndex++, szHandler, &dwHandlerLen, NULL, NULL, NULL, NULL); - if (lRet != ERROR_SUCCESS) - { - if (lRet == ERROR_MORE_DATA) - continue; - - if (lRet == ERROR_NO_MORE_ITEMS) - lRet = ERROR_SUCCESS; - break; - } - szHandler[(sizeof(szHandler) / sizeof(szHandler[0])) - 1] = 0; - hr = CLSIDFromString(szHandler, &clsid); - if (FAILED(hr)) - { - dwClsidSize = sizeof(szClsidHandler); - if (SHGetValueW(hkPropSheetHandlers, szHandler, NULL, NULL, szClsidHandler, &dwClsidSize) == ERROR_SUCCESS) - { - szClsidHandler[(sizeof(szClsidHandler) / sizeof(szClsidHandler[0])) - 1] = 0; - hr = CLSIDFromString(szClsidHandler, &clsid); - } - } - if (SUCCEEDED(hr)) - { - /* Attempt to get an IShellPropSheetExt and an IShellExtInit instance. - Only if both interfaces are supported it's a real shell extension. - Then call IShellExtInit's Initialize method. */ - if (SUCCEEDED(CoCreateInstance(&clsid, NULL, CLSCTX_INPROC_SERVER/* | CLSCTX_NO_CODE_DOWNLOAD */, &IID_IShellPropSheetExt, (LPVOID *)&pspsx))) - { - if (SUCCEEDED(pspsx->lpVtbl->QueryInterface(pspsx, &IID_IShellExtInit, (PVOID *)&psxi))) - { - if (SUCCEEDED(psxi->lpVtbl->Initialize(psxi, NULL, pDataObj, hKey))) - { - /* Add the IShellPropSheetExt instance to the array */ - psxa->pspsx[psxa->uiCount++] = pspsx; - } - else - { - psxi->lpVtbl->Release(psxi); - pspsx->lpVtbl->Release(pspsx); - } - } - else - pspsx->lpVtbl->Release(pspsx); - } - } - } while (psxa->uiCount != psxa->uiAllocated); - } - else - lRet = ERROR_NOT_ENOUGH_MEMORY; - - RegCloseKey(hkPropSheetHandlers); - } - - if (lRet != ERROR_SUCCESS && psxa) - { - SHDestroyPropSheetExtArray((HPSXA)psxa); - psxa = NULL; - } - - return (HPSXA)psxa; -} - -/************************************************************************* - * SHReplaceFromPropSheetExtArray [SHELL32.170] - */ -UINT WINAPI SHReplaceFromPropSheetExtArray(HPSXA hpsxa, UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplaceWith, LPARAM lParam) -{ - PSXA_CALL Call; - UINT i; - PPSXA psxa = (PPSXA)hpsxa; - - TRACE("(%p,%u,%p,%08lx)\n", hpsxa, uPageID, lpfnReplaceWith, lParam); - - if (psxa) - { - ZeroMemory(&Call, sizeof(Call)); - Call.lpfnAddReplaceWith = lpfnReplaceWith; - Call.lParam = lParam; - - /* Call the ReplacePage method of all registered IShellPropSheetExt interfaces. - Each shell extension is only allowed to call the callback once during the callback. */ - for (i = 0; i != psxa->uiCount; i++) - { - Call.bCalled = FALSE; - psxa->pspsx[i]->lpVtbl->ReplacePage(psxa->pspsx[i], uPageID, PsxaCall, (LPARAM)&Call); - } - - return Call.uiCount; - } - - return 0; -} - -/************************************************************************* - * SHDestroyPropSheetExtArray [SHELL32.169] - */ -void WINAPI SHDestroyPropSheetExtArray(HPSXA hpsxa) -{ - UINT i; - PPSXA psxa = (PPSXA)hpsxa; - - TRACE("(%p)\n", hpsxa); - - if (psxa) - { - for (i = 0; i != psxa->uiCount; i++) - { - psxa->pspsx[i]->lpVtbl->Release(psxa->pspsx[i]); - } - - LocalFree(psxa); - } -} - -/************************************************************************* - * CIDLData_CreateFromIDArray [SHELL32.83] - * - * Create IDataObject from PIDLs?? - */ -HRESULT WINAPI CIDLData_CreateFromIDArray( - LPCITEMIDLIST pidlFolder, - UINT cpidlFiles, - LPCITEMIDLIST *lppidlFiles, - IDataObject **ppdataObject) -{ - UINT i; - HWND hwnd = 0; /*FIXME: who should be hwnd of owner? set to desktop */ - - TRACE("(%p, %d, %p, %p)\n", pidlFolder, cpidlFiles, lppidlFiles, ppdataObject); - if (TRACE_ON(pidl)) - { - pdump (pidlFolder); - for (i=0; icbSize) - ret = E_INVALIDARG; - else - { - LPVOID lpdata = 0;/*LocalAlloc(LMEM_ZEROINIT, 0x4E4);*/ - - if (!lpdata) - ret = E_OUTOFMEMORY; - else - { - /* Initialize and return unknown lpdata structure */ - } - } - - return ret; -} - -/************************************************************************* - * SHFindFiles (SHELL32.90) - */ -BOOL WINAPI SHFindFiles( LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlSaveFile ) -{ - FIXME("%p %p\n", pidlFolder, pidlSaveFile ); - return FALSE; -} - -/************************************************************************* - * SHUpdateImageW (SHELL32.192) - * - * Notifies the shell that an icon in the system image list has been changed. - * - * PARAMS - * pszHashItem [I] Path to file that contains the icon. - * iIndex [I] Zero-based index of the icon in the file. - * uFlags [I] Flags determining the icon attributes. See notes. - * iImageIndex [I] Index of the icon in the system image list. - * - * RETURNS - * Nothing - * - * NOTES - * uFlags can be one or more of the following flags: - * GIL_NOTFILENAME - pszHashItem is not a file name. - * GIL_SIMULATEDOC - Create a document icon using the specified icon. - */ -void WINAPI SHUpdateImageW(LPCWSTR pszHashItem, int iIndex, UINT uFlags, int iImageIndex) -{ - FIXME("%s, %d, 0x%x, %d - stub\n", debugstr_w(pszHashItem), iIndex, uFlags, iImageIndex); -} - -/************************************************************************* - * SHUpdateImageA (SHELL32.191) - * - * See SHUpdateImageW. - */ -VOID WINAPI SHUpdateImageA(LPCSTR pszHashItem, INT iIndex, UINT uFlags, INT iImageIndex) -{ - FIXME("%s, %d, 0x%x, %d - stub\n", debugstr_a(pszHashItem), iIndex, uFlags, iImageIndex); -} - -INT WINAPI SHHandleUpdateImage(LPCITEMIDLIST pidlExtra) -{ - FIXME("%p - stub\n", pidlExtra); - - return -1; -} - -BOOL WINAPI SHObjectProperties(HWND hwnd, DWORD dwType, LPCWSTR szObject, LPCWSTR szPage) -{ - FIXME("%p, 0x%08x, %s, %s - stub\n", hwnd, dwType, debugstr_w(szObject), debugstr_w(szPage)); - - return TRUE; -} - -BOOL WINAPI SHGetNewLinkInfoA(LPCSTR pszLinkTo, LPCSTR pszDir, LPSTR pszName, BOOL *pfMustCopy, - UINT uFlags) -{ - WCHAR wszLinkTo[MAX_PATH]; - WCHAR wszDir[MAX_PATH]; - WCHAR wszName[MAX_PATH]; - BOOL res; - - MultiByteToWideChar(CP_ACP, 0, pszLinkTo, -1, wszLinkTo, MAX_PATH); - MultiByteToWideChar(CP_ACP, 0, pszDir, -1, wszDir, MAX_PATH); - - res = SHGetNewLinkInfoW(wszLinkTo, wszDir, wszName, pfMustCopy, uFlags); - - if (res) - WideCharToMultiByte(CP_ACP, 0, wszName, -1, pszName, MAX_PATH, NULL, NULL); - - return res; -} - -BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy, - UINT uFlags) -{ - const WCHAR *basename; - WCHAR *dst_basename; - int i=2; - static const WCHAR lnkformat[] = {'%','s','.','l','n','k',0}; - static const WCHAR lnkformatnum[] = {'%','s',' ','(','%','d',')','.','l','n','k',0}; - - TRACE("(%s, %s, %p, %p, 0x%08x)\n", debugstr_w(pszLinkTo), debugstr_w(pszDir), - pszName, pfMustCopy, uFlags); - - *pfMustCopy = FALSE; - - if (uFlags & SHGNLI_PIDL) - { - FIXME("SHGNLI_PIDL flag unsupported\n"); - return FALSE; - } - - if (uFlags) - FIXME("ignoring flags: 0x%08x\n", uFlags); - - /* FIXME: should test if the file is a shortcut or DOS program */ - if (GetFileAttributesW(pszLinkTo) == INVALID_FILE_ATTRIBUTES) - return FALSE; - - basename = strrchrW(pszLinkTo, '\\'); - if (basename) - basename = basename+1; - else - basename = pszLinkTo; - - lstrcpynW(pszName, pszDir, MAX_PATH); - if (!PathAddBackslashW(pszName)) - return FALSE; - - dst_basename = pszName + strlenW(pszName); - - snprintfW(dst_basename, pszName + MAX_PATH - dst_basename, lnkformat, basename); - - while (GetFileAttributesW(pszName) != INVALID_FILE_ATTRIBUTES) - { - snprintfW(dst_basename, pszName + MAX_PATH - dst_basename, lnkformatnum, basename, i); - i++; - } - - return TRUE; -} - -/************************************************************************* - * SHStartNetConnectionDialog (SHELL32.@) - */ -HRESULT WINAPI SHStartNetConnectionDialog(HWND hwnd, LPCSTR pszRemoteName, DWORD dwType) -{ - FIXME("%p, %s, 0x%08x - stub\n", hwnd, debugstr_a(pszRemoteName), dwType); - - return S_OK; -} -/************************************************************************* - * SHEmptyRecycleBinA (SHELL32.@) - */ -HRESULT WINAPI SHEmptyRecycleBinA(HWND hwnd, LPCSTR pszRootPath, DWORD dwFlags) -{ - LPWSTR szRootPathW = NULL; - int len; - HRESULT hr; - - TRACE("%p, %s, 0x%08x\n", hwnd, debugstr_a(pszRootPath), dwFlags); - - if (pszRootPath) - { - len = MultiByteToWideChar(CP_ACP, 0, pszRootPath, -1, NULL, 0); - if (len == 0) - return HRESULT_FROM_WIN32(GetLastError()); - szRootPathW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - if (!szRootPathW) - return E_OUTOFMEMORY; - if (MultiByteToWideChar(CP_ACP, 0, pszRootPath, -1, szRootPathW, len) == 0) - { - HeapFree(GetProcessHeap(), 0, szRootPathW); - return HRESULT_FROM_WIN32(GetLastError()); - } - } - - hr = SHEmptyRecycleBinW(hwnd, szRootPathW, dwFlags); - HeapFree(GetProcessHeap(), 0, szRootPathW); - - return hr; -} - -HRESULT WINAPI SHEmptyRecycleBinW(HWND hwnd, LPCWSTR pszRootPath, DWORD dwFlags) -{ - WCHAR szPath[MAX_PATH] = {0}; - DWORD dwSize, dwType; - LONG ret; - - TRACE("%p, %s, 0x%08x\n", hwnd, debugstr_w(pszRootPath), dwFlags); - - if (!(dwFlags & SHERB_NOCONFIRMATION)) - { - /* FIXME - * enumerate available files - * show confirmation dialog - */ - FIXME("show confirmation dialog\n"); - } - - if (dwFlags & SHERB_NOPROGRESSUI) - { - ret = EmptyRecycleBinW(pszRootPath); - } - else - { - /* FIXME - * show a progress dialog - */ - ret = EmptyRecycleBinW(pszRootPath); - } - - if (!ret) - return HRESULT_FROM_WIN32(GetLastError()); - - if (!(dwFlags & SHERB_NOSOUND)) - { - dwSize = sizeof(szPath); - ret = RegGetValueW(HKEY_CURRENT_USER, - L"AppEvents\\Schemes\\Apps\\Explorer\\EmptyRecycleBin\\.Current", - NULL, - RRF_RT_REG_EXPAND_SZ, - &dwType, - (PVOID)szPath, - &dwSize); - if (ret != ERROR_SUCCESS) - return S_OK; - - if (dwType != REG_EXPAND_SZ) /* type dismatch */ - return S_OK; - - szPath[(sizeof(szPath)/sizeof(WCHAR))-1] = L'\0'; - PlaySoundW(szPath, NULL, SND_FILENAME); - } - return S_OK; -} - -HRESULT WINAPI SHQueryRecycleBinA(LPCSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo) -{ - LPWSTR szRootPathW = NULL; - int len; - HRESULT hr; - - TRACE("%s, %p\n", debugstr_a(pszRootPath), pSHQueryRBInfo); - - if (pszRootPath) - { - len = MultiByteToWideChar(CP_ACP, 0, pszRootPath, -1, NULL, 0); - if (len == 0) - return HRESULT_FROM_WIN32(GetLastError()); - szRootPathW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - if (!szRootPathW) - return E_OUTOFMEMORY; - if (MultiByteToWideChar(CP_ACP, 0, pszRootPath, -1, szRootPathW, len) == 0) - { - HeapFree(GetProcessHeap(), 0, szRootPathW); - return HRESULT_FROM_WIN32(GetLastError()); - } - } - - hr = SHQueryRecycleBinW(szRootPathW, pSHQueryRBInfo); - HeapFree(GetProcessHeap(), 0, szRootPathW); - - return hr; -} - -HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo) -{ - FIXME("%s, %p - stub\n", debugstr_w(pszRootPath), pSHQueryRBInfo); - - if (!(pszRootPath) || (pszRootPath[0] == 0) || - !(pSHQueryRBInfo) || (pSHQueryRBInfo->cbSize < sizeof(SHQUERYRBINFO))) - { - return E_INVALIDARG; - } - - pSHQueryRBInfo->i64Size = 0; - pSHQueryRBInfo->i64NumItems = 0; - - return S_OK; -} - -/************************************************************************* - * SHSetLocalizedName (SHELL32.@) - */ -HRESULT WINAPI SHSetLocalizedName(LPCWSTR pszPath, LPCWSTR pszResModule, int idsRes) -{ - FIXME("%p, %s, %d - stub\n", pszPath, debugstr_w(pszResModule), idsRes); - - return S_OK; -} - -/************************************************************************* - * LinkWindow_RegisterClass (SHELL32.258) - */ -BOOL WINAPI LinkWindow_RegisterClass(void) -{ - FIXME("()\n"); - return TRUE; -} - -/************************************************************************* - * LinkWindow_UnregisterClass (SHELL32.259) - */ -BOOL WINAPI LinkWindow_UnregisterClass(void) -{ - FIXME("()\n"); - return TRUE; - -} - -/************************************************************************* - * SHFlushSFCache (SHELL32.526) - * - * Notifies the shell that a user-specified special folder location has changed. - * - * NOTES - * In Wine, the shell folder registry values are not cached, so this function - * has no effect. - */ -void WINAPI SHFlushSFCache(void) -{ -} - -/************************************************************************* - * SHGetImageList (SHELL32.727) - * - * Returns a copy of a shell image list. - * - * NOTES - * Windows XP features 4 sizes of image list, and Vista 5. Wine currently - * only supports the traditional small and large image lists, so requests - * for the others will currently fail. - */ -HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv) -{ - HIMAGELIST hLarge, hSmall; - HIMAGELIST hNew; - HRESULT ret = E_FAIL; - - /* Wine currently only maintains large and small image lists */ - if ((iImageList != SHIL_LARGE) && (iImageList != SHIL_SMALL) && (iImageList != SHIL_SYSSMALL)) - { - FIXME("Unsupported image list %i requested\n", iImageList); - return E_FAIL; - } - - Shell_GetImageLists(&hLarge, &hSmall); - hNew = ImageList_Duplicate(iImageList == SHIL_LARGE ? hLarge : hSmall); - - /* Get the interface for the new image list */ - if (hNew) - { - ret = HIMAGELIST_QueryInterface(hNew, riid, ppv); - ImageList_Destroy(hNew); - } - - return ret; -} - -/************************************************************************* - * SHParseDisplayName [shell version 6.0] - */ -HRESULT WINAPI SHParseDisplayName(LPCWSTR pszName, IBindCtx *pbc, -LPITEMIDLIST *ppidl, SFGAOF sfgaoIn, SFGAOF *psfgaoOut) -{ - IShellFolder * psfDesktop; - HRESULT hr=E_FAIL; - ULONG dwAttr=sfgaoIn; - - if(!ppidl) - return E_INVALIDARG; - - if (!pszName || !psfgaoOut) - { - *ppidl = NULL; - return E_INVALIDARG; - } - - hr = SHGetDesktopFolder(&psfDesktop); - if (FAILED(hr)) - { - *ppidl = NULL; - return hr; - } - - hr = IShellFolder_ParseDisplayName(psfDesktop, (HWND)NULL, pbc, (LPOLESTR)pszName, (ULONG *)NULL, ppidl, &dwAttr); - - IShellFolder_Release(psfDesktop); - - if (SUCCEEDED(hr)) - *psfgaoOut = dwAttr; - else - *ppidl = NULL; - - return hr; -} diff --git a/reactos/dll/win32/shell32/shellpath.c b/reactos/dll/win32/shell32/shellpath.c deleted file mode 100644 index 76fc17c3bf2..00000000000 --- a/reactos/dll/win32/shell32/shellpath.c +++ /dev/null @@ -1,2029 +0,0 @@ -/* - * Path Functions - * - * Copyright 1998, 1999, 2000 Juergen Schmied - * Copyright 2004 Juan Lang - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * NOTES: - * - * Many of these functions are in SHLWAPI.DLL also - * - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -/* - ########## Combining and Constructing paths ########## -*/ - -/************************************************************************* - * PathAppend [SHELL32.36] - */ -BOOL WINAPI PathAppendAW( - LPVOID lpszPath1, - LPCVOID lpszPath2) -{ - if (SHELL_OsIsUnicode()) - return PathAppendW(lpszPath1, lpszPath2); - return PathAppendA(lpszPath1, lpszPath2); -} - -/************************************************************************* - * PathBuildRoot [SHELL32.30] - */ -LPVOID WINAPI PathBuildRootAW(LPVOID lpszPath, int drive) -{ - if(SHELL_OsIsUnicode()) - return PathBuildRootW(lpszPath, drive); - return PathBuildRootA(lpszPath, drive); -} - -/************************************************************************* - * PathGetExtensionA [internal] - * - * NOTES - * exported by ordinal - * return value points to the first char after the dot - */ -static LPSTR PathGetExtensionA(LPCSTR lpszPath) -{ - TRACE("(%s)\n",lpszPath); - - lpszPath = PathFindExtensionA(lpszPath); - return (LPSTR)(*lpszPath?(lpszPath+1):lpszPath); -} - -/************************************************************************* - * PathGetExtensionW [internal] - */ -LPWSTR PathGetExtensionW(LPCWSTR lpszPath) -{ - TRACE("(%s)\n",debugstr_w(lpszPath)); - - lpszPath = PathFindExtensionW(lpszPath); - return (LPWSTR)(*lpszPath?(lpszPath+1):lpszPath); -} - -/************************************************************************* - * SHPathGetExtension [SHELL32.158] - */ -LPVOID WINAPI SHPathGetExtensionW(LPCWSTR lpszPath, DWORD void1, DWORD void2) -{ - return PathGetExtensionW(lpszPath); -} - -/************************************************************************* - * PathRemoveFileSpec [SHELL32.35] - */ -BOOL WINAPI PathRemoveFileSpecAW(LPVOID lpszPath) -{ - if (SHELL_OsIsUnicode()) - return PathRemoveFileSpecW(lpszPath); - return PathRemoveFileSpecA(lpszPath); -} - -/* - Path Manipulations -*/ - -/************************************************************************* - * PathGetShortPathA [internal] - */ -static void PathGetShortPathA(LPSTR pszPath) -{ - CHAR path[MAX_PATH]; - - TRACE("%s\n", pszPath); - - if (GetShortPathNameA(pszPath, path, MAX_PATH)) - { - lstrcpyA(pszPath, path); - } -} - -/************************************************************************* - * PathGetShortPathW [internal] - */ -static void PathGetShortPathW(LPWSTR pszPath) -{ - WCHAR path[MAX_PATH]; - - TRACE("%s\n", debugstr_w(pszPath)); - - if (GetShortPathNameW(pszPath, path, MAX_PATH)) - { - wcscpy(pszPath, path); - } -} - -/************************************************************************* - * PathGetShortPath [SHELL32.92] - */ -VOID WINAPI PathGetShortPathAW(LPVOID pszPath) -{ - if(SHELL_OsIsUnicode()) - PathGetShortPathW(pszPath); - PathGetShortPathA(pszPath); -} - -/* - ########## Path Testing ########## -*/ - -/************************************************************************* - * PathIsRoot [SHELL32.29] - */ -BOOL WINAPI PathIsRootAW(LPCVOID lpszPath) -{ - if (SHELL_OsIsUnicode()) - return PathIsRootW(lpszPath); - return PathIsRootA(lpszPath); -} - -/************************************************************************* - * PathIsExeA [internal] - */ -static BOOL PathIsExeA (LPCSTR lpszPath) -{ - LPCSTR lpszExtension = PathGetExtensionA(lpszPath); - int i; - static const char * const lpszExtensions[] = - {"exe", "com", "pif", "cmd", "bat", "scf", "scr", NULL }; - - TRACE("path=%s\n",lpszPath); - - for(i=0; lpszExtensions[i]; i++) - if (!lstrcmpiA(lpszExtension,lpszExtensions[i])) return TRUE; - - return FALSE; -} - -/************************************************************************* - * PathIsExeW [internal] - */ -static BOOL PathIsExeW (LPCWSTR lpszPath) -{ - LPCWSTR lpszExtension = PathGetExtensionW(lpszPath); - int i; - static const WCHAR lpszExtensions[][4] = - {{'e','x','e','\0'}, {'c','o','m','\0'}, {'p','i','f','\0'}, - {'c','m','d','\0'}, {'b','a','t','\0'}, {'s','c','f','\0'}, - {'s','c','r','\0'}, {'\0'} }; - - TRACE("path=%s\n",debugstr_w(lpszPath)); - - for(i=0; lpszExtensions[i][0]; i++) - if (!strcmpiW(lpszExtension,lpszExtensions[i])) return TRUE; - - return FALSE; -} - -/************************************************************************* - * PathIsExe [SHELL32.43] - */ -BOOL WINAPI PathIsExeAW (LPCVOID path) -{ - if (SHELL_OsIsUnicode()) - return PathIsExeW (path); - return PathIsExeA(path); -} - -/************************************************************************* - * PathFileExists [SHELL32.45] - */ -BOOL WINAPI PathFileExistsAW (LPCVOID lpszPath) -{ - if (SHELL_OsIsUnicode()) - return PathFileExistsW (lpszPath); - return PathFileExistsA (lpszPath); -} - -/************************************************************************* - * PathIsSameRoot [SHELL32.650] - */ -BOOL WINAPI PathIsSameRootAW(LPCVOID lpszPath1, LPCVOID lpszPath2) -{ - if (SHELL_OsIsUnicode()) - return PathIsSameRootW(lpszPath1, lpszPath2); - return PathIsSameRootA(lpszPath1, lpszPath2); -} - -/************************************************************************* - * IsLFNDriveA [SHELL32.41] - */ -BOOL WINAPI IsLFNDriveA(LPCSTR lpszPath) -{ - DWORD fnlen; - - if (!GetVolumeInformationA(lpszPath, NULL, 0, NULL, &fnlen, NULL, NULL, 0)) - return FALSE; - return fnlen > 12; -} - -/************************************************************************* - * IsLFNDriveW [SHELL32.42] - */ -BOOL WINAPI IsLFNDriveW(LPCWSTR lpszPath) -{ - DWORD fnlen; - - if (!GetVolumeInformationW(lpszPath, NULL, 0, NULL, &fnlen, NULL, NULL, 0)) - return FALSE; - return fnlen > 12; -} - -/************************************************************************* - * IsLFNDrive [SHELL32.119] - */ -BOOL WINAPI IsLFNDriveAW(LPCVOID lpszPath) -{ - if (SHELL_OsIsUnicode()) - return IsLFNDriveW(lpszPath); - return IsLFNDriveA(lpszPath); -} - -/* - ########## Creating Something Unique ########## -*/ -/************************************************************************* - * PathMakeUniqueNameA [internal] - */ -BOOL WINAPI PathMakeUniqueNameA( - LPSTR lpszBuffer, - DWORD dwBuffSize, - LPCSTR lpszShortName, - LPCSTR lpszLongName, - LPCSTR lpszPathName) -{ - FIXME("%p %u %s %s %s stub\n", - lpszBuffer, dwBuffSize, debugstr_a(lpszShortName), - debugstr_a(lpszLongName), debugstr_a(lpszPathName)); - return TRUE; -} - -/************************************************************************* - * PathMakeUniqueNameW [internal] - */ -BOOL WINAPI PathMakeUniqueNameW( - LPWSTR lpszBuffer, - DWORD dwBuffSize, - LPCWSTR lpszShortName, - LPCWSTR lpszLongName, - LPCWSTR lpszPathName) -{ - FIXME("%p %u %s %s %s stub\n", - lpszBuffer, dwBuffSize, debugstr_w(lpszShortName), - debugstr_w(lpszLongName), debugstr_w(lpszPathName)); - return TRUE; -} - -/************************************************************************* - * PathMakeUniqueName [SHELL32.47] - */ -BOOL WINAPI PathMakeUniqueNameAW( - LPVOID lpszBuffer, - DWORD dwBuffSize, - LPCVOID lpszShortName, - LPCVOID lpszLongName, - LPCVOID lpszPathName) -{ - if (SHELL_OsIsUnicode()) - return PathMakeUniqueNameW(lpszBuffer,dwBuffSize, lpszShortName,lpszLongName,lpszPathName); - return PathMakeUniqueNameA(lpszBuffer,dwBuffSize, lpszShortName,lpszLongName,lpszPathName); -} - -/************************************************************************* - * PathYetAnotherMakeUniqueName [SHELL32.75] - * - * NOTES - * exported by ordinal - */ -BOOL WINAPI PathYetAnotherMakeUniqueName( - LPWSTR lpszBuffer, - LPCWSTR lpszPathName, - LPCWSTR lpszShortName, - LPCWSTR lpszLongName) -{ - FIXME("(%p, %s, %s ,%s):stub.\n", - lpszBuffer, debugstr_w(lpszPathName), debugstr_w(lpszShortName), debugstr_w(lpszLongName)); - return TRUE; -} - - -/* - ########## cleaning and resolving paths ########## - */ - -/************************************************************************* - * PathCleanupSpec [SHELL32.171] - * - * lpszFile is changed in place. - */ -int WINAPI PathCleanupSpec( LPCWSTR lpszPathW, LPWSTR lpszFileW ) -{ - int i = 0; - DWORD rc = 0; - int length = 0; - - if (SHELL_OsIsUnicode()) - { - LPWSTR p = lpszFileW; - - TRACE("Cleanup %s\n",debugstr_w(lpszFileW)); - - if (lpszPathW) - length = wcslen(lpszPathW); - - while (*p) - { - int gct = PathGetCharTypeW(*p); - if (gct == GCT_INVALID || gct == GCT_WILD || gct == GCT_SEPARATOR) - { - lpszFileW[i]='-'; - rc |= PCS_REPLACEDCHAR; - } - else - lpszFileW[i]=*p; - i++; - p++; - if (length + i == MAX_PATH) - { - rc |= PCS_FATAL | PCS_PATHTOOLONG; - break; - } - } - lpszFileW[i]=0; - } - else - { - LPSTR lpszFileA = (LPSTR)lpszFileW; - LPCSTR lpszPathA = (LPCSTR)lpszPathW; - LPSTR p = lpszFileA; - - TRACE("Cleanup %s\n",debugstr_a(lpszFileA)); - - if (lpszPathA) - length = strlen(lpszPathA); - - while (*p) - { - int gct = PathGetCharTypeA(*p); - if (gct == GCT_INVALID || gct == GCT_WILD || gct == GCT_SEPARATOR) - { - lpszFileA[i]='-'; - rc |= PCS_REPLACEDCHAR; - } - else - lpszFileA[i]=*p; - i++; - p++; - if (length + i == MAX_PATH) - { - rc |= PCS_FATAL | PCS_PATHTOOLONG; - break; - } - } - lpszFileA[i]=0; - } - return rc; -} - -/************************************************************************* - * PathQualifyA [SHELL32] - */ -BOOL WINAPI PathQualifyA(LPCSTR pszPath) -{ - FIXME("%s\n",pszPath); - return 0; -} - -/************************************************************************* - * PathQualifyW [SHELL32] - */ -BOOL WINAPI PathQualifyW(LPCWSTR pszPath) -{ - FIXME("%s\n",debugstr_w(pszPath)); - return 0; -} - -/************************************************************************* - * PathQualify [SHELL32.49] - */ -BOOL WINAPI PathQualifyAW(LPCVOID pszPath) -{ - if (SHELL_OsIsUnicode()) - return PathQualifyW(pszPath); - return PathQualifyA(pszPath); -} - -/************************************************************************* - * PathResolveA [SHELL32.51] - */ -BOOL WINAPI PathResolveA( - LPSTR lpszPath, - LPCSTR *alpszPaths, - DWORD dwFlags) -{ - FIXME("(%s,%p,0x%08x),stub!\n", - lpszPath, *alpszPaths, dwFlags); - return 0; -} - -/************************************************************************* - * PathResolveW [SHELL32] - */ -BOOL WINAPI PathResolveW( - LPWSTR lpszPath, - LPCWSTR *alpszPaths, - DWORD dwFlags) -{ - FIXME("(%s,%p,0x%08x),stub!\n", - debugstr_w(lpszPath), debugstr_w(*alpszPaths), dwFlags); - return 0; -} - -/************************************************************************* - * PathResolve [SHELL32.51] - */ -BOOL WINAPI PathResolveAW( - LPVOID lpszPath, - LPCVOID *alpszPaths, - DWORD dwFlags) -{ - if (SHELL_OsIsUnicode()) - return PathResolveW(lpszPath, (LPCWSTR*)alpszPaths, dwFlags); - return PathResolveA(lpszPath, (LPCSTR*)alpszPaths, dwFlags); -} - -/************************************************************************* -* PathProcessCommandA [SHELL32.653] -*/ -LONG WINAPI PathProcessCommandA ( - LPCSTR lpszPath, - LPSTR lpszBuff, - DWORD dwBuffSize, - DWORD dwFlags) -{ - FIXME("%s %p 0x%04x 0x%04x stub\n", - lpszPath, lpszBuff, dwBuffSize, dwFlags); - if(!lpszPath) return -1; - if(lpszBuff) strcpy(lpszBuff, lpszPath); - return strlen(lpszPath); -} - -/************************************************************************* -* PathProcessCommandW -*/ -LONG WINAPI PathProcessCommandW ( - LPCWSTR lpszPath, - LPWSTR lpszBuff, - DWORD dwBuffSize, - DWORD dwFlags) -{ - FIXME("(%s, %p, 0x%04x, 0x%04x) stub\n", - debugstr_w(lpszPath), lpszBuff, dwBuffSize, dwFlags); - if(!lpszPath) return -1; - if(lpszBuff) wcscpy(lpszBuff, lpszPath); - return wcslen(lpszPath); -} - -/************************************************************************* -* PathProcessCommand (SHELL32.653) -*/ -LONG WINAPI PathProcessCommandAW ( - LPCVOID lpszPath, - LPVOID lpszBuff, - DWORD dwBuffSize, - DWORD dwFlags) -{ - if (SHELL_OsIsUnicode()) - return PathProcessCommandW(lpszPath, lpszBuff, dwBuffSize, dwFlags); - return PathProcessCommandA(lpszPath, lpszBuff, dwBuffSize, dwFlags); -} - -/* - ########## special ########## -*/ - -static const WCHAR szCurrentVersion[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\0'}; -static const WCHAR Administrative_ToolsW[] = {'A','d','m','i','n','i','s','t','r','a','t','i','v','e',' ','T','o','o','l','s','\0'}; -static const WCHAR AppDataW[] = {'A','p','p','D','a','t','a','\0'}; -static const WCHAR CacheW[] = {'C','a','c','h','e','\0'}; -static const WCHAR CD_BurningW[] = {'C','D',' ','B','u','r','n','i','n','g','\0'}; -static const WCHAR Common_Administrative_ToolsW[] = {'C','o','m','m','o','n',' ','A','d','m','i','n','i','s','t','r','a','t','i','v','e',' ','T','o','o','l','s','\0'}; -static const WCHAR Common_AppDataW[] = {'C','o','m','m','o','n',' ','A','p','p','D','a','t','a','\0'}; -static const WCHAR Common_DesktopW[] = {'C','o','m','m','o','n',' ','D','e','s','k','t','o','p','\0'}; -static const WCHAR Common_DocumentsW[] = {'C','o','m','m','o','n',' ','D','o','c','u','m','e','n','t','s','\0'}; -static const WCHAR CommonFilesDirW[] = {'C','o','m','m','o','n','F','i','l','e','s','D','i','r','\0'}; -static const WCHAR CommonMusicW[] = {'C','o','m','m','o','n','M','u','s','i','c','\0'}; -static const WCHAR CommonPicturesW[] = {'C','o','m','m','o','n','P','i','c','t','u','r','e','s','\0'}; -static const WCHAR Common_ProgramsW[] = {'C','o','m','m','o','n',' ','P','r','o','g','r','a','m','s','\0'}; -static const WCHAR Common_StartUpW[] = {'C','o','m','m','o','n',' ','S','t','a','r','t','U','p','\0'}; -static const WCHAR Common_Start_MenuW[] = {'C','o','m','m','o','n',' ','S','t','a','r','t',' ','M','e','n','u','\0'}; -static const WCHAR Common_TemplatesW[] = {'C','o','m','m','o','n',' ','T','e','m','p','l','a','t','e','s','\0'}; -static const WCHAR CommonVideoW[] = {'C','o','m','m','o','n','V','i','d','e','o','\0'}; -static const WCHAR CookiesW[] = {'C','o','o','k','i','e','s','\0'}; -static const WCHAR DesktopW[] = {'D','e','s','k','t','o','p','\0'}; -static const WCHAR FavoritesW[] = {'F','a','v','o','r','i','t','e','s','\0'}; -static const WCHAR FontsW[] = {'F','o','n','t','s','\0'}; -static const WCHAR HistoryW[] = {'H','i','s','t','o','r','y','\0'}; -static const WCHAR Local_AppDataW[] = {'L','o','c','a','l',' ','A','p','p','D','a','t','a','\0'}; -static const WCHAR My_MusicW[] = {'M','y',' ','M','u','s','i','c','\0'}; -static const WCHAR My_PicturesW[] = {'M','y',' ','P','i','c','t','u','r','e','s','\0'}; -static const WCHAR My_VideoW[] = {'M','y',' ','V','i','d','e','o','\0'}; -static const WCHAR NetHoodW[] = {'N','e','t','H','o','o','d','\0'}; -static const WCHAR PersonalW[] = {'P','e','r','s','o','n','a','l','\0'}; -static const WCHAR PrintHoodW[] = {'P','r','i','n','t','H','o','o','d','\0'}; -static const WCHAR ProgramFilesDirW[] = {'P','r','o','g','r','a','m','F','i','l','e','s','D','i','r','\0'}; -static const WCHAR ProgramsW[] = {'P','r','o','g','r','a','m','s','\0'}; -static const WCHAR RecentW[] = {'R','e','c','e','n','t','\0'}; -static const WCHAR ResourcesW[] = {'R','e','s','o','u','r','c','e','s','\0'}; -static const WCHAR SendToW[] = {'S','e','n','d','T','o','\0'}; -static const WCHAR StartUpW[] = {'S','t','a','r','t','U','p','\0'}; -static const WCHAR Start_MenuW[] = {'S','t','a','r','t',' ','M','e','n','u','\0'}; -static const WCHAR TemplatesW[] = {'T','e','m','p','l','a','t','e','s','\0'}; -static const WCHAR DefaultW[] = {'.','D','e','f','a','u','l','t','\0'}; -static const WCHAR AllUsersProfileW[] = {'%','A','L','L','U','S','E','R','S','P','R','O','F','I','L','E','%','\0'}; -static const WCHAR UserProfileW[] = {'%','U','S','E','R','P','R','O','F','I','L','E','%','\0'}; -static const WCHAR SystemDriveW[] = {'%','S','y','s','t','e','m','D','r','i','v','e','%','\0'}; -static const WCHAR ProfileListW[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s',' ','N','T','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','P','r','o','f','i','l','e','L','i','s','t',0}; -static const WCHAR ProfilesDirectoryW[] = {'P','r','o','f','i','l','e','s','D','i','r','e','c','t','o','r','y',0}; -static const WCHAR AllUsersProfileValueW[] = {'A','l','l','U','s','e','r','s','P','r','o','f','i','l','e','\0'}; -static const WCHAR szSHFolders[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','E','x','p','l','o','r','e','r','\\','S','h','e','l','l',' ','F','o','l','d','e','r','s','\0'}; -static const WCHAR szSHUserFolders[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','E','x','p','l','o','r','e','r','\\','U','s','e','r',' ','S','h','e','l','l',' ','F','o','l','d','e','r','s','\0'}; -/* This defaults to L"Documents and Settings" on Windows 2000/XP, but we're - * acting more Windows 9x-like for now. - */ -static const WCHAR szDefaultProfileDirW[] = {'p','r','o','f','i','l','e','s','\0'}; -static const WCHAR AllUsersW[] = {'A','l','l',' ','U','s','e','r','s','\0'}; - -typedef enum _CSIDL_Type { - CSIDL_Type_User, - CSIDL_Type_AllUsers, - CSIDL_Type_CurrVer, - CSIDL_Type_Disallowed, - CSIDL_Type_NonExistent, - CSIDL_Type_WindowsPath, - CSIDL_Type_SystemPath, -} CSIDL_Type; - -typedef struct -{ - CSIDL_Type type; - LPCWSTR szValueName; - LPCWSTR szDefaultPath; /* fallback string or resource ID */ -} CSIDL_DATA; - -static const CSIDL_DATA CSIDL_Data[] = -{ - { /* 0x00 - CSIDL_DESKTOP */ - CSIDL_Type_User, - DesktopW, - MAKEINTRESOURCEW(IDS_DESKTOPDIRECTORY) - }, - { /* 0x01 - CSIDL_INTERNET */ - CSIDL_Type_Disallowed, - NULL, - NULL - }, - { /* 0x02 - CSIDL_PROGRAMS */ - CSIDL_Type_User, - ProgramsW, - MAKEINTRESOURCEW(IDS_PROGRAMS) - }, - { /* 0x03 - CSIDL_CONTROLS (.CPL files) */ - CSIDL_Type_SystemPath, - NULL, - NULL - }, - { /* 0x04 - CSIDL_PRINTERS */ - CSIDL_Type_SystemPath, - NULL, - NULL - }, - { /* 0x05 - CSIDL_PERSONAL */ - CSIDL_Type_User, - PersonalW, - MAKEINTRESOURCEW(IDS_PERSONAL) - }, - { /* 0x06 - CSIDL_FAVORITES */ - CSIDL_Type_User, - FavoritesW, - MAKEINTRESOURCEW(IDS_FAVORITES) - }, - { /* 0x07 - CSIDL_STARTUP */ - CSIDL_Type_User, - StartUpW, - MAKEINTRESOURCEW(IDS_STARTUP) - }, - { /* 0x08 - CSIDL_RECENT */ - CSIDL_Type_User, - RecentW, - MAKEINTRESOURCEW(IDS_RECENT) - }, - { /* 0x09 - CSIDL_SENDTO */ - CSIDL_Type_User, - SendToW, - MAKEINTRESOURCEW(IDS_SENDTO) - }, - { /* 0x0a - CSIDL_BITBUCKET - Recycle Bin */ - CSIDL_Type_Disallowed, - NULL, - NULL, - }, - { /* 0x0b - CSIDL_STARTMENU */ - CSIDL_Type_User, - Start_MenuW, - MAKEINTRESOURCEW(IDS_STARTMENU) - }, - { /* 0x0c - CSIDL_MYDOCUMENTS */ - CSIDL_Type_Disallowed, /* matches WinXP--can't get its path */ - NULL, - NULL - }, - { /* 0x0d - CSIDL_MYMUSIC */ - CSIDL_Type_User, - My_MusicW, - MAKEINTRESOURCEW(IDS_MYMUSIC) - }, - { /* 0x0e - CSIDL_MYVIDEO */ - CSIDL_Type_User, - My_VideoW, - MAKEINTRESOURCEW(IDS_MYVIDEO) - }, - { /* 0x0f - unassigned */ - CSIDL_Type_Disallowed, - NULL, - NULL, - }, - { /* 0x10 - CSIDL_DESKTOPDIRECTORY */ - CSIDL_Type_User, - DesktopW, - MAKEINTRESOURCEW(IDS_DESKTOPDIRECTORY) - }, - { /* 0x11 - CSIDL_DRIVES */ - CSIDL_Type_Disallowed, - NULL, - NULL, - }, - { /* 0x12 - CSIDL_NETWORK */ - CSIDL_Type_Disallowed, - NULL, - NULL, - }, - { /* 0x13 - CSIDL_NETHOOD */ - CSIDL_Type_User, - NetHoodW, - MAKEINTRESOURCEW(IDS_NETHOOD) - }, - { /* 0x14 - CSIDL_FONTS */ - CSIDL_Type_WindowsPath, - FontsW, - FontsW - }, - { /* 0x15 - CSIDL_TEMPLATES */ - CSIDL_Type_User, - TemplatesW, - MAKEINTRESOURCEW(IDS_TEMPLATES) - }, - { /* 0x16 - CSIDL_COMMON_STARTMENU */ - CSIDL_Type_AllUsers, - Common_Start_MenuW, - MAKEINTRESOURCEW(IDS_STARTMENU) - }, - { /* 0x17 - CSIDL_COMMON_PROGRAMS */ - CSIDL_Type_AllUsers, - Common_ProgramsW, - MAKEINTRESOURCEW(IDS_PROGRAMS) - }, - { /* 0x18 - CSIDL_COMMON_STARTUP */ - CSIDL_Type_AllUsers, - Common_StartUpW, - MAKEINTRESOURCEW(IDS_STARTUP) - }, - { /* 0x19 - CSIDL_COMMON_DESKTOPDIRECTORY */ - CSIDL_Type_AllUsers, - Common_DesktopW, - MAKEINTRESOURCEW(IDS_DESKTOP) - }, - { /* 0x1a - CSIDL_APPDATA */ - CSIDL_Type_User, - AppDataW, - MAKEINTRESOURCEW(IDS_APPDATA) - }, - { /* 0x1b - CSIDL_PRINTHOOD */ - CSIDL_Type_User, - PrintHoodW, - MAKEINTRESOURCEW(IDS_PRINTHOOD) - }, - { /* 0x1c - CSIDL_LOCAL_APPDATA */ - CSIDL_Type_User, - Local_AppDataW, - MAKEINTRESOURCEW(IDS_LOCAL_APPDATA) - }, - { /* 0x1d - CSIDL_ALTSTARTUP */ - CSIDL_Type_NonExistent, - NULL, - NULL - }, - { /* 0x1e - CSIDL_COMMON_ALTSTARTUP */ - CSIDL_Type_NonExistent, - NULL, - NULL - }, - { /* 0x1f - CSIDL_COMMON_FAVORITES */ - CSIDL_Type_AllUsers, - FavoritesW, - MAKEINTRESOURCEW(IDS_FAVORITES) - }, - { /* 0x20 - CSIDL_INTERNET_CACHE */ - CSIDL_Type_User, - CacheW, - MAKEINTRESOURCEW(IDS_INTERNET_CACHE) - }, - { /* 0x21 - CSIDL_COOKIES */ - CSIDL_Type_User, - CookiesW, - MAKEINTRESOURCEW(IDS_COOKIES) - }, - { /* 0x22 - CSIDL_HISTORY */ - CSIDL_Type_User, - HistoryW, - MAKEINTRESOURCEW(IDS_HISTORY) - }, - { /* 0x23 - CSIDL_COMMON_APPDATA */ - CSIDL_Type_AllUsers, - Common_AppDataW, - MAKEINTRESOURCEW(IDS_APPDATA) - }, - { /* 0x24 - CSIDL_WINDOWS */ - CSIDL_Type_WindowsPath, - NULL, - NULL - }, - { /* 0x25 - CSIDL_SYSTEM */ - CSIDL_Type_SystemPath, - NULL, - NULL - }, - { /* 0x26 - CSIDL_PROGRAM_FILES */ - CSIDL_Type_CurrVer, - ProgramFilesDirW, - MAKEINTRESOURCEW(IDS_PROGRAM_FILES) - }, - { /* 0x27 - CSIDL_MYPICTURES */ - CSIDL_Type_User, - My_PicturesW, - MAKEINTRESOURCEW(IDS_MYPICTURES) - }, - { /* 0x28 - CSIDL_PROFILE */ - CSIDL_Type_User, - NULL, - NULL - }, - { /* 0x29 - CSIDL_SYSTEMX86 */ - CSIDL_Type_NonExistent, - NULL, - NULL - }, - { /* 0x2a - CSIDL_PROGRAM_FILESX86 */ - CSIDL_Type_NonExistent, - NULL, - NULL - }, - { /* 0x2b - CSIDL_PROGRAM_FILES_COMMON */ - CSIDL_Type_CurrVer, - CommonFilesDirW, - MAKEINTRESOURCEW(IDS_PROGRAM_FILES_COMMON) - }, - { /* 0x2c - CSIDL_PROGRAM_FILES_COMMONX86 */ - CSIDL_Type_NonExistent, - NULL, - NULL - }, - { /* 0x2d - CSIDL_COMMON_TEMPLATES */ - CSIDL_Type_AllUsers, - Common_TemplatesW, - MAKEINTRESOURCEW(IDS_TEMPLATES) - }, - { /* 0x2e - CSIDL_COMMON_DOCUMENTS */ - CSIDL_Type_AllUsers, - Common_DocumentsW, - MAKEINTRESOURCEW(IDS_COMMON_DOCUMENTS) - }, - { /* 0x2f - CSIDL_COMMON_ADMINTOOLS */ - CSIDL_Type_AllUsers, - Common_Administrative_ToolsW, - MAKEINTRESOURCEW(IDS_ADMINTOOLS) - }, - { /* 0x30 - CSIDL_ADMINTOOLS */ - CSIDL_Type_User, - Administrative_ToolsW, - MAKEINTRESOURCEW(IDS_ADMINTOOLS) - }, - { /* 0x31 - CSIDL_CONNECTIONS */ - CSIDL_Type_Disallowed, - NULL, - NULL - }, - { /* 0x32 - unassigned */ - CSIDL_Type_Disallowed, - NULL, - NULL - }, - { /* 0x33 - unassigned */ - CSIDL_Type_Disallowed, - NULL, - NULL - }, - { /* 0x34 - unassigned */ - CSIDL_Type_Disallowed, - NULL, - NULL - }, - { /* 0x35 - CSIDL_COMMON_MUSIC */ - CSIDL_Type_AllUsers, - CommonMusicW, - MAKEINTRESOURCEW(IDS_COMMON_MUSIC) - }, - { /* 0x36 - CSIDL_COMMON_PICTURES */ - CSIDL_Type_AllUsers, - CommonPicturesW, - MAKEINTRESOURCEW(IDS_COMMON_PICTURES) - }, - { /* 0x37 - CSIDL_COMMON_VIDEO */ - CSIDL_Type_AllUsers, - CommonVideoW, - MAKEINTRESOURCEW(IDS_COMMON_VIDEO) - }, - { /* 0x38 - CSIDL_RESOURCES */ - CSIDL_Type_WindowsPath, - NULL, - ResourcesW - }, - { /* 0x39 - CSIDL_RESOURCES_LOCALIZED */ - CSIDL_Type_NonExistent, - NULL, - NULL - }, - { /* 0x3a - CSIDL_COMMON_OEM_LINKS */ - CSIDL_Type_NonExistent, - NULL, - NULL - }, - { /* 0x3b - CSIDL_CDBURN_AREA */ - CSIDL_Type_User, - CD_BurningW, - MAKEINTRESOURCEW(IDS_CDBURN_AREA) - }, - { /* 0x3c unassigned */ - CSIDL_Type_Disallowed, - NULL, - NULL - }, - { /* 0x3d - CSIDL_COMPUTERSNEARME */ - CSIDL_Type_Disallowed, /* FIXME */ - NULL, - NULL - }, - { /* 0x3e - CSIDL_PROFILES */ - CSIDL_Type_Disallowed, /* oddly, this matches WinXP */ - NULL, - NULL - } -}; - -/* Gets the value named value from the registry key - * rootKey\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders - * (or from rootKey\userPrefix\... if userPrefix is not NULL) into path, which - * is assumed to be MAX_PATH WCHARs in length. - * If it exists, expands the value and writes the expanded value to - * rootKey\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - * Returns successful error code if the value was retrieved from the registry, - * and a failure otherwise. - */ -static HRESULT _SHGetUserShellFolderPath(HKEY rootKey, LPCWSTR userPrefix, - LPCWSTR value, LPWSTR path) -{ - HRESULT hr; - WCHAR shellFolderPath[MAX_PATH], userShellFolderPath[MAX_PATH]; - LPCWSTR pShellFolderPath, pUserShellFolderPath; - DWORD dwDisp, dwType, dwPathLen; - HKEY userShellFolderKey, shellFolderKey; - - TRACE("%p,%s,%s,%p\n",rootKey, debugstr_w(userPrefix), debugstr_w(value), - path); - - if (userPrefix) - { - wcscpy(shellFolderPath, userPrefix); - PathAddBackslashW(shellFolderPath); - wcscat(shellFolderPath, szSHFolders); - pShellFolderPath = shellFolderPath; - wcscpy(userShellFolderPath, userPrefix); - PathAddBackslashW(userShellFolderPath); - wcscat(userShellFolderPath, szSHUserFolders); - pUserShellFolderPath = userShellFolderPath; - } - else - { - pUserShellFolderPath = szSHUserFolders; - pShellFolderPath = szSHFolders; - } - - if (RegCreateKeyExW(rootKey, pShellFolderPath, 0, NULL, 0, KEY_SET_VALUE, - NULL, &shellFolderKey, &dwDisp)) - { - TRACE("Failed to create %s\n", debugstr_w(pShellFolderPath)); - return E_FAIL; - } - if (RegCreateKeyExW(rootKey, pUserShellFolderPath, 0, NULL, 0, - KEY_QUERY_VALUE, NULL, &userShellFolderKey, &dwDisp)) - { - TRACE("Failed to create %s\n", - debugstr_w(pUserShellFolderPath)); - RegCloseKey(shellFolderKey); - return E_FAIL; - } - - dwPathLen = MAX_PATH * sizeof(WCHAR); - - if (!RegQueryValueExW(userShellFolderKey, value, NULL, &dwType, - (LPBYTE)path, &dwPathLen) && (dwType == REG_EXPAND_SZ || dwType == REG_SZ)) - { - LONG ret; - - dwPathLen /= sizeof(WCHAR); - - path[dwPathLen] = '\0'; - if (dwType == REG_EXPAND_SZ && path[0] == '%') - { - WCHAR szTemp[MAX_PATH]; - - dwPathLen = ExpandEnvironmentStringsW(path, szTemp, MAX_PATH); - lstrcpynW(path, szTemp, dwPathLen); - } - - ret = RegSetValueExW(shellFolderKey, value, 0, REG_SZ, (LPBYTE)path, dwPathLen * sizeof(WCHAR)); - if (ret != ERROR_SUCCESS) - hr = HRESULT_FROM_WIN32(ret); - else - hr = S_OK; - } - else - hr = E_FAIL; - - RegCloseKey(shellFolderKey); - RegCloseKey(userShellFolderKey); - TRACE("returning 0x%08x\n", hr); - return hr; -} - -/* Gets a 'semi-expanded' default value of the CSIDL with index folder into - * pszPath, based on the entries in CSIDL_Data. By semi-expanded, I mean: - * - The entry's szDefaultPath may be either a string value or an integer - * resource identifier. In the latter case, the string value of the resource - * is written. - * - Depending on the entry's type, the path may begin with an (unexpanded) - * environment variable name. The caller is responsible for expanding - * environment strings if so desired. - * The types that are prepended with environment variables are: - * CSIDL_Type_User: %USERPROFILE% - * CSIDL_Type_AllUsers: %ALLUSERSPROFILE% - * CSIDL_Type_CurrVer: %SystemDrive% - * (Others might make sense too, but as yet are unneeded.) - */ -static HRESULT _SHGetDefaultValue(BYTE folder, LPWSTR pszPath) -{ - DWORD dwSize; - HRESULT hr; - HKEY hKey; - WCHAR resourcePath[MAX_PATH]; - LPCWSTR pDefaultPath = NULL; - - TRACE("0x%02x,%p\n", folder, pszPath); - - if (folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) - return E_INVALIDARG; - if (!pszPath) - return E_INVALIDARG; - - if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - /* FIXME assume MAX_PATH size */ - dwSize = MAX_PATH * sizeof(WCHAR); - if (RegQueryValueExW(hKey, CSIDL_Data[folder].szValueName, NULL, NULL, (LPBYTE)pszPath, &dwSize) == ERROR_SUCCESS) - { - RegCloseKey(hKey); - return S_OK; - } - RegCloseKey(hKey); - } - - if (CSIDL_Data[folder].szDefaultPath && - IS_INTRESOURCE(CSIDL_Data[folder].szDefaultPath)) - { - if (LoadStringW(shell32_hInstance, - LOWORD(CSIDL_Data[folder].szDefaultPath), resourcePath, MAX_PATH)) - { - hr = S_OK; - pDefaultPath = resourcePath; - } - else - { - FIXME("(%d,%s), LoadString failed, missing translation?\n", folder, - debugstr_w(pszPath)); - hr = E_FAIL; - } - } - else - { - hr = S_OK; - pDefaultPath = CSIDL_Data[folder].szDefaultPath; - } - if (SUCCEEDED(hr)) - { - switch (CSIDL_Data[folder].type) - { - case CSIDL_Type_User: - wcscpy(pszPath, UserProfileW); - break; - case CSIDL_Type_AllUsers: - wcscpy(pszPath, AllUsersProfileW); - break; - case CSIDL_Type_CurrVer: - wcscpy(pszPath, SystemDriveW); - break; - default: - ; /* no corresponding env. var, do nothing */ - } - if (pDefaultPath) - { - PathAddBackslashW(pszPath); - wcscat(pszPath, pDefaultPath); - } - } - TRACE("returning 0x%08x\n", hr); - return hr; -} - -/* Gets the (unexpanded) value of the folder with index folder into pszPath. - * The folder's type is assumed to be CSIDL_Type_CurrVer. Its default value - * can be overridden in the HKLM\\szCurrentVersion key. - * If dwFlags has SHGFP_TYPE_DEFAULT set or if the value isn't overridden in - * the registry, uses _SHGetDefaultValue to get the value. - */ -static HRESULT _SHGetCurrentVersionPath(DWORD dwFlags, BYTE folder, - LPWSTR pszPath) -{ - HRESULT hr; - - TRACE("0x%08x,0x%02x,%p\n", dwFlags, folder, pszPath); - - if (folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) - return E_INVALIDARG; - if (CSIDL_Data[folder].type != CSIDL_Type_CurrVer) - return E_INVALIDARG; - if (!pszPath) - return E_INVALIDARG; - - if (dwFlags & SHGFP_TYPE_DEFAULT) - hr = _SHGetDefaultValue(folder, pszPath); - else - { - HKEY hKey; - DWORD dwDisp; - - if (RegCreateKeyExW(HKEY_LOCAL_MACHINE, szCurrentVersion, 0, - NULL, 0, KEY_ALL_ACCESS, NULL, &hKey, &dwDisp)) - hr = E_FAIL; - else - { - DWORD dwType, dwPathLen = MAX_PATH * sizeof(WCHAR); - - if (RegQueryValueExW(hKey, CSIDL_Data[folder].szValueName, NULL, - &dwType, (LPBYTE)pszPath, &dwPathLen) || - (dwType != REG_SZ && dwType != REG_EXPAND_SZ)) - { - hr = _SHGetDefaultValue(folder, pszPath); - dwType = REG_EXPAND_SZ; - RegSetValueExW(hKey, CSIDL_Data[folder].szValueName, 0, dwType, - (LPBYTE)pszPath, (wcslen(pszPath)+1)*sizeof(WCHAR)); - } - else - { - pszPath[dwPathLen / sizeof(WCHAR)] = '\0'; - hr = S_OK; - } - RegCloseKey(hKey); - } - } - TRACE("returning 0x%08x (output path is %s)\n", hr, debugstr_w(pszPath)); - return hr; -} - -/* Gets the user's path (unexpanded) for the CSIDL with index folder: - * If SHGFP_TYPE_DEFAULT is set, calls _SHGetDefaultValue for it. Otherwise - * calls _SHGetUserShellFolderPath for it. Where it looks depends on hToken: - * - if hToken is -1, looks in HKEY_USERS\.Default - * - otherwise looks first in HKEY_CURRENT_USER, followed by HKEY_LOCAL_MACHINE - * if HKEY_CURRENT_USER doesn't contain any entries. If both fail, finally - * calls _SHGetDefaultValue for it. - */ -static HRESULT _SHGetUserProfilePath(HANDLE hToken, DWORD dwFlags, BYTE folder, - LPWSTR pszPath) -{ - HRESULT hr; - - TRACE("%p,0x%08x,0x%02x,%p\n", hToken, dwFlags, folder, pszPath); - - if (folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) - return E_INVALIDARG; - - if (CSIDL_Data[folder].type != CSIDL_Type_User) - return E_INVALIDARG; - - if (!pszPath) - return E_INVALIDARG; - - if (dwFlags & SHGFP_TYPE_DEFAULT) - { - hr = _SHGetDefaultValue(folder, pszPath); - } - else - { - LPWSTR userPrefix; - HKEY hRootKey; - - if (hToken == (HANDLE)-1) - { - /* Get the folder of the default user */ - hRootKey = HKEY_USERS; - userPrefix = (LPWSTR)DefaultW; - } - else if(!hToken) - { - /* Get the folder of the current user */ - hRootKey = HKEY_CURRENT_USER; - userPrefix = NULL; - } - else - { - /* Get the folder of the specified user */ - DWORD InfoLength; - PTOKEN_USER UserInfo; - - hRootKey = HKEY_USERS; - - GetTokenInformation(hToken, TokenUser, NULL, 0, &InfoLength); - UserInfo = (PTOKEN_USER)HeapAlloc(GetProcessHeap(), 0, InfoLength); - - if(!GetTokenInformation(hToken, TokenUser, UserInfo, InfoLength, &InfoLength)) - { - WARN("GetTokenInformation failed for %x!\n", hToken); - HeapFree(GetProcessHeap(), 0, UserInfo); - return E_FAIL; - } - - if(!ConvertSidToStringSidW(UserInfo->User.Sid, &userPrefix)) - { - WARN("ConvertSidToStringSidW failed for %x!\n", hToken); - HeapFree(GetProcessHeap(), 0, UserInfo); - return E_FAIL; - } - - HeapFree(GetProcessHeap(), 0, UserInfo); - } - - hr = _SHGetUserShellFolderPath(hRootKey, userPrefix, CSIDL_Data[folder].szValueName, pszPath); - - /* Free the memory allocated by ConvertSidToStringSidW */ - if(hToken && hToken != (HANDLE)-1) - LocalFree(userPrefix); - - if (FAILED(hr) && hRootKey != HKEY_LOCAL_MACHINE) - hr = _SHGetUserShellFolderPath(HKEY_LOCAL_MACHINE, NULL, CSIDL_Data[folder].szValueName, pszPath); - - if (FAILED(hr)) - hr = _SHGetDefaultValue(folder, pszPath); - } - - TRACE("returning 0x%08x (output path is %s)\n", hr, debugstr_w(pszPath)); - return hr; -} - -/* Gets the (unexpanded) path for the CSIDL with index folder. If dwFlags has - * SHGFP_TYPE_DEFAULT set, calls _SHGetDefaultValue. Otherwise calls - * _SHGetUserShellFolderPath for it, looking only in HKEY_LOCAL_MACHINE. - * If this fails, falls back to _SHGetDefaultValue. - */ -static HRESULT _SHGetAllUsersProfilePath(DWORD dwFlags, BYTE folder, - LPWSTR pszPath) -{ - HRESULT hr; - - TRACE("0x%08x,0x%02x,%p\n", dwFlags, folder, pszPath); - - if (folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) - return E_INVALIDARG; - if (CSIDL_Data[folder].type != CSIDL_Type_AllUsers) - return E_INVALIDARG; - if (!pszPath) - return E_INVALIDARG; - - if (dwFlags & SHGFP_TYPE_DEFAULT) - hr = _SHGetDefaultValue(folder, pszPath); - else - { - hr = _SHGetUserShellFolderPath(HKEY_LOCAL_MACHINE, NULL, - CSIDL_Data[folder].szValueName, pszPath); - if (FAILED(hr)) - hr = _SHGetDefaultValue(folder, pszPath); - } - TRACE("returning 0x%08x (output path is %s)\n", hr, debugstr_w(pszPath)); - return hr; -} - -/************************************************************************* - * SHGetFolderPathW [SHELL32.@] - * - * Convert nFolder to path. - * - * RETURNS - * Success: S_OK - * Failure: standard HRESULT error codes. - * - * NOTES - * Most values can be overridden in either - * HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders - * or in the same location in HKLM. - * The "Shell Folders" registry key was used in NT4 and earlier systems. - * Beginning with Windows 2000, the "User Shell Folders" key is used, so - * changes made to it are made to the former key too. This synchronization is - * done on-demand: not until someone requests the value of one of these paths - * (by calling one of the SHGet functions) is the value synchronized. - * Furthermore, the HKCU paths take precedence over the HKLM paths. - */ -HRESULT WINAPI SHGetFolderPathW( - HWND hwndOwner, /* [I] owner window */ - int nFolder, /* [I] CSIDL identifying the folder */ - HANDLE hToken, /* [I] access token */ - DWORD dwFlags, /* [I] which path to return */ - LPWSTR pszPath) /* [O] converted path */ -{ - HRESULT hr = SHGetFolderPathAndSubDirW(hwndOwner, nFolder, hToken, dwFlags, NULL, pszPath); - if(HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND) == hr) - hr = HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND); - return hr; -} - -HRESULT WINAPI SHGetFolderPathAndSubDirA( - HWND hwndOwner, /* [I] owner window */ - int nFolder, /* [I] CSIDL identifying the folder */ - HANDLE hToken, /* [I] access token */ - DWORD dwFlags, /* [I] which path to return */ - LPCSTR pszSubPath, /* [I] sub directory of the specified folder */ - LPSTR pszPath) /* [O] converted path */ -{ - int length; - HRESULT hr = S_OK; - LPWSTR pszSubPathW = NULL; - LPWSTR pszPathW = NULL; - TRACE("%08x,%08x,%s\n",nFolder, dwFlags, debugstr_w(pszSubPathW)); - - if(pszPath) { - pszPathW = HeapAlloc(GetProcessHeap(), 0, MAX_PATH * sizeof(WCHAR)); - if(!pszPathW) { - hr = HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY); - goto cleanup; - } - } - TRACE("%08x,%08x,%s\n",nFolder, dwFlags, debugstr_w(pszSubPathW)); - - /* SHGetFolderPathAndSubDirW does not distinguish if pszSubPath isn't - * set (null), or an empty string.therefore call it without the parameter set - * if pszSubPath is an empty string - */ - if (pszSubPath && pszSubPath[0]) { - length = MultiByteToWideChar(CP_ACP, 0, pszSubPath, -1, NULL, 0); - pszSubPathW = HeapAlloc(GetProcessHeap(), 0, length * sizeof(WCHAR)); - if(!pszSubPathW) { - hr = HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY); - goto cleanup; - } - MultiByteToWideChar(CP_ACP, 0, pszSubPath, -1, pszSubPathW, length); - } - - hr = SHGetFolderPathAndSubDirW(hwndOwner, nFolder, hToken, dwFlags, pszSubPathW, pszPathW); - - if (SUCCEEDED(hr) && pszPath) - WideCharToMultiByte(CP_ACP, 0, pszPathW, -1, pszPath, MAX_PATH, NULL, NULL); - -cleanup: - HeapFree(GetProcessHeap(), 0, pszPathW); - HeapFree(GetProcessHeap(), 0, pszSubPathW); - return hr; -} - -HRESULT WINAPI SHGetFolderPathAndSubDirW( - HWND hwndOwner, /* [I] owner window */ - int nFolder, /* [I] CSIDL identifying the folder */ - HANDLE hToken, /* [I] access token */ - DWORD dwFlags, /* [I] which path to return */ - LPCWSTR pszSubPath,/* [I] sub directory of the specified folder */ - LPWSTR pszPath) /* [O] converted path */ -{ - HRESULT hr; - WCHAR szBuildPath[MAX_PATH], szTemp[MAX_PATH]; - DWORD folder = nFolder & CSIDL_FOLDER_MASK; //FIXME - CSIDL_Type type; - int ret; - - TRACE("%p,%p,nFolder=0x%04x,%s\n", hwndOwner,pszPath,nFolder,debugstr_w(pszSubPath)); - - /* Windows always NULL-terminates the resulting path regardless of success - * or failure, so do so first - */ - if (pszPath) - *pszPath = '\0'; - - if (folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) - return E_INVALIDARG; - if ((SHGFP_TYPE_CURRENT != dwFlags) && (SHGFP_TYPE_DEFAULT != dwFlags)) - return E_INVALIDARG; - szTemp[0] = 0; - type = CSIDL_Data[folder].type; - switch (type) - { - case CSIDL_Type_Disallowed: - hr = E_INVALIDARG; - break; - case CSIDL_Type_NonExistent: - hr = S_FALSE; - break; - case CSIDL_Type_WindowsPath: - GetWindowsDirectoryW(szTemp, MAX_PATH); - if (CSIDL_Data[folder].szDefaultPath && - !IS_INTRESOURCE(CSIDL_Data[folder].szDefaultPath) && - *CSIDL_Data[folder].szDefaultPath) - { - PathAddBackslashW(szTemp); - wcscat(szTemp, CSIDL_Data[folder].szDefaultPath); - } - hr = S_OK; - break; - case CSIDL_Type_SystemPath: - GetSystemDirectoryW(szTemp, MAX_PATH); - if (CSIDL_Data[folder].szDefaultPath && - !IS_INTRESOURCE(CSIDL_Data[folder].szDefaultPath) && - *CSIDL_Data[folder].szDefaultPath) - { - PathAddBackslashW(szTemp); - wcscat(szTemp, CSIDL_Data[folder].szDefaultPath); - } - hr = S_OK; - break; - case CSIDL_Type_CurrVer: - hr = _SHGetCurrentVersionPath(dwFlags, folder, szTemp); - break; - case CSIDL_Type_User: - hr = _SHGetUserProfilePath(hToken, dwFlags, folder, szTemp); - break; - case CSIDL_Type_AllUsers: - hr = _SHGetAllUsersProfilePath(dwFlags, folder, szTemp); - break; - default: - FIXME("bogus type %d, please fix\n", type); - hr = E_INVALIDARG; - break; - } - - /* Expand environment strings if necessary */ - if (*szTemp == '%') - { - DWORD ExpandRet = ExpandEnvironmentStringsW(szTemp, szBuildPath, MAX_PATH); - - if (ExpandRet > MAX_PATH) - hr = HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER); - else if (ExpandRet == 0) - hr = HRESULT_FROM_WIN32(GetLastError()); - else - hr = S_OK; - } - else - { - wcscpy(szBuildPath, szTemp); - } - - if (FAILED(hr)) goto end; - - if(pszSubPath) { - /* make sure the new path does not exceed th bufferlength - * rememebr to backslash and the termination */ - if(MAX_PATH < (wcslen(szBuildPath) + wcslen(pszSubPath) + 2)) { - hr = HRESULT_FROM_WIN32(ERROR_FILENAME_EXCED_RANGE); - goto end; - } - PathAppendW(szBuildPath, pszSubPath); - PathRemoveBackslashW(szBuildPath); - } - /* Copy the path if it's available before we might return */ - if (SUCCEEDED(hr) && pszPath) - wcscpy(pszPath, szBuildPath); - - /* if we don't care about existing directories we are ready */ - if(nFolder & CSIDL_FLAG_DONT_VERIFY) goto end; - - if (PathFileExistsW(szBuildPath)) goto end; - - /* not existing but we are not allowed to create it. The return value - * is verified against shell32 version 6.0. - */ - if (!(nFolder & CSIDL_FLAG_CREATE)) - { - hr = HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND); - goto end; - } - - /* create directory/directories */ - ret = SHCreateDirectoryExW(hwndOwner, szBuildPath, NULL); - if (ret && ret != ERROR_ALREADY_EXISTS) - { - ERR("Failed to create directory %s.\n", debugstr_w(szBuildPath)); - hr = E_FAIL; - goto end; - } - - TRACE("Created missing system directory %s\n", debugstr_w(szBuildPath)); -end: - TRACE("returning 0x%08x (final path is %s)\n", hr, debugstr_w(szBuildPath)); - return hr; -} - -/************************************************************************* - * SHGetFolderPathA [SHELL32.@] - * - * See SHGetFolderPathW. - */ -HRESULT WINAPI SHGetFolderPathA( - HWND hwndOwner, - int nFolder, - HANDLE hToken, - DWORD dwFlags, - LPSTR pszPath) -{ - WCHAR szTemp[MAX_PATH]; - HRESULT hr; - - TRACE("%p,%p,nFolder=0x%04x\n",hwndOwner,pszPath,nFolder); - - if (pszPath) - *pszPath = '\0'; - hr = SHGetFolderPathW(hwndOwner, nFolder, hToken, dwFlags, szTemp); - if (SUCCEEDED(hr) && pszPath) - WideCharToMultiByte(CP_ACP, 0, szTemp, -1, pszPath, MAX_PATH, NULL, - NULL); - - return hr; -} - -/* For each folder in folders, if its value has not been set in the registry, - * calls _SHGetUserProfilePath or _SHGetAllUsersProfilePath (depending on the - * folder's type) to get the unexpanded value first. - * Writes the unexpanded value to User Shell Folders, and queries it with - * SHGetFolderPathW to force the creation of the directory if it doesn't - * already exist. SHGetFolderPathW also returns the expanded value, which - * this then writes to Shell Folders. - */ -static HRESULT _SHRegisterFolders(HKEY hRootKey, HANDLE hToken, - LPCWSTR szUserShellFolderPath, LPCWSTR szShellFolderPath, const UINT folders[], - UINT foldersLen) -{ - UINT i; - WCHAR path[MAX_PATH]; - HRESULT hr = S_OK; - HKEY hUserKey = NULL, hKey = NULL; - DWORD dwDisp, dwType, dwPathLen; - LONG ret; - - TRACE("%p,%p,%s,%p,%u\n", hRootKey, hToken, - debugstr_w(szUserShellFolderPath), folders, foldersLen); - - ret = RegCreateKeyExW(hRootKey, szUserShellFolderPath, 0, NULL, 0, - KEY_ALL_ACCESS, NULL, &hUserKey, &dwDisp); - if (ret) - hr = HRESULT_FROM_WIN32(ret); - else - { - ret = RegCreateKeyExW(hRootKey, szShellFolderPath, 0, NULL, 0, - KEY_ALL_ACCESS, NULL, &hKey, &dwDisp); - if (ret) - hr = HRESULT_FROM_WIN32(ret); - } - for (i = 0; SUCCEEDED(hr) && i < foldersLen; i++) - { - dwPathLen = MAX_PATH * sizeof(WCHAR); - if (RegQueryValueExW(hUserKey, CSIDL_Data[folders[i]].szValueName, NULL, - &dwType, (LPBYTE)path, &dwPathLen) || (dwType != REG_SZ && - dwType != REG_EXPAND_SZ)) - { - *path = '\0'; - if (CSIDL_Data[folders[i]].type == CSIDL_Type_User) - _SHGetUserProfilePath(hToken, SHGFP_TYPE_DEFAULT, folders[i], - path); - else if (CSIDL_Data[folders[i]].type == CSIDL_Type_AllUsers) - _SHGetAllUsersProfilePath(SHGFP_TYPE_DEFAULT, folders[i], path); - else if (CSIDL_Data[folders[i]].type == CSIDL_Type_WindowsPath) - GetWindowsDirectoryW(path, MAX_PATH); - else - hr = E_FAIL; - if (*path) - { - ret = RegSetValueExW(hUserKey, - CSIDL_Data[folders[i]].szValueName, 0, REG_EXPAND_SZ, - (LPBYTE)path, (wcslen(path) + 1) * sizeof(WCHAR)); - if (ret) - hr = HRESULT_FROM_WIN32(ret); - else - { - hr = SHGetFolderPathW(NULL, folders[i] | CSIDL_FLAG_CREATE, - hToken, SHGFP_TYPE_DEFAULT, path); - ret = RegSetValueExW(hKey, - CSIDL_Data[folders[i]].szValueName, 0, REG_SZ, - (LPBYTE)path, (wcslen(path) + 1) * sizeof(WCHAR)); - if (ret) - hr = HRESULT_FROM_WIN32(ret); - } - } - } - } - if (hUserKey) - RegCloseKey(hUserKey); - if (hKey) - RegCloseKey(hKey); - - TRACE("returning 0x%08x\n", hr); - return hr; -} - -static HRESULT _SHRegisterUserShellFolders(BOOL bDefault) -{ - static const UINT folders[] = { - CSIDL_PROGRAMS, - CSIDL_PERSONAL, - CSIDL_FAVORITES, - CSIDL_APPDATA, - CSIDL_STARTUP, - CSIDL_RECENT, - CSIDL_SENDTO, - CSIDL_STARTMENU, - CSIDL_MYMUSIC, - CSIDL_MYVIDEO, - CSIDL_DESKTOPDIRECTORY, - CSIDL_NETHOOD, - CSIDL_TEMPLATES, - CSIDL_PRINTHOOD, - CSIDL_LOCAL_APPDATA, - CSIDL_INTERNET_CACHE, - CSIDL_COOKIES, - CSIDL_HISTORY, - CSIDL_MYPICTURES, - CSIDL_FONTS - }; - WCHAR userShellFolderPath[MAX_PATH], shellFolderPath[MAX_PATH]; - LPCWSTR pUserShellFolderPath, pShellFolderPath; - HRESULT hr = S_OK; - HKEY hRootKey; - HANDLE hToken; - - TRACE("%s\n", bDefault ? "TRUE" : "FALSE"); - if (bDefault) - { - hToken = (HANDLE)-1; - hRootKey = HKEY_USERS; - wcscpy(userShellFolderPath, DefaultW); - PathAddBackslashW(userShellFolderPath); - wcscat(userShellFolderPath, szSHUserFolders); - pUserShellFolderPath = userShellFolderPath; - wcscpy(shellFolderPath, DefaultW); - PathAddBackslashW(shellFolderPath); - wcscat(shellFolderPath, szSHFolders); - pShellFolderPath = shellFolderPath; - } - else - { - hToken = NULL; - hRootKey = HKEY_CURRENT_USER; - pUserShellFolderPath = szSHUserFolders; - pShellFolderPath = szSHFolders; - } - - hr = _SHRegisterFolders(hRootKey, hToken, pUserShellFolderPath, - pShellFolderPath, folders, sizeof(folders) / sizeof(folders[0])); - TRACE("returning 0x%08x\n", hr); - return hr; -} - -static HRESULT _SHRegisterCommonShellFolders(void) -{ - static const UINT folders[] = { - CSIDL_COMMON_STARTMENU, - CSIDL_COMMON_PROGRAMS, - CSIDL_COMMON_STARTUP, - CSIDL_COMMON_DESKTOPDIRECTORY, - CSIDL_COMMON_FAVORITES, - CSIDL_COMMON_APPDATA, - CSIDL_COMMON_TEMPLATES, - CSIDL_COMMON_DOCUMENTS, - }; - HRESULT hr; - - TRACE("\n"); - hr = _SHRegisterFolders(HKEY_LOCAL_MACHINE, NULL, szSHUserFolders, - szSHFolders, folders, sizeof(folders) / sizeof(folders[0])); - TRACE("returning 0x%08x\n", hr); - return hr; -} - -/****************************************************************************** - * _SHAppendToUnixPath [Internal] - * - * Helper function for _SHCreateSymbolicLinks. Appends pwszSubPath (or the - * corresponding resource, if IS_INTRESOURCE) to the unix base path 'szBasePath' - * and replaces backslashes with slashes. - * - * PARAMS - * szBasePath [IO] The unix base path, which will be appended to (CP_UNXICP). - * pwszSubPath [I] Sub-path or resource id (use MAKEINTRESOURCEW). - * - * RETURNS - * Success: TRUE, - * Failure: FALSE - */ -static BOOL __inline _SHAppendToUnixPath(char *szBasePath, LPCWSTR pwszSubPath) { - WCHAR wszSubPath[MAX_PATH]; - int cLen = strlen(szBasePath); - char *pBackslash; - - if (IS_INTRESOURCE(pwszSubPath)) { - if (!LoadStringW(shell32_hInstance, LOWORD(pwszSubPath), wszSubPath, MAX_PATH)) { - /* Fall back to hard coded defaults. */ - switch (LOWORD(pwszSubPath)) { - case IDS_PERSONAL: - wcscpy(wszSubPath, PersonalW); - break; - case IDS_MYMUSIC: - wcscpy(wszSubPath, My_MusicW); - break; - case IDS_MYPICTURES: - wcscpy(wszSubPath, My_PicturesW); - break; - case IDS_MYVIDEO: - wcscpy(wszSubPath, My_VideoW); - break; - default: - ERR("LoadString(%d) failed!\n", LOWORD(pwszSubPath)); - return FALSE; - } - } - } else { - wcscpy(wszSubPath, pwszSubPath); - } - - if (szBasePath[cLen-1] != '/') szBasePath[cLen++] = '/'; - - if (!WideCharToMultiByte(CP_ACP, 0, wszSubPath, -1, szBasePath + cLen, - FILENAME_MAX - cLen, NULL, NULL)) - { - return FALSE; - } - - pBackslash = szBasePath + cLen; - while ((pBackslash = strchr(pBackslash, '\\'))) *pBackslash = '/'; - - return TRUE; -} -#if 0 -/****************************************************************************** - * _SHCreateSymbolicLinks [Internal] - * - * Sets up symbol links for various shell folders to point into the users home - * directory. We do an educated guess about what the user would probably want: - * - If there is a 'My Documents' directory in $HOME, the user probably wants - * wine's 'My Documents' to point there. Furthermore, we imply that the user - * is a Windows lover and has no problem with wine creating 'My Pictures', - * 'My Music' and 'My Video' subfolders under '$HOME/My Documents', if those - * do not already exits. We put appropriate symbolic links in place for those, - * too. - * - If there is no 'My Documents' directory in $HOME, we let 'My Documents' - * point directly to $HOME. We assume the user to be a unix hacker who does not - * want wine to create anything anywhere besides the .wine directory. So, if - * there already is a 'My Music' directory in $HOME, we symlink the 'My Music' - * shell folder to it. But if not, we symlink it to $HOME directly. The same - * holds fo 'My Pictures' and 'My Video'. - * - The Desktop shell folder is symlinked to '$HOME/Desktop', if that does - * exists and left alone if not. - * ('My Music',... above in fact means LoadString(IDS_MYMUSIC)) - */ -static void _SHCreateSymbolicLinks(void) -{ - UINT aidsMyStuff[] = { IDS_MYPICTURES, IDS_MYVIDEO, IDS_MYMUSIC }, i; - int acsidlMyStuff[] = { CSIDL_MYPICTURES, CSIDL_MYVIDEO, CSIDL_MYMUSIC }; - WCHAR wszTempPath[MAX_PATH]; - char szPersonalTarget[FILENAME_MAX], *pszPersonal; - char szMyStuffTarget[FILENAME_MAX], *pszMyStuff; - char szDesktopTarget[FILENAME_MAX], *pszDesktop; - struct stat statFolder; - const char *pszHome; - HRESULT hr; - - /* Create all necessary profile sub-dirs up to 'My Documents' and get the unix path. */ - hr = SHGetFolderPathW(NULL, CSIDL_PERSONAL|CSIDL_FLAG_CREATE, NULL, - SHGFP_TYPE_DEFAULT, wszTempPath); - if (FAILED(hr)) return; - pszPersonal = wine_get_unix_file_name(wszTempPath); - if (!pszPersonal) return; - - pszHome = getenv("HOME"); - if (pszHome && !stat(pszHome, &statFolder) && S_ISDIR(statFolder.st_mode)) { - strcpy(szPersonalTarget, pszHome); - if (_SHAppendToUnixPath(szPersonalTarget, MAKEINTRESOURCEW(IDS_PERSONAL)) && - !stat(szPersonalTarget, &statFolder) && S_ISDIR(statFolder.st_mode)) - { - /* '$HOME/My Documents' exists. Create 'My Pictures', 'My Videos' and - * 'My Music' subfolders or fail silently if they already exist. */ - for (i = 0; i < sizeof(aidsMyStuff)/sizeof(aidsMyStuff[0]); i++) { - strcpy(szMyStuffTarget, szPersonalTarget); - if (_SHAppendToUnixPath(szMyStuffTarget, MAKEINTRESOURCEW(aidsMyStuff[i]))) - mkdir(szMyStuffTarget); - } - } - else - { - /* '$HOME/My Documents' doesn't exists, but '$HOME' does. */ - strcpy(szPersonalTarget, pszHome); - } - - /* Replace 'My Documents' directory with a symlink of fail silently if not empty. */ - rmdir(pszPersonal); - symlink(szPersonalTarget, pszPersonal); - } - else - { - /* '$HOME' doesn't exist. Create 'My Pictures', 'My Videos' and 'My Music' subdirs - * in '%USERPROFILE%\\My Documents' or fail silently if they already exist. */ - strcpy(szPersonalTarget, pszPersonal); - for (i = 0; i < sizeof(aidsMyStuff)/sizeof(aidsMyStuff[0]); i++) { - strcpy(szMyStuffTarget, szPersonalTarget); - if (_SHAppendToUnixPath(szMyStuffTarget, MAKEINTRESOURCEW(aidsMyStuff[i]))) - mkdir(szMyStuffTarget); - } - } - - /* Create symbolic links for 'My Pictures', 'My Video' and 'My Music'. */ - for (i=0; i < sizeof(aidsMyStuff)/sizeof(aidsMyStuff[0]); i++) { - /* Create the current 'My Whatever' folder and get it's unix path. */ - hr = SHGetFolderPathW(NULL, acsidlMyStuff[i]|CSIDL_FLAG_CREATE, NULL, - SHGFP_TYPE_DEFAULT, wszTempPath); - if (FAILED(hr)) continue; - pszMyStuff = wine_get_unix_file_name(wszTempPath); - if (!pszMyStuff) continue; - - strcpy(szMyStuffTarget, szPersonalTarget); - if (_SHAppendToUnixPath(szMyStuffTarget, MAKEINTRESOURCEW(aidsMyStuff[i])) && - !stat(szMyStuffTarget, &statFolder) && S_ISDIR(statFolder.st_mode)) - { - /* If there's a 'My Whatever' directory where 'My Documents' links to, link to it. */ - rmdir(pszMyStuff); - symlink(szMyStuffTarget, pszMyStuff); - } - else - { - /* Else link to where 'My Documents' itself links to. */ - rmdir(pszMyStuff); - symlink(szPersonalTarget, pszMyStuff); - } - HeapFree(GetProcessHeap(), 0, pszMyStuff); - } - - /* Last but not least, the Desktop folder */ - if (pszHome) - strcpy(szDesktopTarget, pszHome); - else - strcpy(szDesktopTarget, pszPersonal); - HeapFree(GetProcessHeap(), 0, pszPersonal); - - if (_SHAppendToUnixPath(szDesktopTarget, DesktopW) && - !stat(szDesktopTarget, &statFolder) && S_ISDIR(statFolder.st_mode)) - { - hr = SHGetFolderPathW(NULL, CSIDL_DESKTOPDIRECTORY|CSIDL_FLAG_CREATE, NULL, - SHGFP_TYPE_DEFAULT, wszTempPath); - if (SUCCEEDED(hr) && (pszDesktop = wine_get_unix_file_name(wszTempPath))) - { - rmdir(pszDesktop); - symlink(szDesktopTarget, pszDesktop); - HeapFree(GetProcessHeap(), 0, pszDesktop); - } - } -} -#endif - -/* Register the default values in the registry, as some apps seem to depend - * on their presence. The set registered was taken from Windows XP. - */ -HRESULT SHELL_RegisterShellFolders(void) -{ - HRESULT hr; - - /* Set up '$HOME' targeted symlinks for 'My Documents', 'My Pictures', - * 'My Video', 'My Music' and 'Desktop' in advance, so that the - * _SHRegister*ShellFolders() functions will find everything nice and clean - * and thus will not attempt to create them in the profile directory. */ -#if 0 - _SHCreateSymbolicLinks(); -#endif - - hr = _SHRegisterUserShellFolders(TRUE); - if (SUCCEEDED(hr)) - hr = _SHRegisterUserShellFolders(FALSE); - if (SUCCEEDED(hr)) - hr = _SHRegisterCommonShellFolders(); - return hr; -} - -/************************************************************************* - * SHGetSpecialFolderPathA [SHELL32.@] - */ -BOOL WINAPI SHGetSpecialFolderPathA ( - HWND hwndOwner, - LPSTR szPath, - int nFolder, - BOOL bCreate) -{ - return (SHGetFolderPathA( - hwndOwner, - nFolder + (bCreate ? CSIDL_FLAG_CREATE : 0), - NULL, - 0, - szPath)) == S_OK ? TRUE : FALSE; -} - -/************************************************************************* - * SHGetSpecialFolderPathW - */ -BOOL WINAPI SHGetSpecialFolderPathW ( - HWND hwndOwner, - LPWSTR szPath, - int nFolder, - BOOL bCreate) -{ - return (SHGetFolderPathW( - hwndOwner, - nFolder + (bCreate ? CSIDL_FLAG_CREATE : 0), - NULL, - 0, - szPath)) == S_OK ? TRUE : FALSE; -} - -/************************************************************************* - * SHGetFolderLocation [SHELL32.@] - * - * Gets the folder locations from the registry and creates a pidl. - * - * PARAMS - * hwndOwner [I] - * nFolder [I] CSIDL_xxxxx - * hToken [I] token representing user, or NULL for current user, or -1 for - * default user - * dwReserved [I] must be zero - * ppidl [O] PIDL of a special folder - * - * RETURNS - * Success: S_OK - * Failure: Standard OLE-defined error result, S_FALSE or E_INVALIDARG - * - * NOTES - * Creates missing reg keys and directories. - * Mostly forwards to SHGetFolderPathW, but a few values of nFolder return - * virtual folders that are handled here. - */ -HRESULT WINAPI SHGetFolderLocation( - HWND hwndOwner, - int nFolder, - HANDLE hToken, - DWORD dwReserved, - LPITEMIDLIST *ppidl) -{ - HRESULT hr = E_INVALIDARG; - - TRACE("%p 0x%08x %p 0x%08x %p\n", - hwndOwner, nFolder, hToken, dwReserved, ppidl); - - if (!ppidl) - return E_INVALIDARG; - if (dwReserved) - return E_INVALIDARG; - - /* The virtual folders' locations are not user-dependent */ - *ppidl = NULL; - switch (nFolder) - { - case CSIDL_DESKTOP: - *ppidl = _ILCreateDesktop(); - break; - - case CSIDL_PERSONAL: - *ppidl = _ILCreateMyDocuments(); - break; - - case CSIDL_INTERNET: - *ppidl = _ILCreateIExplore(); - break; - - case CSIDL_CONTROLS: - *ppidl = _ILCreateControlPanel(); - break; - - case CSIDL_PRINTERS: - *ppidl = _ILCreatePrinters(); - break; - - case CSIDL_BITBUCKET: - *ppidl = _ILCreateBitBucket(); - break; - - case CSIDL_DRIVES: - *ppidl = _ILCreateMyComputer(); - break; - - case CSIDL_NETWORK: - *ppidl = _ILCreateNetwork(); - break; - - default: - { - WCHAR szPath[MAX_PATH]; - - hr = SHGetFolderPathW(hwndOwner, nFolder, hToken, - SHGFP_TYPE_CURRENT, szPath); - if (SUCCEEDED(hr)) - { - DWORD attributes=0; - - TRACE("Value=%s\n", debugstr_w(szPath)); - hr = SHILCreateFromPathW(szPath, ppidl, &attributes); - } - else if (hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)) - { - /* unlike SHGetFolderPath, SHGetFolderLocation in shell32 - * version 6.0 returns E_FAIL for nonexistent paths - */ - hr = E_FAIL; - } - } - } - if(*ppidl) - hr = NOERROR; - - TRACE("-- (new pidl %p)\n",*ppidl); - return hr; -} - -/************************************************************************* - * SHGetSpecialFolderLocation [SHELL32.@] - * - * NOTES - * In NT5, SHGetSpecialFolderLocation needs the /Recent - * directory. - */ -HRESULT WINAPI SHGetSpecialFolderLocation( - HWND hwndOwner, - INT nFolder, - LPITEMIDLIST * ppidl) -{ - HRESULT hr = E_INVALIDARG; - - TRACE("(%p,0x%x,%p)\n", hwndOwner,nFolder,ppidl); - - if (!ppidl) - return E_INVALIDARG; - - hr = SHGetFolderLocation(hwndOwner, nFolder, NULL, 0, ppidl); - return hr; -} diff --git a/reactos/dll/win32/shell32/shellreg.c b/reactos/dll/win32/shell32/shellreg.c deleted file mode 100644 index 812566cd7fd..00000000000 --- a/reactos/dll/win32/shell32/shellreg.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Shell Registry Access - * - * Copyright 2000 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -/************************************************************************* - * SHRegOpenKeyA [SHELL32.506] - * - */ -HRESULT WINAPI SHRegOpenKeyA( - HKEY hKey, - LPSTR lpSubKey, - PHKEY phkResult) -{ - TRACE("(%p, %s, %p)\n", hKey, debugstr_a(lpSubKey), phkResult); - return RegOpenKeyA(hKey, lpSubKey, phkResult); -} - -/************************************************************************* - * SHRegOpenKeyW [SHELL32.507] NT 4.0 - * - */ -HRESULT WINAPI SHRegOpenKeyW ( - HKEY hkey, - LPCWSTR lpszSubKey, - PHKEY retkey) -{ - WARN("%p %s %p\n",hkey,debugstr_w(lpszSubKey),retkey); - return RegOpenKeyW( hkey, lpszSubKey, retkey ); -} - -/************************************************************************* - * SHRegQueryValueA [SHELL32.508] - * - */ -HRESULT WINAPI SHRegQueryValueA(HKEY hkey, LPSTR lpSubKey, LPSTR lpValue, LPDWORD lpcbValue) -{ - TRACE("(%p %s %p %p)\n", hkey, debugstr_a(lpSubKey), lpValue, lpcbValue); - return RegQueryValueA(hkey, lpSubKey, lpValue, (LONG*)lpcbValue); -} - -/************************************************************************* - * SHRegQueryValueExA [SHELL32.509] - * - */ -HRESULT WINAPI SHRegQueryValueExA( - HKEY hkey, - LPSTR lpValueName, - LPDWORD lpReserved, - LPDWORD lpType, - LPBYTE lpData, - LPDWORD lpcbData) -{ - TRACE("%p %s %p %p %p %p\n", hkey, lpValueName, lpReserved, lpType, lpData, lpcbData); - return RegQueryValueExA (hkey, lpValueName, lpReserved, lpType, lpData, lpcbData); -} - -/************************************************************************* - * SHRegQueryValueW [SHELL32.510] NT4.0 - * - */ -HRESULT WINAPI SHRegQueryValueW( - HKEY hkey, - LPWSTR lpszSubKey, - LPWSTR lpszData, - LPDWORD lpcbData ) -{ - WARN("%p %s %p %p semi-stub\n", - hkey, debugstr_w(lpszSubKey), lpszData, lpcbData); - return RegQueryValueW( hkey, lpszSubKey, lpszData, (LONG*)lpcbData ); -} - -/************************************************************************* - * SHRegQueryValueExW [SHELL32.511] NT4.0 - * - * FIXME - * if the datatype REG_EXPAND_SZ then expand the string and change - * *pdwType to REG_SZ. - */ -HRESULT WINAPI SHRegQueryValueExW ( - HKEY hkey, - LPWSTR pszValue, - LPDWORD pdwReserved, - LPDWORD pdwType, - LPVOID pvData, - LPDWORD pcbData) -{ - DWORD ret; - WARN("%p %s %p %p %p %p semi-stub\n", - hkey, debugstr_w(pszValue), pdwReserved, pdwType, pvData, pcbData); - ret = RegQueryValueExW ( hkey, pszValue, pdwReserved, pdwType, pvData, pcbData); - return ret; -} - -/************************************************************************* - * SHRegDeleteKeyA [SHELL32.?] - */ -HRESULT WINAPI SHRegDeleteKeyA( - HKEY hkey, - LPCSTR pszSubKey) -{ - FIXME("hkey=%p, %s\n", hkey, debugstr_a(pszSubKey)); - return 0; -} - -/************************************************************************* - * SHRegDeleteKeyW [SHELL32.512] - */ -HRESULT WINAPI SHRegDeleteKeyW( - HKEY hkey, - LPCWSTR pszSubKey) -{ - FIXME("hkey=%p, %s\n", hkey, debugstr_w(pszSubKey)); - return 0; -} - -/************************************************************************* - * SHRegCloseKey [SHELL32.505] NT 4.0 - * - */ -HRESULT WINAPI SHRegCloseKey (HKEY hkey) -{ - TRACE("%p\n",hkey); - return RegCloseKey( hkey ); -} diff --git a/reactos/dll/win32/shell32/shellstring.c b/reactos/dll/win32/shell32/shellstring.c deleted file mode 100644 index 153807ac250..00000000000 --- a/reactos/dll/win32/shell32/shellstring.c +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright 2000 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -/************************* STRRET functions ****************************/ - -BOOL WINAPI StrRetToStrNA(LPSTR dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl) -{ - TRACE("dest=%p len=0x%x strret=%p(%s) pidl=%p\n", - dest,len,src, - (src->uType == STRRET_WSTR) ? "STRRET_WSTR" : - (src->uType == STRRET_CSTR) ? "STRRET_CSTR" : - (src->uType == STRRET_OFFSET) ? "STRRET_OFFSET" : "STRRET_???", - pidl); - - if (!dest) - return FALSE; - - switch (src->uType) - { - case STRRET_WSTR: - WideCharToMultiByte(CP_ACP, 0, src->u.pOleStr, -1, dest, len, NULL, NULL); - CoTaskMemFree(src->u.pOleStr); - break; - - case STRRET_CSTR: - lstrcpynA(dest, src->u.cStr, len); - break; - - case STRRET_OFFSET: - lstrcpynA(dest, ((LPCSTR)&pidl->mkid)+src->u.uOffset, len); - break; - - default: - FIXME("unknown type!\n"); - if (len) *dest = '\0'; - return FALSE; - } - TRACE("-- %s\n", debugstr_a(dest) ); - return TRUE; -} - -/************************************************************************/ - -BOOL WINAPI StrRetToStrNW(LPWSTR dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl) -{ - TRACE("dest=%p len=0x%x strret=%p(%s) pidl=%p\n", - dest,len,src, - (src->uType == STRRET_WSTR) ? "STRRET_WSTR" : - (src->uType == STRRET_CSTR) ? "STRRET_CSTR" : - (src->uType == STRRET_OFFSET) ? "STRRET_OFFSET" : "STRRET_???", - pidl); - - if (!dest) - return FALSE; - - switch (src->uType) - { - case STRRET_WSTR: - lstrcpynW(dest, src->u.pOleStr, len); - CoTaskMemFree(src->u.pOleStr); - break; - - case STRRET_CSTR: - if (!MultiByteToWideChar( CP_ACP, 0, src->u.cStr, -1, dest, len ) && len) - dest[len-1] = 0; - break; - - case STRRET_OFFSET: - if (!MultiByteToWideChar( CP_ACP, 0, ((LPCSTR)&pidl->mkid)+src->u.uOffset, -1, dest, len ) && len) - dest[len-1] = 0; - break; - - default: - FIXME("unknown type!\n"); - if (len) *dest = '\0'; - return FALSE; - } - return TRUE; -} - - -/************************************************************************* - * StrRetToStrN [SHELL32.96] - * - * converts a STRRET to a normal string - * - * NOTES - * the pidl is for STRRET OFFSET - */ -BOOL WINAPI StrRetToStrNAW(LPVOID dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl) -{ - if(SHELL_OsIsUnicode()) - return StrRetToStrNW(dest, len, src, pidl); - else - return StrRetToStrNA(dest, len, src, pidl); -} - -/************************* OLESTR functions ****************************/ - -/************************************************************************ - * StrToOleStr [SHELL32.163] - * - */ -int WINAPI StrToOleStrA (LPWSTR lpWideCharStr, LPCSTR lpMultiByteString) -{ - TRACE("(%p, %p %s)\n", - lpWideCharStr, lpMultiByteString, debugstr_a(lpMultiByteString)); - - return MultiByteToWideChar(0, 0, lpMultiByteString, -1, lpWideCharStr, MAX_PATH); - -} -int WINAPI StrToOleStrW (LPWSTR lpWideCharStr, LPCWSTR lpWString) -{ - TRACE("(%p, %p %s)\n", - lpWideCharStr, lpWString, debugstr_w(lpWString)); - - wcscpy (lpWideCharStr, lpWString ); - return wcslen(lpWideCharStr); -} - -BOOL WINAPI StrToOleStrAW (LPWSTR lpWideCharStr, LPCVOID lpString) -{ - if (SHELL_OsIsUnicode()) - return StrToOleStrW (lpWideCharStr, lpString); - return StrToOleStrA (lpWideCharStr, lpString); -} - -/************************************************************************* - * StrToOleStrN [SHELL32.79] - * lpMulti, nMulti, nWide [IN] - * lpWide [OUT] - */ -BOOL WINAPI StrToOleStrNA (LPWSTR lpWide, INT nWide, LPCSTR lpStrA, INT nStr) -{ - TRACE("(%p, %x, %s, %x)\n", lpWide, nWide, debugstr_an(lpStrA,nStr), nStr); - return MultiByteToWideChar (0, 0, lpStrA, nStr, lpWide, nWide); -} -BOOL WINAPI StrToOleStrNW (LPWSTR lpWide, INT nWide, LPCWSTR lpStrW, INT nStr) -{ - TRACE("(%p, %x, %s, %x)\n", lpWide, nWide, debugstr_wn(lpStrW, nStr), nStr); - - if (lstrcpynW (lpWide, lpStrW, nWide)) - { return wcslen (lpWide); - } - return 0; -} - -BOOL WINAPI StrToOleStrNAW (LPWSTR lpWide, INT nWide, LPCVOID lpStr, INT nStr) -{ - if (SHELL_OsIsUnicode()) - return StrToOleStrNW (lpWide, nWide, lpStr, nStr); - return StrToOleStrNA (lpWide, nWide, lpStr, nStr); -} - -/************************************************************************* - * OleStrToStrN [SHELL32.78] - */ -BOOL WINAPI OleStrToStrNA (LPSTR lpStr, INT nStr, LPCWSTR lpOle, INT nOle) -{ - TRACE("(%p, %x, %s, %x)\n", lpStr, nStr, debugstr_wn(lpOle,nOle), nOle); - return WideCharToMultiByte (0, 0, lpOle, nOle, lpStr, nStr, NULL, NULL); -} - -BOOL WINAPI OleStrToStrNW (LPWSTR lpwStr, INT nwStr, LPCWSTR lpOle, INT nOle) -{ - TRACE("(%p, %x, %s, %x)\n", lpwStr, nwStr, debugstr_wn(lpOle,nOle), nOle); - - if (lstrcpynW ( lpwStr, lpOle, nwStr)) - { return wcslen (lpwStr); - } - return 0; -} - -BOOL WINAPI OleStrToStrNAW (LPVOID lpOut, INT nOut, LPCVOID lpIn, INT nIn) -{ - if (SHELL_OsIsUnicode()) - return OleStrToStrNW (lpOut, nOut, lpIn, nIn); - return OleStrToStrNA (lpOut, nOut, lpIn, nIn); -} - - -/************************************************************************* - * CheckEscapesA [SHELL32.@] - * - * Checks a string for special characters which are not allowed in a path - * and encloses it in quotes if that is the case. - * - * PARAMS - * string [I/O] string to check and on return eventually quoted - * len [I] length of string - * - * RETURNS - * length of actual string - * - * NOTES - * Not really sure if this function returns actually a value at all. - */ -DWORD WINAPI CheckEscapesA( - LPSTR string, /* [I/O] string to check ??*/ - DWORD len) /* [I] is 0 */ -{ - LPWSTR wString; - DWORD ret = 0; - - TRACE("(%s %d)\n", debugstr_a(string), len); - wString = (LPWSTR)LocalAlloc(LPTR, len * sizeof(WCHAR)); - if (wString) - { - MultiByteToWideChar(CP_ACP, 0, string, len, wString, len); - ret = CheckEscapesW(wString, len); - WideCharToMultiByte(CP_ACP, 0, wString, len, string, len, NULL, NULL); - LocalFree(wString); - } - return ret; -} - -static const WCHAR strEscapedChars[] = {' ','"',',',';','^',0}; - -/************************************************************************* - * CheckEscapesW [SHELL32.@] - * - * See CheckEscapesA. - */ -DWORD WINAPI CheckEscapesW( - LPWSTR string, - DWORD len) -{ - DWORD size = wcslen(string); - LPWSTR s, d; - - TRACE("(%s %d) stub\n", debugstr_w(string), len); - - if (StrPBrkW(string, strEscapedChars) && size + 2 <= len) - { - s = &string[size - 1]; - d = &string[size + 2]; - *d-- = 0; - *d-- = '"'; - for (;d > string;) - *d-- = *s--; - *d = '"'; - return size + 2; - } - return size; -} diff --git a/reactos/dll/win32/shell32/shfldr_admintools.c b/reactos/dll/win32/shell32/shfldr_admintools.c deleted file mode 100644 index df02e28a1fa..00000000000 --- a/reactos/dll/win32/shell32/shfldr_admintools.c +++ /dev/null @@ -1,775 +0,0 @@ -/* - * Virtual Admin Tools Folder - * - * Copyright 2008 Johannes Anderwald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL (shell); - - -/* List shortcuts of - * CSIDL_COMMON_ADMINTOOLS - * Note: CSIDL_ADMINTOOLS is ignored, tested with Window XP SP3+ - */ - -/*********************************************************************** - * AdminTools folder implementation - */ - -typedef struct { - IShellFolder2Vtbl *lpVtbl; - IPersistFolder2Vtbl *lpVtblPersistFolder2; - - LONG ref; - - CLSID *pclsid; - - LPITEMIDLIST pidlRoot; /* absolute pidl */ - LPWSTR szTarget; - - int dwAttributes; /* attributes returned by GetAttributesOf FIXME: use it */ -} IGenericSFImpl; - -static const shvheader AdminToolsSFHeader[] = { - {IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 12} -}; - -#define COLUMN_NAME 0 -#define COLUMN_SIZE 1 -#define COLUMN_TYPE 2 -#define COLUMN_DATE 3 - -#define AdminToolsHELLVIEWCOLUMNS (4) - - -#define _IPersistFolder2_Offset ((INT_PTR)(&(((IGenericSFImpl*)0)->lpVtblPersistFolder2))) -#define _ICOM_THIS_From_IPersistFolder2(class, name) class* This = (class*)(((char*)name)-_IPersistFolder2_Offset); - -#define _IUnknown_(This) (IShellFolder*)&(This->lpVtbl) -#define _IShellFolder_(This) (IShellFolder*)&(This->lpVtbl) - -#define _IPersist_(This) (IPersist*)&(This->lpVtblPersistFolder2) -#define _IPersistFolder_(This) (IPersistFolder*)&(This->lpVtblPersistFolder2) -#define _IPersistFolder2_(This) (IPersistFolder2*)&(This->lpVtblPersistFolder2) - -/************************************************************************** - * ISF_AdminTools_fnQueryInterface - * - * NOTE does not support IPersist/IPersistFolder - */ -static HRESULT WINAPI ISF_AdminTools_fnQueryInterface( - IShellFolder2 * iface, REFIID riid, LPVOID * ppvObj) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); - - *ppvObj = NULL; - - if (IsEqualIID (riid, &IID_IUnknown) || - IsEqualIID (riid, &IID_IShellFolder) || - IsEqualIID (riid, &IID_IShellFolder2)) - { - *ppvObj = This; - } - - else if (IsEqualIID (riid, &IID_IPersist) || - IsEqualIID (riid, &IID_IPersistFolder) || - IsEqualIID (riid, &IID_IPersistFolder2)) - { - *ppvObj = _IPersistFolder2_ (This); - } - - if (*ppvObj) - { - IUnknown_AddRef ((IUnknown *) (*ppvObj)); - TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj); - return S_OK; - } - TRACE ("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI ISF_AdminTools_fnAddRef (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE ("(%p)->(count=%lu)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI ISF_AdminTools_fnRelease (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE ("(%p)->(count=%lu)\n", This, refCount + 1); - - if (!refCount) - { - TRACE ("-- destroying IShellFolder(%p)\n", This); - if (This->pidlRoot) - SHFree (This->pidlRoot); - HeapFree(GetProcessHeap(), 0, This->szTarget); - HeapFree(GetProcessHeap(), 0, This); - return 0; - } - return refCount; -} - -/************************************************************************** - * ISF_AdminTools_fnParseDisplayName - * - */ -static HRESULT WINAPI ISF_AdminTools_fnParseDisplayName (IShellFolder2 * iface, - HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, - DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE("(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n", - This, hwndOwner, pbc, lpszDisplayName, debugstr_w(lpszDisplayName), - pchEaten, ppidl, pdwAttributes); - - *ppidl = 0; - if (pchEaten) - *pchEaten = 0; - - MessageBoxW(NULL, lpszDisplayName, L"ParseDisplayName", MB_OK); - - return E_NOTIMPL; -} - -/************************************************************************** - * CreateAdminToolsEnumList() - */ -static BOOL CreateAdminToolsEnumList(IEnumIDList *list, IGenericSFImpl *This, DWORD dwFlags) -{ - TRACE("(%p)->(flags=0x%08x)\n", list, dwFlags); - /* enumerate the elements in %windir%\desktop */ - return CreateFolderEnumList(list, This->szTarget, dwFlags); -} - -/************************************************************************** - * ISF_AdminTools_fnEnumObjects - */ -static HRESULT WINAPI ISF_AdminTools_fnEnumObjects (IShellFolder2 * iface, - HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(HWND=%p flags=0x%08lx pplist=%p)\n", - This, hwndOwner, dwFlags, ppEnumIDList); - - if(!ppEnumIDList) return E_OUTOFMEMORY; - *ppEnumIDList = IEnumIDList_Constructor(); - if (*ppEnumIDList) - CreateAdminToolsEnumList(*ppEnumIDList, This, dwFlags); - - TRACE ("-- (%p)->(new ID List: %p)\n", This, *ppEnumIDList); - - return (*ppEnumIDList) ? S_OK : E_OUTOFMEMORY; -} - -/************************************************************************** - * ISF_AdminTools_fnBindToObject - */ -static HRESULT WINAPI ISF_AdminTools_fnBindToObject (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This, - pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - return SHELL32_BindToChild (This->pidlRoot, NULL, pidl, riid, ppvOut); -} - -/************************************************************************** - * ISF_AdminTools_fnBindToStorage - */ -static HRESULT WINAPI ISF_AdminTools_fnBindToStorage (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", - This, pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - *ppvOut = NULL; - return E_NOTIMPL; -} - -/************************************************************************** - * ISF_AdminTools_fnCompareIDs - */ -static HRESULT WINAPI ISF_AdminTools_fnCompareIDs (IShellFolder2 * iface, - LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - int nReturn; - - TRACE ("(%p)->(0x%08lx,pidl1=%p,pidl2=%p)\n", This, lParam, pidl1, pidl2); - nReturn = SHELL32_CompareIDs (_IShellFolder_ (This), lParam, pidl1, pidl2); - TRACE ("-- %i\n", nReturn); - return nReturn; -} - -/************************************************************************** - * ISF_AdminTools_fnCreateViewObject - */ -static HRESULT WINAPI ISF_AdminTools_fnCreateViewObject (IShellFolder2 * iface, - HWND hwndOwner, REFIID riid, LPVOID * ppvOut) -{ - - LPSHELLVIEW pShellView; - HRESULT hr = E_INVALIDARG; - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(hwnd=%p,%s,%p)\n", This, - hwndOwner, shdebugstr_guid (riid), ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IDropTarget)) - { - WARN ("IDropTarget not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IShellView)) - { - pShellView = IShellView_Constructor ((IShellFolder *) iface); - if (pShellView) - { - hr = IShellView_QueryInterface (pShellView, riid, ppvOut); - IShellView_Release (pShellView); - } - } - TRACE ("-- (%p)->(interface=%p)\n", This, ppvOut); - return hr; -} - -/************************************************************************** - * ISF_AdminTools_fnGetAttributesOf - */ -static HRESULT WINAPI ISF_AdminTools_fnGetAttributesOf (IShellFolder2 * iface, - UINT cidl, LPCITEMIDLIST * apidl, DWORD * rgfInOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - HRESULT hr = S_OK; - static const DWORD dwAdminToolsAttributes = - SFGAO_STORAGE | SFGAO_HASPROPSHEET | SFGAO_STORAGEANCESTOR | - SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_FILESYSTEM; - - TRACE ("(%p)->(cidl=%d apidl=%p mask=%p (0x%08x))\n", - This, cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0); - - if (!rgfInOut) - return E_INVALIDARG; - if (cidl && !apidl) - return E_INVALIDARG; - - if (*rgfInOut == 0) - *rgfInOut = ~0; - - if(cidl == 0) { - *rgfInOut &= dwAdminToolsAttributes; - } else { - while (cidl > 0 && *apidl) { - pdump (*apidl); - if (_ILIsAdminTools(*apidl)) { - *rgfInOut &= dwAdminToolsAttributes; - } else { - SHELL32_GetItemAttributes (_IShellFolder_ (This), *apidl, rgfInOut); - } - apidl++; - cidl--; - } - } - /* make sure SFGAO_VALIDATE is cleared, some apps depend on that */ - *rgfInOut &= ~SFGAO_VALIDATE; - - TRACE ("-- result=0x%08x\n", *rgfInOut); - - return hr; -} - -/************************************************************************** - * ISF_AdminTools_fnGetUIObjectOf - * - * PARAMETERS - * HWND hwndOwner, //[in ] Parent window for any output - * UINT cidl, //[in ] array size - * LPCITEMIDLIST* apidl, //[in ] simple pidl array - * REFIID riid, //[in ] Requested Interface - * UINT* prgfInOut, //[ ] reserved - * LPVOID* ppvObject) //[out] Resulting Interface - * - */ -static HRESULT WINAPI ISF_AdminTools_fnGetUIObjectOf (IShellFolder2 * iface, - HWND hwndOwner, UINT cidl, LPCITEMIDLIST * apidl, - REFIID riid, UINT * prgfInOut, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - LPITEMIDLIST pidl; - IUnknown *pObj = NULL; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n", - This, hwndOwner, cidl, apidl, shdebugstr_guid (riid), prgfInOut, ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IContextMenu)) - { - hr = CDefFolderMenu_Create2(This->pidlRoot, hwndOwner, cidl, apidl, (IShellFolder*)iface, NULL, 0, NULL, (IContextMenu**)&pObj); - } - else if (IsEqualIID (riid, &IID_IDataObject) && (cidl >= 1)) - { - pObj = (LPUNKNOWN) IDataObject_Constructor( hwndOwner, - This->pidlRoot, apidl, cidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconA) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconA_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconW) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconW_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IDropTarget) && (cidl >= 1)) - { - hr = IShellFolder_QueryInterface (iface, - &IID_IDropTarget, (LPVOID *) & pObj); - } - else if ((IsEqualIID(riid,&IID_IShellLinkW) || - IsEqualIID(riid,&IID_IShellLinkA)) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - hr = IShellLink_ConstructFromFile(NULL, riid, pidl, (LPVOID*)&pObj); - SHFree (pidl); - } - else - hr = E_NOINTERFACE; - - if (SUCCEEDED(hr) && !pObj) - hr = E_OUTOFMEMORY; - - *ppvOut = pObj; - TRACE ("(%p)->hr=0x%08x\n", This, hr); - return hr; -} - -/************************************************************************** - * ISF_AdminTools_fnGetDisplayNameOf - * - */ -static HRESULT WINAPI ISF_AdminTools_fnGetDisplayNameOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - HRESULT hr = S_OK; - LPWSTR pszPath, pOffset; - - - TRACE ("(%p)->(pidl=%p,0x%08x,%p)\n", This, pidl, dwFlags, strRet); - pdump (pidl); - - if (!strRet) - return E_INVALIDARG; - - pszPath = CoTaskMemAlloc((MAX_PATH +1) * sizeof(WCHAR)); - if (!pszPath) - return E_OUTOFMEMORY; - - ZeroMemory(pszPath, (MAX_PATH +1) * sizeof(WCHAR)); - - if (_ILIsAdminTools (pidl)) - { - if ((GET_SHGDN_RELATION (dwFlags) == SHGDN_NORMAL) && - (GET_SHGDN_FOR (dwFlags) & SHGDN_FORPARSING)) - wcscpy(pszPath, This->szTarget); - else if (!HCR_GetClassNameW(&CLSID_AdminFolderShortcut, pszPath, MAX_PATH)) - hr = E_FAIL; - } - else if (_ILIsPidlSimple(pidl)) - { - if ((GET_SHGDN_FOR(dwFlags) & SHGDN_FORPARSING) && - (GET_SHGDN_RELATION(dwFlags) != SHGDN_INFOLDER) && - This->szTarget) - { - wcscpy(pszPath, This->szTarget); - pOffset = PathAddBackslashW(pszPath); - if (pOffset) - { - if (!_ILSimpleGetTextW(pidl, pOffset, MAX_PATH + 1 - (pOffset - pszPath))) - hr = E_FAIL; - } - else - hr = E_FAIL; - } - else - { - if (_ILSimpleGetTextW(pidl, pszPath, MAX_PATH + 1)) - { - if (SHELL_FS_HideExtension(pszPath)) - PathRemoveExtensionW(pszPath); - } - else - hr = E_FAIL; - } - } - else if (_ILIsSpecialFolder(pidl)) - { - BOOL bSimplePidl = _ILIsPidlSimple(pidl); - - if (bSimplePidl) - { - if (!_ILSimpleGetTextW(pidl, pszPath, MAX_PATH)) - hr = E_FAIL; - } - else if ((dwFlags & SHGDN_FORPARSING) && !bSimplePidl) - { - int len = 0; - - wcscpy(pszPath, This->szTarget); - PathAddBackslashW(pszPath); - len = wcslen(pszPath); - - if (!SUCCEEDED(SHELL32_GetDisplayNameOfChild(iface, pidl, dwFlags | SHGDN_INFOLDER, pszPath + len, MAX_PATH + 1 - len))) - { - CoTaskMemFree(pszPath); - return E_OUTOFMEMORY; - } - - } - } - - if (SUCCEEDED(hr)) - { - strRet->uType = STRRET_WSTR; - strRet->u.pOleStr = pszPath; - TRACE ("-- (%p)->(%s,0x%08x)\n", This, debugstr_w(strRet->u.pOleStr), hr); - } - else - CoTaskMemFree(pszPath); - - return hr; -} - -/************************************************************************** - * ISF_AdminTools_fnSetNameOf - * Changes the name of a file object or subfolder, possibly changing its item - * identifier in the process. - * - * PARAMETERS - * HWND hwndOwner, //[in ] Owner window for output - * LPCITEMIDLIST pidl, //[in ] simple pidl of item to change - * LPCOLESTR lpszName, //[in ] the items new display name - * DWORD dwFlags, //[in ] SHGNO formatting flags - * LPITEMIDLIST* ppidlOut) //[out] simple pidl returned - */ -static HRESULT WINAPI ISF_AdminTools_fnSetNameOf (IShellFolder2 * iface, - HWND hwndOwner, LPCITEMIDLIST pidl, /* simple pidl */ - LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST * pPidlOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)->(%p,pidl=%p,%s,%lu,%p)\n", This, hwndOwner, pidl, - debugstr_w (lpName), dwFlags, pPidlOut); - - return E_FAIL; -} - -static HRESULT WINAPI ISF_AdminTools_fnGetDefaultSearchGUID(IShellFolder2 *iface, - GUID * pguid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_AdminTools_fnEnumSearches (IShellFolder2 *iface, - IEnumExtraSearch ** ppenum) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_AdminTools_fnGetDefaultColumn (IShellFolder2 * iface, - DWORD dwRes, ULONG * pSort, ULONG * pDisplay) -{ - if (pSort) - *pSort = 0; - if (pDisplay) - *pDisplay = 0; - - return S_OK; -} -static HRESULT WINAPI ISF_AdminTools_fnGetDefaultColumnState ( - IShellFolder2 * iface, UINT iColumn, DWORD * pcsFlags) -{ - if (!pcsFlags || iColumn >= AdminToolsHELLVIEWCOLUMNS) - return E_INVALIDARG; - *pcsFlags = AdminToolsSFHeader[iColumn].pcsFlags; - return S_OK; - -} - -static HRESULT WINAPI ISF_AdminTools_fnGetDetailsEx (IShellFolder2 * iface, - LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p): stub\n", This); - - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_AdminTools_fnGetDetailsOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS * psd) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - WCHAR buffer[MAX_PATH] = {0}; - HRESULT hr = E_FAIL; - - TRACE("(%p)->(%p %i %p): stub\n", This, pidl, iColumn, psd); - - if (iColumn >= AdminToolsHELLVIEWCOLUMNS) - return E_FAIL; - - psd->fmt = AdminToolsSFHeader[iColumn].fmt; - psd->cxChar = AdminToolsSFHeader[iColumn].cxChar; - if (pidl == NULL) - { - psd->str.uType = STRRET_WSTR; - if (LoadStringW(shell32_hInstance, AdminToolsSFHeader[iColumn].colnameid, buffer, MAX_PATH)) - hr = SHStrDupW(buffer, &psd->str.u.pOleStr); - - return hr; - } - - psd->str.uType = STRRET_CSTR; - switch (iColumn) - { - case COLUMN_NAME: - psd->str.uType = STRRET_WSTR; - hr = IShellFolder_GetDisplayNameOf(iface, pidl, - SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str); - break; - case COLUMN_SIZE: - _ILGetFileSize (pidl, psd->str.u.cStr, MAX_PATH); - break; - case COLUMN_TYPE: - _ILGetFileType (pidl, psd->str.u.cStr, MAX_PATH); - break; - case COLUMN_DATE: - _ILGetFileDate (pidl, psd->str.u.cStr, MAX_PATH); - break; - } - - return hr; -} - -static HRESULT WINAPI ISF_AdminTools_fnMapColumnToSCID ( - IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p): stub\n", This); - return E_NOTIMPL; -} - -static IShellFolder2Vtbl vt_ShellFolder2 = -{ - ISF_AdminTools_fnQueryInterface, - ISF_AdminTools_fnAddRef, - ISF_AdminTools_fnRelease, - ISF_AdminTools_fnParseDisplayName, - ISF_AdminTools_fnEnumObjects, - ISF_AdminTools_fnBindToObject, - ISF_AdminTools_fnBindToStorage, - ISF_AdminTools_fnCompareIDs, - ISF_AdminTools_fnCreateViewObject, - ISF_AdminTools_fnGetAttributesOf, - ISF_AdminTools_fnGetUIObjectOf, - ISF_AdminTools_fnGetDisplayNameOf, - ISF_AdminTools_fnSetNameOf, - /* ShellFolder2 */ - ISF_AdminTools_fnGetDefaultSearchGUID, - ISF_AdminTools_fnEnumSearches, - ISF_AdminTools_fnGetDefaultColumn, - ISF_AdminTools_fnGetDefaultColumnState, - ISF_AdminTools_fnGetDetailsEx, - ISF_AdminTools_fnGetDetailsOf, - ISF_AdminTools_fnMapColumnToSCID -}; - -/************************************************************************ - * IPF_AdminTools_QueryInterface - */ -static HRESULT WINAPI IPF_AdminTools_QueryInterface ( - IPersistFolder2 * iface, REFIID iid, LPVOID * ppvObj) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)\n", This); - - return IUnknown_QueryInterface (_IUnknown_ (This), iid, ppvObj); -} - -/************************************************************************ - * IPF_AdminTools_AddRef - */ -static ULONG WINAPI IPF_AdminTools_AddRef (IPersistFolder2 * iface) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(count=%lu)\n", This, This->ref); - - return IUnknown_AddRef (_IUnknown_ (This)); -} - -/************************************************************************ - * IPF_AdminTools_Release - */ -static ULONG WINAPI IPF_AdminTools_Release (IPersistFolder2 * iface) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(count=%lu)\n", This, This->ref); - - return IUnknown_Release (_IUnknown_ (This)); -} - -/************************************************************************ - * IPF_AdminTools_GetClassID - */ -static HRESULT WINAPI IPF_AdminTools_GetClassID ( - IPersistFolder2 * iface, CLSID * lpClassId) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)\n", This); - - memcpy(lpClassId, &CLSID_AdminFolderShortcut, sizeof(CLSID)); - - return S_OK; -} - -/************************************************************************ - * IPF_AdminTools_Initialize - * - */ -static HRESULT WINAPI IPF_AdminTools_Initialize ( - IPersistFolder2 * iface, LPCITEMIDLIST pidl) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - if (This->pidlRoot) - SHFree((LPVOID)This->pidlRoot); - - This->pidlRoot = ILClone(pidl); - return S_OK; -} - -/************************************************************************** - * IPF_AdminTools_fnGetCurFolder - */ -static HRESULT WINAPI IPF_AdminTools_GetCurFolder ( - IPersistFolder2 * iface, LPITEMIDLIST * pidl) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - *pidl = ILClone (This->pidlRoot); - return S_OK; -} - -static IPersistFolder2Vtbl vt_PersistFolder2 = -{ - IPF_AdminTools_QueryInterface, - IPF_AdminTools_AddRef, - IPF_AdminTools_Release, - IPF_AdminTools_GetClassID, - IPF_AdminTools_Initialize, - IPF_AdminTools_GetCurFolder -}; - -/************************************************************************** - * ISF_AdminTools_Constructor - */ -HRESULT WINAPI ISF_AdminTools_Constructor ( - IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) -{ - IGenericSFImpl *sf; - HRESULT hr; - - TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid)); - - if (pUnkOuter) - return CLASS_E_NOAGGREGATION; - - sf = HeapAlloc( GetProcessHeap(), 0, sizeof(*sf) ); - if (!sf) - return E_OUTOFMEMORY; - - sf->szTarget = HeapAlloc( GetProcessHeap(), 0, MAX_PATH * sizeof(WCHAR) ); - if (!sf->szTarget) - { - HeapFree(GetProcessHeap(), 0, sf); - return E_OUTOFMEMORY; - } - if (!SHGetSpecialFolderPathW(NULL, sf->szTarget, CSIDL_COMMON_ADMINTOOLS, FALSE)) - { - HeapFree(GetProcessHeap(), 0, sf->szTarget); - HeapFree(GetProcessHeap(), 0, sf); - return E_FAIL; - } - - sf->ref = 1; - sf->lpVtbl = &vt_ShellFolder2; - sf->lpVtblPersistFolder2 = &vt_PersistFolder2; - sf->pidlRoot = _ILCreateAdminTools(); /* my qualified pidl */ - - hr = IUnknown_QueryInterface( _IUnknown_(sf), riid, ppv ); - IUnknown_Release( _IUnknown_(sf) ); - - TRACE ("--(%p)\n", *ppv); - return hr; -} diff --git a/reactos/dll/win32/shell32/shfldr_cpanel.c b/reactos/dll/win32/shell32/shfldr_cpanel.c deleted file mode 100644 index c9f5b932de6..00000000000 --- a/reactos/dll/win32/shell32/shfldr_cpanel.c +++ /dev/null @@ -1,1413 +0,0 @@ -/* - * Control panel folder - * - * Copyright 2003 Martin Fuchs - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - - -#include - - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -/*********************************************************************** -* control panel implementation in shell namespace -*/ - -typedef struct { - const IShellFolder2Vtbl *lpVtbl; - LONG ref; - const IPersistFolder2Vtbl *lpVtblPersistFolder2; - const IShellExecuteHookWVtbl *lpVtblShellExecuteHookW; - const IShellExecuteHookAVtbl *lpVtblShellExecuteHookA; - const IContextMenu2Vtbl *lpVtblContextMenu; - IUnknown *pUnkOuter; /* used for aggregation */ - - /* both paths are parsible from the desktop */ - LPITEMIDLIST pidlRoot; /* absolute pidl */ - int dwAttributes; /* attributes returned by GetAttributesOf FIXME: use it */ - LPCITEMIDLIST *apidl; - UINT cidl; -} ICPanelImpl, *LPICPanelImpl; - -static const IShellFolder2Vtbl vt_ShellFolder2; -static const IPersistFolder2Vtbl vt_PersistFolder2; -static const IShellExecuteHookWVtbl vt_ShellExecuteHookW; -static const IShellExecuteHookAVtbl vt_ShellExecuteHookA; -static const IContextMenu2Vtbl vt_ContextMenu; - -static LPICPanelImpl __inline impl_from_IPersistFolder2( IPersistFolder2 *iface ) -{ - return (LPICPanelImpl)((char*)iface - FIELD_OFFSET(ICPanelImpl, lpVtblPersistFolder2)); -} - -static LPICPanelImpl __inline impl_from_IContextMenu( IContextMenu2 *iface ) -{ - return (LPICPanelImpl)((char*)iface - FIELD_OFFSET(ICPanelImpl, lpVtblContextMenu)); -} - - -static LPICPanelImpl __inline impl_from_IShellExecuteHookW( IShellExecuteHookW *iface ) -{ - return (LPICPanelImpl)((char*)iface - FIELD_OFFSET(ICPanelImpl, lpVtblShellExecuteHookW)); -} - -static LPICPanelImpl __inline impl_from_IShellExecuteHookA( IShellExecuteHookA *iface ) -{ - return (LPICPanelImpl)((char*)iface - FIELD_OFFSET(ICPanelImpl, lpVtblShellExecuteHookA)); -} - - -/* - converts This to an interface pointer -*/ -#define _IUnknown_(This) (IUnknown*)&(This->lpVtbl) -#define _IShellFolder_(This) (IShellFolder*)&(This->lpVtbl) -#define _IShellFolder2_(This) (IShellFolder2*)&(This->lpVtbl) - -#define _IPersist_(This) (IPersist*)&(This->lpVtblPersistFolder2) -#define _IPersistFolder_(This) (IPersistFolder*)&(This->lpVtblPersistFolder2) -#define _IPersistFolder2_(This) (IPersistFolder2*)&(This->lpVtblPersistFolder2) -#define _IShellExecuteHookW_(This) (IShellExecuteHookW*)&(This->lpVtblShellExecuteHookW) -#define _IShellExecuteHookA_(This) (IShellExecuteHookA*)&(This->lpVtblShellExecuteHookA) - - -/*********************************************************************** -* IShellFolder [ControlPanel] implementation -*/ - -static const shvheader ControlPanelSFHeader[] = { - {IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15},/*FIXME*/ - {IDS_SHV_COLUMN9, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 200},/*FIXME*/ -}; - -#define CONROLPANELSHELLVIEWCOLUMNS 2 - -/************************************************************************** -* IControlPanel_Constructor -*/ -HRESULT WINAPI IControlPanel_Constructor(IUnknown* pUnkOuter, REFIID riid, LPVOID * ppv) -{ - ICPanelImpl *sf; - - TRACE("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid(riid)); - - if (!ppv) - return E_POINTER; - if (pUnkOuter && !IsEqualIID (riid, &IID_IUnknown)) - return CLASS_E_NOAGGREGATION; - - sf = (ICPanelImpl *) LocalAlloc(LMEM_ZEROINIT, sizeof(ICPanelImpl)); - if (!sf) - return E_OUTOFMEMORY; - - sf->ref = 0; - sf->apidl = NULL; - sf->cidl = 0; - sf->lpVtbl = &vt_ShellFolder2; - sf->lpVtblPersistFolder2 = &vt_PersistFolder2; - sf->lpVtblShellExecuteHookW = &vt_ShellExecuteHookW; - sf->lpVtblShellExecuteHookA = &vt_ShellExecuteHookA; - sf->lpVtblContextMenu = &vt_ContextMenu; - sf->pidlRoot = _ILCreateControlPanel(); /* my qualified pidl */ - sf->pUnkOuter = pUnkOuter ? pUnkOuter : _IUnknown_ (sf); - - if (!SUCCEEDED(IUnknown_QueryInterface(_IUnknown_(sf), riid, ppv))) { - IUnknown_Release(_IUnknown_(sf)); - return E_NOINTERFACE; - } - - TRACE("--(%p)\n", sf); - return S_OK; -} - -/************************************************************************** - * ISF_ControlPanel_fnQueryInterface - * - * NOTES supports not IPersist/IPersistFolder - */ -static HRESULT WINAPI ISF_ControlPanel_fnQueryInterface(IShellFolder2 * iface, REFIID riid, LPVOID * ppvObject) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - TRACE("(%p)->(%s,%p)\n", This, shdebugstr_guid(riid), ppvObject); - - *ppvObject = NULL; - - if (IsEqualIID(riid, &IID_IUnknown) || - IsEqualIID(riid, &IID_IShellFolder) || IsEqualIID(riid, &IID_IShellFolder2)) - *ppvObject = This; - else if (IsEqualIID(riid, &IID_IPersist) || - IsEqualIID(riid, &IID_IPersistFolder) || IsEqualIID(riid, &IID_IPersistFolder2)) - *ppvObject = _IPersistFolder2_(This); - else if (IsEqualIID(riid, &IID_IShellExecuteHookW)) - *ppvObject = _IShellExecuteHookW_(This); - else if (IsEqualIID(riid, &IID_IShellExecuteHookA)) - *ppvObject = _IShellExecuteHookA_(This); - - if (*ppvObject) { - IUnknown_AddRef((IUnknown *)(*ppvObject)); - TRACE("-- Interface:(%p)->(%p)\n", ppvObject, *ppvObject); - return S_OK; - } - TRACE("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI ISF_ControlPanel_fnAddRef(IShellFolder2 * iface) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI ISF_ControlPanel_fnRelease(IShellFolder2 * iface) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount + 1); - - if (!refCount) { - TRACE("-- destroying IShellFolder(%p)\n", This); - SHFree(This->pidlRoot); - LocalFree((HLOCAL) This); - } - return refCount; -} - -/************************************************************************** -* ISF_ControlPanel_fnParseDisplayName -*/ -static HRESULT WINAPI -ISF_ControlPanel_fnParseDisplayName(IShellFolder2 * iface, - HWND hwndOwner, - LPBC pbc, - LPOLESTR lpszDisplayName, - DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - WCHAR szElement[MAX_PATH]; - LPCWSTR szNext = NULL; - LPITEMIDLIST pidlTemp = NULL; - HRESULT hr = S_OK; - CLSID clsid; - - TRACE ("(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n", - This, hwndOwner, pbc, lpszDisplayName, debugstr_w(lpszDisplayName), - pchEaten, ppidl, pdwAttributes); - - if (!lpszDisplayName || !ppidl) - return E_INVALIDARG; - - *ppidl = 0; - - if (pchEaten) - *pchEaten = 0; /* strange but like the original */ - - if (lpszDisplayName[0] == ':' && lpszDisplayName[1] == ':') - { - szNext = GetNextElementW (lpszDisplayName, szElement, MAX_PATH); - TRACE ("-- element: %s\n", debugstr_w (szElement)); - CLSIDFromString (szElement + 2, &clsid); - pidlTemp = _ILCreateGuid (PT_GUID, &clsid); - } - else if( (pidlTemp = SHELL32_CreatePidlFromBindCtx(pbc, lpszDisplayName)) ) - { - *ppidl = pidlTemp; - return S_OK; - } - - if (SUCCEEDED(hr) && pidlTemp) - { - if (szNext && *szNext) - { - hr = SHELL32_ParseNextElement(iface, hwndOwner, pbc, - &pidlTemp, (LPOLESTR) szNext, pchEaten, pdwAttributes); - } - else - { - if (pdwAttributes && *pdwAttributes) - hr = SHELL32_GetItemAttributes(_IShellFolder_ (This), - pidlTemp, pdwAttributes); - } - } - - *ppidl = pidlTemp; - - TRACE ("(%p)->(-- ret=0x%08x)\n", This, hr); - - return hr; -} - -static LPITEMIDLIST _ILCreateCPanelApplet(LPCSTR name, LPCSTR displayName, - LPCSTR comment, int iconIdx) -{ - PIDLCPanelStruct *p; - LPITEMIDLIST pidl; - PIDLDATA tmp; - int size0 = (char*)&tmp.u.cpanel.szName-(char*)&tmp.u.cpanel; - int size = size0; - int l; - - tmp.type = PT_CPLAPPLET; - tmp.u.cpanel.dummy = 0; - tmp.u.cpanel.iconIdx = iconIdx; - - l = strlen(name); - size += l+1; - - tmp.u.cpanel.offsDispName = l+1; - l = strlen(displayName); - size += l+1; - - tmp.u.cpanel.offsComment = tmp.u.cpanel.offsDispName+1+l; - l = strlen(comment); - size += l+1; - - pidl = SHAlloc(size+4); - if (!pidl) - return NULL; - - pidl->mkid.cb = size+2; - memcpy(pidl->mkid.abID, &tmp, 2+size0); - - p = &((PIDLDATA*)pidl->mkid.abID)->u.cpanel; - strcpy(p->szName, name); - strcpy(p->szName+tmp.u.cpanel.offsDispName, displayName); - strcpy(p->szName+tmp.u.cpanel.offsComment, comment); - - *(WORD*)((char*)pidl+(size+2)) = 0; - - pcheck(pidl); - - return pidl; -} - -/************************************************************************** - * _ILGetCPanelPointer() - * gets a pointer to the control panel struct stored in the pidl - */ -static PIDLCPanelStruct* _ILGetCPanelPointer(LPCITEMIDLIST pidl) -{ - LPPIDLDATA pdata = _ILGetDataPointer(pidl); - - if (pdata && pdata->type==PT_CPLAPPLET) - return (PIDLCPanelStruct*)&(pdata->u.cpanel); - - return NULL; -} - -static BOOL SHELL_RegisterCPanelApp(IEnumIDList* list, LPCSTR path) -{ - LPITEMIDLIST pidl; - CPlApplet* applet; - CPanel panel; - CPLINFO info; - unsigned i; - int iconIdx; - - char displayName[MAX_PATH]; - char comment[MAX_PATH]; - - WCHAR wpath[MAX_PATH]; - - MultiByteToWideChar(CP_ACP, 0, path, -1, wpath, MAX_PATH); - - panel.first = NULL; - applet = Control_LoadApplet(0, wpath, &panel); - - if (applet) - { - for(i=0; icount; ++i) - { - WideCharToMultiByte(CP_ACP, 0, applet->info[i].szName, -1, displayName, MAX_PATH, 0, 0); - WideCharToMultiByte(CP_ACP, 0, applet->info[i].szInfo, -1, comment, MAX_PATH, 0, 0); - - applet->proc(0, CPL_INQUIRE, i, (LPARAM)&info); - - if (info.idIcon > 0) - iconIdx = -info.idIcon; /* negative icon index instead of icon number */ - else - iconIdx = 0; - - pidl = _ILCreateCPanelApplet(path, displayName, comment, iconIdx); - - if (pidl) - AddToEnumList(list, pidl); - } - Control_UnloadApplet(applet); - } - return TRUE; -} - -static int SHELL_RegisterRegistryCPanelApps(IEnumIDList* list, HKEY hkey_root, LPCSTR szRepPath) -{ - char name[MAX_PATH]; - char value[MAX_PATH]; - HKEY hkey; - - int cnt = 0; - - if (RegOpenKeyA(hkey_root, szRepPath, &hkey) == ERROR_SUCCESS) - { - int idx = 0; - - for(;; ++idx) - { - DWORD nameLen = MAX_PATH; - DWORD valueLen = MAX_PATH; - - if (RegEnumValueA(hkey, idx, name, &nameLen, NULL, NULL, (LPBYTE)&value, &valueLen) != ERROR_SUCCESS) - break; - - if (SHELL_RegisterCPanelApp(list, value)) - ++cnt; - } - RegCloseKey(hkey); - } - - return cnt; -} - -static int SHELL_RegisterCPanelFolders(IEnumIDList* list, HKEY hkey_root, LPCSTR szRepPath) -{ - char name[MAX_PATH]; - HKEY hkey; - - int cnt = 0; - - if (RegOpenKeyA(hkey_root, szRepPath, &hkey) == ERROR_SUCCESS) - { - int idx = 0; - for(;; ++idx) - { - if (RegEnumKeyA(hkey, idx, name, MAX_PATH) != ERROR_SUCCESS) - break; - - if (*name == '{') - { - LPITEMIDLIST pidl = _ILCreateGuidFromStrA(name); - - if (pidl && AddToEnumList(list, pidl)) - ++cnt; - } - } - - RegCloseKey(hkey); - } - - return cnt; -} - -/************************************************************************** - * CreateCPanelEnumList() - */ -static BOOL CreateCPanelEnumList( - IEnumIDList * iface, - DWORD dwFlags) -{ - CHAR szPath[MAX_PATH]; - WIN32_FIND_DATAA wfd; - HANDLE hFile; - - TRACE("(%p)->(flags=0x%08x)\n", iface, dwFlags); - - /* enumerate control panel folders */ - if (dwFlags & SHCONTF_FOLDERS) - SHELL_RegisterCPanelFolders(iface, HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ControlPanel\\NameSpace"); - - /* enumerate the control panel applets */ - if (dwFlags & SHCONTF_NONFOLDERS) - { - LPSTR p; - - GetSystemDirectoryA(szPath, MAX_PATH); - p = PathAddBackslashA(szPath); - strcpy(p, "*.cpl"); - - TRACE("-- (%p)-> enumerate SHCONTF_NONFOLDERS of %s\n",iface,debugstr_a(szPath)); - hFile = FindFirstFileA(szPath, &wfd); - - if (hFile != INVALID_HANDLE_VALUE) - { - do - { - if (!(dwFlags & SHCONTF_INCLUDEHIDDEN) && (wfd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)) - continue; - - if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { - strcpy(p, wfd.cFileName); - if (strcmp(wfd.cFileName, "ncpa.cpl")) - SHELL_RegisterCPanelApp((IEnumIDList*)iface, szPath); - } - } while(FindNextFileA(hFile, &wfd)); - FindClose(hFile); - } - - SHELL_RegisterRegistryCPanelApps((IEnumIDList*)iface, HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Cpls"); - SHELL_RegisterRegistryCPanelApps((IEnumIDList*)iface, HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Cpls"); - } - return TRUE; -} - -/************************************************************************** -* ISF_ControlPanel_fnEnumObjects -*/ -static HRESULT WINAPI -ISF_ControlPanel_fnEnumObjects(IShellFolder2 * iface, HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - TRACE("(%p)->(HWND=%p flags=0x%08x pplist=%p)\n", This, hwndOwner, dwFlags, ppEnumIDList); - - *ppEnumIDList = IEnumIDList_Constructor(); - if (*ppEnumIDList) - CreateCPanelEnumList(*ppEnumIDList, dwFlags); - - TRACE("--(%p)->(new ID List: %p)\n", This, *ppEnumIDList); - - return(*ppEnumIDList) ? S_OK : E_OUTOFMEMORY; -} - -/************************************************************************** -* ISF_ControlPanel_fnBindToObject -*/ -static HRESULT WINAPI -ISF_ControlPanel_fnBindToObject(IShellFolder2 * iface, LPCITEMIDLIST pidl, - LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - TRACE("(%p)->(pidl=%p,%p,%s,%p)\n", This, pidl, pbcReserved, shdebugstr_guid(riid), ppvOut); - - return SHELL32_BindToChild(This->pidlRoot, NULL, pidl, riid, ppvOut); -} - -/************************************************************************** -* ISF_ControlPanel_fnBindToStorage -*/ -static HRESULT WINAPI -ISF_ControlPanel_fnBindToStorage(IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - FIXME("(%p)->(pidl=%p,%p,%s,%p) stub\n", This, pidl, pbcReserved, shdebugstr_guid(riid), ppvOut); - - *ppvOut = NULL; - return E_NOTIMPL; -} - -/************************************************************************** -* ISF_ControlPanel_fnCompareIDs -*/ - -static HRESULT WINAPI -ISF_ControlPanel_fnCompareIDs(IShellFolder2 * iface, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - int nReturn; - - TRACE("(%p)->(0x%08lx,pidl1=%p,pidl2=%p)\n", This, lParam, pidl1, pidl2); - nReturn = SHELL32_CompareIDs(_IShellFolder_(This), lParam, pidl1, pidl2); - TRACE("-- %i\n", nReturn); - return nReturn; -} - -/************************************************************************** -* ISF_ControlPanel_fnCreateViewObject -*/ -static HRESULT WINAPI -ISF_ControlPanel_fnCreateViewObject(IShellFolder2 * iface, HWND hwndOwner, REFIID riid, LPVOID * ppvOut) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - LPSHELLVIEW pShellView; - HRESULT hr = E_INVALIDARG; - - TRACE("(%p)->(hwnd=%p,%s,%p)\n", This, hwndOwner, shdebugstr_guid(riid), ppvOut); - - if (ppvOut) { - *ppvOut = NULL; - - if (IsEqualIID(riid, &IID_IDropTarget)) { - WARN("IDropTarget not implemented\n"); - hr = E_NOTIMPL; - } else if (IsEqualIID(riid, &IID_IContextMenu)) { - WARN("IContextMenu not implemented\n"); - hr = E_NOTIMPL; - } else if (IsEqualIID(riid, &IID_IShellView)) { - pShellView = IShellView_Constructor((IShellFolder *) iface); - if (pShellView) { - hr = IShellView_QueryInterface(pShellView, riid, ppvOut); - IShellView_Release(pShellView); - } - } - } - TRACE("--(%p)->(interface=%p)\n", This, ppvOut); - return hr; -} - -/************************************************************************** -* ISF_ControlPanel_fnGetAttributesOf -*/ -static HRESULT WINAPI -ISF_ControlPanel_fnGetAttributesOf(IShellFolder2 * iface, UINT cidl, LPCITEMIDLIST * apidl, DWORD * rgfInOut) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - HRESULT hr = S_OK; - - TRACE("(%p)->(cidl=%d apidl=%p mask=%p (0x%08x))\n", - This, cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0); - - if (!rgfInOut) - return E_INVALIDARG; - if (cidl && !apidl) - return E_INVALIDARG; - - if (*rgfInOut == 0) - *rgfInOut = ~0; - - while(cidl > 0 && *apidl) { - pdump(*apidl); - SHELL32_GetItemAttributes(_IShellFolder_(This), *apidl, rgfInOut); - apidl++; - cidl--; - } - /* make sure SFGAO_VALIDATE is cleared, some apps depend on that */ - *rgfInOut &= ~SFGAO_VALIDATE; - - TRACE("-- result=0x%08x\n", *rgfInOut); - return hr; -} - -/************************************************************************** -* ISF_ControlPanel_fnGetUIObjectOf -* -* PARAMETERS -* HWND hwndOwner, //[in ] Parent window for any output -* UINT cidl, //[in ] array size -* LPCITEMIDLIST* apidl, //[in ] simple pidl array -* REFIID riid, //[in ] Requested Interface -* UINT* prgfInOut, //[ ] reserved -* LPVOID* ppvObject) //[out] Resulting Interface -* -*/ -static HRESULT WINAPI -ISF_ControlPanel_fnGetUIObjectOf(IShellFolder2 * iface, - HWND hwndOwner, - UINT cidl, LPCITEMIDLIST * apidl, REFIID riid, UINT * prgfInOut, LPVOID * ppvOut) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - LPITEMIDLIST pidl; - IUnknown *pObj = NULL; - HRESULT hr = E_INVALIDARG; - - TRACE("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n", - This, hwndOwner, cidl, apidl, shdebugstr_guid(riid), prgfInOut, ppvOut); - - if (ppvOut) { - *ppvOut = NULL; - - if (IsEqualIID(riid, &IID_IContextMenu) &&(cidl >= 1)) { - // TODO - // create a seperate item struct - // - pObj = (IUnknown*)(&This->lpVtblContextMenu); - This->apidl = apidl; - This->cidl = cidl; - IUnknown_AddRef(pObj); - hr = S_OK; - } else if (IsEqualIID(riid, &IID_IDataObject) &&(cidl >= 1)) { - pObj = (LPUNKNOWN) IDataObject_Constructor(hwndOwner, This->pidlRoot, apidl, cidl); - hr = S_OK; - } else if (IsEqualIID(riid, &IID_IExtractIconA) &&(cidl == 1)) { - pidl = ILCombine(This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconA_Constructor(pidl); - SHFree(pidl); - hr = S_OK; - } else if (IsEqualIID(riid, &IID_IExtractIconW) &&(cidl == 1)) { - pidl = ILCombine(This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconW_Constructor(pidl); - SHFree(pidl); - hr = S_OK; - } else if ((IsEqualIID(riid,&IID_IShellLinkW) || IsEqualIID(riid,&IID_IShellLinkA)) - && (cidl == 1)) { - pidl = ILCombine(This->pidlRoot, apidl[0]); - hr = IShellLink_ConstructFromFile(NULL, riid, pidl,(LPVOID*)&pObj); - SHFree(pidl); - } else { - hr = E_NOINTERFACE; - } - - if (SUCCEEDED(hr) && !pObj) - hr = E_OUTOFMEMORY; - - *ppvOut = pObj; - } - TRACE("(%p)->hr=0x%08x\n", This, hr); - return hr; -} - -/************************************************************************** -* ISF_ControlPanel_fnGetDisplayNameOf -*/ -static HRESULT WINAPI ISF_ControlPanel_fnGetDisplayNameOf(IShellFolder2 * iface, LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - CHAR szPath[MAX_PATH]; - WCHAR wszPath[MAX_PATH+1]; /* +1 for potential backslash */ - PIDLCPanelStruct* pcpanel; - - *szPath = '\0'; - - TRACE("(%p)->(pidl=%p,0x%08x,%p)\n", This, pidl, dwFlags, strRet); - pdump(pidl); - - if (!pidl || !strRet) - return E_INVALIDARG; - - pcpanel = _ILGetCPanelPointer(pidl); - - if (pcpanel) { - lstrcpyA(szPath, pcpanel->szName+pcpanel->offsDispName); - - if (!(dwFlags & SHGDN_FORPARSING)) - FIXME("retrieve display name from control panel app\n"); - } - /* take names of special folders only if it's only this folder */ - else if (_ILIsSpecialFolder(pidl)) { - BOOL bSimplePidl = _ILIsPidlSimple(pidl); - - if (bSimplePidl) { - _ILSimpleGetTextW(pidl, wszPath, MAX_PATH); /* append my own path */ - } else { - FIXME("special pidl\n"); - } - - if ((dwFlags & SHGDN_FORPARSING) && !bSimplePidl) { /* go deeper if needed */ - int len = 0; - - PathAddBackslashW(wszPath); - len = wcslen(wszPath); - - if (!SUCCEEDED - (SHELL32_GetDisplayNameOfChild(iface, pidl, dwFlags, wszPath + len, MAX_PATH + 1 - len))) - return E_OUTOFMEMORY; - if (!WideCharToMultiByte(CP_ACP, 0, wszPath, -1, szPath, MAX_PATH, NULL, NULL)) - wszPath[0] = '\0'; - } else { - if (bSimplePidl) { - if (!WideCharToMultiByte(CP_ACP, 0, wszPath, -1, szPath, MAX_PATH, NULL, NULL)) - wszPath[0] = '\0'; - } - } - } - - strRet->uType = STRRET_CSTR; - lstrcpynA(strRet->u.cStr, szPath, MAX_PATH); - - TRACE("--(%p)->(%s)\n", This, szPath); - return S_OK; -} - -/************************************************************************** -* ISF_ControlPanel_fnSetNameOf -* Changes the name of a file object or subfolder, possibly changing its item -* identifier in the process. -* -* PARAMETERS -* HWND hwndOwner, //[in ] Owner window for output -* LPCITEMIDLIST pidl, //[in ] simple pidl of item to change -* LPCOLESTR lpszName, //[in ] the items new display name -* DWORD dwFlags, //[in ] SHGNO formatting flags -* LPITEMIDLIST* ppidlOut) //[out] simple pidl returned -*/ -static HRESULT WINAPI ISF_ControlPanel_fnSetNameOf(IShellFolder2 * iface, HWND hwndOwner, LPCITEMIDLIST pidl, /*simple pidl */ - LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST * pPidlOut) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - FIXME("(%p)->(%p,pidl=%p,%s,%u,%p)\n", This, hwndOwner, pidl, debugstr_w(lpName), dwFlags, pPidlOut); - return E_FAIL; -} - -static HRESULT WINAPI ISF_ControlPanel_fnGetDefaultSearchGUID(IShellFolder2 * iface, GUID * pguid) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - FIXME("(%p)\n", This); - return E_NOTIMPL; -} -static HRESULT WINAPI ISF_ControlPanel_fnEnumSearches(IShellFolder2 * iface, IEnumExtraSearch ** ppenum) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - FIXME("(%p)\n", This); - return E_NOTIMPL; -} -static HRESULT WINAPI ISF_ControlPanel_fnGetDefaultColumn(IShellFolder2 * iface, DWORD dwRes, ULONG * pSort, ULONG * pDisplay) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - TRACE("(%p)\n", This); - - if (pSort) *pSort = 0; - if (pDisplay) *pDisplay = 0; - return S_OK; -} -static HRESULT WINAPI ISF_ControlPanel_fnGetDefaultColumnState(IShellFolder2 * iface, UINT iColumn, DWORD * pcsFlags) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - TRACE("(%p)\n", This); - - if (!pcsFlags || iColumn >= CONROLPANELSHELLVIEWCOLUMNS) return E_INVALIDARG; - *pcsFlags = ControlPanelSFHeader[iColumn].pcsFlags; - return S_OK; -} -static HRESULT WINAPI ISF_ControlPanel_fnGetDetailsEx(IShellFolder2 * iface, LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - FIXME("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_ControlPanel_fnGetDetailsOf(IShellFolder2 * iface, LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS * psd) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - HRESULT hr; - - TRACE("(%p)->(%p %i %p)\n", This, pidl, iColumn, psd); - - if (!psd || iColumn >= CONROLPANELSHELLVIEWCOLUMNS) - return E_INVALIDARG; - - if (!pidl) { - psd->fmt = ControlPanelSFHeader[iColumn].fmt; - psd->cxChar = ControlPanelSFHeader[iColumn].cxChar; - psd->str.uType = STRRET_CSTR; - LoadStringA(shell32_hInstance, ControlPanelSFHeader[iColumn].colnameid, psd->str.u.cStr, MAX_PATH); - return S_OK; - } else { - psd->str.u.cStr[0] = 0x00; - psd->str.uType = STRRET_CSTR; - switch(iColumn) { - case 0: /* name */ - hr = IShellFolder_GetDisplayNameOf(iface, pidl, SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str); - break; - case 1: /* comment */ - _ILGetFileType(pidl, psd->str.u.cStr, MAX_PATH); - break; - } - hr = S_OK; - } - - return hr; -} -static HRESULT WINAPI ISF_ControlPanel_fnMapColumnToSCID(IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - FIXME("(%p)\n", This); - return E_NOTIMPL; -} - -static const IShellFolder2Vtbl vt_ShellFolder2 = -{ - - ISF_ControlPanel_fnQueryInterface, - ISF_ControlPanel_fnAddRef, - ISF_ControlPanel_fnRelease, - ISF_ControlPanel_fnParseDisplayName, - ISF_ControlPanel_fnEnumObjects, - ISF_ControlPanel_fnBindToObject, - ISF_ControlPanel_fnBindToStorage, - ISF_ControlPanel_fnCompareIDs, - ISF_ControlPanel_fnCreateViewObject, - ISF_ControlPanel_fnGetAttributesOf, - ISF_ControlPanel_fnGetUIObjectOf, - ISF_ControlPanel_fnGetDisplayNameOf, - ISF_ControlPanel_fnSetNameOf, - - /* ShellFolder2 */ - ISF_ControlPanel_fnGetDefaultSearchGUID, - ISF_ControlPanel_fnEnumSearches, - ISF_ControlPanel_fnGetDefaultColumn, - ISF_ControlPanel_fnGetDefaultColumnState, - ISF_ControlPanel_fnGetDetailsEx, - ISF_ControlPanel_fnGetDetailsOf, - ISF_ControlPanel_fnMapColumnToSCID -}; - -/************************************************************************ - * ICPanel_PersistFolder2_QueryInterface - */ -static HRESULT WINAPI ICPanel_PersistFolder2_QueryInterface(IPersistFolder2 * iface, REFIID iid, LPVOID * ppvObject) -{ - ICPanelImpl *This = impl_from_IPersistFolder2(iface); - - TRACE("(%p)\n", This); - - return IUnknown_QueryInterface(_IUnknown_(This), iid, ppvObject); -} - -/************************************************************************ - * ICPanel_PersistFolder2_AddRef - */ -static ULONG WINAPI ICPanel_PersistFolder2_AddRef(IPersistFolder2 * iface) -{ - ICPanelImpl *This = impl_from_IPersistFolder2(iface); - - TRACE("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_AddRef(_IUnknown_(This)); -} - -/************************************************************************ - * ISFPersistFolder_Release - */ -static ULONG WINAPI ICPanel_PersistFolder2_Release(IPersistFolder2 * iface) -{ - ICPanelImpl *This = impl_from_IPersistFolder2(iface); - - TRACE("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_Release(_IUnknown_(This)); -} - -/************************************************************************ - * ICPanel_PersistFolder2_GetClassID - */ -static HRESULT WINAPI ICPanel_PersistFolder2_GetClassID(IPersistFolder2 * iface, CLSID * lpClassId) -{ - ICPanelImpl *This = impl_from_IPersistFolder2(iface); - - TRACE("(%p)\n", This); - - if (!lpClassId) - return E_POINTER; - *lpClassId = CLSID_ControlPanel; - - return S_OK; -} - -/************************************************************************ - * ICPanel_PersistFolder2_Initialize - * - * NOTES: it makes no sense to change the pidl - */ -static HRESULT WINAPI ICPanel_PersistFolder2_Initialize(IPersistFolder2 * iface, LPCITEMIDLIST pidl) -{ - ICPanelImpl *This = impl_from_IPersistFolder2(iface); - if (This->pidlRoot) - SHFree((LPVOID)This->pidlRoot); - - This->pidlRoot = ILClone(pidl); - return S_OK; -} - -/************************************************************************** - * IPersistFolder2_fnGetCurFolder - */ -static HRESULT WINAPI ICPanel_PersistFolder2_GetCurFolder(IPersistFolder2 * iface, LPITEMIDLIST * pidl) -{ - ICPanelImpl *This = impl_from_IPersistFolder2(iface); - - TRACE("(%p)->(%p)\n", This, pidl); - - if (!pidl) - return E_POINTER; - *pidl = ILClone(This->pidlRoot); - return S_OK; -} - -static const IPersistFolder2Vtbl vt_PersistFolder2 = -{ - - ICPanel_PersistFolder2_QueryInterface, - ICPanel_PersistFolder2_AddRef, - ICPanel_PersistFolder2_Release, - ICPanel_PersistFolder2_GetClassID, - ICPanel_PersistFolder2_Initialize, - ICPanel_PersistFolder2_GetCurFolder -}; - -HRESULT CPanel_GetIconLocationW(LPCITEMIDLIST pidl, - LPWSTR szIconFile, UINT cchMax, int* piIndex) -{ - PIDLCPanelStruct* pcpanel = _ILGetCPanelPointer(pidl); - - if (!pcpanel) - return E_INVALIDARG; - - MultiByteToWideChar(CP_ACP, 0, pcpanel->szName, -1, szIconFile, cchMax); - *piIndex = pcpanel->iconIdx!=-1? pcpanel->iconIdx: 0; - - return S_OK; -} - - -/************************************************************************** -* IShellExecuteHookW Implementation -*/ - -static HRESULT WINAPI IShellExecuteHookW_fnQueryInterface( - IShellExecuteHookW* iface, REFIID riid, void** ppvObject) -{ - ICPanelImpl *This = impl_from_IShellExecuteHookW(iface); - - TRACE("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_QueryInterface(This->pUnkOuter, riid, ppvObject); -} - -static ULONG STDMETHODCALLTYPE IShellExecuteHookW_fnAddRef(IShellExecuteHookW* iface) -{ - ICPanelImpl *This = impl_from_IShellExecuteHookW(iface); - - TRACE("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_AddRef(This->pUnkOuter); -} - -static ULONG STDMETHODCALLTYPE IShellExecuteHookW_fnRelease(IShellExecuteHookW* iface) -{ - ICPanelImpl *This = impl_from_IShellExecuteHookW(iface); - - TRACE("(%p)\n", This); - - return IUnknown_Release(This->pUnkOuter); -} - -HRESULT -ExecuteAppletFromCLSID(LPOLESTR pOleStr) -{ - WCHAR szCmd[MAX_PATH]; - WCHAR szExpCmd[MAX_PATH]; - PROCESS_INFORMATION pi; - STARTUPINFOW si; - WCHAR szBuffer[90] = { 'C', 'L', 'S', 'I', 'D', '\\', 0 }; - DWORD dwType, dwSize; - - wcscpy(&szBuffer[6], pOleStr); - wcscat(szBuffer, L"\\shell\\open\\command"); - - dwSize = sizeof(szCmd); - if (RegGetValueW(HKEY_CLASSES_ROOT, szBuffer, NULL, RRF_RT_REG_SZ, &dwType, (PVOID)szCmd, &dwSize) != ERROR_SUCCESS) - { - wcscpy(szCmd, L"%SystemRoot%\\Explorer.exe ::"); - wcscat(szCmd, pOleStr); - } - -#if 0 - if (dwType != RRF_RT_REG_SZ && dwType != RRF_RT_REG_EXPAND_SZ) - return E_FAIL; -#endif - - if (!ExpandEnvironmentStringsW(szCmd, szExpCmd, sizeof(szExpCmd)/sizeof(WCHAR))) - return E_FAIL; - - ZeroMemory(&si, sizeof(si)); - si.cb = sizeof(si); - if (!CreateProcessW(NULL, szExpCmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) - return E_FAIL; - - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - return S_OK; -} - - -static HRESULT WINAPI IShellExecuteHookW_fnExecute(IShellExecuteHookW* iface, LPSHELLEXECUTEINFOW psei) -{ - static const WCHAR wCplopen[] = {'c','p','l','o','p','e','n','\0'}; - ICPanelImpl *This = (ICPanelImpl *)iface; - - SHELLEXECUTEINFOW sei_tmp; - PIDLCPanelStruct* pcpanel; - WCHAR path[MAX_PATH]; - WCHAR params[MAX_PATH]; - BOOL ret; - HRESULT hr; - int l; - - TRACE("(%p)->execute(%p)\n", This, psei); - - if (!psei) - return E_INVALIDARG; - - pcpanel = _ILGetCPanelPointer(ILFindLastID(psei->lpIDList)); - - if (!pcpanel) - { - LPOLESTR pOleStr; - - IID * iid = _ILGetGUIDPointer(ILFindLastID(psei->lpIDList)); - if (!iid) - return E_INVALIDARG; - if (StringFromCLSID(iid, &pOleStr) == S_OK) - { - - hr = ExecuteAppletFromCLSID(pOleStr); - CoTaskMemFree(pOleStr); - return hr; - } - - return E_INVALIDARG; - } - path[0] = '\"'; - /* Return value from MultiByteToWideChar includes terminating NUL, which - * compensates for the starting double quote we just put in */ - l = MultiByteToWideChar(CP_ACP, 0, pcpanel->szName, -1, path+1, MAX_PATH); - - /* pass applet name to Control_RunDLL to distinguish between applets in one .cpl file */ - path[l++] = '"'; - path[l] = '\0'; - - MultiByteToWideChar(CP_ACP, 0, pcpanel->szName+pcpanel->offsDispName, -1, params, MAX_PATH); - - memcpy(&sei_tmp, psei, sizeof(sei_tmp)); - sei_tmp.lpFile = path; - sei_tmp.lpParameters = params; - sei_tmp.fMask &= ~SEE_MASK_INVOKEIDLIST; - sei_tmp.lpVerb = wCplopen; - - ret = ShellExecuteExW(&sei_tmp); - if (ret) - return S_OK; - else - return S_FALSE; -} - -static const IShellExecuteHookWVtbl vt_ShellExecuteHookW = -{ - - IShellExecuteHookW_fnQueryInterface, - IShellExecuteHookW_fnAddRef, - IShellExecuteHookW_fnRelease, - - IShellExecuteHookW_fnExecute -}; - - -/************************************************************************** -* IShellExecuteHookA Implementation -*/ - -static HRESULT WINAPI IShellExecuteHookA_fnQueryInterface(IShellExecuteHookA* iface, REFIID riid, void** ppvObject) -{ - ICPanelImpl *This = impl_from_IShellExecuteHookA(iface); - - TRACE("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_QueryInterface(This->pUnkOuter, riid, ppvObject); -} - -static ULONG STDMETHODCALLTYPE IShellExecuteHookA_fnAddRef(IShellExecuteHookA* iface) -{ - ICPanelImpl *This = impl_from_IShellExecuteHookA(iface); - - TRACE("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_AddRef(This->pUnkOuter); -} - -static ULONG STDMETHODCALLTYPE IShellExecuteHookA_fnRelease(IShellExecuteHookA* iface) -{ - ICPanelImpl *This = impl_from_IShellExecuteHookA(iface); - - TRACE("(%p)\n", This); - - return IUnknown_Release(This->pUnkOuter); -} - -static HRESULT WINAPI IShellExecuteHookA_fnExecute(IShellExecuteHookA* iface, LPSHELLEXECUTEINFOA psei) -{ - ICPanelImpl *This = (ICPanelImpl *)iface; - - SHELLEXECUTEINFOA sei_tmp; - PIDLCPanelStruct* pcpanel; - char path[MAX_PATH]; - BOOL ret; - - TRACE("(%p)->execute(%p)\n", This, psei); - - if (!psei) - return E_INVALIDARG; - - pcpanel = _ILGetCPanelPointer(ILFindLastID(psei->lpIDList)); - - if (!pcpanel) - return E_INVALIDARG; - - path[0] = '\"'; - lstrcpyA(path+1, pcpanel->szName); - - /* pass applet name to Control_RunDLL to distinguish between applets in one .cpl file */ - lstrcatA(path, "\" "); - lstrcatA(path, pcpanel->szName+pcpanel->offsDispName); - - memcpy(&sei_tmp, psei, sizeof(sei_tmp)); - sei_tmp.lpFile = path; - sei_tmp.fMask &= ~SEE_MASK_INVOKEIDLIST; - - ret = ShellExecuteExA(&sei_tmp); - if (ret) - return S_OK; - else - return S_FALSE; -} - -static const IShellExecuteHookAVtbl vt_ShellExecuteHookA = -{ - IShellExecuteHookA_fnQueryInterface, - IShellExecuteHookA_fnAddRef, - IShellExecuteHookA_fnRelease, - IShellExecuteHookA_fnExecute -}; - -/************************************************************************** -* IContextMenu2 Implementation -*/ - -/************************************************************************ - * ICPanel_IContextMenu_QueryInterface - */ -static HRESULT WINAPI ICPanel_IContextMenu2_QueryInterface(IContextMenu2 * iface, REFIID iid, LPVOID * ppvObject) -{ - ICPanelImpl *This = impl_from_IContextMenu(iface); - - TRACE("(%p)\n", This); - - return IUnknown_QueryInterface(_IUnknown_(This), iid, ppvObject); -} - -/************************************************************************ - * ICPanel_IContextMenu_AddRef - */ -static ULONG WINAPI ICPanel_IContextMenu2_AddRef(IContextMenu2 * iface) -{ - ICPanelImpl *This = impl_from_IContextMenu(iface); - - TRACE("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_AddRef(_IUnknown_(This)); -} - -/************************************************************************ - * ICPanel_IContextMenu_Release - */ -static ULONG WINAPI ICPanel_IContextMenu2_Release(IContextMenu2 * iface) -{ - ICPanelImpl *This = impl_from_IContextMenu(iface); - - TRACE("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_Release(_IUnknown_(This)); -} - -/************************************************************************** -* ICPanel_IContextMenu_QueryContextMenu() -*/ -static HRESULT WINAPI ICPanel_IContextMenu2_QueryContextMenu( - IContextMenu2 *iface, - HMENU hMenu, - UINT indexMenu, - UINT idCmdFirst, - UINT idCmdLast, - UINT uFlags) -{ - WCHAR szBuffer[30] = {0}; - ULONG Count = 1; - - ICPanelImpl *This = impl_from_IContextMenu(iface); - - TRACE("(%p)->(hmenu=%p indexmenu=%x cmdfirst=%x cmdlast=%x flags=%x )\n", - This, hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags); - - if (LoadStringW(shell32_hInstance, IDS_OPEN, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_OPEN, MFT_STRING, szBuffer, MFS_DEFAULT); //FIXME identifier - Count++; - } - - if (LoadStringW(shell32_hInstance, IDS_CREATELINK, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - if (Count) - { - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count, MFT_SEPARATOR, NULL, MFS_ENABLED); - } - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - - _InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_CREATELINK, MFT_STRING, szBuffer, MFS_ENABLED); //FIXME identifier - Count++; - } - return MAKE_HRESULT(SEVERITY_SUCCESS, 0, Count); -} - - -/************************************************************************** -* ICPanel_IContextMenu_InvokeCommand() -*/ -static HRESULT WINAPI ICPanel_IContextMenu2_InvokeCommand( - IContextMenu2 *iface, - LPCMINVOKECOMMANDINFO lpcmi) -{ - SHELLEXECUTEINFOW sei; - WCHAR szPath[MAX_PATH]; - char szTarget[MAX_PATH]; - STRRET strret; - WCHAR* pszPath; - INT Length, cLength; - PIDLCPanelStruct *pcpanel; - IPersistFile * ppf; - IShellLinkA * isl; - ICPanelImpl *This = impl_from_IContextMenu(iface); - - TRACE("(%p)->(invcom=%p verb=%p wnd=%p)\n",This,lpcmi,lpcmi->lpVerb, lpcmi->hwnd); - - if (lpcmi->lpVerb == MAKEINTRESOURCEA(IDS_OPEN)) //FIXME - { - ZeroMemory(&sei, sizeof(sei)); - sei.cbSize = sizeof(sei); - sei.fMask = SEE_MASK_INVOKEIDLIST; - sei.lpIDList = ILCombine(This->pidlRoot, This->apidl[0]); - sei.hwnd = lpcmi->hwnd; - sei.nShow = SW_SHOWNORMAL; - sei.lpVerb = L"open"; - - if (ShellExecuteExW(&sei) == FALSE) - return E_FAIL; - } - else if (lpcmi->lpVerb == MAKEINTRESOURCEA(IDS_CREATELINK)) //FIXME - { - if (!SHGetSpecialFolderPathW(NULL, szPath, CSIDL_DESKTOPDIRECTORY, FALSE)) - return E_FAIL; - - pszPath = PathAddBackslashW(szPath); - if (!pszPath) - return E_FAIL; - - if (IShellFolder_GetDisplayNameOf((IShellFolder*)This, This->apidl[0], SHGDN_FORPARSING, &strret) != S_OK) - return E_FAIL; - - Length = MAX_PATH - (pszPath - szPath); - cLength = strlen(strret.u.cStr); - if (Length < cLength + 5) - { - FIXME("\n"); - return E_FAIL; - } - - if (MultiByteToWideChar(CP_ACP, 0, strret.u.cStr, cLength +1, pszPath, Length)) - { - pszPath += cLength; - Length -= cLength; - } - - if (Length > 10) - { - wcscpy(pszPath, L" - "); - cLength = LoadStringW(shell32_hInstance, IDS_LNK_FILE, &pszPath[3], Length -4) + 3; - if (cLength + 5 > Length) - cLength = Length - 5; - Length -= cLength; - pszPath += cLength; - } - wcscpy(pszPath, L".lnk"); - - pcpanel = _ILGetCPanelPointer(ILFindLastID(This->apidl[0])); - if (pcpanel) - { - strncpy(szTarget, pcpanel->szName, MAX_PATH); - } - else - { - FIXME("Couldn't retrieve pointer to cpl structure\n"); - return E_FAIL; - } - if (SUCCEEDED(IShellLink_Constructor(NULL, &IID_IShellLinkA, (LPVOID*)&isl))) - { - IShellLinkA_SetPath(isl, szTarget); - if (SUCCEEDED(IShellLinkA_QueryInterface(isl, &IID_IPersistFile, (LPVOID*)&ppf))) - { - IPersistFile_Save(ppf, szPath, TRUE); - IPersistFile_Release(ppf); - } - IShellLinkA_Release(isl); - } - return NOERROR; - } - return S_OK; -} - -/************************************************************************** - * ICPanel_IContextMenu_GetCommandString() - * - */ -static HRESULT WINAPI ICPanel_IContextMenu2_GetCommandString( - IContextMenu2 *iface, - UINT_PTR idCommand, - UINT uFlags, - UINT* lpReserved, - LPSTR lpszName, - UINT uMaxNameLen) -{ - ICPanelImpl *This = impl_from_IContextMenu(iface); - - TRACE("(%p)->(idcom=%lx flags=%x %p name=%p len=%x)\n",This, idCommand, uFlags, lpReserved, lpszName, uMaxNameLen); - - - FIXME("unknown command string\n"); - return E_FAIL; -} - - - -/************************************************************************** -* ICPanel_IContextMenu_HandleMenuMsg() -*/ -static HRESULT WINAPI ICPanel_IContextMenu2_HandleMenuMsg( - IContextMenu2 *iface, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - ICPanelImpl *This = impl_from_IContextMenu(iface); - - TRACE("ICPanel_IContextMenu_HandleMenuMsg (%p)->(msg=%x wp=%lx lp=%lx)\n",This, uMsg, wParam, lParam); - - return E_NOTIMPL; -} - -static const IContextMenu2Vtbl vt_ContextMenu = -{ - ICPanel_IContextMenu2_QueryInterface, - ICPanel_IContextMenu2_AddRef, - ICPanel_IContextMenu2_Release, - ICPanel_IContextMenu2_QueryContextMenu, - ICPanel_IContextMenu2_InvokeCommand, - ICPanel_IContextMenu2_GetCommandString, - ICPanel_IContextMenu2_HandleMenuMsg -}; - diff --git a/reactos/dll/win32/shell32/shfldr_desktop.c b/reactos/dll/win32/shell32/shfldr_desktop.c deleted file mode 100644 index cdcae285023..00000000000 --- a/reactos/dll/win32/shell32/shfldr_desktop.c +++ /dev/null @@ -1,1487 +0,0 @@ - -/* - * Virtual Desktop Folder - * - * Copyright 1997 Marcus Meissner - * Copyright 1998, 1999, 2002 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL (shell); - -/*********************************************************************** -* Desktopfolder implementation -*/ - -typedef struct { - const IShellFolder2Vtbl *lpVtbl; - const IPersistFolder2Vtbl *lpPF2; - const ISFHelperVtbl *lpvtblSFHelper; - LONG ref; - - /* both paths are parsible from the desktop */ - LPWSTR sPathTarget; /* complete path to target used for enumeration and ChangeNotify */ - LPITEMIDLIST pidlRoot; /* absolute pidl */ - - UINT cfShellIDList; /* clipboardformat for IDropTarget */ - BOOL fAcceptFmt; /* flag for pending Drop */ -} IGenericSFImpl, *LPIGenericSFImpl; - -WCHAR *build_paths_list(LPCWSTR wszBasePath, int cidl, LPCITEMIDLIST *pidls); -int SHELL_ConfirmMsgBox(HWND hWnd, LPWSTR lpszText, LPWSTR lpszCaption, HICON hIcon, BOOL bYesToAll); - -#define _IUnknown_(This) (IShellFolder*)&(This->lpVtbl) -#define _IShellFolder_(This) (IShellFolder*)&(This->lpVtbl) - -static const shvheader DesktopSFHeader[] = { - {IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 12}, - {IDS_SHV_COLUMN5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 5} -}; - -#define DESKTOPSHELLVIEWCOLUMNS 5 - -/************************************************************************** - * ISF_Desktop_fnQueryInterface - * - * NOTES supports not IPersist/IPersistFolder - */ -static HRESULT WINAPI ISF_Desktop_fnQueryInterface( - IShellFolder2 * iface, REFIID riid, LPVOID * ppvObj) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); - - *ppvObj = NULL; - - if (IsEqualIID (riid, &IID_IUnknown) || - IsEqualIID (riid, &IID_IShellFolder) || - IsEqualIID (riid, &IID_IShellFolder2)) - { - *ppvObj = This; - } - else if (IsEqualIID (riid, &IID_IPersistFolder) || - IsEqualIID (riid, &IID_IPersistFolder2)) - { - *ppvObj = (void *)&This->lpPF2; - } - else if (IsEqualIID(riid, &IID_ISFHelper)) - { - *ppvObj = (void *)&This->lpvtblSFHelper; - } - if (*ppvObj) - { - IUnknown_AddRef ((IUnknown *) (*ppvObj)); - TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj); - return S_OK; - } - TRACE ("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static LPIGenericSFImpl __inline impl_from_ISFHelper( ISFHelper *iface ) -{ - return (IGenericSFImpl *)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpvtblSFHelper)); -} - -static ULONG WINAPI ISF_Desktop_fnAddRef (IShellFolder2 * iface) -{ - return 2; /* non-heap based object */ -} - -static ULONG WINAPI ISF_Desktop_fnRelease (IShellFolder2 * iface) -{ - return 1; /* non-heap based object */ -} - -/************************************************************************** - * ISF_Desktop_fnParseDisplayName - * - * NOTES - * "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" and "" binds - * to MyComputer - */ -static HRESULT WINAPI ISF_Desktop_fnParseDisplayName (IShellFolder2 * iface, - HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, - DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - WCHAR szElement[MAX_PATH]; - LPCWSTR szNext = NULL; - LPITEMIDLIST pidlTemp = NULL; - HRESULT hr = S_OK; - CLSID clsid; - - TRACE ("(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n", - This, hwndOwner, pbc, lpszDisplayName, debugstr_w(lpszDisplayName), - pchEaten, ppidl, pdwAttributes); - - if (!lpszDisplayName || !ppidl) - return E_INVALIDARG; - - *ppidl = 0; - - if (pchEaten) - *pchEaten = 0; /* strange but like the original */ - - if (lpszDisplayName[0] == ':' && lpszDisplayName[1] == ':') - { - szNext = GetNextElementW (lpszDisplayName, szElement, MAX_PATH); - TRACE ("-- element: %s\n", debugstr_w (szElement)); - CLSIDFromString (szElement + 2, &clsid); - pidlTemp = _ILCreateGuid (PT_GUID, &clsid); - } - else if (PathGetDriveNumberW (lpszDisplayName) >= 0) - { - /* it's a filesystem path with a drive. Let MyComputer/UnixDosFolder parse it */ -#if 0 - if (UNIXFS_is_rooted_at_desktop()) - pidlTemp = _ILCreateGuid(PT_GUID, &CLSID_UnixDosFolder); - else -#endif - pidlTemp = _ILCreateMyComputer (); - szNext = lpszDisplayName; - } - else if (PathIsUNCW(lpszDisplayName)) - { - pidlTemp = _ILCreateNetwork(); - szNext = lpszDisplayName; - } - else if( (pidlTemp = SHELL32_CreatePidlFromBindCtx(pbc, lpszDisplayName)) ) - { - *ppidl = pidlTemp; - return S_OK; - } - else - { - /* it's a filesystem path on the desktop. Let a FSFolder parse it */ - - if (*lpszDisplayName) - { - WCHAR szPath[MAX_PATH]; - LPWSTR pathPtr; - - /* build a complete path to create a simple pidl */ - lstrcpynW(szPath, This->sPathTarget, MAX_PATH); - pathPtr = PathAddBackslashW(szPath); - if (pathPtr) - { - lstrcpynW(pathPtr, lpszDisplayName, MAX_PATH - (pathPtr - szPath)); - hr = _ILCreateFromPathW(szPath, &pidlTemp); - } - else - { - /* should never reach here, but for completeness */ - hr = HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER); - } - } - else - pidlTemp = _ILCreateMyComputer(); - - szNext = NULL; - } - - if (SUCCEEDED(hr) && pidlTemp) - { - if (szNext && *szNext) - { - hr = SHELL32_ParseNextElement(iface, hwndOwner, pbc, - &pidlTemp, (LPOLESTR) szNext, pchEaten, pdwAttributes); - } - else - { - if (pdwAttributes && *pdwAttributes) - hr = SHELL32_GetItemAttributes(_IShellFolder_ (This), - pidlTemp, pdwAttributes); - } - } - - *ppidl = pidlTemp; - - TRACE ("(%p)->(-- ret=0x%08x)\n", This, hr); - - return hr; -} - -static const WCHAR ClassicStartMenuW[] = {'S','O','F','T','W','A','R','E','\\', - 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','E','x','p','l','o','r','e','r', - '\\','H','i','d','e','D','e','s','k','t','o','p','I','c','o','n','s','\\', - 'C','l','a','s','s','i','c','S','t','a','r','t','M','e','n','u','\0' }; - -INT -IsNamespaceExtensionHidden(WCHAR *iid) -{ - DWORD Result, dwResult; - dwResult = sizeof(DWORD); - - if (RegGetValueW(HKEY_CURRENT_USER, /* FIXME use NewStartPanel when activated */ - ClassicStartMenuW, - iid, - RRF_RT_DWORD, - NULL, - &Result, - &dwResult) != ERROR_SUCCESS) - { - return -1; - } - - return Result; -} - -static -VOID -SetNamespaceExtensionVisibleStatus(WCHAR * iid, DWORD dwStatus) -{ - HKEY hKey; - - if (RegOpenKeyExW(HKEY_CURRENT_USER, ClassicStartMenuW, 0, KEY_WRITE, &hKey) == ERROR_SUCCESS) - { - RegSetValueExW(hKey, iid, 0, REG_DWORD, (LPBYTE)&dwStatus, sizeof(DWORD)); - RegCloseKey(hKey); - } -} - - - -/************************************************************************** - * CreateDesktopEnumList() - */ -static const WCHAR Desktop_NameSpaceW[] = { 'S','O','F','T','W','A','R','E', - '\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','E','x','p','l', - 'o','r','e','r','\\','D','e','s','k','t','o','p','\\','N','a','m','e','s','p', - 'a','c','e','\0' }; - -static BOOL CreateDesktopEnumList(IEnumIDList *list, DWORD dwFlags) -{ - BOOL ret = TRUE; - WCHAR szPath[MAX_PATH]; - - static WCHAR MyDocumentsClassString[] = L"{450D8FBA-AD25-11D0-98A8-0800361B1103}"; - - - TRACE("(%p)->(flags=0x%08x)\n", list, dwFlags); - - /* enumerate the root folders */ - if (dwFlags & SHCONTF_FOLDERS) - { - HKEY hkey; - UINT i; - DWORD dwResult; - - /* create the pidl for This item */ - if (IsNamespaceExtensionHidden(MyDocumentsClassString) < 1) - { - ret = AddToEnumList(list, _ILCreateMyDocuments()); - } - ret = AddToEnumList(list, _ILCreateMyComputer()); - - for (i = 0; i < 2; i++) - { - if (i == 0) - dwResult = RegOpenKeyExW(HKEY_LOCAL_MACHINE, Desktop_NameSpaceW, 0, KEY_READ, &hkey); - else - dwResult = RegOpenKeyExW(HKEY_CURRENT_USER, Desktop_NameSpaceW, 0, KEY_READ, &hkey); - - if (dwResult == ERROR_SUCCESS) - { - WCHAR iid[50]; - LPITEMIDLIST pidl; - int i=0; - - while (ret) - { - DWORD size; - LONG r; - - size = sizeof (iid) / sizeof (iid[0]); - r = RegEnumKeyExW(hkey, i, iid, &size, 0, NULL, NULL, NULL); - if (ERROR_SUCCESS == r) - { - if (IsNamespaceExtensionHidden(iid) < 1) - { - pidl = _ILCreateGuidFromStrW(iid); - if (!HasItemWithCLSID(list, pidl)) - { - ret = AddToEnumList(list, pidl); - } - else - { - SHFree(pidl); - } - } - } - else if (ERROR_NO_MORE_ITEMS == r) - break; - else - ret = FALSE; - i++; - } - RegCloseKey(hkey); - } - } - for (i = 0; i < 2; i++) - { - if (i == 0) - dwResult = RegOpenKeyExW(HKEY_LOCAL_MACHINE, ClassicStartMenuW, 0, KEY_READ, &hkey); - else - dwResult = RegOpenKeyExW(HKEY_CURRENT_USER, ClassicStartMenuW, 0, KEY_READ, &hkey); - - if (dwResult == ERROR_SUCCESS) - { - DWORD j = 0, dwVal, Val, dwType, dwIID; - LONG r; - WCHAR iid[50]; - - while(ret) - { - dwVal = sizeof(Val); - dwIID = sizeof(iid) / sizeof(WCHAR); - - r = RegEnumValueW(hkey, j++, iid, &dwIID, NULL, &dwType, (LPBYTE)&Val, &dwVal); - if (r == ERROR_SUCCESS) - { - if (Val == 0 && dwType == REG_DWORD) - { - LPITEMIDLIST pidl = _ILCreateGuidFromStrW(iid); - if (!HasItemWithCLSID(list, pidl)) - { - AddToEnumList(list, pidl); - } - else - { - SHFree(pidl); - } - } - } - else if (ERROR_NO_MORE_ITEMS == r) - break; - else - ret = FALSE; - } - } - - } - } - - /* enumerate the elements in %windir%\desktop */ - ret = ret && SHGetSpecialFolderPathW(0, szPath, CSIDL_DESKTOPDIRECTORY, FALSE); - ret = ret && CreateFolderEnumList(list, szPath, dwFlags); - - ret = ret && SHGetSpecialFolderPathW(0, szPath, CSIDL_COMMON_DESKTOPDIRECTORY, FALSE); - ret = ret && CreateFolderEnumList(list, szPath, dwFlags); - - return ret; -} - -/************************************************************************** - * ISF_Desktop_fnEnumObjects - */ -static HRESULT WINAPI ISF_Desktop_fnEnumObjects (IShellFolder2 * iface, - HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(HWND=%p flags=0x%08x pplist=%p)\n", - This, hwndOwner, dwFlags, ppEnumIDList); - - *ppEnumIDList = IEnumIDList_Constructor(); - if (*ppEnumIDList) - CreateDesktopEnumList(*ppEnumIDList, dwFlags); - - TRACE ("-- (%p)->(new ID List: %p)\n", This, *ppEnumIDList); - - return *ppEnumIDList ? S_OK : E_OUTOFMEMORY; -} - -/************************************************************************** - * ISF_Desktop_fnBindToObject - */ -static HRESULT WINAPI ISF_Desktop_fnBindToObject (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", - This, pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - return SHELL32_BindToChild( This->pidlRoot, This->sPathTarget, pidl, riid, ppvOut ); -} - -/************************************************************************** - * ISF_Desktop_fnBindToStorage - */ -static HRESULT WINAPI ISF_Desktop_fnBindToStorage (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", - This, pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - *ppvOut = NULL; - return E_NOTIMPL; -} - -/************************************************************************** - * ISF_Desktop_fnCompareIDs - */ -static HRESULT WINAPI ISF_Desktop_fnCompareIDs (IShellFolder2 * iface, - LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - int nReturn; - - TRACE ("(%p)->(0x%08lx,pidl1=%p,pidl2=%p)\n", This, lParam, pidl1, pidl2); - nReturn = SHELL32_CompareIDs (_IShellFolder_ (This), lParam, pidl1, pidl2); - TRACE ("-- %i\n", nReturn); - return nReturn; -} - -/************************************************************************** - * ISF_Desktop_fnCreateViewObject - */ -static HRESULT WINAPI ISF_Desktop_fnCreateViewObject (IShellFolder2 * iface, - HWND hwndOwner, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - LPSHELLVIEW pShellView; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(hwnd=%p,%s,%p)\n", - This, hwndOwner, shdebugstr_guid (riid), ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IDropTarget)) - { - WARN ("IDropTarget not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IContextMenu)) - { - WARN ("IContextMenu not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IShellView)) - { - pShellView = IShellView_Constructor ((IShellFolder *) iface); - if (pShellView) - { - hr = IShellView_QueryInterface (pShellView, riid, ppvOut); - IShellView_Release (pShellView); - } - } - TRACE ("-- (%p)->(interface=%p)\n", This, ppvOut); - return hr; -} - -/************************************************************************** - * ISF_Desktop_fnGetAttributesOf - */ -static HRESULT WINAPI ISF_Desktop_fnGetAttributesOf (IShellFolder2 * iface, - UINT cidl, LPCITEMIDLIST * apidl, DWORD * rgfInOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - HRESULT hr = S_OK; - static const DWORD dwDesktopAttributes = - SFGAO_STORAGE | SFGAO_HASPROPSHEET | SFGAO_STORAGEANCESTOR | - SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_FILESYSTEM | SFGAO_HASSUBFOLDER; - static const DWORD dwMyComputerAttributes = - SFGAO_CANRENAME | SFGAO_CANDELETE | SFGAO_HASPROPSHEET | - SFGAO_DROPTARGET | SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_HASSUBFOLDER; - - TRACE ("(%p)->(cidl=%d apidl=%p mask=%p (0x%08x))\n", - This, cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0); - - if (!rgfInOut) - return E_INVALIDARG; - if (cidl && !apidl) - return E_INVALIDARG; - - if (*rgfInOut == 0) - *rgfInOut = ~0; - - if(cidl == 0) { - *rgfInOut &= dwDesktopAttributes; - } else { - while (cidl > 0 && *apidl) { - pdump (*apidl); - if (_ILIsDesktop(*apidl)) { - *rgfInOut &= dwDesktopAttributes; - } else if (_ILIsMyComputer(*apidl)) { - *rgfInOut &= dwMyComputerAttributes; - } else { - SHELL32_GetItemAttributes (_IShellFolder_ (This), *apidl, rgfInOut); - } - apidl++; - cidl--; - } - } - /* make sure SFGAO_VALIDATE is cleared, some apps depend on that */ - *rgfInOut &= ~SFGAO_VALIDATE; - - TRACE ("-- result=0x%08x\n", *rgfInOut); - - return hr; -} - -/************************************************************************** - * ISF_Desktop_fnGetUIObjectOf - * - * PARAMETERS - * HWND hwndOwner, //[in ] Parent window for any output - * UINT cidl, //[in ] array size - * LPCITEMIDLIST* apidl, //[in ] simple pidl array - * REFIID riid, //[in ] Requested Interface - * UINT* prgfInOut, //[ ] reserved - * LPVOID* ppvObject) //[out] Resulting Interface - * - */ -static HRESULT WINAPI ISF_Desktop_fnGetUIObjectOf (IShellFolder2 * iface, - HWND hwndOwner, UINT cidl, LPCITEMIDLIST * apidl, - REFIID riid, UINT * prgfInOut, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - LPITEMIDLIST pidl; - IUnknown *pObj = NULL; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n", - This, hwndOwner, cidl, apidl, shdebugstr_guid (riid), prgfInOut, ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IContextMenu)) - { - hr = CDefFolderMenu_Create2(This->pidlRoot, hwndOwner, cidl, apidl, (IShellFolder*)iface, NULL, 0, NULL, (IContextMenu**)&pObj); - } - else if (IsEqualIID (riid, &IID_IDataObject) && (cidl >= 1)) - { - pObj = (LPUNKNOWN) IDataObject_Constructor( hwndOwner, - This->pidlRoot, apidl, cidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconA) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconA_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconW) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconW_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IDropTarget) && (cidl >= 1)) - { - hr = IShellFolder_QueryInterface (iface, - &IID_IDropTarget, (LPVOID *) & pObj); - } - else if ((IsEqualIID(riid,&IID_IShellLinkW) || - IsEqualIID(riid,&IID_IShellLinkA)) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - hr = IShellLink_ConstructFromFile(NULL, riid, pidl, (LPVOID*)&pObj); - SHFree (pidl); - } - else - hr = E_NOINTERFACE; - - if (SUCCEEDED(hr) && !pObj) - hr = E_OUTOFMEMORY; - - *ppvOut = pObj; - TRACE ("(%p)->hr=0x%08x\n", This, hr); - return hr; -} - -/************************************************************************** - * ISF_Desktop_fnGetDisplayNameOf - * - * NOTES - * special case: pidl = null gives desktop-name back - */ -static HRESULT WINAPI ISF_Desktop_fnGetDisplayNameOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - HRESULT hr = S_OK; - LPWSTR pszPath; - - TRACE ("(%p)->(pidl=%p,0x%08x,%p)\n", This, pidl, dwFlags, strRet); - pdump (pidl); - - if (!strRet) - return E_INVALIDARG; - - pszPath = CoTaskMemAlloc((MAX_PATH +1) * sizeof(WCHAR)); - if (!pszPath) - return E_OUTOFMEMORY; - - if (_ILIsDesktop (pidl)) - { - if ((GET_SHGDN_RELATION (dwFlags) == SHGDN_NORMAL) && - (GET_SHGDN_FOR (dwFlags) & SHGDN_FORPARSING)) - wcscpy(pszPath, This->sPathTarget); - else - HCR_GetClassNameW(&CLSID_ShellDesktop, pszPath, MAX_PATH); - } - else if (_ILIsPidlSimple (pidl)) - { - GUID const *clsid; - - if ((clsid = _ILGetGUIDPointer (pidl))) - { - if (GET_SHGDN_FOR (dwFlags) & SHGDN_FORPARSING) - { - int bWantsForParsing; - - /* - * We can only get a filesystem path from a shellfolder if the - * value WantsFORPARSING in CLSID\\{...}\\shellfolder exists. - * - * Exception: The MyComputer folder doesn't have this key, - * but any other filesystem backed folder it needs it. - */ - if (IsEqualIID (clsid, &CLSID_MyComputer)) - { - bWantsForParsing = TRUE; - } - else - { - /* get the "WantsFORPARSING" flag from the registry */ - static const WCHAR clsidW[] = - { 'C','L','S','I','D','\\',0 }; - static const WCHAR shellfolderW[] = - { '\\','s','h','e','l','l','f','o','l','d','e','r',0 }; - static const WCHAR wantsForParsingW[] = - { 'W','a','n','t','s','F','o','r','P','a','r','s','i','n', - 'g',0 }; - WCHAR szRegPath[100]; - LONG r; - - wcscpy (szRegPath, clsidW); - SHELL32_GUIDToStringW (clsid, &szRegPath[6]); - wcscat (szRegPath, shellfolderW); - r = SHGetValueW(HKEY_CLASSES_ROOT, szRegPath, - wantsForParsingW, NULL, NULL, NULL); - if (r == ERROR_SUCCESS) - bWantsForParsing = TRUE; - else - bWantsForParsing = FALSE; - } - - if ((GET_SHGDN_RELATION (dwFlags) == SHGDN_NORMAL) && - bWantsForParsing) - { - /* - * we need the filesystem path to the destination folder. - * Only the folder itself can know it - */ - hr = SHELL32_GetDisplayNameOfChild (iface, pidl, dwFlags, - pszPath, - MAX_PATH); - } - else - { - /* parsing name like ::{...} */ - pszPath[0] = ':'; - pszPath[1] = ':'; - SHELL32_GUIDToStringW (clsid, &pszPath[2]); - } - } - else - { - /* user friendly name */ - HCR_GetClassNameW (clsid, pszPath, MAX_PATH); - } - } - else - { - int cLen = 0; - - /* file system folder or file rooted at the desktop */ - if ((GET_SHGDN_FOR(dwFlags) == SHGDN_FORPARSING) && - (GET_SHGDN_RELATION(dwFlags) != SHGDN_INFOLDER)) - { - lstrcpynW(pszPath, This->sPathTarget, MAX_PATH - 1); - PathAddBackslashW(pszPath); - cLen = wcslen(pszPath); - } - - _ILSimpleGetTextW(pidl, pszPath + cLen, MAX_PATH - cLen); - if (!_ILIsFolder(pidl)) - SHELL_FS_ProcessDisplayFilename(pszPath, dwFlags); - - if (GetFileAttributes(pszPath) == INVALID_FILE_ATTRIBUTES) - { - /* file system folder or file rooted at the AllUsers desktop */ - if ((GET_SHGDN_FOR(dwFlags) == SHGDN_FORPARSING) && - (GET_SHGDN_RELATION(dwFlags) != SHGDN_INFOLDER)) - { - SHGetSpecialFolderPathW(0, pszPath, CSIDL_COMMON_DESKTOPDIRECTORY, FALSE); - PathAddBackslashW(pszPath); - cLen = wcslen(pszPath); - } - - _ILSimpleGetTextW(pidl, pszPath + cLen, MAX_PATH - cLen); - if (!_ILIsFolder(pidl)) - SHELL_FS_ProcessDisplayFilename(pszPath, dwFlags); - } - } - } - else - { - /* a complex pidl, let the subfolder do the work */ - hr = SHELL32_GetDisplayNameOfChild (iface, pidl, dwFlags, - pszPath, MAX_PATH); - } - - if (SUCCEEDED(hr)) - { - /* Win9x always returns ANSI strings, NT always returns Unicode strings */ - if (GetVersion() & 0x80000000) - { - strRet->uType = STRRET_CSTR; - if (!WideCharToMultiByte(CP_ACP, 0, pszPath, -1, strRet->u.cStr, MAX_PATH, - NULL, NULL)) - strRet->u.cStr[0] = '\0'; - CoTaskMemFree(pszPath); - } - else - { - strRet->uType = STRRET_WSTR; - strRet->u.pOleStr = pszPath; - } - } - else - CoTaskMemFree(pszPath); - - TRACE ("-- (%p)->(%s,0x%08x)\n", This, - strRet->uType == STRRET_CSTR ? strRet->u.cStr : - debugstr_w(strRet->u.pOleStr), hr); - return hr; -} - -/************************************************************************** - * ISF_Desktop_fnSetNameOf - * Changes the name of a file object or subfolder, possibly changing its item - * identifier in the process. - * - * PARAMETERS - * HWND hwndOwner, //[in ] Owner window for output - * LPCITEMIDLIST pidl, //[in ] simple pidl of item to change - * LPCOLESTR lpszName, //[in ] the items new display name - * DWORD dwFlags, //[in ] SHGNO formatting flags - * LPITEMIDLIST* ppidlOut) //[out] simple pidl returned - */ -static HRESULT WINAPI ISF_Desktop_fnSetNameOf (IShellFolder2 * iface, - HWND hwndOwner, LPCITEMIDLIST pidl, /* simple pidl */ - LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST * pPidlOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - IShellFolder2 * psf; - HRESULT hr; - WCHAR szSrc[MAX_PATH + 1], szDest[MAX_PATH + 1]; - LPWSTR ptr; - BOOL bIsFolder = _ILIsFolder (ILFindLastID (pidl)); - - TRACE ("(%p)->(%p,pidl=%p,%s,%u,%p)\n", This, hwndOwner, pidl, - debugstr_w (lpName), dwFlags, pPidlOut); - - if (_ILGetGUIDPointer(pidl)) - { - if (SUCCEEDED(IShellFolder2_BindToObject(iface, pidl, NULL, &IID_IShellFolder2, (LPVOID*)&psf))) - { - hr = IShellFolder2_SetNameOf(psf, hwndOwner, pidl, lpName, dwFlags, pPidlOut); - IShellFolder2_Release(psf); - return hr; - } - } - - /* build source path */ - lstrcpynW(szSrc, This->sPathTarget, MAX_PATH); - ptr = PathAddBackslashW (szSrc); - if (ptr) - _ILSimpleGetTextW (pidl, ptr, MAX_PATH + 1 - (ptr - szSrc)); - - /* build destination path */ - if (dwFlags == SHGDN_NORMAL || dwFlags & SHGDN_INFOLDER) { - lstrcpynW(szDest, This->sPathTarget, MAX_PATH); - ptr = PathAddBackslashW (szDest); - if (ptr) - lstrcpynW(ptr, lpName, MAX_PATH + 1 - (ptr - szDest)); - } else - lstrcpynW(szDest, lpName, MAX_PATH); - - if(!(dwFlags & SHGDN_FORPARSING) && SHELL_FS_HideExtension(szSrc)) { - WCHAR *ext = PathFindExtensionW(szSrc); - if(*ext != '\0') { - INT len = wcslen(szDest); - lstrcpynW(szDest + len, ext, MAX_PATH - len); - } - } - - if (!memcmp(szSrc, szDest, (wcslen(szDest)+1) * sizeof(WCHAR))) - { - /* src and destination is the same */ - hr = S_OK; - if (pPidlOut) - hr = _ILCreateFromPathW(szDest, pPidlOut); - - return hr; - } - - TRACE ("src=%s dest=%s\n", debugstr_w(szSrc), debugstr_w(szDest)); - if (MoveFileW (szSrc, szDest)) - { - hr = S_OK; - - if (pPidlOut) - hr = _ILCreateFromPathW(szDest, pPidlOut); - - SHChangeNotify (bIsFolder ? SHCNE_RENAMEFOLDER : SHCNE_RENAMEITEM, - SHCNF_PATHW, szSrc, szDest); - - return hr; - } - return E_FAIL; -} -static HRESULT WINAPI ISF_Desktop_fnGetDefaultSearchGUID(IShellFolder2 *iface, - GUID * pguid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_Desktop_fnEnumSearches (IShellFolder2 *iface, - IEnumExtraSearch ** ppenum) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_Desktop_fnGetDefaultColumn (IShellFolder2 * iface, - DWORD dwRes, ULONG * pSort, ULONG * pDisplay) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)\n", This); - - if (pSort) - *pSort = 0; - if (pDisplay) - *pDisplay = 0; - - return S_OK; -} -static HRESULT WINAPI ISF_Desktop_fnGetDefaultColumnState ( - IShellFolder2 * iface, UINT iColumn, DWORD * pcsFlags) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)\n", This); - - if (!pcsFlags || iColumn >= DESKTOPSHELLVIEWCOLUMNS) - return E_INVALIDARG; - - *pcsFlags = DesktopSFHeader[iColumn].pcsFlags; - - return S_OK; -} - -static HRESULT WINAPI ISF_Desktop_fnGetDetailsEx (IShellFolder2 * iface, - LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_Desktop_fnGetDetailsOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS * psd) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - HRESULT hr = S_OK; - - TRACE ("(%p)->(%p %i %p)\n", This, pidl, iColumn, psd); - - if (!psd || iColumn >= DESKTOPSHELLVIEWCOLUMNS) - return E_INVALIDARG; - - if (!pidl) - { - psd->fmt = DesktopSFHeader[iColumn].fmt; - psd->cxChar = DesktopSFHeader[iColumn].cxChar; - psd->str.uType = STRRET_CSTR; - LoadStringA (shell32_hInstance, DesktopSFHeader[iColumn].colnameid, - psd->str.u.cStr, MAX_PATH); - return S_OK; - } - - /* the data from the pidl */ - psd->str.uType = STRRET_CSTR; - switch (iColumn) - { - case 0: /* name */ - hr = IShellFolder_GetDisplayNameOf(iface, pidl, - SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str); - break; - case 1: /* size */ - _ILGetFileSize (pidl, psd->str.u.cStr, MAX_PATH); - break; - case 2: /* type */ - _ILGetFileType (pidl, psd->str.u.cStr, MAX_PATH); - break; - case 3: /* date */ - _ILGetFileDate (pidl, psd->str.u.cStr, MAX_PATH); - break; - case 4: /* attributes */ - _ILGetFileAttributes (pidl, psd->str.u.cStr, MAX_PATH); - break; - } - - return hr; -} - -static HRESULT WINAPI ISF_Desktop_fnMapColumnToSCID ( - IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static const IShellFolder2Vtbl vt_MCFldr_ShellFolder2 = -{ - ISF_Desktop_fnQueryInterface, - ISF_Desktop_fnAddRef, - ISF_Desktop_fnRelease, - ISF_Desktop_fnParseDisplayName, - ISF_Desktop_fnEnumObjects, - ISF_Desktop_fnBindToObject, - ISF_Desktop_fnBindToStorage, - ISF_Desktop_fnCompareIDs, - ISF_Desktop_fnCreateViewObject, - ISF_Desktop_fnGetAttributesOf, - ISF_Desktop_fnGetUIObjectOf, - ISF_Desktop_fnGetDisplayNameOf, - ISF_Desktop_fnSetNameOf, - /* ShellFolder2 */ - ISF_Desktop_fnGetDefaultSearchGUID, - ISF_Desktop_fnEnumSearches, - ISF_Desktop_fnGetDefaultColumn, - ISF_Desktop_fnGetDefaultColumnState, - ISF_Desktop_fnGetDetailsEx, - ISF_Desktop_fnGetDetailsOf, - ISF_Desktop_fnMapColumnToSCID -}; - -static LPIGenericSFImpl __inline impl_from_IPersistFolder2( IPersistFolder2 *iface ) -{ - return (IGenericSFImpl *)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpPF2)); -} - -static HRESULT WINAPI -ISF_Desktop_PersistFolder2_fnQueryInterface (IPersistFolder2 * iface, REFIID iid, - LPVOID * ppvObj) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)\n", This); - - return ISF_Desktop_fnQueryInterface ((IShellFolder2*)This, iid, ppvObj); -} - -static ULONG WINAPI -ISF_Desktop_PersistFolder2_fnAddRef (IPersistFolder2 * iface) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return ISF_Desktop_fnAddRef((IShellFolder2*)This); -} - -static ULONG WINAPI -ISF_Desktop_PersistFolder2_fnRelease (IPersistFolder2 * iface) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return ISF_Desktop_fnRelease ((IShellFolder2*)This); -} - -static HRESULT WINAPI -ISF_Desktop_PersistFolder2_fnGetClassID (IPersistFolder2 * iface, CLSID * lpClassId) -{ - static GUID const CLSID_Desktop = - { 0x00021400, 0x0000, 0x0000, {0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46} }; - - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)\n", This); - - if (!lpClassId) - return E_POINTER; - - memcpy(lpClassId, &CLSID_Desktop, sizeof(GUID)); - - return S_OK; -} -static HRESULT WINAPI -ISF_Desktop_PersistFolder2_fnInitialize (IPersistFolder2 * iface, LPCITEMIDLIST pidl) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - return E_NOTIMPL; -} - -static HRESULT WINAPI -ISF_Desktop_PersistFolder2_fnGetCurFolder (IPersistFolder2 * iface, - LPITEMIDLIST * pidl) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - if (!pidl) return E_POINTER; - *pidl = ILClone (This->pidlRoot); - return S_OK; -} - -static const IPersistFolder2Vtbl vt_FSFldr_PersistFolder2 = -{ - ISF_Desktop_PersistFolder2_fnQueryInterface, - ISF_Desktop_PersistFolder2_fnAddRef, - ISF_Desktop_PersistFolder2_fnRelease, - ISF_Desktop_PersistFolder2_fnGetClassID, - ISF_Desktop_PersistFolder2_fnInitialize, - ISF_Desktop_PersistFolder2_fnGetCurFolder, -}; - -static HRESULT WINAPI -ISF_Desktop_ISFHelper_fnQueryInterface (ISFHelper * iface, REFIID riid, LPVOID * ppvObj) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return ISF_Desktop_fnQueryInterface ((IShellFolder2*)This, riid, ppvObj); -} - -static ULONG WINAPI -ISF_Desktop_ISFHelper_fnAddRef (ISFHelper * iface) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return ISF_Desktop_fnAddRef((IShellFolder2*)This); -} - -static ULONG WINAPI -ISF_Desktop_ISFHelper_fnRelease (ISFHelper * iface) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - - TRACE ("(%p)\n", This); - - return ISF_Desktop_fnRelease ((IShellFolder2*)This); -} - -static HRESULT WINAPI -ISF_Desktop_ISFHelper_fnGetUniqueName (ISFHelper * iface, LPWSTR pwszName, UINT uLen) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - IEnumIDList *penum; - HRESULT hr; - WCHAR wszText[MAX_PATH]; - WCHAR wszNewFolder[25]; - const WCHAR wszFormat[] = {'%','s',' ','%','d',0 }; - - LoadStringW(shell32_hInstance, IDS_NEWFOLDER, wszNewFolder, sizeof(wszNewFolder)/sizeof(WCHAR)); - - TRACE ("(%p)(%p %u)\n", This, pwszName, uLen); - - if (uLen < sizeof(wszNewFolder)/sizeof(WCHAR) + 3) - return E_POINTER; - - lstrcpynW (pwszName, wszNewFolder, uLen); - - hr = IShellFolder_EnumObjects ((IShellFolder2*)This, 0, - SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN, &penum); - if (penum) { - LPITEMIDLIST pidl; - DWORD dwFetched; - int i = 1; - -next: - IEnumIDList_Reset (penum); - while (S_OK == IEnumIDList_Next (penum, 1, &pidl, &dwFetched) && - dwFetched) { - _ILSimpleGetTextW (pidl, wszText, MAX_PATH); - if (0 == lstrcmpiW (wszText, pwszName)) { - _snwprintf (pwszName, uLen, wszFormat, wszNewFolder, i++); - if (i > 99) { - hr = E_FAIL; - break; - } - goto next; - } - } - - IEnumIDList_Release (penum); - } - return hr; -} - -static HRESULT WINAPI -ISF_Desktop_ISFHelper_fnAddFolder (ISFHelper * iface, HWND hwnd, LPCWSTR pwszName, - LPITEMIDLIST * ppidlOut) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - WCHAR wszNewDir[MAX_PATH]; - DWORD bRes; - HRESULT hres = E_FAIL; - - TRACE ("(%p)(%s %p)\n", This, debugstr_w(pwszName), ppidlOut); - - wszNewDir[0] = 0; - if (This->sPathTarget) - lstrcpynW(wszNewDir, This->sPathTarget, MAX_PATH); - PathAppendW(wszNewDir, pwszName); - bRes = CreateDirectoryW (wszNewDir, NULL); - if (bRes) - { - SHChangeNotify (SHCNE_MKDIR, SHCNF_PATHW, wszNewDir, NULL); - hres = S_OK; - if (ppidlOut) - hres = _ILCreateFromPathW(wszNewDir, ppidlOut); - } - - return hres; -} -static HRESULT WINAPI -ISF_Desktop_ISFHelper_fnDeleteItems (ISFHelper * iface, UINT cidl, LPCITEMIDLIST * apidl) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - UINT i; - SHFILEOPSTRUCTW op; - WCHAR wszPath[MAX_PATH]; - WCHAR wszCaption[50]; - WCHAR *wszPathsList; - HRESULT ret; - WCHAR *wszCurrentPath; - UINT bRestoreWithDeskCpl = FALSE; - int res; - - TRACE ("(%p)(%u %p)\n", This, cidl, apidl); - if (cidl==0) return S_OK; - - for(i = 0; i < cidl; i++) - { - if (_ILIsMyComputer(apidl[i])) - bRestoreWithDeskCpl++; - else if (_ILIsNetHood(apidl[i])) - bRestoreWithDeskCpl++; - else if (_ILIsMyDocuments(apidl[i])) - bRestoreWithDeskCpl++; - } - - if (bRestoreWithDeskCpl) - { - /* FIXME use FormatMessage - * use a similar message resource as in windows - */ - LoadStringW(shell32_hInstance, IDS_DELETEMULTIPLE_TEXT, wszPath, sizeof(wszPath)/sizeof(WCHAR)); - wszPath[(sizeof(wszPath)/sizeof(WCHAR))-1] = 0; - - LoadStringW(shell32_hInstance, IDS_DELETEITEM_CAPTION, wszCaption, sizeof(wszCaption)/sizeof(WCHAR)); - wszCaption[(sizeof(wszCaption)/sizeof(WCHAR))-1] = 0; - - res = SHELL_ConfirmMsgBox(GetActiveWindow(), wszPath, wszCaption, NULL, cidl > 1); - if (res == IDD_YESTOALL || res == IDYES) - { - for(i = 0; i < cidl; i++) - { - if (_ILIsMyComputer(apidl[i])) - SetNamespaceExtensionVisibleStatus(L"{20D04FE0-3AEA-1069-A2D8-08002B30309D}", 0x1); - else if (_ILIsNetHood(apidl[i])) - SetNamespaceExtensionVisibleStatus(L"{208D2C60-3AEA-1069-A2D7-08002B30309D}", 0x1); - else if (_ILIsMyDocuments(apidl[i])) - SetNamespaceExtensionVisibleStatus(L"{450D8FBA-AD25-11D0-98A8-0800361B1103}", 0x1); - } - } - } - if (This->sPathTarget) - lstrcpynW(wszPath, This->sPathTarget, MAX_PATH); - else - wszPath[0] = '\0'; - - PathAddBackslashW(wszPath); - wszPathsList = build_paths_list(wszPath, cidl, apidl); - - ZeroMemory(&op, sizeof(op)); - op.hwnd = GetActiveWindow(); - op.wFunc = FO_DELETE; - op.pFrom = wszPathsList; - op.fFlags = FOF_ALLOWUNDO; - if (SHFileOperationW(&op)) - { - WARN("SHFileOperation failed\n"); - ret = E_FAIL; - } - else - ret = S_OK; - - /* we currently need to manually send the notifies */ - wszCurrentPath = wszPathsList; - for (i = 0; i < cidl; i++) - { - LONG wEventId; - - if (_ILIsFolder(apidl[i])) - wEventId = SHCNE_RMDIR; - else if (_ILIsValue(apidl[i])) - wEventId = SHCNE_DELETE; - else - continue; - - /* check if file exists */ - if (GetFileAttributesW(wszCurrentPath) == INVALID_FILE_ATTRIBUTES) - { - LPITEMIDLIST pidl = ILCombine(This->pidlRoot, apidl[i]); - SHChangeNotify(wEventId, SHCNF_IDLIST, pidl, NULL); - SHFree(pidl); - } - - wszCurrentPath += wcslen(wszCurrentPath)+1; - } - HeapFree(GetProcessHeap(), 0, wszPathsList); - return ret; -} - -static HRESULT WINAPI -ISF_Desktop_ISFHelper_fnCopyItems (ISFHelper * iface, IShellFolder * pSFFrom, UINT cidl, LPCITEMIDLIST * apidl) -{ - IPersistFolder2 *ppf2 = NULL; - WCHAR szSrcPath[MAX_PATH]; - WCHAR szTargetPath[MAX_PATH]; - SHFILEOPSTRUCTW op; - LPITEMIDLIST pidl; - LPWSTR pszSrc, pszTarget, pszSrcList, pszTargetList, pszFileName; - int res, length; - STRRET strRet; - IGenericSFImpl *This = impl_from_ISFHelper(iface); - - TRACE ("(%p)->(%p,%u,%p)\n", This, pSFFrom, cidl, apidl); - - IShellFolder_QueryInterface (pSFFrom, &IID_IPersistFolder2, (LPVOID *) & ppf2); - if (ppf2) - { - if (FAILED(IPersistFolder2_GetCurFolder (ppf2, &pidl))) - { - IPersistFolder2_Release(ppf2); - return E_FAIL; - } - IPersistFolder2_Release(ppf2); - - if (FAILED(IShellFolder_GetDisplayNameOf(pSFFrom, pidl, SHGDN_FORPARSING, &strRet))) - { - SHFree (pidl); - return E_FAIL; - } - - if (FAILED(StrRetToBufW(&strRet, pidl, szSrcPath, MAX_PATH))) - { - SHFree (pidl); - return E_FAIL; - } - SHFree (pidl); - - pszSrc = PathAddBackslashW (szSrcPath); - - wcscpy(szTargetPath, This->sPathTarget); - pszTarget = PathAddBackslashW (szTargetPath); - - pszSrcList = build_paths_list(szSrcPath, cidl, apidl); - pszTargetList = build_paths_list(szTargetPath, cidl, apidl); - - if (!pszSrcList || !pszTargetList) - { - if (pszSrcList) - HeapFree(GetProcessHeap(), 0, pszSrcList); - - if (pszTargetList) - HeapFree(GetProcessHeap(), 0, pszTargetList); - - SHFree (pidl); - IPersistFolder2_Release (ppf2); - return E_OUTOFMEMORY; - } - ZeroMemory(&op, sizeof(op)); - if (!pszSrcList[0]) - { - /* remove trailing backslash */ - pszSrc--; - pszSrc[0] = L'\0'; - op.pFrom = szSrcPath; - } - else - { - op.pFrom = pszSrcList; - } - - if (!pszTargetList[0]) - { - /* remove trailing backslash */ - if (pszTarget - szTargetPath > 3) - { - pszTarget--; - pszTarget[0] = L'\0'; - } - else - { - pszTarget[1] = L'\0'; - } - - op.pTo = szTargetPath; - } - else - { - op.pTo = pszTargetList; - } - op.hwnd = GetActiveWindow(); - op.wFunc = FO_COPY; - op.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMMKDIR; - - res = SHFileOperationW(&op); - - if (res == DE_SAMEFILE) - { - length = wcslen(szTargetPath); - - - pszFileName = wcsrchr(pszSrcList, '\\'); - pszFileName++; - - if (LoadStringW(shell32_hInstance, IDS_COPY_OF, pszTarget, MAX_PATH - length)) - { - wcscat(szTargetPath, L" "); - } - - wcscat(szTargetPath, pszFileName); - op.pTo = szTargetPath; - - res = SHFileOperationW(&op); - } - - - HeapFree(GetProcessHeap(), 0, pszSrcList); - HeapFree(GetProcessHeap(), 0, pszTargetList); - - if (res) - return E_FAIL; - else - return S_OK; - } - return E_FAIL; -} - -static const ISFHelperVtbl vt_FSFldr_ISFHelper = -{ - ISF_Desktop_ISFHelper_fnQueryInterface, - ISF_Desktop_ISFHelper_fnAddRef, - ISF_Desktop_ISFHelper_fnRelease, - ISF_Desktop_ISFHelper_fnGetUniqueName, - ISF_Desktop_ISFHelper_fnAddFolder, - ISF_Desktop_ISFHelper_fnDeleteItems, - ISF_Desktop_ISFHelper_fnCopyItems -}; - - -/************************************************************************** - * ISF_Desktop_Constructor - */ -HRESULT WINAPI ISF_Desktop_Constructor ( - IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) -{ - static IGenericSFImpl *cached_sf; - WCHAR szMyPath[MAX_PATH]; - - TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid)); - - if (!ppv) - return E_POINTER; - if (pUnkOuter) - return CLASS_E_NOAGGREGATION; - - if (!cached_sf) - { - IGenericSFImpl *sf; - - if (!SHGetSpecialFolderPathW( 0, szMyPath, CSIDL_DESKTOPDIRECTORY, TRUE )) - return E_UNEXPECTED; - - sf = LocalAlloc( LMEM_ZEROINIT, sizeof (IGenericSFImpl) ); - if (!sf) - return E_OUTOFMEMORY; - - sf->ref = 1; - sf->lpVtbl = &vt_MCFldr_ShellFolder2; - sf->lpPF2 = &vt_FSFldr_PersistFolder2; - sf->lpvtblSFHelper = &vt_FSFldr_ISFHelper; - sf->pidlRoot = _ILCreateDesktop(); /* my qualified pidl */ - sf->sPathTarget = SHAlloc( (wcslen(szMyPath) + 1)*sizeof(WCHAR) ); - wcscpy( sf->sPathTarget, szMyPath ); - - if (InterlockedCompareExchangePointer((void *)&cached_sf, sf, NULL) != NULL) - { - /* some other thread already been here */ - SHFree( sf->pidlRoot ); - SHFree( sf->sPathTarget ); - LocalFree( sf ); - } - } - - return IUnknown_QueryInterface( _IUnknown_(cached_sf), riid, ppv ); -} diff --git a/reactos/dll/win32/shell32/shfldr_fonts.c b/reactos/dll/win32/shell32/shfldr_fonts.c deleted file mode 100644 index 4ec244f00ab..00000000000 --- a/reactos/dll/win32/shell32/shfldr_fonts.c +++ /dev/null @@ -1,1057 +0,0 @@ -/* - * Fonts folder - * - * Copyright 2008 Johannes Anderwald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL (shell); - -/*********************************************************************** -* IShellFolder implementation -*/ - -typedef struct { - const IShellFolder2Vtbl *lpVtbl; - LONG ref; - const IContextMenu2Vtbl *lpVtblContextMenuFontItem; - const IPersistFolder2Vtbl *lpVtblPersistFolder2; - - /* both paths are parsible from the desktop */ - LPITEMIDLIST pidlRoot; /* absolute pidl */ - LPCITEMIDLIST apidl; /* currently focused font item */ -} IGenericSFImpl, *LPIGenericSFImpl; - -static const IShellFolder2Vtbl vt_ShellFolder2; -static const IPersistFolder2Vtbl vt_NP_PersistFolder2; -static const IContextMenu2Vtbl vt_ContextMenu2FontItem; - -#define _IPersistFolder2_Offset ((INT_PTR)(&(((IGenericSFImpl*)0)->lpVtblPersistFolder2))) -#define _ICOM_THIS_From_IPersistFolder2(class, name) class* This = (class*)(((char*)name)-_IPersistFolder2_Offset); -#define _IContextMenuFontItem_Offset ((INT_PTR)(&(((IGenericSFImpl*)0)->lpVtblContextMenuFontItem))) -#define _ICOM_THIS_From_IContextMenu2FontItem(class, name) class* This = (class*)(((char*)name)-_IContextMenuFontItem_Offset); - -#define _IUnknown_(This) (IUnknown*)&(This->lpVtbl) -#define _IShellFolder_(This) (IShellFolder*)&(This->lpVtbl) -#define _IPersistFolder2_(This) (IPersistFolder2*)&(This->lpVtblPersistFolder2) - -static shvheader FontsSFHeader[] = { - {IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN_FONTTYPE , SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN12, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15} -}; - -#define COLUMN_NAME 0 -#define COLUMN_TYPE 1 -#define COLUMN_SIZE 2 -#define COLUMN_FILENAME 3 - -#define FontsSHELLVIEWCOLUMNS (4) - - -static LPIGenericSFImpl __inline impl_from_IPersistFolder2( IPersistFolder2 *iface ) -{ - return (LPIGenericSFImpl)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpVtblPersistFolder2)); -} - -static LPIGenericSFImpl __inline impl_from_IContextMenu2(IContextMenu2 *iface) -{ - return (LPIGenericSFImpl)((char *)iface - FIELD_OFFSET(IGenericSFImpl, lpVtblContextMenuFontItem)); -} - -/************************************************************************** -* ISF_Fonts_Constructor -*/ -HRESULT WINAPI ISF_Fonts_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) -{ - IGenericSFImpl *sf; - - TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid)); - - if (!ppv) - return E_POINTER; - if (pUnkOuter) - return CLASS_E_NOAGGREGATION; - - sf = (IGenericSFImpl *) HeapAlloc ( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof (IGenericSFImpl)); - if (!sf) - return E_OUTOFMEMORY; - - sf->ref = 0; - sf->lpVtbl = &vt_ShellFolder2; - sf->lpVtblPersistFolder2 = &vt_NP_PersistFolder2; - sf->lpVtblContextMenuFontItem = &vt_ContextMenu2FontItem; - sf->pidlRoot = _ILCreateFont(); /* my qualified pidl */ - - if (!SUCCEEDED (IUnknown_QueryInterface (_IUnknown_ (sf), riid, ppv))) - { - IUnknown_Release (_IUnknown_ (sf)); - return E_NOINTERFACE; - } - - TRACE ("--(%p)\n", sf); - return S_OK; -} - -/************************************************************************** - * ISF_Fonts_fnQueryInterface - * - * NOTE - * supports not IPersist/IPersistFolder - */ -static HRESULT WINAPI ISF_Fonts_fnQueryInterface (IShellFolder2 *iface, REFIID riid, LPVOID *ppvObj) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); - - *ppvObj = NULL; - - if (IsEqualIID (riid, &IID_IUnknown) || - IsEqualIID (riid, &IID_IShellFolder) || - IsEqualIID (riid, &IID_IShellFolder2)) - { - *ppvObj = This; - } - else if (IsEqualIID (riid, &IID_IPersist) || - IsEqualIID (riid, &IID_IPersistFolder) || - IsEqualIID (riid, &IID_IPersistFolder2)) - { - *ppvObj = _IPersistFolder2_ (This); - } - - if (*ppvObj) - { - IUnknown_AddRef ((IUnknown *) (*ppvObj)); - TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj); - return S_OK; - } - TRACE ("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI ISF_Fonts_fnAddRef (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI ISF_Fonts_fnRelease (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount + 1); - - if (!refCount) { - TRACE ("-- destroying IShellFolder(%p)\n", This); - SHFree (This->pidlRoot); - HeapFree (GetProcessHeap(), 0, This); - } - return refCount; -} - -/************************************************************************** -* ISF_Fonts_fnParseDisplayName -*/ -static HRESULT WINAPI ISF_Fonts_fnParseDisplayName (IShellFolder2 * iface, - HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, - DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - HRESULT hr = E_UNEXPECTED; - - TRACE ("(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n", This, - hwndOwner, pbcReserved, lpszDisplayName, debugstr_w (lpszDisplayName), - pchEaten, ppidl, pdwAttributes); - - *ppidl = 0; - if (pchEaten) - *pchEaten = 0; /* strange but like the original */ - - TRACE ("(%p)->(-- ret=0x%08x)\n", This, hr); - - return hr; -} - -static LPITEMIDLIST _ILCreateFontItem(LPWSTR pszFont, LPWSTR pszFile) -{ - PIDLDATA tmp; - LPITEMIDLIST pidl; - PIDLFontStruct * p; - int size0 = (char*)&tmp.u.cfont.szName-(char*)&tmp.u.cfont; - int size = size0; - - tmp.type = 0x00; - tmp.u.cfont.dummy = 0xFF; - tmp.u.cfont.offsFile = wcslen(pszFont) + 1; - - size += (tmp.u.cfont.offsFile + wcslen(pszFile) + 1) * sizeof(WCHAR); - - pidl = (LPITEMIDLIST)SHAlloc(size + 4); - if (!pidl) - return pidl; - - pidl->mkid.cb = size+2; - memcpy(pidl->mkid.abID, &tmp, 2+size0); - - p = &((PIDLDATA*)pidl->mkid.abID)->u.cfont; - wcscpy(p->szName, pszFont); - wcscpy(p->szName + tmp.u.cfont.offsFile, pszFile); - - *(WORD*)((char*)pidl+(size+2)) = 0; - return pidl; -} - -static PIDLFontStruct * _ILGetFontStruct(LPCITEMIDLIST pidl) -{ - LPPIDLDATA pdata = _ILGetDataPointer(pidl); - - if (pdata && pdata->type==0x00) - return (PIDLFontStruct*)&(pdata->u.cfont); - - return NULL; -} - - - -/************************************************************************** - * CreateFontsEnumListss() - */ -static BOOL CreateFontsEnumList(IEnumIDList *list, DWORD dwFlags) -{ - WCHAR szPath[MAX_PATH]; - WCHAR szName[LF_FACESIZE+20]; - WCHAR szFile[MAX_PATH]; - LPWSTR pszPath; - UINT Length; - LONG ret; - DWORD dwType, dwName, dwFile, dwIndex; - LPITEMIDLIST pidl; - HKEY hKey; - - if (dwFlags & SHCONTF_NONFOLDERS) - { - if (!SHGetSpecialFolderPathW(NULL, szPath, CSIDL_FONTS, FALSE)) - return FALSE; - - pszPath = PathAddBackslashW(szPath); - if (!pszPath) - return FALSE; - if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts", 0, KEY_READ, &hKey)!= ERROR_SUCCESS) - return FALSE; - - Length = pszPath - szPath; - dwIndex = 0; - do - { - dwName = sizeof(szName)/sizeof(WCHAR); - dwFile = sizeof(szFile)/sizeof(WCHAR); - ret = RegEnumValueW(hKey, dwIndex++, szName, &dwName, NULL, &dwType, (LPVOID)szFile, &dwFile); - if (ret == ERROR_SUCCESS) - { - szFile[(sizeof(szFile)/sizeof(WCHAR))-1] = L'\0'; - if (dwType == REG_SZ && wcslen(szFile) + Length + 1< (sizeof(szPath)/sizeof(WCHAR))) - { - wcscpy(&szPath[Length], szFile); - pidl = _ILCreateFontItem(szName, szPath); - TRACE("pidl %p name %s path %s\n", pidl, debugstr_w(szName), debugstr_w(szPath)); - if (pidl) - { - if (!AddToEnumList(list, pidl)) - SHFree(pidl); - } - } - } - }while(ret != ERROR_NO_MORE_ITEMS); - RegCloseKey(hKey); - - } - return TRUE; -} - -/************************************************************************** -* ISF_Fonts_fnEnumObjects -*/ -static HRESULT WINAPI ISF_Fonts_fnEnumObjects (IShellFolder2 * iface, - HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(HWND=%p flags=0x%08x pplist=%p)\n", This, - hwndOwner, dwFlags, ppEnumIDList); - - *ppEnumIDList = IEnumIDList_Constructor(); - if(*ppEnumIDList) - CreateFontsEnumList(*ppEnumIDList, dwFlags); - - TRACE ("-- (%p)->(new ID List: %p)\n", This, *ppEnumIDList); - - return (*ppEnumIDList) ? S_OK : E_OUTOFMEMORY; -} - -/************************************************************************** -* ISF_Fonts_fnBindToObject -*/ -static HRESULT WINAPI ISF_Fonts_fnBindToObject (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This, - pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - return SHELL32_BindToChild (This->pidlRoot, NULL, pidl, riid, ppvOut); -} - -/************************************************************************** -* ISF_Fonts_fnBindToStorage -*/ -static HRESULT WINAPI ISF_Fonts_fnBindToStorage (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", This, - pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - *ppvOut = NULL; - return E_NOTIMPL; -} - -/************************************************************************** -* ISF_Fonts_fnCompareIDs -*/ - -static HRESULT WINAPI ISF_Fonts_fnCompareIDs (IShellFolder2 * iface, - LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - int nReturn; - - TRACE ("(%p)->(0x%08lx,pidl1=%p,pidl2=%p)\n", This, lParam, pidl1, pidl2); - nReturn = SHELL32_CompareIDs (_IShellFolder_ (This), lParam, pidl1, pidl2); - TRACE ("-- %i\n", nReturn); - return nReturn; -} - -/************************************************************************** -* ISF_Fonts_fnCreateViewObject -*/ -static HRESULT WINAPI ISF_Fonts_fnCreateViewObject (IShellFolder2 * iface, - HWND hwndOwner, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - LPSHELLVIEW pShellView; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(hwnd=%p,%s,%p)\n", This, - hwndOwner, shdebugstr_guid (riid), ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IDropTarget)) - { - WARN ("IDropTarget not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IContextMenu)) - { - WARN ("IContextMenu not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IShellView)) - { - pShellView = IShellView_Constructor ((IShellFolder *) iface); - if (pShellView) - { - hr = IShellView_QueryInterface (pShellView, riid, ppvOut); - IShellView_Release (pShellView); - } - } - TRACE ("-- (%p)->(interface=%p)\n", This, ppvOut); - return hr; -} - -/************************************************************************** -* ISF_Fonts_fnGetAttributesOf -*/ -static HRESULT WINAPI ISF_Fonts_fnGetAttributesOf (IShellFolder2 * iface, - UINT cidl, LPCITEMIDLIST * apidl, DWORD * rgfInOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - HRESULT hr = S_OK; - - TRACE ("(%p)->(cidl=%d apidl=%p mask=%p (0x%08x))\n", This, - cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0); - - if (!rgfInOut) - return E_INVALIDARG; - if (cidl && !apidl) - return E_INVALIDARG; - - if (*rgfInOut == 0) - *rgfInOut = ~0; - - if (cidl == 0) - { - IShellFolder *psfParent = NULL; - LPCITEMIDLIST rpidl = NULL; - - hr = SHBindToParent(This->pidlRoot, &IID_IShellFolder, (LPVOID*)&psfParent, (LPCITEMIDLIST*)&rpidl); - if(SUCCEEDED(hr)) - { - SHELL32_GetItemAttributes (psfParent, rpidl, rgfInOut); - IShellFolder_Release(psfParent); - } - } - else - { - while (cidl > 0 && *apidl) - { - pdump (*apidl); - SHELL32_GetItemAttributes (_IShellFolder_ (This), *apidl, rgfInOut); - apidl++; - cidl--; - } - } - - /* make sure SFGAO_VALIDATE is cleared, some apps depend on that */ - *rgfInOut &= ~SFGAO_VALIDATE; - - TRACE ("-- result=0x%08x\n", *rgfInOut); - return hr; -} - -/************************************************************************** -* ISF_Fonts_fnGetUIObjectOf -* -* PARAMETERS -* hwndOwner [in] Parent window for any output -* cidl [in] array size -* apidl [in] simple pidl array -* riid [in] Requested Interface -* prgfInOut [ ] reserved -* ppvObject [out] Resulting Interface -* -*/ -static HRESULT WINAPI ISF_Fonts_fnGetUIObjectOf (IShellFolder2 * iface, - HWND hwndOwner, UINT cidl, LPCITEMIDLIST * apidl, REFIID riid, - UINT * prgfInOut, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - LPITEMIDLIST pidl; - IUnknown *pObj = NULL; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n", This, - hwndOwner, cidl, apidl, shdebugstr_guid (riid), prgfInOut, ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IContextMenu) && (cidl >= 1)) - { - pObj = (IUnknown*)(&This->lpVtblContextMenuFontItem); - This->apidl = apidl[0]; - IUnknown_AddRef(pObj); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IDataObject) && (cidl >= 1)) - { - pObj = (LPUNKNOWN) IDataObject_Constructor (hwndOwner, This->pidlRoot, apidl, cidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconA) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconA_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconW) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconW_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IDropTarget) && (cidl >= 1)) - { - hr = IShellFolder_QueryInterface (iface, &IID_IDropTarget, (LPVOID *) & pObj); - } - else - hr = E_NOINTERFACE; - - if (SUCCEEDED(hr) && !pObj) - hr = E_OUTOFMEMORY; - - *ppvOut = pObj; - TRACE ("(%p)->hr=0x%08x\n", This, hr); - return hr; -} - -/************************************************************************** -* ISF_Fonts_fnGetDisplayNameOf -* -*/ -static HRESULT WINAPI ISF_Fonts_fnGetDisplayNameOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - PIDLFontStruct * pfont; - - TRACE("ISF_Fonts_fnGetDisplayNameOf (%p)->(pidl=%p,0x%08x,%p)\n", This, pidl, dwFlags, strRet); - pdump (pidl); - - if (!strRet) - return E_INVALIDARG; - - pfont = _ILGetFontStruct(pidl); - if (!pfont) - return E_INVALIDARG; - - strRet->u.pOleStr = CoTaskMemAlloc((wcslen(pfont->szName)+1) * sizeof(WCHAR)); - if (!strRet->u.pOleStr) - return E_OUTOFMEMORY; - - wcscpy(strRet->u.pOleStr, pfont->szName); - strRet->uType = STRRET_WSTR; - - return S_OK; -} - -/************************************************************************** -* ISF_Fonts_fnSetNameOf -* Changes the name of a file object or subfolder, possibly changing its item -* identifier in the process. -* -* PARAMETERS -* hwndOwner [in] Owner window for output -* pidl [in] simple pidl of item to change -* lpszName [in] the items new display name -* dwFlags [in] SHGNO formatting flags -* ppidlOut [out] simple pidl returned -*/ -static HRESULT WINAPI ISF_Fonts_fnSetNameOf (IShellFolder2 * iface, - HWND hwndOwner, LPCITEMIDLIST pidl, /*simple pidl */ - LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST * pPidlOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)->(%p,pidl=%p,%s,%u,%p)\n", This, - hwndOwner, pidl, debugstr_w (lpName), dwFlags, pPidlOut); - return E_FAIL; -} - -static HRESULT WINAPI ISF_Fonts_fnGetDefaultSearchGUID ( - IShellFolder2 * iface, GUID * pguid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_Fonts_fnEnumSearches (IShellFolder2 * iface, - IEnumExtraSearch ** ppenum) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_Fonts_fnGetDefaultColumn (IShellFolder2 * iface, - DWORD dwRes, ULONG * pSort, ULONG * pDisplay) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)\n", This); - - if (pSort) - *pSort = 0; - if (pDisplay) - *pDisplay = 0; - - return S_OK; -} - -static HRESULT WINAPI ISF_Fonts_fnGetDefaultColumnState ( - IShellFolder2 * iface, UINT iColumn, DWORD * pcsFlags) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)\n", This); - - if (!pcsFlags || iColumn >= FontsSHELLVIEWCOLUMNS) - return E_INVALIDARG; - *pcsFlags = FontsSFHeader[iColumn].pcsFlags; - return S_OK; -} - -static HRESULT WINAPI ISF_Fonts_fnGetDetailsEx (IShellFolder2 * iface, - LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_Fonts_fnGetDetailsOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS * psd) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - WCHAR buffer[MAX_PATH] = {0}; - HRESULT hr = E_FAIL; - PIDLFontStruct * pfont; - HANDLE hFile; - LARGE_INTEGER FileSize; - SHFILEINFOW fi; - - TRACE("(%p, %p, %d, %p)\n", This, pidl, iColumn, psd); - - if (iColumn >= FontsSHELLVIEWCOLUMNS) - return E_FAIL; - - psd->fmt = FontsSFHeader[iColumn].fmt; - psd->cxChar = FontsSFHeader[iColumn].cxChar; - if (pidl == NULL) - { - psd->str.uType = STRRET_WSTR; - if (LoadStringW(shell32_hInstance, FontsSFHeader[iColumn].colnameid, buffer, MAX_PATH)) - hr = SHStrDupW(buffer, &psd->str.u.pOleStr); - - return hr; - } - - if (iColumn == COLUMN_NAME) - { - psd->str.uType = STRRET_WSTR; - return IShellFolder2_GetDisplayNameOf(iface, pidl, SHGDN_NORMAL, &psd->str); - } - - psd->str.uType = STRRET_CSTR; - psd->str.u.cStr[0] = '\0'; - - switch(iColumn) - { - case COLUMN_TYPE: - pfont = _ILGetFontStruct(pidl); - if (pfont) - { - if (SHGetFileInfoW(pfont->szName + pfont->offsFile, 0, &fi, sizeof(fi), SHGFI_TYPENAME)) - { - psd->str.u.pOleStr = CoTaskMemAlloc((wcslen(fi.szTypeName)+1) * sizeof(WCHAR)); - if (!psd->str.u.pOleStr) - return E_OUTOFMEMORY; - wcscpy(psd->str.u.pOleStr, fi.szTypeName); - psd->str.uType = STRRET_WSTR; - return S_OK; - } - } - break; - case COLUMN_SIZE: - pfont = _ILGetFontStruct(pidl); - if (pfont) - { - hFile = CreateFileW(pfont->szName + pfont->offsFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (hFile != INVALID_HANDLE_VALUE) - { - if (GetFileSizeEx(hFile, &FileSize)) - { - if (StrFormatByteSizeW(FileSize.QuadPart, buffer, sizeof(buffer)/sizeof(WCHAR))) - { - psd->str.u.pOleStr = CoTaskMemAlloc(wcslen(buffer) + 1); - if (!psd->str.u.pOleStr) - return E_OUTOFMEMORY; - wcscpy(psd->str.u.pOleStr, buffer); - psd->str.uType = STRRET_WSTR; - CloseHandle(hFile); - return S_OK; - } - } - CloseHandle(hFile); - } - } - break; - case COLUMN_FILENAME: - pfont = _ILGetFontStruct(pidl); - if (pfont) - { - psd->str.u.pOleStr = CoTaskMemAlloc((wcslen(pfont->szName + pfont->offsFile) + 1) * sizeof(WCHAR)); - if (psd->str.u.pOleStr) - { - psd->str.uType = STRRET_WSTR; - wcscpy(psd->str.u.pOleStr, pfont->szName + pfont->offsFile); - return S_OK; - } - else - return E_OUTOFMEMORY; - } - break; - } - - return E_FAIL; -} - -static HRESULT WINAPI ISF_Fonts_fnMapColumnToSCID (IShellFolder2 * iface, - UINT column, SHCOLUMNID * pscid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)\n", This); - - return E_NOTIMPL; -} - -static const IShellFolder2Vtbl vt_ShellFolder2 = { - ISF_Fonts_fnQueryInterface, - ISF_Fonts_fnAddRef, - ISF_Fonts_fnRelease, - ISF_Fonts_fnParseDisplayName, - ISF_Fonts_fnEnumObjects, - ISF_Fonts_fnBindToObject, - ISF_Fonts_fnBindToStorage, - ISF_Fonts_fnCompareIDs, - ISF_Fonts_fnCreateViewObject, - ISF_Fonts_fnGetAttributesOf, - ISF_Fonts_fnGetUIObjectOf, - ISF_Fonts_fnGetDisplayNameOf, - ISF_Fonts_fnSetNameOf, - /* ShellFolder2 */ - ISF_Fonts_fnGetDefaultSearchGUID, - ISF_Fonts_fnEnumSearches, - ISF_Fonts_fnGetDefaultColumn, - ISF_Fonts_fnGetDefaultColumnState, - ISF_Fonts_fnGetDetailsEx, - ISF_Fonts_fnGetDetailsOf, - ISF_Fonts_fnMapColumnToSCID -}; - -/************************************************************************ - * INPFldr_PersistFolder2_QueryInterface - */ -static HRESULT WINAPI INPFldr_PersistFolder2_QueryInterface (IPersistFolder2 * iface, - REFIID iid, LPVOID * ppvObj) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)\n", This); - - return IUnknown_QueryInterface (_IUnknown_ (This), iid, ppvObj); -} - -/************************************************************************ - * INPFldr_PersistFolder2_AddRef - */ -static ULONG WINAPI INPFldr_PersistFolder2_AddRef (IPersistFolder2 * iface) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_AddRef (_IUnknown_ (This)); -} - -/************************************************************************ - * ISFPersistFolder_Release - */ -static ULONG WINAPI INPFldr_PersistFolder2_Release (IPersistFolder2 * iface) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_Release (_IUnknown_ (This)); -} - -/************************************************************************ - * INPFldr_PersistFolder2_GetClassID - */ -static HRESULT WINAPI INPFldr_PersistFolder2_GetClassID ( - IPersistFolder2 * iface, CLSID * lpClassId) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)\n", This); - - if (!lpClassId) - return E_POINTER; - - *lpClassId = CLSID_FontsFolderShortcut; - - return S_OK; -} - -/************************************************************************ - * INPFldr_PersistFolder2_Initialize - * - * NOTES: it makes no sense to change the pidl - */ -static HRESULT WINAPI INPFldr_PersistFolder2_Initialize ( - IPersistFolder2 * iface, LPCITEMIDLIST pidl) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - return E_NOTIMPL; -} - -/************************************************************************** - * IPersistFolder2_fnGetCurFolder - */ -static HRESULT WINAPI INPFldr_PersistFolder2_GetCurFolder ( - IPersistFolder2 * iface, LPITEMIDLIST * pidl) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - if (!pidl) - return E_POINTER; - - *pidl = ILClone (This->pidlRoot); - - return S_OK; -} - -static const IPersistFolder2Vtbl vt_NP_PersistFolder2 = -{ - INPFldr_PersistFolder2_QueryInterface, - INPFldr_PersistFolder2_AddRef, - INPFldr_PersistFolder2_Release, - INPFldr_PersistFolder2_GetClassID, - INPFldr_PersistFolder2_Initialize, - INPFldr_PersistFolder2_GetCurFolder -}; - -/************************************************************************** -* IContextMenu2 Implementation -*/ - -/************************************************************************ - * ISF_Fonts_IContextMenu_QueryInterface - */ -static HRESULT WINAPI ISF_Fonts_IContextMenu2_QueryInterface(IContextMenu2 * iface, REFIID iid, LPVOID * ppvObject) -{ - _ICOM_THIS_From_IContextMenu2FontItem(IGenericSFImpl, iface); - - TRACE("(%p)\n", This); - - return IUnknown_QueryInterface(_IUnknown_(This), iid, ppvObject); -} - -/************************************************************************ - * ISF_Fonts_IContextMenu_AddRef - */ -static ULONG WINAPI ISF_Fonts_IContextMenu2_AddRef(IContextMenu2 * iface) -{ - _ICOM_THIS_From_IContextMenu2FontItem(IGenericSFImpl, iface); - - TRACE("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_AddRef(_IUnknown_(This)); -} - -/************************************************************************ - * ISF_Fonts_IContextMenu_Release - */ -static ULONG WINAPI ISF_Fonts_IContextMenu2_Release(IContextMenu2 * iface) -{ - _ICOM_THIS_From_IContextMenu2FontItem(IGenericSFImpl, iface); - - TRACE("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_Release(_IUnknown_(This)); -} - -/************************************************************************** -* ISF_Fonts_IContextMenu_QueryContextMenu() -*/ -static HRESULT WINAPI ISF_Fonts_IContextMenu2_QueryContextMenu( - IContextMenu2 *iface, - HMENU hMenu, - UINT indexMenu, - UINT idCmdFirst, - UINT idCmdLast, - UINT uFlags) -{ - WCHAR szBuffer[30] = {0}; - ULONG Count = 1; - - _ICOM_THIS_From_IContextMenu2FontItem(IGenericSFImpl, iface); - - TRACE("(%p)->(hmenu=%p indexmenu=%x cmdfirst=%x cmdlast=%x flags=%x )\n", - This, hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags); - - if (LoadStringW(shell32_hInstance, IDS_OPEN, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count, MFT_STRING, szBuffer, MFS_DEFAULT); - Count++; - } - - if (LoadStringW(shell32_hInstance, IDS_PRINT_VERB, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, MFT_STRING, szBuffer, MFS_ENABLED); - } - - if (LoadStringW(shell32_hInstance, IDS_COPY, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, MFT_SEPARATOR, NULL, MFS_ENABLED); - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, MFT_STRING, szBuffer, MFS_ENABLED); - } - - if (LoadStringW(shell32_hInstance, IDS_DELETE, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, MFT_SEPARATOR, NULL, MFS_ENABLED); - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count, MFT_STRING, szBuffer, MFS_ENABLED); - } - - if (LoadStringW(shell32_hInstance, IDS_PROPERTIES, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, MFT_SEPARATOR, NULL, MFS_ENABLED); - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count, MFT_STRING, szBuffer, MFS_ENABLED); - } - - return MAKE_HRESULT(SEVERITY_SUCCESS, 0, Count); -} - - -/************************************************************************** -* ISF_Fonts_IContextMenu_InvokeCommand() -*/ -static HRESULT WINAPI ISF_Fonts_IContextMenu2_InvokeCommand( - IContextMenu2 *iface, - LPCMINVOKECOMMANDINFO lpcmi) -{ - SHELLEXECUTEINFOW sei; - PIDLFontStruct * pfont; - SHFILEOPSTRUCTW op; - IGenericSFImpl * This = impl_from_IContextMenu2(iface); - - - TRACE("(%p)->(invcom=%p verb=%p wnd=%p)\n",This,lpcmi,lpcmi->lpVerb, lpcmi->hwnd); - - if (lpcmi->lpVerb == MAKEINTRESOURCEA(1) || lpcmi->lpVerb == MAKEINTRESOURCEA(2) || lpcmi->lpVerb == MAKEINTRESOURCEA(7)) - { - ZeroMemory(&sei, sizeof(sei)); - sei.cbSize = sizeof(sei); - sei.hwnd = lpcmi->hwnd; - sei.nShow = SW_SHOWNORMAL; - if (lpcmi->lpVerb == MAKEINTRESOURCEA(1)) - sei.lpVerb = L"open"; - else if (lpcmi->lpVerb == MAKEINTRESOURCEA(2)) - sei.lpVerb = L"print"; - else if (lpcmi->lpVerb == MAKEINTRESOURCEA(7)) - sei.lpVerb = L"properties"; - - pfont = _ILGetFontStruct(This->apidl); - sei.lpFile = pfont->szName + pfont->offsFile; - - if (ShellExecuteExW(&sei) == FALSE) - return E_FAIL; - } - else if (lpcmi->lpVerb == MAKEINTRESOURCEA(4)) - { - FIXME("implement font copying\n"); - return E_NOTIMPL; - } - else if (lpcmi->lpVerb == MAKEINTRESOURCEA(6)) - { - ZeroMemory(&op, sizeof(op)); - op.hwnd = lpcmi->hwnd; - op.wFunc = FO_DELETE; - op.fFlags = FOF_ALLOWUNDO; - pfont = _ILGetFontStruct(This->apidl); - op.pFrom = pfont->szName + pfont->offsFile; - SHFileOperationW(&op); - } - - return S_OK; -} - -/************************************************************************** - * ISF_Fonts_IContextMenu_GetCommandString() - * - */ -static HRESULT WINAPI ISF_Fonts_IContextMenu2_GetCommandString( - IContextMenu2 *iface, - UINT_PTR idCommand, - UINT uFlags, - UINT* lpReserved, - LPSTR lpszName, - UINT uMaxNameLen) -{ - _ICOM_THIS_From_IContextMenu2FontItem(IGenericSFImpl, iface); - - TRACE("(%p)->(idcom=%lx flags=%x %p name=%p len=%x)\n",This, idCommand, uFlags, lpReserved, lpszName, uMaxNameLen); - - - return E_FAIL; -} - - - -/************************************************************************** -* ISF_Fonts_IContextMenu_HandleMenuMsg() -*/ -static HRESULT WINAPI ISF_Fonts_IContextMenu2_HandleMenuMsg( - IContextMenu2 *iface, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - _ICOM_THIS_From_IContextMenu2FontItem(IGenericSFImpl, iface); - - TRACE("ISF_Fonts_IContextMenu_HandleMenuMsg (%p)->(msg=%x wp=%lx lp=%lx)\n",This, uMsg, wParam, lParam); - - return E_NOTIMPL; -} - -static const IContextMenu2Vtbl vt_ContextMenu2FontItem = -{ - ISF_Fonts_IContextMenu2_QueryInterface, - ISF_Fonts_IContextMenu2_AddRef, - ISF_Fonts_IContextMenu2_Release, - ISF_Fonts_IContextMenu2_QueryContextMenu, - ISF_Fonts_IContextMenu2_InvokeCommand, - ISF_Fonts_IContextMenu2_GetCommandString, - ISF_Fonts_IContextMenu2_HandleMenuMsg -}; - - - - - - diff --git a/reactos/dll/win32/shell32/shfldr_fs.c b/reactos/dll/win32/shell32/shfldr_fs.c deleted file mode 100644 index 6a0c9537f2f..00000000000 --- a/reactos/dll/win32/shell32/shfldr_fs.c +++ /dev/null @@ -1,1715 +0,0 @@ - -/* - * file system folder - * - * Copyright 1997 Marcus Meissner - * Copyright 1998, 1999, 2002 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL (shell); - -/*********************************************************************** -* IShellFolder implementation -*/ - -typedef struct { - const IUnknownVtbl *lpVtbl; - LONG ref; - const IShellFolder2Vtbl *lpvtblShellFolder; - const IPersistFolder3Vtbl *lpvtblPersistFolder3; - const IDropTargetVtbl *lpvtblDropTarget; - const ISFHelperVtbl *lpvtblSFHelper; - - IUnknown *pUnkOuter; /* used for aggregation */ - - CLSID *pclsid; - - /* both paths are parsible from the desktop */ - LPWSTR sPathTarget; /* complete path to target used for enumeration and ChangeNotify */ - - LPITEMIDLIST pidlRoot; /* absolute pidl */ - - UINT cfShellIDList; /* clipboardformat for IDropTarget */ - BOOL fAcceptFmt; /* flag for pending Drop */ -} IGenericSFImpl, *LPIGenericSFImpl; - -static const IUnknownVtbl unkvt; -static const IShellFolder2Vtbl sfvt; -static const IPersistFolder3Vtbl vt_FSFldr_PersistFolder3; /* IPersistFolder3 for a FS_Folder */ -static const IDropTargetVtbl dtvt; -static const ISFHelperVtbl shvt; - -static LPIGenericSFImpl __inline impl_from_IShellFolder2( IShellFolder2 *iface ) -{ - return (LPIGenericSFImpl)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpvtblShellFolder)); -} - -static LPIGenericSFImpl __inline impl_from_IPersistFolder3( IPersistFolder3 *iface ) -{ - return (LPIGenericSFImpl)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpvtblPersistFolder3)); -} - -static LPIGenericSFImpl __inline impl_from_IDropTarget( IDropTarget *iface ) -{ - return (LPIGenericSFImpl)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpvtblDropTarget)); -} - -static LPIGenericSFImpl __inline impl_from_ISFHelper( ISFHelper *iface ) -{ - return (LPIGenericSFImpl)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpvtblSFHelper)); -} - - -/* - converts This to an interface pointer -*/ -#define _IUnknown_(This) (IUnknown*)&(This->lpVtbl) -#define _IShellFolder_(This) (IShellFolder*)&(This->lpvtblShellFolder) -#define _IShellFolder2_(This) (IShellFolder2*)&(This->lpvtblShellFolder) -#define _IPersist_(This) (IPersist*)&(This->lpvtblPersistFolder3) -#define _IPersistFolder_(This) (IPersistFolder*)&(This->lpvtblPersistFolder3) -#define _IPersistFolder2_(This) (IPersistFolder2*)&(This->lpvtblPersistFolder3) -#define _IPersistFolder3_(This) (IPersistFolder3*)&(This->lpvtblPersistFolder3) -#define _IDropTarget_(This) (IDropTarget*)&(This->lpvtblDropTarget) -#define _ISFHelper_(This) (ISFHelper*)&(This->lpvtblSFHelper) - -/************************************************************************** -* registers clipboardformat once -*/ -static void SF_RegisterClipFmt (IGenericSFImpl * This) -{ - TRACE ("(%p)\n", This); - - if (!This->cfShellIDList) { - This->cfShellIDList = RegisterClipboardFormatW (CFSTR_SHELLIDLIST); - } -} - -/************************************************************************** -* we need a separate IUnknown to handle aggregation -* (inner IUnknown) -*/ -static HRESULT WINAPI IUnknown_fnQueryInterface (IUnknown * iface, REFIID riid, LPVOID * ppvObj) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); - - *ppvObj = NULL; - - if (IsEqualIID (riid, &IID_IUnknown)) - *ppvObj = _IUnknown_ (This); - else if (IsEqualIID (riid, &IID_IShellFolder)) - *ppvObj = _IShellFolder_ (This); - else if (IsEqualIID (riid, &IID_IShellFolder2)) - *ppvObj = _IShellFolder_ (This); - else if (IsEqualIID (riid, &IID_IPersist)) - *ppvObj = _IPersist_ (This); - else if (IsEqualIID (riid, &IID_IPersistFolder)) - *ppvObj = _IPersistFolder_ (This); - else if (IsEqualIID (riid, &IID_IPersistFolder2)) - *ppvObj = _IPersistFolder2_ (This); - else if (IsEqualIID (riid, &IID_IPersistFolder3)) - *ppvObj = _IPersistFolder3_ (This); - else if (IsEqualIID (riid, &IID_ISFHelper)) - *ppvObj = _ISFHelper_ (This); - else if (IsEqualIID (riid, &IID_IDropTarget)) { - *ppvObj = _IDropTarget_ (This); - SF_RegisterClipFmt (This); - } - - if (*ppvObj) { - IUnknown_AddRef ((IUnknown *) (*ppvObj)); - TRACE ("-- Interface = %p\n", *ppvObj); - return S_OK; - } - TRACE ("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI IUnknown_fnAddRef (IUnknown * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI IUnknown_fnRelease (IUnknown * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount + 1); - - if (!refCount) { - TRACE ("-- destroying IShellFolder(%p)\n", This); - - SHFree (This->pidlRoot); - SHFree (This->sPathTarget); - LocalFree ((HLOCAL) This); - } - return refCount; -} - -static const IUnknownVtbl unkvt = -{ - IUnknown_fnQueryInterface, - IUnknown_fnAddRef, - IUnknown_fnRelease, -}; - -static const shvheader GenericSFHeader[] = { - {IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 12}, - {IDS_SHV_COLUMN5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 5} -}; - -#define GENERICSHELLVIEWCOLUMNS 5 - -/************************************************************************** -* IFSFolder_Constructor -* -* NOTES -* creating undocumented ShellFS_Folder as part of an aggregation -* {F3364BA0-65B9-11CE-A9BA-00AA004AE837} -* -*/ -HRESULT WINAPI -IFSFolder_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) -{ - IGenericSFImpl *sf; - - TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid)); - - if (pUnkOuter && !IsEqualIID (riid, &IID_IUnknown)) - return CLASS_E_NOAGGREGATION; - sf = (IGenericSFImpl *) LocalAlloc (LMEM_ZEROINIT, sizeof (IGenericSFImpl)); - if (!sf) - return E_OUTOFMEMORY; - - sf->ref = 0; - sf->lpVtbl = &unkvt; - sf->lpvtblShellFolder = &sfvt; - sf->lpvtblPersistFolder3 = &vt_FSFldr_PersistFolder3; - sf->lpvtblDropTarget = &dtvt; - sf->lpvtblSFHelper = &shvt; - sf->pclsid = (CLSID *) & CLSID_ShellFSFolder; - sf->pUnkOuter = pUnkOuter ? pUnkOuter : _IUnknown_ (sf); - - if (!SUCCEEDED (IUnknown_QueryInterface (_IUnknown_ (sf), riid, ppv))) { - IUnknown_Release (_IUnknown_ (sf)); - return E_NOINTERFACE; - } - - TRACE ("--%p\n", *ppv); - return S_OK; -} - -/************************************************************************** - * IShellFolder_fnQueryInterface - * - * PARAMETERS - * REFIID riid [in ] Requested InterfaceID - * LPVOID* ppvObject [out] Interface* to hold the result - */ -static HRESULT WINAPI -IShellFolder_fnQueryInterface (IShellFolder2 * iface, REFIID riid, - LPVOID * ppvObj) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); - - return IUnknown_QueryInterface (This->pUnkOuter, riid, ppvObj); -} - -/************************************************************************** -* IShellFolder_AddRef -*/ - -static ULONG WINAPI IShellFolder_fnAddRef (IShellFolder2 * iface) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_AddRef (This->pUnkOuter); -} - -/************************************************************************** - * IShellFolder_fnRelease - */ -static ULONG WINAPI IShellFolder_fnRelease (IShellFolder2 * iface) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_Release (This->pUnkOuter); -} - -/************************************************************************** - * SHELL32_CreatePidlFromBindCtx [internal] - * - * If the caller bound File System Bind Data, assume it is the - * find data for the path. - * This allows binding of paths that don't exist. - */ -LPITEMIDLIST SHELL32_CreatePidlFromBindCtx(IBindCtx *pbc, LPCWSTR path) -{ - static WCHAR szfsbc[] = { - 'F','i','l','e',' ','S','y','s','t','e','m',' ', - 'B','i','n','d',' ','D','a','t','a',0 }; - IFileSystemBindData *fsbd = NULL; - LPITEMIDLIST pidl = NULL; - IUnknown *param = NULL; - WIN32_FIND_DATAW wfd; - HRESULT r; - - TRACE("%p %s\n", pbc, debugstr_w(path)); - - if (!pbc) - return NULL; - - /* see if the caller bound File System Bind Data */ - r = IBindCtx_GetObjectParam( pbc, (LPOLESTR) szfsbc, ¶m ); - if (FAILED(r)) - return NULL; - - r = IUnknown_QueryInterface( param, &IID_IFileSystemBindData, - (LPVOID*) &fsbd ); - if (SUCCEEDED(r)) - { - r = IFileSystemBindData_GetFindData( fsbd, &wfd ); - if (SUCCEEDED(r)) - { - lstrcpynW( &wfd.cFileName[0], path, MAX_PATH ); - pidl = _ILCreateFromFindDataW( &wfd ); - } - IFileSystemBindData_Release( fsbd ); - } - - return pidl; -} - -/************************************************************************** -* IShellFolder_ParseDisplayName {SHELL32} -* -* Parse a display name. -* -* PARAMS -* hwndOwner [in] Parent window for any message's -* pbc [in] optional FileSystemBindData context -* lpszDisplayName [in] Unicode displayname. -* pchEaten [out] (unicode) characters processed -* ppidl [out] complex pidl to item -* pdwAttributes [out] items attributes -* -* NOTES -* Every folder tries to parse only its own (the leftmost) pidl and creates a -* subfolder to evaluate the remaining parts. -* Now we can parse into namespaces implemented by shell extensions -* -* Behaviour on win98: lpszDisplayName=NULL -> crash -* lpszDisplayName="" -> returns mycoputer-pidl -* -* FIXME -* pdwAttributes is not set -* pchEaten is not set like in windows -*/ -static HRESULT WINAPI -IShellFolder_fnParseDisplayName (IShellFolder2 * iface, - HWND hwndOwner, - LPBC pbc, - LPOLESTR lpszDisplayName, - DWORD * pchEaten, LPITEMIDLIST * ppidl, - DWORD * pdwAttributes) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - HRESULT hr = E_INVALIDARG; - LPCWSTR szNext = NULL; - WCHAR szElement[MAX_PATH]; - WCHAR szPath[MAX_PATH]; - LPITEMIDLIST pidlTemp = NULL; - DWORD len; - - TRACE ("(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n", - This, hwndOwner, pbc, lpszDisplayName, debugstr_w (lpszDisplayName), - pchEaten, ppidl, pdwAttributes); - - if (!lpszDisplayName || !ppidl) - return E_INVALIDARG; - - if (pchEaten) - *pchEaten = 0; /* strange but like the original */ - - pidlTemp = SHELL32_CreatePidlFromBindCtx(pbc, lpszDisplayName); - if (!pidlTemp && *lpszDisplayName) - { - /* get the next element */ - szNext = GetNextElementW (lpszDisplayName, szElement, MAX_PATH); - - /* build the full pathname to the element */ - lstrcpynW(szPath, This->sPathTarget, MAX_PATH - 1); - PathAddBackslashW(szPath); - len = wcslen(szPath); - lstrcpynW(szPath + len, szElement, MAX_PATH - len); - - /* get the pidl */ - hr = _ILCreateFromPathW(szPath, &pidlTemp); - - if (SUCCEEDED(hr)) { - if (szNext && *szNext) { - /* try to analyse the next element */ - hr = SHELL32_ParseNextElement (iface, hwndOwner, pbc, - &pidlTemp, (LPOLESTR) szNext, pchEaten, pdwAttributes); - } else { - /* it's the last element */ - if (pdwAttributes && *pdwAttributes) { - hr = SHELL32_GetItemAttributes (_IShellFolder_ (This), - pidlTemp, pdwAttributes); - } - } - } - } - - if (SUCCEEDED(hr)) - *ppidl = pidlTemp; - else - *ppidl = NULL; - - TRACE ("(%p)->(-- pidl=%p ret=0x%08x)\n", This, ppidl ? *ppidl : 0, hr); - - return hr; -} - -/************************************************************************** -* IShellFolder_fnEnumObjects -* PARAMETERS -* HWND hwndOwner, //[in ] Parent Window -* DWORD grfFlags, //[in ] SHCONTF enumeration mask -* LPENUMIDLIST* ppenumIDList //[out] IEnumIDList interface -*/ -static HRESULT WINAPI -IShellFolder_fnEnumObjects (IShellFolder2 * iface, HWND hwndOwner, - DWORD dwFlags, LPENUMIDLIST * ppEnumIDList) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - TRACE ("(%p)->(HWND=%p flags=0x%08x pplist=%p)\n", This, hwndOwner, - dwFlags, ppEnumIDList); - - *ppEnumIDList = IEnumIDList_Constructor(); - if (*ppEnumIDList) - CreateFolderEnumList(*ppEnumIDList, This->sPathTarget, dwFlags); - - TRACE ("-- (%p)->(new ID List: %p)\n", This, *ppEnumIDList); - - return *ppEnumIDList ? S_OK : E_OUTOFMEMORY; -} - -/************************************************************************** -* IShellFolder_fnBindToObject -* PARAMETERS -* LPCITEMIDLIST pidl, //[in ] relative pidl to open -* LPBC pbc, //[in ] optional FileSystemBindData context -* REFIID riid, //[in ] Initial Interface -* LPVOID* ppvObject //[out] Interface* -*/ -static HRESULT WINAPI -IShellFolder_fnBindToObject (IShellFolder2 * iface, LPCITEMIDLIST pidl, - LPBC pbc, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This, pidl, pbc, - shdebugstr_guid (riid), ppvOut); - - return SHELL32_BindToChild (This->pidlRoot, This->sPathTarget, pidl, riid, - ppvOut); -} - -/************************************************************************** -* IShellFolder_fnBindToStorage -* PARAMETERS -* LPCITEMIDLIST pidl, //[in ] complex pidl to store -* LPBC pbc, //[in ] reserved -* REFIID riid, //[in ] Initial storage interface -* LPVOID* ppvObject //[out] Interface* returned -*/ -static HRESULT WINAPI -IShellFolder_fnBindToStorage (IShellFolder2 * iface, LPCITEMIDLIST pidl, - LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", This, pidl, pbcReserved, - shdebugstr_guid (riid), ppvOut); - - *ppvOut = NULL; - return E_NOTIMPL; -} - -/************************************************************************** -* IShellFolder_fnCompareIDs -*/ - -static HRESULT WINAPI -IShellFolder_fnCompareIDs (IShellFolder2 * iface, LPARAM lParam, - LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - int nReturn; - - TRACE ("(%p)->(0x%08lx,pidl1=%p,pidl2=%p)\n", This, lParam, pidl1, pidl2); - nReturn = SHELL32_CompareIDs (_IShellFolder_ (This), lParam, pidl1, pidl2); - TRACE ("-- %i\n", nReturn); - return nReturn; -} - -/************************************************************************** -* IShellFolder_fnCreateViewObject -*/ -static HRESULT WINAPI -IShellFolder_fnCreateViewObject (IShellFolder2 * iface, HWND hwndOwner, - REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - LPSHELLVIEW pShellView; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(hwnd=%p,%s,%p)\n", This, hwndOwner, shdebugstr_guid (riid), - ppvOut); - - if (ppvOut) { - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IDropTarget)) { - hr = IShellFolder_QueryInterface (iface, &IID_IDropTarget, ppvOut); - } else if (IsEqualIID (riid, &IID_IContextMenu)) { - FIXME ("IContextMenu not implemented\n"); - hr = E_NOTIMPL; - } else if (IsEqualIID (riid, &IID_IShellView)) { - pShellView = IShellView_Constructor ((IShellFolder *) iface); - if (pShellView) { - hr = IShellView_QueryInterface (pShellView, riid, ppvOut); - IShellView_Release (pShellView); - } - } - } - TRACE ("-- (%p)->(interface=%p)\n", This, ppvOut); - return hr; -} - -/************************************************************************** -* IShellFolder_fnGetAttributesOf -* -* PARAMETERS -* UINT cidl, //[in ] num elements in pidl array -* LPCITEMIDLIST* apidl, //[in ] simple pidl array -* ULONG* rgfInOut) //[out] result array -* -*/ -static HRESULT WINAPI -IShellFolder_fnGetAttributesOf (IShellFolder2 * iface, UINT cidl, - LPCITEMIDLIST * apidl, DWORD * rgfInOut) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - HRESULT hr = S_OK; - - TRACE ("(%p)->(cidl=%d apidl=%p mask=%p (0x%08x))\n", This, cidl, apidl, - rgfInOut, rgfInOut ? *rgfInOut : 0); - - if (!rgfInOut) - return E_INVALIDARG; - if (cidl && !apidl) - return E_INVALIDARG; - - if (*rgfInOut == 0) - *rgfInOut = ~0; - - if(cidl == 0){ - IShellFolder *psfParent = NULL; - LPCITEMIDLIST rpidl = NULL; - - hr = SHBindToParent(This->pidlRoot, &IID_IShellFolder, (LPVOID*)&psfParent, (LPCITEMIDLIST*)&rpidl); - if(SUCCEEDED(hr)) { - SHELL32_GetItemAttributes (psfParent, rpidl, rgfInOut); - IShellFolder_Release(psfParent); - } - } - else { - while (cidl > 0 && *apidl) { - pdump (*apidl); - SHELL32_GetItemAttributes (_IShellFolder_ (This), *apidl, rgfInOut); - apidl++; - cidl--; - } - } - /* make sure SFGAO_VALIDATE is cleared, some apps depend on that */ - *rgfInOut &= ~SFGAO_VALIDATE; - - TRACE ("-- result=0x%08x\n", *rgfInOut); - - return hr; -} - -/************************************************************************** -* IShellFolder_fnGetUIObjectOf -* -* PARAMETERS -* HWND hwndOwner, //[in ] Parent window for any output -* UINT cidl, //[in ] array size -* LPCITEMIDLIST* apidl, //[in ] simple pidl array -* REFIID riid, //[in ] Requested Interface -* UINT* prgfInOut, //[ ] reserved -* LPVOID* ppvObject) //[out] Resulting Interface -* -* NOTES -* This function gets asked to return "view objects" for one or more (multiple -* select) items: -* The viewobject typically is an COM object with one of the following -* interfaces: -* IExtractIcon,IDataObject,IContextMenu -* In order to support icon positions in the default Listview your DataObject -* must implement the SetData method (in addition to GetData :) - the shell -* passes a barely documented "Icon positions" structure to SetData when the -* drag starts, and GetData's it if the drop is in another explorer window that -* needs the positions. -*/ -static HRESULT WINAPI -IShellFolder_fnGetUIObjectOf (IShellFolder2 * iface, - HWND hwndOwner, - UINT cidl, LPCITEMIDLIST * apidl, REFIID riid, - UINT * prgfInOut, LPVOID * ppvOut) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - LPITEMIDLIST pidl; - IUnknown *pObj = NULL; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n", - This, hwndOwner, cidl, apidl, shdebugstr_guid (riid), prgfInOut, ppvOut); - - if (ppvOut) { - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IContextMenu) && (cidl >= 1)) { - hr = CDefFolderMenu_Create2(This->pidlRoot, hwndOwner, cidl, apidl, (IShellFolder*)iface, NULL, 0, NULL, (IContextMenu**)&pObj); - } else if (IsEqualIID (riid, &IID_IDataObject)){ - if (cidl >= 1) { - pObj = (LPUNKNOWN) IDataObject_Constructor (hwndOwner, - This->pidlRoot, apidl, cidl); - hr = S_OK; - } - else - { - pObj = (LPUNKNOWN) IDataObject_Constructor (hwndOwner, This->pidlRoot, (LPCITEMIDLIST*)&This->pidlRoot, 1); - hr = S_OK; - } - } else if (IsEqualIID (riid, &IID_IExtractIconA) && (cidl == 1)) { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconA_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } else if (IsEqualIID (riid, &IID_IExtractIconW) && (cidl == 1)) { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconW_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } else if (IsEqualIID (riid, &IID_IDropTarget) && (cidl >= 1)) { - hr = IShellFolder_QueryInterface (iface, &IID_IDropTarget, - (LPVOID *) & pObj); - } else if ((IsEqualIID(riid,&IID_IShellLinkW) || - IsEqualIID(riid,&IID_IShellLinkA)) && (cidl == 1)) { - pidl = ILCombine (This->pidlRoot, apidl[0]); - hr = IShellLink_ConstructFromFile(NULL, riid, pidl, (LPVOID*)&pObj); - SHFree (pidl); - } else { - hr = E_NOINTERFACE; - } - - if (SUCCEEDED(hr) && !pObj) - hr = E_OUTOFMEMORY; - - *ppvOut = pObj; - } - TRACE ("(%p)->hr=0x%08x\n", This, hr); - return hr; -} - -static const WCHAR AdvancedW[] = { 'S','O','F','T','W','A','R','E', - '\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','E','x','p','l', - 'o','r','e','r','\\','A','d','v','a','n','c','e','d',0 }; -static const WCHAR HideFileExtW[] = { 'H','i','d','e','F','i','l','e','E','x', - 't',0 }; -static const WCHAR NeverShowExtW[] = { 'N','e','v','e','r','S','h','o','w','E', - 'x','t',0 }; - -/****************************************************************************** - * SHELL_FS_HideExtension [Internal] - * - * Query the registry if the filename extension of a given path should be - * hidden. - * - * PARAMS - * szPath [I] Relative or absolute path of a file - * - * RETURNS - * TRUE, if the filename's extension should be hidden - * FALSE, otherwise. - */ -BOOL SHELL_FS_HideExtension(LPWSTR szPath) -{ - HKEY hKey; - DWORD dwData; - DWORD dwDataSize = sizeof (DWORD); - BOOL doHide = FALSE; /* The default value is FALSE (win98 at least) */ - - if (!RegCreateKeyExW(HKEY_CURRENT_USER, AdvancedW, 0, 0, 0, KEY_ALL_ACCESS, 0, &hKey, 0)) { - if (!RegQueryValueExW(hKey, HideFileExtW, 0, 0, (LPBYTE) &dwData, &dwDataSize)) - doHide = dwData; - RegCloseKey (hKey); - } - - if (!doHide) { - LPWSTR ext = PathFindExtensionW(szPath); - - if (*ext != '\0') { - WCHAR classname[MAX_PATH]; - LONG classlen = sizeof(classname); - - if (!RegQueryValueW(HKEY_CLASSES_ROOT, ext, classname, &classlen)) - if (!RegOpenKeyW(HKEY_CLASSES_ROOT, classname, &hKey)) { - if (!RegQueryValueExW(hKey, NeverShowExtW, 0, NULL, NULL, NULL)) - doHide = TRUE; - RegCloseKey(hKey); - } - } - } - return doHide; -} - -void SHELL_FS_ProcessDisplayFilename(LPWSTR szPath, DWORD dwFlags) -{ - /*FIXME: MSDN also mentions SHGDN_FOREDITING which is not yet handled. */ - if (!(dwFlags & SHGDN_FORPARSING) && - ((dwFlags & SHGDN_INFOLDER) || (dwFlags == SHGDN_NORMAL))) { - if (SHELL_FS_HideExtension(szPath) && szPath[0] != '.') - PathRemoveExtensionW(szPath); - } -} - -/************************************************************************** -* IShellFolder_fnGetDisplayNameOf -* Retrieves the display name for the specified file object or subfolder -* -* PARAMETERS -* LPCITEMIDLIST pidl, //[in ] complex pidl to item -* DWORD dwFlags, //[in ] SHGNO formatting flags -* LPSTRRET lpName) //[out] Returned display name -* -* FIXME -* if the name is in the pidl the ret value should be a STRRET_OFFSET -*/ - -static HRESULT WINAPI -IShellFolder_fnGetDisplayNameOf (IShellFolder2 * iface, LPCITEMIDLIST pidl, - DWORD dwFlags, LPSTRRET strRet) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - LPWSTR pszPath; - - HRESULT hr = S_OK; - int len = 0; - - TRACE ("(%p)->(pidl=%p,0x%08x,%p)\n", This, pidl, dwFlags, strRet); - pdump (pidl); - - if (!pidl || !strRet) - return E_INVALIDARG; - - pszPath = CoTaskMemAlloc((MAX_PATH +1) * sizeof(WCHAR)); - if (!pszPath) - return E_OUTOFMEMORY; - - if (_ILIsDesktop(pidl)) { /* empty pidl */ - if ((GET_SHGDN_FOR(dwFlags) & SHGDN_FORPARSING) && - (GET_SHGDN_RELATION(dwFlags) != SHGDN_INFOLDER)) - { - if (This->sPathTarget) - lstrcpynW(pszPath, This->sPathTarget, MAX_PATH); - } else { - /* pidl has to contain exactly one non null SHITEMID */ - hr = E_INVALIDARG; - } - } else if (_ILIsPidlSimple(pidl)) { - if ((GET_SHGDN_FOR(dwFlags) & SHGDN_FORPARSING) && - (GET_SHGDN_RELATION(dwFlags) != SHGDN_INFOLDER) && - This->sPathTarget) - { - lstrcpynW(pszPath, This->sPathTarget, MAX_PATH); - PathAddBackslashW(pszPath); - len = wcslen(pszPath); - } - _ILSimpleGetTextW(pidl, pszPath + len, MAX_PATH + 1 - len); - if (!_ILIsFolder(pidl)) SHELL_FS_ProcessDisplayFilename(pszPath, dwFlags); - } else { - hr = SHELL32_GetDisplayNameOfChild(iface, pidl, dwFlags, pszPath, MAX_PATH); - } - - if (SUCCEEDED(hr)) { - /* Win9x always returns ANSI strings, NT always returns Unicode strings */ - if (GetVersion() & 0x80000000) { - strRet->uType = STRRET_CSTR; - if (!WideCharToMultiByte(CP_ACP, 0, pszPath, -1, strRet->u.cStr, MAX_PATH, - NULL, NULL)) - strRet->u.cStr[0] = '\0'; - CoTaskMemFree(pszPath); - } else { - strRet->uType = STRRET_WSTR; - strRet->u.pOleStr = pszPath; - } - } else - CoTaskMemFree(pszPath); - - TRACE ("-- (%p)->(%s)\n", This, strRet->uType == STRRET_CSTR ? strRet->u.cStr : debugstr_w(strRet->u.pOleStr)); - return hr; -} - -/************************************************************************** -* IShellFolder_fnSetNameOf -* Changes the name of a file object or subfolder, possibly changing its item -* identifier in the process. -* -* PARAMETERS -* HWND hwndOwner, //[in ] Owner window for output -* LPCITEMIDLIST pidl, //[in ] simple pidl of item to change -* LPCOLESTR lpszName, //[in ] the items new display name -* DWORD dwFlags, //[in ] SHGNO formatting flags -* LPITEMIDLIST* ppidlOut) //[out] simple pidl returned -*/ -static HRESULT WINAPI IShellFolder_fnSetNameOf (IShellFolder2 * iface, - HWND hwndOwner, - LPCITEMIDLIST pidl, - LPCOLESTR lpName, - DWORD dwFlags, - LPITEMIDLIST * pPidlOut) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - WCHAR szSrc[MAX_PATH + 1], szDest[MAX_PATH + 1]; - LPWSTR ptr; - BOOL bIsFolder = _ILIsFolder (ILFindLastID (pidl)); - - TRACE ("(%p)->(%p,pidl=%p,%s,%u,%p)\n", This, hwndOwner, pidl, - debugstr_w (lpName), dwFlags, pPidlOut); - - /* build source path */ - lstrcpynW(szSrc, This->sPathTarget, MAX_PATH); - ptr = PathAddBackslashW (szSrc); - if (ptr) - _ILSimpleGetTextW (pidl, ptr, MAX_PATH + 1 - (ptr - szSrc)); - - /* build destination path */ - if (dwFlags == SHGDN_NORMAL || dwFlags & SHGDN_INFOLDER) { - lstrcpynW(szDest, This->sPathTarget, MAX_PATH); - ptr = PathAddBackslashW (szDest); - if (ptr) - lstrcpynW(ptr, lpName, MAX_PATH + 1 - (ptr - szDest)); - } else - lstrcpynW(szDest, lpName, MAX_PATH); - - if(!(dwFlags & SHGDN_FORPARSING) && SHELL_FS_HideExtension(szSrc)) { - WCHAR *ext = PathFindExtensionW(szSrc); - if(*ext != '\0') { - INT len = wcslen(szDest); - lstrcpynW(szDest + len, ext, MAX_PATH - len); - } - } - - TRACE ("src=%s dest=%s\n", debugstr_w(szSrc), debugstr_w(szDest)); - if (!memcmp(szSrc, szDest, (wcslen(szDest)+1) * sizeof(WCHAR))) - { - /* src and destination is the same */ - HRESULT hr = S_OK; - if (pPidlOut) - hr = _ILCreateFromPathW(szDest, pPidlOut); - - return hr; - } - - - if (MoveFileW (szSrc, szDest)) { - HRESULT hr = S_OK; - - if (pPidlOut) - hr = _ILCreateFromPathW(szDest, pPidlOut); - - SHChangeNotify (bIsFolder ? SHCNE_RENAMEFOLDER : SHCNE_RENAMEITEM, - SHCNF_PATHW, szSrc, szDest); - - return hr; - } - - return E_FAIL; -} - -static HRESULT WINAPI IShellFolder_fnGetDefaultSearchGUID (IShellFolder2 *iface, - GUID * pguid) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} -static HRESULT WINAPI IShellFolder_fnEnumSearches (IShellFolder2 * iface, - IEnumExtraSearch ** ppenum) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI -IShellFolder_fnGetDefaultColumn (IShellFolder2 * iface, DWORD dwRes, - ULONG * pSort, ULONG * pDisplay) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - TRACE ("(%p)\n", This); - - if (pSort) - *pSort = 0; - if (pDisplay) - *pDisplay = 0; - - return S_OK; -} - -static HRESULT WINAPI -IShellFolder_fnGetDefaultColumnState (IShellFolder2 * iface, UINT iColumn, - DWORD * pcsFlags) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - - TRACE ("(%p)\n", This); - - if (!pcsFlags || iColumn >= GENERICSHELLVIEWCOLUMNS) - return E_INVALIDARG; - - *pcsFlags = GenericSFHeader[iColumn].pcsFlags; - - return S_OK; -} - -static HRESULT WINAPI -IShellFolder_fnGetDetailsEx (IShellFolder2 * iface, LPCITEMIDLIST pidl, - const SHCOLUMNID * pscid, VARIANT * pv) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - FIXME ("(%p)\n", This); - - return E_NOTIMPL; -} - -static HRESULT WINAPI -IShellFolder_fnGetDetailsOf (IShellFolder2 * iface, LPCITEMIDLIST pidl, - UINT iColumn, SHELLDETAILS * psd) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - HRESULT hr = E_FAIL; - - TRACE ("(%p)->(%p %i %p)\n", This, pidl, iColumn, psd); - - if (!psd || iColumn >= GENERICSHELLVIEWCOLUMNS) - return E_INVALIDARG; - - if (!pidl) { - /* the header titles */ - psd->fmt = GenericSFHeader[iColumn].fmt; - psd->cxChar = GenericSFHeader[iColumn].cxChar; - psd->str.uType = STRRET_CSTR; - LoadStringA (shell32_hInstance, GenericSFHeader[iColumn].colnameid, - psd->str.u.cStr, MAX_PATH); - return S_OK; - } else { - hr = S_OK; - psd->str.uType = STRRET_CSTR; - /* the data from the pidl */ - switch (iColumn) { - case 0: /* name */ - hr = IShellFolder_GetDisplayNameOf (iface, pidl, - SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str); - break; - case 1: /* size */ - _ILGetFileSize (pidl, psd->str.u.cStr, MAX_PATH); - break; - case 2: /* type */ - _ILGetFileType (pidl, psd->str.u.cStr, MAX_PATH); - break; - case 3: /* date */ - _ILGetFileDate (pidl, psd->str.u.cStr, MAX_PATH); - break; - case 4: /* attributes */ - _ILGetFileAttributes (pidl, psd->str.u.cStr, MAX_PATH); - break; - } - } - - return hr; -} - -static HRESULT WINAPI -IShellFolder_fnMapColumnToSCID (IShellFolder2 * iface, UINT column, - SHCOLUMNID * pscid) -{ - IGenericSFImpl *This = impl_from_IShellFolder2(iface); - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static const IShellFolder2Vtbl sfvt = -{ - IShellFolder_fnQueryInterface, - IShellFolder_fnAddRef, - IShellFolder_fnRelease, - IShellFolder_fnParseDisplayName, - IShellFolder_fnEnumObjects, - IShellFolder_fnBindToObject, - IShellFolder_fnBindToStorage, - IShellFolder_fnCompareIDs, - IShellFolder_fnCreateViewObject, - IShellFolder_fnGetAttributesOf, - IShellFolder_fnGetUIObjectOf, - IShellFolder_fnGetDisplayNameOf, - IShellFolder_fnSetNameOf, - /* ShellFolder2 */ - IShellFolder_fnGetDefaultSearchGUID, - IShellFolder_fnEnumSearches, - IShellFolder_fnGetDefaultColumn, - IShellFolder_fnGetDefaultColumnState, - IShellFolder_fnGetDetailsEx, - IShellFolder_fnGetDetailsOf, - IShellFolder_fnMapColumnToSCID -}; - -/**************************************************************************** - * ISFHelper for IShellFolder implementation - */ - -static HRESULT WINAPI -ISFHelper_fnQueryInterface (ISFHelper * iface, REFIID riid, LPVOID * ppvObj) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_QueryInterface (This->pUnkOuter, riid, ppvObj); -} - -static ULONG WINAPI ISFHelper_fnAddRef (ISFHelper * iface) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_AddRef (This->pUnkOuter); -} - -static ULONG WINAPI ISFHelper_fnRelease (ISFHelper * iface) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - - TRACE ("(%p)\n", This); - - return IUnknown_Release (This->pUnkOuter); -} - -/**************************************************************************** - * ISFHelper_fnAddFolder - * - * creates a unique folder name - */ - -static HRESULT WINAPI -ISFHelper_fnGetUniqueName (ISFHelper * iface, LPWSTR pwszName, UINT uLen) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - IEnumIDList *penum; - HRESULT hr; - WCHAR wszText[MAX_PATH]; - WCHAR wszNewFolder[25]; - const WCHAR wszFormat[] = {'%','s',' ','%','d',0 }; - - LoadStringW(shell32_hInstance, IDS_NEWFOLDER, wszNewFolder, sizeof(wszNewFolder)/sizeof(WCHAR)); - - TRACE ("(%p)(%p %u)\n", This, pwszName, uLen); - - if (uLen < sizeof(wszNewFolder)/sizeof(WCHAR) + 3) - return E_POINTER; - - lstrcpynW (pwszName, wszNewFolder, uLen); - - hr = IShellFolder_fnEnumObjects (_IShellFolder2_ (This), 0, - SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN, &penum); - if (penum) { - LPITEMIDLIST pidl; - DWORD dwFetched; - int i = 1; - -next: - IEnumIDList_Reset (penum); - while (S_OK == IEnumIDList_Next (penum, 1, &pidl, &dwFetched) && - dwFetched) { - _ILSimpleGetTextW (pidl, wszText, MAX_PATH); - if (0 == lstrcmpiW (wszText, pwszName)) { - _snwprintf (pwszName, uLen, wszFormat, wszNewFolder, i++); - if (i > 99) { - hr = E_FAIL; - break; - } - goto next; - } - } - - IEnumIDList_Release (penum); - } - return hr; -} - -/**************************************************************************** - * ISFHelper_fnAddFolder - * - * adds a new folder. - */ - -static HRESULT WINAPI -ISFHelper_fnAddFolder (ISFHelper * iface, HWND hwnd, LPCWSTR pwszName, - LPITEMIDLIST * ppidlOut) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - WCHAR wszNewDir[MAX_PATH]; - DWORD bRes; - HRESULT hres = E_FAIL; - - TRACE ("(%p)(%s %p)\n", This, debugstr_w(pwszName), ppidlOut); - - wszNewDir[0] = 0; - if (This->sPathTarget) - lstrcpynW(wszNewDir, This->sPathTarget, MAX_PATH); - PathAppendW(wszNewDir, pwszName); - - bRes = CreateDirectoryW (wszNewDir, NULL); - if (bRes) { - SHChangeNotify (SHCNE_MKDIR, SHCNF_PATHW, wszNewDir, NULL); - - hres = S_OK; - - if (ppidlOut) - hres = _ILCreateFromPathW(wszNewDir, ppidlOut); - } else { - WCHAR wszText[128 + MAX_PATH]; - WCHAR wszTempText[128]; - WCHAR wszCaption[256]; - - /* Cannot Create folder because of permissions */ - LoadStringW (shell32_hInstance, IDS_CREATEFOLDER_DENIED, wszTempText, - sizeof (wszTempText)); - LoadStringW (shell32_hInstance, IDS_CREATEFOLDER_CAPTION, wszCaption, - sizeof (wszCaption)); - swprintf (wszText, wszTempText, wszNewDir); - MessageBoxW (hwnd, wszText, wszCaption, MB_OK | MB_ICONEXCLAMATION); - } - - return hres; -} - -/**************************************************************************** - * build_paths_list - * - * Builds a list of paths like the one used in SHFileOperation from a table of - * PIDLs relative to the given base folder - */ -WCHAR *build_paths_list(LPCWSTR wszBasePath, int cidl, LPCITEMIDLIST *pidls) -{ - WCHAR *wszPathsList; - WCHAR *wszListPos; - int iPathLen; - int i; - - iPathLen = wcslen(wszBasePath); - wszPathsList = HeapAlloc(GetProcessHeap(), 0, MAX_PATH*sizeof(WCHAR)*cidl+1); - wszListPos = wszPathsList; - - for (i = 0; i < cidl; i++) { - if (!_ILIsFolder(pidls[i]) && !_ILIsValue(pidls[i])) - continue; - - lstrcpynW(wszListPos, wszBasePath, MAX_PATH); - /* FIXME: abort if path too long */ - _ILSimpleGetTextW(pidls[i], wszListPos+iPathLen, MAX_PATH-iPathLen); - wszListPos += wcslen(wszListPos)+1; - } - *wszListPos=0; - return wszPathsList; -} - -/**************************************************************************** - * ISFHelper_fnDeleteItems - * - * deletes items in folder - */ -static HRESULT WINAPI -ISFHelper_fnDeleteItems (ISFHelper * iface, UINT cidl, LPCITEMIDLIST * apidl) -{ - IGenericSFImpl *This = impl_from_ISFHelper(iface); - UINT i; - SHFILEOPSTRUCTW op; - WCHAR wszPath[MAX_PATH]; - WCHAR *wszPathsList; - HRESULT ret; - WCHAR *wszCurrentPath; - - TRACE ("(%p)(%u %p)\n", This, cidl, apidl); - if (cidl==0) return S_OK; - - if (This->sPathTarget) - lstrcpynW(wszPath, This->sPathTarget, MAX_PATH); - else - wszPath[0] = '\0'; - PathAddBackslashW(wszPath); - wszPathsList = build_paths_list(wszPath, cidl, apidl); - - ZeroMemory(&op, sizeof(op)); - op.hwnd = GetActiveWindow(); - op.wFunc = FO_DELETE; - op.pFrom = wszPathsList; - op.fFlags = FOF_ALLOWUNDO; - if (SHFileOperationW(&op)) - { - WARN("SHFileOperation failed\n"); - ret = E_FAIL; - } - else - ret = S_OK; - - /* we currently need to manually send the notifies */ - wszCurrentPath = wszPathsList; - for (i = 0; i < cidl; i++) - { - LONG wEventId; - - if (_ILIsFolder(apidl[i])) - wEventId = SHCNE_RMDIR; - else if (_ILIsValue(apidl[i])) - wEventId = SHCNE_DELETE; - else - continue; - - /* check if file exists */ - if (GetFileAttributesW(wszCurrentPath) == INVALID_FILE_ATTRIBUTES) - { - LPITEMIDLIST pidl = ILCombine(This->pidlRoot, apidl[i]); - SHChangeNotify(wEventId, SHCNF_IDLIST, pidl, NULL); - SHFree(pidl); - } - - wszCurrentPath += wcslen(wszCurrentPath)+1; - } - HeapFree(GetProcessHeap(), 0, wszPathsList); - return ret; -} - -/**************************************************************************** - * ISFHelper_fnCopyItems - * - * copies items to this folder - */ -static HRESULT WINAPI -ISFHelper_fnCopyItems (ISFHelper * iface, IShellFolder * pSFFrom, UINT cidl, - LPCITEMIDLIST * apidl) -{ - IPersistFolder2 *ppf2 = NULL; - WCHAR szSrcPath[MAX_PATH]; - WCHAR szTargetPath[MAX_PATH]; - SHFILEOPSTRUCTW op; - LPITEMIDLIST pidl; - LPWSTR pszSrc, pszTarget, pszSrcList, pszTargetList, pszFileName; - int res, length; - HRESULT hr; - STRRET strRet; - - IGenericSFImpl *This = impl_from_ISFHelper(iface); - - TRACE ("(%p)->(%p,%u,%p)\n", This, pSFFrom, cidl, apidl); - - hr = IShellFolder_QueryInterface (pSFFrom, &IID_IPersistFolder2, (LPVOID *) & ppf2); - if (SUCCEEDED(hr)) - { - if (FAILED(IPersistFolder2_GetCurFolder (ppf2, &pidl))) - { - IPersistFolder2_Release(ppf2); - return E_FAIL; - } - IPersistFolder2_Release(ppf2); - - if (FAILED(IShellFolder_GetDisplayNameOf(pSFFrom, pidl, SHGDN_FORPARSING, &strRet))) - { - SHFree (pidl); - return E_FAIL; - } - - if (FAILED(StrRetToBufW(&strRet, pidl, szSrcPath, MAX_PATH))) - { - SHFree (pidl); - return E_FAIL; - } - SHFree (pidl); - - pszSrc = PathAddBackslashW (szSrcPath); - - wcscpy(szTargetPath, This->sPathTarget); - pszTarget = PathAddBackslashW (szTargetPath); - - pszSrcList = build_paths_list(szSrcPath, cidl, apidl); - pszTargetList = build_paths_list(szTargetPath, cidl, apidl); - - if (!pszSrcList || !pszTargetList) - { - if (pszSrcList) - HeapFree(GetProcessHeap(), 0, pszSrcList); - - if (pszTargetList) - HeapFree(GetProcessHeap(), 0, pszTargetList); - - SHFree (pidl); - IPersistFolder2_Release (ppf2); - return E_OUTOFMEMORY; - } - ZeroMemory(&op, sizeof(op)); - if (!pszSrcList[0]) - { - /* remove trailing backslash */ - pszSrc--; - pszSrc[0] = L'\0'; - op.pFrom = szSrcPath; - } - else - { - op.pFrom = pszSrcList; - } - - if (!pszTargetList[0]) - { - /* remove trailing backslash */ - if (pszTarget - szTargetPath > 3) - { - pszTarget--; - pszTarget[0] = L'\0'; - } - else - { - pszTarget[1] = L'\0'; - } - - op.pTo = szTargetPath; - } - else - { - op.pTo = pszTargetList; - } - op.hwnd = GetActiveWindow(); - op.wFunc = FO_COPY; - op.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMMKDIR; - - res = SHFileOperationW(&op); - - if (res == DE_SAMEFILE) - { - length = wcslen(szTargetPath); - - pszFileName = wcsrchr(pszSrcList, '\\'); - pszFileName++; - - if (LoadStringW(shell32_hInstance, IDS_COPY_OF, pszTarget, MAX_PATH - length)) - { - wcscat(szTargetPath, L" "); - } - - wcscat(szTargetPath, pszFileName); - op.pTo = szTargetPath; - - res = SHFileOperationW(&op); - } - - HeapFree(GetProcessHeap(), 0, pszSrcList); - HeapFree(GetProcessHeap(), 0, pszTargetList); - - if (res) - return E_FAIL; - else - return S_OK; - } - return E_FAIL; -} - -static const ISFHelperVtbl shvt = -{ - ISFHelper_fnQueryInterface, - ISFHelper_fnAddRef, - ISFHelper_fnRelease, - ISFHelper_fnGetUniqueName, - ISFHelper_fnAddFolder, - ISFHelper_fnDeleteItems, - ISFHelper_fnCopyItems -}; - -/************************************************************************ - * IFSFldr_PersistFolder3_QueryInterface - * - */ -static HRESULT WINAPI -IFSFldr_PersistFolder3_QueryInterface (IPersistFolder3 * iface, REFIID iid, - LPVOID * ppvObj) -{ - IGenericSFImpl *This = impl_from_IPersistFolder3(iface); - - TRACE ("(%p)\n", This); - - return IUnknown_QueryInterface (This->pUnkOuter, iid, ppvObj); -} - -/************************************************************************ - * IFSFldr_PersistFolder3_AddRef - * - */ -static ULONG WINAPI -IFSFldr_PersistFolder3_AddRef (IPersistFolder3 * iface) -{ - IGenericSFImpl *This = impl_from_IPersistFolder3(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_AddRef (This->pUnkOuter); -} - -/************************************************************************ - * IFSFldr_PersistFolder3_Release - * - */ -static ULONG WINAPI -IFSFldr_PersistFolder3_Release (IPersistFolder3 * iface) -{ - IGenericSFImpl *This = impl_from_IPersistFolder3(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_Release (This->pUnkOuter); -} - -/************************************************************************ - * IFSFldr_PersistFolder3_GetClassID - */ -static HRESULT WINAPI -IFSFldr_PersistFolder3_GetClassID (IPersistFolder3 * iface, CLSID * lpClassId) -{ - IGenericSFImpl *This = impl_from_IPersistFolder3(iface); - - TRACE ("(%p)\n", This); - - if (!lpClassId) - return E_POINTER; - *lpClassId = *This->pclsid; - - return S_OK; -} - -/************************************************************************ - * IFSFldr_PersistFolder3_Initialize - * - * NOTES - * sPathTarget is not set. Don't know how to handle in a non rooted environment. - */ -static HRESULT WINAPI -IFSFldr_PersistFolder3_Initialize (IPersistFolder3 * iface, LPCITEMIDLIST pidl) -{ - WCHAR wszTemp[MAX_PATH]; - - IGenericSFImpl *This = impl_from_IPersistFolder3(iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - SHFree (This->pidlRoot); /* free the old pidl */ - This->pidlRoot = ILClone (pidl); /* set my pidl */ - - SHFree (This->sPathTarget); - This->sPathTarget = NULL; - - /* set my path */ - if (SHGetPathFromIDListW (pidl, wszTemp)) { - int len = wcslen(wszTemp); - This->sPathTarget = SHAlloc((len + 1) * sizeof(WCHAR)); - if (!This->sPathTarget) - return E_OUTOFMEMORY; - memcpy(This->sPathTarget, wszTemp, (len + 1) * sizeof(WCHAR)); - } - - TRACE ("--(%p)->(%s)\n", This, debugstr_w(This->sPathTarget)); - return S_OK; -} - -/************************************************************************** - * IFSFldr_PersistFolder3_GetCurFolder - */ -static HRESULT WINAPI -IFSFldr_PersistFolder3_fnGetCurFolder (IPersistFolder3 * iface, - LPITEMIDLIST * pidl) -{ - IGenericSFImpl *This = impl_from_IPersistFolder3(iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - if (!pidl) return E_POINTER; - *pidl = ILClone (This->pidlRoot); - return S_OK; -} - -/************************************************************************** - * IFSFldr_PersistFolder3_InitializeEx - * - * FIXME: error handling - */ -static HRESULT WINAPI -IFSFldr_PersistFolder3_InitializeEx (IPersistFolder3 * iface, - IBindCtx * pbc, LPCITEMIDLIST pidlRoot, - const PERSIST_FOLDER_TARGET_INFO * ppfti) -{ - WCHAR wszTemp[MAX_PATH]; - - IGenericSFImpl *This = impl_from_IPersistFolder3(iface); - - TRACE ("(%p)->(%p,%p,%p)\n", This, pbc, pidlRoot, ppfti); - if (ppfti) - TRACE ("--%p %s %s 0x%08x 0x%08x\n", - ppfti->pidlTargetFolder, debugstr_w (ppfti->szTargetParsingName), - debugstr_w (ppfti->szNetworkProvider), ppfti->dwAttributes, - ppfti->csidl); - - pdump (pidlRoot); - if (ppfti && ppfti->pidlTargetFolder) - pdump (ppfti->pidlTargetFolder); - - if (This->pidlRoot) - __SHFreeAndNil (&This->pidlRoot); /* free the old */ - if (This->sPathTarget) - __SHFreeAndNil (&This->sPathTarget); - - /* - * Root path and pidl - */ - This->pidlRoot = ILClone (pidlRoot); - - /* - * the target folder is spezified in csidl OR pidlTargetFolder OR - * szTargetParsingName - */ - if (ppfti) { - if (ppfti->csidl != -1) { - if (SHGetSpecialFolderPathW (0, wszTemp, ppfti->csidl, - ppfti->csidl & CSIDL_FLAG_CREATE)) { - int len = wcslen(wszTemp); - This->sPathTarget = SHAlloc((len + 1) * sizeof(WCHAR)); - if (!This->sPathTarget) - return E_OUTOFMEMORY; - memcpy(This->sPathTarget, wszTemp, (len + 1) * sizeof(WCHAR)); - } - } else if (ppfti->szTargetParsingName[0]) { - int len = wcslen(ppfti->szTargetParsingName); - This->sPathTarget = SHAlloc((len + 1) * sizeof(WCHAR)); - if (!This->sPathTarget) - return E_OUTOFMEMORY; - memcpy(This->sPathTarget, ppfti->szTargetParsingName, - (len + 1) * sizeof(WCHAR)); - } else if (ppfti->pidlTargetFolder) { - if (SHGetPathFromIDListW(ppfti->pidlTargetFolder, wszTemp)) { - int len = wcslen(wszTemp); - This->sPathTarget = SHAlloc((len + 1) * sizeof(WCHAR)); - if (!This->sPathTarget) - return E_OUTOFMEMORY; - memcpy(This->sPathTarget, wszTemp, (len + 1) * sizeof(WCHAR)); - } - } - } - - TRACE ("--(%p)->(target=%s)\n", This, debugstr_w(This->sPathTarget)); - pdump (This->pidlRoot); - return (This->sPathTarget) ? S_OK : E_FAIL; -} - -static HRESULT WINAPI -IFSFldr_PersistFolder3_GetFolderTargetInfo (IPersistFolder3 * iface, - PERSIST_FOLDER_TARGET_INFO * ppfti) -{ - IGenericSFImpl *This = impl_from_IPersistFolder3(iface); - FIXME ("(%p)->(%p)\n", This, ppfti); - ZeroMemory (ppfti, sizeof (*ppfti)); - return E_NOTIMPL; -} - -static const IPersistFolder3Vtbl vt_FSFldr_PersistFolder3 = -{ - IFSFldr_PersistFolder3_QueryInterface, - IFSFldr_PersistFolder3_AddRef, - IFSFldr_PersistFolder3_Release, - IFSFldr_PersistFolder3_GetClassID, - IFSFldr_PersistFolder3_Initialize, - IFSFldr_PersistFolder3_fnGetCurFolder, - IFSFldr_PersistFolder3_InitializeEx, - IFSFldr_PersistFolder3_GetFolderTargetInfo -}; - -/**************************************************************************** - * ISFDropTarget implementation - */ -static BOOL -ISFDropTarget_QueryDrop (IDropTarget * iface, DWORD dwKeyState, - LPDWORD pdwEffect) -{ - DWORD dwEffect = *pdwEffect; - - IGenericSFImpl *This = impl_from_IDropTarget(iface); - - *pdwEffect = DROPEFFECT_NONE; - - if (This->fAcceptFmt) { /* Does our interpretation of the keystate ... */ - *pdwEffect = KeyStateToDropEffect (dwKeyState); - - /* ... matches the desired effect ? */ - if (dwEffect & *pdwEffect) { - return TRUE; - } - } - return FALSE; -} - -static HRESULT WINAPI -ISFDropTarget_QueryInterface (IDropTarget * iface, REFIID riid, LPVOID * ppvObj) -{ - IGenericSFImpl *This = impl_from_IDropTarget(iface); - - TRACE ("(%p)\n", This); - - return IUnknown_QueryInterface (This->pUnkOuter, riid, ppvObj); -} - -static ULONG WINAPI ISFDropTarget_AddRef (IDropTarget * iface) -{ - IGenericSFImpl *This = impl_from_IDropTarget(iface); - - TRACE ("(%p)\n", This); - - return IUnknown_AddRef (This->pUnkOuter); -} - -static ULONG WINAPI ISFDropTarget_Release (IDropTarget * iface) -{ - IGenericSFImpl *This = impl_from_IDropTarget(iface); - - TRACE ("(%p)\n", This); - - return IUnknown_Release (This->pUnkOuter); -} - -static HRESULT WINAPI -ISFDropTarget_DragEnter (IDropTarget * iface, IDataObject * pDataObject, - DWORD dwKeyState, POINTL pt, DWORD * pdwEffect) -{ - FORMATETC fmt; - - IGenericSFImpl *This = impl_from_IDropTarget(iface); - - TRACE ("(%p)->(DataObject=%p)\n", This, pDataObject); - - InitFormatEtc (fmt, This->cfShellIDList, TYMED_HGLOBAL); - - This->fAcceptFmt = (S_OK == IDataObject_QueryGetData (pDataObject, &fmt)) ? - TRUE : FALSE; - - ISFDropTarget_QueryDrop (iface, dwKeyState, pdwEffect); - - return S_OK; -} - -static HRESULT WINAPI -ISFDropTarget_DragOver (IDropTarget * iface, DWORD dwKeyState, POINTL pt, - DWORD * pdwEffect) -{ - IGenericSFImpl *This = impl_from_IDropTarget(iface); - - TRACE ("(%p)\n", This); - - if (!pdwEffect) - return E_INVALIDARG; - - ISFDropTarget_QueryDrop (iface, dwKeyState, pdwEffect); - - return S_OK; -} - -static HRESULT WINAPI ISFDropTarget_DragLeave (IDropTarget * iface) -{ - IGenericSFImpl *This = impl_from_IDropTarget(iface); - - TRACE ("(%p)\n", This); - - This->fAcceptFmt = FALSE; - - return S_OK; -} - -static HRESULT WINAPI -ISFDropTarget_Drop (IDropTarget * iface, IDataObject * pDataObject, - DWORD dwKeyState, POINTL pt, DWORD * pdwEffect) -{ - IGenericSFImpl *This = impl_from_IDropTarget(iface); - - FIXME ("(%p) object dropped\n", This); - - return E_NOTIMPL; -} - -static const IDropTargetVtbl dtvt = { - ISFDropTarget_QueryInterface, - ISFDropTarget_AddRef, - ISFDropTarget_Release, - ISFDropTarget_DragEnter, - ISFDropTarget_DragOver, - ISFDropTarget_DragLeave, - ISFDropTarget_Drop -}; diff --git a/reactos/dll/win32/shell32/shfldr_mycomp.c b/reactos/dll/win32/shell32/shfldr_mycomp.c deleted file mode 100644 index 8a80035db23..00000000000 --- a/reactos/dll/win32/shell32/shfldr_mycomp.c +++ /dev/null @@ -1,1038 +0,0 @@ -/* - * Virtual Workplace folder - * - * Copyright 1997 Marcus Meissner - * Copyright 1998, 1999, 2002 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL (shell); - -/*********************************************************************** -* IShellFolder implementation -*/ - -typedef struct { - const IShellFolder2Vtbl *lpVtbl; - LONG ref; - const IPersistFolder2Vtbl *lpVtblPersistFolder2; - - /* both paths are parsible from the desktop */ - LPITEMIDLIST pidlRoot; /* absolute pidl */ - LPWSTR sName; -} IGenericSFImpl, *LPIGenericSFImpl; - -static const IShellFolder2Vtbl vt_ShellFolder2; -static const IPersistFolder2Vtbl vt_PersistFolder2; - -static LPIGenericSFImpl __inline impl_from_IPersistFolder2( IPersistFolder2 *iface ) -{ - return (LPIGenericSFImpl)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpVtblPersistFolder2)); -} - - -/* - converts This to an interface pointer -*/ -#define _IUnknown_(This) (IUnknown*)&(This->lpVtbl) -#define _IShellFolder_(This) (IShellFolder*)&(This->lpVtbl) -#define _IShellFolder2_(This) (IShellFolder2*)&(This->lpVtbl) - -#define _IPersist_(This) (IPersist*)&(This->lpVtblPersistFolder2) -#define _IPersistFolder_(This) (IPersistFolder*)&(This->lpVtblPersistFolder2) -#define _IPersistFolder2_(This) (IPersistFolder2*)&(This->lpVtblPersistFolder2) - -/*********************************************************************** -* IShellFolder [MyComputer] implementation -*/ - -static const shvheader MyComputerSFHeader[] = { - {IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN6, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN7, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, -}; - -#define MYCOMPUTERSHELLVIEWCOLUMNS 4 - -/************************************************************************** -* ISF_MyComputer_Constructor -*/ -HRESULT WINAPI ISF_MyComputer_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) -{ - IGenericSFImpl *sf; - DWORD dwSize; - WCHAR szName[MAX_PATH]; - TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid)); - - if (!ppv) - return E_POINTER; - if (pUnkOuter) - return CLASS_E_NOAGGREGATION; - - sf = LocalAlloc (LMEM_ZEROINIT, sizeof (IGenericSFImpl)); - if (!sf) - return E_OUTOFMEMORY; - - sf->ref = 0; - sf->lpVtbl = &vt_ShellFolder2; - sf->lpVtblPersistFolder2 = &vt_PersistFolder2; - sf->pidlRoot = _ILCreateMyComputer (); /* my qualified pidl */ - - if (FAILED (IUnknown_QueryInterface (_IUnknown_ (sf), riid, ppv))) - { - IUnknown_Release (_IUnknown_ (sf)); - return E_NOINTERFACE; - } - - dwSize = sizeof(szName); - if (RegGetValueW(HKEY_CURRENT_USER, - L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}", - NULL, - RRF_RT_REG_SZ, - NULL, - szName, - &dwSize) == ERROR_SUCCESS) - { - szName[MAX_PATH-1] = 0; - sf->sName = SHAlloc((wcslen(szName)+1) * sizeof(WCHAR)); - if (sf->sName) - { - wcscpy( sf->sName, szName ); - } - TRACE("sName %s\n", debugstr_w(sf->sName)); - } - - TRACE ("--(%p)\n", sf); - return S_OK; -} - -/************************************************************************** - * ISF_MyComputer_fnQueryInterface - * - * NOTES supports not IPersist/IPersistFolder - */ -static HRESULT WINAPI ISF_MyComputer_fnQueryInterface (IShellFolder2 *iface, - REFIID riid, LPVOID *ppvObj) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); - - *ppvObj = NULL; - - if (IsEqualIID (riid, &IID_IUnknown) || - IsEqualIID (riid, &IID_IShellFolder) || - IsEqualIID (riid, &IID_IShellFolder2)) - { - *ppvObj = This; - } - else if (IsEqualIID (riid, &IID_IPersist) || - IsEqualIID (riid, &IID_IPersistFolder) || - IsEqualIID (riid, &IID_IPersistFolder2)) - { - *ppvObj = _IPersistFolder2_ (This); - } - - if (*ppvObj) - { - IUnknown_AddRef ((IUnknown *) (*ppvObj)); - TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj); - return S_OK; - } - TRACE ("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI ISF_MyComputer_fnAddRef (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI ISF_MyComputer_fnRelease (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount + 1); - - if (!refCount) - { - TRACE ("-- destroying IShellFolder(%p)\n", This); - SHFree (This->pidlRoot); - LocalFree (This); - } - return refCount; -} - -/************************************************************************** -* ISF_MyComputer_fnParseDisplayName -*/ -static HRESULT WINAPI ISF_MyComputer_fnParseDisplayName (IShellFolder2 *iface, - HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, - DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - HRESULT hr = E_INVALIDARG; - LPCWSTR szNext = NULL; - WCHAR szElement[MAX_PATH]; - LPITEMIDLIST pidlTemp = NULL; - CLSID clsid; - - TRACE("(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n", This, - hwndOwner, pbc, lpszDisplayName, debugstr_w (lpszDisplayName), - pchEaten, ppidl, pdwAttributes); - - *ppidl = 0; - if (pchEaten) - *pchEaten = 0; /* strange but like the original */ - - /* handle CLSID paths */ - if (lpszDisplayName[0] == ':' && lpszDisplayName[1] == ':') - { - szNext = GetNextElementW (lpszDisplayName, szElement, MAX_PATH); - TRACE ("-- element: %s\n", debugstr_w (szElement)); - CLSIDFromString (szElement + 2, &clsid); - pidlTemp = _ILCreateGuid (PT_GUID, &clsid); - } - /* do we have an absolute path name ? */ - else if (PathGetDriveNumberW (lpszDisplayName) >= 0 && - lpszDisplayName[2] == (WCHAR) '\\') - { - szNext = GetNextElementW (lpszDisplayName, szElement, MAX_PATH); - /* make drive letter uppercase to enable PIDL comparison */ - szElement[0] = toupper(szElement[0]); - pidlTemp = _ILCreateDrive (szElement); - } - - if (szNext && *szNext) - { - hr = SHELL32_ParseNextElement (iface, hwndOwner, pbc, &pidlTemp, - (LPOLESTR) szNext, pchEaten, pdwAttributes); - } - else - { - if (pdwAttributes && *pdwAttributes) - SHELL32_GetItemAttributes (_IShellFolder_ (This), - pidlTemp, pdwAttributes); - hr = S_OK; - } - - *ppidl = pidlTemp; - - TRACE ("(%p)->(-- ret=0x%08x)\n", This, hr); - - return hr; -} - -/************************************************************************** - * CreateMyCompEnumList() - */ -static const WCHAR MyComputer_NameSpaceW[] = { 'S','O','F','T','W','A','R','E', - '\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','E','x','p','l', - 'o','r','e','r','\\','M','y','C','o','m','p','u','t','e','r','\\','N','a','m', - 'e','s','p','a','c','e','\0' }; - -static BOOL CreateMyCompEnumList(IEnumIDList *list, DWORD dwFlags) -{ - BOOL ret = TRUE; - - TRACE("(%p)->(flags=0x%08x)\n", list, dwFlags); - - /* enumerate the folders */ - if (dwFlags & SHCONTF_FOLDERS) - { - WCHAR wszDriveName[] = {'A', ':', '\\', '\0'}; - DWORD dwDrivemap = GetLogicalDrives(); - HKEY hkey; - UINT i; - - while (ret && wszDriveName[0]<='Z') - { - if(dwDrivemap & 0x00000001L) - ret = AddToEnumList(list, _ILCreateDrive(wszDriveName)); - wszDriveName[0]++; - dwDrivemap = dwDrivemap >> 1; - } - - TRACE("-- (%p)-> enumerate (mycomputer shell extensions)\n",list); - for (i=0; i<2; i++) { - if (ret && !RegOpenKeyExW(i == 0 ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER, - MyComputer_NameSpaceW, 0, KEY_READ, &hkey)) - { - WCHAR iid[50]; - int i=0; - - while (ret) - { - DWORD size; - LONG r; - - size = sizeof(iid) / sizeof(iid[0]); - r = RegEnumKeyExW(hkey, i, iid, &size, 0, NULL, NULL, NULL); - if (ERROR_SUCCESS == r) - { - /* FIXME: shell extensions, shouldn't the type be - * PT_SHELLEXT? */ - ret = AddToEnumList(list, _ILCreateGuidFromStrW(iid)); - i++; - } - else if (ERROR_NO_MORE_ITEMS == r) - break; - else - ret = FALSE; - } - RegCloseKey(hkey); - } - } - } - return ret; -} - -/************************************************************************** -* ISF_MyComputer_fnEnumObjects -*/ -static HRESULT WINAPI ISF_MyComputer_fnEnumObjects (IShellFolder2 *iface, - HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE("(%p)->(HWND=%p flags=0x%08x pplist=%p)\n", This, - hwndOwner, dwFlags, ppEnumIDList); - - *ppEnumIDList = IEnumIDList_Constructor(); - if (*ppEnumIDList) - CreateMyCompEnumList(*ppEnumIDList, dwFlags); - - TRACE ("-- (%p)->(new ID List: %p)\n", This, *ppEnumIDList); - - return (*ppEnumIDList) ? S_OK : E_OUTOFMEMORY; -} - -/************************************************************************** -* ISF_MyComputer_fnBindToObject -*/ -static HRESULT WINAPI ISF_MyComputer_fnBindToObject (IShellFolder2 *iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE("(%p)->(pidl=%p,%p,%s,%p)\n", This, - pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - return SHELL32_BindToChild (This->pidlRoot, NULL, pidl, riid, ppvOut); -} - -/************************************************************************** -* ISF_MyComputer_fnBindToStorage -*/ -static HRESULT WINAPI ISF_MyComputer_fnBindToStorage (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME("(%p)->(pidl=%p,%p,%s,%p) stub\n", This, - pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - *ppvOut = NULL; - return E_NOTIMPL; -} - -/************************************************************************** -* ISF_MyComputer_fnCompareIDs -*/ - -static HRESULT WINAPI ISF_MyComputer_fnCompareIDs (IShellFolder2 *iface, - LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - int nReturn; - - TRACE ("(%p)->(0x%08lx,pidl1=%p,pidl2=%p)\n", This, lParam, pidl1, pidl2); - nReturn = SHELL32_CompareIDs (_IShellFolder_ (This), lParam, pidl1, pidl2); - TRACE ("-- %i\n", nReturn); - return nReturn; -} - -/************************************************************************** -* ISF_MyComputer_fnCreateViewObject -*/ -static HRESULT WINAPI ISF_MyComputer_fnCreateViewObject (IShellFolder2 *iface, - HWND hwndOwner, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - LPSHELLVIEW pShellView; - HRESULT hr = E_INVALIDARG; - - TRACE("(%p)->(hwnd=%p,%s,%p)\n", This, - hwndOwner, shdebugstr_guid (riid), ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IDropTarget)) - { - WARN ("IDropTarget not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IContextMenu)) - { - WARN ("IContextMenu not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IShellView)) - { - pShellView = IShellView_Constructor ((IShellFolder *) iface); - if (pShellView) - { - hr = IShellView_QueryInterface (pShellView, riid, ppvOut); - IShellView_Release (pShellView); - } - } - TRACE ("-- (%p)->(interface=%p)\n", This, ppvOut); - return hr; -} - -/************************************************************************** -* ISF_MyComputer_fnGetAttributesOf -*/ -static HRESULT WINAPI ISF_MyComputer_fnGetAttributesOf (IShellFolder2 * iface, - UINT cidl, LPCITEMIDLIST * apidl, DWORD * rgfInOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - HRESULT hr = S_OK; - static const DWORD dwComputerAttributes = - SFGAO_STORAGE | SFGAO_HASPROPSHEET | SFGAO_STORAGEANCESTOR | SFGAO_CANCOPY | - SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_FILESYSTEM | SFGAO_HASSUBFOLDER | SFGAO_CANRENAME | SFGAO_CANDELETE; - - TRACE ("(%p)->(cidl=%d apidl=%p mask=%p (0x%08x))\n", - This, cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0); - - if (!rgfInOut) - return E_INVALIDARG; - if (cidl && !apidl) - return E_INVALIDARG; - - if (*rgfInOut == 0) - *rgfInOut = ~0; - - if(cidl == 0) { - *rgfInOut &= dwComputerAttributes; - } else { - while (cidl > 0 && *apidl) { - pdump (*apidl); - SHELL32_GetItemAttributes (_IShellFolder_ (This), *apidl, rgfInOut); - apidl++; - cidl--; - } - } - /* make sure SFGAO_VALIDATE is cleared, some apps depend on that */ - *rgfInOut &= ~SFGAO_VALIDATE; - - TRACE ("-- result=0x%08x\n", *rgfInOut); - return hr; -} - -/************************************************************************** -* ISF_MyComputer_fnGetUIObjectOf -* -* PARAMETERS -* hwndOwner [in] Parent window for any output -* cidl [in] array size -* apidl [in] simple pidl array -* riid [in] Requested Interface -* prgfInOut [ ] reserved -* ppvObject [out] Resulting Interface -* -*/ -static HRESULT WINAPI ISF_MyComputer_fnGetUIObjectOf (IShellFolder2 * iface, - HWND hwndOwner, UINT cidl, LPCITEMIDLIST * apidl, REFIID riid, - UINT * prgfInOut, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - LPITEMIDLIST pidl; - IUnknown *pObj = NULL; - HRESULT hr = E_INVALIDARG; - - TRACE("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n", This, - hwndOwner, cidl, apidl, shdebugstr_guid (riid), prgfInOut, ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IContextMenu) && (cidl >= 1)) - { - hr = CDefFolderMenu_Create2(This->pidlRoot, hwndOwner, cidl, apidl, (IShellFolder*)iface, NULL, 0, NULL, (IContextMenu**)&pObj); - } - else if (IsEqualIID (riid, &IID_IDataObject) && (cidl >= 1)) - { - pObj = (LPUNKNOWN) IDataObject_Constructor (hwndOwner, - This->pidlRoot, apidl, cidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconA) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconA_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconW) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconW_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IDropTarget) && (cidl >= 1)) - { - hr = IShellFolder_QueryInterface (iface, &IID_IDropTarget, - (LPVOID *) &pObj); - } - else if ((IsEqualIID(riid,&IID_IShellLinkW) || - IsEqualIID(riid,&IID_IShellLinkA)) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - hr = IShellLink_ConstructFromFile(NULL, riid, pidl, (LPVOID*) &pObj); - SHFree (pidl); - } - else - hr = E_NOINTERFACE; - - if (SUCCEEDED(hr) && !pObj) - hr = E_OUTOFMEMORY; - - *ppvOut = pObj; - TRACE ("(%p)->hr=0x%08x\n", This, hr); - return hr; -} - -/************************************************************************** -* ISF_MyComputer_fnGetDisplayNameOf -*/ -static HRESULT WINAPI ISF_MyComputer_fnGetDisplayNameOf (IShellFolder2 *iface, - LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - LPWSTR pszPath; - HRESULT hr = S_OK; - - TRACE ("(%p)->(pidl=%p,0x%08x,%p)\n", This, pidl, dwFlags, strRet); - pdump (pidl); - - if (!strRet) - return E_INVALIDARG; - - pszPath = CoTaskMemAlloc((MAX_PATH +1) * sizeof(WCHAR)); - if (!pszPath) - return E_OUTOFMEMORY; - - pszPath[0] = 0; - - if (!pidl->mkid.cb) - { - /* parsing name like ::{...} */ - pszPath[0] = ':'; - pszPath[1] = ':'; - SHELL32_GUIDToStringW(&CLSID_MyComputer, &pszPath[2]); - } - else if (_ILIsPidlSimple(pidl)) - { - /* take names of special folders only if its only this folder */ - if (_ILIsSpecialFolder(pidl)) - { - GUID const *clsid; - - clsid = _ILGetGUIDPointer (pidl); - if (clsid) - { - if (GET_SHGDN_FOR (dwFlags) & SHGDN_FORPARSING) - { - static const WCHAR clsidW[] = - { 'C','L','S','I','D','\\',0 }; - static const WCHAR shellfolderW[] = - { '\\','s','h','e','l','l','f','o','l','d','e','r',0 }; - static const WCHAR wantsForParsingW[] = - { 'W','a','n','t','s','F','o','r','P','a','r','s','i','n', - 'g',0 }; - int bWantsForParsing = FALSE; - WCHAR szRegPath[100]; - LONG r; - - /* - * We can only get a filesystem path from a shellfolder - * if the value WantsFORPARSING exists in - * CLSID\\{...}\\shellfolder - * exception: the MyComputer folder has this keys not - * but like any filesystem backed - * folder it needs these behaviour - * - * Get the "WantsFORPARSING" flag from the registry - */ - - wcscpy (szRegPath, clsidW); - SHELL32_GUIDToStringW (clsid, &szRegPath[6]); - wcscat (szRegPath, shellfolderW); - r = SHGetValueW (HKEY_CLASSES_ROOT, szRegPath, - wantsForParsingW, NULL, NULL, NULL); - if (r == ERROR_SUCCESS) - bWantsForParsing = TRUE; - - if ((GET_SHGDN_RELATION (dwFlags) == SHGDN_NORMAL) && - bWantsForParsing) - { - /* - * We need the filesystem path to the destination folder - * Only the folder itself can know it - */ - hr = SHELL32_GetDisplayNameOfChild (iface, pidl, - dwFlags, pszPath, MAX_PATH); - } - else - { - LPWSTR p = pszPath; - - /* parsing name like ::{...} */ - p[0] = ':'; - p[1] = ':'; - p += 2; - p += SHELL32_GUIDToStringW(&CLSID_MyComputer, p); - - /* \:: */ - p[0] = '\\'; - p[1] = ':'; - p[2] = ':'; - p += 3; - SHELL32_GUIDToStringW(clsid, p); - } - } - else - { - /* user friendly name */ - - if (_ILIsMyComputer(pidl) && This->sName) - wcscpy(pszPath, This->sName); - else - HCR_GetClassNameW (clsid, pszPath, MAX_PATH); - - TRACE("pszPath %s\n", debugstr_w(pszPath)); - } - } - else - { - /* append my own path */ - _ILSimpleGetTextW (pidl, pszPath, MAX_PATH); - } - } - else if (_ILIsDrive(pidl)) - { - - _ILSimpleGetTextW (pidl, pszPath, MAX_PATH); /* append my own path */ - /* long view "lw_name (C:)" */ - if (!(dwFlags & SHGDN_FORPARSING)) - { - WCHAR wszDrive[18] = {0}; - DWORD dwVolumeSerialNumber, dwMaximumComponentLength, dwFileSystemFlags; - static const WCHAR wszOpenBracket[] = {' ','(',0}; - static const WCHAR wszCloseBracket[] = {')',0}; - - lstrcpynW(wszDrive, pszPath, 4); - pszPath[0] = L'\0'; - GetVolumeInformationW (wszDrive, pszPath, - MAX_PATH - 7, - &dwVolumeSerialNumber, - &dwMaximumComponentLength, &dwFileSystemFlags, NULL, 0); - pszPath[MAX_PATH-1] = L'\0'; - if (!wcslen(pszPath)) - { - UINT DriveType, ResourceId; - DriveType = GetDriveTypeW(wszDrive); - switch(DriveType) - { - case DRIVE_FIXED: - ResourceId = IDS_DRIVE_FIXED; - break; - case DRIVE_REMOTE: - ResourceId = IDS_DRIVE_NETWORK; - break; - case DRIVE_CDROM: - ResourceId = IDS_DRIVE_CDROM; - break; - default: - ResourceId = 0; - } - if (ResourceId) - { - dwFileSystemFlags = LoadStringW(shell32_hInstance, ResourceId, pszPath, MAX_PATH); - if (dwFileSystemFlags > MAX_PATH - 7) - pszPath[MAX_PATH-7] = L'\0'; - } - } - wcscat (pszPath, wszOpenBracket); - wszDrive[2] = L'\0'; - wcscat (pszPath, wszDrive); - wcscat (pszPath, wszCloseBracket); - } - } - else - { - /* Neither a shell namespace extension nor a drive letter. */ - ERR("Wrong pidl type\n"); - CoTaskMemFree(pszPath); - return E_INVALIDARG; - } - } - else - { - /* Complex pidl. Let the child folder do the work */ - hr = SHELL32_GetDisplayNameOfChild(iface, pidl, dwFlags, pszPath, MAX_PATH); - } - - if (SUCCEEDED (hr)) - { - strRet->uType = STRRET_WSTR; - strRet->u.pOleStr = pszPath; - } - else - CoTaskMemFree(pszPath); - - TRACE ("-- (%p)->(%s)\n", This, strRet->uType == STRRET_CSTR ? strRet->u.cStr : debugstr_w(strRet->u.pOleStr)); - return hr; -} - -/************************************************************************** -* ISF_MyComputer_fnSetNameOf -* Changes the name of a file object or subfolder, possibly changing its item -* identifier in the process. -* -* PARAMETERS -* hwndOwner [in] Owner window for output -* pidl [in] simple pidl of item to change -* lpszName [in] the items new display name -* dwFlags [in] SHGNO formatting flags -* ppidlOut [out] simple pidl returned -*/ -static HRESULT WINAPI ISF_MyComputer_fnSetNameOf ( - IShellFolder2 * iface, HWND hwndOwner, LPCITEMIDLIST pidl, - LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST * pPidlOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - LPWSTR sName; - HKEY hKey; - UINT length; - WCHAR szName[30]; - - TRACE ("(%p)->(%p,pidl=%p,%s,%u,%p)\n", This, - hwndOwner, pidl, debugstr_w (lpName), dwFlags, pPidlOut); - - if (_ILIsDrive(pidl)) - { - if (_ILSimpleGetTextW(pidl, szName, sizeof(szName)/sizeof(WCHAR))) - { - SetVolumeLabelW(szName, lpName); - } - if (pPidlOut) - *pPidlOut = _ILCreateDrive(szName); - return S_OK; - } - - - if (pPidlOut != NULL) - { - *pPidlOut = _ILCreateMyComputer(); - } - - length = (wcslen(lpName)+1) * sizeof(WCHAR); - sName = SHAlloc(length); - - if (!sName) - { - return E_OUTOFMEMORY; - } - - if (RegOpenKeyExW(HKEY_CURRENT_USER, - L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}", - 0, - KEY_WRITE, - &hKey) != ERROR_SUCCESS) - { - WARN("Error: failed to open registry key\n"); - } - else - { - RegSetValueExW(hKey, NULL, 0, REG_SZ, (const LPBYTE)lpName, length); - RegCloseKey(hKey); - } - - wcscpy(sName, lpName); - SHFree(This->sName); - This->sName = sName; - TRACE("result %s\n", debugstr_w(This->sName)); - return S_OK; -} - -static HRESULT WINAPI ISF_MyComputer_fnGetDefaultSearchGUID ( - IShellFolder2 * iface, GUID * pguid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} -static HRESULT WINAPI ISF_MyComputer_fnEnumSearches ( - IShellFolder2 * iface, IEnumExtraSearch ** ppenum) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} -static HRESULT WINAPI ISF_MyComputer_fnGetDefaultColumn ( - IShellFolder2 *iface, DWORD dwRes, ULONG *pSort, ULONG *pDisplay) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)\n", This); - - if (pSort) - *pSort = 0; - if (pDisplay) - *pDisplay = 0; - return S_OK; -} -static HRESULT WINAPI ISF_MyComputer_fnGetDefaultColumnState ( - IShellFolder2 * iface, UINT iColumn, DWORD * pcsFlags) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)\n", This); - - if (!pcsFlags || iColumn >= MYCOMPUTERSHELLVIEWCOLUMNS) - return E_INVALIDARG; - *pcsFlags = MyComputerSFHeader[iColumn].pcsFlags; - return S_OK; -} - -static HRESULT WINAPI ISF_MyComputer_fnGetDetailsEx (IShellFolder2 * iface, - LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -/* FIXME: drive size >4GB is rolling over */ -static HRESULT WINAPI ISF_MyComputer_fnGetDetailsOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS * psd) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - HRESULT hr; - - TRACE ("(%p)->(%p %i %p)\n", This, pidl, iColumn, psd); - - if (!psd || iColumn >= MYCOMPUTERSHELLVIEWCOLUMNS) - return E_INVALIDARG; - - if (!pidl) - { - psd->fmt = MyComputerSFHeader[iColumn].fmt; - psd->cxChar = MyComputerSFHeader[iColumn].cxChar; - psd->str.uType = STRRET_CSTR; - LoadStringA (shell32_hInstance, MyComputerSFHeader[iColumn].colnameid, - psd->str.u.cStr, MAX_PATH); - return S_OK; - } - else - { - char szPath[MAX_PATH]; - ULARGE_INTEGER ulBytes; - - psd->str.u.cStr[0] = 0x00; - psd->str.uType = STRRET_CSTR; - switch (iColumn) - { - case 0: /* name */ - hr = IShellFolder_GetDisplayNameOf (iface, pidl, - SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str); - break; - case 1: /* type */ - _ILGetFileType (pidl, psd->str.u.cStr, MAX_PATH); - break; - case 2: /* total size */ - if (_ILIsDrive (pidl)) - { - _ILSimpleGetText (pidl, szPath, MAX_PATH); - GetDiskFreeSpaceExA (szPath, NULL, &ulBytes, NULL); - StrFormatByteSizeA (ulBytes.u.LowPart, psd->str.u.cStr, MAX_PATH); - } - break; - case 3: /* free size */ - if (_ILIsDrive (pidl)) - { - _ILSimpleGetText (pidl, szPath, MAX_PATH); - GetDiskFreeSpaceExA (szPath, &ulBytes, NULL, NULL); - StrFormatByteSizeA (ulBytes.u.LowPart, psd->str.u.cStr, MAX_PATH); - } - break; - } - hr = S_OK; - } - - return hr; -} - -static HRESULT WINAPI ISF_MyComputer_fnMapColumnToSCID ( - IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static const IShellFolder2Vtbl vt_ShellFolder2 = -{ - ISF_MyComputer_fnQueryInterface, - ISF_MyComputer_fnAddRef, - ISF_MyComputer_fnRelease, - ISF_MyComputer_fnParseDisplayName, - ISF_MyComputer_fnEnumObjects, - ISF_MyComputer_fnBindToObject, - ISF_MyComputer_fnBindToStorage, - ISF_MyComputer_fnCompareIDs, - ISF_MyComputer_fnCreateViewObject, - ISF_MyComputer_fnGetAttributesOf, - ISF_MyComputer_fnGetUIObjectOf, - ISF_MyComputer_fnGetDisplayNameOf, - ISF_MyComputer_fnSetNameOf, - /* ShellFolder2 */ - ISF_MyComputer_fnGetDefaultSearchGUID, - ISF_MyComputer_fnEnumSearches, - ISF_MyComputer_fnGetDefaultColumn, - ISF_MyComputer_fnGetDefaultColumnState, - ISF_MyComputer_fnGetDetailsEx, - ISF_MyComputer_fnGetDetailsOf, - ISF_MyComputer_fnMapColumnToSCID -}; - -/************************************************************************ - * IMCFldr_PersistFolder2_QueryInterface - */ -static HRESULT WINAPI IMCFldr_PersistFolder2_QueryInterface ( - IPersistFolder2 * iface, REFIID iid, LPVOID * ppvObj) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)\n", This); - - return IUnknown_QueryInterface (_IUnknown_ (This), iid, ppvObj); -} - -/************************************************************************ - * IMCFldr_PersistFolder2_AddRef - */ -static ULONG WINAPI IMCFldr_PersistFolder2_AddRef (IPersistFolder2 * iface) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_AddRef (_IUnknown_ (This)); -} - -/************************************************************************ - * ISFPersistFolder_Release - */ -static ULONG WINAPI IMCFldr_PersistFolder2_Release (IPersistFolder2 * iface) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_Release (_IUnknown_ (This)); -} - -/************************************************************************ - * IMCFldr_PersistFolder2_GetClassID - */ -static HRESULT WINAPI IMCFldr_PersistFolder2_GetClassID ( - IPersistFolder2 * iface, CLSID * lpClassId) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)\n", This); - - if (!lpClassId) - return E_POINTER; - *lpClassId = CLSID_MyComputer; - - return S_OK; -} - -/************************************************************************ - * IMCFldr_PersistFolder2_Initialize - * - * NOTES: it makes no sense to change the pidl - */ -static HRESULT WINAPI IMCFldr_PersistFolder2_Initialize ( - IPersistFolder2 * iface, LPCITEMIDLIST pidl) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - TRACE ("(%p)->(%p)\n", This, pidl); - - if (This->pidlRoot) - SHFree((LPVOID)This->pidlRoot); - - This->pidlRoot = ILClone(pidl); - return S_OK; -} - -/************************************************************************** - * IPersistFolder2_fnGetCurFolder - */ -static HRESULT WINAPI IMCFldr_PersistFolder2_GetCurFolder ( - IPersistFolder2 * iface, LPITEMIDLIST * pidl) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - if (!pidl) - return E_POINTER; - *pidl = ILClone (This->pidlRoot); - return S_OK; -} - -static const IPersistFolder2Vtbl vt_PersistFolder2 = -{ - IMCFldr_PersistFolder2_QueryInterface, - IMCFldr_PersistFolder2_AddRef, - IMCFldr_PersistFolder2_Release, - IMCFldr_PersistFolder2_GetClassID, - IMCFldr_PersistFolder2_Initialize, - IMCFldr_PersistFolder2_GetCurFolder -}; diff --git a/reactos/dll/win32/shell32/shfldr_mydocuments.c b/reactos/dll/win32/shell32/shfldr_mydocuments.c deleted file mode 100644 index 8290a411e02..00000000000 --- a/reactos/dll/win32/shell32/shfldr_mydocuments.c +++ /dev/null @@ -1,889 +0,0 @@ - -/* - * Virtual MyDocuments Folder - * - * Copyright 2007 Johannes Anderwald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL (mydocs); - -/*********************************************************************** -* MyDocumentsfolder implementation -*/ - -typedef struct { - const IShellFolder2Vtbl *lpVtbl; - const IPersistFolder2Vtbl *lpPF2; - LONG ref; - - /* both paths are parsible from the MyDocuments */ - LPWSTR sPathTarget; /* complete path to target used for enumeration and ChangeNotify */ - LPITEMIDLIST pidlRoot; /* absolute pidl */ - - UINT cfShellIDList; /* clipboardformat for IDropTarget */ - BOOL fAcceptFmt; /* flag for pending Drop */ -} IGenericSFImpl, *LPIGenericSFImpl; - -#define _IUnknown_(This) (IShellFolder*)&(This->lpVtbl) -#define _IShellFolder_(This) (IShellFolder*)&(This->lpVtbl) - -static const shvheader MyDocumentsSFHeader[] = { - {IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 12}, - {IDS_SHV_COLUMN5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 5} -}; - -#define MYDOCUMENTSSHELLVIEWCOLUMNS 5 - -/************************************************************************** - * ISF_MyDocuments_fnQueryInterface - * - * NOTES supports not IPersist/IPersistFolder - */ -static HRESULT WINAPI ISF_MyDocuments_fnQueryInterface( - IShellFolder2 * iface, REFIID riid, LPVOID * ppvObj) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); - - *ppvObj = NULL; - - if (IsEqualIID (riid, &IID_IUnknown) || - IsEqualIID (riid, &IID_IShellFolder) || - IsEqualIID (riid, &IID_IShellFolder2)) - { - *ppvObj = This; - } - else if (IsEqualIID (riid, &IID_IPersistFolder) || - IsEqualIID (riid, &IID_IPersistFolder2)) - { - *ppvObj = (void *)&This->lpPF2; - } - if (*ppvObj) - { - IUnknown_AddRef ((IUnknown *) (*ppvObj)); - TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj); - return S_OK; - } - TRACE ("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI ISF_MyDocuments_fnAddRef (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI ISF_MyDocuments_fnRelease (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount + 1); - - if (!refCount) - { - TRACE ("-- destroying IShellFolder(%p)\n", This); - SHFree (This->pidlRoot); - HeapFree(GetProcessHeap(), 0, This->sPathTarget); - HeapFree(GetProcessHeap(), 0, This); - } - return refCount; -} - -static -HRESULT -WINAPI ISF_MyDocuments_fnParseDisplayName (IShellFolder2 * iface, - HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, - DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - WCHAR szElement[MAX_PATH]; - LPCWSTR szNext = NULL; - LPITEMIDLIST pidlTemp = NULL; - HRESULT hr = S_OK; - CLSID clsid; - - TRACE ("(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n", - This, hwndOwner, pbc, lpszDisplayName, debugstr_w(lpszDisplayName), - pchEaten, ppidl, pdwAttributes); - - if (!lpszDisplayName || !ppidl) - return E_INVALIDARG; - - *ppidl = 0; - - if (pchEaten) - *pchEaten = 0; /* strange but like the original */ - - if (lpszDisplayName[0] == ':' && lpszDisplayName[1] == ':') - { - szNext = GetNextElementW (lpszDisplayName, szElement, MAX_PATH); - TRACE ("-- element: %s\n", debugstr_w (szElement)); - CLSIDFromString (szElement + 2, &clsid); - pidlTemp = _ILCreateGuid (PT_GUID, &clsid); - } - else if( (pidlTemp = SHELL32_CreatePidlFromBindCtx(pbc, lpszDisplayName)) ) - { - *ppidl = pidlTemp; - return S_OK; - } - else - { - /* it's a filesystem path on the desktop. Let a FSFolder parse it */ - - if (*lpszDisplayName) - { - WCHAR szPath[MAX_PATH]; - LPWSTR pathPtr; - - /* build a complete path to create a simple pidl */ - lstrcpynW(szPath, This->sPathTarget, MAX_PATH); - pathPtr = PathAddBackslashW(szPath); - if (pathPtr) - { - lstrcpynW(pathPtr, lpszDisplayName, MAX_PATH - (pathPtr - szPath)); - hr = _ILCreateFromPathW(szPath, &pidlTemp); - } - else - { - /* should never reach here, but for completeness */ - hr = HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER); - } - } - else - pidlTemp = _ILCreateMyDocuments(); - - szNext = NULL; - } - - if (SUCCEEDED(hr) && pidlTemp) - { - if (szNext && *szNext) - { - hr = SHELL32_ParseNextElement(iface, hwndOwner, pbc, - &pidlTemp, (LPOLESTR) szNext, pchEaten, pdwAttributes); - } - else - { - if (pdwAttributes && *pdwAttributes) - hr = SHELL32_GetItemAttributes(_IShellFolder_ (This), - pidlTemp, pdwAttributes); - } - } - - *ppidl = pidlTemp; - - TRACE ("(%p)->(-- ret=0x%08x)\n", This, hr); - - return hr; -} - -/************************************************************************** - * CreateMyDocumentsEnumList() - */ -static BOOL CreateMyDocumentsEnumList(IEnumIDList *list, DWORD dwFlags) -{ - BOOL ret = TRUE; - WCHAR szPath[MAX_PATH] = {0}; - - TRACE("(%p)->(flags=0x%08x)\n", list, dwFlags); - - /* enumerate the elements in %windir%\desktop */ - ret = SHGetSpecialFolderPathW(0, szPath, CSIDL_PERSONAL, FALSE); - ret = ret && CreateFolderEnumList(list, szPath, dwFlags); - - return ret; -} - -/************************************************************************** - * ISF_MyDocuments_fnEnumObjects - */ -static HRESULT WINAPI ISF_MyDocuments_fnEnumObjects (IShellFolder2 * iface, - HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(HWND=%p flags=0x%08x pplist=%p)\n", - This, hwndOwner, dwFlags, ppEnumIDList); - - *ppEnumIDList = IEnumIDList_Constructor(); - if (*ppEnumIDList) - CreateMyDocumentsEnumList(*ppEnumIDList, dwFlags); - - TRACE ("-- (%p)->(new ID List: %p)\n", This, *ppEnumIDList); - - return *ppEnumIDList ? S_OK : E_OUTOFMEMORY; -} - -/************************************************************************** - * ISF_MyDocuments_fnBindToObject - */ -static HRESULT WINAPI ISF_MyDocuments_fnBindToObject (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", - This, pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - return SHELL32_BindToChild( This->pidlRoot, This->sPathTarget, pidl, riid, ppvOut ); -} - -/************************************************************************** - * ISF_MyDocuments_fnBindToStorage - */ -static -HRESULT -WINAPI -ISF_MyDocuments_fnBindToStorage (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", - This, pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - *ppvOut = NULL; - return E_NOTIMPL; -} - -/************************************************************************** - * ISF_MyDocuments_fnCompareIDs - */ -static HRESULT WINAPI ISF_MyDocuments_fnCompareIDs (IShellFolder2 * iface, - LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - int nReturn; - - TRACE ("(%p)->(0x%08lx,pidl1=%p,pidl2=%p)\n", This, lParam, pidl1, pidl2); - nReturn = SHELL32_CompareIDs (_IShellFolder_ (This), lParam, pidl1, pidl2); - TRACE ("-- %i\n", nReturn); - return nReturn; -} - -/************************************************************************** - * ISF_MyDocuments_fnCreateViewObject - */ -static HRESULT WINAPI ISF_MyDocuments_fnCreateViewObject (IShellFolder2 * iface, - HWND hwndOwner, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - LPSHELLVIEW pShellView; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(hwnd=%p,%s,%p)\n", - This, hwndOwner, shdebugstr_guid (riid), ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IDropTarget)) - { - WARN ("IDropTarget not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IContextMenu)) - { - WARN ("IContextMenu not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IShellView)) - { - pShellView = IShellView_Constructor ((IShellFolder *) iface); - if (pShellView) - { - hr = IShellView_QueryInterface (pShellView, riid, ppvOut); - IShellView_Release (pShellView); - } - } - TRACE ("-- (%p)->(interface=%p)\n", This, ppvOut); - return hr; -} - -/************************************************************************** - * ISF_MyDocuments_fnGetAttributesOf - */ -static HRESULT WINAPI ISF_MyDocuments_fnGetAttributesOf (IShellFolder2 * iface, - UINT cidl, LPCITEMIDLIST * apidl, DWORD * rgfInOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - HRESULT hr = S_OK; - static const DWORD dwMyDocumentsAttributes = - SFGAO_STORAGE | SFGAO_HASPROPSHEET | SFGAO_STORAGEANCESTOR | SFGAO_CANCOPY | - SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_FILESYSTEM | SFGAO_HASSUBFOLDER | SFGAO_CANRENAME | SFGAO_CANDELETE; - - TRACE ("(%p)->(cidl=%d apidl=%p mask=%p (0x%08x))\n", - This, cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0); - - if (!rgfInOut) - return E_INVALIDARG; - if (cidl && !apidl) - return E_INVALIDARG; - - if (*rgfInOut == 0) - *rgfInOut = ~0; - - if(cidl == 0) { - *rgfInOut &= dwMyDocumentsAttributes; - } else { - while (cidl > 0 && *apidl) { - pdump (*apidl); - if (_ILIsMyDocuments(*apidl)) { - *rgfInOut &= dwMyDocumentsAttributes; - } else { - SHELL32_GetItemAttributes (_IShellFolder_ (This), *apidl, rgfInOut); - } - apidl++; - cidl--; - } - } - /* make sure SFGAO_VALIDATE is cleared, some apps depend on that */ - *rgfInOut &= ~SFGAO_VALIDATE; - - TRACE ("-- result=0x%08x\n", *rgfInOut); - - return hr; -} - -/************************************************************************** - * ISF_MyDocuments_fnGetUIObjectOf - * - * PARAMETERS - * HWND hwndOwner, //[in ] Parent window for any output - * UINT cidl, //[in ] array size - * LPCITEMIDLIST* apidl, //[in ] simple pidl array - * REFIID riid, //[in ] Requested Interface - * UINT* prgfInOut, //[ ] reserved - * LPVOID* ppvObject) //[out] Resulting Interface - * - */ -static HRESULT WINAPI ISF_MyDocuments_fnGetUIObjectOf (IShellFolder2 * iface, - HWND hwndOwner, UINT cidl, LPCITEMIDLIST * apidl, - REFIID riid, UINT * prgfInOut, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - LPITEMIDLIST pidl; - IUnknown *pObj = NULL; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n", - This, hwndOwner, cidl, apidl, shdebugstr_guid (riid), prgfInOut, ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IContextMenu)) - { - hr = CDefFolderMenu_Create2(This->pidlRoot, hwndOwner, cidl, apidl, (IShellFolder*)iface, NULL, 0, NULL, (IContextMenu**)&pObj); - } - else if (IsEqualIID (riid, &IID_IDataObject) && (cidl >= 1)) - { - pObj = (LPUNKNOWN) IDataObject_Constructor( hwndOwner, - This->pidlRoot, apidl, cidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconA) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconA_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconW) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconW_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IDropTarget) && (cidl >= 1)) - { - hr = IShellFolder_QueryInterface (iface, - &IID_IDropTarget, (LPVOID *) & pObj); - } - else if ((IsEqualIID(riid,&IID_IShellLinkW) || - IsEqualIID(riid,&IID_IShellLinkA)) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - hr = IShellLink_ConstructFromFile(NULL, riid, pidl, (LPVOID*)&pObj); - SHFree (pidl); - } - else - hr = E_NOINTERFACE; - - if (SUCCEEDED(hr) && !pObj) - hr = E_OUTOFMEMORY; - - *ppvOut = pObj; - TRACE ("(%p)->hr=0x%08x\n", This, hr); - return hr; -} - -static -HRESULT -WINAPI ISF_MyDocuments_fnGetDisplayNameOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - HRESULT hr = S_OK; - LPWSTR pszPath; - - TRACE ("(%p)->(pidl=%p,0x%08x,%p)\n", This, pidl, dwFlags, strRet); - pdump (pidl); - - if (!strRet) - return E_INVALIDARG; - - pszPath = CoTaskMemAlloc((MAX_PATH +1) * sizeof(WCHAR)); - if (!pszPath) - return E_OUTOFMEMORY; - - ZeroMemory(pszPath, (MAX_PATH +1) * sizeof(WCHAR)); - - if (_ILIsMyDocuments (pidl)) - { - if ((GET_SHGDN_RELATION (dwFlags) == SHGDN_NORMAL) && - (GET_SHGDN_FOR (dwFlags) & SHGDN_FORPARSING)) - wcscpy(pszPath, This->sPathTarget); - else - HCR_GetClassNameW(&CLSID_MyDocuments, pszPath, MAX_PATH); - TRACE("CP\n"); - } - else if (_ILIsPidlSimple (pidl)) - { - GUID const *clsid; - - if ((clsid = _ILGetGUIDPointer (pidl))) - { - if (GET_SHGDN_FOR (dwFlags) & SHGDN_FORPARSING) - { - int bWantsForParsing; - - /* - * We can only get a filesystem path from a shellfolder if the - * value WantsFORPARSING in CLSID\\{...}\\shellfolder exists. - * - * Exception: The MyComputer folder doesn't have this key, - * but any other filesystem backed folder it needs it. - */ - if (IsEqualIID (clsid, &CLSID_MyDocuments)) - { - bWantsForParsing = TRUE; - } - else - { - /* get the "WantsFORPARSING" flag from the registry */ - static const WCHAR clsidW[] = - { 'C','L','S','I','D','\\',0 }; - static const WCHAR shellfolderW[] = - { '\\','s','h','e','l','l','f','o','l','d','e','r',0 }; - static const WCHAR wantsForParsingW[] = - { 'W','a','n','t','s','F','o','r','P','a','r','s','i','n', - 'g',0 }; - WCHAR szRegPath[100]; - LONG r; - - wcscpy (szRegPath, clsidW); - SHELL32_GUIDToStringW (clsid, &szRegPath[6]); - wcscat (szRegPath, shellfolderW); - r = SHGetValueW(HKEY_CLASSES_ROOT, szRegPath, - wantsForParsingW, NULL, NULL, NULL); - if (r == ERROR_SUCCESS) - bWantsForParsing = TRUE; - else - bWantsForParsing = FALSE; - } - - if ((GET_SHGDN_RELATION (dwFlags) == SHGDN_NORMAL) && - bWantsForParsing) - { - /* - * we need the filesystem path to the destination folder. - * Only the folder itself can know it - */ - hr = SHELL32_GetDisplayNameOfChild (iface, pidl, dwFlags, - pszPath, - MAX_PATH); - TRACE("CP\n"); - } - else - { - /* parsing name like ::{...} */ - pszPath[0] = ':'; - pszPath[1] = ':'; - SHELL32_GUIDToStringW (clsid, &pszPath[2]); - TRACE("CP\n"); - } - } - else - { - /* user friendly name */ - HCR_GetClassNameW (clsid, pszPath, MAX_PATH); - TRACE("CP\n"); - } - } - else - { - int cLen = 0; - - /* file system folder or file rooted at the desktop */ - if ((GET_SHGDN_FOR(dwFlags) == SHGDN_FORPARSING) && - (GET_SHGDN_RELATION(dwFlags) != SHGDN_INFOLDER)) - { - lstrcpynW(pszPath, This->sPathTarget, MAX_PATH - 1); - TRACE("CP %s\n", debugstr_w(pszPath)); - } - - if (!_ILIsDesktop(pidl)) - { - PathAddBackslashW(pszPath); - cLen = wcslen(pszPath); - _ILSimpleGetTextW(pidl, pszPath + cLen, MAX_PATH - cLen); - if (!_ILIsFolder(pidl)) - { - SHELL_FS_ProcessDisplayFilename(pszPath, dwFlags); - TRACE("CP\n"); - } - } - } - } - else - { - /* a complex pidl, let the subfolder do the work */ - hr = SHELL32_GetDisplayNameOfChild (iface, pidl, dwFlags, - pszPath, MAX_PATH); - TRACE("CP\n"); - } - - if (SUCCEEDED(hr)) - { - strRet->uType = STRRET_WSTR; - strRet->u.pOleStr = pszPath; - } - else - CoTaskMemFree(pszPath); - - TRACE ("-- (%p)->(%s,0x%08x)\n", This, debugstr_w(strRet->u.pOleStr), hr); - return hr; -} - -static HRESULT WINAPI ISF_MyDocuments_fnSetNameOf (IShellFolder2 * iface, - HWND hwndOwner, LPCITEMIDLIST pidl, /* simple pidl */ - LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST * pPidlOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)->(%p,pidl=%p,%s,%u,%p)\n", This, hwndOwner, pidl, - debugstr_w (lpName), dwFlags, pPidlOut); - - return E_FAIL; -} - -static HRESULT WINAPI ISF_MyDocuments_fnGetDefaultSearchGUID(IShellFolder2 *iface, - GUID * pguid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_MyDocuments_fnEnumSearches (IShellFolder2 *iface, - IEnumExtraSearch ** ppenum) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static -HRESULT -WINAPI -ISF_MyDocuments_fnGetDefaultColumn (IShellFolder2 * iface, - DWORD dwRes, ULONG * pSort, ULONG * pDisplay) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)\n", This); - - if (pSort) - *pSort = 0; - if (pDisplay) - *pDisplay = 0; - - return S_OK; -} -static -HRESULT -WINAPI -ISF_MyDocuments_fnGetDefaultColumnState (IShellFolder2 * iface, UINT iColumn, DWORD * pcsFlags) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)\n", This); - - if (!pcsFlags || iColumn >= MYDOCUMENTSSHELLVIEWCOLUMNS) - return E_INVALIDARG; - - *pcsFlags = MyDocumentsSFHeader[iColumn].pcsFlags; - - return S_OK; -} - -static -HRESULT -WINAPI -ISF_MyDocuments_fnGetDetailsEx (IShellFolder2 * iface, LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - - return E_NOTIMPL; -} - -static -HRESULT -WINAPI -ISF_MyDocuments_fnGetDetailsOf (IShellFolder2 * iface, LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS * psd) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - HRESULT hr = S_OK; - - TRACE ("(%p)->(%p %i %p)\n", This, pidl, iColumn, psd); - - if (!psd || iColumn >= MYDOCUMENTSSHELLVIEWCOLUMNS) - return E_INVALIDARG; - - if (!pidl) - { - psd->fmt = MyDocumentsSFHeader[iColumn].fmt; - psd->cxChar = MyDocumentsSFHeader[iColumn].cxChar; - psd->str.uType = STRRET_CSTR; - LoadStringA (shell32_hInstance, MyDocumentsSFHeader[iColumn].colnameid, - psd->str.u.cStr, MAX_PATH); - return S_OK; - } - - /* the data from the pidl */ - psd->str.uType = STRRET_CSTR; - switch (iColumn) - { - case 0: /* name */ - hr = IShellFolder_GetDisplayNameOf(iface, pidl, - SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str); - break; - case 1: /* size */ - _ILGetFileSize (pidl, psd->str.u.cStr, MAX_PATH); - break; - case 2: /* type */ - _ILGetFileType (pidl, psd->str.u.cStr, MAX_PATH); - break; - case 3: /* date */ - _ILGetFileDate (pidl, psd->str.u.cStr, MAX_PATH); - break; - case 4: /* attributes */ - _ILGetFileAttributes (pidl, psd->str.u.cStr, MAX_PATH); - break; - } - - return hr; -} - -static -HRESULT -WINAPI -ISF_MyDocuments_fnMapColumnToSCID (IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static const IShellFolder2Vtbl vt_MCFldr_ShellFolder2 = -{ - ISF_MyDocuments_fnQueryInterface, - ISF_MyDocuments_fnAddRef, - ISF_MyDocuments_fnRelease, - ISF_MyDocuments_fnParseDisplayName, - ISF_MyDocuments_fnEnumObjects, - ISF_MyDocuments_fnBindToObject, - ISF_MyDocuments_fnBindToStorage, - ISF_MyDocuments_fnCompareIDs, - ISF_MyDocuments_fnCreateViewObject, - ISF_MyDocuments_fnGetAttributesOf, - ISF_MyDocuments_fnGetUIObjectOf, - ISF_MyDocuments_fnGetDisplayNameOf, - ISF_MyDocuments_fnSetNameOf, - /* ShellFolder2 */ - ISF_MyDocuments_fnGetDefaultSearchGUID, - ISF_MyDocuments_fnEnumSearches, - ISF_MyDocuments_fnGetDefaultColumn, - ISF_MyDocuments_fnGetDefaultColumnState, - ISF_MyDocuments_fnGetDetailsEx, - ISF_MyDocuments_fnGetDetailsOf, - ISF_MyDocuments_fnMapColumnToSCID -}; - -static LPIGenericSFImpl __inline impl_from_IPersistFolder2( IPersistFolder2 *iface ) -{ - return (LPIGenericSFImpl)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpPF2)); -} - -static HRESULT WINAPI -ISF_MyDocuments_PersistFolder2_fnQueryInterface (IPersistFolder2 * iface, REFIID iid, LPVOID * ppvObj) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)\n", This); - - return ISF_MyDocuments_fnQueryInterface ((IShellFolder2*)This, iid, ppvObj); -} - -static ULONG WINAPI -ISF_MyDocuments_PersistFolder2_fnAddRef (IPersistFolder2 * iface) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return ISF_MyDocuments_fnAddRef((IShellFolder2*)This); -} - -static ULONG WINAPI -ISF_MyDocuments_PersistFolder2_fnRelease (IPersistFolder2 * iface) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return ISF_MyDocuments_fnRelease ((IShellFolder2*)This); -} - -static HRESULT WINAPI -ISF_MyDocuments_PersistFolder2_fnGetClassID (IPersistFolder2 * iface, CLSID * lpClassId) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - static GUID const CLSID_MyDocuments = - { 0x450d8fba, 0xad25, 0x11d0, {0x98,0xa8,0x08,0x00,0x36,0x1b,0x11,0x03} }; - - TRACE ("(%p)\n", This); - - if (!lpClassId) - return E_POINTER; - - memcpy(lpClassId, &CLSID_MyDocuments, sizeof(GUID)); - - return S_OK; -} -static HRESULT WINAPI -ISF_MyDocuments_PersistFolder2_fnInitialize (IPersistFolder2 * iface, LPCITEMIDLIST pidl) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - return E_NOTIMPL; -} - -static HRESULT WINAPI -ISF_MyDocuments_PersistFolder2_fnGetCurFolder (IPersistFolder2 * iface, - LPITEMIDLIST * pidl) -{ - IGenericSFImpl *This = impl_from_IPersistFolder2(iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - if (!pidl) return E_POINTER; - *pidl = ILClone (This->pidlRoot); - return S_OK; -} - -static const IPersistFolder2Vtbl vt_FSFldr_PersistFolder2 = -{ - ISF_MyDocuments_PersistFolder2_fnQueryInterface, - ISF_MyDocuments_PersistFolder2_fnAddRef, - ISF_MyDocuments_PersistFolder2_fnRelease, - ISF_MyDocuments_PersistFolder2_fnGetClassID, - ISF_MyDocuments_PersistFolder2_fnInitialize, - ISF_MyDocuments_PersistFolder2_fnGetCurFolder, -}; - - -/************************************************************************** - * ISF_MyDocuments_Constructor - */ -HRESULT WINAPI ISF_MyDocuments_Constructor ( - IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) -{ - static IGenericSFImpl *cached_sf; - WCHAR szMyPath[MAX_PATH]; - - TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid)); - - if (!ppv) - return E_POINTER; - if (pUnkOuter) - return CLASS_E_NOAGGREGATION; - - if (!cached_sf) - { - IGenericSFImpl *sf; - - if (!SHGetSpecialFolderPathW( 0, szMyPath, CSIDL_PERSONAL, TRUE )) - return E_UNEXPECTED; - - sf = LocalAlloc( LMEM_ZEROINIT, sizeof (IGenericSFImpl) ); - if (!sf) - return E_OUTOFMEMORY; - - sf->ref = 1; - sf->lpVtbl = &vt_MCFldr_ShellFolder2; - sf->lpPF2 = &vt_FSFldr_PersistFolder2; - sf->pidlRoot = _ILCreateMyDocuments(); /* my qualified pidl */ - sf->sPathTarget = SHAlloc( (wcslen(szMyPath) + 1)*sizeof(WCHAR) ); - wcscpy( sf->sPathTarget, szMyPath ); - - if (InterlockedCompareExchangePointer((void *)&cached_sf, sf, NULL) != NULL) - { - /* some other thread already been here */ - SHFree( sf->pidlRoot ); - SHFree( sf->sPathTarget ); - LocalFree( sf ); - } - } - - return IUnknown_QueryInterface( _IUnknown_(cached_sf), riid, ppv ); -} diff --git a/reactos/dll/win32/shell32/shfldr_netplaces.c b/reactos/dll/win32/shell32/shfldr_netplaces.c deleted file mode 100644 index 07811d0f0d0..00000000000 --- a/reactos/dll/win32/shell32/shfldr_netplaces.c +++ /dev/null @@ -1,651 +0,0 @@ -/* - * Network Places (Neighbourhood) folder - * - * Copyright 1997 Marcus Meissner - * Copyright 1998, 1999, 2002 Juergen Schmied - * Copyright 2003 Mike McCormack for Codeweavers - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL (shell); - -/*********************************************************************** -* IShellFolder implementation -*/ - -typedef struct { - const IShellFolder2Vtbl *lpVtbl; - LONG ref; - const IPersistFolder2Vtbl *lpVtblPersistFolder2; - - /* both paths are parsible from the desktop */ - LPITEMIDLIST pidlRoot; /* absolute pidl */ -} IGenericSFImpl; - -static const IShellFolder2Vtbl vt_ShellFolder2; -static const IPersistFolder2Vtbl vt_NP_PersistFolder2; - - -#define _IPersistFolder2_Offset ((INT_PTR)(&(((IGenericSFImpl*)0)->lpVtblPersistFolder2))) -#define _ICOM_THIS_From_IPersistFolder2(class, name) class* This = (class*)(((char*)name)-_IPersistFolder2_Offset); - -#define _IUnknown_(This) ((IUnknown*)&(This)->lpVtbl) -#define _IShellFolder_(This) ((IShellFolder*)&(This)->lpVtbl) -#define _IPersistFolder2_(This) (&(This)->lpVtblPersistFolder2) - -static shvheader NetworkPlacesSFHeader[] = { - {IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN13, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN_WORKGROUP, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_NETWORKLOCATION, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15} -}; - -#define COLUMN_NAME 0 -#define COLUMN_CATEGORY 1 -#define COLUMN_WORKGROUP 2 -#define COLUMN_NETLOCATION 3 - -#define NETWORKPLACESSHELLVIEWCOLUMNS 4 - -/************************************************************************** -* ISF_NetworkPlaces_Constructor -*/ -HRESULT WINAPI ISF_NetworkPlaces_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) -{ - IGenericSFImpl *sf; - - TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid)); - - if (!ppv) - return E_POINTER; - if (pUnkOuter) - return CLASS_E_NOAGGREGATION; - - sf = HeapAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof (IGenericSFImpl)); - if (!sf) - return E_OUTOFMEMORY; - - sf->ref = 0; - sf->lpVtbl = &vt_ShellFolder2; - sf->lpVtblPersistFolder2 = &vt_NP_PersistFolder2; - sf->pidlRoot = _ILCreateNetHood(); /* my qualified pidl */ - - if (FAILED (IUnknown_QueryInterface (_IUnknown_ (sf), riid, ppv))) - { - IUnknown_Release (_IUnknown_ (sf)); - return E_NOINTERFACE; - } - - TRACE ("--(%p)\n", sf); - return S_OK; -} - -/************************************************************************** - * ISF_NetworkPlaces_fnQueryInterface - * - * NOTE - * supports not IPersist/IPersistFolder - */ -static HRESULT WINAPI ISF_NetworkPlaces_fnQueryInterface (IShellFolder2 *iface, REFIID riid, LPVOID *ppvObj) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); - - *ppvObj = NULL; - - if (IsEqualIID (riid, &IID_IUnknown) || - IsEqualIID (riid, &IID_IShellFolder) || - IsEqualIID (riid, &IID_IShellFolder2)) - { - *ppvObj = This; - } - else if (IsEqualIID (riid, &IID_IPersist) || - IsEqualIID (riid, &IID_IPersistFolder) || - IsEqualIID (riid, &IID_IPersistFolder2)) - { - *ppvObj = (void *)_IPersistFolder2_ (This); - } - - if (*ppvObj) - { - IUnknown_AddRef ((IUnknown *) (*ppvObj)); - TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj); - return S_OK; - } - TRACE ("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI ISF_NetworkPlaces_fnAddRef (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI ISF_NetworkPlaces_fnRelease (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, refCount + 1); - - if (!refCount) { - TRACE ("-- destroying IShellFolder(%p)\n", This); - SHFree (This->pidlRoot); - HeapFree (GetProcessHeap(), 0, This); - } - return refCount; -} - -/************************************************************************** -* ISF_NetworkPlaces_fnParseDisplayName -*/ -static HRESULT WINAPI ISF_NetworkPlaces_fnParseDisplayName (IShellFolder2 * iface, - HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, - DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - HRESULT hr = E_UNEXPECTED; - - TRACE ("(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n", This, - hwndOwner, pbcReserved, lpszDisplayName, debugstr_w (lpszDisplayName), - pchEaten, ppidl, pdwAttributes); - - *ppidl = 0; - if (pchEaten) - *pchEaten = 0; /* strange but like the original */ - - TRACE ("(%p)->(-- ret=0x%08x)\n", This, hr); - - return hr; -} - -/************************************************************************** -* ISF_NetworkPlaces_fnEnumObjects -*/ -static HRESULT WINAPI ISF_NetworkPlaces_fnEnumObjects (IShellFolder2 * iface, - HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(HWND=%p flags=0x%08x pplist=%p)\n", This, - hwndOwner, dwFlags, ppEnumIDList); - - *ppEnumIDList = NULL; //IEnumIDList_Constructor(); - - TRACE ("-- (%p)->(new ID List: %p)\n", This, *ppEnumIDList); - return S_FALSE; - // return (*ppEnumIDList) ? S_OK : E_OUTOFMEMORY; -} - -/************************************************************************** -* ISF_NetworkPlaces_fnBindToObject -*/ -static HRESULT WINAPI ISF_NetworkPlaces_fnBindToObject (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This, - pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - return SHELL32_BindToChild (This->pidlRoot, NULL, pidl, riid, ppvOut); -} - -/************************************************************************** -* ISF_NetworkPlaces_fnBindToStorage -*/ -static HRESULT WINAPI ISF_NetworkPlaces_fnBindToStorage (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", This, - pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - *ppvOut = NULL; - return E_NOTIMPL; -} - -/************************************************************************** -* ISF_NetworkPlaces_fnCompareIDs -*/ - -static HRESULT WINAPI ISF_NetworkPlaces_fnCompareIDs (IShellFolder2 * iface, - LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - int nReturn; - - TRACE ("(%p)->(0x%08lx,pidl1=%p,pidl2=%p)\n", This, lParam, pidl1, pidl2); - nReturn = SHELL32_CompareIDs (_IShellFolder_ (This), lParam, pidl1, pidl2); - TRACE ("-- %i\n", nReturn); - return nReturn; -} - -/************************************************************************** -* ISF_NetworkPlaces_fnCreateViewObject -*/ -static HRESULT WINAPI ISF_NetworkPlaces_fnCreateViewObject (IShellFolder2 * iface, - HWND hwndOwner, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - LPSHELLVIEW pShellView; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(hwnd=%p,%s,%p)\n", This, - hwndOwner, shdebugstr_guid (riid), ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IDropTarget)) - { - WARN ("IDropTarget not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IContextMenu)) - { - WARN ("IContextMenu not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IShellView)) - { - pShellView = IShellView_Constructor ((IShellFolder *) iface); - if (pShellView) - { - hr = IShellView_QueryInterface (pShellView, riid, ppvOut); - IShellView_Release (pShellView); - } - } - TRACE ("-- (%p)->(interface=%p)\n", This, ppvOut); - return hr; -} - -/************************************************************************** -* ISF_NetworkPlaces_fnGetAttributesOf -*/ -static HRESULT WINAPI ISF_NetworkPlaces_fnGetAttributesOf (IShellFolder2 * iface, - UINT cidl, LPCITEMIDLIST * apidl, DWORD * rgfInOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - static const DWORD dwNethoodAttributes = - SFGAO_STORAGE | SFGAO_HASPROPSHEET | SFGAO_STORAGEANCESTOR | - SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_FILESYSTEM | SFGAO_HASSUBFOLDER | SFGAO_CANRENAME | SFGAO_CANDELETE; - HRESULT hr = S_OK; - - TRACE ("(%p)->(cidl=%d apidl=%p mask=%p (0x%08x))\n", This, - cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0); - - if (!rgfInOut) - return E_INVALIDARG; - if (cidl && !apidl) - return E_INVALIDARG; - - if (*rgfInOut == 0) - *rgfInOut = ~0; - - if(cidl == 0) { - *rgfInOut = dwNethoodAttributes; - } - else - { - while (cidl > 0 && *apidl) - { - pdump (*apidl); - SHELL32_GetItemAttributes (_IShellFolder_ (This), *apidl, rgfInOut); - apidl++; - cidl--; - } - } - - /* make sure SFGAO_VALIDATE is cleared, some apps depend on that */ - *rgfInOut &= ~SFGAO_VALIDATE; - - TRACE ("-- result=0x%08x\n", *rgfInOut); - return hr; -} - -/************************************************************************** -* ISF_NetworkPlaces_fnGetUIObjectOf -* -* PARAMETERS -* hwndOwner [in] Parent window for any output -* cidl [in] array size -* apidl [in] simple pidl array -* riid [in] Requested Interface -* prgfInOut [ ] reserved -* ppvObject [out] Resulting Interface -* -*/ -static HRESULT WINAPI ISF_NetworkPlaces_fnGetUIObjectOf (IShellFolder2 * iface, - HWND hwndOwner, UINT cidl, LPCITEMIDLIST * apidl, REFIID riid, - UINT * prgfInOut, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - LPITEMIDLIST pidl; - IUnknown *pObj = NULL; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n", This, - hwndOwner, cidl, apidl, shdebugstr_guid (riid), prgfInOut, ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IContextMenu) && (cidl >= 1)) - { - hr = CDefFolderMenu_Create2(This->pidlRoot, hwndOwner, cidl, apidl, (IShellFolder*)iface, NULL, 0, NULL, (IContextMenu**)&pObj); - } - else if (IsEqualIID (riid, &IID_IDataObject) && (cidl >= 1)) - { - pObj = (LPUNKNOWN) IDataObject_Constructor (hwndOwner, This->pidlRoot, apidl, cidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconA) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconA_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IExtractIconW) && (cidl == 1)) - { - pidl = ILCombine (This->pidlRoot, apidl[0]); - pObj = (LPUNKNOWN) IExtractIconW_Constructor (pidl); - SHFree (pidl); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IDropTarget) && (cidl >= 1)) - { - hr = IShellFolder_QueryInterface (iface, &IID_IDropTarget, (LPVOID *) & pObj); - } - else - hr = E_NOINTERFACE; - - if (SUCCEEDED(hr) && !pObj) - hr = E_OUTOFMEMORY; - - *ppvOut = pObj; - TRACE ("(%p)->hr=0x%08x\n", This, hr); - return hr; -} - -/************************************************************************** -* ISF_NetworkPlaces_fnGetDisplayNameOf -* -*/ -static HRESULT WINAPI ISF_NetworkPlaces_fnGetDisplayNameOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)->(pidl=%p,0x%08x,%p)\n", This, pidl, dwFlags, strRet); - pdump (pidl); - - if (!strRet) - return E_INVALIDARG; - - return E_NOTIMPL; -} - -/************************************************************************** -* ISF_NetworkPlaces_fnSetNameOf -* Changes the name of a file object or subfolder, possibly changing its item -* identifier in the process. -* -* PARAMETERS -* hwndOwner [in] Owner window for output -* pidl [in] simple pidl of item to change -* lpszName [in] the items new display name -* dwFlags [in] SHGNO formatting flags -* ppidlOut [out] simple pidl returned -*/ -static HRESULT WINAPI ISF_NetworkPlaces_fnSetNameOf (IShellFolder2 * iface, - HWND hwndOwner, LPCITEMIDLIST pidl, /*simple pidl */ - LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST * pPidlOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)->(%p,pidl=%p,%s,%u,%p)\n", This, - hwndOwner, pidl, debugstr_w (lpName), dwFlags, pPidlOut); - return E_FAIL; -} - -static HRESULT WINAPI ISF_NetworkPlaces_fnGetDefaultSearchGUID ( - IShellFolder2 * iface, GUID * pguid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_NetworkPlaces_fnEnumSearches (IShellFolder2 * iface, - IEnumExtraSearch ** ppenum) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_NetworkPlaces_fnGetDefaultColumn (IShellFolder2 * iface, - DWORD dwRes, ULONG * pSort, ULONG * pDisplay) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)\n", This); - - if (pSort) - *pSort = 0; - if (pDisplay) - *pDisplay = 0; - - return S_OK; -} - -static HRESULT WINAPI ISF_NetworkPlaces_fnGetDefaultColumnState ( - IShellFolder2 * iface, UINT iColumn, DWORD * pcsFlags) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)\n", This); - - if (!pcsFlags || iColumn >= NETWORKPLACESSHELLVIEWCOLUMNS) - return E_INVALIDARG; - *pcsFlags = NetworkPlacesSFHeader[iColumn].pcsFlags; - return S_OK; -} - -static HRESULT WINAPI ISF_NetworkPlaces_fnGetDetailsEx (IShellFolder2 * iface, - LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_NetworkPlaces_fnGetDetailsOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS * psd) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - WCHAR buffer[MAX_PATH] = {0}; - HRESULT hr = E_FAIL; - - if (iColumn >= NETWORKPLACESSHELLVIEWCOLUMNS) - return E_FAIL; - - psd->fmt = NetworkPlacesSFHeader[iColumn].fmt; - psd->cxChar = NetworkPlacesSFHeader[iColumn].cxChar; - if (pidl == NULL) - { - psd->str.uType = STRRET_WSTR; - if (LoadStringW(shell32_hInstance, NetworkPlacesSFHeader[iColumn].colnameid, buffer, MAX_PATH)) - hr = SHStrDupW(buffer, &psd->str.u.pOleStr); - - return hr; - } - - if (iColumn == COLUMN_NAME) - return IShellFolder2_GetDisplayNameOf(iface, pidl, SHGDN_NORMAL, &psd->str); - - FIXME ("(%p)->(%p %i %p)\n", This, pidl, iColumn, psd); - - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_NetworkPlaces_fnMapColumnToSCID (IShellFolder2 * iface, - UINT column, SHCOLUMNID * pscid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)\n", This); - - return E_NOTIMPL; -} - -static const IShellFolder2Vtbl vt_ShellFolder2 = { - ISF_NetworkPlaces_fnQueryInterface, - ISF_NetworkPlaces_fnAddRef, - ISF_NetworkPlaces_fnRelease, - ISF_NetworkPlaces_fnParseDisplayName, - ISF_NetworkPlaces_fnEnumObjects, - ISF_NetworkPlaces_fnBindToObject, - ISF_NetworkPlaces_fnBindToStorage, - ISF_NetworkPlaces_fnCompareIDs, - ISF_NetworkPlaces_fnCreateViewObject, - ISF_NetworkPlaces_fnGetAttributesOf, - ISF_NetworkPlaces_fnGetUIObjectOf, - ISF_NetworkPlaces_fnGetDisplayNameOf, - ISF_NetworkPlaces_fnSetNameOf, - /* ShellFolder2 */ - ISF_NetworkPlaces_fnGetDefaultSearchGUID, - ISF_NetworkPlaces_fnEnumSearches, - ISF_NetworkPlaces_fnGetDefaultColumn, - ISF_NetworkPlaces_fnGetDefaultColumnState, - ISF_NetworkPlaces_fnGetDetailsEx, - ISF_NetworkPlaces_fnGetDetailsOf, - ISF_NetworkPlaces_fnMapColumnToSCID -}; - -/************************************************************************ - * INPFldr_PersistFolder2_QueryInterface - */ -static HRESULT WINAPI INPFldr_PersistFolder2_QueryInterface (IPersistFolder2 * iface, - REFIID iid, LPVOID * ppvObj) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)\n", This); - - return IUnknown_QueryInterface (_IUnknown_ (This), iid, ppvObj); -} - -/************************************************************************ - * INPFldr_PersistFolder2_AddRef - */ -static ULONG WINAPI INPFldr_PersistFolder2_AddRef (IPersistFolder2 * iface) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_AddRef (_IUnknown_ (This)); -} - -/************************************************************************ - * ISFPersistFolder_Release - */ -static ULONG WINAPI INPFldr_PersistFolder2_Release (IPersistFolder2 * iface) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(count=%u)\n", This, This->ref); - - return IUnknown_Release (_IUnknown_ (This)); -} - -/************************************************************************ - * INPFldr_PersistFolder2_GetClassID - */ -static HRESULT WINAPI INPFldr_PersistFolder2_GetClassID ( - IPersistFolder2 * iface, CLSID * lpClassId) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)\n", This); - - if (!lpClassId) - return E_POINTER; - - *lpClassId = CLSID_NetworkPlaces; - - return S_OK; -} - -/************************************************************************ - * INPFldr_PersistFolder2_Initialize - * - * NOTES: it makes no sense to change the pidl - */ -static HRESULT WINAPI INPFldr_PersistFolder2_Initialize ( - IPersistFolder2 * iface, LPCITEMIDLIST pidl) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - return E_NOTIMPL; -} - -/************************************************************************** - * IPersistFolder2_fnGetCurFolder - */ -static HRESULT WINAPI INPFldr_PersistFolder2_GetCurFolder ( - IPersistFolder2 * iface, LPITEMIDLIST * pidl) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - if (!pidl) - return E_POINTER; - - *pidl = ILClone (This->pidlRoot); - - return S_OK; -} - -static const IPersistFolder2Vtbl vt_NP_PersistFolder2 = -{ - INPFldr_PersistFolder2_QueryInterface, - INPFldr_PersistFolder2_AddRef, - INPFldr_PersistFolder2_Release, - INPFldr_PersistFolder2_GetClassID, - INPFldr_PersistFolder2_Initialize, - INPFldr_PersistFolder2_GetCurFolder -}; diff --git a/reactos/dll/win32/shell32/shfldr_printers.c b/reactos/dll/win32/shell32/shfldr_printers.c deleted file mode 100644 index c7ffbfbc071..00000000000 --- a/reactos/dll/win32/shell32/shfldr_printers.c +++ /dev/null @@ -1,984 +0,0 @@ -/* - * Virtual Printers Folder - * - * Copyright 1997 Marcus Meissner - * Copyright 1998, 1999, 2002 Juergen Schmied - * Copyright 2005 Huw Davies - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL (shell); - -/*********************************************************************** - * Printers_IExtractIconW implementation - */ -typedef struct -{ - IExtractIconWVtbl *lpVtbl; - IExtractIconAVtbl *lpvtblExtractIconA; - volatile LONG ref; - LPITEMIDLIST pidl; -} IExtractIconWImpl; - -#define _IExtractIconA_Offset ((INT_PTR)(&(((IExtractIconWImpl*)0)->lpvtblExtractIconA))) -#define _ICOM_THIS_From_IExtractIconA(class, name) class* This = (class*)(((char*)name)-_IExtractIconA_Offset); - -static shvheader PrinterSFHeader[] = { - {IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN_DOCUMENTS , SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN_STATUS, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN_COMMENTS, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN_LOCATION, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN_MODEL, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15} -}; - -#define COLUMN_NAME 0 -#define COLUMN_DOCUMENTS 1 -#define COLUMN_STATUS 2 -#define COLUMN_COMMENTS 3 -#define COLUMN_LOCATION 4 -#define COLUMN_MODEL 5 - - -#define PrinterSHELLVIEWCOLUMNS (6) - - -/************************************************************************** - * IExtractIconW_QueryInterface - */ -static HRESULT WINAPI IEI_Printers_fnQueryInterface(IExtractIconW *iface, REFIID riid, LPVOID *ppvObj) -{ - IExtractIconWImpl *This = (IExtractIconWImpl *)iface; - - TRACE("(%p)->(\n\tIID:\t%s,%p)\n", This, debugstr_guid(riid), ppvObj); - - *ppvObj = NULL; - - if (IsEqualIID(riid, &IID_IUnknown)) - { - *ppvObj = This; - } - else if (IsEqualIID(riid, &IID_IExtractIconW)) - { - *ppvObj = (IExtractIconW*)This; - } - else if (IsEqualIID(riid, &IID_IExtractIconA)) - { - *ppvObj = (IExtractIconA*)&(This->lpvtblExtractIconA); - } - - if(*ppvObj) - { - ((IExtractIconW*)*ppvObj)->lpVtbl->AddRef(*ppvObj); - TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj); - return S_OK; - } - TRACE("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -/************************************************************************** - * IExtractIconW_AddRef - */ -static ULONG WINAPI IEI_Printers_fnAddRef(IExtractIconW * iface) -{ - IExtractIconWImpl *This = (IExtractIconWImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(count=%lu)\n", This, refCount - 1); - - return refCount; -} - -/************************************************************************** - * IExtractIconW_Release - */ -static ULONG WINAPI IEI_Printers_fnRelease(IExtractIconW * iface) -{ - IExtractIconWImpl *This = (IExtractIconWImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(count=%lu)\n", This, refCount + 1); - - if (!refCount) - { - TRACE(" destroying IExtractIcon(%p)\n",This); - SHFree(This->pidl); - HeapFree(GetProcessHeap(),0,This); - return 0; - } - return refCount; -} - -/************************************************************************** - * IExtractIconW_GetIconLocation - * - * mapping filetype to icon - */ -static HRESULT WINAPI IEI_Printers_fnGetIconLocation( - IExtractIconW * iface, - UINT uFlags, /* GIL_ flags */ - LPWSTR szIconFile, - UINT cchMax, - int *piIndex, - UINT *pwFlags) /* returned GIL_ flags */ -{ - IExtractIconWImpl *This = (IExtractIconWImpl *)iface; - - TRACE("(%p) (flags=%u %p %u %p %p)\n", This, uFlags, szIconFile, cchMax, piIndex, pwFlags); - - if (pwFlags) - *pwFlags = 0; - - lstrcpynW(szIconFile, swShell32Name, cchMax); - *piIndex = -IDI_SHELL_PRINTERS_FOLDER; /* FIXME: other icons for default, network, print to file */ - - TRACE("-- %s %x\n", debugstr_w(szIconFile), *piIndex); - return NOERROR; -} - -/************************************************************************** - * IExtractIconW_Extract - */ -static HRESULT WINAPI IEI_Printers_fnExtract(IExtractIconW *iface, LPCWSTR pszFile, - UINT nIconIndex, HICON *phiconLarge, - HICON *phiconSmall, UINT nIconSize) -{ - IExtractIconWImpl *This = (IExtractIconWImpl *)iface; - int index; - - FIXME("(%p) (file=%p index=%d %p %p size=%x) semi-stub\n", This, debugstr_w(pszFile), - (signed)nIconIndex, phiconLarge, phiconSmall, nIconSize); - - index = SIC_GetIconIndex(pszFile, nIconIndex, 0); - - if (phiconLarge) - *phiconLarge = ImageList_GetIcon(ShellBigIconList, index, ILD_TRANSPARENT); - - if (phiconSmall) - *phiconSmall = ImageList_GetIcon(ShellSmallIconList, index, ILD_TRANSPARENT); - - return S_OK; -} - -static struct IExtractIconWVtbl eivt = -{ - IEI_Printers_fnQueryInterface, - IEI_Printers_fnAddRef, - IEI_Printers_fnRelease, - IEI_Printers_fnGetIconLocation, - IEI_Printers_fnExtract -}; - -/************************************************************************** - * IExtractIconA_QueryInterface - */ -static HRESULT WINAPI IEIA_Printers_fnQueryInterface(IExtractIconA * iface, REFIID riid, LPVOID *ppvObj) -{ - _ICOM_THIS_From_IExtractIconA(IExtractIconW, iface); - - return This->lpVtbl->QueryInterface(This, riid, ppvObj); -} - -/************************************************************************** - * IExtractIconA_AddRef - */ -static ULONG WINAPI IEIA_Printers_fnAddRef(IExtractIconA * iface) -{ - _ICOM_THIS_From_IExtractIconA(IExtractIconW, iface); - - return This->lpVtbl->AddRef(This); -} -/************************************************************************** - * IExtractIconA_Release - */ -static ULONG WINAPI IEIA_Printers_fnRelease(IExtractIconA * iface) -{ - _ICOM_THIS_From_IExtractIconA(IExtractIconW, iface); - - return This->lpVtbl->AddRef(This); -} - -/************************************************************************** - * IExtractIconA_GetIconLocation - */ -static HRESULT WINAPI IEIA_Printers_fnGetIconLocation( - IExtractIconA * iface, - UINT uFlags, - LPSTR szIconFile, - UINT cchMax, - int * piIndex, - UINT * pwFlags) -{ - HRESULT ret; - LPWSTR lpwstrFile = HeapAlloc(GetProcessHeap(), 0, cchMax * sizeof(WCHAR)); - _ICOM_THIS_From_IExtractIconA(IExtractIconW, iface); - - TRACE("(%p) (flags=%u %p %u %p %p)\n", This, uFlags, szIconFile, cchMax, piIndex, pwFlags); - - ret = This->lpVtbl->GetIconLocation(This, uFlags, lpwstrFile, cchMax, piIndex, pwFlags); - WideCharToMultiByte(CP_ACP, 0, lpwstrFile, -1, szIconFile, cchMax, NULL, NULL); - HeapFree(GetProcessHeap(), 0, lpwstrFile); - - TRACE("-- %s %x\n", szIconFile, *piIndex); - return ret; -} -/************************************************************************** - * IExtractIconA_Extract - */ -static HRESULT WINAPI IEIA_Printers_fnExtract(IExtractIconA *iface, LPCSTR pszFile, - UINT nIconIndex, HICON *phiconLarge, - HICON *phiconSmall, UINT nIconSize) -{ - HRESULT ret; - INT len = MultiByteToWideChar(CP_ACP, 0, pszFile, -1, NULL, 0); - LPWSTR lpwstrFile = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - _ICOM_THIS_From_IExtractIconA(IExtractIconW, iface); - - TRACE("(%p) (file=%p index=%u %p %p size=%u)\n", This, pszFile, nIconIndex, phiconLarge, phiconSmall, nIconSize); - - MultiByteToWideChar(CP_ACP, 0, pszFile, -1, lpwstrFile, len); - ret = This->lpVtbl->Extract(This, lpwstrFile, nIconIndex, phiconLarge, phiconSmall, nIconSize); - HeapFree(GetProcessHeap(), 0, lpwstrFile); - return ret; -} - -static struct IExtractIconAVtbl eiavt = -{ - IEIA_Printers_fnQueryInterface, - IEIA_Printers_fnAddRef, - IEIA_Printers_fnRelease, - IEIA_Printers_fnGetIconLocation, - IEIA_Printers_fnExtract -}; - -/************************************************************************** - * IExtractIcon_Constructor - */ -static IUnknown *IEI_Printers_Constructor(LPCITEMIDLIST pidl) -{ - IExtractIconWImpl* ei; - - TRACE("%p\n", pidl); - - ei = HeapAlloc(GetProcessHeap(),0,sizeof(IExtractIconWImpl)); - ei->ref = 1; - ei->lpVtbl = &eivt; - ei->lpvtblExtractIconA = &eiavt; - ei->pidl=ILClone(pidl); - - pdump(pidl); - - TRACE("(%p)\n", ei); - return (IUnknown *)ei; -} - -/*********************************************************************** - * Printers folder implementation - */ - -typedef struct { - IShellFolder2Vtbl *lpVtbl; - IPersistFolder2Vtbl *lpVtblPersistFolder2; - - LONG ref; - - CLSID *pclsid; - - LPITEMIDLIST pidlRoot; /* absolute pidl */ - - int dwAttributes; /* attributes returned by GetAttributesOf FIXME: use it */ -} IGenericSFImpl; - -#define _IPersistFolder2_Offset ((INT_PTR)(&(((IGenericSFImpl*)0)->lpVtblPersistFolder2))) -#define _ICOM_THIS_From_IPersistFolder2(class, name) class* This = (class*)(((char*)name)-_IPersistFolder2_Offset); - -#define _IUnknown_(This) (IShellFolder*)&(This->lpVtbl) -#define _IShellFolder_(This) (IShellFolder*)&(This->lpVtbl) - -#define _IPersist_(This) (IPersist*)&(This->lpVtblPersistFolder2) -#define _IPersistFolder_(This) (IPersistFolder*)&(This->lpVtblPersistFolder2) -#define _IPersistFolder2_(This) (IPersistFolder2*)&(This->lpVtblPersistFolder2) - -/************************************************************************** - * ISF_Printers_fnQueryInterface - * - * NOTE does not support IPersist/IPersistFolder - */ -static HRESULT WINAPI ISF_Printers_fnQueryInterface( - IShellFolder2 * iface, REFIID riid, LPVOID * ppvObj) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj); - - *ppvObj = NULL; - - if (IsEqualIID (riid, &IID_IUnknown) || - IsEqualIID (riid, &IID_IShellFolder) || - IsEqualIID (riid, &IID_IShellFolder2)) - { - *ppvObj = _IShellFolder_(This); - } - - else if (IsEqualIID (riid, &IID_IPersist) || - IsEqualIID (riid, &IID_IPersistFolder) || - IsEqualIID (riid, &IID_IPersistFolder2)) - { - *ppvObj = _IPersistFolder2_ (This); - } - - if (*ppvObj) - { - IUnknown_AddRef ((IUnknown *) (*ppvObj)); - TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj); - return S_OK; - } - TRACE ("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI ISF_Printers_fnAddRef (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE ("(%p)->(count=%lu)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI ISF_Printers_fnRelease (IShellFolder2 * iface) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE ("(%p)->(count=%lu)\n", This, refCount + 1); - - if (!refCount) - { - TRACE ("-- destroying IShellFolder(%p)\n", This); - if (This->pidlRoot) - SHFree (This->pidlRoot); - LocalFree ((HLOCAL) This); - return 0; - } - return refCount; -} - -/************************************************************************** - * ISF_Printers_fnParseDisplayName - * - * This is E_NOTIMPL in Windows too. - */ -static HRESULT WINAPI ISF_Printers_fnParseDisplayName (IShellFolder2 * iface, - HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, - DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE("(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n", - This, hwndOwner, pbc, lpszDisplayName, debugstr_w(lpszDisplayName), - pchEaten, ppidl, pdwAttributes); - - *ppidl = 0; - if (pchEaten) - *pchEaten = 0; - - return E_NOTIMPL; -} - -static LPITEMIDLIST _ILCreatePrinterItem(PRINTER_INFO_4W *pi) -{ - PIDLDATA tmp; - LPITEMIDLIST pidl; - PIDLPrinterStruct * p; - int size0 = (char*)&tmp.u.cprinter.szName-(char*)&tmp.u.cprinter; - int size = size0; - - tmp.type = 0x00; - tmp.u.cprinter.dummy = 0xFF; - if (pi->pPrinterName) - tmp.u.cprinter.offsServer = wcslen(pi->pPrinterName) + 1; - else - tmp.u.cprinter.offsServer = 1; - - size += tmp.u.cprinter.offsServer * sizeof(WCHAR); - if (pi->pServerName) - size += ( + wcslen(pi->pServerName) + 1) * sizeof(WCHAR); - else - size += sizeof(WCHAR); - - pidl = (LPITEMIDLIST)SHAlloc(size + 4); - if (!pidl) - return pidl; - - pidl->mkid.cb = size+2; - memcpy(pidl->mkid.abID, &tmp, 2+size0); - - p = &((PIDLDATA*)pidl->mkid.abID)->u.cprinter; - - p->Attributes = pi->Attributes; - if (pi->pPrinterName) - wcscpy(p->szName, pi->pPrinterName); - else - p->szName[0] = L'\0'; - - if (pi->pServerName) - wcscpy(p->szName + p->offsServer, pi->pServerName); - else - p->szName[p->offsServer] = L'\0'; - - *(WORD*)((char*)pidl+(size+2)) = 0; - return pidl; -} - -static PIDLPrinterStruct * _ILGetPrinterStruct(LPCITEMIDLIST pidl) -{ - LPPIDLDATA pdata = _ILGetDataPointer(pidl); - - if (pdata && pdata->type==0x00) - return (PIDLPrinterStruct*)&(pdata->u.cfont); - - return NULL; -} - -/************************************************************************** - * CreatePrintersEnumList() - */ -static BOOL CreatePrintersEnumList(IEnumIDList *list, DWORD dwFlags) -{ - BOOL ret = TRUE; - - TRACE("(%p)->(flags=0x%08lx) \n",list,dwFlags); - - /* enumerate the folders */ - if (dwFlags & SHCONTF_NONFOLDERS) - { - DWORD needed = 0, num = 0, i; - PRINTER_INFO_4W *pi; - - EnumPrintersW(PRINTER_ENUM_LOCAL, NULL, 4, NULL, 0, &needed, &num); - if (!needed) - return ret; - - pi = HeapAlloc(GetProcessHeap(), 0, needed); - if(!EnumPrintersW(PRINTER_ENUM_LOCAL, NULL, 4, (LPBYTE)pi, needed, &needed, &num)) { - HeapFree(GetProcessHeap(), 0, pi); - return FALSE; - } - - for(i = 0; i < num; i++) { - LPITEMIDLIST pidl = _ILCreatePrinterItem(&pi[i]); - if (pidl) - { - if (!AddToEnumList(list, pidl)) - SHFree(pidl); - } - } - HeapFree(GetProcessHeap(), 0, pi); - } - return ret; -} - -/************************************************************************** - * ISF_Printers_fnEnumObjects - */ -static HRESULT WINAPI ISF_Printers_fnEnumObjects (IShellFolder2 * iface, - HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(HWND=%p flags=0x%08lx pplist=%p)\n", - This, hwndOwner, dwFlags, ppEnumIDList); - - if(!ppEnumIDList) return E_OUTOFMEMORY; - *ppEnumIDList = IEnumIDList_Constructor(); - if (*ppEnumIDList) - CreatePrintersEnumList(*ppEnumIDList, dwFlags); - - TRACE ("-- (%p)->(new ID List: %p)\n", This, *ppEnumIDList); - - return (*ppEnumIDList) ? S_OK : E_OUTOFMEMORY; -} - -/************************************************************************** - * ISF_Printers_fnBindToObject - */ -static HRESULT WINAPI ISF_Printers_fnBindToObject (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This, - pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - return SHELL32_BindToChild (This->pidlRoot, NULL, pidl, riid, ppvOut); -} - -/************************************************************************** - * ISF_Printers_fnBindToStorage - */ -static HRESULT WINAPI ISF_Printers_fnBindToStorage (IShellFolder2 * iface, - LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", - This, pidl, pbcReserved, shdebugstr_guid (riid), ppvOut); - - *ppvOut = NULL; - return E_NOTIMPL; -} - -/************************************************************************** - * ISF_Printers_fnCompareIDs - */ -static HRESULT WINAPI ISF_Printers_fnCompareIDs (IShellFolder2 * iface, - LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - int nReturn; - - TRACE ("(%p)->(0x%08lx,pidl1=%p,pidl2=%p)\n", This, lParam, pidl1, pidl2); - nReturn = SHELL32_CompareIDs (_IShellFolder_ (This), lParam, pidl1, pidl2); - TRACE ("-- %i\n", nReturn); - return nReturn; -} - -/************************************************************************** - * ISF_Printers_fnCreateViewObject - */ -static HRESULT WINAPI ISF_Printers_fnCreateViewObject (IShellFolder2 * iface, - HWND hwndOwner, REFIID riid, LPVOID * ppvOut) -{ - - LPSHELLVIEW pShellView; - HRESULT hr = E_INVALIDARG; - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - TRACE ("(%p)->(hwnd=%p,%s,%p)\n", This, - hwndOwner, shdebugstr_guid (riid), ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if (IsEqualIID (riid, &IID_IDropTarget)) - { - WARN ("IDropTarget not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IContextMenu)) - { - WARN ("IContextMenu not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IShellView)) - { - pShellView = IShellView_Constructor ((IShellFolder *) iface); - if (pShellView) - { - hr = IShellView_QueryInterface (pShellView, riid, ppvOut); - IShellView_Release (pShellView); - } - } - TRACE ("-- (%p)->(interface=%p)\n", This, ppvOut); - return hr; -} - -/************************************************************************** - * ISF_Printers_fnGetAttributesOf - */ -static HRESULT WINAPI ISF_Printers_fnGetAttributesOf (IShellFolder2 * iface, - UINT cidl, LPCITEMIDLIST * apidl, DWORD * rgfInOut) -{ - static const DWORD dwPrintersAttributes = - SFGAO_HASPROPSHEET | SFGAO_STORAGEANCESTOR | SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_CANRENAME | SFGAO_CANDELETE; - HRESULT hr = S_OK; - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)->(cidl=%d apidl=%p mask=0x%08lx): stub\n", - This, cidl, apidl, *rgfInOut); - - *rgfInOut &= dwPrintersAttributes; - - *rgfInOut &= ~SFGAO_VALIDATE; - - TRACE ("-- result=0x%08x\n", *rgfInOut); - return hr; -} - -/************************************************************************** - * ISF_Printers_fnGetUIObjectOf - * - * PARAMETERS - * HWND hwndOwner, //[in ] Parent window for any output - * UINT cidl, //[in ] array size - * LPCITEMIDLIST* apidl, //[in ] simple pidl array - * REFIID riid, //[in ] Requested Interface - * UINT* prgfInOut, //[ ] reserved - * LPVOID* ppvObject) //[out] Resulting Interface - * - */ -static HRESULT WINAPI ISF_Printers_fnGetUIObjectOf (IShellFolder2 * iface, - HWND hwndOwner, UINT cidl, LPCITEMIDLIST * apidl, - REFIID riid, UINT * prgfInOut, LPVOID * ppvOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - IUnknown *pObj = NULL; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n", - This, hwndOwner, cidl, apidl, shdebugstr_guid (riid), prgfInOut, ppvOut); - - if (!ppvOut) - return hr; - - *ppvOut = NULL; - - if ((IsEqualIID (riid, &IID_IExtractIconA) || IsEqualIID(riid, &IID_IExtractIconW)) && (cidl == 1)) - { - IUnknown *pUnk = IEI_Printers_Constructor(apidl[0]); - hr = IUnknown_QueryInterface(pUnk, riid, (void**)&pObj); - IUnknown_Release(pUnk); - } - else - hr = E_NOINTERFACE; - - if (SUCCEEDED(hr) && !pObj) - hr = E_OUTOFMEMORY; - - *ppvOut = pObj; - TRACE ("(%p)->hr=0x%08lx\n", This, hr); - return hr; -} - -/************************************************************************** - * ISF_Printers_fnGetDisplayNameOf - * - */ -static HRESULT WINAPI ISF_Printers_fnGetDisplayNameOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet) -{ - LPWSTR pszName; - IGenericSFImpl *This = (IGenericSFImpl *)iface; - PIDLPrinterStruct * p; - - TRACE ("(%p)->(pidl=%p,0x%08lx,%p)\n", This, pidl, dwFlags, strRet); - pdump (pidl); - - if (!strRet) - { - WARN("no strRet\n"); - return E_INVALIDARG; - } - - if (_ILIsPrinter(pidl)) - { - pszName = CoTaskMemAlloc(MAX_PATH * sizeof(WCHAR)); - if (!pszName) - return E_OUTOFMEMORY; - - if (LoadStringW(shell32_hInstance, IDS_PRINTERS, pszName, MAX_PATH)) - { - pszName[MAX_PATH-1] = L'\0'; - strRet->uType = STRRET_WSTR; - strRet->u.pOleStr = pszName; - return S_OK; - } - CoTaskMemFree(pszName); - return E_FAIL; - } - - p = _ILGetPrinterStruct(pidl); - if (!p) - { - WARN("no printer struct\n"); - return E_INVALIDARG; - } - strRet->u.pOleStr = SHAlloc(p->offsServer * sizeof(WCHAR)); - if (!strRet->u.pOleStr) - return E_OUTOFMEMORY; - - memcpy((LPVOID)strRet->u.pOleStr, (LPVOID)p->szName, p->offsServer * sizeof(WCHAR)); - TRACE("ret %s\n", debugstr_w(strRet->u.pOleStr)); - - return S_OK; -} - -/************************************************************************** - * ISF_Printers_fnSetNameOf - * Changes the name of a file object or subfolder, possibly changing its item - * identifier in the process. - * - * PARAMETERS - * HWND hwndOwner, //[in ] Owner window for output - * LPCITEMIDLIST pidl, //[in ] simple pidl of item to change - * LPCOLESTR lpszName, //[in ] the items new display name - * DWORD dwFlags, //[in ] SHGNO formatting flags - * LPITEMIDLIST* ppidlOut) //[out] simple pidl returned - */ -static HRESULT WINAPI ISF_Printers_fnSetNameOf (IShellFolder2 * iface, - HWND hwndOwner, LPCITEMIDLIST pidl, /* simple pidl */ - LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST * pPidlOut) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)->(%p,pidl=%p,%s,%lu,%p)\n", This, hwndOwner, pidl, - debugstr_w (lpName), dwFlags, pPidlOut); - - return E_FAIL; -} - -static HRESULT WINAPI ISF_Printers_fnGetDefaultSearchGUID(IShellFolder2 *iface, - GUID * pguid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_Printers_fnEnumSearches (IShellFolder2 *iface, - IEnumExtraSearch ** ppenum) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p)\n", This); - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_Printers_fnGetDefaultColumn (IShellFolder2 * iface, - DWORD dwRes, ULONG * pSort, ULONG * pDisplay) -{ - if (pSort) - *pSort = 0; - if (pDisplay) - *pDisplay = 0; - - return S_OK; -} -static HRESULT WINAPI ISF_Printers_fnGetDefaultColumnState ( - IShellFolder2 * iface, UINT iColumn, DWORD * pcsFlags) -{ - if (!pcsFlags || iColumn >= PrinterSHELLVIEWCOLUMNS) - return E_INVALIDARG; - *pcsFlags = PrinterSFHeader[iColumn].pcsFlags; - return S_OK; - -} - -static HRESULT WINAPI ISF_Printers_fnGetDetailsEx (IShellFolder2 * iface, - LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p): stub\n", This); - - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_Printers_fnGetDetailsOf (IShellFolder2 * iface, - LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS * psd) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - WCHAR buffer[MAX_PATH] = {0}; - HRESULT hr = E_FAIL; - - TRACE("(%p)->(%p %i %p): stub\n", This, pidl, iColumn, psd); - - if (iColumn >= PrinterSHELLVIEWCOLUMNS) - return E_FAIL; - - psd->fmt = PrinterSFHeader[iColumn].fmt; - psd->cxChar = PrinterSFHeader[iColumn].cxChar; - if (pidl == NULL) - { - psd->str.uType = STRRET_WSTR; - if (LoadStringW(shell32_hInstance, PrinterSFHeader[iColumn].colnameid, buffer, MAX_PATH)) - hr = SHStrDupW(buffer, &psd->str.u.pOleStr); - - return hr; - } - - if (iColumn == COLUMN_NAME) - { - psd->str.uType = STRRET_WSTR; - return IShellFolder2_GetDisplayNameOf(iface, pidl, SHGDN_NORMAL, &psd->str); - } - - psd->str.uType = STRRET_CSTR; - psd->str.u.cStr[0] = '\0'; - - return E_NOTIMPL; -} - -static HRESULT WINAPI ISF_Printers_fnMapColumnToSCID ( - IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid) -{ - IGenericSFImpl *This = (IGenericSFImpl *)iface; - FIXME ("(%p): stub\n", This); - return E_NOTIMPL; -} - -static IShellFolder2Vtbl vt_ShellFolder2 = -{ - ISF_Printers_fnQueryInterface, - ISF_Printers_fnAddRef, - ISF_Printers_fnRelease, - ISF_Printers_fnParseDisplayName, - ISF_Printers_fnEnumObjects, - ISF_Printers_fnBindToObject, - ISF_Printers_fnBindToStorage, - ISF_Printers_fnCompareIDs, - ISF_Printers_fnCreateViewObject, - ISF_Printers_fnGetAttributesOf, - ISF_Printers_fnGetUIObjectOf, - ISF_Printers_fnGetDisplayNameOf, - ISF_Printers_fnSetNameOf, - /* ShellFolder2 */ - ISF_Printers_fnGetDefaultSearchGUID, - ISF_Printers_fnEnumSearches, - ISF_Printers_fnGetDefaultColumn, - ISF_Printers_fnGetDefaultColumnState, - ISF_Printers_fnGetDetailsEx, - ISF_Printers_fnGetDetailsOf, - ISF_Printers_fnMapColumnToSCID -}; - -/************************************************************************ - * IPF_Printers_QueryInterface - */ -static HRESULT WINAPI IPF_Printers_QueryInterface ( - IPersistFolder2 * iface, REFIID iid, LPVOID * ppvObj) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)\n", This); - - return IUnknown_QueryInterface (_IUnknown_ (This), iid, ppvObj); -} - -/************************************************************************ - * IPF_Printers_AddRef - */ -static ULONG WINAPI IPF_Printers_AddRef (IPersistFolder2 * iface) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(count=%lu)\n", This, This->ref); - - return IUnknown_AddRef (_IUnknown_ (This)); -} - -/************************************************************************ - * IPF_Printers_Release - */ -static ULONG WINAPI IPF_Printers_Release (IPersistFolder2 * iface) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(count=%lu)\n", This, This->ref); - - return IUnknown_Release (_IUnknown_ (This)); -} - -/************************************************************************ - * IPF_Printers_GetClassID - */ -static HRESULT WINAPI IPF_Printers_GetClassID ( - IPersistFolder2 * iface, CLSID * lpClassId) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)\n", This); - - *lpClassId = CLSID_Printers; - - return S_OK; -} - -/************************************************************************ - * IPF_Printers_Initialize - * - */ -static HRESULT WINAPI IPF_Printers_Initialize ( - IPersistFolder2 * iface, LPCITEMIDLIST pidl) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - if (This->pidlRoot) - SHFree((LPVOID)This->pidlRoot); - - This->pidlRoot = ILClone(pidl); - return S_OK; -} - -/************************************************************************** - * IPF_Printers_fnGetCurFolder - */ -static HRESULT WINAPI IPF_Printers_GetCurFolder ( - IPersistFolder2 * iface, LPITEMIDLIST * pidl) -{ - _ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface); - - TRACE ("(%p)->(%p)\n", This, pidl); - - *pidl = ILClone (This->pidlRoot); - return S_OK; -} - -static IPersistFolder2Vtbl vt_PersistFolder2 = -{ - IPF_Printers_QueryInterface, - IPF_Printers_AddRef, - IPF_Printers_Release, - IPF_Printers_GetClassID, - IPF_Printers_Initialize, - IPF_Printers_GetCurFolder -}; - -/************************************************************************** - * ISF_Printers_Constructor - */ -HRESULT WINAPI ISF_Printers_Constructor ( - IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) -{ - IGenericSFImpl *sf; - HRESULT hr; - - TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid)); - - if (pUnkOuter) - return CLASS_E_NOAGGREGATION; - - sf = HeapAlloc( GetProcessHeap(), 0, sizeof(*sf) ); - if (!sf) - return E_OUTOFMEMORY; - - sf->ref = 1; - sf->lpVtbl = &vt_ShellFolder2; - sf->lpVtblPersistFolder2 = &vt_PersistFolder2; - - sf->pidlRoot = _ILCreatePrinters(); /* my qualified pidl */ - - hr = IUnknown_QueryInterface( _IUnknown_(sf), riid, ppv ); - IUnknown_Release( _IUnknown_(sf) ); - - TRACE ("--(%p)\n", *ppv); - return hr; -} diff --git a/reactos/dll/win32/shell32/shfldr_recyclebin.c b/reactos/dll/win32/shell32/shfldr_recyclebin.c deleted file mode 100644 index 855f4accd1e..00000000000 --- a/reactos/dll/win32/shell32/shfldr_recyclebin.c +++ /dev/null @@ -1,1614 +0,0 @@ -/* - * Trash virtual folder support. The trashing engine is implemented in trash.c - * - * Copyright (C) 2006 Mikolaj Zalewski - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#define MAX_PROPERTY_SHEET_PAGE 32 - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(recyclebin); - -typedef struct -{ - int column_name_id; - const GUID *fmtId; - DWORD pid; - int pcsFlags; - int fmt; - int cxChars; -} columninfo; - -static const columninfo RecycleBinColumns[] = -{ - {IDS_SHV_COLUMN1, &FMTID_Storage, PID_STG_NAME, SHCOLSTATE_TYPE_STR|SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 30}, - {IDS_SHV_COLUMN_DELFROM, &FMTID_Displaced, PID_DISPLACED_FROM, SHCOLSTATE_TYPE_STR|SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 30}, - {IDS_SHV_COLUMN_DELDATE, &FMTID_Displaced, PID_DISPLACED_DATE, SHCOLSTATE_TYPE_DATE|SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20}, - {IDS_SHV_COLUMN2, &FMTID_Storage, PID_STG_SIZE, SHCOLSTATE_TYPE_INT|SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 20}, - {IDS_SHV_COLUMN3, &FMTID_Storage, PID_STG_STORAGETYPE,SHCOLSTATE_TYPE_INT|SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20}, - {IDS_SHV_COLUMN4, &FMTID_Storage, PID_STG_WRITETIME, SHCOLSTATE_TYPE_DATE|SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20}, -/* {"creation time", &FMTID_Storage, PID_STG_CREATETIME, SHCOLSTATE_TYPE_DATE, LVCFMT_LEFT, 20}, */ -/* {"attribs", &FMTID_Storage, PID_STG_ATTRIBUTES, SHCOLSTATE_TYPE_STR, LVCFMT_LEFT, 20}, */ -}; - -#define COLUMN_NAME 0 -#define COLUMN_DELFROM 1 -#define COLUMN_DATEDEL 2 -#define COLUMN_SIZE 3 -#define COLUMN_TYPE 4 -#define COLUMN_MTIME 5 - -#define COLUMNS_COUNT 6 - -/* - * Recycle Bin folder - */ - -typedef struct tagRecycleBin -{ - const IShellFolder2Vtbl *lpVtbl; - const IPersistFolder2Vtbl *lpPersistFolderVtbl; - const IContextMenu2Vtbl *lpContextMenu2; - const IShellExtInitVtbl *lpSEI; - LONG refCount; - INT iIdEmpty; - LPITEMIDLIST pidl; - LPCITEMIDLIST apidl; -} RecycleBin, *LPRecycleBin; - -typedef struct -{ - PIDLRecycleStruct *pFileDetails; - HANDLE hDeletedFile; - BOOL bFound; -}SEARCH_CONTEXT, *PSEARCH_CONTEXT; - -typedef struct -{ - DWORD dwNukeOnDelete; - DWORD dwSerial; - DWORD dwMaxCapacity; -}DRIVE_ITEM_CONTEXT, *PDRIVE_ITEM_CONTEXT; - - -static const IContextMenu2Vtbl recycleBincmVtblFolder; -static const IContextMenu2Vtbl recycleBincmVtblBitbucketItem; -static const IShellFolder2Vtbl recycleBinVtbl; -static const IPersistFolder2Vtbl recycleBinPersistVtbl; -static const IShellExtInitVtbl eivt; - -static LPRecycleBin __inline impl_from_IContextMenu2(IContextMenu2 *iface) -{ - return (RecycleBin *)((char *)iface - FIELD_OFFSET(RecycleBin, lpContextMenu2)); -} - -static LPRecycleBin __inline impl_from_IPersistFolder(IPersistFolder2 *iface) -{ - return (RecycleBin *)((char *)iface - FIELD_OFFSET(RecycleBin, lpPersistFolderVtbl)); -} - -static LPRecycleBin __inline impl_from_IShellExtInit( IShellExtInit *iface ) -{ - return (RecycleBin *)((char*)iface - FIELD_OFFSET(RecycleBin, lpSEI)); -} - -static void RecycleBin_Destructor(RecycleBin *This); - -HRESULT WINAPI RecycleBin_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppOutput) -{ - RecycleBin *obj; - HRESULT ret; - if (pUnkOuter) - return CLASS_E_NOAGGREGATION; - - obj = SHAlloc(sizeof(RecycleBin)); - if (obj == NULL) - return E_OUTOFMEMORY; - ZeroMemory(obj, sizeof(RecycleBin)); - obj->lpVtbl = &recycleBinVtbl; - obj->lpSEI = &eivt; - obj->lpPersistFolderVtbl = &recycleBinPersistVtbl; - obj->lpContextMenu2 = NULL; - if (FAILED(ret = IUnknown_QueryInterface((IUnknown *)obj, riid, ppOutput))) - { - RecycleBin_Destructor(obj); - return ret; - } -/* InterlockedIncrement(&objCount);*/ - return S_OK; -} - -static void RecycleBin_Destructor(RecycleBin *This) -{ -/* InterlockedDecrement(&objCount);*/ - SHFree(This->pidl); - SHFree(This); -} - -static HRESULT WINAPI RecycleBin_QueryInterface(IShellFolder2 *iface, REFIID riid, void **ppvObject) -{ - RecycleBin *This = (RecycleBin *)iface; - TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppvObject); - - *ppvObject = NULL; - if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IShellFolder) - || IsEqualGUID(riid, &IID_IShellFolder2)) - *ppvObject = This; - - if (IsEqualGUID(riid, &IID_IPersist) || IsEqualGUID(riid, &IID_IPersistFolder) - || IsEqualGUID(riid, &IID_IPersistFolder2)) - *ppvObject = (void *)&This->lpPersistFolderVtbl; - - else if (IsEqualIID(riid, &IID_IContextMenu) || IsEqualGUID(riid, &IID_IContextMenu2)) - { - This->lpContextMenu2 = &recycleBincmVtblFolder; - *ppvObject = (void *)&This->lpContextMenu2; - } - else if(IsEqualIID(riid, &IID_IShellExtInit)) - { - *ppvObject = (void *)&(This->lpSEI); - } - - if (*ppvObject != NULL) - { - IUnknown_AddRef((IUnknown *)*ppvObject); - return S_OK; - } - WARN("no interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; -} - -static ULONG WINAPI RecycleBin_AddRef(IShellFolder2 *iface) -{ - RecycleBin *This = (RecycleBin *)iface; - TRACE("(%p)\n", This); - return InterlockedIncrement(&This->refCount); -} - -static ULONG WINAPI RecycleBin_Release(IShellFolder2 *iface) -{ - RecycleBin *This = (RecycleBin *)iface; - LONG result; - - TRACE("(%p)\n", This); - result = InterlockedDecrement(&This->refCount); - if (result == 0) - { - TRACE("Destroy object\n"); - RecycleBin_Destructor(This); - } - return result; -} - -static HRESULT WINAPI RecycleBin_ParseDisplayName(IShellFolder2 *This, HWND hwnd, LPBC pbc, - LPOLESTR pszDisplayName, ULONG *pchEaten, LPITEMIDLIST *ppidl, - ULONG *pdwAttributes) -{ - FIXME("stub\n"); - return E_NOTIMPL; -} - - -PDELETED_FILE_DETAILS_W -UnpackDetailsFromPidl(LPCITEMIDLIST pidl) -{ - return (PDELETED_FILE_DETAILS_W)&pidl->mkid.abID; -} - -static LPITEMIDLIST _ILCreateRecycleItem(PDELETED_FILE_DETAILS_W pFileDetails) -{ - PIDLDATA tmp; - LPITEMIDLIST pidl; - PIDLRecycleStruct * p; - int size0 = (char*)&tmp.u.crecycle.szName-(char*)&tmp.u.crecycle; - int size = size0; - - tmp.type = 0x00; - size += (wcslen(pFileDetails->FileName) + 1) * sizeof(WCHAR); - - pidl = (LPITEMIDLIST)SHAlloc(size + 4); - if (!pidl) - return pidl; - - pidl->mkid.cb = size+2; - memcpy(pidl->mkid.abID, &tmp, 2+size0); - - p = &((PIDLDATA*)pidl->mkid.abID)->u.crecycle; - RtlCopyMemory(p, pFileDetails, sizeof(DELETED_FILE_DETAILS_W)); - wcscpy(p->szName, pFileDetails->FileName); - *(WORD*)((char*)pidl+(size+2)) = 0; - return pidl; -} - -static PIDLRecycleStruct * _ILGetRecycleStruct(LPCITEMIDLIST pidl) -{ - LPPIDLDATA pdata = _ILGetDataPointer(pidl); - - if (pdata && pdata->type==0x00) - return (PIDLRecycleStruct*)&(pdata->u.crecycle); - - return NULL; -} - -BOOL -WINAPI -CBSearchBitBucket(IN PVOID Context, IN HANDLE hDeletedFile) -{ - PSEARCH_CONTEXT pContext = (PSEARCH_CONTEXT)Context; - - PDELETED_FILE_DETAILS_W pFileDetails; - DWORD dwSize; - BOOL ret; - - if (!GetDeletedFileDetailsW(hDeletedFile, - 0, - NULL, - &dwSize) && - GetLastError() != ERROR_INSUFFICIENT_BUFFER) - { - ERR("GetDeletedFileDetailsW failed\n"); - return FALSE; - } - - pFileDetails = SHAlloc(dwSize); - if (!pFileDetails) - { - ERR("No memory\n"); - return FALSE; - } - - if (!GetDeletedFileDetailsW(hDeletedFile, - dwSize, - pFileDetails, - NULL)) - { - ERR("GetDeletedFileDetailsW failed\n"); - SHFree(pFileDetails); - return FALSE; - } - - ret = memcmp(pFileDetails, pContext->pFileDetails, dwSize); - if (!ret) - { - pContext->hDeletedFile = hDeletedFile; - pContext->bFound = TRUE; - } - else - CloseRecycleBinHandle(hDeletedFile); - - SHFree(pFileDetails); - return ret; -} - - - -BOOL -WINAPI -CBEnumBitBucket(IN PVOID Context, IN HANDLE hDeletedFile) -{ - PDELETED_FILE_DETAILS_W pFileDetails; - DWORD dwSize; - LPITEMIDLIST pidl = NULL; - BOOL ret; - - if (!GetDeletedFileDetailsW(hDeletedFile, - 0, - NULL, - &dwSize) && - GetLastError() != ERROR_INSUFFICIENT_BUFFER) - { - ERR("GetDeletedFileDetailsW failed\n"); - return FALSE; - } - - pFileDetails = SHAlloc(dwSize); - if (!pFileDetails) - { - ERR("No memory\n"); - return FALSE; - } - - if (!GetDeletedFileDetailsW(hDeletedFile, - dwSize, - pFileDetails, - NULL)) - { - ERR("GetDeletedFileDetailsW failed\n"); - SHFree(pFileDetails); - return FALSE; - } - - pidl = _ILCreateRecycleItem(pFileDetails); - if (!pidl) - { - SHFree(pFileDetails); - return FALSE; - } - - ret = AddToEnumList((IEnumIDList*)Context, pidl); - - if (!ret) - SHFree(pidl); - SHFree(pFileDetails); - TRACE("Returning %d\n", ret); - CloseRecycleBinHandle(hDeletedFile); - return ret; -} - -static HRESULT WINAPI RecycleBin_EnumObjects(IShellFolder2 *iface, HWND hwnd, SHCONTF grfFlags, IEnumIDList **ppenumIDList) -{ - RecycleBin *This = (RecycleBin *)iface; - IEnumIDList *list; - static LPCWSTR szDrive = L"C:\\"; - - TRACE("(%p, %p, %x, %p)\n", This, hwnd, (unsigned int)grfFlags, ppenumIDList); - - if (grfFlags & SHCONTF_NONFOLDERS) - { - TRACE("Starting Enumeration\n"); - *ppenumIDList = NULL; - list = IEnumIDList_Constructor(); - if (list == NULL) - return E_OUTOFMEMORY; - - if (!EnumerateRecycleBinW(szDrive, //FIXME - CBEnumBitBucket, - (PVOID)list)) - { - WARN("Error: EnumerateRecycleBinW failed\n"); - } - *ppenumIDList = list; - } - else - { - *ppenumIDList = IEnumIDList_Constructor(); - if (*ppenumIDList == NULL) - return E_OUTOFMEMORY; - } - - return S_OK; - -} - -static HRESULT WINAPI RecycleBin_BindToObject(IShellFolder2 *This, LPCITEMIDLIST pidl, LPBC pbc, REFIID riid, void **ppv) -{ - FIXME("(%p, %p, %p, %s, %p) - stub\n", This, pidl, pbc, debugstr_guid(riid), ppv); - return E_NOTIMPL; -} - -static HRESULT WINAPI RecycleBin_BindToStorage(IShellFolder2 *This, LPCITEMIDLIST pidl, LPBC pbc, REFIID riid, void **ppv) -{ - FIXME("(%p, %p, %p, %s, %p) - stub\n", This, pidl, pbc, debugstr_guid(riid), ppv); - return E_NOTIMPL; -} - -static HRESULT WINAPI RecycleBin_CompareIDs(IShellFolder2 *iface, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - RecycleBin *This = (RecycleBin *)iface; - - /* TODO */ - TRACE("(%p, %p, %p, %p)\n", This, (void *)lParam, pidl1, pidl2); - if (pidl1->mkid.cb != pidl2->mkid.cb) - return MAKE_HRESULT(SEVERITY_SUCCESS, 0, pidl1->mkid.cb - pidl2->mkid.cb); - return MAKE_HRESULT(SEVERITY_SUCCESS, 0, (unsigned short)memcmp(pidl1->mkid.abID, pidl2->mkid.abID, pidl1->mkid.cb)); -} - -static HRESULT WINAPI RecycleBin_CreateViewObject(IShellFolder2 *iface, HWND hwndOwner, REFIID riid, void **ppv) -{ - RecycleBin *This = (RecycleBin *)iface; - LPSHELLVIEW pShellView; - HRESULT hr = E_NOINTERFACE; - - TRACE("(%p, %p, %s, %p)\n", This, hwndOwner, debugstr_guid(riid), ppv); - - if (!ppv) - return hr; - - *ppv = NULL; - - if (IsEqualIID (riid, &IID_IDropTarget)) - { - WARN ("IDropTarget not implemented\n"); - hr = E_NOTIMPL; - } - else if (IsEqualIID (riid, &IID_IContextMenu) || IsEqualIID (riid, &IID_IContextMenu2)) - { - This->lpContextMenu2 = &recycleBincmVtblFolder; - *ppv = (void *)&This->lpContextMenu2; - This->refCount++; - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IShellView)) - { - pShellView = IShellView_Constructor ((IShellFolder *) iface); - if (pShellView) - { - hr = IShellView_QueryInterface (pShellView, riid, ppv); - IShellView_Release (pShellView); - } - } - else - return hr; - TRACE ("-- (%p)->(interface=%p)\n", This, ppv); - return hr; - -} - -static HRESULT WINAPI RecycleBin_GetAttributesOf(IShellFolder2 *This, UINT cidl, LPCITEMIDLIST *apidl, - SFGAOF *rgfInOut) -{ - TRACE("(%p, %d, {%p, ...}, {%x})\n", This, cidl, apidl[0], (unsigned int)*rgfInOut); - *rgfInOut &= SFGAO_CANMOVE|SFGAO_CANDELETE|SFGAO_HASPROPSHEET|SFGAO_FILESYSTEM; - return S_OK; -} - -static HRESULT WINAPI RecycleBin_GetUIObjectOf(IShellFolder2 *iface, HWND hwndOwner, UINT cidl, LPCITEMIDLIST *apidl, - REFIID riid, UINT *prgfInOut, void **ppv) -{ - IUnknown *pObj = NULL; - HRESULT hr = E_INVALIDARG; - RecycleBin * This = (RecycleBin*)iface; - - TRACE ("(%p)->(%p,%u,apidl=%p, %p %p)\n", This, - hwndOwner, cidl, apidl, prgfInOut, ppv); - - if (!ppv) - return hr; - - *ppv = NULL; - - if ((IsEqualIID (riid, &IID_IContextMenu) || IsEqualIID(riid, &IID_IContextMenu2)) && (cidl >= 1)) - { - This->lpContextMenu2 = &recycleBincmVtblBitbucketItem; - pObj = (IUnknown*)(&This->lpContextMenu2); - This->apidl = apidl[0]; - IUnknown_AddRef(pObj); - hr = S_OK; - } - else if (IsEqualIID (riid, &IID_IDropTarget) && (cidl >= 1)) - { - hr = IShellFolder_QueryInterface (iface, &IID_IDropTarget, (LPVOID *) & pObj); - } - else - hr = E_NOINTERFACE; - - if (SUCCEEDED(hr) && !pObj) - hr = E_OUTOFMEMORY; - - *ppv = pObj; - TRACE ("(%p)->hr=0x%08x\n", This, hr); - return hr; -} - -static HRESULT WINAPI RecycleBin_GetDisplayNameOf(IShellFolder2 *This, LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET *pName) -{ - PIDLRecycleStruct *pFileDetails; - LPWSTR pFileName; - - TRACE("(%p, %p, %x, %p)\n", This, pidl, (unsigned int)uFlags, pName); - - - if (_ILIsBitBucket (pidl)) - { - WCHAR pszPath[100]; - - if (HCR_GetClassNameW(&CLSID_RecycleBin, pszPath, MAX_PATH)) - { - pName->uType = STRRET_WSTR; - pName->u.pOleStr = StrDupW(pszPath); - return S_OK; - } - } - - pFileDetails = _ILGetRecycleStruct(pidl); - if (!pFileDetails) - { - pName->u.cStr[0] = 0; - pName->uType = STRRET_CSTR; - return E_INVALIDARG; - } - - pFileName = wcsrchr(pFileDetails->szName, L'\\'); - if (!pFileName) - { - pName->u.cStr[0] = 0; - pName->uType = STRRET_CSTR; - return E_UNEXPECTED; - } - - pName->u.pOleStr = StrDupW(pFileName + 1); - if (pName->u.pOleStr == NULL) - return E_OUTOFMEMORY; - - pName->uType = STRRET_WSTR; - return S_OK; -} - -static HRESULT WINAPI RecycleBin_SetNameOf(IShellFolder2 *This, HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR pszName, - SHGDNF uFlags, LPITEMIDLIST *ppidlOut) -{ - TRACE("\n"); - return E_FAIL; /* not supported */ -} - -static HRESULT WINAPI RecycleBin_GetDefaultSearchGUID(IShellFolder2 *iface, GUID *pguid) -{ - FIXME("stub\n"); - return E_NOTIMPL; -} - -static HRESULT WINAPI RecycleBin_EnumSearches(IShellFolder2 *iface, IEnumExtraSearch **ppEnum) -{ - FIXME("stub\n"); - *ppEnum = NULL; - return E_NOTIMPL; -} - -static HRESULT WINAPI RecycleBin_GetDefaultColumn(IShellFolder2 *iface, DWORD dwReserved, ULONG *pSort, ULONG *pDisplay) -{ - RecycleBin *This = (RecycleBin *)iface; - TRACE("(%p, %x, %p, %p)\n", This, (unsigned int)dwReserved, pSort, pDisplay); - *pSort = 0; - *pDisplay = 0; - return S_OK; -} - -static HRESULT WINAPI RecycleBin_GetDefaultColumnState(IShellFolder2 *iface, UINT iColumn, SHCOLSTATEF *pcsFlags) -{ - RecycleBin *This = (RecycleBin *)iface; - TRACE("(%p, %d, %p)\n", This, iColumn, pcsFlags); - if (iColumn >= COLUMNS_COUNT) - return E_INVALIDARG; - *pcsFlags = RecycleBinColumns[iColumn].pcsFlags; - return S_OK; -} - -static HRESULT WINAPI RecycleBin_GetDetailsEx(IShellFolder2 *iface, LPCITEMIDLIST pidl, const SHCOLUMNID *pscid, VARIANT *pv) -{ - FIXME("stub\n"); - return E_NOTIMPL; -} - -static HRESULT FormatDateTime(LPWSTR buffer, int size, FILETIME * ft) -{ - FILETIME lft; - SYSTEMTIME time; - int ret; - - FileTimeToLocalFileTime(ft, &lft); - FileTimeToSystemTime(&lft, &time); - - ret = GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &time, NULL, buffer, size); - if (ret>0 && ret= COLUMNS_COUNT) - return E_FAIL; - pDetails->fmt = RecycleBinColumns[iColumn].fmt; - pDetails->cxChar = RecycleBinColumns[iColumn].cxChars; - if (pidl == NULL) - { - pDetails->str.uType = STRRET_WSTR; - LoadStringW(shell32_hInstance, RecycleBinColumns[iColumn].column_name_id, buffer, MAX_PATH); - return SHStrDupW(buffer, &pDetails->str.u.pOleStr); - } - - if (iColumn == COLUMN_NAME) - return RecycleBin_GetDisplayNameOf(iface, pidl, SHGDN_NORMAL, &pDetails->str); - - pFileDetails = _ILGetRecycleStruct(pidl); - switch (iColumn) - { - case COLUMN_DATEDEL: - FormatDateTime(buffer, MAX_PATH, &pFileDetails->DeletionTime); - break; - case COLUMN_DELFROM: - pszBackslash = wcsrchr(pFileDetails->szName, L'\\'); - Length = (pszBackslash - pFileDetails->szName); - memcpy((LPVOID)buffer, pFileDetails->szName, Length * sizeof(WCHAR)); - buffer[Length] = L'\0'; - break; - case COLUMN_SIZE: - StrFormatKBSizeW(pFileDetails->FileSize.QuadPart, buffer, MAX_PATH); - break; - case COLUMN_MTIME: - FormatDateTime(buffer, MAX_PATH, &pFileDetails->LastModification); - break; - case COLUMN_TYPE: - szTypeName[0] = L'\0'; - wcscpy(buffer,PathFindExtensionW(pFileDetails->szName)); - if (!( HCR_MapTypeToValueW(buffer, buffer, sizeof(buffer)/sizeof(WCHAR), TRUE) && - HCR_MapTypeToValueW(buffer, szTypeName, sizeof(szTypeName)/sizeof(WCHAR), FALSE ))) - { - wcscpy (szTypeName, PathFindExtensionW(pFileDetails->szName)); - wcscat(szTypeName, L"-"); - Length = wcslen(szTypeName); - if (LoadStringW(shell32_hInstance, IDS_SHV_COLUMN1, &szTypeName[Length], (sizeof(szTypeName)/sizeof(WCHAR))- Length)) - szTypeName[(sizeof(szTypeName)/sizeof(WCHAR))-1] = L'\0'; - } - pDetails->str.uType = STRRET_WSTR; - return SHStrDupW(szTypeName, &pDetails->str.u.pOleStr); - break; - default: - return E_FAIL; - } - - pDetails->str.uType = STRRET_WSTR; - return SHStrDupW(buffer, &pDetails->str.u.pOleStr); -} - -static HRESULT WINAPI RecycleBin_MapColumnToSCID(IShellFolder2 *iface, UINT iColumn, SHCOLUMNID *pscid) -{ - RecycleBin *This = (RecycleBin *)iface; - TRACE("(%p, %d, %p)\n", This, iColumn, pscid); - if (iColumn>=COLUMNS_COUNT) - return E_INVALIDARG; - pscid->fmtid = *RecycleBinColumns[iColumn].fmtId; - pscid->pid = RecycleBinColumns[iColumn].pid; - return S_OK; -} - -static const IShellFolder2Vtbl recycleBinVtbl = -{ - /* IUnknown */ - RecycleBin_QueryInterface, - RecycleBin_AddRef, - RecycleBin_Release, - - /* IShellFolder */ - RecycleBin_ParseDisplayName, - RecycleBin_EnumObjects, - RecycleBin_BindToObject, - RecycleBin_BindToStorage, - RecycleBin_CompareIDs, - RecycleBin_CreateViewObject, - RecycleBin_GetAttributesOf, - RecycleBin_GetUIObjectOf, - RecycleBin_GetDisplayNameOf, - RecycleBin_SetNameOf, - - /* IShellFolder2 */ - RecycleBin_GetDefaultSearchGUID, - RecycleBin_EnumSearches, - RecycleBin_GetDefaultColumn, - RecycleBin_GetDefaultColumnState, - RecycleBin_GetDetailsEx, - RecycleBin_GetDetailsOf, - RecycleBin_MapColumnToSCID -}; - -static HRESULT WINAPI RecycleBin_IPersistFolder2_GetClassID(IPersistFolder2 *This, CLSID *pClassID) -{ - TRACE("(%p, %p)\n", This, pClassID); - if (This == NULL || pClassID == NULL) - return E_INVALIDARG; - memcpy(pClassID, &CLSID_RecycleBin, sizeof(CLSID)); - return S_OK; -} - -static HRESULT WINAPI RecycleBin_IPersistFolder2_Initialize(IPersistFolder2 *iface, LPCITEMIDLIST pidl) -{ - RecycleBin *This = impl_from_IPersistFolder(iface); - TRACE("(%p, %p)\n", This, pidl); - - SHFree((LPVOID)This->pidl); - This->pidl = ILClone(pidl); - if (This->pidl == NULL) - return E_OUTOFMEMORY; - return S_OK; -} - -static HRESULT WINAPI RecycleBin_IPersistFolder2_GetCurFolder(IPersistFolder2 *iface, LPITEMIDLIST *ppidl) -{ - RecycleBin *This = impl_from_IPersistFolder(iface); - TRACE("\n"); - *ppidl = ILClone(This->pidl); - return S_OK; -} - -static HRESULT WINAPI RecycleBin_IPersistFolder2_QueryInterface(IPersistFolder2 *This, REFIID riid, void **ppvObject) -{ - return RecycleBin_QueryInterface((IShellFolder2 *)impl_from_IPersistFolder(This), riid, ppvObject); -} - -static ULONG WINAPI RecycleBin_IPersistFolder2_AddRef(IPersistFolder2 *This) -{ - return RecycleBin_AddRef((IShellFolder2 *)impl_from_IPersistFolder(This)); -} - -static ULONG WINAPI RecycleBin_IPersistFolder2_Release(IPersistFolder2 *This) -{ - return RecycleBin_Release((IShellFolder2 *)impl_from_IPersistFolder(This)); -} - -static const IPersistFolder2Vtbl recycleBinPersistVtbl = -{ - /* IUnknown */ - RecycleBin_IPersistFolder2_QueryInterface, - RecycleBin_IPersistFolder2_AddRef, - RecycleBin_IPersistFolder2_Release, - - /* IPersist */ - RecycleBin_IPersistFolder2_GetClassID, - /* IPersistFolder */ - RecycleBin_IPersistFolder2_Initialize, - /* IPersistFolder2 */ - RecycleBin_IPersistFolder2_GetCurFolder -}; - -/************************************************************************* - * BitBucket IShellExtInit interface - */ - -static HRESULT WINAPI -RecycleBin_ExtInit_QueryInterface( IShellExtInit* iface, REFIID riid, void** ppvObject ) -{ - return RecycleBin_QueryInterface((IShellFolder2 *)impl_from_IShellExtInit(iface), riid, ppvObject); -} - -static ULONG WINAPI -RecycleBin_ExtInit_AddRef( IShellExtInit* iface ) -{ - return RecycleBin_AddRef((IShellFolder2 *)impl_from_IShellExtInit(iface)); -} - -static ULONG WINAPI -RecycleBin_ExtInit_Release( IShellExtInit* iface ) -{ - return RecycleBin_Release((IShellFolder2 *)impl_from_IShellExtInit(iface)); -} - -static HRESULT WINAPI -RecycleBin_ExtInit_Initialize( IShellExtInit* iface, LPCITEMIDLIST pidlFolder, - IDataObject *pdtobj, HKEY hkeyProgID ) -{ - RecycleBin *This = impl_from_IShellExtInit(iface); - - TRACE("%p %p %p %p\n", This, pidlFolder, pdtobj, hkeyProgID ); - return S_OK; -} - - -static const IShellExtInitVtbl eivt = -{ - RecycleBin_ExtInit_QueryInterface, - RecycleBin_ExtInit_AddRef, - RecycleBin_ExtInit_Release, - RecycleBin_ExtInit_Initialize -}; - - -/************************************************************************* - * BitBucket context menu - * - */ - -static HRESULT WINAPI -RecycleBin_IContextMenu2Folder_QueryInterface( IContextMenu2* iface, REFIID riid, void** ppvObject ) -{ - return RecycleBin_QueryInterface((IShellFolder2 *)impl_from_IContextMenu2(iface), riid, ppvObject); -} - -static ULONG WINAPI -RecycleBin_IContextMenu2Folder_AddRef( IContextMenu2* iface ) -{ - return RecycleBin_AddRef((IShellFolder2 *)impl_from_IContextMenu2(iface)); -} - -static ULONG WINAPI -RecycleBin_IContextMenu2Folder_Release( IContextMenu2* iface ) -{ - return RecycleBin_Release((IShellFolder2 *)impl_from_IContextMenu2(iface)); -} - -static HRESULT WINAPI -RecycleBin_IContextMenu2Folder_QueryContextMenu( IContextMenu2* iface, HMENU hmenu, UINT indexMenu, - UINT idCmdFirst, UINT idCmdLast, UINT uFlags ) -{ - WCHAR szBuffer[100]; - MENUITEMINFOW mii; - int id = 1; - RecycleBin * This = impl_from_IContextMenu2(iface); - - TRACE("%p %p %u %u %u %u\n", This, - hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags ); - - if ( !hmenu ) - return E_INVALIDARG; - - memset( &mii, 0, sizeof(mii) ); - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_TYPE | MIIM_ID | MIIM_STATE; - mii.fState = MFS_ENABLED; - szBuffer[0] = L'\0'; - LoadStringW(shell32_hInstance, IDS_EMPTY_BITBUCKET, szBuffer, sizeof(szBuffer)/sizeof(WCHAR)); - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - mii.dwTypeData = szBuffer; - mii.cch = wcslen( mii.dwTypeData ); - mii.wID = idCmdFirst + id++; - mii.fType = MFT_STRING; - This->iIdEmpty = 1; - - if (!InsertMenuItemW( hmenu, indexMenu, TRUE, &mii )) - return E_FAIL; - - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, id ); -} - -static HRESULT WINAPI -RecycleBin_IContextMenu2Folder_InvokeCommand( IContextMenu2* iface, LPCMINVOKECOMMANDINFO lpici ) -{ - HRESULT hr; - LPSHELLBROWSER lpSB; - LPSHELLVIEW lpSV = NULL; - RecycleBin * This = impl_from_IContextMenu2(iface); - - TRACE("%p %p verb %p\n", This, lpici, lpici->lpVerb); - - if ( LOWORD(lpici->lpVerb) == This->iIdEmpty) - { - // FIXME - // path & flags - hr = SHEmptyRecycleBinW(lpici->hwnd, L"C:\\", 0); - TRACE("result %x\n", hr); - if (hr != S_OK) - { - return hr; - } - - if((lpSB = (LPSHELLBROWSER)SendMessageA(lpici->hwnd, CWM_GETISHELLBROWSER,0,0))) - { - if(SUCCEEDED(IShellBrowser_QueryActiveShellView(lpSB, &lpSV))) - { - IShellView_Refresh(lpSV); - } - } - } - return S_OK; -} - -static HRESULT WINAPI -RecycleBin_IContextMenu2Folder_GetCommandString( IContextMenu2* iface, UINT_PTR idCmd, UINT uType, - UINT* pwReserved, LPSTR pszName, UINT cchMax ) -{ - RecycleBin * This = impl_from_IContextMenu2(iface); - - FIXME("%p %lu %u %p %p %u\n", This, - idCmd, uType, pwReserved, pszName, cchMax ); - - return E_NOTIMPL; -} - -/************************************************************************** -* RecycleBin_IContextMenu2Item_HandleMenuMsg() -*/ -static HRESULT WINAPI RecycleBin_IContextMenu2Folder_HandleMenuMsg( - IContextMenu2 *iface, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - RecycleBin * This = impl_from_IContextMenu2(iface); - - TRACE("RecycleBin_IContextMenu2Item_IContextMenu2Folder_HandleMenuMsg (%p)->(msg=%x wp=%lx lp=%lx)\n",This, uMsg, wParam, lParam); - - return E_NOTIMPL; -} - - -static const IContextMenu2Vtbl recycleBincmVtblFolder = -{ - RecycleBin_IContextMenu2Folder_QueryInterface, - RecycleBin_IContextMenu2Folder_AddRef, - RecycleBin_IContextMenu2Folder_Release, - RecycleBin_IContextMenu2Folder_QueryContextMenu, - RecycleBin_IContextMenu2Folder_InvokeCommand, - RecycleBin_IContextMenu2Folder_GetCommandString, - RecycleBin_IContextMenu2Folder_HandleMenuMsg -}; - - -/************************************************************************** -* IContextMenu2 Bitbucket Item Implementation -*/ - -/************************************************************************ - * RecycleBin_IContextMenu2Item_QueryInterface - */ -static HRESULT WINAPI RecycleBin_IContextMenu2Item_QueryInterface(IContextMenu2 * iface, REFIID iid, LPVOID * ppvObject) -{ - RecycleBin * This = impl_from_IContextMenu2(iface); - - TRACE("(%p)\n", This); - - return RecycleBin_QueryInterface((IShellFolder2*)This, iid, ppvObject); -} - -/************************************************************************ - * RecycleBin_IContextMenu2Item_AddRef - */ -static ULONG WINAPI RecycleBin_IContextMenu2Item_AddRef(IContextMenu2 * iface) -{ - RecycleBin * This = impl_from_IContextMenu2(iface); - - TRACE("(%p)->(count=%u)\n", This, This->refCount); - - return RecycleBin_AddRef((IShellFolder2*)This); -} - -/************************************************************************ - * RecycleBin_IContextMenu2Item_Release - */ -static ULONG WINAPI RecycleBin_IContextMenu2Item_Release(IContextMenu2 * iface) -{ - RecycleBin * This = impl_from_IContextMenu2(iface); - - TRACE("(%p)->(count=%u)\n", This, This->refCount); - - return RecycleBin_Release((IShellFolder2*)This); -} - -/************************************************************************** -* RecycleBin_IContextMenu2Item_QueryContextMenu() -*/ -static HRESULT WINAPI RecycleBin_IContextMenu2Item_QueryContextMenu( - IContextMenu2 *iface, - HMENU hMenu, - UINT indexMenu, - UINT idCmdFirst, - UINT idCmdLast, - UINT uFlags) -{ - WCHAR szBuffer[30] = {0}; - ULONG Count = 1; - - RecycleBin * This = impl_from_IContextMenu2(iface); - - TRACE("(%p)->(hmenu=%p indexmenu=%x cmdfirst=%x cmdlast=%x flags=%x )\n", - This, hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags); - - if (LoadStringW(shell32_hInstance, IDS_RESTORE, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count, MFT_STRING, szBuffer, MFS_ENABLED); - Count++; - } - - if (LoadStringW(shell32_hInstance, IDS_CUT, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, MFT_SEPARATOR, NULL, MFS_ENABLED); - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, MFT_STRING, szBuffer, MFS_ENABLED); - } - - if (LoadStringW(shell32_hInstance, IDS_DELETE, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, MFT_SEPARATOR, NULL, MFS_ENABLED); - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, MFT_STRING, szBuffer, MFS_ENABLED); - } - - if (LoadStringW(shell32_hInstance, IDS_PROPERTIES, szBuffer, sizeof(szBuffer)/sizeof(WCHAR))) - { - szBuffer[(sizeof(szBuffer)/sizeof(WCHAR))-1] = L'\0'; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count++, MFT_SEPARATOR, NULL, MFS_ENABLED); - _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + Count, MFT_STRING, szBuffer, MFS_DEFAULT); - } - - return MAKE_HRESULT(SEVERITY_SUCCESS, 0, Count); -} - - -/************************************************************************** -* RecycleBin_IContextMenu2Item_InvokeCommand() -*/ -static HRESULT WINAPI RecycleBin_IContextMenu2Item_InvokeCommand( - IContextMenu2 *iface, - LPCMINVOKECOMMANDINFO lpcmi) -{ - - SEARCH_CONTEXT Context; - RecycleBin * This = impl_from_IContextMenu2(iface); - static LPCWSTR szDrive = L"C:\\"; - - TRACE("(%p)->(invcom=%p verb=%p wnd=%p)\n",This,lpcmi,lpcmi->lpVerb, lpcmi->hwnd); - - if (lpcmi->lpVerb == MAKEINTRESOURCEA(1) || lpcmi->lpVerb == MAKEINTRESOURCEA(5)) - { - Context.pFileDetails = _ILGetRecycleStruct(This->apidl); - Context.bFound = FALSE; - - EnumerateRecycleBinW(szDrive, CBSearchBitBucket, (PVOID)&Context); - if (!Context.bFound) - return E_FAIL; - - if (lpcmi->lpVerb == MAKEINTRESOURCEA(1)) - { - /* restore file */ - if (RestoreFile(Context.hDeletedFile)) - return S_OK; - else - return E_FAIL; - } - else - { - DeleteFileHandleToRecycleBin(Context.hDeletedFile); - return E_NOTIMPL; - } - } - else if (lpcmi->lpVerb == MAKEINTRESOURCEA(3)) - { - FIXME("implement cut\n"); - return E_NOTIMPL; - } - else if (lpcmi->lpVerb == MAKEINTRESOURCEA(7)) - { - FIXME("implement properties\n"); - return E_NOTIMPL; - } - - return S_OK; -} - -/************************************************************************** - * RecycleBin_IContextMenu2Item_GetCommandString() - * - */ -static HRESULT WINAPI RecycleBin_IContextMenu2Item_GetCommandString( - IContextMenu2 *iface, - UINT_PTR idCommand, - UINT uFlags, - UINT* lpReserved, - LPSTR lpszName, - UINT uMaxNameLen) -{ - RecycleBin * This = impl_from_IContextMenu2(iface); - - TRACE("(%p)->(idcom=%lx flags=%x %p name=%p len=%x)\n",This, idCommand, uFlags, lpReserved, lpszName, uMaxNameLen); - - - return E_FAIL; -} - - - -/************************************************************************** -* RecycleBin_IContextMenu2Item_HandleMenuMsg() -*/ -static HRESULT WINAPI RecycleBin_IContextMenu2Item_HandleMenuMsg( - IContextMenu2 *iface, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - RecycleBin * This = impl_from_IContextMenu2(iface); - - TRACE("RecycleBin_IContextMenu2Item_HandleMenuMsg (%p)->(msg=%x wp=%lx lp=%lx)\n",This, uMsg, wParam, lParam); - - return E_NOTIMPL; -} - -static const IContextMenu2Vtbl recycleBincmVtblBitbucketItem = -{ - RecycleBin_IContextMenu2Item_QueryInterface, - RecycleBin_IContextMenu2Item_AddRef, - RecycleBin_IContextMenu2Item_Release, - RecycleBin_IContextMenu2Item_QueryContextMenu, - RecycleBin_IContextMenu2Item_InvokeCommand, - RecycleBin_IContextMenu2Item_GetCommandString, - RecycleBin_IContextMenu2Item_HandleMenuMsg -}; - - -void toggleNukeOnDeleteOption(HWND hwndDlg, BOOL bEnable) -{ - if (bEnable) - { - SendDlgItemMessage(hwndDlg, 14001, BM_SETCHECK, BST_UNCHECKED, 0); - EnableWindow(GetDlgItem(hwndDlg, 14002), FALSE); - SendDlgItemMessage(hwndDlg, 14003, BM_SETCHECK, BST_CHECKED, 0); - } - else - { - SendDlgItemMessage(hwndDlg, 14001, BM_SETCHECK, BST_CHECKED, 0); - EnableWindow(GetDlgItem(hwndDlg, 14002), TRUE); - SendDlgItemMessage(hwndDlg, 14003, BM_SETCHECK, BST_UNCHECKED, 0); - } -} - - -void -InitializeBitBucketDlg(HWND hwndDlg, WCHAR DefaultDrive) -{ - WCHAR CurDrive = L'A'; - WCHAR szDrive[] = L"A:\\"; - DWORD dwDrives; - WCHAR szName[100]; - WCHAR szVolume[100]; - DWORD MaxComponent, Flags; - DWORD dwSerial; - LVCOLUMNW lc; - HWND hDlgCtrl; - LVITEMW li; - INT itemCount; - ULARGE_INTEGER TotalNumberOfFreeBytes, TotalNumberOfBytes, FreeBytesAvailable; - RECT rect; - int columnSize; - int defIndex = 0; - DWORD dwSize; - PDRIVE_ITEM_CONTEXT pItem = NULL, pDefault = NULL, pFirst = NULL; - - hDlgCtrl = GetDlgItem(hwndDlg, 14000); - - if (!LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_LOCATION, szVolume, sizeof(szVolume) / sizeof(WCHAR))) - szVolume[0] = 0; - - GetClientRect(hDlgCtrl, &rect); - - memset(&lc, 0, sizeof(LV_COLUMN) ); - lc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_FMT; - - columnSize = 140; //FIXME - lc.iSubItem = 0; - lc.fmt = LVCFMT_FIXED_WIDTH; - lc.cx = columnSize; - lc.cchTextMax = wcslen(szVolume); - lc.pszText = szVolume; - (void)SendMessageW(hDlgCtrl, LVM_INSERTCOLUMNW, 0, (LPARAM)&lc); - - if (!LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_DISKSPACE, szVolume, sizeof(szVolume) / sizeof(WCHAR))) - szVolume[0] = 0; - - lc.iSubItem = 1; - lc.cx = rect.right - rect.left - columnSize; - lc.cchTextMax = wcslen(szVolume); - lc.pszText = szVolume; - (void)SendMessageW(hDlgCtrl, LVM_INSERTCOLUMNW, 1, (LPARAM)&lc); - - dwDrives = GetLogicalDrives(); - itemCount = 0; - do - { - if ((dwDrives & 0x1)) - { - UINT Type = GetDriveTypeW(szDrive); - if (Type == DRIVE_FIXED) //FIXME - { - if (!GetVolumeInformationW(szDrive, szName, sizeof(szName) / sizeof(WCHAR), &dwSerial, &MaxComponent, &Flags, NULL, 0)) - { - szName[0] = 0; - dwSerial = -1; - } - - swprintf(szVolume, L"%s (%c)", szName, szDrive[0]); - memset(&li, 0x0, sizeof(LVITEMW)); - li.mask = LVIF_TEXT | LVIF_PARAM; - li.iSubItem = 0; - li.pszText = szVolume; - li.iItem = itemCount; - (void)SendMessageW(hDlgCtrl, LVM_INSERTITEMW, 0, (LPARAM)&li); - if (GetDiskFreeSpaceExW(szDrive, &FreeBytesAvailable , &TotalNumberOfBytes, &TotalNumberOfFreeBytes)) - { - if (StrFormatByteSizeW(TotalNumberOfFreeBytes.QuadPart, szVolume, sizeof(szVolume) / sizeof(WCHAR))) - { - - pItem = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DRIVE_ITEM_CONTEXT)); - if (pItem) - { - swprintf(szName, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Bitbucket\\Volume\\%04X-%04X", LOWORD(dwSerial), HIWORD(dwSerial)); - dwSize = sizeof(DWORD); - RegGetValueW(HKEY_CURRENT_USER, szName, L"MaxCapacity", RRF_RT_DWORD, NULL, &pItem->dwMaxCapacity, &dwSize); - dwSize = sizeof(DWORD); - RegGetValueW(HKEY_CURRENT_USER, szName, L"NukeOnDelete", RRF_RT_DWORD, NULL, &pItem->dwNukeOnDelete, &dwSize); - pItem->dwSerial = dwSerial; - li.mask = LVIF_PARAM; - li.lParam = (LPARAM)pItem; - (void)SendMessageW(hDlgCtrl, LVM_SETITEMW, 0, (LPARAM)&li); - if (CurDrive == DefaultDrive) - { - defIndex = itemCount; - pDefault = pItem; - } - } - if (!pFirst) - pFirst = pItem; - - li.mask = LVIF_TEXT; - li.iSubItem = 1; - li.pszText = szVolume; - li.iItem = itemCount; - (void)SendMessageW(hDlgCtrl, LVM_SETITEMW, 0, (LPARAM)&li); - } - } - itemCount++; - } - } - CurDrive++; - szDrive[0] = CurDrive; - dwDrives = (dwDrives >> 1); - }while(dwDrives); - - if (!pDefault) - pDefault = pFirst; - if (pDefault) - { - toggleNukeOnDeleteOption(hwndDlg, pDefault->dwNukeOnDelete); - SetDlgItemInt(hwndDlg, 14002, pDefault->dwMaxCapacity, FALSE); - } - ZeroMemory(&li, sizeof(li)); - li.mask = LVIF_STATE; - li.stateMask = (UINT)-1; - li.state = LVIS_FOCUSED|LVIS_SELECTED; - li.iItem = defIndex; - (void)SendMessageW(hDlgCtrl, LVM_SETITEMW, 0, (LPARAM)&li); - -} - -static BOOL StoreDriveSettings(HWND hwndDlg) -{ - int iCount, iIndex; - HWND hDlgCtrl = GetDlgItem(hwndDlg, 14000); - LVITEMW li; - PDRIVE_ITEM_CONTEXT pItem; - HKEY hKey, hSubKey; - WCHAR szSerial[20]; - DWORD dwSize; - - - if (RegCreateKeyExW(HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Bitbucket\\Volume", 0, NULL, 0, KEY_WRITE, NULL, &hKey, NULL) != ERROR_SUCCESS) - return FALSE; - - iCount = ListView_GetItemCount(hDlgCtrl); - - ZeroMemory(&li, sizeof(li)); - li.mask = LVIF_PARAM; - - for(iIndex = 0; iIndex < iCount; iIndex++) - { - li.iItem = iIndex; - if (SendMessageW(hDlgCtrl, LVM_GETITEMW, 0, (LPARAM)&li)) - { - pItem = (PDRIVE_ITEM_CONTEXT)li.lParam; - swprintf(szSerial, L"%04X-%04X", LOWORD(pItem->dwSerial), HIWORD(pItem->dwSerial)); - if (RegCreateKeyExW(hKey, szSerial, 0, NULL, 0, KEY_WRITE, NULL, &hSubKey, NULL) == ERROR_SUCCESS) - { - dwSize = sizeof(DWORD); - RegSetValueExW(hSubKey, L"NukeOnDelete", 0, REG_DWORD, (LPVOID)&pItem->dwNukeOnDelete, dwSize); - dwSize = sizeof(DWORD); - RegSetValueExW(hSubKey, L"MaxCapacity", 0, REG_DWORD, (LPVOID)&pItem->dwMaxCapacity, dwSize); - RegCloseKey(hSubKey); - } - } - } - RegCloseKey(hKey); - return TRUE; - -} - -static VOID FreeDriveItemContext(HWND hwndDlg) -{ - int iCount, iIndex; - HWND hDlgCtrl = GetDlgItem(hwndDlg, 14000); - LVITEMW li; - - iCount = ListView_GetItemCount(hDlgCtrl); - - ZeroMemory(&li, sizeof(li)); - li.mask = LVIF_PARAM; - - for(iIndex = 0; iIndex < iCount; iIndex++) - { - li.iItem = iIndex; - if (SendMessageW(hDlgCtrl, LVM_GETITEMW, 0, (LPARAM)&li)) - { - HeapFree(GetProcessHeap(), 0, (LPVOID)li.lParam); - } - } -} - -INT -GetDefaultItem(HWND hwndDlg, LVITEMW * li) -{ - HWND hDlgCtrl; - UINT iItemCount, iIndex; - - hDlgCtrl = GetDlgItem(hwndDlg, 14000); - if (!hDlgCtrl) - return -1; - - iItemCount = ListView_GetItemCount(hDlgCtrl); - if (!iItemCount) - return -1; - - ZeroMemory(li, sizeof(LVITEMW)); - li->mask = LVIF_PARAM | LVIF_STATE; - li->stateMask = (UINT)-1; - for (iIndex = 0; iIndex < iItemCount; iIndex++) - { - li->iItem = iIndex; - if (SendMessageW(hDlgCtrl, LVM_GETITEMW, 0, (LPARAM)li)) - { - if (li->state & LVIS_SELECTED) - return iIndex; - } - } - return -1; - -} - -INT_PTR -CALLBACK -BitBucketDlg( - HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam -) -{ - LPPSHNOTIFY lppsn; - LPNMLISTVIEW lppl; - LVITEMW li; - PDRIVE_ITEM_CONTEXT pItem; - BOOL bSuccess; - UINT uResult; - PROPSHEETPAGE * page; - DWORD dwStyle; - - switch(uMsg) - { - case WM_INITDIALOG: - page = (PROPSHEETPAGE*)lParam; - InitializeBitBucketDlg(hwndDlg, (WCHAR)page->lParam); - dwStyle = (DWORD) SendDlgItemMessage(hwndDlg, 14000, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); - dwStyle = dwStyle | LVS_EX_FULLROWSELECT; - SendDlgItemMessage(hwndDlg, 14000, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dwStyle); - if (GetDlgCtrlID((HWND)wParam) != 14000) - { - SetFocus(GetDlgItem(hwndDlg, 14000)); - return FALSE; - } - return TRUE; - case WM_COMMAND: - switch(LOWORD(wParam)) - { - case 14001: - toggleNukeOnDeleteOption(hwndDlg, FALSE); - PropSheet_Changed(GetParent(hwndDlg), hwndDlg); - break; - case 14003: - toggleNukeOnDeleteOption(hwndDlg, TRUE); - PropSheet_Changed(GetParent(hwndDlg), hwndDlg); - break; - case 14004: - PropSheet_Changed(GetParent(hwndDlg), hwndDlg); - break; - } - break; - case WM_NOTIFY: - lppsn = (LPPSHNOTIFY) lParam; - lppl = (LPNMLISTVIEW) lParam; - if (lppsn->hdr.code == PSN_APPLY) - { - if (GetDefaultItem(hwndDlg, &li) > -1) - { - pItem = (PDRIVE_ITEM_CONTEXT)li.lParam; - if (pItem) - { - uResult = GetDlgItemInt(hwndDlg, 14002, &bSuccess, FALSE); - if (bSuccess) - pItem->dwMaxCapacity = uResult; - if (SendDlgItemMessageW(hwndDlg, 14003, BM_GETCHECK, 0, 0) == BST_CHECKED) - pItem->dwNukeOnDelete = TRUE; - else - pItem->dwNukeOnDelete = FALSE; - } - } - if (StoreDriveSettings(hwndDlg)) - { - SetWindowLongPtr( hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR ); - return TRUE; - } - } - else if (lppl->hdr.code == LVN_ITEMCHANGING) - { - ZeroMemory(&li, sizeof(li)); - li.mask = LVIF_PARAM; - li.iItem = lppl->iItem; - if (!SendMessageW(lppl->hdr.hwndFrom, LVM_GETITEMW, 0, (LPARAM)&li)) - return TRUE; - - pItem = (PDRIVE_ITEM_CONTEXT)li.lParam; - if (!pItem) - return TRUE; - - if (!(lppl->uOldState & LVIS_FOCUSED) && (lppl->uNewState & LVIS_FOCUSED)) - { - /* new focused item */ - toggleNukeOnDeleteOption(lppl->hdr.hwndFrom, pItem->dwNukeOnDelete); - SetDlgItemInt(hwndDlg, 14002, pItem->dwMaxCapacity, FALSE); - } - else if ((lppl->uOldState & LVIS_FOCUSED) && !(lppl->uNewState & LVIS_FOCUSED)) - { - /* kill focus */ - uResult = GetDlgItemInt(hwndDlg, 14002, &bSuccess, FALSE); - if (bSuccess) - pItem->dwMaxCapacity = uResult; - if (SendDlgItemMessageW(hwndDlg, 14003, BM_GETCHECK, 0, 0) == BST_CHECKED) - pItem->dwNukeOnDelete = TRUE; - else - pItem->dwNukeOnDelete = FALSE; - } - return TRUE; - - } - break; - case WM_DESTROY: - FreeDriveItemContext(hwndDlg); - break; - } - return FALSE; -} - -BOOL SH_ShowRecycleBinProperties(WCHAR sDrive) -{ - HPROPSHEETPAGE hpsp[1]; - PROPSHEETHEADERW psh; - HPROPSHEETPAGE hprop; - - BOOL ret; - - - ZeroMemory(&psh, sizeof(PROPSHEETHEADERW)); - psh.dwSize = sizeof(PROPSHEETHEADERW); - psh.dwFlags = PSP_DEFAULT | PSH_PROPTITLE; - psh.pszCaption = MAKEINTRESOURCEW(IDS_RECYCLEBIN_FOLDER_NAME); - psh.hwndParent = NULL; - psh.u3.phpage = hpsp; - psh.hInstance = shell32_hInstance; - - hprop = SH_CreatePropertySheetPage("BITBUCKET_PROPERTIES_DLG", BitBucketDlg, (LPARAM)sDrive, NULL); - if (!hprop) - { - ERR("Failed to create property sheet\n"); - return FALSE; - } - hpsp[psh.nPages] = hprop; - psh.nPages++; - - - ret = PropertySheetW(&psh); - if (ret < 0) - return FALSE; - else - return TRUE; -} - -BOOL -TRASH_CanTrashFile(LPCWSTR wszPath) -{ - LONG ret; - DWORD dwNukeOnDelete, dwType, VolSerialNumber, MaxComponentLength; - DWORD FileSystemFlags, dwSize, dwDisposition; - HKEY hKey; - WCHAR szBuffer[10]; - WCHAR szKey[150] = L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Bitbucket\\Volume\\"; - - if (wszPath[1] != L':') - { - /* path is UNC */ - return FALSE; - } - - if (GetDriveTypeW(wszPath) != DRIVE_FIXED) - { - /* no bitbucket on removable media */ - return FALSE; - } - - if (!GetVolumeInformationW(wszPath, NULL, 0, &VolSerialNumber, &MaxComponentLength, &FileSystemFlags, NULL, 0)) - { - ERR("GetVolumeInformationW failed with %u\n", GetLastError()); - return FALSE; - } - - swprintf(szBuffer, L"%04X-%04X", LOWORD(VolSerialNumber), HIWORD(VolSerialNumber)); - wcscat(szKey, szBuffer); - - if (RegCreateKeyExW(HKEY_CURRENT_USER, szKey, 0, NULL, 0, KEY_WRITE, NULL, &hKey, &dwDisposition) != ERROR_SUCCESS) - { - ERR("RegCreateKeyExW failed\n"); - return FALSE; - } - - if (dwDisposition & REG_CREATED_NEW_KEY) - { - /* per default move to bitbucket */ - dwNukeOnDelete = 0; - RegSetValueExW(hKey, L"NukeOnDelete", 0, REG_DWORD, (LPBYTE)&dwNukeOnDelete, sizeof(DWORD)); - /* per default unlimited size */ - dwSize = -1; - RegSetValueExW(hKey, L"MaxCapacity", 0, REG_DWORD, (LPBYTE)&dwSize, sizeof(DWORD)); - RegCloseKey(hKey); - return TRUE; - } - else - { - dwSize = sizeof(dwNukeOnDelete); - ret = RegQueryValueExW(hKey, L"NukeOnDelete", NULL, &dwType, (LPBYTE)&dwNukeOnDelete, &dwSize); - if (ret != ERROR_SUCCESS) - { - if (ret == ERROR_FILE_NOT_FOUND) - { - /* restore key and enable bitbucket */ - dwNukeOnDelete = 0; - RegSetValueExW(hKey, L"NukeOnDelete", 0, REG_DWORD, (LPBYTE)&dwNukeOnDelete, sizeof(DWORD)); - } - RegCloseKey(hKey); - return TRUE; - } - else if (dwNukeOnDelete) - { - /* do not delete to bitbucket */ - RegCloseKey(hKey); - return FALSE; - } - /* FIXME - * check if bitbucket is full - */ - RegCloseKey(hKey); - return TRUE; - } -} - -BOOL -TRASH_TrashFile(LPCWSTR wszPath) -{ - TRACE("(%s)\n", debugstr_w(wszPath)); - return DeleteFileToRecycleBinW(wszPath); -} - -/************************************************************************* - * SHUpdateRecycleBinIcon [SHELL32.@] - * - * Undocumented - */ -HRESULT WINAPI SHUpdateRecycleBinIcon(void) -{ - FIXME("stub\n"); - - - - return S_OK; -} diff --git a/reactos/dll/win32/shell32/shfldr_unixfs.c b/reactos/dll/win32/shell32/shfldr_unixfs.c deleted file mode 100644 index 95e4defc81e..00000000000 --- a/reactos/dll/win32/shell32/shfldr_unixfs.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * UNIXFS - Shell namespace extension for the unix filesystem - * - * Copyright (C) 2005 Michael Jung - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/* Placeholder in ReactOS, we don't need this */ diff --git a/reactos/dll/win32/shell32/shlexec.c b/reactos/dll/win32/shell32/shlexec.c deleted file mode 100644 index e1f183fc96e..00000000000 --- a/reactos/dll/win32/shell32/shlexec.c +++ /dev/null @@ -1,2018 +0,0 @@ -/* - * Shell Library Functions - * - * Copyright 1998 Marcus Meissner - * Copyright 2002 Eric Pouech - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(exec); - -static const WCHAR wszOpen[] = {'o','p','e','n',0}; -static const WCHAR wszExe[] = {'.','e','x','e',0}; -static const WCHAR wszILPtr[] = {':','%','p',0}; -static const WCHAR wszShell[] = {'\\','s','h','e','l','l','\\',0}; -static const WCHAR wszFolder[] = {'F','o','l','d','e','r',0}; -static const WCHAR wszEmpty[] = {0}; - -#define SEE_MASK_CLASSALL (SEE_MASK_CLASSNAME | SEE_MASK_CLASSKEY) - - -/*********************************************************************** - * SHELL_ArgifyW [Internal] - * - * this function is supposed to expand the escape sequences found in the registry - * some diving reported that the following were used: - * + %1, %2... seem to report to parameter of index N in ShellExecute pmts - * %1 file - * %2 printer - * %3 driver - * %4 port - * %I address of a global item ID (explorer switch /idlist) - * %L seems to be %1 as long filename followed by the 8+3 variation - * %S ??? - * %* all following parameters (see batfile) - * - */ -static BOOL SHELL_ArgifyW(WCHAR* out, int len, const WCHAR* fmt, const WCHAR* lpFile, LPITEMIDLIST pidl, LPCWSTR args, DWORD* out_len) -{ - WCHAR xlpFile[1024]; - BOOL done = FALSE; - BOOL found_p1 = FALSE; - PWSTR res = out; - PCWSTR cmd; - DWORD used = 0; - - TRACE("%p, %d, %s, %s, %p, %p\n", out, len, debugstr_w(fmt), - debugstr_w(lpFile), pidl, args); - - while (*fmt) - { - if (*fmt == '%') - { - switch (*++fmt) - { - case '\0': - case '%': - used++; - if (used < len) - *res++ = '%'; - break; - - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case '0': - case '*': - if (args) - { - if (*fmt == '*') - { - used++; - if (used < len) - *res++ = '"'; - while(*args) - { - used++; - if (used < len) - *res++ = *args++; - else - args++; - } - used++; - if (used < len) - *res++ = '"'; - break; - } - else - { - while(*args && !isspace(*args)) - { - used++; - if (used < len) - *res++ = *args++; - else - args++; - } - - while(isspace(*args)) - ++args; - } - break; - } - else - { - break; - } - case '1': - if (!done || (*fmt == '1')) - { - /*FIXME Is the call to SearchPathW() really needed? We already have separated out the parameter string in args. */ - if (SearchPathW(NULL, lpFile, wszExe, sizeof(xlpFile)/sizeof(WCHAR), xlpFile, NULL)) - cmd = xlpFile; - else - cmd = lpFile; - - used += wcslen(cmd); - if (used < len) - { - wcscpy(res, cmd); - res += wcslen(cmd); - } - } - found_p1 = TRUE; - break; - - /* - * IE uses this a lot for activating things such as windows media - * player. This is not verified to be fully correct but it appears - * to work just fine. - */ - case 'l': - case 'L': - if (lpFile) { - used += wcslen(lpFile); - if (used < len) - { - wcscpy(res, lpFile); - res += wcslen(lpFile); - } - } - found_p1 = TRUE; - break; - - case 'i': - case 'I': - if (pidl) { - INT chars = 0; - /* %p should not exceed 8, maybe 16 when looking forward to 64bit. - * allowing a buffer of 100 should more than exceed all needs */ - WCHAR buf[100]; - LPVOID pv; - HGLOBAL hmem = SHAllocShared(pidl, ILGetSize(pidl), 0); - pv = SHLockShared(hmem, 0); - chars = swprintf(buf, wszILPtr, pv); - if (chars >= sizeof(buf)/sizeof(WCHAR)) - ERR("pidl format buffer too small!\n"); - used += chars; - if (used < len) - { - wcscpy(res,buf); - res += chars; - } - SHUnlockShared(pv); - } - found_p1 = TRUE; - break; - - default: - /* - * Check if this is an env-variable here... - */ - - /* Make sure that we have at least one more %.*/ - if (strchrW(fmt, '%')) - { - WCHAR tmpBuffer[1024]; - PWSTR tmpB = tmpBuffer; - WCHAR tmpEnvBuff[MAX_PATH]; - DWORD envRet; - - while (*fmt != '%') - *tmpB++ = *fmt++; - *tmpB++ = 0; - - TRACE("Checking %s to be an env-var\n", debugstr_w(tmpBuffer)); - - envRet = GetEnvironmentVariableW(tmpBuffer, tmpEnvBuff, MAX_PATH); - if (envRet == 0 || envRet > MAX_PATH) - { - used += wcslen(tmpBuffer); - if (used < len) - { - wcscpy( res, tmpBuffer ); - res += wcslen(tmpBuffer); - } - } - else - { - used += wcslen(tmpEnvBuff); - if (used < len) - { - wcscpy( res, tmpEnvBuff ); - res += wcslen(tmpEnvBuff); - } - } - } - done = TRUE; - break; - } - /* Don't skip past terminator (catch a single '%' at the end) */ - if (*fmt != '\0') - { - fmt++; - } - } - else - { - used ++; - if (used < len) - *res++ = *fmt++; - else - fmt++; - } - } - - *res = '\0'; - TRACE("used %i of %i space\n",used,len); - if (out_len) - *out_len = used; - - return found_p1; -} - -static HRESULT SHELL_GetPathFromIDListForExecuteW(LPCITEMIDLIST pidl, LPWSTR pszPath, UINT uOutSize) -{ - STRRET strret; - IShellFolder* desktop; - - HRESULT hr = SHGetDesktopFolder(&desktop); - - if (SUCCEEDED(hr)) { - hr = IShellFolder_GetDisplayNameOf(desktop, pidl, SHGDN_FORPARSING, &strret); - - if (SUCCEEDED(hr)) - StrRetToStrNW(pszPath, uOutSize, &strret, pidl); - - IShellFolder_Release(desktop); - } - - return hr; -} - -/************************************************************************* - * SHELL_ExecuteW [Internal] - * - */ -static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait, - const SHELLEXECUTEINFOW *psei, LPSHELLEXECUTEINFOW psei_out) -{ - STARTUPINFOW startup; - PROCESS_INFORMATION info; - UINT_PTR retval = SE_ERR_NOASSOC; - UINT gcdret = 0; - WCHAR curdir[MAX_PATH]; - DWORD dwCreationFlags; - const WCHAR *lpDirectory = NULL; - - TRACE("Execute %s from directory %s\n", debugstr_w(lpCmd), debugstr_w(psei->lpDirectory)); - - /* make sure we don't fail the CreateProcess if the calling app passes in - * a bad working directory */ - if (psei->lpDirectory && psei->lpDirectory[0]) - { - DWORD attr = GetFileAttributesW(psei->lpDirectory); - if (attr != INVALID_FILE_ATTRIBUTES && attr & FILE_ATTRIBUTE_DIRECTORY) - lpDirectory = psei->lpDirectory; - } - - /* ShellExecute specifies the command from psei->lpDirectory - * if present. Not from the current dir as CreateProcess does */ - if( lpDirectory ) - if( ( gcdret = GetCurrentDirectoryW( MAX_PATH, curdir))) - if( !SetCurrentDirectoryW( lpDirectory)) - ERR("cannot set directory %s\n", debugstr_w(lpDirectory)); - ZeroMemory(&startup,sizeof(STARTUPINFOW)); - startup.cb = sizeof(STARTUPINFOW); - startup.dwFlags = STARTF_USESHOWWINDOW; - startup.wShowWindow = psei->nShow; - dwCreationFlags = CREATE_UNICODE_ENVIRONMENT; - if (psei->fMask & SEE_MASK_NO_CONSOLE) - dwCreationFlags |= CREATE_NEW_CONSOLE; - if (CreateProcessW(NULL, (LPWSTR)lpCmd, NULL, NULL, FALSE, dwCreationFlags, env, - lpDirectory, &startup, &info)) - { - /* Give 30 seconds to the app to come up, if desired. Probably only needed - when starting app immediately before making a DDE connection. */ - if (shWait) - if (WaitForInputIdle( info.hProcess, 30000 ) == WAIT_FAILED) - WARN("WaitForInputIdle failed: Error %d\n", GetLastError() ); - retval = 33; - if (psei->fMask & SEE_MASK_NOCLOSEPROCESS) - psei_out->hProcess = info.hProcess; - else - CloseHandle( info.hProcess ); - CloseHandle( info.hThread ); - } - else if ((retval = GetLastError()) >= 32) - { - TRACE("CreateProcess returned error %ld\n", retval); - retval = ERROR_BAD_FORMAT; - } - - TRACE("returning %lu\n", retval); - - psei_out->hInstApp = (HINSTANCE)retval; - if( gcdret ) - if( !SetCurrentDirectoryW( curdir)) - ERR("cannot return to directory %s\n", debugstr_w(curdir)); - - return retval; -} - - -/*********************************************************************** - * SHELL_BuildEnvW [Internal] - * - * Build the environment for the new process, adding the specified - * path to the PATH variable. Returned pointer must be freed by caller. - */ -static void *SHELL_BuildEnvW( const WCHAR *path ) -{ - static const WCHAR wPath[] = {'P','A','T','H','=',0}; - WCHAR *strings, *new_env; - WCHAR *p, *p2; - int total = wcslen(path) + 1; - BOOL got_path = FALSE; - - if (!(strings = GetEnvironmentStringsW())) return NULL; - p = strings; - while (*p) - { - int len = wcslen(p) + 1; - if (!_wcsnicmp( p, wPath, 5 )) got_path = TRUE; - total += len; - p += len; - } - if (!got_path) total += 5; /* we need to create PATH */ - total++; /* terminating null */ - - if (!(new_env = HeapAlloc( GetProcessHeap(), 0, total * sizeof(WCHAR) ))) - { - FreeEnvironmentStringsW( strings ); - return NULL; - } - p = strings; - p2 = new_env; - while (*p) - { - int len = wcslen(p) + 1; - memcpy( p2, p, len * sizeof(WCHAR) ); - if (!_wcsnicmp( p, wPath, 5 )) - { - p2[len - 1] = ';'; - wcscpy( p2 + len, path ); - p2 += wcslen(path) + 1; - } - p += len; - p2 += len; - } - if (!got_path) - { - wcscpy( p2, wPath ); - wcscat( p2, path ); - p2 += wcslen(p2) + 1; - } - *p2 = 0; - FreeEnvironmentStringsW( strings ); - return new_env; -} - - -/*********************************************************************** - * SHELL_TryAppPathW [Internal] - * - * Helper function for SHELL_FindExecutable - * @param lpResult - pointer to a buffer of size MAX_PATH - * On entry: szName is a filename (probably without path separators). - * On exit: if szName found in "App Path", place full path in lpResult, and return true - */ -static BOOL SHELL_TryAppPathW( LPCWSTR szName, LPWSTR lpResult, WCHAR **env) -{ - static const WCHAR wszKeyAppPaths[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s', - '\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','A','p','p',' ','P','a','t','h','s','\\',0}; - static const WCHAR wPath[] = {'P','a','t','h',0}; - HKEY hkApp = 0; - WCHAR buffer[1024]; - LONG len; - LONG res; - BOOL found = FALSE; - - if (env) *env = NULL; - wcscpy(buffer, wszKeyAppPaths); - wcscat(buffer, szName); - res = RegOpenKeyExW(HKEY_LOCAL_MACHINE, buffer, 0, KEY_READ, &hkApp); - if (res) goto end; - - len = MAX_PATH*sizeof(WCHAR); - res = RegQueryValueW(hkApp, NULL, lpResult, &len); - if (res) goto end; - found = TRUE; - - if (env) - { - DWORD count = sizeof(buffer); - if (!RegQueryValueExW(hkApp, wPath, NULL, NULL, (LPBYTE)buffer, &count) && buffer[0]) - *env = SHELL_BuildEnvW( buffer ); - } - -end: - if (hkApp) RegCloseKey(hkApp); - return found; -} - -static UINT SHELL_FindExecutableByOperation(LPCWSTR lpOperation, LPWSTR key, LPWSTR filetype, LPWSTR command, LONG commandlen) -{ - static const WCHAR wCommand[] = {'\\','c','o','m','m','a','n','d',0}; - HKEY hkeyClass; - WCHAR verb[MAX_PATH]; - - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, filetype, 0, 0x02000000, &hkeyClass)) - return SE_ERR_NOASSOC; - if (!HCR_GetDefaultVerbW(hkeyClass, lpOperation, verb, sizeof(verb)/sizeof(verb[0]))) - return SE_ERR_NOASSOC; - RegCloseKey(hkeyClass); - - /* Looking for ...buffer\shell\\command */ - wcscat(filetype, wszShell); - wcscat(filetype, verb); - wcscat(filetype, wCommand); - - if (RegQueryValueW(HKEY_CLASSES_ROOT, filetype, command, - &commandlen) == ERROR_SUCCESS) - { - commandlen /= sizeof(WCHAR); - if (key) wcscpy(key, filetype); -#if 0 - LPWSTR tmp; - WCHAR param[256]; - LONG paramlen = sizeof(param); - static const WCHAR wSpace[] = {' ',0}; - - /* FIXME: it seems all Windows version don't behave the same here. - * the doc states that this ddeexec information can be found after - * the exec names. - * on Win98, it doesn't appear, but I think it does on Win2k - */ - /* Get the parameters needed by the application - from the associated ddeexec key */ - tmp = strstrW(filetype, wCommand); - tmp[0] = '\0'; - wcscat(filetype, wDdeexec); - if (RegQueryValueW(HKEY_CLASSES_ROOT, filetype, param, - ¶mlen) == ERROR_SUCCESS) - { - paramlen /= sizeof(WCHAR); - wcscat(command, wSpace); - wcscat(command, param); - commandlen += paramlen; - } -#endif - - command[commandlen] = '\0'; - - return 33; /* FIXME see SHELL_FindExecutable() */ - } - - return SE_ERR_NOASSOC; -} - -/************************************************************************* - * SHELL_FindExecutable [Internal] - * - * Utility for code sharing between FindExecutable and ShellExecute - * in: - * lpFile the name of a file - * lpOperation the operation on it (open) - * out: - * lpResult a buffer, big enough :-(, to store the command to do the - * operation on the file - * key a buffer, big enough, to get the key name to do actually the - * command (it'll be used afterwards for more information - * on the operation) - */ -static UINT SHELL_FindExecutable(LPCWSTR lpPath, LPCWSTR lpFile, LPCWSTR lpOperation, - LPWSTR lpResult, int resultLen, LPWSTR key, WCHAR **env, LPITEMIDLIST pidl, LPCWSTR args) -{ - static const WCHAR wWindows[] = {'w','i','n','d','o','w','s',0}; - static const WCHAR wPrograms[] = {'p','r','o','g','r','a','m','s',0}; - static const WCHAR wExtensions[] = {'e','x','e',' ','p','i','f',' ','b','a','t',' ','c','m','d',' ','c','o','m',0}; - WCHAR *extension = NULL; /* pointer to file extension */ - WCHAR filetype[256]; /* registry name for this filetype */ - LONG filetypelen = sizeof(filetype); /* length of above */ - WCHAR command[1024]; /* command from registry */ - WCHAR wBuffer[256]; /* Used to GetProfileString */ - UINT retval = SE_ERR_NOASSOC; - WCHAR *tok; /* token pointer */ - WCHAR xlpFile[256]; /* result of SearchPath */ - DWORD attribs; /* file attributes */ - - TRACE("%s\n", debugstr_w(lpFile)); - - if (!lpResult) - return ERROR_INVALID_PARAMETER; - - xlpFile[0] = '\0'; - lpResult[0] = '\0'; /* Start off with an empty return string */ - if (key) *key = '\0'; - - /* trap NULL parameters on entry */ - if (!lpFile) - { - WARN("(lpFile=%s,lpResult=%s): NULL parameter\n", - debugstr_w(lpFile), debugstr_w(lpResult)); - return ERROR_FILE_NOT_FOUND; /* File not found. Close enough, I guess. */ - } - - if (SHELL_TryAppPathW( lpFile, lpResult, env )) - { - TRACE("found %s via App Paths\n", debugstr_w(lpResult)); - return 33; - } - - if (SearchPathW(lpPath, lpFile, wszExe, sizeof(xlpFile)/sizeof(WCHAR), xlpFile, NULL)) - { - TRACE("SearchPathW returned non-zero\n"); - lpFile = xlpFile; - /* Hey, isn't this value ignored? Why make this call? Shouldn't we return here? --dank*/ - } - - attribs = GetFileAttributesW(lpFile); - if (attribs!=INVALID_FILE_ATTRIBUTES && (attribs&FILE_ATTRIBUTE_DIRECTORY)) - { - wcscpy(filetype, wszFolder); - filetypelen = 6; /* strlen("Folder") */ - } - else - { - /* Did we get something? Anything? */ - if (xlpFile[0]==0) - { - TRACE("Returning SE_ERR_FNF\n"); - return SE_ERR_FNF; - } - /* First thing we need is the file's extension */ - extension = wcsrchr(xlpFile, '.'); /* Assume last "." is the one; */ - /* File->Run in progman uses */ - /* .\FILE.EXE :( */ - TRACE("xlpFile=%s,extension=%s\n", debugstr_w(xlpFile), debugstr_w(extension)); - - if (extension == NULL || extension[1]==0) - { - WARN("Returning SE_ERR_NOASSOC\n"); - return SE_ERR_NOASSOC; - } - - /* Three places to check: */ - /* 1. win.ini, [windows], programs (NB no leading '.') */ - /* 2. Registry, HKEY_CLASS_ROOT\\shell\open\command */ - /* 3. win.ini, [extensions], extension (NB no leading '.' */ - /* All I know of the order is that registry is checked before */ - /* extensions; however, it'd make sense to check the programs */ - /* section first, so that's what happens here. */ - - /* See if it's a program - if GetProfileString fails, we skip this - * section. Actually, if GetProfileString fails, we've probably - * got a lot more to worry about than running a program... */ - if (GetProfileStringW(wWindows, wPrograms, wExtensions, wBuffer, sizeof(wBuffer)/sizeof(WCHAR)) > 0) - { - CharLowerW(wBuffer); - tok = wBuffer; - while (*tok) - { - WCHAR *p = tok; - while (*p && *p != ' ' && *p != '\t') p++; - if (*p) - { - *p++ = 0; - while (*p == ' ' || *p == '\t') p++; - } - - if (wcsicmp(tok, &extension[1]) == 0) /* have to skip the leading "." */ - { - wcscpy(lpResult, xlpFile); - /* Need to perhaps check that the file has a path - * attached */ - TRACE("found %s\n", debugstr_w(lpResult)); - return 33; - /* Greater than 32 to indicate success */ - } - tok = p; - } - } - - /* Check registry */ - if (RegQueryValueW(HKEY_CLASSES_ROOT, extension, filetype, - &filetypelen) == ERROR_SUCCESS) - { - filetypelen /= sizeof(WCHAR); - if (filetypelen == sizeof(filetype)/sizeof(WCHAR)) - filetypelen--; - filetype[filetypelen] = '\0'; - TRACE("File type: %s\n", debugstr_w(filetype)); - } - else - { - *filetype = '\0'; - filetypelen = 0; - } - } - - if (*filetype) - { - /* pass the operation string to SHELL_FindExecutableByOperation() */ - filetype[filetypelen] = '\0'; - retval = SHELL_FindExecutableByOperation(lpOperation, key, filetype, command, sizeof(command)); - - if (retval > 32) - { - DWORD finishedLen; - SHELL_ArgifyW(lpResult, resultLen, command, xlpFile, pidl, args, &finishedLen); - if (finishedLen > resultLen) - ERR("Argify buffer not large enough.. truncated\n"); - - /* Remove double quotation marks and command line arguments */ - if (*lpResult == '"') - { - WCHAR *p = lpResult; - while (*(p + 1) != '"') - { - *p = *(p + 1); - p++; - } - *p = '\0'; - } - else - { - /* Truncate on first space */ - WCHAR *p = lpResult; - while (*p != ' ' && *p != '\0') - p++; - *p='\0'; - } - } - } - else /* Check win.ini */ - { - static const WCHAR wExtensions[] = {'e','x','t','e','n','s','i','o','n','s',0}; - - /* Toss the leading dot */ - extension++; - if (GetProfileStringW(wExtensions, extension, wszEmpty, command, sizeof(command)/sizeof(WCHAR)) > 0) - { - if (wcslen(command) != 0) - { - wcscpy(lpResult, command); - tok = wcschr(lpResult, '^'); /* should be ^.extension? */ - if (tok != NULL) - { - tok[0] = '\0'; - wcscat(lpResult, xlpFile); /* what if no dir in xlpFile? */ - tok = wcschr(command, '^'); /* see above */ - if ((tok != NULL) && (wcslen(tok)>5)) - { - wcscat(lpResult, &tok[5]); - } - } - retval = 33; /* FIXME - see above */ - } - } - } - - TRACE("returning %s\n", debugstr_w(lpResult)); - return retval; -} - -/****************************************************************** - * dde_cb - * - * callback for the DDE connection. not really useful - */ -static HDDEDATA CALLBACK dde_cb(UINT uType, UINT uFmt, HCONV hConv, - HSZ hsz1, HSZ hsz2, HDDEDATA hData, - ULONG_PTR dwData1, ULONG_PTR dwData2) -{ - TRACE("dde_cb: %04x, %04x, %p, %p, %p, %p, %08lx, %08lx\n", - uType, uFmt, hConv, hsz1, hsz2, hData, dwData1, dwData2); - return NULL; -} - -/****************************************************************** - * dde_connect - * - * ShellExecute helper. Used to do an operation with a DDE connection - * - * Handles both the direct connection (try #1), and if it fails, - * launching an application and trying (#2) to connect to it - * - */ -static unsigned dde_connect(const WCHAR* key, const WCHAR* start, WCHAR* ddeexec, - const WCHAR* lpFile, WCHAR *env, - LPCWSTR szCommandline, LPITEMIDLIST pidl, SHELL_ExecuteW32 execfunc, - const SHELLEXECUTEINFOW *psei, LPSHELLEXECUTEINFOW psei_out) -{ - static const WCHAR wApplication[] = {'\\','a','p','p','l','i','c','a','t','i','o','n',0}; - static const WCHAR wTopic[] = {'\\','t','o','p','i','c',0}; - WCHAR regkey[256]; - WCHAR * endkey = regkey + wcslen(key); - WCHAR app[256], topic[256], ifexec[256], res[256]; - LONG applen, topiclen, ifexeclen; - WCHAR * exec; - DWORD ddeInst = 0; - DWORD tid; - DWORD resultLen; - HSZ hszApp, hszTopic; - HCONV hConv; - HDDEDATA hDdeData; - unsigned ret = SE_ERR_NOASSOC; - BOOL unicode = !(GetVersion() & 0x80000000); - - wcscpy(regkey, key); - wcscpy(endkey, wApplication); - applen = sizeof(app); - if (RegQueryValueW(HKEY_CLASSES_ROOT, regkey, app, &applen) != ERROR_SUCCESS) - { - WCHAR command[1024], fullpath[MAX_PATH]; - static const WCHAR wSo[] = { '.','s','o',0 }; - int sizeSo = sizeof(wSo)/sizeof(WCHAR); - LPWSTR ptr = NULL; - DWORD ret = 0; - - /* Get application command from start string and find filename of application */ - if (*start == '"') - { - wcscpy(command, start+1); - if ((ptr = wcschr(command, '"'))) - *ptr = 0; - ret = SearchPathW(NULL, command, wszExe, sizeof(fullpath)/sizeof(WCHAR), fullpath, &ptr); - } - else - { - LPWSTR p,space; - for (p=(LPWSTR)start; (space=strchrW(p, ' ')); p=space+1) - { - int idx = space-start; - memcpy(command, start, idx*sizeof(WCHAR)); - command[idx] = '\0'; - if ((ret = SearchPathW(NULL, command, wszExe, sizeof(fullpath)/sizeof(WCHAR), fullpath, &ptr))) - break; - } - if (!ret) - ret = SearchPathW(NULL, start, wszExe, sizeof(fullpath)/sizeof(WCHAR), fullpath, &ptr); - } - - if (!ret) - { - ERR("Unable to find application path for command %s\n", debugstr_w(start)); - return ERROR_ACCESS_DENIED; - } - wcscpy(app, ptr); - - /* Remove extensions (including .so) */ - ptr = app + wcslen(app) - (sizeSo-1); - if (wcslen(app) >= sizeSo && - !wcscmp(ptr, wSo)) - *ptr = 0; - - ptr = strrchrW(app, '.'); - assert(ptr); - *ptr = 0; - } - - wcscpy(endkey, wTopic); - topiclen = sizeof(topic); - if (RegQueryValueW(HKEY_CLASSES_ROOT, regkey, topic, &topiclen) != ERROR_SUCCESS) - { - static const WCHAR wSystem[] = {'S','y','s','t','e','m',0}; - wcscpy(topic, wSystem); - } - - if (unicode) - { - if (DdeInitializeW(&ddeInst, dde_cb, APPCMD_CLIENTONLY, 0L) != DMLERR_NO_ERROR) - return 2; - } - else - { - if (DdeInitializeA(&ddeInst, dde_cb, APPCMD_CLIENTONLY, 0L) != DMLERR_NO_ERROR) - return 2; - } - - hszApp = DdeCreateStringHandleW(ddeInst, app, CP_WINUNICODE); - hszTopic = DdeCreateStringHandleW(ddeInst, topic, CP_WINUNICODE); - - hConv = DdeConnect(ddeInst, hszApp, hszTopic, NULL); - exec = ddeexec; - if (!hConv) - { - static const WCHAR wIfexec[] = {'\\','i','f','e','x','e','c',0}; - TRACE("Launching %s\n", debugstr_w(start)); - ret = execfunc(start, env, TRUE, psei, psei_out); - if (ret <= 32) - { - TRACE("Couldn't launch\n"); - goto error; - } - hConv = DdeConnect(ddeInst, hszApp, hszTopic, NULL); - if (!hConv) - { - TRACE("Couldn't connect. ret=%d\n", ret); - DdeUninitialize(ddeInst); - SetLastError(ERROR_DDE_FAIL); - return 30; /* whatever */ - } - strcpyW(endkey, wIfexec); - ifexeclen = sizeof(ifexec); - if (RegQueryValueW(HKEY_CLASSES_ROOT, regkey, ifexec, &ifexeclen) == ERROR_SUCCESS) - { - exec = ifexec; - } - } - - SHELL_ArgifyW(res, sizeof(res)/sizeof(WCHAR), exec, lpFile, pidl, szCommandline, &resultLen); - if (resultLen > sizeof(res)/sizeof(WCHAR)) - ERR("Argify buffer not large enough, truncated\n"); - TRACE("%s %s => %s\n", debugstr_w(exec), debugstr_w(lpFile), debugstr_w(res)); - - /* It's documented in the KB 330337 that IE has a bug and returns - * error DMLERR_NOTPROCESSED on XTYP_EXECUTE request. - */ - if (unicode) - hDdeData = DdeClientTransaction((LPBYTE)res, (strlenW(res) + 1) * sizeof(WCHAR), hConv, 0L, 0, - XTYP_EXECUTE, 30000, &tid); - else - { - DWORD lenA = WideCharToMultiByte(CP_ACP, 0, res, -1, NULL, 0, NULL, NULL); - char *resA = HeapAlloc(GetProcessHeap(), 0, lenA); - WideCharToMultiByte(CP_ACP, 0, res, -1, resA, lenA, NULL, NULL); - hDdeData = DdeClientTransaction( (LPBYTE)resA, lenA, hConv, 0L, 0, - XTYP_EXECUTE, 10000, &tid ); - HeapFree(GetProcessHeap(), 0, resA); - } - if (hDdeData) - DdeFreeDataHandle(hDdeData); - else - WARN("DdeClientTransaction failed with error %04x\n", DdeGetLastError(ddeInst)); - ret = 33; - - DdeDisconnect(hConv); - - error: - DdeUninitialize(ddeInst); - - return ret; -} - -/************************************************************************* - * execute_from_key [Internal] - */ -static UINT_PTR execute_from_key(LPCWSTR key, LPCWSTR lpFile, WCHAR *env, LPCWSTR szCommandline, - LPCWSTR executable_name, - SHELL_ExecuteW32 execfunc, - LPSHELLEXECUTEINFOW psei, LPSHELLEXECUTEINFOW psei_out) -{ - static const WCHAR wCommand[] = {'c','o','m','m','a','n','d',0}; - static const WCHAR wDdeexec[] = {'d','d','e','e','x','e','c',0}; - WCHAR cmd[256], param[1024], ddeexec[256]; - LONG cmdlen = sizeof(cmd), ddeexeclen = sizeof(ddeexec); - UINT_PTR retval = SE_ERR_NOASSOC; - DWORD resultLen; - LPWSTR tmp; - - TRACE("%s %s %s %s %s\n", debugstr_w(key), debugstr_w(lpFile), debugstr_w(env), - debugstr_w(szCommandline), debugstr_w(executable_name)); - - cmd[0] = '\0'; - param[0] = '\0'; - - /* Get the application from the registry */ - if (RegQueryValueW(HKEY_CLASSES_ROOT, key, cmd, &cmdlen) == ERROR_SUCCESS) - { - TRACE("got cmd: %s\n", debugstr_w(cmd)); - - /* Is there a replace() function anywhere? */ - cmdlen /= sizeof(WCHAR); - if (cmdlen >= sizeof(cmd)/sizeof(WCHAR)) - cmdlen = sizeof(cmd)/sizeof(WCHAR)-1; - cmd[cmdlen] = '\0'; - SHELL_ArgifyW(param, sizeof(param)/sizeof(WCHAR), cmd, lpFile, psei->lpIDList, szCommandline, &resultLen); - if (resultLen > sizeof(param)/sizeof(WCHAR)) - ERR("Argify buffer not large enough, truncating\n"); - } - - /* Get the parameters needed by the application - from the associated ddeexec key */ - tmp = strstrW(key, wCommand); - assert(tmp); - wcscpy(tmp, wDdeexec); - - if (RegQueryValueW(HKEY_CLASSES_ROOT, key, ddeexec, &ddeexeclen) == ERROR_SUCCESS) - { - TRACE("Got ddeexec %s => %s\n", debugstr_w(key), debugstr_w(ddeexec)); - if (!param[0]) strcpyW(param, executable_name); - retval = dde_connect(key, param, ddeexec, lpFile, env, szCommandline, psei->lpIDList, execfunc, psei, psei_out); - } - else if (param[0]) - { - TRACE("executing: %s\n", debugstr_w(param)); - retval = execfunc(param, env, FALSE, psei, psei_out); - } - else - WARN("Nothing appropriate found for %s\n", debugstr_w(key)); - - return retval; -} - -/************************************************************************* - * FindExecutableA [SHELL32.@] - */ -HINSTANCE WINAPI FindExecutableA(LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult) -{ - HINSTANCE retval; - WCHAR *wFile = NULL, *wDirectory = NULL; - WCHAR wResult[MAX_PATH]; - - if (lpFile) __SHCloneStrAtoW(&wFile, lpFile); - if (lpDirectory) __SHCloneStrAtoW(&wDirectory, lpDirectory); - - retval = FindExecutableW(wFile, wDirectory, wResult); - WideCharToMultiByte(CP_ACP, 0, wResult, -1, lpResult, MAX_PATH, NULL, NULL); - SHFree( wFile ); - SHFree( wDirectory ); - - TRACE("returning %s\n", lpResult); - return retval; -} - -/************************************************************************* - * FindExecutableW [SHELL32.@] - * - * This function returns the executable associated with the specified file - * for the default verb. - * - * PARAMS - * lpFile [I] The file to find the association for. This must refer to - * an existing file otherwise FindExecutable fails and returns - * SE_ERR_FNF. - * lpResult [O] Points to a buffer into which the executable path is - * copied. This parameter must not be NULL otherwise - * FindExecutable() segfaults. The buffer must be of size at - * least MAX_PATH characters. - * - * RETURNS - * A value greater than 32 on success, less than or equal to 32 otherwise. - * See the SE_ERR_* constants. - * - * NOTES - * On Windows XP and 2003, FindExecutable() seems to first convert the - * filename into 8.3 format, thus taking into account only the first three - * characters of the extension, and expects to find an association for those. - * However other Windows versions behave sanely. - */ -HINSTANCE WINAPI FindExecutableW(LPCWSTR lpFile, LPCWSTR lpDirectory, LPWSTR lpResult) -{ - UINT_PTR retval = SE_ERR_NOASSOC; - WCHAR old_dir[1024]; - - TRACE("File %s, Dir %s\n", debugstr_w(lpFile), debugstr_w(lpDirectory)); - - lpResult[0] = '\0'; /* Start off with an empty return string */ - if (lpFile == NULL) - return (HINSTANCE)SE_ERR_FNF; - - if (lpDirectory) - { - GetCurrentDirectoryW(sizeof(old_dir)/sizeof(WCHAR), old_dir); - SetCurrentDirectoryW(lpDirectory); - } - - retval = SHELL_FindExecutable(lpDirectory, lpFile, wszOpen, lpResult, MAX_PATH, NULL, NULL, NULL, NULL); - - TRACE("returning %s\n", debugstr_w(lpResult)); - if (lpDirectory) - SetCurrentDirectoryW(old_dir); - return (HINSTANCE)retval; -} - -/* FIXME: is this already implemented somewhere else? */ -static HKEY ShellExecute_GetClassKey( const SHELLEXECUTEINFOW *sei ) -{ - LPCWSTR ext = NULL, lpClass = NULL; - LPWSTR cls = NULL; - DWORD type = 0, sz = 0; - HKEY hkey = 0; - LONG r; - - if (sei->fMask & SEE_MASK_CLASSALL) - return sei->hkeyClass; - - if (sei->fMask & SEE_MASK_CLASSNAME) - lpClass = sei->lpClass; - else - { - ext = PathFindExtensionW( sei->lpFile ); - TRACE("ext = %s\n", debugstr_w( ext ) ); - if (!ext) - return hkey; - - r = RegOpenKeyW( HKEY_CLASSES_ROOT, ext, &hkey ); - if (r != ERROR_SUCCESS ) - return hkey; - - r = RegQueryValueExW( hkey, NULL, 0, &type, NULL, &sz ); - if ( r == ERROR_SUCCESS && type == REG_SZ ) - { - sz += sizeof (WCHAR); - cls = HeapAlloc( GetProcessHeap(), 0, sz ); - cls[0] = 0; - RegQueryValueExW( hkey, NULL, 0, &type, (LPBYTE) cls, &sz ); - } - - RegCloseKey( hkey ); - lpClass = cls; - } - - TRACE("class = %s\n", debugstr_w(lpClass) ); - - hkey = 0; - if ( lpClass ) - RegOpenKeyW( HKEY_CLASSES_ROOT, lpClass, &hkey ); - - HeapFree( GetProcessHeap(), 0, cls ); - - return hkey; -} - -static IDataObject *shellex_get_dataobj( LPSHELLEXECUTEINFOW sei ) -{ - LPCITEMIDLIST pidllast = NULL; - IDataObject *dataobj = NULL; - IShellFolder *shf = NULL; - LPITEMIDLIST pidl = NULL; - HRESULT r; - - if (sei->fMask & SEE_MASK_CLASSALL) - pidl = sei->lpIDList; - else - { - WCHAR fullpath[MAX_PATH]; - BOOL ret; - - fullpath[0] = 0; - ret = GetFullPathNameW( sei->lpFile, MAX_PATH, fullpath, NULL ); - if (!ret) - goto end; - - pidl = ILCreateFromPathW( fullpath ); - } - - r = SHBindToParent( pidl, &IID_IShellFolder, (LPVOID*)&shf, &pidllast ); - if ( FAILED( r ) ) - goto end; - - IShellFolder_GetUIObjectOf( shf, NULL, 1, &pidllast, - &IID_IDataObject, NULL, (LPVOID*) &dataobj ); - -end: - if ( pidl != sei->lpIDList ) - ILFree( pidl ); - if ( shf ) - IShellFolder_Release( shf ); - return dataobj; -} - -static HRESULT shellex_run_context_menu_default( IShellExtInit *obj, - LPSHELLEXECUTEINFOW sei ) -{ - IContextMenu *cm = NULL; - CMINVOKECOMMANDINFOEX ici; - MENUITEMINFOW info; - WCHAR string[0x80]; - INT i, n, def = -1; - HMENU hmenu = 0; - HRESULT r; - - TRACE("%p %p\n", obj, sei ); - - r = IShellExtInit_QueryInterface( obj, &IID_IContextMenu, (LPVOID*) &cm ); - if ( FAILED( r ) ) - return r; - - hmenu = CreateMenu(); - if ( !hmenu ) - goto end; - - /* the number of the last menu added is returned in r */ - r = IContextMenu_QueryContextMenu( cm, hmenu, 0, 0x20, 0x7fff, CMF_DEFAULTONLY ); - if ( FAILED( r ) ) - goto end; - - n = GetMenuItemCount( hmenu ); - for ( i = 0; i < n; i++ ) - { - memset( &info, 0, sizeof info ); - info.cbSize = sizeof info; - info.fMask = MIIM_FTYPE | MIIM_STRING | MIIM_STATE | MIIM_DATA | MIIM_ID; - info.dwTypeData = string; - info.cch = sizeof string; - string[0] = 0; - GetMenuItemInfoW( hmenu, i, TRUE, &info ); - - TRACE("menu %d %s %08x %08lx %08x %08x\n", i, debugstr_w(string), - info.fState, info.dwItemData, info.fType, info.wID ); - if ( ( !sei->lpVerb && (info.fState & MFS_DEFAULT) ) || - ( sei->lpVerb && !lstrcmpiW( sei->lpVerb, string ) ) ) - { - def = i; - break; - } - } - - r = E_FAIL; - if ( def == -1 ) - goto end; - - memset( &ici, 0, sizeof ici ); - ici.cbSize = sizeof ici; - ici.fMask = CMIC_MASK_UNICODE | (sei->fMask & (SEE_MASK_NOASYNC|SEE_MASK_ASYNCOK|SEE_MASK_FLAG_NO_UI)); - ici.nShow = sei->nShow; - ici.lpVerb = MAKEINTRESOURCEA( def ); - ici.hwnd = sei->hwnd; - ici.lpParametersW = sei->lpParameters; - - r = IContextMenu_InvokeCommand( cm, (LPCMINVOKECOMMANDINFO) &ici ); - - TRACE("invoke command returned %08x\n", r ); - -end: - if ( hmenu ) - DestroyMenu( hmenu ); - if ( cm ) - IContextMenu_Release( cm ); - return r; -} - -static HRESULT shellex_load_object_and_run( HKEY hkey, LPCGUID guid, LPSHELLEXECUTEINFOW sei ) -{ - IDataObject *dataobj = NULL; - IObjectWithSite *ows = NULL; - IShellExtInit *obj = NULL; - HRESULT r; - - TRACE("%p %s %p\n", hkey, debugstr_guid( guid ), sei ); - - r = CoInitialize( NULL ); - if ( FAILED( r ) ) - goto end; - - r = CoCreateInstance( guid, NULL, CLSCTX_INPROC_SERVER, - &IID_IShellExtInit, (LPVOID*)&obj ); - if ( FAILED( r ) ) - { - ERR("failed %08x\n", r ); - goto end; - } - - dataobj = shellex_get_dataobj( sei ); - if ( !dataobj ) - { - ERR("failed to get data object\n"); - goto end; - } - - r = IShellExtInit_Initialize( obj, NULL, dataobj, hkey ); - if ( FAILED( r ) ) - goto end; - - r = IShellExtInit_QueryInterface( obj, &IID_IObjectWithSite, (LPVOID*) &ows ); - if ( FAILED( r ) ) - goto end; - - IObjectWithSite_SetSite( ows, NULL ); - - r = shellex_run_context_menu_default( obj, sei ); - -end: - if ( ows ) - IObjectWithSite_Release( ows ); - if ( dataobj ) - IDataObject_Release( dataobj ); - if ( obj ) - IShellExtInit_Release( obj ); - CoUninitialize(); - return r; -} - - -/************************************************************************* - * ShellExecute_FromContextMenu [Internal] - */ -static LONG ShellExecute_FromContextMenu( LPSHELLEXECUTEINFOW sei ) -{ - static const WCHAR szcm[] = { 's','h','e','l','l','e','x','\\', - 'C','o','n','t','e','x','t','M','e','n','u','H','a','n','d','l','e','r','s',0 }; - HKEY hkey, hkeycm = 0; - WCHAR szguid[39]; - HRESULT hr; - GUID guid; - DWORD i; - LONG r; - - TRACE("%s\n", debugstr_w(sei->lpFile) ); - - hkey = ShellExecute_GetClassKey( sei ); - if ( !hkey ) - return ERROR_FUNCTION_FAILED; - - r = RegOpenKeyW( hkey, szcm, &hkeycm ); - if ( r == ERROR_SUCCESS ) - { - i = 0; - while ( 1 ) - { - r = RegEnumKeyW( hkeycm, i++, szguid, sizeof(szguid)/sizeof(szguid[0]) ); - if ( r != ERROR_SUCCESS ) - break; - - hr = CLSIDFromString( szguid, &guid ); - if (SUCCEEDED(hr)) - { - /* stop at the first one that succeeds in running */ - hr = shellex_load_object_and_run( hkey, &guid, sei ); - if ( SUCCEEDED( hr ) ) - break; - } - } - RegCloseKey( hkeycm ); - } - - if ( hkey != sei->hkeyClass ) - RegCloseKey( hkey ); - return r; -} - -static UINT_PTR SHELL_execute_class( LPCWSTR wszApplicationName, LPSHELLEXECUTEINFOW psei, LPSHELLEXECUTEINFOW psei_out, SHELL_ExecuteW32 execfunc ) -{ - static const WCHAR wSpace[] = {' ',0}; - WCHAR execCmd[1024], wcmd[1024]; - /* launch a document by fileclass like 'WordPad.Document.1' */ - /* the Commandline contains 'c:\Path\wordpad.exe "%1"' */ - /* FIXME: wcmd should not be of a fixed size. Fixed to 1024, MAX_PATH is way too short! */ - ULONG cmask=(psei->fMask & SEE_MASK_CLASSALL); - DWORD resultLen; - BOOL done; - - HCR_GetExecuteCommandW((cmask == SEE_MASK_CLASSKEY) ? psei->hkeyClass : NULL, - (cmask == SEE_MASK_CLASSNAME) ? psei->lpClass: NULL, - psei->lpVerb, - execCmd, sizeof(execCmd)); - - /* FIXME: get the extension of lpFile, check if it fits to the lpClass */ - TRACE("SEE_MASK_CLASSNAME->%s, doc->%s\n", debugstr_w(execCmd), debugstr_w(wszApplicationName)); - - wcmd[0] = '\0'; - done = SHELL_ArgifyW(wcmd, sizeof(wcmd)/sizeof(WCHAR), execCmd, wszApplicationName, psei->lpIDList, NULL, &resultLen); - if (!done && wszApplicationName[0]) - { - strcatW(wcmd, wSpace); - strcatW(wcmd, wszApplicationName); - } - if (resultLen > sizeof(wcmd)/sizeof(WCHAR)) - ERR("Argify buffer not large enough... truncating\n"); - return execfunc(wcmd, NULL, FALSE, psei, psei_out); -} - -static BOOL SHELL_translate_idlist( LPSHELLEXECUTEINFOW sei, LPWSTR wszParameters, DWORD parametersLen, LPWSTR wszApplicationName, DWORD dwApplicationNameLen ) -{ - static const WCHAR wExplorer[] = {'e','x','p','l','o','r','e','r','.','e','x','e',0}; - WCHAR buffer[MAX_PATH]; - BOOL appKnownSingular = FALSE; - - /* last chance to translate IDList: now also allow CLSID paths */ - if (SUCCEEDED(SHELL_GetPathFromIDListForExecuteW(sei->lpIDList, buffer, sizeof(buffer)))) { - if (buffer[0]==':' && buffer[1]==':') { - /* open shell folder for the specified class GUID */ - if (strlenW(buffer) + 1 > parametersLen) - ERR("parameters len exceeds buffer size (%i > %i), truncating\n", - lstrlenW(buffer) + 1, parametersLen); - lstrcpynW(wszParameters, buffer, parametersLen); - if (strlenW(wExplorer) > dwApplicationNameLen) - ERR("application len exceeds buffer size (%i > %i), truncating\n", - lstrlenW(wExplorer) + 1, dwApplicationNameLen); - lstrcpynW(wszApplicationName, wExplorer, dwApplicationNameLen); - appKnownSingular = TRUE; - - sei->fMask &= ~SEE_MASK_INVOKEIDLIST; - } else { - WCHAR target[MAX_PATH]; - DWORD attribs; - DWORD resultLen; - /* Check if we're executing a directory and if so use the - handler for the Folder class */ - strcpyW(target, buffer); - attribs = GetFileAttributesW(buffer); - if (attribs != INVALID_FILE_ATTRIBUTES && - (attribs & FILE_ATTRIBUTE_DIRECTORY) && - HCR_GetExecuteCommandW(0, wszFolder, - sei->lpVerb, - buffer, sizeof(buffer))) { - SHELL_ArgifyW(wszApplicationName, dwApplicationNameLen, - buffer, target, sei->lpIDList, NULL, &resultLen); - if (resultLen > dwApplicationNameLen) - ERR("Argify buffer not large enough... truncating\n"); - appKnownSingular = FALSE; - } - sei->fMask &= ~SEE_MASK_INVOKEIDLIST; - } - } - return appKnownSingular; -} - -static UINT_PTR SHELL_quote_and_execute( LPCWSTR wcmd, LPCWSTR wszParameters, LPCWSTR lpstrProtocol, LPCWSTR wszApplicationName, LPWSTR env, LPSHELLEXECUTEINFOW psei, LPSHELLEXECUTEINFOW psei_out, SHELL_ExecuteW32 execfunc ) -{ - static const WCHAR wQuote[] = {'"',0}; - static const WCHAR wSpace[] = {' ',0}; - UINT_PTR retval; - DWORD len; - WCHAR *wszQuotedCmd; - - /* Length of quotes plus length of command plus NULL terminator */ - len = 2 + lstrlenW(wcmd) + 1; - if (wszParameters[0]) - { - /* Length of space plus length of parameters */ - len += 1 + lstrlenW(wszParameters); - } - wszQuotedCmd = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - /* Must quote to handle case where cmd contains spaces, - * else security hole if malicious user creates executable file "C:\\Program" - */ - strcpyW(wszQuotedCmd, wQuote); - strcatW(wszQuotedCmd, wcmd); - strcatW(wszQuotedCmd, wQuote); - if (wszParameters[0]) { - strcatW(wszQuotedCmd, wSpace); - strcatW(wszQuotedCmd, wszParameters); - } - TRACE("%s/%s => %s/%s\n", debugstr_w(wszApplicationName), debugstr_w(psei->lpVerb), debugstr_w(wszQuotedCmd), debugstr_w(lpstrProtocol)); - if (*lpstrProtocol) - retval = execute_from_key(lpstrProtocol, wszApplicationName, env, psei->lpParameters, wcmd, execfunc, psei, psei_out); - else - retval = execfunc(wszQuotedCmd, env, FALSE, psei, psei_out); - HeapFree(GetProcessHeap(), 0, wszQuotedCmd); - return retval; -} - -static UINT_PTR SHELL_execute_url( LPCWSTR lpFile, LPCWSTR wFile, LPCWSTR wcmd, LPSHELLEXECUTEINFOW psei, LPSHELLEXECUTEINFOW psei_out, SHELL_ExecuteW32 execfunc ) -{ - static const WCHAR wShell[] = {'\\','s','h','e','l','l','\\',0}; - static const WCHAR wCommand[] = {'\\','c','o','m','m','a','n','d',0}; - UINT_PTR retval; - WCHAR *lpstrProtocol; - LPCWSTR lpstrRes; - INT iSize; - DWORD len; - - lpstrRes = strchrW(lpFile, ':'); - if (lpstrRes) - iSize = lpstrRes - lpFile; - else - iSize = strlenW(lpFile); - - TRACE("Got URL: %s\n", debugstr_w(lpFile)); - /* Looking for ...protocol\shell\lpOperation\command */ - len = iSize + lstrlenW(wShell) + lstrlenW(wCommand) + 1; - if (psei->lpVerb) - len += lstrlenW(psei->lpVerb); - else - len += lstrlenW(wszOpen); - lpstrProtocol = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - memcpy(lpstrProtocol, lpFile, iSize*sizeof(WCHAR)); - lpstrProtocol[iSize] = '\0'; - strcatW(lpstrProtocol, wShell); - strcatW(lpstrProtocol, psei->lpVerb? psei->lpVerb: wszOpen); - strcatW(lpstrProtocol, wCommand); - - /* Remove File Protocol from lpFile */ - /* In the case file://path/file */ - if (!strncmpiW(lpFile, wFile, iSize)) - { - lpFile += iSize; - while (*lpFile == ':') lpFile++; - } - retval = execute_from_key(lpstrProtocol, lpFile, NULL, psei->lpParameters, - wcmd, execfunc, psei, psei_out); - HeapFree(GetProcessHeap(), 0, lpstrProtocol); - return retval; -} - -void do_error_dialog( UINT_PTR retval, HWND hwnd, WCHAR* filename) -{ - WCHAR msg[2048]; - DWORD_PTR msgArguments[3] = { (DWORD_PTR)filename, 0, 0 }; - DWORD error_code; - - error_code = GetLastError(); - - if (retval == SE_ERR_NOASSOC) - LoadStringW(shell32_hInstance, IDS_SHLEXEC_NOASSOC, msg, sizeof(msg)/sizeof(WCHAR)); - else - FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY, - NULL, - error_code, - LANG_USER_DEFAULT, - msg, - sizeof(msg)/sizeof(WCHAR), - (va_list*)msgArguments); - - MessageBoxW(hwnd, msg, NULL, MB_ICONERROR); -} - -/************************************************************************* - * SHELL_execute [Internal] - */ -BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc ) -{ - static const WCHAR wSpace[] = {' ',0}; - static const WCHAR wWww[] = {'w','w','w',0}; - static const WCHAR wFile[] = {'f','i','l','e',0}; - static const WCHAR wHttp[] = {'h','t','t','p',':','/','/',0}; - static const DWORD unsupportedFlags = - SEE_MASK_INVOKEIDLIST | SEE_MASK_ICON | SEE_MASK_HOTKEY | - SEE_MASK_CONNECTNETDRV | SEE_MASK_FLAG_DDEWAIT | - SEE_MASK_UNICODE | SEE_MASK_ASYNCOK | SEE_MASK_HMONITOR; - - WCHAR parametersBuffer[1024], dirBuffer[MAX_PATH], wcmdBuffer[1024]; - WCHAR *wszApplicationName, *wszParameters, *wszDir, *wcmd; - DWORD dwApplicationNameLen = MAX_PATH+2; - DWORD parametersLen = sizeof(parametersBuffer) / sizeof(WCHAR); - DWORD dirLen = sizeof(dirBuffer) / sizeof(WCHAR); - DWORD wcmdLen = sizeof(wcmdBuffer) / sizeof(WCHAR); - DWORD len; - SHELLEXECUTEINFOW sei_tmp; /* modifiable copy of SHELLEXECUTEINFO struct */ - WCHAR wfileName[MAX_PATH]; - WCHAR *env; - WCHAR lpstrProtocol[256]; - LPCWSTR lpFile; - UINT_PTR retval = SE_ERR_NOASSOC; - BOOL appKnownSingular = FALSE; - - /* make a local copy of the LPSHELLEXECUTEINFO structure and work with this from now on */ - sei_tmp = *sei; - - TRACE("mask=0x%08x hwnd=%p verb=%s file=%s parm=%s dir=%s show=0x%08x class=%s\n", - sei_tmp.fMask, sei_tmp.hwnd, debugstr_w(sei_tmp.lpVerb), - debugstr_w(sei_tmp.lpFile), debugstr_w(sei_tmp.lpParameters), - debugstr_w(sei_tmp.lpDirectory), sei_tmp.nShow, - ((sei_tmp.fMask & SEE_MASK_CLASSALL) == SEE_MASK_CLASSNAME) ? - debugstr_w(sei_tmp.lpClass) : "not used"); - - sei->hProcess = NULL; - - /* make copies of all path/command strings */ - if (!sei_tmp.lpFile) - { - wszApplicationName = HeapAlloc(GetProcessHeap(), 0, dwApplicationNameLen*sizeof(WCHAR)); - *wszApplicationName = '\0'; - } - else if (*sei_tmp.lpFile == '\"') - { - DWORD l = strlenW(sei_tmp.lpFile+1); - if(l >= dwApplicationNameLen) dwApplicationNameLen = l+1; - wszApplicationName = HeapAlloc(GetProcessHeap(), 0, dwApplicationNameLen*sizeof(WCHAR)); - memcpy(wszApplicationName, sei_tmp.lpFile+1, (l+1)*sizeof(WCHAR)); - if (wszApplicationName[l-1] == '\"') - wszApplicationName[l-1] = '\0'; - appKnownSingular = TRUE; - TRACE("wszApplicationName=%s\n",debugstr_w(wszApplicationName)); - } else { - DWORD l = strlenW(sei_tmp.lpFile)+1; - if(l > dwApplicationNameLen) dwApplicationNameLen = l+1; - wszApplicationName = HeapAlloc(GetProcessHeap(), 0, dwApplicationNameLen*sizeof(WCHAR)); - memcpy(wszApplicationName, sei_tmp.lpFile, l*sizeof(WCHAR)); - } - - wszParameters = parametersBuffer; - if (sei_tmp.lpParameters) - { - len = lstrlenW(sei_tmp.lpParameters) + 1; - if (len > parametersLen) - { - wszParameters = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - parametersLen = len; - } - strcpyW(wszParameters, sei_tmp.lpParameters); - } - else - *wszParameters = '\0'; - - wszDir = dirBuffer; - if (sei_tmp.lpDirectory) - { - len = lstrlenW(sei_tmp.lpDirectory) + 1; - if (len > dirLen) - { - wszDir = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - dirLen = len; - } - strcpyW(wszDir, sei_tmp.lpDirectory); - } - else - *wszDir = '\0'; - - /* adjust string pointers to point to the new buffers */ - sei_tmp.lpFile = wszApplicationName; - sei_tmp.lpParameters = wszParameters; - sei_tmp.lpDirectory = wszDir; - - if (sei_tmp.fMask & unsupportedFlags) - { - FIXME("flags ignored: 0x%08x\n", sei_tmp.fMask & unsupportedFlags); - } - - /* process the IDList */ - if (sei_tmp.fMask & SEE_MASK_IDLIST) - { - IShellExecuteHookW* pSEH; - - HRESULT hr = SHBindToParent(sei_tmp.lpIDList, &IID_IShellExecuteHookW, (LPVOID*)&pSEH, NULL); - - if (SUCCEEDED(hr)) - { - hr = IShellExecuteHookW_Execute(pSEH, &sei_tmp); - - IShellExecuteHookW_Release(pSEH); - - if (hr == S_OK) { - HeapFree(GetProcessHeap(), 0, wszApplicationName); - if (wszParameters != parametersBuffer) - HeapFree(GetProcessHeap(), 0, wszParameters); - if (wszDir != dirBuffer) - HeapFree(GetProcessHeap(), 0, wszDir); - return TRUE; - } - } - - SHGetPathFromIDListW(sei_tmp.lpIDList, wszApplicationName); - appKnownSingular = TRUE; - TRACE("-- idlist=%p (%s)\n", sei_tmp.lpIDList, debugstr_w(wszApplicationName)); - } - - if ( ERROR_SUCCESS == ShellExecute_FromContextMenu( &sei_tmp ) ) - { - sei->hInstApp = (HINSTANCE) 33; - HeapFree(GetProcessHeap(), 0, wszApplicationName); - if (wszParameters != parametersBuffer) - HeapFree(GetProcessHeap(), 0, wszParameters); - if (wszDir != dirBuffer) - HeapFree(GetProcessHeap(), 0, wszDir); - return TRUE; - } - - if (sei_tmp.fMask & SEE_MASK_CLASSALL) - { - retval = SHELL_execute_class( wszApplicationName, &sei_tmp, sei, - execfunc ); - if (retval <= 32 && !(sei_tmp.fMask & SEE_MASK_FLAG_NO_UI)) - { - OPENASINFO Info; - - //FIXME - // need full path - - Info.pcszFile = wszApplicationName; - Info.pcszClass = NULL; - Info.oaifInFlags = OAIF_ALLOW_REGISTRATION | OAIF_EXEC; - - //if (SHOpenWithDialog(sei_tmp.hwnd, &Info) != S_OK) - do_error_dialog(retval, sei_tmp.hwnd, wszApplicationName); - } - HeapFree(GetProcessHeap(), 0, wszApplicationName); - if (wszParameters != parametersBuffer) - HeapFree(GetProcessHeap(), 0, wszParameters); - if (wszDir != dirBuffer) - HeapFree(GetProcessHeap(), 0, wszDir); - return retval > 32; - } - - /* Has the IDList not yet been translated? */ - if (sei_tmp.fMask & SEE_MASK_IDLIST) - { - appKnownSingular = SHELL_translate_idlist( &sei_tmp, wszParameters, - parametersLen, - wszApplicationName, - dwApplicationNameLen ); - } - - /* expand environment strings */ - len = ExpandEnvironmentStringsW(sei_tmp.lpFile, NULL, 0); - if (len>0) - { - LPWSTR buf; - buf = HeapAlloc(GetProcessHeap(),0,(len+1)*sizeof(WCHAR)); - - ExpandEnvironmentStringsW(sei_tmp.lpFile, buf, len+1); - HeapFree(GetProcessHeap(), 0, wszApplicationName); - dwApplicationNameLen = len+1; - wszApplicationName = buf; - /* appKnownSingular unmodified */ - - sei_tmp.lpFile = wszApplicationName; - } - - if (*sei_tmp.lpParameters) - { - len = ExpandEnvironmentStringsW(sei_tmp.lpParameters, NULL, 0); - if (len > 0) - { - LPWSTR buf; - len++; - buf = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR)); - ExpandEnvironmentStringsW(sei_tmp.lpParameters, buf, len); - if (wszParameters != parametersBuffer) - HeapFree(GetProcessHeap(), 0, wszParameters); - wszParameters = buf; - parametersLen = len; - sei_tmp.lpParameters = wszParameters; - } - } - - if (*sei_tmp.lpDirectory) - { - len = ExpandEnvironmentStringsW(sei_tmp.lpDirectory, NULL, 0); - if (len > 0) - { - LPWSTR buf; - len++; - buf = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR)); - ExpandEnvironmentStringsW(sei_tmp.lpDirectory, buf, len); - if (wszDir != dirBuffer) - HeapFree(GetProcessHeap(), 0, wszDir); - wszDir = buf; - sei_tmp.lpDirectory = wszDir; - } - } - - /* Else, try to execute the filename */ - TRACE("execute:%s,%s,%s\n", debugstr_w(wszApplicationName), debugstr_w(wszParameters), debugstr_w(wszDir)); - - /* separate out command line arguments from executable file name */ - if (!*sei_tmp.lpParameters && !appKnownSingular) { - /* If the executable path is quoted, handle the rest of the command line as parameters. */ - if (sei_tmp.lpFile[0] == '"') { - LPWSTR src = wszApplicationName/*sei_tmp.lpFile*/ + 1; - LPWSTR dst = wfileName; - LPWSTR end; - - /* copy the unquoted executable path to 'wfileName' */ - while(*src && *src!='"') - *dst++ = *src++; - - *dst = '\0'; - - if (*src == '"') { - end = ++src; - - while(isspace(*src)) - ++src; - } else - end = src; - - /* copy the parameter string to 'wszParameters' */ - strcpyW(wszParameters, src); - - /* terminate previous command string after the quote character */ - *end = '\0'; - } - else - { - /* If the executable name is not quoted, we have to use this search loop here, - that in CreateProcess() is not sufficient because it does not handle shell links. */ - WCHAR buffer[MAX_PATH], xlpFile[MAX_PATH]; - LPWSTR space, s; - - LPWSTR beg = wszApplicationName/*sei_tmp.lpFile*/; - for(s=beg; (space=strchrW(s, ' ')); s=space+1) { - int idx = space-sei_tmp.lpFile; - memcpy(buffer, sei_tmp.lpFile, idx * sizeof(WCHAR)); - buffer[idx] = '\0'; - - /*FIXME This finds directory paths if the targeted file name contains spaces. */ - if (SearchPathW(*sei_tmp.lpDirectory? sei_tmp.lpDirectory: NULL, buffer, wszExe, sizeof(xlpFile)/sizeof(xlpFile[0]), xlpFile, NULL)) - { - /* separate out command from parameter string */ - LPCWSTR p = space + 1; - - while(isspaceW(*p)) - ++p; - - strcpyW(wszParameters, p); - *space = '\0'; - - break; - } - } - - lstrcpynW(wfileName, sei_tmp.lpFile,sizeof(wfileName)/sizeof(WCHAR)); - } - } else - lstrcpynW(wfileName, sei_tmp.lpFile,sizeof(wfileName)/sizeof(WCHAR)); - - lpFile = wfileName; - - wcmd = wcmdBuffer; - len = lstrlenW(wszApplicationName) + 1; - if (sei_tmp.lpParameters[0]) - len += 1 + lstrlenW(wszParameters); - if (len > wcmdLen) - { - wcmd = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - wcmdLen = len; - } - strcpyW(wcmd, wszApplicationName); - if (sei_tmp.lpParameters[0]) { - strcatW(wcmd, wSpace); - strcatW(wcmd, wszParameters); - } - - retval = execfunc(wcmd, NULL, FALSE, &sei_tmp, sei); - if (retval > 32) { - HeapFree(GetProcessHeap(), 0, wszApplicationName); - if (wszParameters != parametersBuffer) - HeapFree(GetProcessHeap(), 0, wszParameters); - if (wszDir != dirBuffer) - HeapFree(GetProcessHeap(), 0, wszDir); - if (wcmd != wcmdBuffer) - HeapFree(GetProcessHeap(), 0, wcmd); - return TRUE; - } - - /* Else, try to find the executable */ - wcmd[0] = '\0'; - retval = SHELL_FindExecutable(sei_tmp.lpDirectory, lpFile, sei_tmp.lpVerb, wcmd, wcmdLen, lpstrProtocol, &env, sei_tmp.lpIDList, sei_tmp.lpParameters); - if (retval > 32) /* Found */ - { - retval = SHELL_quote_and_execute( wcmd, wszParameters, lpstrProtocol, - wszApplicationName, env, &sei_tmp, - sei, execfunc ); - HeapFree( GetProcessHeap(), 0, env ); - } - else if (PathIsDirectoryW(lpFile)) - { - static const WCHAR wExplorer[] = {'e','x','p','l','o','r','e','r',0}; - static const WCHAR wQuote[] = {'"',0}; - WCHAR wExec[MAX_PATH]; - WCHAR * lpQuotedFile = HeapAlloc( GetProcessHeap(), 0, sizeof(WCHAR) * (strlenW(lpFile) + 3) ); - - if (lpQuotedFile) - { - retval = SHELL_FindExecutable( sei_tmp.lpDirectory, wExplorer, - wszOpen, wExec, MAX_PATH, - NULL, &env, NULL, NULL ); - if (retval > 32) - { - strcpyW(lpQuotedFile, wQuote); - strcatW(lpQuotedFile, lpFile); - strcatW(lpQuotedFile, wQuote); - retval = SHELL_quote_and_execute( wExec, lpQuotedFile, - lpstrProtocol, - wszApplicationName, env, - &sei_tmp, sei, execfunc ); - HeapFree( GetProcessHeap(), 0, env ); - } - HeapFree( GetProcessHeap(), 0, lpQuotedFile ); - } - else - retval = 0; /* Out of memory */ - } - else if (PathIsURLW(lpFile)) /* File not found, check for URL */ - { - retval = SHELL_execute_url( lpFile, wFile, wcmd, &sei_tmp, sei, execfunc ); - } - /* Check if file specified is in the form www.??????.*** */ - else if (!strncmpiW(lpFile, wWww, 3)) - { - /* if so, append lpFile http:// and call ShellExecute */ - WCHAR lpstrTmpFile[256]; - strcpyW(lpstrTmpFile, wHttp); - strcatW(lpstrTmpFile, lpFile); - retval = (UINT_PTR)ShellExecuteW(sei_tmp.hwnd, sei_tmp.lpVerb, lpstrTmpFile, NULL, NULL, 0); - } - - TRACE("retval %lu\n", retval); - - if (retval <= 32 && !(sei_tmp.fMask & SEE_MASK_FLAG_NO_UI)) - { - OPENASINFO Info; - - //FIXME - // need full path - - Info.pcszFile = wszApplicationName; - Info.pcszClass = NULL; - Info.oaifInFlags = OAIF_ALLOW_REGISTRATION | OAIF_EXEC; - - //if (SHOpenWithDialog(sei_tmp.hwnd, &Info) != S_OK) - do_error_dialog(retval, sei_tmp.hwnd, wszApplicationName); - } - - HeapFree(GetProcessHeap(), 0, wszApplicationName); - if (wszParameters != parametersBuffer) - HeapFree(GetProcessHeap(), 0, wszParameters); - if (wszDir != dirBuffer) - HeapFree(GetProcessHeap(), 0, wszDir); - if (wcmd != wcmdBuffer) - HeapFree(GetProcessHeap(), 0, wcmd); - - sei->hInstApp = (HINSTANCE)(retval > 32 ? 33 : retval); - - return retval > 32; -} - -/************************************************************************* - * ShellExecuteA [SHELL32.290] - */ -HINSTANCE WINAPI ShellExecuteA(HWND hWnd, LPCSTR lpOperation,LPCSTR lpFile, - LPCSTR lpParameters,LPCSTR lpDirectory, INT iShowCmd) -{ - SHELLEXECUTEINFOA sei; - - TRACE("%p,%s,%s,%s,%s,%d\n", - hWnd, debugstr_a(lpOperation), debugstr_a(lpFile), - debugstr_a(lpParameters), debugstr_a(lpDirectory), iShowCmd); - - sei.cbSize = sizeof(sei); - sei.fMask = SEE_MASK_FLAG_NO_UI; - sei.hwnd = hWnd; - sei.lpVerb = lpOperation; - sei.lpFile = lpFile; - sei.lpParameters = lpParameters; - sei.lpDirectory = lpDirectory; - sei.nShow = iShowCmd; - sei.lpIDList = 0; - sei.lpClass = 0; - sei.hkeyClass = 0; - sei.dwHotKey = 0; - sei.hProcess = 0; - - ShellExecuteExA (&sei); - return sei.hInstApp; -} - -/************************************************************************* - * ShellExecuteExA [SHELL32.292] - * - */ -BOOL WINAPI ShellExecuteExA (LPSHELLEXECUTEINFOA sei) -{ - SHELLEXECUTEINFOW seiW; - BOOL ret; - WCHAR *wVerb = NULL, *wFile = NULL, *wParameters = NULL, *wDirectory = NULL, *wClass = NULL; - - TRACE("%p\n", sei); - - memcpy(&seiW, sei, sizeof(SHELLEXECUTEINFOW)); - - if (sei->lpVerb) - seiW.lpVerb = __SHCloneStrAtoW(&wVerb, sei->lpVerb); - - if (sei->lpFile) - seiW.lpFile = __SHCloneStrAtoW(&wFile, sei->lpFile); - - if (sei->lpParameters) - seiW.lpParameters = __SHCloneStrAtoW(&wParameters, sei->lpParameters); - - if (sei->lpDirectory) - seiW.lpDirectory = __SHCloneStrAtoW(&wDirectory, sei->lpDirectory); - - if ((sei->fMask & SEE_MASK_CLASSALL) == SEE_MASK_CLASSNAME && sei->lpClass) - seiW.lpClass = __SHCloneStrAtoW(&wClass, sei->lpClass); - else - seiW.lpClass = NULL; - - ret = SHELL_execute( &seiW, SHELL_ExecuteW ); - - sei->hInstApp = seiW.hInstApp; - - if (sei->fMask & SEE_MASK_NOCLOSEPROCESS) - sei->hProcess = seiW.hProcess; - - SHFree(wVerb); - SHFree(wFile); - SHFree(wParameters); - SHFree(wDirectory); - SHFree(wClass); - - return ret; -} - -/************************************************************************* - * ShellExecuteExW [SHELL32.293] - * - */ -BOOL WINAPI ShellExecuteExW (LPSHELLEXECUTEINFOW sei) -{ - return SHELL_execute( sei, SHELL_ExecuteW ); -} - -/************************************************************************* - * ShellExecuteW [SHELL32.294] - * from shellapi.h - * WINSHELLAPI HINSTANCE APIENTRY ShellExecuteW(HWND hwnd, LPCWSTR lpOperation, - * LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd); - */ -HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpOperation, LPCWSTR lpFile, - LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd) -{ - SHELLEXECUTEINFOW sei; - - TRACE("\n"); - sei.cbSize = sizeof(sei); - sei.fMask = SEE_MASK_FLAG_NO_UI; - sei.hwnd = hwnd; - sei.lpVerb = lpOperation; - sei.lpFile = lpFile; - sei.lpParameters = lpParameters; - sei.lpDirectory = lpDirectory; - sei.nShow = nShowCmd; - sei.lpIDList = 0; - sei.lpClass = 0; - sei.hkeyClass = 0; - sei.dwHotKey = 0; - sei.hProcess = 0; - - SHELL_execute( &sei, SHELL_ExecuteW ); - return sei.hInstApp; -} - -/************************************************************************* - * WOWShellExecute [SHELL32.@] - * - * FIXME: the callback function most likely doesn't work the same way on Windows. - */ -HINSTANCE WINAPI WOWShellExecute(HWND hWnd, LPCSTR lpOperation,LPCSTR lpFile, - LPCSTR lpParameters,LPCSTR lpDirectory, INT iShowCmd, void *callback) -{ - SHELLEXECUTEINFOW seiW; - WCHAR *wVerb = NULL, *wFile = NULL, *wParameters = NULL, *wDirectory = NULL; - HANDLE hProcess = 0; - - seiW.lpVerb = lpOperation ? __SHCloneStrAtoW(&wVerb, lpOperation) : NULL; - seiW.lpFile = lpFile ? __SHCloneStrAtoW(&wFile, lpFile) : NULL; - seiW.lpParameters = lpParameters ? __SHCloneStrAtoW(&wParameters, lpParameters) : NULL; - seiW.lpDirectory = lpDirectory ? __SHCloneStrAtoW(&wDirectory, lpDirectory) : NULL; - - seiW.cbSize = sizeof(seiW); - seiW.fMask = 0; - seiW.hwnd = hWnd; - seiW.nShow = iShowCmd; - seiW.lpIDList = 0; - seiW.lpClass = 0; - seiW.hkeyClass = 0; - seiW.dwHotKey = 0; - seiW.hProcess = hProcess; - - SHELL_execute( &seiW, callback ); - - SHFree(wVerb); - SHFree(wFile); - SHFree(wParameters); - SHFree(wDirectory); - return seiW.hInstApp; -} - -/************************************************************************* - * OpenAs_RunDLLA [SHELL32.@] - */ -void WINAPI OpenAs_RunDLLA(HWND hwnd, HINSTANCE hinst, LPCSTR cmdline, int cmdshow) -{ - FIXME("%p, %p, %s, %d\n", hwnd, hinst, debugstr_a(cmdline), cmdshow); -} - -/************************************************************************* - * OpenAs_RunDLLW [SHELL32.@] - */ -void WINAPI OpenAs_RunDLLW(HWND hwnd, HINSTANCE hinst, LPCWSTR cmdline, int cmdshow) -{ - FIXME("%p, %p, %s, %d\n", hwnd, hinst, debugstr_w(cmdline), cmdshow); -} diff --git a/reactos/dll/win32/shell32/shlfileop.c b/reactos/dll/win32/shell32/shlfileop.c deleted file mode 100644 index f22b7225a00..00000000000 --- a/reactos/dll/win32/shell32/shlfileop.c +++ /dev/null @@ -1,1881 +0,0 @@ -/* - * SHFileOperation - * - * Copyright 2000 Juergen Schmied - * Copyright 2002 Andriy Palamarchuk - * Copyright 2004 Dietrich Teickner (from Odin) - * Copyright 2004 Rolf Kalbermatter - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -//#define NO_SHLWAPI_STREAM -#include - - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -#define IsAttrib(x, y) ((INVALID_FILE_ATTRIBUTES != (x)) && ((x) & (y))) -#define IsAttribFile(x) (!((x) & FILE_ATTRIBUTE_DIRECTORY)) -#define IsAttribDir(x) IsAttrib(x, FILE_ATTRIBUTE_DIRECTORY) -#define IsDotDir(x) ((x[0] == '.') && ((x[1] == 0) || ((x[1] == '.') && (x[2] == 0)))) - -#define FO_MASK 0xF -#define WM_FILE (WM_USER + 1) -#define TIMER_ID (100) - -static const WCHAR wWildcardFile[] = {'*',0}; -static const WCHAR wWildcardChars[] = {'*','?',0}; - -static DWORD SHNotifyCreateDirectoryW(LPCWSTR path, LPSECURITY_ATTRIBUTES sec); -static DWORD SHNotifyRemoveDirectoryW(LPCWSTR path); -static DWORD SHNotifyDeleteFileW(LPCWSTR path); -static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest); -static DWORD SHNotifyCopyFileW(LPCWSTR src, LPCWSTR dest, BOOL bFailIfExists); -static DWORD SHFindAttrW(LPCWSTR pName, BOOL fileOnly); - -typedef struct -{ - SHFILEOPSTRUCTW *req; - DWORD dwYesToAllMask; - BOOL bManyItems; - BOOL bCancelled; -} FILE_OPERATION; - -#define ERROR_SHELL_INTERNAL_FILE_NOT_FOUND 1026 - -typedef struct -{ - DWORD attributes; - LPWSTR szDirectory; - LPWSTR szFilename; - LPWSTR szFullPath; - BOOL bFromWildcard; - BOOL bFromRelative; - BOOL bExists; -} FILE_ENTRY; - -typedef struct -{ - FILE_ENTRY *feFiles; - DWORD num_alloc; - DWORD dwNumFiles; - BOOL bAnyFromWildcard; - BOOL bAnyDirectories; - BOOL bAnyDontExist; -} FILE_LIST; - -typedef struct -{ - FILE_LIST * from; - FILE_LIST * to; - FILE_OPERATION * op; - DWORD Index; - HWND hDlgCtrl; - HWND hwndDlg; -}FILE_OPERATION_CONTEXT; - - -/* Confirm dialogs with an optional "Yes To All" as used in file operations confirmations - */ -static const WCHAR CONFIRM_MSG_PROP[] = {'W','I','N','E','_','C','O','N','F','I','R','M',0}; - -struct confirm_msg_info -{ - LPWSTR lpszText; - LPWSTR lpszCaption; - HICON hIcon; - BOOL bYesToAll; -}; - -/* as some buttons may be hidden and the dialog height may change we may need - * to move the controls */ -static void confirm_msg_move_button(HWND hDlg, INT iId, INT *xPos, INT yOffset, BOOL bShow) -{ - HWND hButton = GetDlgItem(hDlg, iId); - RECT r; - - if (bShow) { - POINT pt; - int width; - - GetWindowRect(hButton, &r); - width = r.right - r.left; - pt.x = r.left; - pt.y = r.top; - ScreenToClient(hDlg, &pt); - MoveWindow(hButton, *xPos - width, pt.y - yOffset, width, r.bottom - r.top, FALSE); - *xPos -= width + 5; - } - else - ShowWindow(hButton, SW_HIDE); -} - -/* Note: we paint the text manually and don't use the static control to make - * sure the text has the same height as the one computed in WM_INITDIALOG - */ -static INT_PTR ConfirmMsgBox_Paint(HWND hDlg) -{ - PAINTSTRUCT ps; - HFONT hOldFont; - RECT r; - HDC hdc; - - BeginPaint(hDlg, &ps); - hdc = ps.hdc; - - GetClientRect(GetDlgItem(hDlg, IDD_MESSAGE), &r); - /* this will remap the rect to dialog coords */ - MapWindowPoints(GetDlgItem(hDlg, IDD_MESSAGE), hDlg, (LPPOINT)&r, 2); - hOldFont = SelectObject(hdc, (HFONT)SendDlgItemMessageW(hDlg, IDD_MESSAGE, WM_GETFONT, 0, 0)); - DrawTextW(hdc, GetPropW(hDlg, CONFIRM_MSG_PROP), -1, &r, DT_NOPREFIX | DT_PATH_ELLIPSIS | DT_WORDBREAK); - SelectObject(hdc, hOldFont); - EndPaint(hDlg, &ps); - return TRUE; -} - -static INT_PTR ConfirmMsgBox_Init(HWND hDlg, LPARAM lParam) -{ - struct confirm_msg_info *info = (struct confirm_msg_info *)lParam; - INT xPos, yOffset; - int width, height; - HFONT hOldFont; - HDC hdc; - RECT r; - - SetWindowTextW(hDlg, info->lpszCaption); - ShowWindow(GetDlgItem(hDlg, IDD_MESSAGE), SW_HIDE); - SetPropW(hDlg, CONFIRM_MSG_PROP, info->lpszText); - SendDlgItemMessageW(hDlg, IDD_ICON, STM_SETICON, (WPARAM)info->hIcon, 0); - - /* compute the text height and resize the dialog */ - GetClientRect(GetDlgItem(hDlg, IDD_MESSAGE), &r); - hdc = GetDC(hDlg); - yOffset = r.bottom; - hOldFont = SelectObject(hdc, (HFONT)SendDlgItemMessageW(hDlg, IDD_MESSAGE, WM_GETFONT, 0, 0)); - DrawTextW(hdc, info->lpszText, -1, &r, DT_NOPREFIX | DT_PATH_ELLIPSIS | DT_WORDBREAK | DT_CALCRECT); - SelectObject(hdc, hOldFont); - yOffset -= r.bottom; - yOffset = min(yOffset, 35); /* don't make the dialog too small */ - ReleaseDC(hDlg, hdc); - - GetClientRect(hDlg, &r); - xPos = r.right - 7; - GetWindowRect(hDlg, &r); - width = r.right - r.left; - height = r.bottom - r.top - yOffset; - MoveWindow(hDlg, (GetSystemMetrics(SM_CXSCREEN) - width)/2, - (GetSystemMetrics(SM_CYSCREEN) - height)/2, width, height, FALSE); - - confirm_msg_move_button(hDlg, IDCANCEL, &xPos, yOffset, info->bYesToAll); - confirm_msg_move_button(hDlg, IDNO, &xPos, yOffset, TRUE); - confirm_msg_move_button(hDlg, IDD_YESTOALL, &xPos, yOffset, info->bYesToAll); - confirm_msg_move_button(hDlg, IDYES, &xPos, yOffset, TRUE); - return TRUE; -} - -static INT_PTR CALLBACK ConfirmMsgBoxProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - switch (uMsg) - { - case WM_INITDIALOG: - return ConfirmMsgBox_Init(hDlg, lParam); - case WM_PAINT: - return ConfirmMsgBox_Paint(hDlg); - case WM_COMMAND: - EndDialog(hDlg, wParam); - break; - case WM_CLOSE: - EndDialog(hDlg, IDCANCEL); - break; - } - return FALSE; -} - -int SHELL_ConfirmMsgBox(HWND hWnd, LPWSTR lpszText, LPWSTR lpszCaption, HICON hIcon, BOOL bYesToAll) -{ - static const WCHAR wszTemplate[] = {'S','H','E','L','L','_','Y','E','S','T','O','A','L','L','_','M','S','G','B','O','X',0}; - struct confirm_msg_info info; - - info.lpszText = lpszText; - info.lpszCaption = lpszCaption; - info.hIcon = hIcon; - info.bYesToAll = bYesToAll; - return DialogBoxParamW(shell32_hInstance, wszTemplate, hWnd, ConfirmMsgBoxProc, (LPARAM)&info); -} - -/* confirmation dialogs content */ -typedef struct -{ - HINSTANCE hIconInstance; - UINT icon_resource_id; - UINT caption_resource_id, text_resource_id; -} SHELL_ConfirmIDstruc; - -static BOOL SHELL_ConfirmIDs(int nKindOfDialog, SHELL_ConfirmIDstruc *ids) -{ - ids->hIconInstance = shell32_hInstance; - switch (nKindOfDialog) { - case ASK_DELETE_FILE: - ids->icon_resource_id = IDI_SHELL_CONFIRM_DELETE; - ids->caption_resource_id = IDS_DELETEITEM_CAPTION; - ids->text_resource_id = IDS_DELETEITEM_TEXT; - return TRUE; - case ASK_DELETE_FOLDER: - ids->icon_resource_id = IDI_SHELL_CONFIRM_DELETE; - ids->caption_resource_id = IDS_DELETEFOLDER_CAPTION; - ids->text_resource_id = IDS_DELETEITEM_TEXT; - return TRUE; - case ASK_DELETE_MULTIPLE_ITEM: - ids->icon_resource_id = IDI_SHELL_CONFIRM_DELETE; - ids->caption_resource_id = IDS_DELETEITEM_CAPTION; - ids->text_resource_id = IDS_DELETEMULTIPLE_TEXT; - return TRUE; - case ASK_TRASH_FILE: - ids->icon_resource_id = IDI_SHELL_TRASH_FILE; - ids->caption_resource_id = IDS_DELETEITEM_CAPTION; - ids->text_resource_id = IDS_TRASHITEM_TEXT; - return TRUE; - case ASK_TRASH_FOLDER: - ids->icon_resource_id = IDI_SHELL_TRASH_FILE; - ids->caption_resource_id = IDS_DELETEFOLDER_CAPTION; - ids->text_resource_id = IDS_TRASHFOLDER_TEXT; - return TRUE; - case ASK_TRASH_MULTIPLE_ITEM: - ids->icon_resource_id = IDI_SHELL_TRASH_FILE; - ids->caption_resource_id = IDS_DELETEITEM_CAPTION; - ids->text_resource_id = IDS_TRASHMULTIPLE_TEXT; - return TRUE; - case ASK_CANT_TRASH_ITEM: - ids->icon_resource_id = IDI_SHELL_CONFIRM_DELETE; - ids->caption_resource_id = IDS_DELETEITEM_CAPTION; - ids->text_resource_id = IDS_CANTTRASH_TEXT; - return TRUE; - case ASK_DELETE_SELECTED: - ids->icon_resource_id = IDI_SHELL_CONFIRM_DELETE; - ids->caption_resource_id = IDS_DELETEITEM_CAPTION; - ids->text_resource_id = IDS_DELETESELECTED_TEXT; - return TRUE; - case ASK_OVERWRITE_FILE: - ids->hIconInstance = NULL; - ids->icon_resource_id = IDI_SHELL_CONFIRM_DELETE; - ids->caption_resource_id = IDS_OVERWRITEFILE_CAPTION; - ids->text_resource_id = IDS_OVERWRITEFILE_TEXT; - return TRUE; - case ASK_OVERWRITE_FOLDER: - ids->hIconInstance = NULL; - ids->icon_resource_id = IDI_SHELL_CONFIRM_DELETE; - ids->caption_resource_id = IDS_OVERWRITEFILE_CAPTION; - ids->text_resource_id = IDS_OVERWRITEFOLDER_TEXT; - return TRUE; - default: - FIXME(" Unhandled nKindOfDialog %d stub\n", nKindOfDialog); - } - return FALSE; -} - -static BOOL SHELL_ConfirmDialogW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir, FILE_OPERATION *op) -{ - WCHAR szCaption[255], szText[255], szBuffer[MAX_PATH + 256]; - SHELL_ConfirmIDstruc ids; - DWORD_PTR args[1]; - HICON hIcon; - int ret; - - assert(nKindOfDialog >= 0 && nKindOfDialog < 32); - if (op && (op->dwYesToAllMask & (1 << nKindOfDialog))) - return TRUE; - - if (!SHELL_ConfirmIDs(nKindOfDialog, &ids)) return FALSE; - - LoadStringW(shell32_hInstance, ids.caption_resource_id, szCaption, sizeof(szCaption)/sizeof(WCHAR)); - LoadStringW(shell32_hInstance, ids.text_resource_id, szText, sizeof(szText)/sizeof(WCHAR)); - - args[0] = (DWORD_PTR)szDir; - FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY, - szText, 0, 0, szBuffer, sizeof(szBuffer), (va_list*)args); - hIcon = LoadIconW(ids.hIconInstance, (LPWSTR)MAKEINTRESOURCE(ids.icon_resource_id)); - - ret = SHELL_ConfirmMsgBox(hWnd, szBuffer, szCaption, hIcon, op && op->bManyItems); - if (op) { - if (ret == IDD_YESTOALL) { - op->dwYesToAllMask |= (1 << nKindOfDialog); - ret = IDYES; - } - if (ret == IDCANCEL) - op->bCancelled = TRUE; - if (ret != IDYES) - op->req->fAnyOperationsAborted = TRUE; - } - return ret == IDYES; -} - -BOOL SHELL_ConfirmYesNoW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir) -{ - return SHELL_ConfirmDialogW(hWnd, nKindOfDialog, szDir, NULL); -} - -static DWORD SHELL32_AnsiToUnicodeBuf(LPCSTR aPath, LPWSTR *wPath, DWORD minChars) -{ - DWORD len = MultiByteToWideChar(CP_ACP, 0, aPath, -1, NULL, 0); - - if (len < minChars) - len = minChars; - - *wPath = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - if (*wPath) - { - MultiByteToWideChar(CP_ACP, 0, aPath, -1, *wPath, len); - return NO_ERROR; - } - return E_OUTOFMEMORY; -} - -static void SHELL32_FreeUnicodeBuf(LPWSTR wPath) -{ - HeapFree(GetProcessHeap(), 0, wPath); -} - -HRESULT WINAPI SHIsFileAvailableOffline(LPCWSTR path, LPDWORD status) -{ - FIXME("(%s, %p) stub\n", debugstr_w(path), status); - return E_FAIL; -} - -/************************************************************************** - * SHELL_DeleteDirectory() [internal] - * - * Asks for confirmation when bShowUI is true and deletes the directory and - * all its subdirectories and files if necessary. - */ -BOOL SHELL_DeleteDirectoryW(HWND hwnd, LPCWSTR pszDir, BOOL bShowUI) -{ - BOOL ret = TRUE; - HANDLE hFind; - WIN32_FIND_DATAW wfd; - WCHAR szTemp[MAX_PATH]; - - /* Make sure the directory exists before eventually prompting the user */ - PathCombineW(szTemp, pszDir, wWildcardFile); - hFind = FindFirstFileW(szTemp, &wfd); - if (hFind == INVALID_HANDLE_VALUE) - return FALSE; - - if (!bShowUI || (ret = SHELL_ConfirmDialogW(hwnd, ASK_DELETE_FOLDER, pszDir, NULL))) - { - do - { - if (IsDotDir(wfd.cFileName)) - continue; - PathCombineW(szTemp, pszDir, wfd.cFileName); - if (FILE_ATTRIBUTE_DIRECTORY & wfd.dwFileAttributes) - ret = SHELL_DeleteDirectoryW(hwnd, szTemp, FALSE); - else - ret = (SHNotifyDeleteFileW(szTemp) == ERROR_SUCCESS); - } while (ret && FindNextFileW(hFind, &wfd)); - } - FindClose(hFind); - if (ret) - ret = (SHNotifyRemoveDirectoryW(pszDir) == ERROR_SUCCESS); - return ret; -} - -/************************************************************************** - * Win32CreateDirectory [SHELL32.93] - * - * Creates a directory. Also triggers a change notify if one exists. - * - * PARAMS - * path [I] path to directory to create - * - * RETURNS - * TRUE if successful, FALSE otherwise - */ - -static DWORD SHNotifyCreateDirectoryW(LPCWSTR path, LPSECURITY_ATTRIBUTES sec) -{ - TRACE("(%s, %p)\n", debugstr_w(path), sec); - - if (CreateDirectoryW(path, sec)) - { - SHChangeNotify(SHCNE_MKDIR, SHCNF_PATHW, path, NULL); - return ERROR_SUCCESS; - } - return GetLastError(); -} - -/**********************************************************************/ - -BOOL WINAPI Win32CreateDirectoryW(LPCWSTR path, LPSECURITY_ATTRIBUTES sec) -{ - return (SHNotifyCreateDirectoryW(path, sec) == ERROR_SUCCESS); -} - -/************************************************************************ - * Win32RemoveDirectory [SHELL32.94] - * - * Deletes a directory. Also triggers a change notify if one exists. - * - * PARAMS - * path [I] path to directory to delete - * - * RETURNS - * TRUE if successful, FALSE otherwise - */ -static DWORD SHNotifyRemoveDirectoryW(LPCWSTR path) -{ - BOOL ret; - TRACE("(%s)\n", debugstr_w(path)); - - ret = RemoveDirectoryW(path); - if (!ret) - { - /* Directory may be write protected */ - DWORD dwAttr = GetFileAttributesW(path); - if (IsAttrib(dwAttr, FILE_ATTRIBUTE_READONLY)) - if (SetFileAttributesW(path, dwAttr & ~FILE_ATTRIBUTE_READONLY)) - ret = RemoveDirectoryW(path); - } - if (ret) - { - SHChangeNotify(SHCNE_RMDIR, SHCNF_PATHW, path, NULL); - return ERROR_SUCCESS; - } - return GetLastError(); -} - -/***********************************************************************/ - -BOOL WINAPI Win32RemoveDirectoryW(LPCWSTR path) -{ - return (SHNotifyRemoveDirectoryW(path) == ERROR_SUCCESS); -} - -/************************************************************************ - * Win32DeleteFile [SHELL32.164] - * - * Deletes a file. Also triggers a change notify if one exists. - * - * PARAMS - * path [I] path to file to delete - * - * RETURNS - * TRUE if successful, FALSE otherwise - */ -static DWORD SHNotifyDeleteFileW(LPCWSTR path) -{ - BOOL ret; - - TRACE("(%s)\n", debugstr_w(path)); - - ret = DeleteFileW(path); - if (!ret) - { - /* File may be write protected or a system file */ - DWORD dwAttr = GetFileAttributesW(path); - if (IsAttrib(dwAttr, FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM)) - if (SetFileAttributesW(path, dwAttr & ~(FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM))) - ret = DeleteFileW(path); - } - if (ret) - { - SHChangeNotify(SHCNE_DELETE, SHCNF_PATHW, path, NULL); - return ERROR_SUCCESS; - } - return GetLastError(); -} - -/***********************************************************************/ - -DWORD WINAPI Win32DeleteFileW(LPCWSTR path) -{ - return (SHNotifyDeleteFileW(path) == ERROR_SUCCESS); -} - -/************************************************************************ - * SHNotifyMoveFile [internal] - * - * Moves a file. Also triggers a change notify if one exists. - * - * PARAMS - * src [I] path to source file to move - * dest [I] path to target file to move to - * - * RETURNS - * ERORR_SUCCESS if successful - */ -static DWORD SHNotifyMoveFileW(LPCWSTR src, LPCWSTR dest) -{ - BOOL ret; - - TRACE("(%s %s)\n", debugstr_w(src), debugstr_w(dest)); - - ret = MoveFileExW(src, dest, MOVEFILE_REPLACE_EXISTING); - - /* MOVEFILE_REPLACE_EXISTING fails with dirs, so try MoveFile */ - if (!ret) - ret = MoveFileW(src, dest); - - if (!ret) - { - DWORD dwAttr; - - dwAttr = SHFindAttrW(dest, FALSE); - if (INVALID_FILE_ATTRIBUTES == dwAttr) - { - /* Source file may be write protected or a system file */ - dwAttr = GetFileAttributesW(src); - if (IsAttrib(dwAttr, FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM)) - if (SetFileAttributesW(src, dwAttr & ~(FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM))) - ret = MoveFileW(src, dest); - } - } - if (ret) - { - SHChangeNotify(SHCNE_RENAMEITEM, SHCNF_PATHW, src, dest); - return ERROR_SUCCESS; - } - return GetLastError(); -} - -static DWORD WINAPI SHOperationProgressRoutine(LARGE_INTEGER TotalFileSize, LARGE_INTEGER TotalBytesTransferred, LARGE_INTEGER StreamSize, LARGE_INTEGER StreamBytesTransferred, DWORD dwStreamNumber, DWORD dwCallbackReason, HANDLE hSourceFile, HANDLE hDestinationFile, LPVOID lpData) -{ - FILE_OPERATION_CONTEXT * Context; - LARGE_INTEGER Progress; - - /* get context */ - Context = (FILE_OPERATION_CONTEXT*)lpData; - - if (TotalBytesTransferred.QuadPart) - { - Progress.QuadPart = (TotalBytesTransferred.QuadPart * 100) / TotalFileSize.QuadPart; - } - else - { - Progress.QuadPart = 1; - } - - /* update progress bar */ - SendMessageW(Context->hDlgCtrl, PBM_SETPOS, (WPARAM)Progress.u.LowPart, 0); - - if (TotalBytesTransferred.QuadPart == TotalFileSize.QuadPart) - { - /* file was copied */ - Context->Index++; - PostMessageW(Context->hwndDlg, WM_FILE, 0, 0); - } - - return PROGRESS_CONTINUE; -} - -BOOL -QueueFile( - FILE_OPERATION_CONTEXT * Context) -{ - FILE_ENTRY * from, *to = NULL; - BOOL bRet = FALSE; - - if (Context->Index >= Context->from->dwNumFiles) - return FALSE; - - /* get current file */ - from = &Context->from->feFiles[Context->Index]; - - if (Context->op->req->wFunc != FO_DELETE) - to = &Context->to->feFiles[Context->Index]; - - /* update status */ - SendDlgItemMessageW(Context->hwndDlg, 14001, WM_SETTEXT, 0, (LPARAM)from->szFullPath); - - if (Context->op->req->wFunc == FO_COPY) - { - bRet = CopyFileExW(from->szFullPath, to->szFullPath, SHOperationProgressRoutine, (LPVOID)Context, &Context->op->bCancelled, 0); - } - else if (Context->op->req->wFunc == FO_MOVE) - { - //bRet = MoveFileWithProgressW(from->szFullPath, to->szFullPath, SHOperationProgressRoutine, (LPVOID)Context, MOVEFILE_COPY_ALLOWED); - } - else if (Context->op->req->wFunc == FO_DELETE) - { - bRet = DeleteFile(from->szFullPath); - } - - return bRet; -} - -static INT_PTR CALLBACK SHOperationDialog(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - FILE_OPERATION_CONTEXT * Context; - - Context = (FILE_OPERATION_CONTEXT*) GetWindowLongPtr(hwndDlg, DWLP_USER); - - switch(uMsg) - { - case WM_INITDIALOG: - SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG)lParam); - - /* get context */ - Context = (FILE_OPERATION_CONTEXT*)lParam; - - /* store progress bar handle */ - Context->hDlgCtrl = GetDlgItem(hwndDlg, 14000); - - /* store window handle */ - Context->hwndDlg = hwndDlg; - - /* set progress bar range */ - (void)SendMessageW(Context->hDlgCtrl, (UINT) PBM_SETRANGE, 0, MAKELPARAM(0, 100)); - - /* start file queueing */ - SetTimer(hwndDlg, TIMER_ID, 1000, NULL); - //QueueFile(Context); - - return TRUE; - - case WM_CLOSE: - Context->op->bCancelled = TRUE; - EndDialog(hwndDlg, Context->op->bCancelled); - return TRUE; - case WM_COMMAND: - if (LOWORD(wParam) == 14002) - { - Context->op->bCancelled = TRUE; - EndDialog(hwndDlg, Context->op->bCancelled); - return TRUE; - } - break; - case WM_TIMER: - if (wParam == TIMER_ID) - { - QueueFile(Context); - KillTimer(hwndDlg, TIMER_ID); - } - break; - case WM_FILE: - if (!QueueFile(Context)) - EndDialog(hwndDlg, Context->op->bCancelled); - default: - break; - } - return FALSE; -} - -HRESULT -SHShowFileOperationDialog(FILE_OPERATION *op, FILE_LIST *flFrom, FILE_LIST *flTo) -{ - HWND hwnd; - BOOL bRet; - MSG msg; - FILE_OPERATION_CONTEXT Context; - - Context.from = flFrom; - Context.to = flTo; - Context.op = op; - Context.Index = 0; - Context.op->bCancelled = FALSE; - - hwnd = CreateDialogParam(shell32_hInstance, MAKEINTRESOURCE(IDD_SH_FILE_COPY), NULL, SHOperationDialog, (LPARAM)&Context); - if (hwnd == NULL) - { - ERR("Failed to create dialog\n"); - return E_FAIL; - } - ShowWindow(hwnd, SW_SHOWNORMAL); - - while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) - { - if (!IsWindow(hwnd) || !IsDialogMessage(hwnd, &msg)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - - return NOERROR; -} - - -/************************************************************************ - * SHNotifyCopyFile [internal] - * - * Copies a file. Also triggers a change notify if one exists. - * - * PARAMS - * src [I] path to source file to move - * dest [I] path to target file to move to - * bFailIfExists [I] if TRUE, the target file will not be overwritten if - * a file with this name already exists - * - * RETURNS - * ERROR_SUCCESS if successful - */ -static DWORD SHNotifyCopyFileW(LPCWSTR src, LPCWSTR dest, BOOL bFailIfExists) -{ - BOOL ret; - DWORD attribs; - - TRACE("(%s %s %s)\n", debugstr_w(src), debugstr_w(dest), bFailIfExists ? "failIfExists" : ""); - - /* Destination file may already exist with read only attribute */ - attribs = GetFileAttributesW(dest); - if (IsAttrib(attribs, FILE_ATTRIBUTE_READONLY)) - SetFileAttributesW(dest, attribs & ~FILE_ATTRIBUTE_READONLY); - - ret = CopyFileW(src, dest, bFailIfExists); - if (ret) - { - SHChangeNotify(SHCNE_CREATE, SHCNF_PATHW, dest, NULL); - return ERROR_SUCCESS; - } - - return GetLastError(); -} - -/************************************************************************* - * SHCreateDirectory [SHELL32.165] - * - * This function creates a file system folder whose fully qualified path is - * given by path. If one or more of the intermediate folders do not exist, - * they will be created as well. - * - * PARAMS - * hWnd [I] - * path [I] path of directory to create - * - * RETURNS - * ERROR_SUCCESS or one of the following values: - * ERROR_BAD_PATHNAME if the path is relative - * ERROR_FILE_EXISTS when a file with that name exists - * ERROR_PATH_NOT_FOUND can't find the path, probably invalid - * ERROR_INVALID_NAME if the path contains invalid chars - * ERROR_ALREADY_EXISTS when the directory already exists - * ERROR_FILENAME_EXCED_RANGE if the filename was to long to process - * - * NOTES - * exported by ordinal - * Win9x exports ANSI - * WinNT/2000 exports Unicode - */ -DWORD WINAPI SHCreateDirectory(HWND hWnd, LPCWSTR path) -{ - return SHCreateDirectoryExW(hWnd, path, NULL); -} - -/************************************************************************* - * SHCreateDirectoryExA [SHELL32.@] - * - * This function creates a file system folder whose fully qualified path is - * given by path. If one or more of the intermediate folders do not exist, - * they will be created as well. - * - * PARAMS - * hWnd [I] - * path [I] path of directory to create - * sec [I] security attributes to use or NULL - * - * RETURNS - * ERROR_SUCCESS or one of the following values: - * ERROR_BAD_PATHNAME or ERROR_PATH_NOT_FOUND if the path is relative - * ERROR_INVALID_NAME if the path contains invalid chars - * ERROR_FILE_EXISTS when a file with that name exists - * ERROR_ALREADY_EXISTS when the directory already exists - * ERROR_FILENAME_EXCED_RANGE if the filename was to long to process - * - * FIXME: Not implemented yet; - * SHCreateDirectoryEx also verifies that the files in the directory will be visible - * if the path is a network path to deal with network drivers which might have a limited - * but unknown maximum path length. If not: - * - * If hWnd is set to a valid window handle, a message box is displayed warning - * the user that the files may not be accessible. If the user chooses not to - * proceed, the function returns ERROR_CANCELLED. - * - * If hWnd is set to NULL, no user interface is displayed and the function - * returns ERROR_CANCELLED. - */ -int WINAPI SHCreateDirectoryExA(HWND hWnd, LPCSTR path, LPSECURITY_ATTRIBUTES sec) -{ - LPWSTR wPath; - DWORD retCode; - - TRACE("(%s, %p)\n", debugstr_a(path), sec); - - retCode = SHELL32_AnsiToUnicodeBuf(path, &wPath, 0); - if (!retCode) - { - retCode = SHCreateDirectoryExW(hWnd, wPath, sec); - SHELL32_FreeUnicodeBuf(wPath); - } - return retCode; -} - -/************************************************************************* - * SHCreateDirectoryExW [SHELL32.@] - * - * See SHCreateDirectoryExA. - */ -int WINAPI SHCreateDirectoryExW(HWND hWnd, LPCWSTR path, LPSECURITY_ATTRIBUTES sec) -{ - int ret = ERROR_BAD_PATHNAME; - TRACE("(%p, %s, %p)\n", hWnd, debugstr_w(path), sec); - - if (PathIsRelativeW(path)) - { - SetLastError(ret); - } - else - { - ret = SHNotifyCreateDirectoryW(path, sec); - /* Refuse to work on certain error codes before trying to create directories recursively */ - if (ret != ERROR_SUCCESS && - ret != ERROR_FILE_EXISTS && - ret != ERROR_ALREADY_EXISTS && - ret != ERROR_FILENAME_EXCED_RANGE) - { - WCHAR *pEnd, *pSlash, szTemp[MAX_PATH + 1]; /* extra for PathAddBackslash() */ - - lstrcpynW(szTemp, path, MAX_PATH); - pEnd = PathAddBackslashW(szTemp); - pSlash = szTemp + 3; - - while (*pSlash) - { - while (*pSlash && *pSlash != '\\') pSlash++; - if (*pSlash) - { - *pSlash = 0; /* terminate path at separator */ - - ret = SHNotifyCreateDirectoryW(szTemp, pSlash + 1 == pEnd ? sec : NULL); - } - *pSlash++ = '\\'; /* put the separator back */ - } - } - - if (ret && hWnd && (ERROR_CANCELLED != ret)) - { - /* We failed and should show a dialog box */ - FIXME("Show system error message, creating path %s, failed with error %d\n", debugstr_w(path), ret); - ret = ERROR_CANCELLED; /* Error has been already presented to user (not really yet!) */ - } - } - return ret; -} - -/************************************************************************* - * SHFindAttrW [internal] - * - * Get the Attributes for a file or directory. The difference to GetAttributes() - * is that this function will also work for paths containing wildcard characters - * in its filename. - - * PARAMS - * path [I] path of directory or file to check - * fileOnly [I] TRUE if only files should be found - * - * RETURNS - * INVALID_FILE_ATTRIBUTES if the path does not exist, the actual attributes of - * the first file or directory found otherwise - */ -static DWORD SHFindAttrW(LPCWSTR pName, BOOL fileOnly) -{ - WIN32_FIND_DATAW wfd; - BOOL b_FileMask = fileOnly && (NULL != StrPBrkW(pName, wWildcardChars)); - DWORD dwAttr = INVALID_FILE_ATTRIBUTES; - HANDLE hFind = FindFirstFileW(pName, &wfd); - - TRACE("%s %d\n", debugstr_w(pName), fileOnly); - if (INVALID_HANDLE_VALUE != hFind) - { - do - { - if (b_FileMask && IsAttribDir(wfd.dwFileAttributes)) - continue; - dwAttr = wfd.dwFileAttributes; - break; - } - while (FindNextFileW(hFind, &wfd)); - FindClose(hFind); - } - return dwAttr; -} - -/************************************************************************* - * - * SHNameTranslate HelperFunction for SHFileOperationA - * - * Translates a list of 0 terminated ASCII strings into Unicode. If *wString - * is NULL, only the necessary size of the string is determined and returned, - * otherwise the ASCII strings are copied into it and the buffer is increased - * to point to the location after the final 0 termination char. - */ -static DWORD SHNameTranslate(LPWSTR* wString, LPCWSTR* pWToFrom, BOOL more) -{ - DWORD size = 0, aSize = 0; - LPCSTR aString = (LPCSTR)*pWToFrom; - - if (aString) - { - do - { - size = lstrlenA(aString) + 1; - aSize += size; - aString += size; - } while ((size != 1) && more); - /* The two sizes might be different in the case of multibyte chars */ - size = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)*pWToFrom, aSize, *wString, 0); - if (*wString) /* only in the second loop */ - { - MultiByteToWideChar(CP_ACP, 0, (LPCSTR)*pWToFrom, aSize, *wString, size); - *pWToFrom = *wString; - *wString += size; - } - } - return size; -} -/************************************************************************* - * SHFileOperationA [SHELL32.@] - * - * Function to copy, move, delete and create one or more files with optional - * user prompts. - * - * PARAMS - * lpFileOp [I/O] pointer to a structure containing all the necessary information - * - * RETURNS - * Success: ERROR_SUCCESS. - * Failure: ERROR_CANCELLED. - * - * NOTES - * exported by name - */ -int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp) -{ - SHFILEOPSTRUCTW nFileOp = *((LPSHFILEOPSTRUCTW)lpFileOp); - int retCode = 0; - DWORD size; - LPWSTR ForFree = NULL, /* we change wString in SHNameTranslate and can't use it for freeing */ - wString = NULL; /* we change this in SHNameTranslate */ - - TRACE("\n"); - if (FO_DELETE == (nFileOp.wFunc & FO_MASK)) - nFileOp.pTo = NULL; /* we need a NULL or a valid pointer for translation */ - if (!(nFileOp.fFlags & FOF_SIMPLEPROGRESS)) - nFileOp.lpszProgressTitle = NULL; /* we need a NULL or a valid pointer for translation */ - while (1) /* every loop calculate size, second translate also, if we have storage for this */ - { - size = SHNameTranslate(&wString, &nFileOp.lpszProgressTitle, FALSE); /* no loop */ - size += SHNameTranslate(&wString, &nFileOp.pFrom, TRUE); /* internal loop */ - size += SHNameTranslate(&wString, &nFileOp.pTo, TRUE); /* internal loop */ - - if (ForFree) - { - retCode = SHFileOperationW(&nFileOp); - HeapFree(GetProcessHeap(), 0, ForFree); /* we cannot use wString, it was changed */ - break; - } - else - { - wString = ForFree = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR)); - if (ForFree) continue; - retCode = ERROR_OUTOFMEMORY; - nFileOp.fAnyOperationsAborted = TRUE; - SetLastError(retCode); - return retCode; - } - } - - lpFileOp->hNameMappings = nFileOp.hNameMappings; - lpFileOp->fAnyOperationsAborted = nFileOp.fAnyOperationsAborted; - return retCode; -} - - - - -static void __inline grow_list(FILE_LIST *list) -{ - FILE_ENTRY *new = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, list->feFiles, - list->num_alloc * 2 * sizeof(*new) ); - list->feFiles = new; - list->num_alloc *= 2; -} - -/* adds a file to the FILE_ENTRY struct - */ -static void add_file_to_entry(FILE_ENTRY *feFile, LPCWSTR szFile) -{ - DWORD dwLen = lstrlenW(szFile) + 1; - LPCWSTR ptr; - - feFile->szFullPath = HeapAlloc(GetProcessHeap(), 0, dwLen * sizeof(WCHAR)); - lstrcpyW(feFile->szFullPath, szFile); - - ptr = StrRChrW(szFile, NULL, '\\'); - if (ptr) - { - dwLen = ptr - szFile + 1; - feFile->szDirectory = HeapAlloc(GetProcessHeap(), 0, dwLen * sizeof(WCHAR)); - lstrcpynW(feFile->szDirectory, szFile, dwLen); - - dwLen = lstrlenW(feFile->szFullPath) - dwLen + 1; - feFile->szFilename = HeapAlloc(GetProcessHeap(), 0, dwLen * sizeof(WCHAR)); - lstrcpyW(feFile->szFilename, ptr + 1); /* skip over backslash */ - } - feFile->bFromWildcard = FALSE; -} - -static LPWSTR wildcard_to_file(LPCWSTR szWildCard, LPCWSTR szFileName) -{ - LPCWSTR ptr; - LPWSTR szFullPath; - DWORD dwDirLen, dwFullLen; - - ptr = StrRChrW(szWildCard, NULL, '\\'); - dwDirLen = ptr - szWildCard + 1; - - dwFullLen = dwDirLen + lstrlenW(szFileName) + 1; - szFullPath = HeapAlloc(GetProcessHeap(), 0, dwFullLen * sizeof(WCHAR)); - - lstrcpynW(szFullPath, szWildCard, dwDirLen + 1); - lstrcatW(szFullPath, szFileName); - - return szFullPath; -} - -static void parse_wildcard_files(FILE_LIST *flList, LPCWSTR szFile, LPDWORD pdwListIndex) -{ - WIN32_FIND_DATAW wfd; - HANDLE hFile = FindFirstFileW(szFile, &wfd); - FILE_ENTRY *file; - LPWSTR szFullPath; - BOOL res; - - if (hFile == INVALID_HANDLE_VALUE) return; - - for (res = TRUE; res; res = FindNextFileW(hFile, &wfd)) - { - if (IsDotDir(wfd.cFileName)) continue; - if (*pdwListIndex >= flList->num_alloc) grow_list( flList ); - szFullPath = wildcard_to_file(szFile, wfd.cFileName); - file = &flList->feFiles[(*pdwListIndex)++]; - add_file_to_entry(file, szFullPath); - file->bFromWildcard = TRUE; - file->attributes = wfd.dwFileAttributes; - if (IsAttribDir(file->attributes)) flList->bAnyDirectories = TRUE; - HeapFree(GetProcessHeap(), 0, szFullPath); - } - - FindClose(hFile); -} - -/* takes the null-separated file list and fills out the FILE_LIST */ -static HRESULT parse_file_list(FILE_LIST *flList, LPCWSTR szFiles) -{ - LPCWSTR ptr = szFiles; - WCHAR szCurFile[MAX_PATH]; - DWORD i = 0; - - if (!szFiles) - return ERROR_INVALID_PARAMETER; - - flList->bAnyFromWildcard = FALSE; - flList->bAnyDirectories = FALSE; - flList->bAnyDontExist = FALSE; - flList->num_alloc = 32; - flList->dwNumFiles = 0; - - /* empty list */ - if (!szFiles[0]) - return ERROR_ACCESS_DENIED; - - flList->feFiles = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - flList->num_alloc * sizeof(FILE_ENTRY)); - - while (*ptr) - { - if (i >= flList->num_alloc) grow_list( flList ); - - /* change relative to absolute path */ - if (PathIsRelativeW(ptr)) - { - GetCurrentDirectoryW(MAX_PATH, szCurFile); - PathCombineW(szCurFile, szCurFile, ptr); - flList->feFiles[i].bFromRelative = TRUE; - } - else - { - lstrcpyW(szCurFile, ptr); - flList->feFiles[i].bFromRelative = FALSE; - } - - /* parse wildcard files if they are in the filename */ - if (StrPBrkW(szCurFile, wWildcardChars)) - { - parse_wildcard_files(flList, szCurFile, &i); - flList->bAnyFromWildcard = TRUE; - i--; - } - else - { - FILE_ENTRY *file = &flList->feFiles[i]; - add_file_to_entry(file, szCurFile); - file->attributes = GetFileAttributesW( file->szFullPath ); - file->bExists = (file->attributes != INVALID_FILE_ATTRIBUTES); - if (!file->bExists) flList->bAnyDontExist = TRUE; - if (IsAttribDir(file->attributes)) flList->bAnyDirectories = TRUE; - } - - /* advance to the next string */ - ptr += lstrlenW(ptr) + 1; - i++; - } - flList->dwNumFiles = i; - - return S_OK; -} - -/* free the FILE_LIST */ -static void destroy_file_list(FILE_LIST *flList) -{ - DWORD i; - - if (!flList || !flList->feFiles) - return; - - for (i = 0; i < flList->dwNumFiles; i++) - { - HeapFree(GetProcessHeap(), 0, flList->feFiles[i].szDirectory); - HeapFree(GetProcessHeap(), 0, flList->feFiles[i].szFilename); - HeapFree(GetProcessHeap(), 0, flList->feFiles[i].szFullPath); - } - - HeapFree(GetProcessHeap(), 0, flList->feFiles); -} - -static void copy_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWSTR szDestPath) -{ - WCHAR szFrom[MAX_PATH], szTo[MAX_PATH]; - SHFILEOPSTRUCTW fileOp; - - static const WCHAR wildCardFiles[] = {'*','.','*',0}; - - if (IsDotDir(feFrom->szFilename)) - return; - - if (PathFileExistsW(szDestPath)) - PathCombineW(szTo, szDestPath, feFrom->szFilename); - else - lstrcpyW(szTo, szDestPath); - - if (!(op->req->fFlags & FOF_NOCONFIRMATION) && PathFileExistsW(szTo)) { - if (!SHELL_ConfirmDialogW(op->req->hwnd, ASK_OVERWRITE_FOLDER, feFrom->szFilename, op)) - { - /* Vista returns an ERROR_CANCELLED even if user pressed "No" */ - if (!op->bManyItems) - op->bCancelled = TRUE; - return; - } - } - - szTo[lstrlenW(szTo) + 1] = '\0'; - SHNotifyCreateDirectoryW(szTo, NULL); - - PathCombineW(szFrom, feFrom->szFullPath, wildCardFiles); - szFrom[lstrlenW(szFrom) + 1] = '\0'; - - fileOp = *op->req; - fileOp.pFrom = szFrom; - fileOp.pTo = szTo; - fileOp.fFlags &= ~FOF_MULTIDESTFILES; /* we know we're copying to one dir */ - - /* Don't ask the user about overwriting files when he accepted to overwrite the - folder. FIXME: this is not exactly what Windows does - e.g. there would be - an additional confirmation for a nested folder */ - fileOp.fFlags |= FOF_NOCONFIRMATION; - - SHFileOperationW(&fileOp); -} - -static BOOL copy_file_to_file(FILE_OPERATION *op, const WCHAR *szFrom, const WCHAR *szTo) -{ - if (!(op->req->fFlags & FOF_NOCONFIRMATION) && PathFileExistsW(szTo)) - { - if (!SHELL_ConfirmDialogW(op->req->hwnd, ASK_OVERWRITE_FILE, PathFindFileNameW(szTo), op)) - return 0; - } - - return SHNotifyCopyFileW(szFrom, szTo, FALSE) == 0; -} - -/* copy a file or directory to another directory */ -static void copy_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, const FILE_ENTRY *feTo) -{ - if (!PathFileExistsW(feTo->szFullPath)) - SHNotifyCreateDirectoryW(feTo->szFullPath, NULL); - - if (IsAttribFile(feFrom->attributes)) - { - WCHAR szDestPath[MAX_PATH]; - - PathCombineW(szDestPath, feTo->szFullPath, feFrom->szFilename); - copy_file_to_file(op, feFrom->szFullPath, szDestPath); - } - else if (!(op->req->fFlags & FOF_FILESONLY && feFrom->bFromWildcard)) - copy_dir_to_dir(op, feFrom, feTo->szFullPath); -} - -static void create_dest_dirs(LPCWSTR szDestDir) -{ - WCHAR dir[MAX_PATH]; - LPCWSTR ptr = StrChrW(szDestDir, '\\'); - - /* make sure all directories up to last one are created */ - while (ptr && (ptr = StrChrW(ptr + 1, '\\'))) - { - lstrcpynW(dir, szDestDir, ptr - szDestDir + 1); - - if (!PathFileExistsW(dir)) - SHNotifyCreateDirectoryW(dir, NULL); - } - - /* create last directory */ - if (!PathFileExistsW(szDestDir)) - SHNotifyCreateDirectoryW(szDestDir, NULL); -} - -/* the FO_COPY operation */ -static HRESULT copy_files(FILE_OPERATION *op, const FILE_LIST *flFrom, FILE_LIST *flTo) -{ - DWORD i; - const FILE_ENTRY *entryToCopy; - const FILE_ENTRY *fileDest = &flTo->feFiles[0]; - - if (flFrom->bAnyDontExist) - return ERROR_SHELL_INTERNAL_FILE_NOT_FOUND; - - if (flTo->dwNumFiles == 0) - { - /* If the destination is empty, SHFileOperation should use the current directory */ - WCHAR curdir[MAX_PATH+1]; - - GetCurrentDirectoryW(MAX_PATH, curdir); - curdir[lstrlenW(curdir)+1] = 0; - - destroy_file_list(flTo); - ZeroMemory(flTo, sizeof(FILE_LIST)); - parse_file_list(flTo, curdir); - fileDest = &flTo->feFiles[0]; - } - - if (op->req->fFlags & FOF_MULTIDESTFILES) - { - if (flFrom->bAnyFromWildcard) - return ERROR_CANCELLED; - - if (flFrom->dwNumFiles != flTo->dwNumFiles) - { - if (flFrom->dwNumFiles != 1 && !IsAttribDir(fileDest->attributes)) - return ERROR_CANCELLED; - - /* Free all but the first entry. */ - for (i = 1; i < flTo->dwNumFiles; i++) - { - HeapFree(GetProcessHeap(), 0, flTo->feFiles[i].szDirectory); - HeapFree(GetProcessHeap(), 0, flTo->feFiles[i].szFilename); - HeapFree(GetProcessHeap(), 0, flTo->feFiles[i].szFullPath); - } - - flTo->dwNumFiles = 1; - } - else if (IsAttribDir(fileDest->attributes)) - { - for (i = 1; i < flTo->dwNumFiles; i++) - if (!IsAttribDir(flTo->feFiles[i].attributes) || - !IsAttribDir(flFrom->feFiles[i].attributes)) - { - return ERROR_CANCELLED; - } - } - } - else if (flFrom->dwNumFiles != 1) - { - if (flTo->dwNumFiles != 1 && !IsAttribDir(fileDest->attributes)) - return ERROR_CANCELLED; - - if (PathFileExistsW(fileDest->szFullPath) && - IsAttribFile(fileDest->attributes)) - { - return ERROR_CANCELLED; - } - - if (flTo->dwNumFiles == 1 && fileDest->bFromRelative && - !PathFileExistsW(fileDest->szFullPath)) - { - return ERROR_CANCELLED; - } - } - - for (i = 0; i < flFrom->dwNumFiles; i++) - { - entryToCopy = &flFrom->feFiles[i]; - - if ((op->req->fFlags & FOF_MULTIDESTFILES) && - flTo->dwNumFiles > 1) - { - fileDest = &flTo->feFiles[i]; - } - - if (IsAttribDir(entryToCopy->attributes) && - !lstrcmpiW(entryToCopy->szFullPath, fileDest->szDirectory)) - { - return ERROR_SUCCESS; - } - - create_dest_dirs(fileDest->szDirectory); - - if (!lstrcmpiW(entryToCopy->szFullPath, fileDest->szFullPath)) - { - if (IsAttribFile(entryToCopy->attributes)) - return ERROR_NO_MORE_SEARCH_HANDLES; - else - return ERROR_SUCCESS; - } - - if ((flFrom->dwNumFiles > 1 && flTo->dwNumFiles == 1) || - IsAttribDir(fileDest->attributes)) - { - copy_to_dir(op, entryToCopy, fileDest); - } - else if (IsAttribDir(entryToCopy->attributes)) - { - copy_dir_to_dir(op, entryToCopy, fileDest->szFullPath); - } - else - { - if (!copy_file_to_file(op, entryToCopy->szFullPath, fileDest->szFullPath)) - { - op->req->fAnyOperationsAborted = TRUE; - return ERROR_CANCELLED; - } - } - - /* Vista return code. XP would return e.g. ERROR_FILE_NOT_FOUND, ERROR_ALREADY_EXISTS */ - if (op->bCancelled) - return ERROR_CANCELLED; - } - - /* Vista return code. On XP if the used pressed "No" for the last item, - * ERROR_ARENA_TRASHED would be returned */ - return ERROR_SUCCESS; -} - -static BOOL confirm_delete_list(HWND hWnd, DWORD fFlags, BOOL fTrash, const FILE_LIST *flFrom) -{ - if (flFrom->dwNumFiles > 1) - { - WCHAR tmp[8]; - const WCHAR format[] = {'%','d',0}; - - wnsprintfW(tmp, sizeof(tmp)/sizeof(tmp[0]), format, flFrom->dwNumFiles); - return SHELL_ConfirmDialogW(hWnd, (fTrash?ASK_TRASH_MULTIPLE_ITEM:ASK_DELETE_MULTIPLE_ITEM), tmp, NULL); - } - else - { - const FILE_ENTRY *fileEntry = &flFrom->feFiles[0]; - - if (IsAttribFile(fileEntry->attributes)) - return SHELL_ConfirmDialogW(hWnd, (fTrash?ASK_TRASH_FILE:ASK_DELETE_FILE), fileEntry->szFullPath, NULL); - else if (!(fFlags & FOF_FILESONLY && fileEntry->bFromWildcard)) - return SHELL_ConfirmDialogW(hWnd, (fTrash?ASK_TRASH_FOLDER:ASK_DELETE_FOLDER), fileEntry->szFullPath, NULL); - } - return TRUE; -} - -/* the FO_DELETE operation */ -static HRESULT delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) -{ - const FILE_ENTRY *fileEntry; - DWORD i; - BOOL bPathExists; - BOOL bTrash; - - if (!flFrom->dwNumFiles) - return ERROR_SUCCESS; - - /* Windows also checks only the first item */ - bTrash = (lpFileOp->fFlags & FOF_ALLOWUNDO) - && TRASH_CanTrashFile(flFrom->feFiles[0].szFullPath); - - if (!(lpFileOp->fFlags & FOF_NOCONFIRMATION) || (!bTrash && lpFileOp->fFlags & FOF_WANTNUKEWARNING)) - if (!confirm_delete_list(lpFileOp->hwnd, lpFileOp->fFlags, bTrash, flFrom)) - { - lpFileOp->fAnyOperationsAborted = TRUE; - return 0; - } - - for (i = 0; i < flFrom->dwNumFiles; i++) - { - bPathExists = TRUE; - fileEntry = &flFrom->feFiles[i]; - - if (!IsAttribFile(fileEntry->attributes) && - (lpFileOp->fFlags & FOF_FILESONLY && fileEntry->bFromWildcard)) - continue; - - if (bTrash) - { - BOOL bDelete; - if (TRASH_TrashFile(fileEntry->szFullPath)) - continue; - - /* Note: Windows silently deletes the file in such a situation, we show a dialog */ - if (!(lpFileOp->fFlags & FOF_NOCONFIRMATION) || (lpFileOp->fFlags & FOF_WANTNUKEWARNING)) - bDelete = SHELL_ConfirmDialogW(lpFileOp->hwnd, ASK_CANT_TRASH_ITEM, fileEntry->szFullPath, NULL); - else - bDelete = TRUE; - - if (!bDelete) - { - lpFileOp->fAnyOperationsAborted = TRUE; - break; - } - } - - /* delete the file or directory */ - if (IsAttribFile(fileEntry->attributes)) - bPathExists = DeleteFileW(fileEntry->szFullPath); - else - bPathExists = SHELL_DeleteDirectoryW(lpFileOp->hwnd, fileEntry->szFullPath, FALSE); - - if (!bPathExists) - return ERROR_PATH_NOT_FOUND; - } - - return ERROR_SUCCESS; -} - -static void move_dir_to_dir(LPSHFILEOPSTRUCTW lpFileOp, const FILE_ENTRY *feFrom, LPCWSTR szDestPath) -{ - WCHAR szFrom[MAX_PATH], szTo[MAX_PATH]; - SHFILEOPSTRUCTW fileOp; - - static const WCHAR wildCardFiles[] = {'*','.','*',0}; - - if (IsDotDir(feFrom->szFilename)) - return; - - SHNotifyCreateDirectoryW(szDestPath, NULL); - - PathCombineW(szFrom, feFrom->szFullPath, wildCardFiles); - szFrom[lstrlenW(szFrom) + 1] = '\0'; - - lstrcpyW(szTo, szDestPath); - szTo[lstrlenW(szDestPath) + 1] = '\0'; - - fileOp = *lpFileOp; - fileOp.pFrom = szFrom; - fileOp.pTo = szTo; - - SHFileOperationW(&fileOp); -} - -/* moves a file or directory to another directory */ -static void move_to_dir(LPSHFILEOPSTRUCTW lpFileOp, const FILE_ENTRY *feFrom, const FILE_ENTRY *feTo) -{ - WCHAR szDestPath[MAX_PATH]; - - PathCombineW(szDestPath, feTo->szFullPath, feFrom->szFilename); - - if (IsAttribFile(feFrom->attributes)) - SHNotifyMoveFileW(feFrom->szFullPath, szDestPath); - else if (!(lpFileOp->fFlags & FOF_FILESONLY && feFrom->bFromWildcard)) - move_dir_to_dir(lpFileOp, feFrom, szDestPath); -} - -/* the FO_MOVE operation */ -static HRESULT move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const FILE_LIST *flTo) -{ - DWORD i; - const FILE_ENTRY *entryToMove; - const FILE_ENTRY *fileDest; - - if (!flFrom->dwNumFiles || !flTo->dwNumFiles) - return ERROR_CANCELLED; - - if (!(lpFileOp->fFlags & FOF_MULTIDESTFILES) && - flTo->dwNumFiles > 1 && flFrom->dwNumFiles > 1) - { - return ERROR_CANCELLED; - } - - if (!(lpFileOp->fFlags & FOF_MULTIDESTFILES) && - !flFrom->bAnyDirectories && - flFrom->dwNumFiles > flTo->dwNumFiles) - { - return ERROR_CANCELLED; - } - - if (!PathFileExistsW(flTo->feFiles[0].szDirectory)) - return ERROR_CANCELLED; - - if ((lpFileOp->fFlags & FOF_MULTIDESTFILES) && - flFrom->dwNumFiles != flTo->dwNumFiles) - { - return ERROR_CANCELLED; - } - - fileDest = &flTo->feFiles[0]; - for (i = 0; i < flFrom->dwNumFiles; i++) - { - entryToMove = &flFrom->feFiles[i]; - - if (lpFileOp->fFlags & FOF_MULTIDESTFILES) - fileDest = &flTo->feFiles[i]; - - if (!PathFileExistsW(fileDest->szDirectory)) - return ERROR_CANCELLED; - - if (fileDest->bExists && IsAttribDir(fileDest->attributes)) - move_to_dir(lpFileOp, entryToMove, fileDest); - else - SHNotifyMoveFileW(entryToMove->szFullPath, fileDest->szFullPath); - } - - return ERROR_SUCCESS; -} - -/* the FO_RENAME files */ -static HRESULT rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const FILE_LIST *flTo) -{ - const FILE_ENTRY *feFrom; - const FILE_ENTRY *feTo; - - if (flFrom->dwNumFiles != 1) - return ERROR_GEN_FAILURE; - - if (flTo->dwNumFiles != 1) - return ERROR_CANCELLED; - - feFrom = &flFrom->feFiles[0]; - feTo= &flTo->feFiles[0]; - - /* fail if destination doesn't exist */ - if (!feFrom->bExists) - return ERROR_SHELL_INTERNAL_FILE_NOT_FOUND; - - /* fail if destination already exists */ - if (feTo->bExists) - return ERROR_ALREADY_EXISTS; - - return SHNotifyMoveFileW(feFrom->szFullPath, feTo->szFullPath); -} - -/* alert the user if an unsupported flag is used */ -static void check_flags(FILEOP_FLAGS fFlags) -{ - WORD wUnsupportedFlags = FOF_NO_CONNECTED_ELEMENTS | - FOF_NOCOPYSECURITYATTRIBS | FOF_NORECURSEREPARSE | - FOF_RENAMEONCOLLISION | FOF_WANTMAPPINGHANDLE; - - if (fFlags & wUnsupportedFlags) - FIXME("Unsupported flags: %04x\n", fFlags); -} - -/************************************************************************* - * SHFileOperationW [SHELL32.@] - * - * See SHFileOperationA - */ -int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) -{ - FILE_OPERATION op; - FILE_LIST flFrom, flTo; - int ret = 0; - - if (!lpFileOp) - return ERROR_INVALID_PARAMETER; - - check_flags(lpFileOp->fFlags); - - ZeroMemory(&flFrom, sizeof(FILE_LIST)); - ZeroMemory(&flTo, sizeof(FILE_LIST)); - - if ((ret = parse_file_list(&flFrom, lpFileOp->pFrom))) - return ret; - - if (lpFileOp->wFunc != FO_DELETE) - parse_file_list(&flTo, lpFileOp->pTo); - - ZeroMemory(&op, sizeof(op)); - op.req = lpFileOp; - op.bManyItems = (flFrom.dwNumFiles > 1); - - switch (lpFileOp->wFunc) - { - case FO_COPY: - ret = copy_files(&op, &flFrom, &flTo); - break; - case FO_DELETE: - ret = delete_files(lpFileOp, &flFrom); - break; - case FO_MOVE: - ret = move_files(lpFileOp, &flFrom, &flTo); - break; - case FO_RENAME: - ret = rename_files(lpFileOp, &flFrom, &flTo); - break; - default: - ret = ERROR_INVALID_PARAMETER; - break; - } - - destroy_file_list(&flFrom); - - if (lpFileOp->wFunc != FO_DELETE) - destroy_file_list(&flTo); - - if (ret == ERROR_CANCELLED) - lpFileOp->fAnyOperationsAborted = TRUE; - - return ret; -} - -#define SHDSA_GetItemCount(hdsa) (*(int*)(hdsa)) - -/************************************************************************* - * SHFreeNameMappings [shell32.246] - * - * Free the mapping handle returned by SHFileOperation if FOF_WANTSMAPPINGHANDLE - * was specified. - * - * PARAMS - * hNameMapping [I] handle to the name mappings used during renaming of files - * - * RETURNS - * Nothing - */ -void WINAPI SHFreeNameMappings(HANDLE hNameMapping) -{ - if (hNameMapping) - { - int i = SHDSA_GetItemCount((HDSA)hNameMapping) - 1; - - for (; i>= 0; i--) - { - LPSHNAMEMAPPINGW lp = DSA_GetItemPtr(hNameMapping, i); - - SHFree(lp->pszOldPath); - SHFree(lp->pszNewPath); - } - DSA_Destroy(hNameMapping); - } -} - -/************************************************************************* - * SheGetDirA [SHELL32.@] - * - * drive = 0: returns the current directory path - * drive > 0: returns the current directory path of the specified drive - * drive=1 -> A: drive=2 -> B: ... - * returns 0 if successful -*/ -DWORD WINAPI SheGetDirA(DWORD drive, LPSTR buffer) -{ - WCHAR org_path[MAX_PATH]; - DWORD ret; - char drv_path[3]; - - /* change current directory to the specified drive */ - if (drive) { - strcpy(drv_path, "A:"); - drv_path[0] += (char)drive-1; - - GetCurrentDirectoryW(MAX_PATH, org_path); - - SetCurrentDirectoryA(drv_path); - } - - /* query current directory path of the specified drive */ - ret = GetCurrentDirectoryA(MAX_PATH, buffer); - - /* back to the original drive */ - if (drive) - SetCurrentDirectoryW(org_path); - - if (!ret) - return GetLastError(); - - return 0; -} - -/************************************************************************* - * SheGetDirW [SHELL32.@] - * - * drive = 0: returns the current directory path - * drive > 0: returns the current directory path of the specified drive - * drive=1 -> A: drive=2 -> B: ... - * returns 0 if successful - */ -DWORD WINAPI SheGetDirW(DWORD drive, LPWSTR buffer) -{ - WCHAR org_path[MAX_PATH]; - DWORD ret; - char drv_path[3]; - - /* change current directory to the specified drive */ - if (drive) { - strcpy(drv_path, "A:"); - drv_path[0] += (char)drive-1; - - GetCurrentDirectoryW(MAX_PATH, org_path); - - SetCurrentDirectoryA(drv_path); - } - - /* query current directory path of the specified drive */ - ret = GetCurrentDirectoryW(MAX_PATH, buffer); - - /* back to the original drive */ - if (drive) - SetCurrentDirectoryW(org_path); - - if (!ret) - return GetLastError(); - - return 0; -} - -/************************************************************************* - * SheChangeDirA [SHELL32.@] - * - * changes the current directory to the specified path - * and returns 0 if successful - */ -DWORD WINAPI SheChangeDirA(LPSTR path) -{ - if (SetCurrentDirectoryA(path)) - return 0; - else - return GetLastError(); -} - -/************************************************************************* - * SheChangeDirW [SHELL32.@] - * - * changes the current directory to the specified path - * and returns 0 if successful - */ -DWORD WINAPI SheChangeDirW(LPWSTR path) -{ - if (SetCurrentDirectoryW(path)) - return 0; - else - return GetLastError(); -} - -/************************************************************************* - * IsNetDrive [SHELL32.66] - */ -BOOL WINAPI IsNetDrive(DWORD drive) -{ - char root[4]; - strcpy(root, "A:\\"); - root[0] += (char)drive; - return (GetDriveTypeA(root) == DRIVE_REMOTE); -} - - -/************************************************************************* - * RealDriveType [SHELL32.524] - */ -INT WINAPI RealDriveType(INT drive, BOOL bQueryNet) -{ - char root[] = "A:\\"; - root[0] += (char)drive; - return GetDriveTypeA(root); -} - -/*********************************************************************** - * SHPathPrepareForWriteW (SHELL32.@) - */ -HRESULT WINAPI SHPathPrepareForWriteW(HWND hwnd, IUnknown *modless, LPCWSTR path, DWORD flags) -{ - HRESULT res; - DWORD err; - LPCWSTR realpath; - int len; - WCHAR* last_slash; - WCHAR* temppath=NULL; - - TRACE("%p %p %s 0x%80x\n", hwnd, modless, debugstr_w(path), flags); - - if (flags & ~(SHPPFW_DIRCREATE|SHPPFW_ASKDIRCREATE|SHPPFW_IGNOREFILENAME)) - FIXME("unimplemented flags 0x%08x\n", flags); - - /* cut off filename if necessary */ - if (flags & SHPPFW_IGNOREFILENAME) - { - last_slash = StrRChrW(path, NULL, '\\'); - if (last_slash == NULL) - len = 1; - else - len = last_slash - path + 1; - temppath = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); - if (!temppath) - return E_OUTOFMEMORY; - StrCpyNW(temppath, path, len); - realpath = temppath; - } - else - { - realpath = path; - } - - /* try to create the directory if asked to */ - if (flags & (SHPPFW_DIRCREATE|SHPPFW_ASKDIRCREATE)) - { - if (flags & SHPPFW_ASKDIRCREATE) - FIXME("treating SHPPFW_ASKDIRCREATE as SHPPFW_DIRCREATE\n"); - - SHCreateDirectoryExW(0, realpath, NULL); - } - - /* check if we can access the directory */ - res = GetFileAttributesW(realpath); - - HeapFree(GetProcessHeap(), 0, temppath); - - if (res == INVALID_FILE_ATTRIBUTES) - { - err = GetLastError(); - if (err == ERROR_FILE_NOT_FOUND) - return HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND); - return HRESULT_FROM_WIN32(err); - } - else if (res & FILE_ATTRIBUTE_DIRECTORY) - return S_OK; - else - return HRESULT_FROM_WIN32(ERROR_DIRECTORY); -} - -/*********************************************************************** - * SHPathPrepareForWriteA (SHELL32.@) - */ -HRESULT WINAPI SHPathPrepareForWriteA(HWND hwnd, IUnknown *modless, LPCSTR path, DWORD flags) -{ - WCHAR wpath[MAX_PATH]; - MultiByteToWideChar( CP_ACP, 0, path, -1, wpath, MAX_PATH); - return SHPathPrepareForWriteW(hwnd, modless, wpath, flags); -} diff --git a/reactos/dll/win32/shell32/shlfolder.c b/reactos/dll/win32/shell32/shlfolder.c deleted file mode 100644 index f9d5c1eea5e..00000000000 --- a/reactos/dll/win32/shell32/shlfolder.c +++ /dev/null @@ -1,564 +0,0 @@ -/* - * Shell Folder stuff - * - * Copyright 1997 Marcus Meissner - * Copyright 1998, 1999, 2002 Juergen Schmied - * - * IShellFolder2 and related interfaces - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL (shell); - -static const WCHAR wszDotShellClassInfo[] = { - '.','S','h','e','l','l','C','l','a','s','s','I','n','f','o',0}; - -/*************************************************************************** - * SHELL32_GetCustomFolderAttribute (internal function) - * - * Gets a value from the folder's desktop.ini file, if one exists. - * - * PARAMETERS - * pidl [I] Folder containing the desktop.ini file. - * pwszHeading [I] Heading in .ini file. - * pwszAttribute [I] Attribute in .ini file. - * pwszValue [O] Buffer to store value into. - * cchValue [I] Size in characters including NULL of buffer pointed to - * by pwszValue. - * - * RETURNS - * TRUE if returned non-NULL value. - * FALSE otherwise. - */ -static BOOL __inline SHELL32_GetCustomFolderAttributeFromPath( - LPWSTR pwszFolderPath, LPCWSTR pwszHeading, LPCWSTR pwszAttribute, - LPWSTR pwszValue, DWORD cchValue) -{ - static const WCHAR wszDesktopIni[] = - {'d','e','s','k','t','o','p','.','i','n','i',0}; - static const WCHAR wszDefault[] = {0}; - - PathAddBackslashW(pwszFolderPath); - PathAppendW(pwszFolderPath, wszDesktopIni); - return GetPrivateProfileStringW(pwszHeading, pwszAttribute, wszDefault, - pwszValue, cchValue, pwszFolderPath); -} - -BOOL SHELL32_GetCustomFolderAttribute( - LPCITEMIDLIST pidl, LPCWSTR pwszHeading, LPCWSTR pwszAttribute, - LPWSTR pwszValue, DWORD cchValue) -{ - DWORD dwAttrib = FILE_ATTRIBUTE_SYSTEM; - WCHAR wszFolderPath[MAX_PATH]; - - /* Hack around not having system attribute on non-Windows file systems */ - if (0) - dwAttrib = _ILGetFileAttributes(pidl, NULL, 0); - - if (dwAttrib & FILE_ATTRIBUTE_SYSTEM) - { - if (!SHGetPathFromIDListW(pidl, wszFolderPath)) - return FALSE; - - return SHELL32_GetCustomFolderAttributeFromPath(wszFolderPath, pwszHeading, - pwszAttribute, pwszValue, cchValue); - } - return FALSE; -} - -/*************************************************************************** - * GetNextElement (internal function) - * - * Gets a part of a string till the first backslash. - * - * PARAMETERS - * pszNext [IN] string to get the element from - * pszOut [IN] pointer to buffer which receives string - * dwOut [IN] length of pszOut - * - * RETURNS - * LPSTR pointer to first, not yet parsed char - */ - -LPCWSTR GetNextElementW (LPCWSTR pszNext, LPWSTR pszOut, DWORD dwOut) -{ - LPCWSTR pszTail = pszNext; - DWORD dwCopy; - - TRACE ("(%s %p 0x%08x)\n", debugstr_w (pszNext), pszOut, dwOut); - - *pszOut = 0x0000; - - if (!pszNext || !*pszNext) - return NULL; - - while (*pszTail && (*pszTail != (WCHAR) '\\')) - pszTail++; - - dwCopy = pszTail - pszNext + 1; - lstrcpynW (pszOut, pszNext, (dwOut < dwCopy) ? dwOut : dwCopy); - - if (*pszTail) - pszTail++; - else - pszTail = NULL; - - TRACE ("--(%s %s 0x%08x %p)\n", debugstr_w (pszNext), debugstr_w (pszOut), dwOut, pszTail); - return pszTail; -} - -HRESULT SHELL32_ParseNextElement (IShellFolder2 * psf, HWND hwndOwner, LPBC pbc, - LPITEMIDLIST * pidlInOut, LPOLESTR szNext, DWORD * pEaten, DWORD * pdwAttributes) -{ - HRESULT hr = E_INVALIDARG; - LPITEMIDLIST pidlOut = NULL, - pidlTemp = NULL; - IShellFolder *psfChild; - - TRACE ("(%p, %p, %p, %s)\n", psf, pbc, pidlInOut ? *pidlInOut : NULL, debugstr_w (szNext)); - - /* get the shellfolder for the child pidl and let it analyse further */ - hr = IShellFolder_BindToObject (psf, *pidlInOut, pbc, &IID_IShellFolder, (LPVOID *) & psfChild); - - if (SUCCEEDED(hr)) { - hr = IShellFolder_ParseDisplayName (psfChild, hwndOwner, pbc, szNext, pEaten, &pidlOut, pdwAttributes); - IShellFolder_Release (psfChild); - - if (SUCCEEDED(hr)) { - pidlTemp = ILCombine (*pidlInOut, pidlOut); - - if (!pidlTemp) - hr = E_OUTOFMEMORY; - } - - if (pidlOut) - ILFree (pidlOut); - } - - ILFree (*pidlInOut); - *pidlInOut = pidlTemp; - - TRACE ("-- pidl=%p ret=0x%08x\n", pidlInOut ? *pidlInOut : NULL, hr); - return hr; -} - -/*********************************************************************** - * SHELL32_CoCreateInitSF - * - * Creates a shell folder and initializes it with a pidl and a root folder - * via IPersistFolder3 or IPersistFolder. - * - * NOTES - * pathRoot can be NULL for Folders being a drive. - * In this case the absolute path is built from pidlChild (eg. C:) - */ -static HRESULT SHELL32_CoCreateInitSF (LPCITEMIDLIST pidlRoot, LPCWSTR pathRoot, - LPCITEMIDLIST pidlChild, REFCLSID clsid, LPVOID * ppvOut) -{ - HRESULT hr; - - TRACE ("%p %s %p\n", pidlRoot, debugstr_w(pathRoot), pidlChild); - - hr = SHCoCreateInstance(NULL, clsid, NULL, &IID_IShellFolder, ppvOut); - if (SUCCEEDED (hr)) - { - LPITEMIDLIST pidlAbsolute = ILCombine (pidlRoot, pidlChild); - IPersistFolder *pPF; - IPersistFolder3 *ppf; - - if (_ILIsFolder(pidlChild) && - SUCCEEDED (IUnknown_QueryInterface ((IUnknown *) * ppvOut, &IID_IPersistFolder3, (LPVOID *) & ppf))) - { - PERSIST_FOLDER_TARGET_INFO ppfti; - - ZeroMemory (&ppfti, sizeof (ppfti)); - - /* fill the PERSIST_FOLDER_TARGET_INFO */ - ppfti.dwAttributes = -1; - ppfti.csidl = -1; - - /* build path */ - if (pathRoot) { - lstrcpynW (ppfti.szTargetParsingName, pathRoot, MAX_PATH - 1); - PathAddBackslashW(ppfti.szTargetParsingName); /* FIXME: why have drives a backslash here ? */ - } - - if (pidlChild) { - int len = wcslen(ppfti.szTargetParsingName); - - if (!_ILSimpleGetTextW(pidlChild, ppfti.szTargetParsingName + len, MAX_PATH - len)) - hr = E_INVALIDARG; - } - - IPersistFolder3_InitializeEx (ppf, NULL, pidlAbsolute, &ppfti); - IPersistFolder3_Release (ppf); - } - else if (SUCCEEDED ((hr = IUnknown_QueryInterface ((IUnknown *) * ppvOut, &IID_IPersistFolder, (LPVOID *) & pPF)))) { - IPersistFolder_Initialize (pPF, pidlAbsolute); - IPersistFolder_Release (pPF); - } - ILFree (pidlAbsolute); - } - TRACE ("-- (%p) ret=0x%08x\n", *ppvOut, hr); - return hr; -} - -/*********************************************************************** - * SHELL32_BindToChild [Internal] - * - * Common code for IShellFolder_BindToObject. - * - * PARAMS - * pidlRoot [I] The parent shell folder's absolute pidl. - * pathRoot [I] Absolute dos path of the parent shell folder. - * pidlComplete [I] PIDL of the child. Relative to pidlRoot. - * riid [I] GUID of the interface, which ppvOut shall be bound to. - * ppvOut [O] A reference to the child's interface (riid). - * - * NOTES - * pidlComplete has to contain at least one non empty SHITEMID. - * This function makes special assumptions on the shell namespace, which - * means you probably can't use it for your IShellFolder implementation. - */ -HRESULT SHELL32_BindToChild (LPCITEMIDLIST pidlRoot, - LPCWSTR pathRoot, LPCITEMIDLIST pidlComplete, REFIID riid, LPVOID * ppvOut) -{ - GUID const *clsid; - IShellFolder *pSF; - HRESULT hr; - LPITEMIDLIST pidlChild; - - if (!pidlRoot || !ppvOut || !pidlComplete || !pidlComplete->mkid.cb) - return E_INVALIDARG; - - *ppvOut = NULL; - - pidlChild = ILCloneFirst (pidlComplete); - - if ((clsid = _ILGetGUIDPointer (pidlChild))) { - /* virtual folder */ - hr = SHELL32_CoCreateInitSF (pidlRoot, pathRoot, pidlChild, clsid, (LPVOID *)&pSF); - } else { - /* file system folder */ - CLSID clsidFolder = CLSID_ShellFSFolder; - static const WCHAR wszCLSID[] = {'C','L','S','I','D',0}; - WCHAR wszCLSIDValue[CHARS_IN_GUID], wszFolderPath[MAX_PATH], *pwszPathTail = wszFolderPath; - - /* see if folder CLSID should be overridden by desktop.ini file */ - if (pathRoot) { - lstrcpynW(wszFolderPath, pathRoot, MAX_PATH); - pwszPathTail = PathAddBackslashW(wszFolderPath); - } - - _ILSimpleGetTextW(pidlChild,pwszPathTail,MAX_PATH - (int)(pwszPathTail - wszFolderPath)); - - if (SHELL32_GetCustomFolderAttributeFromPath (wszFolderPath, - wszDotShellClassInfo, wszCLSID, wszCLSIDValue, CHARS_IN_GUID)) - CLSIDFromString (wszCLSIDValue, &clsidFolder); - - hr = SHELL32_CoCreateInitSF (pidlRoot, pathRoot, pidlChild, - &clsidFolder, (LPVOID *)&pSF); - } - ILFree (pidlChild); - - if (SUCCEEDED (hr)) { - if (_ILIsPidlSimple (pidlComplete)) { - /* no sub folders */ - hr = IShellFolder_QueryInterface (pSF, riid, ppvOut); - } else { - /* go deeper */ - hr = IShellFolder_BindToObject (pSF, ILGetNext (pidlComplete), NULL, riid, ppvOut); - } - IShellFolder_Release (pSF); - } - - TRACE ("-- returning (%p) %08x\n", *ppvOut, hr); - - return hr; -} - -/*********************************************************************** - * SHELL32_GetDisplayNameOfChild - * - * Retrieves the display name of a child object of a shellfolder. - * - * For a pidl eg. [subpidl1][subpidl2][subpidl3]: - * - it binds to the child shellfolder [subpidl1] - * - asks it for the displayname of [subpidl2][subpidl3] - * - * Is possible the pidl is a simple pidl. In this case it asks the - * subfolder for the displayname of an empty pidl. The subfolder - * returns the own displayname eg. "::{guid}". This is used for - * virtual folders with the registry key WantsFORPARSING set. - */ -HRESULT SHELL32_GetDisplayNameOfChild (IShellFolder2 * psf, - LPCITEMIDLIST pidl, DWORD dwFlags, LPWSTR szOut, DWORD dwOutLen) -{ - LPITEMIDLIST pidlFirst; - HRESULT hr = E_INVALIDARG; - - TRACE ("(%p)->(pidl=%p 0x%08x %p 0x%08x)\n", psf, pidl, dwFlags, szOut, dwOutLen); - pdump (pidl); - - pidlFirst = ILCloneFirst (pidl); - if (pidlFirst) { - IShellFolder2 *psfChild; - - hr = IShellFolder_BindToObject (psf, pidlFirst, NULL, &IID_IShellFolder, (LPVOID *) & psfChild); - if (SUCCEEDED (hr)) { - STRRET strTemp; - LPITEMIDLIST pidlNext = ILGetNext (pidl); - - hr = IShellFolder_GetDisplayNameOf (psfChild, pidlNext, dwFlags, &strTemp); - if (SUCCEEDED (hr)) { - if(!StrRetToStrNW (szOut, dwOutLen, &strTemp, pidlNext)) - hr = E_FAIL; - } - IShellFolder_Release (psfChild); - } - ILFree (pidlFirst); - } else - hr = E_OUTOFMEMORY; - - TRACE ("-- ret=0x%08x %s\n", hr, debugstr_w(szOut)); - - return hr; -} - -/*********************************************************************** - * SHELL32_GetItemAttributes - * - * NOTES - * Observed values: - * folder: 0xE0000177 FILESYSTEM | HASSUBFOLDER | FOLDER - * file: 0x40000177 FILESYSTEM - * drive: 0xf0000144 FILESYSTEM | HASSUBFOLDER | FOLDER | FILESYSANCESTOR - * mycomputer: 0xb0000154 HASSUBFOLDER | FOLDER | FILESYSANCESTOR - * (seems to be default for shell extensions if no registry entry exists) - * - * win2k: - * folder: 0xF0400177 FILESYSTEM | HASSUBFOLDER | FOLDER | FILESYSANCESTOR | CANMONIKER - * file: 0x40400177 FILESYSTEM | CANMONIKER - * drive 0xF0400154 FILESYSTEM | HASSUBFOLDER | FOLDER | FILESYSANCESTOR | CANMONIKER | CANRENAME (LABEL) - * - * According to the MSDN documentation this function should not set flags. It claims only to reset flags when necessary. - * However it turns out the native shell32.dll _sets_ flags in several cases - so do we. - */ -HRESULT SHELL32_GetItemAttributes (IShellFolder * psf, LPCITEMIDLIST pidl, LPDWORD pdwAttributes) -{ - DWORD dwAttributes; - BOOL has_guid; - static const DWORD dwSupportedAttr= - SFGAO_CANCOPY | /*0x00000001 */ - SFGAO_CANMOVE | /*0x00000002 */ - SFGAO_CANLINK | /*0x00000004 */ - SFGAO_CANRENAME | /*0x00000010 */ - SFGAO_CANDELETE | /*0x00000020 */ - SFGAO_HASPROPSHEET | /*0x00000040 */ - SFGAO_DROPTARGET | /*0x00000100 */ - SFGAO_LINK | /*0x00010000 */ - SFGAO_READONLY | /*0x00040000 */ - SFGAO_HIDDEN | /*0x00080000 */ - SFGAO_FILESYSANCESTOR | /*0x10000000 */ - SFGAO_FOLDER | /*0x20000000 */ - SFGAO_FILESYSTEM | /*0x40000000 */ - SFGAO_HASSUBFOLDER; /*0x80000000 */ - - TRACE ("0x%08x\n", *pdwAttributes); - - if (*pdwAttributes & ~dwSupportedAttr) - { - WARN ("attributes 0x%08x not implemented\n", (*pdwAttributes & ~dwSupportedAttr)); - *pdwAttributes &= dwSupportedAttr; - } - - has_guid = _ILGetGUIDPointer(pidl) != NULL; - - dwAttributes = *pdwAttributes; - - if (_ILIsDrive (pidl)) { - *pdwAttributes &= SFGAO_HASSUBFOLDER|SFGAO_FILESYSTEM|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR| - SFGAO_DROPTARGET|SFGAO_HASPROPSHEET|SFGAO_CANRENAME; - } else if (has_guid && HCR_GetFolderAttributes(pidl, &dwAttributes)) { - *pdwAttributes = dwAttributes; - } else if (_ILGetDataPointer (pidl)) { - dwAttributes = _ILGetFileAttributes (pidl, NULL, 0); - - if (!dwAttributes && has_guid) { - WCHAR path[MAX_PATH]; - STRRET strret; - - /* File attributes are not present in the internal PIDL structure, so get them from the file system. */ - - HRESULT hr = IShellFolder_GetDisplayNameOf(psf, pidl, SHGDN_FORPARSING, &strret); - - if (SUCCEEDED(hr)) { - hr = StrRetToBufW(&strret, pidl, path, MAX_PATH); - - /* call GetFileAttributes() only for file system paths, not for parsing names like "::{...}" */ - if (SUCCEEDED(hr) && path[0]!=':') - dwAttributes = GetFileAttributesW(path); - } - } - - /* Set common attributes */ - *pdwAttributes |= SFGAO_FILESYSTEM | SFGAO_DROPTARGET | SFGAO_HASPROPSHEET | SFGAO_CANDELETE | - SFGAO_CANRENAME | SFGAO_CANLINK | SFGAO_CANMOVE | SFGAO_CANCOPY; - - if (dwAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - *pdwAttributes |= (SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_FILESYSANCESTOR); - *pdwAttributes &= ~SFGAO_CANLINK; - } - else - *pdwAttributes &= ~(SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_FILESYSANCESTOR); - - if (dwAttributes & FILE_ATTRIBUTE_HIDDEN) - *pdwAttributes |= SFGAO_HIDDEN; - else - *pdwAttributes &= ~SFGAO_HIDDEN; - - if (dwAttributes & FILE_ATTRIBUTE_READONLY) - *pdwAttributes |= SFGAO_READONLY; - else - *pdwAttributes &= ~SFGAO_READONLY; - - if (SFGAO_LINK & *pdwAttributes) { - char ext[MAX_PATH]; - - if (!_ILGetExtension(pidl, ext, MAX_PATH) || lstrcmpiA(ext, "lnk")) - *pdwAttributes &= ~SFGAO_LINK; - } - - if (SFGAO_HASSUBFOLDER & *pdwAttributes) - { - IShellFolder *psf2; - if (SUCCEEDED(IShellFolder_BindToObject(psf, pidl, 0, (REFIID)&IID_IShellFolder, (LPVOID *)&psf2))) - { - IEnumIDList *pEnumIL = NULL; - if (SUCCEEDED(IShellFolder_EnumObjects(psf2, 0, SHCONTF_FOLDERS, &pEnumIL))) - { - if (IEnumIDList_Skip(pEnumIL, 1) != S_OK) - *pdwAttributes &= ~SFGAO_HASSUBFOLDER; - IEnumIDList_Release(pEnumIL); - } - IShellFolder_Release(psf2); - } - } - } else { - *pdwAttributes &= SFGAO_HASSUBFOLDER|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR|SFGAO_DROPTARGET|SFGAO_HASPROPSHEET|SFGAO_CANRENAME|SFGAO_CANLINK; - } - TRACE ("-- 0x%08x\n", *pdwAttributes); - return S_OK; -} - -/*********************************************************************** - * SHELL32_CompareIDs - */ -HRESULT SHELL32_CompareIDs (IShellFolder * iface, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - int type1, - type2; - char szTemp1[MAX_PATH]; - char szTemp2[MAX_PATH]; - HRESULT nReturn; - LPITEMIDLIST firstpidl, - nextpidl1, - nextpidl2; - IShellFolder *psf; - - /* test for empty pidls */ - BOOL isEmpty1 = _ILIsDesktop (pidl1); - BOOL isEmpty2 = _ILIsDesktop (pidl2); - - if (isEmpty1 && isEmpty2) - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, 0 ); - if (isEmpty1) - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, (WORD)-1 ); - if (isEmpty2) - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, 1 ); - - /* test for different types. Sort order is the PT_* constant */ - type1 = _ILGetDataPointer (pidl1)->type; - type2 = _ILGetDataPointer (pidl2)->type; - if (type1 < type2) - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, (WORD)-1 ); - else if (type1 > type2) - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, 1 ); - - /* test for name of pidl */ - _ILSimpleGetText (pidl1, szTemp1, MAX_PATH); - _ILSimpleGetText (pidl2, szTemp2, MAX_PATH); - nReturn = lstrcmpiA (szTemp1, szTemp2); - if (nReturn < 0) - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, (WORD)-1 ); - else if (nReturn > 0) - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, 1 ); - - /* test of complex pidls */ - firstpidl = ILCloneFirst (pidl1); - nextpidl1 = ILGetNext (pidl1); - nextpidl2 = ILGetNext (pidl2); - - /* optimizing: test special cases and bind not deeper */ - /* the deeper shellfolder would do the same */ - isEmpty1 = _ILIsDesktop (nextpidl1); - isEmpty2 = _ILIsDesktop (nextpidl2); - - if (isEmpty1 && isEmpty2) { - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, 0 ); - } else if (isEmpty1) { - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, (WORD)-1 ); - } else if (isEmpty2) { - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, 1 ); - /* optimizing end */ - } else if (SUCCEEDED (IShellFolder_BindToObject (iface, firstpidl, NULL, &IID_IShellFolder, (LPVOID *) & psf))) { - nReturn = IShellFolder_CompareIDs (psf, lParam, nextpidl1, nextpidl2); - IShellFolder_Release (psf); - } - ILFree (firstpidl); - return nReturn; -} - -/*********************************************************************** - * SHCreateLinks - * - * Undocumented. - */ -HRESULT WINAPI SHCreateLinks( HWND hWnd, LPCSTR lpszDir, LPDATAOBJECT lpDataObject, - UINT uFlags, LPITEMIDLIST *lppidlLinks) -{ - FIXME("%p %s %p %08x %p\n",hWnd,lpszDir,lpDataObject,uFlags,lppidlLinks); - return E_NOTIMPL; -} - -/*********************************************************************** - * SHOpenFolderAndSelectItems - * - * Unimplemented. - */ -HRESULT -WINAPI -SHOpenFolderAndSelectItems(LPITEMIDLIST pidlFolder, - UINT cidl, - PCUITEMID_CHILD_ARRAY *apidl, - DWORD dwFlags) -{ - FIXME("SHOpenFolderAndSelectItems() stub\n"); - return E_NOTIMPL; -} diff --git a/reactos/dll/win32/shell32/shlfsbind.c b/reactos/dll/win32/shell32/shlfsbind.c deleted file mode 100644 index a9bf8f0af6c..00000000000 --- a/reactos/dll/win32/shell32/shlfsbind.c +++ /dev/null @@ -1,213 +0,0 @@ -/* - * File System Bind Data object to use as parameter for the bind context to - * IShellFolder_ParseDisplayName - * - * Copyright 2003 Rolf Kalbermatter - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(pidl); - -/*********************************************************************** - * IFileSystemBindData implementation - */ -typedef struct -{ - const IFileSystemBindDataVtbl *lpVtbl; - LONG ref; - WIN32_FIND_DATAW findFile; -} IFileSystemBindDataImpl; - -static HRESULT WINAPI IFileSystemBindData_fnQueryInterface(IFileSystemBindData *, REFIID, LPVOID*); -static ULONG WINAPI IFileSystemBindData_fnAddRef(IFileSystemBindData *); -static ULONG WINAPI IFileSystemBindData_fnRelease(IFileSystemBindData *); -static HRESULT WINAPI IFileSystemBindData_fnGetFindData(IFileSystemBindData *, WIN32_FIND_DATAW *); -static HRESULT WINAPI IFileSystemBindData_fnSetFindData(IFileSystemBindData *, const WIN32_FIND_DATAW *); - -static const IFileSystemBindDataVtbl sbvt = -{ - IFileSystemBindData_fnQueryInterface, - IFileSystemBindData_fnAddRef, - IFileSystemBindData_fnRelease, - IFileSystemBindData_fnSetFindData, - IFileSystemBindData_fnGetFindData, -}; - -static const WCHAR wFileSystemBindData[] = { - 'F','i','l','e',' ','S','y','s','t','e','m',' ','B','i','n','d','D','a','t','a',0}; - -HRESULT WINAPI IFileSystemBindData_Constructor(const WIN32_FIND_DATAW *pfd, LPBC *ppV) -{ - IFileSystemBindDataImpl *sb; - HRESULT ret = E_OUTOFMEMORY; - - TRACE("%p, %p\n", pfd, ppV); - - if (!ppV) - return E_INVALIDARG; - - *ppV = NULL; - - sb = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IFileSystemBindDataImpl)); - if (!sb) - return ret; - - sb->lpVtbl = &sbvt; - sb->ref = 1; - IFileSystemBindData_fnSetFindData((IFileSystemBindData*)sb, pfd); - - ret = CreateBindCtx(0, ppV); - if (SUCCEEDED(ret)) - { - BIND_OPTS bindOpts; - - bindOpts.cbStruct = sizeof(BIND_OPTS); - bindOpts.grfFlags = 0; - bindOpts.grfMode = STGM_CREATE; - bindOpts.dwTickCountDeadline = 0; - IBindCtx_SetBindOptions(*ppV, &bindOpts); - IBindCtx_RegisterObjectParam(*ppV, (LPOLESTR)wFileSystemBindData, (LPUNKNOWN)sb); - - IFileSystemBindData_Release((IFileSystemBindData*)sb); - } - else - HeapFree(GetProcessHeap(), 0, sb); - return ret; -} - -HRESULT WINAPI FileSystemBindData_GetFindData(LPBC pbc, WIN32_FIND_DATAW *pfd) -{ - LPUNKNOWN pUnk; - IFileSystemBindData *pfsbd = NULL; - HRESULT ret; - - TRACE("%p, %p\n", pbc, pfd); - - if (!pfd) - return E_INVALIDARG; - - ret = IBindCtx_GetObjectParam(pbc, (LPOLESTR)wFileSystemBindData, &pUnk); - if (SUCCEEDED(ret)) - { - ret = IUnknown_QueryInterface(pUnk, &IID_IFileSystemBindData, (LPVOID *)&pfsbd); - if (SUCCEEDED(ret)) - { - ret = IFileSystemBindData_GetFindData(pfsbd, pfd); - IFileSystemBindData_Release(pfsbd); - } - IUnknown_Release(pUnk); - } - return ret; -} - -HRESULT WINAPI FileSystemBindData_SetFindData(LPBC pbc, const WIN32_FIND_DATAW *pfd) -{ - LPUNKNOWN pUnk; - IFileSystemBindData *pfsbd = NULL; - HRESULT ret; - - TRACE("%p, %p\n", pbc, pfd); - - ret = IBindCtx_GetObjectParam(pbc, (LPOLESTR)wFileSystemBindData, &pUnk); - if (SUCCEEDED(ret)) - { - ret = IUnknown_QueryInterface(pUnk, &IID_IFileSystemBindData, (LPVOID *)&pfsbd); - if (SUCCEEDED(ret)) - { - ret = IFileSystemBindData_SetFindData(pfsbd, pfd); - IFileSystemBindData_Release(pfsbd); - } - IUnknown_Release(pUnk); - } - return ret; -} - -static HRESULT WINAPI IFileSystemBindData_fnQueryInterface( - IFileSystemBindData *iface, REFIID riid, LPVOID *ppV) -{ - IFileSystemBindDataImpl *This = (IFileSystemBindDataImpl *)iface; - TRACE("(%p)->(\n\tIID:\t%s, %p)\n", This, debugstr_guid(riid), ppV); - - *ppV = NULL; - - if (IsEqualIID(riid, &IID_IUnknown)) - *ppV = This; - else if (IsEqualIID(riid, &IID_IFileSystemBindData)) - *ppV = (IFileSystemBindData*)This; - - if (*ppV) - { - IUnknown_AddRef((IUnknown*)(*ppV)); - TRACE("-- Interface: (%p)->(%p)\n", ppV, *ppV); - return S_OK; - } - TRACE("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI IFileSystemBindData_fnAddRef(IFileSystemBindData *iface) -{ - IFileSystemBindDataImpl *This = (IFileSystemBindDataImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(count=%i)\n", This, refCount - 1); - - return refCount; -} - -static ULONG WINAPI IFileSystemBindData_fnRelease(IFileSystemBindData *iface) -{ - IFileSystemBindDataImpl *This = (IFileSystemBindDataImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(count=%i)\n", This, refCount + 1); - - if (!refCount) - { - TRACE(" destroying ISFBindPidl(%p)\n",This); - HeapFree(GetProcessHeap(), 0, This); - } - return refCount; -} - -static HRESULT WINAPI IFileSystemBindData_fnGetFindData( - IFileSystemBindData *iface, WIN32_FIND_DATAW *pfd) -{ - IFileSystemBindDataImpl *This = (IFileSystemBindDataImpl *)iface; - TRACE("(%p), %p\n", This, pfd); - - if (!pfd) - return E_INVALIDARG; - - memcpy(pfd, &This->findFile, sizeof(WIN32_FIND_DATAW)); - return NOERROR; -} - -static HRESULT WINAPI IFileSystemBindData_fnSetFindData( - IFileSystemBindData *iface, const WIN32_FIND_DATAW *pfd) -{ - IFileSystemBindDataImpl *This = (IFileSystemBindDataImpl *)iface; - TRACE("(%p), %p\n", This, pfd); - - if (pfd) - memcpy(&This->findFile, pfd, sizeof(WIN32_FIND_DATAW)); - else - memset(&This->findFile, 0, sizeof(WIN32_FIND_DATAW)); - return NOERROR; -} diff --git a/reactos/dll/win32/shell32/shlmenu.c b/reactos/dll/win32/shell32/shlmenu.c deleted file mode 100644 index 821bf50687a..00000000000 --- a/reactos/dll/win32/shell32/shlmenu.c +++ /dev/null @@ -1,985 +0,0 @@ -/* - * see www.geocities.com/SiliconValley/4942/filemenu.html - * - * Copyright 1999, 2000 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -#ifdef FM_SEPARATOR -#undef FM_SEPARATOR -#endif -#define FM_SEPARATOR (LPCWSTR)1 - -static BOOL FileMenu_AppendItemW(HMENU hMenu, LPCWSTR lpText, UINT uID, int icon, - HMENU hMenuPopup, int nItemHeight); - -typedef struct -{ - BOOL bInitialized; - BOOL bFixedItems; - /* create */ - COLORREF crBorderColor; - int nBorderWidth; - HBITMAP hBorderBmp; - - /* insert using pidl */ - LPITEMIDLIST pidl; - UINT uID; - UINT uFlags; - UINT uEnumFlags; - LPFNFMCALLBACK lpfnCallback; -} FMINFO, *LPFMINFO; - -typedef struct -{ int cchItemText; - int iIconIndex; - HMENU hMenu; - WCHAR szItemText[1]; -} FMITEM, * LPFMITEM; - -static BOOL bAbortInit; - -#define CCH_MAXITEMTEXT 256 - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -static LPFMINFO FM_GetMenuInfo(HMENU hmenu) -{ - MENUINFO MenuInfo; - LPFMINFO menudata; - - MenuInfo.cbSize = sizeof(MENUINFO); - MenuInfo.fMask = MIM_MENUDATA; - - if (! GetMenuInfo(hmenu, &MenuInfo)) - return NULL; - - menudata = (LPFMINFO)MenuInfo.dwMenuData; - - if ((menudata == 0) || (MenuInfo.cbSize != sizeof(MENUINFO))) - { - ERR("menudata corrupt: %p %u\n", menudata, MenuInfo.cbSize); - return 0; - } - - return menudata; - -} -/************************************************************************* - * FM_SetMenuParameter [internal] - * - */ -static LPFMINFO FM_SetMenuParameter( - HMENU hmenu, - UINT uID, - LPCITEMIDLIST pidl, - UINT uFlags, - UINT uEnumFlags, - LPFNFMCALLBACK lpfnCallback) -{ - LPFMINFO menudata; - - TRACE("\n"); - - menudata = FM_GetMenuInfo(hmenu); - - SHFree(menudata->pidl); - - menudata->uID = uID; - menudata->pidl = ILClone(pidl); - menudata->uFlags = uFlags; - menudata->uEnumFlags = uEnumFlags; - menudata->lpfnCallback = lpfnCallback; - - return menudata; -} - -/************************************************************************* - * FM_InitMenuPopup [internal] - * - */ -static int FM_InitMenuPopup(HMENU hmenu, LPCITEMIDLIST pAlternatePidl) -{ IShellFolder *lpsf, *lpsf2; - ULONG ulItemAttr = SFGAO_FOLDER; - UINT uID, uEnumFlags; - LPFNFMCALLBACK lpfnCallback; - LPCITEMIDLIST pidl; - WCHAR sTemp[MAX_PATH]; - int NumberOfItems = 0, iIcon; - MENUINFO MenuInfo; - LPFMINFO menudata; - - TRACE("%p %p\n", hmenu, pAlternatePidl); - - MenuInfo.cbSize = sizeof(MENUINFO); - MenuInfo.fMask = MIM_MENUDATA; - - if (! GetMenuInfo(hmenu, &MenuInfo)) - return FALSE; - - menudata = (LPFMINFO)MenuInfo.dwMenuData; - - if ((menudata == 0) || (MenuInfo.cbSize != sizeof(MENUINFO))) - { - ERR("menudata corrupt: %p %u\n", menudata, MenuInfo.cbSize); - return 0; - } - - if (menudata->bInitialized) - return 0; - - pidl = (pAlternatePidl? pAlternatePidl: menudata->pidl); - if (!pidl) - return 0; - - uID = menudata->uID; - uEnumFlags = menudata->uEnumFlags; - lpfnCallback = menudata->lpfnCallback; - menudata->bInitialized = FALSE; - - SetMenuInfo(hmenu, &MenuInfo); - - if (SUCCEEDED (SHGetDesktopFolder(&lpsf))) - { - if (SUCCEEDED(IShellFolder_BindToObject(lpsf, pidl,0,&IID_IShellFolder,(LPVOID *)&lpsf2))) - { - IEnumIDList *lpe = NULL; - - if (SUCCEEDED (IShellFolder_EnumObjects(lpsf2, 0, uEnumFlags, &lpe ))) - { - - LPITEMIDLIST pidlTemp = NULL; - ULONG ulFetched; - - while ((!bAbortInit) && (NOERROR == IEnumIDList_Next(lpe,1,&pidlTemp,&ulFetched))) - { - if (SUCCEEDED (IShellFolder_GetAttributesOf(lpsf, 1, (LPCITEMIDLIST*)&pidlTemp, &ulItemAttr))) - { - ILGetDisplayNameExW(NULL, pidlTemp, sTemp, ILGDN_FORPARSING); - if (! (PidlToSicIndex(lpsf, pidlTemp, FALSE, 0, &iIcon))) - iIcon = FM_BLANK_ICON; - if ( SFGAO_FOLDER & ulItemAttr) - { - LPFMINFO lpFmMi; - MENUINFO MenuInfo; - HMENU hMenuPopup = CreatePopupMenu(); - - lpFmMi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(FMINFO)); - - lpFmMi->pidl = ILCombine(pidl, pidlTemp); - lpFmMi->uEnumFlags = SHCONTF_FOLDERS | SHCONTF_NONFOLDERS; - - MenuInfo.cbSize = sizeof(MENUINFO); - MenuInfo.fMask = MIM_MENUDATA; - MenuInfo.dwMenuData = (ULONG_PTR) lpFmMi; - SetMenuInfo (hMenuPopup, &MenuInfo); - - FileMenu_AppendItemW (hmenu, sTemp, uID, iIcon, hMenuPopup, FM_DEFAULT_HEIGHT); - } - else - { - LPWSTR pExt = PathFindExtensionW(sTemp); - if (pExt) - *pExt = 0; - FileMenu_AppendItemW (hmenu, sTemp, uID, iIcon, 0, FM_DEFAULT_HEIGHT); - } - } - - if (lpfnCallback) - { - TRACE("enter callback\n"); - lpfnCallback ( pidl, pidlTemp); - TRACE("leave callback\n"); - } - - NumberOfItems++; - } - IEnumIDList_Release (lpe); - } - IShellFolder_Release(lpsf2); - } - IShellFolder_Release(lpsf); - } - - if ( GetMenuItemCount (hmenu) == 0 ) - { - static const WCHAR szEmpty[] = { '(','e','m','p','t','y',')',0 }; - FileMenu_AppendItemW (hmenu, szEmpty, uID, FM_BLANK_ICON, 0, FM_DEFAULT_HEIGHT); - NumberOfItems++; - } - - menudata->bInitialized = TRUE; - SetMenuInfo(hmenu, &MenuInfo); - - return NumberOfItems; -} -/************************************************************************* - * FileMenu_Create [SHELL32.114] - * - * NOTES - * for non-root menus values are - * (ffffffff,00000000,00000000,00000000,00000000) - */ -HMENU WINAPI FileMenu_Create ( - COLORREF crBorderColor, - int nBorderWidth, - HBITMAP hBorderBmp, - int nSelHeight, - UINT uFlags) -{ - MENUINFO MenuInfo; - LPFMINFO menudata; - - HMENU hMenu = CreatePopupMenu(); - - TRACE("0x%08x 0x%08x %p 0x%08x 0x%08x hMenu=%p\n", - crBorderColor, nBorderWidth, hBorderBmp, nSelHeight, uFlags, hMenu); - - menudata = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(FMINFO)); - menudata->crBorderColor = crBorderColor; - menudata->nBorderWidth = nBorderWidth; - menudata->hBorderBmp = hBorderBmp; - - MenuInfo.cbSize = sizeof(MENUINFO); - MenuInfo.fMask = MIM_MENUDATA; - MenuInfo.dwMenuData = (ULONG_PTR) menudata; - SetMenuInfo (hMenu, &MenuInfo); - - return hMenu; -} - -/************************************************************************* - * FileMenu_Destroy [SHELL32.118] - * - * NOTES - * exported by name - */ -void WINAPI FileMenu_Destroy (HMENU hmenu) -{ - LPFMINFO menudata; - - TRACE("%p\n", hmenu); - - FileMenu_DeleteAllItems (hmenu); - - menudata = FM_GetMenuInfo(hmenu); - - SHFree( menudata->pidl); - HeapFree(GetProcessHeap(), 0, menudata); - - DestroyMenu (hmenu); -} - -/************************************************************************* - * FileMenu_AppendItem [SHELL32.115] - * - */ -static BOOL FileMenu_AppendItemW( - HMENU hMenu, - LPCWSTR lpText, - UINT uID, - int icon, - HMENU hMenuPopup, - int nItemHeight) -{ - MENUITEMINFOW mii; - LPFMITEM myItem; - LPFMINFO menudata; - MENUINFO MenuInfo; - - - TRACE("%p %s 0x%08x 0x%08x %p 0x%08x\n", - hMenu, (lpText!=FM_SEPARATOR) ? debugstr_w(lpText) : NULL, - uID, icon, hMenuPopup, nItemHeight); - - ZeroMemory (&mii, sizeof(MENUITEMINFOW)); - - mii.cbSize = sizeof(MENUITEMINFOW); - - if (lpText != FM_SEPARATOR) - { - int len = strlenW (lpText); - myItem = SHAlloc(sizeof(FMITEM) + len*sizeof(WCHAR)); - strcpyW (myItem->szItemText, lpText); - myItem->cchItemText = len; - myItem->iIconIndex = icon; - myItem->hMenu = hMenu; - mii.fMask = MIIM_DATA; - mii.dwItemData = (ULONG_PTR) myItem; - } - - if ( hMenuPopup ) - { /* sub menu */ - mii.fMask |= MIIM_TYPE | MIIM_SUBMENU; - mii.fType = MFT_OWNERDRAW; - mii.hSubMenu = hMenuPopup; - } - else if (lpText == FM_SEPARATOR ) - { mii.fMask |= MIIM_ID | MIIM_TYPE; - mii.fType = MFT_SEPARATOR; - } - else - { /* normal item */ - mii.fMask |= MIIM_ID | MIIM_TYPE | MIIM_STATE; - mii.fState = MFS_ENABLED | MFS_DEFAULT; - mii.fType = MFT_OWNERDRAW; - } - mii.wID = uID; - - InsertMenuItemW (hMenu, (UINT)-1, TRUE, &mii); - - /* set bFixedItems to true */ - MenuInfo.cbSize = sizeof(MENUINFO); - MenuInfo.fMask = MIM_MENUDATA; - - if (! GetMenuInfo(hMenu, &MenuInfo)) - return FALSE; - - menudata = (LPFMINFO)MenuInfo.dwMenuData; - if ((menudata == 0) || (MenuInfo.cbSize != sizeof(MENUINFO))) - { - ERR("menudata corrupt: %p %u\n", menudata, MenuInfo.cbSize); - return 0; - } - - menudata->bFixedItems = TRUE; - SetMenuInfo(hMenu, &MenuInfo); - - return TRUE; - -} - -/**********************************************************************/ - -BOOL WINAPI FileMenu_AppendItemAW( - HMENU hMenu, - LPCVOID lpText, - UINT uID, - int icon, - HMENU hMenuPopup, - int nItemHeight) -{ - BOOL ret; - - if (!lpText) return FALSE; - - if (SHELL_OsIsUnicode() || lpText == FM_SEPARATOR) - ret = FileMenu_AppendItemW(hMenu, lpText, uID, icon, hMenuPopup, nItemHeight); - else - { - DWORD len = MultiByteToWideChar( CP_ACP, 0, lpText, -1, NULL, 0 ); - LPWSTR lpszText = HeapAlloc ( GetProcessHeap(), 0, len*sizeof(WCHAR) ); - if (!lpszText) return FALSE; - MultiByteToWideChar( CP_ACP, 0, lpText, -1, lpszText, len ); - ret = FileMenu_AppendItemW(hMenu, lpszText, uID, icon, hMenuPopup, nItemHeight); - HeapFree( GetProcessHeap(), 0, lpszText ); - } - - return ret; -} - -/************************************************************************* - * FileMenu_InsertUsingPidl [SHELL32.110] - * - * NOTES - * uEnumFlags any SHCONTF flag - */ -int WINAPI FileMenu_InsertUsingPidl ( - HMENU hmenu, - UINT uID, - LPCITEMIDLIST pidl, - UINT uFlags, - UINT uEnumFlags, - LPFNFMCALLBACK lpfnCallback) -{ - TRACE("%p 0x%08x %p 0x%08x 0x%08x %p\n", - hmenu, uID, pidl, uFlags, uEnumFlags, lpfnCallback); - - pdump (pidl); - - bAbortInit = FALSE; - - FM_SetMenuParameter(hmenu, uID, pidl, uFlags, uEnumFlags, lpfnCallback); - - return FM_InitMenuPopup(hmenu, NULL); -} - -/************************************************************************* - * FileMenu_ReplaceUsingPidl [SHELL32.113] - * - * FIXME: the static items are deleted but won't be refreshed - */ -int WINAPI FileMenu_ReplaceUsingPidl( - HMENU hmenu, - UINT uID, - LPCITEMIDLIST pidl, - UINT uEnumFlags, - LPFNFMCALLBACK lpfnCallback) -{ - TRACE("%p 0x%08x %p 0x%08x %p\n", - hmenu, uID, pidl, uEnumFlags, lpfnCallback); - - FileMenu_DeleteAllItems (hmenu); - - FM_SetMenuParameter(hmenu, uID, pidl, 0, uEnumFlags, lpfnCallback); - - return FM_InitMenuPopup(hmenu, NULL); -} - -/************************************************************************* - * FileMenu_Invalidate [SHELL32.111] - */ -void WINAPI FileMenu_Invalidate (HMENU hMenu) -{ - FIXME("%p\n",hMenu); -} - -/************************************************************************* - * FileMenu_FindSubMenuByPidl [SHELL32.106] - */ -HMENU WINAPI FileMenu_FindSubMenuByPidl( - HMENU hMenu, - LPCITEMIDLIST pidl) -{ - FIXME("%p %p\n",hMenu, pidl); - return 0; -} - -/************************************************************************* - * FileMenu_AppendFilesForPidl [SHELL32.124] - */ -int WINAPI FileMenu_AppendFilesForPidl( - HMENU hmenu, - LPCITEMIDLIST pidl, - BOOL bAddSeparator) -{ - LPFMINFO menudata; - - menudata = FM_GetMenuInfo(hmenu); - - menudata->bInitialized = FALSE; - - FM_InitMenuPopup(hmenu, pidl); - - if (bAddSeparator) - FileMenu_AppendItemW (hmenu, FM_SEPARATOR, 0, 0, 0, FM_DEFAULT_HEIGHT); - - TRACE("%p %p 0x%08x\n",hmenu, pidl,bAddSeparator); - - return 0; -} -/************************************************************************* - * FileMenu_AddFilesForPidl [SHELL32.125] - * - * NOTES - * uEnumFlags any SHCONTF flag - */ -int WINAPI FileMenu_AddFilesForPidl ( - HMENU hmenu, - UINT uReserved, - UINT uID, - LPCITEMIDLIST pidl, - UINT uFlags, - UINT uEnumFlags, - LPFNFMCALLBACK lpfnCallback) -{ - TRACE("%p 0x%08x 0x%08x %p 0x%08x 0x%08x %p\n", - hmenu, uReserved, uID, pidl, uFlags, uEnumFlags, lpfnCallback); - - return FileMenu_InsertUsingPidl ( hmenu, uID, pidl, uFlags, uEnumFlags, lpfnCallback); - -} - - -/************************************************************************* - * FileMenu_TrackPopupMenuEx [SHELL32.116] - */ -BOOL WINAPI FileMenu_TrackPopupMenuEx ( - HMENU hMenu, - UINT uFlags, - int x, - int y, - HWND hWnd, - LPTPMPARAMS lptpm) -{ - TRACE("%p 0x%08x 0x%x 0x%x %p %p\n", - hMenu, uFlags, x, y, hWnd, lptpm); - return TrackPopupMenuEx(hMenu, uFlags, x, y, hWnd, lptpm); -} - -/************************************************************************* - * FileMenu_GetLastSelectedItemPidls [SHELL32.107] - */ -BOOL WINAPI FileMenu_GetLastSelectedItemPidls( - UINT uReserved, - LPCITEMIDLIST *ppidlFolder, - LPCITEMIDLIST *ppidlItem) -{ - FIXME("0x%08x %p %p\n",uReserved, ppidlFolder, ppidlItem); - return 0; -} - -#define FM_ICON_SIZE 16 -#define FM_Y_SPACE 4 -#define FM_SPACE1 4 -#define FM_SPACE2 2 -#define FM_LEFTBORDER 2 -#define FM_RIGHTBORDER 8 -/************************************************************************* - * FileMenu_MeasureItem [SHELL32.112] - */ -LRESULT WINAPI FileMenu_MeasureItem( - HWND hWnd, - LPMEASUREITEMSTRUCT lpmis) -{ - LPFMITEM pMyItem = (LPFMITEM)(lpmis->itemData); - HDC hdc = GetDC(hWnd); - SIZE size; - LPFMINFO menuinfo; - - TRACE("%p %p %s\n", hWnd, lpmis, debugstr_w(pMyItem->szItemText)); - - GetTextExtentPoint32W(hdc, pMyItem->szItemText, pMyItem->cchItemText, &size); - - lpmis->itemWidth = size.cx + FM_LEFTBORDER + FM_ICON_SIZE + FM_SPACE1 + FM_SPACE2 + FM_RIGHTBORDER; - lpmis->itemHeight = (size.cy > (FM_ICON_SIZE + FM_Y_SPACE)) ? size.cy : (FM_ICON_SIZE + FM_Y_SPACE); - - /* add the menubitmap */ - menuinfo = FM_GetMenuInfo(pMyItem->hMenu); - if (menuinfo->nBorderWidth) - lpmis->itemWidth += menuinfo->nBorderWidth; - - TRACE("-- 0x%04x 0x%04x\n", lpmis->itemWidth, lpmis->itemHeight); - ReleaseDC (hWnd, hdc); - return 0; -} -/************************************************************************* - * FileMenu_DrawItem [SHELL32.105] - */ -LRESULT WINAPI FileMenu_DrawItem( - HWND hWnd, - LPDRAWITEMSTRUCT lpdis) -{ - LPFMITEM pMyItem = (LPFMITEM)(lpdis->itemData); - COLORREF clrPrevText, clrPrevBkgnd; - int xi,yi,xt,yt; - HIMAGELIST hImageList; - RECT TextRect; - LPFMINFO menuinfo; - - TRACE("%p %p %s\n", hWnd, lpdis, debugstr_w(pMyItem->szItemText)); - - if (lpdis->itemState & ODS_SELECTED) - { - clrPrevText = SetTextColor(lpdis->hDC, GetSysColor (COLOR_HIGHLIGHTTEXT)); - clrPrevBkgnd = SetBkColor(lpdis->hDC, GetSysColor (COLOR_HIGHLIGHT)); - } - else - { - clrPrevText = SetTextColor(lpdis->hDC, GetSysColor (COLOR_MENUTEXT)); - clrPrevBkgnd = SetBkColor(lpdis->hDC, GetSysColor (COLOR_MENU)); - } - - CopyRect(&TextRect, &(lpdis->rcItem)); - - /* add the menubitmap */ - menuinfo = FM_GetMenuInfo(pMyItem->hMenu); - if (menuinfo->nBorderWidth) - TextRect.left += menuinfo->nBorderWidth; - - TextRect.left += FM_LEFTBORDER; - xi = TextRect.left + FM_SPACE1; - yi = TextRect.top + FM_Y_SPACE/2; - TextRect.bottom -= FM_Y_SPACE/2; - - xt = xi + FM_ICON_SIZE + FM_SPACE2; - yt = yi; - - ExtTextOutW (lpdis->hDC, xt , yt, ETO_OPAQUE, &TextRect, pMyItem->szItemText, pMyItem->cchItemText, NULL); - - Shell_GetImageLists(0, &hImageList); - ImageList_Draw(hImageList, pMyItem->iIconIndex, lpdis->hDC, xi, yi, ILD_NORMAL); - - TRACE("-- 0x%04x 0x%04x 0x%04x 0x%04x\n", TextRect.left, TextRect.top, TextRect.right, TextRect.bottom); - - SetTextColor(lpdis->hDC, clrPrevText); - SetBkColor(lpdis->hDC, clrPrevBkgnd); - - return TRUE; -} - -/************************************************************************* - * FileMenu_InitMenuPopup [SHELL32.109] - * - * NOTES - * The filemenu is an ownerdrawn menu. Call this function responding to - * WM_INITPOPUPMENU - * - */ -BOOL WINAPI FileMenu_InitMenuPopup (HMENU hmenu) -{ - FM_InitMenuPopup(hmenu, NULL); - return TRUE; -} - -/************************************************************************* - * FileMenu_HandleMenuChar [SHELL32.108] - */ -LRESULT WINAPI FileMenu_HandleMenuChar( - HMENU hMenu, - WPARAM wParam) -{ - FIXME("%p 0x%08lx\n",hMenu,wParam); - return 0; -} - -/************************************************************************* - * FileMenu_DeleteAllItems [SHELL32.104] - * - * NOTES - * exported by name - */ -BOOL WINAPI FileMenu_DeleteAllItems (HMENU hmenu) -{ - MENUITEMINFOW mii; - LPFMINFO menudata; - - int i; - - TRACE("%p\n", hmenu); - - ZeroMemory ( &mii, sizeof(MENUITEMINFOW)); - mii.cbSize = sizeof(MENUITEMINFOW); - mii.fMask = MIIM_SUBMENU|MIIM_DATA; - - for (i = 0; i < GetMenuItemCount( hmenu ); i++) - { GetMenuItemInfoW(hmenu, i, TRUE, &mii ); - - SHFree((LPFMINFO)mii.dwItemData); - - if (mii.hSubMenu) - FileMenu_Destroy(mii.hSubMenu); - } - - while (DeleteMenu (hmenu, 0, MF_BYPOSITION)){}; - - menudata = FM_GetMenuInfo(hmenu); - - menudata->bInitialized = FALSE; - - return TRUE; -} - -/************************************************************************* - * FileMenu_DeleteItemByCmd [SHELL32.117] - * - */ -BOOL WINAPI FileMenu_DeleteItemByCmd (HMENU hMenu, UINT uID) -{ - MENUITEMINFOW mii; - - TRACE("%p 0x%08x\n", hMenu, uID); - - ZeroMemory ( &mii, sizeof(MENUITEMINFOW)); - mii.cbSize = sizeof(MENUITEMINFOW); - mii.fMask = MIIM_SUBMENU; - - GetMenuItemInfoW(hMenu, uID, FALSE, &mii ); - if ( mii.hSubMenu ) - { - /* FIXME: Do what? */ - } - - DeleteMenu(hMenu, MF_BYCOMMAND, uID); - return TRUE; -} - -/************************************************************************* - * FileMenu_DeleteItemByIndex [SHELL32.140] - */ -BOOL WINAPI FileMenu_DeleteItemByIndex ( HMENU hMenu, UINT uPos) -{ - MENUITEMINFOW mii; - - TRACE("%p 0x%08x\n", hMenu, uPos); - - ZeroMemory ( &mii, sizeof(MENUITEMINFOW)); - mii.cbSize = sizeof(MENUITEMINFOW); - mii.fMask = MIIM_SUBMENU; - - GetMenuItemInfoW(hMenu, uPos, TRUE, &mii ); - if ( mii.hSubMenu ) - { - /* FIXME: Do what? */ - } - - DeleteMenu(hMenu, MF_BYPOSITION, uPos); - return TRUE; -} - -/************************************************************************* - * FileMenu_DeleteItemByFirstID [SHELL32.141] - */ -BOOL WINAPI FileMenu_DeleteItemByFirstID( - HMENU hMenu, - UINT uID) -{ - TRACE("%p 0x%08x\n", hMenu, uID); - return 0; -} - -/************************************************************************* - * FileMenu_DeleteSeparator [SHELL32.142] - */ -BOOL WINAPI FileMenu_DeleteSeparator(HMENU hMenu) -{ - TRACE("%p\n", hMenu); - return 0; -} - -/************************************************************************* - * FileMenu_EnableItemByCmd [SHELL32.143] - */ -BOOL WINAPI FileMenu_EnableItemByCmd( - HMENU hMenu, - UINT uID, - BOOL bEnable) -{ - TRACE("%p 0x%08x 0x%08x\n", hMenu, uID,bEnable); - return 0; -} - -/************************************************************************* - * FileMenu_GetItemExtent [SHELL32.144] - * - * NOTES - * if the menu is too big, entries are getting cut away!! - */ -DWORD WINAPI FileMenu_GetItemExtent (HMENU hMenu, UINT uPos) -{ RECT rect; - - FIXME("%p 0x%08x\n", hMenu, uPos); - - if (GetMenuItemRect(0, hMenu, uPos, &rect)) - { FIXME("0x%04x 0x%04x 0x%04x 0x%04x\n", - rect.right, rect.left, rect.top, rect.bottom); - return ((rect.right-rect.left)<<16) + (rect.top-rect.bottom); - } - return 0x00100010; /*FIXME*/ -} - -/************************************************************************* - * FileMenu_AbortInitMenu [SHELL32.120] - * - */ -void WINAPI FileMenu_AbortInitMenu (void) -{ TRACE("\n"); - bAbortInit = TRUE; -} - -/************************************************************************* - * SHFind_InitMenuPopup [SHELL32.149] - * - * Get the IContextMenu instance for the submenu of options displayed - * for the Search entry in the Classic style Start menu. - * - * PARAMETERS - * hMenu [in] handle of menu previously created - * hWndParent [in] parent window - * w [in] no pointer (0x209 over here) perhaps menu IDs ??? - * x [in] no pointer (0x226 over here) - * - * RETURNS - * LPXXXXX pointer to struct containing a func addr at offset 8 - * or NULL at failure. - */ -IContextMenu * WINAPI SHFind_InitMenuPopup (HMENU hMenu, HWND hWndParent, UINT w, UINT x) -{ - FIXME("hmenu=%p hwnd=%p 0x%08x 0x%08x stub\n", - hMenu,hWndParent,w,x); - return NULL; /* this is supposed to be a pointer */ -} - -/************************************************************************* - * _SHIsMenuSeparator (internal) - */ -static BOOL _SHIsMenuSeparator(HMENU hm, int i) -{ - MENUITEMINFOW mii; - - mii.cbSize = sizeof(MENUITEMINFOW); - mii.fMask = MIIM_TYPE; - mii.cch = 0; /* WARNING: We MUST initialize it to 0*/ - if (!GetMenuItemInfoW(hm, i, TRUE, &mii)) - { - return(FALSE); - } - - if (mii.fType & MFT_SEPARATOR) - { - return(TRUE); - } - - return(FALSE); -} - -/************************************************************************* - * Shell_MergeMenus [SHELL32.67] - */ -UINT WINAPI Shell_MergeMenus (HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags) -{ int nItem; - HMENU hmSubMenu; - BOOL bAlreadySeparated; - MENUITEMINFOW miiSrc; - WCHAR szName[256]; - UINT uTemp, uIDMax = uIDAdjust; - - TRACE("hmenu1=%p hmenu2=%p 0x%04x 0x%04x 0x%04x 0x%04x\n", - hmDst, hmSrc, uInsert, uIDAdjust, uIDAdjustMax, uFlags); - - if (!hmDst || !hmSrc) - return uIDMax; - - nItem = GetMenuItemCount(hmDst); - if (nItem == -1) - return uIDMax; - - if (uInsert >= (UINT)nItem) /* insert position inside menu? */ - { - uInsert = (UINT)nItem; /* append on the end */ - bAlreadySeparated = TRUE; - } - else - { - bAlreadySeparated = _SHIsMenuSeparator(hmDst, uInsert); - } - - if ((uFlags & MM_ADDSEPARATOR) && !bAlreadySeparated) - { - /* Add a separator between the menus */ - InsertMenuA(hmDst, uInsert, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); - bAlreadySeparated = TRUE; - } - - - /* Go through the menu items and clone them*/ - for (nItem = GetMenuItemCount(hmSrc) - 1; nItem >= 0; nItem--) - { - miiSrc.cbSize = sizeof(MENUITEMINFOW); - miiSrc.fMask = MIIM_STATE | MIIM_ID | MIIM_SUBMENU | MIIM_CHECKMARKS | MIIM_TYPE | MIIM_DATA; - - /* We need to reset this every time through the loop in case menus DON'T have IDs*/ - miiSrc.fType = MFT_STRING; - miiSrc.dwTypeData = szName; - miiSrc.dwItemData = 0; - miiSrc.cch = sizeof(szName)/sizeof(WCHAR); - - if (!GetMenuItemInfoW(hmSrc, nItem, TRUE, &miiSrc)) - { - continue; - } - -/* TRACE("found menu=0x%04x %s id=0x%04x mask=0x%08x smenu=0x%04x\n", hmSrc, debugstr_a(miiSrc.dwTypeData), miiSrc.wID, miiSrc.fMask, miiSrc.hSubMenu); -*/ - if (miiSrc.fType & MFT_SEPARATOR) - { - /* This is a separator; don't put two of them in a row */ - if (bAlreadySeparated) - continue; - - bAlreadySeparated = TRUE; - } - else if (miiSrc.hSubMenu) - { - if (uFlags & MM_SUBMENUSHAVEIDS) - { - miiSrc.wID += uIDAdjust; /* add uIDAdjust to the ID */ - - if (uIDAdjustMax != 0xFFFF && miiSrc.wID > uIDAdjustMax) /* skip ID's higher uIDAdjustMax */ - continue; - - if (uIDMax <= miiSrc.wID) /* remember the highest ID */ - uIDMax = miiSrc.wID + 1; - } - else - { - miiSrc.fMask &= ~MIIM_ID; /* Don't set IDs for submenus that didn't have them already */ - } - hmSubMenu = miiSrc.hSubMenu; - - miiSrc.hSubMenu = CreatePopupMenu(); - - if (!miiSrc.hSubMenu) return(uIDMax); - - uTemp = Shell_MergeMenus(miiSrc.hSubMenu, hmSubMenu, 0, uIDAdjust, uIDAdjustMax, uFlags & MM_SUBMENUSHAVEIDS); - - if (uIDMax <= uTemp) - uIDMax = uTemp; - - bAlreadySeparated = FALSE; - } - else /* normal menu item */ - { - miiSrc.wID += uIDAdjust; /* add uIDAdjust to the ID */ - - if (uIDAdjustMax != 0xFFFF && miiSrc.wID > uIDAdjustMax) /* skip ID's higher uIDAdjustMax */ - continue; - - if (uIDMax <= miiSrc.wID) /* remember the highest ID */ - uIDMax = miiSrc.wID + 1; - - bAlreadySeparated = FALSE; - } - -/* TRACE("inserting menu=0x%04x %s id=0x%04x mask=0x%08x smenu=0x%04x\n", hmDst, debugstr_a(miiSrc.dwTypeData), miiSrc.wID, miiSrc.fMask, miiSrc.hSubMenu); -*/ - if (!InsertMenuItemW(hmDst, uInsert, TRUE, &miiSrc)) - { - return(uIDMax); - } - } - - /* Ensure the correct number of separators at the beginning of the - inserted menu items*/ - if (uInsert == 0) - { - if (bAlreadySeparated) - { - DeleteMenu(hmDst, uInsert, MF_BYPOSITION); - } - } - else - { - if (_SHIsMenuSeparator(hmDst, uInsert-1)) - { - if (bAlreadySeparated) - { - DeleteMenu(hmDst, uInsert, MF_BYPOSITION); - } - } - else - { - if ((uFlags & MM_ADDSEPARATOR) && !bAlreadySeparated) - { - /* Add a separator between the menus*/ - InsertMenuW(hmDst, uInsert, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); - } - } - } - return(uIDMax); -} diff --git a/reactos/dll/win32/shell32/shlview.c b/reactos/dll/win32/shell32/shlview.c deleted file mode 100644 index f731b0b535b..00000000000 --- a/reactos/dll/win32/shell32/shlview.c +++ /dev/null @@ -1,2823 +0,0 @@ -/* - * ShellView - * - * Copyright 1998,1999 - * - * This is the view visualizing the data provided by the shellfolder. - * No direct access to data from pidls should be done from here. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * FIXME: The order by part of the background context menu should be - * built according to the columns shown. - * - * FIXME: Load/Save the view state from/into the stream provided by - * the ShellBrowser - * - * FIXME: CheckToolbar: handle the "new folder" and "folder up" button - * - * FIXME: ShellView_FillList: consider sort orders - * - * FIXME: implement the drag and drop in the old (msg-based) way - * - * FIXME: when the ShellView_WndProc gets a WM_NCDESTROY should we do a - * Release() ??? - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -#undef SV_CLASS_NAME - -static const WCHAR SV_CLASS_NAME[] = {'S','H','E','L','L','D','L','L','_','D','e','f','V','i','e','w',0}; - -typedef struct -{ BOOL bIsAscending; - INT nHeaderID; - INT nLastHeaderID; -}LISTVIEW_SORT_INFO, *LPLISTVIEW_SORT_INFO; - -typedef struct -{ - const IShellViewVtbl* lpVtbl; - LONG ref; - const IOleCommandTargetVtbl* lpvtblOleCommandTarget; - const IDropTargetVtbl* lpvtblDropTarget; - const IDropSourceVtbl* lpvtblDropSource; - const IViewObjectVtbl* lpvtblViewObject; - IShellFolder* pSFParent; - IShellFolder2* pSF2Parent; - IShellBrowser* pShellBrowser; - ICommDlgBrowser* pCommDlgBrowser; - HWND hWnd; /* SHELLDLL_DefView */ - HWND hWndList; /* ListView control */ - HWND hWndParent; - FOLDERSETTINGS FolderSettings; - HMENU hMenu; - UINT uState; - UINT cidl; - LPITEMIDLIST *apidl; - LISTVIEW_SORT_INFO ListViewSortInfo; - ULONG hNotify; /* change notification handle */ - HANDLE hAccel; - DWORD dwAspects; - DWORD dwAdvf; - IAdviseSink *pAdvSink; - IDropTarget* pCurDropTarget; /* The sub-item, which is currently dragged over */ - IDataObject* pCurDataObject; /* The dragged data-object */ - LONG iDragOverItem; /* Dragged over item's index, iff pCurDropTarget != NULL */ - UINT cScrollDelay; /* Send a WM_*SCROLL msg every 250 ms during drag-scroll */ - POINT ptLastMousePos; /* Mouse position at last DragOver call */ - IContextMenu2 *pCM; -} IShellViewImpl, *LPIShellViewImpl; - -static const IShellViewVtbl svvt; -static const IOleCommandTargetVtbl ctvt; -static const IDropTargetVtbl dtvt; -static const IDropSourceVtbl dsvt; -static const IViewObjectVtbl vovt; - - -static LPIShellViewImpl __inline impl_from_IOleCommandTarget( IOleCommandTarget *iface ) -{ - return (LPIShellViewImpl)((char*)iface - FIELD_OFFSET(IShellViewImpl, lpvtblOleCommandTarget)); -} - -static LPIShellViewImpl __inline impl_from_IDropTarget( IDropTarget *iface ) -{ - return (LPIShellViewImpl)((char*)iface - FIELD_OFFSET(IShellViewImpl, lpvtblDropTarget)); -} - -static LPIShellViewImpl __inline impl_from_IDropSource( IDropSource *iface ) -{ - return (LPIShellViewImpl)((char*)iface - FIELD_OFFSET(IShellViewImpl, lpvtblDropSource)); -} - -static LPIShellViewImpl __inline impl_from_IViewObject( IViewObject *iface ) -{ - return (LPIShellViewImpl)((char*)iface - FIELD_OFFSET(IShellViewImpl, lpvtblViewObject)); -} - -/* ListView Header ID's */ -#define LISTVIEW_COLUMN_NAME 0 -#define LISTVIEW_COLUMN_SIZE 1 -#define LISTVIEW_COLUMN_TYPE 2 -#define LISTVIEW_COLUMN_TIME 3 -#define LISTVIEW_COLUMN_ATTRIB 4 - -/*menu items */ -#define IDM_VIEW_FILES (FCIDM_SHVIEWFIRST + 0x500) -#define IDM_VIEW_IDW (FCIDM_SHVIEWFIRST + 0x501) -#define IDM_MYFILEITEM (FCIDM_SHVIEWFIRST + 0x502) - -#define ID_LISTVIEW 1 - -#define SHV_CHANGE_NOTIFY WM_USER + 0x1111 - -/*windowsx.h */ -#define GET_WM_COMMAND_ID(wp, lp) LOWORD(wp) -#define GET_WM_COMMAND_HWND(wp, lp) (HWND)(lp) -#define GET_WM_COMMAND_CMD(wp, lp) HIWORD(wp) - -/* - Items merged into the toolbar and the filemenu -*/ -typedef struct -{ int idCommand; - int iImage; - int idButtonString; - int idMenuString; - BYTE bState; - BYTE bStyle; -} MYTOOLINFO, *LPMYTOOLINFO; - -static const MYTOOLINFO Tools[] = -{ -{ FCIDM_SHVIEW_BIGICON, 0, 0, IDS_VIEW_LARGE, TBSTATE_ENABLED, BTNS_BUTTON }, -{ FCIDM_SHVIEW_SMALLICON, 0, 0, IDS_VIEW_SMALL, TBSTATE_ENABLED, BTNS_BUTTON }, -{ FCIDM_SHVIEW_LISTVIEW, 0, 0, IDS_VIEW_LIST, TBSTATE_ENABLED, BTNS_BUTTON }, -{ FCIDM_SHVIEW_REPORTVIEW, 0, 0, IDS_VIEW_DETAILS, TBSTATE_ENABLED, BTNS_BUTTON }, -{ -1, 0, 0, 0, 0, 0} -}; - -typedef void (CALLBACK *PFNSHGETSETTINGSPROC)(LPSHELLFLAGSTATE lpsfs, DWORD dwMask); - -/********************************************************** - * IShellView_Constructor - */ -IShellView * IShellView_Constructor( IShellFolder * pFolder) -{ IShellViewImpl * sv; - sv=HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IShellViewImpl)); - sv->ref=1; - sv->lpVtbl=&svvt; - sv->lpvtblOleCommandTarget=&ctvt; - sv->lpvtblDropTarget=&dtvt; - sv->lpvtblDropSource=&dsvt; - sv->lpvtblViewObject=&vovt; - - sv->pSFParent = pFolder; - if(pFolder) IShellFolder_AddRef(pFolder); - IShellFolder_QueryInterface(sv->pSFParent, &IID_IShellFolder2, (LPVOID*)&sv->pSF2Parent); - - sv->pCurDropTarget = NULL; - sv->pCurDataObject = NULL; - sv->iDragOverItem = 0; - sv->cScrollDelay = 0; - sv->ptLastMousePos.x = 0; - sv->ptLastMousePos.y = 0; - - TRACE("(%p)->(%p)\n",sv, pFolder); - return (IShellView *) sv; -} - -/********************************************************** - * - * ##### helperfunctions for communication with ICommDlgBrowser ##### - */ -static BOOL IsInCommDlg(IShellViewImpl * This) -{ return(This->pCommDlgBrowser != NULL); -} - -static HRESULT IncludeObject(IShellViewImpl * This, LPCITEMIDLIST pidl) -{ - HRESULT ret = S_OK; - - if ( IsInCommDlg(This) ) - { - TRACE("ICommDlgBrowser::IncludeObject pidl=%p\n", pidl); - ret = ICommDlgBrowser_IncludeObject(This->pCommDlgBrowser, (IShellView*)This, pidl); - TRACE("--0x%08x\n", ret); - } - return ret; -} - -static HRESULT OnDefaultCommand(IShellViewImpl * This) -{ - HRESULT ret = S_FALSE; - - if (IsInCommDlg(This)) - { - TRACE("ICommDlgBrowser::OnDefaultCommand\n"); - ret = ICommDlgBrowser_OnDefaultCommand(This->pCommDlgBrowser, (IShellView*)This); - TRACE("-- returns %08x\n", ret); - } - return ret; -} - -static HRESULT OnStateChange(IShellViewImpl * This, UINT uFlags) -{ - HRESULT ret = S_FALSE; - - if (IsInCommDlg(This)) - { - TRACE("ICommDlgBrowser::OnStateChange flags=%x\n", uFlags); - ret = ICommDlgBrowser_OnStateChange(This->pCommDlgBrowser, (IShellView*)This, uFlags); - TRACE("--\n"); - } - return ret; -} -/********************************************************** - * set the toolbar of the filedialog buttons - * - * - activates the buttons from the shellbrowser according to - * the view state - */ -static void CheckToolbar(IShellViewImpl * This) -{ - LRESULT result; - - TRACE("\n"); - - if (IsInCommDlg(This)) - { - IShellBrowser_SendControlMsg(This->pShellBrowser, FCW_TOOLBAR, TB_CHECKBUTTON, - FCIDM_TB_SMALLICON, (This->FolderSettings.ViewMode==FVM_LIST)? TRUE : FALSE, &result); - IShellBrowser_SendControlMsg(This->pShellBrowser, FCW_TOOLBAR, TB_CHECKBUTTON, - FCIDM_TB_REPORTVIEW, (This->FolderSettings.ViewMode==FVM_DETAILS)? TRUE : FALSE, &result); - IShellBrowser_SendControlMsg(This->pShellBrowser, FCW_TOOLBAR, TB_ENABLEBUTTON, - FCIDM_TB_SMALLICON, TRUE, &result); - IShellBrowser_SendControlMsg(This->pShellBrowser, FCW_TOOLBAR, TB_ENABLEBUTTON, - FCIDM_TB_REPORTVIEW, TRUE, &result); - } -} - -/********************************************************** - * - * ##### helperfunctions for initializing the view ##### - */ -/********************************************************** - * change the style of the listview control - */ -static void SetStyle(IShellViewImpl * This, DWORD dwAdd, DWORD dwRemove) -{ - DWORD tmpstyle; - - TRACE("(%p)\n", This); - - tmpstyle = GetWindowLongPtrW(This->hWndList, GWL_STYLE); - SetWindowLongPtrW(This->hWndList, GWL_STYLE, dwAdd | (tmpstyle & ~dwRemove)); -} - -/********************************************************** -* ShellView_CreateList() -* -* - creates the list view window -*/ -static BOOL ShellView_CreateList (IShellViewImpl * This) -{ DWORD dwStyle, dwExStyle; - - TRACE("%p\n",This); - - dwStyle = WS_TABSTOP | WS_VISIBLE | WS_CHILDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | - LVS_SHAREIMAGELISTS | LVS_EDITLABELS | LVS_AUTOARRANGE; - dwExStyle = WS_EX_CLIENTEDGE; - - if (This->FolderSettings.fFlags & FWF_DESKTOP) - dwStyle |= LVS_ALIGNLEFT; - else - dwStyle |= LVS_ALIGNTOP; - - switch (This->FolderSettings.ViewMode) - { - case FVM_ICON: dwStyle |= LVS_ICON; break; - case FVM_DETAILS: dwStyle |= LVS_REPORT; break; - case FVM_SMALLICON: dwStyle |= LVS_SMALLICON; break; - case FVM_LIST: dwStyle |= LVS_LIST; break; - default: dwStyle |= LVS_LIST; break; - } - - if (This->FolderSettings.fFlags & FWF_AUTOARRANGE) dwStyle |= LVS_AUTOARRANGE; - if (This->FolderSettings.fFlags & FWF_DESKTOP) - This->FolderSettings.fFlags |= FWF_NOCLIENTEDGE | FWF_NOSCROLL; - if (This->FolderSettings.fFlags & FWF_SINGLESEL) dwStyle |= LVS_SINGLESEL; - if (This->FolderSettings.fFlags & FWF_NOCLIENTEDGE) - dwExStyle &= ~WS_EX_CLIENTEDGE; - - This->hWndList=CreateWindowExW( dwExStyle, - WC_LISTVIEWW, - NULL, - dwStyle, - 0,0,0,0, - This->hWnd, - (HMENU)ID_LISTVIEW, - shell32_hInstance, - NULL); - - if(!This->hWndList) - return FALSE; - - This->ListViewSortInfo.bIsAscending = TRUE; - This->ListViewSortInfo.nHeaderID = -1; - This->ListViewSortInfo.nLastHeaderID = -1; - - if (This->FolderSettings.fFlags & FWF_DESKTOP) { - /* - * FIXME: look at the registry value - * HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ListviewShadow - * and activate drop shadows if necessary - */ - if (1) - { - SendMessageW(This->hWndList, LVM_SETTEXTBKCOLOR, 0, CLR_NONE); - SendMessageW(This->hWndList, LVM_SETBKCOLOR, 0, CLR_NONE); - } - else - { - SendMessageW(This->hWndList, LVM_SETTEXTBKCOLOR, 0, GetSysColor(COLOR_DESKTOP)); - SendMessageW(This->hWndList, LVM_SETBKCOLOR, 0, GetSysColor(COLOR_DESKTOP)); - } - - SendMessageW(This->hWndList, LVM_SETTEXTCOLOR, 0, RGB(255,255,255)); - } - - /* UpdateShellSettings(); */ - return TRUE; -} - -/********************************************************** -* ShellView_InitList() -* -* - adds all needed columns to the shellview -*/ -static BOOL ShellView_InitList(IShellViewImpl * This) -{ - LVCOLUMNW lvColumn; - SHELLDETAILS sd; - int i; - WCHAR szTemp[50]; - - TRACE("%p\n",This); - - SendMessageW(This->hWndList, LVM_DELETEALLITEMS, 0, 0); - - lvColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT; - lvColumn.pszText = szTemp; - - if (This->pSF2Parent) - { - for (i=0; 1; i++) - { - if (FAILED(IShellFolder2_GetDetailsOf(This->pSF2Parent, NULL, i, &sd))) - break; - lvColumn.fmt = sd.fmt; - lvColumn.cx = sd.cxChar*8; /* chars->pixel */ - StrRetToStrNW( szTemp, 50, &sd.str, NULL); - SendMessageW(This->hWndList, LVM_INSERTCOLUMNW, i, (LPARAM) &lvColumn); - } - } - else - { - FIXME("no SF2\n"); - } - - SendMessageW(This->hWndList, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)ShellSmallIconList); - SendMessageW(This->hWndList, LVM_SETIMAGELIST, LVSIL_NORMAL, (LPARAM)ShellBigIconList); - - return TRUE; -} -/********************************************************** -* ShellView_CompareItems() -* -* NOTES -* internal, CALLBACK for DSA_Sort -*/ -static INT CALLBACK ShellView_CompareItems(LPVOID lParam1, LPVOID lParam2, LPARAM lpData) -{ - int ret; - TRACE("pidl1=%p pidl2=%p lpsf=%p\n", lParam1, lParam2, (LPVOID) lpData); - - if(!lpData) return 0; - - ret = (SHORT) SCODE_CODE(IShellFolder_CompareIDs((LPSHELLFOLDER)lpData, 0, (LPITEMIDLIST)lParam1, (LPITEMIDLIST)lParam2)); - TRACE("ret=%i\n",ret); - return ret; -} - -/************************************************************************* - * ShellView_ListViewCompareItems - * - * Compare Function for the Listview (FileOpen Dialog) - * - * PARAMS - * lParam1 [I] the first ItemIdList to compare with - * lParam2 [I] the second ItemIdList to compare with - * lpData [I] The column ID for the header Ctrl to process - * - * RETURNS - * A negative value if the first item should precede the second, - * a positive value if the first item should follow the second, - * or zero if the two items are equivalent - * - * NOTES - * FIXME: function does what ShellView_CompareItems is supposed to do. - * unify it and figure out how to use the undocumented first parameter - * of IShellFolder_CompareIDs to do the job this function does and - * move this code to IShellFolder. - * make LISTVIEW_SORT_INFO obsolete - * the way this function works is only usable if we had only - * filesystemfolders (25/10/99 jsch) - */ -static INT CALLBACK ShellView_ListViewCompareItems(LPVOID lParam1, LPVOID lParam2, LPARAM lpData) -{ - INT nDiff=0; - FILETIME fd1, fd2; - char strName1[MAX_PATH], strName2[MAX_PATH]; - BOOL bIsFolder1, bIsFolder2,bIsBothFolder; - LPITEMIDLIST pItemIdList1 = lParam1; - LPITEMIDLIST pItemIdList2 = lParam2; - LISTVIEW_SORT_INFO *pSortInfo = (LPLISTVIEW_SORT_INFO) lpData; - - - bIsFolder1 = _ILIsFolder(pItemIdList1); - bIsFolder2 = _ILIsFolder(pItemIdList2); - bIsBothFolder = bIsFolder1 && bIsFolder2; - - /* When sorting between a File and a Folder, the Folder gets sorted first */ - if( (bIsFolder1 || bIsFolder2) && !bIsBothFolder) - { - nDiff = bIsFolder1 ? -1 : 1; - } - else - { - /* Sort by Time: Folders or Files can be sorted */ - - if(pSortInfo->nHeaderID == LISTVIEW_COLUMN_TIME) - { - _ILGetFileDateTime(pItemIdList1, &fd1); - _ILGetFileDateTime(pItemIdList2, &fd2); - nDiff = CompareFileTime(&fd2, &fd1); - } - /* Sort by Attribute: Folder or Files can be sorted */ - else if(pSortInfo->nHeaderID == LISTVIEW_COLUMN_ATTRIB) - { - _ILGetFileAttributes(pItemIdList1, strName1, MAX_PATH); - _ILGetFileAttributes(pItemIdList2, strName2, MAX_PATH); - nDiff = lstrcmpiA(strName1, strName2); - } - /* Sort by FileName: Folder or Files can be sorted */ - else if(pSortInfo->nHeaderID == LISTVIEW_COLUMN_NAME || bIsBothFolder) - { - /* Sort by Text */ - _ILSimpleGetText(pItemIdList1, strName1, MAX_PATH); - _ILSimpleGetText(pItemIdList2, strName2, MAX_PATH); - nDiff = lstrcmpiA(strName1, strName2); - } - /* Sort by File Size, Only valid for Files */ - else if(pSortInfo->nHeaderID == LISTVIEW_COLUMN_SIZE) - { - nDiff = (INT)(_ILGetFileSize(pItemIdList1, NULL, 0) - _ILGetFileSize(pItemIdList2, NULL, 0)); - } - /* Sort by File Type, Only valid for Files */ - else if(pSortInfo->nHeaderID == LISTVIEW_COLUMN_TYPE) - { - /* Sort by Type */ - _ILGetFileType(pItemIdList1, strName1, MAX_PATH); - _ILGetFileType(pItemIdList2, strName2, MAX_PATH); - nDiff = lstrcmpiA(strName1, strName2); - } - } - /* If the Date, FileSize, FileType, Attrib was the same, sort by FileName */ - - if(nDiff == 0) - { - _ILSimpleGetText(pItemIdList1, strName1, MAX_PATH); - _ILSimpleGetText(pItemIdList2, strName2, MAX_PATH); - nDiff = lstrcmpiA(strName1, strName2); - } - - if(!pSortInfo->bIsAscending) - { - nDiff = -nDiff; - } - - return nDiff; - -} - -/********************************************************** -* LV_FindItemByPidl() -*/ -static int LV_FindItemByPidl( - IShellViewImpl * This, - LPCITEMIDLIST pidl) -{ - LVITEMW lvItem; - lvItem.iSubItem = 0; - lvItem.mask = LVIF_PARAM; - for(lvItem.iItem = 0; - SendMessageW(This->hWndList, LVM_GETITEMW, 0, (LPARAM) &lvItem); - lvItem.iItem++) - { - LPITEMIDLIST currentpidl = (LPITEMIDLIST) lvItem.lParam; - HRESULT hr = IShellFolder_CompareIDs(This->pSFParent, 0, pidl, currentpidl); - if(SUCCEEDED(hr) && !HRESULT_CODE(hr)) - { - return lvItem.iItem; - } - } - return -1; -} - -/********************************************************** -* LV_AddItem() -*/ -static BOOLEAN LV_AddItem(IShellViewImpl * This, LPCITEMIDLIST pidl) -{ - LVITEMW lvItem; - - TRACE("(%p)(pidl=%p)\n", This, pidl); - - lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM; /*set the mask*/ - lvItem.iItem = ListView_GetItemCount(This->hWndList); /*add the item to the end of the list*/ - lvItem.iSubItem = 0; - lvItem.lParam = (LPARAM) ILClone(ILFindLastID(pidl)); /*set the item's data*/ - lvItem.pszText = LPSTR_TEXTCALLBACKW; /*get text on a callback basis*/ - lvItem.iImage = I_IMAGECALLBACK; /*get the image on a callback basis*/ - if (SendMessageW(This->hWndList, LVM_INSERTITEMW, 0, (LPARAM)&lvItem) == -1) - return FALSE; - else - return TRUE; -} - -/********************************************************** -* LV_DeleteItem() -*/ -static BOOLEAN LV_DeleteItem(IShellViewImpl * This, LPCITEMIDLIST pidl) -{ - int nIndex; - - TRACE("(%p)(pidl=%p)\n", This, pidl); - - nIndex = LV_FindItemByPidl(This, ILFindLastID(pidl)); - return (-1==ListView_DeleteItem(This->hWndList, nIndex))? FALSE: TRUE; -} - -/********************************************************** -* LV_RenameItem() -*/ -static BOOLEAN LV_RenameItem(IShellViewImpl * This, LPCITEMIDLIST pidlOld, LPCITEMIDLIST pidlNew ) -{ - int nItem; - LVITEMW lvItem; - - TRACE("(%p)(pidlold=%p pidlnew=%p)\n", This, pidlOld, pidlNew); - - nItem = LV_FindItemByPidl(This, ILFindLastID(pidlOld)); - if ( -1 != nItem ) - { - lvItem.mask = LVIF_PARAM; /* only the pidl */ - lvItem.iItem = nItem; - SendMessageW(This->hWndList, LVM_GETITEMW, 0, (LPARAM) &lvItem); - - SHFree((LPITEMIDLIST)lvItem.lParam); - lvItem.mask = LVIF_PARAM; - lvItem.iItem = nItem; - lvItem.lParam = (LPARAM) ILClone(ILFindLastID(pidlNew)); /* set the item's data */ - SendMessageW(This->hWndList, LVM_SETITEMW, 0, (LPARAM) &lvItem); - SendMessageW(This->hWndList, LVM_UPDATE, nItem, 0); - return TRUE; /* FIXME: better handling */ - } - return FALSE; -} -/********************************************************** -* ShellView_FillList() -* -* - gets the objectlist from the shellfolder -* - sorts the list -* - fills the list into the view -*/ - -static INT CALLBACK fill_list( LPVOID ptr, LPVOID arg ) -{ - LPITEMIDLIST pidl = ptr; - IShellViewImpl *This = arg; - /* in a commdlg This works as a filemask*/ - if ( IncludeObject(This, pidl)==S_OK ) LV_AddItem(This, pidl); - SHFree(pidl); - return TRUE; -} - -static HRESULT ShellView_FillList(IShellViewImpl * This) -{ - LPENUMIDLIST pEnumIDList; - LPITEMIDLIST pidl; - DWORD dwFetched; - HRESULT hRes; - HDPA hdpa; - - TRACE("%p\n",This); - - /* get the itemlist from the shfolder*/ - hRes = IShellFolder_EnumObjects(This->pSFParent,This->hWnd, SHCONTF_NONFOLDERS | SHCONTF_FOLDERS, &pEnumIDList); - if (hRes != S_OK) - { - if (hRes==S_FALSE) - return(NOERROR); - return(hRes); - } - - /* create a pointer array */ - hdpa = DPA_Create(16); - if (!hdpa) - { - return(E_OUTOFMEMORY); - } - - /* copy the items into the array*/ - while((S_OK == IEnumIDList_Next(pEnumIDList,1, &pidl, &dwFetched)) && dwFetched) - { - if (DPA_InsertPtr(hdpa, 0x7fff, pidl) == -1) - { - SHFree(pidl); - } - } - - /* sort the array */ - DPA_Sort(hdpa, ShellView_CompareItems, (LPARAM)This->pSFParent); - - /*turn the listview's redrawing off*/ - SendMessageA(This->hWndList, WM_SETREDRAW, FALSE, 0); - - DPA_DestroyCallback( hdpa, fill_list, This ); - - /*turn the listview's redrawing back on and force it to draw*/ - SendMessageA(This->hWndList, WM_SETREDRAW, TRUE, 0); - - IEnumIDList_Release(pEnumIDList); /* destroy the list*/ - - return S_OK; -} - -/********************************************************** -* ShellView_OnCreate() -*/ -static LRESULT ShellView_OnCreate(IShellViewImpl * This) -{ - IDropTarget* pdt; - SHChangeNotifyEntry ntreg; - IPersistFolder2 * ppf2 = NULL; - - TRACE("%p\n",This); - - if(ShellView_CreateList(This)) - { - if(ShellView_InitList(This)) - { - ShellView_FillList(This); - } - } - - if (SUCCEEDED(IUnknown_QueryInterface((IUnknown*)&This->lpVtbl, &IID_IDropTarget, (LPVOID*)&pdt))) - { - RegisterDragDrop(This->hWnd, pdt); - IDropTarget_Release(pdt); - } - - /* register for receiving notifications */ - IShellFolder_QueryInterface(This->pSFParent, &IID_IPersistFolder2, (LPVOID*)&ppf2); - if (ppf2) - { - IPersistFolder2_GetCurFolder(ppf2, (LPITEMIDLIST*)&ntreg.pidl); - ntreg.fRecursive = TRUE; - This->hNotify = SHChangeNotifyRegister(This->hWnd, SHCNF_IDLIST, SHCNE_ALLEVENTS, SHV_CHANGE_NOTIFY, 1, &ntreg); - SHFree((LPITEMIDLIST)ntreg.pidl); - IPersistFolder2_Release(ppf2); - } - - This->hAccel = LoadAcceleratorsA(shell32_hInstance, "shv_accel"); - - return S_OK; -} - -/********************************************************** - * #### Handling of the menus #### - */ - -/********************************************************** -* ShellView_BuildFileMenu() -*/ -static HMENU ShellView_BuildFileMenu(IShellViewImpl * This) -{ WCHAR szText[MAX_PATH]; - MENUITEMINFOW mii; - int nTools,i; - HMENU hSubMenu; - - TRACE("(%p)\n",This); - - hSubMenu = CreatePopupMenu(); - if(hSubMenu) - { /*get the number of items in our global array*/ - for(nTools = 0; Tools[nTools].idCommand != -1; nTools++){} - - /*add the menu items*/ - for(i = 0; i < nTools; i++) - { - LoadStringW(shell32_hInstance, Tools[i].idMenuString, szText, MAX_PATH); - - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_TYPE | MIIM_ID | MIIM_STATE; - - if(BTNS_SEP != Tools[i].bStyle) /* no separator*/ - { - mii.fType = MFT_STRING; - mii.fState = MFS_ENABLED; - mii.dwTypeData = szText; - mii.wID = Tools[i].idCommand; - } - else - { - mii.fType = MFT_SEPARATOR; - } - /* tack This item onto the end of the menu */ - InsertMenuItemW(hSubMenu, (UINT)-1, TRUE, &mii); - } - } - TRACE("-- return (menu=%p)\n",hSubMenu); - return hSubMenu; -} -/********************************************************** -* ShellView_MergeFileMenu() -*/ -static void ShellView_MergeFileMenu(IShellViewImpl * This, HMENU hSubMenu) -{ TRACE("(%p)->(submenu=%p) stub\n",This,hSubMenu); - - if(hSubMenu) - { /*insert This item at the beginning of the menu */ - _InsertMenuItemW(hSubMenu, 0, TRUE, 0, MFT_SEPARATOR, NULL, MFS_ENABLED); - _InsertMenuItemW(hSubMenu, 0, TRUE, IDM_MYFILEITEM, MFT_STRING, L"dummy45", MFS_ENABLED); - - } - TRACE("--\n"); -} - -/********************************************************** -* ShellView_MergeViewMenu() -*/ - -static void ShellView_MergeViewMenu(IShellViewImpl * This, HMENU hSubMenu) -{ - TRACE("(%p)->(submenu=%p)\n",This,hSubMenu); - - if(hSubMenu) - { /*add a separator at the correct position in the menu*/ - MENUITEMINFOW mii; - static WCHAR view[] = L"View"; - - _InsertMenuItemW(hSubMenu, FCIDM_MENU_VIEW_SEP_OPTIONS, FALSE, 0, MFT_SEPARATOR, NULL, MFS_ENABLED); - - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_SUBMENU | MIIM_TYPE | MIIM_DATA; - mii.fType = MFT_STRING; - mii.dwTypeData = view; - mii.hSubMenu = LoadMenuW(shell32_hInstance, L"MENU_001"); - InsertMenuItemW(hSubMenu, FCIDM_MENU_VIEW_SEP_OPTIONS, FALSE, &mii); - } -} - -/********************************************************** -* ShellView_GetSelections() -* -* - fills the this->apidl list with the selected objects -* -* RETURNS -* number of selected items -*/ -static UINT ShellView_GetSelections(IShellViewImpl * This) -{ - LVITEMW lvItem; - UINT i = 0; - - SHFree(This->apidl); - - This->cidl = ListView_GetSelectedCount(This->hWndList); - This->apidl = (LPITEMIDLIST*)SHAlloc(This->cidl * sizeof(LPITEMIDLIST)); - - TRACE("selected=%i\n", This->cidl); - - if(This->apidl) - { - TRACE("-- Items selected =%u\n", This->cidl); - - lvItem.mask = LVIF_STATE | LVIF_PARAM; - lvItem.stateMask = LVIS_SELECTED; - lvItem.iItem = 0; - lvItem.iSubItem = 0; - - while(SendMessageW(This->hWndList, LVM_GETITEMW, 0, (LPARAM)&lvItem) && (i < This->cidl)) - { - if(lvItem.state & LVIS_SELECTED) - { - This->apidl[i] = (LPITEMIDLIST)lvItem.lParam; - i++; - if (i == This->cidl) - break; - TRACE("-- selected Item found\n"); - } - lvItem.iItem++; - } - } - return This->cidl; - -} - -/********************************************************** - * ShellView_OpenSelectedItems() - */ -static HRESULT ShellView_OpenSelectedItems(IShellViewImpl * This) -{ - static UINT CF_IDLIST = 0; - HRESULT hr; - IDataObject* selection; - IContextMenu * cm; - HMENU hmenu; - FORMATETC fetc; - STGMEDIUM stgm; - LPIDA pIDList; - LPCITEMIDLIST parent_pidl; - WCHAR parent_path[MAX_PATH]; - LPCWSTR parent_dir = NULL; - SFGAOF attribs; - int i; - CMINVOKECOMMANDINFOEX ici; - MENUITEMINFOW info; - - if (0 == ShellView_GetSelections(This)) - { - return S_OK; - } - - hr = IShellFolder_GetUIObjectOf(This->pSFParent, This->hWnd, This->cidl, - (LPCITEMIDLIST*)This->apidl, &IID_IContextMenu, - 0, (LPVOID *)&cm); - - if (SUCCEEDED(hr)) - { - hmenu = CreatePopupMenu(); - if (hmenu) - { - if (SUCCEEDED(IContextMenu_QueryContextMenu( cm, hmenu, 0, 0x20, 0x7fff, CMF_DEFAULTONLY))) - { - INT def = -1, n = GetMenuItemCount(hmenu); - - for ( i = 0; i < n; i++ ) - { - memset( &info, 0, sizeof info ); - info.cbSize = sizeof info; - info.fMask = MIIM_FTYPE | MIIM_STATE | MIIM_ID; - if (GetMenuItemInfoW( hmenu, i, TRUE, &info)) - { - if (info.fState & MFS_DEFAULT) - { - def = info.wID; - break; - } - } - } - if (def != -1) - { - memset( &ici, 0, sizeof ici ); - ici.cbSize = sizeof ici; - ici.lpVerb = MAKEINTRESOURCEA( def ); - ici.hwnd = This->hWnd; - - if (IContextMenu_InvokeCommand(cm, (LPCMINVOKECOMMANDINFO) &ici ) == S_OK) - { - IContextMenu_Release(cm); - DestroyMenu( hmenu ); - return S_OK; - } - } - - } - DestroyMenu( hmenu ); - } - IContextMenu_Release(cm); - } - - - - hr = IShellFolder_GetUIObjectOf(This->pSFParent, This->hWnd, This->cidl, - (LPCITEMIDLIST*)This->apidl, &IID_IDataObject, - 0, (LPVOID *)&selection); - - - - if (FAILED(hr)) - return hr; - - if (0 == CF_IDLIST) - { - CF_IDLIST = RegisterClipboardFormatW(CFSTR_SHELLIDLIST); - } - fetc.cfFormat = CF_IDLIST; - fetc.ptd = NULL; - fetc.dwAspect = DVASPECT_CONTENT; - fetc.lindex = -1; - fetc.tymed = TYMED_HGLOBAL; - - hr = IDataObject_QueryGetData(selection, &fetc); - if (FAILED(hr)) - return hr; - - hr = IDataObject_GetData(selection, &fetc, &stgm); - if (FAILED(hr)) - return hr; - - pIDList = GlobalLock(stgm.u.hGlobal); - - parent_pidl = (LPCITEMIDLIST) ((LPBYTE)pIDList+pIDList->aoffset[0]); - hr = IShellFolder_GetAttributesOf(This->pSFParent, 1, &parent_pidl, &attribs); - if (SUCCEEDED(hr) && (attribs & SFGAO_FILESYSTEM) && - SHGetPathFromIDListW(parent_pidl, parent_path)) - { - parent_dir = parent_path; - } - - for (i = pIDList->cidl; i > 0; --i) - { - LPCITEMIDLIST pidl; - - pidl = (LPCITEMIDLIST)((LPBYTE)pIDList+pIDList->aoffset[i]); - - attribs = SFGAO_FOLDER; - hr = IShellFolder_GetAttributesOf(This->pSFParent, 1, &pidl, &attribs); - - if (SUCCEEDED(hr) && ! (attribs & SFGAO_FOLDER)) - { - SHELLEXECUTEINFOW shexinfo; - - shexinfo.cbSize = sizeof(SHELLEXECUTEINFOW); - shexinfo.fMask = SEE_MASK_INVOKEIDLIST; /* SEE_MASK_IDLIST is also possible. */ - shexinfo.hwnd = NULL; - shexinfo.lpVerb = NULL; - shexinfo.lpFile = NULL; - shexinfo.lpParameters = NULL; - shexinfo.lpDirectory = parent_dir; - shexinfo.nShow = SW_NORMAL; - shexinfo.lpIDList = ILCombine(parent_pidl, pidl); - - ShellExecuteExW(&shexinfo); /* Discard error/success info */ - - ILFree((LPITEMIDLIST)shexinfo.lpIDList); - } - } - - GlobalUnlock(stgm.u.hGlobal); - ReleaseStgMedium(&stgm); - - IDataObject_Release(selection); - - return S_OK; -} - -/********************************************************** - * ShellView_DoContextMenu() - */ -static void ShellView_DoContextMenu(IShellViewImpl * This, WORD x, WORD y, BOOL bDefault) -{ UINT uCommand; - DWORD wFlags; - HMENU hMenu; - BOOL fExplore = FALSE; - HWND hwndTree = 0; - CMINVOKECOMMANDINFO cmi; - - TRACE("(%p)->(0x%08x 0x%08x 0x%08x) stub\n",This, x, y, bDefault); - - /* look, what's selected and create a context menu object of it*/ - if( ShellView_GetSelections(This) ) - { - IShellFolder_GetUIObjectOf( This->pSFParent, This->hWndParent, This->cidl, (LPCITEMIDLIST*)This->apidl, - (REFIID)&IID_IContextMenu, NULL, (LPVOID *)&This->pCM); - - if(This->pCM) - { - TRACE("-- pContextMenu\n"); - hMenu = CreatePopupMenu(); - - if( hMenu ) - { - /* See if we are in Explore or Open mode. If the browser's tree is present, we are in Explore mode.*/ - if(SUCCEEDED(IShellBrowser_GetControlWindow(This->pShellBrowser,FCW_TREE, &hwndTree)) && hwndTree) - { - TRACE("-- explore mode\n"); - fExplore = TRUE; - } - - /* build the flags depending on what we can do with the selected item */ - wFlags = CMF_NORMAL | (This->cidl != 1 ? 0 : CMF_CANRENAME) | (fExplore ? CMF_EXPLORE : 0); - - /* let the ContextMenu merge its items in */ - if (SUCCEEDED(IContextMenu_QueryContextMenu( This->pCM, hMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, wFlags ))) - { - if (This->FolderSettings.fFlags & FWF_DESKTOP) - SetMenuDefaultItem(hMenu, FCIDM_SHVIEW_OPEN, MF_BYCOMMAND); - - if( bDefault ) - { - TRACE("-- get menu default command\n"); - uCommand = GetMenuDefaultItem(hMenu, FALSE, GMDI_GOINTOPOPUPS); - } - else - { - TRACE("-- track popup\n"); - uCommand = TrackPopupMenu( hMenu,TPM_LEFTALIGN | TPM_RETURNCMD,x,y,0,This->hWnd,NULL); - } - - if(uCommand > 0) - { - TRACE("-- uCommand=%u\n", uCommand); - if (uCommand==FCIDM_SHVIEW_OPEN && IsInCommDlg(This)) - { - TRACE("-- dlg: OnDefaultCommand\n"); - if (OnDefaultCommand(This) != S_OK) - { - ShellView_OpenSelectedItems(This); - } - } - else - { - TRACE("-- explore -- invoke command\n"); - ZeroMemory(&cmi, sizeof(cmi)); - cmi.cbSize = sizeof(cmi); - cmi.hwnd = This->hWndParent; /* this window has to answer CWM_GETISHELLBROWSER */ - cmi.lpVerb = (LPCSTR)MAKEINTRESOURCEA(uCommand); - IContextMenu_InvokeCommand(This->pCM, &cmi); - } - } - DestroyMenu(hMenu); - } - } - if (This->pCM) - { - IContextMenu_Release(This->pCM); - This->pCM = NULL; - } - } - } - else /* background context menu */ - { - hMenu = CreatePopupMenu(); - - CDefFolderMenu_Create2(NULL, NULL, This->cidl, (LPCITEMIDLIST*)This->apidl, This->pSFParent, NULL, 0, NULL, (IContextMenu**)&This->pCM); - IContextMenu2_QueryContextMenu(This->pCM, hMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, 0); - - uCommand = TrackPopupMenu( hMenu, TPM_LEFTALIGN | TPM_RETURNCMD,x,y,0,This->hWnd,NULL); - DestroyMenu(hMenu); - - TRACE("-- (%p)->(uCommand=0x%08x )\n",This, uCommand); - - ZeroMemory(&cmi, sizeof(cmi)); - cmi.cbSize = sizeof(cmi); - cmi.lpVerb = (LPCSTR)MAKEINTRESOURCEA(uCommand); - cmi.hwnd = This->hWndParent; - IContextMenu2_InvokeCommand(This->pCM, &cmi); - - IContextMenu2_Release(This->pCM); - This->pCM = NULL; - } -} - -/********************************************************** - * ##### message handling ##### - */ - -/********************************************************** -* ShellView_OnSize() -*/ -static LRESULT ShellView_OnSize(IShellViewImpl * This, WORD wWidth, WORD wHeight) -{ - TRACE("%p width=%u height=%u\n",This, wWidth,wHeight); - - /*resize the ListView to fit our window*/ - if(This->hWndList) - { - MoveWindow(This->hWndList, 0, 0, wWidth, wHeight, TRUE); - } - - return S_OK; -} -/********************************************************** -* ShellView_OnDeactivate() -* -* NOTES -* internal -*/ -static void ShellView_OnDeactivate(IShellViewImpl * This) -{ - TRACE("%p\n",This); - - if(This->uState != SVUIA_DEACTIVATE) - { - if(This->hMenu) - { - IShellBrowser_SetMenuSB(This->pShellBrowser,0, 0, 0); - IShellBrowser_RemoveMenusSB(This->pShellBrowser,This->hMenu); - DestroyMenu(This->hMenu); - This->hMenu = 0; - } - - This->uState = SVUIA_DEACTIVATE; - } -} - -/********************************************************** -* ShellView_OnActivate() -*/ -static LRESULT ShellView_OnActivate(IShellViewImpl * This, UINT uState) -{ OLEMENUGROUPWIDTHS omw = { {0, 0, 0, 0, 0, 0} }; - MENUITEMINFOA mii; - CHAR szText[MAX_PATH]; - - TRACE("%p uState=%x\n",This,uState); - - /*don't do anything if the state isn't really changing */ - if(This->uState == uState) - { - return S_OK; - } - - ShellView_OnDeactivate(This); - - /*only do This if we are active */ - if(uState != SVUIA_DEACTIVATE) - { - /*merge the menus */ - This->hMenu = CreateMenu(); - - if(This->hMenu) - { - IShellBrowser_InsertMenusSB(This->pShellBrowser, This->hMenu, &omw); - TRACE("-- after fnInsertMenusSB\n"); - - /*build the top level menu get the menu item's text*/ - strcpy(szText,"dummy 31"); - - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_SUBMENU | MIIM_TYPE | MIIM_STATE; - mii.fType = MFT_STRING; - mii.fState = MFS_ENABLED; - mii.dwTypeData = szText; - mii.hSubMenu = ShellView_BuildFileMenu(This); - - /*insert our menu into the menu bar*/ - if(mii.hSubMenu) - { - InsertMenuItemA(This->hMenu, FCIDM_MENU_HELP, FALSE, &mii); - } - - /*get the view menu so we can merge with it*/ - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_SUBMENU; - - if(GetMenuItemInfoA(This->hMenu, FCIDM_MENU_VIEW, FALSE, &mii)) - { - ShellView_MergeViewMenu(This, mii.hSubMenu); - } - - /*add the items that should only be added if we have the focus*/ - if(SVUIA_ACTIVATE_FOCUS == uState) - { - /*get the file menu so we can merge with it */ - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_SUBMENU; - - if(GetMenuItemInfoA(This->hMenu, FCIDM_MENU_FILE, FALSE, &mii)) - { - ShellView_MergeFileMenu(This, mii.hSubMenu); - } - } - TRACE("-- before fnSetMenuSB\n"); - IShellBrowser_SetMenuSB(This->pShellBrowser, This->hMenu, 0, This->hWnd); - } - } - This->uState = uState; - TRACE("--\n"); - return S_OK; -} - -/********************************************************** -* ShellView_OnSetFocus() -* -*/ -static LRESULT ShellView_OnSetFocus(IShellViewImpl * This) -{ - TRACE("%p\n",This); - - /* Tell the browser one of our windows has received the focus. This - should always be done before merging menus (OnActivate merges the - menus) if one of our windows has the focus.*/ - - IShellBrowser_OnViewWindowActive(This->pShellBrowser,(IShellView*) This); - ShellView_OnActivate(This, SVUIA_ACTIVATE_FOCUS); - - /* Set the focus to the listview */ - SetFocus(This->hWndList); - - /* Notify the ICommDlgBrowser interface */ - OnStateChange(This,CDBOSC_SETFOCUS); - - return 0; -} - -/********************************************************** -* ShellView_OnKillFocus() -*/ -static LRESULT ShellView_OnKillFocus(IShellViewImpl * This) -{ - TRACE("(%p) stub\n",This); - - ShellView_OnActivate(This, SVUIA_ACTIVATE_NOFOCUS); - /* Notify the ICommDlgBrowser */ - OnStateChange(This,CDBOSC_KILLFOCUS); - - return 0; -} - -/********************************************************** -* ShellView_OnCommand() -* -* NOTES -* the CmdID's are the ones from the context menu -*/ -static LRESULT ShellView_OnCommand(IShellViewImpl * This,DWORD dwCmdID, DWORD dwCmd, HWND hwndCmd) -{ - TRACE("(%p)->(0x%08x 0x%08x %p) stub\n",This, dwCmdID, dwCmd, hwndCmd); - - switch(dwCmdID) - { - case FCIDM_SHVIEW_SMALLICON: - This->FolderSettings.ViewMode = FVM_SMALLICON; - SetStyle (This, LVS_SMALLICON, LVS_TYPEMASK); - CheckToolbar(This); - break; - - case FCIDM_SHVIEW_BIGICON: - This->FolderSettings.ViewMode = FVM_ICON; - SetStyle (This, LVS_ICON, LVS_TYPEMASK); - CheckToolbar(This); - break; - - case FCIDM_SHVIEW_LISTVIEW: - This->FolderSettings.ViewMode = FVM_LIST; - SetStyle (This, LVS_LIST, LVS_TYPEMASK); - CheckToolbar(This); - break; - - case FCIDM_SHVIEW_REPORTVIEW: - This->FolderSettings.ViewMode = FVM_DETAILS; - SetStyle (This, LVS_REPORT, LVS_TYPEMASK); - CheckToolbar(This); - break; - - /* the menu-ID's for sorting are 0x30... see shrec.rc */ - case 0x30: - case 0x31: - case 0x32: - case 0x33: - This->ListViewSortInfo.nHeaderID = (LPARAM) (dwCmdID - 0x30); - This->ListViewSortInfo.bIsAscending = TRUE; - This->ListViewSortInfo.nLastHeaderID = This->ListViewSortInfo.nHeaderID; - SendMessageA(This->hWndList, LVM_SORTITEMS, (WPARAM) &This->ListViewSortInfo, (LPARAM)ShellView_ListViewCompareItems); - break; - - default: - TRACE("-- COMMAND 0x%04x unhandled\n", dwCmdID); - } - return 0; -} - -/********************************************************** -* ShellView_OnNotify() -*/ - -static LRESULT ShellView_OnNotify(IShellViewImpl * This, UINT CtlID, LPNMHDR lpnmh) -{ LPNMLISTVIEW lpnmlv = (LPNMLISTVIEW)lpnmh; - NMLVDISPINFOW *lpdi = (NMLVDISPINFOW *)lpnmh; - LPITEMIDLIST pidl; - - TRACE("%p CtlID=%u lpnmh->code=%x\n",This,CtlID,lpnmh->code); - - switch(lpnmh->code) - { - case NM_SETFOCUS: - TRACE("-- NM_SETFOCUS %p\n",This); - ShellView_OnSetFocus(This); - break; - - case NM_KILLFOCUS: - TRACE("-- NM_KILLFOCUS %p\n",This); - ShellView_OnDeactivate(This); - /* Notify the ICommDlgBrowser interface */ - OnStateChange(This,CDBOSC_KILLFOCUS); - break; - - case NM_CUSTOMDRAW: - TRACE("-- NM_CUSTOMDRAW %p\n",This); - return CDRF_DODEFAULT; - - case NM_RELEASEDCAPTURE: - TRACE("-- NM_RELEASEDCAPTURE %p\n",This); - break; - - case NM_CLICK: - TRACE("-- NM_CLICK %p\n",This); - break; - - case NM_RCLICK: - TRACE("-- NM_RCLICK %p\n",This); - break; - - case NM_DBLCLK: - TRACE("-- NM_DBLCLK %p\n",This); - if (OnDefaultCommand(This) != S_OK) ShellView_OpenSelectedItems(This); - break; - - case NM_RETURN: - TRACE("-- NM_RETURN %p\n",This); - if (OnDefaultCommand(This) != S_OK) ShellView_OpenSelectedItems(This); - break; - - case HDN_ENDTRACKW: - TRACE("-- HDN_ENDTRACKW %p\n",This); - /*nColumn1 = ListView_GetColumnWidth(This->hWndList, 0); - nColumn2 = ListView_GetColumnWidth(This->hWndList, 1);*/ - break; - - case LVN_DELETEITEM: - TRACE("-- LVN_DELETEITEM %p\n",This); - SHFree((LPITEMIDLIST)lpnmlv->lParam); /*delete the pidl because we made a copy of it*/ - break; - - case LVN_DELETEALLITEMS: - TRACE("-- LVN_DELETEALLITEMS %p\n",This); - return FALSE; - - case LVN_INSERTITEM: - TRACE("-- LVN_INSERTITEM (STUB)%p\n",This); - break; - - case LVN_ITEMACTIVATE: - TRACE("-- LVN_ITEMACTIVATE %p\n",This); - OnStateChange(This, CDBOSC_SELCHANGE); /* the browser will get the IDataObject now */ - break; - - case LVN_COLUMNCLICK: - This->ListViewSortInfo.nHeaderID = lpnmlv->iSubItem; - if(This->ListViewSortInfo.nLastHeaderID == This->ListViewSortInfo.nHeaderID) - { - This->ListViewSortInfo.bIsAscending = !This->ListViewSortInfo.bIsAscending; - } - else - { - This->ListViewSortInfo.bIsAscending = TRUE; - } - This->ListViewSortInfo.nLastHeaderID = This->ListViewSortInfo.nHeaderID; - - SendMessageW(lpnmlv->hdr.hwndFrom, LVM_SORTITEMS, (WPARAM) &This->ListViewSortInfo, (LPARAM)ShellView_ListViewCompareItems); - break; - - case LVN_GETDISPINFOA: - case LVN_GETDISPINFOW: - TRACE("-- LVN_GETDISPINFO %p\n",This); - pidl = (LPITEMIDLIST)lpdi->item.lParam; - - if(lpdi->item.mask & LVIF_TEXT) /* text requested */ - { - if (This->pSF2Parent) - { - SHELLDETAILS sd; - IShellFolder2_GetDetailsOf(This->pSF2Parent, pidl, lpdi->item.iSubItem, &sd); - if (lpnmh->code == LVN_GETDISPINFOA) - { - /* shouldn't happen */ - NMLVDISPINFOA *lpdiA = (NMLVDISPINFOA *)lpnmh; - StrRetToStrNA( lpdiA->item.pszText, lpdiA->item.cchTextMax, &sd.str, NULL); - TRACE("-- text=%s\n",lpdiA->item.pszText); - } - else /* LVN_GETDISPINFOW */ - { - StrRetToStrNW( lpdi->item.pszText, lpdi->item.cchTextMax, &sd.str, NULL); - TRACE("-- text=%s\n",debugstr_w(lpdi->item.pszText)); - } - } - else - { - FIXME("no SF2\n"); - } - } - if(lpdi->item.mask & LVIF_IMAGE) /* image requested */ - { - lpdi->item.iImage = SHMapPIDLToSystemImageListIndex(This->pSFParent, pidl, 0); - } - break; - - case LVN_ITEMCHANGED: - TRACE("-- LVN_ITEMCHANGED %p\n",This); - OnStateChange(This, CDBOSC_SELCHANGE); /* the browser will get the IDataObject now */ - break; - - case LVN_BEGINDRAG: - case LVN_BEGINRDRAG: - TRACE("-- LVN_BEGINDRAG\n"); - - if (ShellView_GetSelections(This)) - { - IDataObject * pda; - DWORD dwAttributes = SFGAO_CANLINK; - DWORD dwEffect = DROPEFFECT_COPY | DROPEFFECT_MOVE; - - if (SUCCEEDED(IShellFolder_GetUIObjectOf(This->pSFParent, This->hWnd, This->cidl, (LPCITEMIDLIST*)This->apidl, &IID_IDataObject,0,(LPVOID *)&pda))) - { - IDropSource * pds = (IDropSource*)&(This->lpvtblDropSource); /* own DropSource interface */ - - if (SUCCEEDED(IShellFolder_GetAttributesOf(This->pSFParent, This->cidl, (LPCITEMIDLIST*)This->apidl, &dwAttributes))) - { - if (dwAttributes & SFGAO_CANLINK) - { - dwEffect |= DROPEFFECT_LINK; - } - } - - if (pds) - { - DWORD dwEffect2; - DoDragDrop(pda, pds, dwEffect, &dwEffect2); - } - IDataObject_Release(pda); - } - } - break; - - case LVN_BEGINLABELEDITW: - { - DWORD dwAttr = SFGAO_CANRENAME; - pidl = (LPITEMIDLIST)lpdi->item.lParam; - - TRACE("-- LVN_BEGINLABELEDITW %p\n",This); - - IShellFolder_GetAttributesOf(This->pSFParent, 1, (LPCITEMIDLIST*)&pidl, &dwAttr); - if (SFGAO_CANRENAME & dwAttr) - { - return FALSE; - } - return TRUE; - } - - case LVN_ENDLABELEDITW: - { - TRACE("-- LVN_ENDLABELEDITW %p\n",This); - if (lpdi->item.pszText) - { - HRESULT hr; - LVITEMW lvItem; - - lvItem.iItem = lpdi->item.iItem; - lvItem.iSubItem = 0; - lvItem.mask = LVIF_PARAM; - SendMessageW(This->hWndList, LVM_GETITEMW, 0, (LPARAM) &lvItem); - - pidl = (LPITEMIDLIST)lpdi->item.lParam; - hr = IShellFolder_SetNameOf(This->pSFParent, 0, pidl, lpdi->item.pszText, SHGDN_INFOLDER, &pidl); - - if(SUCCEEDED(hr) && pidl) - { - lvItem.mask = LVIF_PARAM; - lvItem.lParam = (LPARAM)pidl; - SendMessageW(This->hWndList, LVM_SETITEMW, 0, (LPARAM) &lvItem); - return TRUE; - } - } - return FALSE; - } - - case LVN_KEYDOWN: - { - /* MSG msg; - msg.hwnd = This->hWnd; - msg.message = WM_KEYDOWN; - msg.wParam = plvKeyDown->wVKey; - msg.lParam = 0; - msg.time = 0; - msg.pt = 0;*/ - - LPNMLVKEYDOWN plvKeyDown = (LPNMLVKEYDOWN) lpnmh; - SHORT ctrl = GetKeyState(VK_CONTROL) & 0x8000; - - /* initiate a rename of the selected file or directory */ - if(plvKeyDown->wVKey == VK_F2) - { - /* see how many files are selected */ - int i = ListView_GetSelectedCount(This->hWndList); - - /* get selected item */ - if(i == 1) - { - /* get selected item */ - i = ListView_GetNextItem(This->hWndList, -1, - LVNI_SELECTED); - - SendMessageW(This->hWndList, LVM_ENSUREVISIBLE, i, 0); - SendMessageW(This->hWndList, LVM_EDITLABELW, i, 0); - } - } -#if 0 - TranslateAccelerator(This->hWnd, This->hAccel, &msg) -#endif - else if(plvKeyDown->wVKey == VK_DELETE) - { - UINT i; - int item_index; - LVITEMA item; - LPITEMIDLIST* pItems; - ISFHelper *psfhlp; - - IShellFolder_QueryInterface(This->pSFParent, &IID_ISFHelper, - (LPVOID*)&psfhlp); - - if (psfhlp == NULL) - break; - - if(!(i = ListView_GetSelectedCount(This->hWndList))) - break; - - /* allocate memory for the pidl array */ - pItems = HeapAlloc(GetProcessHeap(), 0, - sizeof(LPITEMIDLIST) * i); - - /* retrieve all selected items */ - i = 0; - item_index = -1; - while(ListView_GetSelectedCount(This->hWndList) > i) - { - /* get selected item */ - item_index = ListView_GetNextItem(This->hWndList, - item_index, LVNI_SELECTED); - item.iItem = item_index; - item.mask = LVIF_PARAM; - SendMessageA(This->hWndList, LVM_GETITEMA, 0, (LPARAM) &item); - - /* get item pidl */ - pItems[i] = (LPITEMIDLIST)item.lParam; - - i++; - } - - /* perform the item deletion */ - ISFHelper_DeleteItems(psfhlp, i, (LPCITEMIDLIST*)pItems); - - /* free pidl array memory */ - HeapFree(GetProcessHeap(), 0, pItems); - } - - /* Initiate a refresh */ - else if(plvKeyDown->wVKey == VK_F5) - { - IShellView_Refresh((IShellView*)This); - } - else if(plvKeyDown->wVKey == VK_BACK) - { - LPSHELLBROWSER lpSb; - if((lpSb = (LPSHELLBROWSER)SendMessageW(This->hWndParent, CWM_GETISHELLBROWSER, 0, 0))) - { - IShellBrowser_BrowseObject(lpSb, NULL, SBSP_PARENT); - } - } - else if(plvKeyDown->wVKey == 'C' && ctrl) - { - if (ShellView_GetSelections(This)) - { - IDataObject * pda; - - if (SUCCEEDED(IShellFolder_GetUIObjectOf(This->pSFParent, This->hWnd, This->cidl, (LPCITEMIDLIST*)This->apidl, &IID_IDataObject,0,(LPVOID *)&pda))) - { - HRESULT hr = OleSetClipboard(pda); - if (FAILED(hr)) - { - WARN("OleSetClipboard failed"); - } - IDataObject_Release(pda); - } - } - break; - } - else if(plvKeyDown->wVKey == 'V' && ctrl) - { - IDataObject * pda; - STGMEDIUM medium; - FORMATETC formatetc; - LPITEMIDLIST * apidl; - LPITEMIDLIST pidl; - IShellFolder *psfFrom = NULL, *psfDesktop, *psfTarget = NULL; - LPIDA lpcida; - ISFHelper *psfhlpdst, *psfhlpsrc; - HRESULT hr; - - hr = OleGetClipboard(&pda); - if (hr != S_OK) - { - ERR("Failed to get clipboard with %lx\n", hr); - return E_FAIL; - } - - InitFormatEtc(formatetc, RegisterClipboardFormatW(CFSTR_SHELLIDLIST), TYMED_HGLOBAL); - hr = IDataObject_GetData(pda,&formatetc,&medium); - - if (FAILED(hr)) - { - ERR("Failed to get clipboard data with %lx\n", hr); - IDataObject_Release(pda); - return E_FAIL; - } - - /* lock the handle */ - lpcida = GlobalLock(medium.u.hGlobal); - if (!lpcida) - { - ERR("failed to lock pidl\n"); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - return E_FAIL; - } - - /* convert the data into pidl */ - apidl = _ILCopyCidaToaPidl(&pidl, lpcida); - - if (!apidl) - { - ERR("failed to copy pidl\n"); - return E_FAIL; - } - - if (FAILED(SHGetDesktopFolder(&psfDesktop))) - { - ERR("failed to get desktop folder\n"); - SHFree(pidl); - _ILFreeaPidl(apidl, lpcida->cidl); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - return E_FAIL; - } - - if (_ILIsDesktop(pidl)) - { - /* use desktop shellfolder */ - psfFrom = psfDesktop; - } - else if (FAILED(IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (LPVOID*)&psfFrom))) - { - ERR("no IShellFolder\n"); - - IShellFolder_Release(psfDesktop); - SHFree(pidl); - _ILFreeaPidl(apidl, lpcida->cidl); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - - return E_FAIL; - } - - psfTarget = This->pSFParent; - - - /* get source and destination shellfolder */ - if (FAILED(IShellFolder_QueryInterface(psfTarget, &IID_ISFHelper, (LPVOID*)&psfhlpdst))) - { - ERR("no IID_ISFHelper for destination\n"); - - IShellFolder_Release(psfFrom); - IShellFolder_Release(psfTarget); - SHFree(pidl); - _ILFreeaPidl(apidl, lpcida->cidl); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - - return E_FAIL; - } - - if (FAILED(IShellFolder_QueryInterface(psfFrom, &IID_ISFHelper, (LPVOID*)&psfhlpsrc))) - { - ERR("no IID_ISFHelper for source\n"); - - ISFHelper_Release(psfhlpdst); - IShellFolder_Release(psfFrom); - IShellFolder_Release(psfTarget); - SHFree(pidl); - _ILFreeaPidl(apidl, lpcida->cidl); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - return E_FAIL; - } - - /* FIXXME - * do we want to perform a copy or move ??? - */ - hr = ISFHelper_CopyItems(psfhlpdst, psfFrom, lpcida->cidl, (LPCITEMIDLIST*)apidl); - - ISFHelper_Release(psfhlpdst); - ISFHelper_Release(psfhlpsrc); - IShellFolder_Release(psfFrom); - SHFree(pidl); - _ILFreeaPidl(apidl, lpcida->cidl); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - TRACE("paste end hr %x\n", hr); - break; - } - else - FIXME("LVN_KEYDOWN key=0x%08x\n",plvKeyDown->wVKey); - } - break; - - default: - TRACE("-- %p WM_COMMAND %x unhandled\n", This, lpnmh->code); - break; - } - return 0; -} - -/********************************************************** -* ShellView_OnChange() -*/ - -static LRESULT ShellView_OnChange(IShellViewImpl * This, LPITEMIDLIST * Pidls, LONG wEventId) -{ - - TRACE("(%p)(%p,%p,0x%08x)\n", This, Pidls[0], Pidls[1], wEventId); - switch(wEventId) - { - case SHCNE_MKDIR: - case SHCNE_CREATE: - LV_AddItem(This, Pidls[0]); - break; - case SHCNE_RMDIR: - case SHCNE_DELETE: - LV_DeleteItem(This, Pidls[0]); - break; - case SHCNE_RENAMEFOLDER: - case SHCNE_RENAMEITEM: - LV_RenameItem(This, Pidls[0], Pidls[1]); - break; - case SHCNE_UPDATEITEM: - break; - } - return TRUE; -} - -/********************************************************** -* ShellView_DoMeasureItem -*/ - -static LRESULT ShellView_DoCustomItem(IShellViewImpl * pThis, HWND hWnd, UINT uMsg, LPARAM lParam) -{ - if (!pThis->pCM) - { - /* no menu */ - ERR("no menu!!!\n"); - return FALSE; - } - - if (pThis->pCM->lpVtbl->HandleMenuMsg(pThis->pCM, uMsg, (WPARAM)hWnd, lParam) == S_OK) - return TRUE; - else - return FALSE; -} - -/********************************************************** -* ShellView_WndProc -*/ - -static LRESULT CALLBACK ShellView_WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam) -{ - IShellViewImpl * pThis = (IShellViewImpl*)GetWindowLongPtrW(hWnd, GWLP_USERDATA); - LPCREATESTRUCTW lpcs; - - TRACE("(hwnd=%p msg=%x wparm=%lx lparm=%lx)\n",hWnd, uMessage, wParam, lParam); - - switch (uMessage) - { - case WM_NCCREATE: - lpcs = (LPCREATESTRUCTW)lParam; - pThis = (IShellViewImpl*)(lpcs->lpCreateParams); - SetWindowLongPtrW(hWnd, GWLP_USERDATA, (ULONG_PTR)pThis); - pThis->hWnd = hWnd; /*set the window handle*/ - break; - - case WM_SIZE: return ShellView_OnSize(pThis,LOWORD(lParam), HIWORD(lParam)); - case WM_SETFOCUS: return ShellView_OnSetFocus(pThis); - case WM_KILLFOCUS: return ShellView_OnKillFocus(pThis); - case WM_CREATE: return ShellView_OnCreate(pThis); - case WM_ACTIVATE: return ShellView_OnActivate(pThis, SVUIA_ACTIVATE_FOCUS); - case WM_NOTIFY: return ShellView_OnNotify(pThis,(UINT)wParam, (LPNMHDR)lParam); - case WM_COMMAND: return ShellView_OnCommand(pThis, - GET_WM_COMMAND_ID(wParam, lParam), - GET_WM_COMMAND_CMD(wParam, lParam), - GET_WM_COMMAND_HWND(wParam, lParam)); - case SHV_CHANGE_NOTIFY: return ShellView_OnChange(pThis, (LPITEMIDLIST*)wParam, (LONG)lParam); - - case WM_CONTEXTMENU: ShellView_DoContextMenu(pThis, LOWORD(lParam), HIWORD(lParam), FALSE); - return 0; - case WM_DRAWITEM: - case WM_MEASUREITEM: - return ShellView_DoCustomItem(pThis, hWnd, uMessage, lParam); - - case WM_SHOWWINDOW: UpdateWindow(pThis->hWndList); - break; - - case WM_GETDLGCODE: return SendMessageW(pThis->hWndList,uMessage,0,0); - - case WM_DESTROY: - RevokeDragDrop(pThis->hWnd); - SHChangeNotifyDeregister(pThis->hNotify); - break; - - case WM_ERASEBKGND: - if ((pThis->FolderSettings.fFlags & FWF_DESKTOP) || - (pThis->FolderSettings.fFlags & FWF_TRANSPARENT)) - return SendMessageW(pThis->hWndParent, WM_ERASEBKGND, wParam, lParam); /* redirect to parent */ - break; - - case WM_SYSCOLORCHANGE: - /* Forward WM_SYSCOLORCHANGE to common controls */ - SendMessage(pThis->hWndList, WM_SYSCOLORCHANGE, 0, 0); - break; - - case CWM_GETISHELLBROWSER: - return (LRESULT)pThis->pShellBrowser; - } - return DefWindowProcW(hWnd, uMessage, wParam, lParam); -} -/********************************************************** -* -* -* The INTERFACE of the IShellView object -* -* -********************************************************** -* IShellView_QueryInterface -*/ -static HRESULT WINAPI IShellView_fnQueryInterface(IShellView * iface,REFIID riid, LPVOID *ppvObj) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - - TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - - *ppvObj = NULL; - - if(IsEqualIID(riid, &IID_IUnknown)) - { - *ppvObj = This; - } - else if(IsEqualIID(riid, &IID_IShellView)) - { - *ppvObj = (IShellView*)This; - } - else if(IsEqualIID(riid, &IID_IOleCommandTarget)) - { - *ppvObj = (IOleCommandTarget*)&(This->lpvtblOleCommandTarget); - } - else if(IsEqualIID(riid, &IID_IDropTarget)) - { - *ppvObj = (IDropTarget*)&(This->lpvtblDropTarget); - } - else if(IsEqualIID(riid, &IID_IDropSource)) - { - *ppvObj = (IDropSource*)&(This->lpvtblDropSource); - } - else if(IsEqualIID(riid, &IID_IViewObject)) - { - *ppvObj = (IViewObject*)&(This->lpvtblViewObject); - } - - if(*ppvObj) - { - IUnknown_AddRef( (IUnknown*)*ppvObj ); - TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj); - return S_OK; - } - TRACE("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -/********************************************************** -* IShellView_AddRef -*/ -static ULONG WINAPI IShellView_fnAddRef(IShellView * iface) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} -/********************************************************** -* IShellView_Release -*/ -static ULONG WINAPI IShellView_fnRelease(IShellView * iface) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(count=%i)\n", This, refCount + 1); - - if (!refCount) - { - TRACE(" destroying IShellView(%p)\n",This); - - DestroyWindow(This->hWndList); - - if(This->pSFParent) - IShellFolder_Release(This->pSFParent); - - if(This->pSF2Parent) - IShellFolder2_Release(This->pSF2Parent); - - SHFree(This->apidl); - - if(This->pAdvSink) - IAdviseSink_Release(This->pAdvSink); - - if (This->pCM) - IContextMenu_Release(This->pCM); - - HeapFree(GetProcessHeap(),0,This); - } - return refCount; -} - -/********************************************************** -* ShellView_GetWindow -*/ -static HRESULT WINAPI IShellView_fnGetWindow(IShellView * iface,HWND * phWnd) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - - TRACE("(%p)\n",This); - - *phWnd = This->hWnd; - - return S_OK; -} - -static HRESULT WINAPI IShellView_fnContextSensitiveHelp(IShellView * iface,BOOL fEnterMode) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - - FIXME("(%p) stub\n",This); - - return E_NOTIMPL; -} - -/********************************************************** -* IShellView_TranslateAccelerator -* -* FIXME: -* use the accel functions -*/ -static HRESULT WINAPI IShellView_fnTranslateAccelerator(IShellView * iface,LPMSG lpmsg) -{ -#if 0 - IShellViewImpl *This = (IShellViewImpl *)iface; - - FIXME("(%p)->(%p: hwnd=%x msg=%x lp=%x wp=%x) stub\n",This,lpmsg, lpmsg->hwnd, lpmsg->message, lpmsg->lParam, lpmsg->wParam); -#endif - - if ((lpmsg->message>=WM_KEYFIRST) && (lpmsg->message>=WM_KEYLAST)) - { - TRACE("-- key=0x04%lx\n",lpmsg->wParam) ; - } - return S_FALSE; /* not handled */ -} - -static HRESULT WINAPI IShellView_fnEnableModeless(IShellView * iface,BOOL fEnable) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - - FIXME("(%p) stub\n",This); - - return E_NOTIMPL; -} - -static HRESULT WINAPI IShellView_fnUIActivate(IShellView * iface,UINT uState) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - -/* - CHAR szName[MAX_PATH]; -*/ - LRESULT lResult; - int nPartArray[1] = {-1}; - - TRACE("(%p)->(state=%x) stub\n",This, uState); - - /*don't do anything if the state isn't really changing*/ - if(This->uState == uState) - { - return S_OK; - } - - /*OnActivate handles the menu merging and internal state*/ - ShellView_OnActivate(This, uState); - - /*only do This if we are active*/ - if(uState != SVUIA_DEACTIVATE) - { - -/* - GetFolderPath is not a method of IShellFolder - IShellFolder_GetFolderPath( This->pSFParent, szName, sizeof(szName) ); -*/ - /* set the number of parts */ - IShellBrowser_SendControlMsg(This->pShellBrowser, FCW_STATUS, SB_SETPARTS, 1, - (LPARAM)nPartArray, &lResult); - - /* set the text for the parts */ -/* - IShellBrowser_SendControlMsg(This->pShellBrowser, FCW_STATUS, SB_SETTEXTA, - 0, (LPARAM)szName, &lResult); -*/ - } - - return S_OK; -} - -static HRESULT WINAPI IShellView_fnRefresh(IShellView * iface) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - - TRACE("(%p)\n",This); - - SendMessageW(This->hWndList, LVM_DELETEALLITEMS, 0, 0); - ShellView_FillList(This); - - return S_OK; -} - -static HRESULT WINAPI IShellView_fnCreateViewWindow( - IShellView * iface, - IShellView *lpPrevView, - LPCFOLDERSETTINGS lpfs, - IShellBrowser * psb, - RECT * prcView, - HWND *phWnd) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - - WNDCLASSW wc; - *phWnd = 0; - - - TRACE("(%p)->(shlview=%p set=%p shlbrs=%p rec=%p hwnd=%p) incomplete\n",This, lpPrevView,lpfs, psb, prcView, phWnd); - if (lpfs != NULL) - TRACE("-- vmode=%x flags=%x\n", lpfs->ViewMode, lpfs->fFlags); - if (prcView != NULL) - TRACE("-- left=%i top=%i right=%i bottom=%i\n", prcView->left, prcView->top, prcView->right, prcView->bottom); - - /* Validate the Shell Browser */ - if (psb == NULL) - return E_UNEXPECTED; - - /*set up the member variables*/ - This->pShellBrowser = psb; - This->FolderSettings = *lpfs; - - /*get our parent window*/ - IShellBrowser_AddRef(This->pShellBrowser); - IShellBrowser_GetWindow(This->pShellBrowser, &(This->hWndParent)); - - /* try to get the ICommDlgBrowserInterface, adds a reference !!! */ - This->pCommDlgBrowser=NULL; - if ( SUCCEEDED (IShellBrowser_QueryInterface( This->pShellBrowser, - (REFIID)&IID_ICommDlgBrowser, (LPVOID*) &This->pCommDlgBrowser))) - { - TRACE("-- CommDlgBrowser\n"); - } - - /*if our window class has not been registered, then do so*/ - if(!GetClassInfoW(shell32_hInstance, SV_CLASS_NAME, &wc)) - { - ZeroMemory(&wc, sizeof(wc)); - wc.style = 0; - wc.lpfnWndProc = ShellView_WndProc; - wc.cbClsExtra = 0; - wc.cbWndExtra = 0; - wc.hInstance = shell32_hInstance; - wc.hIcon = 0; - wc.hCursor = LoadCursorW(0, (LPWSTR)IDC_ARROW); - wc.hbrBackground = (HBRUSH) (COLOR_BACKGROUND+1); - wc.lpszMenuName = NULL; - wc.lpszClassName = SV_CLASS_NAME; - - if(!RegisterClassW(&wc)) - return E_FAIL; - } - - *phWnd = CreateWindowExW(0, - SV_CLASS_NAME, - NULL, - WS_CHILD | WS_TABSTOP, - prcView->left, - prcView->top, - prcView->right - prcView->left, - prcView->bottom - prcView->top, - This->hWndParent, - 0, - shell32_hInstance, - (LPVOID)This); - - CheckToolbar(This); - - if(!*phWnd) return E_FAIL; - - SetWindowPos(*phWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); - UpdateWindow(*phWnd); - - return S_OK; -} - -static HRESULT WINAPI IShellView_fnDestroyViewWindow(IShellView * iface) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - - TRACE("(%p)\n",This); - - /*Make absolutely sure all our UI is cleaned up.*/ - IShellView_UIActivate((IShellView*)This, SVUIA_DEACTIVATE); - - if(This->hMenu) - { - DestroyMenu(This->hMenu); - } - - DestroyWindow(This->hWnd); - if(This->pShellBrowser) IShellBrowser_Release(This->pShellBrowser); - if(This->pCommDlgBrowser) ICommDlgBrowser_Release(This->pCommDlgBrowser); - - - return S_OK; -} - -static HRESULT WINAPI IShellView_fnGetCurrentInfo(IShellView * iface, LPFOLDERSETTINGS lpfs) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - - TRACE("(%p)->(%p) vmode=%x flags=%x\n",This, lpfs, - This->FolderSettings.ViewMode, This->FolderSettings.fFlags); - - if (!lpfs) return E_INVALIDARG; - - *lpfs = This->FolderSettings; - return NOERROR; -} - -static HRESULT WINAPI IShellView_fnAddPropertySheetPages(IShellView * iface, DWORD dwReserved,LPFNADDPROPSHEETPAGE lpfn, LPARAM lparam) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - - FIXME("(%p) stub\n",This); - - return E_NOTIMPL; -} - -static HRESULT WINAPI IShellView_fnSaveViewState(IShellView * iface) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - - FIXME("(%p) stub\n",This); - - return S_OK; -} - -static HRESULT WINAPI IShellView_fnSelectItem( - IShellView * iface, - LPCITEMIDLIST pidl, - UINT uFlags) -{ - IShellViewImpl *This = (IShellViewImpl *)iface; - int i; - - TRACE("(%p)->(pidl=%p, 0x%08x) stub\n",This, pidl, uFlags); - - i = LV_FindItemByPidl(This, pidl); - - if (i != -1) - { - LVITEMW lvItem; - - if(uFlags & SVSI_ENSUREVISIBLE) - SendMessageW(This->hWndList, LVM_ENSUREVISIBLE, i, 0); - - lvItem.mask = LVIF_STATE; - lvItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED; - lvItem.iItem = 0; - lvItem.iSubItem = 0; - - while(SendMessageW(This->hWndList, LVM_GETITEMW, 0, (LPARAM) &lvItem)) - { - if (lvItem.iItem == i) - { - if (uFlags & SVSI_SELECT) - lvItem.state |= LVIS_SELECTED; - else - lvItem.state &= ~LVIS_SELECTED; - - if(uFlags & SVSI_FOCUSED) - lvItem.state &= ~LVIS_FOCUSED; - } - else - { - if (uFlags & SVSI_DESELECTOTHERS) - lvItem.state &= ~LVIS_SELECTED; - } - SendMessageW(This->hWndList, LVM_SETITEMW, 0, (LPARAM) &lvItem); - lvItem.iItem++; - } - - - if(uFlags & SVSI_EDIT) - SendMessageW(This->hWndList, LVM_EDITLABELW, i, 0); - - } - return S_OK; -} - -static HRESULT WINAPI IShellView_fnGetItemObject(IShellView * iface, UINT uItem, REFIID riid, LPVOID *ppvOut) -{ - HRESULT hr = E_FAIL; - IShellViewImpl *This = (IShellViewImpl *)iface; - - TRACE("(%p)->(uItem=0x%08x,\n\tIID=%s, ppv=%p)\n",This, uItem, debugstr_guid(riid), ppvOut); - - *ppvOut = NULL; - - switch(uItem) - { - case SVGIO_BACKGROUND: - //*ppvOut = ISvBgCm_Constructor(This->pSFParent, FALSE); - CDefFolderMenu_Create2(NULL, NULL, This->cidl, (LPCITEMIDLIST*)This->apidl, This->pSFParent, NULL, 0, NULL, (IContextMenu**)ppvOut); - if (!ppvOut) hr = E_OUTOFMEMORY; - break; - - case SVGIO_SELECTION: - ShellView_GetSelections(This); - hr = IShellFolder_GetUIObjectOf(This->pSFParent, This->hWnd, This->cidl, (LPCITEMIDLIST*)This->apidl, riid, 0, ppvOut); - break; - } - TRACE("-- (%p)->(interface=%p)\n",This, *ppvOut); - - return hr; -} - -static const IShellViewVtbl svvt = -{ - IShellView_fnQueryInterface, - IShellView_fnAddRef, - IShellView_fnRelease, - IShellView_fnGetWindow, - IShellView_fnContextSensitiveHelp, - IShellView_fnTranslateAccelerator, - IShellView_fnEnableModeless, - IShellView_fnUIActivate, - IShellView_fnRefresh, - IShellView_fnCreateViewWindow, - IShellView_fnDestroyViewWindow, - IShellView_fnGetCurrentInfo, - IShellView_fnAddPropertySheetPages, - IShellView_fnSaveViewState, - IShellView_fnSelectItem, - IShellView_fnGetItemObject -}; - - -/********************************************************** - * ISVOleCmdTarget_QueryInterface (IUnknown) - */ -static HRESULT WINAPI ISVOleCmdTarget_QueryInterface( - IOleCommandTarget * iface, - REFIID iid, - LPVOID* ppvObj) -{ - IShellViewImpl *This = impl_from_IOleCommandTarget(iface); - - return IShellFolder_QueryInterface((IShellFolder*)This, iid, ppvObj); -} - -/********************************************************** - * ISVOleCmdTarget_AddRef (IUnknown) - */ -static ULONG WINAPI ISVOleCmdTarget_AddRef( - IOleCommandTarget * iface) -{ - IShellViewImpl *This = impl_from_IOleCommandTarget(iface); - - return IShellFolder_AddRef((IShellFolder*)This); -} - -/********************************************************** - * ISVOleCmdTarget_Release (IUnknown) - */ -static ULONG WINAPI ISVOleCmdTarget_Release( - IOleCommandTarget * iface) -{ - IShellViewImpl *This = impl_from_IOleCommandTarget(iface); - - return IShellFolder_Release((IShellFolder*)This); -} - -/********************************************************** - * ISVOleCmdTarget_QueryStatus (IOleCommandTarget) - */ -static HRESULT WINAPI ISVOleCmdTarget_QueryStatus( - IOleCommandTarget *iface, - const GUID* pguidCmdGroup, - ULONG cCmds, - OLECMD * prgCmds, - OLECMDTEXT* pCmdText) -{ - UINT i; - IShellViewImpl *This = impl_from_IOleCommandTarget(iface); - - FIXME("(%p)->(%p(%s) 0x%08x %p %p\n", - This, pguidCmdGroup, debugstr_guid(pguidCmdGroup), cCmds, prgCmds, pCmdText); - - if (!prgCmds) - return E_POINTER; - for (i = 0; i < cCmds; i++) - { - FIXME("\tprgCmds[%d].cmdID = %d\n", i, prgCmds[i].cmdID); - prgCmds[i].cmdf = 0; - } - return OLECMDERR_E_UNKNOWNGROUP; -} - -/********************************************************** - * ISVOleCmdTarget_Exec (IOleCommandTarget) - * - * nCmdID is the OLECMDID_* enumeration - */ -static HRESULT WINAPI ISVOleCmdTarget_Exec( - IOleCommandTarget *iface, - const GUID* pguidCmdGroup, - DWORD nCmdID, - DWORD nCmdexecopt, - VARIANT* pvaIn, - VARIANT* pvaOut) -{ - IShellViewImpl *This = impl_from_IOleCommandTarget(iface); - - FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08x Opt:0x%08x %p %p)\n", - This, debugstr_guid(pguidCmdGroup), nCmdID, nCmdexecopt, pvaIn, pvaOut); - - if (IsEqualIID(pguidCmdGroup, &CGID_Explorer) && - (nCmdID == 0x29) && - (nCmdexecopt == 4) && pvaOut) - return S_OK; - if (IsEqualIID(pguidCmdGroup, &CGID_ShellDocView) && - (nCmdID == 9) && - (nCmdexecopt == 0)) - return 1; - - return OLECMDERR_E_UNKNOWNGROUP; -} - -static const IOleCommandTargetVtbl ctvt = -{ - ISVOleCmdTarget_QueryInterface, - ISVOleCmdTarget_AddRef, - ISVOleCmdTarget_Release, - ISVOleCmdTarget_QueryStatus, - ISVOleCmdTarget_Exec -}; - -/********************************************************** - * ISVDropTarget implementation - */ - -static HRESULT WINAPI ISVDropTarget_QueryInterface( - IDropTarget *iface, - REFIID riid, - LPVOID *ppvObj) -{ - IShellViewImpl *This = impl_from_IDropTarget(iface); - - TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - - return IShellFolder_QueryInterface((IShellFolder*)This, riid, ppvObj); -} - -static ULONG WINAPI ISVDropTarget_AddRef( IDropTarget *iface) -{ - IShellViewImpl *This = impl_from_IDropTarget(iface); - - TRACE("(%p)->(count=%u)\n",This,This->ref); - - return IShellFolder_AddRef((IShellFolder*)This); -} - -static ULONG WINAPI ISVDropTarget_Release( IDropTarget *iface) -{ - IShellViewImpl *This = impl_from_IDropTarget(iface); - - TRACE("(%p)->(count=%u)\n",This,This->ref); - - return IShellFolder_Release((IShellFolder*)This); -} - -/****************************************************************************** - * drag_notify_subitem [Internal] - * - * Figure out the shellfolder object, which is currently under the mouse cursor - * and notify it via the IDropTarget interface. - */ - -#define SCROLLAREAWIDTH 20 - -static HRESULT drag_notify_subitem(IShellViewImpl *This, DWORD grfKeyState, POINTL pt, - DWORD *pdwEffect) -{ - LVHITTESTINFO htinfo; - LVITEMW lvItem; - LONG lResult; - HRESULT hr; - RECT clientRect; - - /* Map from global to client coordinates and query the index of the listview-item, which is - * currently under the mouse cursor. */ - htinfo.pt.x = pt.x; - htinfo.pt.y = pt.y; - htinfo.flags = LVHT_ONITEM; - ScreenToClient(This->hWndList, &htinfo.pt); - lResult = SendMessageW(This->hWndList, LVM_HITTEST, 0, (LPARAM)&htinfo); - - /* Send WM_*SCROLL messages every 250 ms during drag-scrolling */ - GetClientRect(This->hWndList, &clientRect); - if (htinfo.pt.x == This->ptLastMousePos.x && htinfo.pt.y == This->ptLastMousePos.y && - (htinfo.pt.x < SCROLLAREAWIDTH || htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH || - htinfo.pt.y < SCROLLAREAWIDTH || htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH )) - { - This->cScrollDelay = (This->cScrollDelay + 1) % 5; /* DragOver is called every 50 ms */ - if (This->cScrollDelay == 0) { /* Mouse did hover another 250 ms over the scroll-area */ - if (htinfo.pt.x < SCROLLAREAWIDTH) - SendMessageW(This->hWndList, WM_HSCROLL, SB_LINEUP, 0); - if (htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH) - SendMessageW(This->hWndList, WM_HSCROLL, SB_LINEDOWN, 0); - if (htinfo.pt.y < SCROLLAREAWIDTH) - SendMessageW(This->hWndList, WM_VSCROLL, SB_LINEUP, 0); - if (htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH) - SendMessageW(This->hWndList, WM_VSCROLL, SB_LINEDOWN, 0); - } - } else { - This->cScrollDelay = 0; /* Reset, if the cursor is not over the listview's scroll-area */ - } - This->ptLastMousePos = htinfo.pt; - - /* If we are still over the previous sub-item, notify it via DragOver and return. */ - if (This->pCurDropTarget && lResult == This->iDragOverItem) - return IDropTarget_DragOver(This->pCurDropTarget, grfKeyState, pt, pdwEffect); - - /* We've left the previous sub-item, notify it via DragLeave and Release it. */ - if (This->pCurDropTarget) { - IDropTarget_DragLeave(This->pCurDropTarget); - IDropTarget_Release(This->pCurDropTarget); - This->pCurDropTarget = NULL; - } - - This->iDragOverItem = lResult; - if (lResult == -1) { - /* We are not above one of the listview's subitems. Bind to the parent folder's - * DropTarget interface. */ - hr = IShellFolder_QueryInterface(This->pSFParent, &IID_IDropTarget, - (LPVOID*)&This->pCurDropTarget); - } else { - /* Query the relative PIDL of the shellfolder object represented by the currently - * dragged over listview-item ... */ - lvItem.mask = LVIF_PARAM; - lvItem.iItem = lResult; - lvItem.iSubItem = 0; - SendMessageW(This->hWndList, LVM_GETITEMW, 0, (LPARAM) &lvItem); - - /* ... and bind pCurDropTarget to the IDropTarget interface of an UIObject of this object */ - hr = IShellFolder_GetUIObjectOf(This->pSFParent, This->hWndList, 1, - (LPCITEMIDLIST*)&lvItem.lParam, &IID_IDropTarget, NULL, (LPVOID*)&This->pCurDropTarget); - } - - /* If anything failed, pCurDropTarget should be NULL now, which ought to be a save state. */ - if (FAILED(hr)) - return hr; - - /* Notify the item just entered via DragEnter. */ - return IDropTarget_DragEnter(This->pCurDropTarget, This->pCurDataObject, grfKeyState, pt, pdwEffect); -} - -static HRESULT WINAPI ISVDropTarget_DragEnter(IDropTarget *iface, IDataObject *pDataObject, - DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) -{ - IShellViewImpl *This = impl_from_IDropTarget(iface); - - /* Get a hold on the data object for later calls to DragEnter on the sub-folders */ - This->pCurDataObject = pDataObject; - IDataObject_AddRef(pDataObject); - - return drag_notify_subitem(This, grfKeyState, pt, pdwEffect); -} - -static HRESULT WINAPI ISVDropTarget_DragOver(IDropTarget *iface, DWORD grfKeyState, POINTL pt, - DWORD *pdwEffect) -{ - IShellViewImpl *This = impl_from_IDropTarget(iface); - return drag_notify_subitem(This, grfKeyState, pt, pdwEffect); -} - -static HRESULT WINAPI ISVDropTarget_DragLeave(IDropTarget *iface) { - IShellViewImpl *This = impl_from_IDropTarget(iface); - - if (This->pCurDropTarget) - { - IDropTarget_DragLeave(This->pCurDropTarget); - IDropTarget_Release(This->pCurDropTarget); - This->pCurDropTarget = NULL; - } - - if (This->pCurDataObject != NULL) - { - IDataObject_Release(This->pCurDataObject); - This->pCurDataObject = NULL; - } - - This->iDragOverItem = 0; - - return S_OK; -} - -static HRESULT WINAPI ISVDropTarget_Drop(IDropTarget *iface, IDataObject* pDataObject, - DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) -{ - IShellViewImpl *This = impl_from_IDropTarget(iface); - - if (This->pCurDropTarget) - { - IDropTarget_Drop(This->pCurDropTarget, pDataObject, grfKeyState, pt, pdwEffect); - IDropTarget_Release(This->pCurDropTarget); - This->pCurDropTarget = NULL; - } - - if (This->pCurDataObject != NULL) - { - IDataObject_Release(This->pCurDataObject); - This->pCurDataObject = NULL; - } - - This->iDragOverItem = 0; - - return S_OK; -} - -static const IDropTargetVtbl dtvt = -{ - ISVDropTarget_QueryInterface, - ISVDropTarget_AddRef, - ISVDropTarget_Release, - ISVDropTarget_DragEnter, - ISVDropTarget_DragOver, - ISVDropTarget_DragLeave, - ISVDropTarget_Drop -}; - -/********************************************************** - * ISVDropSource implementation - */ - -static HRESULT WINAPI ISVDropSource_QueryInterface( - IDropSource *iface, - REFIID riid, - LPVOID *ppvObj) -{ - IShellViewImpl *This = impl_from_IDropSource(iface); - - TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - - return IShellFolder_QueryInterface((IShellFolder*)This, riid, ppvObj); -} - -static ULONG WINAPI ISVDropSource_AddRef( IDropSource *iface) -{ - IShellViewImpl *This = impl_from_IDropSource(iface); - - TRACE("(%p)->(count=%u)\n",This,This->ref); - - return IShellFolder_AddRef((IShellFolder*)This); -} - -static ULONG WINAPI ISVDropSource_Release( IDropSource *iface) -{ - IShellViewImpl *This = impl_from_IDropSource(iface); - - TRACE("(%p)->(count=%u)\n",This,This->ref); - - return IShellFolder_Release((IShellFolder*)This); -} -static HRESULT WINAPI ISVDropSource_QueryContinueDrag( - IDropSource *iface, - BOOL fEscapePressed, - DWORD grfKeyState) -{ - IShellViewImpl *This = impl_from_IDropSource(iface); - TRACE("(%p)\n",This); - - if (fEscapePressed) - return DRAGDROP_S_CANCEL; - else if (!(grfKeyState & MK_LBUTTON) && !(grfKeyState & MK_RBUTTON)) - return DRAGDROP_S_DROP; - else - return NOERROR; -} - -static HRESULT WINAPI ISVDropSource_GiveFeedback( - IDropSource *iface, - DWORD dwEffect) -{ - IShellViewImpl *This = impl_from_IDropSource(iface); - TRACE("(%p)\n",This); - - return DRAGDROP_S_USEDEFAULTCURSORS; -} - -static const IDropSourceVtbl dsvt = -{ - ISVDropSource_QueryInterface, - ISVDropSource_AddRef, - ISVDropSource_Release, - ISVDropSource_QueryContinueDrag, - ISVDropSource_GiveFeedback -}; -/********************************************************** - * ISVViewObject implementation - */ - -static HRESULT WINAPI ISVViewObject_QueryInterface( - IViewObject *iface, - REFIID riid, - LPVOID *ppvObj) -{ - IShellViewImpl *This = impl_from_IViewObject(iface); - - TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - - return IShellFolder_QueryInterface((IShellFolder*)This, riid, ppvObj); -} - -static ULONG WINAPI ISVViewObject_AddRef( IViewObject *iface) -{ - IShellViewImpl *This = impl_from_IViewObject(iface); - - TRACE("(%p)->(count=%u)\n",This,This->ref); - - return IShellFolder_AddRef((IShellFolder*)This); -} - -static ULONG WINAPI ISVViewObject_Release( IViewObject *iface) -{ - IShellViewImpl *This = impl_from_IViewObject(iface); - - TRACE("(%p)->(count=%u)\n",This,This->ref); - - return IShellFolder_Release((IShellFolder*)This); -} - -static HRESULT WINAPI ISVViewObject_Draw( - IViewObject *iface, - DWORD dwDrawAspect, - LONG lindex, - void* pvAspect, - DVTARGETDEVICE* ptd, - HDC hdcTargetDev, - HDC hdcDraw, - LPCRECTL lprcBounds, - LPCRECTL lprcWBounds, - BOOL (CALLBACK *pfnContinue)(ULONG_PTR dwContinue), - ULONG_PTR dwContinue) -{ - - IShellViewImpl *This = impl_from_IViewObject(iface); - - FIXME("Stub: This=%p\n",This); - - return E_NOTIMPL; -} -static HRESULT WINAPI ISVViewObject_GetColorSet( - IViewObject *iface, - DWORD dwDrawAspect, - LONG lindex, - void *pvAspect, - DVTARGETDEVICE* ptd, - HDC hicTargetDevice, - LOGPALETTE** ppColorSet) -{ - - IShellViewImpl *This = impl_from_IViewObject(iface); - - FIXME("Stub: This=%p\n",This); - - return E_NOTIMPL; -} -static HRESULT WINAPI ISVViewObject_Freeze( - IViewObject *iface, - DWORD dwDrawAspect, - LONG lindex, - void* pvAspect, - DWORD* pdwFreeze) -{ - - IShellViewImpl *This = impl_from_IViewObject(iface); - - FIXME("Stub: This=%p\n",This); - - return E_NOTIMPL; -} -static HRESULT WINAPI ISVViewObject_Unfreeze( - IViewObject *iface, - DWORD dwFreeze) -{ - - IShellViewImpl *This = impl_from_IViewObject(iface); - - FIXME("Stub: This=%p\n",This); - - return E_NOTIMPL; -} -static HRESULT WINAPI ISVViewObject_SetAdvise( - IViewObject *iface, - DWORD aspects, - DWORD advf, - IAdviseSink* pAdvSink) -{ - - IShellViewImpl *This = impl_from_IViewObject(iface); - - FIXME("partial stub: %p %08x %08x %p\n", - This, aspects, advf, pAdvSink); - - /* FIXME: we set the AdviseSink, but never use it to send any advice */ - This->pAdvSink = pAdvSink; - This->dwAspects = aspects; - This->dwAdvf = advf; - - return S_OK; -} - -static HRESULT WINAPI ISVViewObject_GetAdvise( - IViewObject *iface, - DWORD* pAspects, - DWORD* pAdvf, - IAdviseSink** ppAdvSink) -{ - - IShellViewImpl *This = impl_from_IViewObject(iface); - - TRACE("This=%p pAspects=%p pAdvf=%p ppAdvSink=%p\n", - This, pAspects, pAdvf, ppAdvSink); - - if( ppAdvSink ) - { - IAdviseSink_AddRef( This->pAdvSink ); - *ppAdvSink = This->pAdvSink; - } - if( pAspects ) - *pAspects = This->dwAspects; - if( pAdvf ) - *pAdvf = This->dwAdvf; - - return S_OK; -} - - -static const IViewObjectVtbl vovt = -{ - ISVViewObject_QueryInterface, - ISVViewObject_AddRef, - ISVViewObject_Release, - ISVViewObject_Draw, - ISVViewObject_GetColorSet, - ISVViewObject_Freeze, - ISVViewObject_Unfreeze, - ISVViewObject_SetAdvise, - ISVViewObject_GetAdvise -}; diff --git a/reactos/dll/win32/shell32/shpolicy.c b/reactos/dll/win32/shell32/shpolicy.c deleted file mode 100644 index 9678fb39cee..00000000000 --- a/reactos/dll/win32/shell32/shpolicy.c +++ /dev/null @@ -1,905 +0,0 @@ -/* - * shpolicy.c - Data for shell/system policies. - * - * Copyright 1999 Ian Schmidt - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * NOTES: - * - * Some of these policies can be tweaked via the System Policy - * Editor which came with the Win95 Migration Guide, although - * there doesn't appear to be an updated Win98 version that - * would handle the many new policies introduced since then. - * You could easily write one with the information in - * this file... - * - * Up to date as of SHELL32 v5.00 (W2K) - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -#define SHELL_NO_POLICY 0xffffffff - -typedef struct tagPOLICYDAT -{ - DWORD policy; /* policy value passed to SHRestricted */ - LPCSTR appstr; /* application str such as "Explorer" */ - LPCSTR keystr; /* name of the actual registry key / policy */ - DWORD cache; /* cached value or 0xffffffff for invalid */ -} POLICYDATA, *LPPOLICYDATA; - -/* registry strings */ -static const CHAR strRegistryPolicyA[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies"; -static const WCHAR strRegistryPolicyW[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o', - 's','o','f','t','\\','W','i','n','d','o','w','s','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n', - '\\','P','o','l','i','c','i','e','s',0}; -static const CHAR strPolicyA[] = "Policy"; -static const WCHAR strPolicyW[] = {'P','o','l','i','c','y',0}; - -/* application strings */ - -static const char strExplorer[] = {"Explorer"}; -static const char strActiveDesk[] = {"ActiveDesktop"}; -static const char strWinOldApp[] = {"WinOldApp"}; -static const char strAddRemoveProgs[] = {"AddRemoveProgs"}; - -/* key strings */ - -static const char strNoFileURL[] = {"NoFileUrl"}; -static const char strNoFolderOptions[] = {"NoFolderOptions"}; -static const char strNoChangeStartMenu[] = {"NoChangeStartMenu"}; -static const char strNoWindowsUpdate[] = {"NoWindowsUpdate"}; -static const char strNoSetActiveDesktop[] = {"NoSetActiveDesktop"}; -static const char strNoForgetSoftwareUpdate[] = {"NoForgetSoftwareUpdate"}; -static const char strNoMSAppLogo[] = {"NoMSAppLogo5ChannelNotify"}; -static const char strForceCopyACLW[] = {"ForceCopyACLWithFile"}; -static const char strNoResolveTrk[] = {"NoResolveTrack"}; -static const char strNoResolveSearch[] = {"NoResolveSearch"}; -static const char strNoEditComponent[] = {"NoEditingComponents"}; -static const char strNoMovingBand[] = {"NoMovingBands"}; -static const char strNoCloseDragDrop[] = {"NoCloseDragDropBands"}; -static const char strNoCloseComponent[] = {"NoClosingComponents"}; -static const char strNoDelComponent[] = {"NoDeletingComponents"}; -static const char strNoAddComponent[] = {"NoAddingComponents"}; -static const char strNoComponent[] = {"NoComponents"}; -static const char strNoChangeWallpaper[] = {"NoChangingWallpaper"}; -static const char strNoHTMLWallpaper[] = {"NoHTMLWallpaper"}; -static const char strNoCustomWebView[] = {"NoCustomizeWebView"}; -static const char strClassicShell[] = {"ClassicShell"}; -static const char strClearRecentDocs[] = {"ClearRecentDocsOnExit"}; -static const char strNoFavoritesMenu[] = {"NoFavoritesMenu"}; -static const char strNoActiveDesktopChanges[] = {"NoActiveDesktopChanges"}; -static const char strNoActiveDesktop[] = {"NoActiveDesktop"}; -static const char strNoRecentDocMenu[] = {"NoRecentDocsMenu"}; -static const char strNoRecentDocHistory[] = {"NoRecentDocsHistory"}; -static const char strNoInetIcon[] = {"NoInternetIcon"}; -static const char strNoSettingsWizard[] = {"NoSettingsWizards"}; -static const char strNoLogoff[] = {"NoLogoff"}; -static const char strNoNetConDis[] = {"NoNetConnectDisconnect"}; -static const char strNoViewContextMenu[] = {"NoViewContextMenu"}; -static const char strNoTrayContextMenu[] = {"NoTrayContextMenu"}; -static const char strNoWebMenu[] = {"NoWebMenu"}; -static const char strLnkResolveIgnoreLnkInfo[] = {"LinkResolveIgnoreLinkInfo"}; -static const char strNoCommonGroups[] = {"NoCommonGroups"}; -static const char strEnforceShlExtSecurity[] = {"EnforceShellExtensionSecurity"}; -static const char strNoRealMode[] = {"NoRealMode"}; -static const char strMyDocsOnNet[] = {"MyDocsOnNet"}; -static const char strNoStartMenuSubfolder[] = {"NoStartMenuSubFolders"}; -static const char strNoAddPrinters[] = {"NoAddPrinter"}; -static const char strNoDeletePrinters[] = {"NoDeletePrinter"}; -static const char strNoPrintTab[] = {"NoPrinterTabs"}; -static const char strRestrictRun[] = {"RestrictRun"}; -static const char strNoStartBanner[] = {"NoStartBanner"}; -static const char strNoNetworkNeighborhood[] = {"NoNetHood"}; -static const char strNoDriveTypeAtRun[] = {"NoDriveTypeAutoRun"}; -static const char strNoDrivesAutoRun[] = {"NoDriveAutoRun"}; -static const char strSeparateProcess[] = {"SeparateProcess"}; -static const char strNoDrives[] = {"NoDrives"}; -static const char strNoFind[] = {"NoFind"}; -static const char strNoDesktop[] = {"NoDesktop"}; -static const char strNoSetTaskBar[] = {"NoSetTaskbar"}; -static const char strNoSetFld[] = {"NoSetFolders"}; -static const char strNoFileMenu[] = {"NoFileMenu"}; -static const char strNoSaveSetting[] = {"NoSaveSettings"}; -static const char strNoClose[] = {"NoClose"}; -static const char strNoRun[] = {"NoRun"}; - -/* policy data array */ -static POLICYDATA sh32_policy_table[] = -{ - { - REST_NORUN, - strExplorer, - strNoRun, - SHELL_NO_POLICY - }, - { - REST_NOCLOSE, - strExplorer, - strNoClose, - SHELL_NO_POLICY - }, - { - REST_NOSAVESET, - strExplorer, - strNoSaveSetting, - SHELL_NO_POLICY - }, - { - REST_NOFILEMENU, - strExplorer, - strNoFileMenu, - SHELL_NO_POLICY - }, - { - REST_NOSETFOLDERS, - strExplorer, - strNoSetFld, - SHELL_NO_POLICY - }, - { - REST_NOSETTASKBAR, - strExplorer, - strNoSetTaskBar, - SHELL_NO_POLICY - }, - { - REST_NODESKTOP, - strExplorer, - strNoDesktop, - SHELL_NO_POLICY - }, - { - REST_NOFIND, - strExplorer, - strNoFind, - SHELL_NO_POLICY - }, - { - REST_NODRIVES, - strExplorer, - strNoDrives, - SHELL_NO_POLICY - }, - { - REST_NODRIVEAUTORUN, - strExplorer, - strNoDrivesAutoRun, - SHELL_NO_POLICY - }, - { - REST_NODRIVETYPEAUTORUN, - strExplorer, - strNoDriveTypeAtRun, - SHELL_NO_POLICY - }, - { - REST_NONETHOOD, - strExplorer, - strNoNetworkNeighborhood, - SHELL_NO_POLICY - }, - { - REST_STARTBANNER, - strExplorer, - strNoStartBanner, - SHELL_NO_POLICY - }, - { - REST_RESTRICTRUN, - strExplorer, - strRestrictRun, - SHELL_NO_POLICY - }, - { - REST_NOPRINTERTABS, - strExplorer, - strNoPrintTab, - SHELL_NO_POLICY - }, - { - REST_NOPRINTERDELETE, - strExplorer, - strNoDeletePrinters, - SHELL_NO_POLICY - }, - { - REST_NOPRINTERADD, - strExplorer, - strNoAddPrinters, - SHELL_NO_POLICY - }, - { - REST_NOSTARTMENUSUBFOLDERS, - strExplorer, - strNoStartMenuSubfolder, - SHELL_NO_POLICY - }, - { - REST_MYDOCSONNET, - strExplorer, - strMyDocsOnNet, - SHELL_NO_POLICY - }, - { - REST_NOEXITTODOS, - strWinOldApp, - strNoRealMode, - SHELL_NO_POLICY - }, - { - REST_ENFORCESHELLEXTSECURITY, - strExplorer, - strEnforceShlExtSecurity, - SHELL_NO_POLICY - }, - { - REST_LINKRESOLVEIGNORELINKINFO, - strExplorer, - strLnkResolveIgnoreLnkInfo, - SHELL_NO_POLICY - }, - { - REST_NOCOMMONGROUPS, - strExplorer, - strNoCommonGroups, - SHELL_NO_POLICY - }, - { - REST_SEPARATEDESKTOPPROCESS, - strExplorer, - strSeparateProcess, - SHELL_NO_POLICY - }, - { - REST_NOWEB, - strExplorer, - strNoWebMenu, - SHELL_NO_POLICY - }, - { - REST_NOTRAYCONTEXTMENU, - strExplorer, - strNoTrayContextMenu, - SHELL_NO_POLICY - }, - { - REST_NOVIEWCONTEXTMENU, - strExplorer, - strNoViewContextMenu, - SHELL_NO_POLICY - }, - { - REST_NONETCONNECTDISCONNECT, - strExplorer, - strNoNetConDis, - SHELL_NO_POLICY - }, - { - REST_STARTMENULOGOFF, - strExplorer, - strNoLogoff, - SHELL_NO_POLICY - }, - { - REST_NOSETTINGSASSIST, - strExplorer, - strNoSettingsWizard, - SHELL_NO_POLICY - }, - { - REST_NOINTERNETICON, - strExplorer, - strNoInetIcon, - SHELL_NO_POLICY - }, - { - REST_NORECENTDOCSHISTORY, - strExplorer, - strNoRecentDocHistory, - SHELL_NO_POLICY - }, - { - REST_NORECENTDOCSMENU, - strExplorer, - strNoRecentDocMenu, - SHELL_NO_POLICY - }, - { - REST_NOACTIVEDESKTOP, - strExplorer, - strNoActiveDesktop, - SHELL_NO_POLICY - }, - { - REST_NOACTIVEDESKTOPCHANGES, - strExplorer, - strNoActiveDesktopChanges, - SHELL_NO_POLICY - }, - { - REST_NOFAVORITESMENU, - strExplorer, - strNoFavoritesMenu, - SHELL_NO_POLICY - }, - { - REST_CLEARRECENTDOCSONEXIT, - strExplorer, - strClearRecentDocs, - SHELL_NO_POLICY - }, - { - REST_CLASSICSHELL, - strExplorer, - strClassicShell, - SHELL_NO_POLICY - }, - { - REST_NOCUSTOMIZEWEBVIEW, - strExplorer, - strNoCustomWebView, - SHELL_NO_POLICY - }, - { - REST_NOHTMLWALLPAPER, - strActiveDesk, - strNoHTMLWallpaper, - SHELL_NO_POLICY - }, - { - REST_NOCHANGINGWALLPAPER, - strActiveDesk, - strNoChangeWallpaper, - SHELL_NO_POLICY - }, - { - REST_NODESKCOMP, - strActiveDesk, - strNoComponent, - SHELL_NO_POLICY - }, - { - REST_NOADDDESKCOMP, - strActiveDesk, - strNoAddComponent, - SHELL_NO_POLICY - }, - { - REST_NODELDESKCOMP, - strActiveDesk, - strNoDelComponent, - SHELL_NO_POLICY - }, - { - REST_NOCLOSEDESKCOMP, - strActiveDesk, - strNoCloseComponent, - SHELL_NO_POLICY - }, - { - REST_NOCLOSE_DRAGDROPBAND, - strActiveDesk, - strNoCloseDragDrop, - SHELL_NO_POLICY - }, - { - REST_NOMOVINGBAND, - strActiveDesk, - strNoMovingBand, - SHELL_NO_POLICY - }, - { - REST_NOEDITDESKCOMP, - strActiveDesk, - strNoEditComponent, - SHELL_NO_POLICY - }, - { - REST_NORESOLVESEARCH, - strExplorer, - strNoResolveSearch, - SHELL_NO_POLICY - }, - { - REST_NORESOLVETRACK, - strExplorer, - strNoResolveTrk, - SHELL_NO_POLICY - }, - { - REST_FORCECOPYACLWITHFILE, - strExplorer, - strForceCopyACLW, - SHELL_NO_POLICY - }, -#if (NTDDI_VERSION < NTDDI_LONGHORN) - { - REST_NOLOGO3CHANNELNOTIFY, - strExplorer, - strNoMSAppLogo, - SHELL_NO_POLICY - }, -#endif - { - REST_NOFORGETSOFTWAREUPDATE, - strExplorer, - strNoForgetSoftwareUpdate, - SHELL_NO_POLICY - }, - { - REST_NOSETACTIVEDESKTOP, - strExplorer, - strNoSetActiveDesktop, - SHELL_NO_POLICY - }, - { - REST_NOUPDATEWINDOWS, - strExplorer, - strNoWindowsUpdate, - SHELL_NO_POLICY - }, - { - REST_NOCHANGESTARMENU, - strExplorer, - strNoChangeStartMenu, - SHELL_NO_POLICY - }, - { - REST_NOFOLDEROPTIONS, - strExplorer, - strNoFolderOptions, - SHELL_NO_POLICY - }, - { - REST_HASFINDCOMPUTERS, - strExplorer, - "FindComputers", - SHELL_NO_POLICY - }, - { - REST_INTELLIMENUS, - strExplorer, - "IntelliMenus", - SHELL_NO_POLICY - }, - { - REST_RUNDLGMEMCHECKBOX, - strExplorer, - "MemCheckBoxInRunDlg", - SHELL_NO_POLICY - }, - { - REST_ARP_ShowPostSetup, - strAddRemoveProgs, - "ShowPostSetup", - SHELL_NO_POLICY - }, - { - REST_NOCSC, - strExplorer, - "NoSyncAll", - SHELL_NO_POLICY - }, - { - REST_NOCONTROLPANEL, - strExplorer, - "NoControlPanel", - SHELL_NO_POLICY - }, - { - REST_ENUMWORKGROUP, - strExplorer, - "EnumWorkgroup", - SHELL_NO_POLICY - }, - { - REST_ARP_NOARP, - strAddRemoveProgs, - "NoAddRemovePrograms", - SHELL_NO_POLICY - }, - { - REST_ARP_NOREMOVEPAGE, - strAddRemoveProgs, - "NoRemovePage", - SHELL_NO_POLICY - }, - { - REST_ARP_NOADDPAGE, - strAddRemoveProgs, - "NoAddPage", - SHELL_NO_POLICY - }, - { - REST_ARP_NOWINSETUPPAGE, - strAddRemoveProgs, - "NoWindowsSetupPage", - SHELL_NO_POLICY - }, - { - REST_GREYMSIADS, - strExplorer, - "", - SHELL_NO_POLICY - }, - { - REST_NOCHANGEMAPPEDDRIVELABEL, - strExplorer, - "NoChangeMappedDriveLabel", - SHELL_NO_POLICY - }, - { - REST_NOCHANGEMAPPEDDRIVECOMMENT, - strExplorer, - "NoChangeMappedDriveComment", - SHELL_NO_POLICY - }, - { - REST_MaxRecentDocs, - strExplorer, - "MaxRecentDocs", - SHELL_NO_POLICY - }, - { - REST_NONETWORKCONNECTIONS, - strExplorer, - "NoNetworkConnections", - SHELL_NO_POLICY - }, - { - REST_FORCESTARTMENULOGOFF, - strExplorer, - "ForceStartMenuLogoff", - SHELL_NO_POLICY - }, - { - REST_NOWEBVIEW, - strExplorer, - "NoWebView", - SHELL_NO_POLICY - }, - { - REST_NOCUSTOMIZETHISFOLDER, - strExplorer, - "NoCustomizeThisFolder", - SHELL_NO_POLICY - }, - { - REST_NOENCRYPTION, - strExplorer, - "NoEncryption", - SHELL_NO_POLICY - }, - { - REST_ALLOWFRENCHENCRYPTION, - strExplorer, - "AllowFrenchEncryption", - SHELL_NO_POLICY - }, - { - REST_DONTSHOWSUPERHIDDEN, - strExplorer, - "DontShowSuperHidden", - SHELL_NO_POLICY - }, - { - REST_NOSHELLSEARCHBUTTON, - strExplorer, - "NoShellSearchButton", - SHELL_NO_POLICY - }, - { - REST_NOHARDWARETAB, - strExplorer, - "NoHardwareTab", - SHELL_NO_POLICY - }, - { - REST_NORUNASINSTALLPROMPT, - strExplorer, - "NoRunasInstallPrompt", - SHELL_NO_POLICY - }, - { - REST_PROMPTRUNASINSTALLNETPATH, - strExplorer, - "PromptRunasInstallNetPath", - SHELL_NO_POLICY - }, - { - REST_NOMANAGEMYCOMPUTERVERB, - strExplorer, - "NoManageMyComputerVerb", - SHELL_NO_POLICY - }, - { - REST_NORECENTDOCSNETHOOD, - strExplorer, - "NoRecentDocsNetHood", - SHELL_NO_POLICY - }, - { - REST_DISALLOWRUN, - strExplorer, - "DisallowRun", - SHELL_NO_POLICY - }, - { - REST_NOWELCOMESCREEN, - strExplorer, - "NoWelcomeScreen", - SHELL_NO_POLICY - }, - { - REST_RESTRICTCPL, - strExplorer, - "RestrictCpl", - SHELL_NO_POLICY - }, - { - REST_DISALLOWCPL, - strExplorer, - "DisallowCpl", - SHELL_NO_POLICY - }, - { - REST_NOSMBALLOONTIP, - strExplorer, - "NoSMBalloonTip", - SHELL_NO_POLICY - }, - { - REST_NOSMHELP, - strExplorer, - "NoSMHelp", - SHELL_NO_POLICY - }, - { - REST_NOWINKEYS, - strExplorer, - "NoWinKeys", - SHELL_NO_POLICY - }, - { - REST_NOENCRYPTONMOVE, - strExplorer, - "NoEncryptOnMove", - SHELL_NO_POLICY - }, - { - REST_NOLOCALMACHINERUN, - strExplorer, - "DisableLocalMachineRun", - SHELL_NO_POLICY - }, - { - REST_NOCURRENTUSERRUN, - strExplorer, - "DisableCurrentUserRun", - SHELL_NO_POLICY - }, - { - REST_NOLOCALMACHINERUNONCE, - strExplorer, - "DisableLocalMachineRunOnce", - SHELL_NO_POLICY - }, - { - REST_NOCURRENTUSERRUNONCE, - strExplorer, - "DisableCurrentUserRunOnce", - SHELL_NO_POLICY - }, - { - REST_FORCEACTIVEDESKTOPON, - strExplorer, - "ForceActiveDesktopOn", - SHELL_NO_POLICY - }, - { - REST_NOCOMPUTERSNEARME, - strExplorer, - "NoComputersNearMe", - SHELL_NO_POLICY - }, - { - REST_NOVIEWONDRIVE, - strExplorer, - "NoViewOnDrive", - SHELL_NO_POLICY - }, - { - REST_NONETCRAWL, - strExplorer, - "NoNetCrawl", - SHELL_NO_POLICY - }, - { - REST_NOSHAREDDOCUMENTS, - strExplorer, - "NoSharedDocs", - SHELL_NO_POLICY - }, - { - REST_NOSMMYDOCS, - strExplorer, - "NoSMMyDocs", - SHELL_NO_POLICY - }, -/* 0x4000050 - 0x4000060 */ - { - REST_NONLEGACYSHELLMODE, - strExplorer, - "NoneLegacyShellMode", - SHELL_NO_POLICY - }, - { - REST_STARTRUNNOHOMEPATH, - strExplorer, - "StartRunNoHOMEPATH", - SHELL_NO_POLICY - }, -/* 0x4000061 - 0x4000086 */ - { - REST_NODISCONNECT, - strExplorer, - "NoDisconnect", - SHELL_NO_POLICY - }, - { - REST_NOSECURITY, - strExplorer, - "NoNTSecurity", - SHELL_NO_POLICY - }, - { - REST_NOFILEASSOCIATE, - strExplorer, - "NoFileAssociate", - SHELL_NO_POLICY - }, - { - 0x50000024, - strExplorer, - strNoFileURL, - SHELL_NO_POLICY - }, - { - 0, - 0, - 0, - SHELL_NO_POLICY - } -}; - -/************************************************************************* - * SHRestricted [SHELL32.100] - * - * Get the value associated with a policy Id. - * - * PARAMS - * pol [I] Policy Id - * - * RETURNS - * The queried value for the policy. - * - * NOTES - * Exported by ordinal. - * This function caches the retrieved values to prevent unnecessary registry access, - * if SHInitRestricted() was previously called. - * - * REFERENCES - * a: MS System Policy Editor. - * b: 98Lite 2.0 (which uses many of these policy keys) http://www.98lite.net/ - * c: 'The Windows 95 Registry', by John Woram, 1996 MIS: Press - */ -DWORD WINAPI SHRestricted (RESTRICTIONS policy) -{ - char regstr[256]; - HKEY xhkey; - DWORD retval, datsize = 4; - LPPOLICYDATA p; - - TRACE("(%08x)\n", policy); - - /* scan to see if we know this policy ID */ - for (p = sh32_policy_table; p->policy; p++) - { - if (policy == p->policy) - { - break; - } - } - - if (p->policy == 0) - { - /* we don't know this policy, return 0 */ - TRACE("unknown policy: (%08x)\n", policy); - return 0; - } - - /* we have a known policy */ - - /* first check if this policy has been cached, return it if so */ - if (p->cache != SHELL_NO_POLICY) - { - return p->cache; - } - - lstrcpyA(regstr, strRegistryPolicyA); - lstrcatA(regstr, p->appstr); - - /* return 0 and don't set the cache if any registry errors occur */ - retval = 0; - if (RegOpenKeyA(HKEY_CURRENT_USER, regstr, &xhkey) == ERROR_SUCCESS) - { - if (RegQueryValueExA(xhkey, p->keystr, NULL, NULL, (LPBYTE)&retval, &datsize) == ERROR_SUCCESS) - { - p->cache = retval; - } - RegCloseKey(xhkey); - } - return retval; -} - -/************************************************************************* - * SHInitRestricted [SHELL32.244] - * - * Initialise the policy cache to speed up calls to SHRestricted(). - * - * PARAMS - * unused [I] Reserved. - * inpRegKey [I] Registry key to scan. - * - * RETURNS - * Success: -1. The policy cache is initialised. - * Failure: 0, if inpRegKey is any value other than NULL, "Policy", or - * "Software\Microsoft\Windows\CurrentVersion\Policies". - * - * NOTES - * Exported by ordinal. Introduced in Win98. - */ -BOOL WINAPI SHInitRestricted(LPCVOID unused, LPCVOID inpRegKey) -{ - TRACE("(%p, %p)\n", unused, inpRegKey); - - /* first check - if input is non-NULL and points to the secret - key string, then pass. Otherwise return 0. - */ - if (inpRegKey != NULL) - { - if (SHELL_OsIsUnicode()) - { - if (lstrcmpiW((LPCWSTR)inpRegKey, strRegistryPolicyW) && - lstrcmpiW((LPCWSTR)inpRegKey, strPolicyW)) - /* doesn't match, fail */ - return 0; - } - else - { - if (lstrcmpiA((LPCSTR)inpRegKey, strRegistryPolicyA) && - lstrcmpiA((LPCSTR)inpRegKey, strPolicyA)) - /* doesn't match, fail */ - return 0; - } - } - - return TRUE; -} diff --git a/reactos/dll/win32/shell32/shv_def_cmenu.c b/reactos/dll/win32/shell32/shv_def_cmenu.c deleted file mode 100644 index 701a3caffb6..00000000000 --- a/reactos/dll/win32/shell32/shv_def_cmenu.c +++ /dev/null @@ -1,1783 +0,0 @@ -/* - * PROJECT: shell32 - * LICENSE: GPL - See COPYING in the top level directory - * FILE: dll/win32/shell32/shv_item_new.c - * PURPOSE: provides default context menu implementation - * PROGRAMMERS: Johannes Anderwald (janderwald@reactos.org) - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(dmenu); - -typedef struct _DynamicShellEntry_ -{ - UINT iIdCmdFirst; - UINT NumIds; - CLSID ClassID; - IContextMenu * CMenu; - struct _DynamicShellEntry_ * Next; -}DynamicShellEntry, *PDynamicShellEntry; - -typedef struct _StaticShellEntry_ -{ - LPWSTR szVerb; - LPWSTR szClass; - struct _StaticShellEntry_ * Next; -}StaticShellEntry, *PStaticShellEntry; - - -typedef struct -{ - const IContextMenu2Vtbl *lpVtbl; - LONG ref; - DEFCONTEXTMENU dcm; - IDataObject * pDataObj; - DWORD bGroupPolicyActive; - PDynamicShellEntry dhead; /* first dynamic shell extension entry */ - UINT iIdSHEFirst; /* first used id */ - UINT iIdSHELast; /* last used id */ - PStaticShellEntry shead; /* first static shell extension entry */ - UINT iIdSCMFirst; /* first static used id */ - UINT iIdSCMLast; /* last static used id */ -}IDefaultContextMenuImpl, *LPIDefaultContextMenuImpl; - -static LPIDefaultContextMenuImpl __inline impl_from_IContextMenu( IContextMenu2 *iface ) -{ - return (LPIDefaultContextMenuImpl)((char*)iface - FIELD_OFFSET(IDefaultContextMenuImpl, lpVtbl)); -} - -VOID INewItem_SetCurrentShellFolder(IShellFolder * psfParent); // HACK -WCHAR *build_paths_list(LPCWSTR wszBasePath, int cidl, LPCITEMIDLIST *pidls); - -static -HRESULT -WINAPI -IDefaultContextMenu_fnQueryInterface( - IContextMenu2 *iface, - REFIID riid, - LPVOID *ppvObj) -{ - IDefaultContextMenuImpl *This = (IDefaultContextMenuImpl *)iface; - - TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - - *ppvObj = NULL; - - if(IsEqualIID(riid, &IID_IUnknown) || - IsEqualIID(riid, &IID_IContextMenu) || - IsEqualIID(riid, &IID_IContextMenu2)) - { - *ppvObj = This; - } - - if(*ppvObj) - { - IUnknown_AddRef((IUnknown*)*ppvObj); - TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj); - return S_OK; - } - TRACE("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - - -static -ULONG -WINAPI -IDefaultContextMenu_fnAddRef( - IContextMenu2 *iface) -{ - IDefaultContextMenuImpl *This = (IDefaultContextMenuImpl *)iface; - ULONG refCount = InterlockedIncrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount - 1); - - return refCount; -} - -static -ULONG -WINAPI -IDefaultContextMenu_fnRelease( - IContextMenu2 *iface) -{ - PDynamicShellEntry dEntry, dNext; - PStaticShellEntry sEntry, sNext; - IDefaultContextMenuImpl *This = (IDefaultContextMenuImpl *)iface; - ULONG refCount = InterlockedDecrement(&This->ref); - - TRACE("(%p)->(count=%u)\n", This, refCount + 1); - if (!refCount) - { - /* free dynamic shell extension entries */ - dEntry = This->dhead; - while(dEntry) - { - dNext = dEntry->Next; - IContextMenu_Release(dEntry->CMenu); - HeapFree(GetProcessHeap(), 0, dEntry); - dEntry = dNext; - } - /* free static shell extension entries */ - sEntry = This->shead; - while(sEntry) - { - sNext = sEntry->Next; - HeapFree(GetProcessHeap(), 0, sEntry->szClass); - HeapFree(GetProcessHeap(), 0, sEntry->szVerb); - HeapFree(GetProcessHeap(), 0, sEntry); - sEntry = sNext; - } - HeapFree(GetProcessHeap(),0,This); - } - - return refCount; -} - -static -void -SH_AddStaticEntry(IDefaultContextMenuImpl * This, WCHAR *szVerb, WCHAR * szClass) -{ - PStaticShellEntry curEntry; - PStaticShellEntry lastEntry = NULL; - - curEntry = This->shead; - while(curEntry) - { - if (!wcsicmp(curEntry->szVerb, szVerb)) - { - /* entry already exists */ - return; - } - lastEntry = curEntry; - curEntry = curEntry->Next; - } - - TRACE("adding verb %s szClass %s\n", debugstr_w(szVerb), debugstr_w(szClass)); - - curEntry = HeapAlloc(GetProcessHeap(), 0, sizeof(StaticShellEntry)); - if (curEntry) - { - curEntry->Next = NULL; - curEntry->szVerb = HeapAlloc(GetProcessHeap(), 0, (wcslen(szVerb)+1) * sizeof(WCHAR)); - if (curEntry->szVerb) - wcscpy(curEntry->szVerb, szVerb); - curEntry->szClass = HeapAlloc(GetProcessHeap(), 0, (wcslen(szClass)+1) * sizeof(WCHAR)); - if (curEntry->szClass) - wcscpy(curEntry->szClass, szClass); - } - - if (!wcsicmp(szVerb, L"open")) - { - /* open verb is always inserted in front */ - curEntry->Next = This->shead; - This->shead = curEntry; - return; - } - - - - if (lastEntry) - { - lastEntry->Next = curEntry; - } - else - { - This->shead = curEntry; - } -} - -static -void -SH_AddStaticEntryForKey(IDefaultContextMenuImpl * This, HKEY hKey, WCHAR * szClass) -{ - LONG result; - DWORD dwIndex; - WCHAR szName[40]; - DWORD dwName; - - dwIndex = 0; - do - { - szName[0] = 0; - dwName = sizeof(szName) / sizeof(WCHAR); - result = RegEnumKeyExW(hKey, dwIndex, szName, &dwName, NULL, NULL, NULL, NULL); - szName[(sizeof(szName)/sizeof(WCHAR))-1] = 0; - if (result == ERROR_SUCCESS) - { - SH_AddStaticEntry(This, szName, szClass); - } - dwIndex++; - }while(result == ERROR_SUCCESS); -} - -static -void -SH_AddStaticEntryForFileClass(IDefaultContextMenuImpl * This, WCHAR * szExt) -{ - WCHAR szBuffer[100]; - HKEY hKey; - LONG result; - DWORD dwBuffer; - UINT Length; - static WCHAR szShell[] = L"\\shell"; - static WCHAR szShellAssoc[] = L"SystemFileAssociations\\"; - - TRACE("SH_AddStaticEntryForFileClass entered with %s\n", debugstr_w(szExt)); - - Length = wcslen(szExt); - if (Length + (sizeof(szShell)/sizeof(WCHAR)) + 1 < sizeof(szBuffer)/sizeof(WCHAR)) - { - wcscpy(szBuffer, szExt); - wcscpy(&szBuffer[Length], szShell); - result = RegOpenKeyExW(HKEY_CLASSES_ROOT, szBuffer, 0, KEY_READ | KEY_QUERY_VALUE, &hKey); - if (result == ERROR_SUCCESS) - { - szBuffer[Length] = 0; - SH_AddStaticEntryForKey(This, hKey, szExt); - RegCloseKey(hKey); - } - } - - dwBuffer = sizeof(szBuffer); - result = RegGetValueW(HKEY_CLASSES_ROOT, szExt, NULL, RRF_RT_REG_SZ, NULL, (LPBYTE)szBuffer, &dwBuffer); - if (result == ERROR_SUCCESS) - { - Length = wcslen(szBuffer); - if (Length + (sizeof(szShell)/sizeof(WCHAR)) + 1 < sizeof(szBuffer)/sizeof(WCHAR)) - { - wcscpy(&szBuffer[Length], szShell); - TRACE("szBuffer %s\n", debugstr_w(szBuffer)); - - result = RegOpenKeyExW(HKEY_CLASSES_ROOT, szBuffer, 0, KEY_READ | KEY_QUERY_VALUE, &hKey); - if (result == ERROR_SUCCESS) - { - szBuffer[Length] = 0; - SH_AddStaticEntryForKey(This, hKey, szBuffer); - RegCloseKey(hKey); - } - } - } - - wcscpy(szBuffer, szShellAssoc); - dwBuffer = sizeof(szBuffer) - sizeof(szShellAssoc) - sizeof(WCHAR); - result = RegGetValueW(HKEY_CLASSES_ROOT, szExt, L"PerceivedType", RRF_RT_REG_SZ, NULL, (LPBYTE)&szBuffer[(sizeof(szShellAssoc)/sizeof(WCHAR))], &dwBuffer); - if (result == ERROR_SUCCESS) - { - Length = wcslen(&szBuffer[(sizeof(szShellAssoc)/sizeof(WCHAR))]) + (sizeof(szShellAssoc)/sizeof(WCHAR)); - wcscat(&szBuffer[(sizeof(szShellAssoc)/sizeof(WCHAR))], szShell); - TRACE("szBuffer %s\n", debugstr_w(szBuffer)); - - result = RegOpenKeyExW(HKEY_CLASSES_ROOT, szBuffer, 0, KEY_READ | KEY_QUERY_VALUE, &hKey); - if (result == ERROR_SUCCESS) - { - szBuffer[Length] = 0; - SH_AddStaticEntryForKey(This, hKey, szBuffer); - RegCloseKey(hKey); - } - } -} - -static -BOOL -HasClipboardData() -{ - BOOL ret = FALSE; - IDataObject * pda; - - if(SUCCEEDED(OleGetClipboard(&pda))) - { - STGMEDIUM medium; - FORMATETC formatetc; - - TRACE("pda=%p\n", pda); - - /* Set the FORMATETC structure*/ - InitFormatEtc(formatetc, RegisterClipboardFormatW(CFSTR_SHELLIDLIST), TYMED_HGLOBAL); - if(SUCCEEDED(IDataObject_GetData(pda,&formatetc,&medium))) - { - ret = TRUE; - ReleaseStgMedium(&medium); - } - - IDataObject_Release(pda); - } - - return ret; -} - -VOID -DisablePasteOptions(HMENU hMenu) -{ - MENUITEMINFOW mii; - - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_STATE; - mii.fState = MFS_DISABLED; - - TRACE("result %d\n", SetMenuItemInfoW(hMenu, FCIDM_SHVIEW_INSERT, FALSE, &mii)); - TRACE("result %d\n", SetMenuItemInfoW(hMenu, FCIDM_SHVIEW_INSERTLINK, FALSE, &mii)); -} - -BOOL -IsShellExtensionAlreadyLoaded(IDefaultContextMenuImpl * This, const CLSID * szClass) -{ - PDynamicShellEntry curEntry = This->dhead; - - while(curEntry) - { - if (!memcmp(&curEntry->ClassID, szClass, sizeof(CLSID))) - return TRUE; - curEntry = curEntry->Next; - } - return FALSE; -} - - -static -HRESULT -SH_LoadDynamicContextMenuHandler(IDefaultContextMenuImpl * This, HKEY hKey, const CLSID * szClass, BOOL bExternalInit) -{ - HRESULT hr; - IContextMenu * cmobj; - IShellExtInit *shext; - PDynamicShellEntry curEntry; - //WCHAR szTemp[100]; - LPOLESTR pstr; - - StringFromCLSID(szClass, &pstr); - - TRACE("SH_LoadDynamicContextMenuHandler entered with This %p hKey %p szClass %s bExternalInit %u\n",This, hKey, wine_dbgstr_guid(szClass), bExternalInit); - //swprintf(szTemp, L"This %p hKey %p szClass %s bExternalInit %u", This, hKey, pstr, bExternalInit); - //MessageBoxW(NULL, szTemp, NULL, MB_OK); - - if (IsShellExtensionAlreadyLoaded(This, szClass)) - return S_OK; - - hr = SHCoCreateInstance(NULL, szClass, NULL, &IID_IContextMenu, (void**)&cmobj); - if (hr != S_OK) - { - TRACE("SHCoCreateInstance failed %x\n", GetLastError()); - return hr; - } - - if (bExternalInit) - { - hr = IContextMenu_QueryInterface(cmobj, &IID_IShellExtInit, (void**)&shext); - if (hr != S_OK) - { - TRACE("Failed to query for interface IID_IShellExtInit\n"); - IContextMenu_Release(cmobj); - return FALSE; - } - hr = IShellExtInit_Initialize(shext, NULL, This->pDataObj, hKey); - IShellExtInit_Release(shext); - if (hr != S_OK) - { - TRACE("Failed to initialize shell extension error %x\n", hr); - IContextMenu_Release(cmobj); - return hr; - } - } - - curEntry = HeapAlloc(GetProcessHeap(), 0, sizeof(DynamicShellEntry)); - if(!curEntry) - { - IContextMenu_Release(cmobj); - return E_OUTOFMEMORY; - } - - curEntry->iIdCmdFirst = 0; - curEntry->Next = NULL; - curEntry->NumIds = 0; - curEntry->CMenu = cmobj; - memcpy(&curEntry->ClassID, szClass, sizeof(CLSID)); - - if (This->dhead) - { - PDynamicShellEntry pEntry = This->dhead; - - while(pEntry->Next) - { - pEntry = pEntry->Next; - } - - pEntry->Next = curEntry; - } - else - { - This->dhead = curEntry; - } - - - if (!memcmp(szClass, &CLSID_NewMenu, sizeof(CLSID))) - { - /* A REAL UGLY HACK */ - INewItem_SetCurrentShellFolder(This->dcm.psf); - } - - - return hr; -} - -static -UINT -EnumerateDynamicContextHandlerForKey(IDefaultContextMenuImpl *This, HKEY hRootKey) -{ - WCHAR szKey[MAX_PATH] = {0}; - WCHAR szName[MAX_PATH] = {0}; - DWORD dwIndex, dwName; - LONG res; - HRESULT hResult; - UINT index; - CLSID clsid; - HKEY hKey; - - static const WCHAR szShellEx[] = { 's','h','e','l','l','e','x','\\','C','o','n','t','e','x','t','M','e','n','u','H','a','n','d','l','e','r','s',0 }; - - if (RegOpenKeyExW(hRootKey, szShellEx, 0, KEY_READ, &hKey) != ERROR_SUCCESS) - { - TRACE("RegOpenKeyExW failed for key %s\n", debugstr_w(szKey)); - return 0; - } - - dwIndex = 0; - index = 0; - do - { - dwName = MAX_PATH; - res = RegEnumKeyExW(hKey, dwIndex, szName, &dwName, NULL, NULL, NULL, NULL); - if (res == ERROR_SUCCESS) - { - hResult = CLSIDFromString(szName, &clsid); - if (hResult != S_OK) - { - dwName = MAX_PATH; - if (RegGetValueW(hKey, szName, NULL, RRF_RT_REG_SZ, NULL, szKey, &dwName) == ERROR_SUCCESS) - { - hResult = CLSIDFromString(szKey, &clsid); - } - } - if (SUCCEEDED(hResult)) - { - if (This->bGroupPolicyActive) - { - if (RegGetValueW(HKEY_LOCAL_MACHINE, - L"Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved", - szKey, - RRF_RT_REG_SZ, - NULL, - NULL, - &dwName) == ERROR_SUCCESS) - { - SH_LoadDynamicContextMenuHandler(This, hKey, &clsid, TRUE); - } - } - else - { - SH_LoadDynamicContextMenuHandler(This, hKey, &clsid, TRUE); - } - } - } - dwIndex++; - }while(res == ERROR_SUCCESS); - - RegCloseKey(hKey); - return index; -} - - -static -UINT -InsertMenuItemsOfDynamicContextMenuExtension(IDefaultContextMenuImpl * This, HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast) -{ - PDynamicShellEntry curEntry; - HRESULT hResult; - - if (!This->dhead) - { - This->iIdSHEFirst = 0; - This->iIdSHELast = 0; - return indexMenu; - } - - curEntry = This->dhead; - idCmdFirst = 0x5000; - idCmdLast = 0x6000; - This->iIdSHEFirst = idCmdFirst; - do - { - hResult = IContextMenu_QueryContextMenu(curEntry->CMenu, hMenu, indexMenu++, idCmdFirst, idCmdLast, CMF_NORMAL); - if (SUCCEEDED(hResult)) - { - curEntry->iIdCmdFirst = idCmdFirst; - curEntry->NumIds = LOWORD(hResult); - indexMenu += curEntry->NumIds; - idCmdFirst += curEntry->NumIds + 0x10; - } - TRACE("curEntry %p hresult %x contextmenu %p cmdfirst %x num ids %x\n", curEntry, hResult, curEntry->CMenu, curEntry->iIdCmdFirst, curEntry->NumIds); - curEntry = curEntry->Next; - }while(curEntry); - - This->iIdSHELast = idCmdFirst; - TRACE("SH_LoadContextMenuHandlers first %x last %x\n", This->iIdSHEFirst, This->iIdSHELast); - return indexMenu; -} - -UINT -BuildBackgroundContextMenu( - IDefaultContextMenuImpl * This, - HMENU hMenu, - UINT iIdCmdFirst, - UINT iIdCmdLast, - UINT uFlags) -{ - MENUITEMINFOW mii; - WCHAR szBuffer[MAX_PATH]; - UINT indexMenu = 0; - HMENU hSubMenu; - HKEY hKey; - - ZeroMemory(&mii, sizeof(mii)); - - TRACE("BuildBackgroundContextMenu entered\n"); - - if (!_ILIsDesktop(This->dcm.pidlFolder)) - { - /* view option is only available in browsing mode */ - hSubMenu = LoadMenuA(shell32_hInstance, "MENU_001"); - if (hSubMenu) - { - szBuffer[0] = 0; - LoadStringW(shell32_hInstance, FCIDM_SHVIEW_VIEW, szBuffer, MAX_PATH); - szBuffer[MAX_PATH-1] = 0; - - TRACE("szBuffer %s\n", debugstr_w(szBuffer)); - - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_TYPE | MIIM_STATE | MIIM_SUBMENU | MIIM_ID; - mii.fType = MFT_STRING; - mii.wID = iIdCmdFirst++; - mii.dwTypeData = szBuffer; - mii.cch = wcslen( mii.dwTypeData ); - mii.fState = MFS_ENABLED; - mii.hSubMenu = hSubMenu; - InsertMenuItemW(hMenu, indexMenu++, TRUE, &mii); - DestroyMenu(hSubMenu); - } - } - hSubMenu = LoadMenuW(shell32_hInstance, L"MENU_002"); - if (hSubMenu) - { - /* merge general background context menu in */ - iIdCmdFirst = Shell_MergeMenus(hMenu, GetSubMenu(hSubMenu, 0), indexMenu, 0, 0xFFFF, MM_DONTREMOVESEPS | MM_SUBMENUSHAVEIDS) + 1; - DestroyMenu(hSubMenu); - } - - if (!HasClipboardData()) - { - TRACE("disabling paste options\n"); - DisablePasteOptions(hMenu); - } - /* load extensions from HKCR\* key */ - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, - L"*", - 0, - KEY_READ, - &hKey) == ERROR_SUCCESS) - { - EnumerateDynamicContextHandlerForKey(This, hKey); - RegCloseKey(hKey); - } - - /* load create new shell extension */ - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, - L"CLSID\\{D969A300-E7FF-11d0-A93B-00A0C90F2719}", - 0, - KEY_READ, - &hKey) == ERROR_SUCCESS) - { - SH_LoadDynamicContextMenuHandler(This, hKey, &CLSID_NewMenu, TRUE); - RegCloseKey(hKey); - } - - if (InsertMenuItemsOfDynamicContextMenuExtension(This, hMenu, GetMenuItemCount(hMenu)-1, iIdCmdFirst, iIdCmdLast)) - { - /* seperate dynamic context menu items */ - _InsertMenuItemW(hMenu, GetMenuItemCount(hMenu)-1, TRUE, -1, MFT_SEPARATOR, NULL, MFS_ENABLED); - } - - return iIdCmdLast; -} - -static -UINT -AddStaticContextMenusToMenu( - HMENU hMenu, - UINT indexMenu, - IDefaultContextMenuImpl * This) -{ - MENUITEMINFOW mii; - UINT idResource; - PStaticShellEntry curEntry; - WCHAR szVerb[40]; - WCHAR szTemp[50]; - DWORD dwSize; - UINT fState; - UINT Length; - - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | MIIM_DATA; - mii.fType = MFT_STRING; - mii.fState = MFS_ENABLED; - mii.wID = 0x4000; - This->iIdSCMFirst = mii.wID; - - curEntry = This->shead; - - while(curEntry) - { - fState = MFS_ENABLED; - if (!wcsicmp(curEntry->szVerb, L"open")) - { - fState |= MFS_DEFAULT; - idResource = IDS_OPEN_VERB; - } - else if (!wcsicmp(curEntry->szVerb, L"explore")) - idResource = IDS_EXPLORE_VERB; - else if (!wcsicmp(curEntry->szVerb, L"runas")) - idResource = IDS_RUNAS_VERB; - else if (!wcsicmp(curEntry->szVerb, L"edit")) - idResource = IDS_EDIT_VERB; - else if (!wcsicmp(curEntry->szVerb, L"find")) - idResource = IDS_FIND_VERB; - else if (!wcsicmp(curEntry->szVerb, L"print")) - idResource = IDS_PRINT_VERB; - else - idResource = 0; - - if (idResource > 0) - { - if (LoadStringW(shell32_hInstance, idResource, szVerb, sizeof(szVerb)/sizeof(WCHAR))) - { - /* use translated verb */ - szVerb[(sizeof(szVerb)/sizeof(WCHAR))-1] = L'\0'; - mii.dwTypeData = szVerb; - } - } - else - { - Length = wcslen(curEntry->szClass) + wcslen(curEntry->szVerb) + 8; - if (Length < sizeof(szTemp)/sizeof(WCHAR)) - { - wcscpy(szTemp, curEntry->szClass); - wcscat(szTemp, L"\\shell\\"); - wcscat(szTemp, curEntry->szVerb); - dwSize = sizeof(szVerb); - - if (RegGetValueW(HKEY_CLASSES_ROOT, szTemp, NULL, RRF_RT_REG_SZ, NULL, szVerb, &dwSize) == ERROR_SUCCESS) - { - /* use description for the menu entry */ - mii.dwTypeData = szVerb; - } - else - { - /* use verb for the menu entry */ - mii.dwTypeData = curEntry->szVerb; - } - } - - } - - mii.cch = wcslen(mii.dwTypeData); - mii.fState = fState; - InsertMenuItemW(hMenu, indexMenu++, TRUE, &mii); - - mii.wID++; - curEntry = curEntry->Next; - } - This->iIdSCMLast = mii.wID - 1; - return indexMenu; -} - -void WINAPI _InsertMenuItemW ( - HMENU hmenu, - UINT indexMenu, - BOOL fByPosition, - UINT wID, - UINT fType, - LPCWSTR dwTypeData, - UINT fState) -{ - MENUITEMINFOW mii; - WCHAR szText[100]; - - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - if (fType == MFT_SEPARATOR) - { - mii.fMask = MIIM_ID | MIIM_TYPE; - } - else if (fType == MFT_STRING) - { - mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE; - if ((ULONG_PTR)HIWORD((ULONG_PTR)dwTypeData) == 0) - { - if (LoadStringW(shell32_hInstance, LOWORD((ULONG_PTR)dwTypeData), szText, sizeof(szText)/sizeof(WCHAR))) - { - szText[(sizeof(szText)/sizeof(WCHAR))-1] = 0; - mii.dwTypeData = szText; - } - else - { - TRACE("failed to load string %p\n", dwTypeData); - return; - } - } - else - { - mii.dwTypeData = (LPWSTR) dwTypeData; - } - mii.fState = fState; - } - - mii.wID = wID; - mii.fType = fType; - InsertMenuItemW( hmenu, indexMenu, fByPosition, &mii); -} - -UINT -BuildShellItemContextMenu( - IDefaultContextMenuImpl * This, - HMENU hMenu, - UINT iIdCmdFirst, - UINT iIdCmdLast, - UINT uFlags) -{ - WCHAR szPath[MAX_PATH]; - WCHAR szTemp[40]; - HKEY hKey; - UINT indexMenu; - SFGAOF rfg; - HRESULT hr; - BOOL bAddSep; - GUID * guid; - BOOL bClipboardData; - STRRET strFile; - LPWSTR pOffset; - DWORD dwSize; - - TRACE("BuildShellItemContextMenu entered\n"); - - if (IShellFolder2_GetDisplayNameOf(This->dcm.psf, This->dcm.apidl[0], SHGDN_FORPARSING, &strFile) == S_OK) - { - if (StrRetToBufW(&strFile, This->dcm.apidl[0], szPath, MAX_PATH) == S_OK) - { - pOffset = wcsrchr(szPath, L'.'); - if (pOffset) - { - /* enumerate dynamic/static for a given file class */ - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, pOffset, 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - /* add static verbs */ - SH_AddStaticEntryForFileClass(This, pOffset); - /* load dynamic extensions from file extension key */ - EnumerateDynamicContextHandlerForKey(This, hKey); - RegCloseKey(hKey); - } - dwSize = sizeof(szTemp); - if (RegGetValueW(HKEY_CLASSES_ROOT, pOffset, NULL, RRF_RT_REG_SZ, NULL, szTemp, &dwSize) == ERROR_SUCCESS) - { - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, szTemp, 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - /* add static verbs from progid key */ - SH_AddStaticEntryForFileClass(This, szTemp); - /* load dynamic extensions from progid key */ - EnumerateDynamicContextHandlerForKey(This, hKey); - RegCloseKey(hKey); - } - } - } - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"*", 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - /* load default extensions */ - EnumerateDynamicContextHandlerForKey(This, hKey); - RegCloseKey(hKey); - } - } - } - - guid = _ILGetGUIDPointer(This->dcm.apidl[0]); - if (guid) - { - LPOLESTR pwszCLSID; - WCHAR buffer[60]; - - wcscpy(buffer, L"CLSID\\"); - hr = StringFromCLSID(guid, &pwszCLSID); - if (hr == S_OK) - { - wcscpy(&buffer[6], pwszCLSID); - TRACE("buffer %s\n", debugstr_w(buffer)); - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, buffer, 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - EnumerateDynamicContextHandlerForKey(This, hKey); - SH_AddStaticEntryForFileClass(This, buffer); - RegCloseKey(hKey); - } - CoTaskMemFree(pwszCLSID); - } - } - - - if (_ILIsDrive(This->dcm.apidl[0])) - { - SH_AddStaticEntryForFileClass(This, L"Drive"); - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"Drive", 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - EnumerateDynamicContextHandlerForKey(This, hKey); - RegCloseKey(hKey); - } - - } - - /* add static actions */ - rfg = SFGAO_BROWSABLE | SFGAO_CANCOPY | SFGAO_CANLINK | SFGAO_CANMOVE | SFGAO_CANDELETE | SFGAO_CANRENAME | SFGAO_HASPROPSHEET | SFGAO_FILESYSTEM | SFGAO_FOLDER; - hr = IShellFolder_GetAttributesOf(This->dcm.psf, This->dcm.cidl, This->dcm.apidl, &rfg); - if (!SUCCEEDED(hr)) - rfg = 0; - - if (rfg & SFGAO_FOLDER) - { - /* add the default verbs open / explore */ - SH_AddStaticEntryForFileClass(This, L"Folder"); - SH_AddStaticEntryForFileClass(This, L"Directory"); - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"Folder", 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - EnumerateDynamicContextHandlerForKey(This, hKey); - RegCloseKey(hKey); - } - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"Directory", 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - EnumerateDynamicContextHandlerForKey(This, hKey); - RegCloseKey(hKey); - } - } - - - if (rfg & SFGAO_FILESYSTEM) - { - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"AllFilesystemObjects", 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - /* sendto service is registered here */ - EnumerateDynamicContextHandlerForKey(This, hKey); - RegCloseKey(hKey); - } - } - - /* add static context menu handlers */ - indexMenu = AddStaticContextMenusToMenu(hMenu, 0, This); - /* now process dynamic context menu handlers */ - indexMenu = InsertMenuItemsOfDynamicContextMenuExtension(This, hMenu, indexMenu, iIdCmdFirst, iIdCmdLast); - TRACE("indexMenu %d\n", indexMenu); - - if (_ILIsDrive(This->dcm.apidl[0])) - { - /* The 'Format' option must be always available, - * thus it is not registered as a static shell extension - */ - _InsertMenuItemW(hMenu, indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - _InsertMenuItemW(hMenu, indexMenu++, TRUE, 0x7ABC, MFT_STRING, MAKEINTRESOURCEW(IDS_FORMATDRIVE), MFS_ENABLED); - bAddSep = TRUE; - } - - bClipboardData = (HasClipboardData() && (rfg & SFGAO_FILESYSTEM)); - if (rfg & (SFGAO_CANCOPY | SFGAO_CANMOVE) || bClipboardData) - { - _InsertMenuItemW(hMenu, indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - if (rfg & SFGAO_CANMOVE) - _InsertMenuItemW(hMenu, indexMenu++, TRUE, FCIDM_SHVIEW_CUT, MFT_STRING, MAKEINTRESOURCEW(IDS_CUT), MFS_ENABLED); - if (rfg & SFGAO_CANCOPY) - _InsertMenuItemW(hMenu, indexMenu++, TRUE, FCIDM_SHVIEW_COPY, MFT_STRING, MAKEINTRESOURCEW(IDS_COPY), MFS_ENABLED); - if (bClipboardData) - _InsertMenuItemW(hMenu, indexMenu++, TRUE, FCIDM_SHVIEW_INSERT, MFT_STRING, MAKEINTRESOURCEW(IDS_INSERT), MFS_ENABLED); - - bAddSep = TRUE; - } - - - if (rfg & SFGAO_CANLINK) - { - bAddSep = FALSE; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - _InsertMenuItemW(hMenu, indexMenu++, TRUE, FCIDM_SHVIEW_CREATELINK, MFT_STRING, MAKEINTRESOURCEW(IDS_CREATELINK), MFS_ENABLED); - } - - - if (rfg & SFGAO_CANDELETE) - { - if (bAddSep) - { - bAddSep = FALSE; - _InsertMenuItemW(hMenu, indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - } - _InsertMenuItemW(hMenu, indexMenu++, TRUE, FCIDM_SHVIEW_DELETE, MFT_STRING, MAKEINTRESOURCEW(IDS_DELETE), MFS_ENABLED); - } - - if (rfg & SFGAO_CANRENAME) - { - if (bAddSep) - { - _InsertMenuItemW(hMenu, indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - } - _InsertMenuItemW(hMenu, indexMenu++, TRUE, FCIDM_SHVIEW_RENAME, MFT_STRING, MAKEINTRESOURCEW(IDS_RENAME), MFS_ENABLED); - bAddSep = TRUE; - } - - if (rfg & SFGAO_HASPROPSHEET) - { - _InsertMenuItemW(hMenu, indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - _InsertMenuItemW(hMenu, indexMenu++, TRUE, FCIDM_SHVIEW_PROPERTIES, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED); - } - - return iIdCmdLast; -} - -static -HRESULT -WINAPI -IDefaultContextMenu_fnQueryContextMenu( - IContextMenu2 *iface, - HMENU hmenu, - UINT indexMenu, - UINT idCmdFirst, - UINT idCmdLast, - UINT uFlags) -{ - IDefaultContextMenuImpl * This = impl_from_IContextMenu(iface); - if (This->dcm.cidl) - { - idCmdFirst = BuildShellItemContextMenu(This, hmenu, idCmdFirst, idCmdLast, uFlags); - } - else - { - idCmdFirst = BuildBackgroundContextMenu(This, hmenu, idCmdFirst, idCmdLast, uFlags); - } - - return S_OK; -} - -static -HRESULT -NotifyShellViewWindow(LPCMINVOKECOMMANDINFO lpcmi, BOOL bRefresh) -{ - LPSHELLBROWSER lpSB; - LPSHELLVIEW lpSV = NULL; - HWND hwndSV = NULL; - - if((lpSB = (LPSHELLBROWSER)SendMessageA(lpcmi->hwnd, CWM_GETISHELLBROWSER,0,0))) - { - if(SUCCEEDED(IShellBrowser_QueryActiveShellView(lpSB, &lpSV))) - { - IShellView_GetWindow(lpSV, &hwndSV); - } - } - - if (LOWORD(lpcmi->lpVerb) == FCIDM_SHVIEW_REFRESH || bRefresh) - { - if (lpSV) - IShellView_Refresh(lpSV); - - return S_OK; - } - - SendMessageW(hwndSV, WM_COMMAND, MAKEWPARAM(LOWORD(lpcmi->lpVerb), 0), 0); - - return S_OK; -} - -static -HRESULT -DoPaste( - IDefaultContextMenuImpl *This, - LPCMINVOKECOMMANDINFO lpcmi) -{ - IDataObject * pda; - STGMEDIUM medium; - FORMATETC formatetc; - LPITEMIDLIST * apidl; - LPITEMIDLIST pidl; - IShellFolder *psfFrom = NULL, *psfDesktop, *psfTarget = NULL; - LPIDA lpcida; - ISFHelper *psfhlpdst, *psfhlpsrc; - HRESULT hr; - - if (OleGetClipboard(&pda) != S_OK) - return E_FAIL; - - InitFormatEtc(formatetc, RegisterClipboardFormatW(CFSTR_SHELLIDLIST), TYMED_HGLOBAL); - hr = IDataObject_GetData(pda,&formatetc,&medium); - - if (FAILED(hr)) - { - IDataObject_Release(pda); - return E_FAIL; - } - - /* lock the handle */ - lpcida = GlobalLock(medium.u.hGlobal); - if (!lpcida) - { - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - return E_FAIL; - } - - /* convert the data into pidl */ - apidl = _ILCopyCidaToaPidl(&pidl, lpcida); - - if (!apidl) - return E_FAIL; - - if (FAILED(SHGetDesktopFolder(&psfDesktop))) - { - SHFree(pidl); - _ILFreeaPidl(apidl, lpcida->cidl); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - return E_FAIL; - } - - if (_ILIsDesktop(pidl)) - { - /* use desktop shellfolder */ - psfFrom = psfDesktop; - } - else if (FAILED(IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (LPVOID*)&psfFrom))) - { - ERR("no IShellFolder\n"); - - IShellFolder_Release(psfDesktop); - SHFree(pidl); - _ILFreeaPidl(apidl, lpcida->cidl); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - - return E_FAIL; - } - - if (This->dcm.cidl) - { - IShellFolder_Release(psfDesktop); - hr = IShellFolder_BindToObject(This->dcm.psf, This->dcm.apidl[0], NULL, &IID_IShellFolder, (LPVOID*)&psfTarget); - } - else - { - IPersistFolder2 *ppf2 = NULL; - LPITEMIDLIST pidl; - - /* cidl is zero due to explorer view */ - hr = IShellFolder_QueryInterface (This->dcm.psf, &IID_IPersistFolder2, (LPVOID *) &ppf2); - if (SUCCEEDED(hr)) - { - hr = IPersistFolder2_GetCurFolder (ppf2, &pidl); - IPersistFolder2_Release(ppf2); - if (SUCCEEDED(hr)) - { - if (_ILIsDesktop(pidl)) - { - /* use desktop shellfolder */ - psfTarget = psfDesktop; - } - else - { - /* retrieve target desktop folder */ - hr = IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (LPVOID*)&psfTarget); - } - TRACE("psfTarget %x %p, Desktop %u\n", hr, psfTarget, _ILIsDesktop(pidl)); - ILFree(pidl); - } - } - } - - if (FAILED(hr)) - { - ERR("no IShellFolder\n"); - - IShellFolder_Release(psfFrom); - SHFree(pidl); - _ILFreeaPidl(apidl, lpcida->cidl); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - - return E_FAIL; - } - - - /* get source and destination shellfolder */ - if (FAILED(IShellFolder_QueryInterface(psfTarget, &IID_ISFHelper, (LPVOID*)&psfhlpdst))) - { - ERR("no IID_ISFHelper for destination\n"); - - IShellFolder_Release(psfFrom); - IShellFolder_Release(psfTarget); - SHFree(pidl); - _ILFreeaPidl(apidl, lpcida->cidl); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - - return E_FAIL; - } - - if (FAILED(IShellFolder_QueryInterface(psfFrom, &IID_ISFHelper, (LPVOID*)&psfhlpsrc))) - { - ERR("no IID_ISFHelper for source\n"); - - ISFHelper_Release(psfhlpdst); - IShellFolder_Release(psfFrom); - IShellFolder_Release(psfTarget); - SHFree(pidl); - _ILFreeaPidl(apidl, lpcida->cidl); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - return E_FAIL; - } - - /* FIXXME - * do we want to perform a copy or move ??? - */ - hr = ISFHelper_CopyItems(psfhlpdst, psfFrom, lpcida->cidl, (LPCITEMIDLIST*)apidl); - - ISFHelper_Release(psfhlpdst); - ISFHelper_Release(psfhlpsrc); - IShellFolder_Release(psfFrom); - IShellFolder_Release(psfTarget); - SHFree(pidl); - _ILFreeaPidl(apidl, lpcida->cidl); - ReleaseStgMedium(&medium); - IDataObject_Release(pda); - TRACE("CP result %x\n",hr); - return S_OK; -} - -static -HRESULT -DoOpenOrExplore( - IDefaultContextMenuImpl *iface, - LPCMINVOKECOMMANDINFO lpcmi) -{ - - - return E_FAIL; -} - -BOOL -GetUniqueFileName(LPWSTR szBasePath, LPWSTR szExt, LPWSTR szTarget, BOOL bShortcut) -{ - UINT RetryCount = 0, Length; - WCHAR szLnk[40]; - HANDLE hFile; - - if (!bShortcut) - { - Length = LoadStringW(shell32_hInstance, IDS_LNK_FILE, szLnk, sizeof(szLnk)/sizeof(WCHAR)); - } - - do - { - if (!bShortcut) - { - if (RetryCount) - swprintf(szTarget, L"%s%s(%u).%s", szLnk, szBasePath, RetryCount, szExt); - else - swprintf(szTarget, L"%s%s.%s", szLnk, szBasePath, szExt); - } - else - { - if (RetryCount) - swprintf(szTarget, L"%s(%u).%s", szBasePath, RetryCount, szExt); - else - swprintf(szTarget, L"%s.%s", szBasePath, szExt); - } - - hFile = CreateFileW(szTarget, GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL); - if (hFile != INVALID_HANDLE_VALUE) - { - CloseHandle(hFile); - return TRUE; - } - - }while(RetryCount++ < 100); - - return FALSE; - -} - -static -HRESULT -DoCreateLink( - IDefaultContextMenuImpl *This, - LPCMINVOKECOMMANDINFO lpcmi) -{ - WCHAR szPath[MAX_PATH]; - WCHAR szTarget[MAX_PATH] = {0}; - WCHAR szDirPath[MAX_PATH]; - LPWSTR pszFile; - STRRET strFile; - LPWSTR pszExt; - HRESULT hr; - IShellLinkW * nLink; - IPersistFile * ipf; - static WCHAR szLnk[] = L"lnk"; - - if (IShellFolder2_GetDisplayNameOf(This->dcm.psf, This->dcm.apidl[0], SHGDN_FORPARSING, &strFile) != S_OK) - { - ERR("IShellFolder_GetDisplayNameOf failed for apidl\n"); - return E_FAIL; - } - - if (StrRetToBufW(&strFile, This->dcm.apidl[0], szPath, MAX_PATH) != S_OK) - return E_FAIL; - - pszExt = wcsrchr(szPath, L'.'); - - if (pszExt && !wcsicmp(pszExt + 1, szLnk)) - { - if (!GetUniqueFileName(szPath, pszExt + 1, szTarget, TRUE)) - return E_FAIL; - - hr = IShellLink_ConstructFromFile(NULL, &IID_IPersistFile, This->dcm.apidl[0], (LPVOID*)&ipf); - if (hr != S_OK) - { - return hr; - } - hr = IPersistFile_Save(ipf, szTarget, FALSE); - IPersistFile_Release(ipf); - NotifyShellViewWindow(lpcmi, TRUE); - return hr; - } - else - { - if (!GetUniqueFileName(szPath, szLnk, szTarget, TRUE)) - return E_FAIL; - - hr = IShellLink_Constructor(NULL, &IID_IShellLinkW, (LPVOID*)&nLink); - if (hr != S_OK) - { - return E_FAIL; - } - - GetFullPathName(szPath, MAX_PATH, szDirPath, &pszFile); - if (pszFile) pszFile[0] = 0; - - if (SUCCEEDED(IShellLinkW_SetPath(nLink, szPath)) && - SUCCEEDED(IShellLinkW_SetWorkingDirectory(nLink, szDirPath))) - { - if (SUCCEEDED(IShellLinkW_QueryInterface(nLink, &IID_IPersistFile, (LPVOID*)&ipf))) - { - hr = IPersistFile_Save(ipf, szTarget, TRUE); - IPersistFile_Release(ipf); - } - } - IShellLinkW_Release(nLink); - NotifyShellViewWindow(lpcmi, TRUE); - return hr; - } -} - -static -HRESULT -DoDelete( - IDefaultContextMenuImpl *This, - LPCMINVOKECOMMANDINFO lpcmi) -{ - HRESULT hr; - STRRET strTemp; - WCHAR szPath[MAX_PATH]; - LPWSTR wszPath, wszPos; - SHFILEOPSTRUCTW op; - int ret; - LPSHELLBROWSER lpSB; - HWND hwnd; - - hr = IShellFolder2_GetDisplayNameOf(This->dcm.psf, This->dcm.apidl[0], SHGDN_FORPARSING, &strTemp); - if(hr != S_OK) - { - ERR("IShellFolder_GetDisplayNameOf failed with %x\n", hr); - return hr; - } - ZeroMemory(szPath, sizeof(szPath)); - hr = StrRetToBufW(&strTemp, This->dcm.apidl[0], szPath, MAX_PATH); - if (hr != S_OK) - { - ERR("StrRetToBufW failed with %x\n", hr); - return hr; - } - - /* Only keep the base path */ - wszPos = strrchrW(szPath, '\\'); - if (wszPos != NULL) - { - *(wszPos + 1) = '\0'; - } - - wszPath = build_paths_list(szPath, This->dcm.cidl, This->dcm.apidl); - - ZeroMemory(&op, sizeof(op)); - op.hwnd = GetActiveWindow(); - op.wFunc = FO_DELETE; - op.pFrom = wszPath; - op.fFlags = FOF_ALLOWUNDO; - ret = SHFileOperationW(&op); - - if (ret) - { - ERR("SHFileOperation failed with 0x%x for %s\n", GetLastError(), debugstr_w(wszPath)); - return S_OK; - } - - /* get the active IShellView */ - if ((lpSB = (LPSHELLBROWSER)SendMessageA(lpcmi->hwnd, CWM_GETISHELLBROWSER,0,0))) - { - /* is the treeview focused */ - if (SUCCEEDED(IShellBrowser_GetControlWindow(lpSB, FCW_TREE, &hwnd))) - { - HTREEITEM hItem = TreeView_GetSelection(hwnd); - if (hItem) - { - (void)TreeView_DeleteItem(hwnd, hItem); - } - } - } - NotifyShellViewWindow(lpcmi, TRUE); - - HeapFree(GetProcessHeap(), 0, wszPath); - return S_OK; - -} - -static -HRESULT -DoCopyOrCut( - IDefaultContextMenuImpl *iface, - LPCMINVOKECOMMANDINFO lpcmi, - BOOL bCopy) -{ - LPSHELLBROWSER lpSB; - LPSHELLVIEW lpSV; - LPDATAOBJECT pDataObj; - HRESULT hr; - - if (SUCCEEDED(SHCreateDataObject(iface->dcm.pidlFolder, iface->dcm.cidl, iface->dcm.apidl, NULL, &IID_IDataObject, (void**)&pDataObj))) - { - hr = OleSetClipboard(pDataObj); - IDataObject_Release(pDataObj); - return hr; - } - - lpSB = (LPSHELLBROWSER)SendMessageA(lpcmi->hwnd, CWM_GETISHELLBROWSER,0,0); - if (!lpSB) - { - TRACE("failed to get shellbrowser\n"); - return E_FAIL; - } - - hr = IShellBrowser_QueryActiveShellView(lpSB, &lpSV); - if (FAILED(hr)) - { - TRACE("failed to query the active shellview\n"); - return hr; - } - - hr = IShellView_GetItemObject(lpSV, SVGIO_SELECTION, &IID_IDataObject, (LPVOID*)&pDataObj); - if (FAILED(hr)) - { - TRACE("failed to get item object\n"); - return hr; - } - - hr = OleSetClipboard(pDataObj); - if (FAILED(hr)) - { - WARN("OleSetClipboard failed"); - } - IDataObject_Release(pDataObj); - IShellView_Release(lpSV); - return S_OK; -} - -static -HRESULT -DoRename( - IDefaultContextMenuImpl *This, - LPCMINVOKECOMMANDINFO lpcmi) -{ - LPSHELLBROWSER lpSB; - LPSHELLVIEW lpSV; - HWND hwnd; - - /* get the active IShellView */ - if ((lpSB = (LPSHELLBROWSER)SendMessageA(lpcmi->hwnd, CWM_GETISHELLBROWSER,0,0))) - { - /* is the treeview focused */ - if (SUCCEEDED(IShellBrowser_GetControlWindow(lpSB, FCW_TREE, &hwnd))) - { - HTREEITEM hItem = TreeView_GetSelection(hwnd); - if (hItem) - { - (void)TreeView_EditLabel(hwnd, hItem); - } - } - - if(SUCCEEDED(IShellBrowser_QueryActiveShellView(lpSB, &lpSV))) - { - IShellView_SelectItem(lpSV, This->dcm.apidl[0], - SVSI_DESELECTOTHERS|SVSI_EDIT|SVSI_ENSUREVISIBLE|SVSI_FOCUSED|SVSI_SELECT); - IShellView_Release(lpSV); - return S_OK; - } - } - return E_FAIL; -} - -static -HRESULT -DoProperties( - IDefaultContextMenuImpl *This, - LPCMINVOKECOMMANDINFO lpcmi) -{ - WCHAR szDrive[MAX_PATH]; - STRRET strFile; - - if (This->dcm.cidl &&_ILIsMyComputer(This->dcm.apidl[0])) - { - ShellExecuteW(lpcmi->hwnd, L"open", L"rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl", NULL, NULL, SW_SHOWNORMAL); - return S_OK; - } - else if (This->dcm.cidl == 0 && _ILIsDesktop(This->dcm.pidlFolder)) - { - ShellExecuteW(lpcmi->hwnd, L"open", L"rundll32.exe shell32.dll,Control_RunDLL desk.cpl", NULL, NULL, SW_SHOWNORMAL); - return S_OK; - } - else if (_ILIsDrive(This->dcm.apidl[0])) - { - ILGetDisplayName(This->dcm.apidl[0], szDrive); - SH_ShowDriveProperties(szDrive, This->dcm.pidlFolder, This->dcm.apidl); - return S_OK; - } - else if (_ILIsNetHood(This->dcm.apidl[0])) - { - //FIXME path! - ShellExecuteW(NULL, L"open", L"explorer.exe", - L"/n,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}", - NULL, SW_SHOWDEFAULT); - return S_OK; - } - else if (_ILIsBitBucket(This->dcm.apidl[0])) - { - /* FIXME - * detect the drive path of bitbucket if appropiate - */ - - SH_ShowRecycleBinProperties(L'C'); - return S_OK; - } - - if (This->dcm.cidl > 1) - WARN("SHMultiFileProperties is not yet implemented\n"); - - if (IShellFolder2_GetDisplayNameOf(This->dcm.psf, This->dcm.apidl[0], SHGDN_FORPARSING, &strFile) != S_OK) - { - ERR("IShellFolder_GetDisplayNameOf failed for apidl\n"); - return E_FAIL; - } - - if (StrRetToBufW(&strFile, This->dcm.apidl[0], szDrive, MAX_PATH) != S_OK) - return E_FAIL; - - return SH_ShowPropertiesDialog(szDrive, This->dcm.pidlFolder, This->dcm.apidl); -} - -static -HRESULT -DoFormat( - IDefaultContextMenuImpl *This, - LPCMINVOKECOMMANDINFO lpcmi) -{ - char sDrive[5] = {0}; - - if (!_ILGetDrive(This->dcm.apidl[0], sDrive, sizeof(sDrive))) - { - ERR("pidl is not a drive\n"); - return E_FAIL; - } - - SHFormatDrive(lpcmi->hwnd, sDrive[0] - 'A', SHFMT_ID_DEFAULT, 0); - return S_OK; -} - -static -HRESULT -DoDynamicShellExtensions( - IDefaultContextMenuImpl *This, - LPCMINVOKECOMMANDINFO lpcmi) -{ - UINT verb = LOWORD(lpcmi->lpVerb); - PDynamicShellEntry pCurrent = This->dhead; - - TRACE("verb %p first %x last %x", lpcmi->lpVerb, This->iIdSHEFirst, This->iIdSHELast); - - while(pCurrent && verb > pCurrent->iIdCmdFirst + pCurrent->NumIds) - pCurrent = pCurrent->Next; - - if (!pCurrent) - return E_FAIL; - - if (verb >= pCurrent->iIdCmdFirst && verb <= pCurrent->iIdCmdFirst + pCurrent->NumIds) - { - /* invoke the dynamic context menu */ - lpcmi->lpVerb = MAKEINTRESOURCEA(verb - pCurrent->iIdCmdFirst); - return IContextMenu_InvokeCommand(pCurrent->CMenu, lpcmi); - } - - return E_FAIL; -} - - -static -HRESULT -DoStaticShellExtensions( - IDefaultContextMenuImpl *This, - LPCMINVOKECOMMANDINFO lpcmi) -{ - STRRET strFile; - WCHAR szPath[MAX_PATH]; - WCHAR szDir[MAX_PATH]; - SHELLEXECUTEINFOW sei; - PStaticShellEntry pCurrent = This->shead; - int verb = LOWORD(lpcmi->lpVerb) - This->iIdSCMFirst; - - - while(pCurrent && verb-- > 0) - pCurrent = pCurrent->Next; - - if (verb > 0) - return E_FAIL; - - - if (IShellFolder2_GetDisplayNameOf(This->dcm.psf, This->dcm.apidl[0], SHGDN_FORPARSING, &strFile) != S_OK) - { - ERR("IShellFolder_GetDisplayNameOf failed for apidl\n"); - return E_FAIL; - } - - if (StrRetToBufW(&strFile, This->dcm.apidl[0], szPath, MAX_PATH) != S_OK) - return E_FAIL; - - wcscpy(szDir, szPath); - PathRemoveFileSpec(szDir); - - ZeroMemory(&sei, sizeof(sei)); - sei.cbSize = sizeof(sei); - sei.fMask = SEE_MASK_CLASSNAME; - sei.lpClass = pCurrent->szClass; - sei.hwnd = lpcmi->hwnd; - sei.nShow = SW_SHOWNORMAL; - sei.lpVerb = pCurrent->szVerb; - sei.lpFile = szPath; - sei.lpDirectory = szDir; - ShellExecuteExW(&sei); - return S_OK; - -} - -static -HRESULT -WINAPI -IDefaultContextMenu_fnInvokeCommand( - IContextMenu2 *iface, - LPCMINVOKECOMMANDINFO lpcmi) -{ - IDefaultContextMenuImpl * This = impl_from_IContextMenu(iface); - - switch(LOWORD(lpcmi->lpVerb)) - { - case FCIDM_SHVIEW_BIGICON: - case FCIDM_SHVIEW_SMALLICON: - case FCIDM_SHVIEW_LISTVIEW: - case FCIDM_SHVIEW_REPORTVIEW: - case 0x30: /* FIX IDS in resource files */ - case 0x31: - case 0x32: - case 0x33: - case FCIDM_SHVIEW_AUTOARRANGE: - case FCIDM_SHVIEW_SNAPTOGRID: - case FCIDM_SHVIEW_REFRESH: - return NotifyShellViewWindow(lpcmi, FALSE); - case FCIDM_SHVIEW_INSERT: - case FCIDM_SHVIEW_INSERTLINK: - return DoPaste(This, lpcmi); - case FCIDM_SHVIEW_OPEN: - case FCIDM_SHVIEW_EXPLORE: - return DoOpenOrExplore(This, lpcmi); - case FCIDM_SHVIEW_COPY: - case FCIDM_SHVIEW_CUT: - return DoCopyOrCut(This, lpcmi, LOWORD(lpcmi->lpVerb) == FCIDM_SHVIEW_COPY); - case FCIDM_SHVIEW_CREATELINK: - return DoCreateLink(This, lpcmi); - case FCIDM_SHVIEW_DELETE: - return DoDelete(This, lpcmi); - case FCIDM_SHVIEW_RENAME: - return DoRename(This, lpcmi); - case FCIDM_SHVIEW_PROPERTIES: - return DoProperties(This, lpcmi); - case 0x7ABC: - return DoFormat(This, lpcmi); - } - - if (This->iIdSHEFirst && This->iIdSHELast) - { - if (LOWORD(lpcmi->lpVerb) >= This->iIdSHEFirst && LOWORD(lpcmi->lpVerb) <= This->iIdSHELast) - { - return DoDynamicShellExtensions(This, lpcmi); - } - } - - if (This->iIdSCMFirst && This->iIdSCMLast) - { - if (LOWORD(lpcmi->lpVerb) >= This->iIdSCMFirst && LOWORD(lpcmi->lpVerb) <= This->iIdSCMLast) - { - return DoStaticShellExtensions(This, lpcmi); - } - } - - FIXME("Unhandled Verb %xl\n",LOWORD(lpcmi->lpVerb)); - return E_UNEXPECTED; -} - -static -HRESULT -WINAPI -IDefaultContextMenu_fnGetCommandString( - IContextMenu2 *iface, - UINT_PTR idCommand, - UINT uFlags, - UINT* lpReserved, - LPSTR lpszName, - UINT uMaxNameLen) -{ - - return S_OK; -} - -static -HRESULT -WINAPI -IDefaultContextMenu_fnHandleMenuMsg( - IContextMenu2 *iface, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - - return S_OK; -} - -static const IContextMenu2Vtbl cmvt = -{ - IDefaultContextMenu_fnQueryInterface, - IDefaultContextMenu_fnAddRef, - IDefaultContextMenu_fnRelease, - IDefaultContextMenu_fnQueryContextMenu, - IDefaultContextMenu_fnInvokeCommand, - IDefaultContextMenu_fnGetCommandString, - IDefaultContextMenu_fnHandleMenuMsg -}; -static -HRESULT -IDefaultContextMenu_Constructor( - const DEFCONTEXTMENU *pdcm, - REFIID riid, - void **ppv) -{ - IDefaultContextMenuImpl * This; - HRESULT hr = E_FAIL; - IDataObject * pDataObj; - - This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDefaultContextMenuImpl)); - if (This) - { - This->lpVtbl = &cmvt; - This->ref = 1; - TRACE("cidl %u\n", This->dcm.cidl); - if (SUCCEEDED(SHCreateDataObject(pdcm->pidlFolder, pdcm->cidl, pdcm->apidl, NULL, &IID_IDataObject, (void**)&pDataObj))) - { - This->pDataObj = pDataObj; - } - CopyMemory(&This->dcm, pdcm, sizeof(DEFCONTEXTMENU)); - hr = IDefaultContextMenu_fnQueryInterface((IContextMenu2*)This, riid, ppv); - if (SUCCEEDED(hr)) - IContextMenu_Release((IContextMenu2*)This); - } - - TRACE("This(%p)(%x) cidl %u\n",This, hr, This->dcm.cidl); - return hr; -} - -/************************************************************************* - * SHCreateDefaultContextMenu [SHELL32.325] Vista API - * - */ - -HRESULT -WINAPI -SHCreateDefaultContextMenu( - const DEFCONTEXTMENU *pdcm, - REFIID riid, - void **ppv) -{ - HRESULT hr = E_FAIL; - - *ppv = NULL; - hr = IDefaultContextMenu_Constructor( pdcm, riid, ppv ); - - TRACE("pcm %p hr %x\n", pdcm, hr); - return hr; -} - -/************************************************************************* - * CDefFolderMenu_Create2 [SHELL32.701] - * - */ - -HRESULT -WINAPI -CDefFolderMenu_Create2( - LPCITEMIDLIST pidlFolder, - HWND hwnd, - UINT cidl, - LPCITEMIDLIST *apidl, - IShellFolder *psf, - LPFNDFMCALLBACK lpfn, - UINT nKeys, - const HKEY *ahkeyClsKeys, - IContextMenu **ppcm) -{ - DEFCONTEXTMENU pdcm; - HRESULT hr; - - pdcm.hwnd = hwnd; - pdcm.pcmcb = NULL; - pdcm.pidlFolder = pidlFolder; - pdcm.psf = psf; - pdcm.cidl = cidl; - pdcm.apidl = apidl; - pdcm.punkAssociationInfo = NULL; - pdcm.cKeys = nKeys; - pdcm.aKeys = ahkeyClsKeys; - - hr = SHCreateDefaultContextMenu(&pdcm, &IID_IContextMenu, (void**)ppcm); - return hr; -} - diff --git a/reactos/dll/win32/shell32/shv_item_new.c b/reactos/dll/win32/shell32/shv_item_new.c deleted file mode 100644 index 228efd27316..00000000000 --- a/reactos/dll/win32/shell32/shv_item_new.c +++ /dev/null @@ -1,847 +0,0 @@ -/* - * PROJECT: shell32 - * LICENSE: GPL - See COPYING in the top level directory - * FILE: dll/win32/shell32/shv_item_new.c - * PURPOSE: provides new shell item service - * PROGRAMMERS: Johannes Anderwald (janderwald@reactos.org) - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -typedef enum -{ - SHELLNEW_TYPE_COMMAND = 1, - SHELLNEW_TYPE_DATA = 2, - SHELLNEW_TYPE_FILENAME = 4, - SHELLNEW_TYPE_NULLFILE = 8 -}SHELLNEW_TYPE; - - -typedef struct __SHELLNEW_ITEM__ -{ - SHELLNEW_TYPE Type; - LPWSTR szExt; - LPWSTR szTarget; - LPWSTR szDesc; - LPWSTR szIcon; - struct __SHELLNEW_ITEM__ * Next; -}SHELLNEW_ITEM, *PSHELLNEW_ITEM; - -typedef struct -{ - const IContextMenu2Vtbl *lpVtblContextMenu; - const IShellExtInitVtbl *lpvtblShellExtInit; - LPWSTR szPath; - IShellFolder *pSFParent; - PSHELLNEW_ITEM s_SnHead; -}INewMenuImpl, *LPINewMenuImpl; - -//static const IContextMenu2Vtbl cmvt; -//static const IShellExtInitVtbl sei; -static WCHAR szNew[MAX_PATH]; - - -static -BOOL -GetKeyDescription(LPWSTR szKeyName, LPWSTR szResult) -{ - HKEY hKey; - DWORD dwDesc, dwError; - WCHAR szDesc[100]; - - static const WCHAR szFriendlyTypeName[] = { '\\','F','r','i','e','n','d','l','y','T','y','p','e','N','a','m','e',0 }; - - TRACE("GetKeyDescription: keyname %s\n", debugstr_w(szKeyName)); - - if (RegOpenKeyExW(HKEY_CLASSES_ROOT,szKeyName,0, KEY_READ | KEY_QUERY_VALUE,&hKey) != ERROR_SUCCESS) - return FALSE; - - if (RegLoadMUIStringW(hKey,szFriendlyTypeName,szResult,MAX_PATH,&dwDesc,0,NULL) == ERROR_SUCCESS) - { - TRACE("result %s\n", debugstr_w(szResult)); - RegCloseKey(hKey); - return TRUE; - } - /* fetch default value */ - dwDesc = sizeof(szDesc); - dwError = RegGetValueW(hKey,NULL,NULL, RRF_RT_REG_SZ,NULL,szDesc,&dwDesc); - if(dwError == ERROR_SUCCESS) - { - if (wcsncmp(szKeyName, szDesc, dwDesc / sizeof(WCHAR))) - { - /* recurse for to a linked key */ - if (!GetKeyDescription(szDesc, szResult)) - { - /* use description */ - wcscpy(szResult, szDesc); - } - } - else - { - /* use default value as description */ - wcscpy(szResult, szDesc); - } - } - else - { - /* registry key w/o default key?? */ - TRACE("RegGetValue failed with %x\n", dwError); - wcscpy(szResult, szKeyName); - } - - RegCloseKey(hKey); - return TRUE; -} - - -PSHELLNEW_ITEM LoadItem(LPWSTR szKeyName) -{ - HKEY hKey; - DWORD dwIndex; - WCHAR szName[MAX_PATH]; - WCHAR szCommand[MAX_PATH]; - WCHAR szDesc[MAX_PATH] = {0}; - WCHAR szIcon[MAX_PATH] = {0}; - DWORD dwName, dwCommand; - LONG result; - PSHELLNEW_ITEM pNewItem; - - static const WCHAR szShellNew[] = { '\\','S','h','e','l','l','N','e','w',0 }; - static const WCHAR szCmd[] = { 'C','o','m','m','a','n','d',0 }; - static const WCHAR szData[] = { 'D','a','t','a',0 }; - static const WCHAR szFileName[] = { 'F','i','l','e','N','a','m','e', 0 }; - static const WCHAR szNullFile[] = { 'N','u','l','l','F','i','l','e', 0 }; - - - wcscpy(szName, szKeyName); - GetKeyDescription(szKeyName, szDesc); - wcscat(szName, szShellNew); - result = RegOpenKeyExW(HKEY_CLASSES_ROOT,szName,0,KEY_READ,&hKey); - - //TRACE("LoadItem dwName %d keyname %s szName %s szDesc %s szIcon %s\n", dwName, debugstr_w(szKeyName), debugstr_w(szName), debugstr_w(szDesc), debugstr_w(szIcon)); - - if (result != ERROR_SUCCESS) - { - return NULL; - } - - dwIndex = 0; - pNewItem = NULL; - - do - { - dwName = MAX_PATH; - dwCommand = MAX_PATH; - result = RegEnumValueW(hKey,dwIndex,szName,&dwName,NULL,NULL,(LPBYTE)szCommand, &dwCommand); - if (result == ERROR_SUCCESS) - { - long type = -1; - LPWSTR szTarget = szCommand; - //TRACE("szName %s szCommand %s\n", debugstr_w(szName), debugstr_w(szCommand)); - if (!wcsicmp(szName, szCmd)) - { - type = SHELLNEW_TYPE_COMMAND; - }else if (!wcsicmp(szName, szData)) - { - type = SHELLNEW_TYPE_DATA; - } - else if (!wcsicmp(szName, szFileName)) - { - type = SHELLNEW_TYPE_FILENAME; - } - else if (!wcsicmp(szName, szNullFile)) - { - type = SHELLNEW_TYPE_NULLFILE; - szTarget = NULL; - } - if (type != -1) - { - pNewItem = HeapAlloc(GetProcessHeap(), 0, sizeof(SHELLNEW_ITEM)); - pNewItem->Type = type; - if (szTarget) - pNewItem->szTarget = _wcsdup(szTarget); - else - pNewItem->szTarget = NULL; - - pNewItem->szDesc = _wcsdup(szDesc); - pNewItem->szIcon = _wcsdup(szIcon); - pNewItem->szExt = _wcsdup(szKeyName); - pNewItem->Next = NULL; - break; - } - } - dwIndex++; - }while(result != ERROR_NO_MORE_ITEMS); - RegCloseKey(hKey); - return pNewItem; -} - - -BOOL -LoadShellNewItems(INewMenuImpl * This) -{ - DWORD dwIndex; - WCHAR szName[MAX_PATH]; - LONG result; - PSHELLNEW_ITEM pNewItem; - PSHELLNEW_ITEM pCurItem = NULL; - static WCHAR szLnk[] = { '.','l','n','k',0 }; - - /* insert do new folder action */ - if (!LoadStringW(shell32_hInstance, FCIDM_SHVIEW_NEW, szNew, sizeof(szNew) / sizeof(WCHAR))) - szNew[0] = 0; - szNew[MAX_PATH-1] = 0; - - dwIndex = 0; - do - { - result = RegEnumKeyW(HKEY_CLASSES_ROOT,dwIndex,szName,MAX_PATH); - if (result == ERROR_SUCCESS) - { - pNewItem = LoadItem(szName); - if (pNewItem) - { - if (!wcsicmp(pNewItem->szExt, szLnk)) - { - if (This->s_SnHead) - { - pNewItem->Next = This->s_SnHead; - This->s_SnHead = pNewItem; - } - else - { - This->s_SnHead = pCurItem = pNewItem; - } - } - else - { - if (pCurItem) - { - pCurItem->Next = pNewItem; - pCurItem = pNewItem; - } - else - { - pCurItem = This->s_SnHead = pNewItem; - } - } - } - } - dwIndex++; - }while(result != ERROR_NO_MORE_ITEMS); - - if (This->s_SnHead == NULL) - return FALSE; - else - return TRUE; -} - -UINT -InsertShellNewItems(HMENU hMenu, UINT idFirst, UINT idMenu, INewMenuImpl * This) -{ - MENUITEMINFOW mii; - PSHELLNEW_ITEM pCurItem; - UINT i; - WCHAR szBuffer[MAX_PATH]; - - if (This->s_SnHead == NULL) - { - if (!LoadShellNewItems(This)) - return 0; - } - - ZeroMemory(&mii, sizeof(mii)); - mii.cbSize = sizeof(mii); - - /* insert do new shortcut action */ - if (!LoadStringW(shell32_hInstance, FCIDM_SHVIEW_NEWFOLDER, szBuffer, sizeof(szBuffer) / sizeof(szBuffer[0]))) - szBuffer[0] = 0; - szBuffer[MAX_PATH-1] = 0; - mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | MIIM_DATA; - mii.fType = MFT_STRING; - mii.dwTypeData = szBuffer; - mii.cch = wcslen(mii.dwTypeData); - mii.wID = idFirst++; - InsertMenuItemW(hMenu, idMenu++, TRUE, &mii); - - /* insert do new shortcut action */ - if (!LoadStringW(shell32_hInstance, FCIDM_SHVIEW_NEWLINK, szBuffer, sizeof(szBuffer) / sizeof(szBuffer[0]))) - szBuffer[0] = 0; - szBuffer[MAX_PATH-1] = 0; - mii.dwTypeData = szBuffer; - mii.cch = wcslen(mii.dwTypeData); - mii.wID = idFirst++; - InsertMenuItemW(hMenu, idMenu++, TRUE, &mii); - - /* insert seperator for custom new action */ - mii.fMask = MIIM_TYPE | MIIM_ID; - mii.fType = MFT_SEPARATOR; - mii.wID = -1; - InsertMenuItemW(hMenu, idMenu++, TRUE, &mii); - - mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | MIIM_DATA; - /* - * FIXME - * implement loading of icons - * and using MFT_OWNERDRAWN - */ - mii.fType = MFT_STRING; - mii.fState = MFS_ENABLED; - - pCurItem = This->s_SnHead; - i = 0; - - while(pCurItem) - { - if (i >= 1) - { - TRACE("szDesc %s\n", debugstr_w(pCurItem->szDesc)); - mii.dwTypeData = pCurItem->szDesc; - mii.cch = wcslen(mii.dwTypeData); - mii.wID = idFirst++; - InsertMenuItemW(hMenu, idMenu++, TRUE, &mii); - } - pCurItem = pCurItem->Next; - i++; - } - return (i+2); -} - -HRESULT -DoShellNewCmd(INewMenuImpl * This, LPCMINVOKECOMMANDINFO lpcmi) -{ - PSHELLNEW_ITEM pCurItem = This->s_SnHead; - IPersistFolder3 * psf; - LPITEMIDLIST pidl; - STRRET strTemp; - WCHAR szTemp[MAX_PATH]; - WCHAR szBuffer[MAX_PATH]; - WCHAR szPath[MAX_PATH]; - STARTUPINFOW sInfo; - PROCESS_INFORMATION pi; - UINT i, target; - HANDLE hFile; - DWORD dwWritten, dwError; - - static const WCHAR szP1[] = { '%', '1', 0 }; - static const WCHAR szFormat[] = {'%','s',' ','(','%','d',')','%','s',0 }; - - i = 1; - target = LOWORD(lpcmi->lpVerb); - - while(pCurItem) - { - if (i == target) - break; - - pCurItem = pCurItem->Next; - i++; - } - - if (!pCurItem) - return E_UNEXPECTED; - - if (IShellFolder2_QueryInterface(This->pSFParent, &IID_IPersistFolder2, (LPVOID*)&psf) != S_OK) - { - ERR("Failed to get interface IID_IPersistFolder2\n"); - return E_FAIL; - } - if (IPersistFolder2_GetCurFolder(psf, &pidl) != S_OK) - { - ERR("IPersistFolder2_GetCurFolder failed\n"); - return E_FAIL; - } - - if (IShellFolder2_GetDisplayNameOf(This->pSFParent, pidl, SHGDN_FORPARSING, &strTemp) != S_OK) - { - ERR("IShellFolder_GetDisplayNameOf failed\n"); - return E_FAIL; - } - StrRetToBufW(&strTemp, pidl, szPath, MAX_PATH); - - switch(pCurItem->Type) - { - case SHELLNEW_TYPE_COMMAND: - { - LPWSTR ptr; - LPWSTR szCmd; - - if (!ExpandEnvironmentStringsW(pCurItem->szTarget, szBuffer, MAX_PATH)) - { - TRACE("ExpandEnvironmentStrings failed\n"); - break; - } - - ptr = wcsstr(szBuffer, szP1); - if (ptr) - { - ptr[1] = 's'; - swprintf(szTemp, szBuffer, szPath); - ptr = szTemp; - } - else - { - ptr = szBuffer; - } - - ZeroMemory(&sInfo, sizeof(sInfo)); - sInfo.cb = sizeof(sInfo); - szCmd = _wcsdup(ptr); - if (!szCmd) - break; - if (CreateProcessW(NULL, szCmd, NULL, NULL,FALSE,0,NULL,NULL,&sInfo, &pi)) - { - CloseHandle( pi.hProcess ); - CloseHandle( pi.hThread ); - } - free(szCmd); - break; - } - case SHELLNEW_TYPE_DATA: - case SHELLNEW_TYPE_FILENAME: - case SHELLNEW_TYPE_NULLFILE: - { - i = 2; - - PathAddBackslashW(szPath); - wcscat(szPath, szNew); - wcscat(szPath, L" "); - wcscat(szPath, pCurItem->szDesc); - wcscpy(szBuffer, szPath); - wcscat(szBuffer, pCurItem->szExt); - do - { - hFile = CreateFileW(szBuffer, GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL); - if (hFile != INVALID_HANDLE_VALUE) - break; - dwError = GetLastError(); - - TRACE("FileName %s szBuffer %s i %u error %x\n", debugstr_w(szBuffer), debugstr_w(szPath), i, dwError); - swprintf(szBuffer, szFormat, szPath, i, pCurItem->szExt); - i++; - }while(hFile == INVALID_HANDLE_VALUE && dwError == ERROR_FILE_EXISTS); - - if (hFile == INVALID_HANDLE_VALUE) - return E_FAIL; - - if (pCurItem->Type == SHELLNEW_TYPE_DATA) - { - i = WideCharToMultiByte(CP_ACP, 0, pCurItem->szTarget, -1, (LPSTR)szTemp, MAX_PATH*2, NULL, NULL); - if (i) - { - WriteFile(hFile, (LPCVOID)szTemp, i, &dwWritten, NULL); - } - } - CloseHandle(hFile); - if (pCurItem->Type == SHELLNEW_TYPE_FILENAME) - { - if (!CopyFileW(pCurItem->szTarget, szBuffer, FALSE)) - break; - } - TRACE("Notifying fs %s\n", debugstr_w(szBuffer)); - SHChangeNotify(SHCNE_CREATE, SHCNF_PATHW, (LPCVOID)szBuffer, NULL); - break; - } - } - return S_OK; -} -/************************************************************************** -* DoMeasureItem -*/ -HRESULT -DoMeasureItem(INewMenuImpl *This, HWND hWnd, MEASUREITEMSTRUCT * lpmis) -{ - PSHELLNEW_ITEM pCurItem; - PSHELLNEW_ITEM pItem; - UINT i; - HDC hDC; - SIZE size; - - TRACE("DoMeasureItem entered with id %x\n", lpmis->itemID); - - pCurItem = This->s_SnHead; - - i = 1; - pItem = NULL; - while(pCurItem) - { - if (i == lpmis->itemID) - { - pItem = pCurItem; - break; - } - pCurItem = pCurItem->Next; - i++; - } - - if (!pItem) - { - TRACE("DoMeasureItem no item found\n"); - return E_FAIL; - } - hDC = GetDC(hWnd); - GetTextExtentPoint32W(hDC, pCurItem->szDesc, wcslen(pCurItem->szDesc), &size); - lpmis->itemWidth = size.cx + 32; - lpmis->itemHeight = max(size.cy, 20); - ReleaseDC (hWnd, hDC); - return S_OK; -} -/************************************************************************** -* DoDrawItem -*/ -HRESULT -DoDrawItem(INewMenuImpl *This, HWND hWnd, DRAWITEMSTRUCT * drawItem) -{ - PSHELLNEW_ITEM pCurItem; - PSHELLNEW_ITEM pItem; - UINT i; - pCurItem = This->s_SnHead; - - TRACE("DoDrawItem entered with id %x\n", drawItem->itemID); - - i = 1; - pItem = NULL; - while(pCurItem) - { - if (i == drawItem->itemID) - { - pItem = pCurItem; - break; - } - pCurItem = pCurItem->Next; - i++; - } - - if (!pItem) - return E_FAIL; - - drawItem->rcItem.left += 20; - - DrawTextW(drawItem->hDC, pCurItem->szDesc, wcslen(pCurItem->szDesc), &drawItem->rcItem, 0); - return S_OK; -} - -/************************************************************************** -* DoNewFolder -*/ -static void DoNewFolder( - INewMenuImpl *This, - IShellView *psv) -{ - ISFHelper * psfhlp; - WCHAR wszName[MAX_PATH]; - - IShellFolder_QueryInterface(This->pSFParent, &IID_ISFHelper, (LPVOID*)&psfhlp); - if (psfhlp) - { - LPITEMIDLIST pidl; - - if (ISFHelper_GetUniqueName(psfhlp, wszName, MAX_PATH) != S_OK) - return; - if (ISFHelper_AddFolder(psfhlp, 0, wszName, &pidl) != S_OK) - return; - - if(psv) - { - IShellView_Refresh(psv); - /* if we are in a shellview do labeledit */ - IShellView_SelectItem(psv, - pidl,(SVSI_DESELECTOTHERS | SVSI_EDIT | SVSI_ENSUREVISIBLE - |SVSI_FOCUSED|SVSI_SELECT)); - IShellView_Refresh(psv); - } - SHFree(pidl); - - ISFHelper_Release(psfhlp); - } -} - - -static LPINewMenuImpl __inline impl_from_IShellExtInit( IShellExtInit *iface ) -{ - return (INewMenuImpl *)((char*)iface - FIELD_OFFSET(INewMenuImpl, lpvtblShellExtInit)); -} - -static LPINewMenuImpl __inline impl_from_IContextMenu( IContextMenu2 *iface ) -{ - return (INewMenuImpl *)((char*)iface - FIELD_OFFSET(INewMenuImpl, lpVtblContextMenu)); -} - -static HRESULT WINAPI INewItem_fnQueryInterface(INewMenuImpl * This, REFIID riid, LPVOID *ppvObj) -{ - TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - - *ppvObj = NULL; - - if(IsEqualIID(riid, &IID_IUnknown) || - IsEqualIID(riid, &IID_IContextMenu) || - IsEqualIID(riid, &IID_IContextMenu2)) - { - *ppvObj = (void *)&This->lpVtblContextMenu; - } - else if(IsEqualIID(riid, &IID_IShellExtInit)) - { - *ppvObj = (void *)&This->lpvtblShellExtInit; - } - - - if(*ppvObj) - { - IUnknown_AddRef((IUnknown*)*ppvObj); - TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj); - return S_OK; - } - TRACE("-- Interface: E_NOINTERFACE\n"); - return E_NOINTERFACE; -} - -static ULONG WINAPI INewItem_fnAddRef(INewMenuImpl *iface) -{ - /* INewItem service is singleton */ - return 2; -} - -static ULONG WINAPI INewItem_fnRelease(INewMenuImpl *This) -{ - /* INewItem service is singleton */ - return 1; -} - -static -HRESULT -WINAPI -INewItem_IContextMenu_fnQueryInterface( IContextMenu2* iface, REFIID riid, void** ppvObject ) -{ - INewMenuImpl *This = impl_from_IContextMenu(iface); - return INewItem_fnQueryInterface(This, riid, ppvObject); -} - -static -ULONG -WINAPI -INewItem_IContextMenu_fnAddRef(IContextMenu2 *iface) -{ - INewMenuImpl *This = impl_from_IContextMenu(iface); - return INewItem_fnAddRef(This); -} - -static -ULONG -WINAPI -INewItem_IContextMenu_fnRelease(IContextMenu2 *iface) -{ - INewMenuImpl *This = impl_from_IContextMenu(iface); - return INewItem_fnRelease(This); -} - -static -HRESULT -WINAPI -INewItem_IContextMenu_fnQueryContextMenu(IContextMenu2 *iface, - HMENU hmenu, - UINT indexMenu, - UINT idCmdFirst, - UINT idCmdLast, - UINT uFlags) -{ - WCHAR szBuffer[200]; - MENUITEMINFOW mii; - HMENU hSubMenu; - int id = 1; - INewMenuImpl *This = impl_from_IContextMenu(iface); - - TRACE("%p %p %u %u %u %u\n", This, - hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags ); - - if (!LoadStringW(shell32_hInstance, FCIDM_SHVIEW_NEW, szBuffer, 200)) - { - szBuffer[0] = 0; - } - szBuffer[199] = 0; - - hSubMenu = CreateMenu(); - memset( &mii, 0, sizeof(mii) ); - mii.cbSize = sizeof (mii); - mii.fMask = MIIM_TYPE | MIIM_ID | MIIM_STATE; - mii.fType = MFT_STRING; - mii.wID = idCmdFirst + id++; - mii.dwTypeData = szBuffer; - mii.cch = wcslen( mii.dwTypeData ); - mii.fState = MFS_ENABLED; - - if (hSubMenu) - { - id += InsertShellNewItems( hSubMenu, idCmdFirst, 0, This); - mii.fMask |= MIIM_SUBMENU; - mii.hSubMenu = hSubMenu; - } - - - if (!InsertMenuItemW( hmenu, indexMenu, TRUE, &mii )) - return E_FAIL; - - return MAKE_HRESULT( SEVERITY_SUCCESS, 0, id ); -} - -static -HRESULT -WINAPI -INewItem_IContextMenu_fnInvokeCommand( IContextMenu2* iface, - LPCMINVOKECOMMANDINFO lpici ) -{ - LPSHELLBROWSER lpSB; - LPSHELLVIEW lpSV = NULL; - HRESULT hr; - INewMenuImpl *This = impl_from_IContextMenu(iface); - - if((lpSB = (LPSHELLBROWSER)SendMessageA(lpici->hwnd, CWM_GETISHELLBROWSER,0,0))) - { - IShellBrowser_QueryActiveShellView(lpSB, &lpSV); - } - - if (LOWORD(lpici->lpVerb) == 0) - { - DoNewFolder(This, lpSV); - return S_OK; - } - - hr = DoShellNewCmd(This, lpici); - if (SUCCEEDED(hr) && lpSV) - { - IShellView_Refresh(lpSV); - } - - TRACE("INewItem_IContextMenu_fnInvokeCommand %x\n", hr); - return hr; -} - -static -HRESULT -WINAPI -INewItem_IContextMenu_fnGetCommandString( IContextMenu2* iface, - UINT_PTR idCmd, - UINT uType, - UINT* pwReserved, - LPSTR pszName, - UINT cchMax ) -{ - INewMenuImpl *This = impl_from_IContextMenu(iface); - - FIXME("%p %lu %u %p %p %u\n", This, - idCmd, uType, pwReserved, pszName, cchMax ); - - return E_NOTIMPL; -} - -static -HRESULT -WINAPI -INewItem_IContextMenu_fnHandleMenuMsg(IContextMenu2 *iface, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - INewMenuImpl *This = impl_from_IContextMenu(iface); - DRAWITEMSTRUCT * lpids = (DRAWITEMSTRUCT*) lParam; - MEASUREITEMSTRUCT *lpmis = (MEASUREITEMSTRUCT*) lParam; - - TRACE("INewItem_IContextMenu_fnHandleMenuMsg (%p)->(msg=%x wp=%lx lp=%lx)\n",This, uMsg, wParam, lParam); - - - switch(uMsg) - { - case WM_MEASUREITEM: - return DoMeasureItem(This, (HWND)wParam, lpmis); - break; - case WM_DRAWITEM: - return DoDrawItem(This, (HWND)wParam, lpids); - break; - } - return S_OK; - - return E_UNEXPECTED; -} - -static const IContextMenu2Vtbl cmvt = -{ - INewItem_IContextMenu_fnQueryInterface, - INewItem_IContextMenu_fnAddRef, - INewItem_IContextMenu_fnRelease, - INewItem_IContextMenu_fnQueryContextMenu, - INewItem_IContextMenu_fnInvokeCommand, - INewItem_IContextMenu_fnGetCommandString, - INewItem_IContextMenu_fnHandleMenuMsg -}; - -static HRESULT WINAPI -INewItem_ExtInit_fnQueryInterface( IShellExtInit* iface, REFIID riid, void** ppvObject ) -{ - return INewItem_fnQueryInterface(impl_from_IShellExtInit(iface), riid, ppvObject); -} - -static ULONG WINAPI -INewItem_ExtInit_AddRef( IShellExtInit* iface ) -{ - return INewItem_fnAddRef(impl_from_IShellExtInit(iface)); -} - -static ULONG WINAPI -INewItem_ExtInit_Release( IShellExtInit* iface ) -{ - return INewItem_fnRelease(impl_from_IShellExtInit(iface)); -} - -static HRESULT WINAPI -INewItem_ExtInit_Initialize( IShellExtInit* iface, LPCITEMIDLIST pidlFolder, - IDataObject *pdtobj, HKEY hkeyProgID ) -{ - - return S_OK; -} - -static const IShellExtInitVtbl sei = -{ - INewItem_ExtInit_fnQueryInterface, - INewItem_ExtInit_AddRef, - INewItem_ExtInit_Release, - INewItem_ExtInit_Initialize -}; -static INewMenuImpl *cached_ow = NULL; - -VOID -INewItem_SetCurrentShellFolder(IShellFolder * psfParent) -{ - if (cached_ow) - cached_ow->pSFParent = psfParent; -} - -HRESULT WINAPI INewItem_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv) -{ - INewMenuImpl * ow; - HRESULT res; - - if (!cached_ow) - { - ow = LocalAlloc(LMEM_ZEROINIT, sizeof(INewMenuImpl)); - if (!ow) - { - return E_OUTOFMEMORY; - } - - ow->lpVtblContextMenu = &cmvt; - ow->lpvtblShellExtInit = &sei; - ow->s_SnHead = NULL; - ow->szPath = NULL; - - if (InterlockedCompareExchangePointer((void *)&cached_ow, ow, NULL) != NULL) - { - /* some other thread already been here */ - LocalFree( ow ); - } - } - - res = INewItem_fnQueryInterface( cached_ow, riid, ppv ); - return res; -} diff --git a/reactos/dll/win32/shell32/startmenu.c b/reactos/dll/win32/shell32/startmenu.c deleted file mode 100644 index 5e81610deb7..00000000000 --- a/reactos/dll/win32/shell32/startmenu.c +++ /dev/null @@ -1,583 +0,0 @@ -/* - * Start menu object - * - * Copyright 2007 Hervé Poussineau - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell32start); - -typedef struct _tagStartMenu { - const IMenuPopupVtbl *vtbl; - const IObjectWithSiteVtbl *objectSiteVtbl; - const IInitializeObjectVtbl *initObjectVtbl; - const IMenuBandVtbl *menuBandVtbl; - IUnknown *pUnkSite; - LONG refCount; - IBandSite * pBandSite; -} StartMenu, *LPStartMenu; - -typedef struct _tagMenuBandSite { - const IBandSiteVtbl * lpVtbl; - LONG refCount; - - IUnknown ** Objects; - LONG ObjectsCount; - -} MenuBandSite, *LPMenuBandSite; - -static const IMenuPopupVtbl StartMenuVtbl; -static const IObjectWithSiteVtbl StartMenu_ObjectWithSiteVtbl; -static const IInitializeObjectVtbl StartMenu_InitializeObjectVtbl; -static const IBandSiteVtbl StartMenu_BandSiteVtbl; -static const IMenuBandVtbl StartMenu_MenuBandVtbl; - -static LPStartMenu __inline impl_from_IMenuPopup(IMenuPopup *iface) -{ - return (LPStartMenu)((char *)iface - FIELD_OFFSET(StartMenu, vtbl)); -} - -static LPStartMenu __inline impl_from_IObjectWithSite(IObjectWithSite *iface) -{ - return (LPStartMenu)((char *)iface - FIELD_OFFSET(StartMenu, objectSiteVtbl)); -} - -static LPStartMenu __inline impl_from_IInitializeObject(IInitializeObject *iface) -{ - return (LPStartMenu)((char *)iface - FIELD_OFFSET(StartMenu, initObjectVtbl)); -} - -HRESULT WINAPI StartMenu_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv) -{ - StartMenu *This; - - TRACE("StartMenu_Constructor(%p, %s, %p)\n", pUnkOuter, debugstr_guid(riid), ppv); - - if (pUnkOuter) - return E_POINTER; - - This = CoTaskMemAlloc(sizeof(StartMenu)); - if (!This) - return E_OUTOFMEMORY; - ZeroMemory(This, sizeof(*This)); - This->vtbl = &StartMenuVtbl; - This->objectSiteVtbl = &StartMenu_ObjectWithSiteVtbl; - This->initObjectVtbl = &StartMenu_InitializeObjectVtbl; - This->menuBandVtbl = &StartMenu_MenuBandVtbl; - This->refCount = 1; - - TRACE("StartMenu_Constructor returning %p\n", This); - *ppv = (IUnknown *)This; - return S_OK; -} - -static void WINAPI StartMenu_Destructor(StartMenu *This) -{ - TRACE("destroying %p\n", This); - if (This->pUnkSite) IUnknown_Release(This->pUnkSite); - CoTaskMemFree(This); -} - -static HRESULT WINAPI StartMenu_QueryInterface(IMenuPopup *iface, REFIID iid, LPVOID *ppvOut) -{ - StartMenu *This = impl_from_IMenuPopup(iface); - *ppvOut = NULL; - - TRACE("StartMenu_QueryInterface (%p, %s, %p)\n", iface, debugstr_guid(iid), ppvOut); - - if (IsEqualIID(iid, &IID_IUnknown) || IsEqualIID(iid, &IID_IOleWindow) - || IsEqualIID(iid, &IID_IDeskBar) || IsEqualIID(iid, &IID_IMenuPopup)) - { - *ppvOut = (void *)&This->vtbl; - } - else if (IsEqualIID(iid, &IID_IObjectWithSite)) - { - *ppvOut = (void *)&This->objectSiteVtbl; - } - else if (IsEqualIID(iid, &IID_IInitializeObject)) - { - *ppvOut = (void *)&This->initObjectVtbl; - } - - if (*ppvOut) - { - IUnknown_AddRef(iface); - return S_OK; - } - - WARN("unsupported interface: %s\n", debugstr_guid(iid)); - return E_NOINTERFACE; -} - -static ULONG WINAPI StartMenu_AddRef(IMenuPopup *iface) -{ - StartMenu *This = impl_from_IMenuPopup(iface); - TRACE("StartMenu_AddRef(%p)\n", iface); - return InterlockedIncrement(&This->refCount); -} - -static ULONG WINAPI StartMenu_Release(IMenuPopup *iface) -{ - StartMenu *This = impl_from_IMenuPopup(iface); - ULONG ret; - - TRACE("StartMenu_Release(%p)\n", iface); - - ret = InterlockedDecrement(&This->refCount); - if (ret == 0) - StartMenu_Destructor(This); - return ret; -} - -static HRESULT WINAPI StartMenu_GetWindow(IMenuPopup *iface, HWND *phwnd) -{ - FIXME("(%p, %p)\n", iface, phwnd); - return E_NOTIMPL; -} - -static HRESULT WINAPI StartMenu_ContextSensitiveHelp(IMenuPopup *iface, BOOL fEnterMode) -{ - FIXME("(%p, %d)\n", iface, fEnterMode); - return E_NOTIMPL; -} - -static HRESULT WINAPI StartMenu_SetClient(IMenuPopup *iface, IUnknown *punkClient) -{ - FIXME("(%p, %p)\n", iface, punkClient); - return E_NOTIMPL; -} - -static HRESULT WINAPI StartMenu_GetClient(IMenuPopup *iface, IUnknown **ppunkClient) -{ - StartMenu * This = (StartMenu*)iface; - - TRACE("StartMenu_GetClient (%p, %p)\n", iface, ppunkClient); - - *ppunkClient = (IUnknown*)This->pBandSite; - IUnknown_AddRef(*ppunkClient); - return S_OK; -} - -static HRESULT WINAPI StartMenu_OnPosRectChangeDB(IMenuPopup *iface, LPRECT prc) -{ - FIXME("(%p, %p)\n", iface, prc); - return E_NOTIMPL; -} - -static HRESULT WINAPI StartMenu_Popup(IMenuPopup *iface, POINTL *ppt, RECTL *prcExclude, MP_POPUPFLAGS dwFlags) -{ - FIXME("(%p, %p, %p, %x)\n", iface, ppt, prcExclude, dwFlags); - return E_NOTIMPL; -} - -static HRESULT WINAPI StartMenu_OnSelect(IMenuPopup *iface, DWORD dwSelectType) -{ - FIXME("(%p, %u)\n", iface, dwSelectType); - return E_NOTIMPL; -} - -static HRESULT WINAPI StartMenu_SetSubMenu(IMenuPopup *iface, IMenuPopup *pmp, BOOL fSet) -{ - FIXME("(%p, %p, %d)\n", iface, pmp, fSet); - return E_NOTIMPL; -} - -static const IMenuPopupVtbl StartMenuVtbl = -{ - /* IUnknown */ - StartMenu_QueryInterface, - StartMenu_AddRef, - StartMenu_Release, - - /* IOleWindow */ - StartMenu_GetWindow, - StartMenu_ContextSensitiveHelp, - - /* IDeskBar */ - StartMenu_SetClient, - StartMenu_GetClient, - StartMenu_OnPosRectChangeDB, - - /* IMenuPopup */ - StartMenu_Popup, - StartMenu_OnSelect, - StartMenu_SetSubMenu, -}; - -static HRESULT WINAPI StartMenu_IObjectWithSite_QueryInterface(IObjectWithSite *iface, REFIID iid, LPVOID *ppvOut) -{ - StartMenu *This = impl_from_IObjectWithSite(iface); - TRACE("(%p, %s, %p)\n", iface, debugstr_guid(iid), ppvOut); - return StartMenu_QueryInterface((IMenuPopup *)This, iid, ppvOut); -} - -static ULONG WINAPI StartMenu_IObjectWithSite_AddRef(IObjectWithSite *iface) -{ - StartMenu *This = impl_from_IObjectWithSite(iface); - TRACE("(%p)\n", iface); - return StartMenu_AddRef((IMenuPopup *)This); -} - -static ULONG WINAPI StartMenu_IObjectWithSite_Release(IObjectWithSite *iface) -{ - StartMenu *This = impl_from_IObjectWithSite(iface); - TRACE("StartMenu_IObjectWithSite_Release (%p)\n", iface); - return StartMenu_Release((IMenuPopup *)This); -} - -static HRESULT WINAPI StartMenu_IObjectWithSite_SetSite(IObjectWithSite *iface, IUnknown *pUnkSite) -{ - StartMenu *This = impl_from_IObjectWithSite(iface); - - TRACE("StartMenu_IObjectWithSite_SetSite(%p, %p)\n", iface, pUnkSite); - - if (This->pUnkSite) - IUnknown_Release(This->pUnkSite); - This->pUnkSite = pUnkSite; - if (This->pUnkSite) - IUnknown_AddRef(This->pUnkSite); - return S_OK; -} - -static HRESULT WINAPI StartMenu_IObjectWithSite_GetSite(IObjectWithSite *iface, REFIID riid, void **ppvSite) -{ - StartMenu *This = impl_from_IObjectWithSite(iface); - - TRACE("(%p, %s, %p)\n", iface, debugstr_guid(riid), ppvSite); - - if (!This->pUnkSite) - return E_FAIL; - - return IUnknown_QueryInterface(This->pUnkSite, riid, ppvSite); -} - -static const IObjectWithSiteVtbl StartMenu_ObjectWithSiteVtbl = -{ - StartMenu_IObjectWithSite_QueryInterface, - StartMenu_IObjectWithSite_AddRef, - StartMenu_IObjectWithSite_Release, - - StartMenu_IObjectWithSite_SetSite, - StartMenu_IObjectWithSite_GetSite, -}; - -static HRESULT WINAPI StartMenu_IInitializeObject_QueryInterface(IInitializeObject *iface, REFIID iid, LPVOID *ppvOut) -{ - StartMenu *This = impl_from_IInitializeObject(iface); - TRACE("(%p, %s, %p)\n", iface, debugstr_guid(iid), ppvOut); - return StartMenu_QueryInterface((IMenuPopup *)This, iid, ppvOut); -} - -static ULONG WINAPI StartMenu_IInitializeObject_AddRef(IInitializeObject *iface) -{ - StartMenu *This = impl_from_IInitializeObject(iface); - TRACE("StartMenu_IInitializeObject_AddRef(%p)\n", iface); - return StartMenu_AddRef((IMenuPopup *)This); -} - -static ULONG WINAPI StartMenu_IInitializeObject_Release(IInitializeObject *iface) -{ - StartMenu *This = impl_from_IInitializeObject(iface); - TRACE("StartMenu_IInitializeObject_Release (%p)\n", iface); - return StartMenu_Release((IMenuPopup *)This); -} - -static HRESULT WINAPI StartMenu_IInitializeObject_Initialize(IInitializeObject *iface) -{ - HRESULT hr; - StartMenu *This = impl_from_IInitializeObject(iface); - TRACE("StartMenu_IInitializeObject_Initialize (%p)\n", iface); - - hr = MenuBandSite_Constructor(NULL, &IID_IBandSite, (LPVOID*)&This->pBandSite); - if (FAILED(hr)) - return hr; - - return IBandSite_AddBand(This->pBandSite, (IUnknown*)&This->menuBandVtbl); -} - -static const IInitializeObjectVtbl StartMenu_InitializeObjectVtbl = -{ - StartMenu_IInitializeObject_QueryInterface, - StartMenu_IInitializeObject_AddRef, - StartMenu_IInitializeObject_Release, - - StartMenu_IInitializeObject_Initialize, -}; - -//-------------------------------------------------------------- -// IMenuBand interface - - -static HRESULT STDMETHODCALLTYPE StartMenu_IMenuBand_QueryInterface(IMenuBand *iface, REFIID iid, LPVOID *ppvOut) -{ - StartMenu *This = (StartMenu*)CONTAINING_RECORD(iface, StartMenu, menuBandVtbl); - - if (IsEqualIID(iid, &IID_IUnknown) || - IsEqualIID(iid, &IID_IMenuBand)) - { - *ppvOut = &This->menuBandVtbl; - IUnknown_AddRef((IUnknown*)*ppvOut); - return S_OK; - } - - WARN("unsupported interface:(%p, %s, %p)\n", iface, debugstr_guid(iid), ppvOut); - return E_NOINTERFACE; -} - -static ULONG STDMETHODCALLTYPE StartMenu_IMenuBand_AddRef(IMenuBand *iface) -{ - StartMenu *This = (StartMenu*)CONTAINING_RECORD(iface, StartMenu, menuBandVtbl); - TRACE("StartMenu_IInitializeObject_AddRef(%p)\n", This); - return StartMenu_AddRef((IMenuPopup *)This); -} - -static ULONG STDMETHODCALLTYPE StartMenu_IMenuBand_Release(IMenuBand *iface) -{ - StartMenu *This = (StartMenu*)CONTAINING_RECORD(iface, StartMenu, menuBandVtbl); - TRACE("StartMenu_IInitializeObject_Release (%p)\n", This); - return StartMenu_Release((IMenuPopup *)This); -} - -HRESULT STDMETHODCALLTYPE StartMenu_IMenuBand_IsMenuMessage(IMenuBand *iface, MSG *pmsg) -{ - StartMenu *This = (StartMenu*)CONTAINING_RECORD(iface, StartMenu, menuBandVtbl); - TRACE("StartMenu_IMenuBand_IsMenuMessage Stub(%p)\n", This); - return E_NOTIMPL; -} - -HRESULT STDMETHODCALLTYPE StartMenu_IMenuBand_TranslateMenuMessage(IMenuBand *iface, MSG *pmsg, LRESULT *plRet) -{ - StartMenu *This = (StartMenu*)CONTAINING_RECORD(iface, StartMenu, menuBandVtbl); - TRACE("StartMenu_IMenuBand_TranslateMenuMessage Stub(%p)\n", This); - return E_NOTIMPL; -} - - -static const IMenuBandVtbl StartMenu_MenuBandVtbl = -{ - /* IUnknown methods */ - StartMenu_IMenuBand_QueryInterface, - StartMenu_IMenuBand_AddRef, - StartMenu_IMenuBand_Release, - /* IMenuBand methods */ - StartMenu_IMenuBand_IsMenuMessage, - StartMenu_IMenuBand_TranslateMenuMessage, -}; - - -//--------------------------------------------------------------------------------------------------------- -// IBandSite interface - - -HRESULT WINAPI MenuBandSite_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv) -{ - MenuBandSite *This; - HRESULT hr; - - TRACE("StartMenu_Constructor(%p, %s, %p)\n", pUnkOuter, debugstr_guid(riid), ppv); - - if (pUnkOuter) - return E_POINTER; - - This = CoTaskMemAlloc(sizeof(MenuBandSite)); - if (!This) - return E_OUTOFMEMORY; - - ZeroMemory(This, sizeof(MenuBandSite)); - This->lpVtbl = &StartMenu_BandSiteVtbl; - - hr = IUnknown_QueryInterface((IUnknown*)&This->lpVtbl, riid, ppv); - - if (FAILED(hr)) - { - CoTaskMemFree(This); - return hr; - } - - TRACE("StartMenu_Constructor returning %p\n", This); - *ppv = (IUnknown *)This; - return S_OK; -} - -static HRESULT WINAPI BandSite_QueryInterface(IBandSite *iface, REFIID iid, LPVOID *ppvOut) -{ - MenuBandSite *This = (MenuBandSite*)CONTAINING_RECORD(iface, MenuBandSite, lpVtbl); - - if (IsEqualIID(iid, &IID_IUnknown) || - IsEqualIID(iid, &IID_IBandSite)) - { - *ppvOut = &This->lpVtbl; - IUnknown_AddRef((IUnknown*)*ppvOut); - return S_OK; - } - - return E_NOINTERFACE; -} - -static ULONG WINAPI BandSite_AddRef(IBandSite *iface) -{ - MenuBandSite *This = (MenuBandSite*)CONTAINING_RECORD(iface, MenuBandSite, lpVtbl); - TRACE("BandSite_AddRef(%p)\n", iface); - return InterlockedIncrement(&This->refCount); -} - -static ULONG WINAPI BandSite_Release(IBandSite *iface) -{ - LONG ret; - MenuBandSite *This = (MenuBandSite*)CONTAINING_RECORD(iface, MenuBandSite, lpVtbl); - - ret = InterlockedDecrement(&This->refCount); - TRACE("BandSite_Release refCount %u\n", ret); - - if (ret == 0) - { - CoTaskMemFree(This->Objects); - CoTaskMemFree(This); - } - - return ret; -} - - -static HRESULT STDMETHODCALLTYPE BandSite_AddBand(IBandSite *iface, IUnknown *punk) -{ - IUnknown ** Objects; - MenuBandSite *This = (MenuBandSite*)CONTAINING_RECORD(iface, MenuBandSite, lpVtbl); - - TRACE("StartMenu_IBandSite_AddBand Stub punk %p\n", punk); - - if (!punk) - return E_FAIL; - - Objects = (IUnknown**) CoTaskMemAlloc(sizeof(IUnknown*) * (This->ObjectsCount + 1)); - if (!Objects) - return E_FAIL; - - RtlMoveMemory(Objects, This->Objects, sizeof(IUnknown*) * This->ObjectsCount); - - CoTaskMemFree(This->Objects); - - This->Objects = Objects; - Objects[This->ObjectsCount] = punk; - - IUnknown_AddRef(punk); - - This->ObjectsCount++; - - - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE BandSite_EnumBands(IBandSite *iface, UINT uBand, DWORD *pdwBandID) -{ - ULONG Index, ObjectCount; - MenuBandSite *This = (MenuBandSite*)CONTAINING_RECORD(iface, MenuBandSite, lpVtbl); - - TRACE("StartMenu_IBandSite_EnumBands Stub uBand %uu pdwBandID %p\n", uBand, pdwBandID); - - if (uBand == (UINT)-1) - return This->ObjectsCount; - - ObjectCount = 0; - - for(Index = 0; Index < This->ObjectsCount; Index++) - { - if (This->Objects[Index] != NULL) - { - if (uBand == ObjectCount) - { - *pdwBandID = Index; - return S_OK; - } - ObjectCount++; - } - } - return E_FAIL; -} - -static HRESULT STDMETHODCALLTYPE BandSite_QueryBand(IBandSite *iface, DWORD dwBandID, IDeskBand **ppstb, DWORD *pdwState, LPWSTR pszName, int cchName) -{ - FIXME("StartMenu_IBandSite_QueryBand Stub dwBandID %u IDeskBand %p pdwState %p Name %p cchName %u\n", dwBandID, ppstb, pdwState, pszName, cchName); - return E_FAIL; -} - -static HRESULT STDMETHODCALLTYPE BandSite_SetBandState(IBandSite *iface, DWORD dwBandID, DWORD dwMask, DWORD dwState) -{ - FIXME("StartMenu_IBandSite_SetBandState Stub dwBandID %u dwMask %x dwState %u\n", dwBandID, dwMask, dwState); - return E_FAIL; -} -static HRESULT STDMETHODCALLTYPE BandSite_RemoveBand(IBandSite *iface, DWORD dwBandID) -{ - MenuBandSite *This = (MenuBandSite*)CONTAINING_RECORD(iface, MenuBandSite, lpVtbl); - TRACE("StartMenu_IBandSite_RemoveBand Stub dwBandID %u\n", dwBandID); - - if (This->ObjectsCount <= dwBandID) - return E_FAIL; - - if (This->Objects[dwBandID]) - { - This->Objects[dwBandID]->lpVtbl->Release(This->Objects[dwBandID]); - This->Objects[dwBandID] = NULL; - } - - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE BandSite_GetBandObject(IBandSite *iface, DWORD dwBandID, REFIID riid, void **ppv) -{ - MenuBandSite *This = (MenuBandSite*)CONTAINING_RECORD(iface, MenuBandSite, lpVtbl); - - TRACE("StartMenu_IBandSite_GetBandObject Stub dwBandID %u riid %p ppv %p\n", dwBandID, riid, ppv); - - if (This->ObjectsCount <= dwBandID) - return E_FAIL; - - if (This->Objects[dwBandID]) - { - return IUnknown_QueryInterface(This->Objects[dwBandID], riid, ppv); - } - - return E_FAIL; -} -static HRESULT STDMETHODCALLTYPE BandSite_SetBandSiteInfo(IBandSite *iface, const BANDSITEINFO *pbsinfo) -{ - FIXME("StartMenu_IBandSite_SetBandSiteInfo Stub pbsinfo %p\n", pbsinfo); - return E_FAIL; - -} -static HRESULT STDMETHODCALLTYPE BandSite_GetBandSiteInfo(IBandSite *iface, BANDSITEINFO *pbsinfo) -{ - FIXME("StartMenu_IBandSite_GetBandSiteInfo Stub pbsinfo %p\n", pbsinfo); - return E_FAIL; -} - -static const IBandSiteVtbl StartMenu_BandSiteVtbl = -{ - BandSite_QueryInterface, - BandSite_AddRef, - BandSite_Release, - BandSite_AddBand, - BandSite_EnumBands, - BandSite_QueryBand, - BandSite_SetBandState, - BandSite_RemoveBand, - BandSite_GetBandObject, - BandSite_SetBandSiteInfo, - BandSite_GetBandSiteInfo -}; - diff --git a/reactos/dll/win32/shell32/stubs.c b/reactos/dll/win32/shell32/stubs.c deleted file mode 100644 index b3192ea2c25..00000000000 --- a/reactos/dll/win32/shell32/stubs.c +++ /dev/null @@ -1,1419 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: shell32.dll - * FILE: dll/win32/shell32/stubs.c - * PURPOSE: shell32.dll stubs - * PROGRAMMER: Dmitry Chapyshev (dmitry@reactos.org) - * NOTES: If you implement a function, remove it from this file - * UPDATE HISTORY: - * 03/02/2009 Created - */ - - -#include - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -/* - * Unimplemented - */ -HLOCAL -WINAPI -SHLocalAlloc(UINT uFlags, SIZE_T uBytes) -{ - FIXME("SHLocalAlloc() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -HLOCAL -WINAPI -SHLocalFree(HLOCAL hMem) -{ - FIXME("SHLocalFree() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -HLOCAL -WINAPI -SHLocalReAlloc(HLOCAL hMem, - SIZE_T uBytes, - UINT uFlags) -{ - FIXME("SHLocalReAlloc() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -LPWSTR -WINAPI -AddCommasW(DWORD dwUnknown, LPWSTR lpNumber) -{ - LPWSTR lpRetBuf = L"0"; - - FIXME("AddCommasW() stub\n"); - return lpRetBuf; -} - -/* - * Unimplemented - */ -LPWSTR -WINAPI -ShortSizeFormatW(LONGLONG llNumber) -{ - FIXME("ShortSizeFormatW() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHFindComputer(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - FIXME("SHFindComputer() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHLimitInputEdit(HWND hWnd, LPVOID lpUnknown) -{ - FIXME("SHLimitInputEdit() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHLimitInputCombo(HWND hWnd, LPVOID lpUnknown) -{ - FIXME("SHLimitInputCombo() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -PathIsEqualOrSubFolder(LPWSTR lpFolder, LPWSTR lpSubFolder) -{ - FIXME("PathIsEqualOrSubFolder() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHCreateFileExtractIconW(LPCWSTR pszPath, - DWORD dwFileAttributes, - LPVOID lpUnknown1, - LPVOID lpUnknown2) -{ - FIXME("SHCreateFileExtractIconW() stub\n"); - return E_FAIL; -} - -HRESULT -WINAPI -SHGetUnreadMailCountW(HKEY hKeyUser, - LPCWSTR pszMailAddress, - DWORD *pdwCount, - FILETIME *pFileTime, - LPCWSTR pszShellExecuteCommand, - int cchShellExecuteCommand) -{ - FIXME("SHGetUnreadMailCountW() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHSetUnreadMailCountW(LPCWSTR pszMailAddress, - DWORD dwCount, - LPCWSTR pszShellExecuteCommand) -{ - FIXME("SHSetUnreadMailCountW() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -VOID -WINAPI -CheckDiskSpace(VOID) -{ - FIXME("CheckDiskSpace() stub\n"); -} - -/* - * Unimplemented - */ -VOID -WINAPI -SHReValidateDarwinCache(VOID) -{ - FIXME("SHReValidateDarwinCache() stub\n"); -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -CopyStreamUI(IStream *pSrc, IStream *pDst, IProgressDialog *pProgDlg) -{ - FIXME("CopyStreamUI() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -FILEDESCRIPTOR* -WINAPI -GetFileDescriptor(FILEGROUPDESCRIPTOR *pFileGroupDesc, BOOL bUnicode, INT iIndex, LPWSTR lpName) -{ - FIXME("GetFileDescriptor() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHIsTempDisplayMode(VOID) -{ - FIXME("SHIsTempDisplayMode() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -LONG -WINAPI -SHCreateSessionKey(REGSAM regSam, PHKEY phKey) -{ - FIXME("SHCreateSessionKey() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -MakeShellURLFromPathW(LPCWSTR lpPath, LPWSTR lpUrl, INT cchMax) -{ - FIXME("MakeShellURLFromPathW() stub\n"); - lpUrl = NULL; - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -MakeShellURLFromPathA(LPCSTR lpPath, LPSTR lpUrl, INT cchMax) -{ - FIXME("MakeShellURLFromPathA() stub\n"); - lpUrl = NULL; - return FALSE; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHParseDarwinIDFromCacheW(LPCWSTR lpUnknown1, LPWSTR lpUnknown2) -{ - FIXME("SHParseDarwinIDFromCacheW() stub\n"); - lpUnknown2 = NULL; - return E_FAIL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHMultiFileProperties(IDataObject *pDataObject, DWORD dwFlags) -{ - FIXME("SHMultiFileProperties() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHCreatePropertyBag(REFIID refIId, LPVOID *lpUnknown) -{ - /* Call SHCreatePropertyBagOnMemory() from shlwapi.dll */ - FIXME("SHCreatePropertyBag() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHCopyMonikerToTemp(IMoniker *pMoniker, LPCWSTR lpInput, LPWSTR lpOutput, INT cchMax) -{ - /* Unimplemented in XP SP3 */ - TRACE("SHCopyMonikerToTemp() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -HLOCAL -WINAPI -CheckWinIniForAssocs(VOID) -{ - FIXME("CheckWinIniForAssocs() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHGetSetFolderCustomSettingsW(LPSHFOLDERCUSTOMSETTINGSW pfcs, - LPCWSTR pszPath, - DWORD dwReadWrite) -{ - FIXME("SHGetSetFolderCustomSettingsW() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHGetSetFolderCustomSettingsA(LPSHFOLDERCUSTOMSETTINGSA pfcs, - LPCSTR pszPath, - DWORD dwReadWrite) -{ - FIXME("SHGetSetFolderCustomSettingsA() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHOpenPropSheetA(LPSTR lpCaption, - HKEY hKeys[], - UINT uCount, - CLSID *pClsID, - IDataObject *pDataObject, - IShellBrowser *pShellBrowser, - LPSTR lpStartPage) -{ - FIXME("SHOpenPropSheetA() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHOpenPropSheetW(LPWSTR lpCaption, - HKEY hKeys[], - UINT uCount, - CLSID *pClsID, - IDataObject *pDataObject, - IShellBrowser *pShellBrowser, - LPWSTR lpStartPage) -{ - FIXME("SHOpenPropSheetW() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -VOID -WINAPI -CDefFolderMenu_MergeMenu(HINSTANCE hInstance, - UINT uMainMerge, - UINT uPopupMerge, - LPQCMINFO lpQcmInfo) -{ - FIXME("CDefFolderMenu_MergeMenu() stub\n"); -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -CDefFolderMenu_Create(LPITEMIDLIST pidlFolder, - HWND hwnd, - UINT uidl, - PCUITEMID_CHILD_ARRAY *apidl, - IShellFolder *psf, - LPFNDFMCALLBACK lpfn, - HKEY hProgID, - HKEY hBaseProgID, - IContextMenu **ppcm) -{ - FIXME("CDefFolderMenu_Create() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHChangeRegistrationReceive(LPVOID lpUnknown1, DWORD dwUnknown2) -{ - FIXME("SHChangeRegistrationReceive() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -VOID -WINAPI -SHWaitOp_Operate(LPVOID lpUnknown1, DWORD dwUnknown2) -{ - FIXME("SHWaitOp_Operate() stub\n"); -} - -/* - * Unimplemented - */ -VOID -WINAPI -SHChangeNotifyReceive(LONG lUnknown, UINT uUnknown, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) -{ - FIXME("SHChangeNotifyReceive() stub\n"); -} - -/* - * Unimplemented - */ -INT -WINAPI -RealDriveTypeFlags(INT iDrive, BOOL bUnknown) -{ - FIXME("RealDriveTypeFlags() stub\n"); - return 1; -} - -/* - * Unimplemented - */ -LPWSTR -WINAPI -StrRStrW(LPWSTR lpSrc, LPWSTR lpLast, LPWSTR lpSearch) -{ - FIXME("StrRStrW() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -LPWSTR -WINAPI -StrRStrA(LPSTR lpSrc, LPSTR lpLast, LPSTR lpSearch) -{ - FIXME("StrRStrA() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -LONG -WINAPI -ShellHookProc(INT iCode, WPARAM wParam, LPARAM lParam) -{ - /* Unimplemented in WinXP SP3 */ - TRACE("ShellHookProc() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -VOID -WINAPI -ShellExec_RunDLL(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow) -{ - FIXME("ShellExec_RunDLL() stub\n"); -} - -/* - * Unimplemented - */ -VOID -WINAPI -ShellExec_RunDLLA(HWND hwnd, HINSTANCE hInstance, LPSTR pszCmdLine, int nCmdShow) -{ - FIXME("ShellExec_RunDLLA() stub\n"); -} - -/* - * Unimplemented - */ -VOID -WINAPI -ShellExec_RunDLLW(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow) -{ - FIXME("ShellExec_RunDLLW() stub\n"); -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SheShortenPathW(LPWSTR lpPath, BOOL bShorten) -{ - FIXME("SheShortenPathW() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SheShortenPathA(LPSTR lpPath, BOOL bShorten) -{ - FIXME("SheShortenPathA() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -INT -WINAPI -SheSetCurDrive(INT iIndex) -{ - FIXME("SheSetCurDrive() stub\n"); - return 1; -} - -/* - * Unimplemented - */ -LPWSTR -WINAPI -SheRemoveQuotesW(LPWSTR lpInput) -{ - FIXME("SheRemoveQuotesW() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -LPSTR -WINAPI -SheRemoveQuotesA(LPSTR lpInput) -{ - FIXME("SheRemoveQuotesA() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -INT -WINAPI -SheGetPathOffsetW(LPWSTR lpPath) -{ - FIXME("SheGetPathOffsetW() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SheGetDirExW(LPWSTR lpDrive, - LPDWORD lpCurDirLen, - LPWSTR lpCurDir) -{ - FIXME("SheGetDirExW() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -INT -WINAPI -SheGetCurDrive(VOID) -{ - FIXME("SheGetCurDrive() stub\n"); - return 1; -} - -/* - * Unimplemented - */ -INT -WINAPI -SheFullPathW(LPWSTR lpFullName, DWORD dwPathSize, LPWSTR lpBuffer) -{ - FIXME("SheFullPathW() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -INT -WINAPI -SheFullPathA(LPSTR lpFullName, DWORD dwPathSize, LPSTR lpBuffer) -{ - FIXME("SheFullPathA() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SheConvertPathW(LPWSTR lpCmd, LPWSTR lpFileName, UINT uCmdLen) -{ - FIXME("SheConvertPathW() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -INT -WINAPI -SheChangeDirExW(LPWSTR lpDir) -{ - FIXME("SheChangeDirExW() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -INT -WINAPI -SheChangeDirExA(LPSTR lpDir) -{ - FIXME("SheChangeDirExA() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHInvokePrinterCommandW(HWND hwnd, - UINT uAction, - LPCWSTR lpBuf1, - LPCWSTR lpBuf2, - BOOL fModal) -{ - FIXME("SHInvokePrinterCommandW() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHInvokePrinterCommandA(HWND hwnd, - UINT uAction, - LPCSTR lpBuf1, - LPCSTR lpBuf2, - BOOL fModal) -{ - FIXME("SHInvokePrinterCommandA() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHCreateQueryCancelAutoPlayMoniker(IMoniker **ppmoniker) -{ - FIXME("SHCreateQueryCancelAutoPlayMoniker() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHCreateProcessAsUserW(PSHCREATEPROCESSINFOW pscpi) -{ - FIXME("SHCreateProcessAsUserW() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHChangeNotifySuspendResume(BOOL bSuspend, - LPITEMIDLIST pidl, - BOOL bRecursive, - DWORD dwReserved) -{ - FIXME("SHChangeNotifySuspendResume() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -RegenerateUserEnvironment(LPVOID *lpUnknown, BOOL bUnknown) -{ - FIXME("RegenerateUserEnvironment() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -HINSTANCE -WINAPI -RealShellExecuteExA(HWND hwnd, - LPCSTR lpOperation, - LPCSTR lpFile, - LPCSTR lpParameters, - LPCSTR lpDirectory, - LPSTR lpReturn, - LPCSTR lpTitle, - LPSTR lpReserved, - WORD nShowCmd, - HANDLE *lpProcess, - DWORD dwFlags) -{ - FIXME("RealShellExecuteExA() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -HINSTANCE -WINAPI -RealShellExecuteExW(HWND hwnd, - LPCWSTR lpOperation, - LPCWSTR lpFile, - LPCWSTR lpParameters, - LPCWSTR lpDirectory, - LPWSTR lpReturn, - LPCWSTR lpTitle, - LPWSTR lpReserved, - WORD nShowCmd, - HANDLE *lpProcess, - DWORD dwFlags) -{ - FIXME("RealShellExecuteExW() stub\n"); - return NULL; -} - -/* - * Implemented - */ -HINSTANCE -WINAPI -RealShellExecuteA(HWND hwnd, - LPCSTR lpOperation, - LPCSTR lpFile, - LPCSTR lpParameters, - LPCSTR lpDirectory, - LPSTR lpReturn, - LPCSTR lpTitle, - LPSTR lpReserved, - WORD nShowCmd, - HANDLE *lpProcess) -{ - return RealShellExecuteExA(hwnd, - lpOperation, - lpFile, - lpParameters, - lpDirectory, - lpReturn, - lpTitle, - lpReserved, - nShowCmd, - lpProcess, - 0); -} - -/* - * Implemented - */ -HINSTANCE -WINAPI -RealShellExecuteW(HWND hwnd, - LPCWSTR lpOperation, - LPCWSTR lpFile, - LPCWSTR lpParameters, - LPCWSTR lpDirectory, - LPWSTR lpReturn, - LPCWSTR lpTitle, - LPWSTR lpReserved, - WORD nShowCmd, - HANDLE *lpProcess) -{ - return RealShellExecuteExW(hwnd, - lpOperation, - lpFile, - lpParameters, - lpDirectory, - lpReturn, - lpTitle, - lpReserved, - nShowCmd, - lpProcess, - 0); -} - -/* - * Unimplemented - */ -VOID -WINAPI -PrintersGetCommand_RunDLL(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow) -{ - FIXME("PrintersGetCommand_RunDLL() stub\n"); -} - -/* - * Unimplemented - */ -VOID -WINAPI -PrintersGetCommand_RunDLLA(HWND hwnd, HINSTANCE hInstance, LPSTR pszCmdLine, int nCmdShow) -{ - FIXME("PrintersGetCommand_RunDLLA() stub\n"); -} - -/* - * Unimplemented - */ -VOID -WINAPI -PrintersGetCommand_RunDLLW(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow) -{ - FIXME("PrintersGetCommand_RunDLLW() stub\n"); -} - -/* - * Unimplemented - */ -IShellFolderViewCB* -WINAPI -SHGetShellFolderViewCB(HWND hwnd) -{ - FIXME("SHGetShellFolderViewCB() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -INT -WINAPI -SHLookupIconIndexA(LPCSTR lpName, INT iIndex, UINT uFlags) -{ - FIXME("SHLookupIconIndexA() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -INT -WINAPI -SHLookupIconIndexW(LPCWSTR lpName, INT iIndex, UINT uFlags) -{ - FIXME("SHLookupIconIndexW() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -HANDLE -WINAPI -PifMgr_OpenProperties(LPWSTR lpAppPath, LPWSTR lpPifPath, UINT hInfIndex, UINT uUnknown) -{ - FIXME("PifMgr_OpenProperties() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -INT -WINAPI -PifMgr_GetProperties(HANDLE hHandle, LPWSTR lpName, LPVOID lpUnknown, INT iUnknown, UINT uUnknown) -{ - FIXME("PifMgr_GetProperties() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -INT -WINAPI -PifMgr_SetProperties(HANDLE hHandle, LPWSTR lpName, LPVOID lpUnknown, INT iUnknown, UINT uUnknown) -{ - FIXME("PifMgr_SetProperties() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHStartNetConnectionDialogA(HWND hwnd, - LPCSTR pszRemoteName, - DWORD dwType) -{ - FIXME("SHStartNetConnectionDialogA() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHStartNetConnectionDialogW(HWND hwnd, - LPCWSTR pszRemoteName, - DWORD dwType) -{ - FIXME("SHStartNetConnectionDialogW() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -HANDLE -WINAPI -PifMgr_CloseProperties(HANDLE hHandle, UINT uUnknown) -{ - FIXME("PifMgr_CloseProperties() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -DAD_DragEnterEx2(HWND hwndTarget, - POINT ptStart, - IDataObject *pdtObject) -{ - FIXME("DAD_DragEnterEx2() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -IsSuspendAllowed(VOID) -{ - FIXME("IsSuspendAllowed() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -UINT -WINAPI -SHGetNetResource(LPVOID lpUnknown1, UINT iIndex, LPVOID lpUnknown2, UINT cchMax) -{ - FIXME("SHGetNetResource() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -DragQueryInfo(HDROP hDrop, DRAGINFO *pDragInfo) -{ - FIXME("DragQueryInfo() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -LPVOID -WINAPI -DDECreatePostNotify(LPVOID lpUnknown) -{ - FIXME("DDECreatePostNotify() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHIsBadInterfacePtr(LPVOID pv, UINT ucb) -{ - FIXME("SHIsBadInterfacePtr() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -Activate_RunDLL(DWORD dwProcessId, LPVOID lpUnused1, LPVOID lpUnused2, LPVOID lpUnused3) -{ - FIXME("Activate_RunDLL() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -VOID -WINAPI -AppCompat_RunDLLW(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow) -{ - FIXME("AppCompat_RunDLLW() stub\n"); -} - -/* - * Unimplemented - */ -VOID -WINAPI -Control_RunDLLAsUserW(HWND hwnd, HINSTANCE hInstance, LPWSTR pszCmdLine, int nCmdShow) -{ - FIXME("Control_RunDLLAsUserW() stub\n"); -} - -/* - * Unimplemented - */ -UINT -WINAPI -DragQueryFileAorW(HDROP hDrop, UINT iIndex, LPWSTR lpFile, UINT ucb, BOOL bUnicode, BOOL bShorten) -{ - FIXME("DragQueryFileAorW() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -DWORD -WINAPI -SHNetConnectionDialog(HWND hwndOwner, - LPCWSTR lpstrRemoteName, - DWORD dwType) -{ - FIXME("SHNetConnectionDialog() stub\n"); - return ERROR_INVALID_PARAMETER; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -DAD_SetDragImageFromListView(HWND hwnd, POINT pt) -{ - FIXME("DAD_SetDragImageFromListView() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -void -WINAPI -SHHandleDiskFull(HWND hwndOwner, UINT uDrive) -{ - FIXME("SHHandleDiskFull() stub\n"); -} - -/* - * Unimplemented - */ -BOOL -WINAPI -ILGetPseudoNameW(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2, LPWSTR szStr, INT iUnknown) -{ - /* Unimplemented in WinXP SP3 */ - TRACE("ILGetPseudoNameW() stub\n"); - *szStr = 0; - return FALSE; -} - -/* - * Unimplemented - */ -VOID -WINAPI -SHGlobalDefect(DWORD dwUnknown) -{ - /* Unimplemented in WinXP SP3 */ - TRACE("SHGlobalDefect() stub\n"); -} - -/* - * Unimplemented - */ -LPITEMIDLIST -WINAPI -Printers_GetPidl(LPCITEMIDLIST pidl, LPCWSTR lpName) -{ - FIXME("Printers_GetPidl() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -INT -WINAPI -Int64ToString(LONGLONG llInt64, - LPWSTR lpOut, - UINT uSize, - BOOL bUseFormat, - NUMBERFMT *pNumberFormat, - DWORD dwNumberFlags) -{ - FIXME("Int64ToString() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -INT -WINAPI -LargeIntegerToString(LARGE_INTEGER *pLargeInt, - LPWSTR lpOut, - UINT uSize, - BOOL bUseFormat, - NUMBERFMT *pNumberFormat, - DWORD dwNumberFlags) -{ - FIXME("LargeIntegerToString() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -LONG -WINAPI -Printers_AddPrinterPropPages(LPVOID lpUnknown1, LPVOID lpUnknown2) -{ - FIXME("Printers_AddPrinterPropPages() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -WORD -WINAPI -ExtractIconResInfoA(HANDLE hHandle, - LPSTR lpFile, - WORD wIndex, - LPWORD lpSize, - LPHANDLE lpIcon) -{ - FIXME("ExtractIconResInfoA() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -WORD -WINAPI -ExtractIconResInfoW(HANDLE hHandle, - LPWSTR lpFile, - WORD wIndex, - LPWORD lpSize, - LPHANDLE lpIcon) -{ - FIXME("ExtractIconResInfoW() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -DWORD -WINAPI -ExtractVersionResource16W(LPWSTR lpName, LPHANDLE lpHandle) -{ - FIXME("ExtractVersionResource16W() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -BOOL* -WINAPI -FindExeDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - FIXME("FindExeDlgProc() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -HANDLE -WINAPI -InternalExtractIconListW(HANDLE hHandle, - LPWSTR lpFileName, - LPINT lpCount) -{ - FIXME("InternalExtractIconListW() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -HANDLE -WINAPI -InternalExtractIconListA(HANDLE hHandle, - LPSTR lpFileName, - LPINT lpCount) -{ - FIXME("InternalExtractIconListA() stub\n"); - return NULL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -FirstUserLogon(LPWSTR lpUnknown1, LPWSTR lpUnknown2) -{ - FIXME("FirstUserLogon() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHSetFolderPathA(int csidl, - HANDLE hToken, - DWORD dwFlags, - LPCSTR pszPath) -{ - FIXME("SHSetFolderPathA() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHSetFolderPathW(int csidl, - HANDLE hToken, - DWORD dwFlags, - LPCWSTR pszPath) -{ - FIXME("SHSetFolderPathW() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHGetUserPicturePathW(LPCWSTR lpPath, int csidl, LPVOID lpUnknown) -{ - FIXME("SHGetUserPicturePathW() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -HRESULT -WINAPI -SHSetUserPicturePathW(LPCWSTR lpPath, int csidl, LPVOID lpUnknown) -{ - FIXME("SHGetUserPicturePathA() stub\n"); - return E_FAIL; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHOpenEffectiveToken(LPVOID Token) -{ - FIXME("SHOpenEffectiveToken() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHTestTokenPrivilegeW(HANDLE hToken, LPDWORD ReturnLength) -{ - FIXME("SHTestTokenPrivilegeW() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHShouldShowWizards(LPVOID lpUnknown) -{ - FIXME("SHShouldShowWizards() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -PathIsSlowW(LPCWSTR pszFile, DWORD dwFileAttr) -{ - FIXME("PathIsSlowW() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -PathIsSlowA(LPCSTR pszFile, DWORD dwFileAttr) -{ - FIXME("PathIsSlowA() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -DWORD -WINAPI -SHGetUserDisplayName(LPWSTR lpName, PULONG puSize) -{ - FIXME("SHGetUserDisplayName() stub\n"); - wcscpy(lpName, L"UserName"); - return ERROR_SUCCESS; -} - -/* - * Unimplemented - */ -DWORD -WINAPI -SHGetProcessDword(DWORD dwUnknown1, DWORD dwUnknown2) -{ - /* Unimplemented in WinXP SP3 */ - TRACE("SHGetProcessDword() stub\n"); - return 0; -} - -/* - * Unimplemented - */ -BOOL -WINAPI -SHTestTokenMembership(HANDLE TokenHandle, PSID SidToCheck) -{ - FIXME("SHTestTokenMembership() stub\n"); - return FALSE; -} - -/* - * Unimplemented - */ -LPVOID -WINAPI -SHGetUserSessionId(HANDLE hHandle) -{ - FIXME("SHGetUserSessionId() stub\n"); - return NULL; -} diff --git a/reactos/dll/win32/shell32/systray.c b/reactos/dll/win32/shell32/systray.c deleted file mode 100644 index 81297a78907..00000000000 --- a/reactos/dll/win32/shell32/systray.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Systray handling - * - * Copyright 1999 Kai Morich - * Copyright 2004 Mike Hearn, for CodeWeavers - * Copyright 2005 Robert Shearman - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#define NONAMELESSUNION -#define NONAMELESSSTRUCT - -#include - -#include "windef.h" -#include "winbase.h" -#include "wingdi.h" -#include "winnls.h" -#include "winuser.h" -#include "shellapi.h" - -#include "wine/debug.h" - -WINE_DEFAULT_DEBUG_CHANNEL(systray); - -static const WCHAR classname[] = /* Shell_TrayWnd */ {'S','h','e','l','l','_','T','r','a','y','W','n','d','\0'}; - -/************************************************************************* - * Shell_NotifyIcon [SHELL32.296] - * Shell_NotifyIconA [SHELL32.297] - */ -BOOL WINAPI Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA pnid) -{ - NOTIFYICONDATAW nidW; - INT cbSize; - - /* Validate the cbSize as Windows XP does */ - if (pnid->cbSize != NOTIFYICONDATAA_V1_SIZE && - pnid->cbSize != NOTIFYICONDATAA_V2_SIZE && - pnid->cbSize != NOTIFYICONDATAA_V3_SIZE && - pnid->cbSize != sizeof(NOTIFYICONDATAA)) - { - WARN("Invalid cbSize (%d) - using only Win95 fields (size=%d)\n", - pnid->cbSize, NOTIFYICONDATAA_V1_SIZE); - cbSize = NOTIFYICONDATAA_V1_SIZE; - } - else - cbSize = pnid->cbSize; - - ZeroMemory(&nidW, sizeof(nidW)); - nidW.cbSize = sizeof(nidW); - nidW.hWnd = pnid->hWnd; - nidW.uID = pnid->uID; - nidW.uFlags = pnid->uFlags; - nidW.uCallbackMessage = pnid->uCallbackMessage; - nidW.hIcon = pnid->hIcon; - - /* szTip */ - if (pnid->uFlags & NIF_TIP) - MultiByteToWideChar(CP_ACP, 0, pnid->szTip, -1, nidW.szTip, sizeof(nidW.szTip)/sizeof(WCHAR)); - - if (cbSize >= NOTIFYICONDATAA_V2_SIZE) - { - nidW.dwState = pnid->dwState; - nidW.dwStateMask = pnid->dwStateMask; - - /* szInfo, szInfoTitle */ - if (pnid->uFlags & NIF_INFO) - { - MultiByteToWideChar(CP_ACP, 0, pnid->szInfo, -1, nidW.szInfo, sizeof(nidW.szInfo)/sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, pnid->szInfoTitle, -1, nidW.szInfoTitle, sizeof(nidW.szInfoTitle)/sizeof(WCHAR)); - } - - nidW.u.uTimeout = pnid->u.uTimeout; - nidW.dwInfoFlags = pnid->dwInfoFlags; - } - - if (cbSize >= NOTIFYICONDATAA_V3_SIZE) - nidW.guidItem = pnid->guidItem; - - if (cbSize >= sizeof(NOTIFYICONDATAA)) - nidW.hBalloonIcon = pnid->hBalloonIcon; - return Shell_NotifyIconW(dwMessage, &nidW); -} - -/************************************************************************* - * Shell_NotifyIconW [SHELL32.298] - */ -BOOL WINAPI Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW nid) -{ - HWND tray; - COPYDATASTRUCT cds; - char *buffer = NULL; - BOOL ret; - - TRACE("dwMessage = %d, nid->cbSize=%d\n", dwMessage, nid->cbSize); - - /* Validate the cbSize so that WM_COPYDATA doesn't crash the application */ - if (nid->cbSize != NOTIFYICONDATAW_V1_SIZE && - nid->cbSize != NOTIFYICONDATAW_V2_SIZE && - nid->cbSize != NOTIFYICONDATAW_V3_SIZE && - nid->cbSize != sizeof(NOTIFYICONDATAW)) - { - NOTIFYICONDATAW newNid; - - WARN("Invalid cbSize (%d) - using only Win95 fields (size=%d)\n", - nid->cbSize, NOTIFYICONDATAW_V1_SIZE); - CopyMemory(&newNid, nid, NOTIFYICONDATAW_V1_SIZE); - newNid.cbSize = NOTIFYICONDATAW_V1_SIZE; - return Shell_NotifyIconW(dwMessage, &newNid); - } - - tray = FindWindowExW(0, NULL, classname, NULL); - if (!tray) return FALSE; - - cds.dwData = dwMessage; - - /* FIXME: if statement only needed because we don't support interprocess - * icon handles */ - if (nid->uFlags & NIF_ICON) - { - ICONINFO iconinfo; - BITMAP bmMask; - BITMAP bmColour; - LONG cbMaskBits; - LONG cbColourBits; - - if (!GetIconInfo(nid->hIcon, &iconinfo)) - goto noicon; - - if (!GetObjectW(iconinfo.hbmMask, sizeof(bmMask), &bmMask) || - !GetObjectW(iconinfo.hbmColor, sizeof(bmColour), &bmColour)) - { - DeleteObject(iconinfo.hbmMask); - DeleteObject(iconinfo.hbmColor); - goto noicon; - } - - cbMaskBits = (bmMask.bmPlanes * bmMask.bmWidth * bmMask.bmHeight * bmMask.bmBitsPixel) / 8; - cbColourBits = (bmColour.bmPlanes * bmColour.bmWidth * bmColour.bmHeight * bmColour.bmBitsPixel) / 8; - cds.cbData = nid->cbSize + 2*sizeof(BITMAP) + cbMaskBits + cbColourBits; - buffer = HeapAlloc(GetProcessHeap(), 0, cds.cbData); - if (!buffer) - { - DeleteObject(iconinfo.hbmMask); - DeleteObject(iconinfo.hbmColor); - return FALSE; - } - cds.lpData = buffer; - - memcpy(buffer, nid, nid->cbSize); - buffer += nid->cbSize; - memcpy(buffer, &bmMask, sizeof(bmMask)); - buffer += sizeof(bmMask); - memcpy(buffer, &bmColour, sizeof(bmColour)); - buffer += sizeof(bmColour); - GetBitmapBits(iconinfo.hbmMask, cbMaskBits, buffer); - buffer += cbMaskBits; - GetBitmapBits(iconinfo.hbmColor, cbColourBits, buffer); - - /* Reset pointer to allocated block so it can be freed later. - * Note that cds.lpData cannot be passed to HeapFree since it - * points to nid when no icon info is found. */ - buffer = cds.lpData; - - DeleteObject(iconinfo.hbmMask); - DeleteObject(iconinfo.hbmColor); - } - else - { -noicon: - cds.cbData = nid->cbSize; - cds.lpData = nid; - } - - ret = SendMessageW(tray, WM_COPYDATA, (WPARAM)nid->hWnd, (LPARAM)&cds); - - /* FIXME: if statement only needed because we don't support interprocess - * icon handles */ - HeapFree(GetProcessHeap(), 0, buffer); - - return ret; -} diff --git a/reactos/drivers/ksfilter/swenum/.gitignore b/reactos/drivers/ksfilter/swenum/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/drivers/multimedia/portcls.NEW/adapter.c b/reactos/drivers/multimedia/portcls.NEW/adapter.c deleted file mode 100644 index 5a96bd0629d..00000000000 --- a/reactos/drivers/multimedia/portcls.NEW/adapter.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - ReactOS Kernel Streaming - Port Class API: Adapter initialization - - Author: Andrew Greenwood - -*/ - -#include - - -NTSTATUS -PcStartIo( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - /* Internal function */ - return STATUS_UNSUCCESSFUL; -} - -NTSTATUS -PcUnload( - IN PDRIVER_OBJECT DriverObject) -{ - /* Internal function */ - return STATUS_UNSUCCESSFUL; -} - - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcInitializeAdapterDriver( - IN PDRIVER_OBJECT DriverObject, - IN PUNICODE_STRING RegistryPathName, - IN PDRIVER_ADD_DEVICE AddDevice) -{ - /* - This is effectively a common DriverEntry function for PortCls drivers. - So it has similar responsibilities to a normal driver. - - First 2 parameters are from DriverEntry. - Installs the supplied AddDevice routine in the driver object?s driver extension and installs the PortCls driver?s IRP handlers in the driver object itself. - */ - - DriverObject->DriverExtension->AddDevice = AddDevice; - - /* - TODO: (* = implement here, otherwise KS default) - IRP_MJ_CLOSE - * IRP_MJ_CREATE - IRP_MJ_DEVICE_CONTROL - IRP_MJ_FLUSH_BUFFERS - * IRP_MJ_PNP - * IRP_MJ_POWER - IRP_MJ_QUERY_SECURITY - IRP_MJ_READ - IRP_MJ_SET_SECURITY - * IRP_MJ_SYSTEM_CONTROL - IRP_MJ_WRITE - */ - - UNIMPLEMENTED; - - return STATUS_SUCCESS; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcAddAdapterDevice( - IN PDRIVER_OBJECT DriverObject, - IN PDEVICE_OBJECT PhysicalDeviceObject, - IN PCPFNSTARTDEVICE StartDevice, - IN ULONG MaxObjects, - IN ULONG DeviceExtensionSize) -{ - /* - Note - after this has been called, we can - handle IRP_MN_START_DEVICE by calling StartDevice - */ - - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} diff --git a/reactos/drivers/multimedia/portcls.NEW/dll.c b/reactos/drivers/multimedia/portcls.NEW/dll.c deleted file mode 100644 index 5d602533081..00000000000 --- a/reactos/drivers/multimedia/portcls.NEW/dll.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - ReactOS Kernel Streaming - Port Class / Library Init and Cleanup - - Author: Andrew Greenwood - - Notes: - - -*/ - -#include - -/* - * @implemented - */ -ULONG STDCALL -DllInitialize(ULONG Unknown) -{ - return 0; -} - -/* - * @implemented - */ -ULONG STDCALL -DllUnload(VOID) -{ - return 0; -} diff --git a/reactos/drivers/multimedia/portcls.NEW/drm.c b/reactos/drivers/multimedia/portcls.NEW/drm.c deleted file mode 100644 index 3aae56dd4d0..00000000000 --- a/reactos/drivers/multimedia/portcls.NEW/drm.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - ReactOS Kernel Streaming - Port Class / Digital Rights Management - - Author: Andrew Greenwood - - Notes: - These are convenience functions for accessing DRM facilities, as - documented here: - http://www.osronline.com/ddkx/stream/aud-prop_9f77.htm -*/ - -#include -#include - -PORTCLASSAPI NTSTATUS NTAPI -PcAddContentHandlers( - IN ULONG ContentId, - IN PVOID *paHandlers, - IN ULONG NumHandlers) -{ - return DrmAddContentHandlers(ContentId, paHandlers, NumHandlers); -} - -PORTCLASSAPI NTSTATUS NTAPI -PcCreateContentMixed( - IN PULONG paContentId, - IN ULONG cContentId, - OUT PULONG pMixedContentId) -{ - return DrmCreateContentMixed(paContentId, cContentId, pMixedContentId); -} - -PORTCLASSAPI NTSTATUS NTAPI -PcDestroyContent( - IN ULONG ContentId) -{ - return DrmDestroyContent(ContentId); -} - -PORTCLASSAPI NTSTATUS NTAPI -PcForwardContentToDeviceObject( - IN ULONG ContentId, - IN PVOID Reserved, - IN PCDRMFORWARD DrmForward) -{ - return DrmForwardContentToDeviceObject(ContentId, Reserved, DrmForward); -} - -PORTCLASSAPI NTSTATUS NTAPI -PcForwardContentToFileObject( - IN ULONG ContentId, - IN PFILE_OBJECT FileObject) -{ - return DrmForwardContentToFileObject(ContentId, FileObject); -} - -PORTCLASSAPI NTSTATUS NTAPI -PcForwardContentToInterface( - IN ULONG ContentId, - IN PUNKNOWN pUnknown, - IN ULONG NumMethods) -{ - return DrmForwardContentToInterface(ContentId, pUnknown, NumMethods); -} - -PORTCLASSAPI NTSTATUS NTAPI -PcGetContentRights( - IN ULONG ContentId, - OUT PDRMRIGHTS DrmRights) -{ - return DrmGetContentRights(ContentId, DrmRights); -} diff --git a/reactos/drivers/multimedia/portcls.NEW/portcls.c b/reactos/drivers/multimedia/portcls.NEW/portcls.c deleted file mode 100644 index 68fc51fe9cb..00000000000 --- a/reactos/drivers/multimedia/portcls.NEW/portcls.c +++ /dev/null @@ -1,489 +0,0 @@ -/* - * PROJECT: ReactOS Sound System - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/multimedia/portcls/portcls.c - * PURPOSE: Audio Port Class Functions - * PROGRAMMERS: - * - */ - -#include "portcls.h" - - -#define NDEBUG -#include - - -NTSTATUS STDCALL -DriverEntry(PDRIVER_OBJECT DriverObject, - PUNICODE_STRING RegistryPath) -{ - return STATUS_SUCCESS; -} - -/* - * @implemented - */ -ULONG STDCALL -DllInitialize(ULONG Unknown) -{ - return 0; -} - -/* - * @implemented - */ -ULONG STDCALL -DllUnload(VOID) -{ - return 0; -} - - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcAddAdapterDevice( - ULONG DriverObject, - ULONG PhysicalDeviceObject, - ULONG StartDevice, - ULONG MaxObjects, - ULONG DeviceExtensionSize -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcAddContentHandlers( - ULONG ContentId, - ULONG paHandlers, - ULONG NumHandlers -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcCompleteIrp( - ULONG DeviceObject, - ULONG Irp, - ULONG Status -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcCompletePendingPropertyRequest( - ULONG PropertyRequest, - ULONG NtStatus -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcCreateContentMixed( - ULONG paContentId, - ULONG cContentId, - ULONG pMixedContentId -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcDestroyContent( - ULONG ContentId -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcDispatchIrp( - ULONG DeviceObject, - ULONG Irp -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcForwardContentToDeviceObject( - ULONG ContentId, - ULONG Reserved, - ULONG DrmForward -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcForwardContentToFileObject( - ULONG ContentId, - ULONG FileObject -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcForwardContentToInterface( - ULONG ContentId, - ULONG Unknown, - ULONG NumMethods -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcForwardIrpSynchronous( - ULONG DeviceObject, - ULONG Irp -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcGetContentRights( - ULONG ContentId, - ULONG DrmRights -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcGetDeviceProperty( - ULONG DeviceObject, - ULONG DeviceProperty, - ULONG BufferLength, - ULONG PropertyBuffer, - ULONG ResultLength -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @implemented - */ -ULONGLONG STDCALL -PcGetTimeInterval( - ULONGLONG Timei -) -{ - LARGE_INTEGER CurrentTime; - - KeQuerySystemTime( &CurrentTime); - - return (Timei - CurrentTime.QuadPart); -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcInitializeAdapterDriver( - ULONG DriverObject, - ULONG RegistryPathName, - ULONG AddDevice -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcNewDmaChannel( - ULONG OutDmaChannel, - ULONG Unknown, - ULONG PoolType, - ULONG DeviceDescription, - ULONG DeviceObject -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcNewInterruptSync( - ULONG OutInterruptSync, - ULONG Unknown, - ULONG ResourceList, - ULONG ResourceIndex, - ULONG Mode -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcNewMiniport( - ULONG OutMiniport, - ULONG ClassId -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcNewPort( - ULONG OutPort, - ULONG ClassId -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcNewRegistryKey( - ULONG OutRegistryKey, - ULONG Unknown, - ULONG RegistryKeyType, - ULONG DesiredAccess, - ULONG DeviceObject, - ULONG SubDevice, - ULONG ObjectAttributes, - ULONG CreateOptions, - ULONG Disposition -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcNewResourceList( - ULONG OutResourceList, - ULONG Unknown, - ULONG PoolType, - ULONG TranslatedResources, - ULONG UntranslatedResources -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcNewResourceSublist( - ULONG OutResourceList, - ULONG Unknown, - ULONG PoolType, - ULONG ParentList, - ULONG MaximumEntries -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcNewServiceGroup( - ULONG OutServiceGroup, - ULONG Unknown -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcRegisterAdapterPowerManagement( - ULONG Unknown, - ULONG pvContext -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcRegisterIoTimeout( - ULONG pDeviceObject, - ULONG pTimerRoutine, - ULONG pContext -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcRegisterPhysicalConnection( - ULONG DeviceObject, - ULONG FromUnknown, - ULONG FromPin, - ULONG ToUnknown, - ULONG ToPin -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcRegisterPhysicalConnectionFromExternal( - ULONG DeviceObject, - ULONG FromString, - ULONG FromPin, - ULONG ToUnknown, - ULONG ToPin -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcRegisterPhysicalConnectionToExternal( - ULONG DeviceObject, - ULONG FromUnknown, - ULONG FromPin, - ULONG ToString, - ULONG ToPin -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcRegisterSubdevice( - ULONG DeviceObject, - ULONG SubdevName, - ULONG Unknown -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcRequestNewPowerState( - ULONG pDeviceObject, - ULONG RequestedNewState -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -NTSTATUS STDCALL -PcUnregisterIoTimeout( - ULONG pDeviceObject, - ULONG pTimerRoutine, - ULONG pContext -) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - diff --git a/reactos/drivers/multimedia/portcls.NEW/portcls.def b/reactos/drivers/multimedia/portcls.NEW/portcls.def deleted file mode 100644 index 4ad6a010c50..00000000000 --- a/reactos/drivers/multimedia/portcls.NEW/portcls.def +++ /dev/null @@ -1,55 +0,0 @@ -; -; Exports definition file for portcls.sys -; -EXPORTS -DllInitialize@4 -DllUnload@0 - -; Adapters (adapter.c) -PcAddAdapterDevice@20 -PcInitializeAdapterDriver@12 - -; Factories -PcNewDmaChannel@20 -PcNewInterruptSync@20 -PcNewMiniport@8 -PcNewPort@8 -PcNewRegistryKey@36 -PcNewResourceList@20 -PcNewResourceSublist@20 -PcNewServiceGroup@8 - -; Digital Rights Management (drm.c) -PcAddContentHandlers@12 -PcCreateContentMixed@12 -PcDestroyContent@4 -PcForwardContentToDeviceObject@12 -PcForwardContentToFileObject@8 -PcForwardContentToInterface@12 -PcGetContentRights@8 - -; IRP Helpers -PcCompleteIrp@12 -PcDispatchIrp@8 -PcForwardIrpSynchronous@8 - -; Misc -PcGetTimeInterval@8 -PcRegisterSubdevice@12 - -; Physical Connections -PcRegisterPhysicalConnection@20 -PcRegisterPhysicalConnectionFromExternal@20 -PcRegisterPhysicalConnectionToExternal@20 - -; Power Management -PcRegisterAdapterPowerManagement@8 -PcRequestNewPowerState@8 - -; Properties -PcCompletePendingPropertyRequest@8 -PcGetDeviceProperty@20 - -; Timeouts -PcRegisterIoTimeout@12 -PcUnregisterIoTimeout@12 diff --git a/reactos/drivers/multimedia/portcls.NEW/portcls.h b/reactos/drivers/multimedia/portcls.NEW/portcls.h deleted file mode 100644 index 4dc027db331..00000000000 --- a/reactos/drivers/multimedia/portcls.NEW/portcls.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - - Move to w32api when it is ready. - - */ -#ifndef _PORTCLS_H -#define _PORTCLS_H -#if __GNUC__ >=3 -#pragma GCC system_header -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* This header is total bull**** */ - -#include - -#define PORTCLASSAPI extern - -PORTCLASSAPI NTSTATUS STDCALL -PcAddAdapterDevice( - ULONG DriverObject, - ULONG PhysicalDeviceObject, - ULONG StartDevice, - ULONG MaxObjects, - ULONG DeviceExtensionSize -); - -PORTCLASSAPI NTSTATUS STDCALL -PcAddContentHandlers( - ULONG ContentId, - ULONG paHandlers, - ULONG NumHandlers -); - -PORTCLASSAPI NTSTATUS STDCALL -PcCompleteIrp( - ULONG DeviceObject, - ULONG Irp, - ULONG Status -); - -PORTCLASSAPI NTSTATUS STDCALL -PcCompletePendingPropertyRequest( - ULONG PropertyRequest, - ULONG NtStatus -); - -PORTCLASSAPI NTSTATUS STDCALL -PcCreateContentMixed( - ULONG paContentId, - ULONG cContentId, - ULONG pMixedContentId -); - -PORTCLASSAPI NTSTATUS STDCALL -PcDestroyContent( - ULONG ContentId -); - -PORTCLASSAPI NTSTATUS STDCALL -PcDispatchIrp( - ULONG DeviceObject, - ULONG Irp -); - -PORTCLASSAPI NTSTATUS STDCALL -PcForwardContentToDeviceObject( - ULONG ContentId, - ULONG Reserved, - ULONG DrmForward -); - -PORTCLASSAPI NTSTATUS STDCALL -PcForwardContentToFileObject( - ULONG ContentId, - ULONG FileObject -); - -PORTCLASSAPI NTSTATUS STDCALL -PcForwardContentToInterface( - ULONG ContentId, - ULONG Unknown, - ULONG NumMethods -); - -PORTCLASSAPI NTSTATUS STDCALL -PcForwardIrpSynchronous( - ULONG DeviceObject, - ULONG Irp -); - -PORTCLASSAPI NTSTATUS STDCALL -PcGetContentRights( - ULONG ContentId, - ULONG DrmRights -); - -PORTCLASSAPI NTSTATUS STDCALL -PcGetDeviceProperty( - ULONG DeviceObject, - ULONG DeviceProperty, - ULONG BufferLength, - ULONG PropertyBuffer, - ULONG ResultLength -); - -PORTCLASSAPI ULONGLONG STDCALL -PcGetTimeInterval( - ULONGLONG Timei -); - -PORTCLASSAPI NTSTATUS STDCALL -PcInitializeAdapterDriver( - ULONG DriverObject, - ULONG RegistryPathName, - ULONG AddDevice -); - -PORTCLASSAPI NTSTATUS STDCALL -PcNewDmaChannel( - ULONG OutDmaChannel, - ULONG Unknown, - ULONG PoolType, - ULONG DeviceDescription, - ULONG DeviceObject -); - -PORTCLASSAPI NTSTATUS STDCALL -PcNewInterruptSync( - ULONG OutInterruptSync, - ULONG Unknown, - ULONG ResourceList, - ULONG ResourceIndex, - ULONG Mode -); - -PORTCLASSAPI NTSTATUS STDCALL -PcNewMiniport( - ULONG OutMiniport, - ULONG ClassId -); - -PORTCLASSAPI NTSTATUS STDCALL -PcNewPort( - ULONG OutPort, - ULONG ClassId -); - -PORTCLASSAPI NTSTATUS STDCALL -PcNewRegistryKey( - ULONG OutRegistryKey, - ULONG Unknown, - ULONG RegistryKeyType, - ULONG DesiredAccess, - ULONG DeviceObject, - ULONG SubDevice, - ULONG ObjectAttributes, - ULONG CreateOptions, - ULONG Disposition -); - -PORTCLASSAPI NTSTATUS STDCALL -PcNewResourceList( - ULONG OutResourceList, - ULONG Unknown, - ULONG PoolType, - ULONG TranslatedResources, - ULONG UntranslatedResources -); - -PORTCLASSAPI NTSTATUS STDCALL -PcNewResourceSublist( - ULONG OutResourceList, - ULONG Unknown, - ULONG PoolType, - ULONG ParentList, - ULONG MaximumEntries -); - -PORTCLASSAPI NTSTATUS STDCALL -PcNewServiceGroup( - ULONG OutServiceGroup, - ULONG Unknown -); - -PORTCLASSAPI NTSTATUS STDCALL -PcRegisterAdapterPowerManagement( - ULONG Unknown, - ULONG pvContext -); - -PORTCLASSAPI NTSTATUS STDCALL -PcRegisterIoTimeout( - ULONG pDeviceObject, - ULONG pTimerRoutine, - ULONG pContext -); - -PORTCLASSAPI NTSTATUS STDCALL -PcRegisterPhysicalConnection( - ULONG DeviceObject, - ULONG FromUnknown, - ULONG FromPin, - ULONG ToUnknown, - ULONG ToPin -); - -PORTCLASSAPI NTSTATUS STDCALL -PcRegisterPhysicalConnectionFromExternal( - ULONG DeviceObject, - ULONG FromString, - ULONG FromPin, - ULONG ToUnknown, - ULONG ToPin -); - -PORTCLASSAPI NTSTATUS STDCALL -PcRegisterPhysicalConnectionToExternal( - ULONG DeviceObject, - ULONG FromUnknown, - ULONG FromPin, - ULONG ToString, - ULONG ToPin -); - -PORTCLASSAPI NTSTATUS STDCALL -PcRegisterSubdevice( - ULONG DeviceObject, - ULONG SubdevName, - ULONG Unknown -); - -PORTCLASSAPI NTSTATUS STDCALL -PcRequestNewPowerState( - ULONG pDeviceObject, - ULONG RequestedNewState -); - -PORTCLASSAPI NTSTATUS STDCALL -PcUnregisterIoTimeout( - ULONG pDeviceObject, - ULONG pTimerRoutine, - ULONG pContext -); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/reactos/drivers/multimedia/portcls.NEW/portcls.rbuild b/reactos/drivers/multimedia/portcls.NEW/portcls.rbuild deleted file mode 100644 index 950265286c1..00000000000 --- a/reactos/drivers/multimedia/portcls.NEW/portcls.rbuild +++ /dev/null @@ -1,12 +0,0 @@ - - - - ../include - ntoskrnl - drmk - dll.c - adapter.c - drm.c - stubs.c - portcls.rc - diff --git a/reactos/drivers/multimedia/portcls.NEW/stubs.c b/reactos/drivers/multimedia/portcls.NEW/stubs.c deleted file mode 100644 index 36d59b75631..00000000000 --- a/reactos/drivers/multimedia/portcls.NEW/stubs.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - Port Class API - Stubbed functions -*/ - -#include - -/* - Factory Stubs -*/ - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcNewDmaChannel( - OUT PDMACHANNEL* OutDmaChannel, - IN PUNKNOWN OuterUnknown OPTIONAL, - IN POOL_TYPE PoolType, - IN PDEVICE_DESCRIPTION DeviceDescription, - IN PDEVICE_OBJECT DeviceObject) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcNewInterruptSync( - OUT PINTERRUPTSYNC* OUtInterruptSync, - IN PUNKNOWN OuterUnknown OPTIONAL, - IN PRESOURCELIST ResourceList, - IN ULONG ResourceIndex, - IN INTERRUPTSYNCMODE Mode) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcNewMiniport( - OUT PMINIPORT* OutMiniport, - IN REFCLSID ClassId) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcNewPort( - OUT PPORT* OutPort, - IN REFCLSID ClassId) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcNewRegistryKey( - OUT PREGISTRYKEY* OutRegistryKey, - IN PUNKNOWN OuterUnknown OPTIONAL, - IN ULONG RegistryKeyType, - IN ACCESS_MASK DesiredAccess, - IN PVOID DeviceObject OPTIONAL, - IN PVOID SubDevice OPTIONAL, - IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, - IN ULONG CreateOptions OPTIONAL, - OUT PULONG Disposition OPTIONAL) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcNewResourceList( - OUT PRESOURCELIST* OutResourceList, - IN PUNKNOWN OuterUnknown OPTIONAL, - IN POOL_TYPE PoolType, - IN PCM_RESOURCE_LIST TranslatedResources, - IN PCM_RESOURCE_LIST UntranslatedResources) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcNewResourceSublist( - OUT PRESOURCELIST* OutResourceList, - IN PUNKNOWN OuterUnknown OPTIONAL, - IN POOL_TYPE PoolType, - IN PRESOURCELIST ParentList, - IN ULONG MaximumEntries) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcNewServiceGroup( - OUT PSERVICEGROUP* OutServiceGroup, - IN PUNKNOWN OuterUnknown OPTIONAL) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - - -/* =============================================================== - IRP Handling -*/ - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcDispatchIrp( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcCompleteIrp( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp, - IN NTSTATUS Status) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcForwardIrpSynchronous( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - - -/* =============================================================== - Power Management -*/ - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcRegisterAdapterPowerManagement( - IN PUNKNOWN pUnknown, - IN PVOID pvContext1) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcRequestNewPowerState( - IN PDEVICE_OBJECT pDeviceObject, - IN DEVICE_POWER_STATE RequestedNewState) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - - -/* =============================================================== - Properties -*/ - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcGetDeviceProperty( - IN PVOID DeviceObject, - IN DEVICE_REGISTRY_PROPERTY DeviceProperty, - IN ULONG BufferLength, - OUT PVOID PropertyBuffer, - OUT PULONG ResultLength) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcCompletePendingPropertyRequest( - IN PPCPROPERTY_REQUEST PropertyRequest, - IN NTSTATUS NtStatus) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - - -/* =============================================================== - I/O Timeouts -*/ - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcRegisterIoTimeout( - IN PDEVICE_OBJECT pDeviceObject, - IN PIO_TIMER_ROUTINE pTimerRoutine, - IN PVOID pContext) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcUnregisterIoTimeout( - IN PDEVICE_OBJECT pDeviceObject, - IN PIO_TIMER_ROUTINE pTimerRoutine, - IN PVOID pContext) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - - -/* =============================================================== - Physical Connections -*/ - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcRegisterPhysicalConnection( - IN PDEVICE_OBJECT DeviceObject, - IN PUNKNOWN FromUnknown, - IN ULONG FromPin, - IN PUNKNOWN ToUnknown, - IN ULONG ToPin) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcRegisterPhysicalConnectionFromExternal( - IN PDEVICE_OBJECT DeviceObject, - IN PUNICODE_STRING FromString, - IN ULONG FromPin, - IN PUNKNOWN ToUnknown, - IN ULONG ToPin) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcRegisterPhysicalConnectionToExternal( - IN PDEVICE_OBJECT DeviceObject, - IN PUNKNOWN FromUnknown, - IN ULONG FromPin, - IN PUNICODE_STRING ToString, - IN ULONG ToPin) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - - -/* =============================================================== - Misc -*/ - -/* - * @unimplemented - */ -PORTCLASSAPI ULONGLONG NTAPI -PcGetTimeInterval( - IN ULONGLONG Since) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @unimplemented - */ -PORTCLASSAPI NTSTATUS NTAPI -PcRegisterSubdevice( - IN PDEVICE_OBJECT DeviceObject, - IN PWCHAR Name, - IN PUNKNOWN Unknown) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} diff --git a/reactos/drivers/multimedia/x/allocators.c b/reactos/drivers/multimedia/x/allocators.c deleted file mode 100644 index 4fc778b75dc..00000000000 --- a/reactos/drivers/multimedia/x/allocators.c +++ /dev/null @@ -1,70 +0,0 @@ -/* =============================================================== - Allocator Functions -*/ - -#include - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsCreateAllocator( - IN HANDLE ConnectionHandle, - IN PKSALLOCATOR_FRAMING AllocatorFraming, - OUT PHANDLE AllocatorHandle) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsCreateDefaultAllocator( - IN PIRP Irp) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsValidateAllocatorCreateRequest( - IN PIRP Irp, - OUT PKSALLOCATOR_FRAMING* AllocatorFraming) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsCreateDefaultAllocatorEx( - IN PIRP Irp, - IN PVOID InitializeContext OPTIONAL, - IN PFNKSDEFAULTALLOCATE DefaultAllocate OPTIONAL, - IN PFNKSDEFAULTFREE DefaultFree OPTIONAL, - IN PFNKSINITIALIZEALLOCATOR InitializeAllocator OPTIONAL, - IN PFNKSDELETEALLOCATOR DeleteAllocator OPTIONAL) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsValidateAllocatorFramingEx( - IN PKSALLOCATOR_FRAMING_EX Framing, - IN ULONG BufferSize, - IN const KSALLOCATOR_FRAMING_EX* PinFraming) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} diff --git a/reactos/drivers/multimedia/x/clocks.c b/reactos/drivers/multimedia/x/clocks.c deleted file mode 100644 index a075bbff966..00000000000 --- a/reactos/drivers/multimedia/x/clocks.c +++ /dev/null @@ -1,124 +0,0 @@ -/* =============================================================== - Clock Functions -*/ - -#include - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsCreateClock( - IN HANDLE ConnectionHandle, - IN PKSCLOCK_CREATE ClockCreate, - OUT PHANDLE ClockHandle) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsCreateDefaultClock( - IN PIRP Irp, - IN PKSDEFAULTCLOCK DefaultClock) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsAllocateDefaultClock( - OUT PKSDEFAULTCLOCK* DefaultClock) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsAllocateDefaultClockEx( - OUT PKSDEFAULTCLOCK* DefaultClock, - IN PVOID Context OPTIONAL, - IN PFNKSSETTIMER SetTimer OPTIONAL, - IN PFNKSCANCELTIMER CancelTimer OPTIONAL, - IN PFNKSCORRELATEDTIME CorrelatedTime OPTIONAL, - IN const KSRESOLUTION* Resolution OPTIONAL, - IN ULONG Flags) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsFreeDefaultClock( - IN PKSDEFAULTCLOCK DefaultClock) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsValidateClockCreateRequest( - IN PIRP Irp, - OUT PKSCLOCK_CREATE* ClockCreate) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI KSSTATE NTAPI -KsGetDefaultClockState( - IN PKSDEFAULTCLOCK DefaultClock) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsSetDefaultClockState( - IN PKSDEFAULTCLOCK DefaultClock, - IN KSSTATE State) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI LONGLONG NTAPI -KsGetDefaultClockTime( - IN PKSDEFAULTCLOCK DefaultClock) -{ - UNIMPLEMENTED; - return 0; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsSetDefaultClockTime( - IN PKSDEFAULTCLOCK DefaultClock, - IN LONGLONG Time) -{ - UNIMPLEMENTED; -} diff --git a/reactos/drivers/multimedia/x/connectivity.c b/reactos/drivers/multimedia/x/connectivity.c deleted file mode 100644 index 23defde4f8f..00000000000 --- a/reactos/drivers/multimedia/x/connectivity.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - KsCreatePin - KsValidateConnectRequest - KsPinPropertyHandler - KsPinDataIntersection - KsHandleSizedListQuery -*/ - -#include - -KSDDKAPI NTSTATUS NTAPI -KsCreatePin( - IN HANDLE FilterHandle, - IN PKSPIN_CONNECT Connect, - IN ACCESS_MASK DesiredAccess, - OUT PHANDLE ConnectionHandle) -{ - return STATUS_SUCCESS; -} - -KSDDKAPI NTSTATUS NTAPI -KsValidateConnectRequest( - IN PIRP Irp, - IN ULONG DescriptorsCount, - IN KSPIN_DESCRIPTOR* Descriptor, - OUT PKSPIN_CONNECT* Connect) -{ - return STATUS_SUCCESS; -} - -KSDDKAPI NTSTATUS NTAPI -KsPinPropertyHandler( - IN PIRP Irp, - IN PKSPROPERTY Property, - IN OUT PVOID Data, - IN ULONG DescriptorsCount, - IN const KSPIN_DESCRIPTOR* Descriptor) -{ - return STATUS_SUCCESS; -} - -KSDDKAPI NTSTATUS NTAPI -KsPinDataIntersection( - IN PIRP Irp, - IN PKSPIN Pin, - OUT PVOID Data, - IN ULONG DescriptorsCount, - IN const KSPIN_DESCRIPTOR* Descriptor, - IN PFNKSINTERSECTHANDLER IntersectHandler) -{ - return STATUS_SUCCESS; -} - -/* Does this belong here? */ - -KSDDKAPI NTSTATUS NTAPI -KsHandleSizedListQuery( - IN PIRP Irp, - IN ULONG DataItemsCount, - IN ULONG DataItemSize, - IN const VOID* DataItems) -{ - return STATUS_SUCCESS; -} diff --git a/reactos/drivers/multimedia/x/events.c b/reactos/drivers/multimedia/x/events.c deleted file mode 100644 index 814d65e8c7a..00000000000 --- a/reactos/drivers/multimedia/x/events.c +++ /dev/null @@ -1,100 +0,0 @@ -#include - -/* =============================================================== - Event Functions -*/ - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsGenerateEvent( - IN PKSEVENT_ENTRY EntryEvent) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsEnableEventWithAllocator( - IN PIRP Irp, - IN ULONG EventSetsCount, - IN PKSEVENT_SET EventSet, - IN OUT PLIST_ENTRY EventsList OPTIONAL, - IN KSEVENTS_LOCKTYPE EventsFlags OPTIONAL, - IN PVOID EventsLock OPTIONAL, - IN PFNKSALLOCATOR Allocator OPTIONAL, - IN ULONG EventItemSize OPTIONAL) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsGenerateDataEvent( - IN PKSEVENT_ENTRY EventEntry, - IN ULONG DataSize, - IN PVOID Data) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsEnableEvent( - IN PIRP Irp, - IN ULONG EventSetsCount, - IN KSEVENT_SET* EventSet, - IN OUT PLIST_ENTRY EventsList OPTIONAL, - IN KSEVENTS_LOCKTYPE EventsFlags OPTIONAL, - IN PVOID EventsLock OPTIONAL) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsDiscardEvent( - IN PKSEVENT_ENTRY EventEntry) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsDisableEvent( - IN PIRP Irp, - IN OUT PLIST_ENTRY EventsList, - IN KSEVENTS_LOCKTYPE EventsFlags, - IN PVOID EventsLock) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsFreeEventList( - IN PFILE_OBJECT FileObject, - IN OUT PLIST_ENTRY EventsList, - IN KSEVENTS_LOCKTYPE EVentsFlags, - IN PVOID EventsLock) -{ - UNIMPLEMENTED; -} diff --git a/reactos/drivers/multimedia/x/irp.c b/reactos/drivers/multimedia/x/irp.c deleted file mode 100644 index 8924ee6db3e..00000000000 --- a/reactos/drivers/multimedia/x/irp.c +++ /dev/null @@ -1,479 +0,0 @@ -/* - ReactOS Kernel Streaming - IRP Helpers -*/ - -#include - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsAcquireResetValue( - IN PIRP Irp, - OUT KSRESET* ResetValue) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsAddIrpToCancelableQueue( - IN OUT PLIST_ENTRY QueueHead, - IN PKSPIN_LOCK SpinLock, - IN PIRP Irp, - IN KSLIST_ENTRY_LOCATION ListLocation, - IN PDRIVER_CANCEL DriverCancel OPTIONAL) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsAddObjectCreateItemToDeviceHeader( - IN KSDEVICE_HEADER Header, - IN PDRIVER_DISPATCH Create, - IN PVOID Context, - IN PWCHAR ObjectClass, - IN PSECURITY_DESCRIPTOR SecurityDescriptor) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsAddObjectCreateItemToObjectHeader( - IN KSOBJECT_HEADER Header, - IN PDRIVER_DISPATCH Create, - IN PVOID Context, - IN PWCHAR ObjectClass, - IN PSECURITY_DESCRIPTOR SecurityDescriptor) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsAllocateDeviceHeader( - OUT PVOID Header, - IN ULONG ItemsCount, - IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsAllocateExtraData( - IN PIRP Irp, - IN ULONG ExtraSize, - OUT PVOID* ExtraBuffer) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsAllocateObjectCreateItem( - IN KSDEVICE_HEADER Header, - IN PKSOBJECT_CREATE_ITEM CreateItem, - IN BOOL AllocateEntry, - IN PFNKSITEMFREECALLBACK ItemFreeCallback OPTIONAL) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsAllocateObjectHeader( - OUT PVOID Header, - IN ULONG ItemsCount, - IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL, - IN PIRP Irp, - IN KSDISPATCH_TABLE* Table) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsCancelIo( - IN OUT PLIST_ENTRY QueueHead, - IN PKSPIN_LOCK SpinLock) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsCancelRoutine( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsDefaultDeviceIoCompletion( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI BOOLEAN NTAPI -KsDispatchFastIoDeviceControlFailure( - IN PFILE_OBJECT FileObject, - IN BOOLEAN Wait, - IN PVOID InputBuffer OPTIONAL, - IN ULONG InputBufferLength, - OUT PVOID OutputBuffer OPTIONAL, - IN ULONG OutputBufferLength, - IN ULONG IoControlCode, - OUT PIO_STATUS_BLOCK IoStatus, - IN PDEVICE_OBJECT DeviceObject) /* always return false */ -{ - return FALSE; -} - -/* - @unimplemented -*/ -KSDDKAPI BOOLEAN NTAPI -KsDispatchFastReadFailure( - IN PFILE_OBJECT FileObject, - IN PLARGE_INTEGER FileOffset, - IN ULONG Length, - IN BOOLEAN Wait, - IN ULONG LockKey, - OUT PVOID Buffer, - OUT PIO_STATUS_BLOCK IoStatus, - IN PDEVICE_OBJECT DeviceObject) /* always return false */ -{ - return FALSE; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsDispatchInvalidDeviceRequest( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsDispatchIrp( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsDispatchSpecificMethod( - IN PIRP Irp, - IN PFNKSHANDLER Handler) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsDispatchSpecificProperty( - IN PIRP Irp, - IN PFNKSHANDLER Handler) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsForwardAndCatchIrp( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp, - IN PFILE_OBJECT FileObject, - IN KSSTACK_USE StackUse) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsForwardIrp( - IN PIRP Irp, - IN PFILE_OBJECT FileObject, - IN BOOLEAN ReuseStackLocation) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsFreeDeviceHeader( - IN PVOID Header) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsFreeObjectHeader( - IN PVOID Header) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsGetChildCreateParameter( - IN PIRP Irp, - OUT PVOID* CreateParameter) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsMoveIrpsOnCancelableQueue( - IN OUT PLIST_ENTRY SourceList, - IN PKSPIN_LOCK SourceLock, - IN OUT PLIST_ENTRY DestinationList, - IN PKSPIN_LOCK DestinationLock OPTIONAL, - IN KSLIST_ENTRY_LOCATION ListLocation, - IN PFNKSIRPLISTCALLBACK ListCallback, - IN PVOID Context) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsProbeStreamIrp( - IN PIRP Irp, - IN ULONG ProbeFlags, - IN ULONG HeaderSize) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsQueryInformationFile( - IN PFILE_OBJECT FileObject, - OUT PVOID FileInformation, - IN ULONG Length, - IN FILE_INFORMATION_CLASS FileInformationClass) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI ACCESS_MASK NTAPI -KsQueryObjectAccessMask( - IN KSOBJECT_HEADER Header) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI PKSOBJECT_CREATE_ITEM NTAPI -KsQueryObjectCreateItem( - IN KSOBJECT_HEADER Header) -{ - UNIMPLEMENTED; -/* return STATUS_UNSUCCESSFUL; */ - return NULL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsReadFile( - IN PFILE_OBJECT FileObject, - IN PKEVENT Event OPTIONAL, - IN PVOID PortContext OPTIONAL, - OUT PIO_STATUS_BLOCK IoStatusBlock, - OUT PVOID Buffer, - IN ULONG Length, - IN ULONG Key OPTIONAL, - IN KPROCESSOR_MODE RequestorMode) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsReleaseIrpOnCancelableQueue( - IN PIRP Irp, - IN PDRIVER_CANCEL DriverCancel OPTIONAL) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI PIRP NTAPI -KsRemoveIrpFromCancelableQueue( - IN OUT PLIST_ENTRY QueueHead, - IN PKSPIN_LOCK SpinLock, - IN KSLIST_ENTRY_LOCATION ListLocation, - IN KSIRP_REMOVAL_OPERATION RemovalOperation) -{ - UNIMPLEMENTED; - return NULL; - /*return STATUS_UNSUCCESSFUL; */ -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsRemoveSpecificIrpFromCancelableQueue( - IN PIRP Irp) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsSetInformationFile( - IN PFILE_OBJECT FileObject, - IN PVOID FileInformation, - IN ULONG Length, - IN FILE_INFORMATION_CLASS FileInformationClass) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsSetMajorFunctionHandler( - IN PDRIVER_OBJECT DriverObject, - IN ULONG MajorFunction) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsStreamIo( - IN PFILE_OBJECT FileObject, - IN PKEVENT Event OPTIONAL, - IN PVOID PortContext OPTIONAL, - IN PIO_COMPLETION_ROUTINE CompletionRoutine OPTIONAL, - IN PVOID CompletionContext OPTIONAL, - IN KSCOMPLETION_INVOCATION CompletionInvocationFlags OPTIONAL, - OUT PIO_STATUS_BLOCK IoStatusBlock, - IN OUT PVOID StreamHeaders, - IN ULONG Length, - IN ULONG Flags, - IN KPROCESSOR_MODE RequestorMode) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI - KsWriteFile( - IN PFILE_OBJECT FileObject, - IN PKEVENT Event OPTIONAL, - IN PVOID PortContext OPTIONAL, - OUT PIO_STATUS_BLOCK IoStatusBlock, - IN PVOID Buffer, - IN ULONG Length, - IN ULONG Key OPTIONAL, - IN KPROCESSOR_MODE RequestorMode) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} diff --git a/reactos/drivers/multimedia/x/ks.def b/reactos/drivers/multimedia/x/ks.def deleted file mode 100644 index f146fc5f53f..00000000000 --- a/reactos/drivers/multimedia/x/ks.def +++ /dev/null @@ -1,111 +0,0 @@ -; -; Exports definition file for ks.sys -; - -EXPORTS -KsCreateAllocator@12 -KsCreateDefaultAllocator@4 -KsValidateAllocatorCreateRequest@8 -KsCreateDefaultAllocatorEx@24 -KsValidateAllocatorFramingEx@12 - -KsCreateClock@12 -KsCreateDefaultClock@8 -KsAllocateDefaultClock@4 -KsAllocateDefaultClockEx@28 -KsFreeDefaultClock@4 -KsValidateClockCreateRequest@8 -KsGetDefaultClockState@4 -KsSetDefaultClockState@8 -KsGetDefaultClockTime@4 -KsSetDefaultClockTime@12 - -KsMethodHandler@12 -KsMethodHandlerWithAllocator@20 -KsFastMethodHandler@32 - -KsPropertyHandler@12 -KsPropertyHandlerWithAllocator@20 -KsUnserializeObjectPropertiesFromRegistry@12 -KsFastPropertyHandler@32 - -KsGenerateEvent@4 -KsEnableEventWithAllocator@32 -KsGenerateDataEvent@12 -KsEnableEvent@24 -KsDiscardEvent@4 -KsDisableEvent@16 -KsFreeEventList@16 - -KsValidateTopologyNodeCreateRequest@12 -KsCreateTopologyNode@16 -KsTopologyPropertyHandler@16 - -KsCreatePin@16 -KsValidateConnectRequest@16 -KsPinPropertyHandler@20 -KsPinDataIntersection@24 - -KsHandleSizedListQuery@16 - -KsAcquireResetValue@8 -KsAddIrpToCancelableQueue@20 -KsAddObjectCreateItemToDeviceHeader@20 -KsAddObjectCreateItemToObjectHeader@20 -KsAllocateDeviceHeader@12 -KsAllocateExtraData@12 -KsAllocateObjectCreateItem@16 -KsAllocateObjectHeader@20 -KsCancelIo@8 -KsCancelRoutine@8 -KsDefaultDeviceIoCompletion@8 -KsDispatchFastIoDeviceControlFailure@36 -KsDispatchFastReadFailure@32 -; KsDispatchFastWriteFailure@32 -KsDispatchInvalidDeviceRequest@8 -KsDispatchIrp@8 -KsDispatchSpecificMethod@8 -KsDispatchSpecificProperty@8 -KsForwardAndCatchIrp@16 -KsForwardIrp@12 -KsFreeDeviceHeader@4 -KsFreeObjectHeader@4 -KsGetChildCreateParameter@8 -KsMoveIrpsOnCancelableQueue@28 -KsProbeStreamIrp@12 -KsQueryInformationFile@16 -KsQueryObjectAccessMask@4 -KsQueryObjectCreateItem@4 -KsReadFile@32 -KsReleaseIrpOnCancelableQueue@8 -KsRemoveIrpFromCancelableQueue@16 -KsRemoveSpecificIrpFromCancelableQueue@4 -KsSetInformationFile@16 -KsSetMajorFunctionHandler@8 -KsStreamIo@44 -KsWriteFile@32 - -KsRegisterWorker@8 -KsUnregisterWorker@4 -KsRegisterCountedWorker@12 -KsDecrementCountedWorker@4 -KsIncrementCountedWorker@4 -KsQueueWorkItem@8 - -KsCacheMedium@12 -KsDefaultDispatchPnp@8 -KsSetDevicePnpAndBaseObject@12 -KsDefaultDispatchPower@8 -KsSetPowerDispatch@12 -KsReferenceBusObject@4 -KsDereferenceBusObject@4 -KsFreeObjectCreateItem@8 -KsFreeObjectCreateItemsByContext@8 -KsLoadResource@24 -; KsNullDriverUnload@4 -KsPinDataIntersectionEx@32 -KsQueryDevicePnpObject@4 -KsRecalculateStackDepth@8 -KsSetTargetDeviceObject@8 -KsSetTargetState@8 -KsSynchronousIoControlDevice@32 diff --git a/reactos/drivers/multimedia/x/ks.rbuild b/reactos/drivers/multimedia/x/ks.rbuild deleted file mode 100644 index cf7675c08be..00000000000 --- a/reactos/drivers/multimedia/x/ks.rbuild +++ /dev/null @@ -1,20 +0,0 @@ - - . - .. - ../include - - ntoskrnl - - - ks.rc - allocators.c - clocks.c - connectivity.c - events.c - irp.c - methods.c - misc.c - properties.c - topology.c - worker.c - diff --git a/reactos/drivers/multimedia/x/ks.rc b/reactos/drivers/multimedia/x/ks.rc deleted file mode 100644 index 197b8208366..00000000000 --- a/reactos/drivers/multimedia/x/ks.rc +++ /dev/null @@ -1,5 +0,0 @@ -#define REACTOS_VERSION_DLL -#define REACTOS_STR_FILE_DESCRIPTION "Kernel Streaming API\0" -#define REACTOS_STR_INTERNAL_NAME "ks\0" -#define REACTOS_STR_ORIGINAL_FILENAME "ks.sys\0" -#include diff --git a/reactos/drivers/multimedia/x/methods.c b/reactos/drivers/multimedia/x/methods.c deleted file mode 100644 index f766c1b41dd..00000000000 --- a/reactos/drivers/multimedia/x/methods.c +++ /dev/null @@ -1,51 +0,0 @@ -/* =============================================================== - Method Functions -*/ - -#include - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsMethodHandler( - IN PIRP Irp, - IN ULONG MethodSetsCount, - IN PKSMETHOD_SET MethodSet) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsMethodHandlerWithAllocator( - IN PIRP Irp, - IN ULONG MethodSetsCount, - IN PKSMETHOD_SET MethodSet, - IN PFNKSALLOCATOR Allocator OPTIONAL, - IN ULONG MethodItemSize OPTIONAL) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI BOOLEAN NTAPI -KsFastMethodHandler( - IN PFILE_OBJECT FileObject, - IN PKSMETHOD UNALIGNED Method, - IN ULONG MethodLength, - IN OUT PVOID UNALIGNED Data, - IN ULONG DataLength, - OUT PIO_STATUS_BLOCK IoStatus, - IN ULONG MethodSetsCount, - IN const KSMETHOD_SET* MethodSet) -{ - UNIMPLEMENTED; - return FALSE; -} diff --git a/reactos/drivers/multimedia/x/misc.c b/reactos/drivers/multimedia/x/misc.c deleted file mode 100644 index 7e5303ec6e3..00000000000 --- a/reactos/drivers/multimedia/x/misc.c +++ /dev/null @@ -1,218 +0,0 @@ -#include - -/* =============================================================== - Misc. Helper Functions -*/ - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsCacheMedium( - IN PUNICODE_STRING SymbolicLink, - IN PKSPIN_MEDIUM Medium, - IN DWORD PinDirection) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsDefaultDispatchPnp( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsSetDevicePnpAndBaseObject( - IN KSDEVICE_HEADER Header, - IN PDEVICE_OBJECT PnpDeviceObject, - IN PDEVICE_OBJECT BaseDevice) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsDefaultDispatchPower( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsSetPowerDispatch( - IN KSOBJECT_HEADER Header, - IN PFNKSCONTEXT_DISPATCH PowerDispatch OPTIONAL, - IN PVOID PowerContext OPTIONAL) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsReferenceBusObject( - IN KSDEVICE_HEADER Header) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsDereferenceBusObject( - IN KSDEVICE_HEADER Header) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsFreeObjectCreateItem( - IN KSDEVICE_HEADER Header, - IN PUNICODE_STRING CreateItem) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsFreeObjectCreateItemsByContext( - IN KSDEVICE_HEADER Header, - IN PVOID Context) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsLoadResource( - IN PVOID ImageBase, - IN POOL_TYPE PoolType, - IN ULONG_PTR ResourceName, - IN ULONG ResourceType, - OUT PVOID* Resource, - OUT PULONG ResourceSize) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -VOID -KsNullDriverUnload( - IN PDRIVER_OBJECT DriverObject) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsPinDataIntersectionEx( - IN PIRP Irp, - IN PKSP_PIN Pin, - OUT PVOID Data, - IN ULONG DescriptorsCount, - IN const KSPIN_DESCRIPTOR* Descriptor, - IN ULONG DescriptorSize, - IN PFNKSINTERSECTHANDLEREX IntersectHandler OPTIONAL, - IN PVOID HandlerContext OPTIONAL) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI PDEVICE_OBJECT NTAPI -KsQueryDevicePnpObject( - IN KSDEVICE_HEADER Header) -{ - UNIMPLEMENTED; - return NULL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsRecalculateStackDepth( - IN KSDEVICE_HEADER Header, - IN BOOLEAN ReuseStackLocation) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsSetTargetDeviceObject( - IN KSOBJECT_HEADER Header, - IN PDEVICE_OBJECT TargetDevice OPTIONAL) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsSetTargetState( - IN KSOBJECT_HEADER Header, - IN KSTARGET_STATE TargetState) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsSynchronousIoControlDevice( - IN PFILE_OBJECT FileObject, - IN KPROCESSOR_MODE RequestorMode, - IN DWORD IoControl, - IN PVOID InBuffer, - IN ULONG InSize, - OUT PVOID OutBuffer, - IN ULONG OUtSize, - OUT PULONG BytesReturned) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - diff --git a/reactos/drivers/multimedia/x/properties.c b/reactos/drivers/multimedia/x/properties.c deleted file mode 100644 index 84a223784e6..00000000000 --- a/reactos/drivers/multimedia/x/properties.c +++ /dev/null @@ -1,64 +0,0 @@ -#include - -/* =============================================================== - Property Functions -*/ - -/* - @unimplemented -*/ -KSDDKAPI BOOLEAN NTAPI -KsFastPropertyHandler( - IN PFILE_OBJECT FileObject, - IN PKSPROPERTY UNALIGNED Property, - IN ULONG PropertyLength, - IN OUT PVOID UNALIGNED Data, - IN ULONG DataLength, - OUT PIO_STATUS_BLOCK IoStatus, - IN ULONG PropertySetsCount, - IN const KSPROPERTY_SET* PropertySet) -{ - UNIMPLEMENTED; - return FALSE; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsPropertyHandler( - IN PIRP Irp, - IN ULONG PropertySetsCount, - IN const KSPROPERTY_SET* PropertySet) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsPropertyHandlerWithAllocator( - IN PIRP Irp, - IN ULONG PropertySetsCount, - IN PKSPROPERTY_SET PropertySet, - IN PFNKSALLOCATOR Allocator OPTIONAL, - IN ULONG PropertyItemSize OPTIONAL) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsUnserializeObjectPropertiesFromRegistry( - IN PFILE_OBJECT FileObject, - IN HANDLE ParentKey OPTIONAL, - IN PUNICODE_STRING RegistryPath OPTIONAL) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} diff --git a/reactos/drivers/multimedia/x/topology.c b/reactos/drivers/multimedia/x/topology.c deleted file mode 100644 index df5049444ab..00000000000 --- a/reactos/drivers/multimedia/x/topology.c +++ /dev/null @@ -1,46 +0,0 @@ -#include - -/* =============================================================== - Topology Functions -*/ - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsCreateTopologyNode( - IN HANDLE ParentHandle, - IN PKSNODE_CREATE NodeCreate, - IN ACCESS_MASK DesiredAccess, - OUT PHANDLE NodeHandle) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsValidateTopologyNodeCreateRequest( - IN PIRP Irp, - IN PKSTOPOLOGY Topology, - OUT PKSNODE_CREATE* NodeCreate) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsTopologyPropertyHandler( - IN PIRP Irp, - IN PKSPROPERTY Property, - IN OUT PVOID Data, - IN const KSTOPOLOGY* Topology) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} diff --git a/reactos/drivers/multimedia/x/worker.c b/reactos/drivers/multimedia/x/worker.c deleted file mode 100644 index f47e9a2780d..00000000000 --- a/reactos/drivers/multimedia/x/worker.c +++ /dev/null @@ -1,74 +0,0 @@ -/* =============================================================== - Worker Management Functions -*/ - -#include - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsRegisterWorker( - IN WORK_QUEUE_TYPE WorkQueueType, - OUT PKSWORKER* Worker) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI VOID NTAPI -KsUnregisterWorker( - IN PKSWORKER Worker) -{ - UNIMPLEMENTED; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsRegisterCountedWorker( - IN WORK_QUEUE_TYPE WorkQueueType, - IN PWORK_QUEUE_ITEM CountedWorkItem, - OUT PKSWORKER* Worker) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - @unimplemented -*/ -KSDDKAPI ULONG NTAPI -KsDecrementCountedWorker( - IN PKSWORKER Worker) -{ - UNIMPLEMENTED; - return 0; -} - -/* - @unimplemented -*/ -KSDDKAPI ULONG NTAPI -KsIncrementCountedWorker( - IN PKSWORKER Worker) -{ - UNIMPLEMENTED; - return 0; -} - -/* - @unimplemented -*/ -KSDDKAPI NTSTATUS NTAPI -KsQueueWorkItem( - IN PKSWORKER Worker, - IN PWORK_QUEUE_ITEM WorkItem) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} diff --git a/reactos/drivers/parallel/parclass/.gitignore b/reactos/drivers/parallel/parclass/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/drivers/parallel/parport/.gitignore b/reactos/drivers/parallel/parport/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/drivers/storage/classpnp/.gitignore b/reactos/drivers/storage/classpnp/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/drivers/storage/fdc/fdc/.gitignore b/reactos/drivers/storage/fdc/fdc/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/drivers/storage/fdc/flpydisk/.gitignore b/reactos/drivers/storage/fdc/flpydisk/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/drivers/usb/usbehci/common.c b/reactos/drivers/usb/usbehci/common.c deleted file mode 100644 index f31eb9be50f..00000000000 --- a/reactos/drivers/usb/usbehci/common.c +++ /dev/null @@ -1,254 +0,0 @@ -/* - * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/usb/usbehci/common.c - * PURPOSE: Common operations. - * PROGRAMMERS: - * Michael Martin (michael.martin@reactos.org) - */ - -#define INITGUID -#include "usbehci.h" -#include -#include - -VOID -DumpDeviceDescriptor(PUSB_DEVICE_DESCRIPTOR DeviceDescriptor) -{ - DPRINT1("Dumping Device Descriptor %x\n", DeviceDescriptor); - DPRINT1("bLength %x\n", DeviceDescriptor->bLength); - DPRINT1("bDescriptorType %x\n", DeviceDescriptor->bDescriptorType); - DPRINT1("bcdUSB %x\n", DeviceDescriptor->bcdUSB); - DPRINT1("bDeviceClass %x\n", DeviceDescriptor->bDeviceClass); - DPRINT1("bDeviceSubClass %x\n", DeviceDescriptor->bDeviceSubClass); - DPRINT1("bDeviceProtocol %x\n", DeviceDescriptor->bDeviceProtocol); - DPRINT1("bMaxPacketSize0 %x\n", DeviceDescriptor->bMaxPacketSize0); - DPRINT1("idVendor %x\n", DeviceDescriptor->idVendor); - DPRINT1("idProduct %x\n", DeviceDescriptor->idProduct); - DPRINT1("bcdDevice %x\n", DeviceDescriptor->bcdDevice); - DPRINT1("iManufacturer %x\n", DeviceDescriptor->iManufacturer); - DPRINT1("iProduct %x\n", DeviceDescriptor->iProduct); - DPRINT1("iSerialNumber %x\n", DeviceDescriptor->iSerialNumber); - DPRINT1("bNumConfigurations %x\n", DeviceDescriptor->bNumConfigurations); -} - -VOID -DumpFullConfigurationDescriptor(PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor) -{ - PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor; - PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor; - LONG i, j; - - DPRINT1("Dumping ConfigurationDescriptor %x\n", ConfigurationDescriptor); - DPRINT1("bLength %x\n", ConfigurationDescriptor->bLength); - DPRINT1("bDescriptorType %x\n", ConfigurationDescriptor->bDescriptorType); - DPRINT1("wTotalLength %x\n", ConfigurationDescriptor->wTotalLength); - DPRINT1("bNumInterfaces %x\n", ConfigurationDescriptor->bNumInterfaces); - DPRINT1("bConfigurationValue %x\n", ConfigurationDescriptor->bConfigurationValue); - DPRINT1("iConfiguration %x\n", ConfigurationDescriptor->iConfiguration); - DPRINT1("bmAttributes %x\n", ConfigurationDescriptor->bmAttributes); - DPRINT1("MaxPower %x\n", ConfigurationDescriptor->MaxPower); - - InterfaceDescriptor = (PUSB_INTERFACE_DESCRIPTOR) ((ULONG_PTR)ConfigurationDescriptor + sizeof(USB_CONFIGURATION_DESCRIPTOR)); - - for (i=0; i < ConfigurationDescriptor->bNumInterfaces; i++) - { - DPRINT1("- Dumping InterfaceDescriptor %x\n", InterfaceDescriptor); - DPRINT1(" bLength %x\n", InterfaceDescriptor->bLength); - DPRINT1(" bDescriptorType %x\n", InterfaceDescriptor->bDescriptorType); - DPRINT1(" bInterfaceNumber %x\n", InterfaceDescriptor->bInterfaceNumber); - DPRINT1(" bAlternateSetting %x\n", InterfaceDescriptor->bAlternateSetting); - DPRINT1(" bNumEndpoints %x\n", InterfaceDescriptor->bNumEndpoints); - DPRINT1(" bInterfaceClass %x\n", InterfaceDescriptor->bInterfaceClass); - DPRINT1(" bInterfaceSubClass %x\n", InterfaceDescriptor->bInterfaceSubClass); - DPRINT1(" bInterfaceProtocol %x\n", InterfaceDescriptor->bInterfaceProtocol); - DPRINT1(" iInterface %x\n", InterfaceDescriptor->iInterface); - - EndpointDescriptor = (PUSB_ENDPOINT_DESCRIPTOR) ((ULONG_PTR)InterfaceDescriptor + sizeof(USB_INTERFACE_DESCRIPTOR)); - - for (j=0; j < InterfaceDescriptor->bNumEndpoints; j++) - { - DPRINT1(" bLength %x\n", EndpointDescriptor->bLength); - DPRINT1(" bDescriptorType %x\n", EndpointDescriptor->bDescriptorType); - DPRINT1(" bEndpointAddress %x\n", EndpointDescriptor->bEndpointAddress); - DPRINT1(" bmAttributes %x\n", EndpointDescriptor->bmAttributes); - DPRINT1(" wMaxPacketSize %x\n", EndpointDescriptor->wMaxPacketSize); - DPRINT1(" bInterval %x\n", EndpointDescriptor->bInterval); - EndpointDescriptor = (PUSB_ENDPOINT_DESCRIPTOR) ((ULONG_PTR)EndpointDescriptor + sizeof(USB_ENDPOINT_DESCRIPTOR)); - } - InterfaceDescriptor = (PUSB_INTERFACE_DESCRIPTOR)(ULONG_PTR)EndpointDescriptor; - } - -} - -VOID -DumpQueueHead(PQUEUE_HEAD QueueHead) -{ - DPRINT1("Dumping QueueHead %x\n", QueueHead); - DPRINT1(" CurrentLinkPointer %x\n", QueueHead->CurrentLinkPointer); - DPRINT1(" NextPointer %x\n", QueueHead->NextPointer); - DPRINT1(" AlternateNextPointer %x\n", QueueHead->AlternateNextPointer); - DPRINT1(" HorizontalLinkPointer %x\n", QueueHead->HorizontalLinkPointer); - DPRINT1(" Active %x\n", QueueHead->Token.Bits.Active); - DPRINT1(" Halted %x\n", QueueHead->Token.Bits.Halted); - DPRINT1(" DataBufferError %x\n", QueueHead->Token.Bits.DataBufferError); - DPRINT1(" BabbleDetected %x\n", QueueHead->Token.Bits.BabbleDetected); - DPRINT1(" TransactionError %x\n", QueueHead->Token.Bits.TransactionError); - DPRINT1(" MissedMicroFrame %x\n", QueueHead->Token.Bits.MissedMicroFrame); - DPRINT1(" PingState %x\n", QueueHead->Token.Bits.PingState); - DPRINT1(" SplitTransactionState %x\n", QueueHead->Token.Bits.SplitTransactionState); - DPRINT1(" ErrorCounter %x\n", QueueHead->Token.Bits.ErrorCounter); - DPRINT1(" First TransferDescriptor %x\n", QueueHead->FirstTransferDescriptor); -} - -VOID -DumpTransferDescriptor(PQUEUE_TRANSFER_DESCRIPTOR TransferDescriptor) -{ - DPRINT1("Dumping Descriptor %x\n", TransferDescriptor); - DPRINT1(" Active %x\n", TransferDescriptor->Token.Bits.Active); - DPRINT1(" Halted %x\n", TransferDescriptor->Token.Bits.Halted); - DPRINT1(" DataBufferError %x\n", TransferDescriptor->Token.Bits.DataBufferError); - DPRINT1(" BabbleDetected %x\n", TransferDescriptor->Token.Bits.BabbleDetected); - DPRINT1(" TransactionError %x\n", TransferDescriptor->Token.Bits.TransactionError); - DPRINT1(" MissedMicroFrame %x\n", TransferDescriptor->Token.Bits.MissedMicroFrame); - DPRINT1(" PingState %x\n", TransferDescriptor->Token.Bits.PingState); - DPRINT1(" SplitTransactionState %x\n", TransferDescriptor->Token.Bits.SplitTransactionState); - DPRINT1(" ErrorCounter %x\n", TransferDescriptor->Token.Bits.ErrorCounter); -} - -NTSTATUS NTAPI -GetBusInterface(PDEVICE_OBJECT DeviceObject, PBUS_INTERFACE_STANDARD busInterface) -{ - KEVENT Event; - NTSTATUS Status; - PIRP Irp; - IO_STATUS_BLOCK IoStatus; - PIO_STACK_LOCATION Stack; - - if ((!DeviceObject) || (!busInterface)) - return STATUS_UNSUCCESSFUL; - - KeInitializeEvent(&Event, NotificationEvent, FALSE); - - Irp = IoBuildSynchronousFsdRequest(IRP_MJ_PNP, - DeviceObject, - NULL, - 0, - NULL, - &Event, - &IoStatus); - - if (Irp == NULL) - { - return STATUS_INSUFFICIENT_RESOURCES; - } - - Stack=IoGetNextIrpStackLocation(Irp); - Stack->MajorFunction = IRP_MJ_PNP; - Stack->MinorFunction = IRP_MN_QUERY_INTERFACE; - Stack->Parameters.QueryInterface.Size = sizeof(BUS_INTERFACE_STANDARD); - Stack->Parameters.QueryInterface.InterfaceType = (LPGUID)&GUID_BUS_INTERFACE_STANDARD; - Stack->Parameters.QueryInterface.Version = 1; - Stack->Parameters.QueryInterface.Interface = (PINTERFACE)busInterface; - Stack->Parameters.QueryInterface.InterfaceSpecificData = NULL; - Irp->IoStatus.Status=STATUS_NOT_SUPPORTED ; - - Status=IoCallDriver(DeviceObject, Irp); - - if (Status == STATUS_PENDING) - { - KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL); - - Status=IoStatus.Status; - } - - return Status; -} - -NTSTATUS NTAPI -ForwardAndWaitCompletionRoutine(PDEVICE_OBJECT DeviceObject, PIRP Irp, PKEVENT Event) -{ - if (Irp->PendingReturned) - { - KeSetEvent(Event, IO_NO_INCREMENT, FALSE); - } - return STATUS_MORE_PROCESSING_REQUIRED; -} - -NTSTATUS NTAPI -ForwardAndWait(PDEVICE_OBJECT DeviceObject, PIRP Irp) -{ - PFDO_DEVICE_EXTENSION DeviceExtensions; - KEVENT Event; - NTSTATUS Status; - - - DeviceExtensions = DeviceObject->DeviceExtension; - KeInitializeEvent(&Event, NotificationEvent, FALSE); - IoCopyCurrentIrpStackLocationToNext(Irp); - IoSetCompletionRoutine(Irp, (PIO_COMPLETION_ROUTINE)ForwardAndWaitCompletionRoutine, &Event, TRUE, TRUE, TRUE); - Status = IoCallDriver(DeviceExtensions->LowerDevice, Irp); - if (Status == STATUS_PENDING) - { - KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL); - Status = Irp->IoStatus.Status; - } - - return Status; -} - -NTSTATUS NTAPI -ForwardIrpAndForget(PDEVICE_OBJECT DeviceObject, PIRP Irp) -{ - PDEVICE_OBJECT LowerDevice; - - LowerDevice = ((PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->LowerDevice; - ASSERT(LowerDevice); - - IoSkipCurrentIrpStackLocation(Irp); - return IoCallDriver(LowerDevice, Irp); -} - -/* Copied fom trunk PCI drivers */ -NTSTATUS -DuplicateUnicodeString(ULONG Flags, PCUNICODE_STRING SourceString, PUNICODE_STRING DestinationString) -{ - if (SourceString == NULL || DestinationString == NULL - || SourceString->Length > SourceString->MaximumLength - || (SourceString->Length == 0 && SourceString->MaximumLength > 0 && SourceString->Buffer == NULL) - || Flags == RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING || Flags >= 4) - { - return STATUS_INVALID_PARAMETER; - } - - - if ((SourceString->Length == 0) - && (Flags != (RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE | - RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING))) - { - DestinationString->Length = 0; - DestinationString->MaximumLength = 0; - DestinationString->Buffer = NULL; - } - else - { - USHORT DestMaxLength = SourceString->Length; - - if (Flags & RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE) - DestMaxLength += sizeof(UNICODE_NULL); - - DestinationString->Buffer = ExAllocatePoolWithTag(NonPagedPool, DestMaxLength, USB_POOL_TAG); - if (DestinationString->Buffer == NULL) - return STATUS_NO_MEMORY; - - RtlCopyMemory(DestinationString->Buffer, SourceString->Buffer, SourceString->Length); - DestinationString->Length = SourceString->Length; - DestinationString->MaximumLength = DestMaxLength; - - if (Flags & RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE) - DestinationString->Buffer[DestinationString->Length / sizeof(WCHAR)] = 0; - } - - return STATUS_SUCCESS; -} - diff --git a/reactos/drivers/usb/usbehci/fdo.c b/reactos/drivers/usb/usbehci/fdo.c deleted file mode 100644 index 805d43ebd2a..00000000000 --- a/reactos/drivers/usb/usbehci/fdo.c +++ /dev/null @@ -1,877 +0,0 @@ -/* - * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/usb/usbehci/fdo.c - * PURPOSE: USB EHCI device driver. - * PROGRAMMERS: - * Michael Martin (michael.martin@reactos.org) - */ - -#include "hwiface.h" -#include "usbehci.h" -#include "physmem.h" -#include - -VOID NTAPI -EhciDefferedRoutine(PKDPC Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2) -{ - PFDO_DEVICE_EXTENSION FdoDeviceExtension; - PPDO_DEVICE_EXTENSION PdoDeviceExtension; - ULONG CStatus; - ULONG tmp; - ULONG OpRegisters; - PEHCI_HOST_CONTROLLER hcd; - int i; - - FdoDeviceExtension = (PFDO_DEVICE_EXTENSION) DeferredContext; - - /* Nothing is valid if the Pdo is NULL */ - if (!FdoDeviceExtension->Pdo) - { - DPRINT1("PDO not set yet!\n"); - return; - } - - PdoDeviceExtension = (PPDO_DEVICE_EXTENSION) FdoDeviceExtension->Pdo->DeviceExtension; - - OpRegisters = (ULONG)FdoDeviceExtension->hcd.OpRegisters; - - hcd = &FdoDeviceExtension->hcd; - - CStatus = (ULONG) SystemArgument2; - - /* If Reclamation (The QueueHead list has been transveresed twice), - look through the queuehead list and find queue heads that have been - 1. Halted due to error - 2. Transfer completion. - Move these QueueHeads to a temporary list that is used to pend memory release. - Either an Event is signalled or an Irp is completed depending on what was set during transfer request - setup. Next software issue a "DoorBell" that informs the controller the Asynchronous List is about to - be modified. - After the controller acks this with interrupt, the memory for queueheads are released. */ - - if (CStatus & (EHCI_STS_RECL| EHCI_STS_INT | EHCI_ERROR_INT)) - { - PQUEUE_HEAD CurrentQH; - PQUEUE_TRANSFER_DESCRIPTOR CurrentTD; - BOOLEAN QueueHeadCompleted; - - /* Go through the list and delink completed (not active) QueueHeads */ - CurrentQH = hcd->AsyncListQueue; - CurrentQH = CurrentQH->NextQueueHead; - - while ((CurrentQH) && (CurrentQH != hcd->AsyncListQueue)) - { - DPRINT1("Checking QueueHead %x, Next %x\n", CurrentQH, CurrentQH->NextQueueHead); - DPRINT1("Active %d, Halted %d\n", CurrentQH->Token.Bits.Active, CurrentQH->Token.Bits.Halted); - - /* if the QueueHead has completed */ - if (!CurrentQH->Token.Bits.Active) - { - /* Assume success */ - USBD_STATUS UrbStatus = USBD_STATUS_SUCCESS; - - QueueHeadCompleted = TRUE; - - /* Check the Status of the QueueHead */ - if (CurrentQH->Token.Bits.Halted) - { - if (CurrentQH->Token.Bits.DataBufferError) - { - DPRINT1("Data buffer error\n"); - UrbStatus = USBD_STATUS_DATA_BUFFER_ERROR; - } - else if (CurrentQH->Token.Bits.BabbleDetected) - { - DPRINT1("Babble Detected\n"); - UrbStatus = USBD_STATUS_BABBLE_DETECTED; - } - else - { - DPRINT1("Stall PID\n"); - UrbStatus = USBD_STATUS_STALL_PID; - } - } - - /* Check the Descriptors */ - CurrentTD = CurrentQH->FirstTransferDescriptor; - while (CurrentTD) - { - /* FIXME: What needs to happen if the QueueHead was marked as complete but descriptors was not */ - if ((CurrentTD->Token.Bits.Active) || (CurrentTD->Token.Bits.Halted)) - { - /* The descriptor was not completed */ - QueueHeadCompleted = FALSE; - DPRINT1("QueueHead was marked as completed but contains descriptors that were not completed\n"); - ASSERT(FALSE); - break; - } - CurrentTD = CurrentTD->NextDescriptor; - } - - if ((QueueHeadCompleted) || (CurrentQH->Token.Bits.Halted)) - { - PQUEUE_HEAD FreeQH; - - FreeQH = CurrentQH; - CurrentQH = CurrentQH->NextQueueHead; - DPRINT1("QueueHead %x has completed. Removing\n", FreeQH); - /* Move it into the completed list */ - UnlinkQueueHead(hcd, FreeQH); - LinkQueueHeadToCompletedList(hcd, FreeQH); - DPRINT1("Remove done\n"); - - /* If the Event is set then the caller is waiting on completion */ - if (FreeQH->Event) - { - KeSetEvent(FreeQH->Event, IO_NO_INCREMENT, FALSE); - } - - /* If there is an IrpToComplete then the caller did not wait on completion - and the IRP was marked as PENDING. Complete it now. */ - if (FreeQH->IrpToComplete) - { - PIRP Irp; - PIO_STACK_LOCATION Stack; - PURB Urb; - - Irp = FreeQH->IrpToComplete; - Stack = IoGetCurrentIrpStackLocation(Irp); - ASSERT(Stack); - Urb = (PURB) Stack->Parameters.Others.Argument1; - ASSERT(Urb); - - /* Check for error */ - if (CStatus & EHCI_ERROR_INT) - { - Irp->IoStatus.Status = STATUS_UNSUCCESSFUL; - Irp->IoStatus.Information = 0; - /* Set BufferLength to 0 as there was error */ - if (Urb->UrbHeader.Function == URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE) - { - Urb->UrbControlDescriptorRequest.TransferBufferLength = 0; - } - DPRINT1("There was an Error, TransferBufferLength set to 0\n"); - } - else - { - if (Urb->UrbHeader.Function == URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE) - { - if (Urb->UrbControlDescriptorRequest.TransferBufferLength >= - ((PUSB_COMMON_DESCRIPTOR)(Urb->UrbControlDescriptorRequest.TransferBuffer))->bLength) - { - Urb->UrbControlDescriptorRequest.TransferBufferLength = - ((PUSB_COMMON_DESCRIPTOR)(Urb->UrbControlDescriptorRequest.TransferBuffer))->bLength; - } - } - - Irp->IoStatus.Status = STATUS_SUCCESS; - Irp->IoStatus.Information = 0; - DPRINT1("Completing Irp\n"); - } - Urb->UrbHeader.Status = UrbStatus; - IoCompleteRequest(Irp, IO_NO_INCREMENT); - } - - /* FIXME: Move to static function */ - PEHCI_USBCMD_CONTENT UsbCmd; - /* Ring the DoorBell so that host controller knows a QueueHead was removed */ - DPRINT1("Ringing Doorbell\n"); - tmp = READ_REGISTER_ULONG((PULONG) (OpRegisters + EHCI_USBCMD)); - UsbCmd = (PEHCI_USBCMD_CONTENT) &tmp; - UsbCmd->DoorBell = TRUE; - WRITE_REGISTER_ULONG((PULONG) (OpRegisters + EHCI_USBCMD), tmp); - continue; - } - } - - CurrentQH = CurrentQH->NextQueueHead; - } - } - - - /* Port Change. */ - /* FIXME: Use EnumControllerPorts instead */ - if (CStatus & EHCI_STS_PCD) - { - /* Loop through the ports */ - for (i = 0; i < hcd->ECHICaps.HCSParams.PortCount; i++) - { - tmp = READ_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * i))); - - /* Check for port change on this port */ - if (tmp & 0x02) - { - /* Clear status change */ - tmp = READ_REGISTER_ULONG((PULONG)((OpRegisters + EHCI_PORTSC) + (4 * i))); - tmp |= 0x02; - WRITE_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * i)), tmp); - - /* Connect or Disconnect? */ - if (tmp & 0x01) - { - DPRINT1("Device connected on port %d\n", i); - - /* Check if a companion host controller exists */ - if (hcd->ECHICaps.HCSParams.CHCCount) - { - tmp = READ_REGISTER_ULONG((PULONG)((OpRegisters + EHCI_PORTSC) + (4 * i))); - - /* Port should be in disabled state, as per USB 2.0 specs */ - if (tmp & 0x04) - { - DPRINT1("Warning: The port the device has just connected to is not disabled!\n"); - } - - /* Is this non high speed device */ - if (tmp & 0x400) - { - DPRINT1("Non HighSpeed device connected. Releasing ownership.\n"); - /* Release ownership to companion host controller */ - WRITE_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * i)), 0x2000); - continue; - } - } - - KeStallExecutionProcessor(30); - - /* FIXME: Hub driver does this also, is it needed here? */ - /* As per USB 2.0 Specs, 9.1.2. Reset the port and clear the status change */ - //tmp |= 0x100 | 0x02; - /* Sanity, Disable port */ - //tmp &= ~0x04; - - //WRITE_REGISTER_ULONG((PULONG) ((Base + EHCI_PORTSC) + (4 * i)), tmp); - - //KeStallExecutionProcessor(20); - - tmp = READ_REGISTER_ULONG((PULONG)((OpRegisters + EHCI_PORTSC) + (4 * i))); - - PdoDeviceExtension->ChildDeviceCount++; - hcd->Ports[i].PortStatus &= ~0x8000; - hcd->Ports[i].PortStatus |= USB_PORT_STATUS_HIGH_SPEED; - hcd->Ports[i].PortStatus |= USB_PORT_STATUS_CONNECT; - hcd->Ports[i].PortChange |= USB_PORT_STATUS_CONNECT; - DPRINT1("Completing URB\n"); - CompletePendingURBRequest(PdoDeviceExtension); - } - else - { - DPRINT1("Device disconnected on port %d\n", i); - } - } - } - } - - /* Asnyc Advance */ - if (CStatus & EHCI_STS_IAA) - { - DPRINT1("Async Advance!\n"); - CleanupAsyncList(hcd); - } -} - -BOOLEAN NTAPI -InterruptService(PKINTERRUPT Interrupt, PVOID ServiceContext) -{ - PFDO_DEVICE_EXTENSION FdoDeviceExtension; - PDEVICE_OBJECT DeviceObject = (PDEVICE_OBJECT) ServiceContext; - PEHCI_HOST_CONTROLLER hcd; - ULONG CStatus = 0; - - FdoDeviceExtension = (PFDO_DEVICE_EXTENSION) DeviceObject->DeviceExtension; - - hcd = &FdoDeviceExtension->hcd; - - /* Read device status */ - CStatus = ReadControllerStatus(hcd); - - CStatus &= (EHCI_ERROR_INT | EHCI_STS_INT | EHCI_STS_IAA | EHCI_STS_PCD | EHCI_STS_FLR | EHCI_STS_RECL); - - if ((!CStatus) || (FdoDeviceExtension->DeviceState == 0)) - { - /* This interrupt isnt for us or not ready for it. */ - return FALSE; - } - - /* Clear status */ - ClearControllerStatus(hcd, CStatus); - - if (CStatus & EHCI_STS_RECL) - { - DPRINT("Reclamation\n"); - } - - if (CStatus & EHCI_ERROR_INT) - { - DPRINT1("EHCI Status=0x%x\n", CStatus); - /* This check added in case the NT USB Driver is still loading. - It will cause this error condition at every device connect. */ - if(CStatus & EHCI_STS_PCD) - { - DPRINT1("EHCI Error: Another driver may be interfering with proper operation of this driver\n"); - DPRINT1(" Hint: Ensure that the old NT Usb Driver has been removed!\n"); - ASSERT(FALSE); - } - } - - if (CStatus & EHCI_STS_FATAL) - { - DPRINT1("EHCI: Host System Error. Possible PCI problems.\n"); - ASSERT(FALSE); - } - - if (CStatus & EHCI_STS_HALT) - { - DPRINT1("EHCI: Host Controller unexpected halt.\n"); - /* FIXME: Reset the controller */ - } - - KeInsertQueueDpc(&FdoDeviceExtension->DpcObject, FdoDeviceExtension, (PVOID)CStatus); - return TRUE; -} - -NTSTATUS -StartDevice(PDEVICE_OBJECT DeviceObject, PCM_PARTIAL_RESOURCE_LIST raw, PCM_PARTIAL_RESOURCE_LIST translated) -{ - PFDO_DEVICE_EXTENSION FdoDeviceExtension; - PCM_PARTIAL_RESOURCE_DESCRIPTOR resource; - DEVICE_DESCRIPTION DeviceDescription; - PEHCI_HOST_CONTROLLER hcd; - ULONG NumberResources; - ULONG iCount; - ULONG DeviceAddress; - ULONG PropertySize; - ULONG BusNumber; - NTSTATUS Status; - - FdoDeviceExtension = (PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension; - hcd = &FdoDeviceExtension->hcd; - - /* Sanity Checks */ - Status = IoGetDeviceProperty(FdoDeviceExtension->LowerDevice, - DevicePropertyAddress, - sizeof(ULONG), - &DeviceAddress, - &PropertySize); - - Status = IoGetDeviceProperty(FdoDeviceExtension->LowerDevice, - DevicePropertyBusNumber, - sizeof(ULONG), - &BusNumber, - &PropertySize); - - - /* Get the resources the PNP Manager gave */ - NumberResources = translated->Count; - DPRINT("NumberResources %d\n", NumberResources); - for (iCount = 0; iCount < NumberResources; iCount++) - { - DPRINT("Resource Info %d:\n", iCount); - resource = &translated->PartialDescriptors[iCount]; - switch(resource->Type) - { - case CmResourceTypePort: - { - DPRINT("Port Start: %x\n", resource->u.Port.Start); - DPRINT("Port Length %d\n", resource->u.Port.Length); - /* FIXME: Handle Ports */ - break; - } - case CmResourceTypeInterrupt: - { - DPRINT("Interrupt Vector: %x\n", resource->u.Interrupt.Vector); - FdoDeviceExtension->Vector = resource->u.Interrupt.Vector; - FdoDeviceExtension->Irql = resource->u.Interrupt.Level; - FdoDeviceExtension->Affinity = resource->u.Interrupt.Affinity; - FdoDeviceExtension->Mode = (resource->Flags == CM_RESOURCE_INTERRUPT_LATCHED) ? Latched : LevelSensitive; - FdoDeviceExtension->IrqShared = resource->ShareDisposition == CmResourceShareShared; - break; - } - case CmResourceTypeMemory: - { - PVOID ResourceBase = 0; - - DPRINT("Mem Start: %x\n", resource->u.Memory.Start); - DPRINT("Mem Length: %d\n", resource->u.Memory.Length); - - ResourceBase = MmMapIoSpace(resource->u.Memory.Start, resource->u.Memory.Length, FALSE); - DPRINT("ResourceBase %x\n", ResourceBase); - if (ResourceBase == NULL) - { - DPRINT1("MmMapIoSpace failed!!!!!!!!!\n"); - } - - GetCapabilities(&FdoDeviceExtension->hcd.ECHICaps, (ULONG)ResourceBase); - DPRINT1("hcd.ECHICaps.Length %x\n", FdoDeviceExtension->hcd.ECHICaps.Length); - FdoDeviceExtension->hcd.OpRegisters = (ULONG)((ULONG)ResourceBase + FdoDeviceExtension->hcd.ECHICaps.Length); - break; - } - case CmResourceTypeDma: - { - DPRINT("Dma Channel: %x\n", resource->u.Dma.Channel); - DPRINT("Dma Port: %d\n", resource->u.Dma.Port); - break; - } - case CmResourceTypeDevicePrivate: - { - /* Windows does this. */ - DPRINT1("CmResourceTypeDevicePrivate not handled\n"); - break; - } - default: - { - DPRINT1("PNP Manager gave resource type not handled!! Notify Developers!\n"); - break; - } - } - } - - for (iCount = 0; iCount < hcd->ECHICaps.HCSParams.PortCount; iCount++) - { - hcd->Ports[iCount].PortStatus = 0x8000; - hcd->Ports[iCount].PortChange = 0; - - if (hcd->ECHICaps.HCSParams.PortPowerControl) - hcd->Ports[iCount].PortStatus |= USB_PORT_STATUS_POWER; - } - - KeInitializeDpc(&FdoDeviceExtension->DpcObject, - EhciDefferedRoutine, - FdoDeviceExtension); - - RtlZeroMemory(&DeviceDescription, sizeof(DEVICE_DESCRIPTION)); - - DeviceDescription.Version = DEVICE_DESCRIPTION_VERSION; - DeviceDescription.Master = TRUE; - DeviceDescription.ScatterGather = TRUE; - DeviceDescription.Dma32BitAddresses = TRUE; - DeviceDescription.DmaWidth = 2; - DeviceDescription.InterfaceType = PCIBus; - DeviceDescription.MaximumLength = EHCI_MAX_SIZE_TRANSFER; - - hcd->pDmaAdapter = IoGetDmaAdapter(FdoDeviceExtension->LowerDevice, - &DeviceDescription, - &hcd->MapRegisters); - - if (hcd->pDmaAdapter == NULL) - { - DPRINT1("Ehci: IoGetDmaAdapter failed!\n"); - ASSERT(FALSE); - } - - DPRINT1("MapRegisters %x\n", hcd->MapRegisters); - - /* Allocate Common Buffer for Periodic Frame List */ - FdoDeviceExtension->PeriodicFrameList.VirtualAddr = - hcd->pDmaAdapter->DmaOperations->AllocateCommonBuffer(hcd->pDmaAdapter, - sizeof(ULONG) * 1024, - &FdoDeviceExtension->PeriodicFrameList.PhysicalAddr, - FALSE); - - if (FdoDeviceExtension->PeriodicFrameList.VirtualAddr == NULL) - { - DPRINT1("Ehci: FdoDeviceExtension->PeriodicFramList is null\n"); - return STATUS_UNSUCCESSFUL; - } - - /* Zeroize it */ - RtlZeroMemory(FdoDeviceExtension->PeriodicFrameList.VirtualAddr, sizeof(ULONG) * 1024); - - ExInitializeFastMutex(&FdoDeviceExtension->FrameListMutex); - - /* Allocate initial page for queueheads and descriptors */ - FdoDeviceExtension->hcd.CommonBufferVA[0] = - hcd->pDmaAdapter->DmaOperations->AllocateCommonBuffer(hcd->pDmaAdapter, - PAGE_SIZE, - &FdoDeviceExtension->hcd.CommonBufferPA[0], - FALSE); - - if (FdoDeviceExtension->hcd.CommonBufferVA[0] == 0) - { - DPRINT1("Ehci: Failed to allocate common buffer!\n"); - return STATUS_UNSUCCESSFUL; - } - - hcd->CommonBufferSize = PAGE_SIZE * 16; - - /* Zeroize it */ - RtlZeroMemory(FdoDeviceExtension->hcd.CommonBufferVA[0], - PAGE_SIZE); - - /* Init SpinLock for host controller device lock */ - KeInitializeSpinLock(&hcd->Lock); - - /* Reserved a Queue Head that will always be in the AsyncList Address Register. By setting it as the Head of Reclamation - the controller can know when it has reached the end of the QueueHead list */ - hcd->AsyncListQueue = CreateQueueHead(hcd); - - hcd->AsyncListQueue->HorizontalLinkPointer = hcd->AsyncListQueue->PhysicalAddr | QH_TYPE_QH; - hcd->AsyncListQueue->EndPointCharacteristics.QEDTDataToggleControl = FALSE; - hcd->AsyncListQueue->Token.Bits.InterruptOnComplete = FALSE; - hcd->AsyncListQueue->EndPointCharacteristics.HeadOfReclamation = TRUE; - hcd->AsyncListQueue->Token.Bits.Halted = TRUE; - hcd->AsyncListQueue->NextQueueHead = hcd->AsyncListQueue; - hcd->AsyncListQueue->PreviousQueueHead = hcd->AsyncListQueue; - - /* Reserve a Queue Head thats only purpose is for linking completed Queue Heads. - Completed QueueHeads are moved to this temporary. As the memory must still be valid - up until the controllers doorbell is rang to let it know info has been removed from QueueHead list */ - hcd->CompletedListQueue = CreateQueueHead(hcd); - hcd->CompletedListQueue->NextQueueHead = hcd->CompletedListQueue; - hcd->CompletedListQueue->PreviousQueueHead = hcd->CompletedListQueue; - - /* Ensure the controller is stopped */ - StopEhci(hcd); - - SetAsyncListQueueRegister(hcd, hcd->AsyncListQueue->PhysicalAddr); - - /* FIXME: Implement Periodic Frame List */ - - Status = IoConnectInterrupt(&FdoDeviceExtension->EhciInterrupt, - InterruptService, - FdoDeviceExtension->DeviceObject, - NULL, - FdoDeviceExtension->Vector, - FdoDeviceExtension->Irql, - FdoDeviceExtension->Irql, - FdoDeviceExtension->Mode, - FdoDeviceExtension->IrqShared, - FdoDeviceExtension->Affinity, - FALSE); - - StartEhci(hcd); - FdoDeviceExtension->DeviceState = DEVICESTARTED; - return STATUS_SUCCESS; -} - -NTSTATUS -FdoQueryBusRelations( - PDEVICE_OBJECT DeviceObject, - PDEVICE_RELATIONS* pDeviceRelations) -{ - PFDO_DEVICE_EXTENSION DeviceExtension; - PDEVICE_RELATIONS DeviceRelations = NULL; - PDEVICE_OBJECT Pdo; - PPDO_DEVICE_EXTENSION PdoDeviceExtension; - NTSTATUS Status; - ULONG UsbDeviceNumber = 0; - WCHAR CharDeviceName[64]; - - UNICODE_STRING DeviceName; - - DeviceExtension = (PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension; - - DPRINT1("Ehci: QueryBusRelations\n"); - - /* FIXME: Currently only support for one ehci controller */ - if (DeviceExtension->Pdo) - goto Done; - - /* Create the PDO with the next available number */ - while (TRUE) - { - /* FIXME: Use safe string */ - /* RtlStringCchPrintfW(CharDeviceName, 64, L"USBPDO-%d", UsbDeviceNumber); */ - swprintf(CharDeviceName, L"\\Device\\USBPDO-%d", UsbDeviceNumber); - RtlInitUnicodeString(&DeviceName, CharDeviceName); - DPRINT("DeviceName %wZ\n", &DeviceName); - - Status = IoCreateDevice(DeviceObject->DriverObject, - sizeof(PDO_DEVICE_EXTENSION), - &DeviceName, - FILE_DEVICE_BUS_EXTENDER, - 0, - FALSE, - &Pdo); - - if (NT_SUCCESS(Status)) - break; - - if ((Status == STATUS_OBJECT_NAME_EXISTS) || (Status == STATUS_OBJECT_NAME_COLLISION)) - { - /* Try the next name */ - UsbDeviceNumber++; - continue; - } - - /* Bail on any other error */ - if (!NT_SUCCESS(Status)) - { - DPRINT1("Ehci: Failed to create PDO %wZ, Status %x\n", &DeviceName, Status); - return Status; - } - } - - PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)Pdo->DeviceExtension; - RtlZeroMemory(PdoDeviceExtension, sizeof(PDO_DEVICE_EXTENSION)); - PdoDeviceExtension->Common.IsFdo = FALSE; - - PdoDeviceExtension->ControllerFdo = DeviceObject; - PdoDeviceExtension->DeviceObject = Pdo; - //PdoDeviceExtension->NumberOfPorts = DeviceExtension->hcd.ECHICaps.HCSParams.PortCount; - - InitializeListHead(&PdoDeviceExtension->IrpQueue); - - KeInitializeSpinLock(&PdoDeviceExtension->IrpQueueLock); - - KeInitializeEvent(&PdoDeviceExtension->QueueDrainedEvent, SynchronizationEvent, TRUE); - - ExInitializeFastMutex(&PdoDeviceExtension->ListLock); - - Pdo->Flags &= ~DO_DEVICE_INITIALIZING; - - DeviceExtension->Pdo = Pdo; -Done: - DeviceRelations = (PDEVICE_RELATIONS)ExAllocatePool(PagedPool, sizeof(DEVICE_RELATIONS)); - - if (!DeviceRelations) - { - return STATUS_INSUFFICIENT_RESOURCES; - } - - DeviceRelations->Count = 1; - DeviceRelations->Objects[0] = DeviceExtension->Pdo; - ObReferenceObject(DeviceExtension->Pdo); - - *pDeviceRelations = DeviceRelations; - return STATUS_SUCCESS; -} - -NTSTATUS NTAPI -FdoDispatchPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) -{ - NTSTATUS Status; - PIO_STACK_LOCATION Stack = NULL; - PCM_PARTIAL_RESOURCE_LIST raw; - PCM_PARTIAL_RESOURCE_LIST translated; - ULONG_PTR Information = 0; - - Stack = IoGetCurrentIrpStackLocation(Irp); - - switch(Stack->MinorFunction) - { - case IRP_MN_START_DEVICE: - { - DPRINT1("Ehci: START_DEVICE\n"); - - Irp->IoStatus.Status = STATUS_SUCCESS; - Status = ForwardAndWait(DeviceObject, Irp); - - raw = &Stack->Parameters.StartDevice.AllocatedResources->List[0].PartialResourceList; - translated = &Stack->Parameters.StartDevice.AllocatedResourcesTranslated->List[0].PartialResourceList; - Status = StartDevice(DeviceObject, raw, translated); - break; - } - case IRP_MN_QUERY_DEVICE_RELATIONS: - { - DPRINT1("Ehci: IRP_MN_QUERY_DEVICE_RELATIONS\n"); - switch(Stack->Parameters.QueryDeviceRelations.Type) - { - case BusRelations: - { - PDEVICE_RELATIONS DeviceRelations = NULL; - DPRINT1("Ehci: BusRelations\n"); - Status = FdoQueryBusRelations(DeviceObject, &DeviceRelations); - Information = (ULONG_PTR)DeviceRelations; - break; - } - default: - { - DPRINT1("Ehci: Unknown query device relations type\n"); - Status = STATUS_NOT_IMPLEMENTED; - break; - } - } - break; - } - case IRP_MN_FILTER_RESOURCE_REQUIREMENTS: - { - DPRINT1("Ehci: IRP_MN_FILTER_RESOURCE_REQUIREMENTS\n"); - return ForwardIrpAndForget(DeviceObject, Irp); - break; - } - case IRP_MN_QUERY_RESOURCE_REQUIREMENTS: - { - DPRINT1("Ehci: IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n"); - } - case IRP_MN_QUERY_INTERFACE: - { - DPRINT1("Ehci: IRP_MN_QUERY_INTERFACE\n"); - Status = STATUS_SUCCESS; - Information = 0; - Status = ForwardIrpAndForget(DeviceObject, Irp); - return Status; - break; - } - default: - { - DPRINT1("Ehci: IRP_MJ_PNP / Unhandled minor function 0x%lx\n", Stack->MinorFunction); - return ForwardIrpAndForget(DeviceObject, Irp); - } - } - - Irp->IoStatus.Information = Information; - Irp->IoStatus.Status = Status; - IoCompleteRequest(Irp, IO_NO_INCREMENT); - return Status; -} - -NTSTATUS NTAPI -AddDevice(PDRIVER_OBJECT DriverObject, PDEVICE_OBJECT Pdo) -{ - NTSTATUS Status = STATUS_UNSUCCESSFUL; - PDEVICE_OBJECT Fdo; - ULONG UsbDeviceNumber = 0; - WCHAR CharDeviceName[64]; - WCHAR CharSymLinkName[64]; - UNICODE_STRING DeviceName; - UNICODE_STRING SymLinkName; - UNICODE_STRING InterfaceSymLinkName; - ULONG BytesRead; - PCI_COMMON_CONFIG PciConfig; - - PFDO_DEVICE_EXTENSION FdoDeviceExtension; - - DPRINT1("Ehci: AddDevice\n"); - - /* Create the FDO with next available number */ - while (TRUE) - { - /* FIXME: Use safe string sprintf*/ - /* RtlStringCchPrintfW(CharDeviceName, 64, L"USBFDO-%d", UsbDeviceNumber); */ - swprintf(CharDeviceName, L"\\Device\\USBFDO-%d", UsbDeviceNumber); - RtlInitUnicodeString(&DeviceName, CharDeviceName); - DPRINT("DeviceName %wZ\n", &DeviceName); - - Status = IoCreateDevice(DriverObject, - sizeof(FDO_DEVICE_EXTENSION), - &DeviceName, - FILE_DEVICE_CONTROLLER, - 0, - FALSE, - &Fdo); - - if (NT_SUCCESS(Status)) - break; - - if ((Status == STATUS_OBJECT_NAME_EXISTS) || (Status == STATUS_OBJECT_NAME_COLLISION)) - { - /* Try the next name */ - UsbDeviceNumber++; - continue; - } - - /* Bail on any other error */ - if (!NT_SUCCESS(Status)) - { - DPRINT1("UsbEhci: Failed to create %wZ, Status %x\n", &DeviceName, Status); - return Status; - } - } - - swprintf(CharSymLinkName, L"\\Device\\HCD%d", UsbDeviceNumber); - RtlInitUnicodeString(&SymLinkName, CharSymLinkName); - Status = IoCreateSymbolicLink(&SymLinkName, &DeviceName); - - if (!NT_SUCCESS(Status)) - { - DPRINT1("Warning: Unable to create symbolic link for ehci host controller!\n"); - } - - FdoDeviceExtension = (PFDO_DEVICE_EXTENSION) Fdo->DeviceExtension; - RtlZeroMemory(FdoDeviceExtension, sizeof(PFDO_DEVICE_EXTENSION)); - - KeInitializeTimerEx(&FdoDeviceExtension->UpdateTimer, SynchronizationTimer); - - FdoDeviceExtension->Common.IsFdo = TRUE; - FdoDeviceExtension->DeviceObject = Fdo; - - FdoDeviceExtension->LowerDevice = IoAttachDeviceToDeviceStack(Fdo, Pdo); - - if (FdoDeviceExtension->LowerDevice == NULL) - { - DPRINT1("UsbEhci: Failed to attach to device stack!\n"); - IoDeleteSymbolicLink(&SymLinkName); - IoDeleteDevice(Fdo); - - return STATUS_NO_SUCH_DEVICE; - } - - Fdo->Flags |= DO_BUFFERED_IO;// | DO_POWER_PAGABLE; - - ASSERT(FdoDeviceExtension->LowerDevice == Pdo); - - /* Get the EHCI Device ID and Vendor ID */ - Status = GetBusInterface(FdoDeviceExtension->LowerDevice, &FdoDeviceExtension->BusInterface); - - if (!NT_SUCCESS(Status)) - { - DPRINT1("GetBusInterface() failed with %x\n", Status); - IoDetachDevice(FdoDeviceExtension->LowerDevice); - IoDeleteSymbolicLink(&SymLinkName); - IoDeleteDevice(Fdo); - return Status; - } - - BytesRead = (*FdoDeviceExtension->BusInterface.GetBusData)( - FdoDeviceExtension->BusInterface.Context, - PCI_WHICHSPACE_CONFIG, - &PciConfig, - 0, - PCI_COMMON_HDR_LENGTH); - - - if (BytesRead != PCI_COMMON_HDR_LENGTH) - { - DPRINT1("GetBusData failed!\n"); - IoDetachDevice(FdoDeviceExtension->LowerDevice); - IoDeleteSymbolicLink(&SymLinkName); - IoDeleteDevice(Fdo); - return STATUS_UNSUCCESSFUL; - } - - if (PciConfig.Command & PCI_ENABLE_IO_SPACE) - DPRINT("PCI_ENABLE_IO_SPACE\n"); - - if (PciConfig.Command & PCI_ENABLE_MEMORY_SPACE) - DPRINT("PCI_ENABLE_MEMORY_SPACE\n"); - - if (PciConfig.Command & PCI_ENABLE_BUS_MASTER) - DPRINT("PCI_ENABLE_BUS_MASTER\n"); - - DPRINT("BaseAddress[0] %x\n", PciConfig.u.type0.BaseAddresses[0]); - DPRINT1("Vendor %x\n", PciConfig.VendorID); - DPRINT1("Device %x\n", PciConfig.DeviceID); - - FdoDeviceExtension->VendorId = PciConfig.VendorID; - FdoDeviceExtension->DeviceId = PciConfig.DeviceID; - - FdoDeviceExtension->DeviceState = DEVICEINTIALIZED; - - Status = IoRegisterDeviceInterface(Pdo, &GUID_DEVINTERFACE_USB_HOST_CONTROLLER, NULL, &InterfaceSymLinkName); - if (!NT_SUCCESS(Status)) - { - DPRINT1("Unable to register device interface!\n"); - return Status; - } - else - { - Status = IoSetDeviceInterfaceState(&InterfaceSymLinkName, TRUE); - DPRINT1("SetInterfaceState %x\n", Status); - if (!NT_SUCCESS(Status)) - return Status; - } - Fdo->Flags &= ~DO_DEVICE_INITIALIZING; - - return STATUS_SUCCESS; -} - -NTSTATUS NTAPI -FdoDispatchInternalDeviceControl(PDEVICE_OBJECT DeviceObject, PIRP Irp) -{ - /*FIXME: This should never be called by upper drivers as they should only be dealing with the pdo. */ - DPRINT1("Upper Level Device Object shouldnt be calling this!!!!!!!!!!!!\n"); - ASSERT(FALSE); - return STATUS_UNSUCCESSFUL; -} diff --git a/reactos/drivers/usb/usbehci/hardware.c b/reactos/drivers/usb/usbehci/hardware.c deleted file mode 100644 index 8e9c6d58e2b..00000000000 --- a/reactos/drivers/usb/usbehci/hardware.c +++ /dev/null @@ -1,366 +0,0 @@ -/* - * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/usb/usbehci/hardware.c - * PURPOSE: Hardware related routines. - * PROGRAMMERS: - * Michael Martin (michael.martin@reactos.org) - */ - -#include "hardware.h" -#define NDEBUG -#include - -//FORCEINLINE -VOID -SetAsyncListQueueRegister(PEHCI_HOST_CONTROLLER hcd, ULONG PhysicalAddr) -{ - ULONG OpRegisters = hcd->OpRegisters; - WRITE_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_ASYNCLISTBASE), PhysicalAddr); -} - -//FORCEINLINE -ULONG -GetAsyncListQueueRegister(PEHCI_HOST_CONTROLLER hcd) -{ - ULONG OpRegisters = hcd->OpRegisters; - return READ_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_ASYNCLISTBASE)); -} - -//FORCEINLINE -VOID -SetPeriodicFrameListRegister(PEHCI_HOST_CONTROLLER hcd, ULONG PhysicalAddr) -{ - ULONG OpRegisters = hcd->OpRegisters; - WRITE_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_PERIODICLISTBASE), PhysicalAddr); -} - -//FORCEINLINE -ULONG -GetPeriodicFrameListRegister(PEHCI_HOST_CONTROLLER hcd) -{ - ULONG OpRegisters = hcd->OpRegisters; - return READ_REGISTER_ULONG((PULONG) (OpRegisters + EHCI_PERIODICLISTBASE)); -} - -//FORCEINLINE -ULONG -ReadControllerStatus(PEHCI_HOST_CONTROLLER hcd) -{ - ULONG OpRegisters = hcd->OpRegisters; - return READ_REGISTER_ULONG ((PULONG) (OpRegisters + EHCI_USBSTS)); -} - -//FORCEINLINE -VOID -ClearControllerStatus(PEHCI_HOST_CONTROLLER hcd, ULONG Status) -{ - ULONG OpRegisters = hcd->OpRegisters; - WRITE_REGISTER_ULONG((PULONG) (OpRegisters + EHCI_USBSTS), Status); -} - -VOID -ResetPort(PEHCI_HOST_CONTROLLER hcd, UCHAR Port) -{ - ULONG tmp; - ULONG OpRegisters = hcd->OpRegisters; - DPRINT("Reset Port %x\n", Port); - - tmp = READ_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * Port))); - if (tmp & 0x400) - { - DPRINT1("Non HighSpeed device connected. Releasing ownership.\n"); - WRITE_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * Port)), 0x2000); - } - - /* Get current port state */ - tmp = READ_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * Port))); - - /* Set reset and clear enable */ - tmp |= 0x100; - tmp &= ~0x04; - WRITE_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * Port)), tmp); - - /* USB 2.0 Spec 10.2.8.1, more than 50ms */ - KeStallExecutionProcessor(100); - - /* Clear reset */ - tmp &= ~0x100; - WRITE_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * Port)), tmp); - - KeStallExecutionProcessor(100); - - tmp = READ_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * Port))); - - if (tmp & 0x100) - { - DPRINT1("EHCI ERROR: Port Reset did not complete!\n"); - ASSERT(FALSE); - } - DPRINT("Reset complete\n"); -} - -VOID -StopEhci(PEHCI_HOST_CONTROLLER hcd) -{ - ULONG OpRegisters = hcd->OpRegisters; - PEHCI_USBCMD_CONTENT UsbCmd; - PEHCI_USBSTS_CONTEXT UsbSts; - LONG FailSafe; - LONG tmp; - - DPRINT("Stopping Ehci controller\n"); - - WRITE_REGISTER_ULONG((PULONG) (OpRegisters + EHCI_USBINTR), 0); - - tmp = READ_REGISTER_ULONG((PULONG) (OpRegisters + EHCI_USBCMD)); - UsbCmd = (PEHCI_USBCMD_CONTENT) & tmp; - UsbCmd->Run = FALSE; - WRITE_REGISTER_ULONG((PULONG) (OpRegisters + EHCI_USBCMD), tmp); - - /* Wait for the device to stop */ - for (FailSafe = 0; FailSafe < 1000; FailSafe++) - { - KeStallExecutionProcessor(10); - tmp = READ_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_USBSTS)); - UsbSts = (PEHCI_USBSTS_CONTEXT)&tmp; - - if (UsbSts->HCHalted) - { - break; - } - } - if (!UsbSts->HCHalted) - { - DPRINT1("EHCI ERROR: Controller is not responding to Stop request!\n"); - ASSERT(FALSE); - } -} - -VOID -StartEhci(PEHCI_HOST_CONTROLLER hcd) -{ - ULONG OpRegisters = hcd->OpRegisters; - PEHCI_USBCMD_CONTENT UsbCmd; - PEHCI_USBSTS_CONTEXT UsbSts; - LONG failSafe; - LONG tmp; - LONG tmp2; - - DPRINT("Starting Ehci controller\n"); - - tmp = READ_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_USBSTS)); - UsbSts = (PEHCI_USBSTS_CONTEXT)&tmp; - - if (!UsbSts->HCHalted) - { - StopEhci(hcd); - } - - tmp = READ_REGISTER_ULONG ((PULONG)(OpRegisters + EHCI_USBCMD)); - - /* Reset the device */ - UsbCmd = (PEHCI_USBCMD_CONTENT) &tmp; - UsbCmd->HCReset = TRUE; - WRITE_REGISTER_ULONG ((PULONG)(OpRegisters + EHCI_USBCMD), tmp); - - /* Wait for the device to reset */ - for (failSafe = 0; failSafe < 1000; failSafe++) - { - KeStallExecutionProcessor(10); - tmp = READ_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_USBCMD)); - UsbCmd = (PEHCI_USBCMD_CONTENT)&tmp; - - if (!UsbCmd->HCReset) - { - break; - } - DPRINT("Waiting for reset, USBCMD: %x\n", READ_REGISTER_ULONG ((PULONG)(OpRegisters + EHCI_USBCMD))); - } - - if (UsbCmd->HCReset) - { - DPRINT1("EHCI ERROR: Controller failed to reset! Will attempt to continue.\n"); - ASSERT(FALSE); - } - - UsbCmd = (PEHCI_USBCMD_CONTENT) &tmp; - - /* Disable Interrupts on the device */ - WRITE_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_USBINTR), 0); - /* Clear the Status */ - WRITE_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_USBSTS), 0x0000001f); - - WRITE_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_CTRLDSSEGMENT), 0); - - SetAsyncListQueueRegister(hcd, hcd->AsyncListQueue->PhysicalAddr | QH_TYPE_QH); - /* Set the ansync and periodic to disable */ - UsbCmd->PeriodicEnable = FALSE; - UsbCmd->AsyncEnable = TRUE; - WRITE_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_USBCMD), tmp); - - /* Set the threshold */ - UsbCmd->IntThreshold = 1; - WRITE_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_USBCMD), tmp); - - /* Turn back on interrupts */ - WRITE_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_USBINTR), - EHCI_USBINTR_ERR | EHCI_USBINTR_ASYNC | EHCI_USBINTR_HSERR - /*| EHCI_USBINTR_FLROVR*/ | EHCI_USBINTR_PC); - WRITE_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_USBINTR), - EHCI_USBINTR_INTE | EHCI_USBINTR_ERR | EHCI_USBINTR_ASYNC | EHCI_USBINTR_HSERR - /*| EHCI_USBINTR_FLROVR*/ | EHCI_USBINTR_PC); - - UsbCmd->Run = TRUE; - WRITE_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_USBCMD), tmp); - - /* Wait for the device to start */ - for (failSafe = 0; failSafe < 1000; failSafe++) - { - KeStallExecutionProcessor(10); - tmp2 = READ_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_USBSTS)); - UsbSts = (PEHCI_USBSTS_CONTEXT)&tmp2; - - if (!UsbSts->HCHalted) - { - break; - } - DPRINT("Waiting for start, USBSTS: %x\n", READ_REGISTER_ULONG ((PULONG)(OpRegisters + EHCI_USBSTS))); - } - - if (UsbSts->HCHalted) - { - DPRINT1("EHCI ERROR: Controller failed to start!!!\n"); - ASSERT(FALSE); - } - /* Set all port routing to ECHI controller */ - WRITE_REGISTER_ULONG((PULONG)(OpRegisters + EHCI_CONFIGFLAG), 1); -} - -BOOLEAN -EnumControllerPorts(PEHCI_HOST_CONTROLLER hcd) -{ - ULONG tmp, i, OpRegisters, ChildDeviceCount = 0; - BOOLEAN PortChange = FALSE; - - OpRegisters = (ULONG)hcd->OpRegisters; - /* Loop through the ports */ - for (i = 0; i < hcd->ECHICaps.HCSParams.PortCount; i++) - { - tmp = READ_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * i))); - - /* Check for port change on this port */ - if (tmp & 0x02) - { - DPRINT1("Port Change\n"); - - /* Clear status change */ - tmp = READ_REGISTER_ULONG((PULONG)((OpRegisters + EHCI_PORTSC) + (4 * i))); - tmp |= 0x02; - WRITE_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * i)), tmp); - - PortChange = TRUE; - /* Connect or Disconnect? */ - if (tmp & 0x01) - { - DPRINT1("Device connected on port %d\n", i); - - /* Check if a companion host controller exists */ - if (hcd->ECHICaps.HCSParams.CHCCount) - { - tmp = READ_REGISTER_ULONG((PULONG)((OpRegisters + EHCI_PORTSC) + (4 * i))); - - /* Port should be in disabled state, as per USB 2.0 specs */ - if (tmp & 0x04) - { - DPRINT1("Warning: The port the device has just connected to is not disabled!\n"); - } - - /* Is this non high speed device */ - if (tmp & 0x400) - { - DPRINT1("Non HighSpeed device connected. Releasing ownership.\n"); - /* Release ownership to companion host controller */ - WRITE_REGISTER_ULONG((PULONG) ((OpRegisters + EHCI_PORTSC) + (4 * i)), 0x2000); - continue; - } - } - - KeStallExecutionProcessor(30); - - /* As per USB 2.0 Specs, 9.1.2. Reset the port and clear the status change */ - //tmp |= 0x100 | 0x02; - /* Sanity, Disable port */ - //tmp &= ~0x04; - - //WRITE_REGISTER_ULONG((PULONG) ((Base + EHCI_PORTSC) + (4 * i)), tmp); - - //KeStallExecutionProcessor(20); - - tmp = READ_REGISTER_ULONG((PULONG)((OpRegisters + EHCI_PORTSC) + (4 * i))); - - ChildDeviceCount++; - hcd->Ports[i].PortStatus &= ~0x8000; - DPRINT1("Removed 0x8000\n"); - ASSERT(FALSE); - hcd->Ports[i].PortStatus |= USB_PORT_STATUS_HIGH_SPEED; - hcd->Ports[i].PortStatus |= USB_PORT_STATUS_CONNECT; - hcd->Ports[i].PortChange |= USB_PORT_STATUS_CONNECT; - } - else - { - DPRINT1("Device disconnected on port %d\n", i); - ChildDeviceCount--; - } - } - } - return PortChange; -} - -VOID -GetCapabilities(PEHCI_CAPS PCap, ULONG CapRegister) -{ - PEHCI_HCS_CONTENT PHCS; - LONG i; - - if (!PCap) - return; - - PCap->Length = READ_REGISTER_UCHAR((PUCHAR)CapRegister); - PCap->Reserved = READ_REGISTER_UCHAR((PUCHAR)(CapRegister + 1)); - PCap->HCIVersion = READ_REGISTER_USHORT((PUSHORT)(CapRegister + 2)); - PCap->HCSParamsLong = READ_REGISTER_ULONG((PULONG)(CapRegister + 4)); - PCap->HCCParams = READ_REGISTER_ULONG((PULONG)(CapRegister + 8)); - - DPRINT("Length %d\n", PCap->Length); - DPRINT("Reserved %d\n", PCap->Reserved); - DPRINT("HCIVersion %x\n", PCap->HCIVersion); - DPRINT("HCSParams %x\n", PCap->HCSParamsLong); - DPRINT("HCCParams %x\n", PCap->HCCParams); - - if (PCap->HCCParams & 0x02) - DPRINT1("Frame list size is configurable\n"); - - if (PCap->HCCParams & 0x01) - DPRINT1("64bit address mode not supported!\n"); - - DPRINT1("Number of Ports: %d\n", PCap->HCSParams.PortCount); - - if (PCap->HCSParams.PortPowerControl) - DPRINT1("Port Power Control is enabled\n"); - - if (!PCap->HCSParams.CHCCount) - { - DPRINT1("Number of Companion Host controllers %x\n", PCap->HCSParams.CHCCount); - DPRINT1("Number of Ports Per CHC: %d\n", PCap->HCSParams.PortPerCHC); - } - - PHCS = (PEHCI_HCS_CONTENT)&PCap->HCSParams; - if (PHCS->PortRouteRules) - { - for (i = 0; i < PCap->HCSParams.PortCount; i++) - { - PCap->PortRoute[i] = READ_REGISTER_UCHAR((PUCHAR) (CapRegister + 12 + i)); - } - } -} diff --git a/reactos/drivers/usb/usbehci/hwiface.c b/reactos/drivers/usb/usbehci/hwiface.c deleted file mode 100644 index aae5157f116..00000000000 --- a/reactos/drivers/usb/usbehci/hwiface.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/usb/usbehci/hwiface.c - * PURPOSE: EHCI Interface routines: Queue Heads and Queue Element - Transfer Descriptors. - * TODO: Periodic Frame List, Isochronous Transaction Descriptors - and Split-transaction ITD. - * PROGRAMMERS: - * Michael Martin (michael.martin@reactos.org) - */ - -#include "hwiface.h" -#include "physmem.h" -#define NDEBUG -#include - -/* Queue Element Transfer Descriptors */ - -PQUEUE_TRANSFER_DESCRIPTOR -CreateDescriptor(PEHCI_HOST_CONTROLLER hcd, UCHAR PIDCode, ULONG TotalBytesToTransfer) -{ - PQUEUE_TRANSFER_DESCRIPTOR Descriptor; - ULONG PhysicalAddress; - UCHAR i; - KIRQL OldIrql; - - KeAcquireSpinLock(&hcd->Lock, &OldIrql); - - Descriptor = (PQUEUE_TRANSFER_DESCRIPTOR)AllocateMemory(hcd, sizeof(QUEUE_TRANSFER_DESCRIPTOR), &PhysicalAddress); - RtlZeroMemory(Descriptor, sizeof(QUEUE_TRANSFER_DESCRIPTOR)); - Descriptor->NextPointer = TERMINATE_POINTER; - Descriptor->AlternateNextPointer = TERMINATE_POINTER; - Descriptor->Token.Bits.DataToggle = TRUE; - Descriptor->Token.Bits.ErrorCounter = 0x03; - Descriptor->Token.Bits.Active = TRUE; - Descriptor->Token.Bits.PIDCode = PIDCode; - Descriptor->Token.Bits.TotalBytesToTransfer = TotalBytesToTransfer; - Descriptor->PhysicalAddr = PhysicalAddress; - for (i=0;i<5;i++) - Descriptor->BufferPointer[i] = 0; - - KeReleaseSpinLock(&hcd->Lock, OldIrql); - - return Descriptor; -} - -VOID -FreeDescriptor(PEHCI_HOST_CONTROLLER hcd, PQUEUE_TRANSFER_DESCRIPTOR Descriptor) -{ - ReleaseMemory(hcd, (ULONG)Descriptor); -} - -/* Queue Head */ - -VOID -DumpQueueHeadList(PEHCI_HOST_CONTROLLER hcd) -{ - KIRQL OldIrql; - - KeAcquireSpinLock(&hcd->Lock, &OldIrql); - - PQUEUE_HEAD QueueHead = (PQUEUE_HEAD)hcd->CommonBufferVA; - PQUEUE_HEAD FirstQueueHead = QueueHead; - DPRINT1("Dumping QueueHead List!!!!!!!!!!!!!\n"); - while (1) - { - DPRINT1("QueueHead Address %x\n", QueueHead); - DPRINT1("QueueHead->PreviousQueueHead = %x\n", QueueHead->PreviousQueueHead); - DPRINT1("QueueHead->NextQueueHead = %x\n", QueueHead->NextQueueHead); - DPRINT1(" ---> PhysicalAddress %x\n", (ULONG)MmGetPhysicalAddress(QueueHead).LowPart); - DPRINT1("QueueHead->HorizontalLinkPointer %x\n", QueueHead->HorizontalLinkPointer); - QueueHead = QueueHead->NextQueueHead; - DPRINT1("Next QueueHead %x\n", QueueHead); - if (QueueHead == FirstQueueHead) break; - } - DPRINT1("-----------------------------------\n"); - KeReleaseSpinLock(&hcd->Lock, OldIrql); -} - -PQUEUE_HEAD -CreateQueueHead(PEHCI_HOST_CONTROLLER hcd) -{ - PQUEUE_HEAD CurrentQH; - ULONG PhysicalAddress , i; - KIRQL OldIrql; - - KeAcquireSpinLock(&hcd->Lock, &OldIrql); - CurrentQH = (PQUEUE_HEAD)AllocateMemory(hcd, sizeof(QUEUE_HEAD), &PhysicalAddress); - RtlZeroMemory(CurrentQH, sizeof(QUEUE_HEAD)); - - ASSERT(CurrentQH); - CurrentQH->PhysicalAddr = PhysicalAddress; - CurrentQH->HorizontalLinkPointer = TERMINATE_POINTER; - CurrentQH->AlternateNextPointer = TERMINATE_POINTER; - CurrentQH->NextPointer = TERMINATE_POINTER; - - /* 1 for non high speed, 0 for high speed device */ - CurrentQH->EndPointCharacteristics.ControlEndPointFlag = 0; - CurrentQH->EndPointCharacteristics.HeadOfReclamation = FALSE; - CurrentQH->EndPointCharacteristics.MaximumPacketLength = 64; - - /* Set NakCountReload to max value possible */ - CurrentQH->EndPointCharacteristics.NakCountReload = 0xF; - - /* Get the Initial Data Toggle from the QEDT */ - CurrentQH->EndPointCharacteristics.QEDTDataToggleControl = FALSE; - - /* High Speed Device */ - CurrentQH->EndPointCharacteristics.EndPointSpeed = QH_ENDPOINT_HIGHSPEED; - - CurrentQH->EndPointCapabilities.NumberOfTransactionPerFrame = 0x03; - - CurrentQH->Token.DWord = 0; - CurrentQH->NextQueueHead = NULL; - CurrentQH->PreviousQueueHead = NULL; - for (i=0; i<5; i++) - CurrentQH->BufferPointer[i] = 0; - - CurrentQH->Token.Bits.InterruptOnComplete = FALSE; - - KeReleaseSpinLock(&hcd->Lock, OldIrql); - return CurrentQH; -} - -VOID -LinkQueueHead(PEHCI_HOST_CONTROLLER hcd, PQUEUE_HEAD QueueHead) -{ - KIRQL OldIrql; - PQUEUE_HEAD CurrentHead = (PQUEUE_HEAD)hcd->AsyncListQueue; - PQUEUE_HEAD PreviousHead; - - KeAcquireSpinLock(&hcd->Lock, &OldIrql); - PreviousHead = CurrentHead->PreviousQueueHead; - QueueHead->NextQueueHead = CurrentHead; - QueueHead->PreviousQueueHead = PreviousHead; - PreviousHead->NextQueueHead = QueueHead; - CurrentHead->PreviousQueueHead = QueueHead; - - QueueHead->HorizontalLinkPointer = (CurrentHead->HorizontalLinkPointer | QH_TYPE_QH) & ~TERMINATE_POINTER; - PreviousHead->HorizontalLinkPointer = QueueHead->PhysicalAddr| QH_TYPE_QH; - - KeReleaseSpinLock(&hcd->Lock, OldIrql); -} - -VOID -UnlinkQueueHead(PEHCI_HOST_CONTROLLER hcd, PQUEUE_HEAD QueueHead) -{ - KIRQL OldIrql; - PQUEUE_HEAD PreviousHead; - PQUEUE_HEAD NextHead; - KeAcquireSpinLock(&hcd->Lock, &OldIrql); - - PreviousHead = QueueHead->PreviousQueueHead; - NextHead = QueueHead->NextQueueHead; - - PreviousHead->NextQueueHead = NextHead; - NextHead->PreviousQueueHead = PreviousHead; - - PreviousHead->HorizontalLinkPointer = NextHead->HorizontalLinkPointer; - KeReleaseSpinLock(&hcd->Lock, OldIrql); -} - -VOID -LinkQueueHeadToCompletedList(PEHCI_HOST_CONTROLLER hcd, PQUEUE_HEAD QueueHead) -{ - KIRQL OldIrql; - PQUEUE_HEAD CurrentHead = (PQUEUE_HEAD)hcd->CompletedListQueue; - PQUEUE_HEAD PreviousHead; - - KeAcquireSpinLock(&hcd->Lock, &OldIrql); - - PreviousHead = CurrentHead->PreviousQueueHead; - QueueHead->NextQueueHead = CurrentHead; - QueueHead->PreviousQueueHead = PreviousHead; - PreviousHead->NextQueueHead = QueueHead; - CurrentHead->PreviousQueueHead = QueueHead; - - KeReleaseSpinLock(&hcd->Lock, OldIrql); - -} - -VOID -DeleteQueueHead(PEHCI_HOST_CONTROLLER hcd, PQUEUE_HEAD QueueHead) -{ - ReleaseMemory(hcd, (ULONG)QueueHead); -} - -VOID -CleanupAsyncList(PEHCI_HOST_CONTROLLER hcd) -{ - PQUEUE_TRANSFER_DESCRIPTOR Descriptor; - PQUEUE_HEAD QueueHead; - KIRQL OldIrql; - - KeAcquireSpinLock(&hcd->Lock, &OldIrql); - - QueueHead = hcd->CompletedListQueue; - QueueHead = QueueHead->NextQueueHead; - - while (QueueHead != hcd->CompletedListQueue) - { - Descriptor = QueueHead->FirstTransferDescriptor; - while (Descriptor) - { - if (Descriptor->Token.Bits.PIDCode == PID_CODE_SETUP_TOKEN) - ReleaseMemory(hcd, Descriptor->BufferPointerVA[0]); - FreeDescriptor(hcd, Descriptor); - Descriptor = Descriptor->NextDescriptor; - } - - if (QueueHead->FreeMdl) - { - DPRINT("Freeing Mdl %x, StartVA %x\n", QueueHead->Mdl, QueueHead->Mdl->StartVa); - IoFreeMdl(QueueHead->Mdl); - } - - QueueHead = QueueHead->NextQueueHead; - } - - hcd->CompletedListQueue->NextQueueHead = hcd->CompletedListQueue; - hcd->CompletedListQueue->PreviousQueueHead = hcd->CompletedListQueue; - - KeReleaseSpinLock(&hcd->Lock, OldIrql); -} - diff --git a/reactos/drivers/usb/usbehci/hwiface.h b/reactos/drivers/usb/usbehci/hwiface.h deleted file mode 100644 index aa961e6f80e..00000000000 --- a/reactos/drivers/usb/usbehci/hwiface.h +++ /dev/null @@ -1,29 +0,0 @@ -#include "hardware.h" -#include - -PQUEUE_TRANSFER_DESCRIPTOR -CreateDescriptor(PEHCI_HOST_CONTROLLER hcd, UCHAR PIDCode, ULONG TotalBytesToTransfer); - -VOID -FreeDescriptor(PEHCI_HOST_CONTROLLER hcd, PQUEUE_TRANSFER_DESCRIPTOR Descriptor); - -VOID -DumpQueueHeadList(PEHCI_HOST_CONTROLLER hcd); - -PQUEUE_HEAD -CreateQueueHead(PEHCI_HOST_CONTROLLER hcd); - -VOID -LinkQueueHead(PEHCI_HOST_CONTROLLER hcd, PQUEUE_HEAD QueueHead); - -VOID -UnlinkQueueHead(PEHCI_HOST_CONTROLLER hcd, PQUEUE_HEAD QueueHead); - -VOID -DeleteQueueHead(PEHCI_HOST_CONTROLLER hcd, PQUEUE_HEAD QueueHead); - -VOID -LinkQueueHeadToCompletedList(PEHCI_HOST_CONTROLLER hcd, PQUEUE_HEAD QueueHead); - -VOID -CleanupAsyncList(PEHCI_HOST_CONTROLLER hcd); diff --git a/reactos/drivers/usb/usbehci/irp.c b/reactos/drivers/usb/usbehci/irp.c deleted file mode 100644 index 605041fa502..00000000000 --- a/reactos/drivers/usb/usbehci/irp.c +++ /dev/null @@ -1,767 +0,0 @@ -/* - * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/usb/usbehci/irp.c - * PURPOSE: IRP Handling. - * PROGRAMMERS: - * Michael Martin (michael.martin@reactos.org) - */ - -#include "usbehci.h" -#include "hwiface.h" -#include "physmem.h" -#include "transfer.h" - -VOID NTAPI -WorkerThread(IN PVOID Context) -{ - PWORKITEMDATA WorkItemData = (PWORKITEMDATA)Context; - - CompletePendingURBRequest((PPDO_DEVICE_EXTENSION)WorkItemData->Context); - - ExFreePool(WorkItemData); -} - -VOID -RemoveUrbRequest(PPDO_DEVICE_EXTENSION DeviceExtension, PIRP Irp) -{ - KIRQL OldIrql; - KeAcquireSpinLock(&DeviceExtension->IrpQueueLock, &OldIrql); - RemoveEntryList(&Irp->Tail.Overlay.ListEntry); - KeReleaseSpinLock(&DeviceExtension->IrpQueueLock, OldIrql); -} - -VOID -RequestURBCancel (PPDO_DEVICE_EXTENSION PdoDeviceExtension, PIRP Irp) -{ - KIRQL OldIrql = Irp->CancelIrql; - IoReleaseCancelSpinLock(DISPATCH_LEVEL); - DPRINT1("IRP CANCELLED\n"); - ASSERT(FALSE); - KeAcquireSpinLockAtDpcLevel(&PdoDeviceExtension->IrpQueueLock); - RemoveEntryList(&Irp->Tail.Overlay.ListEntry); - - KeReleaseSpinLock(&PdoDeviceExtension->IrpQueueLock, OldIrql); - - Irp->IoStatus.Status = STATUS_CANCELLED; - IoCompleteRequest(Irp, IO_NO_INCREMENT); -} - -VOID -QueueURBRequest(PPDO_DEVICE_EXTENSION DeviceExtension, PIRP Irp) -{ - KIRQL OldIrql; - - KeAcquireSpinLock(&DeviceExtension->IrpQueueLock, &OldIrql); - - if ((Irp->Cancel) && (IoSetCancelRoutine(Irp, RequestURBCancel))) - { - KeReleaseSpinLock(&DeviceExtension->IrpQueueLock, OldIrql); - Irp->IoStatus.Status = STATUS_CANCELLED; - IoCompleteRequest(Irp, IO_NO_INCREMENT); - } - else - { - InsertTailList(&DeviceExtension->IrpQueue, &Irp->Tail.Overlay.ListEntry); - KeReleaseSpinLock(&DeviceExtension->IrpQueueLock, OldIrql); - } -} - -NTSTATUS HandleUrbRequest(PPDO_DEVICE_EXTENSION PdoDeviceExtension, PIRP Irp) -{ - NTSTATUS Status = STATUS_UNSUCCESSFUL; - USB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup; - ULONG_PTR Information = 0; - PIO_STACK_LOCATION Stack; - PUSB_DEVICE UsbDevice = NULL; - PEHCI_HOST_CONTROLLER hcd; - URB *Urb; - PFDO_DEVICE_EXTENSION FdoDeviceExtension; - FdoDeviceExtension = (PFDO_DEVICE_EXTENSION) PdoDeviceExtension->ControllerFdo->DeviceExtension; - - hcd = &FdoDeviceExtension->hcd; - - Stack = IoGetCurrentIrpStackLocation(Irp); - ASSERT(Stack); - - Urb = (PURB) Stack->Parameters.Others.Argument1; - ASSERT(Urb); - - Information = 0; - Status = STATUS_SUCCESS; - - DPRINT("TransferBuffer %x\n", Urb->UrbControlDescriptorRequest.TransferBuffer); - DPRINT("TransferBufferLength %x\n", Urb->UrbControlDescriptorRequest.TransferBufferLength); - DPRINT("UsbdDeviceHandle = %x\n", Urb->UrbHeader.UsbdDeviceHandle); - - UsbDevice = Urb->UrbHeader.UsbdDeviceHandle; - - /* UsbdDeviceHandle of 0 is root hub */ - if (UsbDevice == NULL) - UsbDevice = PdoDeviceExtension->UsbDevices[0]; - - /* Assume URB success */ - Urb->UrbHeader.Status = USBD_STATUS_SUCCESS; - /* Set the DeviceHandle to the Internal Device */ - Urb->UrbHeader.UsbdDeviceHandle = UsbDevice; - - switch (Urb->UrbHeader.Function) - { - case URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER: - { - PUSB_ENDPOINT_DESCRIPTOR EndPointDesc; - int i; - - for (i = 0; i < UsbDevice->ActiveInterface->InterfaceDescriptor.bNumEndpoints; i++) - { - EndPointDesc = (PUSB_ENDPOINT_DESCRIPTOR)&UsbDevice->ActiveInterface->EndPoints[i]->EndPointDescriptor; - DPRINT("EndPoint %d Handle %x\n", i, &UsbDevice->ActiveInterface->EndPoints[i]->EndPointDescriptor); - DPRINT("bmAttributes %x\n", EndPointDesc->bmAttributes); - DPRINT("EndPoint is transfer type %x\n", EndPointDesc->bmAttributes & 0x0F); - } - DPRINT("UsbDevice %x, Handle %x\n", UsbDevice, Urb->UrbBulkOrInterruptTransfer.PipeHandle); - if (&UsbDevice->ActiveInterface->EndPoints[0]->EndPointDescriptor != Urb->UrbBulkOrInterruptTransfer.PipeHandle) - { - DPRINT("HubDevice %x, UsbDevice %x\n", PdoDeviceExtension->UsbDevices[0], UsbDevice); - if (Urb->UrbBulkOrInterruptTransfer.TransferFlags & USBD_TRANSFER_DIRECTION_IN) - DPRINT1("USBD_TRANSFER_DIRECTION_IN\n"); - if (Urb->UrbBulkOrInterruptTransfer.TransferFlags & USBD_TRANSFER_DIRECTION_OUT) - DPRINT1("USBD_TRANSFER_DIRECTION_OUT\n"); - if (Urb->UrbBulkOrInterruptTransfer.TransferFlags & USBD_SHORT_TRANSFER_OK) - DPRINT1("USBD_SHORT_TRANSFER_OK\n"); - EndPointDesc = (PUSB_ENDPOINT_DESCRIPTOR)Urb->UrbBulkOrInterruptTransfer.PipeHandle; - DPRINT("EndPoint is transfer type %x\n", EndPointDesc->bmAttributes & 0x0F); - DPRINT("Endpoint Address %x\n", EndPointDesc->bEndpointAddress & 0x0F); - if ((EndPointDesc->bmAttributes & 0x0F) == USB_ENDPOINT_TYPE_BULK) - { - IoMarkIrpPending(Irp); - Status = STATUS_PENDING; - - ExecuteTransfer(FdoDeviceExtension->DeviceObject, - UsbDevice, - Urb->UrbBulkOrInterruptTransfer.PipeHandle, - NULL, - Urb->UrbBulkOrInterruptTransfer.TransferFlags, - Urb->UrbBulkOrInterruptTransfer.TransferBuffer ? - Urb->UrbBulkOrInterruptTransfer.TransferBuffer : - (PVOID)Urb->UrbBulkOrInterruptTransfer.TransferBufferMDL, - Urb->UrbBulkOrInterruptTransfer.TransferBuffer ? - Urb->UrbBulkOrInterruptTransfer.TransferBufferLength : 0, - Irp); - } - else - { - DPRINT1("Transfer Type not implemented yet!\n"); - /* FAKE IT */ - Status = STATUS_SUCCESS; - } - - break; - } - if (!Urb->UrbBulkOrInterruptTransfer.TransferBuffer) - { - DPRINT1("TransferBuffer is NULL!\n"); - ASSERT(FALSE); - break; - } - - RtlZeroMemory(Urb->UrbBulkOrInterruptTransfer.TransferBuffer, Urb->UrbBulkOrInterruptTransfer.TransferBufferLength); - - if (UsbDevice == PdoDeviceExtension->UsbDevices[0]) - { - if (Urb->UrbBulkOrInterruptTransfer.TransferFlags & (USBD_TRANSFER_DIRECTION_IN | USBD_SHORT_TRANSFER_OK)) - { - LONG i; - for (i = 0; i < hcd->ECHICaps.HCSParams.PortCount; i++) - { - if (hcd->Ports[i].PortChange) - { - DPRINT1("Inform hub driver that port %d has changed\n", i+1); - ((PUCHAR)Urb->UrbBulkOrInterruptTransfer.TransferBuffer)[0] = 1 << ((i + 1) & 7); - } - } - } - else - { - Urb->UrbHeader.Status = USBD_STATUS_INVALID_PARAMETER; - Status = STATUS_UNSUCCESSFUL; - DPRINT1("Invalid transfer flags for SCE\n"); - } - } - else - DPRINT1("Interrupt Transfer not for hub\n"); - break; - } - case URB_FUNCTION_GET_STATUS_FROM_DEVICE: - { - DPRINT1("URB_FUNCTION_GET_STATUS_FROM_DEVICE\n"); - /* If for the hub device */ - if ((Urb->UrbControlGetStatusRequest.Index == 0) && (UsbDevice == PdoDeviceExtension->UsbDevices[0])) - { - ASSERT(Urb->UrbBulkOrInterruptTransfer.TransferBuffer != NULL); - *(PUSHORT)Urb->UrbControlGetStatusRequest.TransferBuffer = USB_PORT_STATUS_CONNECT /*| USB_PORT_STATUS_ENABLE*/; - } - else - { - DPRINT1("UsbDeviceHandle %x, Index %x not implemented yet\n", UsbDevice, Urb->UrbControlGetStatusRequest.Index); - Urb->UrbHeader.Status = USBD_STATUS_INVALID_URB_FUNCTION; - Status = STATUS_UNSUCCESSFUL; - } - break; - } - case URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE: - { - USB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup; - - DPRINT1("URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE\n"); - switch(Urb->UrbControlDescriptorRequest.DescriptorType) - { - case USB_DEVICE_DESCRIPTOR_TYPE: - { - PUCHAR BufPtr; - DPRINT1("Device Descr Type\n"); - - if (Urb->UrbControlDescriptorRequest.TransferBufferLength >= sizeof(USB_DEVICE_DESCRIPTOR)) - { - Urb->UrbControlDescriptorRequest.TransferBufferLength = sizeof(USB_DEVICE_DESCRIPTOR); - } - if (UsbDevice == PdoDeviceExtension->UsbDevices[0]) - { - BufPtr = (PUCHAR)Urb->UrbControlDescriptorRequest.TransferBuffer; - - /* Copy the Device Descriptor */ - RtlCopyMemory(BufPtr, &UsbDevice->DeviceDescriptor, sizeof(USB_DEVICE_DESCRIPTOR)); - DumpDeviceDescriptor((PUSB_DEVICE_DESCRIPTOR)Urb->UrbControlDescriptorRequest.TransferBuffer); - break; - } - - ASSERT(Urb->UrbControlDescriptorRequest.TransferBuffer != NULL); - - BuildSetupPacketFromURB(&FdoDeviceExtension->hcd, Urb, &CtrlSetup); - IoMarkIrpPending(Irp); - Status = STATUS_PENDING; - ExecuteTransfer(FdoDeviceExtension->DeviceObject, - UsbDevice, - 0, - &CtrlSetup, - 0, - Urb->UrbControlDescriptorRequest.TransferBuffer ? - Urb->UrbControlDescriptorRequest.TransferBuffer : - (PVOID)Urb->UrbControlDescriptorRequest.TransferBufferMDL, - Urb->UrbControlDescriptorRequest.TransferBuffer ? - Urb->UrbControlDescriptorRequest.TransferBufferLength : 0, - Irp); - break; - } - case USB_CONFIGURATION_DESCRIPTOR_TYPE: - { - PUCHAR BufPtr; - LONG i, j; - DPRINT1("Config Descr Type\n"); - if (UsbDevice == PdoDeviceExtension->UsbDevices[0]) - { - DPRINT1("ROOTHUB!\n"); - } - if (Urb->UrbControlDescriptorRequest.TransferBufferLength >= UsbDevice->ActiveConfig->ConfigurationDescriptor.wTotalLength) - { - Urb->UrbControlDescriptorRequest.TransferBufferLength = UsbDevice->ActiveConfig->ConfigurationDescriptor.wTotalLength; - } - else - { - DPRINT1("TransferBufferLenth %x is too small!!!\n", Urb->UrbControlDescriptorRequest.TransferBufferLength); - if (Urb->UrbControlDescriptorRequest.TransferBufferLength < sizeof(USB_CONFIGURATION_DESCRIPTOR)) - { - DPRINT1("Configuration Descriptor cannot fit into given buffer!\n"); - break; - } - } - - ASSERT(Urb->UrbControlDescriptorRequest.TransferBuffer); - BufPtr = (PUCHAR)Urb->UrbControlDescriptorRequest.TransferBuffer; - - DPRINT1("Length %x\n", Urb->UrbControlDescriptorRequest.TransferBufferLength); - - /* Copy the Configuration Descriptor */ - RtlCopyMemory(BufPtr, &UsbDevice->ActiveConfig->ConfigurationDescriptor, sizeof(USB_CONFIGURATION_DESCRIPTOR)); - - /* If there is no room for all the configs then bail */ - if (!(Urb->UrbControlDescriptorRequest.TransferBufferLength > sizeof(USB_CONFIGURATION_DESCRIPTOR))) - { - DPRINT("All Descriptors cannot fit into given buffer! Only USB_CONFIGURATION_DESCRIPTOR given\n"); - break; - } - - BufPtr += sizeof(USB_CONFIGURATION_DESCRIPTOR); - for (i = 0; i < UsbDevice->ActiveConfig->ConfigurationDescriptor.bNumInterfaces; i++) - { - /* Copy the Interface Descriptor */ - RtlCopyMemory(BufPtr, - &UsbDevice->ActiveConfig->Interfaces[i]->InterfaceDescriptor, - sizeof(USB_INTERFACE_DESCRIPTOR)); - BufPtr += sizeof(USB_INTERFACE_DESCRIPTOR); - for (j = 0; j < UsbDevice->ActiveConfig->Interfaces[i]->InterfaceDescriptor.bNumEndpoints; j++) - { - /* Copy the EndPoint Descriptor */ - RtlCopyMemory(BufPtr, - &UsbDevice->ActiveConfig->Interfaces[i]->EndPoints[j]->EndPointDescriptor, - sizeof(USB_ENDPOINT_DESCRIPTOR)); - BufPtr += sizeof(USB_ENDPOINT_DESCRIPTOR); - } - } - DumpFullConfigurationDescriptor((PUSB_CONFIGURATION_DESCRIPTOR)Urb->UrbControlDescriptorRequest.TransferBuffer); - break; - } - case USB_STRING_DESCRIPTOR_TYPE: - { - DPRINT1("StringDescriptorType\n"); - DPRINT1("Urb->UrbControlDescriptorRequest.Index %x\n", Urb->UrbControlDescriptorRequest.Index); - DPRINT1("Urb->UrbControlDescriptorRequest.LanguageId %x\n", Urb->UrbControlDescriptorRequest.LanguageId); - - if (Urb->UrbControlDescriptorRequest.Index == 0) - DPRINT1("Requesting LANGID's\n"); - - BuildSetupPacketFromURB(&FdoDeviceExtension->hcd, Urb, &CtrlSetup); - IoMarkIrpPending(Irp); - Status = STATUS_PENDING; - ExecuteTransfer(FdoDeviceExtension->DeviceObject, - UsbDevice, - 0, - &CtrlSetup, - 0, - Urb->UrbControlDescriptorRequest.TransferBuffer ? - Urb->UrbControlDescriptorRequest.TransferBuffer : - (PVOID)Urb->UrbControlDescriptorRequest.TransferBufferMDL, - Urb->UrbControlDescriptorRequest.TransferBuffer ? - Urb->UrbControlDescriptorRequest.TransferBufferLength : 0, - Irp); - break; - } - default: - { - DPRINT1("Descriptor Type %x not supported!\n", Urb->UrbControlDescriptorRequest.DescriptorType); - } - } - break; - } - case URB_FUNCTION_SELECT_CONFIGURATION: - { - PUSBD_INTERFACE_INFORMATION InterfaceInfo; - LONG iCount, pCount; - - DPRINT("Selecting Configuration\n"); - DPRINT("ConfigurationHandle %x\n",Urb->UrbSelectConfiguration.ConfigurationHandle); - - if (Urb->UrbSelectConfiguration.ConfigurationDescriptor) - { - Urb->UrbSelectConfiguration.ConfigurationHandle = &UsbDevice->ActiveConfig->ConfigurationDescriptor; - DPRINT("ConfigHandle %x\n", Urb->UrbSelectConfiguration.ConfigurationHandle); - InterfaceInfo = &Urb->UrbSelectConfiguration.Interface; - - DPRINT("Length %x\n", InterfaceInfo->Length); - DPRINT("NumberOfPipes %x\n", InterfaceInfo->NumberOfPipes); - - for (iCount = 0; iCount < Urb->UrbSelectConfiguration.ConfigurationDescriptor->bNumInterfaces; iCount++) - { - InterfaceInfo->InterfaceHandle = (PVOID)&UsbDevice->ActiveInterface->InterfaceDescriptor; - InterfaceInfo->Class = UsbDevice->ActiveInterface->InterfaceDescriptor.bInterfaceClass; - InterfaceInfo->SubClass = UsbDevice->ActiveInterface->InterfaceDescriptor.bInterfaceSubClass; - InterfaceInfo->Protocol = UsbDevice->ActiveInterface->InterfaceDescriptor.bInterfaceProtocol; - InterfaceInfo->Reserved = 0; - - for (pCount = 0; pCount < InterfaceInfo->NumberOfPipes; pCount++) - { - InterfaceInfo->Pipes[pCount].MaximumPacketSize = UsbDevice->ActiveInterface->EndPoints[pCount]->EndPointDescriptor.wMaxPacketSize; - InterfaceInfo->Pipes[pCount].EndpointAddress = UsbDevice->ActiveInterface->EndPoints[pCount]->EndPointDescriptor.bEndpointAddress; - InterfaceInfo->Pipes[pCount].Interval = UsbDevice->ActiveInterface->EndPoints[pCount]->EndPointDescriptor.bInterval; - InterfaceInfo->Pipes[pCount].PipeType = UsbDevice->ActiveInterface->EndPoints[pCount]->EndPointDescriptor.bmAttributes; - InterfaceInfo->Pipes[pCount].PipeHandle = (PVOID)&UsbDevice->ActiveInterface->EndPoints[pCount]->EndPointDescriptor; - if (InterfaceInfo->Pipes[pCount].MaximumTransferSize == 0) - InterfaceInfo->Pipes[pCount].MaximumTransferSize = 4096; - /* InterfaceInfo->Pipes[j].PipeFlags = 0; */ - } - InterfaceInfo = (PUSBD_INTERFACE_INFORMATION)((PUCHAR)InterfaceInfo + InterfaceInfo->Length); - if (InterfaceInfo->Length == 0) break; - } - - if (UsbDevice != PdoDeviceExtension->UsbDevices[0]) - { - DPRINT("Setting Configuration!\n"); - BuildSetupPacketFromURB(&FdoDeviceExtension->hcd, Urb, &CtrlSetup); - IoMarkIrpPending(Irp); - Status = STATUS_PENDING; - DPRINT1("Input Buffer %x, MDL %x\n", Urb->UrbBulkOrInterruptTransfer.TransferBuffer, (PVOID)Urb->UrbBulkOrInterruptTransfer.TransferBufferMDL); - - ExecuteTransfer(FdoDeviceExtension->DeviceObject, - UsbDevice, - 0, - &CtrlSetup, - 0, - NULL, - 0, - Irp); - break; - } - else - { - DPRINT1("Hub only has one configuration.\n"); - } - } - else - { - /* FIXME: Set device to unconfigured state */ - DPRINT1("Setting device to unconfigured state not implemented!\n"); - } - break; - } - case URB_FUNCTION_SELECT_INTERFACE: - { - PUSBD_INTERFACE_INFORMATION InterfaceInfo; - int i; - - DPRINT1("Select Interface!\n"); - DPRINT1("Config Handle %x\n", Urb->UrbSelectInterface.ConfigurationHandle); - - InterfaceInfo = &Urb->UrbSelectInterface.Interface; - DPRINT1("InterfaceNumber %x\n", InterfaceInfo->InterfaceNumber); - DPRINT1("AlternateSetting %x\n", InterfaceInfo->AlternateSetting); - DPRINT1("NumPipes %x\n", InterfaceInfo->NumberOfPipes); - for (i=0;iNumberOfPipes;i++) - { - InterfaceInfo->Pipes[i].PipeHandle = (PVOID)&UsbDevice->ActiveInterface->EndPoints[i]->EndPointDescriptor; - } - - BuildSetupPacketFromURB(&FdoDeviceExtension->hcd, Urb, &CtrlSetup); - IoMarkIrpPending(Irp); - Status = STATUS_PENDING; - ExecuteTransfer(FdoDeviceExtension->DeviceObject, - UsbDevice, - 0, - &CtrlSetup, - 0, - NULL, - 0, - Irp); - break; - } - case URB_FUNCTION_CLASS_DEVICE: - { - DPRINT1("URB_FUNCTION_CLASS_DEVICE\n"); - switch (Urb->UrbControlVendorClassRequest.Request) - { - case USB_REQUEST_GET_DESCRIPTOR: - { - switch (Urb->UrbControlVendorClassRequest.Value >> 8) - { - case USB_DEVICE_CLASS_AUDIO: - { - DPRINT1("USB_DEVICE_CLASS_AUDIO not implemented\n"); - break; - } - case USB_DEVICE_CLASS_COMMUNICATIONS: - { - DPRINT1("USB_DEVICE_CLASS_COMMUNICATIONS not implemented\n"); - break; - } - case USB_DEVICE_CLASS_HUMAN_INTERFACE: - { - DPRINT1("USB_DEVICE_CLASS_HUMAN_INTERFACE not implemented\n"); - break; - } - case USB_DEVICE_CLASS_MONITOR: - { - DPRINT1("USB_DEVICE_CLASS_MONITOR not implemented\n"); - break; - } - case USB_DEVICE_CLASS_PHYSICAL_INTERFACE: - { - DPRINT1("USB_DEVICE_CLASS_PHYSICAL_INTERFACE not implemented\n"); - break; - } - case USB_DEVICE_CLASS_POWER: - { - DPRINT1("USB_DEVICE_CLASS_POWER not implemented\n"); - break; - } - case USB_DEVICE_CLASS_PRINTER: - { - DPRINT1("USB_DEVICE_CLASS_PRINTER not implemented\n"); - break; - } - case USB_DEVICE_CLASS_STORAGE: - { - DPRINT1("USB_DEVICE_CLASS_STORAGE not implemented\n"); - break; - } - case USB_DEVICE_CLASS_RESERVED: - DPRINT1("Reserved!!!\n"); - case USB_DEVICE_CLASS_HUB: - { - PUSB_HUB_DESCRIPTOR UsbHubDescr = Urb->UrbControlVendorClassRequest.TransferBuffer; - - DPRINT1("Length %x\n", Urb->UrbControlVendorClassRequest.TransferBufferLength); - ASSERT(Urb->UrbControlVendorClassRequest.TransferBuffer != 0); - /* FIXME: Handle more than root hub? */ - if(Urb->UrbControlVendorClassRequest.TransferBufferLength >= sizeof(USB_HUB_DESCRIPTOR)) - { - Urb->UrbControlVendorClassRequest.TransferBufferLength = sizeof(USB_HUB_DESCRIPTOR); - } - else - { - UsbHubDescr->bDescriptorLength = sizeof(USB_HUB_DESCRIPTOR); - UsbHubDescr->bDescriptorType = 0x29; - break; - } - DPRINT1("USB_DEVICE_CLASS_HUB request\n"); - UsbHubDescr->bDescriptorLength = sizeof(USB_HUB_DESCRIPTOR); - UsbHubDescr->bDescriptorType = 0x29; - UsbHubDescr->bNumberOfPorts = hcd->ECHICaps.HCSParams.PortCount; - UsbHubDescr->wHubCharacteristics = 0x0012; - UsbHubDescr->bPowerOnToPowerGood = 0x01; - UsbHubDescr->bHubControlCurrent = 0x00; - UsbHubDescr->bRemoveAndPowerMask[0] = 0x00; - UsbHubDescr->bRemoveAndPowerMask[1] = 0x00; - UsbHubDescr->bRemoveAndPowerMask[2] = 0xff; - break; - } - default: - { - DPRINT1("Unknown UrbControlVendorClassRequest Value\n"); - } - } - break; - } - case USB_REQUEST_GET_STATUS: - { - DPRINT1("DEVICE: USB_REQUEST_GET_STATUS for port %d\n", Urb->UrbControlVendorClassRequest.Index); - if (Urb->UrbControlVendorClassRequest.Index == 1) - { - ASSERT(Urb->UrbControlVendorClassRequest.TransferBuffer != 0); - ((PULONG)Urb->UrbControlVendorClassRequest.TransferBuffer)[0] = 0; - } - break; - } - default: - { - DPRINT1("Unhandled URB request for class device\n"); - Urb->UrbHeader.Status = USBD_STATUS_INVALID_URB_FUNCTION; - ASSERT(FALSE); - } - } - break; - } - case URB_FUNCTION_CLASS_OTHER: - { - DPRINT("URB_FUNCTION_CLASS_OTHER\n"); - /* FIXME: Each one of these needs to make sure that the index value is a valid for the number of ports and return STATUS_UNSUCCESSFUL if not */ - - switch (Urb->UrbControlVendorClassRequest.Request) - { - case USB_REQUEST_GET_STATUS: - { - DPRINT("USB_REQUEST_GET_STATUS Port %d\n", Urb->UrbControlVendorClassRequest.Index); - - ASSERT(Urb->UrbControlVendorClassRequest.TransferBuffer != 0); - DPRINT("PortStatus %x\n", hcd->Ports[Urb->UrbControlVendorClassRequest.Index-1].PortStatus); - DPRINT("PortChange %x\n", hcd->Ports[Urb->UrbControlVendorClassRequest.Index-1].PortChange); - ((PUSHORT)Urb->UrbControlVendorClassRequest.TransferBuffer)[0] = hcd->Ports[Urb->UrbControlVendorClassRequest.Index-1].PortStatus; - ((PUSHORT)Urb->UrbControlVendorClassRequest.TransferBuffer)[1] = hcd->Ports[Urb->UrbControlVendorClassRequest.Index-1].PortChange; - break; - } - case USB_REQUEST_CLEAR_FEATURE: - { - switch (Urb->UrbControlVendorClassRequest.Value) - { - case C_PORT_CONNECTION: - DPRINT("C_PORT_CONNECTION\n"); - hcd->Ports[Urb->UrbControlVendorClassRequest.Index-1].PortChange &= ~USB_PORT_STATUS_CONNECT; - break; - case C_PORT_RESET: - DPRINT("C_PORT_RESET\n"); - hcd->Ports[Urb->UrbControlVendorClassRequest.Index-1].PortChange &= ~USB_PORT_STATUS_RESET; - hcd->Ports[Urb->UrbControlVendorClassRequest.Index-1].PortStatus |= USB_PORT_STATUS_ENABLE; - break; - default: - DPRINT("Unknown Value for Clear Feature %x \n", Urb->UrbControlVendorClassRequest.Value); - break; - } - break; - } - case USB_REQUEST_SET_FEATURE: - { - DPRINT1("USB_REQUEST_SET_FEATURE Port %d, value %x\n", Urb->UrbControlVendorClassRequest.Index, - Urb->UrbControlVendorClassRequest.Value); - - switch(Urb->UrbControlVendorClassRequest.Value) - { - case PORT_RESET: - { - DPRINT1("Port Reset %d\n", Urb->UrbControlVendorClassRequest.Index-1); - hcd->Ports[Urb->UrbControlVendorClassRequest.Index-1].PortChange |= USB_PORT_STATUS_RESET; - hcd->Ports[Urb->UrbControlVendorClassRequest.Index-1].PortStatus &= ~USB_PORT_STATUS_ENABLE; - ResetPort(hcd, Urb->UrbControlVendorClassRequest.Index-1); - break; - } - case PORT_ENABLE: - { - DPRINT1("PORT_ENABLE not implemented\n"); - break; - } - case PORT_POWER: - { - DPRINT1("PORT_POWER not implemented\n"); - break; - } - default: - { - DPRINT1("Unknown Set Feature!\n"); - break; - } - } - - if (!(hcd->Ports[Urb->UrbControlVendorClassRequest.Index-1].PortStatus & 0x8000)) - { - DPRINT1("------ PortStatus %x\n", hcd->Ports[Urb->UrbControlVendorClassRequest.Index-1].PortStatus); - DPRINT1("Calling CompletePendingURBRequest\n"); - - CompletePendingURBRequest(PdoDeviceExtension); - } - - break; - } - case USB_REQUEST_SET_ADDRESS: - { - DPRINT1("USB_REQUEST_SET_ADDRESS\n"); - break; - } - case USB_REQUEST_GET_DESCRIPTOR: - { - DPRINT1("USB_REQUEST_GET_DESCRIPTOR\n"); - break; - } - case USB_REQUEST_SET_DESCRIPTOR: - { - DPRINT1("USB_REQUEST_SET_DESCRIPTOR\n"); - break; - } - case USB_REQUEST_GET_CONFIGURATION: - { - DPRINT1("USB_REQUEST_GET_CONFIGURATION\n"); - break; - } - case USB_REQUEST_SET_CONFIGURATION: - { - DPRINT1("USB_REQUEST_SET_CONFIGURATION\n"); - break; - } - case USB_REQUEST_GET_INTERFACE: - { - DPRINT1("USB_REQUEST_GET_INTERFACE\n"); - break; - } - case USB_REQUEST_SET_INTERFACE: - { - DPRINT1("USB_REQUEST_SET_INTERFACE\n"); - break; - } - case USB_REQUEST_SYNC_FRAME: - { - DPRINT1("USB_REQUEST_SYNC_FRAME\n"); - break; - } - default: - { - DPRINT1("Unknown Function Class Unknown request\n"); - break; - } - } - break; - } - case URB_FUNCTION_CONTROL_TRANSFER: - { - DPRINT1("URB_FUNCTION_CONTROL_TRANSFER\n"); - DPRINT1("PipeHandle %x\n", Urb->UrbControlTransfer.PipeHandle); - DPRINT1("TransferFlags %x\n", Urb->UrbControlTransfer.TransferFlags); - DPRINT1("TransferLength %x\n", Urb->UrbControlTransfer.TransferBufferLength); - DPRINT1("TransferBuffer %x\n", Urb->UrbControlTransfer.TransferBuffer); - DPRINT1("TransferMDL %x\n", Urb->UrbControlTransfer.TransferBufferMDL); - DPRINT1("SetupPacket %x\n", Urb->UrbControlTransfer.SetupPacket); - ASSERT(FALSE); - break; - } - case URB_FUNCTION_CLASS_INTERFACE: - { - USB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup; - DPRINT1("URB_FUNCTION_CLASS_INTERFACE\n"); - DPRINT1("TransferFlags %x\n", Urb->UrbControlVendorClassRequest.TransferFlags); - DPRINT1("TransferBufferLength %x\n", Urb->UrbControlVendorClassRequest.TransferBufferLength); - DPRINT1("TransferBuffer %x\n", Urb->UrbControlVendorClassRequest.TransferBuffer); - DPRINT1("TransferBufferMDL %x\n", Urb->UrbControlVendorClassRequest.TransferBufferMDL); - DPRINT1("RequestTypeReservedBits %x\n", Urb->UrbControlVendorClassRequest.RequestTypeReservedBits); - DPRINT1("Request %x\n", Urb->UrbControlVendorClassRequest.Request); - DPRINT1("Value %x\n", Urb->UrbControlVendorClassRequest.Value); - DPRINT1("Index %x\n", Urb->UrbControlVendorClassRequest.Index); - CtrlSetup.bmRequestType.B = 0xa1; //FIXME: Const. - CtrlSetup.bRequest = Urb->UrbControlVendorClassRequest.Request; - CtrlSetup.wValue.W = Urb->UrbControlVendorClassRequest.Value; - CtrlSetup.wIndex.W = Urb->UrbControlVendorClassRequest.Index; - CtrlSetup.wLength = Urb->UrbControlVendorClassRequest.TransferBufferLength; - - IoMarkIrpPending(Irp); - Status = STATUS_PENDING; - ExecuteTransfer(FdoDeviceExtension->DeviceObject, - UsbDevice, - 0, - &CtrlSetup, - 0, - Urb->UrbControlVendorClassRequest.TransferBuffer ? - Urb->UrbControlVendorClassRequest.TransferBuffer : - (PVOID)Urb->UrbControlVendorClassRequest.TransferBufferMDL, - Urb->UrbControlVendorClassRequest.TransferBuffer ? - Urb->UrbControlVendorClassRequest.TransferBufferLength : 0, - Irp); - break; - } - default: - { - DPRINT1("Unhandled URB %x\n", Urb->UrbHeader.Function); - Urb->UrbHeader.Status = USBD_STATUS_INVALID_URB_FUNCTION; - } - } - - Irp->IoStatus.Status = Status; - Irp->IoStatus.Information = Information; - return Status; -} - -VOID -CompletePendingURBRequest(PPDO_DEVICE_EXTENSION DeviceExtension) -{ - PLIST_ENTRY NextIrp = NULL; - KIRQL oldIrql; - PIRP Irp = NULL; - - KeAcquireSpinLock(&DeviceExtension->IrpQueueLock, &oldIrql); - - if (IsListEmpty(&DeviceExtension->IrpQueue)) - { - DPRINT1("There should have been one SCE request pending. Did the usbhub driver load?\n"); - KeReleaseSpinLock(&DeviceExtension->IrpQueueLock, oldIrql); - ASSERT(FALSE); - return; - } - NextIrp = RemoveHeadList(&DeviceExtension->IrpQueue); - Irp = CONTAINING_RECORD(NextIrp, IRP, Tail.Overlay.ListEntry); - - if (!Irp) - { - DPRINT1("No Irp\n"); - return; - } - - IoSetCancelRoutine(Irp, NULL); - KeReleaseSpinLock(&DeviceExtension->IrpQueueLock, oldIrql); - - HandleUrbRequest(DeviceExtension, Irp); - IoCompleteRequest(Irp, IO_NO_INCREMENT); -} - diff --git a/reactos/drivers/usb/usbehci/misc.c b/reactos/drivers/usb/usbehci/misc.c deleted file mode 100644 index 6c84c339f32..00000000000 --- a/reactos/drivers/usb/usbehci/misc.c +++ /dev/null @@ -1,136 +0,0 @@ -/* - * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/usb/usbehci/misc.c - * PURPOSE: Misceallenous operations. - * PROGRAMMERS: - * Michael Martin (michael.martin@reactos.org) - */ - -#include "usbehci.h" -#include -#include - -/* - Get SymblicName from Parameters in Registry Key - Caller is responsible for freeing pool of returned pointer -*/ -PWSTR -GetSymbolicName(PDEVICE_OBJECT DeviceObject) -{ - NTSTATUS Status; - HANDLE DevInstRegKey; - UNICODE_STRING SymbolicName; - PKEY_VALUE_PARTIAL_INFORMATION KeyPartInfo; - ULONG SizeNeeded; - PWCHAR SymbolicNameString = NULL; - - Status = IoOpenDeviceRegistryKey(DeviceObject, - PLUGPLAY_REGKEY_DEVICE, - STANDARD_RIGHTS_ALL, - &DevInstRegKey); - - DPRINT("IoOpenDeviceRegistryKey PLUGPLAY_REGKEY_DEVICE Status %x\n", Status); - - if (NT_SUCCESS(Status)) - { - RtlInitUnicodeString(&SymbolicName, L"SymbolicName"); - Status = ZwQueryValueKey(DevInstRegKey, - &SymbolicName, - KeyValuePartialInformation, - NULL, - 0, - &SizeNeeded); - - DPRINT("ZwQueryValueKey status %x, %d\n", Status, SizeNeeded); - - if (Status == STATUS_BUFFER_TOO_SMALL) - { - KeyPartInfo = (PKEY_VALUE_PARTIAL_INFORMATION ) ExAllocatePool(PagedPool, SizeNeeded); - if (!KeyPartInfo) - { - DPRINT1("OUT OF MEMORY\n"); - return NULL; - } - else - { - Status = ZwQueryValueKey(DevInstRegKey, - &SymbolicName, - KeyValuePartialInformation, - KeyPartInfo, - SizeNeeded, - &SizeNeeded); - - SymbolicNameString = ExAllocatePool(PagedPool, (KeyPartInfo->DataLength + sizeof(WCHAR))); - if (!SymbolicNameString) - { - return NULL; - } - RtlZeroMemory(SymbolicNameString, KeyPartInfo->DataLength + 2); - RtlCopyMemory(SymbolicNameString, KeyPartInfo->Data, KeyPartInfo->DataLength); - } - - ExFreePool(KeyPartInfo); - } - - ZwClose(DevInstRegKey); - } - - return SymbolicNameString; -} - -/* - Get Physical Device Object Name from registry - Caller is responsible for freeing pool -*/ -PWSTR -GetPhysicalDeviceObjectName(PDEVICE_OBJECT DeviceObject) -{ - NTSTATUS Status; - PWSTR ObjectName = NULL; - ULONG SizeNeeded; - - Status = IoGetDeviceProperty(DeviceObject, - DevicePropertyPhysicalDeviceObjectName, - 0, - NULL, - &SizeNeeded); - - if (Status != STATUS_BUFFER_TOO_SMALL) - { - DPRINT1("Expected STATUS_BUFFER_TOO_SMALL, got %x!\n", Status); - return NULL; - } - - ObjectName = (PWSTR) ExAllocatePool(PagedPool, SizeNeeded + sizeof(WCHAR)); - if (!ObjectName) - { - DPRINT1("Out of memory\n"); - return NULL; - } - - Status = IoGetDeviceProperty(DeviceObject, - DevicePropertyPhysicalDeviceObjectName, - SizeNeeded, - ObjectName, - &SizeNeeded); - if (!NT_SUCCESS(Status)) - { - DPRINT1("Failed to Get Property\n"); - return NULL; - } - - return ObjectName; -} - -PUSB_DEVICE DeviceHandleToUsbDevice(PPDO_DEVICE_EXTENSION PdoDeviceExtension, PUSB_DEVICE_HANDLE DeviceHandle) -{ - LONG i; - - for (i=0; i<127; i++) - { - if (PdoDeviceExtension->UsbDevices[i] == (PUSB_DEVICE)DeviceHandle) - return (PUSB_DEVICE)DeviceHandle; - } - return NULL; -} diff --git a/reactos/drivers/usb/usbehci/pdo.c b/reactos/drivers/usb/usbehci/pdo.c deleted file mode 100644 index 38829fcf9f5..00000000000 --- a/reactos/drivers/usb/usbehci/pdo.c +++ /dev/null @@ -1,704 +0,0 @@ -/* - * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/usb/usbehci/pdo.c - * PURPOSE: USB EHCI device driver. - * PROGRAMMERS: - * Michael Martin (michael.martin@reactos.org) - */ - -#define INITGUID - -#include "usbehci.h" -#include -#include -#include "usbiffn.h" -#include -#include -#include - -/* Lifted from Linux with slight changes */ -const UCHAR ROOTHUB2_DEVICE_DESCRIPTOR [] = -{ - 0x12, /* bLength; */ - USB_DEVICE_DESCRIPTOR_TYPE, /* bDescriptorType; Device */ - 0x00, 0x20, /* bcdUSB; v1.1 */ - USB_DEVICE_CLASS_HUB, /* bDeviceClass; HUB_CLASSCODE */ - 0x01, /* bDeviceSubClass; */ - 0x00, /* bDeviceProtocol; [ low/full speeds only ] */ - 0x08, /* bMaxPacketSize0; 8 Bytes */ - /* Fill Vendor and Product in when init root hub */ - 0x00, 0x00, /* idVendor; */ - 0x00, 0x00, /* idProduct; */ - 0x00, 0x00, /* bcdDevice */ - 0x00, /* iManufacturer; */ - 0x00, /* iProduct; */ - 0x00, /* iSerialNumber; */ - 0x01 /* bNumConfigurations; */ - -}; - -const UCHAR ROOTHUB2_CONFIGURATION_DESCRIPTOR [] = -{ - /* one configuration */ - 0x09, /* bLength; */ - 0x02, /* bDescriptorType; Configuration */ - 0x19, 0x00, /* wTotalLength; */ - 0x01, /* bNumInterfaces; (1) */ - 0x23, /* bConfigurationValue; */ - 0x00, /* iConfiguration; */ - 0x40, /* bmAttributes; */ - 0x00 /* MaxPower; */ -}; - -const UCHAR ROOTHUB2_INTERFACE_DESCRIPTOR [] = -{ - /* one interface */ - 0x09, /* bLength: Interface; */ - 0x04, /* bDescriptorType; Interface */ - 0x00, /* bInterfaceNumber; */ - 0x00, /* bAlternateSetting; */ - 0x01, /* bNumEndpoints; */ - 0x09, /* bInterfaceClass; HUB_CLASSCODE */ - 0x01, /* bInterfaceSubClass; */ - 0x00, /* bInterfaceProtocol: */ - 0x00 /* iInterface; */ -}; - -const UCHAR ROOTHUB2_ENDPOINT_DESCRIPTOR [] = -{ - /* one endpoint (status change endpoint) */ - 0x07, /* bLength; */ - 0x05, /* bDescriptorType; Endpoint */ - 0x81, /* bEndpointAddress; IN Endpoint 1 */ - 0x03, /* bmAttributes; Interrupt */ - 0x08, 0x00, /* wMaxPacketSize; 1 + (MAX_ROOT_PORTS / 8) */ - 0xFF /* bInterval; (255ms -- usb 2.0 spec) */ -}; - -NTSTATUS NTAPI -PdoDispatchInternalDeviceControl(PDEVICE_OBJECT DeviceObject, PIRP Irp) -{ - PPDO_DEVICE_EXTENSION PdoDeviceExtension; - PFDO_DEVICE_EXTENSION FdoDeviceExtension; - PIO_STACK_LOCATION Stack = NULL; - NTSTATUS Status = STATUS_UNSUCCESSFUL; - ULONG_PTR Information = 0; - PEHCI_HOST_CONTROLLER hcd; - - PdoDeviceExtension = (PPDO_DEVICE_EXTENSION) DeviceObject->DeviceExtension; - FdoDeviceExtension = (PFDO_DEVICE_EXTENSION) PdoDeviceExtension->ControllerFdo->DeviceExtension; - - ASSERT(PdoDeviceExtension->Common.IsFdo == FALSE); - - hcd = &FdoDeviceExtension->hcd; - Stack = IoGetCurrentIrpStackLocation(Irp); - - switch(Stack->Parameters.DeviceIoControl.IoControlCode) - { - case IOCTL_INTERNAL_USB_SUBMIT_URB: - { - PUSB_DEVICE UsbDevice = NULL; - URB *Urb; - ULONG i; - - Urb = (PURB) Stack->Parameters.Others.Argument1; - - UsbDevice = Urb->UrbHeader.UsbdDeviceHandle; - - /* If there was no device passed then this URB is for the RootHub */ - if (UsbDevice == NULL) - UsbDevice = PdoDeviceExtension->UsbDevices[0]; - - /* Check if it is a Status Change Endpoint (SCE). The Hub Driver sends this request and miniports mark the IRP pending - if there is no changes on any of the ports. When the DPC of miniport routine detects changes this IRP will be completed. - Based on XEN PV Usb Drivers */ - - if ((Urb->UrbHeader.Function == URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER) && - (UsbDevice == PdoDeviceExtension->UsbDevices[0])) - { - DPRINT("URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER on SCE\n"); - if (Urb->UrbBulkOrInterruptTransfer.PipeHandle != &UsbDevice->ActiveInterface->EndPoints[0]->EndPointDescriptor) - { - DPRINT1("PipeHandle doesnt match SCE PipeHandle\n"); - } - - /* Queue the Irp first */ - QueueURBRequest(PdoDeviceExtension, Irp); - - /* Check for port changes */ - if (EnumControllerPorts(hcd) == FALSE) - { - DPRINT("No port change\n"); - Status = STATUS_PENDING; - IoMarkIrpPending(Irp); - break; - } - - /* If we reached this point then port status has changed, so check - which port */ - for (i = 0; i < hcd->ECHICaps.HCSParams.PortCount; i++) - { - if (hcd->Ports[i].PortChange == 0x01) - { - DPRINT1("On SCE request: Inform hub driver that port %d has changed\n", i+1); - ASSERT(FALSE); - ((PUCHAR)Urb->UrbBulkOrInterruptTransfer.TransferBuffer)[0] = 1 << ((i + 1) & 7); - Information = 0; - Status = STATUS_SUCCESS; - /* Assume URB success */ - Urb->UrbHeader.Status = USBD_STATUS_SUCCESS; - /* Set the DeviceHandle to the Internal Device */ - Urb->UrbHeader.UsbdDeviceHandle = UsbDevice; - - /* Request handled, Remove it from the queue */ - RemoveUrbRequest(PdoDeviceExtension, Irp); - break; - } - } - if (Status == STATUS_SUCCESS) break; - - IoMarkIrpPending(Irp); - Status = STATUS_PENDING; - break; - } - - Status = HandleUrbRequest(PdoDeviceExtension, Irp); - - break; - } - case IOCTL_INTERNAL_USB_CYCLE_PORT: - { - DPRINT1("IOCTL_INTERNAL_USB_CYCLE_PORT\n"); - break; - } - case IOCTL_INTERNAL_USB_ENABLE_PORT: - { - DPRINT1("IOCTL_INTERNAL_USB_ENABLE_PORT\n"); - Information = 0; - Status = STATUS_SUCCESS; - break; - } - case IOCTL_INTERNAL_USB_GET_BUS_INFO: - { - DPRINT1("IOCTL_INTERNAL_USB_GET_BUS_INFO\n"); - break; - } - case IOCTL_INTERNAL_USB_GET_BUSGUID_INFO: - { - DPRINT1("IOCTL_INTERNAL_USB_GET_BUSGUID_INFO\n"); - break; - } - case IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME: - { - DPRINT1("IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME\n"); - break; - } - case IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE: - { - DPRINT1("Ehci: IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE %x\n", Stack->Parameters.Others.Argument2); - if (Stack->Parameters.Others.Argument1) - { - /* Return the root hubs devicehandle */ - DPRINT("Returning RootHub Handle %x\n", PdoDeviceExtension->UsbDevices[0]); - *(PVOID *)Stack->Parameters.Others.Argument1 = (PVOID)PdoDeviceExtension->UsbDevices[0]; - Status = STATUS_SUCCESS; - } - else - Status = STATUS_INVALID_DEVICE_REQUEST; - - break; - - } - case IOCTL_INTERNAL_USB_GET_HUB_COUNT: - { - DPRINT1("Ehci: IOCTL_INTERNAL_USB_GET_HUB_COUNT %x\n", IOCTL_INTERNAL_USB_GET_HUB_COUNT); - ASSERT(Stack->Parameters.Others.Argument1 != NULL); - if (Stack->Parameters.Others.Argument1) - { - /* FIXME: Determine the number of hubs between the usb device and root hub. - For now we have at least one. */ - *(PULONG)Stack->Parameters.Others.Argument1 = 1; - } - Status = STATUS_SUCCESS; - break; - } - case IOCTL_INTERNAL_USB_GET_HUB_NAME: - { - DPRINT1("IOCTL_INTERNAL_USB_GET_HUB_NAME\n"); - break; - } - case IOCTL_INTERNAL_USB_GET_PARENT_HUB_INFO: - { - DPRINT1("IOCTL_INTERNAL_USB_GET_PARENT_HUB_INFO\n"); - break; - } - case IOCTL_INTERNAL_USB_GET_PORT_STATUS: - { - DPRINT1("IOCTL_INTERNAL_USB_GET_PORT_STATUS\n"); - break; - } - case IOCTL_INTERNAL_USB_RESET_PORT: - { - DPRINT1("IOCTL_INTERNAL_USB_RESET_PORT\n"); - break; - } - case IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO: - { - DPRINT("IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO\n"); - /* DDK documents that both the PDO and FDO are returned. However, while writing the UsbHub driver it was determine - that this was not the case. Windows usbehci driver gives the Pdo in both Arguments. Which makes sense as upper level - drivers should not be communicating with FDO. */ - if (Stack->Parameters.Others.Argument1) - *(PVOID *)Stack->Parameters.Others.Argument1 = FdoDeviceExtension->Pdo; - if (Stack->Parameters.Others.Argument2) - *(PVOID *)Stack->Parameters.Others.Argument2 = FdoDeviceExtension->Pdo; - Information = 0; - Status = STATUS_SUCCESS; - break; - } - case IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION: - { - PUSB_IDLE_CALLBACK_INFO CallBackInfo; - DPRINT1("Ehci: IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION\n"); - /* FIXME: Set Callback for safe power down */ - CallBackInfo = Stack->Parameters.DeviceIoControl.Type3InputBuffer; - - PdoDeviceExtension->IdleCallback = CallBackInfo->IdleCallback; - PdoDeviceExtension->IdleContext = CallBackInfo->IdleContext; - - Information = 0; - Status = STATUS_SUCCESS; - break; - } - default: - { - DPRINT1("Unhandled IoControlCode %x\n", Stack->Parameters.DeviceIoControl.IoControlCode); - break; - } - } - - Irp->IoStatus.Information = Information; - - if (Status != STATUS_PENDING) - IoCompleteRequest(Irp, IO_NO_INCREMENT); - - return Status; -} - -NTSTATUS -PdoQueryId(PDEVICE_OBJECT DeviceObject, PIRP Irp, ULONG_PTR* Information) -{ - WCHAR Buffer[256]; - ULONG Index = 0; - ULONG IdType; - UNICODE_STRING SourceString; - UNICODE_STRING String; - NTSTATUS Status; - - IdType = IoGetCurrentIrpStackLocation(Irp)->Parameters.QueryId.IdType; - - switch (IdType) - { - case BusQueryDeviceID: - { - RtlInitUnicodeString(&SourceString, L"USB\\ROOT_HUB20"); - break; - } - case BusQueryHardwareIDs: - { - /* FIXME: Build from Device Vendor and Device ID */ - Index += swprintf(&Buffer[Index], L"USB\\ROOT_HUB20&VID8086&PID265C&REV0000") + 1; - Index += swprintf(&Buffer[Index], L"USB\\ROOT_HUB20&VID8086&PID265C") + 1; - Index += swprintf(&Buffer[Index], L"USB\\ROOT_HUB20") + 1; - - Buffer[Index] = UNICODE_NULL; - SourceString.Length = SourceString.MaximumLength = Index * sizeof(WCHAR); - SourceString.Buffer = Buffer; - break; - - } - case BusQueryCompatibleIDs: - { - /* We have none */ - return STATUS_SUCCESS; - } - case BusQueryInstanceID: - { - return STATUS_SUCCESS; - } - default: - { - DPRINT1("IRP_MJ_PNP / IRP_MN_QUERY_ID / unknown query id type 0x%lx\n", IdType); - return STATUS_NOT_SUPPORTED; - } - } - - Status = DuplicateUnicodeString(RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE, - &SourceString, - &String); - - *Information = (ULONG_PTR)String.Buffer; - return Status; -} - -NTSTATUS -PdoQueryDeviceRelations(PDEVICE_OBJECT DeviceObject, PDEVICE_RELATIONS* pDeviceRelations) -{ - PDEVICE_RELATIONS DeviceRelations; - - DeviceRelations = (PDEVICE_RELATIONS)ExAllocatePool(PagedPool, sizeof(DEVICE_RELATIONS)); - if (!DeviceRelations) - return STATUS_INSUFFICIENT_RESOURCES; - - DeviceRelations->Count = 1; - DeviceRelations->Objects[0] = DeviceObject; - ObReferenceObject(DeviceObject); - - *pDeviceRelations = DeviceRelations; - return STATUS_SUCCESS; -} - -NTSTATUS NTAPI -PdoDispatchPnp( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - ULONG MinorFunction; - PIO_STACK_LOCATION Stack; - ULONG_PTR Information = Irp->IoStatus.Information; - NTSTATUS Status = Irp->IoStatus.Status; - PDEVICE_CAPABILITIES DeviceCapabilities; - ULONG i; - - Stack = IoGetCurrentIrpStackLocation(Irp); - MinorFunction = Stack->MinorFunction; - - switch (MinorFunction) - { - case IRP_MN_QUERY_REMOVE_DEVICE: - case IRP_MN_REMOVE_DEVICE: - case IRP_MN_CANCEL_REMOVE_DEVICE: - case IRP_MN_STOP_DEVICE: - case IRP_MN_QUERY_STOP_DEVICE: - case IRP_MN_CANCEL_STOP_DEVICE: - case IRP_MN_QUERY_DEVICE_TEXT: - case IRP_MN_SURPRISE_REMOVAL: - case IRP_MN_QUERY_RESOURCES: - case IRP_MN_QUERY_RESOURCE_REQUIREMENTS: - case IRP_MN_FILTER_RESOURCE_REQUIREMENTS: - { - Status = STATUS_SUCCESS; - break; - } - - case IRP_MN_START_DEVICE: - { - PUSB_DEVICE RootHubDevice; - PPDO_DEVICE_EXTENSION PdoDeviceExtension; - PFDO_DEVICE_EXTENSION FdoDeviceExtension; - UNICODE_STRING InterfaceSymLinkName; - - DPRINT1("Ehci: PDO StartDevice\n"); - PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension; - FdoDeviceExtension = (PFDO_DEVICE_EXTENSION)PdoDeviceExtension->ControllerFdo->DeviceExtension; - - /* Create the root hub */ - RootHubDevice = InternalCreateUsbDevice(1, 0, NULL, TRUE); - - RtlCopyMemory(&RootHubDevice->DeviceDescriptor, - ROOTHUB2_DEVICE_DESCRIPTOR, - sizeof(ROOTHUB2_DEVICE_DESCRIPTOR)); - - RootHubDevice->DeviceDescriptor.idVendor = FdoDeviceExtension->VendorId; - RootHubDevice->DeviceDescriptor.idProduct = FdoDeviceExtension->DeviceId; - - /* Here config, interfaces and descriptors are stored. This was duplicated from XEN PV Usb Drivers implementation. - Not sure that it is really needed as the information can be queueried from the device. */ - - RootHubDevice->Configs = ExAllocatePoolWithTag(NonPagedPool, - sizeof(PVOID) * RootHubDevice->DeviceDescriptor.bNumConfigurations, - USB_POOL_TAG); - - RootHubDevice->Configs[0] = ExAllocatePoolWithTag(NonPagedPool, - sizeof(USB_CONFIGURATION) + sizeof(PVOID) * ROOTHUB2_CONFIGURATION_DESCRIPTOR[4], - USB_POOL_TAG); - - RootHubDevice->Configs[0]->Interfaces[0] = ExAllocatePoolWithTag(NonPagedPool, - sizeof(USB_INTERFACE) + sizeof(PVOID) * ROOTHUB2_INTERFACE_DESCRIPTOR[4], - USB_POOL_TAG); - - RootHubDevice->Configs[0]->Interfaces[0]->EndPoints[0] = ExAllocatePoolWithTag(NonPagedPool, - sizeof(USB_ENDPOINT), - USB_POOL_TAG); - - RootHubDevice->ActiveConfig = RootHubDevice->Configs[0]; - RootHubDevice->ActiveInterface = RootHubDevice->ActiveConfig->Interfaces[0]; - - RtlCopyMemory(&RootHubDevice->ActiveConfig->ConfigurationDescriptor, - ROOTHUB2_CONFIGURATION_DESCRIPTOR, - sizeof(ROOTHUB2_CONFIGURATION_DESCRIPTOR)); - - RtlCopyMemory(&RootHubDevice->ActiveConfig->Interfaces[0]->InterfaceDescriptor, - ROOTHUB2_INTERFACE_DESCRIPTOR, - sizeof(ROOTHUB2_INTERFACE_DESCRIPTOR)); - - RtlCopyMemory(&RootHubDevice->ActiveConfig->Interfaces[0]->EndPoints[0]->EndPointDescriptor, - ROOTHUB2_ENDPOINT_DESCRIPTOR, - sizeof(ROOTHUB2_ENDPOINT_DESCRIPTOR)); - RootHubDevice->DeviceSpeed = UsbHighSpeed; - RootHubDevice->DeviceType = Usb20Device; - - PdoDeviceExtension->UsbDevices[0] = RootHubDevice; - - Status = IoRegisterDeviceInterface(DeviceObject, &GUID_DEVINTERFACE_USB_HUB, NULL, &InterfaceSymLinkName); - if (!NT_SUCCESS(Status)) - { - DPRINT1("Failed to register interface\n"); - return Status; - } - else - { - Status = IoSetDeviceInterfaceState(&InterfaceSymLinkName, TRUE); - if (!NT_SUCCESS(Status)) - return Status; - } - - Status = STATUS_SUCCESS; - break; - } - case IRP_MN_QUERY_DEVICE_RELATIONS: - { - DPRINT1("Ehci: PDO QueryDeviceRelations\n"); - switch (Stack->Parameters.QueryDeviceRelations.Type) - { - case TargetDeviceRelation: - { - PDEVICE_RELATIONS DeviceRelations = NULL; - Status = PdoQueryDeviceRelations(DeviceObject, &DeviceRelations); - Information = (ULONG_PTR)DeviceRelations; - break; - } - case BusRelations: - { - PPDO_DEVICE_EXTENSION PdoDeviceExtension; - PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension; - - DPRINT("BusRelations!!!!!\n"); - - /* The hub driver has created the new device object and reported to pnp, as a result the pnp manager - has sent this IRP and type, so leave the next SCE request pending until a new device arrives. - Is there a better way to do this? */ - ExAcquireFastMutex(&PdoDeviceExtension->ListLock); - PdoDeviceExtension->HaltQueue = TRUE; - ExReleaseFastMutex(&PdoDeviceExtension->ListLock); - } - case RemovalRelations: - case EjectionRelations: - { - /* Ignore the request */ - Information = Irp->IoStatus.Information; - Status = Irp->IoStatus.Status; - break; - - } - default: - { - DPRINT1("IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / Unhandled type 0x%lx\n", - Stack->Parameters.QueryDeviceRelations.Type); - Status = STATUS_NOT_SUPPORTED; - break; - } - } - break; - } - case IRP_MN_QUERY_CAPABILITIES: - { - DPRINT("Ehci: PDO Query Capabilities\n"); - - DeviceCapabilities = (PDEVICE_CAPABILITIES)Stack->Parameters.DeviceCapabilities.Capabilities; - - DeviceCapabilities->LockSupported = FALSE; - DeviceCapabilities->EjectSupported = FALSE; - DeviceCapabilities->Removable = FALSE; - DeviceCapabilities->DockDevice = FALSE; - DeviceCapabilities->UniqueID = FALSE; - DeviceCapabilities->SilentInstall = FALSE; - DeviceCapabilities->RawDeviceOK = FALSE; - DeviceCapabilities->SurpriseRemovalOK = FALSE; - DeviceCapabilities->Address = 0; - DeviceCapabilities->UINumber = 0; - DeviceCapabilities->DeviceD2 = 1; - - /* FIXME: Verify these settings are correct */ - DeviceCapabilities->HardwareDisabled = FALSE; - //DeviceCapabilities->NoDisplayInUI = FALSE; - DeviceCapabilities->DeviceState[0] = PowerDeviceD0; - for (i = 0; i < PowerSystemMaximum; i++) - DeviceCapabilities->DeviceState[i] = PowerDeviceD3; - DeviceCapabilities->DeviceWake = 0; - DeviceCapabilities->D1Latency = 0; - DeviceCapabilities->D2Latency = 0; - DeviceCapabilities->D3Latency = 0; - Information = 0; - Status = STATUS_SUCCESS; - break; - } - /*case IRP_MN_QUERY_DEVICE_TEXT: - { - Status = STATUS_NOT_SUPPORTED; - break; - }*/ - - case IRP_MN_QUERY_ID: - { - DPRINT("Ehci: PDO Query ID\n"); - Status = PdoQueryId(DeviceObject, Irp, &Information); - break; - } - case IRP_MN_QUERY_INTERFACE: - { - UNICODE_STRING GuidString; - PUSB_BUS_INTERFACE_HUB_V5 InterfaceHub; - PUSB_BUS_INTERFACE_USBDI_V2 InterfaceDI; - PPDO_DEVICE_EXTENSION PdoDeviceExtension; - PFDO_DEVICE_EXTENSION FdoDeviceExtension; - - DPRINT("Ehci: PDO Query Interface\n"); - - PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension; - FdoDeviceExtension = (PFDO_DEVICE_EXTENSION)PdoDeviceExtension->ControllerFdo->DeviceExtension; - - Status = RtlStringFromGUID(Stack->Parameters.QueryInterface.InterfaceType, &GuidString); - if (!NT_SUCCESS(Status)) - { - DPRINT1("Failed to create string from GUID!\n"); - } - - /* Assume success */ - Status = STATUS_SUCCESS; - Information = 0; - - if (IsEqualGUIDAligned(Stack->Parameters.QueryInterface.InterfaceType, &USB_BUS_INTERFACE_HUB_GUID)) - { - InterfaceHub = (PUSB_BUS_INTERFACE_HUB_V5)Stack->Parameters.QueryInterface.Interface; - InterfaceHub->Version = Stack->Parameters.QueryInterface.Version; - if (Stack->Parameters.QueryInterface.Version >= 0) - { - InterfaceHub->Size = Stack->Parameters.QueryInterface.Size; - InterfaceHub->BusContext = PdoDeviceExtension->DeviceObject; - InterfaceHub->InterfaceReference = (PINTERFACE_REFERENCE)InterfaceReference; - InterfaceHub->InterfaceDereference = (PINTERFACE_DEREFERENCE)InterfaceDereference; - } - if (Stack->Parameters.QueryInterface.Version >= 1) - { - InterfaceHub->CreateUsbDevice = CreateUsbDevice; - InterfaceHub->InitializeUsbDevice = InitializeUsbDevice; - InterfaceHub->GetUsbDescriptors = GetUsbDescriptors; - InterfaceHub->RemoveUsbDevice = RemoveUsbDevice; - InterfaceHub->RestoreUsbDevice = RestoreUsbDevice; - InterfaceHub->GetPortHackFlags = GetPortHackFlags; - InterfaceHub->QueryDeviceInformation = QueryDeviceInformation; - } - if (Stack->Parameters.QueryInterface.Version >= 2) - { - InterfaceHub->GetControllerInformation = GetControllerInformation; - InterfaceHub->ControllerSelectiveSuspend = ControllerSelectiveSuspend; - InterfaceHub->GetExtendedHubInformation = GetExtendedHubInformation; - InterfaceHub->GetRootHubSymbolicName = GetRootHubSymbolicName; - InterfaceHub->GetDeviceBusContext = GetDeviceBusContext; - InterfaceHub->Initialize20Hub = Initialize20Hub; - - } - if (Stack->Parameters.QueryInterface.Version >= 3) - { - InterfaceHub->RootHubInitNotification = RootHubInitNotification; - } - if (Stack->Parameters.QueryInterface.Version >= 4) - { - InterfaceHub->FlushTransfers = FlushTransfers; - } - if (Stack->Parameters.QueryInterface.Version >= 5) - { - InterfaceHub->SetDeviceHandleData = SetDeviceHandleData; - } - if (Stack->Parameters.QueryInterface.Version >= 6) - { - DPRINT1("USB_BUS_INTERFACE_HUB_GUID version not supported!\n"); - } - break; - } - - if (IsEqualGUIDAligned(Stack->Parameters.QueryInterface.InterfaceType, &USB_BUS_INTERFACE_USBDI_GUID)) - { - InterfaceDI = (PUSB_BUS_INTERFACE_USBDI_V2) Stack->Parameters.QueryInterface.Interface; - InterfaceDI->Version = Stack->Parameters.QueryInterface.Version; - if (Stack->Parameters.QueryInterface.Version >= 0) - { - //InterfaceDI->Size = sizeof(USB_BUS_INTERFACE_USBDI_V2); - InterfaceDI->Size = Stack->Parameters.QueryInterface.Size; - InterfaceDI->BusContext = PdoDeviceExtension->DeviceObject; - InterfaceDI->InterfaceReference = (PINTERFACE_REFERENCE)InterfaceReference; - InterfaceDI->InterfaceDereference = (PINTERFACE_DEREFERENCE)InterfaceDereference; - InterfaceDI->GetUSBDIVersion = GetUSBDIVersion; - InterfaceDI->QueryBusTime = QueryBusTime; - InterfaceDI->SubmitIsoOutUrb = SubmitIsoOutUrb; - InterfaceDI->QueryBusInformation = QueryBusInformation; - } - if (Stack->Parameters.QueryInterface.Version >= 1) - { - InterfaceDI->IsDeviceHighSpeed = IsDeviceHighSpeed; - } - if (Stack->Parameters.QueryInterface.Version >= 2) - { - InterfaceDI->EnumLogEntry = EnumLogEntry; - } - - if (Stack->Parameters.QueryInterface.Version >= 3) - { - DPRINT1("SB_BUS_INTERFACE_USBDI_GUID version not supported!\n"); - } - break; - } - - DPRINT1("GUID Not Supported\n"); - Status = Irp->IoStatus.Status; - Information = Irp->IoStatus.Information; - - break; - } - case IRP_MN_QUERY_BUS_INFORMATION: - { - PPNP_BUS_INFORMATION BusInfo; - - BusInfo = (PPNP_BUS_INFORMATION)ExAllocatePool(PagedPool, sizeof(PNP_BUS_INFORMATION)); - if (!BusInfo) - Status = STATUS_INSUFFICIENT_RESOURCES; - else - { - /* FIXME */ - /*RtlCopyMemory( - &BusInfo->BusTypeGuid, - &GUID_DEVINTERFACE_XXX, - sizeof(GUID));*/ - - BusInfo->LegacyBusType = PNPBus; - BusInfo->BusNumber = 0; - Information = (ULONG_PTR)BusInfo; - Status = STATUS_SUCCESS; - } - break; - } - default: - { - /* We are the PDO. So ignore */ - DPRINT1("IRP_MJ_PNP / Unknown minor function 0x%lx\n", MinorFunction); - break; - } - } - - Irp->IoStatus.Information = Information; - Irp->IoStatus.Status = Status; - IoCompleteRequest(Irp, IO_NO_INCREMENT); - return Status; -} diff --git a/reactos/drivers/usb/usbehci/physmem.c b/reactos/drivers/usb/usbehci/physmem.c deleted file mode 100644 index 09a964ff32e..00000000000 --- a/reactos/drivers/usb/usbehci/physmem.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/usb/usbehci/physmem.c - * PURPOSE: Common Buffer routines. - * PROGRAMMERS: - * Michael Martin (michael.martin@reactos.org) - */ - -#include "physmem.h" -#include "debug.h" - -#define SMALL_ALLOCATION_SIZE 32 - -VOID -DumpPages() -{ - //PMEM_HEADER MemBlock = (PMEM_HEADER)EhciSharedMemory.VirtualAddr; -} - -// Returns Virtual Address of Allocated Memory -ULONG -AllocateMemory(PEHCI_HOST_CONTROLLER hcd, ULONG Size, ULONG *PhysicalAddress) -{ - PMEM_HEADER MemoryPage = NULL; - ULONG PageCount = 0; - ULONG NumberOfPages = hcd->CommonBufferSize / PAGE_SIZE; - ULONG BlocksNeeded = 0; - ULONG i,j, freeCount; - ULONG RetAddr = 0; - - MemoryPage = (PMEM_HEADER)hcd->CommonBufferVA[0]; - Size = ((Size + SMALL_ALLOCATION_SIZE - 1) / SMALL_ALLOCATION_SIZE) * SMALL_ALLOCATION_SIZE; - BlocksNeeded = Size / SMALL_ALLOCATION_SIZE; - - do - { - if (MemoryPage->IsFull) - { - PageCount++; - - if (!(PMEM_HEADER)hcd->CommonBufferVA[PageCount]) - { - hcd->CommonBufferVA[PageCount] = - hcd->pDmaAdapter->DmaOperations->AllocateCommonBuffer(hcd->pDmaAdapter, - PAGE_SIZE, - &hcd->CommonBufferPA[PageCount], - FALSE); - } - MemoryPage = (PMEM_HEADER)hcd->CommonBufferVA[PageCount]; - continue; - } - freeCount = 0; - for (i = 0; i < sizeof(MemoryPage->Entry); i++) - { - if (!MemoryPage->Entry[i].InUse) - { - freeCount++; - } - else - { - freeCount = 0; - } - - if ((i-freeCount+1 + BlocksNeeded) > sizeof(MemoryPage->Entry)) - { - freeCount = 0; - break; - } - - if (freeCount == BlocksNeeded) - { - for (j = 0; j < freeCount; j++) - { - MemoryPage->Entry[i-j].InUse = 1; - MemoryPage->Entry[i-j].Blocks = 0; - } - - MemoryPage->Entry[i-freeCount + 1].Blocks = BlocksNeeded; - - RetAddr = (ULONG)MemoryPage + (SMALL_ALLOCATION_SIZE * (i - freeCount + 1)) + sizeof(MEM_HEADER); - - *(ULONG*)PhysicalAddress = (ULONG)hcd->CommonBufferPA[PageCount].LowPart + (RetAddr - (ULONG)hcd->CommonBufferVA[PageCount]); - - return RetAddr; - } - } - - PageCount++; - if (!(PMEM_HEADER)hcd->CommonBufferVA[PageCount]) - { - - hcd->CommonBufferVA[PageCount] = - hcd->pDmaAdapter->DmaOperations->AllocateCommonBuffer(hcd->pDmaAdapter, - PAGE_SIZE, - &hcd->CommonBufferPA[PageCount], - FALSE); - DPRINT1("Allocated CommonBuffer VA %x, PA %x\n", hcd->CommonBufferVA[PageCount], hcd->CommonBufferPA[PageCount]); - } - MemoryPage = (PMEM_HEADER)hcd->CommonBufferVA[PageCount]; - - } while (PageCount < NumberOfPages); - - if (PageCount == NumberOfPages) - ASSERT(FALSE); - - return 0; -} - -VOID -ReleaseMemory(PEHCI_HOST_CONTROLLER hcd, ULONG Address) -{ - PMEM_HEADER MemoryPage; - ULONG Index, i, BlockSize; - - MemoryPage = (PMEM_HEADER)(Address & ~(PAGE_SIZE - 1)); - - Index = (Address - ((ULONG)MemoryPage + sizeof(MEM_HEADER))) / SMALL_ALLOCATION_SIZE; - BlockSize = MemoryPage->Entry[Index].Blocks; - - for (i = 0; i < BlockSize; i++) - { - MemoryPage->Entry[Index + i].InUse = 0; - MemoryPage->Entry[Index + i].Blocks = 0; - } - - if (MemoryPage != (PMEM_HEADER)hcd->CommonBufferVA[0]) - { - for (i=0; i < sizeof(MemoryPage->Entry) / 2; i++) - { - if ((MemoryPage->Entry[i].InUse) || (MemoryPage->Entry[sizeof(MemoryPage->Entry) - i].InUse)) - return; - } - DPRINT1("Freeing CommonBuffer VA %x, PA %x\n", MemoryPage, MmGetPhysicalAddress(MemoryPage)); - hcd->pDmaAdapter->DmaOperations->FreeCommonBuffer(hcd->pDmaAdapter, - PAGE_SIZE, - MmGetPhysicalAddress(MemoryPage), - MemoryPage, - FALSE); - } -} diff --git a/reactos/drivers/usb/usbehci/physmem.h b/reactos/drivers/usb/usbehci/physmem.h deleted file mode 100644 index b88f702ba0b..00000000000 --- a/reactos/drivers/usb/usbehci/physmem.h +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -#include "hardware.h" - -typedef struct _MEM_ENTRY -{ - UCHAR InUse:1; - UCHAR Blocks:7; -} MEM_ENTRY, *PMEM_ENTRY; - -typedef struct _MEM_HEADER -{ - UCHAR IsFull; - MEM_ENTRY Entry[124]; - UCHAR Reserved[3]; -} MEM_HEADER, *PMEM_HEADER; - -VOID -DumpPages(VOID); - -ULONG -AllocateMemory(PEHCI_HOST_CONTROLLER hcd, ULONG Size, ULONG *PhysicalAddress); - -VOID -ReleaseMemory(PEHCI_HOST_CONTROLLER hcd, ULONG Address); diff --git a/reactos/drivers/usb/usbehci/transfer.c b/reactos/drivers/usb/usbehci/transfer.c deleted file mode 100644 index 0f94a133875..00000000000 --- a/reactos/drivers/usb/usbehci/transfer.c +++ /dev/null @@ -1,547 +0,0 @@ -/* - * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/usb/usbehci/transfer.c - * PURPOSE: Transfers to EHCI. - * PROGRAMMERS: - * Michael Martin (michael.martin@reactos.org) - */ - -/* All QueueHeads, Descriptors and pipe setup packets used by control transfers are allocated from common buffer. - The routines in physmem manages this buffer. Each allocation is aligned to 32bits, which is requirement of USB 2.0. */ - -#include "transfer.h" -#include - - -typedef struct _MAPREGISTERCALLBACKINFO -{ - PVOID MapRegisterBase; - KEVENT Event; -}MAPREGISTERCALLBACKINFO, *PMAPREGISTERCALLBACKINFO; - -/* Fills CtrlSetup parameter with values based on Urb */ -VOID -BuildSetupPacketFromURB(PEHCI_HOST_CONTROLLER hcd, PURB Urb, PUSB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup) -{ - switch (Urb->UrbHeader.Function) - { - /* CLEAR FEATURE */ - case URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE: - case URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE: - case URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT: - DPRINT1("Not implemented!\n"); - break; - - /* GET CONFIG */ - case URB_FUNCTION_GET_CONFIGURATION: - CtrlSetup->bRequest = USB_REQUEST_GET_CONFIGURATION; - CtrlSetup->bmRequestType.B = 0x80; - CtrlSetup->wLength = 1; - break; - - /* GET DESCRIPTOR */ - case URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE: - CtrlSetup->bRequest = USB_REQUEST_GET_DESCRIPTOR; - CtrlSetup->wValue.LowByte = Urb->UrbControlDescriptorRequest.Index; - CtrlSetup->wValue.HiByte = Urb->UrbControlDescriptorRequest.DescriptorType; - CtrlSetup->wIndex.W = Urb->UrbControlDescriptorRequest.LanguageId; - CtrlSetup->wLength = Urb->UrbControlDescriptorRequest.TransferBufferLength; - CtrlSetup->bmRequestType.B = 0x80; - break; - - /* GET INTERFACE */ - case URB_FUNCTION_GET_INTERFACE: - CtrlSetup->bRequest = USB_REQUEST_GET_CONFIGURATION; - CtrlSetup->wIndex.W = Urb->UrbControlGetStatusRequest.Index; - CtrlSetup->bmRequestType.B = 0x80; - CtrlSetup->wLength = 1; - break; - - /* GET STATUS */ - case URB_FUNCTION_GET_STATUS_FROM_DEVICE: - CtrlSetup->bRequest = USB_REQUEST_GET_STATUS; - ASSERT(Urb->UrbControlGetStatusRequest.Index == 0); - CtrlSetup->wIndex.W = Urb->UrbControlGetStatusRequest.Index; - CtrlSetup->bmRequestType.B = 0x80; - CtrlSetup->wLength = 2; - break; - - case URB_FUNCTION_GET_STATUS_FROM_INTERFACE: - CtrlSetup->bRequest = USB_REQUEST_GET_STATUS; - ASSERT(Urb->UrbControlGetStatusRequest.Index != 0); - CtrlSetup->wIndex.W = Urb->UrbControlGetStatusRequest.Index; - CtrlSetup->bmRequestType.B = 0x81; - CtrlSetup->wLength = 2; - break; - - case URB_FUNCTION_GET_STATUS_FROM_ENDPOINT: - CtrlSetup->bRequest = USB_REQUEST_GET_STATUS; - ASSERT(Urb->UrbControlGetStatusRequest.Index != 0); - CtrlSetup->wIndex.W = Urb->UrbControlGetStatusRequest.Index; - CtrlSetup->bmRequestType.B = 0x82; - CtrlSetup->wLength = 2; - break; - - /* SET ADDRESS */ - - /* SET CONFIG */ - case URB_FUNCTION_SELECT_CONFIGURATION: - DPRINT1("Bulding data for Select Config\n"); - CtrlSetup->bRequest = USB_REQUEST_SET_CONFIGURATION; - CtrlSetup->wValue.W = Urb->UrbSelectConfiguration.ConfigurationDescriptor->bConfigurationValue; - CtrlSetup->wIndex.W = 0; - CtrlSetup->wLength = 0; - CtrlSetup->bmRequestType.B = 0x00; - break; - - /* SET DESCRIPTOR */ - case URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE: - case URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE: - case URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT: - DPRINT1("Not implemented\n"); - break; - - /* SET FEATURE */ - case URB_FUNCTION_SET_FEATURE_TO_DEVICE: - CtrlSetup->bRequest = USB_REQUEST_SET_FEATURE; - ASSERT(Urb->UrbControlGetStatusRequest.Index == 0); - CtrlSetup->wIndex.W = Urb->UrbControlGetStatusRequest.Index; - CtrlSetup->bmRequestType.B = 0x80; - break; - - case URB_FUNCTION_SET_FEATURE_TO_INTERFACE: - CtrlSetup->bRequest = USB_REQUEST_SET_FEATURE; - ASSERT(Urb->UrbControlGetStatusRequest.Index == 0); - CtrlSetup->wIndex.W = Urb->UrbControlGetStatusRequest.Index; - CtrlSetup->bmRequestType.B = 0x81; - break; - - case URB_FUNCTION_SET_FEATURE_TO_ENDPOINT: - CtrlSetup->bRequest = USB_REQUEST_SET_FEATURE; - ASSERT(Urb->UrbControlGetStatusRequest.Index == 0); - CtrlSetup->wIndex.W = Urb->UrbControlGetStatusRequest.Index; - CtrlSetup->bmRequestType.B = 0x82; - break; - - /* SET INTERFACE*/ - case URB_FUNCTION_SELECT_INTERFACE: - CtrlSetup->bRequest = USB_REQUEST_SET_INTERFACE; - CtrlSetup->wValue.W = Urb->UrbSelectInterface.Interface.AlternateSetting; - CtrlSetup->wIndex.W = Urb->UrbSelectInterface.Interface.InterfaceNumber; - CtrlSetup->wLength = 0; - CtrlSetup->bmRequestType.B = 0x01; - break; - - /* SYNC FRAME */ - case URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL: - DPRINT1("Not implemented\n"); - break; - default: - DPRINT1("Unknown USB Request!\n"); - break; - } -} - -/* Build a Bulk Transfer with a max transfer of 3 descriptors which each has 5 pointers to one page of memory, paged align of course */ -PQUEUE_HEAD -BuildBulkTransfer(PEHCI_HOST_CONTROLLER hcd, - ULONG DeviceAddress, - USBD_PIPE_HANDLE PipeHandle, - UCHAR PidDirection, - PMDL pMdl, - BOOLEAN FreeMdl) -{ - PQUEUE_HEAD QueueHead; - PQUEUE_TRANSFER_DESCRIPTOR Descriptor[3]; - ULONG MdlByteCount = MmGetMdlByteCount(pMdl); - ULONG NeededDescriptorCount = 1; - int i; - - QueueHead = CreateQueueHead(hcd); - QueueHead->EndPointCharacteristics.DeviceAddress = DeviceAddress; - - if (PipeHandle) - { - QueueHead->EndPointCharacteristics.EndPointNumber = ((PUSB_ENDPOINT_DESCRIPTOR)PipeHandle)->bEndpointAddress & 0x0F; - QueueHead->EndPointCharacteristics.MaximumPacketLength = ((PUSB_ENDPOINT_DESCRIPTOR)PipeHandle)->wMaxPacketSize; - } - - QueueHead->FreeMdl = FreeMdl; - QueueHead->Mdl = pMdl; - - /* FIXME: This is totally screwed */ - /* Calculate how many descriptors would be needed to transfer this buffer */ - if (pMdl) - { - if (MdlByteCount < (PAGE_SIZE * 5)) - NeededDescriptorCount = 1; - else if (MdlByteCount < (PAGE_SIZE * 10)) - NeededDescriptorCount = 2; - else if (MdlByteCount < (PAGE_SIZE * 15)) - NeededDescriptorCount = 3; - else - ASSERT(FALSE); - } - /* Limiter Transfers to PAGE_SIZE * 5 * 3, Three Descriptors */ - - QueueHead->NumberOfTransferDescriptors = NeededDescriptorCount; - for (i=0; i< NeededDescriptorCount;i++) - { - Descriptor[i] = CreateDescriptor(hcd, - PidDirection, - 0); - Descriptor[i]->AlternateNextPointer = QueueHead->DeadDescriptor->PhysicalAddr; - - if (i > 0) - { - Descriptor[i-1]->NextDescriptor = Descriptor[i]; - Descriptor[i]->PreviousDescriptor = Descriptor[i-1]; - Descriptor[i-1]->NextPointer = Descriptor[i]->PhysicalAddr; - } - } - - Descriptor[0]->Token.Bits.InterruptOnComplete = TRUE; - - /* Save the first descriptor in the QueueHead */ - QueueHead->FirstTransferDescriptor = Descriptor[0]; - QueueHead->NextPointer = Descriptor[0]->PhysicalAddr; - - return QueueHead; -} - - -/* Builds a QueueHead with 2 to 3 descriptors needed for control transfer - 2 descriptors used for and control request that doesnt return data, such as SetAddress */ -PQUEUE_HEAD -BuildControlTransfer(PEHCI_HOST_CONTROLLER hcd, - ULONG DeviceAddress, - USBD_PIPE_HANDLE PipeHandle, - PUSB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup, - PMDL pMdl, - BOOLEAN FreeMdl) -{ - PQUEUE_HEAD QueueHead; - PQUEUE_TRANSFER_DESCRIPTOR Descriptor[3]; - PUSB_DEFAULT_PIPE_SETUP_PACKET CtrlSetupVA, CtrlPhysicalPA; - - CtrlSetupVA = (PUSB_DEFAULT_PIPE_SETUP_PACKET)AllocateMemory(hcd, - sizeof(USB_DEFAULT_PIPE_SETUP_PACKET), - (ULONG*)&CtrlPhysicalPA); - - RtlCopyMemory(CtrlSetupVA, CtrlSetup, sizeof(USB_DEFAULT_PIPE_SETUP_PACKET)); - - QueueHead = CreateQueueHead(hcd); - QueueHead->EndPointCharacteristics.DeviceAddress = DeviceAddress; - if (PipeHandle) - QueueHead->EndPointCharacteristics.EndPointNumber = ((PUSB_ENDPOINT_DESCRIPTOR)PipeHandle)->bEndpointAddress & 0x0F; - - QueueHead->Token.Bits.DataToggle = TRUE; - QueueHead->FreeMdl = FreeMdl; - QueueHead->Mdl = pMdl; - - Descriptor[0] = CreateDescriptor(hcd, - PID_CODE_SETUP_TOKEN, - sizeof(USB_DEFAULT_PIPE_SETUP_PACKET)); - - Descriptor[0]->Token.Bits.DataToggle = FALSE; - /* Save the first descriptor */ - QueueHead->FirstTransferDescriptor = Descriptor[0]; - - if (pMdl) - { - Descriptor[1] = CreateDescriptor(hcd, - PID_CODE_IN_TOKEN, - MmGetMdlByteCount(pMdl)); - - Descriptor[2] = CreateDescriptor(hcd, - PID_CODE_OUT_TOKEN, - 0); - } - else - { - Descriptor[2] = CreateDescriptor(hcd, - PID_CODE_IN_TOKEN, - 0); - } - - Descriptor[2]->Token.Bits.InterruptOnComplete = TRUE; - - /* Link the descriptors */ - if (pMdl) - { - Descriptor[0]->NextDescriptor = Descriptor[1]; - Descriptor[1]->NextDescriptor = Descriptor[2]; - Descriptor[1]->PreviousDescriptor = Descriptor[0]; - Descriptor[2]->PreviousDescriptor = Descriptor[1]; - } - else - { - Descriptor[0]->NextDescriptor = Descriptor[2]; - Descriptor[2]->PreviousDescriptor = Descriptor[0]; - } - - /* Assign the descriptor buffers */ - Descriptor[0]->BufferPointer[0] = (ULONG)CtrlPhysicalPA; - Descriptor[0]->BufferPointerVA[0] = (ULONG)CtrlSetupVA; - - if (pMdl) - { - Descriptor[0]->NextPointer = Descriptor[1]->PhysicalAddr; - Descriptor[0]->AlternateNextPointer = Descriptor[2]->PhysicalAddr; - Descriptor[1]->NextPointer = Descriptor[2]->PhysicalAddr; - Descriptor[1]->AlternateNextPointer = Descriptor[2]->PhysicalAddr; - } - else - { - Descriptor[0]->NextPointer = Descriptor[2]->PhysicalAddr; - Descriptor[0]->AlternateNextPointer = Descriptor[2]->PhysicalAddr; - } - - QueueHead->NextPointer = Descriptor[0]->PhysicalAddr; - if (pMdl) - QueueHead->NumberOfTransferDescriptors = 3; - else - QueueHead->NumberOfTransferDescriptors = 2; - return QueueHead; -} - - -IO_ALLOCATION_ACTION NTAPI MapRegisterCallBack(PDEVICE_OBJECT DeviceObject, - PIRP Irp, - PVOID MapRegisterBase, - PVOID Context) -{ - PMAPREGISTERCALLBACKINFO CallBackInfo = (PMAPREGISTERCALLBACKINFO)Context; - - CallBackInfo->MapRegisterBase = MapRegisterBase; - - KeSetEvent(&CallBackInfo->Event, IO_NO_INCREMENT, FALSE); - return KeepObject; -} - - -NTSTATUS -ExecuteTransfer(PDEVICE_OBJECT DeviceObject, - PUSB_DEVICE UsbDevice, - USBD_PIPE_HANDLE PipeHandle, - PUSB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup, - ULONG TransferFlags, - PVOID TransferBufferOrMdl, - ULONG TransferBufferLength, - PIRP IrpToComplete) -{ - PUSB_ENDPOINT_DESCRIPTOR EndPointDesc = NULL; - PEHCI_HOST_CONTROLLER hcd; - PQUEUE_HEAD QueueHead; - PKEVENT CompleteEvent = NULL; - PMAPREGISTERCALLBACKINFO CallBackInfo; - LARGE_INTEGER TimeOut; - PMDL pMdl = NULL; - BOOLEAN FreeMdl = FALSE; - PVOID VirtualAddressOfMdl; - ULONG NumberOfMapRegisters; - KIRQL OldIrql; - NTSTATUS Status = STATUS_SUCCESS; - UCHAR EndPointType, PidDirection; - BOOLEAN IsReadOp = TRUE; - ULONG TransferBtyesOffset, CurrentTransferBytes; - PQUEUE_TRANSFER_DESCRIPTOR Descriptor; - PHYSICAL_ADDRESS PhysicalAddr; - int i,j; - - hcd = &((PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->hcd; - - /* If no Irp then we will need to wait on completion */ - if (IrpToComplete == NULL) - { - CompleteEvent = ExAllocatePool(NonPagedPool, sizeof(KEVENT)); - KeInitializeEvent(CompleteEvent, NotificationEvent, FALSE); - } - - CallBackInfo = ExAllocatePool(NonPagedPool, sizeof(MAPREGISTERCALLBACKINFO)); - CallBackInfo->MapRegisterBase = 0; - - KeInitializeEvent(&CallBackInfo->Event, NotificationEvent, FALSE); - - /* Determine EndPoint Type */ - if (!PipeHandle) - { - EndPointType = USB_ENDPOINT_TYPE_CONTROL; - } - else - { - EndPointDesc = (PUSB_ENDPOINT_DESCRIPTOR)PipeHandle; - EndPointType = EndPointDesc->bmAttributes & 0x0F; - } - - if (TransferBufferOrMdl) - { - /* Create MDL for Buffer */ - if (TransferBufferLength) - { - pMdl = IoAllocateMdl(TransferBufferOrMdl, - TransferBufferLength, - FALSE, - FALSE, - NULL); - /* UEHCI created the MDL so it needs to free it */ - FreeMdl = TRUE; - } - else - { - pMdl = TransferBufferOrMdl; - } - MmBuildMdlForNonPagedPool(pMdl); - } - - switch (EndPointType) - { - case USB_ENDPOINT_TYPE_CONTROL: - { - QueueHead = BuildControlTransfer(hcd, - UsbDevice->Address, - PipeHandle, - CtrlSetup, - pMdl, - FreeMdl); - IsReadOp = TRUE; - break; - } - case USB_ENDPOINT_TYPE_BULK: - { - PidDirection = EndPointDesc->bEndpointAddress >> 7; - if (PidDirection) - IsReadOp = FALSE; - - QueueHead = BuildBulkTransfer(hcd, - UsbDevice->Address, - PipeHandle, - PidDirection, - pMdl, - FreeMdl); - - break; - } - case USB_ENDPOINT_TYPE_INTERRUPT: - { - DPRINT1("Interrupt Endpoints not implemented yet!\n"); - break; - } - case USB_ENDPOINT_TYPE_ISOCHRONOUS: - { - DPRINT1("Isochronous Endpoints not implemented yet!\n"); - break; - } - default: - { - DPRINT1("Unknown Endpoint type!!\n"); - break; - } - } - - QueueHead->IrpToComplete = IrpToComplete; - QueueHead->Event = CompleteEvent; - - if (!pMdl) - { - ASSERT(QueueHead->NumberOfTransferDescriptors == 2); - LinkQueueHead(hcd, QueueHead); - if (IrpToComplete == NULL) - { - DPRINT1("Waiting For Completion %x!\n", CompleteEvent); - TimeOut.QuadPart = -10000000; - KeWaitForSingleObject(CompleteEvent, Suspended, KernelMode, FALSE, NULL);//&TimeOut); - DPRINT1("Request Completed\n"); - ExFreePool(CompleteEvent); - } - return Status; - } - //ASSERT(FALSE); - - KeFlushIoBuffers(pMdl, IsReadOp, TRUE); - NumberOfMapRegisters = 15; - - KeRaiseIrql(DISPATCH_LEVEL, &OldIrql); - hcd->pDmaAdapter->DmaOperations->AllocateAdapterChannel(hcd->pDmaAdapter, - ((PPDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->ControllerFdo, - NumberOfMapRegisters, - MapRegisterCallBack, - (PVOID)CallBackInfo); - KeLowerIrql(OldIrql); - DPRINT1("Waiting for AdapterChannel\n"); - KeWaitForSingleObject(&CallBackInfo->Event, Suspended, KernelMode, FALSE, NULL); - DPRINT1("Dma controller ready!\n"); - DPRINT1("Getting address for MDL %x\n", pMdl); - - VirtualAddressOfMdl = MmGetMdlVirtualAddress(pMdl); - - TransferBtyesOffset = 0; - while (TransferBtyesOffset < MmGetMdlByteCount(pMdl)) - { - CurrentTransferBytes = MmGetMdlByteCount(pMdl); - Descriptor = QueueHead->FirstTransferDescriptor; - if ((Descriptor->Token.Bits.PIDCode == PID_CODE_SETUP_TOKEN) && (QueueHead->NumberOfTransferDescriptors == 3)) - { - DPRINT1("QueueHead is for endpoint 0\n"); - DPRINT1("MapRegisterBase %x\n", CallBackInfo->MapRegisterBase); - DPRINT1("VirtualAddressOfMdl %x, TransferBytesOffset %x\n", VirtualAddressOfMdl, TransferBtyesOffset); - Descriptor = Descriptor->NextDescriptor; - PhysicalAddr = hcd->pDmaAdapter->DmaOperations->MapTransfer(hcd->pDmaAdapter, - pMdl, - CallBackInfo->MapRegisterBase, - (PVOID)((ULONG_PTR)VirtualAddressOfMdl + TransferBtyesOffset), - &CurrentTransferBytes, - !IsReadOp); - DPRINT1("BufferPointer[0] = %x\n", PhysicalAddr.LowPart); - Descriptor->BufferPointer[0] = PhysicalAddr.LowPart; - DPRINT1("CurrentTransferBytes %x\n", CurrentTransferBytes); - TransferBtyesOffset += CurrentTransferBytes; - LinkQueueHead(hcd, QueueHead); - break; - } - DPRINT1("PID_CODE_SETUP_TOKEN %x, PidDirection %x, NumDesc %x\n", PID_CODE_SETUP_TOKEN, PidDirection, QueueHead->NumberOfTransferDescriptors); - for (i=0; iNumberOfTransferDescriptors; i++) - { - if (Descriptor->Token.Bits.PIDCode != PID_CODE_SETUP_TOKEN) - { - for (j=0; j<5; j++) - { - PhysicalAddr = hcd->pDmaAdapter->DmaOperations->MapTransfer(hcd->pDmaAdapter, - pMdl, - CallBackInfo->MapRegisterBase, - (PVOID)((ULONG_PTR)VirtualAddressOfMdl + TransferBtyesOffset), - &CurrentTransferBytes, - !IsReadOp); - DPRINT1("BufferPointer[%d] = %x\n", j, PhysicalAddr.LowPart); - Descriptor->BufferPointer[j] = PhysicalAddr.LowPart; - TransferBtyesOffset += CurrentTransferBytes; - if (TransferBtyesOffset >= MmGetMdlByteCount(pMdl)) - break; - } - } - Descriptor = Descriptor->NextDescriptor; - } - LinkQueueHead(hcd, QueueHead); - break; - } - - if (TransferBtyesOffset < MmGetMdlByteCount(pMdl)) ASSERT(FALSE); - if (IrpToComplete == NULL) - { - DPRINT1("Waiting For Completion %x!\n", CompleteEvent); - TimeOut.QuadPart = -10000000; - KeWaitForSingleObject(CompleteEvent, Suspended, KernelMode, FALSE, NULL);//&TimeOut); - DPRINT1("Request Completed\n"); - ExFreePool(CompleteEvent); - } - - KeRaiseIrql(DISPATCH_LEVEL, &OldIrql); - hcd->pDmaAdapter->DmaOperations->FreeMapRegisters(hcd->pDmaAdapter, - CallBackInfo->MapRegisterBase, - NumberOfMapRegisters); - - hcd->pDmaAdapter->DmaOperations->FreeAdapterChannel (hcd->pDmaAdapter); - KeLowerIrql(OldIrql); - return Status; -} diff --git a/reactos/drivers/usb/usbehci/transfer.h b/reactos/drivers/usb/usbehci/transfer.h deleted file mode 100644 index a7d6f40d87b..00000000000 --- a/reactos/drivers/usb/usbehci/transfer.h +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -#include "hardware.h" -#include "hwiface.h" -#include "physmem.h" -#include "usbehci.h" -#include -#include - -PQUEUE_HEAD -BuildControlTransfer(PEHCI_HOST_CONTROLLER hcd, - ULONG DeviceAddress, - USBD_PIPE_HANDLE PipeHandle, - PUSB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup, - PMDL pMdl, - BOOLEAN FreeMdl); - -PQUEUE_HEAD -BuildBulkTransfer(PEHCI_HOST_CONTROLLER hcd, - ULONG DeviceAddress, - USBD_PIPE_HANDLE PipeHandle, - UCHAR PidDirection, - PMDL pMdl, - BOOLEAN FreeMdl); - -VOID -BuildSetupPacketFromURB(PEHCI_HOST_CONTROLLER hcd, - PURB Urb, - PUSB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup); - -NTSTATUS -ExecuteTransfer(PDEVICE_OBJECT DeviceObject, - PUSB_DEVICE UsbDevice, - USBD_PIPE_HANDLE PipeHandle, - PUSB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup, - ULONG TransferFlags, - PVOID TransferBufferOrMdl, - ULONG TransferBufferLength, - PIRP IrpToComplete); diff --git a/reactos/drivers/usb/usbehci/usbehci.c b/reactos/drivers/usb/usbehci/usbehci.c deleted file mode 100644 index d4e85be245a..00000000000 --- a/reactos/drivers/usb/usbehci/usbehci.c +++ /dev/null @@ -1,103 +0,0 @@ -/* - * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/usb/usbehci/usbehci.c - * PURPOSE: USB EHCI device driver. - * PROGRAMMERS: - * Michael Martin (michael.martin@reactos.org) - */ - -/* DEFINES *******************************************************************/ -#include "usbehci.h" - -NTSTATUS NTAPI -DispatchDeviceControl(PDEVICE_OBJECT DeviceObject, PIRP Irp) -{ - DPRINT("DispatchDeviceControl\n"); - Irp->IoStatus.Information = 0; - Irp->IoStatus.Status = STATUS_UNSUCCESSFUL; - - IoCompleteRequest(Irp, IO_NO_INCREMENT); - return STATUS_UNSUCCESSFUL; -} - -NTSTATUS NTAPI -DispatchInternalDeviceControl(PDEVICE_OBJECT DeviceObject, PIRP Irp) -{ - DPRINT("DispatchInternalDeviceControl\n"); - if (((PCOMMON_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsFdo) - { - return FdoDispatchInternalDeviceControl(DeviceObject, Irp); - } - else - return PdoDispatchInternalDeviceControl(DeviceObject, Irp); -} - -NTSTATUS NTAPI -UsbEhciCleanup(PDEVICE_OBJECT DeviceObject, PIRP Irp) -{ - DPRINT1("UsbEhciCleanup\n"); - Irp->IoStatus.Information = 0; - Irp->IoStatus.Status = STATUS_SUCCESS; - - IoCompleteRequest(Irp, IO_NO_INCREMENT); - return STATUS_SUCCESS; -} - -NTSTATUS NTAPI -UsbEhciCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp) -{ - DPRINT1("UsbEhciCreate\n"); - Irp->IoStatus.Information = 0; - Irp->IoStatus.Status = STATUS_SUCCESS; - - IoCompleteRequest(Irp, IO_NO_INCREMENT); - return STATUS_SUCCESS; -} - -NTSTATUS NTAPI -UsbEhciClose(PDEVICE_OBJECT DeviceObject, PIRP Irp) -{ - DPRINT1("Close\n"); - Irp->IoStatus.Information = 0; - Irp->IoStatus.Status = STATUS_SUCCESS; - - IoCompleteRequest(Irp, IO_NO_INCREMENT); - return STATUS_SUCCESS; -} - -VOID NTAPI -DriverUnload(PDRIVER_OBJECT DriverObject) -{ - DPRINT("Unloading Driver\n"); - /* FIXME: Clean up */ -} - -NTSTATUS NTAPI -DispatchPnp(PDEVICE_OBJECT DeviceObject, PIRP Irp) -{ - if (((PCOMMON_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsFdo) - return FdoDispatchPnp(DeviceObject, Irp); - else - return PdoDispatchPnp(DeviceObject, Irp); -} - -NTSTATUS NTAPI -DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) -{ - DPRINT1("Driver Entry %wZ!\n", RegistryPath); - - DriverObject->DriverExtension->AddDevice = AddDevice; - DriverObject->MajorFunction[IRP_MJ_CREATE] = UsbEhciCreate; - DriverObject->MajorFunction[IRP_MJ_CLOSE] = UsbEhciClose; - DriverObject->MajorFunction[IRP_MJ_CLEANUP] = UsbEhciCleanup; - DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DispatchDeviceControl; - DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = DispatchInternalDeviceControl; - DriverObject->MajorFunction[IRP_MJ_PNP] = DispatchPnp; - - DriverObject->DriverUnload = DriverUnload; - DPRINT1("Driver entry done\n"); - - return STATUS_SUCCESS; -} - diff --git a/reactos/drivers/usb/usbehci/usbiffn.c b/reactos/drivers/usb/usbehci/usbiffn.c deleted file mode 100644 index 1bc74d6878f..00000000000 --- a/reactos/drivers/usb/usbehci/usbiffn.c +++ /dev/null @@ -1,832 +0,0 @@ -/* - * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface - * LICENSE: GPL - See COPYING in the top level directory - * FILE: drivers/usb/usbehci/usbiffn.c - * PURPOSE: Direct Call Interface Functions. - * PROGRAMMERS: - * Michael Martin (michael.martin@reactos.org) - */ - -/* Many of these direct calls are documented on http://www.osronline.com */ - -#include "usbehci.h" -#include -#include -#include "hardware.h" -#include "transfer.h" - -PVOID InternalCreateUsbDevice(ULONG Port, PUSB_DEVICE Parent, BOOLEAN Hub) -{ - PUSB_DEVICE UsbDevicePointer = NULL; - - UsbDevicePointer = ExAllocatePoolWithTag(NonPagedPool, sizeof(USB_DEVICE), USB_POOL_TAG); - - if (!UsbDevicePointer) - { - DPRINT1("Out of memory\n"); - return NULL; - } - - RtlZeroMemory(UsbDevicePointer, sizeof(USB_DEVICE)); - - if ((Hub) && (!Parent)) - { - DPRINT1("This is the root hub\n"); - } - - UsbDevicePointer->Port = Port - 1; - UsbDevicePointer->ParentDevice = Parent; - - UsbDevicePointer->IsHub = Hub; - - return UsbDevicePointer; -} - -VOID -USB_BUSIFFN -InterfaceReference(PVOID BusContext) -{ - DPRINT1("Ehci: InterfaceReference called\n"); -} - -VOID -USB_BUSIFFN -InterfaceDereference(PVOID BusContext) -{ - DPRINT1("Ehci: InterfaceDereference called\n"); -} - -/* Bus Interface Hub V5 Functions */ - - -/* Hub Driver calls this routine for each new device it is informed about on USB Bus - osronline documents that this is where the device address is assigned. It also - states the same for InitializeUsbDevice. This function only gets the device descriptor - from the device and checks that the members for device are correct. */ - -NTSTATUS -USB_BUSIFFN -CreateUsbDevice(PVOID BusContext, - PUSB_DEVICE_HANDLE *NewDevice, - PUSB_DEVICE_HANDLE HubDeviceHandle, - USHORT PortStatus, USHORT PortNumber) -{ - PPDO_DEVICE_EXTENSION PdoDeviceExtension; - PFDO_DEVICE_EXTENSION FdoDeviceExtension; - USB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup; - PEHCI_HOST_CONTROLLER hcd; - PUSB_DEVICE UsbDevice; - LONG i; - - DPRINT1("Ehci: CreateUsbDevice: HubDeviceHandle %x, PortStatus %x, PortNumber %x\n", HubDeviceHandle, PortStatus, PortNumber); - - PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)((PDEVICE_OBJECT)BusContext)->DeviceExtension; - FdoDeviceExtension = (PFDO_DEVICE_EXTENSION)PdoDeviceExtension->ControllerFdo->DeviceExtension; - - hcd = &FdoDeviceExtension->hcd; - - if (PdoDeviceExtension->UsbDevices[0] != HubDeviceHandle) - { - DPRINT1("Not a valid HubDeviceHandle\n"); - return STATUS_DEVICE_NOT_CONNECTED; - } - - UsbDevice = NULL; - /* Add it to the list */ - for (i=0; i < MAX_USB_DEVICES; i++) - { - if (PdoDeviceExtension->UsbDevices[i] == NULL) - { - PdoDeviceExtension->UsbDevices[i] = InternalCreateUsbDevice(PortNumber, HubDeviceHandle, FALSE); - - if (!PdoDeviceExtension->UsbDevices[i]) - return STATUS_INSUFFICIENT_RESOURCES; - UsbDevice = PdoDeviceExtension->UsbDevices[i]; - break; - } - } - - /* Check that a device was created */ - if (!UsbDevice) - { - DPRINT1("Too many usb devices attached. Max is %d\n", MAX_USB_DEVICES); - return STATUS_UNSUCCESSFUL; - } - - hcd->Ports[PortNumber - 1].PortStatus = PortStatus; - - /* Get the device descriptor */ - CtrlSetup.bRequest = USB_REQUEST_GET_DESCRIPTOR; - CtrlSetup.wValue.LowByte = 0; - CtrlSetup.wValue.HiByte = USB_DEVICE_DESCRIPTOR_TYPE; - CtrlSetup.wIndex.W = 0; - CtrlSetup.wLength = sizeof(USB_DEVICE_DESCRIPTOR); - CtrlSetup.bmRequestType.B = 0x80; - ExecuteTransfer(FdoDeviceExtension->DeviceObject, - UsbDevice, - 0, - &CtrlSetup, - 0, - &UsbDevice->DeviceDescriptor, - sizeof(USB_DEVICE_DESCRIPTOR), - NULL); - - /* Check status and bLength and bDescriptor members */ - if ((UsbDevice->DeviceDescriptor.bLength != 0x12) || (UsbDevice->DeviceDescriptor.bDescriptorType != 0x1)) - { - return STATUS_DEVICE_DATA_ERROR; - } - - DumpDeviceDescriptor(&UsbDevice->DeviceDescriptor); - - /* Return it */ - *NewDevice = UsbDevice; - return STATUS_SUCCESS; -} - -/* Assigns the device an address, gets the configuration, interface, and endpoint descriptors - from the device. All this data is saved as part of this driver */ - -NTSTATUS -USB_BUSIFFN -InitializeUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle) -{ - PPDO_DEVICE_EXTENSION PdoDeviceExtension; - PFDO_DEVICE_EXTENSION FdoDeviceExtension; - USB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup; - USB_DEVICE_DESCRIPTOR DeviceDesc; - PUSB_CONFIGURATION_DESCRIPTOR ConfigDesc; - PUSB_INTERFACE_DESCRIPTOR InterfaceDesc; - PUSB_ENDPOINT_DESCRIPTOR EndpointDesc; - PUSB_DEVICE UsbDevice; - PVOID Buffer; - PUCHAR Ptr; - UCHAR NewAddress = 0; - - LONG i, j, k, InitAttept; - - PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)((PDEVICE_OBJECT)BusContext)->DeviceExtension; - FdoDeviceExtension = (PFDO_DEVICE_EXTENSION)PdoDeviceExtension->ControllerFdo->DeviceExtension; - - UsbDevice = DeviceHandleToUsbDevice(BusContext, DeviceHandle); - - if (!UsbDevice) - { - DPRINT1("Invalid DeviceHandle or device not connected\n"); - return STATUS_DEVICE_NOT_CONNECTED; - } - - for (i=0; i<127; i++) - { - if (UsbDevice == PdoDeviceExtension->UsbDevices[i]) - { - NewAddress = i; - break; - } - } - - ASSERT(NewAddress); - - /* Linux drivers make 3 attemps to set the device address because of problems with some devices. Do the same */ - InitAttept = 0; - while (InitAttept < 3) - { - /* Set the device address */ - CtrlSetup.bmRequestType.B = 0x00; - CtrlSetup.bRequest = USB_REQUEST_SET_ADDRESS; - CtrlSetup.wValue.W = NewAddress; - CtrlSetup.wIndex.W = 0; - CtrlSetup.wLength = 0; - - DPRINT1("Setting Address to %x\n", NewAddress); - ExecuteTransfer(PdoDeviceExtension->ControllerFdo, - UsbDevice, - 0, - &CtrlSetup, - 0, - NULL, - 0, - NULL); - - KeStallExecutionProcessor(300 * InitAttept); - - /* Send 0 length packet to endpoint 0 for ack */ -/* - ExecuteTransfer(PdoDeviceExtension->ControllerFdo, - UsbDevice, - 0, - NULL, - 0, - NULL, - 0, - NULL); -*/ - - CtrlSetup.bRequest = USB_REQUEST_GET_DESCRIPTOR; - CtrlSetup.wValue.LowByte = 0; - CtrlSetup.wValue.HiByte = USB_DEVICE_DESCRIPTOR_TYPE; - CtrlSetup.wIndex.W = 0; - CtrlSetup.wLength = sizeof(USB_DEVICE_DESCRIPTOR); - CtrlSetup.bmRequestType.B = 0x80; - - UsbDevice->Address = NewAddress; - ExecuteTransfer(FdoDeviceExtension->DeviceObject, - UsbDevice, - 0, - &CtrlSetup, - 0, - &DeviceDesc, - sizeof(USB_DEVICE_DESCRIPTOR), - NULL); - - DPRINT1("Length %d, DescriptorType %d\n", DeviceDesc.bLength, DeviceDesc.bDescriptorType); - if ((DeviceDesc.bLength == 0x12) && (DeviceDesc.bDescriptorType == 0x01)) - break; - - /* If the descriptor was not gotten */ - UsbDevice->Address = 0; - InitAttept++; - } - - if (InitAttept == 3) - { - DPRINT1("Unable to initialize usb device connected on port %d!\n", UsbDevice->Port); - /* FIXME: Should the memory allocated for this device be deleted? */ - return STATUS_DEVICE_DATA_ERROR; - } - DumpDeviceDescriptor(&DeviceDesc); - - if (UsbDevice->DeviceDescriptor.bNumConfigurations == 0) - { - DPRINT1("Device on port %d has no configurations!\n", UsbDevice->Port); - /* FIXME: Should the memory allocated for this device be deleted? */ - return STATUS_DEVICE_DATA_ERROR; - } - UsbDevice->Configs = ExAllocatePoolWithTag(NonPagedPool, - sizeof(PVOID) * UsbDevice->DeviceDescriptor.bNumConfigurations, - USB_POOL_TAG); - - if (!UsbDevice->Configs) - { - DPRINT1("Out of memory\n"); - /* FIXME: Should the memory allocated for this device be deleted? */ - return STATUS_NO_MEMORY; - } - - Buffer = ExAllocatePoolWithTag(NonPagedPool, PAGE_SIZE, USB_POOL_TAG); - - if (!Buffer) - { - DPRINT1("Out of memory\n"); - /* FIXME: Should the memory allocated for this device be deleted? */ - return STATUS_NO_MEMORY; - } - - Ptr = Buffer; - - for (i = 0; i < UsbDevice->DeviceDescriptor.bNumConfigurations; i++) - { - /* Get the Device Configuration Descriptor */ - CtrlSetup.bmRequestType._BM.Recipient = BMREQUEST_TO_DEVICE; - CtrlSetup.bmRequestType._BM.Type = BMREQUEST_STANDARD; - CtrlSetup.bmRequestType._BM.Reserved = 0; - CtrlSetup.bmRequestType._BM.Dir = BMREQUEST_DEVICE_TO_HOST; - CtrlSetup.bRequest = USB_REQUEST_GET_DESCRIPTOR; - CtrlSetup.wValue.LowByte = 0; - CtrlSetup.wValue.HiByte = USB_CONFIGURATION_DESCRIPTOR_TYPE; - CtrlSetup.wIndex.W = 0; - CtrlSetup.wLength = PAGE_SIZE; - ExecuteTransfer(PdoDeviceExtension->ControllerFdo, - UsbDevice, - 0, - &CtrlSetup, - 0, - Buffer, - PAGE_SIZE, - NULL); - - ConfigDesc = (PUSB_CONFIGURATION_DESCRIPTOR)Ptr; - - DumpFullConfigurationDescriptor(ConfigDesc); - ASSERT(ConfigDesc->wTotalLength <= PAGE_SIZE); - - UsbDevice->Configs[i] = ExAllocatePoolWithTag(NonPagedPool, - sizeof(USB_CONFIGURATION) + sizeof(PVOID) * ConfigDesc->bNumInterfaces, - USB_POOL_TAG); - UsbDevice->Configs[i]->Device = UsbDevice; - - RtlCopyMemory(&UsbDevice->Configs[0]->ConfigurationDescriptor, - ConfigDesc, sizeof(USB_CONFIGURATION_DESCRIPTOR)); - Ptr += ConfigDesc->bLength; - - for (j = 0; j < ConfigDesc->bNumInterfaces; j++) - { - InterfaceDesc = (PUSB_INTERFACE_DESCRIPTOR) Ptr; - UsbDevice->Configs[i]->Interfaces[j] = ExAllocatePoolWithTag(NonPagedPool, - sizeof(USB_INTERFACE) + sizeof(PVOID) * InterfaceDesc->bNumEndpoints, - USB_POOL_TAG); - RtlCopyMemory(&UsbDevice->Configs[i]->Interfaces[j]->InterfaceDescriptor, - InterfaceDesc, - sizeof(USB_INTERFACE_DESCRIPTOR)); - - Ptr += InterfaceDesc->bLength; - - for (k = 0; k < InterfaceDesc->bNumEndpoints; k++) - { - EndpointDesc = (PUSB_ENDPOINT_DESCRIPTOR)Ptr; - UsbDevice->Configs[i]->Interfaces[j]->EndPoints[k] = ExAllocatePoolWithTag(NonPagedPool, sizeof(USB_ENDPOINT), USB_POOL_TAG); - RtlCopyMemory(&UsbDevice->Configs[i]->Interfaces[j]->EndPoints[k]->EndPointDescriptor, - EndpointDesc, sizeof(USB_ENDPOINT_DESCRIPTOR)); - Ptr += sizeof(USB_ENDPOINT_DESCRIPTOR); - } - } - } - - UsbDevice->ActiveConfig = UsbDevice->Configs[0]; - UsbDevice->ActiveInterface = UsbDevice->Configs[0]->Interfaces[0]; - - UsbDevice->DeviceState = DEVICEINTIALIZED; - - return STATUS_SUCCESS; -} - -/* Return the descriptors that will fit. Descriptors were saved when the InitializeUsbDevice function was called */ -NTSTATUS -USB_BUSIFFN -GetUsbDescriptors(PVOID BusContext, - PUSB_DEVICE_HANDLE DeviceHandle, - PUCHAR DeviceDescriptorBuffer, - PULONG DeviceDescriptorBufferLength, - PUCHAR ConfigDescriptorBuffer, - PULONG ConfigDescriptorBufferLength) -{ - PUSB_DEVICE UsbDevice; - DPRINT1("Ehci: GetUsbDescriptor %x, %x, %x, %x\n", DeviceDescriptorBuffer, *DeviceDescriptorBufferLength, - ConfigDescriptorBuffer, *ConfigDescriptorBufferLength); - - UsbDevice = DeviceHandleToUsbDevice(BusContext, DeviceHandle); - - if (!UsbDevice) - { - DPRINT1("Invalid DeviceHandle or device not connected\n"); - return STATUS_DEVICE_NOT_CONNECTED; - } - - if ((DeviceDescriptorBuffer) && (DeviceDescriptorBufferLength)) - { - RtlCopyMemory(DeviceDescriptorBuffer, &UsbDevice->DeviceDescriptor, sizeof(USB_DEVICE_DESCRIPTOR)); - *DeviceDescriptorBufferLength = sizeof(USB_DEVICE_DESCRIPTOR); - } - - if ((ConfigDescriptorBuffer) && (ConfigDescriptorBufferLength)) - { - RtlCopyMemory(ConfigDescriptorBuffer, &UsbDevice->ActiveConfig->ConfigurationDescriptor, sizeof(USB_CONFIGURATION_DESCRIPTOR)); - *ConfigDescriptorBufferLength = sizeof(USB_CONFIGURATION_DESCRIPTOR); - } - - return STATUS_SUCCESS; -} - -/* Documented http://www.osronline.com/ddkx/buses/usbinterkr_1m7m.htm */ -NTSTATUS -USB_BUSIFFN -RemoveUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle, ULONG Flags) -{ - PPDO_DEVICE_EXTENSION PdoDeviceExtension; - PUSB_DEVICE UsbDevice; - LONG i, j, k; - - DPRINT1("RemoveUsbDevice called, DeviceHandle %x, Flags %x\n", DeviceHandle, Flags); - - PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)((PDEVICE_OBJECT)BusContext)->DeviceExtension; - - UsbDevice = DeviceHandleToUsbDevice(BusContext, DeviceHandle); - - if (!UsbDevice) - { - DPRINT1("Invalid DeviceHandle or device not connected\n"); - return STATUS_DEVICE_NOT_CONNECTED; - } - - switch (Flags) - { - case 0: - DPRINT1("Number of Configurations %d\n", UsbDevice->DeviceDescriptor.bNumConfigurations); - for (i = 0; i < UsbDevice->DeviceDescriptor.bNumConfigurations; i++) - { - for (j = 0; j < UsbDevice->Configs[i]->ConfigurationDescriptor.bNumInterfaces; j++) - { - for (k = 0; k < UsbDevice->Configs[i]->Interfaces[j]->InterfaceDescriptor.bNumEndpoints; k++) - { - ExFreePool(UsbDevice->Configs[i]->Interfaces[j]->EndPoints[k]); - } - ExFreePool(UsbDevice->Configs[i]->Interfaces[j]); - } - ExFreePool(UsbDevice->Configs[i]); - } - - for (i = 0; i < 127; i++) - { - if (PdoDeviceExtension->UsbDevices[i] == UsbDevice) - PdoDeviceExtension->UsbDevices[i] = NULL; - } - - ExFreePool(UsbDevice); - break; - case USBD_MARK_DEVICE_BUSY: - UsbDevice->DeviceState |= DEVICEBUSY; - /* Fall through */ - case USBD_KEEP_DEVICE_DATA: - UsbDevice->DeviceState |= DEVICEREMOVED; - break; - default: - DPRINT1("Unknown Remove Flags %x\n", Flags); - } - return STATUS_SUCCESS; -} - -/* Documented at http://www.osronline.com/ddkx/buses/usbinterkr_01te.htm */ -NTSTATUS -USB_BUSIFFN -RestoreUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE OldDeviceHandle, PUSB_DEVICE_HANDLE NewDeviceHandle) -{ - PUSB_DEVICE OldUsbDevice; - PUSB_DEVICE NewUsbDevice; - PUSB_CONFIGURATION ConfigToDelete; - int i; - - DPRINT1("Ehci: RestoreUsbDevice %x, %x, %x\n", BusContext, OldDeviceHandle, NewDeviceHandle); -ASSERT(FALSE); - OldUsbDevice = DeviceHandleToUsbDevice(BusContext, OldDeviceHandle); - NewUsbDevice = DeviceHandleToUsbDevice(BusContext, NewDeviceHandle); - - if (!OldUsbDevice) - { - DPRINT1("OldDeviceHandle is invalid\n"); - return STATUS_DEVICE_NOT_CONNECTED; - } - - if (!(OldUsbDevice->DeviceState & DEVICEREMOVED)) - { - DPRINT1("UsbDevice is not marked as Removed!\n"); - return STATUS_UNSUCCESSFUL; - } - - if (!NewUsbDevice) - { - DPRINT1("NewDeviceHandle is invalid\n"); - return STATUS_DEVICE_NOT_CONNECTED; - } - - if ((OldUsbDevice->DeviceDescriptor.idVendor == NewUsbDevice->DeviceDescriptor.idVendor) && - (OldUsbDevice->DeviceDescriptor.idProduct == NewUsbDevice->DeviceDescriptor.idProduct)) - { - NewUsbDevice->DeviceState &= ~DEVICEBUSY; - NewUsbDevice->DeviceState &= ~DEVICEREMOVED; - - NewUsbDevice->ActiveConfig = OldUsbDevice->ActiveConfig; - NewUsbDevice->ActiveInterface = OldUsbDevice->ActiveInterface; - - for (i = 0; i < NewUsbDevice->DeviceDescriptor.bNumConfigurations; i++) - { - ConfigToDelete = NewUsbDevice->Configs[i]; - ASSERT(OldUsbDevice->Configs[i]); - NewUsbDevice->Configs[i] = OldUsbDevice->Configs[i]; - OldUsbDevice->Configs[i] = ConfigToDelete; - } - - RemoveUsbDevice(BusContext, OldDeviceHandle, 0); - return STATUS_SUCCESS; - } - else - { - DPRINT1("VendorId or ProductId did not match!\n"); - return STATUS_DEVICE_NOT_CONNECTED; - } -} - -/* FIXME: Research this */ -NTSTATUS -USB_BUSIFFN -GetPortHackFlags(PVOID BusContext, PULONG Flags) -{ - DPRINT1("Ehci: GetPortHackFlags not implemented. %x, %x\n", BusContext, Flags); - return STATUS_NOT_SUPPORTED; -} - -NTSTATUS -USB_BUSIFFN -QueryDeviceInformation(PVOID BusContext, - PUSB_DEVICE_HANDLE DeviceHandle, - PVOID DeviceInformationBuffer, - ULONG DeviceInformationBufferLength, - PULONG LengthReturned) -{ - PUSB_DEVICE_INFORMATION_0 DeviceInfo = DeviceInformationBuffer; - PUSB_DEVICE UsbDevice; - ULONG SizeNeeded; - LONG i; - - DPRINT1("Ehci: QueryDeviceInformation (%x, %x, %x, %d, %x\n", BusContext, DeviceHandle, DeviceInformationBuffer, - DeviceInformationBufferLength, LengthReturned); - - UsbDevice = DeviceHandleToUsbDevice(BusContext, DeviceHandle); - - if (!UsbDevice) - { - DPRINT1("Invalid DeviceHandle or device not connected\n"); - return STATUS_DEVICE_NOT_CONNECTED; - } - - SizeNeeded = FIELD_OFFSET(USB_DEVICE_INFORMATION_0, PipeList[UsbDevice->ActiveInterface->InterfaceDescriptor.bNumEndpoints]); - *LengthReturned = SizeNeeded; - - DeviceInfo->ActualLength = SizeNeeded; - - if (DeviceInformationBufferLength < SizeNeeded) - { - DPRINT1("Buffer to small\n"); - return STATUS_BUFFER_TOO_SMALL; - } - - if (DeviceInfo->InformationLevel != 0) - { - DPRINT1("Invalid Param\n"); - return STATUS_INVALID_PARAMETER; - } - - DeviceInfo->HubAddress = 0; - DeviceInfo->DeviceAddress = UsbDevice->Address; - DeviceInfo->DeviceSpeed = UsbDevice->DeviceSpeed; - DeviceInfo->DeviceType = UsbDevice->DeviceType; - - if (!UsbDevice->DeviceState) - { - DeviceInfo->CurrentConfigurationValue = 0; - DeviceInfo->NumberOfOpenPipes = 0; - DeviceInfo->PortNumber = 0; - } - else - { - DeviceInfo->CurrentConfigurationValue = UsbDevice->ActiveConfig->ConfigurationDescriptor.bConfigurationValue; - /* FIXME: Use correct number of open pipes instead of all available */ - DeviceInfo->NumberOfOpenPipes = UsbDevice->ActiveInterface->InterfaceDescriptor.bNumEndpoints; - DeviceInfo->PortNumber = UsbDevice->Port; - } - - RtlCopyMemory(&DeviceInfo->DeviceDescriptor, &UsbDevice->DeviceDescriptor, sizeof(USB_DEVICE_DESCRIPTOR)); - - for (i = 0; i < UsbDevice->ActiveInterface->InterfaceDescriptor.bNumEndpoints; i++) - { - RtlCopyMemory(&DeviceInfo->PipeList[i].EndpointDescriptor, - &UsbDevice->ActiveInterface->EndPoints[i]->EndPointDescriptor, - sizeof(USB_ENDPOINT_DESCRIPTOR)); - } - return STATUS_SUCCESS; -} - -NTSTATUS -USB_BUSIFFN -GetControllerInformation(PVOID BusContext, - PVOID ControllerInformationBuffer, - ULONG ControllerInformationBufferLength, - PULONG LengthReturned) -{ - PUSB_CONTROLLER_INFORMATION_0 ControllerInfo; - - DPRINT1("Ehci: GetControllerInformation called\n"); - - if (!LengthReturned) - return STATUS_INVALID_PARAMETER; - - ControllerInfo = ControllerInformationBuffer; - - if (ControllerInformationBufferLength < sizeof(USB_CONTROLLER_INFORMATION_0)) - { - DPRINT1("Buffer to small\n"); - return STATUS_BUFFER_TOO_SMALL; - } - - if (ControllerInfo->InformationLevel != 0) - { - DPRINT1("InformationLevel other than 0 not supported\n"); - return STATUS_NOT_SUPPORTED; - } - - ControllerInfo->ActualLength = sizeof(USB_CONTROLLER_INFORMATION_0); - ControllerInfo->SelectiveSuspendEnabled = FALSE; - ControllerInfo->IsHighSpeedController = TRUE; - - *LengthReturned = ControllerInfo->ActualLength; - - return STATUS_SUCCESS; -} - -NTSTATUS -USB_BUSIFFN -ControllerSelectiveSuspend(PVOID BusContext, BOOLEAN Enable) -{ - DPRINT1("Ehci: ControllerSelectiveSuspend not implemented\n"); - return STATUS_NOT_SUPPORTED; -} - -NTSTATUS -USB_BUSIFFN -GetExtendedHubInformation(PVOID BusContext, - PDEVICE_OBJECT HubPhysicalDeviceObject, - PVOID HubInformationBuffer, - ULONG HubInformationBufferLength, - PULONG LengthReturned) -{ - - PUSB_EXTHUB_INFORMATION_0 UsbExtHubInfo = HubInformationBuffer; - PPDO_DEVICE_EXTENSION PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)((PDEVICE_OBJECT)BusContext)->DeviceExtension; - PFDO_DEVICE_EXTENSION FdoDeviceExntension = (PFDO_DEVICE_EXTENSION)PdoDeviceExtension->ControllerFdo->DeviceExtension; - LONG i; - DPRINT1("Ehci: GetExtendedHubInformation BusContext %x, PDO %x, InformationBuffer %x\n", - BusContext, HubPhysicalDeviceObject, HubInformationBuffer); - - /* Set the default return value */ - *LengthReturned = 0; - - DPRINT("InformationLevel %x\n", UsbExtHubInfo->InformationLevel); - - /* Caller is suppose to have set InformationLevel to 0. However usbehci from MS seems to ignore this */ - if (UsbExtHubInfo->InformationLevel != 0) - { - DPRINT1("InformationLevel should really be set to 0. Ignoring\n"); - } - - UsbExtHubInfo->NumberOfPorts = FdoDeviceExntension->hcd.ECHICaps.HCSParams.PortCount; - - for (i=0; i < UsbExtHubInfo->NumberOfPorts; i++) - { - UsbExtHubInfo->Port[i].PhysicalPortNumber = i + 1; - UsbExtHubInfo->Port[i].PortLabelNumber = i + 1; - UsbExtHubInfo->Port[i].VidOverride = 0; - UsbExtHubInfo->Port[i].PidOverride = 0; - UsbExtHubInfo->Port[i].PortAttributes = USB_PORTATTR_SHARED_USB2;// | USB_PORTATTR_OWNED_BY_CC; - } - - *LengthReturned = FIELD_OFFSET(USB_EXTHUB_INFORMATION_0, Port[8]); - - return STATUS_SUCCESS; -} - -NTSTATUS -USB_BUSIFFN -GetRootHubSymbolicName(PVOID BusContext, - PVOID HubSymNameBuffer, - ULONG HubSymNameBufferLength, - PULONG HubSymNameActualLength) -{ - DPRINT1("Ehci: GetRootHubSymbolicName called\n"); - - if (HubSymNameBufferLength < 16) - return STATUS_UNSUCCESSFUL; - RtlCopyMemory(HubSymNameBuffer, L"ROOT_HUB", HubSymNameBufferLength); - *HubSymNameActualLength = 16; - - return STATUS_SUCCESS; -} - -PVOID -USB_BUSIFFN -GetDeviceBusContext(PVOID HubBusContext, PVOID DeviceHandle) -{ - PUSB_DEVICE UsbDevice; - - DPRINT1("Ehci: GetDeviceBusContext called\n"); - UsbDevice = DeviceHandleToUsbDevice(HubBusContext, DeviceHandle); - - if (!UsbDevice) - { - DPRINT1("Invalid DeviceHandle or device not connected\n"); - return NULL; - } - - return NULL; -} - -NTSTATUS -USB_BUSIFFN -Initialize20Hub(PVOID BusContext, PUSB_DEVICE_HANDLE HubDeviceHandle, ULONG TtCount) -{ - DPRINT1("Ehci: Initialize20Hub called, HubDeviceHandle: %x, TtCount %x\n", HubDeviceHandle, TtCount); - /* FIXME: */ - /* Create the Irp Queue for SCE */ - /* Should queue be created for each device or each enpoint??? */ - return STATUS_SUCCESS; -} - -NTSTATUS -USB_BUSIFFN -RootHubInitNotification(PVOID BusContext, PVOID CallbackContext, PRH_INIT_CALLBACK CallbackRoutine) -{ - PPDO_DEVICE_EXTENSION PdoDeviceExtension; - DPRINT1("Ehci: RootHubInitNotification %x, %x, %x\n", BusContext, CallbackContext, CallbackRoutine); - - PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)((PDEVICE_OBJECT)BusContext)->DeviceExtension; - PdoDeviceExtension->CallbackContext = CallbackContext; - PdoDeviceExtension->CallbackRoutine = CallbackRoutine; - if (PdoDeviceExtension->CallbackRoutine) - { - DPRINT1("Called Callbackrountine\n"); - PdoDeviceExtension->CallbackRoutine(PdoDeviceExtension->CallbackContext); - DPRINT1("Done Callbackrountine\n"); - } - else - { - DPRINT1("PdoDeviceExtension->CallbackRoutine is NULL!\n"); - } - - return STATUS_SUCCESS; -} - -VOID -USB_BUSIFFN -FlushTransfers(PVOID BusContext, PVOID DeviceHandle) -{ - PUSB_DEVICE UsbDevice; - UsbDevice = DeviceHandleToUsbDevice(BusContext, DeviceHandle); - - if (!UsbDevice) - { - DPRINT1("Invalid DeviceHandle or device not connected\n"); - } - - DPRINT1("FlushTransfers not implemented.\n"); -} - -VOID -USB_BUSIFFN -SetDeviceHandleData(PVOID BusContext, PVOID DeviceHandle, PDEVICE_OBJECT UsbDevicePdo) -{ - PUSB_DEVICE UsbDevice; - - DPRINT1("Ehci: SetDeviceHandleData %x, %x, %x\n", BusContext, DeviceHandle, UsbDevicePdo); - UsbDevice = DeviceHandleToUsbDevice(BusContext, DeviceHandle); - if (!UsbDevice) - { - DPRINT1("Invalid DeviceHandle or device not connected\n"); - return; - } - - UsbDevice->UsbDevicePdo = UsbDevicePdo; -} - - -/* USB_BUS_INTERFACE_USBDI_V2 Functions */ - -VOID -USB_BUSIFFN -GetUSBDIVersion(PVOID BusContext, PUSBD_VERSION_INFORMATION VersionInformation, PULONG HcdCapabilites) -{ - DPRINT1("Ehci: GetUSBDIVersion called\n"); - return; -} - -NTSTATUS -USB_BUSIFFN -QueryBusTime(PVOID BusContext, PULONG CurrentFrame) -{ - DPRINT1("Ehci: QueryBusTime called\n"); - return STATUS_NOT_SUPPORTED; -} - -NTSTATUS -USB_BUSIFFN -SubmitIsoOutUrb(PVOID BusContext, PURB Urb) -{ - DPRINT1("Ehci: SubmitIsoOutUrb called\n"); - return STATUS_NOT_SUPPORTED; -} - -NTSTATUS -USB_BUSIFFN -QueryBusInformation(PVOID BusContext, - ULONG Level, - PVOID BusInformationBuffer, - PULONG BusInformationBufferLength, - PULONG BusInformationActualLength) -{ - DPRINT1("Ehci: QueryBusInformation called\n"); - return STATUS_NOT_SUPPORTED; -} - -BOOLEAN -USB_BUSIFFN -IsDeviceHighSpeed(PVOID BusContext) -{ - DPRINT1("Ehci: IsDeviceHighSpeed called\n"); - return TRUE; -} - -NTSTATUS -USB_BUSIFFN -EnumLogEntry(PVOID BusContext, ULONG DriverTag, ULONG EnumTag, ULONG P1, ULONG P2) -{ - DPRINT1("Ehci: EnumLogEntry called %x, %x, %x, %x\n", DriverTag, EnumTag, P1, P2); - - return STATUS_SUCCESS; -} diff --git a/reactos/drivers/usb/usbehci/usbiffn.h b/reactos/drivers/usb/usbehci/usbiffn.h deleted file mode 100644 index eff48f0eac7..00000000000 --- a/reactos/drivers/usb/usbehci/usbiffn.h +++ /dev/null @@ -1,131 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -PVOID -InternalCreateUsbDevice(UCHAR DeviceNumber, ULONG Port, PUSB_DEVICE Parent, BOOLEAN Hub); - -VOID -USB_BUSIFFN -InterfaceReference(PVOID BusContext); - -VOID -USB_BUSIFFN -InterfaceDereference(PVOID BusContext); - -NTSTATUS -USB_BUSIFFN -CreateUsbDevice(PVOID BusContext, - PUSB_DEVICE_HANDLE *NewDevice, - PUSB_DEVICE_HANDLE HubDeviceHandle, - USHORT PortStatus, USHORT PortNumber); - -NTSTATUS -USB_BUSIFFN -InitializeUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle); - -NTSTATUS -USB_BUSIFFN -GetUsbDescriptors(PVOID BusContext, - PUSB_DEVICE_HANDLE DeviceHandle, - PUCHAR DeviceDescriptorBuffer, - PULONG DeviceDescriptorBufferLength, - PUCHAR ConfigDescriptorBuffer, - PULONG ConfigDescriptorBufferLength); - -NTSTATUS -USB_BUSIFFN -RemoveUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle, ULONG Flags); - -NTSTATUS -USB_BUSIFFN -RestoreUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE OldDeviceHandle, PUSB_DEVICE_HANDLE NewDeviceHandle); - -NTSTATUS -USB_BUSIFFN -GetPortHackFlags(PVOID BusContext, PULONG Flags); - -NTSTATUS -USB_BUSIFFN -QueryDeviceInformation(PVOID BusContext, - PUSB_DEVICE_HANDLE DeviceHandle, - PVOID DeviceInformationBuffer, - ULONG DeviceInformationBufferLength, - PULONG LengthReturned); - -NTSTATUS -USB_BUSIFFN -GetControllerInformation(PVOID BusContext, - PVOID ControllerInformationBuffer, - ULONG ControllerInformationBufferLength, - PULONG LengthReturned); - -NTSTATUS -USB_BUSIFFN -ControllerSelectiveSuspend(PVOID BusContext, BOOLEAN Enable); - -NTSTATUS -USB_BUSIFFN -GetExtendedHubInformation(PVOID BusContext, - PDEVICE_OBJECT HubPhysicalDeviceObject, - PVOID HubInformationBuffer, - ULONG HubInformationBufferLength, - PULONG LengthReturned); - -NTSTATUS -USB_BUSIFFN -GetRootHubSymbolicName(PVOID BusContext, - PVOID HubSymNameBuffer, - ULONG HubSymNameBufferLength, - PULONG HubSymNameActualLength); - -PVOID -USB_BUSIFFN -GetDeviceBusContext(PVOID HubBusContext, PVOID DeviceHandle); - -NTSTATUS -USB_BUSIFFN -Initialize20Hub(PVOID BusContext, PUSB_DEVICE_HANDLE HubDeviceHandle, ULONG TtCount); - -NTSTATUS -USB_BUSIFFN -RootHubInitNotification(PVOID BusContext, PVOID CallbackContext, PRH_INIT_CALLBACK CallbackRoutine); - -VOID -USB_BUSIFFN -FlushTransfers(PVOID BusContext, PVOID DeviceHandle); - -VOID -USB_BUSIFFN -SetDeviceHandleData(PVOID BusContext, PVOID DeviceHandle, PDEVICE_OBJECT UsbDevicePdo); - -VOID -USB_BUSIFFN -GetUSBDIVersion(PVOID BusContext, PUSBD_VERSION_INFORMATION VersionInformation, PULONG HcdCapabilites); - -NTSTATUS -USB_BUSIFFN -QueryBusTime(PVOID BusContext, PULONG CurrentFrame); - -NTSTATUS -USB_BUSIFFN -SubmitIsoOutUrb(PVOID BusContext, PURB Urb); - -NTSTATUS -USB_BUSIFFN -QueryBusInformation(PVOID BusContext, - ULONG Level, - PVOID BusInformationBuffer, - PULONG BusInformationBufferLength, - PULONG BusInformationActualLength); - -BOOLEAN -USB_BUSIFFN -IsDeviceHighSpeed(PVOID BusCOntext); - -NTSTATUS -USB_BUSIFFN -EnumLogEntry(PVOID BusContext, ULONG DriverTag, ULONG EnumTag, ULONG P1, ULONG P2); diff --git a/reactos/drivers/usb/usbhub/createclose.c b/reactos/drivers/usb/usbhub/createclose.c deleted file mode 100644 index e00c8be89a4..00000000000 --- a/reactos/drivers/usb/usbhub/createclose.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: USB hub driver - * FILE: drivers/usb/cromwell/usbhub/createclose.c - * PURPOSE: IRP_MJ_CREATE and IRP_MJ_CLOSE operations - * - * PROGRAMMERS: Hervé Poussineau (hpoussin@reactos.com) - */ - -#define NDEBUG -#include "usbhub.h" - -NTSTATUS NTAPI -UsbhubCreate( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - DPRINT("Usbhub: IRP_MJ_CREATE\n"); - - Irp->IoStatus.Status = STATUS_SUCCESS; - Irp->IoStatus.Information = 0; - IoCompleteRequest(Irp, IO_NO_INCREMENT); - return STATUS_SUCCESS; -} - -NTSTATUS NTAPI -UsbhubClose( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - DPRINT("Usbhub: IRP_MJ_CLOSE\n"); - - Irp->IoStatus.Status = STATUS_SUCCESS; - Irp->IoStatus.Information = 0; - IoCompleteRequest(Irp, IO_NO_INCREMENT); - return STATUS_SUCCESS; -} - -NTSTATUS NTAPI -UsbhubCleanup( - IN PDEVICE_OBJECT DeviceObject, - IN PIRP Irp) -{ - DPRINT("Usbhub: IRP_MJ_CLEANUP\n"); - - Irp->IoStatus.Status = STATUS_SUCCESS; - Irp->IoStatus.Information = 0; - IoCompleteRequest(Irp, IO_NO_INCREMENT); - return STATUS_SUCCESS; -} diff --git a/reactos/drivers/wdm/audio/backpln/adapters/dmusic/.gitignore b/reactos/drivers/wdm/audio/backpln/adapters/dmusic/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/drivers/wdm/audio/backpln/portcls/portcls.rc b/reactos/drivers/wdm/audio/backpln/portcls/portcls.rc deleted file mode 100644 index 03edd6d1341..00000000000 --- a/reactos/drivers/wdm/audio/backpln/portcls/portcls.rc +++ /dev/null @@ -1,5 +0,0 @@ -#define REACTOS_VERSION_DLL -#define REACTOS_STR_FILE_DESCRIPTION "PORTCLS Port Class Driver API\0" -#define REACTOS_STR_INTERNAL_NAME "portcls\0" -#define REACTOS_STR_ORIGINAL_FILENAME "portcls.sys\0" -#include diff --git a/reactos/drivers/wdm/audio/filters/kmixer/.gitignore b/reactos/drivers/wdm/audio/filters/kmixer/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/drivers/wdm/audio/filters/splitter/.gitignore b/reactos/drivers/wdm/audio/filters/splitter/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/drivers/wdm/audio/filters/swmidi/.gitignore b/reactos/drivers/wdm/audio/filters/swmidi/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/drivers/wdm/audio/sysaudio/.gitignore b/reactos/drivers/wdm/audio/sysaudio/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/include/dxsdk/DShowIDL/.gitignore b/reactos/include/dxsdk/DShowIDL/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/include/reactos/elf/elf/.gitignore b/reactos/include/reactos/elf/elf/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/include/reactos/winsock/.gitignore b/reactos/include/reactos/winsock/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/lib/3rdparty/.gitignore b/reactos/lib/3rdparty/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/lib/dnslib/.gitignore b/reactos/lib/dnslib/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/ntoskrnl/mm/ARM3/.gitignore b/reactos/ntoskrnl/mm/ARM3/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/ntoskrnl/mm/ARM3/arm/.gitignore b/reactos/ntoskrnl/mm/ARM3/arm/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/ntoskrnl/mm/ARM3/i386/.gitignore b/reactos/ntoskrnl/mm/ARM3/i386/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/subsystems/.gitignore b/reactos/subsystems/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/subsystems/win32/.gitignore b/reactos/subsystems/win32/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/tools/CMakeLists.txt b/reactos/tools/CMakeLists.txt deleted file mode 100644 index 84f5f48c4b4..00000000000 --- a/reactos/tools/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ - -#add_executable(pefixup pefixup.c) - -if(MSVC) - add_definitions(-D_CRT_SECURE_NO_WARNINGS) -endif() - -add_executable(bin2c bin2c.c) - -add_subdirectory(cabman) -add_subdirectory(cdmake) -add_subdirectory(gendib) -add_subdirectory(geninc) -add_subdirectory(mkhive) -add_subdirectory(obj2bin) -add_subdirectory(spec2def) -add_subdirectory(unicode) -add_subdirectory(mkshelllink) -add_subdirectory(widl) -add_subdirectory(wpp) -if(NOT MSVC) - add_subdirectory(rsym) -endif() diff --git a/reactos/tools/bin2c.c b/reactos/tools/bin2c.c deleted file mode 100644 index 61b78ef5271..00000000000 --- a/reactos/tools/bin2c.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS bin2c - * FILE: tools/bin2c/bin2c.c - * PURPOSE: Converts a binary file into a byte array - * PROGRAMMER: Hermès Bélusca - Maïto - */ - -#include - -int main(int argc, char *argv[]) -{ - FILE* inFile; - FILE* outCFile; - FILE* outHFile; - unsigned char ch; - unsigned char cnt; - - /* - * Validate the arguments. - */ - if (argc < 5) - { - printf("Usage: bin2c infile.bin outfile.c outfile.h array_name [array_attribute [header_for_attribute]]\n"); - return -1; - } - - /* - * Open the input and the output files. - */ - inFile = fopen(argv[1], "rb"); - if (!inFile) - { - printf("ERROR: Couldn't open data file '%s'.\n", argv[1]); - return -1; - } - outCFile = fopen(argv[2], "w"); - if (!outCFile) - { - fclose(inFile); - printf("ERROR: Couldn't create output source file '%s'.\n", argv[2]); - return -1; - } - outHFile = fopen(argv[3], "w"); - if (!outHFile) - { - fclose(outCFile); - fclose(inFile); - printf("ERROR: Couldn't create output header file '%s'.\n", argv[3]); - return -1; - } - - /* - * Generate the header file and close it. - */ - fprintf(outHFile, "/* This file is autogenerated, do not edit. */\n\n"); - fprintf(outHFile, "#ifndef CHAR\n" - "#define CHAR char\n" - "#endif\n\n"); - fprintf(outHFile, "extern CHAR %s[];\n", argv[4]); - fclose(outHFile); - - /* - * Generate the source file and close it. - */ - fprintf(outCFile, "/* This file is autogenerated, do not edit. */\n\n"); - if (argc >= 7) - { - /* There is a header to be included for defining the array attribute. */ - fprintf(outCFile, "#include \"%s\"\n", argv[6]); - } - fprintf(outCFile, "#include \"%s\"\n\n", argv[3]); - - /* Generate the array. */ - if (argc >= 6) - { - /* There is an array attribute. */ - fprintf(outCFile, "%s ", argv[5]); - } - fprintf(outCFile, "CHAR %s[] =\n{", argv[4]); - - cnt = 0; - ch = fgetc(inFile); - while (!feof(inFile)) - { - if ((cnt % 16) == 0) - { - fprintf(outCFile, "\n "); - cnt = 0; - } - fprintf(outCFile, " 0x%02x,", (unsigned int)ch); - ++cnt; - ch = fgetc(inFile); - } - /* Put a final NULL terminator. */ - fprintf(outCFile, "\n 0x00"); - fprintf(outCFile, "\n};\n"); - fclose(outCFile); - - /* Close the input file. */ - fclose(inFile); - - return 0; -} - -/* EOF */ diff --git a/reactos/tools/cabman/CMakeLists.txt b/reactos/tools/cabman/CMakeLists.txt deleted file mode 100644 index b31e4bcb893..00000000000 --- a/reactos/tools/cabman/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -list(APPEND SOURCE - cabinet.cxx - dfp.cxx - main.cxx - mszip.cxx - raw.cxx) - -include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs/zlib) - -add_executable(cabman ${SOURCE}) - -target_link_libraries(cabman zlibhost) \ No newline at end of file diff --git a/reactos/tools/cabman/cabinet.cxx b/reactos/tools/cabman/cabinet.cxx deleted file mode 100644 index fe0bd4d503d..00000000000 --- a/reactos/tools/cabman/cabinet.cxx +++ /dev/null @@ -1,3762 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS cabinet manager - * FILE: tools/cabman/cabinet.cpp - * PURPOSE: Cabinet routines - * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net) - * Colin Finck - * NOTES: Define CAB_READ_ONLY for read only version - * REVISIONS: - * CSH 21/03-2001 Created - * CSH 15/08-2003 Made it portable - * CF 04/05-2007 Made it compatible with 64-bit operating systems - * TODO: - * - Checksum of datablocks should be calculated - * - EXTRACT.EXE complains if a disk is created manually - * - Folders that are created manually and span disks will result in a damaged cabinet - */ -#include -#include -#include -#if !defined(_WIN32) -# include -# include -# include -#endif -#include "cabinet.h" -#include "raw.h" -#include "mszip.h" - -#if defined(_WIN32) -#define GetSizeOfFile(handle) _GetSizeOfFile(handle) -static LONG _GetSizeOfFile(FILEHANDLE handle) -{ - ULONG size = GetFileSize(handle, NULL); - if (size == INVALID_FILE_SIZE) - return -1; - - return size; -} -#define ReadFileData(handle, buffer, size, bytesread) _ReadFileData(handle, buffer, size, bytesread) -static bool _ReadFileData(FILEHANDLE handle, void* buffer, ULONG size, PULONG bytesread) -{ - return ReadFile(handle, buffer, size, (LPDWORD)bytesread, NULL) != 0; -} -#else -#define GetSizeOfFile(handle) _GetSizeOfFile(handle) -static LONG _GetSizeOfFile(FILEHANDLE handle) -{ - LONG size; - fseek(handle, 0, SEEK_END); - size = ftell(handle); - fseek(handle, 0, SEEK_SET); - return size; -} -#define ReadFileData(handle, buffer, size, bytesread) _ReadFileData(handle, buffer, size, bytesread) -static bool _ReadFileData(FILEHANDLE handle, void* buffer, ULONG size, PULONG bytesread) -{ - *bytesread = fread(buffer, 1, size, handle); - return *bytesread == size; -} -#endif - -#ifndef CAB_READ_ONLY - -#if 0 -#if DBG - -void DumpBuffer(void* Buffer, ULONG Size) -{ - FILEHANDLE FileHandle; - ULONG BytesWritten; - - /* Create file, overwrite if it already exists */ - FileHandle = CreateFile("dump.bin", // Create this file - GENERIC_WRITE, // Open for writing - 0, // No sharing - NULL, // No security - CREATE_ALWAYS, // Create or overwrite - FILE_ATTRIBUTE_NORMAL, // Normal file - NULL); // No attribute template - if (FileHandle == INVALID_HANDLE_VALUE) - { - DPRINT(MID_TRACE, ("ERROR OPENING '%u'.\n", (UINT)GetLastError())); - return; - } - - if (!WriteFile(FileHandle, Buffer, Size, &BytesWritten, NULL)) - { - DPRINT(MID_TRACE, ("ERROR WRITING '%u'.\n", (UINT)GetLastError())); - } - - CloseFile(FileHandle); -} - -#endif /* DBG */ -#endif - -/* CCFDATAStorage */ - -CCFDATAStorage::CCFDATAStorage() -/* - * FUNCTION: Default constructor - */ -{ - FileCreated = false; -} - - -CCFDATAStorage::~CCFDATAStorage() -/* - * FUNCTION: Default destructor - */ -{ - ASSERT(!FileCreated); -} - - -ULONG CCFDATAStorage::Create() -/* - * FUNCTION: Creates the file - * ARGUMENTS: - * FileName = Pointer to name of file - * RETURNS: - * Status of operation - */ -{ -#if defined(_WIN32) - char tmpPath[MAX_PATH]; -#endif - ASSERT(!FileCreated); - -#if defined(_WIN32) - if (GetTempPath(MAX_PATH, tmpPath) == 0) - return CAB_STATUS_CANNOT_CREATE; - if(GetTempFileName(tmpPath, "cab", 0, FullName) == 0) - return CAB_STATUS_CANNOT_CREATE; - - /* Create file, overwrite if it already exists */ - FileHandle = CreateFile(FullName, // Create this file - GENERIC_READ | GENERIC_WRITE, // Open for reading/writing - 0, // No sharing - NULL, // No security - CREATE_ALWAYS, // Create or overwrite - FILE_FLAG_SEQUENTIAL_SCAN | // Optimize for sequential scans - FILE_FLAG_DELETE_ON_CLOSE | // Delete file when closed - FILE_ATTRIBUTE_TEMPORARY, // Temporary file - NULL); // No attribute template - if (FileHandle == INVALID_HANDLE_VALUE) - { - DPRINT(MID_TRACE, ("ERROR '%u'.\n", (UINT)GetLastError())); - return CAB_STATUS_CANNOT_CREATE; - } -#else /* !_WIN32 */ - /*if (tmpnam(FullName) == NULL)*/ - if ((FileHandle = tmpfile()) == NULL) - return CAB_STATUS_CANNOT_CREATE; - /* - FileHandle = fopen(FullName, "w+b"); - if (FileHandle == NULL) { - DPRINT(MID_TRACE, ("ERROR '%i'.\n", errno)); - return CAB_STATUS_CANNOT_CREATE; - } - */ -#endif - - FileCreated = true; - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCFDATAStorage::Destroy() -/* - * FUNCTION: Destroys the file - * RETURNS: - * Status of operation - */ -{ - ASSERT(FileCreated); - - CloseFile(FileHandle); - - FileCreated = false; - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCFDATAStorage::Truncate() -/* - * FUNCTION: Truncate the scratch file to zero bytes - * RETURNS: - * Status of operation - */ -{ -#if defined(_WIN32) - if( SetFilePointer(FileHandle, 0, NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER ) - return CAB_STATUS_FAILURE; - if (!SetEndOfFile(FileHandle)) - return CAB_STATUS_FAILURE; -#else /* !_WIN32 */ - fclose(FileHandle); - FileHandle = tmpfile(); - if (FileHandle == NULL) - { - DPRINT(MID_TRACE, ("ERROR '%i'.\n", errno)); - return CAB_STATUS_FAILURE; - } -#endif - return CAB_STATUS_SUCCESS; -} - - -ULONG CCFDATAStorage::Position() -/* - * FUNCTION: Returns current position in file - * RETURNS: - * Current position - */ -{ -#if defined(_WIN32) - return SetFilePointer(FileHandle, 0, NULL, FILE_CURRENT); -#else - return (ULONG)ftell(FileHandle); -#endif -} - - -ULONG CCFDATAStorage::Seek(LONG Position) -/* - * FUNCTION: Seeks to an absolute position - * ARGUMENTS: - * Position = Absolute position to seek to - * RETURNS: - * Status of operation - */ -{ -#if defined(_WIN32) - if( SetFilePointer(FileHandle, - Position, - NULL, - FILE_BEGIN) == INVALID_SET_FILE_POINTER ) - return CAB_STATUS_FAILURE; - else - return CAB_STATUS_SUCCESS; -#else - if (fseek(FileHandle, (off_t)Position, SEEK_SET) != 0) - return CAB_STATUS_FAILURE; - else - return CAB_STATUS_SUCCESS; -#endif -} - - -ULONG CCFDATAStorage::ReadBlock(PCFDATA Data, void* Buffer, PULONG BytesRead) -/* - * FUNCTION: Reads a CFDATA block from the file - * ARGUMENTS: - * Data = Pointer to CFDATA block for the buffer - * Buffer = Pointer to buffer to store data read - * BytesWritten = Pointer to buffer to write number of bytes read - * RETURNS: - * Status of operation - */ -{ -#if defined(_WIN32) - if (!ReadFile(FileHandle, Buffer, Data->CompSize, (LPDWORD)BytesRead, NULL)) - return CAB_STATUS_CANNOT_READ; -#else - - *BytesRead = fread(Buffer, 1, Data->CompSize, FileHandle); - if (*BytesRead != Data->CompSize) - return CAB_STATUS_CANNOT_READ; -#endif - return CAB_STATUS_SUCCESS; -} - - -ULONG CCFDATAStorage::WriteBlock(PCFDATA Data, void* Buffer, PULONG BytesWritten) -/* - * FUNCTION: Writes a CFDATA block to the file - * ARGUMENTS: - * Data = Pointer to CFDATA block for the buffer - * Buffer = Pointer to buffer with data to write - * BytesWritten = Pointer to buffer to write number of bytes written - * RETURNS: - * Status of operation - */ -{ -#if defined(_WIN32) - if (!WriteFile(FileHandle, Buffer, Data->CompSize, (LPDWORD)BytesWritten, NULL)) - return CAB_STATUS_CANNOT_WRITE; -#else - *BytesWritten = fwrite(Buffer, 1, Data->CompSize, FileHandle); - if (*BytesWritten != Data->CompSize) - return CAB_STATUS_CANNOT_WRITE; -#endif - return CAB_STATUS_SUCCESS; -} - -#endif /* CAB_READ_ONLY */ - - -/* CCabinet */ - -CCabinet::CCabinet() -/* - * FUNCTION: Default constructor - */ -{ - *CabinetName = '\0'; - *CabinetPrev = '\0'; - *DiskPrev = '\0'; - *CabinetNext = '\0'; - *DiskNext = '\0'; - *DestPath = '\0'; - *CabinetReservedFile = '\0'; - - FileOpen = false; - CabinetReservedFileBuffer = NULL; - CabinetReservedFileSize = 0; - - FolderListHead = NULL; - FolderListTail = NULL; - FileListHead = NULL; - FileListTail = NULL; - CriteriaListHead = NULL; - CriteriaListTail = NULL; - - Codec = NULL; - CodecId = -1; - CodecSelected = false; - - OutputBuffer = NULL; - InputBuffer = NULL; - MaxDiskSize = 0; - BlockIsSplit = false; - ScratchFile = NULL; - - FolderUncompSize = 0; - BytesLeftInBlock = 0; - ReuseBlock = false; - CurrentDataNode = NULL; -} - - -CCabinet::~CCabinet() -/* - * FUNCTION: Default destructor - */ -{ - if (CabinetReservedFileBuffer != NULL) - { - FreeMemory(CabinetReservedFileBuffer); - CabinetReservedFileBuffer = NULL; - CabinetReservedFileSize = 0; - } - - if (CodecSelected) - delete Codec; -} - -bool CCabinet::IsSeparator(char Char) -/* - * FUNCTION: Determines if a character is a separator - * ARGUMENTS: - * Char = Character to check - * RETURNS: - * Whether it is a separator - */ -{ - if ((Char == '\\') || (Char == '/')) - return true; - else - return false; -} - -char* CCabinet::ConvertPath(char* Path, bool Allocate) -/* - * FUNCTION: Replaces \ or / with the one used by the host environment - * ARGUMENTS: - * Path = Pointer to string with pathname - * Allocate = Specifies whether to allocate memory for the new - * string or to change the existing buffer - * RETURNS: - * Pointer to new path - */ -{ - char *newpath; - int i; - - if (Allocate) - newpath = strdup(Path); - else - newpath = Path; - - i = 0; - while (Path[i] != 0) - { -#if defined(_WIN32) - if (Path[i] == '/') - newpath[i] = '\\'; - else -#else - if (Path[i] == '\\') - newpath[i] = '/'; - else -#endif - newpath[i] = Path[i]; - - i++; - } - newpath[i] = 0; - - return(newpath); -} - - -char* CCabinet::GetFileName(char* Path) -/* - * FUNCTION: Returns a pointer to file name - * ARGUMENTS: - * Path = Pointer to string with pathname - * RETURNS: - * Pointer to filename - */ -{ - ULONG i, j; - - j = i = (Path[0] ? (Path[1] == ':' ? 2 : 0) : 0); - - while (Path [i++]) - if (IsSeparator(Path [i - 1])) - j = i; - - return Path + j; -} - - -void CCabinet::RemoveFileName(char* Path) -/* - * FUNCTION: Removes a file name from a path - * ARGUMENTS: - * Path = Pointer to string with path - */ -{ - char* FileName; - ULONG i; - - i = (Path [0] ? (Path[1] == ':' ? 2 : 0) : 0); - FileName = GetFileName(Path + i); - - if ((FileName != (Path + i)) && (IsSeparator(FileName [-1]))) - FileName--; - if ((FileName == (Path + i)) && (IsSeparator(FileName [0]))) - FileName++; - FileName[0] = 0; -} - - -bool CCabinet::NormalizePath(char* Path, - ULONG Length) -/* - * FUNCTION: Normalizes a path - * ARGUMENTS: - * Path = Pointer to string with pathname - * Length = Number of bytes in Path - * RETURNS: - * true if there was enough room in Path, or false - */ -{ - ULONG n; - bool OK = true; - - if ((n = (ULONG)strlen(Path)) && - (!IsSeparator(Path[n - 1])) && - (OK = ((n + 1) < Length))) - { - Path[n] = DIR_SEPARATOR_CHAR; - Path[n + 1] = 0; - } - return OK; -} - - -char* CCabinet::GetCabinetName() -/* - * FUNCTION: Returns pointer to cabinet file name - * RETURNS: - * Pointer to string with name of cabinet - */ -{ - return CabinetName; -} - - -void CCabinet::SetCabinetName(char* FileName) -/* - * FUNCTION: Sets cabinet file name - * ARGUMENTS: - * FileName = Pointer to string with name of cabinet - */ -{ - strcpy(CabinetName, FileName); -} - - -void CCabinet::SetDestinationPath(char* DestinationPath) -/* - * FUNCTION: Sets destination path - * ARGUMENTS: - * DestinationPath = Pointer to string with name of destination path - */ -{ - strcpy(DestPath, DestinationPath); - ConvertPath(DestPath, false); - if (strlen(DestPath) > 0) - NormalizePath(DestPath, PATH_MAX); -} - -ULONG CCabinet::AddSearchCriteria(char* SearchCriteria) -/* - * FUNCTION: Adds a criteria to the search criteria list - * ARGUMENTS: - * SearchCriteria = String with the search criteria to add - * RETURNS: - * Status of operation - */ -{ - PSEARCH_CRITERIA Criteria; - - // Add the criteria to the list of search criteria - Criteria = (PSEARCH_CRITERIA)AllocateMemory(sizeof(SEARCH_CRITERIA)); - if(!Criteria) - { - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - return CAB_STATUS_NOMEMORY; - } - - Criteria->Prev = CriteriaListTail; - Criteria->Next = NULL; - - if(CriteriaListTail) - CriteriaListTail->Next = Criteria; - else - CriteriaListHead = Criteria; - - CriteriaListTail = Criteria; - - // Set the actual criteria string - Criteria->Search = (char*)AllocateMemory(strlen(SearchCriteria) + 1); - if (!Criteria->Search) - { - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - return CAB_STATUS_NOMEMORY; - } - - strcpy(Criteria->Search, SearchCriteria); - - return CAB_STATUS_SUCCESS; -} - -void CCabinet::DestroySearchCriteria() -/* - * FUNCTION: Destroys the list with the search criteria - */ -{ - PSEARCH_CRITERIA Criteria; - PSEARCH_CRITERIA NextCriteria; - - Criteria = CriteriaListHead; - - while(Criteria) - { - NextCriteria = Criteria->Next; - - FreeMemory(Criteria->Search); - FreeMemory(Criteria); - - Criteria = NextCriteria; - } - - CriteriaListHead = NULL; - CriteriaListTail = NULL; -} - -bool CCabinet::HasSearchCriteria() -/* - * FUNCTION: Returns whether we have search criteria - * RETURNS: - * Whether we have search criteria or not. - */ -{ - return (CriteriaListHead != NULL); -} - -bool CCabinet::SetCompressionCodec(char* CodecName) -/* - * FUNCTION: Selects the codec to use for compression - * ARGUMENTS: - * CodecName = Pointer to a string with the name of the codec - */ -{ - if( !strcasecmp(CodecName, "raw") ) - SelectCodec(CAB_CODEC_RAW); - else if( !strcasecmp(CodecName, "mszip") ) - SelectCodec(CAB_CODEC_MSZIP); - else - { - printf("Invalid codec specified!\n"); - return false; - } - - return true; -} - -char* CCabinet::GetDestinationPath() -/* - * FUNCTION: Returns destination path - * RETURNS: - * Pointer to string with name of destination path - */ -{ - return DestPath; -} - - -bool CCabinet::SetCabinetReservedFile(char* FileName) -/* - * FUNCTION: Sets cabinet reserved file - * ARGUMENTS: - * FileName = Pointer to string with name of cabinet reserved file - */ -{ - FILEHANDLE FileHandle; - ULONG BytesRead; - -#if defined(_WIN32) - FileHandle = CreateFile(ConvertPath(FileName, true), // Open this file - GENERIC_READ, // Open for reading - FILE_SHARE_READ, // Share for reading - NULL, // No security - OPEN_EXISTING, // Existing file only - FILE_ATTRIBUTE_NORMAL, // Normal file - NULL); // No attribute template - if (FileHandle == INVALID_HANDLE_VALUE) - { - DPRINT(MID_TRACE, ("Cannot open cabinet reserved file.\n")); - return false; - } -#else /* !_WIN32 */ - FileHandle = fopen(ConvertPath(FileName, true), "rb"); - if (FileHandle == NULL) - { - DPRINT(MID_TRACE, ("Cannot open cabinet reserved file.\n")); - return false; - } -#endif - - CabinetReservedFileSize = GetSizeOfFile(FileHandle); - if (CabinetReservedFileSize == (ULONG)-1) - { - DPRINT(MIN_TRACE, ("Cannot read from cabinet reserved file.\n")); - return false; - } - - if (CabinetReservedFileSize == 0) - { - CloseFile(FileHandle); - return false; - } - - CabinetReservedFileBuffer = AllocateMemory(CabinetReservedFileSize); - if (!CabinetReservedFileBuffer) - { - CloseFile(FileHandle); - return false; - } - - if (!ReadFileData(FileHandle, CabinetReservedFileBuffer, CabinetReservedFileSize, &BytesRead)) - { - CloseFile(FileHandle); - return false; - } - - CloseFile(FileHandle); - - strcpy(CabinetReservedFile, FileName); - - return true; -} - - -char* CCabinet::GetCabinetReservedFile() -/* - * FUNCTION: Returns cabionet reserved file - * RETURNS: - * Pointer to string with name of cabinet reserved file - */ -{ - return CabinetReservedFile; -} - - -ULONG CCabinet::GetCurrentDiskNumber() -/* - * FUNCTION: Returns current disk number - * RETURNS: - * Current disk number - */ -{ - return CurrentDiskNumber; -} - - -ULONG CCabinet::Open() -/* - * FUNCTION: Opens a cabinet file - * RETURNS: - * Status of operation - */ -{ - PCFFOLDER_NODE FolderNode; - ULONG Status; - ULONG Index; - - if (!FileOpen) - { - ULONG BytesRead; - ULONG Size; - - OutputBuffer = AllocateMemory(CAB_BLOCKSIZE + 12); // This should be enough - if (!OutputBuffer) - return CAB_STATUS_NOMEMORY; - -#if defined(_WIN32) - FileHandle = CreateFile(CabinetName, // Open this file - GENERIC_READ, // Open for reading - FILE_SHARE_READ, // Share for reading - NULL, // No security - OPEN_EXISTING, // Existing file only - FILE_ATTRIBUTE_NORMAL, // Normal file - NULL); // No attribute template - - if (FileHandle == INVALID_HANDLE_VALUE) - { - DPRINT(MID_TRACE, ("Cannot open file.\n")); - return CAB_STATUS_CANNOT_OPEN; - } -#else /* !_WIN32 */ - FileHandle = fopen(CabinetName, "rb"); - if (FileHandle == NULL) - { - DPRINT(MID_TRACE, ("Cannot open file.\n")); - return CAB_STATUS_CANNOT_OPEN; - } -#endif - - FileOpen = true; - - /* Load CAB header */ - if ((Status = ReadBlock(&CABHeader, sizeof(CFHEADER), &BytesRead)) - != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot read from file (%u).\n", (UINT)Status)); - return CAB_STATUS_INVALID_CAB; - } - - /* Check header */ - if ((BytesRead != sizeof(CFHEADER)) || - (CABHeader.Signature != CAB_SIGNATURE ) || - (CABHeader.Version != CAB_VERSION ) || - (CABHeader.FolderCount == 0 ) || - (CABHeader.FileCount == 0 ) || - (CABHeader.FileTableOffset < sizeof(CFHEADER))) - { - CloseCabinet(); - DPRINT(MID_TRACE, ("File has invalid header.\n")); - return CAB_STATUS_INVALID_CAB; - } - - Size = 0; - - /* Read/skip any reserved bytes */ - if (CABHeader.Flags & CAB_FLAG_RESERVE) - { - if ((Status = ReadBlock(&Size, sizeof(ULONG), &BytesRead)) - != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot read from file (%u).\n", (UINT)Status)); - return CAB_STATUS_INVALID_CAB; - } - CabinetReserved = Size & 0xFFFF; - FolderReserved = (Size >> 16) & 0xFF; - DataReserved = (Size >> 24) & 0xFF; - -#if defined(_WIN32) - if (SetFilePointer(FileHandle, CabinetReserved, NULL, FILE_CURRENT) == INVALID_SET_FILE_POINTER) - { - DPRINT(MIN_TRACE, ("SetFilePointer() failed, error code is %u.\n", (UINT)GetLastError())); - return CAB_STATUS_FAILURE; - } -#else - if (fseek(FileHandle, (off_t)CabinetReserved, SEEK_CUR) != 0) - { - DPRINT(MIN_TRACE, ("fseek() failed.\n")); - return CAB_STATUS_FAILURE; - } -#endif - } - - if ((CABHeader.Flags & CAB_FLAG_HASPREV) > 0) - { - /* Read name of previous cabinet */ - Status = ReadString(CabinetPrev, 256); - if (Status != CAB_STATUS_SUCCESS) - return Status; - /* Read label of previous disk */ - Status = ReadString(DiskPrev, 256); - if (Status != CAB_STATUS_SUCCESS) - return Status; - } - else - { - strcpy(CabinetPrev, ""); - strcpy(DiskPrev, ""); - } - - if ((CABHeader.Flags & CAB_FLAG_HASNEXT) > 0) - { - /* Read name of next cabinet */ - Status = ReadString(CabinetNext, 256); - if (Status != CAB_STATUS_SUCCESS) - return Status; - /* Read label of next disk */ - Status = ReadString(DiskNext, 256); - if (Status != CAB_STATUS_SUCCESS) - return Status; - } - else - { - strcpy(CabinetNext, ""); - strcpy(DiskNext, ""); - } - - /* Read all folders */ - for (Index = 0; Index < CABHeader.FolderCount; Index++) - { - FolderNode = NewFolderNode(); - if (!FolderNode) - { - DPRINT(MIN_TRACE, ("Insufficient resources.\n")); - return CAB_STATUS_NOMEMORY; - } - - if (Index == 0) - FolderNode->UncompOffset = FolderUncompSize; - - FolderNode->Index = Index; - - if ((Status = ReadBlock(&FolderNode->Folder, - sizeof(CFFOLDER), &BytesRead)) != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot read from file (%u).\n", (UINT)Status)); - return CAB_STATUS_INVALID_CAB; - } - } - - /* Read file entries */ - Status = ReadFileTable(); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("ReadFileTable() failed (%u).\n", (UINT)Status)); - return Status; - } - - /* Read data blocks for all folders */ - FolderNode = FolderListHead; - while (FolderNode != NULL) - { - Status = ReadDataBlocks(FolderNode); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("ReadDataBlocks() failed (%u).\n", (UINT)Status)); - return Status; - } - FolderNode = FolderNode->Next; - } - } - return CAB_STATUS_SUCCESS; -} - - -void CCabinet::Close() -/* - * FUNCTION: Closes the cabinet file - */ -{ - if (FileOpen) - { - CloseFile(FileHandle); - FileOpen = false; - } -} - - -ULONG CCabinet::FindFirst(PCAB_SEARCH Search) -/* - * FUNCTION: Finds the first file in the cabinet that matches a search criteria - * ARGUMENTS: - * Search = Pointer to search structure - * RETURNS: - * Status of operation - */ -{ - RestartSearch = false; - Search->Next = FileListHead; - return FindNext(Search); -} - - -ULONG CCabinet::FindNext(PCAB_SEARCH Search) -/* - * FUNCTION: Finds next file in the cabinet that matches a search criteria - * ARGUMENTS: - * Search = Pointer to search structure - * RETURNS: - * Status of operation - */ -{ - bool bFound = false; - PSEARCH_CRITERIA Criteria; - ULONG Status; - - if (RestartSearch) - { - Search->Next = FileListHead; - - /* Skip split files already extracted */ - while ((Search->Next) && - (Search->Next->File.FileControlID > CAB_FILE_MAX_FOLDER) && - (Search->Next->File.FileOffset <= LastFileOffset)) - { - DPRINT(MAX_TRACE, ("Skipping file (%s) FileOffset (0x%X) LastFileOffset (0x%X).\n", - Search->Next->FileName, (UINT)Search->Next->File.FileOffset, (UINT)LastFileOffset)); - Search->Next = Search->Next->Next; - } - - RestartSearch = false; - } - - /* Check each search criteria against each file */ - while(Search->Next) - { - // Some features (like displaying cabinets) don't require search criteria, so we can just break here. - // If a feature requires it, handle this in the ParseCmdline() function in "main.cxx". - if(!CriteriaListHead) - break; - - Criteria = CriteriaListHead; - - while(Criteria) - { - if(MatchFileNamePattern(Search->Next->FileName, Criteria->Search)) - { - bFound = true; - break; - } - - Criteria = Criteria->Next; - } - - if(bFound) - break; - - Search->Next = Search->Next->Next; - } - - if (!Search->Next) - { - if (strlen(DiskNext) > 0) - { - CloseCabinet(); - - SetCabinetName(CabinetNext); - - OnDiskChange(CabinetNext, DiskNext); - - Status = Open(); - if (Status != CAB_STATUS_SUCCESS) - return Status; - - Search->Next = FileListHead; - if (!Search->Next) - return CAB_STATUS_NOFILE; - } - else - return CAB_STATUS_NOFILE; - } - - Search->File = &Search->Next->File; - Search->FileName = Search->Next->FileName; - Search->Next = Search->Next->Next; - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::ExtractFile(char* FileName) -/* - * FUNCTION: Extracts a file from the cabinet - * ARGUMENTS: - * FileName = Pointer to buffer with name of file - * RETURNS - * Status of operation - */ -{ - ULONG Size; - ULONG Offset; - ULONG BytesRead; - ULONG BytesToRead; - ULONG BytesWritten; - ULONG BytesSkipped; - ULONG BytesToWrite; - ULONG TotalBytesRead; - ULONG CurrentOffset; - PUCHAR Buffer; - PUCHAR CurrentBuffer; - FILEHANDLE DestFile; - PCFFILE_NODE File; - CFDATA CFData; - ULONG Status; - bool Skip; -#if defined(_WIN32) - FILETIME FileTime; -#endif - CHAR DestName[PATH_MAX]; - CHAR TempName[PATH_MAX]; - - Status = LocateFile(FileName, &File); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MID_TRACE, ("Cannot locate file (%u).\n", (UINT)Status)); - return Status; - } - - LastFileOffset = File->File.FileOffset; - - switch (CurrentFolderNode->Folder.CompressionType & CAB_COMP_MASK) - { - case CAB_COMP_NONE: - SelectCodec(CAB_CODEC_RAW); - break; - - case CAB_COMP_MSZIP: - SelectCodec(CAB_CODEC_MSZIP); - break; - - default: - return CAB_STATUS_UNSUPPCOMP; - } - - DPRINT(MAX_TRACE, ("Extracting file at uncompressed offset (0x%X) Size (%u bytes) AO (0x%X) UO (0x%X).\n", - (UINT)File->File.FileOffset, - (UINT)File->File.FileSize, - (UINT)File->DataBlock->AbsoluteOffset, - (UINT)File->DataBlock->UncompOffset)); - - strcpy(DestName, DestPath); - strcat(DestName, FileName); - - /* Create destination file, fail if it already exists */ -#if defined(_WIN32) - DestFile = CreateFile(DestName, // Create this file - GENERIC_WRITE, // Open for writing - 0, // No sharing - NULL, // No security - CREATE_NEW, // New file only - FILE_ATTRIBUTE_NORMAL, // Normal file - NULL); // No attribute template - if (DestFile == INVALID_HANDLE_VALUE) - { - /* If file exists, ask to overwrite file */ - if (((Status = GetLastError()) == ERROR_FILE_EXISTS) && - (OnOverwrite(&File->File, FileName))) - { - /* Create destination file, overwrite if it already exists */ - DestFile = CreateFile(DestName, // Create this file - GENERIC_WRITE, // Open for writing - 0, // No sharing - NULL, // No security - TRUNCATE_EXISTING, // Truncate the file - FILE_ATTRIBUTE_NORMAL, // Normal file - NULL); // No attribute template - if (DestFile == INVALID_HANDLE_VALUE) - return CAB_STATUS_CANNOT_CREATE; - } - else - { - if (Status == ERROR_FILE_EXISTS) - return CAB_STATUS_FILE_EXISTS; - else - return CAB_STATUS_CANNOT_CREATE; - } - } -#else /* !_WIN32 */ - DestFile = fopen(DestName, "rb"); - if (DestFile != NULL) - { - fclose(DestFile); - /* If file exists, ask to overwrite file */ - if (OnOverwrite(&File->File, FileName)) - { - DestFile = fopen(DestName, "w+b"); - if (DestFile == NULL) - return CAB_STATUS_CANNOT_CREATE; - } - else - return CAB_STATUS_FILE_EXISTS; - } - else - { - DestFile = fopen(DestName, "w+b"); - if (DestFile == NULL) - return CAB_STATUS_CANNOT_CREATE; - } -#endif -#if defined(_WIN32) - if (!DosDateTimeToFileTime(File->File.FileDate, File->File.FileTime, &FileTime)) - { - CloseFile(DestFile); - DPRINT(MIN_TRACE, ("DosDateTimeToFileTime() failed (%u).\n", (UINT)GetLastError())); - return CAB_STATUS_CANNOT_WRITE; - } - - SetFileTime(DestFile, NULL, &FileTime, NULL); -#else - //DPRINT(MIN_TRACE, ("FIXME: DosDateTimeToFileTime\n")); -#endif - SetAttributesOnFile(DestName, File->File.Attributes); - - Buffer = (PUCHAR)AllocateMemory(CAB_BLOCKSIZE + 12); // This should be enough - if (!Buffer) - { - CloseFile(DestFile); - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - return CAB_STATUS_NOMEMORY; - } - - /* Call OnExtract event handler */ - OnExtract(&File->File, FileName); - - /* Search to start of file */ -#if defined(_WIN32) - Offset = SetFilePointer(FileHandle, - File->DataBlock->AbsoluteOffset, - NULL, - FILE_BEGIN); - if (Offset == INVALID_SET_FILE_POINTER) - { - DPRINT(MIN_TRACE, ("SetFilePointer() failed, error code is %u.\n", (UINT)GetLastError())); - CloseFile(DestFile); - return CAB_STATUS_INVALID_CAB; - } -#else - if (fseek(FileHandle, (off_t)File->DataBlock->AbsoluteOffset, SEEK_SET) != 0) - { - DPRINT(MIN_TRACE, ("fseek() failed.\n")); - CloseFile(DestFile); - return CAB_STATUS_FAILURE; - } - Offset = ftell(FileHandle); -#endif - - Size = File->File.FileSize; - Offset = File->File.FileOffset; - CurrentOffset = File->DataBlock->UncompOffset; - - Skip = true; - - ReuseBlock = (CurrentDataNode == File->DataBlock); - if (Size > 0) - { - do - { - DPRINT(MAX_TRACE, ("CO (0x%X) ReuseBlock (%u) Offset (0x%X) Size (%d) BytesLeftInBlock (%d)\n", - (UINT)File->DataBlock->UncompOffset, (UINT)ReuseBlock, (UINT)Offset, (UINT)Size, - (UINT)BytesLeftInBlock)); - - if (/*(CurrentDataNode != File->DataBlock) &&*/ (!ReuseBlock) || (BytesLeftInBlock <= 0)) - { - DPRINT(MAX_TRACE, ("Filling buffer. ReuseBlock (%u)\n", (UINT)ReuseBlock)); - - CurrentBuffer = Buffer; - TotalBytesRead = 0; - do - { - DPRINT(MAX_TRACE, ("Size (%u bytes).\n", (UINT)Size)); - - if (((Status = ReadBlock(&CFData, sizeof(CFDATA), &BytesRead)) != - CAB_STATUS_SUCCESS) || (BytesRead != sizeof(CFDATA))) - { - CloseFile(DestFile); - FreeMemory(Buffer); - DPRINT(MIN_TRACE, ("Cannot read from file (%u).\n", (UINT)Status)); - return CAB_STATUS_INVALID_CAB; - } - - DPRINT(MAX_TRACE, ("Data block: Checksum (0x%X) CompSize (%u bytes) UncompSize (%u bytes)\n", - (UINT)CFData.Checksum, - CFData.CompSize, - CFData.UncompSize)); - - ASSERT(CFData.CompSize <= CAB_BLOCKSIZE + 12); - - BytesToRead = CFData.CompSize; - - DPRINT(MAX_TRACE, ("Read: (0x%lX,0x%lX).\n", - (unsigned long)CurrentBuffer, (unsigned long)Buffer)); - - if (((Status = ReadBlock(CurrentBuffer, BytesToRead, &BytesRead)) != - CAB_STATUS_SUCCESS) || (BytesToRead != BytesRead)) - { - CloseFile(DestFile); - FreeMemory(Buffer); - DPRINT(MIN_TRACE, ("Cannot read from file (%u).\n", (UINT)Status)); - return CAB_STATUS_INVALID_CAB; - } - - /* FIXME: Does not work with files generated by makecab.exe */ -/* - if (CFData.Checksum != 0) - { - ULONG Checksum = ComputeChecksum(CurrentBuffer, BytesRead, 0); - if (Checksum != CFData.Checksum) - { - CloseFile(DestFile); - FreeMemory(Buffer); - DPRINT(MIN_TRACE, ("Bad checksum (is 0x%X, should be 0x%X).\n", - Checksum, CFData.Checksum)); - return CAB_STATUS_INVALID_CAB; - } - } -*/ - TotalBytesRead += BytesRead; - - CurrentBuffer += BytesRead; - - if (CFData.UncompSize == 0) - { - if (strlen(DiskNext) == 0) - return CAB_STATUS_NOFILE; - - /* CloseCabinet() will destroy all file entries so in case - FileName refers to the FileName field of a CFFOLDER_NODE - structure, we have to save a copy of the filename */ - strcpy(TempName, FileName); - - CloseCabinet(); - - SetCabinetName(CabinetNext); - - OnDiskChange(CabinetNext, DiskNext); - - Status = Open(); - if (Status != CAB_STATUS_SUCCESS) - return Status; - - /* The first data block of the file will not be - found as it is located in the previous file */ - Status = LocateFile(TempName, &File); - if (Status == CAB_STATUS_NOFILE) - { - DPRINT(MID_TRACE, ("Cannot locate file (%u).\n", (UINT)Status)); - return Status; - } - - /* The file is continued in the first data block in the folder */ - File->DataBlock = CurrentFolderNode->DataListHead; - - /* Search to start of file */ -#if defined(_WIN32) - if( SetFilePointer(FileHandle, - File->DataBlock->AbsoluteOffset, - NULL, - FILE_BEGIN) == INVALID_SET_FILE_POINTER ) - { - DPRINT(MIN_TRACE, ("SetFilePointer() failed, error code is %u.\n", (UINT)GetLastError())); - return CAB_STATUS_INVALID_CAB; - } -#else - if (fseek(FileHandle, (off_t)File->DataBlock->AbsoluteOffset, SEEK_SET) != 0) - { - DPRINT(MIN_TRACE, ("fseek() failed.\n")); - return CAB_STATUS_INVALID_CAB; - } -#endif - - DPRINT(MAX_TRACE, ("Continuing extraction of file at uncompressed offset (0x%X) Size (%u bytes) AO (0x%X) UO (0x%X).\n", - (UINT)File->File.FileOffset, - (UINT)File->File.FileSize, - (UINT)File->DataBlock->AbsoluteOffset, - (UINT)File->DataBlock->UncompOffset)); - - CurrentDataNode = File->DataBlock; - ReuseBlock = true; - - RestartSearch = true; - } - } while (CFData.UncompSize == 0); - - DPRINT(MAX_TRACE, ("TotalBytesRead (%u).\n", (UINT)TotalBytesRead)); - - Status = Codec->Uncompress(OutputBuffer, Buffer, TotalBytesRead, &BytesToWrite); - if (Status != CS_SUCCESS) - { - CloseFile(DestFile); - FreeMemory(Buffer); - DPRINT(MID_TRACE, ("Cannot uncompress block.\n")); - if (Status == CS_NOMEMORY) - return CAB_STATUS_NOMEMORY; - return CAB_STATUS_INVALID_CAB; - } - - if (BytesToWrite != CFData.UncompSize) - { - DPRINT(MID_TRACE, ("BytesToWrite (%u) != CFData.UncompSize (%d)\n", - (UINT)BytesToWrite, CFData.UncompSize)); - return CAB_STATUS_INVALID_CAB; - } - - BytesLeftInBlock = BytesToWrite; - } - else - { - DPRINT(MAX_TRACE, ("Using same buffer. ReuseBlock (%u)\n", (UINT)ReuseBlock)); - - BytesToWrite = BytesLeftInBlock; - - DPRINT(MAX_TRACE, ("Seeking to absolute offset 0x%X.\n", - (UINT)(CurrentDataNode->AbsoluteOffset + sizeof(CFDATA) + CurrentDataNode->Data.CompSize))); - - if (((Status = ReadBlock(&CFData, sizeof(CFDATA), &BytesRead)) != - CAB_STATUS_SUCCESS) || (BytesRead != sizeof(CFDATA))) - { - CloseFile(DestFile); - FreeMemory(Buffer); - DPRINT(MIN_TRACE, ("Cannot read from file (%u).\n", (UINT)Status)); - return CAB_STATUS_INVALID_CAB; - } - - DPRINT(MAX_TRACE, ("CFData.CompSize 0x%X CFData.UncompSize 0x%X.\n", - CFData.CompSize, CFData.UncompSize)); - - /* Go to next data block */ -#if defined(_WIN32) - if( SetFilePointer(FileHandle, - CurrentDataNode->AbsoluteOffset + sizeof(CFDATA) + - CurrentDataNode->Data.CompSize, - NULL, - FILE_BEGIN) == INVALID_SET_FILE_POINTER ) - { - DPRINT(MIN_TRACE, ("SetFilePointer() failed, error code is %u.\n", (UINT)GetLastError())); - return CAB_STATUS_INVALID_CAB; - } -#else - if (fseek(FileHandle, (off_t)CurrentDataNode->AbsoluteOffset + sizeof(CFDATA) + - CurrentDataNode->Data.CompSize, SEEK_SET) != 0) - { - DPRINT(MIN_TRACE, ("fseek() failed.\n")); - return CAB_STATUS_INVALID_CAB; - } -#endif - - ReuseBlock = false; - } - - if (Skip) - BytesSkipped = (Offset - CurrentOffset); - else - BytesSkipped = 0; - - BytesToWrite -= BytesSkipped; - - if (Size < BytesToWrite) - BytesToWrite = Size; - - DPRINT(MAX_TRACE, ("Offset (0x%X) CurrentOffset (0x%X) ToWrite (%u) Skipped (%u)(%u) Size (%u).\n", - (UINT)Offset, - (UINT)CurrentOffset, - (UINT)BytesToWrite, - (UINT)BytesSkipped, (UINT)Skip, - (UINT)Size)); - -#if defined(_WIN32) - if (!WriteFile(DestFile, (void*)((PUCHAR)OutputBuffer + BytesSkipped), - BytesToWrite, (LPDWORD)&BytesWritten, NULL) || - (BytesToWrite != BytesWritten)) - { - DPRINT(MIN_TRACE, ("Status 0x%X.\n", (UINT)GetLastError())); -#else - BytesWritten = BytesToWrite; - if (fwrite((void*)((PUCHAR)OutputBuffer + BytesSkipped), - BytesToWrite, 1, DestFile) < 1) - { -#endif - CloseFile(DestFile); - FreeMemory(Buffer); - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } - Size -= BytesToWrite; - - CurrentOffset += BytesToWrite; - - /* Don't skip any more bytes */ - Skip = false; - } while (Size > 0); - } - - CloseFile(DestFile); - - FreeMemory(Buffer); - - return CAB_STATUS_SUCCESS; -} - -bool CCabinet::IsCodecSelected() -/* - * FUNCTION: Returns the value of CodecSelected - * RETURNS: - * Whether a codec is selected - */ -{ - return CodecSelected; -} - -void CCabinet::SelectCodec(LONG Id) -/* - * FUNCTION: Selects codec engine to use - * ARGUMENTS: - * Id = Codec identifier - */ -{ - if (CodecSelected) - { - if (Id == CodecId) - return; - - CodecSelected = false; - delete Codec; - } - - switch (Id) - { - case CAB_CODEC_RAW: - Codec = new CRawCodec(); - break; - - case CAB_CODEC_MSZIP: - Codec = new CMSZipCodec(); - break; - - default: - return; - } - - CodecId = Id; - CodecSelected = true; -} - - -#ifndef CAB_READ_ONLY - -/* CAB write methods */ - -ULONG CCabinet::NewCabinet() -/* - * FUNCTION: Creates a new cabinet - * RETURNS: - * Status of operation - */ -{ - ULONG Status; - - CurrentDiskNumber = 0; - - OutputBuffer = AllocateMemory(CAB_BLOCKSIZE + 12); // This should be enough - InputBuffer = AllocateMemory(CAB_BLOCKSIZE + 12); // This should be enough - if ((!OutputBuffer) || (!InputBuffer)) - { - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - return CAB_STATUS_NOMEMORY; - } - CurrentIBuffer = InputBuffer; - CurrentIBufferSize = 0; - - CABHeader.Signature = CAB_SIGNATURE; - CABHeader.Reserved1 = 0; // Not used - CABHeader.CabinetSize = 0; // Not yet known - CABHeader.Reserved2 = 0; // Not used - CABHeader.Reserved3 = 0; // Not used - CABHeader.Version = CAB_VERSION; - CABHeader.FolderCount = 0; // Not yet known - CABHeader.FileCount = 0; // Not yet known - CABHeader.Flags = 0; // Not yet known - // FIXME: Should be random - CABHeader.SetID = 0x534F; - CABHeader.CabinetNumber = 0; - - - TotalFolderSize = 0; - TotalFileSize = 0; - - DiskSize = sizeof(CFHEADER); - - InitCabinetHeader(); - - // NextFolderNumber is 0-based - NextFolderNumber = 0; - - CurrentFolderNode = NULL; - Status = NewFolder(); - if (Status != CAB_STATUS_SUCCESS) - return Status; - - CurrentFolderNode->Folder.DataOffset = DiskSize - TotalHeaderSize; - - ScratchFile = new CCFDATAStorage; - if (!ScratchFile) - { - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - return CAB_STATUS_NOMEMORY; - } - - Status = ScratchFile->Create(); - - CreateNewFolder = false; - - CreateNewDisk = false; - - PrevCabinetNumber = 0; - - return Status; -} - - -ULONG CCabinet::NewDisk() -/* - * FUNCTION: Forces a new disk to be created - * RETURNS: - * Status of operation - */ -{ - // NextFolderNumber is 0-based - NextFolderNumber = 1; - - CreateNewDisk = false; - - DiskSize = sizeof(CFHEADER) + TotalFolderSize + TotalFileSize; - - InitCabinetHeader(); - - CurrentFolderNode->TotalFolderSize = 0; - - CurrentFolderNode->Folder.DataBlockCount = 0; - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::NewFolder() -/* - * FUNCTION: Forces a new folder to be created - * RETURNS: - * Status of operation - */ -{ - DPRINT(MAX_TRACE, ("Creating new folder.\n")); - - CurrentFolderNode = NewFolderNode(); - if (!CurrentFolderNode) - { - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - return CAB_STATUS_NOMEMORY; - } - - switch (CodecId) { - case CAB_CODEC_RAW: - CurrentFolderNode->Folder.CompressionType = CAB_COMP_NONE; - break; - - case CAB_CODEC_MSZIP: - CurrentFolderNode->Folder.CompressionType = CAB_COMP_MSZIP; - break; - - default: - return CAB_STATUS_UNSUPPCOMP; - } - - /* FIXME: This won't work if no files are added to the new folder */ - - DiskSize += sizeof(CFFOLDER); - - TotalFolderSize += sizeof(CFFOLDER); - - NextFolderNumber++; - - CABHeader.FolderCount++; - - LastBlockStart = 0; - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::WriteFileToScratchStorage(PCFFILE_NODE FileNode) -/* - * FUNCTION: Writes a file to the scratch file - * ARGUMENTS: - * FileNode = Pointer to file node - * RETURNS: - * Status of operation - */ -{ - ULONG BytesToRead; - ULONG BytesRead; - ULONG Status; - ULONG Size; - - if (!ContinueFile) - { - /* Try to open file */ -#if defined(_WIN32) - SourceFile = CreateFile( - FileNode->FileName, // Open this file - GENERIC_READ, // Open for reading - FILE_SHARE_READ, // Share for reading - NULL, // No security - OPEN_EXISTING, // File must exist - FILE_ATTRIBUTE_NORMAL, // Normal file - NULL); // No attribute template - if (SourceFile == INVALID_HANDLE_VALUE) - { - DPRINT(MID_TRACE, ("File not found (%s).\n", FileNode->FileName)); - return CAB_STATUS_NOFILE; - } -#else /* !_WIN32 */ - SourceFile = fopen(FileNode->FileName, "rb"); - if (SourceFile == NULL) - { - DPRINT(MID_TRACE, ("Cannot open cabinet reserved file.\n")); - return CAB_STATUS_NOFILE; - } -#endif - - if (CreateNewFolder) - { - /* There is always a new folder after - a split file is completely stored */ - Status = NewFolder(); - if (Status != CAB_STATUS_SUCCESS) - return Status; - CreateNewFolder = false; - } - - /* Call OnAdd event handler */ - OnAdd(&FileNode->File, FileNode->FileName); - - TotalBytesLeft = FileNode->File.FileSize; - - FileNode->File.FileOffset = CurrentFolderNode->UncompOffset; - CurrentFolderNode->UncompOffset += TotalBytesLeft; - FileNode->File.FileControlID = (USHORT)(NextFolderNumber - 1); - CurrentFolderNode->Commit = true; - PrevCabinetNumber = CurrentDiskNumber; - - Size = sizeof(CFFILE) + (ULONG)strlen(GetFileName(FileNode->FileName)) + 1; - CABHeader.FileTableOffset += Size; - TotalFileSize += Size; - DiskSize += Size; - } - - FileNode->Commit = true; - - if (TotalBytesLeft > 0) - { - do - { - if (TotalBytesLeft > (ULONG)CAB_BLOCKSIZE - CurrentIBufferSize) - BytesToRead = CAB_BLOCKSIZE - CurrentIBufferSize; - else - BytesToRead = TotalBytesLeft; - - if (!ReadFileData(SourceFile, CurrentIBuffer, BytesToRead, &BytesRead) || (BytesToRead != BytesRead)) - { - DPRINT(MIN_TRACE, ("Cannot read from file. BytesToRead (%u) BytesRead (%u) CurrentIBufferSize (%u).\n", - (UINT)BytesToRead, (UINT)BytesRead, (UINT)CurrentIBufferSize)); - return CAB_STATUS_INVALID_CAB; - } - - CurrentIBuffer = (unsigned char*)CurrentIBuffer + BytesRead; - CurrentIBufferSize += (USHORT)BytesRead; - - if (CurrentIBufferSize == CAB_BLOCKSIZE) - { - Status = WriteDataBlock(); - if (Status != CAB_STATUS_SUCCESS) - return Status; - } - TotalBytesLeft -= BytesRead; - } while ((TotalBytesLeft > 0) && (!CreateNewDisk)); - } - - if (TotalBytesLeft == 0) - { - CloseFile(SourceFile); - FileNode->Delete = true; - - if (FileNode->File.FileControlID > CAB_FILE_MAX_FOLDER) - { - FileNode->File.FileControlID = CAB_FILE_CONTINUED; - CurrentFolderNode->Delete = true; - - if ((CurrentIBufferSize > 0) || (CurrentOBufferSize > 0)) - { - Status = WriteDataBlock(); - if (Status != CAB_STATUS_SUCCESS) - return Status; - } - - CreateNewFolder = true; - } - } - else - { - if (FileNode->File.FileControlID <= CAB_FILE_MAX_FOLDER) - FileNode->File.FileControlID = CAB_FILE_SPLIT; - else - FileNode->File.FileControlID = CAB_FILE_PREV_NEXT; - } - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::WriteDisk(ULONG MoreDisks) -/* - * FUNCTION: Forces the current disk to be written - * ARGUMENTS: - * MoreDisks = true if there is one or more disks after this disk - * RETURNS: - * Status of operation - */ -{ - PCFFILE_NODE FileNode; - ULONG Status; - - ContinueFile = false; - FileNode = FileListHead; - while (FileNode != NULL) - { - Status = WriteFileToScratchStorage(FileNode); - if (Status != CAB_STATUS_SUCCESS) - return Status; - - if (CreateNewDisk) - { - /* A data block could span more than two - disks if MaxDiskSize is very small */ - while (CreateNewDisk) - { - DPRINT(MAX_TRACE, ("Creating new disk.\n")); - CommitDisk(true); - CloseDisk(); - NewDisk(); - - ContinueFile = true; - CreateNewDisk = false; - - DPRINT(MAX_TRACE, ("First on new disk. CurrentIBufferSize (%u) CurrentOBufferSize (%u).\n", - (UINT)CurrentIBufferSize, (UINT)CurrentOBufferSize)); - - if ((CurrentIBufferSize > 0) || (CurrentOBufferSize > 0)) - { - Status = WriteDataBlock(); - if (Status != CAB_STATUS_SUCCESS) - return Status; - } - } - } - else - { - ContinueFile = false; - FileNode = FileNode->Next; - } - } - - if ((CurrentIBufferSize > 0) || (CurrentOBufferSize > 0)) - { - /* A data block could span more than two - disks if MaxDiskSize is very small */ - - ASSERT(CreateNewDisk == false); - - do - { - if (CreateNewDisk) - { - DPRINT(MID_TRACE, ("Creating new disk 2.\n")); - CommitDisk(true); - CloseDisk(); - NewDisk(); - CreateNewDisk = false; - - ASSERT(FileNode == FileListHead); - } - - if ((CurrentIBufferSize > 0) || (CurrentOBufferSize > 0)) - { - Status = WriteDataBlock(); - if (Status != CAB_STATUS_SUCCESS) - return Status; - } - } while (CreateNewDisk); - } - CommitDisk(MoreDisks); - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::CommitDisk(ULONG MoreDisks) -/* - * FUNCTION: Commits the current disk - * ARGUMENTS: - * MoreDisks = true if there is one or more disks after this disk - * RETURNS: - * Status of operation - */ -{ - PCFFOLDER_NODE FolderNode; - ULONG Status; - - OnCabinetName(CurrentDiskNumber, CabinetName); - - /* Create file, fail if it already exists */ -#if defined(_WIN32) - FileHandle = CreateFile(CabinetName, // Create this file - GENERIC_WRITE, // Open for writing - 0, // No sharing - NULL, // No security - CREATE_NEW, // New file only - FILE_ATTRIBUTE_NORMAL, // Normal file - NULL); // No attribute template - if (FileHandle == INVALID_HANDLE_VALUE) - { - ULONG Status; - /* If file exists, ask to overwrite file */ - if (((Status = GetLastError()) == ERROR_FILE_EXISTS) && - (OnOverwrite(NULL, CabinetName))) - { - - /* Create cabinet file, overwrite if it already exists */ - FileHandle = CreateFile(CabinetName, // Create this file - GENERIC_WRITE, // Open for writing - 0, // No sharing - NULL, // No security - TRUNCATE_EXISTING, // Truncate the file - FILE_ATTRIBUTE_NORMAL, // Normal file - NULL); // No attribute template - if (FileHandle == INVALID_HANDLE_VALUE) - return CAB_STATUS_CANNOT_CREATE; - } - else - { - if (Status == ERROR_FILE_EXISTS) - return CAB_STATUS_FILE_EXISTS; - else - return CAB_STATUS_CANNOT_CREATE; - } - } -#else /* !_WIN32 */ - FileHandle = fopen(CabinetName, "rb"); - if (FileHandle != NULL) - { - fclose(FileHandle); - /* If file exists, ask to overwrite file */ - if (OnOverwrite(NULL, CabinetName)) - { - FileHandle = fopen(CabinetName, "w+b"); - if (FileHandle == NULL) - return CAB_STATUS_CANNOT_CREATE; - } - else - return CAB_STATUS_FILE_EXISTS; - - } - else - { - FileHandle = fopen(CabinetName, "w+b"); - if (FileHandle == NULL) - return CAB_STATUS_CANNOT_CREATE; - } -#endif - - WriteCabinetHeader(MoreDisks != 0); - - Status = WriteFolderEntries(); - if (Status != CAB_STATUS_SUCCESS) - return Status; - - /* Write file entries */ - WriteFileEntries(); - - /* Write data blocks */ - FolderNode = FolderListHead; - while (FolderNode != NULL) - { - if (FolderNode->Commit) - { - Status = CommitDataBlocks(FolderNode); - if (Status != CAB_STATUS_SUCCESS) - return Status; - /* Remove data blocks for folder */ - DestroyDataNodes(FolderNode); - } - FolderNode = FolderNode->Next; - } - - CloseFile(FileHandle); - - ScratchFile->Truncate(); - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::CloseDisk() -/* - * FUNCTION: Closes the current disk - * RETURNS: - * Status of operation - */ -{ - DestroyDeletedFileNodes(); - - /* Destroy folder nodes that are completely stored */ - DestroyDeletedFolderNodes(); - - CurrentDiskNumber++; - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::CloseCabinet() -/* - * FUNCTION: Closes the current cabinet - * RETURNS: - * Status of operation - */ -{ - ULONG Status; - - DestroyFileNodes(); - - DestroyFolderNodes(); - - if (InputBuffer) - { - FreeMemory(InputBuffer); - InputBuffer = NULL; - } - - if (OutputBuffer) - { - FreeMemory(OutputBuffer); - OutputBuffer = NULL; - } - - Close(); - - if (ScratchFile) - { - Status = ScratchFile->Destroy(); - delete ScratchFile; - return Status; - } - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::AddFile(char* FileName) -/* - * FUNCTION: Adds a file to the current disk - * ARGUMENTS: - * FileName = Pointer to string with file name (full path) - * RETURNS: - * Status of operation - */ -{ - FILEHANDLE SrcFile; - PCFFILE_NODE FileNode; - char* NewFileName; - - NewFileName = (char*)AllocateMemory(strlen(FileName) + 1); - if (!NewFileName) - { - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - return CAB_STATUS_NOMEMORY; - } - strcpy(NewFileName, FileName); - ConvertPath(NewFileName, false); - - /* Try to open file */ -#if defined(_WIN32) - SrcFile = CreateFile( - NewFileName, // Open this file - GENERIC_READ, // Open for reading - FILE_SHARE_READ, // Share for reading - NULL, // No security - OPEN_EXISTING, // File must exist - FILE_ATTRIBUTE_NORMAL, // Normal file - NULL); // No attribute template - if (SrcFile == INVALID_HANDLE_VALUE) - { - DPRINT(MID_TRACE, ("File not found (%s).\n", NewFileName)); - FreeMemory(NewFileName); - return CAB_STATUS_CANNOT_OPEN; - } -#else /* !_WIN32 */ - SrcFile = fopen(NewFileName, "rb"); - if (SrcFile == NULL) - { - DPRINT(MID_TRACE, ("File not found (%s).\n", NewFileName)); - FreeMemory(NewFileName); - return CAB_STATUS_CANNOT_OPEN; - } -#endif - - FileNode = NewFileNode(); - if (!FileNode) - { - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - FreeMemory(NewFileName); - CloseFile(SrcFile); - return CAB_STATUS_NOMEMORY; - } - - FileNode->FolderNode = CurrentFolderNode; - FileNode->FileName = NewFileName; - - /* FIXME: Check for and handle large files (>= 2GB) */ - FileNode->File.FileSize = GetSizeOfFile(SrcFile); - if (FileNode->File.FileSize == (ULONG)-1) - { - DPRINT(MIN_TRACE, ("Cannot read from file.\n")); - FreeMemory(NewFileName); - CloseFile(SrcFile); - return CAB_STATUS_CANNOT_READ; - } - - if (GetFileTimes(SrcFile, FileNode) != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot read file times.\n")); - FreeMemory(NewFileName); - CloseFile(SrcFile); - return CAB_STATUS_CANNOT_READ; - } - - if (GetAttributesOnFile(FileNode) != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot read file attributes.\n")); - FreeMemory(NewFileName); - CloseFile(SrcFile); - return CAB_STATUS_CANNOT_READ; - } - - CloseFile(SrcFile); - - return CAB_STATUS_SUCCESS; -} - -bool CCabinet::CreateSimpleCabinet() -/* - * FUNCTION: Create a simple cabinet based on the files in the criteria list - */ -{ - bool bRet = false; - char* pszFile; - char szFilePath[PATH_MAX]; - char szFile[PATH_MAX]; - PSEARCH_CRITERIA Criteria; - ULONG Status; - -#if defined(_WIN32) - HANDLE hFind; - WIN32_FIND_DATA FindFileData; -#else - DIR* dirp; - struct dirent* dp; - struct stat stbuf; -#endif - - // Initialize a new cabinet - Status = NewCabinet(); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot create cabinet (%u).\n", (UINT)Status)); - goto cleanup2; - } - - // Add each file in the criteria list - Criteria = CriteriaListHead; - - while(Criteria) - { - // Store the file path with a trailing slash in szFilePath - ConvertPath(Criteria->Search, false); - pszFile = strrchr(Criteria->Search, DIR_SEPARATOR_CHAR); - - if(pszFile) - { - // Set the pointer to the start of the file name, not the slash - pszFile++; - - strncpy(szFilePath, Criteria->Search, pszFile - Criteria->Search); - szFilePath[pszFile - Criteria->Search] = 0; - } - else - { - pszFile = Criteria->Search; - -#if defined(_WIN32) - szFilePath[0] = 0; -#else - // needed for opendir() - strcpy(szFilePath, "./"); -#endif - } - -#if defined(_WIN32) - // Windows: Use the easy FindFirstFile/FindNextFile API for getting all files and checking them against the pattern - hFind = FindFirstFile(Criteria->Search, &FindFileData); - - // Don't stop if a search criteria is not found - if(hFind == INVALID_HANDLE_VALUE && GetLastError() != ERROR_FILE_NOT_FOUND) - { - DPRINT(MIN_TRACE, ("FindFirstFile failed, Criteria: %s, error code is %u\n", Criteria->Search, (UINT)GetLastError())); - goto cleanup; - } - - do - { - if(!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) - { - strcpy(szFile, szFilePath); - strcat(szFile, FindFileData.cFileName); - - Status = AddFile(szFile); - - if(Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot add file to cabinet (%u).\n", (UINT)Status)); - goto cleanup; - } - } - } - while(FindNextFile(hFind, &FindFileData)); - - FindClose(hFind); -#else - // Unix: Use opendir/readdir to loop through all entries, stat to check if it's a file and MatchFileNamePattern to match the file against the pattern - dirp = opendir(szFilePath); - - if(dirp) - { - while( (dp = readdir(dirp)) ) - { - strcpy(szFile, szFilePath); - strcat(szFile, dp->d_name); - - if(stat(szFile, &stbuf) == 0) - { - if(stbuf.st_mode != S_IFDIR) - { - if(MatchFileNamePattern(dp->d_name, pszFile)) - { - Status = AddFile(szFile); - - if(Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot add file to cabinet (%u).\n", (UINT)Status)); - goto cleanup; - } - } - } - } - else - { - DPRINT(MIN_TRACE, ("stat failed, error code is %i\n", errno)); - goto cleanup; - } - } - - closedir(dirp); - } -#endif - - Criteria = Criteria->Next; - } - - Status = WriteDisk(false); - if (Status == CAB_STATUS_SUCCESS) - Status = CloseDisk(); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot write disk (%u).\n", (UINT)Status)); - goto cleanup; - } - -cleanup: - CloseCabinet(); - bRet = true; - -cleanup2: - DestroySearchCriteria(); - return bRet; -} - -void CCabinet::SetMaxDiskSize(ULONG Size) -/* - * FUNCTION: Sets the maximum size of the current disk - * ARGUMENTS: - * Size = Maximum size of current disk (0 means no maximum size) - */ -{ - MaxDiskSize = Size; -} - -#endif /* CAB_READ_ONLY */ - - -/* Default event handlers */ - -bool CCabinet::OnOverwrite(PCFFILE File, - char* FileName) -/* - * FUNCTION: Called when extracting a file and it already exists - * ARGUMENTS: - * File = Pointer to CFFILE for file being extracted - * FileName = Pointer to buffer with name of file (full path) - * RETURNS - * true if the file should be overwritten, false if not - */ -{ - return false; -} - - -void CCabinet::OnExtract(PCFFILE File, - char* FileName) -/* - * FUNCTION: Called just before extracting a file - * ARGUMENTS: - * File = Pointer to CFFILE for file being extracted - * FileName = Pointer to buffer with name of file (full path) - */ -{ -} - - -void CCabinet::OnDiskChange(char* CabinetName, - char* DiskLabel) -/* - * FUNCTION: Called when a new disk is to be processed - * ARGUMENTS: - * CabinetName = Pointer to buffer with name of cabinet - * DiskLabel = Pointer to buffer with label of disk - */ -{ -} - - -#ifndef CAB_READ_ONLY - -void CCabinet::OnAdd(PCFFILE File, - char* FileName) -/* - * FUNCTION: Called just before adding a file to a cabinet - * ARGUMENTS: - * File = Pointer to CFFILE for file being added - * FileName = Pointer to buffer with name of file (full path) - */ -{ -} - - -bool CCabinet::OnDiskLabel(ULONG Number, char* Label) -/* - * FUNCTION: Called when a disk needs a label - * ARGUMENTS: - * Number = Cabinet number that needs a label - * Label = Pointer to buffer to place label of disk - * RETURNS: - * true if a disk label was returned, false if not - */ -{ - return false; -} - - -bool CCabinet::OnCabinetName(ULONG Number, char* Name) -/* - * FUNCTION: Called when a cabinet needs a name - * ARGUMENTS: - * Number = Disk number that needs a name - * Name = Pointer to buffer to place name of cabinet - * RETURNS: - * true if a cabinet name was returned, false if not - */ -{ - return false; -} - -#endif /* CAB_READ_ONLY */ - -PCFFOLDER_NODE CCabinet::LocateFolderNode(ULONG Index) -/* - * FUNCTION: Locates a folder node - * ARGUMENTS: - * Index = Folder index - * RETURNS: - * Pointer to folder node or NULL if the folder node was not found - */ -{ - PCFFOLDER_NODE Node; - - switch (Index) - { - case CAB_FILE_SPLIT: - return FolderListTail; - - case CAB_FILE_CONTINUED: - case CAB_FILE_PREV_NEXT: - return FolderListHead; - } - - Node = FolderListHead; - while (Node != NULL) - { - if (Node->Index == Index) - return Node; - Node = Node->Next; - } - return NULL; -} - - -ULONG CCabinet::GetAbsoluteOffset(PCFFILE_NODE File) -/* - * FUNCTION: Returns the absolute offset of a file - * ARGUMENTS: - * File = Pointer to CFFILE_NODE structure for file - * RETURNS: - * Status of operation - */ -{ - PCFDATA_NODE Node; - - DPRINT(MAX_TRACE, ("FileName '%s' FileOffset (0x%X) FileSize (%u).\n", - File->FileName, - (UINT)File->File.FileOffset, - (UINT)File->File.FileSize)); - - Node = CurrentFolderNode->DataListHead; - while (Node != NULL) - { - DPRINT(MAX_TRACE, ("GetAbsoluteOffset(): Comparing (0x%X, 0x%X) (%u).\n", - (UINT)Node->UncompOffset, - (UINT)(Node->UncompOffset + Node->Data.UncompSize), - (UINT)Node->Data.UncompSize)); - - /* Node->Data.UncompSize will be 0 if the block is split - (ie. it is the last block in this cabinet) */ - if ((Node->Data.UncompSize == 0) || - ((File->File.FileOffset >= Node->UncompOffset) && - (File->File.FileOffset < Node->UncompOffset + - Node->Data.UncompSize))) - { - File->DataBlock = Node; - return CAB_STATUS_SUCCESS; - } - - Node = Node->Next; - } - return CAB_STATUS_INVALID_CAB; -} - - -ULONG CCabinet::LocateFile(char* FileName, - PCFFILE_NODE *File) -/* - * FUNCTION: Locates a file in the cabinet - * ARGUMENTS: - * FileName = Pointer to string with name of file to locate - * File = Address of pointer to CFFILE_NODE structure to fill - * RETURNS: - * Status of operation - * NOTES: - * Current folder is set to the folder of the file - */ -{ - PCFFILE_NODE Node; - ULONG Status; - - DPRINT(MAX_TRACE, ("FileName '%s'\n", FileName)); - - Node = FileListHead; - while (Node != NULL) - { - if (strcasecmp(FileName, Node->FileName) == 0) - { - CurrentFolderNode = LocateFolderNode(Node->File.FileControlID); - if (!CurrentFolderNode) - { - DPRINT(MID_TRACE, ("Folder with index number (%u) not found.\n", - Node->File.FileControlID)); - return CAB_STATUS_INVALID_CAB; - } - - if (Node->DataBlock == NULL) - Status = GetAbsoluteOffset(Node); - else - Status = CAB_STATUS_SUCCESS; - - *File = Node; - return Status; - } - Node = Node->Next; - } - return CAB_STATUS_NOFILE; -} - - -ULONG CCabinet::ReadString(char* String, LONG MaxLength) -/* - * FUNCTION: Reads a NULL-terminated string from the cabinet - * ARGUMENTS: - * String = Pointer to buffer to place string - * MaxLength = Maximum length of string - * RETURNS: - * Status of operation - */ -{ - ULONG BytesRead; - ULONG Status; - LONG Size; - bool Found; - - Found = false; - - Status = ReadBlock(String, MaxLength, &BytesRead); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot read from file (%u).\n", (UINT)Status)); - return CAB_STATUS_INVALID_CAB; - } - - // Find the terminating NULL character - for (Size = 0; Size < MaxLength; Size++) - { - if (String[Size] == '\0') - { - Found = true; - break; - } - } - - if (!Found) - { - DPRINT(MIN_TRACE, ("Filename in the cabinet file is too long.\n")); - return CAB_STATUS_INVALID_CAB; - } - - // Compute the offset of the next CFFILE. - // We have to subtract from the current offset here, because we read MaxLength characters above and most-probably the file name isn't MaxLength characters long. - // + 1 to skip the terminating NULL character as well. - Size = -(MaxLength - Size) + 1; - -#if defined(_WIN32) - if( SetFilePointer(FileHandle, - (LONG)Size, - NULL, - FILE_CURRENT) == INVALID_SET_FILE_POINTER ) - { - DPRINT(MIN_TRACE, ("SetFilePointer() failed, error code is %u.\n", (UINT)GetLastError())); - return CAB_STATUS_INVALID_CAB; - } -#else - if (fseek(FileHandle, (off_t)Size, SEEK_CUR) != 0) - { - DPRINT(MIN_TRACE, ("fseek() failed.\n")); - return CAB_STATUS_INVALID_CAB; - } -#endif - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::ReadFileTable() -/* - * FUNCTION: Reads the file table from the cabinet file - * RETURNS: - * Status of operation - */ -{ - ULONG i; - ULONG Status; - ULONG BytesRead; - PCFFILE_NODE File; - - DPRINT(MAX_TRACE, ("Reading file table at absolute offset (0x%X).\n", - (UINT)CABHeader.FileTableOffset)); - - /* Seek to file table */ -#if defined(_WIN32) - if( SetFilePointer(FileHandle, - CABHeader.FileTableOffset, - NULL, - FILE_BEGIN) == INVALID_SET_FILE_POINTER ) - { - DPRINT(MIN_TRACE, ("SetFilePointer() failed, error code is %u.\n", (UINT)GetLastError())); - return CAB_STATUS_INVALID_CAB; - } -#else - if (fseek(FileHandle, (off_t)CABHeader.FileTableOffset, SEEK_SET) != 0) - { - DPRINT(MIN_TRACE, ("fseek() failed.\n")); - return CAB_STATUS_INVALID_CAB; - } -#endif - - for (i = 0; i < CABHeader.FileCount; i++) - { - File = NewFileNode(); - if (!File) - { - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - return CAB_STATUS_NOMEMORY; - } - - if ((Status = ReadBlock(&File->File, sizeof(CFFILE), - &BytesRead)) != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot read from file (%u).\n", (UINT)Status)); - return CAB_STATUS_INVALID_CAB; - } - - File->FileName = (char*)AllocateMemory(PATH_MAX); - if (!File->FileName) - { - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - return CAB_STATUS_NOMEMORY; - } - - /* Read file name */ - Status = ReadString(File->FileName, PATH_MAX); - if (Status != CAB_STATUS_SUCCESS) - return Status; - - DPRINT(MAX_TRACE, ("Found file '%s' at uncompressed offset (0x%X). Size (%u bytes) ControlId (0x%X).\n", - File->FileName, - (UINT)File->File.FileOffset, - (UINT)File->File.FileSize, - File->File.FileControlID)); - - } - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::ReadDataBlocks(PCFFOLDER_NODE FolderNode) -/* - * FUNCTION: Reads all CFDATA blocks for a folder from the cabinet file - * ARGUMENTS: - * FolderNode = Pointer to CFFOLDER_NODE structure for folder - * RETURNS: - * Status of operation - */ -{ - ULONG AbsoluteOffset; - ULONG UncompOffset; - PCFDATA_NODE Node; - ULONG BytesRead; - ULONG Status; - ULONG i; - - DPRINT(MAX_TRACE, ("Reading data blocks for folder (%u) at absolute offset (0x%X).\n", - (UINT)FolderNode->Index, (UINT)FolderNode->Folder.DataOffset)); - - AbsoluteOffset = FolderNode->Folder.DataOffset; - UncompOffset = FolderNode->UncompOffset; - - for (i = 0; i < FolderNode->Folder.DataBlockCount; i++) - { - Node = NewDataNode(FolderNode); - if (!Node) - { - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - return CAB_STATUS_NOMEMORY; - } - - /* Seek to data block */ -#if defined(_WIN32) - if( SetFilePointer(FileHandle, - AbsoluteOffset, - NULL, - FILE_BEGIN) == INVALID_SET_FILE_POINTER ) - { - DPRINT(MIN_TRACE, ("SetFilePointer() failed, error code is %u.\n", (UINT)GetLastError())); - return CAB_STATUS_INVALID_CAB; - } -#else - if (fseek(FileHandle, (off_t)AbsoluteOffset, SEEK_SET) != 0) - { - DPRINT(MIN_TRACE, ("fseek() failed.\n")); - return CAB_STATUS_INVALID_CAB; - } -#endif - - if ((Status = ReadBlock(&Node->Data, sizeof(CFDATA), - &BytesRead)) != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot read from file (%u).\n", (UINT)Status)); - return CAB_STATUS_INVALID_CAB; - } - - DPRINT(MAX_TRACE, ("AbsOffset (0x%X) UncompOffset (0x%X) Checksum (0x%X) CompSize (%u) UncompSize (%u).\n", - (UINT)AbsoluteOffset, - (UINT)UncompOffset, - (UINT)Node->Data.Checksum, - Node->Data.CompSize, - Node->Data.UncompSize)); - - Node->AbsoluteOffset = AbsoluteOffset; - Node->UncompOffset = UncompOffset; - - AbsoluteOffset += sizeof(CFDATA) + Node->Data.CompSize; - UncompOffset += Node->Data.UncompSize; - } - - FolderUncompSize = UncompOffset; - - return CAB_STATUS_SUCCESS; -} - - -PCFFOLDER_NODE CCabinet::NewFolderNode() -/* - * FUNCTION: Creates a new folder node - * RETURNS: - * Pointer to node if there was enough free memory available, otherwise NULL - */ -{ - PCFFOLDER_NODE Node; - - Node = (PCFFOLDER_NODE)AllocateMemory(sizeof(CFFOLDER_NODE)); - if (!Node) - return NULL; - - memset(Node, 0, sizeof(CFFOLDER_NODE)); - - Node->Folder.CompressionType = CAB_COMP_NONE; - - Node->Prev = FolderListTail; - - if (FolderListTail != NULL) - FolderListTail->Next = Node; - else - FolderListHead = Node; - - FolderListTail = Node; - - return Node; -} - - -PCFFILE_NODE CCabinet::NewFileNode() -/* - * FUNCTION: Creates a new file node - * ARGUMENTS: - * FolderNode = Pointer to folder node to bind file to - * RETURNS: - * Pointer to node if there was enough free memory available, otherwise NULL - */ -{ - PCFFILE_NODE Node; - - Node = (PCFFILE_NODE)AllocateMemory(sizeof(CFFILE_NODE)); - if (!Node) - return NULL; - - memset(Node, 0, sizeof(CFFILE_NODE)); - - Node->Prev = FileListTail; - - if (FileListTail != NULL) - FileListTail->Next = Node; - else - FileListHead = Node; - - FileListTail = Node; - - return Node; -} - - -PCFDATA_NODE CCabinet::NewDataNode(PCFFOLDER_NODE FolderNode) -/* - * FUNCTION: Creates a new data block node - * ARGUMENTS: - * FolderNode = Pointer to folder node to bind data block to - * RETURNS: - * Pointer to node if there was enough free memory available, otherwise NULL - */ -{ - PCFDATA_NODE Node; - - Node = (PCFDATA_NODE)AllocateMemory(sizeof(CFDATA_NODE)); - if (!Node) - return NULL; - - memset(Node, 0, sizeof(CFDATA_NODE)); - - Node->Prev = FolderNode->DataListTail; - - if (FolderNode->DataListTail != NULL) - FolderNode->DataListTail->Next = Node; - else - FolderNode->DataListHead = Node; - - FolderNode->DataListTail = Node; - - return Node; -} - - -void CCabinet::DestroyDataNodes(PCFFOLDER_NODE FolderNode) -/* - * FUNCTION: Destroys data block nodes bound to a folder node - * ARGUMENTS: - * FolderNode = Pointer to folder node - */ -{ - PCFDATA_NODE PrevNode; - PCFDATA_NODE NextNode; - - NextNode = FolderNode->DataListHead; - while (NextNode != NULL) - { - PrevNode = NextNode->Next; - FreeMemory(NextNode); - NextNode = PrevNode; - } - FolderNode->DataListHead = NULL; - FolderNode->DataListTail = NULL; -} - - -void CCabinet::DestroyFileNodes() -/* - * FUNCTION: Destroys file nodes - */ -{ - PCFFILE_NODE PrevNode; - PCFFILE_NODE NextNode; - - NextNode = FileListHead; - while (NextNode != NULL) - { - PrevNode = NextNode->Next; - if (NextNode->FileName) - FreeMemory(NextNode->FileName); - FreeMemory(NextNode); - NextNode = PrevNode; - } - FileListHead = NULL; - FileListTail = NULL; -} - - -void CCabinet::DestroyDeletedFileNodes() -/* - * FUNCTION: Destroys file nodes that are marked for deletion - */ -{ - PCFFILE_NODE CurNode; - PCFFILE_NODE NextNode; - - CurNode = FileListHead; - while (CurNode != NULL) - { - NextNode = CurNode->Next; - - if (CurNode->Delete) - { - if (CurNode->Prev != NULL) - CurNode->Prev->Next = CurNode->Next; - else - { - FileListHead = CurNode->Next; - if (FileListHead) - FileListHead->Prev = NULL; - } - - if (CurNode->Next != NULL) - CurNode->Next->Prev = CurNode->Prev; - else - { - FileListTail = CurNode->Prev; - if (FileListTail) - FileListTail->Next = NULL; - } - - DPRINT(MAX_TRACE, ("Deleting file: '%s'\n", CurNode->FileName)); - - TotalFileSize -= (sizeof(CFFILE) + (ULONG)strlen(GetFileName(CurNode->FileName)) + 1); - - if (CurNode->FileName) - FreeMemory(CurNode->FileName); - FreeMemory(CurNode); - } - CurNode = NextNode; - } -} - - -void CCabinet::DestroyFolderNodes() -/* - * FUNCTION: Destroys folder nodes - */ -{ - PCFFOLDER_NODE PrevNode; - PCFFOLDER_NODE NextNode; - - NextNode = FolderListHead; - while (NextNode != NULL) - { - PrevNode = NextNode->Next; - DestroyDataNodes(NextNode); - FreeMemory(NextNode); - NextNode = PrevNode; - } - FolderListHead = NULL; - FolderListTail = NULL; -} - - -void CCabinet::DestroyDeletedFolderNodes() -/* - * FUNCTION: Destroys folder nodes that are marked for deletion - */ -{ - PCFFOLDER_NODE CurNode; - PCFFOLDER_NODE NextNode; - - CurNode = FolderListHead; - while (CurNode != NULL) - { - NextNode = CurNode->Next; - - if (CurNode->Delete) - { - if (CurNode->Prev != NULL) - CurNode->Prev->Next = CurNode->Next; - else - { - FolderListHead = CurNode->Next; - if (FolderListHead) - FolderListHead->Prev = NULL; - } - - if (CurNode->Next != NULL) - CurNode->Next->Prev = CurNode->Prev; - else - { - FolderListTail = CurNode->Prev; - if (FolderListTail) - FolderListTail->Next = NULL; - } - - DestroyDataNodes(CurNode); - FreeMemory(CurNode); - - TotalFolderSize -= sizeof(CFFOLDER); - } - CurNode = NextNode; - } -} - - -ULONG CCabinet::ComputeChecksum(void* Buffer, - ULONG Size, - ULONG Seed) -/* - * FUNCTION: Computes checksum for data block - * ARGUMENTS: - * Buffer = Pointer to data buffer - * Size = Length of data buffer - * Seed = Previously computed checksum - * RETURNS: - * Checksum of buffer - */ -{ - int UlongCount; // Number of ULONGs in block - ULONG Checksum; // Checksum accumulator - unsigned char* pb; - ULONG ul; - - /* FIXME: Doesn't seem to be correct. EXTRACT.EXE - won't accept checksums computed by this routine */ - - DPRINT(MIN_TRACE, ("Checksumming buffer (0x%p) Size (%u)\n", Buffer, (UINT)Size)); - - UlongCount = Size / 4; // Number of ULONGs - Checksum = Seed; // Init checksum - pb = (unsigned char*)Buffer; // Start at front of data block - - /* Checksum integral multiple of ULONGs */ - while (UlongCount-- > 0) - { - /* NOTE: Build ULONG in big/little-endian independent manner */ - ul = *pb++; // Get low-order byte - ul |= (((ULONG)(*pb++)) << 8); // Add 2nd byte - ul |= (((ULONG)(*pb++)) << 16); // Add 3nd byte - ul |= (((ULONG)(*pb++)) << 24); // Add 4th byte - - Checksum ^= ul; // Update checksum - } - - /* Checksum remainder bytes */ - ul = 0; - switch (Size % 4) - { - case 3: - ul |= (((ULONG)(*pb++)) << 16); // Add 3rd byte - case 2: - ul |= (((ULONG)(*pb++)) << 8); // Add 2nd byte - case 1: - ul |= *pb++; // Get low-order byte - default: - break; - } - Checksum ^= ul; // Update checksum - - /* Return computed checksum */ - return Checksum; -} - - -ULONG CCabinet::ReadBlock(void* Buffer, - ULONG Size, - PULONG BytesRead) -/* - * FUNCTION: Read a block of data from file - * ARGUMENTS: - * Buffer = Pointer to data buffer - * Size = Length of data buffer - * BytesRead = Pointer to ULONG that on return will contain - * number of bytes read - * RETURNS: - * Status of operation - */ -{ - if (!ReadFileData(FileHandle, Buffer, Size, BytesRead)) - return CAB_STATUS_INVALID_CAB; - return CAB_STATUS_SUCCESS; -} - -bool CCabinet::MatchFileNamePattern(char* FileName, char* Pattern) -/* - * FUNCTION: Matches a wildcard character pattern against a file - * ARGUMENTS: - * FileName = The file name to check - * Pattern = The pattern - * RETURNS: - * Whether the pattern matches the file - * - * COPYRIGHT: - * This function is based on Busybox code, Copyright (C) 1998 by Erik Andersen, released under GPL2 or any later version. - * Adapted from code written by Ingo Wilken. - * Original location: http://www.busybox.net/cgi-bin/viewcvs.cgi/trunk/busybox/utility.c?rev=5&view=markup - */ -{ - char* retryPattern = NULL; - char* retryFileName = NULL; - char ch; - - while (*FileName || *Pattern) - { - ch = *Pattern++; - - switch (ch) - { - case '*': - retryPattern = Pattern; - retryFileName = FileName; - break; - - case '?': - if (*FileName++ == '\0') - return false; - - break; - - default: - if (*FileName == ch) - { - if (*FileName) - FileName++; - break; - } - - if (*FileName) - { - Pattern = retryPattern; - FileName = ++retryFileName; - break; - } - - return false; - } - - if (!Pattern) - return false; - } - - return true; -} - -#ifndef CAB_READ_ONLY - -ULONG CCabinet::InitCabinetHeader() -/* - * FUNCTION: Initializes cabinet header and optional fields - * RETURNS: - * Status of operation - */ -{ - ULONG TotalSize; - ULONG Size; - - CABHeader.FileTableOffset = 0; // Not known yet - CABHeader.FolderCount = 0; // Not known yet - CABHeader.FileCount = 0; // Not known yet - CABHeader.Flags = 0; // Not known yet - - CABHeader.CabinetNumber = (USHORT)CurrentDiskNumber; - - if ((CurrentDiskNumber > 0) && (OnCabinetName(PrevCabinetNumber, CabinetPrev))) - { - CABHeader.Flags |= CAB_FLAG_HASPREV; - if (!OnDiskLabel(PrevCabinetNumber, DiskPrev)) - strcpy(CabinetPrev, ""); - } - - if (OnCabinetName(CurrentDiskNumber + 1, CabinetNext)) - { - CABHeader.Flags |= CAB_FLAG_HASNEXT; - if (!OnDiskLabel(CurrentDiskNumber + 1, DiskNext)) - strcpy(DiskNext, ""); - } - - TotalSize = 0; - - if ((CABHeader.Flags & CAB_FLAG_HASPREV) > 0) - { - - DPRINT(MAX_TRACE, ("CabinetPrev '%s'.\n", CabinetPrev)); - - /* Calculate size of name of previous cabinet */ - TotalSize += (ULONG)strlen(CabinetPrev) + 1; - - /* Calculate size of label of previous disk */ - TotalSize += (ULONG)strlen(DiskPrev) + 1; - } - - if ((CABHeader.Flags & CAB_FLAG_HASNEXT) > 0) - { - - DPRINT(MAX_TRACE, ("CabinetNext '%s'.\n", CabinetNext)); - - /* Calculate size of name of next cabinet */ - Size = (ULONG)strlen(CabinetNext) + 1; - TotalSize += Size; - NextFieldsSize = Size; - - /* Calculate size of label of next disk */ - Size = (ULONG)strlen(DiskNext) + 1; - TotalSize += Size; - NextFieldsSize += Size; - } - else - NextFieldsSize = 0; - - /* Add cabinet reserved area size if present */ - if (CabinetReservedFileSize > 0) - { - CABHeader.Flags |= CAB_FLAG_RESERVE; - TotalSize += CabinetReservedFileSize; - TotalSize += sizeof(ULONG); /* For CabinetResSize, FolderResSize, and FileResSize fields */ - } - - DiskSize += TotalSize; - - TotalHeaderSize = sizeof(CFHEADER) + TotalSize; - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::WriteCabinetHeader(bool MoreDisks) -/* - * FUNCTION: Writes the cabinet header and optional fields - * ARGUMENTS: - * MoreDisks = true if next cabinet name should be included - * RETURNS: - * Status of operation - */ -{ - PCFFOLDER_NODE FolderNode; - PCFFILE_NODE FileNode; - ULONG BytesWritten; - ULONG Size; - - if (MoreDisks) - { - CABHeader.Flags |= CAB_FLAG_HASNEXT; - Size = TotalHeaderSize; - } - else - { - CABHeader.Flags &= ~CAB_FLAG_HASNEXT; - DiskSize -= NextFieldsSize; - Size = TotalHeaderSize - NextFieldsSize; - } - - /* Set absolute folder offsets */ - BytesWritten = Size + TotalFolderSize + TotalFileSize; - CABHeader.FolderCount = 0; - FolderNode = FolderListHead; - while (FolderNode != NULL) - { - FolderNode->Folder.DataOffset = BytesWritten; - - BytesWritten += FolderNode->TotalFolderSize; - - CABHeader.FolderCount++; - - FolderNode = FolderNode->Next; - } - - /* Set absolute offset of file table */ - CABHeader.FileTableOffset = Size + TotalFolderSize; - - /* Count number of files to be committed */ - CABHeader.FileCount = 0; - FileNode = FileListHead; - while (FileNode != NULL) - { - if (FileNode->Commit) - CABHeader.FileCount++; - FileNode = FileNode->Next; - } - - CABHeader.CabinetSize = DiskSize; - - /* Write header */ -#if defined(_WIN32) - if (!WriteFile(FileHandle, &CABHeader, sizeof(CFHEADER), (LPDWORD)&BytesWritten, NULL)) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#else - BytesWritten = sizeof(CFHEADER); - if (fwrite(&CABHeader, sizeof(CFHEADER), 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - - /* Write per-cabinet reserved area if present */ - if (CABHeader.Flags & CAB_FLAG_RESERVE) - { - ULONG ReservedSize; - - ReservedSize = CabinetReservedFileSize & 0xffff; - ReservedSize |= (0 << 16); /* Folder reserved area size */ - ReservedSize |= (0 << 24); /* Folder reserved area size */ -#if defined(_WIN32) - if (!WriteFile(FileHandle, &ReservedSize, sizeof(ULONG), (LPDWORD)&BytesWritten, NULL)) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#else - BytesWritten = sizeof(ULONG); - if (fwrite(&ReservedSize, sizeof(ULONG), 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - -#if defined(_WIN32) - if (!WriteFile(FileHandle, CabinetReservedFileBuffer, CabinetReservedFileSize, (LPDWORD)&BytesWritten, NULL)) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#else - BytesWritten = CabinetReservedFileSize; - if (fwrite(CabinetReservedFileBuffer, CabinetReservedFileSize, 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - } - - if ((CABHeader.Flags & CAB_FLAG_HASPREV) > 0) - { - DPRINT(MAX_TRACE, ("CabinetPrev '%s'.\n", CabinetPrev)); - - /* Write name of previous cabinet */ - Size = (ULONG)strlen(CabinetPrev) + 1; -#if defined(_WIN32) - if (!WriteFile(FileHandle, CabinetPrev, Size, (LPDWORD)&BytesWritten, NULL)) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#else - BytesWritten = Size; - if (fwrite(CabinetPrev, Size, 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - - DPRINT(MAX_TRACE, ("DiskPrev '%s'.\n", DiskPrev)); - - /* Write label of previous disk */ - Size = (ULONG)strlen(DiskPrev) + 1; -#if defined(_WIN32) - if (!WriteFile(FileHandle, DiskPrev, Size, (LPDWORD)&BytesWritten, NULL)) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#else - BytesWritten = Size; - if (fwrite(DiskPrev, Size, 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - } - - if ((CABHeader.Flags & CAB_FLAG_HASNEXT) > 0) - { - DPRINT(MAX_TRACE, ("CabinetNext '%s'.\n", CabinetNext)); - - /* Write name of next cabinet */ - Size = (ULONG)strlen(CabinetNext) + 1; -#if defined(_WIN32) - if (!WriteFile(FileHandle, CabinetNext, Size, (LPDWORD)&BytesWritten, NULL)) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#else - BytesWritten = Size; - if (fwrite(CabinetNext, Size, 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - - DPRINT(MAX_TRACE, ("DiskNext '%s'.\n", DiskNext)); - - /* Write label of next disk */ - Size = (ULONG)strlen(DiskNext) + 1; -#if defined(_WIN32) - if (!WriteFile(FileHandle, DiskNext, Size, (LPDWORD)&BytesWritten, NULL)) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#else - BytesWritten = Size; - if (fwrite(DiskNext, Size, 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - } - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::WriteFolderEntries() -/* - * FUNCTION: Writes folder entries - * RETURNS: - * Status of operation - */ -{ - PCFFOLDER_NODE FolderNode; - ULONG BytesWritten; - - DPRINT(MAX_TRACE, ("Writing folder table.\n")); - - FolderNode = FolderListHead; - while (FolderNode != NULL) - { - if (FolderNode->Commit) - { - DPRINT(MAX_TRACE, ("Writing folder entry. CompressionType (0x%X) DataBlockCount (%d) DataOffset (0x%X).\n", - FolderNode->Folder.CompressionType, FolderNode->Folder.DataBlockCount, (UINT)FolderNode->Folder.DataOffset)); - -#if defined(_WIN32) - if (!WriteFile(FileHandle, - &FolderNode->Folder, - sizeof(CFFOLDER), - (LPDWORD)&BytesWritten, - NULL)) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#else - BytesWritten = sizeof(CFFOLDER); - if (fwrite(&FolderNode->Folder, sizeof(CFFOLDER), 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - } - FolderNode = FolderNode->Next; - } - - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::WriteFileEntries() -/* - * FUNCTION: Writes file entries for all files - * RETURNS: - * Status of operation - */ -{ - PCFFILE_NODE File; - ULONG BytesWritten; - bool SetCont = false; - - DPRINT(MAX_TRACE, ("Writing file table.\n")); - - File = FileListHead; - while (File != NULL) - { - if (File->Commit) - { - /* Remove any continued files that ends in this disk */ - if (File->File.FileControlID == CAB_FILE_CONTINUED) - File->Delete = true; - - /* The file could end in the last (split) block and should therefore - appear in the next disk too */ - - if ((File->File.FileOffset + File->File.FileSize >= LastBlockStart) && - (File->File.FileControlID <= CAB_FILE_MAX_FOLDER) && (BlockIsSplit)) - { - File->File.FileControlID = CAB_FILE_SPLIT; - File->Delete = false; - SetCont = true; - } - - DPRINT(MAX_TRACE, ("Writing file entry. FileControlID (0x%X) FileOffset (0x%X) FileSize (%u) FileName (%s).\n", - File->File.FileControlID, (UINT)File->File.FileOffset, (UINT)File->File.FileSize, File->FileName)); - -#if defined(_WIN32) - if (!WriteFile(FileHandle, - &File->File, - sizeof(CFFILE), - (LPDWORD)&BytesWritten, - NULL)) - return CAB_STATUS_CANNOT_WRITE; -#else - BytesWritten = sizeof(CFFILE); - if (fwrite(&File->File, sizeof(CFFILE), 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - -#if defined(_WIN32) - if (!WriteFile(FileHandle, - GetFileName(File->FileName), - (DWORD)strlen(GetFileName(File->FileName)) + 1, - (LPDWORD)&BytesWritten, - NULL)) - return CAB_STATUS_CANNOT_WRITE; -#else - BytesWritten = strlen(GetFileName(File->FileName)) + 1; - if (fwrite(GetFileName(File->FileName), strlen(GetFileName(File->FileName)) + 1, 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - - if (SetCont) - { - File->File.FileControlID = CAB_FILE_CONTINUED; - SetCont = false; - } - } - - File = File->Next; - } - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::CommitDataBlocks(PCFFOLDER_NODE FolderNode) -/* - * FUNCTION: Writes data blocks to the cabinet - * ARGUMENTS: - * FolderNode = Pointer to folder node containing the data blocks - * RETURNS: - * Status of operation - */ -{ - PCFDATA_NODE DataNode; - ULONG BytesWritten; - ULONG BytesRead; - ULONG Status; - - DataNode = FolderNode->DataListHead; - if (DataNode != NULL) - Status = ScratchFile->Seek(DataNode->ScratchFilePosition); - - while (DataNode != NULL) - { - DPRINT(MAX_TRACE, ("Reading block at (0x%X) CompSize (%u) UncompSize (%u).\n", - (UINT)DataNode->ScratchFilePosition, - DataNode->Data.CompSize, - DataNode->Data.UncompSize)); - - /* InputBuffer is free for us to use here, so we use it and avoid a - memory allocation. OutputBuffer can't be used here because it may - still contain valid data (if a data block spans two or more disks) */ - Status = ScratchFile->ReadBlock(&DataNode->Data, InputBuffer, &BytesRead); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot read from scratch file (%u).\n", (UINT)Status)); - return Status; - } - -#if defined(_WIN32) - if (!WriteFile(FileHandle, &DataNode->Data, - sizeof(CFDATA), (LPDWORD)&BytesWritten, NULL)) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#else - BytesWritten = sizeof(CFDATA); - if (fwrite(&DataNode->Data, sizeof(CFDATA), 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - -#if defined(_WIN32) - if (!WriteFile(FileHandle, InputBuffer, - DataNode->Data.CompSize, (LPDWORD)&BytesWritten, NULL)) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#else - BytesWritten = DataNode->Data.CompSize; - if (fwrite(InputBuffer, DataNode->Data.CompSize, 1, FileHandle) < 1) - { - DPRINT(MIN_TRACE, ("Cannot write to file.\n")); - return CAB_STATUS_CANNOT_WRITE; - } -#endif - - DataNode = DataNode->Next; - } - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::WriteDataBlock() -/* - * FUNCTION: Writes the current data block to the scratch file - * RETURNS: - * Status of operation - */ -{ - ULONG Status; - ULONG BytesWritten; - PCFDATA_NODE DataNode; - - if (!BlockIsSplit) - { - Status = Codec->Compress(OutputBuffer, - InputBuffer, - CurrentIBufferSize, - &TotalCompSize); - - DPRINT(MAX_TRACE, ("Block compressed. CurrentIBufferSize (%u) TotalCompSize(%u).\n", - (UINT)CurrentIBufferSize, (UINT)TotalCompSize)); - - CurrentOBuffer = OutputBuffer; - CurrentOBufferSize = TotalCompSize; - } - - DataNode = NewDataNode(CurrentFolderNode); - if (!DataNode) - { - DPRINT(MIN_TRACE, ("Insufficient memory.\n")); - return CAB_STATUS_NOMEMORY; - } - - DiskSize += sizeof(CFDATA); - - if (MaxDiskSize > 0) - /* Disk size is limited */ - BlockIsSplit = (DiskSize + CurrentOBufferSize > MaxDiskSize); - else - BlockIsSplit = false; - - if (BlockIsSplit) - { - DataNode->Data.CompSize = (USHORT)(MaxDiskSize - DiskSize); - DataNode->Data.UncompSize = 0; - CreateNewDisk = true; - } - else - { - DataNode->Data.CompSize = (USHORT)CurrentOBufferSize; - DataNode->Data.UncompSize = (USHORT)CurrentIBufferSize; - } - - DataNode->Data.Checksum = 0; - DataNode->ScratchFilePosition = ScratchFile->Position(); - - // FIXME: MAKECAB.EXE does not like this checksum algorithm - //DataNode->Data.Checksum = ComputeChecksum(CurrentOBuffer, DataNode->Data.CompSize, 0); - - DPRINT(MAX_TRACE, ("Writing block. Checksum (0x%X) CompSize (%u) UncompSize (%u).\n", - (UINT)DataNode->Data.Checksum, - DataNode->Data.CompSize, - DataNode->Data.UncompSize)); - - Status = ScratchFile->WriteBlock(&DataNode->Data, - CurrentOBuffer, &BytesWritten); - if (Status != CAB_STATUS_SUCCESS) - return Status; - - DiskSize += BytesWritten; - - CurrentFolderNode->TotalFolderSize += (BytesWritten + sizeof(CFDATA)); - CurrentFolderNode->Folder.DataBlockCount++; - - CurrentOBuffer = (unsigned char*)CurrentOBuffer + DataNode->Data.CompSize; - CurrentOBufferSize -= DataNode->Data.CompSize; - - LastBlockStart += DataNode->Data.UncompSize; - - if (!BlockIsSplit) - { - CurrentIBufferSize = 0; - CurrentIBuffer = InputBuffer; - } - - return CAB_STATUS_SUCCESS; -} - -#if !defined(_WIN32) - -void CCabinet::ConvertDateAndTime(time_t* Time, - PUSHORT DosDate, - PUSHORT DosTime) -/* - * FUNCTION: Returns file times of a file - * ARGUMENTS: - * FileHandle = File handle of file to get file times from - * File = Pointer to CFFILE node for file - * RETURNS: - * Status of operation - */ -{ - struct tm *timedef; - - timedef = localtime(Time); - - DPRINT(MAX_TRACE, ("day: %d, mon: %d, year:%d, hour: %d, min: %d, sec: %d\n", - timedef->tm_mday, timedef->tm_mon, timedef->tm_year, - timedef->tm_sec, timedef->tm_min, timedef->tm_hour)); - - *DosDate = ((timedef->tm_mday + 1) << 0) - | ((timedef->tm_mon + 1) << 5) - | (((timedef->tm_year + 1900) - 1980) << 9); - - *DosTime = (timedef->tm_sec << 0) - | (timedef->tm_min << 5) - | (timedef->tm_hour << 11); -} - -#endif // !_WIN32 - - -ULONG CCabinet::GetFileTimes(FILEHANDLE FileHandle, PCFFILE_NODE File) -/* - * FUNCTION: Returns file times of a file - * ARGUMENTS: - * FileHandle = File handle of file to get file times from - * File = Pointer to CFFILE node for file - * RETURNS: - * Status of operation - */ -{ -#if defined(_WIN32) - FILETIME FileTime; - - if (GetFileTime(FileHandle, NULL, NULL, &FileTime)) - FileTimeToDosDateTime(&FileTime, - &File->File.FileDate, - &File->File.FileTime); -#else - struct stat stbuf; - char buf[PATH_MAX]; - - // Check for an absolute path - if (IsSeparator(File->FileName[0])) - strcpy(buf, File->FileName); - else - { - if (!getcwd(buf, sizeof(buf))) - return CAB_STATUS_CANNOT_READ; - strcat(buf, DIR_SEPARATOR_STRING); - strcat(buf, File->FileName); - } - - if (stat(buf, &stbuf) == -1) - return CAB_STATUS_CANNOT_READ; - - ConvertDateAndTime(&stbuf.st_mtime, &File->File.FileDate, &File->File.FileTime); -#endif - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::GetAttributesOnFile(PCFFILE_NODE File) -/* - * FUNCTION: Returns attributes on a file - * ARGUMENTS: - * File = Pointer to CFFILE node for file - * RETURNS: - * Status of operation - */ -{ -#if defined(_WIN32) - LONG Attributes; - - Attributes = GetFileAttributes(File->FileName); - if (Attributes == -1) - return CAB_STATUS_CANNOT_READ; - - // 0x37 = READONLY | HIDDEN | SYSTEM | DIRECTORY | ARCHIVE - // The IDs for these attributes are the same in the CAB file and under Windows - // If the file has any other attributes, strip them off by the logical AND. - File->File.Attributes = (USHORT)(Attributes & 0x37); -#else - struct stat stbuf; - char buf[PATH_MAX]; - - // Check for an absolute path - if (IsSeparator(File->FileName[0])) - strcpy(buf, File->FileName); - else - { - if (!getcwd(buf, sizeof(buf))) - return CAB_STATUS_CANNOT_READ; - strcat(buf, DIR_SEPARATOR_STRING); - strcat(buf, File->FileName); - } - - if (stat(buf, &stbuf) == -1) - return CAB_STATUS_CANNOT_READ; - -#if 0 - File->File.Attributes |= CAB_ATTRIB_READONLY; - File->File.Attributes |= CAB_ATTRIB_HIDDEN; - File->File.Attributes |= CAB_ATTRIB_SYSTEM; -#endif - - if (stbuf.st_mode & S_IFDIR) - File->File.Attributes |= CAB_ATTRIB_DIRECTORY; - - File->File.Attributes |= CAB_ATTRIB_ARCHIVE; - -#endif - return CAB_STATUS_SUCCESS; -} - - -ULONG CCabinet::SetAttributesOnFile(char* FileName, USHORT FileAttributes) -/* - * FUNCTION: Sets attributes on a file - * ARGUMENTS: - * FileName = File name with path - * FileAttributes = Attributes of that file - * RETURNS: - * Status of operation - */ -{ -#if defined(_WIN32) - // 0x37 = READONLY | HIDDEN | SYSTEM | DIRECTORY | ARCHIVE - // The IDs for these attributes are the same in the CAB file and under Windows - // If the file has any other attributes, strip them off by the logical AND. - SetFileAttributes(FileName, (DWORD)(FileAttributes & 0x37)); - - return CAB_STATUS_SUCCESS; -#else - //DPRINT(MIN_TRACE, ("FIXME: SetAttributesOnFile() is unimplemented\n")); - return CAB_STATUS_SUCCESS; -#endif -} - -#endif /* CAB_READ_ONLY */ - -/* EOF */ diff --git a/reactos/tools/cabman/cabinet.h b/reactos/tools/cabman/cabinet.h deleted file mode 100644 index 105fcfebba2..00000000000 --- a/reactos/tools/cabman/cabinet.h +++ /dev/null @@ -1,502 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS cabinet manager - * FILE: tools/cabman/cabinet.h - * PURPOSE: Cabinet definitions - */ - -#pragma once - -#if defined(_WIN32) -#define WIN32_LEAN_AND_MEAN -#include -#else -#include -#include -#include -#include -#include -#include -#endif - -#include -#include -#include -#include - -#ifndef PATH_MAX -#define PATH_MAX MAX_PATH -#endif - -#if defined(_WIN32) -#define DIR_SEPARATOR_CHAR '\\' -#define DIR_SEPARATOR_STRING "\\" - -#define strcasecmp _stricmp -#define strdup _strdup - -#define AllocateMemory(size) HeapAlloc(GetProcessHeap(), 0, size) -#define FreeMemory(buffer) HeapFree(GetProcessHeap(), 0, buffer) -#define FILEHANDLE HANDLE -#define CloseFile(handle) CloseHandle(handle) -#else -#define DIR_SEPARATOR_CHAR '/' -#define DIR_SEPARATOR_STRING "/" - -#define AllocateMemory(size) malloc(size) -#define FreeMemory(buffer) free(buffer) -#define CloseFile(handle) fclose(handle) -#define FILEHANDLE FILE* -#endif - -/* Debugging */ - -#define NORMAL_MASK 0x000000FF -#define SPECIAL_MASK 0xFFFFFF00 -#define MIN_TRACE 0x00000001 -#define MID_TRACE 0x00000002 -#define MAX_TRACE 0x00000003 - -#define DEBUG_MEMORY 0x00000100 - -#if DBG - -extern ULONG DebugTraceLevel; - -#undef DPRINT -#define DPRINT(_t_, _x_) \ - if (((DebugTraceLevel & NORMAL_MASK) >= _t_) || \ - ((DebugTraceLevel & _t_) > NORMAL_MASK)) { \ - printf("(%s:%d)(%s) ", __FILE__, __LINE__, __FUNCTION__); \ - printf _x_ ; \ - } - -#undef ASSERT -#define ASSERT(_b_) { \ - if (!(_b_)) { \ - printf("(%s:%d)(%s) ASSERTION: ", __FILE__, __LINE__, __FUNCTION__); \ - printf(#_b_); \ - exit(0); \ - } \ -} - -#else /* DBG */ - -#undef DPRINT -#define DPRINT(_t_, _x_) do { } while(0) - -#undef ASSERT -#define ASSERT(_x_) - -#endif /* DBG */ - - -/* Cabinet constants */ - -#define CAB_SIGNATURE 0x4643534D // "MSCF" -#define CAB_VERSION 0x0103 -#define CAB_BLOCKSIZE 32768 - -#define CAB_COMP_MASK 0x00FF -#define CAB_COMP_NONE 0x0000 -#define CAB_COMP_MSZIP 0x0001 -#define CAB_COMP_QUANTUM 0x0002 -#define CAB_COMP_LZX 0x0003 - -#define CAB_FLAG_HASPREV 0x0001 -#define CAB_FLAG_HASNEXT 0x0002 -#define CAB_FLAG_RESERVE 0x0004 - -#define CAB_ATTRIB_READONLY 0x0001 -#define CAB_ATTRIB_HIDDEN 0x0002 -#define CAB_ATTRIB_SYSTEM 0x0004 -#define CAB_ATTRIB_VOLUME 0x0008 -#define CAB_ATTRIB_DIRECTORY 0x0010 -#define CAB_ATTRIB_ARCHIVE 0x0020 -#define CAB_ATTRIB_EXECUTE 0x0040 -#define CAB_ATTRIB_UTF_NAME 0x0080 - -#define CAB_FILE_MAX_FOLDER 0xFFFC -#define CAB_FILE_CONTINUED 0xFFFD -#define CAB_FILE_SPLIT 0xFFFE -#define CAB_FILE_PREV_NEXT 0xFFFF - - -/* Cabinet structures */ - -typedef struct _CFHEADER -{ - ULONG Signature; // File signature 'MSCF' (CAB_SIGNATURE) - ULONG Reserved1; // Reserved field - ULONG CabinetSize; // Cabinet file size - ULONG Reserved2; // Reserved field - ULONG FileTableOffset; // Offset of first CFFILE - ULONG Reserved3; // Reserved field - USHORT Version; // Cabinet version (CAB_VERSION) - USHORT FolderCount; // Number of folders - USHORT FileCount; // Number of files - USHORT Flags; // Cabinet flags (CAB_FLAG_*) - USHORT SetID; // Cabinet set id - USHORT CabinetNumber; // Zero-based cabinet number -/* Optional fields (depends on Flags) - USHORT CabinetResSize // Per-cabinet reserved area size - char FolderResSize // Per-folder reserved area size - char FileResSize // Per-file reserved area size - char CabinetReserved[] // Per-cabinet reserved area - char CabinetPrev[] // Name of previous cabinet file - char DiskPrev[] // Name of previous disk - char CabinetNext[] // Name of next cabinet file - char DiskNext[] // Name of next disk - */ -} CFHEADER, *PCFHEADER; - - -typedef struct _CFFOLDER -{ - ULONG DataOffset; // Absolute offset of first CFDATA block in this folder - USHORT DataBlockCount; // Number of CFDATA blocks in this folder in this cabinet - USHORT CompressionType; // Type of compression used for all CFDATA blocks in this folder -/* Optional fields (depends on Flags) - char FolderReserved[] // Per-folder reserved area - */ -} CFFOLDER, *PCFFOLDER; - - -typedef struct _CFFILE -{ - ULONG FileSize; // Uncompressed file size in bytes - ULONG FileOffset; // Uncompressed offset of file in the folder - USHORT FileControlID; // File control ID (CAB_FILE_*) - USHORT FileDate; // File date stamp, as used by DOS - USHORT FileTime; // File time stamp, as used by DOS - USHORT Attributes; // File attributes (CAB_ATTRIB_*) - /* After this is the NULL terminated filename */ -} CFFILE, *PCFFILE; - - -typedef struct _CFDATA -{ - ULONG Checksum; // Checksum of CFDATA entry - USHORT CompSize; // Number of compressed bytes in this block - USHORT UncompSize; // Number of uncompressed bytes in this block -/* Optional fields (depends on Flags) - char DataReserved[] // Per-datablock reserved area - */ -} CFDATA, *PCFDATA; - -typedef struct _CFDATA_NODE -{ - struct _CFDATA_NODE *Next; - struct _CFDATA_NODE *Prev; - ULONG ScratchFilePosition; // Absolute offset in scratch file - ULONG AbsoluteOffset; // Absolute offset in cabinet - ULONG UncompOffset; // Uncompressed offset in folder - CFDATA Data; -} CFDATA_NODE, *PCFDATA_NODE; - -typedef struct _CFFOLDER_NODE -{ - struct _CFFOLDER_NODE *Next; - struct _CFFOLDER_NODE *Prev; - ULONG UncompOffset; // File size accumulator - ULONG AbsoluteOffset; - ULONG TotalFolderSize; // Total size of folder in current disk - PCFDATA_NODE DataListHead; - PCFDATA_NODE DataListTail; - ULONG Index; - bool Commit; // true if the folder should be committed - bool Delete; // true if marked for deletion - CFFOLDER Folder; -} CFFOLDER_NODE, *PCFFOLDER_NODE; - -typedef struct _CFFILE_NODE -{ - struct _CFFILE_NODE *Next; - struct _CFFILE_NODE *Prev; - CFFILE File; - char* FileName; - PCFDATA_NODE DataBlock; // First data block of file. NULL if not known - bool Commit; // true if the file data should be committed - bool Delete; // true if marked for deletion - PCFFOLDER_NODE FolderNode; // Folder this file belong to -} CFFILE_NODE, *PCFFILE_NODE; - -typedef struct _SEARCH_CRITERIA -{ - struct _SEARCH_CRITERIA *Next; // Pointer to next search criteria - struct _SEARCH_CRITERIA *Prev; // Pointer to previous search criteria - char* Search; // The actual search criteria -} SEARCH_CRITERIA, *PSEARCH_CRITERIA; - -typedef struct _CAB_SEARCH -{ - PCFFILE_NODE Next; // Pointer to next node - PCFFILE File; // Pointer to current CFFILE - char* FileName; // Current filename -} CAB_SEARCH, *PCAB_SEARCH; - - -/* Constants */ - -/* Status codes */ -#define CAB_STATUS_SUCCESS 0x00000000 -#define CAB_STATUS_FAILURE 0x00000001 -#define CAB_STATUS_NOMEMORY 0x00000002 -#define CAB_STATUS_CANNOT_OPEN 0x00000003 -#define CAB_STATUS_CANNOT_CREATE 0x00000004 -#define CAB_STATUS_CANNOT_READ 0x00000005 -#define CAB_STATUS_CANNOT_WRITE 0x00000006 -#define CAB_STATUS_FILE_EXISTS 0x00000007 -#define CAB_STATUS_INVALID_CAB 0x00000008 -#define CAB_STATUS_NOFILE 0x00000009 -#define CAB_STATUS_UNSUPPCOMP 0x0000000A - - - -/* Codecs */ - -class CCABCodec { -public: - /* Default constructor */ - CCABCodec() {}; - /* Default destructor */ - virtual ~CCABCodec() {}; - /* Compresses a data block */ - virtual ULONG Compress(void* OutputBuffer, - void* InputBuffer, - ULONG InputLength, - PULONG OutputLength) = 0; - /* Uncompresses a data block */ - virtual ULONG Uncompress(void* OutputBuffer, - void* InputBuffer, - ULONG InputLength, - PULONG OutputLength) = 0; -}; - - -/* Codec status codes */ -#define CS_SUCCESS 0x0000 /* All data consumed */ -#define CS_NOMEMORY 0x0001 /* Not enough free memory */ -#define CS_BADSTREAM 0x0002 /* Bad data stream */ - - -/* Codec indentifiers */ -#define CAB_CODEC_RAW 0x00 -#define CAB_CODEC_LZX 0x01 -#define CAB_CODEC_MSZIP 0x02 - - - -/* Classes */ - -#ifndef CAB_READ_ONLY - -class CCFDATAStorage { -public: - /* Default constructor */ - CCFDATAStorage(); - /* Default destructor */ - virtual ~CCFDATAStorage(); - ULONG Create(); - ULONG Destroy(); - ULONG Truncate(); - ULONG Position(); - ULONG Seek(LONG Position); - ULONG ReadBlock(PCFDATA Data, void* Buffer, PULONG BytesRead); - ULONG WriteBlock(PCFDATA Data, void* Buffer, PULONG BytesWritten); -private: - char FullName[PATH_MAX]; - bool FileCreated; - FILEHANDLE FileHandle; -}; - -#endif /* CAB_READ_ONLY */ - -class CCabinet { -public: - /* Default constructor */ - CCabinet(); - /* Default destructor */ - virtual ~CCabinet(); - /* Determines if a character is a separator */ - bool IsSeparator(char Char); - /* Replaces \ or / with the one used be the host environment */ - char* ConvertPath(char* Path, bool Allocate); - /* Returns a pointer to the filename part of a fully qualified filename */ - char* GetFileName(char* Path); - /* Removes a filename from a fully qualified filename */ - void RemoveFileName(char* Path); - /* Normalizes a path */ - bool NormalizePath(char* Path, ULONG Length); - /* Returns name of cabinet file */ - char* GetCabinetName(); - /* Sets the name of the cabinet file */ - void SetCabinetName(char* FileName); - /* Sets destination path for extracted files */ - void SetDestinationPath(char* DestinationPath); - /* Sets cabinet reserved file */ - bool SetCabinetReservedFile(char* FileName); - /* Returns cabinet reserved file */ - char* GetCabinetReservedFile(); - /* Returns destination path */ - char* GetDestinationPath(); - /* Returns zero-based current disk number */ - ULONG GetCurrentDiskNumber(); - /* Opens the current cabinet file */ - ULONG Open(); - /* Closes the current open cabinet file */ - void Close(); - /* Locates the first file in the current cabinet file that matches a search criteria */ - ULONG FindFirst(PCAB_SEARCH Search); - /* Locates the next file in the current cabinet file */ - ULONG FindNext(PCAB_SEARCH Search); - /* Extracts a file from the current cabinet file */ - ULONG ExtractFile(char* FileName); - /* Select codec engine to use */ - void SelectCodec(LONG Id); - /* Returns whether a codec engine is selected */ - bool IsCodecSelected(); - /* Adds a search criteria for adding files to a simple cabinet, displaying files in a cabinet or extracting them */ - ULONG AddSearchCriteria(char* SearchCriteria); - /* Destroys the search criteria list */ - void DestroySearchCriteria(); - /* Returns whether we have search criteria */ - bool HasSearchCriteria(); - -#ifndef CAB_READ_ONLY - /* Creates a simple cabinet based on the search criteria data */ - bool CreateSimpleCabinet(); - /* Sets the codec to use for compression (based on a string value) */ - bool SetCompressionCodec(char* CodecName); - /* Creates a new cabinet file */ - ULONG NewCabinet(); - /* Forces a new disk to be created */ - ULONG NewDisk(); - /* Forces a new folder to be created */ - ULONG NewFolder(); - /* Writes a file to scratch storage */ - ULONG WriteFileToScratchStorage(PCFFILE_NODE FileNode); - /* Forces the current disk to be written */ - ULONG WriteDisk(ULONG MoreDisks); - /* Commits the current disk */ - ULONG CommitDisk(ULONG MoreDisks); - /* Closes the current disk */ - ULONG CloseDisk(); - /* Closes the current cabinet */ - ULONG CloseCabinet(); - /* Adds a file to the current disk */ - ULONG AddFile(char* FileName); - /* Sets the maximum size of the current disk */ - void SetMaxDiskSize(ULONG Size); -#endif /* CAB_READ_ONLY */ - - /* Default event handlers */ - - /* Handler called when a file is about to be overridden */ - virtual bool OnOverwrite(PCFFILE Entry, char* FileName); - /* Handler called when a file is about to be extracted */ - virtual void OnExtract(PCFFILE Entry, char* FileName); - /* Handler called when a new disk is to be processed */ - virtual void OnDiskChange(char* CabinetName, char* DiskLabel); -#ifndef CAB_READ_ONLY - /* Handler called when a file is about to be added */ - virtual void OnAdd(PCFFILE Entry, char* FileName); - /* Handler called when a cabinet need a name */ - virtual bool OnCabinetName(ULONG Number, char* Name); - /* Handler called when a disk needs a label */ - virtual bool OnDiskLabel(ULONG Number, char* Label); -#endif /* CAB_READ_ONLY */ -private: - PCFFOLDER_NODE LocateFolderNode(ULONG Index); - ULONG GetAbsoluteOffset(PCFFILE_NODE File); - ULONG LocateFile(char* FileName, PCFFILE_NODE *File); - ULONG ReadString(char* String, LONG MaxLength); - ULONG ReadFileTable(); - ULONG ReadDataBlocks(PCFFOLDER_NODE FolderNode); - PCFFOLDER_NODE NewFolderNode(); - PCFFILE_NODE NewFileNode(); - PCFDATA_NODE NewDataNode(PCFFOLDER_NODE FolderNode); - void DestroyDataNodes(PCFFOLDER_NODE FolderNode); - void DestroyFileNodes(); - void DestroyDeletedFileNodes(); - void DestroyFolderNodes(); - void DestroyDeletedFolderNodes(); - ULONG ComputeChecksum(void* Buffer, ULONG Size, ULONG Seed); - ULONG ReadBlock(void* Buffer, ULONG Size, PULONG BytesRead); - bool MatchFileNamePattern(char* FileName, char* Pattern); -#ifndef CAB_READ_ONLY - ULONG InitCabinetHeader(); - ULONG WriteCabinetHeader(bool MoreDisks); - ULONG WriteFolderEntries(); - ULONG WriteFileEntries(); - ULONG CommitDataBlocks(PCFFOLDER_NODE FolderNode); - ULONG WriteDataBlock(); - ULONG GetAttributesOnFile(PCFFILE_NODE File); - ULONG SetAttributesOnFile(char* FileName, USHORT FileAttributes); - ULONG GetFileTimes(FILEHANDLE FileHandle, PCFFILE_NODE File); -#if !defined(_WIN32) - void ConvertDateAndTime(time_t* Time, PUSHORT DosDate, PUSHORT DosTime); -#endif -#endif /* CAB_READ_ONLY */ - ULONG CurrentDiskNumber; // Zero based disk number - char CabinetName[256]; // Filename of current cabinet - char CabinetPrev[256]; // Filename of previous cabinet - char DiskPrev[256]; // Label of cabinet in file CabinetPrev - char CabinetNext[256]; // Filename of next cabinet - char DiskNext[256]; // Label of cabinet in file CabinetNext - ULONG TotalHeaderSize; // Size of header and optional fields - ULONG NextFieldsSize; // Size of next cabinet name and next disk label - ULONG TotalFolderSize; // Size of all folder entries - ULONG TotalFileSize; // Size of all file entries - ULONG FolderUncompSize; // Uncompressed size of folder - ULONG BytesLeftInBlock; // Number of bytes left in current block - bool ReuseBlock; - char DestPath[PATH_MAX]; - char CabinetReservedFile[PATH_MAX]; - void* CabinetReservedFileBuffer; - ULONG CabinetReservedFileSize; - FILEHANDLE FileHandle; - bool FileOpen; - CFHEADER CABHeader; - ULONG CabinetReserved; - ULONG FolderReserved; - ULONG DataReserved; - PCFFOLDER_NODE FolderListHead; - PCFFOLDER_NODE FolderListTail; - PCFFOLDER_NODE CurrentFolderNode; - PCFDATA_NODE CurrentDataNode; - PCFFILE_NODE FileListHead; - PCFFILE_NODE FileListTail; - PSEARCH_CRITERIA CriteriaListHead; - PSEARCH_CRITERIA CriteriaListTail; - CCABCodec *Codec; - LONG CodecId; - bool CodecSelected; - void* InputBuffer; - void* CurrentIBuffer; // Current offset in input buffer - ULONG CurrentIBufferSize; // Bytes left in input buffer - void* OutputBuffer; - ULONG TotalCompSize; // Total size of current CFDATA block - void* CurrentOBuffer; // Current offset in output buffer - ULONG CurrentOBufferSize; // Bytes left in output buffer - ULONG BytesLeftInCabinet; - bool RestartSearch; - ULONG LastFileOffset; // Uncompressed offset of last extracted file -#ifndef CAB_READ_ONLY - ULONG LastBlockStart; // Uncompressed offset of last block in folder - ULONG MaxDiskSize; - ULONG DiskSize; - ULONG PrevCabinetNumber; // Previous cabinet number (where split file starts) - bool CreateNewDisk; - bool CreateNewFolder; - - CCFDATAStorage *ScratchFile; - FILEHANDLE SourceFile; - bool ContinueFile; - ULONG TotalBytesLeft; - bool BlockIsSplit; // true if current data block is split - ULONG NextFolderNumber; // Zero based folder number -#endif /* CAB_READ_ONLY */ -}; - -/* EOF */ diff --git a/reactos/tools/cabman/cabman.h b/reactos/tools/cabman/cabman.h deleted file mode 100644 index a53b374f537..00000000000 --- a/reactos/tools/cabman/cabman.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS cabinet manager - * FILE: tools/cabman/cabman.h - * PURPOSE: Cabinet manager header - */ - -#pragma once - -#include "cabinet.h" -#include "dfp.h" - -/* Cabinet manager modes */ -#define CM_MODE_CREATE 0 -#define CM_MODE_DISPLAY 1 -#define CM_MODE_EXTRACT 2 -#define CM_MODE_CREATE_SIMPLE 3 - -/* Classes */ - -class CCABManager : public CDFParser { -public: - CCABManager(); - virtual ~CCABManager(); - bool ParseCmdline(int argc, char* argv[]); - bool Run(); -private: - void Usage(); - bool CreateCabinet(); - bool DisplayCabinet(); - bool ExtractFromCabinet(); - /* Event handlers */ - virtual bool OnOverwrite(PCFFILE File, char* FileName); - virtual void OnExtract(PCFFILE File, char* FileName); - virtual void OnDiskChange(char* CabinetName, char* DiskLabel); - virtual void OnAdd(PCFFILE Entry, char* FileName); - /* Configuration */ - bool ProcessAll; - ULONG Mode; - bool PromptOnOverwrite; - char FileName[PATH_MAX]; -}; - -/* EOF */ diff --git a/reactos/tools/cabman/dff.txt b/reactos/tools/cabman/dff.txt deleted file mode 100644 index a400e0a652e..00000000000 --- a/reactos/tools/cabman/dff.txt +++ /dev/null @@ -1,55 +0,0 @@ -Directive File Format for ReactOS Cabinet Manager -------------------------------------------------- - -Directives begin with a period ("."), and are followed by a command -name, and possibly blank delimited arguments. Commands and variable names are -case insensitive. - -Syntax Description -------------------------------------------------------------------------------- -; Anything on a line after this is a comment - [destination] [options] File copy command (options: optional) -.Define variable=[value] Define variable to be equal to value (*) -.Delete variable Delete a variable definition (*) -.New Disk|Cabinet|Folder Start a new disk, cabinet or folder (* -- new disk will work) -.Set variable=[value] Set variable to be equal to value (*) -%variable% Substitute value of variable (*) - Blank lines are ignored -------------------------------------------------------------------------------- - - -Standard variable Description -------------------------------------------------------------------------------- -Cabinet=ON|OFF Turns cabinet mode on or off (* -- currently always on) -CabinetFileCountThreshold=count Threshold count of files per cabinet (*) -CabinetNamen=filename Cabinet file name for cabinet number n -CabinetNameTemplate=template Cabinet file name template - * is replaced by cabinet number -Compress=ON|OFF Turns compression on or off (* -- currently always on) -CompressionType=NONE|MSZIP Compression engine to use (* -- currently always mszip) -DiskLabeln=label Printed disk label name for disk n -DiskLabelTemplate=template Printed disk label name template - * is replaced by disk number -FolderFileCountThreshold=count Threshold count of files per folder (*) -FolderSizeThreshold=size Threshold folder size for current folder (*) -MaxDiskFileCount=count Maximum count of files per disk (*) -MaxDiskSize[n]=size Maximum disk size (for disk n) -ReservePerCabinetSize=size Amount of space to reserve in each cabinet (*) -ReservePerDataBlockSize=size Amount of space to reserve in each data block (*) -ReservePerFolderSize=size Amount of space to reserve in each folder (*) -SourceDir=path Default path for source files (*) -------------------------------------------------------------------------------- -(*) = not implemented - - -MaxDiskSize ------------ -0 means disk size is unlimited. Standard sizes available are: - - 2.88M - 1.44M - 1.25M - 1.2M - 720K - 360K - CDROM diff --git a/reactos/tools/cabman/dfp.cxx b/reactos/tools/cabman/dfp.cxx deleted file mode 100644 index 0a5887e893d..00000000000 --- a/reactos/tools/cabman/dfp.cxx +++ /dev/null @@ -1,1395 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS cabinet manager - * FILE: tools/cabman/dfp.cpp - * PURPOSE: Directive file parser - * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net) - * Colin Finck - * NOTES: The directive file format is similar to the - * directive file format used by Microsoft's MAKECAB - * REVISIONS: - * CSH 21/03-2001 Created - * CSH 15/08-2003 Made it portable - * CF 04/05-2007 Made it compatible with 64-bit operating systems - */ -#include -#include -#include "cabinet.h" -#include "dfp.h" - - -#if defined(_WIN32) -#define GetSizeOfFile(handle) _GetSizeOfFile(handle) -static LONG _GetSizeOfFile(FILEHANDLE handle) -{ - ULONG size = GetFileSize(handle, NULL); - if (size == INVALID_FILE_SIZE) - return -1; - - return size; -} -#define ReadFileData(handle, buffer, size, bytesread) _ReadFileData(handle, buffer, size, bytesread) -static BOOL _ReadFileData(FILEHANDLE handle, void* buffer, ULONG size, PULONG bytesread) -{ - return ReadFile(handle, buffer, size, (LPDWORD)bytesread, NULL); -} -#else -#define GetSizeOfFile(handle) _GetSizeOfFile(handle) -static LONG _GetSizeOfFile(FILEHANDLE handle) -{ - LONG size; - fseek(handle, 0, SEEK_END); - size = ftell(handle); - fseek(handle, 0, SEEK_SET); - return size; -} -#define ReadFileData(handle, buffer, size, bytesread) _ReadFileData(handle, buffer, size, bytesread) -static bool _ReadFileData(FILEHANDLE handle, void* buffer, ULONG size, PULONG bytesread) -{ - *bytesread = fread(buffer, 1, size, handle); - return *bytesread == size; -} -#endif - -/* CDFParser */ - -CDFParser::CDFParser() -/* - * FUNCTION: Default constructor - */ -{ - InfFileOnly = false; - DontGenerateInf = false; - - FileBuffer = NULL; - FileLoaded = false; - CurrentOffset = 0; - CurrentLine = 0; - CabinetCreated = false; - DiskCreated = false; - FolderCreated = false; - CabinetName = NULL; - DiskLabel = NULL; - MaxDiskSize = NULL; - - MaxDiskSizeAllSet = false; - CabinetNameTemplateSet = false; - DiskLabelTemplateSet = false; - InfFileNameSet = false; - - InfModeEnabled = false; - InfFileHandle = NULL; - - strcpy(FileRelativePath, ""); -} - -CDFParser::~CDFParser() -/* - * FUNCTION: Default destructor - */ -{ - PCABINET_NAME CNPrev; - PCABINET_NAME CNNext; - PDISK_NUMBER DNPrev; - PDISK_NUMBER DNNext; - - if (FileBuffer) - FreeMemory(FileBuffer); - CNNext = CabinetName; - while (CNNext != NULL) - { - CNPrev = CNNext->Next; - FreeMemory(CNNext); - CNNext = CNPrev; - } - CNNext = DiskLabel; - while (CNNext != NULL) - { - CNPrev = CNNext->Next; - FreeMemory(CNNext); - CNNext = CNPrev; - } - DNNext = MaxDiskSize; - while (DNNext != NULL) - { - DNPrev = DNNext->Next; - FreeMemory(DNNext); - DNNext = DNPrev; - } - - if (InfFileHandle != NULL) - CloseFile(InfFileHandle); -} - -void CDFParser::WriteInfLine(char* InfLine) -{ - char buf[PATH_MAX]; - char eolbuf[2]; - char* destpath; -#if defined(_WIN32) - ULONG BytesWritten; -#endif - - if (DontGenerateInf) - return; - - if (InfFileHandle == NULL) - { - if (!InfFileNameSet) - /* FIXME: Use cabinet name with extension .inf */ - return; - - destpath = GetDestinationPath(); - if (strlen(destpath) > 0) - { - strcpy(buf, destpath); - strcat(buf, InfFileName); - } - else - strcpy(buf, InfFileName); - - /* Create .inf file, overwrite if it already exists */ -#if defined(_WIN32) - InfFileHandle = CreateFile(buf, // Create this file - GENERIC_WRITE, // Open for writing - 0, // No sharing - NULL, // No security - CREATE_ALWAYS, // Create or overwrite - FILE_ATTRIBUTE_NORMAL, // Normal file - NULL); // No attribute template - if (InfFileHandle == INVALID_HANDLE_VALUE) - { - DPRINT(MID_TRACE, ("Error creating '%u'.\n", (UINT)GetLastError())); - return; - } -#else /* !_WIN32 */ - InfFileHandle = fopen(buf, "wb"); - if (InfFileHandle == NULL) - { - DPRINT(MID_TRACE, ("Error creating '%i'.\n", errno)); - return; - } -#endif - } - -#if defined(_WIN32) - if (!WriteFile(InfFileHandle, InfLine, (DWORD)strlen(InfLine), (LPDWORD)&BytesWritten, NULL)) - { - DPRINT(MID_TRACE, ("ERROR WRITING '%u'.\n", (UINT)GetLastError())); - return; - } -#else - if (fwrite(InfLine, strlen(InfLine), 1, InfFileHandle) < 1) - return; -#endif - - eolbuf[0] = 0x0d; - eolbuf[1] = 0x0a; - -#if defined(_WIN32) - if (!WriteFile(InfFileHandle, eolbuf, sizeof(eolbuf), (LPDWORD)&BytesWritten, NULL)) - { - DPRINT(MID_TRACE, ("ERROR WRITING '%u'.\n", (UINT)GetLastError())); - return; - } -#else - if (fwrite(eolbuf, 1, sizeof(eolbuf), InfFileHandle) < 1) - return; -#endif -} - - -ULONG CDFParser::Load(char* FileName) -/* - * FUNCTION: Loads a directive file into memory - * ARGUMENTS: - * FileName = Pointer to name of directive file - * RETURNS: - * Status of operation - */ -{ - ULONG BytesRead; - LONG FileSize; - - if (FileLoaded) - return CAB_STATUS_SUCCESS; - - /* Create cabinet file, overwrite if it already exists */ -#if defined(_WIN32) - FileHandle = CreateFile(FileName, // Create this file - GENERIC_READ, // Open for reading - 0, // No sharing - NULL, // No security - OPEN_EXISTING, // Open the file - FILE_ATTRIBUTE_NORMAL, // Normal file - NULL); // No attribute template - if (FileHandle == INVALID_HANDLE_VALUE) - return CAB_STATUS_CANNOT_OPEN; -#else /* !_WIN32 */ - FileHandle = fopen(FileName, "rb"); - if (FileHandle == NULL) - return CAB_STATUS_CANNOT_OPEN; -#endif - - FileSize = GetSizeOfFile(FileHandle); - if (FileSize == -1) - { - CloseFile(FileHandle); - return CAB_STATUS_CANNOT_OPEN; - } - - FileBufferSize = (ULONG)FileSize; - - FileBuffer = (char*)AllocateMemory(FileBufferSize); - if (!FileBuffer) - { - CloseFile(FileHandle); - return CAB_STATUS_NOMEMORY; - } - - if (!ReadFileData(FileHandle, FileBuffer, FileBufferSize, &BytesRead)) - { - CloseFile(FileHandle); - FreeMemory(FileBuffer); - FileBuffer = NULL; - return CAB_STATUS_CANNOT_READ; - } - - CloseFile(FileHandle); - - FileLoaded = true; - - DPRINT(MAX_TRACE, ("File (%u bytes)\n", (UINT)FileBufferSize)); - - return CAB_STATUS_SUCCESS; -} - - -ULONG CDFParser::Parse() -/* - * FUNCTION: Parses a loaded directive file - * RETURNS: - * Status of operation - */ -{ - bool Command; - ULONG Status; - - if (!FileLoaded) - return CAB_STATUS_NOFILE; - - while (ReadLine()) - { - Command = false; - - if (InfModeEnabled) - { - bool WriteLine = true; - while (CurrentToken != TokenEnd) - { - switch (CurrentToken) - { - case TokenIdentifier: - if (Command) - { - /* Command */ - Status = PerformCommand(); - if (Status == CAB_STATUS_FAILURE) - WriteLine = true; - else - if (!InfModeEnabled) - WriteLine = false; - - CurrentToken = TokenEnd; - continue; - } - else - { - WriteLine = true; - CurrentToken = TokenEnd; - continue; - } - break; - - case TokenSpace: - break; - - case TokenPeriod: - Command = true; - break; - - default: - WriteLine = true; - CurrentToken = TokenEnd; - continue; - } - NextToken(); - } - if (WriteLine) - WriteInfLine(Line); - } - else - { - while (CurrentToken != TokenEnd) - { - switch (CurrentToken) - { - case TokenInteger: - sprintf(CurrentString, "%u", (UINT)CurrentInteger); - case TokenIdentifier: - case TokenString: - if (Command) - { - /* Command */ - Status = PerformCommand(); - - if (Status == CAB_STATUS_FAILURE) - { - printf("Directive file contains errors at line %u.\n", (UINT)CurrentLine); - DPRINT(MID_TRACE, ("Error while executing command.\n")); - } - - if (Status != CAB_STATUS_SUCCESS) - return Status; - } - else - { - /* File copy */ - Status = PerformFileCopy(); - - if (Status != CAB_STATUS_SUCCESS) - { - printf("Directive file contains errors at line %u.\n", (UINT)CurrentLine); - DPRINT(MID_TRACE, ("Error while copying file.\n")); - } - - if (Status != CAB_STATUS_SUCCESS) - return Status; - } - break; - - case TokenSpace: - break; - - case TokenSemi: - CurrentToken = TokenEnd; - continue; - - case TokenPeriod: - Command = true; - break; - - default: - printf("Directive file contains errors at line %u.\n", (UINT)CurrentLine); - DPRINT(MID_TRACE, ("Token is (%u).\n", (UINT)CurrentToken)); - return CAB_STATUS_SUCCESS; - } - NextToken(); - } - } - } - - if (!InfFileOnly) - { - printf("\nWriting cabinet. This may take a while...\n\n"); - - if (DiskCreated) - { - Status = WriteDisk(false); - if (Status == CAB_STATUS_SUCCESS) - Status = CloseDisk(); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot write disk (%u).\n", (UINT)Status)); - return Status; - } - } - - if (CabinetCreated) - { - Status = CloseCabinet(); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot close cabinet (%u).\n", (UINT)Status)); - return Status; - } - } - - printf("\nDone.\n"); - } - - return CAB_STATUS_SUCCESS; -} - - -void CDFParser::SetFileRelativePath(char* Path) -/* - * FUNCTION: Sets path where files in the .dff is assumed relative to - * ARGUMENTS: - * Path = Pointer to string with path - */ -{ - strcpy(FileRelativePath, Path); - ConvertPath(FileRelativePath, false); - if (strlen(FileRelativePath) > 0) - NormalizePath(FileRelativePath, PATH_MAX); -} - - -bool CDFParser::OnDiskLabel(ULONG Number, char* Label) -/* - * FUNCTION: Called when a disk needs a label - * ARGUMENTS: - * Number = Cabinet number that needs a label - * Label = Pointer to buffer to place label of disk - * RETURNS: - * true if a disk label was returned, false if not - */ -{ - char Buffer[20]; - ULONG i; - int j; - char ch; - - Number += 1; - - DPRINT(MID_TRACE, ("Giving disk (%u) a label...\n", (UINT)Number)); - - if (GetDiskName(&DiskLabel, Number, Label)) - return true; - - if (DiskLabelTemplateSet) - { - j = 0; - strcpy(Label, ""); - for (i = 0; i < strlen(DiskLabelTemplate); i++) - { - ch = DiskLabelTemplate[i]; - if (ch == '*') - { - sprintf(Buffer, "%u", (UINT)Number); - strcat(Label, Buffer); - j += (LONG)strlen(Buffer); - } - else - { - Label[j] = ch; - j++; - } - Label[j] = '\0'; - } - - DPRINT(MID_TRACE, ("Giving disk (%s) as a label...\n", Label)); - - return true; - } - else - return false; -} - - -bool CDFParser::OnCabinetName(ULONG Number, char* Name) -/* - * FUNCTION: Called when a cabinet needs a name - * ARGUMENTS: - * Number = Disk number that needs a name - * Name = Pointer to buffer to place name of cabinet - * RETURNS: - * true if a cabinet name was returned, false if not - */ -{ - char Buffer[PATH_MAX]; - ULONG i; - int j; - char ch; - - Number += 1; - - DPRINT(MID_TRACE, ("Giving cabinet (%u) a name...\n", (UINT)Number)); - - if (GetDiskName(&CabinetName, Number, Buffer)) - { - strcpy(Name, GetDestinationPath()); - strcat(Name, Buffer); - return true; - } - - if (CabinetNameTemplateSet) - { - strcpy(Name, GetDestinationPath()); - j = (LONG)strlen(Name); - for (i = 0; i < strlen(CabinetNameTemplate); i++) - { - ch = CabinetNameTemplate[i]; - if (ch == '*') - { - sprintf(Buffer, "%u", (UINT)Number); - strcat(Name, Buffer); - j += (LONG)strlen(Buffer); - } - else - { - Name[j] = ch; - j++; - } - Name[j] = '\0'; - } - - DPRINT(MID_TRACE, ("Giving cabinet (%s) as a name...\n", Name)); - return true; - } - else - return false; -} - - -bool CDFParser::SetDiskName(PCABINET_NAME *List, ULONG Number, char* String) -/* - * FUNCTION: Sets an entry in a list - * ARGUMENTS: - * List = Address of pointer to list - * Number = Disk number - * String = Pointer to string - * RETURNS: - * false if there was not enough free memory available - */ -{ - PCABINET_NAME CN; - - CN = *List; - while (CN != NULL) - { - if (CN->DiskNumber == Number) - { - strcpy(CN->Name, String); - return true; - } - CN = CN->Next; - } - - CN = (PCABINET_NAME)AllocateMemory(sizeof(CABINET_NAME)); - if (!CN) - return false; - - CN->DiskNumber = Number; - strcpy(CN->Name, String); - - CN->Next = *List; - *List = CN; - - return true; -} - - -bool CDFParser::GetDiskName(PCABINET_NAME *List, ULONG Number, char* String) -/* - * FUNCTION: Returns an entry in a list - * ARGUMENTS: - * List = Address of pointer to list - * Number = Disk number - * String = Address of buffer to copy string to - * RETURNS: - * false if there was not enough free memory available - */ -{ - PCABINET_NAME CN; - - CN = *List; - while (CN != NULL) - { - if (CN->DiskNumber == Number) - { - strcpy(String, CN->Name); - return true; - } - CN = CN->Next; - } - - return false; -} - - -bool CDFParser::SetDiskNumber(PDISK_NUMBER *List, ULONG Number, ULONG Value) -/* - * FUNCTION: Sets an entry in a list - * ARGUMENTS: - * List = Address of pointer to list - * Number = Disk number - * Value = Value to set - * RETURNS: - * false if there was not enough free memory available - */ -{ - PDISK_NUMBER DN; - - DN = *List; - while (DN != NULL) - { - if (DN->DiskNumber == Number) - { - DN->Number = Value; - return true; - } - DN = DN->Next; - } - - DN = (PDISK_NUMBER)AllocateMemory(sizeof(DISK_NUMBER)); - if (!DN) - return false; - - DN->DiskNumber = Number; - DN->Number = Value; - - DN->Next = *List; - *List = DN; - - return true; -} - - -bool CDFParser::GetDiskNumber(PDISK_NUMBER *List, ULONG Number, PULONG Value) -/* - * FUNCTION: Returns an entry in a list - * ARGUMENTS: - * List = Address of pointer to list - * Number = Disk number - * Value = Address of buffer to place value - * RETURNS: - * true if the entry was found - */ -{ - PDISK_NUMBER DN; - - DN = *List; - while (DN != NULL) - { - if (DN->DiskNumber == Number) - { - *Value = DN->Number; - return true; - } - DN = DN->Next; - } - - return false; -} - - -bool CDFParser::DoDiskLabel(ULONG Number, char* Label) -/* - * FUNCTION: Sets the label of a disk - * ARGUMENTS: - * Number = Disk number - * Label = Pointer to label of disk - * RETURNS: - * false if there was not enough free memory available - */ -{ - DPRINT(MID_TRACE, ("Setting label of disk (%u) to '%s'\n", (UINT)Number, Label)); - - return SetDiskName(&DiskLabel, Number, Label); -} - - -void CDFParser::DoDiskLabelTemplate(char* Template) -/* - * FUNCTION: Sets a disk label template to use - * ARGUMENTS: - * Template = Pointer to disk label template - */ -{ - DPRINT(MID_TRACE, ("Setting disk label template to '%s'\n", Template)); - - strcpy(DiskLabelTemplate, Template); - DiskLabelTemplateSet = true; -} - - -bool CDFParser::DoCabinetName(ULONG Number, char* Name) -/* - * FUNCTION: Sets the name of a cabinet - * ARGUMENTS: - * Number = Disk number - * Name = Pointer to name of cabinet - * RETURNS: - * false if there was not enough free memory available - */ -{ - DPRINT(MID_TRACE, ("Setting name of cabinet (%u) to '%s'\n", (UINT)Number, Name)); - - return SetDiskName(&CabinetName, Number, Name); -} - - -void CDFParser::DoCabinetNameTemplate(char* Template) -/* - * FUNCTION: Sets a cabinet name template to use - * ARGUMENTS: - * Template = Pointer to cabinet name template - */ -{ - DPRINT(MID_TRACE, ("Setting cabinet name template to '%s'\n", Template)); - - strcpy(CabinetNameTemplate, Template); - CabinetNameTemplateSet = true; -} - - -ULONG CDFParser::DoMaxDiskSize(bool NumberValid, ULONG Number) -/* - * FUNCTION: Sets the maximum disk size - * ARGUMENTS: - * NumberValid = true if disk number is valid - * Number = Disk number - * RETURNS: - * Status of operation - * NOTES: - * Standard sizes are 2.88M, 1.44M, 1.25M, 1.2M, 720K, 360K, and CDROM - */ -{ - ULONG A, B, Value; - - if (IsNextToken(TokenInteger, true)) - { - A = CurrentInteger; - - if (IsNextToken(TokenPeriod, false)) - { - if (!IsNextToken(TokenInteger, false)) - return CAB_STATUS_FAILURE; - - B = CurrentInteger; - - } - else - B = 0; - - if (CurrentToken == TokenIdentifier) - { - switch (CurrentString[0]) - { - case 'K': - if (B != 0) - return CAB_STATUS_FAILURE; - - if (A == 720) - /* 720K disk */ - Value = 730112; - else if (A == 360) - /* 360K disk */ - Value = 362496; - else - return CAB_STATUS_FAILURE; - break; - - case 'M': - if (A == 1) - { - if (B == 44) - /* 1.44M disk */ - Value = 1457664; - else if (B == 25) - /* 1.25M disk */ - Value = 1300000; // FIXME: Value? - else if (B == 2) - /* 1.2M disk */ - Value = 1213952; - else - return CAB_STATUS_FAILURE; - } - else if (A == 2) - { - if (B == 88) - /* 2.88M disk */ - Value = 2915328; - else - return CAB_STATUS_FAILURE; - } - else - return CAB_STATUS_FAILURE; - break; - - default: - DPRINT(MID_TRACE, ("Bad suffix (%c)\n", CurrentString[0])); - return CAB_STATUS_FAILURE; - } - } - else - Value = A; - } - else - { - if ((CurrentToken != TokenString) && - (strcasecmp(CurrentString, "CDROM") != 0)) - return CAB_STATUS_FAILURE; - /* CDROM */ - Value = 640*1024*1024; // FIXME: Correct size for CDROM? - } - - if (NumberValid) - return (SetDiskNumber(&MaxDiskSize, Number, Value)? - CAB_STATUS_SUCCESS : CAB_STATUS_FAILURE); - - MaxDiskSizeAll = Value; - MaxDiskSizeAllSet = true; - - SetMaxDiskSize(Value); - - return CAB_STATUS_SUCCESS; -} - - -void CDFParser::DoInfFileName(char* FileName) -/* - * FUNCTION: Sets filename of the generated .inf file - * ARGUMENTS: - * FileName = Pointer to .inf filename - */ -{ - DPRINT(MID_TRACE, ("Setting .inf filename to '%s'\n", FileName)); - - strcpy(InfFileName, FileName); - InfFileNameSet = true; -} - -ULONG CDFParser::SetupNewDisk() -/* - * FUNCTION: Sets up parameters for a new disk - * RETURNS: - * Status of operation - */ -{ - ULONG Value; - - if (!GetDiskNumber(&MaxDiskSize, GetCurrentDiskNumber(), &Value)) - { - if (MaxDiskSizeAllSet) - Value = MaxDiskSizeAll; - else - Value = 0; - } - SetMaxDiskSize(Value); - - return CAB_STATUS_SUCCESS; -} - - -ULONG CDFParser::PerformSetCommand() -/* - * FUNCTION: Performs a set variable command - * RETURNS: - * Status of operation - */ -{ - SETTYPE SetType; - bool NumberValid = false; - ULONG Number = 0; - - if (!IsNextToken(TokenIdentifier, true)) - return CAB_STATUS_FAILURE; - - if (strcasecmp(CurrentString, "DiskLabel") == 0) - SetType = stDiskLabel; - else if (strcasecmp(CurrentString, "DiskLabelTemplate") == 0) - SetType = stDiskLabelTemplate; - else if (strcasecmp(CurrentString, "CabinetName") == 0) - SetType = stCabinetName; - else if (strcasecmp(CurrentString, "CabinetNameTemplate") == 0) - SetType = stCabinetNameTemplate; - else if (strcasecmp(CurrentString, "MaxDiskSize") == 0) - SetType = stMaxDiskSize; - else if (strcasecmp(CurrentString, "InfFileName") == 0) - SetType = stInfFileName; - else - return CAB_STATUS_FAILURE; - - if ((SetType == stDiskLabel) || (SetType == stCabinetName)) - { - if (!IsNextToken(TokenInteger, false)) - return CAB_STATUS_FAILURE; - Number = CurrentInteger; - - if (!IsNextToken(TokenEqual, true)) - return CAB_STATUS_FAILURE; - } - else if (SetType == stMaxDiskSize) - { - if (IsNextToken(TokenInteger, false)) - { - NumberValid = true; - Number = CurrentInteger; - } - else - { - NumberValid = false; - while (CurrentToken == TokenSpace) - NextToken(); - if (CurrentToken != TokenEqual) - return CAB_STATUS_FAILURE; - } - } - else if (!IsNextToken(TokenEqual, true)) - return CAB_STATUS_FAILURE; - - if (SetType != stMaxDiskSize) - { - if (!IsNextToken(TokenString, true)) - return CAB_STATUS_FAILURE; - } - - switch (SetType) - { - case stDiskLabel: - if (!DoDiskLabel(Number, CurrentString)) - DPRINT(MIN_TRACE, ("Not enough available free memory.\n")); - return CAB_STATUS_SUCCESS; - - case stCabinetName: - if (!DoCabinetName(Number, CurrentString)) - DPRINT(MIN_TRACE, ("Not enough available free memory.\n")); - return CAB_STATUS_SUCCESS; - - case stDiskLabelTemplate: - DoDiskLabelTemplate(CurrentString); - return CAB_STATUS_SUCCESS; - - case stCabinetNameTemplate: - DoCabinetNameTemplate(CurrentString); - return CAB_STATUS_SUCCESS; - - case stMaxDiskSize: - return DoMaxDiskSize(NumberValid, Number); - - case stInfFileName: - DoInfFileName(CurrentString); - return CAB_STATUS_SUCCESS; - - default: - return CAB_STATUS_FAILURE; - } -} - - -ULONG CDFParser::PerformNewCommand() -/* - * FUNCTION: Performs a new disk|cabinet|folder command - * RETURNS: - * Status of operation - */ -{ - NEWTYPE NewType; - ULONG Status; - - if (!IsNextToken(TokenIdentifier, true)) - return CAB_STATUS_FAILURE; - - if (strcasecmp(CurrentString, "Disk") == 0) - NewType = ntDisk; - else if (strcasecmp(CurrentString, "Cabinet") == 0) - NewType = ntCabinet; - else if (strcasecmp(CurrentString, "Folder") == 0) - NewType = ntFolder; - else - return CAB_STATUS_FAILURE; - - switch (NewType) - { - case ntDisk: - if (DiskCreated) - { - Status = WriteDisk(true); - if (Status == CAB_STATUS_SUCCESS) - Status = CloseDisk(); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot write disk (%u).\n", (UINT)Status)); - return CAB_STATUS_SUCCESS; - } - DiskCreated = false; - } - - Status = NewDisk(); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot create disk (%u).\n", (UINT)Status)); - return CAB_STATUS_SUCCESS; - } - DiskCreated = true; - SetupNewDisk(); - return CAB_STATUS_SUCCESS; - - case ntCabinet: - if (DiskCreated) - { - Status = WriteDisk(true); - if (Status == CAB_STATUS_SUCCESS) - Status = CloseDisk(); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot write disk (%u).\n", (UINT)Status)); - return CAB_STATUS_SUCCESS; - } - DiskCreated = false; - } - - Status = NewCabinet(); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot create cabinet (%u).\n", (UINT)Status)); - return CAB_STATUS_SUCCESS; - } - DiskCreated = true; - SetupNewDisk(); - return CAB_STATUS_SUCCESS; - - case ntFolder: - Status = NewFolder(); - ASSERT(Status == CAB_STATUS_SUCCESS); - return CAB_STATUS_SUCCESS; - - default: - return CAB_STATUS_FAILURE; - } -} - - -ULONG CDFParser::PerformInfBeginCommand() -/* - * FUNCTION: Begins inf mode - * RETURNS: - * Status of operation - */ -{ - InfModeEnabled = true; - return CAB_STATUS_SUCCESS; -} - - -ULONG CDFParser::PerformInfEndCommand() -/* - * FUNCTION: Begins inf mode - * RETURNS: - * Status of operation - */ -{ - InfModeEnabled = false; - return CAB_STATUS_SUCCESS; -} - - -ULONG CDFParser::PerformCommand() -/* - * FUNCTION: Performs a command - * RETURNS: - * Status of operation - */ -{ - if (strcasecmp(CurrentString, "Set") == 0) - return PerformSetCommand(); - if (strcasecmp(CurrentString, "New") == 0) - return PerformNewCommand(); - if (strcasecmp(CurrentString, "InfBegin") == 0) - return PerformInfBeginCommand(); - if (strcasecmp(CurrentString, "InfEnd") == 0) - return PerformInfEndCommand(); - - return CAB_STATUS_FAILURE; -} - - -ULONG CDFParser::PerformFileCopy() -/* - * FUNCTION: Performs a file copy - * RETURNS: - * Status of operation - */ -{ - ULONG Status; - ULONG i, j; - char ch; - char SrcName[PATH_MAX]; - char DstName[PATH_MAX]; - char InfLine[PATH_MAX]; - char Options[128]; - char BaseFilename[PATH_MAX]; - - *SrcName = '\0'; - *DstName = '\0'; - *Options = '\0'; - - // source file - i = CurrentChar; - while ((i < LineLength) && - ((ch = Line[i]) != ' ') && - (ch != 0x09) && - (ch != ';')) - { - CurrentString[i] = ch; - i++; - } - CurrentString[i] = '\0'; - CurrentToken = TokenString; - CurrentChar = i + 1; - strcpy(BaseFilename, CurrentString); - strcat(SrcName, BaseFilename); - - // destination - SkipSpaces(); - - if (CurrentToken != TokenEnd) - { - j = (ULONG)strlen(CurrentString); i = 0; - while ((CurrentChar + i < LineLength) && - ((ch = Line[CurrentChar + i]) != ' ') && - (ch != 0x09) && - (ch != ';')) - { - CurrentString[j + i] = ch; - i++; - } - CurrentString[j + i] = '\0'; - CurrentToken = TokenString; - CurrentChar += i + 1; - strcpy(DstName, CurrentString); - } - - // options (it may be empty) - SkipSpaces (); - - if (CurrentToken != TokenEnd) - { - j = (ULONG)strlen(CurrentString); i = 0; - while ((CurrentChar + i < LineLength) && - ((ch = Line[CurrentChar + i]) != ' ') && - (ch != 0x09) && - (ch != ';')) - { - CurrentString[j + i] = ch; - i++; - } - CurrentString[j + i] = '\0'; - CurrentToken = TokenString; - CurrentChar += i + 1; - strcpy(Options, CurrentString); - } - - if (!CabinetCreated) - { - DPRINT(MID_TRACE, ("Creating cabinet.\n")); - - Status = NewCabinet(); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot create cabinet (%u).\n", (UINT)Status)); - printf("Cannot create cabinet.\n"); - return CAB_STATUS_FAILURE; - } - CabinetCreated = true; - - DPRINT(MID_TRACE, ("Creating disk.\n")); - - Status = NewDisk(); - if (Status != CAB_STATUS_SUCCESS) - { - DPRINT(MIN_TRACE, ("Cannot create disk (%u).\n", (UINT)Status)); - printf("Cannot create disk.\n"); - return CAB_STATUS_FAILURE; - } - DiskCreated = true; - SetupNewDisk(); - } - - DPRINT(MID_TRACE, ("Adding file: '%s' destination: '%s'.\n", SrcName, DstName)); - - Status = AddFile(SrcName); - if (Status == CAB_STATUS_CANNOT_OPEN) - { - strcpy(SrcName, FileRelativePath); - strcat(SrcName, BaseFilename); - Status = AddFile(SrcName); - } - switch (Status) - { - case CAB_STATUS_SUCCESS: - sprintf(InfLine, "%s=%s", GetFileName(SrcName), DstName); - WriteInfLine(InfLine); - break; - - case CAB_STATUS_CANNOT_OPEN: - if (strstr(Options,"optional")) - { - Status = CAB_STATUS_SUCCESS; - printf("Optional file does not exist: %s.\n", SrcName); - } - else - printf("File does not exist: %s.\n", SrcName); - - break; - - case CAB_STATUS_NOMEMORY: - printf("Insufficient memory to add file: %s.\n", SrcName); - break; - - default: - printf("Cannot add file: %s (%u).\n", SrcName, (UINT)Status); - break; - } - return Status; -} - - -void CDFParser::SkipSpaces() -/* - * FUNCTION: Skips any spaces in the current line - */ -{ - NextToken(); - while (CurrentToken == TokenSpace) - NextToken(); -} - - -bool CDFParser::IsNextToken(DFP_TOKEN Token, bool NoSpaces) -/* - * FUNCTION: Checks if next token equals Token - * ARGUMENTS: - * Token = Token to compare with - * SkipSp = true if spaces should be skipped - * RETURNS: - * false if next token is diffrent from Token - */ -{ - if (NoSpaces) - SkipSpaces(); - else - NextToken(); - return (CurrentToken == Token); -} - - -bool CDFParser::ReadLine() -/* - * FUNCTION: Reads the next line into the line buffer - * RETURNS: - * true if there is a new line, false if not - */ -{ - ULONG i, j; - char ch; - - if (CurrentOffset >= FileBufferSize) - return false; - - i = 0; - while (((j = CurrentOffset + i) < FileBufferSize) && (i < sizeof(Line) - 1) && - ((ch = FileBuffer[j]) != 0x0D && (ch = FileBuffer[j]) != 0x0A)) - { - Line[i] = ch; - i++; - } - - Line[i] = '\0'; - LineLength = i; - - if ((FileBuffer[CurrentOffset + i] == 0x0D) && (FileBuffer[CurrentOffset + i + 1] == 0x0A)) - CurrentOffset++; - - CurrentOffset += i + 1; - - CurrentChar = 0; - - CurrentLine++; - - NextToken(); - - return true; -} - - -void CDFParser::NextToken() -/* - * FUNCTION: Reads the next token from the current line - */ -{ - ULONG i; - char ch = ' '; - - if (CurrentChar >= LineLength) - { - CurrentToken = TokenEnd; - return; - } - - switch (Line[CurrentChar]) - { - case ' ': - case 0x09: - CurrentToken = TokenSpace; - break; - - case ';': - CurrentToken = TokenSemi; - break; - - case '=': - CurrentToken = TokenEqual; - break; - - case '.': - CurrentToken = TokenPeriod; - break; - - case '\\': - CurrentToken = TokenBackslash; - break; - - case '"': - i = 0; - while ((CurrentChar + i + 1 < LineLength) && - ((ch = Line[CurrentChar + i + 1]) != '"')) - { - CurrentString[i] = ch; - i++; - } - CurrentString[i] = '\0'; - CurrentToken = TokenString; - CurrentChar += i + 2; - return; - - default: - i = 0; - while ((CurrentChar + i < LineLength) && - ((ch = Line[CurrentChar + i]) >= '0') && (ch <= '9')) - { - CurrentString[i] = ch; - i++; - } - if (i > 0) - { - CurrentString[i] = '\0'; - CurrentInteger = atoi(CurrentString); - CurrentToken = TokenInteger; - CurrentChar += i; - return; - } - i = 0; - while (((CurrentChar + i < LineLength) && - (((ch = Line[CurrentChar + i]) >= 'a') && (ch <= 'z'))) || - ((ch >= 'A') && (ch <= 'Z')) || (ch == '_')) - { - CurrentString[i] = ch; - i++; - } - if (i > 0) - { - CurrentString[i] = '\0'; - CurrentToken = TokenIdentifier; - CurrentChar += i; - return; - } - CurrentToken = TokenEnd; - } - CurrentChar++; -} - -/* EOF */ diff --git a/reactos/tools/cabman/dfp.h b/reactos/tools/cabman/dfp.h deleted file mode 100644 index 77ffb44dd0a..00000000000 --- a/reactos/tools/cabman/dfp.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS cabinet manager - * FILE: tools/cabman/dfp.h - * PURPOSE: Directive file parser header - */ - -#pragma once - -#include "cabinet.h" - -typedef struct _CABINET_NAME { - struct _CABINET_NAME *Next; - ULONG DiskNumber; - char Name[128]; -} CABINET_NAME, *PCABINET_NAME; - -typedef struct _DISK_NUMBER { - struct _DISK_NUMBER *Next; - ULONG DiskNumber; - ULONG Number; -} DISK_NUMBER, *PDISK_NUMBER; - -typedef enum { - TokenUnknown, - TokenInteger, - TokenIdentifier, - TokenString, - TokenSpace, - TokenSemi, - TokenEqual, - TokenPeriod, - TokenBackslash, - TokenEnd, -} DFP_TOKEN; - - -typedef enum { - stCabinetName, - stCabinetNameTemplate, - stDiskLabel, - stDiskLabelTemplate, - stMaxDiskSize, - stInfFileName -} SETTYPE; - - -typedef enum { - ntDisk, - ntCabinet, - ntFolder, -} NEWTYPE; - - -/* Classes */ - -class CDFParser : public CCabinet { -public: - CDFParser(); - virtual ~CDFParser(); - ULONG Load(char* FileName); - ULONG Parse(); - void SetFileRelativePath(char* Path); - bool InfFileOnly; - bool DontGenerateInf; - char FileRelativePath[300]; -private: - /* Event handlers */ - virtual bool OnDiskLabel(ULONG Number, char* Label); - virtual bool OnCabinetName(ULONG Number, char* Name); - - void WriteInfLine(char* InfLine); - bool SetDiskName(PCABINET_NAME *List, ULONG Number, char* String); - bool GetDiskName(PCABINET_NAME *List, ULONG Number, char* String); - bool SetDiskNumber(PDISK_NUMBER *List, ULONG Number, ULONG Value); - bool GetDiskNumber(PDISK_NUMBER *List, ULONG Number, PULONG Value); - bool DoDiskLabel(ULONG Number, char* Label); - void DoDiskLabelTemplate(char* Template); - bool DoCabinetName(ULONG Number, char* Name); - void DoCabinetNameTemplate(char* Template); - void DoInfFileName(char* InfFileName); - ULONG DoMaxDiskSize(bool NumberValid, ULONG Number); - ULONG SetupNewDisk(); - ULONG PerformSetCommand(); - ULONG PerformNewCommand(); - ULONG PerformInfBeginCommand(); - ULONG PerformInfEndCommand(); - ULONG PerformCommand(); - ULONG PerformFileCopy(); - void SkipSpaces(); - bool IsNextToken(DFP_TOKEN Token, bool NoSpaces); - bool ReadLine(); - void NextToken(); - /* Parsing */ - bool FileLoaded; - FILEHANDLE FileHandle; - char* FileBuffer; - ULONG FileBufferSize; - ULONG CurrentOffset; - char Line[PATH_MAX + 6]; /* "PATH" xEOL */ - ULONG LineLength; - ULONG CurrentLine; - ULONG CurrentChar; - /* Token */ - DFP_TOKEN CurrentToken; - ULONG CurrentInteger; - char CurrentString[256]; - - /* State */ - bool CabinetCreated; - bool DiskCreated; - bool FolderCreated; - /* Standard directive variable */ - bool Cabinet; - ULONG CabinetFileCountThreshold; - PCABINET_NAME CabinetName; - bool CabinetNameTemplateSet; - char CabinetNameTemplate[128]; - bool InfFileNameSet; - char InfFileName[256]; - bool Compress; - ULONG CompressionType; - PCABINET_NAME DiskLabel; - bool DiskLabelTemplateSet; - char DiskLabelTemplate[128]; - ULONG FolderFileCountThreshold; - ULONG FolderSizeThreshold; - ULONG MaxCabinetSize; - ULONG MaxDiskFileCount; - PDISK_NUMBER MaxDiskSize; - bool MaxDiskSizeAllSet; - ULONG MaxDiskSizeAll; - ULONG ReservePerCabinetSize; - ULONG ReservePerDataBlockSize; - ULONG ReservePerFolderSize; - char SourceDir[256]; - FILEHANDLE InfFileHandle; - bool InfModeEnabled; -}; - -/* EOF */ diff --git a/reactos/tools/cabman/main.cxx b/reactos/tools/cabman/main.cxx deleted file mode 100644 index 88f0f151ad2..00000000000 --- a/reactos/tools/cabman/main.cxx +++ /dev/null @@ -1,652 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS cabinet manager - * FILE: tools/cabman/main.cpp - * PURPOSE: Main program - * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net) - * Colin Finck - * REVISIONS: - * CSH 21/03-2001 Created - * CSH 15/08-2003 Made it portable - * CF 04/05-2007 Made it compatible with 64-bit operating systems - */ -#include -#include -#include -#include -#include "cabman.h" - - -#if DBG - -ULONG DebugTraceLevel = MIN_TRACE; -//ULONG DebugTraceLevel = MID_TRACE; -//ULONG DebugTraceLevel = MAX_TRACE; - -#endif /* DBG */ - - -char* Pad(char* Str, char PadChar, ULONG Length) -/* - * FUNCTION: Pads a string with a character to make a given length - * ARGUMENTS: - * Str = Pointer to string to pad - * PadChar = Character to pad with - * Length = Disired length of string - * RETURNS: - * Pointer to string - * NOTES: - * Str must be at least Length + 1 bytes - */ -{ - ULONG Len; - - Len = (ULONG)strlen(Str); - - if (Len < Length) - { - memcpy(&Str[Length - Len], Str, Len + 1); - memset(Str, PadChar, Length - Len); - } - return Str; -} - - -char* Date2Str(char* Str, USHORT Date) -/* - * FUNCTION: Converts a DOS style date to a string - * ARGUMENTS: - * Str = Pointer to destination string - * Date = DOS style date - * RETURNS: - * Pointer to string - */ -{ - ULONG dw; - - /* Month */ - Str[0] = (char)('0' + ((Date & 0x01E0) >> 5) / 10); - Str[1] = (char)('0' + ((Date & 0x01E0) >> 5) % 10); - Str[2] = '-'; - /* Day */ - Str[3] = (char)('0' + (Date & 0x001F) / 10); - Str[4] = (char)('0' + (Date & 0x001F) % 10); - Str[5] = '-'; - /* Year */ - dw = 1980 + ((Date & 0xFE00) >> 9); - Str[6] = (char)('0' + dw / 1000); dw %= 1000; - Str[7] = (char)('0' + dw / 100); dw %= 100; - Str[8] = (char)('0' + dw / 10); dw %= 10; - Str[9] = (char)('0' + dw % 10); - Str[10] = '\0'; - return Str; -} - - -char* Time2Str(char* Str, USHORT Time) -/* - * FUNCTION: Converts a DOS style time to a string - * ARGUMENTS: - * Str = Pointer to destination string - * Time = DOS style time - * RETURNS: - * Pointer to string - */ -{ - bool PM; - ULONG Hour; - ULONG dw; - - Hour = ((Time & 0xF800) >> 11); - PM = (Hour >= 12); - Hour %= 12; - if (Hour == 0) - Hour = 12; - - if (Hour >= 10) - Str[0] = (char)('0' + Hour / 10); - else Str[0] = ' '; - Str[1] = (char)('0' + Hour % 10); - Str[2] = ':'; - /* Minute */ - Str[3] = (char)('0' + ((Time & 0x07E0) >> 5) / 10); - Str[4] = (char)('0' + ((Time & 0x07E0) >> 5) % 10); - Str[5] = ':'; - /* Second */ - dw = 2 * (Time & 0x001F); - Str[6] = (char)('0' + dw / 10); - Str[7] = (char)('0' + dw % 10); - - Str[8] = PM? 'p' : 'a'; - Str[9] = '\0'; - return Str; -} - - -char* Attr2Str(char* Str, USHORT Attr) -/* - * FUNCTION: Converts attributes to a string - * ARGUMENTS: - * Str = Pointer to destination string - * Attr = Attributes - * RETURNS: - * Pointer to string - */ -{ - /* Archive */ - if (Attr & CAB_ATTRIB_ARCHIVE) - Str[0] = 'A'; - else - Str[0] = '-'; - - /* Hidden */ - if (Attr & CAB_ATTRIB_HIDDEN) - Str[1] = 'H'; - else - Str[1] = '-'; - - /* Read only */ - if (Attr & CAB_ATTRIB_READONLY) - Str[2] = 'R'; - else - Str[2] = '-'; - - /* System */ - if (Attr & CAB_ATTRIB_SYSTEM) - Str[3] = 'S'; - else - Str[3] = '-'; - - Str[4] = '\0'; - return Str; -} - - -/* CCABManager */ - -CCABManager::CCABManager() -/* - * FUNCTION: Default constructor - */ -{ - ProcessAll = false; - InfFileOnly = false; - Mode = CM_MODE_DISPLAY; - FileName[0] = 0; -} - - -CCABManager::~CCABManager() -/* - * FUNCTION: Default destructor - */ -{ -} - - -void CCABManager::Usage() -/* - * FUNCTION: Display usage information on screen - */ -{ - printf("ReactOS Cabinet Manager\n\n"); - printf("CABMAN [-D | -E] [-A] [-L dir] cabinet [filename ...]\n"); - printf("CABMAN [-M mode] -C dirfile [-I] [-RC file] [-P dir]\n"); - printf("CABMAN [-M mode] -S cabinet filename [...]\n"); - printf(" cabinet Cabinet file.\n"); - printf(" filename Name of the file to add to or extract from the cabinet.\n"); - printf(" Wild cards and multiple filenames\n"); - printf(" (separated by blanks) may be used.\n\n"); - - printf(" dirfile Name of the directive file to use.\n"); - - printf(" -A Process ALL cabinets. Follows cabinet chain\n"); - printf(" starting in first cabinet mentioned.\n"); - printf(" -C Create cabinet.\n"); - printf(" -D Display cabinet directory.\n"); - printf(" -E Extract files from cabinet.\n"); - printf(" -I Don't create the cabinet, only the .inf file.\n"); - printf(" -L dir Location to place extracted or generated files\n"); - printf(" (default is current directory).\n"); - printf(" -M mode Specify the compression method to use:\n"); - printf(" raw - No compression\n"); - printf(" mszip - MsZip compression (default)\n"); - printf(" -N Don't create the .inf file, only the cabinet.\n"); - printf(" -RC Specify file to put in cabinet reserved area\n"); - printf(" (size must be less than 64KB).\n"); - printf(" -S Create simple cabinet.\n"); - printf(" -P dir Files in the .dff are relative to this directory\n"); -} - -bool CCABManager::ParseCmdline(int argc, char* argv[]) -/* - * FUNCTION: Parse command line arguments - * ARGUMENTS: - * argc = Number of arguments on command line - * argv = Pointer to list of command line arguments - * RETURNS: - * true if command line arguments was successfully parsed, false if not - */ -{ - int i; - bool ShowUsage; - bool FoundCabinet = false; - - ShowUsage = (argc < 2); - - for (i = 1; i < argc; i++) - { - if (argv[i][0] == '-') - { - switch (argv[i][1]) - { - case 'a': - case 'A': - ProcessAll = true; - break; - - case 'c': - case 'C': - Mode = CM_MODE_CREATE; - break; - - case 'd': - case 'D': - Mode = CM_MODE_DISPLAY; - break; - - case 'e': - case 'E': - Mode = CM_MODE_EXTRACT; - break; - - case 'i': - case 'I': - InfFileOnly = true; - break; - - case 'l': - case 'L': - if (argv[i][2] == 0) - { - i++; - SetDestinationPath(&argv[i][0]); - } - else - SetDestinationPath(&argv[i][2]); - - break; - - case 'm': - case 'M': - // Set the compression codec (only affects compression, not decompression) - if(argv[i][2] == 0) - { - i++; - - if( !SetCompressionCodec(&argv[i][0]) ) - return false; - } - else - { - if( !SetCompressionCodec(&argv[i][2]) ) - return false; - } - - break; - - case 'n': - case 'N': - DontGenerateInf = true; - break; - - case 'R': - switch (argv[i][2]) - { - case 'C': /* File to put in cabinet reserved area */ - if (argv[i][3] == 0) - { - i++; - if (!SetCabinetReservedFile(&argv[i][0])) - { - printf("Cannot open cabinet reserved area file.\n"); - return false; - } - } - else - { - if (!SetCabinetReservedFile(&argv[i][3])) - { - printf("Cannot open cabinet reserved area file.\n"); - return false; - } - } - break; - - default: - printf("Bad parameter %s.\n", argv[i]); - return false; - } - break; - - case 's': - case 'S': - Mode = CM_MODE_CREATE_SIMPLE; - break; - - case 'P': - if (argv[i][2] == 0) - { - i++; - SetFileRelativePath(&argv[i][0]); - } - else - SetFileRelativePath(&argv[i][2]); - - break; - - default: - printf("Bad parameter %s.\n", argv[i]); - return false; - } - } - else - { - if(Mode == CM_MODE_CREATE) - { - if(FileName[0]) - { - printf("You may only specify one directive file!\n"); - return false; - } - else - { - // For creating cabinets, this argument is the path to the directive file - strcpy(FileName, argv[i]); - } - } - else if(FoundCabinet) - { - // For creating simple cabinets, displaying or extracting them, add the argument as a search criteria - AddSearchCriteria(argv[i]); - } - else - { - SetCabinetName(argv[i]); - FoundCabinet = true; - } - } - } - - if (ShowUsage) - { - Usage(); - return false; - } - - // Select MsZip by default for creating cabinets - if( (Mode == CM_MODE_CREATE || Mode == CM_MODE_CREATE_SIMPLE) && !IsCodecSelected() ) - SelectCodec(CAB_CODEC_MSZIP); - - // Search criteria (= the filename argument) is necessary for creating a simple cabinet - if( Mode == CM_MODE_CREATE_SIMPLE && !HasSearchCriteria()) - { - printf("You have to enter input file names!\n"); - return false; - } - - return true; -} - - -bool CCABManager::CreateCabinet() -/* - * FUNCTION: Create cabinet - */ -{ - ULONG Status; - - Status = Load(FileName); - if (Status != CAB_STATUS_SUCCESS) - { - printf("Specified directive file could not be found: %s.\n", FileName); - return false; - } - - Status = Parse(); - - return (Status == CAB_STATUS_SUCCESS ? true : false); -} - -bool CCABManager::DisplayCabinet() -/* - * FUNCTION: Display cabinet contents - */ -{ - CAB_SEARCH Search; - char Str[20]; - ULONG FileCount = 0; - ULONG ByteCount = 0; - - if (Open() == CAB_STATUS_SUCCESS) - { - printf("Cabinet %s\n\n", GetCabinetName()); - - if (FindFirst(&Search) == CAB_STATUS_SUCCESS) - { - do - { - if (Search.File->FileControlID != CAB_FILE_CONTINUED) - { - printf("%s ", Date2Str(Str, Search.File->FileDate)); - printf("%s ", Time2Str(Str, Search.File->FileTime)); - printf("%s ", Attr2Str(Str, Search.File->Attributes)); - sprintf(Str, "%u", (UINT)Search.File->FileSize); - printf("%s ", Pad(Str, ' ', 13)); - printf("%s\n", Search.FileName); - - FileCount++; - ByteCount += Search.File->FileSize; - } - } while (FindNext(&Search) == CAB_STATUS_SUCCESS); - } - - DestroySearchCriteria(); - - if (FileCount > 0) { - if (FileCount == 1) - printf(" 1 file "); - else - { - sprintf(Str, "%u", (UINT)FileCount); - printf(" %s files ", Pad(Str, ' ', 12)); - } - - if (ByteCount == 1) - printf(" 1 byte\n"); - else - { - sprintf(Str, "%u", (UINT)ByteCount); - printf("%s bytes\n", Pad(Str, ' ', 12)); - } - } - else - { - /* There should be at least one file in a cabinet */ - printf("No files in cabinet."); - } - return true; - } - else - printf("Cannot open file: %s\n", GetCabinetName()); - - return false; -} - - -bool CCABManager::ExtractFromCabinet() -/* - * FUNCTION: Extract file(s) from cabinet - */ -{ - bool bRet = true; - CAB_SEARCH Search; - ULONG Status; - - if (Open() == CAB_STATUS_SUCCESS) - { - printf("Cabinet %s\n\n", GetCabinetName()); - - if (FindFirst(&Search) == CAB_STATUS_SUCCESS) - { - do - { - switch (Status = ExtractFile(Search.FileName)) - { - case CAB_STATUS_SUCCESS: - break; - - case CAB_STATUS_INVALID_CAB: - printf("Cabinet contains errors.\n"); - bRet = false; - break; - - case CAB_STATUS_UNSUPPCOMP: - printf("Cabinet uses unsupported compression type.\n"); - bRet = false; - break; - - case CAB_STATUS_CANNOT_WRITE: - printf("You've run out of free space on the destination volume or the volume is damaged.\n"); - bRet = false; - break; - - default: - printf("Unspecified error code (%u).\n", (UINT)Status); - bRet = false; - break; - } - - if(!bRet) - break; - } while (FindNext(&Search) == CAB_STATUS_SUCCESS); - - DestroySearchCriteria(); - } - - return bRet; - } - else - printf("Cannot open file: %s.\n", GetCabinetName()); - - return false; -} - - -bool CCABManager::Run() -/* - * FUNCTION: Process cabinet - */ -{ - printf("ReactOS Cabinet Manager\n\n"); - - switch (Mode) - { - case CM_MODE_CREATE: - return CreateCabinet(); - - case CM_MODE_DISPLAY: - return DisplayCabinet(); - - case CM_MODE_EXTRACT: - return ExtractFromCabinet(); - - case CM_MODE_CREATE_SIMPLE: - return CreateSimpleCabinet(); - - default: - break; - } - return false; -} - - -/* Event handlers */ - -bool CCABManager::OnOverwrite(PCFFILE File, - char* FileName) -/* - * FUNCTION: Called when extracting a file and it already exists - * ARGUMENTS: - * File = Pointer to CFFILE for file being extracted - * Filename = Pointer to buffer with name of file (full path) - * RETURNS - * true if the file should be overwritten, false if not - */ -{ - if (Mode == CM_MODE_CREATE) - return true; - - /* Always overwrite */ - return true; -} - - -void CCABManager::OnExtract(PCFFILE File, - char* FileName) -/* - * FUNCTION: Called just before extracting a file - * ARGUMENTS: - * File = Pointer to CFFILE for file being extracted - * FileName = Pointer to buffer with name of file (full path) - */ -{ - printf("Extracting %s\n", GetFileName(FileName)); -} - - - -void CCABManager::OnDiskChange(char* CabinetName, - char* DiskLabel) -/* - * FUNCTION: Called when a new disk is to be processed - * ARGUMENTS: - * CabinetName = Pointer to buffer with name of cabinet - * DiskLabel = Pointer to buffer with label of disk - */ -{ - printf("\nChanging to cabinet %s - %s\n\n", CabinetName, DiskLabel); -} - - -void CCABManager::OnAdd(PCFFILE File, - char* FileName) -/* - * FUNCTION: Called just before adding a file to a cabinet - * ARGUMENTS: - * File = Pointer to CFFILE for file being added - * FileName = Pointer to buffer with name of file (full path) - */ -{ - printf("Adding %s\n", GetFileName(FileName)); -} - - -int main(int argc, char * argv[]) -/* - * FUNCTION: Main entry point - * ARGUMENTS: - * argc = Number of arguments on command line - * argv = Pointer to list of command line arguments - */ -{ - CCABManager CABMgr; - bool status = false; - - if (CABMgr.ParseCmdline(argc, argv)) - status = CABMgr.Run(); - - return (status ? 0 : 1); -} - -/* EOF */ diff --git a/reactos/tools/cabman/makefile.win32 b/reactos/tools/cabman/makefile.win32 deleted file mode 100644 index c7af1d70705..00000000000 --- a/reactos/tools/cabman/makefile.win32 +++ /dev/null @@ -1,27 +0,0 @@ -PATH_TO_TOP = ../.. - -TARGET_TYPE = program - -TARGET_APPTYPE = console - -TARGET_NAME = cabman -#TARGET_NAME = test - -TARGET_CPPAPP = yes - -TARGET_OBJECTS = cabinet.o mszip.o raw.o main.o dfp.o - -TARGET_SDKLIBS = zlib.a - -TARGET_CFLAGS = -I$(PATH_TO_TOP)/lib/zlib -Werror -Wall - -TARGET_CPPFLAGS = $(TARGET_CFLAGS) - -TARGET_GCCLIBS = stdc++ - -TARGET_NORC = yes - -include $(PATH_TO_TOP)/rules.mak - -include $(TOOLS_PATH)/helper.mk - diff --git a/reactos/tools/cabman/mszip.cxx b/reactos/tools/cabman/mszip.cxx deleted file mode 100644 index 45e87f1c06a..00000000000 --- a/reactos/tools/cabman/mszip.cxx +++ /dev/null @@ -1,182 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS cabinet manager - * FILE: tools/cabman/mszip.cpp - * PURPOSE: CAB codec for MSZIP compressed data - * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net) - * Colin Finck - * NOTES: The ZLIB does the real work. Get the full version - * from http://www.cdrom.com/pub/infozip/zlib/ - * REVISIONS: - * CSH 21/03-2001 Created - * CSH 15/08-2003 Made it portable - * CF 04/05-2007 Made it compatible with 64-bit operating systems - */ -#include -#include "mszip.h" - - -/* Memory functions */ - -voidpf MSZipAlloc(voidpf opaque, uInt items, uInt size) -{ - DPRINT(DEBUG_MEMORY, ("items = (%d) size = (%d)\n", items, size)); - return AllocateMemory(items * size); -} - -void MSZipFree (voidpf opaque, voidpf address) -{ - DPRINT(DEBUG_MEMORY, ("\n")); - FreeMemory(address); -} - - -/* CMSZipCodec */ - -CMSZipCodec::CMSZipCodec() -/* - * FUNCTION: Default constructor - */ -{ - ZStream.zalloc = MSZipAlloc; - ZStream.zfree = MSZipFree; - ZStream.opaque = (voidpf)0; -} - - -CMSZipCodec::~CMSZipCodec() -/* - * FUNCTION: Default destructor - */ -{ -} - - -ULONG CMSZipCodec::Compress(void* OutputBuffer, - void* InputBuffer, - ULONG InputLength, - PULONG OutputLength) -/* - * FUNCTION: Compresses data in a buffer - * ARGUMENTS: - * OutputBuffer = Pointer to buffer to place compressed data - * InputBuffer = Pointer to buffer with data to be compressed - * InputLength = Length of input buffer - * OutputLength = Address of buffer to place size of compressed data - */ -{ - PUSHORT Magic; - - DPRINT(MAX_TRACE, ("InputLength (%u).\n", (UINT)InputLength)); - - Magic = (PUSHORT)OutputBuffer; - *Magic = MSZIP_MAGIC; - - ZStream.next_in = (unsigned char*)InputBuffer; - ZStream.avail_in = InputLength; - ZStream.next_out = (unsigned char*)((unsigned long)OutputBuffer + 2); - ZStream.avail_out = CAB_BLOCKSIZE + 12; - - /* WindowBits is passed < 0 to tell that there is no zlib header */ - Status = deflateInit2(&ZStream, - Z_BEST_COMPRESSION, - Z_DEFLATED, - -MAX_WBITS, - 8, /* memLevel */ - Z_DEFAULT_STRATEGY); - if (Status != Z_OK) - { - DPRINT(MIN_TRACE, ("deflateInit() returned (%d).\n", Status)); - return CS_NOMEMORY; - } - - Status = deflate(&ZStream, Z_FINISH); - if ((Status != Z_OK) && (Status != Z_STREAM_END)) - { - DPRINT(MIN_TRACE, ("deflate() returned (%d) (%s).\n", Status, ZStream.msg)); - if (Status == Z_MEM_ERROR) - return CS_NOMEMORY; - return CS_BADSTREAM; - } - - *OutputLength = ZStream.total_out + 2; - - Status = deflateEnd(&ZStream); - if (Status != Z_OK) - { - DPRINT(MIN_TRACE, ("deflateEnd() returned (%d).\n", Status)); - return CS_BADSTREAM; - } - - return CS_SUCCESS; -} - - -ULONG CMSZipCodec::Uncompress(void* OutputBuffer, - void* InputBuffer, - ULONG InputLength, - PULONG OutputLength) -/* - * FUNCTION: Uncompresses data in a buffer - * ARGUMENTS: - * OutputBuffer = Pointer to buffer to place uncompressed data - * InputBuffer = Pointer to buffer with data to be uncompressed - * InputLength = Length of input buffer - * OutputLength = Address of buffer to place size of uncompressed data - */ -{ - USHORT Magic; - - DPRINT(MAX_TRACE, ("InputLength (%u).\n", (UINT)InputLength)); - - Magic = *((PUSHORT)InputBuffer); - - if (Magic != MSZIP_MAGIC) - { - DPRINT(MID_TRACE, ("Bad MSZIP block header magic (0x%X)\n", Magic)); - return CS_BADSTREAM; - } - - ZStream.next_in = (unsigned char*)((unsigned long)InputBuffer + 2); - ZStream.avail_in = InputLength - 2; - ZStream.next_out = (unsigned char*)OutputBuffer; - ZStream.avail_out = CAB_BLOCKSIZE + 12; - - /* WindowBits is passed < 0 to tell that there is no zlib header. - * Note that in this case inflate *requires* an extra "dummy" byte - * after the compressed stream in order to complete decompression and - * return Z_STREAM_END. - */ - Status = inflateInit2(&ZStream, -MAX_WBITS); - if (Status != Z_OK) - { - DPRINT(MIN_TRACE, ("inflateInit2() returned (%d).\n", Status)); - return CS_BADSTREAM; - } - - while ((ZStream.total_out < CAB_BLOCKSIZE + 12) && - (ZStream.total_in < InputLength - 2)) - { - Status = inflate(&ZStream, Z_NO_FLUSH); - if (Status == Z_STREAM_END) break; - if (Status != Z_OK) - { - DPRINT(MIN_TRACE, ("inflate() returned (%d) (%s).\n", Status, ZStream.msg)); - if (Status == Z_MEM_ERROR) - return CS_NOMEMORY; - return CS_BADSTREAM; - } - } - - *OutputLength = ZStream.total_out; - - Status = inflateEnd(&ZStream); - if (Status != Z_OK) - { - DPRINT(MIN_TRACE, ("inflateEnd() returned (%d).\n", Status)); - return CS_BADSTREAM; - } - return CS_SUCCESS; -} - -/* EOF */ diff --git a/reactos/tools/cabman/mszip.h b/reactos/tools/cabman/mszip.h deleted file mode 100644 index da5c59f0a8e..00000000000 --- a/reactos/tools/cabman/mszip.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS cabinet manager - * FILE: tools/cabman/mszip.h - * PURPOSE: CAB codec for MSZIP compressed data - */ - -#pragma once - -#include "cabinet.h" -#include - -#define MSZIP_MAGIC 0x4B43 - - -/* Classes */ - -class CMSZipCodec : public CCABCodec { -public: - /* Default constructor */ - CMSZipCodec(); - /* Default destructor */ - virtual ~CMSZipCodec(); - /* Compresses a data block */ - virtual ULONG Compress(void* OutputBuffer, - void* InputBuffer, - ULONG InputLength, - PULONG OutputLength); - /* Uncompresses a data block */ - virtual ULONG Uncompress(void* OutputBuffer, - void* InputBuffer, - ULONG InputLength, - PULONG OutputLength); -private: - int Status; - z_stream ZStream; /* Zlib stream */ -}; - -/* EOF */ diff --git a/reactos/tools/cabman/raw.cxx b/reactos/tools/cabman/raw.cxx deleted file mode 100644 index bf4b0fe9871..00000000000 --- a/reactos/tools/cabman/raw.cxx +++ /dev/null @@ -1,70 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS cabinet manager - * FILE: tools/cabman/raw.cpp - * PURPOSE: CAB codec for uncompressed "raw" data - * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net) - * Colin Finck - * REVISIONS: - * CSH 21/03-2001 Created - * CSH 15/08-2003 Made it portable - * CF 04/05-2007 Made it compatible with 64-bit operating systems - */ -#include "raw.h" - - -/* CRawCodec */ - -CRawCodec::CRawCodec() -/* - * FUNCTION: Default constructor - */ -{ -} - - -CRawCodec::~CRawCodec() -/* - * FUNCTION: Default destructor - */ -{ -} - - -ULONG CRawCodec::Compress(void* OutputBuffer, - void* InputBuffer, - ULONG InputLength, - PULONG OutputLength) -/* - * FUNCTION: Compresses data in a buffer - * ARGUMENTS: - * OutputBuffer = Pointer to buffer to place compressed data - * InputBuffer = Pointer to buffer with data to be compressed - * InputLength = Length of input buffer - * OutputLength = Address of buffer to place size of compressed data - */ -{ - memcpy(OutputBuffer, InputBuffer, InputLength); - *OutputLength = InputLength; - return CS_SUCCESS; -} - -ULONG CRawCodec::Uncompress(void* OutputBuffer, - void* InputBuffer, - ULONG InputLength, - PULONG OutputLength) -/* - * FUNCTION: Uncompresses data in a buffer - * ARGUMENTS: - * OutputBuffer = Pointer to buffer to place uncompressed data - * InputBuffer = Pointer to buffer with data to be uncompressed - * InputLength = Length of input buffer - * OutputLength = Address of buffer to place size of uncompressed data - */ -{ - memcpy(OutputBuffer, InputBuffer, InputLength); - *OutputLength = InputLength; - return CS_SUCCESS; -} - -/* EOF */ diff --git a/reactos/tools/cabman/raw.h b/reactos/tools/cabman/raw.h deleted file mode 100644 index 0b79efb7cd9..00000000000 --- a/reactos/tools/cabman/raw.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS cabinet manager - * FILE: tools/cabman/raw.h - * PURPOSE: CAB codec for uncompressed data - */ - -#pragma once - -#include "cabinet.h" - - -/* Classes */ - -class CRawCodec : public CCABCodec { -public: - /* Default constructor */ - CRawCodec(); - /* Default destructor */ - virtual ~CRawCodec(); - /* Compresses a data block */ - virtual ULONG Compress(void* OutputBuffer, - void* InputBuffer, - ULONG InputLength, - PULONG OutputLength); - /* Uncompresses a data block */ - virtual ULONG Uncompress(void* OutputBuffer, - void* InputBuffer, - ULONG InputLength, - PULONG OutputLength); -}; - -/* EOF */ diff --git a/reactos/tools/cdmake/CMakeLists.txt b/reactos/tools/cdmake/CMakeLists.txt deleted file mode 100644 index bb3669b5d64..00000000000 --- a/reactos/tools/cdmake/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ - -add_executable(cdmake cdmake.c llmosrt.c) diff --git a/reactos/tools/cdmake/cdmake.c b/reactos/tools/cdmake/cdmake.c deleted file mode 100644 index 2ce935d79d5..00000000000 --- a/reactos/tools/cdmake/cdmake.c +++ /dev/null @@ -1,1687 +0,0 @@ -/* - * CD-ROM Maker - * by Philip J. Erdelsky - * pje@acm.org - * http://www.alumni.caltech.edu/~pje/ - * - * ElTorito-Support - * by Eric Kohl - * - * Linux port - * by Casper S. Hornstrup - * chorns@users.sourceforge.net - * - * Joliet support - * by Filip Navara - * xnavara@volny.cz - * Limitations: - * - No Joliet file name validations - * - Very bad ISO file name generation - * - * - * convert long filename to iso9660 file name by Magnus Olsen - * magnus@greatlord.com - * - * $Id$ - */ - -/* According to his website, this file was released into the public domain by Phillip J. Erdelsky */ - -#include -#include -#include -#include -#include -#include -#ifdef _WIN32 -# include -# include -#else -# if defined(__FreeBSD__) || defined(__APPLE__) -# include -# else -# include -# endif // __FreeBSD__ -# include -# include -# include -# include -#endif // _WIN32 -#include -#include -#include -#ifndef _WIN32 -#ifndef MAX_PATH -#define MAX_PATH 260 -#endif -#define DIR_SEPARATOR_CHAR '/' -#define DIR_SEPARATOR_STRING "/" -#else -#define DIR_SEPARATOR_CHAR '\\' -#define DIR_SEPARATOR_STRING "\\" -#endif - -typedef unsigned char BYTE; -typedef unsigned short WORD; -typedef unsigned long DWORD; -typedef int BOOL; - -const BOOL TRUE = 1; -const BOOL FALSE = 0; - -// file system parameters - -#define MAX_LEVEL 8 -#define MAX_NAME_LENGTH 64 -#define MAX_CDNAME_LENGTH 8 -#define MAX_EXTENSION_LENGTH 10 -#define MAX_CDEXTENSION_LENGTH 3 -#define SECTOR_SIZE 2048 -#define BUFFER_SIZE (8 * SECTOR_SIZE) - -const BYTE HIDDEN_FLAG = 1; -const BYTE DIRECTORY_FLAG = 2; - - -struct cd_image -{ - FILE *file; - DWORD sector; // sector to receive next byte - int offset; // offset of next byte in sector - int count; // number of bytes in buffer - char filespecs[128]; - BYTE *buffer; -}; - -typedef struct date_and_time -{ - BYTE second; - BYTE minute; - BYTE hour; - BYTE day; - BYTE month; - WORD year; -} DATE_AND_TIME, *PDATE_AND_TIME; - -typedef struct directory_record -{ - struct directory_record *next_in_directory; - struct directory_record *next_in_path_table; /* directory record only */ - struct directory_record *next_in_memory; - struct directory_record *first_record; /* directory record only */ - struct directory_record *parent; - BYTE flags; - char name[MAX_NAME_LENGTH+1]; - char name_on_cd[MAX_CDNAME_LENGTH+1]; - char extension[MAX_EXTENSION_LENGTH+1]; - char extension_on_cd[MAX_CDEXTENSION_LENGTH+1]; - char *joliet_name; - DATE_AND_TIME date_and_time; - DWORD sector; - DWORD size; - DWORD joliet_sector; - DWORD joliet_size; - unsigned level; /* directory record only */ - WORD path_table_index; /* directory record only */ -} DIR_RECORD, *PDIR_RECORD; - - -typedef enum directory_record_type -{ - DOT_RECORD, - DOT_DOT_RECORD, - SUBDIRECTORY_RECORD, - FILE_RECORD -} DIR_RECORD_TYPE, *PDIR_RECORD_TYPE; - - -PDIR_RECORD sort_linked_list(PDIR_RECORD, - unsigned, int (*)(PDIR_RECORD, PDIR_RECORD)); - - -static char DIRECTORY_TIMESTAMP[] = "~Y$'KOR$.3K&"; - -static jmp_buf error; -static struct cd_image cd; - -char volume_label[32]; -DIR_RECORD root; -char source[512]; -char *end_source; -enum {QUIET, NORMAL, VERBOSE} verbosity; -BOOL show_progress; -DWORD size_limit; -BOOL accept_punctuation_marks; - -DWORD total_sectors; -DWORD path_table_size; -DWORD little_endian_path_table_sector; -DWORD big_endian_path_table_sector; -DWORD number_of_files; -DWORD bytes_in_files; -DWORD unused_bytes_at_ends_of_files; -DWORD number_of_directories; -DWORD bytes_in_directories; - -char bootimage[512]; -BOOL eltorito; -DWORD boot_catalog_sector; -DWORD boot_image_sector; -WORD boot_image_size; // counted in 512 byte sectors - -BOOL joliet; -DWORD joliet_path_table_size; -DWORD joliet_little_endian_path_table_sector; -DWORD joliet_big_endian_path_table_sector; - -/*----------------------------------------------------------------------------- -This function edits a 32-bit unsigned number into a comma-delimited form, such -as 4,294,967,295 for the largest possible number, and returns a pointer to a -static buffer containing the result. It suppresses leading zeros and commas, -but optionally pads the result with blanks at the left so the result is always -exactly 13 characters long (excluding the terminating zero). - -CAUTION: A statement containing more than one call on this function, such as -printf("%s, %s", edit_with_commas(a), edit_with_commas(b)), will produce -incorrect results because all calls use the same static bufffer. ------------------------------------------------------------------------------*/ - -static char *edit_with_commas(DWORD x, BOOL pad) -{ - static char s[14]; - unsigned i = 13; - do - { - if (i % 4 == 2) s[--i] = ','; - s[--i] = (char)(x % 10 + '0'); - } while ((x/=10) != 0); - if (pad) - { - while (i > 0) s[--i] = ' '; - } - return s + i; -} - -/*----------------------------------------------------------------------------- -This function releases all allocated memory blocks. ------------------------------------------------------------------------------*/ - -static void release_memory(void) -{ - while (root.next_in_memory != NULL) - { - struct directory_record *next = - root.next_in_memory->next_in_memory; - if (joliet) - free (root.joliet_name); - free (root.next_in_memory); - root.next_in_memory = next; - } - if (cd.buffer != NULL) - { - free (cd.buffer); - cd.buffer = NULL; - } -} - -/*----------------------------------------------------------------------------- -This function edits and displays an error message and then jumps back to the -error exit point in main(). ------------------------------------------------------------------------------*/ - -void error_exit ( const char* fmt, ... ) -{ - va_list arg; - - va_start(arg, fmt); - vprintf(fmt, arg); - va_end(arg); - printf("\n"); - if (cd.file != NULL) - fclose(cd.file); - release_memory(); - exit(1); -} - -/*----------------------------------------------------------------------------- -This function, which is called only on the second pass, and only when the -buffer is not empty, flushes the buffer to the CD-ROM image. ------------------------------------------------------------------------------*/ - -static void flush_buffer(void) -{ - if (fwrite(cd.buffer, cd.count, 1, cd.file) < 1) - error_exit("File write error"); - cd.count = 0; - if (show_progress) - { - printf("\r%s ", - edit_with_commas((total_sectors - cd.sector) * SECTOR_SIZE, TRUE)); - } -} - -/*----------------------------------------------------------------------------- -This function writes a single byte to the CD-ROM image. On the first pass (in -which cd.handle < 0), it does not actually write anything but merely updates -the file pointer as though the byte had been written. ------------------------------------------------------------------------------*/ - -static void write_byte(BYTE x) -{ - if (cd.file != NULL) - { - cd.buffer[cd.count] = x; - if (++cd.count == BUFFER_SIZE) - flush_buffer(); - } - if (++cd.offset == SECTOR_SIZE) - { - cd.sector++; - cd.offset = 0; - } -} - -/*----------------------------------------------------------------------------- -These functions write a word or double word to the CD-ROM image with the -specified endianity. ------------------------------------------------------------------------------*/ - -static void write_little_endian_word(WORD x) -{ - write_byte((BYTE)x); - write_byte((BYTE)(x >> 8)); -} - -static void write_big_endian_word(WORD x) -{ - write_byte((BYTE)(x >> 8)); - write_byte((BYTE)x); -} - -static void write_both_endian_word(WORD x) -{ - write_little_endian_word(x); - write_big_endian_word(x); -} - -static void write_little_endian_dword(DWORD x) -{ - write_byte((BYTE)x); - write_byte((BYTE)(x >> 8)); - write_byte((BYTE)(x >> 16)); - write_byte((BYTE)(x >> 24)); -} - -static void write_big_endian_dword(DWORD x) -{ - write_byte((BYTE)(x >> 24)); - write_byte((BYTE)(x >> 16)); - write_byte((BYTE)(x >> 8)); - write_byte((BYTE)x); -} - -static void write_both_endian_dword(DWORD x) -{ - write_little_endian_dword(x); - write_big_endian_dword(x); -} - -/*----------------------------------------------------------------------------- -This function writes enough zeros to fill out the end of a sector, and leaves -the file pointer at the beginning of the next sector. If the file pointer is -already at the beginning of a sector, it writes nothing. ------------------------------------------------------------------------------*/ - -static void fill_sector(void) -{ - while (cd.offset != 0) - write_byte(0); -} - -/*----------------------------------------------------------------------------- -This function writes a string to the CD-ROM image. The terminating \0 is not -written. ------------------------------------------------------------------------------*/ - -static void write_string(char *s) -{ - while (*s != 0) - write_byte(*s++); -} - -/*----------------------------------------------------------------------------- -This function writes a ansi string as a big endian unicode string to the CD-ROM -image. The terminating \0 is not written. ------------------------------------------------------------------------------*/ - -static void write_string_as_big_endian_unicode(char *s) -{ - while (*s != 0) - { - write_byte(0); - write_byte(*s++); - } -} - -/*----------------------------------------------------------------------------- -This function writes a block of identical bytes to the CD-ROM image. ------------------------------------------------------------------------------*/ - -static void write_block(unsigned count, BYTE value) -{ - while (count != 0) - { - write_byte(value); - count--; - } -} - -/*----------------------------------------------------------------------------- -This function writes a block of identical bige endian words to the CD-ROM image. ------------------------------------------------------------------------------*/ - -static void write_word_block(unsigned count, WORD value) -{ - while (count != 0) - { - write_big_endian_word(value); - count--; - } -} - -/*----------------------------------------------------------------------------- -This function writes a directory record to the CD_ROM image. ------------------------------------------------------------------------------*/ - -static void -write_directory_record(PDIR_RECORD d, - DIR_RECORD_TYPE DirType, - BOOL joliet) -{ - unsigned identifier_size; - unsigned record_size; - - if (joliet) - { - if (DirType == DOT_RECORD || DirType == DOT_DOT_RECORD) - identifier_size = 1; - else - identifier_size = strlen(d->joliet_name) * 2; - } - else - { - switch (DirType) - { - case DOT_RECORD: - case DOT_DOT_RECORD: - identifier_size = 1; - break; - case SUBDIRECTORY_RECORD: - /*printf ( "Subdir: %s\n", d->name_on_cd );*/ - identifier_size = strlen(d->name_on_cd); - break; - case FILE_RECORD: - /*printf ( "File: %s.%s -> %s.%s\n", d->name, d->extension, d->name_on_cd, d->extension_on_cd );*/ - identifier_size = strlen(d->name_on_cd) + 2; - if (d->extension_on_cd[0] != 0) - identifier_size += 1 + strlen(d->extension_on_cd); - break; - default: - identifier_size = 1; - break; - } - } - record_size = 33 + identifier_size; - if ((identifier_size & 1) == 0) - record_size++; - if (cd.offset + record_size > SECTOR_SIZE) - fill_sector(); - write_byte((BYTE)record_size); - write_byte(0); // number of sectors in extended attribute record - if (joliet) - { - write_both_endian_dword(d->joliet_sector); - write_both_endian_dword(d->joliet_size); - } - else - { - write_both_endian_dword(d->sector); - write_both_endian_dword(d->size); - } - write_byte((BYTE)(d->date_and_time.year - 1900)); - write_byte(d->date_and_time.month); - write_byte(d->date_and_time.day); - write_byte(d->date_and_time.hour); - write_byte(d->date_and_time.minute); - write_byte(d->date_and_time.second); - write_byte(0); // GMT offset - write_byte(d->flags); - write_byte(0); // file unit size for an interleaved file - write_byte(0); // interleave gap size for an interleaved file - write_both_endian_word((WORD) 1); // volume sequence number - write_byte((BYTE)identifier_size); - switch (DirType) - { - case DOT_RECORD: - write_byte(0); - break; - case DOT_DOT_RECORD: - write_byte(1); - break; - case SUBDIRECTORY_RECORD: - if (joliet) - write_string_as_big_endian_unicode(d->joliet_name); - else - write_string(d->name_on_cd); - break; - case FILE_RECORD: - if (joliet) - { - write_string_as_big_endian_unicode(d->joliet_name); - } - else - { - write_string(d->name_on_cd); - if (d->extension_on_cd[0] != 0) - { - write_byte('.'); - write_string(d->extension_on_cd); - } - write_string(";1"); - } - break; - } - if ((identifier_size & 1) == 0) - write_byte(0); -} - -/*----------------------------------------------------------------------------- -This function converts the date and time words from an ffblk structure and -puts them into a date_and_time structure. ------------------------------------------------------------------------------*/ - -static void convert_date_and_time(PDATE_AND_TIME dt, time_t *time) -{ - struct tm *timedef; - - timedef = localtime(time); - - dt->second = timedef->tm_sec; - dt->minute = timedef->tm_min; - dt->hour = timedef->tm_hour; - dt->day = timedef->tm_mday; - dt->month = timedef->tm_mon + 1; - dt->year = timedef->tm_year + 1900; -} - -/*----------------------------------------------------------------------------- -This function checks the specified character, if necessary, and -generates an error if it is a punctuation mark other than an underscore. -It also converts small letters to capital letters and returns the -result. ------------------------------------------------------------------------------*/ - -static int check_for_punctuation(int c, const char *name) -{ - c = toupper(c & 0xFF); - if (!accept_punctuation_marks && !isalnum(c) && c != '_') - error_exit("Punctuation mark in %s", name); - return c; -} - -#if _WIN32 -#define strcasecmp stricmp -#endif//_WIN32 - -/*----------------------------------------------------------------------------- -This function checks to see if there's a cdname conflict. ------------------------------------------------------------------------------*/ - -int cdname_exists ( PDIR_RECORD d ) -{ - PDIR_RECORD p = d->parent->first_record; - while ( p ) - { - if ( p != d - && !strcasecmp ( p->name_on_cd, d->name_on_cd ) - && !strcasecmp ( p->extension_on_cd, d->extension_on_cd ) ) - return 1; - p = p->next_in_directory; - } - return 0; -} - -void parse_filename_into_dirrecord ( const char* filename, PDIR_RECORD d, BOOL dir ) -{ - const char *s = filename; - char *t = d->name_on_cd; - char *n = d->name; - int joliet_length; - int filename_counter; - filename_counter = 1; - while (*s != 0) - { - if (*s == '.') - { - s++; - break; - } - - if ( (size_t)(t-d->name_on_cd) < sizeof(d->name_on_cd)-1 ) - *t++ = check_for_punctuation(*s, filename); - else if (!joliet) - error_exit ("'%s' is not ISO-9660, aborting...", filename ); - if ( (size_t)(n-d->name) < sizeof(d->name)-1 ) - *n++ = *s; - else if (!joliet) - error_exit ( "'%s' is not ISO-9660, aborting...", filename ); - s++; - } - if (strlen(s) > MAX_EXTENSION_LENGTH) - { - error_exit ( "'%s' has too long extension for cdmake, aborting...", filename ); - } - *t = 0; - strcpy(d->extension, s); - t = d->extension_on_cd; - while ( *s != 0 ) - { - if ( (size_t)(t-d->extension_on_cd) < sizeof(d->extension_on_cd)-1 ) - *t++ = check_for_punctuation(*s, filename); - else if (!joliet) - error_exit ( "'%s' is not ISO-9660, aborting...", filename ); - s++; - } - *t = 0; - *n = 0; - - if ( dir ) - { - if (d->extension[0] != 0) - { - if (!joliet) - error_exit("Directory with extension %s", filename); - } - d->flags = DIRECTORY_FLAG; - } else - d->flags = 0; - - - filename_counter = 1; - while ( cdname_exists ( d ) ) - { - - // the file name must be least 8 char long - if (strlen(d->name_on_cd)<8) - error_exit ( "'%s' is a duplicate file name, aborting...", filename ); - - if ((d->name_on_cd[8] == '.') && (strlen(d->name_on_cd) < 13)) - error_exit ( "'%s' is a duplicate file name, aborting...", filename ); - - // max 255 times for equal short filename - if (filename_counter>255) error_exit ( "'%s' is a duplicate file name, aborting...", filename ); - d->name_on_cd[8] = '~'; - memset(&d->name_on_cd[9],0,5); - sprintf(&d->name_on_cd[9],"%d",filename_counter); - filename_counter++; - - } - - if ( joliet ) - { - joliet_length = strlen(filename); - if (joliet_length > 64) - error_exit ( "'%s' is not Joliet, aborting...", filename ); - d->joliet_name = malloc(joliet_length + 1); - if (d->joliet_name == NULL) - error_exit("Insufficient memory"); - strcpy(d->joliet_name, filename); - } -} - -/*----------------------------------------------------------------------------- -This function creates a new directory record with the information from the -specified ffblk. It links it into the beginning of the directory list -for the specified parent and returns a pointer to the new record. ------------------------------------------------------------------------------*/ - -#if _WIN32 - -/* Win32 version */ -PDIR_RECORD -new_directory_record (struct _finddata_t *f, - PDIR_RECORD parent) -{ - PDIR_RECORD d; - - d = malloc(sizeof(DIR_RECORD)); - if (d == NULL) - error_exit("Insufficient memory"); - memset ( d, 0, sizeof(DIR_RECORD) ); - d->next_in_memory = root.next_in_memory; - root.next_in_memory = d; - - /* I need the parent set before calling parse_filename_into_dirrecord(), - because that functions checks for duplicate file names*/ - d->parent = parent; - parse_filename_into_dirrecord ( f->name, d, f->attrib & _A_SUBDIR ); - - convert_date_and_time(&d->date_and_time, &f->time_write); - d->flags |= f->attrib & _A_HIDDEN ? HIDDEN_FLAG : 0; - d->size = d->joliet_size = f->size; - d->next_in_directory = parent->first_record; - parent->first_record = d; - return d; -} - -#else - -/* Linux version */ -PDIR_RECORD -new_directory_record (struct dirent *entry, - struct stat *stbuf, - PDIR_RECORD parent) -{ - PDIR_RECORD d; - /* - char *s; - char *t; - char *n; - */ - - d = malloc(sizeof(DIR_RECORD)); - if (d == NULL) - error_exit("Insufficient memory"); - memset ( d, 0, sizeof(DIR_RECORD) ); - d->next_in_memory = root.next_in_memory; - root.next_in_memory = d; - - /* I need the parent set before calling parse_filename_into_dirrecord(), - because that functions checks for duplicate file names*/ - d->parent = parent; -#ifdef HAVE_D_TYPE - parse_filename_into_dirrecord ( entry->d_name, d, entry->d_type == DT_DIR ); -#else - parse_filename_into_dirrecord ( entry->d_name, d, S_ISDIR(stbuf->st_mode) ); -#endif - - convert_date_and_time(&d->date_and_time, &stbuf->st_mtime); - d->flags |= entry->d_name[0] == '.' ? HIDDEN_FLAG : 0; - d->size = d->joliet_size = stbuf->st_size; - d->next_in_directory = parent->first_record; - parent->first_record = d; - return d; -} - -#endif - -/*----------------------------------------------------------------------------- -This function compares two directory records according to the ISO9660 rules -for directory sorting and returns a negative value if p is before q, or a -positive value if p is after q. ------------------------------------------------------------------------------*/ - -static int compare_directory_order(PDIR_RECORD p, PDIR_RECORD q) -{ - int n = strcmp(p->name_on_cd, q->name_on_cd); - if (n == 0) - n = strcmp(p->extension_on_cd, q->extension_on_cd); - return n; -} - -/*----------------------------------------------------------------------------- -This function compares two directory records (which must represent -directories) according to the ISO9660 rules for path table sorting and returns -a negative value if p is before q, or a positive vlaue if p is after q. ------------------------------------------------------------------------------*/ - -static int compare_path_table_order(PDIR_RECORD p, PDIR_RECORD q) -{ - int n = p->level - q->level; - if (p == q) - return 0; - if (n == 0) - { - n = compare_path_table_order(p->parent, q->parent); - if (n == 0) - n = compare_directory_order(p, q); - } - return n; -} - -/*----------------------------------------------------------------------------- -This function appends the specified string to the buffer source[]. ------------------------------------------------------------------------------*/ - -static void append_string_to_source(char *s) -{ - while (*s != 0) - *end_source++ = *s++; -} - -/*----------------------------------------------------------------------------- -This function scans all files from the current source[] (which must end in \, -and represents a directory already in the database as d), -and puts the appropriate directory records into the database in memory, with -the specified root. It calls itself recursively to scan all subdirectories. ------------------------------------------------------------------------------*/ - -#ifdef _WIN32 - -static void -make_directory_records (PDIR_RECORD d) -{ - PDIR_RECORD new_d; - struct _finddata_t f; - char *old_end_source; - int findhandle; - - d->first_record = NULL; - strcpy(end_source, "*.*"); - - findhandle =_findfirst(source, &f); - if (findhandle != 0) - { - do - { - if ((f.attrib & (_A_HIDDEN | _A_SUBDIR)) == 0 && f.name[0] != '.') - { - if (strcmp(f.name, DIRECTORY_TIMESTAMP) == 0) - { - convert_date_and_time(&d->date_and_time, &f.time_write); - } - else - { - if (verbosity == VERBOSE) - { - old_end_source = end_source; - strcpy(end_source, f.name); - printf("%d: file %s\n", d->level, source); - end_source = old_end_source; - } - (void) new_directory_record(&f, d); - } - } - } - while (_findnext(findhandle, &f) == 0); - - _findclose(findhandle); - } - - strcpy(end_source, "*.*"); - findhandle= _findfirst(source, &f); - if (findhandle) - { - do - { - if (f.attrib & _A_SUBDIR && f.name[0] != '.') - { - old_end_source = end_source; - append_string_to_source(f.name); - *end_source++ = DIR_SEPARATOR_CHAR; - if (verbosity == VERBOSE) - { - *end_source = 0; - printf("%d: directory %s\n", d->level + 1, source); - } - if (d->level < MAX_LEVEL) - { - new_d = new_directory_record(&f, d); - new_d->next_in_path_table = root.next_in_path_table; - root.next_in_path_table = new_d; - new_d->level = d->level + 1; - make_directory_records(new_d); - } - else - { - error_exit("Directory is nested too deep"); - } - end_source = old_end_source; - } - } - while (_findnext(findhandle, &f) == 0); - - _findclose(findhandle); - } - - // sort directory - d->first_record = sort_linked_list(d->first_record, 0, compare_directory_order); -} - -#else - -/* Linux version */ -static void -make_directory_records (PDIR_RECORD d) -{ - PDIR_RECORD new_d; - DIR *dirp; - struct dirent *entry; - char *old_end_source; - struct stat stbuf; - char buf[MAX_PATH]; - - d->first_record = NULL; - -#ifdef HAVE_D_TYPE - dirp = opendir(source); - if (dirp != NULL) - { - while ((entry = readdir (dirp)) != NULL) - { - if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) - continue; // skip self and parent - - if (entry->d_type == DT_REG) // normal file - { - // Check for an absolute path - if (source[0] == DIR_SEPARATOR_CHAR) - { - strcpy(buf, source); - strcat(buf, DIR_SEPARATOR_STRING); - strcat(buf, entry->d_name); - } - else - { - if (!getcwd(buf, sizeof(buf))) - error_exit("Can't get CWD: %s\n", strerror(errno)); - strcat(buf, DIR_SEPARATOR_STRING); - strcat(buf, source); - strcat(buf, entry->d_name); - } - - if (stat(buf, &stbuf) == -1) - { - error_exit("Can't access '%s' (%s)\n", buf, strerror(errno)); - return; - } - - if (strcmp(entry->d_name, DIRECTORY_TIMESTAMP) == 0) - { - convert_date_and_time(&d->date_and_time, &stbuf.st_ctime); - } - else - { - if (verbosity == VERBOSE) - { - printf("%d: file %s\n", d->level, buf); - } - (void) new_directory_record(entry, &stbuf, d); - } - } - } - closedir(dirp); - } - else - { - error_exit("Can't open %s\n", source); - return; - } - - dirp = opendir(source); - if (dirp != NULL) - { - while ((entry = readdir (dirp)) != NULL) - { - if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) - continue; // skip self and parent - - if (entry->d_type == DT_DIR) // directory - { - old_end_source = end_source; - append_string_to_source(entry->d_name); - *end_source++ = DIR_SEPARATOR_CHAR; - *end_source = 0; - if (verbosity == VERBOSE) - { - printf("%d: directory %s\n", d->level + 1, source); - } - if (d->level < MAX_LEVEL) - { - // Check for an absolute path - if (source[0] == DIR_SEPARATOR_CHAR) - { - strcpy(buf, source); - } - else - { - if (!getcwd(buf, sizeof(buf))) - error_exit("Can't get CWD: %s\n", strerror(errno)); - strcat(buf, DIR_SEPARATOR_STRING); - strcat(buf, source); - } - - if (stat(buf, &stbuf) == -1) - { - error_exit("Can't access '%s' (%s)\n", buf, strerror(errno)); - return; - } - new_d = new_directory_record(entry, &stbuf, d); - new_d->next_in_path_table = root.next_in_path_table; - root.next_in_path_table = new_d; - new_d->level = d->level + 1; - make_directory_records(new_d); - } - else - { - error_exit("Directory is nested too deep"); - } - end_source = old_end_source; - *end_source = 0; - } - } - closedir(dirp); - } - else - { - error_exit("Can't open %s\n", source); - return; - } - -#else - - dirp = opendir(source); - if (dirp != NULL) - { - while ((entry = readdir (dirp)) != NULL) - { - if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) - continue; // skip self and parent - - // Check for an absolute path - if (source[0] == DIR_SEPARATOR_CHAR) - { - strcpy(buf, source); - strcat(buf, DIR_SEPARATOR_STRING); - strcat(buf, entry->d_name); - } - else - { - if (!getcwd(buf, sizeof(buf))) - error_exit("Can't get CWD: %s\n", strerror(errno)); - strcat(buf, DIR_SEPARATOR_STRING); - strcat(buf, source); - strcat(buf, entry->d_name); - } - - if (stat(buf, &stbuf) == -1) - { - error_exit("Can't access '%s' (%s)\n", buf, strerror(errno)); - return; - } - - if (S_ISDIR(stbuf.st_mode)) - { - old_end_source = end_source; - append_string_to_source(entry->d_name); - *end_source++ = DIR_SEPARATOR_CHAR; - *end_source = 0; - if (verbosity == VERBOSE) - { - printf("%d: directory %s\n", d->level + 1, source); - } - - if (d->level < MAX_LEVEL) - { - new_d = new_directory_record(entry, &stbuf, d); - new_d->next_in_path_table = root.next_in_path_table; - root.next_in_path_table = new_d; - new_d->level = d->level + 1; - make_directory_records(new_d); - } - else - { - error_exit("Directory is nested too deep"); - } - - end_source = old_end_source; - *end_source = 0; - } - else if (S_ISREG(stbuf.st_mode)) - { - if (strcmp(entry->d_name, DIRECTORY_TIMESTAMP) == 0) - { - convert_date_and_time(&d->date_and_time, &stbuf.st_ctime); - } - else - { - if (verbosity == VERBOSE) - { - printf("%d: file %s\n", d->level, buf); - } - (void) new_directory_record(entry, &stbuf, d); - } - } - } - closedir (dirp); - } - else - { - error_exit("Can't open %s\n", source); - return; - } - -#endif - - // sort directory - d->first_record = sort_linked_list(d->first_record, 0, compare_directory_order); -} - -#endif - -/*----------------------------------------------------------------------------- -This function loads the file specifications for the file or directory -corresponding to the specified directory record into the source[] buffer. It -is recursive. ------------------------------------------------------------------------------*/ - -static void get_file_specifications(PDIR_RECORD d) -{ - if (d != &root) - { - get_file_specifications(d->parent); - if (d->joliet_name == NULL) - append_string_to_source(d->name); - else - append_string_to_source(d->joliet_name); - - if (((d->flags & DIRECTORY_FLAG) == 0 || joliet) && d->extension[0] != 0) - { - if (d->joliet_name == NULL) - { - *end_source++ = '.'; - append_string_to_source(d->extension); - } - } - if (d->flags & DIRECTORY_FLAG) - *end_source++ = DIR_SEPARATOR_CHAR; - } -} - -static void pass(void) -{ - PDIR_RECORD d; - PDIR_RECORD q; - unsigned int i; - char *t; - unsigned int index; - unsigned int name_length; - DWORD size; - DWORD number_of_sectors; - char *old_end_source; - int n; - FILE *file; - - // first 16 sectors are zeros - - write_block(16 * SECTOR_SIZE, 0); - - // Primary Volume Descriptor - - write_string("\1CD001\1"); - write_byte(0); - write_block(32, ' '); // system identifier - - t = volume_label; - for (i = 0; i < 32; i++) - write_byte( (BYTE)( (*t != 0) ? toupper(*t++) : ' ' ) ); - - write_block(8, 0); - write_both_endian_dword(total_sectors); - write_block(32, 0); - write_both_endian_word((WORD) 1); // volume set size - write_both_endian_word((WORD) 1); // volume sequence number - write_both_endian_word((WORD) 2048); // sector size - write_both_endian_dword(path_table_size); - write_little_endian_dword(little_endian_path_table_sector); - write_little_endian_dword((DWORD) 0); // second little endian path table - write_big_endian_dword(big_endian_path_table_sector); - write_big_endian_dword((DWORD) 0); // second big endian path table - write_directory_record(&root, DOT_RECORD, FALSE); - write_block(128, ' '); // volume set identifier - write_block(128, ' '); // publisher identifier - write_block(128, ' '); // data preparer identifier - write_block(128, ' '); // application identifier - write_block(37, ' '); // copyright file identifier - write_block(37, ' '); // abstract file identifier - write_block(37, ' '); // bibliographic file identifier - write_string("0000000000000000"); // volume creation - write_byte(0); - write_string("0000000000000000"); // most recent modification - write_byte(0); - write_string("0000000000000000"); // volume expires - write_byte(0); - write_string("0000000000000000"); // volume is effective - write_byte(0); - write_byte(1); - write_byte(0); - fill_sector(); - - - // Boot Volume Descriptor - - if (eltorito == TRUE) - { - write_byte(0); - write_string("CD001\1"); - write_string("EL TORITO SPECIFICATION"); // identifier - write_block(9, 0); // padding - write_block(32, 0); // unused - write_little_endian_dword(boot_catalog_sector); // pointer to boot catalog - fill_sector(); - } - - // Supplementary Volume Descriptor - - if (joliet) - { - write_string("\2CD001\1"); - write_byte(0); - - write_word_block(16, L' '); // system identifier - - t = volume_label; - for (i = 0; i < 16; i++) - write_big_endian_word( (BYTE)( (*t != 0) ? *t++ : ' ' ) ); - - write_block(8, 0); - write_both_endian_dword(total_sectors); - write_string("%/E"); - write_block(29, 0); - write_both_endian_word((WORD) 1); // volume set size - write_both_endian_word((WORD) 1); // volume sequence number - write_both_endian_word((WORD) 2048); // sector size - write_both_endian_dword(joliet_path_table_size); - write_little_endian_dword(joliet_little_endian_path_table_sector); - write_little_endian_dword((DWORD) 0); // second little endian path table - write_big_endian_dword(joliet_big_endian_path_table_sector); - write_big_endian_dword((DWORD) 0); // second big endian path table - write_directory_record(&root, DOT_RECORD, TRUE); - write_word_block(64, ' '); // volume set identifier - write_word_block(64, ' '); // publisher identifier - write_word_block(64, ' '); // data preparer identifier - write_word_block(64, ' '); // application identifier - write_block(37, ' '); // copyright file identifier - write_block(37, ' '); // abstract file identifier - write_block(37, ' '); // bibliographic file identifier - write_string("0000000000000000"); // volume creation - write_byte(0); - write_string("0000000000000000"); // most recent modification - write_byte(0); - write_string("0000000000000000"); // volume expires - write_byte(0); - write_string("0000000000000000"); // volume is effective - write_byte(0); - write_byte(1); - write_byte(0); - fill_sector(); - } - - - // Volume Descriptor Set Terminator - write_string("\377CD001\1"); - fill_sector(); - - // Boot Catalog - if (eltorito == TRUE) - { - boot_catalog_sector = cd.sector; - - // Validation entry - write_byte(1); - write_byte(0); // x86 boot code - write_little_endian_word(0); // reserved - write_string("ReactOS Foundation"); - write_block(6, 0); // padding - write_little_endian_word(0x62E); // checksum - write_little_endian_word(0xAA55); // signature - - // default entry - write_byte(0x88); // bootable - write_byte(0); // no emulation - write_big_endian_word(0); // load segment = default (0x07c0) - write_byte(0); // partition type - write_byte(0); // unused - write_little_endian_word(boot_image_size); // sector count - write_little_endian_dword(boot_image_sector); // sector - - fill_sector(); - } - - // Boot Image - if (eltorito == TRUE) - { - boot_image_sector = cd.sector; - - file = fopen(bootimage, "rb"); - if (file == NULL) - error_exit("Can't open %s\n", bootimage); - fseek(file, 0, SEEK_END); - size = ftell(file); - fseek(file, 0, SEEK_SET); - if (size == 0 || (size % 2048)) - { - fclose(file); - error_exit("Invalid boot image size (%lu bytes)\n", size); - } - boot_image_size = size / 512; - while (size > 0) - { - n = BUFFER_SIZE - cd.count; - if ((DWORD) n > size) - n = size; - if (fread (cd.buffer + cd.count, n, 1, file) < 1) - { - fclose(file); - error_exit("Read error in file %s\n", bootimage); - } - cd.count += n; - if (cd.count == BUFFER_SIZE) - flush_buffer(); - cd.sector += n / SECTOR_SIZE; - cd.offset += n % SECTOR_SIZE; - size -= n; - } - fclose(file); -// fill_sector(); - } - - // Little Endian Path Table - little_endian_path_table_sector = cd.sector; - write_byte(1); - write_byte(0); // number of sectors in extended attribute record - write_little_endian_dword(root.sector); - write_little_endian_word((WORD) 1); - write_byte(0); - write_byte(0); - - index = 1; - root.path_table_index = 1; - for (d = root.next_in_path_table; d != NULL; d = d->next_in_path_table) - { - name_length = strlen(d->name_on_cd); - write_byte((BYTE)name_length); - write_byte(0); // number of sectors in extended attribute record - write_little_endian_dword(d->sector); - write_little_endian_word(d->parent->path_table_index); - write_string(d->name_on_cd); - if (name_length & 1) - write_byte(0); - d->path_table_index = ++index; - } - - path_table_size = (cd.sector - little_endian_path_table_sector) * - SECTOR_SIZE + cd.offset; - fill_sector(); - - // Big Endian Path Table - - big_endian_path_table_sector = cd.sector; - write_byte(1); - write_byte(0); // number of sectors in extended attribute record - write_big_endian_dword(root.sector); - write_big_endian_word((WORD) 1); - write_byte(0); - write_byte(0); - - for (d = root.next_in_path_table; d != NULL; d = d->next_in_path_table) - { - name_length = strlen(d->name_on_cd); - write_byte((BYTE)name_length); - write_byte(0); // number of sectors in extended attribute record - write_big_endian_dword(d->sector); - write_big_endian_word(d->parent->path_table_index); - write_string(d->name_on_cd); - if (name_length & 1) - write_byte(0); - } - fill_sector(); - - if (joliet) - { - // Little Endian Path Table - - joliet_little_endian_path_table_sector = cd.sector; - write_byte(1); - write_byte(0); // number of sectors in extended attribute record - write_little_endian_dword(root.joliet_sector); - write_little_endian_word((WORD) 1); - write_byte(0); - write_byte(0); - - for (d = root.next_in_path_table; d != NULL; d = d->next_in_path_table) - { - name_length = strlen(d->joliet_name) * 2; - write_byte((BYTE)name_length); - write_byte(0); // number of sectors in extended attribute record - write_little_endian_dword(d->joliet_sector); - write_little_endian_word(d->parent->path_table_index); - write_string_as_big_endian_unicode(d->joliet_name); - } - - joliet_path_table_size = (cd.sector - joliet_little_endian_path_table_sector) * - SECTOR_SIZE + cd.offset; - fill_sector(); - - // Big Endian Path Table - - joliet_big_endian_path_table_sector = cd.sector; - write_byte(1); - write_byte(0); // number of sectors in extended attribute record - write_big_endian_dword(root.joliet_sector); - write_big_endian_word((WORD) 1); - write_byte(0); - write_byte(0); - - for (d = root.next_in_path_table; d != NULL; d = d->next_in_path_table) - { - name_length = strlen(d->joliet_name) * 2; - write_byte((BYTE)name_length); - write_byte(0); // number of sectors in extended attribute record - write_big_endian_dword(d->joliet_sector); - write_big_endian_word(d->parent->path_table_index); - write_string_as_big_endian_unicode(d->joliet_name); - } - fill_sector(); - } - - // directories and files - for (d = &root; d != NULL; d = d->next_in_path_table) - { - // write directory - d->sector = cd.sector; - write_directory_record(d, DOT_RECORD, FALSE); - write_directory_record(d == &root ? d : d->parent, DOT_DOT_RECORD, FALSE); - for (q = d->first_record; q != NULL; q = q->next_in_directory) - { - write_directory_record(q, - q->flags & DIRECTORY_FLAG ? SUBDIRECTORY_RECORD : FILE_RECORD, - FALSE); - } - fill_sector(); - d->size = (cd.sector - d->sector) * SECTOR_SIZE; - - // write directory for joliet - if (joliet) - { - d->joliet_sector = cd.sector; - write_directory_record(d, DOT_RECORD, TRUE); - write_directory_record(d == &root ? d : d->parent, DOT_DOT_RECORD, TRUE); - for (q = d->first_record; q != NULL; q = q->next_in_directory) - { - write_directory_record(q, - q->flags & DIRECTORY_FLAG ? SUBDIRECTORY_RECORD : FILE_RECORD, - TRUE); - } - fill_sector(); - d->joliet_size = (cd.sector - d->joliet_sector) * SECTOR_SIZE; - bytes_in_directories += d->joliet_size; - } - - number_of_directories++; - bytes_in_directories += d->size; - - // write file data - for (q = d->first_record; q != NULL; q = q->next_in_directory) - { - if ((q->flags & DIRECTORY_FLAG) == 0) - { - q->sector = q->joliet_sector = cd.sector; - size = q->size; - if (cd.file == NULL) - { - number_of_sectors = (size + SECTOR_SIZE - 1) / SECTOR_SIZE; - cd.sector += number_of_sectors; - number_of_files++; - bytes_in_files += size; - unused_bytes_at_ends_of_files += - number_of_sectors * SECTOR_SIZE - size; - } - else - { - old_end_source = end_source; - get_file_specifications(q); - *end_source = 0; - if (verbosity == VERBOSE) - printf("Writing %s\n", source); - file = fopen(source, "rb"); - if (file == NULL) - error_exit("Can't open %s\n", source); - fseek(file, 0, SEEK_SET); - while (size > 0) - { - n = BUFFER_SIZE - cd.count; - if ((DWORD) n > size) - n = size; - if (fread (cd.buffer + cd.count, n, 1, file) < 1) - { - fclose(file); - error_exit("Read error in file %s\n", source); - } - cd.count += n; - if (cd.count == BUFFER_SIZE) - flush_buffer(); - cd.sector += n / SECTOR_SIZE; - cd.offset += n % SECTOR_SIZE; - size -= n; - } - fclose(file); - end_source = old_end_source; - fill_sector(); - } - } - } - } - - total_sectors = (DWORD)cd.sector; -} - -static char HELP[] = - "CDMAKE [-q] [-v] [-p] [-s N] [-m] [-b bootimage] [-j] source volume image\n" - "\n" - " source specifications of base directory containing all files to\n" - " be written to CD-ROM image\n" - " volume volume label\n" - " image image file or device\n" - " -q quiet mode - display nothing but error messages\n" - " -v verbose mode - display file information as files are\n" - " scanned and written - overrides -p option\n" - " -p show progress while writing\n" - " -s N abort operation before beginning write if image will be\n" - " larger than N megabytes (i.e. 1024*1024*N bytes)\n" - " -m accept punctuation marks other than underscores in\n" - " names and extensions\n" - " -b bootimage create bootable ElTorito CD-ROM using 'no emulation' mode\n" - " -j generate Joliet filename records\n"; - -/*----------------------------------------------------------------------------- -Program execution starts here. ------------------------------------------------------------------------------*/ - -int main(int argc, char **argv) -{ - BOOL q_option = FALSE; - BOOL v_option = FALSE; - int i; - char *t; - - if (argc < 2) - { - puts(HELP); - return 1; - } - - if (setjmp(error)) - return 1; - - // initialize root directory - - cd.buffer = malloc (BUFFER_SIZE); - if (cd.buffer == NULL) - error_exit("Insufficient memory"); - - memset(&root, 0, sizeof(root)); - root.level = 1; - root.flags = DIRECTORY_FLAG; - - // initialize CD-ROM write buffer - - cd.file = NULL; - cd.filespecs[0] = 0; - - // initialize parameters - - verbosity = NORMAL; - size_limit = 0; - show_progress = FALSE; - accept_punctuation_marks = FALSE; - source[0] = 0; - volume_label[0] = 0; - - eltorito = FALSE; - - // scan command line arguments - - for (i = 1; i < argc; i++) - { - if (memcmp(argv[i], "-s", 2) == 0) - { - t = argv[i] + 2; - if (*t == 0) - { - if (++i < argc) - t = argv[i]; - else - error_exit("Missing size limit parameter"); - } - while (isdigit(*t)) - size_limit = size_limit * 10 + *t++ - '0'; - if (size_limit < 1 || size_limit > 800) - error_exit("Invalid size limit"); - size_limit <<= 9; // convert megabyte to sector count - } - else if (strcmp(argv[i], "-q") == 0) - q_option = TRUE; - else if (strcmp(argv[i], "-v") == 0) - v_option = TRUE; - else if (strcmp(argv[i], "-p") == 0) - show_progress = TRUE; - else if (strcmp(argv[i], "-m") == 0) - accept_punctuation_marks = TRUE; - else if (strcmp(argv[i], "-j") == 0) - joliet = TRUE; - else if (strcmp(argv[i], "-b") == 0) - { - strcpy(bootimage, argv[++i]); - eltorito = TRUE; - } - else if (i + 2 < argc) - { - strcpy(source, argv[i++]); - strncpy(volume_label, argv[i++], sizeof(volume_label) - 1); - strcpy(cd.filespecs, argv[i]); - } - else - error_exit("Missing command line argument"); - } - if (v_option) - { - show_progress = FALSE; - verbosity = VERBOSE; - } - else if (q_option) - { - verbosity = QUIET; - show_progress = FALSE; - } - if (source[0] == 0) - error_exit("Missing source directory"); - if (volume_label[0] == 0) - error_exit("Missing volume label"); - if (cd.filespecs[0] == 0) - error_exit("Missing image file specifications"); - - - // set source[] and end_source to source directory, with a terminating directory separator - - end_source = source + strlen(source); - if (end_source[-1] == ':') - *end_source++ = '.'; - if (end_source[-1] != DIR_SEPARATOR_CHAR) - *end_source++ = DIR_SEPARATOR_CHAR; - - // scan all files and create directory structure in memory - - make_directory_records(&root); - - // sort path table entries - - root.next_in_path_table = sort_linked_list(root.next_in_path_table, 1, - compare_path_table_order); - - // initialize CD-ROM write buffer - - cd.file = NULL; - cd.sector = 0; - cd.offset = 0; - cd.count = 0; - - // make non-writing pass over directory structure to obtain the proper - // sector numbers and offsets and to determine the size of the image - - number_of_files = bytes_in_files = number_of_directories = - bytes_in_directories = unused_bytes_at_ends_of_files =0; - pass(); - - if (verbosity >= NORMAL) - { - printf("%s bytes ", edit_with_commas(bytes_in_files, TRUE)); - printf("in %s files\n", edit_with_commas(number_of_files, FALSE)); - printf("%s unused bytes at ends of files\n", - edit_with_commas(unused_bytes_at_ends_of_files, TRUE)); - printf("%s bytes ", edit_with_commas(bytes_in_directories, TRUE)); - printf("in %s directories\n", - edit_with_commas(number_of_directories, FALSE)); - printf("%s other bytes\n", edit_with_commas(root.sector * SECTOR_SIZE, TRUE)); - puts("-------------"); - printf("%s total bytes\n", - edit_with_commas(total_sectors * SECTOR_SIZE, TRUE)); - puts("============="); - } - - if (size_limit != 0 && total_sectors > size_limit) - error_exit("Size limit exceeded"); - - // re-initialize CD-ROM write buffer - - cd.file = fopen(cd.filespecs, "w+b"); - if (cd.file == NULL) - error_exit("Can't open image file %s", cd.filespecs); - cd.sector = 0; - cd.offset = 0; - cd.count = 0; - - - // make writing pass over directory structure - - pass(); - - if (cd.count > 0) - flush_buffer(); - if (show_progress) - printf("\r \n"); - if (fclose(cd.file) != 0) - { - cd.file = NULL; - error_exit("File write error in image file %s", cd.filespecs); - } - - if (verbosity >= NORMAL) - puts("CD-ROM image made successfully"); - - release_memory(); - return 0; -} - - -/* EOF */ diff --git a/reactos/tools/cdmake/llmosrt.c b/reactos/tools/cdmake/llmosrt.c deleted file mode 100644 index ef2e1794b79..00000000000 --- a/reactos/tools/cdmake/llmosrt.c +++ /dev/null @@ -1,106 +0,0 @@ -/* $Id$ */ -/* A Linked-List Memory Sort - by Philip J. Erdelsky - pje@acm.org - http://www.alumni.caltech.edu/~pje/ -*/ - -/* According to his website, this file was released into the public domain by Phillip J. Erdelsky */ - - -#include - -void *sort_linked_list(void *p, unsigned index, int (*compare)(void *, void *)) -{ - unsigned base; - unsigned long block_size; - - struct record - { - struct record *next[1]; - /* other members not directly accessed by this function */ - }; - - struct tape - { - struct record *first, *last; - unsigned long count; - } tape[4]; - - /* Distribute the records alternately to tape[0] and tape[1]. */ - - tape[0].count = tape[1].count = 0L; - tape[0].first = NULL; - base = 0; - while (p != NULL) - { - struct record *next = ((struct record *)p)->next[index]; - ((struct record *)p)->next[index] = tape[base].first; - tape[base].first = ((struct record *)p); - tape[base].count++; - p = next; - base ^= 1; - } - - /* If the list is empty or contains only a single record, then */ - /* tape[1].count == 0L and this part is vacuous. */ - - for (base = 0, block_size = 1L; tape[base+1].count != 0L; - base ^= 2, block_size <<= 1) - { - int dest; - struct tape *tape0, *tape1; - tape0 = tape + base; - tape1 = tape + base + 1; - dest = base ^ 2; - tape[dest].count = tape[dest+1].count = 0; - for (; tape0->count != 0; dest ^= 1) - { - unsigned long n0, n1; - struct tape *output_tape = tape + dest; - n0 = n1 = block_size; - while (1) - { - struct record *chosen_record; - struct tape *chosen_tape; - if (n0 == 0 || tape0->count == 0) - { - if (n1 == 0 || tape1->count == 0) - break; - chosen_tape = tape1; - n1--; - } - else if (n1 == 0 || tape1->count == 0) - { - chosen_tape = tape0; - n0--; - } - else if ((*compare)(tape0->first, tape1->first) > 0) - { - chosen_tape = tape1; - n1--; - } - else - { - chosen_tape = tape0; - n0--; - } - chosen_tape->count--; - chosen_record = chosen_tape->first; - chosen_tape->first = chosen_record->next[index]; - if (output_tape->count == 0) - output_tape->first = chosen_record; - else - output_tape->last->next[index] = chosen_record; - output_tape->last = chosen_record; - output_tape->count++; - } - } - } - - if (tape[base].count > 1L) - tape[base].last->next[index] = NULL; - return tape[base].first; -} - -/* EOF */ diff --git a/reactos/tools/cdmake/readme.txt b/reactos/tools/cdmake/readme.txt deleted file mode 100644 index 4ddb07389eb..00000000000 --- a/reactos/tools/cdmake/readme.txt +++ /dev/null @@ -1,96 +0,0 @@ - CD-ROM Maker - Philip J. Erdelsky - -The CDMAKE utility converts files from DOS/Windows format to ISO9660 -(CD-ROM) format. - -First, gather all the files to be converted and put them into a single -base directory and its subdirectories, arranged just the way you want -them on the CD-ROM. Remember that ISO9660 allows subdirectories to be -nested only eight levels deep. Therefore, if the base directory is -C:\CDROM, - - C:\CDROM\D2\D3\D4\D5\D6\D7\D8\FOO.TXT is permitted, but - - C:\CDROM\D2\D3\D4\D5\D6\D7\D8\D9\FOO.TXT is forbidden. - -Also, ISO9660 does not allow directories to have extensions, although -DOS does. - -Finally, the characters in file and directory names and file extensions -must be letters, digits or underscores. Other punctuation marks -permitted by DOS/Windows are forbidden by ISO9660. You can use the -c -option to override this restriction, but the resulting CD-ROM may not be -readable on systems other than DOS/Windows. - -Files in the base directory will be written to the root directory of the -CD-ROM image. All subdirectories of the base directory will appear as -subdirectories of the root directory of the CD-ROM image. Their -contents, and the contents of their subdirectories, down to the eighth -level, will be faithfully copied to the CD-ROM image. - -System files will not be written to the CD-ROM image. Hidden files will -be written to the CD-ROM image, and will retain their hidden attributes. -Read-only files will be written, and will remain read-only on the -CD-ROM, but this does not distinguish them in any way, because on a -CD-ROM all files are read-only. The archive attribute will be lost. - -File and directory date and time stamps will be preserved in the CD-ROM -image. - -The utility is called up by a command line of the following form: - - CDMAKE [-q] [-v] [-p] [-s N] [-m] [-j] [-b bootimage] source volume image - - source specifications of base directory containing all files to - be written to CD-ROM image - - volume volume label - - image image file or device - - -q quiet mode - display nothing but error messages - - -v verbose mode - display file information as files are - scanned and written - overrides -p option - - -p show progress while writing - - -s N abort operation before beginning write if image will be - larger than N megabytes (i.e. 1024*1024*N bytes) - - -m accept punctuation marks other than underscores in - names and extensions - - -j generates Joliet filename records - - -b bootimage create bootable ElTorito CD-ROM using 'no emulation' mode - - -The utility makes three passes over the source files: - - (1) The scanning pass, in which the names and extensions are - checked for validity, and the names, extensions, sizes, dates, - times and attributes are recorded internally. The files are not - actually read during this pass. - - (2) The layout pass, in which the sizes and positions of - directories, files and other items in the CD-ROM image are - determined. - - (3) The writing pass, in which the files are actually read and the - CD-ROM image is actually written to the specified file or - device. The image is always written sequentially. - -If neither the -q nor the -v option is used, CDMAKE will display the -volume label, size, number of files and directories and the total bytes -in each at the end of the layout pass. - -If the -p option is used, and is not overridden by the -v option, then -during the writing pass, CDMAKE will display the number of bytes still -to be written to the CD-ROM image, updating it frequently. The number -will decrease as the operation progresses, and will reach zero when the -operation is complete. - -The operation of CDMAKE can be aborted by typing Ctrl-C when the utility -is displaying text of any kind. diff --git a/reactos/tools/create_nls/Readme b/reactos/tools/create_nls/Readme deleted file mode 100644 index e72804b6b74..00000000000 --- a/reactos/tools/create_nls/Readme +++ /dev/null @@ -1,23 +0,0 @@ -Create_nls - .nls file creation tool ------------------------------------- - -Create_nls is a tool to create binary .nls files from codepage mapping -files provided by Unicode Inc. Due to the confusing license these files -are not part of the ReactOS source tree. - - -You can easily download the files from 'http://www.unicode.org/public' or -'ftp://ftp.unicode.org/pub'. Download the directory structure of the web/ftp -site into the unicode.org subdirectory and create_nls will build the .nls -files. - -Makefile targets: - 'make': builds create_nls tool. - 'make clean': deletes all executable and object files - 'make nls': generates binary .nls files. - 'make clean_nls': deletes binary .nls files. - -Since the binary .nls files are part of the ReactOS source tree it is not -necessary to build these files yourself. Therefore create_nls is not -integrated with the main makefile. You will have to build and run it -separately. diff --git a/reactos/tools/create_nls/create_nls.c b/reactos/tools/create_nls/create_nls.c deleted file mode 100644 index 4e21ce31b0f..00000000000 --- a/reactos/tools/create_nls/create_nls.c +++ /dev/null @@ -1,969 +0,0 @@ -/* - * Tool for creating NT-like NLS files for Unicode <-> Codepage conversions. - * Tool for creating NT-like l_intl.nls file for case mapping of unicode - * characters. - * Copyright 2000 Timoshkov Dmitry - * Copyright 2001 Matei Alexandru - * - * Sources of information: - * Andrew Kozin's YAW project http://www.chat.ru/~stanson/yaw_en.html - * Ove Kõven's investigations http://www.ping.uio.no/~ovehk/nls - */ -#include -#include -#include -#include -#include -#include - -static const WCHAR * const uprtable[256]; -static const WCHAR * const lwrtable[256]; - -#define NLSDIR "../../media/nls" -#define LIBDIR "unicode.org/" - -typedef struct { - WORD wSize; /* in words 0x000D */ - WORD CodePage; - WORD MaxCharSize; /* 1 or 2 */ - BYTE DefaultChar[MAX_DEFAULTCHAR]; - WCHAR UnicodeDefaultChar; - WCHAR unknown1; - WCHAR unknown2; - BYTE LeadByte[MAX_LEADBYTES]; -} __attribute__((packed)) NLS_FILE_HEADER; - -/* -Support for translation from the multiple unicode chars -to the single code page char. - -002D;HYPHEN-MINUS;Pd;0;ET;;;;;N;;;;; -00AD;SOFT HYPHEN;Pd;0;ON;;;;;N;;;;; -2010;HYPHEN;Pd;0;ON;;;;;N;;;;; -2011;NON-BREAKING HYPHEN;Pd;0;ON; 2010;;;;N;;;;; -2013;EN DASH;Pd;0;ON;;;;;N;;;;; -2014;EM DASH;Pd;0;ON;;;;;N;;;;; -2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;; -*/ - -/* HYPHEN-MINUS aliases */ -static WCHAR hyphen_aliases[] = {0x00AD,0x2010,0x2011,0x2013,0x2014,0x2015,0}; - -static struct { - WCHAR cp_char; - WCHAR *alias; /* must be 0 terminated */ -} u2cp_alias[] = { -/* HYPHEN-MINUS aliases */ -{0x002D, hyphen_aliases} -}; - -static void patch_aliases(void *u2cp, CPINFOEXA *cpi) -{ - int i, j; - WCHAR *wc, *alias; - BYTE *c; - - if(cpi->MaxCharSize == 2) { - wc = (WCHAR *)u2cp; - for(i = 0; i < 65536; i++) { - for(j = 0; j < sizeof(u2cp_alias)/sizeof(u2cp_alias[0]); j++) { - alias = u2cp_alias[j].alias; - while(*alias) { - if(*alias == i && wc[i] == *(WCHAR *)cpi->DefaultChar) { - wc[i] = u2cp_alias[j].cp_char; - } - alias++; - } - } - } - } - else { - c = (BYTE *)u2cp; - for(i = 0; i < 65536; i++) { - for(j = 0; j < sizeof(u2cp_alias)/sizeof(u2cp_alias[0]); j++) { - alias = u2cp_alias[j].alias; - while(*alias) { - if(*alias == i && c[i] == cpi->DefaultChar[0] && u2cp_alias[j].cp_char < 256) { - c[i] = (BYTE)u2cp_alias[j].cp_char; - } - alias++; - } - } - } - } -} - -static BOOL write_unicode2cp_table(FILE *out, CPINFOEXA *cpi, WCHAR *table) -{ - void *u2cp; - WCHAR *wc; - CHAR *c; - int i; - BOOL ret = TRUE; - - u2cp = malloc(cpi->MaxCharSize * 65536); - if(!u2cp) { - printf("Not enough memory for Unicode to Codepage table\n"); - return FALSE; - } - - if(cpi->MaxCharSize == 2) { - wc = (WCHAR *)u2cp; - for(i = 0; i < 65536; i++) - wc[i] = *(WCHAR *)cpi->DefaultChar; - - for(i = 0; i < 65536; i++) - if (table[i] != '?') - wc[table[i]] = (WCHAR)i; - } - else { - c = (CHAR *)u2cp; - for(i = 0; i < 65536; i++) - c[i] = cpi->DefaultChar[0]; - - for(i = 0; i < 256; i++) - if (table[i] != '?') - c[table[i]] = (CHAR)i; - } - - patch_aliases(u2cp, cpi); - - if(fwrite(u2cp, 1, cpi->MaxCharSize * 65536, out) != cpi->MaxCharSize * 65536) - ret = FALSE; - - free(u2cp); - - return ret; -} - -static BOOL write_lb_ranges(FILE *out, CPINFOEXA *cpi, WCHAR *table) -{ - WCHAR sub_table[256]; - WORD offset, offsets[256]; - int i, j, range; - - memset(offsets, 0, sizeof(offsets)); - - offset = 0; - - for(i = 0; i < MAX_LEADBYTES; i += 2) { - for(range = cpi->LeadByte[i]; range != 0 && range <= cpi->LeadByte[i + 1]; range++) { - offset += 256; - offsets[range] = offset; - } - } - - if(fwrite(offsets, 1, sizeof(offsets), out) != sizeof(offsets)) - return FALSE; - - for(i = 0; i < MAX_LEADBYTES; i += 2) { - for(range = cpi->LeadByte[i]; range != 0 && range <= cpi->LeadByte[i + 1]; range++) { - /*printf("Writing sub table for LeadByte %02X\n", range);*/ - for(j = MAKEWORD(0, range); j <= MAKEWORD(0xFF, range); j++) { - sub_table[j - MAKEWORD(0, range)] = table[j]; - } - - if(fwrite(sub_table, 1, sizeof(sub_table), out) != sizeof(sub_table)) - return FALSE; - } - } - - return TRUE; -} - -static BOOL create_nls_file(char *name, CPINFOEXA *cpi, WCHAR *table, WCHAR *oemtable) -{ - FILE *out; - NLS_FILE_HEADER nls; - WORD wValue, number_of_lb_ranges, number_of_lb_subtables, i; - - printf("Creating NLS table \"%s\"\n", name); - - if(!(out = fopen(name, "wb"))) { - printf("Could not create file \"%s\"\n", name); - return FALSE; - } - - memset(&nls, 0, sizeof(nls)); - - nls.wSize = sizeof(nls) / sizeof(WORD); - nls.CodePage = cpi->CodePage; - nls.MaxCharSize = cpi->MaxCharSize; - memcpy(nls.DefaultChar, cpi->DefaultChar, MAX_DEFAULTCHAR); - nls.UnicodeDefaultChar = cpi->UnicodeDefaultChar; - nls.unknown1 = '?'; - nls.unknown2 = '?'; - memcpy(nls.LeadByte, cpi->LeadByte, MAX_LEADBYTES); - - if(fwrite(&nls, 1, sizeof(nls), out) != sizeof(nls)) { - fclose(out); - printf("Could not write to file \"%s\"\n", name); - return FALSE; - } - - number_of_lb_ranges = 0; - number_of_lb_subtables = 0; - - for(i = 0; i < MAX_LEADBYTES; i += 2) { - if(cpi->LeadByte[i] != 0 && cpi->LeadByte[i + 1] > cpi->LeadByte[i]) { - number_of_lb_ranges++; - number_of_lb_subtables += cpi->LeadByte[i + 1] - cpi->LeadByte[i] + 1; - } - } - - /*printf("Number of LeadByte ranges %d\n", number_of_lb_ranges);*/ - /*printf("Number of LeadByte subtables %d\n", number_of_lb_subtables);*/ - - /* Calculate offset to Unicode to CP table in words: - * 1. (256 * sizeof(WORD)) primary CP to Unicode table + - * 2. (WORD) optional OEM glyph table size in words + - * 3. OEM glyph table size in words * sizeof(WORD) + - * 4. (WORD) Number of DBCS LeadByte ranges + - * 5. if (Number of DBCS LeadByte ranges != 0) 256 * sizeof(WORD) offsets of lead byte sub tables - * 6. (Number of DBCS LeadByte sub tables * 256 * sizeof(WORD)) LeadByte sub tables + - * 7. (WORD) Unknown flag - */ - - wValue = (256 * sizeof(WORD) + /* 1 */ - sizeof(WORD) + /* 2 */ - ((oemtable !=NULL) ? (256 * sizeof(WORD)) : 0) + /* 3 */ - sizeof(WORD) + /* 4 */ - ((number_of_lb_subtables != 0) ? 256 * sizeof(WORD) : 0) + /* 5 */ - number_of_lb_subtables * 256 * sizeof(WORD) + /* 6 */ - sizeof(WORD) /* 7 */ - ) / sizeof(WORD); - - /* offset of Unicode to CP table in words */ - fwrite(&wValue, 1, sizeof(wValue), out); - - /* primary CP to Unicode table */ - if(fwrite(table, 1, 256 * sizeof(WCHAR), out) != 256 * sizeof(WCHAR)) { - fclose(out); - printf("Could not write to file \"%s\"\n", name); - return FALSE; - } - - /* optional OEM glyph table size in words */ - wValue = (oemtable != NULL) ? (256 * sizeof(WORD)) : 0; - fwrite(&wValue, 1, sizeof(wValue), out); - - /* optional OEM to Unicode table */ - if (oemtable) { - if(fwrite(oemtable, 1, 256 * sizeof(WCHAR), out) != 256 * sizeof(WCHAR)) { - fclose(out); - printf("Could not write to file \"%s\"\n", name); - return FALSE; - } - } - - /* Number of DBCS LeadByte ranges */ - fwrite(&number_of_lb_ranges, 1, sizeof(number_of_lb_ranges), out); - - /* offsets of lead byte sub tables and lead byte sub tables */ - if(number_of_lb_ranges > 0) { - if(!write_lb_ranges(out, cpi, table)) { - fclose(out); - printf("Could not write to file \"%s\"\n", name); - return FALSE; - } - } - - /* Unknown flag */ - wValue = 0; - fwrite(&wValue, 1, sizeof(wValue), out); - - if(!write_unicode2cp_table(out, cpi, table)) { - fclose(out); - printf("Could not write to file \"%s\"\n", name); - return FALSE; - } - - fclose(out); - return TRUE; -} - -/* correct the codepage information such as default chars */ -static void patch_codepage_info(CPINFOEXA *cpi) -{ - /* currently nothing */ -} - -static WCHAR *Load_CP2Unicode_Table(char *table_name, UINT cp, CPINFOEXA *cpi) -{ - char buf[256]; - char *p; - DWORD n, value; - FILE *file; - WCHAR *table; - int lb_ranges, lb_range_started, line; - - printf("Loading translation table \"%s\"\n", table_name); - - /* Init to default values */ - memset(cpi, 0, sizeof(CPINFOEXA)); - cpi->CodePage = cp; - *(WCHAR *)cpi->DefaultChar = '?'; - cpi->MaxCharSize = 1; - cpi->UnicodeDefaultChar = '?'; - - patch_codepage_info(cpi); - - table = (WCHAR *)malloc(sizeof(WCHAR) * 65536); - if(!table) { - printf("Not enough memory for Codepage to Unicode table\n"); - return NULL; - } - - for(n = 0; n < 256; n++) - table[n] = (WCHAR)n; - - for(n = 256; n < 65536; n++) - table[n] = cpi->UnicodeDefaultChar; - - file = fopen(table_name, "r"); - if(file == NULL) { - free(table); - return NULL; - } - - line = 0; - lb_ranges = 0; - lb_range_started = 0; - - while(fgets(buf, sizeof(buf), file)) { - line++; - p = buf; - while(isspace(*p)) p++; - - if(!*p || p[0] == '#') - continue; - - n = strtol(p, &p, 0); - if(n > 0xFFFF) { - printf("Line %d: Entry 0x%06lX: File \"%s\" corrupted\n", line, n, table_name); - continue; - } - - if(n > 0xFF && cpi->MaxCharSize != 2) { - /*printf("Line %d: Entry 0x%04lX: Switching to DBCS\n", line, n);*/ - cpi->MaxCharSize = 2; - } - - while(isspace(*p)) p++; - - if(!*p || p[0] == '#') { - /*printf("Line %d: Entry 0x%02lX has no Unicode value\n", line, n);*/ - } - else { - value = strtol(p, &p, 0); - if(value > 0xFFFF) { - printf("Line %d: Entry 0x%06lX unicode value: File \"%s\" corrupted\n", line, n, table_name); - } - table[n] = (WCHAR)value; - } - - /* wait for comment */ - while(*p && *p != '#') p++; - - if(*p == '#' && strstr(p, "DBCS LEAD BYTE")) { - /*printf("Line %d, entry 0x%02lX DBCS LEAD BYTE\n", line, n);*/ - if(n > 0xFF) { - printf("Line %d: Entry 0x%04lX: Error: DBCS lead byte overflowed\n", line, n); - continue; - } - - table[n] = (WCHAR)0; - - if(lb_range_started) { - cpi->LeadByte[(lb_ranges - 1) * 2 + 1] = (BYTE)n; - } - else { - /*printf("Line %d: Starting new DBCS lead byte range, entry 0x%02lX\n", line, n);*/ - if(lb_ranges < MAX_LEADBYTES/2) { - lb_ranges++; - lb_range_started = 1; - cpi->LeadByte[(lb_ranges - 1) * 2] = (BYTE)n; - } - else - printf("Line %d: Error: could not start new lead byte range\n", line); - } - } - else { - if(lb_range_started) - lb_range_started = 0; - } - } - - fclose(file); - - return table; -} - -static WCHAR *Load_OEM2Unicode_Table(char *table_name, WCHAR *def_table, UINT cp, CPINFOEXA *cpi) -{ - char buf[256]; - char *p; - DWORD n, value; - FILE *file; - WCHAR *table; - int line; - - printf("Loading oem glyph table \"%s\"\n", table_name); - - table = (WCHAR *)malloc(sizeof(WCHAR) * 65536); - if(!table) { - printf("Not enough memory for Codepage to Unicode table\n"); - return NULL; - } - - memcpy(table, def_table, 65536 * sizeof(WCHAR)); - - file = fopen(table_name, "r"); - if(file == NULL) { - free(table); - return NULL; - } - - while(fgets(buf, sizeof(buf), file)) { - line++; - p = buf; - while(isspace(*p)) p++; - - if(!*p || p[0] == '#') - continue; - - value = strtol(p, &p, 16); - if(value > 0xFFFF) { - printf("Line %d: Entry 0x%06lX: File \"%s\" corrupted\n", line, value, table_name); - continue; - } - - while(isspace(*p)) p++; - - if(!*p || p[0] == '#') { - /*printf("Line %d: Entry 0x%02lX has no Unicode value\n", line, n);*/ - continue; - } - else { - n = strtol(p, &p, 16); - if(n > 0xFFFF) { - printf("Line %d: Entry 0x%06lX unicode value: File \"%s\" corrupted\n", line, value, table_name); - continue; - } - } - - if (cpi->CodePage == 864) { - while(isspace(*p)) p++; - - if(!*p || p[0] == '#' || p[0] == '-') { - /*printf("Line %d: Entry 0x%02lX has no Unicode value\n", line, n);*/ - continue; - } - else { - n = strtol(p, &p, 16); - if(n > 0xFFFF) { - printf("Line %d: Entry 0x%06lX oem value: File \"%s\" corrupted\n", line, value, table_name); - } - continue; - } - } - - table[n] = (WCHAR)value; - } - - fclose(file); - - return table; -} - -int write_nls_files() -{ - WCHAR *table; - WCHAR *oemtable; - char nls_filename[256]; - CPINFOEXA cpi; - int i; - struct code_page { - UINT cp; - BOOL oem; - char *table_filename; - char *comment; - } pages[] = { - {37, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/EBCDIC/CP037.TXT", "IBM EBCDIC US Canada"}, - {424, FALSE, LIBDIR"MAPPINGS/VENDORS/MISC/CP424.TXT", "IBM EBCDIC Hebrew"}, - {437, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP437.TXT", "OEM United States"}, - {500, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/EBCDIC/CP500.TXT", "IBM EBCDIC International"}, - /*{708, FALSE, "", "Arabic ASMO"},*/ - /*{720, FALSE, "", "Arabic Transparent ASMO"},*/ - {737, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP737.TXT", "OEM Greek 437G"}, - {775, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP775.TXT", "OEM Baltic"}, - {850, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP850.TXT", "OEM Multilingual Latin 1"}, - {852, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP852.TXT", "OEM Slovak Latin 2"}, - {855, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP855.TXT", "OEM Cyrillic" }, - {856, TRUE, LIBDIR"MAPPINGS/VENDORS/MISC/CP856.TXT", "Hebrew PC"}, - {857, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP857.TXT", "OEM Turkish"}, - {860, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP860.TXT", "OEM Portuguese"}, - {861, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP861.TXT", "OEM Icelandic"}, - {862, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP862.TXT", "OEM Hebrew"}, - {863, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP863.TXT", "OEM Canadian French"}, - {864, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP864.TXT", "OEM Arabic"}, - {865, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP865.TXT", "OEM Nordic"}, - {866, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP866.TXT", "OEM Russian"}, - {869, TRUE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP869.TXT", "OEM Greek"}, - /*{870, FALSE, "", "IBM EBCDIC Multilingual/ROECE (Latin 2)"},*/ - {874, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/PC/CP874.TXT", "ANSI/OEM Thai"}, - {875, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/EBCDIC/CP875.TXT", "IBM EBCDIC Greek"}, - {878, FALSE, LIBDIR"MAPPINGS/VENDORS/MISC/KOI8-R.TXT", "Russian KOI8"}, - {932, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT", "ANSI/OEM Japanese Shift-JIS"}, - {936, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP936.TXT", "ANSI/OEM Simplified Chinese GBK"}, - {949, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP949.TXT", "ANSI/OEM Korean Unified Hangul"}, - {950, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT", "ANSI/OEM Traditional Chinese Big5"}, - {1006, FALSE, LIBDIR"MAPPINGS/VENDORS/MISC/CP1006.TXT", "IBM Arabic"}, - {1026, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/EBCDIC/CP1026.TXT", "IBM EBCDIC Latin 5 Turkish"}, - {1250, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1250.TXT", "ANSI Eastern Europe"}, - {1251, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT", "ANSI Cyrillic"}, - {1252, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT", "ANSI Latin 1"}, - {1253, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1253.TXT", "ANSI Greek"}, - {1254, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1254.TXT", "ANSI Turkish"}, - {1255, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1255.TXT", "ANSI Hebrew"}, - {1256, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1256.TXT", "ANSI Arabic"}, - {1257, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1257.TXT", "ANSI Baltic"}, - {1258, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1258.TXT", "ANSI/OEM Viet Nam"}, - {10000, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/MAC/ROMAN.TXT", "Mac Roman"}, - {10006, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/MAC/GREEK.TXT", "Mac Greek"}, - {10007, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/MAC/CYRILLIC.TXT", "Mac Cyrillic"}, - {10029, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/MAC/LATIN2.TXT", "Mac Latin 2"}, - {10079, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/MAC/ICELAND.TXT", "Mac Icelandic"}, - {10081, FALSE, LIBDIR"MAPPINGS/VENDORS/MICSFT/MAC/TURKISH.TXT", "Mac Turkish"}, - /*{20000, FALSE, "", "CNS Taiwan"},*/ - /*{20001, FALSE, "", "TCA Taiwan"},*/ - /*{20002, FALSE, "", "Eten Taiwan"},*/ - /*{20003, FALSE, "", "IBM5550 Taiwan"},*/ - /*{20004, FALSE, "", "TeleText Taiwan"},*/ - /*{20005, FALSE, "", "Wang Taiwan"},*/ - /*{20105, FALSE, "", "IA5 IRV International Alphabet No.5"},*/ - /*{20106, FALSE, "", "IA5 German"},*/ - /*{20107, FALSE, "", "IA5 Swedish"},*/ - /*{20108, FALSE, "", "IA5 Norwegian"},*/ - /*{20127, FALSE, "", "US ASCII"}, */ - /*{20261, FALSE, "", "T.61"},*/ - /*{20269, FALSE, "", "ISO 6937 NonSpacing Accent"},*/ - /*{20273, FALSE, "", "IBM EBCDIC Germany"},*/ - /*{20277, FALSE, "", "IBM EBCDIC Denmark/Norway"},*/ - /*{20278, FALSE, "", "IBM EBCDIC Finland/Sweden"},*/ - /*{20280, FALSE, "", "IBM EBCDIC Italy"},*/ - /*{20284, FALSE, "", "IBM EBCDIC Latin America/Spain"},*/ - /*{20285, FALSE, "", "IBM EBCDIC United Kingdom"},*/ - /*{20290, FALSE, "", "IBM EBCDIC Japanese Katakana Extended"},*/ - /*{20297, FALSE, "", "IBM EBCDIC France"},*/ - /*{20420, FALSE, "", "IBM EBCDIC Arabic"},*/ - /*{20423, FALSE, "IBM869.TXT", "IBM EBCDIC Greek"},*/ - /*{20424, FALSE, "", "IBM EBCDIC Hebrew"},*/ - /*{20833, FALSE, "", "IBM EBCDIC Korean Extended"},*/ - /*{20838, FALSE, "", "IBM EBCDIC Thai"},*/ - {20871, FALSE, "ReactOS/IBMCP861.TXT", "IBM EBCDIC Icelandic"}, - /*{20880, FALSE, "", "IBM EBCDIC Cyrillic (Russian)"},*/ - {20866, FALSE, LIBDIR"MAPPINGS/VENDORS/MISC/KOI8-R.TXT", "Russian KOI8"}, - /*{20905, FALSE, "", "IBM EBCDIC Turkish"},*/ - /*{21025, FALSE, "", "IBM EBCDIC Cyrillic (Serbian, Bulgarian)"},*/ - /*{21027, FALSE, "", "Ext Alpha Lowercase"},*/ - {28591, FALSE, LIBDIR"MAPPINGS/ISO8859/8859-1.TXT", "ISO 8859-1 Latin 1"}, - {28592, FALSE, LIBDIR"MAPPINGS/ISO8859/8859-2.TXT", "ISO 8859-2 Eastern Europe"}, - {28593, FALSE, LIBDIR"MAPPINGS/ISO8859/8859-3.TXT", "ISO 8859-3 Turkish"}, - {28594, FALSE, LIBDIR"MAPPINGS/ISO8859/8859-4.TXT", "ISO 8859-4 Baltic"}, - {28595, FALSE, LIBDIR"MAPPINGS/ISO8859/8859-5.TXT", "ISO 8859-5 Cyrillic"}, - {28596, FALSE, LIBDIR"MAPPINGS/ISO8859/8859-6.TXT", "ISO 8859-6 Arabic"}, - {28597, FALSE, LIBDIR"MAPPINGS/ISO8859/8859-7.TXT", "ISO 8859-7 Greek"}, - {28598, FALSE, LIBDIR"MAPPINGS/ISO8859/8859-8.TXT", "ISO 8859-8 Hebrew"}, - {28599, FALSE, LIBDIR"MAPPINGS/ISO8859/8859-9.TXT", "ISO 8859-9 Latin 5"} - }; - - for(i = 0; i < sizeof(pages)/sizeof(pages[0]); i++) { - table = Load_CP2Unicode_Table(pages[i].table_filename, pages[i].cp, &cpi); - if(!table) { - printf("Could not load \"%s\" (%s)\n", pages[i].table_filename, pages[i].comment); - continue; - } - - if (pages[i].oem) { - oemtable = Load_OEM2Unicode_Table(LIBDIR"MAPPINGS/VENDORS/MISC/IBMGRAPH.TXT", table, pages[i].cp, &cpi); - if(!oemtable) { - printf("Could not load \"%s\" (%s)\n", LIBDIR"MAPPINGS/VENDORS/MISC/IBMGRAPH.TXT", "IBM OEM glyph table"); - continue; - } - } - - sprintf(nls_filename, "%s/c_%03d.nls", NLSDIR, cpi.CodePage); - if(!create_nls_file(nls_filename, &cpi, table, pages[i].oem ? oemtable : NULL)) { - printf("Could not write \"%s\" (%s)\n", nls_filename, pages[i].comment); - } - - if (pages[i].oem) - free(oemtable); - - free(table); - } - - return 0; -} - - - -static WORD *to_upper_org = NULL, *to_lower_org = NULL; - -#if 0 -static WORD diffs[256]; -static int number_of_diffs; -#endif - -static WORD number_of_subtables_with_diffs; -/* pointers to subtables with 16 elements in each to the main table */ -static WORD *subtables_with_diffs[4096]; - -static WORD number_of_subtables_with_offsets; -/* subtables with 16 elements */ -static WORD subtables_with_offsets[4096 * 16]; - -static void test_packed_table(WCHAR *table) -{ - WCHAR test_str[] = L"This is an English text. \x0CF\x0EE-\x0F0\x0F3\x0F1\x0F1\x0EA\x0E8 \x0FF \x0EF\x0E8\x0F1\x0E0\x0F2\x0FC \x0F3\x0EC\x0E5\x0FE \x0ED\x0E5\x0EC\x0ED\x0EE\x0E6\x0EA\x0EE. 1234567890"; - //WORD diff, off; - //WORD *sub_table; - DWORD i, len; - - len = lstrlenW(test_str); - - for(i = 0; i < len + 1; i++) { - /*off = table[HIBYTE(test_str[i])]; - - sub_table = table + off; - off = sub_table[LOBYTE(test_str[i]) >> 4]; - - sub_table = table + off; - off = LOBYTE(test_str[i]) & 0x0F; - - diff = sub_table[off]; - - test_str[i] += diff;*/ - test_str[i] += table[table[table[HIBYTE(test_str[i])] + (LOBYTE(test_str[i]) >> 4)] + (LOBYTE(test_str[i]) & 0x0F)]; - } -/* - { - FILE *file; - static int n = 0; - char name[20]; - - sprintf(name, "text%02d.dat", n++); - file = fopen(name, "wb"); - fwrite(test_str, len * sizeof(WCHAR), 1, file); - fclose(file); - }*/ -} - -static BOOL CreateCaseDiff(char *table_name) -{ - char buf[256]; - char *p; - WORD code, case_mapping; - FILE *file; - int line; - - to_upper_org = (WORD *)calloc(65536, sizeof(WORD)); - if(!to_upper_org) { - printf("Not enough memory for to upper table\n"); - return FALSE; - } - - to_lower_org = (WORD *)calloc(65536, sizeof(WORD)); - if(!to_lower_org) { - printf("Not enough memory for to lower table\n"); - return FALSE; - } - - file = fopen(table_name, "r"); - if(file == NULL) { - printf("Could not open file \"%s\"\n", table_name); - return FALSE; - } - - line = 0; - - while(fgets(buf, sizeof(buf), file)) { - line++; - p = buf; - while(*p && isspace(*p)) p++; - - if(!*p) - continue; - - /* 0. Code value */ - code = (WORD)strtol(p, &p, 16); - - //if(code != 0x9A0 && code != 0xBA0) - //continue; - - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 1. Character name */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 2. General Category */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 3. Canonical Combining Classes */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 4. Bidirectional Category */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 5. Character Decomposition Mapping */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 6. Decimal digit value */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 7. Digit value */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 8. Numeric value */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 9. Mirrored */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 10. Unicode 1.0 Name */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 11. 10646 comment field */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - - /* 12. Uppercase Mapping */ - while(*p && isspace(*p)) p++; - if(!*p) continue; - if(*p != ';') { - case_mapping = (WORD)strtol(p, &p, 16); - to_upper_org[code] = case_mapping - code; - while(*p && *p != ';') p++; - } - else - p++; - - /* 13. Lowercase Mapping */ - while(*p && isspace(*p)) p++; - if(!*p) continue; - if(*p != ';') { - case_mapping = (WORD)strtol(p, &p, 16); - to_lower_org[code] = case_mapping - code; - while(*p && *p != ';') p++; - } - else - p++; - - /* 14. Titlecase Mapping */ - while(*p && *p != ';') p++; - if(!*p) - continue; - p++; - } - - fclose(file); - - return TRUE; -} - -#if 0 -static int find_diff(WORD diff) -{ - int i; - - for(i = 0; i < number_of_diffs; i++) { - if(diffs[i] == diff) - return i; - } - - return -1; -} -#endif - -static WORD find_subtable_with_diffs(WORD *table, WORD *subtable) -{ - WORD index; - - for(index = 0; index < number_of_subtables_with_diffs; index++) { - if(memcmp(subtables_with_diffs[index], subtable, 16 * sizeof(WORD)) == 0) { - return index; - } - } - - if(number_of_subtables_with_diffs >= 4096) { - printf("Could not add new subtable with diffs, storage is full\n"); - return 0; - } - - subtables_with_diffs[number_of_subtables_with_diffs] = subtable; - number_of_subtables_with_diffs++; - - return index; -} - -static WORD find_subtable_with_offsets(WORD *subtable) -{ - WORD index; - - for(index = 0; index < number_of_subtables_with_offsets; index++) { - if(memcmp(&subtables_with_offsets[index * 16], subtable, 16 * sizeof(WORD)) == 0) { - return index; - } - } - - if(number_of_subtables_with_offsets >= 4096) { - printf("Could not add new subtable with offsets, storage is full\n"); - return 0; - } - - memcpy(&subtables_with_offsets[number_of_subtables_with_offsets * 16], subtable, 16 * sizeof(WORD)); - number_of_subtables_with_offsets++; - - return index; -} - -static WORD *pack_table(WORD *table, WORD *packed_size_in_words) -{ - WORD high, low4, index; - WORD main_index[256]; - WORD temp_subtable[16]; - WORD *packed_table; - WORD *subtable_src, *subtable_dst; - - memset(subtables_with_diffs, 0, sizeof(subtables_with_diffs)); - number_of_subtables_with_diffs = 0; - - memset(subtables_with_offsets, 0, sizeof(subtables_with_offsets)); - number_of_subtables_with_offsets = 0; - - for(high = 0; high < 256; high++) { - for(low4 = 0; low4 < 256; low4 += 16) { - index = find_subtable_with_diffs(table, &table[MAKEWORD(low4, high)]); - - temp_subtable[low4 >> 4] = index; - } - - index = find_subtable_with_offsets(temp_subtable); - main_index[high] = index; - } - - *packed_size_in_words = 0x100 + number_of_subtables_with_offsets * 16 + number_of_subtables_with_diffs * 16; - packed_table = calloc(*packed_size_in_words, sizeof(WORD)); - - /* fill main index according to the subtables_with_offsets */ - for(high = 0; high < 256; high++) { - packed_table[high] = 0x100 + main_index[high] * 16; - } - - //memcpy(sub_table, subtables_with_offsets, number_of_subtables_with_offsets * 16); - - /* fill subtable index according to the subtables_with_diffs */ - for(index = 0; index < number_of_subtables_with_offsets; index++) { - subtable_dst = packed_table + 0x100 + index * 16; - subtable_src = &subtables_with_offsets[index * 16]; - - for(low4 = 0; low4 < 16; low4++) { - subtable_dst[low4] = 0x100 + number_of_subtables_with_offsets * 16 + subtable_src[low4] * 16; - } - } - - - for(index = 0; index < number_of_subtables_with_diffs; index++) { - subtable_dst = packed_table + 0x100 + number_of_subtables_with_offsets * 16 + index * 16; - memcpy(subtable_dst, subtables_with_diffs[index], 16 * sizeof(WORD)); - - } - - - test_packed_table(packed_table); - - return packed_table; -} - -int write_casemap_file(void) -{ - WORD packed_size_in_words, offset_to_next_table_in_words; - WORD *packed_table, value; - FILE *file; - - if(!CreateCaseDiff(LIBDIR"UnicodeData.txt")) - return -1; - - file = fopen(NLSDIR"/l_intl.nls", "wb"); - - /* write version number */ - value = 1; - fwrite(&value, 1, sizeof(WORD), file); - - /* pack upper case table */ - packed_table = pack_table(to_upper_org, &packed_size_in_words); - offset_to_next_table_in_words = packed_size_in_words + 1; - fwrite(&offset_to_next_table_in_words, 1, sizeof(WORD), file); - /* write packed upper case table */ - fwrite(packed_table, sizeof(WORD), packed_size_in_words, file); - free(packed_table); - - /* pack lower case table */ - packed_table = pack_table(to_lower_org, &packed_size_in_words); - offset_to_next_table_in_words = packed_size_in_words + 1; - fwrite(&offset_to_next_table_in_words, 1, sizeof(WORD), file); - /* write packed lower case table */ - fwrite(packed_table, sizeof(WORD), packed_size_in_words, file); - free(packed_table); - - fclose(file); - - free(to_upper_org); - free(to_lower_org); - - return 0; -} - -int main() -{ - write_nls_files(); - write_casemap_file(); - - return 0; -} diff --git a/reactos/tools/create_nls/unicode.org/ReactOS/ReadMe b/reactos/tools/create_nls/unicode.org/ReactOS/ReadMe deleted file mode 100644 index 27d34546efc..00000000000 --- a/reactos/tools/create_nls/unicode.org/ReactOS/ReadMe +++ /dev/null @@ -1,7 +0,0 @@ -To applay these patch - -copy MAPPINGS/VENDORS/MICSFT/PC/CP861.TXT -to here and rename it to ibmcp861.txt -and applay the patch ibm861.patch to ibmcp861.txt - - diff --git a/reactos/tools/create_nls/unicode.org/ReactOS/ibmcp861.diff b/reactos/tools/create_nls/unicode.org/ReactOS/ibmcp861.diff deleted file mode 100644 index 099b3e47a19..00000000000 --- a/reactos/tools/create_nls/unicode.org/ReactOS/ibmcp861.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- cp861.txt 2001-02-27 00:00:00.000000000 +0100 -+++ ibmcp861.txt 2005-11-12 19:27:38.578125000 +0100 -@@ -41,9 +41,9 @@ - 0x17 0x0017 #END OF TRANSMISSION BLOCK - 0x18 0x0018 #CANCEL - 0x19 0x0019 #END OF MEDIUM --0x1a 0x001a #SUBSTITUTE -+0x1a 0x001c #FILE SEPARATOR - 0x1b 0x001b #ESCAPE --0x1c 0x001c #FILE SEPARATOR -+0x1c 0x007f #DELETE - 0x1d 0x001d #GROUP SEPARATOR - 0x1e 0x001e #RECORD SEPARATOR - 0x1f 0x001f #UNIT SEPARATOR -@@ -245,7 +245,7 @@ - 0xe3 0x03c0 #GREEK SMALL LETTER PI - 0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA - 0xe5 0x03c3 #GREEK SMALL LETTER SIGMA --0xe6 0x00b5 #MICRO SIGN -+0xe6 0x03bc #GREEK SMALL LETTER MU - 0xe7 0x03c4 #GREEK SMALL LETTER TAU - 0xe8 0x03a6 #GREEK CAPITAL LETTER PHI - 0xe9 0x0398 #GREEK CAPITAL LETTER THETA diff --git a/reactos/tools/dumpstab.c b/reactos/tools/dumpstab.c deleted file mode 100644 index 66733e51117..00000000000 --- a/reactos/tools/dumpstab.c +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Usage: dumpstab input-file - * - * There are two sources of information: the .stab/.stabstr - * sections of the executable and the COFF symbol table. Most - * of the information is in the .stab/.stabstr sections. - * However, most of our asm files don't contain .stab directives, - * so routines implemented in assembler won't show up in the - * .stab section. They are present in the COFF symbol table. - * So, we mostly use the .stab/.stabstr sections, but we augment - * the info there with info from the COFF symbol table when - * possible. - * - * This is a tool and is compiled using the host compiler, - * i.e. on Linux gcc and not mingw-gcc (cross-compiler). - * Therefore we can't include SDK headers and we have to - * duplicate some definitions here. - * Also note that the internal functions are "old C-style", - * returning an int, where a return of 0 means success and - * non-zero is failure. - */ - -#include -#include -#include -#include - -#include "rsym.h" - -const char* -stab_type_name ( int stab_type ) -{ - static char buf[32]; - switch ( stab_type ) - { -#define X(n) case n: return #n; - X(N_GYSM) - X(N_FNAME) - X(N_FUN) - X(N_STSYM) - X(N_LCSYM) - X(N_MAIN) - X(N_PC) - X(N_NSYMS) - X(N_NOMAP) - X(N_RSYM) - X(N_M2C) - X(N_SLINE) - X(N_DSLINE) - X(N_BSLINE) - //X(N_BROWS) - X(N_DEFD) - X(N_EHDECL) - //X(N_MOD2) - X(N_CATCH) - X(N_SSYM) - X(N_SO) - X(N_LSYM) - X(N_BINCL) - X(N_SOL) - X(N_PSYM) - X(N_EINCL) - X(N_ENTRY) - X(N_LBRAC) - X(N_EXCL) - X(N_SCOPE) - X(N_RBRAC) - X(N_BCOMM) - X(N_ECOMM) - X(N_ECOML) - X(N_LENG) - } - sprintf ( buf, "%lu", stab_type ); - return buf; -} - -static int -GetStabInfo(void *FileData, PIMAGE_FILE_HEADER PEFileHeader, - PIMAGE_SECTION_HEADER PESectionHeaders, - ULONG *StabSymbolsLength, void **StabSymbolsBase, - ULONG *StabStringsLength, void **StabStringsBase) -{ - ULONG Idx; - - /* Load .stab and .stabstr sections if available */ - *StabSymbolsBase = NULL; - *StabSymbolsLength = 0; - *StabStringsBase = NULL; - *StabStringsLength = 0; - - for (Idx = 0; Idx < PEFileHeader->NumberOfSections; Idx++) - { - /* printf("section: '%.08s'\n", PESectionHeaders[Idx].Name); */ - if ((strncmp((char*)PESectionHeaders[Idx].Name, ".stab", 5) == 0) - && (PESectionHeaders[Idx].Name[5] == 0)) - { - /* printf(".stab section found. Size %d\n", - PESectionHeaders[Idx].SizeOfRawData); */ - - *StabSymbolsLength = PESectionHeaders[Idx].SizeOfRawData; - *StabSymbolsBase = (void *)((char *) FileData + PESectionHeaders[Idx].PointerToRawData); - } - - if (strncmp((char*)PESectionHeaders[Idx].Name, ".stabstr", 8) == 0) - { - /* printf(".stabstr section found. Size %d\n", - PESectionHeaders[Idx].SizeOfRawData); */ - - *StabStringsLength = PESectionHeaders[Idx].SizeOfRawData; - *StabStringsBase = (void *)((char *) FileData + PESectionHeaders[Idx].PointerToRawData); - } - } - - return 0; -} - -static void -IterateStabs(ULONG StabSymbolsLength, void *StabSymbolsBase, - ULONG StabStringsLength, void *StabStringsBase, - ULONG_PTR ImageBase, PIMAGE_FILE_HEADER PEFileHeader, - PIMAGE_SECTION_HEADER PESectionHeaders) -{ - PSTAB_ENTRY e; - ULONG Count, i; - - e = StabSymbolsBase; - Count = StabSymbolsLength / sizeof(STAB_ENTRY); - if (Count == 0) /* No symbol info */ - return; - - printf ( "type,other,desc,value,str\n" ); - for (i = 0; i < Count; i++) - { - printf ( "%s,%lu(0x%x),%lu(0x%x),%lu(0x%x),%s\n", - stab_type_name(e[i].n_type), - e[i].n_other, - e[i].n_other, - e[i].n_desc, - e[i].n_desc, - e[i].n_value, - e[i].n_value, - (char *) StabStringsBase + e[i].n_strx ); - } -} - -int main(int argc, char* argv[]) -{ - PIMAGE_DOS_HEADER PEDosHeader; - PIMAGE_FILE_HEADER PEFileHeader; - PIMAGE_OPTIONAL_HEADER PEOptHeader; - PIMAGE_SECTION_HEADER PESectionHeaders; - ULONG ImageBase; - void *StabBase; - ULONG StabsLength; - void *StabStringBase; - ULONG StabStringsLength; - char* path1; - size_t FileSize; - void *FileData; - - if (2 != argc) - { - fprintf(stderr, "Usage: dumpstabs \n"); - exit(1); - } - - path1 = convert_path(argv[1]); - - FileData = load_file ( path1, &FileSize ); - if ( !FileData ) - { - fprintf ( stderr, "An error occured loading '%s'\n", path1 ); - exit(1); - } - - /* Check if MZ header exists */ - PEDosHeader = (PIMAGE_DOS_HEADER) FileData; - if (PEDosHeader->e_magic != IMAGE_DOS_MAGIC || PEDosHeader->e_lfanew == 0L) - { - perror("Input file is not a PE image.\n"); - free(FileData); - exit(1); - } - - /* Locate PE file header */ - /* sizeof(ULONG) = sizeof(MAGIC) */ - PEFileHeader = (PIMAGE_FILE_HEADER)((char *) FileData + PEDosHeader->e_lfanew + sizeof(ULONG)); - - /* Locate optional header */ - assert(sizeof(ULONG) == 4); - PEOptHeader = (PIMAGE_OPTIONAL_HEADER)(PEFileHeader + 1); - ImageBase = PEOptHeader->ImageBase; - - /* Locate PE section headers */ - PESectionHeaders = (PIMAGE_SECTION_HEADER)((char *) PEOptHeader + PEFileHeader->SizeOfOptionalHeader); - - if (GetStabInfo(FileData, PEFileHeader, PESectionHeaders, &StabsLength, &StabBase, - &StabStringsLength, &StabStringBase)) - { - free(FileData); - exit(1); - } - - IterateStabs( StabsLength, StabBase, StabStringsLength, StabStringBase, - ImageBase, PEFileHeader, PESectionHeaders); - - free(FileData); - - return 0; -} diff --git a/reactos/tools/gendib/CMakeLists.txt b/reactos/tools/gendib/CMakeLists.txt deleted file mode 100644 index b78ad2a51d4..00000000000 --- a/reactos/tools/gendib/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ - -add_executable(gendib gendib.c) diff --git a/reactos/tools/gendib/gendib.c b/reactos/tools/gendib/gendib.c deleted file mode 100644 index c48d9402fe6..00000000000 --- a/reactos/tools/gendib/gendib.c +++ /dev/null @@ -1,1037 +0,0 @@ -/* - * Copyright 2005 Ge van Geldorp (gvg@reactos.com). - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ -/* - * This is a code generator. It outputs C code which can be compiled using the - * standard build tools. It is used to generate code for the DIB Blt routines. - * There are a lot of possible Blt routines (256 rop codes, for 6 different - * bit depths). It is possible to use a generic Blt routine which handles all - * rop codes and all depths. The drawback is that it will be relatively slow. - * The other extreme is to write (generate) a separate Blt routine for each - * rop code/depth combination. This will result in a extremely large amount - * of code. So, we opt for something in between: named rops get their own - * routine, unnamed rops are handled by a generic routine. - * Basically, what happens is that generic code which looks like: - * - * for (...) - * { - * if (CondA) - * { - * doSomethingA; - * } - * for (...) - * { - * if (CondB) - * { - * doSomethingB; - * } - * else - * { - * doSomethingElseB; - * } - * } - * } - * - * is specialized for named rops to look like: - * - * if (condC) - * { - * if (condD) - * { - * for (...) - * { - * for (...) - * { - * pumpSomeBytes; - * } - * } - * } - * else - * { - * for (...) - * { - * for (...) - * { - * pumpSomeBytesSlightlyDifferentE; - * } - * } - * } - * } - * - * i.e. we make the inner loops as tight as possible. - * Another optimization is to try to load/store 32 alligned bits at a time from - * video memory. Accessing video memory from the CPU is slooooooow, so let's - * try to do this as little as possible, even if that means we have to do some - * extra operations using main memory. - */ - -#include -#include -#include -#include - -#define NDEBUG - -#define USES_DEST(RopCode) ((((RopCode) & 0xaa) >> 1) != ((RopCode) & 0x55)) -#define USES_SOURCE(RopCode) ((((RopCode) & 0xcc) >> 2) != ((RopCode) & 0x33)) -#define USES_PATTERN(RopCode) ((((RopCode) & 0xf0) >> 4) != ((RopCode) & 0x0f)) - -#ifdef NDEBUG -#define MARK(Out) -#else -#define MARK(Out) Output((Out), "/* Generated by %s line %d*/\n", \ - __FUNCTION__, __LINE__); -#endif - -#define ROPCODE_BLACKNESS 0x00 -#define ROPCODE_NOTSRCERASE 0x11 -#define ROPCODE_NOTSRCCOPY 0x33 -#define ROPCODE_SRCERASE 0x44 -#define ROPCODE_DSTINVERT 0x55 -#define ROPCODE_PATINVERT 0x5a -#define ROPCODE_SRCINVERT 0x66 -#define ROPCODE_SRCAND 0x88 -#define ROPCODE_NOOP 0xaa -#define ROPCODE_MERGEPAINT 0xbb -#define ROPCODE_MERGECOPY 0xc0 -#define ROPCODE_SRCCOPY 0xcc -#define ROPCODE_SRCPAINT 0xee -#define ROPCODE_PATCOPY 0xf0 -#define ROPCODE_PATPAINT 0xfb -#define ROPCODE_WHITENESS 0xff - -#define ROPCODE_GENERIC 256 /* Special case */ - -typedef struct _ROPINFO -{ - unsigned RopCode; - const char *Name; - const char *Operation; - int UsesDest; - int UsesSource; - int UsesPattern; -} -ROPINFO, *PROPINFO; - -#define FLAG_PATTERNSURFACE 0x01 -#define FLAG_TRIVIALXLATE 0x02 -#define FLAG_BOTTOMUP 0x04 -#define FLAG_FORCENOUSESSOURCE 0x08 -#define FLAG_FORCERAWSOURCEAVAIL 0x10 - -static PROPINFO -FindRopInfo(unsigned RopCode) -{ - static ROPINFO KnownCodes[] = - { - { ROPCODE_BLACKNESS, "BLACKNESS", "0", 0, 0, 0 }, - { ROPCODE_NOTSRCERASE, "NOTSRCERASE","~(D | S)", 1, 1, 0 }, - { ROPCODE_NOTSRCCOPY, "NOTSRCCOPY", "~S", 0, 1, 0 }, - { ROPCODE_SRCERASE, "SRCERASE", "(~D) & S", 1, 1, 0 }, - { ROPCODE_DSTINVERT, "DSTINVERT", "~D", 1, 0, 0 }, - { ROPCODE_PATINVERT, "PATINVERT", "D ^ P", 1, 0, 1 }, - { ROPCODE_SRCINVERT, "SRCINVERT", "D ^ S", 1, 1, 0 }, - { ROPCODE_SRCAND, "SRCAND", "D & S", 1, 1, 0 }, - { ROPCODE_NOOP, "NOOP", "D", 1, 0, 0 }, - { ROPCODE_MERGEPAINT, "MERGEPAINT", "D | (~S)", 1, 1, 0 }, - { ROPCODE_MERGECOPY, "MERGECOPY", "S & P", 0, 1, 1 }, - { ROPCODE_SRCCOPY, "SRCCOPY", "S", 0, 1, 0 }, - { ROPCODE_SRCPAINT, "SRCPAINT", "D | S", 1, 1, 0 }, - { ROPCODE_PATCOPY, "PATCOPY", "P", 0, 0, 1 }, - { ROPCODE_PATPAINT, "PATPAINT", "D | (~S) | P", 1, 1, 1 }, - { ROPCODE_WHITENESS, "WHITENESS", "0xffffffff", 0, 0, 0 }, - { ROPCODE_GENERIC, NULL, NULL, 1, 1, 1 } - }; - unsigned Index; - - for (Index = 0; Index < sizeof(KnownCodes) / sizeof(KnownCodes[0]); Index++) - { - if (RopCode == KnownCodes[Index].RopCode) - { - return KnownCodes + Index; - } - } - - return NULL; -} - -static void -Output(FILE *Out, const char *Fmt, ...) -{ - static unsigned Indent = 0; - static int AtBOL = 1; - unsigned n; - va_list Args; - - if (strchr(Fmt, '}')) - { - Indent -= 4; - } - - if (AtBOL) - { - for (n = 0; n < Indent; n++) - { - putc(' ', Out); - } - AtBOL = 0; - } - - va_start(Args, Fmt); - vfprintf(Out, Fmt, Args); - va_end(Args); - - if (strchr(Fmt, '{')) - { - Indent += 4; - } - - AtBOL = '\n' == Fmt[strlen(Fmt) - 1]; -} - -static void -PrintRoutineName(FILE *Out, unsigned Bpp, PROPINFO RopInfo) -{ - if (NULL != RopInfo && ROPCODE_GENERIC != RopInfo->RopCode) - { - Output(Out, "DIB_%uBPP_BitBlt_%s", Bpp, RopInfo->Name); - } - else - { - Output(Out, "DIB_%uBPP_BitBlt_Generic", Bpp); - } -} - -static void -CreateShiftTables(FILE *Out) -{ - Output(Out, "\n"); - Output(Out, "static unsigned Shift1Bpp[] =\n"); - Output(Out, "{\n"); - Output(Out, "0,\n"); - Output(Out, "24, 25, 26, 27, 28, 29, 30, 31, 16, 17, 18, 19, 20, 21, 22, 23,\n"); - Output(Out, "8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7\n"); - Output(Out, "};\n"); - Output(Out, "static unsigned Shift4Bpp[] =\n"); - Output(Out, "{\n"); - Output(Out, "0,\n"); - Output(Out, "24, 28, 16, 20, 8, 12, 0, 4\n"); - Output(Out, "};\n"); - Output(Out, "static unsigned Shift8Bpp[] =\n"); - Output(Out, "{\n"); - Output(Out, "0,\n"); - Output(Out, "24, 16, 8, 0\n"); - Output(Out, "};\n"); - Output(Out, "static unsigned Shift16Bpp[] =\n"); - Output(Out, "{\n"); - Output(Out, "0,\n"); - Output(Out, "16, 0\n"); - Output(Out, "};\n"); -} - -static void -CreateOperation(FILE *Out, unsigned Bpp, PROPINFO RopInfo, unsigned SourceBpp, - unsigned Bits) -{ - const char *Cast; - const char *Dest; - const char *Template; - - MARK(Out); - if (32 == Bits) - { - Cast = ""; - Dest = "*DestPtr"; - } - else if (16 == Bpp) - { - Cast = "(USHORT) "; - Dest = "*((PUSHORT) DestPtr)"; - } - else - { - Cast = "(UCHAR) "; - Dest = "*((PUCHAR) DestPtr)"; - } - Output(Out, "%s = ", Dest); - if (ROPCODE_GENERIC == RopInfo->RopCode) - { - Output(Out, "%sDIB_DoRop(BltInfo->Rop4, %s, Source, Pattern)", - Cast, Dest); - } - else - { - Template = RopInfo->Operation; - while ('\0' != *Template) - { - switch(*Template) - { - case 'S': - Output(Out, "%sSource", Cast); - break; - case 'P': - Output(Out, "%sPattern", Cast); - break; - case 'D': - Output(Out, "%s", Dest); - break; - default: - Output(Out, "%c", *Template); - break; - } - Template++; - } - } -} - -static void -CreateBase(FILE *Out, int Source, int Flags, unsigned Bpp) -{ - const char *What = (Source ? "Source" : "Dest"); - - MARK(Out); - Output(Out, "%sBase = (char *) BltInfo->%sSurface->pvScan0 +\n", What, What); - if (0 == (Flags & FLAG_BOTTOMUP)) - { - if (Source) - { - Output(Out, " BltInfo->SourcePoint.y *\n"); - } - else - { - Output(Out, " BltInfo->DestRect.top *\n"); - } - } - else - { - if (Source) - { - Output(Out, " (BltInfo->SourcePoint.y +\n"); - Output(Out, " BltInfo->DestRect.bottom -\n"); - Output(Out, " BltInfo->DestRect.top - 1) *\n"); - } - else - { - Output(Out, " (BltInfo->DestRect.bottom - 1) *\n"); - } - } - Output(Out, " %sBltInfo->%sSurface->lDelta +\n", - Source ? " " : "", What); - if (Source) - { - Output(Out, " %sBltInfo->SourcePoint.x", - 16 < Bpp ? "" : "(("); - } - else - { - Output(Out, " BltInfo->DestRect.left"); - } - if (Bpp < 8) - { - Output(Out, " / %u", 8 / Bpp); - } - else if (8 < Bpp) - { - Output(Out, " * %u", Bpp / 8); - } - if (Source && Bpp <= 16) - { - Output(Out, ") & ~ 0x3)"); - } - Output(Out, ";\n", Bpp / 8); - if (Source && Bpp <= 16) - { - Output(Out, "BaseSourcePixels = %u - (BltInfo->SourcePoint.x & 0x%x);\n", - 32 / Bpp, 32 / Bpp - 1); - } -} - -static void -CreateGetSource(FILE *Out, unsigned Bpp, PROPINFO RopInfo, int Flags, - unsigned SourceBpp, unsigned Shift) -{ - const char *AssignOp; - const char *Before; - char After[8]; - - MARK(Out); - if (0 == Shift) - { - AssignOp = "="; - Before = ""; - After[0] = '\0'; - } - else - { - AssignOp = "|="; - Before = "("; - sprintf(After, ") << %u", Shift); - } - - if (ROPCODE_SRCCOPY != RopInfo->RopCode || - 0 == (Flags & FLAG_TRIVIALXLATE) || Bpp != SourceBpp) - { - if (0 == (Flags & FLAG_FORCERAWSOURCEAVAIL) && SourceBpp <= 16) - { - Output(Out, "if (0 == SourcePixels)\n"); - Output(Out, "{\n"); - Output(Out, "RawSource = *SourcePtr++;\n"); - Output(Out, "SourcePixels = %u;\n", 32 / SourceBpp); - Output(Out, "}\n"); - } - Output(Out, "Source %s (%s", AssignOp, Before); - if (0 == (Flags & FLAG_TRIVIALXLATE)) - { - Output(Out, "XLATEOBJ_iXlate(BltInfo->XlateSourceToDest, %s", - 16 < SourceBpp ? "" : "("); - } - if (32 == SourceBpp) - { - Output(Out, "*SourcePtr++"); - } - else if (24 == SourceBpp) - { - Output(Out, "*(PUSHORT) SourcePtr + (*((PBYTE) SourcePtr + 2) << 16)"); - } - else - { - Output(Out, "RawSource >> Shift%uBpp[SourcePixels]", SourceBpp); - } - if (0 == (Flags & FLAG_TRIVIALXLATE)) - { - if (16 < SourceBpp) - { - Output(Out, ")"); - } - else - { - Output(Out, ") & 0x%x)", (1 << SourceBpp) - 1); - } - } - if (32 == Bpp) - { - Output(Out, ")%s;\n", After); - } - else - { - Output(Out, " & 0x%x)%s;\n", (1 << Bpp) - 1, After); - } - if (SourceBpp <= 16) - { - Output(Out, "SourcePixels--;\n"); - } - else if (24 == SourceBpp) - { - Output(Out, "SourcePtr = (PULONG)((char *) SourcePtr + 3);\n"); - } - } -} - -static void -CreateCounts(FILE *Out, unsigned Bpp) -{ - MARK(Out); - if (32 != Bpp) - { - if (8 < Bpp) - { - Output(Out, "LeftCount = ((ULONG_PTR) DestBase >> 1) & 0x01;\n"); - } - else - { - Output(Out, "LeftCount = (ULONG_PTR) DestBase & 0x03;\n"); - Output(Out, "if ((ULONG)(BltInfo->DestRect.right - BltInfo->DestRect.left) < " - "LeftCount)\n"); - Output(Out, "{\n"); - Output(Out, "LeftCount = BltInfo->DestRect.right - " - "BltInfo->DestRect.left;\n"); - Output(Out, "}\n"); - } - Output(Out, "CenterCount = (BltInfo->DestRect.right - BltInfo->DestRect.left -\n"); - Output(Out, " LeftCount) / %u;\n", 32 / Bpp); - Output(Out, "RightCount = (BltInfo->DestRect.right - BltInfo->DestRect.left -\n"); - Output(Out, " LeftCount - %u * CenterCount);\n", 32 / Bpp); - } - else - { - Output(Out, "CenterCount = BltInfo->DestRect.right - BltInfo->DestRect.left;\n"); - } -} - -static void -CreateSetSinglePixel(FILE *Out, unsigned Bpp, PROPINFO RopInfo, int Flags, - unsigned SourceBpp) -{ - if (RopInfo->UsesSource && 0 == (Flags & FLAG_FORCENOUSESSOURCE)) - { - CreateGetSource(Out, Bpp, RopInfo, Flags, SourceBpp, 0); - MARK(Out); - } - if (RopInfo->UsesPattern && 0 != (Flags & FLAG_PATTERNSURFACE)) - { - Output(Out, "Pattern = DIB_GetSourceIndex(BltInfo->PatternSurface, PatternX, PatternY);\n"); - Output(Out, "if (BltInfo->PatternSurface->sizlBitmap.cx <= ++PatternX)\n"); - Output(Out, "{\n"); - Output(Out, "PatternX -= BltInfo->PatternSurface->sizlBitmap.cx;\n"); - Output(Out, "}\n"); - } - if ((RopInfo->UsesSource && 0 == (Flags & FLAG_FORCENOUSESSOURCE) && - Bpp != SourceBpp) || - (RopInfo->UsesPattern && 0 != (Flags & FLAG_PATTERNSURFACE))) - { - Output(Out, "\n"); - } - CreateOperation(Out, Bpp, RopInfo, SourceBpp, 16); - Output(Out, ";\n"); - MARK(Out); - Output(Out, "\n"); - Output(Out, "DestPtr = (PULONG)((char *) DestPtr + %u);\n", Bpp / 8); -} - -static void -CreateBitCase(FILE *Out, unsigned Bpp, PROPINFO RopInfo, int Flags, - unsigned SourceBpp) -{ - unsigned Partial; - - MARK(Out); - if (RopInfo->UsesSource) - { - if (0 == (Flags & FLAG_FORCENOUSESSOURCE)) - { - CreateBase(Out, 1, Flags, SourceBpp); - } - CreateBase(Out, 0, Flags, Bpp); - CreateCounts(Out, Bpp); - MARK(Out); - } - if (RopInfo->UsesPattern && 0 != (Flags & FLAG_PATTERNSURFACE)) - { - if (0 == (Flags & FLAG_BOTTOMUP)) - { - Output(Out, "PatternY = (BltInfo->DestRect.top - BltInfo->BrushOrigin.y) %%\n"); - Output(Out, " BltInfo->PatternSurface->sizlBitmap.cy;\n"); - } - else - { - Output(Out, "PatternY = (BltInfo->DestRect.bottom - 1 -\n"); - Output(Out, " BltInfo->BrushOrigin.y) %%\n"); - Output(Out, " BltInfo->PatternSurface->sizlBitmap.cy;\n"); - } - } - if (ROPCODE_SRCCOPY == RopInfo->RopCode && - 0 != (Flags & FLAG_TRIVIALXLATE) && Bpp == SourceBpp) - { - Output(Out, "CenterCount = %u * (BltInfo->DestRect.right -\n", Bpp >> 3); - Output(Out, " BltInfo->DestRect.left);\n"); - } - if (RopInfo->UsesPattern && 0 != (Flags & FLAG_PATTERNSURFACE)) - { - Output(Out, "BasePatternX = (BltInfo->DestRect.left - BltInfo->BrushOrigin.x) %%\n"); - Output(Out, " BltInfo->PatternSurface->sizlBitmap.cx;\n"); - } - - Output(Out, "for (LineIndex = 0; LineIndex < LineCount; LineIndex++)\n"); - Output(Out, "{\n"); - if (ROPCODE_SRCCOPY != RopInfo->RopCode || - 0 == (Flags & FLAG_TRIVIALXLATE) || Bpp != SourceBpp) - { - if (RopInfo->UsesSource && 0 == (Flags & FLAG_FORCENOUSESSOURCE)) - { - Output(Out, "SourcePtr = (PULONG) SourceBase;\n"); - if (SourceBpp <= 16) - { - Output(Out, "RawSource = *SourcePtr++;\n"); - Output(Out, "SourcePixels = BaseSourcePixels;\n"); - } - } - Output(Out, "DestPtr = (PULONG) DestBase;\n"); - } - - if (RopInfo->UsesPattern && 0 != (Flags & FLAG_PATTERNSURFACE)) - { - Output(Out, "PatternX = BasePatternX;\n"); - } - - if (ROPCODE_SRCCOPY == RopInfo->RopCode && - 0 != (Flags & FLAG_TRIVIALXLATE) && Bpp == SourceBpp) - { - Output(Out, "RtlMoveMemory(DestBase, SourceBase, CenterCount);\n"); - Output(Out, "\n"); - } - else - { - Output(Out, "\n"); - if (32 != Bpp) - { - if (16 == Bpp) - { - Output(Out, "if (0 != LeftCount)\n"); - } - else - { - Output(Out, "for (i = 0; i < LeftCount; i++)\n"); - } - Output(Out, "{\n"); - CreateSetSinglePixel(Out, Bpp, RopInfo, - (16 == Bpp ? Flags | FLAG_FORCERAWSOURCEAVAIL : - Flags), SourceBpp); - MARK(Out); - Output(Out, "}\n"); - Output(Out, "\n"); - } - Output(Out, "for (i = 0; i < CenterCount; i++)\n"); - Output(Out, "{\n"); - if (RopInfo->UsesSource && 0 == (Flags & FLAG_FORCENOUSESSOURCE)) - { - for (Partial = 0; Partial < 32 / Bpp; Partial++) - { - CreateGetSource(Out, Bpp, RopInfo, Flags, SourceBpp, - Partial * Bpp); - MARK(Out); - } - Output(Out, "\n"); - } - if (RopInfo->UsesPattern && 0 != (Flags & FLAG_PATTERNSURFACE)) - { - for (Partial = 0; Partial < 32 / Bpp; Partial++) - { - if (0 == Partial) - { - Output(Out, "Pattern = DIB_GetSourceIndex(BltInfo->PatternSurface, PatternX, PatternY);\n"); - } - else - { - Output(Out, "Pattern |= DIB_GetSourceIndex(BltInfo->PatternSurface, PatternX, PatternY) << %u;\n", Partial * Bpp); - } - Output(Out, "if (BltInfo->PatternSurface->sizlBitmap.cx <= ++PatternX)\n"); - Output(Out, "{\n"); - Output(Out, "PatternX -= BltInfo->PatternSurface->sizlBitmap.cx;\n"); - Output(Out, "}\n"); - } - Output(Out, "\n"); - } - CreateOperation(Out, Bpp, RopInfo, SourceBpp, 32); - Output(Out, ";\n"); - MARK(Out); - Output(Out, "\n"); - Output(Out, "DestPtr++;\n"); - Output(Out, "}\n"); - Output(Out, "\n"); - if (32 != Bpp) - { - if (16 == Bpp) - { - Output(Out, "if (0 != RightCount)\n"); - } - else - { - Output(Out, "for (i = 0; i < RightCount; i++)\n"); - } - Output(Out, "{\n"); - CreateSetSinglePixel(Out, Bpp, RopInfo, Flags, SourceBpp); - MARK(Out); - Output(Out, "}\n"); - Output(Out, "\n"); - } - if (RopInfo->UsesPattern && 0 != (Flags & FLAG_PATTERNSURFACE)) - { - if (0 == (Flags & FLAG_BOTTOMUP)) - { - Output(Out, "if (BltInfo->PatternSurface->sizlBitmap.cy <= ++PatternY)\n"); - Output(Out, "{\n"); - Output(Out, "PatternY -= BltInfo->PatternSurface->sizlBitmap.cy;\n"); - Output(Out, "}\n"); - } - else - { - Output(Out, "if (0 == PatternY--)\n"); - Output(Out, "{\n"); - Output(Out, "PatternY = BltInfo->PatternSurface->sizlBitmap.cy - 1;\n"); - Output(Out, "}\n"); - } - } - } - if (RopInfo->UsesSource && 0 == (Flags & FLAG_FORCENOUSESSOURCE)) - { - Output(Out, "SourceBase %c= BltInfo->SourceSurface->lDelta;\n", - 0 == (Flags & FLAG_BOTTOMUP) ? '+' : '-'); - } - Output(Out, "DestBase %c= BltInfo->DestSurface->lDelta;\n", - 0 == (Flags & FLAG_BOTTOMUP) ? '+' : '-'); - Output(Out, "}\n"); -} - -static void -CreateActionBlock(FILE *Out, unsigned Bpp, PROPINFO RopInfo, - int Flags) -{ - static unsigned SourceBpp[ ] = - { 1, 4, 8, 16, 24, 32 }; - unsigned BppIndex; - - MARK(Out); - if (RopInfo->UsesSource) - { - if (ROPCODE_GENERIC == RopInfo->RopCode) - { - Output(Out, "if (UsesSource)\n"); - Output(Out, "{\n"); - } - Output(Out, "switch (BltInfo->SourceSurface->iBitmapFormat)\n"); - Output(Out, "{\n"); - for (BppIndex = 0; - BppIndex < sizeof(SourceBpp) / sizeof(unsigned); - BppIndex++) - { - Output(Out, "case BMF_%uBPP:\n", SourceBpp[BppIndex]); - Output(Out, "{\n"); - if (Bpp == SourceBpp[BppIndex]) - { - Output(Out, "if (NULL == BltInfo->XlateSourceToDest ||\n"); - Output(Out, " 0 != (BltInfo->XlateSourceToDest->flXlate & XO_TRIVIAL))\n"); - Output(Out, "{\n"); - Output(Out, "if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)\n"); - Output(Out, "{\n"); - CreateBitCase(Out, Bpp, RopInfo, - Flags | FLAG_TRIVIALXLATE, - SourceBpp[BppIndex]); - MARK(Out); - Output(Out, "}\n"); - Output(Out, "else\n"); - Output(Out, "{\n"); - CreateBitCase(Out, Bpp, RopInfo, - Flags | FLAG_BOTTOMUP | FLAG_TRIVIALXLATE, - SourceBpp[BppIndex]); - MARK(Out); - Output(Out, "}\n"); - Output(Out, "}\n"); - Output(Out, "else\n"); - Output(Out, "{\n"); - Output(Out, "if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)\n"); - Output(Out, "{\n"); - CreateBitCase(Out, Bpp, RopInfo, Flags, SourceBpp[BppIndex]); - MARK(Out); - Output(Out, "}\n"); - Output(Out, "else\n"); - Output(Out, "{\n"); - CreateBitCase(Out, Bpp, RopInfo, - Flags | FLAG_BOTTOMUP, - SourceBpp[BppIndex]); - MARK(Out); - Output(Out, "}\n"); - Output(Out, "}\n"); - } - else - { - CreateBitCase(Out, Bpp, RopInfo, Flags, - SourceBpp[BppIndex]); - MARK(Out); - } - Output(Out, "break;\n"); - Output(Out, "}\n"); - } - Output(Out, "}\n"); - if (ROPCODE_GENERIC == RopInfo->RopCode) - { - Output(Out, "}\n"); - Output(Out, "else\n"); - Output(Out, "{\n"); - CreateBitCase(Out, Bpp, RopInfo, Flags | FLAG_FORCENOUSESSOURCE, 0); - MARK(Out); - Output(Out, "}\n"); - } - } - else - { - CreateBitCase(Out, Bpp, RopInfo, Flags, 0); - } -} - -static void -CreatePrimitive(FILE *Out, unsigned Bpp, PROPINFO RopInfo) -{ - int First; - unsigned Partial; - - MARK(Out); - Output(Out, "\n"); - Output(Out, "static void\n"); - PrintRoutineName(Out, Bpp, RopInfo); - Output(Out, "(PBLTINFO BltInfo)\n"); - Output(Out, "{\n"); - if (ROPCODE_BLACKNESS == RopInfo->RopCode) - { - Output(Out, "DIB_%uBPP_ColorFill(BltInfo->DestSurface, " - "&BltInfo->DestRect, 0x0);\n", Bpp); - } - else if (ROPCODE_WHITENESS == RopInfo->RopCode) - { - Output(Out, "DIB_%uBPP_ColorFill(BltInfo->DestSurface, " - "&BltInfo->DestRect, ~0);\n", Bpp); - } - else if (ROPCODE_NOOP == RopInfo->RopCode) - { - Output(Out, "return;\n"); - } - else - { - Output(Out, "ULONG LineIndex, LineCount;\n"); - Output(Out, "ULONG i;\n"); - if (RopInfo->UsesPattern) - { - Output(Out, "LONG PatternX =0, PatternY = 0, BasePatternX = 0;\n"); - } - First = 1; - if (RopInfo->UsesSource) - { - Output(Out, "ULONG Source = 0"); - First = 0; - } - if (RopInfo->UsesPattern) - { - Output(Out, "%s Pattern = 0", First ? "ULONG" : ","); - First = 0; - } - if (! First) - { - Output(Out, ";\n"); - } - Output(Out, "char *DestBase;\n"); - Output(Out, "PULONG DestPtr;\n"); - if (RopInfo->UsesSource) - { - Output(Out, "char *SourceBase;\n"); - Output(Out, "PULONG SourcePtr;\n"); - Output(Out, "ULONG RawSource;\n"); - Output(Out, "unsigned SourcePixels, BaseSourcePixels;\n"); - } - if (32 == Bpp) - { - Output(Out, "ULONG CenterCount;\n"); - } - else - { - Output(Out, "ULONG LeftCount, CenterCount, RightCount;\n"); - } - if (ROPCODE_GENERIC == RopInfo->RopCode) - { - Output(Out, "BOOLEAN UsesSource, UsesPattern;\n"); - Output(Out, "\n"); - Output(Out, "UsesSource = ROP4_USES_SOURCE(BltInfo->Rop4);\n"); - Output(Out, "UsesPattern = ROP4_USES_PATTERN(BltInfo->Rop4);\n"); - } - Output(Out, "\n"); - if (! RopInfo->UsesSource) - { - CreateBase(Out, 0, 0, Bpp); - CreateCounts(Out, Bpp); - MARK(Out); - } - Output(Out, "LineCount = BltInfo->DestRect.bottom - BltInfo->DestRect.top;\n"); - - Output(Out, "\n"); - if (RopInfo->UsesPattern) - { - if (ROPCODE_GENERIC == RopInfo->RopCode) - { - Output(Out, "if (UsesPattern && NULL != BltInfo->PatternSurface)\n"); - } - else - { - Output(Out, "if (NULL != BltInfo->PatternSurface)\n"); - } - Output(Out, "{\n"); - CreateActionBlock(Out, Bpp, RopInfo, FLAG_PATTERNSURFACE); - MARK(Out); - Output(Out, "}\n"); - Output(Out, "else\n"); - Output(Out, "{\n"); - if (ROPCODE_GENERIC == RopInfo->RopCode) - { - Output(Out, "if (UsesPattern)\n"); - Output(Out, "{\n"); - } - for (Partial = 0; Partial < 32 / Bpp; Partial++) - { - if (0 == Partial) - { - Output(Out, "if (!BltInfo->Brush)\n"); - Output(Out, "{\n"); - Output(Out, "Pattern = 0;\n"); - Output(Out, "}\n"); - Output(Out, "else\n"); - Output(Out, "{\n"); - Output(Out, "Pattern = BltInfo->Brush->iSolidColor"); - } - else - { - Output(Out, " (BltInfo->Brush->iSolidColor << %d)", - Partial * Bpp); - } - if (32 / Bpp <= Partial + 1) - { - Output(Out, ";\n"); - Output(Out, "}\n"); - } - else - { - Output(Out, " |\n"); - } - } - if (ROPCODE_PATINVERT == RopInfo->RopCode || - ROPCODE_MERGECOPY == RopInfo->RopCode) - { - Output(Out, "if (0 == Pattern)\n"); - Output(Out, "{\n"); - if (ROPCODE_MERGECOPY == RopInfo->RopCode) - { - Output(Out, "DIB_%uBPP_ColorFill(BltInfo->DestSurface, " - "&BltInfo->DestRect, 0x0);\n", Bpp); - } - Output(Out, "return;\n"); - Output(Out, "}\n"); - } - else if (ROPCODE_PATPAINT == RopInfo->RopCode) - { - Output(Out, "if ((~0) == Pattern)\n"); - Output(Out, "{\n"); - Output(Out, "DIB_%uBPP_ColorFill(BltInfo->DestSurface, " - "&BltInfo->DestRect, ~0);\n", Bpp); - Output(Out, "return;\n"); - Output(Out, "}\n"); - } - if (ROPCODE_GENERIC == RopInfo->RopCode) - { - Output(Out, "}\n"); - } - CreateActionBlock(Out, Bpp, RopInfo, 0); - MARK(Out); - Output(Out, "}\n"); - } - else - { - CreateActionBlock(Out, Bpp, RopInfo, 0); - MARK(Out); - } - } - Output(Out, "}\n"); -} - -static void -CreateTable(FILE *Out, unsigned Bpp) -{ - unsigned RopCode; - - MARK(Out); - Output(Out, "\n"); - Output(Out, "static void (*PrimitivesTable[256])(PBLTINFO) =\n"); - Output(Out, "{\n"); - for (RopCode = 0; RopCode < 256; RopCode++) - { - PrintRoutineName(Out, Bpp, FindRopInfo(RopCode)); - if (RopCode < 255) - { - Output(Out, ","); - } - Output(Out, "\n"); - } - Output(Out, "};\n"); -} - -static void -CreateBitBlt(FILE *Out, unsigned Bpp) -{ - MARK(Out); - Output(Out, "\n"); - Output(Out, "BOOLEAN\n"); - Output(Out, "DIB_%uBPP_BitBlt(PBLTINFO BltInfo)\n", Bpp); - Output(Out, "{\n"); - Output(Out, "PrimitivesTable[BltInfo->Rop4 & 0xff](BltInfo);\n"); - Output(Out, "\n"); - Output(Out, "return TRUE;\n"); - Output(Out, "}\n"); -} - -static void -Generate(char *OutputDir, unsigned Bpp) -{ - FILE *Out; - unsigned RopCode; - PROPINFO RopInfo; - char *FileName; - - FileName = malloc(strlen(OutputDir) + 12); - if (NULL == FileName) - { - fprintf(stderr, "Out of memory\n"); - exit(1); - } - strcpy(FileName, OutputDir); - if ('/' != FileName[strlen(FileName) - 1]) - { - strcat(FileName, "/"); - } - sprintf(FileName + strlen(FileName), "dib%ugen.c", Bpp); - - Out = fopen(FileName, "w"); - free(FileName); - if (NULL == Out) - { - perror("Error opening output file"); - exit(1); - } - - MARK(Out); - Output(Out, "/* This is a generated file. Please do not edit */\n"); - Output(Out, "\n"); - Output(Out, "#include \n"); - CreateShiftTables(Out); - - RopInfo = FindRopInfo(ROPCODE_GENERIC); - CreatePrimitive(Out, Bpp, RopInfo); - for (RopCode = 0; RopCode < 256; RopCode++) - { - RopInfo = FindRopInfo(RopCode); - if (NULL != RopInfo) - { - CreatePrimitive(Out, Bpp, RopInfo); - } - } - CreateTable(Out, Bpp); - CreateBitBlt(Out, Bpp); - - fclose(Out); -} - -int -main(int argc, char *argv[]) -{ - unsigned Index; - static unsigned DestBpp[] = - { 8, 16, 32 }; - - if (argc < 2) - return 0; - - for (Index = 0; Index < sizeof(DestBpp) / sizeof(DestBpp[0]); Index++) - { - Generate(argv[1], DestBpp[Index]); - } - - return 0; -} diff --git a/reactos/tools/geninc/CMakeLists.txt b/reactos/tools/geninc/CMakeLists.txt deleted file mode 100644 index dedf28f4b54..00000000000 --- a/reactos/tools/geninc/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ - -add_executable(geninc geninc.c) diff --git a/reactos/tools/geninc/data.c b/reactos/tools/geninc/data.c deleted file mode 100644 index b53807109d3..00000000000 --- a/reactos/tools/geninc/data.c +++ /dev/null @@ -1,1567 +0,0 @@ -#undef __MSVCRT__ -#include - -/* DDK/IFS/NDK Headers */ -#include -#include -#include -#include -#include -#include - -/* KD Support */ -#define NOEXTAPI -#include -#include -#include - -typedef struct -{ - UCHAR Type; - CHAR Name[60]; - ULONGLONG Value; -} ASMGENDATA; - -#define RAW(x) {0, #x, 0} -#define CONSTANT(name) {1, #name, name} -#define OFFSET(name, struct, member) {1, #name, FIELD_OFFSET(struct, member)} -#define RELOFFSET(name, struct, member, to) {1, #name, FIELD_OFFSET(struct, member) - FIELD_OFFSET(struct, to)} -#define SIZE(name, struct) {1, #name, sizeof(struct)} -#define HEADER(x) {2, x, 0} - -ASMGENDATA Table[] = -{ - -/* PORTABLE CONSTANTS ********************************************************/ - - HEADER("Pointer size"), - SIZE(SizeofPointer, PVOID), - - HEADER("Breakpoints"), - CONSTANT(BREAKPOINT_BREAK), - CONSTANT(BREAKPOINT_PRINT), - CONSTANT(BREAKPOINT_PROMPT), - CONSTANT(BREAKPOINT_LOAD_SYMBOLS), - CONSTANT(BREAKPOINT_UNLOAD_SYMBOLS), - CONSTANT(BREAKPOINT_COMMAND_STRING), - - HEADER("Context Frame Flags"), - CONSTANT(CONTEXT_FULL), - CONSTANT(CONTEXT_CONTROL), - CONSTANT(CONTEXT_INTEGER), - CONSTANT(CONTEXT_SEGMENTS), - CONSTANT(CONTEXT_FLOATING_POINT), - CONSTANT(CONTEXT_DEBUG_REGISTERS), - - HEADER("Exception flags"), - CONSTANT(EXCEPTION_NONCONTINUABLE), - CONSTANT(EXCEPTION_UNWINDING), - CONSTANT(EXCEPTION_EXIT_UNWIND), - CONSTANT(EXCEPTION_STACK_INVALID), - CONSTANT(EXCEPTION_NESTED_CALL), - CONSTANT(EXCEPTION_TARGET_UNWIND), - CONSTANT(EXCEPTION_COLLIDED_UNWIND), - CONSTANT(EXCEPTION_UNWIND), - CONSTANT(EXCEPTION_EXECUTE_HANDLER), - CONSTANT(EXCEPTION_CONTINUE_SEARCH), - CONSTANT(EXCEPTION_CONTINUE_EXECUTION), -#ifdef _X86_ - //CONSTANT(EXCEPTION_CHAIN_END), - //CONSTANT(FIXED_NTVDMSTATE_LINEAR), -#endif - - HEADER("Exception types"), - CONSTANT(ExceptionContinueExecution), - CONSTANT(ExceptionContinueSearch), - CONSTANT(ExceptionNestedException), - CONSTANT(ExceptionCollidedUnwind), - - HEADER("Lock Queue"), - CONSTANT(LOCK_QUEUE_WAIT), - CONSTANT(LOCK_QUEUE_OWNER), - CONSTANT(LockQueueDispatcherLock), - - HEADER("Performance Definitions"), -// CONSTANT(PERF_CONTEXTSWAP_OFFSET), -// CONSTANT(PERF_CONTEXTSWAP_FLAG), -// CONSTANT(PERF_INTERRUPT_OFFSET), -// CONSTANT(PERF_INTERRUPT_FLAG), -// CONSTANT(PERF_PROFILE_OFFSET), -// CONSTANT(PERF_PROFILE_FLAG), -// CONSTANT(PERF_SYSCALL_OFFSET), -// CONSTANT(PERF_SYSCALL_FLAG), -// CONSTANT(PERF_SPINLOCK_OFFSET), -// CONSTANT(PERF_SPINLOCK_FLAG), -// CONSTANT(NTOS_YIELD_MACRO), - - HEADER("Process states"), - CONSTANT(ProcessInMemory), - CONSTANT(ProcessOutOfMemory), - CONSTANT(ProcessInTransition), - - HEADER("Processor mode"), - CONSTANT(KernelMode), - CONSTANT(UserMode), - - HEADER("Status codes"), - CONSTANT(STATUS_ACCESS_VIOLATION), - CONSTANT(STATUS_ASSERTION_FAILURE), - CONSTANT(STATUS_ARRAY_BOUNDS_EXCEEDED), - CONSTANT(STATUS_BAD_COMPRESSION_BUFFER), - CONSTANT(STATUS_BREAKPOINT), - CONSTANT(STATUS_CALLBACK_POP_STACK), - CONSTANT(STATUS_DATATYPE_MISALIGNMENT), - CONSTANT(STATUS_FLOAT_DENORMAL_OPERAND), - CONSTANT(STATUS_FLOAT_DIVIDE_BY_ZERO), - CONSTANT(STATUS_FLOAT_INEXACT_RESULT), - CONSTANT(STATUS_FLOAT_INVALID_OPERATION), - CONSTANT(STATUS_FLOAT_OVERFLOW), - CONSTANT(STATUS_FLOAT_STACK_CHECK), - CONSTANT(STATUS_FLOAT_UNDERFLOW), - CONSTANT(STATUS_FLOAT_MULTIPLE_FAULTS), - CONSTANT(STATUS_FLOAT_MULTIPLE_TRAPS), - CONSTANT(STATUS_GUARD_PAGE_VIOLATION), - CONSTANT(STATUS_ILLEGAL_FLOAT_CONTEXT), - CONSTANT(STATUS_ILLEGAL_INSTRUCTION), - CONSTANT(STATUS_INSTRUCTION_MISALIGNMENT), - CONSTANT(STATUS_INVALID_HANDLE), - CONSTANT(STATUS_INVALID_LOCK_SEQUENCE), - CONSTANT(STATUS_INVALID_OWNER), - CONSTANT(STATUS_INVALID_PARAMETER), - CONSTANT(STATUS_INVALID_PARAMETER_1), - CONSTANT(STATUS_INVALID_SYSTEM_SERVICE), -// CONSTANT(STATUS_INVALID_THREAD), - CONSTANT(STATUS_INTEGER_DIVIDE_BY_ZERO), - CONSTANT(STATUS_INTEGER_OVERFLOW), - CONSTANT(STATUS_IN_PAGE_ERROR), - CONSTANT(STATUS_KERNEL_APC), - CONSTANT(STATUS_LONGJUMP), - CONSTANT(STATUS_NO_CALLBACK_ACTIVE), - CONSTANT(STATUS_NO_EVENT_PAIR), - CONSTANT(STATUS_PRIVILEGED_INSTRUCTION), - CONSTANT(STATUS_SINGLE_STEP), - CONSTANT(STATUS_STACK_BUFFER_OVERRUN), - CONSTANT(STATUS_STACK_OVERFLOW), - CONSTANT(STATUS_SUCCESS), - CONSTANT(STATUS_THREAD_IS_TERMINATING), - CONSTANT(STATUS_TIMEOUT), - CONSTANT(STATUS_UNWIND), - CONSTANT(STATUS_UNWIND_CONSOLIDATE), - CONSTANT(STATUS_USER_APC), - CONSTANT(STATUS_WAKE_SYSTEM_DEBUGGER), - - HEADER("TLS defines"), - CONSTANT(TLS_MINIMUM_AVAILABLE), - CONSTANT(TLS_EXPANSION_SLOTS), - - HEADER("Thread states"), - CONSTANT(Initialized), - CONSTANT(Ready), - CONSTANT(Running), - CONSTANT(Standby), - CONSTANT(Terminated), - CONSTANT(Waiting), - - HEADER("Wait type / reason"), - CONSTANT(WrExecutive), - CONSTANT(WrMutex), - CONSTANT(WrDispatchInt), - CONSTANT(WrQuantumEnd), - CONSTANT(WrEventPair), - CONSTANT(WaitAny), - CONSTANT(WaitAll), - - HEADER("Interrupt object types"), -// CONSTANT(InLevelSensitive), -// CONSTANT(InLatched), - - HEADER("Bug Check Codes"), - CONSTANT(APC_INDEX_MISMATCH), - CONSTANT(INVALID_AFFINITY_SET), - CONSTANT(INVALID_DATA_ACCESS_TRAP), - CONSTANT(IRQL_NOT_GREATER_OR_EQUAL), - CONSTANT(IRQL_NOT_LESS_OR_EQUAL), - CONSTANT(NO_USER_MODE_CONTEXT), - CONSTANT(SPIN_LOCK_ALREADY_OWNED), - CONSTANT(SPIN_LOCK_NOT_OWNED), - CONSTANT(THREAD_NOT_MUTEX_OWNER), - CONSTANT(TRAP_CAUSE_UNKNOWN), - CONSTANT(KMODE_EXCEPTION_NOT_HANDLED), - CONSTANT(KERNEL_APC_PENDING_DURING_EXIT), - CONSTANT(PANIC_STACK_SWITCH), - CONSTANT(DATA_BUS_ERROR), - CONSTANT(INSTRUCTION_BUS_ERROR), - CONSTANT(SYSTEM_EXIT_OWNED_MUTEX), -// CONSTANT(SYSTEM_UNWIND_PREVIOUS_USER), -// CONSTANT(SYSTEM_SERVICE_EXCEPTION), -// CONSTANT(INTERRUPT_UNWIND_ATTEMPTED), -// CONSTANT(INTERRUPT_EXCEPTION_NOT_HANDLED), - CONSTANT(PAGE_FAULT_WITH_INTERRUPTS_OFF), - CONSTANT(IRQL_GT_ZERO_AT_SYSTEM_SERVICE), - CONSTANT(DATA_COHERENCY_EXCEPTION), - CONSTANT(INSTRUCTION_COHERENCY_EXCEPTION), - CONSTANT(HAL1_INITIALIZATION_FAILED), - CONSTANT(UNEXPECTED_KERNEL_MODE_TRAP), - CONSTANT(NMI_HARDWARE_FAILURE), - CONSTANT(SPIN_LOCK_INIT_FAILURE), - CONSTANT(ATTEMPTED_SWITCH_FROM_DPC), -// CONSTANT(MUTEX_ALREADY_OWNED), -// CONSTANT(HARDWARE_INTERRUPT_STORM), -// CONSTANT(RECURSIVE_MACHINE_CHECK), -// CONSTANT(RECURSIVE_NMI), - - HEADER("IRQL"), - CONSTANT(PASSIVE_LEVEL), - CONSTANT(APC_LEVEL), - CONSTANT(DISPATCH_LEVEL), -#ifdef _M_AMD64 - CONSTANT(CLOCK_LEVEL), -#else - CONSTANT(CLOCK1_LEVEL), - CONSTANT(CLOCK2_LEVEL), -#endif - CONSTANT(IPI_LEVEL), - CONSTANT(POWER_LEVEL), - CONSTANT(PROFILE_LEVEL), - CONSTANT(HIGH_LEVEL), - RAW("#ifdef NT_UP"), - {1, "SYNCH_LEVEL", DISPATCH_LEVEL}, - RAW("#else"), - {1, "SYNCH_LEVEL", (IPI_LEVEL - 2)}, - RAW("#endif"), - - HEADER("Stack sizes"), - CONSTANT(KERNEL_STACK_SIZE), - CONSTANT(KERNEL_LARGE_STACK_SIZE), - CONSTANT(KERNEL_LARGE_STACK_COMMIT), -// CONSTANT(DOUBLE_FAULT_STACK_SIZE), -#ifdef _M_AMD64 - CONSTANT(KERNEL_MCA_EXCEPTION_STACK_SIZE), - CONSTANT(NMI_STACK_SIZE), -#endif - - HEADER("Thread flags"), -// CONSTANT(THREAD_FLAGS_CYCLE_PROFILING), -// CONSTANT(THREAD_FLAGS_CYCLE_PROFILING_LOCK_BIT), -// CONSTANT(THREAD_FLAGS_CYCLE_PROFILING_LOCK), -// CONSTANT(THREAD_FLAGS_COUNTER_PROFILING), -// CONSTANT(THREAD_FLAGS_COUNTER_PROFILING_LOCK_BIT), -// CONSTANT(THREAD_FLAGS_COUNTER_PROFILING_LOCK), -// CONSTANT(THREAD_FLAGS_CPU_THROTTLED), -// CONSTANT(THREAD_FLAGS_CPU_THROTTLED_BIT), -// CONSTANT(THREAD_FLAGS_ACCOUNTING_ANY), - - HEADER("Miscellaneous Definitions"), -// CONSTANT(BASE_PRIORITY_THRESHOLD), -// CONSTANT(EVENT_PAIR_INCREMENT), - CONSTANT(LOW_REALTIME_PRIORITY), - CONSTANT(CLOCK_QUANTUM_DECREMENT), -// CONSTANT(READY_SKIP_QUANTUM), -// CONSTANT(THREAD_QUANTUM), - CONSTANT(WAIT_QUANTUM_DECREMENT), -// CONSTANT(ROUND_TRIP_DECREMENT_COUNT), - CONSTANT(MAXIMUM_PROCESSORS), - CONSTANT(INITIAL_STALL_COUNT), - CONSTANT(EXCEPTION_EXECUTE_FAULT), -// CONSTANT(KCACHE_ERRATA_MONITOR_FLAGS), -// CONSTANT(KI_EXCEPTION_GP_FAULT), -// CONSTANT(KI_EXCEPTION_INVALID_OP), -// CONSTANT(KI_EXCEPTION_INTEGER_DIVIDE_BY_ZERO), - CONSTANT(KI_EXCEPTION_ACCESS_VIOLATION), -// CONSTANT(TARGET_FREEZE), -// CONSTANT(BlackHole), - CONSTANT(Executive), - CONSTANT(FALSE), - CONSTANT(TRUE), - CONSTANT(DBG_STATUS_CONTROL_C), - CONSTANT(USER_SHARED_DATA), -// CONSTANT(MM_SHARED_USER_DATA_VA), - CONSTANT(PAGE_SIZE), -// CONSTANT(KERNEL_STACK_CONTROL_LARGE_STACK), -// CONSTANT(KI_DPC_ALL_FLAGS), -// CONSTANT(DISPATCH_LENGTH), - CONSTANT(MAXIMUM_IDTVECTOR), -// CONSTANT(MAXIMUM_PRIMARY_VECTOR), - CONSTANT(PRIMARY_VECTOR_BASE), - CONSTANT(RPL_MASK), - CONSTANT(MODE_MASK), -// CONSTANT(KTHREAD_AUTO_ALIGNMENT_BIT), -// CONSTANT(KTHREAD_GUI_THREAD_MASK), -// CONSTANT(KI_SLIST_FAULT_COUNT_MAXIMUM), - CONSTANT(NUMBER_SERVICE_TABLES), - CONSTANT(SERVICE_NUMBER_MASK), - CONSTANT(SERVICE_TABLE_SHIFT), - CONSTANT(SERVICE_TABLE_MASK), - CONSTANT(SERVICE_TABLE_TEST), - -/* ARCHITECTURE SPECIFIC CONTSTANTS ******************************************/ - -#if defined(_M_AMD64) || defined(_M_IX86) - - HEADER("CR0 flags"), - CONSTANT(CR0_PE), - CONSTANT(CR0_MP), - CONSTANT(CR0_EM), - CONSTANT(CR0_TS), - CONSTANT(CR0_ET), - CONSTANT(CR0_NE), - CONSTANT(CR0_WP), - CONSTANT(CR0_AM), - CONSTANT(CR0_NW), - CONSTANT(CR0_CD), - CONSTANT(CR0_PG), - - HEADER("CR4 flags"), - CONSTANT(CR4_VME), - CONSTANT(CR4_PVI), - CONSTANT(CR4_TSD), - CONSTANT(CR4_DE), - CONSTANT(CR4_PSE), - CONSTANT(CR4_PAE), - CONSTANT(CR4_MCE), - CONSTANT(CR4_PGE), - CONSTANT(CR4_FXSR), - CONSTANT(CR4_XMMEXCPT), -#if defined(_M_IX86) -// CONSTANT(CR4_PGE_V), -// CONSTANT(CR4_XSAVE), -#elif defined(_M_AMD64) - CONSTANT(CR4_CHANNELS), -#endif - - HEADER("KeFeatureBits flags"), - CONSTANT(KF_RDTSC), - CONSTANT(KF_CR4), - CONSTANT(KF_GLOBAL_PAGE), - CONSTANT(KF_LARGE_PAGE), - CONSTANT(KF_CMPXCHG8B), - CONSTANT(KF_FAST_SYSCALL), -#ifdef _M_IX86 - CONSTANT(KF_V86_VIS), -// CONSTANT(KF_XSTATE), -#endif - - HEADER("Machine type definitions"), - CONSTANT(MACHINE_TYPE_ISA), - CONSTANT(MACHINE_TYPE_EISA), - CONSTANT(MACHINE_TYPE_MCA), - -#endif - -#ifdef _M_IX86 - - HEADER("EFLAGS"), - CONSTANT(EFLAGS_TF), - CONSTANT(EFLAGS_INTERRUPT_MASK), - CONSTANT(EFLAGS_V86_MASK), - CONSTANT(EFLAGS_ALIGN_CHECK), - CONSTANT(EFLAGS_VIF), - CONSTANT(EFLAGS_VIP), - CONSTANT(EFLAGS_USER_SANITIZE), - - HEADER("KDGT selectors"), - CONSTANT(KGDT_R3_DATA), - CONSTANT(KGDT_R3_CODE), - CONSTANT(KGDT_R0_CODE), - CONSTANT(KGDT_R0_DATA), - CONSTANT(KGDT_R0_PCR), -// CONSTANT(KGDT_STACK16), -// CONSTANT(KGDT_CODE16), - CONSTANT(KGDT_TSS), - CONSTANT(KGDT_R3_TEB), - CONSTANT(KGDT_DF_TSS), - CONSTANT(KGDT_NMI_TSS), - CONSTANT(KGDT_LDT), - - CONSTANT(NPX_STATE_NOT_LOADED), - CONSTANT(NPX_STATE_LOADED), -// CONSTANT(NPX_MASK_LAZY), - -/* - HEADER("VDM constants"), - CONSTANT(VDM_INDEX_Invalid), - CONSTANT(VDM_INDEX_0F), - CONSTANT(VDM_INDEX_ESPrefix), - CONSTANT(VDM_INDEX_CSPrefix), - CONSTANT(VDM_INDEX_SSPrefix), - CONSTANT(VDM_INDEX_DSPrefix), - CONSTANT(VDM_INDEX_FSPrefix), - CONSTANT(VDM_INDEX_GSPrefix), - CONSTANT(VDM_INDEX_OPER32Prefix), - CONSTANT(VDM_INDEX_ADDR32Prefix), - CONSTANT(VDM_INDEX_INSB), - CONSTANT(VDM_INDEX_INSW), - CONSTANT(VDM_INDEX_OUTSB), - CONSTANT(VDM_INDEX_OUTSW), - CONSTANT(VDM_INDEX_PUSHF), - CONSTANT(VDM_INDEX_POPF), - CONSTANT(VDM_INDEX_INTnn), - CONSTANT(VDM_INDEX_INTO), - CONSTANT(VDM_INDEX_IRET), - CONSTANT(VDM_INDEX_NPX), - CONSTANT(VDM_INDEX_INBimm), - CONSTANT(VDM_INDEX_INWimm), - CONSTANT(VDM_INDEX_OUTBimm), - CONSTANT(VDM_INDEX_OUTWimm), - CONSTANT(VDM_INDEX_INB), - CONSTANT(VDM_INDEX_INW), - CONSTANT(VDM_INDEX_OUTB), - CONSTANT(VDM_INDEX_OUTW), - CONSTANT(VDM_INDEX_LOCKPrefix), - CONSTANT(VDM_INDEX_REPNEPrefix), - CONSTANT(VDM_INDEX_REPPrefix), - CONSTANT(VDM_INDEX_CLI), - CONSTANT(VDM_INDEX_STI), - CONSTANT(VDM_INDEX_HLT), - CONSTANT(MAX_VDM_INDEX), -*/ - CONSTANT(PF_XMMI_INSTRUCTIONS_AVAILABLE), - CONSTANT(EFLAG_SELECT), -// CONSTANT(IPI_FREEZE), -// CONSTANT(XSAVE_PRESENT), - -#elif defined(_M_AMD64) - - HEADER("EFLAGS"), - CONSTANT(EFLAGS_TF_MASK), - CONSTANT(EFLAGS_TF_SHIFT), - CONSTANT(EFLAGS_IF_MASK), - CONSTANT(EFLAGS_IF_SHIFT), - CONSTANT(EFLAGS_ID_MASK), - - HEADER("Hypervisor Enlightenment Definitions"), - CONSTANT(HV_MMU_USE_HYPERCALL_FOR_ADDRESS_SWITCH), - CONSTANT(HV_MMU_USE_HYPERCALL_FOR_LOCAL_FLUSH), - CONSTANT(HV_MMU_USE_HYPERCALL_FOR_REMOTE_FLUSH), - CONSTANT(HV_X64_MSR_APIC_EOI), - CONSTANT(HV_APIC_ENLIGHTENED), - CONSTANT(HV_KE_USE_HYPERCALL_FOR_LONG_SPIN_WAIT), - CONSTANT(HV_VIRTUAL_APIC_NO_EOI_REQUIRED_V), - CONSTANT(HvApicFlags), - - HEADER("KDGT selectors"), - CONSTANT(KGDT64_NULL), - CONSTANT(KGDT64_R0_CODE), - CONSTANT(KGDT64_R0_DATA), - CONSTANT(KGDT64_R3_CMCODE), - CONSTANT(KGDT64_R3_DATA), - CONSTANT(KGDT64_R3_CODE), - CONSTANT(KGDT64_SYS_TSS), - CONSTANT(KGDT64_R3_CMTEB), - - HEADER("Machine Specific Register Numbers"), - CONSTANT(MSR_EFER), - CONSTANT(MSR_STAR), - CONSTANT(MSR_LSTAR), - CONSTANT(MSR_CSTAR), - CONSTANT(MSR_SYSCALL_MASK), - CONSTANT(MSR_FS_BASE), - CONSTANT(MSR_GS_BASE), - CONSTANT(MSR_GS_SWAP), - CONSTANT(MSR_MCG_STATUS), - CONSTANT(MSR_AMD_ACCESS), - - HEADER("Flags for MSR_EFER"), - CONSTANT(MSR_LMA), - CONSTANT(MSR_LME), - CONSTANT(MSR_SCE), - CONSTANT(MSR_NXE), - CONSTANT(MSR_PAT), - CONSTANT(MSR_DEGUG_CTL), - CONSTANT(MSR_LAST_BRANCH_FROM), - CONSTANT(MSR_LAST_BRANCH_TO), - CONSTANT(MSR_LAST_EXCEPTION_FROM), - CONSTANT(MSR_LAST_EXCEPTION_TO), - - HEADER("Flags for MSR_DEGUG_CTL"), - CONSTANT(MSR_DEBUG_CTL_LBR), - CONSTANT(MSR_DEBUG_CRL_BTF), - -#endif - -#if 0 - HEADER("Fatal exception codes"), - CONSTANT(EXCEPTION_DIVIDED_BY_ZERO), - CONSTANT(EXCEPTION_DEBUG), - CONSTANT(EXCEPTION_NMI), - CONSTANT(EXCEPTION_INT3), - CONSTANT(EXCEPTION_BOUND_CHECK), - CONSTANT(EXCEPTION_INVALID_OPCODE), - CONSTANT(EXCEPTION_NPX_NOT_AVAILABLE), - CONSTANT(EXCEPTION_DOUBLE_FAULT), - CONSTANT(EXCEPTION_NPX_OVERRUN), - CONSTANT(EXCEPTION_INVALID_TSS), - CONSTANT(EXCEPTION_SEGMENT_NOT_PRESENT), - CONSTANT(EXCEPTION_STACK_FAULT), - CONSTANT(EXCEPTION_GP_FAULT), - CONSTANT(EXCEPTION_RESERVED_TRAP), - CONSTANT(EXCEPTION_NPX_ERROR), - CONSTANT(EXCEPTION_ALIGNMENT_CHECK), -#endif - - -/* STRUCTURE OFFSETS *********************************************************/ - - HEADER("KAFFINITY_EX"), -// OFFSET(AfBitmap, KAFFINITY_EX, Bitmap), - - HEADER("Aligned Affinity"), -// OFFSET(AfsCpuSet, ???, CpuSet), - - HEADER("KAPC"), - OFFSET(ApType, KAPC, Type), - OFFSET(ApSize, KAPC, Size), - OFFSET(ApThread, KAPC, Thread), - OFFSET(ApApcListEntry, KAPC, ApcListEntry), - OFFSET(ApKernelRoutine, KAPC, KernelRoutine), - OFFSET(ApRundownRoutine, KAPC, RundownRoutine), - OFFSET(ApNormalRoutine, KAPC, NormalRoutine), - OFFSET(ApNormalContext, KAPC, NormalContext), - OFFSET(ApSystemArgument1, KAPC, SystemArgument1), - OFFSET(ApSystemArgument2, KAPC, SystemArgument2), - OFFSET(ApApcStateIndex, KAPC, ApcStateIndex), - OFFSET(ApApcMode, KAPC, ApcMode), - OFFSET(ApInserted, KAPC, Inserted), - SIZE(ApcObjectLength, KAPC), - - HEADER("KAPC_STATE"), - OFFSET(AsApcListHead, KAPC_STATE, ApcListHead), - OFFSET(AsProcess, KAPC_STATE, Process), - OFFSET(AsKernelApcInProgress, KAPC_STATE, KernelApcInProgress), - OFFSET(AsKernelApcPending, KAPC_STATE, KernelApcPending), - OFFSET(AsUserApcPending, KAPC_STATE, UserApcPending), - - HEADER("CLIENT_ID"), - OFFSET(CidUniqueProcess, CLIENT_ID, UniqueProcess), - OFFSET(CidUniqueThread, CLIENT_ID, UniqueThread), - - HEADER("RTL_CRITICAL_SECTION"), - OFFSET(CsDebugInfo, RTL_CRITICAL_SECTION, DebugInfo), - OFFSET(CsLockCount, RTL_CRITICAL_SECTION, LockCount), - OFFSET(CsRecursionCount, RTL_CRITICAL_SECTION, RecursionCount), - OFFSET(CsOwningThread, RTL_CRITICAL_SECTION, OwningThread), - OFFSET(CsLockSemaphore, RTL_CRITICAL_SECTION, LockSemaphore), - OFFSET(CsSpinCount, RTL_CRITICAL_SECTION, SpinCount), - - HEADER("RTL_CRITICAL_SECTION_DEBUG"), - OFFSET(CsType, RTL_CRITICAL_SECTION_DEBUG, Type), - OFFSET(CsCreatorBackTraceIndex, RTL_CRITICAL_SECTION_DEBUG, CreatorBackTraceIndex), - OFFSET(CsCriticalSection, RTL_CRITICAL_SECTION_DEBUG, CriticalSection), - OFFSET(CsProcessLocksList, RTL_CRITICAL_SECTION_DEBUG, ProcessLocksList), - OFFSET(CsEntryCount, RTL_CRITICAL_SECTION_DEBUG, EntryCount), - OFFSET(CsContentionCount, RTL_CRITICAL_SECTION_DEBUG, ContentionCount), - - HEADER("KDEVICE_QUEUE_ENTRY"), - OFFSET(DeDeviceListEntry, KDEVICE_QUEUE_ENTRY, DeviceListEntry), - OFFSET(DeSortKey, KDEVICE_QUEUE_ENTRY, SortKey), - OFFSET(DeInserted, KDEVICE_QUEUE_ENTRY, Inserted), - SIZE(DeviceQueueEntryLength, KDEVICE_QUEUE_ENTRY), - - HEADER("KDPC"), - OFFSET(DpType, KDPC, Type), - OFFSET(DpImportance, KDPC, Importance), - OFFSET(DpNumber, KDPC, Number), - OFFSET(DpDpcListEntry, KDPC, DpcListEntry), - OFFSET(DpDeferredRoutine, KDPC, DeferredRoutine), - OFFSET(DpDeferredContext, KDPC, DeferredContext), - OFFSET(DpSystemArgument1, KDPC, SystemArgument1), - OFFSET(DpSystemArgument2, KDPC, SystemArgument2), - OFFSET(DpDpcData, KDPC, DpcData), - SIZE(DpcObjectLength, KDPC), - - HEADER("KDEVICE_QUEUE"), - OFFSET(DvType, KDEVICE_QUEUE, Type), - OFFSET(DvSize, KDEVICE_QUEUE, Size), - OFFSET(DvDeviceListHead, KDEVICE_QUEUE, DeviceListHead), - OFFSET(DvSpinLock, KDEVICE_QUEUE, Lock), - OFFSET(DvBusy, KDEVICE_QUEUE, Busy), - SIZE(DeviceQueueObjectLength, KDEVICE_QUEUE), - - HEADER("EXCEPTION_RECORD"), - OFFSET(ErExceptionCode, EXCEPTION_RECORD, ExceptionCode), - OFFSET(ErExceptionFlags, EXCEPTION_RECORD, ExceptionFlags), - OFFSET(ErExceptionRecord, EXCEPTION_RECORD, ExceptionRecord), - OFFSET(ErExceptionAddress, EXCEPTION_RECORD, ExceptionAddress), - OFFSET(ErNumberParameters, EXCEPTION_RECORD, NumberParameters), - OFFSET(ErExceptionInformation, EXCEPTION_RECORD, ExceptionInformation), - SIZE(ExceptionRecordLength, EXCEPTION_RECORD), - SIZE(EXCEPTION_RECORD_LENGTH, EXCEPTION_RECORD), - - HEADER("EPROCESS"), - OFFSET(EpDebugPort, EPROCESS, DebugPort), - OFFSET(EpVdmObjects, EPROCESS, VdmObjects), - SIZE(ExecutiveProcessObjectLength, EPROCESS), - - HEADER("KEVENT"), - OFFSET(EvType, KEVENT, Header.Type), - OFFSET(EvSize, KEVENT, Header.Size), - OFFSET(EvSignalState, KEVENT, Header.SignalState), - OFFSET(EvWaitListHead, KEVENT, Header.WaitListHead), - SIZE(EventObjectLength, KEVENT), - - HEADER("FAST_MUTEX"), - OFFSET(FmCount, FAST_MUTEX, Count), - OFFSET(FmOwner, FAST_MUTEX, Owner), - OFFSET(FmContention, FAST_MUTEX, Contention), - OFFSET(FmGate, FAST_MUTEX, Gate), - OFFSET(FmOldIrql, FAST_MUTEX, OldIrql), - - HEADER("KINTERRUPT"), - OFFSET(InType, KINTERRUPT, Type), - OFFSET(InSize, KINTERRUPT, Size), - OFFSET(InInterruptListEntry, KINTERRUPT, InterruptListEntry), - OFFSET(InServiceRoutine, KINTERRUPT, ServiceRoutine), - OFFSET(InServiceContext, KINTERRUPT, ServiceContext), - OFFSET(InSpinLock, KINTERRUPT, SpinLock), - OFFSET(InTickCount, KINTERRUPT, TickCount), - OFFSET(InActualLock, KINTERRUPT, ActualLock), - OFFSET(InDispatchAddress, KINTERRUPT, DispatchAddress), - OFFSET(InVector, KINTERRUPT, Vector), - OFFSET(InIrql, KINTERRUPT, Irql), - OFFSET(InSynchronizeIrql, KINTERRUPT, SynchronizeIrql), - OFFSET(InFloatingSave, KINTERRUPT, FloatingSave), - OFFSET(InConnected, KINTERRUPT, Connected), - OFFSET(InNumber, KINTERRUPT, Number), - OFFSET(InShareVector, KINTERRUPT, ShareVector), - OFFSET(InMode, KINTERRUPT, Mode), - OFFSET(InServiceCount, KINTERRUPT, ServiceCount), - OFFSET(InDispatchCount, KINTERRUPT, DispatchCount), -// OFFSET(InTrapFrame, KINTERRUPT, TrapFrame), - OFFSET(InDispatchCode, KINTERRUPT, DispatchCode), - SIZE(InterruptObjectLength, KINTERRUPT), - - HEADER("IO_STATUS_BLOCK"), - OFFSET(IoStatus, IO_STATUS_BLOCK, Status), - OFFSET(IoPointer, IO_STATUS_BLOCK, Pointer), - OFFSET(IoInformation, IO_STATUS_BLOCK, Information), - -#ifdef _M_IX86 -// Kernel Stack Control Structure Offset (relative to initial stack pointer) Definitions -// RELOFFSET(KcPreviousBase, KERNEL_STACK_CONTROL, PreviousBase, ???), -// RELOFFSET(KcPreviousLimit, KERNEL_STACK_CONTROL, PreviousBase, ???), -// RELOFFSET(KcPreviousKernel, KERNEL_STACK_CONTROL, PreviousBase, ???), -// RELOFFSET(KcPreviousInitial, KERNEL_STACK_CONTROL, PreviousBase, ???), -#else - HEADER("KERNEL_STACK_CONTROL"), -// OFFSET(KcPreviousBase, KERNEL_STACK_CONTROL, PreviousBase), -// OFFSET(KcPreviousLimit, KERNEL_STACK_CONTROL, PreviousLimit), -// OFFSET(KcPreviousKernel, KERNEL_STACK_CONTROL, PreviousKernel), -// OFFSET(KcPreviousInitial, KERNEL_STACK_CONTROL, PreviousInitial), -// SIZE(KERNEL_STACK_CONTROL_LENGTH, KERNEL_STACK_CONTROL), -#endif - - HEADER("KNODE"), -// OFFSET(KnRight, KNODE, Right), -// OFFSET(KnLeft, KNODE, Left), - OFFSET(KnPfnDereferenceSListHead, KNODE, PfnDereferenceSListHead), - OFFSET(KnProcessorMask, KNODE, ProcessorMask), - OFFSET(KnColor, KNODE, Color), - OFFSET(KnSeed, KNODE, Seed), - OFFSET(KnNodeNumber, KNODE, NodeNumber), - OFFSET(KnFlags, KNODE, Flags), - OFFSET(knMmShiftedColor, KNODE, MmShiftedColor), - OFFSET(KnFreeCount, KNODE, FreeCount), - OFFSET(KnPfnDeferredList, KNODE, PfnDeferredList), - SIZE(KNODE_SIZE, KNODE), - - HEADER("KSPIN_LOCK_QUEUE"), - OFFSET(LqNext, KSPIN_LOCK_QUEUE, Next), - OFFSET(LqLock, KSPIN_LOCK_QUEUE, Lock), - - HEADER("KLOCK_QUEUE_HANDLE"), - OFFSET(LqhNext, KLOCK_QUEUE_HANDLE, LockQueue.Next), - OFFSET(LqhLock, KLOCK_QUEUE_HANDLE, LockQueue.Lock), - OFFSET(LqhOldIrql, KLOCK_QUEUE_HANDLE, OldIrql), - SIZE(LOCK_QUEUE_HEADER_SIZE, KLOCK_QUEUE_HANDLE), - - HEADER("LARGE_INTEGER"), - OFFSET(LiLowPart, LARGE_INTEGER, LowPart), - OFFSET(LiHighPart, LARGE_INTEGER, HighPart), -#if 0 - HEADER("LOADER_PARAMETER_BLOCK (rel. to LoadOrderListHead)"), - RELOFFSET(LpbLoadOrderListHead, LOADER_PARAMETER_BLOCK, LoadOrderListHead, LoadOrderListHead), - RELOFFSET(LpbMemoryDescriptorListHead, LOADER_PARAMETER_BLOCK, MemoryDescriptorListHead, LoadOrderListHead), - RELOFFSET(LpbKernelStack, LOADER_PARAMETER_BLOCK, KernelStack, LoadOrderListHead), - RELOFFSET(LpbPrcb, LOADER_PARAMETER_BLOCK, Prcb, LoadOrderListHead), - RELOFFSET(LpbProcess, LOADER_PARAMETER_BLOCK, Process, LoadOrderListHead), - RELOFFSET(LpbThread, LOADER_PARAMETER_BLOCK, Thread, LoadOrderListHead), - RELOFFSET(LpbI386, LOADER_PARAMETER_BLOCK, u.I386, LoadOrderListHead), - RELOFFSET(LpbRegistryLength, LOADER_PARAMETER_BLOCK, RegistryLength, LoadOrderListHead), - RELOFFSET(LpbRegistryBase, LOADER_PARAMETER_BLOCK, RegistryBase, LoadOrderListHead), - RELOFFSET(LpbConfigurationRoot, LOADER_PARAMETER_BLOCK, ConfigurationRoot, LoadOrderListHead), - RELOFFSET(LpbArcBootDeviceName, LOADER_PARAMETER_BLOCK, ArcBootDeviceName, LoadOrderListHead), - RELOFFSET(LpbArcHalDeviceName, LOADER_PARAMETER_BLOCK, ArcHalDeviceName, LoadOrderListHead), - RELOFFSET(LpbLoadOptions, LOADER_PARAMETER_BLOCK, LoadOptions, LoadOrderListHead), - RELOFFSET(LpbExtension, LOADER_PARAMETER_BLOCK, Extension, LoadOrderListHead), -#endif - - HEADER("LIST_ENTRY"), - OFFSET(LsFlink, LIST_ENTRY, Flink), - OFFSET(LsBlink, LIST_ENTRY, Blink), - - HEADER("PEB"), - OFFSET(PeKernelCallbackTable, PEB, KernelCallbackTable), - SIZE(ProcessEnvironmentBlockLength, PEB), - - HEADER("KPROFILE"), - OFFSET(PfType, KPROFILE, Type), - OFFSET(PfSize, KPROFILE, Size), - OFFSET(PfProfileListEntry, KPROFILE, ProfileListEntry), - OFFSET(PfProcess, KPROFILE, Process), - OFFSET(PfRangeBase, KPROFILE, RangeBase), - OFFSET(PfRangeLimit, KPROFILE, RangeLimit), - OFFSET(PfBucketShift, KPROFILE, BucketShift), - OFFSET(PfBuffer, KPROFILE, Buffer), - OFFSET(PfSegment, KPROFILE, Segment), - OFFSET(PfAffinity, KPROFILE, Affinity), - OFFSET(PfSource, KPROFILE, Source), - OFFSET(PfStarted, KPROFILE, Started), - SIZE(ProfileObjectLength, KPROFILE), - - HEADER("PORT_MESSAGE"), - OFFSET(PmLength, PORT_MESSAGE, u1.Length), - OFFSET(PmZeroInit, PORT_MESSAGE, u2.ZeroInit), - OFFSET(PmClientId, PORT_MESSAGE, ClientId), - OFFSET(PmProcess, PORT_MESSAGE, ClientId.UniqueProcess), - OFFSET(PmThread, PORT_MESSAGE, ClientId.UniqueThread), - OFFSET(PmMessageId, PORT_MESSAGE, MessageId), - OFFSET(PmClientViewSize, PORT_MESSAGE, ClientViewSize), - SIZE(PortMessageLength, PORT_MESSAGE), - - HEADER("KPROCESS"), - OFFSET(PrType, KPROCESS, Header.Type), - OFFSET(PrSize, KPROCESS, Header.Size), - OFFSET(PrSignalState, KPROCESS, Header.SignalState), - OFFSET(PrProfileListHead, KPROCESS, ProfileListHead), - OFFSET(PrDirectoryTableBase, KPROCESS, DirectoryTableBase), -#ifdef _M_IX86 - OFFSET(PrLdtDescriptor, KPROCESS, LdtDescriptor), -#endif - OFFSET(PrIopmOffset, KPROCESS, IopmOffset), -#ifdef _M_IX86 - OFFSET(PrInt21Descriptor, KPROCESS, Int21Descriptor), - OFFSET(PrVdmTrapcHandler, KPROCESS, VdmTrapcHandler), -// OFFSET(PrVdmObjects, KPROCESS, VdmObjects), - OFFSET(PrFlags, KPROCESS, Flags), -#endif -// OFFSET(PrInstrumentationCallback, KPROCESS, InstrumentationCallback), - OFFSET(PrActiveProcessors, KPROCESS, ActiveProcessors), - OFFSET(PrKernelTime, KPROCESS, KernelTime), - OFFSET(PrUserTime, KPROCESS, UserTime), - OFFSET(PrReadyListHead, KPROCESS, ReadyListHead), - OFFSET(PrSwapListEntry, KPROCESS, SwapListEntry), - OFFSET(PrThreadListHead, KPROCESS, ThreadListHead), - OFFSET(PrProcessLock, KPROCESS, ProcessLock), - OFFSET(PrAffinity, KPROCESS, Affinity), - OFFSET(PrProcessFlags, KPROCESS, ProcessFlags), - OFFSET(PrBasePriority, KPROCESS, BasePriority), - OFFSET(PrQuantumReset, KPROCESS, QuantumReset), - OFFSET(PrState, KPROCESS, State), - OFFSET(PrStackCount, KPROCESS, StackCount), -#if (NTDDI_VERSION >= NTDDI_LONGHORN) - OFFSET(PrCycleTime, KPROCESS, CycleTime), -#endif - SIZE(KernelProcessObjectLength, KPROCESS), - - HEADER("KQUEUE"), - OFFSET(QuType, KQUEUE, Header.Type), - OFFSET(QuSize, KQUEUE, Header.Size), - OFFSET(QuSignalState, KQUEUE, Header.SignalState), - OFFSET(QuEntryListHead, KQUEUE, EntryListHead), - OFFSET(QuCurrentCount, KQUEUE, CurrentCount), - OFFSET(QuMaximumCount, KQUEUE, MaximumCount), - OFFSET(QuThreadListHead, KQUEUE, ThreadListHead), - SIZE(QueueObjectLength, KQUEUE), - - HEADER("STRING"), - OFFSET(StrLength, STRING, Length), - OFFSET(StrMaximumLength, STRING, MaximumLength), - OFFSET(StrBuffer, STRING, Buffer), - - HEADER("TEB"), - OFFSET(TeCmTeb, TEB, Tib), -#ifdef _M_IX86 - OFFSET(TeExceptionList, TEB, Tib.ExceptionList), -#endif - OFFSET(TeStackBase, TEB, Tib.StackBase), - OFFSET(TeStackLimit, TEB, Tib.StackLimit), - OFFSET(TeFiberData, TEB, Tib.FiberData), - OFFSET(TeSelf, TEB, Tib.Self), - OFFSET(TeEnvironmentPointer, TEB, EnvironmentPointer), - OFFSET(TeClientId, TEB, ClientId), - OFFSET(TeActiveRpcHandle, TEB, ActiveRpcHandle), - OFFSET(TeThreadLocalStoragePointer, TEB, ThreadLocalStoragePointer), - OFFSET(TeCountOfOwnedCriticalSections, TEB, CountOfOwnedCriticalSections), - OFFSET(TePeb, TEB, ProcessEnvironmentBlock), - OFFSET(TeCsrClientThread, TEB, CsrClientThread), - OFFSET(TeWOW32Reserved, TEB, WOW32Reserved), -// OFFSET(TeSoftFpcr, TEB, SoftFpcr), - OFFSET(TeExceptionCode, TEB, ExceptionCode), - OFFSET(TeActivationContextStackPointer, TEB, ActivationContextStackPointer), - OFFSET(TeGdiClientPID, TEB, GdiClientPID), - OFFSET(TeGdiClientTID, TEB, GdiClientTID), - OFFSET(TeGdiThreadLocalInfo, TEB, GdiThreadLocalInfo), - OFFSET(TeglDispatchTable, TEB, glDispatchTable), - OFFSET(TeglReserved1, TEB, glReserved1), - OFFSET(TeglReserved2, TEB, glReserved2), - OFFSET(TeglSectionInfo, TEB, glSectionInfo), - OFFSET(TeglSection, TEB, glSection), - OFFSET(TeglTable, TEB, glTable), - OFFSET(TeglCurrentRC, TEB, glCurrentRC), - OFFSET(TeglContext, TEB, glContext), - OFFSET(TeDeallocationStack, TEB, DeallocationStack), - OFFSET(TeTlsSlots, TEB, TlsSlots), - OFFSET(TeTlsExpansionSlots, TEB, TlsExpansionSlots), - OFFSET(TeLastErrorValue, TEB, LastErrorValue), - OFFSET(TeVdm, TEB, Vdm), - OFFSET(TeInstrumentation, TEB, Instrumentation), - OFFSET(TeGdiBatchCount, TEB, GdiBatchCount), - OFFSET(TeGuaranteedStackBytes, TEB, GuaranteedStackBytes), - OFFSET(TeFlsData, TEB, FlsData), -// OFFSET(TeProcessRundown, TEB, ProcessRundown), - SIZE(ThreadEnvironmentBlockLength, TEB), - - HEADER("TIME_FIELDS"), - OFFSET(TfSecond, TIME_FIELDS, Second), - OFFSET(TfMinute, TIME_FIELDS, Minute), - OFFSET(TfHour, TIME_FIELDS, Hour), - OFFSET(TfWeekday, TIME_FIELDS, Weekday), - OFFSET(TfDay, TIME_FIELDS, Day), - OFFSET(TfMonth, TIME_FIELDS, Month), - OFFSET(TfYear, TIME_FIELDS, Year), - OFFSET(TfMilliseconds, TIME_FIELDS, Milliseconds), - - HEADER("KTHREAD"), - OFFSET(ThType, KTHREAD, DispatcherHeader.Type), -// OFFSET(ThNpxIrql, KTHREAD, NpxIrql), - OFFSET(ThSize, KTHREAD, DispatcherHeader.Size), - OFFSET(ThLock, KTHREAD, DispatcherHeader.Lock), - OFFSET(ThDebugActive, KTHREAD, DispatcherHeader.DebugActive), -// OFFSET(ThThreadControlFlags, KTHREAD, DispatcherHeader.ThreadControlFlags), - OFFSET(ThSignalState, KTHREAD, DispatcherHeader.SignalState), -#if (NTDDI_VERSION >= NTDDI_LONGHORN) - OFFSET(ThCycleTime, KTHREAD, CycleTime), - OFFSET(ThHighCycleTime, KTHREAD, HighCycleTime), -#endif - OFFSET(ThInitialStack, KTHREAD, InitialStack), - OFFSET(ThStackLimit, KTHREAD, StackLimit), - OFFSET(ThKernelStack, KTHREAD, KernelStack), - OFFSET(ThThreadLock, KTHREAD, ThreadLock), -// OFFSET(ThRunning, KTHREAD, Running), - OFFSET(ThAlerted, KTHREAD, Alerted), -// OFFSET(ThMiscFlags, KTHREAD, MiscFlags), - OFFSET(ThApcState, KTHREAD, ApcState), - OFFSET(ThPriority, KTHREAD, Priority), - OFFSET(ThSwapBusy, KTHREAD, SwapBusy), - OFFSET(ThNextProcessor, KTHREAD, NextProcessor), - OFFSET(ThDeferredProcessor, KTHREAD, DeferredProcessor), - OFFSET(ThApcQueueLock, KTHREAD, ApcQueueLock), - OFFSET(ThContextSwitches, KTHREAD, ContextSwitches), - OFFSET(ThState, KTHREAD, State), - OFFSET(ThNpxState, KTHREAD, NpxState), - OFFSET(ThWaitIrql, KTHREAD, WaitIrql), - OFFSET(ThWaitMode, KTHREAD, WaitMode), - OFFSET(ThWaitStatus, KTHREAD, WaitStatus), - OFFSET(ThWaitBlockList, KTHREAD, WaitBlockList), - OFFSET(ThGateObject, KTHREAD, GateObject), - OFFSET(ThWaitListEntry, KTHREAD, WaitListEntry), - OFFSET(ThSwapListEntry, KTHREAD, SwapListEntry), - OFFSET(ThQueue, KTHREAD, Queue), - OFFSET(ThWaitTime, KTHREAD, WaitTime), - OFFSET(ThCombinedApcDisable, KTHREAD, CombinedApcDisable), - OFFSET(ThKernelApcDisable, KTHREAD, KernelApcDisable), - OFFSET(ThSpecialApcDisable, KTHREAD, SpecialApcDisable), - OFFSET(ThTeb, KTHREAD, Teb), - OFFSET(ThTimer, KTHREAD, Timer), - OFFSET(ThThreadFlags, KTHREAD, ThreadFlags), - OFFSET(ThServiceTable, KTHREAD, ServiceTable), - OFFSET(ThWaitBlock, KTHREAD, WaitBlock), - OFFSET(ThResourceIndex, KTHREAD, ResourceIndex), - OFFSET(ThQueueListEntry, KTHREAD, QueueListEntry), - OFFSET(ThTrapFrame, KTHREAD, TrapFrame), -#if (NTDDI_VERSION >= NTDDI_LONGHORN) - OFFSET(ThFirstArgument, KTHREAD, FirstArgument), -#endif - OFFSET(ThCallbackStack, KTHREAD, CallbackStack), -// OFFSET(ThCallbackDepth, KTHREAD, CallbackDepth), - OFFSET(ThApcStateIndex, KTHREAD, ApcStateIndex), - OFFSET(ThIdealProcessor, KTHREAD, IdealProcessor), - OFFSET(ThBasePriority, KTHREAD, BasePriority), - OFFSET(ThPriorityDecrement, KTHREAD, PriorityDecrement), - OFFSET(ThAdjustReason, KTHREAD, AdjustReason), - OFFSET(ThAdjustIncrement, KTHREAD, AdjustIncrement), - OFFSET(ThPreviousMode, KTHREAD, PreviousMode), - OFFSET(ThSaturation, KTHREAD, Saturation), -#if (NTDDI_VERSION >= NTDDI_LONGHORN) - OFFSET(ThSystemCallNumber, KTHREAD, SystemCallNumber), -#endif - OFFSET(ThFreezeCount, KTHREAD, FreezeCount), - OFFSET(ThUserAffinity, KTHREAD, UserAffinity), - OFFSET(ThProcess, KTHREAD, Process), - OFFSET(ThAffinity, KTHREAD, Affinity), - OFFSET(ThUserIdealProcessor, KTHREAD, UserIdealProcessor), - OFFSET(ThApcStatePointer, KTHREAD, ApcStatePointer), - OFFSET(ThSavedApcState, KTHREAD, SavedApcState), - OFFSET(ThWaitReason, KTHREAD, WaitReason), - OFFSET(ThSuspendCount, KTHREAD, SuspendCount), -// OFFSET(ThCodePatchInProgress, KTHREAD, CodePatchInProgress), - OFFSET(ThWin32Thread, KTHREAD, Win32Thread), - OFFSET(ThStackBase, KTHREAD, StackBase), - OFFSET(ThSuspendApc, KTHREAD, SuspendApc), - OFFSET(ThPowerState, KTHREAD, PowerState), - OFFSET(ThKernelTime, KTHREAD, KernelTime), - OFFSET(ThLegoData, KTHREAD, LegoData), - OFFSET(ThLargeStack, KTHREAD, LargeStack), - OFFSET(ThUserTime, KTHREAD, UserTime), - OFFSET(ThSuspendSemaphore, KTHREAD, SuspendSemaphore), - OFFSET(ThSListFaultCount, KTHREAD, SListFaultCount), - OFFSET(ThThreadListEntry, KTHREAD, ThreadListEntry), - OFFSET(ThMutantListHead, KTHREAD, MutantListHead), - OFFSET(ThSListFaultAddress, KTHREAD, SListFaultAddress), - SIZE(KernelThreadObjectLength, KTHREAD), - SIZE(ExecutiveThreadObjectLength, ETHREAD), - - HEADER("KTIMER"), - OFFSET(TiType, KTIMER, Header.Type), - OFFSET(TiSize, KTIMER, Header.Size), - OFFSET(TiInserted, KTIMER, Header.Inserted), - OFFSET(TiSignalState, KTIMER, Header.SignalState), - OFFSET(TiDueTime, KTIMER, DueTime), - OFFSET(TiTimerListEntry, KTIMER, TimerListEntry), - OFFSET(TiDpc, KTIMER, Dpc), - OFFSET(TiPeriod, KTIMER, Period), - SIZE(TimerObjectLength, KTIMER), - - HEADER("TIME"), -// OFFSET(TmLowTime, TIME, LowTime), -// OFFSET(TmHighTime, TIME, HighTime), - -#if 0 - HEADER("SYSTEM_CONTEXT_SWITCH_INFORMATION (relative to FindAny)"), - RELOFFSET(TwFindAny, SYSTEM_CONTEXT_SWITCH_INFORMATION, FindAny, FindAny), - RELOFFSET(TwFindIdeal, SYSTEM_CONTEXT_SWITCH_INFORMATION, FindIdeal, FindAny), - RELOFFSET(TwFindLast, SYSTEM_CONTEXT_SWITCH_INFORMATION, FindLast, FindAny), - RELOFFSET(TwIdleAny, SYSTEM_CONTEXT_SWITCH_INFORMATION, IdleAny, FindAny), - RELOFFSET(TwIdleCurrent, SYSTEM_CONTEXT_SWITCH_INFORMATION, IdleCurrent, FindAny), - RELOFFSET(TwIdleIdeal, SYSTEM_CONTEXT_SWITCH_INFORMATION, IdleIdeal, FindAny), - RELOFFSET(TwIdleLast, SYSTEM_CONTEXT_SWITCH_INFORMATION, IdleLast, FindAny), - RELOFFSET(TwPreemptAny, SYSTEM_CONTEXT_SWITCH_INFORMATION, PreemptAny, FindAny), - RELOFFSET(TwPreemptCurrent, SYSTEM_CONTEXT_SWITCH_INFORMATION, PreemptCurrent, FindAny), - RELOFFSET(TwPreemptLast, SYSTEM_CONTEXT_SWITCH_INFORMATION, PreemptLast, FindAny), - RELOFFSET(TwSwitchToIdle, SYSTEM_CONTEXT_SWITCH_INFORMATION, SwitchToIdle, FindAny), -#endif - - HEADER("KUSER_SHARED_DATA"), - OFFSET(UsTickCountMultiplier, KUSER_SHARED_DATA, TickCountMultiplier), - OFFSET(UsInterruptTime, KUSER_SHARED_DATA, InterruptTime), - OFFSET(UsSystemTime, KUSER_SHARED_DATA, SystemTime), - OFFSET(UsTimeZoneBias, KUSER_SHARED_DATA, TimeZoneBias), - OFFSET(UsImageNumberLow, KUSER_SHARED_DATA, ImageNumberLow), - OFFSET(UsImageNumberHigh, KUSER_SHARED_DATA, ImageNumberHigh), - OFFSET(UsNtSystemRoot, KUSER_SHARED_DATA, NtSystemRoot), - OFFSET(UsMaxStackTraceDepth, KUSER_SHARED_DATA, MaxStackTraceDepth), - OFFSET(UsCryptoExponent, KUSER_SHARED_DATA, CryptoExponent), - OFFSET(UsTimeZoneId, KUSER_SHARED_DATA, TimeZoneId), - OFFSET(UsLargePageMinimum, KUSER_SHARED_DATA, LargePageMinimum), - OFFSET(UsReserved2, KUSER_SHARED_DATA, Reserved2), - OFFSET(UsNtProductType, KUSER_SHARED_DATA, NtProductType), - OFFSET(UsProductTypeIsValid, KUSER_SHARED_DATA, ProductTypeIsValid), - OFFSET(UsNtMajorVersion, KUSER_SHARED_DATA, NtMajorVersion), - OFFSET(UsNtMinorVersion, KUSER_SHARED_DATA, NtMinorVersion), - OFFSET(UsProcessorFeatures, KUSER_SHARED_DATA, ProcessorFeatures), - OFFSET(UsReserved1, KUSER_SHARED_DATA, Reserved1), - OFFSET(UsReserved3, KUSER_SHARED_DATA, Reserved3), - OFFSET(UsTimeSlip, KUSER_SHARED_DATA, TimeSlip), - OFFSET(UsAlternativeArchitecture, KUSER_SHARED_DATA, AlternativeArchitecture), - OFFSET(UsSystemExpirationDate, KUSER_SHARED_DATA, SystemExpirationDate), - OFFSET(UsSuiteMask, KUSER_SHARED_DATA, SuiteMask), - OFFSET(UsKdDebuggerEnabled, KUSER_SHARED_DATA, KdDebuggerEnabled), - OFFSET(UsActiveConsoleId, KUSER_SHARED_DATA, ActiveConsoleId), - OFFSET(UsDismountCount, KUSER_SHARED_DATA, DismountCount), - OFFSET(UsComPlusPackage, KUSER_SHARED_DATA, ComPlusPackage), - OFFSET(UsLastSystemRITEventTickCount, KUSER_SHARED_DATA, LastSystemRITEventTickCount), - OFFSET(UsNumberOfPhysicalPages, KUSER_SHARED_DATA, NumberOfPhysicalPages), - OFFSET(UsSafeBootMode, KUSER_SHARED_DATA, SafeBootMode), -// OFFSET(UsTscQpcData, KUSER_SHARED_DATA, TscQpcData), - OFFSET(UsTestRetInstruction, KUSER_SHARED_DATA, TestRetInstruction), - OFFSET(UsSystemCall, KUSER_SHARED_DATA, SystemCall), - OFFSET(UsSystemCallReturn, KUSER_SHARED_DATA, SystemCallReturn), - OFFSET(UsSystemCallPad, KUSER_SHARED_DATA, SystemCallPad), - OFFSET(UsTickCount, KUSER_SHARED_DATA, TickCount), - OFFSET(UsTickCountQuad, KUSER_SHARED_DATA, TickCountQuad), - OFFSET(UsWow64SharedInformation, KUSER_SHARED_DATA, Wow64SharedInformation), - - HEADER("KWAIT_BLOCK"), - OFFSET(WbWaitListEntry, KWAIT_BLOCK, WaitListEntry), - OFFSET(WbThread, KWAIT_BLOCK, Thread), - OFFSET(WbObject, KWAIT_BLOCK, Object), - OFFSET(WbNextWaitBlock, KWAIT_BLOCK, NextWaitBlock), - OFFSET(WbWaitKey, KWAIT_BLOCK, WaitKey), - OFFSET(WbWaitType, KWAIT_BLOCK, WaitType), - -#if defined(_M_IX86) - - HEADER("CONTEXT"), - OFFSET(CsContextFlags, CONTEXT, ContextFlags), - OFFSET(CsDr0, CONTEXT, Dr0), - OFFSET(CsDr1, CONTEXT, Dr1), - OFFSET(CsDr2, CONTEXT, Dr2), - OFFSET(CsDr3, CONTEXT, Dr3), - OFFSET(CsDr6, CONTEXT, Dr6), - OFFSET(CsDr7, CONTEXT, Dr7), - OFFSET(CsFloatSave, CONTEXT, FloatSave), - OFFSET(CsSegGs, CONTEXT, SegGs), - OFFSET(CsSegFs, CONTEXT, SegFs), - OFFSET(CsSegEs, CONTEXT, SegEs), - OFFSET(CsSegDs, CONTEXT, SegDs), - OFFSET(CsEdi, CONTEXT, Edi), - OFFSET(CsEsi, CONTEXT, Esi), - OFFSET(CsEbx, CONTEXT, Ebx), - OFFSET(CsEdx, CONTEXT, Edx), - OFFSET(CsEcx, CONTEXT, Ecx), - OFFSET(CsEax, CONTEXT, Eax), - OFFSET(CsEbp, CONTEXT, Ebp), - OFFSET(CsEip, CONTEXT, Eip), - OFFSET(CsSegCs, CONTEXT, SegCs), - OFFSET(CsEflags, CONTEXT, EFlags), - OFFSET(CsEsp, CONTEXT, Esp), - OFFSET(CsSegSs, CONTEXT, SegSs), - OFFSET(CsExtendedRegisters, CONTEXT, ExtendedRegisters), - SIZE(ContextFrameLength, CONTEXT), - SIZE(CONTEXT_LENGTH, CONTEXT), - - HEADER("KGDTENTRY"), - OFFSET(KgdtBaseLow, KGDTENTRY, BaseLow), - OFFSET(KgdtBaseMid, KGDTENTRY, HighWord.Bytes.BaseMid), - OFFSET(KgdtBaseHi, KGDTENTRY, HighWord.Bytes.BaseHi), - OFFSET(KgdtLimitHi, KGDTENTRY, HighWord.Bytes.Flags2), - OFFSET(KgdtLimitLow, KGDTENTRY, LimitLow), - - HEADER("KTRAP_FRAME"), - OFFSET(TsExceptionList, KTRAP_FRAME, ExceptionList), - OFFSET(TsPreviousPreviousMode, KTRAP_FRAME, PreviousPreviousMode), - OFFSET(TsSegGs, KTRAP_FRAME, SegGs), - OFFSET(TsSegFs, KTRAP_FRAME, SegFs), - OFFSET(TsSegEs, KTRAP_FRAME, SegEs), - OFFSET(TsSegDs, KTRAP_FRAME, SegDs), - OFFSET(TsEdi, KTRAP_FRAME, Edi), - OFFSET(TsEsi, KTRAP_FRAME, Esi), - OFFSET(TsEbp, KTRAP_FRAME, Ebp), - OFFSET(TsEbx, KTRAP_FRAME, Ebx), - OFFSET(TsEdx, KTRAP_FRAME, Edx), - OFFSET(TsEcx, KTRAP_FRAME, Ecx), - OFFSET(TsEax, KTRAP_FRAME, Eax), - OFFSET(TsErrCode, KTRAP_FRAME, ErrCode), - OFFSET(TsEip, KTRAP_FRAME, Eip), - OFFSET(TsSegCs, KTRAP_FRAME, SegCs), - OFFSET(TsEflags, KTRAP_FRAME, EFlags), - OFFSET(TsHardwareEsp, KTRAP_FRAME, HardwareEsp), - OFFSET(TsHardwareSegSs, KTRAP_FRAME, HardwareSegSs), - OFFSET(TsTempSegCs, KTRAP_FRAME, TempSegCs), -// OFFSET(TsLogging, KTRAP_FRAME, Logging), - OFFSET(TsTempEsp, KTRAP_FRAME, TempEsp), - OFFSET(TsDbgEbp, KTRAP_FRAME, DbgEbp), - OFFSET(TsDbgEip, KTRAP_FRAME, DbgEip), - OFFSET(TsDbgArgMark, KTRAP_FRAME, DbgArgMark), - OFFSET(TsDbgArgPointer, KTRAP_FRAME, DbgArgPointer), - OFFSET(TsDr0, KTRAP_FRAME, Dr0), - OFFSET(TsDr1, KTRAP_FRAME, Dr1), - OFFSET(TsDr2, KTRAP_FRAME, Dr2), - OFFSET(TsDr3, KTRAP_FRAME, Dr3), - OFFSET(TsDr6, KTRAP_FRAME, Dr6), - OFFSET(TsDr7, KTRAP_FRAME, Dr7), - OFFSET(TsV86Es, KTRAP_FRAME, V86Es), - OFFSET(TsV86Ds, KTRAP_FRAME, V86Ds), - OFFSET(TsV86Fs, KTRAP_FRAME, V86Fs), - OFFSET(TsV86Gs, KTRAP_FRAME, V86Gs), - SIZE(KTRAP_FRAME_LENGTH, KTRAP_FRAME), - CONSTANT(KTRAP_FRAME_ALIGN), - CONSTANT(FRAME_EDITED), - - HEADER("KTSS"), - OFFSET(TssEsp0, KTSS, Esp0), - OFFSET(TssCR3, KTSS, CR3), - OFFSET(TssEip, KTSS, Eip), - OFFSET(TssEFlags, KTSS, EFlags), - OFFSET(TssEax, KTSS, Eax), - OFFSET(TssEbx, KTSS, Ebx), - OFFSET(TssEcx, KTSS, Ecx), - OFFSET(TssEdx, KTSS, Edx), - OFFSET(TssEsp, KTSS, Esp), - OFFSET(TssEbp, KTSS, Ebp), - OFFSET(TssEsi, KTSS, Esi), - OFFSET(TssEdi, KTSS, Edi), - OFFSET(TssEs, KTSS, Es), - OFFSET(TssCs, KTSS, Cs), - OFFSET(TssSs, KTSS, Ss), - OFFSET(TssDs, KTSS, Ds), - OFFSET(TssFs, KTSS, Fs), - OFFSET(TssGs, KTSS, Gs), - OFFSET(TssLDT, KTSS, LDT), - OFFSET(TssIoMapBase, KTSS, IoMapBase), - OFFSET(TssIoMaps, KTSS, IoMaps), - SIZE(TssLength, KTSS), - -#elif defined(_M_AMD64) - - HEADER("Argument Home Address"), - OFFSET(P1Home, CONTEXT, P1Home), - OFFSET(P2Home, CONTEXT, P1Home), - OFFSET(P3Home, CONTEXT, P1Home), - OFFSET(P4Home, CONTEXT, P1Home), - - HEADER("CONTEXT"), - OFFSET(CxP1Home, CONTEXT, P1Home), - OFFSET(CxP2Home, CONTEXT, P2Home), - OFFSET(CxP3Home, CONTEXT, P3Home), - OFFSET(CxP4Home, CONTEXT, P4Home), - OFFSET(CxP5Home, CONTEXT, P5Home), - OFFSET(CxP6Home, CONTEXT, P6Home), - OFFSET(CxContextFlags, CONTEXT, ContextFlags), - OFFSET(CxMxCsr, CONTEXT, MxCsr), - OFFSET(CxSegCs, CONTEXT, SegCs), - OFFSET(CxSegDs, CONTEXT, SegDs), - OFFSET(CxSegEs, CONTEXT, SegEs), - OFFSET(CxSegFs, CONTEXT, SegFs), - OFFSET(CxSegGs, CONTEXT, SegGs), - OFFSET(CxSegSs, CONTEXT, SegSs), - OFFSET(CxEFlags, CONTEXT, EFlags), - OFFSET(CxDr0, CONTEXT, Dr0), - OFFSET(CxDr1, CONTEXT, Dr1), - OFFSET(CxDr2, CONTEXT, Dr2), - OFFSET(CxDr3, CONTEXT, Dr3), - OFFSET(CxDr6, CONTEXT, Dr6), - OFFSET(CxDr7, CONTEXT, Dr7), - OFFSET(CxRax, CONTEXT, Rax), - OFFSET(CxRcx, CONTEXT, Rcx), - OFFSET(CxRdx, CONTEXT, Rdx), - OFFSET(CxRbx, CONTEXT, Rbx), - OFFSET(CxRsp, CONTEXT, Rsp), - OFFSET(CxRbp, CONTEXT, Rbp), - OFFSET(CxRsi, CONTEXT, Rsi), - OFFSET(CxRdi, CONTEXT, Rdi), - OFFSET(CxR8, CONTEXT, R8), - OFFSET(CxR9, CONTEXT, R9), - OFFSET(CxR10, CONTEXT, R10), - OFFSET(CxR11, CONTEXT, R11), - OFFSET(CxR12, CONTEXT, R12), - OFFSET(CxR13, CONTEXT, R13), - OFFSET(CxR14, CONTEXT, R14), - OFFSET(CxR15, CONTEXT, R15), - OFFSET(CxRip, CONTEXT, Rip), - OFFSET(CxFltSave, CONTEXT, FltSave), - OFFSET(CxXmm0, CONTEXT, Xmm0), - OFFSET(CxXmm1, CONTEXT, Xmm1), - OFFSET(CxXmm2, CONTEXT, Xmm2), - OFFSET(CxXmm3, CONTEXT, Xmm3), - OFFSET(CxXmm4, CONTEXT, Xmm4), - OFFSET(CxXmm5, CONTEXT, Xmm5), - OFFSET(CxXmm6, CONTEXT, Xmm6), - OFFSET(CxXmm7, CONTEXT, Xmm7), - OFFSET(CxXmm8, CONTEXT, Xmm8), - OFFSET(CxXmm9, CONTEXT, Xmm9), - OFFSET(CxXmm10, CONTEXT, Xmm10), - OFFSET(CxXmm11, CONTEXT, Xmm11), - OFFSET(CxXmm12, CONTEXT, Xmm12), - OFFSET(CxXmm13, CONTEXT, Xmm13), - OFFSET(CxXmm14, CONTEXT, Xmm14), - OFFSET(CxXmm15, CONTEXT, Xmm15), - OFFSET(CxDebugControl, CONTEXT, DebugControl), - OFFSET(CxLastBranchToRip, CONTEXT, LastBranchToRip), - OFFSET(CxLastBranchFromRip, CONTEXT, LastBranchFromRip), - OFFSET(CxLastExceptionToRip, CONTEXT, LastExceptionToRip), - OFFSET(CxLastExceptionFromRip, CONTEXT, LastExceptionFromRip), - OFFSET(CxVectorControl, CONTEXT, VectorControl), - OFFSET(CxVectorRegister, CONTEXT, VectorRegister), - SIZE(CONTEXT_FRAME_LENGTH, CONTEXT), - - HEADER("DISPATCHER_CONTEXT"), - OFFSET(DcControlPc, TYPE, ControlPc), - OFFSET(DcImageBase, TYPE, ImageBase), - OFFSET(DcFunctionEntry, TYPE, FunctionEntry), - OFFSET(DcEstablisherFrame, TYPE, EstablisherFrame), - OFFSET(DcTargetIp, TYPE, TargetIp), - OFFSET(DcContextRecord, TYPE, ContextRecord), - OFFSET(DcLanguageHandler, TYPE, LanguageHandler), - OFFSET(DcHandlerData, TYPE, HandlerData), - OFFSET(DcHistoryTable, TYPE, HistoryTable), - OFFSET(DcScopeIndex, TYPE, ScopeIndex), - - HEADER("KEXCEPTION_FRAME"), - OFFSET(ExP1Home, KEXCEPTION_FRAME, P1Home), - OFFSET(ExP2Home, KEXCEPTION_FRAME, P2Home), - OFFSET(ExP3Home, KEXCEPTION_FRAME, P3Home), - OFFSET(ExP4Home, KEXCEPTION_FRAME, P4Home), - OFFSET(ExP5, KEXCEPTION_FRAME, P5), - OFFSET(ExXmm6, KEXCEPTION_FRAME, Xmm6), - OFFSET(ExXmm7, KEXCEPTION_FRAME, Xmm7), - OFFSET(ExXmm8, KEXCEPTION_FRAME, Xmm8), - OFFSET(ExXmm9, KEXCEPTION_FRAME, Xmm9), - OFFSET(ExXmm10, KEXCEPTION_FRAME, Xmm10), - OFFSET(ExXmm11, KEXCEPTION_FRAME, Xmm11), - OFFSET(ExXmm12, KEXCEPTION_FRAME, Xmm12), - OFFSET(ExXmm13, KEXCEPTION_FRAME, Xmm13), - OFFSET(ExXmm14, KEXCEPTION_FRAME, Xmm14), - OFFSET(ExXmm15, KEXCEPTION_FRAME, Xmm15), - OFFSET(ExMxCsr, KEXCEPTION_FRAME, MxCsr), - OFFSET(ExRbp, KEXCEPTION_FRAME, Rbp), - OFFSET(ExRbx, KEXCEPTION_FRAME, Rbx), - OFFSET(ExRdi, KEXCEPTION_FRAME, Rdi), - OFFSET(ExRsi, KEXCEPTION_FRAME, Rsi), - OFFSET(ExR12, KEXCEPTION_FRAME, R12), - OFFSET(ExR13, KEXCEPTION_FRAME, R13), - OFFSET(ExR14, KEXCEPTION_FRAME, R14), - OFFSET(ExR15, KEXCEPTION_FRAME, R15), - OFFSET(ExReturn, KEXCEPTION_FRAME, Return), - OFFSET(CuInitialStack, KEXCEPTION_FRAME, InitialStack), - OFFSET(CuTrapFrame, KEXCEPTION_FRAME, TrapFrame), - OFFSET(CuCallbackStack, KEXCEPTION_FRAME, CallbackStack), - OFFSET(CuOutputBuffer, KEXCEPTION_FRAME, OutputBuffer), - OFFSET(CuOutputLength, KEXCEPTION_FRAME, OutputLength), - SIZE(KEXCEPTION_FRAME_LENGTH, KEXCEPTION_FRAME), - - HEADER("JUMP_BUFFER"), - OFFSET(JbFrame, JUMP_BUFFER, Frame), - OFFSET(JbRbx, JUMP_BUFFER, Rbx), - OFFSET(JbRsp, JUMP_BUFFER, Rsp), - OFFSET(JbRbp, JUMP_BUFFER, Rbp), - OFFSET(JbRsi, JUMP_BUFFER, Rsi), - OFFSET(JbRdi, JUMP_BUFFER, Rdi), - OFFSET(JbR12, JUMP_BUFFER, R12), - OFFSET(JbR13, JUMP_BUFFER, R13), - OFFSET(JbR14, JUMP_BUFFER, R14), - OFFSET(JbR15, JUMP_BUFFER, R15), - OFFSET(JbRip, JUMP_BUFFER, Rip), - OFFSET(JbMxCsr, JUMP_BUFFER, MxCsr), - OFFSET(JbFpCsr, JUMP_BUFFER, FpCsr), - OFFSET(JbXmm6, JUMP_BUFFER, Xmm6), - OFFSET(JbXmm7, JUMP_BUFFER, Xmm7), - OFFSET(JbXmm8, JUMP_BUFFER, Xmm8), - OFFSET(JbXmm9, JUMP_BUFFER, Xmm9), - OFFSET(JbXmm10, JUMP_BUFFER, Xmm10), - OFFSET(JbXmm11, JUMP_BUFFER, Xmm11), - OFFSET(JbXmm12, JUMP_BUFFER, Xmm12), - OFFSET(JbXmm13, JUMP_BUFFER, Xmm13), - OFFSET(JbXmm14, JUMP_BUFFER, Xmm14), - OFFSET(JbXmm15, JUMP_BUFFER, Xmm15), - - HEADER("KGDT64"), - OFFSET(KgdtBaseLow, KGDT64, BaseLow), - OFFSET(KgdtBaseMiddle, KGDT64, BaseMiddle), - OFFSET(KgdtBaseHigh, KGDT64, BaseHigh), - OFFSET(KgdtBaseUpper, KGDT64, BaseUpper), - OFFSET(KgdtLimitHigh, KGDT64, LimitHigh), - OFFSET(KgdtLimitLow, KGDT64, LimitLow), - CONSTANT(KGDT_LIMIT_ENCODE_MASK), - - HEADER("KPRCB"), - OFFSET(PbMxCsr, KPRCB, MxCsr), - OFFSET(PbNumber, KPRCB, Number), - OFFSET(PbInterruptRequest, KPRCB, InterruptRequest), - OFFSET(PbIdleHalt, KPRCB, IdleHalt), - OFFSET(PbCurrentThread, KPRCB, CurrentThread), - OFFSET(PbNextThread, KPRCB, NextThread), - OFFSET(PbIdleThread, KPRCB, IdleThread), - OFFSET(PbNestingLevel, KPRCB, NestingLevel), - OFFSET(PbRspBase, KPRCB, RspBase), - OFFSET(PbPrcbLock, KPRCB, PrcbLock), - OFFSET(PbSetMember, KPRCB, SetMember), - OFFSET(PbProcessorState, KPRCB, ProcessorState), - OFFSET(PbCpuType, KPRCB, CpuType), - OFFSET(PbCpuID, KPRCB, CpuID), - OFFSET(PbCpuStep, KPRCB, CpuStep), - OFFSET(PbHalReserved, KPRCB, HalReserved), - OFFSET(PbMinorVersion, KPRCB, MinorVersion), - OFFSET(PbMajorVersion, KPRCB, MajorVersion), - OFFSET(PbBuildType, KPRCB, BuildType), - OFFSET(PbCpuVendor, KPRCB, CpuVendor), - OFFSET(PbCoresPerPhysicalProcessor, KPRCB, CoresPerPhysicalProcessor), - OFFSET(PbLogicalProcessorsPerCore, KPRCB, LogicalProcessorsPerCore), - OFFSET(PbApicMask, KPRCB, ApicMask), - OFFSET(PbCFlushSize, KPRCB, CFlushSize), - OFFSET(PbAcpiReserved, KPRCB, AcpiReserved), - OFFSET(PbInitialApicId, KPRCB, InitialApicId), - OFFSET(PbStride, KPRCB, Stride), - OFFSET(PbLockQueue, KPRCB, LockQueue), - OFFSET(PbPPLookasideList, KPRCB, PPLookasideList), - OFFSET(PbPPNPagedLookasideList, KPRCB, PPNPagedLookasideList), - OFFSET(PbPPPagedLookasideList, KPRCB, PPPagedLookasideList), - OFFSET(PbPacketBarrier, KPRCB, PacketBarrier), - OFFSET(PbDeferredReadyListHead, KPRCB, DeferredReadyListHead), - OFFSET(PbLookasideIrpFloat, KPRCB, LookasideIrpFloat), - OFFSET(PbSystemCalls, KPRCB, SystemCalls), - OFFSET(PbReadOperationCount, KPRCB, ReadOperationCount), - OFFSET(PbWriteOperationCount, KPRCB, WriteOperationCount), - OFFSET(PbOtherOperationCount, KPRCB, OtherOperationCount), - OFFSET(PbReadTransferCount, KPRCB, ReadTransferCount), - OFFSET(PbWriteTransferCount, KPRCB, WriteTransferCount), - OFFSET(PbOtherTransferCount, KPRCB, OtherTransferCount), - OFFSET(PbContextSwitches, KPRCB, ContextSwitches), - OFFSET(PbTargetSet, KPRCB, TargetSet), - OFFSET(PbIpiFrozen, KPRCB, IpiFrozen), - OFFSET(PbRequestMailbox, KPRCB, RequestMailbox), - OFFSET(PbSenderSummary, KPRCB, SenderSummary), - OFFSET(PbDpcListHead, KPRCB, DpcListHead), - OFFSET(PbDpcLock, KPRCB, DpcLock), - OFFSET(PbDpcQueueDepth, KPRCB, DpcQueueDepth), - OFFSET(PbDpcCount, KPRCB, DpcCount), - OFFSET(PbDpcStack, KPRCB, DpcStack), - OFFSET(PbMaximumDpcQueueDepth, KPRCB, MaximumDpcQueueDepth), - OFFSET(PbDpcRequestRate, KPRCB, DpcRequestRate), - OFFSET(PbMinimumDpcRate, KPRCB, MinimumDpcRate), - OFFSET(PbDpcInterruptRequested, KPRCB, DpcInterruptRequested), - OFFSET(PbDpcThreadRequested, KPRCB, DpcThreadRequested), - OFFSET(PbDpcRoutineActive, KPRCB, DpcRoutineActive), - OFFSET(PbDpcThreadActive, KPRCB, DpcThreadActive), - OFFSET(PbTimerHand, KPRCB, TimerHand), - OFFSET(PbTimerRequest, KPRCB, TimerRequest), - OFFSET(PbTickOffset, KPRCB, TickOffset), - OFFSET(PbMasterOffset, KPRCB, MasterOffset), - OFFSET(PbDpcLastCount, KPRCB, DpcLastCount), - OFFSET(PbQuantumEnd, KPRCB, QuantumEnd), - OFFSET(PbDpcSetEventRequest, KPRCB, DpcSetEventRequest), - OFFSET(PbIdleSchedule, KPRCB, IdleSchedule), - OFFSET(PbReadySummary, KPRCB, ReadySummary), - OFFSET(PbDispatcherReadyListHead, KPRCB, DispatcherReadyListHead), - OFFSET(PbInterruptCount, KPRCB, InterruptCount), - OFFSET(PbKernelTime, KPRCB, KernelTime), - OFFSET(PbUserTime, KPRCB, UserTime), - OFFSET(PbDpcTime, KPRCB, DpcTime), - OFFSET(PbInterruptTime, KPRCB, InterruptTime), - OFFSET(PbAdjustDpcThreshold, KPRCB, AdjustDpcThreshold), - OFFSET(PbSkipTick, KPRCB, SkipTick), - OFFSET(PbPollSlot, KPRCB, PollSlot), - OFFSET(PbParentNode, KPRCB, ParentNode), - OFFSET(PbMultiThreadProcessorSet, KPRCB, MultiThreadProcessorSet), - OFFSET(PbMultiThreadSetMaster, KPRCB, MultiThreadSetMaster), - OFFSET(PbStartCycles, KPRCB, StartCycles), - OFFSET(PbPageColor, KPRCB, PageColor), - OFFSET(PbNodeColor, KPRCB, NodeColor), - OFFSET(PbNodeShiftedColor, KPRCB,NodeShiftedColor), - OFFSET(PbSecondaryColorMask, KPRCB, SecondaryColorMask), - OFFSET(PbSleeping, KPRCB, Sleeping), - OFFSET(PbCycleTime, KPRCB, CycleTime), - OFFSET(PbFastReadNoWait, KPRCB, FastReadNoWait), - OFFSET(PbFastReadWait, KPRCB, FastReadWait), - OFFSET(PbFastReadNotPossible, KPRCB, FastReadNotPossible), - OFFSET(PbCopyReadNoWait, KPRCB, CopyReadNoWait), - OFFSET(PbCopyReadWait, KPRCB, CopyReadWait), - OFFSET(PbCopyReadNoWaitMiss, KPRCB, CopyReadNoWaitMiss), - OFFSET(PbAlignmentFixupCount, KPRCB, AlignmentFixupCount), - OFFSET(PbExceptionDispatchCount, KPRCB, ExceptionDispatchCount), - OFFSET(PbVendorString, KPRCB, VendorString), - OFFSET(PbPowerState, KPRCB, PowerState), - SIZE(ProcessorBlockLength, KPRCB), - - HEADER("KPCR"), - OFFSET(PcGdt, KPCR, Gdt), - OFFSET(PcTss, KPCR, Tss), - OFFSET(PcUserRsp, KPCR, UserRsp), - OFFSET(PcSelf, KPCR, Self), - OFFSET(PcCurrentPrcb, KPCR, CurrentPrcb), - OFFSET(PcLockArray, KPCR, LockArray), - OFFSET(PcTeb, KPCR, Teb), - OFFSET(PcIdt, KPCR, Idt), - OFFSET(PcIrql, KPCR, Irql), - OFFSET(PcStallScaleFactor, KPCR, StallScaleFactor), - OFFSET(PcHalReserved, KPCR, HalReserved), - OFFSET(PcPrcb, KPCR, Prcb), - OFFSET(PcMxCsr, KPCR, MxCsr), - OFFSET(PcNumber, KPCR, Number), - OFFSET(PcInterruptRequest, KPCR, InterruptRequest), - OFFSET(PcIdleHalt, KPCR, IdleHalt), - OFFSET(PcCurrentThread, KPCR, CurrentThread), - OFFSET(PcNextThread, KPCR, NextThread), - OFFSET(PcIdleThread, KPCR, IdleThread), - OFFSET(PcIpiFrozen, KPCR, IpiFrozen), - OFFSET(PcNestingLevel, KPCR, NestingLevel), - OFFSET(PcRspBase, KPCR, RspBase), - OFFSET(PcPrcbLock, KPCR, PrcbLock), - OFFSET(PcSetMember, KPCR, SetMember), - OFFSET(PcCr0, KPCR, Cr0), - OFFSET(PcCr2, KPCR, Cr2), - OFFSET(PcCr3, KPCR, Cr3), - OFFSET(PcCr4, KPCR, Cr4), - OFFSET(PcKernelDr0, KPCR, KernelDr0), - OFFSET(PcKernelDr1, KPCR, KernelDr1), - OFFSET(PcKernelDr2, KPCR, KernelDr2), - OFFSET(PcKernelDr3, KPCR, KernelDr3), - OFFSET(PcKernelDr7, KPCR, KernelDr7), - OFFSET(PcGdtrLimit, KPCR, GdtrLimit), - OFFSET(PcGdtrBase, KPCR, GdtrBase), - OFFSET(PcIdtrLimit, KPCR, IdtrLimit), - OFFSET(PcIdtrBase, KPCR, IdtrBase), - OFFSET(PcTr, KPCR, Tr), - OFFSET(PcLdtr, KPCR, Ldtr), - OFFSET(PcDebugControl, KPCR, DebugControl), - OFFSET(PcLastBranchToRip, KPCR, LastBranchToRip), - OFFSET(PcLastBranchFromRip, KPCR, LastBranchFromRip), - OFFSET(PcLastExceptionToRip, KPCR, LastExceptionToRip), - OFFSET(PcLastExceptionFromRip, KPCR, LastExceptionFromRip), - OFFSET(PcCr8, KPCR, Cr8), - OFFSET(PcCpuType, KPCR, CpuType), - OFFSET(PcCpuID, KPCR, CpuID), - OFFSET(PcCpuStep, KPCR, CpuStep), - OFFSET(PcCpuVendor, KPCR, CpuVendor), - OFFSET(PcVirtualApicAssist, KPCR, VirtualApicAssist), - OFFSET(PcCFlushSize, KPCR, CFlushSize), - OFFSET(PcDeferredReadyListHead, KPCR, DeferredReadyListHead), - OFFSET(PcSystemCalls, KPCR, SystemCalls), - OFFSET(PcDpcRoutineActive, KPCR, DpcRoutineActive), - OFFSET(PcInterruptCount, KPCR, InterruptCount), - OFFSET(PcDebuggerSavedIRQL, KPCR, DebuggerSavedIRQL), - OFFSET(PcTickOffset, KPCR, TickOffset), - OFFSET(PcMasterOffset, KPCR, MasterOffset), - OFFSET(PcSkipTick, KPCR, SkipTick), - OFFSET(PcStartCycles, KPCR, StartCycles), - SIZE(ProcessorControlRegisterLength, KPCR), - - HEADER("KPROCESSOR_STATE"), - OFFSET(PsSpecialRegisters, KPROCESSOR_STATE, SpecialRegisters), - OFFSET(PsCr0, KPROCESSOR_STATE, Cr0), - OFFSET(PsCr2, KPROCESSOR_STATE, Cr2), - OFFSET(PsCr3, KPROCESSOR_STATE, Cr3), - OFFSET(PsCr4, KPROCESSOR_STATE, Cr4), - OFFSET(PsKernelDr0, KPROCESSOR_STATE, KernelDr0), - OFFSET(PsKernelDr1, KPROCESSOR_STATE, KernelDr1), - OFFSET(PsKernelDr2, KPROCESSOR_STATE, KernelDr2), - OFFSET(PsKernelDr3, KPROCESSOR_STATE, KernelDr3), - OFFSET(PsKernelDr6, KPROCESSOR_STATE, KernelDr6), - OFFSET(PsKernelDr7, KPROCESSOR_STATE, KernelDr7), - OFFSET(PsGdtr, KPROCESSOR_STATE, Gdtr), - OFFSET(PsIdtr, KPROCESSOR_STATE, Idtr), - OFFSET(PsTr, KPROCESSOR_STATE, Tr), - OFFSET(PsLdtr, KPROCESSOR_STATE, Ldtr), - OFFSET(PsMxCsr, KPROCESSOR_STATE, MxCsr), - OFFSET(PsContextFrame, KPROCESSOR_STATE, ContextFrame), - OFFSET(PsDebugControl, KPROCESSOR_STATE, DebugControl), - OFFSET(PsLastBranchToRip, KPROCESSOR_STATE, LastBranchToRip), - OFFSET(PsLastBranchFromRip, KPROCESSOR_STATE, LastBranchFromRip), - OFFSET(PsLastExceptionToRip, KPROCESSOR_STATE, LastExceptionToRip), - OFFSET(PsLastExceptionFromRip, KPROCESSOR_STATE, LastExceptionFromRip), - OFFSET(PsCr8, KPROCESSOR_STATE, Cr8), - SIZE(ProcessorStateLength, KPROCESSOR_STATE), - - HEADER("KSTART_FRAME"), - OFFSET(SfP1Home, KSTART_FRAME, P1Home), - OFFSET(SfP2Home, KSTART_FRAME, P2Home), - OFFSET(SfP3Home, KSTART_FRAME, P3Home), - OFFSET(SfP4Home, KSTART_FRAME, P4Home), - OFFSET(SfReturn, KSTART_FRAME, Return), - SIZE(KSTART_FRAME_LENGTH, KSTART_FRAME), - - HEADER("KSPECIAL_REGISTERS"), - OFFSET(SrKernelDr0, KSPECIAL_REGISTERS, KernelDr0), - OFFSET(SrKernelDr1, KSPECIAL_REGISTERS, KernelDr1), - OFFSET(SrKernelDr2, KSPECIAL_REGISTERS, KernelDr2), - OFFSET(SrKernelDr3, KSPECIAL_REGISTERS, KernelDr3), - OFFSET(SrKernelDr6, KSPECIAL_REGISTERS, KernelDr6), - OFFSET(SrKernelDr7, KSPECIAL_REGISTERS, KernelDr7), - OFFSET(SrGdtr, KSPECIAL_REGISTERS, Gdtr), - OFFSET(SrIdtr, KSPECIAL_REGISTERS, Idtr), - OFFSET(SrTr, KSPECIAL_REGISTERS, Tr), - OFFSET(SrMxCsr, KSPECIAL_REGISTERS, MxCsr), - OFFSET(SrMsrGsBase, KSPECIAL_REGISTERS, MsrGsBase), - OFFSET(SrMsrGsSwap, KSPECIAL_REGISTERS, MsrGsSwap), - OFFSET(SrMsrStar, KSPECIAL_REGISTERS, MsrStar), - OFFSET(SrMsrLStar, KSPECIAL_REGISTERS, MsrLStar), - OFFSET(SrMsrCStar, KSPECIAL_REGISTERS, MsrCStar), - OFFSET(SrMsrSyscallMask, KSPECIAL_REGISTERS, MsrSyscallMask), - - HEADER("KSYSTEM_TIME"), - OFFSET(StLowTime, KSYSTEM_TIME, LowTime), - OFFSET(StHigh1Time, KSYSTEM_TIME, High1Time), - OFFSET(StHigh2Time, KSYSTEM_TIME, High2Time), - - HEADER("KSWITCH_FRAME"), - OFFSET(SwP5Home, KSWITCH_FRAME, P5Home), - OFFSET(SwApcBypass, KSWITCH_FRAME, ApcBypass), - OFFSET(SwRbp, KSWITCH_FRAME, Rbp), - OFFSET(SwReturn, KSWITCH_FRAME, Return), - SIZE(SwitchFrameLength, KSWITCH_FRAME), - SIZE(KSWITCH_FRAME_LENGTH, KSWITCH_FRAME), - - HEADER("KTRAP_FRAME"), - OFFSET(TrP1Home, KTRAP_FRAME, P1Home), - OFFSET(TrP2Home, KTRAP_FRAME, P2Home), - OFFSET(TrP3Home, KTRAP_FRAME, P3Home), - OFFSET(TrP4Home, KTRAP_FRAME, P4Home), - OFFSET(TrP5, KTRAP_FRAME, P5), - OFFSET(TrPreviousMode, KTRAP_FRAME, PreviousMode), - OFFSET(TrPreviousIrql, KTRAP_FRAME, PreviousIrql), - OFFSET(TrFaultIndicator, KTRAP_FRAME, FaultIndicator), - OFFSET(TrExceptionActive, KTRAP_FRAME, ExceptionActive), - OFFSET(TrMxCsr, KTRAP_FRAME, MxCsr), - OFFSET(TrRax, KTRAP_FRAME, Rax), - OFFSET(TrRcx, KTRAP_FRAME, Rcx), - OFFSET(TrRdx, KTRAP_FRAME, Rdx), - OFFSET(TrR8, KTRAP_FRAME, R8), - OFFSET(TrR9, KTRAP_FRAME, R9), - OFFSET(TrR10, KTRAP_FRAME, R10), - OFFSET(TrR11, KTRAP_FRAME, R11), - OFFSET(TrGsBase, KTRAP_FRAME, GsBase), - OFFSET(TrGsSwap, KTRAP_FRAME,GsSwap), - OFFSET(TrXmm0, KTRAP_FRAME, Xmm0), - OFFSET(TrXmm1, KTRAP_FRAME, Xmm1), - OFFSET(TrXmm2, KTRAP_FRAME, Xmm2), - OFFSET(TrXmm3, KTRAP_FRAME, Xmm3), - OFFSET(TrXmm4, KTRAP_FRAME, Xmm4), - OFFSET(TrXmm5, KTRAP_FRAME, Xmm5), - OFFSET(TrFaultAddress, KTRAP_FRAME, FaultAddress), - OFFSET(TrTimeStampCKCL, KTRAP_FRAME, TimeStampCKCL), - OFFSET(TrDr0, KTRAP_FRAME, Dr0), - OFFSET(TrDr1, KTRAP_FRAME, Dr1), - OFFSET(TrDr2, KTRAP_FRAME, Dr2), - OFFSET(TrDr3, KTRAP_FRAME, Dr3), - OFFSET(TrDr6, KTRAP_FRAME, Dr6), - OFFSET(TrDr7, KTRAP_FRAME, Dr7), - OFFSET(TrDebugControl, KTRAP_FRAME, DebugControl), - OFFSET(TrLastBranchToRip, KTRAP_FRAME, LastBranchToRip), - OFFSET(TrLastBranchFromRip, KTRAP_FRAME, LastBranchFromRip), - OFFSET(TrLastExceptionToRip, KTRAP_FRAME, LastExceptionToRip), - OFFSET(TrLastExceptionFromRip, KTRAP_FRAME, LastExceptionFromRip), - OFFSET(TrLastBranchControl, KTRAP_FRAME, LastBranchControl), - OFFSET(TrLastBranchMSR, KTRAP_FRAME, LastBranchMSR), - OFFSET(TrSegDs, KTRAP_FRAME, SegDs), - OFFSET(TrSegEs, KTRAP_FRAME, SegEs), - OFFSET(TrSegFs, KTRAP_FRAME, SegFs), - OFFSET(TrSegGs, KTRAP_FRAME, SegGs), - OFFSET(TrTrapFrame, KTRAP_FRAME, TrapFrame), - OFFSET(TrRbx, KTRAP_FRAME, Rbx), - OFFSET(TrRdi, KTRAP_FRAME, Rdi), - OFFSET(TrRsi, KTRAP_FRAME, Rsi), - OFFSET(TrRbp, KTRAP_FRAME, Rbp), - OFFSET(TrErrorCode, KTRAP_FRAME, ErrorCode), - OFFSET(TrTimeStampKlog, KTRAP_FRAME, TimeStampKlog), - OFFSET(TrRip, KTRAP_FRAME, Rip), - OFFSET(TrSegCs, KTRAP_FRAME, SegCs), - OFFSET(TrLogging, KTRAP_FRAME, Logging), - OFFSET(TrEFlags, KTRAP_FRAME, EFlags), - OFFSET(TrRsp, KTRAP_FRAME, Rsp), - OFFSET(TrSegSs, KTRAP_FRAME, SegSs), - OFFSET(TrCodePatchCycle, KTRAP_FRAME, CodePatchCycle), - SIZE(KTRAP_FRAME_LENGTH, KTRAP_FRAME), - - HEADER("KTIMER_TABLE"), - OFFSET(TtEntry, KTIMER_TABLE, TimerEntries), - OFFSET(TtTime, KTIMER_TABLE, Time), - SIZE(TIMER_ENTRY_SIZE, KTIMER_ENTRY), - SIZE(TIMER_TABLE_SIZE, KTIMER_TABLE), - SIZE(KTIMER_TABLE_SIZE, KTIMER_TABLE), - - HEADER("KTSS"), - OFFSET(TssRsp0, TYPE, Rsp0), - OFFSET(TssRsp1, TYPE, Rsp1), - OFFSET(TssRsp2, TYPE, Rsp2), - OFFSET(TssPanicStack, TYPE, PanicStack), - OFFSET(TssMcaStack, TYPE, McaStack), - OFFSET(TssNmiStack, TYPE, NmiStack), - OFFSET(TssIoMapBase, TYPE, IoMapBase), - SIZE(TssLength, TYPE), - -#endif - - /* End of list */ - {-1, "", 0} -}; - diff --git a/reactos/tools/geninc/geninc.c b/reactos/tools/geninc/geninc.c deleted file mode 100644 index a3f6605b63d..00000000000 --- a/reactos/tools/geninc/geninc.c +++ /dev/null @@ -1,220 +0,0 @@ - - -#include -#include -#include - -#define IMAGE_FILE_MACHINE_I386 0x014c -#define IMAGE_FILE_MACHINE_AMD64 0x8664 -#define IMAGE_FILE_MACHINE_ARMNT 0x01c4 - -#ifdef _WIN32 -#define PRIx64 "I64x" -typedef unsigned __int16 uint16_t; -typedef unsigned __int32 uint32_t; -typedef unsigned __int64 uint64_t; -#else -#include -#define PRIx64 "llx" -#define _stricmp strcasecmp -#endif - -typedef struct -{ - char Type; - char Name[55]; - uint64_t Value; -} ASMGENDATA; - -#define TYPE_END 0 -#define TYPE_RAW 1 -#define TYPE_CONSTANT 2 -#define TYPE_HEADER 3 - -int main(int argc, char* argv[]) -{ - FILE *input, *output; - ASMGENDATA data; - int i, result = -1; - int ms_format = 0; - char header[20]; - uint32_t e_lfanew, signature; - uint16_t Machine, NumberOfSections, SizeOfOptionalHeader; - typedef struct - { - char Name[8]; - uint32_t VirtualSize; - uint32_t VirtualAddress; - uint32_t RawSize; - uint32_t RawAddress; - uint32_t RelocAddress; - uint32_t LineNumbers; - uint16_t RelocationsNumber; - uint16_t LineNumbersNumber; - uint32_t Characteristics; - } SECTION; - SECTION section; - - if (argc >= 4 && _stricmp(argv[3], "-ms") == 0) ms_format = 1; - - /* Open the input file */ - input = fopen(argv[1], "rb"); - if (!input) - { - fprintf(stderr, "Could not open input file '%s'\n", argv[1]); - return -1; - } - - /* Open the output file */ - output = fopen(argv[2], "w"); - if (!output) - { - fclose(input); - fprintf(stderr, "Could not open output file '%s'\n", argv[2]); - return -1; - } - - /* Read the DOS header */ - if (fread(&header, 1, 2, input) != 2) - { - fprintf(stderr, "Error reading header.\n"); - goto quit; - } - - if (header[0] != 0x4d || header[1] != 0x5a) - { - fprintf(stderr, "Not a PE file.\n"); - goto quit; - } - - fseek(input, 0x3C, SEEK_SET); - if (fread(&e_lfanew, 1, 4, input) != 4) - { - fprintf(stderr, "Could not read e_lfanew.\n"); - goto quit; - } - - fseek(input, e_lfanew, SEEK_SET); - if (fread(&signature, 1, 4, input) != 4) - { - fprintf(stderr, "Could not read signature.\n"); - goto quit; - } - - /* Verify the PE signature */ - if (signature != 0x4550) - { - fprintf(stderr, "Invalid signature: 0x%lx.\n", signature); - goto quit; - } - - /* Read Machine */ - fseek(input, e_lfanew + 4, SEEK_SET); - if (fread(&Machine, 1, 2, input) != 2) - { - fprintf(stderr, "Could not read ExportDirectoryRVA.\n"); - goto quit; - } - - if ((Machine != IMAGE_FILE_MACHINE_I386) && - (Machine != IMAGE_FILE_MACHINE_AMD64) && - (Machine != IMAGE_FILE_MACHINE_ARMNT)) - { - fprintf(stderr, "Invalid Machine: 0x%x.\n", Machine); - goto quit; - } - - /* Read NumberOfSections */ - if (fread(&NumberOfSections, 1, 2, input) != 2) - { - fprintf(stderr, "Could not read NumberOfSections.\n"); - goto quit; - } - - fseek(input, e_lfanew + 0x14, SEEK_SET); - if (fread(&SizeOfOptionalHeader, 1, 2, input) != 2) - { - fprintf(stderr, "Could not read SizeOfOptionalHeader.\n"); - goto quit; - } - - /* Read the section table */ - fseek(input, e_lfanew + 0x18 + SizeOfOptionalHeader, SEEK_SET); - - /* Search for the .asmdef section */ - for (i = 0; i < NumberOfSections; i++) - { - if (fread(§ion, 1, sizeof(SECTION), input) != sizeof(SECTION)) - { - fprintf(stderr, "Could not read section.\n"); - goto quit; - } - - if (strcmp(section.Name, ".asmdef") == 0) - { - break; - } - } - - if (i == NumberOfSections) - { - fprintf(stderr, "Could not find section.\n"); - goto quit; - } - - /* Read the section table */ - fseek(input, section.RawAddress, SEEK_SET); - - while (1) - { - /* Read one entry */ - if (fread(&data, 1, sizeof(data), input) != sizeof(data)) - { - fprintf(stderr, "Error reading input file.\n"); - goto quit; - } - - switch(data.Type) - { - case TYPE_END: - break; - - case TYPE_RAW: - fprintf(output, "%s\n", data.Name); - continue; - - case TYPE_CONSTANT: - if (ms_format) - { - fprintf(output, "%s equ 0%"PRIx64"h\n", data.Name, data.Value); - } - else - { - fprintf(output, "%s = 0x%"PRIx64"\n", data.Name, data.Value); - } - continue; - - case TYPE_HEADER: - if (ms_format) - { - fprintf(output, "\n; %s\n", data.Name); - } - else - { - fprintf(output, "\n/* %s */\n", data.Name); - } - continue; - } - - break; - } - - result = 0; - -quit: - /* Close files */ - fclose(input); - fclose(output); - - return result; -} diff --git a/reactos/tools/getdate.c b/reactos/tools/getdate.c deleted file mode 100644 index 892a8ea40fa..00000000000 --- a/reactos/tools/getdate.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -void main() -{ - char curdate[9]; - time_t now; - struct tm *tm_now; - - time(&now); - tm_now=localtime(&now); - strftime(curdate, sizeof(curdate), "%Y%m%d", tm_now); - printf("%s", curdate); -} diff --git a/reactos/tools/getdate.cmd b/reactos/tools/getdate.cmd deleted file mode 100644 index 324e24d6ece..00000000000 --- a/reactos/tools/getdate.cmd +++ /dev/null @@ -1 +0,0 @@ -gcc getdate.c -o getdate.exe -s diff --git a/reactos/tools/getdate.exe b/reactos/tools/getdate.exe deleted file mode 100644 index d3e80076f83..00000000000 Binary files a/reactos/tools/getdate.exe and /dev/null differ diff --git a/reactos/tools/hpp/hpp.c b/reactos/tools/hpp/hpp.c deleted file mode 100644 index 07267e68997..00000000000 --- a/reactos/tools/hpp/hpp.c +++ /dev/null @@ -1,541 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: Header preprocessor - * PURPOSE: Generates header files from other header files - * PROGRAMMER; Timo Kreuzer - * - */ - -#include -#include -#include -#include -#include - -//#define DBG 1 - -#if DBG -#define trace printf -#else -#define trace if (0) printf -#endif - -typedef struct _DEFINE -{ - struct _DEFINE *pNext; - int len; - int val; - char szName[1]; -} DEFINE, *PDEFINE; - -DEFINE *gpDefines = 0; -int iLine; -const char *gpszCurFile; - -char* -convert_path(const char* origpath) -{ - char* newpath; - int i; - - newpath = strdup(origpath); - - i = 0; - while (newpath[i] != 0) - { -#ifdef UNIX_PATHS - if (newpath[i] == '\\') - { - newpath[i] = '/'; - } -#else -#ifdef DOS_PATHS - if (newpath[i] == '/') - { - newpath[i] = '\\'; - } -#endif -#endif - i++; - } - return(newpath); -} - -char* -GetFolder(const char* pszFullPath) -{ - return "."; -} - -void* -LoadFile(const char* pszFileName, size_t* pFileSize) -{ - FILE* file; - void* pFileData = NULL; - int iFileSize; - - trace("Loading file..."); - - file = fopen(pszFileName, "rb"); - if (!file) - { - trace("Could not open file\n"); - return NULL; - } - - fseek(file, 0L, SEEK_END); - iFileSize = ftell(file); - fseek(file, 0L, SEEK_SET); - *pFileSize = iFileSize; - trace("ok. Size is %d\n", iFileSize); - - pFileData = malloc(iFileSize + 1); - - if (pFileData != NULL) - { - if (iFileSize != fread(pFileData, 1, iFileSize, file)) - { - free(pFileData); - pFileData = NULL; - } - } - else - { - trace("Could not allocate memory for file\n"); - } - - fclose(file); - - return pFileData; -} - - -int -error(char *format, ...) -{ - va_list valist; - int res; - va_start(valist, format); - res = vfprintf(stderr, format, valist); - va_end(valist); - return res; -} - -char* -GetNextChar(const char *psz) -{ - while (*psz == ' ' || *psz == '\t') psz++; - return (char*)psz; -} - -char* -GetNextLine(char *pszLine) -{ - /* Walk to the end of the line */ - while (*pszLine != 13 && *pszLine != 10 && *pszLine != 0) pszLine++; - - /* Skip one CR/LF */ - if (pszLine[0] == 13 && pszLine[1] == 10) - pszLine += 2; - else if (pszLine[0] == 13 || pszLine[0] == 10) - pszLine++; - - if (*pszLine == 0) - { - return 0; - } - - return pszLine; -} - -int -strxlen(const char *psz) -{ - int len = 0; - while (isalnum(*psz) || *psz == '_') - { - psz++; - len++; - } - return len; -} - - -void -WriteLine(char *pszLine, FILE *fileOut) -{ - char * pszEnd; - - pszEnd = strchr(pszLine, '\n'); - if (pszEnd) - { - int len = pszEnd - pszLine + 1; - fwrite(pszLine, 1, len, fileOut); - } -} - -int -EvaluateConstant(const char *p, char **pNext) -{ - PDEFINE pDefine; - int len; - - len = strxlen(p); - if (pNext) - *pNext = (char*)p + len; - - /* search for the define in the global list */ - pDefine = gpDefines; - while (pDefine != 0) - { - trace("found a define: %s\n", pDefine->szName); - if (pDefine->len == len) - { - if (strncmp(p, pDefine->szName, len) == 0) - { - return pDefine->val; - } - } - pDefine = pDefine->pNext; - } - return 0; -} - -int -EvaluateExpression(char *pExpression, char **pNext) -{ - char *p, *pstart; - int inv, thisval, val = 0; - - trace("evaluating expression\n"); - - pstart = GetNextChar(pExpression); - if (*pstart != '(') - { - error("Parse error: expected '(' \n"); - return -1; - } - - while (1) - { - /* Get the start of the real expression */ - p = pstart; - if ((p[0] == '&' && p[1] == '&') || - (p[0] == '|' && p[1] == '|')) - { - p++; - } - p = GetNextChar(p + 1); - - /* Check for inversion modifier */ - if (*p == '!') - { - inv = 1; - p = GetNextChar(p + 1); - } - else - inv = 0; - - /* Beginning of a new subexpression? */ - if (*p == '(') - { - /* Evaluate subexpression */ - thisval = EvaluateExpression(p, &p); - } - else if (isdigit(*p)) - { - thisval = strtod(p, &p); - trace("found a num: %d\n", thisval); - } - else if (isalpha(*p) || *p == '_') - { - thisval = EvaluateConstant(p, &p); - } - else - { - error("..Parse error, expected '(' or constant in line %d\n", - iLine); - return -1; - } - - if (inv) - thisval = !thisval; - - /* Check how to combine the current value */ - if (pstart[0] == '(') - { - val = thisval; - } - else if (pstart[0] == '&' && pstart[1] == '&') - { - val = val && thisval; - } - else if (pstart[0] == '&' && pstart[1] != '&') - { - val = val & thisval; - } - else if (pstart[0] == '|' && pstart[1] == '|') - { - trace("found || val = %d, thisval = %d\n", val, thisval); - val = val || thisval; - } - else if (pstart[0] == '|' && pstart[1] != '|') - { - val = val | thisval; - } - else if (pstart[0] == '+') - { - val = val + thisval; - } - else - { - error("+Parse error: expected '(' or operator in Line %d, got %c\n", - iLine, pstart[0]); - return -1; - } - - p = GetNextChar(p); - - /* End of current subexpression? */ - if (*p == ')') - { - if (pNext) - { - *pNext = p + 1; - } - return val; - } - - /* Continue with a new start position */ - pstart = p; - } - - return val; -} - -int -ParseInputFile(const char *pszInFile, FILE *fileOut) -{ - char* pInputData, *pCurrentLine, *p1, *p2; - size_t cbInFileLenth, len; - int iIfLevel, iCopyLevel; - - trace("parsing input file: %s\n", pszInFile); - - /* Set the global file name */ - gpszCurFile = pszInFile; - - /* Load the input file into memory */ - pInputData = LoadFile(pszInFile, &cbInFileLenth); - if (!pInputData) - { - error("Could not load input file %s\n", pszInFile); - return -1; - } - - /* Zero terminate the file */ - pInputData[cbInFileLenth] = 0; - - pCurrentLine = pInputData; - iLine = 1; - iCopyLevel = iIfLevel = 0; - - /* The main processing loop */ - do - { - trace("line %d: ", iLine); - - /* If this is a normal line ... */ - if (pCurrentLine[0] != '$') - { - /* Check if we are to copy this line */ - if (iCopyLevel == iIfLevel) - { - trace("copying\n"); - WriteLine(pCurrentLine, fileOut); - } - else - trace("skipping\n"); - - /* Continue with next line */ - continue; - } - - /* Check for $endif */ - if (strncmp(pCurrentLine, "$endif", 6) == 0) - { - trace("found $endif\n"); - if (iIfLevel <= 0) - { - error("Parse error: $endif without $if in %s:%d\n", pszInFile, iLine); - return -1; - } - if (iCopyLevel == iIfLevel) - { - iCopyLevel--; - } - iIfLevel--; - - /* Continue with next line */ - continue; - } - - /* The rest is only parsed when we are in a true block */ - if (iCopyLevel < iIfLevel) - { - trace("skipping\n"); - - /* Continue with next line */ - continue; - } - - /* Check for $define */ - if (strncmp(pCurrentLine, "$define", 7) == 0) - { - PDEFINE pDefine; - - trace("found $define\n"); - p1 = GetNextChar(pCurrentLine + 7); - if (*p1 != '(') - { - error("Parse error: expected '(' at %s:%d\n", - pszInFile, iLine); - return -1; - } - p1 = GetNextChar(p1 + 1); - len = strxlen(p1); - p2 = p1 + len; - if (*p2 != ')') - { - error("Parse error: expected ')' at %s:%d\n", - pszInFile, iLine); - return -1; - } - - /* Insert the new define into the global list */ - pDefine = malloc(sizeof(DEFINE) + len); - strncpy(pDefine->szName, p1, len); - pDefine->szName[len] = 0; - pDefine->len = len; - pDefine->val = 1; - pDefine->pNext = gpDefines; - gpDefines = pDefine; - } - - /* Check for $if */ - else if (strncmp(pCurrentLine, "$if", 3) == 0) - { - int val; - - trace("found $if\n"); - /* Increase the if-level */ - iIfLevel++; - - /* Get beginning of the expression */ - p1 = GetNextChar(pCurrentLine + 3); - - /* evaluate the expression */ - val = EvaluateExpression(p1, 0); - - if (val) - { - iCopyLevel = iIfLevel; - } - else if (val == -1) - { - /* Parse error */ - return -1; - } - } - - /* Check for $include */ - else if (strncmp(pCurrentLine, "$include", 8) == 0) - { - int ret; - - trace("found $include\n"); - p1 = GetNextChar(pCurrentLine + 8); - if (*p1 != '(') - { - error("Parse error: expected '(' at %s:%d, found '%c'\n", - pszInFile, iLine, *p1); - return -1; - } - p1++; - p2 = strchr(p1, ')'); - *p2 = 0; - - /* Parse the included file */ - ret = ParseInputFile(p1, fileOut); - - /* Restore the global file name */ - gpszCurFile = pszInFile; - - /* Restore the zeroed character */ - *p2 = ')'; - - if (ret == -1) - { - return -1; - } - } - - /* Check for $$ comment */ - else if (strncmp(pCurrentLine, "$$", 2) == 0) - { - trace("$$ ignored\n"); - /* continue with next line */ - continue; - } - - else - { - trace("wot:%s\n", pCurrentLine); - } - - /* Continue with next line */ - } - while (pCurrentLine = GetNextLine(pCurrentLine), - iLine++, - pCurrentLine != 0); - - /* Free the file data */ - free(pInputData); - - trace("Done with file.\n\n"); - - return 0; -} - - -int -main(int argc, char* argv[]) -{ - char *pszInFile, *pszOutFile; - FILE* fileOut; - int ret; - - if (argc != 3) - { - error("Usage: hpp \n"); - exit(1); - } - - pszInFile = convert_path(argv[1]); - pszOutFile = convert_path(argv[2]); - - fileOut = fopen(pszOutFile, "wb"); - if (fileOut == NULL) - { - error("Cannot open output file %s", pszOutFile); - exit(1); - } - - ret = ParseInputFile(pszInFile, fileOut); - - fclose(fileOut); - free(pszInFile); - free(pszOutFile); - - return ret; -} diff --git a/reactos/tools/kbdtool/data.c b/reactos/tools/kbdtool/data.c deleted file mode 100644 index 5de3b13d72d..00000000000 --- a/reactos/tools/kbdtool/data.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * PROJECT: ReactOS Build Tools [Keyboard Layout Compiler] - * LICENSE: BSD - See COPYING.BSD in the top level directory - * FILE: tools/kbdtool/data.c - * PURPOSE: Internal Keyboard (Scancode/Virtual Key) Tables - * PROGRAMMERS: ReactOS Foundation - */ - -/* INCLUDES *******************************************************************/ - -#include "kbdtool.h" - -/* GLOBALS ********************************************************************/ - -/* Table of Virtual Key Names */ -VKNAME VKName[] = -{ - {0x08, "BACK"}, - {0x03, "CANCEL"}, - {0x1b, "ESCAPE"}, - {0x0d, "RETURN"}, - {0x20, "SPACE"}, - {0x6e, "DECIMAL"}, - {0xba, "OEM_1"}, - {0xbb, "OEM_PLUS"}, - {0xbc, "OEM_COMMA"}, - {0xbd, "OEM_MINUS"}, - {0xbe, "OEM_PERIOD"}, - {0xbf, "OEM_2"}, - {0xc0, "OEM_3"}, - {0xdb, "OEM_4"}, - {0xdc, "OEM_5"}, - {0xdd, "OEM_6"}, - {0xde, "OEM_7"}, - {0xdf, "OEM_8"}, - {0xe2, "OEM_102"}, - {0xc1, "ABNT_C1"}, - {0xc2, "ABNT_C2"}, - {0x10, "SHIFT"}, - {0xa0, "LSHIFT"}, - {0xa1, "RSHIFT"}, - {0x12, "MENU"}, - {0xa4, "LMENU"}, - {0xa5, "RMENU"}, - {0x11, "CONTROL"}, - {0xa2, "LCONTROL"}, - {0xa3, "RCONTROL"}, - {0x6c, "SEPARATOR"}, - {0xe4, "ICO_00"}, - {0x2e, "DELETE"}, - {0x2d, "INSERT"}, - {0xe5, "GROUPSHIFT"}, - {0xe6, "RGROUPSHIFT"} -}; -/* Table of modifiers */ -VKNAME Modifiers[] = -{ - {0x10, "KBDSHIFT"}, - {0x11, "KBDCTRL"}, - {0x12, "KBDALT"} -}; - -/* Table of states */ -PCHAR StateLabel[] = -{ - "", - "Shift", - " Ctrl", - "S+Ctrl", - " Alt", - "Shift+Alt", - " Ctl+Alt", - "S+Ctl+Alt", - " X1 ", - "S+ X1 ", - " C+ X1 ", - "S+C+ X1 ", - " A+X1 ", - "S+ A+X1 ", - " C+A+X1 ", - "S+C+A+X1 ", - " X2 ", - "S+ X2 ", - " C+ X2 ", - "S+C+ X2 ", - " A+ X2 ", - "S+ A+ X2 ", - " C+A+ X2 ", - "S+C+A+ X2 ", - " X1+X2 ", - "S+ X1+X2 ", - " C+ X1+X2 ", - "S+C+ X1+X2 ", - " A+X1+X2 ", - "S+ A+X1+X2 ", - " C+A+X1+X2 ", - "S+C+A+X1+X2 ", - " X3", - "S+ X3", - " C+ X3", - "S+C+ X3", - " A+ X3", - "S+ A+ X3", - " C+A+ X3", - "S+C+A+ X3", - " X1+ X3", - "S+ X1+ X3", - " C+ X1+ X3", - "S+C+ X1+ X3", - " A+X1+ X3", - "S+ A+X1+ X3", - " C+A+X1+ X3", - "S+C+A+X1+ X3", - " X2+X3", - "S+ X2+X3", - " C+ X2+X3", - "S+C+ X2+X3", - " A+ X2+X3", - "S+ A+ X2+X3", - " C+A+ X2+X3", - "S+C+A+ X2+X3", - " X1+X2+X3", - "S+ X1+X2+X3", - " C+ X1+X2+X3", - "S+C+ X1+X2+X3", - " A+X1+X2+X3", - "S+ A+X1+X2+X3", - " C+A+X1+X2+X3", - "S+C+A+X1+X2+X3", - "unexpected", - "unexpected" -}; - -/* Table of Cap States */ -PCHAR CapState[] = -{ - "0", - "CAPLOK", - "SGCAPS", - "CAPLOCK | SGCAPS", - "CAPLOKALTGR", - "CAPLOK | CAPLOKALTGR" -}; - -/* ISO 110-key Keyboard Scancode to Virtual Key Conversion Table */ -SCVK ScVk[] = -{ - {0x02, '1', NULL, FALSE}, - {0x03, '2', NULL, FALSE}, - {0x04, '3', NULL, FALSE}, - {0x05, '4', NULL, FALSE}, - {0x06, '5', NULL, FALSE}, - {0x07, '6', NULL, FALSE}, - {0x08, '7', NULL, FALSE}, - {0x09, '8', NULL, FALSE}, - {0x0a, '9', NULL, FALSE}, - {0x0b, '0', NULL, FALSE}, - {0x0c, 0xbd, NULL, FALSE}, - {0x0d, 0xbb, NULL, FALSE}, - {0x10, 'Q', NULL, FALSE}, - {0x11, 'W', NULL, FALSE}, - {0x12, 'E', NULL, FALSE}, - {0x13, 'R', NULL, FALSE}, - {0x14, 'T', NULL, FALSE}, - {0x15, 'Y', NULL, FALSE}, - {0x16, 'U', NULL, FALSE}, - {0x17, 'I', NULL, FALSE}, - {0x18, 'O', NULL, FALSE}, - {0x19, 'P', NULL, FALSE}, - {0x1a, 0xdb, NULL, FALSE}, - {0x1b, 0xdd, NULL, FALSE}, - {0x1e, 'A', NULL, FALSE}, - {0x1f, 'S', NULL, FALSE}, - {0x20, 'D', NULL, FALSE}, - {0x21, 'F', NULL, FALSE}, - {0x22, 'G', NULL, FALSE}, - {0x23, 'H', NULL, FALSE}, - {0x24, 'J', NULL, FALSE}, - {0x25, 'K', NULL, FALSE}, - {0x26, 'L', NULL, FALSE}, - {0x27, 0xba, NULL, FALSE}, - {0x28, 0xde, NULL, FALSE}, - {0x29, 0xc0, NULL, FALSE}, - {0x2b, 0xdc, NULL, FALSE}, - {0x2c, 'Z', NULL, FALSE}, - {0x2d, 'X', NULL, FALSE}, - {0x2e, 'C', NULL, FALSE}, - {0x2f, 'V', NULL, FALSE}, - {0x30, 'B', NULL, FALSE}, - {0x31, 'N', NULL, FALSE}, - {0x32, 'M', NULL, FALSE}, - {0x33, 0xbc, NULL, FALSE}, - {0x34, 0xbe, NULL, FALSE}, - {0x35, 0xbf, NULL, FALSE}, - {0x53, 0x6e, NULL, FALSE}, - {0x56, 0xe2, NULL, FALSE}, - {0x73, 0xc1, NULL, FALSE}, - {0x7e, 0xc2, NULL, FALSE}, - {0xe010, 0xb1, "Speedracer: Previous Track", FALSE}, - {0xe019, 0xb0, "Speedracer: Next Track", FALSE}, - {0xe01d, 0xa3, "RControl", FALSE}, - {0xe020, 0xad, "Speedracer: Volume Mute", FALSE}, - {0xe021, 0xb7, "Speedracer: Launch App 2", FALSE}, - {0xe022, 0xb3, "Speedracer: Media Play/Pause", FALSE}, - {0xe024, 0xb2, "Speedracer: Media Stop", FALSE}, - {0xe02e, 0xae, "Speedracer: Volume Up", FALSE}, - {0xe030, 0xaf, "Speedracer: Volume Down", FALSE}, - {0xe032, 0xac, "Speedracer: Browser Home", FALSE}, - {0xe035, 0x6f, "Numpad Divide", FALSE}, - {0xe037, 0x2c, "Snapshot", FALSE}, - {0xe038, 0xa5, "RMenu", FALSE}, - {0xe047, 0x24, "Home", FALSE}, - {0xe048, 0x26, "Up", FALSE}, - {0xe049, 0x21, "Prior", FALSE}, - {0xe04b, 0x25, "Left", FALSE}, - {0xe04d, 0x27, "Right", FALSE}, - {0xe04f, 0x23, "End", FALSE}, - {0xe050, 0x28, "Down", FALSE}, - {0xe051, 0x22, "Next", FALSE}, - {0xe052, 0x2d, "Insert", FALSE}, - {0xe053, 0x2e, "Delete", FALSE}, - {0xe05b, 0x5b, "Left Win", FALSE}, - {0xe05c, 0x5c, "Right Win", FALSE}, - {0xe05d, 0x5d, "Application", FALSE}, - {0xe05e, 0xff, "Power", FALSE}, - {0xe05f, 0x5f, "Speedracer: Sleep", FALSE}, - {0xe060, 0xff, "BAD SCANCODE", FALSE}, - {0xe061, 0xff, "BAD SCANCODE", FALSE}, - {0xe065, 0xaa, "Speedracer: Browser Search", FALSE}, - {0xe066, 0xab, "Speedracer: Browser Favorites", FALSE}, - {0xe067, 0xa8, "Speedracer: Browser Refresh", FALSE}, - {0xe068, 0xa9, "Speedracer: Browser Stop", FALSE}, - {0xe069, 0xa7, "Speedracer: Browser Foward", FALSE}, - {0xe06a, 0xa6, "Speedracer: Browser Back", FALSE}, - {0xe06b, 0xb6, "Speedracer: Launch App 1", FALSE}, - {0xe06c, 0xb4, "Speedracer: Launch Mail", FALSE}, - {0xe06d, 0xb5, "Speedracer: Launch Media Selector", FALSE}, - {0x53, 0x6e, NULL, FALSE}, - {0x0e, 0x08, NULL, FALSE}, - {0x01, 0x1b, NULL, FALSE}, - {0xe01c, 0x0d, "Numpad Enter", FALSE}, - {0x1c, 0x0d, NULL, FALSE}, - {0x39, 0x20, NULL, FALSE}, - {0xe046, 0x03, "Break (Ctrl + Pause)", FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE}, - {0xFFFF, 0x00, NULL, FALSE} -}; - -/* FUNCTIONS ******************************************************************/ - -/* EOF */ diff --git a/reactos/tools/kbdtool/kbdtool.h b/reactos/tools/kbdtool/kbdtool.h deleted file mode 100644 index 5d36972fb64..00000000000 --- a/reactos/tools/kbdtool/kbdtool.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * PROJECT: ReactOS Build Tools [Keyboard Layout Compiler] - * LICENSE: BSD - See COPYING.BSD in the top level directory - * FILE: tools/kbdtool/kbdtool.h - * PURPOSE: Main Header File - * PROGRAMMERS: ReactOS Foundation - */ - -/* INCLUDES *******************************************************************/ - -#include -#include -#include -#include -#include -#include - -#define KEYWORD_COUNT 17 - -#define CHAR_NORMAL_KEY 0 -#define CHAR_DEAD_KEY 1 -#define CHAR_OTHER_KEY 2 -#define CHAR_INVALID_KEY 3 -#define CHAR_LIGATURE_KEY 4 - -typedef struct tagKEYNAME -{ - ULONG Code; - PCHAR Name; - struct tagKEYNAME* Next; -} KEYNAME, *PKEYNAME; - -typedef struct tagSCVK -{ - USHORT ScanCode; - USHORT VirtualKey; - PCHAR Name; - BOOLEAN Processed; -} SCVK, *PSCVK; - -typedef struct tagVKNAME -{ - ULONG VirtualKey; - PCHAR Name; -} VKNAME, *PVKNAME; - -typedef struct tagLAYOUTENTRY -{ - USHORT ScanCode; - UCHAR VirtualKey; - UCHAR OriginalVirtualKey; - ULONG Cap; - ULONG StateCount; - ULONG CharData[8]; - ULONG DeadCharData[8]; - UCHAR LigatureCharData[8]; - ULONG OtherCharData[8]; - struct LAYOUTENTRY* CapData; - PCHAR Name; - ULONG Processed; - ULONG LineCount; -} LAYOUTENTRY, *PLAYOUTENTRY; - -typedef struct tagLAYOUT -{ - LAYOUTENTRY Entry[110]; -} LAYOUT, *PLAYOUT; - -PCHAR -getVKName( - IN ULONG VirtualKey, - IN BOOLEAN Prefix -); - -extern BOOLEAN Verbose, UnicodeFile, SanityCheck, FallbackDriver; -extern PCHAR gpszFileName; -extern FILE* gfpInput; -extern VKNAME VKName[]; -extern VKNAME Modifiers[]; -extern SCVK ScVk[]; -extern PCHAR StateLabel[]; -extern PCHAR CapState[]; -extern LAYOUT g_Layout; -extern CHAR gVKeyName[32]; -extern CHAR gKBDName[10]; -extern CHAR gCopyright[256]; -extern CHAR gDescription[256]; -extern CHAR gCompany[256]; -extern CHAR gLocaleName[256]; -extern ULONG gVersion, gSubVersion; - -/* EOF */ diff --git a/reactos/tools/kbdtool/main.c b/reactos/tools/kbdtool/main.c deleted file mode 100644 index 68fcf034648..00000000000 --- a/reactos/tools/kbdtool/main.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * PROJECT: ReactOS Build Tools [Keyboard Layout Compiler] - * LICENSE: BSD - See COPYING.BSD in the top level directory - * FILE: tools/kbdtool/main.c - * PURPOSE: Main Logic Loop - * PROGRAMMERS: ReactOS Foundation - */ - -/* INCLUDES *******************************************************************/ - -#include "kbdtool.h" - -/* GLOBALS ********************************************************************/ - -/* Internal tool data */ -ULONG gVersion = 3; -ULONG gSubVersion = 40; - -/* Input file */ -PCHAR gpszFileName; -FILE* gfpInput; - -/* Command-line parameters */ -BOOLEAN UnicodeFile, Verbose, NoLogo, FallbackDriver, SanityCheck, SourceOnly; -ULONG BuildType; - -/* FUNCTIONS ******************************************************************/ - -VOID -PrintUsage(VOID) -{ - /* This is who we are */ - printf("\nKbdTool v%d.%02d - convert keyboard text file to C file or a keyboard layout DLL\n\n", - gVersion, gSubVersion); - - /* This is what we do */ - printf("Usage: KbdTool [-v] [-n] [-w] [-k] [-n] [-u|a] [-i|x|m|o|s] FILE\n\n"); - printf("\t[-?] display this message\n"); - printf("\t[-n] no logo or normal build information displayed\n\n"); - printf("\t[-a] Uses non-Unicode source files (default)\n"); - printf("\t[-u] Uses Unicode source files\n\n"); - printf("\t[-v] Verbose diagnostics (and warnings, with -w)\n"); - printf("\t[-w] display extended Warnings\n\n"); - printf("\t[-x] Builds for x86 (default)\n"); - printf("\t[-i] Builds for IA64\n"); - printf("\t[-m] Builds for AMD64\n"); - printf("\t[-o] Builds for WOW64\n"); - printf("\t[-s] Generate Source files (no build)\n\n"); - printf("\tFILE The source keyboard file (required)\n\n"); - - /* Extra hints */ - printf("\t-u/-a are mutually exclusive; kbdutool will use the last one if you specify more than one.\n"); - printf("\t-i/-x/-m/-o-s will exhibit the same behavior when than one of them is specified.\n\n"); - - /* Quit */ - exit(1); - printf("should not be here"); -} - -INT -main(INT argc, - PCHAR* argv) -{ - ULONG i, ErrorCode, FailureCode; - CHAR Option; - PCHAR OpenFlags; - CHAR BuildOptions[16] = {0}; - - /* Loop for parameter */ - for (i = 1; i < argc; ++i) - { - if (argv[i][0] != '/' && argv[i][0] != '-') - break; - - if (argv[i][1] && !argv[i][2]) - Option = argv[i][1]; - else - Option = 0; - - /* Check supported options */ - switch (Option) - { - /* ASCII File */ - case 'A': - case 'a': - UnicodeFile = 0; - break; - - /* UNICODE File */ - case 'U': - case 'u': - UnicodeFile = 1; - break; - - /* Verbose */ - case 'V': - case 'v': - Verbose = 1; - break; - - /* No logo */ - case 'N': - case 'n': - NoLogo = 1; - break; - - /* Fallback driver */ - case 'K': - case 'k': - FallbackDriver = 1; - break; - - /* Sanity Check */ - case 'W': - case 'w': - SanityCheck = 1; - break; - - /* Itanium */ - case 'I': - case 'i': - BuildType = 1; - break; - - /* X86 */ - case 'X': - case 'x': - BuildType = 0; - break; - - /* AMD64 */ - case 'M': - case 'm': - BuildType = 2; - break; - - /* WOW64 */ - case 'O': - case 'o': - BuildType = 3; - break; - - /* Source only */ - case 'S': - case 's': - SourceOnly = 1; - break; - - default: - /* If you got here, the options are invalid or missing */ - PrintUsage(); - break; - } - } - - /* Do we have no options? */ - if (i == argc) PrintUsage(); - - /* Should we announce ourselves? */ - if (!NoLogo) - { - /* This is who we are */ - printf("\nKbdTool v%d.%02d - convert keyboard text file to C file or a keyboard layout DLL\n\n", - gVersion, gSubVersion); - } - - /* Save the file name */ - gpszFileName = argv[i]; - - /* Open either as binary or text */ - OpenFlags = "rb"; - if (!UnicodeFile) OpenFlags = "rt"; - - /* Open a handle to the file */ - gfpInput = fopen(gpszFileName, OpenFlags); - if (!gfpInput) - { - /* Couldn't open it */ - printf("Unable to open '%s' for read.\n", gpszFileName); - exit(1); - } - - /* Should we print out what we're doing? */ - if (!NoLogo) - { - /* Are we only building the source files? */ - if (SourceOnly) - { - /* Then there's no target architecture */ - strcpy(BuildOptions, "source files"); - } - else - { - /* Take a look at the target architecture*/ - switch (BuildType) - { - /* Print the appropriate message depending on what was chosen */ - case 0: - strcpy(BuildOptions, "i386/x86"); - break; - case 1: - strcpy(BuildOptions, "ia64"); - break; - case 2: - strcpy(BuildOptions, "amd64/x64"); - break; - case 3: - strcpy(BuildOptions, "wow64"); - break; - default: - strcpy(BuildOptions, "unknown purpose"); - break; - } - } - - /* Now inform the user */ - printf("Compiling layout information from '%s' for %s.\n", gpszFileName, BuildOptions); - } - - /* Now parse the keywords */ - FailureCode = DoParsing(); - - /* Should we build? */ - if (!(SourceOnly) && !(FallbackDriver)) ErrorCode = 0;//DoBuild(); - - /* Did everything work? */ - if (FailureCode == 0) - { - /* Tell the user, if he cares */ - if (!NoLogo) printf("All tasks completed successfully.\n"); - } - else - { - /* Print the failure code */ - printf("\n %13d\n", FailureCode); - } - - /* Return the error code */ - return ErrorCode; -} - -/* EOF */ diff --git a/reactos/tools/kbdtool/output.c b/reactos/tools/kbdtool/output.c deleted file mode 100644 index 8f7eaa9681b..00000000000 --- a/reactos/tools/kbdtool/output.c +++ /dev/null @@ -1,1322 +0,0 @@ -/* - * PROJECT: ReactOS Build Tools [Keyboard Layout Compiler] - * LICENSE: BSD - See COPYING.BSD in the top level directory - * FILE: tools/kbdtool/output.c - * PURPOSE: Output Logic (Source Builder) - * PROGRAMMERS: ReactOS Foundation - */ - -/* INCLUDES *******************************************************************/ - -#include "kbdtool.h" - -/* GLOBALS ********************************************************************/ - -ULONG gStringIdForDescriptions = 1000; -ULONG gStringIdForLanguageNames = 1100; -ULONG gStringIdForLocaleName = 1200; -time_t Clock; -struct tm *Now; -CHAR gCharName[32]; - -/* FUNCTIONS ******************************************************************/ - -PCHAR -WChName(IN ULONG Char, - IN BOOLEAN AddZero) -{ - PCHAR p; - - /* Check for invalid character */ - if (Char == -1) - { - /* No name */ - strcpy(gCharName, "WCH_NONE"); - } - else if ((Char > 31) && (Char < 128)) - { - /* Use our global buffer */ - p = gCharName; - - /* Add the first quote unless this was a zero-string */ - if (!AddZero) *p++ = '\''; - - /* Now replace any other quote or comment character with a slash */ - if ((Char == '\"') || (Char == '\'') || (Char == '\\')) *p++ = '\\'; - - /* Now plug in the character */ - *p++ = Char; - - /* And add the terminating quote, unless this was a zero-string */ - if (!AddZero) *p++ = '\''; - - /* Terminate the buffer */ - *p = '\0'; - } - else - { - /* Handle special cases */ - if (Char == '\b') - { - /* Bell */ - strcpy(gCharName, "'\\b'"); - } - else if (Char == '\n') - { - /* New line */ - strcpy(gCharName, "'\\n'"); - } - else if (Char == '\r') - { - /* Return */ - strcpy(gCharName, "'\\r'"); - } - else if (!AddZero) - { - /* Char value, in hex */ - sprintf(gCharName, "0x%04x", Char); - } - else - { - /* Char value, C-style */ - sprintf(gCharName, "\\x%04x", Char); - } - } - - /* Return the name */ - return gCharName; -} - -VOID -PrintNameTable(FILE* FileHandle, - PKEYNAME KeyName, - BOOL DeadKey) -{ - CHAR CharBuffer[255]; - PKEYNAME NextName; - PCHAR Name, Buffer; - ULONG i; - - /* Loop all key names */ - while (KeyName) - { - /* Go to the next key name */ - NextName = KeyName->Next; - - /* Remember the name and our buffer address */ - Name = KeyName->Name; - Buffer = CharBuffer; - - /* Check if it's an IDS name */ - if (strncmp(Name, "IDS_", 4)) - { - /* No, so start parsing it. First, handle initial quote */ - if (*Name != '\"') *Buffer++ = '\"'; - - /* Next, parse the name */ - while (*Name) - { - /* Check if this is a C-style hex string */ - if ((*Name != '\\') || ((*(Name + 1) != 'x') && (*(Name + 1) != 'X'))) - { - /* It's not, so just copy straight into our buffer */ - *Buffer++ = *Name++; - } - else - { - /* Continue scanning as long as this is a C-style hex string */ - while ((*Name == '\\') && ((*(Name + 1) == 'x') || (*(Name + 1) == 'X'))) - { - /* Copy 6 characters */ - for (i = 0; (*Name) && (i < 6); i++) *Buffer++ = *Name++; - } - - /* Check if we still have something at the end */ - if (*Name) - { - /* Terminate our buffer */ - *Buffer++ = '\"'; - *Buffer++ = ' '; - *Buffer++ = 'L'; - *Buffer++ = '\"'; - } - } - } - - /* Check for terminating quote */ - if (*(Buffer - 1) != '\"') *Buffer++ = '\"'; - - /* Terminate the buffer */ - *Buffer++ = '\0'; - } - else - { - /* Not yet supported */ - printf("IDS Entries not yet handled!\n"); - exit(1); - } - - /* Is this a dead key? */ - if (DeadKey) - { - /* Not yet handled */ - printf("Dead keys not yet handled\n"); - exit(1); - } - else - { - /* Print the entry */ - fprintf(FileHandle, " 0x%02x, L%s,\n", KeyName->Code, CharBuffer); - } - - /* Cleanup allocation */ - free(KeyName->Name); - free(KeyName); - - /* Move on */ - KeyName = NextName; - } - - /* Is this a dead key? */ - if (DeadKey) - { - /* Not yet handled */ - printf("Dead keys not yet handled\n"); - exit(1); - } - else - { - /* Terminate the table */ - fprintf(FileHandle, " 0 , NULL\n"); - } -} - -BOOLEAN -kbd_h(IN PLAYOUT Layout) -{ - CHAR OutputFile[13]; - FILE *FileHandle; - ULONG i; - CHAR UndefChar; - USHORT SubCode; - - /* Build the keyboard name */ - strcpy(OutputFile, gKBDName); - strcat(OutputFile, ".H"); - - /* Open it */ - FileHandle = fopen(OutputFile, "wt"); - if (!FileHandle) - { - /* Fail */ - printf(" %12s : can't open for write.\n", OutputFile); - return FALSE; - } - - /* Print the module header */ - fprintf(FileHandle, - "/****************************** Module Header ******************************\\\n" - "* Module Name: %s\n*\n* keyboard layout header\n" - "*\n" - "* Copyright (c) 2009, ReactOS Foundation\n" - "*\n" - "* Various defines for use by keyboard input code.\n*\n* History:\n" - "*\n" - "* created by KBDTOOL v%d.%02d %s*\n" - "\\***************************************************************************/\n\n", - OutputFile, - gVersion, - gSubVersion, - asctime(Now)); - - /* Print out the includes and defines */ - fprintf(FileHandle, - "/*\n" - " * kbd type should be controlled by cl command-line argument\n" - " *\\n" - "#define KBD_TYPE 4\n\n" - "/*\n" - "* Include the basis of all keyboard table values\n" - "*/\n" - "#include \"kbd.h\"\n"); - - /* Now print out the virtual key conversion table */ - fprintf(FileHandle, - "/***************************************************************************\\\n" - "* The table below defines the virtual keys for various keyboard types where\n" - "* the keyboard differ from the US keyboard.\n" - "*\n" - "* _EQ() : all keyboard types have the same virtual key for this scancode\n" - "* _NE() : different virtual keys for this scancode, depending on kbd type\n" - "*\n" - "* +------+ +----------+----------+----------+----------+----------+----------+\n" - "* | Scan | | kbd | kbd | kbd | kbd | kbd | kbd |\n" - "* | code | | type 1 | type 2 | type 3 | type 4 | type 5 | type 6 |\n" - "\\****+-------+_+----------+----------+----------+----------+----------+----------+*/\n\n"); - - /* Loop all keys */ - for (i = 0; i < 110; i++) - { - /* Check if we processed this key */ - if (Layout->Entry[i].Processed) - { - /* Check if it redefined a virtual key */ - if (Layout->Entry[i].VirtualKey != Layout->Entry[i].OriginalVirtualKey) - { - /* Do we have a subcode? */ - SubCode = Layout->Entry[i].ScanCode & 0xFF00; - if (SubCode) - { - /* Which kind is it? */ - if (SubCode == 0xE000) - { - /* Extended 0 */ - UndefChar = 'X'; - } - else - { - /* Illegal */ - if (SubCode != 0xE100) - { - /* Unrecognized */ - printf("Weird scancode value %04x: expected xx, E0xx, or E1xx\n", SubCode); - exit(1); - } - - /* Extended 1 */ - UndefChar = 'Y'; - } - } - else - { - /* Normal key */ - UndefChar = 'T'; - } - - /* Print out the virtual key redefinition */ - fprintf(FileHandle, - "#undef %c%02X\n#define %c%02X _EQ(%43s%23s\n", - UndefChar, - Layout->Entry[i].ScanCode, - UndefChar, - Layout->Entry[i].ScanCode, - getVKName(Layout->Entry[i].VirtualKey, 0), - ")"); - } - } - } - - /* Cleanup and close */ - fprintf(FileHandle,"\n"); - fclose(FileHandle); - - /* We made it */ - return TRUE; -} - -BOOLEAN -kbd_rc(IN PKEYNAME DescriptionData, - IN PKEYNAME LanguageData) -{ - CHAR OutputFile[13]; - CHAR InternalName[13]; - CHAR TimeBuffer[5]; - FILE *FileHandle; - ULONG Length; - PCHAR p; - PKEYNAME NextDescription, NextLanguage; - - /* Build the keyboard name and internal name */ - strcpy(OutputFile, gKBDName); - strcat(OutputFile, ".RC"); - strcpy(InternalName, gKBDName); - for (p = InternalName; *p; p++) *p = tolower(*p); - - /* Open it */ - FileHandle = fopen(OutputFile, "wb"); - if (!FileHandle) - { - /* Fail */ - printf(" %12s : can't open for write.\n", OutputFile); - return FALSE; - } - - /* Check if we have copyright */ - Length = strlen(gCopyright); - if (!Length) - { - /* Set time string */ - strftime(TimeBuffer, 5, "%Y", Now); - - /* Add copyright character */ - strcpy(gCopyright, "(C)"); - - /* Add the year */ - strcat(gCopyright, TimeBuffer); - - /* Add blank company */ - strcat(gCopyright, " "); - } - - /* Write the resource file header */ - fprintf(FileHandle, - "#include \"winver.h\"\r\n" - "1 VERSIONINFO\r\n" - " FILEVERSION 1,0,%d,%d\r\n" - " PRODUCTVERSION 1,0,%d,%d\r\n" - " FILEFLAGSMASK 0x3fL\r\n" - " FILEFLAGS 0x0L\r\n" - "FILEOS 0x40004L\r\n" - " FILETYPE VFT_DLL\r\n" - " FILESUBTYPE VFT2_DRV_KEYBOARD\r\n" - "BEGIN\r\n" - " BLOCK \"StringFileInfo\"\r\n" - " BEGIN\r\n" - " BLOCK \"000004B0\"\r\n" - " BEGIN\r\n" - " VALUE \"CompanyName\", \"%s\\0\"\r\n" - " VALUE \"FileDescription\", \"%s Keyboard Layout\\0\"\r\n" - " VALUE \"FileVersion\", \"1, 0, %d, %d\\0\"\r\n", - gVersion, - gSubVersion, - gVersion, - gSubVersion, - gCompany, - gDescription, - gVersion, - gSubVersion); - - /* Continue writing it */ - fprintf(FileHandle, - " VALUE \"InternalName\", \"%s (%d.%d)\\0\"\r\n" - " VALUE \"ProductName\",\"%s\\0\"\r\n" - " VALUE \"Release Information\",\"%s\\0\"\r\n" - " VALUE \"LegalCopyright\", \"%s\\0\"\r\n" - " VALUE \"OriginalFilename\",\"%s\\0\"\r\n" - " VALUE \"ProductVersion\", \"1, 0, %d, %d\\0\"\r\n" - " END\r\n" - " END\r\n" - " BLOCK \"VarFileInfo\"\r\n" - " BEGIN\r\n" - " VALUE \"Translation\", 0x0000, 0x04B0\r\n" - " END\r\n" - "END\r\n", - InternalName, - gVersion, - gSubVersion, - "Created by ReactOS KbdTool", - "Created by ReactOS KbdTool", - gCopyright, - InternalName, - gVersion, - gSubVersion); - - /* Now check if we have a locale name */ - Length = strlen(gLocaleName); - if (Length) - { - /* Write the stringtable header */ - fprintf(FileHandle, - "\r\nSTRINGTABLE DISCARDABLE\r\nLANGUAGE %d, %d\r\n", - 9, - 1); - fprintf(FileHandle, "BEGIN\r\n"); - - /* Language or locale? */ - if (strchr(gLocaleName, '\"')) - { - /* Write the language name */ - fprintf(FileHandle, " %d %s\r\n", gStringIdForLanguageNames, gLocaleName); - } - else - { - /* Write the locale name */ - fprintf(FileHandle, " %d \"%s\"\r\n", gStringIdForLocaleName, gLocaleName); - } - - /* Terminate the entry */ - fprintf(FileHandle, "END\r\n\r\n"); - } - - /* Check for description information */ - while (DescriptionData) - { - /* Remember the next pointer */ - NextDescription = DescriptionData->Next; - - /* Write the header */ - fprintf(FileHandle, - "\r\nSTRINGTABLE DISCARDABLE\r\nLANGUAGE %d, %d\r\n", - DescriptionData->Code & 0x3FF, - DescriptionData->Code >> 10); - fprintf(FileHandle, "BEGIN\r\n"); - - /* Quoted string or not? */ - if (strchr(DescriptionData->Name, '\"')) - { - /* Write the description name */ - fprintf(FileHandle, " %d %s\r\n", gStringIdForDescriptions, DescriptionData->Name); - } - else - { - /* Write the description name */ - fprintf(FileHandle, " %d \"%s\"\r\n", gStringIdForDescriptions, DescriptionData->Name); - } - - /* Terminate the entry */ - fprintf(FileHandle, "END\r\n\r\n"); - - /* Free the allocation */ - free(DescriptionData->Name); - free(DescriptionData); - - /* Move to the next entry */ - DescriptionData = NextDescription; - } - - /* Check for language information */ - while (LanguageData) - { - /* Remember the next pointer */ - NextLanguage = LanguageData->Next; - - /* Write the header */ - fprintf(FileHandle, - "\r\nSTRINGTABLE DISCARDABLE\r\nLANGUAGE %d, %d\r\n", - LanguageData->Code & 0x3FF, - LanguageData->Code >> 10); - fprintf(FileHandle, "BEGIN\r\n"); - - /* Quoted string or not? */ - if (strchr(LanguageData->Name, '\"')) - { - /* Write the language name */ - fprintf(FileHandle, " %d %s\r\n", gStringIdForLanguageNames, LanguageData->Name); - } - else - { - /* Write the language name */ - fprintf(FileHandle, " %d \"%s\"\r\n", gStringIdForLanguageNames, LanguageData->Name); - } - - /* Terminate the entry */ - fprintf(FileHandle, "END\r\n\r\n"); - - /* Free the allocation */ - free(LanguageData->Name); - free(LanguageData); - - /* Move to the next entry */ - LanguageData = NextLanguage; - } - - /* We're done! */ - fclose(FileHandle); - return TRUE; -} - -BOOLEAN -kbd_def(VOID) -{ - CHAR OutputFile[13]; - FILE *FileHandle; - - /* Build the keyboard name and internal name */ - strcpy(OutputFile, gKBDName); - strcat(OutputFile, ".DEF"); - - /* Open it */ - FileHandle = fopen(OutputFile, "wt"); - if (!FileHandle) - { - /* Fail */ - printf(" %12s : can't open for write.\n", OutputFile); - return FALSE; - } - - /* Write the file exports */ - fprintf(FileHandle, - "LIBRARY %s\n\n" - "EXPORTS\n" - " KbdLayerDescriptor @1\n", - gKBDName); - - /* Clean up */ - fclose(FileHandle); - return TRUE; -} - -BOOLEAN -kbd_c(IN ULONG StateCount, - IN PULONG ShiftStates, - IN PVOID AttributeData, - IN PLAYOUT Layout, - IN PVOID DeadKeyData, - IN PVOID LigatureData, - IN PKEYNAME KeyNameData, - IN PKEYNAME KeyNameExtData, - IN PKEYNAME KeyNameDeadData) -{ - CHAR OutputFile[13]; - CHAR KeyNameBuffer[50]; - CHAR LineBuffer[256]; - BOOLEAN NeedPlus; - FILE *FileHandle; - ULONG States[8]; - ULONG i, j, k; - ULONG HighestState; - PVKNAME Entry; - PCHAR p; - - /* Build the keyboard name and internal name */ - strcpy(OutputFile, gKBDName); - strcat(OutputFile, ".C"); - - /* Open it */ - FileHandle = fopen(OutputFile, "wt"); - if (!FileHandle) - { - /* Fail */ - printf(" %12s : can't open for write.\n", OutputFile); - return FALSE; - } - - /* Print the header */ - fprintf(FileHandle, - "/***************************************************************************\\\n" - "* Module Name: %s\n*\n* keyboard layout\n" - "*\n" - "* Copyright (c) 2009, ReactOS Foundation\n" - "*\n" - "* History:\n" - "* KBDTOOL v%d.%02d - Created %s" - "\\***************************************************************************/\n\n", - OutputFile, - gVersion, - gSubVersion, - asctime(Now)); - - /* What kind of driver is this? */ - if (FallbackDriver) - { - /* Fallback only */ - fprintf(FileHandle, "#include \"precomp.h\"\n"); - } - else - { - /* Add the includes */ - fprintf(FileHandle, - "#include \n" - "#include \"kbd.h\"\n" - "#include \"%s.h\"\n\n", - gKBDName); - } - - /* What kind of driver is this? */ - if (FallbackDriver) - { - /* Only one section */ - fprintf(FileHandle, - "#pragma data_seg(\"%s\")\n#define ALLOC_SECTION_LDATA\n\n", - ".kbdfallback"); - } - else - { - /* Section and attributes depend on architecture */ - fprintf(FileHandle, - "#if defined(_M_IA64)\n" - "#pragma section(\"%s\")\n" - "#define ALLOC_SECTION_LDATA __declspec(allocate(\"%s\"))\n" - "#else\n" - "#pragma data_seg(\"%s\")\n" - "#define ALLOC_SECTION_LDATA\n" - "#endif\n\n", - ".data", - ".data", - ".data"); - } - - /* Scan code to virtual key conversion table header */ - fprintf(FileHandle, - "/***************************************************************************\\\n" - "* ausVK[] - Virtual Scan Code to Virtual Key conversion table\n" - "\\***************************************************************************/\n\n"); - - /* Table begin */ - fprintf(FileHandle, - "static ALLOC_SECTION_LDATA USHORT ausVK[] = {\n" - " T00, T01, T02, T03, T04, T05, T06, T07,\n" - " T08, T09, T0A, T0B, T0C, T0D, T0E, T0F,\n" - " T10, T11, T12, T13, T14, T15, T16, T17,\n" - " T18, T19, T1A, T1B, T1C, T1D, T1E, T1F,\n" - " T20, T21, T22, T23, T24, T25, T26, T27,\n" - " T28, T29, T2A, T2B, T2C, T2D, T2E, T2F,\n" - " T30, T31, T32, T33, T34, T35,\n\n"); - - /* Table continue */ - fprintf(FileHandle, - " /*\n" - " * Right-hand Shift key must have KBDEXT bit set.\n" - " */\n" - " T36 | KBDEXT,\n\n" - " T37 | KBDMULTIVK, // numpad_* + Shift/Alt -> SnapShot\n\n" - " T38, T39, T3A, T3B, T3C, T3D, T3E,\n" - " T3F, T40, T41, T42, T43, T44,\n\n"); - - /* Table continue */ - fprintf(FileHandle, - " /*\n" - " * NumLock Key:\n" - " * KBDEXT - VK_NUMLOCK is an Extended key\n" - " * KBDMULTIVK - VK_NUMLOCK or VK_PAUSE (without or with CTRL)\n" - " */\n" - " T45 | KBDEXT | KBDMULTIVK,\n\n" - " T46 | KBDMULTIVK,\n\n"); - - /* Numpad table */ - fprintf(FileHandle, - " /*\n" - " * Number Pad keys:\n" - " * KBDNUMPAD - digits 0-9 and decimal point.\n" - " * KBDSPECIAL - require special processing by Windows\n" - " */\n" - " T47 | KBDNUMPAD | KBDSPECIAL, // Numpad 7 (Home)\n" - " T48 | KBDNUMPAD | KBDSPECIAL, // Numpad 8 (Up),\n" - " T49 | KBDNUMPAD | KBDSPECIAL, // Numpad 9 (PgUp),\n" - " T4A,\n" - " T4B | KBDNUMPAD | KBDSPECIAL, // Numpad 4 (Left),\n" - " T4C | KBDNUMPAD | KBDSPECIAL, // Numpad 5 (Clear),\n" - " T4D | KBDNUMPAD | KBDSPECIAL, // Numpad 6 (Right),\n" - " T4E,\n" - " T4F | KBDNUMPAD | KBDSPECIAL, // Numpad 1 (End),\n" - " T50 | KBDNUMPAD | KBDSPECIAL, // Numpad 2 (Down),\n" - " T51 | KBDNUMPAD | KBDSPECIAL, // Numpad 3 (PgDn),\n" - " T52 | KBDNUMPAD | KBDSPECIAL, // Numpad 0 (Ins),\n" - " T53 | KBDNUMPAD | KBDSPECIAL, // Numpad . (Del),\n\n"); - - /* Table finish */ - fprintf(FileHandle, - " T54, T55, T56, T57, T58, T59, T5A, T5B,\n" - " T5C, T5D, T5E, T5F, T60, T61, T62, T63,\n" - " T64, T65, T66, T67, T68, T69, T6A, T6B,\n" - " T6C, T6D, T6E, T6F, T70, T71, T72, T73,\n" - " T74, T75, T76, T77, T78, T79, T7A, T7B,\n" - " T7C, T7D, T7E\n\n" - "};\n\n"); - - /* Key name table header */ - fprintf(FileHandle, "static ALLOC_SECTION_LDATA VSC_VK aE0VscToVk[] = {\n"); - - /* Loop 110-key table */ - for (i = 0; i < 110; i++) - { - /* Check for non-extended keys */ - if ((Layout->Entry[i].ScanCode & 0xFF00) == 0xE000) - { - /* Which are valid */ - if (Layout->Entry[i].ScanCode != 0xFF) - { - /* And mapped */ - if (Layout->Entry[i].VirtualKey != 0xFF) - { - /* Output them */ - fprintf(FileHandle, - " { 0x%02X, X%02X | KBDEXT }, // %s\n", - Layout->Entry[i].ScanCode, - Layout->Entry[i].ScanCode, - Layout->Entry[i].Name); - } - } - } - } - - /* Key name table finish */ - fprintf(FileHandle, " { 0, 0 }\n};\n\n"); - - /* Extended key name table header */ - fprintf(FileHandle, "static ALLOC_SECTION_LDATA VSC_VK aE1VscToVk[] = {\n"); - - /* Loop 110-key table */ - for (i = 0; i < 110; i++) - { - /* Check for extended keys */ - if ((Layout->Entry[i].ScanCode & 0xFF00) == 0xE100) - { - /* Which are valid */ - if (Layout->Entry[i].ScanCode != 0xFF) - { - /* And mapped */ - if (Layout->Entry[i].VirtualKey != 0xFF) - { - /* Output them */ - fprintf(FileHandle, - " { 0x%02X, Y%02X | KBDEXT }, // %s\n", - Layout->Entry[i].ScanCode, - Layout->Entry[i].ScanCode, - Layout->Entry[i].Name); - } - } - } - } - - /* Extended key name table finish */ - fprintf(FileHandle, - " { 0x1D, Y1D }, // Pause\n" - " { 0 , 0 }\n};\n\n"); - - /* Modifier table description */ - fprintf(FileHandle, - "/***************************************************************************\\\n" - "* aVkToBits[] - map Virtual Keys to Modifier Bits\n" - "*\n" - "* See kbd.h for a full description.\n" - "*\n" - "* The keyboard has only three shifter keys:\n" - "* SHIFT (L & R) affects alphabnumeric keys,\n" - "* CTRL (L & R) is used to generate control characters\n" - "* ALT (L & R) used for generating characters by number with numpad\n" - "\\***************************************************************************/\n"); - - /* Modifier table header */ - fprintf(FileHandle, "static ALLOC_SECTION_LDATA VK_TO_BIT aVkToBits[] = {\n"); - - /* Loop modifier table */ - i = 0; - Entry = &Modifiers[0]; - while (Entry->VirtualKey) - { - /* Print out entry */ - fprintf(FileHandle, - " { %-12s, %-12s },\n", - getVKName(Entry->VirtualKey, 1), - Entry->Name); - - /* Move to the next one */ - Entry = &Modifiers[++i]; - } - - /* Modifier table finish */ - fprintf(FileHandle, " { 0, 0 }\n};\n\n"); - - /* Modifier conversion table description */ - fprintf(FileHandle, - "/***************************************************************************\\\n" - "* aModification[] - map character modifier bits to modification number\n" - "*\n" - "* See kbd.h for a full description.\n" - "*\n" - "\\***************************************************************************/\n\n"); - - /* Zero out local state data */ - for (i = 0; i < 8; i++) States[i] = -1; - - /* Find the highest set state */ - for (HighestState = 1, i = 0; (i < 8) && (ShiftStates[i] != -1); i++) - { - /* Save all state values */ - States[ShiftStates[i]] = i; - if (ShiftStates[i] > HighestState) HighestState = ShiftStates[i]; - } - - /* Modifier conversion table header */ - fprintf(FileHandle, - "static ALLOC_SECTION_LDATA MODIFIERS CharModifiers = {\n" - " &aVkToBits[0],\n" - " %d,\n" - " {\n" - " // Modification# // Keys Pressed\n" - " // ============= // =============\n", - HighestState); - - /* Loop states */ - for (i = 0; i <= HighestState; i++) - { - /* Check for invalid state */ - if (States[i] == -1) - { - /* Invalid state header */ - fprintf(FileHandle, " SHFT_INVALID, // "); - } - else - { - /* Is this the last one? */ - if (i == HighestState) - { - /* Last state header */ - fprintf(FileHandle, " %d // ", States[i]); - } - else - { - /* Normal state header */ - fprintf(FileHandle, " %d, // ", States[i]); - } - - /* State 1 or higher? */ - if (i >= 1) - { - /* J is the loop variable, K is the double */ - for (NeedPlus = 0, j = 0, k = 1; (1 << j) <= i; j++, k = (1 << j)) - { - /* Do we need to add a plus? */ - if (NeedPlus) - { - /* Add it */ - fprintf(FileHandle, "+"); - NeedPlus = FALSE; - } - - /* Check if it's time to add a modifier */ - if (i & k) - { - /* Get the key state name and copy it into our buffer */ - strcpy(KeyNameBuffer, getVKName(Modifiers[j].VirtualKey, 1)); - - /* Go go the 4th char (past the "KBD") and lower name */ - for (p = &KeyNameBuffer[4]; *p; p++) *p = tolower(*p); - - /* Print it */ - fprintf(FileHandle, "%s", &KeyNameBuffer[3]); - - /* We'll need a plus sign next */ - NeedPlus = TRUE; - } - } - } - - /* Terminate the entry */ - fprintf(FileHandle, "\n"); - } - } - - - /* Modifier conversion table end */ - fprintf(FileHandle," }\n" "};\n\n"); - - /* Shift state translation table description */ - fprintf(FileHandle, - "/***************************************************************************\\\n" - "*\n" - "* aVkToWch2[] - Virtual Key to WCHAR translation for 2 shift states\n" - "* aVkToWch3[] - Virtual Key to WCHAR translation for 3 shift states\n" - "* aVkToWch4[] - Virtual Key to WCHAR translation for 4 shift states\n"); - - /* Check if there's exta shift states */ - for (i = 5; i < HighestState; i++) - { - /* Print out extra information */ - fprintf(FileHandle, - "* aVkToWch%d[] - Virtual Key to WCHAR translation for %d shift states\n", - i, - i); - } - - /* Shift state translation table description continue */ - fprintf(FileHandle, - "*\n" - "* Table attributes: Unordered Scan, null-terminated\n" - "*\n" - "* Search this table for an entry with a matching Virtual Key to find the\n" - "* corresponding unshifted and shifted WCHAR characters.\n" - "*\n" - "* Special values for VirtualKey (column 1)\n" - "* 0xff - dead chars for the previous entry\n" - "* 0 - terminate the list\n" - "*\n" - "* Special values for Attributes (column 2)\n" - "* CAPLOK bit - CAPS-LOCK affect this key like SHIFT\n" - "*\n" - "* Special values for wch[*] (column 3 & 4)\n" - "* WCH_NONE - No character\n" - "* WCH_DEAD - Dead Key (diaresis) or invalid (US keyboard has none)\n" - "* WCH_LGTR - Ligature (generates multiple characters)\n" - "*\n" - "\\***************************************************************************/\n\n"); - - /* Loop all the states */ - for (i = 2; i <= StateCount; i++) - { - /* Check if this something else than state 2 */ - if (i != 2) - { - /* Loop all the scan codes */ - for (j = 0; j < 110; j++) - { - /* Check if this is the state for the entry */ - if (i == Layout->Entry[j].StateCount) break; - } - } - - /* Print the table header */ - fprintf(FileHandle, - "static ALLOC_SECTION_LDATA VK_TO_WCHARS%d aVkToWch%d[] = {\n" - "// | | Shift |", - i, - i); - - /* Print the correct state label */ - for (k = 2; k < i; k++) fprintf(FileHandle, "%-9.9s|", - StateLabel[ShiftStates[k]]); - - /* Print the next separator */ - fprintf(FileHandle, "\n// |=========|=========|"); - - /* Check for extra states and print their separators too */ - for (k = 2; k < i; k++) fprintf(FileHandle, "=========|"); - - /* Finalize the separator header */ - fprintf(FileHandle, "\n"); - - /* Loop all the scan codes */ - for (j = 0; j < 110; j++) - { - /* Check if this is the state for the entry */ - if (i != Layout->Entry[j].StateCount) continue; - - /* Print out the entry for this key */ - fprintf(FileHandle, - " {%-13s,%-7s", - getVKName(Layout->Entry[j].VirtualKey, 1), - CapState[Layout->Entry[j].Cap]); - - /* Initialize the buffer for this line */ - *LineBuffer = '\0'; - - /* Loop states */ - for (k = 0; k < i; k++) - { - /* Check for dead key data */ - if (DeadKeyData) - { - /* Not yet supported */ - printf("Dead key data not supported!\n"); - exit(1); - } - - /* Check if it's a ligature key */ - if (Layout->Entry[j].LigatureCharData[k]) - { - /* Not yet supported */ - printf("Ligature key data not supported!\n"); - exit(1); - } - - /* Print out the WCH_ name */ - fprintf(FileHandle, - ",%-9s", - WChName(Layout->Entry[j].CharData[k], 0)); - - /* If we have something on the line buffer by now, add WCH_NONE */ - if (*LineBuffer != '\0') strcpy(LineBuffer, "WCH_NONE "); - } - - /* Finish the line */ - fprintf(FileHandle, "},\n"); - - /* Do we have any data at all? */ - if (*LineBuffer != '\0') - { - /* Print it, we're done */ - fprintf(FileHandle, "%s},\n", LineBuffer); - continue; - } - - /* Otherwise, we're done, unless this requires SGCAP data */ - if (Layout->Entry[j].Cap != 2) continue; - - /* Not yet supported */ - printf("SGCAP not yet supported!\n"); - exit(1); - } - - /* Did we only have two states? */ - if (i == 2) - { - /* Print out the built-in table */ - fprintf(FileHandle, - " {VK_TAB ,0 ,'\\t' ,'\\t' },\n" - " {VK_ADD ,0 ,'+' ,'+' },\n" - " {VK_DIVIDE ,0 ,'/' ,'/' },\n" - " {VK_MULTIPLY ,0 ,'*' ,'*' },\n" - " {VK_SUBTRACT ,0 ,'-' ,'-' },\n"); - } - - /* Terminate the table */ - fprintf(FileHandle, " {0 ,0 "); - for (k = 0; k < i; k++) fprintf(FileHandle, ",0 "); - - /* Terminate the structure */ - fprintf(FileHandle, "}\n" "};\n\n"); - } - - /* Numpad translation table */ - fprintf(FileHandle, - "// Put this last so that VkKeyScan interprets number characters\n" - "// as coming from the main section of the kbd (aVkToWch2 and\n" - "// aVkToWch5) before considering the numpad (aVkToWch1).\n\n" - "static ALLOC_SECTION_LDATA VK_TO_WCHARS1 aVkToWch1[] = {\n" - " { VK_NUMPAD0 , 0 , '0' },\n" - " { VK_NUMPAD1 , 0 , '1' },\n" - " { VK_NUMPAD2 , 0 , '2' },\n" - " { VK_NUMPAD3 , 0 , '3' },\n" - " { VK_NUMPAD4 , 0 , '4' },\n" - " { VK_NUMPAD5 , 0 , '5' },\n" - " { VK_NUMPAD6 , 0 , '6' },\n" - " { VK_NUMPAD7 , 0 , '7' },\n" - " { VK_NUMPAD8 , 0 , '8' },\n" - " { VK_NUMPAD9 , 0 , '9' },\n" - " { 0 , 0 , '\\0' }\n" - "};\n\n"); - - /* Translation tables header */ - fprintf(FileHandle,"static ALLOC_SECTION_LDATA VK_TO_WCHAR_TABLE aVkToWcharTable[] = {\n"); - - /* Loop states higher than 3 */ - for (i = 3; i <= StateCount; i++) - { - /* Print out the extra tables */ - fprintf(FileHandle, - " { (PVK_TO_WCHARS1)aVkToWch%d, %d, sizeof(aVkToWch%d[0]) },\n", - i, - i, - i); - } - - /* Array of translation tables */ - fprintf(FileHandle, - " { (PVK_TO_WCHARS1)aVkToWch2, 2, sizeof(aVkToWch2[0]) },\n" - " { (PVK_TO_WCHARS1)aVkToWch1, 1, sizeof(aVkToWch1[0]) },\n" - " { NULL, 0, 0 },\n" - "};\n\n"); - - /* Scan code to key name conversion table description */ - fprintf(FileHandle, - "/***************************************************************************\\\n" - "* aKeyNames[], aKeyNamesExt[] - Virtual Scancode to Key Name tables\n" - "*\n" - "* Table attributes: Ordered Scan (by scancode), null-terminated\n" - "*\n" - "* Only the names of Extended, NumPad, Dead and Non-Printable keys are here.\n" - "* (Keys producing printable characters are named by that character)\n" - "\\***************************************************************************/\n\n"); - - /* Check for key name data */ - if (KeyNameData) - { - /* Table header */ - fprintf(FileHandle, "static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNames[] = {\n"); - - /* Print table */ - PrintNameTable(FileHandle, KeyNameData, FALSE); - - /* Table end */ - fprintf(FileHandle, "};\n\n"); - } - - /* Check for extended key name data */ - if (KeyNameExtData) - { - /* Table header */ - fprintf(FileHandle, "static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNamesExt[] = {\n"); - - /* Print table */ - PrintNameTable(FileHandle, KeyNameExtData, FALSE); - - /* Table end */ - fprintf(FileHandle, "};\n\n"); - } - - /* Check for dead key name data */ - if (KeyNameDeadData) - { - /* Not yet supported */ - printf("Dead key name data not supported!\n"); - exit(1); - } - - /* Check for dead key data */ - if (DeadKeyData) - { - /* Not yet supported */ - printf("Dead key data not supported!\n"); - exit(1); - } - - /* Check for ligature data */ - if (LigatureData) - { - /* Not yet supported */ - printf("Ligature key data not supported!\n"); - exit(1); - } - - /* Main keyboard table descriptor type */ - fprintf(FileHandle, "static "); - - /* FIXME? */ - - /* Main keyboard table descriptor header */ - fprintf(FileHandle, - "ALLOC_SECTION_LDATA KBDTABLES KbdTables%s = {\n" - " /*\n" - " * Modifier keys\n" - " */\n" - " &CharModifiers,\n\n" - " /*\n" - " * Characters tables\n" - " */\n" - " aVkToWcharTable,\n\n" - " /*\n" - " * Diacritics\n" - " */\n", - FallbackDriver ? "Fallback" : "" ); - - /* Descriptor dead key data section */ - if (DeadKeyData) - { - fprintf(FileHandle, " aDeadKey,\n\n"); - } - else - { - fprintf(FileHandle, " NULL,\n\n"); - } - - /* Descriptor key name comment */ - fprintf(FileHandle, - " /*\n" - " * Names of Keys\n" - " */\n"); - - /* Descriptor key name section */ - if (KeyNameData) - { - fprintf(FileHandle, " aKeyNames,\n"); - } - else - { - fprintf(FileHandle, " NULL,\n"); - } - - /* Descriptor extended key name section */ - if (KeyNameExtData) - { - fprintf(FileHandle, " aKeyNamesExt,\n"); - } - else - { - fprintf(FileHandle, " NULL,\n"); - } - - /* Descriptor dead key name section */ - if ((DeadKeyData) && (KeyNameDeadData)) - { - fprintf(FileHandle, " aKeyNamesDead,\n\n"); - } - else - { - fprintf(FileHandle, " NULL,\n\n"); - } - - /* Descriptor conversion table section */ - fprintf(FileHandle, - " /*\n" - " * Scan codes to Virtual Keys\n" - " */\n" - " ausVK,\n" - " sizeof(ausVK) / sizeof(ausVK[0]),\n" - " aE0VscToVk,\n" - " aE1VscToVk,\n\n" - " /*\n" - " * Locale-specific special processing\n" - " */\n"); - - /* FIXME: AttributeData and KLLF_ALTGR stuff */ - - /* Descriptor locale-specific section */ - fprintf(FileHandle, " MAKELONG(%s, KBD_VERSION),\n\n", "0"); /* FIXME */ - - /* Descriptor ligature data comment */ - fprintf(FileHandle, " /*\n * Ligatures\n */\n %d,\n", 0); /* FIXME */ - - /* Descriptor ligature data section */ - if (!LigatureData) - { - fprintf(FileHandle, " 0,\n"); - fprintf(FileHandle, " NULL\n"); - } - else - { - fprintf(FileHandle, " sizeof(aLigature[0]),\n"); - fprintf(FileHandle, " (PLIGATURE1)aLigature\n"); - } - - /* Descriptor finish */ - fprintf(FileHandle, "};\n\n"); - - /* Keyboard layout callback function */ - if (!FallbackDriver) fprintf(FileHandle, - "PKBDTABLES KbdLayerDescriptor(VOID)\n" - "{\n" - " return &KbdTables;\n" - "}\n"); - - /* Clean up */ - fclose(FileHandle); - return TRUE; -} - -ULONG -DoOutput(IN ULONG StateCount, - IN PULONG ShiftStates, - IN PKEYNAME DescriptionData, - IN PKEYNAME LanguageData, - IN PVOID AttributeData, - IN PVOID DeadKeyData, - IN PVOID LigatureData, - IN PKEYNAME KeyNameData, - IN PKEYNAME KeyNameExtData, - IN PKEYNAME KeyNameDeadData) -{ - ULONG FailureCode = 0; - - /* Take the time */ - time(&Clock); - Now = localtime(&Clock); - - /* Check if this just a fallback driver*/ - if (!FallbackDriver) - { - /* It's not, create header file */ - if (!kbd_h(&g_Layout)) FailureCode = 1; - - /* Create the resource file */ - if (!kbd_rc(DescriptionData, LanguageData)) FailureCode = 2; - } - - /* Create the C file */ - if (!kbd_c(StateCount, - ShiftStates, - AttributeData, - &g_Layout, - DeadKeyData, - LigatureData, - KeyNameData, - KeyNameExtData, - KeyNameDeadData)) - { - /* Failed in C file generation */ - FailureCode = 3; - } - - /* Check if this just a fallback driver*/ - if (!FallbackDriver) - { - /* Generate the definition file */ - if (!kbd_def()) FailureCode = 4; - } - - /* Done */ - return FailureCode; -} - - -/* EOF */ diff --git a/reactos/tools/kbdtool/parser.c b/reactos/tools/kbdtool/parser.c deleted file mode 100644 index 8e3a664e065..00000000000 --- a/reactos/tools/kbdtool/parser.c +++ /dev/null @@ -1,1151 +0,0 @@ -/* - * PROJECT: ReactOS Build Tools [Keyboard Layout Compiler] - * LICENSE: BSD - See COPYING.BSD in the top level directory - * FILE: tools/kbdtool/parser.c - * PURPOSE: Parsing Logic - * PROGRAMMERS: ReactOS Foundation - */ - -/* INCLUDES *******************************************************************/ - -#include "kbdtool.h" - -/* GLOBALS ********************************************************************/ - -/* Internal parser data about everything that was parsed */ -CHAR gBuf[256]; -CHAR gKBDName[10]; -CHAR gCopyright[256]; -CHAR gDescription[256]; -CHAR gCompany[256]; -CHAR gLocaleName[256]; -CHAR gVKeyName[32]; -ULONG gID = 0; -ULONG gKbdLayoutVersion; -LAYOUT g_Layout; -ULONG gLineCount; - -/* Table of keywords the parser recognizes */ -PCHAR KeyWordList[KEYWORD_COUNT] = -{ - "KBD", - "VERSION", - "COPYRIGHT", - "COMPANY", - "LOCALENAME", - "MODIIFERS", - "SHIFTSTATE", - "ATTRIBUTES", - "LAYOUT", - "DEADKEY", - "LIGATURE", - "KEYNAME", - "KEYNAME_EXT", - "KEYNAME_DEAD", - "DESCRIPTIONS", - "LANGUAGENAMES", - "ENDKBD", -}; - -/* FUNCTIONS ******************************************************************/ - -ULONG -isKeyWord(PCHAR p) -{ - ULONG i; - - /* Check if we know this keyword */ - for (i = 0; i < KEYWORD_COUNT; i++) if (strcmp(KeyWordList[i], p) == 0) break; - - /* If we didn't find anything, i will be KEYWORD_COUNT, which is invalid */ - return i; -} - -PCHAR -getVKName(IN ULONG VirtualKey, - IN BOOLEAN Prefix) -{ - ULONG i; - - /* Loop for standard virtual key */ - if (((VirtualKey >= 'A') && (VirtualKey <= 'Z')) || - ((VirtualKey >= '0') && (VirtualKey <= '9'))) - { - /* Fill out the name */ - gVKeyName[0] = '\''; - gVKeyName[1] = VirtualKey; - gVKeyName[2] = '\''; - gVKeyName[3] = '\0'; - return gVKeyName; - } - - /* Check if a prefix is required */ - if (Prefix) - { - /* Add it */ - strcpy(gVKeyName, "VK_"); - } - else - { - /* Otherwise, don't add anything */ - strcpy(gVKeyName, ""); - } - - /* Loop all virtual keys */ - for (i = 0; i < 36; i++) - { - /* Check if this key matches */ - if (VKName[i].VirtualKey == VirtualKey) - { - /* Copy the key's name into the buffer */ - strcat(gVKeyName, VKName[i].Name); - return gVKeyName; - } - } - - /* If we got here, then we failed, so print out an error name */ - strcpy(gVKeyName, "#ERROR#"); - return gVKeyName; -} - -ULONG -getVKNum(IN PCHAR p) -{ - ULONG Length; - ULONG i; - ULONG KeyNumber; - - /* Compute the length of the string */ - Length = strlen(p); - if (!Length) return -1; - - /* Check if this is is a simple key */ - if (Length == 1) - { - /* If it's a number, return it now */ - if ((*p >= '0') && (*p <= '9')) return *p; - - /* Otherwise, convert the letter to upper case */ - *p = toupper(*p); - - /* And make sure it's a valid letter */ - if ((*p >= 'A') && (*p <='Z')) return *p; - - /* Otherwise, fail */ - return -1; - } - - /* Otherwise, scan our virtual key names */ - for (i = 0; i < 36; i++) - { - /* Check if we have a match */ - if (!strcmp(VKName[i].Name, p)) return VKName[i].VirtualKey; - } - - /* Check if this is a hex string */ - if ((*p == '0') && ((*(p + 1) == 'x') || (*(p + 1) == 'X'))) - { - /* Get the key number from the hex string */ - *(p + 1) = 'x'; - if (sscanf(p, "0x%x", &KeyNumber) == 1) return KeyNumber; - } - - /* No hope: fail */ - return -1; -} - -UCHAR -getCharacterInfo(IN PCHAR State, - OUT PULONG EntryChar, - OUT PCHAR LigatureChar) -{ - ULONG Length; - ULONG CharInfo = CHAR_NORMAL_KEY; - UCHAR StateChar; - ULONG CharCode; - - /* Calculate the length of the state */ - Length = strlen(State); - - /* Check if this is at least a simple key state */ - if (Length > 1) - { - /* Read the first character and check if it's a dead key */ - StateChar = State[Length - 1]; - if (StateChar == '@') - { - /* This is a dead key */ - CharInfo = CHAR_DEAD_KEY; - } - else if (StateChar == '%') - { - /* This is another key */ - CharInfo = CHAR_OTHER_KEY; - } - } - - /* Check if this is a numerical key state */ - if ((Length - 1) >= 2) - { - /* Scan for extended character code entry */ - if ((sscanf(State, "%6x", &CharCode) == 1) && - ((Length == 5) && (State[0] == '0') || - (Length == 6) && ((State[0] == '0') && (State[1] == '0')))) - { - /* Handle a ligature key */ - CharInfo = CHAR_LIGATURE_KEY; - - /* Not yet handled */ - printf("Ligatured character entries not yet supported!\n"); - exit(1); - } - else - { - /* Get the normal character entry */ - if (sscanf(State, "%4x", &CharCode) == 1) - { - /* Does the caller want the key? */ - if (EntryChar) *EntryChar = CharCode; - } - else - { - /* The entry is totally invalid */ - if (Verbose) printf("An unparseable character entry '%s' was found.\n", State); - if (EntryChar) *EntryChar = 0; - CharInfo = CHAR_INVALID_KEY; - } - } - } - else - { - /* Save the key if the caller requested it */ - if (EntryChar) *EntryChar = *State; - } - - /* Return the type of character this is */ - return CharInfo; -} - -BOOLEAN -NextLine(PCHAR LineBuffer, - ULONG BufferSize, - FILE *File) -{ - PCHAR p, pp; - - /* Scan each line */ - while (fgets(LineBuffer, BufferSize, File)) - { - /* Remember it */ - gLineCount++; - - /* Reset the pointer at the beginning of the line */ - p = LineBuffer; - - /* Now bypass all whitespace (and tabspace) */ - while ((*p) && ((*p == ' ') || (*p == '\t'))) p++; - - /* If this is an old-style comment, skip the line */ - if (*p == ';') continue; - - /* Otherwise, check for new-style comment */ - pp = strstr(p, "//"); - if (pp) - { - /* We have a comment, so terminate there (unless the whole line is one) */ - if (pp == p) continue; - *pp = '\0'; - } - else - { - /* No comment, so find the new line and terminate there */ - p = strchr(p, '\n'); - if (p) *p = '\0'; - } - - /* We have a line! */ - return TRUE; - } - - /* No line found */ - return FALSE; -} - -ULONG -SkipLines(VOID) -{ - ULONG KeyWord; - CHAR KeyWordChars[32]; - - /* Scan each line, skipping it if it's not a keyword */ - while (NextLine(gBuf, sizeof(gBuf), gfpInput)) - { - /* Read a single word */ - if (sscanf(gBuf, "%s", KeyWordChars) == 1) - { - /* If the word is a keyword, stop skipping lines */ - KeyWord = isKeyWord(KeyWordChars); - if (KeyWord < KEYWORD_COUNT) return KeyWord; - } - } - - /* We skipped all the possible lines, not finding anything */ - return KEYWORD_COUNT; -} - -ULONG -DoKBD(VOID) -{ - /* On Unicode files, we need to find the Unicode marker (FEEF) */ - ASSERT(UnicodeFile == FALSE); - - /* Initial values */ - *gKBDName = '\0'; - *gDescription = '\0'; - - /* Scan for the values */ - if (sscanf(gBuf, "KBD %8s \"%40[^\"]\" %d", gKBDName, gDescription, &gID) < 2) - { - /* Couldn't find them */ - printf("Unable to read keyboard name or description.\n"); - exit(1); - } - - /* Debug only */ - DPRINT1("KBD Name: [%8s] Description: [%40s] ID: [%d]\n", gKBDName, gDescription, gID); - return SkipLines(); -} - -ULONG -DoVERSION(VOID) -{ - /* Scan for the value */ - if (sscanf(gBuf, "VERSION %d", &gKbdLayoutVersion) < 1) - { - /* Couldn't find them */ - printf("Unable to read keyboard version information.\n"); - } - - /* Debug only */ - DPRINT1("VERSION [%d]\n", gKbdLayoutVersion); - return SkipLines(); -} - -ULONG -DoCOPYRIGHT(VOID) -{ - /* Initial values */ - *gCopyright = '\0'; - - /* Scan for the value */ - if (sscanf(gBuf, "COPYRIGHT \"%40[^\"]\"", gCopyright) < 1) - { - /* Couldn't find them */ - printf("Unable to read the specified COPYRIGHT string.\n"); - } - - /* Debug only */ - DPRINT1("COPYRIGHT [%40s]\n", gCopyright); - return SkipLines(); -} - -ULONG -DoCOMPANY(VOID) -{ - /* Initial values */ - *gCompany = '\0'; - - /* Scan for the value */ - if (sscanf(gBuf, "COMPANY \"%85[^\"]\"", gCompany) < 1) - { - /* Couldn't find them */ - printf("Unable to read the specified COMPANY name.\n"); - } - - /* Debug only */ - DPRINT1("COMPANY [%85s]\n", gCompany); - return SkipLines(); -} - -ULONG -DoLOCALENAME(VOID) -{ - /* Initial values */ - *gLocaleName = '\0'; - - /* Scan for the value */ - if (sscanf(gBuf, "LOCALENAME \"%40[^\"]\"", gLocaleName) < 1) - { - /* Couldn't find them */ - printf("Unable to read the specified COPYRIGHT string.\n"); - } - - /* Debug only */ - DPRINT1("LOCALENAME [%40s]\n", gLocaleName); - return SkipLines(); -} - -ULONG -DoDESCRIPTIONS(IN PKEYNAME* DescriptionData) -{ - ULONG KeyWord = 0; - CHAR Token[32]; - ULONG LanguageCode; - PCHAR p, pp; - PKEYNAME Description; - - /* Assume nothing */ - *DescriptionData = 0; - - /* Start scanning */ - while (NextLine(gBuf, 256, gfpInput)) - { - /* Search for token */ - if (sscanf(gBuf, "%s", Token) != 1) continue; - - /* Make sure it's not just a comment */ - if (*Token == ';') continue; - - /* Make sure it's not a keyword */ - KeyWord = isKeyWord(Token); - if (KeyWord < KEYWORD_COUNT) break; - - /* Now scan for the language code */ - if (sscanf(Token, " %4x", &LanguageCode) != 1) - { - /* Skip */ - printf("An invalid LANGID was specified.\n"); - continue; - } - - /* Now get the actual description */ - if (sscanf(gBuf, " %*4x %s[^\n]", Token) != 1) - { - /* Skip */ - printf("A language description is missing.\n"); - continue; - } - - /* Get the description string and find the ending */ - p = strstr(gBuf, Token); - pp = strchr(p, '\n'); - if (!pp) pp = strchr(p, '\r'); - - /* Terminate the description string here */ - if (pp) *pp = 0; - - /* Now allocate the description */ - Description = malloc(sizeof(KEYNAME)); - if (!Description) - { - /* Fail */ - printf("Unable to allocate the KEYNAME struct (out of memory?).\n"); - exit(1); - } - - /* Fill out the structure */ - Description->Code = LanguageCode; - Description->Name = strdup(p); - Description->Next = NULL; - - /* Debug only */ - DPRINT1("LANGID: [%4x] Description: [%s]\n", Description->Code, Description->Name); - - /* Point to it and advance the pointer */ - *DescriptionData = Description; - DescriptionData = &Description->Next; - } - - /* We are done */ - return KeyWord; -} - -ULONG -DoLANGUAGENAMES(IN PKEYNAME* LanguageData) -{ - ULONG KeyWord = 0; - CHAR Token[32]; - ULONG LanguageCode; - PCHAR p, pp; - PKEYNAME Language; - - /* Assume nothing */ - *LanguageData = 0; - - /* Start scanning */ - while (NextLine(gBuf, 256, gfpInput)) - { - /* Search for token */ - if (sscanf(gBuf, "%s", Token) != 1) continue; - - /* Make sure it's not just a comment */ - if (*Token == ';') continue; - - /* Make sure it's not a keyword */ - KeyWord = isKeyWord(Token); - if (KeyWord < KEYWORD_COUNT) break; - - /* Now scan for the language code */ - if (sscanf(Token, " %4x", &LanguageCode) != 1) - { - /* Skip */ - printf("An invalid LANGID was specified.\n"); - continue; - } - - /* Now get the actual language */ - if (sscanf(gBuf, " %*4x %s[^\n]", Token) != 1) - { - /* Skip */ - printf("A language name is missing\n"); - continue; - } - - /* Get the language string and find the ending */ - p = strstr(gBuf, Token); - pp = strchr(p, '\n'); - if (!pp) pp = strchr(p, '\r'); - - /* Terminate the language string here */ - if (pp) *pp = 0; - - /* Now allocate the language */ - Language = malloc(sizeof(KEYNAME)); - if (!Language) - { - /* Fail */ - printf("Unable to allocate the KEYNAME struct (out of memory?).\n"); - exit(1); - } - - /* Fill out the structure */ - Language->Code = LanguageCode; - Language->Name = strdup(p); - Language->Next = NULL; - - /* Debug only */ - DPRINT1("LANGID: [%4x] Name: [%s]\n", Language->Code, Language->Name); - - /* Point to it and advance the pointer */ - *LanguageData = Language; - LanguageData = &Language->Next; - } - - /* We are done */ - return KeyWord; -} - -ULONG -DoKEYNAME(IN PKEYNAME* KeyNameData) -{ - ULONG KeyWord = 0; - CHAR Token[32]; - ULONG CharacterCode; - PCHAR p, pp; - PKEYNAME KeyName; - - /* Assume nothing */ - *KeyNameData = 0; - - /* Start scanning */ - while (NextLine(gBuf, 256, gfpInput)) - { - /* Search for token */ - if (sscanf(gBuf, "%s", Token) != 1) continue; - - /* Make sure it's not just a comment */ - if (*Token == ';') continue; - - /* Make sure it's not a keyword */ - KeyWord = isKeyWord(Token); - if (KeyWord < KEYWORD_COUNT) break; - - /* Now scan for the character code */ - if (sscanf(Token, " %4x", &CharacterCode) != 1) - { - /* Skip */ - printf("An invalid character code was specified.\n"); - continue; - } - - /* Now get the actual key name */ - if (sscanf(gBuf, " %*4x %s[^\n]", Token) != 1) - { - /* Skip */ - printf("A key name is missing\n"); - continue; - } - - /* Get the key name string and find the ending */ - p = strstr(gBuf, Token); - pp = strchr(p, '\n'); - if (!pp) pp = strchr(p, '\r'); - - /* Terminate the key name string here */ - if (pp) *pp = 0; - - /* Now allocate the language */ - KeyName = malloc(sizeof(KEYNAME)); - if (!KeyName) - { - /* Fail */ - printf("Unable to allocate the KEYNAME struct (out of memory?).\n"); - exit(1); - } - - /* Fill out the structure */ - KeyName->Code = CharacterCode; - KeyName->Name = strdup(p); - KeyName->Next = NULL; - - /* Debug only */ - DPRINT1("CHARCODE: [%4x] Name: [%s]\n", KeyName->Code, KeyName->Name); - - /* Point to it and advance the pointer */ - *KeyNameData = KeyName; - KeyNameData = &KeyName->Next; - } - - /* We are done */ - return KeyWord; -} - -ULONG -DoSHIFTSTATE(IN PULONG StateCount, - IN OUT PULONG ShiftStates) -{ - ULONG KeyWord; - ULONG i; - ULONG ShiftState; - CHAR Token[32]; - - /* Reset the shift states */ - for (i = 0; i < 8; i++) ShiftStates[i] = -1; - - /* Start with no states */ - *StateCount = 0; - - /* Scan for shift states */ - while (NextLine(gBuf, 256, gfpInput)) - { - /* Search for token */ - if (sscanf(gBuf, "%s", Token) != 1) continue; - - /* Make sure it's not a keyword */ - KeyWord = isKeyWord(Token); - if (KeyWord < KEYWORD_COUNT) break; - - /* Now scan for the shift state */ - if (sscanf(gBuf, " %1s[012367]", Token) != 1) - { - /* We failed -- should we warn? */ - if (Verbose) printf("An invalid shift state '%s' was found (use 0, 1, 2, 3, 6, or 7.)\n", Token); - continue; - } - - /* Now read the state */ - ShiftState = atoi(Token); - - /* Scan existing states */ - for (i = 0; i < *StateCount; i++) - { - /* Check for duplicate */ - if ((ShiftStates[i] == ShiftState) && (Verbose)) - { - /* Warn user */ - printf("The state '%d' was duplicated for this Virtual Key.\n", ShiftStates[i]); - break; - } - } - - /* Make sure we won't overflow */ - if (*StateCount < 8) - { - /* Save this state */ - ShiftStates[(*StateCount)++] = ShiftState; - } - else - { - /* Too many states -- should we warn? */ - if (Verbose) printf("There were too many states (you defined %d).\n", *StateCount); - } - } - - /* Debug only */ - DPRINT1("Found %d Shift States: [", *StateCount); - for (i = 0; i < *StateCount; i++) DPRINT1("%d ", ShiftStates[i]); - DPRINT1("]\n"); - - /* We are done */ - return KeyWord; -} - -ULONG -DoLIGATURE(PVOID LigatureData) -{ - printf("LIGATURE support is not yet implemented. Please bug Arch to fix it\n"); - return SkipLines(); -} - -ULONG -DoATTRIBUTES(PVOID AttributeData) -{ - printf("ATTRIBUTES support is not yet implemented. Please bug Arch to fix it\n"); - return SkipLines(); -} - -ULONG -DoMODIFIERS(VOID) -{ - printf("MODIFIERS support is not yet implemented. Please bug Arch to fix it\n"); - return SkipLines(); -} - -ULONG -DoDEADKEY(PVOID DeadKeyData) -{ - printf("DEADKEY support is not yet implemented. Please bug Arch to fix it\n"); - return SkipLines(); -} - -ULONG -DoLAYOUT(IN PLAYOUT LayoutData, - IN PVOID LigatureData, - IN PULONG ShiftStates, - IN ULONG StateCount) -{ - CHAR Token[32]; - CHAR Cap[8]; - ULONG KeyWord; - ULONG ScanCode, CurrentCode; - ULONG TokenCount; - ULONG VirtualKey; - ULONG i; - ULONG Count; - BOOLEAN FullEntry; - CHAR State[8][8]; - ULONG ScanCodeCount = -1; - PLAYOUTENTRY Entry; - UCHAR CharacterType, LigatureChar; - - /* Zero out the layout */ - memset(LayoutData, 0, sizeof(LAYOUT)); - - /* Read each line */ - Entry = &LayoutData->Entry[0]; - while (NextLine(gBuf, 256, gfpInput)) - { - /* Search for token */ - if (sscanf(gBuf, "%s", Token) != 1) continue; - - /* Make sure it's not just a comment */ - if (*Token == ';') continue; - - /* Make sure it's not a keyword */ - KeyWord = isKeyWord(Token); - if (KeyWord < KEYWORD_COUNT) break; - - /* Now read the entry */ - TokenCount = sscanf(gBuf, " %x %s %s", &ScanCode, Token, Cap); - if (TokenCount == 3) - { - /* Full entry with cap */ - FullEntry = TRUE; - } - else if (TokenCount != 2) - { - /* Fail, invalid LAYOUT entry */ - printf("There are not enough columns in the layout list.\n"); - exit(1); - } - else - { - /* Simplified layout with no cap */ - FullEntry = FALSE; - } - - /* One more */ - DPRINT1("RAW ENTRY: [%x %s %s]\n", ScanCode, Token, Cap); - Entry++; - if (++ScanCodeCount >= 110) - { - /* Too many! */ - printf("ScanCode %02x - too many scancodes here to parse.\n", ScanCode); - exit(1); - } - - /* Fill out this entry */ - Entry->ScanCode = ScanCode; - Entry->LineCount = gLineCount; - - /* Loop scancode table */ - for (i = 0; i < 110; i++) - { - /* Get the current code */ - CurrentCode = ScVk[i].ScanCode; - if (CurrentCode == 0xFFFF) - { - /* New code */ - if (Verbose) printf("A new scancode is being defined: 0x%2X, %s\n", Entry->ScanCode, Token); - - /* Fill out the entry */ - Entry->VirtualKey = getVKNum(Token); - break; - } - else if (ScanCode == CurrentCode) - { - /* Make sure we didn't already process it */ - if (ScVk[i].Processed) - { - /* Fail */ - printf("Scancode %X was previously defined.\n", ScanCode); - exit(1); - } - - /* Check if there is a valid virtual key */ - if (ScVk[i].VirtualKey == 0xFFFF) - { - /* Fail */ - printf("The Scancode you tried to use (%X) is reserved.\n", ScanCode); - exit(1); - } - - /* Fill out the entry */ - Entry->OriginalVirtualKey = ScVk[i].VirtualKey; - Entry->Name = ScVk[i].Name; - break; - } - } - - /* The entry is now processed */ - Entry->Processed = TRUE; - ScVk[i].Processed = TRUE; - - /* Get the virtual key from the entry */ - VirtualKey = getVKNum(Token); - Entry->VirtualKey = VirtualKey; - DPRINT1("ENTRY: [%x %x %x %s] with ", - Entry->VirtualKey, Entry->OriginalVirtualKey, Entry->ScanCode, Entry->Name); - - /* Make sure it's valid */ - if (VirtualKey == 0xFFFF) - { - /* Warn the user */ - if (Verbose) printf("An invalid Virtual Key '%s' was defined.\n", Token); - continue; - } - - /* Is this a full entry */ - if (FullEntry) - { - /* Do we have SGCAP data? Set cap mode to 2 */ - if (!strcmp(Cap, "SGCAP")) *Cap = '2'; - - /* Read the cap mode */ - if (sscanf(Cap, "%1d[012]", &Entry->Cap) != 1) - { - /* Invalid cap mode */ - printf("invalid Cap specified (%s). Must be 0, 1, or 2.\n", Cap); - exit(1); - } - } - - /* Read the states */ - Count = sscanf(gBuf, - " %*s %*s %*s %s %s %s %s %s %s %s %s", - State[0], - State[1], - State[2], - State[3], - State[4], - State[5], - State[6], - State[7]); - Entry->StateCount = Count; - DPRINT1("%d STATES: [", Count); - - /* Check if there are less than 2 states */ - if ((Count < 2) && (FullEntry)) - { - /* Fail */ - printf("You must have at least 2 characters.\n"); - exit(1); - } - - /* Loop all states */ - for (i = 0; i < Count; i++) - { - /* Check if this is an undefined state */ - DPRINT1("%s ", State[i]); - if (!strcmp(State[i], "-1")) - { - /* No data for this state */ - Entry->CharData[i] = -1; - continue; - } - - /* Otherwise, check what kind of character this is */ - CharacterType = getCharacterInfo(State[i], - &Entry->CharData[i], - &LigatureChar); - if (CharacterType == CHAR_DEAD_KEY) - { - /* Save it as such */ - Entry->DeadCharData[i] = 1; - } - else if (CharacterType == CHAR_OTHER_KEY) - { - /* Save it as such */ - Entry->OtherCharData[i] = 1; - } - } - - /* Check for sanity checks */ - DPRINT1("]\n"); - if (SanityCheck) - { - /* Not yet handled... */ - printf("Sanity checks not yet handled!\n"); - exit(1); - } - - /* Check if we had SGCAP data */ - if (Entry->Cap & 2) - { - /* Not yet handled... */ - printf("SGCAP state not yet handled!\n"); - exit(1); - } - } - - /* Process the scan code table */ - Entry = &LayoutData->Entry[ScanCodeCount]; - for (i = 0; i < 110; i++) - { - /* Get the scan code */ - CurrentCode = ScVk[i].ScanCode; - if (CurrentCode == 0xFFFF) break; - - /* Check if this entry had been processed */ - if (ScVk[i].Processed) - { - /* Skip it */ - ScVk[i].Processed = FALSE; - } - else - { - /* Do we have too many? */ - if (++ScanCodeCount >= 110) - { - /* Fail */ - printf("ScanCode %02x - too many scancodes here to parse.\n", CurrentCode); - exit(1); - } - - /* Build an entry for it */ - Entry++; - Entry->ScanCode = CurrentCode; - Entry->VirtualKey = ScVk[i].VirtualKey; - Entry->OriginalVirtualKey = ScVk[i].VirtualKey; - Entry->Name = ScVk[i].Name; - Entry->Processed = TRUE; - Entry->LineCount = 0; - DPRINT1("AUTOMATIC ENTRY: [%x %x %s]\n", - Entry->VirtualKey, Entry->ScanCode, Entry->Name); - } - } - - /* Skip what's left */ - return KeyWord; -} - -ULONG -DoParsing(VOID) -{ - ULONG KeyWords[KEYWORD_COUNT]; - ULONG KeyWord; - ULONG StateCount; - ULONG ShiftStates[8]; - PKEYNAME DescriptionData = NULL, LanguageData = NULL; - PKEYNAME KeyNameData = NULL, KeyNameExtData = NULL, KeyNameDeadData = NULL; - PVOID AttributeData = NULL, LigatureData = NULL, DeadKeyData = NULL; - - /* Parse keywords */ - gLineCount = 0; - KeyWord = SkipLines(); - if (KeyWord >= KEYWORD_COUNT) - { - /* Invalid keyword count, fail */ - fclose(gfpInput); - printf("No keywords were found in '%s'.\n", gpszFileName); - exit(1); - } - - /* Now parse the keywords */ - while (KeyWord < (KEYWORD_COUNT - 1)) - { - /* Save this keyword */ - KeyWords[KeyWord]++; - - /* Check for duplicate entires, other than DEADKEY, which is okay */ - if ((KeyWord != 9) && (KeyWords[KeyWord] > 1) && (Verbose)) - { - /* On a verbose run, warn the user */ - printf("The '%s' keyword appeared multiple times.\n", - KeyWordList[KeyWord]); - } - - /* Now parse this keyword */ - switch (KeyWord) - { - /* KBD */ - case 0: - - DPRINT1("Found KBD section\n"); - KeyWord = DoKBD(); - break; - - /* VERSION */ - case 1: - - DPRINT1("Found VERSION section\n"); - KeyWord = DoVERSION(); - break; - - /* COPYRIGHT */ - case 2: - - DPRINT1("Found COPYRIGHT section\n"); - KeyWord = DoCOPYRIGHT(); - break; - - /* COMPANY */ - case 3: - - DPRINT1("Found COMPANY section\n"); - KeyWord = DoCOMPANY(); - break; - - /* LOCALENAME */ - case 4: - - DPRINT1("Found LOCALENAME section\n"); - KeyWord = DoLOCALENAME(); - break; - - /* MODIFIERS */ - case 5: - - DPRINT1("Found MODIFIERS section\n"); - KeyWord = DoMODIFIERS(); - break; - - /* SHIFTSTATE */ - case 6: - - DPRINT1("Found SHIFTSTATE section\n"); - KeyWord = DoSHIFTSTATE(&StateCount, ShiftStates); - if (StateCount < 2) - { - /* Fail */ - fclose(gfpInput); - printf("ERROR"); - exit(1); - } - break; - - /* ATTRIBUTES */ - case 7: - - DPRINT1("Found ATTRIBUTES section\n"); - KeyWord = DoATTRIBUTES(&AttributeData); - break; - - /* LAYOUT */ - case 8: - - DPRINT1("Found LAYOUT section\n"); - KeyWord = DoLAYOUT(&g_Layout, - &LigatureData, - ShiftStates, - StateCount); - break; - - /* DEADKEY */ - case 9: - - DPRINT1("Found DEADKEY section\n"); - KeyWord = DoDEADKEY(&DeadKeyData); - break; - - /* LIGATURE */ - case 10: - - DPRINT1("Found LIGATURE section\n"); - KeyWord = DoLIGATURE(&LigatureData); - break; - - /* KEYNAME */ - case 11: - - DPRINT1("Found KEYNAME section\n"); - KeyWord = DoKEYNAME(&KeyNameData); - break; - - /* KEYNAME_EXT */ - case 12: - - DPRINT1("Found KEYNAME_EXT section\n"); - KeyWord = DoKEYNAME(&KeyNameExtData); - break; - - /* KEYNAME_DEAD */ - case 13: - - DPRINT1("Found KEYNAME_DEAD section\n"); - KeyWord = DoKEYNAME(&KeyNameDeadData); - break; - - /* DESCRIPTIONS */ - case 14: - - DPRINT1("Found DESCRIPTIONS section\n"); - KeyWord = DoDESCRIPTIONS(&DescriptionData); - break; - - /* LANGUAGENAMES */ - case 15: - - DPRINT1("Found LANGUAGENAMES section\n"); - KeyWord = DoLANGUAGENAMES(&LanguageData); - break; - - /* ENDKBD */ - case 16: - - DPRINT1("Found ENDKBD section\n"); - KeyWord = SkipLines(); - break; - - - default: - break; - } - } - - /* We are done */ - fclose(gfpInput); - - /* Now enter the output phase */ - return DoOutput(StateCount, - ShiftStates, - DescriptionData, - LanguageData, - AttributeData, - DeadKeyData, - LigatureData, - KeyNameData, - KeyNameExtData, - KeyNameDeadData); -} -/* EOF */ diff --git a/reactos/tools/kbdtool/test.klc b/reactos/tools/kbdtool/test.klc deleted file mode 100644 index 22b0079d524..00000000000 --- a/reactos/tools/kbdtool/test.klc +++ /dev/null @@ -1,162 +0,0 @@ -KBD Layout01 "US - Custom" - -COPYRIGHT "(c) 2009 Company" - -COMPANY "Company" - -LOCALENAME "en-US" - -LOCALEID "00000409" - -VERSION 1.0 - -SHIFTSTATE - -0 //Column 4 -1 //Column 5 : Shft -2 //Column 6 : Ctrl - -LAYOUT ;an extra '@' at the end is a dead key - -//SC VK_ Cap 0 1 2 -//-- ---- ---- ---- ---- ---- - -02 1 0 1 0021 -1 // DIGIT ONE, EXCLAMATION MARK, -03 2 0 2 0040 -1 // DIGIT TWO, COMMERCIAL AT, -04 3 0 3 0023 -1 // DIGIT THREE, NUMBER SIGN, -05 4 0 4 0024 -1 // DIGIT FOUR, DOLLAR SIGN, -06 5 0 5 0025 -1 // DIGIT FIVE, PERCENT SIGN, -07 6 0 6 005e -1 // DIGIT SIX, CIRCUMFLEX ACCENT, -08 7 0 7 0026 -1 // DIGIT SEVEN, AMPERSAND, -09 8 0 8 002a -1 // DIGIT EIGHT, ASTERISK, -0a 9 0 9 0028 -1 // DIGIT NINE, LEFT PARENTHESIS, -0b 0 0 0 0029 -1 // DIGIT ZERO, RIGHT PARENTHESIS, -0c OEM_MINUS 0 002d 005f -1 // HYPHEN-MINUS, LOW LINE, -0d OEM_PLUS 0 003d 002b -1 // EQUALS SIGN, PLUS SIGN, -10 Q 1 q Q -1 // LATIN SMALL LETTER Q, LATIN CAPITAL LETTER Q, -11 W 1 w W -1 // LATIN SMALL LETTER W, LATIN CAPITAL LETTER W, -12 E 1 e E -1 // LATIN SMALL LETTER E, LATIN CAPITAL LETTER E, -13 R 1 r R -1 // LATIN SMALL LETTER R, LATIN CAPITAL LETTER R, -14 T 1 t T -1 // LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, -15 Y 1 y Y -1 // LATIN SMALL LETTER Y, LATIN CAPITAL LETTER Y, -16 U 1 u U -1 // LATIN SMALL LETTER U, LATIN CAPITAL LETTER U, -17 I 1 i I -1 // LATIN SMALL LETTER I, LATIN CAPITAL LETTER I, -18 O 1 o O -1 // LATIN SMALL LETTER O, LATIN CAPITAL LETTER O, -19 P 1 p P -1 // LATIN SMALL LETTER P, LATIN CAPITAL LETTER P, -1a OEM_4 0 005b 007b 001b // LEFT SQUARE BRACKET, LEFT CURLY BRACKET, ESCAPE -1b OEM_6 0 005d 007d 001d // RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET, INFORMATION SEPARATOR THREE -1e A 1 a A -1 // LATIN SMALL LETTER A, LATIN CAPITAL LETTER A, -1f S 1 s S -1 // LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, -20 D 1 d D -1 // LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, -21 F 1 f F -1 // LATIN SMALL LETTER F, LATIN CAPITAL LETTER F, -22 G 1 g G -1 // LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, -23 H 1 h H -1 // LATIN SMALL LETTER H, LATIN CAPITAL LETTER H, -24 J 1 j J -1 // LATIN SMALL LETTER J, LATIN CAPITAL LETTER J, -25 K 1 k K -1 // LATIN SMALL LETTER K, LATIN CAPITAL LETTER K, -26 L 1 l L -1 // LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, -27 OEM_1 0 003b 003a -1 // SEMICOLON, COLON, -28 OEM_7 0 0027 0022 -1 // APOSTROPHE, QUOTATION MARK, -29 OEM_3 0 0060 007e -1 // GRAVE ACCENT, TILDE, -2b OEM_5 0 005c 007c 001c // REVERSE SOLIDUS, VERTICAL LINE, INFORMATION SEPARATOR FOUR -2c Z 1 z Z -1 // LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, -2d X 1 x X -1 // LATIN SMALL LETTER X, LATIN CAPITAL LETTER X, -2e C 1 c C -1 // LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, -2f V 1 v V -1 // LATIN SMALL LETTER V, LATIN CAPITAL LETTER V, -30 B 1 b B -1 // LATIN SMALL LETTER B, LATIN CAPITAL LETTER B, -31 N 1 n N -1 // LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, -32 M 1 m M -1 // LATIN SMALL LETTER M, LATIN CAPITAL LETTER M, -33 OEM_COMMA 0 002c 003c -1 // COMMA, LESS-THAN SIGN, -34 OEM_PERIOD 0 002e 003e -1 // FULL STOP, GREATER-THAN SIGN, -35 OEM_2 0 002f 003f -1 // SOLIDUS, QUESTION MARK, -39 SPACE 0 0020 0020 0020 // SPACE, SPACE, SPACE -56 OEM_102 0 005c 007c 001c // REVERSE SOLIDUS, VERTICAL LINE, INFORMATION SEPARATOR FOUR -53 DECIMAL 0 002e 002e -1 // FULL STOP, FULL STOP, - - -KEYNAME - -01 Esc -0e Backspace -0f Tab -1c Enter -1d Ctrl -2a Shift -36 "Right Shift" -37 "Num *" -38 Alt -39 Space -3a "Caps Lock" -3b F1 -3c F2 -3d F3 -3e F4 -3f F5 -40 F6 -41 F7 -42 F8 -43 F9 -44 F10 -45 Pause -46 "Scroll Lock" -47 "Num 7" -48 "Num 8" -49 "Num 9" -4a "Num -" -4b "Num 4" -4c "Num 5" -4d "Num 6" -4e "Num +" -4f "Num 1" -50 "Num 2" -51 "Num 3" -52 "Num 0" -53 "Num Del" -54 "Sys Req" -57 F11 -58 F12 -7c F13 -7d F14 -7e F15 -7f F16 -80 F17 -81 F18 -82 F19 -83 F20 -84 F21 -85 F22 -86 F23 -87 F24 - -KEYNAME_EXT - -1c "Num Enter" -1d "Right Ctrl" -35 "Num /" -37 "Prnt Scrn" -38 "Right Alt" -45 "Num Lock" -46 Break -47 Home -48 Up -49 "Page Up" -4b Left -4d Right -4f End -50 Down -51 "Page Down" -52 Insert -53 Delete -54 <00> -56 Help -5b "Left Windows" -5c "Right Windows" -5d Application - -DESCRIPTIONS - -0409 US - Custom -LANGUAGENAMES - -0409 English (United States) -ENDKBD - diff --git a/reactos/tools/log2lines/cache.c b/reactos/tools/log2lines/cache.c deleted file mode 100644 index 5f255308425..00000000000 --- a/reactos/tools/log2lines/cache.c +++ /dev/null @@ -1,287 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Image directory caching - */ - -#include -#include -#include - -#include "util.h" -#include "version.h" -#include "compat.h" -#include "options.h" -#include "help.h" -#include "image.h" - -#include "log2lines.h" - -static char *cache_name; -static char *tmp_name; - -static int -unpack_iso(char *dir, char *iso) -{ - char Line[LINESIZE]; - int res = 0; - char iso_tmp[MAX_PATH]; - int iso_copied = 0; - FILE *fiso; - - strcpy(iso_tmp, iso); - if ((fiso = fopen(iso, "a")) == NULL) - { - l2l_dbg(1, "Open of %s failed (locked for writing?), trying to copy first\n", iso); - - strcat(iso_tmp, "~"); - if (copy_file(iso, iso_tmp)) - return 3; - iso_copied = 1; - } - else - fclose(fiso); - - sprintf(Line, UNZIP_FMT, opt_7z, iso_tmp, dir); - if (system(Line) < 0) - { - l2l_dbg(0, "\nCannot unpack %s (check 7z path!)\n", iso_tmp); - l2l_dbg(1, "Failed to execute: '%s'\n", Line); - res = 1; - } - else - { - l2l_dbg(2, "\nUnpacking reactos.cab in %s\n", dir); - sprintf(Line, UNZIP_FMT_CAB, opt_7z, dir, dir); - if (system(Line) < 0) - { - l2l_dbg(0, "\nCannot unpack reactos.cab in %s\n", dir); - l2l_dbg(1, "Failed to execute: '%s'\n", Line); - res = 2; - } - } - if (iso_copied) - remove(iso_tmp); - return res; -} - -int -cleanable(char *path) -{ - if (strcmp(basename(path),DEF_OPT_DIR) == 0) - return 1; - return 0; -} - -int -check_directory(int force) -{ - char Line[LINESIZE]; - char freeldr_path[MAX_PATH]; - char iso_path[MAX_PATH]; - char compressed_7z_path[MAX_PATH]; - char *check_iso; - char *check_dir; - - check_iso = strrchr(opt_dir, '.'); - l2l_dbg(1, "Checking directory: %s\n", opt_dir); - if (check_iso && PATHCMP(check_iso, ".7z") == 0) - { - l2l_dbg(1, "Checking 7z image: %s\n", opt_dir); - - // First attempt to decompress to an .iso image - strcpy(compressed_7z_path, opt_dir); - if ((check_dir = strrchr(compressed_7z_path, PATH_CHAR))) - *check_dir = '\0'; - else - strcpy(compressed_7z_path, "."); // default to current dir - - sprintf(Line, UNZIP_FMT_7Z, opt_7z, opt_dir, compressed_7z_path); - - /* This of course only works if the .7z and .iso basenames are identical - * which is normally true for ReactOS trunk builds: - */ - strcpy(check_iso, ".iso"); - if (!file_exists(opt_dir) || force) - { - l2l_dbg(1, "Decompressing 7z image: %s\n", opt_dir); - if (system(Line) < 0) - { - l2l_dbg(0, "\nCannot decompress to iso image %s\n", opt_dir); - l2l_dbg(1, "Failed to execute: '%s'\n", Line); - return 2; - } - } - else - l2l_dbg(2, "%s already decompressed\n", opt_dir); - } - - if (check_iso && PATHCMP(check_iso, ".iso") == 0) - { - l2l_dbg(1, "Checking ISO image: %s\n", opt_dir); - if (file_exists(opt_dir)) - { - l2l_dbg(2, "ISO image exists: %s\n", opt_dir); - strcpy(iso_path, opt_dir); - *check_iso = '\0'; - sprintf(freeldr_path, "%s" PATH_STR "freeldr.ini", opt_dir); - if (!file_exists(freeldr_path) || force) - { - l2l_dbg(0, "Unpacking %s to: %s ...", iso_path, opt_dir); - unpack_iso(opt_dir, iso_path); - l2l_dbg(0, "... done\n"); - } - else - l2l_dbg(2, "%s already unpacked in: %s\n", iso_path, opt_dir); - } - else - { - l2l_dbg(0, "ISO image not found: %s\n", opt_dir); - return 1; - } - } - cache_name = malloc(MAX_PATH); - tmp_name = malloc(MAX_PATH); - strcpy(cache_name, opt_dir); - if (cleanable(opt_dir)) - strcat(cache_name, ALT_PATH_STR CACHEFILE); - else - strcat(cache_name, PATH_STR CACHEFILE); - strcpy(tmp_name, cache_name); - strcat(tmp_name, "~"); - return 0; -} - -int -read_cache(void) -{ - FILE *fr; - LIST_MEMBER *pentry; - char *Line = NULL; - int result = 0; - - Line = malloc(LINESIZE + 1); - if (!Line) - { - l2l_dbg(1, "Alloc Line failed\n"); - return 1; - } - Line[LINESIZE] = '\0'; - - fr = fopen(cache_name, "r"); - if (!fr) - { - l2l_dbg(1, "Open %s failed\n", cache_name); - free(Line); - return 2; - } - cache.phead = cache.ptail = NULL; - - while (fgets(Line, LINESIZE, fr) != NULL) - { - pentry = cache_entry_create(Line); - if (!pentry) - { - l2l_dbg(2, "** Create entry failed of: %s\n", Line); - } - else - entry_insert(&cache, pentry); - } - - fclose(fr); - free(Line); - return result; -} - -int -create_cache(int force, int skipImageBase) -{ - FILE *fr, *fw; - char *Line = NULL, *Fname = NULL; - int len, err; - size_t ImageBase; - - if ((fw = fopen(tmp_name, "w")) == NULL) - { - l2l_dbg(1, "Apparently %s is not writable (mounted ISO?), using current dir\n", tmp_name); - cache_name = basename(cache_name); - tmp_name = basename(tmp_name); - } - else - { - l2l_dbg(3, "%s is writable\n", tmp_name); - fclose(fw); - remove(tmp_name); - } - - if (force) - { - l2l_dbg(3, "Removing %s ...\n", cache_name); - remove(cache_name); - } - else - { - if (file_exists(cache_name)) - { - l2l_dbg(3, "Cache %s already exists\n", cache_name); - return 0; - } - } - - Line = malloc(LINESIZE + 1); - if (!Line) - return 1; - Line[LINESIZE] = '\0'; - - remove(tmp_name); - l2l_dbg(0, "Scanning %s ...\n", opt_dir); - snprintf(Line, LINESIZE, DIR_FMT, opt_dir, tmp_name); - l2l_dbg(1, "Executing: %s\n", Line); - if (system(Line) != 0) - { - l2l_dbg(0, "Cannot list directory %s\n", opt_dir); - l2l_dbg(1, "Failed to execute: '%s'\n", Line); - remove(tmp_name); - free(Line); - return 2; - } - l2l_dbg(0, "Creating cache ..."); - - if ((fr = fopen(tmp_name, "r")) != NULL) - { - if ((fw = fopen(cache_name, "w")) != NULL) - { - while (fgets(Line, LINESIZE, fr) != NULL) - { - len = strlen(Line); - if (!len) - continue; - - Fname = Line + len - 1; - if (*Fname == '\n') - *Fname = '\0'; - - while (Fname > Line && *Fname != PATH_CHAR) - Fname--; - if (*Fname == PATH_CHAR) - Fname++; - if (*Fname && !skipImageBase) - { - if ((err = get_ImageBase(Line, &ImageBase)) == 0) - fprintf(fw, "%s|%s|%0x\n", Fname, Line, (unsigned int)ImageBase); - else - l2l_dbg(3, "%s|%s|%0x, ERR=%d\n", Fname, Line, (unsigned int)ImageBase, err); - } - } - fclose(fw); - } - l2l_dbg(0, "... done\n"); - fclose(fr); - } - remove(tmp_name); - free(Line); - return 0; -} - -/* EOF */ diff --git a/reactos/tools/log2lines/cache.h b/reactos/tools/log2lines/cache.h deleted file mode 100644 index 0acdd4c0f68..00000000000 --- a/reactos/tools/log2lines/cache.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Image directory caching - */ - -#pragma once - -int check_directory(int force); -int read_cache(void); -int create_cache(int force, int skipImageBase); -int cleanable(char *path); - -/* EOF */ diff --git a/reactos/tools/log2lines/cmd.c b/reactos/tools/log2lines/cmd.c deleted file mode 100644 index ca7afaa8749..00000000000 --- a/reactos/tools/log2lines/cmd.c +++ /dev/null @@ -1,343 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Cli for escape commands - */ - -#include -#include -#include - -#include "util.h" -#include "cmd.h" -#include "options.h" -#include "log2lines.h" -#include "help.h" - -/* When you edit the cmd line and/or use the history instead of just typing, - * a bunch of editing BS and space characters - * is inserted, so the string looks right on the console but still - * contains the original string, plus other garbage: - */ -static char -*backSpaceEdit(char *s) -{ - char c; - char *edit = s; - char *text = s; - - while (( c = *edit++ )) - { - switch (c) - { - case KDBG_BS_CHAR: - if (text > s) - text --; - break; - default: - *text++ = c; - } - } - *text = '\0'; - - return s; -} - -static int -handle_switch(FILE *outFile, int *sw, char *arg, char *desc) -{ - int changed =0; - int x = 0; - - if (arg && (strcmp(arg,"") != 0)) - { - x = atoi(arg); - if (x != *sw) - { - *sw = x; - changed = 1; - } - } - if (desc) - { - esclog(outFile, "%s is %d (%s)\n", desc, *sw, changed ? "changed":"unchanged"); - if (!arg) - esclog(outFile, "(readonly)\n"); - } - - return changed; -} - -static int -handle_switch_str(FILE *outFile, char *sw, char *arg, char *desc) -{ - int changed =0; - - if (arg) - { - if (strcmp(arg,"") != 0) - { - if (strcmp(arg,KDBG_ESC_OFF) == 0) - { - if (*sw) - changed = 1; - *sw = '\0'; - } - else if (strcmp(arg, sw) != 0) - { - strcpy(sw, arg); - changed = 1; - } - } - } - if (desc) - { - esclog(outFile, "%s is \"%s\" (%s)\n", desc, sw, changed ? "changed":"unchanged"); - if (!arg) - esclog(outFile, "(readonly)\n"); - } - - return changed; -} - -static int -handle_switch_pstr(FILE *outFile, char **psw, char *arg, char *desc) -{ - int changed =0; - - if (arg) - { - if (strcmp(arg,"") != 0) - { - if (strcmp(arg,KDBG_ESC_OFF) == 0) - { - if (*psw) - changed = 1; - free(*psw); - *psw = NULL; - } - else - { - if (!*psw) - { - *psw = malloc(LINESIZE); - **psw = '\0'; - } - - if (strcmp(arg, *psw) != 0) - { - strcpy(*psw, arg); - changed = 1; - } - } - } - } - if (desc) - { - esclog(outFile, "%s is \"%s\" (%s)\n", desc, *psw, changed ? "changed":"unchanged"); - if (!arg) - esclog(outFile, "(readonly)\n"); - } - - return changed; -} - -static int -handle_address_cmd(FILE *outFile, char *arg) -{ - PLIST_MEMBER plm; - char Image[NAMESIZE]; - DWORD Offset; - int cnt; - char *s; - - if(( s = strchr(arg, ':') )) - { - *s = ' '; - if ( (cnt = sscanf(arg,"%20s %lx", Image, &Offset)) == 2) - { - if (( plm = entry_lookup(&cache, Image) )) - { - if (plm->RelBase != INVALID_BASE) - esclog(outFile, "Address: 0x%lx\n", plm->RelBase + Offset) - else - esclog(outFile, "Relocated base missing for '%s' ('mod' will update)\n", Image); - } - else - esclog(outFile, "Image '%s' not found\n", Image); - } - else - esclog(outFile, "usage: `a :\n"); - } - else - esclog(outFile, "':' expected\n"); - - return 1; -} - -char -handle_escape_cmd(FILE *outFile, char *Line, char *path, char *LineOut) -{ - char cmd; - char sep = '\n'; - char *arg; - char *l = Line; - int res = 1; - int cnt = 0; - int changed = 0; - - l = backSpaceEdit(l); - if (l[1] != KDBG_ESC_CHAR) - return l[1]; //for reprocessing as not escaped - - log(outFile, "\n"); - - l += 2; //skip space+escape character - if ( (cnt=sscanf(l,"%c%c",&cmd,&sep)) < 1) - { - esclog(outFile, "Command expected\n"); - res = 0; - } - - if (res && cnt==2 && sep != ' ') - { - esclog(outFile, "' ' expected\n"); - res = 0; - } - l++; //skip cmd - while ( *l == ' ')l++; //skip more spaces - arg = l; - opt_cli = 1; - switch (cmd) - { - case 'a': - handle_address_cmd(outFile, arg); - break; - case 'h': - usage(1); - break; - case 'b': - if (handle_switch(outFile, &opt_buffered, arg, "-b Logfile buffering")) - set_LogFile(&logFile); //re-open same logfile - break; - case 'c': - handle_switch(outFile, &opt_console, NULL, "-c Console option"); - break; - case 'd': - handle_switch_str(outFile, opt_dir, NULL, "-d Directory option"); - break; - case 'l': - if (handle_switch_str(outFile, opt_logFile, arg, "-l logfile") || (strcmp(opt_mod,"a")!=0)) - { - opt_mod = "a"; - set_LogFile(&logFile); //open new logfile - } - break; - case 'L': - if (handle_switch_str(outFile, opt_logFile, arg, "-L logfile") || (strcmp(opt_mod,"w")!=0)) - { - opt_mod = "w"; - set_LogFile(&logFile); //open new logfile - } - break; - case 'm': - handle_switch(outFile, &opt_Mark, arg, "-m mark (*)"); - break; - case 'M': - handle_switch(outFile, &opt_Mark, arg, "-M Mark (?)"); - break; - case 'P': - handle_switch_str(outFile, opt_Pipe, NULL, "-P Pipeline option"); - break; - case 'q': - opt_quit = 1; - esclog(outFile, "Bye!\n"); - break; - case 'r': - handle_switch(outFile, &opt_raw, arg, "-r Raw"); - break; - case 'R': - changed = handle_switch_pstr(outFile, &opt_Revision, arg, NULL); - opt_Revision_check = 0; - if (opt_Revision) - { - opt_Revision_check = 1; - if (strstr(opt_Revision, "check") == opt_Revision) - { - esclog(outFile, "-R is \"%s\" (%s)\n", opt_Revision, changed ? "changed":"unchanged"); - } - else if (strstr(opt_Revision, "regscan") == opt_Revision) - { - char *s = strchr(opt_Revision, ','); - - revinfo.range = DEF_RANGE; - if (s) - { - *s++ = '\0'; - revinfo.range = atoi(s); - } - regscan(outFile); - } - else if (strstr(opt_Revision, "regclear") == opt_Revision) - { - list_clear(&sources); - summ.regfound = 0; - esclog(outFile, "cleared regression scan results\n"); - } - } - break; - case 's': - if (strcmp(arg,"clear") == 0) - { - memset(&summ, 0, sizeof(SUMM)); - esclog(outFile, "Statistics cleared\n"); - } - else - stat_print(outFile, &summ); - break; - case 'S': - cnt = sscanf(arg, "%d+%d", &opt_Source, &opt_SrcPlus); - if (opt_Source) - { - handle_switch(outFile, &opt_undo, "1", "-u Undo"); - handle_switch(outFile, &opt_redo, "1", "-U Undo and reprocess"); - opt_Revision_check = 1; - } - esclog(outFile, "-S Sources option is %d+%d,\"%s\"\n", opt_Source, opt_SrcPlus, opt_SourcesPath); - esclog(outFile, "(Setting source tree not implemented)\n"); - break; - case 't': - handle_switch(outFile, &opt_twice, arg, "-t Translate twice"); - break; - case 'T': - handle_switch(outFile, &opt_twice, arg, NULL); - handle_switch(outFile, &opt_Twice, arg, "-T Translate for (address-1)"); - break; - case 'u': - handle_switch(outFile, &opt_undo, arg, "-u undo"); - break; - case 'U': - handle_switch(outFile, &opt_undo, arg, NULL); - handle_switch(outFile, &opt_redo, arg, "-U Undo and reprocess"); - break; - case 'v': - handle_switch(outFile, &opt_verbose, arg, "-v Verbosity"); - break; - case 'z': - handle_switch_str(outFile, opt_7z, NULL, "-z 7z path"); - break; - default: - if (strchr(optchars, cmd)) - esclog(outFile, "Command not implemented in cli: %c %s\n",cmd, arg) - else - esclog(outFile, "Unknown command: %c %s\n",cmd, arg); - } - opt_cli = 0; - - memset(Line, '\0', LINESIZE); // flushed - - return KDBG_ESC_CHAR; //handled escaped command -} - -/* EOF */ diff --git a/reactos/tools/log2lines/cmd.h b/reactos/tools/log2lines/cmd.h deleted file mode 100644 index c2380b2b894..00000000000 --- a/reactos/tools/log2lines/cmd.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Cli for escape commands - */ - -#pragma once - -#include - -#define KDBG_BS_CHAR 0x08 -#define KDBG_ESC_CHAR '`' -#define KDBG_ESC_STR "`" -#define KDBG_ESC_RESP "| L2L- " -#define KDBG_ESC_OFF "off" -#define KDBG_PROMPT "kdb:>" //Start interactive (-c) after this pattern -#define KDBG_CONT "---" //Also after this pattern (prompt with no line ending) -#define KDBG_DISCARD "Command '" KDBG_ESC_STR //Discard responses at l2l escape commands - -char handle_escape_cmd(FILE *outFile, char *Line, char *path, char *LineOut); - -/* EOF */ diff --git a/reactos/tools/log2lines/compat.h b/reactos/tools/log2lines/compat.h deleted file mode 100644 index 1b364db725b..00000000000 --- a/reactos/tools/log2lines/compat.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once - -#if defined (__DJGPP__) || defined (__WIN32__) - -#include - -#define POPEN _popen -#define PCLOSE _pclose -#define MKDIR(d) _mkdir(d) -#define DEV_NULL "NUL" -#define DOS_PATHS -#define PATH_CHAR '\\' -#define PATH_STR "\\" -#define PATHCMP strcasecmp -#define CP_CMD "copy /Y " -#define DIR_FMT "dir /a:-d /s /b %s > %s" - -#else /* not defined (__DJGPP__) || defined (__WIN32__) */ - -#include -#include - -#define MAX_PATH PATH_MAX -#define POPEN popen -#define PCLOSE pclose -#define MKDIR(d) mkdir(d, S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH) -#define DEV_NULL "/dev/null" -#define UNIX_PATHS -#define PATH_CHAR '/' -#define PATH_STR "/" -#define PATHCMP strcasecmp -#define CP_CMD "cp -f " -#define DIR_FMT "find %s -type f > %s" - -#endif /* not defined (__DJGPP__) || defined (__WIN32__) */ - -/* EOF */ diff --git a/reactos/tools/log2lines/config.h b/reactos/tools/log2lines/config.h deleted file mode 100644 index d1c73898e94..00000000000 --- a/reactos/tools/log2lines/config.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once - -/* Assume if an offset > ABS_TRESHOLD, then it must be absolute */ -#define ABS_TRESHOLD 0x00400000L -#define INVALID_BASE 0xFFFFFFFFL - -#define LOGBOTTOM "--------" -#define SVNDB "svndb.log" -#define SVNDB_INX "svndb.inx" -#define DEF_RANGE 500 -#define MAGIC_INX 0x494E585F //'INX_' -#define DEF_OPT_DIR "output-i386" -#define SOURCES_ENV "_ROSBE_ROSSOURCEDIR" -#define CACHEFILE "log2lines.cache" -#define TRKBUILDPREFIX "bootcd-" -#define SVN_PREFIX "/trunk/reactos/" -#define PIPEREAD_CMD "piperead -c" - - -#define CP_FMT CP_CMD "%s %s > " DEV_NULL - -#define CMD_7Z "7z" -#define UNZIP_FMT_7Z "%s e -y %s -o%s > " DEV_NULL -#define UNZIP_FMT "%s x -y -r %s -o%s > " DEV_NULL -#define UNZIP_FMT_CAB \ -"%s x -y -r %s" PATH_STR "reactos" PATH_STR "reactos.cab -o%s" \ -PATH_STR "reactos" PATH_STR "reactos > " DEV_NULL - -/* When we can't use a normal path, because it gets cleaned, - * fallback to name mangling: - */ -#define ALT_PATH_STR "#" - -#define LINESIZE 1024 -#define NAMESIZE 80 - -/* EOF */ diff --git a/reactos/tools/log2lines/help.c b/reactos/tools/log2lines/help.c deleted file mode 100644 index c036d4857c7..00000000000 --- a/reactos/tools/log2lines/help.c +++ /dev/null @@ -1,264 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Help text and functions - */ - -#include - -#include "version.h" -#include "compat.h" -#include "config.h" -#include "options.h" -#include "cmd.h" -#include "help.h" - -char *verboseUsage = -"\n" -"Description:\n" -" When are given, log2lines works like raddr2line:\n" -" - The combination can be repeated\n" -" - Also, can be repeated for each \n" -" - NOTE: Some of the options below will have no effect in this form.\n" -" Otherwise it reads stdin and tries to translate lines of the form:\n" -" \n" -" The result is written to stdout.\n\n" -" or
can be absolute or relative with the restrictions:\n" -" - An image with base < 0x400000 MUST be relocated to a > 0x400000 address.\n" -" - The offset of a relocated image MUST be relative.\n\n" -" log2lines uses a cache in order to avoid a directory scan at each\n" -" image lookup, greatly increasing performance. Only image path and its\n" -" base address are cached.\n\n" -"Options:\n" -" -b Use this combined with '-l'. Enable buffering on logFile.\n" -" This may solve loosing output on real hardware (ymmv).\n\n" -" -c Console mode. Outputs text per character instead of per line.\n" -" This is slightly slower but enables to see what you type.\n\n" -" -d |\n" -" : Directory to scan for images. (Do not append a '" PATH_STR "')\n" -" : This option also takes an ISO image as argument:\n" -" - The image is recognized by the '.iso' or '.7z' extension.\n" -" - NOTE: The '.7z' and extracted '.iso' basenames must be identical,\n" -" which is normally true for ReactOS trunk builds.\n" -" - The image will be unpacked to a directory with the same name.\n" -" - The embedded reactos.cab file will also be unpacked.\n" -" - Combined with -f the file will be re-unpacked.\n" -" - NOTE: this ISO unpack feature needs 7z to be in the PATH.\n" -" Default: " DEF_OPT_DIR "\n\n" -" -f Force creating new cache.\n\n" -" -F As -f but exits immediately after creating cache.\n\n" -" -h This text.\n\n" -" -l \n" -" : Append copy to specified logFile.\n" -" Default: no logFile\n\n" -" -L \n" -" : (Over)write copy to specified logFile.\n" -" Default: no logFile\n\n" -" -m Prefix (mark) each translated line with '* '.\n\n" -" -M Prefix (mark) each NOT translated line with '? '.\n" -" ( Only for lines of the form: )\n\n" -" -P \n" -" Pipeline command line. Spawn and pipeline its output to\n" -" log2lines (as stdin). This is for shells lacking support of (one of):\n" -" - Input file redirection.\n" -" - Pipelining byte streams, needed for the -c option.\n\n" -" -r Raw output without translation.\n\n" -" -R \n" -" Revision commands interfacing with SVN. is one of:\n" -" - check:\n" -" To be combined with -S. Check each source file in the log and issue\n" -" a warning if its revision is higher than that of the tested build.\n" -" Also when the revison of the source tree is lower than that of the\n" -" tested build (for every source file).\n" -" In both cases the source file's -S output would be unreliable.\n" -" - update:\n" -" Updates the SVN log file. Currently only generates the index file\n" -" The SVN log file itself must be generated by hand in the sources\n" -" directory like this (-v is mandatory here):\n" -" svn log -v > svndb.log ('svn log' accepts also a range)\n" -" 'svndb.log' and its index are needed for '-R regscan'\n" -" - regscan[,]:\n" -" Scan for regression candidates. Essentially it tries to find\n" -" matches between the SVN log entries and the sources hit by\n" -" a backtrace (bt) command.\n" -" is the amount of revisions to look back from the build\n" -" revision (default 500)\n" -" The output of '-R regscan' is printed after EOF. The 'Changed path'\n" -" lists will contain only matched files.\n" -" Limitations:\n" -" - The bug should really be a regression.\n" -" - Expect a number of false positives.\n" -" - The offending change must be in the sources hit by the backtrace.\n" -" This mostly excludes changes in headerfiles for example.\n" -" - Must be combined with -S.\n" -" Can be combined with -tTS.\n\n" -" -s Statistics. A summary with the following info is printed after EOF:\n" -" *** LOG2LINES SUMMARY ***\n" -" - Translated: Translated lines.\n" -" - Reverted: Lines translated back. See -u option\n" -" - Retranslated: Lines retranslated. See -U option\n" -" - Skipped: Lines not translated.\n" -" - Differ: Lines where (addr-1) info differs. See -tT options\n" -" - Differ(func/src):Lines where also function or source info differ.\n" -" - Rev conflicts: Source files conflicting with build. See '-R check'\n" -" - Reg candidates: Regression candidates. See '-R regscan'\n" -" - Offset error: Image exists, but error retrieving offset info.\n" -" - Total: Total number of lines attempted to translate.\n" -" Also some version info is displayed.\n\n" -" -S [+][,]\n" -" Source line options:\n" -" : Source lines. Display up to lines until linenumber.\n" -" : Optional. Display additional lines after linenumber.\n" -" : Optional. Specify alternate source tree.\n" -" The environment variable " SOURCES_ENV " should be correctly set\n" -" or specify . Use double quotes if the path contains spaces.\n" -" For a reliable result, these sources should be up to date with\n" -" the tested revision (or try '-R check').\n" -" Can be combined with -tTR.\n" -" Implies -U (For retrieving source info) and -R check.\n\n" -" -t Translate twice. The address itself and for (address-1).\n" -" Show extra filename, func and linenumber between [..] if they differ\n" -" So if only the linenumbers differ, then only show the extra\n" -" linenumber.\n\n" -" -T As -t, but show only filename+func+linenumber for (address-1)\n\n" -" -u Undo translations.\n" -" Lines are translated back (reverted) to the form \n" -" Also removes all lines previously added by this tool (e.g. see -S)\n\n" -" -U Undo and reprocess.\n" -" Reverted to the form , and then retranslated\n" -" Implies -u.\n\n" -" -v Show detailed errors and tracing.\n" -" Repeating this option adds more verbosity.\n" -" Default: only (major) errors\n\n" -" -z \n" -" : Specify path to 7z. See also option -d.\n" -" Default: '7z'\n" -"\n" -"CLI escape commands:\n" -" It is possible to change options and perform actions from the 'kdb:>' prompt\n" -" By prepending the `(backquote) character to the option.\n" -" Example: 'kdb:> `l new.log' changes the current logfile to 'new.log'.\n" -" Flag options like 'b' are given a numeric value of 0 (off) or 1 (on).\n" -" Options accepting a string as argument can be cleared by the value '" KDBG_ESC_OFF "'.\n" -" Some ClI commands are read only or not (entirely) implemented.\n" -" If no value is provided, the current one is printed.\n" -" There are a few extra ClI commands or with different behaviour:\n" -" - `a ::\n" -" - Outputs absolute address e.g. for setting breakpoints.\n" -" - Do a 'mod' first to retrieve relocation info.\n" -" - `h : shows this helptext (without exiting)\n" -" - `q : quits log2lines\n" -" - `R regscan : the output is printed immediately (do a 'bt' first)\n" -" - `R regclear : clears previous regscan matches\n" -" - `s : the output is printed immediately\n" -" - `s clear : clears all statistics.\n" -" - `S : only and can be set.\n" -" - `v : sets the current debug loglevel\n" -"\n" -"Option Examples:\n" -" Setup: A VMware machine with its serial port set to: '\\\\.\\pipe\\kdbg'.\n\n" -" Just recreate cache after a svn update or a new module has been added:\n" -" log2lines -F\n\n" -" Use kdbg debugger via console (interactive):\n" -" log2lines -c < \\\\.\\pipe\\kdbg\n\n" -" Use kdbg debugger via console, and append copy to logFile:\n" -" log2lines -c -l dbg.log < \\\\.\\pipe\\kdbg\n\n" -" Same as above, but for PowerShell:\n" -" log2lines -c -l dbg.log -P \"piperead -c \\\\.\\pipe\\kdbg\"\n\n" -" Use kdbg debugger to send output to logfile:\n" -" log2lines < \\\\.\\pipe\\kdbg > dbg.log\n\n" -" Re-translate a debug log:\n" -" log2lines -U -d bootcd-38701-dbg.iso < bugxxxx.log\n\n" -" Re-translate a debug log. Specify a 7z file, which wil be decompressed.\n" -" Also check for (address) - (address-1) differences:\n" -" log2lines -U -t -d bootcd-38701-dbg.7z < bugxxxx.log\n" -" Output:\n" -" \n\n" -" The following commands are equivalent:\n" -" log2lines msi.dll 2e35d msi.dll 2235 msiexec.exe 30a8 msiexec.exe 2e89\n" -" log2lines msi.dll 2e35d 2235 msiexec.exe 30a8 2e89\n\n" -" Generate source lines from backtrace ('bt') output. Show 2 lines of context:\n" -" log2lines -S 2 -d bootcd-38701-dbg.7z < bugxxxx.log\n" -" Output:\n" -" \n" -" | 0258 #else\n" -" | 0259 mainret = main (\n" -" \n" -" | 0159 return __tmainCRTStartup ();\n" -" | 0160 }\n\n" -" Generate source lines. Show 2 lines of context plus 1 additional line and\n" -" specify an alternate source tree:\n" -" log2lines -S 2+1,\"c:\\ros trees\\r44000\" -d bootcd-44000-dbg < dbg.log\n" -" Output:\n" -" \n" -" | 0188 {\n" -" | 0189 r = MSI_ViewFetch( view, &rec );\n" -" | ----\n" -" | 0190 if( r != ERROR_SUCCESS )\n\n" -" Use '-R check' to show that action.c has been changed after the build:\n" -" log2lines -s -d bootcd-43850-dbg.iso -R check -S 2 < dbg.log\n" -" Output:\n" -" \n" -" | 0780 if (create)\n" -" | 0781 rc = RegCreateKeyW(HKEY_LOCAL_MACHINE, keypath, key);\n" -" \n" -" | R--- Conflict : source(44191) > build(43850)\n" -" | 2664 else\n" -" | 2665 rc = MSIREG_OpenUserDataKey(comp->ComponentId,\n\n" -"CLI Examples: (some are based on the option examples above)\n" -" Use '`R check' to show that action.c has been changed after the build:\n" -" kdb:> `R check\n" -" | L2L- -R is \"check\" (changed)\n" -" kdb:> bt\n" -" \n" -" | 0780 if (create)\n" -" | 0781 rc = RegCreateKeyW(HKEY_LOCAL_MACHINE, keypath, key);\n" -" \n" -" | R--- Conflict : source(44191) > build(43850)\n" -" | 2664 else\n" -" | 2665 rc = MSIREG_OpenUserDataKey(comp->ComponentId,\n\n" -" kdb:>\n\n" -" Generate source lines. Show 2 lines of context plus 1 additional line.\n" -" The -Uu options are dependent on -S:\n" -" kdb:> `S 2+1\n" -" | L2L- -u Undo is 1 (changed)\n" -" | L2L- -U Undo and reprocess is 1 (changed)\n" -" | L2L- -S Sources option is 2+1,\"C:\\ROS\\reactos\\\" \n" -" | L2L- (Setting source tree not implemented)\n" -" kdb:> bt\n" -" \n" -" | 0188 {\n" -" | 0189 r = MSI_ViewFetch( view, &rec );\n" -" | ----\n" -" | 0190 if( r != ERROR_SUCCESS )\n" -" kdb:>\n\n" -" Change logfile:\n" -" kdb:> `l\n" -" | L2L- -l logfile is "" (unchanged)\n" -" kdb:> `l new.log\n" -" | L2L- -l logfile is \"new.log\" (changed)\n" -" kdb:> `l off\n" -" | L2L- -l logfile is "" (changed)\n" -" kdb:>\n\n" -" Set a breakpoint with help of 'mod' and '`a':\n" -" \n" -" kdb:> mod (for kernel tracing usually only needed once)\n" -" -- mod output with reloc info\n" -" kdb:> `a msi.dll:2e35d\n" -" | L2L- Address: 0x00096ca0\n" -" kdb:> bpx 0x00096ca0\n\n" -"\n"; - -void -usage(int verbose) -{ - fprintf(stderr, "log2lines " LOG2LINES_VERSION "\n\n"); - fprintf(stderr, "Usage: log2lines -%s { {}}\n", optchars); - if (verbose) - fprintf(stderr, "%s", verboseUsage); - else - fprintf(stderr, "Try log2lines -h\n"); -} - -/* EOF */ diff --git a/reactos/tools/log2lines/help.h b/reactos/tools/log2lines/help.h deleted file mode 100644 index 9f08f57897f..00000000000 --- a/reactos/tools/log2lines/help.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Help text and functions - */ - -#pragma once - -extern char *verboseUsage; - -void usage(int verbose); - -/* EOF */ diff --git a/reactos/tools/log2lines/image.c b/reactos/tools/log2lines/image.c deleted file mode 100644 index bae302b8d51..00000000000 --- a/reactos/tools/log2lines/image.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Image functions for symbol info - */ - -#include -#include -#include - -#include "compat.h" -#include "util.h" -#include "options.h" -#include "log2lines.h" - -static PIMAGE_SECTION_HEADER -find_rossym_section(PIMAGE_FILE_HEADER PEFileHeader, PIMAGE_SECTION_HEADER PESectionHeaders) -{ - size_t i; - for (i = 0; i < PEFileHeader->NumberOfSections; i++) - { - if (0 == strcmp((char *)PESectionHeaders[i].Name, ".rossym")) - return &PESectionHeaders[i]; - } - return NULL; -} - -size_t -fixup_offset(size_t ImageBase, size_t offset) -{ - if (offset > ABS_TRESHOLD) - offset -= ImageBase; - return offset; -} - -PROSSYM_ENTRY -find_offset(void *data, size_t offset) -{ - PSYMBOLFILE_HEADER RosSymHeader = (PSYMBOLFILE_HEADER)data; - PROSSYM_ENTRY Entries = (PROSSYM_ENTRY)((char *)data + RosSymHeader->SymbolsOffset); - size_t symbols = RosSymHeader->SymbolsLength / sizeof(ROSSYM_ENTRY); - size_t i; - - for (i = 0; i < symbols; i++) - { - if (Entries[i].Address > offset) - { - if (!i--) - return NULL; - else - return &Entries[i]; - } - } - return NULL; -} - -PIMAGE_SECTION_HEADER -get_sectionheader(const void *FileData) -{ - PIMAGE_DOS_HEADER PEDosHeader; - PIMAGE_FILE_HEADER PEFileHeader; - PIMAGE_OPTIONAL_HEADER PEOptHeader; - PIMAGE_SECTION_HEADER PESectionHeaders; - PIMAGE_SECTION_HEADER PERosSymSectionHeader; - size_t ImageBase; - - /* Check if MZ header exists */ - PEDosHeader = (PIMAGE_DOS_HEADER)FileData; - if (PEDosHeader->e_magic != IMAGE_DOS_MAGIC || PEDosHeader->e_lfanew == 0L) - { - l2l_dbg(0, "Input file is not a PE image.\n"); - summ.offset_errors++; - return NULL; - } - - /* Locate PE file header */ - /* sizeof(ULONG) = sizeof(MAGIC) */ - PEFileHeader = (PIMAGE_FILE_HEADER)((char *)FileData + PEDosHeader->e_lfanew + sizeof(ULONG)); - - /* Locate optional header */ - PEOptHeader = (PIMAGE_OPTIONAL_HEADER)(PEFileHeader + 1); - ImageBase = PEOptHeader->ImageBase; - - /* Locate PE section headers */ - PESectionHeaders = (PIMAGE_SECTION_HEADER)((char *)PEOptHeader + PEFileHeader->SizeOfOptionalHeader); - - /* find rossym section */ - PERosSymSectionHeader = find_rossym_section(PEFileHeader, PESectionHeaders); - if (!PERosSymSectionHeader) - { - l2l_dbg(0, "Couldn't find rossym section in executable\n"); - summ.offset_errors++; - return NULL; - } - - return PERosSymSectionHeader; -} - -int -get_ImageBase(char *fname, size_t *ImageBase) -{ - IMAGE_DOS_HEADER PEDosHeader; - IMAGE_FILE_HEADER PEFileHeader; - IMAGE_OPTIONAL_HEADER PEOptHeader; - - FILE *fr; - off_t readLen; - int res; - - *ImageBase = INVALID_BASE; - fr = fopen(fname, "rb"); - if (!fr) - { - l2l_dbg(3, "get_ImageBase, cannot open '%s' (%s)\n", fname, strerror(errno)); - return 1; - } - - readLen = fread(&PEDosHeader, sizeof(IMAGE_DOS_HEADER), 1, fr); - if (1 != readLen) - { - l2l_dbg(1, "get_ImageBase %s, read error IMAGE_DOS_HEADER (%s)\n", fname, strerror(errno)); - fclose(fr); - return 2; - } - - /* Check if MZ header exists */ - if (PEDosHeader.e_magic != IMAGE_DOS_MAGIC || PEDosHeader.e_lfanew == 0L) - { - l2l_dbg(2, "get_ImageBase %s, MZ header missing\n", fname); - fclose(fr); - return 3; - } - - /* Locate PE file header */ - res = fseek(fr, PEDosHeader.e_lfanew + sizeof(ULONG), SEEK_SET); - readLen = fread(&PEFileHeader, sizeof(IMAGE_FILE_HEADER), 1, fr); - if (1 != readLen) - { - l2l_dbg(1, "get_ImageBase %s, read error IMAGE_FILE_HEADER (%s)\n", fname, strerror(errno)); - fclose(fr); - return 4; - } - - /* Locate optional header */ - readLen = fread(&PEOptHeader, sizeof(IMAGE_OPTIONAL_HEADER), 1, fr); - if (1 != readLen) - { - l2l_dbg(1, "get_ImageBase %s, read error IMAGE_OPTIONAL_HEADER (%s)\n", fname, strerror(errno)); - fclose(fr); - return 5; - } - - /* Check if it's really an IMAGE_OPTIONAL_HEADER we are interested in */ - if (PEOptHeader.Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC && - PEOptHeader.Magic != IMAGE_NT_OPTIONAL_HDR64_MAGIC) - { - l2l_dbg(2, "get_ImageBase %s, not an IMAGE_NT_OPTIONAL_HDR 32/64 bit\n", fname); - fclose(fr); - return 6; - } - - *ImageBase = PEOptHeader.ImageBase; - fclose(fr); - return 0; -} - -/* EOF */ diff --git a/reactos/tools/log2lines/image.h b/reactos/tools/log2lines/image.h deleted file mode 100644 index f9371e0c0eb..00000000000 --- a/reactos/tools/log2lines/image.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Image functions for symbol info - */ - -#pragma once - -#include - -size_t fixup_offset(size_t ImageBase, size_t offset); - -PROSSYM_ENTRY find_offset(void *data, size_t offset); - -PIMAGE_SECTION_HEADER get_sectionheader(const void *FileData); - -int get_ImageBase(char *fname, size_t *ImageBase); - -/* EOF */ diff --git a/reactos/tools/log2lines/list.c b/reactos/tools/log2lines/list.c deleted file mode 100644 index 3fdd22b564d..00000000000 --- a/reactos/tools/log2lines/list.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - List handling - */ - -#include -#include -#include - -#include "config.h" -#include "compat.h" -#include "list.h" -#include "util.h" -#include "options.h" - -PLIST_MEMBER -entry_lookup(PLIST list, char *name) -{ - PLIST_MEMBER pprev = NULL; - PLIST_MEMBER pnext; - - if (!name || !name[0]) - return NULL; - - pnext = list->phead; - while (pnext != NULL) - { - if (PATHCMP(name, pnext->name) == 0) - { - if (pprev) - { // move to head for faster lookup next time - pprev->pnext = pnext->pnext; - pnext->pnext = list->phead; - list->phead = pnext; - } - return pnext; - } - pprev = pnext; - pnext = pnext->pnext; - } - return NULL; -} - -PLIST_MEMBER -entry_delete(PLIST_MEMBER pentry) -{ - if (!pentry) - return NULL; - if (pentry->buf) - free(pentry->buf); - free(pentry); - return NULL; -} - -PLIST_MEMBER -entry_insert(PLIST list, PLIST_MEMBER pentry) -{ - if (!pentry) - return NULL; - - pentry->pnext = list->phead; - list->phead = pentry; - if (!list->ptail) - list->ptail = pentry; - return pentry; -} - -void list_clear(PLIST list) -{ - PLIST_MEMBER pentry = list->phead; - PLIST_MEMBER pnext; - while (pentry) - { - pnext = pentry->pnext; - entry_delete(pentry); - pentry = pnext; - } - list->phead = list->ptail = NULL; -} - -#if 0 -LIST_MEMBER * -entry_remove(LIST *list, LIST_MEMBER *pentry) -{ - LIST_MEMBER *pprev = NULL, *p = NULL; - - if (!pentry) - return NULL; - - if (pentry == list->phead) - { - list->phead = pentry->pnext; - p = pentry; - } - else - { - pprev = list->phead; - while (pprev->pnext) - { - if (pprev->pnext == pentry) - { - pprev->pnext = pentry->pnext; - p = pentry; - break; - } - pprev = pprev->pnext; - } - } - if (pentry == list->ptail) - list->ptail = pprev; - - return p; -} -#endif - -PLIST_MEMBER -cache_entry_create(char *Line) -{ - PLIST_MEMBER pentry; - char *s = NULL; - int l; - - if (!Line) - return NULL; - - pentry = malloc(sizeof(LIST_MEMBER)); - if (!pentry) - return NULL; - - l = strlen(Line); - pentry->buf = s = malloc(l + 1); - if (!s) - { - l2l_dbg(1, "Alloc entry failed\n"); - return entry_delete(pentry); - } - - strcpy(s, Line); - if (s[l] == '\n') - s[l] = '\0'; - - pentry->name = s; - s = strchr(s, '|'); - if (!s) - { - l2l_dbg(1, "Name field missing\n"); - return entry_delete(pentry); - } - *s++ = '\0'; - - pentry->path = s; - s = strchr(s, '|'); - if (!s) - { - l2l_dbg(1, "Path field missing\n"); - return entry_delete(pentry); - } - *s++ = '\0'; - if (1 != sscanf(s, "%x", (unsigned int *)(&pentry->ImageBase))) - { - l2l_dbg(1, "ImageBase field missing\n"); - return entry_delete(pentry); - } - pentry->RelBase = INVALID_BASE; - pentry->Size = 0; - return pentry; -} - - -PLIST_MEMBER -sources_entry_create(PLIST list, char *path, char *prefix) -{ - PLIST_MEMBER pentry; - char *s = NULL; - int l; - - if (!path) - return NULL; - if (!prefix) - prefix = ""; - - pentry = malloc(sizeof(LIST_MEMBER)); - if (!pentry) - return NULL; - - l = strlen(path) + strlen(prefix); - pentry->buf = s = malloc(l + 1); - if (!s) - { - l2l_dbg(1, "Alloc entry failed\n"); - return entry_delete(pentry); - } - - strcpy(s, prefix); - strcat(s, path); - if (s[l] == '\n') - s[l] = '\0'; - - pentry->name = s; - if (list) - { - if (entry_lookup(list, pentry->name)) - { - l2l_dbg(1, "Entry %s exists\n", pentry->name); - pentry = entry_delete(pentry); - } - else - { - l2l_dbg(1, "Inserting entry %s\n", pentry->name); - entry_insert(list, pentry); - } - } - - return pentry; -} - -/* EOF */ diff --git a/reactos/tools/log2lines/list.h b/reactos/tools/log2lines/list.h deleted file mode 100644 index fa426d4c0c0..00000000000 --- a/reactos/tools/log2lines/list.h +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -typedef struct entry_struct -{ - char *buf; - char *name; - char *path; - size_t ImageBase; - size_t RelBase; - size_t Size; - struct entry_struct *pnext; -} LIST_MEMBER, *PLIST_MEMBER; - -typedef struct list_struct -{ - PLIST_MEMBER phead; - PLIST_MEMBER ptail; -} LIST, *PLIST; - -PLIST_MEMBER entry_lookup(PLIST list, char *name); -PLIST_MEMBER entry_delete(PLIST_MEMBER pentry); -PLIST_MEMBER entry_insert(PLIST list, PLIST_MEMBER pentry); -PLIST_MEMBER cache_entry_create(char *Line); -PLIST_MEMBER sources_entry_create(PLIST list, char *path, char *prefix); -void list_clear(PLIST list); - -/* EOF */ diff --git a/reactos/tools/log2lines/log2lines.c b/reactos/tools/log2lines/log2lines.c deleted file mode 100644 index c00cfd378b5..00000000000 --- a/reactos/tools/log2lines/log2lines.c +++ /dev/null @@ -1,672 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Initialization, translation and main loop - */ - -#include -#include -#include -#include - -#include "util.h" -#include "version.h" -#include "compat.h" -#include "options.h" -#include "image.h" -#include "cache.h" -#include "log2lines.h" -#include "help.h" -#include "cmd.h" -#include "match.h" - - -static FILE *dbgIn = NULL; -static FILE *dbgOut = NULL; -static FILE *conIn = NULL; -static FILE *conOut = NULL; -static const char *kdbg_prompt = KDBG_PROMPT; -static const char *kdbg_cont = KDBG_CONT; - -LIST sources; -LINEINFO lastLine; -FILE *logFile = NULL; -LIST cache; -SUMM summ; -REVINFO revinfo; - - -static void -clearLastLine(void) -{ - memset(&lastLine, 0, sizeof(LINEINFO)); -} - -static void -log_file(FILE *outFile, char *fileName, int line) -{ - int i = 0, min = 0, max = 0; - char s[LINESIZE]; - FILE *src; - - strcpy(s, opt_SourcesPath); - strcat(s, fileName); - - max = line + opt_SrcPlus; - if ((src = fopen(s, "r"))) - { - min = line - opt_Source; - min = (min < 0) ? 0 : min; - while (i < max && fgets(s, LINESIZE, src)) - { - if (i >= min) - { - if (i == line) - log(outFile, "| ----\n"); - log(outFile, "| %4.4d %s", i + 1, s); - } - i++; - } - fclose(src); - if ( i < min ) - log(outFile, "| S--- source has only %d lines! (check source/revision)\n", i); - } - else - l2l_dbg(1, "Can't open: %s (check " SOURCES_ENV ")\n", s); -} - -static void -logSource(FILE *outFile) -{ - log_file(outFile, lastLine.file1, lastLine.nr1); - if (lastLine.nr2) - { - log(outFile, "| ---- [%u] ----\n", lastLine.nr2); - log_file(outFile, lastLine.file2, lastLine.nr2); - } -} - -static void -reportSource(FILE *outFile) -{ - if (!opt_Source) - return; - if (lastLine.valid) - logSource(outFile); -} - -static void -report(FILE *outFile) -{ - reportRevision(outFile); - reportSource(outFile); - clearLastLine(); -} - - -static int -print_offset(void *data, size_t offset, char *toString) -{ - PSYMBOLFILE_HEADER RosSymHeader = (PSYMBOLFILE_HEADER)data; - PROSSYM_ENTRY e = NULL; - PROSSYM_ENTRY e2 = NULL; - int bFileOffsetChanged = 0; - char fmt[LINESIZE]; - char *Strings = (char *)data + RosSymHeader->StringsOffset; - - fmt[0] = '\0'; - e = find_offset(data, offset); - if (opt_twice) - { - e2 = find_offset(data, offset - 1); - - if (e == e2) - e2 = NULL; - else - summ.diff++; - - if (opt_Twice && e2) - { - e = e2; - e2 = NULL; - /* replaced (transparantly), but updated stats */ - } - } - if (e || e2) - { - strcpy(lastLine.file1, &Strings[e->FileOffset]); - strcpy(lastLine.func1, &Strings[e->FunctionOffset]); - lastLine.nr1 = e->SourceLine; - sources_entry_create(&sources, lastLine.file1, SVN_PREFIX); - lastLine.valid = 1; - if (e2) - { - strcpy(lastLine.file2, &Strings[e2->FileOffset]); - strcpy(lastLine.func2, &Strings[e2->FunctionOffset]); - lastLine.nr2 = e2->SourceLine; - sources_entry_create(&sources, lastLine.file2, SVN_PREFIX); - bFileOffsetChanged = e->FileOffset != e2->FileOffset; - if (e->FileOffset != e2->FileOffset || e->FunctionOffset != e2->FunctionOffset) - summ.majordiff++; - - /* - * - "%.0s" displays nothing, but processes argument - * - bFileOffsetChanged implies always display 2nd SourceLine even if the same - * - also for FunctionOffset - */ - strcat(fmt, "%s"); - if (bFileOffsetChanged) - strcat(fmt, "[%s]"); - else - strcat(fmt, "%.0s"); - - strcat(fmt, ":%u"); - if (e->SourceLine != e2->SourceLine || bFileOffsetChanged) - strcat(fmt, "[%u]"); - else - strcat(fmt, "%.0u"); - - strcat(fmt, " (%s"); - if (e->FunctionOffset != e2->FunctionOffset || bFileOffsetChanged) - strcat(fmt, "[%s])"); - else - strcat(fmt, "%.0s)"); - - if (toString) - { // put in toString if provided - snprintf(toString, LINESIZE, fmt, - &Strings[e->FileOffset], - &Strings[e2->FileOffset], - (unsigned int)e->SourceLine, - (unsigned int)e2->SourceLine, - &Strings[e->FunctionOffset], - &Strings[e2->FunctionOffset]); - } - else - { - strcat(fmt, "\n"); - printf(fmt, - &Strings[e->FileOffset], - &Strings[e2->FileOffset], - (unsigned int)e->SourceLine, - (unsigned int)e2->SourceLine, - &Strings[e->FunctionOffset], - &Strings[e2->FunctionOffset]); - } - } - else - { - if (toString) - { // put in toString if provided - snprintf(toString, LINESIZE, "%s:%u (%s)", - &Strings[e->FileOffset], - (unsigned int)e->SourceLine, - &Strings[e->FunctionOffset]); - } - else - { - printf("%s:%u (%s)\n", - &Strings[e->FileOffset], - (unsigned int)e->SourceLine, - &Strings[e->FunctionOffset]); - } - } - return 0; - } - return 1; -} - -static int -process_data(const void *FileData, size_t offset, char *toString) -{ - int res; - - PIMAGE_SECTION_HEADER PERosSymSectionHeader = get_sectionheader((char *)FileData); - if (!PERosSymSectionHeader) - return 2; - - res = print_offset((char *)FileData + PERosSymSectionHeader->PointerToRawData, offset, toString); - if (res) - { - if (toString) - sprintf(toString, "??:0"); - else - printf("??:0"); - l2l_dbg(1, "Offset not found: %x\n", (unsigned int)offset); - summ.offset_errors++; - } - - return res; -} - -static int -process_file(const char *file_name, size_t offset, char *toString) -{ - void *FileData; - size_t FileSize; - int res = 1; - - FileData = load_file(file_name, &FileSize); - if (!FileData) - { - l2l_dbg(0, "An error occured loading '%s'\n", file_name); - } - else - { - res = process_data(FileData, offset, toString); - free(FileData); - } - return res; -} - -static int -translate_file(const char *cpath, size_t offset, char *toString) -{ - size_t base = 0; - LIST_MEMBER *pentry = NULL; - int res = 0; - char *path, *dpath; - - dpath = path = convert_path(cpath); - if (!path) - return 1; - - // The path could be absolute: - if (get_ImageBase(path, &base)) - { - pentry = entry_lookup(&cache, path); - if (pentry) - { - path = pentry->path; - base = pentry->ImageBase; - if (base == INVALID_BASE) - { - l2l_dbg(1, "No, or invalid base address: %s\n", path); - res = 2; - } - } - else - { - l2l_dbg(1, "Not found in cache: %s\n", path); - res = 3; - } - } - - if (!res) - { - res = process_file(path, offset, toString); - } - - free(dpath); - return res; -} - -static void -translate_char(int c, FILE *outFile) -{ - fputc(c, outFile); - if (logFile) - fputc(c, logFile); -} - -static char * -remove_mark(char *Line) -{ - if (Line[1] == ' ' && Line[2] == '<') - if (Line[0] == '*' || Line[0] == '?') - return Line + 2; - return Line; -} - -static void -translate_line(FILE *outFile, char *Line, char *path, char *LineOut) -{ - size_t offset; - int cnt, res; - char *sep, *tail, *mark, *s; - unsigned char ch; - - if (!*Line) - return; - - res = 1; - mark = ""; - s = remove_mark(Line); - if (opt_undo) - { - /* Strip all lines added by this tool: */ - char buf[NAMESIZE]; - if (sscanf(s, "| %s", buf) == 1) - if (buf[0] == '0' || strcmp(buf, "----") == 0 || strcmp(buf, "L2L-") == 0 || strcmp(buf, "S---") == 0 || strcmp(buf, "R---") == 0 || atoi(buf)) - res = 0; - } - - sep = strchr(s, ':'); - if (sep) - { - *sep = ' '; - cnt = sscanf(s, "<%s %x%c", path, (unsigned int *)(&offset), &ch); - if (opt_undo) - { - if (cnt == 3 && ch == ' ') - { - tail = strchr(s, '>'); - tail = tail ? tail - 1 : tail; - if (tail && tail[0] == ')' && tail[1] == '>') - { - res = 0; - tail += 2; - mark = opt_mark ? "* " : ""; - if (opt_redo && !(res = translate_file(path, offset, LineOut))) - { - log(outFile, "%s<%s:%x (%s)>%s", mark, path, (unsigned int)offset, LineOut, tail); - summ.redo++; - } - else - { - log(outFile, "%s<%s:%x>%s", mark, path, (unsigned int)offset, tail); - summ.undo++; - } - } - else - { - mark = opt_Mark ? "? " : ""; - summ.skipped++; - } - summ.total++; - } - } - - if (!opt_undo || opt_redo) - { - if (cnt == 3 && ch == '>') - { - tail = strchr(s, '>') + 1; - if (!(res = translate_file(path, offset, LineOut))) - { - mark = opt_mark ? "* " : ""; - log(outFile, "%s<%s:%x (%s)>%s", mark, path, (unsigned int)offset, LineOut, tail); - summ.translated++; - } - else - { - mark = opt_Mark ? "? " : ""; - summ.skipped++; - } - summ.total++; - } - } - } - if (res) - { - if (sep) - *sep = ':'; // restore because not translated - log(outFile, "%s%s", mark, s); - } - memset(Line, '\0', LINESIZE); // flushed -} - -static int -translate_files(FILE *inFile, FILE *outFile) -{ - char *Line = malloc(LINESIZE + 1); - char *path = malloc(LINESIZE + 1); - char *LineOut = malloc(LINESIZE + 1); - int c; - unsigned char ch; - int i = 0; - const char *pc = kdbg_cont; - const char *p = kdbg_prompt; - const char *p_eos = p + sizeof(KDBG_PROMPT) - 1; //end of string pos - - if (Line && path && LineOut) - { - memset(Line, '\0', LINESIZE + 1); - if (opt_console) - { - while ((c = fgetc(inFile)) != EOF) - { - if (opt_quit)break; - - ch = (unsigned char)c; - if (!opt_raw) - { - switch (ch) - { - case '\n': - if ( strncmp(Line, KDBG_DISCARD, sizeof(KDBG_DISCARD)-1) == 0 ) - { - memset(Line, '\0', LINESIZE); // flushed - } - else - { - Line[1] = handle_escape_cmd(outFile, Line, path, LineOut); - if (Line[1] != KDBG_ESC_CHAR) - { - if (p == p_eos) - { - // kdbg prompt, so already echoed char by char - memset(Line, '\0', LINESIZE); - translate_char(c, outFile); - } - else - { - if (match_line(outFile, Line)) - { - translate_line(outFile, Line, path, LineOut); - translate_char(c, outFile); - report(outFile); - } - } - } - } - i = 0; - p = kdbg_prompt; - pc = kdbg_cont; - break; - case '<': - i = 0; - Line[i++] = ch; - break; - case '>': - if (ch == *p) - { - p = p_eos; - translate_line(outFile, Line, path, LineOut); - } - - if (p != p_eos) - { - if (i < LINESIZE) - { - Line[i++] = ch; - translate_line(outFile, Line, path, LineOut); - } - else - { - translate_line(outFile, Line, path, LineOut); - translate_char(c, outFile); - } - } - else - translate_char(c, outFile); - i = 0; - break; - default: - if (ch == *p)p++; - if (ch == *pc)pc++; - if (i < LINESIZE) - { - Line[i++] = ch; - if (p == p_eos) - { - translate_char(c, outFile); - } - else if (!*pc) - { - translate_line(outFile, Line, path, LineOut); - i = 0; - } - } - else - { - translate_line(outFile, Line, path, LineOut); - translate_char(c, outFile); - i = 0; - } - } - } - else - translate_char(c, outFile); - } - } - else - { // Line by line, slightly faster but less interactive - while (fgets(Line, LINESIZE, inFile) != NULL) - { - if (opt_quit)break; - - if (!opt_raw) - { - translate_line(outFile, Line, path, LineOut); - report(outFile); - } - else - log(outFile, "%s", Line); - } - } - } - - if (opt_Revision && (strstr(opt_Revision, "regscan") == opt_Revision)) - { - char *s = strchr(opt_Revision, ','); - if (s) - { - *s++ = '\0'; - revinfo.range = atoi(s); - } - regscan(outFile); - } - - if (opt_stats) - { - stat_print(outFile, &summ); - if (logFile) - stat_print(logFile, &summ); - } - free(LineOut); - free(Line); - free(path); - return 0; -} - - -int -main(int argc, const char **argv) -{ - int res = 0; - int optCount = 0; - - dbgIn = stdin; - conOut = stdout; - (void)conIn; - (void)dbgOut; - - memset(&cache, 0, sizeof(LIST)); - memset(&sources, 0, sizeof(LIST)); - stat_clear(&summ); - memset(&revinfo, 0, sizeof(REVINFO)); - clearLastLine(); - - optionInit(argc, argv); - optCount = optionParse(argc, argv); - if (optCount < 0) - { - return optCount; - } - - argc -= optCount; - - if (opt_Revision && (strcmp(opt_Revision, "update") == 0)) - { - res = updateSvnlog(); - return res; - } - - if (check_directory(opt_force)) - return 3; - - create_cache(opt_force, 0); - if (opt_exit) - return 0; - - read_cache(); - l2l_dbg(4, "Cache read complete\n"); - - if (set_LogFile(&logFile)) - return 2; - l2l_dbg(4, "opt_logFile processed\n"); - - if (opt_Pipe) - { - l2l_dbg(3, "Command line: \"%s\"\n",opt_Pipe); - - if (!(dbgIn = POPEN(opt_Pipe, "r"))) - { - dbgIn = stdin; //restore - l2l_dbg(0, "Could not popen '%s' (%s)\n", opt_Pipe, strerror(errno)); - free(opt_Pipe); opt_Pipe = NULL; - } - } - l2l_dbg(4, "opt_Pipe processed\n"); - - if (argc > 1) - { // translate { } - int i = 1; - const char *exefile = NULL; - const char *offset = NULL; - char Line[LINESIZE + 1]; - - while (i < argc) - { - Line[0] = '\0'; - offset = argv[optCount + i++]; - if (isOffset(offset)) - { - if (exefile) - { - l2l_dbg(2, "translating %s %s\n", exefile, offset); - translate_file(exefile, my_atoi(offset), Line); - printf("%s\n", Line); - report(conOut); - } - else - { - l2l_dbg(0, " expected\n"); - res = 3; - break; - } - } - else - { - // Not an offset so must be an exefile: - exefile = offset; - } - } - } - else - { // translate logging from stdin - translate_files(dbgIn, conOut); - } - - if (logFile) - fclose(logFile); - - if (opt_Pipe) - PCLOSE(dbgIn); - - return res; -} - -/* EOF */ diff --git a/reactos/tools/log2lines/log2lines.h b/reactos/tools/log2lines/log2lines.h deleted file mode 100644 index f7fd9ff8e87..00000000000 --- a/reactos/tools/log2lines/log2lines.h +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once - -#include -#include - -#include "config.h" -#include "revision.h" -#include "stat.h" -#include "list.h" - - -struct lineinfo_struct -{ - int valid; - char file1[LINESIZE]; - char func1[NAMESIZE]; - int nr1; - char file2[LINESIZE]; - char func2[NAMESIZE]; - int nr2; -}; - -typedef struct lineinfo_struct LINEINFO; - -extern SUMM summ; -extern REVINFO revinfo; -extern LIST cache; -extern FILE *logFile; -extern LINEINFO lastLine; -extern LIST sources; - -/* EOF */ diff --git a/reactos/tools/log2lines/match.c b/reactos/tools/log2lines/match.c deleted file mode 100644 index 256a8b71902..00000000000 --- a/reactos/tools/log2lines/match.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Custom match routines - */ - -#include - -#include "config.h" -#include "log2lines.h" -#include "match.h" - -// break pattern: show source+line -static int match_break(FILE *outFile, char *Line, int processed) -{ - static int state = 0; - - if ( processed ) return processed; - switch (state) - { - case 1: - state = 0; - break; - default: - state = 0; - } - return 1; -} -// "mod" command: update relocated addresses -static int match_mod(FILE *outFile, char *Line, int processed) -{ - static int state = 0; - char Image[NAMESIZE]; - DWORD Base; - DWORD Size; - PLIST_MEMBER plm; - - int cnt; - - if ( processed ) return processed; - if ( (cnt = sscanf(Line," Base Size %5s", Image)) == 1 ) - { - l2l_dbg(1, "Module relocate list:\n"); - state = 1; - return 0; - } - switch (state) - { - case 1: - if ( (cnt = sscanf(Line,"%lx %lx %20s", &Base, &Size, Image)) == 3 ) - { - if (( plm = entry_lookup(&cache, Image) )) - { - plm->RelBase = Base; - plm->Size = Size; - l2l_dbg(1, "Relocated: %s %08x -> %08x\n", Image, plm->ImageBase, plm->RelBase); - } - return 0; - } - else - { - state = 0; - } - break; - default: - state = 0; - } - return 1; -} - -int match_line(FILE *outFile, char *Line) -{ - int processed = 1; - - if ( *Line == '\n' || *Line == '\0' ) - return 1; - if ( strncmp(Line, KDBG_CONT, sizeof(KDBG_CONT)-1 ) == 0 ) - return 1; - - processed = match_mod(outFile, Line, processed); - processed = match_break(outFile, Line, processed); - /* more to be appended here: - * processed = match_xxx(outFile, Line, processed ); - * ... - */ - - return (int)(Line[0]); -} - -/* EOF */ diff --git a/reactos/tools/log2lines/match.h b/reactos/tools/log2lines/match.h deleted file mode 100644 index 436c0134fc5..00000000000 --- a/reactos/tools/log2lines/match.h +++ /dev/null @@ -1,5 +0,0 @@ -#include "util.h" - -int match_line(FILE *outFile, char *Line); - -/* EOF */ diff --git a/reactos/tools/log2lines/options.c b/reactos/tools/log2lines/options.c deleted file mode 100644 index efa77e44d18..00000000000 --- a/reactos/tools/log2lines/options.c +++ /dev/null @@ -1,222 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Option init and parsing - */ - -#include -#include -#include -#include - -#include "util.h" -#include "compat.h" -#include "config.h" -#include "help.h" -#include "log2lines.h" -#include "options.h" - -char *optchars = "bcd:fFhl:L:mMP:rR:sS:tTuUvz:"; -int opt_buffered = 0; // -b -int opt_help = 0; // -h -int opt_force = 0; // -f -int opt_exit = 0; // -e -int opt_verbose = 0; // -v -int opt_console = 0; // -c -int opt_mark = 0; // -m -int opt_Mark = 0; // -M -char *opt_Pipe = NULL; // -P -int opt_quit = 0; // -q (cli only) -int opt_cli = 0; // (cli internal) -int opt_raw = 0; // -r -int opt_stats = 0; // -s -int opt_Source = 0; // -S [+][,] -int opt_SrcPlus = 0; // -S [+][,] -int opt_twice = 0; // -t -int opt_Twice = 0; // -T -int opt_undo = 0; // -u -int opt_redo = 0; // -U -char *opt_Revision = NULL; // -R -int opt_Revision_check = 0; // -R check -char opt_dir[MAX_PATH]; // -d -char opt_logFile[MAX_PATH]; // -l|L -char *opt_mod = NULL; // -mod for opt_logFile -char opt_7z[MAX_PATH]; // -z -char opt_scanned[LINESIZE]; // all scanned options -char opt_SourcesPath[LINESIZE]; //sources path - -int optionInit(int argc, const char **argv) -{ - int i; - char *s; - - opt_mod = "a"; - strcpy(opt_dir, ""); - strcpy(opt_logFile, ""); - strcpy(opt_7z, CMD_7Z); - strcpy(opt_SourcesPath, ""); - if ((s = getenv(SOURCES_ENV))) - strcpy(opt_SourcesPath, s); - revinfo.rev = getRevision(NULL, 1); - revinfo.range = DEF_RANGE; - revinfo.buildrev = getTBRevision(opt_dir); - l2l_dbg(1, "Trunk build revision: %d\n", revinfo.buildrev); - - strcpy(opt_scanned, ""); - for (i = 1; i < argc; i++) - { - if ((argv[i][0] == '-') && (i+1 < argc)) - { - //Because these arguments can contain spaces we cant use getopt(), a known bug: - switch (argv[i][1]) - { - case 'd': - strcpy(opt_dir, argv[i+1]); - break; - case 'L': - opt_mod = "w"; - //fall through - case 'l': - strcpy(opt_logFile, argv[i+1]); - break; - case 'P': - free(opt_Pipe); - opt_Pipe = malloc(LINESIZE); - strcpy(opt_Pipe, argv[i+1]); - break; - case 'z': - strcpy(opt_7z, argv[i+1]); - break; - } - } - strcat(opt_scanned, argv[i]); - strcat(opt_scanned, " "); - } - - l2l_dbg(4,"opt_scanned=[%s]\n",opt_scanned); - - return 0; -} - -int optionParse(int argc, const char **argv) -{ - int i; - int optCount = 0; - int opt; - - while (-1 != (opt = getopt(argc, (char **const)argv, optchars))) - { - switch (opt) - { - case 'b': - opt_buffered++; - break; - case 'c': - opt_console++; - break; - case 'd': - optCount++; - //just count, see optionInit() - break; - case 'f': - opt_force++; - break; - case 'h': - opt_help++; - usage(1); - return -1; - break; - case 'F': - opt_exit++; - opt_force++; - break; - case 'l': - optCount++; - //just count, see optionInit() - break; - case 'm': - opt_mark++; - break; - case 'M': - opt_Mark++; - break; - case 'r': - opt_raw++; - break; - case 'P': - optCount++; - //just count, see optionInit() - break; - case 'R': - optCount++; - free(opt_Revision); - opt_Revision = malloc(LINESIZE); - sscanf(optarg, "%s", opt_Revision); - if (strcmp(opt_Revision, "check") == 0) - opt_Revision_check ++; - break; - case 's': - opt_stats++; - break; - case 'S': - optCount++; - i = sscanf(optarg, "%d+%d,%s", &opt_Source, &opt_SrcPlus, opt_SourcesPath); - if (i == 1) - sscanf(optarg, "%*d,%s", opt_SourcesPath); - l2l_dbg(3, "Sources option parse result: %d+%d,\"%s\"\n", opt_Source, opt_SrcPlus, opt_SourcesPath); - if (opt_Source) - { - /* need to retranslate for source info: */ - opt_undo++; - opt_redo++; - opt_Revision_check ++; - } - break; - case 't': - opt_twice++; - break; - case 'T': - opt_twice++; - opt_Twice++; - break; - case 'u': - opt_undo++; - break; - case 'U': - opt_undo++; - opt_redo++; - break; - case 'v': - opt_verbose++; - break; - case 'z': - optCount++; - strcpy(opt_7z, optarg); - break; - default: - usage(0); - return -2; - break; - } - optCount++; - } - if(opt_console) - { - l2l_dbg(2, "Note: use 's' command in console mode. Statistics option disabled\n"); - opt_stats = 0; - } - if (opt_SourcesPath[0]) - { - strcat(opt_SourcesPath, PATH_STR); - } - if (!opt_dir[0]) - { - strcpy(opt_dir, opt_SourcesPath); - strcat(opt_dir, DEF_OPT_DIR); - } - - return optCount; -} - -/* EOF */ diff --git a/reactos/tools/log2lines/options.h b/reactos/tools/log2lines/options.h deleted file mode 100644 index a3f2d75ba83..00000000000 --- a/reactos/tools/log2lines/options.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Option parsing - */ - -#pragma once - -extern char *optchars; -extern int opt_buffered; // -b -extern int opt_help; // -h -extern int opt_force; // -f -extern int opt_exit; // -e -extern int opt_verbose; // -v -extern int opt_console; // -c -extern int opt_mark; // -m -extern int opt_Mark; // -M -extern char *opt_Pipe; // -P -extern int opt_quit; // -q (cli only) -extern int opt_cli; // (cli internal) -extern int opt_raw; // -r -extern int opt_stats; // -s -extern int opt_Source; // -S [+][,] -extern int opt_SrcPlus; // -S [+][,] -extern int opt_twice; // -t -extern int opt_Twice ; // -T -extern int opt_undo ; // -u -extern int opt_redo ; // -U -extern char *opt_Revision; // -R -extern int opt_Revision_check; // -R check -extern char opt_dir[]; // -d -extern char opt_logFile[]; // -l -extern char *opt_mod; // mod for opt_logFile -extern char opt_7z[]; // -z -extern char opt_scanned[]; // all scanned options - -extern char opt_SourcesPath[]; //sources path - -int optionInit(int argc, const char **argv); -int optionParse(int argc, const char **argv); - -/* EOF */ diff --git a/reactos/tools/log2lines/revision.c b/reactos/tools/log2lines/revision.c deleted file mode 100644 index ae5fa17da37..00000000000 --- a/reactos/tools/log2lines/revision.c +++ /dev/null @@ -1,299 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - SVN interface and revision analysis - */ - -#include -#include -#include - -#include "version.h" -#include "compat.h" -#include "util.h" -#include "options.h" -#include "log2lines.h" - -static void -log_rev_check(FILE *outFile, char *fileName, int showfile) -{ - int rev = 0; - char s[LINESIZE]; - - strcpy(s, opt_SourcesPath); - strcat(s, fileName); - rev = getRevision(s, 1); - if (!showfile) - s[0] = '\0'; - if (revinfo.opt_verbose) - log(outFile, "| R--- %s Last Changed Rev: %d\n", s, rev); - - if (rev && opt_Revision_check) - { - if (revinfo.rev < revinfo.buildrev) - { - summ.revconflicts++; - log(outFile, "| R--- Conflict %s: source tree(%d) < build(%d)\n", s, rev, revinfo.buildrev); - } - else if (rev > revinfo.buildrev) - { - summ.revconflicts++; - log(outFile, "| R--- Conflict %s: file(%d) > build(%d)\n", s, rev, revinfo.buildrev); - } - } -} - -static void -logRevCheck(FILE *outFile) -{ - int twice = 0; - - twice = (lastLine.nr2 && strcmp(lastLine.file1, lastLine.file2) != 0); - log_rev_check(outFile, lastLine.file1, twice); - if (twice) - { - log_rev_check(outFile, lastLine.file2, twice); - } -} - -int -getRevision(char *fileName, int lastChanged) -{ - char s[LINESIZE]; - FILE *psvn; - int rev = 0; - - if (!fileName) - fileName = opt_SourcesPath; - sprintf(s, "svn info %s", fileName); - if ((psvn = POPEN(s, "r"))) - { - while (fgets(s, LINESIZE, psvn)) - { - if (lastChanged) - { - if (sscanf(s, "Last Changed Rev: %d", &rev)) - break; - } - else - { - if (sscanf(s, "Revision: %d", &rev)) - break; - } - } - } - else - l2l_dbg(1, "Can't popen: \"%s\"\n", s); - - if (psvn) - PCLOSE(psvn); - - return rev; -} - -int -getTBRevision(char *fileName) -{ - char *s; - int rev = 0; - - s = strrchr(fileName, PATH_CHAR); - if (s) - s += 1; - else - s = fileName; - - sscanf(s, TRKBUILDPREFIX "%d", &rev); - if (!rev) - { - s = strrchr(fileName, PATH_CHAR); - if (s) - *s = '\0'; // clear, so we have the parent dir - else - { - // where else to look? - fileName = opt_SourcesPath; - } - rev = getRevision(fileName, 1); - if (s) - *s = PATH_CHAR; // restore - } - - l2l_dbg(1, "TBRevision: %d\n", rev); - return rev; -} - - -void -reportRevision(FILE *outFile) -{ - if (opt_Revision_check) - { - if (lastLine.valid) - logRevCheck(outFile); - } -} - -unsigned long -findRev(FILE *finx, int *rev) -{ - unsigned long pos = 0L; - - while (!fseek(finx, (*rev) * sizeof(unsigned long), SEEK_SET)) - { - fread(&pos, sizeof(long), 1, finx); - (*rev)--; - if (pos) - break; - } - return pos; -} - -int -regscan(FILE *outFile) -{ - int res = 0; - char logname[MAX_PATH]; - char inxname[MAX_PATH]; - char line[LINESIZE + 1]; - char line2[LINESIZE + 1]; - FILE *flog = NULL; - FILE *finx = NULL; - unsigned long pos = 0L; - int r; - - sprintf(logname, "%s" PATH_STR "%s", opt_SourcesPath, SVNDB); - sprintf(inxname, "%s" PATH_STR "%s", opt_SourcesPath, SVNDB_INX); - flog = fopen(logname, "rb"); - finx = fopen(inxname, "rb"); - - if (flog && finx) - { - r = revinfo.buildrev; - if (!fread(&pos, sizeof(long), 1, finx)) - { - res = 2; - l2l_dbg(0, "Cannot read magic number\n"); - } - - if (!res) - { - if (pos != MAGIC_INX) - { - res = 3; - l2l_dbg(0, "Incorrect magic number (%lx)\n", pos); - } - } - - if (!res) - { - char flag[2]; - char path[MAX_PATH]; - char path2[MAX_PATH]; - int wflag = 0; - clilog(outFile, "Regression candidates:\n"); - while (( pos = findRev(finx, &r) )) - { - if (r < (revinfo.buildrev - revinfo.range)) - { - l2l_dbg(1, "r%d is outside range of %d revisions\n", r, revinfo.range); - break; - } - fseek(flog, pos, SEEK_SET); - wflag = 1; - fgets(line, LINESIZE, flog); - fgets(line2, LINESIZE, flog); - while (fgets(line2, LINESIZE, flog)) - { - path2[0] = '\0'; - if (sscanf(line2, "%1s %s %s", flag, path, path2) >= 2) - { - if (entry_lookup(&sources, path) || entry_lookup(&sources, path2)) - { - if (wflag == 1) - { - clilog(outFile, "%sChanged paths:\n", line); - summ.regfound++; - wflag = 2; - } - clilog(outFile, "%s", line2); - } - } - else - break; - } - if (wflag == 2) - { - int i = 0; - clilog(outFile, "\n"); - while (fgets(line2, LINESIZE, flog)) - { - i++; - clilog(outFile, "%s", line2); - if (strncmp(LOGBOTTOM, line2, sizeof(LOGBOTTOM) - 1) == 0) - break; - } - } - } - } - } - else - { - res = 1; - l2l_dbg(0, "Cannot open %s or %s\n", logname, inxname); - } - - if (flog) - fclose(flog); - if (finx) - fclose(finx); - - return res; -} - - -int -updateSvnlog(void) -{ - int res = 0; - char logname[MAX_PATH]; - char inxname[MAX_PATH]; - char line[LINESIZE + 1]; - FILE *flog = NULL; - FILE *finx = NULL; - unsigned long pos; - int r, y, m, d; - char name[NAMESIZE]; - - sprintf(logname, "%s" PATH_STR "%s", opt_SourcesPath, SVNDB); - sprintf(inxname, "%s" PATH_STR "%s", opt_SourcesPath, SVNDB_INX); - flog = fopen(logname, "rb"); - finx = fopen(inxname, "wb"); - - if (flog && finx) - { - pos = MAGIC_INX; - fwrite(&pos, sizeof(long), 1, finx); - pos = ftell(flog); - while (fgets(line, LINESIZE, flog)) - { - if (sscanf(line, "r%d | %s | %d-%d-%d", &r, name, &y, &m, &d) == 5) - { - l2l_dbg(1, "%ld r%d | %s | %d-%d-%d\n", pos, r, name, y, m, d); - fseek(finx, r * sizeof(unsigned long), SEEK_SET); - fwrite(&pos, sizeof(unsigned long), 1, finx); - } - pos = ftell(flog); - } - } - - if (flog) - fclose(flog); - if (finx) - fclose(finx); - - return res; -} - -/* EOF */ diff --git a/reactos/tools/log2lines/revision.h b/reactos/tools/log2lines/revision.h deleted file mode 100644 index 6da59ad03e3..00000000000 --- a/reactos/tools/log2lines/revision.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - SVN interface and revision analysis - */ - -#pragma once - -#include - -typedef struct revinfo_struct -{ - int rev; - int buildrev; - int range; - int opt_verbose; -} REVINFO, *PREVINFO; - -int getRevision(char *fileName, int lastChanged); -int getTBRevision(char *fileName); -void reportRevision(FILE *outFile); -unsigned long findRev(FILE *finx, int *rev); -int regscan(FILE *outFile); -int updateSvnlog(void); - -/* EOF */ diff --git a/reactos/tools/log2lines/stat.c b/reactos/tools/log2lines/stat.c deleted file mode 100644 index 801f693bde2..00000000000 --- a/reactos/tools/log2lines/stat.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Statistics - */ - -#include -#include - -#include "version.h" -#include "options.h" -#include "util.h" -#include "log2lines.h" - -void -stat_print(FILE *outFile, PSUMM psumm) -{ - if (outFile) - { - clilog(outFile, "*** LOG2LINES SUMMARY ***\n"); - clilog(outFile, "Translated: %d\n", psumm->translated); - clilog(outFile, "Reverted: %d\n", psumm->undo); - clilog(outFile, "Retranslated: %d\n", psumm->redo); - clilog(outFile, "Skipped: %d\n", psumm->skipped); - clilog(outFile, "Differ: %d\n", psumm->diff); - clilog(outFile, "Differ (function/source): %d\n", psumm->majordiff); - clilog(outFile, "Revision conflicts: %d\n", psumm->revconflicts); - clilog(outFile, "Regression candidates: %d\n", psumm->regfound); - clilog(outFile, "Offset error: %d\n", psumm->offset_errors); - clilog(outFile, "Total: %d\n", psumm->total); - clilog(outFile, "-------------------------------\n"); - clilog(outFile, "Log2lines version: " LOG2LINES_VERSION "\n"); - clilog(outFile, "Directory: %s\n", opt_dir); - clilog(outFile, "Passed options: %s\n", opt_scanned); - clilog(outFile, "-------------------------------\n"); - } -} - -void -stat_clear(PSUMM psumm) -{ - memset(psumm, 0, sizeof(SUMM)); -} - -/* EOF */ diff --git a/reactos/tools/log2lines/stat.h b/reactos/tools/log2lines/stat.h deleted file mode 100644 index 2b870285604..00000000000 --- a/reactos/tools/log2lines/stat.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Statistics - */ - -#pragma once - -#include - -typedef struct summ_struct -{ - int translated; - int undo; - int redo; - int skipped; - int diff; - int majordiff; - int revconflicts; - int regfound; - int offset_errors; - int total; -} SUMM, *PSUMM; - -void stat_print(FILE *outFile, PSUMM psumm); -void stat_clear(PSUMM psumm); - -/* EOF */ diff --git a/reactos/tools/log2lines/util.c b/reactos/tools/log2lines/util.c deleted file mode 100644 index 19e6342934a..00000000000 --- a/reactos/tools/log2lines/util.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Misc utils - */ - -#include -#include -#include -#include - -#include "config.h" -#include "compat.h" -#include "util.h" -#include "options.h" - -int -set_LogFile(FILE **plogFile) -{ - if (*opt_logFile) - { - if (*plogFile) - fclose(*plogFile); - *plogFile = NULL; - - if (strcmp(opt_logFile,"none") == 0) - return 0; //just close - - *plogFile = fopen(opt_logFile, opt_mod ? opt_mod : "a"); - if (*plogFile) - { - // disable buffering so fflush is not needed - if (!opt_buffered) - { - l2l_dbg(1, "Disabling log buffering on %s\n", opt_logFile); - setbuf(*plogFile, NULL); - } - else - l2l_dbg(1, "Enabling log buffering on %s\n", opt_logFile); - } - else - { - l2l_dbg(0, "Could not open logfile %s (%s)\n", opt_logFile, strerror(errno)); - return 2; - } - } - return 0; -} - -int -file_exists(char *name) -{ - FILE *f; - - f = fopen(name, "r"); - if (!f) - return 0; - fclose(f); - return 1; -} - -/* Do this in reverse (recursively) - This saves many system calls if the path is likely - to already exist (creating large trees). -*/ -int -mkPath(char *path, int isDir) -{ - char *s; - int res = 0; - - if (isDir) - { - res = MKDIR(path); - if (!res || (res == -1 && errno == EEXIST)) - return 0; - } - // create parent dir - if ((s = strrchr(path, PATH_CHAR))) - { - *s = '\0'; - res = mkPath(path, 1); - *s = PATH_CHAR; - } - - if (!res && isDir) - res = MKDIR(path); - - return res; -} - -#if 0 -static FILE * -rfopen(char *path, char *mode) -{ - FILE *f = NULL; - char tmppath[MAX_PATH]; // Don't modify const strings - - strcpy(tmppath, path); - f = fopen(tmppath, mode); - if (!f && !mkPath(tmppath, 0)) - f = fopen(tmppath, mode); - return f; -} -#endif - - -char * -basename(char *path) -{ - char *base; - - base = strrchr(path, PATH_CHAR); - if (base) - return ++base; - return path; -} - -const char * -getFmt(const char *a) -{ - const char *fmt = "%x"; - - if (*a == '0') - { - switch (*++a) - { - case 'x': - fmt = "%x"; - ++a; - break; - case 'd': - fmt = "%d"; - ++a; - break; - default: - fmt = "%o"; - break; - } - } - return fmt; -} - -long -my_atoi(const char *a) -{ - int i = 0; - sscanf(a, getFmt(a), &i); - return i; -} - -int -isOffset(const char *a) -{ - int i = 0; - if (strchr(a, '.')) - return 0; - return sscanf(a, getFmt(a), &i); -} - -int -copy_file(char *src, char *dst) -{ - char Line[LINESIZE]; - - sprintf(Line, CP_FMT, src, dst); - l2l_dbg(2, "Executing: %s\n", Line); - remove(dst); - if (file_exists(dst)) - { - l2l_dbg(0, "Cannot remove dst %s before copy\n", dst); - return 1; - } - if (system(Line) < 0) - { - l2l_dbg(0, "Cannot copy %s to %s\n", src, dst); - l2l_dbg(1, "Failed to execute: '%s'\n", Line); - return 2; - } - - if (!file_exists(dst)) - { - l2l_dbg(0, "Dst %s does not exist after copy\n", dst); - return 2; - } - return 0; -} - -/* EOF */ diff --git a/reactos/tools/log2lines/util.h b/reactos/tools/log2lines/util.h deleted file mode 100644 index 8df1181b4f7..00000000000 --- a/reactos/tools/log2lines/util.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Misc utils - */ - -#pragma once - -#include - -#include "cmd.h" -#include "options.h" - -#define log(outFile, fmt, ...) \ - { \ - fprintf(outFile, fmt, ##__VA_ARGS__); \ - if (logFile) \ - fprintf(logFile, fmt, ##__VA_ARGS__); \ - } - -#define esclog(outFile, fmt, ...) \ - { \ - log(outFile, KDBG_ESC_RESP fmt, ##__VA_ARGS__); \ - } - -#define clilog(outFile, fmt, ...) \ - { \ - if (opt_cli) \ - esclog(outFile, fmt, ##__VA_ARGS__) \ - else \ - log(outFile, fmt, ##__VA_ARGS__); \ - } - -#define l2l_dbg(level, ...) \ - { \ - if (opt_verbose >= level) \ - fprintf(stderr, ##__VA_ARGS__); \ - } - -int file_exists(char *name); -int mkPath(char *path, int isDir); -char *basename(char *path); -const char *getFmt(const char *a); -long my_atoi(const char *a); -int isOffset(const char *a); -int copy_file(char *src, char *dst); -int set_LogFile(FILE **plogFile); - -/* EOF */ diff --git a/reactos/tools/log2lines/version.h b/reactos/tools/log2lines/version.h deleted file mode 100644 index ad1e9299af0..00000000000 --- a/reactos/tools/log2lines/version.h +++ /dev/null @@ -1,12 +0,0 @@ -/* - * ReactOS log2lines - * Written by Jan Roeloffzen - * - * - Version - */ - -#pragma once - -#define LOG2LINES_VERSION "2.2" - -/* EOF */ diff --git a/reactos/tools/mkconfig.c b/reactos/tools/mkconfig.c deleted file mode 100644 index 08efbc29331..00000000000 --- a/reactos/tools/mkconfig.c +++ /dev/null @@ -1,139 +0,0 @@ -#include -#include -#include - -#ifndef max -#define max(a, b) ((a) > (b) ? (a) : (b)) -#endif - -int -write_if_change(char* outbuf, char* filename) -{ - FILE* out; - unsigned int end; - char* cmpbuf; - unsigned int stat; - - out = fopen(filename, "rb"); - if (out == NULL) - { - out = fopen(filename, "wb"); - if (out == NULL) - { - fprintf(stderr, "Unable to create output file\n"); - return(1); - } - fputs(outbuf, out); - fclose(out); - return(0); - } - - fseek(out, 0, SEEK_END); - end = ftell(out); - cmpbuf = malloc(end); - if (cmpbuf == NULL) - { - fprintf(stderr, "Out of memory\n"); - fclose(out); - return(1); - } - - fseek(out, 0, SEEK_SET); - stat = fread(cmpbuf, 1, end, out); - if (stat != end) - { - fprintf(stderr, "Failed to read data\n"); - fclose(out); - free(cmpbuf); - return(1); - } - if (end == strlen(outbuf) && memcmp(cmpbuf, outbuf, end) == 0) - { - fclose(out); - free(cmpbuf); - return(0); - } - - fclose(out); - free(cmpbuf); - out = fopen(filename, "wb"); - if (out == NULL) - { - fprintf(stderr, "Unable to create output file\n"); - return(1); - } - - stat = fwrite(outbuf, 1, strlen(outbuf), out); - if (strlen(outbuf) != stat) - { - fprintf(stderr, "Unable to write output file\n"); - fclose(out); - return(1); - } - fclose(out); - return(0); -} - -int -main(int argc, char* argv[]) -{ - int include_tests; - unsigned int i; - char* outbuf; - char* s; - char config[512]; - - if (argc == 1) - { - fprintf(stderr, "Not enough arguments\n"); - return(1); - } - - outbuf = malloc(256 * 1024); - if (outbuf == NULL) - { - fprintf(stderr, "Out of memory 1\n"); - return(1); - } - - s = outbuf; - s = s + sprintf(s, "/* Automatically generated, "); - s = s + sprintf(s, "Edit the Makefile to change configuration */\n"); - s = s + sprintf(s, "#ifndef __INCLUDE_CONFIG_H\n"); - s = s + sprintf(s, "#define __INCLUDE_CONFIG_H\n"); - strcpy(config, ""); - include_tests = 0; - for (i = 2; i < argc; i++) - { - if (strcmp(argv[i], "REGTESTS") == 0) - { - include_tests = 1; - } - else - { - s = s + sprintf(s, "#ifndef %s\n", argv[i]); - s = s + sprintf(s, "#define %s\n", argv[i]); - s = s + sprintf(s, "#endif /* %s */\n", argv[i]); - } - strcat(config, argv[i]); - if (i != (argc - 1)) - { - strcat(config, " "); - } - } - if (include_tests) - { - s = s + sprintf(s, "#ifndef __ASM__\n"); - s = s + sprintf(s, "extern void PrepareTests();\n"); - s = s + sprintf(s, "#define PREPARE_TESTS PrepareTests();\n"); - s = s + sprintf(s, "#endif /* __ASM__ */\n"); - } - else - { - s = s + sprintf(s, "#define PREPARE_TESTS\n"); - } - s = s + sprintf(s, "#define CONFIG \"%s\"\n", config); - s = s + sprintf(s, "#endif /* __INCLUDE_CONFIG_H */\n"); - - return(write_if_change(outbuf, argv[1])); -} diff --git a/reactos/tools/mkhive/CMakeLists.txt b/reactos/tools/mkhive/CMakeLists.txt deleted file mode 100644 index aaaae18e09b..00000000000 --- a/reactos/tools/mkhive/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ - -add_definitions(-DMKHIVE_HOST) - -include_directories( - ${REACTOS_SOURCE_DIR}/lib/inflib - ${REACTOS_SOURCE_DIR}/lib/cmlib - ${REACTOS_SOURCE_DIR}/lib/rtl) - -list(APPEND SOURCE - binhive.c - cmi.c - mkhive.c - reginf.c - registry.c - rtl.c) - -add_executable(mkhive ${SOURCE}) -target_link_libraries(mkhive unicode cmlibhost inflibhost) diff --git a/reactos/tools/mkhive/binhive.c b/reactos/tools/mkhive/binhive.c deleted file mode 100644 index 0921160aa18..00000000000 --- a/reactos/tools/mkhive/binhive.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * ReactOS kernel - * Copyright (C) 2006 ReactOS Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS hive maker - * FILE: tools/mkhive/binhive.c - * PURPOSE: Binary hive export code - * PROGRAMMER: Hervé Poussineau - */ - -/* INCLUDES *****************************************************************/ - -#include - -#include "mkhive.h" - -BOOL -ExportBinaryHive( - IN PCSTR FileName, - IN PCMHIVE Hive) -{ - FILE *File; - BOOL ret; - - printf (" Creating binary hive: %s\n", FileName); - - /* Create new hive file */ - File = fopen (FileName, "w+b"); - if (File == NULL) - { - printf(" Error creating/opening file\n"); - return FALSE; - } - - fseek (File, 0, SEEK_SET); - - Hive->FileHandles[HFILE_TYPE_PRIMARY] = (HANDLE)File; - ret = HvWriteHive(&Hive->Hive); - fclose (File); - return ret; -} - -/* EOF */ diff --git a/reactos/tools/mkhive/binhive.h b/reactos/tools/mkhive/binhive.h deleted file mode 100644 index 43becbf9abd..00000000000 --- a/reactos/tools/mkhive/binhive.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * ReactOS kernel - * Copyright (C) 2006 ReactOS Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS hive maker - * FILE: tools/mkhive/binhive.h - * PURPOSE: Binary hive export code - * PROGRAMMER: Hervé Poussineau - */ - -#pragma once - -BOOL -ExportBinaryHive( - IN PCSTR FileName, - IN PCMHIVE Hive); - -/* EOF */ diff --git a/reactos/tools/mkhive/cmi.c b/reactos/tools/mkhive/cmi.c deleted file mode 100644 index bb8f48fba9c..00000000000 --- a/reactos/tools/mkhive/cmi.c +++ /dev/null @@ -1,839 +0,0 @@ -/* - * ReactOS kernel - * Copyright (C) 2006 ReactOS Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS hive maker - * FILE: tools/mkhive/cmi.c - * PURPOSE: Registry file manipulation routines - * PROGRAMMER: Hervé Poussineau - */ - -#define NDEBUG -#include "mkhive.h" - -static PVOID -NTAPI -CmpAllocate( - IN SIZE_T Size, - IN BOOLEAN Paged, - IN ULONG Tag) -{ - return (PVOID) malloc((size_t)Size); -} - -static VOID -NTAPI -CmpFree( - IN PVOID Ptr, - IN ULONG Quota) -{ - free(Ptr); -} - -static BOOLEAN -NTAPI -CmpFileRead( - IN PHHIVE RegistryHive, - IN ULONG FileType, - IN PULONG FileOffset, - OUT PVOID Buffer, - IN SIZE_T BufferLength) -{ - DPRINT1("CmpFileRead() unimplemented\n"); - return FALSE; -} - -static BOOLEAN -NTAPI -CmpFileWrite( - IN PHHIVE RegistryHive, - IN ULONG FileType, - IN PULONG FileOffset, - IN PVOID Buffer, - IN SIZE_T BufferLength) -{ - PCMHIVE CmHive = (PCMHIVE)RegistryHive; - FILE *File = CmHive->FileHandles[HFILE_TYPE_PRIMARY]; - if (0 != fseek (File, *FileOffset, SEEK_SET)) - return FALSE; - return BufferLength == fwrite (Buffer, 1, BufferLength, File); -} - -static BOOLEAN -NTAPI -CmpFileSetSize( - IN PHHIVE RegistryHive, - IN ULONG FileType, - IN ULONG FileSize, - IN ULONG OldFileSize) -{ - DPRINT1("CmpFileSetSize() unimplemented\n"); - return FALSE; -} - -static BOOLEAN -NTAPI -CmpFileFlush( - IN PHHIVE RegistryHive, - IN ULONG FileType, - PLARGE_INTEGER FileOffset, - ULONG Length) -{ - PCMHIVE CmHive = (PCMHIVE)RegistryHive; - FILE *File = CmHive->FileHandles[HFILE_TYPE_PRIMARY]; - return 0 == fflush (File); -} - -NTSTATUS -CmiInitializeTempHive( - IN OUT PCMHIVE Hive) -{ - NTSTATUS Status; - - RtlZeroMemory ( - Hive, - sizeof(CMHIVE)); - - DPRINT("Hive 0x%p\n", Hive); - - Status = HvInitialize(&Hive->Hive, - HINIT_CREATE, - 0, - 0, - 0, - CmpAllocate, - CmpFree, - CmpFileSetSize, - CmpFileWrite, - CmpFileRead, - CmpFileFlush, - 1, - NULL); - if (!NT_SUCCESS(Status)) - { - return Status; - } - - if (!CmCreateRootNode (&Hive->Hive, L"")) - { - HvFree (&Hive->Hive); - return STATUS_INSUFFICIENT_RESOURCES; - } - - Hive->Flags = HIVE_NO_FILE; - - /* Add the new hive to the hive list */ - InsertTailList ( - &CmiHiveListHead, - &Hive->HiveList); - - VERIFY_REGISTRY_HIVE (Hive); - - return STATUS_SUCCESS; -} - -static NTSTATUS -CmiAddKeyToHashTable( - IN PCMHIVE RegistryHive, - IN OUT PCM_KEY_FAST_INDEX HashCell, - IN HCELL_INDEX HashCellIndex, - IN PCM_KEY_NODE NewKeyCell, - IN HCELL_INDEX NKBOffset) -{ - ULONG i; - ULONG HashKey = 0; - - if (NewKeyCell->Flags & KEY_COMP_NAME) - { - RtlCopyMemory( - &HashKey, - NewKeyCell->Name, - min(NewKeyCell->NameLength, sizeof(ULONG))); - } - - for (i = 0; i < HashCell->Count; i++) - { - if (HashCell->List[i].HashKey > HashKey) - break; - } - - if (i < HashCell->Count) - { - RtlMoveMemory(HashCell->List + i + 1, - HashCell->List + i, - (HashCell->Count - i) * - sizeof(HashCell->List[0])); - } - - HashCell->List[i].Cell = NKBOffset; - HashCell->List[i].HashKey = HashKey; - HashCell->Count++; - HvMarkCellDirty(&RegistryHive->Hive, HashCellIndex, FALSE); - return STATUS_SUCCESS; -} - -static NTSTATUS -CmiAllocateHashTableCell ( - IN PCMHIVE RegistryHive, - OUT PCM_KEY_FAST_INDEX *HashBlock, - OUT HCELL_INDEX *HBOffset, - IN USHORT SubKeyCount, - IN HSTORAGE_TYPE Storage) -{ - PCM_KEY_FAST_INDEX NewHashBlock; - ULONG NewHashSize; - NTSTATUS Status; - - Status = STATUS_SUCCESS; - *HashBlock = NULL; - NewHashSize = FIELD_OFFSET(CM_KEY_FAST_INDEX, List) + - (SubKeyCount * sizeof(CM_INDEX)); - *HBOffset = HvAllocateCell(&RegistryHive->Hive, NewHashSize, Storage, HCELL_NIL); - - if (*HBOffset == HCELL_NIL) - { - Status = STATUS_INSUFFICIENT_RESOURCES; - } - else - { - NewHashBlock = (PCM_KEY_FAST_INDEX)HvGetCell (&RegistryHive->Hive, *HBOffset); - NewHashBlock->Signature = CM_KEY_FAST_LEAF; - NewHashBlock->Count = 0; - *HashBlock = NewHashBlock; - } - - return Status; -} - -NTSTATUS -CmiAddSubKey( - IN PCMHIVE RegistryHive, - IN PCM_KEY_NODE ParentKeyCell, - IN HCELL_INDEX ParentKeyCellOffset, - IN PCUNICODE_STRING SubKeyName, - IN ULONG CreateOptions, - OUT PCM_KEY_NODE *pSubKeyCell, - OUT HCELL_INDEX *pBlockOffset) -{ - PCM_KEY_FAST_INDEX HashBlock; - HCELL_INDEX NKBOffset; - PCM_KEY_NODE NewKeyCell; - ULONG NewBlockSize; - NTSTATUS Status; - USHORT NameLength; - PWSTR NamePtr; - BOOLEAN Packable; - HSTORAGE_TYPE Storage; - ULONG i; - - VERIFY_KEY_CELL(ParentKeyCell); - - /* Skip leading backslash */ - if (SubKeyName->Buffer[0] == L'\\') - { - NamePtr = &SubKeyName->Buffer[1]; - NameLength = SubKeyName->Length - sizeof(WCHAR); - } - else - { - NamePtr = SubKeyName->Buffer; - NameLength = SubKeyName->Length; - } - - /* Check whether key name can be packed */ - Packable = TRUE; - for (i = 0; i < NameLength / sizeof(WCHAR); i++) - { - if (NamePtr[i] & 0xFF00) - { - Packable = FALSE; - break; - } - } - - /* Adjust name size */ - if (Packable) - { - NameLength = NameLength / sizeof(WCHAR); - } - - Status = STATUS_SUCCESS; - - Storage = (CreateOptions & REG_OPTION_VOLATILE) ? Volatile : Stable; - NewBlockSize = FIELD_OFFSET(CM_KEY_NODE, Name) + NameLength; - NKBOffset = HvAllocateCell(&RegistryHive->Hive, NewBlockSize, Storage, HCELL_NIL); - if (NKBOffset == HCELL_NIL) - { - Status = STATUS_INSUFFICIENT_RESOURCES; - } - else - { - NewKeyCell = (PCM_KEY_NODE)HvGetCell (&RegistryHive->Hive, NKBOffset); - NewKeyCell->Signature = CM_KEY_NODE_SIGNATURE; - if (CreateOptions & REG_OPTION_VOLATILE) - { - NewKeyCell->Flags = KEY_IS_VOLATILE; - } - else - { - NewKeyCell->Flags = 0; - } - KeQuerySystemTime(&NewKeyCell->LastWriteTime); - NewKeyCell->Parent = HCELL_NIL; - NewKeyCell->SubKeyCounts[Stable] = 0; - NewKeyCell->SubKeyCounts[Volatile] = 0; - NewKeyCell->SubKeyLists[Stable] = HCELL_NIL; - NewKeyCell->SubKeyLists[Volatile] = HCELL_NIL; - NewKeyCell->ValueList.Count = 0; - NewKeyCell->ValueList.List = HCELL_NIL; - NewKeyCell->Security = HCELL_NIL; - NewKeyCell->Class = HCELL_NIL; - - /* Pack the key name */ - NewKeyCell->NameLength = NameLength; - if (Packable) - { - NewKeyCell->Flags |= KEY_COMP_NAME; - for (i = 0; i < NameLength; i++) - { - ((PCHAR)NewKeyCell->Name)[i] = (CHAR)(NamePtr[i] & 0x00FF); - } - } - else - { - RtlCopyMemory( - NewKeyCell->Name, - NamePtr, - NameLength); - } - - VERIFY_KEY_CELL(NewKeyCell); - } - - if (!NT_SUCCESS(Status)) - { - return Status; - } - - if (ParentKeyCell->SubKeyLists[Storage] == HCELL_NIL) - { - Status = CmiAllocateHashTableCell ( - RegistryHive, - &HashBlock, - &ParentKeyCell->SubKeyLists[Storage], - REG_INIT_HASH_TABLE_SIZE, - Storage); - if (!NT_SUCCESS(Status)) - { - return(Status); - } - } - else - { - HashBlock = (PCM_KEY_FAST_INDEX)HvGetCell ( - &RegistryHive->Hive, - ParentKeyCell->SubKeyLists[Storage]); - ASSERT(HashBlock->Signature == CM_KEY_FAST_LEAF); - - if (HashBlock->Count == - ((HvGetCellSize(&RegistryHive->Hive, HashBlock) - FIELD_OFFSET(CM_KEY_FAST_INDEX, List)) / sizeof(CM_INDEX))) - { - PCM_KEY_FAST_INDEX NewHashBlock; - HCELL_INDEX HTOffset; - - /* Reallocate the hash table cell */ - Status = CmiAllocateHashTableCell ( - RegistryHive, - &NewHashBlock, - &HTOffset, - HashBlock->Count + - REG_EXTEND_HASH_TABLE_SIZE, - Storage); - if (!NT_SUCCESS(Status)) - { - return Status; - } - RtlCopyMemory( - &NewHashBlock->List[0], - &HashBlock->List[0], - sizeof(NewHashBlock->List[0]) * HashBlock->Count); - NewHashBlock->Count = HashBlock->Count; - HvFreeCell (&RegistryHive->Hive, ParentKeyCell->SubKeyLists[Storage]); - ParentKeyCell->SubKeyLists[Storage] = HTOffset; - HashBlock = NewHashBlock; - } - } - - Status = CmiAddKeyToHashTable( - RegistryHive, - HashBlock, - ParentKeyCell->SubKeyLists[Storage], - NewKeyCell, - NKBOffset); - if (NT_SUCCESS(Status)) - { - ParentKeyCell->SubKeyCounts[Storage]++; - if (Packable) - { - if (NameLength*sizeof(WCHAR) > ParentKeyCell->MaxNameLen) - ParentKeyCell->MaxNameLen = NameLength*sizeof(WCHAR); - } - else - { - if (NameLength > ParentKeyCell->MaxNameLen) - ParentKeyCell->MaxNameLen = NameLength; - } - if (NewKeyCell->ClassLength > ParentKeyCell->MaxClassLen) - ParentKeyCell->MaxClassLen = NewKeyCell->ClassLength; - - *pSubKeyCell = NewKeyCell; - *pBlockOffset = NKBOffset; - } - - KeQuerySystemTime(&ParentKeyCell->LastWriteTime); - HvMarkCellDirty(&RegistryHive->Hive, ParentKeyCellOffset, FALSE); - - return Status; -} - -static BOOLEAN -CmiCompareHash( - IN PCUNICODE_STRING KeyName, - IN PCHAR HashString) -{ - CHAR Buffer[4]; - - Buffer[0] = (KeyName->Length >= 2) ? (CHAR)KeyName->Buffer[0] : 0; - Buffer[1] = (KeyName->Length >= 4) ? (CHAR)KeyName->Buffer[1] : 0; - Buffer[2] = (KeyName->Length >= 6) ? (CHAR)KeyName->Buffer[2] : 0; - Buffer[3] = (KeyName->Length >= 8) ? (CHAR)KeyName->Buffer[3] : 0; - - return (strncmp(Buffer, HashString, 4) == 0); -} - - -BOOLEAN -CmiCompareHashI( - IN PCUNICODE_STRING KeyName, - IN PCHAR HashString) -{ - CHAR Buffer[4]; - - Buffer[0] = (KeyName->Length >= 2) ? (CHAR)KeyName->Buffer[0] : 0; - Buffer[1] = (KeyName->Length >= 4) ? (CHAR)KeyName->Buffer[1] : 0; - Buffer[2] = (KeyName->Length >= 6) ? (CHAR)KeyName->Buffer[2] : 0; - Buffer[3] = (KeyName->Length >= 8) ? (CHAR)KeyName->Buffer[3] : 0; - - return (strncasecmp(Buffer, HashString, 4) == 0); -} - -static BOOLEAN -CmiCompareKeyNames( - IN PCUNICODE_STRING KeyName, - IN PCM_KEY_NODE KeyCell) -{ - PWCHAR UnicodeName; - USHORT i; - - if (KeyCell->Flags & KEY_COMP_NAME) - { - if (KeyName->Length != KeyCell->NameLength * sizeof(WCHAR)) - return FALSE; - - for (i = 0; i < KeyCell->NameLength; i++) - { - if (KeyName->Buffer[i] != ((PCHAR)KeyCell->Name)[i]) - return FALSE; - } - } - else - { - if (KeyName->Length != KeyCell->NameLength) - return FALSE; - - UnicodeName = (PWCHAR)KeyCell->Name; - for (i = 0; i < KeyCell->NameLength / sizeof(WCHAR); i++) - { - if (KeyName->Buffer[i] != UnicodeName[i]) - return FALSE; - } - } - - return TRUE; -} - -static BOOLEAN -CmiCompareKeyNamesI( - IN PCUNICODE_STRING KeyName, - IN PCM_KEY_NODE KeyCell) -{ - PWCHAR UnicodeName; - USHORT i; - - DPRINT("Flags: %hx\n", KeyCell->Flags); - - if (KeyCell->Flags & KEY_COMP_NAME) - { - if (KeyName->Length != KeyCell->NameLength * sizeof(WCHAR)) - return FALSE; - - /* FIXME: use _strnicmp */ - for (i = 0; i < KeyCell->NameLength; i++) - { - if (RtlUpcaseUnicodeChar(KeyName->Buffer[i]) != - RtlUpcaseUnicodeChar(((PCHAR)KeyCell->Name)[i])) - return FALSE; - } - } - else - { - if (KeyName->Length != KeyCell->NameLength) - return FALSE; - - UnicodeName = (PWCHAR)KeyCell->Name; - /* FIXME: use _strnicmp */ - for (i = 0; i < KeyCell->NameLength / sizeof(WCHAR); i++) - { - if (RtlUpcaseUnicodeChar(KeyName->Buffer[i]) != - RtlUpcaseUnicodeChar(UnicodeName[i])) - return FALSE; - } - } - - return TRUE; -} - -NTSTATUS -CmiScanForSubKey( - IN PCMHIVE RegistryHive, - IN PCM_KEY_NODE KeyCell, - IN PCUNICODE_STRING SubKeyName, - IN ULONG Attributes, - OUT PCM_KEY_NODE *pSubKeyCell, - OUT HCELL_INDEX *pBlockOffset) -{ - PCM_KEY_FAST_INDEX HashBlock; - PCM_KEY_NODE CurSubKeyCell; - ULONG Storage; - ULONG i; - - VERIFY_KEY_CELL(KeyCell); - - ASSERT(RegistryHive); - - *pSubKeyCell = NULL; - - for (Storage = Stable; Storage < HTYPE_COUNT; Storage++) - { - if (KeyCell->SubKeyLists[Storage] == HCELL_NIL) - { - /* The key does not have any subkeys */ - continue; - } - - /* Get hash table */ - HashBlock = (PCM_KEY_FAST_INDEX)HvGetCell (&RegistryHive->Hive, KeyCell->SubKeyLists[Storage]); - if (!HashBlock || HashBlock->Signature != CM_KEY_FAST_LEAF) - return STATUS_UNSUCCESSFUL; - - for (i = 0; i < KeyCell->SubKeyCounts[Storage]; i++) - { - if (Attributes & OBJ_CASE_INSENSITIVE) - { - if ((HashBlock->List[i].HashKey == 0 - || CmiCompareHashI(SubKeyName, (PCHAR)&HashBlock->List[i].HashKey))) - { - CurSubKeyCell = (PCM_KEY_NODE)HvGetCell ( - &RegistryHive->Hive, - HashBlock->List[i].Cell); - - if (CmiCompareKeyNamesI(SubKeyName, CurSubKeyCell)) - { - *pSubKeyCell = CurSubKeyCell; - *pBlockOffset = HashBlock->List[i].Cell; - return STATUS_SUCCESS; - } - } - } - else - { - if ((HashBlock->List[i].HashKey == 0 - || CmiCompareHash(SubKeyName, (PCHAR)&HashBlock->List[i].HashKey))) - { - CurSubKeyCell = (PCM_KEY_NODE)HvGetCell ( - &RegistryHive->Hive, - HashBlock->List[i].Cell); - - if (CmiCompareKeyNames(SubKeyName, CurSubKeyCell)) - { - *pSubKeyCell = CurSubKeyCell; - *pBlockOffset = HashBlock->List[i].Cell; - return STATUS_SUCCESS; - } - } - } - } - } - - return STATUS_OBJECT_NAME_NOT_FOUND; -} - -static USHORT -CmiGetPackedNameLength( - IN PCUNICODE_STRING Name, - OUT PBOOLEAN pPackable) -{ - USHORT i; - - *pPackable = TRUE; - - for (i = 0; i < Name->Length / sizeof(WCHAR); i++) - { - if (Name->Buffer[i] & 0xFF00) - { - *pPackable = FALSE; - return Name->Length; - } - } - - return (Name->Length / sizeof(WCHAR)); -} - -static NTSTATUS -CmiAllocateValueCell( - IN PCMHIVE RegistryHive, - OUT PCM_KEY_VALUE *ValueCell, - OUT HCELL_INDEX *VBOffset, - IN PCUNICODE_STRING ValueName, - IN HSTORAGE_TYPE Storage) -{ - PCM_KEY_VALUE NewValueCell; - BOOLEAN Packable; - USHORT NameLength, i; - NTSTATUS Status; - - Status = STATUS_SUCCESS; - - NameLength = CmiGetPackedNameLength(ValueName, &Packable); - - DPRINT("ValueName->Length %u NameLength %u\n", ValueName->Length, NameLength); - - *VBOffset = HvAllocateCell(&RegistryHive->Hive, sizeof(CM_KEY_VALUE) + NameLength, Storage, HCELL_NIL); - if (*VBOffset == HCELL_NIL) - { - Status = STATUS_INSUFFICIENT_RESOURCES; - } - else - { - NewValueCell = (PCM_KEY_VALUE)HvGetCell (&RegistryHive->Hive, *VBOffset); - NewValueCell->Signature = CM_KEY_VALUE_SIGNATURE; - NewValueCell->NameLength = (USHORT)NameLength; - if (Packable) - { - /* Pack the value name */ - for (i = 0; i < NameLength; i++) - ((PCHAR)NewValueCell->Name)[i] = (CHAR)ValueName->Buffer[i]; - NewValueCell->Flags |= VALUE_COMP_NAME; - } - else - { - /* Copy the value name */ - RtlCopyMemory( - NewValueCell->Name, - ValueName->Buffer, - NameLength); - NewValueCell->Flags = 0; - } - NewValueCell->Type = 0; - NewValueCell->DataLength = 0; - NewValueCell->Data = HCELL_NIL; - *ValueCell = NewValueCell; - } - - return Status; -} - -NTSTATUS -CmiAddValueKey( - IN PCMHIVE RegistryHive, - IN PCM_KEY_NODE KeyCell, - IN HCELL_INDEX KeyCellOffset, - IN PCUNICODE_STRING ValueName, - OUT PCM_KEY_VALUE *pValueCell, - OUT HCELL_INDEX *pValueCellOffset) -{ - PVALUE_LIST_CELL ValueListCell; - PCM_KEY_VALUE NewValueCell; - HCELL_INDEX ValueListCellOffset; - HCELL_INDEX NewValueCellOffset; - ULONG CellSize; - HSTORAGE_TYPE Storage; - NTSTATUS Status; - - Storage = (KeyCell->Flags & KEY_IS_VOLATILE) ? Volatile : Stable; - if (KeyCell->ValueList.List == HCELL_NIL) - { - /* Allocate some room for the value list */ - CellSize = sizeof(VALUE_LIST_CELL) + (3 * sizeof(HCELL_INDEX)); - ValueListCellOffset = HvAllocateCell(&RegistryHive->Hive, CellSize, Storage, HCELL_NIL); - if (ValueListCellOffset == HCELL_NIL) - return STATUS_INSUFFICIENT_RESOURCES; - - ValueListCell = (PVALUE_LIST_CELL)HvGetCell(&RegistryHive->Hive, ValueListCellOffset); - if (!ValueListCell) - return STATUS_UNSUCCESSFUL; - KeyCell->ValueList.List = ValueListCellOffset; - HvMarkCellDirty(&RegistryHive->Hive, KeyCellOffset, FALSE); - } - else - { - ValueListCell = (PVALUE_LIST_CELL)HvGetCell(&RegistryHive->Hive, KeyCell->ValueList.List); - if (!ValueListCell) - return STATUS_UNSUCCESSFUL; - CellSize = ABS_VALUE(HvGetCellSize(&RegistryHive->Hive, ValueListCell)); - - if (KeyCell->ValueList.Count >= CellSize / sizeof(HCELL_INDEX)) - { - CellSize *= 2; - ValueListCellOffset = HvReallocateCell(&RegistryHive->Hive, KeyCell->ValueList.List, CellSize); - if (ValueListCellOffset == HCELL_NIL) - return STATUS_INSUFFICIENT_RESOURCES; - - ValueListCell = (PVALUE_LIST_CELL)HvGetCell(&RegistryHive->Hive, ValueListCellOffset); - if (!ValueListCell) - return STATUS_UNSUCCESSFUL; - KeyCell->ValueList.List = ValueListCellOffset; - HvMarkCellDirty(&RegistryHive->Hive, KeyCellOffset, FALSE); - } - } - - Status = CmiAllocateValueCell( - RegistryHive, - &NewValueCell, - &NewValueCellOffset, - ValueName, - Storage); - if (!NT_SUCCESS(Status)) - return Status; - - ValueListCell->ValueOffset[KeyCell->ValueList.Count] = NewValueCellOffset; - KeyCell->ValueList.Count++; - if (NewValueCell->Flags & VALUE_COMP_NAME) - { - if (NewValueCell->NameLength*sizeof(WCHAR) > KeyCell->MaxValueNameLen) - KeyCell->MaxValueNameLen = NewValueCell->NameLength*sizeof(WCHAR); - } - else - { - if (NewValueCell->NameLength > KeyCell->MaxValueNameLen) - KeyCell->MaxValueNameLen = NewValueCell->NameLength; - } - - HvMarkCellDirty(&RegistryHive->Hive, KeyCellOffset, FALSE); - HvMarkCellDirty(&RegistryHive->Hive, KeyCell->ValueList.List, FALSE); - HvMarkCellDirty(&RegistryHive->Hive, NewValueCellOffset, FALSE); - - *pValueCell = NewValueCell; - *pValueCellOffset = NewValueCellOffset; - - return STATUS_SUCCESS; -} - -static BOOLEAN -CmiComparePackedNames( - IN PCUNICODE_STRING Name, - IN PUCHAR NameBuffer, - IN USHORT NameBufferSize, - IN BOOLEAN NamePacked) -{ - PWCHAR UNameBuffer; - ULONG i; - - if (NamePacked == TRUE) - { - if (Name->Length != NameBufferSize * sizeof(WCHAR)) - return FALSE; - - for (i = 0; i < Name->Length / sizeof(WCHAR); i++) - { - if (RtlUpcaseUnicodeChar(Name->Buffer[i]) != RtlUpcaseUnicodeChar((WCHAR)NameBuffer[i])) - return FALSE; - } - } - else - { - if (Name->Length != NameBufferSize) - return FALSE; - - UNameBuffer = (PWCHAR)NameBuffer; - - for (i = 0; i < Name->Length / sizeof(WCHAR); i++) - { - if (RtlUpcaseUnicodeChar(Name->Buffer[i]) != RtlUpcaseUnicodeChar(UNameBuffer[i])) - return FALSE; - } - } - - return TRUE; -} - -NTSTATUS -CmiScanForValueKey( - IN PCMHIVE RegistryHive, - IN PCM_KEY_NODE KeyCell, - IN PCUNICODE_STRING ValueName, - OUT PCM_KEY_VALUE *pValueCell, - OUT HCELL_INDEX *pValueCellOffset) -{ - PVALUE_LIST_CELL ValueListCell; - PCM_KEY_VALUE CurValueCell; - ULONG i; - - *pValueCell = NULL; - *pValueCellOffset = HCELL_NIL; - - /* The key does not have any values */ - if (KeyCell->ValueList.List == HCELL_NIL) - { - return STATUS_OBJECT_NAME_NOT_FOUND; - } - - ValueListCell = (PVALUE_LIST_CELL)HvGetCell(&RegistryHive->Hive, KeyCell->ValueList.List); - - VERIFY_VALUE_LIST_CELL(ValueListCell); - - for (i = 0; i < KeyCell->ValueList.Count; i++) - { - CurValueCell = (PCM_KEY_VALUE)HvGetCell( - &RegistryHive->Hive, - ValueListCell->ValueOffset[i]); - - if (CmiComparePackedNames( - ValueName, - (PUCHAR)CurValueCell->Name, - CurValueCell->NameLength, - (BOOLEAN)((CurValueCell->Flags & VALUE_COMP_NAME) ? TRUE : FALSE))) - { - *pValueCell = CurValueCell; - *pValueCellOffset = ValueListCell->ValueOffset[i]; - return STATUS_SUCCESS; - } - } - - return STATUS_OBJECT_NAME_NOT_FOUND; -} diff --git a/reactos/tools/mkhive/cmi.h b/reactos/tools/mkhive/cmi.h deleted file mode 100644 index 6186b3cbc8b..00000000000 --- a/reactos/tools/mkhive/cmi.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * ReactOS kernel - * Copyright (C) 2006 ReactOS Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS hive maker - * FILE: tools/mkhive/cmi.h - * PURPOSE: Registry file manipulation routines - * PROGRAMMER: Hervé Poussineau - */ - -#define VERIFY_KEY_CELL(key) -#define VERIFY_VALUE_LIST_CELL(cell) - -NTSTATUS -CmiInitializeTempHive( - IN OUT PCMHIVE Hive); - -NTSTATUS -CmiAddSubKey( - IN PCMHIVE RegistryHive, - IN PCM_KEY_NODE ParentKeyCell, - IN HCELL_INDEX ParentKeyCellOffset, - IN PCUNICODE_STRING SubKeyName, - IN ULONG CreateOptions, - OUT PCM_KEY_NODE *pSubKeyCell, - OUT HCELL_INDEX *pBlockOffset); - -NTSTATUS -CmiScanForSubKey( - IN PCMHIVE RegistryHive, - IN PCM_KEY_NODE KeyCell, - IN PCUNICODE_STRING SubKeyName, - IN ULONG Attributes, - OUT PCM_KEY_NODE *pSubKeyCell, - OUT HCELL_INDEX *pBlockOffset); - -NTSTATUS -CmiAddValueKey( - IN PCMHIVE RegistryHive, - IN PCM_KEY_NODE KeyCell, - IN HCELL_INDEX KeyCellOffset, - IN PCUNICODE_STRING ValueName, - OUT PCM_KEY_VALUE *pValueCell, - OUT HCELL_INDEX *pValueCellOffset); - -NTSTATUS -CmiScanForValueKey( - IN PCMHIVE RegistryHive, - IN PCM_KEY_NODE KeyCell, - IN PCUNICODE_STRING ValueName, - OUT PCM_KEY_VALUE *pValueCell, - OUT HCELL_INDEX *pValueCellOffset); diff --git a/reactos/tools/mkhive/mkhive.c b/reactos/tools/mkhive/mkhive.c deleted file mode 100644 index 3d94e74bd67..00000000000 --- a/reactos/tools/mkhive/mkhive.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * ReactOS kernel - * Copyright (C) 2003, 2006 ReactOS Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS hive maker - * FILE: tools/mkhive/mkhive.c - * PURPOSE: Hive maker - * PROGRAMMER: Eric Kohl - * Hervé Poussineau - */ - -#include -#include -#include - -#include "mkhive.h" - -#ifdef _MSC_VER -#include -#define PATH_MAX _MAX_PATH -#endif//_MSC_VER - -#ifndef _WIN32 -#ifndef PATH_MAX -#define PATH_MAX 260 -#endif -#define DIR_SEPARATOR_CHAR '/' -#define DIR_SEPARATOR_STRING "/" -#else -#define DIR_SEPARATOR_CHAR '\\' -#define DIR_SEPARATOR_STRING "\\" -#endif - - -void usage (void) -{ - printf ("Usage: mkhive \n\n"); - printf (" dstdir - binary hive files are created in this directory\n"); - printf (" inffiles - inf files with full path\n"); -} - -void convert_path(char *dst, char *src) -{ - int i; - - i = 0; - while (src[i] != 0) - { -#ifdef _WIN32 - if (src[i] == '/') - { - dst[i] = '\\'; - } -#else - if (src[i] == '\\') - { - dst[i] = '/'; - } -#endif - else - { - dst[i] = src[i]; - } - - i++; - } - dst[i] = 0; -} - -int main (int argc, char *argv[]) -{ - char FileName[PATH_MAX]; - int i; - - if (argc < 3) - { - usage (); - return 1; - } - - printf ("Binary hive maker\n"); - - RegInitializeRegistry (); - - for (i = 2; i < argc; i++) - { - convert_path (FileName, argv[i]); - ImportRegistryFile (FileName); - } - - convert_path (FileName, argv[1]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "default"); - if (!ExportBinaryHive (FileName, &DefaultHive)) - { - return 1; - } - - convert_path (FileName, argv[1]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "sam"); - if (!ExportBinaryHive (FileName, &SamHive)) - { - return 1; - } - - convert_path (FileName, argv[1]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "security"); - if (!ExportBinaryHive (FileName, &SecurityHive)) - { - return 1; - } - - convert_path (FileName, argv[1]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "software"); - if (!ExportBinaryHive (FileName, &SoftwareHive)) - { - return 1; - } - - convert_path (FileName, argv[1]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "system"); - if (!ExportBinaryHive (FileName, &SystemHive)) - { - return 1; - } - - RegShutdownRegistry (); - - printf (" Done.\n"); - - return 0; -} - -/* EOF */ diff --git a/reactos/tools/mkhive/mkhive.h b/reactos/tools/mkhive/mkhive.h deleted file mode 100644 index 11ef493bee5..00000000000 --- a/reactos/tools/mkhive/mkhive.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * ReactOS kernel - * Copyright (C) 2003, 2006 ReactOS Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS hive maker - * FILE: tools/mkhive/mkhive.h - * PURPOSE: Hive maker - * PROGRAMMER: Eric Kohl - * Hervé Poussineau - */ - -#pragma once - -#include -#include - -#include - -// Definitions copied from -// We only want to include host headers, so we define them manually -#define STATUS_SUCCESS ((NTSTATUS)0x00000000) -#define STATUS_UNSUCCESSFUL ((NTSTATUS)0xC0000001) -#define STATUS_NOT_IMPLEMENTED ((NTSTATUS)0xC0000002) -#define STATUS_INVALID_PARAMETER ((NTSTATUS)0xC000000D) -#define STATUS_NO_MEMORY ((NTSTATUS)0xC0000017) -#define STATUS_INSUFFICIENT_RESOURCES ((NTSTATUS)0xC000009A) -#define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS)0xC0000034) -#define STATUS_INVALID_PARAMETER_2 ((NTSTATUS)0xC00000F0) -#define STATUS_BUFFER_OVERFLOW ((NTSTATUS)0x80000005) - -unsigned char BitScanForward(ULONG * Index, unsigned long Mask); -unsigned char BitScanReverse(ULONG * const Index, unsigned long Mask); -#define RtlFillMemoryUlong(dst, len, val) memset(dst, val, len) - -#ifdef _M_AMD64 -#define BitScanForward64 _BitScanForward64 -#define BitScanReverse64 _BitScanReverse64 -#endif - -NTSTATUS NTAPI -RtlAnsiStringToUnicodeString( - IN OUT PUNICODE_STRING UniDest, - IN PANSI_STRING AnsiSource, - IN BOOLEAN AllocateDestinationString); -VOID NTAPI -RtlInitAnsiString( - IN OUT PANSI_STRING DestinationString, - IN PCSTR SourceString); -VOID NTAPI -RtlInitUnicodeString( - IN OUT PUNICODE_STRING DestinationString, - IN PCWSTR SourceString); -WCHAR NTAPI -RtlUpcaseUnicodeChar( - IN WCHAR Source); - -LONG WINAPI -RegQueryValueExW( - IN HKEY hKey, - IN LPCWSTR lpValueName, - IN PULONG lpReserved, - OUT PULONG lpType, - OUT PUCHAR lpData, - OUT PSIZE_T lpcbData); - -LONG WINAPI -RegSetValueExW( - IN HKEY hKey, - IN LPCWSTR lpValueName OPTIONAL, - IN ULONG Reserved, - IN ULONG dwType, - IN const UCHAR* lpData, - IN USHORT cbData); - -LONG WINAPI -RegDeleteKeyW( - IN HKEY hKey, - IN LPCWSTR lpSubKey); - -LONG WINAPI -RegDeleteValueW( - IN HKEY hKey, - IN LPCWSTR lpValueName OPTIONAL); - -LONG WINAPI -RegCreateKeyW( - IN HKEY hKey, - IN LPCWSTR lpSubKey, - OUT PHKEY phkResult); - -LONG WINAPI -RegOpenKeyW( - IN HKEY hKey, - IN LPCWSTR lpSubKey, - OUT PHKEY phkResult); - -#define CMLIB_HOST -#include -#include -#include "reginf.h" -#include "cmi.h" -#include "registry.h" -#include "binhive.h" - -#define HIVE_NO_FILE 2 -#define VERIFY_REGISTRY_HIVE(hive) -extern LIST_ENTRY CmiHiveListHead; -#define ABS_VALUE(V) (((V) < 0) ? -(V) : (V)) - -#ifndef max -#define max(a, b) (((a) > (b)) ? (a) : (b)) -#endif - -#ifndef min -#define min(a, b) (((a) < (b)) ? (a) : (b)) -#endif - -#ifdef _WIN32 -#define strncasecmp _strnicmp -#define strcasecmp _stricmp -#else -#include -#endif//_WIN32 - - -/* EOF */ diff --git a/reactos/tools/mkhive/reginf.c b/reactos/tools/mkhive/reginf.c deleted file mode 100644 index 330afc0a4ae..00000000000 --- a/reactos/tools/mkhive/reginf.c +++ /dev/null @@ -1,507 +0,0 @@ -/* - * ReactOS kernel - * Copyright (C) 2003, 2006 ReactOS Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS hive maker - * FILE: tools/mkhive/reginf.h - * PURPOSE: Inf file import code - * PROGRAMMER: Eric Kohl - * Hervé Poussineau - */ - -/* INCLUDES *****************************************************************/ - -#include -#include -#include - -#define NDEBUG -#include "mkhive.h" - -#define FLG_ADDREG_BINVALUETYPE 0x00000001 -#define FLG_ADDREG_NOCLOBBER 0x00000002 -#define FLG_ADDREG_DELVAL 0x00000004 -#define FLG_ADDREG_APPEND 0x00000008 -#define FLG_ADDREG_KEYONLY 0x00000010 -#define FLG_ADDREG_OVERWRITEONLY 0x00000020 -#define FLG_ADDREG_TYPE_SZ 0x00000000 -#define FLG_ADDREG_TYPE_MULTI_SZ 0x00010000 -#define FLG_ADDREG_TYPE_EXPAND_SZ 0x00020000 -#define FLG_ADDREG_TYPE_BINARY (0x00000000 | FLG_ADDREG_BINVALUETYPE) -#define FLG_ADDREG_TYPE_DWORD (0x00010000 | FLG_ADDREG_BINVALUETYPE) -#define FLG_ADDREG_TYPE_NONE (0x00020000 | FLG_ADDREG_BINVALUETYPE) -#define FLG_ADDREG_TYPE_MASK (0xFFFF0000 | FLG_ADDREG_BINVALUETYPE) - - -static const WCHAR HKCR[] = {'H','K','C','R',0}; -static const WCHAR HKCU[] = {'H','K','C','U',0}; -static const WCHAR HKLM[] = {'H','K','L','M',0}; -static const WCHAR HKU[] = {'H','K','U',0}; -static const WCHAR HKR[] = {'H','K','R',0}; - -static const WCHAR HKCRPath[] = {'\\','R','e','g','i','s','t','r','y','\\','M','a','c','h','i','n','e','\\','S','O','F','T','W','A','R','E','\\','C','l','a','s','s','e','s','\\',0}; -static const WCHAR HKCUPath[] = {'\\','R','e','g','i','s','t','r','y','\\','U','s','e','r','\\','.','D','E','F','A','U','L','T','\\',0}; -static const WCHAR HKLMPath[] = {'\\','R','e','g','i','s','t','r','y','\\','M','a','c','h','i','n','e','\\',0}; -static const WCHAR HKUPath[] = {'\\','R','e','g','i','s','t','r','y','\\','U','s','e','r','\\',0}; - -static const WCHAR AddReg[] = {'A','d','d','R','e','g',0}; -static const WCHAR DelReg[] = {'D','e','l','R','e','g',0}; - -/* FUNCTIONS ****************************************************************/ - -static BOOL -GetRootKey (PWCHAR Name) -{ - if (!strcmpiW (Name, HKCR)) - { - strcpyW (Name, HKCRPath); - return TRUE; - } - - if (!strcmpiW (Name, HKCU)) - { - strcpyW (Name, HKCUPath); - return TRUE; - } - - if (!strcmpiW (Name, HKLM)) - { - strcpyW (Name, HKLMPath); - return TRUE; - } - - if (!strcmpiW (Name, HKU)) - { - strcpyW (Name, HKUPath); - return TRUE; - } - -#if 0 - if (!strcmpiW (Name, HKR)) - return FALSE; -#endif - - return FALSE; -} - - -/*********************************************************************** - * AppendMultiSzValue - * - * Append a multisz string to a multisz registry value. - */ -static VOID -AppendMultiSzValue ( - IN HKEY KeyHandle, - IN PWCHAR ValueName, - IN PWCHAR Strings, - IN SIZE_T StringSize) -{ - SIZE_T Size; - ULONG Type; - size_t Total; - PWCHAR Buffer; - PWCHAR p; - size_t len; - LONG Error; - - Error = RegQueryValueExW ( - KeyHandle, - ValueName, - NULL, - &Type, - NULL, - &Size); - if ((Error != ERROR_SUCCESS) || - (Type != REG_MULTI_SZ)) - return; - - Buffer = malloc ((Size + StringSize) * sizeof(WCHAR)); - if (Buffer == NULL) - return; - - Error = RegQueryValueExW ( - KeyHandle, - ValueName, - NULL, - NULL, - (PUCHAR)Buffer, - &Size); - if (Error != ERROR_SUCCESS) - goto done; - - /* compare each string against all the existing ones */ - Total = Size; - while (*Strings != 0) - { - len = strlenW(Strings) + 1; - - for (p = Buffer; *p != 0; p += strlenW(p) + 1) - if (!strcmpiW(p, Strings)) - break; - - if (*p == 0) /* not found, need to append it */ - { - memcpy (p, Strings, len); - p[len] = 0; - Total += len; - } - Strings += len; - } - - if (Total != Size) - { - DPRINT ("setting value %S to %S\n", ValueName, Buffer); - RegSetValueExW ( - KeyHandle, - ValueName, - 0, - REG_MULTI_SZ, - (PUCHAR)Buffer, - (ULONG)Total * sizeof(WCHAR)); - } - -done: - free (Buffer); -} - - -/*********************************************************************** - * do_reg_operation - * - * Perform an add/delete registry operation depending on the flags. - */ -static BOOL -do_reg_operation( - IN HKEY KeyHandle, - IN PWCHAR ValueName, - IN PINFCONTEXT Context, - IN ULONG Flags) -{ - WCHAR EmptyStr = (CHAR)0; - ULONG Type; - ULONG Size; - LONG Error; - - if (Flags & FLG_ADDREG_DELVAL) /* deletion */ - { - if (ValueName) - { - RegDeleteValueW (KeyHandle, ValueName); - } - else - { - RegDeleteKeyW (KeyHandle, NULL); - } - - return TRUE; - } - - if (Flags & FLG_ADDREG_KEYONLY) - return TRUE; - - if (Flags & (FLG_ADDREG_NOCLOBBER | FLG_ADDREG_OVERWRITEONLY)) - { - Error = RegQueryValueExW ( - KeyHandle, - ValueName, - NULL, - NULL, - NULL, - NULL); - if ((Error == ERROR_SUCCESS) && - (Flags & FLG_ADDREG_NOCLOBBER)) - return TRUE; - - if ((Error != ERROR_SUCCESS) && - (Flags & FLG_ADDREG_OVERWRITEONLY)) - return TRUE; - } - - switch (Flags & FLG_ADDREG_TYPE_MASK) - { - case FLG_ADDREG_TYPE_SZ: - Type = REG_SZ; - break; - - case FLG_ADDREG_TYPE_MULTI_SZ: - Type = REG_MULTI_SZ; - break; - - case FLG_ADDREG_TYPE_EXPAND_SZ: - Type = REG_EXPAND_SZ; - break; - - case FLG_ADDREG_TYPE_BINARY: - Type = REG_BINARY; - break; - - case FLG_ADDREG_TYPE_DWORD: - Type = REG_DWORD; - break; - - case FLG_ADDREG_TYPE_NONE: - Type = REG_NONE; - break; - - default: - Type = Flags >> 16; - break; - } - - if (!(Flags & FLG_ADDREG_BINVALUETYPE) || - (Type == REG_DWORD && InfHostGetFieldCount (Context) == 5)) - { - PWCHAR Str = NULL; - - if (Type == REG_MULTI_SZ) - { - if (InfHostGetMultiSzField (Context, 5, NULL, 0, &Size) != 0) - Size = 0; - - if (Size) - { - Str = malloc (Size * sizeof(WCHAR)); - if (Str == NULL) - return FALSE; - - InfHostGetMultiSzField (Context, 5, Str, (ULONG)Size, NULL); - } - - if (Flags & FLG_ADDREG_APPEND) - { - if (Str == NULL) - return TRUE; - - AppendMultiSzValue ( - KeyHandle, - ValueName, - Str, - Size); - - free (Str); - return TRUE; - } - /* else fall through to normal string handling */ - } - else - { - if (InfHostGetStringField (Context, 5, NULL, 0, &Size) != 0) - Size = 0; - - if (Size) - { - Str = malloc (Size * sizeof(WCHAR)); - if (Str == NULL) - return FALSE; - - InfHostGetStringField (Context, 5, Str, (ULONG)Size, NULL); - } - } - - if (Type == REG_DWORD) - { - ULONG dw = Str ? strtoulW (Str, NULL, 0) : 0; - - DPRINT("setting dword %S to %x\n", ValueName, dw); - - RegSetValueExW ( - KeyHandle, - ValueName, - 0, - Type, - (const PUCHAR)&dw, - sizeof(ULONG)); - } - else - { - DPRINT("setting value %S to %S\n", ValueName, Str); - - if (Str) - { - RegSetValueExW ( - KeyHandle, - ValueName, - 0, - Type, - (PVOID)Str, - (ULONG)Size * sizeof(WCHAR)); - } - else - { - RegSetValueExW ( - KeyHandle, - ValueName, - 0, - Type, - (PVOID)&EmptyStr, - (ULONG)sizeof(WCHAR)); - } - } - free (Str); - } - else /* get the binary data */ - { - PUCHAR Data = NULL; - - if (InfHostGetBinaryField (Context, 5, NULL, 0, &Size) != 0) - Size = 0; - - if (Size) - { - Data = malloc (Size); - if (Data == NULL) - return FALSE; - - DPRINT("setting binary data %S len %d\n", ValueName, Size); - InfHostGetBinaryField (Context, 5, Data, Size, NULL); - } - - RegSetValueExW ( - KeyHandle, - ValueName, - 0, - Type, - (PVOID)Data, - (ULONG)Size); - - free (Data); - } - - return TRUE; -} - -/*********************************************************************** - * registry_callback - * - * Called once for each AddReg and DelReg entry in a given section. - */ -static BOOL -registry_callback (HINF hInf, PWCHAR Section, BOOL Delete) -{ - WCHAR Buffer[MAX_INF_STRING_LENGTH]; - PWCHAR ValuePtr; - ULONG Flags; - size_t Length; - - PINFCONTEXT Context = NULL; - HKEY KeyHandle; - BOOL Ok; - - - Ok = InfHostFindFirstLine (hInf, Section, NULL, &Context) == 0; - if (!Ok) - return TRUE; /* Don't fail if the section isn't present */ - - for (;Ok; Ok = (InfHostFindNextLine (Context, Context) == 0)) - { - /* get root */ - if (InfHostGetStringField (Context, 1, Buffer, MAX_INF_STRING_LENGTH, NULL) != 0) - continue; - if (!GetRootKey (Buffer)) - continue; - - /* get key */ - Length = strlenW (Buffer); - if (InfHostGetStringField (Context, 2, Buffer + Length, MAX_INF_STRING_LENGTH - (ULONG)Length, NULL) != 0) - *Buffer = 0; - - DPRINT("KeyName: <%S>\n", Buffer); - - if (Delete) - { - Flags = FLG_ADDREG_DELVAL; - } - else - { - /* get flags */ - if (InfHostGetIntField (Context, 4, &Flags) != 0) - Flags = 0; - } - - DPRINT("Flags: 0x%x\n", Flags); - - if (Delete || (Flags & FLG_ADDREG_OVERWRITEONLY)) - { - if (RegOpenKeyW (NULL, Buffer, &KeyHandle) != ERROR_SUCCESS) - { - DPRINT("RegOpenKey(%S) failed\n", Buffer); - continue; /* ignore if it doesn't exist */ - } - } - else - { - if (RegCreateKeyW (NULL, Buffer, &KeyHandle) != ERROR_SUCCESS) - { - DPRINT("RegCreateKey(%S) failed\n", Buffer); - continue; - } - } - - /* get value name */ - if (InfHostGetStringField (Context, 3, Buffer, MAX_INF_STRING_LENGTH, NULL) == 0) - { - ValuePtr = Buffer; - } - else - { - ValuePtr = NULL; - } - - /* and now do it */ - if (!do_reg_operation (KeyHandle, ValuePtr, Context, Flags)) - { - return FALSE; - } - } - - InfHostFreeContext(Context); - - return TRUE; -} - - -BOOL -ImportRegistryFile(PCHAR FileName) -{ - HINF hInf; - ULONG ErrorLine; - - /* Load inf file from install media. */ - if (InfHostOpenFile(&hInf, FileName, 0, &ErrorLine) != 0) - { - DPRINT1 ("InfHostOpenFile(%s) failed\n", FileName); - return FALSE; - } - - if (!registry_callback (hInf, (PWCHAR)DelReg, TRUE)) - { - DPRINT1 ("registry_callback() for DelReg failed\n"); - } - - if (!registry_callback (hInf, (PWCHAR)AddReg, FALSE)) - { - DPRINT1 ("registry_callback() for AddReg failed\n"); - } - - InfHostCloseFile (hInf); - - return TRUE; -} - -/* EOF */ diff --git a/reactos/tools/mkhive/reginf.h b/reactos/tools/mkhive/reginf.h deleted file mode 100644 index f84f6ed464b..00000000000 --- a/reactos/tools/mkhive/reginf.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * ReactOS kernel - * Copyright (C) 2006 ReactOS Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS hive maker - * FILE: tools/mkhive/reginf.h - * PURPOSE: Inf file import code - * PROGRAMMER: Hervé Poussineau - */ - -#pragma once - -BOOL -ImportRegistryFile(PCHAR Filename); - -/* EOF */ diff --git a/reactos/tools/mkhive/registry.c b/reactos/tools/mkhive/registry.c deleted file mode 100644 index b232ef957d0..00000000000 --- a/reactos/tools/mkhive/registry.c +++ /dev/null @@ -1,698 +0,0 @@ -/* - * ReactOS kernel - * Copyright (C) 2006 ReactOS Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS hive maker - * FILE: tools/mkhive/registry.c - * PURPOSE: Registry code - * PROGRAMMER: Hervé Poussineau - */ - -/* - * TODO: - * - Implement RegDeleteKeyW() - * - Implement RegEnumValue() - * - Implement RegQueryValueExW() - */ - -#include -#include -#include - -#define NDEBUG -#include "mkhive.h" - -#define REG_DATA_SIZE_MASK 0x7FFFFFFF -#define REG_DATA_IN_OFFSET 0x80000000 - -static CMHIVE RootHive; -static MEMKEY RootKey; -CMHIVE DefaultHive; /* \Registry\User\.DEFAULT */ -CMHIVE SamHive; /* \Registry\Machine\SAM */ -CMHIVE SecurityHive; /* \Registry\Machine\SECURITY */ -CMHIVE SoftwareHive; /* \Registry\Machine\SOFTWARE */ -CMHIVE SystemHive; /* \Registry\Machine\SYSTEM */ - -static MEMKEY -CreateInMemoryStructure( - IN PCMHIVE RegistryHive, - IN HCELL_INDEX KeyCellOffset, - IN PCUNICODE_STRING KeyName) -{ - MEMKEY Key; - - Key = (MEMKEY) malloc (sizeof(KEY)); - if (!Key) - return NULL; - - InitializeListHead (&Key->SubKeyList); - InitializeListHead (&Key->ValueList); - InitializeListHead (&Key->KeyList); - - Key->SubKeyCount = 0; - Key->ValueCount = 0; - - Key->NameSize = KeyName->Length; - /* FIXME: It's not enough to allocate this way, because later - this memory gets overwritten with bigger names */ - Key->Name = malloc (Key->NameSize); - if (!Key->Name) - return NULL; - memcpy(Key->Name, KeyName->Buffer, KeyName->Length); - - Key->DataType = 0; - Key->DataSize = 0; - Key->Data = NULL; - - Key->RegistryHive = RegistryHive; - Key->KeyCellOffset = KeyCellOffset; - Key->KeyCell = (PCM_KEY_NODE)HvGetCell (&RegistryHive->Hive, Key->KeyCellOffset); - if (!Key->KeyCell) - { - free(Key->Name); - free(Key); - return NULL; - } - Key->LinkedKey = NULL; - return Key; -} - -static LONG -RegpOpenOrCreateKey( - IN HKEY hParentKey, - IN PCWSTR KeyName, - IN BOOL AllowCreation, - OUT PHKEY Key) -{ - PWSTR LocalKeyName; - PWSTR End; - UNICODE_STRING KeyString; - NTSTATUS Status; - MEMKEY ParentKey; - MEMKEY CurrentKey; - PLIST_ENTRY Ptr; - PCM_KEY_NODE SubKeyCell; - HCELL_INDEX BlockOffset; - - DPRINT("RegpCreateOpenKey('%S')\n", KeyName); - - if (*KeyName == L'\\') - { - KeyName++; - ParentKey = RootKey; - } - else if (hParentKey == NULL) - { - ParentKey = RootKey; - } - else - { - ParentKey = HKEY_TO_MEMKEY(RootKey); - } - - LocalKeyName = (PWSTR)KeyName; - for (;;) - { - End = (PWSTR)strchrW(LocalKeyName, '\\'); - if (End) - { - KeyString.Buffer = LocalKeyName; - KeyString.Length = KeyString.MaximumLength = - (USHORT)((ULONG_PTR)End - (ULONG_PTR)LocalKeyName); - } - else - RtlInitUnicodeString(&KeyString, LocalKeyName); - - /* Redirect from 'CurrentControlSet' to 'ControlSet001' */ - if (!strncmpW(LocalKeyName, L"CurrentControlSet", 17) && - ParentKey->NameSize == 12 && - !memcmp(ParentKey->Name, L"SYSTEM", 12)) - RtlInitUnicodeString(&KeyString, L"ControlSet001"); - - /* Check subkey in memory structure */ - Ptr = ParentKey->SubKeyList.Flink; - while (Ptr != &ParentKey->SubKeyList) - { - CurrentKey = CONTAINING_RECORD(Ptr, KEY, KeyList); - if (CurrentKey->NameSize == KeyString.Length - && memcmp(CurrentKey->Name, KeyString.Buffer, KeyString.Length) == 0) - { - goto nextsubkey; - } - - Ptr = Ptr->Flink; - } - - Status = CmiScanForSubKey( - ParentKey->RegistryHive, - ParentKey->KeyCell, - &KeyString, - OBJ_CASE_INSENSITIVE, - &SubKeyCell, - &BlockOffset); - if (AllowCreation && Status == STATUS_OBJECT_NAME_NOT_FOUND) - { - Status = CmiAddSubKey( - ParentKey->RegistryHive, - ParentKey->KeyCell, - ParentKey->KeyCellOffset, - &KeyString, - 0, - &SubKeyCell, - &BlockOffset); - } - if (!NT_SUCCESS(Status)) - return ERROR_UNSUCCESSFUL; - - /* Now, SubKeyCell/BlockOffset are valid */ - CurrentKey = CreateInMemoryStructure( - ParentKey->RegistryHive, - BlockOffset, - &KeyString); - if (!CurrentKey) - return ERROR_OUTOFMEMORY; - - /* Add CurrentKey in ParentKey */ - InsertTailList(&ParentKey->SubKeyList, &CurrentKey->KeyList); - ParentKey->SubKeyCount++; - -nextsubkey: - ParentKey = CurrentKey; - if (End) - LocalKeyName = End + 1; - else - break; - } - - *Key = MEMKEY_TO_HKEY(ParentKey); - - return ERROR_SUCCESS; -} - -LONG WINAPI -RegCreateKeyW( - IN HKEY hKey, - IN LPCWSTR lpSubKey, - OUT PHKEY phkResult) -{ - return RegpOpenOrCreateKey(hKey, lpSubKey, TRUE, phkResult); -} - -static PWSTR -MultiByteToWideChar( - IN PCSTR MultiByteString) -{ - ANSI_STRING Source; - UNICODE_STRING Destination; - NTSTATUS Status; - - RtlInitAnsiString(&Source, MultiByteString); - Status = RtlAnsiStringToUnicodeString(&Destination, &Source, TRUE); - if (!NT_SUCCESS(Status)) - return NULL; - return Destination.Buffer; -} - -LONG WINAPI -RegCreateKeyA( - IN HKEY hKey, - IN LPCSTR lpSubKey, - OUT PHKEY phkResult) -{ - PWSTR lpSubKeyW; - LONG rc; - - lpSubKeyW = MultiByteToWideChar(lpSubKey); - if (!lpSubKeyW) - return ERROR_OUTOFMEMORY; - - rc = RegCreateKeyW(hKey, lpSubKeyW, phkResult); - free(lpSubKeyW); - return rc; -} - -LONG WINAPI -RegDeleteKeyW( - IN HKEY hKey, - IN LPCWSTR lpSubKey) -{ - DPRINT1("FIXME: implement RegDeleteKeyW!\n"); - return ERROR_SUCCESS; -} - -LONG WINAPI -RegDeleteKeyA( - IN HKEY hKey, - IN LPCSTR lpSubKey) -{ - PWSTR lpSubKeyW = NULL; - LONG rc; - - if (lpSubKey != NULL && strchr(lpSubKey, '\\') != NULL) - return ERROR_INVALID_PARAMETER; - - if (lpSubKey) - { - lpSubKeyW = MultiByteToWideChar(lpSubKey); - if (!lpSubKeyW) - return ERROR_OUTOFMEMORY; - } - - rc = RegDeleteKeyW(hKey, lpSubKeyW); - - if (lpSubKey) - free(lpSubKeyW); - - return rc; -} - -LONG WINAPI -RegOpenKeyW( - IN HKEY hKey, - IN LPCWSTR lpSubKey, - OUT PHKEY phkResult) -{ - return RegpOpenOrCreateKey(hKey, lpSubKey, FALSE, phkResult); -} - -LONG WINAPI -RegOpenKeyA( - IN HKEY hKey, - IN LPCSTR lpSubKey, - OUT PHKEY phkResult) -{ - PWSTR lpSubKeyW; - LONG rc; - - lpSubKeyW = MultiByteToWideChar(lpSubKey); - if (!lpSubKeyW) - return ERROR_OUTOFMEMORY; - - rc = RegOpenKeyW(hKey, lpSubKeyW, phkResult); - free(lpSubKeyW); - return rc; -} - -static LONG -RegpOpenOrCreateValue( - IN HKEY hKey, - IN LPCWSTR ValueName, - IN BOOL AllowCreation, - OUT PCM_KEY_VALUE *ValueCell, - OUT PHCELL_INDEX ValueCellOffset) -{ - MEMKEY ParentKey; - UNICODE_STRING ValueString; - NTSTATUS Status; - - ParentKey = HKEY_TO_MEMKEY(hKey); - RtlInitUnicodeString(&ValueString, ValueName); - - Status = CmiScanForValueKey( - ParentKey->RegistryHive, - ParentKey->KeyCell, - &ValueString, - ValueCell, - ValueCellOffset); - if (AllowCreation && Status == STATUS_OBJECT_NAME_NOT_FOUND) - { - Status = CmiAddValueKey( - ParentKey->RegistryHive, - ParentKey->KeyCell, - ParentKey->KeyCellOffset, - &ValueString, - ValueCell, - ValueCellOffset); - } - if (!NT_SUCCESS(Status)) - return ERROR_UNSUCCESSFUL; - return ERROR_SUCCESS; -} - -LONG WINAPI -RegSetValueExW( - IN HKEY hKey, - IN LPCWSTR lpValueName OPTIONAL, - IN ULONG Reserved, - IN ULONG dwType, - IN const UCHAR* lpData, - IN USHORT cbData) -{ - MEMKEY Key, DestKey; - PHKEY phKey; - PCM_KEY_VALUE ValueCell; - HCELL_INDEX ValueCellOffset; - PVOID DataCell; - LONG DataCellSize; - NTSTATUS Status; - - if (dwType == REG_LINK) - { - /* Special handling of registry links */ - if (cbData != sizeof(PVOID)) - return STATUS_INVALID_PARAMETER; - phKey = (PHKEY)lpData; - Key = HKEY_TO_MEMKEY(hKey); - DestKey = HKEY_TO_MEMKEY(*phKey); - - /* Create the link in memory */ - Key->DataType = REG_LINK; - Key->LinkedKey = DestKey; - - /* Create the link in registry hive (if applicable) */ - if (Key->RegistryHive != DestKey->RegistryHive) - return STATUS_SUCCESS; - DPRINT1("Save link to registry\n"); - return STATUS_NOT_IMPLEMENTED; - } - - if ((cbData & REG_DATA_SIZE_MASK) != cbData) - return STATUS_UNSUCCESSFUL; - - Key = HKEY_TO_MEMKEY(hKey); - - Status = RegpOpenOrCreateValue(hKey, lpValueName, TRUE, &ValueCell, &ValueCellOffset); - if (!NT_SUCCESS(Status)) - return ERROR_UNSUCCESSFUL; - - /* Get size of the allocated cellule (if any) */ - if (!(ValueCell->DataLength & REG_DATA_IN_OFFSET) && - (ValueCell->DataLength & REG_DATA_SIZE_MASK) != 0) - { - DataCell = HvGetCell(&Key->RegistryHive->Hive, ValueCell->Data); - if (!DataCell) - return ERROR_UNSUCCESSFUL; - DataCellSize = -HvGetCellSize(&Key->RegistryHive->Hive, DataCell); - } - else - { - DataCell = NULL; - DataCellSize = 0; - } - - if (cbData <= sizeof(HCELL_INDEX)) - { - /* If data size <= sizeof(HCELL_INDEX) then store data in the data offset */ - DPRINT("ValueCell->DataLength %u\n", ValueCell->DataLength); - if (DataCell) - HvFreeCell(&Key->RegistryHive->Hive, ValueCell->Data); - - RtlCopyMemory(&ValueCell->Data, lpData, cbData); - ValueCell->DataLength = (ULONG)(cbData | REG_DATA_IN_OFFSET); - ValueCell->Type = dwType; - HvMarkCellDirty(&Key->RegistryHive->Hive, ValueCellOffset, FALSE); - } - else - { - if (cbData > (SIZE_T)DataCellSize) - { - /* New data size is larger than the current, destroy current - * data block and allocate a new one. */ - HCELL_INDEX NewOffset; - - DPRINT("ValueCell->DataLength %u\n", ValueCell->DataLength); - - NewOffset = HvAllocateCell(&Key->RegistryHive->Hive, cbData, Stable, HCELL_NIL); - if (NewOffset == HCELL_NIL) - { - DPRINT("HvAllocateCell() failed with status 0x%08x\n", Status); - return ERROR_UNSUCCESSFUL; - } - - if (DataCell) - HvFreeCell(&Key->RegistryHive->Hive, ValueCell->Data); - - ValueCell->Data = NewOffset; - DataCell = (PVOID)HvGetCell(&Key->RegistryHive->Hive, NewOffset); - } - - /* Copy new contents to cellule */ - RtlCopyMemory(DataCell, lpData, cbData); - ValueCell->DataLength = (ULONG)(cbData & REG_DATA_SIZE_MASK); - ValueCell->Type = dwType; - HvMarkCellDirty(&Key->RegistryHive->Hive, ValueCell->Data, FALSE); - HvMarkCellDirty(&Key->RegistryHive->Hive, ValueCellOffset, FALSE); - } - - if (cbData > Key->KeyCell->MaxValueDataLen) - Key->KeyCell->MaxValueDataLen = cbData; - - HvMarkCellDirty(&Key->RegistryHive->Hive, Key->KeyCellOffset, FALSE); - - DPRINT("Return status 0x%08x\n", Status); - return Status; -} - -LONG WINAPI -RegSetValueExA( - IN HKEY hKey, - IN LPCSTR lpValueName OPTIONAL, - IN ULONG Reserved, - IN ULONG dwType, - IN const UCHAR* lpData, - IN ULONG cbData) -{ - LPWSTR lpValueNameW = NULL; - const UCHAR* lpDataW; - USHORT cbDataW; - LONG rc = ERROR_SUCCESS; - - DPRINT("RegSetValueA(%s)\n", lpValueName); - if (lpValueName) - { - lpValueNameW = MultiByteToWideChar(lpValueName); - if (!lpValueNameW) - return ERROR_OUTOFMEMORY; - } - - if ((dwType == REG_SZ || dwType == REG_EXPAND_SZ || dwType == REG_MULTI_SZ) - && cbData != 0) - { - ANSI_STRING AnsiString; - UNICODE_STRING Data; - - if (lpData[cbData - 1] != '\0') - cbData++; - RtlInitAnsiString(&AnsiString, NULL); - AnsiString.Buffer = (PSTR)lpData; - AnsiString.Length = (USHORT)cbData - 1; - AnsiString.MaximumLength = (USHORT)cbData; - RtlAnsiStringToUnicodeString (&Data, &AnsiString, TRUE); - lpDataW = (const UCHAR*)Data.Buffer; - cbDataW = Data.MaximumLength; - } - else - { - lpDataW = lpData; - cbDataW = (USHORT)cbData; - } - - if (rc == ERROR_SUCCESS) - rc = RegSetValueExW(hKey, lpValueNameW, 0, dwType, lpDataW, cbDataW); - if (lpValueNameW) - free(lpValueNameW); - if (lpData != lpDataW) - free((PVOID)lpDataW); - return rc; -} - -LONG WINAPI -RegQueryValueExW( - IN HKEY hKey, - IN LPCWSTR lpValueName, - IN PULONG lpReserved, - OUT PULONG lpType, - OUT PUCHAR lpData, - OUT PSIZE_T lpcbData) -{ - //ParentKey = HKEY_TO_MEMKEY(RootKey); - PCM_KEY_VALUE ValueCell; - HCELL_INDEX ValueCellOffset; - LONG rc; - - rc = RegpOpenOrCreateValue( - hKey, - lpValueName, - FALSE, - &ValueCell, - &ValueCellOffset); - if (rc != ERROR_SUCCESS) - return rc; - - DPRINT1("RegQueryValueExW(%S) not implemented\n", lpValueName); - /* ValueCell and ValueCellOffset are valid */ - - return ERROR_UNSUCCESSFUL; -} - -LONG WINAPI -RegQueryValueExA( - IN HKEY hKey, - IN LPCSTR lpValueName, - IN PULONG lpReserved, - OUT PULONG lpType, - OUT PUCHAR lpData, - OUT PSIZE_T lpcbData) -{ - LPWSTR lpValueNameW = NULL; - LONG rc; - - if (lpValueName) - { - lpValueNameW = MultiByteToWideChar(lpValueName); - if (!lpValueNameW) - return ERROR_OUTOFMEMORY; - } - - rc = RegQueryValueExW(hKey, lpValueNameW, lpReserved, lpType, lpData, lpcbData); - if (lpValueNameW) - free(lpValueNameW); - return ERROR_UNSUCCESSFUL; -} - -LONG WINAPI -RegDeleteValueW( - IN HKEY hKey, - IN LPCWSTR lpValueName OPTIONAL) -{ - DPRINT1("RegDeleteValueW() unimplemented\n"); - return ERROR_UNSUCCESSFUL; -} - -LONG WINAPI -RegDeleteValueA( - IN HKEY hKey, - IN LPCSTR lpValueName OPTIONAL) -{ - LPWSTR lpValueNameW; - LONG rc; - - if (lpValueName) - { - lpValueNameW = MultiByteToWideChar(lpValueName); - if (!lpValueNameW) - return ERROR_OUTOFMEMORY; - rc = RegDeleteValueW(hKey, lpValueNameW); - free(lpValueNameW); - } - else - rc = RegDeleteValueW(hKey, NULL); - return rc; -} - -static BOOL -ConnectRegistry( - IN HKEY RootKey, - IN PCMHIVE HiveToConnect, - IN LPCWSTR Path) -{ - NTSTATUS Status; - MEMKEY NewKey; - LONG rc; - - Status = CmiInitializeTempHive(HiveToConnect); - if (!NT_SUCCESS(Status)) - { - DPRINT1("CmiInitializeTempHive() failed with status 0x%08x\n", Status); - return FALSE; - } - - /* Create key */ - rc = RegCreateKeyW( - RootKey, - Path, - (PHKEY)&NewKey); - if (rc != ERROR_SUCCESS) - return FALSE; - - NewKey->RegistryHive = HiveToConnect; - NewKey->KeyCellOffset = HiveToConnect->Hive.BaseBlock->RootCell; - NewKey->KeyCell = (PCM_KEY_NODE)HvGetCell (&HiveToConnect->Hive, NewKey->KeyCellOffset); - return TRUE; -} - -LIST_ENTRY CmiHiveListHead; - -VOID -RegInitializeRegistry(VOID) -{ - UNICODE_STRING RootKeyName = RTL_CONSTANT_STRING(L"\\"); - NTSTATUS Status; - HKEY ControlSetKey; - - InitializeListHead(&CmiHiveListHead); - - Status = CmiInitializeTempHive(&RootHive); - if (!NT_SUCCESS(Status)) - { - DPRINT1("CmiInitializeTempHive() failed with status 0x%08x\n", Status); - return; - } - - RootKey = CreateInMemoryStructure( - &RootHive, - RootHive.Hive.BaseBlock->RootCell, - &RootKeyName); - - /* Create DEFAULT key */ - ConnectRegistry( - NULL, - &DefaultHive, - L"Registry\\User\\.DEFAULT"); - - /* Create SAM key */ - ConnectRegistry( - NULL, - &SamHive, - L"Registry\\Machine\\SAM"); - - /* Create SECURITY key */ - ConnectRegistry( - NULL, - &SecurityHive, - L"Registry\\Machine\\SECURITY"); - - /* Create SOFTWARE key */ - ConnectRegistry( - NULL, - &SoftwareHive, - L"Registry\\Machine\\SOFTWARE"); - - /* Create SYSTEM key */ - ConnectRegistry( - NULL, - &SystemHive, - L"Registry\\Machine\\SYSTEM"); - - /* Create 'ControlSet001' key */ - RegCreateKeyW( - NULL, - L"Registry\\Machine\\SYSTEM\\ControlSet001", - &ControlSetKey); -} - -VOID -RegShutdownRegistry(VOID) -{ - /* FIXME: clean up the complete hive */ - - free(RootKey->Name); - free(RootKey); -} - -/* EOF */ diff --git a/reactos/tools/mkhive/registry.h b/reactos/tools/mkhive/registry.h deleted file mode 100644 index 40df369b54d..00000000000 --- a/reactos/tools/mkhive/registry.h +++ /dev/null @@ -1,127 +0,0 @@ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS hive maker - * FILE: tools/mkhive/registry.h - * PURPOSE: Registry code - */ - -#pragma once - -typedef struct _REG_VALUE -{ - LIST_ENTRY ValueList; - - /* value name */ - ULONG NameSize; - PCHAR Name; - - /* value data */ - ULONG DataType; - ULONG DataSize; - PCHAR Data; -} VALUE, *PVALUE; - -typedef struct _REG_KEY -{ - LIST_ENTRY KeyList; - LIST_ENTRY SubKeyList; - LIST_ENTRY ValueList; - - ULONG SubKeyCount; - ULONG ValueCount; - - ULONG NameSize; - PWCHAR Name; - - /* default data */ - ULONG DataType; - ULONG DataSize; - PCHAR Data; - - /* Information on hard disk structure */ - HCELL_INDEX KeyCellOffset; - PCM_KEY_NODE KeyCell; - PCMHIVE RegistryHive; - - /* Used when linking to another key */ - struct _REG_KEY* LinkedKey; -} KEY, *FRLDRHKEY, **PFRLDRHKEY, *MEMKEY, **PMEMKEY; - -#define HKEY_TO_MEMKEY(hKey) ((MEMKEY)(hKey)) -#define MEMKEY_TO_HKEY(memKey) ((HKEY)(memKey)) - -extern CMHIVE DefaultHive; /* \Registry\User\.DEFAULT */ -extern CMHIVE SamHive; /* \Registry\Machine\SAM */ -extern CMHIVE SecurityHive; /* \Registry\Machine\SECURITY */ -extern CMHIVE SoftwareHive; /* \Registry\Machine\SOFTWARE */ -extern CMHIVE SystemHive; /* \Registry\Machine\SYSTEM */ - -#define ERROR_SUCCESS 0L -#define ERROR_UNSUCCESSFUL 1L -#define ERROR_OUTOFMEMORY 14L -#define ERROR_INVALID_PARAMETER 87L -#define ERROR_MORE_DATA 234L -#define ERROR_NO_MORE_ITEMS 259L - -#define REG_NONE 0 -#define REG_SZ 1 -#define REG_EXPAND_SZ 2 -#define REG_BINARY 3 -#define REG_DWORD 4 -#define REG_DWORD_BIG_ENDIAN 5 -#define REG_DWORD_LITTLE_ENDIAN 4 -#define REG_LINK 6 -#define REG_MULTI_SZ 7 -#define REG_RESOURCE_LIST 8 -#define REG_FULL_RESOURCE_DESCRIPTOR 9 -#define REG_RESOURCE_REQUIREMENTS_LIST 10 - -LONG WINAPI -RegCreateKeyA( - IN HKEY hKey, - IN LPCSTR lpSubKey, - OUT PHKEY phkResult); - -LONG WINAPI -RegOpenKeyA( - IN HKEY hKey, - IN LPCSTR lpSubKey, - OUT PHKEY phkResult); - -LONG WINAPI -RegQueryValueExA(HKEY Key, - LPCSTR ValueName, - PULONG Reserved, - PULONG Type, - PUCHAR Data, - PSIZE_T DataSize); - -LONG WINAPI -RegSetValueExA( - IN HKEY hKey, - IN LPCSTR lpValueName OPTIONAL, - ULONG Reserved, - IN ULONG dwType, - IN const UCHAR* lpData, - IN ULONG cbData); - -LONG WINAPI -RegDeleteValueA(HKEY Key, - LPCSTR ValueName); - -LONG WINAPI -RegDeleteKeyA(HKEY Key, - LPCSTR Name); - -USHORT -RegGetSubKeyCount (HKEY Key); - -ULONG -RegGetValueCount (HKEY Key); - -VOID -RegInitializeRegistry(VOID); - -VOID -RegShutdownRegistry(VOID); - -/* EOF */ diff --git a/reactos/tools/mkhive/rtl.c b/reactos/tools/mkhive/rtl.c deleted file mode 100644 index 4a186e253f6..00000000000 --- a/reactos/tools/mkhive/rtl.c +++ /dev/null @@ -1,209 +0,0 @@ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS hive maker - * FILE: tools/mkhive/rtl.c - * PURPOSE: Runtime Library - */ - -#include -#include - -/* gcc defaults to cdecl */ -#if defined(__GNUC__) -#undef __cdecl -#define __cdecl -#endif - -#include "mkhive.h" -#include - -/* - * @implemented - * - * NOTES - * If source is NULL the length of source is assumed to be 0. - */ -VOID NTAPI -RtlInitAnsiString( - IN OUT PANSI_STRING DestinationString, - IN PCSTR SourceString) -{ - SIZE_T DestSize; - - if(SourceString) - { - DestSize = strlen(SourceString); - DestinationString->Length = (USHORT)DestSize; - DestinationString->MaximumLength = (USHORT)DestSize + sizeof(CHAR); - } - else - { - DestinationString->Length = 0; - DestinationString->MaximumLength = 0; - } - - DestinationString->Buffer = (PCHAR)SourceString; -} - -/* - * @implemented - * - * NOTES - * If source is NULL the length of source is assumed to be 0. - */ -VOID NTAPI -RtlInitUnicodeString( - IN OUT PUNICODE_STRING DestinationString, - IN PCWSTR SourceString) -{ - SIZE_T DestSize; - - if(SourceString) - { - DestSize = strlenW(SourceString) * sizeof(WCHAR); - DestinationString->Length = (USHORT)DestSize; - DestinationString->MaximumLength = (USHORT)DestSize + sizeof(WCHAR); - } - else - { - DestinationString->Length = 0; - DestinationString->MaximumLength = 0; - } - - DestinationString->Buffer = (PWCHAR)SourceString; -} - -NTSTATUS NTAPI -RtlAnsiStringToUnicodeString( - IN OUT PUNICODE_STRING UniDest, - IN PANSI_STRING AnsiSource, - IN BOOLEAN AllocateDestinationString) -{ - ULONG Length; - PUCHAR WideString; - USHORT i; - - Length = AnsiSource->Length * sizeof(WCHAR); - if (Length > MAXUSHORT) return STATUS_INVALID_PARAMETER_2; - UniDest->Length = (USHORT)Length; - - if (AllocateDestinationString) - { - UniDest->MaximumLength = (USHORT)Length + sizeof(WCHAR); - UniDest->Buffer = (PWSTR) malloc(UniDest->MaximumLength); - if (!UniDest->Buffer) - return STATUS_NO_MEMORY; - } - else if (UniDest->Length >= UniDest->MaximumLength) - { - return STATUS_BUFFER_OVERFLOW; - } - - WideString = (PUCHAR)UniDest->Buffer; - for (i = 0; i <= AnsiSource->Length; i++) - { - WideString[2 * i + 0] = AnsiSource->Buffer[i]; - WideString[2 * i + 1] = 0; - } - return STATUS_SUCCESS; -} - -WCHAR NTAPI -RtlUpcaseUnicodeChar( - IN WCHAR Source) -{ - USHORT Offset; - - if (Source < 'a') - return Source; - - if (Source <= 'z') - return (Source - ('a' - 'A')); - - Offset = 0; - - return Source + (SHORT)Offset; -} - -VOID NTAPI -KeQuerySystemTime( - OUT PLARGE_INTEGER CurrentTime) -{ - CurrentTime->QuadPart = 0; -} - -PVOID NTAPI -ExAllocatePool( - IN POOL_TYPE PoolType, - IN SIZE_T NumberOfBytes) -{ - return (PVOID) malloc(NumberOfBytes); -} - -VOID NTAPI -ExFreePool( - IN PVOID p) -{ - free(p); -} - -ULONG -__cdecl -DbgPrint( - IN CHAR *Format, - IN ...) -{ - va_list ap; - va_start(ap, Format); - vprintf(Format, ap); - va_end(ap); - - return 0; -} - -VOID -NTAPI -RtlAssert(PVOID FailedAssertion, - PVOID FileName, - ULONG LineNumber, - PCHAR Message) -{ - if (NULL != Message) - { - DbgPrint("Assertion \'%s\' failed at %s line %d: %s\n", - (PCHAR)FailedAssertion, - (PCHAR)FileName, - LineNumber, - Message); - } - else - { - DbgPrint("Assertion \'%s\' failed at %s line %d\n", - (PCHAR)FailedAssertion, - (PCHAR)FileName, - LineNumber); - } - - //DbgBreakPoint(); -} - -unsigned char BitScanForward(ULONG * Index, unsigned long Mask) -{ - *Index = 0; - while (Mask && ((Mask & 1) == 0)) - { - Mask >>= 1; - ++(*Index); - } - return Mask ? 1 : 0; -} - -unsigned char BitScanReverse(ULONG * const Index, unsigned long Mask) -{ - *Index = 0; - while (Mask && ((Mask & (1 << 31)) == 0)) - { - Mask <<= 1; - ++(*Index); - } - return Mask ? 1 : 0; -} diff --git a/reactos/tools/mkshelllink/CMakeLists.txt b/reactos/tools/mkshelllink/CMakeLists.txt deleted file mode 100644 index 1f4814cd595..00000000000 --- a/reactos/tools/mkshelllink/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ - -add_executable(mkshelllink mkshelllink.c) diff --git a/reactos/tools/mkshelllink/mkshelllink.c b/reactos/tools/mkshelllink/mkshelllink.c deleted file mode 100644 index 7f5cda40875..00000000000 --- a/reactos/tools/mkshelllink/mkshelllink.c +++ /dev/null @@ -1,354 +0,0 @@ -/* COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS Shell Link maker - * FILE: tools/mkshelllink/mkshelllink.c - * PURPOSE: Shell Link maker - * PROGRAMMER: Rafal Harabien - */ - -#include -#include -#include -#ifndef _MSC_VER -#include -#else -typedef unsigned __int8 uint8_t; -typedef unsigned __int16 uint16_t; -typedef unsigned __int32 uint32_t; -#endif - -#define SW_SHOWNORMAL 1 -#define SW_SHOWMINNOACTIVE 7 - -typedef struct _GUID { - uint32_t Data1; - uint16_t Data2; - uint16_t Data3; - uint8_t Data4[8]; -} GUID; - -typedef struct _FILETIME { - uint32_t dwLowDateTime; - uint32_t dwHighDateTime; -} FILETIME, *PFILETIME; - -#define DEFINE_GUID2(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) const GUID name = { l,w1,w2,{ b1,b2,b3,b4,b5,b6,b7,b8 } } -DEFINE_GUID2(CLSID_ShellLink,0x00021401L,0,0,0xC0,0,0,0,0,0,0,0x46); -DEFINE_GUID2(CLSID_MyComputer,0x20D04FE0,0x3AEA,0x1069,0xA2,0xD8,0x08,0x00,0x2B,0x30,0x30,0x9D); - -#define LINK_ID_LIST 0x01 -#define LINK_FILE 0x02 -#define LINK_DESCRIPTION 0x04 -#define LINK_RELATIVE_PATH 0x08 -#define LINK_WORKING_DIR 0x10 -#define LINK_CMD_LINE_ARGS 0x20 -#define LINK_ICON 0x40 -#define LINK_UNICODE 0x80 - -#define LOCATOR_LOCAL 0x1 -#define LOCATOR_NETWORK 0x2 - -#pragma pack(push, 1) - -/* Specification: http://ithreats.files.wordpress.com/2009/05/lnk_the_windows_shortcut_file_format.pdf */ - -typedef struct _LNK_HEADER -{ - uint32_t Signature; - GUID Guid; - uint32_t Flags; - uint32_t Attributes; - FILETIME CreationTime; - FILETIME ModificationTime; - FILETIME LastAccessTime; - uint32_t FileSize; - uint32_t IconNr; - uint32_t Show; - uint32_t Hotkey; - uint32_t Unknown; - uint32_t Unknown2; -} LNK_HEADER; - -typedef struct _LNK_LOCATOR_INFO -{ - uint32_t Size; - uint32_t DataOffset; - uint32_t Flags; - uint32_t LocalVolumeInfoOffset; - uint32_t LocalBasePathnameOffset; - uint32_t NetworkVolumeInfoOffset; - uint32_t RemainingPathnameOffset; - char Data[0]; -} LNK_LOCATOR_INFO; - -typedef struct _LNK_LOCAL_VOLUME_INFO -{ - uint32_t Size; - uint32_t VolumeType; /* See GetDriveType */ - uint32_t SerialNumber; - uint32_t VolumeNameOffset; - char VolumeLabel[0]; -} LNK_LOCAL_VOLUME_INFO; - -#define PT_GUID 0x1F -#define PT_DRIVE1 0x2F -#define PT_FOLDER 0x31 -#define PT_VALUE 0x32 - -typedef struct _ID_LIST_FILE -{ - uint16_t Size; - uint8_t Type; - uint8_t dummy; - uint32_t dwFileSize; - uint16_t uFileDate; - uint16_t uFileTime; - uint16_t uFileAttribs; - char szName[0]; -} ID_LIST_FILE; - -typedef struct _ID_LIST_GUID -{ - uint16_t Size; - uint8_t Type; - uint8_t dummy; - GUID guid; -} ID_LIST_GUID; - -typedef struct _ID_LIST_DRIVE -{ - uint16_t Size; - uint8_t Type; - char szDriveName[20]; - uint16_t unknown; -} ID_LIST_DRIVE; - -#pragma pack(pop) - -int main(int argc, const char *argv[]) -{ - unsigned i; - const char *pszOutputPath = "shortcut.lnk"; - const char *pszTarget = NULL; - const char *pszDescription = "Description"; - const char *pszWorkingDir = NULL; - const char *pszCmdLineArgs = NULL; - const char *pszIcon = NULL; - int IconNr = 0; - GUID Guid = CLSID_MyComputer; - int bHelp = 0, bMinimized = 0; - FILE *pFile; - LNK_HEADER Header; - uint16_t uhTmp; - uint32_t dwTmp; - - for (i = 1; i < argc; ++i) - { - if (argv[i][0] != '-' && argv[i][0] != '/') - pszTarget = argv[i]; - else if (!strcmp(argv[i] + 1, "h")) - bHelp = 1; - else if (!strcmp(argv[i] + 1, "o") && i + 1 < argc) - pszOutputPath = argv[++i]; - else if (!strcmp(argv[i] + 1, "d") && i + 1 < argc) - pszDescription = argv[++i]; - else if (!strcmp(argv[i] + 1, "w") && i + 1 < argc) - pszWorkingDir = argv[++i]; - else if (!strcmp(argv[i] + 1, "c") && i + 1 < argc) - pszCmdLineArgs = argv[++i]; - else if (!strcmp(argv[i] + 1, "i") && i + 1 < argc) - { - pszIcon = argv[++i]; - if (i + 1 < argc && isdigit(argv[i + 1][0])) - IconNr = atoi(argv[++i]); - } - else if (!strcmp(argv[i] + 1, "m")) - bMinimized = 1; - else if (!strcmp(argv[i] + 1, "g") && i + 1 < argc) - { - unsigned Data4Tmp[8], j; - - sscanf(argv[++i], "{%8lx-%4hx-%4hx-%2x%2x-%2x%2x%2x%2x%2x%2x}", - &Guid.Data1, &Guid.Data2, &Guid.Data3, - &Data4Tmp[0], &Data4Tmp[1], &Data4Tmp[2], &Data4Tmp[3], - &Data4Tmp[4], &Data4Tmp[5], &Data4Tmp[6], &Data4Tmp[7]); - for (j = 0; j < 8; ++j) - Guid.Data4[j] = (uint8_t)Data4Tmp[j]; - } - else - printf("Invalid option: %s\n", argv[i]); - } - - if (!pszTarget || bHelp) - { - printf("Usage: %s [-o path][-d descr][-w path][-c cmd_line_args][-i icon_path [nr]][-h][-g guid] target\n" - "-o path\tSets output path\n" - "-d descr\tSets shortcut description\n" - "-w path\tSets working directory for executable\n" - "-c cmd_line_args\tSets command line arguments passed to program\n" - "-i icon_path [nr]\tSets icon file and optionally icon index\n" - "-m\tStart minimized\n" - "-g guid\tSets GUID to which target path is relative. Default value is MyComputer GUID.\n" - "target\tAbsolute or relative to guid specified with -g option path\n", argv[0]); - return 0; - } - - pFile = fopen(pszOutputPath, "wb"); - if (!pFile) - { - printf("Failed to open %s\n", pszOutputPath); - return -1; - } - - // Header - memset(&Header, 0, sizeof(Header)); - Header.Signature = (uint32_t)'L'; - Header.Guid = CLSID_ShellLink; - Header.Flags = LINK_ID_LIST; - if (pszDescription) - Header.Flags |= LINK_DESCRIPTION; - if (pszWorkingDir) - Header.Flags |= LINK_WORKING_DIR; - if (pszCmdLineArgs) - Header.Flags |= LINK_CMD_LINE_ARGS; - if (pszIcon) - Header.Flags |= LINK_ICON; - Header.IconNr = IconNr; - Header.Show = bMinimized ? SW_SHOWMINNOACTIVE : SW_SHOWNORMAL; - fwrite(&Header, sizeof(Header), 1, pFile); - - if (Header.Flags & LINK_ID_LIST) - { - ID_LIST_FILE IdListFile; - ID_LIST_GUID IdListGuid; - ID_LIST_DRIVE IdListDrive; - unsigned cbListSize = sizeof(IdListGuid) + sizeof(uint16_t), cchName; - const char *pszName = pszTarget; - - // ID list - // It seems explorer does not accept links without id list. List is relative to desktop. - - pszName = pszTarget; - - if (pszName[0] && pszName[1] == ':') - { - cbListSize += sizeof(IdListDrive); - pszName += 2; - while (*pszName == '\\' || *pszName == '/') - ++pszName; - } - - while (*pszName) - { - cchName = 0; - while (pszName[cchName] && pszName[cchName] != '\\' && pszName[cchName] != '/') - ++cchName; - - if (cchName != 1 || pszName[0] != '.') - cbListSize += sizeof(IdListFile) + 2 * (cchName + 1); - - pszName += cchName; - while (*pszName == '\\' || *pszName == '/') - ++pszName; - } - - uhTmp = cbListSize; - fwrite(&uhTmp, sizeof(uhTmp), 1, pFile); // size - - IdListGuid.Size = sizeof(IdListGuid); - IdListGuid.Type = PT_GUID; - IdListGuid.dummy = 0x50; - IdListGuid.guid = Guid; - fwrite(&IdListGuid, sizeof(IdListGuid), 1, pFile); - - pszName = pszTarget; - - if (isalpha(pszName[0]) && pszName[1] == ':') - { - memset(&IdListDrive, 0, sizeof(IdListDrive)); - IdListDrive.Size = sizeof(IdListDrive); - IdListDrive.Type = PT_DRIVE1; - sprintf(IdListDrive.szDriveName, "%c:\\", pszName[0]); - fwrite(&IdListDrive, sizeof(IdListDrive), 1, pFile); - pszName += 2; - while(*pszName == '\\' || *pszName == '/') - ++pszName; - } - - while (*pszName) - { - cchName = 0; - while (pszName[cchName] && pszName[cchName] != '\\' && pszName[cchName] != '/') - ++cchName; - - if (cchName != 1 || pszName[0] != '.') - { - memset(&IdListFile, 0, sizeof(IdListFile)); - IdListFile.Size = sizeof(IdListFile) + 2 * (cchName + 1); - if (!pszName[cchName]) - IdListFile.Type = PT_VALUE; // File - else - IdListFile.Type = PT_FOLDER; - fwrite(&IdListFile, sizeof(IdListFile), 1, pFile); - fwrite(pszName, cchName, 1, pFile); - fputc(0, pFile); - fwrite(pszName, cchName, 1, pFile); - fputc(0, pFile); - } - - pszName += cchName; - while (*pszName == '\\' || *pszName == '/') - ++pszName; - } - - uhTmp = 0; // list end - fwrite(&uhTmp, sizeof(uhTmp), 1, pFile); - } - - if (Header.Flags & LINK_DESCRIPTION) - { - // Dscription - uhTmp = strlen(pszDescription); - fwrite(&uhTmp, sizeof(uhTmp), 1, pFile); - fputs(pszDescription, pFile); - } - - if (Header.Flags & LINK_RELATIVE_PATH) - { - // Relative Path - uhTmp = strlen(pszTarget); - fwrite(&uhTmp, sizeof(uhTmp), 1, pFile); - fputs(pszTarget, pFile); - } - - if (Header.Flags & LINK_WORKING_DIR) - { - // Working Dir - uhTmp = strlen(pszWorkingDir); - fwrite(&uhTmp, sizeof(uhTmp), 1, pFile); - fputs(pszWorkingDir, pFile); - } - - if (Header.Flags & LINK_CMD_LINE_ARGS) - { - // Command line arguments - uhTmp = strlen(pszCmdLineArgs); - fwrite(&uhTmp, sizeof(uhTmp), 1, pFile); - fputs(pszCmdLineArgs, pFile); - } - - if (Header.Flags & LINK_ICON) - { - // Command line arguments - uhTmp = strlen(pszIcon); - fwrite(&uhTmp, sizeof(uhTmp), 1, pFile); - fputs(pszIcon, pFile); - } - - // Extra stuff - dwTmp = 0; - fwrite(&dwTmp, sizeof(dwTmp), 1, pFile); - - fclose(pFile); - - return 0; -} diff --git a/reactos/tools/ms2ps/ms2ps.cpp b/reactos/tools/ms2ps/ms2ps.cpp deleted file mode 100644 index cb61cb97666..00000000000 --- a/reactos/tools/ms2ps/ms2ps.cpp +++ /dev/null @@ -1,431 +0,0 @@ -/* - * ReactOS kernel - * Copyright (C) 2004 ReactOS Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* $Id$ - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS seh conversion tool - * FILE: tools/ms2ps/ms2ps.cpp - * PURPOSE: Conversion tool from msvc to pseh style seh - * PROGRAMMER: Art Yerkes - */ - -#include -#include -#include -#include -#include -#include -#include - -#define MAYBE(x) - -using std::string; -using std::cin; -using std::cout; -using std::cerr; -using std::endl; -using std::istream; - -typedef std::list sl_t; -typedef sl_t::iterator sl_it; - -string TRY_TOKEN = "__try"; -string EXCEPT_TOKEN = "__except"; -string FINALLY_TOKEN = "__finally"; -char *c_operators[] = { - "{", - "}", - "(", - ")", - NULL -}; - -int isident( int c ) { - return (c != '{') && (c != '}') && (c != '(') && (c != ')') && - (c != '\'') && (c != '\"') && !isspace(c); -} - -bool areinclass( string str, int (*isclass)(int) ) { - int i; - - for( i = 0; i < (int)str.size(); i++ ) - if( !isclass( str[i] ) ) return false; - - return true; -} - -bool areident( string s ) { return areinclass( s, isident ); } - -bool isop( string tok ) { - int i; - for( i = 0; c_operators[i] && tok != c_operators[i]; i++ ); - if( c_operators[i] ) return true; else return false; -} - -enum fstate { EMPTY, INT, FRAC, EXP }; - -string generic_match( string tok, string la, - bool (*mf)( string ) ) { - if( tok.size() < 1 ) return ""; - if( mf(tok) && !mf(la) ) return tok; else return ""; -} - -string match_operator( string tok, string la ) { - return generic_match( tok, la, isop ); -} - -string match_ident( string tok, string la ) { - return generic_match( tok, la, areident ); -} - -string match_quoted_const( string tok, string la, char q ) { - if( ((tok.size() && tok[0] == q) || - ((tok.size() > 2) && tok[0] == 'L' && tok[1] == q)) && - (tok.rfind(q) == (tok.size() - 1)) ) { - if( (tok.rfind("\\") != (tok.size() - 2)) || - (tok.size() > 3 && tok.rfind("\\\\") == (tok.size() - 3)) ) - return tok; - else return ""; - } - else return ""; -} - -sl_t snarf_tokens( string line ) { - int i; - sl_t out; - string curtok, la, op, ident, qconst; - - line += " "; - - for( i = 0; i < (int)line.size() - 1; i++ ) { - /*cout << "Char [" << line[i] << "] and [" << line[i+1] << "]" - << endl; */ - - if( (!curtok.size() || - (curtok[0] != '\'' && curtok[0] != '\"')) && - (curtok.size() <= 2 || - curtok[0] != 'L' || - (curtok[1] != '\'' && curtok[1] != '\"')) && - isspace(line[i]) ) { - if( curtok.size() ) out.push_back( curtok ); - curtok = ""; - continue; - } - - curtok.push_back( line[i] ); - - la = curtok + line[i+1]; - - op = match_operator( curtok, la ); - - if( op != "" ) { - out.push_back( op MAYBE(+ "O") ); - curtok = ""; - continue; - } - - if( la != "L\"" && la != "L\'" ) { - ident = match_ident( curtok, la ); - - if( ident != "" ) { - out.push_back( ident MAYBE(+ "I") ); - curtok = ""; - continue; - } - } - - qconst = match_quoted_const( curtok, la, '\'' ); - - if( qconst != "" ) { - out.push_back( qconst MAYBE(+ "q") ); - curtok = ""; - continue; - } - - qconst = match_quoted_const( curtok, la, '\"' ); - - if( qconst != "" ) { - out.push_back( qconst MAYBE(+ "Q") ); - curtok = ""; - continue; - } - } - - return out; -} - -istream &getline_no_comments( istream &is, string &line ) { - string buf; - int ch; - int seen_slash = false; - - while( (ch = is.get()) != -1 ) { - if( seen_slash ) { - if( ch == '/' ) { - do { - ch = is.get(); - } while( ch != -1 && ch != '\n' && ch != '\r' ); - break; - } else if( ch == '*' ) { - ch = is.get(); /* Skip one char */ - do { - while( ch != '*' ) - ch = is.get(); - ch = is.get(); - } while( ch != '/' ); - buf += ' '; - } else { - buf += '/'; buf += (char)ch; - } - seen_slash = false; - } else { - if( ch == '/' ) seen_slash = true; - else if( ch == '\r' || ch == '\n' ) break; - else buf += (char)ch; - } - } - - line = buf; - - return is; -} - -bool expand_input( sl_t &tok ) { - string line; - sl_t new_tokens; - bool out = false; - - out = getline_no_comments( cin, line ); - while( line.size() && isspace( line[0] ) ) - line = line.substr( 1 ); - if( line[0] == '#' ) { - tok.push_back( line ); - while( line[line.size()-1] == '\\' ) { - getline_no_comments( cin, line ); - tok.push_back( line ); - tok.push_back( "\n" ); - } - tok.push_back( "\n" ); - } else { - new_tokens = snarf_tokens( line ); - tok.splice( tok.end(), new_tokens ); - tok.push_back( "\n" ); - } - - return out; -} - -sl_it -complete_block( sl_it i, - sl_it end, - string start_ch, string end_ch) { - int bc = 1; - - for( i++; i != end && bc; i++ ) { - if( *i == start_ch ) bc++; - if( *i == end_ch ) bc--; - } - - return i; -} - -string makename( string intro ) { - static int i = 0; - char buf[100]; - - sprintf( buf, "%s%d", intro.c_str(), i++ ); - - return buf; -} - -void append_block( sl_t &t, sl_it b, sl_it e ) { - while( b != e ) { - t.push_back( *b ); - b++; - } -} - -void error( sl_t &container, sl_it it, string l ) { - int line = 0; - for( sl_it i = container.begin(); i != it; i++ ) - if( (*i)[0] == '#' ) { - sscanf( i->substr(1).c_str(), "%d", &line ); - cerr << "*standard-input*:" << line << ": " << l; - } -} - -/* Goal: match and transform one __try { a } __except [ (foo) ] { b } - * [ __finally { c } ] - * - * into - * - * _SEH_FINALLY(name1) { c } - * _SEH_FILTER(name2) { return (foo | EXCEPTION_EXECUTE_HANDLER); } - * _SEH_TRY_FILTER_FINALLY(name1,name2) { - * a - * } _SEH_HANDLE { - * b - * } _SEH_END; - */ - -void handle_try( sl_t &container, sl_it try_kw, sl_it end ) { - string temp; - sl_t pseh_clause, temp_tok; - string finally_name, filter_name; - sl_it try_block, try_block_end, except_kw, paren, end_paren, - except_block, except_block_end, todelete, - finally_kw, finally_block, finally_block_end, clause_end; - - try_block = try_kw; - try_block++; - try_block_end = complete_block( try_block, end, "{", "}" ); - - if( try_block_end == end ) - error( container, try_block, "unclosed try block"); - - except_kw = try_block_end; - - if( *except_kw == FINALLY_TOKEN ) { - finally_kw = except_kw; - except_kw = end; - paren = end; - end_paren = end; - except_block = end; - except_block_end = end; - } else if( *except_kw == EXCEPT_TOKEN ) { - paren = except_kw; - paren++; - if( *paren == "(" ) { - end_paren = complete_block( paren, end, "(", ")" ); - except_block = end_paren; - } else { - except_block = paren; - paren = end; - end_paren = end; - } - except_block_end = complete_block( except_block, end, "{", "}" ); - finally_kw = except_block_end; - } else { - except_kw = paren = end_paren = except_block = except_block_end = - finally_kw = finally_block = finally_block_end = end; - } - - if( finally_kw != end && *finally_kw != FINALLY_TOKEN ) { - finally_kw = end; - finally_block = end; - finally_block_end = end; - } else { - finally_block = finally_kw; - finally_block++; - finally_block_end = complete_block( finally_block, end, "{", "}" ); - } - - if( finally_block_end != end ) clause_end = finally_block_end; - else if( except_block_end != end ) clause_end = except_block_end; - else clause_end = try_block_end; - - /* Skip one so that we can do != on clause_end */ - - /* Now for the output phase -- we've collected the whole seh clause - * and it lies between try_kw and clause_end */ - - finally_name = makename("_Finally"); - filter_name = makename("_Filter"); - - pseh_clause.push_back( "_SEH_FINALLY" ); - pseh_clause.push_back( "(" ); - pseh_clause.push_back( finally_name ); - pseh_clause.push_back( ")" ); - if( finally_kw != end ) - append_block( pseh_clause, finally_block, finally_block_end ); - else { - pseh_clause.push_back( "{" ); - pseh_clause.push_back( "}" ); - } - - pseh_clause.push_back( "_SEH_FILTER" ); - pseh_clause.push_back( "(" ); - pseh_clause.push_back( filter_name ); - pseh_clause.push_back( ")" ); - pseh_clause.push_back( "{" ); - pseh_clause.push_back( "return" ); - if( paren != end ) - append_block( pseh_clause, paren, end_paren ); - else - pseh_clause.push_back( "EXCEPTION_EXECUTE_HANDLER" ); - pseh_clause.push_back( ";" ); - pseh_clause.push_back( "}" ); - - pseh_clause.push_back( "_SEH_TRY_FILTER_FINALLY" ); - pseh_clause.push_back( "(" ); - pseh_clause.push_back( filter_name ); - pseh_clause.push_back( "," ); - pseh_clause.push_back( finally_name ); - pseh_clause.push_back( ")" ); - append_block( pseh_clause, try_block, try_block_end ); - pseh_clause.push_back( "_SEH_HANDLE" ); - pseh_clause.push_back( "{" ); - if( except_block != end ) - append_block( pseh_clause, except_block, except_block_end ); - pseh_clause.push_back( "}" ); - pseh_clause.push_back( "_SEH_END" ); - pseh_clause.push_back( ";" ); - - container.splice( try_kw, pseh_clause ); - while( try_kw != clause_end ) { - todelete = try_kw; - try_kw++; - container.erase( todelete ); - } -} - -void print_tokens( sl_it begin, sl_it end ) { - for( sl_it i = begin; i != end; i++ ) - if( *i == "\n" ) cout << *i; - else cout << /*"[" <<*/ *i << /*"]" <<*/ " "; -} - -int main( int argc, char **argv ) { - sl_t tok; - sl_it try_found; - int i; - - for( i = 1; i < argc; i++ ) { - if( string(argv[i]) == "-try" && i < argc - 1 ) { - i++; - TRY_TOKEN = argv[i]; - } else if( string(argv[i]) == "-except" && i < argc - 1 ) { - i++; - EXCEPT_TOKEN = argv[i]; - } else if( string(argv[i]) == "-finally" && i < argc - 1 ) { - i++; - FINALLY_TOKEN = argv[i]; - } - } - - /* XXX Uses much memory for large files */ - while( expand_input(tok) ); - - while( (try_found = find( tok.begin(), tok.end(), TRY_TOKEN )) != - tok.end() ) { - handle_try( tok, try_found, tok.end() ); - } - - tok.push_front("#include \n"); - print_tokens( tok.begin(), tok.end() ); -} diff --git a/reactos/tools/nandflash/main.c b/reactos/tools/nandflash/main.c deleted file mode 100644 index 012fc54b3db..00000000000 --- a/reactos/tools/nandflash/main.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - * PROJECT: OMAP3 NAND Flashing Utility - * LICENSE: BSD - See COPYING.ARM in the top level directory - * FILE: tools/nandflash/main.c - * PURPOSE: Flashes OmapLDR, FreeLDR and a Root FS into a NAND image - * PROGRAMMERS: ReactOS Portable Systems Group - */ - -/* INCLUDES *******************************************************************/ - -#include "nandflash.h" - -/* GLOBALS ********************************************************************/ - -/* File Names */ -PCHAR NandImageName = "reactos.bin"; -PCHAR LlbImageName = "./output-arm/boot/armllb/armllb.bin"; -PCHAR BootLdrImageName = "./output-arm/boot/freeldr/freeldr/freeldr.sys"; -PCHAR FsImageName = "ramdisk.img"; -PCHAR RamImageName = "ramdisk.bin"; - -/* NAND On-Disk Memory Map */ -ULONG LlbStart = 0x00000000, LlbEnd = 0x00010000; // 64 KB -ULONG BootLdrStart = 0x00010000, BootLdrEnd = 0x00090000; // 512 KB -ULONG FsStart = 0x00090000, FsEnd = 0x10000000; // 255 MB - -/* Should we write OOB data? */ -ULONG NeedsOob = TRUE; - -/* FUNCTIONS ******************************************************************/ - -INT -NTAPI -CreateFlashFile(VOID) -{ - INT FileDescriptor, i; - CHAR Buffer[NAND_PAGE_SIZE + NAND_OOB_SIZE]; - - /* Try open NAND image */ - FileDescriptor = open(NandImageName, O_RDWR); - if (FileDescriptor) - { - /* Create NAND image */ - FileDescriptor = open(NandImageName, O_RDWR | O_CREAT); - if (FileDescriptor) return FileDescriptor; - - /* Create zero buffer */ - memset(Buffer, 0xff, sizeof(Buffer)); - - /* Write zero buffer */ - for (i = 0; i < NAND_PAGES; i++) write(FileDescriptor, Buffer, sizeof(Buffer)); - } - - /* Return NAND descriptor */ - return FileDescriptor; -} - -VOID -NTAPI -WriteToFlash(IN INT NandImageFile, - IN INT ImageFile, - IN ULONG ImageStart, - IN ULONG ImageEnd) -{ - CHAR Data[NAND_PAGE_SIZE], Oob[NAND_OOB_SIZE]; - ULONG StartPage, EndPage, i, OobSize = 0; - BOOLEAN KeepGoing = TRUE; - - /* Offset to NAND Page convert */ - StartPage = ImageStart / NAND_PAGE_SIZE; - EndPage = ImageEnd / NAND_PAGE_SIZE; - - /* Jump to NAND offset */ - if (NeedsOob) OobSize = NAND_OOB_SIZE; - lseek(NandImageFile, StartPage * (NAND_PAGE_SIZE + OobSize), SEEK_SET); - - /* Set input image offset */ - lseek(ImageFile, 0, SEEK_SET); - - /* Create zero buffer */ - memset(Data, 0xff, NAND_PAGE_SIZE); - memset(Oob, 0xff, NAND_OOB_SIZE); - - /* Parse NAND Pages */ - for (i = StartPage; i < EndPage; i++) - { - /* Read NAND page from input image */ - if (read(ImageFile, Data, NAND_PAGE_SIZE) < NAND_PAGE_SIZE) - { - /* Do last write and quit after */ - KeepGoing = FALSE; - } - - /* Write OOB and NAND Data */ - write(NandImageFile, Data, NAND_PAGE_SIZE); - if (NeedsOob) write(NandImageFile, Oob, NAND_OOB_SIZE); - - /* Next page if data continues */ - if (!KeepGoing) break; - } -} - -VOID -NTAPI -WriteLlb(IN INT NandImageFile) -{ - INT FileDescriptor; - - /* Open LLB and write it */ - FileDescriptor = open(LlbImageName, O_RDWR); - WriteToFlash(NandImageFile, FileDescriptor, LlbStart, LlbEnd); - close(FileDescriptor); -} - -VOID -NTAPI -WriteBootLdr(IN INT NandImageFile) -{ - INT FileDescriptor; - - /* Open FreeLDR and write it */ - FileDescriptor = open(BootLdrImageName, O_RDWR); - WriteToFlash(NandImageFile, FileDescriptor, BootLdrStart, BootLdrEnd); - close(FileDescriptor); -} - -VOID -NTAPI -WriteFileSystem(IN INT NandImageFile) -{ - INT FileDescriptor; - - /* Open FS image and write it */ - FileDescriptor = open(FsImageName, O_RDWR); - WriteToFlash(NandImageFile, FileDescriptor, FsStart, FsEnd); - close(FileDescriptor); -} - -VOID -NTAPI -WriteRamDisk(IN INT RamDiskFile) -{ - INT FileDescriptor; - - /* Open FS image and write it 16MB later */ - FileDescriptor = open(FsImageName, O_RDWR); - WriteToFlash(RamDiskFile, FileDescriptor, 16 * 1024 * 1024, (32 + 16) * 1024 * 1024); - close(FileDescriptor); -} - -int -main(ULONG argc, - char **argv) -{ - INT NandImageFile, RamDiskFile; - - /* Flat NAND, no OOB */ - if (argc == 2) NeedsOob = FALSE; - - /* Open or create NAND Image File */ - NandImageFile = CreateFlashFile(); - if (!NandImageFile) exit(-1); - - /* Write components */ - WriteLlb(NandImageFile); - WriteBootLdr(NandImageFile); - if (NeedsOob) - { - /* Write the ramdisk normaly */ - WriteFileSystem(NandImageFile); - } - else - { - /* Open a new file for the ramdisk */ - RamDiskFile = open(RamImageName, O_RDWR | O_CREAT); - if (!RamDiskFile) exit(-1); - - /* Write it */ - WriteRamDisk(RamDiskFile); - - /* Close */ - close(RamDiskFile); - } - - - /* Close and return */ - close(NandImageFile); - return 0; -} - -/* EOF */ diff --git a/reactos/tools/nandflash/nandflash.h b/reactos/tools/nandflash/nandflash.h deleted file mode 100644 index 59f68448a75..00000000000 --- a/reactos/tools/nandflash/nandflash.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * PROJECT: OMAP3 NAND Flashing Utility - * LICENSE: BSD - See COPYING.ARM in the top level directory - * FILE: tools/nandflash/nandflash.h - * PURPOSE: Flashes OmapLDR, FreeLDR and a Root FS into a NAND image - * PROGRAMMERS: ReactOS Portable Systems Group - */ - -/* INCLUDES *******************************************************************/ - -#include -#include -#include -#include - -/* NAND Image Sizes */ -#define NAND_PAGE_SIZE (2 * 1024) // 2 KB -#define NAND_OOB_SIZE 64 // 64 bytes -#define NAND_PAGES ((256 * 1024 * 1024) / NAND_PAGE_SIZE) // 256 MB - -/* EOF */ diff --git a/reactos/tools/obj2bin/CMakeLists.txt b/reactos/tools/obj2bin/CMakeLists.txt deleted file mode 100644 index 83edc3254d7..00000000000 --- a/reactos/tools/obj2bin/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -add_executable(obj2bin obj2bin.c) diff --git a/reactos/tools/obj2bin/obj2bin.c b/reactos/tools/obj2bin/obj2bin.c deleted file mode 100644 index 478487401f3..00000000000 --- a/reactos/tools/obj2bin/obj2bin.c +++ /dev/null @@ -1,165 +0,0 @@ -#include -#include -#include -#include "../pecoff.h" - -static -void -Usage(void) -{ - printf("Converts a coff object file into a raw binary file.\n" - "Syntax: obj2bin \n"); -} - -static -void -RelocateSection( - char *pData, - IMAGE_SECTION_HEADER *pSectionHeader, - PIMAGE_SYMBOL pSymbols, - unsigned int iOffset) -{ - unsigned int i, nOffset; - PIMAGE_RELOCATION pReloc; - char *pSection; - WORD *p16; - DWORD *p32; - - pSection = pData + pSectionHeader->PointerToRawData; - - /* Calculate pointer to relocation table */ - pReloc = (PIMAGE_RELOCATION)(pData + pSectionHeader->PointerToRelocations); - - /* Loop all relocations */ - for (i = 0; i < pSectionHeader->NumberOfRelocations; i++) - { - nOffset = pReloc->VirtualAddress - pSectionHeader->VirtualAddress; - - if (nOffset > pSectionHeader->SizeOfRawData) continue; - - switch (pReloc->Type) - { - case IMAGE_REL_I386_ABSOLUTE: - case 16: - p16 = (void*)(pSection + nOffset); - *p16 += (WORD)(pSymbols[pReloc->SymbolTableIndex].Value + iOffset); - break; - - case IMAGE_REL_I386_DIR32: - p32 = (void*)(pSection + nOffset); - *p32 += (DWORD)(pSymbols[pReloc->SymbolTableIndex].Value + iOffset); - break; - - default: - printf("Unknown relocatation type %ld address %ld\n", - pReloc->Type, pReloc->VirtualAddress); - } - - pReloc++; - } -} - -int main(int argc, char *argv[]) -{ - char *pszSourceFile; - char *pszDestFile; - unsigned long nFileSize, nBaseAddress; - FILE *pSourceFile, *pDestFile; - IMAGE_FILE_HEADER *pFileHeader; - IMAGE_SECTION_HEADER *pSectionHeader; - unsigned int i; - char *pData; - PIMAGE_SYMBOL pSymbols; - - if ((argc != 4) || (strcmp(argv[1], "--help") == 0)) - { - Usage(); - return -1; - } - - pszSourceFile = argv[1]; - pszDestFile = argv[2]; - nBaseAddress = strtol(argv[3], 0, 16); - - pSourceFile = fopen(pszSourceFile, "rb"); - if (!pSourceFile) - { - fprintf(stderr, "Couldn't open source file '%s'\n", pszSourceFile); - return -2; - } - - /* Get file size */ - fseek(pSourceFile, 0, SEEK_END); - nFileSize = ftell(pSourceFile); - rewind(pSourceFile); - - /* Allocate memory for the file */ - pData = malloc(nFileSize); - if (!pData) - { - fclose(pSourceFile); - fprintf(stderr, "Failed to allocate %ld bytes\n", nFileSize); - return -3; - } - - /* Read the whole source file */ - if (!fread(pData, nFileSize, 1, pSourceFile)) - { - free(pData); - fclose(pSourceFile); - fprintf(stderr, "Failed to read source file: %ld\n", nFileSize); - return -4; - } - - /* Close source file */ - fclose(pSourceFile); - - /* Open the destination file */ - pDestFile = fopen(pszDestFile, "wb"); - if (!pDestFile) - { - free(pData); - fprintf(stderr, "Couldn't open dest file '%s'\n", pszDestFile); - return -5; - } - - /* Calculate table pointers */ - pFileHeader = (IMAGE_FILE_HEADER*)pData; - pSymbols = (void*)(pData + pFileHeader->PointerToSymbolTable); - pSectionHeader = (void*)(((char*)(pFileHeader + 1)) + pFileHeader->SizeOfOptionalHeader); - - /* Loop all sections */ - for (i = 0; i < pFileHeader->NumberOfSections; i++) - { - /* Check if this is '.text' section */ - if ((strcmp(pSectionHeader->Name, ".text") == 0) && - (pSectionHeader->SizeOfRawData != 0)) - { - RelocateSection(pData, - pSectionHeader, - pSymbols, - nBaseAddress); - - /* Write the section to the destination file */ - if (!fwrite(pData + pSectionHeader->PointerToRawData, - pSectionHeader->SizeOfRawData, 1, pDestFile)) - { - free(pData); - fclose(pDestFile); - fprintf(stderr, "Failed to write data %ld\n", - pSectionHeader->SizeOfRawData); - return -6; - } - - nBaseAddress += pSectionHeader->SizeOfRawData; - } - - pSectionHeader++; - } - - free(pData); - fclose(pDestFile); - - return 0; -} - diff --git a/reactos/tools/ofw_interface/calls.ofw b/reactos/tools/ofw_interface/calls.ofw deleted file mode 100644 index 00273f1a426..00000000000 --- a/reactos/tools/ofw_interface/calls.ofw +++ /dev/null @@ -1,16 +0,0 @@ -# Function Args Returns Types -# Real OFW functions to proxy -finddevice 1 1 char* int -open 1 1 char* int -getprop 4 1 int char* char*:arg3 int int -nextprop 3 1 int char* char* int -getproplen 2 1 int char* int -write 3 1 int char*:arg2 int int -read 3 1 int char*:arg2 int int -exit 0 0 -child 1 1 int int -peer 1 1 int int -parent 1 1 int int -seek 3 1 int int int int -package-to-path 3 1 int char*:arg2 int int -claim 3 1 int int int int diff --git a/reactos/tools/ofw_interface/ofw_interface.cpp b/reactos/tools/ofw_interface/ofw_interface.cpp deleted file mode 100644 index 5946c7b3e08..00000000000 --- a/reactos/tools/ofw_interface/ofw_interface.cpp +++ /dev/null @@ -1,316 +0,0 @@ -#include -#include -#include -#include -#include -#include - -class ofw_wrappers { -public: - int base, ctindex, method_ctindex; - std::string functions; - std::string names; - std::string calltable; - std::string le_stubs; - std::string of_call; -}; - -class vartype { -public: - vartype( const std::string &typestr ) { - size_t amp = typestr.find('&'); - size_t col = typestr.find(':'); - if( amp != std::string::npos ) { - if( col > amp && col != std::string::npos ) - lit_value = typestr.substr(amp+1,col-amp+1); - else lit_value = typestr.substr(amp+1); - } - if( col != std::string::npos ) { - if( amp > col && amp != std::string::npos ) - len = typestr.substr(col+1,amp-col+1); - else len = typestr.substr(col+1); - } - - if( amp != std::string::npos && amp < col ) col = amp; - if( col == std::string::npos ) col = typestr.size(); - c_type = typestr.substr(0,col); - } - - vartype( const vartype &other ) - : c_type(other.c_type), - len(other.len), - lit_value(other.lit_value) { - } - - vartype &operator = ( const vartype &other ) { - c_type = other.c_type; - len = other.len; - lit_value = other.lit_value; - return *this; - } - - std::string c_type; - std::string len; - std::string lit_value; -}; - -std::string uppercase( const std::string &toucase ) { - std::vector ucase_work(toucase.size()); - for( size_t i = 0; i < toucase.size(); i++ ) { - ucase_work[i] = toupper(toucase[i]); - } - return std::string(&ucase_work[0], toucase.size()); -} - -std::string clip_eol( std::string in, const std::string &eol_marks ) { - size_t found; - for( size_t i = 0; i < eol_marks.size(); i++ ) { - found = in.find( eol_marks[i] ); - if( found != std::string::npos ) - in = in.substr( 0, found ); - } - return in; -} - -int round_up( int x, int factor ) { - return (x + (factor - 1)) & ~(factor - 1); -} - -void populate_definition( ofw_wrappers &wrapper, const std::string &line ) { - std::istringstream iss(line); - bool make_function = true, method_call = false, make_stub = true, comma; - std::string name, nametext, argtype, rettype; - std::vector argtypes; - int args, rets, i, local_offset, total_stack, userarg_start = 0; - size_t f; - std::ostringstream function, ct_csource, le_stub, of_call; - - iss >> name >> args >> rets; - - if( !name.size() ) return; - - if( (f = name.find('!')) != std::string::npos ) { - nametext = name.substr(f+1); - name = name.substr(0,f); - } - if( name[0] == '-' ) { - name = name.substr(1); - make_function = false; - } - if( name[0] == '+' ) { - name = name.substr(1); - make_stub = false; - } - if( name[0] == '@' ) { - name = name.substr(1); - method_call = true; - make_function = false; - } - - if( !nametext.size() ) nametext = name; - - for( i = 1; i < (int)name.size(); i++ ) - if( name[i] == '-' ) name[i] = '_'; - - if( nametext == "call-method" ) - wrapper.method_ctindex = wrapper.ctindex; - - for( i = 0; i < args; i++ ) { - iss >> argtype; - argtypes.push_back(vartype(argtype)); - } - - if( method_call ) { - userarg_start = 1; - args += 2; - } - - iss >> rettype; - if( !rettype.size() ) rettype = "void"; - - local_offset = (3 + rets + args) * 4; - total_stack = round_up(12 + local_offset, 16); - - function << "asm_ofw_" << name << ":\n" - << "\t/* Reserve stack space */\n" - << "\tsubi %r1,%r1," << total_stack << "\n" - << "\t/* Store r8, r9, lr */\n" - << "\tstw %r8," << (local_offset + 0) << "(%r1)\n" - << "\tstw %r9," << (local_offset + 4) << "(%r1)\n" - << "\tmflr %r8\n" - << "\tstw %r8," << (local_offset + 8) << "(%r1)\n" - << "\t/* Get read name */\n" - << "\tlis %r8," << name << "_ofw_name@ha\n" - << "\taddi %r9,%r8," << name << "_ofw_name@l\n" - << "\tstw %r9,0(%r1)\n" - << "\t/* " << args << " arguments and " << rets << " return */\n" - << "\tli %r9," << args << "\n" - << "\tstw %r9,4(%r1)\n" - << "\tli %r9," << rets << "\n" - << "\tstw %r9,8(%r1)\n"; - - for( int i = 0; i < args; i++ ) - function << "\tstw %r" << (i+3) << "," << (4 * (i + 3)) << "(%r1)\n"; - - function << "\t/* Load up the call address */\n" - << "\tlis %r10,ofw_call_addr@ha\n" - << "\tlwz %r9,ofw_call_addr@l(%r10)\n" - << "\tmtlr %r9\n" - << "\t/* Set argument */\n" - << "\tmr %r3,%r1\n" - << "\t/* Fire */\n" - << "\tblrl\n" - << "\tlwz %r3," << (local_offset - 4) << "(%r1)\n" - << "\t/* Restore registers */\n" - << "\tlwz %r8," << (local_offset + 8) << "(%r1)\n" - << "\tmtlr %r8\n" - << "\tlwz %r9," << (local_offset + 4) << "(%r1)\n" - << "\tlwz %r8," << (local_offset + 0) << "(%r1)\n" - << "\t/* Return */\n" - << "\taddi %r1,%r1," << total_stack << "\n" - << "\tblr\n"; - - if( method_call ) { - argtypes.insert(argtypes.begin(),vartype("int")); - argtypes.insert(argtypes.begin(),vartype("char*")); - } - - le_stub << rettype << " ofw_" << name << "("; - - comma = false; - for( i = userarg_start; i < args; i++ ) { - if( !argtypes[i].lit_value.size() ) { - if( !comma ) comma = true; else le_stub << ","; - le_stub << argtypes[i].c_type << " arg" << i; - } - } - le_stub << ")"; - of_call << le_stub.str() << ";\n"; - - le_stub << " {\n"; - if( rettype != "void" ) - le_stub << "\t" << rettype << " ret;\n"; - - if( method_call ) { - le_stub << "\tchar arg0[" - << round_up(nametext.size()+1,8) - << "] = \"" << nametext << "\";\n"; - } - - for( i = 0; i < args; i++ ) { - if( argtypes[i].lit_value.size() ) { - le_stub << "\t" << argtypes[i].c_type << " arg" << i << " = " - << argtypes[i].lit_value << ";\n"; - } - } - - le_stub << "\t"; - if( rettype != "void" ) le_stub << "ret = (" << rettype << ")"; - - le_stub << "ofproxy(" << - (method_call ? (wrapper.method_ctindex * 4) : (wrapper.ctindex * 4)); - - for( i = 0; i < 6; i++ ) { - if( i < args ) le_stub << ",(void *)arg" << i; - else le_stub << ",NULL"; - } - - le_stub << ");\n"; - - if( rettype != "void" ) - le_stub << "\treturn ret;\n"; - - le_stub << "}\n"; - - if( make_function ) wrapper.functions += function.str(); - if( make_stub ) { - wrapper.le_stubs += le_stub.str(); - wrapper.of_call += of_call.str(); - } - if( !method_call ) { - wrapper.names += name + "_ofw_name:\n\t.asciz \"" + nametext + "\"\n"; - wrapper.calltable += std::string("\t.long asm_ofw_") + name + "\n"; - wrapper.ctindex++; - } -} - -int main( int argc, char **argv ) { - int status = 0; - std::ifstream in; - std::ofstream out, outcsource, outcheader; - std::string line; - const char *eol_marks = "#\r\n"; - ofw_wrappers wrappers; - - wrappers.base = 0xe00000; - wrappers.ctindex = 0; - - if( argc < 5 ) { - fprintf( stderr, "%s [interface.ofw] [ofw.s] [le_stub.c] [le_stub.h]\n", argv[0] ); - return 1; - } - - in.open( argv[1] ); - if( !in ) { - fprintf( stderr, "can't open %s\n", argv[1] ); - status = 1; - goto error; - } - - out.open( argv[2] ); - if( !out ) { - fprintf( stderr, "can't open %s\n", argv[2] ); - status = 1; - goto error; - } - - outcsource.open( argv[3] ); - if( !outcsource ) { - fprintf( stderr, "can't open %s\n", argv[3] ); - status = 1; - goto error; - } - - outcheader.open( argv[4] ); - if( !outcheader ) { - fprintf( stderr, "can't open %s\n", argv[4] ); - status = 1; - goto error; - } - - while( std::getline( in, line ) ) { - line = clip_eol( line, eol_marks ); - if( line.size() ) populate_definition( wrappers, line ); - } - - out << "/* AUTOMATICALLY GENERATED BY ofw_interface */\n" - << "\t.section .text\n" - << "\t.align 4\n" - << "\t.globl _start\n" - << "\t.globl ofw_functions\n" - << "\t.globl ofw_call_addr\n" - << "ofw_call_addr:\n" - << "\t.long 0\n" - << "\n/* Function Wrappers */\n\n" - << wrappers.functions - << "\n/* Function Names */\n\n" - << wrappers.names - << "\n/* Function Call Table for Freeldr */\n\n" - << "\t.align 4\n" - << "ofw_functions:\n" - << wrappers.calltable - << "\n/* End */\n"; - - outcsource << "/* AUTOMATICALLY GENERATED BY ofw_interface */\n" - << "#include \"of.h\"\n" - << wrappers.le_stubs; - - outcheader << "/* AUTOMATICALLY GENERATE BY ofw_interface */\n" - << "#ifndef _OFW_CALLS_H\n" - << "#define _OFW_CALLS_H\n" - << wrappers.of_call - << "#endif/*_OFW_CALLS_H*/\n"; - -error: - return status; -} diff --git a/reactos/tools/pecoff.h b/reactos/tools/pecoff.h deleted file mode 100644 index e6df152d15b..00000000000 --- a/reactos/tools/pecoff.h +++ /dev/null @@ -1,268 +0,0 @@ -#pragma once - -#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x010b -#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x020b - -#define IMAGE_DOS_MAGIC 0x5a4d -#define IMAGE_PE_MAGIC 0x00004550 -#define IMAGE_SIZEOF_SHORT_NAME 8 - -#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 -#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 -#define IMAGE_FILE_DEBUG_STRIPPED 0x0200 - -#define IMAGE_FILE_MACHINE_I386 0x14c -#define IMAGE_FILE_MACHINE_AMD64 0x8664 -#define IMAGE_FILE_MACHINE_IA64 0x0200 - -#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 - -#define IMAGE_SCN_TYPE_NOLOAD 0x00000002 -#define IMAGE_SCN_TYPE_NO_PAD 0x00000008 -#define IMAGE_SCN_CNT_CODE 0x00000020 -#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 -#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 -#define IMAGE_SCN_LNK_OTHER 0x00000100 -#define IMAGE_SCN_LNK_INFO 0x00000200 -#define IMAGE_SCN_LNK_REMOVE 0x00000800 -#define IMAGE_SCN_NO_DEFER_SPEC_EXC 0x00004000 -#define IMAGE_SCN_GPREL 0x00008000 -#define IMAGE_SCN_MEM_PURGEABLE 0x00020000 -#define IMAGE_SCN_MEM_LOCKED 0x00040000 -#define IMAGE_SCN_MEM_PRELOAD 0x00080000 -#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 -#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 -#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 -#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 -#define IMAGE_SCN_MEM_SHARED 0x10000000 -#define IMAGE_SCN_MEM_EXECUTE 0x20000000 -#define IMAGE_SCN_MEM_READ 0x40000000 -#define IMAGE_SCN_MEM_WRITE 0x80000000 - -#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 - -#define IMAGE_REL_I386_ABSOLUTE 0x0001 -#define IMAGE_REL_I386_DIR32 0x0006 - -typedef unsigned char BYTE; -typedef unsigned char UCHAR; -typedef unsigned short WORD; -typedef short SHORT; -typedef unsigned short USHORT; -typedef unsigned long long ULONGLONG; - -#if defined(__x86_64__) && !defined(_WIN64) -typedef signed int LONG; -typedef unsigned int ULONG; -typedef unsigned int DWORD; -#else -typedef signed long LONG; -typedef unsigned long ULONG; -typedef unsigned long DWORD; -#endif -#if defined(_WIN64) -typedef unsigned __int64 ULONG_PTR; -#else -#if defined(__x86_64__) && !defined(_WIN64) -typedef unsigned int ULONG_PTR; -#else -typedef unsigned long ULONG_PTR; -#endif -#endif - -#pragma pack(push,2) -typedef struct _IMAGE_DOS_HEADER { - WORD e_magic; - WORD e_cblp; - WORD e_cp; - WORD e_crlc; - WORD e_cparhdr; - WORD e_minalloc; - WORD e_maxalloc; - WORD e_ss; - WORD e_sp; - WORD e_csum; - WORD e_ip; - WORD e_cs; - WORD e_lfarlc; - WORD e_ovno; - WORD e_res[4]; - WORD e_oemid; - WORD e_oeminfo; - WORD e_res2[10]; - LONG e_lfanew; -} IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER; -#pragma pack(pop) - -#pragma pack(push,4) -typedef struct _IMAGE_FILE_HEADER { - WORD Machine; - WORD NumberOfSections; - DWORD TimeDateStamp; - DWORD PointerToSymbolTable; - DWORD NumberOfSymbols; - WORD SizeOfOptionalHeader; - WORD Characteristics; -} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; -#pragma pack(pop) - -typedef struct _IMAGE_DATA_DIRECTORY { - DWORD VirtualAddress; - DWORD Size; -} IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY; - -typedef struct _IMAGE_OPTIONAL_HEADER32 { - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - DWORD BaseOfData; - DWORD ImageBase; - DWORD SectionAlignment; - DWORD FileAlignment; - WORD MajorOperatingSystemVersion; - WORD MinorOperatingSystemVersion; - WORD MajorImageVersion; - WORD MinorImageVersion; - WORD MajorSubsystemVersion; - WORD MinorSubsystemVersion; - DWORD Win32VersionValue; - DWORD SizeOfImage; - DWORD SizeOfHeaders; - DWORD CheckSum; - WORD Subsystem; - WORD DllCharacteristics; - DWORD SizeOfStackReserve; - DWORD SizeOfStackCommit; - DWORD SizeOfHeapReserve; - DWORD SizeOfHeapCommit; - DWORD LoaderFlags; - DWORD NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} IMAGE_OPTIONAL_HEADER32,*PIMAGE_OPTIONAL_HEADER32; - -typedef struct _IMAGE_OPTIONAL_HEADER64 { - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - ULONGLONG ImageBase; - DWORD SectionAlignment; - DWORD FileAlignment; - WORD MajorOperatingSystemVersion; - WORD MinorOperatingSystemVersion; - WORD MajorImageVersion; - WORD MinorImageVersion; - WORD MajorSubsystemVersion; - WORD MinorSubsystemVersion; - DWORD Win32VersionValue; - DWORD SizeOfImage; - DWORD SizeOfHeaders; - DWORD CheckSum; - WORD Subsystem; - WORD DllCharacteristics; - ULONGLONG SizeOfStackReserve; - ULONGLONG SizeOfStackCommit; - ULONGLONG SizeOfHeapReserve; - ULONGLONG SizeOfHeapCommit; - DWORD LoaderFlags; - DWORD NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} IMAGE_OPTIONAL_HEADER64,*PIMAGE_OPTIONAL_HEADER64; - -#ifdef _TARGET_PE64 -typedef IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER; -typedef PIMAGE_OPTIONAL_HEADER64 PIMAGE_OPTIONAL_HEADER; -#else -typedef IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; -typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; -#endif - -typedef struct _IMAGE_NT_HEADERS32 -{ - DWORD Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER32 OptionalHeader; -} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; - -typedef struct _IMAGE_NT_HEADERS64 -{ - DWORD Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER32 OptionalHeader; -} IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64; - -#ifdef _TARGET_PE64 -typedef IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS; -typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS; -#else -typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; -typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; -#endif - -typedef struct _IMAGE_SECTION_HEADER { - BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; - union { - DWORD PhysicalAddress; - DWORD VirtualSize; - } Misc; - DWORD VirtualAddress; - DWORD SizeOfRawData; - DWORD PointerToRawData; - DWORD PointerToRelocations; - DWORD PointerToLinenumbers; - WORD NumberOfRelocations; - WORD NumberOfLinenumbers; - DWORD Characteristics; -} IMAGE_SECTION_HEADER,*PIMAGE_SECTION_HEADER; - -#pragma pack(push,4) -typedef struct _IMAGE_BASE_RELOCATION { - DWORD VirtualAddress; - DWORD SizeOfBlock; - WORD TypeOffset[1]; -} IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION; -#pragma pack(pop) - -#ifndef UNALIGNED -#define UNALIGNED -#endif - -#pragma pack(push,2) -typedef struct _IMAGE_RELOCATION { - union { - DWORD VirtualAddress; - DWORD RelocCount; - }; - DWORD SymbolTableIndex; - WORD Type; -} IMAGE_RELOCATION; -typedef struct _IMAGE_RELOCATION UNALIGNED *PIMAGE_RELOCATION; -#pragma pack(pop) - -#pragma pack(push,2) -typedef struct _IMAGE_SYMBOL { - union { - BYTE ShortName[8]; - struct { - DWORD Short; - DWORD Long; - } Name; - DWORD LongName[2]; - } N; - DWORD Value; - SHORT SectionNumber; - WORD Type; - BYTE StorageClass; - BYTE NumberOfAuxSymbols; -} IMAGE_SYMBOL; -typedef struct _IMAGE_SYMBOL UNALIGNED *PIMAGE_SYMBOL; -#pragma pack(pop) diff --git a/reactos/tools/pefixup.c b/reactos/tools/pefixup.c deleted file mode 100644 index aa1c998488f..00000000000 --- a/reactos/tools/pefixup.c +++ /dev/null @@ -1,421 +0,0 @@ -/* - * PE Fixup Utility - * Copyright (C) 2005 Filip Navara - * - * The purpose of this utility is fix PE binaries generated by binutils and - * to manipulate flags that can't be set by binutils. - * - * Currently two features are implemented: - * - * - Setting flags on PE sections for use by drivers. The sections - * .text, .data, .idata, .bss are marked as non-pageable and - * non-discarable, section PAGE is marked as pageable and section - * INIT is marked as discaradable. - * - * - Sorting of export name table in executables. DLLTOOL has bug - * in sorting algorithm when the --kill-at flag is used. The exports - * are sorted in the decorated form and so the fastcall symbols are - * incorrectly put at the beginning of export table. This option - * allow to correct sort the table, so binary search can be used - * to process them. - */ - -#include -#include -#include -#include -#include - -#ifndef O_BINARY -#define O_BINARY 0 -#endif - -/* The following definitions are ripped from MinGW W32API headers. We don't - use these headers directly in order to allow compilation on Linux hosts. */ - -typedef unsigned char BYTE, *PBYTE; -typedef unsigned short WORD; -typedef unsigned int DWORD; -typedef int LONG; -typedef long LONG_PTR; - -#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 -#define IMAGE_SIZEOF_SHORT_NAME 8 -#define IMAGE_DOS_SIGNATURE 0x5A4D -#define IMAGE_NT_SIGNATURE 0x00004550 -#define IMAGE_SCN_MEM_DISCARDABLE 0x2000000 -#define IMAGE_SCN_MEM_NOT_PAGED 0x8000000 -#define FIELD_OFFSET(t,f) ((LONG)(LONG_PTR)&(((t*)0)->f)) -#define IMAGE_FIRST_SECTION(h) ((PIMAGE_SECTION_HEADER) ((unsigned long)h+FIELD_OFFSET(IMAGE_NT_HEADERS,OptionalHeader)+((PIMAGE_NT_HEADERS)(h))->FileHeader.SizeOfOptionalHeader)) -#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 - -#pragma pack(2) -typedef struct _IMAGE_DOS_HEADER { - WORD e_magic; - WORD e_cblp; - WORD e_cp; - WORD e_crlc; - WORD e_cparhdr; - WORD e_minalloc; - WORD e_maxalloc; - WORD e_ss; - WORD e_sp; - WORD e_csum; - WORD e_ip; - WORD e_cs; - WORD e_lfarlc; - WORD e_ovno; - WORD e_res[4]; - WORD e_oemid; - WORD e_oeminfo; - WORD e_res2[10]; - LONG e_lfanew; -} IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER; -#pragma pack(4) -#pragma pack(4) -typedef struct _IMAGE_EXPORT_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Name; - DWORD Base; - DWORD NumberOfFunctions; - DWORD NumberOfNames; - DWORD AddressOfFunctions; - DWORD AddressOfNames; - DWORD AddressOfNameOrdinals; -} IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY; -typedef struct _IMAGE_FILE_HEADER { - WORD Machine; - WORD NumberOfSections; - DWORD TimeDateStamp; - DWORD PointerToSymbolTable; - DWORD NumberOfSymbols; - WORD SizeOfOptionalHeader; - WORD Characteristics; -} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; -typedef struct _IMAGE_DATA_DIRECTORY { - DWORD VirtualAddress; - DWORD Size; -} IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY; -typedef struct _IMAGE_OPTIONAL_HEADER { - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - DWORD BaseOfData; - DWORD ImageBase; - DWORD SectionAlignment; - DWORD FileAlignment; - WORD MajorOperatingSystemVersion; - WORD MinorOperatingSystemVersion; - WORD MajorImageVersion; - WORD MinorImageVersion; - WORD MajorSubsystemVersion; - WORD MinorSubsystemVersion; - DWORD Reserved1; - DWORD SizeOfImage; - DWORD SizeOfHeaders; - DWORD CheckSum; - WORD Subsystem; - WORD DllCharacteristics; - DWORD SizeOfStackReserve; - DWORD SizeOfStackCommit; - DWORD SizeOfHeapReserve; - DWORD SizeOfHeapCommit; - DWORD LoaderFlags; - DWORD NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} IMAGE_OPTIONAL_HEADER,*PIMAGE_OPTIONAL_HEADER; -typedef struct _IMAGE_NT_HEADERS { - DWORD Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER OptionalHeader; -} IMAGE_NT_HEADERS,*PIMAGE_NT_HEADERS; -typedef struct _IMAGE_SECTION_HEADER { - BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; - union { - DWORD PhysicalAddress; - DWORD VirtualSize; - } Misc; - DWORD VirtualAddress; - DWORD SizeOfRawData; - DWORD PointerToRawData; - DWORD PointerToRelocations; - DWORD PointerToLinenumbers; - WORD NumberOfRelocations; - WORD NumberOfLinenumbers; - DWORD Characteristics; -} IMAGE_SECTION_HEADER,*PIMAGE_SECTION_HEADER; -#pragma pack(4) - -/* End of ripped definitions */ - -typedef struct _export_t { - DWORD name; - WORD ordinal; -} export_t; - -unsigned char *buffer; -PIMAGE_DOS_HEADER dos_header; -PIMAGE_NT_HEADERS nt_header; - -static inline WORD dtohs(WORD in) -{ - PBYTE in_ptr = (PBYTE)∈ - return in_ptr[0] | (in_ptr[1] << 8); -} - -static inline WORD htods(WORD in) -{ - WORD out; - PBYTE out_ptr = (PBYTE)&out; - out_ptr[0] = in; out_ptr[1] = in >> 8; - return out; -} - -static inline DWORD dtohl(DWORD in) -{ - PBYTE in_ptr = (PBYTE)∈ - return in_ptr[0] | (in_ptr[1] << 8) | (in_ptr[2] << 16) | (in_ptr[3] << 24); -} - -static inline DWORD htodl(DWORD in) -{ - DWORD out; - PBYTE out_ptr = (PBYTE)&out; - out_ptr[0] = in ; out_ptr[1] = in >> 8; - out_ptr[2] = in >> 16; out_ptr[3] = in >> 24; - return out; -} - -void *rva_to_ptr(DWORD rva) -{ - PIMAGE_SECTION_HEADER section_header; - unsigned int i; - - for (i = 0, section_header = IMAGE_FIRST_SECTION(nt_header); - i < dtohl(nt_header->FileHeader.NumberOfSections); - i++, section_header++) - { - if (rva >= dtohl(section_header->VirtualAddress) && - rva < dtohl(section_header->VirtualAddress) + - dtohl(section_header->Misc.VirtualSize)) - { - return buffer + rva - dtohl(section_header->VirtualAddress) + - dtohl(section_header->PointerToRawData); - } - } - - return NULL; -} - -int export_compare_func(const void *a, const void *b) -{ - const export_t *ap = a; - const export_t *bp = b; - char *an = rva_to_ptr(ap->name); - char *bn = rva_to_ptr(bp->name); - return strcmp(an, bn); -} - -int main(int argc, char **argv) -{ - int fd_in, fd_out; - long len; - char hdrbuf[4] = { }, elfhdr[4] = { '\177', 'E', 'L', 'F' }; - PIMAGE_SECTION_HEADER section_header; - PIMAGE_DATA_DIRECTORY data_dir; - unsigned int i; - unsigned long checksum; - int fixup_exports = 0; - int fixup_sections = 0; - - /* - * Process parameters. - */ - - if (argc < 2) - { - printf("Usage: %s \n" - "Options:\n" - " -sections Sets section flags for PE image.\n" - " -exports Sort the names in export table.\n", - argv[0]); - return 1; - } - - for (i = 2; i < argc; i++) - { - if (!strcmp(argv[i], "-sections")) - fixup_sections = 1; - else if (!strcmp(argv[i], "-exports")) - fixup_exports = 1; - else - { fprintf(stderr, "Invalid option: %s\n", argv[i]); return 1; } - } - - /* - * Nothing to do. - */ - if (fixup_sections == 0 && fixup_exports == 0) - return 0; - - /* - * Read the whole file to memory. - */ - - fd_in = open(argv[1], O_RDONLY | O_BINARY); - if (fd_in == 0) - { - fprintf(stderr, "Can't open input file.\n"); - return 1; - } - - /* - * PowerPC ReactOS uses elf, so doesn't need pefixup - */ - len = read(fd_in, hdrbuf, sizeof(elfhdr)); - if (!memcmp(hdrbuf, elfhdr, sizeof(elfhdr))) - { - close(fd_in); - return 0; - } - - len = lseek(fd_in, 0, SEEK_END); - if (len < sizeof(IMAGE_DOS_HEADER)) - { - close(fd_in); - fprintf(stderr, "'%s' isn't a PE image (too short)\n", argv[1]); - return 1; - } - - /* Lower down we overwrite the byte at len, so here, we need at least - * one more byte than len. We'll be guaranteed one or two now. */ - buffer = malloc((len + 2) & ~1); - if (buffer == NULL) - { - close(fd_in); - fprintf(stderr, "Not enough memory available.\n"); - return 1; - } - - /* Read the whole input file into a buffer */ - lseek(fd_in, 0, SEEK_SET); - read(fd_in, buffer, len); - /* Here is where the block end overwrite was */ - if (len & 1) - buffer[len] = 0; - - close(fd_in); - - /* - * Check the headers and save pointers to them. - */ - - dos_header = (PIMAGE_DOS_HEADER)buffer; - nt_header = (PIMAGE_NT_HEADERS)(buffer + dtohl(dos_header->e_lfanew)); - - if (dtohs(dos_header->e_magic) != IMAGE_DOS_SIGNATURE || - dtohl(nt_header->Signature) != IMAGE_NT_SIGNATURE) - { - fprintf(stderr, "'%s' isn't a PE image (bad headers)\n", argv[1]); - free(buffer); - return 1; - } - - if (fixup_exports) - { - /* Sort export directory */ - data_dir = &nt_header->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT]; - if (dtohl(data_dir->Size) != 0) - { - PIMAGE_EXPORT_DIRECTORY export_directory; - DWORD *name_ptr; - WORD *ordinal_ptr; - export_t *exports; - - export_directory = (PIMAGE_EXPORT_DIRECTORY)rva_to_ptr(dtohl(data_dir->VirtualAddress)); - if (export_directory != NULL) - { - exports = malloc(sizeof(export_t) * dtohl(export_directory->NumberOfNames)); - if (exports == NULL) - { - fprintf(stderr, "Not enough memory.\n"); - free(buffer); - return 1; - } - - name_ptr = (DWORD *)rva_to_ptr(dtohl(export_directory->AddressOfNames)); - ordinal_ptr = (WORD *)rva_to_ptr(dtohl(export_directory->AddressOfNameOrdinals)); - - for (i = 0; i < dtohl(export_directory->NumberOfNames); i++) - { - exports[i].name = dtohl(name_ptr[i]); - exports[i].ordinal = dtohl(ordinal_ptr[i]); - } - - qsort(exports, dtohl(export_directory->NumberOfNames), sizeof(export_t), - export_compare_func); - - for (i = 0; i < dtohl(export_directory->NumberOfNames); i++) - { - name_ptr[i] = htodl(exports[i].name); - ordinal_ptr[i] = htodl(exports[i].ordinal); - } - - free(exports); - } - } - } - - if (fixup_sections) - { - /* Update section flags */ - for (i = 0, section_header = IMAGE_FIRST_SECTION(nt_header); - i < dtohl(nt_header->OptionalHeader.NumberOfRvaAndSizes); - i++, section_header++) - { - if (!strcmp((char*)section_header->Name, ".text") || - !strcmp((char*)section_header->Name, ".data") || - !strcmp((char*)section_header->Name, ".idata") || - !strcmp((char*)section_header->Name, ".rdata") || - !strcmp((char*)section_header->Name, ".bss")) - { - section_header->Characteristics |= htodl(IMAGE_SCN_MEM_NOT_PAGED); - section_header->Characteristics &= htodl(~IMAGE_SCN_MEM_DISCARDABLE); - } - else if (!strcmp((char*)section_header->Name, "INIT")) - { - section_header->Characteristics |= htodl(IMAGE_SCN_MEM_DISCARDABLE); - } - else if (!strcmp((char*)section_header->Name, "PAGE")) - { - section_header->Characteristics |= htodl(IMAGE_SCN_MEM_NOT_PAGED); - } - } - } - - /* Recalculate checksum */ - nt_header->OptionalHeader.CheckSum = 0; - checksum = 0; - for (i = 0; i < len; i += 2) - { - checksum += *(unsigned short *)(buffer + i); - checksum = (checksum + (checksum >> 16)) & 0xffff; - } - checksum += len; - nt_header->OptionalHeader.CheckSum = htods(checksum); - - /* Write the output file */ - fd_out = open(argv[1], O_WRONLY | O_BINARY); - write(fd_out, buffer, len); - close(fd_out); - - return 0; -} diff --git a/reactos/tools/pipetools/piperead.cpp b/reactos/tools/pipetools/piperead.cpp deleted file mode 100644 index 3ab4c4ccb73..00000000000 --- a/reactos/tools/pipetools/piperead.cpp +++ /dev/null @@ -1,236 +0,0 @@ -// -// piperead.cpp -// -// Martin Fuchs, 30.11.2003 -// -// Jan Roeloffzen, 26.1.2010 -// Pipe client, based on msdn example - - -#define WIN32_LEAN_AND_MEAN -#include -#include -#include - -#define PIPEREAD_VERSION "0.3" -#define PIPEREAD_NOPIPE (-101) - - // This definition currently missing in MinGW. -#ifndef FILE_FLAG_FIRST_PIPE_INSTANCE -#define FILE_FLAG_FIRST_PIPE_INSTANCE 0x00080000 -#endif - - -#define BUFSIZE 1024 - -static void print_error(DWORD win32_error) -{ - fprintf(stderr, "WIN32 error %lu\n", win32_error); -} - -static int pipeServer(char *path) -{ - HANDLE hPipe = CreateNamedPipe(path, PIPE_ACCESS_DUPLEX|FILE_FLAG_FIRST_PIPE_INSTANCE, PIPE_WAIT|PIPE_TYPE_BYTE, 1, 4096, 4096, 30000, NULL); - - if (hPipe == INVALID_HANDLE_VALUE) { - print_error(GetLastError()); - return 1; - } - - for(;;) { - DWORD read; - BYTE buffer[BUFSIZE]; - - if (!ReadFile(hPipe, buffer, sizeof(buffer), &read, NULL)) { - DWORD error = GetLastError(); - - if (error == ERROR_PIPE_LISTENING) { - Sleep(1000); - } else if (error == ERROR_BROKEN_PIPE) { - CloseHandle(hPipe); - - hPipe = CreateNamedPipe(path, PIPE_ACCESS_DUPLEX|FILE_FLAG_FIRST_PIPE_INSTANCE, PIPE_WAIT|PIPE_TYPE_BYTE, 1, 4096, 4096, 30000, NULL); - - if (hPipe == INVALID_HANDLE_VALUE) { - fprintf(stderr,"INVALID_HANDLE_VALUE\n"); - print_error(GetLastError()); - return 1; - } - } else { - fprintf(stderr,"error %lu\n",error); - print_error(error); - break; - } - } - - if (read) - fwrite(buffer, read, 1, stdout); - } - - if (!CloseHandle(hPipe)) - print_error(GetLastError()); - - return 0; -} - - -static int pipeClient(char *path) -{ - HANDLE hPipe=INVALID_HANDLE_VALUE; - TCHAR chBuf[BUFSIZE]; - BOOL fSuccess = FALSE; - DWORD cbRead; - DWORD Err; - int res = 0; - - setvbuf(stdout, NULL, _IONBF, 0); - while (1) { - hPipe = CreateFile( - path, // pipe name - GENERIC_READ, - 0, // no sharing - NULL, // default security attributes - OPEN_EXISTING, // opens existing pipe - 0, // default attributes - NULL); // no template file - - // Break if the pipe handle is valid. - if (hPipe != INVALID_HANDLE_VALUE) - break; - - // Exit if an error other than ERROR_PIPE_BUSY occurs. - Err = GetLastError(); - if (Err != ERROR_PIPE_BUSY) { - if (ERROR_FILE_NOT_FOUND == Err) - { - res = PIPEREAD_NOPIPE; - return res; - } - else - { - fprintf(stderr,"Could not open pipe %s. Error=%lu\n", path, Err ); - res = -1; - } - break; - } - - // All pipe instances are busy, so wait for 20 seconds. - if ( ! WaitNamedPipe(path, 20000)) { - fprintf(stderr,"Could not open pipe: 20 second wait timed out."); - res = -2; - break; - } - } - - if (!res) do { - fSuccess = ReadFile( - hPipe, // pipe handle - chBuf, // buffer to receive reply - BUFSIZE, // size of buffer - &cbRead, // number of bytes read - NULL); // not overlapped - - if ( ! fSuccess ) { - Err = GetLastError(); - if ( Err == ERROR_MORE_DATA ) { - fSuccess = TRUE; - } else { - fprintf(stderr, "ReadFile: Error %lu \n", Err ); - res = -9; - break; - } - } - - fwrite(chBuf,1,cbRead,stdout); - } while ( fSuccess); - - if ( ! fSuccess) { - fprintf(stderr, "ReadFile from pipe failed. Error=%lu\n", GetLastError() ); - } - - if (hPipe != INVALID_HANDLE_VALUE) - CloseHandle(hPipe); - - return res; - -} - -static int fileClient(const char *path) -{ - int res = 0; - FILE *fin; - int c; - - setvbuf(stdout, NULL, _IONBF, 0); - if (!(fin = fopen(path, "r"))) { - fprintf(stderr,"Could not fopen %s (%s)\n", path, strerror(errno) ); - return -1; - } - - while ((c = fgetc(fin)) != EOF) { - fputc(c, stdout); - } - - fclose(fin); - return res; -} - -void usage(void) -{ - fprintf(stderr, "piperead " PIPEREAD_VERSION "\n\n"); - fprintf(stderr, "Usage: piperead [-c] \n"); - fprintf(stderr, "-c means Client mode\n"); - fprintf(stderr, "Example: piperead -c \\\\.\\pipe\\kdbg | log2lines -c\n\n"); -} - -int main(int argc, char** argv) -{ - char path[MAX_PATH]; - const char* pipe_name; - const char* clientMode; - int res = 0; - - pipe_name = "com_1"; - clientMode = NULL; - switch (argc) { - case 3: - clientMode = *++argv; - if (strcmp(clientMode,"-c") != 0) { - clientMode = NULL; - fprintf(stderr,"Invalid option: %s\n", clientMode); - res = -6; - } - //fall through - case 2: - pipe_name = *++argv; - if (strcmp(pipe_name,"-h") == 0) { - res = -7; - } - break; - default: - res = -8; - break; - } - if (res) { - usage(); - return res; - } - - if ( pipe_name[0] == '\\' ) { - //assume caller specified full path - sprintf(path, "%s", pipe_name); - } else { - sprintf(path, "\\\\.\\pipe\\%s", pipe_name); - } - - if ( clientMode ) { - res = pipeClient(path); - if (res == PIPEREAD_NOPIPE) { - res = fileClient(pipe_name); - } - } else { - res = pipeServer(path); - } - - return res; -} diff --git a/reactos/tools/pipetools/pipespy.cpp b/reactos/tools/pipetools/pipespy.cpp deleted file mode 100644 index 653c7f1def4..00000000000 --- a/reactos/tools/pipetools/pipespy.cpp +++ /dev/null @@ -1,251 +0,0 @@ -/* - * PipeSpy - * Copyright (c) 2004, Skywing (skywing@valhallalegends.com) - * Released under the GNU GPL for the ReactOS project - * - * This program can be used to spy on a named pipe in Windows NT(+) - * or ReactOS. It is particularly intended to be used for - * understanding the remote kernel debugging protocol used - * by windows kd. - * - * USE: - * - * PipeSpy \\.\pipe\debug_server \\.\pipe\debug_client > PipeSpy.log - * - * VMware: act as client, connect to \\.\pipe\debug_server, pipe is connected - * to application - * - * WinDbg -k com:pipe,port=\\.\pipe\debug_client,resets=0 - * - * NOTE: - * - * This program hasn't really been tested against ReactOS, and has only - * been built with Visual Studio .NET 2003. - */ -#include -#include -#include - -HANDLE g_DebugServerPipe, g_DebugClientPipe; -CRITICAL_SECTION g_OutputLock; - -void dumphex(const char *buf, int len, int pos) -{ - int i, j; - for(j = 0; j < len; j += 16) { - for(i = 0; i < 16; i++) { - if(i + j < len) - printf("%02x%c", (unsigned char)buf[i + j], j + i + 1 == pos ? '*' : ' '); - else - printf(" "); - } - for(i = 0; i < 16; i++) { - if(i + j < len) - printf("%c", buf[i + j] >= ' ' ? buf[i + j] : '.'); - else - printf(" "); - } - printf("\n"); - } -} - -enum { - PIPEBUF_INITIAL_SIZE = 4096, - PIPEBUF_MAX_SIZE = 16384 -}; - -typedef struct _READ_OVERLAPPED { - OVERLAPPED ReadOverlapped; - char* Buffer; - HANDLE Pipe, OtherPipe; - bool Server; - bool Connected; -} READ_OVERLAPPED; - -VOID WINAPI WritePipeCompletion(DWORD dwErrorCode, DWORD dwNumberOfBytesTransferred, LPOVERLAPPED lpOverlapped) -{ - if(dwErrorCode) { - EnterCriticalSection(&g_OutputLock); - printf(lpOverlapped->hEvent ? "Server> Error %u writing to client pipe\n" : "Client> Error %u writing to server pipe\n", dwErrorCode); - LeaveCriticalSection(&g_OutputLock); - } - - free((void*)lpOverlapped); -} - -VOID WINAPI ReadPipeCompletion(DWORD dwErrorCode, DWORD dwNumberOfBytesTransferred, LPOVERLAPPED lpOverlapped) -{ - READ_OVERLAPPED* ReadOverlapped = (READ_OVERLAPPED*)lpOverlapped; - LPOVERLAPPED WriteOverlapped; - - EnterCriticalSection(&g_OutputLock); - - if(dwErrorCode) { - printf(ReadOverlapped->Server ? "Server> Error %u reading from pipe\n" : "Client> Error %u reading from pipe\n", dwErrorCode); - ReadOverlapped->Connected = false; - } else { - SYSTEMTIME SystemTime; - - GetLocalTime(&SystemTime); - printf(ReadOverlapped->Server ? "Server> [%02u:%02u:%02u.%03u] Received %u byte message:\n" : "Client> [%02u:%02u:%02u.%03u] Received %u byte message:\n", - SystemTime.wHour, SystemTime.wMinute, SystemTime.wSecond, SystemTime.wMilliseconds, dwNumberOfBytesTransferred); - dumphex(ReadOverlapped->Buffer, (int)dwNumberOfBytesTransferred, -1); - printf("\n"); - } - - LeaveCriticalSection(&g_OutputLock); - - WriteOverlapped = (LPOVERLAPPED)malloc(sizeof(OVERLAPPED)+dwNumberOfBytesTransferred); - - if(!WriteOverlapped) - printf(ReadOverlapped->Server ? "Server> Out of memory\n" : "Client> Out of memory\n"); - else { - ZeroMemory(WriteOverlapped, sizeof(OVERLAPPED)); - WriteOverlapped->hEvent = (HANDLE)ReadOverlapped->Server; - memcpy(((char*)WriteOverlapped)+sizeof(OVERLAPPED), ReadOverlapped->Buffer, dwNumberOfBytesTransferred); - WriteFileEx(ReadOverlapped->OtherPipe, ((char*)WriteOverlapped)+sizeof(OVERLAPPED), dwNumberOfBytesTransferred, WriteOverlapped, - WritePipeCompletion); - } - - if(!dwErrorCode) { - ZeroMemory(ReadOverlapped, sizeof(OVERLAPPED)); - ReadFileEx(ReadOverlapped->Pipe, ReadOverlapped->Buffer, PIPEBUF_INITIAL_SIZE, &ReadOverlapped->ReadOverlapped, ReadPipeCompletion); - } -} - -void __cdecl pipeserver(void* param) -{ - READ_OVERLAPPED ReadOverlapped; - - ReadOverlapped.Pipe = (HANDLE)param, ReadOverlapped.OtherPipe = ReadOverlapped.Pipe == g_DebugServerPipe ? g_DebugClientPipe : g_DebugServerPipe; - ReadOverlapped.Server = ReadOverlapped.Pipe == g_DebugServerPipe; - ReadOverlapped.Buffer = (char*)malloc(PIPEBUF_INITIAL_SIZE); - - for(;;) { - if(!ConnectNamedPipe(ReadOverlapped.Pipe, 0) && GetLastError() != ERROR_PIPE_CONNECTED) { - printf(ReadOverlapped.Server ? "Server> Error %u accepting pipe connection\n" : "Client> Error %u accepting pipe connection\n", - GetLastError()); - break; - } - - ReadOverlapped.Connected = true; - printf(ReadOverlapped.Server ? "Server> Connected\n" : "Client> Connected\n"); - - ZeroMemory(&ReadOverlapped.ReadOverlapped, sizeof(OVERLAPPED)); - ReadFileEx(ReadOverlapped.Pipe, ReadOverlapped.Buffer, PIPEBUF_INITIAL_SIZE, &ReadOverlapped.ReadOverlapped, ReadPipeCompletion); - - do { - SleepEx(INFINITE, TRUE); - } while(ReadOverlapped.Connected) ; - - DisconnectNamedPipe(ReadOverlapped.Pipe); - printf(ReadOverlapped.Server ? "Server> Disconnected\n" : "Client> Disconnected\n"); - } - - printf(ReadOverlapped.Server ? "Server> Shutting down\n" : "Client> Shutting down\n"); - - free(ReadOverlapped.Buffer); - CloseHandle(ReadOverlapped.Pipe); - SleepEx(0, TRUE); -} - -int main(int ac, char **av) -{ - if(ac != 3) { - printf("syntax: pipespy serverpipe clientpipe\n"); - return 0; - } - - g_DebugServerPipe = CreateNamedPipe(av[1], PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT, - 1, 4096, 4096, NMPWAIT_WAIT_FOREVER, 0); - - if(g_DebugServerPipe == INVALID_HANDLE_VALUE) { - printf("Error %u creating server pipe\n", GetLastError()); - return 0; - } - - g_DebugClientPipe = CreateNamedPipe(av[2], PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT, - 1, 4096, 4096, NMPWAIT_WAIT_FOREVER, 0); - - if(g_DebugClientPipe == INVALID_HANDLE_VALUE) { - printf("Error %u creating client pipe\n", GetLastError()); - CloseHandle(g_DebugServerPipe); - return 0; - } - - InitializeCriticalSection(&g_OutputLock); - _beginthread(pipeserver, 0, (void*)g_DebugServerPipe); - pipeserver((void*)g_DebugClientPipe); - DeleteCriticalSection(&g_OutputLock); - return 0; -} - - -/* - while(!Error) { - SleepEx(0, TRUE); - BufferPos = 0; - - if(BufferSize > PIPEBUF_MAX_SIZE) { - char* NewBuf = (char*)realloc(Buffer, PIPEBUF_MAX_SIZE); - - if(NewBuf) { - Buffer = NewBuf; - BufferSize = PIPEBUF_MAX_SIZE; - } - } - - for(;;) { - char* NewBuf; - - if(ReadFile(Pipe, Buffer+BufferPos, BufferSize-BufferPos, &Read, 0)) { - BufferPos += Read; - Error = 0; - break; - } - - Error = GetLastError(); - - printf("Error=%u read=%u\n", Error, Read); - - if(Error != ERROR_MORE_DATA) { - printf(Server ? "Server> Error %u reading from pipe\n" : "Client> Error %u reading from pipe\n", GetLastError()); - break; - } - - NewBuf = (char*)realloc(Buffer, BufferSize << 1); - - if(!NewBuf) { - printf(Server ? "Server> Out of memory\n" : "Client> Out of memory\n"); - break; - } - - BufferSize <<= 1; - BufferPos += Read; - Error = 0; - } - - if(Error) - break; - - WriteOverlapped = (LPOVERLAPPED)malloc(sizeof(OVERLAPPED)+BufferPos); - - if(!WriteOverlapped) - printf(Server ? "Server> Out of memory\n" : "Client> Out of memory\n"); - else { - ZeroMemory(WriteOverlapped, sizeof(OVERLAPPED)); - memcpy(((char*)WriteOverlapped)+sizeof(OVERLAPPED), Buffer, BufferPos); - WriteFileEx(OtherPipe, ((char*)WriteOverlapped)+sizeof(OVERLAPPED), BufferPos, WriteOverlapped, WritePipeCompletion); - } - - EnterCriticalSection(&g_OutputLock); - printf(Server ? "Server> Received %u byte message:\n" : "Client> Received %u byte message:\n", BufferPos); - dumphex(Buffer, (int)BufferPos, -1); - printf("\n"); - LeaveCriticalSection(&g_OutputLock); - } - - DisconnectNamedPipe(Pipe); - printf(Server ? "Server> Disconnected\n" : "Client> Disconnected\n"); - - */ diff --git a/reactos/tools/pipetools/pipetunnel.cpp b/reactos/tools/pipetools/pipetunnel.cpp deleted file mode 100644 index 23643ff5776..00000000000 --- a/reactos/tools/pipetools/pipetunnel.cpp +++ /dev/null @@ -1,317 +0,0 @@ -// -// pipetunnel.cpp -// -// Martin Fuchs, 30.11.2003 -// - -// -// Invoke as: "pipetunnel [pipe_name]", -// for example: "pipetunnel com_2" -// -// Then start up RectOS in VMWare, wait for the serial connect. -// After that you can connect GDB using the command "target remote :9999". -// - - -#define WIN32_LEAN_AND_MEAN -#include - -#include - -#ifdef _MSC_VER -#pragma comment(lib, "wsock32") -#endif - -#include -#include - - - // This definition currently missing in MinGW. -#ifndef FILE_FLAG_FIRST_PIPE_INSTANCE -#define FILE_FLAG_FIRST_PIPE_INSTANCE 0x00080000 -#endif - - -static void print_error(DWORD win32_error) -{ - fprintf(stderr, "WIN32 error %lu\n", win32_error); -} - - -#ifdef _DEBUG - - // critical section wrapper -struct CritSect : public CRITICAL_SECTION -{ - CritSect() - { - InitializeCriticalSection(this); - } - - ~CritSect() - { - DeleteCriticalSection(this); - } -}; - -static void dbg_trace(char mode, const char* buffer, int l) -{ - static char s_mode = '\0'; - static CritSect crit_sect; - - EnterCriticalSection(&crit_sect); - - if (l) { - for(const char*p=buffer; l--; ++p) { - if (mode != s_mode) { - putchar('\n'); - putchar(mode); - putchar(' '); - - s_mode = mode; - } - - if (*p=='\n' || !*p /*|| *p=='#'*/) { - /*if (*p == '#') - putchar(*p);*/ - - s_mode = '\0'; - } else - putchar(*p); - } - } - - LeaveCriticalSection(&crit_sect); -} - -#endif - - -static SOCKET s_srv_socket = (SOCKET)-1; - -SOCKET open_tcp_connect() -{ - if (s_srv_socket == (SOCKET)-1) { - SOCKADDR_IN srv_addr = {0}; - - srv_addr.sin_family = AF_INET; - srv_addr.sin_addr.s_addr = htonl(INADDR_ANY); - srv_addr.sin_port = htons(9999); - - s_srv_socket = socket(PF_INET, SOCK_STREAM, 0); - if (s_srv_socket == (SOCKET)-1) { - perror("socket()"); - return 0; - } - - if (bind(s_srv_socket, (struct sockaddr*) &srv_addr, sizeof(srv_addr)) == -1) { - perror("bind()"); - return 0; - } - - if (listen(s_srv_socket, 4) == -1) { - perror("listen()"); - return 0; - } - } - - SOCKADDR_IN rem_addr; - int rem_len = sizeof(rem_addr); - - for(;;) { - SOCKET sock = accept(s_srv_socket, (struct sockaddr*)&rem_addr, &rem_len); - - if (sock < 0) { - if (errno == EINTR) - continue; - - perror("accept()"); - return 0; - } - - return sock; - } -} - - - -struct WriterThread -{ - WriterThread(SOCKET sock, HANDLE hPipe) - : _sock(sock), - _hPipe(hPipe) - { - DWORD tid; - - HANDLE hThread = CreateThread(NULL, 0, WriterThreadRoutine, this, 0, &tid); - - if (hThread) { - SetThreadPriority(hThread, THREAD_PRIORITY_HIGHEST); - - CloseHandle(hThread); - } else - delete this; - } - -protected: - SOCKET _sock; - HANDLE _hPipe; - - static DWORD WINAPI WriterThreadRoutine(LPVOID param) - { - WriterThread* pThis = (WriterThread*) param; - - DWORD ret = pThis->Run(); - - delete pThis; - - return ret; - } - - DWORD Run() - { - char buffer[1024]; - - for(;;) { - int r = recv(_sock, buffer, sizeof(buffer), 0); - - if (r == -1) { - perror("recv()"); - fprintf(stderr, "debugger connection broken\n"); - _sock = (SOCKET)-1; - return 1; - } - - if (r) { - DWORD wrote; - - if (!WriteFile(_hPipe, buffer, r, &wrote, NULL)) - break; - -#ifdef _DEBUG - dbg_trace('<', buffer, r); -#endif - } - } - - return 0; - } -}; - - -LONG read_pipe(HANDLE hPipe, SOCKET sock) -{ - for(;;) { - DWORD read; - char buffer[1024]; - - // wait for input data - WaitForSingleObject(hPipe, INFINITE); - - if (!ReadFile(hPipe, buffer, sizeof(buffer), &read, NULL)) { - DWORD error = GetLastError(); - - if (error == ERROR_PIPE_LISTENING) - Sleep(1000); - else - return error; - } - - if (read) { -#ifdef _DEBUG - dbg_trace('>', buffer, read); -#endif - - if (!send(sock, buffer, read, 0)) { - perror("send()"); - return GetLastError(); - } - } - } -} - - -int main(int argc, char** argv) -{ - char path[MAX_PATH]; - const char* pipe_name; - - if (argc > 1) - pipe_name = *++argv; - else - pipe_name = "com_2"; - - sprintf(path, "\\\\.\\pipe\\%s", pipe_name); - - - // initialize winsock - WSADATA wsa_data; - - if (WSAStartup(MAKEWORD(2,2), &wsa_data)) { - fprintf(stderr, "WSAStartup() failed\n"); - return 0; - } - - - // increment priority to be faster than the cpu eating VMWare process - SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS); - SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST); - - - HANDLE hPipe = INVALID_HANDLE_VALUE; - - for(;;) { - DWORD read; - - if (hPipe == INVALID_HANDLE_VALUE) { - hPipe = CreateNamedPipe(path, PIPE_ACCESS_DUPLEX|FILE_FLAG_FIRST_PIPE_INSTANCE|FILE_FLAG_OVERLAPPED, PIPE_WAIT|PIPE_TYPE_BYTE, 1, 4096, 4096, 30000, NULL); - - if (hPipe == INVALID_HANDLE_VALUE) { - print_error(GetLastError()); - return 1; - } - } - - // wait for the client side of the pipe - while(!ReadFile(hPipe, NULL, 0, &read, NULL) && - GetLastError()==ERROR_PIPE_LISTENING) - Sleep(1000); - - puts("\nnamed pipe connected, now waiting for TCP connection..."); - - SOCKET sock = open_tcp_connect(); - if (sock == (SOCKET)-1) - break; - - puts("TCP connection established."); - - // launch writer thread - new WriterThread(sock, hPipe); - - // launch reader loop - LONG error = read_pipe(hPipe, sock); - - - // close TCP connectiom - closesocket(sock); - sock = (SOCKET)-1; - - // close named pipe - CloseHandle(hPipe); - hPipe = INVALID_HANDLE_VALUE; - - - if (error == ERROR_BROKEN_PIPE) - puts("\nconnection closed."); // normal connection termination - else { - print_error(GetLastError()); - break; - } - } - - if (hPipe != INVALID_HANDLE_VALUE) - if (!CloseHandle(hPipe)) - print_error(GetLastError()); - - return 0; -} diff --git a/reactos/tools/regtests2xml/regtests2xml.c b/reactos/tools/regtests2xml/regtests2xml.c deleted file mode 100644 index 3a079b302d4..00000000000 --- a/reactos/tools/regtests2xml/regtests2xml.c +++ /dev/null @@ -1,448 +0,0 @@ -/* - * Convert debug output from running the regression tests - * on ReactOS to an xml document. - * Casper S. Hornstrup - */ - -#include -#include -#include -#include -#include - -#ifdef WIN32 -#include -#include -#else -#include -#include -#include -#include -#include -#endif -#include -#ifndef WIN32 -#ifndef MAX_PATH -#define MAX_PATH 260 -#endif -#define DIR_SEPARATOR_CHAR '/' -#define DIR_SEPARATOR_STRING "/" -#else -#define DIR_SEPARATOR_CHAR '\\' -#define DIR_SEPARATOR_STRING "\\" -#endif - -typedef struct _TEST_RESULT_INFO -{ - struct _TEST_RESULT_INFO *next; - char testname[100]; - char result[200]; - int succeeded; /* 0 = failed, 1 = succeeded */ -} TEST_RESULT_INFO, *PTEST_RESULT_INFO; - - -static FILE *out; -static FILE *file_handle = NULL; -static char *file_buffer = NULL; -static unsigned int file_size = 0; -static int file_pointer = 0; -static PTEST_RESULT_INFO test_result_info_list = NULL; - - -static char* -convert_path(char* origpath) -{ - char* newpath; - int i; - - newpath = strdup(origpath); - - i = 0; - while (newpath[i] != 0) - { -#ifndef WIN32 - if (newpath[i] == '\\') - { - newpath[i] = '/'; - } -#else -#ifdef WIN32 - if (newpath[i] == '/') - { - newpath[i] = '\\'; - } -#endif -#endif - i++; - } - return(newpath); -} - -static void -write_line(char *line) -{ - char buf[200]; - - memset(buf, 0, sizeof(buf)); - strcpy(buf, line); - /* Terminate the line */ - buf[strlen(buf)] = '\r'; - buf[strlen(buf)] = '\n'; - - (void)fwrite(&buf[0], 1, strlen(buf), out); -} - - -static void -read_file(char *filename) -{ - file_handle = fopen(filename, "rb"); - if (file_handle == NULL) - { - printf("Can't open %s\n", filename); - exit(1); - } - - // Get the size of the file - fseek(file_handle, 0, SEEK_END); - file_size = ftell(file_handle); - - // Load it all into memory - file_buffer = malloc(file_size); - if (file_buffer == NULL) - { - fclose(file_handle); - printf("Out of memory\n"); - exit(1); - } - fseek(file_handle, 0, SEEK_SET); - if (file_size > 0) - { - if (fread (file_buffer, 1, file_size, file_handle) < 1) - { - fclose(file_handle); - printf("Read error in file %s\n", filename); - exit(1); - } - } - - file_pointer = 0; -} - -static void -close_file() -{ - free(file_buffer); - file_buffer = NULL; - fclose(file_handle); - file_handle = NULL; - file_pointer = 0; -} - -static int -is_whitespace(char ch) -{ - if (ch == ' ') - { - return 1; - } - if (ch == '\t') - { - return 1; - } - return 0; -} - -static int -is_eol_char(char ch) -{ - if (ch == '\r') - { - return 1; - } - if (ch == '\n') - { - return 1; - } - return 0; -} - -static void -skip_line() -{ - while ((file_pointer < file_size) && (!is_eol_char(file_buffer[file_pointer]))) - { - file_pointer++; - } - if ((file_pointer < file_size) && (is_eol_char(file_buffer[file_pointer]))) - { - file_pointer++; - if ((file_pointer < file_size) && (file_buffer[file_pointer] == '\n')) - { - file_pointer++; - } - } -} - -static void -skip_whitespace() -{ - while ((file_pointer < file_size) && !is_eol_char(file_buffer[file_pointer]) - && is_whitespace(file_buffer[file_pointer])) - { - file_pointer++; - } -} - -static int -skip_to_next_test() -{ - static char test_marker[] = "ROSREGTEST:"; - int found_test = 0; - - while ((file_pointer < file_size) && (!found_test)) - { - skip_whitespace(); - found_test = 1; - int i = 0; - while (1) - { - if (i >= strlen(test_marker)) - { - break; - } - if (is_eol_char(file_buffer[file_pointer])) - { - found_test = 0; - break; - } - if (file_buffer[file_pointer] != test_marker[i]) - { - found_test = 0; - break; - } - file_pointer++; - i++; - } - if (!found_test) - { - skip_line(); - } - } - return found_test; -} - -static int -read_until(char ch, char* buf) -{ - int start = file_pointer; - while ((file_pointer < file_size)) - { - if (file_buffer[file_pointer] == ch) - { - strncpy(buf, &file_buffer[start], file_pointer - start); - buf[file_pointer - start] = 0; - return 1; - } - file_pointer++; - } - return 0; -} - -static int -read_until_end(char* buf) -{ - int start = file_pointer; - while ((file_pointer < file_size)) - { - if (is_eol_char(file_buffer[file_pointer])) - { - strncpy(buf, &file_buffer[start], file_pointer - start); - buf[file_pointer - start] = 0; - skip_line(); - return 1; - } - file_pointer++; - } - return 0; -} - -static void -parse_file(char *filename) -{ - PTEST_RESULT_INFO test_result_info; - - read_file(filename); - - do - { - if (!skip_to_next_test()) - { - break; - } - - /* - * FORMAT: - * [ROSREGTEST:][space][|][][|][space][Status:][space][] - */ - - test_result_info = malloc(sizeof(TEST_RESULT_INFO)); - if (test_result_info == NULL) - { - printf("Out of memory\n"); - exit(1); - } - - /* Skip whitespaces */ - skip_whitespace(); - - /* [|] */ - file_pointer++; - - /* */ - read_until(')', test_result_info->testname); - - /* [|] */ - file_pointer++; - - /* [space] */ - file_pointer++; - - /* Status: */ - file_pointer += 7; - - /* [space] */ - file_pointer++; - - /* */ - read_until_end(test_result_info->result); - - if (strncmp(test_result_info->result, "Success", 7) == 0) - { - test_result_info->succeeded = 1; - } - else - { - test_result_info->succeeded = 0; - } - - test_result_info->next = test_result_info_list; - test_result_info_list = test_result_info; - } while (1); - - close_file(); -} - -static void -generate_xml() -{ - PTEST_RESULT_INFO test_result_info; - char buf[200]; - int success_rate; - int succeeded_total; - int failed_total; - - succeeded_total = 0; - failed_total = 0; - - test_result_info = test_result_info_list; - while (test_result_info != NULL) - { - if (test_result_info->succeeded) - { - succeeded_total++; - } - else - { - failed_total++; - } - test_result_info = test_result_info->next; - } - - if (succeeded_total + failed_total > 0) - { - success_rate = ((succeeded_total) * 100) / (succeeded_total + failed_total); - } - else - { - success_rate = 100; - } - - write_line(""); - write_line(""); - - sprintf(buf, "", - success_rate, succeeded_total, failed_total); - write_line(buf); - - if (test_result_info_list != NULL) - { - test_result_info = test_result_info_list; - while (test_result_info != NULL) - { - sprintf(buf, "", - test_result_info->testname, - test_result_info->succeeded == 1 ? "true" : "false", - test_result_info->result); - write_line(buf); - write_line(""); - test_result_info = test_result_info->next; - } - } - - write_line(""); -} - -static char HELP[] = - "REGTESTS2XML input-filename output-filename\n" - "\n" - " input-filename File containing output from running regression tests\n" - " output-filename File to create\n"; - -int main(int argc, char **argv) -{ - char *input_file; - char *output_file; - - if (argc < 3) - { - puts(HELP); - return 1; - } - - input_file = convert_path(argv[1]); - if (input_file[0] == 0) - { - free(input_file); - printf("Missing input-filename\n"); - return 1; - } - - output_file = convert_path(argv[2]); - if (output_file[0] == 0) - { - free(output_file); - free(input_file); - printf("Missing output-filename\n"); - return 1; - } - - out = fopen(output_file, "wb"); - if (out == NULL) - { - free(input_file); - free(output_file); - printf("Cannot open output file"); - return 1; - } - - parse_file(input_file); - - generate_xml(); - - free(input_file); - free(output_file); - fclose(out); - - return 0; -} diff --git a/reactos/tools/rgenstat/llmosrt.c b/reactos/tools/rgenstat/llmosrt.c deleted file mode 100644 index ef2e1794b79..00000000000 --- a/reactos/tools/rgenstat/llmosrt.c +++ /dev/null @@ -1,106 +0,0 @@ -/* $Id$ */ -/* A Linked-List Memory Sort - by Philip J. Erdelsky - pje@acm.org - http://www.alumni.caltech.edu/~pje/ -*/ - -/* According to his website, this file was released into the public domain by Phillip J. Erdelsky */ - - -#include - -void *sort_linked_list(void *p, unsigned index, int (*compare)(void *, void *)) -{ - unsigned base; - unsigned long block_size; - - struct record - { - struct record *next[1]; - /* other members not directly accessed by this function */ - }; - - struct tape - { - struct record *first, *last; - unsigned long count; - } tape[4]; - - /* Distribute the records alternately to tape[0] and tape[1]. */ - - tape[0].count = tape[1].count = 0L; - tape[0].first = NULL; - base = 0; - while (p != NULL) - { - struct record *next = ((struct record *)p)->next[index]; - ((struct record *)p)->next[index] = tape[base].first; - tape[base].first = ((struct record *)p); - tape[base].count++; - p = next; - base ^= 1; - } - - /* If the list is empty or contains only a single record, then */ - /* tape[1].count == 0L and this part is vacuous. */ - - for (base = 0, block_size = 1L; tape[base+1].count != 0L; - base ^= 2, block_size <<= 1) - { - int dest; - struct tape *tape0, *tape1; - tape0 = tape + base; - tape1 = tape + base + 1; - dest = base ^ 2; - tape[dest].count = tape[dest+1].count = 0; - for (; tape0->count != 0; dest ^= 1) - { - unsigned long n0, n1; - struct tape *output_tape = tape + dest; - n0 = n1 = block_size; - while (1) - { - struct record *chosen_record; - struct tape *chosen_tape; - if (n0 == 0 || tape0->count == 0) - { - if (n1 == 0 || tape1->count == 0) - break; - chosen_tape = tape1; - n1--; - } - else if (n1 == 0 || tape1->count == 0) - { - chosen_tape = tape0; - n0--; - } - else if ((*compare)(tape0->first, tape1->first) > 0) - { - chosen_tape = tape1; - n1--; - } - else - { - chosen_tape = tape0; - n0--; - } - chosen_tape->count--; - chosen_record = chosen_tape->first; - chosen_tape->first = chosen_record->next[index]; - if (output_tape->count == 0) - output_tape->first = chosen_record; - else - output_tape->last->next[index] = chosen_record; - output_tape->last = chosen_record; - output_tape->count++; - } - } - } - - if (tape[base].count > 1L) - tape[base].last->next[index] = NULL; - return tape[base].first; -} - -/* EOF */ diff --git a/reactos/tools/rgenstat/module_list.txt b/reactos/tools/rgenstat/module_list.txt deleted file mode 100644 index 269ab99ab9d..00000000000 --- a/reactos/tools/rgenstat/module_list.txt +++ /dev/null @@ -1,137 +0,0 @@ -clb base\applications\regedit\clb -notifyhook base\shell\explorer\notifyhook -mesa32 dll\3rdparty\mesa32 -access dll\cpl\access -appwiz dll\cpl\appwiz -desk dll\cpl\desk -hdwwiz dll\cpl\hdwwiz -intl dll\cpl\intl -main dll\cpl\main -mmsys dll\cpl\mmsys -ncpa dll\cpl\ncpa -powercfg dll\cpl\powercfg -sysdm dll\cpl\sysdm -timedate dll\cpl\timedate -d3d8thk dll\directx\d3d8thk -devenum dll\directx\devenum -ddraw dll\directx\ddraw -dinput dll\directx\dinput -dinput8 dll\directx\dinput8 -dplay dll\directx\dplay -dplayx dll\directx\dplayx -dsound dll\directx\dsound -dxdiagn dll\directx\dxdiagn -kbdda dll\keyboard\kbdda -kbddv dll\keyboard\kbddv -kbdes dll\keyboard\kbdes -kbdfr dll\keyboard\kbdfr -kbdgr dll\keyboard\kbdgr -kbdhe dll\keyboard\kbdhe -kbdheb dll\keyboard\kbdheb -kbdhu dll\keyboard\kbdhu -kbdru dll\keyboard\kbdru -kbdsg dll\keyboard\kbdsg -kbdsk dll\keyboard\kbdsk -kbduk dll\keyboard\kbduk -kbdus dll\keyboard\kbdus -kbdbe dll\keyboard\kbdbe -kbdur dll\keyboard\kbdur -kbdpo dll\keyboard\kbdpo -ntdll dll\ntdll -acledit dll\win32\acledit -aclui dll\win32\aclui -advapi32 dll\win32\advapi32 -advpack dll\win32\advpack -authz dll\win32\authz -avifil32 dll\win32\avifil32 -cabinet dll\win32\cabinet -cards dll\win32\cards -cfgmgr32 dll\win32\cfgmgr32 -console dll\cpl\console -slayer dll\shellext\slayer -comctl32 dll\win32\comctl32 -comdlg32 dll\win32\comdlg32 -crtdll dll\win32\crtdll -crypt32 dll\win32\crypt32 -cryptdll dll\win32\cryptdll -dbghelp dll\win32\dbghelp -devmgr dll\win32\devmgr -dhcpcsvc dll\win32\dhcpcsvc -dnsapi dll\win32\dnsapi -fmifs dll\win32\fmifs -gdi32 dll\win32\gdi32 -gdiplus dll\win32\gdiplus -glu32 dll\win32\glu32 -hid dll\win32\hid -icmp dll\win32\icmp -imagehlp dll\win32\imagehlp -imm32 dll\win32\imm32 -iphlpapi dll\win32\iphlpapi -kernel32 dll\win32\kernel32 -lsasrv dll\win32\lsasrv -lz32 dll\win32\lz32 -mapi32 dll\win32\mapi32 -mmdrv dll\win32\mmdrv -mpr dll\win32\mpr -msacm32 dll\win32\msacm32 -msafd dll\win32\msafd -msgina dll\win32\msgina -msi dll\win32\msi -msimg32 dll\win32\msimg32 -msvcrt dll\win32\msvcrt -msvcrt20 dll\win32\msvcrt20 -msvfw32 dll\win32\msvfw32 -mswsock dll\win32\mswsock -netapi32 dll\win32\netapi32 -netcfgx dll\win32\netcfgx -newdev dll\win32\newdev -ntmarta dll\win32\ntmarta -objsel dll\win32\objsel -ole32 dll\win32\ole32 -oleacc dll\win32\oleacc -oleaut32 dll\win32\oleaut32 -oledlg dll\win32\oledlg -olepro32 dll\win32\olepro32 -opengl32 dll\win32\opengl32 -powrprof dll\win32\powrprof -psapi dll\win32\psapi -riched20 dll\win32\riched20 -riched32 dll\win32\riched32 -rpcrt4 dll\win32\rpcrt4 -samlib dll\win32\samlib -samsrv dll\win32\samsrv -secur32 dll\win32\secur32 -security dll\win32\security -serialui dll\win32\serialui -setupapi dll\win32\setupapi -shdocvw dll\win32\shdocvw -shell32 dll\win32\shell32 -shfolder dll\win32\shfolder -shlwapi dll\win32\shlwapi -smdll dll\win32\smdll -snmpapi dll\win32\snmpapi -syssetup dll\win32\syssetup -twain_32 dll\win32\twain_32 -urlmon dll\win32\urlmon -user32 dll\win32\user32 -userenv dll\win32\userenv -uxtheme dll\win32\uxtheme -vdmdbg dll\win32\vdmdbg -version dll\win32\version -wininet dll\win32\wininet -midimap dll\win32\winmm\midimap -wavemap dll\win32\msacm32\msacm32.drv -winmm dll\win32\winmm -winspool dll\win32\winspool -wintrust dll\win32\wintrust -ws2_32 dll\win32\ws2_32 -ws2_32_new dll\win32\ws2_32_new -ws2help dll\win32\ws2help -wshirda dll\win32\wshirda -wsock32 dll\win32\wsock32 -wshtcpip dll\win32\wshtcpip -bda drivers\multimedia\bdasup -framebuf drivers\video\displays\framebuf -ks drivers\ksfilter\ks -portcls drivers\wdm\audio\backpln\portcls -vgaddi drivers\video\displays\vga diff --git a/reactos/tools/rgenstat/rgenstat.c b/reactos/tools/rgenstat/rgenstat.c deleted file mode 100644 index ea3ed91e12e..00000000000 --- a/reactos/tools/rgenstat/rgenstat.c +++ /dev/null @@ -1,922 +0,0 @@ -/* - * Generate a file with API status information from a list - * of files in a directory. - * Casper S. Hornstrup - */ - -#include -#include -#include -#include -#include - -#ifdef WIN32 -#include -#include -#include -int __cdecl strcasecmp (const char * __sz1, const char * __sz2) - {return _stricmp (__sz1, __sz2);} -#else -#if !defined(__FreeBSD__) && !defined(__APPLE__) -#include -#endif -#include -#include -#include -#include -#endif -#include -#ifndef WIN32 -#ifndef MAX_PATH -#define MAX_PATH 260 -#endif -#define DIR_SEPARATOR_CHAR '/' -#define DIR_SEPARATOR_STRING "/" -#else -#define DIR_SEPARATOR_CHAR '\\' -#define DIR_SEPARATOR_STRING "\\" -#endif - -#define TAG_UNKNOWN -1 -#define TAG_IMPLEMENTED 0 -#define TAG_UNIMPLEMENTED 1 - -typedef struct _API_INFO -{ - struct _API_INFO *next; - int tag_id; - char name[100]; - char filename[MAX_PATH]; -} API_INFO, *PAPI_INFO; - - -PAPI_INFO sort_linked_list(PAPI_INFO, - unsigned, int (*)(PAPI_INFO, PAPI_INFO)); - - -static FILE *in; -static FILE *out; -static FILE *file_handle = NULL; -static char *file_buffer = NULL; -static unsigned int file_size = 0; -static unsigned int file_pointer = 0; -static char tagname[200]; -static PAPI_INFO api_info_list = NULL; - - -static char* -convert_path(char* origpath) -{ - char* newpath; - int i; - - newpath = strdup(origpath); - - i = 0; - while (newpath[i] != 0) - { -#ifndef WIN32 - if (newpath[i] == '\\') - { - newpath[i] = '/'; - } -#else -#ifdef WIN32 - if (newpath[i] == '/') - { - newpath[i] = '\\'; - } -#endif -#endif - i++; - } - return(newpath); -} - -static char* -path_to_url(char* path) -{ - int i; - - i = 0; - while (path[i] != 0) - { - if (path[i] == '\\') - { - path[i] = '/'; - } - i++; - } - return(path); -} - -static void -write_line(char *line) -{ - char buf[200]; - - memset(buf, 0, sizeof(buf)); - strcpy(buf, line); - /* Terminate the line */ - buf[strlen(buf)] = '\r'; - buf[strlen(buf)] = '\n'; - - (void)fwrite(&buf[0], 1, strlen(buf), out); -} - - -static void -read_file(char *filename) -{ - file_handle = fopen(filename, "rb"); - if (file_handle == NULL) - { - printf("Can't open %s\n", filename); - exit(1); - } - - // Get the size of the file - fseek(file_handle, 0, SEEK_END); - file_size = ftell(file_handle); - - // Load it all into memory - file_buffer = malloc(file_size); - if (file_buffer == NULL) - { - fclose(file_handle); - printf("Out of memory\n"); - exit(1); - } - fseek(file_handle, 0, SEEK_SET); - if (file_size > 0) - { - if (fread (file_buffer, 1, file_size, file_handle) < 1) - { - fclose(file_handle); - printf("Read error in file %s\n", filename); - exit(1); - } - } - - file_pointer = 0; -} - -static void -close_file() -{ - free(file_buffer); - file_buffer = NULL; - fclose(file_handle); - file_handle = NULL; - file_pointer = 0; -} - -static int -is_whitespace(char ch) -{ - if (ch == ' ') - { - return 1; - } - if (ch == '\t') - { - return 1; - } - return 0; -} - -static int -is_eol_char(char ch) -{ - if (ch == '\r') - { - return 1; - } - if (ch == '\n') - { - return 1; - } - return 0; -} - -static int -is_end_of_tag(char ch) -{ - if ((ch >= 'a') && (ch <= 'z')) - { - return 0; - } - if ((ch >= 'A') && (ch <= 'Z')) - { - return 0; - } - if ((ch >= '0') && (ch <= '9')) - { - return 0; - } - if (ch == '_') - { - return 0; - } - return 1; -} - -static int -is_end_of_name(char ch) -{ - /* Currently the same as is_end_of_tag() */ - return is_end_of_tag(ch); -} - -static int -is_valid_file(char *filename) -{ - char ext[MAX_PATH]; - int i; - - i = strlen(filename); - while (i > 0 && filename[i] != '.') - { - i--; - } - if (i > 0) - { - memset(ext, 0, sizeof(ext)); - strncpy(&ext[0], &filename[i], strlen(&filename[i])); - - if ((strncmp(ext, ".c", 2) == 0) || (strncmp(ext, ".C", 2) == 0)) - { - return 1; - } - } - return 0; -} - -static int -get_tag_id(char *tag) -{ - if (strcasecmp(tag, "implemented") == 0) - { - return TAG_IMPLEMENTED; - } - if (strcasecmp(tag, "unimplemented") == 0) - { - return TAG_UNIMPLEMENTED; - } - return TAG_UNKNOWN; -} - -static int -skip_to_next_tag() -{ - unsigned int start; - int end_of_tag; - int found_tag = 0; - int tag_id; - int len; - - tagname[0] = 0; - while ((file_pointer < file_size) && (!found_tag)) - { - if (file_buffer[file_pointer] == '@') - { - file_pointer++; - start = file_pointer; - end_of_tag = 0; - while ((file_pointer < file_size) && (!end_of_tag)) - { - end_of_tag = is_end_of_tag(file_buffer[file_pointer]); - file_pointer++; - } - len = file_pointer > start ? file_pointer - start - 1 : 0; - strncpy(tagname, &file_buffer[start], len); - tagname[len] = 0; - - tag_id = get_tag_id(tagname); - if (tag_id != TAG_UNKNOWN) - { - return tag_id; - } - } - file_pointer++; - } - - return TAG_UNKNOWN; -} - -static void -skip_line() -{ - while ((file_pointer < file_size) && (!is_eol_char(file_buffer[file_pointer]))) - { - file_pointer++; - } - if ((file_pointer < file_size) && (file_buffer[file_pointer] == '\n')) - { - file_pointer++; - } -} - -static void -skip_comments() -{ - while ((file_pointer < file_size)) - { - if (file_buffer[file_pointer] == '*') - { - if ((file_pointer + 1 < file_size)) - { - if (file_buffer[file_pointer + 1] == '/') - { - skip_line(); - return; - } - } - } - file_pointer++; - } -} - -static int -get_previous_identifier(unsigned int end, char *name) -{ - unsigned int my_file_pointer = end; - int len; - - name[0] = 0; - - while ((my_file_pointer > 0) && (is_whitespace(file_buffer[my_file_pointer]) - || is_eol_char(file_buffer[my_file_pointer]))) - { - my_file_pointer--; - } - - /* Skip any comments between function name and it's parameters */ - if ((my_file_pointer > 0) && (file_buffer[my_file_pointer] == '/')) - { - if ((my_file_pointer > 0) && (file_buffer[my_file_pointer - 1] == '*')) - { - my_file_pointer--; - while ((my_file_pointer > 0) && !((file_buffer[my_file_pointer] == '*') - && (file_buffer[my_file_pointer - 1] == '/'))) - { - my_file_pointer--; - } - my_file_pointer -= 2; - } - } - - /* Skip any remaining whitespace */ - while ((my_file_pointer > 0) && (is_whitespace(file_buffer[my_file_pointer]))) - { - my_file_pointer--; - } - - end = my_file_pointer; - while ((my_file_pointer > 0)) - { - if (is_end_of_name(file_buffer[my_file_pointer])) - { - len = end - my_file_pointer; - strncpy(name, &file_buffer[my_file_pointer + 1], len); - name[len] = 0; - return 1; - } - my_file_pointer--; - } - - return 0; -} - -static int -skip_to_next_name(char *name) -{ - while ((file_pointer < file_size)) - { - if (file_buffer[file_pointer] == '(') - { - return get_previous_identifier(file_pointer - 1, name); - } - file_pointer++; - } - return 0; -} - -// Build a path and filename so it is of the format [module][directory][filename]. -// Also convert all backslashes into forward slashes. -static void -get_filename(char *cvspath, char *filename, char *result) -{ - strcpy(result, cvspath); - strcat(result, filename); - path_to_url(result); -} - -static void -parse_file(char *fullname, char *cvspath, char *filename) -{ - PAPI_INFO api_info; - char prev[200]; - char name[200]; - int tag_id; - - read_file(fullname); - - prev[0] = 0; - do - { - tag_id = skip_to_next_tag(); - if (tag_id == TAG_UNKNOWN) - { - break; - } - - /* Skip rest of the comments between the tag and the function name */ - skip_comments(); - - if (skip_to_next_name(name)) - { - if (strlen(name) == 0) - { - printf("Warning: empty function name in file %s. Previous function name was %s.\n", - fullname, prev); - } - api_info = malloc(sizeof(API_INFO)); - if (api_info == NULL) - { - printf("Out of memory\n"); - exit(1); - } - - api_info->tag_id = tag_id; - strcpy(api_info->name, name); - - get_filename(cvspath, filename, api_info->filename); - - api_info->next = api_info_list; - api_info_list = api_info; - strcpy(prev, name); - } - } while (1); - - close_file(); -} - -#ifdef WIN32 - -/* Win32 version */ -static void -process_directory (char *path, char *cvspath) -{ - struct _finddata_t f; - int findhandle; - char searchbuf[MAX_PATH]; - char buf[MAX_PATH]; - char newcvspath[MAX_PATH]; - - strcpy(searchbuf, path); - strcat(searchbuf, "*.*"); - - findhandle =_findfirst(searchbuf, &f); - if (findhandle != -1) - { - do - { - if (f.attrib & _A_SUBDIR) - { - if (f.name[0] != '.') - { - strcpy(buf, path); - strcat(buf, f.name); - strcat(buf, DIR_SEPARATOR_STRING); - - strcpy(newcvspath, cvspath); - strcat(newcvspath, f.name); - strcat(newcvspath, "/"); - - process_directory(buf, newcvspath); - } - continue; - } - - strcpy(buf, path); - strcat(buf, f.name); - - /* Must be a .c file */ - if (!is_valid_file(buf)) - { - continue; - } - - parse_file(buf, cvspath, f.name); - } - while (_findnext(findhandle, &f) == 0); - _findclose(findhandle); - } - else - { - printf("Cannot open directory '%s'", path); - exit(1); - } -} - -#else - -/* Linux version */ -static void -process_directory (char *path, char *cvspath) -{ - DIR *dirp; - struct dirent *entry; - struct stat stbuf; - char buf[MAX_PATH]; - char newcvspath[MAX_PATH]; - -#ifdef HAVE_D_TYPE - dirp = opendir(path); - if (dirp != NULL) - { - while ((entry = readdir(dirp)) != NULL) - { - if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) - continue; // skip self and parent - - if (entry->d_type == DT_REG) // normal file - { - // Check for an absolute path - if (path[0] == DIR_SEPARATOR_CHAR) - { - strcpy(buf, path); - strcat(buf, DIR_SEPARATOR_STRING); - strcat(buf, entry->d_name); - } - else - { - if (!getcwd(buf, sizeof(buf))) - { - printf("Can't get CWD: %s\n", strerror(errno)); - return; - } - strcat(buf, DIR_SEPARATOR_STRING); - strcat(buf, path); - strcat(buf, entry->d_name); - } - - if (stat(buf, &stbuf) == -1) - { - printf("Can't access '%s' (%s)\n", buf, strerror(errno)); - return; - } - - if (S_ISDIR(stbuf.st_mode)) - { - strcpy(newcvspath, cvspath); - strcat(newcvspath, f.name); - strcat(newcvspath, "/"); - - process_directory(buf, newcvspath); - continue; - } - - /* Must be a .c file */ - if (!is_valid_file(buf)) - { - continue; - } - - parse_file(buf, cvspath, entry->d_name); - } - } - closedir(dirp); - } - else - { - printf("Can't open %s\n", path); - exit(1); - } - -#else - - dirp = opendir(path); - if (dirp != NULL) - { - while ((entry = readdir(dirp)) != NULL) - { - if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) - continue; // skip self and parent - - // Check for an absolute path - if (path[0] == DIR_SEPARATOR_CHAR) - { - strcpy(buf, path); - strcat(buf, DIR_SEPARATOR_STRING); - strcat(buf, entry->d_name); - } - else - { - if (!getcwd(buf, sizeof(buf))) - { - printf("Can't get CWD: %s\n", strerror(errno)); - return; - } - strcat(buf, DIR_SEPARATOR_STRING); - strcat(buf, path); - strcat(buf, entry->d_name); - } - - if (stat(buf, &stbuf) == -1) - { - printf("Can't access '%s' (%s)\n", buf, strerror(errno)); - return; - } - - if (S_ISDIR(stbuf.st_mode)) - { - strcpy(newcvspath, cvspath); - strcat(newcvspath, entry->d_name); - strcat(newcvspath, "/"); - - process_directory(buf, newcvspath); - continue; - } - - /* Must be a .c file */ - if (!is_valid_file(buf)) - { - continue; - } - - parse_file(buf, cvspath, entry->d_name); - } - closedir(dirp); - } - else - { - printf("Can't open %s\n", path); - exit(1); - } - -#endif -} - -#endif - -/* - * This function compares two API entries. It returns a negative value if p is - * before q, or a positive value if p is after q. - */ -static int -compare_api_order(PAPI_INFO p, PAPI_INFO q) -{ - return strcmp(p->name, q->name); -} - -char * -get_filename_without_base(char *component_base, - char *filename) -{ - return &filename[strlen(component_base)]; -} - -static void -generate_xml_for_component(char *component_name, - char *component_base) -{ - PAPI_INFO api_info; - char canonical_base[MAX_PATH]; - char buf[200]; - int complete; - int implemented_total; - int unimplemented_total; - - // Sort list - api_info_list = sort_linked_list(api_info_list, 0, compare_api_order); - - implemented_total = 0; - unimplemented_total = 0; - - api_info = api_info_list; - while (api_info != NULL) - { - if (api_info->tag_id == TAG_IMPLEMENTED) - implemented_total ++; - else if (api_info->tag_id == TAG_UNIMPLEMENTED) - unimplemented_total ++; - - api_info = api_info->next; - } - - if (implemented_total + unimplemented_total > 0) - complete = ((implemented_total) * 100) / (implemented_total + unimplemented_total); - else - complete = 100; - - strcpy(canonical_base, component_base); - path_to_url(canonical_base); - - sprintf(buf, "", - component_name, canonical_base, complete, implemented_total, unimplemented_total); - write_line(buf); - - if (api_info_list != NULL) - { - write_line(""); - - api_info = api_info_list; - while (api_info != NULL) - { - sprintf(buf, "", - api_info->name, - api_info->tag_id == TAG_IMPLEMENTED ? "true" : "false", - get_filename_without_base(component_base, - api_info->filename)); - write_line(buf); - api_info = api_info->next; - } - - write_line(""); - } - - write_line(""); -} - -static void -read_input_file(char *input_file) -{ - char component_name[MAX_PATH]; - char component_path[MAX_PATH]; - char *canonical_path; - unsigned int index; - unsigned int start; - PAPI_INFO api_info; - PAPI_INFO next_api_info; - char *buffer; - unsigned int size; - int len; - - in = fopen(input_file, "rb"); - if (in == NULL) - { - printf("Cannot open input file"); - exit(1); - } - - // Get the size of the file - fseek(in, 0, SEEK_END); - size = ftell(in); - - // Load it all into memory - buffer = malloc(size); - if (buffer == NULL) - { - fclose(in); - printf("Out of memory\n"); - exit(1); - } - fseek(in, 0, SEEK_SET); - if (fread (buffer, 1, size, in) < 1) - { - fclose(in); - printf("Read error in file %s\n", input_file); - exit(1); - } - - index = 0; - - write_line(""); - write_line(""); - write_line(""); - write_line(""); - - while (1) - { - /* Free previous list */ - for (api_info = api_info_list; api_info != NULL; api_info = next_api_info) - { - next_api_info = api_info->next; - free(api_info); - } - api_info_list = NULL; - - /* Skip whitespace and eol characters */ - while ((index < size) && (is_whitespace(buffer[index]) || (is_eol_char(buffer[index])))) - index++; - if ((file_pointer < size) && (buffer[index] == '\n')) - index++; - - if (buffer[index] == ';') - { - /* Skip comments */ - while ((index < size) && (!is_eol_char(buffer[index]))) - index++; - if ((index < size) && (buffer[index] == '\n')) - index++; - continue; - } - - /* Get component name */ - start = index; - while ((index < size) && (!is_whitespace(buffer[index]))) - index++; - if (index >= size) - break; - - len = index - start; - strncpy(component_name, &buffer[start], len); - component_name[len] = 0; - - /* Skip whitespace */ - while ((index < size) && (is_whitespace(buffer[index]))) - index++; - if (index >= size) - break; - - /* Get component path */ - start = index; - while ((index < size) && (!is_whitespace(buffer[index]) && !is_eol_char(buffer[index]))) - index++; - - len = index - start; - strncpy(component_path, &buffer[start], len); - component_path[len] = 0; - - /* Append directory separator if needed */ - if (component_path[strlen(component_path)] != DIR_SEPARATOR_CHAR) - { - int i = strlen(component_path); - component_path[strlen(component_path)] = DIR_SEPARATOR_CHAR; - component_path[i + 1] = 0; - } - - /* Skip to end of line */ - while ((index < size) && (!is_eol_char(buffer[index]))) - index++; - if ((index < size) && (buffer[index] == '\n')) - index++; - - canonical_path = convert_path(component_path); - if (canonical_path != NULL) - { - process_directory(canonical_path, canonical_path); - free(canonical_path); - generate_xml_for_component(component_name, - component_path); - } - } - - write_line(""); -} - -static char HELP[] = - "RGENSTAT input-filename output-filename\n" - "\n" - " input-filename File containing list of components to process\n" - " output-filename File to create\n"; - -int main(int argc, char **argv) -{ - char *input_file; - char *output_file; - - if (argc != 3) - { - puts(HELP); - return 1; - } - - input_file = convert_path(argv[1]); - if (input_file[0] == 0) - { - free(input_file); - printf("Missing input-filename\n"); - return 1; - } - - output_file = convert_path(argv[2]); - if (output_file[0] == 0) - { - free(input_file); - free(output_file); - printf("Missing output-filename\n"); - return 1; - } - - out = fopen(output_file, "wb"); - if (out == NULL) - { - free(input_file); - free(output_file); - printf("Cannot open output file"); - return 1; - } - - read_input_file(input_file); - - free(input_file); - free(output_file); - fclose(out); - - return 0; -} - -/* EOF */ diff --git a/reactos/tools/rgenstat/web/c.gif b/reactos/tools/rgenstat/web/c.gif deleted file mode 100644 index 08f00d4ea11..00000000000 Binary files a/reactos/tools/rgenstat/web/c.gif and /dev/null differ diff --git a/reactos/tools/rgenstat/web/f.gif b/reactos/tools/rgenstat/web/f.gif deleted file mode 100644 index 75fe3586d48..00000000000 Binary files a/reactos/tools/rgenstat/web/f.gif and /dev/null differ diff --git a/reactos/tools/rgenstat/web/i.gif b/reactos/tools/rgenstat/web/i.gif deleted file mode 100644 index 2c8ca547929..00000000000 Binary files a/reactos/tools/rgenstat/web/i.gif and /dev/null differ diff --git a/reactos/tools/rgenstat/web/index.html b/reactos/tools/rgenstat/web/index.html deleted file mode 100644 index 2231c3a002d..00000000000 --- a/reactos/tools/rgenstat/web/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - -If your browser do not support XSLT click here. - - - diff --git a/reactos/tools/rgenstat/web/rapistatus.css b/reactos/tools/rgenstat/web/rapistatus.css deleted file mode 100644 index a429226f4bb..00000000000 --- a/reactos/tools/rgenstat/web/rapistatus.css +++ /dev/null @@ -1,57 +0,0 @@ -.c IMG -{ - border: 0px; -} - -.c, .c_, -.f, .f_, -.i, .i_, -.u, .u_ -{ - FONT: 10px 'Verdana'; - margin-left: 20px; -} - -.c_ .f, -.c_ .f_ -{ - display: none; -} - -.h -{ - display: none; -} - -.t -{ - cursor: pointer; - margin-right: 8px; -} - -.filter -{ - cursor: pointer; - vertical-align: middle; -} - - -.st -{ - margin-left: 20px; -} - -.i -{ - margin-left: 20px; -} - -.u -{ - margin-left: 20px; -} - -.l -{ - cursor: pointer; -} diff --git a/reactos/tools/rgenstat/web/rapistatus.js b/reactos/tools/rgenstat/web/rapistatus.js deleted file mode 100644 index 0657dbd4604..00000000000 --- a/reactos/tools/rgenstat/web/rapistatus.js +++ /dev/null @@ -1,291 +0,0 @@ -function toggle (elt) -{ - if (elt == null) - return; - - var eltLink = elt.firstChild; - if (eltLink != null && eltLink.className == 't') // toggle - { - var ich = elt.className.indexOf ('_'); - if (ich < 0) - { - eltLink.src = 'tp.gif'; - elt.className += '_'; - } - else - { - eltLink.src = 'tm.gif'; - elt.className = elt.className.slice (0, ich); - } - } -} - -function setView (elt, fView) -{ - var eltLink = elt.firstChild; - if (eltLink != null && eltLink.className == 't') // toggle - { - var ich = elt.className.indexOf ('_'); - if (ich < 0 && !fView) - { - eltLink.src = 'tp.gif'; - elt.className += '_'; - } - else if (ich >= 0 && fView) - { - eltLink.src = 'tm.gif'; - elt.className = elt.className.slice (0, ich); - } - } -} - -function trimSrc (strSrc) -{ - return strSrc.slice (strSrc.lastIndexOf ('/') + 1, strSrc.lastIndexOf ('.')); -} - -function getChildrenByTagName (elt, strTag) -{ - strTag = strTag.toLowerCase (); - var rgChildren = new Array (); - var eltChild = elt.firstChild; - while (eltChild) - { - if (eltChild.tagName && eltChild.tagName.toLowerCase () == strTag) - rgChildren.push (eltChild); - eltChild = eltChild.nextSibling; - } - return rgChildren; -} - -function viewAll (elt, dictTypes) -{ - var fView = false; - var rgImages = getChildrenByTagName (elt, 'IMG'); - var cImages = rgImages.length; - for (var iImage = 0; iImage < cImages; iImage++) - { - var strImage = trimSrc (rgImages [iImage].src); - if (dictTypes [strImage]) - { - fView = true; - break; - } - } - var rgElts = getChildrenByTagName (elt, 'DIV'); - var cElts = rgElts.length; - if (cElts != 0) - { - var iElt; - for (iElt = 0; iElt < cElts; iElt ++) - fView |= viewAll (rgElts [iElt], dictTypes); - } - elt.style.display = fView ? '' : 'none'; - return fView; -} - -function getView (elt) -{ - var eltLink = elt.firstChild; - if (eltLink != null && eltLink.className == 't') // toggle - { - var ich = elt.className.indexOf ('_'); - if (ich < 0) - return true; - } - return false; -} - -function getParentDiv (elt) -{ - if (elt) - { - do - { - elt = elt.parentNode; - } - while (elt && elt.tagName != 'DIV'); - } - - return elt; -} - -function getName (elt) -{ - var rgSpans = getChildrenByTagName (elt, 'SPAN'); - for (var iSpan = 0; iSpan < rgSpans.length; iSpan ++) - { - var span = rgSpans [iSpan]; - if (span.className == 'l') // label - { - if (span.innerText) - return span.innerText; - else - return span.firstChild.nodeValue; - } - } - return null; -} - -function clickHandler (evt) -{ - var elt; - if (document.layers) - elt = evt.taget; - else if (window.event && window.event.srcElement) - { - elt = window.event.srcElement; - evt = window.event; - } - else if (evt && evt.stopPropagation) - elt = evt.target; - - if (!elt.className && elt.parentNode) - elt = elt.parentNode; - - if (elt.className == 'l') // label - { - var strName; - - eltDiv = getParentDiv (elt); - var strEltClass = eltDiv.className; - if (strEltClass.charAt (strEltClass.length - 1) == '_') - strEltClass = strEltClass.slice (0, strEltClass.length - 1); - strName = getName (eltDiv); - - if (strEltClass == 'f') // Function - { - var strFilename = elt.nextSibling; - if (strFilename && strFilename.innerText) - { - var strRoot = 'http://svn.reactos.org/svn/reactos/trunk/reactos/'; - var strExtra = '?view=markup'; - window.open (strRoot + strFilename.innerText + strExtra, 'SVN'); - } - } - } - else - { - if (elt.parentNode && elt.parentNode.className == 't') // toggle - elt = elt.parentNode; - else if (elt.className != 't') // toggle - return; - - while (elt != null && elt.tagName != 'DIV') - elt = elt.parentNode; - - if (evt.shiftKey) - { - var rgElts = getChildrenByTagName (elt, 'DIV'); - var cElts = rgElts.length; - if (cElts != 0) - { - var fView = false; - var iElt; - for (iElt = 0; iElt < cElts; iElt ++) - { - if (getView (rgElts [iElt])) - { - fView = true; - break; - } - } - for (iElt = 0; iElt < cElts; iElt ++) - { - setView (rgElts [iElt], !fView); - } - } - } - else if (evt.ctrlKey) - { - setView (elt, true); - var eltParent = getParentDiv (elt); - while (eltParent) - { - var rgSiblings = getChildrenByTagName (eltParent, 'DIV'); - var cSiblings = rgSiblings.length; - for (var iSibling = 0; iSibling < cSiblings; iSibling++) - { - var eltSibling = rgSiblings [iSibling]; - if (eltSibling != elt) - { - setView (eltSibling, false); - } - } - elt = eltParent; - eltParent = getParentDiv (elt); - } - } - else - toggle (elt); - } - - return false; -} - -function filterTree () -{ - var eltImplemented = document.getElementById ('implemented'); - var eltUnimplemented = document.getElementById ('unimplemented'); - - var dictTypes = new Object (); - if (eltImplemented.checked) - dictTypes ['i'] = true; - if (eltUnimplemented.checked) - dictTypes ['u'] = true; - - viewAll (document.getElementById ('ROOT'), dictTypes); -} - -function selectImplemented () -{ - toggleFilter ('implemented'); -} - -function selectUnimplemented () -{ - toggleFilter ('unimplemented'); -} - -function toggleFilter (strFilter) -{ - var eltImplemented = document.getElementById ('implemented'); - var eltUnimplemented = document.getElementById ('unimplemented'); - - var eltToggle = document.getElementById (strFilter); - if (window && window.event && window.event.shiftKey) - { - eltImplemented.checked = eltUnimplemented.checked; - eltUnimplemented.checked = true; - } - else - if (!eltUnimplemented.checked && !eltImplemented.checked) - { - eltImplemented.checked = eltUnimplemented.checked = true; - eltToggle.checked = false; - } - filterTree (); -} - -function onLoad () -{ - var eltImplemented = document.getElementById ('implemented'); - var eltUnimplemented = document.getElementById ('unimplemented'); - eltImplemented.checked = eltUnimplemented.checked = true; -} - -if (document.layers) -{ - document.captureEvents (Event.MOUSEUP); - document.onmouseup = clickHandler; -} -else if (document.attachEvent) -{ - document.attachEvent('onclick', clickHandler); -} -else if (document.addEventListener) -{ - document.addEventListener('click', clickHandler, false); -} -else - document.onclick = clickHandler; diff --git a/reactos/tools/rgenstat/web/rapistatus.xsl b/reactos/tools/rgenstat/web/rapistatus.xsl deleted file mode 100644 index 4eb01432956..00000000000 --- a/reactos/tools/rgenstat/web/rapistatus.xsl +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - ReactOS API Status - - - - - -

-

ReactOS API Status

-

-

- - - - - - - - - - - -
Implemented -
Unimplemented -
-

-
- -
-

- Legend :
- - - - - - - - - - - - - - - - - -
Component Implemented Complete
Function Unimplemented
- -

- - -
- - - - - - - - - - -
- - c - - - - -
-
- - - - - - - - - - - - - -
- - f - - - -
-
- - - - - - - - - - - _ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - : - - % - - - - - : - - - - - : - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/reactos/tools/rgenstat/web/sc.gif b/reactos/tools/rgenstat/web/sc.gif deleted file mode 100644 index b02afd9b2e0..00000000000 Binary files a/reactos/tools/rgenstat/web/sc.gif and /dev/null differ diff --git a/reactos/tools/rgenstat/web/tb.gif b/reactos/tools/rgenstat/web/tb.gif deleted file mode 100644 index ee68c5a356b..00000000000 Binary files a/reactos/tools/rgenstat/web/tb.gif and /dev/null differ diff --git a/reactos/tools/rgenstat/web/tm.gif b/reactos/tools/rgenstat/web/tm.gif deleted file mode 100644 index 3c8f18aecea..00000000000 Binary files a/reactos/tools/rgenstat/web/tm.gif and /dev/null differ diff --git a/reactos/tools/rgenstat/web/tp.gif b/reactos/tools/rgenstat/web/tp.gif deleted file mode 100644 index 8b7435361b7..00000000000 Binary files a/reactos/tools/rgenstat/web/tp.gif and /dev/null differ diff --git a/reactos/tools/rgenstat/web/u.gif b/reactos/tools/rgenstat/web/u.gif deleted file mode 100644 index 0c7194786d5..00000000000 Binary files a/reactos/tools/rgenstat/web/u.gif and /dev/null differ diff --git a/reactos/tools/rsym/CMakeLists.txt b/reactos/tools/rsym/CMakeLists.txt deleted file mode 100644 index f6e5412fd71..00000000000 --- a/reactos/tools/rsym/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ - -if(ARCH STREQUAL "i386") - add_executable(rsym rsym_common.c rsym.c) -elseif(ARCH STREQUAL "amd64") - add_executable(rsym rsym_common.c rsym64.c) -endif() -add_executable(raddr2line rsym_common.c raddr2line.c) diff --git a/reactos/tools/rsym/dwarf2.h b/reactos/tools/rsym/dwarf2.h deleted file mode 100644 index f07054d6ebc..00000000000 --- a/reactos/tools/rsym/dwarf2.h +++ /dev/null @@ -1,839 +0,0 @@ -/* Declarations and definitions of codes relating to the DWARF2 symbolic - debugging information format. - Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002, - 2003, 2004 Free Software Foundation, Inc. - - Written by Gary Funck (gary@intrepid.com) The Ada Joint Program - Office (AJPO), Florida State University and Silicon Graphics Inc. - provided support for this effort -- June 21, 1995. - - Derived from the DWARF 1 implementation written by Ron Guilmette - (rfg@netcom.com), November 1990. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2, or (at your option) any later - version. - - GCC is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -/* This file is derived from the DWARF specification (a public document) - Revision 2.0.0 (July 27, 1993) developed by the UNIX International - Programming Languages Special Interest Group (UI/PLSIG) and distributed - by UNIX International. Copies of this specification are available from - UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. - - This file also now contains definitions from the DWARF 3 specification. */ - -/* This file is shared between GCC and GDB, and should not contain - prototypes. */ - -#pragma once - -//#include "list.h" - -#include -/* Structure found in the .debug_line section. */ -typedef struct -{ - unsigned char li_length [4]; - unsigned char li_version [2]; - unsigned char li_prologue_length [4]; - unsigned char li_min_insn_length [1]; - unsigned char li_default_is_stmt [1]; - unsigned char li_line_base [1]; - unsigned char li_line_range [1]; - unsigned char li_opcode_base [1]; -} -DWARF2_External_LineInfo; - -typedef struct -{ - unsigned long li_length; - unsigned short li_version; - unsigned int li_prologue_length; - unsigned char li_min_insn_length; - unsigned char li_default_is_stmt; - int li_line_base; - unsigned char li_line_range; - unsigned char li_opcode_base; -} -DWARF2_Internal_LineInfo; - -/* Structure found in .debug_pubnames section. */ -typedef struct -{ - unsigned char pn_length [4]; - unsigned char pn_version [2]; - unsigned char pn_offset [4]; - unsigned char pn_size [4]; -} -DWARF2_External_PubNames; - -typedef struct -{ - unsigned long pn_length; - unsigned short pn_version; - unsigned long pn_offset; - unsigned long pn_size; -} -DWARF2_Internal_PubNames; - -/* Structure found in .debug_info section. */ -typedef struct -{ - unsigned char cu_length [4]; - unsigned char cu_version [2]; - unsigned char cu_abbrev_offset [4]; - unsigned char cu_pointer_size [1]; -} -DWARF2_External_CompUnit; - -typedef struct -{ - unsigned long cu_length; - unsigned short cu_version; - unsigned long cu_abbrev_offset; - unsigned char cu_pointer_size; -} -DWARF2_Internal_CompUnit; - -typedef struct -{ - unsigned char ar_length [4]; - unsigned char ar_version [2]; - unsigned char ar_info_offset [4]; - unsigned char ar_pointer_size [1]; - unsigned char ar_segment_size [1]; -} -DWARF2_External_ARange; - -typedef struct -{ - unsigned long ar_length; - unsigned short ar_version; - unsigned long ar_info_offset; - unsigned char ar_pointer_size; - unsigned char ar_segment_size; -} -DWARF2_Internal_ARange; -#include - -/* Tag names and codes. */ -enum dwarf_tag - { - DW_TAG_padding = 0x00, - DW_TAG_array_type = 0x01, - DW_TAG_class_type = 0x02, - DW_TAG_entry_point = 0x03, - DW_TAG_enumeration_type = 0x04, - DW_TAG_formal_parameter = 0x05, - DW_TAG_imported_declaration = 0x08, - DW_TAG_label = 0x0a, - DW_TAG_lexical_block = 0x0b, - DW_TAG_member = 0x0d, - DW_TAG_pointer_type = 0x0f, - DW_TAG_reference_type = 0x10, - DW_TAG_compile_unit = 0x11, - DW_TAG_string_type = 0x12, - DW_TAG_structure_type = 0x13, - DW_TAG_subroutine_type = 0x15, - DW_TAG_typedef = 0x16, - DW_TAG_union_type = 0x17, - DW_TAG_unspecified_parameters = 0x18, - DW_TAG_variant = 0x19, - DW_TAG_common_block = 0x1a, - DW_TAG_common_inclusion = 0x1b, - DW_TAG_inheritance = 0x1c, - DW_TAG_inlined_subroutine = 0x1d, - DW_TAG_module = 0x1e, - DW_TAG_ptr_to_member_type = 0x1f, - DW_TAG_set_type = 0x20, - DW_TAG_subrange_type = 0x21, - DW_TAG_with_stmt = 0x22, - DW_TAG_access_declaration = 0x23, - DW_TAG_base_type = 0x24, - DW_TAG_catch_block = 0x25, - DW_TAG_const_type = 0x26, - DW_TAG_constant = 0x27, - DW_TAG_enumerator = 0x28, - DW_TAG_file_type = 0x29, - DW_TAG_friend = 0x2a, - DW_TAG_namelist = 0x2b, - DW_TAG_namelist_item = 0x2c, - DW_TAG_packed_type = 0x2d, - DW_TAG_subprogram = 0x2e, - DW_TAG_template_type_param = 0x2f, - DW_TAG_template_value_param = 0x30, - DW_TAG_thrown_type = 0x31, - DW_TAG_try_block = 0x32, - DW_TAG_variant_part = 0x33, - DW_TAG_variable = 0x34, - DW_TAG_volatile_type = 0x35, - /* DWARF 3. */ - DW_TAG_dwarf_procedure = 0x36, - DW_TAG_restrict_type = 0x37, - DW_TAG_interface_type = 0x38, - DW_TAG_namespace = 0x39, - DW_TAG_imported_module = 0x3a, - DW_TAG_unspecified_type = 0x3b, - DW_TAG_partial_unit = 0x3c, - DW_TAG_imported_unit = 0x3d, - /* SGI/MIPS Extensions. */ - DW_TAG_MIPS_loop = 0x4081, - /* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */ - DW_TAG_HP_array_descriptor = 0x4090, - /* GNU extensions. */ - DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */ - DW_TAG_function_template = 0x4102, /* For C++. */ - DW_TAG_class_template = 0x4103, /* For C++. */ - DW_TAG_GNU_BINCL = 0x4104, - DW_TAG_GNU_EINCL = 0x4105, - /* Extensions for UPC. See: http://upc.gwu.edu/~upc. */ - DW_TAG_upc_shared_type = 0x8765, - DW_TAG_upc_strict_type = 0x8766, - DW_TAG_upc_relaxed_type = 0x8767, - /* PGI (STMicroelectronics) extensions. No documentation available. */ - DW_TAG_PGI_kanji_type = 0xA000, - DW_TAG_PGI_interface_block = 0xA020 - }; - -#define DW_TAG_lo_user 0x4080 -#define DW_TAG_hi_user 0xffff - -/* Flag that tells whether entry has a child or not. */ -#define DW_children_no 0 -#define DW_children_yes 1 - -/* Form names and codes. */ -enum dwarf_form - { - DW_FORM_addr = 0x01, - DW_FORM_block2 = 0x03, - DW_FORM_block4 = 0x04, - DW_FORM_data2 = 0x05, - DW_FORM_data4 = 0x06, - DW_FORM_data8 = 0x07, - DW_FORM_string = 0x08, - DW_FORM_block = 0x09, - DW_FORM_block1 = 0x0a, - DW_FORM_data1 = 0x0b, - DW_FORM_flag = 0x0c, - DW_FORM_sdata = 0x0d, - DW_FORM_strp = 0x0e, - DW_FORM_udata = 0x0f, - DW_FORM_ref_addr = 0x10, - DW_FORM_ref1 = 0x11, - DW_FORM_ref2 = 0x12, - DW_FORM_ref4 = 0x13, - DW_FORM_ref8 = 0x14, - DW_FORM_ref_udata = 0x15, - DW_FORM_indirect = 0x16 - }; - -/* Attribute names and codes. */ -enum dwarf_attribute - { - DW_AT_sibling = 0x01, - DW_AT_location = 0x02, - DW_AT_name = 0x03, - DW_AT_ordering = 0x09, - DW_AT_subscr_data = 0x0a, - DW_AT_byte_size = 0x0b, - DW_AT_bit_offset = 0x0c, - DW_AT_bit_size = 0x0d, - DW_AT_element_list = 0x0f, - DW_AT_stmt_list = 0x10, - DW_AT_low_pc = 0x11, - DW_AT_high_pc = 0x12, - DW_AT_language = 0x13, - DW_AT_member = 0x14, - DW_AT_discr = 0x15, - DW_AT_discr_value = 0x16, - DW_AT_visibility = 0x17, - DW_AT_import = 0x18, - DW_AT_string_length = 0x19, - DW_AT_common_reference = 0x1a, - DW_AT_comp_dir = 0x1b, - DW_AT_const_value = 0x1c, - DW_AT_containing_type = 0x1d, - DW_AT_default_value = 0x1e, - DW_AT_inline = 0x20, - DW_AT_is_optional = 0x21, - DW_AT_lower_bound = 0x22, - DW_AT_producer = 0x25, - DW_AT_prototyped = 0x27, - DW_AT_return_addr = 0x2a, - DW_AT_start_scope = 0x2c, - DW_AT_stride_size = 0x2e, - DW_AT_upper_bound = 0x2f, - DW_AT_abstract_origin = 0x31, - DW_AT_accessibility = 0x32, - DW_AT_address_class = 0x33, - DW_AT_artificial = 0x34, - DW_AT_base_types = 0x35, - DW_AT_calling_convention = 0x36, - DW_AT_count = 0x37, - DW_AT_data_member_location = 0x38, - DW_AT_decl_column = 0x39, - DW_AT_decl_file = 0x3a, - DW_AT_decl_line = 0x3b, - DW_AT_declaration = 0x3c, - DW_AT_discr_list = 0x3d, - DW_AT_encoding = 0x3e, - DW_AT_external = 0x3f, - DW_AT_frame_base = 0x40, - DW_AT_friend = 0x41, - DW_AT_identifier_case = 0x42, - DW_AT_macro_info = 0x43, - DW_AT_namelist_items = 0x44, - DW_AT_priority = 0x45, - DW_AT_segment = 0x46, - DW_AT_specification = 0x47, - DW_AT_static_link = 0x48, - DW_AT_type = 0x49, - DW_AT_use_location = 0x4a, - DW_AT_variable_parameter = 0x4b, - DW_AT_virtuality = 0x4c, - DW_AT_vtable_elem_location = 0x4d, - /* DWARF 3 values. */ - DW_AT_allocated = 0x4e, - DW_AT_associated = 0x4f, - DW_AT_data_location = 0x50, - DW_AT_stride = 0x51, - DW_AT_entry_pc = 0x52, - DW_AT_use_UTF8 = 0x53, - DW_AT_extension = 0x54, - DW_AT_ranges = 0x55, - DW_AT_trampoline = 0x56, - DW_AT_call_column = 0x57, - DW_AT_call_file = 0x58, - DW_AT_call_line = 0x59, - /* SGI/MIPS extensions. */ - DW_AT_MIPS_fde = 0x2001, - DW_AT_MIPS_loop_begin = 0x2002, - DW_AT_MIPS_tail_loop_begin = 0x2003, - DW_AT_MIPS_epilog_begin = 0x2004, - DW_AT_MIPS_loop_unroll_factor = 0x2005, - DW_AT_MIPS_software_pipeline_depth = 0x2006, - DW_AT_MIPS_linkage_name = 0x2007, - DW_AT_MIPS_stride = 0x2008, - DW_AT_MIPS_abstract_name = 0x2009, - DW_AT_MIPS_clone_origin = 0x200a, - DW_AT_MIPS_has_inlines = 0x200b, - /* HP extensions. */ - DW_AT_HP_block_index = 0x2000, - DW_AT_HP_unmodifiable = 0x2001, /* Same as DW_AT_MIPS_fde. */ - DW_AT_HP_actuals_stmt_list = 0x2010, - DW_AT_HP_proc_per_section = 0x2011, - DW_AT_HP_raw_data_ptr = 0x2012, - DW_AT_HP_pass_by_reference = 0x2013, - DW_AT_HP_opt_level = 0x2014, - DW_AT_HP_prof_version_id = 0x2015, - DW_AT_HP_opt_flags = 0x2016, - DW_AT_HP_cold_region_low_pc = 0x2017, - DW_AT_HP_cold_region_high_pc = 0x2018, - DW_AT_HP_all_variables_modifiable = 0x2019, - DW_AT_HP_linkage_name = 0x201a, - DW_AT_HP_prof_flags = 0x201b, /* In comp unit of procs_info for -g. */ - /* GNU extensions. */ - DW_AT_sf_names = 0x2101, - DW_AT_src_info = 0x2102, - DW_AT_mac_info = 0x2103, - DW_AT_src_coords = 0x2104, - DW_AT_body_begin = 0x2105, - DW_AT_body_end = 0x2106, - DW_AT_GNU_vector = 0x2107, - /* VMS extensions. */ - DW_AT_VMS_rtnbeg_pd_address = 0x2201, - /* UPC extension. */ - DW_AT_upc_threads_scaled = 0x3210, - /* PGI (STMicroelectronics) extensions. */ - DW_AT_PGI_lbase = 0x3a00, - DW_AT_PGI_soffset = 0x3a01, - DW_AT_PGI_lstride = 0x3a02 - }; - -#define DW_AT_lo_user 0x2000 /* Implementation-defined range start. */ -#define DW_AT_hi_user 0x3ff0 /* Implementation-defined range end. */ - -/* Location atom names and codes. */ -enum dwarf_location_atom - { - DW_OP_addr = 0x03, - DW_OP_deref = 0x06, - DW_OP_const1u = 0x08, - DW_OP_const1s = 0x09, - DW_OP_const2u = 0x0a, - DW_OP_const2s = 0x0b, - DW_OP_const4u = 0x0c, - DW_OP_const4s = 0x0d, - DW_OP_const8u = 0x0e, - DW_OP_const8s = 0x0f, - DW_OP_constu = 0x10, - DW_OP_consts = 0x11, - DW_OP_dup = 0x12, - DW_OP_drop = 0x13, - DW_OP_over = 0x14, - DW_OP_pick = 0x15, - DW_OP_swap = 0x16, - DW_OP_rot = 0x17, - DW_OP_xderef = 0x18, - DW_OP_abs = 0x19, - DW_OP_and = 0x1a, - DW_OP_div = 0x1b, - DW_OP_minus = 0x1c, - DW_OP_mod = 0x1d, - DW_OP_mul = 0x1e, - DW_OP_neg = 0x1f, - DW_OP_not = 0x20, - DW_OP_or = 0x21, - DW_OP_plus = 0x22, - DW_OP_plus_uconst = 0x23, - DW_OP_shl = 0x24, - DW_OP_shr = 0x25, - DW_OP_shra = 0x26, - DW_OP_xor = 0x27, - DW_OP_bra = 0x28, - DW_OP_eq = 0x29, - DW_OP_ge = 0x2a, - DW_OP_gt = 0x2b, - DW_OP_le = 0x2c, - DW_OP_lt = 0x2d, - DW_OP_ne = 0x2e, - DW_OP_skip = 0x2f, - DW_OP_lit0 = 0x30, - DW_OP_lit1 = 0x31, - DW_OP_lit2 = 0x32, - DW_OP_lit3 = 0x33, - DW_OP_lit4 = 0x34, - DW_OP_lit5 = 0x35, - DW_OP_lit6 = 0x36, - DW_OP_lit7 = 0x37, - DW_OP_lit8 = 0x38, - DW_OP_lit9 = 0x39, - DW_OP_lit10 = 0x3a, - DW_OP_lit11 = 0x3b, - DW_OP_lit12 = 0x3c, - DW_OP_lit13 = 0x3d, - DW_OP_lit14 = 0x3e, - DW_OP_lit15 = 0x3f, - DW_OP_lit16 = 0x40, - DW_OP_lit17 = 0x41, - DW_OP_lit18 = 0x42, - DW_OP_lit19 = 0x43, - DW_OP_lit20 = 0x44, - DW_OP_lit21 = 0x45, - DW_OP_lit22 = 0x46, - DW_OP_lit23 = 0x47, - DW_OP_lit24 = 0x48, - DW_OP_lit25 = 0x49, - DW_OP_lit26 = 0x4a, - DW_OP_lit27 = 0x4b, - DW_OP_lit28 = 0x4c, - DW_OP_lit29 = 0x4d, - DW_OP_lit30 = 0x4e, - DW_OP_lit31 = 0x4f, - DW_OP_reg0 = 0x50, - DW_OP_reg1 = 0x51, - DW_OP_reg2 = 0x52, - DW_OP_reg3 = 0x53, - DW_OP_reg4 = 0x54, - DW_OP_reg5 = 0x55, - DW_OP_reg6 = 0x56, - DW_OP_reg7 = 0x57, - DW_OP_reg8 = 0x58, - DW_OP_reg9 = 0x59, - DW_OP_reg10 = 0x5a, - DW_OP_reg11 = 0x5b, - DW_OP_reg12 = 0x5c, - DW_OP_reg13 = 0x5d, - DW_OP_reg14 = 0x5e, - DW_OP_reg15 = 0x5f, - DW_OP_reg16 = 0x60, - DW_OP_reg17 = 0x61, - DW_OP_reg18 = 0x62, - DW_OP_reg19 = 0x63, - DW_OP_reg20 = 0x64, - DW_OP_reg21 = 0x65, - DW_OP_reg22 = 0x66, - DW_OP_reg23 = 0x67, - DW_OP_reg24 = 0x68, - DW_OP_reg25 = 0x69, - DW_OP_reg26 = 0x6a, - DW_OP_reg27 = 0x6b, - DW_OP_reg28 = 0x6c, - DW_OP_reg29 = 0x6d, - DW_OP_reg30 = 0x6e, - DW_OP_reg31 = 0x6f, - DW_OP_breg0 = 0x70, - DW_OP_breg1 = 0x71, - DW_OP_breg2 = 0x72, - DW_OP_breg3 = 0x73, - DW_OP_breg4 = 0x74, - DW_OP_breg5 = 0x75, - DW_OP_breg6 = 0x76, - DW_OP_breg7 = 0x77, - DW_OP_breg8 = 0x78, - DW_OP_breg9 = 0x79, - DW_OP_breg10 = 0x7a, - DW_OP_breg11 = 0x7b, - DW_OP_breg12 = 0x7c, - DW_OP_breg13 = 0x7d, - DW_OP_breg14 = 0x7e, - DW_OP_breg15 = 0x7f, - DW_OP_breg16 = 0x80, - DW_OP_breg17 = 0x81, - DW_OP_breg18 = 0x82, - DW_OP_breg19 = 0x83, - DW_OP_breg20 = 0x84, - DW_OP_breg21 = 0x85, - DW_OP_breg22 = 0x86, - DW_OP_breg23 = 0x87, - DW_OP_breg24 = 0x88, - DW_OP_breg25 = 0x89, - DW_OP_breg26 = 0x8a, - DW_OP_breg27 = 0x8b, - DW_OP_breg28 = 0x8c, - DW_OP_breg29 = 0x8d, - DW_OP_breg30 = 0x8e, - DW_OP_breg31 = 0x8f, - DW_OP_regx = 0x90, - DW_OP_fbreg = 0x91, - DW_OP_bregx = 0x92, - DW_OP_piece = 0x93, - DW_OP_deref_size = 0x94, - DW_OP_xderef_size = 0x95, - DW_OP_nop = 0x96, - /* DWARF 3 extensions. */ - DW_OP_push_object_address = 0x97, - DW_OP_call2 = 0x98, - DW_OP_call4 = 0x99, - DW_OP_call_ref = 0x9a, - /* GNU extensions. */ - DW_OP_GNU_push_tls_address = 0xe0, - /* HP extensions. */ - DW_OP_HP_unknown = 0xe0, /* Ouch, the same as GNU_push_tls_address. */ - DW_OP_HP_is_value = 0xe1, - DW_OP_HP_fltconst4 = 0xe2, - DW_OP_HP_fltconst8 = 0xe3, - DW_OP_HP_mod_range = 0xe4, - DW_OP_HP_unmod_range = 0xe5, - DW_OP_HP_tls = 0xe6 - }; - -#define DW_OP_lo_user 0xe0 /* Implementation-defined range start. */ -#define DW_OP_hi_user 0xff /* Implementation-defined range end. */ - -/* Type encodings. */ -enum dwarf_type - { - DW_ATE_void = 0x0, - DW_ATE_address = 0x1, - DW_ATE_boolean = 0x2, - DW_ATE_complex_float = 0x3, - DW_ATE_float = 0x4, - DW_ATE_signed = 0x5, - DW_ATE_signed_char = 0x6, - DW_ATE_unsigned = 0x7, - DW_ATE_unsigned_char = 0x8, - /* DWARF 3. */ - DW_ATE_imaginary_float = 0x9, - /* HP extensions. */ - DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */ - DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */ - DW_ATE_HP_float128 = 0x82, /* Floating-point (128 bit). */ - DW_ATE_HP_complex_float128 = 0x83, /* Complex floating-point (128 bit). */ - DW_ATE_HP_floathpintel = 0x84, /* Floating-point (82 bit IA64). */ - DW_ATE_HP_imaginary_float80 = 0x85, - DW_ATE_HP_imaginary_float128 = 0x86 - }; - -#define DW_ATE_lo_user 0x80 -#define DW_ATE_hi_user 0xff - -/* Array ordering names and codes. */ -enum dwarf_array_dim_ordering - { - DW_ORD_row_major = 0, - DW_ORD_col_major = 1 - }; - -/* Access attribute. */ -enum dwarf_access_attribute - { - DW_ACCESS_public = 1, - DW_ACCESS_protected = 2, - DW_ACCESS_private = 3 - }; - -/* Visibility. */ -enum dwarf_visibility_attribute - { - DW_VIS_local = 1, - DW_VIS_exported = 2, - DW_VIS_qualified = 3 - }; - -/* Virtuality. */ -enum dwarf_virtuality_attribute - { - DW_VIRTUALITY_none = 0, - DW_VIRTUALITY_virtual = 1, - DW_VIRTUALITY_pure_virtual = 2 - }; - -/* Case sensitivity. */ -enum dwarf_id_case - { - DW_ID_case_sensitive = 0, - DW_ID_up_case = 1, - DW_ID_down_case = 2, - DW_ID_case_insensitive = 3 - }; - -/* Calling convention. */ -enum dwarf_calling_convention - { - DW_CC_normal = 0x1, - DW_CC_program = 0x2, - DW_CC_nocall = 0x3, - DW_CC_GNU_renesas_sh = 0x40 - }; - -#define DW_CC_lo_user 0x40 -#define DW_CC_hi_user 0xff - -/* Inline attribute. */ -enum dwarf_inline_attribute - { - DW_INL_not_inlined = 0, - DW_INL_inlined = 1, - DW_INL_declared_not_inlined = 2, - DW_INL_declared_inlined = 3 - }; - -/* Discriminant lists. */ -enum dwarf_discrim_list - { - DW_DSC_label = 0, - DW_DSC_range = 1 - }; - -/* Line number opcodes. */ -enum dwarf_line_number_ops - { - DW_LNS_extended_op = 0, - DW_LNS_copy = 1, - DW_LNS_advance_pc = 2, - DW_LNS_advance_line = 3, - DW_LNS_set_file = 4, - DW_LNS_set_column = 5, - DW_LNS_negate_stmt = 6, - DW_LNS_set_basic_block = 7, - DW_LNS_const_add_pc = 8, - DW_LNS_fixed_advance_pc = 9, - /* DWARF 3. */ - DW_LNS_set_prologue_end = 10, - DW_LNS_set_epilogue_begin = 11, - DW_LNS_set_isa = 12 - }; - -/* Line number extended opcodes. */ -enum dwarf_line_number_x_ops - { - DW_LNE_end_sequence = 1, - DW_LNE_set_address = 2, - DW_LNE_define_file = 3, - /* HP extensions. */ - DW_LNE_HP_negate_is_UV_update = 0x11, - DW_LNE_HP_push_context = 0x12, - DW_LNE_HP_pop_context = 0x13, - DW_LNE_HP_set_file_line_column = 0x14, - DW_LNE_HP_set_routine_name = 0x15, - DW_LNE_HP_set_sequence = 0x16, - DW_LNE_HP_negate_post_semantics = 0x17, - DW_LNE_HP_negate_function_exit = 0x18, - DW_LNE_HP_negate_front_end_logical = 0x19, - DW_LNE_HP_define_proc = 0x20 - }; - -/* Call frame information. */ -enum dwarf_call_frame_info - { - DW_CFA_advance_loc = 0x40, - DW_CFA_offset = 0x80, - DW_CFA_restore = 0xc0, - DW_CFA_nop = 0x00, - DW_CFA_set_loc = 0x01, - DW_CFA_advance_loc1 = 0x02, - DW_CFA_advance_loc2 = 0x03, - DW_CFA_advance_loc4 = 0x04, - DW_CFA_offset_extended = 0x05, - DW_CFA_restore_extended = 0x06, - DW_CFA_undefined = 0x07, - DW_CFA_same_value = 0x08, - DW_CFA_register = 0x09, - DW_CFA_remember_state = 0x0a, - DW_CFA_restore_state = 0x0b, - DW_CFA_def_cfa = 0x0c, - DW_CFA_def_cfa_register = 0x0d, - DW_CFA_def_cfa_offset = 0x0e, - /* DWARF 3. */ - DW_CFA_def_cfa_expression = 0x0f, - DW_CFA_expression = 0x10, - DW_CFA_offset_extended_sf = 0x11, - DW_CFA_def_cfa_sf = 0x12, - DW_CFA_def_cfa_offset_sf = 0x13, - /* SGI/MIPS specific. */ - DW_CFA_MIPS_advance_loc8 = 0x1d, - /* GNU extensions. */ - DW_CFA_GNU_window_save = 0x2d, - DW_CFA_GNU_args_size = 0x2e, - DW_CFA_GNU_negative_offset_extended = 0x2f - }; - -#define DW_CIE_ID 0xffffffff -#define DW_CIE_VERSION 1 - -#define DW_CFA_extended 0 -#define DW_CFA_lo_user 0x1c -#define DW_CFA_hi_user 0x3f - -#define DW_CHILDREN_no 0x00 -#define DW_CHILDREN_yes 0x01 - -#define DW_ADDR_none 0 - -/* Source language names and codes. */ -enum dwarf_source_language - { - DW_LANG_C89 = 0x0001, - DW_LANG_C = 0x0002, - DW_LANG_Ada83 = 0x0003, - DW_LANG_C_plus_plus = 0x0004, - DW_LANG_Cobol74 = 0x0005, - DW_LANG_Cobol85 = 0x0006, - DW_LANG_Fortran77 = 0x0007, - DW_LANG_Fortran90 = 0x0008, - DW_LANG_Pascal83 = 0x0009, - DW_LANG_Modula2 = 0x000a, - DW_LANG_Java = 0x000b, - /* DWARF 3. */ - DW_LANG_C99 = 0x000c, - DW_LANG_Ada95 = 0x000d, - DW_LANG_Fortran95 = 0x000e, - /* MIPS. */ - DW_LANG_Mips_Assembler = 0x8001, - /* UPC. */ - DW_LANG_Upc = 0x8765 - }; - -#define DW_LANG_lo_user 0x8000 /* Implementation-defined range start. */ -#define DW_LANG_hi_user 0xffff /* Implementation-defined range start. */ - -/* Names and codes for macro information. */ -enum dwarf_macinfo_record_type - { - DW_MACINFO_define = 1, - DW_MACINFO_undef = 2, - DW_MACINFO_start_file = 3, - DW_MACINFO_end_file = 4, - DW_MACINFO_vendor_ext = 255 - }; - -/* @@@ For use with GNU frame unwind information. */ - -#define DW_EH_PE_absptr 0x00 -#define DW_EH_PE_omit 0xff - -#define DW_EH_PE_uleb128 0x01 -#define DW_EH_PE_udata2 0x02 -#define DW_EH_PE_udata4 0x03 -#define DW_EH_PE_udata8 0x04 -#define DW_EH_PE_sleb128 0x09 -#define DW_EH_PE_sdata2 0x0A -#define DW_EH_PE_sdata4 0x0B -#define DW_EH_PE_sdata8 0x0C -#define DW_EH_PE_signed 0x08 - -#define DW_EH_PE_pcrel 0x10 -#define DW_EH_PE_textrel 0x20 -#define DW_EH_PE_datarel 0x30 -#define DW_EH_PE_funcrel 0x40 -#define DW_EH_PE_aligned 0x50 - -#define DW_EH_PE_indirect 0x80 - -/** Private definitions ***/ - -typedef struct -{ - ULONG Length; - ULONG CiePointer; -} DW2CIEFDE; - -typedef struct -{ - ULONG Length; - char *Next; - ULONG CieId; - char Version; - ULONG ReturnAddressRegister; - ULONG AugStringLength; - char *AugString; - ULONG AugLength; - char *AugData; - ULONG CodeAlign; - LONG DataAlign; - char *Instructions; -} DW2CIE, *PDW2CIE; - -typedef struct -{ - unsigned long Length; - char *Next; - char *CiePointer; - unsigned long PcBegin; - unsigned long PcRange; - unsigned long AugLength; - char *AugData; - char *Instructions; -} DW2FDE, *PDW2FDE; - -typedef struct _SEHBLOCK -{ - unsigned long BeginTry; - unsigned long EndTry; - unsigned long Target; - unsigned long Handler; - unsigned long End; -} SEHBLOCK, *PSEHBLOCK; - -typedef struct _CFSTATE -{ - unsigned long Location; - unsigned long Code; - unsigned long Reg; - unsigned long Reg2; - long FramePtr; - long FramePtrDiff; - long Offset; - unsigned long IsUwop; - unsigned long Scope; - unsigned long cScopes; - unsigned long TryLevel; - SEHBLOCK SehBlock[20]; -} DW2CFSTATE, *PDW2CFSTATE; - -#define NextCIE(p) ((void*)((char*)p + p->Length + 4)) diff --git a/reactos/tools/rsym/raddr2line.c b/reactos/tools/rsym/raddr2line.c deleted file mode 100644 index 437d8d59ce7..00000000000 --- a/reactos/tools/rsym/raddr2line.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Usage: raddr2line input-file address/offset - * - * This is a tool and is compiled using the host compiler, - * i.e. on Linux gcc and not mingw-gcc (cross-compiler). - * Therefore we can't include SDK headers and we have to - * duplicate some definitions here. - * Also note that the internal functions are "old C-style", - * returning an int, where a return of 0 means success and - * non-zero is failure. - */ - -#include -#include -#include - -#include "rsym.h" - -/* Assume if an offset > ABS_TRESHOLD, then it must be absolute */ -#define ABS_TRESHOLD 0x00400000L - -size_t fixup_offset ( size_t ImageBase, size_t offset ) -{ - if (offset > ABS_TRESHOLD) - offset -= ImageBase; - - return offset; -} - -long -my_atoi ( const char* a ) -{ - int i = 0; - const char* fmt = "%x"; - - if ( *a == '0' ) - { - switch ( *++a ) - { - case 'x': - fmt = "%x"; - ++a; - break; - case 'd': - fmt = "%d"; - ++a; - break; - default: - fmt = "%o"; - break; - } - } - sscanf ( a, fmt, &i ); - return i; -} - -PIMAGE_SECTION_HEADER -find_rossym_section ( PIMAGE_FILE_HEADER PEFileHeader, - PIMAGE_SECTION_HEADER PESectionHeaders ) -{ - size_t i; - for ( i = 0; i < PEFileHeader->NumberOfSections; i++ ) - { - if ( 0 == strcmp ( (char*)PESectionHeaders[i].Name, ".rossym" ) ) - return &PESectionHeaders[i]; - } - return NULL; -} - -int -find_and_print_offset ( - void* data, - size_t offset ) -{ - PSYMBOLFILE_HEADER RosSymHeader = (PSYMBOLFILE_HEADER)data; - PROSSYM_ENTRY Entries = (PROSSYM_ENTRY)((char*)data + RosSymHeader->SymbolsOffset); - char* Strings = (char*)data + RosSymHeader->StringsOffset; - size_t symbols = RosSymHeader->SymbolsLength / sizeof(ROSSYM_ENTRY); - size_t i; - - //if ( RosSymHeader->SymbolsOffset ) - - for ( i = 0; i < symbols; i++ ) - { - if ( Entries[i].Address > offset ) - { - if ( !i-- ) - return 1; - else - { - PROSSYM_ENTRY e = &Entries[i]; - printf ( "%s:%u (%s)\n", - &Strings[e->FileOffset], - (unsigned int)e->SourceLine, - &Strings[e->FunctionOffset] ); - return 0; - } - } - } - return 1; -} - -int -process_data ( const void* FileData, size_t offset ) -{ - PIMAGE_DOS_HEADER PEDosHeader; - PIMAGE_FILE_HEADER PEFileHeader; - PIMAGE_OPTIONAL_HEADER PEOptHeader; - PIMAGE_SECTION_HEADER PESectionHeaders; - PIMAGE_SECTION_HEADER PERosSymSectionHeader; - size_t ImageBase; - int res; - - /* Check if MZ header exists */ - PEDosHeader = (PIMAGE_DOS_HEADER)FileData; - if (PEDosHeader->e_magic != IMAGE_DOS_MAGIC || PEDosHeader->e_lfanew == 0L) - { - perror("Input file is not a PE image.\n"); - return 1; - } - - /* Locate PE file header */ - /* sizeof(ULONG) = sizeof(MAGIC) */ - PEFileHeader = (PIMAGE_FILE_HEADER)((char *)FileData + PEDosHeader->e_lfanew + sizeof(ULONG)); - - /* Locate optional header */ - PEOptHeader = (PIMAGE_OPTIONAL_HEADER)(PEFileHeader + 1); - ImageBase = PEOptHeader->ImageBase; - - /* Locate PE section headers */ - PESectionHeaders = (PIMAGE_SECTION_HEADER)((char *) PEOptHeader + PEFileHeader->SizeOfOptionalHeader); - - /* make sure offset is what we want */ - offset = fixup_offset ( ImageBase, offset ); - - /* find rossym section */ - PERosSymSectionHeader = find_rossym_section ( - PEFileHeader, PESectionHeaders ); - if ( !PERosSymSectionHeader ) - { - fprintf ( stderr, "Couldn't find rossym section in executable\n" ); - return 1; - } - res = find_and_print_offset ( (char*)FileData + PERosSymSectionHeader->PointerToRawData, - offset ); - if ( res ) - printf ( "??:0\n" ); - return res; -} - -int -process_file ( const char* file_name, size_t offset ) -{ - void* FileData; - size_t FileSize; - int res = 1; - - FileData = load_file ( file_name, &FileSize ); - if ( !FileData ) - { - fprintf ( stderr, "An error occured loading '%s'\n", file_name ); - } - else - { - res = process_data ( FileData, offset ); - free ( FileData ); - } - - return res; -} - -int main ( int argc, const char** argv ) -{ - char* path; - size_t offset; - int res; - - if ( argc != 3 ) - { - fprintf(stderr, "Usage: raddr2line \n"); - exit(1); - } - - path = convert_path ( argv[1] ); - offset = my_atoi ( argv[2] ); - - res = process_file ( path, offset ); - - free ( path ); - - return res; -} diff --git a/reactos/tools/rsym/rsym.c b/reactos/tools/rsym/rsym.c deleted file mode 100644 index 3894d406dea..00000000000 --- a/reactos/tools/rsym/rsym.c +++ /dev/null @@ -1,956 +0,0 @@ -/* - * Usage: rsym input-file output-file - * - * There are two sources of information: the .stab/.stabstr - * sections of the executable and the COFF symbol table. Most - * of the information is in the .stab/.stabstr sections. - * However, most of our asm files don't contain .stab directives, - * so routines implemented in assembler won't show up in the - * .stab section. They are present in the COFF symbol table. - * So, we mostly use the .stab/.stabstr sections, but we augment - * the info there with info from the COFF symbol table when - * possible. - * - * This is a tool and is compiled using the host compiler, - * i.e. on Linux gcc and not mingw-gcc (cross-compiler). - * Therefore we can't include SDK headers and we have to - * duplicate some definitions here. - * Also note that the internal functions are "old C-style", - * returning an int, where a return of 0 means success and - * non-zero is failure. - */ - -#include -#include -#include -#include - -#include "rsym.h" - -static int -CompareSymEntry(const PROSSYM_ENTRY SymEntry1, const PROSSYM_ENTRY SymEntry2) -{ - if (SymEntry1->Address < SymEntry2->Address) - { - return -1; - } - - if (SymEntry2->Address < SymEntry1->Address) - { - return +1; - } - - return 0; -} - -static int -GetStabInfo(void *FileData, PIMAGE_FILE_HEADER PEFileHeader, - PIMAGE_SECTION_HEADER PESectionHeaders, - ULONG *StabSymbolsLength, void **StabSymbolsBase, - ULONG *StabStringsLength, void **StabStringsBase) -{ - ULONG Idx; - - /* Load .stab and .stabstr sections if available */ - *StabSymbolsBase = NULL; - *StabSymbolsLength = 0; - *StabStringsBase = NULL; - *StabStringsLength = 0; - - for (Idx = 0; Idx < PEFileHeader->NumberOfSections; Idx++) - { - /* printf("section: '%.08s'\n", PESectionHeaders[Idx].Name); */ - if ((strncmp((char*)PESectionHeaders[Idx].Name, ".stab", 5) == 0) - && (PESectionHeaders[Idx].Name[5] == 0)) - { - /* printf(".stab section found. Size %d\n", - PESectionHeaders[Idx].SizeOfRawData); */ - - *StabSymbolsLength = PESectionHeaders[Idx].SizeOfRawData; - *StabSymbolsBase = (void *)((char *) FileData + PESectionHeaders[Idx].PointerToRawData); - } - - if (strncmp((char*)PESectionHeaders[Idx].Name, ".stabstr", 8) == 0) - { - /* printf(".stabstr section found. Size %d\n", - PESectionHeaders[Idx].SizeOfRawData); */ - - *StabStringsLength = PESectionHeaders[Idx].SizeOfRawData; - *StabStringsBase = (void *)((char *) FileData + PESectionHeaders[Idx].PointerToRawData); - } - } - - return 0; -} - -static int -GetCoffInfo(void *FileData, PIMAGE_FILE_HEADER PEFileHeader, - PIMAGE_SECTION_HEADER PESectionHeaders, - ULONG *CoffSymbolsLength, void **CoffSymbolsBase, - ULONG *CoffStringsLength, void **CoffStringsBase) -{ - - if (0 == PEFileHeader->PointerToSymbolTable || 0 == PEFileHeader->NumberOfSymbols) - { - /* No COFF symbol table */ - *CoffSymbolsLength = 0; - *CoffStringsLength = 0; - } - else - { - *CoffSymbolsLength = PEFileHeader->NumberOfSymbols * sizeof(COFF_SYMENT); - *CoffSymbolsBase = (void *)((char *) FileData + PEFileHeader->PointerToSymbolTable); - *CoffStringsLength = *((ULONG *) ((char *) *CoffSymbolsBase + *CoffSymbolsLength)); - *CoffStringsBase = (void *)((char *) *CoffSymbolsBase + *CoffSymbolsLength); - } - - return 0; -} - -static ULONG -FindOrAddString(char *StringToFind, ULONG *StringsLength, void *StringsBase) -{ - char *Search, *End; - - Search = (char *) StringsBase; - End = Search + *StringsLength; - - while (Search < End) - { - if (0 == strcmp(Search, StringToFind)) - { - return Search - (char *) StringsBase; - } - Search += strlen(Search) + 1; - } - - strcpy(Search, StringToFind); - *StringsLength += strlen(StringToFind) + 1; - - return Search - (char *) StringsBase; -} - -static int -ConvertStabs(ULONG *SymbolsCount, PROSSYM_ENTRY *SymbolsBase, - ULONG *StringsLength, void *StringsBase, - ULONG StabSymbolsLength, void *StabSymbolsBase, - ULONG StabStringsLength, void *StabStringsBase, - ULONG_PTR ImageBase, PIMAGE_FILE_HEADER PEFileHeader, - PIMAGE_SECTION_HEADER PESectionHeaders) -{ - PSTAB_ENTRY StabEntry; - ULONG Count, i; - ULONG_PTR Address, LastFunctionAddress; - int First = 1; - char *Name; - ULONG NameLen; - char FuncName[256]; - PROSSYM_ENTRY Current; - - StabEntry = StabSymbolsBase; - Count = StabSymbolsLength / sizeof(STAB_ENTRY); - *SymbolsCount = 0; - if (Count == 0) - { - /* No symbol info */ - *SymbolsBase = NULL; - return 0; - } - - *SymbolsBase = malloc(Count * sizeof(ROSSYM_ENTRY)); - if (NULL == *SymbolsBase) - { - fprintf(stderr, "Failed to allocate memory for converted .stab symbols\n"); - return 1; - } - Current = *SymbolsBase; - memset ( Current, 0, sizeof(*Current) ); - - LastFunctionAddress = 0; - for (i = 0; i < Count; i++) - { - if ( 0 == LastFunctionAddress ) - { - Address = StabEntry[i].n_value - ImageBase; - } - else - { - Address = LastFunctionAddress + StabEntry[i].n_value; - } - switch (StabEntry[i].n_type) - { - case N_SO: - case N_SOL: - case N_BINCL: - Name = (char *) StabStringsBase + StabEntry[i].n_strx; - if (StabStringsLength < StabEntry[i].n_strx - ||'\0' == *Name || '/' == Name[strlen(Name) - 1] - || '\\' == Name[strlen(Name) - 1] - || StabEntry[i].n_value < ImageBase) - { - continue; - } - if ( First || Address != Current->Address ) - { - if ( !First ) - { - memset ( ++Current, 0, sizeof(*Current) ); - Current->FunctionOffset = Current[-1].FunctionOffset; - } - else - First = 0; - Current->Address = Address; - } - Current->FileOffset = FindOrAddString((char *)StabStringsBase - + StabEntry[i].n_strx, - StringsLength, - StringsBase); - break; - case N_FUN: - if (0 == StabEntry[i].n_desc || StabEntry[i].n_value < ImageBase) - { - LastFunctionAddress = 0; /* line # 0 = end of function */ - continue; - } - if ( First || Address != Current->Address ) - { - if ( !First ) - memset ( ++Current, 0, sizeof(*Current) ); - else - First = 0; - Current->Address = Address; - Current->FileOffset = Current[-1].FileOffset; - } - Name = (char *) StabStringsBase + StabEntry[i].n_strx; - NameLen = strcspn(Name, ":"); - if (sizeof(FuncName) <= NameLen) - { - free(*SymbolsBase); - fprintf(stderr, "Function name too long\n"); - return 1; - } - memcpy(FuncName, Name, NameLen); - FuncName[NameLen] = '\0'; - Current->FunctionOffset = FindOrAddString(FuncName, - StringsLength, - StringsBase); - Current->SourceLine = 0; - LastFunctionAddress = Address; - break; - case N_SLINE: - if ( First || Address != Current->Address ) - { - if ( !First ) - { - memset ( ++Current, 0, sizeof(*Current) ); - Current->FileOffset = Current[-1].FileOffset; - Current->FunctionOffset = Current[-1].FunctionOffset; - } - else - First = 0; - Current->Address = Address; - } - Current->SourceLine = StabEntry[i].n_desc; - break; - default: - continue; - } - } - *SymbolsCount = (Current - *SymbolsBase + 1); - - qsort(*SymbolsBase, *SymbolsCount, sizeof(ROSSYM_ENTRY), (int (*)(const void *, const void *)) CompareSymEntry); - - return 0; -} - -static int -ConvertCoffs(ULONG *SymbolsCount, PROSSYM_ENTRY *SymbolsBase, - ULONG *StringsLength, void *StringsBase, - ULONG CoffSymbolsLength, void *CoffSymbolsBase, - ULONG CoffStringsLength, void *CoffStringsBase, - ULONG_PTR ImageBase, PIMAGE_FILE_HEADER PEFileHeader, - PIMAGE_SECTION_HEADER PESectionHeaders) -{ - ULONG Count, i; - PCOFF_SYMENT CoffEntry; - char FuncName[256]; - char *p; - PROSSYM_ENTRY Current; - - CoffEntry = (PCOFF_SYMENT) CoffSymbolsBase; - Count = CoffSymbolsLength / sizeof(COFF_SYMENT); - *SymbolsBase = malloc(Count * sizeof(ROSSYM_ENTRY)); - if (NULL == *SymbolsBase) - { - fprintf(stderr, "Unable to allocate memory for converted COFF symbols\n"); - return 1; - } - *SymbolsCount = 0; - Current = *SymbolsBase; - - for (i = 0; i < Count; i++) - { - if (ISFCN(CoffEntry[i].e_type) || C_EXT == CoffEntry[i].e_sclass) - { - Current->Address = CoffEntry[i].e_value; - if (0 < CoffEntry[i].e_scnum) - { - if (PEFileHeader->NumberOfSections < CoffEntry[i].e_scnum) - { - free(*SymbolsBase); - fprintf(stderr, "Invalid section number %d in COFF symbols (only %d sections present)\n", - CoffEntry[i].e_scnum, PEFileHeader->NumberOfSections); - return 1; - } - Current->Address += PESectionHeaders[CoffEntry[i].e_scnum - 1].VirtualAddress; - } - Current->FileOffset = 0; - if (0 == CoffEntry[i].e.e.e_zeroes) - { - if (sizeof(FuncName) <= strlen((char *) CoffStringsBase + CoffEntry[i].e.e.e_offset)) - { - free(*SymbolsBase); - fprintf(stderr, "Function name too long\n"); - return 1; - } - strcpy(FuncName, (char *) CoffStringsBase + CoffEntry[i].e.e.e_offset); - } - else - { - memcpy(FuncName, CoffEntry[i].e.e_name, E_SYMNMLEN); - FuncName[E_SYMNMLEN] = '\0'; - } - - /* Name demangling: stdcall */ - p = strrchr(FuncName, '@'); - if (NULL != p) - { - *p = '\0'; - } - p = ('_' == FuncName[0] || '@' == FuncName[0] ? FuncName + 1 : FuncName); - Current->FunctionOffset = FindOrAddString(p, - StringsLength, - StringsBase); - Current->SourceLine = 0; - memset ( ++Current, 0, sizeof(*Current) ); - } - i += CoffEntry[i].e_numaux; - } - - *SymbolsCount = (Current - *SymbolsBase + 1); - qsort(*SymbolsBase, *SymbolsCount, sizeof(ROSSYM_ENTRY), (int (*)(const void *, const void *)) CompareSymEntry); - - return 0; -} - -static int -MergeStabsAndCoffs(ULONG *MergedSymbolCount, PROSSYM_ENTRY *MergedSymbols, - ULONG StabSymbolsCount, PROSSYM_ENTRY StabSymbols, - ULONG CoffSymbolsCount, PROSSYM_ENTRY CoffSymbols) -{ - ULONG StabIndex, j; - ULONG CoffIndex; - ULONG_PTR StabFunctionStartAddress; - ULONG StabFunctionStringOffset, NewStabFunctionStringOffset; - - *MergedSymbolCount = 0; - if (StabSymbolsCount == 0) - { - *MergedSymbols = NULL; - return 0; - } - *MergedSymbols = malloc(StabSymbolsCount * sizeof(ROSSYM_ENTRY)); - if (NULL == *MergedSymbols) - { - fprintf(stderr, "Unable to allocate memory for merged symbols\n"); - return 1; - } - - StabFunctionStartAddress = 0; - StabFunctionStringOffset = 0; - CoffIndex = 0; - for (StabIndex = 0; StabIndex < StabSymbolsCount; StabIndex++) - { - (*MergedSymbols)[*MergedSymbolCount] = StabSymbols[StabIndex]; - for (j = StabIndex + 1; - j < StabSymbolsCount && StabSymbols[j].Address == StabSymbols[StabIndex].Address; - j++) - { - if (0 != StabSymbols[j].FileOffset && 0 == (*MergedSymbols)[*MergedSymbolCount].FileOffset) - { - (*MergedSymbols)[*MergedSymbolCount].FileOffset = StabSymbols[j].FileOffset; - } - if (0 != StabSymbols[j].FunctionOffset && 0 == (*MergedSymbols)[*MergedSymbolCount].FunctionOffset) - { - (*MergedSymbols)[*MergedSymbolCount].FunctionOffset = StabSymbols[j].FunctionOffset; - } - if (0 != StabSymbols[j].SourceLine && 0 == (*MergedSymbols)[*MergedSymbolCount].SourceLine) - { - (*MergedSymbols)[*MergedSymbolCount].SourceLine = StabSymbols[j].SourceLine; - } - } - StabIndex = j - 1; - while (CoffIndex < CoffSymbolsCount - && CoffSymbols[CoffIndex + 1].Address <= (*MergedSymbols)[*MergedSymbolCount].Address) - { - CoffIndex++; - } - NewStabFunctionStringOffset = (*MergedSymbols)[*MergedSymbolCount].FunctionOffset; - if (CoffSymbolsCount > 0 && - CoffSymbols[CoffIndex].Address < (*MergedSymbols)[*MergedSymbolCount].Address - && StabFunctionStartAddress < CoffSymbols[CoffIndex].Address - && 0 != CoffSymbols[CoffIndex].FunctionOffset) - { - (*MergedSymbols)[*MergedSymbolCount].FunctionOffset = CoffSymbols[CoffIndex].FunctionOffset; - } - if (StabFunctionStringOffset != NewStabFunctionStringOffset) - { - StabFunctionStartAddress = (*MergedSymbols)[*MergedSymbolCount].Address; - } - StabFunctionStringOffset = NewStabFunctionStringOffset; - (*MergedSymbolCount)++; - } - - return 0; -} - -static PIMAGE_SECTION_HEADER -FindSectionForRVA(DWORD RVA, unsigned NumberOfSections, PIMAGE_SECTION_HEADER SectionHeaders) -{ - unsigned Section; - - for (Section = 0; Section < NumberOfSections; Section++) - { - if (SectionHeaders[Section].VirtualAddress <= RVA && - RVA < SectionHeaders[Section].VirtualAddress + SectionHeaders[Section].Misc.VirtualSize) - { - return SectionHeaders + Section; - } - } - - return NULL; -} - -static int -ProcessRelocations(ULONG *ProcessedRelocsLength, void **ProcessedRelocs, - void *RawData, PIMAGE_OPTIONAL_HEADER OptHeader, - unsigned NumberOfSections, PIMAGE_SECTION_HEADER SectionHeaders) -{ - PIMAGE_SECTION_HEADER RelocSectionHeader, TargetSectionHeader; - PIMAGE_BASE_RELOCATION BaseReloc, End, AcceptedRelocs; - int Found; - - if (OptHeader->NumberOfRvaAndSizes < IMAGE_DIRECTORY_ENTRY_BASERELOC - || 0 == OptHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress) - { - /* No relocation entries */ - *ProcessedRelocsLength = 0; - *ProcessedRelocs = NULL; - return 0; - } - - RelocSectionHeader = FindSectionForRVA(OptHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress, - NumberOfSections, SectionHeaders); - if (NULL == RelocSectionHeader) - { - fprintf(stderr, "Can't find section header for relocation data\n"); - return 1; - } - - *ProcessedRelocs = malloc(RelocSectionHeader->SizeOfRawData); - if (NULL == *ProcessedRelocs) - { - fprintf(stderr, "Failed to allocate %u bytes for relocations\n", (unsigned int)RelocSectionHeader->SizeOfRawData); - return 1; - } - *ProcessedRelocsLength = 0; - - BaseReloc = (PIMAGE_BASE_RELOCATION) ((char *) RawData - + RelocSectionHeader->PointerToRawData - + (OptHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress - - RelocSectionHeader->VirtualAddress)); - End = (PIMAGE_BASE_RELOCATION) ((char *) BaseReloc - + OptHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size); - - while (BaseReloc < End && 0 < BaseReloc->SizeOfBlock) - { - TargetSectionHeader = FindSectionForRVA(BaseReloc->VirtualAddress, NumberOfSections, - SectionHeaders); - if (NULL != TargetSectionHeader) - { - AcceptedRelocs = *ProcessedRelocs; - Found = 0; - while (AcceptedRelocs < (PIMAGE_BASE_RELOCATION) ((char *) *ProcessedRelocs + - *ProcessedRelocsLength) - && ! Found) - { - Found = BaseReloc->SizeOfBlock == AcceptedRelocs->SizeOfBlock - && 0 == memcmp(BaseReloc, AcceptedRelocs, AcceptedRelocs->SizeOfBlock); - AcceptedRelocs= (PIMAGE_BASE_RELOCATION) ((char *) AcceptedRelocs + - AcceptedRelocs->SizeOfBlock); - } - if (! Found) - { - memcpy((char *) *ProcessedRelocs + *ProcessedRelocsLength, - BaseReloc, BaseReloc->SizeOfBlock); - *ProcessedRelocsLength += BaseReloc->SizeOfBlock; - } - } - BaseReloc = (PIMAGE_BASE_RELOCATION)((char *) BaseReloc + BaseReloc->SizeOfBlock); - } - - return 0; -} - -static int -CreateOutputFile(FILE *OutFile, void *InData, - PIMAGE_DOS_HEADER InDosHeader, PIMAGE_FILE_HEADER InFileHeader, - PIMAGE_OPTIONAL_HEADER InOptHeader, PIMAGE_SECTION_HEADER InSectionHeaders, - ULONG RosSymLength, void *RosSymSection) -{ - ULONG StartOfRawData; - unsigned Section; - void *OutHeader, *ProcessedRelocs, *PaddedRosSym, *Data; - PIMAGE_DOS_HEADER OutDosHeader; - PIMAGE_FILE_HEADER OutFileHeader; - PIMAGE_OPTIONAL_HEADER OutOptHeader; - PIMAGE_SECTION_HEADER OutSectionHeaders, CurrentSectionHeader; - DWORD CheckSum; - ULONG Length, i; - ULONG ProcessedRelocsLength; - ULONG RosSymOffset, RosSymFileLength; - int InRelocSectionIndex; - PIMAGE_SECTION_HEADER OutRelocSection; - - StartOfRawData = 0; - for (Section = 0; Section < InFileHeader->NumberOfSections; Section++) - { - if ((0 == StartOfRawData - || InSectionHeaders[Section].PointerToRawData < StartOfRawData) - && 0 != InSectionHeaders[Section].PointerToRawData - && 0 != (strncmp(InSectionHeaders[Section].Name, ".stab", 5))) - { - StartOfRawData = InSectionHeaders[Section].PointerToRawData; - } - } - OutHeader = malloc(StartOfRawData); - if (NULL == OutHeader) - { - fprintf(stderr, "Failed to allocate %u bytes for output file header\n", (unsigned int)StartOfRawData); - return 1; - } - memset(OutHeader, '\0', StartOfRawData); - - OutDosHeader = (PIMAGE_DOS_HEADER) OutHeader; - memcpy(OutDosHeader, InDosHeader, InDosHeader->e_lfanew + sizeof(ULONG)); - - OutFileHeader = (PIMAGE_FILE_HEADER)((char *) OutHeader + OutDosHeader->e_lfanew + sizeof(ULONG)); - memcpy(OutFileHeader, InFileHeader, sizeof(IMAGE_FILE_HEADER)); - OutFileHeader->PointerToSymbolTable = 0; - OutFileHeader->NumberOfSymbols = 0; - OutFileHeader->Characteristics &= ~(IMAGE_FILE_LINE_NUMS_STRIPPED | IMAGE_FILE_LOCAL_SYMS_STRIPPED | - IMAGE_FILE_DEBUG_STRIPPED); - - OutOptHeader = (PIMAGE_OPTIONAL_HEADER)(OutFileHeader + 1); - memcpy(OutOptHeader, InOptHeader, sizeof(IMAGE_OPTIONAL_HEADER)); - OutOptHeader->CheckSum = 0; - - OutSectionHeaders = (PIMAGE_SECTION_HEADER)((char *) OutOptHeader + OutFileHeader->SizeOfOptionalHeader); - - if (ProcessRelocations(&ProcessedRelocsLength, &ProcessedRelocs, InData, InOptHeader, - InFileHeader->NumberOfSections, InSectionHeaders)) - { - return 1; - } - if (InOptHeader->NumberOfRvaAndSizes < IMAGE_DIRECTORY_ENTRY_BASERELOC - || 0 == InOptHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress) - { - InRelocSectionIndex = -1; - } - else - { - InRelocSectionIndex = FindSectionForRVA(InOptHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress, - InFileHeader->NumberOfSections, InSectionHeaders) - InSectionHeaders; - } - - OutFileHeader->NumberOfSections = 0; - CurrentSectionHeader = OutSectionHeaders; - OutOptHeader->SizeOfImage = 0; - RosSymOffset = 0; - OutRelocSection = NULL; - for (Section = 0; Section < InFileHeader->NumberOfSections; Section++) - { - if (0 != (strncmp(InSectionHeaders[Section].Name, ".stab", 5))) - { - *CurrentSectionHeader = InSectionHeaders[Section]; - CurrentSectionHeader->PointerToLinenumbers = 0; - CurrentSectionHeader->NumberOfLinenumbers = 0; - if (OutOptHeader->SizeOfImage < CurrentSectionHeader->VirtualAddress + - CurrentSectionHeader->Misc.VirtualSize) - { - OutOptHeader->SizeOfImage = ROUND_UP(CurrentSectionHeader->VirtualAddress + - CurrentSectionHeader->Misc.VirtualSize, - OutOptHeader->SectionAlignment); - } - if (RosSymOffset < CurrentSectionHeader->PointerToRawData + CurrentSectionHeader->SizeOfRawData) - { - RosSymOffset = CurrentSectionHeader->PointerToRawData + CurrentSectionHeader->SizeOfRawData; - } - if (Section == (ULONG)InRelocSectionIndex) - { - OutRelocSection = CurrentSectionHeader; - } - (OutFileHeader->NumberOfSections) ++; - CurrentSectionHeader++; - } - } - - if (OutRelocSection == CurrentSectionHeader - 1) - { - OutOptHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size = ProcessedRelocsLength; - if (OutOptHeader->SizeOfImage == OutRelocSection->VirtualAddress + - ROUND_UP(OutRelocSection->Misc.VirtualSize, - OutOptHeader->SectionAlignment)) - { - OutOptHeader->SizeOfImage = OutRelocSection->VirtualAddress + - ROUND_UP(ProcessedRelocsLength, - OutOptHeader->SectionAlignment); - } - OutRelocSection->Misc.VirtualSize = ProcessedRelocsLength; - if (RosSymOffset == OutRelocSection->PointerToRawData - + OutRelocSection->SizeOfRawData) - { - RosSymOffset = OutRelocSection->PointerToRawData + - ROUND_UP(ProcessedRelocsLength, OutOptHeader->FileAlignment); - } - OutRelocSection->SizeOfRawData = ROUND_UP(ProcessedRelocsLength, - OutOptHeader->FileAlignment); - } - - if (RosSymLength > 0) - { - RosSymFileLength = ROUND_UP(RosSymLength, OutOptHeader->FileAlignment); - memcpy(CurrentSectionHeader->Name, ".rossym", 8); /* We're lucky: string is exactly 8 bytes long */ - CurrentSectionHeader->Misc.VirtualSize = RosSymLength; - CurrentSectionHeader->VirtualAddress = OutOptHeader->SizeOfImage; - CurrentSectionHeader->SizeOfRawData = RosSymFileLength; - CurrentSectionHeader->PointerToRawData = RosSymOffset; - CurrentSectionHeader->PointerToRelocations = 0; - CurrentSectionHeader->PointerToLinenumbers = 0; - CurrentSectionHeader->NumberOfRelocations = 0; - CurrentSectionHeader->NumberOfLinenumbers = 0; - CurrentSectionHeader->Characteristics = IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_DISCARDABLE - | IMAGE_SCN_LNK_REMOVE | IMAGE_SCN_TYPE_NOLOAD; - OutOptHeader->SizeOfImage = ROUND_UP(CurrentSectionHeader->VirtualAddress + - CurrentSectionHeader->Misc.VirtualSize, - OutOptHeader->SectionAlignment); - (OutFileHeader->NumberOfSections)++; - - PaddedRosSym = malloc(RosSymFileLength); - if (NULL == PaddedRosSym) - { - fprintf(stderr, "Failed to allocate %u bytes for padded .rossym\n", (unsigned int)RosSymFileLength); - return 1; - } - memcpy(PaddedRosSym, RosSymSection, RosSymLength); - memset((char *) PaddedRosSym + RosSymLength, '\0', RosSymFileLength - RosSymLength); - } - else - { - PaddedRosSym = NULL; - } - CheckSum = 0; - for (i = 0; i < StartOfRawData / 2; i++) - { - CheckSum += ((unsigned short*) OutHeader)[i]; - CheckSum = 0xffff & (CheckSum + (CheckSum >> 16)); - } - Length = StartOfRawData; - for (Section = 0; Section < OutFileHeader->NumberOfSections; Section++) - { - DWORD SizeOfRawData; - if (OutRelocSection == OutSectionHeaders + Section) - { - Data = (void *) ProcessedRelocs; - SizeOfRawData = ProcessedRelocsLength; - } - else if (RosSymLength > 0 && Section + 1 == OutFileHeader->NumberOfSections) - { - Data = (void *) PaddedRosSym; - SizeOfRawData = OutSectionHeaders[Section].SizeOfRawData; - } - else - { - Data = (void *) ((char *) InData + OutSectionHeaders[Section].PointerToRawData); - SizeOfRawData = OutSectionHeaders[Section].SizeOfRawData; - } - for (i = 0; i < SizeOfRawData / 2; i++) - { - CheckSum += ((unsigned short*) Data)[i]; - CheckSum = 0xffff & (CheckSum + (CheckSum >> 16)); - } - Length += OutSectionHeaders[Section].SizeOfRawData; - } - CheckSum += Length; - OutOptHeader->CheckSum = CheckSum; - - if (fwrite(OutHeader, 1, StartOfRawData, OutFile) != StartOfRawData) - { - perror("Error writing output header\n"); - free(OutHeader); - return 1; - } - - for (Section = 0; Section < OutFileHeader->NumberOfSections; Section++) - { - if (0 != OutSectionHeaders[Section].SizeOfRawData) - { - DWORD SizeOfRawData; - fseek(OutFile, OutSectionHeaders[Section].PointerToRawData, SEEK_SET); - if (OutRelocSection == OutSectionHeaders + Section) - { - Data = (void *) ProcessedRelocs; - SizeOfRawData = ProcessedRelocsLength; - } - else if (RosSymLength > 0 && Section + 1 == OutFileHeader->NumberOfSections) - { - Data = (void *) PaddedRosSym; - SizeOfRawData = OutSectionHeaders[Section].SizeOfRawData; - } - else - { - Data = (void *) ((char *) InData + OutSectionHeaders[Section].PointerToRawData); - SizeOfRawData = OutSectionHeaders[Section].SizeOfRawData; - } - if (fwrite(Data, 1, SizeOfRawData, OutFile) != SizeOfRawData) - { - perror("Error writing section data\n"); - free(PaddedRosSym); - free(OutHeader); - return 1; - } - } - } - - if (PaddedRosSym) - { - free(PaddedRosSym); - } - free(OutHeader); - - return 0; -} - -int main(int argc, char* argv[]) -{ - PSYMBOLFILE_HEADER SymbolFileHeader; - PIMAGE_DOS_HEADER PEDosHeader; - PIMAGE_FILE_HEADER PEFileHeader; - PIMAGE_OPTIONAL_HEADER PEOptHeader; - PIMAGE_SECTION_HEADER PESectionHeaders; - ULONG ImageBase; - void *StabBase; - ULONG StabsLength; - void *StabStringBase; - ULONG StabStringsLength; - void *CoffBase = NULL; - ULONG CoffsLength; - void *CoffStringBase = NULL; - ULONG CoffStringsLength; - char* path1; - char* path2; - FILE* out; - void *StringBase; - ULONG StringsLength; - ULONG StabSymbolsCount; - PROSSYM_ENTRY StabSymbols; - ULONG CoffSymbolsCount; - PROSSYM_ENTRY CoffSymbols; - ULONG MergedSymbolsCount; - PROSSYM_ENTRY MergedSymbols; - size_t FileSize; - void *FileData; - ULONG RosSymLength; - void *RosSymSection; - char elfhdr[4] = { '\177', 'E', 'L', 'F' }; - - if (3 != argc) - { - fprintf(stderr, "Usage: rsym \n"); - exit(1); - } - - path1 = convert_path(argv[1]); - path2 = convert_path(argv[2]); - - FileData = load_file ( path1, &FileSize ); - if ( !FileData ) - { - fprintf ( stderr, "An error occured loading '%s'\n", path1 ); - exit(1); - } - - /* Check if MZ header exists */ - PEDosHeader = (PIMAGE_DOS_HEADER) FileData; - if (PEDosHeader->e_magic != IMAGE_DOS_MAGIC || PEDosHeader->e_lfanew == 0L) - { - /* Ignore elf */ - if (!memcmp(PEDosHeader, elfhdr, sizeof(elfhdr))) - exit(0); - perror("Input file is not a PE image.\n"); - free(FileData); - exit(1); - } - - /* Locate PE file header */ - /* sizeof(ULONG) = sizeof(MAGIC) */ - PEFileHeader = (PIMAGE_FILE_HEADER)((char *) FileData + PEDosHeader->e_lfanew + sizeof(ULONG)); - - /* Locate optional header */ - assert(sizeof(ULONG) == 4); - PEOptHeader = (PIMAGE_OPTIONAL_HEADER)(PEFileHeader + 1); - ImageBase = PEOptHeader->ImageBase; - - /* Locate PE section headers */ - PESectionHeaders = (PIMAGE_SECTION_HEADER)((char *) PEOptHeader + PEFileHeader->SizeOfOptionalHeader); - - if (GetStabInfo(FileData, PEFileHeader, PESectionHeaders, &StabsLength, &StabBase, - &StabStringsLength, &StabStringBase)) - { - free(FileData); - exit(1); - } - - if (GetCoffInfo(FileData, PEFileHeader, PESectionHeaders, &CoffsLength, &CoffBase, - &CoffStringsLength, &CoffStringBase)) - { - free(FileData); - exit(1); - } - - StringBase = malloc(1 + StabStringsLength + CoffStringsLength + - (CoffsLength / sizeof(ROSSYM_ENTRY)) * (E_SYMNMLEN + 1)); - if (NULL == StringBase) - { - free(FileData); - fprintf(stderr, "Failed to allocate memory for strings table\n"); - exit(1); - } - /* Make offset 0 into an empty string */ - *((char *) StringBase) = '\0'; - StringsLength = 1; - - if (ConvertStabs(&StabSymbolsCount, &StabSymbols, &StringsLength, StringBase, - StabsLength, StabBase, StabStringsLength, StabStringBase, - ImageBase, PEFileHeader, PESectionHeaders)) - { - free(StringBase); - free(FileData); - fprintf(stderr, "Failed to allocate memory for strings table\n"); - exit(1); - } - - if (ConvertCoffs(&CoffSymbolsCount, &CoffSymbols, &StringsLength, StringBase, - CoffsLength, CoffBase, CoffStringsLength, CoffStringBase, - ImageBase, PEFileHeader, PESectionHeaders)) - { - if (StabSymbols) - { - free(StabSymbols); - } - free(StringBase); - free(FileData); - exit(1); - } - - if (MergeStabsAndCoffs(&MergedSymbolsCount, &MergedSymbols, - StabSymbolsCount, StabSymbols, - CoffSymbolsCount, CoffSymbols)) - { - if (CoffSymbols) - { - free(CoffSymbols); - } - if (StabSymbols) - { - free(StabSymbols); - } - free(StringBase); - free(FileData); - exit(1); - } - - if (CoffSymbols) - { - free(CoffSymbols); - } - if (StabSymbols) - { - free(StabSymbols); - } - if (MergedSymbolsCount == 0) - { - RosSymLength = 0; - RosSymSection = NULL; - } - else - { - RosSymLength = sizeof(SYMBOLFILE_HEADER) + MergedSymbolsCount * sizeof(ROSSYM_ENTRY) - + StringsLength; - RosSymSection = malloc(RosSymLength); - if (NULL == RosSymSection) - { - free(MergedSymbols); - free(StringBase); - free(FileData); - fprintf(stderr, "Unable to allocate memory for .rossym section\n"); - exit(1); - } - memset(RosSymSection, '\0', RosSymLength); - - SymbolFileHeader = (PSYMBOLFILE_HEADER) RosSymSection; - SymbolFileHeader->SymbolsOffset = sizeof(SYMBOLFILE_HEADER); - SymbolFileHeader->SymbolsLength = MergedSymbolsCount * sizeof(ROSSYM_ENTRY); - SymbolFileHeader->StringsOffset = SymbolFileHeader->SymbolsOffset + SymbolFileHeader->SymbolsLength; - SymbolFileHeader->StringsLength = StringsLength; - - memcpy((char *) RosSymSection + SymbolFileHeader->SymbolsOffset, MergedSymbols, - SymbolFileHeader->SymbolsLength); - memcpy((char *) RosSymSection + SymbolFileHeader->StringsOffset, StringBase, - SymbolFileHeader->StringsLength); - - free(MergedSymbols); - } - free(StringBase); - out = fopen(path2, "wb"); - if (out == NULL) - { - perror("Cannot open output file"); - free(RosSymSection); - free(FileData); - exit(1); - } - - if (CreateOutputFile(out, FileData, PEDosHeader, PEFileHeader, PEOptHeader, - PESectionHeaders, RosSymLength, RosSymSection)) - { - fclose(out); - if (RosSymSection) - { - free(RosSymSection); - } - free(FileData); - exit(1); - } - - fclose(out); - if (RosSymSection) - { - free(RosSymSection); - } - free(FileData); - - return 0; -} - -/* EOF */ diff --git a/reactos/tools/rsym/rsym.cmake.c b/reactos/tools/rsym/rsym.cmake.c deleted file mode 100644 index e30b18462ef..00000000000 --- a/reactos/tools/rsym/rsym.cmake.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Usage: rsym input-file output-file - * - * There are two sources of information: the .stab/.stabstr - * sections of the executable and the COFF symbol table. Most - * of the information is in the .stab/.stabstr sections. - * However, most of our asm files don't contain .stab directives, - * so routines implemented in assembler won't show up in the - * .stab section. They are present in the COFF symbol table. - * So, we mostly use the .stab/.stabstr sections, but we augment - * the info there with info from the COFF symbol table when - * possible. - * - * This is a tool and is compiled using the host compiler, - * i.e. on Linux gcc and not mingw-gcc (cross-compiler). - * Therefore we can't include SDK headers and we have to - * duplicate some definitions here. - * Also note that the internal functions are "old C-style", - * returning an int, where a return of 0 means success and - * non-zero is failure. - */ - -#include -#include -#include -#include - -#include "rsym.h" - -int -IsDebugSection(PIMAGE_SECTION_HEADER Section) -{ - /* This is a hack, but works for us */ - return (Section->Name[0] == '/'); -} - -int main(int argc, char* argv[]) -{ - unsigned int i; - PSYMBOLFILE_HEADER SymbolFileHeader; - PIMAGE_NT_HEADERS NtHeaders; - PIMAGE_DOS_HEADER DosHeader; - PIMAGE_FILE_HEADER FileHeader; - PIMAGE_OPTIONAL_HEADER OptionalHeader; - PIMAGE_SECTION_HEADER SectionHeaders, LastSection; - char* path1; - char* path2; - FILE* out; - size_t FileSize; - void *FileData; - char elfhdr[] = { '\377', 'E', 'L', 'F' }; - - if (argc != 3) - { - fprintf(stderr, "Usage: rsym \n"); - exit(1); - } - - path1 = convert_path(argv[1]); - path2 = convert_path(argv[2]); - - /* Load the input file into memory */ - FileData = load_file( path1, &FileSize); - if ( !FileData ) - { - fprintf(stderr, "An error occured loading '%s'\n", path1); - exit(1); - } - - /* Check if MZ header exists */ - DosHeader = (PIMAGE_DOS_HEADER) FileData; - if (DosHeader->e_magic != IMAGE_DOS_MAGIC || DosHeader->e_lfanew == 0L) - { - /* Ignore elf */ - if (!memcmp(DosHeader, elfhdr, sizeof(elfhdr))) - exit(0); - perror("Input file is not a PE image.\n"); - free(FileData); - exit(1); - } - - /* Locate the headers */ - NtHeaders = (PIMAGE_NT_HEADERS)((char*)FileData + DosHeader->e_lfanew); - FileHeader = &NtHeaders->FileHeader; - OptionalHeader = &NtHeaders->OptionalHeader; - - /* Locate PE section headers */ - SectionHeaders = (PIMAGE_SECTION_HEADER)((char*)OptionalHeader + - FileHeader->SizeOfOptionalHeader); - - /* Loop all sections */ - for (i = 0; i < FileHeader->NumberOfSections; i++) - { - /* Check if this is a debug section */ - if (IsDebugSection(&SectionHeaders[i])) - { - /* Make sure we have the correct characteristics */ - SectionHeaders[i].Characteristics |= IMAGE_SCN_CNT_INITIALIZED_DATA; - SectionHeaders[i].Characteristics &= ~(IMAGE_SCN_MEM_PURGEABLE | IMAGE_SCN_MEM_DISCARDABLE); - } - } - - /* Get a pointer to the last section header */ - LastSection = &SectionHeaders[FileHeader->NumberOfSections - 1]; - - /* Set the size of the last section to cover the rest of the PE */ - LastSection->SizeOfRawData = FileSize - LastSection->PointerToRawData; - - /* Check if the virtual section size is smaller than the raw data */ - if (LastSection->Misc.VirtualSize < LastSection->SizeOfRawData) - { - /* Make sure the virtual size of the section cover the raw data */ - LastSection->Misc.VirtualSize = ROUND_UP(LastSection->SizeOfRawData, - OptionalHeader->SectionAlignment); - - /* Fix up image size */ - OptionalHeader->SizeOfImage = LastSection->VirtualAddress + - LastSection->Misc.VirtualSize; - } - - /* Open the output file */ - out = fopen(path2, "wb"); - if (out == NULL) - { - perror("Cannot open output file"); - free(FileData); - exit(1); - } - - /* Write the output file */ - fwrite(FileData, 1, FileSize, out); - fclose(out); - free(FileData); - - return 0; -} - -/* EOF */ diff --git a/reactos/tools/rsym/rsym.h b/reactos/tools/rsym/rsym.h deleted file mode 100644 index 6b91d6e6fed..00000000000 --- a/reactos/tools/rsym/rsym.h +++ /dev/null @@ -1,172 +0,0 @@ -/* rsym.h */ - -#pragma once -#include "../pecoff.h" - -typedef struct { - USHORT f_magic; /* magic number */ - USHORT f_nscns; /* number of sections */ - ULONG f_timdat; /* time & date stamp */ - ULONG f_symptr; /* file pointer to symtab */ - ULONG f_nsyms; /* number of symtab entries */ - USHORT f_opthdr; /* sizeof(optional hdr) */ - USHORT f_flags; /* flags */ -} FILHDR; - -typedef struct { - char s_name[8]; /* section name */ - ULONG s_paddr; /* physical address, aliased s_nlib */ - ULONG s_vaddr; /* virtual address */ - ULONG s_size; /* section size */ - ULONG s_scnptr; /* file ptr to raw data for section */ - ULONG s_relptr; /* file ptr to relocation */ - ULONG s_lnnoptr; /* file ptr to line numbers */ - USHORT s_nreloc; /* number of relocation entries */ - USHORT s_nlnno; /* number of line number entries */ - ULONG s_flags; /* flags */ -} SCNHDR; -#pragma pack(4) - -typedef struct _SYMBOLFILE_HEADER { - ULONG SymbolsOffset; - ULONG SymbolsLength; - ULONG StringsOffset; - ULONG StringsLength; -} SYMBOLFILE_HEADER, *PSYMBOLFILE_HEADER; - -typedef struct _STAB_ENTRY { - ULONG n_strx; /* index into string table of name */ - UCHAR n_type; /* type of symbol */ - UCHAR n_other; /* misc info (usually empty) */ - USHORT n_desc; /* description field */ - ULONG n_value; /* value of symbol */ -} STAB_ENTRY, *PSTAB_ENTRY; - -/* http://www.math.utah.edu/docs/info/stabs_12.html */ -#define N_GYSM 0x20 -#define N_FNAME 0x22 -#define N_FUN 0x24 -#define N_STSYM 0x26 -#define N_LCSYM 0x28 -#define N_MAIN 0x2A -#define N_PC 0x30 -#define N_NSYMS 0x32 -#define N_NOMAP 0x34 -#define N_RSYM 0x40 -#define N_M2C 0x42 -#define N_SLINE 0x44 -#define N_DSLINE 0x46 -#define N_BSLINE 0x48 -#define N_BROWS 0x48 -#define N_DEFD 0x4A -#define N_EHDECL 0x50 -#define N_MOD2 0x50 -#define N_CATCH 0x54 -#define N_SSYM 0x60 -#define N_SO 0x64 -#define N_LSYM 0x80 -#define N_BINCL 0x82 -#define N_SOL 0x84 -#define N_PSYM 0xA0 -#define N_EINCL 0xA2 -#define N_ENTRY 0xA4 -#define N_LBRAC 0xC0 -#define N_EXCL 0xC2 -#define N_SCOPE 0xC4 -#define N_RBRAC 0xE0 -#define N_BCOMM 0xE2 -#define N_ECOMM 0xE4 -#define N_ECOML 0xE8 -#define N_LENG 0xFE - -/* COFF symbol table */ - -#define E_SYMNMLEN 8 /* # characters in a symbol name */ -#define E_FILNMLEN 14 /* # characters in a file name */ -#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */ - -#define N_BTMASK (0xf) -#define N_TMASK (0x30) -#define N_BTSHFT (4) -#define N_TSHIFT (2) - -/* derived types, in e_type */ -#define DT_NON (0) /* no derived type */ -#define DT_PTR (1) /* pointer */ -#define DT_FCN (2) /* function */ -#define DT_ARY (3) /* array */ - -#define BTYPE(x) ((x) & N_BTMASK) - -#define ISPTR(x) (((x) & N_TMASK) == (DT_PTR << N_BTSHFT)) -#define ISFCN(x) (((x) & N_TMASK) == (DT_FCN << N_BTSHFT)) -#define ISARY(x) (((x) & N_TMASK) == (DT_ARY << N_BTSHFT)) -#define ISTAG(x) ((x)==C_STRTAG||(x)==C_UNTAG||(x)==C_ENTAG) -#define DECREF(x) ((((x)>>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK)) - -#define C_EFCN 0xff /* physical end of function */ -#define C_NULL 0 -#define C_AUTO 1 /* automatic variable */ -#define C_EXT 2 /* external symbol */ -#define C_STAT 3 /* static */ -#define C_REG 4 /* register variable */ -#define C_EXTDEF 5 /* external definition */ -#define C_LABEL 6 /* label */ -#define C_ULABEL 7 /* undefined label */ -#define C_MOS 8 /* member of structure */ -#define C_ARG 9 /* function argument */ -#define C_STRTAG 10 /* structure tag */ -#define C_MOU 11 /* member of union */ -#define C_UNTAG 12 /* union tag */ -#define C_TPDEF 13 /* type definition */ -#define C_USTATIC 14 /* undefined static */ -#define C_ENTAG 15 /* enumeration tag */ -#define C_MOE 16 /* member of enumeration */ -#define C_REGPARM 17 /* register parameter */ -#define C_FIELD 18 /* bit field */ -#define C_AUTOARG 19 /* auto argument */ -#define C_LASTENT 20 /* dummy entry (end of block) */ -#define C_BLOCK 100 /* ".bb" or ".eb" */ -#define C_FCN 101 /* ".bf" or ".ef" */ -#define C_EOS 102 /* end of structure */ -#define C_FILE 103 /* file name */ -#define C_LINE 104 /* line # reformatted as symbol table entry */ -#define C_ALIAS 105 /* duplicate tag */ -#define C_HIDDEN 106 /* ext symbol in dmert public lib */ - -#pragma pack(1) -typedef struct _COFF_SYMENT -{ - union - { - char e_name[E_SYMNMLEN]; - struct - { - ULONG e_zeroes; - ULONG e_offset; - } - e; - } - e; - ULONG e_value; - short e_scnum; - USHORT e_type; - UCHAR e_sclass; - UCHAR e_numaux; -} COFF_SYMENT, *PCOFF_SYMENT; -#pragma pack(4) - -typedef struct _ROSSYM_ENTRY { - ULONG_PTR Address; - ULONG FunctionOffset; - ULONG FileOffset; - ULONG SourceLine; -} ROSSYM_ENTRY, *PROSSYM_ENTRY; - -#define ROUND_UP(N, S) (((N) + (S) - 1) & ~((S) - 1)) - -extern char* -convert_path(const char* origpath); - -extern void* -load_file ( const char* file_name, size_t* file_size ); diff --git a/reactos/tools/rsym/rsym64.c b/reactos/tools/rsym/rsym64.c deleted file mode 100644 index 3c08ce1c324..00000000000 --- a/reactos/tools/rsym/rsym64.c +++ /dev/null @@ -1,910 +0,0 @@ -#include -#include -#include - -#include "rsym.h" -#include "rsym64.h" -#include "dwarf2.h" - -char DoPrint = 0; -ULONG g_ehframep; - -#define DPRINT if(DoPrint) printf - -struct {char *name; char regnt;} regs[] = -{ {"rax", REG_RAX}, {"rdx", REG_RDX}, {"rcx", REG_RCX}, {"rbx", REG_RBX}, - {"rsi", REG_RSI}, {"rdi", REG_RDI}, {"rbp", REG_RBP}, {"rsp", REG_RSP}, - {"r8", REG_R8}, {"r9", REG_R9}, {"r10", REG_R10}, {"r11", REG_R11}, - {"r12", REG_R12}, {"r13", REG_R13}, {"r14", REG_R14}, {"r15", REG_R15}, - {"xmm0", REG_XMM0}, {"xmm1", REG_XMM1}, {"xmm2", REG_XMM2}, {"xmm3", REG_XMM3}, - {"xmm4", REG_XMM4}, {"xmm5", REG_XMM5}, {"xmm6", REG_XMM6}, {"xmm7", REG_XMM7}, - {"xmm8", REG_XMM8}, {"xmm9", REG_XMM9}, {"xmm10",REG_XMM10},{"xmm11",REG_XMM11}, - {"xmm12",REG_XMM12},{"xmm13",REG_XMM13},{"xmm14",REG_XMM14},{"xmm15",REG_XMM15}, -// "st0", "st1", "st2", "st3", -// "st4", "st5", "st6", "st7", -// "mm0", "mm1", "mm2", "mm3", -// "mm4", "mm5", "mm6", "mm7" -}; - -/** Functions for DWARF2 ******************************************************/ - -unsigned long -DwDecodeUleb128(unsigned long *pResult, char *pc) -{ - unsigned long ulResult = 0; - unsigned long ulShift = 0; - unsigned char current; - unsigned long ulSize = 0; - - do - { - current = pc[ulSize]; - ulSize++; - ulResult |= (current & 0x7f) << ulShift; - ulShift += 7; - } - while (current & 0x80); - - *pResult = ulResult; - return ulSize; -} - -unsigned long -DwDecodeSleb128(long *pResult, char *pc) -{ - long lResult = 0; - unsigned long ulShift = 0; - unsigned char current; - unsigned long ulSize = 0; - - do - { - current = pc[ulSize]; - ulSize++; - lResult |= (current & 0x7f) << ulShift; - ulShift += 7; - } - while (current & 0x80); - - if (current & 0x40) - lResult |= - (1 << (ulShift)); - - *pResult = lResult; - - return ulSize; -} - -unsigned long -DwDecodeCie(PDW2CIE Cie, char *pc) -{ - Cie->Length = *(ULONG*)pc; - Cie->Next = pc + 4 + Cie->Length; - Cie->CieId = *(ULONG*)(pc + 4); - Cie->Version = pc[8]; - Cie->AugString = pc + 9; - Cie->AugStringLength = strlen(Cie->AugString); - pc = Cie->AugString + Cie->AugStringLength + 1; - pc += DwDecodeUleb128(&Cie->CodeAlign, pc); - pc += DwDecodeSleb128(&Cie->DataAlign, pc); - pc += DwDecodeUleb128(&Cie->ReturnAddressRegister, pc); - pc += DwDecodeUleb128(&Cie->AugLength, pc); - Cie->AugData = pc; - pc += Cie->AugLength; - Cie->Instructions = pc; - - return Cie->Length + 4; -} - -unsigned long -DwDecodeFde(PDW2FDE Fde, char *pc) -{ - Fde->Length = *(ULONG*)pc; - Fde->Next = pc + 4 + Fde->Length; - Fde->CiePointer = pc + 4 - *(ULONG*)(pc + 4); - Fde->PcBegin = *(ULONG*)(pc + 8); - Fde->PcRange = *(ULONG*)(pc + 12); - pc += 16; - pc += DwDecodeUleb128(&Fde->AugLength, pc); - Fde->AugData = pc; - Fde->Instructions = Fde->AugData + Fde->AugLength; - - return Fde->Length + 4; -} - -unsigned long -DwExecIntruction(PDW2CFSTATE State, char *pc) -{ - unsigned char Code; - unsigned long Length; - unsigned long PrevFramePtr = State->FramePtr; - - State->Scope = 0; - State->IsUwop = 0; - State->Code = Code = *pc; - Length = 1; - if ((Code & 0xc0) == DW_CFA_advance_loc) - { - State->Code = DW_CFA_advance_loc; - State->Location += Code & 0x3f; - } - else if ((Code & 0xc0) == DW_CFA_offset) - { - State->Code = DW_CFA_offset; - State->Reg = Code & 0x3f; - Length += DwDecodeUleb128((unsigned long*)&State->Offset, pc + 1); - State->Offset *= 8; // fixme data alignment - State->IsUwop = 1; - } - else if ((Code & 0xc0) == DW_CFA_restore) - { - State->Code = DW_CFA_restore; - State->Reg = Code & 0x3f; - } - else switch (Code) - { - case DW_CFA_nop: - break; - case DW_CFA_set_loc: - Length = 9; // address - State->Location = *(DWORD*)(pc + 1); - break; - case DW_CFA_advance_loc1: - Length = 2; - State->Location += pc[1]; - break; - case DW_CFA_advance_loc2: - Length = 3; -// printf("Found a DW_CFA_advance_loc2 : 0x%lx ->", *(WORD*)(pc + 1)); - State->Location += *(WORD*)(pc + 1); -// printf(" 0x%lx\n", State->Location); - break; - case DW_CFA_advance_loc4: - Length = 5; -// printf("Found a DW_CFA_advance_loc4 : 0x%lx ->", *(DWORD*)(pc + 1)); - State->Location += *(DWORD*)(pc + 1); -// printf(" 0x%lx\n", State->Location); - break; - case DW_CFA_offset_extended: - Length += DwDecodeUleb128(&State->Reg, pc + Length); - Length += DwDecodeUleb128((unsigned long*)&State->Offset, pc + Length); - State->IsUwop = 1; - break; - case DW_CFA_offset_extended_sf: - Length += DwDecodeUleb128(&State->Reg, pc + Length); - Length += DwDecodeSleb128(&State->Offset, pc + Length); - State->IsUwop = 1; - break; - case DW_CFA_restore_extended: - Length += DwDecodeUleb128(&State->Reg, pc + Length); - break; - case DW_CFA_undefined: - Length += DwDecodeUleb128(&State->Reg, pc + Length); - break; - case DW_CFA_same_value: - Length += DwDecodeUleb128(&State->Reg, pc + Length); - break; - case DW_CFA_register: - Length += DwDecodeUleb128(&State->Reg, pc + Length); - Length += DwDecodeUleb128(&State->Reg2, pc + Length); - break; - case DW_CFA_remember_state: - break; - case DW_CFA_restore_state: - break; - case DW_CFA_def_cfa: - Length += DwDecodeUleb128(&State->Reg, pc + Length); - Length += DwDecodeUleb128((unsigned long*)&State->FramePtr, pc + Length); - State->IsUwop = 1; - break; - case DW_CFA_def_cfa_register: - Length += DwDecodeUleb128(&State->Reg, pc + Length); - break; - case DW_CFA_def_cfa_offset: - Length += DwDecodeUleb128((unsigned long*)&State->FramePtr, pc + Length); - State->IsUwop = 1; - break; - case DW_CFA_def_cfa_sf: - Length += DwDecodeUleb128(&State->Reg, pc + Length); - Length += DwDecodeSleb128(&State->FramePtr, pc + Length); - State->FramePtr *= 8; // data alignment - State->IsUwop = 1; - break; - case DW_CFA_GNU_args_size: - { - unsigned long argsize; - printf("Warning, DW_CFA_GNU_args_size is unimplemented\n"); - Length += DwDecodeUleb128(&argsize, pc + Length); - break; - } - /* PSEH */ - case 0x21: - { - unsigned long SehType; - -// printf("found 0x21 at %lx\n", State->Location); - Length += DwDecodeUleb128(&SehType, pc + Length); - switch (SehType) - { - case 1: /* Begin Try */ - State->TryLevel++; - if (State->TryLevel >= 20) - { - printf("WTF? Trylevel of 20 exceeded...\n"); - exit(1); - } - State->SehBlock[State->TryLevel-1].BeginTry = State->Location; -// printf("Found begintry at 0x%lx\n", State->Location); - State->Scope = 1; - break; - - case 2: /* End Try */ - State->SehBlock[State->TryLevel-1].EndTry = State->Location; - State->Scope = 2; - break; - - case 3: /* Jump target */ - State->SehBlock[State->TryLevel-1].Target = State->Location; - State->Scope = 3; - break; - - case 4: /* SEH End */ - if (State->TryLevel == 20) - { - printf("Ooops, end of SEH with trylevel at 0!\n"); - exit(1); - } - State->SehBlock[State->TryLevel-1].End = State->Location; - State->TryLevel--; - State->cScopes++; - State->Scope = 0; - break; - - case 5: /* Constant filter */ - { - unsigned long value; - Length += DwDecodeUleb128(&value, pc + Length); - State->SehBlock[State->TryLevel-1].Handler = value; -// printf("Found a constant filter at 0x%lx\n", State->Location); - break; - } - - /* These work differently. We are in a new function. - * We have to parse a lea opcode to find the adress of - * the jump target. This is the reference to find the - * appropriate C_SCOPE_TABLE. */ - case 6: /* Filter func */ -// printf("Found a filter func at 0x%lx\n", State->Location); - break; - - case 7: /* Finally func */ - { -// printf("Found a finally func at 0x%lx\n", State->Location); - break; - } - - default: - printf("Found unknow PSEH code 0x%lx\n", SehType); - exit(1); - } - break; - } - default: - fprintf(stderr, "unknown instruction 0x%x at 0x%p\n", Code, pc); - exit(1); - } - - State->FramePtrDiff = State->FramePtr - PrevFramePtr; - DPRINT("@%p: code=%x, Loc=%lx, offset=%lx, reg=0x%lx:%s\n", - (void*)((ULONG)pc - g_ehframep), Code, State->Location, State->Offset, State->Reg, regs[State->Reg].name); - return Length; -} - -/** Windows unwind data functions *********************************************/ - -ULONG -StoreUnwindCodes(PUNWIND_INFO Info, PDW2CFSTATE State, ULONG FunctionStart) -{ - ULONG cCodes = 0; - ULONG AllocSize; - UNWIND_CODE Code[3]; - int i; - - Code[0].CodeOffset = State->Location - FunctionStart; - - switch (State->Code) - { - case DW_CFA_offset: - case DW_CFA_offset_extended: - // save register at offset - Code[0].OpInfo = regs[State->Reg].regnt; - if (State->Offset <= 0x7FFF8) - { - Code[0].UnwindOp = UWOP_SAVE_NONVOL; - Code[1].FrameOffset = State->Offset / 8; - cCodes = 2; - } - else - { - Code[0].UnwindOp = UWOP_SAVE_NONVOL_FAR; - Code[1].FrameOffset = (State->Offset / 8); - Code[2].FrameOffset = (State->Offset / 8) >> 16; - cCodes = 3; - } - break; - - case DW_CFA_def_cfa: - //case DW_CFA_def_cfa_register: - case DW_CFA_def_cfa_offset: - case DW_CFA_def_cfa_sf: - AllocSize = State->FramePtrDiff; - if (AllocSize <= 128) - { - Code[0].UnwindOp = UWOP_ALLOC_SMALL; - Code[0].OpInfo = (AllocSize / 8) - 1; - cCodes = 1; - } - else if (AllocSize <= 0x7FFF8) - { - Code[0].UnwindOp = UWOP_ALLOC_LARGE; - Code[0].OpInfo = 0; - Code[1].FrameOffset = AllocSize / 8; - cCodes = 2; - } - else // if (AllocSize > 0x7FFF8) - { - Code[0].UnwindOp = UWOP_ALLOC_LARGE; - Code[0].OpInfo = 1; - Code[1].FrameOffset = (USHORT)AllocSize; - Code[2].FrameOffset = (USHORT)(AllocSize >> 16); - cCodes = 3; - } - break; - } - - if (Info) - { - /* Move old codes */ - for (i = Info->CountOfCodes - 1; i >= 0; i--) - { - Info->UnwindCode[i + cCodes] = Info->UnwindCode[i]; - } - - /* Copy new codes */ - for (i = 0; i < cCodes; i++) - { - Info->UnwindCode[i] = Code[i]; - } - - Info->CountOfCodes += cCodes; - } - - return cCodes; -} - -#define GetxdataSize(cFuncs, cUWOP, cScopes) \ - ( cFuncs * (sizeof(UNWIND_INFO) + 2 + 4 + 4) \ - + cUWOP * sizeof(UNWIND_CODE) \ - + cScopes * sizeof(C_SCOPE_TABLE_ENTRY) ) - -ULONG -StoreUnwindInfo(PUNWIND_INFO Info, PDW2FDE pFde, ULONG FunctionStart) -{ - ULONG cbSize; - DW2CFSTATE State; - char *pInst; - ULONG c; - DW2CIE Cie; - - cbSize = 4; // sizeof(UNWIND_INFO); - Info->Version = 1; - Info->Flags = 0; - Info->SizeOfProlog = 0; - Info->CountOfCodes = 0; - Info->FrameRegister = 0; - Info->FrameOffset = 0; - - /* Decode the CIE */ - DwDecodeCie(&Cie, pFde->CiePointer); - - /* Initialize state */ - State.Location = FunctionStart; - State.FramePtr = 0; - State.TryLevel = 0; - State.cScopes = 0; - - /* Parse the CIE's initial instructions */ - pInst = Cie.Instructions; - while (pInst < Cie.Next) - { - pInst += DwExecIntruction(&State, pInst); - } - - /* Parse the FDE instructions */ - pInst = pFde->Instructions; - while (pInst < pFde->Next) - { - pInst += DwExecIntruction(&State, pInst); - - if (State.IsUwop) - { - c = StoreUnwindCodes(Info, &State, FunctionStart); - cbSize += c * sizeof(UNWIND_CODE); - Info->SizeOfProlog = State.Location - FunctionStart; - } - } - cbSize = ROUND_UP(cbSize, 4); - - /* Do we have scope table to write? */ - if (State.cScopes > 0) - { - unsigned long i; - ULONG *pExceptionHandler; - PC_SCOPE_TABLE pScopeTable; - - /* Set flag for exception handler */ - Info->Flags |= UNW_FLAG_EHANDLER; - - /* Store address of handler and number of scope tables */ - pExceptionHandler = (ULONG*)((char*)Info + cbSize); - // HACK for testing purpose - *pExceptionHandler = FunctionStart; // _C_specific_handler - - pScopeTable = (PC_SCOPE_TABLE)(pExceptionHandler + 1); - pScopeTable->NumEntries = State.cScopes; - - /* Store the scope table entries */ - for (i = 0; i < State.cScopes; i++) - { - pScopeTable->Entry[i].Begin = State.SehBlock[i].BeginTry; - pScopeTable->Entry[i].End = State.SehBlock[i].EndTry; - pScopeTable->Entry[i].Handler = 1;//State.SehBlock[i].Handler; - pScopeTable->Entry[i].Target = State.SehBlock[i].Target; - } - - /* Update size */ - cbSize += 8 + State.cScopes * sizeof(C_SCOPE_TABLE_ENTRY); - } - - return cbSize; -} - -void -CountUnwindData(PFILE_INFO File) -{ - DW2CIEFDE *p; - DW2FDE Fde; - char *pInst, *pmax; - DW2CFSTATE State; - - File->cFuncs = 0; - File->cScopes = 0; - File->cUWOP = 0; - State.FramePtr = 0; - State.TryLevel = 0; - - p = File->eh_frame.p; - pmax = (char*)p + File->eh_frame.psh->Misc.VirtualSize; - for (; p->Length && (char*)p < pmax; p = NextCIE(p)) - { - /* Is this an FDE? */ - if (p->CiePointer != 0) - { - File->cFuncs++; - DwDecodeFde(&Fde, (char*)p); - - pInst = Fde.Instructions; - while (pInst < Fde.Next) - { - pInst += DwExecIntruction(&State, pInst); - File->cUWOP += StoreUnwindCodes(NULL, &State, 0); - File->cScopes += State.Scope ? 1 : 0; - } - } - } - - return; -} - -int CompFunc(const void *p1, const void *p2) -{ - PRUNTIME_FUNCTION prf1 = (void*)p1, prf2 = (void*)p2; - return (prf1->FunctionStart > prf2->FunctionStart ? 1 : -1); -} - -void -GeneratePData(PFILE_INFO File) -{ - DW2CIEFDE *p; - DW2FDE Fde; - PIMAGE_DATA_DIRECTORY Dir; - ULONG i, Offset; - void * eh_frame; - PRUNTIME_FUNCTION pdata; - ULONG xdata_va; - char *xdata_p; - ULONG cbSize; - PIMAGE_SECTION_HEADER pshp, pshx; - ULONG FileAlignment; - char *pmax; - - FileAlignment = File->OptionalHeader->FileAlignment; - - /* Get pointer to eh_frame section */ - eh_frame = File->eh_frame.p; - g_ehframep = (ULONG)eh_frame; - - /* Get sizes */ - CountUnwindData(File); -// printf("cFuncs = %ld, cUWOPS = %ld, cScopes = %ld\n", -// File->cFuncs, File->cUWOP, File->cScopes); - - /* Initialize section header for .pdata */ - i = File->pdata.idx = File->UsedSections; - pshp = File->pdata.psh = &File->NewSectionHeaders[i]; - memcpy(pshp->Name, ".pdata", 7); - pshp->Misc.VirtualSize = (File->cFuncs + 1) * sizeof(RUNTIME_FUNCTION); - pshp->VirtualAddress = File->NewSectionHeaders[i - 1].VirtualAddress + - File->NewSectionHeaders[i - 1].SizeOfRawData; - pshp->SizeOfRawData = ROUND_UP(pshp->Misc.VirtualSize, FileAlignment); - pshp->PointerToRawData = File->NewSectionHeaders[i - 1].PointerToRawData + - File->NewSectionHeaders[i - 1].SizeOfRawData; - pshp->PointerToRelocations = 0; - pshp->PointerToLinenumbers = 0; - pshp->NumberOfRelocations = 0; - pshp->NumberOfLinenumbers = 0; - pshp->Characteristics = IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_NOT_PAGED | - IMAGE_SCN_CNT_INITIALIZED_DATA; - - /* Allocate .pdata buffer */ - pdata = File->pdata.p = malloc(pshp->SizeOfRawData); - memset(File->pdata.p, 0, pshp->SizeOfRawData); - - /* Init exception data dir */ - Dir = &File->OptionalHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXCEPTION]; - Dir->VirtualAddress = pshp->VirtualAddress; - Dir->Size = pshp->Misc.VirtualSize; - - /* Initialize section header for .xdata */ - File->xdata.idx = File->pdata.idx + 1; - pshx = File->xdata.psh = &File->NewSectionHeaders[File->xdata.idx]; - memcpy(pshx->Name, ".xdata", 7); - pshx->Misc.VirtualSize = GetxdataSize(File->cFuncs, File->cUWOP, File->cScopes); - pshx->VirtualAddress = pshp->VirtualAddress + pshp->SizeOfRawData; - pshx->SizeOfRawData = ROUND_UP(pshx->Misc.VirtualSize, FileAlignment); - pshx->PointerToRawData = pshp->PointerToRawData + pshp->SizeOfRawData; - pshx->PointerToRelocations = 0; - pshx->PointerToLinenumbers = 0; - pshx->NumberOfRelocations = 0; - pshx->NumberOfLinenumbers = 0; - pshx->Characteristics = IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_NOT_PAGED | - IMAGE_SCN_CNT_INITIALIZED_DATA; - - /* Allocate .xdata buffer */ - File->xdata.p = malloc(pshx->SizeOfRawData); - memset(File->xdata.p, 0, pshx->SizeOfRawData); - - i = 0; - Offset = File->eh_frame.psh->VirtualAddress; - xdata_va = pshx->VirtualAddress; - xdata_p = File->xdata.p; - pmax = (char*)eh_frame + File->eh_frame.psh->Misc.VirtualSize - 100; - - for (p = eh_frame; p->Length && (char*)p < pmax; p = NextCIE(p)) - { - /* Is this an FDE? */ - if (p->CiePointer != 0) - { - DwDecodeFde(&Fde, (char*)p); - pdata[i].FunctionStart = Offset + 8 + Fde.PcBegin; - pdata[i].FunctionEnd = pdata[i].FunctionStart + Fde.PcRange; - pdata[i].UnwindInfo = xdata_va; - -// printf("%ld: RUNTIME_FUNCTION: {0x%lx, 0x%lx, 0x%lx}\n", i, pdata[i].FunctionStart, pdata[i].FunctionEnd, pdata[i].UnwindInfo); - - cbSize = StoreUnwindInfo((void*)xdata_p, &Fde, pdata[i].FunctionStart); - xdata_va += cbSize; - xdata_p += cbSize; - i++; - } - Offset += 4 + p->Length; - } - - /* Sort the RUNTIME_FUNCTIONS */ - qsort(pdata, i, sizeof(RUNTIME_FUNCTION), CompFunc); - -} - -/** Functions for COFF ********************************************************/ - - -WORD -CalculateChecksum(DWORD Start, void *pFile, ULONG cbSize) -{ - WORD *Ptr = pFile; - DWORD i; - DWORD checksum = Start; - - for (i = 0; i < (cbSize + 1) / sizeof(WORD); i++) - { - checksum += Ptr[i]; - checksum = (checksum + (checksum >> 16)) & 0xffff; - } - - return checksum ; -} - -void -WriteOutFile(FILE *handle, PFILE_INFO File) -{ - int ret, Size, Pos = 0; - DWORD CheckSum; - ULONG i, Alignment; - - Alignment = File->OptionalHeader->FileAlignment; - - /* Update section count */ - File->FileHeader->NumberOfSections = File->UsedSections + 2; // FIXME!!! - - /* Update SizeOfImage */ - Size = File->xdata.psh->VirtualAddress - + File->xdata.psh->SizeOfRawData; - File->OptionalHeader->SizeOfImage = Size; - - /* Recalculate checksum */ - CheckSum = CalculateChecksum(0, File->FilePtr, File->HeaderSize); - for (i = 0; i < File->AllSections; i++) - { - if (File->UseSection[i]) - { - Size = File->SectionHeaders[i].SizeOfRawData; - if (Size) - { - void *p; - p = File->FilePtr + File->SectionHeaders[i].PointerToRawData; - CheckSum = CalculateChecksum(CheckSum, p, Size); - } - } - } - Size = File->pdata.psh->Misc.VirtualSize; - CheckSum = CalculateChecksum(CheckSum, File->pdata.p, Size); - Size = File->xdata.psh->Misc.VirtualSize; - CheckSum = CalculateChecksum(CheckSum, File->xdata.p, Size); - CheckSum += File->HeaderSize; - CheckSum += File->pdata.psh->Misc.VirtualSize; - CheckSum += File->xdata.psh->Misc.VirtualSize; - File->OptionalHeader->CheckSum = CheckSum; - - /* Write file header */ - Size = File->HeaderSize; - ret = fwrite(File->DosHeader, 1, Size, handle); - Pos = Size; - - /* Write Section headers */ - Size = File->NewSectionHeaderSize; - ret = fwrite(File->NewSectionHeaders, 1, Size, handle); - Pos += Size; - - /* Fill up to next alignement */ - Size = ROUND_UP(Pos, Alignment) - Pos; - ret = fwrite(File->AlignBuf, 1, Size, handle); - Pos += Size; - - /* Write sections */ - for (i = 0; i < File->AllSections; i++) - { - if (File->UseSection[i]) - { - void *p; - Size = File->SectionHeaders[i].SizeOfRawData; - if (Size) - { - p = File->FilePtr + File->SectionHeaders[i].PointerToRawData; - ret = fwrite(p, 1, Size, handle); - Pos += Size; - } - } - } - - /* Write .pdata section */ - Size = File->pdata.psh->SizeOfRawData; - ret = fwrite(File->pdata.p, 1, Size, handle); - Pos += Size; - - /* Write .xdata section */ - Size = File->xdata.psh->SizeOfRawData; - ret = fwrite(File->xdata.p, 1, Size, handle); - Pos += Size; - -} - - -int -ParsePEHeaders(PFILE_INFO File) -{ - DWORD OldChecksum, Checksum; - ULONG Alignment, CurrentPos; - int i, j; - - /* Check if MZ header exists */ - File->DosHeader = (PIMAGE_DOS_HEADER)File->FilePtr; - if ((File->DosHeader->e_magic != IMAGE_DOS_MAGIC) || - (File->DosHeader->e_lfanew == 0L)) - { - perror("Input file is not a PE image.\n"); - return -1; - } - - /* Locate PE file header */ - File->FileHeader = (PIMAGE_FILE_HEADER)(File->FilePtr + - File->DosHeader->e_lfanew + sizeof(ULONG)); - - /* Check for x64 image */ - if (File->FileHeader->Machine != IMAGE_FILE_MACHINE_AMD64) - { - perror("Input file is not an x64 image.\n"); - return -1; - } - - /* Locate optional header */ - File->OptionalHeader = (PIMAGE_OPTIONAL_HEADER64)(File->FileHeader + 1); - - /* Check if checksum is correct */ - OldChecksum = File->OptionalHeader->CheckSum; - File->OptionalHeader->CheckSum = 0; - Checksum = CalculateChecksum(0, File->FilePtr, File->cbInFileSize); - Checksum += File->cbInFileSize; - if ((Checksum & 0xffff) != (OldChecksum & 0xffff)) - { - fprintf(stderr, "Input file has incorrect PE checksum: 0x%lx (calculated: 0x%lx)\n", - OldChecksum, Checksum); -// return 0; - } - - /* Locate PE section headers */ - File->SectionHeaders = (PIMAGE_SECTION_HEADER)((char*)File->OptionalHeader - + File->FileHeader->SizeOfOptionalHeader); - - File->HeaderSize = File->DosHeader->e_lfanew - + sizeof(ULONG) - + sizeof(IMAGE_FILE_HEADER) - + File->FileHeader->SizeOfOptionalHeader; - - if (!File->FileHeader->PointerToSymbolTable) - { - fprintf(stderr, "No symbol table.\n"); - return -1; - } - - /* Create some shortcuts */ - File->ImageBase = File->OptionalHeader->ImageBase; - File->Symbols = File->FilePtr + File->FileHeader->PointerToSymbolTable; - File->Strings = (char*)File->Symbols + File->FileHeader->NumberOfSymbols * 18; - - /* Check section names */ - File->AllSections = File->FileHeader->NumberOfSections; - Alignment = File->OptionalHeader->FileAlignment; - File->NewSectionHeaders = malloc((File->AllSections+2) * sizeof(IMAGE_SECTION_HEADER)); - File->UsedSections = 0; - File->eh_frame.idx = -1; - - /* Allocate array of chars, specifiying wheter to copy the section */ - File->UseSection = malloc(File->AllSections); - - for (i = 0; i < File->AllSections; i++) - { - char *pName = (char*)File->SectionHeaders[i].Name; - File->UseSection[i] = 1; - - /* Check for long name */ - if (pName[0] == '/') - { - unsigned long index = strtoul(pName+1, 0, 10); - pName = File->Strings + index; - - // Hack, simply remove all sections with long names - File->UseSection[i] = 0; - } - - /* Chek if we have the eh_frame section */ - if (strcmp(pName, ".eh_frame") == 0) - { - File->eh_frame.psh = &File->SectionHeaders[i]; - File->eh_frame.idx = i; - File->eh_frame.p = File->FilePtr + File->eh_frame.psh->PointerToRawData; - } - - /* Increase number of used sections */ - if (File->UseSection[i]) - File->UsedSections = i+1; - - } - - /* This is the actual size of the new section headers */ - File->NewSectionHeaderSize = - (File->UsedSections+2) * sizeof(IMAGE_SECTION_HEADER); - - /* Calculate the position to start writing the sections to */ - CurrentPos = File->HeaderSize + File->NewSectionHeaderSize; - CurrentPos = ROUND_UP(CurrentPos, Alignment); - - /* Create new section headers */ - for (i = 0, j = 0; i < File->UsedSections; i++) - { - /* Copy section header */ - File->NewSectionHeaders[j] = File->SectionHeaders[i]; - - /* Shall we strip the section? */ - if (File->UseSection[i] == 0) - { - /* Make it a bss section */ - File->NewSectionHeaders[j].PointerToRawData = 0; - File->NewSectionHeaders[j].SizeOfRawData = 0; - File->NewSectionHeaders[j].Characteristics = 0xC0500080; - } - - /* Fix Offset into File */ - File->NewSectionHeaders[j].PointerToRawData = - File->NewSectionHeaders[j].PointerToRawData ? CurrentPos : 0; - CurrentPos += File->NewSectionHeaders[j].SizeOfRawData; - j++; - } - - if (File->eh_frame.idx == -1) - { - //fprintf(stderr, "No .eh_frame section found\n"); - return 0; - } - - return 1; -} - -int main(int argc, char* argv[]) -{ - char* pszInFile; - char* pszOutFile; - FILE_INFO File; - FILE* outfile; - int ret; - - if (argc != 3) - { - fprintf(stderr, "Usage: rsym \n"); - exit(1); - } - - pszInFile = convert_path(argv[1]); - pszOutFile = convert_path(argv[2]); - - File.FilePtr = load_file(pszInFile, &File.cbInFileSize); - if (!File.FilePtr) - { - fprintf(stderr, "An error occured loading '%s'\n", pszInFile); - exit(1); - } - - ret = ParsePEHeaders(&File); - if (ret != 1) - { - free(File.FilePtr); - exit(ret == -1 ? 1 : 0); - } - - File.AlignBuf = malloc(File.OptionalHeader->FileAlignment); - memset(File.AlignBuf, 0, File.OptionalHeader->FileAlignment); - - GeneratePData(&File); - - outfile = fopen(pszOutFile, "wb"); - if (outfile == NULL) - { - perror("Cannot open output file"); - free(File.FilePtr); - exit(1); - } - - WriteOutFile(outfile, &File); - - fclose(outfile); - - return 0; -} diff --git a/reactos/tools/rsym/rsym64.h b/reactos/tools/rsym/rsym64.h deleted file mode 100644 index 0249ebc7945..00000000000 --- a/reactos/tools/rsym/rsym64.h +++ /dev/null @@ -1,186 +0,0 @@ -#pragma once - -//C_ASSERT(sizeof(ULONG) == 4); -typedef unsigned char UBYTE; -#if defined(_MSC_VER) || defined(__MINGW32__) -typedef unsigned __int64 ULONG64; -#else -#include -typedef uint64_t ULONG64; -#endif - - -#define IMAGE_FILE_MACHINE_I386 0x14c -#define IMAGE_FILE_MACHINE_AMD64 0x8664 -#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 -#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 - -#define UWOP_PUSH_NONVOL 0 -#define UWOP_ALLOC_LARGE 1 -#define UWOP_ALLOC_SMALL 2 -#define UWOP_SET_FPREG 3 -#define UWOP_SAVE_NONVOL 4 -#define UWOP_SAVE_NONVOL_FAR 5 -#define UWOP_SAVE_XMM 6 -#define UWOP_SAVE_XMM_FAR 7 -#define UWOP_SAVE_XMM128 8 -#define UWOP_SAVE_XMM128_FAR 9 -#define UWOP_PUSH_MACHFRAME 10 - -#define REG_RAX 0 -#define REG_RCX 1 -#define REG_RDX 2 -#define REG_RBX 3 -#define REG_RSP 4 -#define REG_RBP 5 -#define REG_RSI 6 -#define REG_RDI 7 -#define REG_R8 8 -#define REG_R9 9 -#define REG_R10 10 -#define REG_R11 11 -#define REG_R12 12 -#define REG_R13 13 -#define REG_R14 14 -#define REG_R15 15 - -#define REG_XMM0 0 -#define REG_XMM1 1 -#define REG_XMM2 2 -#define REG_XMM3 3 -#define REG_XMM4 4 -#define REG_XMM5 5 -#define REG_XMM6 6 -#define REG_XMM7 7 -#define REG_XMM8 8 -#define REG_XMM9 9 -#define REG_XMM10 10 -#define REG_XMM11 11 -#define REG_XMM12 12 -#define REG_XMM13 13 -#define REG_XMM14 14 -#define REG_XMM15 15 - - -typedef struct _IMAGE_IMPORT_DESCRIPTOR -{ - union { - DWORD Characteristics; - DWORD OriginalFirstThunk; - }; - DWORD TimeDateStamp; - DWORD ForwarderChain; - DWORD Name; - DWORD FirstThunk; -} IMAGE_IMPORT_DESCRIPTOR, *PIMAGE_IMPORT_DESCRIPTOR; - -typedef struct _IMAGE_THUNK_DATA64 -{ - union { - ULONGLONG ForwarderString; - ULONGLONG Function; - ULONGLONG Ordinal; - ULONGLONG AddressOfData; - } u1; -} IMAGE_THUNK_DATA64, *PIMAGE_THUNK_DATA64; - -typedef struct _RUNTIME_FUNCTION -{ - ULONG FunctionStart; - ULONG FunctionEnd; - ULONG UnwindInfo; -} RUNTIME_FUNCTION, *PRUNTIME_FUNCTION; - -typedef union _UNWIND_CODE -{ - struct - { - UBYTE CodeOffset; - UBYTE UnwindOp:4; - UBYTE OpInfo:4; - }; - USHORT FrameOffset; -} UNWIND_CODE, *PUNWIND_CODE; - -enum -{ - UNW_FLAG_EHANDLER = 0x01, - UNW_FLAG_UHANDLER = 0x02, - UNW_FLAG_CHAININFO = 0x03, -}; - -typedef struct _UNWIND_INFO -{ - UBYTE Version:3; - UBYTE Flags:5; - UBYTE SizeOfProlog; - UBYTE CountOfCodes; - UBYTE FrameRegister:4; - UBYTE FrameOffset:4; - UNWIND_CODE UnwindCode[1]; -/* union { - OPTIONAL ULONG ExceptionHandler; - OPTIONAL ULONG FunctionEntry; - }; - OPTIONAL ULONG ExceptionData[]; -*/ -} UNWIND_INFO, *PUNWIND_INFO; - -typedef struct _C_SCOPE_TABLE_ENTRY -{ - ULONG Begin; - ULONG End; - ULONG Handler; - ULONG Target; -} C_SCOPE_TABLE_ENTRY, *PC_SCOPE_TABLE_ENTRY; - -typedef struct _C_SCOPE_TABLE -{ - ULONG NumEntries; - C_SCOPE_TABLE_ENTRY Entry[1]; -} C_SCOPE_TABLE, *PC_SCOPE_TABLE; - - -typedef struct -{ - IMAGE_SECTION_HEADER *psh; - char *pName; - void *p; - ULONG idx; -} SECTION; - -typedef struct -{ - char* FilePtr; - size_t cbInFileSize; - size_t cbNewFileSize; - - /* PE data pointers */ - PIMAGE_DOS_HEADER DosHeader; - PIMAGE_FILE_HEADER FileHeader; - PIMAGE_OPTIONAL_HEADER64 OptionalHeader; - PIMAGE_SECTION_HEADER SectionHeaders; - PIMAGE_SECTION_HEADER NewSectionHeaders; - ULONG NewSectionHeaderSize; - PIMAGE_BASE_RELOCATION Relocations; - void *Symbols; - char *Strings; - ULONG64 ImageBase; - ULONG HeaderSize; - char *UseSection; - - /* Sections */ - ULONG AllSections; - ULONG UsedSections; - - SECTION eh_frame; - SECTION pdata; - SECTION xdata; - - char *AlignBuf; - - ULONG cFuncs; - ULONG cUWOP; - ULONG cScopes; - -} FILE_INFO, *PFILE_INFO; diff --git a/reactos/tools/rsym/rsym_common.c b/reactos/tools/rsym/rsym_common.c deleted file mode 100644 index 875463fe920..00000000000 --- a/reactos/tools/rsym/rsym_common.c +++ /dev/null @@ -1,62 +0,0 @@ -/* rsym_common.c */ - -#include -#include -#include - -#include "rsym.h" - -char* -convert_path ( const char* origpath ) -{ - char* newpath; - int i; - - newpath = strdup(origpath); - - i = 0; - while (newpath[i] != 0) - { -#ifdef UNIX_PATHS - if (newpath[i] == '\\') - { - newpath[i] = '/'; - } -#else -#ifdef DOS_PATHS - if (newpath[i] == '/') - { - newpath[i] = '\\'; - } -#endif -#endif - i++; - } - return(newpath); -} - -void* -load_file ( const char* file_name, size_t* file_size ) -{ - FILE* f; - void* FileData = NULL; - - f = fopen ( file_name, "rb" ); - if (f != NULL) - { - fseek(f, 0L, SEEK_END); - *file_size = ftell(f); - fseek(f, 0L, SEEK_SET); - FileData = malloc(*file_size); - if (FileData != NULL) - { - if ( *file_size != fread(FileData, 1, *file_size, f) ) - { - free(FileData); - FileData = NULL; - } - } - fclose(f); - } - return FileData; -} diff --git a/reactos/tools/spec2def/CMakeLists.txt b/reactos/tools/spec2def/CMakeLists.txt deleted file mode 100644 index 15be2cdbb02..00000000000 --- a/reactos/tools/spec2def/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -add_executable(spec2def spec2def.c) diff --git a/reactos/tools/spec2def/spec2def.c b/reactos/tools/spec2def/spec2def.c deleted file mode 100644 index 569a822eaec..00000000000 --- a/reactos/tools/spec2def/spec2def.c +++ /dev/null @@ -1,896 +0,0 @@ -#include -#include -#include -#include - -#ifdef _MSC_VER -#define strcasecmp _stricmp -#endif - -typedef struct -{ - char *pcName; - size_t nNameLength; - char *pcRedirection; - int nRedirectionLength; - int nCallingConvention; - int nOrdinal; - int nStackBytes; - int nArgCount; - int anArgs[30]; - unsigned int uFlags; - int nNumber; -} EXPORT; - -enum _ARCH -{ - ARCH_X86, - ARCH_AMD64, - ARCH_IA64, - ARCH_ARM, - ARCH_PPC -}; - -typedef int (*PFNOUTLINE)(FILE *, EXPORT *); -int gbKillAt = 0; -int gbMSComp = 0; -int gbImportLib = 0; -int no_redirections = 0; -int giArch = ARCH_X86; -char *pszArchString = "i386"; -char *pszArchString2; -char *pszDllName = 0; -char *gpszUnderscore = ""; - -enum -{ - FL_PRIVATE = 1, - FL_STUB = 2, - FL_NONAME = 4, -}; - -enum -{ - CC_STDCALL, - CC_CDECL, - CC_FASTCALL, - CC_THISCALL, - CC_EXTERN, - CC_STUB, -}; - -enum -{ - ARG_LONG, - ARG_PTR, - ARG_STR, - ARG_WSTR, - ARG_DBL, - ARG_INT64, - ARG_INT128, - ARG_FLOAT -}; - -char* astrCallingConventions[] = -{ - "STDCALL", - "CDECL", - "FASTCALL", - "THISCALL", - "EXTERN" -}; - -static -int -IsSeparator(char chr) -{ - return ((chr <= ',' && chr != '$') || - (chr >= ':' && chr < '?') ); -} - -int -CompareToken(const char *token, const char *comparand) -{ - while (*comparand) - { - if (*token != *comparand) return 0; - token++; - comparand++; - } - if (!IsSeparator(*token)) return 0; - return 1; -} - -int -ScanToken(const char *token, char chr) -{ - while (!IsSeparator(*token)) - { - if (*token++ == chr) return 1; - } - return 0; -} - -char * -NextLine(char *pc) -{ - while (*pc != 0) - { - if (pc[0] == '\n' && pc[1] == '\r') return pc + 2; - else if (pc[0] == '\n') return pc + 1; - pc++; - } - return pc; -} - -int -TokenLength(char *pc) -{ - int length = 0; - - while (!IsSeparator(*pc++)) length++; - - return length; -} - -char * -NextToken(char *pc) -{ - /* Skip token */ - while (!IsSeparator(*pc)) pc++; - - /* Skip white spaces */ - while (*pc == ' ' || *pc == '\t') pc++; - - /* Check for end of line */ - if (*pc == '\n' || *pc == '\r' || *pc == 0) return 0; - - /* Check for comment */ - if (*pc == '#' || *pc == ';') return 0; - - return pc; -} - -void -OutputHeader_stub(FILE *file) -{ - fprintf(file, "/* This file is autogenerated, do not edit. */\n\n" - "#include \n\n"); -} - -int -OutputLine_stub(FILE *file, EXPORT *pexp) -{ - int i; - - if (pexp->nCallingConvention != CC_STUB && - (pexp->uFlags & FL_STUB) == 0) return 0; - - fprintf(file, "int "); - if ((giArch == ARCH_X86) && - pexp->nCallingConvention == CC_STDCALL) - { - fprintf(file, "__stdcall "); - } - - /* Check for C++ */ - if (pexp->pcName[0] == '?') - { - fprintf(file, "stub_function%d(", pexp->nNumber); - } - else - { - fprintf(file, "%.*s(", pexp->nNameLength, pexp->pcName); - } - - for (i = 0; i < pexp->nArgCount; i++) - { - if (i != 0) fprintf(file, ", "); - switch (pexp->anArgs[i]) - { - case ARG_LONG: fprintf(file, "long"); break; - case ARG_PTR: fprintf(file, "void*"); break; - case ARG_STR: fprintf(file, "char*"); break; - case ARG_WSTR: fprintf(file, "wchar_t*"); break; - case ARG_DBL: - case ARG_INT64 : fprintf(file, "__int64"); break; - case ARG_INT128 : fprintf(file, "__int128"); break; - case ARG_FLOAT: fprintf(file, "float"); break; - } - fprintf(file, " a%d", i); - } - fprintf(file, ")\n{\n\tDPRINT1(\"WARNING: calling stub %.*s(", - pexp->nNameLength, pexp->pcName); - - for (i = 0; i < pexp->nArgCount; i++) - { - if (i != 0) fprintf(file, ","); - switch (pexp->anArgs[i]) - { - case ARG_LONG: fprintf(file, "0x%%lx"); break; - case ARG_PTR: fprintf(file, "0x%%p"); break; - case ARG_STR: fprintf(file, "'%%s'"); break; - case ARG_WSTR: fprintf(file, "'%%ws'"); break; - case ARG_DBL: fprintf(file, "%%f"); break; - case ARG_INT64: fprintf(file, "%%\"PRix64\""); break; - case ARG_INT128: fprintf(file, "%%\"PRix128\""); break; - case ARG_FLOAT: fprintf(file, "%%f"); break; - } - } - fprintf(file, ")\\n\""); - - for (i = 0; i < pexp->nArgCount; i++) - { - fprintf(file, ", "); - switch (pexp->anArgs[i]) - { - case ARG_LONG: fprintf(file, "(long)a%d", i); break; - case ARG_PTR: fprintf(file, "(void*)a%d", i); break; - case ARG_STR: fprintf(file, "(char*)a%d", i); break; - case ARG_WSTR: fprintf(file, "(wchar_t*)a%d", i); break; - case ARG_DBL: fprintf(file, "(double)a%d", i); break; - case ARG_INT64: fprintf(file, "(__int64)a%d", i); break; - case ARG_INT128: fprintf(file, "(__int128)a%d", i); break; - case ARG_FLOAT: fprintf(file, "(float)a%d", i); break; - } - } - fprintf(file, ");\n"); - - if (pexp->nCallingConvention == CC_STUB) - { - fprintf(file, "\t__wine_spec_unimplemented_stub(\"%s\", __FUNCTION__);\n", pszDllName); - } - - fprintf(file, "\treturn 0;\n}\n\n"); - - return 1; -} - -void -OutputHeader_asmstub(FILE *file, char *libname) -{ - fprintf(file, "; File generated automatically, do not edit! \n\n"); - - if (giArch == ARCH_X86) - fprintf(file, ".586\n.model flat\n"); - - fprintf(file, ".code\n"); -} - -int -OutputLine_asmstub(FILE *fileDest, EXPORT *pexp) -{ - /* Handle autoname */ - if (pexp->nNameLength == 1 && pexp->pcName[0] == '@') - { - fprintf(fileDest, "PUBLIC %sordinal%d\n%sordinal%d: nop\n", - gpszUnderscore, pexp->nOrdinal, gpszUnderscore, pexp->nOrdinal); - } - else if (giArch != ARCH_X86) - { - fprintf(fileDest, "PUBLIC _stub_%.*s\n_stub_%.*s: nop\n", - pexp->nNameLength, pexp->pcName, - pexp->nNameLength, pexp->pcName); - } - else if (pexp->nCallingConvention == CC_STDCALL) - { - fprintf(fileDest, "PUBLIC __stub_%.*s@%d\n__stub_%.*s@%d: nop\n", - pexp->nNameLength, pexp->pcName, pexp->nStackBytes, - pexp->nNameLength, pexp->pcName, pexp->nStackBytes); - } - else if (pexp->nCallingConvention == CC_FASTCALL) - { - fprintf(fileDest, "PUBLIC @_stub_%.*s@%d\n@_stub_%.*s@%d: nop\n", - pexp->nNameLength, pexp->pcName, pexp->nStackBytes, - pexp->nNameLength, pexp->pcName, pexp->nStackBytes); - } - else if (pexp->nCallingConvention == CC_CDECL || - pexp->nCallingConvention == CC_STUB) - { - fprintf(fileDest, "PUBLIC __stub_%.*s\n__stub_%.*s: nop\n", - pexp->nNameLength, pexp->pcName, - pexp->nNameLength, pexp->pcName); - } - else if (pexp->nCallingConvention == CC_EXTERN) - { - fprintf(fileDest, "PUBLIC __stub_%.*s\n__stub_%.*s:\n", - pexp->nNameLength, pexp->pcName, - pexp->nNameLength, pexp->pcName); - } - - return 1; -} - -void -OutputHeader_def(FILE *file, char *libname) -{ - fprintf(file, - "; File generated automatically, do not edit!\n\n" - "LIBRARY %s\n\n" - "EXPORTS\n", - libname); -} - -void -PrintName(FILE *fileDest, EXPORT *pexp, char *pszPrefix, int fRedir, int fDeco) -{ - char *pcName = fRedir ? pexp->pcRedirection : pexp->pcName; - size_t nNameLength = fRedir ? pexp->nRedirectionLength : pexp->nNameLength; - - /* Handle autoname */ - if (nNameLength == 1 && pcName[0] == '@') - { - fprintf(fileDest, "ordinal%d", pexp->nOrdinal); - } - else - { - if (fDeco && pexp->nCallingConvention == CC_FASTCALL) - fprintf(fileDest, "@"); - fprintf(fileDest, "%s%.*s", pszPrefix, nNameLength, pcName); - if ((pexp->nCallingConvention == CC_STDCALL || - pexp->nCallingConvention == CC_FASTCALL) && fDeco) - { - fprintf(fileDest, "@%d", pexp->nStackBytes); - } - } -} - -int -OutputLine_def(FILE *fileDest, EXPORT *pexp) -{ - fprintf(fileDest, " "); - - PrintName(fileDest, pexp, "", 0, (giArch == ARCH_X86) && !gbKillAt); - - if (gbImportLib) - { - fprintf(fileDest, "="); - PrintName(fileDest, pexp, "_stub_", 0, 0); - } - else if (pexp->pcRedirection) - { - if (gbMSComp && (pexp->pcName[0] == '?')) - { - /* ignore c++ redirection, since link doesn't like that! */ - } - else - { - int fDeco; - - fDeco = ((giArch == ARCH_X86) && !ScanToken(pexp->pcRedirection, '.')); - fprintf(fileDest, "="); - PrintName(fileDest, pexp, "", 1, fDeco && !gbMSComp); - } - } - else if (((pexp->uFlags & FL_STUB) || (pexp->nCallingConvention == CC_STUB)) && - (pexp->pcName[0] == '?')) - { - /* C++ stubs are forwarded to C stubs */ - fprintf(fileDest, "="); - fprintf(fileDest, "stub_function%d", pexp->nNumber); - } - else if ((giArch == ARCH_X86) && gbKillAt && !gbMSComp && - (pexp->nCallingConvention == CC_STDCALL || - pexp->nCallingConvention == CC_FASTCALL)) - { - fprintf(fileDest, "="); - PrintName(fileDest, pexp, "", 0, 1); - } - - if (pexp->nOrdinal != -1) - { - fprintf(fileDest, " @%d", pexp->nOrdinal); - } - - if (pexp->nCallingConvention == CC_EXTERN) - { - fprintf(fileDest, " DATA"); - } - - if (pexp->uFlags & FL_PRIVATE) - { - fprintf(fileDest, " PRIVATE"); - } - - if (pexp->uFlags & FL_NONAME) - { - fprintf(fileDest, " NONAME"); - } - - fprintf(fileDest, "\n"); - - return 1; -} - -int -ParseFile(char* pcStart, FILE *fileDest, PFNOUTLINE OutputLine) -{ - char *pc, *pcLine; - int nLine; - EXPORT exp; - int included; - - //fprintf(stderr, "info: line %d, pcStart:'%.30s'\n", nLine, pcStart); - - /* Loop all lines */ - nLine = 1; - exp.nNumber = 0; - for (pcLine = pcStart; *pcLine; pcLine = NextLine(pcLine), nLine++) - { - pc = pcLine; - - exp.nArgCount = 0; - exp.uFlags = 0; - exp.nNumber++; - - //fprintf(stderr, "info: line %d, token:'%d, %.20s'\n", - // nLine, TokenLength(pcLine), pcLine); - - /* Skip white spaces */ - while (*pc == ' ' || *pc == '\t') pc++; - - /* Skip empty lines, stop at EOF */ - if (*pc == ';' || *pc <= '#') continue; - if (*pc == 0) return 0; - - //fprintf(stderr, "info: line %d, token:'%.*s'\n", - // nLine, TokenLength(pc), pc); - - /* Now we should get either an ordinal or @ */ - if (*pc == '@') exp.nOrdinal = -1; - else exp.nOrdinal = atol(pc); - - /* Go to next token (type) */ - if (!(pc = NextToken(pc))) - { - fprintf(stderr, "error: line %d, unexpected end of line\n", nLine); - return -10; - } - - //fprintf(stderr, "info: Token:'%.10s'\n", pc); - - /* Now we should get the type */ - if (CompareToken(pc, "stdcall")) - { - exp.nCallingConvention = CC_STDCALL; - } - else if (CompareToken(pc, "cdecl") || - CompareToken(pc, "varargs")) - { - exp.nCallingConvention = CC_CDECL; - } - else if (CompareToken(pc, "fastcall")) - { - exp.nCallingConvention = CC_FASTCALL; - } - else if (CompareToken(pc, "thiscall")) - { - exp.nCallingConvention = CC_THISCALL; - } - else if (CompareToken(pc, "extern")) - { - exp.nCallingConvention = CC_EXTERN; - } - else if (CompareToken(pc, "stub")) - { - exp.nCallingConvention = CC_STUB; - } - else - { - fprintf(stderr, "error: line %d, expected type, got '%.*s' %d\n", - nLine, TokenLength(pc), pc, *pc); - return -11; - } - - //fprintf(stderr, "info: nCallingConvention: %d\n", exp.nCallingConvention); - - /* Go to next token (options or name) */ - if (!(pc = NextToken(pc))) - { - fprintf(stderr, "fail2\n"); - return -12; - } - - /* Handle options */ - included = 1; - while (*pc == '-') - { - if (CompareToken(pc, "-arch")) - { - /* Default to not included */ - included = 0; - pc += 5; - - /* Look if we are included */ - while (*pc == '=' || *pc == ',') - { - pc++; - if (CompareToken(pc, pszArchString) || - CompareToken(pc, pszArchString2)) - { - included = 1; - } - - /* Skip to next arch or end */ - while (*pc > ',') pc++; - } - } - else if (CompareToken(pc, "-i386")) - { - if (giArch != ARCH_X86) included = 0; - } - else if (CompareToken(pc, "-private")) - { - exp.uFlags |= FL_PRIVATE; - } - else if (CompareToken(pc, "-noname") || - CompareToken(pc, "-ordinal")) - { - exp.uFlags |= FL_NONAME; - } - else if (CompareToken(pc, "-stub")) - { - exp.uFlags |= FL_STUB; - } - else if (CompareToken(pc, "-norelay") || - CompareToken(pc, "-register") || - CompareToken(pc, "-ret64")) - { - /* silently ignore these */ - } - else - { - fprintf(stderr, "info: ignored option: '%.*s'\n", - TokenLength(pc), pc); - } - - /* Go to next token */ - pc = NextToken(pc); - } - - //fprintf(stderr, "info: Name:'%.10s'\n", pc); - - /* If arch didn't match ours, skip this entry */ - if (!included) continue; - - /* Get name */ - exp.pcName = pc; - exp.nNameLength = TokenLength(pc); - - /* Handle parameters */ - exp.nStackBytes = 0; - if (exp.nCallingConvention != CC_EXTERN && - exp.nCallingConvention != CC_STUB) - { - //fprintf(stderr, "info: options:'%.10s'\n", pc); - /* Go to next token */ - if (!(pc = NextToken(pc))) - { - fprintf(stderr, "fail4\n"); - return -13; - } - - /* Verify syntax */ - if (*pc++ != '(') - { - fprintf(stderr, "error: line %d, expected '('\n", nLine); - return -14; - } - - /* Skip whitespaces */ - while (*pc == ' ' || *pc == '\t') pc++; - - exp.nStackBytes = 0; - while (*pc >= '0') - { - if (CompareToken(pc, "long")) - { - exp.nStackBytes += 4; - exp.anArgs[exp.nArgCount] = ARG_LONG; - } - else if (CompareToken(pc, "double")) - { - exp.nStackBytes += 8; - exp.anArgs[exp.nArgCount] = ARG_DBL; - } - else if (CompareToken(pc, "ptr") || - CompareToken(pc, "str") || - CompareToken(pc, "wstr")) - { - exp.nStackBytes += 4; // sizeof(void*) on x86 - exp.anArgs[exp.nArgCount] = ARG_PTR; // FIXME: handle strings - } - else if (CompareToken(pc, "int64")) - { - exp.nStackBytes += 8; - exp.anArgs[exp.nArgCount] = ARG_INT64; - } - else if (CompareToken(pc, "int128")) - { - exp.nStackBytes += 16; - exp.anArgs[exp.nArgCount] = ARG_INT128; - } - else if (CompareToken(pc, "float")) - { - exp.nStackBytes += 4; - exp.anArgs[exp.nArgCount] = ARG_FLOAT; - } - else - fprintf(stderr, "error: line %d, expected type, got: %.10s\n", nLine, pc); - - exp.nArgCount++; - - /* Go to next parameter */ - if (!(pc = NextToken(pc))) - { - fprintf(stderr, "fail5\n"); - return -15; - } - } - - /* Check syntax */ - if (*pc++ != ')') - { - fprintf(stderr, "error: line %d, expected ')'\n", nLine); - return -16; - } - } - - /* Handle special stub cases */ - if (exp.nCallingConvention == CC_STUB) - { - /* Check for c++ mangled name */ - if (pc[0] == '?') - { - //printf("Found c++ mangled name...\n"); - // - } - else - { - /* Check for stdcall name */ - char *p = strchr(pc, '@'); - if (p && ((size_t)(p - pc) < exp.nNameLength)) - { - int i; - exp.nNameLength = p - pc; - if (exp.nNameLength < 1) - { - fprintf(stderr, "error, @ in line %d\n", nLine); - return -1; - } - exp.nStackBytes = atoi(p + 1); - exp.nArgCount = exp.nStackBytes / 4; - exp.nCallingConvention = CC_STDCALL; - exp.uFlags |= FL_STUB; - for (i = 0; i < exp.nArgCount; i++) - exp.anArgs[i] = ARG_LONG; - } - } - } - - /* Get optional redirection */ - if ((pc = NextToken(pc))) - { - exp.pcRedirection = pc; - exp.nRedirectionLength = TokenLength(pc); - - /* Check syntax (end of line) */ - if (NextToken(pc)) - { - fprintf(stderr, "error: line %d, additional tokens after ')'\n", nLine); - return -17; - } - } - else - { - exp.pcRedirection = 0; - exp.nRedirectionLength = 0; - } - - OutputLine(fileDest, &exp); - } - - return 0; -} - - -void usage(void) -{ - printf("syntax: spec2pdef [ ...] \n" - "Possible options:\n" - " -h --help prints this screen\n" - " -l= generates an asm lib stub\n" - " -d= generates a def file\n" - " -s= generates a stub file\n" - " --ms msvc compatibility\n" - " -n= name of the dll\n" - " --kill-at removes @xx decorations from exports\n" - " -r removes redirections from def file\n" - " -a= Set architecture to . (i386, x86_64, arm)\n"); -} - -int main(int argc, char *argv[]) -{ - size_t nFileSize; - char *pszSource, *pszDefFileName = 0, *pszStubFileName = 0, *pszLibStubName = 0; - char achDllName[40]; - FILE *file; - int result = 0, i; - - if (argc < 2) - { - usage(); - return -1; - } - - /* Read options */ - for (i = 1; i < argc && *argv[i] == '-'; i++) - { - if ((strcasecmp(argv[i], "--help") == 0) || - (strcasecmp(argv[i], "-h") == 0)) - { - usage(); - return 0; - } - else if (argv[i][1] == 'd' && argv[i][2] == '=') - { - pszDefFileName = argv[i] + 3; - } - else if (argv[i][1] == 'l' && argv[i][2] == '=') - { - pszLibStubName = argv[i] + 3; - } - else if (argv[i][1] == 's' && argv[i][2] == '=') - { - pszStubFileName = argv[i] + 3; - } - else if (argv[i][1] == 'n' && argv[i][2] == '=') - { - pszDllName = argv[i] + 3; - } - else if ((strcasecmp(argv[i], "--implib") == 0)) - { - no_redirections = 1; - gbImportLib = 1; - } - else if ((strcasecmp(argv[i], "--kill-at") == 0)) - { - gbKillAt = 1; - } - else if ((strcasecmp(argv[i], "--ms") == 0)) - { - gbMSComp = 1; - } - else if ((strcasecmp(argv[i], "-r") == 0)) - { - no_redirections = 1; - } - else if (argv[i][1] == 'a' && argv[i][2] == '=') - { - pszArchString = argv[i] + 3; - } - else - { - fprintf(stderr, "Unrecognized option: %s\n", argv[i]); - return -1; - } - } - - if (strcasecmp(pszArchString, "i386") == 0) - { - giArch = ARCH_X86; - gpszUnderscore = "_"; - } - else if (strcasecmp(pszArchString, "x86_64") == 0) giArch = ARCH_AMD64; - else if (strcasecmp(pszArchString, "ia64") == 0) giArch = ARCH_IA64; - else if (strcasecmp(pszArchString, "arm") == 0) giArch = ARCH_ARM; - else if (strcasecmp(pszArchString, "ppc") == 0) giArch = ARCH_PPC; - - if ((giArch == ARCH_AMD64) || (giArch == ARCH_IA64)) - { - pszArchString2 = "win64"; - } - else - pszArchString2 = "win32"; - - /* Set a default dll name */ - if (!pszDllName) - { - char *p1, *p2; - size_t len; - - p1 = strrchr(argv[i], '\\'); - if (!p1) p1 = strrchr(argv[i], '/'); - p2 = p1 = p1 ? p1 + 1 : argv[i]; - - /* walk up to '.' */ - while (*p2 != '.' && *p2 != 0) p2++; - len = p2 - p1; - if (len >= sizeof(achDllName) - 5) - { - fprintf(stderr, "name too long: %s\n", p1); - return -2; - } - - strncpy(achDllName, p1, len); - strncpy(achDllName + len, ".dll", sizeof(achDllName) - len); - pszDllName = achDllName; - } - - /* Open input file argv[1] */ - file = fopen(argv[i], "r"); - if (!file) - { - fprintf(stderr, "error: could not open file %s ", argv[i]); - return -3; - } - - /* Get file size */ - fseek(file, 0, SEEK_END); - nFileSize = ftell(file); - rewind(file); - - /* Allocate memory buffer */ - pszSource = malloc(nFileSize + 1); - if (!pszSource) - { - fclose(file); - return -4; - } - - /* Load input file into memory */ - nFileSize = fread(pszSource, 1, nFileSize, file); - fclose(file); - - /* Zero terminate the source */ - pszSource[nFileSize] = '\0'; - - if (pszDefFileName) - { - /* Open output file */ - file = fopen(pszDefFileName, "w"); - if (!file) - { - fprintf(stderr, "error: could not open output file %s ", argv[i + 1]); - return -5; - } - - OutputHeader_def(file, pszDllName); - result = ParseFile(pszSource, file, OutputLine_def); - fclose(file); - } - - if (pszStubFileName) - { - /* Open output file */ - file = fopen(pszStubFileName, "w"); - if (!file) - { - fprintf(stderr, "error: could not open output file %s ", argv[i + 1]); - return -5; - } - - OutputHeader_stub(file); - result = ParseFile(pszSource, file, OutputLine_stub); - fclose(file); - } - - if (pszLibStubName) - { - /* Open output file */ - file = fopen(pszLibStubName, "w"); - if (!file) - { - fprintf(stderr, "error: could not open output file %s ", argv[i + 1]); - return -5; - } - - OutputHeader_asmstub(file, pszDllName); - result = ParseFile(pszSource, file, OutputLine_asmstub); - fprintf(file, "\nEND\n"); - fclose(file); - } - - - return result; -} diff --git a/reactos/tools/stubgen.c b/reactos/tools/stubgen.c deleted file mode 100644 index 86bb8de9671..00000000000 --- a/reactos/tools/stubgen.c +++ /dev/null @@ -1,174 +0,0 @@ -#include -#include -#include -#include - -#ifdef _WIN32 -#define popen _popen -#define snprintf _snprintf -#endif - -typedef struct _stub { - char *name; - char *origin; - struct _stub *next; -} stub; - -void usage( char *name ) { - fprintf( stderr, - "Usage: %s [-n nm] [-m make] libs...\n" - "nm -- The command used to run nm on reactos objects\n" - "make -- The command used to build reactos\n\n" - "libs are import libraries (.a files) typically from\n" - "dk/lib/nkm and dk/lib/w32\n", - name ); -} - -int main( int argc, char **argv ) { - char line[1024]; - char *make = "make"; - char *nm = "nm"; - char *origin = "unknown.a"; - stub *functions = NULL, *new_f, *imports = NULL, *search; - FILE *make_f, *nm_f; - int i, libstart = argc; - FILE *out = fopen("tests/stubs.tst","w"); - - if( argc == 1 ) { - if( out ) fclose( out ); - usage(argv[0]); - return 1; - } - - if( !out ) { - fprintf( stderr, "Could not write file tests/stubs.tst\n" ); - return 1; - } - - fprintf( out, "# Automatically generated by stubgen\n" ); - - for( i = 1; i < argc; i++ ) { - if( !strcmp( argv[i], "-m" ) ) { - make = argv[i+1]; - i++; - } else if( !strcmp( argv[i], "-n" ) ) { - nm = argv[i+1]; - i++; - } else { libstart = i; break; } - } - - snprintf( line, sizeof(line), "%s test 2>&1", make ); - make_f = popen( line, "r" ); - - if( !make_f ) { - fclose( out ); - fprintf( stderr, "Could not run %s test\n", make ); - return 1; - } - - while( fgets( line, sizeof(line), make_f ) ) { - char *end_of_location; - char *begin_q, *end_q; - - if( !strstr( line, "undefined reference to" ) ) continue; - - end_of_location = strrchr( line, ':' ); - - if( !end_of_location ) continue; - - begin_q = strchr( end_of_location, '`' ); - end_q = strchr( end_of_location, '\'' ); - - if( !begin_q || !end_q ) continue; - - begin_q += 2; /* skip `_ */ - - memmove( line, begin_q, end_q - begin_q ); - line[end_q - begin_q] = 0; - - for( new_f = functions; new_f; new_f = new_f->next ) - if( !strcmp( new_f->name, line ) ) break; - - if( new_f ) continue; - - new_f = (stub *)malloc( sizeof(stub) ); - if( !new_f ) - { - fprintf( stderr, "Out of memory\n" ); - fclose( out ); - pclose( make_f ); - return 1; - } - - new_f->name = strdup( line ); - new_f->next = functions; - functions = new_f; - } - - /* Scan libraries and collect available import sections */ - for( i = libstart; i < argc; i++ ) { - snprintf( line, sizeof(line), "%s %s", nm, argv[i] ); - nm_f = popen( line, "r" ); - - for( origin = argv[i]; *argv[i]; argv[i]++ ) - if( *argv[i] == '/' || *argv[i] == '\\' ) - origin = argv[i] + 1; - - - if( !nm_f ) { - fprintf( stderr, "Could not run %s\n", line ); - continue; - } - - while( fgets( line, sizeof(line), nm_f ) ) { - char *import_sign, *eol; - - if( !(import_sign = strstr( line, " I " )) ) continue; - - import_sign += 3; - while( *import_sign && isspace(*import_sign) ) import_sign++; - - /* Strip ws after name */ - for( eol = import_sign; *eol && !isspace(*eol); eol++ ); - - *eol = 0; - - for( new_f = imports; new_f; new_f = new_f->next ) - if( !strcmp( new_f->name, import_sign ) ) break; - - if( new_f ) continue; - - new_f = (stub *)malloc( sizeof(stub) ); - if( !new_f ) - { - fprintf( stderr, "Out of memory\n" ); - fclose( out ); - pclose( make_f ); - pclose( nm_f ); - return 1; - } - - new_f->name = strdup( import_sign + 1 ); - new_f->origin = origin; - new_f->next = imports; - imports = new_f; - } - - pclose( nm_f ); - } - - /* Now we have a list of unique functions and a list of imports, - lookup each function and output the entry from the import list. */ - for( new_f = functions; new_f; new_f = new_f->next ) { - for( search = imports; search; search = search->next ) { - if( !strcmp( new_f->name, search->name ) ) { - fprintf( out, "%s %s\n", search->origin, search->name ); - continue; - } - } - } - - fclose( out ); - pclose( make_f ); - return 0; -} diff --git a/reactos/tools/unicode/CMakeLists.txt b/reactos/tools/unicode/CMakeLists.txt deleted file mode 100644 index 39868c1e786..00000000000 --- a/reactos/tools/unicode/CMakeLists.txt +++ /dev/null @@ -1,73 +0,0 @@ -list(APPEND SOURCE - casemap.c - compose.c - cptable.c - mbtowc.c - string.c - wctomb.c - wctype.c - utf8.c - c_037.c - c_424.c - c_437.c - c_500.c - c_737.c - c_775.c - c_850.c - c_852.c - c_855.c - c_856.c - c_857.c - c_860.c - c_861.c - c_862.c - c_863.c - c_864.c - c_865.c - c_866.c - c_869.c - c_874.c - c_875.c - c_878.c - c_932.c - c_936.c - c_949.c - c_950.c - c_1006.c - c_1026.c - c_1250.c - c_1251.c - c_1252.c - c_1253.c - c_1254.c - c_1255.c - c_1256.c - c_1257.c - c_1258.c - c_1361.c - c_10000.c - c_10006.c - c_10007.c - c_10029.c - c_10079.c - c_10081.c - c_20866.c - c_20932.c - c_20127.c - c_21866.c - c_28591.c - c_28592.c - c_28593.c - c_28594.c - c_28595.c - c_28596.c - c_28597.c - c_28598.c - c_28599.c - c_28600.c - c_28603.c - c_28604.c - c_28605.c - c_28606.c) - -add_library(unicode ${SOURCE}) diff --git a/reactos/tools/unicode/c_037.c b/reactos/tools/unicode/c_037.c deleted file mode 100644 index 949f8e4598a..00000000000 --- a/reactos/tools/unicode/c_037.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 037 (IBM EBCDIC US Canada) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/EBCDIC/CP037.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, - 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, - 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, - 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, - /* 0x0100 .. 0x01ff */ - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc3, 0x83, - 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc4, 0x84, - 0xac, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc7, 0x87, 0xc7, 0x87, - 0xc7, 0x87, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, - 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, - 0xc9, 0x89, 0x3f, 0x3f, 0xd1, 0x91, 0xd2, 0x92, - 0x3f, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0x3f, - 0x3f, 0xd3, 0x93, 0xd5, 0x95, 0xd5, 0x95, 0xd5, - 0x95, 0x3f, 0x3f, 0x3f, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, - 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, - 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe6, 0xa6, 0xe8, 0xa8, - 0xe8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0xa2, - 0x82, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc6, 0x86, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, - 0x3f, 0x3f, 0x93, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, - 0xd6, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0xe3, 0xe4, - 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc9, - 0x89, 0xd6, 0x96, 0xe4, 0xa4, 0xfc, 0xdc, 0xfc, - 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0x3f, 0x63, 0x43, - 0xc1, 0x81, 0x9e, 0x9c, 0xc7, 0x87, 0xc7, 0x87, - 0xd2, 0x92, 0xd6, 0x96, 0xd6, 0x96, 0x3f, 0x3f, - 0x91, 0x3f, 0x3f, 0x3f, 0xc7, 0x87, 0x3f, 0x3f, - 0xd5, 0x95, 0x67, 0x47, 0x9e, 0x9c, 0x80, 0x70, - /* 0x0200 .. 0x02ff */ - 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, - 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, - 0xd9, 0x99, 0xd9, 0x99, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe2, 0xa2, 0xe3, 0xa3, 0x3f, 0x3f, 0xc8, 0x88, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, - 0xc5, 0x85, 0xec, 0xcc, 0xef, 0xcf, 0xd6, 0x96, - 0xd6, 0x96, 0xe8, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x87, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x88, 0x3f, 0x91, 0x99, 0x3f, 0x3f, 0x3f, 0xa6, - 0xa8, 0xbe, 0x7f, 0x79, 0x7d, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0xb0, 0xa5, - 0x7d, 0xbc, 0xbe, 0x79, 0x3f, 0x6d, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x90, 0x3f, 0xa1, 0x7f, 0x3f, 0x3f, - 0x3f, 0x93, 0xa2, 0xa7, 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, - /* 0x0300 .. 0x03ff */ - 0x79, 0xbe, 0xb0, 0xa1, 0xbc, 0xbc, 0x3f, 0x3f, - 0xbd, 0x3f, 0x90, 0x7f, 0xa5, 0x3f, 0x7f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x6d, 0x6d, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x79, 0xbe, 0x3f, 0x3f, 0xbd, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0xbd, 0xc1, 0xb3, - 0xc5, 0xc8, 0xc9, 0x3f, 0xd6, 0x3f, 0xe8, 0x3f, - 0x3f, 0xc1, 0xc2, 0x3f, 0x3f, 0xc5, 0xe9, 0xc8, - 0x3f, 0xc9, 0xd2, 0x3f, 0xd4, 0xd5, 0x3f, 0xd6, - 0x3f, 0xd7, 0x3f, 0x3f, 0xe3, 0xe8, 0x3f, 0xe7, - 0x3f, 0x3f, 0xc9, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x3f, 0xe8, 0xe8, 0xe8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x9e, 0xc2, 0x3f, - 0xc4, 0xc5, 0x3f, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, - 0xd3, 0xd4, 0xd5, 0x3f, 0xd6, 0x3f, 0xd7, 0xd9, - 0xe3, 0xe4, 0xe6, 0x81, 0x3f, 0x3f, 0x3f, 0x82, - 0x84, 0x85, 0x3f, 0x3f, 0x3f, 0x87, 0x3f, 0x92, - 0x94, 0x3f, 0x96, 0x3f, 0x3f, 0x3f, 0x97, 0xa3, - 0xa4, 0x3f, 0x3f, 0xa5, 0x3f, 0x59, 0x3f, 0x3f, - 0x3f, 0x3f, 0x89, 0x99, 0xa4, 0xa5, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x83, 0x3f, 0x8c, 0x3f, - 0x86, 0x3f, 0x87, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xa9, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0xc1, 0x81, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, - 0x68, 0x48, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, - 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc6, 0x86, - 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, - 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0x77, 0x57, - 0xd2, 0x92, 0xd2, 0x92, 0xd2, 0x92, 0xd3, 0x93, - 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd4, 0x94, - 0xd4, 0x94, 0xd4, 0x94, 0xd5, 0x95, 0xd5, 0x95, - 0xd5, 0x95, 0xd5, 0x95, 0xef, 0xcf, 0xef, 0xcf, - 0xd6, 0x96, 0xd6, 0x96, 0xd7, 0x97, 0xd7, 0x97, - 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, - 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, - 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, - 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe5, 0xa5, 0xe5, 0xa5, - 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, - 0xe6, 0xa6, 0xe7, 0xa7, 0xe7, 0xa7, 0xe8, 0xa8, - 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0x88, 0xa3, - 0xa6, 0xa8, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0x81, 0xc1, 0x81, 0x62, 0x42, 0x62, 0x42, - 0x62, 0x42, 0x62, 0x42, 0xc1, 0x81, 0xc1, 0x81, - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0x72, 0x52, - 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0xc5, 0x85, - 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, - 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, - 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, - 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe8, 0xe8, 0xe8, 0xe8, 0xd7, 0xbd, 0xbd, 0x79, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x60, 0x3f, 0x60, 0x60, 0x60, 0x3f, 0x6d, - 0x79, 0x7d, 0x6b, 0x79, 0x7f, 0x7f, 0x6b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, - 0x3f, 0x3f, 0xbe, 0x7f, 0x3f, 0x79, 0x3f, 0x3f, - 0x3f, 0x4c, 0x6e, 0x3f, 0x5a, 0x3f, 0xbc, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 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, 0x40, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x90, 0x89, 0x3f, 0x3f, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x95, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x3f, - 0x81, 0x85, 0x96, 0xa7, 0x3f, 0x88, 0x92, 0x93, - 0x94, 0x95, 0x97, 0xa2, 0xa3, 0x3f, 0x3f, 0x3f, - 0x3f, 0x4a, 0x3f, 0x3f, 0xb1, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0xc3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, - 0x3f, 0x3f, 0x87, 0xc8, 0xc8, 0xc8, 0x88, 0x88, - 0xc9, 0xc9, 0xd3, 0x93, 0x3f, 0xd5, 0x3f, 0x3f, - 0xd7, 0xd7, 0xd8, 0xd9, 0xd9, 0xd9, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0x3f, 0x3f, - 0xe9, 0x3f, 0xd2, 0x67, 0xc2, 0xc3, 0x85, 0x85, - 0xc5, 0xc6, 0x3f, 0xd4, 0x96, 0x3f, 0x3f, 0x3f, - 0x3f, 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x84, 0x85, - 0x89, 0x91, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0x3f, 0x3f, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, - 0x3f, 0xe7, 0x3f, 0x3f, 0xd3, 0xc3, 0xc4, 0xd4, - 0x89, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa7, 0x3f, 0x3f, 0x93, 0x83, 0x84, 0x94, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4c, 0xb0, 0x6e, 0xa5, 0x60, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x60, 0x8f, 0x3f, 0x61, 0xe0, 0x5c, - 0x90, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xd3, - 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa1, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x8a, 0x8b, 0x3f, 0x3f, 0x4c, 0x6e, - 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, 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, 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, 0xb3, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0xb0, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x4c, 0x6e, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, - 0xf9, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc2, - 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, - 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, - 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, - 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x60, 0x60, 0x4f, 0x4f, 0x60, 0x60, 0x6a, 0x6a, - 0x60, 0x60, 0x6a, 0x6a, 0x4e, 0x4e, 0x4e, 0x4e, - 0x5f, 0x5f, 0x5f, 0x5f, 0xd3, 0xd3, 0xd3, 0xd3, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0xe3, - 0xe3, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x60, 0x60, 0x6a, 0x6a, - 0x7e, 0x4f, 0x4e, 0x4e, 0x4e, 0x5f, 0x5f, 0x5f, - 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x61, 0xe0, 0xe7, 0x60, 0x4f, 0x60, 0x4f, - 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xd6, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x91, 0xe5, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4c, 0x6e, 0x8a, 0x8b, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xba, 0xbb, 0x3f, 0x7f, 0x7f, 0x6b, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x4e, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbc, 0xbc, 0xbc, 0xbc, 0x6d, 0x6d, 0x6d, - 0x6b, 0x3f, 0x4b, 0x3f, 0x5e, 0x7a, 0x6f, 0x5a, - 0x60, 0x4d, 0x5d, 0xc0, 0xd0, 0x3f, 0x3f, 0x7b, - 0x50, 0x5c, 0x4e, 0x60, 0x4c, 0x6e, 0x7e, 0x3f, - 0xe0, 0x5b, 0x6c, 0x7c, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, - 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4a, 0xb1, 0x5f, 0xbc, 0x6a, 0xb2, 0x3f, 0x3f, - 0x4f, 0x4c, 0xb0, 0x6e, 0xa5, 0x3f, 0xd6, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_037 = -{ - { 37, 1, 0x003f, 0x003f, "IBM EBCDIC US Canada" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_10000.c b/reactos/tools/unicode/c_10000.c deleted file mode 100644 index c399c724459..00000000000 --- a/reactos/tools/unicode/c_10000.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 10000 (Mac Roman) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/ROMAN.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, - 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, - 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, - 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, - 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, - 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, - 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, - 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, - 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, - 0x00ff, 0x0178, 0x2044, 0x00a4, 0x2039, 0x203a, 0xfb01, 0xfb02, - 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, - 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, - 0x003f, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, - 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x7c, 0xa4, - 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x2d, 0xa8, 0xf8, - 0xa1, 0xb1, 0x32, 0x33, 0xab, 0xb5, 0xa6, 0xe1, - 0xfc, 0x31, 0xbc, 0xc8, 0x3f, 0x3f, 0x3f, 0xc0, - 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, - 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, - 0x44, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x78, - 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x59, 0x3f, 0xa7, - 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, - 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, - 0x64, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, - 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x79, 0x3f, 0xd8, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0xf5, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0xce, 0xcf, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0xd9, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x86, 0x9f, 0x86, - 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x3f, 0x80, 0x8a, - 0x41, 0x61, 0xae, 0xbe, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x81, 0x8c, 0xae, 0xbe, 0xaf, 0xbf, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x85, 0x9a, 0xcd, 0x9b, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xab, 0xfd, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0xf6, 0xff, - 0x27, 0xf8, 0xab, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xab, 0xf6, 0xf7, 0xf8, 0xf8, 0xf9, 0xfa, - 0xac, 0x3f, 0xfb, 0xfd, 0xff, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfc, - 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xab, 0x3f, 0x3f, 0xac, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xac, 0x41, 0xe1, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, - 0xb9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa7, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0xb9, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xae, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xa7, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xa7, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x82, 0x8d, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xec, 0x95, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xcd, 0x9b, 0xcd, 0x9b, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xe5, 0x89, 0xe5, 0x89, - 0xe5, 0x89, 0xe5, 0x89, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xe6, 0x90, - 0xe6, 0x90, 0xe6, 0x90, 0xe6, 0x90, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xac, 0xac, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0xd0, 0xd1, 0xd0, 0x3f, 0x5f, - 0xd4, 0xd5, 0xe2, 0xd4, 0xd2, 0xd3, 0xe3, 0x3f, - 0xa0, 0xe0, 0xa5, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 0xe4, 0x3f, 0xab, 0xfd, 0x3f, 0xd4, 0x3f, 0x3f, - 0x3f, 0xdc, 0xdd, 0x3f, 0x21, 0x3f, 0xf8, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xda, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfb, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0xaa, 0x3f, 0x5a, 0x3f, 0xbd, 0x3f, - 0x5a, 0x3f, 0x4b, 0x81, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xb9, 0x3f, 0x3f, 0x3f, - 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdc, 0xf6, 0xdd, 0xff, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdc, 0xdd, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0xb6, 0x3f, 0x3f, 0xaf, 0xc6, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0x3f, 0xb7, 0x2d, 0xb1, 0x3f, 0xda, 0x5c, 0x2a, - 0xfb, 0xa5, 0xc3, 0x3f, 0x3f, 0x3f, 0xb0, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, - 0x3f, 0x6e, 0x3f, 0xba, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, - 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, - 0xb2, 0xb3, 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, 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, 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, 0xe1, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xdc, 0xdd, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xd7, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdc, 0xdd, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 0xe3, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 0x3f, 0xde, 0xdf, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xf8, 0xf8, 0xf8, 0xf8, 0x5f, 0x5f, 0x5f, - 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, - 0xd1, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, - 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, - 0x5c, 0x24, 0x25, 0x40, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xa3, 0xc2, 0xf8, 0x7c, 0xb4, 0x3f, 0x3f, - 0x7c, 0xdc, 0xf6, 0xdd, 0xff, 0x3f, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_10000 = -{ - { 10000, 1, 0x003f, 0x003f, "Mac Roman" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_10006.c b/reactos/tools/unicode/c_10006.c deleted file mode 100644 index 07a43a418f0..00000000000 --- a/reactos/tools/unicode/c_10006.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 10006 (Mac Greek) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/GREEK.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c4, 0x00b9, 0x00b2, 0x00c9, 0x00b3, 0x00d6, 0x00dc, 0x0385, - 0x00e0, 0x00e2, 0x00e4, 0x0384, 0x00a8, 0x00e7, 0x00e9, 0x00e8, - 0x00ea, 0x00eb, 0x00a3, 0x2122, 0x00ee, 0x00ef, 0x2022, 0x00bd, - 0x2030, 0x00f4, 0x00f6, 0x00a6, 0x00ad, 0x00f9, 0x00fb, 0x00fc, - 0x2020, 0x0393, 0x0394, 0x0398, 0x039b, 0x039e, 0x03a0, 0x00df, - 0x00ae, 0x00a9, 0x03a3, 0x03aa, 0x00a7, 0x2260, 0x00b0, 0x0387, - 0x0391, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x0392, 0x0395, 0x0396, - 0x0397, 0x0399, 0x039a, 0x039c, 0x03a6, 0x03ab, 0x03a8, 0x03a9, - 0x03ac, 0x039d, 0x00ac, 0x039f, 0x03a1, 0x2248, 0x03a4, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x03a5, 0x03a7, 0x0386, 0x0388, 0x0153, - 0x2013, 0x2015, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x0389, - 0x038a, 0x038c, 0x038e, 0x03ad, 0x03ae, 0x03af, 0x03cc, 0x038f, - 0x03cd, 0x03b1, 0x03b2, 0x03c8, 0x03b4, 0x03b5, 0x03c6, 0x03b3, - 0x03b7, 0x03b9, 0x03be, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03bf, - 0x03c0, 0x03ce, 0x03c1, 0x03c3, 0x03c4, 0x03b8, 0x03c9, 0x03c2, - 0x03c7, 0x03c5, 0x03b6, 0x03ca, 0x03cb, 0x0390, 0x03b0, 0x003f -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xca, 0x21, 0x63, 0x92, 0x3f, 0xb4, 0x9b, 0xac, - 0x8c, 0xa9, 0x61, 0xc7, 0xc2, 0x9c, 0xa8, 0xd0, - 0xae, 0xb1, 0x82, 0x84, 0x27, 0xed, 0x3f, 0x3f, - 0x2c, 0x81, 0x6f, 0xc8, 0x3f, 0x97, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x80, 0x41, 0x41, 0x43, - 0x45, 0x83, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, - 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x85, 0x78, - 0x4f, 0x55, 0x55, 0x55, 0x86, 0x59, 0x3f, 0xa7, - 0x88, 0x61, 0x89, 0x61, 0x8a, 0x61, 0x61, 0x8d, - 0x8f, 0x8e, 0x90, 0x91, 0x69, 0x69, 0x94, 0x95, - 0x64, 0x6e, 0x6f, 0x6f, 0x99, 0x6f, 0x9a, 0xd6, - 0x6f, 0x9d, 0x75, 0x9e, 0x9f, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0xcf, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x86, 0x9f, 0x86, - 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x3f, 0x80, 0x8a, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x85, 0x9a, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xd0, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xae, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0xd0, 0xd0, 0x3f, 0x3f, - 0x8c, 0x3f, 0xae, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x8c, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x87, 0xcd, 0xaf, - 0xce, 0xd7, 0xd8, 0x3f, 0xd9, 0x3f, 0xda, 0xdf, - 0xfd, 0xb0, 0xb5, 0xa1, 0xa2, 0xb6, 0xb7, 0xb8, - 0xa3, 0xb9, 0xba, 0xa4, 0xbb, 0xc1, 0xa5, 0xc3, - 0xa6, 0xc4, 0x3f, 0xaa, 0xc6, 0xcb, 0xbc, 0xcc, - 0xbe, 0xbf, 0xab, 0xbd, 0xc0, 0xdb, 0xdc, 0xdd, - 0xfe, 0xe1, 0xe2, 0xe7, 0xe4, 0xe5, 0xfa, 0xe8, - 0xf5, 0xe9, 0xeb, 0xec, 0xed, 0xee, 0xea, 0xef, - 0xf0, 0xf2, 0xf7, 0xf3, 0xf4, 0xf9, 0xe6, 0xf8, - 0xe3, 0xf6, 0xfb, 0xfc, 0xde, 0xe0, 0xf1, 0x3f, - 0xe2, 0xf5, 0xcb, 0xcb, 0xcb, 0xe6, 0xf0, 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, - 0xeb, 0xf2, 0xf7, 0x3f, 0xa3, 0xe5, 0x3f, 0x3f, - 0x3f, 0xaa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe2, 0xe7, 0xe4, - 0xe6, 0xf8, 0x69, 0x72, 0x75, 0x76, 0xe2, 0xe7, - 0xf2, 0xe6, 0xf8, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0xf5, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x8d, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x95, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x89, 0x41, 0x89, - 0x41, 0x89, 0x41, 0x89, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x90, - 0x45, 0x90, 0x45, 0x90, 0x45, 0x90, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x99, 0x4f, 0x99, 0x4f, 0x99, 0x4f, 0x99, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, - 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0x3f, 0x3f, - 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0x3f, 0x3f, - 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, - 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, - 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, - 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, - 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x3f, 0x3f, - 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x3f, 0x3f, - 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, - 0x3f, 0xcb, 0x3f, 0xcb, 0x3f, 0xcb, 0x3f, 0xcb, - 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, - 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, - 0xe1, 0xc0, 0xe5, 0xdb, 0xe8, 0xdc, 0xe9, 0xdd, - 0xef, 0xde, 0xf9, 0xe0, 0xf6, 0xf1, 0x3f, 0x3f, - 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, - 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, - 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, - 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, - 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, - 0xe1, 0xe1, 0xe1, 0xe1, 0xc0, 0x3f, 0xe1, 0xe1, - 0xb0, 0xb0, 0xb0, 0xcd, 0xb0, 0x3f, 0xe9, 0x3f, - 0x3f, 0x8c, 0xe8, 0xe8, 0xdc, 0x3f, 0xe8, 0xe8, - 0xb6, 0xce, 0xb8, 0xd7, 0xb8, 0x3f, 0x3f, 0x3f, - 0xe9, 0xe9, 0xfb, 0xfd, 0x3f, 0x3f, 0xe9, 0xfb, - 0xb9, 0xb9, 0xb9, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf9, 0xf9, 0xfc, 0xfe, 0xf2, 0xf2, 0xf9, 0xfc, - 0xcb, 0xcb, 0xcb, 0xda, 0xc4, 0x8c, 0x87, 0x60, - 0x3f, 0x3f, 0xf6, 0xf6, 0xf1, 0x3f, 0xf6, 0xf6, - 0xc3, 0xd9, 0xbf, 0xdf, 0xbf, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0xd0, 0xd0, 0xd1, 0x3f, 0x5f, - 0xd4, 0xd5, 0x2c, 0xd4, 0xd2, 0xd3, 0x2c, 0x3f, - 0xa0, 0x3f, 0x96, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 0x98, 0x3f, 0x27, 0x22, 0x3f, 0xd4, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xd0, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xae, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x92, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x93, 0x3f, 0x5a, 0x3f, 0xbf, 0x3f, - 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xf0, 0xe7, 0xa1, 0xa6, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xae, 0x96, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, - 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, - 0xb2, 0xb3, 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, 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, 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, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x9b, 0x9b, - 0x2d, 0x2d, 0x9b, 0x9b, 0x2b, 0x2b, 0x2b, 0x2b, - 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x9b, 0x9b, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd0, 0xd0, 0xd0, 0xd0, 0x5f, 0x5f, 0x5f, - 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, - 0xd0, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, - 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, - 0x5c, 0x24, 0x25, 0x40, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x92, 0xc2, 0xd0, 0x9b, 0xb4, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_10006 = -{ - { 10006, 1, 0x003f, 0x003f, "Mac Greek" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_10007.c b/reactos/tools/unicode/c_10007.c deleted file mode 100644 index 6a2c92eb68f..00000000000 --- a/reactos/tools/unicode/c_10007.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 10007 (Mac Cyrillic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/CYRILLIC.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 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, - 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406, - 0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, - 0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x2202, 0x0408, - 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a, - 0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455, - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e, - 0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4 -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xca, 0x21, 0xa2, 0xa3, 0xff, 0x59, 0x7c, 0xa4, - 0x22, 0xa9, 0x61, 0xc7, 0xc2, 0x2d, 0xa8, 0xd1, - 0xa1, 0xb1, 0x32, 0x33, 0x27, 0xb5, 0xa6, 0x3f, - 0x2c, 0x31, 0x6f, 0xc8, 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, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xd6, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xd1, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xa1, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0xd1, 0xd1, 0x3f, 0x3f, - 0x22, 0x3f, 0xa1, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0400 .. 0x04ff */ - 0x85, 0xdd, 0xab, 0xae, 0xb8, 0xc1, 0xa7, 0xba, - 0xb7, 0xbc, 0xbe, 0xcb, 0xcd, 0x88, 0xd8, 0xda, - 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, - 0xe0, 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, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, - 0xe5, 0xde, 0xac, 0xaf, 0xb9, 0xcf, 0xb4, 0xbb, - 0xc0, 0xbd, 0xbf, 0xcc, 0xce, 0xe8, 0xd9, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x86, 0xe6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x80, 0xe0, 0x80, 0xe0, 0x3f, 0x3f, 0x85, 0xe5, - 0x3f, 0x3f, 0x3f, 0x3f, 0x86, 0xe6, 0x87, 0xe7, - 0x3f, 0x3f, 0x88, 0xe8, 0x88, 0xe8, 0x8e, 0xee, - 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0xfd, 0x93, 0xf3, - 0x93, 0xf3, 0x93, 0xf3, 0x97, 0xf7, 0x3f, 0x3f, - 0x9b, 0xfb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xed, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0xd0, 0xd1, 0xd0, 0x3f, 0x5f, - 0xd4, 0xd5, 0x2c, 0xd4, 0xd2, 0xd3, 0xd7, 0x3f, - 0xa0, 0x3f, 0xa5, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0xd4, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xd1, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa1, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0xdc, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0xaa, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0xb6, 0x3f, 0x3f, 0x4f, 0xc6, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xa1, 0xa5, 0xc3, 0x3f, 0x3f, 0x3f, 0xb0, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, - 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, - 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, - 0xb2, 0xb3, 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, 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, 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, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 0xd7, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd1, 0xd1, 0xd1, 0xd1, 0x5f, 0x5f, 0x5f, - 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, - 0xd1, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, - 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, - 0x5c, 0x24, 0x25, 0x40, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xa3, 0xc2, 0xd1, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_10007 = -{ - { 10007, 1, 0x003f, 0x003f, "Mac Cyrillic" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_10029.c b/reactos/tools/unicode/c_10029.c deleted file mode 100644 index 44acb9ac5be..00000000000 --- a/reactos/tools/unicode/c_10029.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 10029 (Mac Latin 2) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/LATIN2.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c4, 0x0100, 0x0101, 0x00c9, 0x0104, 0x00d6, 0x00dc, 0x00e1, - 0x0105, 0x010c, 0x00e4, 0x010d, 0x0106, 0x0107, 0x00e9, 0x0179, - 0x017a, 0x010e, 0x00ed, 0x010f, 0x0112, 0x0113, 0x0116, 0x00f3, - 0x0117, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x011a, 0x011b, 0x00fc, - 0x2020, 0x00b0, 0x0118, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, - 0x00ae, 0x00a9, 0x2122, 0x0119, 0x00a8, 0x2260, 0x0123, 0x012e, - 0x012f, 0x012a, 0x2264, 0x2265, 0x012b, 0x0136, 0x2202, 0x2211, - 0x0142, 0x013b, 0x013c, 0x013d, 0x013e, 0x0139, 0x013a, 0x0145, - 0x0146, 0x0143, 0x00ac, 0x221a, 0x0144, 0x0147, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x0148, 0x0150, 0x00d5, 0x0151, 0x014c, - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, - 0x014d, 0x0154, 0x0155, 0x0158, 0x2039, 0x203a, 0x0159, 0x0156, - 0x0157, 0x0160, 0x201a, 0x201e, 0x0161, 0x015a, 0x015b, 0x00c1, - 0x0164, 0x0165, 0x00cd, 0x017d, 0x017e, 0x016a, 0x00d3, 0x00d4, - 0x016b, 0x016e, 0x00da, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, - 0x00dd, 0x00fd, 0x0137, 0x017b, 0x0141, 0x017c, 0x0122, 0x02c7 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xca, 0x21, 0x63, 0xa3, 0x3f, 0x59, 0x7c, 0xa4, - 0xac, 0xa9, 0x61, 0xc7, 0xc2, 0x2d, 0xa8, 0xd1, - 0xa1, 0x3f, 0x32, 0x33, 0x27, 0x75, 0xa6, 0x3f, - 0x2c, 0x31, 0x6f, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0xe7, 0x41, 0x41, 0x80, 0x41, 0x41, 0x43, - 0x45, 0x83, 0x45, 0x45, 0x49, 0xea, 0x49, 0x49, - 0x44, 0x4e, 0x4f, 0xee, 0xef, 0xcd, 0x85, 0x78, - 0x4f, 0x55, 0xf2, 0x55, 0x86, 0xf8, 0x3f, 0xa7, - 0x61, 0x87, 0x61, 0x61, 0x8a, 0x61, 0x61, 0x63, - 0x65, 0x8e, 0x65, 0x65, 0x69, 0x92, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x97, 0x99, 0x9b, 0x9a, 0xd6, - 0x6f, 0x75, 0x9c, 0x75, 0x9f, 0xf9, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x81, 0x82, 0x41, 0x61, 0x84, 0x88, 0x8c, 0x8d, - 0x43, 0x63, 0x43, 0x63, 0x89, 0x8b, 0x91, 0x93, - 0x44, 0x64, 0x94, 0x95, 0x45, 0x65, 0x96, 0x98, - 0xa2, 0xab, 0x9d, 0x9e, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0xfe, 0xae, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0xb1, 0xb4, 0x49, 0x69, 0xaf, 0xb0, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0xb5, 0xfa, - 0x3f, 0xbd, 0xbe, 0xb9, 0xba, 0xbb, 0xbc, 0x3f, - 0x3f, 0xfc, 0xb8, 0xc1, 0xc4, 0xbf, 0xc0, 0xc5, - 0xcb, 0x3f, 0x3f, 0x3f, 0xcf, 0xd8, 0x4f, 0x6f, - 0xcc, 0xce, 0x4f, 0x6f, 0xd9, 0xda, 0xdf, 0xe0, - 0xdb, 0xde, 0xe5, 0xe6, 0x53, 0x73, 0x53, 0x73, - 0xe1, 0xe4, 0x54, 0x74, 0xe8, 0xe9, 0x54, 0x74, - 0x55, 0x75, 0xed, 0xf0, 0x55, 0x75, 0xf1, 0xf3, - 0xf4, 0xf5, 0xf6, 0xf7, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x8f, 0x90, 0xfb, 0xfd, 0xeb, 0xec, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x86, 0x9f, 0x86, - 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x3f, 0x80, 0x8a, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x85, 0x9a, 0xcd, 0x9b, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0xff, - 0x27, 0xd1, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xa1, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0xd1, 0xd1, 0x3f, 0x3f, - 0xac, 0x3f, 0xa1, 0x22, 0xff, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0xac, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0xac, 0x41, 0x3f, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa7, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xa7, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xa7, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x94, 0x95, 0x94, 0x95, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xcd, 0x9b, 0xcd, 0x9b, - 0xcf, 0xd8, 0xcf, 0xd8, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0xe5, 0xe6, 0xe1, 0xe4, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0xed, 0xf0, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xac, 0xac, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0xd0, 0xd1, 0xd0, 0x3f, 0x5f, - 0xd4, 0xd5, 0xe2, 0xd4, 0xd2, 0xd3, 0xe3, 0x3f, - 0xa0, 0x3f, 0xa5, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0xd4, 0x3f, 0x3f, - 0x3f, 0xdc, 0xdd, 0x3f, 0x21, 0x3f, 0xd1, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa1, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0xaa, 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, - 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdc, 0x5e, 0xdd, 0xff, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdc, 0xdd, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0xb6, 0x3f, 0x3f, 0x4f, 0xc6, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xb7, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, - 0xa1, 0xa5, 0xc3, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, - 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, - 0xb2, 0xb3, 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, 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, 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, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xdc, 0xdd, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xd7, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdc, 0xdd, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 0xe3, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd1, 0xd1, 0xd1, 0xd1, 0x5f, 0x5f, 0x5f, - 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, - 0xd1, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, - 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, - 0x5c, 0x24, 0x25, 0x40, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0xa3, 0xc2, 0xd1, 0x7c, 0x59, 0x3f, 0x3f, - 0x7c, 0xdc, 0x5e, 0xdd, 0xff, 0x3f, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_10029 = -{ - { 10029, 1, 0x003f, 0x003f, "Mac Latin 2" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1006.c b/reactos/tools/unicode/c_1006.c deleted file mode 100644 index 2705687ceff..00000000000 --- a/reactos/tools/unicode/c_1006.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 1006 (IBM Arabic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/CP1006.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x06f0, 0x06f1, 0x06f2, 0x06f3, 0x06f4, 0x06f5, 0x06f6, - 0x06f7, 0x06f8, 0x06f9, 0x060c, 0x061b, 0x00ad, 0x061f, 0xfe81, - 0xfe8d, 0xfe8e, 0xfe8e, 0xfe8f, 0xfe91, 0xfb56, 0xfb58, 0xfe93, - 0xfe95, 0xfe97, 0xfb66, 0xfb68, 0xfe99, 0xfe9b, 0xfe9d, 0xfe9f, - 0xfb7a, 0xfb7c, 0xfea1, 0xfea3, 0xfea5, 0xfea7, 0xfea9, 0xfb84, - 0xfeab, 0xfead, 0xfb8c, 0xfeaf, 0xfb8a, 0xfeb1, 0xfeb3, 0xfeb5, - 0xfeb7, 0xfeb9, 0xfebb, 0xfebd, 0xfebf, 0xfec1, 0xfec5, 0xfec9, - 0xfeca, 0xfecb, 0xfecc, 0xfecd, 0xfece, 0xfecf, 0xfed0, 0xfed1, - 0xfed3, 0xfed5, 0xfed7, 0xfed9, 0xfedb, 0xfb92, 0xfb94, 0xfedd, - 0xfedf, 0xfee0, 0xfee1, 0xfee3, 0xfb9e, 0xfee5, 0xfee7, 0xfe85, - 0xfeed, 0xfba6, 0xfba8, 0xfba9, 0xfbaa, 0xfe80, 0xfe89, 0xfe8a, - 0xfe8b, 0xfef1, 0xfef2, 0xfef3, 0xfbb0, 0xfbae, 0xfe7c, 0xfe7d -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0x2d, - 0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 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, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0300 .. 0x03ff */ - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0600 .. 0x06ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0xae, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, - 0xa9, 0xaa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 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, 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, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 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, - 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, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, - 0xb6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xba, 0x3f, - 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xc0, 0x3f, 0xc1, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xc7, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xcc, 0x3f, 0xca, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xe5, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xec, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf1, 0x3f, - 0xf2, 0xf3, 0xf4, 0x3f, 0x3f, 0x3f, 0xfd, 0x3f, - 0xfc, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0xff, 0x3f, 0x3f, - 0xf5, 0xaf, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, - 0x3f, 0xf6, 0xf7, 0xf8, 0x3f, 0xb0, 0xb1, 0xb3, - 0x3f, 0xb4, 0x3f, 0xb7, 0x3f, 0xb8, 0x3f, 0xb9, - 0x3f, 0xbc, 0x3f, 0xbd, 0x3f, 0xbe, 0x3f, 0xbf, - 0x3f, 0xc2, 0x3f, 0xc3, 0x3f, 0xc4, 0x3f, 0xc5, - 0x3f, 0xc6, 0x3f, 0xc8, 0x3f, 0xc9, 0x3f, 0xcb, - 0x3f, 0xcd, 0x3f, 0xce, 0x3f, 0xcf, 0x3f, 0xd0, - 0x3f, 0xd1, 0x3f, 0xd2, 0x3f, 0xd3, 0x3f, 0xd4, - 0x3f, 0xd5, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, - 0x3f, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0x3f, 0xe0, 0x3f, 0xe1, 0x3f, 0xe2, - 0x3f, 0xe3, 0x3f, 0xe4, 0x3f, 0xe7, 0x3f, 0xe8, - 0xe9, 0xea, 0x3f, 0xeb, 0x3f, 0xed, 0x3f, 0xee, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf0, 0x3f, 0x3f, - 0x3f, 0xf9, 0xfa, 0xfb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1300, 0x1300, 0x0400, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_1006 = -{ - { 1006, 1, 0x003f, 0x003f, "IBM Arabic" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_10079.c b/reactos/tools/unicode/c_10079.c deleted file mode 100644 index 4428deba0f1..00000000000 --- a/reactos/tools/unicode/c_10079.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 10079 (Mac Icelandic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/ICELAND.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, - 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, - 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, - 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, - 0x00dd, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, - 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, - 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, - 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, - 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, - 0x00ff, 0x0178, 0x2044, 0x00a4, 0x00d0, 0x00f0, 0x00de, 0x00fe, - 0x00fd, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, - 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, - 0x003f, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, - 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x7c, 0xa4, - 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x2d, 0xa8, 0xf8, - 0xa1, 0xb1, 0x32, 0x33, 0xab, 0xb5, 0xa6, 0xe1, - 0xfc, 0x31, 0xbc, 0xc8, 0x3f, 0x3f, 0x3f, 0xc0, - 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, - 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, - 0xdc, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x78, - 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0xa0, 0xde, 0xa7, - 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, - 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, - 0xdd, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, - 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0xe0, 0xdf, 0xd8, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0xdc, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0xf5, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0xce, 0xcf, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0xd9, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x86, 0x9f, 0x86, - 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x3f, 0x80, 0x8a, - 0x41, 0x61, 0xae, 0xbe, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x81, 0x8c, 0xae, 0xbe, 0xaf, 0xbf, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x85, 0x9a, 0xcd, 0x9b, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xab, 0xfd, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0xf6, 0xff, - 0x27, 0xf8, 0xab, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xab, 0xf6, 0xf7, 0xf8, 0xf8, 0xf9, 0xfa, - 0xac, 0x3f, 0xfb, 0xfd, 0xff, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfc, - 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xab, 0x3f, 0x3f, 0xac, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xac, 0x41, 0xe1, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, - 0xb9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa7, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0xb9, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xae, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xa7, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xa7, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0xdd, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x82, 0x8d, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xec, 0x95, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xcd, 0x9b, 0xcd, 0x9b, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xe5, 0x89, 0xe5, 0x89, - 0xe5, 0x89, 0xe5, 0x89, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xe6, 0x90, - 0xe6, 0x90, 0xe6, 0x90, 0xe6, 0x90, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xac, 0xac, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0xd0, 0xd1, 0xd0, 0x3f, 0x5f, - 0xd4, 0xd5, 0xe2, 0xd4, 0xd2, 0xd3, 0xe3, 0x3f, - 0x3f, 0x3f, 0xa5, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 0xe4, 0x3f, 0xab, 0xfd, 0x3f, 0xd4, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xf8, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xda, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfb, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0xaa, 0x3f, 0x5a, 0x3f, 0xbd, 0x3f, - 0x5a, 0x3f, 0x4b, 0x81, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xb9, 0x3f, 0x3f, 0x3f, - 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0xf6, 0x3e, 0xff, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0xb6, 0x3f, 0x3f, 0xaf, 0xc6, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0x3f, 0xb7, 0x2d, 0xb1, 0x3f, 0xda, 0x5c, 0x2a, - 0xfb, 0xa5, 0xc3, 0x3f, 0x3f, 0x3f, 0xb0, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, - 0x3f, 0x6e, 0x3f, 0xba, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, - 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, - 0xb2, 0xb3, 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, 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, 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, 0xe1, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xd7, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 0xe3, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xf8, 0xf8, 0xf8, 0xf8, 0x5f, 0x5f, 0x5f, - 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, - 0xd1, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, - 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, - 0x5c, 0x24, 0x25, 0x40, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xa3, 0xc2, 0xf8, 0x7c, 0xb4, 0x3f, 0x3f, - 0x7c, 0x3c, 0xf6, 0x3e, 0xff, 0x3f, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_10079 = -{ - { 10079, 1, 0x003f, 0x003f, "Mac Icelandic" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_10081.c b/reactos/tools/unicode/c_10081.c deleted file mode 100644 index 70560e38127..00000000000 --- a/reactos/tools/unicode/c_10081.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 10081 (Mac Turkish) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/TURKISH.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, - 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, - 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, - 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, - 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, - 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, - 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, - 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, - 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, - 0x00ff, 0x0178, 0x011e, 0x011f, 0x0130, 0x0131, 0x015e, 0x015f, - 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, - 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, - 0x003f, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x003f, 0x02c6, 0x02dc, - 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xca, 0xc1, 0xa2, 0xa3, 0x3f, 0xb4, 0x7c, 0xa4, - 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x2d, 0xa8, 0xf8, - 0xa1, 0xb1, 0x32, 0x33, 0xab, 0xb5, 0xa6, 0xe1, - 0xfc, 0x31, 0xbc, 0xc8, 0x3f, 0x3f, 0x3f, 0xc0, - 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, - 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, - 0x44, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x78, - 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x59, 0x3f, 0xa7, - 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, - 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, - 0x64, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, - 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x79, 0x3f, 0xd8, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0xda, 0xdb, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0xdc, 0xdd, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0xce, 0xcf, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0xde, 0xdf, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0xd9, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x86, 0x9f, 0x86, - 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x3f, 0x80, 0x8a, - 0x41, 0x61, 0xae, 0xbe, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x81, 0x8c, 0xae, 0xbe, 0xaf, 0xbf, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x85, 0x9a, 0xcd, 0x9b, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xab, 0xfd, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0xf6, 0xff, - 0x27, 0xf8, 0xab, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xab, 0xf6, 0xf7, 0xf8, 0xf8, 0xf9, 0xfa, - 0xac, 0x3f, 0xfb, 0xfd, 0xff, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfc, - 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xab, 0x3f, 0x3f, 0xac, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xac, 0x41, 0xe1, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, - 0xb9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa7, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0xb9, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xae, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xa7, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xa7, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x82, 0x8d, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xec, 0x95, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xcd, 0x9b, 0xcd, 0x9b, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xe5, 0x89, 0xe5, 0x89, - 0xe5, 0x89, 0xe5, 0x89, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xe6, 0x90, - 0xe6, 0x90, 0xe6, 0x90, 0xe6, 0x90, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xac, 0xac, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0xd0, 0xd1, 0xd0, 0x3f, 0x5f, - 0xd4, 0xd5, 0xe2, 0xd4, 0xd2, 0xd3, 0xe3, 0x3f, - 0xa0, 0xe0, 0xa5, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 0xe4, 0x3f, 0xab, 0xfd, 0x3f, 0xd4, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xf8, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfb, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0xaa, 0x3f, 0x5a, 0x3f, 0xbd, 0x3f, - 0x5a, 0x3f, 0x4b, 0x81, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xb9, 0x3f, 0x3f, 0x3f, - 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0xf6, 0x3e, 0xff, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0xb6, 0x3f, 0x3f, 0xaf, 0xc6, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0x3f, 0xb7, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xfb, 0xa5, 0xc3, 0x3f, 0x3f, 0x3f, 0xb0, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, - 0x3f, 0x6e, 0x3f, 0xba, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, - 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, - 0xb2, 0xb3, 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, 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, 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, 0xe1, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xd7, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 0xe3, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xf8, 0xf8, 0xf8, 0xf8, 0x5f, 0x5f, 0x5f, - 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, - 0xd1, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, - 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, - 0x5c, 0x24, 0x25, 0x40, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xa3, 0xc2, 0xf8, 0x7c, 0xb4, 0x3f, 0x3f, - 0x7c, 0x3c, 0xf6, 0x3e, 0xff, 0x3f, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_10081 = -{ - { 10081, 1, 0x003f, 0x003f, "Mac Turkish" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1026.c b/reactos/tools/unicode/c_1026.c deleted file mode 100644 index f838a02e9f3..00000000000 --- a/reactos/tools/unicode/c_1026.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 1026 (IBM EBCDIC Latin 5 Turkish) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/EBCDIC/CP1026.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, - 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, - 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, - 0x40, 0x4f, 0xfc, 0xec, 0xad, 0x6c, 0x50, 0x7d, - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, - 0xae, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, - 0xe7, 0xe8, 0xe9, 0x68, 0xdc, 0xac, 0x5f, 0x6d, - 0x8d, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xa9, 0x48, 0xbb, 0x8c, 0xcc, 0x07, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, - 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x8e, 0xb5, - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x4a, - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, - 0xc4, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7b, 0xbf, - 0x80, 0xfd, 0xfe, 0xfb, 0x7f, 0xe8, 0x3f, 0x59, - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xc0, - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, - 0x84, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xa1, 0xe1, - 0x70, 0xdd, 0xde, 0xdb, 0xe0, 0xa8, 0x3f, 0xdf, - /* 0x0100 .. 0x01ff */ - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc3, 0x83, - 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc4, 0x84, - 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc7, 0x87, 0x5a, 0xd0, - 0xc7, 0x87, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, - 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, - 0x5b, 0x79, 0x3f, 0x3f, 0xd1, 0x91, 0xd2, 0x92, - 0x3f, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0x3f, - 0x3f, 0xd3, 0x93, 0xd5, 0x95, 0xd5, 0x95, 0xd5, - 0x95, 0x3f, 0x3f, 0x3f, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, - 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0x7c, 0x6a, - 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe6, 0xa6, 0xe8, 0xa8, - 0xe8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0xa2, - 0x82, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc6, 0x86, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, - 0x3f, 0x3f, 0x93, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, - 0xd6, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0xe3, 0xe4, - 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xbb, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc9, - 0x89, 0xd6, 0x96, 0xe4, 0xa4, 0x7f, 0xe0, 0x7f, - 0xe0, 0x7f, 0xe0, 0x7f, 0xe0, 0x3f, 0x63, 0x43, - 0xc1, 0x81, 0x9e, 0x9c, 0xc7, 0x87, 0xc7, 0x87, - 0xd2, 0x92, 0xd6, 0x96, 0xd6, 0x96, 0x3f, 0x3f, - 0x91, 0x3f, 0x3f, 0x3f, 0xc7, 0x87, 0x3f, 0x3f, - 0xd5, 0x95, 0x67, 0x47, 0x9e, 0x9c, 0x80, 0x70, - /* 0x0200 .. 0x02ff */ - 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, - 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, - 0xd9, 0x99, 0xd9, 0x99, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe2, 0xa2, 0xe3, 0xa3, 0x3f, 0x3f, 0xc8, 0x88, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, - 0xc5, 0x85, 0x7b, 0xa1, 0xef, 0xcf, 0xd6, 0x96, - 0xd6, 0x96, 0xe8, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x87, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x88, 0x3f, 0x91, 0x99, 0x3f, 0x3f, 0x3f, 0xa6, - 0xa8, 0xbe, 0xfc, 0x8d, 0x7d, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x3f, 0x5f, 0xa5, - 0x7d, 0xbc, 0xbe, 0x8d, 0x3f, 0x6d, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x90, 0x3f, 0xcc, 0xfc, 0x3f, 0x3f, - 0x3f, 0x93, 0xa2, 0xa7, 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, - /* 0x0300 .. 0x03ff */ - 0x8d, 0xbe, 0x5f, 0xcc, 0xbc, 0xbc, 0x3f, 0x3f, - 0xbd, 0x3f, 0x90, 0xfc, 0xa5, 0x3f, 0xfc, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x6d, 0x6d, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x8d, 0xbe, 0x3f, 0x3f, 0xbd, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0xbd, 0xc1, 0xb3, - 0xc5, 0xc8, 0xc9, 0x3f, 0xd6, 0x3f, 0xe8, 0x3f, - 0x3f, 0xc1, 0xc2, 0x3f, 0x3f, 0xc5, 0xe9, 0xc8, - 0x3f, 0xc9, 0xd2, 0x3f, 0xd4, 0xd5, 0x3f, 0xd6, - 0x3f, 0xd7, 0x3f, 0x3f, 0xe3, 0xe8, 0x3f, 0xe7, - 0x3f, 0x3f, 0xc9, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x3f, 0xe8, 0xe8, 0xe8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x9e, 0xc2, 0x3f, - 0xc4, 0xc5, 0x3f, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, - 0xd3, 0xd4, 0xd5, 0x3f, 0xd6, 0x3f, 0xd7, 0xd9, - 0xe3, 0xe4, 0xe6, 0x81, 0x3f, 0x3f, 0x3f, 0x82, - 0x84, 0x85, 0x3f, 0x3f, 0x3f, 0x87, 0x3f, 0x92, - 0x94, 0x3f, 0x96, 0x3f, 0x3f, 0x3f, 0x97, 0xa3, - 0xa4, 0x3f, 0x3f, 0xa5, 0x3f, 0x59, 0x3f, 0x3f, - 0x3f, 0x3f, 0x89, 0x99, 0xa4, 0xa5, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x83, 0x3f, 0x84, 0x3f, - 0x86, 0x3f, 0x87, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xa9, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0xc1, 0x81, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, - 0x4a, 0xc0, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, - 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc6, 0x86, - 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, - 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0x77, 0x57, - 0xd2, 0x92, 0xd2, 0x92, 0xd2, 0x92, 0xd3, 0x93, - 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd4, 0x94, - 0xd4, 0x94, 0xd4, 0x94, 0xd5, 0x95, 0xd5, 0x95, - 0xd5, 0x95, 0xd5, 0x95, 0xef, 0xcf, 0xef, 0xcf, - 0xd6, 0x96, 0xd6, 0x96, 0xd7, 0x97, 0xd7, 0x97, - 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, - 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, - 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, - 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe5, 0xa5, 0xe5, 0xa5, - 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, - 0xe6, 0xa6, 0xe7, 0xa7, 0xe7, 0xa7, 0xe8, 0xa8, - 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0x88, 0xa3, - 0xa6, 0xa8, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0x81, 0xc1, 0x81, 0x62, 0x42, 0x62, 0x42, - 0x62, 0x42, 0x62, 0x42, 0xc1, 0x81, 0xc1, 0x81, - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0x72, 0x52, - 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0xc5, 0x85, - 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, - 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, - 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, - 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe8, 0xe8, 0xe8, 0xe8, 0xd7, 0xbd, 0xbd, 0x8d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x60, 0x3f, 0x60, 0x60, 0x60, 0x3f, 0x6d, - 0x8d, 0x7d, 0x6b, 0x8d, 0xfc, 0xfc, 0x6b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, - 0x3f, 0x3f, 0xbe, 0xfc, 0x3f, 0x8d, 0x3f, 0x3f, - 0x3f, 0x4c, 0x6e, 0x3f, 0x4f, 0x3f, 0xbc, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 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, 0x40, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x90, 0x89, 0x3f, 0x3f, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x95, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x3f, - 0x81, 0x85, 0x96, 0xa7, 0x3f, 0x88, 0x92, 0x93, - 0x94, 0x95, 0x97, 0xa2, 0xa3, 0x3f, 0x3f, 0x3f, - 0x3f, 0xb0, 0x3f, 0x3f, 0xb1, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0xc3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, - 0x3f, 0x3f, 0x87, 0xc8, 0xc8, 0xc8, 0x88, 0x88, - 0xc9, 0xc9, 0xd3, 0x93, 0x3f, 0xd5, 0x3f, 0x3f, - 0xd7, 0xd7, 0xd8, 0xd9, 0xd9, 0xd9, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0x3f, 0x3f, - 0xe9, 0x3f, 0xd2, 0x67, 0xc2, 0xc3, 0x85, 0x85, - 0xc5, 0xc6, 0x3f, 0xd4, 0x96, 0x3f, 0x3f, 0x3f, - 0x3f, 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x84, 0x85, - 0x89, 0x91, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0x3f, 0x3f, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, - 0x3f, 0xe7, 0x3f, 0x3f, 0xd3, 0xc3, 0xc4, 0xd4, - 0x89, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa7, 0x3f, 0x3f, 0x93, 0x83, 0x84, 0x94, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4c, 0x5f, 0x6e, 0xa5, 0x60, 0xbb, 0x3f, 0x3f, - 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x60, 0x8f, 0x3f, 0x61, 0xdc, 0x5c, - 0x90, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xd3, - 0x3f, 0x3f, 0x3f, 0xbb, 0xbb, 0x3f, 0x3f, 0x3f, - 0x3f, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xcc, 0x3f, 0x3f, 0x3f, - 0x3f, 0xcc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xcc, 0xcc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x8a, 0x8b, 0x3f, 0x3f, 0x4c, 0x6e, - 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, 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, 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, 0xb3, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x4c, 0x6e, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, - 0xf9, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc2, - 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, - 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, - 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, - 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x60, 0x60, 0xbb, 0xbb, 0x60, 0x60, 0x8e, 0x8e, - 0x60, 0x60, 0x8e, 0x8e, 0x4e, 0x4e, 0x4e, 0x4e, - 0xba, 0xba, 0xba, 0xba, 0xd3, 0xd3, 0xd3, 0xd3, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0xe3, - 0xe3, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x60, 0x60, 0x8e, 0x8e, - 0x7e, 0xbb, 0x4e, 0x4e, 0x4e, 0xba, 0xba, 0xba, - 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x61, 0xdc, 0xe7, 0x60, 0xbb, 0x60, 0xbb, - 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xd6, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x91, 0xe5, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4c, 0x6e, 0x8a, 0x8b, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x68, 0xac, 0x3f, 0xfc, 0xfc, 0x6b, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x4e, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbc, 0xbc, 0xbc, 0xbc, 0x6d, 0x6d, 0x6d, - 0x6b, 0x3f, 0x4b, 0x3f, 0x5e, 0x7a, 0x6f, 0x4f, - 0x60, 0x4d, 0x5d, 0x48, 0x8c, 0x3f, 0x3f, 0xec, - 0x50, 0x5c, 0x4e, 0x60, 0x4c, 0x6e, 0x7e, 0x3f, - 0xdc, 0xad, 0x6c, 0xae, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 0x4f, 0xfc, 0xec, 0xad, 0x6c, 0x50, 0x7d, - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, - 0xae, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, - 0xe7, 0xe8, 0xe9, 0x68, 0xdc, 0xac, 0x5f, 0x6d, - 0x8d, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xa9, 0x48, 0xbb, 0x8c, 0xcc, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0xb1, 0xba, 0xbc, 0x8e, 0xb2, 0x3f, 0x3f, - 0xbb, 0x4c, 0x5f, 0x6e, 0xa5, 0x3f, 0xd6, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_1026 = -{ - { 1026, 1, 0x003f, 0x003f, "IBM EBCDIC Latin 5 Turkish" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1250.c b/reactos/tools/unicode/c_1250.c deleted file mode 100644 index 5ca52df6566..00000000000 --- a/reactos/tools/unicode/c_1250.c +++ /dev/null @@ -1,651 +0,0 @@ -/* code page 1250 (ANSI Eastern Europe) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1250.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x20ac, 0x0081, 0x201a, 0x0083, 0x201e, 0x2026, 0x2020, 0x2021, - 0x0088, 0x2030, 0x0160, 0x2039, 0x015a, 0x0164, 0x017d, 0x0179, - 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x0098, 0x2122, 0x0161, 0x203a, 0x015b, 0x0165, 0x017e, 0x017a, - 0x00a0, 0x02c7, 0x02d8, 0x0141, 0x00a4, 0x0104, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x015e, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x017b, - 0x00b0, 0x00b1, 0x02db, 0x0142, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x0105, 0x015f, 0x00bb, 0x013d, 0x02dd, 0x013e, 0x017c, - 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, - 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, - 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, - 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, - 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, - 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, - 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, - 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9 -}; - -static const unsigned char uni2cp_low[4352] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x3f, 0x81, 0x3f, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, - 0x88, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa0, 0x21, 0x63, 0x4c, 0xa4, 0x59, 0xa6, 0xa7, - 0xa8, 0xa9, 0x61, 0xab, 0xac, 0xad, 0xae, 0x97, - 0xb0, 0xb1, 0x32, 0x33, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0x31, 0x6f, 0xbb, 0x31, 0x31, 0x33, 0x3f, - 0x41, 0xc1, 0xc2, 0x41, 0xc4, 0x41, 0x41, 0xc7, - 0x45, 0xc9, 0x45, 0xcb, 0x49, 0xcd, 0xce, 0x49, - 0x3f, 0x4e, 0x4f, 0xd3, 0xd4, 0x4f, 0xd6, 0xd7, - 0x4f, 0x55, 0xda, 0x55, 0xdc, 0xdd, 0x3f, 0xdf, - 0x61, 0xe1, 0xe2, 0x61, 0xe4, 0x61, 0x61, 0xe7, - 0x65, 0xe9, 0x65, 0xeb, 0x69, 0xed, 0xee, 0x69, - 0x3f, 0x6e, 0x6f, 0xf3, 0xf4, 0x6f, 0xf6, 0xf7, - 0x6f, 0x75, 0xfa, 0x75, 0xfc, 0xfd, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0xc3, 0xe3, 0xa5, 0xb9, 0xc6, 0xe6, - 0x43, 0x63, 0x43, 0x63, 0xc8, 0xe8, 0xcf, 0xef, - 0xd0, 0xf0, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0xca, 0xea, 0xcc, 0xec, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0xc5, 0xe5, 0x4c, 0x6c, 0xbc, 0xbe, 0x3f, - 0x3f, 0xa3, 0xb3, 0xd1, 0xf1, 0x4e, 0x6e, 0xd2, - 0xf2, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd5, 0xf5, 0x4f, 0x6f, 0xc0, 0xe0, 0x52, 0x72, - 0xd8, 0xf8, 0x8c, 0x9c, 0x53, 0x73, 0xaa, 0xba, - 0x8a, 0x9a, 0xde, 0xfe, 0x8d, 0x9d, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xd9, 0xf9, - 0xdb, 0xfb, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x8f, 0x9f, 0xaf, 0xbf, 0x8e, 0x9e, 0x3f, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x3f, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0200 .. 0x02ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 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, 0x27, 0x22, 0x91, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0xa1, - 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xff, 0xb0, 0xb2, 0x7e, 0xbd, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0300 .. 0x03ff */ - 0x60, 0xb4, 0x5e, 0x7e, 0xaf, 0xaf, 0xa2, 0xff, - 0xa8, 0x3f, 0xb0, 0x3f, 0xa1, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0400 .. 0x04ff */ - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x68, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0500 .. 0x05ff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3a, 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, 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, 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, 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, 0x3f, 0x3f, - /* 0x0600 .. 0x06ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x25, 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, - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x3f, 0x3f, 0x3f, - 0x91, 0x92, 0x82, 0x3f, 0x93, 0x94, 0x84, 0x3f, - 0x86, 0x87, 0x95, 0x3f, 0x95, 0x3f, 0x85, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x89, 0x3f, 0x27, 0x94, 0x3f, 0x60, 0x3f, 0x3f, - 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 0x3f, 0x3f, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x3f, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 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, 0xa3, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x3f, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x8b, 0x5e, 0x9b, 0xa1, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 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, 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, 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, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xab, 0xbb, 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, 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, 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, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0xa6, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xa6, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0xac, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x54, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0xa6, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0xac, - 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, - 0xa6, 0x3f, 0x3f, 0xa6, 0x3f, 0x3f, 0x54, 0x3f, - 0x3f, 0xa6, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3e, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x95, 0x30, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2600 .. 0x26ff */ - 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, 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, 0xa2, 0xa2, 0x30, 0x3f, 0x3f, 0x3f, - 0x2b, 0x3f, 0x3e, 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, - 0xa6, 0x3f, 0x3f, 0xa6, 0x3f, 0xa6, 0xa6, 0x3f, - 0x3f, 0x3f, 0x64, 0x64, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0x2700 .. 0x27ff */ - 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, 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, 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, 0x3f, - 0x7c, 0x3f, 0x3f, 0x91, 0x92, 0x93, 0x94, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x93, 0x94, 0x84, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xb7, 0x97, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x1000, 0x0b00, 0x0c00, 0x0d00, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x0e00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0f00 -}; - -const struct sbcs_table cptable_1250 = -{ - { 1250, 1, 0x003f, 0x003f, "ANSI Eastern Europe" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1251.c b/reactos/tools/unicode/c_1251.c deleted file mode 100644 index e93dba84044..00000000000 --- a/reactos/tools/unicode/c_1251.c +++ /dev/null @@ -1,453 +0,0 @@ -/* code page 1251 (ANSI Cyrillic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1251.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021, - 0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f, - 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x0098, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f, - 0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7, - 0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407, - 0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7, - 0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457, - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 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, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f -}; - -static const unsigned char uni2cp_low[2816] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa0, 0x3f, 0x3f, 0x3f, 0xa4, 0x3f, 0xa6, 0xa7, - 0x3f, 0xa9, 0x3f, 0xab, 0xac, 0xad, 0xae, 0x3f, - 0xb0, 0xb1, 0x3f, 0x3f, 0x3f, 0xb5, 0xb6, 0xb7, - 0x3f, 0x3f, 0x3f, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x43, - 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, - 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x3f, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x3f, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x3f, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x3f, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 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, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x3f, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0400 .. 0x04ff */ - 0x3f, 0xa8, 0x80, 0x81, 0xaa, 0xbd, 0xb2, 0xaf, - 0xa3, 0x8a, 0x8c, 0x8e, 0x8d, 0x3f, 0xa1, 0x8f, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 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, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, - 0x3f, 0xb8, 0x90, 0x83, 0xba, 0xbe, 0xb3, 0xbf, - 0xbc, 0x9a, 0x9c, 0x9e, 0x9d, 0x3f, 0xa2, 0x9f, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa5, 0xb4, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x96, 0x97, 0x3f, 0x3f, 0x3f, - 0x91, 0x92, 0x82, 0x3f, 0x93, 0x94, 0x84, 0x3f, - 0x86, 0x87, 0x95, 0x3f, 0x3f, 0x3f, 0x85, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x99, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0xa6, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa6, 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, 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, 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, - /* 0x2200 .. 0x22ff */ - 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, 0x95, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0xa6, 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, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x3f, 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0xac, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x54, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0xa6, 0x2d, 0xe3, 0xe3, 0xac, 0xac, 0xac, - 0x4c, 0x4c, 0x4c, 0x2d, 0x2d, 0x2d, 0xa6, 0xa6, - 0xa6, 0xa6, 0xa6, 0xa6, 0x54, 0x54, 0x54, 0xa6, - 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0xa6, 0x3f, 0x3f, 0x3f, - 0xa6, 0x2d, 0x2d, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3e, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x95, 0x30, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2600 .. 0x26ff */ - 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, 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, 0x4f, 0x4f, 0x30, 0x3f, 0x3f, 0x3f, - 0x2b, 0x3f, 0x3e, 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, - 0xa6, 0x3f, 0x3f, 0xa6, 0x3f, 0xa6, 0xa6, 0x3f, - 0x3f, 0x3f, 0x64, 0x64, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0a00, 0x0a00, 0x0200, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0300, 0x0400, 0x0500, 0x0600, 0x0a00, 0x0700, 0x0800, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0900 -}; - -const struct sbcs_table cptable_1251 = -{ - { 1251, 1, 0x003f, 0x003f, "ANSI Cyrillic" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1252.c b/reactos/tools/unicode/c_1252.c deleted file mode 100644 index 73acb4c1a69..00000000000 --- a/reactos/tools/unicode/c_1252.c +++ /dev/null @@ -1,651 +0,0 @@ -/* code page 1252 (ANSI Latin 1) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1252.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x20ac, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x017d, 0x008f, - 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x017e, 0x0178, - 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff -}; - -static const unsigned char uni2cp_low[4352] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8d, 0x3f, 0x8f, - 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 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, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0xd0, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x8c, 0x9c, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x8a, 0x9a, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x9f, 0x5a, 0x7a, 0x5a, 0x7a, 0x8e, 0x9e, 0x3f, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x83, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x3f, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0200 .. 0x02ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 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, 0x27, 0x22, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x88, 0x3f, - 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xb0, 0x3f, 0x98, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0300 .. 0x03ff */ - 0x60, 0xb4, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, - 0xa8, 0x3f, 0xb0, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x47, 0x3f, 0x3f, 0x3f, 0x3f, - 0x54, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x53, 0x3f, 0x3f, 0x46, 0x3f, - 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x61, 0xdf, 0x3f, 0x64, 0x65, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, - 0x70, 0x3f, 0x3f, 0x73, 0x74, 0x3f, 0x66, 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, 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, - /* 0x0400 .. 0x04ff */ - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x68, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0500 .. 0x05ff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3a, 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, 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, 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, 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, 0x3f, 0x3f, - /* 0x0600 .. 0x06ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x25, 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, - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x3f, 0x3f, 0x3d, - 0x91, 0x92, 0x82, 0x3f, 0x93, 0x94, 0x84, 0x3f, - 0x86, 0x87, 0x95, 0x3f, 0xb7, 0x3f, 0x85, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x89, 0x3f, 0x27, 0x3f, 0x3f, 0x60, 0x3f, 0x3f, - 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x3f, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x50, - 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x3f, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 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, 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, 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, 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, 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, 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, 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, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 0xb7, 0x76, 0x3f, 0x3f, 0x3f, 0x38, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3d, 0x3f, 0x3f, 0x3d, 0x3d, 0x3f, 0x3f, - 0x3f, 0x3f, 0xab, 0xbb, 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, 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, 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, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0xa6, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x3f, 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x2b, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x2b, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa6, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0xa6, 0xa6, - 0xa6, 0xa6, 0xa6, 0xa6, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xaf, 0x3f, 0x3f, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, - 0xa6, 0x3f, 0x3f, 0x3f, 0xa6, 0x3f, 0x3f, 0x3f, - 0xa6, 0xa6, 0xa6, 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa6, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2600 .. 0x26ff */ - 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, 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, 0x3f, 0x3f, 0xa4, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2700 .. 0x27ff */ - 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, 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, 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, 0x3f, - 0x7c, 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, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 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, 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, 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, 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, - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x1000, 0x0b00, 0x0c00, 0x0d00, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x0e00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0f00 -}; - -const struct sbcs_table cptable_1252 = -{ - { 1252, 1, 0x003f, 0x003f, "ANSI Latin 1" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1253.c b/reactos/tools/unicode/c_1253.c deleted file mode 100644 index 0eaa186f5ad..00000000000 --- a/reactos/tools/unicode/c_1253.c +++ /dev/null @@ -1,486 +0,0 @@ -/* code page 1253 (ANSI Greek) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1253.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x20ac, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x0088, 0x2030, 0x008a, 0x2039, 0x008c, 0x008d, 0x008e, 0x008f, - 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x0098, 0x2122, 0x009a, 0x203a, 0x009c, 0x009d, 0x009e, 0x009f, - 0x00a0, 0x0385, 0x0386, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0xf8f9, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x2015, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x00b5, 0x00b6, 0x00b7, - 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, - 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, - 0x03a0, 0x03a1, 0xf8fa, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, - 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, - 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, - 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, - 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, - 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xf8fb -}; - -static const unsigned char uni2cp_low[3072] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x88, 0x3f, 0x8a, 0x3f, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x98, 0x3f, 0x9a, 0x3f, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0x3f, 0x3f, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0x3f, 0xab, 0xac, 0xad, 0xae, 0x3f, - 0xb0, 0xb1, 0xb2, 0xb3, 0x2f, 0xb5, 0xb6, 0xb7, - 0x3f, 0x3f, 0x3f, 0xbb, 0x3f, 0xbd, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x43, - 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, - 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x3f, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x3f, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x3f, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x3f, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x83, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 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, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x3f, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0300 .. 0x03ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 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, 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, - 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, 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, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa1, 0xa2, 0x3f, - 0xb8, 0xb9, 0xba, 0x3f, 0xbc, 0x3f, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0x3f, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 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, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x96, 0x97, 0xaf, 0x3f, 0x3f, - 0x91, 0x92, 0x82, 0x3f, 0x93, 0x94, 0x84, 0x3f, - 0x86, 0x87, 0x95, 0x3f, 0x3f, 0x3f, 0x85, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x99, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0xa6, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa6, 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, 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, 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, - /* 0x2200 .. 0x22ff */ - 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, 0x3f, 0x3f, 0x4c, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0xa6, 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, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x3f, 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0xac, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x54, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0xa6, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0xac, - 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, - 0xa6, 0x3f, 0x3f, 0xa6, 0x3f, 0x3f, 0x54, 0x3f, - 0x3f, 0xa6, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3e, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x95, 0x30, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2600 .. 0x26ff */ - 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, 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, 0x4f, 0x4f, 0x30, 0x3f, 0x3f, 0x3f, - 0x2b, 0x3f, 0x3e, 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, - 0xa6, 0x3f, 0x3f, 0xa6, 0x3f, 0xa6, 0xa6, 0x3f, - 0x3f, 0x3f, 0x64, 0x64, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xf800 .. 0xf8ff */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xaa, 0xd2, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0b00, 0x0200, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0300, 0x0400, 0x0500, 0x0600, 0x0b00, 0x0700, 0x0800, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, - 0x0900, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0b00, 0x0a00 -}; - -const struct sbcs_table cptable_1253 = -{ - { 1253, 1, 0x003f, 0x003f, "ANSI Greek" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1254.c b/reactos/tools/unicode/c_1254.c deleted file mode 100644 index 636d7b30074..00000000000 --- a/reactos/tools/unicode/c_1254.c +++ /dev/null @@ -1,651 +0,0 @@ -/* code page 1254 (ANSI Turkish) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1254.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x20ac, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, - 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, - 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff -}; - -static const unsigned char uni2cp_low[4352] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8d, 0x8e, 0x8f, - 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x9e, 0x3f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0x3f, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x59, 0x3f, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0x3f, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x79, 0x3f, 0xff, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0xd0, 0xf0, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0xdd, 0xfd, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x8c, 0x9c, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0xde, 0xfe, - 0x8a, 0x9a, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x9f, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x3f, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x83, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x3f, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0200 .. 0x02ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 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, 0x27, 0x22, 0x91, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x88, 0x5e, - 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x5e, 0x27, 0xb0, 0xb8, 0x98, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0300 .. 0x03ff */ - 0x60, 0xb4, 0x5e, 0x98, 0xaf, 0xaf, 0x88, 0xb7, - 0xa8, 0x3f, 0xa7, 0x3f, 0x88, 0x3f, 0xa8, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 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, - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0400 .. 0x04ff */ - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x68, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0500 .. 0x05ff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3a, 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, 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, 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, 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, 0x3f, 0x3f, - /* 0x0600 .. 0x06ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x25, 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, - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x3f, 0x3f, 0x3f, - 0x91, 0x92, 0x82, 0x3f, 0x93, 0x94, 0x84, 0x3f, - 0x86, 0x87, 0x95, 0x3f, 0x95, 0x3f, 0x85, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x89, 0x3f, 0x27, 0xa8, 0x3f, 0x60, 0x3f, 0x3f, - 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 0x3f, 0x3f, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x3f, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x30, 0xb2, 0xb3, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 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, 0xa3, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x3f, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x8b, 0x5e, 0x9b, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 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, 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, 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, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xab, 0xbb, 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, 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, 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, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0xa6, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xa6, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0xac, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x54, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0xa6, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0xac, - 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, - 0xa6, 0x3f, 0x3f, 0xa6, 0x3f, 0x3f, 0x54, 0x3f, - 0x3f, 0xa6, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3e, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x95, 0x30, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2600 .. 0x26ff */ - 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, 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, 0x4f, 0x4f, 0x30, 0x3f, 0x3f, 0x3f, - 0x2b, 0x3f, 0x3e, 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, - 0xa6, 0x3f, 0x3f, 0xa6, 0x3f, 0xa6, 0xa6, 0x3f, - 0x3f, 0x3f, 0x64, 0x64, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0x2700 .. 0x27ff */ - 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, 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, 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, 0x3f, - 0x7c, 0x3f, 0x3f, 0x91, 0x92, 0x93, 0x94, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x3d, 0x3f, 0x22, 0x22, 0x84, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xb7, 0x97, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x1000, 0x0b00, 0x0c00, 0x0d00, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x0e00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0f00 -}; - -const struct sbcs_table cptable_1254 = -{ - { 1254, 1, 0x003f, 0x003f, "ANSI Turkish" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1255.c b/reactos/tools/unicode/c_1255.c deleted file mode 100644 index b95842adfe4..00000000000 --- a/reactos/tools/unicode/c_1255.c +++ /dev/null @@ -1,387 +0,0 @@ -/* code page 1255 (ANSI Hebrew) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1255.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x20ac, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0x008a, 0x2039, 0x008c, 0x008d, 0x008e, 0x008f, - 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x02dc, 0x2122, 0x009a, 0x203a, 0x009c, 0x009d, 0x009e, 0x009f, - 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20aa, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, - 0x05b0, 0x05b1, 0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7, - 0x05b8, 0x05b9, 0x05ba, 0x05bb, 0x05bc, 0x05bd, 0x05be, 0x05bf, - 0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05f0, 0x05f1, 0x05f2, 0x05f3, - 0x05f4, 0xf88d, 0xf88e, 0xf88f, 0xf890, 0xf891, 0xf892, 0xf893, - 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, - 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x05ea, 0xf894, 0xf895, 0x200e, 0x200f, 0xf896 -}; - -static const unsigned char uni2cp_low[2304] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x8a, 0x3f, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x9a, 0x3f, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0x3f, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0x3f, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaa, - 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, 0x3f, 0x3f, 0xba, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0100 .. 0x01ff */ - 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, 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, 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, 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, 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, 0x46, 0x83, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0200 .. 0x02ff */ - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0500 .. 0x05ff */ - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe0, 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, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfd, 0xfe, - 0x3f, 0x3f, 0x3f, 0x96, 0x97, 0x3f, 0x3f, 0x3f, - 0x91, 0x92, 0x82, 0x3f, 0x93, 0x94, 0x84, 0x3f, - 0x86, 0x87, 0x95, 0x3f, 0x3f, 0x3f, 0x85, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x8b, 0x9b, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xa4, 0x3f, 0x80, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x99, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xf800 .. 0xf8ff */ - 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, 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, 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, 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, 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, 0xd9, 0xda, 0xdb, - 0xdc, 0xdd, 0xde, 0xdf, 0xfb, 0xfc, 0xff, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0800, 0x0800, 0x0300, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0400, 0x0500, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, - 0x0600, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0700 -}; - -const struct sbcs_table cptable_1255 = -{ - { 1255, 1, 0x003f, 0x003f, "ANSI Hebrew" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1256.c b/reactos/tools/unicode/c_1256.c deleted file mode 100644 index 228e9c937f3..00000000000 --- a/reactos/tools/unicode/c_1256.c +++ /dev/null @@ -1,420 +0,0 @@ -/* code page 1256 (ANSI Arabic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1256.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x20ac, 0x067e, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688, - 0x06af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x06a9, 0x2122, 0x0691, 0x203a, 0x0153, 0x200c, 0x200d, 0x06ba, - 0x00a0, 0x060c, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x06be, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x061b, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x061f, - 0x06c1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, - 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, - 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00d7, - 0x0637, 0x0638, 0x0639, 0x063a, 0x0640, 0x0641, 0x0642, 0x0643, - 0x00e0, 0x0644, 0x00e2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0649, 0x064a, 0x00ee, 0x00ef, - 0x064b, 0x064c, 0x064d, 0x064e, 0x00f4, 0x064f, 0x0650, 0x00f7, - 0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0x06d2 -}; - -static const unsigned char uni2cp_low[2560] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa0, 0x3f, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0x3f, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0x3f, 0xbb, 0xbc, 0xbd, 0xbe, 0x3f, - 0x41, 0x3f, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x43, - 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0xd7, - 0x3f, 0x55, 0x3f, 0x55, 0x55, 0x3f, 0x3f, 0x3f, - 0xe0, 0x3f, 0xe2, 0x3f, 0x3f, 0x3f, 0x3f, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0x3f, 0x3f, 0xee, 0xef, - 0x3f, 0x3f, 0x3f, 0x3f, 0xf4, 0x3f, 0x3f, 0xf7, - 0x3f, 0xf9, 0x3f, 0xfb, 0xfc, 0x3f, 0x3f, 0x3f, - /* 0x0100 .. 0x01ff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x8c, 0x9c, 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, 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, 0x3f, 0x3f, - 0x3f, 0x46, 0x83, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0200 .. 0x02ff */ - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 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, 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, - /* 0x0600 .. 0x06ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xba, 0x3f, 0x3f, 0x3f, 0xbf, - 0x3f, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd8, - 0xd9, 0xda, 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdc, 0xdd, 0xde, 0xdf, 0xe1, 0xe3, 0xe4, 0xe5, - 0xe6, 0xec, 0xed, 0xf0, 0xf1, 0xf2, 0xf3, 0xf5, - 0xf6, 0xf8, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x8a, 0x3f, 0x3f, 0x3f, 0x3f, 0x81, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8d, 0x3f, - 0x8f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x9a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x8e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x9f, 0x3f, 0x3f, 0x3f, 0xaa, 0x3f, - 0x3f, 0xc0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xed, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xff, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x9e, 0xfd, 0xfe, - 0x3f, 0x3f, 0x3f, 0x96, 0x97, 0x3f, 0x3f, 0x3f, - 0x91, 0x92, 0x82, 0x3f, 0x93, 0x94, 0x84, 0x3f, - 0x86, 0x87, 0x95, 0x3f, 0x3f, 0x3f, 0x85, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x8b, 0x9b, 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, - 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, 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, 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, 0x80, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x99, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 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, 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, 0x81, 0x81, - 0x81, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8a, 0x8a, - 0x8a, 0x8a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x8d, 0x8d, 0x8d, 0x8d, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x8f, 0x8f, 0x8e, 0x8e, 0x9a, 0x9a, 0x98, 0x98, - 0x98, 0x98, 0x90, 0x90, 0x90, 0x90, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9f, 0x9f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc0, 0xc0, - 0xc0, 0xc0, 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 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, 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, - 0xf0, 0xf0, 0xf1, 0x3f, 0xf2, 0x3f, 0xf3, 0xf3, - 0xf5, 0xf5, 0xf6, 0xf6, 0xf8, 0xf8, 0xfa, 0xfa, - 0xc1, 0xc2, 0xc2, 0xc3, 0xc3, 0xc4, 0xc4, 0xc5, - 0xc5, 0xc6, 0xc6, 0xc6, 0xc6, 0xc7, 0xc7, 0xc8, - 0xc8, 0xc8, 0xc8, 0xc9, 0xc9, 0xca, 0xca, 0xca, - 0xca, 0xcb, 0xcb, 0xcb, 0xcb, 0xcc, 0xcc, 0xcc, - 0xcc, 0xcd, 0xcd, 0xcd, 0xcd, 0xce, 0xce, 0xce, - 0xce, 0xcf, 0xcf, 0xd0, 0xd0, 0xd1, 0xd1, 0xd2, - 0xd2, 0xd3, 0xd3, 0xd3, 0xd3, 0xd4, 0xd4, 0xd4, - 0xd4, 0xd5, 0xd5, 0xd5, 0xd5, 0xd6, 0xd6, 0xd6, - 0xd6, 0xd8, 0xd8, 0xd8, 0xd8, 0xd9, 0xd9, 0xd9, - 0xd9, 0xda, 0xda, 0xda, 0xda, 0xdb, 0xdb, 0xdb, - 0xdb, 0xdd, 0xdd, 0xdd, 0xdd, 0xde, 0xde, 0xde, - 0xde, 0xdf, 0xdf, 0xdf, 0xdf, 0xe1, 0xe1, 0xe1, - 0xe1, 0xe3, 0xe3, 0xe3, 0xe3, 0xe4, 0xe4, 0xe4, - 0xe4, 0xe5, 0xe5, 0xe5, 0xe5, 0xe6, 0xe6, 0xec, - 0xec, 0xed, 0xed, 0xed, 0xed, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0900, 0x0900, 0x0900, 0x0300, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0400, 0x0500, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, - 0x0900, 0x0900, 0x0900, 0x0600, 0x0900, 0x0900, 0x0700, 0x0800 -}; - -const struct sbcs_table cptable_1256 = -{ - { 1256, 1, 0x003f, 0x003f, "ANSI Arabic" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1257.c b/reactos/tools/unicode/c_1257.c deleted file mode 100644 index af3c8eeb1da..00000000000 --- a/reactos/tools/unicode/c_1257.c +++ /dev/null @@ -1,354 +0,0 @@ -/* code page 1257 (ANSI Baltic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1257.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x20ac, 0x0081, 0x201a, 0x0083, 0x201e, 0x2026, 0x2020, 0x2021, - 0x0088, 0x2030, 0x008a, 0x2039, 0x008c, 0x00a8, 0x02c7, 0x00b8, - 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x0098, 0x2122, 0x009a, 0x203a, 0x009c, 0x00af, 0x02db, 0x009f, - 0x00a0, 0xf8fc, 0x00a2, 0x00a3, 0x00a4, 0xf8fd, 0x00a6, 0x00a7, - 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, - 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, - 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, - 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, - 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, - 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, - 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, - 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, - 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x02d9 -}; - -static const unsigned char uni2cp_low[2048] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x3f, 0x81, 0x3f, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, - 0x88, 0x3f, 0x8a, 0x3f, 0x8c, 0x3f, 0x3f, 0x3f, - 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x98, 0x3f, 0x9a, 0x3f, 0x9c, 0x3f, 0x3f, 0x9f, - 0xa0, 0x3f, 0xa2, 0xa3, 0xa4, 0x3f, 0xa6, 0xa7, - 0x8d, 0xa9, 0x3f, 0xab, 0xac, 0xad, 0xae, 0x9d, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0x8f, 0xb9, 0x3f, 0xbb, 0xbc, 0xbd, 0xbe, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0xc5, 0xaf, 0x3f, - 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xd3, 0x3f, 0xd5, 0xd6, 0xd7, - 0xa8, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0xdf, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe4, 0xe5, 0xbf, 0x3f, - 0x3f, 0xe9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xf3, 0x3f, 0xf5, 0xf6, 0xf7, - 0xb8, 0x3f, 0x3f, 0x3f, 0xfc, 0x3f, 0x3f, 0x3f, - /* 0x0100 .. 0x01ff */ - 0xc2, 0xe2, 0x3f, 0x3f, 0xc0, 0xe0, 0xc3, 0xe3, - 0x3f, 0x3f, 0x3f, 0x3f, 0xc8, 0xe8, 0x3f, 0x3f, - 0x3f, 0x3f, 0xc7, 0xe7, 0x3f, 0x3f, 0xcb, 0xeb, - 0xc6, 0xe6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xcc, 0xec, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xce, 0xee, 0x3f, 0x3f, 0xc1, 0xe1, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcd, 0xed, - 0x3f, 0x3f, 0x3f, 0xcf, 0xef, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xd4, 0xf4, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaa, 0xba, - 0x3f, 0x3f, 0xda, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd0, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdb, 0xfb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xd8, 0xf8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0200 .. 0x02ff */ - 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, 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, 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, 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, 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, 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, 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, 0x8e, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xff, 0x3f, 0x9e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x96, 0x97, 0x3f, 0x3f, 0x3f, - 0x91, 0x92, 0x82, 0x3f, 0x93, 0x94, 0x84, 0x3f, - 0x86, 0x87, 0x95, 0x3f, 0x3f, 0x3f, 0x85, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x8b, 0x9b, 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, - 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, 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, 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, 0x80, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x99, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xf800 .. 0xf8ff */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0xa5, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0300, 0x0400, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0500, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0600 -}; - -const struct sbcs_table cptable_1257 = -{ - { 1257, 1, 0x003f, 0x003f, "ANSI Baltic" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1258.c b/reactos/tools/unicode/c_1258.c deleted file mode 100644 index dae642ec3bb..00000000000 --- a/reactos/tools/unicode/c_1258.c +++ /dev/null @@ -1,354 +0,0 @@ -/* code page 1258 (ANSI/OEM Viet Nam) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1258.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x20ac, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0x008a, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, - 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x02dc, 0x2122, 0x009a, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, - 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, - 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x00c5, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x0300, 0x00cd, 0x00ce, 0x00cf, - 0x0110, 0x00d1, 0x0309, 0x00d3, 0x00d4, 0x01a0, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x01af, 0x0303, 0x00df, - 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x00e5, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0301, 0x00ed, 0x00ee, 0x00ef, - 0x0111, 0x00f1, 0x0323, 0x00f3, 0x00f4, 0x01a1, 0x00f6, 0x00f7, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff -}; - -static const unsigned char uni2cp_low[2048] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x8a, 0x3f, 0x3f, 0x8d, 0x8e, 0x8f, - 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x9a, 0x3f, 0x3f, 0x9d, 0x9e, 0x3f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0x3f, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0x3f, 0xcd, 0xce, 0xcf, - 0x3f, 0xd1, 0x3f, 0xd3, 0xd4, 0x3f, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x3f, 0x3f, 0xdf, - 0xe0, 0xe1, 0xe2, 0x3f, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0x3f, 0xed, 0xee, 0xef, - 0x3f, 0xf1, 0x3f, 0xf3, 0xf4, 0x3f, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x3f, 0x3f, 0xff, - /* 0x0100 .. 0x01ff */ - 0x3f, 0x3f, 0xc3, 0xe3, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd0, 0xf0, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x8c, 0x9c, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x9f, 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, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd5, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdd, - 0xfd, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0200 .. 0x02ff */ - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0300 .. 0x03ff */ - 0xcc, 0xec, 0x3f, 0xde, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd2, 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, 0xf2, 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, 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, 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, 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, - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x96, 0x97, 0x3f, 0x3f, 0x3f, - 0x91, 0x92, 0x82, 0x3f, 0x93, 0x94, 0x84, 0x3f, - 0x86, 0x87, 0x95, 0x3f, 0x3f, 0x3f, 0x85, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x8b, 0x9b, 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, - 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, 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, 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, 0xfe, 0x80, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x99, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0400, 0x0500, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, - 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0600 -}; - -const struct sbcs_table cptable_1258 = -{ - { 1258, 1, 0x003f, 0x003f, "ANSI/OEM Viet Nam" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_1361.c b/reactos/tools/unicode/c_1361.c deleted file mode 100644 index dfad2a8ea5e..00000000000 --- a/reactos/tools/unicode/c_1361.c +++ /dev/null @@ -1,8907 +0,0 @@ -/* code page 1361 (Korean Johab) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[28928] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x20a9, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x003f, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte 84 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x3133, 0x003f, 0x3135, 0x3136, - 0x003f, 0x003f, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, - 0x3140, 0x003f, 0x003f, 0x003f, 0x3144, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x314f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3150, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3151, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3152, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3153, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte 85 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3154, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3155, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3156, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3157, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3158, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3159, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte 86 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x315a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x315b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x315c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x315d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x315e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x315f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte 87 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3160, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3161, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3162, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3163, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte 88 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3131, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xac00, 0xac01, 0xac02, 0xac03, 0xac04, 0xac05, 0xac06, - 0xac07, 0xac08, 0xac09, 0xac0a, 0xac0b, 0xac0c, 0xac0d, 0xac0e, - 0xac0f, 0xac10, 0x003f, 0xac11, 0xac12, 0xac13, 0xac14, 0xac15, - 0xac16, 0xac17, 0xac18, 0xac19, 0xac1a, 0xac1b, 0x003f, 0x003f, - 0x003f, 0xac1c, 0xac1d, 0xac1e, 0xac1f, 0xac20, 0xac21, 0xac22, - 0xac23, 0xac24, 0xac25, 0xac26, 0xac27, 0xac28, 0xac29, 0xac2a, - 0xac2b, 0xac2c, 0x003f, 0xac2d, 0xac2e, 0xac2f, 0xac30, 0xac31, - 0xac32, 0xac33, 0xac34, 0xac35, 0xac36, 0xac37, 0x003f, 0x003f, - 0x003f, 0xac38, 0xac39, 0xac3a, 0xac3b, 0xac3c, 0xac3d, 0xac3e, - 0xac3f, 0xac40, 0xac41, 0xac42, 0xac43, 0xac44, 0xac45, 0xac46, - 0xac47, 0xac48, 0x003f, 0xac49, 0xac4a, 0xac4b, 0xac4c, 0xac4d, - 0xac4e, 0xac4f, 0xac50, 0xac51, 0xac52, 0xac53, 0x003f, 0x003f, - 0x003f, 0xac54, 0xac55, 0xac56, 0xac57, 0xac58, 0xac59, 0xac5a, - 0xac5b, 0xac5c, 0xac5d, 0xac5e, 0xac5f, 0xac60, 0xac61, 0xac62, - 0xac63, 0xac64, 0x003f, 0xac65, 0xac66, 0xac67, 0xac68, 0xac69, - 0xac6a, 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xac6f, 0x003f, 0x003f, - 0x003f, 0xac70, 0xac71, 0xac72, 0xac73, 0xac74, 0xac75, 0xac76, - 0xac77, 0xac78, 0xac79, 0xac7a, 0xac7b, 0xac7c, 0xac7d, 0xac7e, - 0xac7f, 0xac80, 0x003f, 0xac81, 0xac82, 0xac83, 0xac84, 0xac85, - 0xac86, 0xac87, 0xac88, 0xac89, 0xac8a, 0xac8b, 0x003f, 0x003f, - /* lead byte 89 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, 0xac91, 0xac92, - 0xac93, 0xac94, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, 0xac9a, - 0xac9b, 0xac9c, 0x003f, 0xac9d, 0xac9e, 0xac9f, 0xaca0, 0xaca1, - 0xaca2, 0xaca3, 0xaca4, 0xaca5, 0xaca6, 0xaca7, 0x003f, 0x003f, - 0x003f, 0xaca8, 0xaca9, 0xacaa, 0xacab, 0xacac, 0xacad, 0xacae, - 0xacaf, 0xacb0, 0xacb1, 0xacb2, 0xacb3, 0xacb4, 0xacb5, 0xacb6, - 0xacb7, 0xacb8, 0x003f, 0xacb9, 0xacba, 0xacbb, 0xacbc, 0xacbd, - 0xacbe, 0xacbf, 0xacc0, 0xacc1, 0xacc2, 0xacc3, 0x003f, 0x003f, - 0x003f, 0xacc4, 0xacc5, 0xacc6, 0xacc7, 0xacc8, 0xacc9, 0xacca, - 0xaccb, 0xaccc, 0xaccd, 0xacce, 0xaccf, 0xacd0, 0xacd1, 0xacd2, - 0xacd3, 0xacd4, 0x003f, 0xacd5, 0xacd6, 0xacd7, 0xacd8, 0xacd9, - 0xacda, 0xacdb, 0xacdc, 0xacdd, 0xacde, 0xacdf, 0x003f, 0x003f, - 0x003f, 0xace0, 0xace1, 0xace2, 0xace3, 0xace4, 0xace5, 0xace6, - 0xace7, 0xace8, 0xace9, 0xacea, 0xaceb, 0xacec, 0xaced, 0xacee, - 0xacef, 0xacf0, 0x003f, 0xacf1, 0xacf2, 0xacf3, 0xacf4, 0xacf5, - 0xacf6, 0xacf7, 0xacf8, 0xacf9, 0xacfa, 0xacfb, 0x003f, 0x003f, - 0x003f, 0xacfc, 0xacfd, 0xacfe, 0xacff, 0xad00, 0xad01, 0xad02, - 0xad03, 0xad04, 0xad05, 0xad06, 0xad07, 0xad08, 0xad09, 0xad0a, - 0xad0b, 0xad0c, 0x003f, 0xad0d, 0xad0e, 0xad0f, 0xad10, 0xad11, - 0xad12, 0xad13, 0xad14, 0xad15, 0xad16, 0xad17, 0x003f, 0x003f, - 0x003f, 0xad18, 0xad19, 0xad1a, 0xad1b, 0xad1c, 0xad1d, 0xad1e, - 0xad1f, 0xad20, 0xad21, 0xad22, 0xad23, 0xad24, 0xad25, 0xad26, - 0xad27, 0xad28, 0x003f, 0xad29, 0xad2a, 0xad2b, 0xad2c, 0xad2d, - 0xad2e, 0xad2f, 0xad30, 0xad31, 0xad32, 0xad33, 0x003f, 0x003f, - /* lead byte 8a */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xad34, 0xad35, 0xad36, 0xad37, 0xad38, 0xad39, 0xad3a, - 0xad3b, 0xad3c, 0xad3d, 0xad3e, 0xad3f, 0xad40, 0xad41, 0xad42, - 0xad43, 0xad44, 0x003f, 0xad45, 0xad46, 0xad47, 0xad48, 0xad49, - 0xad4a, 0xad4b, 0xad4c, 0xad4d, 0xad4e, 0xad4f, 0x003f, 0x003f, - 0x003f, 0xad50, 0xad51, 0xad52, 0xad53, 0xad54, 0xad55, 0xad56, - 0xad57, 0xad58, 0xad59, 0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad5e, - 0xad5f, 0xad60, 0x003f, 0xad61, 0xad62, 0xad63, 0xad64, 0xad65, - 0xad66, 0xad67, 0xad68, 0xad69, 0xad6a, 0xad6b, 0x003f, 0x003f, - 0x003f, 0xad6c, 0xad6d, 0xad6e, 0xad6f, 0xad70, 0xad71, 0xad72, - 0xad73, 0xad74, 0xad75, 0xad76, 0xad77, 0xad78, 0xad79, 0xad7a, - 0xad7b, 0xad7c, 0x003f, 0xad7d, 0xad7e, 0xad7f, 0xad80, 0xad81, - 0xad82, 0xad83, 0xad84, 0xad85, 0xad86, 0xad87, 0x003f, 0x003f, - 0x003f, 0xad88, 0xad89, 0xad8a, 0xad8b, 0xad8c, 0xad8d, 0xad8e, - 0xad8f, 0xad90, 0xad91, 0xad92, 0xad93, 0xad94, 0xad95, 0xad96, - 0xad97, 0xad98, 0x003f, 0xad99, 0xad9a, 0xad9b, 0xad9c, 0xad9d, - 0xad9e, 0xad9f, 0xada0, 0xada1, 0xada2, 0xada3, 0x003f, 0x003f, - 0x003f, 0xada4, 0xada5, 0xada6, 0xada7, 0xada8, 0xada9, 0xadaa, - 0xadab, 0xadac, 0xadad, 0xadae, 0xadaf, 0xadb0, 0xadb1, 0xadb2, - 0xadb3, 0xadb4, 0x003f, 0xadb5, 0xadb6, 0xadb7, 0xadb8, 0xadb9, - 0xadba, 0xadbb, 0xadbc, 0xadbd, 0xadbe, 0xadbf, 0x003f, 0x003f, - 0x003f, 0xadc0, 0xadc1, 0xadc2, 0xadc3, 0xadc4, 0xadc5, 0xadc6, - 0xadc7, 0xadc8, 0xadc9, 0xadca, 0xadcb, 0xadcc, 0xadcd, 0xadce, - 0xadcf, 0xadd0, 0x003f, 0xadd1, 0xadd2, 0xadd3, 0xadd4, 0xadd5, - 0xadd6, 0xadd7, 0xadd8, 0xadd9, 0xadda, 0xaddb, 0x003f, 0x003f, - /* lead byte 8b */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xaddc, 0xaddd, 0xadde, 0xaddf, 0xade0, 0xade1, 0xade2, - 0xade3, 0xade4, 0xade5, 0xade6, 0xade7, 0xade8, 0xade9, 0xadea, - 0xadeb, 0xadec, 0x003f, 0xaded, 0xadee, 0xadef, 0xadf0, 0xadf1, - 0xadf2, 0xadf3, 0xadf4, 0xadf5, 0xadf6, 0xadf7, 0x003f, 0x003f, - 0x003f, 0xadf8, 0xadf9, 0xadfa, 0xadfb, 0xadfc, 0xadfd, 0xadfe, - 0xadff, 0xae00, 0xae01, 0xae02, 0xae03, 0xae04, 0xae05, 0xae06, - 0xae07, 0xae08, 0x003f, 0xae09, 0xae0a, 0xae0b, 0xae0c, 0xae0d, - 0xae0e, 0xae0f, 0xae10, 0xae11, 0xae12, 0xae13, 0x003f, 0x003f, - 0x003f, 0xae14, 0xae15, 0xae16, 0xae17, 0xae18, 0xae19, 0xae1a, - 0xae1b, 0xae1c, 0xae1d, 0xae1e, 0xae1f, 0xae20, 0xae21, 0xae22, - 0xae23, 0xae24, 0x003f, 0xae25, 0xae26, 0xae27, 0xae28, 0xae29, - 0xae2a, 0xae2b, 0xae2c, 0xae2d, 0xae2e, 0xae2f, 0x003f, 0x003f, - 0x003f, 0xae30, 0xae31, 0xae32, 0xae33, 0xae34, 0xae35, 0xae36, - 0xae37, 0xae38, 0xae39, 0xae3a, 0xae3b, 0xae3c, 0xae3d, 0xae3e, - 0xae3f, 0xae40, 0x003f, 0xae41, 0xae42, 0xae43, 0xae44, 0xae45, - 0xae46, 0xae47, 0xae48, 0xae49, 0xae4a, 0xae4b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte 8c */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3132, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xae4c, 0xae4d, 0xae4e, 0xae4f, 0xae50, 0xae51, 0xae52, - 0xae53, 0xae54, 0xae55, 0xae56, 0xae57, 0xae58, 0xae59, 0xae5a, - 0xae5b, 0xae5c, 0x003f, 0xae5d, 0xae5e, 0xae5f, 0xae60, 0xae61, - 0xae62, 0xae63, 0xae64, 0xae65, 0xae66, 0xae67, 0x003f, 0x003f, - 0x003f, 0xae68, 0xae69, 0xae6a, 0xae6b, 0xae6c, 0xae6d, 0xae6e, - 0xae6f, 0xae70, 0xae71, 0xae72, 0xae73, 0xae74, 0xae75, 0xae76, - 0xae77, 0xae78, 0x003f, 0xae79, 0xae7a, 0xae7b, 0xae7c, 0xae7d, - 0xae7e, 0xae7f, 0xae80, 0xae81, 0xae82, 0xae83, 0x003f, 0x003f, - 0x003f, 0xae84, 0xae85, 0xae86, 0xae87, 0xae88, 0xae89, 0xae8a, - 0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xae8f, 0xae90, 0xae91, 0xae92, - 0xae93, 0xae94, 0x003f, 0xae95, 0xae96, 0xae97, 0xae98, 0xae99, - 0xae9a, 0xae9b, 0xae9c, 0xae9d, 0xae9e, 0xae9f, 0x003f, 0x003f, - 0x003f, 0xaea0, 0xaea1, 0xaea2, 0xaea3, 0xaea4, 0xaea5, 0xaea6, - 0xaea7, 0xaea8, 0xaea9, 0xaeaa, 0xaeab, 0xaeac, 0xaead, 0xaeae, - 0xaeaf, 0xaeb0, 0x003f, 0xaeb1, 0xaeb2, 0xaeb3, 0xaeb4, 0xaeb5, - 0xaeb6, 0xaeb7, 0xaeb8, 0xaeb9, 0xaeba, 0xaebb, 0x003f, 0x003f, - 0x003f, 0xaebc, 0xaebd, 0xaebe, 0xaebf, 0xaec0, 0xaec1, 0xaec2, - 0xaec3, 0xaec4, 0xaec5, 0xaec6, 0xaec7, 0xaec8, 0xaec9, 0xaeca, - 0xaecb, 0xaecc, 0x003f, 0xaecd, 0xaece, 0xaecf, 0xaed0, 0xaed1, - 0xaed2, 0xaed3, 0xaed4, 0xaed5, 0xaed6, 0xaed7, 0x003f, 0x003f, - /* lead byte 8d */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xaed8, 0xaed9, 0xaeda, 0xaedb, 0xaedc, 0xaedd, 0xaede, - 0xaedf, 0xaee0, 0xaee1, 0xaee2, 0xaee3, 0xaee4, 0xaee5, 0xaee6, - 0xaee7, 0xaee8, 0x003f, 0xaee9, 0xaeea, 0xaeeb, 0xaeec, 0xaeed, - 0xaeee, 0xaeef, 0xaef0, 0xaef1, 0xaef2, 0xaef3, 0x003f, 0x003f, - 0x003f, 0xaef4, 0xaef5, 0xaef6, 0xaef7, 0xaef8, 0xaef9, 0xaefa, - 0xaefb, 0xaefc, 0xaefd, 0xaefe, 0xaeff, 0xaf00, 0xaf01, 0xaf02, - 0xaf03, 0xaf04, 0x003f, 0xaf05, 0xaf06, 0xaf07, 0xaf08, 0xaf09, - 0xaf0a, 0xaf0b, 0xaf0c, 0xaf0d, 0xaf0e, 0xaf0f, 0x003f, 0x003f, - 0x003f, 0xaf10, 0xaf11, 0xaf12, 0xaf13, 0xaf14, 0xaf15, 0xaf16, - 0xaf17, 0xaf18, 0xaf19, 0xaf1a, 0xaf1b, 0xaf1c, 0xaf1d, 0xaf1e, - 0xaf1f, 0xaf20, 0x003f, 0xaf21, 0xaf22, 0xaf23, 0xaf24, 0xaf25, - 0xaf26, 0xaf27, 0xaf28, 0xaf29, 0xaf2a, 0xaf2b, 0x003f, 0x003f, - 0x003f, 0xaf2c, 0xaf2d, 0xaf2e, 0xaf2f, 0xaf30, 0xaf31, 0xaf32, - 0xaf33, 0xaf34, 0xaf35, 0xaf36, 0xaf37, 0xaf38, 0xaf39, 0xaf3a, - 0xaf3b, 0xaf3c, 0x003f, 0xaf3d, 0xaf3e, 0xaf3f, 0xaf40, 0xaf41, - 0xaf42, 0xaf43, 0xaf44, 0xaf45, 0xaf46, 0xaf47, 0x003f, 0x003f, - 0x003f, 0xaf48, 0xaf49, 0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, - 0xaf4f, 0xaf50, 0xaf51, 0xaf52, 0xaf53, 0xaf54, 0xaf55, 0xaf56, - 0xaf57, 0xaf58, 0x003f, 0xaf59, 0xaf5a, 0xaf5b, 0xaf5c, 0xaf5d, - 0xaf5e, 0xaf5f, 0xaf60, 0xaf61, 0xaf62, 0xaf63, 0x003f, 0x003f, - 0x003f, 0xaf64, 0xaf65, 0xaf66, 0xaf67, 0xaf68, 0xaf69, 0xaf6a, - 0xaf6b, 0xaf6c, 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, 0xaf71, 0xaf72, - 0xaf73, 0xaf74, 0x003f, 0xaf75, 0xaf76, 0xaf77, 0xaf78, 0xaf79, - 0xaf7a, 0xaf7b, 0xaf7c, 0xaf7d, 0xaf7e, 0xaf7f, 0x003f, 0x003f, - /* lead byte 8e */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xaf80, 0xaf81, 0xaf82, 0xaf83, 0xaf84, 0xaf85, 0xaf86, - 0xaf87, 0xaf88, 0xaf89, 0xaf8a, 0xaf8b, 0xaf8c, 0xaf8d, 0xaf8e, - 0xaf8f, 0xaf90, 0x003f, 0xaf91, 0xaf92, 0xaf93, 0xaf94, 0xaf95, - 0xaf96, 0xaf97, 0xaf98, 0xaf99, 0xaf9a, 0xaf9b, 0x003f, 0x003f, - 0x003f, 0xaf9c, 0xaf9d, 0xaf9e, 0xaf9f, 0xafa0, 0xafa1, 0xafa2, - 0xafa3, 0xafa4, 0xafa5, 0xafa6, 0xafa7, 0xafa8, 0xafa9, 0xafaa, - 0xafab, 0xafac, 0x003f, 0xafad, 0xafae, 0xafaf, 0xafb0, 0xafb1, - 0xafb2, 0xafb3, 0xafb4, 0xafb5, 0xafb6, 0xafb7, 0x003f, 0x003f, - 0x003f, 0xafb8, 0xafb9, 0xafba, 0xafbb, 0xafbc, 0xafbd, 0xafbe, - 0xafbf, 0xafc0, 0xafc1, 0xafc2, 0xafc3, 0xafc4, 0xafc5, 0xafc6, - 0xafc7, 0xafc8, 0x003f, 0xafc9, 0xafca, 0xafcb, 0xafcc, 0xafcd, - 0xafce, 0xafcf, 0xafd0, 0xafd1, 0xafd2, 0xafd3, 0x003f, 0x003f, - 0x003f, 0xafd4, 0xafd5, 0xafd6, 0xafd7, 0xafd8, 0xafd9, 0xafda, - 0xafdb, 0xafdc, 0xafdd, 0xafde, 0xafdf, 0xafe0, 0xafe1, 0xafe2, - 0xafe3, 0xafe4, 0x003f, 0xafe5, 0xafe6, 0xafe7, 0xafe8, 0xafe9, - 0xafea, 0xafeb, 0xafec, 0xafed, 0xafee, 0xafef, 0x003f, 0x003f, - 0x003f, 0xaff0, 0xaff1, 0xaff2, 0xaff3, 0xaff4, 0xaff5, 0xaff6, - 0xaff7, 0xaff8, 0xaff9, 0xaffa, 0xaffb, 0xaffc, 0xaffd, 0xaffe, - 0xafff, 0xb000, 0x003f, 0xb001, 0xb002, 0xb003, 0xb004, 0xb005, - 0xb006, 0xb007, 0xb008, 0xb009, 0xb00a, 0xb00b, 0x003f, 0x003f, - 0x003f, 0xb00c, 0xb00d, 0xb00e, 0xb00f, 0xb010, 0xb011, 0xb012, - 0xb013, 0xb014, 0xb015, 0xb016, 0xb017, 0xb018, 0xb019, 0xb01a, - 0xb01b, 0xb01c, 0x003f, 0xb01d, 0xb01e, 0xb01f, 0xb020, 0xb021, - 0xb022, 0xb023, 0xb024, 0xb025, 0xb026, 0xb027, 0x003f, 0x003f, - /* lead byte 8f */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb028, 0xb029, 0xb02a, 0xb02b, 0xb02c, 0xb02d, 0xb02e, - 0xb02f, 0xb030, 0xb031, 0xb032, 0xb033, 0xb034, 0xb035, 0xb036, - 0xb037, 0xb038, 0x003f, 0xb039, 0xb03a, 0xb03b, 0xb03c, 0xb03d, - 0xb03e, 0xb03f, 0xb040, 0xb041, 0xb042, 0xb043, 0x003f, 0x003f, - 0x003f, 0xb044, 0xb045, 0xb046, 0xb047, 0xb048, 0xb049, 0xb04a, - 0xb04b, 0xb04c, 0xb04d, 0xb04e, 0xb04f, 0xb050, 0xb051, 0xb052, - 0xb053, 0xb054, 0x003f, 0xb055, 0xb056, 0xb057, 0xb058, 0xb059, - 0xb05a, 0xb05b, 0xb05c, 0xb05d, 0xb05e, 0xb05f, 0x003f, 0x003f, - 0x003f, 0xb060, 0xb061, 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, - 0xb067, 0xb068, 0xb069, 0xb06a, 0xb06b, 0xb06c, 0xb06d, 0xb06e, - 0xb06f, 0xb070, 0x003f, 0xb071, 0xb072, 0xb073, 0xb074, 0xb075, - 0xb076, 0xb077, 0xb078, 0xb079, 0xb07a, 0xb07b, 0x003f, 0x003f, - 0x003f, 0xb07c, 0xb07d, 0xb07e, 0xb07f, 0xb080, 0xb081, 0xb082, - 0xb083, 0xb084, 0xb085, 0xb086, 0xb087, 0xb088, 0xb089, 0xb08a, - 0xb08b, 0xb08c, 0x003f, 0xb08d, 0xb08e, 0xb08f, 0xb090, 0xb091, - 0xb092, 0xb093, 0xb094, 0xb095, 0xb096, 0xb097, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte 90 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3134, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb098, 0xb099, 0xb09a, 0xb09b, 0xb09c, 0xb09d, 0xb09e, - 0xb09f, 0xb0a0, 0xb0a1, 0xb0a2, 0xb0a3, 0xb0a4, 0xb0a5, 0xb0a6, - 0xb0a7, 0xb0a8, 0x003f, 0xb0a9, 0xb0aa, 0xb0ab, 0xb0ac, 0xb0ad, - 0xb0ae, 0xb0af, 0xb0b0, 0xb0b1, 0xb0b2, 0xb0b3, 0x003f, 0x003f, - 0x003f, 0xb0b4, 0xb0b5, 0xb0b6, 0xb0b7, 0xb0b8, 0xb0b9, 0xb0ba, - 0xb0bb, 0xb0bc, 0xb0bd, 0xb0be, 0xb0bf, 0xb0c0, 0xb0c1, 0xb0c2, - 0xb0c3, 0xb0c4, 0x003f, 0xb0c5, 0xb0c6, 0xb0c7, 0xb0c8, 0xb0c9, - 0xb0ca, 0xb0cb, 0xb0cc, 0xb0cd, 0xb0ce, 0xb0cf, 0x003f, 0x003f, - 0x003f, 0xb0d0, 0xb0d1, 0xb0d2, 0xb0d3, 0xb0d4, 0xb0d5, 0xb0d6, - 0xb0d7, 0xb0d8, 0xb0d9, 0xb0da, 0xb0db, 0xb0dc, 0xb0dd, 0xb0de, - 0xb0df, 0xb0e0, 0x003f, 0xb0e1, 0xb0e2, 0xb0e3, 0xb0e4, 0xb0e5, - 0xb0e6, 0xb0e7, 0xb0e8, 0xb0e9, 0xb0ea, 0xb0eb, 0x003f, 0x003f, - 0x003f, 0xb0ec, 0xb0ed, 0xb0ee, 0xb0ef, 0xb0f0, 0xb0f1, 0xb0f2, - 0xb0f3, 0xb0f4, 0xb0f5, 0xb0f6, 0xb0f7, 0xb0f8, 0xb0f9, 0xb0fa, - 0xb0fb, 0xb0fc, 0x003f, 0xb0fd, 0xb0fe, 0xb0ff, 0xb100, 0xb101, - 0xb102, 0xb103, 0xb104, 0xb105, 0xb106, 0xb107, 0x003f, 0x003f, - 0x003f, 0xb108, 0xb109, 0xb10a, 0xb10b, 0xb10c, 0xb10d, 0xb10e, - 0xb10f, 0xb110, 0xb111, 0xb112, 0xb113, 0xb114, 0xb115, 0xb116, - 0xb117, 0xb118, 0x003f, 0xb119, 0xb11a, 0xb11b, 0xb11c, 0xb11d, - 0xb11e, 0xb11f, 0xb120, 0xb121, 0xb122, 0xb123, 0x003f, 0x003f, - /* lead byte 91 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb124, 0xb125, 0xb126, 0xb127, 0xb128, 0xb129, 0xb12a, - 0xb12b, 0xb12c, 0xb12d, 0xb12e, 0xb12f, 0xb130, 0xb131, 0xb132, - 0xb133, 0xb134, 0x003f, 0xb135, 0xb136, 0xb137, 0xb138, 0xb139, - 0xb13a, 0xb13b, 0xb13c, 0xb13d, 0xb13e, 0xb13f, 0x003f, 0x003f, - 0x003f, 0xb140, 0xb141, 0xb142, 0xb143, 0xb144, 0xb145, 0xb146, - 0xb147, 0xb148, 0xb149, 0xb14a, 0xb14b, 0xb14c, 0xb14d, 0xb14e, - 0xb14f, 0xb150, 0x003f, 0xb151, 0xb152, 0xb153, 0xb154, 0xb155, - 0xb156, 0xb157, 0xb158, 0xb159, 0xb15a, 0xb15b, 0x003f, 0x003f, - 0x003f, 0xb15c, 0xb15d, 0xb15e, 0xb15f, 0xb160, 0xb161, 0xb162, - 0xb163, 0xb164, 0xb165, 0xb166, 0xb167, 0xb168, 0xb169, 0xb16a, - 0xb16b, 0xb16c, 0x003f, 0xb16d, 0xb16e, 0xb16f, 0xb170, 0xb171, - 0xb172, 0xb173, 0xb174, 0xb175, 0xb176, 0xb177, 0x003f, 0x003f, - 0x003f, 0xb178, 0xb179, 0xb17a, 0xb17b, 0xb17c, 0xb17d, 0xb17e, - 0xb17f, 0xb180, 0xb181, 0xb182, 0xb183, 0xb184, 0xb185, 0xb186, - 0xb187, 0xb188, 0x003f, 0xb189, 0xb18a, 0xb18b, 0xb18c, 0xb18d, - 0xb18e, 0xb18f, 0xb190, 0xb191, 0xb192, 0xb193, 0x003f, 0x003f, - 0x003f, 0xb194, 0xb195, 0xb196, 0xb197, 0xb198, 0xb199, 0xb19a, - 0xb19b, 0xb19c, 0xb19d, 0xb19e, 0xb19f, 0xb1a0, 0xb1a1, 0xb1a2, - 0xb1a3, 0xb1a4, 0x003f, 0xb1a5, 0xb1a6, 0xb1a7, 0xb1a8, 0xb1a9, - 0xb1aa, 0xb1ab, 0xb1ac, 0xb1ad, 0xb1ae, 0xb1af, 0x003f, 0x003f, - 0x003f, 0xb1b0, 0xb1b1, 0xb1b2, 0xb1b3, 0xb1b4, 0xb1b5, 0xb1b6, - 0xb1b7, 0xb1b8, 0xb1b9, 0xb1ba, 0xb1bb, 0xb1bc, 0xb1bd, 0xb1be, - 0xb1bf, 0xb1c0, 0x003f, 0xb1c1, 0xb1c2, 0xb1c3, 0xb1c4, 0xb1c5, - 0xb1c6, 0xb1c7, 0xb1c8, 0xb1c9, 0xb1ca, 0xb1cb, 0x003f, 0x003f, - /* lead byte 92 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb1cc, 0xb1cd, 0xb1ce, 0xb1cf, 0xb1d0, 0xb1d1, 0xb1d2, - 0xb1d3, 0xb1d4, 0xb1d5, 0xb1d6, 0xb1d7, 0xb1d8, 0xb1d9, 0xb1da, - 0xb1db, 0xb1dc, 0x003f, 0xb1dd, 0xb1de, 0xb1df, 0xb1e0, 0xb1e1, - 0xb1e2, 0xb1e3, 0xb1e4, 0xb1e5, 0xb1e6, 0xb1e7, 0x003f, 0x003f, - 0x003f, 0xb1e8, 0xb1e9, 0xb1ea, 0xb1eb, 0xb1ec, 0xb1ed, 0xb1ee, - 0xb1ef, 0xb1f0, 0xb1f1, 0xb1f2, 0xb1f3, 0xb1f4, 0xb1f5, 0xb1f6, - 0xb1f7, 0xb1f8, 0x003f, 0xb1f9, 0xb1fa, 0xb1fb, 0xb1fc, 0xb1fd, - 0xb1fe, 0xb1ff, 0xb200, 0xb201, 0xb202, 0xb203, 0x003f, 0x003f, - 0x003f, 0xb204, 0xb205, 0xb206, 0xb207, 0xb208, 0xb209, 0xb20a, - 0xb20b, 0xb20c, 0xb20d, 0xb20e, 0xb20f, 0xb210, 0xb211, 0xb212, - 0xb213, 0xb214, 0x003f, 0xb215, 0xb216, 0xb217, 0xb218, 0xb219, - 0xb21a, 0xb21b, 0xb21c, 0xb21d, 0xb21e, 0xb21f, 0x003f, 0x003f, - 0x003f, 0xb220, 0xb221, 0xb222, 0xb223, 0xb224, 0xb225, 0xb226, - 0xb227, 0xb228, 0xb229, 0xb22a, 0xb22b, 0xb22c, 0xb22d, 0xb22e, - 0xb22f, 0xb230, 0x003f, 0xb231, 0xb232, 0xb233, 0xb234, 0xb235, - 0xb236, 0xb237, 0xb238, 0xb239, 0xb23a, 0xb23b, 0x003f, 0x003f, - 0x003f, 0xb23c, 0xb23d, 0xb23e, 0xb23f, 0xb240, 0xb241, 0xb242, - 0xb243, 0xb244, 0xb245, 0xb246, 0xb247, 0xb248, 0xb249, 0xb24a, - 0xb24b, 0xb24c, 0x003f, 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, - 0xb252, 0xb253, 0xb254, 0xb255, 0xb256, 0xb257, 0x003f, 0x003f, - 0x003f, 0xb258, 0xb259, 0xb25a, 0xb25b, 0xb25c, 0xb25d, 0xb25e, - 0xb25f, 0xb260, 0xb261, 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, - 0xb267, 0xb268, 0x003f, 0xb269, 0xb26a, 0xb26b, 0xb26c, 0xb26d, - 0xb26e, 0xb26f, 0xb270, 0xb271, 0xb272, 0xb273, 0x003f, 0x003f, - /* lead byte 93 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb274, 0xb275, 0xb276, 0xb277, 0xb278, 0xb279, 0xb27a, - 0xb27b, 0xb27c, 0xb27d, 0xb27e, 0xb27f, 0xb280, 0xb281, 0xb282, - 0xb283, 0xb284, 0x003f, 0xb285, 0xb286, 0xb287, 0xb288, 0xb289, - 0xb28a, 0xb28b, 0xb28c, 0xb28d, 0xb28e, 0xb28f, 0x003f, 0x003f, - 0x003f, 0xb290, 0xb291, 0xb292, 0xb293, 0xb294, 0xb295, 0xb296, - 0xb297, 0xb298, 0xb299, 0xb29a, 0xb29b, 0xb29c, 0xb29d, 0xb29e, - 0xb29f, 0xb2a0, 0x003f, 0xb2a1, 0xb2a2, 0xb2a3, 0xb2a4, 0xb2a5, - 0xb2a6, 0xb2a7, 0xb2a8, 0xb2a9, 0xb2aa, 0xb2ab, 0x003f, 0x003f, - 0x003f, 0xb2ac, 0xb2ad, 0xb2ae, 0xb2af, 0xb2b0, 0xb2b1, 0xb2b2, - 0xb2b3, 0xb2b4, 0xb2b5, 0xb2b6, 0xb2b7, 0xb2b8, 0xb2b9, 0xb2ba, - 0xb2bb, 0xb2bc, 0x003f, 0xb2bd, 0xb2be, 0xb2bf, 0xb2c0, 0xb2c1, - 0xb2c2, 0xb2c3, 0xb2c4, 0xb2c5, 0xb2c6, 0xb2c7, 0x003f, 0x003f, - 0x003f, 0xb2c8, 0xb2c9, 0xb2ca, 0xb2cb, 0xb2cc, 0xb2cd, 0xb2ce, - 0xb2cf, 0xb2d0, 0xb2d1, 0xb2d2, 0xb2d3, 0xb2d4, 0xb2d5, 0xb2d6, - 0xb2d7, 0xb2d8, 0x003f, 0xb2d9, 0xb2da, 0xb2db, 0xb2dc, 0xb2dd, - 0xb2de, 0xb2df, 0xb2e0, 0xb2e1, 0xb2e2, 0xb2e3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte 94 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3137, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb2e4, 0xb2e5, 0xb2e6, 0xb2e7, 0xb2e8, 0xb2e9, 0xb2ea, - 0xb2eb, 0xb2ec, 0xb2ed, 0xb2ee, 0xb2ef, 0xb2f0, 0xb2f1, 0xb2f2, - 0xb2f3, 0xb2f4, 0x003f, 0xb2f5, 0xb2f6, 0xb2f7, 0xb2f8, 0xb2f9, - 0xb2fa, 0xb2fb, 0xb2fc, 0xb2fd, 0xb2fe, 0xb2ff, 0x003f, 0x003f, - 0x003f, 0xb300, 0xb301, 0xb302, 0xb303, 0xb304, 0xb305, 0xb306, - 0xb307, 0xb308, 0xb309, 0xb30a, 0xb30b, 0xb30c, 0xb30d, 0xb30e, - 0xb30f, 0xb310, 0x003f, 0xb311, 0xb312, 0xb313, 0xb314, 0xb315, - 0xb316, 0xb317, 0xb318, 0xb319, 0xb31a, 0xb31b, 0x003f, 0x003f, - 0x003f, 0xb31c, 0xb31d, 0xb31e, 0xb31f, 0xb320, 0xb321, 0xb322, - 0xb323, 0xb324, 0xb325, 0xb326, 0xb327, 0xb328, 0xb329, 0xb32a, - 0xb32b, 0xb32c, 0x003f, 0xb32d, 0xb32e, 0xb32f, 0xb330, 0xb331, - 0xb332, 0xb333, 0xb334, 0xb335, 0xb336, 0xb337, 0x003f, 0x003f, - 0x003f, 0xb338, 0xb339, 0xb33a, 0xb33b, 0xb33c, 0xb33d, 0xb33e, - 0xb33f, 0xb340, 0xb341, 0xb342, 0xb343, 0xb344, 0xb345, 0xb346, - 0xb347, 0xb348, 0x003f, 0xb349, 0xb34a, 0xb34b, 0xb34c, 0xb34d, - 0xb34e, 0xb34f, 0xb350, 0xb351, 0xb352, 0xb353, 0x003f, 0x003f, - 0x003f, 0xb354, 0xb355, 0xb356, 0xb357, 0xb358, 0xb359, 0xb35a, - 0xb35b, 0xb35c, 0xb35d, 0xb35e, 0xb35f, 0xb360, 0xb361, 0xb362, - 0xb363, 0xb364, 0x003f, 0xb365, 0xb366, 0xb367, 0xb368, 0xb369, - 0xb36a, 0xb36b, 0xb36c, 0xb36d, 0xb36e, 0xb36f, 0x003f, 0x003f, - /* lead byte 95 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb370, 0xb371, 0xb372, 0xb373, 0xb374, 0xb375, 0xb376, - 0xb377, 0xb378, 0xb379, 0xb37a, 0xb37b, 0xb37c, 0xb37d, 0xb37e, - 0xb37f, 0xb380, 0x003f, 0xb381, 0xb382, 0xb383, 0xb384, 0xb385, - 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a, 0xb38b, 0x003f, 0x003f, - 0x003f, 0xb38c, 0xb38d, 0xb38e, 0xb38f, 0xb390, 0xb391, 0xb392, - 0xb393, 0xb394, 0xb395, 0xb396, 0xb397, 0xb398, 0xb399, 0xb39a, - 0xb39b, 0xb39c, 0x003f, 0xb39d, 0xb39e, 0xb39f, 0xb3a0, 0xb3a1, - 0xb3a2, 0xb3a3, 0xb3a4, 0xb3a5, 0xb3a6, 0xb3a7, 0x003f, 0x003f, - 0x003f, 0xb3a8, 0xb3a9, 0xb3aa, 0xb3ab, 0xb3ac, 0xb3ad, 0xb3ae, - 0xb3af, 0xb3b0, 0xb3b1, 0xb3b2, 0xb3b3, 0xb3b4, 0xb3b5, 0xb3b6, - 0xb3b7, 0xb3b8, 0x003f, 0xb3b9, 0xb3ba, 0xb3bb, 0xb3bc, 0xb3bd, - 0xb3be, 0xb3bf, 0xb3c0, 0xb3c1, 0xb3c2, 0xb3c3, 0x003f, 0x003f, - 0x003f, 0xb3c4, 0xb3c5, 0xb3c6, 0xb3c7, 0xb3c8, 0xb3c9, 0xb3ca, - 0xb3cb, 0xb3cc, 0xb3cd, 0xb3ce, 0xb3cf, 0xb3d0, 0xb3d1, 0xb3d2, - 0xb3d3, 0xb3d4, 0x003f, 0xb3d5, 0xb3d6, 0xb3d7, 0xb3d8, 0xb3d9, - 0xb3da, 0xb3db, 0xb3dc, 0xb3dd, 0xb3de, 0xb3df, 0x003f, 0x003f, - 0x003f, 0xb3e0, 0xb3e1, 0xb3e2, 0xb3e3, 0xb3e4, 0xb3e5, 0xb3e6, - 0xb3e7, 0xb3e8, 0xb3e9, 0xb3ea, 0xb3eb, 0xb3ec, 0xb3ed, 0xb3ee, - 0xb3ef, 0xb3f0, 0x003f, 0xb3f1, 0xb3f2, 0xb3f3, 0xb3f4, 0xb3f5, - 0xb3f6, 0xb3f7, 0xb3f8, 0xb3f9, 0xb3fa, 0xb3fb, 0x003f, 0x003f, - 0x003f, 0xb3fc, 0xb3fd, 0xb3fe, 0xb3ff, 0xb400, 0xb401, 0xb402, - 0xb403, 0xb404, 0xb405, 0xb406, 0xb407, 0xb408, 0xb409, 0xb40a, - 0xb40b, 0xb40c, 0x003f, 0xb40d, 0xb40e, 0xb40f, 0xb410, 0xb411, - 0xb412, 0xb413, 0xb414, 0xb415, 0xb416, 0xb417, 0x003f, 0x003f, - /* lead byte 96 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb418, 0xb419, 0xb41a, 0xb41b, 0xb41c, 0xb41d, 0xb41e, - 0xb41f, 0xb420, 0xb421, 0xb422, 0xb423, 0xb424, 0xb425, 0xb426, - 0xb427, 0xb428, 0x003f, 0xb429, 0xb42a, 0xb42b, 0xb42c, 0xb42d, - 0xb42e, 0xb42f, 0xb430, 0xb431, 0xb432, 0xb433, 0x003f, 0x003f, - 0x003f, 0xb434, 0xb435, 0xb436, 0xb437, 0xb438, 0xb439, 0xb43a, - 0xb43b, 0xb43c, 0xb43d, 0xb43e, 0xb43f, 0xb440, 0xb441, 0xb442, - 0xb443, 0xb444, 0x003f, 0xb445, 0xb446, 0xb447, 0xb448, 0xb449, - 0xb44a, 0xb44b, 0xb44c, 0xb44d, 0xb44e, 0xb44f, 0x003f, 0x003f, - 0x003f, 0xb450, 0xb451, 0xb452, 0xb453, 0xb454, 0xb455, 0xb456, - 0xb457, 0xb458, 0xb459, 0xb45a, 0xb45b, 0xb45c, 0xb45d, 0xb45e, - 0xb45f, 0xb460, 0x003f, 0xb461, 0xb462, 0xb463, 0xb464, 0xb465, - 0xb466, 0xb467, 0xb468, 0xb469, 0xb46a, 0xb46b, 0x003f, 0x003f, - 0x003f, 0xb46c, 0xb46d, 0xb46e, 0xb46f, 0xb470, 0xb471, 0xb472, - 0xb473, 0xb474, 0xb475, 0xb476, 0xb477, 0xb478, 0xb479, 0xb47a, - 0xb47b, 0xb47c, 0x003f, 0xb47d, 0xb47e, 0xb47f, 0xb480, 0xb481, - 0xb482, 0xb483, 0xb484, 0xb485, 0xb486, 0xb487, 0x003f, 0x003f, - 0x003f, 0xb488, 0xb489, 0xb48a, 0xb48b, 0xb48c, 0xb48d, 0xb48e, - 0xb48f, 0xb490, 0xb491, 0xb492, 0xb493, 0xb494, 0xb495, 0xb496, - 0xb497, 0xb498, 0x003f, 0xb499, 0xb49a, 0xb49b, 0xb49c, 0xb49d, - 0xb49e, 0xb49f, 0xb4a0, 0xb4a1, 0xb4a2, 0xb4a3, 0x003f, 0x003f, - 0x003f, 0xb4a4, 0xb4a5, 0xb4a6, 0xb4a7, 0xb4a8, 0xb4a9, 0xb4aa, - 0xb4ab, 0xb4ac, 0xb4ad, 0xb4ae, 0xb4af, 0xb4b0, 0xb4b1, 0xb4b2, - 0xb4b3, 0xb4b4, 0x003f, 0xb4b5, 0xb4b6, 0xb4b7, 0xb4b8, 0xb4b9, - 0xb4ba, 0xb4bb, 0xb4bc, 0xb4bd, 0xb4be, 0xb4bf, 0x003f, 0x003f, - /* lead byte 97 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb4c0, 0xb4c1, 0xb4c2, 0xb4c3, 0xb4c4, 0xb4c5, 0xb4c6, - 0xb4c7, 0xb4c8, 0xb4c9, 0xb4ca, 0xb4cb, 0xb4cc, 0xb4cd, 0xb4ce, - 0xb4cf, 0xb4d0, 0x003f, 0xb4d1, 0xb4d2, 0xb4d3, 0xb4d4, 0xb4d5, - 0xb4d6, 0xb4d7, 0xb4d8, 0xb4d9, 0xb4da, 0xb4db, 0x003f, 0x003f, - 0x003f, 0xb4dc, 0xb4dd, 0xb4de, 0xb4df, 0xb4e0, 0xb4e1, 0xb4e2, - 0xb4e3, 0xb4e4, 0xb4e5, 0xb4e6, 0xb4e7, 0xb4e8, 0xb4e9, 0xb4ea, - 0xb4eb, 0xb4ec, 0x003f, 0xb4ed, 0xb4ee, 0xb4ef, 0xb4f0, 0xb4f1, - 0xb4f2, 0xb4f3, 0xb4f4, 0xb4f5, 0xb4f6, 0xb4f7, 0x003f, 0x003f, - 0x003f, 0xb4f8, 0xb4f9, 0xb4fa, 0xb4fb, 0xb4fc, 0xb4fd, 0xb4fe, - 0xb4ff, 0xb500, 0xb501, 0xb502, 0xb503, 0xb504, 0xb505, 0xb506, - 0xb507, 0xb508, 0x003f, 0xb509, 0xb50a, 0xb50b, 0xb50c, 0xb50d, - 0xb50e, 0xb50f, 0xb510, 0xb511, 0xb512, 0xb513, 0x003f, 0x003f, - 0x003f, 0xb514, 0xb515, 0xb516, 0xb517, 0xb518, 0xb519, 0xb51a, - 0xb51b, 0xb51c, 0xb51d, 0xb51e, 0xb51f, 0xb520, 0xb521, 0xb522, - 0xb523, 0xb524, 0x003f, 0xb525, 0xb526, 0xb527, 0xb528, 0xb529, - 0xb52a, 0xb52b, 0xb52c, 0xb52d, 0xb52e, 0xb52f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte 98 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3138, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb530, 0xb531, 0xb532, 0xb533, 0xb534, 0xb535, 0xb536, - 0xb537, 0xb538, 0xb539, 0xb53a, 0xb53b, 0xb53c, 0xb53d, 0xb53e, - 0xb53f, 0xb540, 0x003f, 0xb541, 0xb542, 0xb543, 0xb544, 0xb545, - 0xb546, 0xb547, 0xb548, 0xb549, 0xb54a, 0xb54b, 0x003f, 0x003f, - 0x003f, 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xb550, 0xb551, 0xb552, - 0xb553, 0xb554, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559, 0xb55a, - 0xb55b, 0xb55c, 0x003f, 0xb55d, 0xb55e, 0xb55f, 0xb560, 0xb561, - 0xb562, 0xb563, 0xb564, 0xb565, 0xb566, 0xb567, 0x003f, 0x003f, - 0x003f, 0xb568, 0xb569, 0xb56a, 0xb56b, 0xb56c, 0xb56d, 0xb56e, - 0xb56f, 0xb570, 0xb571, 0xb572, 0xb573, 0xb574, 0xb575, 0xb576, - 0xb577, 0xb578, 0x003f, 0xb579, 0xb57a, 0xb57b, 0xb57c, 0xb57d, - 0xb57e, 0xb57f, 0xb580, 0xb581, 0xb582, 0xb583, 0x003f, 0x003f, - 0x003f, 0xb584, 0xb585, 0xb586, 0xb587, 0xb588, 0xb589, 0xb58a, - 0xb58b, 0xb58c, 0xb58d, 0xb58e, 0xb58f, 0xb590, 0xb591, 0xb592, - 0xb593, 0xb594, 0x003f, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, - 0xb59a, 0xb59b, 0xb59c, 0xb59d, 0xb59e, 0xb59f, 0x003f, 0x003f, - 0x003f, 0xb5a0, 0xb5a1, 0xb5a2, 0xb5a3, 0xb5a4, 0xb5a5, 0xb5a6, - 0xb5a7, 0xb5a8, 0xb5a9, 0xb5aa, 0xb5ab, 0xb5ac, 0xb5ad, 0xb5ae, - 0xb5af, 0xb5b0, 0x003f, 0xb5b1, 0xb5b2, 0xb5b3, 0xb5b4, 0xb5b5, - 0xb5b6, 0xb5b7, 0xb5b8, 0xb5b9, 0xb5ba, 0xb5bb, 0x003f, 0x003f, - /* lead byte 99 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb5bc, 0xb5bd, 0xb5be, 0xb5bf, 0xb5c0, 0xb5c1, 0xb5c2, - 0xb5c3, 0xb5c4, 0xb5c5, 0xb5c6, 0xb5c7, 0xb5c8, 0xb5c9, 0xb5ca, - 0xb5cb, 0xb5cc, 0x003f, 0xb5cd, 0xb5ce, 0xb5cf, 0xb5d0, 0xb5d1, - 0xb5d2, 0xb5d3, 0xb5d4, 0xb5d5, 0xb5d6, 0xb5d7, 0x003f, 0x003f, - 0x003f, 0xb5d8, 0xb5d9, 0xb5da, 0xb5db, 0xb5dc, 0xb5dd, 0xb5de, - 0xb5df, 0xb5e0, 0xb5e1, 0xb5e2, 0xb5e3, 0xb5e4, 0xb5e5, 0xb5e6, - 0xb5e7, 0xb5e8, 0x003f, 0xb5e9, 0xb5ea, 0xb5eb, 0xb5ec, 0xb5ed, - 0xb5ee, 0xb5ef, 0xb5f0, 0xb5f1, 0xb5f2, 0xb5f3, 0x003f, 0x003f, - 0x003f, 0xb5f4, 0xb5f5, 0xb5f6, 0xb5f7, 0xb5f8, 0xb5f9, 0xb5fa, - 0xb5fb, 0xb5fc, 0xb5fd, 0xb5fe, 0xb5ff, 0xb600, 0xb601, 0xb602, - 0xb603, 0xb604, 0x003f, 0xb605, 0xb606, 0xb607, 0xb608, 0xb609, - 0xb60a, 0xb60b, 0xb60c, 0xb60d, 0xb60e, 0xb60f, 0x003f, 0x003f, - 0x003f, 0xb610, 0xb611, 0xb612, 0xb613, 0xb614, 0xb615, 0xb616, - 0xb617, 0xb618, 0xb619, 0xb61a, 0xb61b, 0xb61c, 0xb61d, 0xb61e, - 0xb61f, 0xb620, 0x003f, 0xb621, 0xb622, 0xb623, 0xb624, 0xb625, - 0xb626, 0xb627, 0xb628, 0xb629, 0xb62a, 0xb62b, 0x003f, 0x003f, - 0x003f, 0xb62c, 0xb62d, 0xb62e, 0xb62f, 0xb630, 0xb631, 0xb632, - 0xb633, 0xb634, 0xb635, 0xb636, 0xb637, 0xb638, 0xb639, 0xb63a, - 0xb63b, 0xb63c, 0x003f, 0xb63d, 0xb63e, 0xb63f, 0xb640, 0xb641, - 0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xb647, 0x003f, 0x003f, - 0x003f, 0xb648, 0xb649, 0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, - 0xb64f, 0xb650, 0xb651, 0xb652, 0xb653, 0xb654, 0xb655, 0xb656, - 0xb657, 0xb658, 0x003f, 0xb659, 0xb65a, 0xb65b, 0xb65c, 0xb65d, - 0xb65e, 0xb65f, 0xb660, 0xb661, 0xb662, 0xb663, 0x003f, 0x003f, - /* lead byte 9a */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb664, 0xb665, 0xb666, 0xb667, 0xb668, 0xb669, 0xb66a, - 0xb66b, 0xb66c, 0xb66d, 0xb66e, 0xb66f, 0xb670, 0xb671, 0xb672, - 0xb673, 0xb674, 0x003f, 0xb675, 0xb676, 0xb677, 0xb678, 0xb679, - 0xb67a, 0xb67b, 0xb67c, 0xb67d, 0xb67e, 0xb67f, 0x003f, 0x003f, - 0x003f, 0xb680, 0xb681, 0xb682, 0xb683, 0xb684, 0xb685, 0xb686, - 0xb687, 0xb688, 0xb689, 0xb68a, 0xb68b, 0xb68c, 0xb68d, 0xb68e, - 0xb68f, 0xb690, 0x003f, 0xb691, 0xb692, 0xb693, 0xb694, 0xb695, - 0xb696, 0xb697, 0xb698, 0xb699, 0xb69a, 0xb69b, 0x003f, 0x003f, - 0x003f, 0xb69c, 0xb69d, 0xb69e, 0xb69f, 0xb6a0, 0xb6a1, 0xb6a2, - 0xb6a3, 0xb6a4, 0xb6a5, 0xb6a6, 0xb6a7, 0xb6a8, 0xb6a9, 0xb6aa, - 0xb6ab, 0xb6ac, 0x003f, 0xb6ad, 0xb6ae, 0xb6af, 0xb6b0, 0xb6b1, - 0xb6b2, 0xb6b3, 0xb6b4, 0xb6b5, 0xb6b6, 0xb6b7, 0x003f, 0x003f, - 0x003f, 0xb6b8, 0xb6b9, 0xb6ba, 0xb6bb, 0xb6bc, 0xb6bd, 0xb6be, - 0xb6bf, 0xb6c0, 0xb6c1, 0xb6c2, 0xb6c3, 0xb6c4, 0xb6c5, 0xb6c6, - 0xb6c7, 0xb6c8, 0x003f, 0xb6c9, 0xb6ca, 0xb6cb, 0xb6cc, 0xb6cd, - 0xb6ce, 0xb6cf, 0xb6d0, 0xb6d1, 0xb6d2, 0xb6d3, 0x003f, 0x003f, - 0x003f, 0xb6d4, 0xb6d5, 0xb6d6, 0xb6d7, 0xb6d8, 0xb6d9, 0xb6da, - 0xb6db, 0xb6dc, 0xb6dd, 0xb6de, 0xb6df, 0xb6e0, 0xb6e1, 0xb6e2, - 0xb6e3, 0xb6e4, 0x003f, 0xb6e5, 0xb6e6, 0xb6e7, 0xb6e8, 0xb6e9, - 0xb6ea, 0xb6eb, 0xb6ec, 0xb6ed, 0xb6ee, 0xb6ef, 0x003f, 0x003f, - 0x003f, 0xb6f0, 0xb6f1, 0xb6f2, 0xb6f3, 0xb6f4, 0xb6f5, 0xb6f6, - 0xb6f7, 0xb6f8, 0xb6f9, 0xb6fa, 0xb6fb, 0xb6fc, 0xb6fd, 0xb6fe, - 0xb6ff, 0xb700, 0x003f, 0xb701, 0xb702, 0xb703, 0xb704, 0xb705, - 0xb706, 0xb707, 0xb708, 0xb709, 0xb70a, 0xb70b, 0x003f, 0x003f, - /* lead byte 9b */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb70c, 0xb70d, 0xb70e, 0xb70f, 0xb710, 0xb711, 0xb712, - 0xb713, 0xb714, 0xb715, 0xb716, 0xb717, 0xb718, 0xb719, 0xb71a, - 0xb71b, 0xb71c, 0x003f, 0xb71d, 0xb71e, 0xb71f, 0xb720, 0xb721, - 0xb722, 0xb723, 0xb724, 0xb725, 0xb726, 0xb727, 0x003f, 0x003f, - 0x003f, 0xb728, 0xb729, 0xb72a, 0xb72b, 0xb72c, 0xb72d, 0xb72e, - 0xb72f, 0xb730, 0xb731, 0xb732, 0xb733, 0xb734, 0xb735, 0xb736, - 0xb737, 0xb738, 0x003f, 0xb739, 0xb73a, 0xb73b, 0xb73c, 0xb73d, - 0xb73e, 0xb73f, 0xb740, 0xb741, 0xb742, 0xb743, 0x003f, 0x003f, - 0x003f, 0xb744, 0xb745, 0xb746, 0xb747, 0xb748, 0xb749, 0xb74a, - 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xb74f, 0xb750, 0xb751, 0xb752, - 0xb753, 0xb754, 0x003f, 0xb755, 0xb756, 0xb757, 0xb758, 0xb759, - 0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb75e, 0xb75f, 0x003f, 0x003f, - 0x003f, 0xb760, 0xb761, 0xb762, 0xb763, 0xb764, 0xb765, 0xb766, - 0xb767, 0xb768, 0xb769, 0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xb76e, - 0xb76f, 0xb770, 0x003f, 0xb771, 0xb772, 0xb773, 0xb774, 0xb775, - 0xb776, 0xb777, 0xb778, 0xb779, 0xb77a, 0xb77b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte 9c */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3139, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb77c, 0xb77d, 0xb77e, 0xb77f, 0xb780, 0xb781, 0xb782, - 0xb783, 0xb784, 0xb785, 0xb786, 0xb787, 0xb788, 0xb789, 0xb78a, - 0xb78b, 0xb78c, 0x003f, 0xb78d, 0xb78e, 0xb78f, 0xb790, 0xb791, - 0xb792, 0xb793, 0xb794, 0xb795, 0xb796, 0xb797, 0x003f, 0x003f, - 0x003f, 0xb798, 0xb799, 0xb79a, 0xb79b, 0xb79c, 0xb79d, 0xb79e, - 0xb79f, 0xb7a0, 0xb7a1, 0xb7a2, 0xb7a3, 0xb7a4, 0xb7a5, 0xb7a6, - 0xb7a7, 0xb7a8, 0x003f, 0xb7a9, 0xb7aa, 0xb7ab, 0xb7ac, 0xb7ad, - 0xb7ae, 0xb7af, 0xb7b0, 0xb7b1, 0xb7b2, 0xb7b3, 0x003f, 0x003f, - 0x003f, 0xb7b4, 0xb7b5, 0xb7b6, 0xb7b7, 0xb7b8, 0xb7b9, 0xb7ba, - 0xb7bb, 0xb7bc, 0xb7bd, 0xb7be, 0xb7bf, 0xb7c0, 0xb7c1, 0xb7c2, - 0xb7c3, 0xb7c4, 0x003f, 0xb7c5, 0xb7c6, 0xb7c7, 0xb7c8, 0xb7c9, - 0xb7ca, 0xb7cb, 0xb7cc, 0xb7cd, 0xb7ce, 0xb7cf, 0x003f, 0x003f, - 0x003f, 0xb7d0, 0xb7d1, 0xb7d2, 0xb7d3, 0xb7d4, 0xb7d5, 0xb7d6, - 0xb7d7, 0xb7d8, 0xb7d9, 0xb7da, 0xb7db, 0xb7dc, 0xb7dd, 0xb7de, - 0xb7df, 0xb7e0, 0x003f, 0xb7e1, 0xb7e2, 0xb7e3, 0xb7e4, 0xb7e5, - 0xb7e6, 0xb7e7, 0xb7e8, 0xb7e9, 0xb7ea, 0xb7eb, 0x003f, 0x003f, - 0x003f, 0xb7ec, 0xb7ed, 0xb7ee, 0xb7ef, 0xb7f0, 0xb7f1, 0xb7f2, - 0xb7f3, 0xb7f4, 0xb7f5, 0xb7f6, 0xb7f7, 0xb7f8, 0xb7f9, 0xb7fa, - 0xb7fb, 0xb7fc, 0x003f, 0xb7fd, 0xb7fe, 0xb7ff, 0xb800, 0xb801, - 0xb802, 0xb803, 0xb804, 0xb805, 0xb806, 0xb807, 0x003f, 0x003f, - /* lead byte 9d */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb808, 0xb809, 0xb80a, 0xb80b, 0xb80c, 0xb80d, 0xb80e, - 0xb80f, 0xb810, 0xb811, 0xb812, 0xb813, 0xb814, 0xb815, 0xb816, - 0xb817, 0xb818, 0x003f, 0xb819, 0xb81a, 0xb81b, 0xb81c, 0xb81d, - 0xb81e, 0xb81f, 0xb820, 0xb821, 0xb822, 0xb823, 0x003f, 0x003f, - 0x003f, 0xb824, 0xb825, 0xb826, 0xb827, 0xb828, 0xb829, 0xb82a, - 0xb82b, 0xb82c, 0xb82d, 0xb82e, 0xb82f, 0xb830, 0xb831, 0xb832, - 0xb833, 0xb834, 0x003f, 0xb835, 0xb836, 0xb837, 0xb838, 0xb839, - 0xb83a, 0xb83b, 0xb83c, 0xb83d, 0xb83e, 0xb83f, 0x003f, 0x003f, - 0x003f, 0xb840, 0xb841, 0xb842, 0xb843, 0xb844, 0xb845, 0xb846, - 0xb847, 0xb848, 0xb849, 0xb84a, 0xb84b, 0xb84c, 0xb84d, 0xb84e, - 0xb84f, 0xb850, 0x003f, 0xb851, 0xb852, 0xb853, 0xb854, 0xb855, - 0xb856, 0xb857, 0xb858, 0xb859, 0xb85a, 0xb85b, 0x003f, 0x003f, - 0x003f, 0xb85c, 0xb85d, 0xb85e, 0xb85f, 0xb860, 0xb861, 0xb862, - 0xb863, 0xb864, 0xb865, 0xb866, 0xb867, 0xb868, 0xb869, 0xb86a, - 0xb86b, 0xb86c, 0x003f, 0xb86d, 0xb86e, 0xb86f, 0xb870, 0xb871, - 0xb872, 0xb873, 0xb874, 0xb875, 0xb876, 0xb877, 0x003f, 0x003f, - 0x003f, 0xb878, 0xb879, 0xb87a, 0xb87b, 0xb87c, 0xb87d, 0xb87e, - 0xb87f, 0xb880, 0xb881, 0xb882, 0xb883, 0xb884, 0xb885, 0xb886, - 0xb887, 0xb888, 0x003f, 0xb889, 0xb88a, 0xb88b, 0xb88c, 0xb88d, - 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb892, 0xb893, 0x003f, 0x003f, - 0x003f, 0xb894, 0xb895, 0xb896, 0xb897, 0xb898, 0xb899, 0xb89a, - 0xb89b, 0xb89c, 0xb89d, 0xb89e, 0xb89f, 0xb8a0, 0xb8a1, 0xb8a2, - 0xb8a3, 0xb8a4, 0x003f, 0xb8a5, 0xb8a6, 0xb8a7, 0xb8a8, 0xb8a9, - 0xb8aa, 0xb8ab, 0xb8ac, 0xb8ad, 0xb8ae, 0xb8af, 0x003f, 0x003f, - /* lead byte 9e */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb8b0, 0xb8b1, 0xb8b2, 0xb8b3, 0xb8b4, 0xb8b5, 0xb8b6, - 0xb8b7, 0xb8b8, 0xb8b9, 0xb8ba, 0xb8bb, 0xb8bc, 0xb8bd, 0xb8be, - 0xb8bf, 0xb8c0, 0x003f, 0xb8c1, 0xb8c2, 0xb8c3, 0xb8c4, 0xb8c5, - 0xb8c6, 0xb8c7, 0xb8c8, 0xb8c9, 0xb8ca, 0xb8cb, 0x003f, 0x003f, - 0x003f, 0xb8cc, 0xb8cd, 0xb8ce, 0xb8cf, 0xb8d0, 0xb8d1, 0xb8d2, - 0xb8d3, 0xb8d4, 0xb8d5, 0xb8d6, 0xb8d7, 0xb8d8, 0xb8d9, 0xb8da, - 0xb8db, 0xb8dc, 0x003f, 0xb8dd, 0xb8de, 0xb8df, 0xb8e0, 0xb8e1, - 0xb8e2, 0xb8e3, 0xb8e4, 0xb8e5, 0xb8e6, 0xb8e7, 0x003f, 0x003f, - 0x003f, 0xb8e8, 0xb8e9, 0xb8ea, 0xb8eb, 0xb8ec, 0xb8ed, 0xb8ee, - 0xb8ef, 0xb8f0, 0xb8f1, 0xb8f2, 0xb8f3, 0xb8f4, 0xb8f5, 0xb8f6, - 0xb8f7, 0xb8f8, 0x003f, 0xb8f9, 0xb8fa, 0xb8fb, 0xb8fc, 0xb8fd, - 0xb8fe, 0xb8ff, 0xb900, 0xb901, 0xb902, 0xb903, 0x003f, 0x003f, - 0x003f, 0xb904, 0xb905, 0xb906, 0xb907, 0xb908, 0xb909, 0xb90a, - 0xb90b, 0xb90c, 0xb90d, 0xb90e, 0xb90f, 0xb910, 0xb911, 0xb912, - 0xb913, 0xb914, 0x003f, 0xb915, 0xb916, 0xb917, 0xb918, 0xb919, - 0xb91a, 0xb91b, 0xb91c, 0xb91d, 0xb91e, 0xb91f, 0x003f, 0x003f, - 0x003f, 0xb920, 0xb921, 0xb922, 0xb923, 0xb924, 0xb925, 0xb926, - 0xb927, 0xb928, 0xb929, 0xb92a, 0xb92b, 0xb92c, 0xb92d, 0xb92e, - 0xb92f, 0xb930, 0x003f, 0xb931, 0xb932, 0xb933, 0xb934, 0xb935, - 0xb936, 0xb937, 0xb938, 0xb939, 0xb93a, 0xb93b, 0x003f, 0x003f, - 0x003f, 0xb93c, 0xb93d, 0xb93e, 0xb93f, 0xb940, 0xb941, 0xb942, - 0xb943, 0xb944, 0xb945, 0xb946, 0xb947, 0xb948, 0xb949, 0xb94a, - 0xb94b, 0xb94c, 0x003f, 0xb94d, 0xb94e, 0xb94f, 0xb950, 0xb951, - 0xb952, 0xb953, 0xb954, 0xb955, 0xb956, 0xb957, 0x003f, 0x003f, - /* lead byte 9f */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb958, 0xb959, 0xb95a, 0xb95b, 0xb95c, 0xb95d, 0xb95e, - 0xb95f, 0xb960, 0xb961, 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, - 0xb967, 0xb968, 0x003f, 0xb969, 0xb96a, 0xb96b, 0xb96c, 0xb96d, - 0xb96e, 0xb96f, 0xb970, 0xb971, 0xb972, 0xb973, 0x003f, 0x003f, - 0x003f, 0xb974, 0xb975, 0xb976, 0xb977, 0xb978, 0xb979, 0xb97a, - 0xb97b, 0xb97c, 0xb97d, 0xb97e, 0xb97f, 0xb980, 0xb981, 0xb982, - 0xb983, 0xb984, 0x003f, 0xb985, 0xb986, 0xb987, 0xb988, 0xb989, - 0xb98a, 0xb98b, 0xb98c, 0xb98d, 0xb98e, 0xb98f, 0x003f, 0x003f, - 0x003f, 0xb990, 0xb991, 0xb992, 0xb993, 0xb994, 0xb995, 0xb996, - 0xb997, 0xb998, 0xb999, 0xb99a, 0xb99b, 0xb99c, 0xb99d, 0xb99e, - 0xb99f, 0xb9a0, 0x003f, 0xb9a1, 0xb9a2, 0xb9a3, 0xb9a4, 0xb9a5, - 0xb9a6, 0xb9a7, 0xb9a8, 0xb9a9, 0xb9aa, 0xb9ab, 0x003f, 0x003f, - 0x003f, 0xb9ac, 0xb9ad, 0xb9ae, 0xb9af, 0xb9b0, 0xb9b1, 0xb9b2, - 0xb9b3, 0xb9b4, 0xb9b5, 0xb9b6, 0xb9b7, 0xb9b8, 0xb9b9, 0xb9ba, - 0xb9bb, 0xb9bc, 0x003f, 0xb9bd, 0xb9be, 0xb9bf, 0xb9c0, 0xb9c1, - 0xb9c2, 0xb9c3, 0xb9c4, 0xb9c5, 0xb9c6, 0xb9c7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3141, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb9c8, 0xb9c9, 0xb9ca, 0xb9cb, 0xb9cc, 0xb9cd, 0xb9ce, - 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d2, 0xb9d3, 0xb9d4, 0xb9d5, 0xb9d6, - 0xb9d7, 0xb9d8, 0x003f, 0xb9d9, 0xb9da, 0xb9db, 0xb9dc, 0xb9dd, - 0xb9de, 0xb9df, 0xb9e0, 0xb9e1, 0xb9e2, 0xb9e3, 0x003f, 0x003f, - 0x003f, 0xb9e4, 0xb9e5, 0xb9e6, 0xb9e7, 0xb9e8, 0xb9e9, 0xb9ea, - 0xb9eb, 0xb9ec, 0xb9ed, 0xb9ee, 0xb9ef, 0xb9f0, 0xb9f1, 0xb9f2, - 0xb9f3, 0xb9f4, 0x003f, 0xb9f5, 0xb9f6, 0xb9f7, 0xb9f8, 0xb9f9, - 0xb9fa, 0xb9fb, 0xb9fc, 0xb9fd, 0xb9fe, 0xb9ff, 0x003f, 0x003f, - 0x003f, 0xba00, 0xba01, 0xba02, 0xba03, 0xba04, 0xba05, 0xba06, - 0xba07, 0xba08, 0xba09, 0xba0a, 0xba0b, 0xba0c, 0xba0d, 0xba0e, - 0xba0f, 0xba10, 0x003f, 0xba11, 0xba12, 0xba13, 0xba14, 0xba15, - 0xba16, 0xba17, 0xba18, 0xba19, 0xba1a, 0xba1b, 0x003f, 0x003f, - 0x003f, 0xba1c, 0xba1d, 0xba1e, 0xba1f, 0xba20, 0xba21, 0xba22, - 0xba23, 0xba24, 0xba25, 0xba26, 0xba27, 0xba28, 0xba29, 0xba2a, - 0xba2b, 0xba2c, 0x003f, 0xba2d, 0xba2e, 0xba2f, 0xba30, 0xba31, - 0xba32, 0xba33, 0xba34, 0xba35, 0xba36, 0xba37, 0x003f, 0x003f, - 0x003f, 0xba38, 0xba39, 0xba3a, 0xba3b, 0xba3c, 0xba3d, 0xba3e, - 0xba3f, 0xba40, 0xba41, 0xba42, 0xba43, 0xba44, 0xba45, 0xba46, - 0xba47, 0xba48, 0x003f, 0xba49, 0xba4a, 0xba4b, 0xba4c, 0xba4d, - 0xba4e, 0xba4f, 0xba50, 0xba51, 0xba52, 0xba53, 0x003f, 0x003f, - /* lead byte a1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xba54, 0xba55, 0xba56, 0xba57, 0xba58, 0xba59, 0xba5a, - 0xba5b, 0xba5c, 0xba5d, 0xba5e, 0xba5f, 0xba60, 0xba61, 0xba62, - 0xba63, 0xba64, 0x003f, 0xba65, 0xba66, 0xba67, 0xba68, 0xba69, - 0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0x003f, 0x003f, - 0x003f, 0xba70, 0xba71, 0xba72, 0xba73, 0xba74, 0xba75, 0xba76, - 0xba77, 0xba78, 0xba79, 0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba7e, - 0xba7f, 0xba80, 0x003f, 0xba81, 0xba82, 0xba83, 0xba84, 0xba85, - 0xba86, 0xba87, 0xba88, 0xba89, 0xba8a, 0xba8b, 0x003f, 0x003f, - 0x003f, 0xba8c, 0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, 0xba92, - 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, 0xba9a, - 0xba9b, 0xba9c, 0x003f, 0xba9d, 0xba9e, 0xba9f, 0xbaa0, 0xbaa1, - 0xbaa2, 0xbaa3, 0xbaa4, 0xbaa5, 0xbaa6, 0xbaa7, 0x003f, 0x003f, - 0x003f, 0xbaa8, 0xbaa9, 0xbaaa, 0xbaab, 0xbaac, 0xbaad, 0xbaae, - 0xbaaf, 0xbab0, 0xbab1, 0xbab2, 0xbab3, 0xbab4, 0xbab5, 0xbab6, - 0xbab7, 0xbab8, 0x003f, 0xbab9, 0xbaba, 0xbabb, 0xbabc, 0xbabd, - 0xbabe, 0xbabf, 0xbac0, 0xbac1, 0xbac2, 0xbac3, 0x003f, 0x003f, - 0x003f, 0xbac4, 0xbac5, 0xbac6, 0xbac7, 0xbac8, 0xbac9, 0xbaca, - 0xbacb, 0xbacc, 0xbacd, 0xbace, 0xbacf, 0xbad0, 0xbad1, 0xbad2, - 0xbad3, 0xbad4, 0x003f, 0xbad5, 0xbad6, 0xbad7, 0xbad8, 0xbad9, - 0xbada, 0xbadb, 0xbadc, 0xbadd, 0xbade, 0xbadf, 0x003f, 0x003f, - 0x003f, 0xbae0, 0xbae1, 0xbae2, 0xbae3, 0xbae4, 0xbae5, 0xbae6, - 0xbae7, 0xbae8, 0xbae9, 0xbaea, 0xbaeb, 0xbaec, 0xbaed, 0xbaee, - 0xbaef, 0xbaf0, 0x003f, 0xbaf1, 0xbaf2, 0xbaf3, 0xbaf4, 0xbaf5, - 0xbaf6, 0xbaf7, 0xbaf8, 0xbaf9, 0xbafa, 0xbafb, 0x003f, 0x003f, - /* lead byte a2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbafc, 0xbafd, 0xbafe, 0xbaff, 0xbb00, 0xbb01, 0xbb02, - 0xbb03, 0xbb04, 0xbb05, 0xbb06, 0xbb07, 0xbb08, 0xbb09, 0xbb0a, - 0xbb0b, 0xbb0c, 0x003f, 0xbb0d, 0xbb0e, 0xbb0f, 0xbb10, 0xbb11, - 0xbb12, 0xbb13, 0xbb14, 0xbb15, 0xbb16, 0xbb17, 0x003f, 0x003f, - 0x003f, 0xbb18, 0xbb19, 0xbb1a, 0xbb1b, 0xbb1c, 0xbb1d, 0xbb1e, - 0xbb1f, 0xbb20, 0xbb21, 0xbb22, 0xbb23, 0xbb24, 0xbb25, 0xbb26, - 0xbb27, 0xbb28, 0x003f, 0xbb29, 0xbb2a, 0xbb2b, 0xbb2c, 0xbb2d, - 0xbb2e, 0xbb2f, 0xbb30, 0xbb31, 0xbb32, 0xbb33, 0x003f, 0x003f, - 0x003f, 0xbb34, 0xbb35, 0xbb36, 0xbb37, 0xbb38, 0xbb39, 0xbb3a, - 0xbb3b, 0xbb3c, 0xbb3d, 0xbb3e, 0xbb3f, 0xbb40, 0xbb41, 0xbb42, - 0xbb43, 0xbb44, 0x003f, 0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49, - 0xbb4a, 0xbb4b, 0xbb4c, 0xbb4d, 0xbb4e, 0xbb4f, 0x003f, 0x003f, - 0x003f, 0xbb50, 0xbb51, 0xbb52, 0xbb53, 0xbb54, 0xbb55, 0xbb56, - 0xbb57, 0xbb58, 0xbb59, 0xbb5a, 0xbb5b, 0xbb5c, 0xbb5d, 0xbb5e, - 0xbb5f, 0xbb60, 0x003f, 0xbb61, 0xbb62, 0xbb63, 0xbb64, 0xbb65, - 0xbb66, 0xbb67, 0xbb68, 0xbb69, 0xbb6a, 0xbb6b, 0x003f, 0x003f, - 0x003f, 0xbb6c, 0xbb6d, 0xbb6e, 0xbb6f, 0xbb70, 0xbb71, 0xbb72, - 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xbb77, 0xbb78, 0xbb79, 0xbb7a, - 0xbb7b, 0xbb7c, 0x003f, 0xbb7d, 0xbb7e, 0xbb7f, 0xbb80, 0xbb81, - 0xbb82, 0xbb83, 0xbb84, 0xbb85, 0xbb86, 0xbb87, 0x003f, 0x003f, - 0x003f, 0xbb88, 0xbb89, 0xbb8a, 0xbb8b, 0xbb8c, 0xbb8d, 0xbb8e, - 0xbb8f, 0xbb90, 0xbb91, 0xbb92, 0xbb93, 0xbb94, 0xbb95, 0xbb96, - 0xbb97, 0xbb98, 0x003f, 0xbb99, 0xbb9a, 0xbb9b, 0xbb9c, 0xbb9d, - 0xbb9e, 0xbb9f, 0xbba0, 0xbba1, 0xbba2, 0xbba3, 0x003f, 0x003f, - /* lead byte a3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbba4, 0xbba5, 0xbba6, 0xbba7, 0xbba8, 0xbba9, 0xbbaa, - 0xbbab, 0xbbac, 0xbbad, 0xbbae, 0xbbaf, 0xbbb0, 0xbbb1, 0xbbb2, - 0xbbb3, 0xbbb4, 0x003f, 0xbbb5, 0xbbb6, 0xbbb7, 0xbbb8, 0xbbb9, - 0xbbba, 0xbbbb, 0xbbbc, 0xbbbd, 0xbbbe, 0xbbbf, 0x003f, 0x003f, - 0x003f, 0xbbc0, 0xbbc1, 0xbbc2, 0xbbc3, 0xbbc4, 0xbbc5, 0xbbc6, - 0xbbc7, 0xbbc8, 0xbbc9, 0xbbca, 0xbbcb, 0xbbcc, 0xbbcd, 0xbbce, - 0xbbcf, 0xbbd0, 0x003f, 0xbbd1, 0xbbd2, 0xbbd3, 0xbbd4, 0xbbd5, - 0xbbd6, 0xbbd7, 0xbbd8, 0xbbd9, 0xbbda, 0xbbdb, 0x003f, 0x003f, - 0x003f, 0xbbdc, 0xbbdd, 0xbbde, 0xbbdf, 0xbbe0, 0xbbe1, 0xbbe2, - 0xbbe3, 0xbbe4, 0xbbe5, 0xbbe6, 0xbbe7, 0xbbe8, 0xbbe9, 0xbbea, - 0xbbeb, 0xbbec, 0x003f, 0xbbed, 0xbbee, 0xbbef, 0xbbf0, 0xbbf1, - 0xbbf2, 0xbbf3, 0xbbf4, 0xbbf5, 0xbbf6, 0xbbf7, 0x003f, 0x003f, - 0x003f, 0xbbf8, 0xbbf9, 0xbbfa, 0xbbfb, 0xbbfc, 0xbbfd, 0xbbfe, - 0xbbff, 0xbc00, 0xbc01, 0xbc02, 0xbc03, 0xbc04, 0xbc05, 0xbc06, - 0xbc07, 0xbc08, 0x003f, 0xbc09, 0xbc0a, 0xbc0b, 0xbc0c, 0xbc0d, - 0xbc0e, 0xbc0f, 0xbc10, 0xbc11, 0xbc12, 0xbc13, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3142, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbc14, 0xbc15, 0xbc16, 0xbc17, 0xbc18, 0xbc19, 0xbc1a, - 0xbc1b, 0xbc1c, 0xbc1d, 0xbc1e, 0xbc1f, 0xbc20, 0xbc21, 0xbc22, - 0xbc23, 0xbc24, 0x003f, 0xbc25, 0xbc26, 0xbc27, 0xbc28, 0xbc29, - 0xbc2a, 0xbc2b, 0xbc2c, 0xbc2d, 0xbc2e, 0xbc2f, 0x003f, 0x003f, - 0x003f, 0xbc30, 0xbc31, 0xbc32, 0xbc33, 0xbc34, 0xbc35, 0xbc36, - 0xbc37, 0xbc38, 0xbc39, 0xbc3a, 0xbc3b, 0xbc3c, 0xbc3d, 0xbc3e, - 0xbc3f, 0xbc40, 0x003f, 0xbc41, 0xbc42, 0xbc43, 0xbc44, 0xbc45, - 0xbc46, 0xbc47, 0xbc48, 0xbc49, 0xbc4a, 0xbc4b, 0x003f, 0x003f, - 0x003f, 0xbc4c, 0xbc4d, 0xbc4e, 0xbc4f, 0xbc50, 0xbc51, 0xbc52, - 0xbc53, 0xbc54, 0xbc55, 0xbc56, 0xbc57, 0xbc58, 0xbc59, 0xbc5a, - 0xbc5b, 0xbc5c, 0x003f, 0xbc5d, 0xbc5e, 0xbc5f, 0xbc60, 0xbc61, - 0xbc62, 0xbc63, 0xbc64, 0xbc65, 0xbc66, 0xbc67, 0x003f, 0x003f, - 0x003f, 0xbc68, 0xbc69, 0xbc6a, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, - 0xbc6f, 0xbc70, 0xbc71, 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, - 0xbc77, 0xbc78, 0x003f, 0xbc79, 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, - 0xbc7e, 0xbc7f, 0xbc80, 0xbc81, 0xbc82, 0xbc83, 0x003f, 0x003f, - 0x003f, 0xbc84, 0xbc85, 0xbc86, 0xbc87, 0xbc88, 0xbc89, 0xbc8a, - 0xbc8b, 0xbc8c, 0xbc8d, 0xbc8e, 0xbc8f, 0xbc90, 0xbc91, 0xbc92, - 0xbc93, 0xbc94, 0x003f, 0xbc95, 0xbc96, 0xbc97, 0xbc98, 0xbc99, - 0xbc9a, 0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0x003f, 0x003f, - /* lead byte a5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbca0, 0xbca1, 0xbca2, 0xbca3, 0xbca4, 0xbca5, 0xbca6, - 0xbca7, 0xbca8, 0xbca9, 0xbcaa, 0xbcab, 0xbcac, 0xbcad, 0xbcae, - 0xbcaf, 0xbcb0, 0x003f, 0xbcb1, 0xbcb2, 0xbcb3, 0xbcb4, 0xbcb5, - 0xbcb6, 0xbcb7, 0xbcb8, 0xbcb9, 0xbcba, 0xbcbb, 0x003f, 0x003f, - 0x003f, 0xbcbc, 0xbcbd, 0xbcbe, 0xbcbf, 0xbcc0, 0xbcc1, 0xbcc2, - 0xbcc3, 0xbcc4, 0xbcc5, 0xbcc6, 0xbcc7, 0xbcc8, 0xbcc9, 0xbcca, - 0xbccb, 0xbccc, 0x003f, 0xbccd, 0xbcce, 0xbccf, 0xbcd0, 0xbcd1, - 0xbcd2, 0xbcd3, 0xbcd4, 0xbcd5, 0xbcd6, 0xbcd7, 0x003f, 0x003f, - 0x003f, 0xbcd8, 0xbcd9, 0xbcda, 0xbcdb, 0xbcdc, 0xbcdd, 0xbcde, - 0xbcdf, 0xbce0, 0xbce1, 0xbce2, 0xbce3, 0xbce4, 0xbce5, 0xbce6, - 0xbce7, 0xbce8, 0x003f, 0xbce9, 0xbcea, 0xbceb, 0xbcec, 0xbced, - 0xbcee, 0xbcef, 0xbcf0, 0xbcf1, 0xbcf2, 0xbcf3, 0x003f, 0x003f, - 0x003f, 0xbcf4, 0xbcf5, 0xbcf6, 0xbcf7, 0xbcf8, 0xbcf9, 0xbcfa, - 0xbcfb, 0xbcfc, 0xbcfd, 0xbcfe, 0xbcff, 0xbd00, 0xbd01, 0xbd02, - 0xbd03, 0xbd04, 0x003f, 0xbd05, 0xbd06, 0xbd07, 0xbd08, 0xbd09, - 0xbd0a, 0xbd0b, 0xbd0c, 0xbd0d, 0xbd0e, 0xbd0f, 0x003f, 0x003f, - 0x003f, 0xbd10, 0xbd11, 0xbd12, 0xbd13, 0xbd14, 0xbd15, 0xbd16, - 0xbd17, 0xbd18, 0xbd19, 0xbd1a, 0xbd1b, 0xbd1c, 0xbd1d, 0xbd1e, - 0xbd1f, 0xbd20, 0x003f, 0xbd21, 0xbd22, 0xbd23, 0xbd24, 0xbd25, - 0xbd26, 0xbd27, 0xbd28, 0xbd29, 0xbd2a, 0xbd2b, 0x003f, 0x003f, - 0x003f, 0xbd2c, 0xbd2d, 0xbd2e, 0xbd2f, 0xbd30, 0xbd31, 0xbd32, - 0xbd33, 0xbd34, 0xbd35, 0xbd36, 0xbd37, 0xbd38, 0xbd39, 0xbd3a, - 0xbd3b, 0xbd3c, 0x003f, 0xbd3d, 0xbd3e, 0xbd3f, 0xbd40, 0xbd41, - 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0x003f, 0x003f, - /* lead byte a6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbd48, 0xbd49, 0xbd4a, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, - 0xbd4f, 0xbd50, 0xbd51, 0xbd52, 0xbd53, 0xbd54, 0xbd55, 0xbd56, - 0xbd57, 0xbd58, 0x003f, 0xbd59, 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, - 0xbd5e, 0xbd5f, 0xbd60, 0xbd61, 0xbd62, 0xbd63, 0x003f, 0x003f, - 0x003f, 0xbd64, 0xbd65, 0xbd66, 0xbd67, 0xbd68, 0xbd69, 0xbd6a, - 0xbd6b, 0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, 0xbd72, - 0xbd73, 0xbd74, 0x003f, 0xbd75, 0xbd76, 0xbd77, 0xbd78, 0xbd79, - 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xbd7f, 0x003f, 0x003f, - 0x003f, 0xbd80, 0xbd81, 0xbd82, 0xbd83, 0xbd84, 0xbd85, 0xbd86, - 0xbd87, 0xbd88, 0xbd89, 0xbd8a, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, - 0xbd8f, 0xbd90, 0x003f, 0xbd91, 0xbd92, 0xbd93, 0xbd94, 0xbd95, - 0xbd96, 0xbd97, 0xbd98, 0xbd99, 0xbd9a, 0xbd9b, 0x003f, 0x003f, - 0x003f, 0xbd9c, 0xbd9d, 0xbd9e, 0xbd9f, 0xbda0, 0xbda1, 0xbda2, - 0xbda3, 0xbda4, 0xbda5, 0xbda6, 0xbda7, 0xbda8, 0xbda9, 0xbdaa, - 0xbdab, 0xbdac, 0x003f, 0xbdad, 0xbdae, 0xbdaf, 0xbdb0, 0xbdb1, - 0xbdb2, 0xbdb3, 0xbdb4, 0xbdb5, 0xbdb6, 0xbdb7, 0x003f, 0x003f, - 0x003f, 0xbdb8, 0xbdb9, 0xbdba, 0xbdbb, 0xbdbc, 0xbdbd, 0xbdbe, - 0xbdbf, 0xbdc0, 0xbdc1, 0xbdc2, 0xbdc3, 0xbdc4, 0xbdc5, 0xbdc6, - 0xbdc7, 0xbdc8, 0x003f, 0xbdc9, 0xbdca, 0xbdcb, 0xbdcc, 0xbdcd, - 0xbdce, 0xbdcf, 0xbdd0, 0xbdd1, 0xbdd2, 0xbdd3, 0x003f, 0x003f, - 0x003f, 0xbdd4, 0xbdd5, 0xbdd6, 0xbdd7, 0xbdd8, 0xbdd9, 0xbdda, - 0xbddb, 0xbddc, 0xbddd, 0xbdde, 0xbddf, 0xbde0, 0xbde1, 0xbde2, - 0xbde3, 0xbde4, 0x003f, 0xbde5, 0xbde6, 0xbde7, 0xbde8, 0xbde9, - 0xbdea, 0xbdeb, 0xbdec, 0xbded, 0xbdee, 0xbdef, 0x003f, 0x003f, - /* lead byte a7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbdf0, 0xbdf1, 0xbdf2, 0xbdf3, 0xbdf4, 0xbdf5, 0xbdf6, - 0xbdf7, 0xbdf8, 0xbdf9, 0xbdfa, 0xbdfb, 0xbdfc, 0xbdfd, 0xbdfe, - 0xbdff, 0xbe00, 0x003f, 0xbe01, 0xbe02, 0xbe03, 0xbe04, 0xbe05, - 0xbe06, 0xbe07, 0xbe08, 0xbe09, 0xbe0a, 0xbe0b, 0x003f, 0x003f, - 0x003f, 0xbe0c, 0xbe0d, 0xbe0e, 0xbe0f, 0xbe10, 0xbe11, 0xbe12, - 0xbe13, 0xbe14, 0xbe15, 0xbe16, 0xbe17, 0xbe18, 0xbe19, 0xbe1a, - 0xbe1b, 0xbe1c, 0x003f, 0xbe1d, 0xbe1e, 0xbe1f, 0xbe20, 0xbe21, - 0xbe22, 0xbe23, 0xbe24, 0xbe25, 0xbe26, 0xbe27, 0x003f, 0x003f, - 0x003f, 0xbe28, 0xbe29, 0xbe2a, 0xbe2b, 0xbe2c, 0xbe2d, 0xbe2e, - 0xbe2f, 0xbe30, 0xbe31, 0xbe32, 0xbe33, 0xbe34, 0xbe35, 0xbe36, - 0xbe37, 0xbe38, 0x003f, 0xbe39, 0xbe3a, 0xbe3b, 0xbe3c, 0xbe3d, - 0xbe3e, 0xbe3f, 0xbe40, 0xbe41, 0xbe42, 0xbe43, 0x003f, 0x003f, - 0x003f, 0xbe44, 0xbe45, 0xbe46, 0xbe47, 0xbe48, 0xbe49, 0xbe4a, - 0xbe4b, 0xbe4c, 0xbe4d, 0xbe4e, 0xbe4f, 0xbe50, 0xbe51, 0xbe52, - 0xbe53, 0xbe54, 0x003f, 0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59, - 0xbe5a, 0xbe5b, 0xbe5c, 0xbe5d, 0xbe5e, 0xbe5f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3143, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbe60, 0xbe61, 0xbe62, 0xbe63, 0xbe64, 0xbe65, 0xbe66, - 0xbe67, 0xbe68, 0xbe69, 0xbe6a, 0xbe6b, 0xbe6c, 0xbe6d, 0xbe6e, - 0xbe6f, 0xbe70, 0x003f, 0xbe71, 0xbe72, 0xbe73, 0xbe74, 0xbe75, - 0xbe76, 0xbe77, 0xbe78, 0xbe79, 0xbe7a, 0xbe7b, 0x003f, 0x003f, - 0x003f, 0xbe7c, 0xbe7d, 0xbe7e, 0xbe7f, 0xbe80, 0xbe81, 0xbe82, - 0xbe83, 0xbe84, 0xbe85, 0xbe86, 0xbe87, 0xbe88, 0xbe89, 0xbe8a, - 0xbe8b, 0xbe8c, 0x003f, 0xbe8d, 0xbe8e, 0xbe8f, 0xbe90, 0xbe91, - 0xbe92, 0xbe93, 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0x003f, 0x003f, - 0x003f, 0xbe98, 0xbe99, 0xbe9a, 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, - 0xbe9f, 0xbea0, 0xbea1, 0xbea2, 0xbea3, 0xbea4, 0xbea5, 0xbea6, - 0xbea7, 0xbea8, 0x003f, 0xbea9, 0xbeaa, 0xbeab, 0xbeac, 0xbead, - 0xbeae, 0xbeaf, 0xbeb0, 0xbeb1, 0xbeb2, 0xbeb3, 0x003f, 0x003f, - 0x003f, 0xbeb4, 0xbeb5, 0xbeb6, 0xbeb7, 0xbeb8, 0xbeb9, 0xbeba, - 0xbebb, 0xbebc, 0xbebd, 0xbebe, 0xbebf, 0xbec0, 0xbec1, 0xbec2, - 0xbec3, 0xbec4, 0x003f, 0xbec5, 0xbec6, 0xbec7, 0xbec8, 0xbec9, - 0xbeca, 0xbecb, 0xbecc, 0xbecd, 0xbece, 0xbecf, 0x003f, 0x003f, - 0x003f, 0xbed0, 0xbed1, 0xbed2, 0xbed3, 0xbed4, 0xbed5, 0xbed6, - 0xbed7, 0xbed8, 0xbed9, 0xbeda, 0xbedb, 0xbedc, 0xbedd, 0xbede, - 0xbedf, 0xbee0, 0x003f, 0xbee1, 0xbee2, 0xbee3, 0xbee4, 0xbee5, - 0xbee6, 0xbee7, 0xbee8, 0xbee9, 0xbeea, 0xbeeb, 0x003f, 0x003f, - /* lead byte a9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbeec, 0xbeed, 0xbeee, 0xbeef, 0xbef0, 0xbef1, 0xbef2, - 0xbef3, 0xbef4, 0xbef5, 0xbef6, 0xbef7, 0xbef8, 0xbef9, 0xbefa, - 0xbefb, 0xbefc, 0x003f, 0xbefd, 0xbefe, 0xbeff, 0xbf00, 0xbf01, - 0xbf02, 0xbf03, 0xbf04, 0xbf05, 0xbf06, 0xbf07, 0x003f, 0x003f, - 0x003f, 0xbf08, 0xbf09, 0xbf0a, 0xbf0b, 0xbf0c, 0xbf0d, 0xbf0e, - 0xbf0f, 0xbf10, 0xbf11, 0xbf12, 0xbf13, 0xbf14, 0xbf15, 0xbf16, - 0xbf17, 0xbf18, 0x003f, 0xbf19, 0xbf1a, 0xbf1b, 0xbf1c, 0xbf1d, - 0xbf1e, 0xbf1f, 0xbf20, 0xbf21, 0xbf22, 0xbf23, 0x003f, 0x003f, - 0x003f, 0xbf24, 0xbf25, 0xbf26, 0xbf27, 0xbf28, 0xbf29, 0xbf2a, - 0xbf2b, 0xbf2c, 0xbf2d, 0xbf2e, 0xbf2f, 0xbf30, 0xbf31, 0xbf32, - 0xbf33, 0xbf34, 0x003f, 0xbf35, 0xbf36, 0xbf37, 0xbf38, 0xbf39, - 0xbf3a, 0xbf3b, 0xbf3c, 0xbf3d, 0xbf3e, 0xbf3f, 0x003f, 0x003f, - 0x003f, 0xbf40, 0xbf41, 0xbf42, 0xbf43, 0xbf44, 0xbf45, 0xbf46, - 0xbf47, 0xbf48, 0xbf49, 0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, - 0xbf4f, 0xbf50, 0x003f, 0xbf51, 0xbf52, 0xbf53, 0xbf54, 0xbf55, - 0xbf56, 0xbf57, 0xbf58, 0xbf59, 0xbf5a, 0xbf5b, 0x003f, 0x003f, - 0x003f, 0xbf5c, 0xbf5d, 0xbf5e, 0xbf5f, 0xbf60, 0xbf61, 0xbf62, - 0xbf63, 0xbf64, 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, 0xbf6a, - 0xbf6b, 0xbf6c, 0x003f, 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, - 0xbf72, 0xbf73, 0xbf74, 0xbf75, 0xbf76, 0xbf77, 0x003f, 0x003f, - 0x003f, 0xbf78, 0xbf79, 0xbf7a, 0xbf7b, 0xbf7c, 0xbf7d, 0xbf7e, - 0xbf7f, 0xbf80, 0xbf81, 0xbf82, 0xbf83, 0xbf84, 0xbf85, 0xbf86, - 0xbf87, 0xbf88, 0x003f, 0xbf89, 0xbf8a, 0xbf8b, 0xbf8c, 0xbf8d, - 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92, 0xbf93, 0x003f, 0x003f, - /* lead byte aa */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbf94, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, - 0xbf9b, 0xbf9c, 0xbf9d, 0xbf9e, 0xbf9f, 0xbfa0, 0xbfa1, 0xbfa2, - 0xbfa3, 0xbfa4, 0x003f, 0xbfa5, 0xbfa6, 0xbfa7, 0xbfa8, 0xbfa9, - 0xbfaa, 0xbfab, 0xbfac, 0xbfad, 0xbfae, 0xbfaf, 0x003f, 0x003f, - 0x003f, 0xbfb0, 0xbfb1, 0xbfb2, 0xbfb3, 0xbfb4, 0xbfb5, 0xbfb6, - 0xbfb7, 0xbfb8, 0xbfb9, 0xbfba, 0xbfbb, 0xbfbc, 0xbfbd, 0xbfbe, - 0xbfbf, 0xbfc0, 0x003f, 0xbfc1, 0xbfc2, 0xbfc3, 0xbfc4, 0xbfc5, - 0xbfc6, 0xbfc7, 0xbfc8, 0xbfc9, 0xbfca, 0xbfcb, 0x003f, 0x003f, - 0x003f, 0xbfcc, 0xbfcd, 0xbfce, 0xbfcf, 0xbfd0, 0xbfd1, 0xbfd2, - 0xbfd3, 0xbfd4, 0xbfd5, 0xbfd6, 0xbfd7, 0xbfd8, 0xbfd9, 0xbfda, - 0xbfdb, 0xbfdc, 0x003f, 0xbfdd, 0xbfde, 0xbfdf, 0xbfe0, 0xbfe1, - 0xbfe2, 0xbfe3, 0xbfe4, 0xbfe5, 0xbfe6, 0xbfe7, 0x003f, 0x003f, - 0x003f, 0xbfe8, 0xbfe9, 0xbfea, 0xbfeb, 0xbfec, 0xbfed, 0xbfee, - 0xbfef, 0xbff0, 0xbff1, 0xbff2, 0xbff3, 0xbff4, 0xbff5, 0xbff6, - 0xbff7, 0xbff8, 0x003f, 0xbff9, 0xbffa, 0xbffb, 0xbffc, 0xbffd, - 0xbffe, 0xbfff, 0xc000, 0xc001, 0xc002, 0xc003, 0x003f, 0x003f, - 0x003f, 0xc004, 0xc005, 0xc006, 0xc007, 0xc008, 0xc009, 0xc00a, - 0xc00b, 0xc00c, 0xc00d, 0xc00e, 0xc00f, 0xc010, 0xc011, 0xc012, - 0xc013, 0xc014, 0x003f, 0xc015, 0xc016, 0xc017, 0xc018, 0xc019, - 0xc01a, 0xc01b, 0xc01c, 0xc01d, 0xc01e, 0xc01f, 0x003f, 0x003f, - 0x003f, 0xc020, 0xc021, 0xc022, 0xc023, 0xc024, 0xc025, 0xc026, - 0xc027, 0xc028, 0xc029, 0xc02a, 0xc02b, 0xc02c, 0xc02d, 0xc02e, - 0xc02f, 0xc030, 0x003f, 0xc031, 0xc032, 0xc033, 0xc034, 0xc035, - 0xc036, 0xc037, 0xc038, 0xc039, 0xc03a, 0xc03b, 0x003f, 0x003f, - /* lead byte ab */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc03c, 0xc03d, 0xc03e, 0xc03f, 0xc040, 0xc041, 0xc042, - 0xc043, 0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, 0xc04a, - 0xc04b, 0xc04c, 0x003f, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc051, - 0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0x003f, 0x003f, - 0x003f, 0xc058, 0xc059, 0xc05a, 0xc05b, 0xc05c, 0xc05d, 0xc05e, - 0xc05f, 0xc060, 0xc061, 0xc062, 0xc063, 0xc064, 0xc065, 0xc066, - 0xc067, 0xc068, 0x003f, 0xc069, 0xc06a, 0xc06b, 0xc06c, 0xc06d, - 0xc06e, 0xc06f, 0xc070, 0xc071, 0xc072, 0xc073, 0x003f, 0x003f, - 0x003f, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079, 0xc07a, - 0xc07b, 0xc07c, 0xc07d, 0xc07e, 0xc07f, 0xc080, 0xc081, 0xc082, - 0xc083, 0xc084, 0x003f, 0xc085, 0xc086, 0xc087, 0xc088, 0xc089, - 0xc08a, 0xc08b, 0xc08c, 0xc08d, 0xc08e, 0xc08f, 0x003f, 0x003f, - 0x003f, 0xc090, 0xc091, 0xc092, 0xc093, 0xc094, 0xc095, 0xc096, - 0xc097, 0xc098, 0xc099, 0xc09a, 0xc09b, 0xc09c, 0xc09d, 0xc09e, - 0xc09f, 0xc0a0, 0x003f, 0xc0a1, 0xc0a2, 0xc0a3, 0xc0a4, 0xc0a5, - 0xc0a6, 0xc0a7, 0xc0a8, 0xc0a9, 0xc0aa, 0xc0ab, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte ac */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3145, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc0ac, 0xc0ad, 0xc0ae, 0xc0af, 0xc0b0, 0xc0b1, 0xc0b2, - 0xc0b3, 0xc0b4, 0xc0b5, 0xc0b6, 0xc0b7, 0xc0b8, 0xc0b9, 0xc0ba, - 0xc0bb, 0xc0bc, 0x003f, 0xc0bd, 0xc0be, 0xc0bf, 0xc0c0, 0xc0c1, - 0xc0c2, 0xc0c3, 0xc0c4, 0xc0c5, 0xc0c6, 0xc0c7, 0x003f, 0x003f, - 0x003f, 0xc0c8, 0xc0c9, 0xc0ca, 0xc0cb, 0xc0cc, 0xc0cd, 0xc0ce, - 0xc0cf, 0xc0d0, 0xc0d1, 0xc0d2, 0xc0d3, 0xc0d4, 0xc0d5, 0xc0d6, - 0xc0d7, 0xc0d8, 0x003f, 0xc0d9, 0xc0da, 0xc0db, 0xc0dc, 0xc0dd, - 0xc0de, 0xc0df, 0xc0e0, 0xc0e1, 0xc0e2, 0xc0e3, 0x003f, 0x003f, - 0x003f, 0xc0e4, 0xc0e5, 0xc0e6, 0xc0e7, 0xc0e8, 0xc0e9, 0xc0ea, - 0xc0eb, 0xc0ec, 0xc0ed, 0xc0ee, 0xc0ef, 0xc0f0, 0xc0f1, 0xc0f2, - 0xc0f3, 0xc0f4, 0x003f, 0xc0f5, 0xc0f6, 0xc0f7, 0xc0f8, 0xc0f9, - 0xc0fa, 0xc0fb, 0xc0fc, 0xc0fd, 0xc0fe, 0xc0ff, 0x003f, 0x003f, - 0x003f, 0xc100, 0xc101, 0xc102, 0xc103, 0xc104, 0xc105, 0xc106, - 0xc107, 0xc108, 0xc109, 0xc10a, 0xc10b, 0xc10c, 0xc10d, 0xc10e, - 0xc10f, 0xc110, 0x003f, 0xc111, 0xc112, 0xc113, 0xc114, 0xc115, - 0xc116, 0xc117, 0xc118, 0xc119, 0xc11a, 0xc11b, 0x003f, 0x003f, - 0x003f, 0xc11c, 0xc11d, 0xc11e, 0xc11f, 0xc120, 0xc121, 0xc122, - 0xc123, 0xc124, 0xc125, 0xc126, 0xc127, 0xc128, 0xc129, 0xc12a, - 0xc12b, 0xc12c, 0x003f, 0xc12d, 0xc12e, 0xc12f, 0xc130, 0xc131, - 0xc132, 0xc133, 0xc134, 0xc135, 0xc136, 0xc137, 0x003f, 0x003f, - /* lead byte ad */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc138, 0xc139, 0xc13a, 0xc13b, 0xc13c, 0xc13d, 0xc13e, - 0xc13f, 0xc140, 0xc141, 0xc142, 0xc143, 0xc144, 0xc145, 0xc146, - 0xc147, 0xc148, 0x003f, 0xc149, 0xc14a, 0xc14b, 0xc14c, 0xc14d, - 0xc14e, 0xc14f, 0xc150, 0xc151, 0xc152, 0xc153, 0x003f, 0x003f, - 0x003f, 0xc154, 0xc155, 0xc156, 0xc157, 0xc158, 0xc159, 0xc15a, - 0xc15b, 0xc15c, 0xc15d, 0xc15e, 0xc15f, 0xc160, 0xc161, 0xc162, - 0xc163, 0xc164, 0x003f, 0xc165, 0xc166, 0xc167, 0xc168, 0xc169, - 0xc16a, 0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0x003f, 0x003f, - 0x003f, 0xc170, 0xc171, 0xc172, 0xc173, 0xc174, 0xc175, 0xc176, - 0xc177, 0xc178, 0xc179, 0xc17a, 0xc17b, 0xc17c, 0xc17d, 0xc17e, - 0xc17f, 0xc180, 0x003f, 0xc181, 0xc182, 0xc183, 0xc184, 0xc185, - 0xc186, 0xc187, 0xc188, 0xc189, 0xc18a, 0xc18b, 0x003f, 0x003f, - 0x003f, 0xc18c, 0xc18d, 0xc18e, 0xc18f, 0xc190, 0xc191, 0xc192, - 0xc193, 0xc194, 0xc195, 0xc196, 0xc197, 0xc198, 0xc199, 0xc19a, - 0xc19b, 0xc19c, 0x003f, 0xc19d, 0xc19e, 0xc19f, 0xc1a0, 0xc1a1, - 0xc1a2, 0xc1a3, 0xc1a4, 0xc1a5, 0xc1a6, 0xc1a7, 0x003f, 0x003f, - 0x003f, 0xc1a8, 0xc1a9, 0xc1aa, 0xc1ab, 0xc1ac, 0xc1ad, 0xc1ae, - 0xc1af, 0xc1b0, 0xc1b1, 0xc1b2, 0xc1b3, 0xc1b4, 0xc1b5, 0xc1b6, - 0xc1b7, 0xc1b8, 0x003f, 0xc1b9, 0xc1ba, 0xc1bb, 0xc1bc, 0xc1bd, - 0xc1be, 0xc1bf, 0xc1c0, 0xc1c1, 0xc1c2, 0xc1c3, 0x003f, 0x003f, - 0x003f, 0xc1c4, 0xc1c5, 0xc1c6, 0xc1c7, 0xc1c8, 0xc1c9, 0xc1ca, - 0xc1cb, 0xc1cc, 0xc1cd, 0xc1ce, 0xc1cf, 0xc1d0, 0xc1d1, 0xc1d2, - 0xc1d3, 0xc1d4, 0x003f, 0xc1d5, 0xc1d6, 0xc1d7, 0xc1d8, 0xc1d9, - 0xc1da, 0xc1db, 0xc1dc, 0xc1dd, 0xc1de, 0xc1df, 0x003f, 0x003f, - /* lead byte ae */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc1e0, 0xc1e1, 0xc1e2, 0xc1e3, 0xc1e4, 0xc1e5, 0xc1e6, - 0xc1e7, 0xc1e8, 0xc1e9, 0xc1ea, 0xc1eb, 0xc1ec, 0xc1ed, 0xc1ee, - 0xc1ef, 0xc1f0, 0x003f, 0xc1f1, 0xc1f2, 0xc1f3, 0xc1f4, 0xc1f5, - 0xc1f6, 0xc1f7, 0xc1f8, 0xc1f9, 0xc1fa, 0xc1fb, 0x003f, 0x003f, - 0x003f, 0xc1fc, 0xc1fd, 0xc1fe, 0xc1ff, 0xc200, 0xc201, 0xc202, - 0xc203, 0xc204, 0xc205, 0xc206, 0xc207, 0xc208, 0xc209, 0xc20a, - 0xc20b, 0xc20c, 0x003f, 0xc20d, 0xc20e, 0xc20f, 0xc210, 0xc211, - 0xc212, 0xc213, 0xc214, 0xc215, 0xc216, 0xc217, 0x003f, 0x003f, - 0x003f, 0xc218, 0xc219, 0xc21a, 0xc21b, 0xc21c, 0xc21d, 0xc21e, - 0xc21f, 0xc220, 0xc221, 0xc222, 0xc223, 0xc224, 0xc225, 0xc226, - 0xc227, 0xc228, 0x003f, 0xc229, 0xc22a, 0xc22b, 0xc22c, 0xc22d, - 0xc22e, 0xc22f, 0xc230, 0xc231, 0xc232, 0xc233, 0x003f, 0x003f, - 0x003f, 0xc234, 0xc235, 0xc236, 0xc237, 0xc238, 0xc239, 0xc23a, - 0xc23b, 0xc23c, 0xc23d, 0xc23e, 0xc23f, 0xc240, 0xc241, 0xc242, - 0xc243, 0xc244, 0x003f, 0xc245, 0xc246, 0xc247, 0xc248, 0xc249, - 0xc24a, 0xc24b, 0xc24c, 0xc24d, 0xc24e, 0xc24f, 0x003f, 0x003f, - 0x003f, 0xc250, 0xc251, 0xc252, 0xc253, 0xc254, 0xc255, 0xc256, - 0xc257, 0xc258, 0xc259, 0xc25a, 0xc25b, 0xc25c, 0xc25d, 0xc25e, - 0xc25f, 0xc260, 0x003f, 0xc261, 0xc262, 0xc263, 0xc264, 0xc265, - 0xc266, 0xc267, 0xc268, 0xc269, 0xc26a, 0xc26b, 0x003f, 0x003f, - 0x003f, 0xc26c, 0xc26d, 0xc26e, 0xc26f, 0xc270, 0xc271, 0xc272, - 0xc273, 0xc274, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279, 0xc27a, - 0xc27b, 0xc27c, 0x003f, 0xc27d, 0xc27e, 0xc27f, 0xc280, 0xc281, - 0xc282, 0xc283, 0xc284, 0xc285, 0xc286, 0xc287, 0x003f, 0x003f, - /* lead byte af */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc288, 0xc289, 0xc28a, 0xc28b, 0xc28c, 0xc28d, 0xc28e, - 0xc28f, 0xc290, 0xc291, 0xc292, 0xc293, 0xc294, 0xc295, 0xc296, - 0xc297, 0xc298, 0x003f, 0xc299, 0xc29a, 0xc29b, 0xc29c, 0xc29d, - 0xc29e, 0xc29f, 0xc2a0, 0xc2a1, 0xc2a2, 0xc2a3, 0x003f, 0x003f, - 0x003f, 0xc2a4, 0xc2a5, 0xc2a6, 0xc2a7, 0xc2a8, 0xc2a9, 0xc2aa, - 0xc2ab, 0xc2ac, 0xc2ad, 0xc2ae, 0xc2af, 0xc2b0, 0xc2b1, 0xc2b2, - 0xc2b3, 0xc2b4, 0x003f, 0xc2b5, 0xc2b6, 0xc2b7, 0xc2b8, 0xc2b9, - 0xc2ba, 0xc2bb, 0xc2bc, 0xc2bd, 0xc2be, 0xc2bf, 0x003f, 0x003f, - 0x003f, 0xc2c0, 0xc2c1, 0xc2c2, 0xc2c3, 0xc2c4, 0xc2c5, 0xc2c6, - 0xc2c7, 0xc2c8, 0xc2c9, 0xc2ca, 0xc2cb, 0xc2cc, 0xc2cd, 0xc2ce, - 0xc2cf, 0xc2d0, 0x003f, 0xc2d1, 0xc2d2, 0xc2d3, 0xc2d4, 0xc2d5, - 0xc2d6, 0xc2d7, 0xc2d8, 0xc2d9, 0xc2da, 0xc2db, 0x003f, 0x003f, - 0x003f, 0xc2dc, 0xc2dd, 0xc2de, 0xc2df, 0xc2e0, 0xc2e1, 0xc2e2, - 0xc2e3, 0xc2e4, 0xc2e5, 0xc2e6, 0xc2e7, 0xc2e8, 0xc2e9, 0xc2ea, - 0xc2eb, 0xc2ec, 0x003f, 0xc2ed, 0xc2ee, 0xc2ef, 0xc2f0, 0xc2f1, - 0xc2f2, 0xc2f3, 0xc2f4, 0xc2f5, 0xc2f6, 0xc2f7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte b0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3146, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc2f8, 0xc2f9, 0xc2fa, 0xc2fb, 0xc2fc, 0xc2fd, 0xc2fe, - 0xc2ff, 0xc300, 0xc301, 0xc302, 0xc303, 0xc304, 0xc305, 0xc306, - 0xc307, 0xc308, 0x003f, 0xc309, 0xc30a, 0xc30b, 0xc30c, 0xc30d, - 0xc30e, 0xc30f, 0xc310, 0xc311, 0xc312, 0xc313, 0x003f, 0x003f, - 0x003f, 0xc314, 0xc315, 0xc316, 0xc317, 0xc318, 0xc319, 0xc31a, - 0xc31b, 0xc31c, 0xc31d, 0xc31e, 0xc31f, 0xc320, 0xc321, 0xc322, - 0xc323, 0xc324, 0x003f, 0xc325, 0xc326, 0xc327, 0xc328, 0xc329, - 0xc32a, 0xc32b, 0xc32c, 0xc32d, 0xc32e, 0xc32f, 0x003f, 0x003f, - 0x003f, 0xc330, 0xc331, 0xc332, 0xc333, 0xc334, 0xc335, 0xc336, - 0xc337, 0xc338, 0xc339, 0xc33a, 0xc33b, 0xc33c, 0xc33d, 0xc33e, - 0xc33f, 0xc340, 0x003f, 0xc341, 0xc342, 0xc343, 0xc344, 0xc345, - 0xc346, 0xc347, 0xc348, 0xc349, 0xc34a, 0xc34b, 0x003f, 0x003f, - 0x003f, 0xc34c, 0xc34d, 0xc34e, 0xc34f, 0xc350, 0xc351, 0xc352, - 0xc353, 0xc354, 0xc355, 0xc356, 0xc357, 0xc358, 0xc359, 0xc35a, - 0xc35b, 0xc35c, 0x003f, 0xc35d, 0xc35e, 0xc35f, 0xc360, 0xc361, - 0xc362, 0xc363, 0xc364, 0xc365, 0xc366, 0xc367, 0x003f, 0x003f, - 0x003f, 0xc368, 0xc369, 0xc36a, 0xc36b, 0xc36c, 0xc36d, 0xc36e, - 0xc36f, 0xc370, 0xc371, 0xc372, 0xc373, 0xc374, 0xc375, 0xc376, - 0xc377, 0xc378, 0x003f, 0xc379, 0xc37a, 0xc37b, 0xc37c, 0xc37d, - 0xc37e, 0xc37f, 0xc380, 0xc381, 0xc382, 0xc383, 0x003f, 0x003f, - /* lead byte b1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc384, 0xc385, 0xc386, 0xc387, 0xc388, 0xc389, 0xc38a, - 0xc38b, 0xc38c, 0xc38d, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc392, - 0xc393, 0xc394, 0x003f, 0xc395, 0xc396, 0xc397, 0xc398, 0xc399, - 0xc39a, 0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0x003f, 0x003f, - 0x003f, 0xc3a0, 0xc3a1, 0xc3a2, 0xc3a3, 0xc3a4, 0xc3a5, 0xc3a6, - 0xc3a7, 0xc3a8, 0xc3a9, 0xc3aa, 0xc3ab, 0xc3ac, 0xc3ad, 0xc3ae, - 0xc3af, 0xc3b0, 0x003f, 0xc3b1, 0xc3b2, 0xc3b3, 0xc3b4, 0xc3b5, - 0xc3b6, 0xc3b7, 0xc3b8, 0xc3b9, 0xc3ba, 0xc3bb, 0x003f, 0x003f, - 0x003f, 0xc3bc, 0xc3bd, 0xc3be, 0xc3bf, 0xc3c0, 0xc3c1, 0xc3c2, - 0xc3c3, 0xc3c4, 0xc3c5, 0xc3c6, 0xc3c7, 0xc3c8, 0xc3c9, 0xc3ca, - 0xc3cb, 0xc3cc, 0x003f, 0xc3cd, 0xc3ce, 0xc3cf, 0xc3d0, 0xc3d1, - 0xc3d2, 0xc3d3, 0xc3d4, 0xc3d5, 0xc3d6, 0xc3d7, 0x003f, 0x003f, - 0x003f, 0xc3d8, 0xc3d9, 0xc3da, 0xc3db, 0xc3dc, 0xc3dd, 0xc3de, - 0xc3df, 0xc3e0, 0xc3e1, 0xc3e2, 0xc3e3, 0xc3e4, 0xc3e5, 0xc3e6, - 0xc3e7, 0xc3e8, 0x003f, 0xc3e9, 0xc3ea, 0xc3eb, 0xc3ec, 0xc3ed, - 0xc3ee, 0xc3ef, 0xc3f0, 0xc3f1, 0xc3f2, 0xc3f3, 0x003f, 0x003f, - 0x003f, 0xc3f4, 0xc3f5, 0xc3f6, 0xc3f7, 0xc3f8, 0xc3f9, 0xc3fa, - 0xc3fb, 0xc3fc, 0xc3fd, 0xc3fe, 0xc3ff, 0xc400, 0xc401, 0xc402, - 0xc403, 0xc404, 0x003f, 0xc405, 0xc406, 0xc407, 0xc408, 0xc409, - 0xc40a, 0xc40b, 0xc40c, 0xc40d, 0xc40e, 0xc40f, 0x003f, 0x003f, - 0x003f, 0xc410, 0xc411, 0xc412, 0xc413, 0xc414, 0xc415, 0xc416, - 0xc417, 0xc418, 0xc419, 0xc41a, 0xc41b, 0xc41c, 0xc41d, 0xc41e, - 0xc41f, 0xc420, 0x003f, 0xc421, 0xc422, 0xc423, 0xc424, 0xc425, - 0xc426, 0xc427, 0xc428, 0xc429, 0xc42a, 0xc42b, 0x003f, 0x003f, - /* lead byte b2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc42c, 0xc42d, 0xc42e, 0xc42f, 0xc430, 0xc431, 0xc432, - 0xc433, 0xc434, 0xc435, 0xc436, 0xc437, 0xc438, 0xc439, 0xc43a, - 0xc43b, 0xc43c, 0x003f, 0xc43d, 0xc43e, 0xc43f, 0xc440, 0xc441, - 0xc442, 0xc443, 0xc444, 0xc445, 0xc446, 0xc447, 0x003f, 0x003f, - 0x003f, 0xc448, 0xc449, 0xc44a, 0xc44b, 0xc44c, 0xc44d, 0xc44e, - 0xc44f, 0xc450, 0xc451, 0xc452, 0xc453, 0xc454, 0xc455, 0xc456, - 0xc457, 0xc458, 0x003f, 0xc459, 0xc45a, 0xc45b, 0xc45c, 0xc45d, - 0xc45e, 0xc45f, 0xc460, 0xc461, 0xc462, 0xc463, 0x003f, 0x003f, - 0x003f, 0xc464, 0xc465, 0xc466, 0xc467, 0xc468, 0xc469, 0xc46a, - 0xc46b, 0xc46c, 0xc46d, 0xc46e, 0xc46f, 0xc470, 0xc471, 0xc472, - 0xc473, 0xc474, 0x003f, 0xc475, 0xc476, 0xc477, 0xc478, 0xc479, - 0xc47a, 0xc47b, 0xc47c, 0xc47d, 0xc47e, 0xc47f, 0x003f, 0x003f, - 0x003f, 0xc480, 0xc481, 0xc482, 0xc483, 0xc484, 0xc485, 0xc486, - 0xc487, 0xc488, 0xc489, 0xc48a, 0xc48b, 0xc48c, 0xc48d, 0xc48e, - 0xc48f, 0xc490, 0x003f, 0xc491, 0xc492, 0xc493, 0xc494, 0xc495, - 0xc496, 0xc497, 0xc498, 0xc499, 0xc49a, 0xc49b, 0x003f, 0x003f, - 0x003f, 0xc49c, 0xc49d, 0xc49e, 0xc49f, 0xc4a0, 0xc4a1, 0xc4a2, - 0xc4a3, 0xc4a4, 0xc4a5, 0xc4a6, 0xc4a7, 0xc4a8, 0xc4a9, 0xc4aa, - 0xc4ab, 0xc4ac, 0x003f, 0xc4ad, 0xc4ae, 0xc4af, 0xc4b0, 0xc4b1, - 0xc4b2, 0xc4b3, 0xc4b4, 0xc4b5, 0xc4b6, 0xc4b7, 0x003f, 0x003f, - 0x003f, 0xc4b8, 0xc4b9, 0xc4ba, 0xc4bb, 0xc4bc, 0xc4bd, 0xc4be, - 0xc4bf, 0xc4c0, 0xc4c1, 0xc4c2, 0xc4c3, 0xc4c4, 0xc4c5, 0xc4c6, - 0xc4c7, 0xc4c8, 0x003f, 0xc4c9, 0xc4ca, 0xc4cb, 0xc4cc, 0xc4cd, - 0xc4ce, 0xc4cf, 0xc4d0, 0xc4d1, 0xc4d2, 0xc4d3, 0x003f, 0x003f, - /* lead byte b3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc4d4, 0xc4d5, 0xc4d6, 0xc4d7, 0xc4d8, 0xc4d9, 0xc4da, - 0xc4db, 0xc4dc, 0xc4dd, 0xc4de, 0xc4df, 0xc4e0, 0xc4e1, 0xc4e2, - 0xc4e3, 0xc4e4, 0x003f, 0xc4e5, 0xc4e6, 0xc4e7, 0xc4e8, 0xc4e9, - 0xc4ea, 0xc4eb, 0xc4ec, 0xc4ed, 0xc4ee, 0xc4ef, 0x003f, 0x003f, - 0x003f, 0xc4f0, 0xc4f1, 0xc4f2, 0xc4f3, 0xc4f4, 0xc4f5, 0xc4f6, - 0xc4f7, 0xc4f8, 0xc4f9, 0xc4fa, 0xc4fb, 0xc4fc, 0xc4fd, 0xc4fe, - 0xc4ff, 0xc500, 0x003f, 0xc501, 0xc502, 0xc503, 0xc504, 0xc505, - 0xc506, 0xc507, 0xc508, 0xc509, 0xc50a, 0xc50b, 0x003f, 0x003f, - 0x003f, 0xc50c, 0xc50d, 0xc50e, 0xc50f, 0xc510, 0xc511, 0xc512, - 0xc513, 0xc514, 0xc515, 0xc516, 0xc517, 0xc518, 0xc519, 0xc51a, - 0xc51b, 0xc51c, 0x003f, 0xc51d, 0xc51e, 0xc51f, 0xc520, 0xc521, - 0xc522, 0xc523, 0xc524, 0xc525, 0xc526, 0xc527, 0x003f, 0x003f, - 0x003f, 0xc528, 0xc529, 0xc52a, 0xc52b, 0xc52c, 0xc52d, 0xc52e, - 0xc52f, 0xc530, 0xc531, 0xc532, 0xc533, 0xc534, 0xc535, 0xc536, - 0xc537, 0xc538, 0x003f, 0xc539, 0xc53a, 0xc53b, 0xc53c, 0xc53d, - 0xc53e, 0xc53f, 0xc540, 0xc541, 0xc542, 0xc543, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte b4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3147, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc544, 0xc545, 0xc546, 0xc547, 0xc548, 0xc549, 0xc54a, - 0xc54b, 0xc54c, 0xc54d, 0xc54e, 0xc54f, 0xc550, 0xc551, 0xc552, - 0xc553, 0xc554, 0x003f, 0xc555, 0xc556, 0xc557, 0xc558, 0xc559, - 0xc55a, 0xc55b, 0xc55c, 0xc55d, 0xc55e, 0xc55f, 0x003f, 0x003f, - 0x003f, 0xc560, 0xc561, 0xc562, 0xc563, 0xc564, 0xc565, 0xc566, - 0xc567, 0xc568, 0xc569, 0xc56a, 0xc56b, 0xc56c, 0xc56d, 0xc56e, - 0xc56f, 0xc570, 0x003f, 0xc571, 0xc572, 0xc573, 0xc574, 0xc575, - 0xc576, 0xc577, 0xc578, 0xc579, 0xc57a, 0xc57b, 0x003f, 0x003f, - 0x003f, 0xc57c, 0xc57d, 0xc57e, 0xc57f, 0xc580, 0xc581, 0xc582, - 0xc583, 0xc584, 0xc585, 0xc586, 0xc587, 0xc588, 0xc589, 0xc58a, - 0xc58b, 0xc58c, 0x003f, 0xc58d, 0xc58e, 0xc58f, 0xc590, 0xc591, - 0xc592, 0xc593, 0xc594, 0xc595, 0xc596, 0xc597, 0x003f, 0x003f, - 0x003f, 0xc598, 0xc599, 0xc59a, 0xc59b, 0xc59c, 0xc59d, 0xc59e, - 0xc59f, 0xc5a0, 0xc5a1, 0xc5a2, 0xc5a3, 0xc5a4, 0xc5a5, 0xc5a6, - 0xc5a7, 0xc5a8, 0x003f, 0xc5a9, 0xc5aa, 0xc5ab, 0xc5ac, 0xc5ad, - 0xc5ae, 0xc5af, 0xc5b0, 0xc5b1, 0xc5b2, 0xc5b3, 0x003f, 0x003f, - 0x003f, 0xc5b4, 0xc5b5, 0xc5b6, 0xc5b7, 0xc5b8, 0xc5b9, 0xc5ba, - 0xc5bb, 0xc5bc, 0xc5bd, 0xc5be, 0xc5bf, 0xc5c0, 0xc5c1, 0xc5c2, - 0xc5c3, 0xc5c4, 0x003f, 0xc5c5, 0xc5c6, 0xc5c7, 0xc5c8, 0xc5c9, - 0xc5ca, 0xc5cb, 0xc5cc, 0xc5cd, 0xc5ce, 0xc5cf, 0x003f, 0x003f, - /* lead byte b5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc5d0, 0xc5d1, 0xc5d2, 0xc5d3, 0xc5d4, 0xc5d5, 0xc5d6, - 0xc5d7, 0xc5d8, 0xc5d9, 0xc5da, 0xc5db, 0xc5dc, 0xc5dd, 0xc5de, - 0xc5df, 0xc5e0, 0x003f, 0xc5e1, 0xc5e2, 0xc5e3, 0xc5e4, 0xc5e5, - 0xc5e6, 0xc5e7, 0xc5e8, 0xc5e9, 0xc5ea, 0xc5eb, 0x003f, 0x003f, - 0x003f, 0xc5ec, 0xc5ed, 0xc5ee, 0xc5ef, 0xc5f0, 0xc5f1, 0xc5f2, - 0xc5f3, 0xc5f4, 0xc5f5, 0xc5f6, 0xc5f7, 0xc5f8, 0xc5f9, 0xc5fa, - 0xc5fb, 0xc5fc, 0x003f, 0xc5fd, 0xc5fe, 0xc5ff, 0xc600, 0xc601, - 0xc602, 0xc603, 0xc604, 0xc605, 0xc606, 0xc607, 0x003f, 0x003f, - 0x003f, 0xc608, 0xc609, 0xc60a, 0xc60b, 0xc60c, 0xc60d, 0xc60e, - 0xc60f, 0xc610, 0xc611, 0xc612, 0xc613, 0xc614, 0xc615, 0xc616, - 0xc617, 0xc618, 0x003f, 0xc619, 0xc61a, 0xc61b, 0xc61c, 0xc61d, - 0xc61e, 0xc61f, 0xc620, 0xc621, 0xc622, 0xc623, 0x003f, 0x003f, - 0x003f, 0xc624, 0xc625, 0xc626, 0xc627, 0xc628, 0xc629, 0xc62a, - 0xc62b, 0xc62c, 0xc62d, 0xc62e, 0xc62f, 0xc630, 0xc631, 0xc632, - 0xc633, 0xc634, 0x003f, 0xc635, 0xc636, 0xc637, 0xc638, 0xc639, - 0xc63a, 0xc63b, 0xc63c, 0xc63d, 0xc63e, 0xc63f, 0x003f, 0x003f, - 0x003f, 0xc640, 0xc641, 0xc642, 0xc643, 0xc644, 0xc645, 0xc646, - 0xc647, 0xc648, 0xc649, 0xc64a, 0xc64b, 0xc64c, 0xc64d, 0xc64e, - 0xc64f, 0xc650, 0x003f, 0xc651, 0xc652, 0xc653, 0xc654, 0xc655, - 0xc656, 0xc657, 0xc658, 0xc659, 0xc65a, 0xc65b, 0x003f, 0x003f, - 0x003f, 0xc65c, 0xc65d, 0xc65e, 0xc65f, 0xc660, 0xc661, 0xc662, - 0xc663, 0xc664, 0xc665, 0xc666, 0xc667, 0xc668, 0xc669, 0xc66a, - 0xc66b, 0xc66c, 0x003f, 0xc66d, 0xc66e, 0xc66f, 0xc670, 0xc671, - 0xc672, 0xc673, 0xc674, 0xc675, 0xc676, 0xc677, 0x003f, 0x003f, - /* lead byte b6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc678, 0xc679, 0xc67a, 0xc67b, 0xc67c, 0xc67d, 0xc67e, - 0xc67f, 0xc680, 0xc681, 0xc682, 0xc683, 0xc684, 0xc685, 0xc686, - 0xc687, 0xc688, 0x003f, 0xc689, 0xc68a, 0xc68b, 0xc68c, 0xc68d, - 0xc68e, 0xc68f, 0xc690, 0xc691, 0xc692, 0xc693, 0x003f, 0x003f, - 0x003f, 0xc694, 0xc695, 0xc696, 0xc697, 0xc698, 0xc699, 0xc69a, - 0xc69b, 0xc69c, 0xc69d, 0xc69e, 0xc69f, 0xc6a0, 0xc6a1, 0xc6a2, - 0xc6a3, 0xc6a4, 0x003f, 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, - 0xc6aa, 0xc6ab, 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, 0x003f, 0x003f, - 0x003f, 0xc6b0, 0xc6b1, 0xc6b2, 0xc6b3, 0xc6b4, 0xc6b5, 0xc6b6, - 0xc6b7, 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb, 0xc6bc, 0xc6bd, 0xc6be, - 0xc6bf, 0xc6c0, 0x003f, 0xc6c1, 0xc6c2, 0xc6c3, 0xc6c4, 0xc6c5, - 0xc6c6, 0xc6c7, 0xc6c8, 0xc6c9, 0xc6ca, 0xc6cb, 0x003f, 0x003f, - 0x003f, 0xc6cc, 0xc6cd, 0xc6ce, 0xc6cf, 0xc6d0, 0xc6d1, 0xc6d2, - 0xc6d3, 0xc6d4, 0xc6d5, 0xc6d6, 0xc6d7, 0xc6d8, 0xc6d9, 0xc6da, - 0xc6db, 0xc6dc, 0x003f, 0xc6dd, 0xc6de, 0xc6df, 0xc6e0, 0xc6e1, - 0xc6e2, 0xc6e3, 0xc6e4, 0xc6e5, 0xc6e6, 0xc6e7, 0x003f, 0x003f, - 0x003f, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb, 0xc6ec, 0xc6ed, 0xc6ee, - 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f2, 0xc6f3, 0xc6f4, 0xc6f5, 0xc6f6, - 0xc6f7, 0xc6f8, 0x003f, 0xc6f9, 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fd, - 0xc6fe, 0xc6ff, 0xc700, 0xc701, 0xc702, 0xc703, 0x003f, 0x003f, - 0x003f, 0xc704, 0xc705, 0xc706, 0xc707, 0xc708, 0xc709, 0xc70a, - 0xc70b, 0xc70c, 0xc70d, 0xc70e, 0xc70f, 0xc710, 0xc711, 0xc712, - 0xc713, 0xc714, 0x003f, 0xc715, 0xc716, 0xc717, 0xc718, 0xc719, - 0xc71a, 0xc71b, 0xc71c, 0xc71d, 0xc71e, 0xc71f, 0x003f, 0x003f, - /* lead byte b7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc720, 0xc721, 0xc722, 0xc723, 0xc724, 0xc725, 0xc726, - 0xc727, 0xc728, 0xc729, 0xc72a, 0xc72b, 0xc72c, 0xc72d, 0xc72e, - 0xc72f, 0xc730, 0x003f, 0xc731, 0xc732, 0xc733, 0xc734, 0xc735, - 0xc736, 0xc737, 0xc738, 0xc739, 0xc73a, 0xc73b, 0x003f, 0x003f, - 0x003f, 0xc73c, 0xc73d, 0xc73e, 0xc73f, 0xc740, 0xc741, 0xc742, - 0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, 0xc74a, - 0xc74b, 0xc74c, 0x003f, 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751, - 0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0x003f, 0x003f, - 0x003f, 0xc758, 0xc759, 0xc75a, 0xc75b, 0xc75c, 0xc75d, 0xc75e, - 0xc75f, 0xc760, 0xc761, 0xc762, 0xc763, 0xc764, 0xc765, 0xc766, - 0xc767, 0xc768, 0x003f, 0xc769, 0xc76a, 0xc76b, 0xc76c, 0xc76d, - 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc772, 0xc773, 0x003f, 0x003f, - 0x003f, 0xc774, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, - 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc77f, 0xc780, 0xc781, 0xc782, - 0xc783, 0xc784, 0x003f, 0xc785, 0xc786, 0xc787, 0xc788, 0xc789, - 0xc78a, 0xc78b, 0xc78c, 0xc78d, 0xc78e, 0xc78f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte b8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3148, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc790, 0xc791, 0xc792, 0xc793, 0xc794, 0xc795, 0xc796, - 0xc797, 0xc798, 0xc799, 0xc79a, 0xc79b, 0xc79c, 0xc79d, 0xc79e, - 0xc79f, 0xc7a0, 0x003f, 0xc7a1, 0xc7a2, 0xc7a3, 0xc7a4, 0xc7a5, - 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0x003f, 0x003f, - 0x003f, 0xc7ac, 0xc7ad, 0xc7ae, 0xc7af, 0xc7b0, 0xc7b1, 0xc7b2, - 0xc7b3, 0xc7b4, 0xc7b5, 0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, - 0xc7bb, 0xc7bc, 0x003f, 0xc7bd, 0xc7be, 0xc7bf, 0xc7c0, 0xc7c1, - 0xc7c2, 0xc7c3, 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0x003f, 0x003f, - 0x003f, 0xc7c8, 0xc7c9, 0xc7ca, 0xc7cb, 0xc7cc, 0xc7cd, 0xc7ce, - 0xc7cf, 0xc7d0, 0xc7d1, 0xc7d2, 0xc7d3, 0xc7d4, 0xc7d5, 0xc7d6, - 0xc7d7, 0xc7d8, 0x003f, 0xc7d9, 0xc7da, 0xc7db, 0xc7dc, 0xc7dd, - 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3, 0x003f, 0x003f, - 0x003f, 0xc7e4, 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e8, 0xc7e9, 0xc7ea, - 0xc7eb, 0xc7ec, 0xc7ed, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, - 0xc7f3, 0xc7f4, 0x003f, 0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7f9, - 0xc7fa, 0xc7fb, 0xc7fc, 0xc7fd, 0xc7fe, 0xc7ff, 0x003f, 0x003f, - 0x003f, 0xc800, 0xc801, 0xc802, 0xc803, 0xc804, 0xc805, 0xc806, - 0xc807, 0xc808, 0xc809, 0xc80a, 0xc80b, 0xc80c, 0xc80d, 0xc80e, - 0xc80f, 0xc810, 0x003f, 0xc811, 0xc812, 0xc813, 0xc814, 0xc815, - 0xc816, 0xc817, 0xc818, 0xc819, 0xc81a, 0xc81b, 0x003f, 0x003f, - /* lead byte b9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc81c, 0xc81d, 0xc81e, 0xc81f, 0xc820, 0xc821, 0xc822, - 0xc823, 0xc824, 0xc825, 0xc826, 0xc827, 0xc828, 0xc829, 0xc82a, - 0xc82b, 0xc82c, 0x003f, 0xc82d, 0xc82e, 0xc82f, 0xc830, 0xc831, - 0xc832, 0xc833, 0xc834, 0xc835, 0xc836, 0xc837, 0x003f, 0x003f, - 0x003f, 0xc838, 0xc839, 0xc83a, 0xc83b, 0xc83c, 0xc83d, 0xc83e, - 0xc83f, 0xc840, 0xc841, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, - 0xc847, 0xc848, 0x003f, 0xc849, 0xc84a, 0xc84b, 0xc84c, 0xc84d, - 0xc84e, 0xc84f, 0xc850, 0xc851, 0xc852, 0xc853, 0x003f, 0x003f, - 0x003f, 0xc854, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859, 0xc85a, - 0xc85b, 0xc85c, 0xc85d, 0xc85e, 0xc85f, 0xc860, 0xc861, 0xc862, - 0xc863, 0xc864, 0x003f, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869, - 0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0x003f, 0x003f, - 0x003f, 0xc870, 0xc871, 0xc872, 0xc873, 0xc874, 0xc875, 0xc876, - 0xc877, 0xc878, 0xc879, 0xc87a, 0xc87b, 0xc87c, 0xc87d, 0xc87e, - 0xc87f, 0xc880, 0x003f, 0xc881, 0xc882, 0xc883, 0xc884, 0xc885, - 0xc886, 0xc887, 0xc888, 0xc889, 0xc88a, 0xc88b, 0x003f, 0x003f, - 0x003f, 0xc88c, 0xc88d, 0xc88e, 0xc88f, 0xc890, 0xc891, 0xc892, - 0xc893, 0xc894, 0xc895, 0xc896, 0xc897, 0xc898, 0xc899, 0xc89a, - 0xc89b, 0xc89c, 0x003f, 0xc89d, 0xc89e, 0xc89f, 0xc8a0, 0xc8a1, - 0xc8a2, 0xc8a3, 0xc8a4, 0xc8a5, 0xc8a6, 0xc8a7, 0x003f, 0x003f, - 0x003f, 0xc8a8, 0xc8a9, 0xc8aa, 0xc8ab, 0xc8ac, 0xc8ad, 0xc8ae, - 0xc8af, 0xc8b0, 0xc8b1, 0xc8b2, 0xc8b3, 0xc8b4, 0xc8b5, 0xc8b6, - 0xc8b7, 0xc8b8, 0x003f, 0xc8b9, 0xc8ba, 0xc8bb, 0xc8bc, 0xc8bd, - 0xc8be, 0xc8bf, 0xc8c0, 0xc8c1, 0xc8c2, 0xc8c3, 0x003f, 0x003f, - /* lead byte ba */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc8c4, 0xc8c5, 0xc8c6, 0xc8c7, 0xc8c8, 0xc8c9, 0xc8ca, - 0xc8cb, 0xc8cc, 0xc8cd, 0xc8ce, 0xc8cf, 0xc8d0, 0xc8d1, 0xc8d2, - 0xc8d3, 0xc8d4, 0x003f, 0xc8d5, 0xc8d6, 0xc8d7, 0xc8d8, 0xc8d9, - 0xc8da, 0xc8db, 0xc8dc, 0xc8dd, 0xc8de, 0xc8df, 0x003f, 0x003f, - 0x003f, 0xc8e0, 0xc8e1, 0xc8e2, 0xc8e3, 0xc8e4, 0xc8e5, 0xc8e6, - 0xc8e7, 0xc8e8, 0xc8e9, 0xc8ea, 0xc8eb, 0xc8ec, 0xc8ed, 0xc8ee, - 0xc8ef, 0xc8f0, 0x003f, 0xc8f1, 0xc8f2, 0xc8f3, 0xc8f4, 0xc8f5, - 0xc8f6, 0xc8f7, 0xc8f8, 0xc8f9, 0xc8fa, 0xc8fb, 0x003f, 0x003f, - 0x003f, 0xc8fc, 0xc8fd, 0xc8fe, 0xc8ff, 0xc900, 0xc901, 0xc902, - 0xc903, 0xc904, 0xc905, 0xc906, 0xc907, 0xc908, 0xc909, 0xc90a, - 0xc90b, 0xc90c, 0x003f, 0xc90d, 0xc90e, 0xc90f, 0xc910, 0xc911, - 0xc912, 0xc913, 0xc914, 0xc915, 0xc916, 0xc917, 0x003f, 0x003f, - 0x003f, 0xc918, 0xc919, 0xc91a, 0xc91b, 0xc91c, 0xc91d, 0xc91e, - 0xc91f, 0xc920, 0xc921, 0xc922, 0xc923, 0xc924, 0xc925, 0xc926, - 0xc927, 0xc928, 0x003f, 0xc929, 0xc92a, 0xc92b, 0xc92c, 0xc92d, - 0xc92e, 0xc92f, 0xc930, 0xc931, 0xc932, 0xc933, 0x003f, 0x003f, - 0x003f, 0xc934, 0xc935, 0xc936, 0xc937, 0xc938, 0xc939, 0xc93a, - 0xc93b, 0xc93c, 0xc93d, 0xc93e, 0xc93f, 0xc940, 0xc941, 0xc942, - 0xc943, 0xc944, 0x003f, 0xc945, 0xc946, 0xc947, 0xc948, 0xc949, - 0xc94a, 0xc94b, 0xc94c, 0xc94d, 0xc94e, 0xc94f, 0x003f, 0x003f, - 0x003f, 0xc950, 0xc951, 0xc952, 0xc953, 0xc954, 0xc955, 0xc956, - 0xc957, 0xc958, 0xc959, 0xc95a, 0xc95b, 0xc95c, 0xc95d, 0xc95e, - 0xc95f, 0xc960, 0x003f, 0xc961, 0xc962, 0xc963, 0xc964, 0xc965, - 0xc966, 0xc967, 0xc968, 0xc969, 0xc96a, 0xc96b, 0x003f, 0x003f, - /* lead byte bb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc96c, 0xc96d, 0xc96e, 0xc96f, 0xc970, 0xc971, 0xc972, - 0xc973, 0xc974, 0xc975, 0xc976, 0xc977, 0xc978, 0xc979, 0xc97a, - 0xc97b, 0xc97c, 0x003f, 0xc97d, 0xc97e, 0xc97f, 0xc980, 0xc981, - 0xc982, 0xc983, 0xc984, 0xc985, 0xc986, 0xc987, 0x003f, 0x003f, - 0x003f, 0xc988, 0xc989, 0xc98a, 0xc98b, 0xc98c, 0xc98d, 0xc98e, - 0xc98f, 0xc990, 0xc991, 0xc992, 0xc993, 0xc994, 0xc995, 0xc996, - 0xc997, 0xc998, 0x003f, 0xc999, 0xc99a, 0xc99b, 0xc99c, 0xc99d, - 0xc99e, 0xc99f, 0xc9a0, 0xc9a1, 0xc9a2, 0xc9a3, 0x003f, 0x003f, - 0x003f, 0xc9a4, 0xc9a5, 0xc9a6, 0xc9a7, 0xc9a8, 0xc9a9, 0xc9aa, - 0xc9ab, 0xc9ac, 0xc9ad, 0xc9ae, 0xc9af, 0xc9b0, 0xc9b1, 0xc9b2, - 0xc9b3, 0xc9b4, 0x003f, 0xc9b5, 0xc9b6, 0xc9b7, 0xc9b8, 0xc9b9, - 0xc9ba, 0xc9bb, 0xc9bc, 0xc9bd, 0xc9be, 0xc9bf, 0x003f, 0x003f, - 0x003f, 0xc9c0, 0xc9c1, 0xc9c2, 0xc9c3, 0xc9c4, 0xc9c5, 0xc9c6, - 0xc9c7, 0xc9c8, 0xc9c9, 0xc9ca, 0xc9cb, 0xc9cc, 0xc9cd, 0xc9ce, - 0xc9cf, 0xc9d0, 0x003f, 0xc9d1, 0xc9d2, 0xc9d3, 0xc9d4, 0xc9d5, - 0xc9d6, 0xc9d7, 0xc9d8, 0xc9d9, 0xc9da, 0xc9db, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte bc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3149, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc9dc, 0xc9dd, 0xc9de, 0xc9df, 0xc9e0, 0xc9e1, 0xc9e2, - 0xc9e3, 0xc9e4, 0xc9e5, 0xc9e6, 0xc9e7, 0xc9e8, 0xc9e9, 0xc9ea, - 0xc9eb, 0xc9ec, 0x003f, 0xc9ed, 0xc9ee, 0xc9ef, 0xc9f0, 0xc9f1, - 0xc9f2, 0xc9f3, 0xc9f4, 0xc9f5, 0xc9f6, 0xc9f7, 0x003f, 0x003f, - 0x003f, 0xc9f8, 0xc9f9, 0xc9fa, 0xc9fb, 0xc9fc, 0xc9fd, 0xc9fe, - 0xc9ff, 0xca00, 0xca01, 0xca02, 0xca03, 0xca04, 0xca05, 0xca06, - 0xca07, 0xca08, 0x003f, 0xca09, 0xca0a, 0xca0b, 0xca0c, 0xca0d, - 0xca0e, 0xca0f, 0xca10, 0xca11, 0xca12, 0xca13, 0x003f, 0x003f, - 0x003f, 0xca14, 0xca15, 0xca16, 0xca17, 0xca18, 0xca19, 0xca1a, - 0xca1b, 0xca1c, 0xca1d, 0xca1e, 0xca1f, 0xca20, 0xca21, 0xca22, - 0xca23, 0xca24, 0x003f, 0xca25, 0xca26, 0xca27, 0xca28, 0xca29, - 0xca2a, 0xca2b, 0xca2c, 0xca2d, 0xca2e, 0xca2f, 0x003f, 0x003f, - 0x003f, 0xca30, 0xca31, 0xca32, 0xca33, 0xca34, 0xca35, 0xca36, - 0xca37, 0xca38, 0xca39, 0xca3a, 0xca3b, 0xca3c, 0xca3d, 0xca3e, - 0xca3f, 0xca40, 0x003f, 0xca41, 0xca42, 0xca43, 0xca44, 0xca45, - 0xca46, 0xca47, 0xca48, 0xca49, 0xca4a, 0xca4b, 0x003f, 0x003f, - 0x003f, 0xca4c, 0xca4d, 0xca4e, 0xca4f, 0xca50, 0xca51, 0xca52, - 0xca53, 0xca54, 0xca55, 0xca56, 0xca57, 0xca58, 0xca59, 0xca5a, - 0xca5b, 0xca5c, 0x003f, 0xca5d, 0xca5e, 0xca5f, 0xca60, 0xca61, - 0xca62, 0xca63, 0xca64, 0xca65, 0xca66, 0xca67, 0x003f, 0x003f, - /* lead byte bd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xca68, 0xca69, 0xca6a, 0xca6b, 0xca6c, 0xca6d, 0xca6e, - 0xca6f, 0xca70, 0xca71, 0xca72, 0xca73, 0xca74, 0xca75, 0xca76, - 0xca77, 0xca78, 0x003f, 0xca79, 0xca7a, 0xca7b, 0xca7c, 0xca7d, - 0xca7e, 0xca7f, 0xca80, 0xca81, 0xca82, 0xca83, 0x003f, 0x003f, - 0x003f, 0xca84, 0xca85, 0xca86, 0xca87, 0xca88, 0xca89, 0xca8a, - 0xca8b, 0xca8c, 0xca8d, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca92, - 0xca93, 0xca94, 0x003f, 0xca95, 0xca96, 0xca97, 0xca98, 0xca99, - 0xca9a, 0xca9b, 0xca9c, 0xca9d, 0xca9e, 0xca9f, 0x003f, 0x003f, - 0x003f, 0xcaa0, 0xcaa1, 0xcaa2, 0xcaa3, 0xcaa4, 0xcaa5, 0xcaa6, - 0xcaa7, 0xcaa8, 0xcaa9, 0xcaaa, 0xcaab, 0xcaac, 0xcaad, 0xcaae, - 0xcaaf, 0xcab0, 0x003f, 0xcab1, 0xcab2, 0xcab3, 0xcab4, 0xcab5, - 0xcab6, 0xcab7, 0xcab8, 0xcab9, 0xcaba, 0xcabb, 0x003f, 0x003f, - 0x003f, 0xcabc, 0xcabd, 0xcabe, 0xcabf, 0xcac0, 0xcac1, 0xcac2, - 0xcac3, 0xcac4, 0xcac5, 0xcac6, 0xcac7, 0xcac8, 0xcac9, 0xcaca, - 0xcacb, 0xcacc, 0x003f, 0xcacd, 0xcace, 0xcacf, 0xcad0, 0xcad1, - 0xcad2, 0xcad3, 0xcad4, 0xcad5, 0xcad6, 0xcad7, 0x003f, 0x003f, - 0x003f, 0xcad8, 0xcad9, 0xcada, 0xcadb, 0xcadc, 0xcadd, 0xcade, - 0xcadf, 0xcae0, 0xcae1, 0xcae2, 0xcae3, 0xcae4, 0xcae5, 0xcae6, - 0xcae7, 0xcae8, 0x003f, 0xcae9, 0xcaea, 0xcaeb, 0xcaec, 0xcaed, - 0xcaee, 0xcaef, 0xcaf0, 0xcaf1, 0xcaf2, 0xcaf3, 0x003f, 0x003f, - 0x003f, 0xcaf4, 0xcaf5, 0xcaf6, 0xcaf7, 0xcaf8, 0xcaf9, 0xcafa, - 0xcafb, 0xcafc, 0xcafd, 0xcafe, 0xcaff, 0xcb00, 0xcb01, 0xcb02, - 0xcb03, 0xcb04, 0x003f, 0xcb05, 0xcb06, 0xcb07, 0xcb08, 0xcb09, - 0xcb0a, 0xcb0b, 0xcb0c, 0xcb0d, 0xcb0e, 0xcb0f, 0x003f, 0x003f, - /* lead byte be */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcb10, 0xcb11, 0xcb12, 0xcb13, 0xcb14, 0xcb15, 0xcb16, - 0xcb17, 0xcb18, 0xcb19, 0xcb1a, 0xcb1b, 0xcb1c, 0xcb1d, 0xcb1e, - 0xcb1f, 0xcb20, 0x003f, 0xcb21, 0xcb22, 0xcb23, 0xcb24, 0xcb25, - 0xcb26, 0xcb27, 0xcb28, 0xcb29, 0xcb2a, 0xcb2b, 0x003f, 0x003f, - 0x003f, 0xcb2c, 0xcb2d, 0xcb2e, 0xcb2f, 0xcb30, 0xcb31, 0xcb32, - 0xcb33, 0xcb34, 0xcb35, 0xcb36, 0xcb37, 0xcb38, 0xcb39, 0xcb3a, - 0xcb3b, 0xcb3c, 0x003f, 0xcb3d, 0xcb3e, 0xcb3f, 0xcb40, 0xcb41, - 0xcb42, 0xcb43, 0xcb44, 0xcb45, 0xcb46, 0xcb47, 0x003f, 0x003f, - 0x003f, 0xcb48, 0xcb49, 0xcb4a, 0xcb4b, 0xcb4c, 0xcb4d, 0xcb4e, - 0xcb4f, 0xcb50, 0xcb51, 0xcb52, 0xcb53, 0xcb54, 0xcb55, 0xcb56, - 0xcb57, 0xcb58, 0x003f, 0xcb59, 0xcb5a, 0xcb5b, 0xcb5c, 0xcb5d, - 0xcb5e, 0xcb5f, 0xcb60, 0xcb61, 0xcb62, 0xcb63, 0x003f, 0x003f, - 0x003f, 0xcb64, 0xcb65, 0xcb66, 0xcb67, 0xcb68, 0xcb69, 0xcb6a, - 0xcb6b, 0xcb6c, 0xcb6d, 0xcb6e, 0xcb6f, 0xcb70, 0xcb71, 0xcb72, - 0xcb73, 0xcb74, 0x003f, 0xcb75, 0xcb76, 0xcb77, 0xcb78, 0xcb79, - 0xcb7a, 0xcb7b, 0xcb7c, 0xcb7d, 0xcb7e, 0xcb7f, 0x003f, 0x003f, - 0x003f, 0xcb80, 0xcb81, 0xcb82, 0xcb83, 0xcb84, 0xcb85, 0xcb86, - 0xcb87, 0xcb88, 0xcb89, 0xcb8a, 0xcb8b, 0xcb8c, 0xcb8d, 0xcb8e, - 0xcb8f, 0xcb90, 0x003f, 0xcb91, 0xcb92, 0xcb93, 0xcb94, 0xcb95, - 0xcb96, 0xcb97, 0xcb98, 0xcb99, 0xcb9a, 0xcb9b, 0x003f, 0x003f, - 0x003f, 0xcb9c, 0xcb9d, 0xcb9e, 0xcb9f, 0xcba0, 0xcba1, 0xcba2, - 0xcba3, 0xcba4, 0xcba5, 0xcba6, 0xcba7, 0xcba8, 0xcba9, 0xcbaa, - 0xcbab, 0xcbac, 0x003f, 0xcbad, 0xcbae, 0xcbaf, 0xcbb0, 0xcbb1, - 0xcbb2, 0xcbb3, 0xcbb4, 0xcbb5, 0xcbb6, 0xcbb7, 0x003f, 0x003f, - /* lead byte bf */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcbb8, 0xcbb9, 0xcbba, 0xcbbb, 0xcbbc, 0xcbbd, 0xcbbe, - 0xcbbf, 0xcbc0, 0xcbc1, 0xcbc2, 0xcbc3, 0xcbc4, 0xcbc5, 0xcbc6, - 0xcbc7, 0xcbc8, 0x003f, 0xcbc9, 0xcbca, 0xcbcb, 0xcbcc, 0xcbcd, - 0xcbce, 0xcbcf, 0xcbd0, 0xcbd1, 0xcbd2, 0xcbd3, 0x003f, 0x003f, - 0x003f, 0xcbd4, 0xcbd5, 0xcbd6, 0xcbd7, 0xcbd8, 0xcbd9, 0xcbda, - 0xcbdb, 0xcbdc, 0xcbdd, 0xcbde, 0xcbdf, 0xcbe0, 0xcbe1, 0xcbe2, - 0xcbe3, 0xcbe4, 0x003f, 0xcbe5, 0xcbe6, 0xcbe7, 0xcbe8, 0xcbe9, - 0xcbea, 0xcbeb, 0xcbec, 0xcbed, 0xcbee, 0xcbef, 0x003f, 0x003f, - 0x003f, 0xcbf0, 0xcbf1, 0xcbf2, 0xcbf3, 0xcbf4, 0xcbf5, 0xcbf6, - 0xcbf7, 0xcbf8, 0xcbf9, 0xcbfa, 0xcbfb, 0xcbfc, 0xcbfd, 0xcbfe, - 0xcbff, 0xcc00, 0x003f, 0xcc01, 0xcc02, 0xcc03, 0xcc04, 0xcc05, - 0xcc06, 0xcc07, 0xcc08, 0xcc09, 0xcc0a, 0xcc0b, 0x003f, 0x003f, - 0x003f, 0xcc0c, 0xcc0d, 0xcc0e, 0xcc0f, 0xcc10, 0xcc11, 0xcc12, - 0xcc13, 0xcc14, 0xcc15, 0xcc16, 0xcc17, 0xcc18, 0xcc19, 0xcc1a, - 0xcc1b, 0xcc1c, 0x003f, 0xcc1d, 0xcc1e, 0xcc1f, 0xcc20, 0xcc21, - 0xcc22, 0xcc23, 0xcc24, 0xcc25, 0xcc26, 0xcc27, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte c0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x314a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcc28, 0xcc29, 0xcc2a, 0xcc2b, 0xcc2c, 0xcc2d, 0xcc2e, - 0xcc2f, 0xcc30, 0xcc31, 0xcc32, 0xcc33, 0xcc34, 0xcc35, 0xcc36, - 0xcc37, 0xcc38, 0x003f, 0xcc39, 0xcc3a, 0xcc3b, 0xcc3c, 0xcc3d, - 0xcc3e, 0xcc3f, 0xcc40, 0xcc41, 0xcc42, 0xcc43, 0x003f, 0x003f, - 0x003f, 0xcc44, 0xcc45, 0xcc46, 0xcc47, 0xcc48, 0xcc49, 0xcc4a, - 0xcc4b, 0xcc4c, 0xcc4d, 0xcc4e, 0xcc4f, 0xcc50, 0xcc51, 0xcc52, - 0xcc53, 0xcc54, 0x003f, 0xcc55, 0xcc56, 0xcc57, 0xcc58, 0xcc59, - 0xcc5a, 0xcc5b, 0xcc5c, 0xcc5d, 0xcc5e, 0xcc5f, 0x003f, 0x003f, - 0x003f, 0xcc60, 0xcc61, 0xcc62, 0xcc63, 0xcc64, 0xcc65, 0xcc66, - 0xcc67, 0xcc68, 0xcc69, 0xcc6a, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, - 0xcc6f, 0xcc70, 0x003f, 0xcc71, 0xcc72, 0xcc73, 0xcc74, 0xcc75, - 0xcc76, 0xcc77, 0xcc78, 0xcc79, 0xcc7a, 0xcc7b, 0x003f, 0x003f, - 0x003f, 0xcc7c, 0xcc7d, 0xcc7e, 0xcc7f, 0xcc80, 0xcc81, 0xcc82, - 0xcc83, 0xcc84, 0xcc85, 0xcc86, 0xcc87, 0xcc88, 0xcc89, 0xcc8a, - 0xcc8b, 0xcc8c, 0x003f, 0xcc8d, 0xcc8e, 0xcc8f, 0xcc90, 0xcc91, - 0xcc92, 0xcc93, 0xcc94, 0xcc95, 0xcc96, 0xcc97, 0x003f, 0x003f, - 0x003f, 0xcc98, 0xcc99, 0xcc9a, 0xcc9b, 0xcc9c, 0xcc9d, 0xcc9e, - 0xcc9f, 0xcca0, 0xcca1, 0xcca2, 0xcca3, 0xcca4, 0xcca5, 0xcca6, - 0xcca7, 0xcca8, 0x003f, 0xcca9, 0xccaa, 0xccab, 0xccac, 0xccad, - 0xccae, 0xccaf, 0xccb0, 0xccb1, 0xccb2, 0xccb3, 0x003f, 0x003f, - /* lead byte c1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xccb4, 0xccb5, 0xccb6, 0xccb7, 0xccb8, 0xccb9, 0xccba, - 0xccbb, 0xccbc, 0xccbd, 0xccbe, 0xccbf, 0xccc0, 0xccc1, 0xccc2, - 0xccc3, 0xccc4, 0x003f, 0xccc5, 0xccc6, 0xccc7, 0xccc8, 0xccc9, - 0xccca, 0xcccb, 0xcccc, 0xcccd, 0xccce, 0xcccf, 0x003f, 0x003f, - 0x003f, 0xccd0, 0xccd1, 0xccd2, 0xccd3, 0xccd4, 0xccd5, 0xccd6, - 0xccd7, 0xccd8, 0xccd9, 0xccda, 0xccdb, 0xccdc, 0xccdd, 0xccde, - 0xccdf, 0xcce0, 0x003f, 0xcce1, 0xcce2, 0xcce3, 0xcce4, 0xcce5, - 0xcce6, 0xcce7, 0xcce8, 0xcce9, 0xccea, 0xcceb, 0x003f, 0x003f, - 0x003f, 0xccec, 0xcced, 0xccee, 0xccef, 0xccf0, 0xccf1, 0xccf2, - 0xccf3, 0xccf4, 0xccf5, 0xccf6, 0xccf7, 0xccf8, 0xccf9, 0xccfa, - 0xccfb, 0xccfc, 0x003f, 0xccfd, 0xccfe, 0xccff, 0xcd00, 0xcd01, - 0xcd02, 0xcd03, 0xcd04, 0xcd05, 0xcd06, 0xcd07, 0x003f, 0x003f, - 0x003f, 0xcd08, 0xcd09, 0xcd0a, 0xcd0b, 0xcd0c, 0xcd0d, 0xcd0e, - 0xcd0f, 0xcd10, 0xcd11, 0xcd12, 0xcd13, 0xcd14, 0xcd15, 0xcd16, - 0xcd17, 0xcd18, 0x003f, 0xcd19, 0xcd1a, 0xcd1b, 0xcd1c, 0xcd1d, - 0xcd1e, 0xcd1f, 0xcd20, 0xcd21, 0xcd22, 0xcd23, 0x003f, 0x003f, - 0x003f, 0xcd24, 0xcd25, 0xcd26, 0xcd27, 0xcd28, 0xcd29, 0xcd2a, - 0xcd2b, 0xcd2c, 0xcd2d, 0xcd2e, 0xcd2f, 0xcd30, 0xcd31, 0xcd32, - 0xcd33, 0xcd34, 0x003f, 0xcd35, 0xcd36, 0xcd37, 0xcd38, 0xcd39, - 0xcd3a, 0xcd3b, 0xcd3c, 0xcd3d, 0xcd3e, 0xcd3f, 0x003f, 0x003f, - 0x003f, 0xcd40, 0xcd41, 0xcd42, 0xcd43, 0xcd44, 0xcd45, 0xcd46, - 0xcd47, 0xcd48, 0xcd49, 0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, - 0xcd4f, 0xcd50, 0x003f, 0xcd51, 0xcd52, 0xcd53, 0xcd54, 0xcd55, - 0xcd56, 0xcd57, 0xcd58, 0xcd59, 0xcd5a, 0xcd5b, 0x003f, 0x003f, - /* lead byte c2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcd5c, 0xcd5d, 0xcd5e, 0xcd5f, 0xcd60, 0xcd61, 0xcd62, - 0xcd63, 0xcd64, 0xcd65, 0xcd66, 0xcd67, 0xcd68, 0xcd69, 0xcd6a, - 0xcd6b, 0xcd6c, 0x003f, 0xcd6d, 0xcd6e, 0xcd6f, 0xcd70, 0xcd71, - 0xcd72, 0xcd73, 0xcd74, 0xcd75, 0xcd76, 0xcd77, 0x003f, 0x003f, - 0x003f, 0xcd78, 0xcd79, 0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, 0xcd7e, - 0xcd7f, 0xcd80, 0xcd81, 0xcd82, 0xcd83, 0xcd84, 0xcd85, 0xcd86, - 0xcd87, 0xcd88, 0x003f, 0xcd89, 0xcd8a, 0xcd8b, 0xcd8c, 0xcd8d, - 0xcd8e, 0xcd8f, 0xcd90, 0xcd91, 0xcd92, 0xcd93, 0x003f, 0x003f, - 0x003f, 0xcd94, 0xcd95, 0xcd96, 0xcd97, 0xcd98, 0xcd99, 0xcd9a, - 0xcd9b, 0xcd9c, 0xcd9d, 0xcd9e, 0xcd9f, 0xcda0, 0xcda1, 0xcda2, - 0xcda3, 0xcda4, 0x003f, 0xcda5, 0xcda6, 0xcda7, 0xcda8, 0xcda9, - 0xcdaa, 0xcdab, 0xcdac, 0xcdad, 0xcdae, 0xcdaf, 0x003f, 0x003f, - 0x003f, 0xcdb0, 0xcdb1, 0xcdb2, 0xcdb3, 0xcdb4, 0xcdb5, 0xcdb6, - 0xcdb7, 0xcdb8, 0xcdb9, 0xcdba, 0xcdbb, 0xcdbc, 0xcdbd, 0xcdbe, - 0xcdbf, 0xcdc0, 0x003f, 0xcdc1, 0xcdc2, 0xcdc3, 0xcdc4, 0xcdc5, - 0xcdc6, 0xcdc7, 0xcdc8, 0xcdc9, 0xcdca, 0xcdcb, 0x003f, 0x003f, - 0x003f, 0xcdcc, 0xcdcd, 0xcdce, 0xcdcf, 0xcdd0, 0xcdd1, 0xcdd2, - 0xcdd3, 0xcdd4, 0xcdd5, 0xcdd6, 0xcdd7, 0xcdd8, 0xcdd9, 0xcdda, - 0xcddb, 0xcddc, 0x003f, 0xcddd, 0xcdde, 0xcddf, 0xcde0, 0xcde1, - 0xcde2, 0xcde3, 0xcde4, 0xcde5, 0xcde6, 0xcde7, 0x003f, 0x003f, - 0x003f, 0xcde8, 0xcde9, 0xcdea, 0xcdeb, 0xcdec, 0xcded, 0xcdee, - 0xcdef, 0xcdf0, 0xcdf1, 0xcdf2, 0xcdf3, 0xcdf4, 0xcdf5, 0xcdf6, - 0xcdf7, 0xcdf8, 0x003f, 0xcdf9, 0xcdfa, 0xcdfb, 0xcdfc, 0xcdfd, - 0xcdfe, 0xcdff, 0xce00, 0xce01, 0xce02, 0xce03, 0x003f, 0x003f, - /* lead byte c3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xce04, 0xce05, 0xce06, 0xce07, 0xce08, 0xce09, 0xce0a, - 0xce0b, 0xce0c, 0xce0d, 0xce0e, 0xce0f, 0xce10, 0xce11, 0xce12, - 0xce13, 0xce14, 0x003f, 0xce15, 0xce16, 0xce17, 0xce18, 0xce19, - 0xce1a, 0xce1b, 0xce1c, 0xce1d, 0xce1e, 0xce1f, 0x003f, 0x003f, - 0x003f, 0xce20, 0xce21, 0xce22, 0xce23, 0xce24, 0xce25, 0xce26, - 0xce27, 0xce28, 0xce29, 0xce2a, 0xce2b, 0xce2c, 0xce2d, 0xce2e, - 0xce2f, 0xce30, 0x003f, 0xce31, 0xce32, 0xce33, 0xce34, 0xce35, - 0xce36, 0xce37, 0xce38, 0xce39, 0xce3a, 0xce3b, 0x003f, 0x003f, - 0x003f, 0xce3c, 0xce3d, 0xce3e, 0xce3f, 0xce40, 0xce41, 0xce42, - 0xce43, 0xce44, 0xce45, 0xce46, 0xce47, 0xce48, 0xce49, 0xce4a, - 0xce4b, 0xce4c, 0x003f, 0xce4d, 0xce4e, 0xce4f, 0xce50, 0xce51, - 0xce52, 0xce53, 0xce54, 0xce55, 0xce56, 0xce57, 0x003f, 0x003f, - 0x003f, 0xce58, 0xce59, 0xce5a, 0xce5b, 0xce5c, 0xce5d, 0xce5e, - 0xce5f, 0xce60, 0xce61, 0xce62, 0xce63, 0xce64, 0xce65, 0xce66, - 0xce67, 0xce68, 0x003f, 0xce69, 0xce6a, 0xce6b, 0xce6c, 0xce6d, - 0xce6e, 0xce6f, 0xce70, 0xce71, 0xce72, 0xce73, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte c4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x314b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xce74, 0xce75, 0xce76, 0xce77, 0xce78, 0xce79, 0xce7a, - 0xce7b, 0xce7c, 0xce7d, 0xce7e, 0xce7f, 0xce80, 0xce81, 0xce82, - 0xce83, 0xce84, 0x003f, 0xce85, 0xce86, 0xce87, 0xce88, 0xce89, - 0xce8a, 0xce8b, 0xce8c, 0xce8d, 0xce8e, 0xce8f, 0x003f, 0x003f, - 0x003f, 0xce90, 0xce91, 0xce92, 0xce93, 0xce94, 0xce95, 0xce96, - 0xce97, 0xce98, 0xce99, 0xce9a, 0xce9b, 0xce9c, 0xce9d, 0xce9e, - 0xce9f, 0xcea0, 0x003f, 0xcea1, 0xcea2, 0xcea3, 0xcea4, 0xcea5, - 0xcea6, 0xcea7, 0xcea8, 0xcea9, 0xceaa, 0xceab, 0x003f, 0x003f, - 0x003f, 0xceac, 0xcead, 0xceae, 0xceaf, 0xceb0, 0xceb1, 0xceb2, - 0xceb3, 0xceb4, 0xceb5, 0xceb6, 0xceb7, 0xceb8, 0xceb9, 0xceba, - 0xcebb, 0xcebc, 0x003f, 0xcebd, 0xcebe, 0xcebf, 0xcec0, 0xcec1, - 0xcec2, 0xcec3, 0xcec4, 0xcec5, 0xcec6, 0xcec7, 0x003f, 0x003f, - 0x003f, 0xcec8, 0xcec9, 0xceca, 0xcecb, 0xcecc, 0xcecd, 0xcece, - 0xcecf, 0xced0, 0xced1, 0xced2, 0xced3, 0xced4, 0xced5, 0xced6, - 0xced7, 0xced8, 0x003f, 0xced9, 0xceda, 0xcedb, 0xcedc, 0xcedd, - 0xcede, 0xcedf, 0xcee0, 0xcee1, 0xcee2, 0xcee3, 0x003f, 0x003f, - 0x003f, 0xcee4, 0xcee5, 0xcee6, 0xcee7, 0xcee8, 0xcee9, 0xceea, - 0xceeb, 0xceec, 0xceed, 0xceee, 0xceef, 0xcef0, 0xcef1, 0xcef2, - 0xcef3, 0xcef4, 0x003f, 0xcef5, 0xcef6, 0xcef7, 0xcef8, 0xcef9, - 0xcefa, 0xcefb, 0xcefc, 0xcefd, 0xcefe, 0xceff, 0x003f, 0x003f, - /* lead byte c5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcf00, 0xcf01, 0xcf02, 0xcf03, 0xcf04, 0xcf05, 0xcf06, - 0xcf07, 0xcf08, 0xcf09, 0xcf0a, 0xcf0b, 0xcf0c, 0xcf0d, 0xcf0e, - 0xcf0f, 0xcf10, 0x003f, 0xcf11, 0xcf12, 0xcf13, 0xcf14, 0xcf15, - 0xcf16, 0xcf17, 0xcf18, 0xcf19, 0xcf1a, 0xcf1b, 0x003f, 0x003f, - 0x003f, 0xcf1c, 0xcf1d, 0xcf1e, 0xcf1f, 0xcf20, 0xcf21, 0xcf22, - 0xcf23, 0xcf24, 0xcf25, 0xcf26, 0xcf27, 0xcf28, 0xcf29, 0xcf2a, - 0xcf2b, 0xcf2c, 0x003f, 0xcf2d, 0xcf2e, 0xcf2f, 0xcf30, 0xcf31, - 0xcf32, 0xcf33, 0xcf34, 0xcf35, 0xcf36, 0xcf37, 0x003f, 0x003f, - 0x003f, 0xcf38, 0xcf39, 0xcf3a, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, - 0xcf3f, 0xcf40, 0xcf41, 0xcf42, 0xcf43, 0xcf44, 0xcf45, 0xcf46, - 0xcf47, 0xcf48, 0x003f, 0xcf49, 0xcf4a, 0xcf4b, 0xcf4c, 0xcf4d, - 0xcf4e, 0xcf4f, 0xcf50, 0xcf51, 0xcf52, 0xcf53, 0x003f, 0x003f, - 0x003f, 0xcf54, 0xcf55, 0xcf56, 0xcf57, 0xcf58, 0xcf59, 0xcf5a, - 0xcf5b, 0xcf5c, 0xcf5d, 0xcf5e, 0xcf5f, 0xcf60, 0xcf61, 0xcf62, - 0xcf63, 0xcf64, 0x003f, 0xcf65, 0xcf66, 0xcf67, 0xcf68, 0xcf69, - 0xcf6a, 0xcf6b, 0xcf6c, 0xcf6d, 0xcf6e, 0xcf6f, 0x003f, 0x003f, - 0x003f, 0xcf70, 0xcf71, 0xcf72, 0xcf73, 0xcf74, 0xcf75, 0xcf76, - 0xcf77, 0xcf78, 0xcf79, 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, 0xcf7e, - 0xcf7f, 0xcf80, 0x003f, 0xcf81, 0xcf82, 0xcf83, 0xcf84, 0xcf85, - 0xcf86, 0xcf87, 0xcf88, 0xcf89, 0xcf8a, 0xcf8b, 0x003f, 0x003f, - 0x003f, 0xcf8c, 0xcf8d, 0xcf8e, 0xcf8f, 0xcf90, 0xcf91, 0xcf92, - 0xcf93, 0xcf94, 0xcf95, 0xcf96, 0xcf97, 0xcf98, 0xcf99, 0xcf9a, - 0xcf9b, 0xcf9c, 0x003f, 0xcf9d, 0xcf9e, 0xcf9f, 0xcfa0, 0xcfa1, - 0xcfa2, 0xcfa3, 0xcfa4, 0xcfa5, 0xcfa6, 0xcfa7, 0x003f, 0x003f, - /* lead byte c6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcfa8, 0xcfa9, 0xcfaa, 0xcfab, 0xcfac, 0xcfad, 0xcfae, - 0xcfaf, 0xcfb0, 0xcfb1, 0xcfb2, 0xcfb3, 0xcfb4, 0xcfb5, 0xcfb6, - 0xcfb7, 0xcfb8, 0x003f, 0xcfb9, 0xcfba, 0xcfbb, 0xcfbc, 0xcfbd, - 0xcfbe, 0xcfbf, 0xcfc0, 0xcfc1, 0xcfc2, 0xcfc3, 0x003f, 0x003f, - 0x003f, 0xcfc4, 0xcfc5, 0xcfc6, 0xcfc7, 0xcfc8, 0xcfc9, 0xcfca, - 0xcfcb, 0xcfcc, 0xcfcd, 0xcfce, 0xcfcf, 0xcfd0, 0xcfd1, 0xcfd2, - 0xcfd3, 0xcfd4, 0x003f, 0xcfd5, 0xcfd6, 0xcfd7, 0xcfd8, 0xcfd9, - 0xcfda, 0xcfdb, 0xcfdc, 0xcfdd, 0xcfde, 0xcfdf, 0x003f, 0x003f, - 0x003f, 0xcfe0, 0xcfe1, 0xcfe2, 0xcfe3, 0xcfe4, 0xcfe5, 0xcfe6, - 0xcfe7, 0xcfe8, 0xcfe9, 0xcfea, 0xcfeb, 0xcfec, 0xcfed, 0xcfee, - 0xcfef, 0xcff0, 0x003f, 0xcff1, 0xcff2, 0xcff3, 0xcff4, 0xcff5, - 0xcff6, 0xcff7, 0xcff8, 0xcff9, 0xcffa, 0xcffb, 0x003f, 0x003f, - 0x003f, 0xcffc, 0xcffd, 0xcffe, 0xcfff, 0xd000, 0xd001, 0xd002, - 0xd003, 0xd004, 0xd005, 0xd006, 0xd007, 0xd008, 0xd009, 0xd00a, - 0xd00b, 0xd00c, 0x003f, 0xd00d, 0xd00e, 0xd00f, 0xd010, 0xd011, - 0xd012, 0xd013, 0xd014, 0xd015, 0xd016, 0xd017, 0x003f, 0x003f, - 0x003f, 0xd018, 0xd019, 0xd01a, 0xd01b, 0xd01c, 0xd01d, 0xd01e, - 0xd01f, 0xd020, 0xd021, 0xd022, 0xd023, 0xd024, 0xd025, 0xd026, - 0xd027, 0xd028, 0x003f, 0xd029, 0xd02a, 0xd02b, 0xd02c, 0xd02d, - 0xd02e, 0xd02f, 0xd030, 0xd031, 0xd032, 0xd033, 0x003f, 0x003f, - 0x003f, 0xd034, 0xd035, 0xd036, 0xd037, 0xd038, 0xd039, 0xd03a, - 0xd03b, 0xd03c, 0xd03d, 0xd03e, 0xd03f, 0xd040, 0xd041, 0xd042, - 0xd043, 0xd044, 0x003f, 0xd045, 0xd046, 0xd047, 0xd048, 0xd049, - 0xd04a, 0xd04b, 0xd04c, 0xd04d, 0xd04e, 0xd04f, 0x003f, 0x003f, - /* lead byte c7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd050, 0xd051, 0xd052, 0xd053, 0xd054, 0xd055, 0xd056, - 0xd057, 0xd058, 0xd059, 0xd05a, 0xd05b, 0xd05c, 0xd05d, 0xd05e, - 0xd05f, 0xd060, 0x003f, 0xd061, 0xd062, 0xd063, 0xd064, 0xd065, - 0xd066, 0xd067, 0xd068, 0xd069, 0xd06a, 0xd06b, 0x003f, 0x003f, - 0x003f, 0xd06c, 0xd06d, 0xd06e, 0xd06f, 0xd070, 0xd071, 0xd072, - 0xd073, 0xd074, 0xd075, 0xd076, 0xd077, 0xd078, 0xd079, 0xd07a, - 0xd07b, 0xd07c, 0x003f, 0xd07d, 0xd07e, 0xd07f, 0xd080, 0xd081, - 0xd082, 0xd083, 0xd084, 0xd085, 0xd086, 0xd087, 0x003f, 0x003f, - 0x003f, 0xd088, 0xd089, 0xd08a, 0xd08b, 0xd08c, 0xd08d, 0xd08e, - 0xd08f, 0xd090, 0xd091, 0xd092, 0xd093, 0xd094, 0xd095, 0xd096, - 0xd097, 0xd098, 0x003f, 0xd099, 0xd09a, 0xd09b, 0xd09c, 0xd09d, - 0xd09e, 0xd09f, 0xd0a0, 0xd0a1, 0xd0a2, 0xd0a3, 0x003f, 0x003f, - 0x003f, 0xd0a4, 0xd0a5, 0xd0a6, 0xd0a7, 0xd0a8, 0xd0a9, 0xd0aa, - 0xd0ab, 0xd0ac, 0xd0ad, 0xd0ae, 0xd0af, 0xd0b0, 0xd0b1, 0xd0b2, - 0xd0b3, 0xd0b4, 0x003f, 0xd0b5, 0xd0b6, 0xd0b7, 0xd0b8, 0xd0b9, - 0xd0ba, 0xd0bb, 0xd0bc, 0xd0bd, 0xd0be, 0xd0bf, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte c8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x314c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd0c0, 0xd0c1, 0xd0c2, 0xd0c3, 0xd0c4, 0xd0c5, 0xd0c6, - 0xd0c7, 0xd0c8, 0xd0c9, 0xd0ca, 0xd0cb, 0xd0cc, 0xd0cd, 0xd0ce, - 0xd0cf, 0xd0d0, 0x003f, 0xd0d1, 0xd0d2, 0xd0d3, 0xd0d4, 0xd0d5, - 0xd0d6, 0xd0d7, 0xd0d8, 0xd0d9, 0xd0da, 0xd0db, 0x003f, 0x003f, - 0x003f, 0xd0dc, 0xd0dd, 0xd0de, 0xd0df, 0xd0e0, 0xd0e1, 0xd0e2, - 0xd0e3, 0xd0e4, 0xd0e5, 0xd0e6, 0xd0e7, 0xd0e8, 0xd0e9, 0xd0ea, - 0xd0eb, 0xd0ec, 0x003f, 0xd0ed, 0xd0ee, 0xd0ef, 0xd0f0, 0xd0f1, - 0xd0f2, 0xd0f3, 0xd0f4, 0xd0f5, 0xd0f6, 0xd0f7, 0x003f, 0x003f, - 0x003f, 0xd0f8, 0xd0f9, 0xd0fa, 0xd0fb, 0xd0fc, 0xd0fd, 0xd0fe, - 0xd0ff, 0xd100, 0xd101, 0xd102, 0xd103, 0xd104, 0xd105, 0xd106, - 0xd107, 0xd108, 0x003f, 0xd109, 0xd10a, 0xd10b, 0xd10c, 0xd10d, - 0xd10e, 0xd10f, 0xd110, 0xd111, 0xd112, 0xd113, 0x003f, 0x003f, - 0x003f, 0xd114, 0xd115, 0xd116, 0xd117, 0xd118, 0xd119, 0xd11a, - 0xd11b, 0xd11c, 0xd11d, 0xd11e, 0xd11f, 0xd120, 0xd121, 0xd122, - 0xd123, 0xd124, 0x003f, 0xd125, 0xd126, 0xd127, 0xd128, 0xd129, - 0xd12a, 0xd12b, 0xd12c, 0xd12d, 0xd12e, 0xd12f, 0x003f, 0x003f, - 0x003f, 0xd130, 0xd131, 0xd132, 0xd133, 0xd134, 0xd135, 0xd136, - 0xd137, 0xd138, 0xd139, 0xd13a, 0xd13b, 0xd13c, 0xd13d, 0xd13e, - 0xd13f, 0xd140, 0x003f, 0xd141, 0xd142, 0xd143, 0xd144, 0xd145, - 0xd146, 0xd147, 0xd148, 0xd149, 0xd14a, 0xd14b, 0x003f, 0x003f, - /* lead byte c9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd14c, 0xd14d, 0xd14e, 0xd14f, 0xd150, 0xd151, 0xd152, - 0xd153, 0xd154, 0xd155, 0xd156, 0xd157, 0xd158, 0xd159, 0xd15a, - 0xd15b, 0xd15c, 0x003f, 0xd15d, 0xd15e, 0xd15f, 0xd160, 0xd161, - 0xd162, 0xd163, 0xd164, 0xd165, 0xd166, 0xd167, 0x003f, 0x003f, - 0x003f, 0xd168, 0xd169, 0xd16a, 0xd16b, 0xd16c, 0xd16d, 0xd16e, - 0xd16f, 0xd170, 0xd171, 0xd172, 0xd173, 0xd174, 0xd175, 0xd176, - 0xd177, 0xd178, 0x003f, 0xd179, 0xd17a, 0xd17b, 0xd17c, 0xd17d, - 0xd17e, 0xd17f, 0xd180, 0xd181, 0xd182, 0xd183, 0x003f, 0x003f, - 0x003f, 0xd184, 0xd185, 0xd186, 0xd187, 0xd188, 0xd189, 0xd18a, - 0xd18b, 0xd18c, 0xd18d, 0xd18e, 0xd18f, 0xd190, 0xd191, 0xd192, - 0xd193, 0xd194, 0x003f, 0xd195, 0xd196, 0xd197, 0xd198, 0xd199, - 0xd19a, 0xd19b, 0xd19c, 0xd19d, 0xd19e, 0xd19f, 0x003f, 0x003f, - 0x003f, 0xd1a0, 0xd1a1, 0xd1a2, 0xd1a3, 0xd1a4, 0xd1a5, 0xd1a6, - 0xd1a7, 0xd1a8, 0xd1a9, 0xd1aa, 0xd1ab, 0xd1ac, 0xd1ad, 0xd1ae, - 0xd1af, 0xd1b0, 0x003f, 0xd1b1, 0xd1b2, 0xd1b3, 0xd1b4, 0xd1b5, - 0xd1b6, 0xd1b7, 0xd1b8, 0xd1b9, 0xd1ba, 0xd1bb, 0x003f, 0x003f, - 0x003f, 0xd1bc, 0xd1bd, 0xd1be, 0xd1bf, 0xd1c0, 0xd1c1, 0xd1c2, - 0xd1c3, 0xd1c4, 0xd1c5, 0xd1c6, 0xd1c7, 0xd1c8, 0xd1c9, 0xd1ca, - 0xd1cb, 0xd1cc, 0x003f, 0xd1cd, 0xd1ce, 0xd1cf, 0xd1d0, 0xd1d1, - 0xd1d2, 0xd1d3, 0xd1d4, 0xd1d5, 0xd1d6, 0xd1d7, 0x003f, 0x003f, - 0x003f, 0xd1d8, 0xd1d9, 0xd1da, 0xd1db, 0xd1dc, 0xd1dd, 0xd1de, - 0xd1df, 0xd1e0, 0xd1e1, 0xd1e2, 0xd1e3, 0xd1e4, 0xd1e5, 0xd1e6, - 0xd1e7, 0xd1e8, 0x003f, 0xd1e9, 0xd1ea, 0xd1eb, 0xd1ec, 0xd1ed, - 0xd1ee, 0xd1ef, 0xd1f0, 0xd1f1, 0xd1f2, 0xd1f3, 0x003f, 0x003f, - /* lead byte ca */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd1f4, 0xd1f5, 0xd1f6, 0xd1f7, 0xd1f8, 0xd1f9, 0xd1fa, - 0xd1fb, 0xd1fc, 0xd1fd, 0xd1fe, 0xd1ff, 0xd200, 0xd201, 0xd202, - 0xd203, 0xd204, 0x003f, 0xd205, 0xd206, 0xd207, 0xd208, 0xd209, - 0xd20a, 0xd20b, 0xd20c, 0xd20d, 0xd20e, 0xd20f, 0x003f, 0x003f, - 0x003f, 0xd210, 0xd211, 0xd212, 0xd213, 0xd214, 0xd215, 0xd216, - 0xd217, 0xd218, 0xd219, 0xd21a, 0xd21b, 0xd21c, 0xd21d, 0xd21e, - 0xd21f, 0xd220, 0x003f, 0xd221, 0xd222, 0xd223, 0xd224, 0xd225, - 0xd226, 0xd227, 0xd228, 0xd229, 0xd22a, 0xd22b, 0x003f, 0x003f, - 0x003f, 0xd22c, 0xd22d, 0xd22e, 0xd22f, 0xd230, 0xd231, 0xd232, - 0xd233, 0xd234, 0xd235, 0xd236, 0xd237, 0xd238, 0xd239, 0xd23a, - 0xd23b, 0xd23c, 0x003f, 0xd23d, 0xd23e, 0xd23f, 0xd240, 0xd241, - 0xd242, 0xd243, 0xd244, 0xd245, 0xd246, 0xd247, 0x003f, 0x003f, - 0x003f, 0xd248, 0xd249, 0xd24a, 0xd24b, 0xd24c, 0xd24d, 0xd24e, - 0xd24f, 0xd250, 0xd251, 0xd252, 0xd253, 0xd254, 0xd255, 0xd256, - 0xd257, 0xd258, 0x003f, 0xd259, 0xd25a, 0xd25b, 0xd25c, 0xd25d, - 0xd25e, 0xd25f, 0xd260, 0xd261, 0xd262, 0xd263, 0x003f, 0x003f, - 0x003f, 0xd264, 0xd265, 0xd266, 0xd267, 0xd268, 0xd269, 0xd26a, - 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, 0xd270, 0xd271, 0xd272, - 0xd273, 0xd274, 0x003f, 0xd275, 0xd276, 0xd277, 0xd278, 0xd279, - 0xd27a, 0xd27b, 0xd27c, 0xd27d, 0xd27e, 0xd27f, 0x003f, 0x003f, - 0x003f, 0xd280, 0xd281, 0xd282, 0xd283, 0xd284, 0xd285, 0xd286, - 0xd287, 0xd288, 0xd289, 0xd28a, 0xd28b, 0xd28c, 0xd28d, 0xd28e, - 0xd28f, 0xd290, 0x003f, 0xd291, 0xd292, 0xd293, 0xd294, 0xd295, - 0xd296, 0xd297, 0xd298, 0xd299, 0xd29a, 0xd29b, 0x003f, 0x003f, - /* lead byte cb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd29c, 0xd29d, 0xd29e, 0xd29f, 0xd2a0, 0xd2a1, 0xd2a2, - 0xd2a3, 0xd2a4, 0xd2a5, 0xd2a6, 0xd2a7, 0xd2a8, 0xd2a9, 0xd2aa, - 0xd2ab, 0xd2ac, 0x003f, 0xd2ad, 0xd2ae, 0xd2af, 0xd2b0, 0xd2b1, - 0xd2b2, 0xd2b3, 0xd2b4, 0xd2b5, 0xd2b6, 0xd2b7, 0x003f, 0x003f, - 0x003f, 0xd2b8, 0xd2b9, 0xd2ba, 0xd2bb, 0xd2bc, 0xd2bd, 0xd2be, - 0xd2bf, 0xd2c0, 0xd2c1, 0xd2c2, 0xd2c3, 0xd2c4, 0xd2c5, 0xd2c6, - 0xd2c7, 0xd2c8, 0x003f, 0xd2c9, 0xd2ca, 0xd2cb, 0xd2cc, 0xd2cd, - 0xd2ce, 0xd2cf, 0xd2d0, 0xd2d1, 0xd2d2, 0xd2d3, 0x003f, 0x003f, - 0x003f, 0xd2d4, 0xd2d5, 0xd2d6, 0xd2d7, 0xd2d8, 0xd2d9, 0xd2da, - 0xd2db, 0xd2dc, 0xd2dd, 0xd2de, 0xd2df, 0xd2e0, 0xd2e1, 0xd2e2, - 0xd2e3, 0xd2e4, 0x003f, 0xd2e5, 0xd2e6, 0xd2e7, 0xd2e8, 0xd2e9, - 0xd2ea, 0xd2eb, 0xd2ec, 0xd2ed, 0xd2ee, 0xd2ef, 0x003f, 0x003f, - 0x003f, 0xd2f0, 0xd2f1, 0xd2f2, 0xd2f3, 0xd2f4, 0xd2f5, 0xd2f6, - 0xd2f7, 0xd2f8, 0xd2f9, 0xd2fa, 0xd2fb, 0xd2fc, 0xd2fd, 0xd2fe, - 0xd2ff, 0xd300, 0x003f, 0xd301, 0xd302, 0xd303, 0xd304, 0xd305, - 0xd306, 0xd307, 0xd308, 0xd309, 0xd30a, 0xd30b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte cc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x314d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd30c, 0xd30d, 0xd30e, 0xd30f, 0xd310, 0xd311, 0xd312, - 0xd313, 0xd314, 0xd315, 0xd316, 0xd317, 0xd318, 0xd319, 0xd31a, - 0xd31b, 0xd31c, 0x003f, 0xd31d, 0xd31e, 0xd31f, 0xd320, 0xd321, - 0xd322, 0xd323, 0xd324, 0xd325, 0xd326, 0xd327, 0x003f, 0x003f, - 0x003f, 0xd328, 0xd329, 0xd32a, 0xd32b, 0xd32c, 0xd32d, 0xd32e, - 0xd32f, 0xd330, 0xd331, 0xd332, 0xd333, 0xd334, 0xd335, 0xd336, - 0xd337, 0xd338, 0x003f, 0xd339, 0xd33a, 0xd33b, 0xd33c, 0xd33d, - 0xd33e, 0xd33f, 0xd340, 0xd341, 0xd342, 0xd343, 0x003f, 0x003f, - 0x003f, 0xd344, 0xd345, 0xd346, 0xd347, 0xd348, 0xd349, 0xd34a, - 0xd34b, 0xd34c, 0xd34d, 0xd34e, 0xd34f, 0xd350, 0xd351, 0xd352, - 0xd353, 0xd354, 0x003f, 0xd355, 0xd356, 0xd357, 0xd358, 0xd359, - 0xd35a, 0xd35b, 0xd35c, 0xd35d, 0xd35e, 0xd35f, 0x003f, 0x003f, - 0x003f, 0xd360, 0xd361, 0xd362, 0xd363, 0xd364, 0xd365, 0xd366, - 0xd367, 0xd368, 0xd369, 0xd36a, 0xd36b, 0xd36c, 0xd36d, 0xd36e, - 0xd36f, 0xd370, 0x003f, 0xd371, 0xd372, 0xd373, 0xd374, 0xd375, - 0xd376, 0xd377, 0xd378, 0xd379, 0xd37a, 0xd37b, 0x003f, 0x003f, - 0x003f, 0xd37c, 0xd37d, 0xd37e, 0xd37f, 0xd380, 0xd381, 0xd382, - 0xd383, 0xd384, 0xd385, 0xd386, 0xd387, 0xd388, 0xd389, 0xd38a, - 0xd38b, 0xd38c, 0x003f, 0xd38d, 0xd38e, 0xd38f, 0xd390, 0xd391, - 0xd392, 0xd393, 0xd394, 0xd395, 0xd396, 0xd397, 0x003f, 0x003f, - /* lead byte cd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd398, 0xd399, 0xd39a, 0xd39b, 0xd39c, 0xd39d, 0xd39e, - 0xd39f, 0xd3a0, 0xd3a1, 0xd3a2, 0xd3a3, 0xd3a4, 0xd3a5, 0xd3a6, - 0xd3a7, 0xd3a8, 0x003f, 0xd3a9, 0xd3aa, 0xd3ab, 0xd3ac, 0xd3ad, - 0xd3ae, 0xd3af, 0xd3b0, 0xd3b1, 0xd3b2, 0xd3b3, 0x003f, 0x003f, - 0x003f, 0xd3b4, 0xd3b5, 0xd3b6, 0xd3b7, 0xd3b8, 0xd3b9, 0xd3ba, - 0xd3bb, 0xd3bc, 0xd3bd, 0xd3be, 0xd3bf, 0xd3c0, 0xd3c1, 0xd3c2, - 0xd3c3, 0xd3c4, 0x003f, 0xd3c5, 0xd3c6, 0xd3c7, 0xd3c8, 0xd3c9, - 0xd3ca, 0xd3cb, 0xd3cc, 0xd3cd, 0xd3ce, 0xd3cf, 0x003f, 0x003f, - 0x003f, 0xd3d0, 0xd3d1, 0xd3d2, 0xd3d3, 0xd3d4, 0xd3d5, 0xd3d6, - 0xd3d7, 0xd3d8, 0xd3d9, 0xd3da, 0xd3db, 0xd3dc, 0xd3dd, 0xd3de, - 0xd3df, 0xd3e0, 0x003f, 0xd3e1, 0xd3e2, 0xd3e3, 0xd3e4, 0xd3e5, - 0xd3e6, 0xd3e7, 0xd3e8, 0xd3e9, 0xd3ea, 0xd3eb, 0x003f, 0x003f, - 0x003f, 0xd3ec, 0xd3ed, 0xd3ee, 0xd3ef, 0xd3f0, 0xd3f1, 0xd3f2, - 0xd3f3, 0xd3f4, 0xd3f5, 0xd3f6, 0xd3f7, 0xd3f8, 0xd3f9, 0xd3fa, - 0xd3fb, 0xd3fc, 0x003f, 0xd3fd, 0xd3fe, 0xd3ff, 0xd400, 0xd401, - 0xd402, 0xd403, 0xd404, 0xd405, 0xd406, 0xd407, 0x003f, 0x003f, - 0x003f, 0xd408, 0xd409, 0xd40a, 0xd40b, 0xd40c, 0xd40d, 0xd40e, - 0xd40f, 0xd410, 0xd411, 0xd412, 0xd413, 0xd414, 0xd415, 0xd416, - 0xd417, 0xd418, 0x003f, 0xd419, 0xd41a, 0xd41b, 0xd41c, 0xd41d, - 0xd41e, 0xd41f, 0xd420, 0xd421, 0xd422, 0xd423, 0x003f, 0x003f, - 0x003f, 0xd424, 0xd425, 0xd426, 0xd427, 0xd428, 0xd429, 0xd42a, - 0xd42b, 0xd42c, 0xd42d, 0xd42e, 0xd42f, 0xd430, 0xd431, 0xd432, - 0xd433, 0xd434, 0x003f, 0xd435, 0xd436, 0xd437, 0xd438, 0xd439, - 0xd43a, 0xd43b, 0xd43c, 0xd43d, 0xd43e, 0xd43f, 0x003f, 0x003f, - /* lead byte ce */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd440, 0xd441, 0xd442, 0xd443, 0xd444, 0xd445, 0xd446, - 0xd447, 0xd448, 0xd449, 0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, - 0xd44f, 0xd450, 0x003f, 0xd451, 0xd452, 0xd453, 0xd454, 0xd455, - 0xd456, 0xd457, 0xd458, 0xd459, 0xd45a, 0xd45b, 0x003f, 0x003f, - 0x003f, 0xd45c, 0xd45d, 0xd45e, 0xd45f, 0xd460, 0xd461, 0xd462, - 0xd463, 0xd464, 0xd465, 0xd466, 0xd467, 0xd468, 0xd469, 0xd46a, - 0xd46b, 0xd46c, 0x003f, 0xd46d, 0xd46e, 0xd46f, 0xd470, 0xd471, - 0xd472, 0xd473, 0xd474, 0xd475, 0xd476, 0xd477, 0x003f, 0x003f, - 0x003f, 0xd478, 0xd479, 0xd47a, 0xd47b, 0xd47c, 0xd47d, 0xd47e, - 0xd47f, 0xd480, 0xd481, 0xd482, 0xd483, 0xd484, 0xd485, 0xd486, - 0xd487, 0xd488, 0x003f, 0xd489, 0xd48a, 0xd48b, 0xd48c, 0xd48d, - 0xd48e, 0xd48f, 0xd490, 0xd491, 0xd492, 0xd493, 0x003f, 0x003f, - 0x003f, 0xd494, 0xd495, 0xd496, 0xd497, 0xd498, 0xd499, 0xd49a, - 0xd49b, 0xd49c, 0xd49d, 0xd49e, 0xd49f, 0xd4a0, 0xd4a1, 0xd4a2, - 0xd4a3, 0xd4a4, 0x003f, 0xd4a5, 0xd4a6, 0xd4a7, 0xd4a8, 0xd4a9, - 0xd4aa, 0xd4ab, 0xd4ac, 0xd4ad, 0xd4ae, 0xd4af, 0x003f, 0x003f, - 0x003f, 0xd4b0, 0xd4b1, 0xd4b2, 0xd4b3, 0xd4b4, 0xd4b5, 0xd4b6, - 0xd4b7, 0xd4b8, 0xd4b9, 0xd4ba, 0xd4bb, 0xd4bc, 0xd4bd, 0xd4be, - 0xd4bf, 0xd4c0, 0x003f, 0xd4c1, 0xd4c2, 0xd4c3, 0xd4c4, 0xd4c5, - 0xd4c6, 0xd4c7, 0xd4c8, 0xd4c9, 0xd4ca, 0xd4cb, 0x003f, 0x003f, - 0x003f, 0xd4cc, 0xd4cd, 0xd4ce, 0xd4cf, 0xd4d0, 0xd4d1, 0xd4d2, - 0xd4d3, 0xd4d4, 0xd4d5, 0xd4d6, 0xd4d7, 0xd4d8, 0xd4d9, 0xd4da, - 0xd4db, 0xd4dc, 0x003f, 0xd4dd, 0xd4de, 0xd4df, 0xd4e0, 0xd4e1, - 0xd4e2, 0xd4e3, 0xd4e4, 0xd4e5, 0xd4e6, 0xd4e7, 0x003f, 0x003f, - /* lead byte cf */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd4e8, 0xd4e9, 0xd4ea, 0xd4eb, 0xd4ec, 0xd4ed, 0xd4ee, - 0xd4ef, 0xd4f0, 0xd4f1, 0xd4f2, 0xd4f3, 0xd4f4, 0xd4f5, 0xd4f6, - 0xd4f7, 0xd4f8, 0x003f, 0xd4f9, 0xd4fa, 0xd4fb, 0xd4fc, 0xd4fd, - 0xd4fe, 0xd4ff, 0xd500, 0xd501, 0xd502, 0xd503, 0x003f, 0x003f, - 0x003f, 0xd504, 0xd505, 0xd506, 0xd507, 0xd508, 0xd509, 0xd50a, - 0xd50b, 0xd50c, 0xd50d, 0xd50e, 0xd50f, 0xd510, 0xd511, 0xd512, - 0xd513, 0xd514, 0x003f, 0xd515, 0xd516, 0xd517, 0xd518, 0xd519, - 0xd51a, 0xd51b, 0xd51c, 0xd51d, 0xd51e, 0xd51f, 0x003f, 0x003f, - 0x003f, 0xd520, 0xd521, 0xd522, 0xd523, 0xd524, 0xd525, 0xd526, - 0xd527, 0xd528, 0xd529, 0xd52a, 0xd52b, 0xd52c, 0xd52d, 0xd52e, - 0xd52f, 0xd530, 0x003f, 0xd531, 0xd532, 0xd533, 0xd534, 0xd535, - 0xd536, 0xd537, 0xd538, 0xd539, 0xd53a, 0xd53b, 0x003f, 0x003f, - 0x003f, 0xd53c, 0xd53d, 0xd53e, 0xd53f, 0xd540, 0xd541, 0xd542, - 0xd543, 0xd544, 0xd545, 0xd546, 0xd547, 0xd548, 0xd549, 0xd54a, - 0xd54b, 0xd54c, 0x003f, 0xd54d, 0xd54e, 0xd54f, 0xd550, 0xd551, - 0xd552, 0xd553, 0xd554, 0xd555, 0xd556, 0xd557, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte d0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x314e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd558, 0xd559, 0xd55a, 0xd55b, 0xd55c, 0xd55d, 0xd55e, - 0xd55f, 0xd560, 0xd561, 0xd562, 0xd563, 0xd564, 0xd565, 0xd566, - 0xd567, 0xd568, 0x003f, 0xd569, 0xd56a, 0xd56b, 0xd56c, 0xd56d, - 0xd56e, 0xd56f, 0xd570, 0xd571, 0xd572, 0xd573, 0x003f, 0x003f, - 0x003f, 0xd574, 0xd575, 0xd576, 0xd577, 0xd578, 0xd579, 0xd57a, - 0xd57b, 0xd57c, 0xd57d, 0xd57e, 0xd57f, 0xd580, 0xd581, 0xd582, - 0xd583, 0xd584, 0x003f, 0xd585, 0xd586, 0xd587, 0xd588, 0xd589, - 0xd58a, 0xd58b, 0xd58c, 0xd58d, 0xd58e, 0xd58f, 0x003f, 0x003f, - 0x003f, 0xd590, 0xd591, 0xd592, 0xd593, 0xd594, 0xd595, 0xd596, - 0xd597, 0xd598, 0xd599, 0xd59a, 0xd59b, 0xd59c, 0xd59d, 0xd59e, - 0xd59f, 0xd5a0, 0x003f, 0xd5a1, 0xd5a2, 0xd5a3, 0xd5a4, 0xd5a5, - 0xd5a6, 0xd5a7, 0xd5a8, 0xd5a9, 0xd5aa, 0xd5ab, 0x003f, 0x003f, - 0x003f, 0xd5ac, 0xd5ad, 0xd5ae, 0xd5af, 0xd5b0, 0xd5b1, 0xd5b2, - 0xd5b3, 0xd5b4, 0xd5b5, 0xd5b6, 0xd5b7, 0xd5b8, 0xd5b9, 0xd5ba, - 0xd5bb, 0xd5bc, 0x003f, 0xd5bd, 0xd5be, 0xd5bf, 0xd5c0, 0xd5c1, - 0xd5c2, 0xd5c3, 0xd5c4, 0xd5c5, 0xd5c6, 0xd5c7, 0x003f, 0x003f, - 0x003f, 0xd5c8, 0xd5c9, 0xd5ca, 0xd5cb, 0xd5cc, 0xd5cd, 0xd5ce, - 0xd5cf, 0xd5d0, 0xd5d1, 0xd5d2, 0xd5d3, 0xd5d4, 0xd5d5, 0xd5d6, - 0xd5d7, 0xd5d8, 0x003f, 0xd5d9, 0xd5da, 0xd5db, 0xd5dc, 0xd5dd, - 0xd5de, 0xd5df, 0xd5e0, 0xd5e1, 0xd5e2, 0xd5e3, 0x003f, 0x003f, - /* lead byte d1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd5e4, 0xd5e5, 0xd5e6, 0xd5e7, 0xd5e8, 0xd5e9, 0xd5ea, - 0xd5eb, 0xd5ec, 0xd5ed, 0xd5ee, 0xd5ef, 0xd5f0, 0xd5f1, 0xd5f2, - 0xd5f3, 0xd5f4, 0x003f, 0xd5f5, 0xd5f6, 0xd5f7, 0xd5f8, 0xd5f9, - 0xd5fa, 0xd5fb, 0xd5fc, 0xd5fd, 0xd5fe, 0xd5ff, 0x003f, 0x003f, - 0x003f, 0xd600, 0xd601, 0xd602, 0xd603, 0xd604, 0xd605, 0xd606, - 0xd607, 0xd608, 0xd609, 0xd60a, 0xd60b, 0xd60c, 0xd60d, 0xd60e, - 0xd60f, 0xd610, 0x003f, 0xd611, 0xd612, 0xd613, 0xd614, 0xd615, - 0xd616, 0xd617, 0xd618, 0xd619, 0xd61a, 0xd61b, 0x003f, 0x003f, - 0x003f, 0xd61c, 0xd61d, 0xd61e, 0xd61f, 0xd620, 0xd621, 0xd622, - 0xd623, 0xd624, 0xd625, 0xd626, 0xd627, 0xd628, 0xd629, 0xd62a, - 0xd62b, 0xd62c, 0x003f, 0xd62d, 0xd62e, 0xd62f, 0xd630, 0xd631, - 0xd632, 0xd633, 0xd634, 0xd635, 0xd636, 0xd637, 0x003f, 0x003f, - 0x003f, 0xd638, 0xd639, 0xd63a, 0xd63b, 0xd63c, 0xd63d, 0xd63e, - 0xd63f, 0xd640, 0xd641, 0xd642, 0xd643, 0xd644, 0xd645, 0xd646, - 0xd647, 0xd648, 0x003f, 0xd649, 0xd64a, 0xd64b, 0xd64c, 0xd64d, - 0xd64e, 0xd64f, 0xd650, 0xd651, 0xd652, 0xd653, 0x003f, 0x003f, - 0x003f, 0xd654, 0xd655, 0xd656, 0xd657, 0xd658, 0xd659, 0xd65a, - 0xd65b, 0xd65c, 0xd65d, 0xd65e, 0xd65f, 0xd660, 0xd661, 0xd662, - 0xd663, 0xd664, 0x003f, 0xd665, 0xd666, 0xd667, 0xd668, 0xd669, - 0xd66a, 0xd66b, 0xd66c, 0xd66d, 0xd66e, 0xd66f, 0x003f, 0x003f, - 0x003f, 0xd670, 0xd671, 0xd672, 0xd673, 0xd674, 0xd675, 0xd676, - 0xd677, 0xd678, 0xd679, 0xd67a, 0xd67b, 0xd67c, 0xd67d, 0xd67e, - 0xd67f, 0xd680, 0x003f, 0xd681, 0xd682, 0xd683, 0xd684, 0xd685, - 0xd686, 0xd687, 0xd688, 0xd689, 0xd68a, 0xd68b, 0x003f, 0x003f, - /* lead byte d2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd68c, 0xd68d, 0xd68e, 0xd68f, 0xd690, 0xd691, 0xd692, - 0xd693, 0xd694, 0xd695, 0xd696, 0xd697, 0xd698, 0xd699, 0xd69a, - 0xd69b, 0xd69c, 0x003f, 0xd69d, 0xd69e, 0xd69f, 0xd6a0, 0xd6a1, - 0xd6a2, 0xd6a3, 0xd6a4, 0xd6a5, 0xd6a6, 0xd6a7, 0x003f, 0x003f, - 0x003f, 0xd6a8, 0xd6a9, 0xd6aa, 0xd6ab, 0xd6ac, 0xd6ad, 0xd6ae, - 0xd6af, 0xd6b0, 0xd6b1, 0xd6b2, 0xd6b3, 0xd6b4, 0xd6b5, 0xd6b6, - 0xd6b7, 0xd6b8, 0x003f, 0xd6b9, 0xd6ba, 0xd6bb, 0xd6bc, 0xd6bd, - 0xd6be, 0xd6bf, 0xd6c0, 0xd6c1, 0xd6c2, 0xd6c3, 0x003f, 0x003f, - 0x003f, 0xd6c4, 0xd6c5, 0xd6c6, 0xd6c7, 0xd6c8, 0xd6c9, 0xd6ca, - 0xd6cb, 0xd6cc, 0xd6cd, 0xd6ce, 0xd6cf, 0xd6d0, 0xd6d1, 0xd6d2, - 0xd6d3, 0xd6d4, 0x003f, 0xd6d5, 0xd6d6, 0xd6d7, 0xd6d8, 0xd6d9, - 0xd6da, 0xd6db, 0xd6dc, 0xd6dd, 0xd6de, 0xd6df, 0x003f, 0x003f, - 0x003f, 0xd6e0, 0xd6e1, 0xd6e2, 0xd6e3, 0xd6e4, 0xd6e5, 0xd6e6, - 0xd6e7, 0xd6e8, 0xd6e9, 0xd6ea, 0xd6eb, 0xd6ec, 0xd6ed, 0xd6ee, - 0xd6ef, 0xd6f0, 0x003f, 0xd6f1, 0xd6f2, 0xd6f3, 0xd6f4, 0xd6f5, - 0xd6f6, 0xd6f7, 0xd6f8, 0xd6f9, 0xd6fa, 0xd6fb, 0x003f, 0x003f, - 0x003f, 0xd6fc, 0xd6fd, 0xd6fe, 0xd6ff, 0xd700, 0xd701, 0xd702, - 0xd703, 0xd704, 0xd705, 0xd706, 0xd707, 0xd708, 0xd709, 0xd70a, - 0xd70b, 0xd70c, 0x003f, 0xd70d, 0xd70e, 0xd70f, 0xd710, 0xd711, - 0xd712, 0xd713, 0xd714, 0xd715, 0xd716, 0xd717, 0x003f, 0x003f, - 0x003f, 0xd718, 0xd719, 0xd71a, 0xd71b, 0xd71c, 0xd71d, 0xd71e, - 0xd71f, 0xd720, 0xd721, 0xd722, 0xd723, 0xd724, 0xd725, 0xd726, - 0xd727, 0xd728, 0x003f, 0xd729, 0xd72a, 0xd72b, 0xd72c, 0xd72d, - 0xd72e, 0xd72f, 0xd730, 0xd731, 0xd732, 0xd733, 0x003f, 0x003f, - /* lead byte d3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd734, 0xd735, 0xd736, 0xd737, 0xd738, 0xd739, 0xd73a, - 0xd73b, 0xd73c, 0xd73d, 0xd73e, 0xd73f, 0xd740, 0xd741, 0xd742, - 0xd743, 0xd744, 0x003f, 0xd745, 0xd746, 0xd747, 0xd748, 0xd749, - 0xd74a, 0xd74b, 0xd74c, 0xd74d, 0xd74e, 0xd74f, 0x003f, 0x003f, - 0x003f, 0xd750, 0xd751, 0xd752, 0xd753, 0xd754, 0xd755, 0xd756, - 0xd757, 0xd758, 0xd759, 0xd75a, 0xd75b, 0xd75c, 0xd75d, 0xd75e, - 0xd75f, 0xd760, 0x003f, 0xd761, 0xd762, 0xd763, 0xd764, 0xd765, - 0xd766, 0xd767, 0xd768, 0xd769, 0xd76a, 0xd76b, 0x003f, 0x003f, - 0x003f, 0xd76c, 0xd76d, 0xd76e, 0xd76f, 0xd770, 0xd771, 0xd772, - 0xd773, 0xd774, 0xd775, 0xd776, 0xd777, 0xd778, 0xd779, 0xd77a, - 0xd77b, 0xd77c, 0x003f, 0xd77d, 0xd77e, 0xd77f, 0xd780, 0xd781, - 0xd782, 0xd783, 0xd784, 0xd785, 0xd786, 0xd787, 0x003f, 0x003f, - 0x003f, 0xd788, 0xd789, 0xd78a, 0xd78b, 0xd78c, 0xd78d, 0xd78e, - 0xd78f, 0xd790, 0xd791, 0xd792, 0xd793, 0xd794, 0xd795, 0xd796, - 0xd797, 0xd798, 0x003f, 0xd799, 0xd79a, 0xd79b, 0xd79c, 0xd79d, - 0xd79e, 0xd79f, 0xd7a0, 0xd7a1, 0xd7a2, 0xd7a3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte d9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, - 0x3003, 0x00ad, 0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, - 0x201c, 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, - 0x300c, 0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0x00b1, 0x00d7, - 0x00f7, 0x2260, 0x2264, 0x2265, 0x221e, 0x2234, 0x00b0, 0x2032, - 0x2033, 0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5, 0x2642, 0x2640, - 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x00a7, - 0x203b, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, - 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, - 0x2191, 0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x223d, 0x221d, 0x2235, 0x222b, 0x222c, 0x2208, 0x220b, - 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, 0x2229, 0x2227, 0x2228, - 0xffe2, 0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4, 0xff5e, 0x02c7, - 0x02d8, 0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1, 0x00bf, - 0x02d0, 0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1, - 0x25c0, 0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, - 0x2663, 0x2299, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, - 0x25a5, 0x25a8, 0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, - 0x261c, 0x261e, 0x00b6, 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, - 0x2196, 0x2198, 0x266d, 0x2669, 0x266a, 0x266c, 0x327f, 0x321c, - 0x2116, 0x33c7, 0x2122, 0x33c2, 0x33d8, 0x2121, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte da */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, - 0xff08, 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, - 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, - 0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, - 0xff20, 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, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, - 0xff40, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, - 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, - 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, - 0xffe3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x3164, 0x3165, 0x3166, 0x3167, - 0x3168, 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, - 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, - 0x3178, 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x317f, - 0x3180, 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, - 0x3188, 0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e, 0x003f, - /* lead byte db */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, - 0x2177, 0x2178, 0x2179, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, - 0x2168, 0x2169, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, - 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, - 0x03a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, - 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, - 0x03c7, 0x03c8, 0x03c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x2512, 0x2511, 0x251a, 0x2519, 0x2516, 0x2515, 0x250e, - 0x250d, 0x251e, 0x251f, 0x2521, 0x2522, 0x2526, 0x2527, 0x2529, - 0x252a, 0x252d, 0x252e, 0x2531, 0x2532, 0x2535, 0x2536, 0x2539, - 0x253a, 0x253d, 0x253e, 0x2540, 0x2541, 0x2543, 0x2544, 0x2545, - 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte dc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3395, 0x3396, 0x3397, 0x2113, 0x3398, 0x33c4, 0x33a3, - 0x33a4, 0x33a5, 0x33a6, 0x3399, 0x339a, 0x339b, 0x339c, 0x339d, - 0x339e, 0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca, 0x338d, 0x338e, - 0x338f, 0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8, 0x33b0, - 0x33b1, 0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8, - 0x33b9, 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, - 0x33bc, 0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, - 0x3394, 0x2126, 0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, - 0x33c5, 0x33ad, 0x33ae, 0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, - 0x33ac, 0x33dd, 0x33d0, 0x33d3, 0x33c3, 0x33c9, 0x33dc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x33c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x00c6, 0x00d0, 0x00aa, 0x0126, 0x003f, 0x0132, 0x003f, - 0x013f, 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a, - 0x003f, 0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, - 0x3267, 0x3268, 0x3269, 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, - 0x326f, 0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, - 0x3277, 0x3278, 0x3279, 0x327a, 0x327b, 0x24d0, 0x24d1, 0x24d2, - 0x24d3, 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 0x24d9, 0x24da, - 0x24db, 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1, 0x24e2, - 0x24e3, 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460, - 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, - 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, - 0x2154, 0x00bc, 0x00be, 0x215b, 0x215c, 0x215d, 0x215e, 0x003f, - /* lead byte dd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, - 0x0140, 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x0167, 0x014b, - 0x0149, 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, 0x3206, - 0x3207, 0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e, - 0x320f, 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, - 0x3217, 0x3218, 0x3219, 0x321a, 0x321b, 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, 0x2474, - 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x247c, 0x247d, 0x247e, 0x247f, 0x2480, 0x2481, 0x2482, - 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x207f, 0x2081, 0x2082, 0x2083, - 0x2084, 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, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte de */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, - 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, - 0x30f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, - 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, - 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, - 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, - 0x044e, 0x044f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte e0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475, - 0x54e5, 0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, - 0x6b4c, 0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, - 0x8a36, 0x8cc8, 0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, - 0x5404, 0x606a, 0x6164, 0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, - 0x95a3, 0x4f83, 0x520a, 0x58be, 0x5978, 0x59e6, 0x5e72, 0x5e79, - 0x61c7, 0x63c0, 0x6746, 0x67ec, 0x687f, 0x6f97, 0x764e, 0x770b, - 0x78f5, 0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e, 0x8271, 0x8aeb, - 0x9593, 0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed, 0x845b, - 0x8910, 0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x611f, 0x61be, 0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, - 0x7518, 0x75b3, 0x76e3, 0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, - 0x9f95, 0x5323, 0x5cac, 0x7532, 0x80db, 0x9240, 0x9598, 0x525b, - 0x5808, 0x59dc, 0x5ca1, 0x5d17, 0x5eb7, 0x5f3a, 0x5f4a, 0x6177, - 0x6c5f, 0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1, 0x7f8c, 0x8154, - 0x8221, 0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47, 0x4ecb, - 0x4ef7, 0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539, - 0x69ea, 0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, - 0xf900, 0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, - 0x7fb9, 0x91b5, 0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, - 0x64da, 0x64e7, 0x6e20, 0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, - 0x907d, 0x9245, 0x92f8, 0x4e7e, 0x4ef6, 0x5065, 0x5dfe, 0x5efa, - 0x6106, 0x6957, 0x8171, 0x8654, 0x8e47, 0x9375, 0x9a2b, 0x4e5e, - 0x5091, 0x6770, 0x6840, 0x5109, 0x528d, 0x5292, 0x6aa2, 0x003f, - /* lead byte e1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, - 0x61a9, 0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, - 0x9694, 0x5805, 0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, - 0x898b, 0x8b74, 0x9063, 0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, - 0x7f3a, 0x8a23, 0x517c, 0x614a, 0x7b9d, 0x8b19, 0x9257, 0x938c, - 0x4eac, 0x4fd3, 0x501e, 0x50be, 0x5106, 0x52c1, 0x52cd, 0x537f, - 0x5770, 0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac, 0x64ce, 0x656c, - 0x666f, 0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1, 0x749f, - 0x74a5, 0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45, - 0x7d93, 0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9015, 0x93e1, 0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, - 0x5553, 0x583a, 0x5951, 0x5b63, 0x5c46, 0x60b8, 0x6212, 0x6842, - 0x68b0, 0x68e8, 0x6eaa, 0x754c, 0x7678, 0x78ce, 0x7a3d, 0x7cfb, - 0x7e6b, 0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e, 0x9dc4, 0x53e4, - 0x53e9, 0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b, 0x5eab, - 0x62f7, 0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd, - 0x75fc, 0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, - 0x82e6, 0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, - 0x8f9c, 0x932e, 0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, - 0x66f2, 0x688f, 0x7a40, 0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, - 0x6606, 0x68b1, 0x68cd, 0x6efe, 0x7428, 0x889e, 0x9be4, 0x6c68, - 0xf904, 0x9aa8, 0x4f9b, 0x516c, 0x5171, 0x529f, 0x5b54, 0x5de5, - 0x6050, 0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9, 0x7a7a, 0x86a3, - 0x8ca2, 0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc, 0x003f, - /* lead byte e2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, - 0x9846, 0x5ed3, 0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, - 0x5bec, 0x6163, 0x68fa, 0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, - 0x7f50, 0x83c5, 0x89c0, 0x8cab, 0x95dc, 0x9928, 0x522e, 0x605d, - 0x62ec, 0x9002, 0x4f8a, 0x5149, 0x5321, 0x58d9, 0x5ee3, 0x66e0, - 0x6d38, 0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1, 0x945b, 0x5366, - 0x639b, 0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a, 0x6127, - 0x62d0, 0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4, - 0x50d1, 0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, - 0x6821, 0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x81a0, 0x854e, 0x86df, 0x8f03, 0x8f4e, 0x90ca, 0x9903, - 0x9a55, 0x9bab, 0x4e18, 0x4e45, 0x4e5d, 0x4ec7, 0x4ff1, 0x5177, - 0x52fe, 0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614, 0x5775, 0x57a2, - 0x5bc7, 0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8, 0x67e9, - 0x69cb, 0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7, - 0x7396, 0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, - 0x8205, 0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, - 0x90b1, 0x9264, 0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, - 0x570b, 0x5c40, 0x83ca, 0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, - 0x7fa4, 0x88d9, 0x8ecd, 0x90e1, 0x5800, 0x5c48, 0x6398, 0x7a9f, - 0x5bae, 0x5f13, 0x7a79, 0x7aae, 0x828e, 0x8eac, 0x5026, 0x5238, - 0x52f8, 0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a, 0x6dc3, 0x7737, - 0x53a5, 0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3, 0x6f70, - 0x8a6d, 0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4, 0x003f, - /* lead byte e3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9b3c, 0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, - 0x73ea, 0x7845, 0x7aba, 0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, - 0x9035, 0x95a8, 0x52fb, 0x5747, 0x7547, 0x7b60, 0x83cc, 0x921e, - 0xf908, 0x6a58, 0x514b, 0x524b, 0x5287, 0x621f, 0x68d8, 0x6975, - 0x9699, 0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4, 0x6839, 0x69ff, - 0x747e, 0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1, 0x9949, - 0xf909, 0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981, - 0x79bd, 0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, - 0x53ca, 0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, - 0x77dc, 0x80af, 0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5668, 0x573b, 0x57fa, 0x57fc, 0x5914, 0x5947, 0x5993, - 0x5bc4, 0x5c90, 0x5d0e, 0x5df1, 0x5e7e, 0x5fcc, 0x6280, 0x65d7, - 0x65e3, 0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f, 0x6b3a, - 0x6c23, 0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482, - 0x74a3, 0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, - 0x797a, 0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, - 0x8a18, 0x8b4f, 0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, - 0x9a0e, 0x9a0f, 0x9a65, 0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, - 0x6854, 0x91d1, 0x55ab, 0x513a, 0xf90b, 0xf90c, 0x5a1c, 0x61e6, - 0xf90d, 0x62cf, 0x62ff, 0xf90e, 0xf90f, 0xf910, 0xf911, 0xf912, - 0xf913, 0x90a3, 0xf914, 0xf915, 0xf916, 0xf917, 0xf918, 0x8afe, - 0xf919, 0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156, 0xf91e, - 0xf91f, 0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f, - 0x6960, 0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925, 0x003f, - /* lead byte e4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7d0d, 0xf926, 0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, - 0xf929, 0xf92a, 0xf92b, 0xf92c, 0x4e43, 0xf92d, 0x5167, 0x5948, - 0x67f0, 0x8010, 0xf92e, 0x5973, 0x5e74, 0x649a, 0x79ca, 0x5ff5, - 0x606c, 0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa, 0xf92f, 0x5974, - 0x5f29, 0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933, 0xf934, - 0xf935, 0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b, - 0xf93c, 0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, - 0x6fc3, 0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, - 0x8166, 0xf948, 0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, - 0xf94e, 0xf94f, 0xf950, 0xf951, 0x5ae9, 0x8a25, 0x677b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7d10, 0xf952, 0xf953, 0xf954, 0xf955, 0xf956, 0xf957, - 0x80fd, 0xf958, 0xf959, 0x5c3c, 0x6ce5, 0x533f, 0x6eba, 0x591a, - 0x8336, 0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56, - 0x65b7, 0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, - 0x7dde, 0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, - 0x75b8, 0x9054, 0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, - 0x6e5b, 0x6f6d, 0x6fb9, 0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, - 0x8ac7, 0x8b5a, 0x931f, 0x6c93, 0x7553, 0x7b54, 0x8e0f, 0x905d, - 0x5510, 0x5802, 0x5858, 0x5e62, 0x6207, 0x649e, 0x68e0, 0x7576, - 0x7cd6, 0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e, 0x5927, 0x5c0d, - 0x5cb1, 0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa, 0x888b, - 0x8cb8, 0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200, - 0x5230, 0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, - 0x5ea6, 0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843, 0x003f, - /* lead byte e5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x68f9, 0x6ac2, 0x6dd8, 0x6e21, 0x6ed4, 0x6fe4, 0x71fe, - 0x76dc, 0x7779, 0x79b1, 0x7a3b, 0x8404, 0x89a9, 0x8ced, 0x8df3, - 0x8e48, 0x9003, 0x9014, 0x9053, 0x90fd, 0x934d, 0x9676, 0x97dc, - 0x6bd2, 0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf, 0x7be4, - 0x7e9b, 0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c, - 0x711e, 0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, - 0x51cd, 0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, - 0x6f7c, 0x75bc, 0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, - 0x6597, 0x675c, 0x6793, 0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, - 0x9017, 0x982d, 0x5c6f, 0x81c0, 0x829a, 0x9041, 0x906f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x920d, 0x5f97, 0x5d9d, 0x6a59, 0x71c8, 0x767b, 0x7b49, - 0x85e4, 0x8b04, 0x9127, 0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669, - 0x7f85, 0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, - 0x73de, 0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, - 0x5375, 0x6b04, 0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, - 0x8fa3, 0x5d50, 0x64e5, 0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, - 0x85cd, 0x8964, 0x89bd, 0x62c9, 0x81d8, 0x881f, 0x5eca, 0x6717, - 0x6d6a, 0x72fc, 0x7405, 0x746f, 0x8782, 0x90de, 0x4f86, 0x5d0d, - 0x5fa0, 0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae, 0x5006, 0x5169, - 0x51c9, 0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f, 0x8ad2, - 0x8f1b, 0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e, - 0x623e, 0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, - 0x9a62, 0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, - 0x792b, 0x8f62, 0x9742, 0x6190, 0x6200, 0x6523, 0x6f23, 0x003f, - /* lead byte e6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7149, 0x7489, 0x7df4, 0x806f, 0x84ee, 0x8f26, 0x9023, - 0x934a, 0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8, 0x88c2, 0x5ec9, - 0x6582, 0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36, 0x56f9, - 0xf95f, 0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce, - 0x8046, 0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, - 0x6fa7, 0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, - 0x6ad3, 0x6f5e, 0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, - 0x8def, 0x8f05, 0x9732, 0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, - 0x7da0, 0x83c9, 0x9304, 0x9e7f, 0x9e93, 0x8ad6, 0x58df, 0x5f04, - 0x6727, 0x7027, 0x74cf, 0x7c60, 0x807e, 0x5121, 0x7028, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7262, 0x78ca, 0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86, - 0x50da, 0x5bee, 0x5ed6, 0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, - 0x84fc, 0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, - 0x6dda, 0x6f0f, 0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, - 0x964b, 0x5289, 0x65d2, 0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, - 0x7409, 0x7460, 0x7559, 0x7624, 0x786b, 0x8b2c, 0x985e, 0x516d, - 0x622e, 0x9678, 0x4f96, 0x502b, 0x5d19, 0x6dea, 0x7db8, 0x8f2a, - 0x5f8b, 0x6144, 0x6817, 0xf961, 0x9686, 0x52d2, 0x808b, 0x51dc, - 0x51cc, 0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda, 0x5229, - 0x5398, 0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c, - 0x7281, 0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, - 0x7fb8, 0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, - 0x541d, 0x6f7e, 0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, - 0x9e9f, 0x6797, 0x6dcb, 0x7433, 0x81e8, 0x9716, 0x782c, 0x003f, - /* lead byte e7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a, 0x75f2, 0x78bc, - 0x78e8, 0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20, 0x819c, - 0x83ab, 0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162, - 0x633d, 0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, - 0x8513, 0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, - 0x6cab, 0x8309, 0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, - 0x671b, 0x7db2, 0x7f54, 0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, - 0x57cb, 0x59b9, 0x5a92, 0x5bd0, 0x6627, 0x679a, 0x6885, 0x6bcf, - 0x7164, 0x7f75, 0x8cb7, 0x8ce3, 0x9081, 0x9b45, 0x8108, 0x8c8a, - 0x964c, 0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b, 0x76f2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x76df, 0x840c, 0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, - 0x68c9, 0x6c94, 0x7704, 0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, - 0x6ec5, 0x8511, 0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, - 0x6e9f, 0x76bf, 0x7791, 0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, - 0x9cf4, 0x8882, 0x4fae, 0x5192, 0x52df, 0x59c6, 0x5e3d, 0x6155, - 0x6478, 0x6479, 0x66ae, 0x67d0, 0x6a21, 0x6bcd, 0x6bdb, 0x725f, - 0x7261, 0x7441, 0x7738, 0x77db, 0x8017, 0x82bc, 0x8305, 0x8b00, - 0x8b28, 0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766, 0x7a46, - 0x9da9, 0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893, - 0x5999, 0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, - 0x82d7, 0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, - 0x64ab, 0x65e0, 0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, - 0x7e46, 0x821e, 0x8302, 0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, - 0x58a8, 0x9ed8, 0x5011, 0x520e, 0x543b, 0x554f, 0x6587, 0x003f, - /* lead byte e8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580, 0x96ef, - 0x52ff, 0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c, - 0x5fae, 0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, - 0x7f8e, 0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, - 0x610d, 0x61ab, 0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, - 0x73c9, 0x7de1, 0x9594, 0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, - 0x62cd, 0x640f, 0x64b2, 0x6734, 0x6a38, 0x6cca, 0x73c0, 0x749e, - 0x7b94, 0x7c95, 0x7e1b, 0x818a, 0x8236, 0x8584, 0x8feb, 0x96f9, - 0x99c1, 0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc, 0x642c, 0x6500, - 0x6591, 0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x76e4, 0x76fc, 0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, - 0x87e0, 0x8fd4, 0x9812, 0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, - 0x6f51, 0x767c, 0x8dcb, 0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, - 0x508d, 0x574a, 0x59a8, 0x5c28, 0x5e47, 0x5f77, 0x623f, 0x653e, - 0x65b9, 0x65c1, 0x6609, 0x678b, 0x699c, 0x6ec2, 0x78c5, 0x7d21, - 0x80aa, 0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c, 0x8a2a, 0x8b17, - 0x90a6, 0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9, 0x5f98, - 0x62dc, 0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da, - 0x88f4, 0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, - 0x4f70, 0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, - 0x6a0a, 0x7169, 0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, - 0x98dc, 0x4f10, 0x7b4f, 0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, - 0x6c3e, 0x6c4e, 0x6cdb, 0x72af, 0x7bc4, 0x8303, 0x6cd5, 0x743a, - 0x50fb, 0x5288, 0x58c1, 0x64d8, 0x6a97, 0x74a7, 0x7656, 0x003f, - /* lead byte e9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01, - 0x8b8a, 0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, - 0x4e19, 0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, - 0x68c5, 0x70b3, 0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, - 0x9a08, 0x4fdd, 0x5821, 0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, - 0x6e7a, 0x6f7d, 0x73e4, 0x752b, 0x83e9, 0x88dc, 0x8913, 0x8b5c, - 0x8f14, 0x4f0f, 0x50d5, 0x5310, 0x535c, 0x5b93, 0x5fa9, 0x670d, - 0x798f, 0x8179, 0x832f, 0x8514, 0x8907, 0x8986, 0x8f39, 0x8f3b, - 0x99a5, 0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01, 0x5cef, - 0x5cf0, 0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x84ec, 0x8702, 0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, - 0x4fef, 0x5085, 0x5256, 0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, - 0x5a66, 0x5b5a, 0x5b75, 0x5bcc, 0x5e9c, 0xf966, 0x6276, 0x6577, - 0x65a7, 0x6d6e, 0x6ea5, 0x7236, 0x7b26, 0x7c3f, 0x7f36, 0x8150, - 0x8151, 0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03, 0x8ca0, 0x8ce6, - 0x8cfb, 0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644, 0x99d9, - 0x9ce7, 0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e, - 0x5fff, 0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, - 0x7cde, 0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, - 0x5f7f, 0x62c2, 0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, - 0x4e15, 0x5099, 0x5315, 0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, - 0x60b2, 0x618a, 0x6249, 0x6279, 0x6590, 0x6787, 0x69a7, 0x6bd4, - 0x6bd6, 0x6bd7, 0x6bd8, 0x6cb8, 0xf968, 0x7435, 0x75fa, 0x7812, - 0x7891, 0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1, 0x80a5, 0x003f, - /* lead byte ea */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, - 0x8cbb, 0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, - 0x658c, 0x6ab3, 0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, - 0x8ca7, 0x8cd3, 0x983b, 0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, - 0x4e8b, 0x4e9b, 0x4ed5, 0x4f3a, 0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, - 0x53f2, 0x53f8, 0x5506, 0x55e3, 0x56db, 0x58eb, 0x5962, 0x5a11, - 0x5beb, 0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99, 0x601d, 0x6368, - 0x659c, 0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99, 0x6cd7, - 0x6e23, 0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1, - 0x7be9, 0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x86c7, 0x88df, 0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, - 0x8fad, 0x90aa, 0x98fc, 0x99df, 0x9e9d, 0x524a, 0xf969, 0x6714, - 0xf96a, 0x5098, 0x522a, 0x5c71, 0x6563, 0x6c55, 0x73ca, 0x7523, - 0x759d, 0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77, 0x6492, 0x6bba, - 0x715e, 0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17, 0x829f, - 0x8518, 0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7, - 0x50cf, 0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, - 0x5e38, 0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, - 0x723d, 0x7240, 0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, - 0x89f4, 0x8a73, 0x8c61, 0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, - 0x55c7, 0xf96c, 0x7a61, 0x7d22, 0x8272, 0x7272, 0x751f, 0x7525, - 0xf96d, 0x7b19, 0x5885, 0x58fb, 0x5dbc, 0x5e8f, 0x5eb6, 0x5f90, - 0x6055, 0x6292, 0x637f, 0x654d, 0x6691, 0x66d9, 0x66f8, 0x6816, - 0x68f2, 0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72, 0x003f, - /* lead byte eb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, - 0x9ecd, 0x9f20, 0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, - 0x6790, 0x6c50, 0x6dc5, 0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, - 0x932b, 0x4ed9, 0x50ca, 0x5148, 0x5584, 0x5b0b, 0x5ba3, 0x6247, - 0x657e, 0x65cb, 0x6e32, 0x717d, 0x7401, 0x7444, 0x7487, 0x74bf, - 0x766c, 0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a, 0x81b3, 0x8239, - 0x861a, 0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425, 0x994d, - 0x9bae, 0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c, - 0x859b, 0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, - 0x6bb2, 0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6d89, 0x71ee, 0xf96e, 0x57ce, 0x59d3, 0x5bac, 0x6027, - 0x60fa, 0x6210, 0x661f, 0x665f, 0x7329, 0x73f9, 0x76db, 0x7701, - 0x7b6c, 0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192, 0x4e16, 0x52e2, - 0x6b72, 0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0, 0x53ec, - 0x562f, 0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383, - 0x6414, 0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, - 0x71d2, 0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, - 0x7d20, 0x7d39, 0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, - 0x90b5, 0x92b7, 0x97f6, 0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, - 0x7c9f, 0x7e8c, 0x8b16, 0x8d16, 0x901f, 0x5b6b, 0x5dfd, 0x640d, - 0x84c0, 0x905c, 0x98e1, 0x7387, 0x5b8b, 0x609a, 0x677e, 0x6dde, - 0x8a1f, 0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970, 0x7051, 0x788e, - 0x9396, 0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da, 0x5782, - 0x58fd, 0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101, 0x003f, - /* lead byte ec */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x620d, 0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, - 0x6b8a, 0x6c34, 0x6d19, 0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, - 0x74b2, 0x7626, 0x7761, 0x79c0, 0x7a57, 0x7aea, 0x7cb9, 0x7d8f, - 0x7dac, 0x7e61, 0x7f9e, 0x8129, 0x8331, 0x8490, 0x84da, 0x85ea, - 0x8896, 0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083, 0x916c, 0x9296, - 0x92b9, 0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808, 0x9996, - 0x9ad3, 0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1, - 0x6f5a, 0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, - 0x5faa, 0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, - 0x6df3, 0x73e3, 0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x821c, 0x8340, 0x84f4, 0x8563, 0x8a62, 0x8ac4, 0x9187, - 0x931e, 0x9806, 0x99b4, 0x620c, 0x8853, 0x8ff0, 0x9265, 0x5d07, - 0x5d27, 0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe, 0x7fd2, - 0x8936, 0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f, - 0x6607, 0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, - 0x5aa4, 0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, - 0x662f, 0x6642, 0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, - 0x8494, 0x84cd, 0x8996, 0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, - 0x57f4, 0x5bd4, 0x5f0f, 0x606f, 0x62ed, 0x690d, 0x6b96, 0x6e5c, - 0x7184, 0x7bd2, 0x8755, 0x8b58, 0x8efe, 0x98df, 0x98fe, 0x4f38, - 0x4f81, 0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c, 0x65b0, 0x6668, - 0x71fc, 0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398, 0x85aa, - 0x85ce, 0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931, - 0x5ba4, 0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81, 0x003f, - /* lead byte ed */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf972, 0x6df1, 0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, - 0x5341, 0xf973, 0x96d9, 0x6c0f, 0x4e9e, 0x4fc4, 0x5152, 0x555e, - 0x5a25, 0x5ce8, 0x6211, 0x7259, 0x82bd, 0x83aa, 0x86fe, 0x8859, - 0x8a1d, 0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d, 0x580a, 0x5cb3, - 0x5dbd, 0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25, 0x9102, - 0x9354, 0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f, - 0x6848, 0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, - 0x8ecb, 0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, - 0x83f4, 0x95c7, 0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, - 0x600f, 0x663b, 0x6b83, 0x79e7, 0x9d26, 0x5393, 0x54c0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x57c3, 0x5d16, 0x611b, 0x66d6, 0x6daf, 0x788d, 0x827e, - 0x9698, 0x9744, 0x5384, 0x627c, 0x6396, 0x6db2, 0x7e0a, 0x814b, - 0x984d, 0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6, - 0x591c, 0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, - 0x5f31, 0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, - 0x8e8d, 0xf977, 0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, - 0x63da, 0x6518, 0x656d, 0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, - 0x7001, 0x716c, 0x75d2, 0x760d, 0x79b3, 0x7a70, 0xf97b, 0x7f8a, - 0xf97c, 0x8944, 0xf97d, 0x8b93, 0x91c0, 0x967d, 0xf97e, 0x990a, - 0x5704, 0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6, 0x8a9e, 0x99ad, - 0x9b5a, 0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6, 0x5043, - 0x5830, 0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa, - 0x513c, 0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, - 0x4e88, 0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982, 0x003f, - /* lead byte ee */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf983, 0x6b5f, 0x6c5d, 0xf984, 0x74b5, 0x7916, 0xf985, - 0x8207, 0x8245, 0x8339, 0x8f3f, 0x8f5d, 0xf986, 0x9918, 0xf987, - 0xf988, 0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79, 0x6613, 0xf98b, - 0xf98c, 0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b, 0x56a5, - 0x5827, 0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990, - 0x6350, 0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, - 0x6df5, 0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, - 0x71d5, 0xf994, 0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, - 0x7e2f, 0xf997, 0x884d, 0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, - 0xf99b, 0x9cf6, 0xf99c, 0xf99d, 0xf99e, 0x6085, 0x6d85, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf99f, 0x71b1, 0xf9a0, 0xf9a1, 0x95b1, 0x53ad, 0xf9a2, - 0xf9a3, 0xf9a4, 0x67d3, 0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276, - 0x82d2, 0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, - 0x8449, 0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, - 0xf9ac, 0x6620, 0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, - 0x6f41, 0x6fda, 0x701b, 0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, - 0x745b, 0xf9ae, 0x74d4, 0x76c8, 0x7a4e, 0x7e93, 0xf9af, 0xf9b0, - 0x82f1, 0x8a60, 0x8fce, 0xf9b1, 0x9348, 0xf9b2, 0x9719, 0xf9b3, - 0xf9b4, 0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1, 0x66f3, 0x6c6d, - 0x6fca, 0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602, 0xf9b6, - 0x88d4, 0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713, - 0x9810, 0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, - 0x55da, 0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, - 0x61ca, 0x6556, 0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3, 0x003f, - /* lead byte ef */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x70cf, 0x71ac, 0x7352, 0x7b7d, 0x8708, 0x8aa4, 0x9c32, - 0x9f07, 0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a, 0x6eab, 0x7465, - 0x761f, 0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1, 0x74ee, - 0x7515, 0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6, - 0x7aa9, 0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, - 0x5b9b, 0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, - 0x7de9, 0x7feb, 0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, - 0x66f0, 0x5f80, 0x65fa, 0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, - 0x6b6a, 0x77ee, 0x5916, 0x5d6c, 0x5dcd, 0x7325, 0x754f, 0xf9ba, - 0xf9bb, 0x50e5, 0x51f9, 0x582f, 0x592d, 0x5996, 0x59da, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5be5, 0xf9bc, 0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493, - 0x64fe, 0xf9be, 0x66dc, 0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, - 0xf9c1, 0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, - 0x87ef, 0x8981, 0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, - 0x6b32, 0x6d74, 0x7e1f, 0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, - 0x52c7, 0x57c7, 0x5889, 0x5bb9, 0x5eb8, 0x6142, 0x6995, 0x6d8c, - 0x6e67, 0x6eb6, 0x7194, 0x7462, 0x7528, 0x752c, 0x8073, 0x8338, - 0x84c9, 0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e, 0x4f51, 0x5076, - 0x512a, 0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24, 0x611a, - 0x6182, 0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991, - 0x79b9, 0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, - 0x90f5, 0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, - 0x6631, 0x682f, 0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, - 0x6a52, 0x6b9e, 0x6f90, 0x7189, 0x8018, 0x82b8, 0x8553, 0x003f, - /* lead byte f0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a, 0x9b31, 0x4e90, - 0x718a, 0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712, 0x57a3, - 0x5a9b, 0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39, - 0x6e72, 0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, - 0x9060, 0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, - 0x4f4d, 0x5049, 0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, - 0x6170, 0x6690, 0x6e2d, 0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, - 0x8466, 0x853f, 0x875f, 0x885b, 0x8918, 0x8b02, 0x9055, 0x97cb, - 0x9b4f, 0x4e73, 0x4f91, 0x5112, 0x516a, 0xf9c7, 0x552f, 0x55a9, - 0x5b7a, 0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0, 0x60df, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6108, 0x6109, 0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, - 0x67da, 0xf9c9, 0x6961, 0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, - 0xf9cb, 0x6fe1, 0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, - 0x7652, 0xf9ce, 0xf9cf, 0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, - 0x8adb, 0x8aed, 0x8e30, 0x8e42, 0x904a, 0x903e, 0x907a, 0x9149, - 0x91c9, 0x936e, 0xf9d0, 0xf9d1, 0x5809, 0xf9d2, 0x6bd3, 0x8089, - 0x80b2, 0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39, 0xf9d5, 0xf9d6, - 0x6f64, 0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f, 0xf9d8, - 0xf9d9, 0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d, - 0xf9dc, 0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, - 0x4e59, 0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, - 0x6ce3, 0x9091, 0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, - 0x5100, 0x5b9c, 0x610f, 0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, - 0x77e3, 0x7fa9, 0x8264, 0x858f, 0x87fb, 0x8863, 0x8abc, 0x003f, - /* lead byte f1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd, 0xf9de, - 0x5937, 0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0, - 0xf9e1, 0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, - 0xf9e5, 0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, - 0xf9e7, 0xf9e8, 0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, - 0x990c, 0xf9eb, 0xf9ec, 0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, - 0x8b1a, 0x4eba, 0x4ec1, 0x5203, 0x5370, 0xf9ed, 0x54bd, 0x56e0, - 0x59fb, 0x5bc5, 0x5f15, 0x5fcd, 0x6e6e, 0xf9ee, 0xf9ef, 0x7d6a, - 0x8335, 0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d, 0x9777, 0xf9f2, - 0xf9f3, 0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9038, 0x93b0, 0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, - 0x6041, 0xf9f4, 0xf9f5, 0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, - 0x5344, 0xf9f7, 0xf9f8, 0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, - 0x4ed4, 0x523a, 0x54a8, 0x59c9, 0x59ff, 0x5b50, 0x5b57, 0x5b5c, - 0x6063, 0x6148, 0x6ecb, 0x7099, 0x716e, 0x7386, 0x74f7, 0x75b5, - 0x78c1, 0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517, 0x85c9, 0x8aee, - 0x8cc7, 0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628, 0x707c, - 0x70b8, 0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71, - 0x68e7, 0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, - 0x7c2a, 0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, - 0x58ef, 0x596c, 0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, - 0x6756, 0x6a1f, 0x6aa3, 0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, - 0x748b, 0x7ae0, 0x7ca7, 0x8178, 0x81df, 0x81e7, 0x838a, 0x846c, - 0x8523, 0x8594, 0x85cf, 0x88dd, 0x8d13, 0x91ac, 0x9577, 0x003f, - /* lead byte f2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750, - 0x683d, 0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, - 0x8f09, 0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, - 0x4f4e, 0x5132, 0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, - 0x6a17, 0x6cae, 0x6e1a, 0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, - 0x82e7, 0x83f9, 0x8457, 0x85f7, 0x8a5b, 0x8caf, 0x8e87, 0x9019, - 0x90b8, 0x96ce, 0x9f5f, 0x52e3, 0x540a, 0x5ae1, 0x5bc2, 0x6458, - 0x6575, 0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d, 0x7b1b, 0x7c4d, - 0x7e3e, 0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1, 0x8e5f, - 0x8fea, 0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5168, 0x5178, 0x524d, 0x526a, 0x5861, 0x587c, 0x5960, - 0x5c08, 0x5c55, 0x5edb, 0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, - 0x6fb1, 0x714e, 0x7420, 0x7530, 0x7538, 0x7551, 0x7672, 0x7b4c, - 0x7b8b, 0x7bad, 0x7bc6, 0x7e8f, 0x8a6e, 0x8f3e, 0x8f49, 0x923f, - 0x9293, 0x9322, 0x942b, 0x96fb, 0x985a, 0x986b, 0x991e, 0x5207, - 0x622a, 0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76, 0x5360, - 0x5cbe, 0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede, - 0x63a5, 0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, - 0x5448, 0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, - 0x633a, 0x653f, 0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, - 0x6a89, 0x6b63, 0x6c40, 0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, - 0x70a1, 0x738e, 0x73fd, 0x753a, 0x775b, 0x7887, 0x798e, 0x7a0b, - 0x7a7d, 0x7cbe, 0x7d8e, 0x8247, 0x8a02, 0x8aea, 0x8c9e, 0x912d, - 0x914a, 0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706, 0x9756, 0x003f, - /* lead byte f3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, - 0x5e1d, 0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, - 0x81cd, 0x85ba, 0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, - 0x973d, 0x984c, 0x9f4a, 0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, - 0x5f14, 0x5f6b, 0x63aa, 0x64cd, 0x65e9, 0x6641, 0x66fa, 0x66f9, - 0x671d, 0x689d, 0x68d7, 0x69fd, 0x6f15, 0x6f6e, 0x7167, 0x71e5, - 0x722a, 0x74aa, 0x773a, 0x7956, 0x795a, 0x79df, 0x7a20, 0x7a95, - 0x7c97, 0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4, 0x8a54, - 0x8abf, 0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5, - 0x9ce5, 0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5352, 0x62d9, 0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, - 0x616b, 0x68d5, 0x6dd9, 0x742e, 0x7a2e, 0x7d42, 0x7d9c, 0x7e31, - 0x816b, 0x8e2a, 0x8e35, 0x937e, 0x9418, 0x4f50, 0x5750, 0x5de6, - 0x5ea7, 0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f, 0x505a, 0x59dd, - 0x80c4, 0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde, 0x5eda, - 0x665d, 0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d, - 0x70b7, 0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, - 0x86db, 0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, - 0x9152, 0x9444, 0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, - 0x57c8, 0x5bef, 0x5cfb, 0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, - 0x710c, 0x756f, 0x7ae3, 0x8822, 0x9021, 0x9075, 0x96cb, 0x99ff, - 0x8301, 0x4e2d, 0x4ef2, 0x8846, 0x91cd, 0x537d, 0x6adb, 0x696b, - 0x6c41, 0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef, 0x70dd, 0x7511, - 0x75c7, 0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea, 0x003f, - /* lead byte f4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, - 0x652f, 0x65e8, 0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, - 0x6f2c, 0x77e5, 0x7825, 0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, - 0x81f3, 0x829d, 0x82b7, 0x8718, 0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, - 0x9072, 0x76f4, 0x7a19, 0x7a37, 0x7e54, 0x8077, 0x5507, 0x55d4, - 0x5875, 0x632f, 0x6422, 0x6649, 0x664b, 0x686d, 0x699b, 0x6b84, - 0x6d25, 0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9, 0x76e1, - 0x771e, 0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897, - 0x8a3a, 0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, - 0x9707, 0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x74c6, 0x75be, 0x79e9, 0x7a92, 0x81a3, 0x86ed, 0x8cea, - 0x8dcc, 0x8fed, 0x659f, 0x6715, 0xf9fd, 0x57f7, 0x6f57, 0x7ddd, - 0x8f2f, 0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84, 0x4e14, 0x4f98, - 0x501f, 0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64, 0x78cb, - 0x7b9a, 0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740, - 0x7a84, 0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, - 0x74da, 0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, - 0x947d, 0x9910, 0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, - 0x50ed, 0x53c3, 0x5879, 0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, - 0x8b92, 0x8b96, 0x5009, 0x5021, 0x5275, 0x5531, 0x5a3c, 0x5ee0, - 0x5f70, 0x6134, 0x655e, 0x660c, 0x6636, 0x66a2, 0x69cd, 0x6ec4, - 0x6f32, 0x7316, 0x7621, 0x7a93, 0x8139, 0x8259, 0x83d6, 0x84bc, - 0x50b5, 0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826, 0x7db5, - 0x83dc, 0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56, 0x003f, - /* lead byte f5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8cac, 0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, - 0x5254, 0x5c3a, 0x617d, 0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, - 0x7620, 0x810a, 0x8e60, 0x965f, 0x96bb, 0x4edf, 0x5343, 0x5598, - 0x5929, 0x5ddd, 0x64c5, 0x6cc9, 0x6dfa, 0x7394, 0x7a7f, 0x821b, - 0x85a6, 0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1, 0x9621, 0x97c6, - 0x51f8, 0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4, 0x8f1f, - 0x8f4d, 0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb, - 0x7c3d, 0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, - 0x7252, 0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, - 0x6df8, 0x807d, 0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5243, 0x66ff, 0x6d95, 0x6eef, 0x7de0, 0x8ae6, 0x902e, - 0x905e, 0x9ad4, 0x521d, 0x527f, 0x54e8, 0x6194, 0x6284, 0x62db, - 0x68a2, 0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d, 0x7901, - 0x790e, 0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549, - 0x8c82, 0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, - 0x77d7, 0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, - 0x585a, 0x5bf5, 0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, - 0x9283, 0x64ae, 0x50ac, 0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, - 0x690e, 0x6978, 0x6a1e, 0x6e6b, 0x76ba, 0x79cb, 0x82bb, 0x8429, - 0x8acf, 0x8da8, 0x8ffd, 0x9112, 0x914b, 0x919c, 0x9310, 0x9318, - 0x939a, 0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c, 0x795d, 0x7afa, - 0x7b51, 0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8, 0x9010, - 0x6625, 0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0, - 0x6c96, 0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403, 0x003f, - /* lead byte f6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8d05, 0x53d6, 0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, - 0x7fe0, 0x805a, 0x8106, 0x81ed, 0x8da3, 0x9189, 0x9a5f, 0x9df2, - 0x5074, 0x4ec4, 0x53a0, 0x60fb, 0x6e2c, 0x5c64, 0x4f88, 0x5024, - 0x55e4, 0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb, 0x6dc4, 0x71be, - 0x75d4, 0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb, 0x7f6e, - 0x81f4, 0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5, - 0x98ed, 0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, - 0x6c88, 0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, - 0x7a31, 0x5feb, 0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, - 0x6253, 0x62d6, 0x6736, 0x6955, 0x8235, 0x9640, 0x99b1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x99dd, 0x502c, 0x5353, 0x5544, 0x577c, 0xfa01, 0x6258, - 0xfa02, 0x64e2, 0x666b, 0x67dd, 0x6fc1, 0x6fef, 0x7422, 0x7438, - 0x8a17, 0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e, - 0x7058, 0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, - 0x803d, 0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, - 0xfa03, 0x8569, 0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, - 0x6c70, 0x6cf0, 0x7b1e, 0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, - 0xfa04, 0x64c7, 0x6fa4, 0x6491, 0x6504, 0x514e, 0x5410, 0x571f, - 0x8a0e, 0x615f, 0x6876, 0xfa05, 0x75db, 0x7b52, 0x7d71, 0x901a, - 0x5806, 0x69cc, 0x817f, 0x892a, 0x9000, 0x9839, 0x5078, 0x5957, - 0x59ac, 0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6, 0x5761, - 0x5a46, 0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e, - 0x722c, 0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, - 0x5742, 0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211, 0x003f, - /* lead byte f7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x962a, 0x516b, 0x53ed, 0x634c, 0x4f69, 0x5504, 0x6096, - 0x6557, 0x6c9b, 0x6d7f, 0x724c, 0x72fd, 0x7a17, 0x8987, 0x8c9d, - 0x5f6d, 0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf, 0x504f, 0x6241, - 0x7247, 0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19, 0x8cb6, - 0x576a, 0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63, - 0x5ee2, 0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, - 0x5305, 0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, - 0x629b, 0x62b1, 0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, - 0x80de, 0x812f, 0x82de, 0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, - 0x92ea, 0x98fd, 0x9b91, 0x5e45, 0x66b4, 0x66dd, 0x7011, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7206, 0xfa07, 0x4ff5, 0x527d, 0x5f6a, 0x6153, 0x6753, - 0x6a19, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4, - 0x9a43, 0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, - 0x5f7c, 0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, - 0x5f3c, 0x5fc5, 0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, - 0x999d, 0x4e4f, 0x903c, 0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, - 0x6630, 0x6cb3, 0x7455, 0x8377, 0x8766, 0x8cc0, 0x9050, 0x971e, - 0x9c15, 0x58d1, 0x5b78, 0x8650, 0x8b14, 0x9db4, 0x5bd2, 0x6068, - 0x608d, 0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a, 0x7f55, 0x7ff0, - 0x9591, 0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd, 0x542b, - 0x54b8, 0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c, - 0x9677, 0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, - 0x965c, 0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, - 0x676d, 0x6841, 0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a, 0x003f, - /* lead byte f8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfa08, 0xfa09, 0x9805, 0x4ea5, 0x5055, 0x54b3, 0x5793, - 0x595a, 0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77, 0x7023, 0x87f9, - 0x89e3, 0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be, 0x6838, - 0x5016, 0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae, - 0x73e6, 0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, - 0x865b, 0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, - 0x9a57, 0x5955, 0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, - 0x61f8, 0x665b, 0x6ceb, 0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, - 0x774d, 0x7d43, 0x7d62, 0x7e23, 0x8237, 0x8852, 0xfa0a, 0x8ce2, - 0x9249, 0x986f, 0x5b51, 0x7a74, 0x8840, 0x9801, 0x5acc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x4fe0, 0x5354, 0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9, - 0x8105, 0x8107, 0x83a2, 0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, - 0x578b, 0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, - 0x73e9, 0x7469, 0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, - 0x99a8, 0x516e, 0x5f57, 0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, - 0x91af, 0x978b, 0x4e4e, 0x4e92, 0x547c, 0x58d5, 0x58fa, 0x597d, - 0x5cb5, 0x5f27, 0x6236, 0x6248, 0x660a, 0x6667, 0x6beb, 0x6d69, - 0x6dcf, 0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9, 0x705d, 0x72d0, - 0x7425, 0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e, 0x80e1, - 0x82a6, 0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a, - 0x93ac, 0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, - 0x6df7, 0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, - 0x5f18, 0x6c5e, 0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, - 0x9d3b, 0x5316, 0x548c, 0x5b05, 0x6a3a, 0x706b, 0x7575, 0x003f, - /* lead byte f9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71, 0x8b41, 0x8ca8, - 0x9774, 0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b, 0x4e38, - 0x559a, 0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665, - 0x6853, 0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, - 0x6d3b, 0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, - 0x604d, 0x60f6, 0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, - 0x6e5f, 0x6ec9, 0x6f62, 0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, - 0x8352, 0x8757, 0x9051, 0x968d, 0x9ec3, 0x532f, 0x56de, 0x5efb, - 0x5f8a, 0x6062, 0x6094, 0x61f7, 0x6666, 0x6703, 0x6a9c, 0x6dee, - 0x6fae, 0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334, 0x86d4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8aa8, 0x8cc4, 0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, - 0x54ee, 0x5686, 0x5b5d, 0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, - 0x6dc6, 0x723b, 0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, - 0x540e, 0x543c, 0x5589, 0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, - 0x73dd, 0x9005, 0x52db, 0x52f3, 0x5864, 0x58ce, 0x7104, 0x718f, - 0x71fb, 0x85b0, 0x8a13, 0x6688, 0x85a8, 0x55a7, 0x6684, 0x714a, - 0x8431, 0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd, 0x63ee, 0x6689, - 0x7147, 0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb, 0x7566, - 0x8667, 0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36, - 0x80f8, 0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, - 0x7d07, 0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, - 0x7fd5, 0x8208, 0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, - 0x5b09, 0x5e0c, 0x6199, 0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, - 0x71b9, 0x71ba, 0x72a7, 0x79a7, 0x7a00, 0x7fb2, 0x8a70, 0x003f -}; - -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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 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, 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, - 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, - 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, - 0x4d, 0x4e, 0x4f, 0x50, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x00, - 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, - 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, - 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, - 0x6f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const unsigned short uni2cp_low[39424] = -{ - /* 0x0000 .. 0x00ff */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x003f, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0080, 0x0081, 0x0082, 0x0083, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0020, 0xd9ae, 0x0063, 0x004c, 0xd9b4, 0x0059, 0x007c, 0xd967, - 0xd937, 0x0063, 0xdca3, 0xd946, 0x003f, 0xd939, 0x0072, 0xd93a, - 0xd956, 0xd94e, 0xdd99, 0xdd9a, 0xd9a5, 0xdb7c, 0xd9d2, 0xd934, - 0xd9ac, 0xdd98, 0xdcac, 0xd947, 0xdcf9, 0xdcf6, 0xdcfa, 0xd9af, - 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0xdca1, 0x0043, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, - 0xdca2, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0xd94f, - 0xdcaa, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0xdcad, 0xdd3c, - 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0xdd31, 0x0063, - 0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, - 0xdd33, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0xd950, - 0xdd3a, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0xdd3d, 0x0079, - /* 0x0100 .. 0x01ff */ - 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063, - 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064, - 0xdca2, 0xdd32, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, - 0x0045, 0x0065, 0x0045, 0x0065, 0x0047, 0x0067, 0x0047, 0x0067, - 0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0xdca4, 0xdd34, - 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, - 0x0049, 0xdd35, 0xdca6, 0xdd36, 0x004a, 0x006a, 0x004b, 0x006b, - 0xdd37, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0xdca8, - 0xdd38, 0xdca9, 0xdd39, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, - 0x006e, 0xdd40, 0xdcaf, 0xdd3f, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0xdcab, 0xdd3b, 0x0052, 0x0072, 0x0052, 0x0072, - 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, - 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0xdcae, 0xdd3e, - 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, - 0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079, - 0x0059, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0073, - 0x0062, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdca2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0045, 0x0046, 0x0066, 0x003f, 0x003f, 0x003f, 0x003f, 0x0049, - 0x003f, 0x003f, 0x006c, 0x003f, 0x003f, 0x003f, 0x003f, 0x004f, - 0x004f, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x0074, 0x003f, 0x003f, 0x0054, 0x0055, - 0x0075, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdba2, 0x003f, 0x003f, 0x0021, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0049, - 0x0069, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, - 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x003f, 0x0041, 0x0061, - 0x0041, 0x0061, 0xdca1, 0xdd31, 0x0047, 0x0067, 0x0047, 0x0067, - 0x004b, 0x006b, 0x004f, 0x006f, 0x004f, 0x006f, 0x003f, 0x003f, - 0x006a, 0x003f, 0x003f, 0x003f, 0x0047, 0x0067, 0x003f, 0x003f, - 0x004e, 0x006e, 0x0041, 0x0061, 0xdca1, 0xdd31, 0xdcaa, 0xdd3a, - /* 0x0200 .. 0x02ff */ - 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, - 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, - 0x0052, 0x0072, 0x0052, 0x0072, 0x0055, 0x0075, 0x0055, 0x0075, - 0x0053, 0x0073, 0x0054, 0x0074, 0x003f, 0x003f, 0x0048, 0x0068, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, - 0x0045, 0x0065, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0067, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0068, 0x003f, 0x006a, 0x0072, 0x003f, 0x003f, 0x003f, 0x0077, - 0x0079, 0xd9a5, 0xd9a9, 0xd93e, 0xd93f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x005e, 0xd9a7, - 0x0027, 0xd93a, 0xd9a5, 0x0060, 0x003f, 0x005f, 0x003f, 0x003f, - 0xd9b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd9a8, 0xd9ab, 0xd9aa, 0xd9ad, 0x007e, 0xd9a9, 0x003f, 0x003f, - 0x003f, 0x006c, 0x0073, 0x0078, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0300 .. 0x03ff */ - 0x0060, 0xd9a5, 0x005e, 0x007e, 0xd93a, 0xd93a, 0xd9a8, 0xd9ab, - 0xd937, 0x003f, 0xd9aa, 0xd9a9, 0xd9a7, 0x003f, 0x0022, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ac, - 0xd9ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x005f, 0x005f, 0x005f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0060, 0xd9a5, 0x003f, 0x003f, 0xd937, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a5, 0xd937, 0xdb51, 0xd934, - 0xdb55, 0xdb57, 0xdb59, 0x003f, 0xdb5f, 0x003f, 0xdb64, 0xdb68, - 0xdb79, 0xdb51, 0xdb52, 0xdb53, 0xdb54, 0xdb55, 0xdb56, 0xdb57, - 0xdb58, 0xdb59, 0xdb5a, 0xdb5b, 0xdb5c, 0xdb5d, 0xdb5e, 0xdb5f, - 0xdb60, 0xdb61, 0x003f, 0xdb62, 0xdb63, 0xdb64, 0xdb65, 0xdb66, - 0xdb67, 0xdb68, 0xdb59, 0xdb64, 0xdb71, 0xdb75, 0xdb77, 0xdb79, - 0xdb96, 0xdb71, 0xdb72, 0xdb73, 0xdb74, 0xdb75, 0xdb76, 0xdb77, - 0xdb78, 0xdb79, 0xdb7a, 0xdb7b, 0xdb7c, 0xdb7d, 0xdb7e, 0xdb91, - 0xdb92, 0xdb93, 0x003f, 0xdb94, 0xdb95, 0xdb96, 0xdb97, 0xdb98, - 0xdb99, 0xdb9a, 0xdb79, 0xdb96, 0xdb91, 0xdb96, 0xdb9a, 0x003f, - 0xdb72, 0xdb78, 0xdb64, 0xdb64, 0xdb64, 0xdb97, 0xdb92, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdb7a, 0xdb93, 0x003f, 0x003f, 0xdb58, 0xdb75, 0x003f, 0x003f, - 0x003f, 0xdb62, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0400 .. 0x04ff */ - 0xdea6, 0xdea7, 0x003f, 0xdea4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdeac, 0xdeaa, 0xdeb5, 0x003f, - 0xdea1, 0xdea2, 0xdea3, 0xdea4, 0xdea5, 0xdea6, 0xdea8, 0xdea9, - 0xdeaa, 0xdeab, 0xdeac, 0xdead, 0xdeae, 0xdeaf, 0xdeb0, 0xdeb1, - 0xdeb2, 0xdeb3, 0xdeb4, 0xdeb5, 0xdeb6, 0xdeb7, 0xdeb8, 0xdeb9, - 0xdeba, 0xdebb, 0xdebc, 0xdebd, 0xdebe, 0xdebf, 0xdec0, 0xdec1, - 0xded1, 0xded2, 0xded3, 0xded4, 0xded5, 0xded6, 0xded8, 0xded9, - 0xdeda, 0xdedb, 0xdedc, 0xdedd, 0xdede, 0xdedf, 0xdee0, 0xdee1, - 0xdee2, 0xdee3, 0xdee4, 0xdee5, 0xdee6, 0xdee7, 0xdee8, 0xdee9, - 0xdeea, 0xdeeb, 0xdeec, 0xdeed, 0xdeee, 0xdeef, 0xdef0, 0xdef1, - 0xded6, 0xded7, 0x003f, 0xded4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdedc, 0xdeda, 0xdee5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdea8, 0xded8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdea1, 0xded1, 0xdea1, 0xded1, 0x003f, 0x003f, 0xdea6, 0xded6, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdea8, 0xded8, 0xdea9, 0xded9, - 0x003f, 0x003f, 0xdeaa, 0xdeda, 0xdeaa, 0xdeda, 0xdeb0, 0xdee0, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdebf, 0xdeef, 0xdeb5, 0xdee5, - 0xdeb5, 0xdee5, 0xdeb5, 0xdee5, 0xdeb9, 0xdee9, 0x003f, 0x003f, - 0xdebd, 0xdeed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x1d00 .. 0x1dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0xdca1, 0x0042, 0x003f, - 0x0044, 0x0045, 0x003f, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, - 0x004c, 0x004d, 0x004e, 0x003f, 0x004f, 0x003f, 0x0050, 0x0052, - 0x0054, 0x0055, 0x0057, 0x0061, 0x003f, 0x003f, 0x003f, 0x0062, - 0x0064, 0x0065, 0x003f, 0x003f, 0x003f, 0x0067, 0x003f, 0x006b, - 0x006d, 0xdd3f, 0x006f, 0x003f, 0x003f, 0x003f, 0x0070, 0x0074, - 0x0075, 0x003f, 0x003f, 0x0076, 0x003f, 0xdb72, 0xdb73, 0xdb74, - 0xdb97, 0xdb98, 0x0069, 0x0072, 0x0075, 0x0076, 0xdb72, 0xdb73, - 0xdb93, 0xdb97, 0xdb98, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdedf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x0063, 0x003f, 0xdd33, 0x003f, - 0x0066, 0x003f, 0x0067, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0074, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x007a, 0x003f, 0x003f, 0x003f, 0xdb78, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x1e00 .. 0x1eff */ - 0x0041, 0x0061, 0x0042, 0x0062, 0x0042, 0x0062, 0x0042, 0x0062, - 0x0043, 0x0063, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, - 0x0044, 0x0064, 0x0044, 0x0064, 0x0045, 0x0065, 0x0045, 0x0065, - 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0046, 0x0066, - 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, - 0x0048, 0x0068, 0x0048, 0x0068, 0x0049, 0x0069, 0x0049, 0x0069, - 0x004b, 0x006b, 0x004b, 0x006b, 0x004b, 0x006b, 0x004c, 0x006c, - 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004d, 0x006d, - 0x004d, 0x006d, 0x004d, 0x006d, 0x004e, 0x006e, 0x004e, 0x006e, - 0x004e, 0x006e, 0x004e, 0x006e, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0x004f, 0x006f, 0x0050, 0x0070, 0x0050, 0x0070, - 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, - 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, - 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, - 0x0054, 0x0074, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, - 0x0055, 0x0075, 0x0055, 0x0075, 0x0056, 0x0076, 0x0056, 0x0076, - 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, - 0x0057, 0x0077, 0x0058, 0x0078, 0x0058, 0x0078, 0x0059, 0x0079, - 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0068, 0x0074, - 0x0077, 0x0079, 0x003f, 0x0073, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, - 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, - 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, - 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, - 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, - 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, - 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, - 0x0055, 0x0075, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, - 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x1f00 .. 0x1fff */ - 0xdb71, 0xdb71, 0xdb71, 0xdb71, 0xdb71, 0xdb71, 0xdb71, 0xdb71, - 0xdb51, 0xdb51, 0xdb51, 0xdb51, 0xdb51, 0xdb51, 0xdb51, 0xdb51, - 0xdb75, 0xdb75, 0xdb75, 0xdb75, 0xdb75, 0xdb75, 0x003f, 0x003f, - 0xdb55, 0xdb55, 0xdb55, 0xdb55, 0xdb55, 0xdb55, 0x003f, 0x003f, - 0xdb77, 0xdb77, 0xdb77, 0xdb77, 0xdb77, 0xdb77, 0xdb77, 0xdb77, - 0xdb57, 0xdb57, 0xdb57, 0xdb57, 0xdb57, 0xdb57, 0xdb57, 0xdb57, - 0xdb79, 0xdb79, 0xdb79, 0xdb79, 0xdb79, 0xdb79, 0xdb79, 0xdb79, - 0xdb59, 0xdb59, 0xdb59, 0xdb59, 0xdb59, 0xdb59, 0xdb59, 0xdb59, - 0xdb91, 0xdb91, 0xdb91, 0xdb91, 0xdb91, 0xdb91, 0x003f, 0x003f, - 0xdb5f, 0xdb5f, 0xdb5f, 0xdb5f, 0xdb5f, 0xdb5f, 0x003f, 0x003f, - 0xdb96, 0xdb96, 0xdb96, 0xdb96, 0xdb96, 0xdb96, 0xdb96, 0xdb96, - 0x003f, 0xdb64, 0x003f, 0xdb64, 0x003f, 0xdb64, 0x003f, 0xdb64, - 0xdb9a, 0xdb9a, 0xdb9a, 0xdb9a, 0xdb9a, 0xdb9a, 0xdb9a, 0xdb9a, - 0xdb68, 0xdb68, 0xdb68, 0xdb68, 0xdb68, 0xdb68, 0xdb68, 0xdb68, - 0xdb71, 0xdb71, 0xdb75, 0xdb75, 0xdb77, 0xdb77, 0xdb79, 0xdb79, - 0xdb91, 0xdb91, 0xdb96, 0xdb96, 0xdb9a, 0xdb9a, 0x003f, 0x003f, - 0xdb71, 0xdb71, 0xdb71, 0xdb71, 0xdb71, 0xdb71, 0xdb71, 0xdb71, - 0xdb51, 0xdb51, 0xdb51, 0xdb51, 0xdb51, 0xdb51, 0xdb51, 0xdb51, - 0xdb77, 0xdb77, 0xdb77, 0xdb77, 0xdb77, 0xdb77, 0xdb77, 0xdb77, - 0xdb57, 0xdb57, 0xdb57, 0xdb57, 0xdb57, 0xdb57, 0xdb57, 0xdb57, - 0xdb9a, 0xdb9a, 0xdb9a, 0xdb9a, 0xdb9a, 0xdb9a, 0xdb9a, 0xdb9a, - 0xdb68, 0xdb68, 0xdb68, 0xdb68, 0xdb68, 0xdb68, 0xdb68, 0xdb68, - 0xdb71, 0xdb71, 0xdb71, 0xdb71, 0xdb71, 0x003f, 0xdb71, 0xdb71, - 0xdb51, 0xdb51, 0xdb51, 0xdb51, 0xdb51, 0x003f, 0xdb79, 0x003f, - 0x003f, 0xd937, 0xdb77, 0xdb77, 0xdb77, 0x003f, 0xdb77, 0xdb77, - 0xdb55, 0xdb55, 0xdb57, 0xdb57, 0xdb57, 0x003f, 0x003f, 0x003f, - 0xdb79, 0xdb79, 0xdb79, 0xdb79, 0x003f, 0x003f, 0xdb79, 0xdb79, - 0xdb59, 0xdb59, 0xdb59, 0xdb59, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdb96, 0xdb96, 0xdb96, 0xdb96, 0xdb93, 0xdb93, 0xdb96, 0xdb96, - 0xdb64, 0xdb64, 0xdb64, 0xdb64, 0xdb61, 0xd937, 0xd937, 0x0060, - 0x003f, 0x003f, 0xdb9a, 0xdb9a, 0xdb9a, 0x003f, 0xdb9a, 0xdb9a, - 0xdb5f, 0xdb5f, 0xdb68, 0xdb68, 0xdb68, 0xd9a5, 0x003f, 0x003f, - /* 0x2000 .. 0x20ff */ - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x002d, 0x002d, 0x003f, 0xd93a, 0xd93a, 0xd93a, 0x003f, 0x005f, - 0xd93e, 0xd93f, 0x002c, 0xd93e, 0xd940, 0xd941, 0x002c, 0x003f, - 0xd9d3, 0xd9d4, 0x003f, 0x003f, 0x002e, 0xd935, 0xd936, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, - 0xd9b6, 0x003f, 0xd957, 0xd958, 0x003f, 0xd93e, 0x003f, 0x003f, - 0x003f, 0xd944, 0xd945, 0xd968, 0x0021, 0x003f, 0xd93a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x002f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd9aa, 0x0069, 0x003f, 0x003f, 0xdd9b, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x002b, 0x002d, 0x003d, 0x0028, 0x0029, 0xdd9c, - 0x0030, 0xdd9d, 0xdd9e, 0xdd9f, 0xdda0, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x002b, 0x002d, 0x003d, 0x0028, 0x0029, 0x003f, - 0x0061, 0x0065, 0x006f, 0x0078, 0x003f, 0x0068, 0x006b, 0x006c, - 0x006d, 0x006e, 0x0070, 0x0073, 0x0074, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0063, 0x003f, 0x003f, 0x004c, 0x003f, 0x003f, 0x003f, - 0x003f, 0x005c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2100 .. 0x21ff */ - 0x003f, 0x003f, 0x0043, 0xd959, 0x003f, 0x003f, 0x003f, 0x0045, - 0x003f, 0xd9b5, 0x0067, 0x0048, 0x0048, 0x0048, 0x0068, 0xdd34, - 0x0049, 0x0049, 0x004c, 0xdc34, 0x003f, 0x004e, 0xd9e0, 0x003f, - 0x0050, 0x0050, 0x0051, 0x0052, 0x0052, 0x0052, 0x003f, 0x003f, - 0x003f, 0xd9e5, 0xd9e2, 0x003f, 0x005a, 0x003f, 0xdc69, 0x003f, - 0x005a, 0x003f, 0x004b, 0xd95a, 0x0042, 0x0043, 0x0065, 0x0065, - 0x0045, 0x0046, 0x003f, 0x004d, 0x006f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0069, 0x003f, 0x003f, 0xdb92, 0xdb73, 0xdb53, 0xdb60, - 0xd9b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x0044, 0x0064, 0x0065, - 0x0069, 0x006a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdcf7, 0xdcf8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdcfb, 0xdcfc, 0xdcfd, 0xdcfe, 0x003f, - 0xdb40, 0xdb41, 0xdb42, 0xdb43, 0xdb44, 0xdb45, 0xdb46, 0xdb47, - 0xdb48, 0xdb49, 0x003f, 0x003f, 0x004c, 0x0043, 0x0044, 0x004d, - 0xdb31, 0xdb32, 0xdb33, 0xdb34, 0xdb35, 0xdb36, 0xdb37, 0xdb38, - 0xdb39, 0xdb3a, 0x003f, 0x003f, 0x006c, 0x0063, 0x0064, 0x006d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd977, 0xd978, 0xd976, 0xd979, 0xd97a, 0xd9d5, 0xd9d8, 0xd9d6, - 0xd9d9, 0xd9d7, 0xd977, 0xd976, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd97a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a2, 0xd9a1, - 0x003f, 0x003f, 0xd9a1, 0x003f, 0xd9a2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2200 .. 0x22ff */ - 0xd9a3, 0x003f, 0xd963, 0xd9a4, 0xd9a4, 0xdcaa, 0x003f, 0xd964, - 0xd996, 0xd996, 0x003f, 0xd997, 0xd997, 0x003f, 0x003f, 0xd9b3, - 0x003f, 0xd9b2, 0x002d, 0xd94e, 0x003f, 0x002f, 0x003f, 0x002a, - 0xd9aa, 0x003f, 0xd97e, 0x003f, 0x003f, 0xd992, 0xd954, 0x004c, - 0xd960, 0x003f, 0x003f, 0x007c, 0x007c, 0xd93b, 0xd93b, 0xd99e, - 0xd99f, 0xd99d, 0xd99c, 0xd994, 0xd995, 0x003f, 0xd9b1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd955, 0xd993, 0x003a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd93d, 0xd991, 0x003f, 0x003f, - 0x003f, 0xd93d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x007e, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd966, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd951, 0xd965, 0xd965, 0xd965, 0xd952, 0xd953, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd97c, 0xd97d, 0x003f, 0x003f, 0x003c, 0x003e, - 0xd952, 0xd953, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd99a, 0xd99b, 0xd99a, 0xd99b, 0xd998, 0xd999, - 0xd998, 0xd999, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd9c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd961, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd934, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2300 .. 0x23ff */ - 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd962, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd944, 0xd945, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2400 .. 0x24ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdce7, 0xdce8, 0xdce9, 0xdcea, 0xdceb, 0xdcec, 0xdced, 0xdcee, - 0xdcef, 0xdcf0, 0xdcf1, 0xdcf2, 0xdcf3, 0xdcf4, 0xdcf5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdd77, 0xdd78, 0xdd79, 0xdd7a, - 0xdd7b, 0xdd7c, 0xdd7d, 0xdd7e, 0xdd91, 0xdd92, 0xdd93, 0xdd94, - 0xdd95, 0xdd96, 0xdd97, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdd5d, 0xdd5e, 0xdd5f, 0xdd60, - 0xdd61, 0xdd62, 0xdd63, 0xdd64, 0xdd65, 0xdd66, 0xdd67, 0xdd68, - 0xdd69, 0xdd6a, 0xdd6b, 0xdd6c, 0xdd6d, 0xdd6e, 0xdd6f, 0xdd70, - 0xdd71, 0xdd72, 0xdd73, 0xdd74, 0xdd75, 0xdd76, 0x0041, 0x0042, - 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, - 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, - 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, - 0xdccd, 0xdcce, 0xdccf, 0xdcd0, 0xdcd1, 0xdcd2, 0xdcd3, 0xdcd4, - 0xdcd5, 0xdcd6, 0xdcd7, 0xdcd8, 0xdcd9, 0xdcda, 0xdcdb, 0xdcdc, - 0xdcdd, 0xdcde, 0xdcdf, 0xdce0, 0xdce1, 0xdce2, 0xdce3, 0xdce4, - 0xdce5, 0xdce6, 0x0030, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2500 .. 0x25ff */ - 0xdba1, 0xdbac, 0xdba2, 0xdbad, 0x002d, 0x002d, 0x007c, 0x007c, - 0x002d, 0x002d, 0x007c, 0x007c, 0xdba3, 0xdbc8, 0xdbc7, 0xdbae, - 0xdba4, 0xdbc2, 0xdbc1, 0xdbaf, 0xdba6, 0xdbc6, 0xdbc5, 0xdbb1, - 0xdba5, 0xdbc4, 0xdbc3, 0xdbb0, 0xdba7, 0xdbbc, 0xdbc9, 0xdbca, - 0xdbb7, 0xdbcb, 0xdbcc, 0xdbb2, 0xdba9, 0xdbbe, 0xdbcd, 0xdbce, - 0xdbb9, 0xdbcf, 0xdbd0, 0xdbb4, 0xdba8, 0xdbd1, 0xdbd2, 0xdbb8, - 0xdbbd, 0xdbd3, 0xdbd4, 0xdbb3, 0xdbaa, 0xdbd5, 0xdbd6, 0xdbba, - 0xdbbf, 0xdbd7, 0xdbd8, 0xdbb5, 0xdbab, 0xdbd9, 0xdbda, 0xdbbb, - 0xdbdb, 0xdbdc, 0xdbc0, 0xdbdd, 0xdbde, 0xdbdf, 0xdbe0, 0xdbe1, - 0xdbe2, 0xdbe3, 0xdbe4, 0xdbb6, 0x002d, 0x002d, 0x007c, 0x007c, - 0x003d, 0x007c, 0x002b, 0x002b, 0x002b, 0x003f, 0x003f, 0x003f, - 0x004c, 0x004c, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, - 0x002b, 0x002b, 0x002b, 0x002b, 0x0054, 0x0054, 0x0054, 0x002b, - 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x003f, 0x003f, 0x003f, - 0x003f, 0x002f, 0x003f, 0x0058, 0x002d, 0x007c, 0x002d, 0x007c, - 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd9c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd971, 0xd970, 0x003f, 0xd9c3, 0xd9c7, 0xd9c8, 0xd9cb, 0xd9ca, - 0xd9c9, 0xd9cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd973, 0xd972, 0x003f, 0x003f, 0xd9ba, 0xd9b9, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd975, 0xd974, 0x003f, 0x003f, - 0xd9b8, 0xd9b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xd96f, 0xd96e, - 0xd9c2, 0x003f, 0x003f, 0xd96b, 0x003f, 0x003f, 0xd96d, 0xd96c, - 0xd9c4, 0xd9c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd96b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2600 .. 0x26ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd96a, 0xd969, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9cf, 0xd9ce, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d0, 0x003f, 0xd9d1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd95f, 0x003f, 0xd95e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd9bc, 0xd9bd, 0x003f, 0xd9c0, 0xd9bb, 0xd9be, 0x003f, 0xd9bf, - 0xd9cd, 0xd9db, 0xd9dc, 0x003f, 0xd9dd, 0xd9da, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2c00 .. 0x2cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x006a, 0x0056, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2e00 .. 0x2eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7bd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2f00 .. 0x2fff */ - 0xf179, 0x003f, 0x003f, 0x003f, 0xf0e0, 0x003f, 0xf133, 0x003f, - 0xf161, 0x003f, 0xf19f, 0xf732, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe4ef, 0xe5f4, 0x003f, 0xe9e2, 0x003f, 0x003f, 0xed38, - 0xe964, 0x003f, 0x003f, 0x003f, 0xefd1, 0xe2a2, 0x003f, 0xf6cf, - 0xea5d, 0x003f, 0x003f, 0xeb3a, 0xe4de, 0xe443, 0xf1ad, 0x003f, - 0xf5bb, 0xebb3, 0x003f, 0xecb9, 0x003f, 0xeaa3, 0x003f, 0xe1ef, - 0xe39b, 0xe0ee, 0xe05e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2e1, 0x003f, 0x003f, 0x003f, 0xecfd, 0xe1fc, 0xf8c2, 0xec32, - 0xf438, 0x003f, 0xe7fe, 0xe570, 0xe355, 0xe8b0, 0xe7e9, 0xf17d, - 0xef68, 0xf055, 0xe7ca, 0xf9e2, 0xf43d, 0x003f, 0x003f, 0xe7ec, - 0xe9ef, 0xe7be, 0xed3b, 0x003f, 0xec39, 0xf8fd, 0xf360, 0xe9ab, - 0xf9a1, 0x003f, 0xf748, 0xed43, 0xefda, 0xe143, 0xf86c, 0xef3c, - 0xe1fe, 0xef4f, 0xe098, 0xeae6, 0xefc4, 0xf2a3, 0xf7b5, 0x003f, - 0x003f, 0xe8dc, 0xf7ab, 0xe7a9, 0xe7cd, 0xe7c3, 0xecc5, 0xeb44, - 0xecc6, 0x003f, 0xf932, 0xf87b, 0xe731, 0xf3d3, 0xe847, 0x003f, - 0xe9ae, 0x003f, 0xedcf, 0xefe2, 0xe665, 0xf14b, 0x003f, 0xf14c, - 0xf0d3, 0xf0bf, 0xeced, 0xf1bb, 0xf448, 0xe2bf, 0xeb6f, 0xf54f, - 0xf3c7, 0xe06d, 0xeae4, 0xf5ac, 0x003f, 0x003f, 0xf87c, 0xf84c, - 0xf0fd, 0x003f, 0xe148, 0xe057, 0xedeb, 0xe1db, 0xe577, 0xecce, - 0x003f, 0xf73f, 0xf275, 0xf3cb, 0xf37b, 0xecf3, 0xf4b3, 0xecf4, - 0xf473, 0x003f, 0xf0e9, 0xf0b7, 0x003f, 0xe6ec, 0xe3d1, 0xf1fe, - 0xe836, 0xe9bd, 0x003f, 0x003f, 0xefeb, 0xf57c, 0xea3a, 0xe79e, - 0xf864, 0xf06f, 0x003f, 0xf0e5, 0xf87d, 0xf7a6, 0xea3b, 0xecdd, - 0xec5f, 0xf855, 0xe739, 0xe1e9, 0xe1d4, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe331, 0xede0, 0xf378, 0xe66d, 0xe673, 0xe77a, 0xe73b, - 0xf96c, 0xeb38, 0xf9d9, 0x003f, 0x003f, 0xf333, 0xe1d5, 0xeb39, - 0xea3c, 0xf34a, 0xf65d, 0xe6a3, 0xe2cf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3000 .. 0x30ff */ - 0xd931, 0xd932, 0xd933, 0xd938, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd944, 0xd945, 0xd946, 0xd947, 0xd948, 0xd949, 0xd94a, 0xd94b, - 0xd94c, 0xd94d, 0x003f, 0xd97b, 0xd942, 0xd943, 0x003f, 0x003f, - 0x003f, 0x003f, 0x005b, 0x005d, 0x003f, 0xd940, 0xd941, 0x002c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xed38, 0xf1a0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdda1, 0xdda2, 0xdda3, 0xdda4, 0xdda5, 0xdda6, 0xdda7, - 0xdda8, 0xdda9, 0xddaa, 0xddab, 0xddac, 0xddad, 0xddae, 0xddaf, - 0xddb0, 0xddb1, 0xddb2, 0xddb3, 0xddb4, 0xddb5, 0xddb6, 0xddb7, - 0xddb8, 0xddb9, 0xddba, 0xddbb, 0xddbc, 0xddbd, 0xddbe, 0xddbf, - 0xddc0, 0xddc1, 0xddc2, 0xddc3, 0xddc4, 0xddc5, 0xddc6, 0xddc7, - 0xddc8, 0xddc9, 0xddca, 0xddcb, 0xddcc, 0xddcd, 0xddce, 0xddcf, - 0xddd0, 0xddd1, 0xddd2, 0xddd3, 0xddd4, 0xddd5, 0xddd6, 0xddd7, - 0xddd8, 0xddd9, 0xddda, 0xdddb, 0xdddc, 0xdddd, 0xddde, 0xdddf, - 0xdde0, 0xdde1, 0xdde2, 0xdde3, 0xdde4, 0xdde5, 0xdde6, 0xdde7, - 0xdde8, 0xdde9, 0xddea, 0xddeb, 0xddec, 0xdded, 0xddee, 0xddef, - 0xddf0, 0xddf1, 0xddf2, 0xddf3, 0xdda6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xde31, 0xde32, 0xde33, 0xde34, 0xde35, 0xde36, 0xde37, - 0xde38, 0xde39, 0xde3a, 0xde3b, 0xde3c, 0xde3d, 0xde3e, 0xde3f, - 0xde40, 0xde41, 0xde42, 0xde43, 0xde44, 0xde45, 0xde46, 0xde47, - 0xde48, 0xde49, 0xde4a, 0xde4b, 0xde4c, 0xde4d, 0xde4e, 0xde4f, - 0xde50, 0xde51, 0xde52, 0xde53, 0xde54, 0xde55, 0xde56, 0xde57, - 0xde58, 0xde59, 0xde5a, 0xde5b, 0xde5c, 0xde5d, 0xde5e, 0xde5f, - 0xde60, 0xde61, 0xde62, 0xde63, 0xde64, 0xde65, 0xde66, 0xde67, - 0xde68, 0xde69, 0xde6a, 0xde6b, 0xde6c, 0xde6d, 0xde6e, 0xde6f, - 0xde70, 0xde71, 0xde72, 0xde73, 0xde74, 0xde75, 0xde76, 0xde77, - 0xde78, 0xde79, 0xde7a, 0xde7b, 0xde7c, 0xde7d, 0xde7e, 0xde91, - 0xde92, 0xde93, 0xde94, 0xde95, 0xde96, 0xde97, 0xde98, 0xde91, - 0xde92, 0xde93, 0xde94, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3100 .. 0x31ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8841, 0x8c41, 0x8444, 0x9041, 0x8446, 0x8447, 0x9441, - 0x9841, 0x9c41, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, - 0x8450, 0xa041, 0xa441, 0xa841, 0x8454, 0xac41, 0xb041, 0xb441, - 0xb841, 0xbc41, 0xc041, 0xc441, 0xc841, 0xcc41, 0xd041, 0x8461, - 0x8481, 0x84a1, 0x84c1, 0x84e1, 0x8541, 0x8561, 0x8581, 0x85a1, - 0x85c1, 0x85e1, 0x8641, 0x8661, 0x8681, 0x86a1, 0x86c1, 0x86e1, - 0x8741, 0x8761, 0x8781, 0x87a1, 0xdad4, 0xdad5, 0xdad6, 0xdad7, - 0xdad8, 0xdad9, 0xdada, 0xdadb, 0xdadc, 0xdadd, 0xdade, 0xdadf, - 0xdae0, 0xdae1, 0xdae2, 0xdae3, 0xdae4, 0xdae5, 0xdae6, 0xdae7, - 0xdae8, 0xdae9, 0xdaea, 0xdaeb, 0xdaec, 0xdaed, 0xdaee, 0xdaef, - 0xdaf0, 0xdaf1, 0xdaf2, 0xdaf3, 0xdaf4, 0xdaf5, 0xdaf6, 0xdaf7, - 0xdaf8, 0xdaf9, 0xdafa, 0xdafb, 0xdafc, 0xdafd, 0xdafe, 0x003f, - 0x003f, 0x003f, 0xf179, 0xf133, 0xeab2, 0xea5c, 0xeabe, 0xf3e9, - 0xf7bb, 0xe0a3, 0xf0e0, 0xe940, 0xf2cb, 0xf548, 0xf432, 0xf161, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3200 .. 0x32ff */ - 0xdd41, 0xdd42, 0xdd43, 0xdd44, 0xdd45, 0xdd46, 0xdd47, 0xdd48, - 0xdd49, 0xdd4a, 0xdd4b, 0xdd4c, 0xdd4d, 0xdd4e, 0xdd4f, 0xdd50, - 0xdd51, 0xdd52, 0xdd53, 0xdd54, 0xdd55, 0xdd56, 0xdd57, 0xdd58, - 0xdd59, 0xdd5a, 0xdd5b, 0xdd5c, 0xd9df, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe7fd, 0xf07a, 0xe7fe, 0xf244, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdcb1, 0xdcb2, 0xdcb3, 0xdcb4, 0xdcb5, 0xdcb6, 0xdcb7, 0xdcb8, - 0xdcb9, 0xdcba, 0xdcbb, 0xdcbc, 0xdcbd, 0xdcbe, 0xdcbf, 0xdcc0, - 0xdcc1, 0xdcc2, 0xdcc3, 0xdcc4, 0xdcc5, 0xdcc6, 0xdcc7, 0xdcc8, - 0xdcc9, 0xdcca, 0xdccb, 0xdccc, 0x003f, 0x003f, 0x003f, 0xd9de, - 0xf179, 0xf133, 0xeab2, 0xea5c, 0xeee9, 0xe6bf, 0xf662, 0xf732, - 0xe29c, 0xed38, 0xf055, 0xf8fd, 0xec39, 0xe7ca, 0xe3d1, 0xf6cf, - 0xf17d, 0xf3bb, 0xf095, 0xea74, 0xe7a3, 0xf6e5, 0xf23f, 0xf5e6, - 0x003f, 0xe9fa, 0xe3fb, 0xe443, 0xf27a, 0xefd0, 0xf164, 0xf3bc, - 0xf833, 0xf9cc, 0x003f, 0xf2e1, 0xeabe, 0xf3e9, 0xf7bb, 0xf3a7, - 0xefd3, 0x003f, 0xf395, 0x003f, 0xe09a, 0xe37a, 0xf1c0, 0xf892, - 0xeda8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xde32, 0xde34, 0xde36, 0xde38, 0xde3a, 0xde3b, 0xde3d, 0xde3f, - 0xde41, 0xde43, 0xde45, 0xde47, 0xde49, 0xde4b, 0xde4d, 0xde4f, - 0xde51, 0xde54, 0xde56, 0xde58, 0xde5a, 0xde5b, 0xde5c, 0xde5d, - 0xde5e, 0xde5f, 0xde62, 0xde65, 0xde68, 0xde6b, 0xde6e, 0xde6f, - 0xde70, 0xde71, 0xde72, 0xde74, 0xde76, 0xde78, 0xde79, 0xde7a, - 0xde7b, 0xde7c, 0xde7d, 0xde91, 0xde92, 0xde93, 0xde94, 0x003f, - /* 0x3300 .. 0x33ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdc59, 0xdc5a, 0xdc5b, 0xdc5c, 0xdc5d, 0x003f, 0x003f, 0x003f, - 0xdc4a, 0xdc4b, 0xdc6c, 0xdc6d, 0xdc6e, 0xdc46, 0xdc47, 0xdc48, - 0xdc64, 0xdc65, 0xdc66, 0xdc67, 0xdc68, 0xdc31, 0xdc32, 0xdc33, - 0xdc35, 0xdc3b, 0xdc3c, 0xdc3d, 0xdc3e, 0xdc3f, 0xdc40, 0xdc41, - 0xdc42, 0xdc43, 0xdc44, 0xdc37, 0xdc38, 0xdc39, 0xdc3a, 0xdc4d, - 0xdc4e, 0xdc75, 0xdc76, 0xdc77, 0xdc78, 0xdc71, 0xdc72, 0xdc73, - 0xdc4f, 0xdc50, 0xdc51, 0xdc52, 0xdc53, 0xdc54, 0xdc55, 0xdc56, - 0xdc57, 0xdc58, 0xdc5e, 0xdc5f, 0xdc60, 0xdc61, 0xdc62, 0xdc63, - 0xdc6a, 0xdc6b, 0xd9e3, 0xdc7c, 0xdc36, 0xdc70, 0xdc91, 0xd9e1, - 0xdc4c, 0xdc7d, 0xdc45, 0x003f, 0x003f, 0x003f, 0x003f, 0xdc49, - 0xdc7a, 0x003f, 0x003f, 0xdc7b, 0x003f, 0x003f, 0xdc6f, 0x003f, - 0xd9e4, 0x003f, 0x003f, 0xdc74, 0xdc7e, 0xdc79, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x4e00 .. 0x4eff */ - 0xf179, 0xf2cb, 0x003f, 0xf662, 0x003f, 0x003f, 0x003f, 0xe742, - 0xf1db, 0xeab2, 0xeabe, 0xf7bb, 0x003f, 0xe996, 0x003f, 0x003f, - 0x003f, 0xf5e4, 0x003f, 0x003f, 0xf4a6, 0xe9e0, 0xeba6, 0x003f, - 0xe29a, 0xe940, 0x003f, 0x003f, 0x003f, 0x003f, 0xecaa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3e9, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf93f, 0xe4a1, 0x003f, 0xf3ab, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeed1, 0xe43c, 0x003f, 0xe29b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf3fd, 0x003f, 0xea4f, 0xf8ba, 0xf7b9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe262, 0x003f, - 0xecab, 0xf0e0, 0x003f, 0x003f, 0x003f, 0xe29c, 0xe0f7, 0xeda5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe071, 0x003f, 0xe55c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf071, 0x003f, 0x003f, 0xe973, 0xeaad, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0eb, 0x003f, - 0x003f, 0x003f, 0xe5af, 0x003f, 0x003f, 0x003f, 0xe697, 0x003f, - 0xedf8, 0x003f, 0x003f, 0xea50, 0xf133, 0x003f, 0xefcd, 0x003f, - 0xf037, 0xeff6, 0xf8bb, 0x003f, 0xeee9, 0xf2cc, 0x003f, 0x003f, - 0xe376, 0x003f, 0x003f, 0xea51, 0x003f, 0x003f, 0xed3c, 0x003f, - 0x003f, 0xe75c, 0xf7f1, 0x003f, 0xe26f, 0xf834, 0xee42, 0x003f, - 0xf89d, 0x003f, 0x003f, 0xf84d, 0xe158, 0xf2cd, 0xe5d5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a2, 0x003f, - 0x003f, 0x003f, 0xf161, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xed37, 0xf162, 0x003f, 0x003f, 0xf641, 0x003f, 0x003f, 0xe29d, - 0x003f, 0x003f, 0xe361, 0xe0bf, 0x003f, 0xf1a4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf1a8, 0xea52, 0xf672, 0xf1dc, - 0xe997, 0xeb49, 0x003f, 0x003f, 0x003f, 0xe55e, 0x003f, 0xf545, - 0x003f, 0x003f, 0x003f, 0xe4db, 0xe645, 0xf134, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xed76, 0x003f, 0xf3ea, 0x003f, 0x003f, 0x003f, 0xe0ec, 0xe0c0, - 0x003f, 0x003f, 0x003f, 0xf194, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x4f00 .. 0x4fff */ - 0x003f, 0xe37a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf7f2, 0xf135, 0xe36f, 0x003f, 0xeeea, 0xe37b, 0xe961, - 0xe8e9, 0xf9cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8d7, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe871, 0x003f, 0xe646, 0x003f, - 0xecdf, 0x003f, 0xea53, 0x003f, 0xea54, 0xe031, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf27c, 0x003f, 0x003f, 0xe4a3, 0xf247, - 0xf75f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf058, 0xf248, 0xf3ac, - 0xf3a5, 0xefce, 0x003f, 0x003f, 0x003f, 0xf7bc, 0x003f, 0x003f, - 0x003f, 0xedf9, 0xf17a, 0xe9d6, 0xf1c2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf735, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedba, - 0xe8d8, 0x003f, 0x003f, 0xe032, 0x003f, 0x003f, 0xe3cd, 0x003f, - 0x003f, 0x003f, 0xf27d, 0x003f, 0x003f, 0x003f, 0xf17b, 0xea55, - 0x003f, 0xece0, 0x003f, 0xe059, 0xf479, 0x003f, 0xe5ce, 0x003f, - 0xf646, 0x003f, 0xe252, 0xe657, 0x003f, 0xecb4, 0x003f, 0xf3ad, - 0x003f, 0xf072, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6c2, 0x003f, - 0xf4a7, 0x003f, 0x003f, 0xe1ea, 0x003f, 0xf0ee, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b2, 0xf9a5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf665, 0xe5e2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf745, - 0x003f, 0x003f, 0xe197, 0xf5b5, 0xed3d, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeeeb, 0xf3d5, 0x003f, 0x003f, 0x003f, 0xf34b, 0x003f, - 0x003f, 0xefb5, 0x003f, 0xe159, 0xf865, 0x003f, 0x003f, 0xebd4, - 0x003f, 0x003f, 0xe6d6, 0x003f, 0x003f, 0xe951, 0x003f, 0xea56, - 0xf891, 0xece1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf3, 0xe998, - 0x003f, 0xe29e, 0x003f, 0xe8c4, 0x003f, 0xf793, 0x003f, 0x003f, - 0xe974, 0x003f, 0xedef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5000 .. 0x50ff */ - 0x003f, 0x003f, 0xe941, 0x003f, 0x003f, 0x003f, 0xe5d6, 0x003f, - 0x003f, 0xf4da, 0x003f, 0xe0c1, 0x003f, 0xe8c3, 0x003f, 0x003f, - 0x003f, 0xe7fa, 0xe4ee, 0x003f, 0x003f, 0x003f, 0xf848, 0x003f, - 0x003f, 0xf9a6, 0xf0ef, 0x003f, 0xf536, 0x003f, 0xe15a, 0xf4a8, - 0x003f, 0xf4db, 0x003f, 0xe8a7, 0xf647, 0x003f, 0xe2e6, 0xf394, - 0xe0da, 0x003f, 0xeed2, 0xe6c3, 0xf692, 0xef6e, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeda6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xede7, 0x003f, 0x003f, 0x003f, 0xe033, - 0xe137, 0xf059, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf746, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf835, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3ae, 0x003f, 0xf2ce, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ed, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf640, 0xf2cf, 0xefcf, 0x003f, - 0xf6de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe263, 0x003f, 0x003f, 0x003f, 0x003f, 0xe999, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a8, 0x003f, 0x003f, - 0x003f, 0xe0f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeaa1, 0xe9e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf5ca, 0xefb6, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeeec, 0xf27e, 0x003f, 0xf4f0, 0x003f, 0xeabf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe15b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe351, 0x003f, 0x003f, - 0x003f, 0xf562, 0xeb4a, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac0, - 0x003f, 0xe270, 0x003f, 0x003f, 0x003f, 0xe962, 0xf9ea, 0x003f, - 0x003f, 0x003f, 0xe698, 0x003f, 0x003f, 0x003f, 0xf05a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef79, 0x003f, 0xecac, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4d0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe034, 0x003f, 0xe8f8, 0x003f, 0x003f, 0x003f, 0xea57, - /* 0x5100 .. 0x51ff */ - 0xf0f0, 0xf3d6, 0x003f, 0x003f, 0xede2, 0x003f, 0xe15c, 0x003f, - 0x003f, 0xe0fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf073, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac1, - 0x003f, 0xe67d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xefd0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf249, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5e3, - 0x003f, 0x003f, 0xe3d3, 0x003f, 0xedf0, 0x003f, 0x003f, 0x003f, - 0xef44, 0xf0c3, 0x003f, 0xf03a, 0xf89e, 0xf5f6, 0xf34c, 0xf9d4, - 0xeb4b, 0xe253, 0x003f, 0xe34a, 0xf6ba, 0xe795, 0xf6cd, 0x003f, - 0x003f, 0x003f, 0xed3e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe56f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe377, 0x003f, 0x003f, 0xf19f, 0x003f, 0xe43e, - 0xf291, 0xe5d7, 0xf074, 0xf732, 0xe1eb, 0xe6bf, 0xf8b1, 0x003f, - 0x003f, 0xe1ec, 0x003f, 0x003f, 0x003f, 0xe942, 0xe37c, 0xe29f, - 0xf292, 0x003f, 0x003f, 0x003f, 0xe152, 0x003f, 0x003f, 0x003f, - 0xe37d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedf7, 0x003f, - 0x003f, 0x003f, 0xf4fc, 0x003f, 0x003f, 0xf232, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7b3, 0x003f, 0x003f, 0xe796, 0x003f, 0xefb7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe23e, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe793, 0x003f, 0xe55f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeda7, 0xe5d2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe639, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf532, 0x003f, 0xf3d7, 0x003f, - 0x003f, 0xe5d8, 0x003f, 0xf34d, 0xe6d0, 0xe560, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6cf, 0xf0ea, 0xf9eb, 0x003f, - 0x003f, 0xe8ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf955, 0xe0c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9d5, 0x003f, - 0xf558, 0xef7a, 0xf5f3, 0x003f, 0x003f, 0xf7de, 0x003f, 0x003f, - /* 0x5200 .. 0x52ff */ - 0xe4ef, 0x003f, 0x003f, 0xf163, 0x003f, 0x003f, 0xe9c2, 0xf2b7, - 0xeed4, 0x003f, 0xe05a, 0x003f, 0x003f, 0x003f, 0xe7fb, 0x003f, - 0x003f, 0xf89f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe63a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf59a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf6f7, 0xe93c, 0x003f, 0x003f, - 0x003f, 0xe6d7, 0xeaa2, 0x003f, 0x003f, 0x003f, 0xe24e, 0x003f, - 0xe4f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf334, 0xebec, - 0xe2e7, 0xf4cb, 0xf1a9, 0xe04e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf591, 0x003f, 0x003f, 0x003f, 0xf65e, - 0x003f, 0x003f, 0xea9d, 0xe34b, 0xe5b7, 0xf293, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf538, 0x003f, 0xe99a, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0a7, 0x003f, 0xe85e, 0x003f, 0x003f, - 0x003f, 0xeb76, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf1a5, 0xf294, 0x003f, 0x003f, 0x003f, 0x003f, 0xe99b, - 0x003f, 0x003f, 0xf7dc, 0x003f, 0x003f, 0xf4dc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf794, 0x003f, 0xf59b, - 0x003f, 0x003f, 0x003f, 0xf993, 0x003f, 0x003f, 0x003f, 0xe34c, - 0xe8f9, 0xe6b1, 0x003f, 0x003f, 0x003f, 0xe0fc, 0x003f, 0x003f, - 0x003f, 0xf335, 0xe0fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5f4, 0x003f, 0x003f, 0x003f, 0xe1ed, - 0xe035, 0x003f, 0x003f, 0xe63b, 0xe352, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf34e, 0xe44d, 0xe134, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf846, 0x003f, - 0x003f, 0xe15d, 0x003f, 0xe89c, 0x003f, 0xf65f, 0x003f, 0xefb8, - 0x003f, 0xe797, 0x003f, 0x003f, 0x003f, 0xe15e, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6cd, 0x003f, 0x003f, 0xe561, 0xefed, 0x003f, - 0xe07b, 0xe7e2, 0x003f, 0xf9b2, 0x003f, 0xecad, 0xe65c, 0xe7b4, - 0x003f, 0x003f, 0xeba7, 0xf263, 0xe353, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9b3, 0x003f, 0xe5e4, 0x003f, 0x003f, - 0xe2e8, 0x003f, 0xf1c3, 0xe342, 0x003f, 0x003f, 0xe2a0, 0xe838, - /* 0x5300 .. 0x53ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf760, 0x003f, 0x003f, - 0xf9d6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf761, 0x003f, 0xf762, - 0xe963, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e2, 0xf8f9, 0xe9c1, - 0x003f, 0xecb5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1dd, 0xe254, 0x003f, 0xe0a1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9e3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf96d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf7af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe49d, - 0xe2a1, 0xed38, 0x003f, 0xf546, 0xf1a0, 0x003f, 0x003f, 0xecae, - 0xeeed, 0xf9c1, 0xe872, 0x003f, 0x003f, 0xe743, 0x003f, 0x003f, - 0x003f, 0xe9e4, 0xf391, 0xf693, 0xf892, 0x003f, 0x003f, 0xe3f5, - 0x003f, 0x003f, 0xe85f, 0x003f, 0xe964, 0x003f, 0xe936, 0x003f, - 0xf2bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe25f, 0x003f, - 0xeb69, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d6, - 0xf164, 0xf05b, 0x003f, 0x003f, 0xe04f, 0xe5b0, 0x003f, 0xe2e9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ed, 0x003f, 0xe15f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xed9a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xed7d, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6d8, 0x003f, 0xf9a7, 0x003f, 0x003f, 0x003f, 0x003f, 0xf03b, - 0xf642, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f0, 0xf7bd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee96, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0db, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf4d1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefd1, 0xf4a9, 0xe370, 0xefd2, 0x003f, 0xe873, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xec62, 0x003f, 0xf632, 0xebf4, - 0x003f, 0x003f, 0x003f, 0xe874, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeed5, 0xf5bf, 0xe2a2, 0xe1af, 0xe2a3, 0x003f, 0x003f, - 0x003f, 0xe1b0, 0xf3fe, 0xe333, 0xebaf, 0xf733, 0x003f, 0xe036, - 0xf6bb, 0xf47a, 0xea58, 0xefd3, 0x003f, 0x003f, 0x003f, 0x003f, - 0xea59, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5400 .. 0x54ff */ - 0x003f, 0x003f, 0x003f, 0xf9de, 0xe050, 0x003f, 0x003f, 0x003f, - 0xf7ea, 0xe3ce, 0xf264, 0x003f, 0xe562, 0xe7a3, 0xf9a8, 0xe6d9, - 0xf6ce, 0xf84e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2d6, 0x003f, 0xe6f0, 0x003f, 0xf0e1, - 0xf755, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe99c, 0x003f, - 0x003f, 0xe9c3, 0x003f, 0xf7df, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeeef, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf9e5, 0xf633, 0x003f, 0xe7fc, 0xf9a9, 0x003f, 0xeeee, 0x003f, - 0x003f, 0x003f, 0xe5e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2d0, 0x003f, 0xe1b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf6a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf3b2, 0x003f, 0xf3b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe1b2, 0x003f, 0xe83b, 0x003f, 0xe037, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xece2, 0xf8bc, 0xe7a4, 0x003f, 0x003f, - 0xf24a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf763, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf8fa, 0x003f, 0xe2a4, 0x003f, - 0xe99d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf673, 0x003f, 0x003f, 0x003f, - 0xf1aa, 0x003f, 0x003f, 0xf431, 0xe271, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf836, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf7e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xf166, 0x003f, 0x003f, - 0xed7e, 0xf7a1, 0x003f, 0x003f, 0xf8ef, 0x003f, 0x003f, 0x003f, - 0xf7eb, 0xf233, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf03c, 0x003f, 0x003f, 0x003f, 0xe038, 0x003f, 0x003f, - 0xf59c, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d6, 0xf998, 0x003f, - 0x003f, 0x003f, 0xf559, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf764, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5500 .. 0x55ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xf736, 0x003f, 0xea5a, 0xf456, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6da, 0x003f, - 0xe4d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe755, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf076, - 0x003f, 0xf4dd, 0x003f, 0x003f, 0x003f, 0xed6a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf674, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf694, 0x003f, 0xeac2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7fd, - 0x003f, 0x003f, 0x003f, 0xe198, 0x003f, 0x003f, 0xe4ba, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed3f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf7e1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf336, 0x003f, 0x003f, 0x003f, - 0xe0d3, 0x003f, 0x003f, 0x003f, 0xeb4c, 0x003f, 0xf55a, 0xe59c, - 0x003f, 0xf9aa, 0xf7e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf547, 0xf9c2, 0xf940, 0x003f, 0xf9ec, 0xe072, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9bd, - 0x003f, 0xf077, 0xeac3, 0xe3d2, 0xe272, 0x003f, 0xe4a4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9ab, 0x003f, 0xeae0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf457, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeef0, 0x003f, 0xe37e, 0x003f, 0x003f, 0xf4aa, - 0x003f, 0x003f, 0x003f, 0xea5b, 0xf648, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf5, 0xf3b3, 0x003f, - /* 0x5600 .. 0x56ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6a3, 0x003f, - 0x003f, 0xe039, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a5, 0x003f, 0x003f, 0xeac4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb0, - 0x003f, 0x003f, 0xf34f, 0x003f, 0xf634, 0x003f, 0xecb6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf856, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe391, 0x003f, 0x003f, 0xf9ed, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf999, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee4f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xea3d, 0x003f, 0xf84f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xedf1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf1c4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe435, 0x003f, 0x003f, 0xf9ee, 0x003f, 0x003f, - 0x003f, 0xf5b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xebf6, 0xea5c, 0x003f, 0x003f, 0xf96e, 0x003f, - 0xf167, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe647, 0xe1b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5700 .. 0x57ff */ - 0x003f, 0x003f, 0x003f, 0xf765, 0xedd8, 0x003f, 0x003f, 0x003f, - 0xe2ea, 0x003f, 0x003f, 0xe2d0, 0x003f, 0xf05c, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf03e, 0xf03d, 0x003f, 0x003f, 0xe4f1, 0x003f, - 0xe4a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6cf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf234, 0x003f, 0x003f, 0x003f, 0x003f, 0xe334, 0x003f, 0x003f, - 0xf432, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe392, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf433, 0x003f, 0xf6f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe343, - 0x003f, 0x003f, 0xe8a9, 0x003f, 0x003f, 0xe4bb, 0xe07c, 0x003f, - 0xf3a6, 0xe0d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf6e7, 0x003f, 0x003f, 0xe1de, 0x003f, 0xf6a4, 0x003f, - 0x003f, 0x003f, 0xf750, 0x003f, 0x003f, 0x003f, 0xe4dd, 0x003f, - 0xe160, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf695, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xebf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4dc, 0x003f, 0x003f, 0xf8a0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf837, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf0d9, 0x003f, 0xe2a7, 0xf03f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xed91, 0x003f, 0x003f, 0x003f, 0xefb9, - 0xf3d8, 0x003f, 0x003f, 0xe768, 0x003f, 0x003f, 0xeb94, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee44, - 0xe99e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf4f1, 0x003f, 0x003f, 0x003f, 0xecd0, 0x003f, 0x003f, 0xf49d, - 0x003f, 0xe8c6, 0xe393, 0x003f, 0xe394, 0x003f, 0x003f, 0x003f, - /* 0x5800 .. 0x58ff */ - 0xe2dc, 0x003f, 0xe4d1, 0x003f, 0x003f, 0xe141, 0xf6d8, 0x003f, - 0xe0a8, 0xf0bc, 0xed4e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf56c, 0x003f, - 0x003f, 0xe952, 0x003f, 0x003f, 0xf337, 0x003f, 0x003f, 0xee50, - 0x003f, 0x003f, 0xe07d, 0x003f, 0x003f, 0x003f, 0x003f, 0xef7b, - 0xede8, 0xe953, 0x003f, 0x003f, 0xf1de, 0xe4f2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe199, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe264, 0xeeab, 0x003f, 0x003f, 0x003f, 0xe0c3, - 0x003f, 0xebb1, 0x003f, 0x003f, 0xf6b2, 0x003f, 0x003f, 0xe4f3, - 0xe4d2, 0x003f, 0xf5c0, 0x003f, 0x003f, 0x003f, 0xeadd, 0x003f, - 0x003f, 0xf295, 0xeef1, 0x003f, 0xf9b4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf458, 0x003f, 0x003f, - 0x003f, 0xf4d2, 0x003f, 0x003f, 0xf296, 0x003f, 0xec63, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe161, 0x003f, 0xeaea, 0x003f, 0x003f, - 0x003f, 0xefba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe7d7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf5cd, 0x003f, 0xf3f2, 0xf857, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7f8, 0xe552, 0x003f, 0x003f, 0x003f, 0x003f, 0xf675, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe9c5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeef2, 0xf1df, 0x003f, 0x003f, 0xe05b, 0x003f, - 0x003f, 0xe8fa, 0x003f, 0x003f, 0x003f, 0xef45, 0x003f, 0xe4a6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9b5, 0x003f, - 0x003f, 0xf7c9, 0x003f, 0xed72, 0x003f, 0xf8bd, 0x003f, 0x003f, - 0xe6a4, 0xe255, 0x003f, 0x003f, 0x003f, 0x003f, 0xe265, 0xe676, - 0x003f, 0x003f, 0x003f, 0x003f, 0xedbd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xea5d, 0xf195, 0x003f, 0x003f, 0xf1e0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf17c, 0xf8be, 0xeaeb, 0x003f, 0xebf8, 0x003f, 0x003f, - /* 0x5900 .. 0x59ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7be, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe395, 0xeb3a, 0xef72, 0x003f, - 0x003f, 0xec64, 0xe49f, 0x003f, 0xeda8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7d3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4de, - 0x003f, 0xf548, 0xf6bc, 0xe99f, 0x003f, 0xef7c, 0xed77, 0x003f, - 0x003f, 0xecf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf138, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf893, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xedf2, 0x003f, 0x003f, 0xe396, - 0xe43f, 0xe975, 0x003f, 0x003f, 0x003f, 0x003f, 0xe335, 0xf3b4, - 0xf941, 0xe19a, 0x003f, 0x003f, 0xe9c6, 0xf861, 0x003f, 0xf6df, - 0x003f, 0x003f, 0xf838, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf297, 0x003f, 0xea5e, 0x003f, 0x003f, 0x003f, 0x003f, 0xeef3, - 0x003f, 0x003f, 0xf6ac, 0xf0c4, 0xf1e1, 0xeb3b, 0xe9c7, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe443, 0xe44f, 0x003f, 0x003f, 0x003f, - 0xe05c, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8bf, 0x003f, 0x003f, - 0x003f, 0x003f, 0xedfd, 0xe9e5, 0xe75d, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf196, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe397, 0x003f, 0x003f, 0xef7d, 0xe362, - 0x003f, 0xe7d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf676, 0x003f, 0x003f, - 0xe8aa, 0x003f, 0x003f, 0x003f, 0xf6e0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe769, 0x003f, 0xf533, 0x003f, 0x003f, 0xf56d, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf2d1, 0x003f, 0x003f, 0xe7b5, 0x003f, - 0x003f, 0xf1ab, 0x003f, 0xecb7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf24b, 0xe1b4, 0x003f, 0xeb95, 0xf05d, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf197, 0xef7e, 0x003f, 0xe0a9, 0xf3af, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe05d, 0x003f, - 0xf139, 0x003f, 0xf47b, 0x003f, 0xf9ef, 0x003f, 0xf7f3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xee51, 0x003f, 0x003f, 0xf168, 0x003f, 0x003f, 0x003f, 0xf1ac, - /* 0x5a00 .. 0x5aff */ - 0x003f, 0xf05e, 0x003f, 0xef6f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xea5f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe436, 0x003f, 0x003f, 0xeef4, 0xe3d6, 0x003f, 0x003f, 0xee52, - 0xece3, 0x003f, 0x003f, 0x003f, 0x003f, 0xed40, 0x003f, 0x003f, - 0x003f, 0xe744, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf635, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf4de, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6a5, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e8, 0x003f, - 0x003f, 0xef56, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9e6, 0x003f, 0x003f, 0x003f, 0xe9a0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe76a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe83c, 0xf040, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xecb8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe03a, 0xebf9, 0x003f, 0xf041, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf47c, 0x003f, 0x003f, 0xf87e, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf265, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7f4, 0x003f, - 0x003f, 0xe47c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5b00 .. 0x5bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8fb, 0x003f, 0x003f, - 0x003f, 0xf9f0, 0x003f, 0xeb4d, 0xe273, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf756, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xea3e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeac5, 0x003f, 0x003f, 0xedbe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1ad, 0xf87a, 0x003f, 0x003f, 0xe1ee, 0xf1a6, 0x003f, 0xf1ae, - 0xf37d, 0x003f, 0xe9a1, 0x003f, 0xf1af, 0xf99a, 0x003f, 0xe77b, - 0x003f, 0x003f, 0x003f, 0xe19b, 0xe1b5, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf839, 0x003f, 0xebdd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xec65, 0xf1cf, 0x003f, 0x003f, 0x003f, 0xe9a2, 0x003f, 0x003f, - 0xf7ca, 0x003f, 0xf078, 0x003f, 0xeded, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4eb, 0x003f, 0xefd4, - 0xebfa, 0xed5c, 0x003f, 0xebe4, 0xef57, 0x003f, 0x003f, 0xe26b, - 0x003f, 0x003f, 0x003f, 0xe965, 0x003f, 0xf6b5, 0xf995, 0xf395, - 0xe23f, 0xf3b5, 0xf2d2, 0xef58, 0xf0f1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe0d4, 0xeb4e, 0xecf8, 0xf079, 0xf942, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeb96, 0x003f, 0xe2e0, 0x003f, - 0xf235, 0x003f, 0x003f, 0xf83a, 0xee53, 0xebb2, 0xe03b, 0x003f, - 0xece4, 0xefbb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xec66, - 0xf4f2, 0x003f, 0xf266, 0xf042, 0xe398, 0xf169, 0xe85b, 0xe2a8, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a3, 0x003f, 0x003f, 0x003f, - 0xe76b, 0x003f, 0xf7ce, 0xefd5, 0xecd1, 0x003f, 0x003f, 0xe44c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe73c, 0xf4cc, - 0x003f, 0xe1fb, 0xf666, 0x003f, 0xeef5, 0xef91, 0xecf9, 0xe44b, - 0xf4f3, 0xecfb, 0x003f, 0xea60, 0xe240, 0x003f, 0xe699, 0xf3d9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5c1, 0xe954, 0x003f, - 0xf5bb, 0x003f, 0xea61, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5c00 .. 0x5cff */ - 0x003f, 0xe976, 0x003f, 0x003f, 0xea62, 0x003f, 0x003f, 0xf1e2, - 0xf298, 0xf05f, 0xf37e, 0xecfc, 0x003f, 0xe4df, 0xe4f4, 0xebb3, - 0x003f, 0xebb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xf563, 0x003f, - 0x003f, 0xeac6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xefd6, 0x003f, 0x003f, 0x003f, - 0xe8ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf636, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xecb9, 0xf0c5, 0xf539, 0xe1b6, 0xe49b, 0x003f, 0xe83d, 0xe473, - 0xe2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0dc, 0xe19c, 0x003f, - 0xe2dd, 0x003f, 0x003f, 0xef39, 0x003f, 0xecbb, 0xecba, 0x003f, - 0x003f, 0xeb6a, 0x003f, 0x003f, 0x003f, 0xf299, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe943, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4f5, 0x003f, 0xe6a6, 0x003f, 0xf645, 0xe6db, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xebd5, 0x003f, 0x003f, 0xe57a, - 0x003f, 0xeaa3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf9df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe399, 0xf1d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe0aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xed6b, 0x003f, 0xebfb, 0xe0a2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe4e0, 0x003f, 0xed4f, 0x003f, 0xf8c0, 0x003f, 0xe84e, - 0xed5d, 0x003f, 0xe649, 0x003f, 0x003f, 0x003f, 0xf2c0, 0x003f, - 0xebfc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf649, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeac7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xed41, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe977, - 0xe978, 0x003f, 0x003f, 0x003f, 0xf866, 0x003f, 0xe4f6, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf3da, 0x003f, 0xf894, 0x003f, 0x003f, - /* 0x5d00 .. 0x5dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xec9f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5cf, 0xe39a, 0x003f, - 0x003f, 0xe1df, 0x003f, 0x003f, 0xf5cb, 0x003f, 0xed92, 0xe0ab, - 0x003f, 0xe6c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeca0, - 0x003f, 0xe9da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe83e, 0xe07e, 0x003f, 0x003f, 0x003f, - 0xe5b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeca1, 0x003f, 0x003f, 0xef73, 0x003f, 0x003f, 0xf4ab, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a9, - 0x003f, 0x003f, 0x003f, 0xe4f7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe593, 0x003f, 0x003f, - 0xe274, 0x003f, 0xef94, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xedf5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeeae, 0x003f, 0xe64a, 0x003f, 0xeaec, 0xed50, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef74, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe745, 0x003f, 0x003f, 0x003f, 0xed6c, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf549, 0xf3b6, 0x003f, - 0x003f, 0xec6e, 0xebb5, 0x003f, 0x003f, 0xe1ef, 0xf3a7, 0xe275, - 0xe0dd, 0x003f, 0x003f, 0xe7e3, 0x003f, 0x003f, 0xf4ac, 0x003f, - 0x003f, 0xe39b, 0xf13b, 0xea63, 0xf6e9, 0x003f, 0x003f, 0xf7f5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebde, 0xe0ee, 0x003f, - /* 0x5e00 .. 0x5eff */ - 0x003f, 0x003f, 0xecbc, 0xf766, 0x003f, 0x003f, 0xe8ee, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf9f1, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf6b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf56e, 0x003f, - 0x003f, 0xf47d, 0x003f, 0xe8d9, 0x003f, 0xf338, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebfd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xea64, 0x003f, 0xeb3c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf1e3, 0x003f, 0x003f, 0xe4e1, 0x003f, - 0xeac8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b6, 0x003f, 0xf9ac, - 0xf2d3, 0x003f, 0x003f, 0x003f, 0xed51, 0xf77b, 0x003f, 0xe8ac, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf956, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe73d, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf64a, - 0x003f, 0xe8df, 0xe4d3, 0xf757, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe05e, 0xf751, 0xe444, 0x003f, 0x003f, 0xe944, - 0xf849, 0xe05f, 0x003f, 0xf943, 0xf07a, 0xf07b, 0xe39c, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e4, 0x003f, 0x003f, 0xe9e7, - 0x003f, 0x003f, 0xeac9, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaed, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf24c, 0x003f, 0xf2c1, - 0x003f, 0x003f, 0xe162, 0x003f, 0xe9a4, 0x003f, 0x003f, 0x003f, - 0xeaca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f8, 0xf3a8, - 0x003f, 0x003f, 0x003f, 0xe1b7, 0x003f, 0xf2d4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed6d, 0xeaee, 0xe0ac, - 0xefbc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf07c, 0x003f, - 0x003f, 0x003f, 0xeacb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf7bf, 0xe63f, 0xe5c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2aa, 0x003f, 0x003f, 0xe239, 0x003f, 0x003f, 0xe69a, 0x003f, - 0x003f, 0x003f, 0xf3b7, 0xf29a, 0x003f, 0x003f, 0x003f, 0xe7d9, - 0xf4df, 0x003f, 0xf758, 0xe256, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe5e6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf576, 0x003f, 0x003f, 0xee55, 0xf2d5, - 0x003f, 0x003f, 0xe0ef, 0xf96f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5f00 .. 0x5fff */ - 0x003f, 0xe937, 0x003f, 0x003f, 0xe677, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf759, 0x003f, 0x003f, 0x003f, 0x003f, 0xecd2, - 0x003f, 0xecbd, 0x003f, 0xe2e1, 0xf350, 0xf16a, 0x003f, 0xe9d7, - 0xf8f0, 0x003f, 0x003f, 0xf13c, 0x003f, 0x003f, 0x003f, 0xf339, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf867, 0xf8c1, - 0x003f, 0xe450, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xedb0, 0x003f, 0x003f, 0x003f, 0xf1e5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe0ad, 0x003f, 0xf7b0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf6a5, 0x003f, 0xe0ae, 0x003f, 0xe83f, 0x003f, 0xe746, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a7, 0xf8b2, - 0x003f, 0xf9c4, 0x003f, 0xf13d, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8a1, 0x003f, 0x003f, 0x003f, 0xede9, 0xefee, - 0x003f, 0xf4f4, 0xf795, 0xf351, 0xea3f, 0xf740, 0x003f, 0x003f, - 0xf4e0, 0xeeaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ad, - 0x003f, 0xee45, 0x003f, 0x003f, 0xf7a8, 0x003f, 0x003f, 0xe9d8, - 0xef69, 0xf2d6, 0x003f, 0x003f, 0x003f, 0xe4e2, 0x003f, 0xec6f, - 0x003f, 0x003f, 0xf970, 0xe6c8, 0xf9ad, 0x003f, 0x003f, 0x003f, - 0xeaef, 0xe163, 0xe4f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe592, - 0xe8c7, 0xea65, 0x003f, 0x003f, 0x003f, 0x003f, 0xf396, 0x003f, - 0xe5d0, 0xedd9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf957, 0xe966, 0xec70, 0x003f, 0x003f, 0x003f, 0xe840, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4a3, 0x003f, 0xe4ec, - 0x003f, 0xf55b, 0x003f, 0x003f, 0x003f, 0xf9c5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xecfd, 0x003f, 0xf7b1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe39d, 0xf16b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5bc, 0xf434, - 0xe75e, 0xe75f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf671, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe447, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8ec, 0x003f, 0xe9c8, - /* 0x6000 .. 0x60ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed78, - 0x003f, 0x003f, 0xe451, 0x003f, 0x003f, 0x003f, 0xf767, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe64b, 0xea66, 0x003f, 0x003f, - 0xf6bd, 0xf13e, 0x003f, 0x003f, 0x003f, 0xe371, 0x003f, 0xeb97, - 0xf043, 0x003f, 0xe266, 0x003f, 0x003f, 0x003f, 0x003f, 0xe135, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf198, 0xec71, 0xecbe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf958, 0x003f, 0x003f, - 0xe1f0, 0x003f, 0xf7f6, 0x003f, 0x003f, 0xeaf0, 0x003f, 0x003f, - 0x003f, 0xedbf, 0x003f, 0x003f, 0x003f, 0xe24f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf971, 0xf1b0, 0xf9d1, 0xf64b, 0x003f, 0x003f, - 0xf7cf, 0xf0da, 0xe051, 0x003f, 0xe448, 0xe1f1, 0x003f, 0xecd3, - 0xf9e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee7d, 0x003f, 0x003f, - 0x003f, 0xecfa, 0x003f, 0x003f, 0xf33a, 0xf7d0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf972, 0x003f, 0xf737, 0x003f, - 0x003f, 0x003f, 0xebe5, 0xf29b, 0x003f, 0x003f, 0x003f, 0xeef6, - 0xf07d, 0x003f, 0x003f, 0xf944, 0xf5c2, 0x003f, 0x003f, 0xe6dc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf397, 0x003f, 0xe9e8, 0xe4ed, 0xf5fc, 0x003f, 0xe84f, 0x003f, - 0xe19d, 0x003f, 0x003f, 0x003f, 0xe4fa, 0xf534, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2d7, 0x003f, 0xe553, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8ed, 0x003f, 0xeb3d, 0x003f, 0x003f, 0xf07e, - 0xf8b3, 0xed52, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf677, 0xe46d, 0x003f, 0xeacc, 0x003f, 0x003f, 0xf959, 0x003f, - 0x003f, 0xeda9, 0xeb98, 0xf643, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6100 .. 0x61ff */ - 0x003f, 0xebfe, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f0, 0x003f, - 0xf091, 0xf092, 0x003f, 0x003f, 0x003f, 0xe850, 0xf744, 0xf0f2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed53, 0x003f, 0x003f, - 0x003f, 0x003f, 0xefd7, 0xed93, 0x003f, 0x003f, 0x003f, 0xe091, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe267, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf95a, 0x003f, 0x003f, 0x003f, 0xf4e1, 0x003f, 0x003f, 0xe0c4, - 0x003f, 0x003f, 0x003f, 0x003f, 0xece5, 0x003f, 0xe0c5, 0xf044, - 0x003f, 0x003f, 0xefbd, 0x003f, 0xe6c9, 0x003f, 0x003f, 0xf0db, - 0xf1b1, 0x003f, 0xe153, 0xf6be, 0xf95b, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf796, 0x003f, 0xe7b7, 0x003f, 0x003f, - 0xf4d3, 0xf4d4, 0x003f, 0x003f, 0x003f, 0xf6e4, 0x003f, 0xf6d1, - 0x003f, 0x003f, 0xe747, 0xe241, 0xe052, 0x003f, 0x003f, 0xf8b4, - 0xe0c6, 0x003f, 0x003f, 0xf398, 0x003f, 0x003f, 0xe5e7, 0x003f, - 0xf060, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe164, 0xe0af, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf53a, 0xefaf, 0x003f, - 0x003f, 0xf5c3, 0xefd8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9e9, 0x003f, 0x003f, 0x003f, 0xf3f3, 0x003f, - 0xe5fb, 0xea4b, 0x003f, 0x003f, 0xf59d, 0x003f, 0x003f, 0x003f, - 0xf9f3, 0xf9f2, 0xf6a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c9, 0x003f, 0x003f, 0xe563, - 0x003f, 0xe138, 0x003f, 0xe851, 0xe165, 0x003f, 0xe7e4, 0x003f, - 0x003f, 0x003f, 0xf85a, 0x003f, 0x003f, 0x003f, 0xede3, 0x003f, - 0x003f, 0x003f, 0xe4bc, 0x003f, 0x003f, 0x003f, 0xe092, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe354, 0x003f, 0x003f, 0x003f, 0xe060, - 0xf83b, 0xf0eb, 0xeef8, 0xe7e5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf4a4, 0x003f, 0x003f, 0x003f, 0xe59d, 0xf973, - 0xf868, 0x003f, 0xf4d5, 0x003f, 0xe2ab, 0x003f, 0x003f, 0xf0f3, - /* 0x6200 .. 0x62ff */ - 0xe5fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d4, - 0xe1fc, 0x003f, 0xe7e6, 0x003f, 0xec9b, 0xec31, 0xf0d4, 0x003f, - 0xeb99, 0xed42, 0xe19e, 0x003f, 0x003f, 0x003f, 0xf8e4, 0x003f, - 0x003f, 0x003f, 0xf53b, 0x003f, 0x003f, 0x003f, 0x003f, 0xe34d, - 0x003f, 0xe093, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf2b8, 0x003f, 0x003f, 0x003f, 0xe6c0, 0x003f, - 0xf29c, 0xf9f4, 0x003f, 0x003f, 0xe4e3, 0x003f, 0xf8c2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5e8, 0xe8ae, - 0xebb6, 0xf747, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeb4f, - 0xf8c3, 0xe9ea, 0x003f, 0xec32, 0x003f, 0xf236, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf678, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf697, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ca, 0x003f, - 0x003f, 0xe372, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a6, 0x003f, - 0x003f, 0xe9eb, 0x003f, 0x003f, 0xed9b, 0x003f, 0x003f, 0xecaf, - 0xe39e, 0x003f, 0x003f, 0x003f, 0xf59e, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe14c, 0xf6ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xede4, 0xeaf1, 0x003f, 0x003f, 0xf6e1, 0x003f, 0xf7f7, - 0xf2b9, 0x003f, 0x003f, 0xf768, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf7a9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf769, 0x003f, 0x003f, 0x003f, 0xf24d, 0x003f, 0x003f, - 0x003f, 0xe756, 0x003f, 0x003f, 0xed73, 0xf5ce, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9d9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e7, - 0xe449, 0xe5c3, 0x003f, 0x003f, 0xe875, 0xe860, 0x003f, 0xe3d9, - 0xe268, 0x003f, 0xe0de, 0xf53c, 0xe89d, 0x003f, 0xf679, 0xef95, - 0xe2ac, 0xf392, 0x003f, 0xf59f, 0xe8c8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe250, 0xecd4, 0xe3cf, 0xf3f5, - 0x003f, 0xe1f2, 0x003f, 0xe2eb, 0x003f, 0x003f, 0x003f, 0xe1b8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeca6, 0xe3da, - /* 0x6300 .. 0x63ff */ - 0x003f, 0xf435, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf436, - 0x003f, 0xed5e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe4fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf3a9, 0x003f, 0x003f, 0x003f, 0xf459, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf2d8, 0xee59, 0x003f, 0xe748, 0xf895, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf4b5, 0x003f, 0x003f, 0xf734, 0x003f, 0x003f, 0xe3f3, - 0xee58, 0x003f, 0x003f, 0x003f, 0x003f, 0xf76a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe979, - 0xea67, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0df, 0x003f, - 0x003f, 0x003f, 0xe2ec, 0x003f, 0x003f, 0x003f, 0x003f, 0xf56f, - 0x003f, 0x003f, 0xe3f4, 0xe44a, 0x003f, 0x003f, 0x003f, 0xeaf2, - 0x003f, 0x003f, 0x003f, 0xebb7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xec33, 0xe4fc, 0x003f, 0x003f, 0xf1e6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe8c9, 0x003f, 0x003f, 0x003f, 0xed9c, 0x003f, - 0xe2de, 0x003f, 0x003f, 0xe260, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe5d3, 0xf4f5, 0xf6ae, 0x003f, 0x003f, 0xf2c8, 0x003f, 0xe1f3, - 0xf5cf, 0xedf3, 0xf352, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe061, 0x003f, 0x003f, 0x003f, 0xf093, 0x003f, 0xe336, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7da, - 0xf33b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0e7, 0x003f, - 0x003f, 0x003f, 0xedc0, 0xf945, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xed54, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe139, 0xf9c6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf045, 0x003f, 0xedaa, 0xeaba, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6400 .. 0x64ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebdf, 0x003f, 0xe861, - 0x003f, 0x003f, 0x003f, 0x003f, 0xebb8, 0x003f, 0xef96, 0xe4fd, - 0x003f, 0x003f, 0x003f, 0x003f, 0xec34, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf45a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe876, 0xf6b3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf9cd, 0x003f, 0x003f, 0x003f, 0xf4b6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf267, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe734, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf437, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7b8, 0xe7b9, 0xf2c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe65e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf6cb, 0xeaae, 0xef97, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe445, 0x003f, 0x003f, 0x003f, 0xe4d5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf55c, 0xe89e, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe7e8, 0x003f, 0xf6eb, 0xf5c9, 0x003f, - 0xf4bc, 0x003f, 0xe862, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4b5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xef46, 0x003f, 0x003f, 0xe65f, 0xf54a, 0x003f, 0xf6c9, - 0x003f, 0x003f, 0xe13a, 0x003f, 0x003f, 0xf353, 0xe166, 0x003f, - 0x003f, 0x003f, 0xe363, 0x003f, 0xe4bd, 0x003f, 0x003f, 0x003f, - 0xe8fb, 0x003f, 0xe0e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe4e4, 0xf699, 0x003f, 0x003f, 0xe5ba, 0xf4cd, 0xe0e1, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf0f4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf53d, 0x003f, 0xf93a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf6ec, 0x003f, 0x003f, 0x003f, 0xef98, 0x003f, - /* 0x6500 .. 0x65ff */ - 0xe877, 0x003f, 0x003f, 0x003f, 0xf6cc, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xedc1, 0x003f, 0x003f, 0x003f, 0x003f, 0xeb7e, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5fd, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe276, 0xf93b, 0xe5bb, 0x003f, 0x003f, 0xf438, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xec35, 0xe1b9, - 0xf094, 0xe0c7, 0x003f, 0xe1f4, 0x003f, 0x003f, 0xe8af, 0xf2d9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ba, 0x003f, 0x003f, - 0xf99b, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaf3, 0xe277, 0xe852, - 0x003f, 0xe2ad, 0x003f, 0x003f, 0x003f, 0x003f, 0xeef9, 0xf738, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4e2, 0x003f, - 0x003f, 0x003f, 0xe094, 0xeaa4, 0x003f, 0x003f, 0xe554, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe167, 0xedc2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1bb, 0x003f, 0xf2da, 0xf268, 0x003f, 0xe9a7, - 0xec36, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeb50, 0x003f, - 0x003f, 0x003f, 0xe640, 0xf75a, 0x003f, 0xf99c, 0x003f, 0xe7fe, - 0x003f, 0x003f, 0x003f, 0x003f, 0xea40, 0x003f, 0x003f, 0x003f, - 0xe9ec, 0xe878, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe570, - 0x003f, 0xe69b, 0x003f, 0xe1d7, 0xea68, 0x003f, 0x003f, 0xf49a, - 0x003f, 0xed66, 0x003f, 0x003f, 0xe355, 0xf53e, 0x003f, 0xe9a8, - 0x003f, 0x003f, 0x003f, 0xf1c5, 0xf4d6, 0x003f, 0x003f, 0xea69, - 0xece6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a8, - 0x003f, 0xe8b0, 0x003f, 0x003f, 0xedda, 0xecbf, 0x003f, 0x003f, - 0x003f, 0xe8b1, 0x003f, 0x003f, 0x003f, 0xe5e9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeb51, 0xf2db, 0x003f, 0x003f, 0xf379, - 0x003f, 0x003f, 0xe6b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe39f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7e9, 0x003f, 0x003f, 0xe3a0, 0x003f, 0xf17d, 0xe4a9, 0x003f, - 0xf439, 0xf354, 0x003f, 0x003f, 0xec72, 0xefef, 0x003f, 0x003f, - 0x003f, 0xf7d1, 0x003f, 0x003f, 0xefd9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xef6a, 0xe853, 0xe854, 0xe555, 0x003f, 0xeefa, - /* 0x6600 .. 0x66ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e0, 0xecb0, - 0x003f, 0xe8b2, 0xf8c4, 0x003f, 0xf4e3, 0x003f, 0xe7a5, 0xf8e7, - 0xe9cb, 0xe364, 0x003f, 0xee46, 0xeb3e, 0xf9da, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe945, 0xeb9a, - 0xeeb1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5f0, 0x003f, 0xe76c, - 0xf1c6, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb9, 0x003f, 0xecc0, - 0xf7c0, 0xeff0, 0x003f, 0x003f, 0xe7db, 0x003f, 0xf4e4, 0x003f, - 0x003f, 0x003f, 0xe946, 0xed79, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf355, 0xecc1, 0xf95c, 0xf95d, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf45b, 0x003f, 0xf45c, 0x003f, 0x003f, 0x003f, 0xed5f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3db, 0x003f, 0xf869, 0x003f, 0xf3b8, 0xf9f5, 0xeb9b, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeefb, 0xf947, 0xf974, 0xf8c5, - 0xece7, 0xe749, 0x003f, 0xf69a, 0x003f, 0x003f, 0xe955, 0xe168, - 0x003f, 0x003f, 0x003f, 0xeb3f, 0xf577, 0x003f, 0xf2dc, 0xe2fc, - 0xf2dd, 0x003f, 0xf43a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf9be, 0x003f, 0x003f, 0xe03c, - 0xf9bb, 0xf9c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeb2, 0x003f, - 0xf061, 0xeaf4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3ec, 0xed6e, - 0xedc3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a6, 0x003f, 0x003f, - 0xe1bc, 0x003f, 0xf4e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf1d5, 0x003f, 0x003f, 0xe7ba, 0x003f, - 0x003f, 0x003f, 0xf1e7, 0xf8b5, 0xf77c, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeb77, 0x003f, 0xe169, 0x003f, 0x003f, 0xe556, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeea5, 0x003f, 0xe5f5, 0xe4be, - 0x003f, 0xf99d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed94, 0x003f, - 0x003f, 0xeaf5, 0x003f, 0x003f, 0xef9a, 0xf77d, 0x003f, 0x003f, - 0xe257, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9f6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xef68, 0x003f, 0xe1d8, 0xeed6, 0xe16a, 0x003f, 0x003f, 0xe073, - 0xeaf6, 0xf357, 0xf356, 0x003f, 0xe74a, 0x003f, 0xf3f4, 0xf592, - /* 0x6700 .. 0x67ff */ - 0xf5cc, 0x003f, 0x003f, 0xf975, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf055, 0xf095, 0x003f, 0xe9db, 0x003f, 0xe967, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xea9f, 0xf49b, 0x003f, 0xe5c7, - 0x003f, 0x003f, 0x003f, 0xe760, 0x003f, 0xf358, 0xe3a1, 0xe3a2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d4, 0xe678, - 0xe7ca, 0x003f, 0xe841, 0xe757, 0xe972, 0xf4ce, 0xf5f4, 0x003f, - 0x003f, 0xf3b9, 0x003f, 0x003f, 0xe863, 0x003f, 0xf67a, 0x003f, - 0x003f, 0x003f, 0xe2f5, 0x003f, 0x003f, 0xf9ae, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe062, 0x003f, - 0x003f, 0xeab4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6dd, 0xf84a, - 0xf237, 0xf5bd, 0x003f, 0xf797, 0x003f, 0x003f, 0xf1e8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe571, 0x003f, 0xe3a3, 0xebd6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7f8, 0x003f, 0xe8ca, - 0xe0f9, 0xe564, 0x003f, 0xe7dc, 0x003f, 0xf24e, 0x003f, 0xf6ed, - 0x003f, 0x003f, 0x003f, 0xe47e, 0x003f, 0x003f, 0xebe6, 0xf6f9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ed, - 0x003f, 0xef6b, 0x003f, 0xe8b3, 0x003f, 0x003f, 0x003f, 0xe3f7, - 0xeb40, 0x003f, 0x003f, 0xe572, 0x003f, 0xf667, 0x003f, 0xe6f9, - 0x003f, 0x003f, 0xe76d, 0x003f, 0xe1fd, 0xf43b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1bd, - 0xf752, 0x003f, 0x003f, 0xf43c, 0x003f, 0x003f, 0xe03d, 0xe03e, - 0xe2ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecc2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe947, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8da, - 0xe7bb, 0xe095, 0xf663, 0xee9a, 0xf097, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf098, 0x003f, 0x003f, 0xf69b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe2af, 0x003f, 0x003f, 0xe063, 0x003f, 0x003f, 0xe03f, - 0xe440, 0xf3ba, 0x003f, 0xe6b3, 0xecc3, 0xf4fd, 0xea6a, 0x003f, - 0x003f, 0x003f, 0x003f, 0xea6b, 0x003f, 0x003f, 0xf2de, 0x003f, - /* 0x6800 .. 0x68ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xec73, 0xf29d, 0x003f, 0x003f, 0xeaf7, 0xe6ca, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe278, 0xe8db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3bb, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf847, 0xe356, 0x003f, 0x003f, 0xe13b, 0xf238, 0x003f, 0x003f, - 0xe0fa, 0xf7f9, 0xe19f, 0xe4fe, 0x003f, 0x003f, 0x003f, 0x003f, - 0xed60, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf47e, 0x003f, - 0xe565, 0xeacd, 0x003f, 0xf948, 0xe3d0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf45d, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6d2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe064, - 0x003f, 0xe5d9, 0x003f, 0x003f, 0x003f, 0xe76e, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d9, - 0x003f, 0x003f, 0x003f, 0xf239, 0xf64c, 0x003f, 0x003f, 0xe16b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf359, 0x003f, 0xf99e, - 0x003f, 0xef59, 0xf5a0, 0x003f, 0x003f, 0x003f, 0x003f, 0xeefc, - 0xe6de, 0x003f, 0x003f, 0x003f, 0x003f, 0xea6c, 0x003f, 0xf33c, - 0xe1a0, 0xe1e1, 0x003f, 0xebba, 0x003f, 0xe8ef, 0xe842, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a5, 0xe948, 0x003f, 0x003f, - 0x003f, 0xe798, 0x003f, 0xe3a4, 0x003f, 0xe1e2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe97a, 0x003f, 0x003f, 0xf399, 0x003f, 0xf35a, - 0xe34e, 0x003f, 0xe9dc, 0x003f, 0x003f, 0x003f, 0x003f, 0xe566, - 0xe4d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1d0, - 0xe1a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeab5, 0x003f, - 0x003f, 0x003f, 0xeaf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe531, 0xe242, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6900 .. 0x69ff */ - 0xef5a, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0f5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecd5, 0xf5d0, 0x003f, - 0x003f, 0x003f, 0xf5a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xedab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee5b, 0x003f, 0xf5f1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xedc5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf7a3, 0xeb6b, 0xf67b, 0x003f, 0xe0f1, - 0x003f, 0xe7ea, 0xf5a2, 0x003f, 0x003f, 0x003f, 0xe6d1, 0x003f, - 0xe3f8, 0xf09a, 0xf09b, 0xe843, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2df, 0x003f, 0x003f, 0xf3ef, 0x003f, 0xedf6, 0xf24f, 0xec74, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe34f, 0x003f, 0xf83c, - 0xf5d1, 0xeeb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefbe, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf45e, 0xe8b4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf95e, 0x003f, 0xe9ee, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeb4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf6b4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe1be, 0x003f, 0xe879, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2b0, 0xf6d9, 0xf4e6, 0x003f, 0x003f, - 0xe269, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe23a, 0x003f, 0xe0c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe337, 0x003f, 0xf35b, 0x003f, 0xe357, - /* 0x6a00 .. 0x6aff */ - 0x003f, 0x003f, 0xed55, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe8e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe5da, 0x003f, 0xe6a7, 0x003f, 0x003f, 0x003f, 0xf250, - 0x003f, 0xf798, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5d2, 0xf1e9, - 0x003f, 0xe7bc, 0x003f, 0xedc6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a3, 0x003f, 0x003f, - 0xe864, 0xec37, 0xf8fc, 0x003f, 0x003f, 0xf3dc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe096, 0x003f, 0x003f, 0x003f, - 0xef9c, 0x003f, 0x003f, 0xe279, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeff8, 0xec75, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe349, 0xe594, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a6, - 0x003f, 0xeace, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf996, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4aa, 0x003f, 0x003f, 0x003f, 0xe13c, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2e0, 0x003f, 0x003f, 0x003f, 0xede5, 0xe365, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8fc, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf976, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe0fe, 0xf1ea, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xea41, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf7e3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe532, 0xe2f6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe660, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5ea, 0xf3ee, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf85b, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeda1, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6b00 .. 0x6bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe2ed, 0x003f, 0xf1eb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5b2, 0x003f, 0x003f, 0x003f, 0xe5bc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf9e2, 0xf4ad, 0x003f, 0xf9db, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xefb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3a7, 0x003f, 0x003f, 0xf9e3, 0xe243, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9e4, 0xf85e, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe040, 0x003f, 0xf6a7, 0x003f, - 0xe2b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee32, - 0x003f, 0xf946, 0xf43d, 0xf2e1, 0xf4ae, 0xe956, 0xe7eb, 0x003f, - 0x003f, 0x003f, 0xef70, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeba8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f6, - 0xe2fd, 0x003f, 0x003f, 0xea6d, 0x003f, 0x003f, 0x003f, 0xe7d1, - 0x003f, 0x003f, 0x003f, 0xed7a, 0xf45f, 0x003f, 0xf6bf, 0x003f, - 0x003f, 0xec76, 0xec38, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecd6, 0x003f, - 0xf1d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe641, 0xea42, - 0x003f, 0x003f, 0xeb78, 0x003f, 0x003f, 0xe4ab, 0x003f, 0xf0dc, - 0x003f, 0x003f, 0xeaaf, 0x003f, 0xe053, 0x003f, 0x003f, 0xf29e, - 0x003f, 0xf9c3, 0x003f, 0x003f, 0x003f, 0xf0f6, 0xe2b2, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe7ec, 0x003f, 0xe7bd, 0x003f, 0xe76f, - 0x003f, 0x003f, 0xe548, 0xf0be, 0xe9ef, 0x003f, 0xe9f0, 0xe9f1, - 0xe9f2, 0x003f, 0x003f, 0xe7be, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf8c6, 0xe2b3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6c00 .. 0x6cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf29f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed3b, - 0x003f, 0xe855, 0x003f, 0xe77c, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe3a8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xec39, 0x003f, 0x003f, 0xea4c, - 0xeeb5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f0, 0x003f, - 0xf2e2, 0xf3f0, 0xe2b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f1, 0x003f, - 0xeb41, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaa5, 0x003f, 0xf7d2, - 0x003f, 0x003f, 0xeefd, 0x003f, 0x003f, 0xee33, 0xf8f1, 0xe0b0, - 0xf43e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1e7, 0x003f, 0xef6c, 0x003f, 0x003f, 0xeed7, 0x003f, 0x003f, - 0xf6c0, 0x003f, 0xe373, 0x003f, 0x003f, 0x003f, 0xe831, 0x003f, - 0x003f, 0x003f, 0xe14d, 0x003f, 0x003f, 0xe3a9, 0xe9cc, 0x003f, - 0x003f, 0xecfe, 0xe3aa, 0xef3a, 0x003f, 0xf046, 0xf7fa, 0xee5c, - 0xf668, 0x003f, 0x003f, 0x003f, 0xe557, 0x003f, 0x003f, 0x003f, - 0xe7cb, 0x003f, 0xe7d2, 0xe4cb, 0xe799, 0xe839, 0xf5f8, 0x003f, - 0x003f, 0xea6e, 0xf43f, 0xf739, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe758, 0x003f, 0x003f, 0xf251, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf7c1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9f3, 0xf09c, 0x003f, 0xf64d, 0xebbb, 0xe1bf, 0xf564, 0xee5d, - 0x003f, 0xf95f, 0xf8a2, 0x003f, 0xeb6c, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf54b, 0xe865, 0x003f, 0xf7b2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf8f2, 0x003f, 0xe8f6, 0x003f, 0xea6f, - 0x003f, 0x003f, 0x003f, 0xe8f2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf76c, 0xf6ee, 0xf0e8, 0x003f, 0xe49c, 0x003f, 0x003f, - 0xf3bc, 0x003f, 0x003f, 0xf86a, 0x003f, 0x003f, 0xe87a, 0xe856, - 0xf6c1, 0x003f, 0x003f, 0xeeb6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6d00 .. 0x6dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xedc7, 0xe63c, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe957, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeba9, - 0x003f, 0xec3a, 0x003f, 0xe5a6, 0x003f, 0x003f, 0xe567, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf460, 0x003f, 0xf09d, - 0x003f, 0xeb6d, 0xf8f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3bd, 0x003f, 0x003f, 0xec77, 0xf9d7, 0x003f, - 0xe258, 0xf047, 0x003f, 0xf950, 0x003f, 0xf9e7, 0xf6ef, 0x003f, - 0x003f, 0xe6b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2ba, 0xf3dd, 0x003f, 0xea43, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xef5b, 0x003f, 0x003f, 0xf76d, 0x003f, - 0x003f, 0xf8c7, 0xe5c8, 0x003f, 0xe6df, 0x003f, 0xe9a9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xefb1, 0x003f, 0x003f, 0xf83d, - 0xf669, 0xf896, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf73a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee7e, 0x003f, 0xe16c, - 0xebbc, 0xeb91, 0x003f, 0x003f, 0xefbf, 0xf99f, 0xee5e, 0x003f, - 0x003f, 0xebd7, 0x003f, 0xee5f, 0x003f, 0xf593, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed95, - 0x003f, 0x003f, 0xed9d, 0x003f, 0x003f, 0xf7e4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2e3, 0x003f, 0x003f, 0xe2ee, 0xf64e, 0xeb42, 0xf9a0, 0xe3ab, - 0x003f, 0x003f, 0x003f, 0xe6fa, 0x003f, 0x003f, 0x003f, 0xf8c8, - 0x003f, 0xec67, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe533, 0xf39a, 0xe6a8, 0x003f, 0x003f, 0x003f, 0xebe7, 0x003f, - 0x003f, 0xe4bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2e4, 0x003f, 0xe6c5, 0xf0e2, 0x003f, 0x003f, 0xf977, 0x003f, - 0x003f, 0xed32, 0x003f, 0xec78, 0x003f, 0xee60, 0x003f, 0xf8e8, - 0xf578, 0xedf4, 0xf54c, 0xf565, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6e00 .. 0x6eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeab6, - 0x003f, 0xf949, 0xf252, 0xe097, 0x003f, 0x003f, 0x003f, 0xf2e5, - 0xe0e2, 0xe534, 0x003f, 0xea70, 0xe89f, 0xed56, 0xef4e, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeb6e, 0xf644, 0xf062, 0x003f, 0xf7fb, - 0x003f, 0x003f, 0xeb52, 0x003f, 0xe074, 0x003f, 0xeeb7, 0x003f, - 0xf09f, 0x003f, 0xe7dd, 0x003f, 0xe844, 0xf23a, 0xf8e9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8cb, 0xe845, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3be, 0x003f, 0x003f, 0xe4ac, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8c9, 0x003f, - 0xeacf, 0x003f, 0x003f, 0xe4c0, 0xecd7, 0x003f, 0xf2e6, 0xf960, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc0, - 0x003f, 0x003f, 0x003f, 0xf5d3, 0x003f, 0x003f, 0xf16c, 0xf6b7, - 0x003f, 0x003f, 0xf048, 0xe3f9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe958, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf049, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3de, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b6, 0xe2b5, 0x003f, 0xe7a8, - 0x003f, 0x003f, 0xf17e, 0x003f, 0x003f, 0xe9aa, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1a2, 0xef3e, 0x003f, 0x003f, 0x003f, 0xebbd, - 0x003f, 0xf461, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc1, 0x003f, - 0x003f, 0x003f, 0xe49e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe8b5, 0x003f, 0xf4e7, 0xe7a0, 0x003f, 0x003f, - 0x003f, 0xf961, 0x003f, 0xf1b2, 0xf53f, 0x003f, 0xf8a3, 0x003f, - 0x003f, 0xf951, 0x003f, 0xf23b, 0xe535, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf594, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf269, 0x003f, 0x003f, 0x003f, - 0xf8ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e3, 0xe74b, - /* 0x6f00 .. 0x6fff */ - 0x003f, 0xeddb, 0xf799, 0x003f, 0x003f, 0x003f, 0xf664, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a9, - 0x003f, 0xe0c9, 0x003f, 0x003f, 0xee61, 0xf35c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe73e, 0x003f, 0xf7d3, 0xe5fe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe74c, 0xf440, 0x003f, 0x003f, 0x003f, - 0x003f, 0xec3b, 0xf4e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ec, - 0x003f, 0xeeb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe8a0, 0x003f, 0x003f, 0xe14e, 0x003f, 0x003f, 0xf49e, - 0xe87b, 0x003f, 0xec68, 0xf1d6, 0x003f, 0x003f, 0xe661, 0xeb43, - 0x003f, 0x003f, 0xf962, 0x003f, 0xf0c8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4c1, 0xf35d, 0x003f, - 0xe2f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1d2, 0x003f, 0xe568, 0xe959, 0xe6f1, 0x003f, - 0x003f, 0xeabb, 0x003f, 0x003f, 0xf4a5, 0x003f, 0x003f, 0x003f, - 0xf55d, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3bf, 0xf741, 0x003f, - 0xeffa, 0x003f, 0x003f, 0x003f, 0xf8cb, 0x003f, 0x003f, 0xe065, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf7d4, 0xf6ca, 0x003f, 0x003f, 0xe658, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf978, 0xf4bd, - 0x003f, 0xf2a0, 0x003f, 0xeefe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe4c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4b6, 0x003f, - 0xe13d, 0xf69c, 0xe642, 0xe468, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeed8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeca5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeeb9, 0x003f, 0x003f, 0x003f, 0x003f, 0xf33d, - 0xf8cc, 0xf0a1, 0x003f, 0x003f, 0xe536, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8cd, 0x003f, 0xe5bd, 0xf3df, 0x003f, 0x003f, 0xf69d, - 0x003f, 0xea44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5eb, 0x003f, - /* 0x7000 .. 0x70ff */ - 0x003f, 0xedc8, 0x003f, 0x003f, 0x003f, 0xf8a4, 0xe549, 0x003f, - 0x003f, 0xea71, 0x003f, 0xed33, 0x003f, 0x003f, 0x003f, 0xe6b7, - 0x003f, 0xf77e, 0x003f, 0x003f, 0x003f, 0xea45, 0x003f, 0x003f, - 0xe662, 0x003f, 0xf7d5, 0xeeba, 0xf0d5, 0xe5f7, 0xf2e7, 0xebbe, - 0x003f, 0x003f, 0x003f, 0xf83e, 0x003f, 0x003f, 0x003f, 0xe679, - 0xe67e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeebb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf15b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe244, 0x003f, 0x003f, 0x003f, - 0xf8a5, 0xebee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf6a8, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8ce, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe74d, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf8fd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf979, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2b6, 0x003f, 0x003f, 0x003f, 0xf1c7, 0xf23c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe16d, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf637, 0x003f, 0x003f, 0x003f, 0xee9c, 0x003f, - 0x003f, 0x003f, 0xf5a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf9dc, 0xf1b3, 0xe259, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2e8, 0x003f, 0x003f, 0xebbf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf86b, 0xe0e3, 0xf6a9, 0x003f, 0xf8a6, - 0x003f, 0x003f, 0x003f, 0xe949, 0x003f, 0x003f, 0x003f, 0xf3c0, - 0xf1c8, 0xf2c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe63d, 0x003f, 0x003f, 0xf9ce, 0x003f, 0x003f, 0x003f, 0xef31, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf8f4, 0xe5a7, 0x003f, 0x003f, 0x003f, 0xf3f6, 0x003f, 0xee63, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe16e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf742, 0x003f, 0x003f, 0x003f, 0xe97b, 0x003f, 0x003f, - /* 0x7100 .. 0x71ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xf9b6, 0x003f, 0x003f, 0x003f, - 0x003f, 0xedea, 0x003f, 0x003f, 0xf3e0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe8cc, 0xe9cd, 0x003f, 0x003f, 0x003f, 0xe558, 0x003f, - 0x003f, 0xe7ed, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xee9d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee64, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9c8, - 0x003f, 0xe631, 0xf9bf, 0x003f, 0xf963, 0x003f, 0xf2a1, 0x003f, - 0xeebc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3ee, 0x003f, - 0x003f, 0xee65, 0x003f, 0x003f, 0xeff2, 0x003f, 0xeab0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe770, 0xf94a, 0xf9af, 0xf35e, - 0x003f, 0xe8e1, 0x003f, 0x003f, 0xedc9, 0x003f, 0xf1b4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeb53, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xecd8, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeffb, 0xf038, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9b7, - 0x003f, 0x003f, 0xf8a7, 0x003f, 0xefc2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf9f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xec69, - 0x003f, 0x003f, 0xe97c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xef32, 0x003f, 0x003f, 0x003f, - 0x003f, 0xee92, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf9f8, 0xf9f9, 0x003f, 0x003f, 0x003f, 0xf64f, 0x003f, - 0x003f, 0xeea7, 0x003f, 0xee67, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe595, 0xe559, 0x003f, 0x003f, 0x003f, 0x003f, 0xe69c, 0x003f, - 0xe6f2, 0x003f, 0xebc0, 0x003f, 0xe8e2, 0xee68, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeebd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf35f, 0xf4be, 0xec3c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5b7, 0xeb92, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9b8, 0xece8, 0x003f, 0xe537, 0xef9e, - /* 0x7200 .. 0x72ff */ - 0xf862, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf791, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe663, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5b4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf360, 0x003f, 0xf6f0, 0xf243, 0x003f, 0x003f, - 0xf04a, 0x003f, 0xf063, 0x003f, 0x003f, 0xf1c9, 0xe9ab, 0x003f, - 0x003f, 0x003f, 0xedac, 0xf9a1, 0x003f, 0xead0, 0xf143, 0x003f, - 0xead1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ed, 0xf748, - 0xf6fa, 0x003f, 0x003f, 0x003f, 0xf73b, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf570, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe54a, 0xed43, 0x003f, 0xefda, 0x003f, 0xea46, 0x003f, 0xe7bf, - 0x003f, 0xe7c0, 0xe691, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7cc, - 0x003f, 0xe83a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeae5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf6e5, 0x003f, 0x003f, 0x003f, 0xe142, 0x003f, 0x003f, - 0xeaf9, 0xe6e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe54b, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9fa, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe143, 0x003f, 0x003f, 0xe8f3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xead2, 0x003f, 0xe25a, 0x003f, 0xf26a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed74, 0x003f, - 0xf8cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2b7, - 0x003f, 0xf253, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe27a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xec3d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6e1, 0xf897, 0x003f, 0x003f, 0xe5c9, 0xf73c, 0x003f, 0x003f, - /* 0x7300 .. 0x73ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeed9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4e9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe77d, 0xecc4, 0xf393, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef75, 0x003f, 0x003f, - 0x003f, 0xeb9c, 0xf254, 0xe7de, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0a2, 0xf0a3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf952, 0xf04b, - 0x003f, 0x003f, 0x003f, 0x003f, 0xef3b, 0xea72, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1ef, 0x003f, 0xef33, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe54c, 0x003f, 0xf97a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeebe, 0x003f, 0xf994, 0x003f, 0x003f, 0xe644, 0x003f, 0x003f, - 0xec3e, 0x003f, 0xe4b7, 0xf85c, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf86c, 0x003f, 0xf1b5, 0xebe3, - 0x003f, 0xef3c, 0x003f, 0xef6d, 0x003f, 0x003f, 0xf2e9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf54d, 0x003f, 0xe2b8, 0xefdb, - 0xe3ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe857, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0c9, - 0x003f, 0xef5c, 0x003f, 0x003f, 0x003f, 0xea47, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe64c, 0xe4e5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf86d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe866, 0x003f, 0xe041, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe858, 0xeaa6, 0x003f, 0xf7b3, 0xf462, 0x003f, 0xe054, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe25b, 0x003f, - 0x003f, 0xe1f5, 0x003f, 0x003f, 0x003f, 0xf9b0, 0xe5a8, 0x003f, - 0xf3c1, 0x003f, 0x003f, 0xec79, 0xe95a, 0xf144, 0xf850, 0x003f, - 0x003f, 0xf8a8, 0xe338, 0x003f, 0x003f, 0xe87c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7ee, - 0x003f, 0xeb9d, 0x003f, 0x003f, 0x003f, 0xf2ea, 0xf86e, 0x003f, - /* 0x7400 .. 0x74ff */ - 0x003f, 0xeb54, 0x003f, 0xe2b9, 0x003f, 0xe5ca, 0xe6e2, 0xec3f, - 0x003f, 0xe6b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xef5d, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf66a, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2a2, 0xec6a, 0xf69e, 0x003f, 0x003f, 0xf8d0, 0xe3ad, 0x003f, - 0xe1e4, 0x003f, 0xe3ae, 0xe97d, 0xef5e, 0x003f, 0xf39b, 0xe245, - 0xee9e, 0x003f, 0x003f, 0xe6fb, 0xe366, 0xe9f5, 0xf6f1, 0x003f, - 0xf69f, 0x003f, 0xe8f7, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8ea, - 0xefdc, 0xe7c1, 0x003f, 0xf5f2, 0xeb55, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf064, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7c2, 0x003f, 0xf04c, - 0x003f, 0xe455, 0xf8d1, 0xeec0, 0xf0a5, 0x003f, 0xeafa, 0xeca2, - 0xe6b9, 0x003f, 0xefc3, 0x003f, 0xef9f, 0xef3f, 0x003f, 0x003f, - 0xf463, 0xf8a9, 0xe735, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5cb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe358, 0x003f, - 0x003f, 0x003f, 0xe3af, 0xe6e3, 0x003f, 0x003f, 0x003f, 0xeb56, - 0x003f, 0xe632, 0x003f, 0xf1f0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6f3, 0x003f, 0x003f, 0x003f, 0xf964, 0x003f, 0xe867, 0xe16f, - 0x003f, 0xf464, 0x003f, 0xe3b0, 0x003f, 0xe170, 0x003f, 0xe8fd, - 0xf4bf, 0x003f, 0xf361, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf94b, 0x003f, 0xec40, 0x003f, 0x003f, 0xee35, 0x003f, 0x003f, - 0x003f, 0xec6b, 0x003f, 0x003f, 0x003f, 0xeade, 0x003f, 0xeb57, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf491, 0x003f, - 0x003f, 0x003f, 0xe171, 0x003f, 0x003f, 0x003f, 0x003f, 0xe67a, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeec2, 0x003f, 0x003f, 0x003f, - 0xe246, 0x003f, 0xf4c0, 0x003f, 0xe1fe, 0x003f, 0x003f, 0x003f, - 0xf8d2, 0x003f, 0xf79a, 0xf6fb, 0x003f, 0x003f, 0xef4f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef47, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1b6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7500 .. 0x75ff */ - 0x003f, 0xe94a, 0x003f, 0x003f, 0xe144, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3f7, 0x003f, 0x003f, 0x003f, 0xef48, 0x003f, 0x003f, - 0xe098, 0x003f, 0xed34, 0xf566, 0x003f, 0x003f, 0x003f, 0xeae6, - 0x003f, 0x003f, 0x003f, 0xeaa7, 0x003f, 0xeae7, 0xebc1, 0x003f, - 0xefc4, 0x003f, 0x003f, 0xe95b, 0xefc5, 0x003f, 0x003f, 0x003f, - 0xf2a3, 0xf0a6, 0xe0a3, 0xece9, 0x003f, 0x003f, 0x003f, 0xe3fb, - 0xf2a4, 0x003f, 0xf2eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe344, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a3, 0x003f, 0x003f, 0xef76, - 0x003f, 0xf2a5, 0x003f, 0xe4cc, 0xe87d, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6ba, 0x003f, 0xf465, 0xf5e5, 0xe7ef, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf7b4, 0x003f, 0x003f, 0xe5d4, 0xf9cf, 0x003f, - 0x003f, 0x003f, 0xe8e3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3e1, - 0xf146, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8fe, 0xe4d7, 0x003f, - 0xe3b1, 0x003f, 0xe0b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0b2, 0xf3c2, - 0x003f, 0x003f, 0xf571, 0xf7b5, 0x003f, 0x003f, 0xebc3, 0xebc2, - 0x003f, 0xf0f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaa8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ca, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xee49, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf76e, 0xf7aa, 0xe099, 0x003f, 0xf1b7, 0x003f, 0x003f, - 0xe4b8, 0xf466, 0x003f, 0x003f, 0xe569, 0xf255, 0xf492, 0x003f, - 0x003f, 0x003f, 0xe042, 0x003f, 0x003f, 0xe94b, 0x003f, 0xf3f8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf147, 0x003f, 0x003f, - 0x003f, 0x003f, 0xedca, 0x003f, 0xf650, 0xf9dd, 0x003f, 0x003f, - 0xe573, 0xe172, 0x003f, 0xf6d4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4c3, 0x003f, 0xe736, 0x003f, 0xf651, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9f6, 0x003f, 0xe1c0, 0x003f, 0x003f, 0x003f, - /* 0x7600 .. 0x76ff */ - 0xeddc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedcb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xebc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef40, - 0xf540, 0xf4ea, 0xe87e, 0x003f, 0xe6bb, 0x003f, 0xec41, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6aa, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe69d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xed6f, 0x003f, 0xe066, 0x003f, - 0x003f, 0x003f, 0xf0a8, 0x003f, 0x003f, 0x003f, 0xe8fe, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf652, 0x003f, 0x003f, 0xf2bb, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe59f, 0x003f, 0x003f, 0xeb58, 0x003f, 0x003f, 0x003f, - 0xef49, 0x003f, 0xf2a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1a4, 0x003f, 0x003f, 0xe596, 0xe8a1, 0xe8dc, 0xe8dd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf26c, 0x003f, 0xe0cb, 0xf965, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe27b, 0x003f, - 0xe1c1, 0x003f, 0x003f, 0xf8d3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7ab, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf5d4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a9, - 0x003f, 0x003f, 0xefdd, 0xe8cd, 0x003f, 0x003f, 0xe9ce, 0x003f, - 0xeec3, 0x003f, 0xf15c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf7ec, 0x003f, 0x003f, 0x003f, 0xe0cc, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeb9e, 0xe538, 0x003f, 0xf1d3, 0xe791, - 0x003f, 0xf467, 0x003f, 0xe09a, 0xe891, 0x003f, 0x003f, 0xe664, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7cd, 0x003f, - 0x003f, 0x003f, 0xe77e, 0x003f, 0xf451, 0x003f, 0x003f, 0x003f, - 0xead3, 0x003f, 0x003f, 0x003f, 0xe892, 0x003f, 0xec7a, 0x003f, - /* 0x7700 .. 0x77ff */ - 0x003f, 0xeb9f, 0x003f, 0x003f, 0xe79a, 0x003f, 0x003f, 0x003f, - 0xf6af, 0xe846, 0x003f, 0xe067, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf468, 0x003f, - 0xe79b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf86f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ef, - 0xe7c2, 0x003f, 0xf362, 0x003f, 0xed61, 0x003f, 0x003f, 0x003f, - 0xf4b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf870, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf2ec, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xec42, 0x003f, 0xe54d, 0x003f, 0x003f, 0xe7ce, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf572, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe539, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1c2, 0xeeda, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf469, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe7aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe74e, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe93d, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xec7b, 0xe69e, 0x003f, 0x003f, - 0xe09b, 0x003f, 0x003f, 0xe56a, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf567, 0xe131, 0x003f, 0x003f, 0xe2ba, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5b8, - 0x003f, 0x003f, 0x003f, 0xe7c3, 0xe378, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xecc5, 0xf0f8, 0x003f, 0xf441, 0x003f, 0x003f, - 0x003f, 0xe2bb, 0x003f, 0x003f, 0x003f, 0xe4ad, 0xef71, 0xe27c, - 0x003f, 0x003f, 0x003f, 0xeb44, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7800 .. 0x78ff */ - 0x003f, 0x003f, 0xea73, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf442, 0xf4f6, 0xf66b, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6fe, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf76f, 0x003f, 0xf6f2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe339, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee6a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6bc, 0xe173, 0x003f, 0x003f, 0xee6b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9dd, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2ed, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe66e, 0xed96, 0xebef, 0x003f, - 0x003f, 0xe9f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef5f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe075, 0x003f, 0x003f, 0x003f, 0xe931, - 0x003f, 0xeb45, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf93c, 0xf93d, 0xe737, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf1b8, 0x003f, 0x003f, 0x003f, 0xe8b6, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe692, 0xf4af, 0x003f, 0x003f, 0xe1a5, 0x003f, - 0xe893, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe738, 0x003f, 0x003f, 0x003f, 0xe174, 0x003f, 0x003f, 0xe3b4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe068, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe894, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7900 .. 0x79ff */ - 0x003f, 0xf5a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee36, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5ec, 0xe5f8, 0xe895, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xecc6, 0x003f, 0x003f, 0x003f, 0xea74, 0x003f, - 0xea75, 0xe3b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b6, - 0xe3b7, 0xf443, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefde, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf363, 0xf444, - 0x003f, 0x003f, 0xf364, 0xe0e4, 0xf8d4, 0xf5e6, 0xecea, 0x003f, - 0xea76, 0x003f, 0x003f, 0x003f, 0x003f, 0xead4, 0x003f, 0x003f, - 0xf79b, 0x003f, 0x003f, 0x003f, 0x003f, 0xf33e, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe66f, - 0x003f, 0xe367, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf931, 0xf2ee, 0xe968, - 0x003f, 0xefdf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeddd, 0xf9fb, - 0x003f, 0x003f, 0xeb59, 0x003f, 0x003f, 0x003f, 0xe659, 0x003f, - 0x003f, 0xe53a, 0x003f, 0xedcc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xefe0, 0x003f, 0x003f, 0x003f, 0xe368, 0xf932, 0xe54e, - 0xec43, 0xea77, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe94c, 0xe446, 0xf5d5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe231, 0xf5a9, 0x003f, 0x003f, 0xe9f9, 0x003f, 0x003f, - 0xe9fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf365, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf66f, 0x003f, 0xf46a, 0xed7b, - 0x003f, 0xf493, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf149, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7a00 .. 0x7aff */ - 0xf9fc, 0x003f, 0x003f, 0x003f, 0x003f, 0xebaa, 0x003f, 0x003f, - 0xe069, 0x003f, 0x003f, 0xf2ef, 0x003f, 0xf5aa, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf19b, 0x003f, 0x003f, 0xf73d, - 0x003f, 0xf452, 0xf653, 0x003f, 0xe6d2, 0x003f, 0x003f, 0xf7a2, - 0xf366, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf39c, 0x003f, - 0x003f, 0xf670, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff3, 0xf453, - 0x003f, 0x003f, 0x003f, 0xe53b, 0xe043, 0xe1a6, 0x003f, 0xe1c3, - 0xe1da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7cf, 0x003f, - 0x003f, 0xf654, 0x003f, 0x003f, 0x003f, 0xf26d, 0xeec4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xec44, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeae2, 0xeedb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xef41, 0x003f, 0xf93e, 0x003f, 0x003f, 0x003f, 0x003f, - 0xedcd, 0x003f, 0x003f, 0x003f, 0xf87b, 0x003f, 0xe2bc, 0x003f, - 0x003f, 0xe2e2, 0xe1f6, 0x003f, 0x003f, 0xf2f0, 0x003f, 0xf54e, - 0x003f, 0xe55d, 0x003f, 0x003f, 0xf4b8, 0x003f, 0x003f, 0x003f, - 0xefa1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf494, 0xf4eb, 0x003f, 0xf367, 0x003f, 0x003f, - 0xe2d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2df, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xef50, 0xef51, 0x003f, 0x003f, 0x003f, 0xe2e3, 0xefa2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe33a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf4c1, 0xe33b, 0x003f, 0xe574, - 0x003f, 0x003f, 0xf2bc, 0xe731, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7df, - 0x003f, 0xf4d7, 0x003f, 0x003f, 0x003f, 0xe94d, 0x003f, 0xe175, - 0xf1f1, 0x003f, 0x003f, 0xf3e2, 0x003f, 0xe56b, 0x003f, 0x003f, - 0x003f, 0x003f, 0xec45, 0x003f, 0x003f, 0xe076, 0x003f, 0xe4ae, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe176, 0x003f, - 0x003f, 0xf3d3, 0xf5e7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe06a, - /* 0x7b00 .. 0x7bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8ee, - 0x003f, 0xebc5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeae9, 0x003f, 0xf26e, 0x003f, 0x003f, 0xf6c2, 0x003f, - 0xe732, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ac, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf33f, 0xe64d, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xebab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7b6, 0x003f, - 0x003f, 0xe597, 0x003f, 0xe359, 0xf2a7, 0xec7c, 0x003f, 0xe8ea, - 0xe25c, 0xf5e8, 0xf6d5, 0x003f, 0xe4cd, 0x003f, 0xf4fe, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe345, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeba0, 0x003f, 0xeafb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee6d, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef34, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0cd, - 0x003f, 0x003f, 0x003f, 0xf2a8, 0x003f, 0x003f, 0x003f, 0xf244, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe868, 0xe3b9, 0x003f, 0xeaa9, - 0x003f, 0x003f, 0xf4b0, 0x003f, 0x003f, 0xe154, 0x003f, 0x003f, - 0x003f, 0xe247, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a9, 0x003f, 0x003f, - 0x003f, 0xead5, 0x003f, 0x003f, 0xf1d7, 0x003f, 0x003f, 0x003f, - 0xf256, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2bd, 0xf966, 0x003f, 0x003f, 0xe8f4, 0x003f, 0xf2aa, 0xf749, - 0x003f, 0xf5e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xecd9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xebc6, 0x003f, 0x003f, 0x003f, 0xe54f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xea78, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7c00 .. 0x7cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf37a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf4c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4af, 0x003f, - 0x003f, 0xe06b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf967, - 0x003f, 0x003f, 0xf1d8, 0xebc7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf568, 0xe643, 0xe9ad, - 0x003f, 0x003f, 0x003f, 0xe5be, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf3c3, 0xf26f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe67b, 0x003f, 0x003f, 0x003f, 0xf569, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe847, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe9fb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe733, 0x003f, 0x003f, 0xe869, 0x003f, 0xf368, - 0xf2c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebd8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3d4, 0x003f, 0xf1f2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5db, 0x003f, - 0x003f, 0xe5dc, 0xf4c4, 0xe0d7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xec46, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2f1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9d0, 0xf369, - 0xe0b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5dd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe1a7, 0x003f, 0x003f, 0xe33c, 0x003f, - /* 0x7d00 .. 0x7dff */ - 0xe3ba, 0x003f, 0xf3c4, 0x003f, 0xedb3, 0xf8f5, 0xefe1, 0xf9e0, - 0xf94c, 0x003f, 0xe832, 0xe833, 0x003f, 0xe431, 0x003f, 0x003f, - 0xe491, 0x003f, 0x003f, 0x003f, 0xec7d, 0x003f, 0x003f, 0xea79, - 0xe26c, 0xf445, 0xe374, 0xe9d1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xebc8, 0xe8b7, 0xeae3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf1b9, 0xf3c5, 0x003f, 0xf4cf, 0xe6ab, - 0xebac, 0x003f, 0x003f, 0xeceb, 0x003f, 0xf257, 0x003f, 0x003f, - 0x003f, 0xebc9, 0xe09c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf39d, 0xf871, 0xf36a, 0xe177, 0xe896, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe14f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe27d, 0x003f, - 0x003f, 0xe5a9, 0xf872, 0x003f, 0x003f, 0x003f, 0xe375, 0x003f, - 0xf0d6, 0x003f, 0xf16f, 0x003f, 0x003f, 0x003f, 0xeafc, 0x003f, - 0x003f, 0xf6d6, 0xea7a, 0xe0b4, 0x003f, 0x003f, 0xf2be, 0x003f, - 0x003f, 0xe145, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2bd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2f2, 0xec47, - 0x003f, 0x003f, 0x003f, 0xe178, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf39e, 0x003f, 0x003f, 0x003f, - 0xe670, 0x003f, 0xf3c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xec48, 0xf0ab, 0x003f, 0x003f, - 0x003f, 0xe0b5, 0xe761, 0x003f, 0xf55e, 0xf4f7, 0x003f, 0x003f, - 0xe6c6, 0x003f, 0xe3bb, 0xf6aa, 0x003f, 0xf1ca, 0xe6d3, 0xe79c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf655, - 0x003f, 0x003f, 0xe3cc, 0xe9fc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeafd, 0x003f, - 0xf7e5, 0x003f, 0xeb5a, 0x003f, 0x003f, 0xf49f, 0xe4b0, 0x003f, - 0xf595, 0xe859, 0x003f, 0xee6e, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf74a, 0xef60, 0x003f, 0x003f, 0xe79d, 0x003f, 0x003f, 0xf065, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe633, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf656, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7e00 .. 0x7eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf46b, 0xed9e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef42, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe86a, 0x003f, 0xf46c, 0xf8d6, 0xefb2, - 0x003f, 0xf23d, 0x003f, 0xf873, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe97e, 0x003f, 0x003f, 0xf5ea, 0xee70, - 0x003f, 0xf39f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ac, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5c5, 0xf270, 0x003f, - 0x003f, 0xe8e5, 0x003f, 0xe9de, 0x003f, 0x003f, 0xe7f0, 0xefa3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3f9, 0x003f, 0xf454, 0xeb5b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefa4, 0x003f, - 0x003f, 0xec49, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xecb1, 0xf97b, 0xe1a8, 0x003f, 0xe146, 0x003f, 0x003f, - 0xf36b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xee4a, 0x003f, 0x003f, 0xe1a9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf4c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xebd9, 0x003f, 0x003f, 0xf2ab, - 0x003f, 0x003f, 0x003f, 0xeec5, 0x003f, 0x003f, 0xeb79, 0x003f, - 0xf4c5, 0x003f, 0x003f, 0xe550, 0xe5bf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7f00 .. 0x7fff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ae, 0x003f, - 0xf7fc, 0x003f, 0xe150, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeda2, 0x003f, 0x003f, 0x003f, - 0xe248, 0x003f, 0x003f, 0x003f, 0xe762, 0xf7d6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3aa, 0xe261, 0x003f, 0x003f, 0xf657, 0x003f, - 0xe8eb, 0x003f, 0xeafe, 0x003f, 0x003f, 0xe771, 0x003f, 0xf6f3, - 0x003f, 0xe6e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a0, 0x003f, 0x003f, - 0xe3bc, 0x003f, 0xedcf, 0x003f, 0xe0b6, 0x003f, 0xe848, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1c4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe64e, 0x003f, 0x003f, 0x003f, 0xec4a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d8, 0x003f, 0x003f, 0x003f, - 0xeb5c, 0xf0f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf9fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6e8, 0xe0d8, 0x003f, 0x003f, 0x003f, 0xefe2, 0x003f, 0x003f, - 0x003f, 0xef4a, 0x003f, 0x003f, 0x003f, 0xecc7, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf15d, 0x003f, 0xf15e, 0x003f, 0xe64f, 0x003f, - 0x003f, 0x003f, 0xeca7, 0x003f, 0xead6, 0xf9e8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf271, - 0xf638, 0xe9fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf74b, 0x003f, 0xef61, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf7d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe27e, 0x003f, 0x003f, 0xf15f, 0x003f, 0x003f, 0x003f, - /* 0x8000 .. 0x80ff */ - 0xefa5, 0xe665, 0x003f, 0xe1c5, 0x003f, 0xf1ba, 0xe3bd, 0x003f, - 0x003f, 0xe2be, 0x003f, 0x003f, 0xf14b, 0x003f, 0x003f, 0x003f, - 0xe441, 0x003f, 0x003f, 0x003f, 0x003f, 0xe179, 0x003f, 0xe7c4, - 0xeffc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3be, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf14c, 0x003f, 0x003f, 0xedad, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6b0, 0x003f, 0xe17a, - 0x003f, 0x003f, 0x003f, 0xe4c4, 0x003f, 0x003f, 0xe650, 0x003f, - 0x003f, 0x003f, 0xe69f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeba1, 0x003f, - 0xea4d, 0x003f, 0xf639, 0x003f, 0x003f, 0x003f, 0xe834, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe634, - 0xf5c6, 0x003f, 0xeba2, 0xefc6, 0x003f, 0x003f, 0x003f, 0xf455, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf579, 0xe67c, 0xf0d3, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf14d, 0xec6c, 0xea7b, 0xf36c, - 0x003f, 0xf0bf, 0x003f, 0xe6ce, 0xe3bf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5ab, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf7fd, 0x003f, 0xe06c, 0x003f, 0x003f, - 0x003f, 0xe1c6, 0xf446, 0x003f, 0x003f, 0xe9fe, 0x003f, 0x003f, - 0x003f, 0xe147, 0xe8b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe379, - 0x003f, 0xe26d, 0xf0c0, 0x003f, 0xf9a2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf75b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf066, 0xf3b0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ce, 0x003f, 0xf6c3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe8cf, 0xe0a4, 0x003f, 0x003f, 0xf770, 0x003f, - 0x003f, 0xf8d7, 0x003f, 0x003f, 0xf0ca, 0xeb31, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe25d, 0x003f, 0x003f, 0xe56c, 0x003f, 0x003f, 0x003f, - 0xf9d8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe498, 0x003f, 0x003f, - /* 0x8100 .. 0x81ff */ - 0x003f, 0x003f, 0xf447, 0x003f, 0x003f, 0xf898, 0xf63a, 0xf899, - 0xe776, 0x003f, 0xf541, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xef62, 0x003f, 0xe055, 0xe17b, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xec7e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xec4b, 0x003f, 0xf6ad, 0x003f, 0x003f, 0x003f, 0xf771, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf4ec, 0x003f, 0x003f, 0x003f, 0x003f, 0xea31, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xed9f, 0x003f, 0x003f, 0xecec, 0x003f, - 0xe9af, 0xe9b0, 0x003f, 0x003f, 0xe0b7, 0xef63, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeba3, 0xe470, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf3a0, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefa6, 0xe0f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1f3, 0xe969, 0xeb5d, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6da, - 0xe8b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe13e, 0x003f, 0xe86b, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1c7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9b1, 0x003f, 0xe73f, 0xeca3, 0x003f, 0x003f, - 0xe291, 0x003f, 0x003f, 0xf495, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf743, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeb5e, 0x003f, 0xf5fd, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf0ec, 0x003f, 0x003f, 0xe4c5, 0xf97c, 0xe46b, - 0xe57b, 0x003f, 0xea32, 0x003f, 0x003f, 0x003f, 0xede6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf340, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe5c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1f4, - 0x003f, 0x003f, 0x003f, 0xeced, 0x003f, 0xef52, 0x003f, 0xf1f5, - 0xe6fc, 0x003f, 0xf1bb, 0x003f, 0x003f, 0xf63b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf448, 0xf658, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe4e6, 0xf46d, 0xe2bf, 0x003f, 0xf0ac, 0x003f, - /* 0x8200 .. 0x82ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c0, 0x003f, 0xee38, - 0xf9e9, 0x003f, 0xe2c1, 0x003f, 0xeb6f, 0xea7c, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeb32, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf54f, 0xec91, 0x003f, 0xe7f1, 0xf3c7, - 0x003f, 0xe0b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf7fe, 0xe8ba, 0xe897, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf67c, 0xe86c, 0xf874, - 0x003f, 0xeb5f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xee39, 0x003f, 0xf2f3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf4ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf0fa, 0x003f, 0xf7e6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe06d, 0xe5de, - 0x003f, 0xe06e, 0xeae4, 0x003f, 0x003f, 0x003f, 0xee9f, 0x003f, - 0xf5ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed97, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xefe3, 0x003f, 0xf1cb, 0xe2e4, 0x003f, - 0x003f, 0x003f, 0xe763, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9b3, 0xe57c, 0x003f, 0x003f, 0xf449, 0x003f, 0xeab7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ce, 0xf8d8, 0x003f, - 0x003f, 0xe369, 0x003f, 0x003f, 0xe9d2, 0xf6f4, 0xeedc, 0xed35, - 0x003f, 0xf933, 0x003f, 0xe8bb, 0x003f, 0x003f, 0x003f, 0xf44a, - 0xeffd, 0xe35a, 0x003f, 0xf5d6, 0xe7c5, 0xed44, 0x003f, 0xf1a7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf04d, 0xeea0, 0x003f, 0xf6c4, 0xf5ad, 0x003f, 0xe7e0, - 0x003f, 0x003f, 0x003f, 0xe044, 0x003f, 0x003f, 0xf772, 0xe2c2, - 0x003f, 0xf14e, 0x003f, 0x003f, 0x003f, 0xedb4, 0xe1c8, 0xf258, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeec8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1c9, 0xf7b7, 0x003f, - /* 0x8300 .. 0x83ff */ - 0x003f, 0xf3e8, 0xe7f2, 0xe8f5, 0xe045, 0xe7c6, 0x003f, 0x003f, - 0x003f, 0xe759, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7ab, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1bc, 0x003f, 0x003f, 0xe764, 0x003f, 0x003f, 0x003f, 0xe96a, - 0x003f, 0xec4c, 0x003f, 0x003f, 0xf97d, 0xf170, 0xe4a0, 0x003f, - 0xefc7, 0xee3a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xec92, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf84b, - 0x003f, 0xf5ae, 0xf8aa, 0x003f, 0x003f, 0x003f, 0x003f, 0xf19d, - 0x003f, 0xf14f, 0xf968, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe575, 0x003f, 0x003f, 0x003f, 0xf7c3, - 0x003f, 0x003f, 0x003f, 0xf272, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6e9, 0xf1f6, 0x003f, 0x003f, 0x003f, 0xea7d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe17c, 0x003f, - 0xecee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef64, 0x003f, - 0x003f, 0x003f, 0xf89a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9b4, 0xed45, 0xe740, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe765, 0x003f, 0x003f, - 0x003f, 0xf57a, 0x003f, 0x003f, 0x003f, 0xe249, 0x003f, 0x003f, - 0x003f, 0xe671, 0xe2d2, 0x003f, 0xe346, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe232, 0x003f, 0x003f, 0xf4ee, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe95c, 0x003f, 0xe35b, 0x003f, 0x003f, 0x003f, 0xf934, - 0xe1ca, 0xe6d4, 0xea33, 0x003f, 0xed70, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf259, 0x003f, 0x003f, 0x003f, 0xec6d, 0x003f, 0x003f, - /* 0x8400 .. 0x84ff */ - 0x003f, 0x003f, 0x003f, 0xf5fe, 0xe53c, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5d1, 0x003f, 0xe792, 0xf753, 0xf067, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf5d7, 0x003f, 0x003f, 0xe74f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf9c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf0ad, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5aa, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeea8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf25a, - 0x003f, 0x003f, 0x003f, 0xe077, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf773, 0x003f, 0xe56d, 0x003f, 0x003f, 0xf068, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf8d9, 0xf1f7, 0x003f, 0x003f, 0xedb5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe33d, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xec4d, 0x003f, 0x003f, 0x003f, 0xecc8, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe7d5, 0x003f, 0x003f, 0xeaaa, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe8bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf774, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf3fa, 0x003f, 0x003f, 0xedb6, 0xf4ef, 0x003f, 0x003f, 0xf8da, - 0xebe0, 0x003f, 0xe7ac, 0x003f, 0xf5eb, 0x003f, 0xeb46, 0x003f, - 0x003f, 0xefc8, 0x003f, 0xe0cf, 0x003f, 0xecc9, 0x003f, 0x003f, - 0x003f, 0xea7e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xec4e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe991, 0x003f, 0xe635, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xec93, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a0, 0x003f, 0x003f, 0x003f, - /* 0x8500 .. 0x85ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe7a1, 0x003f, 0xe750, 0xe96b, 0x003f, 0x003f, 0xf1bd, - 0xeab8, 0x003f, 0xf035, 0x003f, 0x003f, 0x003f, 0xe6ad, 0x003f, - 0x003f, 0xf4f9, 0x003f, 0xf1f8, 0x003f, 0xf5c7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xebca, 0xf0e3, 0x003f, 0xf46e, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf75c, 0x003f, 0xf069, - 0x003f, 0xe4c6, 0x003f, 0xe8e6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf5af, 0x003f, 0x003f, 0x003f, 0x003f, 0xe292, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeffe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xec94, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2f2, 0xf6b9, 0xe7f3, 0x003f, 0x003f, 0xebcb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe86d, 0x003f, 0x003f, 0xe849, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0fb, - 0x003f, 0xe0b9, 0x003f, 0x003f, 0xf1f9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeb70, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf550, 0x003f, - 0xf9bc, 0xeab1, 0xecef, 0x003f, 0x003f, 0x003f, 0x003f, 0xeb33, - 0xf9b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf341, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe1cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf1be, 0x003f, 0x003f, 0x003f, 0xe5c0, 0xecf0, 0xf1fa, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefe4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ed, 0xeedd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe598, 0xedb7, 0x003f, 0x003f, - 0x003f, 0xe8e7, 0xec4f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf25b, - 0x003f, 0x003f, 0xe6f4, 0xf36d, 0x003f, 0x003f, 0x003f, 0xe23b, - /* 0x8600 .. 0x86ff */ - 0x003f, 0x003f, 0xeede, 0x003f, 0x003f, 0x003f, 0xe666, 0xebcc, - 0x003f, 0x003f, 0xef43, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedee, 0xe932, - 0x003f, 0x003f, 0xeb60, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8db, 0x003f, - 0xf7cb, 0x003f, 0x003f, 0x003f, 0xe0f3, 0xf535, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf858, 0xe667, 0x003f, 0xefe5, 0xf8dc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9d0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe835, 0x003f, 0xe8bd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf172, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe1f7, 0xf36e, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf659, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea91, - 0x003f, 0x003f, 0x003f, 0xe4b1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf97e, 0x003f, 0x003f, 0x003f, - 0x003f, 0xef53, 0x003f, 0xf3c8, 0x003f, 0x003f, 0x003f, 0xe293, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf7ed, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf496, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed46, 0x003f, - /* 0x8700 .. 0x87ff */ - 0xf5b9, 0x003f, 0xe992, 0xecf1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xef35, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf44b, 0x003f, 0xea34, 0x003f, 0xe85c, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe079, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecda, 0x003f, 0xf969, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf06a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7c4, 0x003f, - 0xeca4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf8dd, 0x003f, 0xf2ca, 0x003f, - 0xef54, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0d7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7ad, - 0x003f, 0x003f, 0xf8ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4d9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf66e, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe898, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeb61, 0x003f, 0x003f, 0xefa8, - 0x003f, 0x003f, 0xf5f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf83f, 0x003f, 0xf0fc, 0x003f, 0x003f, 0xeb7a, 0x003f, - /* 0x8800 .. 0x88ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecb2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5c5, - 0x003f, 0x003f, 0xf3e3, 0xe5ee, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe1cc, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1d9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe751, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf87c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3eb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf84c, 0xee72, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf875, 0xec9c, 0x003f, 0x003f, 0x003f, 0xe046, - 0x003f, 0xed47, 0x003f, 0xf06b, 0x003f, 0xf5fa, 0x003f, 0x003f, - 0x003f, 0xf8ac, 0xe2c3, 0xf0fd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf79c, 0x003f, 0x003f, 0xeab9, 0x003f, 0x003f, 0x003f, 0x003f, - 0xebf1, 0x003f, 0xe434, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5fb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe36a, 0xe36b, - 0x003f, 0xf04e, 0xe7b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe047, 0x003f, 0x003f, 0xe4e7, 0x003f, 0xf775, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe4b2, 0x003f, 0x003f, 0x003f, 0xec50, 0xf46f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf7ac, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1cd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf23e, 0xe63e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ea, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeee0, 0xf0ae, 0x003f, 0x003f, - 0x003f, 0xe2d9, 0x003f, 0x003f, 0xe95d, 0xf1fb, 0x003f, 0xea92, - 0x003f, 0xe6eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xea35, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xead7, 0xe8d0, 0xe8d1, 0x003f, 0x003f, - 0xe5a3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf342, 0x003f, 0x003f, - /* 0x8900 .. 0x89ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe96c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe078, 0x003f, 0xf776, 0xe95e, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf06c, 0xe8d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf6db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeca8, 0x003f, - 0xe6ae, 0x003f, 0x003f, 0xeb71, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe0ba, 0x003f, 0x003f, 0xedd1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe36c, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe5c1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe75a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeca9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeb34, - 0x003f, 0xefa9, 0x003f, 0xe4c7, 0x003f, 0x003f, 0xe96d, 0xf73e, - 0x003f, 0x003f, 0x003f, 0xe148, 0x003f, 0x003f, 0x003f, 0xe33e, - 0x003f, 0x003f, 0x003f, 0xe794, 0x003f, 0x003f, 0xecca, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe13f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe53d, 0xf661, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe35c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe056, 0x003f, 0x003f, 0xe5c2, 0x003f, 0x003f, - 0xe24a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe057, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf840, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xead8, 0x003f, 0x003f, 0x003f, - 0xf5ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8a00 .. 0x8aff */ - 0xedeb, 0x003f, 0xf2f4, 0xe9b5, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1aa, 0x003f, 0xecf2, 0x003f, 0xf8f7, 0x003f, 0xf6d0, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9ba, 0x003f, 0x003f, 0xf9e1, 0xf6a0, - 0xe3c0, 0x003f, 0x003f, 0xef55, 0x003f, 0xed48, 0x003f, 0xebe8, - 0x003f, 0x003f, 0x003f, 0xe151, 0x003f, 0xe47d, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe8be, 0x003f, 0x003f, 0xeb72, 0x003f, 0x003f, - 0x003f, 0xf859, 0x003f, 0x003f, 0xebcd, 0x003f, 0xe048, 0x003f, - 0x003f, 0x003f, 0xf470, 0xf3c9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xea93, 0x003f, 0x003f, 0x003f, 0xf36f, 0xf754, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf25c, 0x003f, 0x003f, 0xea94, 0x003f, - 0xeec9, 0x003f, 0xec95, 0xeee1, 0x003f, 0x003f, 0xeccb, 0x003f, - 0x003f, 0xeccc, 0x003f, 0x003f, 0x003f, 0xe2f8, 0xf2ac, 0x003f, - 0xf9fe, 0xf935, 0xf841, 0xead9, 0x003f, 0xeb62, 0x003f, 0x003f, - 0x003f, 0xf56a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ca, 0x003f, 0xe233, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf44c, 0xf173, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeb35, 0x003f, 0xf6ab, 0x003f, 0x003f, - 0xf0af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedde, 0x003f, - 0xeba4, 0xe1ab, 0x003f, 0xe7f4, 0xef36, 0xe1ce, 0xebe9, 0x003f, - 0xf991, 0x003f, 0xeb73, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xec51, 0x003f, 0xe234, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xea36, 0x003f, 0x003f, 0xf0fe, 0x003f, 0xf0dd, 0xf370, - 0x003f, 0x003f, 0xf56b, 0x003f, 0xec96, 0x003f, 0x003f, 0xe4c8, - 0x003f, 0x003f, 0x003f, 0xf57b, 0x003f, 0xf245, 0x003f, 0xf5d8, - 0x003f, 0x003f, 0xe5df, 0x003f, 0x003f, 0x003f, 0xe675, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf0b0, 0xf573, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeccd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf596, 0xf842, - 0x003f, 0x003f, 0xf2f5, 0xe06f, 0x003f, 0xf0b1, 0xf1bf, 0x003f, - 0x003f, 0xf9c9, 0x003f, 0x003f, 0x003f, 0x003f, 0xed36, 0xf7a4, - 0xf343, 0x003f, 0xedec, 0x003f, 0x003f, 0x003f, 0xe3e7, 0x003f, - /* 0x8b00 .. 0x8bff */ - 0xe7c7, 0xed67, 0xf06d, 0x003f, 0xe599, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe84a, 0x003f, - 0xe85d, 0x003f, 0x003f, 0x003f, 0xf7cc, 0x003f, 0xebda, 0xe8bf, - 0x003f, 0xe155, 0xf160, 0xe0bb, 0x003f, 0xea95, 0x003f, 0x003f, - 0xefaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7c8, 0x003f, 0x003f, 0xf273, 0xe6bd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2c4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe35d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf936, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3fb, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9d2, 0xe3c1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xecdb, 0x003f, 0xe4c9, 0x003f, 0xe95f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe17d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xea37, 0x003f, 0x003f, 0xee4b, - 0xf131, 0x003f, 0x003f, 0x003f, 0xe149, 0x003f, 0x003f, 0xf8de, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee2, 0x003f, 0x003f, - 0xe551, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe938, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xec52, 0x003f, 0xf4d8, 0xedd3, 0x003f, 0x003f, 0xf4d9, 0x003f, - 0x003f, 0x003f, 0xf4c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8c00 .. 0x8cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1db, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ac, - 0x003f, 0xf953, 0x003f, 0x003f, 0x003f, 0x003f, 0xe577, 0x003f, - 0xe3c2, 0x003f, 0xf7a5, 0x003f, 0xef65, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecce, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe55a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeada, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8df, 0xeee3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf79d, 0xeccf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf5b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe777, 0x003f, 0xe7c9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf73f, 0xf2f6, 0x003f, - 0xe9b6, 0xf23f, 0xe1f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xea48, - 0xf937, 0xf6fc, 0xf6b1, 0xe24b, 0xf531, 0x003f, 0x003f, 0xf25d, - 0xebae, 0x003f, 0x003f, 0xf153, 0xe2fe, 0x003f, 0xf74f, 0xe772, - 0xe4e8, 0x003f, 0x003f, 0xea38, 0xf574, 0xf152, 0x003f, 0xe7f5, - 0xf7c5, 0xe9d3, 0xe693, 0xf19e, 0xf992, 0x003f, 0x003f, 0xf1c0, - 0xe049, 0x003f, 0xf274, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf471, 0x003f, 0xea49, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe694, 0x003f, 0xea96, 0x003f, 0xeadb, 0x003f, - 0xe8d3, 0x003f, 0xf877, 0xe773, 0xf551, 0x003f, 0xe9b7, 0x003f, - 0x003f, 0x003f, 0xf497, 0x003f, 0x003f, 0xe53e, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe695, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe9b8, 0xe2c5, 0xeadf, 0x003f, 0x003f, - /* 0x8d00 .. 0x8dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xf44e, 0xf631, 0x003f, 0xf0cb, - 0xf3fc, 0x003f, 0xf4c7, 0x003f, 0x003f, 0xeb7b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf1fc, 0x003f, 0x003f, 0xebdb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf275, 0x003f, 0xea97, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf863, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf3cb, 0x003f, 0x003f, 0xe33f, 0xe9b9, 0x003f, 0x003f, 0xe3c3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5b1, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf056, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf371, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf63c, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf37b, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9ba, 0x003f, 0x003f, 0x003f, 0xf44f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6c5, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8a2, 0xf498, 0x003f, 0x003f, 0xe04a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf6f5, 0x003f, 0xe0e5, 0x003f, 0x003f, - 0x003f, 0xf276, 0x003f, 0xeb63, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe235, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe668, - 0x003f, 0x003f, 0x003f, 0xe53f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8e00 .. 0x8eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xefc9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ce, - 0xf552, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf0b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3a2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf0b3, 0x003f, 0xf344, 0x003f, 0x003f, 0xe0f4, - 0xe540, 0xf4b2, 0xf8b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf5ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf277, - 0xf542, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf5ed, 0x003f, 0xe2f3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf372, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf25e, - 0x003f, 0x003f, 0xf3cc, 0x003f, 0x003f, 0xedb8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6f5, 0xecf3, 0xe2e5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf4b3, 0xed68, 0xe2f9, 0xe2da, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf85d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee73, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf472, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5ee, 0x003f, 0x003f, 0xe04b, 0x003f, 0x003f, 0xecdc, 0x003f, - /* 0x8f00 .. 0x8fff */ - 0x003f, 0x003f, 0x003f, 0xe294, 0x003f, 0xe669, 0x003f, 0x003f, - 0x003f, 0xf240, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf575, 0xe752, 0xe960, 0xe17e, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5e0, 0xf65a, 0xf9ca, 0xe766, 0xf55f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe636, 0xe94e, - 0x003f, 0xe8d4, 0xe6c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4a0, - 0x003f, 0x003f, 0x003f, 0xf3cd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xec53, 0xe96e, 0x003f, 0xe96f, 0x003f, 0x003f, 0xf2ad, 0xee3b, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf7dd, 0xf04f, 0x003f, 0x003f, - 0x003f, 0xf2ae, 0x003f, 0x003f, 0x003f, 0xf560, 0xe295, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee3c, 0x003f, 0xe26e, - 0x003f, 0x003f, 0xe5f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xecf4, 0xe1d0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5b8, 0x003f, 0x003f, 0xf6fd, 0x003f, - 0xe939, 0x003f, 0x003f, 0x003f, 0x003f, 0xea98, 0x003f, 0xe93a, - 0xf473, 0xefb4, 0xe46c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xefe6, 0x003f, 0x003f, 0xecf6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeca, 0x003f, - 0x003f, 0xe35e, 0x003f, 0x003f, 0xe899, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe04c, 0x003f, - 0x003f, 0x003f, 0xf278, 0xe86e, 0x003f, 0xf499, 0x003f, 0x003f, - 0xec9d, 0x003f, 0xe136, 0x003f, 0x003f, 0x003f, 0x003f, 0xe84b, - 0x003f, 0xf279, 0x003f, 0x003f, 0x003f, 0xf5da, 0x003f, 0x003f, - /* 0x9000 .. 0x90ff */ - 0xf6dc, 0xebea, 0xe251, 0xe541, 0x003f, 0xf9b1, 0xee4d, 0x003f, - 0xf8ad, 0x003f, 0x003f, 0xf777, 0x003f, 0xebce, 0x003f, 0xf6e2, - 0xf5ef, 0xe2c7, 0x003f, 0x003f, 0xe542, 0xe191, 0x003f, 0xe578, - 0x003f, 0xf25f, 0xf6d7, 0x003f, 0x003f, 0xeb36, 0xe651, 0xebdc, - 0xf373, 0xf3e4, 0xe993, 0xe637, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf597, 0x003f, - 0x003f, 0xf3ce, 0xf474, 0x003f, 0x003f, 0xe340, 0x003f, 0x003f, - 0xf191, 0x003f, 0x003f, 0x003f, 0xf7ba, 0x003f, 0xf0b5, 0x003f, - 0x003f, 0xe57d, 0xec54, 0x003f, 0x003f, 0x003f, 0x003f, 0xefe7, - 0x003f, 0x003f, 0xf0b4, 0xf031, 0x003f, 0xf74c, 0xe236, 0x003f, - 0xf7c6, 0xf96a, 0x003f, 0xe543, 0xe4b9, 0xf06e, 0x003f, 0x003f, - 0x003f, 0xefab, 0x003f, 0x003f, 0xebe1, 0xe4cf, 0xf598, 0x003f, - 0xf050, 0xebcf, 0x003f, 0xe14a, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf27a, 0x003f, 0x003f, 0x003f, 0xf374, 0xf4b4, 0xe57e, - 0x003f, 0x003f, 0xf450, 0x003f, 0x003f, 0xf3e5, 0x003f, 0xf553, - 0xeb64, 0x003f, 0xf0b6, 0x003f, 0xe6a1, 0xe0e8, 0x003f, 0xf7ad, - 0xefad, 0xe774, 0xf843, 0xec55, 0xf94d, 0x003f, 0x003f, 0xf154, - 0xe741, 0x003f, 0xe93b, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a4, - 0x003f, 0xf0e9, 0x003f, 0x003f, 0x003f, 0xef4b, 0x003f, 0x003f, - 0x003f, 0xe767, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8ae, 0xe3e1, 0x003f, 0x003f, 0xe8c0, 0x003f, - 0xf5be, 0x003f, 0xea99, 0x003f, 0x003f, 0x003f, 0x003f, 0xe09d, - 0xf6c6, 0xe2c8, 0x003f, 0x003f, 0x003f, 0xebd0, 0x003f, 0x003f, - 0xf260, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeff4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe296, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5cd, 0x003f, - 0x003f, 0xe2db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9bb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe23c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefe8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe544, 0x003f, 0x003f, - /* 0x9100 .. 0x91ff */ - 0x003f, 0x003f, 0xed57, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf5db, 0x003f, 0x003f, 0xf851, 0x003f, 0x003f, - 0x003f, 0xea39, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe59a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2f7, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe4b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf0b7, 0xf2f8, 0xf5dc, 0xf1cc, 0xe8d5, 0xf3cf, 0x003f, - 0x003f, 0x003f, 0xf3d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf5b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe7ae, 0xe5ac, 0x003f, 0xec56, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9a3, 0x003f, 0xf8e5, - 0xeaab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xec97, - 0x003f, 0xf63d, 0x003f, 0xf5b3, 0x003f, 0xf345, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeba5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf5dd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf132, 0xf1fd, 0x003f, 0xf5b4, 0xf8b8, - 0x003f, 0xe8a3, 0x003f, 0x003f, 0xe65a, 0xe0d9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xedd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4fa, - 0x003f, 0xf0b8, 0x003f, 0xeb47, 0xe6ec, 0xf3ec, 0xedaf, 0xe5e1, - 0xe6ed, 0xe3d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf2, - 0xf2f9, 0x003f, 0x003f, 0x003f, 0xe9bc, 0xf66c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf375, 0x003f, 0x003f, 0x003f, 0xf554, - 0x003f, 0x003f, 0xefe9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4fb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9200 .. 0x92ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe591, 0x003f, 0x003f, - 0xe132, 0xf6fe, 0xeabc, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0cd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe347, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe652, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xef3d, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2af, - 0xe0a5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e9, 0x003f, 0x003f, - 0x003f, 0xf878, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe156, - 0x003f, 0x003f, 0x003f, 0xee77, 0x003f, 0x003f, 0xf057, 0x003f, - 0x003f, 0x003f, 0xe8a4, 0x003f, 0xe2c9, 0xec9e, 0xf2fa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf0de, 0x003f, 0x003f, 0xf5c8, 0x003f, 0xe56e, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeb65, 0x003f, 0xf2b0, 0x003f, 0x003f, 0xec57, 0x003f, - 0xe7af, 0x003f, 0x003f, 0x003f, 0xf7e7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeee5, 0x003f, 0x003f, 0xe2ca, 0xebd1, - 0x003f, 0xec58, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf2fb, 0x003f, 0x003f, 0xf89b, - 0x003f, 0x003f, 0xe994, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeb37, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf778, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0ea, 0x003f, 0x003f, 0x003f, 0xe0bc, 0x003f, 0x003f, 0x003f, - /* 0x9300 .. 0x93ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xe672, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5df, 0x003f, 0xf246, 0x003f, 0x003f, 0x003f, 0xec98, 0xe4ca, - 0xf2fc, 0xe3c4, 0xf2b1, 0x003f, 0xe3c5, 0x003f, 0xe36e, 0x003f, - 0xe7e1, 0x003f, 0x003f, 0xeb48, 0x003f, 0x003f, 0xe1d1, 0xf4b9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeecc, 0x003f, 0xe638, 0xe237, 0x003f, 0xe545, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xed58, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4b4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0b9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf66d, 0x003f, 0xf3a3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe157, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xefca, 0x003f, 0xebf0, 0x003f, - 0x003f, 0x003f, 0xf5e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf8af, 0x003f, 0x003f, 0x003f, 0xe0d1, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf8e0, 0xf475, 0x003f, 0x003f, - 0xf192, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf37c, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf27b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefcb, 0x003f, - 0x003f, 0xe192, 0x003f, 0x003f, 0xe6af, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4a1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9400 .. 0x94ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xf997, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf3a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeb66, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf2b2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf561, 0x003f, 0x003f, - 0xf6a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf3d1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe09e, 0xe09f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe25e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4c8, 0x003f, 0xf4ba, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9500 .. 0x95ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1fe, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe836, 0x003f, 0x003f, 0xeb7c, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf75d, 0x003f, 0xe0d2, 0x003f, 0x003f, 0x003f, 0xf0ce, - 0x003f, 0xf7d8, 0xf7d9, 0xe070, 0xe85a, 0x003f, 0x003f, 0x003f, - 0xe0a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe058, 0xf7ee, 0xe8ec, 0x003f, 0x003f, - 0xe341, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ef, 0x003f, 0x003f, - 0x003f, 0xee95, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeea2, 0xed69, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed71, - 0x003f, 0x003f, 0xf954, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf7ef, 0xe2f4, 0xf6e6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe24c, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf555, 0xe933, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9600 .. 0x96ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9bd, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf556, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf731, 0x003f, 0x003f, 0x003f, 0xef66, 0x003f, - 0x003f, 0x003f, 0xe8c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf376, 0x003f, 0x003f, 0x003f, 0xed49, - 0xf67d, 0x003f, 0xf7ae, 0x003f, 0xe9be, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6b0, 0xe778, 0xe0bd, 0x003f, 0x003f, - 0xf7da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf75e, 0xf7f0, 0xeb7d, 0xecb3, 0xf543, - 0x003f, 0x003f, 0xf052, 0xf476, 0xf346, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe8d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf0e4, 0x003f, 0x003f, 0xf477, 0x003f, 0xe6d5, 0xe546, 0xf7e8, - 0xe6c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xedd5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefea, 0xe6cc, 0x003f, - 0x003f, 0x003f, 0xe4e9, 0xec59, 0x003f, 0xf96b, 0xe1ad, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe140, 0xf032, 0x003f, 0x003f, - 0xed98, 0xe350, 0x003f, 0xf347, 0xf231, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6f6, 0x003f, 0x003f, 0x003f, 0xec5a, - 0xec5b, 0x003f, 0xf85f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf0df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe65b, - 0x003f, 0x003f, 0x003f, 0xf544, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1cd, 0xed62, 0x003f, 0x003f, 0xf039, 0xed4a, 0xf4a2, 0xe1d2, - 0x003f, 0xf65b, 0x003f, 0xf3e6, 0xf1c1, 0xef4c, 0xf261, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf377, 0xec5c, 0x003f, - 0x003f, 0xed3a, 0x003f, 0xf5e1, 0xf1da, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6ee, 0xe3f1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefeb, 0xefec, 0xeb74, 0x003f, 0x003f, 0x003f, 0x003f, 0xe837, - 0xe9d4, 0x003f, 0xf033, 0x003f, 0x003f, 0x003f, 0xe653, 0xe696, - 0x003f, 0xe86f, 0x003f, 0xf2b3, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9700 .. 0x97ff */ - 0xec5d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2fd, 0xf478, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2c5, 0x003f, 0xeee7, 0x003f, 0x003f, 0xe6fd, 0x003f, - 0x003f, 0xeece, 0x003f, 0x003f, 0xeadc, 0x003f, 0xf7c7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeaac, 0x003f, 0xe66a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe934, 0x003f, 0x003f, 0x003f, 0xf348, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5fa, 0x003f, 0xed99, 0x003f, 0x003f, 0x003f, - 0xe654, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf57c, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2fe, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf331, 0x003f, 0xea3a, 0x003f, - 0x003f, 0xe84c, 0xe79e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf864, 0x003f, 0x003f, 0x003f, 0xf175, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf938, 0x003f, 0x003f, 0xf176, - 0x003f, 0x003f, 0xe75b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf8b9, 0x003f, 0xed63, 0x003f, 0xe1f9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe07a, 0x003f, 0x003f, 0xe2d4, 0x003f, 0xf74d, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf557, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf06f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf7db, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe547, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf0e5, 0x003f, 0x003f, 0xebd2, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf034, 0x003f, 0x003f, 0x003f, 0xf852, - /* 0x9800 .. 0x98ff */ - 0xf8e1, 0xf87d, 0xf332, 0xe193, 0x003f, 0xf833, 0xec99, 0x003f, - 0xec5e, 0x003f, 0xeff5, 0x003f, 0xebeb, 0x003f, 0x003f, 0x003f, - 0xeee8, 0xef67, 0xe89a, 0xe55b, 0x003f, 0x003f, 0x003f, 0xf6f6, - 0xe655, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe579, 0x003f, 0x003f, - 0xf89c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe194, 0xf6dd, 0x003f, 0xea4a, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe238, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf349, 0xeda0, 0xed59, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xed64, 0x003f, 0x003f, 0x003f, - 0xf053, 0x003f, 0xf2b4, 0x003f, 0x003f, 0x003f, 0xe6be, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8e2, 0x003f, 0xe1d3, - 0x003f, 0x003f, 0x003f, 0xf2b5, 0x003f, 0x003f, 0x003f, 0xf879, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf7a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeabd, - 0x003f, 0xf6c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf79f, 0x003f, 0x003f, 0xf79e, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xea3b, 0xe8e8, 0x003f, 0x003f, 0xecdd, - 0x003f, 0xebe2, 0xe3c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf660, 0xf0e6, 0xe89b, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf157, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xea9a, 0xf779, 0xecde, 0x003f, - /* 0x9900 .. 0x99ff */ - 0x003f, 0x003f, 0x003f, 0xe297, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf853, 0xedd7, 0x003f, 0xf158, 0x003f, 0x003f, 0x003f, - 0xf4c9, 0x003f, 0x003f, 0xed4b, 0x003f, 0x003f, 0x003f, 0x003f, - 0xee3e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2b6, 0x003f, - 0xe94f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe24d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe753, 0x003f, 0x003f, - 0x003f, 0xe35f, 0x003f, 0xe2fa, 0xf4ca, 0xeb67, 0x003f, 0x003f, - 0x003f, 0xe3c7, 0xefae, 0x003f, 0xef4d, 0x003f, 0x003f, 0xf854, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xec5f, 0x003f, - 0x003f, 0xf855, 0x003f, 0x003f, 0x003f, 0xf7b8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe970, 0x003f, 0x003f, - 0xf8b0, 0x003f, 0x003f, 0x003f, 0xe739, 0xeddf, 0xf7a7, 0x003f, - 0x003f, 0xf67e, 0x003f, 0xf65c, 0xec9a, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf193, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe870, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf3d2, 0xe45c, 0xe2cb, 0x003f, 0x003f, 0xe04d, 0x003f, 0x003f, - 0x003f, 0xe9bf, 0x003f, 0x003f, 0x003f, 0xf691, 0x003f, 0xea9b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf844, 0x003f, 0x003f, - 0x003f, 0xe5ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3e7, - /* 0x9a00 .. 0x9aff */ - 0x003f, 0xea4e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe950, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3c8, 0xe3c9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf74e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0f6, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe59b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5e2, 0xebd3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe779, 0x003f, 0x003f, 0xf7a0, 0x003f, 0xe2cc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9a4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe298, 0x003f, 0xf860, - 0x003f, 0x003f, 0xe195, 0xee4e, 0x003f, 0x003f, 0x003f, 0xf63e, - 0x003f, 0x003f, 0xe5f0, 0x003f, 0x003f, 0xe3ca, 0x003f, 0x003f, - 0x003f, 0xf94e, 0xe5f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf845, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xec60, 0xf599, 0x003f, 0x003f, 0x003f, - 0xe1d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeea3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9b00 .. 0x9bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xec61, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a2, - 0x003f, 0x003f, 0xf6e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf036, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe331, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe26a, 0xf8eb, 0xe8a6, 0xe8de, 0xe775, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf070, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe73a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xede0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe66b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c6, 0x003f, - 0x003f, 0xf77a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed65, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe299, 0x003f, 0x003f, 0xeb68, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf57d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e6, 0x003f, 0x003f, 0x003f, - 0xe196, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9c00 .. 0x9cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5e3, 0x003f, 0x003f, - 0xed5a, 0x003f, 0xe971, 0x003f, 0x003f, 0xf7c8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf94f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xef37, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe754, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0be, - 0x003f, 0xe93e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf378, 0x003f, 0xe9c0, - 0x003f, 0xe2cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe995, 0xe7b0, 0x003f, 0xee79, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9d00 .. 0x9dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xed4c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf054, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed7c, 0x003f, - 0xed75, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf8f8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe14b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed4d, 0x003f, 0x003f, - 0xe1dc, 0xe7f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9df, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe7d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeda3, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf7cd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ae, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ce, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf63f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf9d3, 0xf0ed, 0xe66c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9e00 .. 0x9eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeda4, 0x003f, 0x003f, 0x003f, 0xe5b6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe66d, 0x003f, 0x003f, - 0x003f, 0xf7e9, 0x003f, 0x003f, 0x003f, 0xeea4, 0x003f, 0xe673, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3cb, 0xe674, 0x003f, 0x003f, 0x003f, 0xe5f2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea9c, 0x003f, 0xe6f8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe77a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d5, 0xe79f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe73b, 0x003f, 0x003f, 0xf9cb, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf96c, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeb38, 0xe5f3, 0x003f, - 0x003f, 0xf9d9, 0x003f, 0x003f, 0xe133, 0x003f, 0x003f, 0x003f, - 0xe7f9, 0x003f, 0x003f, 0xe4ea, 0xf5f5, 0x003f, 0xf2c7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe84d, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9f00 .. 0x9fff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef38, - 0xe93f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf333, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe1d5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeb39, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xea3c, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf34a, 0xf241, 0x003f, 0x003f, 0xf242, 0x003f, - 0x003f, 0x003f, 0xf65d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf262, - 0x003f, 0xe656, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeb75, - 0x003f, 0x003f, 0xf4bb, 0x003f, 0xede1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed5b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a3, 0x003f, 0x003f, - 0xe8c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2cf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xac00 .. 0xacff */ - 0x8861, 0x8862, 0x8863, 0x8864, 0x8865, 0x8866, 0x8867, 0x8868, - 0x8869, 0x886a, 0x886b, 0x886c, 0x886d, 0x886e, 0x886f, 0x8870, - 0x8871, 0x8873, 0x8874, 0x8875, 0x8876, 0x8877, 0x8878, 0x8879, - 0x887a, 0x887b, 0x887c, 0x887d, 0x8881, 0x8882, 0x8883, 0x8884, - 0x8885, 0x8886, 0x8887, 0x8888, 0x8889, 0x888a, 0x888b, 0x888c, - 0x888d, 0x888e, 0x888f, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, - 0x8896, 0x8897, 0x8898, 0x8899, 0x889a, 0x889b, 0x889c, 0x889d, - 0x88a1, 0x88a2, 0x88a3, 0x88a4, 0x88a5, 0x88a6, 0x88a7, 0x88a8, - 0x88a9, 0x88aa, 0x88ab, 0x88ac, 0x88ad, 0x88ae, 0x88af, 0x88b0, - 0x88b1, 0x88b3, 0x88b4, 0x88b5, 0x88b6, 0x88b7, 0x88b8, 0x88b9, - 0x88ba, 0x88bb, 0x88bc, 0x88bd, 0x88c1, 0x88c2, 0x88c3, 0x88c4, - 0x88c5, 0x88c6, 0x88c7, 0x88c8, 0x88c9, 0x88ca, 0x88cb, 0x88cc, - 0x88cd, 0x88ce, 0x88cf, 0x88d0, 0x88d1, 0x88d3, 0x88d4, 0x88d5, - 0x88d6, 0x88d7, 0x88d8, 0x88d9, 0x88da, 0x88db, 0x88dc, 0x88dd, - 0x88e1, 0x88e2, 0x88e3, 0x88e4, 0x88e5, 0x88e6, 0x88e7, 0x88e8, - 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f0, - 0x88f1, 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0x88f7, 0x88f8, 0x88f9, - 0x88fa, 0x88fb, 0x88fc, 0x88fd, 0x8941, 0x8942, 0x8943, 0x8944, - 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, 0x894a, 0x894b, 0x894c, - 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, 0x8953, 0x8954, 0x8955, - 0x8956, 0x8957, 0x8958, 0x8959, 0x895a, 0x895b, 0x895c, 0x895d, - 0x8961, 0x8962, 0x8963, 0x8964, 0x8965, 0x8966, 0x8967, 0x8968, - 0x8969, 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, 0x8970, - 0x8971, 0x8973, 0x8974, 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, - 0x897a, 0x897b, 0x897c, 0x897d, 0x8981, 0x8982, 0x8983, 0x8984, - 0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0x898a, 0x898b, 0x898c, - 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8993, 0x8994, 0x8995, - 0x8996, 0x8997, 0x8998, 0x8999, 0x899a, 0x899b, 0x899c, 0x899d, - 0x89a1, 0x89a2, 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, - 0x89a9, 0x89aa, 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, - 0x89b1, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, - 0x89ba, 0x89bb, 0x89bc, 0x89bd, 0x89c1, 0x89c2, 0x89c3, 0x89c4, - /* 0xad00 .. 0xadff */ - 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0x89ca, 0x89cb, 0x89cc, - 0x89cd, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x89d3, 0x89d4, 0x89d5, - 0x89d6, 0x89d7, 0x89d8, 0x89d9, 0x89da, 0x89db, 0x89dc, 0x89dd, - 0x89e1, 0x89e2, 0x89e3, 0x89e4, 0x89e5, 0x89e6, 0x89e7, 0x89e8, - 0x89e9, 0x89ea, 0x89eb, 0x89ec, 0x89ed, 0x89ee, 0x89ef, 0x89f0, - 0x89f1, 0x89f3, 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, - 0x89fa, 0x89fb, 0x89fc, 0x89fd, 0x8a41, 0x8a42, 0x8a43, 0x8a44, - 0x8a45, 0x8a46, 0x8a47, 0x8a48, 0x8a49, 0x8a4a, 0x8a4b, 0x8a4c, - 0x8a4d, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a53, 0x8a54, 0x8a55, - 0x8a56, 0x8a57, 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, - 0x8a61, 0x8a62, 0x8a63, 0x8a64, 0x8a65, 0x8a66, 0x8a67, 0x8a68, - 0x8a69, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, - 0x8a71, 0x8a73, 0x8a74, 0x8a75, 0x8a76, 0x8a77, 0x8a78, 0x8a79, - 0x8a7a, 0x8a7b, 0x8a7c, 0x8a7d, 0x8a81, 0x8a82, 0x8a83, 0x8a84, - 0x8a85, 0x8a86, 0x8a87, 0x8a88, 0x8a89, 0x8a8a, 0x8a8b, 0x8a8c, - 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a93, 0x8a94, 0x8a95, - 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, 0x8a9c, 0x8a9d, - 0x8aa1, 0x8aa2, 0x8aa3, 0x8aa4, 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, - 0x8aa9, 0x8aaa, 0x8aab, 0x8aac, 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, - 0x8ab1, 0x8ab3, 0x8ab4, 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, - 0x8aba, 0x8abb, 0x8abc, 0x8abd, 0x8ac1, 0x8ac2, 0x8ac3, 0x8ac4, - 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb, 0x8acc, - 0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad3, 0x8ad4, 0x8ad5, - 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb, 0x8adc, 0x8add, - 0x8ae1, 0x8ae2, 0x8ae3, 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, - 0x8ae9, 0x8aea, 0x8aeb, 0x8aec, 0x8aed, 0x8aee, 0x8aef, 0x8af0, - 0x8af1, 0x8af3, 0x8af4, 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, - 0x8afa, 0x8afb, 0x8afc, 0x8afd, 0x8b41, 0x8b42, 0x8b43, 0x8b44, - 0x8b45, 0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, - 0x8b4d, 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b53, 0x8b54, 0x8b55, - 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, - 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, 0x8b66, 0x8b67, 0x8b68, - /* 0xae00 .. 0xaeff */ - 0x8b69, 0x8b6a, 0x8b6b, 0x8b6c, 0x8b6d, 0x8b6e, 0x8b6f, 0x8b70, - 0x8b71, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, 0x8b78, 0x8b79, - 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, 0x8b81, 0x8b82, 0x8b83, 0x8b84, - 0x8b85, 0x8b86, 0x8b87, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, - 0x8b8d, 0x8b8e, 0x8b8f, 0x8b90, 0x8b91, 0x8b93, 0x8b94, 0x8b95, - 0x8b96, 0x8b97, 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, - 0x8ba1, 0x8ba2, 0x8ba3, 0x8ba4, 0x8ba5, 0x8ba6, 0x8ba7, 0x8ba8, - 0x8ba9, 0x8baa, 0x8bab, 0x8bac, 0x8bad, 0x8bae, 0x8baf, 0x8bb0, - 0x8bb1, 0x8bb3, 0x8bb4, 0x8bb5, 0x8bb6, 0x8bb7, 0x8bb8, 0x8bb9, - 0x8bba, 0x8bbb, 0x8bbc, 0x8bbd, 0x8c61, 0x8c62, 0x8c63, 0x8c64, - 0x8c65, 0x8c66, 0x8c67, 0x8c68, 0x8c69, 0x8c6a, 0x8c6b, 0x8c6c, - 0x8c6d, 0x8c6e, 0x8c6f, 0x8c70, 0x8c71, 0x8c73, 0x8c74, 0x8c75, - 0x8c76, 0x8c77, 0x8c78, 0x8c79, 0x8c7a, 0x8c7b, 0x8c7c, 0x8c7d, - 0x8c81, 0x8c82, 0x8c83, 0x8c84, 0x8c85, 0x8c86, 0x8c87, 0x8c88, - 0x8c89, 0x8c8a, 0x8c8b, 0x8c8c, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90, - 0x8c91, 0x8c93, 0x8c94, 0x8c95, 0x8c96, 0x8c97, 0x8c98, 0x8c99, - 0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d, 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, - 0x8ca5, 0x8ca6, 0x8ca7, 0x8ca8, 0x8ca9, 0x8caa, 0x8cab, 0x8cac, - 0x8cad, 0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0x8cb3, 0x8cb4, 0x8cb5, - 0x8cb6, 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, - 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, 0x8cc6, 0x8cc7, 0x8cc8, - 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0, - 0x8cd1, 0x8cd3, 0x8cd4, 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, - 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, - 0x8ce5, 0x8ce6, 0x8ce7, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, - 0x8ced, 0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf3, 0x8cf4, 0x8cf5, - 0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, - 0x8d41, 0x8d42, 0x8d43, 0x8d44, 0x8d45, 0x8d46, 0x8d47, 0x8d48, - 0x8d49, 0x8d4a, 0x8d4b, 0x8d4c, 0x8d4d, 0x8d4e, 0x8d4f, 0x8d50, - 0x8d51, 0x8d53, 0x8d54, 0x8d55, 0x8d56, 0x8d57, 0x8d58, 0x8d59, - 0x8d5a, 0x8d5b, 0x8d5c, 0x8d5d, 0x8d61, 0x8d62, 0x8d63, 0x8d64, - 0x8d65, 0x8d66, 0x8d67, 0x8d68, 0x8d69, 0x8d6a, 0x8d6b, 0x8d6c, - /* 0xaf00 .. 0xafff */ - 0x8d6d, 0x8d6e, 0x8d6f, 0x8d70, 0x8d71, 0x8d73, 0x8d74, 0x8d75, - 0x8d76, 0x8d77, 0x8d78, 0x8d79, 0x8d7a, 0x8d7b, 0x8d7c, 0x8d7d, - 0x8d81, 0x8d82, 0x8d83, 0x8d84, 0x8d85, 0x8d86, 0x8d87, 0x8d88, - 0x8d89, 0x8d8a, 0x8d8b, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, 0x8d90, - 0x8d91, 0x8d93, 0x8d94, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, - 0x8d9a, 0x8d9b, 0x8d9c, 0x8d9d, 0x8da1, 0x8da2, 0x8da3, 0x8da4, - 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0x8dab, 0x8dac, - 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db1, 0x8db3, 0x8db4, 0x8db5, - 0x8db6, 0x8db7, 0x8db8, 0x8db9, 0x8dba, 0x8dbb, 0x8dbc, 0x8dbd, - 0x8dc1, 0x8dc2, 0x8dc3, 0x8dc4, 0x8dc5, 0x8dc6, 0x8dc7, 0x8dc8, - 0x8dc9, 0x8dca, 0x8dcb, 0x8dcc, 0x8dcd, 0x8dce, 0x8dcf, 0x8dd0, - 0x8dd1, 0x8dd3, 0x8dd4, 0x8dd5, 0x8dd6, 0x8dd7, 0x8dd8, 0x8dd9, - 0x8dda, 0x8ddb, 0x8ddc, 0x8ddd, 0x8de1, 0x8de2, 0x8de3, 0x8de4, - 0x8de5, 0x8de6, 0x8de7, 0x8de8, 0x8de9, 0x8dea, 0x8deb, 0x8dec, - 0x8ded, 0x8dee, 0x8def, 0x8df0, 0x8df1, 0x8df3, 0x8df4, 0x8df5, - 0x8df6, 0x8df7, 0x8df8, 0x8df9, 0x8dfa, 0x8dfb, 0x8dfc, 0x8dfd, - 0x8e41, 0x8e42, 0x8e43, 0x8e44, 0x8e45, 0x8e46, 0x8e47, 0x8e48, - 0x8e49, 0x8e4a, 0x8e4b, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, - 0x8e51, 0x8e53, 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e59, - 0x8e5a, 0x8e5b, 0x8e5c, 0x8e5d, 0x8e61, 0x8e62, 0x8e63, 0x8e64, - 0x8e65, 0x8e66, 0x8e67, 0x8e68, 0x8e69, 0x8e6a, 0x8e6b, 0x8e6c, - 0x8e6d, 0x8e6e, 0x8e6f, 0x8e70, 0x8e71, 0x8e73, 0x8e74, 0x8e75, - 0x8e76, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b, 0x8e7c, 0x8e7d, - 0x8e81, 0x8e82, 0x8e83, 0x8e84, 0x8e85, 0x8e86, 0x8e87, 0x8e88, - 0x8e89, 0x8e8a, 0x8e8b, 0x8e8c, 0x8e8d, 0x8e8e, 0x8e8f, 0x8e90, - 0x8e91, 0x8e93, 0x8e94, 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, - 0x8e9a, 0x8e9b, 0x8e9c, 0x8e9d, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, - 0x8ea5, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8eab, 0x8eac, - 0x8ead, 0x8eae, 0x8eaf, 0x8eb0, 0x8eb1, 0x8eb3, 0x8eb4, 0x8eb5, - 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0x8ebc, 0x8ebd, - 0x8ec1, 0x8ec2, 0x8ec3, 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, - 0x8ec9, 0x8eca, 0x8ecb, 0x8ecc, 0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, - /* 0xb000 .. 0xb0ff */ - 0x8ed1, 0x8ed3, 0x8ed4, 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, - 0x8eda, 0x8edb, 0x8edc, 0x8edd, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4, - 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, - 0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef3, 0x8ef4, 0x8ef5, - 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc, 0x8efd, - 0x8f41, 0x8f42, 0x8f43, 0x8f44, 0x8f45, 0x8f46, 0x8f47, 0x8f48, - 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, 0x8f4d, 0x8f4e, 0x8f4f, 0x8f50, - 0x8f51, 0x8f53, 0x8f54, 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, - 0x8f5a, 0x8f5b, 0x8f5c, 0x8f5d, 0x8f61, 0x8f62, 0x8f63, 0x8f64, - 0x8f65, 0x8f66, 0x8f67, 0x8f68, 0x8f69, 0x8f6a, 0x8f6b, 0x8f6c, - 0x8f6d, 0x8f6e, 0x8f6f, 0x8f70, 0x8f71, 0x8f73, 0x8f74, 0x8f75, - 0x8f76, 0x8f77, 0x8f78, 0x8f79, 0x8f7a, 0x8f7b, 0x8f7c, 0x8f7d, - 0x8f81, 0x8f82, 0x8f83, 0x8f84, 0x8f85, 0x8f86, 0x8f87, 0x8f88, - 0x8f89, 0x8f8a, 0x8f8b, 0x8f8c, 0x8f8d, 0x8f8e, 0x8f8f, 0x8f90, - 0x8f91, 0x8f93, 0x8f94, 0x8f95, 0x8f96, 0x8f97, 0x8f98, 0x8f99, - 0x8f9a, 0x8f9b, 0x8f9c, 0x8f9d, 0x8fa1, 0x8fa2, 0x8fa3, 0x8fa4, - 0x8fa5, 0x8fa6, 0x8fa7, 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, 0x8fac, - 0x8fad, 0x8fae, 0x8faf, 0x8fb0, 0x8fb1, 0x8fb3, 0x8fb4, 0x8fb5, - 0x8fb6, 0x8fb7, 0x8fb8, 0x8fb9, 0x8fba, 0x8fbb, 0x8fbc, 0x8fbd, - 0x9061, 0x9062, 0x9063, 0x9064, 0x9065, 0x9066, 0x9067, 0x9068, - 0x9069, 0x906a, 0x906b, 0x906c, 0x906d, 0x906e, 0x906f, 0x9070, - 0x9071, 0x9073, 0x9074, 0x9075, 0x9076, 0x9077, 0x9078, 0x9079, - 0x907a, 0x907b, 0x907c, 0x907d, 0x9081, 0x9082, 0x9083, 0x9084, - 0x9085, 0x9086, 0x9087, 0x9088, 0x9089, 0x908a, 0x908b, 0x908c, - 0x908d, 0x908e, 0x908f, 0x9090, 0x9091, 0x9093, 0x9094, 0x9095, - 0x9096, 0x9097, 0x9098, 0x9099, 0x909a, 0x909b, 0x909c, 0x909d, - 0x90a1, 0x90a2, 0x90a3, 0x90a4, 0x90a5, 0x90a6, 0x90a7, 0x90a8, - 0x90a9, 0x90aa, 0x90ab, 0x90ac, 0x90ad, 0x90ae, 0x90af, 0x90b0, - 0x90b1, 0x90b3, 0x90b4, 0x90b5, 0x90b6, 0x90b7, 0x90b8, 0x90b9, - 0x90ba, 0x90bb, 0x90bc, 0x90bd, 0x90c1, 0x90c2, 0x90c3, 0x90c4, - 0x90c5, 0x90c6, 0x90c7, 0x90c8, 0x90c9, 0x90ca, 0x90cb, 0x90cc, - 0x90cd, 0x90ce, 0x90cf, 0x90d0, 0x90d1, 0x90d3, 0x90d4, 0x90d5, - /* 0xb100 .. 0xb1ff */ - 0x90d6, 0x90d7, 0x90d8, 0x90d9, 0x90da, 0x90db, 0x90dc, 0x90dd, - 0x90e1, 0x90e2, 0x90e3, 0x90e4, 0x90e5, 0x90e6, 0x90e7, 0x90e8, - 0x90e9, 0x90ea, 0x90eb, 0x90ec, 0x90ed, 0x90ee, 0x90ef, 0x90f0, - 0x90f1, 0x90f3, 0x90f4, 0x90f5, 0x90f6, 0x90f7, 0x90f8, 0x90f9, - 0x90fa, 0x90fb, 0x90fc, 0x90fd, 0x9141, 0x9142, 0x9143, 0x9144, - 0x9145, 0x9146, 0x9147, 0x9148, 0x9149, 0x914a, 0x914b, 0x914c, - 0x914d, 0x914e, 0x914f, 0x9150, 0x9151, 0x9153, 0x9154, 0x9155, - 0x9156, 0x9157, 0x9158, 0x9159, 0x915a, 0x915b, 0x915c, 0x915d, - 0x9161, 0x9162, 0x9163, 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, - 0x9169, 0x916a, 0x916b, 0x916c, 0x916d, 0x916e, 0x916f, 0x9170, - 0x9171, 0x9173, 0x9174, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179, - 0x917a, 0x917b, 0x917c, 0x917d, 0x9181, 0x9182, 0x9183, 0x9184, - 0x9185, 0x9186, 0x9187, 0x9188, 0x9189, 0x918a, 0x918b, 0x918c, - 0x918d, 0x918e, 0x918f, 0x9190, 0x9191, 0x9193, 0x9194, 0x9195, - 0x9196, 0x9197, 0x9198, 0x9199, 0x919a, 0x919b, 0x919c, 0x919d, - 0x91a1, 0x91a2, 0x91a3, 0x91a4, 0x91a5, 0x91a6, 0x91a7, 0x91a8, - 0x91a9, 0x91aa, 0x91ab, 0x91ac, 0x91ad, 0x91ae, 0x91af, 0x91b0, - 0x91b1, 0x91b3, 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, - 0x91ba, 0x91bb, 0x91bc, 0x91bd, 0x91c1, 0x91c2, 0x91c3, 0x91c4, - 0x91c5, 0x91c6, 0x91c7, 0x91c8, 0x91c9, 0x91ca, 0x91cb, 0x91cc, - 0x91cd, 0x91ce, 0x91cf, 0x91d0, 0x91d1, 0x91d3, 0x91d4, 0x91d5, - 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, 0x91db, 0x91dc, 0x91dd, - 0x91e1, 0x91e2, 0x91e3, 0x91e4, 0x91e5, 0x91e6, 0x91e7, 0x91e8, - 0x91e9, 0x91ea, 0x91eb, 0x91ec, 0x91ed, 0x91ee, 0x91ef, 0x91f0, - 0x91f1, 0x91f3, 0x91f4, 0x91f5, 0x91f6, 0x91f7, 0x91f8, 0x91f9, - 0x91fa, 0x91fb, 0x91fc, 0x91fd, 0x9241, 0x9242, 0x9243, 0x9244, - 0x9245, 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, 0x924c, - 0x924d, 0x924e, 0x924f, 0x9250, 0x9251, 0x9253, 0x9254, 0x9255, - 0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b, 0x925c, 0x925d, - 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, 0x9266, 0x9267, 0x9268, - 0x9269, 0x926a, 0x926b, 0x926c, 0x926d, 0x926e, 0x926f, 0x9270, - 0x9271, 0x9273, 0x9274, 0x9275, 0x9276, 0x9277, 0x9278, 0x9279, - /* 0xb200 .. 0xb2ff */ - 0x927a, 0x927b, 0x927c, 0x927d, 0x9281, 0x9282, 0x9283, 0x9284, - 0x9285, 0x9286, 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, - 0x928d, 0x928e, 0x928f, 0x9290, 0x9291, 0x9293, 0x9294, 0x9295, - 0x9296, 0x9297, 0x9298, 0x9299, 0x929a, 0x929b, 0x929c, 0x929d, - 0x92a1, 0x92a2, 0x92a3, 0x92a4, 0x92a5, 0x92a6, 0x92a7, 0x92a8, - 0x92a9, 0x92aa, 0x92ab, 0x92ac, 0x92ad, 0x92ae, 0x92af, 0x92b0, - 0x92b1, 0x92b3, 0x92b4, 0x92b5, 0x92b6, 0x92b7, 0x92b8, 0x92b9, - 0x92ba, 0x92bb, 0x92bc, 0x92bd, 0x92c1, 0x92c2, 0x92c3, 0x92c4, - 0x92c5, 0x92c6, 0x92c7, 0x92c8, 0x92c9, 0x92ca, 0x92cb, 0x92cc, - 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, 0x92d3, 0x92d4, 0x92d5, - 0x92d6, 0x92d7, 0x92d8, 0x92d9, 0x92da, 0x92db, 0x92dc, 0x92dd, - 0x92e1, 0x92e2, 0x92e3, 0x92e4, 0x92e5, 0x92e6, 0x92e7, 0x92e8, - 0x92e9, 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, - 0x92f1, 0x92f3, 0x92f4, 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, - 0x92fa, 0x92fb, 0x92fc, 0x92fd, 0x9341, 0x9342, 0x9343, 0x9344, - 0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0x934a, 0x934b, 0x934c, - 0x934d, 0x934e, 0x934f, 0x9350, 0x9351, 0x9353, 0x9354, 0x9355, - 0x9356, 0x9357, 0x9358, 0x9359, 0x935a, 0x935b, 0x935c, 0x935d, - 0x9361, 0x9362, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, - 0x9369, 0x936a, 0x936b, 0x936c, 0x936d, 0x936e, 0x936f, 0x9370, - 0x9371, 0x9373, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, - 0x937a, 0x937b, 0x937c, 0x937d, 0x9381, 0x9382, 0x9383, 0x9384, - 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938a, 0x938b, 0x938c, - 0x938d, 0x938e, 0x938f, 0x9390, 0x9391, 0x9393, 0x9394, 0x9395, - 0x9396, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, 0x939d, - 0x93a1, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6, 0x93a7, 0x93a8, - 0x93a9, 0x93aa, 0x93ab, 0x93ac, 0x93ad, 0x93ae, 0x93af, 0x93b0, - 0x93b1, 0x93b3, 0x93b4, 0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, - 0x93ba, 0x93bb, 0x93bc, 0x93bd, 0x9461, 0x9462, 0x9463, 0x9464, - 0x9465, 0x9466, 0x9467, 0x9468, 0x9469, 0x946a, 0x946b, 0x946c, - 0x946d, 0x946e, 0x946f, 0x9470, 0x9471, 0x9473, 0x9474, 0x9475, - 0x9476, 0x9477, 0x9478, 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, - /* 0xb300 .. 0xb3ff */ - 0x9481, 0x9482, 0x9483, 0x9484, 0x9485, 0x9486, 0x9487, 0x9488, - 0x9489, 0x948a, 0x948b, 0x948c, 0x948d, 0x948e, 0x948f, 0x9490, - 0x9491, 0x9493, 0x9494, 0x9495, 0x9496, 0x9497, 0x9498, 0x9499, - 0x949a, 0x949b, 0x949c, 0x949d, 0x94a1, 0x94a2, 0x94a3, 0x94a4, - 0x94a5, 0x94a6, 0x94a7, 0x94a8, 0x94a9, 0x94aa, 0x94ab, 0x94ac, - 0x94ad, 0x94ae, 0x94af, 0x94b0, 0x94b1, 0x94b3, 0x94b4, 0x94b5, - 0x94b6, 0x94b7, 0x94b8, 0x94b9, 0x94ba, 0x94bb, 0x94bc, 0x94bd, - 0x94c1, 0x94c2, 0x94c3, 0x94c4, 0x94c5, 0x94c6, 0x94c7, 0x94c8, - 0x94c9, 0x94ca, 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94cf, 0x94d0, - 0x94d1, 0x94d3, 0x94d4, 0x94d5, 0x94d6, 0x94d7, 0x94d8, 0x94d9, - 0x94da, 0x94db, 0x94dc, 0x94dd, 0x94e1, 0x94e2, 0x94e3, 0x94e4, - 0x94e5, 0x94e6, 0x94e7, 0x94e8, 0x94e9, 0x94ea, 0x94eb, 0x94ec, - 0x94ed, 0x94ee, 0x94ef, 0x94f0, 0x94f1, 0x94f3, 0x94f4, 0x94f5, - 0x94f6, 0x94f7, 0x94f8, 0x94f9, 0x94fa, 0x94fb, 0x94fc, 0x94fd, - 0x9541, 0x9542, 0x9543, 0x9544, 0x9545, 0x9546, 0x9547, 0x9548, - 0x9549, 0x954a, 0x954b, 0x954c, 0x954d, 0x954e, 0x954f, 0x9550, - 0x9551, 0x9553, 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559, - 0x955a, 0x955b, 0x955c, 0x955d, 0x9561, 0x9562, 0x9563, 0x9564, - 0x9565, 0x9566, 0x9567, 0x9568, 0x9569, 0x956a, 0x956b, 0x956c, - 0x956d, 0x956e, 0x956f, 0x9570, 0x9571, 0x9573, 0x9574, 0x9575, - 0x9576, 0x9577, 0x9578, 0x9579, 0x957a, 0x957b, 0x957c, 0x957d, - 0x9581, 0x9582, 0x9583, 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, - 0x9589, 0x958a, 0x958b, 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, - 0x9591, 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, - 0x959a, 0x959b, 0x959c, 0x959d, 0x95a1, 0x95a2, 0x95a3, 0x95a4, - 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, 0x95ab, 0x95ac, - 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b3, 0x95b4, 0x95b5, - 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba, 0x95bb, 0x95bc, 0x95bd, - 0x95c1, 0x95c2, 0x95c3, 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, - 0x95c9, 0x95ca, 0x95cb, 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, - 0x95d1, 0x95d3, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, - 0x95da, 0x95db, 0x95dc, 0x95dd, 0x95e1, 0x95e2, 0x95e3, 0x95e4, - /* 0xb400 .. 0xb4ff */ - 0x95e5, 0x95e6, 0x95e7, 0x95e8, 0x95e9, 0x95ea, 0x95eb, 0x95ec, - 0x95ed, 0x95ee, 0x95ef, 0x95f0, 0x95f1, 0x95f3, 0x95f4, 0x95f5, - 0x95f6, 0x95f7, 0x95f8, 0x95f9, 0x95fa, 0x95fb, 0x95fc, 0x95fd, - 0x9641, 0x9642, 0x9643, 0x9644, 0x9645, 0x9646, 0x9647, 0x9648, - 0x9649, 0x964a, 0x964b, 0x964c, 0x964d, 0x964e, 0x964f, 0x9650, - 0x9651, 0x9653, 0x9654, 0x9655, 0x9656, 0x9657, 0x9658, 0x9659, - 0x965a, 0x965b, 0x965c, 0x965d, 0x9661, 0x9662, 0x9663, 0x9664, - 0x9665, 0x9666, 0x9667, 0x9668, 0x9669, 0x966a, 0x966b, 0x966c, - 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9673, 0x9674, 0x9675, - 0x9676, 0x9677, 0x9678, 0x9679, 0x967a, 0x967b, 0x967c, 0x967d, - 0x9681, 0x9682, 0x9683, 0x9684, 0x9685, 0x9686, 0x9687, 0x9688, - 0x9689, 0x968a, 0x968b, 0x968c, 0x968d, 0x968e, 0x968f, 0x9690, - 0x9691, 0x9693, 0x9694, 0x9695, 0x9696, 0x9697, 0x9698, 0x9699, - 0x969a, 0x969b, 0x969c, 0x969d, 0x96a1, 0x96a2, 0x96a3, 0x96a4, - 0x96a5, 0x96a6, 0x96a7, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac, - 0x96ad, 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b3, 0x96b4, 0x96b5, - 0x96b6, 0x96b7, 0x96b8, 0x96b9, 0x96ba, 0x96bb, 0x96bc, 0x96bd, - 0x96c1, 0x96c2, 0x96c3, 0x96c4, 0x96c5, 0x96c6, 0x96c7, 0x96c8, - 0x96c9, 0x96ca, 0x96cb, 0x96cc, 0x96cd, 0x96ce, 0x96cf, 0x96d0, - 0x96d1, 0x96d3, 0x96d4, 0x96d5, 0x96d6, 0x96d7, 0x96d8, 0x96d9, - 0x96da, 0x96db, 0x96dc, 0x96dd, 0x96e1, 0x96e2, 0x96e3, 0x96e4, - 0x96e5, 0x96e6, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, 0x96ec, - 0x96ed, 0x96ee, 0x96ef, 0x96f0, 0x96f1, 0x96f3, 0x96f4, 0x96f5, - 0x96f6, 0x96f7, 0x96f8, 0x96f9, 0x96fa, 0x96fb, 0x96fc, 0x96fd, - 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, 0x9748, - 0x9749, 0x974a, 0x974b, 0x974c, 0x974d, 0x974e, 0x974f, 0x9750, - 0x9751, 0x9753, 0x9754, 0x9755, 0x9756, 0x9757, 0x9758, 0x9759, - 0x975a, 0x975b, 0x975c, 0x975d, 0x9761, 0x9762, 0x9763, 0x9764, - 0x9765, 0x9766, 0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, - 0x976d, 0x976e, 0x976f, 0x9770, 0x9771, 0x9773, 0x9774, 0x9775, - 0x9776, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977c, 0x977d, - 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, 0x9787, 0x9788, - /* 0xb500 .. 0xb5ff */ - 0x9789, 0x978a, 0x978b, 0x978c, 0x978d, 0x978e, 0x978f, 0x9790, - 0x9791, 0x9793, 0x9794, 0x9795, 0x9796, 0x9797, 0x9798, 0x9799, - 0x979a, 0x979b, 0x979c, 0x979d, 0x97a1, 0x97a2, 0x97a3, 0x97a4, - 0x97a5, 0x97a6, 0x97a7, 0x97a8, 0x97a9, 0x97aa, 0x97ab, 0x97ac, - 0x97ad, 0x97ae, 0x97af, 0x97b0, 0x97b1, 0x97b3, 0x97b4, 0x97b5, - 0x97b6, 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, 0x97bd, - 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, 0x9867, 0x9868, - 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f, 0x9870, - 0x9871, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877, 0x9878, 0x9879, - 0x987a, 0x987b, 0x987c, 0x987d, 0x9881, 0x9882, 0x9883, 0x9884, - 0x9885, 0x9886, 0x9887, 0x9888, 0x9889, 0x988a, 0x988b, 0x988c, - 0x988d, 0x988e, 0x988f, 0x9890, 0x9891, 0x9893, 0x9894, 0x9895, - 0x9896, 0x9897, 0x9898, 0x9899, 0x989a, 0x989b, 0x989c, 0x989d, - 0x98a1, 0x98a2, 0x98a3, 0x98a4, 0x98a5, 0x98a6, 0x98a7, 0x98a8, - 0x98a9, 0x98aa, 0x98ab, 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, - 0x98b1, 0x98b3, 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, - 0x98ba, 0x98bb, 0x98bc, 0x98bd, 0x98c1, 0x98c2, 0x98c3, 0x98c4, - 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0x98cb, 0x98cc, - 0x98cd, 0x98ce, 0x98cf, 0x98d0, 0x98d1, 0x98d3, 0x98d4, 0x98d5, - 0x98d6, 0x98d7, 0x98d8, 0x98d9, 0x98da, 0x98db, 0x98dc, 0x98dd, - 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5, 0x98e6, 0x98e7, 0x98e8, - 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef, 0x98f0, - 0x98f1, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7, 0x98f8, 0x98f9, - 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x9941, 0x9942, 0x9943, 0x9944, - 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x994a, 0x994b, 0x994c, - 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, 0x9953, 0x9954, 0x9955, - 0x9956, 0x9957, 0x9958, 0x9959, 0x995a, 0x995b, 0x995c, 0x995d, - 0x9961, 0x9962, 0x9963, 0x9964, 0x9965, 0x9966, 0x9967, 0x9968, - 0x9969, 0x996a, 0x996b, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, - 0x9971, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, 0x9979, - 0x997a, 0x997b, 0x997c, 0x997d, 0x9981, 0x9982, 0x9983, 0x9984, - 0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0x998a, 0x998b, 0x998c, - /* 0xb600 .. 0xb6ff */ - 0x998d, 0x998e, 0x998f, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, - 0x9996, 0x9997, 0x9998, 0x9999, 0x999a, 0x999b, 0x999c, 0x999d, - 0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a5, 0x99a6, 0x99a7, 0x99a8, - 0x99a9, 0x99aa, 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, - 0x99b1, 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, - 0x99ba, 0x99bb, 0x99bc, 0x99bd, 0x99c1, 0x99c2, 0x99c3, 0x99c4, - 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, 0x99ca, 0x99cb, 0x99cc, - 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d3, 0x99d4, 0x99d5, - 0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da, 0x99db, 0x99dc, 0x99dd, - 0x99e1, 0x99e2, 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, - 0x99e9, 0x99ea, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, - 0x99f1, 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9, - 0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x9a41, 0x9a42, 0x9a43, 0x9a44, - 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49, 0x9a4a, 0x9a4b, 0x9a4c, - 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, 0x9a53, 0x9a54, 0x9a55, - 0x9a56, 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, - 0x9a61, 0x9a62, 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, - 0x9a69, 0x9a6a, 0x9a6b, 0x9a6c, 0x9a6d, 0x9a6e, 0x9a6f, 0x9a70, - 0x9a71, 0x9a73, 0x9a74, 0x9a75, 0x9a76, 0x9a77, 0x9a78, 0x9a79, - 0x9a7a, 0x9a7b, 0x9a7c, 0x9a7d, 0x9a81, 0x9a82, 0x9a83, 0x9a84, - 0x9a85, 0x9a86, 0x9a87, 0x9a88, 0x9a89, 0x9a8a, 0x9a8b, 0x9a8c, - 0x9a8d, 0x9a8e, 0x9a8f, 0x9a90, 0x9a91, 0x9a93, 0x9a94, 0x9a95, - 0x9a96, 0x9a97, 0x9a98, 0x9a99, 0x9a9a, 0x9a9b, 0x9a9c, 0x9a9d, - 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, 0x9aa5, 0x9aa6, 0x9aa7, 0x9aa8, - 0x9aa9, 0x9aaa, 0x9aab, 0x9aac, 0x9aad, 0x9aae, 0x9aaf, 0x9ab0, - 0x9ab1, 0x9ab3, 0x9ab4, 0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8, 0x9ab9, - 0x9aba, 0x9abb, 0x9abc, 0x9abd, 0x9ac1, 0x9ac2, 0x9ac3, 0x9ac4, - 0x9ac5, 0x9ac6, 0x9ac7, 0x9ac8, 0x9ac9, 0x9aca, 0x9acb, 0x9acc, - 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad1, 0x9ad3, 0x9ad4, 0x9ad5, - 0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, 0x9add, - 0x9ae1, 0x9ae2, 0x9ae3, 0x9ae4, 0x9ae5, 0x9ae6, 0x9ae7, 0x9ae8, - 0x9ae9, 0x9aea, 0x9aeb, 0x9aec, 0x9aed, 0x9aee, 0x9aef, 0x9af0, - /* 0xb700 .. 0xb7ff */ - 0x9af1, 0x9af3, 0x9af4, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, - 0x9afa, 0x9afb, 0x9afc, 0x9afd, 0x9b41, 0x9b42, 0x9b43, 0x9b44, - 0x9b45, 0x9b46, 0x9b47, 0x9b48, 0x9b49, 0x9b4a, 0x9b4b, 0x9b4c, - 0x9b4d, 0x9b4e, 0x9b4f, 0x9b50, 0x9b51, 0x9b53, 0x9b54, 0x9b55, - 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b5b, 0x9b5c, 0x9b5d, - 0x9b61, 0x9b62, 0x9b63, 0x9b64, 0x9b65, 0x9b66, 0x9b67, 0x9b68, - 0x9b69, 0x9b6a, 0x9b6b, 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0x9b70, - 0x9b71, 0x9b73, 0x9b74, 0x9b75, 0x9b76, 0x9b77, 0x9b78, 0x9b79, - 0x9b7a, 0x9b7b, 0x9b7c, 0x9b7d, 0x9b81, 0x9b82, 0x9b83, 0x9b84, - 0x9b85, 0x9b86, 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b, 0x9b8c, - 0x9b8d, 0x9b8e, 0x9b8f, 0x9b90, 0x9b91, 0x9b93, 0x9b94, 0x9b95, - 0x9b96, 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b, 0x9b9c, 0x9b9d, - 0x9ba1, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0x9ba8, - 0x9ba9, 0x9baa, 0x9bab, 0x9bac, 0x9bad, 0x9bae, 0x9baf, 0x9bb0, - 0x9bb1, 0x9bb3, 0x9bb4, 0x9bb5, 0x9bb6, 0x9bb7, 0x9bb8, 0x9bb9, - 0x9bba, 0x9bbb, 0x9bbc, 0x9bbd, 0x9c61, 0x9c62, 0x9c63, 0x9c64, - 0x9c65, 0x9c66, 0x9c67, 0x9c68, 0x9c69, 0x9c6a, 0x9c6b, 0x9c6c, - 0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, 0x9c71, 0x9c73, 0x9c74, 0x9c75, - 0x9c76, 0x9c77, 0x9c78, 0x9c79, 0x9c7a, 0x9c7b, 0x9c7c, 0x9c7d, - 0x9c81, 0x9c82, 0x9c83, 0x9c84, 0x9c85, 0x9c86, 0x9c87, 0x9c88, - 0x9c89, 0x9c8a, 0x9c8b, 0x9c8c, 0x9c8d, 0x9c8e, 0x9c8f, 0x9c90, - 0x9c91, 0x9c93, 0x9c94, 0x9c95, 0x9c96, 0x9c97, 0x9c98, 0x9c99, - 0x9c9a, 0x9c9b, 0x9c9c, 0x9c9d, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, - 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8, 0x9ca9, 0x9caa, 0x9cab, 0x9cac, - 0x9cad, 0x9cae, 0x9caf, 0x9cb0, 0x9cb1, 0x9cb3, 0x9cb4, 0x9cb5, - 0x9cb6, 0x9cb7, 0x9cb8, 0x9cb9, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, - 0x9cc1, 0x9cc2, 0x9cc3, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cc8, - 0x9cc9, 0x9cca, 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, - 0x9cd1, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6, 0x9cd7, 0x9cd8, 0x9cd9, - 0x9cda, 0x9cdb, 0x9cdc, 0x9cdd, 0x9ce1, 0x9ce2, 0x9ce3, 0x9ce4, - 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea, 0x9ceb, 0x9cec, - 0x9ced, 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0x9cf3, 0x9cf4, 0x9cf5, - /* 0xb800 .. 0xb8ff */ - 0x9cf6, 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, - 0x9d41, 0x9d42, 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, - 0x9d49, 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, - 0x9d51, 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, - 0x9d5a, 0x9d5b, 0x9d5c, 0x9d5d, 0x9d61, 0x9d62, 0x9d63, 0x9d64, - 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 0x9d6a, 0x9d6b, 0x9d6c, - 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d73, 0x9d74, 0x9d75, - 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, 0x9d7b, 0x9d7c, 0x9d7d, - 0x9d81, 0x9d82, 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, - 0x9d89, 0x9d8a, 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, - 0x9d91, 0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, - 0x9d9a, 0x9d9b, 0x9d9c, 0x9d9d, 0x9da1, 0x9da2, 0x9da3, 0x9da4, - 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa, 0x9dab, 0x9dac, - 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db3, 0x9db4, 0x9db5, - 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, 0x9dbb, 0x9dbc, 0x9dbd, - 0x9dc1, 0x9dc2, 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, - 0x9dc9, 0x9dca, 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, - 0x9dd1, 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, - 0x9dda, 0x9ddb, 0x9ddc, 0x9ddd, 0x9de1, 0x9de2, 0x9de3, 0x9de4, - 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea, 0x9deb, 0x9dec, - 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df3, 0x9df4, 0x9df5, - 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa, 0x9dfb, 0x9dfc, 0x9dfd, - 0x9e41, 0x9e42, 0x9e43, 0x9e44, 0x9e45, 0x9e46, 0x9e47, 0x9e48, - 0x9e49, 0x9e4a, 0x9e4b, 0x9e4c, 0x9e4d, 0x9e4e, 0x9e4f, 0x9e50, - 0x9e51, 0x9e53, 0x9e54, 0x9e55, 0x9e56, 0x9e57, 0x9e58, 0x9e59, - 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5d, 0x9e61, 0x9e62, 0x9e63, 0x9e64, - 0x9e65, 0x9e66, 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, - 0x9e6d, 0x9e6e, 0x9e6f, 0x9e70, 0x9e71, 0x9e73, 0x9e74, 0x9e75, - 0x9e76, 0x9e77, 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, 0x9e7c, 0x9e7d, - 0x9e81, 0x9e82, 0x9e83, 0x9e84, 0x9e85, 0x9e86, 0x9e87, 0x9e88, - 0x9e89, 0x9e8a, 0x9e8b, 0x9e8c, 0x9e8d, 0x9e8e, 0x9e8f, 0x9e90, - 0x9e91, 0x9e93, 0x9e94, 0x9e95, 0x9e96, 0x9e97, 0x9e98, 0x9e99, - /* 0xb900 .. 0xb9ff */ - 0x9e9a, 0x9e9b, 0x9e9c, 0x9e9d, 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4, - 0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa, 0x9eab, 0x9eac, - 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb3, 0x9eb4, 0x9eb5, - 0x9eb6, 0x9eb7, 0x9eb8, 0x9eb9, 0x9eba, 0x9ebb, 0x9ebc, 0x9ebd, - 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec4, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, - 0x9ec9, 0x9eca, 0x9ecb, 0x9ecc, 0x9ecd, 0x9ece, 0x9ecf, 0x9ed0, - 0x9ed1, 0x9ed3, 0x9ed4, 0x9ed5, 0x9ed6, 0x9ed7, 0x9ed8, 0x9ed9, - 0x9eda, 0x9edb, 0x9edc, 0x9edd, 0x9ee1, 0x9ee2, 0x9ee3, 0x9ee4, - 0x9ee5, 0x9ee6, 0x9ee7, 0x9ee8, 0x9ee9, 0x9eea, 0x9eeb, 0x9eec, - 0x9eed, 0x9eee, 0x9eef, 0x9ef0, 0x9ef1, 0x9ef3, 0x9ef4, 0x9ef5, - 0x9ef6, 0x9ef7, 0x9ef8, 0x9ef9, 0x9efa, 0x9efb, 0x9efc, 0x9efd, - 0x9f41, 0x9f42, 0x9f43, 0x9f44, 0x9f45, 0x9f46, 0x9f47, 0x9f48, - 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f, 0x9f50, - 0x9f51, 0x9f53, 0x9f54, 0x9f55, 0x9f56, 0x9f57, 0x9f58, 0x9f59, - 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f61, 0x9f62, 0x9f63, 0x9f64, - 0x9f65, 0x9f66, 0x9f67, 0x9f68, 0x9f69, 0x9f6a, 0x9f6b, 0x9f6c, - 0x9f6d, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f73, 0x9f74, 0x9f75, - 0x9f76, 0x9f77, 0x9f78, 0x9f79, 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d, - 0x9f81, 0x9f82, 0x9f83, 0x9f84, 0x9f85, 0x9f86, 0x9f87, 0x9f88, - 0x9f89, 0x9f8a, 0x9f8b, 0x9f8c, 0x9f8d, 0x9f8e, 0x9f8f, 0x9f90, - 0x9f91, 0x9f93, 0x9f94, 0x9f95, 0x9f96, 0x9f97, 0x9f98, 0x9f99, - 0x9f9a, 0x9f9b, 0x9f9c, 0x9f9d, 0x9fa1, 0x9fa2, 0x9fa3, 0x9fa4, - 0x9fa5, 0x9fa6, 0x9fa7, 0x9fa8, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, - 0x9fad, 0x9fae, 0x9faf, 0x9fb0, 0x9fb1, 0x9fb3, 0x9fb4, 0x9fb5, - 0x9fb6, 0x9fb7, 0x9fb8, 0x9fb9, 0x9fba, 0x9fbb, 0x9fbc, 0x9fbd, - 0xa061, 0xa062, 0xa063, 0xa064, 0xa065, 0xa066, 0xa067, 0xa068, - 0xa069, 0xa06a, 0xa06b, 0xa06c, 0xa06d, 0xa06e, 0xa06f, 0xa070, - 0xa071, 0xa073, 0xa074, 0xa075, 0xa076, 0xa077, 0xa078, 0xa079, - 0xa07a, 0xa07b, 0xa07c, 0xa07d, 0xa081, 0xa082, 0xa083, 0xa084, - 0xa085, 0xa086, 0xa087, 0xa088, 0xa089, 0xa08a, 0xa08b, 0xa08c, - 0xa08d, 0xa08e, 0xa08f, 0xa090, 0xa091, 0xa093, 0xa094, 0xa095, - 0xa096, 0xa097, 0xa098, 0xa099, 0xa09a, 0xa09b, 0xa09c, 0xa09d, - /* 0xba00 .. 0xbaff */ - 0xa0a1, 0xa0a2, 0xa0a3, 0xa0a4, 0xa0a5, 0xa0a6, 0xa0a7, 0xa0a8, - 0xa0a9, 0xa0aa, 0xa0ab, 0xa0ac, 0xa0ad, 0xa0ae, 0xa0af, 0xa0b0, - 0xa0b1, 0xa0b3, 0xa0b4, 0xa0b5, 0xa0b6, 0xa0b7, 0xa0b8, 0xa0b9, - 0xa0ba, 0xa0bb, 0xa0bc, 0xa0bd, 0xa0c1, 0xa0c2, 0xa0c3, 0xa0c4, - 0xa0c5, 0xa0c6, 0xa0c7, 0xa0c8, 0xa0c9, 0xa0ca, 0xa0cb, 0xa0cc, - 0xa0cd, 0xa0ce, 0xa0cf, 0xa0d0, 0xa0d1, 0xa0d3, 0xa0d4, 0xa0d5, - 0xa0d6, 0xa0d7, 0xa0d8, 0xa0d9, 0xa0da, 0xa0db, 0xa0dc, 0xa0dd, - 0xa0e1, 0xa0e2, 0xa0e3, 0xa0e4, 0xa0e5, 0xa0e6, 0xa0e7, 0xa0e8, - 0xa0e9, 0xa0ea, 0xa0eb, 0xa0ec, 0xa0ed, 0xa0ee, 0xa0ef, 0xa0f0, - 0xa0f1, 0xa0f3, 0xa0f4, 0xa0f5, 0xa0f6, 0xa0f7, 0xa0f8, 0xa0f9, - 0xa0fa, 0xa0fb, 0xa0fc, 0xa0fd, 0xa141, 0xa142, 0xa143, 0xa144, - 0xa145, 0xa146, 0xa147, 0xa148, 0xa149, 0xa14a, 0xa14b, 0xa14c, - 0xa14d, 0xa14e, 0xa14f, 0xa150, 0xa151, 0xa153, 0xa154, 0xa155, - 0xa156, 0xa157, 0xa158, 0xa159, 0xa15a, 0xa15b, 0xa15c, 0xa15d, - 0xa161, 0xa162, 0xa163, 0xa164, 0xa165, 0xa166, 0xa167, 0xa168, - 0xa169, 0xa16a, 0xa16b, 0xa16c, 0xa16d, 0xa16e, 0xa16f, 0xa170, - 0xa171, 0xa173, 0xa174, 0xa175, 0xa176, 0xa177, 0xa178, 0xa179, - 0xa17a, 0xa17b, 0xa17c, 0xa17d, 0xa181, 0xa182, 0xa183, 0xa184, - 0xa185, 0xa186, 0xa187, 0xa188, 0xa189, 0xa18a, 0xa18b, 0xa18c, - 0xa18d, 0xa18e, 0xa18f, 0xa190, 0xa191, 0xa193, 0xa194, 0xa195, - 0xa196, 0xa197, 0xa198, 0xa199, 0xa19a, 0xa19b, 0xa19c, 0xa19d, - 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1a5, 0xa1a6, 0xa1a7, 0xa1a8, - 0xa1a9, 0xa1aa, 0xa1ab, 0xa1ac, 0xa1ad, 0xa1ae, 0xa1af, 0xa1b0, - 0xa1b1, 0xa1b3, 0xa1b4, 0xa1b5, 0xa1b6, 0xa1b7, 0xa1b8, 0xa1b9, - 0xa1ba, 0xa1bb, 0xa1bc, 0xa1bd, 0xa1c1, 0xa1c2, 0xa1c3, 0xa1c4, - 0xa1c5, 0xa1c6, 0xa1c7, 0xa1c8, 0xa1c9, 0xa1ca, 0xa1cb, 0xa1cc, - 0xa1cd, 0xa1ce, 0xa1cf, 0xa1d0, 0xa1d1, 0xa1d3, 0xa1d4, 0xa1d5, - 0xa1d6, 0xa1d7, 0xa1d8, 0xa1d9, 0xa1da, 0xa1db, 0xa1dc, 0xa1dd, - 0xa1e1, 0xa1e2, 0xa1e3, 0xa1e4, 0xa1e5, 0xa1e6, 0xa1e7, 0xa1e8, - 0xa1e9, 0xa1ea, 0xa1eb, 0xa1ec, 0xa1ed, 0xa1ee, 0xa1ef, 0xa1f0, - 0xa1f1, 0xa1f3, 0xa1f4, 0xa1f5, 0xa1f6, 0xa1f7, 0xa1f8, 0xa1f9, - 0xa1fa, 0xa1fb, 0xa1fc, 0xa1fd, 0xa241, 0xa242, 0xa243, 0xa244, - /* 0xbb00 .. 0xbbff */ - 0xa245, 0xa246, 0xa247, 0xa248, 0xa249, 0xa24a, 0xa24b, 0xa24c, - 0xa24d, 0xa24e, 0xa24f, 0xa250, 0xa251, 0xa253, 0xa254, 0xa255, - 0xa256, 0xa257, 0xa258, 0xa259, 0xa25a, 0xa25b, 0xa25c, 0xa25d, - 0xa261, 0xa262, 0xa263, 0xa264, 0xa265, 0xa266, 0xa267, 0xa268, - 0xa269, 0xa26a, 0xa26b, 0xa26c, 0xa26d, 0xa26e, 0xa26f, 0xa270, - 0xa271, 0xa273, 0xa274, 0xa275, 0xa276, 0xa277, 0xa278, 0xa279, - 0xa27a, 0xa27b, 0xa27c, 0xa27d, 0xa281, 0xa282, 0xa283, 0xa284, - 0xa285, 0xa286, 0xa287, 0xa288, 0xa289, 0xa28a, 0xa28b, 0xa28c, - 0xa28d, 0xa28e, 0xa28f, 0xa290, 0xa291, 0xa293, 0xa294, 0xa295, - 0xa296, 0xa297, 0xa298, 0xa299, 0xa29a, 0xa29b, 0xa29c, 0xa29d, - 0xa2a1, 0xa2a2, 0xa2a3, 0xa2a4, 0xa2a5, 0xa2a6, 0xa2a7, 0xa2a8, - 0xa2a9, 0xa2aa, 0xa2ab, 0xa2ac, 0xa2ad, 0xa2ae, 0xa2af, 0xa2b0, - 0xa2b1, 0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, 0xa2b9, - 0xa2ba, 0xa2bb, 0xa2bc, 0xa2bd, 0xa2c1, 0xa2c2, 0xa2c3, 0xa2c4, - 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, 0xa2ca, 0xa2cb, 0xa2cc, - 0xa2cd, 0xa2ce, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d3, 0xa2d4, 0xa2d5, - 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, 0xa2dd, - 0xa2e1, 0xa2e2, 0xa2e3, 0xa2e4, 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, - 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, 0xa2ef, 0xa2f0, - 0xa2f1, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, 0xa2f7, 0xa2f8, 0xa2f9, - 0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa341, 0xa342, 0xa343, 0xa344, - 0xa345, 0xa346, 0xa347, 0xa348, 0xa349, 0xa34a, 0xa34b, 0xa34c, - 0xa34d, 0xa34e, 0xa34f, 0xa350, 0xa351, 0xa353, 0xa354, 0xa355, - 0xa356, 0xa357, 0xa358, 0xa359, 0xa35a, 0xa35b, 0xa35c, 0xa35d, - 0xa361, 0xa362, 0xa363, 0xa364, 0xa365, 0xa366, 0xa367, 0xa368, - 0xa369, 0xa36a, 0xa36b, 0xa36c, 0xa36d, 0xa36e, 0xa36f, 0xa370, - 0xa371, 0xa373, 0xa374, 0xa375, 0xa376, 0xa377, 0xa378, 0xa379, - 0xa37a, 0xa37b, 0xa37c, 0xa37d, 0xa381, 0xa382, 0xa383, 0xa384, - 0xa385, 0xa386, 0xa387, 0xa388, 0xa389, 0xa38a, 0xa38b, 0xa38c, - 0xa38d, 0xa38e, 0xa38f, 0xa390, 0xa391, 0xa393, 0xa394, 0xa395, - 0xa396, 0xa397, 0xa398, 0xa399, 0xa39a, 0xa39b, 0xa39c, 0xa39d, - 0xa3a1, 0xa3a2, 0xa3a3, 0xa3a4, 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8, - /* 0xbc00 .. 0xbcff */ - 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, 0xa3b0, - 0xa3b1, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8, 0xa3b9, - 0xa3ba, 0xa3bb, 0xa3bc, 0xa3bd, 0xa461, 0xa462, 0xa463, 0xa464, - 0xa465, 0xa466, 0xa467, 0xa468, 0xa469, 0xa46a, 0xa46b, 0xa46c, - 0xa46d, 0xa46e, 0xa46f, 0xa470, 0xa471, 0xa473, 0xa474, 0xa475, - 0xa476, 0xa477, 0xa478, 0xa479, 0xa47a, 0xa47b, 0xa47c, 0xa47d, - 0xa481, 0xa482, 0xa483, 0xa484, 0xa485, 0xa486, 0xa487, 0xa488, - 0xa489, 0xa48a, 0xa48b, 0xa48c, 0xa48d, 0xa48e, 0xa48f, 0xa490, - 0xa491, 0xa493, 0xa494, 0xa495, 0xa496, 0xa497, 0xa498, 0xa499, - 0xa49a, 0xa49b, 0xa49c, 0xa49d, 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, - 0xa4a5, 0xa4a6, 0xa4a7, 0xa4a8, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4ac, - 0xa4ad, 0xa4ae, 0xa4af, 0xa4b0, 0xa4b1, 0xa4b3, 0xa4b4, 0xa4b5, - 0xa4b6, 0xa4b7, 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, - 0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, 0xa4c5, 0xa4c6, 0xa4c7, 0xa4c8, - 0xa4c9, 0xa4ca, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, 0xa4d0, - 0xa4d1, 0xa4d3, 0xa4d4, 0xa4d5, 0xa4d6, 0xa4d7, 0xa4d8, 0xa4d9, - 0xa4da, 0xa4db, 0xa4dc, 0xa4dd, 0xa4e1, 0xa4e2, 0xa4e3, 0xa4e4, - 0xa4e5, 0xa4e6, 0xa4e7, 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, - 0xa4ed, 0xa4ee, 0xa4ef, 0xa4f0, 0xa4f1, 0xa4f3, 0xa4f4, 0xa4f5, - 0xa4f6, 0xa4f7, 0xa4f8, 0xa4f9, 0xa4fa, 0xa4fb, 0xa4fc, 0xa4fd, - 0xa541, 0xa542, 0xa543, 0xa544, 0xa545, 0xa546, 0xa547, 0xa548, - 0xa549, 0xa54a, 0xa54b, 0xa54c, 0xa54d, 0xa54e, 0xa54f, 0xa550, - 0xa551, 0xa553, 0xa554, 0xa555, 0xa556, 0xa557, 0xa558, 0xa559, - 0xa55a, 0xa55b, 0xa55c, 0xa55d, 0xa561, 0xa562, 0xa563, 0xa564, - 0xa565, 0xa566, 0xa567, 0xa568, 0xa569, 0xa56a, 0xa56b, 0xa56c, - 0xa56d, 0xa56e, 0xa56f, 0xa570, 0xa571, 0xa573, 0xa574, 0xa575, - 0xa576, 0xa577, 0xa578, 0xa579, 0xa57a, 0xa57b, 0xa57c, 0xa57d, - 0xa581, 0xa582, 0xa583, 0xa584, 0xa585, 0xa586, 0xa587, 0xa588, - 0xa589, 0xa58a, 0xa58b, 0xa58c, 0xa58d, 0xa58e, 0xa58f, 0xa590, - 0xa591, 0xa593, 0xa594, 0xa595, 0xa596, 0xa597, 0xa598, 0xa599, - 0xa59a, 0xa59b, 0xa59c, 0xa59d, 0xa5a1, 0xa5a2, 0xa5a3, 0xa5a4, - 0xa5a5, 0xa5a6, 0xa5a7, 0xa5a8, 0xa5a9, 0xa5aa, 0xa5ab, 0xa5ac, - /* 0xbd00 .. 0xbdff */ - 0xa5ad, 0xa5ae, 0xa5af, 0xa5b0, 0xa5b1, 0xa5b3, 0xa5b4, 0xa5b5, - 0xa5b6, 0xa5b7, 0xa5b8, 0xa5b9, 0xa5ba, 0xa5bb, 0xa5bc, 0xa5bd, - 0xa5c1, 0xa5c2, 0xa5c3, 0xa5c4, 0xa5c5, 0xa5c6, 0xa5c7, 0xa5c8, - 0xa5c9, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, 0xa5d0, - 0xa5d1, 0xa5d3, 0xa5d4, 0xa5d5, 0xa5d6, 0xa5d7, 0xa5d8, 0xa5d9, - 0xa5da, 0xa5db, 0xa5dc, 0xa5dd, 0xa5e1, 0xa5e2, 0xa5e3, 0xa5e4, - 0xa5e5, 0xa5e6, 0xa5e7, 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, - 0xa5ed, 0xa5ee, 0xa5ef, 0xa5f0, 0xa5f1, 0xa5f3, 0xa5f4, 0xa5f5, - 0xa5f6, 0xa5f7, 0xa5f8, 0xa5f9, 0xa5fa, 0xa5fb, 0xa5fc, 0xa5fd, - 0xa641, 0xa642, 0xa643, 0xa644, 0xa645, 0xa646, 0xa647, 0xa648, - 0xa649, 0xa64a, 0xa64b, 0xa64c, 0xa64d, 0xa64e, 0xa64f, 0xa650, - 0xa651, 0xa653, 0xa654, 0xa655, 0xa656, 0xa657, 0xa658, 0xa659, - 0xa65a, 0xa65b, 0xa65c, 0xa65d, 0xa661, 0xa662, 0xa663, 0xa664, - 0xa665, 0xa666, 0xa667, 0xa668, 0xa669, 0xa66a, 0xa66b, 0xa66c, - 0xa66d, 0xa66e, 0xa66f, 0xa670, 0xa671, 0xa673, 0xa674, 0xa675, - 0xa676, 0xa677, 0xa678, 0xa679, 0xa67a, 0xa67b, 0xa67c, 0xa67d, - 0xa681, 0xa682, 0xa683, 0xa684, 0xa685, 0xa686, 0xa687, 0xa688, - 0xa689, 0xa68a, 0xa68b, 0xa68c, 0xa68d, 0xa68e, 0xa68f, 0xa690, - 0xa691, 0xa693, 0xa694, 0xa695, 0xa696, 0xa697, 0xa698, 0xa699, - 0xa69a, 0xa69b, 0xa69c, 0xa69d, 0xa6a1, 0xa6a2, 0xa6a3, 0xa6a4, - 0xa6a5, 0xa6a6, 0xa6a7, 0xa6a8, 0xa6a9, 0xa6aa, 0xa6ab, 0xa6ac, - 0xa6ad, 0xa6ae, 0xa6af, 0xa6b0, 0xa6b1, 0xa6b3, 0xa6b4, 0xa6b5, - 0xa6b6, 0xa6b7, 0xa6b8, 0xa6b9, 0xa6ba, 0xa6bb, 0xa6bc, 0xa6bd, - 0xa6c1, 0xa6c2, 0xa6c3, 0xa6c4, 0xa6c5, 0xa6c6, 0xa6c7, 0xa6c8, - 0xa6c9, 0xa6ca, 0xa6cb, 0xa6cc, 0xa6cd, 0xa6ce, 0xa6cf, 0xa6d0, - 0xa6d1, 0xa6d3, 0xa6d4, 0xa6d5, 0xa6d6, 0xa6d7, 0xa6d8, 0xa6d9, - 0xa6da, 0xa6db, 0xa6dc, 0xa6dd, 0xa6e1, 0xa6e2, 0xa6e3, 0xa6e4, - 0xa6e5, 0xa6e6, 0xa6e7, 0xa6e8, 0xa6e9, 0xa6ea, 0xa6eb, 0xa6ec, - 0xa6ed, 0xa6ee, 0xa6ef, 0xa6f0, 0xa6f1, 0xa6f3, 0xa6f4, 0xa6f5, - 0xa6f6, 0xa6f7, 0xa6f8, 0xa6f9, 0xa6fa, 0xa6fb, 0xa6fc, 0xa6fd, - 0xa741, 0xa742, 0xa743, 0xa744, 0xa745, 0xa746, 0xa747, 0xa748, - 0xa749, 0xa74a, 0xa74b, 0xa74c, 0xa74d, 0xa74e, 0xa74f, 0xa750, - /* 0xbe00 .. 0xbeff */ - 0xa751, 0xa753, 0xa754, 0xa755, 0xa756, 0xa757, 0xa758, 0xa759, - 0xa75a, 0xa75b, 0xa75c, 0xa75d, 0xa761, 0xa762, 0xa763, 0xa764, - 0xa765, 0xa766, 0xa767, 0xa768, 0xa769, 0xa76a, 0xa76b, 0xa76c, - 0xa76d, 0xa76e, 0xa76f, 0xa770, 0xa771, 0xa773, 0xa774, 0xa775, - 0xa776, 0xa777, 0xa778, 0xa779, 0xa77a, 0xa77b, 0xa77c, 0xa77d, - 0xa781, 0xa782, 0xa783, 0xa784, 0xa785, 0xa786, 0xa787, 0xa788, - 0xa789, 0xa78a, 0xa78b, 0xa78c, 0xa78d, 0xa78e, 0xa78f, 0xa790, - 0xa791, 0xa793, 0xa794, 0xa795, 0xa796, 0xa797, 0xa798, 0xa799, - 0xa79a, 0xa79b, 0xa79c, 0xa79d, 0xa7a1, 0xa7a2, 0xa7a3, 0xa7a4, - 0xa7a5, 0xa7a6, 0xa7a7, 0xa7a8, 0xa7a9, 0xa7aa, 0xa7ab, 0xa7ac, - 0xa7ad, 0xa7ae, 0xa7af, 0xa7b0, 0xa7b1, 0xa7b3, 0xa7b4, 0xa7b5, - 0xa7b6, 0xa7b7, 0xa7b8, 0xa7b9, 0xa7ba, 0xa7bb, 0xa7bc, 0xa7bd, - 0xa861, 0xa862, 0xa863, 0xa864, 0xa865, 0xa866, 0xa867, 0xa868, - 0xa869, 0xa86a, 0xa86b, 0xa86c, 0xa86d, 0xa86e, 0xa86f, 0xa870, - 0xa871, 0xa873, 0xa874, 0xa875, 0xa876, 0xa877, 0xa878, 0xa879, - 0xa87a, 0xa87b, 0xa87c, 0xa87d, 0xa881, 0xa882, 0xa883, 0xa884, - 0xa885, 0xa886, 0xa887, 0xa888, 0xa889, 0xa88a, 0xa88b, 0xa88c, - 0xa88d, 0xa88e, 0xa88f, 0xa890, 0xa891, 0xa893, 0xa894, 0xa895, - 0xa896, 0xa897, 0xa898, 0xa899, 0xa89a, 0xa89b, 0xa89c, 0xa89d, - 0xa8a1, 0xa8a2, 0xa8a3, 0xa8a4, 0xa8a5, 0xa8a6, 0xa8a7, 0xa8a8, - 0xa8a9, 0xa8aa, 0xa8ab, 0xa8ac, 0xa8ad, 0xa8ae, 0xa8af, 0xa8b0, - 0xa8b1, 0xa8b3, 0xa8b4, 0xa8b5, 0xa8b6, 0xa8b7, 0xa8b8, 0xa8b9, - 0xa8ba, 0xa8bb, 0xa8bc, 0xa8bd, 0xa8c1, 0xa8c2, 0xa8c3, 0xa8c4, - 0xa8c5, 0xa8c6, 0xa8c7, 0xa8c8, 0xa8c9, 0xa8ca, 0xa8cb, 0xa8cc, - 0xa8cd, 0xa8ce, 0xa8cf, 0xa8d0, 0xa8d1, 0xa8d3, 0xa8d4, 0xa8d5, - 0xa8d6, 0xa8d7, 0xa8d8, 0xa8d9, 0xa8da, 0xa8db, 0xa8dc, 0xa8dd, - 0xa8e1, 0xa8e2, 0xa8e3, 0xa8e4, 0xa8e5, 0xa8e6, 0xa8e7, 0xa8e8, - 0xa8e9, 0xa8ea, 0xa8eb, 0xa8ec, 0xa8ed, 0xa8ee, 0xa8ef, 0xa8f0, - 0xa8f1, 0xa8f3, 0xa8f4, 0xa8f5, 0xa8f6, 0xa8f7, 0xa8f8, 0xa8f9, - 0xa8fa, 0xa8fb, 0xa8fc, 0xa8fd, 0xa941, 0xa942, 0xa943, 0xa944, - 0xa945, 0xa946, 0xa947, 0xa948, 0xa949, 0xa94a, 0xa94b, 0xa94c, - 0xa94d, 0xa94e, 0xa94f, 0xa950, 0xa951, 0xa953, 0xa954, 0xa955, - /* 0xbf00 .. 0xbfff */ - 0xa956, 0xa957, 0xa958, 0xa959, 0xa95a, 0xa95b, 0xa95c, 0xa95d, - 0xa961, 0xa962, 0xa963, 0xa964, 0xa965, 0xa966, 0xa967, 0xa968, - 0xa969, 0xa96a, 0xa96b, 0xa96c, 0xa96d, 0xa96e, 0xa96f, 0xa970, - 0xa971, 0xa973, 0xa974, 0xa975, 0xa976, 0xa977, 0xa978, 0xa979, - 0xa97a, 0xa97b, 0xa97c, 0xa97d, 0xa981, 0xa982, 0xa983, 0xa984, - 0xa985, 0xa986, 0xa987, 0xa988, 0xa989, 0xa98a, 0xa98b, 0xa98c, - 0xa98d, 0xa98e, 0xa98f, 0xa990, 0xa991, 0xa993, 0xa994, 0xa995, - 0xa996, 0xa997, 0xa998, 0xa999, 0xa99a, 0xa99b, 0xa99c, 0xa99d, - 0xa9a1, 0xa9a2, 0xa9a3, 0xa9a4, 0xa9a5, 0xa9a6, 0xa9a7, 0xa9a8, - 0xa9a9, 0xa9aa, 0xa9ab, 0xa9ac, 0xa9ad, 0xa9ae, 0xa9af, 0xa9b0, - 0xa9b1, 0xa9b3, 0xa9b4, 0xa9b5, 0xa9b6, 0xa9b7, 0xa9b8, 0xa9b9, - 0xa9ba, 0xa9bb, 0xa9bc, 0xa9bd, 0xa9c1, 0xa9c2, 0xa9c3, 0xa9c4, - 0xa9c5, 0xa9c6, 0xa9c7, 0xa9c8, 0xa9c9, 0xa9ca, 0xa9cb, 0xa9cc, - 0xa9cd, 0xa9ce, 0xa9cf, 0xa9d0, 0xa9d1, 0xa9d3, 0xa9d4, 0xa9d5, - 0xa9d6, 0xa9d7, 0xa9d8, 0xa9d9, 0xa9da, 0xa9db, 0xa9dc, 0xa9dd, - 0xa9e1, 0xa9e2, 0xa9e3, 0xa9e4, 0xa9e5, 0xa9e6, 0xa9e7, 0xa9e8, - 0xa9e9, 0xa9ea, 0xa9eb, 0xa9ec, 0xa9ed, 0xa9ee, 0xa9ef, 0xa9f0, - 0xa9f1, 0xa9f3, 0xa9f4, 0xa9f5, 0xa9f6, 0xa9f7, 0xa9f8, 0xa9f9, - 0xa9fa, 0xa9fb, 0xa9fc, 0xa9fd, 0xaa41, 0xaa42, 0xaa43, 0xaa44, - 0xaa45, 0xaa46, 0xaa47, 0xaa48, 0xaa49, 0xaa4a, 0xaa4b, 0xaa4c, - 0xaa4d, 0xaa4e, 0xaa4f, 0xaa50, 0xaa51, 0xaa53, 0xaa54, 0xaa55, - 0xaa56, 0xaa57, 0xaa58, 0xaa59, 0xaa5a, 0xaa5b, 0xaa5c, 0xaa5d, - 0xaa61, 0xaa62, 0xaa63, 0xaa64, 0xaa65, 0xaa66, 0xaa67, 0xaa68, - 0xaa69, 0xaa6a, 0xaa6b, 0xaa6c, 0xaa6d, 0xaa6e, 0xaa6f, 0xaa70, - 0xaa71, 0xaa73, 0xaa74, 0xaa75, 0xaa76, 0xaa77, 0xaa78, 0xaa79, - 0xaa7a, 0xaa7b, 0xaa7c, 0xaa7d, 0xaa81, 0xaa82, 0xaa83, 0xaa84, - 0xaa85, 0xaa86, 0xaa87, 0xaa88, 0xaa89, 0xaa8a, 0xaa8b, 0xaa8c, - 0xaa8d, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa93, 0xaa94, 0xaa95, - 0xaa96, 0xaa97, 0xaa98, 0xaa99, 0xaa9a, 0xaa9b, 0xaa9c, 0xaa9d, - 0xaaa1, 0xaaa2, 0xaaa3, 0xaaa4, 0xaaa5, 0xaaa6, 0xaaa7, 0xaaa8, - 0xaaa9, 0xaaaa, 0xaaab, 0xaaac, 0xaaad, 0xaaae, 0xaaaf, 0xaab0, - 0xaab1, 0xaab3, 0xaab4, 0xaab5, 0xaab6, 0xaab7, 0xaab8, 0xaab9, - /* 0xc000 .. 0xc0ff */ - 0xaaba, 0xaabb, 0xaabc, 0xaabd, 0xaac1, 0xaac2, 0xaac3, 0xaac4, - 0xaac5, 0xaac6, 0xaac7, 0xaac8, 0xaac9, 0xaaca, 0xaacb, 0xaacc, - 0xaacd, 0xaace, 0xaacf, 0xaad0, 0xaad1, 0xaad3, 0xaad4, 0xaad5, - 0xaad6, 0xaad7, 0xaad8, 0xaad9, 0xaada, 0xaadb, 0xaadc, 0xaadd, - 0xaae1, 0xaae2, 0xaae3, 0xaae4, 0xaae5, 0xaae6, 0xaae7, 0xaae8, - 0xaae9, 0xaaea, 0xaaeb, 0xaaec, 0xaaed, 0xaaee, 0xaaef, 0xaaf0, - 0xaaf1, 0xaaf3, 0xaaf4, 0xaaf5, 0xaaf6, 0xaaf7, 0xaaf8, 0xaaf9, - 0xaafa, 0xaafb, 0xaafc, 0xaafd, 0xab41, 0xab42, 0xab43, 0xab44, - 0xab45, 0xab46, 0xab47, 0xab48, 0xab49, 0xab4a, 0xab4b, 0xab4c, - 0xab4d, 0xab4e, 0xab4f, 0xab50, 0xab51, 0xab53, 0xab54, 0xab55, - 0xab56, 0xab57, 0xab58, 0xab59, 0xab5a, 0xab5b, 0xab5c, 0xab5d, - 0xab61, 0xab62, 0xab63, 0xab64, 0xab65, 0xab66, 0xab67, 0xab68, - 0xab69, 0xab6a, 0xab6b, 0xab6c, 0xab6d, 0xab6e, 0xab6f, 0xab70, - 0xab71, 0xab73, 0xab74, 0xab75, 0xab76, 0xab77, 0xab78, 0xab79, - 0xab7a, 0xab7b, 0xab7c, 0xab7d, 0xab81, 0xab82, 0xab83, 0xab84, - 0xab85, 0xab86, 0xab87, 0xab88, 0xab89, 0xab8a, 0xab8b, 0xab8c, - 0xab8d, 0xab8e, 0xab8f, 0xab90, 0xab91, 0xab93, 0xab94, 0xab95, - 0xab96, 0xab97, 0xab98, 0xab99, 0xab9a, 0xab9b, 0xab9c, 0xab9d, - 0xaba1, 0xaba2, 0xaba3, 0xaba4, 0xaba5, 0xaba6, 0xaba7, 0xaba8, - 0xaba9, 0xabaa, 0xabab, 0xabac, 0xabad, 0xabae, 0xabaf, 0xabb0, - 0xabb1, 0xabb3, 0xabb4, 0xabb5, 0xabb6, 0xabb7, 0xabb8, 0xabb9, - 0xabba, 0xabbb, 0xabbc, 0xabbd, 0xac61, 0xac62, 0xac63, 0xac64, - 0xac65, 0xac66, 0xac67, 0xac68, 0xac69, 0xac6a, 0xac6b, 0xac6c, - 0xac6d, 0xac6e, 0xac6f, 0xac70, 0xac71, 0xac73, 0xac74, 0xac75, - 0xac76, 0xac77, 0xac78, 0xac79, 0xac7a, 0xac7b, 0xac7c, 0xac7d, - 0xac81, 0xac82, 0xac83, 0xac84, 0xac85, 0xac86, 0xac87, 0xac88, - 0xac89, 0xac8a, 0xac8b, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, - 0xac91, 0xac93, 0xac94, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, - 0xac9a, 0xac9b, 0xac9c, 0xac9d, 0xaca1, 0xaca2, 0xaca3, 0xaca4, - 0xaca5, 0xaca6, 0xaca7, 0xaca8, 0xaca9, 0xacaa, 0xacab, 0xacac, - 0xacad, 0xacae, 0xacaf, 0xacb0, 0xacb1, 0xacb3, 0xacb4, 0xacb5, - 0xacb6, 0xacb7, 0xacb8, 0xacb9, 0xacba, 0xacbb, 0xacbc, 0xacbd, - /* 0xc100 .. 0xc1ff */ - 0xacc1, 0xacc2, 0xacc3, 0xacc4, 0xacc5, 0xacc6, 0xacc7, 0xacc8, - 0xacc9, 0xacca, 0xaccb, 0xaccc, 0xaccd, 0xacce, 0xaccf, 0xacd0, - 0xacd1, 0xacd3, 0xacd4, 0xacd5, 0xacd6, 0xacd7, 0xacd8, 0xacd9, - 0xacda, 0xacdb, 0xacdc, 0xacdd, 0xace1, 0xace2, 0xace3, 0xace4, - 0xace5, 0xace6, 0xace7, 0xace8, 0xace9, 0xacea, 0xaceb, 0xacec, - 0xaced, 0xacee, 0xacef, 0xacf0, 0xacf1, 0xacf3, 0xacf4, 0xacf5, - 0xacf6, 0xacf7, 0xacf8, 0xacf9, 0xacfa, 0xacfb, 0xacfc, 0xacfd, - 0xad41, 0xad42, 0xad43, 0xad44, 0xad45, 0xad46, 0xad47, 0xad48, - 0xad49, 0xad4a, 0xad4b, 0xad4c, 0xad4d, 0xad4e, 0xad4f, 0xad50, - 0xad51, 0xad53, 0xad54, 0xad55, 0xad56, 0xad57, 0xad58, 0xad59, - 0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad61, 0xad62, 0xad63, 0xad64, - 0xad65, 0xad66, 0xad67, 0xad68, 0xad69, 0xad6a, 0xad6b, 0xad6c, - 0xad6d, 0xad6e, 0xad6f, 0xad70, 0xad71, 0xad73, 0xad74, 0xad75, - 0xad76, 0xad77, 0xad78, 0xad79, 0xad7a, 0xad7b, 0xad7c, 0xad7d, - 0xad81, 0xad82, 0xad83, 0xad84, 0xad85, 0xad86, 0xad87, 0xad88, - 0xad89, 0xad8a, 0xad8b, 0xad8c, 0xad8d, 0xad8e, 0xad8f, 0xad90, - 0xad91, 0xad93, 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xad99, - 0xad9a, 0xad9b, 0xad9c, 0xad9d, 0xada1, 0xada2, 0xada3, 0xada4, - 0xada5, 0xada6, 0xada7, 0xada8, 0xada9, 0xadaa, 0xadab, 0xadac, - 0xadad, 0xadae, 0xadaf, 0xadb0, 0xadb1, 0xadb3, 0xadb4, 0xadb5, - 0xadb6, 0xadb7, 0xadb8, 0xadb9, 0xadba, 0xadbb, 0xadbc, 0xadbd, - 0xadc1, 0xadc2, 0xadc3, 0xadc4, 0xadc5, 0xadc6, 0xadc7, 0xadc8, - 0xadc9, 0xadca, 0xadcb, 0xadcc, 0xadcd, 0xadce, 0xadcf, 0xadd0, - 0xadd1, 0xadd3, 0xadd4, 0xadd5, 0xadd6, 0xadd7, 0xadd8, 0xadd9, - 0xadda, 0xaddb, 0xaddc, 0xaddd, 0xade1, 0xade2, 0xade3, 0xade4, - 0xade5, 0xade6, 0xade7, 0xade8, 0xade9, 0xadea, 0xadeb, 0xadec, - 0xaded, 0xadee, 0xadef, 0xadf0, 0xadf1, 0xadf3, 0xadf4, 0xadf5, - 0xadf6, 0xadf7, 0xadf8, 0xadf9, 0xadfa, 0xadfb, 0xadfc, 0xadfd, - 0xae41, 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae47, 0xae48, - 0xae49, 0xae4a, 0xae4b, 0xae4c, 0xae4d, 0xae4e, 0xae4f, 0xae50, - 0xae51, 0xae53, 0xae54, 0xae55, 0xae56, 0xae57, 0xae58, 0xae59, - 0xae5a, 0xae5b, 0xae5c, 0xae5d, 0xae61, 0xae62, 0xae63, 0xae64, - /* 0xc200 .. 0xc2ff */ - 0xae65, 0xae66, 0xae67, 0xae68, 0xae69, 0xae6a, 0xae6b, 0xae6c, - 0xae6d, 0xae6e, 0xae6f, 0xae70, 0xae71, 0xae73, 0xae74, 0xae75, - 0xae76, 0xae77, 0xae78, 0xae79, 0xae7a, 0xae7b, 0xae7c, 0xae7d, - 0xae81, 0xae82, 0xae83, 0xae84, 0xae85, 0xae86, 0xae87, 0xae88, - 0xae89, 0xae8a, 0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xae8f, 0xae90, - 0xae91, 0xae93, 0xae94, 0xae95, 0xae96, 0xae97, 0xae98, 0xae99, - 0xae9a, 0xae9b, 0xae9c, 0xae9d, 0xaea1, 0xaea2, 0xaea3, 0xaea4, - 0xaea5, 0xaea6, 0xaea7, 0xaea8, 0xaea9, 0xaeaa, 0xaeab, 0xaeac, - 0xaead, 0xaeae, 0xaeaf, 0xaeb0, 0xaeb1, 0xaeb3, 0xaeb4, 0xaeb5, - 0xaeb6, 0xaeb7, 0xaeb8, 0xaeb9, 0xaeba, 0xaebb, 0xaebc, 0xaebd, - 0xaec1, 0xaec2, 0xaec3, 0xaec4, 0xaec5, 0xaec6, 0xaec7, 0xaec8, - 0xaec9, 0xaeca, 0xaecb, 0xaecc, 0xaecd, 0xaece, 0xaecf, 0xaed0, - 0xaed1, 0xaed3, 0xaed4, 0xaed5, 0xaed6, 0xaed7, 0xaed8, 0xaed9, - 0xaeda, 0xaedb, 0xaedc, 0xaedd, 0xaee1, 0xaee2, 0xaee3, 0xaee4, - 0xaee5, 0xaee6, 0xaee7, 0xaee8, 0xaee9, 0xaeea, 0xaeeb, 0xaeec, - 0xaeed, 0xaeee, 0xaeef, 0xaef0, 0xaef1, 0xaef3, 0xaef4, 0xaef5, - 0xaef6, 0xaef7, 0xaef8, 0xaef9, 0xaefa, 0xaefb, 0xaefc, 0xaefd, - 0xaf41, 0xaf42, 0xaf43, 0xaf44, 0xaf45, 0xaf46, 0xaf47, 0xaf48, - 0xaf49, 0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, 0xaf50, - 0xaf51, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xaf59, - 0xaf5a, 0xaf5b, 0xaf5c, 0xaf5d, 0xaf61, 0xaf62, 0xaf63, 0xaf64, - 0xaf65, 0xaf66, 0xaf67, 0xaf68, 0xaf69, 0xaf6a, 0xaf6b, 0xaf6c, - 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, 0xaf71, 0xaf73, 0xaf74, 0xaf75, - 0xaf76, 0xaf77, 0xaf78, 0xaf79, 0xaf7a, 0xaf7b, 0xaf7c, 0xaf7d, - 0xaf81, 0xaf82, 0xaf83, 0xaf84, 0xaf85, 0xaf86, 0xaf87, 0xaf88, - 0xaf89, 0xaf8a, 0xaf8b, 0xaf8c, 0xaf8d, 0xaf8e, 0xaf8f, 0xaf90, - 0xaf91, 0xaf93, 0xaf94, 0xaf95, 0xaf96, 0xaf97, 0xaf98, 0xaf99, - 0xaf9a, 0xaf9b, 0xaf9c, 0xaf9d, 0xafa1, 0xafa2, 0xafa3, 0xafa4, - 0xafa5, 0xafa6, 0xafa7, 0xafa8, 0xafa9, 0xafaa, 0xafab, 0xafac, - 0xafad, 0xafae, 0xafaf, 0xafb0, 0xafb1, 0xafb3, 0xafb4, 0xafb5, - 0xafb6, 0xafb7, 0xafb8, 0xafb9, 0xafba, 0xafbb, 0xafbc, 0xafbd, - 0xb061, 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, - /* 0xc300 .. 0xc3ff */ - 0xb069, 0xb06a, 0xb06b, 0xb06c, 0xb06d, 0xb06e, 0xb06f, 0xb070, - 0xb071, 0xb073, 0xb074, 0xb075, 0xb076, 0xb077, 0xb078, 0xb079, - 0xb07a, 0xb07b, 0xb07c, 0xb07d, 0xb081, 0xb082, 0xb083, 0xb084, - 0xb085, 0xb086, 0xb087, 0xb088, 0xb089, 0xb08a, 0xb08b, 0xb08c, - 0xb08d, 0xb08e, 0xb08f, 0xb090, 0xb091, 0xb093, 0xb094, 0xb095, - 0xb096, 0xb097, 0xb098, 0xb099, 0xb09a, 0xb09b, 0xb09c, 0xb09d, - 0xb0a1, 0xb0a2, 0xb0a3, 0xb0a4, 0xb0a5, 0xb0a6, 0xb0a7, 0xb0a8, - 0xb0a9, 0xb0aa, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, 0xb0af, 0xb0b0, - 0xb0b1, 0xb0b3, 0xb0b4, 0xb0b5, 0xb0b6, 0xb0b7, 0xb0b8, 0xb0b9, - 0xb0ba, 0xb0bb, 0xb0bc, 0xb0bd, 0xb0c1, 0xb0c2, 0xb0c3, 0xb0c4, - 0xb0c5, 0xb0c6, 0xb0c7, 0xb0c8, 0xb0c9, 0xb0ca, 0xb0cb, 0xb0cc, - 0xb0cd, 0xb0ce, 0xb0cf, 0xb0d0, 0xb0d1, 0xb0d3, 0xb0d4, 0xb0d5, - 0xb0d6, 0xb0d7, 0xb0d8, 0xb0d9, 0xb0da, 0xb0db, 0xb0dc, 0xb0dd, - 0xb0e1, 0xb0e2, 0xb0e3, 0xb0e4, 0xb0e5, 0xb0e6, 0xb0e7, 0xb0e8, - 0xb0e9, 0xb0ea, 0xb0eb, 0xb0ec, 0xb0ed, 0xb0ee, 0xb0ef, 0xb0f0, - 0xb0f1, 0xb0f3, 0xb0f4, 0xb0f5, 0xb0f6, 0xb0f7, 0xb0f8, 0xb0f9, - 0xb0fa, 0xb0fb, 0xb0fc, 0xb0fd, 0xb141, 0xb142, 0xb143, 0xb144, - 0xb145, 0xb146, 0xb147, 0xb148, 0xb149, 0xb14a, 0xb14b, 0xb14c, - 0xb14d, 0xb14e, 0xb14f, 0xb150, 0xb151, 0xb153, 0xb154, 0xb155, - 0xb156, 0xb157, 0xb158, 0xb159, 0xb15a, 0xb15b, 0xb15c, 0xb15d, - 0xb161, 0xb162, 0xb163, 0xb164, 0xb165, 0xb166, 0xb167, 0xb168, - 0xb169, 0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, - 0xb171, 0xb173, 0xb174, 0xb175, 0xb176, 0xb177, 0xb178, 0xb179, - 0xb17a, 0xb17b, 0xb17c, 0xb17d, 0xb181, 0xb182, 0xb183, 0xb184, - 0xb185, 0xb186, 0xb187, 0xb188, 0xb189, 0xb18a, 0xb18b, 0xb18c, - 0xb18d, 0xb18e, 0xb18f, 0xb190, 0xb191, 0xb193, 0xb194, 0xb195, - 0xb196, 0xb197, 0xb198, 0xb199, 0xb19a, 0xb19b, 0xb19c, 0xb19d, - 0xb1a1, 0xb1a2, 0xb1a3, 0xb1a4, 0xb1a5, 0xb1a6, 0xb1a7, 0xb1a8, - 0xb1a9, 0xb1aa, 0xb1ab, 0xb1ac, 0xb1ad, 0xb1ae, 0xb1af, 0xb1b0, - 0xb1b1, 0xb1b3, 0xb1b4, 0xb1b5, 0xb1b6, 0xb1b7, 0xb1b8, 0xb1b9, - 0xb1ba, 0xb1bb, 0xb1bc, 0xb1bd, 0xb1c1, 0xb1c2, 0xb1c3, 0xb1c4, - 0xb1c5, 0xb1c6, 0xb1c7, 0xb1c8, 0xb1c9, 0xb1ca, 0xb1cb, 0xb1cc, - /* 0xc400 .. 0xc4ff */ - 0xb1cd, 0xb1ce, 0xb1cf, 0xb1d0, 0xb1d1, 0xb1d3, 0xb1d4, 0xb1d5, - 0xb1d6, 0xb1d7, 0xb1d8, 0xb1d9, 0xb1da, 0xb1db, 0xb1dc, 0xb1dd, - 0xb1e1, 0xb1e2, 0xb1e3, 0xb1e4, 0xb1e5, 0xb1e6, 0xb1e7, 0xb1e8, - 0xb1e9, 0xb1ea, 0xb1eb, 0xb1ec, 0xb1ed, 0xb1ee, 0xb1ef, 0xb1f0, - 0xb1f1, 0xb1f3, 0xb1f4, 0xb1f5, 0xb1f6, 0xb1f7, 0xb1f8, 0xb1f9, - 0xb1fa, 0xb1fb, 0xb1fc, 0xb1fd, 0xb241, 0xb242, 0xb243, 0xb244, - 0xb245, 0xb246, 0xb247, 0xb248, 0xb249, 0xb24a, 0xb24b, 0xb24c, - 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, 0xb253, 0xb254, 0xb255, - 0xb256, 0xb257, 0xb258, 0xb259, 0xb25a, 0xb25b, 0xb25c, 0xb25d, - 0xb261, 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb268, - 0xb269, 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, 0xb26f, 0xb270, - 0xb271, 0xb273, 0xb274, 0xb275, 0xb276, 0xb277, 0xb278, 0xb279, - 0xb27a, 0xb27b, 0xb27c, 0xb27d, 0xb281, 0xb282, 0xb283, 0xb284, - 0xb285, 0xb286, 0xb287, 0xb288, 0xb289, 0xb28a, 0xb28b, 0xb28c, - 0xb28d, 0xb28e, 0xb28f, 0xb290, 0xb291, 0xb293, 0xb294, 0xb295, - 0xb296, 0xb297, 0xb298, 0xb299, 0xb29a, 0xb29b, 0xb29c, 0xb29d, - 0xb2a1, 0xb2a2, 0xb2a3, 0xb2a4, 0xb2a5, 0xb2a6, 0xb2a7, 0xb2a8, - 0xb2a9, 0xb2aa, 0xb2ab, 0xb2ac, 0xb2ad, 0xb2ae, 0xb2af, 0xb2b0, - 0xb2b1, 0xb2b3, 0xb2b4, 0xb2b5, 0xb2b6, 0xb2b7, 0xb2b8, 0xb2b9, - 0xb2ba, 0xb2bb, 0xb2bc, 0xb2bd, 0xb2c1, 0xb2c2, 0xb2c3, 0xb2c4, - 0xb2c5, 0xb2c6, 0xb2c7, 0xb2c8, 0xb2c9, 0xb2ca, 0xb2cb, 0xb2cc, - 0xb2cd, 0xb2ce, 0xb2cf, 0xb2d0, 0xb2d1, 0xb2d3, 0xb2d4, 0xb2d5, - 0xb2d6, 0xb2d7, 0xb2d8, 0xb2d9, 0xb2da, 0xb2db, 0xb2dc, 0xb2dd, - 0xb2e1, 0xb2e2, 0xb2e3, 0xb2e4, 0xb2e5, 0xb2e6, 0xb2e7, 0xb2e8, - 0xb2e9, 0xb2ea, 0xb2eb, 0xb2ec, 0xb2ed, 0xb2ee, 0xb2ef, 0xb2f0, - 0xb2f1, 0xb2f3, 0xb2f4, 0xb2f5, 0xb2f6, 0xb2f7, 0xb2f8, 0xb2f9, - 0xb2fa, 0xb2fb, 0xb2fc, 0xb2fd, 0xb341, 0xb342, 0xb343, 0xb344, - 0xb345, 0xb346, 0xb347, 0xb348, 0xb349, 0xb34a, 0xb34b, 0xb34c, - 0xb34d, 0xb34e, 0xb34f, 0xb350, 0xb351, 0xb353, 0xb354, 0xb355, - 0xb356, 0xb357, 0xb358, 0xb359, 0xb35a, 0xb35b, 0xb35c, 0xb35d, - 0xb361, 0xb362, 0xb363, 0xb364, 0xb365, 0xb366, 0xb367, 0xb368, - 0xb369, 0xb36a, 0xb36b, 0xb36c, 0xb36d, 0xb36e, 0xb36f, 0xb370, - /* 0xc500 .. 0xc5ff */ - 0xb371, 0xb373, 0xb374, 0xb375, 0xb376, 0xb377, 0xb378, 0xb379, - 0xb37a, 0xb37b, 0xb37c, 0xb37d, 0xb381, 0xb382, 0xb383, 0xb384, - 0xb385, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a, 0xb38b, 0xb38c, - 0xb38d, 0xb38e, 0xb38f, 0xb390, 0xb391, 0xb393, 0xb394, 0xb395, - 0xb396, 0xb397, 0xb398, 0xb399, 0xb39a, 0xb39b, 0xb39c, 0xb39d, - 0xb3a1, 0xb3a2, 0xb3a3, 0xb3a4, 0xb3a5, 0xb3a6, 0xb3a7, 0xb3a8, - 0xb3a9, 0xb3aa, 0xb3ab, 0xb3ac, 0xb3ad, 0xb3ae, 0xb3af, 0xb3b0, - 0xb3b1, 0xb3b3, 0xb3b4, 0xb3b5, 0xb3b6, 0xb3b7, 0xb3b8, 0xb3b9, - 0xb3ba, 0xb3bb, 0xb3bc, 0xb3bd, 0xb461, 0xb462, 0xb463, 0xb464, - 0xb465, 0xb466, 0xb467, 0xb468, 0xb469, 0xb46a, 0xb46b, 0xb46c, - 0xb46d, 0xb46e, 0xb46f, 0xb470, 0xb471, 0xb473, 0xb474, 0xb475, - 0xb476, 0xb477, 0xb478, 0xb479, 0xb47a, 0xb47b, 0xb47c, 0xb47d, - 0xb481, 0xb482, 0xb483, 0xb484, 0xb485, 0xb486, 0xb487, 0xb488, - 0xb489, 0xb48a, 0xb48b, 0xb48c, 0xb48d, 0xb48e, 0xb48f, 0xb490, - 0xb491, 0xb493, 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xb499, - 0xb49a, 0xb49b, 0xb49c, 0xb49d, 0xb4a1, 0xb4a2, 0xb4a3, 0xb4a4, - 0xb4a5, 0xb4a6, 0xb4a7, 0xb4a8, 0xb4a9, 0xb4aa, 0xb4ab, 0xb4ac, - 0xb4ad, 0xb4ae, 0xb4af, 0xb4b0, 0xb4b1, 0xb4b3, 0xb4b4, 0xb4b5, - 0xb4b6, 0xb4b7, 0xb4b8, 0xb4b9, 0xb4ba, 0xb4bb, 0xb4bc, 0xb4bd, - 0xb4c1, 0xb4c2, 0xb4c3, 0xb4c4, 0xb4c5, 0xb4c6, 0xb4c7, 0xb4c8, - 0xb4c9, 0xb4ca, 0xb4cb, 0xb4cc, 0xb4cd, 0xb4ce, 0xb4cf, 0xb4d0, - 0xb4d1, 0xb4d3, 0xb4d4, 0xb4d5, 0xb4d6, 0xb4d7, 0xb4d8, 0xb4d9, - 0xb4da, 0xb4db, 0xb4dc, 0xb4dd, 0xb4e1, 0xb4e2, 0xb4e3, 0xb4e4, - 0xb4e5, 0xb4e6, 0xb4e7, 0xb4e8, 0xb4e9, 0xb4ea, 0xb4eb, 0xb4ec, - 0xb4ed, 0xb4ee, 0xb4ef, 0xb4f0, 0xb4f1, 0xb4f3, 0xb4f4, 0xb4f5, - 0xb4f6, 0xb4f7, 0xb4f8, 0xb4f9, 0xb4fa, 0xb4fb, 0xb4fc, 0xb4fd, - 0xb541, 0xb542, 0xb543, 0xb544, 0xb545, 0xb546, 0xb547, 0xb548, - 0xb549, 0xb54a, 0xb54b, 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xb550, - 0xb551, 0xb553, 0xb554, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559, - 0xb55a, 0xb55b, 0xb55c, 0xb55d, 0xb561, 0xb562, 0xb563, 0xb564, - 0xb565, 0xb566, 0xb567, 0xb568, 0xb569, 0xb56a, 0xb56b, 0xb56c, - 0xb56d, 0xb56e, 0xb56f, 0xb570, 0xb571, 0xb573, 0xb574, 0xb575, - /* 0xc600 .. 0xc6ff */ - 0xb576, 0xb577, 0xb578, 0xb579, 0xb57a, 0xb57b, 0xb57c, 0xb57d, - 0xb581, 0xb582, 0xb583, 0xb584, 0xb585, 0xb586, 0xb587, 0xb588, - 0xb589, 0xb58a, 0xb58b, 0xb58c, 0xb58d, 0xb58e, 0xb58f, 0xb590, - 0xb591, 0xb593, 0xb594, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, - 0xb59a, 0xb59b, 0xb59c, 0xb59d, 0xb5a1, 0xb5a2, 0xb5a3, 0xb5a4, - 0xb5a5, 0xb5a6, 0xb5a7, 0xb5a8, 0xb5a9, 0xb5aa, 0xb5ab, 0xb5ac, - 0xb5ad, 0xb5ae, 0xb5af, 0xb5b0, 0xb5b1, 0xb5b3, 0xb5b4, 0xb5b5, - 0xb5b6, 0xb5b7, 0xb5b8, 0xb5b9, 0xb5ba, 0xb5bb, 0xb5bc, 0xb5bd, - 0xb5c1, 0xb5c2, 0xb5c3, 0xb5c4, 0xb5c5, 0xb5c6, 0xb5c7, 0xb5c8, - 0xb5c9, 0xb5ca, 0xb5cb, 0xb5cc, 0xb5cd, 0xb5ce, 0xb5cf, 0xb5d0, - 0xb5d1, 0xb5d3, 0xb5d4, 0xb5d5, 0xb5d6, 0xb5d7, 0xb5d8, 0xb5d9, - 0xb5da, 0xb5db, 0xb5dc, 0xb5dd, 0xb5e1, 0xb5e2, 0xb5e3, 0xb5e4, - 0xb5e5, 0xb5e6, 0xb5e7, 0xb5e8, 0xb5e9, 0xb5ea, 0xb5eb, 0xb5ec, - 0xb5ed, 0xb5ee, 0xb5ef, 0xb5f0, 0xb5f1, 0xb5f3, 0xb5f4, 0xb5f5, - 0xb5f6, 0xb5f7, 0xb5f8, 0xb5f9, 0xb5fa, 0xb5fb, 0xb5fc, 0xb5fd, - 0xb641, 0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xb647, 0xb648, - 0xb649, 0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, - 0xb651, 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, - 0xb65a, 0xb65b, 0xb65c, 0xb65d, 0xb661, 0xb662, 0xb663, 0xb664, - 0xb665, 0xb666, 0xb667, 0xb668, 0xb669, 0xb66a, 0xb66b, 0xb66c, - 0xb66d, 0xb66e, 0xb66f, 0xb670, 0xb671, 0xb673, 0xb674, 0xb675, - 0xb676, 0xb677, 0xb678, 0xb679, 0xb67a, 0xb67b, 0xb67c, 0xb67d, - 0xb681, 0xb682, 0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, - 0xb689, 0xb68a, 0xb68b, 0xb68c, 0xb68d, 0xb68e, 0xb68f, 0xb690, - 0xb691, 0xb693, 0xb694, 0xb695, 0xb696, 0xb697, 0xb698, 0xb699, - 0xb69a, 0xb69b, 0xb69c, 0xb69d, 0xb6a1, 0xb6a2, 0xb6a3, 0xb6a4, - 0xb6a5, 0xb6a6, 0xb6a7, 0xb6a8, 0xb6a9, 0xb6aa, 0xb6ab, 0xb6ac, - 0xb6ad, 0xb6ae, 0xb6af, 0xb6b0, 0xb6b1, 0xb6b3, 0xb6b4, 0xb6b5, - 0xb6b6, 0xb6b7, 0xb6b8, 0xb6b9, 0xb6ba, 0xb6bb, 0xb6bc, 0xb6bd, - 0xb6c1, 0xb6c2, 0xb6c3, 0xb6c4, 0xb6c5, 0xb6c6, 0xb6c7, 0xb6c8, - 0xb6c9, 0xb6ca, 0xb6cb, 0xb6cc, 0xb6cd, 0xb6ce, 0xb6cf, 0xb6d0, - 0xb6d1, 0xb6d3, 0xb6d4, 0xb6d5, 0xb6d6, 0xb6d7, 0xb6d8, 0xb6d9, - /* 0xc700 .. 0xc7ff */ - 0xb6da, 0xb6db, 0xb6dc, 0xb6dd, 0xb6e1, 0xb6e2, 0xb6e3, 0xb6e4, - 0xb6e5, 0xb6e6, 0xb6e7, 0xb6e8, 0xb6e9, 0xb6ea, 0xb6eb, 0xb6ec, - 0xb6ed, 0xb6ee, 0xb6ef, 0xb6f0, 0xb6f1, 0xb6f3, 0xb6f4, 0xb6f5, - 0xb6f6, 0xb6f7, 0xb6f8, 0xb6f9, 0xb6fa, 0xb6fb, 0xb6fc, 0xb6fd, - 0xb741, 0xb742, 0xb743, 0xb744, 0xb745, 0xb746, 0xb747, 0xb748, - 0xb749, 0xb74a, 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xb74f, 0xb750, - 0xb751, 0xb753, 0xb754, 0xb755, 0xb756, 0xb757, 0xb758, 0xb759, - 0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb761, 0xb762, 0xb763, 0xb764, - 0xb765, 0xb766, 0xb767, 0xb768, 0xb769, 0xb76a, 0xb76b, 0xb76c, - 0xb76d, 0xb76e, 0xb76f, 0xb770, 0xb771, 0xb773, 0xb774, 0xb775, - 0xb776, 0xb777, 0xb778, 0xb779, 0xb77a, 0xb77b, 0xb77c, 0xb77d, - 0xb781, 0xb782, 0xb783, 0xb784, 0xb785, 0xb786, 0xb787, 0xb788, - 0xb789, 0xb78a, 0xb78b, 0xb78c, 0xb78d, 0xb78e, 0xb78f, 0xb790, - 0xb791, 0xb793, 0xb794, 0xb795, 0xb796, 0xb797, 0xb798, 0xb799, - 0xb79a, 0xb79b, 0xb79c, 0xb79d, 0xb7a1, 0xb7a2, 0xb7a3, 0xb7a4, - 0xb7a5, 0xb7a6, 0xb7a7, 0xb7a8, 0xb7a9, 0xb7aa, 0xb7ab, 0xb7ac, - 0xb7ad, 0xb7ae, 0xb7af, 0xb7b0, 0xb7b1, 0xb7b3, 0xb7b4, 0xb7b5, - 0xb7b6, 0xb7b7, 0xb7b8, 0xb7b9, 0xb7ba, 0xb7bb, 0xb7bc, 0xb7bd, - 0xb861, 0xb862, 0xb863, 0xb864, 0xb865, 0xb866, 0xb867, 0xb868, - 0xb869, 0xb86a, 0xb86b, 0xb86c, 0xb86d, 0xb86e, 0xb86f, 0xb870, - 0xb871, 0xb873, 0xb874, 0xb875, 0xb876, 0xb877, 0xb878, 0xb879, - 0xb87a, 0xb87b, 0xb87c, 0xb87d, 0xb881, 0xb882, 0xb883, 0xb884, - 0xb885, 0xb886, 0xb887, 0xb888, 0xb889, 0xb88a, 0xb88b, 0xb88c, - 0xb88d, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb893, 0xb894, 0xb895, - 0xb896, 0xb897, 0xb898, 0xb899, 0xb89a, 0xb89b, 0xb89c, 0xb89d, - 0xb8a1, 0xb8a2, 0xb8a3, 0xb8a4, 0xb8a5, 0xb8a6, 0xb8a7, 0xb8a8, - 0xb8a9, 0xb8aa, 0xb8ab, 0xb8ac, 0xb8ad, 0xb8ae, 0xb8af, 0xb8b0, - 0xb8b1, 0xb8b3, 0xb8b4, 0xb8b5, 0xb8b6, 0xb8b7, 0xb8b8, 0xb8b9, - 0xb8ba, 0xb8bb, 0xb8bc, 0xb8bd, 0xb8c1, 0xb8c2, 0xb8c3, 0xb8c4, - 0xb8c5, 0xb8c6, 0xb8c7, 0xb8c8, 0xb8c9, 0xb8ca, 0xb8cb, 0xb8cc, - 0xb8cd, 0xb8ce, 0xb8cf, 0xb8d0, 0xb8d1, 0xb8d3, 0xb8d4, 0xb8d5, - 0xb8d6, 0xb8d7, 0xb8d8, 0xb8d9, 0xb8da, 0xb8db, 0xb8dc, 0xb8dd, - /* 0xc800 .. 0xc8ff */ - 0xb8e1, 0xb8e2, 0xb8e3, 0xb8e4, 0xb8e5, 0xb8e6, 0xb8e7, 0xb8e8, - 0xb8e9, 0xb8ea, 0xb8eb, 0xb8ec, 0xb8ed, 0xb8ee, 0xb8ef, 0xb8f0, - 0xb8f1, 0xb8f3, 0xb8f4, 0xb8f5, 0xb8f6, 0xb8f7, 0xb8f8, 0xb8f9, - 0xb8fa, 0xb8fb, 0xb8fc, 0xb8fd, 0xb941, 0xb942, 0xb943, 0xb944, - 0xb945, 0xb946, 0xb947, 0xb948, 0xb949, 0xb94a, 0xb94b, 0xb94c, - 0xb94d, 0xb94e, 0xb94f, 0xb950, 0xb951, 0xb953, 0xb954, 0xb955, - 0xb956, 0xb957, 0xb958, 0xb959, 0xb95a, 0xb95b, 0xb95c, 0xb95d, - 0xb961, 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xb968, - 0xb969, 0xb96a, 0xb96b, 0xb96c, 0xb96d, 0xb96e, 0xb96f, 0xb970, - 0xb971, 0xb973, 0xb974, 0xb975, 0xb976, 0xb977, 0xb978, 0xb979, - 0xb97a, 0xb97b, 0xb97c, 0xb97d, 0xb981, 0xb982, 0xb983, 0xb984, - 0xb985, 0xb986, 0xb987, 0xb988, 0xb989, 0xb98a, 0xb98b, 0xb98c, - 0xb98d, 0xb98e, 0xb98f, 0xb990, 0xb991, 0xb993, 0xb994, 0xb995, - 0xb996, 0xb997, 0xb998, 0xb999, 0xb99a, 0xb99b, 0xb99c, 0xb99d, - 0xb9a1, 0xb9a2, 0xb9a3, 0xb9a4, 0xb9a5, 0xb9a6, 0xb9a7, 0xb9a8, - 0xb9a9, 0xb9aa, 0xb9ab, 0xb9ac, 0xb9ad, 0xb9ae, 0xb9af, 0xb9b0, - 0xb9b1, 0xb9b3, 0xb9b4, 0xb9b5, 0xb9b6, 0xb9b7, 0xb9b8, 0xb9b9, - 0xb9ba, 0xb9bb, 0xb9bc, 0xb9bd, 0xb9c1, 0xb9c2, 0xb9c3, 0xb9c4, - 0xb9c5, 0xb9c6, 0xb9c7, 0xb9c8, 0xb9c9, 0xb9ca, 0xb9cb, 0xb9cc, - 0xb9cd, 0xb9ce, 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d3, 0xb9d4, 0xb9d5, - 0xb9d6, 0xb9d7, 0xb9d8, 0xb9d9, 0xb9da, 0xb9db, 0xb9dc, 0xb9dd, - 0xb9e1, 0xb9e2, 0xb9e3, 0xb9e4, 0xb9e5, 0xb9e6, 0xb9e7, 0xb9e8, - 0xb9e9, 0xb9ea, 0xb9eb, 0xb9ec, 0xb9ed, 0xb9ee, 0xb9ef, 0xb9f0, - 0xb9f1, 0xb9f3, 0xb9f4, 0xb9f5, 0xb9f6, 0xb9f7, 0xb9f8, 0xb9f9, - 0xb9fa, 0xb9fb, 0xb9fc, 0xb9fd, 0xba41, 0xba42, 0xba43, 0xba44, - 0xba45, 0xba46, 0xba47, 0xba48, 0xba49, 0xba4a, 0xba4b, 0xba4c, - 0xba4d, 0xba4e, 0xba4f, 0xba50, 0xba51, 0xba53, 0xba54, 0xba55, - 0xba56, 0xba57, 0xba58, 0xba59, 0xba5a, 0xba5b, 0xba5c, 0xba5d, - 0xba61, 0xba62, 0xba63, 0xba64, 0xba65, 0xba66, 0xba67, 0xba68, - 0xba69, 0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0xba70, - 0xba71, 0xba73, 0xba74, 0xba75, 0xba76, 0xba77, 0xba78, 0xba79, - 0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba81, 0xba82, 0xba83, 0xba84, - /* 0xc900 .. 0xc9ff */ - 0xba85, 0xba86, 0xba87, 0xba88, 0xba89, 0xba8a, 0xba8b, 0xba8c, - 0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, 0xba93, 0xba94, 0xba95, - 0xba96, 0xba97, 0xba98, 0xba99, 0xba9a, 0xba9b, 0xba9c, 0xba9d, - 0xbaa1, 0xbaa2, 0xbaa3, 0xbaa4, 0xbaa5, 0xbaa6, 0xbaa7, 0xbaa8, - 0xbaa9, 0xbaaa, 0xbaab, 0xbaac, 0xbaad, 0xbaae, 0xbaaf, 0xbab0, - 0xbab1, 0xbab3, 0xbab4, 0xbab5, 0xbab6, 0xbab7, 0xbab8, 0xbab9, - 0xbaba, 0xbabb, 0xbabc, 0xbabd, 0xbac1, 0xbac2, 0xbac3, 0xbac4, - 0xbac5, 0xbac6, 0xbac7, 0xbac8, 0xbac9, 0xbaca, 0xbacb, 0xbacc, - 0xbacd, 0xbace, 0xbacf, 0xbad0, 0xbad1, 0xbad3, 0xbad4, 0xbad5, - 0xbad6, 0xbad7, 0xbad8, 0xbad9, 0xbada, 0xbadb, 0xbadc, 0xbadd, - 0xbae1, 0xbae2, 0xbae3, 0xbae4, 0xbae5, 0xbae6, 0xbae7, 0xbae8, - 0xbae9, 0xbaea, 0xbaeb, 0xbaec, 0xbaed, 0xbaee, 0xbaef, 0xbaf0, - 0xbaf1, 0xbaf3, 0xbaf4, 0xbaf5, 0xbaf6, 0xbaf7, 0xbaf8, 0xbaf9, - 0xbafa, 0xbafb, 0xbafc, 0xbafd, 0xbb41, 0xbb42, 0xbb43, 0xbb44, - 0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49, 0xbb4a, 0xbb4b, 0xbb4c, - 0xbb4d, 0xbb4e, 0xbb4f, 0xbb50, 0xbb51, 0xbb53, 0xbb54, 0xbb55, - 0xbb56, 0xbb57, 0xbb58, 0xbb59, 0xbb5a, 0xbb5b, 0xbb5c, 0xbb5d, - 0xbb61, 0xbb62, 0xbb63, 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68, - 0xbb69, 0xbb6a, 0xbb6b, 0xbb6c, 0xbb6d, 0xbb6e, 0xbb6f, 0xbb70, - 0xbb71, 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xbb77, 0xbb78, 0xbb79, - 0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb81, 0xbb82, 0xbb83, 0xbb84, - 0xbb85, 0xbb86, 0xbb87, 0xbb88, 0xbb89, 0xbb8a, 0xbb8b, 0xbb8c, - 0xbb8d, 0xbb8e, 0xbb8f, 0xbb90, 0xbb91, 0xbb93, 0xbb94, 0xbb95, - 0xbb96, 0xbb97, 0xbb98, 0xbb99, 0xbb9a, 0xbb9b, 0xbb9c, 0xbb9d, - 0xbba1, 0xbba2, 0xbba3, 0xbba4, 0xbba5, 0xbba6, 0xbba7, 0xbba8, - 0xbba9, 0xbbaa, 0xbbab, 0xbbac, 0xbbad, 0xbbae, 0xbbaf, 0xbbb0, - 0xbbb1, 0xbbb3, 0xbbb4, 0xbbb5, 0xbbb6, 0xbbb7, 0xbbb8, 0xbbb9, - 0xbbba, 0xbbbb, 0xbbbc, 0xbbbd, 0xbc61, 0xbc62, 0xbc63, 0xbc64, - 0xbc65, 0xbc66, 0xbc67, 0xbc68, 0xbc69, 0xbc6a, 0xbc6b, 0xbc6c, - 0xbc6d, 0xbc6e, 0xbc6f, 0xbc70, 0xbc71, 0xbc73, 0xbc74, 0xbc75, - 0xbc76, 0xbc77, 0xbc78, 0xbc79, 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, - 0xbc81, 0xbc82, 0xbc83, 0xbc84, 0xbc85, 0xbc86, 0xbc87, 0xbc88, - /* 0xca00 .. 0xcaff */ - 0xbc89, 0xbc8a, 0xbc8b, 0xbc8c, 0xbc8d, 0xbc8e, 0xbc8f, 0xbc90, - 0xbc91, 0xbc93, 0xbc94, 0xbc95, 0xbc96, 0xbc97, 0xbc98, 0xbc99, - 0xbc9a, 0xbc9b, 0xbc9c, 0xbc9d, 0xbca1, 0xbca2, 0xbca3, 0xbca4, - 0xbca5, 0xbca6, 0xbca7, 0xbca8, 0xbca9, 0xbcaa, 0xbcab, 0xbcac, - 0xbcad, 0xbcae, 0xbcaf, 0xbcb0, 0xbcb1, 0xbcb3, 0xbcb4, 0xbcb5, - 0xbcb6, 0xbcb7, 0xbcb8, 0xbcb9, 0xbcba, 0xbcbb, 0xbcbc, 0xbcbd, - 0xbcc1, 0xbcc2, 0xbcc3, 0xbcc4, 0xbcc5, 0xbcc6, 0xbcc7, 0xbcc8, - 0xbcc9, 0xbcca, 0xbccb, 0xbccc, 0xbccd, 0xbcce, 0xbccf, 0xbcd0, - 0xbcd1, 0xbcd3, 0xbcd4, 0xbcd5, 0xbcd6, 0xbcd7, 0xbcd8, 0xbcd9, - 0xbcda, 0xbcdb, 0xbcdc, 0xbcdd, 0xbce1, 0xbce2, 0xbce3, 0xbce4, - 0xbce5, 0xbce6, 0xbce7, 0xbce8, 0xbce9, 0xbcea, 0xbceb, 0xbcec, - 0xbced, 0xbcee, 0xbcef, 0xbcf0, 0xbcf1, 0xbcf3, 0xbcf4, 0xbcf5, - 0xbcf6, 0xbcf7, 0xbcf8, 0xbcf9, 0xbcfa, 0xbcfb, 0xbcfc, 0xbcfd, - 0xbd41, 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd48, - 0xbd49, 0xbd4a, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd50, - 0xbd51, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57, 0xbd58, 0xbd59, - 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd61, 0xbd62, 0xbd63, 0xbd64, - 0xbd65, 0xbd66, 0xbd67, 0xbd68, 0xbd69, 0xbd6a, 0xbd6b, 0xbd6c, - 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, 0xbd73, 0xbd74, 0xbd75, - 0xbd76, 0xbd77, 0xbd78, 0xbd79, 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, - 0xbd81, 0xbd82, 0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xbd87, 0xbd88, - 0xbd89, 0xbd8a, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd90, - 0xbd91, 0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, 0xbd98, 0xbd99, - 0xbd9a, 0xbd9b, 0xbd9c, 0xbd9d, 0xbda1, 0xbda2, 0xbda3, 0xbda4, - 0xbda5, 0xbda6, 0xbda7, 0xbda8, 0xbda9, 0xbdaa, 0xbdab, 0xbdac, - 0xbdad, 0xbdae, 0xbdaf, 0xbdb0, 0xbdb1, 0xbdb3, 0xbdb4, 0xbdb5, - 0xbdb6, 0xbdb7, 0xbdb8, 0xbdb9, 0xbdba, 0xbdbb, 0xbdbc, 0xbdbd, - 0xbdc1, 0xbdc2, 0xbdc3, 0xbdc4, 0xbdc5, 0xbdc6, 0xbdc7, 0xbdc8, - 0xbdc9, 0xbdca, 0xbdcb, 0xbdcc, 0xbdcd, 0xbdce, 0xbdcf, 0xbdd0, - 0xbdd1, 0xbdd3, 0xbdd4, 0xbdd5, 0xbdd6, 0xbdd7, 0xbdd8, 0xbdd9, - 0xbdda, 0xbddb, 0xbddc, 0xbddd, 0xbde1, 0xbde2, 0xbde3, 0xbde4, - 0xbde5, 0xbde6, 0xbde7, 0xbde8, 0xbde9, 0xbdea, 0xbdeb, 0xbdec, - /* 0xcb00 .. 0xcbff */ - 0xbded, 0xbdee, 0xbdef, 0xbdf0, 0xbdf1, 0xbdf3, 0xbdf4, 0xbdf5, - 0xbdf6, 0xbdf7, 0xbdf8, 0xbdf9, 0xbdfa, 0xbdfb, 0xbdfc, 0xbdfd, - 0xbe41, 0xbe42, 0xbe43, 0xbe44, 0xbe45, 0xbe46, 0xbe47, 0xbe48, - 0xbe49, 0xbe4a, 0xbe4b, 0xbe4c, 0xbe4d, 0xbe4e, 0xbe4f, 0xbe50, - 0xbe51, 0xbe53, 0xbe54, 0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59, - 0xbe5a, 0xbe5b, 0xbe5c, 0xbe5d, 0xbe61, 0xbe62, 0xbe63, 0xbe64, - 0xbe65, 0xbe66, 0xbe67, 0xbe68, 0xbe69, 0xbe6a, 0xbe6b, 0xbe6c, - 0xbe6d, 0xbe6e, 0xbe6f, 0xbe70, 0xbe71, 0xbe73, 0xbe74, 0xbe75, - 0xbe76, 0xbe77, 0xbe78, 0xbe79, 0xbe7a, 0xbe7b, 0xbe7c, 0xbe7d, - 0xbe81, 0xbe82, 0xbe83, 0xbe84, 0xbe85, 0xbe86, 0xbe87, 0xbe88, - 0xbe89, 0xbe8a, 0xbe8b, 0xbe8c, 0xbe8d, 0xbe8e, 0xbe8f, 0xbe90, - 0xbe91, 0xbe93, 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0xbe98, 0xbe99, - 0xbe9a, 0xbe9b, 0xbe9c, 0xbe9d, 0xbea1, 0xbea2, 0xbea3, 0xbea4, - 0xbea5, 0xbea6, 0xbea7, 0xbea8, 0xbea9, 0xbeaa, 0xbeab, 0xbeac, - 0xbead, 0xbeae, 0xbeaf, 0xbeb0, 0xbeb1, 0xbeb3, 0xbeb4, 0xbeb5, - 0xbeb6, 0xbeb7, 0xbeb8, 0xbeb9, 0xbeba, 0xbebb, 0xbebc, 0xbebd, - 0xbec1, 0xbec2, 0xbec3, 0xbec4, 0xbec5, 0xbec6, 0xbec7, 0xbec8, - 0xbec9, 0xbeca, 0xbecb, 0xbecc, 0xbecd, 0xbece, 0xbecf, 0xbed0, - 0xbed1, 0xbed3, 0xbed4, 0xbed5, 0xbed6, 0xbed7, 0xbed8, 0xbed9, - 0xbeda, 0xbedb, 0xbedc, 0xbedd, 0xbee1, 0xbee2, 0xbee3, 0xbee4, - 0xbee5, 0xbee6, 0xbee7, 0xbee8, 0xbee9, 0xbeea, 0xbeeb, 0xbeec, - 0xbeed, 0xbeee, 0xbeef, 0xbef0, 0xbef1, 0xbef3, 0xbef4, 0xbef5, - 0xbef6, 0xbef7, 0xbef8, 0xbef9, 0xbefa, 0xbefb, 0xbefc, 0xbefd, - 0xbf41, 0xbf42, 0xbf43, 0xbf44, 0xbf45, 0xbf46, 0xbf47, 0xbf48, - 0xbf49, 0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, - 0xbf51, 0xbf53, 0xbf54, 0xbf55, 0xbf56, 0xbf57, 0xbf58, 0xbf59, - 0xbf5a, 0xbf5b, 0xbf5c, 0xbf5d, 0xbf61, 0xbf62, 0xbf63, 0xbf64, - 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, 0xbf6a, 0xbf6b, 0xbf6c, - 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, 0xbf73, 0xbf74, 0xbf75, - 0xbf76, 0xbf77, 0xbf78, 0xbf79, 0xbf7a, 0xbf7b, 0xbf7c, 0xbf7d, - 0xbf81, 0xbf82, 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xbf87, 0xbf88, - 0xbf89, 0xbf8a, 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, - /* 0xcc00 .. 0xccff */ - 0xbf91, 0xbf93, 0xbf94, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, - 0xbf9a, 0xbf9b, 0xbf9c, 0xbf9d, 0xbfa1, 0xbfa2, 0xbfa3, 0xbfa4, - 0xbfa5, 0xbfa6, 0xbfa7, 0xbfa8, 0xbfa9, 0xbfaa, 0xbfab, 0xbfac, - 0xbfad, 0xbfae, 0xbfaf, 0xbfb0, 0xbfb1, 0xbfb3, 0xbfb4, 0xbfb5, - 0xbfb6, 0xbfb7, 0xbfb8, 0xbfb9, 0xbfba, 0xbfbb, 0xbfbc, 0xbfbd, - 0xc061, 0xc062, 0xc063, 0xc064, 0xc065, 0xc066, 0xc067, 0xc068, - 0xc069, 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, - 0xc071, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079, - 0xc07a, 0xc07b, 0xc07c, 0xc07d, 0xc081, 0xc082, 0xc083, 0xc084, - 0xc085, 0xc086, 0xc087, 0xc088, 0xc089, 0xc08a, 0xc08b, 0xc08c, - 0xc08d, 0xc08e, 0xc08f, 0xc090, 0xc091, 0xc093, 0xc094, 0xc095, - 0xc096, 0xc097, 0xc098, 0xc099, 0xc09a, 0xc09b, 0xc09c, 0xc09d, - 0xc0a1, 0xc0a2, 0xc0a3, 0xc0a4, 0xc0a5, 0xc0a6, 0xc0a7, 0xc0a8, - 0xc0a9, 0xc0aa, 0xc0ab, 0xc0ac, 0xc0ad, 0xc0ae, 0xc0af, 0xc0b0, - 0xc0b1, 0xc0b3, 0xc0b4, 0xc0b5, 0xc0b6, 0xc0b7, 0xc0b8, 0xc0b9, - 0xc0ba, 0xc0bb, 0xc0bc, 0xc0bd, 0xc0c1, 0xc0c2, 0xc0c3, 0xc0c4, - 0xc0c5, 0xc0c6, 0xc0c7, 0xc0c8, 0xc0c9, 0xc0ca, 0xc0cb, 0xc0cc, - 0xc0cd, 0xc0ce, 0xc0cf, 0xc0d0, 0xc0d1, 0xc0d3, 0xc0d4, 0xc0d5, - 0xc0d6, 0xc0d7, 0xc0d8, 0xc0d9, 0xc0da, 0xc0db, 0xc0dc, 0xc0dd, - 0xc0e1, 0xc0e2, 0xc0e3, 0xc0e4, 0xc0e5, 0xc0e6, 0xc0e7, 0xc0e8, - 0xc0e9, 0xc0ea, 0xc0eb, 0xc0ec, 0xc0ed, 0xc0ee, 0xc0ef, 0xc0f0, - 0xc0f1, 0xc0f3, 0xc0f4, 0xc0f5, 0xc0f6, 0xc0f7, 0xc0f8, 0xc0f9, - 0xc0fa, 0xc0fb, 0xc0fc, 0xc0fd, 0xc141, 0xc142, 0xc143, 0xc144, - 0xc145, 0xc146, 0xc147, 0xc148, 0xc149, 0xc14a, 0xc14b, 0xc14c, - 0xc14d, 0xc14e, 0xc14f, 0xc150, 0xc151, 0xc153, 0xc154, 0xc155, - 0xc156, 0xc157, 0xc158, 0xc159, 0xc15a, 0xc15b, 0xc15c, 0xc15d, - 0xc161, 0xc162, 0xc163, 0xc164, 0xc165, 0xc166, 0xc167, 0xc168, - 0xc169, 0xc16a, 0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xc170, - 0xc171, 0xc173, 0xc174, 0xc175, 0xc176, 0xc177, 0xc178, 0xc179, - 0xc17a, 0xc17b, 0xc17c, 0xc17d, 0xc181, 0xc182, 0xc183, 0xc184, - 0xc185, 0xc186, 0xc187, 0xc188, 0xc189, 0xc18a, 0xc18b, 0xc18c, - 0xc18d, 0xc18e, 0xc18f, 0xc190, 0xc191, 0xc193, 0xc194, 0xc195, - /* 0xcd00 .. 0xcdff */ - 0xc196, 0xc197, 0xc198, 0xc199, 0xc19a, 0xc19b, 0xc19c, 0xc19d, - 0xc1a1, 0xc1a2, 0xc1a3, 0xc1a4, 0xc1a5, 0xc1a6, 0xc1a7, 0xc1a8, - 0xc1a9, 0xc1aa, 0xc1ab, 0xc1ac, 0xc1ad, 0xc1ae, 0xc1af, 0xc1b0, - 0xc1b1, 0xc1b3, 0xc1b4, 0xc1b5, 0xc1b6, 0xc1b7, 0xc1b8, 0xc1b9, - 0xc1ba, 0xc1bb, 0xc1bc, 0xc1bd, 0xc1c1, 0xc1c2, 0xc1c3, 0xc1c4, - 0xc1c5, 0xc1c6, 0xc1c7, 0xc1c8, 0xc1c9, 0xc1ca, 0xc1cb, 0xc1cc, - 0xc1cd, 0xc1ce, 0xc1cf, 0xc1d0, 0xc1d1, 0xc1d3, 0xc1d4, 0xc1d5, - 0xc1d6, 0xc1d7, 0xc1d8, 0xc1d9, 0xc1da, 0xc1db, 0xc1dc, 0xc1dd, - 0xc1e1, 0xc1e2, 0xc1e3, 0xc1e4, 0xc1e5, 0xc1e6, 0xc1e7, 0xc1e8, - 0xc1e9, 0xc1ea, 0xc1eb, 0xc1ec, 0xc1ed, 0xc1ee, 0xc1ef, 0xc1f0, - 0xc1f1, 0xc1f3, 0xc1f4, 0xc1f5, 0xc1f6, 0xc1f7, 0xc1f8, 0xc1f9, - 0xc1fa, 0xc1fb, 0xc1fc, 0xc1fd, 0xc241, 0xc242, 0xc243, 0xc244, - 0xc245, 0xc246, 0xc247, 0xc248, 0xc249, 0xc24a, 0xc24b, 0xc24c, - 0xc24d, 0xc24e, 0xc24f, 0xc250, 0xc251, 0xc253, 0xc254, 0xc255, - 0xc256, 0xc257, 0xc258, 0xc259, 0xc25a, 0xc25b, 0xc25c, 0xc25d, - 0xc261, 0xc262, 0xc263, 0xc264, 0xc265, 0xc266, 0xc267, 0xc268, - 0xc269, 0xc26a, 0xc26b, 0xc26c, 0xc26d, 0xc26e, 0xc26f, 0xc270, - 0xc271, 0xc273, 0xc274, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279, - 0xc27a, 0xc27b, 0xc27c, 0xc27d, 0xc281, 0xc282, 0xc283, 0xc284, - 0xc285, 0xc286, 0xc287, 0xc288, 0xc289, 0xc28a, 0xc28b, 0xc28c, - 0xc28d, 0xc28e, 0xc28f, 0xc290, 0xc291, 0xc293, 0xc294, 0xc295, - 0xc296, 0xc297, 0xc298, 0xc299, 0xc29a, 0xc29b, 0xc29c, 0xc29d, - 0xc2a1, 0xc2a2, 0xc2a3, 0xc2a4, 0xc2a5, 0xc2a6, 0xc2a7, 0xc2a8, - 0xc2a9, 0xc2aa, 0xc2ab, 0xc2ac, 0xc2ad, 0xc2ae, 0xc2af, 0xc2b0, - 0xc2b1, 0xc2b3, 0xc2b4, 0xc2b5, 0xc2b6, 0xc2b7, 0xc2b8, 0xc2b9, - 0xc2ba, 0xc2bb, 0xc2bc, 0xc2bd, 0xc2c1, 0xc2c2, 0xc2c3, 0xc2c4, - 0xc2c5, 0xc2c6, 0xc2c7, 0xc2c8, 0xc2c9, 0xc2ca, 0xc2cb, 0xc2cc, - 0xc2cd, 0xc2ce, 0xc2cf, 0xc2d0, 0xc2d1, 0xc2d3, 0xc2d4, 0xc2d5, - 0xc2d6, 0xc2d7, 0xc2d8, 0xc2d9, 0xc2da, 0xc2db, 0xc2dc, 0xc2dd, - 0xc2e1, 0xc2e2, 0xc2e3, 0xc2e4, 0xc2e5, 0xc2e6, 0xc2e7, 0xc2e8, - 0xc2e9, 0xc2ea, 0xc2eb, 0xc2ec, 0xc2ed, 0xc2ee, 0xc2ef, 0xc2f0, - 0xc2f1, 0xc2f3, 0xc2f4, 0xc2f5, 0xc2f6, 0xc2f7, 0xc2f8, 0xc2f9, - /* 0xce00 .. 0xceff */ - 0xc2fa, 0xc2fb, 0xc2fc, 0xc2fd, 0xc341, 0xc342, 0xc343, 0xc344, - 0xc345, 0xc346, 0xc347, 0xc348, 0xc349, 0xc34a, 0xc34b, 0xc34c, - 0xc34d, 0xc34e, 0xc34f, 0xc350, 0xc351, 0xc353, 0xc354, 0xc355, - 0xc356, 0xc357, 0xc358, 0xc359, 0xc35a, 0xc35b, 0xc35c, 0xc35d, - 0xc361, 0xc362, 0xc363, 0xc364, 0xc365, 0xc366, 0xc367, 0xc368, - 0xc369, 0xc36a, 0xc36b, 0xc36c, 0xc36d, 0xc36e, 0xc36f, 0xc370, - 0xc371, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc378, 0xc379, - 0xc37a, 0xc37b, 0xc37c, 0xc37d, 0xc381, 0xc382, 0xc383, 0xc384, - 0xc385, 0xc386, 0xc387, 0xc388, 0xc389, 0xc38a, 0xc38b, 0xc38c, - 0xc38d, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc393, 0xc394, 0xc395, - 0xc396, 0xc397, 0xc398, 0xc399, 0xc39a, 0xc39b, 0xc39c, 0xc39d, - 0xc3a1, 0xc3a2, 0xc3a3, 0xc3a4, 0xc3a5, 0xc3a6, 0xc3a7, 0xc3a8, - 0xc3a9, 0xc3aa, 0xc3ab, 0xc3ac, 0xc3ad, 0xc3ae, 0xc3af, 0xc3b0, - 0xc3b1, 0xc3b3, 0xc3b4, 0xc3b5, 0xc3b6, 0xc3b7, 0xc3b8, 0xc3b9, - 0xc3ba, 0xc3bb, 0xc3bc, 0xc3bd, 0xc461, 0xc462, 0xc463, 0xc464, - 0xc465, 0xc466, 0xc467, 0xc468, 0xc469, 0xc46a, 0xc46b, 0xc46c, - 0xc46d, 0xc46e, 0xc46f, 0xc470, 0xc471, 0xc473, 0xc474, 0xc475, - 0xc476, 0xc477, 0xc478, 0xc479, 0xc47a, 0xc47b, 0xc47c, 0xc47d, - 0xc481, 0xc482, 0xc483, 0xc484, 0xc485, 0xc486, 0xc487, 0xc488, - 0xc489, 0xc48a, 0xc48b, 0xc48c, 0xc48d, 0xc48e, 0xc48f, 0xc490, - 0xc491, 0xc493, 0xc494, 0xc495, 0xc496, 0xc497, 0xc498, 0xc499, - 0xc49a, 0xc49b, 0xc49c, 0xc49d, 0xc4a1, 0xc4a2, 0xc4a3, 0xc4a4, - 0xc4a5, 0xc4a6, 0xc4a7, 0xc4a8, 0xc4a9, 0xc4aa, 0xc4ab, 0xc4ac, - 0xc4ad, 0xc4ae, 0xc4af, 0xc4b0, 0xc4b1, 0xc4b3, 0xc4b4, 0xc4b5, - 0xc4b6, 0xc4b7, 0xc4b8, 0xc4b9, 0xc4ba, 0xc4bb, 0xc4bc, 0xc4bd, - 0xc4c1, 0xc4c2, 0xc4c3, 0xc4c4, 0xc4c5, 0xc4c6, 0xc4c7, 0xc4c8, - 0xc4c9, 0xc4ca, 0xc4cb, 0xc4cc, 0xc4cd, 0xc4ce, 0xc4cf, 0xc4d0, - 0xc4d1, 0xc4d3, 0xc4d4, 0xc4d5, 0xc4d6, 0xc4d7, 0xc4d8, 0xc4d9, - 0xc4da, 0xc4db, 0xc4dc, 0xc4dd, 0xc4e1, 0xc4e2, 0xc4e3, 0xc4e4, - 0xc4e5, 0xc4e6, 0xc4e7, 0xc4e8, 0xc4e9, 0xc4ea, 0xc4eb, 0xc4ec, - 0xc4ed, 0xc4ee, 0xc4ef, 0xc4f0, 0xc4f1, 0xc4f3, 0xc4f4, 0xc4f5, - 0xc4f6, 0xc4f7, 0xc4f8, 0xc4f9, 0xc4fa, 0xc4fb, 0xc4fc, 0xc4fd, - /* 0xcf00 .. 0xcfff */ - 0xc541, 0xc542, 0xc543, 0xc544, 0xc545, 0xc546, 0xc547, 0xc548, - 0xc549, 0xc54a, 0xc54b, 0xc54c, 0xc54d, 0xc54e, 0xc54f, 0xc550, - 0xc551, 0xc553, 0xc554, 0xc555, 0xc556, 0xc557, 0xc558, 0xc559, - 0xc55a, 0xc55b, 0xc55c, 0xc55d, 0xc561, 0xc562, 0xc563, 0xc564, - 0xc565, 0xc566, 0xc567, 0xc568, 0xc569, 0xc56a, 0xc56b, 0xc56c, - 0xc56d, 0xc56e, 0xc56f, 0xc570, 0xc571, 0xc573, 0xc574, 0xc575, - 0xc576, 0xc577, 0xc578, 0xc579, 0xc57a, 0xc57b, 0xc57c, 0xc57d, - 0xc581, 0xc582, 0xc583, 0xc584, 0xc585, 0xc586, 0xc587, 0xc588, - 0xc589, 0xc58a, 0xc58b, 0xc58c, 0xc58d, 0xc58e, 0xc58f, 0xc590, - 0xc591, 0xc593, 0xc594, 0xc595, 0xc596, 0xc597, 0xc598, 0xc599, - 0xc59a, 0xc59b, 0xc59c, 0xc59d, 0xc5a1, 0xc5a2, 0xc5a3, 0xc5a4, - 0xc5a5, 0xc5a6, 0xc5a7, 0xc5a8, 0xc5a9, 0xc5aa, 0xc5ab, 0xc5ac, - 0xc5ad, 0xc5ae, 0xc5af, 0xc5b0, 0xc5b1, 0xc5b3, 0xc5b4, 0xc5b5, - 0xc5b6, 0xc5b7, 0xc5b8, 0xc5b9, 0xc5ba, 0xc5bb, 0xc5bc, 0xc5bd, - 0xc5c1, 0xc5c2, 0xc5c3, 0xc5c4, 0xc5c5, 0xc5c6, 0xc5c7, 0xc5c8, - 0xc5c9, 0xc5ca, 0xc5cb, 0xc5cc, 0xc5cd, 0xc5ce, 0xc5cf, 0xc5d0, - 0xc5d1, 0xc5d3, 0xc5d4, 0xc5d5, 0xc5d6, 0xc5d7, 0xc5d8, 0xc5d9, - 0xc5da, 0xc5db, 0xc5dc, 0xc5dd, 0xc5e1, 0xc5e2, 0xc5e3, 0xc5e4, - 0xc5e5, 0xc5e6, 0xc5e7, 0xc5e8, 0xc5e9, 0xc5ea, 0xc5eb, 0xc5ec, - 0xc5ed, 0xc5ee, 0xc5ef, 0xc5f0, 0xc5f1, 0xc5f3, 0xc5f4, 0xc5f5, - 0xc5f6, 0xc5f7, 0xc5f8, 0xc5f9, 0xc5fa, 0xc5fb, 0xc5fc, 0xc5fd, - 0xc641, 0xc642, 0xc643, 0xc644, 0xc645, 0xc646, 0xc647, 0xc648, - 0xc649, 0xc64a, 0xc64b, 0xc64c, 0xc64d, 0xc64e, 0xc64f, 0xc650, - 0xc651, 0xc653, 0xc654, 0xc655, 0xc656, 0xc657, 0xc658, 0xc659, - 0xc65a, 0xc65b, 0xc65c, 0xc65d, 0xc661, 0xc662, 0xc663, 0xc664, - 0xc665, 0xc666, 0xc667, 0xc668, 0xc669, 0xc66a, 0xc66b, 0xc66c, - 0xc66d, 0xc66e, 0xc66f, 0xc670, 0xc671, 0xc673, 0xc674, 0xc675, - 0xc676, 0xc677, 0xc678, 0xc679, 0xc67a, 0xc67b, 0xc67c, 0xc67d, - 0xc681, 0xc682, 0xc683, 0xc684, 0xc685, 0xc686, 0xc687, 0xc688, - 0xc689, 0xc68a, 0xc68b, 0xc68c, 0xc68d, 0xc68e, 0xc68f, 0xc690, - 0xc691, 0xc693, 0xc694, 0xc695, 0xc696, 0xc697, 0xc698, 0xc699, - 0xc69a, 0xc69b, 0xc69c, 0xc69d, 0xc6a1, 0xc6a2, 0xc6a3, 0xc6a4, - /* 0xd000 .. 0xd0ff */ - 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, 0xc6aa, 0xc6ab, 0xc6ac, - 0xc6ad, 0xc6ae, 0xc6af, 0xc6b0, 0xc6b1, 0xc6b3, 0xc6b4, 0xc6b5, - 0xc6b6, 0xc6b7, 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb, 0xc6bc, 0xc6bd, - 0xc6c1, 0xc6c2, 0xc6c3, 0xc6c4, 0xc6c5, 0xc6c6, 0xc6c7, 0xc6c8, - 0xc6c9, 0xc6ca, 0xc6cb, 0xc6cc, 0xc6cd, 0xc6ce, 0xc6cf, 0xc6d0, - 0xc6d1, 0xc6d3, 0xc6d4, 0xc6d5, 0xc6d6, 0xc6d7, 0xc6d8, 0xc6d9, - 0xc6da, 0xc6db, 0xc6dc, 0xc6dd, 0xc6e1, 0xc6e2, 0xc6e3, 0xc6e4, - 0xc6e5, 0xc6e6, 0xc6e7, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb, 0xc6ec, - 0xc6ed, 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f3, 0xc6f4, 0xc6f5, - 0xc6f6, 0xc6f7, 0xc6f8, 0xc6f9, 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fd, - 0xc741, 0xc742, 0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, - 0xc749, 0xc74a, 0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f, 0xc750, - 0xc751, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, - 0xc75a, 0xc75b, 0xc75c, 0xc75d, 0xc761, 0xc762, 0xc763, 0xc764, - 0xc765, 0xc766, 0xc767, 0xc768, 0xc769, 0xc76a, 0xc76b, 0xc76c, - 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc773, 0xc774, 0xc775, - 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, 0xc77b, 0xc77c, 0xc77d, - 0xc781, 0xc782, 0xc783, 0xc784, 0xc785, 0xc786, 0xc787, 0xc788, - 0xc789, 0xc78a, 0xc78b, 0xc78c, 0xc78d, 0xc78e, 0xc78f, 0xc790, - 0xc791, 0xc793, 0xc794, 0xc795, 0xc796, 0xc797, 0xc798, 0xc799, - 0xc79a, 0xc79b, 0xc79c, 0xc79d, 0xc7a1, 0xc7a2, 0xc7a3, 0xc7a4, - 0xc7a5, 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ac, - 0xc7ad, 0xc7ae, 0xc7af, 0xc7b0, 0xc7b1, 0xc7b3, 0xc7b4, 0xc7b5, - 0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xc7bc, 0xc7bd, - 0xc861, 0xc862, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, - 0xc869, 0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc870, - 0xc871, 0xc873, 0xc874, 0xc875, 0xc876, 0xc877, 0xc878, 0xc879, - 0xc87a, 0xc87b, 0xc87c, 0xc87d, 0xc881, 0xc882, 0xc883, 0xc884, - 0xc885, 0xc886, 0xc887, 0xc888, 0xc889, 0xc88a, 0xc88b, 0xc88c, - 0xc88d, 0xc88e, 0xc88f, 0xc890, 0xc891, 0xc893, 0xc894, 0xc895, - 0xc896, 0xc897, 0xc898, 0xc899, 0xc89a, 0xc89b, 0xc89c, 0xc89d, - 0xc8a1, 0xc8a2, 0xc8a3, 0xc8a4, 0xc8a5, 0xc8a6, 0xc8a7, 0xc8a8, - /* 0xd100 .. 0xd1ff */ - 0xc8a9, 0xc8aa, 0xc8ab, 0xc8ac, 0xc8ad, 0xc8ae, 0xc8af, 0xc8b0, - 0xc8b1, 0xc8b3, 0xc8b4, 0xc8b5, 0xc8b6, 0xc8b7, 0xc8b8, 0xc8b9, - 0xc8ba, 0xc8bb, 0xc8bc, 0xc8bd, 0xc8c1, 0xc8c2, 0xc8c3, 0xc8c4, - 0xc8c5, 0xc8c6, 0xc8c7, 0xc8c8, 0xc8c9, 0xc8ca, 0xc8cb, 0xc8cc, - 0xc8cd, 0xc8ce, 0xc8cf, 0xc8d0, 0xc8d1, 0xc8d3, 0xc8d4, 0xc8d5, - 0xc8d6, 0xc8d7, 0xc8d8, 0xc8d9, 0xc8da, 0xc8db, 0xc8dc, 0xc8dd, - 0xc8e1, 0xc8e2, 0xc8e3, 0xc8e4, 0xc8e5, 0xc8e6, 0xc8e7, 0xc8e8, - 0xc8e9, 0xc8ea, 0xc8eb, 0xc8ec, 0xc8ed, 0xc8ee, 0xc8ef, 0xc8f0, - 0xc8f1, 0xc8f3, 0xc8f4, 0xc8f5, 0xc8f6, 0xc8f7, 0xc8f8, 0xc8f9, - 0xc8fa, 0xc8fb, 0xc8fc, 0xc8fd, 0xc941, 0xc942, 0xc943, 0xc944, - 0xc945, 0xc946, 0xc947, 0xc948, 0xc949, 0xc94a, 0xc94b, 0xc94c, - 0xc94d, 0xc94e, 0xc94f, 0xc950, 0xc951, 0xc953, 0xc954, 0xc955, - 0xc956, 0xc957, 0xc958, 0xc959, 0xc95a, 0xc95b, 0xc95c, 0xc95d, - 0xc961, 0xc962, 0xc963, 0xc964, 0xc965, 0xc966, 0xc967, 0xc968, - 0xc969, 0xc96a, 0xc96b, 0xc96c, 0xc96d, 0xc96e, 0xc96f, 0xc970, - 0xc971, 0xc973, 0xc974, 0xc975, 0xc976, 0xc977, 0xc978, 0xc979, - 0xc97a, 0xc97b, 0xc97c, 0xc97d, 0xc981, 0xc982, 0xc983, 0xc984, - 0xc985, 0xc986, 0xc987, 0xc988, 0xc989, 0xc98a, 0xc98b, 0xc98c, - 0xc98d, 0xc98e, 0xc98f, 0xc990, 0xc991, 0xc993, 0xc994, 0xc995, - 0xc996, 0xc997, 0xc998, 0xc999, 0xc99a, 0xc99b, 0xc99c, 0xc99d, - 0xc9a1, 0xc9a2, 0xc9a3, 0xc9a4, 0xc9a5, 0xc9a6, 0xc9a7, 0xc9a8, - 0xc9a9, 0xc9aa, 0xc9ab, 0xc9ac, 0xc9ad, 0xc9ae, 0xc9af, 0xc9b0, - 0xc9b1, 0xc9b3, 0xc9b4, 0xc9b5, 0xc9b6, 0xc9b7, 0xc9b8, 0xc9b9, - 0xc9ba, 0xc9bb, 0xc9bc, 0xc9bd, 0xc9c1, 0xc9c2, 0xc9c3, 0xc9c4, - 0xc9c5, 0xc9c6, 0xc9c7, 0xc9c8, 0xc9c9, 0xc9ca, 0xc9cb, 0xc9cc, - 0xc9cd, 0xc9ce, 0xc9cf, 0xc9d0, 0xc9d1, 0xc9d3, 0xc9d4, 0xc9d5, - 0xc9d6, 0xc9d7, 0xc9d8, 0xc9d9, 0xc9da, 0xc9db, 0xc9dc, 0xc9dd, - 0xc9e1, 0xc9e2, 0xc9e3, 0xc9e4, 0xc9e5, 0xc9e6, 0xc9e7, 0xc9e8, - 0xc9e9, 0xc9ea, 0xc9eb, 0xc9ec, 0xc9ed, 0xc9ee, 0xc9ef, 0xc9f0, - 0xc9f1, 0xc9f3, 0xc9f4, 0xc9f5, 0xc9f6, 0xc9f7, 0xc9f8, 0xc9f9, - 0xc9fa, 0xc9fb, 0xc9fc, 0xc9fd, 0xca41, 0xca42, 0xca43, 0xca44, - 0xca45, 0xca46, 0xca47, 0xca48, 0xca49, 0xca4a, 0xca4b, 0xca4c, - /* 0xd200 .. 0xd2ff */ - 0xca4d, 0xca4e, 0xca4f, 0xca50, 0xca51, 0xca53, 0xca54, 0xca55, - 0xca56, 0xca57, 0xca58, 0xca59, 0xca5a, 0xca5b, 0xca5c, 0xca5d, - 0xca61, 0xca62, 0xca63, 0xca64, 0xca65, 0xca66, 0xca67, 0xca68, - 0xca69, 0xca6a, 0xca6b, 0xca6c, 0xca6d, 0xca6e, 0xca6f, 0xca70, - 0xca71, 0xca73, 0xca74, 0xca75, 0xca76, 0xca77, 0xca78, 0xca79, - 0xca7a, 0xca7b, 0xca7c, 0xca7d, 0xca81, 0xca82, 0xca83, 0xca84, - 0xca85, 0xca86, 0xca87, 0xca88, 0xca89, 0xca8a, 0xca8b, 0xca8c, - 0xca8d, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca93, 0xca94, 0xca95, - 0xca96, 0xca97, 0xca98, 0xca99, 0xca9a, 0xca9b, 0xca9c, 0xca9d, - 0xcaa1, 0xcaa2, 0xcaa3, 0xcaa4, 0xcaa5, 0xcaa6, 0xcaa7, 0xcaa8, - 0xcaa9, 0xcaaa, 0xcaab, 0xcaac, 0xcaad, 0xcaae, 0xcaaf, 0xcab0, - 0xcab1, 0xcab3, 0xcab4, 0xcab5, 0xcab6, 0xcab7, 0xcab8, 0xcab9, - 0xcaba, 0xcabb, 0xcabc, 0xcabd, 0xcac1, 0xcac2, 0xcac3, 0xcac4, - 0xcac5, 0xcac6, 0xcac7, 0xcac8, 0xcac9, 0xcaca, 0xcacb, 0xcacc, - 0xcacd, 0xcace, 0xcacf, 0xcad0, 0xcad1, 0xcad3, 0xcad4, 0xcad5, - 0xcad6, 0xcad7, 0xcad8, 0xcad9, 0xcada, 0xcadb, 0xcadc, 0xcadd, - 0xcae1, 0xcae2, 0xcae3, 0xcae4, 0xcae5, 0xcae6, 0xcae7, 0xcae8, - 0xcae9, 0xcaea, 0xcaeb, 0xcaec, 0xcaed, 0xcaee, 0xcaef, 0xcaf0, - 0xcaf1, 0xcaf3, 0xcaf4, 0xcaf5, 0xcaf6, 0xcaf7, 0xcaf8, 0xcaf9, - 0xcafa, 0xcafb, 0xcafc, 0xcafd, 0xcb41, 0xcb42, 0xcb43, 0xcb44, - 0xcb45, 0xcb46, 0xcb47, 0xcb48, 0xcb49, 0xcb4a, 0xcb4b, 0xcb4c, - 0xcb4d, 0xcb4e, 0xcb4f, 0xcb50, 0xcb51, 0xcb53, 0xcb54, 0xcb55, - 0xcb56, 0xcb57, 0xcb58, 0xcb59, 0xcb5a, 0xcb5b, 0xcb5c, 0xcb5d, - 0xcb61, 0xcb62, 0xcb63, 0xcb64, 0xcb65, 0xcb66, 0xcb67, 0xcb68, - 0xcb69, 0xcb6a, 0xcb6b, 0xcb6c, 0xcb6d, 0xcb6e, 0xcb6f, 0xcb70, - 0xcb71, 0xcb73, 0xcb74, 0xcb75, 0xcb76, 0xcb77, 0xcb78, 0xcb79, - 0xcb7a, 0xcb7b, 0xcb7c, 0xcb7d, 0xcb81, 0xcb82, 0xcb83, 0xcb84, - 0xcb85, 0xcb86, 0xcb87, 0xcb88, 0xcb89, 0xcb8a, 0xcb8b, 0xcb8c, - 0xcb8d, 0xcb8e, 0xcb8f, 0xcb90, 0xcb91, 0xcb93, 0xcb94, 0xcb95, - 0xcb96, 0xcb97, 0xcb98, 0xcb99, 0xcb9a, 0xcb9b, 0xcb9c, 0xcb9d, - 0xcba1, 0xcba2, 0xcba3, 0xcba4, 0xcba5, 0xcba6, 0xcba7, 0xcba8, - 0xcba9, 0xcbaa, 0xcbab, 0xcbac, 0xcbad, 0xcbae, 0xcbaf, 0xcbb0, - /* 0xd300 .. 0xd3ff */ - 0xcbb1, 0xcbb3, 0xcbb4, 0xcbb5, 0xcbb6, 0xcbb7, 0xcbb8, 0xcbb9, - 0xcbba, 0xcbbb, 0xcbbc, 0xcbbd, 0xcc61, 0xcc62, 0xcc63, 0xcc64, - 0xcc65, 0xcc66, 0xcc67, 0xcc68, 0xcc69, 0xcc6a, 0xcc6b, 0xcc6c, - 0xcc6d, 0xcc6e, 0xcc6f, 0xcc70, 0xcc71, 0xcc73, 0xcc74, 0xcc75, - 0xcc76, 0xcc77, 0xcc78, 0xcc79, 0xcc7a, 0xcc7b, 0xcc7c, 0xcc7d, - 0xcc81, 0xcc82, 0xcc83, 0xcc84, 0xcc85, 0xcc86, 0xcc87, 0xcc88, - 0xcc89, 0xcc8a, 0xcc8b, 0xcc8c, 0xcc8d, 0xcc8e, 0xcc8f, 0xcc90, - 0xcc91, 0xcc93, 0xcc94, 0xcc95, 0xcc96, 0xcc97, 0xcc98, 0xcc99, - 0xcc9a, 0xcc9b, 0xcc9c, 0xcc9d, 0xcca1, 0xcca2, 0xcca3, 0xcca4, - 0xcca5, 0xcca6, 0xcca7, 0xcca8, 0xcca9, 0xccaa, 0xccab, 0xccac, - 0xccad, 0xccae, 0xccaf, 0xccb0, 0xccb1, 0xccb3, 0xccb4, 0xccb5, - 0xccb6, 0xccb7, 0xccb8, 0xccb9, 0xccba, 0xccbb, 0xccbc, 0xccbd, - 0xccc1, 0xccc2, 0xccc3, 0xccc4, 0xccc5, 0xccc6, 0xccc7, 0xccc8, - 0xccc9, 0xccca, 0xcccb, 0xcccc, 0xcccd, 0xccce, 0xcccf, 0xccd0, - 0xccd1, 0xccd3, 0xccd4, 0xccd5, 0xccd6, 0xccd7, 0xccd8, 0xccd9, - 0xccda, 0xccdb, 0xccdc, 0xccdd, 0xcce1, 0xcce2, 0xcce3, 0xcce4, - 0xcce5, 0xcce6, 0xcce7, 0xcce8, 0xcce9, 0xccea, 0xcceb, 0xccec, - 0xcced, 0xccee, 0xccef, 0xccf0, 0xccf1, 0xccf3, 0xccf4, 0xccf5, - 0xccf6, 0xccf7, 0xccf8, 0xccf9, 0xccfa, 0xccfb, 0xccfc, 0xccfd, - 0xcd41, 0xcd42, 0xcd43, 0xcd44, 0xcd45, 0xcd46, 0xcd47, 0xcd48, - 0xcd49, 0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, 0xcd4f, 0xcd50, - 0xcd51, 0xcd53, 0xcd54, 0xcd55, 0xcd56, 0xcd57, 0xcd58, 0xcd59, - 0xcd5a, 0xcd5b, 0xcd5c, 0xcd5d, 0xcd61, 0xcd62, 0xcd63, 0xcd64, - 0xcd65, 0xcd66, 0xcd67, 0xcd68, 0xcd69, 0xcd6a, 0xcd6b, 0xcd6c, - 0xcd6d, 0xcd6e, 0xcd6f, 0xcd70, 0xcd71, 0xcd73, 0xcd74, 0xcd75, - 0xcd76, 0xcd77, 0xcd78, 0xcd79, 0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, - 0xcd81, 0xcd82, 0xcd83, 0xcd84, 0xcd85, 0xcd86, 0xcd87, 0xcd88, - 0xcd89, 0xcd8a, 0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e, 0xcd8f, 0xcd90, - 0xcd91, 0xcd93, 0xcd94, 0xcd95, 0xcd96, 0xcd97, 0xcd98, 0xcd99, - 0xcd9a, 0xcd9b, 0xcd9c, 0xcd9d, 0xcda1, 0xcda2, 0xcda3, 0xcda4, - 0xcda5, 0xcda6, 0xcda7, 0xcda8, 0xcda9, 0xcdaa, 0xcdab, 0xcdac, - 0xcdad, 0xcdae, 0xcdaf, 0xcdb0, 0xcdb1, 0xcdb3, 0xcdb4, 0xcdb5, - /* 0xd400 .. 0xd4ff */ - 0xcdb6, 0xcdb7, 0xcdb8, 0xcdb9, 0xcdba, 0xcdbb, 0xcdbc, 0xcdbd, - 0xcdc1, 0xcdc2, 0xcdc3, 0xcdc4, 0xcdc5, 0xcdc6, 0xcdc7, 0xcdc8, - 0xcdc9, 0xcdca, 0xcdcb, 0xcdcc, 0xcdcd, 0xcdce, 0xcdcf, 0xcdd0, - 0xcdd1, 0xcdd3, 0xcdd4, 0xcdd5, 0xcdd6, 0xcdd7, 0xcdd8, 0xcdd9, - 0xcdda, 0xcddb, 0xcddc, 0xcddd, 0xcde1, 0xcde2, 0xcde3, 0xcde4, - 0xcde5, 0xcde6, 0xcde7, 0xcde8, 0xcde9, 0xcdea, 0xcdeb, 0xcdec, - 0xcded, 0xcdee, 0xcdef, 0xcdf0, 0xcdf1, 0xcdf3, 0xcdf4, 0xcdf5, - 0xcdf6, 0xcdf7, 0xcdf8, 0xcdf9, 0xcdfa, 0xcdfb, 0xcdfc, 0xcdfd, - 0xce41, 0xce42, 0xce43, 0xce44, 0xce45, 0xce46, 0xce47, 0xce48, - 0xce49, 0xce4a, 0xce4b, 0xce4c, 0xce4d, 0xce4e, 0xce4f, 0xce50, - 0xce51, 0xce53, 0xce54, 0xce55, 0xce56, 0xce57, 0xce58, 0xce59, - 0xce5a, 0xce5b, 0xce5c, 0xce5d, 0xce61, 0xce62, 0xce63, 0xce64, - 0xce65, 0xce66, 0xce67, 0xce68, 0xce69, 0xce6a, 0xce6b, 0xce6c, - 0xce6d, 0xce6e, 0xce6f, 0xce70, 0xce71, 0xce73, 0xce74, 0xce75, - 0xce76, 0xce77, 0xce78, 0xce79, 0xce7a, 0xce7b, 0xce7c, 0xce7d, - 0xce81, 0xce82, 0xce83, 0xce84, 0xce85, 0xce86, 0xce87, 0xce88, - 0xce89, 0xce8a, 0xce8b, 0xce8c, 0xce8d, 0xce8e, 0xce8f, 0xce90, - 0xce91, 0xce93, 0xce94, 0xce95, 0xce96, 0xce97, 0xce98, 0xce99, - 0xce9a, 0xce9b, 0xce9c, 0xce9d, 0xcea1, 0xcea2, 0xcea3, 0xcea4, - 0xcea5, 0xcea6, 0xcea7, 0xcea8, 0xcea9, 0xceaa, 0xceab, 0xceac, - 0xcead, 0xceae, 0xceaf, 0xceb0, 0xceb1, 0xceb3, 0xceb4, 0xceb5, - 0xceb6, 0xceb7, 0xceb8, 0xceb9, 0xceba, 0xcebb, 0xcebc, 0xcebd, - 0xcec1, 0xcec2, 0xcec3, 0xcec4, 0xcec5, 0xcec6, 0xcec7, 0xcec8, - 0xcec9, 0xceca, 0xcecb, 0xcecc, 0xcecd, 0xcece, 0xcecf, 0xced0, - 0xced1, 0xced3, 0xced4, 0xced5, 0xced6, 0xced7, 0xced8, 0xced9, - 0xceda, 0xcedb, 0xcedc, 0xcedd, 0xcee1, 0xcee2, 0xcee3, 0xcee4, - 0xcee5, 0xcee6, 0xcee7, 0xcee8, 0xcee9, 0xceea, 0xceeb, 0xceec, - 0xceed, 0xceee, 0xceef, 0xcef0, 0xcef1, 0xcef3, 0xcef4, 0xcef5, - 0xcef6, 0xcef7, 0xcef8, 0xcef9, 0xcefa, 0xcefb, 0xcefc, 0xcefd, - 0xcf41, 0xcf42, 0xcf43, 0xcf44, 0xcf45, 0xcf46, 0xcf47, 0xcf48, - 0xcf49, 0xcf4a, 0xcf4b, 0xcf4c, 0xcf4d, 0xcf4e, 0xcf4f, 0xcf50, - 0xcf51, 0xcf53, 0xcf54, 0xcf55, 0xcf56, 0xcf57, 0xcf58, 0xcf59, - /* 0xd500 .. 0xd5ff */ - 0xcf5a, 0xcf5b, 0xcf5c, 0xcf5d, 0xcf61, 0xcf62, 0xcf63, 0xcf64, - 0xcf65, 0xcf66, 0xcf67, 0xcf68, 0xcf69, 0xcf6a, 0xcf6b, 0xcf6c, - 0xcf6d, 0xcf6e, 0xcf6f, 0xcf70, 0xcf71, 0xcf73, 0xcf74, 0xcf75, - 0xcf76, 0xcf77, 0xcf78, 0xcf79, 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, - 0xcf81, 0xcf82, 0xcf83, 0xcf84, 0xcf85, 0xcf86, 0xcf87, 0xcf88, - 0xcf89, 0xcf8a, 0xcf8b, 0xcf8c, 0xcf8d, 0xcf8e, 0xcf8f, 0xcf90, - 0xcf91, 0xcf93, 0xcf94, 0xcf95, 0xcf96, 0xcf97, 0xcf98, 0xcf99, - 0xcf9a, 0xcf9b, 0xcf9c, 0xcf9d, 0xcfa1, 0xcfa2, 0xcfa3, 0xcfa4, - 0xcfa5, 0xcfa6, 0xcfa7, 0xcfa8, 0xcfa9, 0xcfaa, 0xcfab, 0xcfac, - 0xcfad, 0xcfae, 0xcfaf, 0xcfb0, 0xcfb1, 0xcfb3, 0xcfb4, 0xcfb5, - 0xcfb6, 0xcfb7, 0xcfb8, 0xcfb9, 0xcfba, 0xcfbb, 0xcfbc, 0xcfbd, - 0xd061, 0xd062, 0xd063, 0xd064, 0xd065, 0xd066, 0xd067, 0xd068, - 0xd069, 0xd06a, 0xd06b, 0xd06c, 0xd06d, 0xd06e, 0xd06f, 0xd070, - 0xd071, 0xd073, 0xd074, 0xd075, 0xd076, 0xd077, 0xd078, 0xd079, - 0xd07a, 0xd07b, 0xd07c, 0xd07d, 0xd081, 0xd082, 0xd083, 0xd084, - 0xd085, 0xd086, 0xd087, 0xd088, 0xd089, 0xd08a, 0xd08b, 0xd08c, - 0xd08d, 0xd08e, 0xd08f, 0xd090, 0xd091, 0xd093, 0xd094, 0xd095, - 0xd096, 0xd097, 0xd098, 0xd099, 0xd09a, 0xd09b, 0xd09c, 0xd09d, - 0xd0a1, 0xd0a2, 0xd0a3, 0xd0a4, 0xd0a5, 0xd0a6, 0xd0a7, 0xd0a8, - 0xd0a9, 0xd0aa, 0xd0ab, 0xd0ac, 0xd0ad, 0xd0ae, 0xd0af, 0xd0b0, - 0xd0b1, 0xd0b3, 0xd0b4, 0xd0b5, 0xd0b6, 0xd0b7, 0xd0b8, 0xd0b9, - 0xd0ba, 0xd0bb, 0xd0bc, 0xd0bd, 0xd0c1, 0xd0c2, 0xd0c3, 0xd0c4, - 0xd0c5, 0xd0c6, 0xd0c7, 0xd0c8, 0xd0c9, 0xd0ca, 0xd0cb, 0xd0cc, - 0xd0cd, 0xd0ce, 0xd0cf, 0xd0d0, 0xd0d1, 0xd0d3, 0xd0d4, 0xd0d5, - 0xd0d6, 0xd0d7, 0xd0d8, 0xd0d9, 0xd0da, 0xd0db, 0xd0dc, 0xd0dd, - 0xd0e1, 0xd0e2, 0xd0e3, 0xd0e4, 0xd0e5, 0xd0e6, 0xd0e7, 0xd0e8, - 0xd0e9, 0xd0ea, 0xd0eb, 0xd0ec, 0xd0ed, 0xd0ee, 0xd0ef, 0xd0f0, - 0xd0f1, 0xd0f3, 0xd0f4, 0xd0f5, 0xd0f6, 0xd0f7, 0xd0f8, 0xd0f9, - 0xd0fa, 0xd0fb, 0xd0fc, 0xd0fd, 0xd141, 0xd142, 0xd143, 0xd144, - 0xd145, 0xd146, 0xd147, 0xd148, 0xd149, 0xd14a, 0xd14b, 0xd14c, - 0xd14d, 0xd14e, 0xd14f, 0xd150, 0xd151, 0xd153, 0xd154, 0xd155, - 0xd156, 0xd157, 0xd158, 0xd159, 0xd15a, 0xd15b, 0xd15c, 0xd15d, - /* 0xd600 .. 0xd6ff */ - 0xd161, 0xd162, 0xd163, 0xd164, 0xd165, 0xd166, 0xd167, 0xd168, - 0xd169, 0xd16a, 0xd16b, 0xd16c, 0xd16d, 0xd16e, 0xd16f, 0xd170, - 0xd171, 0xd173, 0xd174, 0xd175, 0xd176, 0xd177, 0xd178, 0xd179, - 0xd17a, 0xd17b, 0xd17c, 0xd17d, 0xd181, 0xd182, 0xd183, 0xd184, - 0xd185, 0xd186, 0xd187, 0xd188, 0xd189, 0xd18a, 0xd18b, 0xd18c, - 0xd18d, 0xd18e, 0xd18f, 0xd190, 0xd191, 0xd193, 0xd194, 0xd195, - 0xd196, 0xd197, 0xd198, 0xd199, 0xd19a, 0xd19b, 0xd19c, 0xd19d, - 0xd1a1, 0xd1a2, 0xd1a3, 0xd1a4, 0xd1a5, 0xd1a6, 0xd1a7, 0xd1a8, - 0xd1a9, 0xd1aa, 0xd1ab, 0xd1ac, 0xd1ad, 0xd1ae, 0xd1af, 0xd1b0, - 0xd1b1, 0xd1b3, 0xd1b4, 0xd1b5, 0xd1b6, 0xd1b7, 0xd1b8, 0xd1b9, - 0xd1ba, 0xd1bb, 0xd1bc, 0xd1bd, 0xd1c1, 0xd1c2, 0xd1c3, 0xd1c4, - 0xd1c5, 0xd1c6, 0xd1c7, 0xd1c8, 0xd1c9, 0xd1ca, 0xd1cb, 0xd1cc, - 0xd1cd, 0xd1ce, 0xd1cf, 0xd1d0, 0xd1d1, 0xd1d3, 0xd1d4, 0xd1d5, - 0xd1d6, 0xd1d7, 0xd1d8, 0xd1d9, 0xd1da, 0xd1db, 0xd1dc, 0xd1dd, - 0xd1e1, 0xd1e2, 0xd1e3, 0xd1e4, 0xd1e5, 0xd1e6, 0xd1e7, 0xd1e8, - 0xd1e9, 0xd1ea, 0xd1eb, 0xd1ec, 0xd1ed, 0xd1ee, 0xd1ef, 0xd1f0, - 0xd1f1, 0xd1f3, 0xd1f4, 0xd1f5, 0xd1f6, 0xd1f7, 0xd1f8, 0xd1f9, - 0xd1fa, 0xd1fb, 0xd1fc, 0xd1fd, 0xd241, 0xd242, 0xd243, 0xd244, - 0xd245, 0xd246, 0xd247, 0xd248, 0xd249, 0xd24a, 0xd24b, 0xd24c, - 0xd24d, 0xd24e, 0xd24f, 0xd250, 0xd251, 0xd253, 0xd254, 0xd255, - 0xd256, 0xd257, 0xd258, 0xd259, 0xd25a, 0xd25b, 0xd25c, 0xd25d, - 0xd261, 0xd262, 0xd263, 0xd264, 0xd265, 0xd266, 0xd267, 0xd268, - 0xd269, 0xd26a, 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, 0xd270, - 0xd271, 0xd273, 0xd274, 0xd275, 0xd276, 0xd277, 0xd278, 0xd279, - 0xd27a, 0xd27b, 0xd27c, 0xd27d, 0xd281, 0xd282, 0xd283, 0xd284, - 0xd285, 0xd286, 0xd287, 0xd288, 0xd289, 0xd28a, 0xd28b, 0xd28c, - 0xd28d, 0xd28e, 0xd28f, 0xd290, 0xd291, 0xd293, 0xd294, 0xd295, - 0xd296, 0xd297, 0xd298, 0xd299, 0xd29a, 0xd29b, 0xd29c, 0xd29d, - 0xd2a1, 0xd2a2, 0xd2a3, 0xd2a4, 0xd2a5, 0xd2a6, 0xd2a7, 0xd2a8, - 0xd2a9, 0xd2aa, 0xd2ab, 0xd2ac, 0xd2ad, 0xd2ae, 0xd2af, 0xd2b0, - 0xd2b1, 0xd2b3, 0xd2b4, 0xd2b5, 0xd2b6, 0xd2b7, 0xd2b8, 0xd2b9, - 0xd2ba, 0xd2bb, 0xd2bc, 0xd2bd, 0xd2c1, 0xd2c2, 0xd2c3, 0xd2c4, - /* 0xd700 .. 0xd7ff */ - 0xd2c5, 0xd2c6, 0xd2c7, 0xd2c8, 0xd2c9, 0xd2ca, 0xd2cb, 0xd2cc, - 0xd2cd, 0xd2ce, 0xd2cf, 0xd2d0, 0xd2d1, 0xd2d3, 0xd2d4, 0xd2d5, - 0xd2d6, 0xd2d7, 0xd2d8, 0xd2d9, 0xd2da, 0xd2db, 0xd2dc, 0xd2dd, - 0xd2e1, 0xd2e2, 0xd2e3, 0xd2e4, 0xd2e5, 0xd2e6, 0xd2e7, 0xd2e8, - 0xd2e9, 0xd2ea, 0xd2eb, 0xd2ec, 0xd2ed, 0xd2ee, 0xd2ef, 0xd2f0, - 0xd2f1, 0xd2f3, 0xd2f4, 0xd2f5, 0xd2f6, 0xd2f7, 0xd2f8, 0xd2f9, - 0xd2fa, 0xd2fb, 0xd2fc, 0xd2fd, 0xd341, 0xd342, 0xd343, 0xd344, - 0xd345, 0xd346, 0xd347, 0xd348, 0xd349, 0xd34a, 0xd34b, 0xd34c, - 0xd34d, 0xd34e, 0xd34f, 0xd350, 0xd351, 0xd353, 0xd354, 0xd355, - 0xd356, 0xd357, 0xd358, 0xd359, 0xd35a, 0xd35b, 0xd35c, 0xd35d, - 0xd361, 0xd362, 0xd363, 0xd364, 0xd365, 0xd366, 0xd367, 0xd368, - 0xd369, 0xd36a, 0xd36b, 0xd36c, 0xd36d, 0xd36e, 0xd36f, 0xd370, - 0xd371, 0xd373, 0xd374, 0xd375, 0xd376, 0xd377, 0xd378, 0xd379, - 0xd37a, 0xd37b, 0xd37c, 0xd37d, 0xd381, 0xd382, 0xd383, 0xd384, - 0xd385, 0xd386, 0xd387, 0xd388, 0xd389, 0xd38a, 0xd38b, 0xd38c, - 0xd38d, 0xd38e, 0xd38f, 0xd390, 0xd391, 0xd393, 0xd394, 0xd395, - 0xd396, 0xd397, 0xd398, 0xd399, 0xd39a, 0xd39b, 0xd39c, 0xd39d, - 0xd3a1, 0xd3a2, 0xd3a3, 0xd3a4, 0xd3a5, 0xd3a6, 0xd3a7, 0xd3a8, - 0xd3a9, 0xd3aa, 0xd3ab, 0xd3ac, 0xd3ad, 0xd3ae, 0xd3af, 0xd3b0, - 0xd3b1, 0xd3b3, 0xd3b4, 0xd3b5, 0xd3b6, 0xd3b7, 0xd3b8, 0xd3b9, - 0xd3ba, 0xd3bb, 0xd3bc, 0xd3bd, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xf900 .. 0xf9ff */ - 0xe0d0, 0xe0d6, 0xe0e7, 0xe1cf, 0xe1e8, 0xe23d, 0xe2fb, 0xe332, - 0xe348, 0xe360, 0xe36d, 0xe3d4, 0xe3d5, 0xe3d8, 0xe3db, 0xe3dc, - 0xe3dd, 0xe3de, 0xe3df, 0xe3e0, 0xe3e2, 0xe3e3, 0xe3e4, 0xe3e5, - 0xe3e6, 0xe3e8, 0xe3e9, 0xe3ea, 0xe3eb, 0xe3ed, 0xe3ef, 0xe3f0, - 0xe3f2, 0xe3f6, 0xe3fa, 0xe3fc, 0xe3fd, 0xe3fe, 0xe432, 0xe433, - 0xe437, 0xe438, 0xe439, 0xe43a, 0xe43b, 0xe43d, 0xe442, 0xe44e, - 0xe452, 0xe453, 0xe454, 0xe456, 0xe457, 0xe458, 0xe459, 0xe45a, - 0xe45b, 0xe45d, 0xe45e, 0xe45f, 0xe460, 0xe461, 0xe462, 0xe463, - 0xe464, 0xe465, 0xe466, 0xe467, 0xe469, 0xe46a, 0xe46e, 0xe46f, - 0xe471, 0xe472, 0xe474, 0xe475, 0xe476, 0xe477, 0xe478, 0xe479, - 0xe47a, 0xe47b, 0xe492, 0xe493, 0xe494, 0xe495, 0xe496, 0xe497, - 0xe499, 0xe49a, 0xe576, 0xe59e, 0xe5a5, 0xe5ab, 0xe5ae, 0xe648, - 0xe65d, 0xe6cb, 0xe6e4, 0xe8c5, 0xe8e4, 0xe935, 0xe9a5, 0xe9d5, - 0xe9f4, 0xea9e, 0xeaa0, 0xeab3, 0xeae1, 0xeae8, 0xeb93, 0xebad, - 0xebed, 0xecf5, 0xed31, 0xed39, 0xedae, 0xedb1, 0xedb2, 0xedb9, - 0xedbb, 0xedbc, 0xedc4, 0xedce, 0xedd0, 0xedd2, 0xedd6, 0xedfa, - 0xedfb, 0xedfc, 0xedfe, 0xee31, 0xee34, 0xee37, 0xee3d, 0xee3f, - 0xee40, 0xee41, 0xee43, 0xee47, 0xee48, 0xee4c, 0xee54, 0xee56, - 0xee57, 0xee5a, 0xee62, 0xee66, 0xee69, 0xee6c, 0xee6f, 0xee71, - 0xee74, 0xee75, 0xee76, 0xee78, 0xee7a, 0xee7b, 0xee7c, 0xee91, - 0xee93, 0xee94, 0xee97, 0xee98, 0xee99, 0xee9b, 0xeea1, 0xeea6, - 0xeea9, 0xeeaa, 0xeeac, 0xeead, 0xeeb0, 0xeebf, 0xeec1, 0xeec6, - 0xeec7, 0xeecb, 0xeecd, 0xeecf, 0xeed0, 0xeed3, 0xeedf, 0xeee4, - 0xeee6, 0xeef7, 0xef77, 0xef78, 0xef92, 0xef93, 0xef99, 0xef9b, - 0xef9d, 0xefa0, 0xefa7, 0xefac, 0xefcc, 0xeff7, 0xf051, 0xf075, - 0xf096, 0xf099, 0xf09e, 0xf0a0, 0xf0a4, 0xf0a7, 0xf0a9, 0xf0aa, - 0xf0ba, 0xf0bb, 0xf0bd, 0xf0c1, 0xf0c2, 0xf0c6, 0xf0c7, 0xf0cc, - 0xf0cf, 0xf0d0, 0xf0d1, 0xf0d2, 0xf0d8, 0xf136, 0xf137, 0xf13a, - 0xf13f, 0xf140, 0xf141, 0xf142, 0xf145, 0xf148, 0xf14a, 0xf150, - 0xf151, 0xf155, 0xf156, 0xf159, 0xf15a, 0xf165, 0xf16d, 0xf16e, - 0xf171, 0xf174, 0xf177, 0xf178, 0xf199, 0xf19a, 0xf19c, 0xf1a1, - 0xf1a2, 0xf1a3, 0xf1ee, 0xf26b, 0xf44d, 0xf49c, 0xf4b1, 0xf537, - /* 0xfa00 .. 0xfaff */ - 0xf57e, 0xf696, 0xf698, 0xf6b8, 0xf6c8, 0xf6d3, 0xf76b, 0xf792, - 0xf831, 0xf832, 0xf876, 0xf939, 0xef44, 0x003f, 0x003f, 0x003f, - 0xf5c0, 0x003f, 0xf577, 0x003f, 0x003f, 0xf9eb, 0xf254, 0xf15c, - 0x003f, 0xecea, 0xead4, 0xe968, 0xf2fe, 0xf2f1, 0xefe2, 0x003f, - 0x003f, 0x003f, 0xf343, 0x003f, 0x003f, 0xf191, 0xe544, 0x003f, - 0x003f, 0x003f, 0xe89b, 0xea9a, 0xe24d, 0xf7cd, 0x003f, 0x003f, - 0xe7b2, 0xecac, 0xe795, 0xe797, 0xe353, 0xe9e4, 0xe072, 0xf6a3, - 0xe391, 0x003f, 0xe7f8, 0xf645, 0x003f, 0xf972, 0xe0c6, 0xf3f3, - 0xf4a4, 0xe852, 0x003f, 0xeaf4, 0xe76e, 0xf83d, 0xf252, 0xf7d3, - 0xf1b4, 0x003f, 0xf69e, 0xe9f8, 0xea74, 0xf443, 0xe3b7, 0xefde, - 0xf363, 0xf5e6, 0xf931, 0xf2ee, 0xe1da, 0xe55d, 0xf2bd, 0xe633, - 0xf46b, 0xe8e5, 0xeafe, 0xf1ba, 0xf63b, 0x003f, 0x003f, 0xf25a, - 0xe078, 0xecca, 0xed67, 0xe35d, 0xea49, 0xf3fc, 0x003f, 0xf191, - 0xe3f1, 0xf852, 0xea4a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf291, 0x003f, 0xf5f6, 0xe37d, 0xefb8, 0xf1c3, - 0xe072, 0x003f, 0xf9c2, 0x003f, 0xf5c0, 0xe9c5, 0xedf2, 0xe9c6, - 0xe9e6, 0x003f, 0x003f, 0x003f, 0xf4f4, 0x003f, 0x003f, 0x003f, - 0xf091, 0xf3f3, 0x003f, 0xf4a4, 0xe4e3, 0xf093, 0xec34, 0x003f, - 0xeef9, 0xf577, 0xe5c7, 0xe760, 0xf1e8, 0x003f, 0xeaaf, 0xe6b5, - 0x003f, 0xf1b2, 0xf7d3, 0xf2e7, 0xf1b4, 0x003f, 0xf1c9, 0xe8f3, - 0xf254, 0x003f, 0x003f, 0x003f, 0x003f, 0xef40, 0xf15c, 0xeb9e, - 0xf451, 0x003f, 0xf4b7, 0x003f, 0x003f, 0xf2bd, 0x003f, 0x003f, - 0xe633, 0x003f, 0xf1ba, 0xf968, 0xf934, 0x003f, 0xe0ba, 0xe96d, - 0xecca, 0xf370, 0xf343, 0xf57b, 0xed67, 0xe3e7, 0xf0b1, 0xe35d, - 0xe938, 0xf3fc, 0xec53, 0xf450, 0x003f, 0x003f, 0x003f, 0xe3f1, - 0xf2fe, 0x003f, 0xf852, 0x003f, 0xea4a, 0x003f, 0xe2cf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xfb00 .. 0xfbff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x002b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xfe00 .. 0xfeff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd93a, 0xd93a, 0xd93a, 0xd93a, 0x005f, 0x005f, 0x005f, - 0x002c, 0xd932, 0x002e, 0x003f, 0x003b, 0x003a, 0x003f, 0x0021, - 0xd93a, 0x0028, 0x0029, 0x007b, 0x007d, 0xd942, 0xd943, 0x0023, - 0x0026, 0x002a, 0x002b, 0x002d, 0x003c, 0x003e, 0x003d, 0x003f, - 0x003f, 0x0024, 0x0025, 0x0040, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xff00 .. 0xffff */ - 0x003f, 0xda31, 0xda32, 0xda33, 0xda34, 0xda35, 0xda36, 0xda37, - 0xda38, 0xda39, 0xda3a, 0xda3b, 0xda3c, 0xda3d, 0xda3e, 0xda3f, - 0xda40, 0xda41, 0xda42, 0xda43, 0xda44, 0xda45, 0xda46, 0xda47, - 0xda48, 0xda49, 0xda4a, 0xda4b, 0xda4c, 0xda4d, 0xda4e, 0xda4f, - 0xda50, 0xda51, 0xda52, 0xda53, 0xda54, 0xda55, 0xda56, 0xda57, - 0xda58, 0xda59, 0xda5a, 0xda5b, 0xda5c, 0xda5d, 0xda5e, 0xda5f, - 0xda60, 0xda61, 0xda62, 0xda63, 0xda64, 0xda65, 0xda66, 0xda67, - 0xda68, 0xda69, 0xda6a, 0xda6b, 0xd93c, 0xda6d, 0xda6e, 0xda6f, - 0xda70, 0xda71, 0xda72, 0xda73, 0xda74, 0xda75, 0xda76, 0xda77, - 0xda78, 0xda79, 0xda7a, 0xda7b, 0xda7c, 0xda7d, 0xda7e, 0xda91, - 0xda92, 0xda93, 0xda94, 0xda95, 0xda96, 0xda97, 0xda98, 0xda99, - 0xda9a, 0xda9b, 0xda9c, 0xda9d, 0xda9e, 0xda9f, 0xd9a6, 0x003f, - 0x003f, 0xd933, 0xd948, 0xd949, 0xd932, 0x003f, 0xde94, 0xde31, - 0xde33, 0xde35, 0xde37, 0xde39, 0xde73, 0xde75, 0xde77, 0xde53, - 0x003f, 0xde32, 0xde34, 0xde36, 0xde38, 0xde3a, 0xde3b, 0xde3d, - 0xde3f, 0xde41, 0xde43, 0xde45, 0xde47, 0xde49, 0xde4b, 0xde4d, - 0xde4f, 0xde51, 0xde54, 0xde56, 0xde58, 0xde5a, 0xde5b, 0xde5c, - 0xde5d, 0xde5e, 0xde5f, 0xde62, 0xde65, 0xde68, 0xde6b, 0xde6e, - 0xde6f, 0xde70, 0xde71, 0xde72, 0xde74, 0xde76, 0xde78, 0xde79, - 0xde7a, 0xde7b, 0xde7c, 0xde7d, 0xde91, 0xde95, 0x003f, 0x003f, - 0xdad4, 0x8841, 0x8c41, 0x8444, 0x9041, 0x8446, 0x8447, 0x9441, - 0x9841, 0x9c41, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, - 0x8450, 0xa041, 0xa441, 0xa841, 0x8454, 0xac41, 0xb041, 0xb441, - 0xb841, 0xbc41, 0xc041, 0xc441, 0xc841, 0xcc41, 0xd041, 0x003f, - 0x003f, 0x003f, 0x8461, 0x8481, 0x84a1, 0x84c1, 0x84e1, 0x8541, - 0x003f, 0x003f, 0x8561, 0x8581, 0x85a1, 0x85c1, 0x85e1, 0x8641, - 0x003f, 0x003f, 0x8661, 0x8681, 0x86a1, 0x86c1, 0x86e1, 0x8741, - 0x003f, 0x003f, 0x8761, 0x8781, 0x87a1, 0x003f, 0x003f, 0x003f, - 0xd95b, 0xd95c, 0xd9a0, 0xdaa0, 0x007c, 0xd95d, 0xda6c, 0x003f, - 0xdba2, 0xd977, 0xd978, 0xd976, 0xd979, 0xd971, 0xd96b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* defaults */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x9900, 0x9900, 0x9900, - 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, - 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, - 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x0e00, 0x9900, - 0x9900, 0x9900, 0x9900, 0x9900, 0x0f00, 0x9900, 0x1000, 0x1100, - 0x1200, 0x1300, 0x1400, 0x1500, 0x9900, 0x9900, 0x9900, 0x9900, - 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, - 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, - 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x1600, 0x1700, - 0x1800, 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, 0x1f00, - 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, - 0x2800, 0x2900, 0x2a00, 0x2b00, 0x2c00, 0x2d00, 0x2e00, 0x2f00, - 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, 0x3700, - 0x3800, 0x3900, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, - 0x4000, 0x4100, 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, 0x4700, - 0x4800, 0x4900, 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, 0x4f00, - 0x5000, 0x5100, 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, 0x5700, - 0x5800, 0x5900, 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, 0x5f00, - 0x6000, 0x6100, 0x6200, 0x6300, 0x6400, 0x6500, 0x6600, 0x6700, - 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, - 0x9900, 0x9900, 0x9900, 0x9900, 0x6800, 0x6900, 0x6a00, 0x6b00, - 0x6c00, 0x6d00, 0x6e00, 0x6f00, 0x7000, 0x7100, 0x7200, 0x7300, - 0x7400, 0x7500, 0x7600, 0x7700, 0x7800, 0x7900, 0x7a00, 0x7b00, - 0x7c00, 0x7d00, 0x7e00, 0x7f00, 0x8000, 0x8100, 0x8200, 0x8300, - 0x8400, 0x8500, 0x8600, 0x8700, 0x8800, 0x8900, 0x8a00, 0x8b00, - 0x8c00, 0x8d00, 0x8e00, 0x8f00, 0x9000, 0x9100, 0x9200, 0x9300, - 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, - 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, - 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, - 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, 0x9900, - 0x9900, 0x9400, 0x9500, 0x9600, 0x9900, 0x9900, 0x9700, 0x9800 -}; - -const struct dbcs_table cptable_1361 = -{ - { 1361, 2, 0x003f, 0x003f, "Korean Johab" }, - cp2uni, - cp2uni_leadbytes, - uni2cp_low, - uni2cp_high, - { - 0x84, 0xd3, 0xd9, 0xde, 0xe0, 0xf9, 0x00, 0x00 - } -}; diff --git a/reactos/tools/unicode/c_20127.c b/reactos/tools/unicode/c_20127.c deleted file mode 100644 index 9e06060c81a..00000000000 --- a/reactos/tools/unicode/c_20127.c +++ /dev/null @@ -1,716 +0,0 @@ -/* code page 20127 (US-ASCII (7bit)) */ -/* Automatically generated; DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x20, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x7c, 0x3f, - 0x22, 0x63, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d, - 0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 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, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0300 .. 0x03ff */ - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 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, 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, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 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, - 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, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_20127 = -{ - { 20127, 1, 0x003f, 0x003f, "US-ASCII (7bit)" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_20866.c b/reactos/tools/unicode/c_20866.c deleted file mode 100644 index 5f67e70dd6a..00000000000 --- a/reactos/tools/unicode/c_20866.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 20866 (Russian KOI8) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, - 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, - 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, - 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, - 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, - 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, - 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, - 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, - 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, - 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, - 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, - 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, - 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x9a, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x7c, 0x3f, - 0x22, 0xbf, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d, - 0x9c, 0x3f, 0x9d, 0x33, 0x27, 0x75, 0x3f, 0x9e, - 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, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x9f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x81, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x9c, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0x9c, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x9e, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0400 .. 0x04ff */ - 0xe5, 0xb3, 0x3f, 0xe7, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xeb, 0xe9, 0xf5, 0x3f, - 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, - 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, - 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, - 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, - 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, - 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, - 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, - 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, - 0xc5, 0xa3, 0x3f, 0xc7, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, 0xc9, 0xd5, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xf6, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0xc1, 0xe1, 0xc1, 0x3f, 0x3f, 0xe5, 0xc5, - 0x3f, 0x3f, 0x3f, 0x3f, 0xf6, 0xd6, 0xfa, 0xda, - 0x3f, 0x3f, 0xe9, 0xc9, 0xe9, 0xc9, 0xef, 0xcf, - 0x3f, 0x3f, 0x3f, 0x3f, 0xfc, 0xdc, 0xf5, 0xd5, - 0xf5, 0xd5, 0xf5, 0xd5, 0xfe, 0xde, 0x3f, 0x3f, - 0xf9, 0xd9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xce, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0x95, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x9c, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, - 0x9c, 0x95, 0x96, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x97, 0x97, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0x3d, 0x3d, 0x3d, 0x98, 0x99, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, - 0x98, 0x99, 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, 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, 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, 0x9e, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, - 0x93, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x80, 0x80, 0x81, 0x81, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x82, 0x82, 0x82, 0x82, - 0x83, 0x83, 0x83, 0x83, 0x84, 0x84, 0x84, 0x84, - 0x85, 0x85, 0x85, 0x85, 0x86, 0x86, 0x86, 0x86, - 0x86, 0x86, 0x86, 0x86, 0x87, 0x87, 0x87, 0x87, - 0x87, 0x87, 0x87, 0x87, 0x88, 0x88, 0x88, 0x88, - 0x88, 0x88, 0x88, 0x88, 0x89, 0x89, 0x89, 0x89, - 0x89, 0x89, 0x89, 0x89, 0x8a, 0x8a, 0x8a, 0x8a, - 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, - 0x8a, 0x8a, 0x8a, 0x8a, 0x2d, 0x2d, 0x7c, 0x7c, - 0xa0, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, - 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, - 0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, - 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0x8b, 0x3f, 0x3f, 0x3f, 0x8c, 0x3f, 0x3f, 0x3f, - 0x8d, 0x3f, 0x3f, 0x3f, 0x8e, 0x3f, 0x3f, 0x3f, - 0x8f, 0x90, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x94, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x4c, 0x3f, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, - 0x81, 0x3c, 0x5e, 0x3e, 0x76, 0x94, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_20866 = -{ - { 20866, 1, 0x003f, 0x003f, "Russian KOI8" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_20932.c b/reactos/tools/unicode/c_20932.c deleted file mode 100644 index 09f383b875c..00000000000 --- a/reactos/tools/unicode/c_20932.c +++ /dev/null @@ -1,6333 +0,0 @@ -/* code page 20932 (EUC-JP) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0208.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[20480] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0000, 0x0000, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x003f, - /* unused lead bytes */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte 8e */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, - 0xff68, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, - 0xff70, 0xff71, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, - 0xff78, 0xff79, 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, - 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, - 0xff88, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, 0xff8f, - 0xff90, 0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97, - 0xff98, 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x2015, 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, - 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, 0x003f, - /* lead byte a2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, - 0x203b, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, - 0x222a, 0x2229, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x2227, 0x2228, 0x00ac, 0x21d2, 0x21d4, 0x2200, - 0x2203, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x2220, 0x22a5, 0x2312, 0x2202, - 0x2207, 0x2261, 0x2252, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, - 0x2235, 0x222b, 0x222c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, - 0x2021, 0x00b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x25ef, 0x003f, - /* lead byte a3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, - 0xff18, 0xff19, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, - 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, - 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, - 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, - 0x03a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, - 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, - 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, - 0x03c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, - 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, - 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, - 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, - 0x044e, 0x044f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte b0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte b1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte b2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte b3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte b4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte b5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte b6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte b7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte b8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte b9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte ba */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte bb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte bc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte bd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte be */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte bf */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte c0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte c1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte c2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte c3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte c4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte c5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte c6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte c7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte c8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte c9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte ca */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte cb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte cc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte cd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte ce */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte cf */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte d0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte d1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte d2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte d3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte d4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte d5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte d6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte d7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte d8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte d9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte da */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte db */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte dc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte dd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte de */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte df */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte e0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte e1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte e2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte e3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte e4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte e5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte e6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte e7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte e8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte e9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte ea */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte eb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte ec */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte ed */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte ee */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte ef */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte f0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte f1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte f2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, 0x003f, - /* lead byte f3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 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, - 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, 0x003f, - /* lead byte f4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f -}; - -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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x0a, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, - 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, - 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 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, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 -}; - -static const unsigned short uni2cp_low[27904] = -{ - /* 0x0000 .. 0x00ff */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0020, 0x0021, 0xa1f1, 0xa1f2, 0x003f, 0x005c, 0x007c, 0xa1f8, - 0xa1af, 0x0063, 0x0061, 0xa1d4, 0xa2cc, 0x002d, 0x0072, 0xa1bd, - 0xa1eb, 0xa1de, 0x0032, 0x0033, 0xa1ad, 0xa6cc, 0xa2f9, 0x003f, - 0x002c, 0x0031, 0x006f, 0xa1d5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0043, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, - 0x0044, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0xa1df, - 0x004f, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0x003f, 0xa6c2, - 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0063, - 0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, - 0x0064, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0xa1e0, - 0x006f, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0x003f, 0x0079, - /* 0x0100 .. 0x01ff */ - 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063, - 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064, - 0x0044, 0x0064, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, - 0x0045, 0x0065, 0x0045, 0x0065, 0x0047, 0x0067, 0x0047, 0x0067, - 0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, - 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, - 0x0049, 0x0069, 0x003f, 0x003f, 0x004a, 0x006a, 0x004b, 0x006b, - 0x003f, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x003f, - 0x003f, 0x004c, 0x006c, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, - 0x006e, 0x003f, 0x003f, 0x003f, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0x004f, 0x006f, 0x0052, 0x0072, 0x0052, 0x0072, - 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, - 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, - 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, - 0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079, - 0x0059, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0073, - 0x0062, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0044, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0045, 0x0046, 0x0066, 0x003f, 0x003f, 0x003f, 0x003f, 0x0049, - 0x003f, 0x003f, 0x006c, 0x003f, 0x003f, 0x003f, 0x003f, 0x004f, - 0x004f, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x0074, 0x003f, 0x003f, 0x0054, 0x0055, - 0x0075, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa8a2, 0x003f, 0x003f, 0x0021, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0049, - 0x0069, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, - 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x003f, 0x0041, 0x0061, - 0x0041, 0x0061, 0x0041, 0x0061, 0x0047, 0x0067, 0x0047, 0x0067, - 0x004b, 0x006b, 0x004f, 0x006f, 0x004f, 0x006f, 0x003f, 0x003f, - 0x006a, 0x003f, 0x003f, 0x003f, 0x0047, 0x0067, 0x003f, 0x003f, - 0x004e, 0x006e, 0x0041, 0x0061, 0x0041, 0x0061, 0x004f, 0x006f, - /* 0x0200 .. 0x02ff */ - 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, - 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, - 0x0052, 0x0072, 0x0052, 0x0072, 0x0055, 0x0075, 0x0055, 0x0075, - 0x0053, 0x0073, 0x0054, 0x0074, 0x003f, 0x003f, 0x0048, 0x0068, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, - 0x0045, 0x0065, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0067, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0068, 0x003f, 0x006a, 0x0072, 0x003f, 0x003f, 0x003f, 0x0077, - 0x0079, 0xa1ad, 0xa1ed, 0xa1c6, 0xa1c7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x005e, 0x0076, - 0x0027, 0xa1bd, 0xa1ad, 0x0060, 0x003f, 0x005f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1eb, 0x003f, 0x007e, 0xa1ed, 0x003f, 0x003f, - 0x003f, 0x006c, 0x0073, 0x0078, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0300 .. 0x03ff */ - 0x0060, 0xa1ad, 0x005e, 0x007e, 0xa1bd, 0x007e, 0x003f, 0x003f, - 0xa1af, 0x003f, 0xa1eb, 0xa1ed, 0x0076, 0x003f, 0x0022, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x005f, 0x005f, 0x005f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0060, 0xa1ad, 0x003f, 0x003f, 0xa1af, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ad, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ad, 0xa1af, 0xa6a1, 0x003f, - 0xa6a5, 0xa6a7, 0xa6a9, 0x003f, 0xa6af, 0x003f, 0xa6b4, 0xa6b8, - 0xa6c9, 0xa6a1, 0xa6a2, 0xa6a3, 0xa6a4, 0xa6a5, 0xa6a6, 0xa6a7, - 0xa6a8, 0xa6a9, 0xa6aa, 0xa6ab, 0xa6ac, 0xa6ad, 0xa6ae, 0xa6af, - 0xa6b0, 0xa6b1, 0x003f, 0xa6b2, 0xa6b3, 0xa6b4, 0xa6b5, 0xa6b6, - 0xa6b7, 0xa6b8, 0xa6a9, 0xa6b4, 0xa6c1, 0xa6c5, 0xa6c7, 0xa6c9, - 0xa6d4, 0xa6c1, 0xa6c2, 0xa6c3, 0xa6c4, 0xa6c5, 0xa6c6, 0xa6c7, - 0xa6c8, 0xa6c9, 0xa6ca, 0xa6cb, 0xa6cc, 0xa6cd, 0xa6ce, 0xa6cf, - 0xa6d0, 0xa6d1, 0x003f, 0xa6d2, 0xa6d3, 0xa6d4, 0xa6d5, 0xa6d6, - 0xa6d7, 0xa6d8, 0xa6c9, 0xa6d4, 0xa6cf, 0xa6d4, 0xa6d8, 0x003f, - 0xa6c2, 0xa6c8, 0xa6b4, 0xa6b4, 0xa6b4, 0xa6d5, 0xa6d0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa6ca, 0xa6d1, 0x003f, 0x003f, 0xa6a8, 0xa6c5, 0x003f, 0x003f, - 0x003f, 0xa6b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0400 .. 0x04ff */ - 0xa7a6, 0xa7a7, 0x003f, 0xa7a4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa7ac, 0xa7aa, 0xa7b5, 0x003f, - 0xa7a1, 0xa7a2, 0xa7a3, 0xa7a4, 0xa7a5, 0xa7a6, 0xa7a8, 0xa7a9, - 0xa7aa, 0xa7ab, 0xa7ac, 0xa7ad, 0xa7ae, 0xa7af, 0xa7b0, 0xa7b1, - 0xa7b2, 0xa7b3, 0xa7b4, 0xa7b5, 0xa7b6, 0xa7b7, 0xa7b8, 0xa7b9, - 0xa7ba, 0xa7bb, 0xa7bc, 0xa7bd, 0xa7be, 0xa7bf, 0xa7c0, 0xa7c1, - 0xa7d1, 0xa7d2, 0xa7d3, 0xa7d4, 0xa7d5, 0xa7d6, 0xa7d8, 0xa7d9, - 0xa7da, 0xa7db, 0xa7dc, 0xa7dd, 0xa7de, 0xa7df, 0xa7e0, 0xa7e1, - 0xa7e2, 0xa7e3, 0xa7e4, 0xa7e5, 0xa7e6, 0xa7e7, 0xa7e8, 0xa7e9, - 0xa7ea, 0xa7eb, 0xa7ec, 0xa7ed, 0xa7ee, 0xa7ef, 0xa7f0, 0xa7f1, - 0xa7d6, 0xa7d7, 0x003f, 0xa7d4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa7dc, 0xa7da, 0xa7e5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa7a8, 0xa7d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa7a1, 0xa7d1, 0xa7a1, 0xa7d1, 0x003f, 0x003f, 0xa7a6, 0xa7d6, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa7a8, 0xa7d8, 0xa7a9, 0xa7d9, - 0x003f, 0x003f, 0xa7aa, 0xa7da, 0xa7aa, 0xa7da, 0xa7b0, 0xa7e0, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa7bf, 0xa7ef, 0xa7b5, 0xa7e5, - 0xa7b5, 0xa7e5, 0xa7b5, 0xa7e5, 0xa7b9, 0xa7e9, 0x003f, 0x003f, - 0xa7bd, 0xa7ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x1d00 .. 0x1dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0041, 0x0042, 0x003f, - 0x0044, 0x0045, 0x003f, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, - 0x004c, 0x004d, 0x004e, 0x003f, 0x004f, 0x003f, 0x0050, 0x0052, - 0x0054, 0x0055, 0x0057, 0x0061, 0x003f, 0x003f, 0x003f, 0x0062, - 0x0064, 0x0065, 0x003f, 0x003f, 0x003f, 0x0067, 0x003f, 0x006b, - 0x006d, 0x003f, 0x006f, 0x003f, 0x003f, 0x003f, 0x0070, 0x0074, - 0x0075, 0x003f, 0x003f, 0x0076, 0x003f, 0xa6c2, 0xa6c3, 0xa6c4, - 0xa6d5, 0xa6d6, 0x0069, 0x0072, 0x0075, 0x0076, 0xa6c2, 0xa6c3, - 0xa6d1, 0xa6d5, 0xa6d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa7df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x0063, 0x003f, 0x0064, 0x003f, - 0x0066, 0x003f, 0x0067, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0074, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x007a, 0x003f, 0x003f, 0x003f, 0xa6c8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x1e00 .. 0x1eff */ - 0x0041, 0x0061, 0x0042, 0x0062, 0x0042, 0x0062, 0x0042, 0x0062, - 0x0043, 0x0063, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, - 0x0044, 0x0064, 0x0044, 0x0064, 0x0045, 0x0065, 0x0045, 0x0065, - 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0046, 0x0066, - 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, - 0x0048, 0x0068, 0x0048, 0x0068, 0x0049, 0x0069, 0x0049, 0x0069, - 0x004b, 0x006b, 0x004b, 0x006b, 0x004b, 0x006b, 0x004c, 0x006c, - 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004d, 0x006d, - 0x004d, 0x006d, 0x004d, 0x006d, 0x004e, 0x006e, 0x004e, 0x006e, - 0x004e, 0x006e, 0x004e, 0x006e, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0x004f, 0x006f, 0x0050, 0x0070, 0x0050, 0x0070, - 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, - 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, - 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, - 0x0054, 0x0074, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, - 0x0055, 0x0075, 0x0055, 0x0075, 0x0056, 0x0076, 0x0056, 0x0076, - 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, - 0x0057, 0x0077, 0x0058, 0x0078, 0x0058, 0x0078, 0x0059, 0x0079, - 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0068, 0x0074, - 0x0077, 0x0079, 0x003f, 0x0073, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, - 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, - 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, - 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, - 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, - 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, - 0x004f, 0x006f, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, - 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, - 0x0055, 0x0075, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, - 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x1f00 .. 0x1fff */ - 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, - 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, - 0xa6c5, 0xa6c5, 0xa6c5, 0xa6c5, 0xa6c5, 0xa6c5, 0x003f, 0x003f, - 0xa6a5, 0xa6a5, 0xa6a5, 0xa6a5, 0xa6a5, 0xa6a5, 0x003f, 0x003f, - 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, - 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, - 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, - 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, - 0xa6cf, 0xa6cf, 0xa6cf, 0xa6cf, 0xa6cf, 0xa6cf, 0x003f, 0x003f, - 0xa6af, 0xa6af, 0xa6af, 0xa6af, 0xa6af, 0xa6af, 0x003f, 0x003f, - 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, - 0x003f, 0xa6b4, 0x003f, 0xa6b4, 0x003f, 0xa6b4, 0x003f, 0xa6b4, - 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, - 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, - 0xa6c1, 0xa6c1, 0xa6c5, 0xa6c5, 0xa6c7, 0xa6c7, 0xa6c9, 0xa6c9, - 0xa6cf, 0xa6cf, 0xa6d4, 0xa6d4, 0xa6d8, 0xa6d8, 0x003f, 0x003f, - 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, - 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, - 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, - 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, - 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, - 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, - 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0x003f, 0xa6c1, 0xa6c1, - 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0x003f, 0xa6c9, 0x003f, - 0x003f, 0xa1af, 0xa6c7, 0xa6c7, 0xa6c7, 0x003f, 0xa6c7, 0xa6c7, - 0xa6a5, 0xa6a5, 0xa6a7, 0xa6a7, 0xa6a7, 0x003f, 0x003f, 0x003f, - 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0x003f, 0x003f, 0xa6c9, 0xa6c9, - 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d1, 0xa6d1, 0xa6d4, 0xa6d4, - 0xa6b4, 0xa6b4, 0xa6b4, 0xa6b4, 0xa6b1, 0xa1af, 0xa1af, 0x0060, - 0x003f, 0x003f, 0xa6d8, 0xa6d8, 0xa6d8, 0x003f, 0xa6d8, 0xa6d8, - 0xa6af, 0xa6af, 0xa6b8, 0xa6b8, 0xa6b8, 0xa1ad, 0x003f, 0x003f, - /* 0x2000 .. 0x20ff */ - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1be, 0xa1be, 0x003f, 0xa1bd, 0xa1bd, 0xa1bd, 0xa1c2, 0x005f, - 0xa1c6, 0xa1c7, 0x002c, 0xa1c6, 0xa1c8, 0xa1c9, 0x002c, 0x003f, - 0xa2f7, 0xa2f8, 0x003f, 0x003f, 0x002e, 0xa1c5, 0xa1c4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, - 0xa2f3, 0x003f, 0xa1ec, 0xa1ed, 0x003f, 0xa1c6, 0x003f, 0x003f, - 0x003f, 0xa1d2, 0xa1d3, 0xa2a8, 0x0021, 0x003f, 0x007e, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x002f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1eb, 0x0069, 0x003f, 0x003f, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x002b, 0xa1dd, 0x003d, 0x0028, 0x0029, 0x006e, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x002b, 0xa1dd, 0x003d, 0x0028, 0x0029, 0x003f, - 0x0061, 0x0065, 0x006f, 0x0078, 0x003f, 0x0068, 0x006b, 0x006c, - 0x006d, 0x006e, 0x0070, 0x0073, 0x0074, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa1f1, 0x003f, 0x003f, 0xa1f2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2100 .. 0x21ff */ - 0x003f, 0x003f, 0x0043, 0xa1ee, 0x003f, 0x003f, 0x003f, 0x0045, - 0x003f, 0x003f, 0x0067, 0x0048, 0x0048, 0x0048, 0x0068, 0x0068, - 0x0049, 0x0049, 0x004c, 0x006c, 0x003f, 0x004e, 0x003f, 0x003f, - 0x0050, 0x0050, 0x0051, 0x0052, 0x0052, 0x0052, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x005a, 0x003f, 0xa6b8, 0x003f, - 0x005a, 0x003f, 0x004b, 0xa2f2, 0x0042, 0x0043, 0x0065, 0x0065, - 0x0045, 0x0046, 0x003f, 0x004d, 0x006f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0069, 0x003f, 0x003f, 0xa6d0, 0xa6c3, 0xa6a3, 0xa6b0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0044, 0x0064, 0x0065, - 0x0069, 0x006a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0049, 0x003f, 0x003f, 0x003f, 0x0056, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0058, 0x003f, 0x003f, 0x004c, 0x0043, 0x0044, 0x004d, - 0x0069, 0x003f, 0x003f, 0x003f, 0x0076, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0078, 0x003f, 0x003f, 0x006c, 0x0063, 0x0064, 0x006d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa2ab, 0xa2ac, 0xa2aa, 0xa2ad, 0x002d, 0x007c, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa2ab, 0xa2aa, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2ce, 0xa2cd, - 0x003f, 0x003f, 0xa2cd, 0x003f, 0xa2ce, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2200 .. 0x22ff */ - 0xa2cf, 0x003f, 0xa2df, 0xa2d0, 0xa2d0, 0x004f, 0x003f, 0xa2e0, - 0xa2ba, 0xa2ba, 0x003f, 0xa2bb, 0xa2bb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1dd, 0xa1de, 0x003f, 0x002f, 0x005c, 0x002a, - 0xa1eb, 0x003f, 0xa2e5, 0x003f, 0x003f, 0xa2e7, 0xa1e7, 0x004c, - 0xa2dc, 0x003f, 0x003f, 0x007c, 0x007c, 0x003f, 0x003f, 0xa2ca, - 0xa2cb, 0xa2c1, 0xa2c0, 0xa2e9, 0xa2ea, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e8, 0xa2e8, 0x003a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x007e, 0xa2e6, 0x003f, 0x003f, - 0x003f, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x007e, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa2e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1e2, 0xa2e1, 0xa2e1, 0xa2e1, 0x003f, 0x003f, 0xa1e5, 0xa1e6, - 0x003f, 0x003f, 0xa2e3, 0xa2e4, 0x003f, 0x003f, 0x003c, 0x003e, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa2be, 0xa2bf, 0xa2be, 0xa2bf, 0xa2bc, 0xa2bd, - 0xa2bc, 0xa2bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2dd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2300 .. 0x23ff */ - 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa2de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa1d2, 0xa1d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2400 .. 0x24ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0042, - 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, - 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, - 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, - 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, - 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0030, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2500 .. 0x25ff */ - 0xa8a1, 0xa8ac, 0xa8a2, 0xa8ad, 0x002d, 0x002d, 0x007c, 0x007c, - 0x002d, 0x002d, 0x007c, 0x007c, 0xa8a3, 0xa8a3, 0xa8a3, 0xa8ae, - 0xa8a4, 0xa8a4, 0xa8a4, 0xa8af, 0xa8a6, 0xa8a6, 0xa8a6, 0xa8b1, - 0xa8a5, 0xa8a5, 0xa8a5, 0xa8b0, 0xa8a7, 0xa8bc, 0xa8a7, 0xa8a7, - 0xa8b7, 0xa8a7, 0xa8a7, 0xa8b2, 0xa8a9, 0xa8be, 0xa8a9, 0xa8a9, - 0xa8b9, 0xa8a9, 0xa8a9, 0xa8b4, 0xa8a8, 0xa8a8, 0xa8a8, 0xa8b8, - 0xa8bd, 0xa8a8, 0xa8a8, 0xa8b3, 0xa8aa, 0xa8aa, 0xa8aa, 0xa8ba, - 0xa8bf, 0xa8aa, 0xa8aa, 0xa8b5, 0xa8ab, 0xa8ab, 0xa8ab, 0xa8bb, - 0xa8ab, 0xa8ab, 0xa8c0, 0xa8ab, 0xa8ab, 0xa8ab, 0xa8ab, 0xa8ab, - 0xa8ab, 0xa8ab, 0xa8ab, 0xa8b6, 0x002d, 0x002d, 0x007c, 0x007c, - 0x003d, 0x007c, 0x002b, 0x002b, 0x002b, 0xa2cc, 0xa2cc, 0xa2cc, - 0x004c, 0x004c, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, - 0x002b, 0x002b, 0x002b, 0x002b, 0x0054, 0x0054, 0x0054, 0x002b, - 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x003f, 0x003f, 0x003f, - 0x003f, 0x002f, 0x005c, 0x0058, 0x002d, 0x007c, 0x002d, 0x007c, - 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa2a3, 0xa2a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa2a5, 0xa2a4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a7, 0xa2a6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a1, 0xa1fe, - 0x003f, 0x003f, 0x003f, 0xa1fb, 0x003f, 0x003f, 0xa1fd, 0xa1fc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2fe, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2600 .. 0x26ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1fa, 0xa1f9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1ea, 0x003f, 0xa1e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa2f6, 0x003f, 0x003f, 0xa2f5, 0x003f, 0xa2f4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2c00 .. 0x2cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x006a, 0x0056, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2e00 .. 0x2eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaec, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2f00 .. 0x2fff */ - 0xb0ec, 0x003f, 0xd0a6, 0xd0a8, 0xb2b5, 0xd0ad, 0xc6f3, 0xd0b5, - 0xbfcd, 0xd1b9, 0xc6fe, 0xc8ac, 0xd1c4, 0xd1cc, 0xd1d2, 0xd1dc, - 0xd1e1, 0xc5e1, 0xcecf, 0xd2b1, 0xd2b8, 0xd2b9, 0xd2be, 0xbdbd, - 0xcbce, 0xd2c7, 0xd2cc, 0xd2d3, 0xcbf4, 0xb8fd, 0xd3f8, 0xc5da, - 0xbbce, 0xd4e9, 0xd4ea, 0xcdbc, 0xc2e7, 0xbdf7, 0xbbd2, 0xd5df, - 0xc0a3, 0xbeae, 0xd5f7, 0xd5f9, 0xd6a5, 0xbbb3, 0xd6df, 0xb9a9, - 0xb8ca, 0xb6d2, 0xb4b3, 0xd6f6, 0xd6f8, 0xd7ae, 0xd7b0, 0xd7b5, - 0xb5dd, 0x003f, 0xd7c4, 0xd7c6, 0xbfb4, 0xd8f9, 0x003f, 0xbcea, - 0xbbd9, 0xdabd, 0xcab8, 0xc5cd, 0xb6d4, 0xcafd, 0xdadb, 0xc6fc, - 0xdba9, 0xb7ee, 0xccda, 0xb7e7, 0xbbdf, 0xddc6, 0xddd5, 0xddd9, - 0xc8e6, 0xccd3, 0xbbe1, 0xdde3, 0xbfe5, 0xb2d0, 0xc4de, 0xc9e3, - 0xe0ab, 0xe0ad, 0xcad2, 0xb2e7, 0xb5ed, 0xb8a4, 0xb8bc, 0xb6cc, - 0xb1bb, 0xb4a4, 0xb4c5, 0xc0b8, 0xcdd1, 0xc5c4, 0xc9a5, 0x003f, - 0xe2a2, 0xc7f2, 0xc8e9, 0xbbae, 0xccdc, 0xccb7, 0xccf0, 0xc0d0, - 0xbca8, 0x003f, 0xb2d3, 0xb7ea, 0xcea9, 0xc3dd, 0xcac6, 0xbbe5, - 0xb4cc, 0xe6a6, 0xcdd3, 0xb1a9, 0xcfb7, 0xbca9, 0xe6d0, 0xbcaa, - 0xe6e6, 0xc6f9, 0xbfc3, 0xbcab, 0xbbea, 0xb1b1, 0xc0e5, 0xc1a4, - 0xbdae, 0xbab1, 0xbfa7, 0xe7e7, 0xe9c8, 0xc3ee, 0xb7ec, 0xb9d4, - 0xb0e1, 0xeba8, 0xb8ab, 0xb3d1, 0xb8c0, 0xc3ab, 0xc6a6, 0xecb5, - 0xecb8, 0xb3ad, 0xc0d6, 0xc1f6, 0xc2ad, 0xbfc8, 0xbcd6, 0xbfc9, - 0xc3a4, 0x003f, 0xcdb8, 0xc6d3, 0xc8d0, 0xcea4, 0xb6e2, 0xc4b9, - 0xcce7, 0xc9ec, 0xf0b0, 0xf0b2, 0xb1ab, 0x003f, 0xc8f3, 0xcccc, - 0xb3d7, 0xf0ea, 0xf0ec, 0xb2bb, 0xcac7, 0xc9f7, 0xc8f4, 0xbfa9, - 0xbcf3, 0xb9e1, 0xc7cf, 0xb9fc, 0xb9e2, 0xf1f5, 0xf2a8, 0xf2ae, - 0xf2af, 0xb5b4, 0xb5fb, 0xc4bb, 0xf3c3, 0xbcaf, 0xf3ce, 0xcbe3, - 0x003f, 0xb5d0, 0x003f, 0xf3e3, 0xf3e6, 0xc5a4, 0xb8dd, 0xc1cd, - 0xc9a1, 0xf3ee, 0xf3ef, 0xceb6, 0xf3fd, 0xf3fe, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3000 .. 0x30ff */ - 0xa1a1, 0xa1a2, 0xa1a3, 0xa1b7, 0x003f, 0xa1b9, 0xa1ba, 0xa1bb, - 0xa1d2, 0xa1d3, 0xa1d4, 0xa1d5, 0xa1d6, 0xa1d7, 0xa1d8, 0xa1d9, - 0xa1da, 0xa1db, 0xa2a9, 0xa2ae, 0xa1cc, 0xa1cd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x005b, 0x005d, 0xa1c1, 0xa1c8, 0xa1c9, 0x002c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a9, 0x003f, - 0xbdbd, 0x003f, 0xd2c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, 0xa4a5, 0xa4a6, 0xa4a7, - 0xa4a8, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4ae, 0xa4af, - 0xa4b0, 0xa4b1, 0xa4b2, 0xa4b3, 0xa4b4, 0xa4b5, 0xa4b6, 0xa4b7, - 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, 0xa4be, 0xa4bf, - 0xa4c0, 0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, 0xa4c5, 0xa4c6, 0xa4c7, - 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, - 0xa4d0, 0xa4d1, 0xa4d2, 0xa4d3, 0xa4d4, 0xa4d5, 0xa4d6, 0xa4d7, - 0xa4d8, 0xa4d9, 0xa4da, 0xa4db, 0xa4dc, 0xa4dd, 0xa4de, 0xa4df, - 0xa4e0, 0xa4e1, 0xa4e2, 0xa4e3, 0xa4e4, 0xa4e5, 0xa4e6, 0xa4e7, - 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ed, 0xa4ee, 0xa4ef, - 0xa4f0, 0xa4f1, 0xa4f2, 0xa4f3, 0xa4a6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa1ab, 0xa1ac, 0xa1b5, 0xa1b6, 0x003f, - 0x003f, 0xa5a1, 0xa5a2, 0xa5a3, 0xa5a4, 0xa5a5, 0xa5a6, 0xa5a7, - 0xa5a8, 0xa5a9, 0xa5aa, 0xa5ab, 0xa5ac, 0xa5ad, 0xa5ae, 0xa5af, - 0xa5b0, 0xa5b1, 0xa5b2, 0xa5b3, 0xa5b4, 0xa5b5, 0xa5b6, 0xa5b7, - 0xa5b8, 0xa5b9, 0xa5ba, 0xa5bb, 0xa5bc, 0xa5bd, 0xa5be, 0xa5bf, - 0xa5c0, 0xa5c1, 0xa5c2, 0xa5c3, 0xa5c4, 0xa5c5, 0xa5c6, 0xa5c7, - 0xa5c8, 0xa5c9, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, - 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0xa5d4, 0xa5d5, 0xa5d6, 0xa5d7, - 0xa5d8, 0xa5d9, 0xa5da, 0xa5db, 0xa5dc, 0xa5dd, 0xa5de, 0xa5df, - 0xa5e0, 0xa5e1, 0xa5e2, 0xa5e3, 0xa5e4, 0xa5e5, 0xa5e6, 0xa5e7, - 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ee, 0xa5ef, - 0xa5f0, 0xa5f1, 0xa5f2, 0xa5f3, 0xa5f4, 0xa5f5, 0xa5f6, 0xa5ef, - 0xa5f0, 0xa5f1, 0xa5f2, 0xa1a6, 0xa1bc, 0xa1b3, 0xa1b4, 0x003f, - /* 0x3100 .. 0x31ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb0ec, 0xc6f3, 0xbbb0, 0xbbcd, 0xbee5, 0xc3e6, - 0xb2bc, 0xb9c3, 0xb2b5, 0xcaba, 0xc3fa, 0xc5b7, 0xc3cf, 0xbfcd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3200 .. 0x32ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcce4, 0xcdc4, 0xcab8, 0xe4b7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb0ec, 0xc6f3, 0xbbb0, 0xbbcd, 0xb8de, 0xcfbb, 0xbcb7, 0xc8ac, - 0xb6e5, 0xbdbd, 0xb7ee, 0xb2d0, 0xbfe5, 0xccda, 0xb6e2, 0xc5da, - 0xc6fc, 0xb3f4, 0xcdad, 0xbcd2, 0xccbe, 0xc6c3, 0xbae2, 0xbdcb, - 0xcfab, 0xc8eb, 0xc3cb, 0xbdf7, 0xc5ac, 0xcda5, 0xb0f5, 0xc3ed, - 0xb9e0, 0xb5d9, 0xbccc, 0xc0b5, 0xbee5, 0xc3e6, 0xb2bc, 0xbab8, - 0xb1a6, 0xb0e5, 0xbda1, 0xb3d8, 0xb4c6, 0xb4eb, 0xbbf1, 0xb6a8, - 0xcceb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa5a2, 0xa5a4, 0xa5a6, 0xa5a8, 0xa5aa, 0xa5ab, 0xa5ad, 0xa5af, - 0xa5b1, 0xa5b3, 0xa5b5, 0xa5b7, 0xa5b9, 0xa5bb, 0xa5bd, 0xa5bf, - 0xa5c1, 0xa5c4, 0xa5c6, 0xa5c8, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, - 0xa5ce, 0xa5cf, 0xa5d2, 0xa5d5, 0xa5d8, 0xa5db, 0xa5de, 0xa5df, - 0xa5e0, 0xa5e1, 0xa5e2, 0xa5e4, 0xa5e6, 0xa5e8, 0xa5e9, 0xa5ea, - 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ef, 0xa5f0, 0xa5f1, 0xa5f2, 0x003f, - /* 0x4e00 .. 0x4eff */ - 0xb0ec, 0xc3fa, 0x003f, 0xbcb7, 0x003f, 0x003f, 0x003f, 0xcbfc, - 0xbee6, 0xbbb0, 0xbee5, 0xb2bc, 0x003f, 0xc9d4, 0xcdbf, 0x003f, - 0xd0a2, 0xb1af, 0x003f, 0x003f, 0xb3ee, 0xd0a3, 0xc0a4, 0xd2c2, - 0xb5d6, 0xcaba, 0x003f, 0x003f, 0x003f, 0x003f, 0xbee7, 0x003f, - 0x003f, 0xcebe, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac2, 0x003f, - 0x003f, 0x003f, 0xd0a4, 0x003f, 0x003f, 0xc3e6, 0x003f, 0x003f, - 0x003f, 0xd0a5, 0xb6fa, 0x003f, 0x003f, 0x003f, 0xd0a6, 0x003f, - 0xb4dd, 0xc3b0, 0x003f, 0xbce7, 0xd0a7, 0x003f, 0x003f, 0xd0a8, - 0x003f, 0x003f, 0xd0a9, 0xc7b5, 0x003f, 0xb5d7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc7b7, 0x003f, 0xc6e3, 0xb8c3, 0xcbb3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c9, 0xd0aa, 0xbee8, - 0xd0ab, 0xb2b5, 0x003f, 0x003f, 0x003f, 0xb6e5, 0xb8f0, 0xcce9, - 0x003f, 0x003f, 0xd6a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcdf0, 0x003f, 0xc6fd, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4a5, 0x003f, - 0xb5b5, 0x003f, 0xd0ac, 0x003f, 0x003f, 0xd0ad, 0xcebb, 0x003f, - 0xcdbd, 0xc1e8, 0xd0af, 0xbbf6, 0xc6f3, 0x003f, 0xd0b2, 0x003f, - 0x003f, 0xb1be, 0xb8df, 0x003f, 0xb8de, 0xb0e6, 0x003f, 0x003f, - 0xcfcb, 0xcfca, 0x003f, 0xbab3, 0xb0a1, 0x003f, 0xd0b3, 0xd0b4, - 0xd0b5, 0xcbb4, 0xd0b6, 0x003f, 0xb8f2, 0xb0e7, 0xcbf2, 0x003f, - 0xb5fc, 0x003f, 0x003f, 0xb5fd, 0xb5fe, 0xc4e2, 0xcebc, 0x003f, - 0xd0b7, 0x003f, 0x003f, 0xd0b8, 0x003f, 0x003f, 0xd0b9, 0x003f, - 0x003f, 0x003f, 0xbfcd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbdba, 0xbfce, 0xd0be, 0x003f, 0xd0bc, 0x003f, 0xd0bd, 0xb5d8, - 0x003f, 0x003f, 0xbaa3, 0xb2f0, 0x003f, 0xd0bb, 0xd0ba, 0xcaa9, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbbc6, 0xbbc5, 0xc2be, 0xd0bf, - 0xc9d5, 0xc0e7, 0x003f, 0x003f, 0x003f, 0xa1b8, 0xd0c0, 0xd0c2, - 0x003f, 0x003f, 0x003f, 0xc2e5, 0xcee1, 0xb0ca, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0c1, 0xb2be, 0x003f, - 0xb6c4, 0x003f, 0xc3e7, 0x003f, 0x003f, 0x003f, 0xb7ef, 0xd0c3, - 0x003f, 0x003f, 0x003f, 0xc7a4, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x4f00 .. 0x4fff */ - 0x003f, 0xb4eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd0c4, 0xb0cb, 0x003f, 0x003f, 0xb8e0, 0xb4ec, 0xc9fa, - 0xc8b2, 0xb5d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb2f1, 0x003f, 0xd0e7, 0xc5c1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7ec, - 0xd0c6, 0x003f, 0x003f, 0x003f, 0xc8bc, 0x003f, 0xcee2, 0x003f, - 0xbfad, 0x003f, 0xbbc7, 0x003f, 0xbbf7, 0xb2c0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc4d1, 0x003f, 0x003f, 0xc3a2, 0xd0ca, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0cc, 0xc4e3, 0xbdbb, - 0xbab4, 0xcda4, 0x003f, 0xc2ce, 0x003f, 0xb2bf, 0x003f, 0xd0c9, - 0x003f, 0xcdbe, 0xd0c5, 0xd0c7, 0xbaee, 0xd0c8, 0xd5a4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd0d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0d3, - 0xd0d1, 0x003f, 0x003f, 0xb2c2, 0x003f, 0xcabb, 0xd0cb, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd0cf, 0xb8f3, 0x003f, 0x003f, 0xbbc8, - 0x003f, 0x003f, 0x003f, 0xb4a6, 0x003f, 0x003f, 0xd0d4, 0x003f, - 0xd0cc, 0x003f, 0x003f, 0xcee3, 0x003f, 0xbbf8, 0x003f, 0xd0cd, - 0x003f, 0xd0d2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0d5, 0x003f, - 0xd0ce, 0x003f, 0x003f, 0xb6a1, 0x003f, 0xb0cd, 0x003f, 0x003f, - 0xb6a2, 0xb2c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd5a5, 0x003f, 0xcbf9, 0xc9ee, 0xb8f4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfaf, 0xceb7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad8, - 0x003f, 0x003f, 0xb7b8, 0xc2a5, 0xb2e4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbdd3, 0x003f, 0x003f, 0x003f, 0xd0d9, 0x003f, - 0xd0de, 0xd0dc, 0x003f, 0x003f, 0xd0d7, 0x003f, 0x003f, 0xc2af, - 0xd0da, 0x003f, 0xd0dd, 0xd0db, 0x003f, 0xcadd, 0x003f, 0xd0d8, - 0x003f, 0xbfae, 0x003f, 0xcbf3, 0xd0df, 0xd0e0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbda4, 0xd0ed, - 0x003f, 0x003f, 0x003f, 0xc7d0, 0x003f, 0xc9b6, 0xd0e8, 0x003f, - 0xcaf0, 0x003f, 0xb2b6, 0x003f, 0x003f, 0x003f, 0xd0ec, 0x003f, - /* 0x5000 .. 0x50ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0e6, 0xd0ef, 0x003f, - 0x003f, 0xc1d2, 0x003f, 0xb8c4, 0x003f, 0xc7dc, 0x003f, 0xe0c7, - 0x003f, 0xd0ee, 0xc5dd, 0x003f, 0xd0e3, 0x003f, 0xb8f6, 0x003f, - 0x003f, 0xb8f5, 0xd0e1, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcda, - 0x003f, 0xd0e9, 0x003f, 0xcaef, 0xc3cd, 0xd0e5, 0xb7f1, 0x003f, - 0xd0e2, 0xd0ea, 0xd0e4, 0xced1, 0xd0eb, 0xcfc1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6e6, 0x003f, - 0x003f, 0xb7f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd0f0, 0x003f, 0x003f, 0x003f, 0xd0f1, - 0xd0f5, 0xb0ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad0, - 0xd0f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f3, 0xd0f7, 0x003f, - 0x003f, 0x003f, 0xd0f6, 0x003f, 0xc4e4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7f2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbcc5, 0x003f, 0xc2a6, 0xc4e5, 0xb6f6, 0x003f, - 0xd0f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5b6, 0x003f, 0x003f, - 0xd0fa, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0fc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbb5, 0x003f, 0x003f, - 0x003f, 0xb7e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbbb1, 0xc8f7, 0xd0fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbac5, 0xcdc3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd0fe, 0xd1a3, 0xd0fd, 0xbac4, 0x003f, 0xbdfd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7b9, 0x003f, - 0x003f, 0x003f, 0xd1a4, 0x003f, 0x003f, 0xb6cf, 0x003f, 0x003f, - 0x003f, 0xd1a1, 0xd1a2, 0x003f, 0x003f, 0xc6af, 0x003f, 0xc1fc, - 0x003f, 0xb6a3, 0x003f, 0x003f, 0x003f, 0xcbcd, 0xd1a5, 0x003f, - 0x003f, 0x003f, 0xcebd, 0x003f, 0x003f, 0x003f, 0xd1a6, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd1a9, 0x003f, 0xd1a7, 0x003f, 0xc1ce, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1a8, 0xd1aa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1ac, 0x003f, 0x003f, - 0x003f, 0xd1ab, 0x003f, 0xcac8, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5100 .. 0x51ff */ - 0xb5b7, 0xd1ae, 0xd1af, 0x003f, 0xb2af, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd1ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbcf4, 0x003f, 0xd1b2, 0xd1b1, 0xd1b0, 0x003f, - 0xd0d6, 0x003f, 0xd1b3, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdfe, - 0x003f, 0xd1b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcda5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xccd9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1b6, - 0x003f, 0x003f, 0xd1b5, 0xd1b8, 0xd1b7, 0x003f, 0x003f, 0xd1b9, - 0xd1ba, 0xb0f4, 0x003f, 0xb8b5, 0xb7bb, 0xbdbc, 0xc3fb, 0xb6a4, - 0xc0e8, 0xb8f7, 0x003f, 0xb9ee, 0xd1bc, 0xccc8, 0xc5c6, 0x003f, - 0xbbf9, 0x003f, 0xd1bb, 0x003f, 0xd1bd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc5de, 0x003f, 0xb3f5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd1be, 0x003f, 0x003f, 0xc6fe, 0x003f, 0x003f, - 0xc1b4, 0xd1c0, 0xd1c1, 0xc8ac, 0xb8f8, 0xcfbb, 0xd1c2, 0x003f, - 0x003f, 0xb6a6, 0x003f, 0x003f, 0x003f, 0xcabc, 0xc2b6, 0xb6f1, - 0xc5b5, 0x003f, 0x003f, 0x003f, 0xb7f3, 0x003f, 0x003f, 0x003f, - 0xd1c3, 0x003f, 0xd1c4, 0x003f, 0x003f, 0xc6e2, 0xb1df, 0x003f, - 0x003f, 0xd1c7, 0xbafd, 0x003f, 0xd1c6, 0xbac6, 0x003f, 0xd1c8, - 0xe6ee, 0xd1c9, 0xcbc1, 0xd1ca, 0x003f, 0xd1cb, 0xd1cc, 0xbee9, - 0x003f, 0xbccc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb4a7, 0x003f, 0xd1cf, 0x003f, 0xd1cd, 0xccbd, 0xd1ce, 0x003f, - 0xc9da, 0xd1d0, 0xd1d1, 0xd1d2, 0xc5df, 0x003f, 0x003f, 0x003f, - 0xd1d6, 0xd1d4, 0xd1d5, 0xd1d3, 0xbae3, 0xd1d7, 0xccea, 0xcee4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1d8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc0a8, 0xd1d9, 0xbdda, 0x003f, - 0x003f, 0xd1da, 0x003f, 0xc3fc, 0xcebf, 0xc5e0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2c5, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd1db, 0xf4a5, 0xb6c5, 0x003f, 0x003f, - 0xd1dc, 0xcbde, 0x003f, 0x003f, 0x003f, 0x003f, 0xbde8, 0xc2fc, - 0x003f, 0xd1de, 0xc6e4, 0x003f, 0x003f, 0xd1df, 0x003f, 0x003f, - 0xd1e0, 0xb3ae, 0x003f, 0x003f, 0x003f, 0xd1e1, 0xb6a7, 0x003f, - 0xc6cc, 0xb1fa, 0xbdd0, 0x003f, 0x003f, 0xc8a1, 0xd1e2, 0x003f, - /* 0x5200 .. 0x52ff */ - 0xc5e1, 0x003f, 0x003f, 0xbfcf, 0xd1e3, 0x003f, 0xcaac, 0xc0da, - 0xb4a2, 0x003f, 0xb4a9, 0xd1e4, 0x003f, 0x003f, 0xd1e6, 0x003f, - 0x003f, 0xb7ba, 0x003f, 0x003f, 0xd1e5, 0x003f, 0x003f, 0xcef3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbde9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc8bd, 0xcacc, 0x003f, 0xd1e7, - 0x003f, 0xcdf8, 0xd1e8, 0x003f, 0x003f, 0x003f, 0xd1e9, 0x003f, - 0xc5fe, 0x003f, 0x003f, 0xd1ea, 0x003f, 0x003f, 0xc0a9, 0xbafe, - 0xb7f4, 0xd1eb, 0xbbc9, 0xb9ef, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc4e6, 0xd1ed, 0x003f, 0x003f, 0xc2a7, - 0x003f, 0x003f, 0xbaef, 0xd1ee, 0xd1ef, 0xc1b0, 0x003f, 0xd1ec, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd1f1, 0x003f, 0xcbb6, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb9e4, 0x003f, 0x003f, 0xd1f0, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb7f5, 0xbade, 0xc7ed, 0x003f, 0x003f, - 0x003f, 0xd1f4, 0xd1f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9fb, - 0xbeea, 0xd1fb, 0xb3e4, 0xd1f5, 0xd1f3, 0xc1cf, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1f7, 0x003f, 0xd1f6, - 0x003f, 0x003f, 0x003f, 0xb3c4, 0x003f, 0x003f, 0x003f, 0xb7e0, - 0xd1fc, 0xcead, 0x003f, 0x003f, 0x003f, 0xd1f8, 0x003f, 0x003f, - 0x003f, 0xd1fd, 0xd1fa, 0x003f, 0xd1f9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcecf, 0x003f, 0x003f, 0x003f, 0xb8f9, - 0xb2c3, 0x003f, 0x003f, 0xcef4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbdf5, 0xc5d8, 0xb9e5, 0xd2a2, 0xd2a3, 0x003f, 0x003f, - 0x003f, 0xcee5, 0x003f, 0x003f, 0xcfab, 0xd2a5, 0x003f, 0x003f, - 0x003f, 0xb8fa, 0x003f, 0x003f, 0xd2a4, 0x003f, 0xb3af, 0x003f, - 0x003f, 0xd2a6, 0x003f, 0xcbd6, 0x003f, 0xc4bc, 0x003f, 0xcda6, - 0x003f, 0xcad9, 0x003f, 0x003f, 0x003f, 0xd2a7, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf0d5, 0x003f, 0x003f, 0xc6b0, 0x003f, 0xd2a8, - 0xb4aa, 0xccb3, 0x003f, 0x003f, 0x003f, 0xbea1, 0xd2a9, 0xcae7, - 0xd2ad, 0x003f, 0xc0aa, 0xd2aa, 0xb6d0, 0x003f, 0xd2ab, 0xb4ab, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb7ae, 0xd2ae, 0x003f, 0xd2af, 0x003f, 0x003f, - 0xd2b0, 0xd2b1, 0xbcdb, 0x003f, 0x003f, 0x003f, 0xb8fb, 0xccde, - /* 0x5300 .. 0x53ff */ - 0x003f, 0xcce8, 0xc6f7, 0x003f, 0x003f, 0xcaf1, 0xd2b2, 0x003f, - 0xd2b3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2b5, 0x003f, 0xd2b7, - 0xd2b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2b8, 0xb2bd, 0xcbcc, - 0x003f, 0xbafc, 0xd2b9, 0x003f, 0x003f, 0xc1d9, 0x003f, 0x003f, - 0xbea2, 0xb6a9, 0x003f, 0xd2ba, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc8db, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2bb, - 0x003f, 0xd2bc, 0x003f, 0xd2bd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd2be, 0xc9a4, 0xb6e8, 0xb0e5, 0x003f, 0x003f, 0x003f, 0xc6bf, - 0xd2bf, 0xbdbd, 0x003f, 0xc0e9, 0x003f, 0xd2c1, 0xd2c0, 0xbea3, - 0xb8e1, 0xd2c3, 0xc8be, 0x003f, 0x003f, 0xd2c4, 0x003f, 0x003f, - 0x003f, 0xc8dc, 0xc2b4, 0xc2ee, 0xb6a8, 0x003f, 0x003f, 0xc6ee, - 0xc3b1, 0x003f, 0xc7ee, 0x003f, 0xcbce, 0x003f, 0xd2c6, 0x003f, - 0xc0ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7b5, 0x003f, - 0x003f, 0xd2c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2c8, 0xb1ac, - 0xb0f5, 0xb4ed, 0x003f, 0xc2a8, 0xb5d1, 0xcdf1, 0x003f, 0xd2cb, - 0xb2b7, 0x003f, 0x003f, 0xd2ca, 0x003f, 0x003f, 0x003f, 0xb6aa, - 0x003f, 0x003f, 0xd2cc, 0x003f, 0xccf1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2cd, 0x003f, - 0xced2, 0x003f, 0xb8fc, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8b6, - 0xd2ce, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2d0, 0xd2cf, 0x003f, - 0xbfdf, 0xb1b9, 0x003f, 0x003f, 0x003f, 0xb1de, 0xd2d1, 0x003f, - 0xd2d2, 0x003f, 0x003f, 0xb8b7, 0x003f, 0x003f, 0xd2d3, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb5ee, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbbb2, 0xd2d4, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcbf4, 0xbab5, 0xb5da, 0xcda7, 0xc1d0, 0xc8bf, 0xbcfd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbdc7, 0x003f, 0xbce8, 0xbcf5, - 0x003f, 0xbdf6, 0x003f, 0xc8c0, 0x003f, 0x003f, 0x003f, 0xd2d7, - 0x003f, 0xb1c3, 0xc1d1, 0xb8fd, 0xb8c5, 0xb6e7, 0x003f, 0x003f, - 0xd2db, 0xc3a1, 0xc2fe, 0xb6ab, 0xbea4, 0xd2dc, 0xd2da, 0xb2c4, - 0xc2e6, 0xbcb8, 0xbbcb, 0xb1a6, 0x003f, 0x003f, 0xb3f0, 0xb9e6, - 0xbbca, 0x003f, 0xd2dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5400 .. 0x54ff */ - 0x003f, 0xd2de, 0x003f, 0xb5c9, 0xb3c6, 0x003f, 0x003f, 0x003f, - 0xb9e7, 0xb5c8, 0xc4df, 0xb1a5, 0xc6b1, 0xccbe, 0xb9a1, 0xcdf9, - 0xc5c7, 0xb8fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb7af, 0x003f, 0xd2e7, 0x003f, 0xb6e3, - 0xcbca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8dd, 0x003f, - 0x003f, 0xd2e6, 0x003f, 0xb4de, 0xd2e1, 0xd2e2, 0xd2e4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2e5, 0x003f, - 0xb5db, 0xbfe1, 0x003f, 0xcaad, 0xd2e3, 0xd2df, 0xb8e3, 0x003f, - 0xd2e0, 0x003f, 0xcfa4, 0x003f, 0x003f, 0x003f, 0xcaf2, 0x003f, - 0xc4e8, 0xb8e2, 0xb9f0, 0x003f, 0x003f, 0x003f, 0xd2e8, 0x003f, - 0x003f, 0xc6dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2ec, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbcfe, 0x003f, 0xbcf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd2ef, 0xd2ed, 0x003f, 0xcca3, 0x003f, 0xd2ea, 0xd2f3, 0xd2ee, - 0x003f, 0x003f, 0x003f, 0xd2f1, 0xb8c6, 0xccbf, 0x003f, 0x003f, - 0xd2f2, 0x003f, 0x003f, 0x003f, 0xd2f4, 0x003f, 0xd2f6, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbaf0, 0xcfc2, 0x003f, 0xd2eb, 0xd2e9, - 0xd2f5, 0x003f, 0xd2f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd2f8, 0x003f, 0xd3a3, 0xd2fa, 0x003f, 0x003f, - 0xd2fe, 0x003f, 0x003f, 0xd3a1, 0xd2fb, 0x003f, 0x003f, 0xd3be, - 0x003f, 0x003f, 0xbae9, 0xb3b1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd2f9, 0x003f, 0x003f, 0x003f, 0xd3a5, 0xb0f6, 0xd3a4, 0x003f, - 0xb0a5, 0xc9ca, 0xd3a2, 0x003f, 0xd2fc, 0x003f, 0x003f, 0xd2f7, - 0xd2fd, 0xbac8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd3a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb0f7, 0xd3af, 0x003f, 0x003f, 0xd3a7, 0xd3a8, 0x003f, - 0xbea5, 0xcbe9, 0x003f, 0x003f, 0x003f, 0xd3ad, 0xd3ac, 0x003f, - 0x003f, 0x003f, 0xc5af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd3ae, 0x003f, 0x003f, 0xd3ab, 0x003f, 0x003f, - /* 0x5500 .. 0x55ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xb1b4, 0x003f, 0xbab6, 0xbfb0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3a9, - 0xc5e2, 0x003f, 0x003f, 0x003f, 0xd3aa, 0x003f, 0xb0a2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b4, 0xcda3, - 0x003f, 0xbea7, 0x003f, 0xd3ba, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd3b9, 0xd3b0, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2c3, 0x003f, - 0xd3b1, 0x003f, 0x003f, 0x003f, 0xc2ef, 0xd3b6, 0xbea6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b3, 0x003f, 0x003f, 0xcce4, - 0x003f, 0x003f, 0x003f, 0xb7bc, 0x003f, 0x003f, 0xd3b7, 0xd3b8, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b5, 0xd3bb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd3b2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd3c1, 0xd3c6, 0x003f, 0xd3c2, 0x003f, - 0xd3bd, 0x003f, 0x003f, 0xd3c7, 0xc1b1, 0x003f, 0x003f, 0xd3c9, - 0x003f, 0xb9a2, 0xd3bf, 0xc3fd, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd3c3, 0xd3bc, 0xb4ad, 0x003f, 0xb4ee, 0xb3e5, 0xd3c4, 0xd3c0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7f6, - 0xd3ca, 0xd3c8, 0xc1d3, 0xb5ca, 0xb6ac, 0x003f, 0xd3c5, 0x003f, - 0xb6f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1c4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ce, 0xd3cc, 0x003f, 0xd4a7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd3cb, 0x003f, 0xd3cf, 0x003f, 0x003f, 0xd3cd, - 0x003f, 0x003f, 0x003f, 0xbbcc, 0xd3d0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d3, - 0x003f, 0xd3d8, 0x003f, 0x003f, 0x003f, 0xd3d6, 0xd3d5, 0x003f, - /* 0x5600 .. 0x56ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3b2, 0x003f, - 0x003f, 0xb2c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d2, 0x003f, 0xd3d4, 0xbea8, - 0xb1b3, 0x003f, 0x003f, 0xd3d7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb2de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e2, - 0x003f, 0xbefc, 0xd3de, 0x003f, 0xd3dc, 0x003f, 0xd3dd, 0x003f, - 0xd3df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb1bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc1b9, 0x003f, 0xd3d9, 0x003f, - 0xd3da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb3fa, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e1, 0x003f, 0x003f, 0x003f, - 0xb4ef, 0x003f, 0xd3e4, 0xd3e0, 0xd3e3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcaae, 0x003f, 0x003f, 0x003f, - 0xc6d5, 0x003f, 0xc8b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd3e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e5, 0xb3c5, - 0x003f, 0x003f, 0xd3e7, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ea, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd3e8, 0x003f, 0xc7b9, 0x003f, 0x003f, 0xd3eb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ec, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ee, 0x003f, 0xd3ed, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd3f0, 0x003f, 0x003f, 0x003f, - 0xd3f3, 0xd3f1, 0xd3ef, 0xd3f2, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd3f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3f5, 0x003f, - 0x003f, 0xd3f6, 0x003f, 0xd3f7, 0x003f, 0x003f, 0x003f, 0xd3f8, - 0xd1c5, 0x003f, 0xbcfc, 0xbbcd, 0x003f, 0x003f, 0xb2f3, 0x003f, - 0xb0f8, 0x003f, 0x003f, 0xc3c4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3f9, 0x003f, - 0xbaa4, 0x003f, 0xb0cf, 0xbfde, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd3fa, 0xb8c7, 0x003f, 0x003f, 0xb9f1, 0x003f, 0xd3fc, - /* 0x5700 .. 0x57ff */ - 0xd3fb, 0x003f, 0x003f, 0xcae0, 0xd3fd, 0x003f, 0x003f, 0x003f, - 0xd4a1, 0xd3fe, 0x003f, 0xd4a2, 0x003f, 0xd4a3, 0x003f, 0xb7f7, - 0x003f, 0x003f, 0xb1e0, 0xd4a4, 0x003f, 0x003f, 0xd4a6, 0x003f, - 0xd4a5, 0x003f, 0x003f, 0x003f, 0xd4a8, 0x003f, 0x003f, 0xc5da, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4a9, 0xb0b5, - 0xbadf, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7bd, 0x003f, 0x003f, - 0xc3cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4aa, - 0xd4ab, 0x003f, 0x003f, 0xd4ad, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4ae, 0x003f, 0xbae4, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6d1, - 0x003f, 0x003f, 0xcbb7, 0x003f, 0x003f, 0x003f, 0xd4ac, 0xd4af, - 0xbac1, 0xb9a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd4b3, 0x003f, 0x003f, 0xbaa5, 0x003f, 0xc3b3, 0x003f, - 0x003f, 0xd4b0, 0xc4da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b4, - 0x003f, 0x003f, 0xbfe2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4b2, 0xd4b5, 0x003f, 0xb7bf, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd4b6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4b7, 0x003f, 0xb9a4, 0xb3c0, 0xd4b9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd4ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4bb, 0x003f, 0x003f, 0xd4b8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4b1, 0x003f, 0x003f, 0xd4bc, 0x003f, 0x003f, 0xd4bd, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcbe4, 0x003f, 0x003f, 0xbeeb, 0x003f, - 0x003f, 0x003f, 0xd4bf, 0xd4c0, 0xd4be, 0x003f, 0xd4c2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc7b8, 0x003f, 0x003f, 0xb0e8, - 0xc9d6, 0x003f, 0x003f, 0xd4c3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbefd, 0x003f, 0x003f, 0xbcb9, - 0x003f, 0xc7dd, 0xb4f0, 0x003f, 0xbaeb, 0x003f, 0x003f, 0x003f, - /* 0x5800 .. 0x58ff */ - 0xcbd9, 0x003f, 0xc6b2, 0x003f, 0x003f, 0xb7f8, 0xc2cf, 0x003f, - 0x003f, 0x003f, 0xd4c1, 0xd4c4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2c4, 0x003f, 0x003f, - 0x003f, 0xd4c5, 0x003f, 0x003f, 0x003f, 0xd4c6, 0x003f, 0x003f, - 0x003f, 0xd4c8, 0x003f, 0x003f, 0xc4e9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb4ae, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4a1, - 0xb1e1, 0xcaf3, 0x003f, 0x003f, 0xbeec, 0xc5c8, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbae6, 0x003f, 0x003f, 0xd4ce, 0x003f, 0x003f, - 0xcabd, 0xcedd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb2f4, 0xd4ca, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc1ba, 0xd4cd, 0x003f, 0xc5e3, 0x003f, 0x003f, 0xc5c9, - 0xc5e4, 0xc8b9, 0xc4cd, 0x003f, 0x003f, 0x003f, 0xbac9, 0x003f, - 0x003f, 0x003f, 0xd4c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb1f6, 0x003f, 0xc5b6, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4cb, 0x003f, 0xd4c7, 0x003f, 0x003f, 0xbfd0, 0x003f, 0x003f, - 0x003f, 0xd4cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdce, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb6ad, 0x003f, 0xd4d0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcae8, 0x003f, 0x003f, 0x003f, 0xc1fd, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc4c6, 0x003f, 0x003f, 0xd4d2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcbcf, 0x003f, 0x003f, 0xd4d3, 0x003f, 0x003f, 0xd4d8, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcaaf, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4d7, 0xd4d1, 0xd4d4, 0xd4d6, 0x003f, 0x003f, 0xbaa6, 0x003f, - 0x003f, 0xcac9, 0x003f, 0x003f, 0x003f, 0xd4d9, 0x003f, 0xc3c5, - 0x003f, 0x003f, 0xb2f5, 0x003f, 0xbeed, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd4db, 0x003f, 0xd4da, 0x003f, 0xb9e8, 0x003f, 0xd4dc, - 0xd4de, 0xd4dd, 0x003f, 0x003f, 0xd4e0, 0x003f, 0xd4d5, 0xd4e2, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd4e1, 0xd4df, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbbce, 0xbfd1, 0x003f, 0xc1d4, 0xd4e3, - 0xc0bc, 0xb0ed, 0xc7e4, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4db, - 0x003f, 0xd4e5, 0xd4e4, 0xd4e6, 0xd4e7, 0xd4e8, 0x003f, 0x003f, - /* 0x5900 .. 0x59ff */ - 0x003f, 0x003f, 0xd4e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcad1, 0xd4ea, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2c6, - 0xd4eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdbc, 0xb3b0, 0x003f, - 0xd2c9, 0xbdc8, 0xc2bf, 0xd4ec, 0xcceb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xccb4, 0x003f, 0x003f, 0xd4ee, 0x003f, 0xc2e7, - 0x003f, 0xc5b7, 0xc2c0, 0xc9d7, 0xd4ef, 0xd4f0, 0xb1fb, 0x003f, - 0x003f, 0xbcba, 0xd4f1, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0d0, - 0xd4f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb1e2, 0x003f, 0x003f, 0xb4f1, - 0xc6e0, 0xcaf4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f7, 0xc1d5, - 0xd4f6, 0xb7c0, 0x003f, 0x003f, 0xcbdb, 0xd4f5, 0x003f, 0xc5e5, - 0xd4f9, 0x003f, 0xd4f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4fb, 0x003f, 0xd4fa, 0x003f, 0x003f, 0xb1fc, 0x003f, 0xd4fc, - 0xbea9, 0xd4fe, 0xc3a5, 0x003f, 0xd4fd, 0x003f, 0xcab3, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbdf7, 0xc5db, 0x003f, 0x003f, 0x003f, - 0xd5a1, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9a5, 0x003f, 0x003f, - 0x003f, 0xd5a2, 0xc7a1, 0xc8de, 0xccd1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc7a5, 0x003f, 0x003f, 0xd5ab, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb5b8, 0x003f, 0x003f, 0xcdc5, 0x003f, - 0x003f, 0xccaf, 0x003f, 0xd6ac, 0x003f, 0xd5a3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd5a6, 0x003f, 0xc2c5, 0x003f, 0x003f, - 0xcbb8, 0x003f, 0x003f, 0x003f, 0xc5ca, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcbe5, 0x003f, 0xbaca, 0x003f, 0x003f, 0xbeaa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5a8, 0x003f, - 0x003f, 0xbbd0, 0x003f, 0xbbcf, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb0b9, 0xb8c8, 0x003f, 0xc0ab, 0xb0d1, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd5ac, 0xd5ad, 0x003f, 0xd5aa, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1b8, 0xb4af, 0x003f, - 0xd5a9, 0x003f, 0xccc5, 0xc9b1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0a8, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb0f9, 0x003f, 0x003f, 0x003f, 0xbbd1, - /* 0x5a00 .. 0x5aff */ - 0x003f, 0xb0d2, 0x003f, 0xb0a3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd5b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd5b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xccbc, 0x003f, 0xd5b3, 0x003f, 0xd5b1, 0x003f, 0x003f, 0xd5af, - 0xbfb1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ae, 0x003f, 0x003f, - 0x003f, 0xcada, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8e4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b7, 0xd5b8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbeab, 0x003f, 0x003f, 0x003f, - 0xd5b4, 0xcfac, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7cc, 0x003f, - 0x003f, 0xd5b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbaa7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5b9, 0x003f, 0x003f, 0x003f, 0xc9d8, 0x003f, - 0x003f, 0x003f, 0xd5ba, 0x003f, 0xd5b5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccbb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc7de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5bb, 0xc9b2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd5bc, 0xd5c0, 0xd5bd, 0x003f, - 0x003f, 0xb2c7, 0xd5bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbcbb, 0x003f, 0xd5be, 0xb7f9, 0x003f, 0x003f, 0x003f, - 0xd5cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5c5, 0xd5c2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc3e4, 0x003f, 0xd5c1, 0x003f, 0x003f, 0xd5c3, 0x003f, - 0x003f, 0xd5c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5c6, 0xd5c7, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5b00 .. 0x5bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb4f2, 0x003f, 0xd5c9, 0xd5c8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ca, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbeee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5cd, 0x003f, 0xc4dc, 0x003f, 0x003f, 0x003f, - 0xb1c5, 0x003f, 0xd5cb, 0x003f, 0x003f, 0x003f, 0xd5ce, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5cf, 0x003f, - 0xd5d2, 0x003f, 0x003f, 0xd5d0, 0x003f, 0xd5d1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbbd2, 0xd5d3, 0x003f, 0x003f, 0xb9a6, 0xd5d4, 0x003f, 0xbbfa, - 0xc2b8, 0x003f, 0xd5d5, 0xd5d6, 0xbbda, 0xb9a7, 0x003f, 0xccd2, - 0x003f, 0x003f, 0x003f, 0xb5a8, 0xb8c9, 0xd5d7, 0xb3d8, 0x003f, - 0x003f, 0xd5d8, 0x003f, 0xc2b9, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd5d9, 0xd6a3, 0x003f, 0xd5da, 0x003f, 0xd5db, 0x003f, 0x003f, - 0xd5dc, 0x003f, 0xd5de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd5df, 0x003f, 0x003f, 0xd5e0, 0x003f, 0xc2f0, 0x003f, 0xb1a7, - 0xbce9, 0xb0c2, 0x003f, 0xc1d7, 0xb4b0, 0xbcb5, 0x003f, 0xb9a8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5e6, 0x003f, 0xbda1, - 0xb4b1, 0xc3e8, 0xc4ea, 0xb0b8, 0xb5b9, 0xcaf5, 0x003f, 0xbcc2, - 0x003f, 0x003f, 0xb5d2, 0xc0eb, 0xbcbc, 0xcda8, 0xd5e1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5dc, 0x003f, - 0xbacb, 0x003f, 0x003f, 0xb3b2, 0xb1e3, 0xbeac, 0xb2c8, 0x003f, - 0xd5e2, 0xcdc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdc9, - 0x003f, 0x003f, 0xbce4, 0xd5e3, 0xb4f3, 0xc6d2, 0xcca9, 0xd5e4, - 0x003f, 0xd5e5, 0x003f, 0x003f, 0xc9d9, 0x003f, 0x003f, 0x003f, - 0xd5e7, 0x003f, 0xb4a8, 0xb6f7, 0xd5e6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb4b2, 0x003f, 0xbfb2, 0xd5eb, 0xbba1, - 0x003f, 0xb2c9, 0xd5ea, 0x003f, 0xd5e8, 0xd5ec, 0xd5e9, 0xc7ab, - 0xdccd, 0xbfb3, 0x003f, 0xd5ed, 0x003f, 0x003f, 0xcec0, 0x003f, - 0xd5ee, 0x003f, 0x003f, 0xd5f0, 0x003f, 0xc3fe, 0xd5ef, 0x003f, - 0xc0a3, 0x003f, 0xbbfb, 0x003f, 0x003f, 0x003f, 0xc2d0, 0xbcf7, - /* 0x5c00 .. 0x5cff */ - 0x003f, 0xc9f5, 0xc0ec, 0x003f, 0xbccd, 0xd5f1, 0xbead, 0xd5f2, - 0xd5f3, 0xb0d3, 0xc2ba, 0xbfd2, 0x003f, 0xd5f4, 0xc6b3, 0xbeae, - 0x003f, 0xbeaf, 0x003f, 0xd5f5, 0x003f, 0x003f, 0xc0ed, 0x003f, - 0x003f, 0x003f, 0xbeb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd5f6, 0x003f, 0xd5f7, 0x003f, 0xcce0, 0x003f, 0x003f, 0x003f, - 0xd5f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6c6, 0x003f, 0x003f, - 0x003f, 0xbda2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd5f9, 0xd5fa, 0xbcdc, 0xbfac, 0xc6f4, 0xbfd4, 0xc8f8, 0xc7a2, - 0xb6c9, 0xd5fb, 0x003f, 0x003f, 0x003f, 0xb5ef, 0xd5fc, 0x003f, - 0xb6fe, 0x003f, 0xc6cf, 0xb2b0, 0x003f, 0xbbd3, 0xd5fd, 0xd6a2, - 0xd6a1, 0xb6fd, 0x003f, 0xd5fe, 0x003f, 0xc5b8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2b0, 0x003f, - 0xc5cb, 0xbcc8, 0x003f, 0x003f, 0xc1d8, 0xcdfa, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a4, 0x003f, 0xd6a5, 0xc6d6, - 0x003f, 0xbbb3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a7, 0x003f, - 0x003f, 0xd6a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a9, 0x003f, 0x003f, 0x003f, - 0xb4f4, 0xd6aa, 0x003f, 0x003f, 0xd6ab, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb2ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc1bb, 0xb4e4, 0x003f, 0xd6ad, 0xcca8, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc2d2, 0x003f, 0xb3d9, 0x003f, 0x003f, 0xd6af, 0xd6b1, - 0xb4df, 0x003f, 0x003f, 0xd6ae, 0xd6b0, 0x003f, 0xd6b3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6b2, 0x003f, 0xd6b4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd6b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc6bd, 0xb6ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb2e5, 0xd6b6, 0xd6bb, 0x003f, 0x003f, 0xd6b9, 0x003f, 0xcaf7, - 0xcaf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5e7, 0x003f, - 0x003f, 0x003f, 0xd6b8, 0xbdd4, 0x003f, 0xd6b7, 0x003f, 0x003f, - /* 0x5d00 .. 0x5dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbff2, - 0x003f, 0x003f, 0x003f, 0xd6bc, 0x003f, 0x003f, 0xbaea, 0x003f, - 0x003f, 0xd6c2, 0x003f, 0x003f, 0xd6c3, 0xd6bd, 0xb3b3, 0xd6be, - 0xd6c7, 0xd6c6, 0xd6c5, 0xd6c1, 0x003f, 0x003f, 0x003f, 0xd6c0, - 0x003f, 0x003f, 0xd6c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcaf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd6cb, 0xd6c8, 0x003f, 0xd6ca, 0x003f, - 0xcdf2, 0x003f, 0xd6c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6bf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbff3, 0x003f, 0x003f, 0xd6cc, 0x003f, 0x003f, 0xbab7, - 0x003f, 0x003f, 0x003f, 0xd6cd, 0x003f, 0x003f, 0xd6ce, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd6d1, 0x003f, 0xd6d0, 0x003f, 0x003f, 0xd6cf, - 0x003f, 0x003f, 0x003f, 0xc5e8, 0xd6ba, 0x003f, 0x003f, 0x003f, - 0xd6d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd6d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d4, 0x003f, 0xd6d5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d8, - 0x003f, 0x003f, 0xcee6, 0x003f, 0xd6d9, 0xd6d6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd6da, 0x003f, 0x003f, 0xb4e0, 0xd6db, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd6dd, 0xd6dc, 0x003f, 0x003f, 0xd6de, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd6df, 0x003f, 0xc0ee, 0xbda3, 0x003f, - 0x003f, 0xbde4, 0x003f, 0xc1e3, 0x003f, 0xb9a9, 0xbab8, 0xb9aa, - 0xb5f0, 0x003f, 0x003f, 0xd6e0, 0x003f, 0x003f, 0xbab9, 0x003f, - 0x003f, 0xb8ca, 0xd6e1, 0xcca6, 0xc7c3, 0xd6e2, 0x003f, 0xb9ab, - 0x003f, 0x003f, 0x003f, 0xb4ac, 0x003f, 0xc3a7, 0xb6d2, 0x003f, - /* 0x5e00 .. 0x5eff */ - 0x003f, 0x003f, 0xbbd4, 0xc9db, 0x003f, 0x003f, 0xc8c1, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd6e3, 0xb4f5, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd6e6, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4a1, 0x003f, - 0x003f, 0xd6e5, 0xd6e4, 0xd6e7, 0x003f, 0xc4eb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfe3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbbd5, 0x003f, 0xc0ca, 0x003f, 0xc2d3, - 0xb5a2, 0x003f, 0x003f, 0xc4a2, 0x003f, 0x003f, 0xd6e8, 0xd6e9, - 0xbeef, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbb9, 0x003f, 0x003f, - 0xd6ec, 0x003f, 0x003f, 0xd6eb, 0xd6ea, 0xc9fd, 0x003f, 0xd6f3, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcbda, 0x003f, 0xd6ed, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6ef, 0xcbeb, 0x003f, 0xd6ee, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6f0, - 0x003f, 0xc8a8, 0xd6f1, 0xcabe, 0xd6f2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb4b3, 0xcabf, 0xc7af, 0xd6f4, 0xd6f5, 0x003f, - 0xb9ac, 0xb4b4, 0xd6f6, 0xb8b8, 0xcdc4, 0xcda9, 0xb4f6, 0xd6f8, - 0x003f, 0xc4a3, 0x003f, 0xb9ad, 0xbeb1, 0x003f, 0x003f, 0xc8df, - 0x003f, 0x003f, 0xbeb2, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdf8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4ec, 0xcaf9, 0xc5b9, - 0x003f, 0x003f, 0xb9ae, 0x003f, 0xc9dc, 0x003f, 0x003f, 0x003f, - 0xd6f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5d9, 0xbac2, - 0x003f, 0x003f, 0x003f, 0xb8cb, 0x003f, 0xc4ed, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0c3, 0xbdee, 0xb9af, - 0xcdc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd6fa, 0xd6fb, 0xc7d1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd6fc, 0xcef7, 0xcfad, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6fe, - 0xd6fd, 0x003f, 0x003f, 0xb3c7, 0x003f, 0x003f, 0xd7a1, 0x003f, - 0x003f, 0x003f, 0xd7a4, 0xd7a5, 0x003f, 0xd7a3, 0x003f, 0xc9c0, - 0xbeb3, 0xd7a7, 0xd7a6, 0xd7a2, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd7a8, 0xd7a9, 0x003f, 0x003f, 0xd7aa, 0x003f, 0x003f, 0x003f, - 0xd7ad, 0xd7ab, 0x003f, 0xd7ac, 0xd7ae, 0x003f, 0xb1e4, 0xc4ee, - 0xd7af, 0x003f, 0xb7fa, 0xb2f6, 0xc7b6, 0x003f, 0xd7b0, 0xc6fb, - /* 0x5f00 .. 0x5fff */ - 0x003f, 0xcadb, 0x003f, 0xd7b1, 0xcfae, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd7b2, 0xcac0, 0xd7b5, 0xd0a1, 0xd0b1, 0x003f, 0xbcb0, - 0xc6f5, 0xd7b6, 0x003f, 0xb5dd, 0xc4a4, 0xb0fa, 0xd7b7, 0xcaa6, - 0xb9b0, 0x003f, 0x003f, 0xc3d0, 0x003f, 0x003f, 0x003f, 0xc4ef, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccef, 0xb8b9, 0xb8cc, - 0x003f, 0xd7b8, 0x003f, 0x003f, 0x003f, 0xd7b9, 0x003f, 0xd7bf, - 0x003f, 0xbce5, 0x003f, 0x003f, 0x003f, 0xc4a5, 0x003f, 0xb6af, - 0xd7ba, 0x003f, 0x003f, 0x003f, 0xc9ab, 0x003f, 0xc3c6, 0x003f, - 0x003f, 0xd7bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd7bc, 0x003f, 0xb6b0, 0x003f, 0xd7bd, 0x003f, 0xd7be, 0x003f, - 0x003f, 0xd7c0, 0x003f, 0xc5f6, 0x003f, 0x003f, 0xd7c1, 0xd7c2, - 0x003f, 0xd7c3, 0x003f, 0x003f, 0xd7b4, 0xd7b3, 0x003f, 0x003f, - 0x003f, 0xd7c4, 0xb7c1, 0x003f, 0x003f, 0x003f, 0xc9a7, 0x003f, - 0x003f, 0xbacc, 0xc9b7, 0xc4a6, 0xc9cb, 0xd7c5, 0x003f, 0x003f, - 0xbeb4, 0xb1c6, 0x003f, 0xd7c6, 0x003f, 0x003f, 0x003f, 0xd7c7, - 0x003f, 0xccf2, 0x003f, 0x003f, 0xc8e0, 0x003f, 0x003f, 0xd7ca, - 0xb1fd, 0xc0ac, 0xd7c9, 0xd7c8, 0xb7c2, 0xc2d4, 0x003f, 0xd7ce, - 0xd7cc, 0x003f, 0xd7cb, 0xcea7, 0xb8e5, 0x003f, 0x003f, 0x003f, - 0xbdf9, 0xd7cd, 0xc5cc, 0xbdbe, 0x003f, 0x003f, 0x003f, 0xc6c0, - 0xd7d1, 0xd7d0, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7cf, 0x003f, - 0xd7d2, 0xb8e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd7d3, 0xc9fc, 0xbddb, 0x003f, 0x003f, 0xd7d4, 0xc8f9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc6c1, 0xc4a7, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc5b0, 0x003f, 0x003f, 0xd7d5, 0xb5ab, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbfb4, 0x003f, 0xc9ac, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb4f7, 0xc7a6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7d6, 0xbbd6, - 0xcbba, 0xcbbb, 0x003f, 0x003f, 0xb1fe, 0xd7db, 0x003f, 0x003f, - 0xc3e9, 0x003f, 0x003f, 0x003f, 0xd7d8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb2f7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd8ad, 0xd7da, 0x003f, 0x003f, 0x003f, 0xc7b0, 0x003f, 0x003f, - 0xd7d9, 0x003f, 0x003f, 0xd7d7, 0x003f, 0xb9fa, 0x003f, 0xd7dd, - /* 0x6000 .. 0x60ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7e3, 0xd7e9, - 0xd7e1, 0x003f, 0xc5dc, 0x003f, 0x003f, 0xd7e6, 0xc9dd, 0x003f, - 0x003f, 0xd7e0, 0x003f, 0xd7e5, 0xcee7, 0xbbd7, 0x003f, 0x003f, - 0xc2d5, 0xd7de, 0x003f, 0x003f, 0x003f, 0xb5de, 0xd7e8, 0xc0ad, - 0xb1e5, 0xd7e2, 0xb2f8, 0xd7e7, 0x003f, 0x003f, 0x003f, 0xb6b1, - 0x003f, 0xd7e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd7ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd7ec, 0xd7f6, 0xd7f4, 0x003f, 0x003f, 0xd7f1, 0x003f, - 0x003f, 0x003f, 0xd7f0, 0xcef8, 0x003f, 0xd7f2, 0x003f, 0x003f, - 0xb6b2, 0x003f, 0xb9b1, 0x003f, 0x003f, 0xbdfa, 0x003f, 0x003f, - 0x003f, 0xd7f9, 0xd7eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ef, - 0xd7df, 0x003f, 0xb2fa, 0xd7f3, 0xd7f5, 0xc3d1, 0x003f, 0x003f, - 0xbaa8, 0xb2b8, 0xd7ed, 0xd7f8, 0xd7f7, 0xb6b3, 0x003f, 0xc2a9, - 0xb3e6, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7c3, 0x003f, 0xd7ee, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd7fa, 0x003f, 0xd7fd, 0xd8a1, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbcbd, 0x003f, 0xd8a7, 0xc4f0, 0xd7fb, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd8a5, 0x003f, 0xb2f9, 0x003f, 0xd8a3, 0xd8a4, - 0x003f, 0x003f, 0xd7fe, 0xd8a2, 0x003f, 0x003f, 0x003f, 0xb8e7, - 0xcdaa, 0x003f, 0x003f, 0xb4b5, 0x003f, 0x003f, 0xb1d9, 0xd8a6, - 0x003f, 0xc7ba, 0xb0ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc8e1, 0xd7dc, 0xd8ac, 0xd8b0, 0xcce5, 0x003f, - 0xd8a9, 0x003f, 0x003f, 0x003f, 0xc5e9, 0xd8ae, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbef0, 0xd8af, 0xc6d7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcfc7, 0x003f, 0xd8ab, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd8b1, 0x003f, 0xb9fb, 0x003f, 0xc0cb, 0x003f, 0x003f, 0xb0d4, - 0xd8aa, 0xd8a8, 0x003f, 0xc1da, 0x003f, 0x003f, 0x003f, 0xd7fc, - 0xbbb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc2c6, 0xd8bd, 0x003f, 0xc1db, 0xd8b8, 0x003f, 0xd8b5, 0xd8b6, - 0x003f, 0xbce6, 0xd8b9, 0xd8bc, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6100 .. 0x61ff */ - 0xd8b7, 0xbda5, 0x003f, 0xd8ba, 0x003f, 0x003f, 0xd8b4, 0x003f, - 0xccfc, 0xccfb, 0x003f, 0x003f, 0x003f, 0xd8be, 0xd8bf, 0xb0d5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8b3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb6f2, 0xb0a6, 0x003f, 0x003f, 0x003f, 0xb4b6, - 0x003f, 0xd8bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c3, - 0xd8c2, 0x003f, 0x003f, 0x003f, 0xd8c7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c6, 0xd8c9, 0xd8c1, 0xd8c5, - 0x003f, 0x003f, 0xd8ca, 0x003f, 0xd8cb, 0x003f, 0x003f, 0xd8c0, - 0xbbfc, 0x003f, 0xd8c4, 0xc2d6, 0xb9b2, 0xd8b2, 0xbfb5, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd8d8, 0x003f, 0xcae9, 0x003f, 0x003f, - 0xd8ce, 0xd8cf, 0xd8d0, 0x003f, 0x003f, 0xd8d7, 0x003f, 0xd8d6, - 0x003f, 0x003f, 0xcbfd, 0xb4b7, 0x003f, 0xd8d4, 0x003f, 0xb7c5, - 0xb3b4, 0x003f, 0x003f, 0xd8d1, 0x003f, 0x003f, 0xceb8, 0xd8d3, - 0xb0d6, 0xd8d5, 0x003f, 0xd8cc, 0xd8d2, 0xd8d9, 0xb7c4, 0xd8cd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcddd, 0x003f, - 0x003f, 0x003f, 0xcdab, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8dc, - 0x003f, 0x003f, 0xd8e0, 0x003f, 0x003f, 0x003f, 0xc1fe, 0x003f, - 0xcef9, 0xd8e1, 0x003f, 0x003f, 0xd8de, 0x003f, 0xd8db, 0x003f, - 0x003f, 0xd8da, 0xd8df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcab0, 0x003f, 0x003f, 0xc6b4, - 0x003f, 0xb7c6, 0x003f, 0xd8e2, 0xd8dd, 0x003f, 0xd8e3, 0x003f, - 0x003f, 0x003f, 0xb7fb, 0x003f, 0x003f, 0x003f, 0xb2b1, 0x003f, - 0x003f, 0x003f, 0xd8eb, 0x003f, 0x003f, 0x003f, 0xb4b8, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd8e9, 0x003f, 0x003f, 0xd8ea, 0xbaa9, - 0xd8e8, 0xd8e6, 0xd8e5, 0xd8ec, 0xd8e4, 0xd8ee, 0x003f, 0x003f, - 0xb2fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd8f0, 0x003f, 0x003f, 0xd8ef, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc4a8, 0x003f, 0xd8f3, 0x003f, 0xd8f1, 0xd8e7, - 0xb7fc, 0x003f, 0xd8f2, 0x003f, 0xd8f6, 0xd8f5, 0xd8f7, 0xd8f4, - /* 0x6200 .. 0x62ff */ - 0xd8f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd8f9, 0xd8fa, 0xcaea, 0x003f, 0xd8fc, 0xd8fb, 0xbdbf, 0x003f, - 0xc0ae, 0xb2e6, 0xb2fc, 0x003f, 0xd8fd, 0x003f, 0xb0bf, 0x003f, - 0x003f, 0x003f, 0xc0cc, 0xd8fe, 0x003f, 0xecc3, 0xd9a1, 0xb7e1, - 0x003f, 0xd9a2, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0ef, 0x003f, - 0x003f, 0x003f, 0xd9a3, 0x003f, 0x003f, 0x003f, 0xd9a4, 0xb5ba, - 0xd9a5, 0x003f, 0xd9a6, 0xd9a7, 0xc2d7, 0x003f, 0x003f, 0x003f, - 0xb8cd, 0x003f, 0x003f, 0xcce1, 0x003f, 0x003f, 0x003f, 0xcbbc, - 0xbdea, 0xd9a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0f0, - 0xeebd, 0xc8e2, 0x003f, 0xbcea, 0x003f, 0xbacd, 0xd9a9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc2c7, 0x003f, 0xcaa7, 0x003f, 0x003f, - 0xc2f1, 0x003f, 0x003f, 0xd9ac, 0x003f, 0x003f, 0xd9aa, 0x003f, - 0xd9ad, 0x003f, 0x003f, 0xd9ab, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd9ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcab1, 0x003f, - 0x003f, 0xb0b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9de, 0x003f, - 0x003f, 0xc8e3, 0x003f, 0x003f, 0xd9af, 0x003f, 0xd9b2, 0xbeb5, - 0xb5bb, 0x003f, 0xd9b0, 0xd9b7, 0xbeb6, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd9b1, 0xc7c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcdde, 0xd9b3, 0xd9b4, 0xd9b8, 0xc5ea, 0xd9b5, 0xb9b3, - 0xc0de, 0x003f, 0x003f, 0xd9c6, 0xc8b4, 0x003f, 0xc2f2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc8e4, 0xdaad, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcafa, 0x003f, 0x003f, 0x003f, 0xc4f1, 0x003f, 0x003f, - 0x003f, 0xcbf5, 0x003f, 0xd9bb, 0xb2a1, 0xc3ea, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd9c4, 0x003f, 0x003f, 0xc3b4, 0xd9be, 0xd9c5, - 0xd9c0, 0xd9c7, 0xd9c3, 0x003f, 0xd9c2, 0xc7ef, 0x003f, 0xd9bc, - 0xb2fd, 0xd9ba, 0xb5f1, 0xc2f3, 0xd9b6, 0x003f, 0x003f, 0xd9b9, - 0xb9b4, 0xc0db, 0x003f, 0xbeb7, 0xd9c1, 0xc7d2, 0x003f, 0x003f, - 0xb5f2, 0xb3c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb3e7, 0xbfa1, 0xd9c9, 0xd9ce, - 0x003f, 0xd9ca, 0x003f, 0xb7fd, 0x003f, 0xd9cf, 0xbba2, 0xb9e9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbda6, 0xd9bd, - /* 0x6300 .. 0x63ff */ - 0x003f, 0xbbfd, 0xd9cc, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbd8, - 0xd9cd, 0xb0c4, 0x003f, 0x003f, 0xd9c8, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc4a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb5f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6b4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9cb, - 0xb0a7, 0x003f, 0x003f, 0xbac3, 0x003f, 0x003f, 0x003f, 0xbfb6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc4f2, 0x003f, 0x003f, 0xc8d4, 0xd9d1, 0xc1de, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc2aa, 0x003f, 0x003f, 0xbbab, 0xd9d2, 0x003f, 0xd9d4, - 0xd9d0, 0x003f, 0x003f, 0x003f, 0x003f, 0xcae1, 0x003f, 0xc4bd, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc1dc, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcafb, - 0xbcce, 0xd9e0, 0x003f, 0xd9df, 0x003f, 0x003f, 0xbff8, 0x003f, - 0x003f, 0x003f, 0xb7fe, 0x003f, 0x003f, 0x003f, 0xd9d9, 0xbeb9, - 0x003f, 0x003f, 0xc6e8, 0xc7b1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd9d7, 0x003f, 0x003f, 0xc1dd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbcf8, 0xd9dc, 0x003f, 0x003f, 0xbeb8, 0x003f, 0xd9d6, 0xd9db, - 0x003f, 0x003f, 0xc7d3, 0x003f, 0x003f, 0x003f, 0xd9d5, 0x003f, - 0xb7a1, 0x003f, 0x003f, 0xb3dd, 0x003f, 0x003f, 0x003f, 0xd9dd, - 0xceab, 0xbace, 0xc3b5, 0xd9da, 0x003f, 0xc0dc, 0x003f, 0xb9b5, - 0xbfe4, 0xb1e6, 0xc1bc, 0xd9d8, 0xb5c5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb7c7, 0x003f, 0xc4cf, 0xd9de, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc1df, 0x003f, 0x003f, 0xd9e1, 0x003f, - 0xd9e3, 0x003f, 0x003f, 0xc2b7, 0xd9e9, 0x003f, 0xd9e4, 0x003f, - 0x003f, 0xd9e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9c1, - 0xc4f3, 0x003f, 0xd9e7, 0x003f, 0x003f, 0x003f, 0xcdac, 0x003f, - 0x003f, 0x003f, 0xcdc8, 0xb4b9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb0ae, 0x003f, 0xd9e5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd9e2, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4f8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb1e7, 0x003f, 0xd9e8, 0x003f, - 0x003f, 0x003f, 0xcdc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6400 .. 0x64ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ec, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2bb, 0x003f, 0xd9f3, - 0x003f, 0x003f, 0x003f, 0xd9ed, 0x003f, 0x003f, 0xd9ea, 0xd9f1, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ee, 0x003f, - 0xd9f2, 0x003f, 0x003f, 0x003f, 0xc8c2, 0xc5eb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd9eb, 0x003f, 0xd9ef, 0x003f, - 0x003f, 0x003f, 0xb7c8, 0x003f, 0x003f, 0x003f, 0xbaf1, 0x003f, - 0x003f, 0x003f, 0xc0dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc5a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f4, - 0x003f, 0xcbe0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f6, 0x003f, - 0xccce, 0x003f, 0xc0a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb7e2, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd9fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbbb5, 0xd9fa, 0x003f, 0xd9f9, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc7b2, 0x003f, 0x003f, 0x003f, 0xc6b5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc5b1, 0xd9fb, 0x003f, 0x003f, - 0x003f, 0xd9fc, 0x003f, 0xc9ef, 0x003f, 0xc7c5, 0xbba3, 0x003f, - 0xc0f1, 0x003f, 0xcbd0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb3c9, 0x003f, 0xdaa5, 0xd9fe, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcdca, 0xdaa7, 0x003f, 0x003f, 0xdaa3, 0x003f, 0xdaa4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1e0, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdaa2, 0x003f, 0xd9bf, 0x003f, 0x003f, 0x003f, - 0xdaa6, 0x003f, 0xdaa1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdaab, 0xdaac, 0xc5a7, 0xdaae, 0x003f, 0x003f, 0xbba4, 0xdaa9, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb5bc, 0x003f, 0x003f, 0xdaaf, - 0x003f, 0xdaa8, 0xdab3, 0x003f, 0xdab2, 0x003f, 0xdab1, 0x003f, - 0x003f, 0x003f, 0xdab4, 0x003f, 0x003f, 0xdab6, 0xbef1, 0x003f, - /* 0x6500 .. 0x65ff */ - 0xdab5, 0x003f, 0x003f, 0x003f, 0x003f, 0xdab9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdab7, 0x003f, 0x003f, 0x003f, 0xdab8, 0xd9f0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdabb, 0xdaba, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd9f8, 0xdabc, 0xdab0, 0x003f, 0x003f, 0xbbd9, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdabd, 0xdabe, 0xdac0, 0xdabf, - 0xdac1, 0xb2fe, 0x003f, 0xb9b6, 0x003f, 0x003f, 0xcafc, 0xc0af, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8ce, 0x003f, 0x003f, - 0xdac3, 0x003f, 0x003f, 0x003f, 0x003f, 0xdac6, 0x003f, 0xc9d2, - 0x003f, 0xb5df, 0x003f, 0x003f, 0x003f, 0xdac5, 0xdac4, 0xc7d4, - 0xdac7, 0xb6b5, 0x003f, 0x003f, 0x003f, 0xdac9, 0xdac8, 0x003f, - 0x003f, 0x003f, 0xb4ba, 0xbbb6, 0x003f, 0x003f, 0xc6d8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb7c9, 0x003f, 0x003f, 0x003f, - 0xbff4, 0x003f, 0xdaca, 0x003f, 0xc0b0, 0xc5a8, 0x003f, 0xc9df, - 0xdacb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdacc, 0xdacd, 0x003f, 0x003f, 0x003f, 0xcab8, - 0xd5dd, 0xc0c6, 0x003f, 0x003f, 0xc9cc, 0x003f, 0xbad8, 0x003f, - 0xc8e5, 0xc8c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5cd, - 0x003f, 0xcec1, 0x003f, 0xdacf, 0xbcd0, 0x003f, 0x003f, 0xdad0, - 0x003f, 0xb0b6, 0x003f, 0x003f, 0xb6d4, 0xc0cd, 0x003f, 0xc9e0, - 0x003f, 0x003f, 0x003f, 0xdad1, 0xbbc2, 0xc3c7, 0x003f, 0xbbdb, - 0xbfb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdad2, - 0x003f, 0xcafd, 0x003f, 0x003f, 0xb1f7, 0xbbdc, 0x003f, 0x003f, - 0x003f, 0xdad5, 0x003f, 0xdad3, 0xdad6, 0xceb9, 0xdad4, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc0fb, 0xdad7, 0x003f, 0x003f, 0xc2b2, - 0x003f, 0x003f, 0xdad8, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4fa, - 0x003f, 0xdada, 0x003f, 0xdad9, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdadb, 0xdadc, 0xb4fb, 0x003f, 0x003f, 0xc6fc, 0xc3b6, 0xb5ec, - 0xbbdd, 0xc1e1, 0x003f, 0x003f, 0xbddc, 0xb0b0, 0x003f, 0x003f, - 0x003f, 0xdadd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb2a2, 0xdae1, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6600 .. 0x66ff */ - 0x003f, 0x003f, 0xb9b7, 0xdae0, 0x003f, 0x003f, 0xbaab, 0xbeba, - 0x003f, 0x003f, 0xdadf, 0x003f, 0xbebb, 0x003f, 0xccc0, 0xbaaa, - 0x003f, 0x003f, 0x003f, 0xb0d7, 0xc0ce, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdae6, 0x003f, 0x003f, 0xc0b1, - 0xb1c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdd5, 0x003f, 0xcbe6, - 0xbaf2, 0x003f, 0x003f, 0x003f, 0x003f, 0xbebc, 0x003f, 0xc0a7, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdae5, 0xdae3, 0xdae4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc3eb, 0x003f, 0x003f, 0xdba6, - 0x003f, 0xdaea, 0xbbfe, 0xb9b8, 0xdae8, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdae9, 0x003f, 0xbfb8, 0x003f, 0x003f, 0x003f, 0xdae7, - 0x003f, 0x003f, 0xbbaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaec, 0xdaeb, 0xdaf0, - 0x003f, 0x003f, 0xdaf1, 0x003f, 0xdaed, 0x003f, 0xb3a2, 0xdaee, - 0xdaef, 0xc8d5, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9e1, 0xb7ca, - 0xdaf2, 0x003f, 0x003f, 0x003f, 0xc0b2, 0x003f, 0xbebd, 0x003f, - 0x003f, 0x003f, 0xc3d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb6c7, 0x003f, 0xdaf3, 0xdaf7, 0x003f, 0x003f, 0xb2cb, - 0xdaf4, 0xdaf6, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaf5, 0x003f, - 0x003f, 0xbdeb, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3c8, 0xb0c5, - 0xdaf8, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaf9, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc4aa, 0x003f, 0x003f, 0x003f, 0xcef1, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbbc3, 0x003f, 0x003f, 0xcaeb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcbbd, 0x003f, 0x003f, 0x003f, - 0xdba2, 0xdafb, 0x003f, 0x003f, 0xdafe, 0x003f, 0xdafd, 0x003f, - 0x003f, 0xdafa, 0x003f, 0x003f, 0xdba1, 0x003f, 0x003f, 0xc6de, - 0x003f, 0xdafc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdba3, 0x003f, - 0x003f, 0xbdec, 0xdba4, 0x003f, 0xcdcb, 0xc7f8, 0x003f, 0x003f, - 0xdba5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdba7, 0x003f, - 0x003f, 0xdba8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdba9, 0x003f, 0xb6ca, 0xb1c8, 0xb9b9, 0xdbaa, 0x003f, 0xdbab, - 0xbdf1, 0xc1e2, 0x003f, 0x003f, 0xd2d8, 0xc1be, 0xc1bd, 0xc2d8, - /* 0x6700 .. 0x67ff */ - 0xbac7, 0x003f, 0x003f, 0xd0f2, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb7ee, 0xcdad, 0x003f, 0xcafe, 0x003f, 0xc9fe, 0x003f, 0xdbac, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbaf3, 0xc4bf, 0xdbad, 0xcfaf, - 0x003f, 0x003f, 0x003f, 0xcbbe, 0x003f, 0xc4ab, 0xdbae, 0xb4fc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbaf, 0xdbb0, - 0xccda, 0x003f, 0xcca4, 0xcbf6, 0xcbdc, 0xbba5, 0xdbb2, 0x003f, - 0x003f, 0xbceb, 0x003f, 0x003f, 0xcbd1, 0x003f, 0xdbb4, 0xdbb7, - 0xdbb6, 0x003f, 0xb4f9, 0x003f, 0x003f, 0xb5e0, 0x003f, 0xdbb3, - 0x003f, 0xdbb5, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbb8, 0x003f, - 0x003f, 0xbff9, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdfb, 0xb0c9, - 0xbae0, 0xc2bc, 0x003f, 0xbcdd, 0x003f, 0x003f, 0xbef3, 0x003f, - 0x003f, 0xdbbb, 0x003f, 0x003f, 0xc5ce, 0x003f, 0xdbb9, 0xc2ab, - 0xdbba, 0xbef2, 0xccdd, 0xdbbc, 0xdbbd, 0xcde8, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdbc2, 0x003f, 0x003f, 0xb9ba, 0x003f, 0xc7d5, - 0xdbbf, 0xc5ec, 0xdade, 0xdae2, 0x003f, 0xb5cf, 0x003f, 0xc7c7, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdbc1, 0x003f, 0xbebe, 0xc8c4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbc7, 0x003f, 0xc8fa, - 0x003f, 0xdbbe, 0x003f, 0xdbc4, 0xdbc3, 0x003f, 0x003f, 0x003f, - 0xc0cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbed, 0x003f, 0xced3, - 0x003f, 0x003f, 0xcbe7, 0x003f, 0xb2cc, 0xbbde, 0x003f, 0x003f, - 0xcfc8, 0xdbc6, 0xbff5, 0x003f, 0x003f, 0x003f, 0xdbc5, 0x003f, - 0x003f, 0xdbc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8cf, - 0x003f, 0x003f, 0x003f, 0xdbcc, 0xdbca, 0x003f, 0xb2cd, 0xdbc8, - 0xdbce, 0xdbd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc2c8, 0x003f, 0x003f, 0xcac1, 0x003f, 0xdbd6, 0x003f, - 0x003f, 0x003f, 0xc9a2, 0x003f, 0x003f, 0x003f, 0xdbd5, 0xc7f0, - 0xcbbf, 0xb4bb, 0x003f, 0xc0f7, 0xbdc0, 0x003f, 0x003f, 0x003f, - 0xc4d3, 0x003f, 0xcdae, 0x003f, 0x003f, 0xdbd1, 0xdbd0, 0x003f, - 0x003f, 0x003f, 0xdbd2, 0x003f, 0xdbcf, 0x003f, 0x003f, 0xdbd7, - 0x003f, 0xdbcd, 0x003f, 0x003f, 0xdbcb, 0x003f, 0xdbd3, 0xdbc9, - 0x003f, 0xc3ec, 0x003f, 0xccf8, 0xbcc6, 0xbaf4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbaba, 0x003f, 0x003f, 0xcbef, 0xb3c1, - /* 0x6800 .. 0x68ff */ - 0x003f, 0x003f, 0xc4ce, 0xc6ca, 0xb1c9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc0f2, 0x003f, 0x003f, 0xc0b4, 0xb7aa, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbd9, 0x003f, - 0x003f, 0xb9bb, 0xb3fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdbdb, 0xb3f4, 0xdbe1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdbde, 0x003f, 0xc0f3, 0x003f, 0x003f, 0x003f, - 0xb3cb, 0xbaac, 0x003f, 0x003f, 0xb3ca, 0xbacf, 0x003f, 0x003f, - 0xdbdc, 0xb7e5, 0xb7cb, 0xc5ed, 0x003f, 0x003f, 0xdbda, 0x003f, - 0xb0c6, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbdd, 0xdbdf, 0x003f, - 0xb6cd, 0xb7ac, 0x003f, 0xb4bc, 0xb5cb, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdbe2, 0x003f, 0x003f, 0xbaf9, 0xcbf1, 0x003f, 0xbbb7, - 0x003f, 0x003f, 0x003f, 0xdbe3, 0x003f, 0x003f, 0x003f, 0xc9b0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdbef, 0x003f, 0xb2b3, 0xdbe4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbf5, 0xdbe5, - 0x003f, 0xcec2, 0x003f, 0xdbec, 0x003f, 0xc7df, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbf4, 0x003f, 0xdbe7, - 0x003f, 0x003f, 0x003f, 0xb0b4, 0xdbe9, 0x003f, 0x003f, 0xb9bc, - 0x003f, 0x003f, 0x003f, 0xdbeb, 0x003f, 0xdbea, 0x003f, 0xdbe6, - 0xdbf1, 0x003f, 0xbebf, 0x003f, 0x003f, 0x003f, 0xd4ed, 0xb8e8, - 0xcdfc, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbe8, 0x003f, 0xc4f4, - 0xb3a3, 0xbaad, 0x003f, 0xdbe0, 0x003f, 0xdbf0, 0xb3e1, 0x003f, - 0x003f, 0xdbee, 0xdbf2, 0x003f, 0xc5ee, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb4fe, 0x003f, 0xdcb2, 0x003f, - 0x003f, 0xccc9, 0xdbf7, 0xb4fd, 0x003f, 0xdbfe, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcbc0, 0x003f, 0xdca1, 0xdca3, 0x003f, 0xdca7, - 0xdbf9, 0x003f, 0xc3aa, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5ef, - 0xdcab, 0xdbfc, 0x003f, 0xdca8, 0x003f, 0x003f, 0x003f, 0xdca2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfb9, 0xdcac, - 0x003f, 0x003f, 0xc0b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdcaa, 0xb4bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6900 .. 0x69ff */ - 0xcfd0, 0xdbf6, 0x003f, 0x003f, 0xdca6, 0xb0d8, 0x003f, 0x003f, - 0xdbf8, 0x003f, 0x003f, 0xccba, 0xdbfd, 0xbfa2, 0xc4c7, 0xdbf3, - 0x003f, 0x003f, 0xdca5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbffa, 0xdcaf, 0xb3f1, 0xb8a1, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdcb1, 0xdbfa, 0xdcb0, 0x003f, 0xdca9, 0xdbfb, 0x003f, - 0xdcad, 0x003f, 0xdcae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdcbf, 0x003f, 0x003f, 0x003f, 0xc6ce, 0x003f, 0xdca4, 0x003f, - 0x003f, 0xdcbb, 0x003f, 0x003f, 0x003f, 0xdcbd, 0x003f, 0xc4d8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcdcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc9f6, 0xdcb8, 0xc2ca, 0x003f, 0x003f, - 0x003f, 0xdcbe, 0xc1bf, 0x003f, 0xdcb5, 0xdcc2, 0xdcc1, 0x003f, - 0xc6ef, 0xdcc0, 0xc6ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdcc4, 0xdcb7, 0x003f, 0xb6c8, 0xdcba, 0xbddd, - 0x003f, 0x003f, 0x003f, 0xc7e0, 0xdcbc, 0xb6cb, 0x003f, 0xdcb4, - 0xdcb6, 0xdcb3, 0x003f, 0x003f, 0xcfb0, 0xb3da, 0xdcb9, 0x003f, - 0x003f, 0xdcc3, 0xb3b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbae7, 0x003f, 0x003f, 0x003f, 0xb1dd, 0x003f, - 0x003f, 0xdcd4, 0x003f, 0x003f, 0xcfb1, 0xdcd7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbfba, 0xdcd6, 0x003f, 0x003f, 0x003f, - 0xdcd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcd2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcc6, 0x003f, - 0x003f, 0xdce3, 0xdcc5, 0x003f, 0xdcd8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdcd0, 0x003f, 0x003f, 0xdccb, 0xdcc8, - 0x003f, 0xdcc9, 0x003f, 0xdcd1, 0x003f, 0x003f, 0x003f, 0xf4a2, - 0x003f, 0x003f, 0xdcce, 0xb9bd, 0xc4c8, 0xc1e4, 0xdccc, 0x003f, - 0xdcc7, 0x003f, 0x003f, 0xdcca, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcdcd, 0xcbea, 0x003f, 0x003f, 0x003f, 0xdccf, 0xdcd9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdce1, - 0xdcda, 0x003f, 0x003f, 0xdce7, 0x003f, 0xdce5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdce0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdcdf, 0x003f, 0xc4d0, 0x003f, 0xc1e5, 0x003f, 0xdcdd, - /* 0x6a00 .. 0x6aff */ - 0x003f, 0x003f, 0xdcdb, 0x003f, 0x003f, 0xdce2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdce8, 0xc8f5, 0xdcee, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdce9, 0xdcec, 0xdce6, 0x003f, 0x003f, 0xc3f4, - 0x003f, 0xc9b8, 0x003f, 0xdcdc, 0x003f, 0x003f, 0xdce4, 0xbec0, - 0x003f, 0xcccf, 0xdcf8, 0xdceb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb8a2, 0xb2a3, 0xb3df, 0x003f, 0x003f, 0xdcd3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbec1, 0xdcf0, 0x003f, - 0xdcf7, 0xbcf9, 0xb3f2, 0x003f, 0x003f, 0xc3ae, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdced, 0x003f, 0x003f, 0xdcf2, - 0xdcf6, 0x003f, 0x003f, 0xb6b6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb5cc, 0xdcf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5a1, - 0x003f, 0xc6cb, 0xdcf3, 0x003f, 0x003f, 0x003f, 0xdcf5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdcef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdcf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3e0, - 0xc3c9, 0x003f, 0x003f, 0x003f, 0xdcfc, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcfa, 0xb8e9, 0x003f, - 0xdcf9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdda1, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdbd8, 0x003f, 0x003f, 0x003f, - 0xdcfb, 0x003f, 0xdcfd, 0xdcfe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xddac, 0x003f, 0xdda8, 0x003f, 0xdbed, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdda7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdda6, 0x003f, 0x003f, 0xdda3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdcea, 0xdda5, 0xdda4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xddaa, 0x003f, 0xcfa6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xddad, 0xb6fb, 0x003f, 0x003f, 0xdda9, 0xddab, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc8a7, 0x003f, 0xddae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xddb2, 0xddaf, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6b00 .. 0x6bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xcdf3, 0xddb0, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdcde, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xddb3, 0x003f, 0x003f, 0x003f, 0xddb4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1b5, 0x003f, 0xddb6, - 0xb7e7, 0xbca1, 0x003f, 0xb6d5, 0x003f, 0x003f, 0x003f, 0xb2a4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcddf, 0x003f, 0x003f, 0x003f, 0x003f, 0xddb8, - 0xddb7, 0xddba, 0xb5bd, 0x003f, 0x003f, 0xb6d6, 0xb4be, 0x003f, - 0x003f, 0x003f, 0x003f, 0xddbd, 0x003f, 0x003f, 0x003f, 0xddbc, - 0x003f, 0xddbe, 0x003f, 0x003f, 0xb2ce, 0x003f, 0xc3b7, 0x003f, - 0xddbf, 0x003f, 0x003f, 0xb4bf, 0xddc1, 0x003f, 0x003f, 0x003f, - 0x003f, 0xddc0, 0x003f, 0xddc2, 0x003f, 0x003f, 0x003f, 0xddc3, - 0x003f, 0xddc4, 0xbbdf, 0xc0b5, 0xbaa1, 0x003f, 0xc9f0, 0x003f, - 0x003f, 0xcae2, 0xcfc4, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbf5, - 0x003f, 0x003f, 0x003f, 0xbad0, 0xcef2, 0x003f, 0x003f, 0x003f, - 0xddc5, 0xddc6, 0x003f, 0xbbe0, 0x003f, 0x003f, 0x003f, 0xddc7, - 0xddc8, 0x003f, 0x003f, 0xddca, 0xddc9, 0x003f, 0xcbd8, 0x003f, - 0x003f, 0xbdde, 0xbcec, 0xbbc4, 0x003f, 0xddcb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddcd, 0xbfa3, 0x003f, - 0xddcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddce, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xddcf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xddd0, 0xddd1, 0x003f, 0x003f, 0x003f, 0xddd2, - 0x003f, 0xddd4, 0xddd3, 0xddd5, 0xb2a5, 0xc3ca, 0x003f, 0xddd6, - 0x003f, 0x003f, 0xbba6, 0xb3cc, 0xddd7, 0x003f, 0x003f, 0xc5c2, - 0xd4cc, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5a3, 0xddd8, 0x003f, - 0x003f, 0x003f, 0x003f, 0xddd9, 0x003f, 0xcaec, 0xcbe8, 0x003f, - 0x003f, 0x003f, 0xc6c7, 0xddda, 0xc8e6, 0x003f, 0x003f, 0x003f, - 0xc8fb, 0x003f, 0x003f, 0xccd3, 0x003f, 0x003f, 0x003f, 0xdddb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdddd, 0xdddc, 0x003f, 0x003f, 0xdddf, - 0x003f, 0x003f, 0x003f, 0xddde, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6c00 .. 0x6cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdde1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbe1, - 0x003f, 0xccb1, 0x003f, 0xdde2, 0xdde3, 0x003f, 0x003f, 0xb5a4, - 0x003f, 0x003f, 0x003f, 0xdde4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdde6, 0xdde5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbfe5, 0x003f, 0x003f, 0xc9b9, - 0xb1ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8c5, 0x003f, - 0xc4f5, 0xbdc1, 0xb5e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8c6, 0x003f, - 0xbcae, 0x003f, 0x003f, 0x003f, 0x003f, 0xdde8, 0x003f, 0xb4c0, - 0x003f, 0x003f, 0xb1f8, 0x003f, 0x003f, 0xc6f2, 0xdde7, 0xb9be, - 0xc3d3, 0x003f, 0xdde9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xddf1, 0x003f, 0xddea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc2c1, 0x003f, 0xb5e2, 0xddf2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb7e8, 0x003f, 0x003f, 0xb5a5, 0xddf0, 0x003f, - 0x003f, 0xddee, 0xddeb, 0xcde0, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc4c0, 0x003f, 0x003f, 0x003f, 0xc6d9, 0xddec, 0x003f, 0x003f, - 0xddf4, 0x003f, 0xddf3, 0xb7a3, 0x003f, 0x003f, 0xb2ad, 0x003f, - 0x003f, 0xbabb, 0xdded, 0xddef, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcbd7, 0xc2f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcbf7, 0x003f, 0x003f, 0xddfc, 0x003f, - 0x003f, 0xddfd, 0x003f, 0xb2cf, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcaa8, 0xccfd, 0xdea1, 0xbca3, 0xbec2, 0xddf8, 0xddfe, 0xb1e8, - 0x003f, 0xb6b7, 0x003f, 0x003f, 0xddf5, 0xddfa, 0x003f, 0x003f, - 0x003f, 0xc0f4, 0xc7f1, 0x003f, 0xc8e7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xddf7, 0x003f, 0xcba1, 0x003f, 0xddf9, - 0x003f, 0xdea4, 0x003f, 0xdea2, 0x003f, 0xddfb, 0x003f, 0x003f, - 0x003f, 0xcba2, 0xc7c8, 0xb5e3, 0x003f, 0xc5a5, 0x003f, 0x003f, - 0xc3ed, 0x003f, 0xdea5, 0x003f, 0x003f, 0x003f, 0x003f, 0xdea3, - 0xc2d9, 0xddf6, 0x003f, 0xb1cb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6d00 .. 0x6dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcdce, 0xdeb0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdeaf, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0f6, - 0x003f, 0xdeac, 0x003f, 0xcdec, 0x003f, 0x003f, 0xc6b6, 0xdea6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4c5, 0x003f, 0x003f, - 0x003f, 0xb1cc, 0xb9bf, 0xdea9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbda7, 0xdeae, 0x003f, 0xdead, 0xdea8, 0x003f, - 0xdeab, 0x003f, 0x003f, 0xb3e8, 0x003f, 0xdeaa, 0xc7c9, 0x003f, - 0x003f, 0xceae, 0x003f, 0x003f, 0xbef4, 0xc0f5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdeb6, 0xdeb4, 0x003f, 0xc9cd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdeb1, 0xdeb3, 0x003f, 0xb1ba, 0x003f, - 0x003f, 0xb9c0, 0xcfb2, 0x003f, 0xb3bd, 0x003f, 0xc9e2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcde1, 0x003f, 0x003f, 0xb3a4, - 0xbfbb, 0xdeb5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeba, 0x003f, 0x003f, - 0xbec3, 0x003f, 0x003f, 0x003f, 0xcdb0, 0x003f, 0xdeb7, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdeb2, 0x003f, 0xdeb8, 0x003f, 0x003f, - 0x003f, 0xcede, 0x003f, 0xc5f3, 0xc6c2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3b6, - 0x003f, 0x003f, 0xb1d5, 0x003f, 0x003f, 0xdebe, 0x003f, 0x003f, - 0xdec1, 0x003f, 0x003f, 0x003f, 0xcec3, 0x003f, 0x003f, 0x003f, - 0xcde4, 0x003f, 0x003f, 0x003f, 0x003f, 0xdec8, 0xdec2, 0xdebf, - 0x003f, 0x003f, 0x003f, 0xced4, 0xdec5, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbdca, 0xdec7, 0x003f, 0x003f, 0xdecc, 0x003f, 0x003f, - 0xc5f1, 0xdeca, 0x003f, 0x003f, 0x003f, 0x003f, 0xdec4, 0x003f, - 0x003f, 0xc3b8, 0x003f, 0x003f, 0xdecb, 0x003f, 0xdec0, 0x003f, - 0xdec6, 0x003f, 0xdecd, 0xb0fc, 0xdec3, 0x003f, 0xdece, 0x003f, - 0x003f, 0xbfbc, 0x003f, 0xbddf, 0x003f, 0xcaa5, 0x003f, 0xbaae, - 0x003f, 0xdebb, 0xdec9, 0xc5ba, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6e00 .. 0x6eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0b6, 0x003f, 0xb3e9, - 0xbad1, 0xbec4, 0xdebd, 0xbdc2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb7cc, 0x003f, 0xdebc, 0x003f, 0x003f, - 0x003f, 0xded2, 0xbded, 0xb8ba, 0x003f, 0xdee1, 0x003f, 0xdedb, - 0xb5f4, 0xc5cf, 0x003f, 0xded6, 0xdedf, 0xb0af, 0xb1b2, 0x003f, - 0x003f, 0xb2b9, 0x003f, 0xded8, 0xc2ac, 0xdecf, 0xded1, 0xb9c1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdee2, 0x003f, 0xdedd, 0x003f, 0x003f, 0x003f, 0xded5, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdedc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xccab, 0x003f, 0x003f, 0xdeda, 0xdede, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8d0, 0x003f, - 0xbec5, 0x003f, 0x003f, 0xc3b9, 0x003f, 0x003f, 0x003f, 0xded4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdaf, - 0x003f, 0x003f, 0x003f, 0xded7, 0x003f, 0x003f, 0xded0, 0xc5f2, - 0x003f, 0x003f, 0xded3, 0x003f, 0x003f, 0x003f, 0xded9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfd1, 0xbcbe, - 0xcbfe, 0x003f, 0xdee3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc8ae, 0x003f, 0x003f, 0xdeef, - 0xb8bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbde0, 0x003f, - 0xdee5, 0x003f, 0x003f, 0x003f, 0xceaf, 0xb9c2, 0x003f, 0xdef2, - 0x003f, 0x003f, 0xb0ee, 0x003f, 0x003f, 0xdef0, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdee4, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeea, - 0x003f, 0x003f, 0xdeec, 0x003f, 0x003f, 0x003f, 0xcdcf, 0xdee7, - 0x003f, 0x003f, 0xc5ae, 0x003f, 0x003f, 0xdee9, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdef1, 0x003f, 0xdeeb, 0xccc7, 0x003f, 0x003f, - 0x003f, 0xdee6, 0x003f, 0xbca2, 0xdefe, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb3ea, 0x003f, 0xdee8, 0xdeed, 0xdeee, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2ec, 0xc2da, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdef6, 0x003f, 0x003f, 0xdefc, - 0x003f, 0x003f, 0xdefa, 0x003f, 0xc5a9, 0x003f, 0x003f, 0xdfa3, - 0xdef7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdef8, 0xdee0, - /* 0x6f00 .. 0x6fff */ - 0x003f, 0xb5f9, 0xc9ba, 0x003f, 0x003f, 0x003f, 0xbcbf, 0x003f, - 0x003f, 0xb9f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfb3, - 0x003f, 0xdef4, 0x003f, 0xdfa2, 0xb1e9, 0xc1e6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc7f9, 0x003f, 0xb4c1, 0xcefa, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcca1, 0xc4d2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdefb, 0xdefd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc1b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfa1, 0xdef9, - 0x003f, 0xdef3, 0x003f, 0x003f, 0x003f, 0xb4c3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb7e9, 0x003f, 0x003f, 0x003f, - 0xdfaf, 0x003f, 0x003f, 0xdfaa, 0xc0f8, 0x003f, 0x003f, 0xb3e3, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbde1, 0x003f, 0xdfb3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfac, 0xc4ac, 0xdfa9, - 0xc4d9, 0x003f, 0x003f, 0x003f, 0xdfcc, 0x003f, 0x003f, 0x003f, - 0xdfa6, 0x003f, 0xdfa5, 0x003f, 0xdfae, 0x003f, 0x003f, 0x003f, - 0xdfa8, 0xdfa7, 0xdfad, 0x003f, 0xc0a1, 0x003f, 0xdfa4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfb0, 0x003f, - 0x003f, 0xdfb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4c2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfb6, 0x003f, 0xdfb5, 0xdfb7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdfba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc5c3, 0x003f, 0xdfb4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb7e3, 0xc2f9, 0xdfb2, 0xc7bb, 0x003f, 0x003f, 0xdfb9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdfbe, 0xdfbc, 0x003f, 0x003f, - 0xdfbf, 0x003f, 0x003f, 0xdfc2, 0x003f, 0x003f, 0x003f, 0xdfbb, - 0xb9ea, 0xc7a8, 0x003f, 0x003f, 0xdeb9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcdf4, 0xdfbd, 0x003f, 0xdfc1, 0xc2f5, - 0x003f, 0xdfc0, 0x003f, 0xdfab, 0x003f, 0x003f, 0xefe9, 0x003f, - 0x003f, 0x003f, 0xdfc5, 0x003f, 0x003f, 0x003f, 0xdfc9, 0x003f, - /* 0x7000 .. 0x70ff */ - 0x003f, 0xdfc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfc3, 0x003f, 0xdfc4, 0x003f, 0x003f, 0x003f, 0xdfc8, - 0x003f, 0xdfc6, 0x003f, 0x003f, 0x003f, 0xc9ce, 0x003f, 0x003f, - 0xdfce, 0x003f, 0xdfcb, 0xdfca, 0x003f, 0xdfcd, 0xc6d4, 0xdfcf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3f5, 0xc2ed, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc0a5, 0x003f, 0x003f, 0x003f, - 0xdfd0, 0x003f, 0xdfd2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdef5, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfd3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc6e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdfd4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb2d0, 0x003f, 0x003f, 0x003f, 0xc5f4, - 0xb3a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb5e4, 0x003f, 0x003f, 0x003f, 0xbcde, 0xbad2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcfa7, 0xbfe6, 0x003f, 0x003f, 0x003f, 0xb1ea, 0x003f, - 0x003f, 0x003f, 0xdfd6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd9, 0xc3ba, 0xdfdc, 0xdfd7, - 0x003f, 0x003f, 0x003f, 0xdfdb, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdfda, 0xc5c0, 0xb0d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcef5, 0x003f, 0x003f, 0xdfde, 0x003f, 0x003f, 0x003f, 0xb1a8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfe0, 0x003f, 0x003f, 0x003f, 0xdfdf, 0x003f, 0xdfdd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfd8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcba3, 0x003f, 0x003f, 0x003f, 0xdfe2, 0x003f, 0x003f, - /* 0x7100 .. 0x71ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfe1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb1eb, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfe4, 0xcab2, 0x003f, 0xdfe3, 0x003f, 0x003f, 0x003f, - 0x003f, 0xccb5, 0x003f, 0x003f, 0x003f, 0x003f, 0xbec7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1b3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbec6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcefb, 0x003f, 0x003f, 0xdfea, 0x003f, 0xc0f9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfe6, 0xdfeb, 0x003f, - 0x003f, 0xb1ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdfe9, 0x003f, 0xc7e1, 0xdfe5, 0xdfe8, 0xbec8, - 0x003f, 0xc8d1, 0x003f, 0x003f, 0xdfec, 0x003f, 0xbcd1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0fa, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdfef, 0x003f, 0x003f, 0x003f, - 0xdfe7, 0x003f, 0xb7a7, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfed, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcdd0, 0xdff0, 0x003f, 0x003f, - 0x003f, 0xf4a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdcf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdff1, 0x003f, 0x003f, 0x003f, 0xdff2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc7ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdff4, 0x003f, 0x003f, 0x003f, 0x003f, 0xdff5, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc7b3, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc5f5, 0xdff7, 0x003f, 0x003f, 0x003f, 0x003f, 0xdff9, 0x003f, - 0xced5, 0x003f, 0xdff6, 0x003f, 0xdff8, 0xb1ed, 0x003f, 0xdff3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3db, - 0xdffa, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1e7, 0xbbb8, 0xdffc, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdffb, 0xbfa4, 0xd2d9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdffd, 0x003f, 0x003f, - 0x003f, 0xe0a1, 0x003f, 0xdfee, 0xdffe, 0x003f, 0x003f, 0xe0a2, - /* 0x7200 .. 0x72ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7fa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a3, 0x003f, 0x003f, - 0xe0a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0a5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0a6, 0x003f, 0xc4de, 0x003f, 0xe0a8, 0xe0a7, 0x003f, 0x003f, - 0xe0a9, 0x003f, 0xe0aa, 0x003f, 0x003f, 0xbcdf, 0xc9e3, 0x003f, - 0x003f, 0x003f, 0xccec, 0xe0ab, 0xe0ac, 0xc1d6, 0xbca4, 0xe0ad, - 0xe0ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0af, 0xcad2, - 0xc8c7, 0x003f, 0x003f, 0xe0b0, 0xc7d7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc4ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0b1, 0xb2e7, 0x003f, 0xb5ed, 0x003f, 0xccc6, 0x003f, 0xccb6, - 0x003f, 0xb2b4, 0xcfb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbd2, - 0x003f, 0xcaaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc0b7, 0x003f, 0xe0b2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc6c3, 0x003f, 0x003f, 0x003f, 0xb8a3, 0xe0b3, 0x003f, - 0xbad4, 0xe0b5, 0xe0b4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0b6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe0b7, 0x003f, 0x003f, 0x003f, 0xe0b8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb5be, 0x003f, 0xe0b9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ba, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb8a4, 0x003f, 0x003f, 0xc8c8, - 0x003f, 0x003f, 0xe0bc, 0x003f, 0x003f, 0x003f, 0xbef5, 0x003f, - 0x003f, 0xe0bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb6b8, 0xe0bd, 0xe0bf, 0x003f, 0xe0be, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c0, 0x003f, - 0xb8d1, 0x003f, 0xe0c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6e9, - 0x003f, 0xc1c0, 0x003f, 0xb9fd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0c3, 0xe0c4, 0xe0c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbced, 0x003f, 0x003f, 0xc6c8, 0xb6b9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c6, - 0xc3ac, 0xe0c5, 0x003f, 0x003f, 0xcfb5, 0xc7e2, 0x003f, 0x003f, - /* 0x7300 .. 0x73ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe0c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0cb, 0xe0c8, - 0x003f, 0x003f, 0x003f, 0xccd4, 0xe0ca, 0xe0cc, 0x003f, 0xcec4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d0, 0x003f, 0x003f, - 0x003f, 0xe0cf, 0xc3f6, 0xc7ad, 0x003f, 0x003f, 0xb8a5, 0xe0ce, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe0cd, 0x003f, 0xcdb1, 0xcdb2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d1, 0xb1ee, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb9f6, 0xbbe2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d2, 0xe0d3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbdc3, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0d7, 0x003f, 0xe0d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0d8, 0x003f, 0xb3cd, 0x003f, 0x003f, 0xe0da, 0x003f, 0x003f, - 0xe0d9, 0x003f, 0xe0dc, 0xe0db, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb8bc, 0x003f, 0x003f, 0xcea8, - 0x003f, 0xb6cc, 0x003f, 0xb2a6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6ea, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb4e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcee8, 0xe0de, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0e0, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0e1, 0x003f, 0xb2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0dd, 0x003f, 0xbbb9, 0x003f, 0x003f, 0xc4c1, 0xe0df, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e4, 0x003f, - 0xbcee, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb7be, 0x003f, 0x003f, 0xc8c9, 0xe0e3, 0x003f, - 0x003f, 0xe0fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8bd, 0x003f, - /* 0x7400 .. 0x74ff */ - 0x003f, 0x003f, 0x003f, 0xb5e5, 0x003f, 0xe0e6, 0xcdfd, 0x003f, - 0x003f, 0xceb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc2f6, 0x003f, 0x003f, 0xe0e8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe0ea, 0xced6, 0xb6d7, 0xc8fc, 0xc7ca, 0x003f, - 0x003f, 0x003f, 0xe0eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ed, - 0x003f, 0xe0f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ec, 0x003f, 0x003f, - 0x003f, 0xe0ef, 0xb8ea, 0xb1cd, 0xe0f1, 0x003f, 0xbff0, 0xe0ee, - 0xcedc, 0x003f, 0x003f, 0xe0f4, 0xf4a4, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe0f2, 0xe0f5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e7, - 0xe0f3, 0x003f, 0x003f, 0xbabc, 0x003f, 0x003f, 0xe0f6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f7, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcdfe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0f8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f9, 0x003f, - 0x003f, 0x003f, 0xe0e5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fa, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb4c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbca5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe0fb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fc, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb1bb, 0x003f, 0x003f, 0x003f, - 0xe1a1, 0x003f, 0xc9bb, 0xe1a2, 0x003f, 0x003f, 0xb4a4, 0xe1a3, - 0x003f, 0xe1a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a5, 0x003f, - 0xe1a7, 0xe1a8, 0xe1a6, 0x003f, 0x003f, 0x003f, 0xc9d3, 0xe1aa, - 0xe1a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7500 .. 0x75ff */ - 0x003f, 0x003f, 0x003f, 0xe1ac, 0xe1ab, 0xe1ad, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ae, 0xe1b0, 0xe1af, 0x003f, - 0x003f, 0xb9f9, 0x003f, 0xe1b2, 0x003f, 0xe1b1, 0x003f, 0x003f, - 0xb4c5, 0x003f, 0xbfd3, 0x003f, 0xc5bc, 0x003f, 0xe1b3, 0xc0b8, - 0x003f, 0x003f, 0x003f, 0xbbba, 0x003f, 0xb1f9, 0xe1b4, 0x003f, - 0xcdd1, 0x003f, 0x003f, 0xcae3, 0xe1b5, 0x003f, 0x003f, 0x003f, - 0xc5c4, 0xcdb3, 0xb9c3, 0xbfbd, 0x003f, 0x003f, 0x003f, 0xc3cb, - 0xd2b4, 0x003f, 0xc4ae, 0xb2e8, 0xe1b6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1b7, 0x003f, 0xe1bc, 0x003f, - 0x003f, 0xe1ba, 0xe1b9, 0xdac2, 0xb3a6, 0xe1b8, 0x003f, 0xb0da, - 0x003f, 0xc8aa, 0x003f, 0x003f, 0xc8ca, 0x003f, 0x003f, 0x003f, - 0x003f, 0xceb1, 0xe1bd, 0xe1bb, 0xc3dc, 0xc0a6, 0x003f, 0x003f, - 0xc8ab, 0x003f, 0xc9ad, 0x003f, 0xe1bf, 0xceac, 0xb7cd, 0xe1c0, - 0x003f, 0xe1be, 0xc8d6, 0xe1c1, 0x003f, 0xe1c2, 0x003f, 0x003f, - 0xb0db, 0x003f, 0x003f, 0xbef6, 0xe1c7, 0x003f, 0xe1c4, 0xc6ed, - 0xe1c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5a6, - 0x003f, 0x003f, 0xe1ca, 0x003f, 0x003f, 0x003f, 0xe1c5, 0xe1c6, - 0x003f, 0xe1c9, 0xe1c8, 0xc9a5, 0x003f, 0x003f, 0xc1c2, 0xc1c1, - 0x003f, 0xb5bf, 0x003f, 0x003f, 0xe1cb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1cc, 0x003f, 0x003f, 0xe1cd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe1cf, 0x003f, 0xe1ce, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb1d6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe1d7, 0xc8e8, 0xe1d1, 0x003f, 0xe1d3, 0x003f, 0x003f, - 0xe1d5, 0xbfbe, 0x003f, 0x003f, 0xe1d6, 0xe1d4, 0xbcc0, 0x003f, - 0x003f, 0x003f, 0xe1d0, 0xe1d2, 0x003f, 0xc9c2, 0x003f, 0xbec9, - 0x003f, 0x003f, 0xe1d9, 0x003f, 0x003f, 0xe1d8, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1da, 0x003f, 0xbca6, 0xbaaf, 0x003f, 0x003f, - 0xc5f7, 0xe1db, 0x003f, 0xc4cb, 0x003f, 0x003f, 0xe1dd, 0x003f, - 0x003f, 0x003f, 0xcea1, 0xe1dc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc1e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1e2, 0x003f, 0xe1e4, 0xe1e5, 0xc3d4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1e3, 0x003f, 0xe1e0, 0x003f, 0xe1de, 0xe1df, - /* 0x7600 .. 0x76ff */ - 0x003f, 0xe1e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe1e8, 0x003f, 0xe1e6, 0x003f, 0xe1e7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e9, - 0xe1eb, 0xe1ec, 0xe1ed, 0x003f, 0xe1ee, 0x003f, 0x003f, 0xe1ea, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1f0, 0x003f, 0x003f, 0x003f, 0xe1ef, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe1f1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcec5, 0x003f, 0x003f, 0x003f, 0xe1f4, 0xe1f2, - 0xe1f3, 0x003f, 0x003f, 0x003f, 0xb4e2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xccfe, 0x003f, 0x003f, 0x003f, 0xcaca, 0x003f, - 0xe1f6, 0x003f, 0x003f, 0x003f, 0xe1f5, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe1f7, 0xe1f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1fc, - 0xe1f9, 0xe1fa, 0xe1fb, 0x003f, 0xe1fd, 0x003f, 0x003f, 0x003f, - 0xe1fe, 0x003f, 0xe2a1, 0x003f, 0x003f, 0x003f, 0xe2a2, 0x003f, - 0xe2a3, 0x003f, 0xc8af, 0xc5d0, 0xe2a4, 0xc7f2, 0xc9b4, 0x003f, - 0xe2a5, 0x003f, 0x003f, 0xe2a6, 0xc5aa, 0x003f, 0xb3a7, 0xb9c4, - 0xe2a7, 0x003f, 0x003f, 0xe2a8, 0x003f, 0x003f, 0xe2a9, 0x003f, - 0xbba9, 0x003f, 0x003f, 0xe2ab, 0x003f, 0x003f, 0xe2aa, 0x003f, - 0x003f, 0xe2ac, 0xe2ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8e9, 0x003f, - 0xe2ae, 0x003f, 0x003f, 0x003f, 0xe2af, 0x003f, 0x003f, 0xf3e9, - 0xe2b0, 0xe2b1, 0xe2b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbae, - 0x003f, 0x003f, 0xe2b3, 0xc7d6, 0x003f, 0x003f, 0xcbdf, 0x003f, - 0xb1ce, 0x003f, 0xb1d7, 0x003f, 0x003f, 0xe2b4, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe2b6, 0x003f, 0x003f, 0x003f, 0xe2b5, 0xc5f0, - 0x003f, 0x003f, 0x003f, 0xc0b9, 0xddb9, 0x003f, 0xe2b7, 0xccc1, - 0x003f, 0xe2b8, 0x003f, 0xb4c6, 0xc8d7, 0xe2b9, 0x003f, 0xe2ba, - 0x003f, 0x003f, 0xe2bb, 0x003f, 0x003f, 0x003f, 0xccdc, 0x003f, - 0x003f, 0x003f, 0xccd5, 0x003f, 0xc4be, 0x003f, 0x003f, 0x003f, - 0xc1ea, 0x003f, 0x003f, 0xe2bd, 0x003f, 0x003f, 0xbde2, 0x003f, - /* 0x7700 .. 0x77ff */ - 0x003f, 0xbeca, 0x003f, 0x003f, 0xe2c0, 0x003f, 0x003f, 0xe2bf, - 0xe2be, 0xc8fd, 0x003f, 0xb4c7, 0xb8a9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2c6, 0x003f, 0x003f, 0xe2c3, 0xbfbf, - 0xccb2, 0x003f, 0x003f, 0x003f, 0xe2c2, 0xe2c4, 0xe2c5, 0x003f, - 0x003f, 0xe2c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c7, - 0xe2c8, 0x003f, 0xc4af, 0x003f, 0xb4e3, 0x003f, 0x003f, 0x003f, - 0xc3e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe2ca, 0xe2cd, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbfe7, 0x003f, 0xc6c4, 0x003f, 0xe2ce, 0xcbd3, 0x003f, - 0xe2cb, 0x003f, 0x003f, 0xe2cc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d0, 0xe2cf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2d3, 0x003f, 0x003f, 0xe2d2, 0x003f, - 0x003f, 0xe2d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d6, 0x003f, - 0xe2d5, 0x003f, 0x003f, 0x003f, 0x003f, 0xcacd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbdd6, 0xcec6, 0x003f, 0x003f, - 0xe2d7, 0x003f, 0x003f, 0xc6b7, 0x003f, 0x003f, 0xe2d8, 0x003f, - 0x003f, 0xe2d9, 0x003f, 0xe2dd, 0xe2db, 0xe2dc, 0x003f, 0xe2da, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2de, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2df, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2e0, - 0x003f, 0x003f, 0xe2e1, 0xccb7, 0xe2e2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xccf0, 0xe2e3, 0x003f, 0xc3ce, 0x003f, 0xc7ea, - 0x003f, 0xb6eb, 0x003f, 0x003f, 0x003f, 0xc3bb, 0xe2e4, 0xb6ba, - 0x003f, 0x003f, 0x003f, 0xc0d0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2e5, 0x003f, 0x003f, 0x003f, - /* 0x7800 .. 0x78ff */ - 0x003f, 0x003f, 0xbabd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2e6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe2e7, 0x003f, 0xb8a6, 0xbad5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2e9, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5d6, 0xbad6, 0xb5ce, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcba4, 0x003f, 0xc7cb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc5d7, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9dc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2eb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbecb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xceb2, 0xb9c5, 0x003f, 0x003f, 0xb8a7, - 0x003f, 0x003f, 0xc8a3, 0x003f, 0xe2ed, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ef, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb8eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ee, 0xc4f6, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f1, 0xb3b7, 0xe2ec, 0x003f, - 0x003f, 0xc8ea, 0x003f, 0xb1b0, 0x003f, 0xbaec, 0x003f, 0xcfd2, - 0x003f, 0x003f, 0xe2f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2f2, 0x003f, 0x003f, 0x003f, 0xcacb, - 0x003f, 0xc0d9, 0xe2f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb3ce, 0x003f, 0xe2fb, 0x003f, 0xe2fa, 0x003f, - 0x003f, 0xbca7, 0x003f, 0x003f, 0x003f, 0xe2fc, 0xe2f7, 0x003f, - 0x003f, 0x003f, 0xe2fd, 0xe2f8, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc8d8, 0xe2f6, 0x003f, 0x003f, 0xe2f9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a1, - 0xcbe1, 0x003f, 0x003f, 0x003f, 0xe2fe, 0x003f, 0x003f, 0xb0eb, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a3, 0x003f, 0x003f, - /* 0x7900 .. 0x79ff */ - 0x003f, 0xbecc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1c3, 0x003f, - 0x003f, 0xe3a7, 0xe3a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2e8, 0x003f, - 0x003f, 0x003f, 0xe2ea, 0xe3aa, 0xe3a9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbca8, 0x003f, 0xcee9, 0x003f, 0xbcd2, 0x003f, - 0xe3ab, 0xb7b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5c0, - 0xb5a7, 0xbbe3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcdb4, 0x003f, 0x003f, 0xe3b1, 0x003f, 0xe3b0, 0xc1c4, 0xe3ad, - 0x003f, 0x003f, 0xe3af, 0x003f, 0x003f, 0xbdcb, 0xbfc0, 0xe3ae, - 0xe3ac, 0x003f, 0xc7aa, 0x003f, 0x003f, 0xbecd, 0x003f, 0x003f, - 0xc9bc, 0x003f, 0x003f, 0x003f, 0x003f, 0xbad7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5f8, - 0x003f, 0x003f, 0xe3b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b3, - 0xe3c9, 0xb6d8, 0x003f, 0x003f, 0xcfbd, 0xc1b5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3b4, 0x003f, 0x003f, 0xb2d2, 0xc4f7, 0xcaa1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5fa, 0xe3b6, - 0x003f, 0x003f, 0xe3b8, 0x003f, 0x003f, 0x003f, 0xe3b9, 0x003f, - 0xc7a9, 0x003f, 0x003f, 0xe3ba, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3bb, 0xe3bc, 0x003f, 0x003f, 0xb6d9, 0xb2d3, 0xc6c5, - 0xbda8, 0xbbe4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3bd, 0x003f, 0xbda9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb2ca, 0xc9c3, 0x003f, 0x003f, 0xe3be, 0x003f, 0x003f, - 0xc8eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1c5, - 0x003f, 0xe3c1, 0x003f, 0xe3c2, 0xc7e9, 0x003f, 0xbfc1, 0xe3bf, - 0x003f, 0xc3e1, 0x003f, 0x003f, 0xe3c0, 0x003f, 0x003f, 0x003f, - 0xbece, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb0dc, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7a00 .. 0x7aff */ - 0xb5a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe3c3, 0x003f, 0x003f, 0xc4f8, 0x003f, 0xe3c4, 0xc0c7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xccad, 0x003f, 0x003f, 0xc9a3, - 0xe3c5, 0xe3c6, 0xc3d5, 0x003f, 0xcec7, 0x003f, 0x003f, 0xe3c8, - 0xe3c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcef, 0x003f, - 0x003f, 0xe3ca, 0xb0f0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3cd, - 0x003f, 0x003f, 0x003f, 0xe3cb, 0xb2d4, 0xb7ce, 0xe3cc, 0xb9c6, - 0xb9f2, 0x003f, 0xcae6, 0xe3ce, 0x003f, 0x003f, 0xcbd4, 0x003f, - 0x003f, 0xe3d0, 0x003f, 0x003f, 0x003f, 0xc0d1, 0xb1cf, 0xb2ba, - 0xb0ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3cf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3d1, 0xe3d2, 0xbef7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3d3, 0x003f, 0xb3cf, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe3d5, 0x003f, 0x003f, 0x003f, 0xb7ea, 0x003f, 0xb5e6, 0x003f, - 0x003f, 0xe3d6, 0xb6f5, 0x003f, 0x003f, 0xe3d7, 0x003f, 0xc0fc, - 0x003f, 0xc6cd, 0x003f, 0xc0e0, 0xbaf5, 0x003f, 0x003f, 0x003f, - 0xe3d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc3e2, 0xc1eb, 0x003f, 0xe3da, 0xe3dc, 0xe3d9, - 0xe3db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7a2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3dd, 0xb7a6, 0x003f, 0x003f, 0x003f, 0xb5e7, 0xcdd2, - 0xe3df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3e0, 0x003f, - 0x003f, 0x003f, 0xb1ae, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3e3, - 0x003f, 0x003f, 0x003f, 0xb3f6, 0xe3e2, 0xe3e1, 0x003f, 0xe3e5, - 0xe3de, 0x003f, 0xe3e6, 0xcea9, 0x003f, 0xe3e7, 0x003f, 0xe3e8, - 0x003f, 0x003f, 0xd4f4, 0xe3ea, 0x003f, 0xe3e9, 0x003f, 0x003f, - 0x003f, 0xe3eb, 0xe3ec, 0x003f, 0xceb5, 0xe3ed, 0x003f, 0xf0ef, - 0xbecf, 0xe3ee, 0xe3ef, 0xbdd7, 0x003f, 0xc6b8, 0xe3f0, 0x003f, - 0x003f, 0x003f, 0xc3a8, 0x003f, 0x003f, 0xe3f1, 0x003f, 0xc3bc, - 0xe3f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6a5, 0x003f, - 0xd1bf, 0xc3dd, 0xbcb3, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4c8, - /* 0x7b00 .. 0x7bff */ - 0x003f, 0x003f, 0xe3f3, 0x003f, 0xe4a2, 0x003f, 0xe3f6, 0x003f, - 0xb5e8, 0x003f, 0xe3f5, 0xe4a4, 0x003f, 0x003f, 0x003f, 0xe3f4, - 0x003f, 0xbed0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe3f8, 0xe3f9, 0x003f, 0xc5ab, 0x003f, 0x003f, 0xe3fa, 0x003f, - 0xb3de, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfda, 0xc9e4, 0x003f, - 0xe3fc, 0x003f, 0x003f, 0x003f, 0xc2e8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe3f7, 0x003f, 0xe3fb, 0xe3fd, 0x003f, - 0x003f, 0xbafb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a6, 0xc9ae, 0x003f, - 0xc8a6, 0xc5f9, 0x003f, 0xb6da, 0xe4a5, 0xe4a3, 0x003f, 0xc8b5, - 0xe3fe, 0xc3de, 0xc5fb, 0x003f, 0xc5fa, 0x003f, 0xbaf6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4b8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a8, 0x003f, 0xe4aa, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ad, 0x003f, 0xe4ae, 0x003f, - 0xe4ab, 0xe4ac, 0x003f, 0x003f, 0xe4a9, 0xe4a7, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe4a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcacf, 0xb2d5, - 0x003f, 0x003f, 0x003f, 0xe4b5, 0x003f, 0xe4b2, 0x003f, 0xe4b7, - 0x003f, 0x003f, 0xe4b6, 0x003f, 0xc7f3, 0xcca7, 0x003f, 0xbbbb, - 0xe4b0, 0xe4b9, 0xe4b4, 0x003f, 0xe4b3, 0xe4af, 0x003f, 0xe4b1, - 0x003f, 0xb4c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc3bd, 0x003f, 0x003f, 0xc0fd, 0x003f, 0x003f, - 0x003f, 0xc8a2, 0x003f, 0x003f, 0xe4be, 0x003f, 0x003f, 0x003f, - 0xc8a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc0e1, 0xe4bb, 0x003f, 0x003f, 0xc8cf, 0x003f, 0xe4bf, 0xcad3, - 0x003f, 0xc3db, 0x003f, 0xe4ba, 0xe4bc, 0x003f, 0x003f, 0xe4bd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4c0, 0x003f, 0x003f, - 0xbcc4, 0x003f, 0x003f, 0x003f, 0xc6c6, 0xe4c5, 0xe4c4, 0x003f, - 0x003f, 0xe4c1, 0x003f, 0x003f, 0x003f, 0xcfb6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4ca, 0x003f, 0x003f, 0xe4ce, 0xe4cb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7c00 .. 0x7cff */ - 0xe4c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4c8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4cd, 0x003f, 0x003f, - 0x003f, 0xe4c2, 0xd2d5, 0xe4c9, 0xe4c3, 0x003f, 0x003f, 0xe4cc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d2, - 0x003f, 0xb4ca, 0x003f, 0xe4cf, 0x003f, 0x003f, 0x003f, 0xe4d0, - 0x003f, 0x003f, 0xe4d1, 0xe4d4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d3, - 0xc8f6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d5, 0xcefc, 0xcaed, - 0xe4da, 0x003f, 0x003f, 0xe4d7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d6, 0xc0d2, 0x003f, 0xe4d9, - 0xe4db, 0x003f, 0x003f, 0x003f, 0xe4d8, 0x003f, 0xe4df, 0x003f, - 0xe4dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4dd, - 0xe4c6, 0x003f, 0x003f, 0x003f, 0xe4de, 0xe4e0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe4e1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcac6, 0x003f, 0xe4e2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcce2, 0x003f, - 0x003f, 0xb6ce, 0xb7a9, 0xe4e3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcab4, 0x003f, 0xbfe8, 0x003f, 0xccb0, 0x003f, 0x003f, - 0xe4e4, 0x003f, 0xceb3, 0x003f, 0x003f, 0xc7f4, 0x003f, 0xc1c6, - 0xc7b4, 0x003f, 0x003f, 0xbdcd, 0x003f, 0x003f, 0x003f, 0xb0c0, - 0x003f, 0xe4e9, 0xe4e7, 0x003f, 0xe4e5, 0xb4a1, 0x003f, 0xbed1, - 0xe4ea, 0x003f, 0x003f, 0xe4e8, 0x003f, 0xe4e6, 0xe4ee, 0x003f, - 0x003f, 0xe4ed, 0xe4ec, 0xe4eb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe4ef, 0x003f, 0x003f, 0x003f, 0xe4f0, 0xc0ba, 0x003f, - 0xe4f1, 0x003f, 0xe4f3, 0x003f, 0x003f, 0xe4f2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb8d2, 0x003f, 0x003f, 0x003f, 0xc1b8, 0x003f, - 0x003f, 0x003f, 0xe4f5, 0x003f, 0x003f, 0x003f, 0xc5fc, 0x003f, - 0xe4f4, 0x003f, 0x003f, 0x003f, 0xe4f6, 0x003f, 0xcab5, 0xc1ec, - 0xb9c7, 0x003f, 0xe4f7, 0x003f, 0x003f, 0x003f, 0x003f, 0xcec8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f9, - 0x003f, 0x003f, 0xe4fa, 0x003f, 0xe4fb, 0x003f, 0xe4fc, 0x003f, - 0xbbe5, 0x003f, 0xe4fd, 0xb7cf, 0x003f, 0x003f, 0xb5ea, 0x003f, - /* 0x7d00 .. 0x7dff */ - 0xb5aa, 0x003f, 0xe5a1, 0x003f, 0xccf3, 0xb9c8, 0xe4fe, 0x003f, - 0x003f, 0x003f, 0xe5a4, 0xcce6, 0x003f, 0xc7bc, 0x003f, 0x003f, - 0xc9b3, 0x003f, 0x003f, 0x003f, 0xbde3, 0xe5a3, 0x003f, 0xbcd3, - 0xb9c9, 0xbbe6, 0xb5e9, 0xcab6, 0xe5a2, 0x003f, 0x003f, 0x003f, - 0xc1c7, 0xcbc2, 0xbaf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbbe7, 0xc4dd, 0x003f, 0xe5a7, 0xcedf, - 0xbad9, 0x003f, 0xe5a8, 0xbfc2, 0x003f, 0xe5aa, 0x003f, 0x003f, - 0x003f, 0xbed2, 0xbab0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a9, - 0x003f, 0x003f, 0xbdaa, 0xb8be, 0xc1c8, 0xe5a5, 0xe5ab, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5a6, 0xb7d0, 0x003f, 0xe5ae, 0xe5b2, - 0xb7eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ad, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5b6, 0x003f, 0x003f, 0xb9ca, 0x003f, - 0x003f, 0xcded, 0xb0bc, 0xe5b3, 0x003f, 0x003f, 0xb5eb, 0x003f, - 0xe5b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b1, 0x003f, - 0x003f, 0xc5fd, 0xe5af, 0xe5ac, 0x003f, 0xb3a8, 0xc0e4, 0x003f, - 0x003f, 0xb8a8, 0x003f, 0x003f, 0x003f, 0xe5b8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe5b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b7, - 0x003f, 0x003f, 0x003f, 0xe5b4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb7d1, 0xc2b3, 0xe5b9, 0xc1ee, 0x003f, 0x003f, 0xe5c6, - 0x003f, 0x003f, 0xe5c2, 0xe5bc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5c0, 0xbcfa, 0xb0dd, 0xe5bb, 0xe5c3, - 0xe5c7, 0xb9cb, 0xccd6, 0x003f, 0xc4d6, 0xe5bd, 0x003f, 0x003f, - 0xe5c5, 0x003f, 0xe5ba, 0xc3be, 0x003f, 0xe5bf, 0xb0bd, 0xccca, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5be, - 0x003f, 0x003f, 0xb6db, 0xc8ec, 0x003f, 0x003f, 0x003f, 0xc1ed, - 0x003f, 0xced0, 0xbdef, 0x003f, 0x003f, 0xe5ee, 0x003f, 0x003f, - 0xe5c8, 0x003f, 0xc0fe, 0x003f, 0xe5c4, 0xe5c9, 0xe5cb, 0x003f, - 0xc4f9, 0xe5ce, 0x003f, 0x003f, 0xe5ca, 0x003f, 0x003f, 0x003f, - 0xcad4, 0xb4cb, 0x003f, 0x003f, 0xcccb, 0x003f, 0x003f, 0xb0de, - 0x003f, 0x003f, 0xe5cd, 0x003f, 0xcefd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5cc, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7e00 .. 0x7eff */ - 0x003f, 0xb1ef, 0x003f, 0x003f, 0xc6ec, 0xe5cf, 0x003f, 0x003f, - 0x003f, 0xe5d6, 0xe5d0, 0xe5d7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc7fb, 0x003f, 0x003f, 0xbcca, 0xe5d5, - 0x003f, 0xe5d2, 0xe5d8, 0xe5d1, 0x003f, 0x003f, 0xbdc4, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcba5, 0x003f, 0x003f, 0xbdcc, 0x003f, - 0x003f, 0xe5d4, 0xe5e0, 0x003f, 0x003f, 0xe5dc, 0x003f, 0xe5df, - 0x003f, 0xe5dd, 0xe5e1, 0xe5db, 0x003f, 0xe5c1, 0xc0d3, 0x003f, - 0x003f, 0xc8cb, 0x003f, 0xe5de, 0x003f, 0x003f, 0xe5d9, 0x003f, - 0x003f, 0x003f, 0xc1a1, 0xb7d2, 0x003f, 0xbdab, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbfa5, 0xc1b6, 0xe5e4, 0x003f, - 0x003f, 0xe5e6, 0xe5e7, 0x003f, 0x003f, 0xe5e3, 0xe5e5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5da, 0xe5e2, - 0x003f, 0xe5ea, 0xe5e9, 0x003f, 0x003f, 0xcbfa, 0x003f, 0x003f, - 0xb7ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe5e8, 0x003f, 0xe5ec, 0xe5eb, 0xe5ef, 0x003f, 0xe5f1, - 0x003f, 0x003f, 0xbbbc, 0xe5ed, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe5f2, 0xe5f3, 0x003f, 0x003f, 0xe5f4, 0x003f, 0xe5fa, 0xc5bb, - 0xe5f6, 0x003f, 0xe5f5, 0xe5f7, 0xe5f8, 0x003f, 0xe5f9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5fb, 0xe5fc, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7f00 .. 0x7fff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4cc, 0x003f, - 0xe5fd, 0x003f, 0xe5fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a2, 0xe6a3, 0xe6a4, 0x003f, - 0xe6a5, 0xe6a6, 0x003f, 0x003f, 0xe6a8, 0xe6a7, 0x003f, 0x003f, - 0xe6a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6aa, - 0xe6ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ae, - 0xe6ac, 0xe6ad, 0xbae1, 0xb7d3, 0x003f, 0x003f, 0xc3d6, 0x003f, - 0xc8b3, 0x003f, 0xbdf0, 0x003f, 0x003f, 0xc7cd, 0x003f, 0xc8ed, - 0xe6af, 0xd8ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6b0, 0xe6b2, 0x003f, 0xcde5, 0xe6b1, 0xe6b4, - 0xe6b3, 0x003f, 0xcdd3, 0x003f, 0xe6b5, 0x003f, 0xc8fe, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6b9, 0x003f, 0x003f, 0xe6b8, 0xe6b7, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6ba, 0xb7b2, 0x003f, 0x003f, 0x003f, - 0xc1a2, 0xb5c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6be, 0xe6bb, - 0x003f, 0x003f, 0xe6bc, 0x003f, 0x003f, 0x003f, 0xe6bf, 0x003f, - 0xe6c0, 0xe6bd, 0x003f, 0x003f, 0x003f, 0xb1a9, 0x003f, 0x003f, - 0x003f, 0xb2a7, 0x003f, 0x003f, 0x003f, 0xe6c2, 0xe6c3, 0x003f, - 0x003f, 0x003f, 0xe6c4, 0x003f, 0xcde2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbdac, 0x003f, 0xe6c6, 0xe6c5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbfe9, 0xe6c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6c8, 0x003f, - 0x003f, 0xe6c9, 0x003f, 0xb4e5, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb4cd, 0x003f, 0x003f, 0xe6ca, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6cb, 0x003f, 0xcbdd, 0xcde3, 0x003f, 0x003f, 0x003f, - /* 0x8000 .. 0x80ff */ - 0xcdd4, 0xcfb7, 0x003f, 0xb9cd, 0xe6ce, 0xbcd4, 0xe6cd, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6cf, 0xbca9, 0x003f, 0x003f, 0x003f, - 0xc2d1, 0x003f, 0xe6d0, 0x003f, 0x003f, 0xb9cc, 0x003f, 0xccd7, - 0xe6d1, 0xe6d2, 0x003f, 0x003f, 0xe6d3, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbcaa, 0x003f, 0x003f, 0xcced, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6d7, 0x003f, 0xc3bf, 0x003f, 0xe6d6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d9, 0x003f, - 0x003f, 0x003f, 0xe6d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6da, 0x003f, 0x003f, 0x003f, 0xc0bb, 0x003f, - 0xe6db, 0x003f, 0xe6dc, 0x003f, 0x003f, 0x003f, 0xcab9, 0xe6dd, - 0x003f, 0xc1ef, 0xe6de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcefe, - 0xe6e2, 0x003f, 0xe6e1, 0xe6e0, 0xc4b0, 0x003f, 0xe6e3, 0xbfa6, - 0x003f, 0xe6e4, 0x003f, 0x003f, 0x003f, 0xe6e5, 0xcfb8, 0xe6e6, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e7, 0xe6e9, 0xe6e8, 0xc8a5, - 0x003f, 0xc6f9, 0x003f, 0xcfbe, 0xc8a9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6eb, 0x003f, 0x003f, 0xbed3, 0x003f, - 0xc9aa, 0x003f, 0xe6ec, 0xe6ea, 0x003f, 0xb4ce, 0x003f, 0x003f, - 0x003f, 0xb8d4, 0xbbe8, 0x003f, 0x003f, 0xc8ee, 0x003f, 0x003f, - 0x003f, 0xb8aa, 0xcbc3, 0x003f, 0xe6ef, 0xe6ed, 0x003f, 0xb9ce, - 0x003f, 0xb9cf, 0xb0e9, 0x003f, 0xbae8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc7d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb0df, 0xe6f4, 0x003f, 0xc3c0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc7d8, 0x003f, 0xc2db, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f6, 0x003f, - 0x003f, 0xe6f2, 0xe6f5, 0xe6f0, 0x003f, 0xe6f3, 0xcba6, 0x003f, - 0x003f, 0xb8d5, 0x003f, 0x003f, 0xb0fd, 0xe6f1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f8, - 0x003f, 0xe6f9, 0x003f, 0x003f, 0xc6b9, 0x003f, 0x003f, 0x003f, - 0xb6bb, 0x003f, 0x003f, 0x003f, 0xe7a6, 0xc7bd, 0x003f, 0x003f, - /* 0x8100 .. 0x81ff */ - 0x003f, 0x003f, 0xbbe9, 0x003f, 0x003f, 0xb6bc, 0xc0c8, 0xcfc6, - 0xccae, 0xe6f7, 0xc0d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb5d3, 0xe6fa, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6fc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6fd, - 0x003f, 0xc3a6, 0x003f, 0xc7be, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc4b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a2, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6fe, 0x003f, 0x003f, 0xbfd5, 0x003f, - 0xc9e5, 0xe7a5, 0x003f, 0xe7a4, 0xb9d0, 0xcfd3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a9, 0xe7aa, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbcf0, 0x003f, 0x003f, 0xe7a8, 0x003f, - 0xb9f8, 0xe7a7, 0x003f, 0x003f, 0xe7ab, 0x003f, 0x003f, 0x003f, - 0xc4b2, 0xcaa2, 0xc1a3, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2dc, - 0xe7af, 0x003f, 0xe7b0, 0xe7ac, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7ad, 0x003f, 0xe7ae, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9d1, - 0x003f, 0x003f, 0x003f, 0xe7b6, 0x003f, 0xe7b2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc9e6, 0x003f, 0xcbec, 0xc9a8, 0x003f, 0x003f, - 0xe7b1, 0x003f, 0x003f, 0xe7b4, 0xe7b3, 0x003f, 0x003f, 0x003f, - 0xcbc4, 0xe7b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7b8, 0x003f, 0x003f, 0xc1b7, 0x003f, 0xe7b9, 0x003f, 0x003f, - 0xe7bb, 0x003f, 0xe7bf, 0x003f, 0x003f, 0xe7bc, 0xe7ba, 0xc7bf, - 0xe7bd, 0x003f, 0xe7be, 0x003f, 0x003f, 0x003f, 0xb2b2, 0x003f, - 0xe7c5, 0xe7c0, 0x003f, 0x003f, 0x003f, 0xe7c1, 0x003f, 0x003f, - 0x003f, 0xe7c2, 0x003f, 0xc2a1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7c4, 0xe7c3, 0xe7c6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7c7, - 0xe7c8, 0x003f, 0x003f, 0xbfc3, 0x003f, 0xb2e9, 0x003f, 0xe7c9, - 0xced7, 0x003f, 0xbcab, 0x003f, 0x003f, 0xbdad, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbbea, 0xc3d7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7ca, 0xe7cb, 0xb1b1, 0x003f, 0xe7cc, 0x003f, - /* 0x8200 .. 0x82ff */ - 0x003f, 0xe7cd, 0xe7ce, 0x003f, 0x003f, 0xe7cf, 0x003f, 0xe7d0, - 0xb6bd, 0xdaaa, 0xe7d1, 0x003f, 0xc0e5, 0xe7d2, 0xbccb, 0x003f, - 0xe7d3, 0x003f, 0xd0b0, 0x003f, 0x003f, 0x003f, 0xe7d4, 0xcade, - 0xb4dc, 0x003f, 0x003f, 0xc1a4, 0xbdd8, 0x003f, 0xc9f1, 0xbdae, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe7d5, 0xb9d2, 0xe7d6, 0xc8cc, 0x003f, 0xe7e4, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe7d8, 0x003f, 0xc2c9, 0xc7f5, 0xb8bf, - 0xe7d7, 0xc1a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4fa, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7db, 0xe7da, 0xe7dd, 0x003f, 0x003f, 0xe7dc, 0x003f, 0xe7de, - 0x003f, 0x003f, 0xe7e0, 0x003f, 0xe7df, 0x003f, 0xb4cf, 0x003f, - 0xe7e1, 0x003f, 0xe7e2, 0xe7e3, 0x003f, 0x003f, 0xbab1, 0xcec9, - 0x003f, 0xe7e5, 0xbfa7, 0x003f, 0x003f, 0x003f, 0xb1f0, 0xe7e6, - 0xe7e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb0f2, 0x003f, 0xe7e9, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc9e7, 0x003f, 0x003f, 0x003f, 0xbcc7, 0x003f, 0xe7ec, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3a9, 0xb0b2, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe7eb, 0xe7ee, 0xc7ce, 0x003f, 0xbfc4, - 0x003f, 0xb2d6, 0x003f, 0xcba7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb7dd, 0xb6dc, 0x003f, 0xe7ed, 0x003f, 0xb2ea, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4a3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb1f1, 0xe7f2, 0xceea, 0xc2dd, 0x003f, 0x003f, 0xc9c4, - 0x003f, 0xe7fe, 0x003f, 0xb2d7, 0xe7fc, 0x003f, 0xe7fa, 0xe7f1, - 0x003f, 0xe7ef, 0x003f, 0xe7f0, 0x003f, 0xbce3, 0xb6ec, 0xc3f7, - 0x003f, 0x003f, 0x003f, 0xc6d1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb1d1, 0x003f, 0xe7f4, 0xe7f3, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe7f9, 0xe7f5, 0xe7f8, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8300 .. 0x83ff */ - 0x003f, 0x003f, 0xccd0, 0xe7f7, 0xb2d8, 0xb3fd, 0xe7fb, 0x003f, - 0x003f, 0xe7fd, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7d4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a3, 0xe8ac, - 0xe8ad, 0x003f, 0x003f, 0x003f, 0xb0ab, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8b4, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb0f1, 0x003f, 0x003f, 0xe8ab, 0x003f, 0x003f, 0x003f, 0xe8aa, - 0x003f, 0xe8a5, 0xe8a4, 0x003f, 0xe8a2, 0xe8a1, 0xc3e3, 0x003f, - 0xc2fb, 0xe8a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe8a6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a9, 0x003f, 0x003f, - 0x003f, 0xc1f0, 0xb7d5, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1c1, - 0xe8a8, 0x003f, 0xb9d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc1f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8ba, 0x003f, 0xe8bb, 0x003f, 0xb2d9, - 0x003f, 0x003f, 0x003f, 0xb2ae, 0xe8b8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ae, 0x003f, 0xe8b6, - 0x003f, 0xe8bd, 0xe8b7, 0x003f, 0x003f, 0x003f, 0xe8b5, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe7f6, 0x003f, 0x003f, 0xe8b3, 0x003f, - 0x003f, 0x003f, 0xe8af, 0x003f, 0x003f, 0x003f, 0xb4d0, 0xe8b1, - 0xe8bc, 0x003f, 0xe8b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe8be, 0x003f, 0xe8b0, 0xc7fc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcde9, 0x003f, 0x003f, 0x003f, 0xe8b9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8cf, 0x003f, 0x003f, - 0x003f, 0xe8c7, 0x003f, 0x003f, 0x003f, 0xbffb, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb5c6, 0x003f, 0xb6dd, 0x003f, 0xe8c2, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb2db, 0x003f, 0x003f, 0xbed4, 0x003f, - 0xe8c5, 0x003f, 0x003f, 0x003f, 0xbada, 0x003f, 0x003f, 0xc5d1, - 0xe8ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcaee, 0x003f, 0xe8c1, 0x003f, 0x003f, 0x003f, 0xb2da, - 0xb8d6, 0xc9a9, 0xe8cb, 0x003f, 0xe8bf, 0x003f, 0x003f, 0xe8c8, - 0x003f, 0x003f, 0x003f, 0xe8d2, 0x003f, 0xe8c3, 0x003f, 0x003f, - /* 0x8400 .. 0x84ff */ - 0x003f, 0x003f, 0x003f, 0xe8c4, 0xc6ba, 0x003f, 0x003f, 0xe8c9, - 0x003f, 0x003f, 0x003f, 0xe8c6, 0xcba8, 0xe8cc, 0xb0e0, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8c0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe8ce, 0x003f, 0xe8cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc7eb, 0xe8d4, 0x003f, 0xe8df, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb3fe, 0x003f, 0x003f, 0x003f, 0xe8e2, 0x003f, 0x003f, - 0xe8d0, 0x003f, 0x003f, 0x003f, 0xe8d5, 0xcdee, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8de, 0x003f, - 0x003f, 0xcdd5, 0x003f, 0x003f, 0x003f, 0x003f, 0xceaa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3f8, - 0x003f, 0x003f, 0x003f, 0xb3eb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc9f2, 0xe8e4, 0xc6a1, 0x003f, 0x003f, 0xb0b1, 0x003f, - 0x003f, 0xe8dd, 0x003f, 0xe8d9, 0xc1f2, 0xe8d3, 0xe8db, 0xe8e0, - 0x003f, 0xc7ac, 0x003f, 0x003f, 0x003f, 0xb0aa, 0x003f, 0xe8d8, - 0x003f, 0xe8e1, 0xc9f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe8dc, 0x003f, 0xe8d7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbed5, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbdaf, 0x003f, 0x003f, 0x003f, 0xbcac, 0x003f, 0x003f, 0x003f, - 0x003f, 0xccd8, 0x003f, 0x003f, 0xc9c7, 0x003f, 0x003f, 0xe8e7, - 0x003f, 0xe8f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8da, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb3f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbef8, 0xe8e5, 0x003f, 0xe8ea, 0xc1f3, 0x003f, 0x003f, 0xe8e6, - 0x003f, 0xe8ed, 0x003f, 0x003f, 0xc3df, 0x003f, 0xe8ee, 0x003f, - 0x003f, 0xcdd6, 0xe8e3, 0xb3b8, 0x003f, 0xe8e9, 0x003f, 0x003f, - 0xe8ec, 0xccac, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ef, 0x003f, - 0x003f, 0xe8e8, 0xe8eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcba9, 0x003f, 0xcfa1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe8fa, 0x003f, 0x003f, 0xe8f2, - /* 0x8500 .. 0x85ff */ - 0xbcc3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8d1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcace, 0x003f, 0xcca2, 0xe8f9, 0xe8f8, 0x003f, 0xe8f4, - 0xe8f5, 0x003f, 0xb1b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f7, - 0x003f, 0xe8f1, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4d5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f6, 0xb0fe, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2a2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac3, 0x003f, 0x003f, - 0xe8fb, 0xe9a1, 0x003f, 0xc8d9, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe8fe, 0xbed6, 0xbcc9, 0xe9a3, 0x003f, 0x003f, 0xb6be, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a4, 0x003f, 0xc9f9, - 0xe8fd, 0x003f, 0xe8d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8fc, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcfcf, 0xc6a2, 0xc9f3, 0x003f, 0x003f, 0xe9ab, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b2, 0x003f, - 0xe9a5, 0x003f, 0x003f, 0x003f, 0xc7f6, 0x003f, 0x003f, 0xe9af, - 0xe9a7, 0x003f, 0xe9a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9b3, 0xe9a8, 0x003f, 0x003f, 0xe9ac, 0x003f, 0x003f, 0xb1f2, - 0x003f, 0xc6e5, 0x003f, 0xe9ad, 0xe9b0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a6, 0x003f, 0xc1a6, 0x003f, - 0xe9aa, 0xbba7, 0xbfc5, 0xb7b0, 0xccf4, 0x003f, 0xccf9, 0xbdf2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9b7, 0xe9b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcfce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9b4, 0x003f, 0x003f, 0x003f, 0xcdf5, 0x003f, 0xe9b6, - 0xe9b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9bc, 0xe9ba, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc6a3, 0xe9bb, 0x003f, 0x003f, - 0x003f, 0xc8cd, 0xe9ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdf3, - 0x003f, 0xe9bd, 0xe9c2, 0xc1f4, 0x003f, 0x003f, 0xe9c1, 0x003f, - /* 0x8600 .. 0x86ff */ - 0x003f, 0x003f, 0xe9a2, 0x003f, 0x003f, 0x003f, 0xe9c3, 0xc1c9, - 0x003f, 0x003f, 0xe9be, 0xe9c0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe9bf, 0x003f, 0x003f, 0xddb1, 0xdda2, - 0x003f, 0x003f, 0xe9c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdf6, 0x003f, 0xe2bc, - 0xe9c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c8, 0xb8d7, 0x003f, - 0xb5d4, 0x003f, 0x003f, 0x003f, 0xe9ca, 0xd1dd, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb5f5, 0x003f, 0xceba, 0x003f, 0xb6f3, 0xe9cb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9cc, - 0x003f, 0x003f, 0x003f, 0xc3ee, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc6fa, 0x003f, 0xb0ba, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb2e3, 0xe9d2, 0xe9d3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe9ce, 0x003f, 0xbbbd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe9cf, 0xc7c2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9d0, 0xe9d1, 0xe9db, 0x003f, 0x003f, 0x003f, 0xe9d5, - 0xe9d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9d4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9d6, 0x003f, 0xe9d7, 0xbcd8, - 0x003f, 0xe9d9, 0x003f, 0xc3c1, 0x003f, 0xb7d6, 0xb3c2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9dc, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb3bf, 0x003f, 0xe9e1, 0x003f, 0x003f, 0xe9dd, 0xe9e0, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc8ba, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9de, 0x003f, 0x003f, 0xe9df, 0xc9c8, 0xc8da, 0xe9e2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc2fd, 0xe9ec, 0x003f, 0xe9e8, 0x003f, 0x003f, 0xb2eb, 0x003f, - /* 0x8700 .. 0x87ff */ - 0xe9e6, 0x003f, 0xcbaa, 0xe9e7, 0x003f, 0x003f, 0xe9e4, 0x003f, - 0xe9e5, 0xe9ea, 0xe9ed, 0x003f, 0x003f, 0xe9eb, 0x003f, 0x003f, - 0x003f, 0xe9e9, 0xe9e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc3d8, 0x003f, 0xe9f4, 0x003f, 0xccaa, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f2, 0x003f, 0x003f, - 0x003f, 0xe9f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ee, 0x003f, 0x003f, 0xe9f0, - 0x003f, 0x003f, 0x003f, 0xe9f1, 0x003f, 0x003f, 0x003f, 0xe9ef, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc0e6, 0x003f, 0xcfb9, 0xe9f8, 0x003f, 0xe9f9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeaa1, 0x003f, 0xbfaa, 0x003f, 0xe9fb, - 0x003f, 0xe9fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f6, - 0xe9f5, 0x003f, 0x003f, 0xeaa2, 0x003f, 0x003f, 0xb2dc, 0x003f, - 0xe9fc, 0x003f, 0xeaa3, 0x003f, 0x003f, 0x003f, 0xe9fd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9fa, 0x003f, 0xc4b3, 0x003f, - 0xe9f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7e8, - 0x003f, 0x003f, 0xeaa7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdbb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaa6, - 0x003f, 0x003f, 0xeaa5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeaae, 0x003f, 0x003f, 0x003f, 0xeaa8, - 0x003f, 0x003f, 0x003f, 0xeab0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcde6, 0xeab3, 0x003f, 0xeaaa, 0x003f, 0x003f, - 0xeaab, 0x003f, 0x003f, 0x003f, 0xeaaf, 0x003f, 0xeab2, 0xeab1, - 0x003f, 0x003f, 0x003f, 0xeaa9, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeaac, 0x003f, 0xeabd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeab6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeab4, - 0x003f, 0x003f, 0xeab5, 0x003f, 0x003f, 0x003f, 0xeaba, 0xeabb, - 0x003f, 0xb3aa, 0x003f, 0xb5c2, 0x003f, 0x003f, 0xeab9, 0x003f, - /* 0x8800 .. 0x88ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaa4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeab8, 0xeabc, 0xeab7, - 0x003f, 0xeabe, 0x003f, 0x003f, 0x003f, 0xeac0, 0xeabf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeac2, 0xeac1, 0xe9da, 0x003f, 0x003f, 0x003f, 0xeac6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeac3, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac4, 0x003f, - 0x003f, 0xeac5, 0x003f, 0xeac7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb7ec, 0x003f, 0xeac9, 0x003f, 0xeac8, 0x003f, 0xbdb0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb9d4, 0xdea7, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeaca, 0xbdd1, 0x003f, 0x003f, 0x003f, 0xb3b9, - 0x003f, 0xeacb, 0x003f, 0xb1d2, 0x003f, 0xbed7, 0xeacc, 0x003f, - 0x003f, 0xb9d5, 0xeacd, 0xb0e1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc9bd, 0x003f, 0x003f, 0xeace, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbfea, 0x003f, 0xead5, 0x003f, 0x003f, 0xead2, 0x003f, 0xc3ef, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xead3, 0xead0, 0xb6de, - 0x003f, 0xeacf, 0xead6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb7b6, 0x003f, 0x003f, 0xc2de, 0x003f, 0xeadc, 0x003f, 0x003f, - 0x003f, 0x003f, 0xead8, 0x003f, 0x003f, 0x003f, 0xc2b5, 0xead7, - 0x003f, 0xeada, 0x003f, 0x003f, 0x003f, 0x003f, 0xead1, 0x003f, - 0x003f, 0x003f, 0xeadb, 0x003f, 0xeadd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc8ef, 0x003f, 0x003f, 0xead9, 0x003f, - 0xeade, 0xeae0, 0x003f, 0x003f, 0xb8d3, 0xead4, 0x003f, 0xb0c1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeadf, - 0x003f, 0xbadb, 0xcef6, 0xeae1, 0xeae2, 0xc1f5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcea2, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeae3, 0xcdb5, 0x003f, 0x003f, - 0xeae4, 0xeae5, 0x003f, 0x003f, 0xcae4, 0xeae6, 0x003f, 0xbac0, - 0x003f, 0xcea3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeaeb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeaec, 0xbed8, 0xeaea, 0x003f, 0x003f, 0x003f, - 0xcde7, 0xeae7, 0x003f, 0x003f, 0xeae9, 0xc0bd, 0xbffe, 0x003f, - /* 0x8900 .. 0x89ff */ - 0x003f, 0x003f, 0xeae8, 0x003f, 0xeaed, 0x003f, 0x003f, 0xcaa3, - 0x003f, 0x003f, 0xeaef, 0x003f, 0xeaee, 0x003f, 0x003f, 0x003f, - 0xb3ec, 0x003f, 0xcbab, 0xeaf0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeafc, 0xeaf2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaf3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeaf4, 0xeaf5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaf9, 0x003f, - 0xeafa, 0x003f, 0x003f, 0xeaf8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeaf6, 0x003f, 0xeaf1, 0xeaf7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeafb, 0xf0b7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2a8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeafe, 0xb6df, - 0xeafd, 0x003f, 0x003f, 0x003f, 0xeba2, 0x003f, 0xeba1, 0x003f, - 0x003f, 0x003f, 0xeba4, 0x003f, 0x003f, 0xeba3, 0x003f, 0xeba5, - 0x003f, 0x003f, 0xbdb1, 0x003f, 0xeba6, 0x003f, 0x003f, 0xeba7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeba8, 0xc0be, - 0x003f, 0xcdd7, 0x003f, 0xeba9, 0x003f, 0x003f, 0xcaa4, 0xc7c6, - 0xebaa, 0x003f, 0xebab, 0xb8ab, 0x003f, 0x003f, 0x003f, 0xb5ac, - 0x003f, 0x003f, 0x003f, 0xebac, 0x003f, 0x003f, 0xbbeb, 0xc7c1, - 0xebad, 0x003f, 0xb3d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xebae, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb0, 0xcdf7, - 0x003f, 0xebaf, 0xbfc6, 0x003f, 0xebb1, 0x003f, 0x003f, 0xebb2, - 0x003f, 0x003f, 0xebb3, 0xb4d1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xebb4, 0x003f, 0x003f, 0xebb5, 0x003f, 0xebb6, - 0xebb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb3d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xebb8, 0x003f, 0xebb9, 0xebba, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb2f2, 0x003f, 0x003f, 0xbfa8, 0xebbb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xebbc, 0x003f, 0x003f, 0x003f, - 0xebbd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8a00 .. 0x8aff */ - 0xb8c0, 0x003f, 0xc4fb, 0xebbe, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb7d7, 0x003f, 0xbfd6, 0x003f, 0xebc1, 0x003f, 0xc6a4, 0x003f, - 0xebc0, 0x003f, 0x003f, 0xb7b1, 0x003f, 0x003f, 0xebbf, 0xc2f7, - 0xb5ad, 0x003f, 0x003f, 0xebc2, 0x003f, 0xebc3, 0x003f, 0xbed9, - 0x003f, 0x003f, 0x003f, 0xb7ed, 0x003f, 0xebc4, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcbac, 0x003f, 0x003f, 0xc0df, 0x003f, 0x003f, - 0x003f, 0xb5f6, 0x003f, 0xccf5, 0xc1ca, 0x003f, 0xebc5, 0x003f, - 0x003f, 0x003f, 0xbfc7, 0xc3f0, 0xbeda, 0x003f, 0x003f, 0x003f, - 0x003f, 0xebc6, 0x003f, 0x003f, 0x003f, 0x003f, 0xebc9, 0x003f, - 0xebca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbabe, 0xc2c2, 0xebc8, 0x003f, 0xbedb, 0xc9be, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xebc7, 0x003f, 0x003f, 0xbbec, 0x003f, - 0xb1d3, 0x003f, 0xebce, 0xb7d8, 0x003f, 0x003f, 0xbbee, 0x003f, - 0x003f, 0xbbed, 0x003f, 0xcfcd, 0xebcd, 0xebcc, 0xc1a7, 0x003f, - 0xb5cd, 0xcfc3, 0xb3ba, 0xbedc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xebcb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xebd0, 0x003f, 0xebd1, 0xebcf, 0x003f, 0xb8d8, - 0x003f, 0xcdc0, 0x003f, 0x003f, 0xbbef, 0xc7a7, 0x003f, 0x003f, - 0x003f, 0xebd4, 0x003f, 0xc0c0, 0x003f, 0xc3c2, 0x003f, 0x003f, - 0xcdb6, 0x003f, 0xebd7, 0x003f, 0x003f, 0x003f, 0xb8ec, 0x003f, - 0xc0bf, 0xebd3, 0x003f, 0xebd8, 0xb8ed, 0xebd5, 0xebd6, 0x003f, - 0xebd2, 0x003f, 0x003f, 0x003f, 0xc0e2, 0xc6c9, 0x003f, 0x003f, - 0xc3af, 0x003f, 0xb2dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc8f0, 0x003f, 0x003f, 0xb5c3, 0x003f, 0x003f, 0xc4b4, - 0x003f, 0x003f, 0xebdb, 0x003f, 0xebd9, 0x003f, 0x003f, 0xc3cc, - 0x003f, 0x003f, 0x003f, 0xc0c1, 0xb4d2, 0xebda, 0x003f, 0xbfdb, - 0x003f, 0x003f, 0xceca, 0x003f, 0x003f, 0x003f, 0xcfc0, 0x003f, - 0x003f, 0x003f, 0xebdc, 0xebe7, 0xc4b5, 0x003f, 0xebe6, 0x003f, - 0xebe3, 0xebeb, 0xebe4, 0x003f, 0xebe0, 0x003f, 0xc4fc, 0xebdf, - 0x003f, 0x003f, 0x003f, 0xebdd, 0x003f, 0xcda1, 0xbbf0, 0x003f, - 0x003f, 0xebe1, 0x003f, 0xebde, 0x003f, 0x003f, 0x003f, 0xebe5, - 0xbdf4, 0x003f, 0xb8c1, 0x003f, 0x003f, 0x003f, 0xc2fa, 0x003f, - /* 0x8b00 .. 0x8bff */ - 0xcbc5, 0xb1da, 0xb0e2, 0x003f, 0xc6a5, 0x003f, 0x003f, 0xebe9, - 0x003f, 0x003f, 0x003f, 0x003f, 0xebe8, 0x003f, 0xc6e6, 0x003f, - 0xebed, 0x003f, 0x003f, 0x003f, 0xebe2, 0x003f, 0xebec, 0xebee, - 0x003f, 0xb8ac, 0xebea, 0xb9d6, 0x003f, 0xbcd5, 0x003f, 0x003f, - 0xebef, 0xcdd8, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf2, 0x003f, - 0xebf5, 0x003f, 0x003f, 0xebf3, 0xc9b5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xebf0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb6e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf4, 0x003f, - 0x003f, 0xebf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xebfa, 0x003f, 0x003f, 0xebf7, 0x003f, 0xebf9, 0xebf8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebfb, 0x003f, - 0xbcb1, 0x003f, 0xebfd, 0xebfc, 0xc9e8, 0x003f, 0x003f, 0xeca1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7d9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xebfe, 0xeca2, 0x003f, 0x003f, 0xeca3, - 0xb5c4, 0xe6c1, 0xbef9, 0x003f, 0xeca4, 0x003f, 0x003f, 0xb8ee, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeca5, 0x003f, 0x003f, - 0xeca6, 0x003f, 0x003f, 0xbbbe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdace, 0x003f, 0xeca7, 0x003f, 0xeca8, 0x003f, - 0xbdb2, 0x003f, 0xeca9, 0xecaa, 0x003f, 0x003f, 0xecab, 0x003f, - 0x003f, 0xecac, 0xecad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8c00 .. 0x8cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3ab, - 0x003f, 0x003f, 0xecae, 0x003f, 0x003f, 0x003f, 0x003f, 0xecb0, - 0x003f, 0xecaf, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6a6, 0x003f, - 0xecb1, 0x003f, 0xcbad, 0x003f, 0xecb2, 0x003f, 0xecb3, 0x003f, - 0xecb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xecb5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc6da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbedd, 0xecb6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb9eb, 0xd0ae, 0xecb7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xecb8, 0xc9bf, 0xecb9, 0x003f, 0xecc1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xecba, 0x003f, 0x003f, 0xecbc, 0x003f, 0x003f, - 0x003f, 0xecbb, 0xecbd, 0x003f, 0xcbc6, 0xecbe, 0xecbf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xecc0, 0x003f, 0x003f, 0x003f, - 0xecc2, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3ad, 0xc4e7, 0x003f, - 0xc9e9, 0xbae2, 0xb9d7, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9cf, - 0xb2df, 0xc8ce, 0xecc5, 0xb4d3, 0xc0d5, 0xecc4, 0xecc9, 0xc3f9, - 0xcce3, 0x003f, 0xecc7, 0xecc8, 0xb5ae, 0x003f, 0xecca, 0xc7e3, - 0xc2df, 0x003f, 0x003f, 0xc8f1, 0xc5bd, 0xecc6, 0x003f, 0xcbc7, - 0xb2ec, 0xeccc, 0xcfa8, 0xc4c2, 0xcfc5, 0x003f, 0x003f, 0xbbf1, - 0xeccb, 0x003f, 0xc2b1, 0x003f, 0x003f, 0xecdc, 0xc1a8, 0x003f, - 0x003f, 0xc6f8, 0x003f, 0xc9d0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeccf, 0xbbbf, 0xbbf2, 0x003f, 0xbede, 0x003f, - 0xc7e5, 0x003f, 0xb8ad, 0xecce, 0xeccd, 0x003f, 0xc9ea, 0x003f, - 0x003f, 0x003f, 0xbcc1, 0x003f, 0x003f, 0xc5d2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xecd1, 0xecd2, 0xb9d8, 0xecd0, 0x003f, 0x003f, - /* 0x8d00 .. 0x8dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xecd3, 0xecd4, 0x003f, 0xecd6, - 0xc2a3, 0x003f, 0xecd5, 0xb4e6, 0x003f, 0xecd8, 0x003f, 0xecd7, - 0xecd9, 0x003f, 0x003f, 0xecdb, 0xecdd, 0x003f, 0xecde, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc0d6, 0x003f, 0xbccf, 0xecdf, - 0x003f, 0x003f, 0x003f, 0xb3d2, 0x003f, 0xece0, 0x003f, 0x003f, - 0xc1f6, 0xece1, 0x003f, 0xece2, 0xc9eb, 0x003f, 0x003f, 0xb5af, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xece3, 0x003f, 0x003f, 0x003f, 0xc4b6, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb1db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xece4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbcf1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbff6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc2ad, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xece7, 0x003f, 0x003f, 0x003f, 0xece6, 0x003f, - 0x003f, 0x003f, 0xece5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeced, 0xeceb, 0x003f, 0x003f, 0xece8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecea, 0x003f, - 0x003f, 0x003f, 0xece9, 0xecec, 0x003f, 0xb5f7, 0x003f, 0xecf0, - 0x003f, 0xc0d7, 0x003f, 0xecf1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb8d9, 0x003f, 0xecee, 0xecef, 0x003f, 0x003f, 0x003f, 0xcfa9, - 0x003f, 0x003f, 0x003f, 0xc4b7, 0x003f, 0xc1a9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xecf2, 0x003f, 0x003f, 0xecf5, - /* 0x8e00 .. 0x8eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xecf3, 0xecf4, 0xcdd9, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6a7, - 0xecf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecf6, 0xecf7, 0xecf9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeda9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xecfc, 0x003f, 0x003f, 0x003f, 0xecfd, 0xecfb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xecfa, 0x003f, 0xc4fd, 0x003f, 0x003f, 0xeda1, - 0xeda5, 0xeda2, 0xecfe, 0x003f, 0xeda3, 0x003f, 0x003f, 0x003f, - 0xeda4, 0x003f, 0x003f, 0x003f, 0x003f, 0xedab, 0x003f, 0x003f, - 0x003f, 0xeda6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0d8, - 0xeda8, 0x003f, 0x003f, 0xedaa, 0xeda7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xedad, 0x003f, 0xbdb3, 0x003f, 0xedac, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xedae, 0x003f, 0x003f, 0x003f, - 0x003f, 0xedaf, 0x003f, 0x003f, 0xedb2, 0xedb1, 0x003f, 0xedb0, - 0x003f, 0x003f, 0xedb4, 0xedb3, 0x003f, 0xccf6, 0x003f, 0x003f, - 0x003f, 0xedb6, 0x003f, 0xedb5, 0xedb7, 0x003f, 0x003f, 0x003f, - 0x003f, 0xedb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xedba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xedb9, 0xbfc8, 0xedbb, 0x003f, 0x003f, 0xb6ed, - 0xedbc, 0xedbe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedbf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedc0, 0xedbd, 0x003f, - 0xedc1, 0x003f, 0xbcd6, 0xedc2, 0xb5b0, 0xb7b3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb8ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xedc3, 0x003f, 0x003f, 0x003f, 0xc6f0, - 0x003f, 0x003f, 0xc5be, 0xedc4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xedc7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbcb4, 0x003f, 0x003f, 0xedc6, 0xedc5, 0xb7da, 0xedc8, 0x003f, - /* 0x8f00 .. 0x8fff */ - 0x003f, 0x003f, 0x003f, 0xb3d3, 0x003f, 0xedca, 0x003f, 0x003f, - 0x003f, 0xbadc, 0xedc9, 0x003f, 0xedd2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xedcc, 0xedce, 0xcae5, 0xedcb, 0x003f, 0x003f, - 0x003f, 0xedcd, 0x003f, 0xedd1, 0xedcf, 0xb5b1, 0x003f, 0xedd0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedd3, 0x003f, - 0x003f, 0xc7da, 0xced8, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdb4, - 0x003f, 0x003f, 0x003f, 0xedd4, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcda2, 0xedd6, 0x003f, 0xedd5, 0x003f, 0x003f, 0xedd9, 0xcdc1, - 0x003f, 0x003f, 0xedd8, 0x003f, 0xb3ed, 0xedd7, 0xeddc, 0x003f, - 0x003f, 0xeddb, 0x003f, 0x003f, 0xedda, 0xc5b2, 0xeddd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedde, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeddf, 0x003f, 0x003f, 0xb9ec, - 0x003f, 0xb7a5, 0xede0, 0xede1, 0xede2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbfc9, 0xede3, 0x003f, 0xbcad, 0xede4, - 0x003f, 0x003f, 0x003f, 0xede5, 0x003f, 0x003f, 0x003f, 0xd2a1, - 0xd1fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xede6, 0xe5f0, 0xede7, - 0xc3a4, 0xbfab, 0xc7c0, 0x003f, 0x003f, 0x003f, 0x003f, 0xede8, - 0x003f, 0x003f, 0xcad5, 0xc4d4, 0xb9fe, 0x003f, 0x003f, 0xc3a9, - 0x003f, 0x003f, 0xb1aa, 0x003f, 0xcbf8, 0xbfd7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7de, 0x003f, - 0x003f, 0xb6e1, 0x003f, 0x003f, 0xcad6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xede9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xedeb, 0x003f, 0x003f, 0xedea, 0xb2e0, 0x003f, - 0x003f, 0xc6f6, 0xedec, 0xc7f7, 0x003f, 0xc5b3, 0x003f, 0xeded, - 0xbdd2, 0x003f, 0x003f, 0x003f, 0xedef, 0x003f, 0x003f, 0xccc2, - 0xedfe, 0xedf1, 0xedf2, 0x003f, 0x003f, 0xc4c9, 0x003f, 0x003f, - /* 0x9000 .. 0x90ff */ - 0xc2e0, 0xc1f7, 0x003f, 0xc6a8, 0x003f, 0xedf0, 0xb5d5, 0x003f, - 0x003f, 0x003f, 0x003f, 0xedf9, 0x003f, 0xedf6, 0xeea5, 0xc6a9, - 0xc3e0, 0xedf3, 0x003f, 0xc4fe, 0xc5d3, 0xedf4, 0xedf8, 0xbfe0, - 0x003f, 0xc7e7, 0xc4cc, 0x003f, 0x003f, 0xc0c2, 0xedf7, 0xc2ae, - 0xc2a4, 0xedf5, 0xb0a9, 0xcfa2, 0x003f, 0x003f, 0x003f, 0xedfa, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2e1, 0x003f, - 0x003f, 0xbdb5, 0xbfca, 0x003f, 0x003f, 0xedfc, 0xedfb, 0x003f, - 0xb0ef, 0xedfd, 0x003f, 0x003f, 0xc9af, 0x003f, 0xeea7, 0x003f, - 0x003f, 0xc6db, 0xbfeb, 0x003f, 0x003f, 0xc3d9, 0x003f, 0xb6f8, - 0x003f, 0xeea6, 0xcdb7, 0xb1bf, 0x003f, 0xcad7, 0xb2e1, 0xeea1, - 0xeea2, 0xeea3, 0xeea4, 0xc6bb, 0xc3a3, 0xb0e3, 0xeea8, 0x003f, - 0xeea9, 0xf4a3, 0x003f, 0x003f, 0xc2bd, 0x003f, 0xeeaa, 0x003f, - 0xb1f3, 0xc1cc, 0x003f, 0xb8af, 0x003f, 0xcdda, 0x003f, 0x003f, - 0xeeab, 0xc5ac, 0x003f, 0x003f, 0x003f, 0xc1f8, 0xbcd7, 0xeeac, - 0x003f, 0x003f, 0xeeaf, 0x003f, 0x003f, 0xbde5, 0xeead, 0xc1ab, - 0xc1aa, 0x003f, 0xb0e4, 0x003f, 0xcecb, 0xeeb1, 0x003f, 0xc8f2, - 0xeeb3, 0xeeb2, 0xeeb0, 0xe3e4, 0xb4d4, 0x003f, 0x003f, 0xedee, - 0x003f, 0xeeb5, 0xeeb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeb6, - 0x003f, 0xcdb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc6e1, 0x003f, 0x003f, 0xcbae, 0x003f, - 0xeeb7, 0x003f, 0xbcd9, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeb8, - 0x003f, 0xeeb9, 0x003f, 0x003f, 0x003f, 0xeeba, 0x003f, 0x003f, - 0xc5a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb0ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb9d9, 0x003f, 0x003f, 0x003f, 0xcfba, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeebe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb7b4, 0xeebb, 0x003f, 0xeebc, 0x003f, 0x003f, 0x003f, - 0xc9f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3d4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdb9, 0x003f, 0xb6bf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5d4, 0x003f, 0x003f, - /* 0x9100 .. 0x91ff */ - 0x003f, 0x003f, 0xeebf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeec0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeec1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5a2, 0x003f, 0x003f, - 0xeec3, 0x003f, 0xeec2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc6d3, 0xeec4, 0xbdb6, 0xbce0, 0xc7db, 0xc3f1, 0x003f, - 0x003f, 0x003f, 0xbcf2, 0x003f, 0xbfec, 0x003f, 0xeec5, 0x003f, - 0xeec6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbfdd, 0xeec7, 0x003f, 0xeec8, 0x003f, 0x003f, - 0x003f, 0xeec9, 0xcdef, 0x003f, 0xbdb7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeecb, 0xeeca, 0x003f, 0xb9da, 0x003f, 0xb9f3, - 0xbbc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeece, 0x003f, 0x003f, 0x003f, 0x003f, 0xbde6, - 0x003f, 0xeecd, 0x003f, 0xeecc, 0x003f, 0xc2e9, 0x003f, 0x003f, - 0xb8ef, 0x003f, 0xc0c3, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8b0, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbdb9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeecf, 0x003f, 0xbedf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeed2, 0xeed0, 0x003f, 0x003f, 0x003f, 0xeed1, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeed4, 0xeed3, 0x003f, 0x003f, - 0xbefa, 0x003f, 0xeed5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeed6, 0xeed7, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8d0, 0xbad3, - 0xbce1, 0xeed8, 0x003f, 0xeed9, 0xcea4, 0xbdc5, 0xccee, 0xcecc, - 0xeeda, 0xb6e2, 0x003f, 0x003f, 0x003f, 0x003f, 0xeedb, 0x003f, - 0xc5a3, 0x003f, 0x003f, 0xeede, 0xb3f8, 0xbfcb, 0x003f, 0xeedc, - 0x003f, 0xeedd, 0x003f, 0xc4e0, 0x003f, 0x003f, 0xcbd5, 0xb6fc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee0, 0xeee1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeedf, 0x003f, 0x003f, 0xeee3, - /* 0x9200 .. 0x92ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6df, 0xb3c3, 0x003f, - 0x003f, 0xeee7, 0x003f, 0x003f, 0xeee4, 0xeee6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xefcf, 0x003f, 0x003f, 0xeee5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xceeb, 0x003f, 0x003f, 0xb8da, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeef, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc5b4, 0xeeea, 0x003f, 0x003f, - 0xeeed, 0xeeeb, 0x003f, 0xeef0, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeef1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee9, - 0x003f, 0x003f, 0xeef6, 0xb1f4, 0x003f, 0x003f, 0xeee8, 0x003f, - 0x003f, 0x003f, 0xc8ad, 0x003f, 0xeeec, 0x003f, 0xbee0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb9db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbc8, 0x003f, - 0xb6e4, 0x003f, 0x003f, 0xbdc6, 0x003f, 0xc6bc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc1ad, 0x003f, 0xeef4, 0x003f, 0xeeee, 0xeef3, 0x003f, - 0xccc3, 0x003f, 0xc4b8, 0xeef5, 0xeef2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1ac, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeef9, - 0x003f, 0xeef8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeef7, - 0x003f, 0x003f, 0xcbaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbdfb, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeefa, 0xcadf, 0x003f, 0x003f, 0xb1d4, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc9c6, 0xc3f2, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb5f8, 0x003f, 0xeefc, 0x003f, 0xb9dd, 0x003f, 0x003f, 0x003f, - /* 0x9300 .. 0x93ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbac, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeefb, - 0xbfed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbfee, 0xefa1, 0xefa3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbefb, 0x003f, 0xefa2, 0xefa4, 0x003f, 0x003f, 0xb6d3, 0x003f, - 0xc9c5, 0x003f, 0x003f, 0xbce2, 0xcfa3, 0x003f, 0xeefe, 0xbaf8, - 0x003f, 0x003f, 0xcfbf, 0x003f, 0x003f, 0xefa6, 0x003f, 0x003f, - 0x003f, 0x003f, 0xefa5, 0xefa7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeefd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc6e9, 0x003f, 0xc5d5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc4d7, 0x003f, 0xefac, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc3c3, 0xefa8, 0x003f, 0x003f, 0x003f, - 0xefa9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb7ad, 0x003f, 0xefab, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8b0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xefaa, 0x003f, 0xbee1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb3f9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xefb0, 0x003f, 0xbabf, 0xc1f9, - 0x003f, 0x003f, 0xc4ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3bb, - 0x003f, 0x003f, 0x003f, 0x003f, 0xefae, 0xefaf, 0xc4c3, 0x003f, - 0xefad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xefb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xefb7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefb9, 0xc5ad, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb2, 0xefb3, - 0xefb6, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb8, 0x003f, 0x003f, - 0x003f, 0xb6c0, 0x003f, 0x003f, 0xefbb, 0xefb5, 0x003f, 0x003f, - 0xefb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9400 .. 0x94ff */ - 0x003f, 0x003f, 0x003f, 0xefbf, 0x003f, 0x003f, 0x003f, 0xefc0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefc1, 0x003f, 0x003f, 0xefbe, 0xefbd, 0x003f, 0x003f, 0x003f, - 0xbee2, 0xc6aa, 0xefbc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xefc5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xefc3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc4, 0xefc2, 0x003f, - 0xc2f8, 0x003f, 0xefc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xefc7, 0x003f, 0x003f, 0xefc9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb4d5, 0xefc8, 0xccfa, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xefd4, 0xefca, 0x003f, 0x003f, 0xefcd, 0x003f, - 0xefcb, 0x003f, 0xefcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xefce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefd0, 0x003f, 0x003f, 0x003f, 0x003f, 0xefd1, 0x003f, 0xefd2, - 0x003f, 0x003f, 0x003f, 0x003f, 0xefd5, 0xefd3, 0xefd6, 0xefd8, - 0x003f, 0xefd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9500 .. 0x95ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4b9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcce7, 0x003f, 0xefd9, 0xc1ae, 0x003f, 0x003f, 0x003f, 0xefda, - 0x003f, 0xcac4, 0xefdb, 0xb3ab, 0x003f, 0x003f, 0x003f, 0xb1bc, - 0x003f, 0xb4d7, 0x003f, 0xb4d6, 0xefdc, 0x003f, 0xefdd, 0x003f, - 0xefde, 0xefdf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefe0, 0x003f, 0xb4d8, 0xb3d5, 0xb9de, 0xc8b6, 0x003f, 0xefe2, - 0xefe1, 0x003f, 0x003f, 0x003f, 0x003f, 0xefe3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb1dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xefe6, 0x003f, 0xefe5, 0xefe4, 0x003f, 0xefe7, 0x003f, - 0x003f, 0x003f, 0x003f, 0xefea, 0x003f, 0x003f, 0x003f, 0xb0c7, - 0x003f, 0x003f, 0xefe8, 0x003f, 0xefec, 0xefeb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xefee, 0xefed, 0xefef, 0x003f, - 0xc6ae, 0x003f, 0x003f, 0x003f, 0xeff0, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeff1, 0xeff3, 0x003f, 0x003f, 0xeff2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9600 .. 0x96ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc9ec, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeff4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeff5, 0x003f, 0xbae5, 0x003f, 0x003f, 0x003f, 0xeff6, 0xeff7, - 0x003f, 0x003f, 0xcbc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc1cb, 0x003f, 0x003f, 0x003f, 0xb0a4, - 0xc2cb, 0x003f, 0xeff8, 0x003f, 0xc9ed, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeffb, 0xeff9, 0xb9df, 0x003f, 0xeffa, - 0xb8c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcac5, 0xeffd, 0xf0a1, 0xeffe, 0xf0a2, - 0x003f, 0x003f, 0xb1a1, 0xbfd8, 0xbdfc, 0xb4d9, 0xf0a3, 0x003f, - 0x003f, 0x003f, 0xc7e6, 0x003f, 0xf0a5, 0x003f, 0x003f, 0x003f, - 0xb1a2, 0x003f, 0xf0a4, 0xc4c4, 0x003f, 0xcecd, 0xc6ab, 0xeffc, - 0xcea6, 0x003f, 0xb8b1, 0x003f, 0x003f, 0xcddb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6f9, 0xceb4, 0x003f, - 0xb7a8, 0x003f, 0xc2e2, 0xe7a1, 0x003f, 0xf0a6, 0xb3ac, 0xbfef, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb3d6, 0xf0a8, 0x003f, 0xf0a9, - 0xf0a7, 0xb7e4, 0x003f, 0xbadd, 0xbee3, 0x003f, 0x003f, 0x003f, - 0xb1a3, 0x003f, 0x003f, 0xced9, 0x003f, 0x003f, 0x003f, 0xf0ab, - 0xeeae, 0x003f, 0xf0aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf0ae, 0xf0ac, 0xf0ad, 0x003f, 0xf0af, 0x003f, 0xf0b0, 0xceec, - 0xf0b1, 0xf0b2, 0x003f, 0xc0c9, 0xc8bb, 0x003f, 0x003f, 0x003f, - 0xbffd, 0xb4e7, 0x003f, 0x003f, 0xcdba, 0xb2ed, 0xbdb8, 0xb8db, - 0x003f, 0xf0b5, 0x003f, 0xf0b4, 0xbbf3, 0xf0b6, 0xf0b3, 0x003f, - 0x003f, 0xbba8, 0x003f, 0x003f, 0x003f, 0xf0ba, 0xeaad, 0x003f, - 0x003f, 0xd2d6, 0x003f, 0xbff7, 0xf0b8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcea5, 0xc6f1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb1ab, 0x003f, 0xc0e3, 0xbcb6, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcab7, 0x003f, 0xb1c0, 0x003f, 0x003f, 0x003f, 0xceed, 0xcdeb, - 0x003f, 0xf0bb, 0x003f, 0xc5c5, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9700 .. 0x97ff */ - 0xbcfb, 0x003f, 0x003f, 0x003f, 0xf0bc, 0x003f, 0xf0bd, 0xbfcc, - 0xf0be, 0x003f, 0xceee, 0x003f, 0x003f, 0xf0b9, 0xf0c0, 0xf0c2, - 0x003f, 0xf0c1, 0x003f, 0xf0bf, 0x003f, 0x003f, 0xf0c3, 0x003f, - 0x003f, 0xf0c4, 0x003f, 0x003f, 0xc1fa, 0x003f, 0xb2e2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf0c5, 0x003f, 0x003f, 0xccb8, - 0x003f, 0x003f, 0xf0c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf0c7, 0x003f, 0xcfaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdbb1, 0xf0c8, 0x003f, 0x003f, 0x003f, 0xf0c9, 0xf0ca, 0x003f, - 0x003f, 0x003f, 0xf0ce, 0x003f, 0xf0cb, 0x003f, 0xf0cc, 0x003f, - 0xf0cd, 0xf0cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc0c4, 0x003f, 0x003f, 0x003f, 0xccf7, 0x003f, - 0x003f, 0xc0c5, 0x003f, 0x003f, 0xf0d0, 0x003f, 0xc8f3, 0x003f, - 0xf0d1, 0xf3d3, 0xcccc, 0x003f, 0xf0d2, 0x003f, 0xf0d3, 0x003f, - 0xf0d4, 0xb3d7, 0x003f, 0xf0d6, 0x003f, 0xbfd9, 0x003f, 0x003f, - 0x003f, 0xf0d7, 0x003f, 0x003f, 0xb7a4, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf0d8, 0xf0dc, 0x003f, 0xf0da, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf0db, 0x003f, 0x003f, 0xb3f3, 0xf0d9, 0xf0dd, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf0de, 0x003f, 0xb0c8, 0x003f, 0xf0df, - 0xf0e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbee4, 0x003f, 0x003f, 0x003f, 0xf0e1, 0x003f, 0x003f, 0x003f, - 0xb5c7, 0x003f, 0x003f, 0xf0e4, 0x003f, 0x003f, 0xf0e3, 0x003f, - 0xf0e2, 0x003f, 0x003f, 0xebf1, 0x003f, 0xcadc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf0e5, 0xf0e6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf0e7, 0x003f, 0x003f, 0xf0e8, 0x003f, - 0xf0e9, 0x003f, 0x003f, 0xf0ea, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb4da, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf0eb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0ec, 0xc7a3, 0x003f, - 0x003f, 0x003f, 0xf0ee, 0xb2bb, 0x003f, 0xf0f1, 0xf0f0, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb1a4, 0x003f, 0x003f, 0x003f, 0xb6c1, - /* 0x9800 .. 0x98ff */ - 0x003f, 0xcac7, 0xc4ba, 0xbaa2, 0x003f, 0xb9e0, 0xbde7, 0x003f, - 0xbfdc, 0x003f, 0x003f, 0x003f, 0xf0f3, 0x003f, 0x003f, 0xf0f2, - 0xcdc2, 0xb4e8, 0xc8d2, 0xc6dc, 0x003f, 0x003f, 0x003f, 0xbffc, - 0xcece, 0x003f, 0xb7db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf0f6, 0x003f, 0x003f, 0xf0f5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcbcb, 0xc6ac, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb1d0, 0x003f, 0x003f, 0xf0f7, - 0xf0f4, 0x003f, 0x003f, 0xc9d1, 0xcdea, 0xf0f8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0f9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf0fb, 0xc2ea, 0xb3db, 0xb3dc, 0xf0fa, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb4e9, 0xb8b2, 0x003f, 0x003f, - 0xb4ea, 0x003f, 0x003f, 0xc5bf, 0x003f, 0x003f, 0xcee0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8dc, - 0x003f, 0x003f, 0x003f, 0xf0fc, 0x003f, 0x003f, 0x003f, 0xf0fd, - 0xf0fe, 0xf1a1, 0x003f, 0xf1a3, 0xf1a2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc9f7, 0x003f, 0xf1a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1a5, - 0x003f, 0xf1a6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1a7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf1a9, 0xf1a8, 0x003f, 0xf1aa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc8f4, 0xe6cc, 0x003f, 0x003f, 0xbfa9, - 0x003f, 0x003f, 0xb5b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf1ab, 0x003f, 0xf1ac, 0x003f, 0xd2ac, 0xddbb, 0xc8d3, - 0x003f, 0x003f, 0xb0fb, 0x003f, 0xb0bb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbbf4, 0xcbb0, 0xbefe, 0x003f, - /* 0x9900 .. 0x99ff */ - 0x003f, 0x003f, 0x003f, 0xf1ad, 0x003f, 0xccdf, 0x003f, 0x003f, - 0x003f, 0xf1ae, 0xcddc, 0x003f, 0xb1c2, 0x003f, 0x003f, 0x003f, - 0xbbc1, 0x003f, 0xf1af, 0xb2ee, 0xf1b0, 0x003f, 0x003f, 0x003f, - 0xf1b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1b3, 0xf1b4, 0x003f, - 0xf1b6, 0xf1b2, 0x003f, 0x003f, 0xf1b5, 0x003f, 0x003f, 0x003f, - 0xb4db, 0x003f, 0x003f, 0x003f, 0xf1b7, 0x003f, 0xf1b8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1b9, 0xf1ba, 0x003f, - 0x003f, 0x003f, 0xf1bb, 0x003f, 0x003f, 0xf1bd, 0x003f, 0x003f, - 0x003f, 0xf1bc, 0x003f, 0xf1bf, 0xf1c2, 0x003f, 0x003f, 0x003f, - 0xf1be, 0xf1c0, 0xf1c1, 0x003f, 0x003f, 0xf1c3, 0x003f, 0xb6c2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcf3, 0xf1c4, - 0xf1c5, 0xb9e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1c6, 0x003f, 0x003f, - 0xb3be, 0x003f, 0x003f, 0x003f, 0xc7cf, 0xf1c7, 0xf1c8, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc3da, 0xc6eb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf1c9, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc7fd, 0x003f, 0x003f, 0xc2cc, 0xb1d8, 0xb6ee, 0x003f, - 0xb6ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc3f3, 0xf1ce, 0xb6f0, 0x003f, 0x003f, 0xb2ef, 0x003f, 0x003f, - 0xf1cd, 0x003f, 0x003f, 0xf1cb, 0x003f, 0xf1cc, 0x003f, 0xf1ca, - 0x003f, 0x003f, 0xf1d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1cf, 0xf1d0, 0x003f, - 0x003f, 0xf1d1, 0xf1d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1d4, 0x003f, 0x003f, 0xf1d3, 0x003f, 0x003f, 0x003f, 0xbdd9, - /* 0x9a00 .. 0x9aff */ - 0x003f, 0xf1d5, 0x003f, 0x003f, 0x003f, 0xf1d7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5b3, 0xf1d6, - 0x003f, 0x003f, 0xc1fb, 0xb8b3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf1d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc2cd, 0x003f, 0x003f, 0xf1da, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc6ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1db, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e0, 0x003f, - 0xf1de, 0x003f, 0xf1dd, 0xf1df, 0x003f, 0xf1dc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e1, 0x003f, 0xf1e4, - 0x003f, 0x003f, 0xb6c3, 0xf1e3, 0x003f, 0x003f, 0x003f, 0xf1e5, - 0x003f, 0x003f, 0xf1e6, 0x003f, 0xf1e8, 0xf1e7, 0x003f, 0x003f, - 0x003f, 0xf1e9, 0xf1eb, 0xf1ea, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb9fc, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ec, 0x003f, 0x003f, - 0xf1ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb3bc, 0x003f, 0x003f, 0x003f, 0xf1ee, 0x003f, 0x003f, 0x003f, - 0xf1ef, 0x003f, 0x003f, 0x003f, 0xbff1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1f0, - 0x003f, 0xf1f1, 0x003f, 0xf1f2, 0xf1f3, 0x003f, 0x003f, 0x003f, - 0xb9e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1f4, 0xf1f5, - 0x003f, 0x003f, 0xf1f6, 0xf1f7, 0x003f, 0x003f, 0xf1f8, 0x003f, - 0x003f, 0x003f, 0xc8b1, 0xf1fa, 0x003f, 0xc9a6, 0xf1fb, 0xf1f9, - 0x003f, 0xf1fd, 0x003f, 0x003f, 0xf1fc, 0x003f, 0x003f, 0xf1fe, - 0x003f, 0x003f, 0x003f, 0xf2a1, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9b00 .. 0x9bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2a3, 0x003f, 0xf2a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a5, - 0x003f, 0x003f, 0xf2a6, 0xf2a7, 0x003f, 0xf2a8, 0x003f, 0xf2a9, - 0xf2aa, 0xf2ab, 0xf2ac, 0x003f, 0x003f, 0x003f, 0xf2ad, 0xf2ae, - 0x003f, 0xddb5, 0xf2af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4f8, 0xb5b4, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb3a1, 0xbab2, 0xf2b1, 0xf2b0, 0xcca5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2b3, 0xf2b4, 0xf2b2, - 0x003f, 0xf2b5, 0x003f, 0x003f, 0xcbe2, 0x003f, 0x003f, 0x003f, - 0xf2b6, 0x003f, 0xb5fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfa5, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf2b7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf2b9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0be, 0x003f, - 0x003f, 0xf2ba, 0xcaab, 0xf2b8, 0x003f, 0x003f, 0xf2bb, 0xf2bc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2bd, - 0xf2be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2bf, 0x003f, 0xcbee, 0xbbad, 0x003f, 0xbafa, 0xc1af, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c0, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c4, 0x003f, - 0x003f, 0xb8f1, 0xf2c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c5, - 0x003f, 0xf2c6, 0xf2c7, 0x003f, 0xf2cb, 0x003f, 0xbbaa, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc2e4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2cc, 0xf2c9, 0xf2c8, 0xf2ca, 0x003f, 0x003f, 0x003f, - 0xb7df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2d0, 0xf2cf, 0xf2ce, 0x003f, 0x003f, 0xb0b3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9c00 .. 0x9cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xf2da, 0x003f, 0xf2d6, 0x003f, - 0xf2d7, 0xf2d3, 0xf2d9, 0x003f, 0xf2d5, 0xb3e2, 0x003f, 0x003f, - 0xcfcc, 0x003f, 0xf2d8, 0xf2d4, 0xf2d2, 0xf2d1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf2dc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2df, 0x003f, 0x003f, 0xf2de, 0xf2dd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9c9, 0xf2db, 0xb0f3, - 0xf2e0, 0x003f, 0xf2e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb3ef, 0xf2cd, 0xb1b7, 0x003f, 0x003f, 0xf2e4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2e3, 0xf2e1, - 0xc3ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcbf0, 0x003f, 0x003f, 0x003f, 0x003f, 0xceda, - 0x003f, 0x003f, 0xf2e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2e7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2e8, 0x003f, - 0xf2e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4bb, 0x003f, 0xf2ea, - 0x003f, 0xc8b7, 0x003f, 0xf2ef, 0xf2eb, 0x003f, 0x003f, 0x003f, - 0xf2ec, 0x003f, 0x003f, 0xcbb1, 0xccc4, 0x003f, 0xc6d0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9d00 .. 0x9dff */ - 0x003f, 0x003f, 0x003f, 0xf2f0, 0x003f, 0x003f, 0xf2f1, 0xc6be, - 0xf2ee, 0xf2ed, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2aa, 0x003f, - 0x003f, 0x003f, 0xf2f9, 0x003f, 0x003f, 0xf2f8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb1f5, 0x003f, 0x003f, 0x003f, 0xf2f6, - 0x003f, 0x003f, 0x003f, 0xf2f5, 0x003f, 0x003f, 0xf2f3, 0x003f, - 0xb3fb, 0x003f, 0xf2f2, 0xbcb2, 0xb2a9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb9e3, 0x003f, 0x003f, 0xf2fc, 0xf2fb, - 0x003f, 0xf2fa, 0x003f, 0x003f, 0xf2f7, 0x003f, 0xf2fd, 0x003f, - 0xf2fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf3a5, 0xf3a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3a6, 0x003f, 0x003f, 0xb1ad, 0xf3a1, 0xf3a2, 0x003f, - 0xb9f4, 0xccb9, 0x003f, 0x003f, 0xf3a3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcbb2, 0x003f, 0x003f, 0xf3ab, - 0x003f, 0x003f, 0xf3a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3a9, - 0x003f, 0xf3a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7dc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ae, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3af, 0x003f, 0xf3aa, 0x003f, 0x003f, 0x003f, 0xf2f4, - 0x003f, 0x003f, 0xf3b0, 0x003f, 0xc4e1, 0x003f, 0x003f, 0x003f, - 0xf3b4, 0x003f, 0xf3b5, 0xf3b3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3b2, 0xf3b8, 0x003f, 0xf3b1, 0x003f, 0xf3b6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3b7, - 0x003f, 0x003f, 0x003f, 0xf3ba, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3bc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3bd, 0x003f, 0xf3be, - 0x003f, 0x003f, 0xcfc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf3bb, 0xc2eb, 0xbaed, 0x003f, 0x003f, 0xf3bf, 0x003f, 0x003f, - /* 0x9e00 .. 0x9eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3c0, 0xf3c1, 0x003f, 0x003f, 0xf3c2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3c3, 0x003f, 0x003f, - 0xb8b4, 0xf3c4, 0x003f, 0x003f, 0x003f, 0xf3c5, 0x003f, 0xbcaf, - 0x003f, 0xf3c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf3c7, 0x003f, 0x003f, 0xf3c8, 0xf3c9, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3cc, 0xf3ca, 0xcfbc, 0x003f, 0xf3cb, 0x003f, 0xceef, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3cd, 0x003f, 0xcedb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ce, 0xc7fe, 0x003f, - 0x003f, 0xf3cf, 0xf3d1, 0x003f, 0x003f, 0xf3d2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf3d0, 0xb9ed, 0xcccd, 0xcbe3, 0xd6f7, 0x003f, 0xdde0, 0xcbfb, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb2ab, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf3d4, 0xb5d0, 0xf3d5, 0xf3d6, - 0xf3d7, 0x003f, 0xb9f5, 0x003f, 0xf3d8, 0x003f, 0x003f, 0x003f, - 0xe0d4, 0xccdb, 0x003f, 0xc2e3, 0xf3d9, 0xf3db, 0xf3da, 0x003f, - 0xf3dc, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3dd, 0x003f, 0x003f, - 0xf3de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3df, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf3e0, 0x003f, 0xf3e1, 0xf3e2, - 0x003f, 0xf3e3, 0x003f, 0xf3e4, 0xf3e5, 0xf3e6, 0x003f, 0x003f, - /* 0x9f00 .. 0x9fff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3e7, - 0xf3e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5a4, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb8dd, 0x003f, 0xf3ea, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc1cd, 0xf3eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ec, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xc9a1, 0x003f, 0x003f, 0xf3ed, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3ee, 0xe3b7, 0x003f, 0x003f, 0xecda, 0xf0ed, - 0x003f, 0x003f, 0xf3ef, 0x003f, 0xf3f0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3f2, - 0xf3f3, 0xf3f4, 0xcef0, 0xf3f1, 0x003f, 0x003f, 0xf3f5, 0xf3f6, - 0x003f, 0x003f, 0xf3f8, 0x003f, 0xf3f7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3fa, 0x003f, 0x003f, 0x003f, 0xf3fb, 0xf3f9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceb6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3fc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf3fd, 0xe3d4, 0x003f, 0x003f, - 0xf3fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xf900 .. 0xf9ff */ - 0xecb1, 0xb9b9, 0xbcd6, 0xeccb, 0xb3ea, 0xb6fa, 0xb6e7, 0xf3fd, - 0xf3fd, 0xb7c0, 0xb6e2, 0xd3c9, 0xc6e0, 0xd8f1, 0xe1fa, 0xcde5, - 0xe9c7, 0xcde6, 0xcde7, 0xeeb6, 0xdcdb, 0xcdec, 0xdfe0, 0xe0e4, - 0xcdee, 0xcdef, 0xf1d1, 0xd0ac, 0xcdf1, 0xcdf3, 0xe0a5, 0xcdf6, - 0xf3c2, 0xcdf2, 0xcdf4, 0xcdf5, 0xeba2, 0xd9c7, 0xe7c4, 0x003f, - 0xcfad, 0xcfaf, 0xcfb2, 0xcfb5, 0xcfba, 0xd0d4, 0xcee4, 0xd2a9, - 0x003f, 0xcfa6, 0xe0a4, 0xe2ba, 0xcfb7, 0xe9c3, 0xceba, 0xcfa9, - 0xcfaa, 0xcfa5, 0xbaed, 0xe2f1, 0xe3b3, 0x003f, 0x003f, 0x003f, - 0xbcaf, 0xcfc0, 0xd4e2, 0xcfae, 0xe4c6, 0xcfb8, 0xcfb4, 0xe2fd, - 0xcfa8, 0xcdeb, 0xd4de, 0x003f, 0xdcec, 0x003f, 0xcfb3, 0xcedf, - 0xe5df, 0xeffb, 0xf0d5, 0xcfbe, 0xf4a5, 0xcebf, 0xcec7, 0xb0bd, - 0xc9a9, 0xcecd, 0xeca6, 0xd9bc, 0xdcdb, 0xc2fa, 0xc3b0, 0xc7ab, - 0xc5dc, 0xcea8, 0xb0db, 0xcbcc, 0x003f, 0xcad8, 0xc9fc, 0xc9d4, - 0xc8e7, 0xdacb, 0xbaf7, 0xd2d4, 0xbac9, 0xbeca, 0xcdd5, 0x003f, - 0xbba6, 0xc3a4, 0xc4c0, 0xbda6, 0xbce3, 0xceab, 0xceac, 0xcebc, - 0xd1c0, 0xd1da, 0xcec2, 0xcec8, 0xcec9, 0xceca, 0xcecc, 0xd2af, - 0xcfa4, 0xbdf7, 0xd7aa, 0xceb9, 0xdfc9, 0xe2ea, 0xefe3, 0xf1eb, - 0xceef, 0xf3d5, 0xcecf, 0x003f, 0x003f, 0xede0, 0xc7af, 0xcef9, - 0xd8f8, 0xc7b2, 0xcefa, 0xcefb, 0x003f, 0x003f, 0xcefd, 0xcefe, - 0xedd3, 0xcfa1, 0xcfa2, 0x003f, 0xcef3, 0xcef4, 0xb0f6, 0xcef5, - 0xcef6, 0x003f, 0xcef7, 0xc7b0, 0xc7b1, 0x003f, 0xcefc, 0xe0da, - 0xcee1, 0xd3fa, 0xc7ab, 0xcee6, 0xcee7, 0xcee8, 0xe0f2, 0xe6b9, - 0xe6d9, 0xceeb, 0xceed, 0xf0cd, 0xcece, 0xcee3, 0xe3b9, 0xeed4, - 0xf0b1, 0xd8a8, 0xcebb, 0xcebd, 0xcec0, 0xc7a2, 0xcec1, 0xdcdb, - 0xdff9, 0xcec5, 0xe8fa, 0xcecb, 0xceb6, 0xdaf4, 0xeff6, 0xcead, - 0x003f, 0xccf8, 0xceae, 0xceaf, 0xceb0, 0xceb1, 0xceb2, 0xc9b3, - 0xcee0, 0xcfbb, 0xd9a4, 0xcea6, 0xced1, 0xd6c6, 0xdecd, 0xced8, - 0xcea7, 0xd8cb, 0xb7aa, 0xcea8, 0xceb4, 0xcdf8, 0xcdf9, 0xcdfa, - 0xb0d7, 0xcdfb, 0xcdfc, 0xc5a5, 0xcdfd, 0xcea1, 0xd8ed, 0xcea2, - 0xcea3, 0xcea4, 0xcea5, 0xc6bf, 0xc5ae, 0xd2e7, 0xced5, 0x003f, - 0xe9c2, 0xced9, 0xceda, 0xcedb, 0xced3, 0xced4, 0xced7, 0xcea9, - 0xb3de, 0xceb3, 0x003f, 0xdfd5, 0xbcb1, 0xbdba, 0xc3e3, 0xbbc9, - /* 0xfa00 .. 0xfaff */ - 0xc0da, 0xc5d9, 0xc2f3, 0xc5fc, 0xc2f0, 0xc6b6, 0xcbbd, 0xedd5, - 0xb9d4, 0xb9df, 0xb8ab, 0xb3c7, 0xd1ba, 0x003f, 0x003f, 0x003f, - 0xc4cd, 0x003f, 0xc0b2, 0x003f, 0x003f, 0x003f, 0xc3f6, 0xb1d7, - 0xcee9, 0xbfc0, 0xbecd, 0xcaa1, 0xccf7, 0xc0ba, 0xb1a9, 0x003f, - 0x003f, 0x003f, 0xbdf4, 0x003f, 0x003f, 0xb0ef, 0xc5d4, 0x003f, - 0x003f, 0x003f, 0xc8d3, 0xbbf4, 0xb4db, 0xc4e1, 0x003f, 0x003f, - 0xc9ee, 0xc1ce, 0xccc8, 0xcad9, 0xb6d0, 0xc8dc, 0xb3e5, 0xc3b2, - 0xb4ef, 0xcabd, 0xcbcf, 0xc1d8, 0xd6a5, 0xb2f9, 0xb3b4, 0xc1fe, - 0xc4a8, 0xc9d2, 0xb4fb, 0xbdeb, 0xc7df, 0xb3a4, 0xbded, 0xb4c1, - 0xbcd1, 0x003f, 0xc2f6, 0xc8ea, 0xbcd2, 0xbbe3, 0xb5a7, 0xcdb4, - 0xc1c4, 0xbdcb, 0xb2d2, 0xc4f7, 0xb9f2, 0xc6cd, 0xc0e1, 0xcefd, - 0xe5d6, 0xc8cb, 0xbdf0, 0xbcd4, 0xbdad, 0x003f, 0x003f, 0xc3f8, - 0xb3ec, 0xbbeb, 0xb1da, 0xb6e0, 0xc9d0, 0xc2a3, 0x003f, 0xb0ef, - 0xc6f1, 0xb6c1, 0xc9d1, 0xb7c3, 0x003f, 0xb4dc, 0x003f, 0x003f, - 0xcac2, 0xd1d7, 0xc1b4, 0x003f, 0xbdbc, 0xd1c3, 0xcda6, 0xbcdb, - 0xb3e5, 0x003f, 0xd3bc, 0x003f, 0xc4cd, 0xcaaf, 0xb1e2, 0xcbdb, - 0xd5b9, 0x003f, 0x003f, 0x003f, 0xbacc, 0xd7d4, 0xd8b1, 0xbfb5, - 0xccfc, 0xc1fe, 0x003f, 0xc4a8, 0xc2d7, 0xd9e9, 0xd9d3, 0x003f, - 0xdac4, 0xc0b2, 0xcfaf, 0xcbbe, 0xbef3, 0xddc6, 0xbba6, 0xceae, - 0x003f, 0xbca2, 0xb4c1, 0xc6d4, 0xbcd1, 0x003f, 0xbcdf, 0xc8c8, - 0xc3f6, 0x003f, 0x003f, 0xb2e8, 0x003f, 0xe1e9, 0xb1d7, 0xc0b9, - 0xc4be, 0x003f, 0xc3e5, 0x003f, 0x003f, 0xc0e1, 0x003f, 0xe5b6, - 0xcefd, 0x003f, 0xbcd4, 0xb9d3, 0xb2da, 0x003f, 0xeaf6, 0xcaa4, - 0xbbeb, 0xc4b4, 0xbdf4, 0xc0c1, 0xb1da, 0xc2fa, 0xcda1, 0xb6e0, - 0xdace, 0xc2a3, 0xcda2, 0xeeaf, 0x003f, 0x003f, 0x003f, 0xc6f1, - 0xccf7, 0x003f, 0xb6c1, 0x003f, 0xc9d1, 0x003f, 0xf3fd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xfb00 .. 0xfbff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x002b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xfe00 .. 0xfeff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x007e, 0x007e, 0x007e, 0x007e, 0x005f, 0x005f, 0x005f, - 0x002c, 0xa1a2, 0x002e, 0x003f, 0x003b, 0x003a, 0x003f, 0x0021, - 0xa1bd, 0x0028, 0x0029, 0x007b, 0x007d, 0xa1cc, 0xa1cd, 0x0023, - 0x0026, 0x002a, 0x002b, 0x002d, 0x003c, 0x003e, 0x003d, 0x003f, - 0x005c, 0x0024, 0x0025, 0x0040, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xff00 .. 0xffff */ - 0x003f, 0xa1aa, 0x0022, 0xa1f4, 0xa1f0, 0xa1f3, 0xa1f5, 0x0027, - 0xa1ca, 0xa1cb, 0xa1f6, 0xa1dc, 0xa1a4, 0x002d, 0xa1a5, 0xa1bf, - 0xa3b0, 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, - 0xa3b8, 0xa3b9, 0xa1a7, 0xa1a8, 0xa1e3, 0xa1e1, 0xa1e4, 0xa1a9, - 0xa1f7, 0xa3c1, 0xa3c2, 0xa3c3, 0xa3c4, 0xa3c5, 0xa3c6, 0xa3c7, - 0xa3c8, 0xa3c9, 0xa3ca, 0xa3cb, 0xa3cc, 0xa3cd, 0xa3ce, 0xa3cf, - 0xa3d0, 0xa3d1, 0xa3d2, 0xa3d3, 0xa3d4, 0xa3d5, 0xa3d6, 0xa3d7, - 0xa3d8, 0xa3d9, 0xa3da, 0xa1ce, 0xa1c0, 0xa1cf, 0xa1b0, 0xa1b2, - 0xa1ae, 0xa3e1, 0xa3e2, 0xa3e3, 0xa3e4, 0xa3e5, 0xa3e6, 0xa3e7, - 0xa3e8, 0xa3e9, 0xa3ea, 0xa3eb, 0xa3ec, 0xa3ed, 0xa3ee, 0xa3ef, - 0xa3f0, 0xa3f1, 0xa3f2, 0xa3f3, 0xa3f4, 0xa3f5, 0xa3f6, 0xa3f7, - 0xa3f8, 0xa3f9, 0xa3fa, 0xa1d0, 0xa1c3, 0xa1d1, 0x007e, 0x003f, - 0x003f, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6, 0x8ea7, - 0x8ea8, 0x8ea9, 0x8eaa, 0x8eab, 0x8eac, 0x8ead, 0x8eae, 0x8eaf, - 0x8eb0, 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4, 0x8eb5, 0x8eb6, 0x8eb7, - 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0x8ebc, 0x8ebd, 0x8ebe, 0x8ebf, - 0x8ec0, 0x8ec1, 0x8ec2, 0x8ec3, 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, - 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb, 0x8ecc, 0x8ecd, 0x8ece, 0x8ecf, - 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4, 0x8ed5, 0x8ed6, 0x8ed7, - 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc, 0x8edd, 0x8ede, 0x8edf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1f1, 0xa1f2, 0xa2cc, 0xa1b1, 0x007c, 0xa1ef, 0x003f, 0x003f, - 0xa8a2, 0xa2ab, 0xa2ac, 0xa2aa, 0xa2ad, 0xa2a3, 0xa1fb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* defaults */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x0e00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x0f00, 0x6c00, 0x1000, 0x1100, - 0x1200, 0x1300, 0x1400, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x1500, 0x1600, - 0x1700, 0x1800, 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, - 0x1f00, 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, - 0x2700, 0x2800, 0x2900, 0x2a00, 0x2b00, 0x2c00, 0x2d00, 0x2e00, - 0x2f00, 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, - 0x3700, 0x3800, 0x3900, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, - 0x3f00, 0x4000, 0x4100, 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, - 0x4700, 0x4800, 0x4900, 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, - 0x4f00, 0x5000, 0x5100, 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, - 0x5700, 0x5800, 0x5900, 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, - 0x5f00, 0x6000, 0x6100, 0x6200, 0x6300, 0x6400, 0x6500, 0x6600, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, 0x6c00, - 0x6c00, 0x6700, 0x6800, 0x6900, 0x6c00, 0x6c00, 0x6a00, 0x6b00 -}; - -const struct dbcs_table cptable_20932 = -{ - { 20932, 2, 0x003f, 0x003f, "EUC-JP" }, - cp2uni, - cp2uni_leadbytes, - uni2cp_low, - uni2cp_high, - { - 0x8e, 0x8f, 0xa1, 0xfe, 0x00, 0x00 - } -}; diff --git a/reactos/tools/unicode/c_21866.c b/reactos/tools/unicode/c_21866.c deleted file mode 100644 index 8b1c77525a0..00000000000 --- a/reactos/tools/unicode/c_21866.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 21866 (Ukrainian KOI8) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-U.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, - 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, - 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, - 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, - 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, - 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e, - 0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, - 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9, - 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, - 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, - 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, - 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, - 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x9a, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x7c, 0x3f, - 0x22, 0xbf, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d, - 0x9c, 0x3f, 0x9d, 0x33, 0x27, 0x75, 0x3f, 0x9e, - 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, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x9f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x81, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x9c, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0x9c, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x9e, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0400 .. 0x04ff */ - 0xe5, 0xb3, 0x3f, 0xe7, 0xb4, 0x3f, 0xb6, 0xb7, - 0x3f, 0x3f, 0x3f, 0x3f, 0xeb, 0xe9, 0xf5, 0x3f, - 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, - 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, - 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, - 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, - 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, - 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, - 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, - 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, - 0xc5, 0xa3, 0x3f, 0xc7, 0xa4, 0x3f, 0xa6, 0xa7, - 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, 0xc9, 0xd5, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xbd, 0xad, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xf6, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0xc1, 0xe1, 0xc1, 0x3f, 0x3f, 0xe5, 0xc5, - 0x3f, 0x3f, 0x3f, 0x3f, 0xf6, 0xd6, 0xfa, 0xda, - 0x3f, 0x3f, 0xe9, 0xc9, 0xe9, 0xc9, 0xef, 0xcf, - 0x3f, 0x3f, 0x3f, 0x3f, 0xfc, 0xdc, 0xf5, 0xd5, - 0xf5, 0xd5, 0xf5, 0xd5, 0xfe, 0xde, 0x3f, 0x3f, - 0xf9, 0xd9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xce, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0x95, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x9c, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, - 0x9c, 0x95, 0x96, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x97, 0x97, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0x3d, 0x3d, 0x3d, 0x98, 0x99, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, - 0x98, 0x99, 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, 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, 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, 0x9e, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, - 0x93, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x80, 0x80, 0x81, 0x81, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x82, 0x82, 0x82, 0x82, - 0x83, 0x83, 0x83, 0x83, 0x84, 0x84, 0x84, 0x84, - 0x85, 0x85, 0x85, 0x85, 0x86, 0x86, 0x86, 0x86, - 0x86, 0x86, 0x86, 0x86, 0x87, 0x87, 0x87, 0x87, - 0x87, 0x87, 0x87, 0x87, 0x88, 0x88, 0x88, 0x88, - 0x88, 0x88, 0x88, 0x88, 0x89, 0x89, 0x89, 0x89, - 0x89, 0x89, 0x89, 0x89, 0x8a, 0x8a, 0x8a, 0x8a, - 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, - 0x8a, 0x8a, 0x8a, 0x8a, 0x2d, 0x2d, 0x7c, 0x7c, - 0xa0, 0xa1, 0xa2, 0xa2, 0xa5, 0xa8, 0xa8, 0xa8, - 0xa9, 0xaa, 0xab, 0xac, 0xac, 0xae, 0xaf, 0xb0, - 0xb1, 0xb2, 0xb2, 0xb5, 0xb8, 0xb8, 0xb8, 0xb9, - 0xba, 0xbb, 0xbc, 0xbc, 0xbe, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0x8b, 0x3f, 0x3f, 0x3f, 0x8c, 0x3f, 0x3f, 0x3f, - 0x8d, 0x3f, 0x3f, 0x3f, 0x8e, 0x3f, 0x3f, 0x3f, - 0x8f, 0x90, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x94, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x4c, 0x3f, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, - 0x81, 0x3c, 0x5e, 0x3e, 0x76, 0x94, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_21866 = -{ - { 21866, 1, 0x003f, 0x003f, "Ukrainian KOI8" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28591.c b/reactos/tools/unicode/c_28591.c deleted file mode 100644 index f9c865c5215..00000000000 --- a/reactos/tools/unicode/c_28591.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 28591 (ISO 8859-1 Latin 1) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 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, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0xd0, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, - 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, - 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xb4, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xb4, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, - 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdf, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xc6, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xdf, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xdf, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0xf0, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, - 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, - 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xb4, 0x22, 0x3f, 0x60, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xab, 0xbb, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, - 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, - 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xa3, 0xac, 0xaf, 0xa6, 0xa5, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_28591 = -{ - { 28591, 1, 0x003f, 0x003f, "ISO 8859-1 Latin 1" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28592.c b/reactos/tools/unicode/c_28592.c deleted file mode 100644 index bd0a1924c4d..00000000000 --- a/reactos/tools/unicode/c_28592.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 28592 (ISO 8859-2 Latin 2 (East European)) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-2.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7, - 0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b, - 0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7, - 0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, - 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, - 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, - 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, - 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, - 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, - 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, - 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, - 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa4, 0x59, 0x7c, 0xa7, - 0xa8, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0x2d, - 0xb0, 0x3f, 0x32, 0x33, 0xb4, 0x75, 0x3f, 0x3f, - 0xb8, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0xc1, 0xc2, 0x41, 0xc4, 0x41, 0x41, 0xc7, - 0x45, 0xc9, 0x45, 0xcb, 0x49, 0xcd, 0xce, 0x49, - 0xd0, 0x4e, 0x4f, 0xd3, 0xd4, 0x4f, 0xd6, 0xd7, - 0x4f, 0x55, 0xda, 0x55, 0xdc, 0xdd, 0x3f, 0xdf, - 0x61, 0xe1, 0xe2, 0x61, 0xe4, 0x61, 0x61, 0xe7, - 0x65, 0xe9, 0x65, 0xeb, 0x69, 0xed, 0xee, 0x69, - 0x64, 0x6e, 0x6f, 0xf3, 0xf4, 0x6f, 0xf6, 0xf7, - 0x6f, 0x75, 0xfa, 0x75, 0xfc, 0xfd, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0xc3, 0xe3, 0xa1, 0xb1, 0xc6, 0xe6, - 0x43, 0x63, 0x43, 0x63, 0xc8, 0xe8, 0xcf, 0xef, - 0xd0, 0xf0, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0xca, 0xea, 0xcc, 0xec, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0xc5, 0xe5, 0x4c, 0x6c, 0xa5, 0xb5, 0x3f, - 0x3f, 0xa3, 0xb3, 0xd1, 0xf1, 0x4e, 0x6e, 0xd2, - 0xf2, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd5, 0xf5, 0x4f, 0x6f, 0xc0, 0xe0, 0x52, 0x72, - 0xd8, 0xf8, 0xa6, 0xb6, 0x53, 0x73, 0xaa, 0xba, - 0xa9, 0xb9, 0xde, 0xfe, 0xab, 0xbb, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xd9, 0xf9, - 0xdb, 0xfb, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0xac, 0xbc, 0xaf, 0xbf, 0xae, 0xbe, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, - 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0xd6, 0xf6, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xb4, 0xbd, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0xb7, - 0x27, 0x2d, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xff, 0xb0, 0xb2, 0x7e, 0xbd, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xb4, 0x5e, 0x7e, 0x2d, 0x2d, 0xa2, 0xff, - 0xa8, 0x3f, 0xb0, 0xbd, 0xb7, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0x3f, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdf, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xdf, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xdf, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0xa6, 0xb6, 0xa9, 0xb9, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, - 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0xc3, 0xe3, - 0xc3, 0xe3, 0xc3, 0xe3, 0xc3, 0xe3, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xb4, 0xbd, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0xb7, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x4c, 0x3f, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, - 0x7c, 0x3c, 0x5e, 0x3e, 0xb7, 0x3f, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_28592 = -{ - { 28592, 1, 0x003f, 0x003f, "ISO 8859-2 Latin 2 (East European)" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28593.c b/reactos/tools/unicode/c_28593.c deleted file mode 100644 index 647da2e1593..00000000000 --- a/reactos/tools/unicode/c_28593.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 28593 (ISO 8859-3 Latin 3 (South European)) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-3.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0x003f, 0x0124, 0x00a7, - 0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0x003f, 0x017b, - 0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7, - 0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0x00be, 0x017c, - 0x00c0, 0x00c1, 0x00c2, 0x003f, 0x00c4, 0x010a, 0x0108, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - 0x003f, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7, - 0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df, - 0x00e0, 0x00e1, 0x00e2, 0x003f, 0x00e4, 0x010b, 0x0109, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - 0x003f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7, - 0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa3, 0xa4, 0x59, 0x7c, 0xa7, - 0xa8, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0x2d, - 0xb0, 0x3f, 0xb2, 0xb3, 0xb4, 0xb5, 0x3f, 0xb7, - 0xb8, 0x31, 0x6f, 0x3e, 0x3f, 0xbd, 0xbe, 0x3f, - 0xc0, 0xc1, 0xc2, 0x41, 0xc4, 0x41, 0x41, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0x44, 0xd1, 0xd2, 0xd3, 0xd4, 0x4f, 0xd6, 0xd7, - 0x4f, 0xd9, 0xda, 0xdb, 0xdc, 0x59, 0x3f, 0xdf, - 0xe0, 0xe1, 0xe2, 0x61, 0xe4, 0x61, 0x61, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0x64, 0xf1, 0xf2, 0xf3, 0xf4, 0x6f, 0xf6, 0xf7, - 0x6f, 0xf9, 0xfa, 0xfb, 0xfc, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0xc6, 0xe6, 0xc5, 0xe5, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0xd8, 0xf8, 0xab, 0xbb, - 0xd5, 0xf5, 0x47, 0x67, 0xa6, 0xb6, 0xa1, 0xb1, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0xa9, 0xb9, 0x3f, 0x3f, 0xac, 0xbc, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0xde, 0xfe, 0xaa, 0xba, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0xdd, 0xfd, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0xaf, 0xbf, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, - 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0xd6, 0xf6, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xb4, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xff, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xb4, 0x5e, 0x7e, 0x2d, 0x2d, 0xa2, 0xff, - 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdf, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xdf, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xdf, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, - 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, - 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xb4, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0xb1, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0xa3, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_28593 = -{ - { 28593, 1, 0x003f, 0x003f, "ISO 8859-3 Latin 3 (South European)" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28594.c b/reactos/tools/unicode/c_28594.c deleted file mode 100644 index 82510155004..00000000000 --- a/reactos/tools/unicode/c_28594.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 28594 (ISO 8859-4 Latin 4 (Baltic old)) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-4.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7, - 0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af, - 0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7, - 0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b, - 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, - 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a, - 0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df, - 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, - 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b, - 0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7, - 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa4, 0x59, 0x7c, 0xa7, - 0xa8, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0xaf, - 0xb0, 0x3f, 0x32, 0x33, 0xb4, 0x75, 0x3f, 0x3f, - 0xb8, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x43, - 0x45, 0xc9, 0x45, 0xcb, 0x49, 0xcd, 0xce, 0x49, - 0xd0, 0x4e, 0x4f, 0x4f, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0x55, 0xda, 0xdb, 0xdc, 0x59, 0x3f, 0xdf, - 0x61, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x63, - 0x65, 0xe9, 0x65, 0xeb, 0x69, 0xed, 0xee, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0x75, 0xfa, 0xfb, 0xfc, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0xc0, 0xe0, 0x41, 0x61, 0xa1, 0xb1, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0xc8, 0xe8, 0x44, 0x64, - 0xd0, 0xf0, 0xaa, 0xba, 0x45, 0x65, 0xcc, 0xec, - 0xca, 0xea, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0xab, 0xbb, 0x48, 0x68, 0x48, 0x68, - 0xa5, 0xb5, 0xcf, 0xef, 0x49, 0x69, 0xc7, 0xe7, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0xd3, 0xf3, - 0xa2, 0x4c, 0x6c, 0xa6, 0xb6, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0xd1, 0xf1, 0x4e, - 0x6e, 0x3f, 0xbd, 0xbf, 0xd2, 0xf2, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0xa3, 0xb3, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0xa9, 0xb9, 0x54, 0x74, 0x54, 0x74, 0xac, 0xbc, - 0xdd, 0xfd, 0xde, 0xfe, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0xd9, 0xf9, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0xae, 0xbe, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, - 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, - 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xb4, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0xb7, - 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xff, 0xb0, 0xb2, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xb4, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0xff, - 0xa8, 0x3f, 0xb0, 0x22, 0xb7, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0x3f, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdf, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xc6, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0xbf, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xdf, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xdf, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0xaa, 0xba, 0xaa, 0xba, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, - 0xd2, 0xf2, 0xd2, 0xf2, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0xa9, 0xb9, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0xdd, 0xfd, 0xde, 0xfe, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, - 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xb4, 0x22, 0x3f, 0x60, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0xb7, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x4c, 0x3f, 0xaf, 0x7c, 0x59, 0x3f, 0x3f, - 0x7c, 0x3c, 0x5e, 0x3e, 0xb7, 0x3f, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_28594 = -{ - { 28594, 1, 0x003f, 0x003f, "ISO 8859-4 Latin 4 (Baltic old)" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28595.c b/reactos/tools/unicode/c_28595.c deleted file mode 100644 index e0304447928..00000000000 --- a/reactos/tools/unicode/c_28595.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 28595 (ISO 8859-5 Cyrillic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-5.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, - 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 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, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, - 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, - 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xfd, - 0x22, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0x2d, - 0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 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, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0300 .. 0x03ff */ - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0400 .. 0x04ff */ - 0xb5, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xb8, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xd5, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xd8, 0xfe, 0xff, - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xb6, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0xd0, 0xb0, 0xd0, 0x3f, 0x3f, 0xb5, 0xd5, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb6, 0xd6, 0xb7, 0xd7, - 0x3f, 0x3f, 0xb8, 0xd8, 0xb8, 0xd8, 0xbe, 0xde, - 0x3f, 0x3f, 0x3f, 0x3f, 0xcd, 0xed, 0xc3, 0xe3, - 0xc3, 0xe3, 0xc3, 0xe3, 0xc7, 0xe7, 0x3f, 0x3f, - 0xcb, 0xeb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdd, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 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, - 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, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0xf0, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_28595 = -{ - { 28595, 1, 0x003f, 0x003f, "ISO 8859-5 Cyrillic" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28596.c b/reactos/tools/unicode/c_28596.c deleted file mode 100644 index 382b207fe1f..00000000000 --- a/reactos/tools/unicode/c_28596.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 28596 (ISO 8859-6 Arabic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-6.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x003f, 0x003f, 0x003f, 0x00a4, 0x003f, 0x003f, 0x00a7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x060c, 0x00ad, 0x003f, 0x003f, - 0x00b0, 0x00b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x00b6, 0x00b7, - 0x003f, 0x003f, 0x003f, 0x061b, 0x00bc, 0x00bd, 0x00be, 0x061f, - 0x003f, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, - 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, - 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, - 0x0638, 0x0639, 0x063a, 0x003f, 0x003f, 0x003f, 0x00de, 0x00df, - 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, - 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, - 0x0650, 0x0651, 0x0652, 0x003f, 0x003f, 0x003f, 0x003f, 0x00f7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00fe, 0x003f -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa4, 0x59, 0x7c, 0xa7, - 0x22, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0x2d, - 0xb0, 0xb1, 0x32, 0x33, 0x27, 0x75, 0xb6, 0xb7, - 0x2c, 0x31, 0x6f, 0x3e, 0xbc, 0xbd, 0xbe, 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, 0xde, 0xdf, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xf7, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0xfe, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0300 .. 0x03ff */ - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0600 .. 0x06ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xbb, 0x3f, 0x3f, 0x3f, 0xbf, - 0x3f, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xf0, 0xf1, 0xf2, 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, - 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, 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, 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, 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, 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, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 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, 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, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 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, - 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, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1300, 0x1300, 0x0400, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_28596 = -{ - { 28596, 1, 0x003f, 0x003f, "ISO 8859-6 Arabic" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28597.c b/reactos/tools/unicode/c_28597.c deleted file mode 100644 index 5d4daa4fef7..00000000000 --- a/reactos/tools/unicode/c_28597.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 28597 (ISO 8859-7 Greek) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-7.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x2018, 0x2019, 0x00a3, 0x20ac, 0x20af, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x037a, 0x00ab, 0x00ac, 0x00ad, 0x003f, 0x2015, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7, - 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, - 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, - 0x03a0, 0x03a1, 0x003f, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, - 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, - 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, - 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, - 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, - 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0x003f -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa3, 0x3f, 0x59, 0xa6, 0xa7, - 0xa8, 0xa9, 0x61, 0xab, 0xac, 0xad, 0x72, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0x27, 0xec, 0x3f, 0xb7, - 0x2c, 0x31, 0x6f, 0xbb, 0x3f, 0xbd, 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, 0xe2, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xa1, 0xa2, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xaf, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, - 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xaa, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0x3f, 0xbc, 0x3f, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0x3f, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 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, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x3f, - 0xe2, 0xe8, 0xd5, 0xd5, 0xd5, 0xf6, 0xf0, 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, - 0xea, 0xf1, 0xf2, 0x3f, 0xc8, 0xe5, 0x3f, 0x3f, - 0x3f, 0xd3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe2, 0xe3, 0xe4, - 0xf6, 0xf7, 0x69, 0x72, 0x75, 0x76, 0xe2, 0xe3, - 0xf1, 0xf6, 0xf7, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0xe8, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0x3f, 0x3f, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x3f, 0x3f, - 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, - 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, - 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, - 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, - 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x3f, 0x3f, - 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0x3f, 0x3f, - 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, - 0x3f, 0xd5, 0x3f, 0xd5, 0x3f, 0xd5, 0x3f, 0xd5, - 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, - 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, - 0xe1, 0xdc, 0xe5, 0xdd, 0xe7, 0xde, 0xe9, 0xdf, - 0xef, 0xfc, 0xf5, 0xfd, 0xf9, 0xfe, 0x3f, 0x3f, - 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, - 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, - 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, - 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, - 0xe1, 0xe1, 0xe1, 0xe1, 0xdc, 0x3f, 0xe1, 0xe1, - 0xc1, 0xc1, 0xc1, 0xb6, 0xc1, 0x3f, 0xe9, 0x3f, - 0x3f, 0xa8, 0xe7, 0xe7, 0xde, 0x3f, 0xe7, 0xe7, - 0xc5, 0xb8, 0xc7, 0xb9, 0xc7, 0x3f, 0x3f, 0x3f, - 0xe9, 0xe9, 0xfa, 0xc0, 0x3f, 0x3f, 0xe9, 0xfa, - 0xc9, 0xc9, 0xc9, 0xba, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf5, 0xf5, 0xfb, 0xe0, 0xf1, 0xf1, 0xf5, 0xfb, - 0xd5, 0xd5, 0xd5, 0xbe, 0xd1, 0xa8, 0xb5, 0x60, - 0x3f, 0x3f, 0xf9, 0xf9, 0xfe, 0x3f, 0xf9, 0xf9, - 0xcf, 0xbc, 0xd9, 0xbf, 0xd9, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0xaf, 0xaf, 0xaf, 0x3f, 0x5f, - 0xa1, 0xa2, 0x2c, 0xa1, 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, 0xa1, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa4, 0x3f, 0x3f, 0xa5, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xd9, 0x3f, - 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xf0, 0xe3, 0xc3, 0xd0, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xab, 0xbb, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, - 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, - 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, - 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, - 0xaf, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, - 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, - 0x5c, 0x24, 0x25, 0x40, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0xa3, 0xac, 0xaf, 0xa6, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_28597 = -{ - { 28597, 1, 0x003f, 0x003f, "ISO 8859-7 Greek" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28598.c b/reactos/tools/unicode/c_28598.c deleted file mode 100644 index 12fe6eab3f7..00000000000 --- a/reactos/tools/unicode/c_28598.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 28598 (ISO 8859-8 Hebrew) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-8.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x003f, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00de, 0x2017, - 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, - 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x05ea, 0x003f, 0x003f, 0x200e, 0x200f, 0x003f -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0x61, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0x6f, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, - 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, - 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0xaa, - 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, 0xba, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xb4, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xb4, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, - 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0500 .. 0x05ff */ - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe0, 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, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 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, 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, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0xfd, 0xfe, - 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0xdf, - 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, 0xb4, 0x22, 0x3f, 0x60, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0xe0, 0xe1, 0xe2, - 0xe3, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xab, 0xbb, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, - 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, - 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0xe9, 0x3f, 0x3f, - 0xf2, 0xe0, 0xe3, 0xe4, 0xeb, 0xec, 0xed, 0xf8, - 0xfa, 0x2b, 0xf9, 0xf9, 0xf9, 0xf9, 0xe0, 0xe0, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x3f, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0x3f, 0xee, 0x3f, - 0xf0, 0xf1, 0x3f, 0xf3, 0xf4, 0x3f, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xe5, 0xe1, 0xeb, 0xf4, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xa3, 0xac, 0xaf, 0xa6, 0xa5, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1300, 0x0400, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_28598 = -{ - { 28598, 1, 0x003f, 0x003f, "ISO 8859-8 Hebrew" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28599.c b/reactos/tools/unicode/c_28599.c deleted file mode 100644 index 4f728ecc039..00000000000 --- a/reactos/tools/unicode/c_28599.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 28599 (ISO 8859-9 Latin 5 (Turkish)) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-9.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0x44, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x59, 0x3f, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0x64, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x79, 0x3f, 0xff, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0xd0, 0xf0, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0xdd, 0xfd, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0xde, 0xfe, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, - 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, - 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xb4, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xb4, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, - 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdf, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xc6, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xdf, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xdf, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, - 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, - 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xb4, 0x22, 0x3f, 0x60, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xab, 0xbb, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, - 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, - 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xa3, 0xac, 0xaf, 0xa6, 0xa5, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_28599 = -{ - { 28599, 1, 0x003f, 0x003f, "ISO 8859-9 Latin 5 (Turkish)" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28600.c b/reactos/tools/unicode/c_28600.c deleted file mode 100644 index fe4e27a5023..00000000000 --- a/reactos/tools/unicode/c_28600.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 28600 (ISO 8859-10 Latin 6 (Nordic)) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-10.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x0104, 0x0112, 0x0122, 0x012a, 0x0128, 0x0136, 0x00a7, - 0x013b, 0x0110, 0x0160, 0x0166, 0x017d, 0x00ad, 0x016a, 0x014a, - 0x00b0, 0x0105, 0x0113, 0x0123, 0x012b, 0x0129, 0x0137, 0x00b7, - 0x013c, 0x0111, 0x0161, 0x0167, 0x017e, 0x2015, 0x016b, 0x014b, - 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, - 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x00cf, - 0x00d0, 0x0145, 0x014c, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0168, - 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, - 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, - 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x00ef, - 0x00f0, 0x0146, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169, - 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa7, - 0x22, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0xbd, - 0xb0, 0x3f, 0x32, 0x33, 0x27, 0x75, 0x3f, 0xb7, - 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x43, - 0x45, 0xc9, 0x45, 0xcb, 0x49, 0xcd, 0xce, 0xcf, - 0xd0, 0x4e, 0x4f, 0xd3, 0xd4, 0xd5, 0xd6, 0x78, - 0xd8, 0x55, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0x61, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x63, - 0x65, 0xe9, 0x65, 0xeb, 0x69, 0xed, 0xee, 0xef, - 0xf0, 0x6e, 0x6f, 0xf3, 0xf4, 0xf5, 0xf6, 0x3f, - 0xf8, 0x75, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x79, - /* 0x0100 .. 0x01ff */ - 0xc0, 0xe0, 0x41, 0x61, 0xa1, 0xb1, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0xc8, 0xe8, 0x44, 0x64, - 0xa9, 0xb9, 0xa2, 0xb2, 0x45, 0x65, 0xcc, 0xec, - 0xca, 0xea, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0xa3, 0xb3, 0x48, 0x68, 0x48, 0x68, - 0xa5, 0xb5, 0xa4, 0xb4, 0x49, 0x69, 0xc7, 0xe7, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0xa6, 0xb6, - 0xff, 0x4c, 0x6c, 0xa8, 0xb8, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0xd1, 0xf1, 0x4e, - 0x6e, 0x3f, 0xaf, 0xbf, 0xd2, 0xf2, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0xaa, 0xba, 0x54, 0x74, 0x54, 0x74, 0xab, 0xbb, - 0xd7, 0xf7, 0xae, 0xbe, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0xd9, 0xf9, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0xac, 0xbc, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, - 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, - 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xbd, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0xbd, 0xbd, 0x3f, 0x3f, - 0x22, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xb7, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdf, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xc6, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0xbf, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xdf, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xdf, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0xf0, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0xa2, 0xb2, 0xa2, 0xb2, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, - 0xd2, 0xf2, 0xd2, 0xf2, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0xaa, 0xba, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0xd7, 0xf7, 0xae, 0xbe, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, - 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0xbd, 0xbd, 0xbd, 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, 0x60, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xbd, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbd, 0xbd, 0xbd, 0xbd, 0x5f, 0x5f, 0x5f, - 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, - 0xbd, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, - 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, - 0x5c, 0x24, 0x25, 0x40, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x4c, 0x3f, 0xbd, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_28600 = -{ - { 28600, 1, 0x003f, 0x003f, "ISO 8859-10 Latin 6 (Nordic)" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28603.c b/reactos/tools/unicode/c_28603.c deleted file mode 100644 index 3d28197f7e0..00000000000 --- a/reactos/tools/unicode/c_28603.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 28603 (ISO 8859-13 Latin 7 (Baltic)) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-13.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x201d, 0x00a2, 0x00a3, 0x00a4, 0x201e, 0x00a6, 0x00a7, - 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x201c, 0x00b5, 0x00b6, 0x00b7, - 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, - 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, - 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, - 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, - 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, - 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, - 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, - 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, - 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa2, 0xa3, 0xa4, 0x59, 0xa6, 0xa7, - 0x22, 0xa9, 0x61, 0xab, 0xac, 0xad, 0xae, 0x2d, - 0xb0, 0xb1, 0xb2, 0xb3, 0x27, 0xb5, 0xb6, 0xb7, - 0x2c, 0xb9, 0x6f, 0xbb, 0xbc, 0xbd, 0xbe, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0xc4, 0xc5, 0xaf, 0x43, - 0x45, 0xc9, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, - 0x44, 0x4e, 0x4f, 0xd3, 0x4f, 0xd5, 0xd6, 0xd7, - 0xa8, 0x55, 0x55, 0x55, 0xdc, 0x59, 0x3f, 0xdf, - 0x61, 0x61, 0x61, 0x61, 0xe4, 0xe5, 0xbf, 0x63, - 0x65, 0xe9, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0xf3, 0x6f, 0xf5, 0xf6, 0xf7, - 0xb8, 0x75, 0x75, 0x75, 0xfc, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0xc2, 0xe2, 0x41, 0x61, 0xc0, 0xe0, 0xc3, 0xe3, - 0x43, 0x63, 0x43, 0x63, 0xc8, 0xe8, 0x44, 0x64, - 0x44, 0x64, 0xc7, 0xe7, 0x45, 0x65, 0xcb, 0xeb, - 0xc6, 0xe6, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0xcc, 0xec, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0xce, 0xee, 0x49, 0x69, 0xc1, 0xe1, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0xcd, 0xed, - 0x3f, 0x4c, 0x6c, 0xcf, 0xef, 0x4c, 0x6c, 0x3f, - 0x3f, 0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0xd4, 0xf4, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0xaa, 0xba, - 0x52, 0x72, 0xda, 0xfa, 0x53, 0x73, 0x53, 0x73, - 0xd0, 0xf0, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0xdb, 0xfb, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0xd8, 0xf8, 0x57, 0x77, 0x59, 0x79, - 0x59, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, - 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, - 0x41, 0x61, 0xaf, 0xbf, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0xc5, 0xe5, 0xaf, 0xbf, 0xa8, 0xb8, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0xff, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xb7, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdf, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xaf, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xdf, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xdf, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0xc7, 0xe7, 0xc7, 0xe7, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, - 0xd4, 0xf4, 0xd4, 0xf4, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0xda, 0xfa, 0xd0, 0xf0, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0xdb, 0xfb, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, - 0x60, 0xff, 0x2c, 0x60, 0xb4, 0xa1, 0xa5, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xab, 0xbb, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, - 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, - 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xb4, 0xa1, 0xa5, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xa3, 0xac, 0x2d, 0xa6, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_28603 = -{ - { 28603, 1, 0x003f, 0x003f, "ISO 8859-13 Latin 7 (Baltic)" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28604.c b/reactos/tools/unicode/c_28604.c deleted file mode 100644 index 5127d13115a..00000000000 --- a/reactos/tools/unicode/c_28604.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 28604 (ISO 8859-14 Latin 8 (Celtic)) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-14.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7, - 0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178, - 0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56, - 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - 0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df, - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - 0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa3, 0x3f, 0x59, 0x7c, 0xa7, - 0x22, 0xa9, 0x61, 0x3c, 0x3f, 0xad, 0xae, 0x2d, - 0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 0xb6, 0x3f, - 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0x44, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0x78, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x3f, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0x64, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x3f, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x3f, 0xff, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0xa4, 0xa5, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0xb2, 0xb3, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0xd0, 0xf0, 0xde, 0xfe, - 0xaf, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, - 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, - 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0300 .. 0x03ff */ - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdf, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xc6, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xdf, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xdf, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0xa1, 0xa2, 0x42, 0x62, 0x42, 0x62, - 0xc7, 0xe7, 0xa6, 0xab, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xb0, 0xb1, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0xb4, 0xb5, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0xb7, 0xb9, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0xbb, 0xbf, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0xd7, 0xf7, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0xa8, 0xb8, 0xaa, 0xba, 0xbd, 0xbe, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, - 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, - 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0xac, 0xbc, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 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, - 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, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0xa3, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_28604 = -{ - { 28604, 1, 0x003f, 0x003f, "ISO 8859-14 Latin 8 (Celtic)" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28605.c b/reactos/tools/unicode/c_28605.c deleted file mode 100644 index e09705787ed..00000000000 --- a/reactos/tools/unicode/c_28605.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 28605 (ISO 8859-15 Latin 9 (Euro)) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-15.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x00a1, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x0160, 0x00a7, - 0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7, - 0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 0x00bf, - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa1, 0xa2, 0xa3, 0x3f, 0xa5, 0x7c, 0xa7, - 0x22, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0x27, 0xb5, 0xb6, 0xb7, - 0x2c, 0xb9, 0xba, 0xbb, 0x3f, 0x3f, 0x3f, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 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, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0xd0, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0xbc, 0xbd, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0xa6, 0xa8, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0xbe, 0x5a, 0x7a, 0x5a, 0x7a, 0xb4, 0xb8, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, - 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, - 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xaf, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, - 0x22, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xb7, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdf, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xc6, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xdf, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xdf, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0xf0, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0xa6, 0xa8, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, - 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, - 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0x60, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa4, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xab, 0xbb, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa2, 0xa3, 0xac, 0xaf, 0x7c, 0xa5, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_28605 = -{ - { 28605, 1, 0x003f, 0x003f, "ISO 8859-15 Latin 9 (Euro)" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_28606.c b/reactos/tools/unicode/c_28606.c deleted file mode 100644 index d54a7ef44a7..00000000000 --- a/reactos/tools/unicode/c_28606.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 28606 (ISO 8859-16 Latin 10 (Balkan)) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-16.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 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, 0x0104, 0x0105, 0x0141, 0x20ac, 0x201e, 0x0160, 0x00a7, - 0x0161, 0x00a9, 0x0218, 0x00ab, 0x0179, 0x00ad, 0x017a, 0x017b, - 0x00b0, 0x00b1, 0x010c, 0x0142, 0x017d, 0x201d, 0x00b6, 0x00b7, - 0x017e, 0x010d, 0x0219, 0x00bb, 0x0152, 0x0153, 0x0178, 0x017c, - 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0106, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - 0x0110, 0x0143, 0x00d2, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x015a, - 0x0170, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0118, 0x021a, 0x00df, - 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x0107, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - 0x0111, 0x0144, 0x00f2, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x015b, - 0x0171, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0119, 0x021b, 0x00ff -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 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, 0xa7, - 0x22, 0xa9, 0x61, 0xab, 0x3f, 0xad, 0x72, 0x2d, - 0xb0, 0xb1, 0x32, 0x33, 0x27, 0x75, 0xb6, 0xb7, - 0x2c, 0x31, 0x6f, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc0, 0xc1, 0xc2, 0x41, 0xc4, 0x41, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0x4e, 0xd2, 0xd3, 0xd4, 0x4f, 0xd6, 0x78, - 0x4f, 0xd9, 0xda, 0xdb, 0xdc, 0x59, 0x3f, 0xdf, - 0xe0, 0xe1, 0xe2, 0x61, 0xe4, 0x61, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0x64, 0x6e, 0xf2, 0xf3, 0xf4, 0x6f, 0xf6, 0x3f, - 0x6f, 0xf9, 0xfa, 0xfb, 0xfc, 0x79, 0x3f, 0xff, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0xc3, 0xe3, 0xa1, 0xa2, 0xc5, 0xe5, - 0x43, 0x63, 0x43, 0x63, 0xb2, 0xb9, 0x44, 0x64, - 0xd0, 0xf0, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0xdd, 0xfd, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0xa3, 0xb3, 0xd1, 0xf1, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd5, 0xf5, 0xbc, 0xbd, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0xd7, 0xf7, 0x53, 0x73, 0x53, 0x73, - 0xa6, 0xa8, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0xd8, 0xf8, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0xbe, 0xac, 0xae, 0xaf, 0xbf, 0xb4, 0xb8, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, - 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, - 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0xc6, 0xe6, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0xaa, 0xba, 0xde, 0xfe, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0xd6, 0xf6, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xb7, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xdf, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xc6, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xdf, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xdf, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0xd7, 0xf7, 0xa6, 0xa8, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, - 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0xc3, 0xe3, - 0xc3, 0xe3, 0xc3, 0xe3, 0xc3, 0xe3, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, - 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, - 0x60, 0x27, 0x2c, 0x60, 0x22, 0xb5, 0xa5, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa4, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xb0, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xab, 0xbb, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, - 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0xb5, 0xa5, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 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, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_28606 = -{ - { 28606, 1, 0x003f, 0x003f, "ISO 8859-16 Latin 10 (Balkan)" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_424.c b/reactos/tools/unicode/c_424.c deleted file mode 100644 index c3da0035c37..00000000000 --- a/reactos/tools/unicode/c_424.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 424 (IBM EBCDIC Hebrew) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/CP424.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - 0x0020, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, - 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - 0x003f, 0x05ea, 0x003f, 0x003f, 0x00a0, 0x003f, 0x003f, 0x003f, - 0x2017, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - 0x003f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x003f, 0x003f, 0x003f, 0x00b1, - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x003f, 0x003f, 0x003f, 0x00b8, 0x003f, 0x00a4, - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00ae, - 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x003f, 0x003f, 0x003f, 0x00de, 0x00df, - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x003f, 0x003f, 0x003f, 0x00fe, 0x009f -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, - 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, - 0x74, 0x5a, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, - 0xbd, 0xb4, 0x81, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, - 0x9d, 0xda, 0x96, 0x8b, 0xb7, 0xb8, 0xb9, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc3, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc9, 0xc9, 0xc9, 0xc9, - 0xc4, 0xd5, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xbf, - 0xd6, 0xe4, 0xe4, 0xe4, 0xe4, 0xe8, 0xde, 0xdf, - 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x83, - 0x85, 0x85, 0x85, 0x85, 0x89, 0x89, 0x89, 0x89, - 0x84, 0x95, 0x96, 0x96, 0x96, 0x96, 0x96, 0xe1, - 0x96, 0xa4, 0xa4, 0xa4, 0xa4, 0xa8, 0xfe, 0xa8, - /* 0x0100 .. 0x01ff */ - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc3, 0x83, - 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc4, 0x84, - 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc7, 0x87, 0xc7, 0x87, - 0xc7, 0x87, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, - 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, - 0xc9, 0x89, 0x3f, 0x3f, 0xd1, 0x91, 0xd2, 0x92, - 0x3f, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0x3f, - 0x3f, 0xd3, 0x93, 0xd5, 0x95, 0xd5, 0x95, 0xd5, - 0x95, 0x3f, 0x3f, 0x3f, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, - 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, - 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe6, 0xa6, 0xe8, 0xa8, - 0xe8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0xa2, - 0x82, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc6, 0x86, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, - 0x3f, 0x3f, 0x93, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, - 0xd6, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0xe3, 0xe4, - 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc9, - 0x89, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, - 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0x3f, 0xc1, 0x81, - 0xc1, 0x81, 0xc1, 0x81, 0xc7, 0x87, 0xc7, 0x87, - 0xd2, 0x92, 0xd6, 0x96, 0xd6, 0x96, 0x3f, 0x3f, - 0x91, 0x3f, 0x3f, 0x3f, 0xc7, 0x87, 0x3f, 0x3f, - 0xd5, 0x95, 0xc1, 0x81, 0xc1, 0x81, 0xd6, 0x96, - /* 0x0200 .. 0x02ff */ - 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, - 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, - 0xd9, 0x99, 0xd9, 0x99, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe2, 0xa2, 0xe3, 0xa3, 0x3f, 0x3f, 0xc8, 0x88, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, - 0xc5, 0x85, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xe8, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x87, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x88, 0x3f, 0x91, 0x99, 0x3f, 0x3f, 0x3f, 0xa6, - 0xa8, 0xbe, 0x7f, 0x79, 0x7d, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0xb0, 0xa5, - 0x7d, 0xbc, 0xbe, 0x79, 0x3f, 0x6d, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x90, 0x3f, 0xa1, 0x7f, 0x3f, 0x3f, - 0x3f, 0x93, 0xa2, 0xa7, 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, - /* 0x0300 .. 0x03ff */ - 0x79, 0xbe, 0xb0, 0xa1, 0xbc, 0xbc, 0x3f, 0x3f, - 0xbd, 0x3f, 0x90, 0x7f, 0xa5, 0x3f, 0x7f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x6d, 0x6d, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x79, 0xbe, 0x3f, 0x3f, 0xbd, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0xbd, 0xc1, 0xb3, - 0xc5, 0xc8, 0xc9, 0x3f, 0xd6, 0x3f, 0xe8, 0x3f, - 0x3f, 0xc1, 0xc2, 0x3f, 0x3f, 0xc5, 0xe9, 0xc8, - 0x3f, 0xc9, 0xd2, 0x3f, 0xd4, 0xd5, 0x3f, 0xd6, - 0x3f, 0xd7, 0x3f, 0x3f, 0xe3, 0xe8, 0x3f, 0xe7, - 0x3f, 0x3f, 0xc9, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xe8, 0xe8, 0xe8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0500 .. 0x05ff */ - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, - 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x71, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc2, 0x3f, - 0xc4, 0xc5, 0x3f, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, - 0xd3, 0xd4, 0xd5, 0x3f, 0xd6, 0x3f, 0xd7, 0xd9, - 0xe3, 0xe4, 0xe6, 0x81, 0x3f, 0x3f, 0x3f, 0x82, - 0x84, 0x85, 0x3f, 0x3f, 0x3f, 0x87, 0x3f, 0x92, - 0x94, 0x3f, 0x96, 0x3f, 0x3f, 0x3f, 0x97, 0xa3, - 0xa4, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x89, 0x99, 0xa4, 0xa5, 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, 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, 0x83, 0x3f, 0x84, 0x3f, - 0x86, 0x3f, 0x87, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xa9, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0xc1, 0x81, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, - 0xc3, 0x83, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, - 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc6, 0x86, - 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, - 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0xc9, 0x89, - 0xd2, 0x92, 0xd2, 0x92, 0xd2, 0x92, 0xd3, 0x93, - 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd4, 0x94, - 0xd4, 0x94, 0xd4, 0x94, 0xd5, 0x95, 0xd5, 0x95, - 0xd5, 0x95, 0xd5, 0x95, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xd7, 0x97, 0xd7, 0x97, - 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, - 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, - 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, - 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe5, 0xa5, 0xe5, 0xa5, - 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, - 0xe6, 0xa6, 0xe7, 0xa7, 0xe7, 0xa7, 0xe8, 0xa8, - 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0x88, 0xa3, - 0xa6, 0xa8, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, - 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, - 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe8, 0xe8, 0xe8, 0xe8, 0xd7, 0xbd, 0xbd, 0x79, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x60, 0x3f, 0x60, 0x60, 0x60, 0x3f, 0x78, - 0x79, 0x7d, 0x6b, 0x79, 0x7f, 0x7f, 0x6b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, - 0x3f, 0x3f, 0xbe, 0x7f, 0x3f, 0x79, 0x3f, 0x3f, - 0x3f, 0x4c, 0x6e, 0x3f, 0x5a, 0x3f, 0xbc, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 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, 0x40, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x90, 0x89, 0x3f, 0x3f, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x95, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x3f, - 0x81, 0x85, 0x96, 0xa7, 0x3f, 0x88, 0x92, 0x93, - 0x94, 0x95, 0x97, 0xa2, 0xa3, 0x3f, 0x3f, 0x3f, - 0x3f, 0x4a, 0x3f, 0x3f, 0xb1, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0xc3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, - 0x3f, 0x3f, 0x87, 0xc8, 0xc8, 0xc8, 0x88, 0x88, - 0xc9, 0xc9, 0xd3, 0x93, 0x3f, 0xd5, 0x3f, 0x3f, - 0xd7, 0xd7, 0xd8, 0xd9, 0xd9, 0xd9, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0x3f, 0x3f, - 0xe9, 0x3f, 0xd2, 0xc1, 0xc2, 0xc3, 0x85, 0x85, - 0xc5, 0xc6, 0x3f, 0xd4, 0x96, 0x41, 0x42, 0x43, - 0x44, 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x84, 0x85, - 0x89, 0x91, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0x3f, 0x3f, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, - 0x3f, 0xe7, 0x3f, 0x3f, 0xd3, 0xc3, 0xc4, 0xd4, - 0x89, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa7, 0x3f, 0x3f, 0x93, 0x83, 0x84, 0x94, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4c, 0xb0, 0x6e, 0xa5, 0x60, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x60, 0x8f, 0x3f, 0x61, 0xe0, 0x5c, - 0x90, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xd3, - 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa1, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x8a, 0x8b, 0x3f, 0x3f, 0x4c, 0x6e, - 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, 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, 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, 0xb3, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0xb0, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x4c, 0x6e, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, - 0xf9, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc2, - 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, - 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, - 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, - 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x60, 0x60, 0x4f, 0x4f, 0x60, 0x60, 0x6a, 0x6a, - 0x60, 0x60, 0x6a, 0x6a, 0x4e, 0x4e, 0x4e, 0x4e, - 0x5f, 0x5f, 0x5f, 0x5f, 0xd3, 0xd3, 0xd3, 0xd3, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0xe3, - 0xe3, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x60, 0x60, 0x6a, 0x6a, - 0x7e, 0x4f, 0x4e, 0x4e, 0x4e, 0x5f, 0x5f, 0x5f, - 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x61, 0xe0, 0xe7, 0x60, 0x4f, 0x60, 0x4f, - 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xd6, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x91, 0xe5, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4c, 0x6e, 0x8a, 0x8b, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xba, 0xbb, 0x3f, 0x7f, 0x7f, 0x6b, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x51, 0x3f, 0x3f, - 0x62, 0x41, 0x44, 0x45, 0x53, 0x54, 0x55, 0x68, - 0x71, 0x4e, 0x69, 0x69, 0x69, 0x69, 0x41, 0x41, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x3f, - 0x49, 0x51, 0x52, 0x53, 0x54, 0x3f, 0x56, 0x3f, - 0x58, 0x59, 0x3f, 0x63, 0x64, 0x3f, 0x66, 0x67, - 0x68, 0x69, 0x71, 0x46, 0x42, 0x53, 0x64, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbc, 0xbc, 0xbc, 0xbc, 0x6d, 0x6d, 0x6d, - 0x6b, 0x3f, 0x4b, 0x3f, 0x5e, 0x7a, 0x6f, 0x5a, - 0x60, 0x4d, 0x5d, 0xc0, 0xd0, 0x3f, 0x3f, 0x7b, - 0x50, 0x5c, 0x4e, 0x60, 0x4c, 0x6e, 0x7e, 0x3f, - 0xe0, 0x5b, 0x6c, 0x7c, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, - 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4a, 0xb1, 0x5f, 0xbc, 0x6a, 0xb2, 0x3f, 0x3f, - 0x4f, 0x4c, 0xb0, 0x6e, 0xa5, 0x3f, 0xd6, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1300, 0x0400, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_424 = -{ - { 424, 1, 0x003f, 0x003f, "IBM EBCDIC Hebrew" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_437.c b/reactos/tools/unicode/c_437.c deleted file mode 100644 index 0617800852d..00000000000 --- a/reactos/tools/unicode/c_437.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 437 (OEM United States) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP437.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0xad, 0x9b, 0x9c, 0x3f, 0x9d, 0x7c, 0x3f, - 0x22, 0x63, 0xa6, 0xae, 0xaa, 0x2d, 0x72, 0x2d, - 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xe6, 0x3f, 0xfa, - 0x2c, 0x31, 0xa7, 0xaf, 0xac, 0xab, 0x3f, 0xa8, - 0x41, 0x41, 0x41, 0x41, 0x8e, 0x8f, 0x92, 0x80, - 0x45, 0x90, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, - 0x44, 0xa5, 0x4f, 0x4f, 0x4f, 0x4f, 0x99, 0x78, - 0x4f, 0x55, 0x55, 0x55, 0x9a, 0x59, 0x3f, 0xe1, - 0x85, 0xa0, 0x83, 0x61, 0x84, 0x86, 0x91, 0x87, - 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, - 0x64, 0xa4, 0x95, 0xa2, 0x93, 0x6f, 0x94, 0xf6, - 0x6f, 0x97, 0xa3, 0x96, 0x81, 0x79, 0x3f, 0x98, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, - 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, - 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x99, 0x94, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, - 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, - 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, - 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, - 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, - 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 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, 0xe9, 0xee, 0x3f, 0x3f, - 0x3f, 0xe4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x92, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe1, 0x3f, 0xeb, - 0xed, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xe1, 0x3f, - 0x3f, 0xed, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x8b, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x83, 0x41, 0x83, - 0x41, 0x83, 0x41, 0x83, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x88, - 0x45, 0x88, 0x45, 0x88, 0x45, 0x88, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0xea, 0xea, 0xea, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x9b, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x9e, - 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, 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, 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, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, - 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xe3, 0x3f, 0xe2, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, - 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, - 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, - 0xf3, 0xf2, 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, 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, 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, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x7c, 0x7c, - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, - 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x9b, 0x9c, 0xaa, 0x2d, 0x7c, 0x9d, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_437 = -{ - { 437, 1, 0x003f, 0x003f, "OEM United States" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_500.c b/reactos/tools/unicode/c_500.c deleted file mode 100644 index 64a13ab6aa1..00000000000 --- a/reactos/tools/unicode/c_500.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 500 (IBM EBCDIC International) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/EBCDIC/CP500.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 0x07, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, - 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, - /* 0x0100 .. 0x01ff */ - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc3, 0x83, - 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc4, 0x84, - 0xac, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc7, 0x87, 0xc7, 0x87, - 0xc7, 0x87, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, - 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, - 0xc9, 0x89, 0x3f, 0x3f, 0xd1, 0x91, 0xd2, 0x92, - 0x3f, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0x3f, - 0x3f, 0xd3, 0x93, 0xd5, 0x95, 0xd5, 0x95, 0xd5, - 0x95, 0x3f, 0x3f, 0x3f, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, - 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, - 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe6, 0xa6, 0xe8, 0xa8, - 0xe8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0xa2, - 0x82, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc6, 0x86, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, - 0x3f, 0x3f, 0x93, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, - 0xd6, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0xe3, 0xe4, - 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xbb, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc9, - 0x89, 0xd6, 0x96, 0xe4, 0xa4, 0xfc, 0xdc, 0xfc, - 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0x3f, 0x63, 0x43, - 0xc1, 0x81, 0x9e, 0x9c, 0xc7, 0x87, 0xc7, 0x87, - 0xd2, 0x92, 0xd6, 0x96, 0xd6, 0x96, 0x3f, 0x3f, - 0x91, 0x3f, 0x3f, 0x3f, 0xc7, 0x87, 0x3f, 0x3f, - 0xd5, 0x95, 0x67, 0x47, 0x9e, 0x9c, 0x80, 0x70, - /* 0x0200 .. 0x02ff */ - 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, - 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, - 0xd9, 0x99, 0xd9, 0x99, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe2, 0xa2, 0xe3, 0xa3, 0x3f, 0x3f, 0xc8, 0x88, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, - 0xc5, 0x85, 0xec, 0xcc, 0xef, 0xcf, 0xd6, 0x96, - 0xd6, 0x96, 0xe8, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x87, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x88, 0x3f, 0x91, 0x99, 0x3f, 0x3f, 0x3f, 0xa6, - 0xa8, 0xbe, 0x7f, 0x79, 0x7d, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x3f, 0x5f, 0xa5, - 0x7d, 0xbc, 0xbe, 0x79, 0x3f, 0x6d, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x90, 0x3f, 0xa1, 0x7f, 0x3f, 0x3f, - 0x3f, 0x93, 0xa2, 0xa7, 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, - /* 0x0300 .. 0x03ff */ - 0x79, 0xbe, 0x5f, 0xa1, 0xbc, 0xbc, 0x3f, 0x3f, - 0xbd, 0x3f, 0x90, 0x7f, 0xa5, 0x3f, 0x7f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x6d, 0x6d, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x79, 0xbe, 0x3f, 0x3f, 0xbd, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0xbd, 0xc1, 0xb3, - 0xc5, 0xc8, 0xc9, 0x3f, 0xd6, 0x3f, 0xe8, 0x3f, - 0x3f, 0xc1, 0xc2, 0x3f, 0x3f, 0xc5, 0xe9, 0xc8, - 0x3f, 0xc9, 0xd2, 0x3f, 0xd4, 0xd5, 0x3f, 0xd6, - 0x3f, 0xd7, 0x3f, 0x3f, 0xe3, 0xe8, 0x3f, 0xe7, - 0x3f, 0x3f, 0xc9, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x3f, 0xe8, 0xe8, 0xe8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x9e, 0xc2, 0x3f, - 0xc4, 0xc5, 0x3f, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, - 0xd3, 0xd4, 0xd5, 0x3f, 0xd6, 0x3f, 0xd7, 0xd9, - 0xe3, 0xe4, 0xe6, 0x81, 0x3f, 0x3f, 0x3f, 0x82, - 0x84, 0x85, 0x3f, 0x3f, 0x3f, 0x87, 0x3f, 0x92, - 0x94, 0x3f, 0x96, 0x3f, 0x3f, 0x3f, 0x97, 0xa3, - 0xa4, 0x3f, 0x3f, 0xa5, 0x3f, 0x59, 0x3f, 0x3f, - 0x3f, 0x3f, 0x89, 0x99, 0xa4, 0xa5, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x83, 0x3f, 0x8c, 0x3f, - 0x86, 0x3f, 0x87, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xa9, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0xc1, 0x81, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, - 0x68, 0x48, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, - 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc6, 0x86, - 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, - 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0x77, 0x57, - 0xd2, 0x92, 0xd2, 0x92, 0xd2, 0x92, 0xd3, 0x93, - 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd4, 0x94, - 0xd4, 0x94, 0xd4, 0x94, 0xd5, 0x95, 0xd5, 0x95, - 0xd5, 0x95, 0xd5, 0x95, 0xef, 0xcf, 0xef, 0xcf, - 0xd6, 0x96, 0xd6, 0x96, 0xd7, 0x97, 0xd7, 0x97, - 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, - 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, - 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, - 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe5, 0xa5, 0xe5, 0xa5, - 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, - 0xe6, 0xa6, 0xe7, 0xa7, 0xe7, 0xa7, 0xe8, 0xa8, - 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0x88, 0xa3, - 0xa6, 0xa8, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0x81, 0xc1, 0x81, 0x62, 0x42, 0x62, 0x42, - 0x62, 0x42, 0x62, 0x42, 0xc1, 0x81, 0xc1, 0x81, - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0x72, 0x52, - 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0xc5, 0x85, - 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, - 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, - 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, - 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc5, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe8, 0xe8, 0xe8, 0xe8, 0xd7, 0xbd, 0xbd, 0x79, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x60, 0x3f, 0x60, 0x60, 0x60, 0x3f, 0x6d, - 0x79, 0x7d, 0x6b, 0x79, 0x7f, 0x7f, 0x6b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, - 0x3f, 0x3f, 0xbe, 0x7f, 0x3f, 0x79, 0x3f, 0x3f, - 0x3f, 0x4c, 0x6e, 0x3f, 0x4f, 0x3f, 0xbc, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 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, 0x40, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x90, 0x89, 0x3f, 0x3f, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x95, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x3f, - 0x81, 0x85, 0x96, 0xa7, 0x3f, 0x88, 0x92, 0x93, - 0x94, 0x95, 0x97, 0xa2, 0xa3, 0x3f, 0x3f, 0x3f, - 0x3f, 0xb0, 0x3f, 0x3f, 0xb1, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0xc3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, - 0x3f, 0x3f, 0x87, 0xc8, 0xc8, 0xc8, 0x88, 0x88, - 0xc9, 0xc9, 0xd3, 0x93, 0x3f, 0xd5, 0x3f, 0x3f, - 0xd7, 0xd7, 0xd8, 0xd9, 0xd9, 0xd9, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0x3f, 0x3f, - 0xe9, 0x3f, 0xd2, 0x67, 0xc2, 0xc3, 0x85, 0x85, - 0xc5, 0xc6, 0x3f, 0xd4, 0x96, 0x3f, 0x3f, 0x3f, - 0x3f, 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x84, 0x85, - 0x89, 0x91, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0x3f, 0x3f, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, - 0x3f, 0xe7, 0x3f, 0x3f, 0xd3, 0xc3, 0xc4, 0xd4, - 0x89, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa7, 0x3f, 0x3f, 0x93, 0x83, 0x84, 0x94, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4c, 0x5f, 0x6e, 0xa5, 0x60, 0xbb, 0x3f, 0x3f, - 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x60, 0x8f, 0x3f, 0x61, 0xe0, 0x5c, - 0x90, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xd3, - 0x3f, 0x3f, 0x3f, 0xbb, 0xbb, 0x3f, 0x3f, 0x3f, - 0x3f, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa1, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x8a, 0x8b, 0x3f, 0x3f, 0x4c, 0x6e, - 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, 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, 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, 0xb3, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x4c, 0x6e, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, - 0xf9, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc2, - 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, - 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, - 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, - 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x60, 0x60, 0xbb, 0xbb, 0x60, 0x60, 0x6a, 0x6a, - 0x60, 0x60, 0x6a, 0x6a, 0x4e, 0x4e, 0x4e, 0x4e, - 0xba, 0xba, 0xba, 0xba, 0xd3, 0xd3, 0xd3, 0xd3, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0xe3, - 0xe3, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x60, 0x60, 0x6a, 0x6a, - 0x7e, 0xbb, 0x4e, 0x4e, 0x4e, 0xba, 0xba, 0xba, - 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x61, 0xe0, 0xe7, 0x60, 0xbb, 0x60, 0xbb, - 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xd6, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x91, 0xe5, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4c, 0x6e, 0x8a, 0x8b, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x4a, 0x5a, 0x3f, 0x7f, 0x7f, 0x6b, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x4e, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbc, 0xbc, 0xbc, 0xbc, 0x6d, 0x6d, 0x6d, - 0x6b, 0x3f, 0x4b, 0x3f, 0x5e, 0x7a, 0x6f, 0x4f, - 0x60, 0x4d, 0x5d, 0xc0, 0xd0, 0x3f, 0x3f, 0x7b, - 0x50, 0x5c, 0x4e, 0x60, 0x4c, 0x6e, 0x7e, 0x3f, - 0xe0, 0x5b, 0x6c, 0x7c, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0xb1, 0xba, 0xbc, 0x6a, 0xb2, 0x3f, 0x3f, - 0xbb, 0x4c, 0x5f, 0x6e, 0xa5, 0x3f, 0xd6, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_500 = -{ - { 500, 1, 0x003f, 0x003f, "IBM EBCDIC International" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_737.c b/reactos/tools/unicode/c_737.c deleted file mode 100644 index 8bb5a842c7e..00000000000 --- a/reactos/tools/unicode/c_737.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 737 (OEM Greek 437G) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP737.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, - 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, - 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, - 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, - 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, - 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03c9, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, - 0x03cb, 0x03ce, 0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, - 0x038f, 0x00b1, 0x2265, 0x2264, 0x03aa, 0x03ab, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, - 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, - 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, - 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, - 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, - 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03c9, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, - 0x03cb, 0x03ce, 0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, - 0x038f, 0x00b1, 0x2265, 0x2264, 0x03aa, 0x03ab, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x7c, 0x3f, - 0x22, 0x63, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d, - 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xa3, 0x3f, 0xfa, - 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, 0x99, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xf6, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0xea, 0xfa, - 0xeb, 0xec, 0xed, 0x3f, 0xee, 0x3f, 0xef, 0xf0, - 0xe4, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, - 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, - 0x8f, 0x90, 0x3f, 0x91, 0x92, 0x93, 0x94, 0x95, - 0x96, 0x97, 0xf4, 0xf5, 0xe1, 0xe2, 0xe3, 0xe5, - 0xe8, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, - 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xaa, 0xa9, 0xab, 0xac, 0xad, 0xae, - 0xaf, 0xe0, 0xe4, 0xe8, 0xe6, 0xe7, 0xe9, 0x3f, - 0x99, 0x9f, 0x93, 0x93, 0x93, 0xad, 0xa7, 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, - 0xa1, 0xa8, 0xaa, 0x3f, 0x87, 0x9c, 0x3f, 0x3f, - 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x99, 0x9a, 0x9b, - 0xad, 0xae, 0x69, 0x72, 0x75, 0x76, 0x99, 0x9a, - 0xa8, 0xad, 0xae, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x9f, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, - 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, - 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x3f, 0x3f, - 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x3f, 0x3f, - 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, - 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, - 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, - 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, - 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0x3f, 0x3f, - 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x3f, 0x3f, - 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, - 0x3f, 0x93, 0x3f, 0x93, 0x3f, 0x93, 0x3f, 0x93, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, - 0x98, 0xe1, 0x9c, 0xe2, 0x9e, 0xe3, 0xa0, 0xe5, - 0xa6, 0xe6, 0xac, 0xe7, 0xe0, 0xe9, 0x3f, 0x3f, - 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, - 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, - 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, - 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, - 0x98, 0x98, 0x98, 0x98, 0xe1, 0x3f, 0x98, 0x98, - 0x80, 0x80, 0x80, 0xea, 0x80, 0x3f, 0xa0, 0x3f, - 0x3f, 0x22, 0x9e, 0x9e, 0xe3, 0x3f, 0x9e, 0x9e, - 0x84, 0xeb, 0x86, 0xec, 0x86, 0x3f, 0x3f, 0x3f, - 0xa0, 0xa0, 0xe4, 0xe4, 0x3f, 0x3f, 0xa0, 0xe4, - 0x88, 0x88, 0x88, 0xed, 0x3f, 0x3f, 0x3f, 0x3f, - 0xac, 0xac, 0xe8, 0xe8, 0xa8, 0xa8, 0xac, 0xe8, - 0x93, 0x93, 0x93, 0xef, 0x90, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0xe0, 0xe0, 0xe9, 0x3f, 0xe0, 0xe0, - 0x8e, 0xee, 0x97, 0xf0, 0x97, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x97, 0x3f, - 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xa7, 0x9a, 0x82, 0x8f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 0xf9, 0xfb, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0x3d, 0x3d, 0x3d, 0xf3, 0xf2, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, - 0xf3, 0xf2, 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, 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, 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, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x7c, 0x7c, - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, - 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x4c, 0x3f, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_737 = -{ - { 737, 1, 0x003f, 0x003f, "OEM Greek 437G" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_775.c b/reactos/tools/unicode/c_775.c deleted file mode 100644 index 518d6e9366e..00000000000 --- a/reactos/tools/unicode/c_775.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 775 (OEM Baltic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP775.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0106, 0x00fc, 0x00e9, 0x0101, 0x00e4, 0x0123, 0x00e5, 0x0107, - 0x0142, 0x0113, 0x0156, 0x0157, 0x012b, 0x0179, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x014d, 0x00f6, 0x0122, 0x00a2, 0x015a, - 0x015b, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x00a4, - 0x0100, 0x012a, 0x00f3, 0x017b, 0x017c, 0x017a, 0x201d, 0x00a6, - 0x00a9, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x0141, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010c, 0x0118, - 0x0116, 0x2563, 0x2551, 0x2557, 0x255d, 0x012e, 0x0160, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0172, 0x016a, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x017d, - 0x0105, 0x010d, 0x0119, 0x0117, 0x012f, 0x0161, 0x0173, 0x016b, - 0x017e, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x00d3, 0x00df, 0x014c, 0x0143, 0x00f5, 0x00d5, 0x00b5, 0x0144, - 0x0136, 0x0137, 0x013b, 0x013c, 0x0146, 0x0112, 0x0145, 0x2019, - 0x00ad, 0x00b1, 0x201c, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x201e, - 0x00b0, 0x2219, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x0106, 0x00fc, 0x00e9, 0x0101, 0x00e4, 0x0123, 0x00e5, 0x0107, - 0x0142, 0x0113, 0x0156, 0x0157, 0x012b, 0x0179, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x014d, 0x00f6, 0x0122, 0x00a2, 0x015a, - 0x015b, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x00a4, - 0x0100, 0x012a, 0x00f3, 0x017b, 0x017c, 0x017a, 0x201d, 0x00a6, - 0x00a9, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x0141, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010c, 0x0118, - 0x0116, 0x2563, 0x2551, 0x2557, 0x255d, 0x012e, 0x0160, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0172, 0x016a, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x017d, - 0x0105, 0x010d, 0x0119, 0x0117, 0x012f, 0x0161, 0x0173, 0x016b, - 0x017e, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x00d3, 0x00df, 0x014c, 0x0143, 0x00f5, 0x00d5, 0x00b5, 0x0144, - 0x0136, 0x0137, 0x013b, 0x013c, 0x0146, 0x0112, 0x0145, 0x2019, - 0x00ad, 0x00b1, 0x201c, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x201e, - 0x00b0, 0x2219, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0x21, 0x96, 0x9c, 0x9f, 0x59, 0xa7, 0xf5, - 0x22, 0xa8, 0x61, 0xae, 0xaa, 0xf0, 0xa9, 0x2d, - 0xf8, 0xf1, 0xfd, 0xfc, 0x27, 0xe6, 0xf4, 0xfa, - 0x2c, 0xfb, 0x6f, 0xaf, 0xac, 0xab, 0xf3, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x8e, 0x8f, 0x92, 0x43, - 0x45, 0x90, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, - 0x44, 0x4e, 0x4f, 0xe0, 0x4f, 0xe5, 0x99, 0x9e, - 0x9d, 0x55, 0x55, 0x55, 0x9a, 0x59, 0x3f, 0xe1, - 0x61, 0x61, 0x61, 0x61, 0x84, 0x86, 0x91, 0x63, - 0x65, 0x82, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0xa2, 0x6f, 0xe4, 0x94, 0xf6, - 0x9b, 0x75, 0x75, 0x75, 0x81, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0xa0, 0x83, 0x41, 0x61, 0xb5, 0xd0, 0x80, 0x87, - 0x43, 0x63, 0x43, 0x63, 0xb6, 0xd1, 0x44, 0x64, - 0x44, 0x64, 0xed, 0x89, 0x45, 0x65, 0xb8, 0xd3, - 0xb7, 0xd2, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x95, 0x85, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0xa1, 0x8c, 0x49, 0x69, 0xbd, 0xd4, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0xe8, 0xe9, - 0x3f, 0x4c, 0x6c, 0xea, 0xeb, 0x4c, 0x6c, 0x3f, - 0x3f, 0xad, 0x88, 0xe3, 0xe7, 0xee, 0xec, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0xe2, 0x93, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x8a, 0x8b, - 0x52, 0x72, 0x97, 0x98, 0x53, 0x73, 0x53, 0x73, - 0xbe, 0xd5, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0xc7, 0xd7, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0xc6, 0xd6, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x8d, 0xa5, 0xa3, 0xa4, 0xcf, 0xd8, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, - 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, - 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x9d, 0x9b, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x99, 0x94, 0xe5, 0xe4, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0xef, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xe1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x92, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe1, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xe1, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0xed, 0x89, 0xed, 0x89, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xe5, 0xe4, 0xe5, 0xe4, - 0xe2, 0x93, 0xe2, 0x93, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x97, 0x98, 0xbe, 0xd5, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0xc7, 0xd7, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, - 0x60, 0xef, 0x2c, 0x60, 0xf2, 0xa6, 0xf7, 0x3f, - 0x3f, 0x3f, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x96, 0x3f, 0x3f, 0x9c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 0xf9, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xae, 0xaf, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0xa7, 0xa7, - 0x2d, 0x2d, 0xa7, 0xa7, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0xa7, 0xa7, - 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, - 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, - 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, - 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, - 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xf2, 0xa6, 0xf7, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x96, 0x9c, 0xaa, 0x2d, 0xa7, 0x59, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_775 = -{ - { 775, 1, 0x003f, 0x003f, "OEM Baltic" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_850.c b/reactos/tools/unicode/c_850.c deleted file mode 100644 index 0953e83eb73..00000000000 --- a/reactos/tools/unicode/c_850.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 850 (OEM Multilingual Latin 1) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP850.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, - 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - 0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, - 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, - 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe, - 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4, - 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, - 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - 0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, - 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, - 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe, - 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4, - 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, - 0xf9, 0xb8, 0xa6, 0xae, 0xaa, 0xf0, 0xa9, 0xee, - 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, - 0xf7, 0xfb, 0xa7, 0xaf, 0xac, 0xab, 0xf3, 0xa8, - 0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, - 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, - 0xd1, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0x9e, - 0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0xed, 0xe8, 0xe1, - 0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87, - 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, - 0xd0, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6, - 0x9b, 0x97, 0xa3, 0x96, 0x81, 0xec, 0xe7, 0x98, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0xd1, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0xd5, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, - 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, - 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x9d, 0x9b, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x99, 0x94, 0xe5, 0xe4, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xef, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xee, 0xef, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xef, 0x5e, 0x7e, 0xee, 0xee, 0x3f, 0x3f, - 0xf9, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xef, 0x3f, 0x3f, 0xf9, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0xf9, 0x41, 0xfa, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xe1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x92, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe1, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xe1, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0xd0, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xd8, 0x8b, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xe5, 0xe4, 0xe5, 0xe4, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xb6, 0x83, 0xb6, 0x83, - 0xb6, 0x83, 0xb6, 0x83, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xd2, 0x88, - 0xd2, 0x88, 0xd2, 0x88, 0xd2, 0x88, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xf9, 0xf9, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0xf2, - 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, 0xef, 0x22, 0x3f, 0x60, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xee, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbd, 0x3f, 0x3f, 0x9c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xae, 0xaf, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0xdd, 0xdd, - 0x2d, 0x2d, 0xdd, 0xdd, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0xdd, 0xdd, - 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, - 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, - 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, - 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xee, 0xee, 0xee, 0xee, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xbd, 0x9c, 0xaa, 0xee, 0xdd, 0xbe, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_850 = -{ - { 850, 1, 0x003f, 0x003f, "OEM Multilingual Latin 1" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_852.c b/reactos/tools/unicode/c_852.c deleted file mode 100644 index d89f7b4622f..00000000000 --- a/reactos/tools/unicode/c_852.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 852 (OEM Slovak Latin 2) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP852.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x016f, 0x0107, 0x00e7, - 0x0142, 0x00eb, 0x0150, 0x0151, 0x00ee, 0x0179, 0x00c4, 0x0106, - 0x00c9, 0x0139, 0x013a, 0x00f4, 0x00f6, 0x013d, 0x013e, 0x015a, - 0x015b, 0x00d6, 0x00dc, 0x0164, 0x0165, 0x0141, 0x00d7, 0x010d, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0104, 0x0105, 0x017d, 0x017e, - 0x0118, 0x0119, 0x00ac, 0x017a, 0x010c, 0x015f, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x011a, - 0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0102, 0x0103, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - 0x0111, 0x0110, 0x010e, 0x00cb, 0x010f, 0x0147, 0x00cd, 0x00ce, - 0x011b, 0x2518, 0x250c, 0x2588, 0x2584, 0x0162, 0x016e, 0x2580, - 0x00d3, 0x00df, 0x00d4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, - 0x0154, 0x00da, 0x0155, 0x0170, 0x00fd, 0x00dd, 0x0163, 0x00b4, - 0x00ad, 0x02dd, 0x02db, 0x02c7, 0x02d8, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x016f, 0x0107, 0x00e7, - 0x0142, 0x00eb, 0x0150, 0x0151, 0x00ee, 0x0179, 0x00c4, 0x0106, - 0x00c9, 0x0139, 0x013a, 0x00f4, 0x00f6, 0x013d, 0x013e, 0x015a, - 0x015b, 0x00d6, 0x00dc, 0x0164, 0x0165, 0x0141, 0x00d7, 0x010d, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0104, 0x0105, 0x017d, 0x017e, - 0x0118, 0x0119, 0x00ac, 0x017a, 0x010c, 0x015f, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x011a, - 0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0102, 0x0103, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - 0x0111, 0x0110, 0x010e, 0x00cb, 0x010f, 0x0147, 0x00cd, 0x00ce, - 0x011b, 0x2518, 0x250c, 0x2588, 0x2584, 0x0162, 0x016e, 0x2580, - 0x00d3, 0x00df, 0x00d4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, - 0x0154, 0x00da, 0x0155, 0x0170, 0x00fd, 0x00dd, 0x0163, 0x00b4, - 0x00ad, 0x02dd, 0x02db, 0x02c7, 0x02d8, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0x21, 0x63, 0x4c, 0xcf, 0x59, 0x7c, 0xf5, - 0xf9, 0x63, 0x61, 0xae, 0xaa, 0xf0, 0x72, 0x2d, - 0xf8, 0x3f, 0x32, 0x33, 0xef, 0x75, 0x3f, 0x3f, - 0xf7, 0x31, 0x6f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0xb5, 0xb6, 0x41, 0x8e, 0x41, 0x41, 0x80, - 0x45, 0x90, 0x45, 0xd3, 0x49, 0xd6, 0xd7, 0x49, - 0xd1, 0x4e, 0x4f, 0xe0, 0xe2, 0x4f, 0x99, 0x9e, - 0x4f, 0x55, 0xe9, 0x55, 0x9a, 0xed, 0x3f, 0xe1, - 0x61, 0xa0, 0x83, 0x61, 0x84, 0x61, 0x61, 0x87, - 0x65, 0x82, 0x65, 0x89, 0x69, 0xa1, 0x8c, 0x69, - 0x64, 0x6e, 0x6f, 0xa2, 0x93, 0x6f, 0x94, 0xf6, - 0x6f, 0x75, 0xa3, 0x75, 0x81, 0xec, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0xc6, 0xc7, 0xa4, 0xa5, 0x8f, 0x86, - 0x43, 0x63, 0x43, 0x63, 0xac, 0x9f, 0xd2, 0xd4, - 0xd1, 0xd0, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0xa8, 0xa9, 0xb7, 0xd8, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x91, 0x92, 0x4c, 0x6c, 0x95, 0x96, 0x3f, - 0x3f, 0x9d, 0x88, 0xe3, 0xe4, 0x4e, 0x6e, 0xd5, - 0xe5, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x8a, 0x8b, 0x4f, 0x6f, 0xe8, 0xea, 0x52, 0x72, - 0xfc, 0xfd, 0x97, 0x98, 0x53, 0x73, 0xb8, 0xad, - 0xe6, 0xe7, 0xdd, 0xee, 0x9b, 0x9c, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xde, 0x85, - 0xeb, 0xfb, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x8d, 0xab, 0xbd, 0xbe, 0xa6, 0xa7, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xd1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, - 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x99, 0x94, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xef, 0xf1, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0xf3, - 0x27, 0x2d, 0xef, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf4, 0xfa, 0xf8, 0xf2, 0x7e, 0xf1, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xef, 0x5e, 0x7e, 0x2d, 0x2d, 0xf4, 0xfa, - 0xf9, 0x3f, 0xf8, 0xf1, 0xf3, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, - 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xef, 0x3f, 0x3f, 0xf9, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0xf9, 0x41, 0x3f, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xe1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe1, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xe1, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x97, 0x98, 0xe6, 0xe7, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xb6, 0x83, 0xb6, 0x83, - 0xb6, 0x83, 0xb6, 0x83, 0x41, 0x61, 0xc6, 0xc7, - 0xc6, 0xc7, 0xc6, 0xc7, 0xc6, 0xc7, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xf9, 0xf9, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xef, 0xf1, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0xf3, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xae, 0xaf, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x7c, 0x7c, - 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, - 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, - 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, - 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x4c, 0xaa, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0xf3, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_852 = -{ - { 852, 1, 0x003f, 0x003f, "OEM Slovak Latin 2" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_855.c b/reactos/tools/unicode/c_855.c deleted file mode 100644 index c98e49a8b22..00000000000 --- a/reactos/tools/unicode/c_855.c +++ /dev/null @@ -1,783 +0,0 @@ -/* code page 855 (OEM Cyrillic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP855.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, - 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, - 0x0459, 0x0409, 0x045a, 0x040a, 0x045b, 0x040b, 0x045c, 0x040c, - 0x045e, 0x040e, 0x045f, 0x040f, 0x044e, 0x042e, 0x044a, 0x042a, - 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, - 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, - 0x0418, 0x2563, 0x2551, 0x2557, 0x255d, 0x0439, 0x0419, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x043a, 0x041a, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - 0x043b, 0x041b, 0x043c, 0x041c, 0x043d, 0x041d, 0x043e, 0x041e, - 0x043f, 0x2518, 0x250c, 0x2588, 0x2584, 0x041f, 0x044f, 0x2580, - 0x042f, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, - 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044c, 0x042c, 0x2116, - 0x00ad, 0x044b, 0x042b, 0x0437, 0x0417, 0x0448, 0x0428, 0x044d, - 0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, - 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, - 0x0459, 0x0409, 0x045a, 0x040a, 0x045b, 0x040b, 0x045c, 0x040c, - 0x045e, 0x040e, 0x045f, 0x040f, 0x044e, 0x042e, 0x044a, 0x042a, - 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, - 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, - 0x0418, 0x2563, 0x2551, 0x2557, 0x255d, 0x0439, 0x0419, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x043a, 0x041a, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - 0x043b, 0x041b, 0x043c, 0x041c, 0x043d, 0x041d, 0x043e, 0x041e, - 0x043f, 0x2518, 0x250c, 0x2588, 0x2584, 0x041f, 0x044f, 0x2580, - 0x042f, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, - 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044c, 0x042c, 0x2116, - 0x00ad, 0x044b, 0x042b, 0x0437, 0x0417, 0x0448, 0x0428, 0x044d, - 0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0x21, 0x63, 0x4c, 0xcf, 0x59, 0x7c, 0xfd, - 0x22, 0x63, 0x61, 0xae, 0x3f, 0xf0, 0x72, 0x2d, - 0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 0x3f, 0x3f, - 0x2c, 0x31, 0x6f, 0xaf, 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, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0300 .. 0x03ff */ - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0400 .. 0x04ff */ - 0xa9, 0x85, 0x81, 0x83, 0x87, 0x89, 0x8b, 0x8d, - 0x8f, 0x91, 0x93, 0x95, 0x97, 0xb8, 0x99, 0x9b, - 0xa1, 0xa3, 0xec, 0xad, 0xa7, 0xa9, 0xea, 0xf4, - 0xb8, 0xbe, 0xc7, 0xd1, 0xd3, 0xd5, 0xd7, 0xdd, - 0xe2, 0xe4, 0xe6, 0xe8, 0xab, 0xb6, 0xa5, 0xfc, - 0xf6, 0xfa, 0x9f, 0xf2, 0xee, 0xf8, 0x9d, 0xe0, - 0xa0, 0xa2, 0xeb, 0xac, 0xa6, 0xa8, 0xe9, 0xf3, - 0xb7, 0xbd, 0xc6, 0xd0, 0xd2, 0xd4, 0xd6, 0xd8, - 0xe1, 0xe3, 0xe5, 0xe7, 0xaa, 0xb5, 0xa4, 0xfb, - 0xf5, 0xf9, 0x9e, 0xf1, 0xed, 0xf7, 0x9c, 0xde, - 0xa8, 0x84, 0x80, 0x82, 0x86, 0x88, 0x8a, 0x8c, - 0x8e, 0x90, 0x92, 0x94, 0x96, 0xb7, 0x98, 0x9a, - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xea, 0xe9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa1, 0xa0, 0xa1, 0xa0, 0x3f, 0x3f, 0xa9, 0xa8, - 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xe9, 0xf4, 0xf3, - 0x3f, 0x3f, 0xb8, 0xb7, 0xb8, 0xb7, 0xd7, 0xd6, - 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0xf7, 0xe8, 0xe7, - 0xe8, 0xe7, 0xe8, 0xe7, 0xfc, 0xfb, 0x3f, 0x3f, - 0xf2, 0xf1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xd4, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 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, - 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, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0xef, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xae, 0xaf, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x7c, 0x7c, - 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, - 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, - 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, - 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x4c, 0x3f, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_855 = -{ - { 855, 1, 0x003f, 0x003f, "OEM Cyrillic" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_856.c b/reactos/tools/unicode/c_856.c deleted file mode 100644 index 5b2ca383cde..00000000000 --- a/reactos/tools/unicode/c_856.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 856 (Hebrew PC) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/CP856.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, - 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x05ea, 0x009b, 0x00a3, 0x009d, 0x00d7, 0x009f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x003f, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x003f, 0x003f, 0x003f, - 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x003f, 0x003f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00de, 0x2580, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00b5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00af, 0x00b4, - 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x9b, 0x3f, 0x9d, 0x3f, 0x9f, - 0xff, 0x21, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, - 0xf9, 0xb8, 0x61, 0xae, 0xaa, 0xf0, 0xa9, 0xee, - 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, - 0xf7, 0xfb, 0x6f, 0xaf, 0xac, 0xab, 0xf3, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, - 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, - 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x9e, - 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, 0xf6, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xef, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xee, 0xef, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xef, 0x5e, 0x7e, 0xee, 0xee, 0x3f, 0x3f, - 0xf9, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xef, 0x3f, 0x3f, 0xf9, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0xf9, 0x41, 0xfa, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0500 .. 0x05ff */ - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 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, 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, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xf9, 0xf9, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0xf2, - 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, 0xef, 0x22, 0x3f, 0x60, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xee, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbd, 0x3f, 0x3f, 0x9c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x80, 0x81, 0x82, - 0x83, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xae, 0xaf, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0xdd, 0xdd, - 0x2d, 0x2d, 0xdd, 0xdd, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0xdd, 0xdd, - 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, - 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, - 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, - 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x89, 0x3f, 0x3f, - 0x92, 0x80, 0x83, 0x84, 0x8b, 0x8c, 0x8d, 0x98, - 0x9a, 0x2b, 0x99, 0x99, 0x99, 0x99, 0x80, 0x80, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x3f, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x3f, 0x8e, 0x3f, - 0x90, 0x91, 0x3f, 0x93, 0x94, 0x3f, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x85, 0x81, 0x8b, 0x94, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xee, 0xee, 0xee, 0xee, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xbd, 0x9c, 0xaa, 0xee, 0xdd, 0xbe, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1300, 0x0400, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_856 = -{ - { 856, 1, 0x003f, 0x003f, "Hebrew PC" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_857.c b/reactos/tools/unicode/c_857.c deleted file mode 100644 index 70a783bb4ed..00000000000 --- a/reactos/tools/unicode/c_857.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 857 (OEM Turkish) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP857.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0131, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x0130, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x015e, 0x015f, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f, - 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, - 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - 0x00ba, 0x00aa, 0x00ca, 0x00cb, 0x00c8, 0x003f, 0x00cd, 0x00ce, - 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, - 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x003f, - 0x00d7, 0x00da, 0x00db, 0x00d9, 0x00ec, 0x00ff, 0x00af, 0x00b4, - 0x00ad, 0x00b1, 0x003f, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0131, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x0130, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x015e, 0x015f, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f, - 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, - 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - 0x00ba, 0x00aa, 0x00ca, 0x00cb, 0x00c8, 0x003f, 0x00cd, 0x00ce, - 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, - 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x003f, - 0x00d7, 0x00da, 0x00db, 0x00d9, 0x00ec, 0x00ff, 0x00af, 0x00b4, - 0x00ad, 0x00b1, 0x003f, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, - 0xf9, 0xb8, 0xd1, 0xae, 0xaa, 0xf0, 0xa9, 0xee, - 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, - 0xf7, 0xfb, 0xd0, 0xaf, 0xac, 0xab, 0xf3, 0xa8, - 0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, - 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, - 0x44, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0xe8, - 0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0x59, 0x3f, 0xe1, - 0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87, - 0x8a, 0x82, 0x88, 0x89, 0xec, 0xa1, 0x8c, 0x8b, - 0x64, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6, - 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x79, 0x3f, 0xed, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0xa6, 0xa7, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x98, 0x8d, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x9e, 0x9f, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, - 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, - 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x9d, 0x9b, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x99, 0x94, 0xe5, 0xe4, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xef, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xee, 0xef, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xef, 0x5e, 0x7e, 0xee, 0xee, 0x3f, 0x3f, - 0xf9, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xef, 0x3f, 0x3f, 0xf9, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0xf9, 0x41, 0xfa, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xe1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x92, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe1, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xe1, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xd8, 0x8b, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0xe5, 0xe4, 0xe5, 0xe4, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0xb6, 0x83, 0xb6, 0x83, - 0xb6, 0x83, 0xb6, 0x83, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xd2, 0x88, - 0xd2, 0x88, 0xd2, 0x88, 0xd2, 0x88, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xf9, 0xf9, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xef, 0x22, 0x3f, 0x60, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xee, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xbd, 0x3f, 0x3f, 0x9c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, - 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xae, 0xaf, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0xdd, 0xdd, - 0x2d, 0x2d, 0xdd, 0xdd, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0xdd, 0xdd, - 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, - 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, - 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, - 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xee, 0xee, 0xee, 0xee, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xbd, 0x9c, 0xaa, 0xee, 0xdd, 0xbe, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_857 = -{ - { 857, 1, 0x003f, 0x003f, "OEM Turkish" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_860.c b/reactos/tools/unicode/c_860.c deleted file mode 100644 index 5b87f7a40f7..00000000000 --- a/reactos/tools/unicode/c_860.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 860 (OEM Portuguese) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP860.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e3, 0x00e0, 0x00c1, 0x00e7, - 0x00ea, 0x00ca, 0x00e8, 0x00cd, 0x00d4, 0x00ec, 0x00c3, 0x00c2, - 0x00c9, 0x00c0, 0x00c8, 0x00f4, 0x00f5, 0x00f2, 0x00da, 0x00f9, - 0x00cc, 0x00d5, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x20a7, 0x00d3, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x00d2, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e3, 0x00e0, 0x00c1, 0x00e7, - 0x00ea, 0x00ca, 0x00e8, 0x00cd, 0x00d4, 0x00ec, 0x00c3, 0x00c2, - 0x00c9, 0x00c0, 0x00c8, 0x00f4, 0x00f5, 0x00f2, 0x00da, 0x00f9, - 0x00cc, 0x00d5, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x20a7, 0x00d3, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x00d2, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0xad, 0x9b, 0x9c, 0x3f, 0x59, 0x7c, 0x3f, - 0x22, 0x63, 0xa6, 0xae, 0xaa, 0x2d, 0x72, 0x2d, - 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xe6, 0x3f, 0xfa, - 0x2c, 0x31, 0xa7, 0xaf, 0xac, 0xab, 0x3f, 0xa8, - 0x91, 0x86, 0x8f, 0x8e, 0x41, 0x41, 0x41, 0x80, - 0x92, 0x90, 0x89, 0x45, 0x98, 0x8b, 0x49, 0x49, - 0x44, 0xa5, 0xa9, 0x9f, 0x8c, 0x99, 0x4f, 0x78, - 0x4f, 0x9d, 0x96, 0x55, 0x9a, 0x59, 0x3f, 0xe1, - 0x85, 0xa0, 0x83, 0x84, 0x61, 0x61, 0x61, 0x87, - 0x8a, 0x82, 0x88, 0x65, 0x8d, 0xa1, 0x69, 0x69, - 0x64, 0xa4, 0x95, 0xa2, 0x93, 0x94, 0x6f, 0xf6, - 0x6f, 0x97, 0xa3, 0x75, 0x81, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, - 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x99, 0x94, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, - 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, - 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, - 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, - 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, - 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 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, 0xe9, 0xee, 0x3f, 0x3f, - 0x3f, 0xe4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe1, 0x3f, 0xeb, - 0xed, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xe1, 0x3f, - 0x3f, 0xed, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x99, 0x94, 0x99, 0x94, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x8f, 0x83, 0x8f, 0x83, - 0x8f, 0x83, 0x8f, 0x83, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x89, 0x88, - 0x89, 0x88, 0x89, 0x88, 0x89, 0x88, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x8c, 0x93, 0x8c, 0x93, 0x8c, 0x93, 0x8c, 0x93, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0xea, 0xea, 0xea, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x9b, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x9e, - 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, 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, 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, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, - 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xe3, 0x3f, 0xe2, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, - 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, - 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, - 0xf3, 0xf2, 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, 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, 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, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, - 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x7c, 0x7c, - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, - 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x9b, 0x9c, 0xaa, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_860 = -{ - { 860, 1, 0x003f, 0x003f, "OEM Portuguese" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_861.c b/reactos/tools/unicode/c_861.c deleted file mode 100644 index 3eaee92d871..00000000000 --- a/reactos/tools/unicode/c_861.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 861 (OEM Icelandic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP861.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00d0, 0x00f0, 0x00de, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00fe, 0x00fb, 0x00dd, - 0x00fd, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00c1, 0x00cd, 0x00d3, 0x00da, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00d0, 0x00f0, 0x00de, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00fe, 0x00fb, 0x00dd, - 0x00fd, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00c1, 0x00cd, 0x00d3, 0x00da, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0xad, 0x63, 0x9c, 0x3f, 0x59, 0x7c, 0x3f, - 0x22, 0x63, 0x61, 0xae, 0xaa, 0x2d, 0x72, 0x2d, - 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xe6, 0x3f, 0xfa, - 0x2c, 0x31, 0x6f, 0xaf, 0xac, 0xab, 0x3f, 0xa8, - 0x41, 0xa4, 0x41, 0x41, 0x8e, 0x8f, 0x92, 0x80, - 0x45, 0x90, 0x45, 0x45, 0x49, 0xa5, 0x49, 0x49, - 0x8b, 0x4e, 0x4f, 0xa6, 0x4f, 0x4f, 0x99, 0x78, - 0x9d, 0x55, 0xa7, 0x55, 0x9a, 0x97, 0x8d, 0xe1, - 0x85, 0xa0, 0x83, 0x61, 0x84, 0x86, 0x91, 0x87, - 0x8a, 0x82, 0x88, 0x89, 0x69, 0xa1, 0x69, 0x69, - 0x8c, 0x6e, 0x6f, 0xa2, 0x93, 0x6f, 0x94, 0xf6, - 0x9b, 0x75, 0xa3, 0x96, 0x81, 0x98, 0x95, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x8b, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x8b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, - 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, - 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x9d, 0x9b, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x99, 0x94, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, - 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, - 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, - 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, - 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, - 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 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, 0xe9, 0xee, 0x3f, 0x3f, - 0x3f, 0xe4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x92, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe1, 0x3f, 0xeb, - 0xed, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xe1, 0x3f, - 0x3f, 0xed, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x8c, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x83, 0x41, 0x83, - 0x41, 0x83, 0x41, 0x83, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x88, - 0x45, 0x88, 0x45, 0x88, 0x45, 0x88, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0xea, 0xea, 0xea, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x9e, - 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, 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, 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, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, - 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xe3, 0x3f, 0xe2, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, - 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, - 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, - 0xf3, 0xf2, 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, 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, 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, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x7c, 0x7c, - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, - 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x9c, 0xaa, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_861 = -{ - { 861, 1, 0x003f, 0x003f, "OEM Icelandic" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_862.c b/reactos/tools/unicode/c_862.c deleted file mode 100644 index 5a9746d9606..00000000000 --- a/reactos/tools/unicode/c_862.c +++ /dev/null @@ -1,783 +0,0 @@ -/* code page 862 (OEM Hebrew) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP862.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, - 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x05ea, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, - 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x05ea, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0xad, 0x9b, 0x9c, 0x3f, 0x9d, 0x7c, 0x3f, - 0x22, 0x63, 0xa6, 0xae, 0xaa, 0x2d, 0x72, 0x2d, - 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xe6, 0x3f, 0xfa, - 0x2c, 0x31, 0xa7, 0xaf, 0xac, 0xab, 0x3f, 0xa8, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, - 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, - 0x44, 0xa5, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, - 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0xe1, - 0x61, 0xa0, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0xa1, 0x69, 0x69, - 0x64, 0xa4, 0x6f, 0xa2, 0x6f, 0x6f, 0x6f, 0xf6, - 0x6f, 0x75, 0xa3, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, - 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, - 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, - 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, - 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, - 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 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, 0xe9, 0xee, 0x3f, 0x3f, - 0x3f, 0xe4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0500 .. 0x05ff */ - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe1, 0x3f, 0xeb, - 0xed, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xe1, 0x3f, - 0x3f, 0xed, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0xea, 0xea, 0xea, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x9b, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x9e, - 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, 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, 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, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, - 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x80, 0x81, 0x82, - 0x83, 0x69, 0x3f, 0x3f, 0xe3, 0x3f, 0xe2, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, - 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, - 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, - 0xf3, 0xf2, 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, 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, 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, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x7c, 0x7c, - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, - 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x89, 0x3f, 0x3f, - 0x92, 0x80, 0x83, 0x84, 0x8b, 0x8c, 0x8d, 0x98, - 0x9a, 0x2b, 0x99, 0x99, 0x99, 0x99, 0x80, 0x80, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x3f, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x3f, 0x8e, 0x3f, - 0x90, 0x91, 0x3f, 0x93, 0x94, 0x3f, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x85, 0x81, 0x8b, 0x94, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x9b, 0x9c, 0xaa, 0x2d, 0x7c, 0x9d, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1300, 0x0400, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_862 = -{ - { 862, 1, 0x003f, 0x003f, "OEM Hebrew" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_863.c b/reactos/tools/unicode/c_863.c deleted file mode 100644 index dda98220113..00000000000 --- a/reactos/tools/unicode/c_863.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 863 (OEM Canadian French) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP863.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00c2, 0x00e0, 0x00b6, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x2017, 0x00c0, 0x00a7, - 0x00c9, 0x00c8, 0x00ca, 0x00f4, 0x00cb, 0x00cf, 0x00fb, 0x00f9, - 0x00a4, 0x00d4, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x00db, 0x0192, - 0x00a6, 0x00b4, 0x00f3, 0x00fa, 0x00a8, 0x00b8, 0x00b3, 0x00af, - 0x00ce, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00be, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00c2, 0x00e0, 0x00b6, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x2017, 0x00c0, 0x00a7, - 0x00c9, 0x00c8, 0x00ca, 0x00f4, 0x00cb, 0x00cf, 0x00fb, 0x00f9, - 0x00a4, 0x00d4, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x00db, 0x0192, - 0x00a6, 0x00b4, 0x00f3, 0x00fa, 0x00a8, 0x00b8, 0x00b3, 0x00af, - 0x00ce, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00be, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0x21, 0x9b, 0x9c, 0x98, 0x59, 0xa0, 0x8f, - 0xa4, 0x63, 0x61, 0xae, 0xaa, 0x2d, 0x72, 0xa7, - 0xf8, 0xf1, 0xfd, 0xa6, 0xa1, 0xe6, 0x86, 0xfa, - 0xa5, 0x31, 0x6f, 0xaf, 0xac, 0xab, 0xad, 0x3f, - 0x8e, 0x41, 0x84, 0x41, 0x41, 0x41, 0x41, 0x80, - 0x91, 0x90, 0x92, 0x94, 0x49, 0x49, 0xa8, 0x95, - 0x44, 0x4e, 0x4f, 0x4f, 0x99, 0x4f, 0x4f, 0x78, - 0x4f, 0x9d, 0x55, 0x9e, 0x9a, 0x59, 0x3f, 0xe1, - 0x85, 0x61, 0x83, 0x61, 0x61, 0x61, 0x61, 0x87, - 0x8a, 0x82, 0x88, 0x89, 0x69, 0x69, 0x8c, 0x8b, - 0x64, 0x6e, 0x6f, 0xa2, 0x93, 0x6f, 0x6f, 0xf6, - 0x6f, 0x97, 0xa3, 0x96, 0x81, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, - 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0xa1, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xa7, 0xa1, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0xa1, 0x5e, 0x7e, 0xa7, 0xa7, 0x3f, 0x3f, - 0xa4, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa5, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0xa1, 0x3f, 0x3f, 0xa4, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0xa4, 0x41, 0xfa, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, - 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, - 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, - 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, - 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, - 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 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, 0xe9, 0xee, 0x3f, 0x3f, - 0x3f, 0xe4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe1, 0x3f, 0xeb, - 0xed, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xe1, 0x3f, - 0x3f, 0xed, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x95, 0x8b, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x84, 0x83, 0x84, 0x83, - 0x84, 0x83, 0x84, 0x83, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x92, 0x88, - 0x92, 0x88, 0x92, 0x88, 0x92, 0x88, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x99, 0x93, 0x99, 0x93, 0x99, 0x93, 0x99, 0x93, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0xa4, 0xa4, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0xea, 0xea, 0xea, 0xa1, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x8d, - 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, - 0x3f, 0x3f, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 0x3f, 0x3f, 0xa1, 0x22, 0x3f, 0x60, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xa7, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x9b, 0x3f, 0x3f, 0x9c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, - 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xe3, 0x3f, 0xe2, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, - 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, - 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, - 0xf3, 0xf2, 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, 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, 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, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0xa0, 0xa0, - 0x2d, 0x2d, 0xa0, 0xa0, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0xa0, 0xa0, - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, - 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa7, 0xa7, 0xa7, 0xa7, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x9b, 0x9c, 0xaa, 0xa7, 0xa0, 0x59, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_863 = -{ - { 863, 1, 0x003f, 0x003f, "OEM Canadian French" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_864.c b/reactos/tools/unicode/c_864.c deleted file mode 100644 index f6786bd3568..00000000000 --- a/reactos/tools/unicode/c_864.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 864 (OEM Arabic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP864.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x066a, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00b0, 0x00b7, 0x2219, 0x221a, 0x2592, 0x2500, 0x2502, 0x253c, - 0x2524, 0x252c, 0x251c, 0x2534, 0x2510, 0x250c, 0x2514, 0x2518, - 0x03b2, 0x221e, 0x03c6, 0x00b1, 0x00bd, 0x00bc, 0x2248, 0x00ab, - 0x00bb, 0xfef7, 0xfef8, 0x009b, 0x009c, 0xfefb, 0xfefc, 0x009f, - 0x00a0, 0x00ad, 0xfe82, 0x00a3, 0x00a4, 0xfe84, 0x003f, 0x00a7, - 0xfe8e, 0xfe8f, 0xfe95, 0xfe99, 0x060c, 0xfe9d, 0xfea1, 0xfea5, - 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, - 0x0668, 0x0669, 0xfed1, 0x061b, 0xfeb1, 0xfeb5, 0xfeb9, 0x061f, - 0x00a2, 0xfe80, 0xfe81, 0xfe83, 0xfe85, 0xfeca, 0xfe8b, 0xfe8d, - 0xfe91, 0xfe93, 0xfe97, 0xfe9b, 0xfe9f, 0xfea3, 0xfea7, 0xfea9, - 0xfeab, 0xfead, 0xfeaf, 0xfeb3, 0xfeb7, 0xfebb, 0xfebf, 0xfec1, - 0xfec5, 0xfecb, 0xfecf, 0x00a6, 0x00ac, 0x00f7, 0x00d7, 0xfec9, - 0x0640, 0xfed3, 0xfed7, 0xfedb, 0xfedf, 0xfee3, 0xfee7, 0xfeeb, - 0xfeed, 0xfeef, 0xfef3, 0xfebd, 0xfecc, 0xfece, 0xfecd, 0xfee1, - 0xfe7d, 0x0651, 0xfee5, 0xfee9, 0xfeec, 0xfef0, 0xfef2, 0xfed0, - 0xfed5, 0xfef5, 0xfef6, 0xfedd, 0xfed9, 0xfef1, 0x25a0, 0x003f -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x3f, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x9b, 0x9c, 0x3f, 0x3f, 0x9f, - 0xa0, 0x21, 0xc0, 0xa3, 0xa4, 0x59, 0xdb, 0xa7, - 0x22, 0x63, 0x61, 0x97, 0xdc, 0xa1, 0x72, 0x2d, - 0x80, 0x93, 0x32, 0x33, 0x27, 0x75, 0x3f, 0x81, - 0x2c, 0x31, 0x6f, 0x98, 0x95, 0x94, 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, 0xde, - 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x90, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xdd, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x86, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x80, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0x80, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x81, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x92, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x90, 0x3f, 0x59, 0x59, 0x59, 0x92, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0600 .. 0x06ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xbb, 0x3f, 0x3f, 0x3f, 0xbf, - 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, 0x3f, 0x3f, 0x3f, - 0xe0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xf1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0x25, 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, - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x90, 0x3f, 0x3f, - 0x92, 0x3f, 0x69, 0x72, 0x75, 0x76, 0x90, 0x3f, - 0x3f, 0x92, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0x82, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x80, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0xc0, 0x3f, 0x3f, 0xa3, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0x93, 0x3f, 0x2f, 0x5c, 0x2a, - 0x80, 0x82, 0x83, 0x3f, 0x3f, 0x3f, 0x91, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, - 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x96, 0x96, 0x3f, 0x3f, 0x3f, 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, 0x97, 0x98, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x81, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x85, 0x85, 0x86, 0x86, 0x2d, 0x2d, 0xdb, 0xdb, - 0x2d, 0x2d, 0xdb, 0xdb, 0x8d, 0x8d, 0x8d, 0x8d, - 0x8c, 0x8c, 0x8c, 0x8c, 0x8e, 0x8e, 0x8e, 0x8e, - 0x8f, 0x8f, 0x8f, 0x8f, 0x8a, 0x8a, 0x8a, 0x8a, - 0x8a, 0x8a, 0x8a, 0x8a, 0x88, 0x88, 0x88, 0x88, - 0x88, 0x88, 0x88, 0x88, 0x89, 0x89, 0x89, 0x89, - 0x89, 0x89, 0x89, 0x89, 0x8b, 0x8b, 0x8b, 0x8b, - 0x8b, 0x8b, 0x8b, 0x8b, 0x87, 0x87, 0x87, 0x87, - 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, - 0x87, 0x87, 0x87, 0x87, 0x2d, 0x2d, 0xdb, 0xdb, - 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xdc, 0xdc, 0xdc, - 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x84, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0x97, 0x98, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf0, 0x3f, 0x3f, - 0xc1, 0xc2, 0xa2, 0xc3, 0xa5, 0xc4, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xc6, 0x3f, 0xc7, 0xa8, 0xa9, - 0x3f, 0xc8, 0x3f, 0xc9, 0x3f, 0xaa, 0x3f, 0xca, - 0x3f, 0xab, 0x3f, 0xcb, 0x3f, 0xad, 0x3f, 0xcc, - 0x3f, 0xae, 0x3f, 0xcd, 0x3f, 0xaf, 0x3f, 0xce, - 0x3f, 0xcf, 0x3f, 0xd0, 0x3f, 0xd1, 0x3f, 0xd2, - 0x3f, 0xbc, 0x3f, 0xd3, 0x3f, 0xbd, 0x3f, 0xd4, - 0x3f, 0xbe, 0x3f, 0xd5, 0x3f, 0xeb, 0x3f, 0xd6, - 0x3f, 0xd7, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, - 0x3f, 0xdf, 0xc5, 0xd9, 0xec, 0xee, 0xed, 0xda, - 0xf7, 0xba, 0x3f, 0xe1, 0x3f, 0xf8, 0x3f, 0xe2, - 0x3f, 0xfc, 0x3f, 0xe3, 0x3f, 0xfb, 0x3f, 0xe4, - 0x3f, 0xef, 0x3f, 0xe5, 0x3f, 0xf2, 0x3f, 0xe6, - 0x3f, 0xf3, 0x3f, 0xe7, 0xf4, 0xe8, 0x3f, 0xe9, - 0xf5, 0xfd, 0xf6, 0xea, 0x3f, 0xf9, 0xfa, 0x99, - 0x9a, 0x3f, 0x3f, 0x9d, 0x9e, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 0x21, 0x22, 0x23, 0x24, 0x3f, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 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, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc0, 0xa3, 0xdc, 0x2d, 0xdb, 0x59, 0x3f, 0x3f, - 0x86, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1300, 0x1300, 0x0400, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_864 = -{ - { 864, 1, 0x003f, 0x003f, "OEM Arabic" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_865.c b/reactos/tools/unicode/c_865.c deleted file mode 100644 index 6f738669525..00000000000 --- a/reactos/tools/unicode/c_865.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 865 (OEM Nordic) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP865.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00a4, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00a4, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0xad, 0x63, 0x9c, 0xaf, 0x59, 0x7c, 0x3f, - 0x22, 0x63, 0xa6, 0xae, 0xaa, 0x2d, 0x72, 0x2d, - 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xe6, 0x3f, 0xfa, - 0x2c, 0x31, 0xa7, 0x3e, 0xac, 0xab, 0x3f, 0xa8, - 0x41, 0x41, 0x41, 0x41, 0x8e, 0x8f, 0x92, 0x80, - 0x45, 0x90, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, - 0x44, 0xa5, 0x4f, 0x4f, 0x4f, 0x4f, 0x99, 0x78, - 0x9d, 0x55, 0x55, 0x55, 0x9a, 0x59, 0x3f, 0xe1, - 0x85, 0xa0, 0x83, 0x61, 0x84, 0x86, 0x91, 0x87, - 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, - 0x64, 0xa4, 0x95, 0xa2, 0x93, 0x6f, 0x94, 0xf6, - 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x79, 0x3f, 0x98, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, - 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, - 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x9d, 0x9b, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x99, 0x94, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, - 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, - 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, - 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, - 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, - 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 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, 0xe9, 0xee, 0x3f, 0x3f, - 0x3f, 0xe4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x92, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xe1, 0x3f, 0xeb, - 0xed, 0x3f, 0x69, 0x72, 0x75, 0x76, 0xe1, 0x3f, - 0x3f, 0xed, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x8b, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x83, 0x41, 0x83, - 0x41, 0x83, 0x41, 0x83, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x88, - 0x45, 0x88, 0x45, 0x88, 0x45, 0x88, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0xea, 0xea, 0xea, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x9e, - 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, 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, 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, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, - 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xe3, 0x3f, 0xe2, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, - 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, - 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, - 0x3f, 0x3f, 0xae, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, - 0xf3, 0xf2, 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, 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, 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, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x7c, 0x7c, - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, - 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x9c, 0xaa, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_865 = -{ - { 865, 1, 0x003f, 0x003f, "OEM Nordic" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_866.c b/reactos/tools/unicode/c_866.c deleted file mode 100644 index 1493a19a9ee..00000000000 --- a/reactos/tools/unicode/c_866.c +++ /dev/null @@ -1,783 +0,0 @@ -/* code page 866 (OEM Russian) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP866.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 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, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, - 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 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, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, - 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0x21, 0x63, 0x4c, 0xfd, 0x59, 0x7c, 0x3f, - 0x22, 0x63, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d, - 0xf8, 0x3f, 0x32, 0x33, 0x27, 0x75, 0x3f, 0xfa, - 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, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0400 .. 0x04ff */ - 0x85, 0xf0, 0x3f, 0x83, 0xf2, 0x3f, 0x3f, 0xf4, - 0x3f, 0x3f, 0x3f, 0x3f, 0x8a, 0x88, 0xf6, 0x3f, - 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, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xa5, 0xf1, 0x3f, 0xa3, 0xf3, 0x3f, 0x3f, 0xf5, - 0x3f, 0x3f, 0x3f, 0x3f, 0xaa, 0xa8, 0xf7, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x86, 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x80, 0xa0, 0x80, 0xa0, 0x3f, 0x3f, 0x85, 0xa5, - 0x3f, 0x3f, 0x3f, 0x3f, 0x86, 0xa6, 0x87, 0xa7, - 0x3f, 0x3f, 0x88, 0xa8, 0x88, 0xa8, 0x8e, 0xae, - 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0xed, 0x93, 0xe3, - 0x93, 0xe3, 0x93, 0xe3, 0x97, 0xe7, 0x3f, 0x3f, - 0x9b, 0xeb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xad, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0xfc, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 0xf9, 0xfb, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x7c, 0x7c, - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, - 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x4c, 0x3f, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_866 = -{ - { 866, 1, 0x003f, 0x003f, "OEM Russian" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_869.c b/reactos/tools/unicode/c_869.c deleted file mode 100644 index f6920b97826..00000000000 --- a/reactos/tools/unicode/c_869.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 869 (OEM Greek) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP869.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0386, 0x0087, - 0x00b7, 0x00ac, 0x00a6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, - 0x038a, 0x03aa, 0x038c, 0x0093, 0x0094, 0x038e, 0x03ab, 0x00a9, - 0x038f, 0x00b2, 0x00b3, 0x03ac, 0x00a3, 0x03ad, 0x03ae, 0x03af, - 0x03ca, 0x0390, 0x03cc, 0x03cd, 0x0391, 0x0392, 0x0393, 0x0394, - 0x0395, 0x0396, 0x0397, 0x00bd, 0x0398, 0x0399, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039a, 0x039b, 0x039c, - 0x039d, 0x2563, 0x2551, 0x2557, 0x255d, 0x039e, 0x039f, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x03a0, 0x03a1, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x03a3, - 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, - 0x03b3, 0x2518, 0x250c, 0x2588, 0x2584, 0x03b4, 0x03b5, 0x2580, - 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, - 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x0384, - 0x00ad, 0x00b1, 0x03c5, 0x03c6, 0x03c7, 0x00a7, 0x03c8, 0x0385, - 0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0386, 0x0087, - 0x00b7, 0x00ac, 0x00a6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, - 0x038a, 0x03aa, 0x038c, 0x0093, 0x0094, 0x038e, 0x03ab, 0x00a9, - 0x038f, 0x00b2, 0x00b3, 0x03ac, 0x00a3, 0x03ad, 0x03ae, 0x03af, - 0x03ca, 0x0390, 0x03cc, 0x03cd, 0x0391, 0x0392, 0x0393, 0x0394, - 0x0395, 0x0396, 0x0397, 0x00bd, 0x0398, 0x0399, 0x00ab, 0x00bb, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039a, 0x039b, 0x039c, - 0x039d, 0x2563, 0x2551, 0x2557, 0x255d, 0x039e, 0x039f, 0x2510, - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x03a0, 0x03a1, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x03a3, - 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, - 0x03b3, 0x2518, 0x250c, 0x2588, 0x2584, 0x03b4, 0x03b5, 0x2580, - 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, - 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x0384, - 0x00ad, 0x00b1, 0x03c5, 0x03c6, 0x03c7, 0x00a7, 0x03c8, 0x0385, - 0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0 -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x3f, 0x87, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x93, 0x94, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xff, 0x21, 0x63, 0x9c, 0x3f, 0x59, 0x8a, 0xf5, - 0xf9, 0x97, 0x61, 0xae, 0x89, 0xf0, 0x72, 0x8e, - 0xf8, 0xf1, 0x99, 0x9a, 0x27, 0xe6, 0x3f, 0x88, - 0x2c, 0x31, 0x6f, 0xaf, 0x3f, 0xab, 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, 0xd7, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x8b, 0x8c, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x8e, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x8e, 0x8e, 0x3f, 0x3f, - 0xf9, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0xf9, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0xf7, 0x86, 0x88, - 0x8d, 0x8f, 0x90, 0x3f, 0x92, 0x3f, 0x95, 0x98, - 0xa1, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, - 0xac, 0xad, 0xb5, 0xb6, 0xb7, 0xb8, 0xbd, 0xbe, - 0xc6, 0xc7, 0x3f, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, - 0xd4, 0xd5, 0x91, 0x96, 0x9b, 0x9d, 0x9e, 0x9f, - 0xfc, 0xd6, 0xd7, 0xd8, 0xdd, 0xde, 0xe0, 0xe1, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, - 0xea, 0xeb, 0xed, 0xec, 0xee, 0xf2, 0xf3, 0xf4, - 0xf6, 0xfa, 0xa0, 0xfb, 0xa2, 0xa3, 0xfd, 0x3f, - 0xd7, 0xe2, 0xd1, 0xd1, 0xd1, 0xf3, 0xea, 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, - 0xe4, 0xeb, 0xed, 0x3f, 0xac, 0xde, 0x3f, 0x3f, - 0x3f, 0xcf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0xd7, 0xd8, 0xdd, - 0xf3, 0xf4, 0x69, 0x72, 0x75, 0x76, 0xd7, 0xd8, - 0xeb, 0xf3, 0xf4, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0xe2, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, - 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, - 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0x3f, 0x3f, - 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0x3f, 0x3f, - 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, - 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, - 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, - 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0x3f, 0x3f, - 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0x3f, 0x3f, - 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, - 0x3f, 0xd1, 0x3f, 0xd1, 0x3f, 0xd1, 0x3f, 0xd1, - 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, - 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, - 0xd6, 0x9b, 0xde, 0x9d, 0xe1, 0x9e, 0xe3, 0x9f, - 0xe9, 0xa2, 0xf2, 0xa3, 0xfa, 0xfd, 0x3f, 0x3f, - 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, - 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, - 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, - 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, - 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, - 0xd6, 0xd6, 0xd6, 0xd6, 0x9b, 0x3f, 0xd6, 0xd6, - 0xa4, 0xa4, 0xa4, 0x86, 0xa4, 0x3f, 0xe3, 0x3f, - 0x3f, 0xf9, 0xe1, 0xe1, 0x9e, 0x3f, 0xe1, 0xe1, - 0xa8, 0x8d, 0xaa, 0x8f, 0xaa, 0x3f, 0x3f, 0x3f, - 0xe3, 0xe3, 0xa0, 0xa1, 0x3f, 0x3f, 0xe3, 0xa0, - 0xad, 0xad, 0xad, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf2, 0xf2, 0xfb, 0xfc, 0xeb, 0xeb, 0xf2, 0xfb, - 0xd1, 0xd1, 0xd1, 0x95, 0xc7, 0xf9, 0xf7, 0x60, - 0x3f, 0x3f, 0xfa, 0xfa, 0xfd, 0x3f, 0xfa, 0xfa, - 0xbe, 0x92, 0xd5, 0x98, 0xd5, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0x8e, 0x8e, 0x8e, 0x3f, 0x5f, - 0x8b, 0x8c, 0x2c, 0x8b, 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, 0x8b, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x8e, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x9c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xd5, 0x3f, - 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, - 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x69, 0x3f, 0x3f, 0xea, 0xd8, 0xa6, 0xc6, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, - 0xf8, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 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, 0xae, 0xaf, 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x8a, 0x8a, - 0x2d, 0x2d, 0x8a, 0x8a, 0xda, 0xda, 0xda, 0xda, - 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, - 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, - 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, - 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, - 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x8a, 0x8a, - 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, - 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, - 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, - 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, - 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xfe, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x8e, 0x8e, 0x8e, 0x8e, 0x5f, 0x5f, 0x5f, - 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, - 0x8e, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, - 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, - 0x5c, 0x24, 0x25, 0x40, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x9c, 0x89, 0x8e, 0x8a, 0x59, 0x3f, 0x3f, - 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_869 = -{ - { 869, 1, 0x003f, 0x003f, "OEM Greek" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_874.c b/reactos/tools/unicode/c_874.c deleted file mode 100644 index bbff028da8e..00000000000 --- a/reactos/tools/unicode/c_874.c +++ /dev/null @@ -1,486 +0,0 @@ -/* code page 874 (ANSI/OEM Thai) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit874.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x20ac, 0x0081, 0x0082, 0x0083, 0x0084, 0x2026, 0x0086, 0x0087, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, - 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 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, - 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, - 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, 0xf8c1, 0xf8c2, 0xf8c3, 0xf8c4, 0x0e3f, - 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, - 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, - 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, - 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xf8c5, 0xf8c6, 0xf8c7, 0xf8c8, - /* glyphs */ - 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, - 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, - 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, - 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, - 0x20ac, 0x0081, 0x0082, 0x0083, 0x0084, 0x2026, 0x0086, 0x0087, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, - 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 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, - 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, - 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, 0xf8c1, 0xf8c2, 0xf8c3, 0xf8c4, 0x0e3f, - 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, - 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, - 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, - 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xf8c5, 0xf8c6, 0xf8c7, 0xf8c8 -}; - -static const unsigned char uni2cp_low[2816] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x3f, 0x81, 0x82, 0x83, 0x84, 0x3f, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x15, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x14, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0e00 .. 0x0eff */ - 0x3f, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, - 0xe0, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x96, 0x97, 0x3f, 0x3f, 0x3f, - 0x91, 0x92, 0x3f, 0x3f, 0x93, 0x94, 0x3f, 0x3f, - 0x3f, 0x3f, 0x95, 0x3f, 0x3f, 0x3f, 0x85, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x13, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 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, 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, 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, - /* 0x2100 .. 0x21ff */ - 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, 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, 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, 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, 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, - 0x1b, 0x18, 0x1a, 0x19, 0x1d, 0x12, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x17, 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, 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, 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, - /* 0x2200 .. 0x22ff */ - 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, 0x3f, 0x3f, 0x1c, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x7f, 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, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0xc4, 0x3f, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xda, 0x3f, 0x3f, 0x3f, - 0xbf, 0x3f, 0x3f, 0x3f, 0xc0, 0x3f, 0x3f, 0x3f, - 0xd9, 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, 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, - 0xcd, 0xba, 0x3f, 0x3f, 0xc9, 0x3f, 0x3f, 0xbb, - 0x3f, 0x3f, 0xc8, 0x3f, 0x3f, 0xbc, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x16, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x1e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x10, 0x3f, 0x1f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x11, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x09, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x08, 0x0a, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2600 .. 0x26ff */ - 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, 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, 0x01, 0x02, 0x0f, 0x3f, 0x3f, 0x3f, - 0x0c, 0x3f, 0x0b, 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, - 0x06, 0x3f, 0x3f, 0x05, 0x3f, 0x03, 0x04, 0x3f, - 0x3f, 0x3f, 0x0d, 0x0e, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xf800 .. 0xf8ff */ - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xdb, 0xdc, 0xdd, 0xde, 0xfc, 0xfd, 0xfe, - 0xff, 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0100, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0200, 0x0300, 0x0400, 0x0500, 0x0a00, 0x0600, 0x0700, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, - 0x0800, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0900 -}; - -const struct sbcs_table cptable_874 = -{ - { 874, 1, 0x003f, 0x003f, "ANSI/OEM Thai" }, - cp2uni, - cp2uni + 256, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_875.c b/reactos/tools/unicode/c_875.c deleted file mode 100644 index 6fcfe88a25c..00000000000 --- a/reactos/tools/unicode/c_875.c +++ /dev/null @@ -1,717 +0,0 @@ -/* code page 875 (IBM EBCDIC Greek) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/EBCDIC/CP875.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, - 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, - 0x03aa, 0x03ab, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - 0x00a8, 0x0386, 0x0388, 0x0389, 0x00a0, 0x038a, 0x038c, 0x038e, - 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, - 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, - 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, - 0x03cb, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x03c9, 0x0390, 0x03b0, 0x2018, 0x2015, - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b1, 0x00bd, 0x001a, 0x0387, 0x2019, 0x00a6, - 0x005c, 0x001a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00a7, 0x001a, 0x001a, 0x00ab, 0x00ac, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00a9, 0x001a, 0x001a, 0x00bb, 0x009f -}; - -static const unsigned char uni2cp_low[4864] = -{ - /* 0x0000 .. 0x00ff */ - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, - 0x74, 0x4f, 0x83, 0xb0, 0x3f, 0xe8, 0xdf, 0xeb, - 0x70, 0xfb, 0x81, 0xee, 0xef, 0xca, 0x99, 0xcf, - 0x90, 0xda, 0xea, 0xfa, 0xa0, 0x9f, 0x3f, 0x3f, - 0x6b, 0xf1, 0x96, 0xfe, 0x3f, 0xdb, 0x3f, 0x3f, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc3, - 0xc5, 0xc5, 0xc5, 0xc5, 0xc9, 0xc9, 0xc9, 0xc9, - 0xc4, 0xd5, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xa7, - 0xd6, 0xe4, 0xe4, 0xe4, 0xe4, 0xe8, 0x3f, 0x8b, - 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x83, - 0x85, 0x85, 0x85, 0x85, 0x89, 0x89, 0x89, 0x89, - 0x84, 0x95, 0x96, 0x96, 0x96, 0x96, 0x96, 0x3f, - 0x96, 0xa4, 0xa4, 0xa4, 0xa4, 0xa8, 0x3f, 0xa8, - /* 0x0100 .. 0x01ff */ - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc3, 0x83, - 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc4, 0x84, - 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc7, 0x87, 0xc7, 0x87, - 0xc7, 0x87, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, - 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, - 0xc9, 0x89, 0x3f, 0x3f, 0xd1, 0x91, 0xd2, 0x92, - 0x3f, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0x3f, - 0x3f, 0xd3, 0x93, 0xd5, 0x95, 0xd5, 0x95, 0xd5, - 0x95, 0x3f, 0x3f, 0x3f, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, - 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, - 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe6, 0xa6, 0xe8, 0xa8, - 0xe8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0xa2, - 0x82, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc5, 0xc6, 0x86, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, - 0x3f, 0x3f, 0x93, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, - 0xd6, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0xe3, 0xe4, - 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc9, - 0x89, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, - 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0x3f, 0xc1, 0x81, - 0xc1, 0x81, 0xc1, 0x81, 0xc7, 0x87, 0xc7, 0x87, - 0xd2, 0x92, 0xd6, 0x96, 0xd6, 0x96, 0x3f, 0x3f, - 0x91, 0x3f, 0x3f, 0x3f, 0xc7, 0x87, 0x3f, 0x3f, - 0xd5, 0x95, 0xc1, 0x81, 0xc1, 0x81, 0xd6, 0x96, - /* 0x0200 .. 0x02ff */ - 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, - 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, - 0xd9, 0x99, 0xd9, 0x99, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe2, 0xa2, 0xe3, 0xa3, 0x3f, 0x3f, 0xc8, 0x88, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, - 0xc5, 0x85, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xe8, 0xa8, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x87, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x88, 0x3f, 0x91, 0x99, 0x3f, 0x3f, 0x3f, 0xa6, - 0xa8, 0xa0, 0x7f, 0xce, 0xde, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x3f, 0x5f, 0xa5, - 0x7d, 0xcf, 0xa0, 0x79, 0x3f, 0x6d, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x90, 0x3f, 0xa1, 0x7f, 0x3f, 0x3f, - 0x3f, 0x93, 0xa2, 0xa7, 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, - /* 0x0300 .. 0x03ff */ - 0x79, 0xa0, 0x5f, 0xa1, 0xcf, 0xcf, 0x3f, 0x3f, - 0x70, 0x3f, 0x90, 0x7f, 0xa5, 0x3f, 0x7f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x6b, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x6d, 0x6d, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x79, 0xa0, 0x3f, 0x3f, 0x70, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x80, 0x71, 0xdd, - 0x72, 0x73, 0x75, 0x3f, 0x76, 0x3f, 0x77, 0x78, - 0xcc, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, - 0x57, 0x58, 0x3f, 0x59, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0xb1, 0xb2, 0xb3, 0xb5, - 0xcd, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x9a, - 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xaa, 0xab, 0xac, - 0xad, 0xae, 0xba, 0xaf, 0xbb, 0xbc, 0xbd, 0xbe, - 0xbf, 0xcb, 0xb4, 0xb8, 0xb6, 0xb7, 0xb9, 0x3f, - 0x8b, 0x9b, 0x63, 0x63, 0x63, 0xbd, 0xad, 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, - 0x9d, 0xae, 0xba, 0x3f, 0x48, 0x8e, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc2, 0x3f, - 0xc4, 0xc5, 0x3f, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, - 0xd3, 0xd4, 0xd5, 0x3f, 0xd6, 0x3f, 0xd7, 0xd9, - 0xe3, 0xe4, 0xe6, 0x81, 0x3f, 0x3f, 0x3f, 0x82, - 0x84, 0x85, 0x3f, 0x3f, 0x3f, 0x87, 0x3f, 0x92, - 0x94, 0x3f, 0x96, 0x3f, 0x3f, 0x3f, 0x97, 0xa3, - 0xa4, 0x3f, 0x3f, 0xa5, 0x3f, 0x8b, 0x8c, 0x8d, - 0xbd, 0xbe, 0x89, 0x99, 0xa4, 0xa5, 0x8b, 0x8c, - 0xae, 0xbd, 0xbe, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x83, 0x3f, 0x84, 0x3f, - 0x86, 0x3f, 0x87, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, 0x3f, 0x3f, 0x9b, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0xc1, 0x81, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, - 0xc3, 0x83, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, - 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc6, 0x86, - 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, - 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0xc9, 0x89, - 0xd2, 0x92, 0xd2, 0x92, 0xd2, 0x92, 0xd3, 0x93, - 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd4, 0x94, - 0xd4, 0x94, 0xd4, 0x94, 0xd5, 0x95, 0xd5, 0x95, - 0xd5, 0x95, 0xd5, 0x95, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xd7, 0x97, 0xd7, 0x97, - 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, - 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, - 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, - 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe5, 0xa5, 0xe5, 0xa5, - 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, - 0xe6, 0xa6, 0xe7, 0xa7, 0xe7, 0xa7, 0xe8, 0xa8, - 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0x88, 0xa3, - 0xa6, 0xa8, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, - 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, - 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, - 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, - 0xd6, 0x96, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, - 0xe4, 0xa4, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, - 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, - 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, - 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0x3f, 0x3f, - 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x3f, 0x3f, - 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, - 0x3f, 0x63, 0x3f, 0x63, 0x3f, 0x63, 0x3f, 0x63, - 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, - 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, - 0x8a, 0xb1, 0x8e, 0xb2, 0x9a, 0xb3, 0x9c, 0xb5, - 0xac, 0xb6, 0xbc, 0xb7, 0xcb, 0xb9, 0x3f, 0x3f, - 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, - 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, - 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, - 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, - 0x8a, 0x8a, 0x8a, 0x8a, 0xb1, 0x3f, 0x8a, 0x8a, - 0x41, 0x41, 0x41, 0x71, 0x41, 0x3f, 0x9c, 0x3f, - 0x3f, 0x70, 0x9a, 0x9a, 0xb3, 0x3f, 0x9a, 0x9a, - 0x45, 0x72, 0x47, 0x73, 0x47, 0x3f, 0x3f, 0x3f, - 0x9c, 0x9c, 0xb4, 0xcc, 0x3f, 0x3f, 0x9c, 0xb4, - 0x49, 0x49, 0x49, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, - 0xbc, 0xbc, 0xb8, 0xcd, 0xae, 0xae, 0xbc, 0xb8, - 0x63, 0x63, 0x63, 0x77, 0x58, 0x70, 0x80, 0x79, - 0x3f, 0x3f, 0xcb, 0xcb, 0xb9, 0x3f, 0xcb, 0xcb, - 0x56, 0x76, 0x67, 0x78, 0x67, 0xa0, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x60, 0x3f, 0xcf, 0xcf, 0xcf, 0x3f, 0x6d, - 0xce, 0xde, 0x6b, 0xce, 0x7f, 0x7f, 0x6b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x4b, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, - 0x3f, 0x3f, 0xa0, 0x7f, 0x3f, 0xce, 0x3f, 0x3f, - 0x3f, 0x4c, 0x6e, 0x3f, 0x4f, 0x3f, 0xcf, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 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, 0x40, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x90, 0x89, 0x3f, 0x3f, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x95, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x3f, - 0x81, 0x85, 0x96, 0xa7, 0x3f, 0x88, 0x92, 0x93, - 0x94, 0x95, 0x97, 0xa2, 0xa3, 0x3f, 0x3f, 0x3f, - 0x3f, 0x83, 0x3f, 0x3f, 0xb0, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0xc3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, - 0x3f, 0x3f, 0x87, 0xc8, 0xc8, 0xc8, 0x88, 0x88, - 0xc9, 0xc9, 0xd3, 0x93, 0x3f, 0xd5, 0x3f, 0x3f, - 0xd7, 0xd7, 0xd8, 0xd9, 0xd9, 0xd9, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0x67, 0x3f, - 0xe9, 0x3f, 0xd2, 0xc1, 0xc2, 0xc3, 0x85, 0x85, - 0xc5, 0xc6, 0x3f, 0xd4, 0x96, 0x3f, 0x3f, 0x3f, - 0x3f, 0x89, 0x3f, 0x3f, 0xad, 0x8c, 0x43, 0x57, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x84, 0x85, - 0x89, 0x91, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xc9, 0x3f, 0x3f, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, - 0x3f, 0xe7, 0x3f, 0x3f, 0xd3, 0xc3, 0xc4, 0xd4, - 0x89, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa7, 0x3f, 0x3f, 0x93, 0x83, 0x84, 0x94, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4c, 0x5f, 0x6e, 0xa5, 0x60, 0x6a, 0x3f, 0x3f, - 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x60, 0xda, 0x3f, 0x61, 0xe0, 0x5c, - 0x90, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xd3, - 0x3f, 0x3f, 0x3f, 0x6a, 0x6a, 0x3f, 0x3f, 0x3f, - 0x3f, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, - 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xa1, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x7e, 0x7e, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0xee, 0xfe, 0x3f, 0x3f, 0x4c, 0x6e, - 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, 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, 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, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x4c, 0x6e, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, - 0xf9, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc2, - 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, - 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, - 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, - 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x60, 0x60, 0x6a, 0x6a, 0x60, 0x60, 0xdf, 0xdf, - 0x60, 0x60, 0xdf, 0xdf, 0x4e, 0x4e, 0x4e, 0x4e, - 0xef, 0xef, 0xef, 0xef, 0xd3, 0xd3, 0xd3, 0xd3, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0xe3, - 0xe3, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x60, 0x60, 0xdf, 0xdf, - 0x7e, 0x6a, 0x4e, 0x4e, 0x4e, 0xef, 0xef, 0xef, - 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0x4e, - 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x61, 0xe0, 0xe7, 0x60, 0x6a, 0x60, 0x6a, - 0x60, 0x6a, 0x60, 0x6a, 0x60, 0x6a, 0x60, 0x6a, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0xd6, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x91, 0xe5, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4c, 0x6e, 0xee, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x4a, 0x5a, 0x3f, 0x7f, 0x7f, 0x6b, - 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, 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x4e, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xcf, 0xcf, 0xcf, 0xcf, 0x6d, 0x6d, 0x6d, - 0x6b, 0x3f, 0x4b, 0x3f, 0x5e, 0x7a, 0x6f, 0x4f, - 0xcf, 0x4d, 0x5d, 0xc0, 0xd0, 0x3f, 0x3f, 0x7b, - 0x50, 0x5c, 0x4e, 0x60, 0x4c, 0x6e, 0x7e, 0x3f, - 0xe0, 0x5b, 0x6c, 0x7c, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - /* 0xff00 .. 0xffff */ - 0x3f, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x83, 0xb0, 0xef, 0xcf, 0xdf, 0xe8, 0x3f, 0x3f, - 0x6a, 0x4c, 0x5f, 0x6e, 0xa5, 0x3f, 0xd6, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, - 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x1200, 0x1200, - 0x0e00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 -}; - -const struct sbcs_table cptable_875 = -{ - { 875, 1, 0x003f, 0x003f, "IBM EBCDIC Greek" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_878.c b/reactos/tools/unicode/c_878.c deleted file mode 100644 index 48bf5feb609..00000000000 --- a/reactos/tools/unicode/c_878.c +++ /dev/null @@ -1,750 +0,0 @@ -/* code page 878 (Russian KOI8) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[256] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, - 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, - 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, - 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, - 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, - 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, - 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, - 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, - 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, - 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, - 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, - 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, - 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a -}; - -static const unsigned char uni2cp_low[5120] = -{ - /* 0x0000 .. 0x00ff */ - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x9a, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x7c, 0x3f, - 0x22, 0xbf, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d, - 0x9c, 0x3f, 0x9d, 0x33, 0x27, 0x75, 0x3f, 0x9e, - 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, - 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, - 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, - 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x9f, - 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, - /* 0x0100 .. 0x01ff */ - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, - 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, - 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, - 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, - 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, - 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, - 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, - 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, - 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, - 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, - 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, - 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, - 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, - 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x81, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, - 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, - 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, - 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, - 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, - 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, - /* 0x0200 .. 0x02ff */ - 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, - 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, - 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x59, 0x79, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x67, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 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, 0x60, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x9c, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, - 0x3f, 0x6c, 0x73, 0x78, 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, - /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, - 0x22, 0x3f, 0x9c, 0x22, 0x76, 0x3f, 0x22, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x60, 0x27, 0x3f, 0x3f, 0x22, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x9e, - 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, - 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, - 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, - 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, - 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x59, 0x59, 0x59, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x0400 .. 0x04ff */ - 0xe5, 0xb3, 0x3f, 0xe7, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xeb, 0xe9, 0xf5, 0x3f, - 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, - 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, - 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, - 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, - 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, - 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, - 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, - 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, - 0xc5, 0xa3, 0x3f, 0xc7, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, 0xc9, 0xd5, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0xf6, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xe1, 0xc1, 0xe1, 0xc1, 0x3f, 0x3f, 0xe5, 0xc5, - 0x3f, 0x3f, 0x3f, 0x3f, 0xf6, 0xd6, 0xfa, 0xda, - 0x3f, 0x3f, 0xe9, 0xc9, 0xe9, 0xc9, 0xef, 0xcf, - 0x3f, 0x3f, 0x3f, 0x3f, 0xfc, 0xdc, 0xf5, 0xd5, - 0xf5, 0xd5, 0xf5, 0xd5, 0xfe, 0xde, 0x3f, 0x3f, - 0xf9, 0xd9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1d00 .. 0x1dff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x42, 0x3f, - 0x44, 0x45, 0x3f, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x52, - 0x54, 0x55, 0x57, 0x61, 0x3f, 0x3f, 0x3f, 0x62, - 0x64, 0x65, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x6b, - 0x6d, 0x3f, 0x6f, 0x3f, 0x3f, 0x3f, 0x70, 0x74, - 0x75, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x69, 0x72, 0x75, 0x76, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0xce, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x64, 0x3f, - 0x66, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x7a, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1e00 .. 0x1eff */ - 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, - 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, - 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, - 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, - 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, - 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, - 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, - 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, - 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, - 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, - 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, - 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, - 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, - 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, - 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, - 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, - 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, - 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, - 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, - 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, - 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x1f00 .. 0x1fff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, - 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, - /* 0x2000 .. 0x20ff */ - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 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, 0x95, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x9c, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, - 0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f, - 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2100 .. 0x21ff */ - 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, - 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, - 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, - 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, - 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, - 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, - 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, - 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, - 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2200 .. 0x22ff */ - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, - 0x9c, 0x95, 0x96, 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, 0x3f, 0x3a, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, - 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x97, 0x97, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3d, 0x3d, 0x3d, 0x3d, 0x98, 0x99, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, - 0x98, 0x99, 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, 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, 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, 0x9e, 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, 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, - /* 0x2300 .. 0x23ff */ - 0x3f, 0x3f, 0x3f, 0x5e, 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, - 0x93, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, - 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, 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, 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, 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, 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, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2400 .. 0x24ff */ - 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, 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, 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, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2500 .. 0x25ff */ - 0x80, 0x80, 0x81, 0x81, 0x2d, 0x2d, 0x7c, 0x7c, - 0x2d, 0x2d, 0x7c, 0x7c, 0x82, 0x82, 0x82, 0x82, - 0x83, 0x83, 0x83, 0x83, 0x84, 0x84, 0x84, 0x84, - 0x85, 0x85, 0x85, 0x85, 0x86, 0x86, 0x86, 0x86, - 0x86, 0x86, 0x86, 0x86, 0x87, 0x87, 0x87, 0x87, - 0x87, 0x87, 0x87, 0x87, 0x88, 0x88, 0x88, 0x88, - 0x88, 0x88, 0x88, 0x88, 0x89, 0x89, 0x89, 0x89, - 0x89, 0x89, 0x89, 0x89, 0x8a, 0x8a, 0x8a, 0x8a, - 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, - 0x8a, 0x8a, 0x8a, 0x8a, 0x2d, 0x2d, 0x7c, 0x7c, - 0xa0, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, - 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, - 0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, - 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, - 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, - 0x8b, 0x3f, 0x3f, 0x3f, 0x8c, 0x3f, 0x3f, 0x3f, - 0x8d, 0x3f, 0x3f, 0x3f, 0x8e, 0x3f, 0x3f, 0x3f, - 0x8f, 0x90, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x94, 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, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x4f, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x2c00 .. 0x2cff */ - 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 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, 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, - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0x3000 .. 0x30ff */ - 0x20, 0x3f, 0x3f, 0x3f, 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, 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, - 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, 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, 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, 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, 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, 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, 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, - /* 0xfb00 .. 0xfbff */ - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x2b, 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, 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, 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, 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, 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, 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, - 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, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* 0xfe00 .. 0xfeff */ - 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 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, 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, 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, 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, - 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, 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, - /* 0xff00 .. 0xffff */ - 0x3f, 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 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, 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, 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, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x63, 0x4c, 0x3f, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, - 0x81, 0x3c, 0x5e, 0x3e, 0x76, 0x94, 0x4f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - /* defaults */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0e00, 0x1300, 0x1300, 0x1300, - 0x0f00, 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, 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, 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, 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, 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, 0x1000, 0x1300, 0x1300, 0x1100, 0x1200 -}; - -const struct sbcs_table cptable_878 = -{ - { 878, 1, 0x003f, 0x003f, "Russian KOI8" }, - cp2uni, - cp2uni, - uni2cp_low, - uni2cp_high -}; diff --git a/reactos/tools/unicode/c_932.c b/reactos/tools/unicode/c_932.c deleted file mode 100644 index 0f6cfb690cc..00000000000 --- a/reactos/tools/unicode/c_932.c +++ /dev/null @@ -1,5673 +0,0 @@ -/* code page 932 (ANSI/OEM Japanese Shift-JIS) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit932.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[15616] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xf8f0, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, - 0xff68, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, - 0xff70, 0xff71, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, - 0xff78, 0xff79, 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, - 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, - 0xff88, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, 0xff8f, - 0xff90, 0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97, - 0xff98, 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf8f1, 0xf8f2, 0xf8f3, - /* 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, 0x2015, 0x2010, 0xff0f, 0xff3c, - 0xff5e, 0x2225, 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, 0xff0d, 0x00b1, 0x00d7, 0x30fb, - 0x00f7, 0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e, - 0x2234, 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5, - 0xff04, 0xffe0, 0xffe1, 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, 0xffe2, 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, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 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 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, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 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, - 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, - 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, - 0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162, 0x2163, - 0x2164, 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, 0x2261, 0x222b, 0x222e, 0x2211, 0x221a, 0x22a5, 0x2220, - 0x221f, 0x22bf, 0x2235, 0x2229, 0x222a, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 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 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, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 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, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 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, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 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 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, - 0x7e8a, 0x891c, 0x9348, 0x9288, 0x84dc, 0x4fc9, 0x70bb, 0x6631, - 0x68c8, 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, 0x514a, 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, 0x590b, 0x5953, 0x595b, 0x595d, 0x5963, - 0x59a4, 0x59ba, 0x5b56, 0x5bc0, 0x752f, 0x5bd8, 0x5bec, 0x5c1e, - 0x5ca6, 0x5cba, 0x5cf5, 0x5d27, 0x5d53, 0xfa11, 0x5d42, 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, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x72be, 0x7324, 0xfa16, 0x7377, 0x73bd, 0x73c9, 0x73d6, 0x73e3, - 0x73d2, 0x7407, 0x73f5, 0x7426, 0x742a, 0x7429, 0x742e, 0x7462, - 0x7489, 0x749f, 0x7501, 0x756f, 0x7682, 0x769c, 0x769e, 0x769b, - 0x76a6, 0xfa17, 0x7746, 0x52af, 0x7821, 0x784e, 0x7864, 0x787a, - 0x7930, 0xfa18, 0xfa19, 0xfa1a, 0x7994, 0xfa1b, 0x799b, 0x7ad1, - 0x7ae7, 0xfa1c, 0x7aeb, 0x7b9e, 0xfa1d, 0x7d48, 0x7d5c, 0x7db7, - 0x7da0, 0x7dd6, 0x7e52, 0x7f47, 0x7fa1, 0xfa1e, 0x8301, 0x8362, - 0x837f, 0x83c7, 0x83f6, 0x8448, 0x84b4, 0x8553, 0x8559, 0x30fb, - 0x856b, 0xfa1f, 0x85b0, 0xfa20, 0xfa21, 0x8807, 0x88f5, 0x8a12, - 0x8a37, 0x8a79, 0x8aa7, 0x8abe, 0x8adf, 0xfa22, 0x8af6, 0x8b53, - 0x8b7f, 0x8cf0, 0x8cf4, 0x8d12, 0x8d76, 0xfa23, 0x8ecf, 0xfa24, - 0xfa25, 0x9067, 0x90de, 0xfa26, 0x9115, 0x9127, 0x91da, 0x91d7, - 0x91de, 0x91ed, 0x91ee, 0x91e4, 0x91e5, 0x9206, 0x9210, 0x920a, - 0x923a, 0x9240, 0x923c, 0x924e, 0x9259, 0x9251, 0x9239, 0x9267, - 0x92a7, 0x9277, 0x9278, 0x92e7, 0x92d7, 0x92d9, 0x92d0, 0xfa27, - 0x92d5, 0x92e0, 0x92d3, 0x9325, 0x9321, 0x92fb, 0xfa28, 0x931e, - 0x92ff, 0x931d, 0x9302, 0x9370, 0x9357, 0x93a4, 0x93c6, 0x93de, - 0x93f8, 0x9431, 0x9445, 0x9448, 0x9592, 0xf9dc, 0xfa29, 0x969d, - 0x96af, 0x9733, 0x973b, 0x9743, 0x974d, 0x974f, 0x9751, 0x9755, - 0x9857, 0x9865, 0xfa2a, 0xfa2b, 0x9927, 0xfa2c, 0x999e, 0x9a4e, - 0x9ad9, 0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, - 0x9d70, 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, 0x30fb, 0x30fb, 0x2170, - 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, - 0x2179, 0xffe2, 0xffe4, 0xff07, 0xff02, 0x30fb, 0x30fb, 0x30fb, - /* lead byte ef */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 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 f0 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xe000, 0xe001, 0xe002, 0xe003, 0xe004, 0xe005, 0xe006, 0xe007, - 0xe008, 0xe009, 0xe00a, 0xe00b, 0xe00c, 0xe00d, 0xe00e, 0xe00f, - 0xe010, 0xe011, 0xe012, 0xe013, 0xe014, 0xe015, 0xe016, 0xe017, - 0xe018, 0xe019, 0xe01a, 0xe01b, 0xe01c, 0xe01d, 0xe01e, 0xe01f, - 0xe020, 0xe021, 0xe022, 0xe023, 0xe024, 0xe025, 0xe026, 0xe027, - 0xe028, 0xe029, 0xe02a, 0xe02b, 0xe02c, 0xe02d, 0xe02e, 0xe02f, - 0xe030, 0xe031, 0xe032, 0xe033, 0xe034, 0xe035, 0xe036, 0xe037, - 0xe038, 0xe039, 0xe03a, 0xe03b, 0xe03c, 0xe03d, 0xe03e, 0x30fb, - 0xe03f, 0xe040, 0xe041, 0xe042, 0xe043, 0xe044, 0xe045, 0xe046, - 0xe047, 0xe048, 0xe049, 0xe04a, 0xe04b, 0xe04c, 0xe04d, 0xe04e, - 0xe04f, 0xe050, 0xe051, 0xe052, 0xe053, 0xe054, 0xe055, 0xe056, - 0xe057, 0xe058, 0xe059, 0xe05a, 0xe05b, 0xe05c, 0xe05d, 0xe05e, - 0xe05f, 0xe060, 0xe061, 0xe062, 0xe063, 0xe064, 0xe065, 0xe066, - 0xe067, 0xe068, 0xe069, 0xe06a, 0xe06b, 0xe06c, 0xe06d, 0xe06e, - 0xe06f, 0xe070, 0xe071, 0xe072, 0xe073, 0xe074, 0xe075, 0xe076, - 0xe077, 0xe078, 0xe079, 0xe07a, 0xe07b, 0xe07c, 0xe07d, 0xe07e, - 0xe07f, 0xe080, 0xe081, 0xe082, 0xe083, 0xe084, 0xe085, 0xe086, - 0xe087, 0xe088, 0xe089, 0xe08a, 0xe08b, 0xe08c, 0xe08d, 0xe08e, - 0xe08f, 0xe090, 0xe091, 0xe092, 0xe093, 0xe094, 0xe095, 0xe096, - 0xe097, 0xe098, 0xe099, 0xe09a, 0xe09b, 0xe09c, 0xe09d, 0xe09e, - 0xe09f, 0xe0a0, 0xe0a1, 0xe0a2, 0xe0a3, 0xe0a4, 0xe0a5, 0xe0a6, - 0xe0a7, 0xe0a8, 0xe0a9, 0xe0aa, 0xe0ab, 0xe0ac, 0xe0ad, 0xe0ae, - 0xe0af, 0xe0b0, 0xe0b1, 0xe0b2, 0xe0b3, 0xe0b4, 0xe0b5, 0xe0b6, - 0xe0b7, 0xe0b8, 0xe0b9, 0xe0ba, 0xe0bb, 0x30fb, 0x30fb, 0x30fb, - /* lead byte f1 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xe0bc, 0xe0bd, 0xe0be, 0xe0bf, 0xe0c0, 0xe0c1, 0xe0c2, 0xe0c3, - 0xe0c4, 0xe0c5, 0xe0c6, 0xe0c7, 0xe0c8, 0xe0c9, 0xe0ca, 0xe0cb, - 0xe0cc, 0xe0cd, 0xe0ce, 0xe0cf, 0xe0d0, 0xe0d1, 0xe0d2, 0xe0d3, - 0xe0d4, 0xe0d5, 0xe0d6, 0xe0d7, 0xe0d8, 0xe0d9, 0xe0da, 0xe0db, - 0xe0dc, 0xe0dd, 0xe0de, 0xe0df, 0xe0e0, 0xe0e1, 0xe0e2, 0xe0e3, - 0xe0e4, 0xe0e5, 0xe0e6, 0xe0e7, 0xe0e8, 0xe0e9, 0xe0ea, 0xe0eb, - 0xe0ec, 0xe0ed, 0xe0ee, 0xe0ef, 0xe0f0, 0xe0f1, 0xe0f2, 0xe0f3, - 0xe0f4, 0xe0f5, 0xe0f6, 0xe0f7, 0xe0f8, 0xe0f9, 0xe0fa, 0x30fb, - 0xe0fb, 0xe0fc, 0xe0fd, 0xe0fe, 0xe0ff, 0xe100, 0xe101, 0xe102, - 0xe103, 0xe104, 0xe105, 0xe106, 0xe107, 0xe108, 0xe109, 0xe10a, - 0xe10b, 0xe10c, 0xe10d, 0xe10e, 0xe10f, 0xe110, 0xe111, 0xe112, - 0xe113, 0xe114, 0xe115, 0xe116, 0xe117, 0xe118, 0xe119, 0xe11a, - 0xe11b, 0xe11c, 0xe11d, 0xe11e, 0xe11f, 0xe120, 0xe121, 0xe122, - 0xe123, 0xe124, 0xe125, 0xe126, 0xe127, 0xe128, 0xe129, 0xe12a, - 0xe12b, 0xe12c, 0xe12d, 0xe12e, 0xe12f, 0xe130, 0xe131, 0xe132, - 0xe133, 0xe134, 0xe135, 0xe136, 0xe137, 0xe138, 0xe139, 0xe13a, - 0xe13b, 0xe13c, 0xe13d, 0xe13e, 0xe13f, 0xe140, 0xe141, 0xe142, - 0xe143, 0xe144, 0xe145, 0xe146, 0xe147, 0xe148, 0xe149, 0xe14a, - 0xe14b, 0xe14c, 0xe14d, 0xe14e, 0xe14f, 0xe150, 0xe151, 0xe152, - 0xe153, 0xe154, 0xe155, 0xe156, 0xe157, 0xe158, 0xe159, 0xe15a, - 0xe15b, 0xe15c, 0xe15d, 0xe15e, 0xe15f, 0xe160, 0xe161, 0xe162, - 0xe163, 0xe164, 0xe165, 0xe166, 0xe167, 0xe168, 0xe169, 0xe16a, - 0xe16b, 0xe16c, 0xe16d, 0xe16e, 0xe16f, 0xe170, 0xe171, 0xe172, - 0xe173, 0xe174, 0xe175, 0xe176, 0xe177, 0x30fb, 0x30fb, 0x30fb, - /* lead byte f2 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xe178, 0xe179, 0xe17a, 0xe17b, 0xe17c, 0xe17d, 0xe17e, 0xe17f, - 0xe180, 0xe181, 0xe182, 0xe183, 0xe184, 0xe185, 0xe186, 0xe187, - 0xe188, 0xe189, 0xe18a, 0xe18b, 0xe18c, 0xe18d, 0xe18e, 0xe18f, - 0xe190, 0xe191, 0xe192, 0xe193, 0xe194, 0xe195, 0xe196, 0xe197, - 0xe198, 0xe199, 0xe19a, 0xe19b, 0xe19c, 0xe19d, 0xe19e, 0xe19f, - 0xe1a0, 0xe1a1, 0xe1a2, 0xe1a3, 0xe1a4, 0xe1a5, 0xe1a6, 0xe1a7, - 0xe1a8, 0xe1a9, 0xe1aa, 0xe1ab, 0xe1ac, 0xe1ad, 0xe1ae, 0xe1af, - 0xe1b0, 0xe1b1, 0xe1b2, 0xe1b3, 0xe1b4, 0xe1b5, 0xe1b6, 0x30fb, - 0xe1b7, 0xe1b8, 0xe1b9, 0xe1ba, 0xe1bb, 0xe1bc, 0xe1bd, 0xe1be, - 0xe1bf, 0xe1c0, 0xe1c1, 0xe1c2, 0xe1c3, 0xe1c4, 0xe1c5, 0xe1c6, - 0xe1c7, 0xe1c8, 0xe1c9, 0xe1ca, 0xe1cb, 0xe1cc, 0xe1cd, 0xe1ce, - 0xe1cf, 0xe1d0, 0xe1d1, 0xe1d2, 0xe1d3, 0xe1d4, 0xe1d5, 0xe1d6, - 0xe1d7, 0xe1d8, 0xe1d9, 0xe1da, 0xe1db, 0xe1dc, 0xe1dd, 0xe1de, - 0xe1df, 0xe1e0, 0xe1e1, 0xe1e2, 0xe1e3, 0xe1e4, 0xe1e5, 0xe1e6, - 0xe1e7, 0xe1e8, 0xe1e9, 0xe1ea, 0xe1eb, 0xe1ec, 0xe1ed, 0xe1ee, - 0xe1ef, 0xe1f0, 0xe1f1, 0xe1f2, 0xe1f3, 0xe1f4, 0xe1f5, 0xe1f6, - 0xe1f7, 0xe1f8, 0xe1f9, 0xe1fa, 0xe1fb, 0xe1fc, 0xe1fd, 0xe1fe, - 0xe1ff, 0xe200, 0xe201, 0xe202, 0xe203, 0xe204, 0xe205, 0xe206, - 0xe207, 0xe208, 0xe209, 0xe20a, 0xe20b, 0xe20c, 0xe20d, 0xe20e, - 0xe20f, 0xe210, 0xe211, 0xe212, 0xe213, 0xe214, 0xe215, 0xe216, - 0xe217, 0xe218, 0xe219, 0xe21a, 0xe21b, 0xe21c, 0xe21d, 0xe21e, - 0xe21f, 0xe220, 0xe221, 0xe222, 0xe223, 0xe224, 0xe225, 0xe226, - 0xe227, 0xe228, 0xe229, 0xe22a, 0xe22b, 0xe22c, 0xe22d, 0xe22e, - 0xe22f, 0xe230, 0xe231, 0xe232, 0xe233, 0x30fb, 0x30fb, 0x30fb, - /* lead byte f3 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xe234, 0xe235, 0xe236, 0xe237, 0xe238, 0xe239, 0xe23a, 0xe23b, - 0xe23c, 0xe23d, 0xe23e, 0xe23f, 0xe240, 0xe241, 0xe242, 0xe243, - 0xe244, 0xe245, 0xe246, 0xe247, 0xe248, 0xe249, 0xe24a, 0xe24b, - 0xe24c, 0xe24d, 0xe24e, 0xe24f, 0xe250, 0xe251, 0xe252, 0xe253, - 0xe254, 0xe255, 0xe256, 0xe257, 0xe258, 0xe259, 0xe25a, 0xe25b, - 0xe25c, 0xe25d, 0xe25e, 0xe25f, 0xe260, 0xe261, 0xe262, 0xe263, - 0xe264, 0xe265, 0xe266, 0xe267, 0xe268, 0xe269, 0xe26a, 0xe26b, - 0xe26c, 0xe26d, 0xe26e, 0xe26f, 0xe270, 0xe271, 0xe272, 0x30fb, - 0xe273, 0xe274, 0xe275, 0xe276, 0xe277, 0xe278, 0xe279, 0xe27a, - 0xe27b, 0xe27c, 0xe27d, 0xe27e, 0xe27f, 0xe280, 0xe281, 0xe282, - 0xe283, 0xe284, 0xe285, 0xe286, 0xe287, 0xe288, 0xe289, 0xe28a, - 0xe28b, 0xe28c, 0xe28d, 0xe28e, 0xe28f, 0xe290, 0xe291, 0xe292, - 0xe293, 0xe294, 0xe295, 0xe296, 0xe297, 0xe298, 0xe299, 0xe29a, - 0xe29b, 0xe29c, 0xe29d, 0xe29e, 0xe29f, 0xe2a0, 0xe2a1, 0xe2a2, - 0xe2a3, 0xe2a4, 0xe2a5, 0xe2a6, 0xe2a7, 0xe2a8, 0xe2a9, 0xe2aa, - 0xe2ab, 0xe2ac, 0xe2ad, 0xe2ae, 0xe2af, 0xe2b0, 0xe2b1, 0xe2b2, - 0xe2b3, 0xe2b4, 0xe2b5, 0xe2b6, 0xe2b7, 0xe2b8, 0xe2b9, 0xe2ba, - 0xe2bb, 0xe2bc, 0xe2bd, 0xe2be, 0xe2bf, 0xe2c0, 0xe2c1, 0xe2c2, - 0xe2c3, 0xe2c4, 0xe2c5, 0xe2c6, 0xe2c7, 0xe2c8, 0xe2c9, 0xe2ca, - 0xe2cb, 0xe2cc, 0xe2cd, 0xe2ce, 0xe2cf, 0xe2d0, 0xe2d1, 0xe2d2, - 0xe2d3, 0xe2d4, 0xe2d5, 0xe2d6, 0xe2d7, 0xe2d8, 0xe2d9, 0xe2da, - 0xe2db, 0xe2dc, 0xe2dd, 0xe2de, 0xe2df, 0xe2e0, 0xe2e1, 0xe2e2, - 0xe2e3, 0xe2e4, 0xe2e5, 0xe2e6, 0xe2e7, 0xe2e8, 0xe2e9, 0xe2ea, - 0xe2eb, 0xe2ec, 0xe2ed, 0xe2ee, 0xe2ef, 0x30fb, 0x30fb, 0x30fb, - /* lead byte f4 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xe2f0, 0xe2f1, 0xe2f2, 0xe2f3, 0xe2f4, 0xe2f5, 0xe2f6, 0xe2f7, - 0xe2f8, 0xe2f9, 0xe2fa, 0xe2fb, 0xe2fc, 0xe2fd, 0xe2fe, 0xe2ff, - 0xe300, 0xe301, 0xe302, 0xe303, 0xe304, 0xe305, 0xe306, 0xe307, - 0xe308, 0xe309, 0xe30a, 0xe30b, 0xe30c, 0xe30d, 0xe30e, 0xe30f, - 0xe310, 0xe311, 0xe312, 0xe313, 0xe314, 0xe315, 0xe316, 0xe317, - 0xe318, 0xe319, 0xe31a, 0xe31b, 0xe31c, 0xe31d, 0xe31e, 0xe31f, - 0xe320, 0xe321, 0xe322, 0xe323, 0xe324, 0xe325, 0xe326, 0xe327, - 0xe328, 0xe329, 0xe32a, 0xe32b, 0xe32c, 0xe32d, 0xe32e, 0x30fb, - 0xe32f, 0xe330, 0xe331, 0xe332, 0xe333, 0xe334, 0xe335, 0xe336, - 0xe337, 0xe338, 0xe339, 0xe33a, 0xe33b, 0xe33c, 0xe33d, 0xe33e, - 0xe33f, 0xe340, 0xe341, 0xe342, 0xe343, 0xe344, 0xe345, 0xe346, - 0xe347, 0xe348, 0xe349, 0xe34a, 0xe34b, 0xe34c, 0xe34d, 0xe34e, - 0xe34f, 0xe350, 0xe351, 0xe352, 0xe353, 0xe354, 0xe355, 0xe356, - 0xe357, 0xe358, 0xe359, 0xe35a, 0xe35b, 0xe35c, 0xe35d, 0xe35e, - 0xe35f, 0xe360, 0xe361, 0xe362, 0xe363, 0xe364, 0xe365, 0xe366, - 0xe367, 0xe368, 0xe369, 0xe36a, 0xe36b, 0xe36c, 0xe36d, 0xe36e, - 0xe36f, 0xe370, 0xe371, 0xe372, 0xe373, 0xe374, 0xe375, 0xe376, - 0xe377, 0xe378, 0xe379, 0xe37a, 0xe37b, 0xe37c, 0xe37d, 0xe37e, - 0xe37f, 0xe380, 0xe381, 0xe382, 0xe383, 0xe384, 0xe385, 0xe386, - 0xe387, 0xe388, 0xe389, 0xe38a, 0xe38b, 0xe38c, 0xe38d, 0xe38e, - 0xe38f, 0xe390, 0xe391, 0xe392, 0xe393, 0xe394, 0xe395, 0xe396, - 0xe397, 0xe398, 0xe399, 0xe39a, 0xe39b, 0xe39c, 0xe39d, 0xe39e, - 0xe39f, 0xe3a0, 0xe3a1, 0xe3a2, 0xe3a3, 0xe3a4, 0xe3a5, 0xe3a6, - 0xe3a7, 0xe3a8, 0xe3a9, 0xe3aa, 0xe3ab, 0x30fb, 0x30fb, 0x30fb, - /* lead byte f5 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xe3ac, 0xe3ad, 0xe3ae, 0xe3af, 0xe3b0, 0xe3b1, 0xe3b2, 0xe3b3, - 0xe3b4, 0xe3b5, 0xe3b6, 0xe3b7, 0xe3b8, 0xe3b9, 0xe3ba, 0xe3bb, - 0xe3bc, 0xe3bd, 0xe3be, 0xe3bf, 0xe3c0, 0xe3c1, 0xe3c2, 0xe3c3, - 0xe3c4, 0xe3c5, 0xe3c6, 0xe3c7, 0xe3c8, 0xe3c9, 0xe3ca, 0xe3cb, - 0xe3cc, 0xe3cd, 0xe3ce, 0xe3cf, 0xe3d0, 0xe3d1, 0xe3d2, 0xe3d3, - 0xe3d4, 0xe3d5, 0xe3d6, 0xe3d7, 0xe3d8, 0xe3d9, 0xe3da, 0xe3db, - 0xe3dc, 0xe3dd, 0xe3de, 0xe3df, 0xe3e0, 0xe3e1, 0xe3e2, 0xe3e3, - 0xe3e4, 0xe3e5, 0xe3e6, 0xe3e7, 0xe3e8, 0xe3e9, 0xe3ea, 0x30fb, - 0xe3eb, 0xe3ec, 0xe3ed, 0xe3ee, 0xe3ef, 0xe3f0, 0xe3f1, 0xe3f2, - 0xe3f3, 0xe3f4, 0xe3f5, 0xe3f6, 0xe3f7, 0xe3f8, 0xe3f9, 0xe3fa, - 0xe3fb, 0xe3fc, 0xe3fd, 0xe3fe, 0xe3ff, 0xe400, 0xe401, 0xe402, - 0xe403, 0xe404, 0xe405, 0xe406, 0xe407, 0xe408, 0xe409, 0xe40a, - 0xe40b, 0xe40c, 0xe40d, 0xe40e, 0xe40f, 0xe410, 0xe411, 0xe412, - 0xe413, 0xe414, 0xe415, 0xe416, 0xe417, 0xe418, 0xe419, 0xe41a, - 0xe41b, 0xe41c, 0xe41d, 0xe41e, 0xe41f, 0xe420, 0xe421, 0xe422, - 0xe423, 0xe424, 0xe425, 0xe426, 0xe427, 0xe428, 0xe429, 0xe42a, - 0xe42b, 0xe42c, 0xe42d, 0xe42e, 0xe42f, 0xe430, 0xe431, 0xe432, - 0xe433, 0xe434, 0xe435, 0xe436, 0xe437, 0xe438, 0xe439, 0xe43a, - 0xe43b, 0xe43c, 0xe43d, 0xe43e, 0xe43f, 0xe440, 0xe441, 0xe442, - 0xe443, 0xe444, 0xe445, 0xe446, 0xe447, 0xe448, 0xe449, 0xe44a, - 0xe44b, 0xe44c, 0xe44d, 0xe44e, 0xe44f, 0xe450, 0xe451, 0xe452, - 0xe453, 0xe454, 0xe455, 0xe456, 0xe457, 0xe458, 0xe459, 0xe45a, - 0xe45b, 0xe45c, 0xe45d, 0xe45e, 0xe45f, 0xe460, 0xe461, 0xe462, - 0xe463, 0xe464, 0xe465, 0xe466, 0xe467, 0x30fb, 0x30fb, 0x30fb, - /* lead byte f6 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xe468, 0xe469, 0xe46a, 0xe46b, 0xe46c, 0xe46d, 0xe46e, 0xe46f, - 0xe470, 0xe471, 0xe472, 0xe473, 0xe474, 0xe475, 0xe476, 0xe477, - 0xe478, 0xe479, 0xe47a, 0xe47b, 0xe47c, 0xe47d, 0xe47e, 0xe47f, - 0xe480, 0xe481, 0xe482, 0xe483, 0xe484, 0xe485, 0xe486, 0xe487, - 0xe488, 0xe489, 0xe48a, 0xe48b, 0xe48c, 0xe48d, 0xe48e, 0xe48f, - 0xe490, 0xe491, 0xe492, 0xe493, 0xe494, 0xe495, 0xe496, 0xe497, - 0xe498, 0xe499, 0xe49a, 0xe49b, 0xe49c, 0xe49d, 0xe49e, 0xe49f, - 0xe4a0, 0xe4a1, 0xe4a2, 0xe4a3, 0xe4a4, 0xe4a5, 0xe4a6, 0x30fb, - 0xe4a7, 0xe4a8, 0xe4a9, 0xe4aa, 0xe4ab, 0xe4ac, 0xe4ad, 0xe4ae, - 0xe4af, 0xe4b0, 0xe4b1, 0xe4b2, 0xe4b3, 0xe4b4, 0xe4b5, 0xe4b6, - 0xe4b7, 0xe4b8, 0xe4b9, 0xe4ba, 0xe4bb, 0xe4bc, 0xe4bd, 0xe4be, - 0xe4bf, 0xe4c0, 0xe4c1, 0xe4c2, 0xe4c3, 0xe4c4, 0xe4c5, 0xe4c6, - 0xe4c7, 0xe4c8, 0xe4c9, 0xe4ca, 0xe4cb, 0xe4cc, 0xe4cd, 0xe4ce, - 0xe4cf, 0xe4d0, 0xe4d1, 0xe4d2, 0xe4d3, 0xe4d4, 0xe4d5, 0xe4d6, - 0xe4d7, 0xe4d8, 0xe4d9, 0xe4da, 0xe4db, 0xe4dc, 0xe4dd, 0xe4de, - 0xe4df, 0xe4e0, 0xe4e1, 0xe4e2, 0xe4e3, 0xe4e4, 0xe4e5, 0xe4e6, - 0xe4e7, 0xe4e8, 0xe4e9, 0xe4ea, 0xe4eb, 0xe4ec, 0xe4ed, 0xe4ee, - 0xe4ef, 0xe4f0, 0xe4f1, 0xe4f2, 0xe4f3, 0xe4f4, 0xe4f5, 0xe4f6, - 0xe4f7, 0xe4f8, 0xe4f9, 0xe4fa, 0xe4fb, 0xe4fc, 0xe4fd, 0xe4fe, - 0xe4ff, 0xe500, 0xe501, 0xe502, 0xe503, 0xe504, 0xe505, 0xe506, - 0xe507, 0xe508, 0xe509, 0xe50a, 0xe50b, 0xe50c, 0xe50d, 0xe50e, - 0xe50f, 0xe510, 0xe511, 0xe512, 0xe513, 0xe514, 0xe515, 0xe516, - 0xe517, 0xe518, 0xe519, 0xe51a, 0xe51b, 0xe51c, 0xe51d, 0xe51e, - 0xe51f, 0xe520, 0xe521, 0xe522, 0xe523, 0x30fb, 0x30fb, 0x30fb, - /* lead byte f7 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xe524, 0xe525, 0xe526, 0xe527, 0xe528, 0xe529, 0xe52a, 0xe52b, - 0xe52c, 0xe52d, 0xe52e, 0xe52f, 0xe530, 0xe531, 0xe532, 0xe533, - 0xe534, 0xe535, 0xe536, 0xe537, 0xe538, 0xe539, 0xe53a, 0xe53b, - 0xe53c, 0xe53d, 0xe53e, 0xe53f, 0xe540, 0xe541, 0xe542, 0xe543, - 0xe544, 0xe545, 0xe546, 0xe547, 0xe548, 0xe549, 0xe54a, 0xe54b, - 0xe54c, 0xe54d, 0xe54e, 0xe54f, 0xe550, 0xe551, 0xe552, 0xe553, - 0xe554, 0xe555, 0xe556, 0xe557, 0xe558, 0xe559, 0xe55a, 0xe55b, - 0xe55c, 0xe55d, 0xe55e, 0xe55f, 0xe560, 0xe561, 0xe562, 0x30fb, - 0xe563, 0xe564, 0xe565, 0xe566, 0xe567, 0xe568, 0xe569, 0xe56a, - 0xe56b, 0xe56c, 0xe56d, 0xe56e, 0xe56f, 0xe570, 0xe571, 0xe572, - 0xe573, 0xe574, 0xe575, 0xe576, 0xe577, 0xe578, 0xe579, 0xe57a, - 0xe57b, 0xe57c, 0xe57d, 0xe57e, 0xe57f, 0xe580, 0xe581, 0xe582, - 0xe583, 0xe584, 0xe585, 0xe586, 0xe587, 0xe588, 0xe589, 0xe58a, - 0xe58b, 0xe58c, 0xe58d, 0xe58e, 0xe58f, 0xe590, 0xe591, 0xe592, - 0xe593, 0xe594, 0xe595, 0xe596, 0xe597, 0xe598, 0xe599, 0xe59a, - 0xe59b, 0xe59c, 0xe59d, 0xe59e, 0xe59f, 0xe5a0, 0xe5a1, 0xe5a2, - 0xe5a3, 0xe5a4, 0xe5a5, 0xe5a6, 0xe5a7, 0xe5a8, 0xe5a9, 0xe5aa, - 0xe5ab, 0xe5ac, 0xe5ad, 0xe5ae, 0xe5af, 0xe5b0, 0xe5b1, 0xe5b2, - 0xe5b3, 0xe5b4, 0xe5b5, 0xe5b6, 0xe5b7, 0xe5b8, 0xe5b9, 0xe5ba, - 0xe5bb, 0xe5bc, 0xe5bd, 0xe5be, 0xe5bf, 0xe5c0, 0xe5c1, 0xe5c2, - 0xe5c3, 0xe5c4, 0xe5c5, 0xe5c6, 0xe5c7, 0xe5c8, 0xe5c9, 0xe5ca, - 0xe5cb, 0xe5cc, 0xe5cd, 0xe5ce, 0xe5cf, 0xe5d0, 0xe5d1, 0xe5d2, - 0xe5d3, 0xe5d4, 0xe5d5, 0xe5d6, 0xe5d7, 0xe5d8, 0xe5d9, 0xe5da, - 0xe5db, 0xe5dc, 0xe5dd, 0xe5de, 0xe5df, 0x30fb, 0x30fb, 0x30fb, - /* lead byte f8 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xe5e0, 0xe5e1, 0xe5e2, 0xe5e3, 0xe5e4, 0xe5e5, 0xe5e6, 0xe5e7, - 0xe5e8, 0xe5e9, 0xe5ea, 0xe5eb, 0xe5ec, 0xe5ed, 0xe5ee, 0xe5ef, - 0xe5f0, 0xe5f1, 0xe5f2, 0xe5f3, 0xe5f4, 0xe5f5, 0xe5f6, 0xe5f7, - 0xe5f8, 0xe5f9, 0xe5fa, 0xe5fb, 0xe5fc, 0xe5fd, 0xe5fe, 0xe5ff, - 0xe600, 0xe601, 0xe602, 0xe603, 0xe604, 0xe605, 0xe606, 0xe607, - 0xe608, 0xe609, 0xe60a, 0xe60b, 0xe60c, 0xe60d, 0xe60e, 0xe60f, - 0xe610, 0xe611, 0xe612, 0xe613, 0xe614, 0xe615, 0xe616, 0xe617, - 0xe618, 0xe619, 0xe61a, 0xe61b, 0xe61c, 0xe61d, 0xe61e, 0x30fb, - 0xe61f, 0xe620, 0xe621, 0xe622, 0xe623, 0xe624, 0xe625, 0xe626, - 0xe627, 0xe628, 0xe629, 0xe62a, 0xe62b, 0xe62c, 0xe62d, 0xe62e, - 0xe62f, 0xe630, 0xe631, 0xe632, 0xe633, 0xe634, 0xe635, 0xe636, - 0xe637, 0xe638, 0xe639, 0xe63a, 0xe63b, 0xe63c, 0xe63d, 0xe63e, - 0xe63f, 0xe640, 0xe641, 0xe642, 0xe643, 0xe644, 0xe645, 0xe646, - 0xe647, 0xe648, 0xe649, 0xe64a, 0xe64b, 0xe64c, 0xe64d, 0xe64e, - 0xe64f, 0xe650, 0xe651, 0xe652, 0xe653, 0xe654, 0xe655, 0xe656, - 0xe657, 0xe658, 0xe659, 0xe65a, 0xe65b, 0xe65c, 0xe65d, 0xe65e, - 0xe65f, 0xe660, 0xe661, 0xe662, 0xe663, 0xe664, 0xe665, 0xe666, - 0xe667, 0xe668, 0xe669, 0xe66a, 0xe66b, 0xe66c, 0xe66d, 0xe66e, - 0xe66f, 0xe670, 0xe671, 0xe672, 0xe673, 0xe674, 0xe675, 0xe676, - 0xe677, 0xe678, 0xe679, 0xe67a, 0xe67b, 0xe67c, 0xe67d, 0xe67e, - 0xe67f, 0xe680, 0xe681, 0xe682, 0xe683, 0xe684, 0xe685, 0xe686, - 0xe687, 0xe688, 0xe689, 0xe68a, 0xe68b, 0xe68c, 0xe68d, 0xe68e, - 0xe68f, 0xe690, 0xe691, 0xe692, 0xe693, 0xe694, 0xe695, 0xe696, - 0xe697, 0xe698, 0xe699, 0xe69a, 0xe69b, 0x30fb, 0x30fb, 0x30fb, - /* lead byte f9 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xe69c, 0xe69d, 0xe69e, 0xe69f, 0xe6a0, 0xe6a1, 0xe6a2, 0xe6a3, - 0xe6a4, 0xe6a5, 0xe6a6, 0xe6a7, 0xe6a8, 0xe6a9, 0xe6aa, 0xe6ab, - 0xe6ac, 0xe6ad, 0xe6ae, 0xe6af, 0xe6b0, 0xe6b1, 0xe6b2, 0xe6b3, - 0xe6b4, 0xe6b5, 0xe6b6, 0xe6b7, 0xe6b8, 0xe6b9, 0xe6ba, 0xe6bb, - 0xe6bc, 0xe6bd, 0xe6be, 0xe6bf, 0xe6c0, 0xe6c1, 0xe6c2, 0xe6c3, - 0xe6c4, 0xe6c5, 0xe6c6, 0xe6c7, 0xe6c8, 0xe6c9, 0xe6ca, 0xe6cb, - 0xe6cc, 0xe6cd, 0xe6ce, 0xe6cf, 0xe6d0, 0xe6d1, 0xe6d2, 0xe6d3, - 0xe6d4, 0xe6d5, 0xe6d6, 0xe6d7, 0xe6d8, 0xe6d9, 0xe6da, 0x30fb, - 0xe6db, 0xe6dc, 0xe6dd, 0xe6de, 0xe6df, 0xe6e0, 0xe6e1, 0xe6e2, - 0xe6e3, 0xe6e4, 0xe6e5, 0xe6e6, 0xe6e7, 0xe6e8, 0xe6e9, 0xe6ea, - 0xe6eb, 0xe6ec, 0xe6ed, 0xe6ee, 0xe6ef, 0xe6f0, 0xe6f1, 0xe6f2, - 0xe6f3, 0xe6f4, 0xe6f5, 0xe6f6, 0xe6f7, 0xe6f8, 0xe6f9, 0xe6fa, - 0xe6fb, 0xe6fc, 0xe6fd, 0xe6fe, 0xe6ff, 0xe700, 0xe701, 0xe702, - 0xe703, 0xe704, 0xe705, 0xe706, 0xe707, 0xe708, 0xe709, 0xe70a, - 0xe70b, 0xe70c, 0xe70d, 0xe70e, 0xe70f, 0xe710, 0xe711, 0xe712, - 0xe713, 0xe714, 0xe715, 0xe716, 0xe717, 0xe718, 0xe719, 0xe71a, - 0xe71b, 0xe71c, 0xe71d, 0xe71e, 0xe71f, 0xe720, 0xe721, 0xe722, - 0xe723, 0xe724, 0xe725, 0xe726, 0xe727, 0xe728, 0xe729, 0xe72a, - 0xe72b, 0xe72c, 0xe72d, 0xe72e, 0xe72f, 0xe730, 0xe731, 0xe732, - 0xe733, 0xe734, 0xe735, 0xe736, 0xe737, 0xe738, 0xe739, 0xe73a, - 0xe73b, 0xe73c, 0xe73d, 0xe73e, 0xe73f, 0xe740, 0xe741, 0xe742, - 0xe743, 0xe744, 0xe745, 0xe746, 0xe747, 0xe748, 0xe749, 0xe74a, - 0xe74b, 0xe74c, 0xe74d, 0xe74e, 0xe74f, 0xe750, 0xe751, 0xe752, - 0xe753, 0xe754, 0xe755, 0xe756, 0xe757, 0x30fb, 0x30fb, 0x30fb, - /* lead byte fa */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, - 0x2178, 0x2179, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, - 0x2166, 0x2167, 0x2168, 0x2169, 0xffe2, 0xffe4, 0xff07, 0xff02, - 0x3231, 0x2116, 0x2121, 0x2235, 0x7e8a, 0x891c, 0x9348, 0x9288, - 0x84dc, 0x4fc9, 0x70bb, 0x6631, 0x68c8, 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, 0x514a, 0x30fb, - 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, 0xfa10, 0x589e, 0x58b2, 0x590b, - 0x5953, 0x595b, 0x595d, 0x5963, 0x59a4, 0x59ba, 0x5b56, 0x5bc0, - 0x752f, 0x5bd8, 0x5bec, 0x5c1e, 0x5ca6, 0x5cba, 0x5cf5, 0x5d27, - 0x5d53, 0xfa11, 0x5d42, 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, 0x30fb, 0x30fb, 0x30fb, - /* lead byte fb */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 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, 0x72be, 0x7324, 0xfa16, 0x7377, - 0x73bd, 0x73c9, 0x73d6, 0x73e3, 0x73d2, 0x7407, 0x73f5, 0x7426, - 0x742a, 0x7429, 0x742e, 0x7462, 0x7489, 0x749f, 0x7501, 0x756f, - 0x7682, 0x769c, 0x769e, 0x769b, 0x76a6, 0xfa17, 0x7746, 0x52af, - 0x7821, 0x784e, 0x7864, 0x787a, 0x7930, 0xfa18, 0xfa19, 0x30fb, - 0xfa1a, 0x7994, 0xfa1b, 0x799b, 0x7ad1, 0x7ae7, 0xfa1c, 0x7aeb, - 0x7b9e, 0xfa1d, 0x7d48, 0x7d5c, 0x7db7, 0x7da0, 0x7dd6, 0x7e52, - 0x7f47, 0x7fa1, 0xfa1e, 0x8301, 0x8362, 0x837f, 0x83c7, 0x83f6, - 0x8448, 0x84b4, 0x8553, 0x8559, 0x856b, 0xfa1f, 0x85b0, 0xfa20, - 0xfa21, 0x8807, 0x88f5, 0x8a12, 0x8a37, 0x8a79, 0x8aa7, 0x8abe, - 0x8adf, 0xfa22, 0x8af6, 0x8b53, 0x8b7f, 0x8cf0, 0x8cf4, 0x8d12, - 0x8d76, 0xfa23, 0x8ecf, 0xfa24, 0xfa25, 0x9067, 0x90de, 0xfa26, - 0x9115, 0x9127, 0x91da, 0x91d7, 0x91de, 0x91ed, 0x91ee, 0x91e4, - 0x91e5, 0x9206, 0x9210, 0x920a, 0x923a, 0x9240, 0x923c, 0x924e, - 0x9259, 0x9251, 0x9239, 0x9267, 0x92a7, 0x9277, 0x9278, 0x92e7, - 0x92d7, 0x92d9, 0x92d0, 0xfa27, 0x92d5, 0x92e0, 0x92d3, 0x9325, - 0x9321, 0x92fb, 0xfa28, 0x931e, 0x92ff, 0x931d, 0x9302, 0x9370, - 0x9357, 0x93a4, 0x93c6, 0x93de, 0x93f8, 0x9431, 0x9445, 0x9448, - 0x9592, 0xf9dc, 0xfa29, 0x969d, 0x96af, 0x9733, 0x973b, 0x9743, - 0x974d, 0x974f, 0x9751, 0x9755, 0x9857, 0x9865, 0xfa2a, 0xfa2b, - 0x9927, 0xfa2c, 0x999e, 0x9a4e, 0x9ad9, 0x30fb, 0x30fb, 0x30fb, - /* lead byte fc */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70, - 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb -}; - -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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 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[27648] = -{ - /* 0x0000 .. 0x00ff */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0080, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0021, 0x8191, 0x8192, 0x003f, 0x005c, 0x007c, 0x8198, - 0x814e, 0x0063, 0x0061, 0x81e1, 0x81ca, 0x002d, 0x0052, 0x8150, - 0x818b, 0x817d, 0x0032, 0x0033, 0x814c, 0x83ca, 0x81f7, 0x8145, - 0x8143, 0x0031, 0x006f, 0x81e2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0043, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, - 0x0044, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x817e, - 0x004f, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0x0054, 0x0073, - 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0063, - 0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, - 0x0064, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x8180, - 0x006f, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0x0074, 0x0079, - /* 0x0300 .. 0x03ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, - 0x83a6, 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0x83ad, - 0x83ae, 0x83af, 0x003f, 0x83b0, 0x83b1, 0x83b2, 0x83b3, 0x83b4, - 0x83b5, 0x83b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0x83c5, - 0x83c6, 0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb, 0x83cc, 0x83cd, - 0x83ce, 0x83cf, 0x003f, 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d4, - 0x83d5, 0x83d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0400 .. 0x04ff */ - 0x003f, 0x8446, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8440, 0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, - 0x8449, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, - 0x8451, 0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8457, 0x8458, - 0x8459, 0x845a, 0x845b, 0x845c, 0x845d, 0x845e, 0x845f, 0x8460, - 0x8470, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8477, 0x8478, - 0x8479, 0x847a, 0x847b, 0x847c, 0x847d, 0x847e, 0x8480, 0x8481, - 0x8482, 0x8483, 0x8484, 0x8485, 0x8486, 0x8487, 0x8488, 0x8489, - 0x848a, 0x848b, 0x848c, 0x848d, 0x848e, 0x848f, 0x8490, 0x8491, - 0x003f, 0x8476, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2000 .. 0x20ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x815d, 0x003f, 0x003f, 0x003f, 0x003f, 0x815c, 0x003f, 0x003f, - 0x8165, 0x8166, 0x003f, 0x003f, 0x8167, 0x8168, 0x003f, 0x003f, - 0x81f5, 0x81f6, 0x003f, 0x003f, 0x003f, 0x8164, 0x8163, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x81f1, 0x003f, 0x818c, 0x818d, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x81a6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2100 .. 0x21ff */ - 0x003f, 0x003f, 0x003f, 0x818e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8782, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8784, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x81f0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8754, 0x8755, 0x8756, 0x8757, 0x8758, 0x8759, 0x875a, 0x875b, - 0x875c, 0x875d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfa40, 0xfa41, 0xfa42, 0xfa43, 0xfa44, 0xfa45, 0xfa46, 0xfa47, - 0xfa48, 0xfa49, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x81a9, 0x81aa, 0x81a8, 0x81ab, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x81cb, 0x003f, 0x81cc, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2200 .. 0x22ff */ - 0x81cd, 0x003f, 0x81dd, 0x81ce, 0x003f, 0x003f, 0x003f, 0x81de, - 0x81b8, 0x003f, 0x003f, 0x81b9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8794, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x81e3, 0x003f, 0x003f, 0x81e5, 0x8187, 0x8798, - 0x81da, 0x003f, 0x003f, 0x003f, 0x003f, 0x8161, 0x003f, 0x81c8, - 0x81c9, 0x81bf, 0x81be, 0x81e7, 0x81e8, 0x003f, 0x8793, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8188, 0x81e6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81e4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x81e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8182, 0x81df, 0x003f, 0x003f, 0x003f, 0x003f, 0x8185, 0x8186, - 0x003f, 0x003f, 0x81e1, 0x81e2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x81bc, 0x81bd, 0x003f, 0x003f, 0x81ba, 0x81bb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81db, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8799, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2300 .. 0x23ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x81dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2400 .. 0x24ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x8747, - 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, 0x874d, 0x874e, 0x874f, - 0x8750, 0x8751, 0x8752, 0x8753, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2500 .. 0x25ff */ - 0x849f, 0x84aa, 0x84a0, 0x84ab, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x84a1, 0x003f, 0x003f, 0x84ac, - 0x84a2, 0x003f, 0x003f, 0x84ad, 0x84a4, 0x003f, 0x003f, 0x84af, - 0x84a3, 0x003f, 0x003f, 0x84ae, 0x84a5, 0x84ba, 0x003f, 0x003f, - 0x84b5, 0x003f, 0x003f, 0x84b0, 0x84a7, 0x84bc, 0x003f, 0x003f, - 0x84b7, 0x003f, 0x003f, 0x84b2, 0x84a6, 0x003f, 0x003f, 0x84b6, - 0x84bb, 0x003f, 0x003f, 0x84b1, 0x84a8, 0x003f, 0x003f, 0x84b8, - 0x84bd, 0x003f, 0x003f, 0x84b3, 0x84a9, 0x003f, 0x003f, 0x84b9, - 0x003f, 0x003f, 0x84be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x84b4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x81a1, 0x81a0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x81a3, 0x81a2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x81a5, 0x81a4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x819f, 0x819e, - 0x003f, 0x003f, 0x003f, 0x819b, 0x003f, 0x003f, 0x819d, 0x819c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81fc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2600 .. 0x26ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x819a, 0x8199, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x818a, 0x003f, 0x8189, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x81f4, 0x003f, 0x003f, 0x81f3, 0x003f, 0x81f2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3000 .. 0x30ff */ - 0x8140, 0x8141, 0x8142, 0x8156, 0x003f, 0x8158, 0x8159, 0x815a, - 0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, - 0x8179, 0x817a, 0x81a7, 0x81ac, 0x816b, 0x816c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8780, 0x003f, 0x8781, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x829f, 0x82a0, 0x82a1, 0x82a2, 0x82a3, 0x82a4, 0x82a5, - 0x82a6, 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac, 0x82ad, - 0x82ae, 0x82af, 0x82b0, 0x82b1, 0x82b2, 0x82b3, 0x82b4, 0x82b5, - 0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0x82bb, 0x82bc, 0x82bd, - 0x82be, 0x82bf, 0x82c0, 0x82c1, 0x82c2, 0x82c3, 0x82c4, 0x82c5, - 0x82c6, 0x82c7, 0x82c8, 0x82c9, 0x82ca, 0x82cb, 0x82cc, 0x82cd, - 0x82ce, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0x82d3, 0x82d4, 0x82d5, - 0x82d6, 0x82d7, 0x82d8, 0x82d9, 0x82da, 0x82db, 0x82dc, 0x82dd, - 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, 0x82e3, 0x82e4, 0x82e5, - 0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82eb, 0x82ec, 0x82ed, - 0x82ee, 0x82ef, 0x82f0, 0x82f1, 0x8394, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x814a, 0x814b, 0x8154, 0x8155, 0x003f, - 0x003f, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, 0x8346, - 0x8347, 0x8348, 0x8349, 0x834a, 0x834b, 0x834c, 0x834d, 0x834e, - 0x834f, 0x8350, 0x8351, 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, - 0x8357, 0x8358, 0x8359, 0x835a, 0x835b, 0x835c, 0x835d, 0x835e, - 0x835f, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0x8366, - 0x8367, 0x8368, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d, 0x836e, - 0x836f, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375, 0x8376, - 0x8377, 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d, 0x837e, - 0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8385, 0x8386, 0x8387, - 0x8388, 0x8389, 0x838a, 0x838b, 0x838c, 0x838d, 0x838e, 0x838f, - 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, 0x8395, 0x8396, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8145, 0x815b, 0x8152, 0x8153, 0x003f, - /* 0x3200 .. 0x32ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x878a, 0x878b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x878c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8785, 0x8786, 0x8787, 0x8788, - 0x8789, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3300 .. 0x33ff */ - 0x003f, 0x003f, 0x003f, 0x8765, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8769, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8760, 0x003f, 0x003f, 0x003f, - 0x8763, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8761, 0x876b, 0x003f, 0x003f, 0x876a, 0x8764, - 0x003f, 0x003f, 0x003f, 0x876c, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8766, 0x003f, - 0x003f, 0x003f, 0x003f, 0x876e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x875f, 0x876d, 0x003f, 0x003f, 0x8762, 0x003f, 0x003f, - 0x003f, 0x8767, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8768, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x877e, 0x878f, 0x878e, 0x878d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8772, 0x8773, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x876f, 0x8770, 0x8771, 0x003f, - 0x003f, 0x8775, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8774, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8783, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x4e00 .. 0x4eff */ - 0x88ea, 0x929a, 0x003f, 0x8eb5, 0x003f, 0x003f, 0x003f, 0x969c, - 0x8fe4, 0x8e4f, 0x8fe3, 0x89ba, 0x003f, 0x9573, 0x975e, 0x003f, - 0x98a0, 0x894e, 0x003f, 0x003f, 0x8a8e, 0x98a1, 0x90a2, 0x99c0, - 0x8b75, 0x95b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fe5, 0x003f, - 0x003f, 0x97bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x95c0, 0x003f, - 0xfa68, 0x003f, 0x98a2, 0x003f, 0x003f, 0x9286, 0x003f, 0x003f, - 0x003f, 0x98a3, 0x8bf8, 0x003f, 0x003f, 0x003f, 0x98a4, 0x003f, - 0x8adb, 0x924f, 0x003f, 0x8ee5, 0x98a5, 0x003f, 0x003f, 0x98a6, - 0x003f, 0x003f, 0x98a7, 0x9454, 0x003f, 0x8b76, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9456, 0x003f, 0x93e1, 0x8cc1, 0x9652, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe568, 0x98a8, 0x8fe6, - 0x98a9, 0x89b3, 0x003f, 0x003f, 0x003f, 0x8be3, 0x8cee, 0x96e7, - 0x003f, 0x003f, 0x9ba4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9790, 0x003f, 0x93fb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8aa3, 0x003f, - 0x8b54, 0x003f, 0x98aa, 0x003f, 0x003f, 0x98ab, 0x97b9, 0x003f, - 0x975c, 0x9188, 0x98ad, 0x8e96, 0x93f1, 0x003f, 0x98b0, 0x003f, - 0x003f, 0x895d, 0x8cdd, 0x003f, 0x8cdc, 0x88e4, 0x003f, 0x003f, - 0x986a, 0x9869, 0x003f, 0x8db1, 0x889f, 0x003f, 0x98b1, 0x98b2, - 0x98b3, 0x9653, 0x98b4, 0x003f, 0x8cf0, 0x88e5, 0x9692, 0x003f, - 0x8b9c, 0x003f, 0x003f, 0x8b9d, 0x8b9e, 0x92e0, 0x97ba, 0x003f, - 0x98b5, 0x003f, 0x003f, 0x98b6, 0x003f, 0x003f, 0x98b7, 0x003f, - 0x003f, 0x003f, 0x906c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8f59, 0x906d, 0x98bc, 0x003f, 0x98ba, 0x003f, 0x98bb, 0x8b77, - 0x003f, 0x003f, 0x8da1, 0x89ee, 0x003f, 0x98b9, 0x98b8, 0x95a7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8e65, 0x8e64, 0x91bc, 0x98bd, - 0x9574, 0x90e5, 0x003f, 0x003f, 0x003f, 0x8157, 0x98be, 0x98c0, - 0x003f, 0xfa69, 0x003f, 0x91e3, 0x97df, 0x88c8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x98bf, 0x89bc, 0x003f, - 0x8bc2, 0x003f, 0x9287, 0x003f, 0x003f, 0x003f, 0x8c8f, 0x98c1, - 0x003f, 0x003f, 0x003f, 0x9443, 0xfa6a, 0x003f, 0x003f, 0x003f, - /* 0x4f00 .. 0x4fff */ - 0xfa6b, 0x8ae9, 0x003f, 0xfa6c, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x98c2, 0x88c9, 0x003f, 0x003f, 0x8cde, 0x8aea, 0x959a, - 0x94b0, 0x8b78, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x89ef, 0x003f, 0x98e5, 0x9360, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x948c, - 0x98c4, 0x003f, 0x003f, 0x003f, 0x94ba, 0x003f, 0x97e0, 0x003f, - 0x904c, 0xfa6d, 0x8e66, 0x003f, 0x8e97, 0x89be, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x92cf, 0x003f, 0x003f, 0x9241, 0x98c8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88ca, 0x92e1, 0x8f5a, - 0x8db2, 0x9743, 0x003f, 0x91cc, 0x003f, 0x89bd, 0xfa6e, 0x98c7, - 0x003f, 0x975d, 0x98c3, 0x98c5, 0x8dec, 0x98c6, 0x9b43, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x98ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x98d1, - 0x98cf, 0x003f, 0x003f, 0x89c0, 0x003f, 0x95b9, 0x98c9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x98cd, 0x8cf1, 0x003f, 0x003f, 0x8e67, - 0x003f, 0x003f, 0x003f, 0x8aa4, 0x003f, 0x003f, 0x98d2, 0x003f, - 0x98ca, 0x003f, 0xfa70, 0x97e1, 0x003f, 0x8e98, 0x003f, 0x98cb, - 0x003f, 0x98d0, 0xfa6f, 0x003f, 0xfa72, 0x003f, 0x98d3, 0x003f, - 0x98cc, 0x003f, 0xfa71, 0x8b9f, 0x003f, 0x88cb, 0x003f, 0x003f, - 0x8ba0, 0x89bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9b44, 0x003f, 0x9699, 0x958e, 0x8cf2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x904e, 0x97b5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95d6, - 0x003f, 0x003f, 0x8c57, 0x91a3, 0x89e2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfa61, 0x8f72, 0x003f, 0x003f, 0xfa73, 0x98d7, 0x003f, - 0x98dc, 0x98da, 0x003f, 0x003f, 0x98d5, 0x003f, 0x003f, 0x91ad, - 0x98d8, 0x003f, 0x98db, 0x98d9, 0x003f, 0x95db, 0x003f, 0x98d6, - 0x003f, 0x904d, 0x003f, 0x9693, 0x98dd, 0x98de, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f43, 0x98eb, - 0x003f, 0x003f, 0x003f, 0x946f, 0x003f, 0x9555, 0x98e6, 0x003f, - 0x95ee, 0x003f, 0x89b4, 0x003f, 0x003f, 0x003f, 0x98ea, 0xfa76, - /* 0x5000 .. 0x50ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x98e4, 0x98ed, 0x003f, - 0x003f, 0x9171, 0x003f, 0x8cc2, 0x003f, 0x947b, 0x003f, 0xe0c5, - 0x003f, 0x98ec, 0x937c, 0x003f, 0x98e1, 0x003f, 0x8cf4, 0x003f, - 0x003f, 0x8cf3, 0x98df, 0x003f, 0x003f, 0x003f, 0xfa77, 0x8ed8, - 0x003f, 0x98e7, 0xfa75, 0x95ed, 0x926c, 0x98e3, 0x8c91, 0x003f, - 0x98e0, 0x98e8, 0x98e2, 0x97cf, 0x98e9, 0x9860, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8be4, 0x003f, - 0x003f, 0x8c90, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfa74, 0x003f, 0xfa7a, 0x98ee, 0x003f, 0x003f, 0xfa78, 0x98ef, - 0x98f3, 0x88cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95ce, - 0x98f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x98f1, 0x98f5, 0x003f, - 0x003f, 0x003f, 0x98f4, 0x003f, 0x92e2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c92, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x98f6, 0x003f, 0x003f, 0x003f, - 0xfa79, 0x003f, 0x8ec3, 0x003f, 0x91a4, 0x92e3, 0x8bf4, 0x003f, - 0x98f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b55, 0x003f, 0x003f, - 0x98f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x98fa, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9654, 0x003f, 0x003f, - 0x003f, 0x8c86, 0x003f, 0x003f, 0xfa7b, 0x003f, 0x003f, 0x003f, - 0x8e50, 0x94f5, 0x98f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8dc3, 0x9762, 0x003f, 0x003f, - 0x003f, 0x003f, 0x98fc, 0x9942, 0x98fb, 0x8dc2, 0x003f, 0x8f9d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c58, 0x003f, - 0x003f, 0x003f, 0x9943, 0x003f, 0x003f, 0x8bcd, 0x003f, 0x003f, - 0x003f, 0x9940, 0x9941, 0x003f, 0x003f, 0x93ad, 0x003f, 0x919c, - 0x003f, 0x8ba1, 0x003f, 0x003f, 0x003f, 0x966c, 0x9944, 0x003f, - 0xfa7d, 0x003f, 0x97bb, 0x003f, 0x003f, 0x003f, 0x9945, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9948, 0x003f, 0x9946, 0x003f, 0x916d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9947, 0x9949, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfa7c, 0x994b, 0x003f, 0x003f, - 0x003f, 0x994a, 0x003f, 0x95c6, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5100 .. 0x51ff */ - 0x8b56, 0x994d, 0x994e, 0x003f, 0x89ad, 0x003f, 0x003f, 0x003f, - 0x003f, 0x994c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8ef2, 0x003f, 0x9951, 0x9950, 0x994f, 0x003f, - 0x98d4, 0x003f, 0x9952, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f9e, - 0x003f, 0x9953, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9744, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x96d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x9955, - 0x003f, 0x003f, 0x9954, 0x9957, 0x9956, 0x003f, 0x003f, 0x9958, - 0x9959, 0x88f2, 0x003f, 0x8cb3, 0x8c5a, 0x8f5b, 0x929b, 0x8ba2, - 0x90e6, 0x8cf5, 0xfa7e, 0x8d8e, 0x995b, 0x96c6, 0x9365, 0x003f, - 0x8e99, 0x003f, 0x995a, 0x003f, 0x995c, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x937d, 0x003f, 0x8a95, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x995d, 0x003f, 0xfa80, 0x93fc, 0x003f, 0x003f, - 0x9153, 0x995f, 0x9960, 0x94aa, 0x8cf6, 0x985a, 0x9961, 0x003f, - 0x003f, 0x8ba4, 0x003f, 0x003f, 0x003f, 0x95ba, 0x91b4, 0x8bef, - 0x9354, 0x003f, 0x003f, 0x003f, 0x8c93, 0x003f, 0x003f, 0x003f, - 0x9962, 0x003f, 0x9963, 0x003f, 0x003f, 0x93e0, 0x897e, 0x003f, - 0x003f, 0x9966, 0x8dfb, 0x003f, 0x9965, 0x8dc4, 0x003f, 0x9967, - 0xe3ec, 0x9968, 0x9660, 0x9969, 0x003f, 0x996a, 0x996b, 0x8fe7, - 0x003f, 0x8eca, 0x003f, 0x003f, 0x003f, 0xfa81, 0x003f, 0x003f, - 0x8aa5, 0x003f, 0x996e, 0x003f, 0x996c, 0x96bb, 0x996d, 0x003f, - 0x9579, 0x996f, 0x9970, 0x9971, 0x937e, 0x003f, 0x003f, 0x003f, - 0x9975, 0x9973, 0x9974, 0x9972, 0x8de1, 0x9976, 0x96e8, 0x97e2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9977, 0xfa82, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x90a6, 0x9978, 0x8f79, 0x003f, - 0x003f, 0x9979, 0x003f, 0x929c, 0x97bd, 0x9380, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x99c3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x997a, 0xeaa3, 0x8bc3, 0x003f, 0x003f, - 0x997b, 0x967d, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f88, 0x91fa, - 0x003f, 0x997d, 0x93e2, 0x003f, 0xfa83, 0x997e, 0x003f, 0x003f, - 0x9980, 0x8a4d, 0x003f, 0x003f, 0x003f, 0x9981, 0x8ba5, 0x003f, - 0x93ca, 0x899a, 0x8f6f, 0x003f, 0x003f, 0x949f, 0x9982, 0x003f, - /* 0x5200 .. 0x52ff */ - 0x9381, 0x003f, 0x003f, 0x906e, 0x9983, 0x003f, 0x95aa, 0x90d8, - 0x8aa0, 0x003f, 0x8aa7, 0x9984, 0x003f, 0x003f, 0x9986, 0x003f, - 0x003f, 0x8c59, 0x003f, 0x003f, 0x9985, 0xfa84, 0x003f, 0x97f1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f89, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x94bb, 0x95ca, 0x003f, 0x9987, - 0x003f, 0x9798, 0x9988, 0x003f, 0x003f, 0x003f, 0x9989, 0x003f, - 0x939e, 0x003f, 0x003f, 0x998a, 0x003f, 0x003f, 0x90a7, 0x8dfc, - 0x8c94, 0x998b, 0x8e68, 0x8d8f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x92e4, 0x998d, 0x003f, 0x003f, 0x91a5, - 0x003f, 0x003f, 0x8ded, 0x998e, 0x998f, 0x914f, 0x003f, 0x998c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9991, 0x003f, 0x9655, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8d84, 0x003f, 0x003f, 0x9990, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8c95, 0x8ddc, 0x948d, 0x003f, 0x003f, - 0x003f, 0x9994, 0x9992, 0x003f, 0x003f, 0x003f, 0x003f, 0x959b, - 0x8fe8, 0x999b, 0x8a84, 0x9995, 0x9993, 0x916e, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9997, 0x003f, 0x9996, - 0x003f, 0x003f, 0x003f, 0x8a63, 0x003f, 0x003f, 0x003f, 0x8c80, - 0x999c, 0x97ab, 0x003f, 0x003f, 0x003f, 0x9998, 0x003f, 0x003f, - 0x003f, 0x999d, 0x999a, 0x003f, 0x9999, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x97cd, 0xfa85, 0x003f, 0x003f, 0x8cf7, - 0x89c1, 0x003f, 0x003f, 0x97f2, 0x003f, 0x003f, 0xfa86, 0x003f, - 0x003f, 0x8f95, 0x9377, 0x8d85, 0x99a0, 0x99a1, 0x003f, 0xfb77, - 0x003f, 0x97e3, 0x003f, 0x003f, 0x984a, 0x99a3, 0x003f, 0x003f, - 0x003f, 0x8cf8, 0x003f, 0x003f, 0x99a2, 0x003f, 0x8a4e, 0x003f, - 0xfa87, 0x99a4, 0x003f, 0x9675, 0x003f, 0x92ba, 0x003f, 0x9745, - 0x003f, 0x95d7, 0x003f, 0x003f, 0x003f, 0x99a5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe8d3, 0x003f, 0x003f, 0x93ae, 0x003f, 0x99a6, - 0x8aa8, 0x96b1, 0x003f, 0xfa88, 0x003f, 0x8f9f, 0x99a7, 0x95e5, - 0x99ab, 0x003f, 0x90a8, 0x99a8, 0x8bce, 0x003f, 0x99a9, 0x8aa9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8c4d, 0x99ac, 0x003f, 0x99ad, 0x003f, 0x003f, - 0x99ae, 0x99af, 0x8ed9, 0x003f, 0x003f, 0x003f, 0x8cf9, 0x96dc, - /* 0x5300 .. 0x53ff */ - 0xfa89, 0x96e6, 0x93f5, 0x003f, 0x003f, 0x95ef, 0x99b0, 0xfa8a, - 0x99b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x99b3, 0x003f, 0x99b5, - 0x99b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x99b6, 0x89bb, 0x966b, - 0x003f, 0x8dfa, 0x99b7, 0x003f, 0x003f, 0x9178, 0x003f, 0x003f, - 0x8fa0, 0x8ba7, 0x003f, 0x99b8, 0xfa8b, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x94d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x99b9, - 0x003f, 0x99ba, 0x003f, 0x99bb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x99bc, 0x9543, 0x8be6, 0x88e3, 0x003f, 0x003f, 0x003f, 0x93bd, - 0x99bd, 0x8f5c, 0x003f, 0x90e7, 0x003f, 0x99bf, 0x99be, 0x8fa1, - 0x8cdf, 0x99c1, 0x94bc, 0x003f, 0x003f, 0x99c2, 0x003f, 0x003f, - 0x003f, 0x94da, 0x91b2, 0x91ec, 0x8ba6, 0x003f, 0x003f, 0x93ec, - 0x9250, 0x003f, 0x948e, 0x003f, 0x966d, 0x003f, 0x99c4, 0x003f, - 0x90e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c54, 0x003f, - 0x003f, 0x99c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x99c6, 0x894b, - 0x88f3, 0x8aeb, 0xfa8c, 0x91a6, 0x8b70, 0x9791, 0x003f, 0x99c9, - 0x89b5, 0x003f, 0x003f, 0x99c8, 0x003f, 0x003f, 0x003f, 0x8ba8, - 0x003f, 0x003f, 0x99ca, 0x003f, 0x96ef, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfa8d, 0x003f, 0x003f, 0x99cb, 0x003f, - 0x97d0, 0x003f, 0x8cfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cb4, - 0x99cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x99ce, 0x99cd, 0x003f, - 0x907e, 0x8958, 0x003f, 0x003f, 0x003f, 0x897d, 0x99cf, 0x003f, - 0x99d0, 0x003f, 0xfa8e, 0x8cb5, 0x003f, 0x003f, 0x99d1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8b8e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8e51, 0x99d2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9694, 0x8db3, 0x8b79, 0x9746, 0x916f, 0x94bd, 0x8efb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8f66, 0x003f, 0x8ee6, 0x8ef3, - 0x003f, 0x8f96, 0x003f, 0x94be, 0x003f, 0xfa8f, 0x003f, 0x99d5, - 0x003f, 0x8962, 0x9170, 0x8cfb, 0x8cc3, 0x8be5, 0x003f, 0x003f, - 0x99d9, 0x9240, 0x91fc, 0x8ba9, 0x8fa2, 0x99da, 0x99d8, 0x89c2, - 0x91e4, 0x8eb6, 0x8e6a, 0x8945, 0x003f, 0x003f, 0x8a90, 0x8d86, - 0x8e69, 0x003f, 0x99db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5400 .. 0x54ff */ - 0x003f, 0x99dc, 0x003f, 0x8b68, 0x8a65, 0x003f, 0x003f, 0x003f, - 0x8d87, 0x8b67, 0x92dd, 0x8944, 0x93af, 0x96bc, 0x8d40, 0x9799, - 0x9366, 0x8cfc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8c4e, 0x003f, 0x99e5, 0x003f, 0x8be1, - 0x9669, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94db, 0x003f, - 0x003f, 0x99e4, 0x003f, 0x8adc, 0x99df, 0x99e0, 0x99e2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x99e3, 0x003f, - 0x8b7a, 0x9081, 0x003f, 0x95ab, 0x99e1, 0x99dd, 0x8ce1, 0x003f, - 0x99de, 0x003f, 0x9843, 0x003f, 0x003f, 0x003f, 0x95f0, 0x003f, - 0x92e6, 0x8ce0, 0x8d90, 0x003f, 0x003f, 0x003f, 0x99e6, 0x003f, - 0x003f, 0x93db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x99ea, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8efc, 0x003f, 0x8ef4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x99ed, 0x99eb, 0x003f, 0x96a1, 0x003f, 0x99e8, 0x99f1, 0x99ec, - 0x003f, 0x003f, 0x003f, 0x99ef, 0x8cc4, 0x96bd, 0x003f, 0x003f, - 0x99f0, 0x003f, 0x003f, 0x003f, 0x99f2, 0x003f, 0x99f4, 0x003f, - 0x003f, 0x003f, 0xfa92, 0x8dee, 0x9861, 0x003f, 0x99e9, 0x99e7, - 0x99f3, 0x003f, 0x99ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfa91, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x99f6, 0x003f, 0x9a42, 0x99f8, 0x003f, 0x003f, - 0x99fc, 0xfa93, 0x003f, 0x9a40, 0x99f9, 0x003f, 0x003f, 0x9a5d, - 0x003f, 0x003f, 0x8de7, 0x8a50, 0x003f, 0x003f, 0x003f, 0x003f, - 0x99f7, 0x003f, 0x003f, 0x003f, 0x9a44, 0x88f4, 0x9a43, 0x003f, - 0x88a3, 0x9569, 0x9a41, 0x003f, 0x99fa, 0x003f, 0x003f, 0x99f5, - 0x99fb, 0x8dc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9a45, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x88f5, 0x9a4e, 0x003f, 0x003f, 0x9a46, 0x9a47, 0x003f, - 0x8fa3, 0x9689, 0x003f, 0x003f, 0x003f, 0x9a4c, 0x9a4b, 0x003f, - 0x003f, 0x003f, 0x934e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9a4d, 0x003f, 0x003f, 0x9a4a, 0x003f, 0xfa94, - /* 0x5500 .. 0x55ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x8953, 0x003f, 0x8db4, 0x904f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a48, - 0x9382, 0x003f, 0x003f, 0x003f, 0x9a49, 0x003f, 0x88a0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a53, 0x9742, - 0x003f, 0x8fa5, 0x003f, 0x9a59, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9a58, 0x9a4f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91c1, 0x003f, - 0x9a50, 0x003f, 0x003f, 0x003f, 0x91ed, 0x9a55, 0x8fa4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9a52, 0x003f, 0x003f, 0x96e2, - 0x003f, 0x003f, 0x003f, 0x8c5b, 0x003f, 0x003f, 0x9a56, 0x9a57, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9a54, 0x9a5a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9a51, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9a60, 0x9a65, 0x003f, 0x9a61, 0x003f, - 0x9a5c, 0x003f, 0x003f, 0x9a66, 0x9150, 0x003f, 0xfa95, 0x9a68, - 0x003f, 0x8d41, 0x9a5e, 0x929d, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9a62, 0x9a5b, 0x8aab, 0x003f, 0x8aec, 0x8a85, 0x9a63, 0x9a5f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c96, - 0x9a69, 0x9a67, 0x9172, 0x8b69, 0x8baa, 0x003f, 0x9a64, 0x003f, - 0x8bf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8963, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9a6d, 0x9a6b, 0x003f, 0x9aa5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9a70, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9a6a, 0x003f, 0x9a6e, 0x003f, 0x003f, 0x9a6c, - 0x003f, 0x003f, 0x003f, 0x8e6b, 0x9a6f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a72, - 0x003f, 0x9a77, 0x003f, 0x003f, 0x003f, 0x9a75, 0x9a74, 0x003f, - /* 0x5600 .. 0x56ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9251, 0x003f, - 0x003f, 0x89c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9a71, 0x003f, 0x9a73, 0x8fa6, - 0x8952, 0x003f, 0x003f, 0x9a76, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x89dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a82, - 0x003f, 0x8ffa, 0x9a7d, 0x003f, 0x9a7b, 0x003f, 0x9a7c, 0x003f, - 0x9a7e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x895c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9158, 0x003f, 0x9a78, 0x003f, - 0x9a79, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8a9a, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9a81, 0x003f, 0x003f, 0x003f, - 0x8aed, 0x003f, 0x9a84, 0x9a80, 0x9a83, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x95ac, 0x003f, 0x003f, 0x003f, - 0x93d3, 0x003f, 0x94b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9a86, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a85, 0x8a64, - 0x003f, 0x003f, 0x9a87, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a8a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9a89, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9a88, 0x003f, 0x9458, 0x003f, 0x003f, 0x9a8b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a8c, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9a8e, 0x003f, 0x9a8d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9a90, 0x003f, 0x003f, 0x003f, - 0x9a93, 0x9a91, 0x9a8f, 0x9a92, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9a94, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a95, 0x003f, - 0x003f, 0x9a96, 0x003f, 0x9a97, 0x003f, 0x003f, 0x003f, 0x9a98, - 0x9964, 0x003f, 0x8efa, 0x8e6c, 0x003f, 0x003f, 0x89f1, 0x003f, - 0x88f6, 0x003f, 0x003f, 0x9263, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a99, 0x003f, - 0x8da2, 0x003f, 0x88cd, 0x907d, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9a9a, 0x8cc5, 0x003f, 0x003f, 0x8d91, 0x003f, 0x9a9c, - /* 0x5700 .. 0x57ff */ - 0x9a9b, 0x003f, 0x003f, 0x95de, 0x9a9d, 0x003f, 0x003f, 0x003f, - 0x9a9f, 0x9a9e, 0x003f, 0x9aa0, 0x003f, 0x9aa1, 0x003f, 0x8c97, - 0x003f, 0x003f, 0x8980, 0x9aa2, 0x003f, 0x003f, 0x9aa4, 0x003f, - 0x9aa3, 0x003f, 0x003f, 0x003f, 0x9aa6, 0x003f, 0x003f, 0x9379, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9aa7, 0x88b3, - 0x8ddd, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c5c, 0x003f, 0x003f, - 0x926e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9aa8, - 0x9aa9, 0x003f, 0x003f, 0x9aab, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9aac, 0x003f, 0x8de2, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bcf, - 0x003f, 0x003f, 0x9656, 0x003f, 0x003f, 0x003f, 0x9aaa, 0x9aad, - 0x8dbf, 0x8d42, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfa96, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9ab1, 0x003f, 0x003f, 0x8da3, 0xfa97, 0x9252, 0x003f, - 0x003f, 0x9aae, 0x92d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ab2, - 0x003f, 0x003f, 0x9082, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9ab0, 0x9ab3, 0x003f, 0x8c5e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9ab4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9ab5, 0x003f, 0x8d43, 0x8a5f, 0x9ab7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9ab8, 0x003f, 0xfa98, 0x003f, 0x003f, 0x003f, - 0x9ab9, 0x003f, 0x003f, 0x9ab6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9aaf, 0x003f, 0x003f, 0x9aba, 0x003f, 0x003f, 0x9abb, 0xfa9a, - 0xfa99, 0x003f, 0x003f, 0x9684, 0x003f, 0x003f, 0x8fe9, 0x003f, - 0x003f, 0x003f, 0x9abd, 0x9abe, 0x9abc, 0x003f, 0x9ac0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9457, 0x003f, 0x003f, 0x88e6, - 0x9575, 0x003f, 0x003f, 0x9ac1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8ffb, 0x003f, 0x003f, 0x8eb7, - 0x003f, 0x947c, 0x8aee, 0x003f, 0x8de9, 0x003f, 0x003f, 0x003f, - /* 0x5800 .. 0x58ff */ - 0x9678, 0x003f, 0x93b0, 0x003f, 0x003f, 0x8c98, 0x91cd, 0x003f, - 0x003f, 0x003f, 0x9abf, 0x9ac2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91c2, 0x003f, 0x003f, - 0x003f, 0x9ac3, 0x003f, 0x003f, 0x003f, 0x9ac4, 0x003f, 0x003f, - 0x003f, 0x9ac6, 0x003f, 0x003f, 0x92e7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8aac, 0x003f, 0x003f, 0x003f, 0x003f, 0xea9f, - 0x8981, 0x95f1, 0x003f, 0x003f, 0x8fea, 0x9367, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8de4, 0x003f, 0x003f, 0x9acc, 0x003f, 0x003f, - 0x95bb, 0x97db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x89f2, 0x9ac8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9159, 0x9acb, 0x003f, 0x9383, 0x003f, 0x003f, 0x9368, - 0x9384, 0x94b7, 0x92cb, 0x003f, 0x003f, 0x003f, 0x8dc7, 0x003f, - 0x003f, 0x003f, 0x9ac7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8996, 0x003f, 0x9355, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9ac9, 0x003f, 0x9ac5, 0x003f, 0x003f, 0x906f, 0x003f, 0x003f, - 0x003f, 0x9acd, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f6d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8bab, 0x003f, 0x9ace, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x95e6, 0x003f, 0x003f, 0x003f, 0x919d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x92c4, 0x003f, 0xfa9d, 0x9ad0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x966e, 0x003f, 0x003f, 0x9ad1, 0x003f, 0x003f, 0x9ad6, 0x003f, - 0x003f, 0x003f, 0xfa9e, 0x95ad, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9ad5, 0x9acf, 0x9ad2, 0x9ad4, 0x003f, 0x003f, 0x8da4, 0x003f, - 0x003f, 0x95c7, 0x003f, 0x003f, 0x003f, 0x9ad7, 0x003f, 0x9264, - 0x003f, 0x003f, 0x89f3, 0x003f, 0x8feb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9ad9, 0x003f, 0x9ad8, 0x003f, 0x8d88, 0x003f, 0x9ada, - 0x9adc, 0x9adb, 0x003f, 0x003f, 0x9ade, 0x003f, 0x9ad3, 0x9ae0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9adf, 0x9add, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8e6d, 0x9070, 0x003f, 0x9173, 0x9ae1, - 0x90ba, 0x88eb, 0x9484, 0x003f, 0x003f, 0x003f, 0x003f, 0x92d9, - 0x003f, 0x9ae3, 0x9ae2, 0x9ae4, 0x9ae5, 0x9ae6, 0x003f, 0x003f, - /* 0x5900 .. 0x59ff */ - 0x003f, 0x003f, 0x9ae7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x95cf, 0x9ae8, 0xfa9f, 0x003f, 0x003f, 0x003f, 0x89c4, - 0x9ae9, 0x003f, 0x003f, 0x003f, 0x003f, 0x975b, 0x8a4f, 0x003f, - 0x99c7, 0x8f67, 0x91bd, 0x9aea, 0x96e9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x96b2, 0x003f, 0x003f, 0x9aec, 0x003f, 0x91e5, - 0x003f, 0x9356, 0x91be, 0x9576, 0x9aed, 0x9aee, 0x899b, 0x003f, - 0x003f, 0x8eb8, 0x9aef, 0x003f, 0x003f, 0x003f, 0x003f, 0x88ce, - 0x9af0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9af1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8982, 0x003f, 0x003f, 0x8aef, - 0x93de, 0x95f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x9af5, 0x9174, - 0x9af4, 0x8c5f, 0x003f, 0xfaa0, 0x967a, 0x9af3, 0x003f, 0x9385, - 0x9af7, 0x003f, 0x9af6, 0xfaa1, 0x003f, 0xfaa2, 0x003f, 0x003f, - 0x9af9, 0x003f, 0x9af8, 0xfaa3, 0x003f, 0x899c, 0x003f, 0x9afa, - 0x8fa7, 0x9afc, 0x9244, 0x003f, 0x9afb, 0x003f, 0x95b1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8f97, 0x937a, 0x003f, 0x003f, 0x003f, - 0x9b40, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d44, 0x003f, 0x003f, - 0x003f, 0x9b41, 0x9440, 0x94dc, 0x96cf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9444, 0x003f, 0x003f, 0x9b4a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8b57, 0x003f, 0x003f, 0x9764, 0x003f, - 0x003f, 0x96ad, 0x003f, 0x9baa, 0x003f, 0x9b42, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9b45, 0xfaa4, 0x91c3, 0x003f, 0x003f, - 0x9657, 0x003f, 0x003f, 0x003f, 0x9369, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9b46, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9685, 0xfaa5, 0x8dc8, 0x003f, 0x003f, 0x8fa8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b47, 0x003f, - 0x003f, 0x8e6f, 0x003f, 0x8e6e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x88b7, 0x8cc6, 0x003f, 0x90a9, 0x88cf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9b4b, 0x9b4c, 0x003f, 0x9b49, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8957, 0x8aad, 0x003f, - 0x9b48, 0x003f, 0x96c3, 0x9550, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88a6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x88f7, 0x003f, 0x003f, 0x003f, 0x8e70, - /* 0x5a00 .. 0x5aff */ - 0x003f, 0x88d0, 0x003f, 0x88a1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9b51, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9b4f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x96ba, 0x003f, 0x9b52, 0x003f, 0x9b50, 0x003f, 0x003f, 0x9b4e, - 0x9050, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b4d, 0x003f, 0x003f, - 0x003f, 0x95d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ce2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b56, 0x9b57, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8fa9, 0x003f, 0x003f, 0x003f, - 0x9b53, 0x984b, 0x003f, 0x003f, 0x003f, 0x003f, 0x946b, 0x003f, - 0x003f, 0x9b55, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8da5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9b58, 0x003f, 0x003f, 0x003f, 0x9577, 0x003f, - 0x003f, 0x003f, 0x9b59, 0x003f, 0x9b54, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96b9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x947d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9b5a, 0x9551, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9b5b, 0x9b5f, 0x9b5c, 0x003f, - 0x003f, 0x89c5, 0x9b5e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8eb9, 0x003f, 0x9b5d, 0x8c99, 0x003f, 0x003f, 0x003f, - 0x9b6b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b64, 0x9b61, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9284, 0x003f, 0x9b60, 0x003f, 0x003f, 0x9b62, 0x003f, - 0x003f, 0x9b63, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9b65, 0x9b66, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5b00 .. 0x5bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8af0, 0x003f, 0x9b68, 0x9b67, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b69, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8fec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9b6c, 0x003f, 0x92da, 0x003f, 0x003f, 0x003f, - 0x8964, 0x003f, 0x9b6a, 0x003f, 0x003f, 0x003f, 0x9b6d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b6e, 0x003f, - 0x9b71, 0x003f, 0x003f, 0x9b6f, 0x003f, 0x9b70, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8e71, 0x9b72, 0x003f, 0x003f, 0x8d45, 0x9b73, 0xfaa6, 0x8e9a, - 0x91b6, 0x003f, 0x9b74, 0x9b75, 0x8e79, 0x8d46, 0x003f, 0x96d0, - 0x003f, 0x003f, 0x003f, 0x8b47, 0x8cc7, 0x9b76, 0x8a77, 0x003f, - 0x003f, 0x9b77, 0x003f, 0x91b7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9b78, 0x9ba1, 0x003f, 0x9b79, 0x003f, 0x9b7a, 0x003f, 0x003f, - 0x9b7b, 0x003f, 0x9b7d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9b7e, 0x003f, 0x003f, 0x9b80, 0x003f, 0x91ee, 0x003f, 0x8946, - 0x8ee7, 0x88c0, 0x003f, 0x9176, 0x8aae, 0x8eb3, 0x003f, 0x8d47, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9386, 0x003f, 0x8f40, - 0x8aaf, 0x9288, 0x92e8, 0x88b6, 0x8b58, 0x95f3, 0x003f, 0x8ec0, - 0x003f, 0x003f, 0x8b71, 0x90e9, 0x8eba, 0x9747, 0x9b81, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b7b, 0x003f, - 0x8dc9, 0x003f, 0x003f, 0x8a51, 0x8983, 0x8faa, 0x89c6, 0x003f, - 0x9b82, 0x9765, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f68, - 0xfaa7, 0x003f, 0x8ee2, 0x9b83, 0x8af1, 0x93d0, 0x96a7, 0x9b84, - 0x003f, 0x9b85, 0x003f, 0x003f, 0x9578, 0x003f, 0x003f, 0x003f, - 0x9b87, 0x003f, 0x8aa6, 0x8bf5, 0x9b86, 0x003f, 0x003f, 0x003f, - 0xfaa9, 0x003f, 0x003f, 0x8ab0, 0x003f, 0x9051, 0x9b8b, 0x8e40, - 0x003f, 0x89c7, 0x9b8a, 0x003f, 0x9b88, 0x9b8c, 0x9b89, 0x944a, - 0x9ecb, 0x9052, 0x003f, 0x9b8d, 0xfaaa, 0x003f, 0x97be, 0x003f, - 0x9b8e, 0x003f, 0x003f, 0x9b90, 0x003f, 0x929e, 0x9b8f, 0x003f, - 0x90a1, 0x003f, 0x8e9b, 0x003f, 0x003f, 0x003f, 0x91ce, 0x8ef5, - /* 0x5c00 .. 0x5cff */ - 0x003f, 0x9595, 0x90ea, 0x003f, 0x8ecb, 0x9b91, 0x8fab, 0x9b92, - 0x9b93, 0x88d1, 0x91b8, 0x9071, 0x003f, 0x9b94, 0x93b1, 0x8fac, - 0x003f, 0x8fad, 0x003f, 0x9b95, 0x003f, 0x003f, 0x90eb, 0x003f, - 0x003f, 0x003f, 0x8fae, 0x003f, 0x003f, 0x003f, 0xfaab, 0x003f, - 0x9b96, 0x003f, 0x9b97, 0x003f, 0x96de, 0x003f, 0x003f, 0x003f, - 0x9b98, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bc4, 0x003f, 0x003f, - 0x003f, 0x8f41, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9b99, 0x9b9a, 0x8eda, 0x904b, 0x93f2, 0x9073, 0x94f6, 0x9441, - 0x8bc7, 0x9b9b, 0x003f, 0x003f, 0x003f, 0x8b8f, 0x9b9c, 0x003f, - 0x8bfc, 0x003f, 0x93cd, 0x89ae, 0x003f, 0x8e72, 0x9b9d, 0x9ba0, - 0x9b9f, 0x8bfb, 0x003f, 0x9b9e, 0x003f, 0x9357, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91ae, 0x003f, - 0x936a, 0x8ec6, 0x003f, 0x003f, 0x9177, 0x979a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9ba2, 0x003f, 0x9ba3, 0x93d4, - 0x003f, 0x8e52, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ba5, 0x003f, - 0x003f, 0x9ba6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9ba7, 0x003f, 0x003f, 0x003f, - 0x8af2, 0x9ba8, 0x003f, 0x003f, 0x9ba9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x89aa, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaac, 0x003f, - 0x915a, 0x8ae2, 0x003f, 0x9bab, 0x96a6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x91d0, 0x003f, 0x8a78, 0x003f, 0x003f, 0x9bad, 0x9baf, - 0x8add, 0x003f, 0xfaad, 0x9bac, 0x9bae, 0x003f, 0x9bb1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bb0, 0x003f, 0x9bb2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9bb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x93bb, 0x8bac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x89e3, 0x9bb4, 0x9bb9, 0x003f, 0x003f, 0x9bb7, 0x003f, 0x95f5, - 0x95f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaae, 0x9387, 0x003f, - 0x003f, 0x003f, 0x9bb6, 0x8f73, 0x003f, 0x9bb5, 0x003f, 0x003f, - /* 0x5d00 .. 0x5dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9092, - 0x003f, 0x003f, 0x003f, 0x9bba, 0x003f, 0x003f, 0x8de8, 0x003f, - 0x003f, 0x9bc0, 0x003f, 0x003f, 0x9bc1, 0x9bbb, 0x8a52, 0x9bbc, - 0x9bc5, 0x9bc4, 0x9bc3, 0x9bbf, 0x003f, 0x003f, 0x003f, 0x9bbe, - 0x003f, 0x003f, 0x9bc2, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaaf, - 0x003f, 0x95f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfab2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9bc9, 0x9bc6, 0x003f, 0x9bc8, 0x003f, - 0x9792, 0x003f, 0x9bc7, 0xfab0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9bbd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9093, 0x003f, 0x003f, 0x9bca, 0xfab3, 0x003f, 0x8db5, - 0x003f, 0x003f, 0x003f, 0x9bcb, 0x003f, 0x003f, 0x9bcc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9bcf, 0x003f, 0x9bce, 0x003f, 0x003f, 0x9bcd, - 0x003f, 0x003f, 0x003f, 0x9388, 0x9bb8, 0x003f, 0x003f, 0x003f, - 0x9bd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bd1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9bd0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9bd2, 0x003f, 0x9bd3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bd6, - 0xfab4, 0xfab5, 0x97e4, 0x003f, 0x9bd7, 0x9bd4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9bd8, 0x003f, 0x003f, 0x8ade, 0x9bd9, 0x003f, 0x003f, - 0xfab6, 0x003f, 0x9bdb, 0x9bda, 0x003f, 0x003f, 0x9bdc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9bdd, 0x003f, 0x90ec, 0x8f42, 0x003f, - 0x003f, 0x8f84, 0x003f, 0x9183, 0x003f, 0x8d48, 0x8db6, 0x8d49, - 0x8b90, 0x003f, 0x003f, 0x9bde, 0x003f, 0x003f, 0x8db7, 0x003f, - 0x003f, 0x8cc8, 0x9bdf, 0x96a4, 0x9462, 0x9be0, 0x003f, 0x8d4a, - 0x003f, 0x003f, 0x003f, 0x8aaa, 0x003f, 0x9246, 0x8bd0, 0x003f, - /* 0x5e00 .. 0x5eff */ - 0x003f, 0x003f, 0x8e73, 0x957a, 0x003f, 0x003f, 0x94bf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9be1, 0x8af3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9be4, 0x003f, 0x003f, 0x003f, 0x003f, 0x929f, 0x003f, - 0x003f, 0x9be3, 0x9be2, 0x9be5, 0x003f, 0x92e9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9083, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8e74, 0x003f, 0x90c8, 0x003f, 0x91d1, - 0x8b41, 0x003f, 0x003f, 0x92a0, 0x003f, 0x003f, 0x9be6, 0x9be7, - 0x8fed, 0x003f, 0x003f, 0x003f, 0x003f, 0x9658, 0x003f, 0x003f, - 0x9bea, 0x003f, 0x003f, 0x9be9, 0x9be8, 0x959d, 0x003f, 0x9bf1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9679, 0x003f, 0x9beb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9bed, 0x968b, 0x003f, 0x9bec, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bee, - 0x003f, 0x94a6, 0x9bef, 0x95bc, 0x9bf0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8ab1, 0x95bd, 0x944e, 0x9bf2, 0x9bf3, 0x003f, - 0x8d4b, 0x8ab2, 0x9bf4, 0x8cb6, 0x9763, 0x9748, 0x8af4, 0x9bf6, - 0x003f, 0x92a1, 0x003f, 0x8d4c, 0x8faf, 0x003f, 0x003f, 0x94dd, - 0x003f, 0x003f, 0x8fb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f98, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92ea, 0x95f7, 0x9358, - 0x003f, 0x003f, 0x8d4d, 0x003f, 0x957b, 0x003f, 0x003f, 0x003f, - 0x9bf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9378, 0x8dc0, - 0x003f, 0x003f, 0x003f, 0x8cc9, 0x003f, 0x92eb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88c1, 0x8f8e, 0x8d4e, - 0x9766, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9bf8, 0x9bf9, 0x9470, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9bfa, 0x97f5, 0x984c, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bfc, - 0x9bfb, 0x003f, 0x003f, 0x8a66, 0x003f, 0x003f, 0x9c40, 0x003f, - 0x003f, 0x003f, 0x9c43, 0x9c44, 0x003f, 0x9c42, 0x003f, 0x955f, - 0x8fb1, 0x9c46, 0x9c45, 0x9c41, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9c47, 0x9c48, 0x003f, 0x003f, 0x9c49, 0x003f, 0x003f, 0x003f, - 0x9c4c, 0x9c4a, 0x003f, 0x9c4b, 0x9c4d, 0x003f, 0x8984, 0x92ec, - 0x9c4e, 0x003f, 0x8c9a, 0x89f4, 0x9455, 0x003f, 0x9c4f, 0x93f9, - /* 0x5f00 .. 0x5fff */ - 0x003f, 0x95d9, 0x003f, 0x9c50, 0x984d, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9c51, 0x95be, 0x9c54, 0x989f, 0x98af, 0x003f, 0x8eae, - 0x93f3, 0x9c55, 0x003f, 0x8b7c, 0x92a2, 0x88f8, 0x9c56, 0x95a4, - 0x8d4f, 0x003f, 0x003f, 0x926f, 0x003f, 0x003f, 0x003f, 0x92ed, - 0x003f, 0xfab7, 0x003f, 0x003f, 0x003f, 0x96ed, 0x8cb7, 0x8cca, - 0x003f, 0x9c57, 0x003f, 0x003f, 0x003f, 0x9c58, 0x003f, 0x9c5e, - 0x003f, 0x8ee3, 0x003f, 0x003f, 0xfab8, 0x92a3, 0x003f, 0x8bad, - 0x9c59, 0x003f, 0x003f, 0x003f, 0x954a, 0x003f, 0x9265, 0x003f, - 0x003f, 0x9c5a, 0x003f, 0x003f, 0x003f, 0xfa67, 0x003f, 0x003f, - 0x9c5b, 0x003f, 0x8bae, 0x003f, 0x9c5c, 0x003f, 0x9c5d, 0x003f, - 0x003f, 0x9c5f, 0x003f, 0x9396, 0x003f, 0x003f, 0x9c60, 0x9c61, - 0x003f, 0x9c62, 0x003f, 0x003f, 0x9c53, 0x9c52, 0x003f, 0x003f, - 0x003f, 0x9c63, 0x8c60, 0x003f, 0x003f, 0x003f, 0x9546, 0xfab9, - 0x003f, 0x8dca, 0x9556, 0x92a4, 0x956a, 0x9c64, 0x003f, 0x003f, - 0x8fb2, 0x8965, 0x003f, 0x9c65, 0x003f, 0x003f, 0x003f, 0x9c66, - 0x003f, 0x96f0, 0x003f, 0x003f, 0x94de, 0x003f, 0x003f, 0x9c69, - 0x899d, 0x90aa, 0x9c68, 0x9c67, 0x8c61, 0x91d2, 0x003f, 0x9c6d, - 0x9c6b, 0x003f, 0x9c6a, 0x97a5, 0x8ce3, 0x003f, 0x003f, 0x003f, - 0x8f99, 0x9c6c, 0x936b, 0x8f5d, 0x003f, 0x003f, 0x003f, 0x93be, - 0x9c70, 0x9c6f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c6e, 0x003f, - 0x9c71, 0x8ce4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9c72, 0x959c, 0x8f7a, 0x003f, 0x003f, 0x9c73, 0x94f7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x93bf, 0x92a5, 0x003f, 0x003f, 0xfaba, - 0x003f, 0x934f, 0x003f, 0x003f, 0x9c74, 0x8b4a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9053, 0x003f, 0x954b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8af5, 0x9445, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c75, 0x8e75, - 0x9659, 0x965a, 0x003f, 0x003f, 0x899e, 0x9c7a, 0xfabb, 0x003f, - 0x9289, 0x003f, 0x003f, 0x003f, 0x9c77, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x89f5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9cab, 0x9c79, 0x003f, 0x003f, 0x003f, 0x944f, 0x003f, 0x003f, - 0x9c78, 0x003f, 0x003f, 0x9c76, 0x003f, 0x8d9a, 0x003f, 0x9c7c, - /* 0x6000 .. 0x60ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c83, 0x9c89, - 0x9c81, 0x003f, 0x937b, 0x003f, 0x003f, 0x9c86, 0x957c, 0x003f, - 0x003f, 0x9c80, 0x003f, 0x9c85, 0x97e5, 0x8e76, 0x003f, 0x003f, - 0x91d3, 0x9c7d, 0x003f, 0x003f, 0x003f, 0x8b7d, 0x9c88, 0x90ab, - 0x8985, 0x9c82, 0x89f6, 0x9c87, 0x003f, 0x003f, 0x003f, 0x8baf, - 0x003f, 0x9c84, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9c8a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9c8c, 0x9c96, 0x9c94, 0x003f, 0x003f, 0x9c91, 0x003f, - 0x003f, 0x003f, 0x9c90, 0x97f6, 0x003f, 0x9c92, 0x003f, 0x003f, - 0x8bb0, 0x003f, 0x8d50, 0x003f, 0x003f, 0x8f9a, 0x003f, 0x003f, - 0x003f, 0x9c99, 0x9c8b, 0x003f, 0x003f, 0xfabc, 0x003f, 0x9c8f, - 0x9c7e, 0x003f, 0x89f8, 0x9c93, 0x9c95, 0x9270, 0x003f, 0x003f, - 0x8da6, 0x89b6, 0x9c8d, 0x9c98, 0x9c97, 0x8bb1, 0x003f, 0x91a7, - 0x8a86, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c62, 0x003f, 0x9c8e, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9c9a, 0x003f, 0x9c9d, 0x9c9f, 0xfabd, 0x003f, 0x003f, - 0x003f, 0x8ebb, 0xfabe, 0x9ca5, 0x92ee, 0x9c9b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9ca3, 0x003f, 0x89f7, 0x003f, 0x9ca1, 0x9ca2, - 0x003f, 0x003f, 0x9c9e, 0x9ca0, 0x003f, 0x003f, 0x003f, 0x8ce5, - 0x9749, 0x003f, 0x003f, 0x8ab3, 0x003f, 0x003f, 0x8978, 0x9ca4, - 0x003f, 0x9459, 0x88ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x94df, 0x9c7b, 0x9caa, 0x9cae, 0x96e3, 0x003f, - 0x9ca7, 0x003f, 0x003f, 0x003f, 0x9389, 0x9cac, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fee, 0x9cad, 0x93d5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9866, 0x003f, 0x9ca9, 0x003f, 0xfac0, 0x003f, 0x003f, - 0x9caf, 0x003f, 0x8d9b, 0x003f, 0x90c9, 0x003f, 0xfabf, 0x88d2, - 0x9ca8, 0x9ca6, 0x003f, 0x9179, 0x003f, 0x003f, 0x003f, 0x9c9c, - 0x8e53, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x91c4, 0x9cbb, 0xfac2, 0x917a, 0x9cb6, 0x003f, 0x9cb3, 0x9cb4, - 0x003f, 0x8ee4, 0x9cb7, 0x9cba, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6100 .. 0x61ff */ - 0x9cb5, 0x8f44, 0x003f, 0x9cb8, 0x003f, 0x003f, 0x9cb2, 0x003f, - 0x96fa, 0x96f9, 0x003f, 0x003f, 0x003f, 0x9cbc, 0x9cbd, 0x88d3, - 0x003f, 0xfac3, 0x003f, 0x003f, 0x003f, 0x9cb1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8bf0, 0x88a4, 0x003f, 0x003f, 0x003f, 0x8ab4, - 0xfac1, 0x9cb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9cc1, - 0x9cc0, 0x003f, 0x003f, 0x003f, 0x9cc5, 0x003f, 0x003f, 0x003f, - 0xfac5, 0x003f, 0x003f, 0x003f, 0x9cc6, 0x003f, 0x003f, 0xfac4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9cc4, 0x9cc7, 0x9cbf, 0x9cc3, - 0x003f, 0x003f, 0x9cc8, 0x003f, 0x9cc9, 0x003f, 0x003f, 0x9cbe, - 0x8e9c, 0x003f, 0x9cc2, 0x91d4, 0x8d51, 0x9cb0, 0x9054, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9cd6, 0x003f, 0x95e7, 0x003f, 0x003f, - 0x9ccc, 0x9ccd, 0x9cce, 0x003f, 0x003f, 0x9cd5, 0x003f, 0x9cd4, - 0x003f, 0x003f, 0x969d, 0x8ab5, 0x003f, 0x9cd2, 0x003f, 0x8c64, - 0x8a53, 0x003f, 0x003f, 0x9ccf, 0x003f, 0x003f, 0x97b6, 0x9cd1, - 0x88d4, 0x9cd3, 0x003f, 0x9cca, 0x9cd0, 0x9cd7, 0x8c63, 0x9ccb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x977c, 0x003f, - 0x003f, 0x003f, 0x974a, 0x003f, 0x003f, 0x003f, 0x003f, 0x9cda, - 0x003f, 0x003f, 0x9cde, 0x003f, 0x003f, 0x003f, 0x919e, 0x003f, - 0x97f7, 0x9cdf, 0x003f, 0x003f, 0x9cdc, 0x003f, 0x9cd9, 0x003f, - 0xfac6, 0x9cd8, 0x9cdd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x95ae, 0x003f, 0x003f, 0x93b2, - 0x003f, 0x8c65, 0x003f, 0x9ce0, 0x9cdb, 0x003f, 0x9ce1, 0x003f, - 0x003f, 0x003f, 0x8c9b, 0x003f, 0x003f, 0x003f, 0x89af, 0x003f, - 0x003f, 0x003f, 0x9ce9, 0x003f, 0x003f, 0x003f, 0x8ab6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9ce7, 0x003f, 0x003f, 0x9ce8, 0x8da7, - 0x9ce6, 0x9ce4, 0x9ce3, 0x9cea, 0x9ce2, 0x9cec, 0x003f, 0x003f, - 0x89f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9cee, 0x003f, 0x003f, 0x9ced, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x92a6, 0x003f, 0x9cf1, 0x003f, 0x9cef, 0x9ce5, - 0x8c9c, 0x003f, 0x9cf0, 0x003f, 0x9cf4, 0x9cf3, 0x9cf5, 0x9cf2, - /* 0x6200 .. 0x62ff */ - 0x9cf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9cf7, 0x9cf8, 0x95e8, 0x003f, 0x9cfa, 0x9cf9, 0x8f5e, 0x003f, - 0x90ac, 0x89e4, 0x89fa, 0xfac7, 0x9cfb, 0x003f, 0x88bd, 0x003f, - 0x003f, 0x003f, 0x90ca, 0x9cfc, 0x003f, 0xe6c1, 0x9d40, 0x8c81, - 0x003f, 0x9d41, 0x003f, 0x003f, 0x003f, 0x003f, 0x90ed, 0x003f, - 0x003f, 0x003f, 0x9d42, 0x003f, 0x003f, 0x003f, 0x9d43, 0x8b59, - 0x9d44, 0x003f, 0x9d45, 0x9d46, 0x91d5, 0x003f, 0x003f, 0x003f, - 0x8ccb, 0x003f, 0x003f, 0x96df, 0x003f, 0x003f, 0x003f, 0x965b, - 0x8f8a, 0x9d47, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90ee, - 0xe7bb, 0x94e0, 0x003f, 0x8ee8, 0x003f, 0x8dcb, 0x9d48, 0x003f, - 0x003f, 0x003f, 0x003f, 0x91c5, 0x003f, 0x95a5, 0x003f, 0x003f, - 0x91ef, 0x003f, 0x003f, 0x9d4b, 0x003f, 0x003f, 0x9d49, 0x003f, - 0x9d4c, 0x003f, 0x003f, 0x9d4a, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9d4d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95af, 0x003f, - 0x003f, 0x88b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x957d, 0x003f, - 0x003f, 0x94e1, 0x003f, 0x003f, 0x9d4e, 0x003f, 0x9d51, 0x8fb3, - 0x8b5a, 0x003f, 0x9d4f, 0x9d56, 0x8fb4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9d50, 0x9463, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x977d, 0x9d52, 0x9d53, 0x9d57, 0x938a, 0x9d54, 0x8d52, - 0x90dc, 0x003f, 0x003f, 0x9d65, 0x94b2, 0x003f, 0x91f0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfac8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x94e2, 0x9dab, 0x003f, 0x003f, 0x003f, - 0x003f, 0x95f8, 0x003f, 0x003f, 0x003f, 0x92ef, 0x003f, 0x003f, - 0x003f, 0x9695, 0x003f, 0x9d5a, 0x899f, 0x928a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9d63, 0x003f, 0x003f, 0x9253, 0x9d5d, 0x9d64, - 0x9d5f, 0x9d66, 0x9d62, 0x003f, 0x9d61, 0x948f, 0x003f, 0x9d5b, - 0x89fb, 0x9d59, 0x8b91, 0x91f1, 0x9d55, 0x003f, 0x003f, 0x9d58, - 0x8d53, 0x90d9, 0x003f, 0x8fb5, 0x9d60, 0x9471, 0x003f, 0x003f, - 0x8b92, 0x8a67, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8a87, 0x9040, 0x9d68, 0x9d6d, - 0x003f, 0x9d69, 0x003f, 0x8c9d, 0x003f, 0x9d6e, 0x8e41, 0x8d89, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f45, 0x9d5c, - /* 0x6300 .. 0x63ff */ - 0x003f, 0x8e9d, 0x9d6b, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e77, - 0x9d6c, 0x88c2, 0x003f, 0x003f, 0x9d67, 0x003f, 0x003f, 0x003f, - 0x003f, 0x92a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8b93, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bb2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d6a, - 0x88a5, 0x003f, 0x003f, 0x8dc1, 0x003f, 0x003f, 0x003f, 0x9055, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x92f0, 0x003f, 0x003f, 0x94d2, 0x9d70, 0x917d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x91a8, 0x003f, 0x003f, 0x8e4a, 0x9d71, 0x003f, 0x9d73, - 0x9d6f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95df, 0x003f, 0x92bb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x917b, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95f9, - 0x8ecc, 0x9d80, 0x003f, 0x9d7e, 0x003f, 0x003f, 0x9098, 0x003f, - 0x003f, 0x003f, 0x8c9e, 0x003f, 0x003f, 0x003f, 0x9d78, 0x8fb7, - 0x003f, 0x003f, 0x93e6, 0x9450, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9d76, 0x003f, 0x003f, 0x917c, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8ef6, 0x9d7b, 0x003f, 0x003f, 0x8fb6, 0x003f, 0x9d75, 0x9d7a, - 0x003f, 0x003f, 0x9472, 0x003f, 0x003f, 0x003f, 0x9d74, 0x003f, - 0x8c40, 0x003f, 0x003f, 0x8a7c, 0x003f, 0x003f, 0x003f, 0x9d7c, - 0x97a9, 0x8dcc, 0x9254, 0x9d79, 0x003f, 0x90da, 0x003f, 0x8d54, - 0x9084, 0x8986, 0x915b, 0x9d77, 0x8b64, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8c66, 0x003f, 0x92cd, 0x9d7d, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x917e, 0x003f, 0x003f, 0x9d81, 0x003f, - 0x9d83, 0x003f, 0x003f, 0x91b5, 0x9d89, 0x003f, 0x9d84, 0x003f, - 0x003f, 0x9d86, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9560, - 0x92f1, 0x003f, 0x9d87, 0x003f, 0x003f, 0x003f, 0x974b, 0x003f, - 0x003f, 0x003f, 0x9767, 0x8ab7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x88ac, 0x003f, 0x9d85, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9d82, 0x003f, 0x003f, 0x003f, 0x003f, 0x8af6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8987, 0xfac9, 0x9d88, 0x003f, - 0x003f, 0x003f, 0x9768, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6400 .. 0x64ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d8c, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91b9, 0x003f, 0x9d93, - 0x003f, 0x003f, 0x003f, 0x9d8d, 0x003f, 0x003f, 0x9d8a, 0x9d91, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9d72, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d8e, 0x003f, - 0x9d92, 0x003f, 0x003f, 0x003f, 0x94c0, 0x938b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9d8b, 0x003f, 0x9d8f, 0x003f, - 0x003f, 0x003f, 0x8c67, 0x003f, 0x003f, 0x003f, 0x8def, 0x003f, - 0x003f, 0x003f, 0x90db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d97, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9345, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfaca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d94, - 0x003f, 0x9680, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d95, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d96, 0x003f, - 0x96cc, 0x003f, 0x90a0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8c82, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9d9d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8e54, 0x9d9a, 0x003f, 0x9d99, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9451, 0x003f, 0x003f, 0xfacb, 0x93b3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9350, 0x9d9b, 0x003f, 0x003f, - 0x003f, 0x9d9c, 0x003f, 0x958f, 0x003f, 0x9464, 0x8e42, 0x003f, - 0x90ef, 0x003f, 0x966f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8a68, 0x003f, 0x9da3, 0x9d9e, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9769, 0x9da5, 0x003f, 0x003f, 0x9da1, 0x003f, 0x9da2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9180, 0xfacc, 0x003f, - 0x003f, 0x003f, 0x9da0, 0x003f, 0x9d5e, 0x003f, 0x003f, 0x003f, - 0x9da4, 0x003f, 0x9d9f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9da9, 0x9daa, 0x9346, 0x9dac, 0x003f, 0x003f, 0x8e43, 0x9da7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8b5b, 0x003f, 0x003f, 0x9dad, - 0x003f, 0x9da6, 0x9db1, 0x003f, 0x9db0, 0x003f, 0x9daf, 0x003f, - 0x003f, 0x003f, 0x9db2, 0x003f, 0x003f, 0x9db4, 0x8fef, 0x003f, - /* 0x6500 .. 0x65ff */ - 0x9db3, 0x003f, 0x003f, 0x003f, 0x003f, 0x9db7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9db5, 0x003f, 0x003f, 0x003f, 0x9db6, 0x9d90, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9db9, 0x9db8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9d98, 0x9dba, 0x9dae, 0x003f, 0x003f, 0x8e78, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9dbb, 0x9dbc, 0x9dbe, 0x9dbd, - 0x9dbf, 0x89fc, 0x003f, 0x8d55, 0x003f, 0x003f, 0x95fa, 0x90ad, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ccc, 0x003f, 0x003f, - 0x9dc1, 0x003f, 0x003f, 0x003f, 0x003f, 0x9dc4, 0xfacd, 0x9571, - 0x003f, 0x8b7e, 0x003f, 0x003f, 0x003f, 0x9dc3, 0x9dc2, 0x9473, - 0x9dc5, 0x8bb3, 0x003f, 0x003f, 0x003f, 0x9dc7, 0x9dc6, 0x003f, - 0x003f, 0x003f, 0x8ab8, 0x8e55, 0x003f, 0x003f, 0x93d6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8c68, 0x003f, 0x003f, 0x003f, - 0x9094, 0x003f, 0x9dc8, 0x003f, 0x90ae, 0x9347, 0x003f, 0x957e, - 0x9dc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9dca, 0x9dcb, 0x003f, 0x003f, 0x003f, 0x95b6, - 0x9b7c, 0x90c4, 0x003f, 0x003f, 0x956b, 0x003f, 0x8dd6, 0x003f, - 0x94e3, 0x94c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x936c, - 0x003f, 0x97bf, 0x003f, 0x9dcd, 0x8ece, 0x003f, 0x003f, 0x9dce, - 0x003f, 0x88b4, 0x003f, 0x003f, 0x8bd2, 0x90cb, 0x003f, 0x9580, - 0x003f, 0x003f, 0x003f, 0x9dcf, 0x8e61, 0x9266, 0x003f, 0x8e7a, - 0x9056, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9dd0, - 0x003f, 0x95fb, 0x003f, 0x003f, 0x8997, 0x8e7b, 0x003f, 0x003f, - 0x003f, 0x9dd3, 0x003f, 0x9dd1, 0x9dd4, 0x97b7, 0x9dd2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x90f9, 0x9dd5, 0x003f, 0x003f, 0x91b0, - 0x003f, 0x003f, 0x9dd6, 0x003f, 0x003f, 0x003f, 0x003f, 0x8af8, - 0x003f, 0x9dd8, 0x003f, 0x9dd7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9dd9, 0x9dda, 0x8af9, 0x003f, 0x003f, 0x93fa, 0x9255, 0x8b8c, - 0x8e7c, 0x9181, 0x003f, 0x003f, 0x8f7b, 0x88ae, 0x003f, 0x003f, - 0x003f, 0x9ddb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x89a0, 0x9ddf, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6600 .. 0x66ff */ - 0xface, 0x003f, 0x8d56, 0x9dde, 0x003f, 0x003f, 0x8da9, 0x8fb8, - 0x003f, 0xfad1, 0x9ddd, 0x003f, 0x8fb9, 0x003f, 0x96be, 0x8da8, - 0x003f, 0x003f, 0x003f, 0x88d5, 0x90cc, 0xfacf, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9de4, 0x003f, 0xfad3, 0x90af, - 0x8966, 0x003f, 0x003f, 0x003f, 0xfad4, 0x8f74, 0x003f, 0x9686, - 0x8df0, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fba, 0xfad2, 0x90a5, - 0x003f, 0xfa63, 0x003f, 0x003f, 0x9de3, 0x9de1, 0x9de2, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfad0, 0x928b, 0x003f, 0x003f, 0x9e45, - 0x003f, 0x9de8, 0x8e9e, 0x8d57, 0x9de6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9de7, 0x003f, 0x9057, 0x003f, 0x003f, 0x003f, 0x9de5, - 0x003f, 0x003f, 0x8e4e, 0x003f, 0x003f, 0x003f, 0x003f, 0xfad6, - 0x003f, 0xfad7, 0x003f, 0x003f, 0x003f, 0x9dea, 0x9de9, 0x9dee, - 0x003f, 0x003f, 0x9def, 0x003f, 0x9deb, 0xfad5, 0x8a41, 0x9dec, - 0x9ded, 0x94d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x9581, 0x8c69, - 0x9df0, 0x003f, 0x003f, 0xfad9, 0x90b0, 0x003f, 0x8fbb, 0x003f, - 0x003f, 0x003f, 0x9271, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8bc5, 0x003f, 0x9df1, 0x9df5, 0x003f, 0x003f, 0x89c9, - 0x9df2, 0x9df4, 0x003f, 0x003f, 0x003f, 0x003f, 0x9df3, 0x003f, - 0x003f, 0x8f8b, 0x003f, 0x003f, 0x003f, 0x003f, 0x9267, 0x88c3, - 0x9df6, 0xfada, 0x003f, 0x003f, 0x003f, 0x9df7, 0x003f, 0x003f, - 0xfadb, 0x003f, 0x92a8, 0x003f, 0x003f, 0x003f, 0x97ef, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8e62, 0x003f, 0x003f, 0x95e9, 0x003f, - 0x003f, 0x003f, 0xfadc, 0x003f, 0x965c, 0x003f, 0x003f, 0x003f, - 0x9e41, 0x9df9, 0x003f, 0x003f, 0x9dfc, 0x003f, 0x9dfb, 0xfadd, - 0x003f, 0x9df8, 0x003f, 0x003f, 0x9e40, 0x003f, 0x003f, 0x93dc, - 0x003f, 0x9dfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e42, 0x003f, - 0x003f, 0x8f8c, 0x9e43, 0x003f, 0x976a, 0x9498, 0x003f, 0x003f, - 0x9e44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e46, 0x003f, - 0x003f, 0x9e47, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9e48, 0x003f, 0x8bc8, 0x8967, 0x8d58, 0x9e49, 0x003f, 0x9e4a, - 0x8f91, 0x9182, 0xfade, 0xfa66, 0x99d6, 0x915d, 0x915c, 0x91d6, - /* 0x6700 .. 0x67ff */ - 0x8dc5, 0x003f, 0x003f, 0x98f0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8c8e, 0x974c, 0x003f, 0x95fc, 0x003f, 0x959e, 0xfadf, 0x9e4b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8df1, 0x92bd, 0x9e4c, 0x984e, - 0x003f, 0x003f, 0x003f, 0x965d, 0x003f, 0x92a9, 0x9e4d, 0x8afa, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e4e, 0x9e4f, - 0x96d8, 0x003f, 0x96a2, 0x9696, 0x967b, 0x8e44, 0x9e51, 0x003f, - 0x003f, 0x8ee9, 0x003f, 0x003f, 0x9670, 0x003f, 0x9e53, 0x9e56, - 0x9e55, 0x003f, 0x8af7, 0x003f, 0x003f, 0x8b80, 0x003f, 0x9e52, - 0x003f, 0x9e54, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e57, 0x003f, - 0x003f, 0x9099, 0x003f, 0x003f, 0x003f, 0x003f, 0x979b, 0x88c7, - 0x8dde, 0x91ba, 0x003f, 0x8edb, 0x003f, 0x003f, 0x8ff1, 0x003f, - 0x003f, 0x9e5a, 0x003f, 0x003f, 0x936d, 0x003f, 0x9e58, 0x91a9, - 0x9e59, 0x8ff0, 0x96db, 0x9e5b, 0x9e5c, 0x9788, 0xfae1, 0x003f, - 0x003f, 0x003f, 0x9e61, 0x003f, 0x003f, 0x8d59, 0x003f, 0x9474, - 0x9e5e, 0x938c, 0x9ddc, 0x9de0, 0x003f, 0x8b6e, 0x003f, 0x9466, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9e60, 0x003f, 0x8fbc, 0x94c2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e66, 0x003f, 0x94f8, - 0x003f, 0x9e5d, 0x003f, 0x9e63, 0x9e62, 0x003f, 0x003f, 0x003f, - 0x90cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x968d, 0x003f, 0x97d1, - 0x003f, 0x003f, 0x9687, 0x003f, 0x89ca, 0x8e7d, 0x003f, 0x003f, - 0x9867, 0x9e65, 0x9095, 0x003f, 0x003f, 0x003f, 0x9e64, 0x003f, - 0x003f, 0x9e5f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ccd, - 0x003f, 0x003f, 0x003f, 0x9e6b, 0x9e69, 0x003f, 0x89cb, 0x9e67, - 0x9e6d, 0x9e73, 0x003f, 0xfae2, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfae4, 0x91c6, 0x003f, 0x003f, 0x95bf, 0x003f, 0x9e75, 0x003f, - 0x003f, 0x003f, 0x9541, 0x003f, 0x003f, 0x003f, 0x9e74, 0x9490, - 0x965e, 0x8ab9, 0x003f, 0x90f5, 0x8f5f, 0x003f, 0x003f, 0x003f, - 0x92d1, 0x003f, 0x974d, 0x003f, 0x003f, 0x9e70, 0x9e6f, 0x003f, - 0x003f, 0x003f, 0x9e71, 0x003f, 0x9e6e, 0x003f, 0x003f, 0x9e76, - 0x003f, 0x9e6c, 0x003f, 0x003f, 0x9e6a, 0x003f, 0x9e72, 0x9e68, - 0x003f, 0x928c, 0x003f, 0x96f6, 0x8ec4, 0x8df2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8db8, 0x003f, 0x003f, 0x968f, 0x8a60, - /* 0x6800 .. 0x68ff */ - 0x003f, 0xfae5, 0x92cc, 0x93c8, 0x8968, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x90f0, 0x003f, 0x003f, 0x90b2, 0x8c49, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e78, 0x003f, - 0x003f, 0x8d5a, 0x8a9c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9e7a, 0x8a94, 0x9e81, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9e7d, 0x003f, 0x90f1, 0x003f, 0x003f, 0x003f, - 0x8a6a, 0x8daa, 0x003f, 0x003f, 0x8a69, 0x8dcd, 0x003f, 0x003f, - 0x9e7b, 0x8c85, 0x8c6a, 0x938d, 0xfae6, 0x003f, 0x9e79, 0x003f, - 0x88c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e7c, 0x9e7e, 0x003f, - 0x8bcb, 0x8c4b, 0xfae3, 0x8aba, 0x8b6a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9e82, 0x003f, 0x003f, 0x8df7, 0x9691, 0x003f, 0x8e56, - 0x003f, 0x003f, 0x003f, 0x9e83, 0x003f, 0x003f, 0x003f, 0x954f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9e8f, 0x003f, 0x89b1, 0x9e84, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e95, 0x9e85, - 0x003f, 0x97c0, 0x003f, 0x9e8c, 0x003f, 0x947e, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e94, 0x003f, 0x9e87, - 0x003f, 0x003f, 0x003f, 0x88b2, 0x9e89, 0x003f, 0x003f, 0x8d5b, - 0x003f, 0x003f, 0x003f, 0x9e8b, 0x003f, 0x9e8a, 0x003f, 0x9e86, - 0x9e91, 0x003f, 0x8fbd, 0x003f, 0x003f, 0x003f, 0x9aeb, 0x8ce6, - 0x979c, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e88, 0x003f, 0x92f2, - 0x8a42, 0x8dab, 0x003f, 0x9e80, 0x003f, 0x9e90, 0x8a81, 0x003f, - 0x003f, 0x9e8e, 0x9e92, 0x003f, 0x938e, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8afc, 0x003f, 0x9eb0, 0x003f, - 0xfa64, 0x96c7, 0x9e97, 0x8afb, 0x003f, 0x9e9e, 0x003f, 0xfae7, - 0x003f, 0x003f, 0x965f, 0x003f, 0x9e9f, 0x9ea1, 0x003f, 0x9ea5, - 0x9e99, 0x003f, 0x9249, 0x003f, 0x003f, 0x003f, 0x003f, 0x938f, - 0x9ea9, 0x9e9c, 0x003f, 0x9ea6, 0x003f, 0x003f, 0x003f, 0x9ea0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9058, 0x9eaa, - 0x003f, 0x003f, 0x90b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9ea8, 0x8abb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6900 .. 0x69ff */ - 0x986f, 0x9e96, 0x003f, 0x003f, 0x9ea4, 0x88d6, 0x003f, 0x003f, - 0x9e98, 0x003f, 0x003f, 0x96b8, 0x9e9d, 0x9041, 0x92c5, 0x9e93, - 0x003f, 0x003f, 0x9ea3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x909a, 0x9ead, 0x8a91, 0x8c9f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9eaf, 0x9e9a, 0x9eae, 0x003f, 0x9ea7, 0x9e9b, 0x003f, - 0x9eab, 0x003f, 0x9eac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9ebd, 0x003f, 0x003f, 0x003f, 0x93cc, 0x003f, 0x9ea2, 0x003f, - 0x003f, 0x9eb9, 0x003f, 0x003f, 0x003f, 0x9ebb, 0x003f, 0x92d6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x976b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9596, 0x9eb6, 0x91c8, 0x003f, 0x003f, - 0x003f, 0x9ebc, 0x915e, 0x003f, 0x9eb3, 0x9ec0, 0x9ebf, 0x003f, - 0x93ed, 0x9ebe, 0x93e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfae9, 0x003f, 0x9ec2, 0x9eb5, 0x003f, 0x8bc6, 0x9eb8, 0x8f7c, - 0x003f, 0x003f, 0x003f, 0x9480, 0x9eba, 0x8bc9, 0x003f, 0x9eb2, - 0x9eb4, 0x9eb1, 0x003f, 0x003f, 0x984f, 0x8a79, 0x9eb7, 0x003f, - 0x003f, 0x9ec1, 0x8a54, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8de5, 0x003f, 0x003f, 0x003f, 0x897c, 0x003f, - 0x003f, 0x9ed2, 0x003f, 0x003f, 0x9850, 0x9ed5, 0x003f, 0x003f, - 0xfaeb, 0x003f, 0x003f, 0x9059, 0x9ed4, 0x003f, 0x003f, 0x003f, - 0x9ed3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ed0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ec4, 0x003f, - 0x003f, 0x9ee1, 0x9ec3, 0x003f, 0x9ed6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9ece, 0x003f, 0x003f, 0x9ec9, 0x9ec6, - 0x003f, 0x9ec7, 0x003f, 0x9ecf, 0x003f, 0x003f, 0x003f, 0xeaa0, - 0x003f, 0x003f, 0x9ecc, 0x8d5c, 0x92c6, 0x9184, 0x9eca, 0x003f, - 0x9ec5, 0x003f, 0x003f, 0x9ec8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x976c, 0x968a, 0x003f, 0x003f, 0x003f, 0x9ecd, 0x9ed7, 0x003f, - 0x003f, 0x003f, 0xfaec, 0x003f, 0x003f, 0x003f, 0x003f, 0x9edf, - 0x9ed8, 0x003f, 0x003f, 0x9ee5, 0x003f, 0x9ee3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9ede, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9edd, 0x003f, 0x92ce, 0x003f, 0x9185, 0x003f, 0x9edb, - /* 0x6a00 .. 0x6aff */ - 0x003f, 0x003f, 0x9ed9, 0x003f, 0x003f, 0x9ee0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9ee6, 0x94f3, 0x9eec, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9ee7, 0x9eea, 0x9ee4, 0x003f, 0x003f, 0x9294, - 0x003f, 0x9557, 0x003f, 0x9eda, 0x003f, 0x003f, 0x9ee2, 0x8fbe, - 0x003f, 0x96cd, 0x9ef6, 0x9ee9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8ca0, 0x89a1, 0x8a7e, 0x003f, 0x003f, 0x9ed1, 0x003f, - 0xfaed, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fbf, 0x9eee, 0x003f, - 0x9ef5, 0x8ef7, 0x8a92, 0x003f, 0x003f, 0x924d, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9eeb, 0x003f, 0xfaef, 0x9ef0, - 0x9ef4, 0x003f, 0x003f, 0x8bb4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8b6b, 0x9ef2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b40, - 0x003f, 0x93c9, 0x9ef1, 0x003f, 0x003f, 0x003f, 0x9ef3, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfaee, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9eed, 0xfaf0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9eef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaf1, 0x8a80, - 0x9268, 0x003f, 0x003f, 0x003f, 0x9efa, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ef8, 0x8ce7, 0x003f, - 0x9ef7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f40, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9e77, 0x003f, 0x003f, 0x003f, - 0x9ef9, 0x003f, 0x9efb, 0x9efc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9f4b, 0x003f, 0x9f47, 0x003f, 0x9e8d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9f46, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9f45, 0x003f, 0x003f, 0x9f42, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9ee8, 0x9f44, 0x9f43, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9f49, 0x003f, 0x9845, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9f4c, 0x8bf9, 0x003f, 0x003f, 0x9f48, 0x9f4a, - 0x003f, 0x003f, 0xfaf2, 0x003f, 0xfaf3, 0x003f, 0x003f, 0x003f, - 0x94a5, 0x003f, 0x9f4d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9f51, 0x9f4e, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6b00 .. 0x6bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x9793, 0x9f4f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9edc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9f52, 0x003f, 0x003f, 0x003f, 0x9f53, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8954, 0x003f, 0x9f55, - 0x8c87, 0x8e9f, 0x003f, 0x8bd3, 0x003f, 0x003f, 0x003f, 0x89a2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x977e, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f57, - 0x9f56, 0x9f59, 0x8b5c, 0x003f, 0x003f, 0x8bd4, 0x8abc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9f5c, 0x003f, 0x003f, 0x003f, 0x9f5b, - 0x003f, 0x9f5d, 0x003f, 0x003f, 0x89cc, 0x003f, 0x9256, 0x003f, - 0x9f5e, 0x003f, 0x003f, 0x8abd, 0x9f60, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9f5f, 0x003f, 0x9f61, 0x003f, 0x003f, 0x003f, 0x9f62, - 0x003f, 0x9f63, 0x8e7e, 0x90b3, 0x8d9f, 0x003f, 0x9590, 0x003f, - 0x003f, 0x95e0, 0x9863, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e95, - 0x003f, 0x003f, 0x003f, 0x8dce, 0x97f0, 0x003f, 0x003f, 0x003f, - 0x9f64, 0x9f65, 0x003f, 0x8e80, 0x003f, 0x003f, 0x003f, 0x9f66, - 0x9f67, 0x003f, 0x003f, 0x9f69, 0x9f68, 0x003f, 0x9677, 0x003f, - 0x003f, 0x8f7d, 0x8eea, 0x8e63, 0x003f, 0x9f6a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f6c, 0x9042, 0x003f, - 0x9f6b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f6d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9f6e, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9f6f, 0x9f70, 0x003f, 0x003f, 0x003f, 0x9f71, - 0x003f, 0x9f73, 0x9f72, 0x9f74, 0x89a3, 0x9269, 0x003f, 0x9f75, - 0x003f, 0x003f, 0x8e45, 0x8a6b, 0x9f76, 0x003f, 0x003f, 0x9361, - 0x9aca, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b42, 0x9f77, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9f78, 0x003f, 0x95ea, 0x9688, 0x003f, - 0x003f, 0x003f, 0x93c5, 0x9f79, 0x94e4, 0x003f, 0xfaf4, 0x003f, - 0x94f9, 0x003f, 0x003f, 0x96d1, 0x003f, 0x003f, 0x003f, 0x9f7a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9f7c, 0x9f7b, 0x003f, 0x003f, 0x9f7e, - 0x003f, 0x003f, 0x003f, 0x9f7d, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6c00 .. 0x6cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9f81, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e81, - 0x003f, 0x96af, 0x003f, 0x9f82, 0x9f83, 0x003f, 0x003f, 0x8b43, - 0x003f, 0x003f, 0x003f, 0x9f84, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9f86, 0x9f85, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9085, 0x003f, 0x003f, 0x9558, - 0x8969, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94c3, 0xfaf5, - 0x92f3, 0x8f60, 0x8b81, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94c4, 0x003f, - 0x8eac, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f88, 0x003f, 0x8abe, - 0x003f, 0x003f, 0x8998, 0x003f, 0xfaf6, 0x93f0, 0x9f87, 0x8d5d, - 0x9272, 0x003f, 0x9f89, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9f91, 0x003f, 0x9f8a, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaf8, - 0x91bf, 0x003f, 0x8b82, 0x9f92, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8c88, 0x003f, 0x003f, 0x8b44, 0x9f90, 0x003f, - 0x003f, 0x9f8e, 0x9f8b, 0x9780, 0x003f, 0x003f, 0xfaf7, 0x003f, - 0x92be, 0x003f, 0x003f, 0x003f, 0x93d7, 0x9f8c, 0x003f, 0x003f, - 0x9f94, 0x003f, 0x9f93, 0x8c42, 0x003f, 0x003f, 0x89ab, 0x003f, - 0x003f, 0x8db9, 0x9f8d, 0x9f8f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9676, 0x91f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9697, 0x003f, 0x003f, 0x9f9c, 0x003f, - 0x003f, 0x9f9d, 0x003f, 0x89cd, 0x003f, 0x003f, 0x003f, 0x003f, - 0x95a6, 0x96fb, 0x9f9f, 0x8ea1, 0x8fc0, 0x9f98, 0x9f9e, 0x8988, - 0x003f, 0x8bb5, 0x003f, 0x003f, 0x9f95, 0x9f9a, 0x003f, 0x003f, - 0x003f, 0x90f2, 0x9491, 0x003f, 0x94e5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9f97, 0x003f, 0x9640, 0x003f, 0x9f99, - 0x003f, 0x9fa2, 0xfaf9, 0x9fa0, 0x003f, 0x9f9b, 0x003f, 0x003f, - 0x003f, 0x9641, 0x9467, 0x8b83, 0x003f, 0x9344, 0x003f, 0x003f, - 0x928d, 0x003f, 0x9fa3, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fa1, - 0x91d7, 0x9f96, 0x003f, 0x896a, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6d00 .. 0x6dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xfafa, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x976d, 0x9fae, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9fad, 0x003f, 0x003f, 0x003f, 0x003f, 0x90f4, - 0x003f, 0x9faa, 0x003f, 0x978c, 0x003f, 0x003f, 0x93b4, 0x9fa4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92c3, 0x003f, 0x003f, - 0x003f, 0x896b, 0x8d5e, 0x9fa7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8f46, 0x9fac, 0x003f, 0x9fab, 0x9fa6, 0x003f, - 0x9fa9, 0x003f, 0x003f, 0x8a88, 0x003f, 0x9fa8, 0x9468, 0x003f, - 0x003f, 0x97ac, 0x003f, 0x003f, 0x8ff2, 0x90f3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9fb4, 0x9fb2, 0x003f, 0x956c, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9faf, 0x9fb1, 0x003f, 0x8959, 0x003f, - 0x003f, 0x8d5f, 0x9851, 0x003f, 0x8a5c, 0x003f, 0x9582, 0xfafc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9781, 0x003f, 0x003f, 0x8a43, - 0x905a, 0x9fb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fb8, 0x003f, 0xfafb, - 0x8fc1, 0x003f, 0x003f, 0x003f, 0x974f, 0x003f, 0x9fb5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9fb0, 0x003f, 0x9fb6, 0xfb40, 0x003f, - 0x003f, 0x97dc, 0x003f, 0x9393, 0x93c0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfb41, 0x003f, 0x003f, 0x8a55, - 0x003f, 0x003f, 0x8974, 0x003f, 0x003f, 0x9fbc, 0x003f, 0x003f, - 0x9fbf, 0x003f, 0x003f, 0x003f, 0x97c1, 0x003f, 0x003f, 0x003f, - 0x9784, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fc6, 0x9fc0, 0x9fbd, - 0x003f, 0x003f, 0x003f, 0x97d2, 0x9fc3, 0x003f, 0x003f, 0xfb42, - 0x003f, 0x8f69, 0x9fc5, 0x003f, 0x003f, 0x9fca, 0x003f, 0x003f, - 0x9391, 0x9fc8, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fc2, 0x003f, - 0x003f, 0x9257, 0x003f, 0x003f, 0x9fc9, 0x003f, 0x9fbe, 0x003f, - 0x9fc4, 0x003f, 0x9fcb, 0x88fa, 0x9fc1, 0x003f, 0x9fcc, 0x003f, - 0x003f, 0x905b, 0xfb44, 0x8f7e, 0x003f, 0x95a3, 0x003f, 0x8dac, - 0xfb43, 0x9fb9, 0x9fc7, 0x9359, 0xfb45, 0x003f, 0x003f, 0x003f, - /* 0x6e00 .. 0x6eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90b4, 0x003f, 0x8a89, - 0x8dcf, 0x8fc2, 0x9fbb, 0x8f61, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8c6b, 0x003f, 0x9fba, 0x003f, 0x003f, - 0x003f, 0x9fd0, 0x8f8d, 0x8cb8, 0x003f, 0x9fdf, 0x003f, 0x9fd9, - 0x8b94, 0x936e, 0x003f, 0x9fd4, 0x9fdd, 0x88ad, 0x8951, 0xfb48, - 0x003f, 0x89b7, 0x003f, 0x9fd6, 0x91aa, 0x9fcd, 0x9fcf, 0x8d60, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9fe0, 0xfb46, 0x9fdb, 0x003f, 0xfb49, 0x003f, 0x9fd3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9fda, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x96a9, 0x003f, 0x003f, 0x9fd8, 0x9fdc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cce, 0x003f, - 0x8fc3, 0x003f, 0x003f, 0x9258, 0xfb47, 0x003f, 0x003f, 0x9fd2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x974e, - 0x003f, 0x003f, 0x003f, 0x9fd5, 0x003f, 0x003f, 0x9fce, 0x9392, - 0x003f, 0x003f, 0x9fd1, 0x003f, 0x003f, 0x003f, 0x9fd7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9870, 0x8ebc, - 0x969e, 0x003f, 0x9fe1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x94ac, 0x003f, 0x003f, 0x9fed, - 0x8cb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f80, 0x003f, - 0x9fe3, 0x003f, 0x003f, 0x003f, 0x97ad, 0x8d61, 0x003f, 0x9ff0, - 0x003f, 0x003f, 0x88ec, 0x003f, 0x003f, 0x9fee, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9fe2, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fe8, - 0x003f, 0x003f, 0x9fea, 0x003f, 0x003f, 0x003f, 0x976e, 0x9fe5, - 0x003f, 0x003f, 0x934d, 0x003f, 0x003f, 0x9fe7, 0x003f, 0xfb4a, - 0x003f, 0x003f, 0x9fef, 0x003f, 0x9fe9, 0x96c5, 0x003f, 0x003f, - 0x003f, 0x9fe4, 0x003f, 0x8ea0, 0x9ffc, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8a8a, 0x003f, 0x9fe6, 0x9feb, 0x9fec, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91ea, 0x91d8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9ff4, 0x003f, 0x003f, 0x9ffa, - 0x003f, 0x003f, 0x9ff8, 0x003f, 0x9348, 0x003f, 0x003f, 0xe042, - 0x9ff5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ff6, 0x9fde, - /* 0x6f00 .. 0x6fff */ - 0x003f, 0x8b99, 0x9559, 0x003f, 0x003f, 0x003f, 0x8ebd, 0x003f, - 0x003f, 0x8d97, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9852, - 0x003f, 0x9ff2, 0x003f, 0xe041, 0x8989, 0x9186, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9499, 0x003f, 0x8abf, 0x97f8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x969f, 0x92d0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9ff9, 0x9ffb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9151, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe040, 0x9ff7, - 0x003f, 0x9ff1, 0x003f, 0x003f, 0x003f, 0x8ac1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8c89, 0x003f, 0x003f, 0x003f, - 0xe04e, 0x003f, 0x003f, 0xe049, 0x90f6, 0x003f, 0x003f, 0x8a83, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8f81, 0x003f, 0xe052, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe04b, 0x92aa, 0xe048, - 0x92d7, 0x003f, 0x003f, 0x003f, 0xe06b, 0x003f, 0x003f, 0x003f, - 0xe045, 0x003f, 0xe044, 0x003f, 0xe04d, 0x003f, 0x003f, 0x003f, - 0xe047, 0xe046, 0xe04c, 0x003f, 0x909f, 0x003f, 0xe043, 0x003f, - 0xfb4b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe04f, 0x003f, - 0x003f, 0xe050, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ac0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe055, 0x003f, 0xe054, 0xe056, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe059, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9362, 0x003f, 0xe053, 0x003f, 0xfb4c, 0x003f, 0x003f, - 0x003f, 0xe057, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8c83, 0x91f7, 0xe051, 0x945a, 0x003f, 0x003f, 0xe058, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe05d, 0xe05b, 0x003f, 0x003f, - 0xe05e, 0x003f, 0x003f, 0xe061, 0x003f, 0x003f, 0x003f, 0xe05a, - 0x8d8a, 0x9447, 0x003f, 0x003f, 0x9fb7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9794, 0xe05c, 0x003f, 0xe060, 0x91f3, - 0x003f, 0xe05f, 0x003f, 0xe04a, 0x003f, 0xfb4d, 0xe889, 0x003f, - 0x003f, 0x003f, 0xe064, 0x003f, 0x003f, 0x003f, 0xe068, 0x003f, - /* 0x7000 .. 0x70ff */ - 0x003f, 0xe066, 0x003f, 0x003f, 0x003f, 0xfb4e, 0x003f, 0xfb4f, - 0x003f, 0xe062, 0x003f, 0xe063, 0x003f, 0x003f, 0x003f, 0xe067, - 0x003f, 0xe065, 0x003f, 0x003f, 0x003f, 0x956d, 0x003f, 0x003f, - 0xe06d, 0x003f, 0xe06a, 0xe069, 0x003f, 0xe06c, 0x93d2, 0xe06e, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9295, 0x91eb, - 0xfb50, 0x003f, 0x003f, 0x003f, 0x90a3, 0x003f, 0x003f, 0x003f, - 0xe06f, 0x003f, 0xe071, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe070, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9ff3, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe072, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x93e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe073, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x89ce, 0x003f, 0x003f, 0x003f, 0x9394, - 0x8a44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8b84, 0x003f, 0x003f, 0x003f, 0x8edc, 0x8dd0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfb51, 0x003f, 0x003f, - 0x003f, 0x9846, 0x9086, 0x003f, 0x003f, 0x003f, 0x898a, 0x003f, - 0x003f, 0x003f, 0xe075, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe074, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfb52, 0xe078, 0x9259, 0xe07b, 0xe076, - 0x003f, 0x003f, 0x003f, 0xe07a, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe079, 0x935f, 0x88d7, 0xfa62, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x97f3, 0x003f, 0x003f, 0xe07d, 0x003f, 0x003f, 0x003f, 0x8947, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe080, 0x003f, 0x003f, 0x003f, 0xe07e, 0x003f, 0xe07c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe077, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9642, 0x003f, 0x003f, 0x003f, 0xe082, 0x003f, 0x003f, - /* 0x7100 .. 0x71ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xfb54, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe081, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfb53, - 0x003f, 0x003f, 0x003f, 0x003f, 0x898b, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe084, 0x95b0, 0x003f, 0xe083, 0x003f, 0x003f, 0x003f, - 0x003f, 0x96b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fc5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9152, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8fc4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfb56, 0xfb57, - 0x003f, 0x97f9, 0x003f, 0x003f, 0xe08a, 0x003f, 0x90f7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe086, 0xe08b, 0x003f, - 0x003f, 0x898c, 0x003f, 0x003f, 0xfb55, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe089, 0x003f, 0x9481, 0xe085, 0xe088, 0x8fc6, - 0x003f, 0x94cf, 0x003f, 0x003f, 0xe08c, 0x003f, 0x8ecf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90f8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe08f, 0x003f, 0x003f, 0x003f, - 0xe087, 0x003f, 0x8c46, 0x003f, 0x003f, 0x003f, 0x003f, 0xe08d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x976f, 0xe090, 0x003f, 0x003f, - 0x003f, 0xeaa4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f6e, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe091, 0x003f, 0x003f, 0x003f, 0xe092, 0x003f, 0x003f, 0x003f, - 0x003f, 0x944d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe094, 0x003f, 0x003f, 0x003f, 0x003f, 0xe095, 0x003f, - 0x003f, 0xfb59, 0x003f, 0x9452, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9395, 0xe097, 0x003f, 0x003f, 0x003f, 0x003f, 0xe099, 0x003f, - 0x97d3, 0x003f, 0xe096, 0x003f, 0xe098, 0x898d, 0x003f, 0xe093, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a7a, - 0xe09a, 0x003f, 0x003f, 0x003f, 0x003f, 0x9187, 0x8e57, 0xe09c, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe09b, 0x9043, 0x99d7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe09d, 0x003f, 0x003f, - 0x003f, 0xe09f, 0x003f, 0xe08e, 0xe09e, 0x003f, 0xfb5a, 0xe0a0, - /* 0x7200 .. 0x72ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x949a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a1, 0x003f, 0x003f, - 0xe0a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0a3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0a4, 0x003f, 0x92dc, 0x003f, 0xe0a6, 0xe0a5, 0x003f, 0x003f, - 0xe0a7, 0x003f, 0xe0a8, 0x003f, 0x003f, 0x8edd, 0x9583, 0x003f, - 0x003f, 0x003f, 0x96ea, 0xe0a9, 0xe0aa, 0x9175, 0x8ea2, 0xe0ab, - 0xe0ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ad, 0x95d0, - 0x94c5, 0x003f, 0x003f, 0xe0ae, 0x9476, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x92ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0af, 0x89e5, 0x003f, 0x8b8d, 0x003f, 0x96c4, 0x003f, 0x96b4, - 0x003f, 0x89b2, 0x9853, 0x003f, 0x003f, 0x003f, 0x003f, 0x9671, - 0x003f, 0x95a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x90b5, 0x003f, 0xe0b0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x93c1, 0x003f, 0x003f, 0x003f, 0x8ca1, 0xe0b1, 0x003f, - 0x8dd2, 0xe0b3, 0xe0b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0b4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe0b5, 0x003f, 0x003f, 0x003f, 0xe0b6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8b5d, 0x003f, 0xe0b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0b8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8ca2, 0x003f, 0x003f, 0x94c6, - 0x003f, 0xfb5b, 0xe0ba, 0x003f, 0x003f, 0x003f, 0x8ff3, 0x003f, - 0x003f, 0xe0b9, 0x003f, 0x003f, 0x003f, 0x003f, 0xfb5c, 0x003f, - 0x003f, 0x003f, 0x8bb6, 0xe0bb, 0xe0bd, 0x003f, 0xe0bc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0be, 0x003f, - 0x8ccf, 0x003f, 0xe0bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x8be7, - 0x003f, 0x915f, 0x003f, 0x8d9d, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0c1, 0xe0c2, 0xe0c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8eeb, 0x003f, 0x003f, 0x93c6, 0x8bb7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c4, - 0x924b, 0xe0c3, 0x003f, 0x003f, 0x9854, 0x9482, 0x003f, 0x003f, - /* 0x7300 .. 0x73ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe0c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c9, 0xe0c6, - 0x003f, 0x003f, 0x003f, 0x96d2, 0xe0c8, 0xe0ca, 0x003f, 0x97c2, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfb5d, 0xe0ce, 0x003f, 0x003f, - 0x003f, 0xe0cd, 0x9296, 0x944c, 0x003f, 0x003f, 0x8ca3, 0xe0cc, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe0cb, 0x003f, 0x9750, 0x9751, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0cf, 0x898e, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8d96, 0x8e82, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d0, 0xe0d1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8f62, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0d5, 0x003f, 0xe0d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0d6, 0x003f, 0x8a6c, 0x003f, 0x003f, 0xe0d8, 0x003f, 0xfb5f, - 0xe0d7, 0x003f, 0xe0da, 0xe0d9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8cba, 0x003f, 0x003f, 0x97a6, - 0x003f, 0x8bca, 0x003f, 0x89a4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8be8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8adf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x97e6, 0xe0dc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0de, 0x003f, 0xfb60, 0x003f, 0x003f, - 0xe0df, 0x003f, 0x89cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0db, 0xfb61, 0x8e58, 0x003f, 0x003f, 0x92bf, 0xe0dd, 0x003f, - 0x003f, 0x003f, 0xfb64, 0x003f, 0x003f, 0x003f, 0xfb62, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e2, 0x003f, - 0x8eec, 0x003f, 0x003f, 0xfb63, 0x003f, 0xe0e0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8c5d, 0x003f, 0x003f, 0x94c7, 0xe0e1, 0x003f, - 0x003f, 0xe0fc, 0x003f, 0x003f, 0x003f, 0xfb66, 0x003f, 0x003f, - 0xe0e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cbb, 0x003f, - /* 0x7400 .. 0x74ff */ - 0x003f, 0x003f, 0x003f, 0x8b85, 0x003f, 0xe0e4, 0x979d, 0xfb65, - 0x003f, 0x97ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x91f4, 0x003f, 0x003f, 0xe0e6, 0xfb67, 0x003f, - 0x003f, 0xfb69, 0xfb68, 0x003f, 0x003f, 0x003f, 0xfb6a, 0x003f, - 0x003f, 0x003f, 0xe0e8, 0x97d4, 0x8bd5, 0x94fa, 0x9469, 0x003f, - 0x003f, 0x003f, 0xe0e9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0eb, - 0x003f, 0xe0ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ea, 0x003f, 0x003f, - 0x003f, 0xe0ed, 0x8ce8, 0x896c, 0xe0ef, 0x003f, 0x9090, 0xe0ec, - 0x97da, 0x003f, 0xfb6b, 0xe0f2, 0xeaa2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe0f0, 0xe0f3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e5, - 0xe0f1, 0x003f, 0x003f, 0x8dba, 0x003f, 0x003f, 0xe0f4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x979e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfb6c, 0x003f, 0xe0f6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f7, 0xfb6d, - 0x003f, 0x003f, 0xe0e3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8ac2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ea3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe0f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fa, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x895a, 0x003f, 0x003f, 0x003f, - 0xe140, 0x003f, 0x955a, 0xe141, 0x003f, 0x003f, 0x8aa2, 0xe142, - 0x003f, 0xe143, 0x003f, 0x003f, 0x003f, 0x003f, 0xe144, 0x003f, - 0xe146, 0xe147, 0xe145, 0x003f, 0x003f, 0x003f, 0x9572, 0xe149, - 0xe148, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7500 .. 0x75ff */ - 0x003f, 0xfb6e, 0x003f, 0xe14b, 0xe14a, 0xe14c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe14d, 0xe14f, 0xe14e, 0x003f, - 0x003f, 0x8d99, 0x003f, 0xe151, 0x003f, 0xe150, 0x003f, 0x003f, - 0x8ac3, 0x003f, 0x9072, 0x003f, 0x935b, 0x003f, 0xe152, 0x90b6, - 0x003f, 0x003f, 0x003f, 0x8e59, 0x003f, 0x8999, 0xe153, 0x003f, - 0x9770, 0x003f, 0x003f, 0x95e1, 0xe154, 0x003f, 0x003f, 0xfaa8, - 0x9363, 0x9752, 0x8d62, 0x905c, 0x003f, 0x003f, 0x003f, 0x926a, - 0x99b2, 0x003f, 0x92ac, 0x89e6, 0xe155, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe156, 0x003f, 0xe15b, 0x003f, - 0x003f, 0xe159, 0xe158, 0x9dc0, 0x8a45, 0xe157, 0x003f, 0x88d8, - 0x003f, 0x94a8, 0x003f, 0x003f, 0x94c8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x97af, 0xe15c, 0xe15a, 0x927b, 0x90a4, 0x003f, 0x003f, - 0x94a9, 0x003f, 0x954c, 0x003f, 0xe15e, 0x97aa, 0x8c6c, 0xe15f, - 0x003f, 0xe15d, 0x94d4, 0xe160, 0x003f, 0xe161, 0x003f, 0xfb6f, - 0x88d9, 0x003f, 0x003f, 0x8ff4, 0xe166, 0x003f, 0xe163, 0x93eb, - 0xe162, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b45, - 0x003f, 0x003f, 0xe169, 0x003f, 0x003f, 0x003f, 0xe164, 0xe165, - 0x003f, 0xe168, 0xe167, 0x9544, 0x003f, 0x003f, 0x9161, 0x9160, - 0x003f, 0x8b5e, 0x003f, 0x003f, 0xe16a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe16b, 0x003f, 0x003f, 0xe16c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe16e, 0x003f, 0xe16d, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8975, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe176, 0x94e6, 0xe170, 0x003f, 0xe172, 0x003f, 0x003f, - 0xe174, 0x905d, 0x003f, 0x003f, 0xe175, 0xe173, 0x8ebe, 0x003f, - 0x003f, 0x003f, 0xe16f, 0xe171, 0x003f, 0x9561, 0x003f, 0x8fc7, - 0x003f, 0x003f, 0xe178, 0x003f, 0x003f, 0xe177, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe179, 0x003f, 0x8ea4, 0x8dad, 0x003f, 0x003f, - 0x9397, 0xe17a, 0x003f, 0x92c9, 0x003f, 0x003f, 0xe17c, 0x003f, - 0x003f, 0x003f, 0x979f, 0xe17b, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9189, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe182, 0x003f, 0xe184, 0xe185, 0x9273, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe183, 0x003f, 0xe180, 0x003f, 0xe17d, 0xe17e, - /* 0x7600 .. 0x76ff */ - 0x003f, 0xe181, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe188, 0x003f, 0xe186, 0x003f, 0xe187, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe189, - 0xe18b, 0xe18c, 0xe18d, 0x003f, 0xe18e, 0x003f, 0x003f, 0xe18a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe190, 0x003f, 0x003f, 0x003f, 0xe18f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe191, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x97c3, 0x003f, 0x003f, 0x003f, 0xe194, 0xe192, - 0xe193, 0x003f, 0x003f, 0x003f, 0x8ae0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x96fc, 0x003f, 0x003f, 0x003f, 0x95c8, 0x003f, - 0xe196, 0x003f, 0x003f, 0x003f, 0xe195, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe197, 0xe198, 0x003f, 0x003f, 0x003f, 0x003f, 0xe19c, - 0xe199, 0xe19a, 0xe19b, 0x003f, 0xe19d, 0x003f, 0x003f, 0x003f, - 0xe19e, 0x003f, 0xe19f, 0x003f, 0x003f, 0x003f, 0xe1a0, 0x003f, - 0xe1a1, 0x003f, 0x94ad, 0x936f, 0xe1a2, 0x9492, 0x9553, 0x003f, - 0xe1a3, 0x003f, 0xfb70, 0xe1a4, 0x9349, 0x003f, 0x8a46, 0x8d63, - 0xe1a5, 0x003f, 0x003f, 0xe1a6, 0x003f, 0x003f, 0xe1a7, 0x003f, - 0x8e48, 0x003f, 0x003f, 0xe1a9, 0x003f, 0x003f, 0xe1a8, 0x003f, - 0x003f, 0xe1aa, 0xe1ab, 0xfb73, 0xfb71, 0x003f, 0xfb72, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfb74, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94e7, 0x003f, - 0xe1ac, 0x003f, 0x003f, 0x003f, 0xe1ad, 0x003f, 0x003f, 0xea89, - 0xe1ae, 0xe1af, 0xe1b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e4d, - 0x003f, 0x003f, 0xe1b1, 0x9475, 0x003f, 0x003f, 0x967e, 0x003f, - 0x896d, 0x003f, 0x8976, 0x003f, 0x003f, 0xe1b2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1b4, 0x003f, 0x003f, 0x003f, 0xe1b3, 0x9390, - 0x003f, 0x003f, 0x003f, 0x90b7, 0x9f58, 0x003f, 0xe1b5, 0x96bf, - 0x003f, 0xe1b6, 0x003f, 0x8ac4, 0x94d5, 0xe1b7, 0x003f, 0xe1b8, - 0x003f, 0x003f, 0xe1b9, 0x003f, 0x003f, 0x003f, 0x96da, 0x003f, - 0x003f, 0x003f, 0x96d3, 0x003f, 0x92bc, 0x003f, 0x003f, 0x003f, - 0x918a, 0x003f, 0x003f, 0xe1bb, 0x003f, 0x003f, 0x8f82, 0x003f, - /* 0x7700 .. 0x77ff */ - 0x003f, 0x8fc8, 0x003f, 0x003f, 0xe1be, 0x003f, 0x003f, 0xe1bd, - 0xe1bc, 0x94fb, 0x003f, 0x8ac5, 0x8ca7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe1c4, 0x003f, 0x003f, 0xe1c1, 0x905e, - 0x96b0, 0x003f, 0x003f, 0x003f, 0xe1c0, 0xe1c2, 0xe1c3, 0x003f, - 0x003f, 0xe1bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1c5, - 0xe1c6, 0x003f, 0x92ad, 0x003f, 0x8ae1, 0x003f, 0x003f, 0x003f, - 0x9285, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfb76, 0xe1c7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1c8, 0xe1cb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9087, 0x003f, 0x93c2, 0x003f, 0xe1cc, 0x9672, 0x003f, - 0xe1c9, 0x003f, 0x003f, 0xe1ca, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe1cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ce, 0xe1cd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe1d1, 0x003f, 0x003f, 0xe1d0, 0x003f, - 0x003f, 0xe1d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d4, 0x003f, - 0xe1d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x95cb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8f75, 0x97c4, 0x003f, 0x003f, - 0xe1d5, 0x003f, 0x003f, 0x93b5, 0x003f, 0x003f, 0xe1d6, 0x003f, - 0x003f, 0xe1d7, 0x003f, 0xe1db, 0xe1d9, 0xe1da, 0x003f, 0xe1d8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1dc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1dd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1de, - 0x003f, 0x003f, 0xe1df, 0x96b5, 0xe1e0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x96ee, 0xe1e1, 0x003f, 0x926d, 0x003f, 0x948a, - 0x003f, 0x8be9, 0x003f, 0x003f, 0x003f, 0x925a, 0xe1e2, 0x8bb8, - 0x003f, 0x003f, 0x003f, 0x90ce, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e3, 0x003f, 0x003f, 0x003f, - /* 0x7800 .. 0x78ff */ - 0x003f, 0x003f, 0x8dbb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1e5, 0x003f, 0x8ca4, 0x8dd3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1e7, 0xfb78, 0x003f, 0x003f, 0x003f, 0x9375, 0x8dd4, 0x8b6d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9643, 0x003f, 0x946a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9376, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d7b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfb79, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fc9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfb7a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x97b0, 0x8d64, 0x003f, 0x003f, 0x8ca5, - 0x003f, 0x003f, 0x94a1, 0x003f, 0xe1eb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfb7b, 0x003f, 0xe1ed, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8ce9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ec, 0x92f4, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ef, 0x8a56, 0xe1ea, 0x003f, - 0x003f, 0x94e8, 0x003f, 0x894f, 0x003f, 0x8dea, 0x003f, 0x9871, - 0x003f, 0x003f, 0xe1ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe1f0, 0x003f, 0x003f, 0x003f, 0x95c9, - 0x003f, 0x90d7, 0xe1f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8a6d, 0x003f, 0xe1f9, 0x003f, 0xe1f8, 0x003f, - 0x003f, 0x8ea5, 0x003f, 0x003f, 0x003f, 0xe1fa, 0xe1f5, 0x003f, - 0x003f, 0x003f, 0xe1fb, 0xe1f6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x94d6, 0xe1f4, 0x003f, 0x003f, 0xe1f7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe241, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe240, - 0x9681, 0x003f, 0x003f, 0x003f, 0xe1fc, 0x003f, 0x003f, 0x88e9, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe243, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe242, 0x003f, 0x003f, - /* 0x7900 .. 0x79ff */ - 0x003f, 0x8fca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe244, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9162, 0x003f, - 0x003f, 0xe246, 0xe245, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe247, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e6, 0x003f, - 0x003f, 0x003f, 0xe1e8, 0xe249, 0xe248, 0x003f, 0x003f, 0x003f, - 0xfb7c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8ea6, 0x003f, 0x97e7, 0x003f, 0x8ed0, 0x003f, - 0xe24a, 0x8c56, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b5f, - 0x8b46, 0x8e83, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9753, 0x003f, 0x003f, 0xe250, 0x003f, 0xe24f, 0x9163, 0xe24c, - 0x003f, 0x003f, 0xe24e, 0x003f, 0x003f, 0x8f6a, 0x905f, 0xe24d, - 0xe24b, 0x003f, 0x9449, 0x003f, 0x003f, 0x8fcb, 0x003f, 0x003f, - 0x955b, 0x003f, 0x003f, 0x003f, 0x003f, 0x8dd5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9398, - 0x003f, 0x003f, 0xe251, 0x003f, 0x003f, 0x003f, 0x003f, 0xe252, - 0xe268, 0x8bd6, 0x003f, 0x003f, 0x985c, 0x9154, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe253, 0x003f, 0x003f, 0x89d0, 0x92f5, 0x959f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfb81, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfb83, 0x003f, 0xe254, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b9a, 0xe255, - 0x003f, 0x003f, 0xe257, 0x003f, 0x003f, 0x003f, 0xe258, 0x003f, - 0x9448, 0x003f, 0x003f, 0xe259, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe25a, 0xe25b, 0x003f, 0x003f, 0x8bd7, 0x89d1, 0x93c3, - 0x8f47, 0x8e84, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe25c, 0x003f, 0x8f48, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x89c8, 0x9562, 0x003f, 0x003f, 0xe25d, 0x003f, 0x003f, - 0x94e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9164, - 0x003f, 0xe260, 0x003f, 0xe261, 0x9489, 0x003f, 0x9060, 0xe25e, - 0x003f, 0x9281, 0x003f, 0x003f, 0xe25f, 0x003f, 0x003f, 0x003f, - 0x8fcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x88da, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7a00 .. 0x7aff */ - 0x8b48, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe262, 0x003f, 0x003f, 0x92f6, 0x003f, 0xe263, 0x90c5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x96ab, 0x003f, 0x003f, 0x9542, - 0xe264, 0xe265, 0x9274, 0x003f, 0x97c5, 0x003f, 0x003f, 0xe267, - 0xe266, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8eed, 0x003f, - 0x003f, 0xe269, 0x88ee, 0x003f, 0x003f, 0x003f, 0x003f, 0xe26c, - 0x003f, 0x003f, 0x003f, 0xe26a, 0x89d2, 0x8c6d, 0xe26b, 0x8d65, - 0x8d92, 0x003f, 0x95e4, 0xe26d, 0x003f, 0x003f, 0x9673, 0x003f, - 0x003f, 0xe26f, 0x003f, 0x003f, 0x003f, 0x90cf, 0x896e, 0x89b8, - 0x88aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe26e, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe270, 0xe271, 0x8ff5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe272, 0x003f, 0x8a6e, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe274, 0x003f, 0x003f, 0x003f, 0x8c8a, 0x003f, 0x8b86, 0x003f, - 0x003f, 0xe275, 0x8bf3, 0x003f, 0x003f, 0xe276, 0x003f, 0x90fa, - 0x003f, 0x93cb, 0x003f, 0x90de, 0x8df3, 0x003f, 0x003f, 0x003f, - 0xe277, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9282, 0x918b, 0x003f, 0xe279, 0xe27b, 0xe278, - 0xe27a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c41, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe27c, 0x8c45, 0x003f, 0x003f, 0x003f, 0x8b87, 0x9771, - 0xe27e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe280, 0x003f, - 0x003f, 0x003f, 0x894d, 0x003f, 0x003f, 0x003f, 0x003f, 0xe283, - 0x003f, 0x003f, 0x003f, 0x8a96, 0xe282, 0xe281, 0x003f, 0xe285, - 0xe27d, 0x003f, 0xe286, 0x97a7, 0x003f, 0xe287, 0x003f, 0xe288, - 0x003f, 0xfb84, 0x9af2, 0xe28a, 0x003f, 0xe289, 0x003f, 0x003f, - 0x003f, 0xe28b, 0xe28c, 0x003f, 0x97b3, 0xe28d, 0x003f, 0xe8ed, - 0x8fcd, 0xe28e, 0xe28f, 0x8f76, 0x003f, 0x93b6, 0xe290, 0xfb85, - 0x003f, 0x003f, 0x9247, 0xfb87, 0x003f, 0xe291, 0x003f, 0x925b, - 0xe292, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ba3, 0x003f, - 0x995e, 0x927c, 0x8eb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ac6, - /* 0x7b00 .. 0x7bff */ - 0x003f, 0x003f, 0xe293, 0x003f, 0xe2a0, 0x003f, 0xe296, 0x003f, - 0x8b88, 0x003f, 0xe295, 0xe2a2, 0x003f, 0x003f, 0x003f, 0xe294, - 0x003f, 0x8fce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe298, 0xe299, 0x003f, 0x934a, 0x003f, 0x003f, 0xe29a, 0x003f, - 0x8a7d, 0x003f, 0x003f, 0x003f, 0x003f, 0x9079, 0x9584, 0x003f, - 0xe29c, 0x003f, 0x003f, 0x003f, 0x91e6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe297, 0x003f, 0xe29b, 0xe29d, 0x003f, - 0x003f, 0x8df9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a4, 0x954d, 0x003f, - 0x94a4, 0x9399, 0x003f, 0x8bd8, 0xe2a3, 0xe2a1, 0x003f, 0x94b3, - 0xe29e, 0x927d, 0x939b, 0x003f, 0x939a, 0x003f, 0x8df4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2b6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a6, 0x003f, 0xe2a8, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ab, 0x003f, 0xe2ac, 0x003f, - 0xe2a9, 0xe2aa, 0x003f, 0x003f, 0xe2a7, 0xe2a5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe29f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95cd, 0x89d3, - 0x003f, 0x003f, 0x003f, 0xe2b3, 0x003f, 0xe2b0, 0x003f, 0xe2b5, - 0x003f, 0x003f, 0xe2b4, 0x003f, 0x9493, 0x96a5, 0x003f, 0x8e5a, - 0xe2ae, 0xe2b7, 0xe2b2, 0x003f, 0xe2b1, 0xe2ad, 0xfb88, 0xe2af, - 0x003f, 0x8ac7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x925c, 0x003f, 0x003f, 0x90fb, 0x003f, 0x003f, - 0x003f, 0x94a0, 0x003f, 0x003f, 0xe2bc, 0x003f, 0x003f, 0x003f, - 0x94a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x90df, 0xe2b9, 0x003f, 0x003f, 0x94cd, 0x003f, 0xe2bd, 0x95d1, - 0x003f, 0x927a, 0x003f, 0xe2b8, 0xe2ba, 0x003f, 0x003f, 0xe2bb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2be, 0x003f, 0x003f, - 0x8ec2, 0x003f, 0x003f, 0x003f, 0x93c4, 0xe2c3, 0xe2c2, 0x003f, - 0x003f, 0xe2bf, 0x003f, 0x003f, 0x003f, 0x9855, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2c8, 0x003f, 0x003f, 0xe2cc, 0xe2c9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7c00 .. 0x7cff */ - 0xe2c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2cb, 0x003f, 0x003f, - 0x003f, 0xe2c0, 0x99d3, 0xe2c7, 0xe2c1, 0x003f, 0x003f, 0xe2ca, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d0, - 0x003f, 0x8ac8, 0x003f, 0xe2cd, 0x003f, 0x003f, 0x003f, 0xe2ce, - 0x003f, 0x003f, 0xe2cf, 0xe2d2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d1, - 0x94f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d3, 0x97fa, 0x95eb, - 0xe2d8, 0x003f, 0x003f, 0xe2d5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d4, 0x90d0, 0x003f, 0xe2d7, - 0xe2d9, 0x003f, 0x003f, 0x003f, 0xe2d6, 0x003f, 0xe2dd, 0x003f, - 0xe2da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2db, - 0xe2c4, 0x003f, 0x003f, 0x003f, 0xe2dc, 0xe2de, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2df, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x95c4, 0x003f, 0xe2e0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96e0, 0x003f, - 0x003f, 0x8bcc, 0x8c48, 0xe2e1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x95b2, 0x003f, 0x9088, 0x003f, 0x96ae, 0x003f, 0x003f, - 0xe2e2, 0x003f, 0x97b1, 0x003f, 0x003f, 0x9494, 0x003f, 0x9165, - 0x9453, 0x003f, 0x003f, 0x8f6c, 0x003f, 0x003f, 0x003f, 0x88be, - 0x003f, 0xe2e7, 0xe2e5, 0x003f, 0xe2e3, 0x8a9f, 0x003f, 0x8fcf, - 0xe2e8, 0x003f, 0x003f, 0xe2e6, 0x003f, 0xe2e4, 0xe2ec, 0x003f, - 0x003f, 0xe2eb, 0xe2ea, 0xe2e9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe2ed, 0x003f, 0x003f, 0x003f, 0xe2ee, 0x90b8, 0x003f, - 0xe2ef, 0x003f, 0xe2f1, 0x003f, 0x003f, 0xe2f0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8cd0, 0x003f, 0x003f, 0x003f, 0x9157, 0x003f, - 0x003f, 0x003f, 0xe2f3, 0x003f, 0x003f, 0x003f, 0x939c, 0x003f, - 0xe2f2, 0x003f, 0x003f, 0x003f, 0xe2f4, 0x003f, 0x95b3, 0x918c, - 0x8d66, 0x003f, 0xe2f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x97c6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f7, - 0x003f, 0x003f, 0xe2f8, 0x003f, 0xe2f9, 0x003f, 0xe2fa, 0x003f, - 0x8e85, 0x003f, 0xe2fb, 0x8c6e, 0x003f, 0x003f, 0x8b8a, 0x003f, - /* 0x7d00 .. 0x7dff */ - 0x8b49, 0x003f, 0xe340, 0x003f, 0x96f1, 0x8d67, 0xe2fc, 0x003f, - 0x003f, 0x003f, 0xe343, 0x96e4, 0x003f, 0x945b, 0x003f, 0x003f, - 0x9552, 0x003f, 0x003f, 0x003f, 0x8f83, 0xe342, 0x003f, 0x8ed1, - 0x8d68, 0x8e86, 0x8b89, 0x95b4, 0xe341, 0x003f, 0x003f, 0x003f, - 0x9166, 0x9661, 0x8df5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8e87, 0x92db, 0x003f, 0xe346, 0x97dd, - 0x8dd7, 0x003f, 0xe347, 0x9061, 0x003f, 0xe349, 0x003f, 0x003f, - 0x003f, 0x8fd0, 0x8dae, 0x003f, 0x003f, 0x003f, 0x003f, 0xe348, - 0x003f, 0x003f, 0x8f49, 0x8cbc, 0x9167, 0xe344, 0xe34a, 0x003f, - 0xfb8a, 0x003f, 0x003f, 0xe345, 0x8c6f, 0x003f, 0xe34d, 0xe351, - 0x8c8b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe34c, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe355, 0xfb8b, 0x003f, 0x8d69, 0x003f, - 0x003f, 0x978d, 0x88ba, 0xe352, 0x003f, 0x003f, 0x8b8b, 0x003f, - 0xe34f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe350, 0x003f, - 0x003f, 0x939d, 0xe34e, 0xe34b, 0x003f, 0x8a47, 0x90e2, 0x003f, - 0x003f, 0x8ca6, 0x003f, 0x003f, 0x003f, 0xe357, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe354, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe356, - 0x003f, 0x003f, 0x003f, 0xe353, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8c70, 0x91b1, 0xe358, 0x918e, 0x003f, 0x003f, 0xe365, - 0xfb8d, 0x003f, 0xe361, 0xe35b, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe35f, 0x8ef8, 0x88db, 0xe35a, 0xe362, - 0xe366, 0x8d6a, 0x96d4, 0x003f, 0x92d4, 0xe35c, 0x003f, 0xfb8c, - 0xe364, 0x003f, 0xe359, 0x925d, 0x003f, 0xe35e, 0x88bb, 0x96c8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe35d, - 0x003f, 0x003f, 0x8bd9, 0x94ea, 0x003f, 0x003f, 0x003f, 0x918d, - 0x003f, 0x97ce, 0x8f8f, 0x003f, 0x003f, 0xe38e, 0xfb8e, 0x003f, - 0xe367, 0x003f, 0x90fc, 0x003f, 0xe363, 0xe368, 0xe36a, 0x003f, - 0x92f7, 0xe36d, 0x003f, 0x003f, 0xe369, 0x003f, 0x003f, 0x003f, - 0x95d2, 0x8ac9, 0x003f, 0x003f, 0x96c9, 0x003f, 0x003f, 0x88dc, - 0x003f, 0x003f, 0xe36c, 0x003f, 0x97fb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe36b, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7e00 .. 0x7eff */ - 0x003f, 0x898f, 0x003f, 0x003f, 0x93ea, 0xe36e, 0x003f, 0x003f, - 0x003f, 0xe375, 0xe36f, 0xe376, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe372, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x949b, 0x003f, 0x003f, 0x8ec8, 0xe374, - 0x003f, 0xe371, 0xe377, 0xe370, 0x003f, 0x003f, 0x8f63, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9644, 0x003f, 0x003f, 0x8f6b, 0x003f, - 0x003f, 0xe373, 0xe380, 0x003f, 0x003f, 0xe37b, 0x003f, 0xe37e, - 0x003f, 0xe37c, 0xe381, 0xe37a, 0x003f, 0xe360, 0x90d1, 0x003f, - 0x003f, 0x94c9, 0x003f, 0xe37d, 0x003f, 0x003f, 0xe378, 0x003f, - 0x003f, 0x003f, 0x9140, 0x8c71, 0x003f, 0x8f4a, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfb8f, 0x003f, 0x9044, 0x9155, 0xe384, 0x003f, - 0x003f, 0xe386, 0xe387, 0x003f, 0x003f, 0xe383, 0xe385, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe379, 0xe382, - 0x003f, 0xe38a, 0xe389, 0x003f, 0x003f, 0x969a, 0x003f, 0x003f, - 0x8c4a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe388, 0x003f, 0xe38c, 0xe38b, 0xe38f, 0x003f, 0xe391, - 0x003f, 0x003f, 0x8e5b, 0xe38d, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe392, 0xe393, 0xfa5c, 0x003f, 0xe394, 0x003f, 0xe39a, 0x935a, - 0xe396, 0x003f, 0xe395, 0xe397, 0xe398, 0x003f, 0xe399, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe39b, 0xe39c, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7f00 .. 0x7fff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8aca, 0x003f, - 0xe39d, 0x003f, 0xe39e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe39f, 0x003f, 0xfb90, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a0, 0xe3a1, 0xe3a2, 0x003f, - 0xe3a3, 0xe3a4, 0x003f, 0x003f, 0xe3a6, 0xe3a5, 0x003f, 0x003f, - 0xe3a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a8, - 0xe3a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3ac, - 0xe3aa, 0xe3ab, 0x8ddf, 0x8c72, 0x003f, 0x003f, 0x9275, 0x003f, - 0x94b1, 0x003f, 0x8f90, 0x003f, 0x003f, 0x946c, 0x003f, 0x94eb, - 0xe3ad, 0x9ceb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3ae, 0xe3b0, 0x003f, 0x9785, 0xe3af, 0xe3b2, - 0xe3b1, 0x003f, 0x9772, 0x003f, 0xe3b3, 0x003f, 0x94fc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3b7, 0x003f, 0x003f, 0xe3b6, 0xe3b5, 0x003f, - 0x003f, 0xfb91, 0x003f, 0xe3b8, 0x8c51, 0x003f, 0x003f, 0x003f, - 0x9141, 0x8b60, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3bc, 0xe3b9, - 0x003f, 0x003f, 0xe3ba, 0x003f, 0x003f, 0x003f, 0xe3bd, 0x003f, - 0xe3be, 0xe3bb, 0x003f, 0x003f, 0x003f, 0x8948, 0x003f, 0x003f, - 0x003f, 0x89a5, 0x003f, 0x003f, 0x003f, 0xe3c0, 0xe3c1, 0x003f, - 0x003f, 0x003f, 0xe3c2, 0x003f, 0x9782, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8f4b, 0x003f, 0xe3c4, 0xe3c3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9089, 0xe3c5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3c6, 0x003f, - 0x003f, 0xe3c7, 0x003f, 0x8ae3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8acb, 0x003f, 0x003f, 0xe3c8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3c9, 0x003f, 0x967c, 0x9783, 0x003f, 0x003f, 0x003f, - /* 0x8000 .. 0x80ff */ - 0x9773, 0x9856, 0x003f, 0x8d6c, 0xe3cc, 0x8ed2, 0xe3cb, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe3cd, 0x8ea7, 0x003f, 0x003f, 0x003f, - 0x91cf, 0x003f, 0xe3ce, 0x003f, 0x003f, 0x8d6b, 0x003f, 0x96d5, - 0xe3cf, 0xe3d0, 0x003f, 0x003f, 0xe3d1, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe3d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8ea8, 0x003f, 0x003f, 0x96eb, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe3d5, 0x003f, 0x925e, 0x003f, 0xe3d4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d7, 0x003f, - 0x003f, 0x003f, 0xe3d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3d8, 0x003f, 0x003f, 0x003f, 0x90b9, 0x003f, - 0xe3d9, 0x003f, 0xe3da, 0x003f, 0x003f, 0x003f, 0x95b7, 0xe3db, - 0x003f, 0x918f, 0xe3dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe3dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97fc, - 0xe3e0, 0x003f, 0xe3df, 0xe3de, 0x92ae, 0x003f, 0xe3e1, 0x9045, - 0x003f, 0xe3e2, 0x003f, 0x003f, 0x003f, 0xe3e3, 0x9857, 0xe3e4, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe3e5, 0xe3e7, 0xe3e6, 0x94a3, - 0x003f, 0x93f7, 0x003f, 0x985d, 0x94a7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe3e9, 0x003f, 0x003f, 0x8fd1, 0x003f, - 0x9549, 0x003f, 0xe3ea, 0xe3e8, 0x003f, 0x8acc, 0x003f, 0x003f, - 0x003f, 0x8cd2, 0x8e88, 0x003f, 0x003f, 0x94ec, 0x003f, 0x003f, - 0x003f, 0x8ca8, 0x9662, 0x003f, 0xe3ed, 0xe3eb, 0x003f, 0x8d6d, - 0x003f, 0x8d6e, 0x88e7, 0x003f, 0x8de6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9478, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x88dd, 0xe3f2, 0x003f, 0x925f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9477, 0x003f, 0x91d9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3f4, 0x003f, - 0x003f, 0xe3f0, 0xe3f3, 0xe3ee, 0x003f, 0xe3f1, 0x9645, 0x003f, - 0x003f, 0x8cd3, 0x003f, 0x003f, 0x88fb, 0xe3ef, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3f6, - 0x003f, 0xe3f7, 0x003f, 0x003f, 0x93b7, 0x003f, 0x003f, 0x003f, - 0x8bb9, 0x003f, 0x003f, 0x003f, 0xe445, 0x945c, 0x003f, 0x003f, - /* 0x8100 .. 0x81ff */ - 0x003f, 0x003f, 0x8e89, 0x003f, 0x003f, 0x8bba, 0x90c6, 0x9865, - 0x96ac, 0xe3f5, 0x90d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8b72, 0xe3f8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe3fa, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3fb, - 0x003f, 0x9245, 0x003f, 0x945d, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x92af, 0x003f, 0x003f, 0x003f, 0x003f, 0xe442, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe441, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe3fc, 0x003f, 0x003f, 0x9074, 0x003f, - 0x9585, 0xe444, 0x003f, 0xe443, 0x8d6f, 0x9872, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe454, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe448, 0xe449, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8eee, 0x003f, 0x003f, 0xe447, 0x003f, - 0x8d98, 0xe446, 0x003f, 0x003f, 0xe44a, 0x003f, 0x003f, 0x003f, - 0x92b0, 0x95a0, 0x9142, 0x003f, 0x003f, 0x003f, 0x003f, 0x91da, - 0xe44e, 0x003f, 0xe44f, 0xe44b, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe44c, 0x003f, 0xe44d, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d70, - 0x003f, 0x003f, 0x003f, 0xe455, 0x003f, 0xe451, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9586, 0x003f, 0x968c, 0x9547, 0x003f, 0x003f, - 0xe450, 0x003f, 0x003f, 0xe453, 0xe452, 0x003f, 0x003f, 0x003f, - 0x9663, 0xe456, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe457, 0x003f, 0x003f, 0x9156, 0x003f, 0xe458, 0x003f, 0x003f, - 0xe45a, 0x003f, 0xe45e, 0x003f, 0x003f, 0xe45b, 0xe459, 0x945e, - 0xe45c, 0x003f, 0xe45d, 0x003f, 0x003f, 0x003f, 0x89b0, 0x003f, - 0xe464, 0xe45f, 0x003f, 0x003f, 0x003f, 0xe460, 0x003f, 0x003f, - 0x003f, 0xe461, 0x003f, 0x919f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe463, 0xe462, 0xe465, 0x003f, 0x003f, 0x003f, 0x003f, 0xe466, - 0xe467, 0x003f, 0x003f, 0x9062, 0x003f, 0x89e7, 0x003f, 0xe468, - 0x97d5, 0x003f, 0x8ea9, 0x003f, 0x003f, 0x8f4c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8e8a, 0x9276, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe469, 0xe46a, 0x8950, 0x003f, 0xe46b, 0x003f, - /* 0x8200 .. 0x82ff */ - 0x003f, 0xe46c, 0xe46d, 0x003f, 0x003f, 0xe46e, 0x003f, 0xe46f, - 0x8bbb, 0x9da8, 0xe470, 0x003f, 0x90e3, 0xe471, 0x8ec9, 0x003f, - 0xe472, 0x003f, 0x98ae, 0x003f, 0x003f, 0x003f, 0xe473, 0x95dc, - 0x8ada, 0x003f, 0x003f, 0x9143, 0x8f77, 0x003f, 0x9591, 0x8f4d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe474, 0x8d71, 0xe475, 0x94ca, 0x003f, 0xe484, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe477, 0x003f, 0x91c7, 0x9495, 0x8cbd, - 0xe476, 0x9144, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe478, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92f8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe47a, 0xe479, 0xe47c, 0x003f, 0x003f, 0xe47b, 0x003f, 0xe47d, - 0x003f, 0x003f, 0xe480, 0x003f, 0xe47e, 0x003f, 0x8acd, 0x003f, - 0xe481, 0x003f, 0xe482, 0xe483, 0x003f, 0x003f, 0x8daf, 0x97c7, - 0x003f, 0xe485, 0x9046, 0x003f, 0x003f, 0x003f, 0x8990, 0xe486, - 0xe487, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe488, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x88f0, 0x003f, 0xe489, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe48a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9587, 0x003f, 0x003f, 0x003f, 0x8ec5, 0x003f, 0xe48c, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a48, 0x88b0, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe48b, 0xe48e, 0x946d, 0x003f, 0x9063, - 0x003f, 0x89d4, 0x003f, 0x9646, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8c7c, 0x8bda, 0x003f, 0xe48d, 0x003f, 0x89e8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8aa1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8991, 0xe492, 0x97e8, 0x91db, 0x003f, 0x003f, 0x9563, - 0x003f, 0xe49e, 0x003f, 0x89d5, 0xe49c, 0x003f, 0xe49a, 0xe491, - 0x003f, 0xe48f, 0x003f, 0xe490, 0x003f, 0x8ee1, 0x8bea, 0x9297, - 0x003f, 0x003f, 0x003f, 0x93cf, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8970, 0x003f, 0xe494, 0xe493, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe499, 0xe495, 0xe498, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8300 .. 0x83ff */ - 0x003f, 0xfb93, 0x96ce, 0xe497, 0x89d6, 0x8a9d, 0xe49b, 0x003f, - 0x003f, 0xe49d, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c73, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a1, 0xe4aa, - 0xe4ab, 0x003f, 0x003f, 0x003f, 0x88a9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4b2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x88ef, 0x003f, 0x003f, 0xe4a9, 0x003f, 0x003f, 0x003f, 0xe4a8, - 0x003f, 0xe4a3, 0xe4a2, 0x003f, 0xe4a0, 0xe49f, 0x9283, 0x003f, - 0x91f9, 0xe4a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a7, 0x003f, 0x003f, - 0x003f, 0x9190, 0x8c74, 0x003f, 0x003f, 0x003f, 0x003f, 0x8960, - 0xe4a6, 0x003f, 0x8d72, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9191, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfb94, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4b8, 0x003f, 0xe4b9, 0x003f, 0x89d7, - 0x003f, 0x003f, 0x003f, 0x89ac, 0xe4b6, 0x003f, 0x003f, 0xfb95, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ac, 0x003f, 0xe4b4, - 0x003f, 0xe4bb, 0xe4b5, 0x003f, 0x003f, 0x003f, 0xe4b3, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe496, 0x003f, 0x003f, 0xe4b1, 0x003f, - 0x003f, 0x003f, 0xe4ad, 0x003f, 0x003f, 0x003f, 0x8ace, 0xe4af, - 0xe4ba, 0x003f, 0xe4b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4bc, 0x003f, 0xe4ae, 0x949c, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9789, 0x003f, 0x003f, 0x003f, 0xe4b7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4cd, 0x003f, 0x003f, - 0x003f, 0xe4c5, 0x003f, 0x003f, 0x003f, 0x909b, 0x003f, 0xfb96, - 0x003f, 0x003f, 0x8b65, 0x003f, 0x8bdb, 0x003f, 0xe4c0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x89d9, 0x003f, 0x003f, 0x8fd2, 0x003f, - 0xe4c3, 0x003f, 0x003f, 0x003f, 0x8dd8, 0x003f, 0x003f, 0x9370, - 0xe4c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x95ec, 0x003f, 0xe4bf, 0x003f, 0x003f, 0x003f, 0x89d8, - 0x8cd4, 0x9548, 0xe4c9, 0x003f, 0xe4bd, 0x003f, 0xfb97, 0xe4c6, - 0x003f, 0x003f, 0x003f, 0xe4d0, 0x003f, 0xe4c1, 0x003f, 0x003f, - /* 0x8400 .. 0x84ff */ - 0x003f, 0x003f, 0x003f, 0xe4c2, 0x93b8, 0x003f, 0x003f, 0xe4c7, - 0x003f, 0x003f, 0x003f, 0xe4c4, 0x9647, 0xe4ca, 0x88de, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4be, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4cc, 0x003f, 0xe4cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x948b, 0xe4d2, 0x003f, 0xe4dd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8a9e, 0x003f, 0x003f, 0x003f, 0xe4e0, 0x003f, 0x003f, - 0xe4ce, 0x003f, 0x003f, 0x003f, 0xe4d3, 0x978e, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4dc, 0x003f, - 0xfb98, 0x9774, 0x003f, 0x003f, 0x003f, 0x003f, 0x97a8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9298, - 0x003f, 0x003f, 0x003f, 0x8a8b, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9592, 0xe4e2, 0x939f, 0x003f, 0x003f, 0x88af, 0x003f, - 0x003f, 0xe4db, 0x003f, 0xe4d7, 0x9192, 0xe4d1, 0xe4d9, 0xe4de, - 0x003f, 0x944b, 0x003f, 0x003f, 0x003f, 0x88a8, 0x003f, 0xe4d6, - 0x003f, 0xe4df, 0x9598, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe4da, 0x003f, 0xe4d5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8fd3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8f4e, 0x003f, 0x003f, 0x003f, 0x8eaa, 0x003f, 0x003f, 0x003f, - 0x003f, 0x96d6, 0x003f, 0x003f, 0x9566, 0x003f, 0x003f, 0xe4e5, - 0x003f, 0xe4ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8a97, 0x003f, 0xfb99, 0x003f, 0x003f, 0x003f, - 0x8ff6, 0xe4e3, 0x003f, 0xe4e8, 0x9193, 0x003f, 0x003f, 0xe4e4, - 0x003f, 0xe4eb, 0x003f, 0x003f, 0x927e, 0x003f, 0xe4ec, 0x003f, - 0x003f, 0x9775, 0xe4e1, 0x8a57, 0x003f, 0xe4e7, 0x003f, 0x003f, - 0xe4ea, 0x96aa, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ed, 0x003f, - 0x003f, 0xe4e6, 0xe4e9, 0x003f, 0xfa60, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x9648, 0x003f, 0x9840, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f8, 0x003f, 0x003f, 0xe4f0, - /* 0x8500 .. 0x85ff */ - 0x8ec1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4cf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x95cc, 0x003f, 0x96a0, 0xe4f7, 0xe4f6, 0x003f, 0xe4f2, - 0xe4f3, 0x003f, 0x8955, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f5, - 0x003f, 0xe4ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x92d3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f4, 0x88fc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91a0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95c1, 0x003f, 0x003f, - 0xe4f9, 0xe540, 0x003f, 0x94d7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4fc, 0x8fd4, 0x8ec7, 0xe542, 0x003f, 0x003f, 0x8bbc, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfb9a, 0x003f, 0xe543, 0x003f, 0x9599, - 0xe4fb, 0xfb9b, 0xe4d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4fa, 0x003f, 0x003f, 0x003f, 0x003f, - 0x986e, 0x93a0, 0x9593, 0xfb9c, 0x003f, 0xe54a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe550, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe551, 0x003f, - 0xe544, 0x003f, 0x003f, 0x003f, 0x9496, 0x003f, 0x003f, 0xe54e, - 0xe546, 0x003f, 0xe548, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe552, 0xe547, 0x003f, 0x003f, 0xe54b, 0x003f, 0x003f, 0x8992, - 0x003f, 0x93e3, 0x003f, 0xe54c, 0xe54f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe545, 0x003f, 0x9145, 0x003f, - 0xe549, 0x8e46, 0x9064, 0x8c4f, 0x96f2, 0x003f, 0x96f7, 0x8f92, - 0xfb9e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe556, 0xe554, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x986d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe553, 0x003f, 0x003f, 0x003f, 0x9795, 0x003f, 0xe555, - 0xe557, 0x003f, 0x003f, 0x003f, 0x003f, 0xe558, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe55b, 0xe559, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x93a1, 0xe55a, 0x003f, 0x003f, - 0x003f, 0x94cb, 0xe54d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f93, - 0x003f, 0xe55c, 0xe561, 0x9194, 0x003f, 0x003f, 0xe560, 0x003f, - /* 0x8600 .. 0x86ff */ - 0x003f, 0x003f, 0xe541, 0x003f, 0x003f, 0x003f, 0xe562, 0x9168, - 0x003f, 0x003f, 0xe55d, 0xe55f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe55e, 0x003f, 0x003f, 0x9f50, 0x9f41, - 0x003f, 0x003f, 0xe564, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe563, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9796, 0x003f, 0xe1ba, - 0xe565, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe566, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe567, 0x8cd5, 0x003f, - 0x8b73, 0x003f, 0x003f, 0x003f, 0xe569, 0x997c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8b95, 0x003f, 0x97b8, 0x003f, 0x8bf1, 0xe56a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe56b, - 0x003f, 0x003f, 0x003f, 0x928e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe56c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x93f8, 0x003f, 0x88b8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x89e1, 0xe571, 0xe572, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe56d, 0x003f, 0x8e5c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe56e, 0x9461, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe56f, 0xe570, 0xe57a, 0x003f, 0x003f, 0x003f, 0xe574, - 0xe577, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe573, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe575, 0x003f, 0xe576, 0x8ed6, - 0x003f, 0xe578, 0x003f, 0x9260, 0x003f, 0x8c75, 0x8a61, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe57b, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8a5e, 0x003f, 0xe581, 0x003f, 0x003f, 0xe57c, 0xe580, - 0x003f, 0x003f, 0x003f, 0x003f, 0x94b8, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe57d, 0x003f, 0x003f, 0xe57e, 0x9567, 0x94d8, 0xe582, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x91fb, 0xe58c, 0x003f, 0xe588, 0x003f, 0x003f, 0x89e9, 0x003f, - /* 0x8700 .. 0x87ff */ - 0xe586, 0x003f, 0x9649, 0xe587, 0x003f, 0x003f, 0xe584, 0x003f, - 0xe585, 0xe58a, 0xe58d, 0x003f, 0x003f, 0xe58b, 0x003f, 0x003f, - 0x003f, 0xe589, 0xe583, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9277, 0x003f, 0xe594, 0x003f, 0x96a8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe592, 0x003f, 0x003f, - 0x003f, 0xe593, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe58e, 0x003f, 0x003f, 0xe590, - 0x003f, 0x003f, 0x003f, 0xe591, 0x003f, 0x003f, 0x003f, 0xe58f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x90e4, 0x003f, 0x9858, 0xe598, 0x003f, 0xe599, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe59f, 0x003f, 0x9049, 0x003f, 0xe59b, - 0x003f, 0xe59e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe596, - 0xe595, 0x003f, 0x003f, 0xe5a0, 0x003f, 0x003f, 0x89da, 0x003f, - 0xe59c, 0x003f, 0xe5a1, 0x003f, 0x003f, 0x003f, 0xe59d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe59a, 0x003f, 0x92b1, 0x003f, - 0xe597, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9488, - 0x003f, 0x003f, 0xe5a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x975a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a4, - 0x003f, 0x003f, 0xe5a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5ac, 0x003f, 0x003f, 0x003f, 0xe5a6, - 0x003f, 0x003f, 0x003f, 0xe5ae, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9786, 0xe5b1, 0x003f, 0xe5a8, 0x003f, 0x003f, - 0xe5a9, 0x003f, 0x003f, 0x003f, 0xe5ad, 0x003f, 0xe5b0, 0xe5af, - 0x003f, 0x003f, 0x003f, 0xe5a7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe5aa, 0x003f, 0xe5bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe5b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b2, - 0x003f, 0x003f, 0xe5b3, 0x003f, 0x003f, 0x003f, 0xe5b8, 0xe5b9, - 0x003f, 0x8a49, 0x003f, 0x8b61, 0x003f, 0x003f, 0xe5b7, 0x003f, - /* 0x8800 .. 0x88ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a2, 0x003f, 0xfba1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b6, 0xe5ba, 0xe5b5, - 0x003f, 0xe5bc, 0x003f, 0x003f, 0x003f, 0xe5be, 0xe5bd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe5c0, 0xe5bf, 0xe579, 0x003f, 0x003f, 0x003f, 0xe5c4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe5c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5c2, 0x003f, - 0x003f, 0xe5c3, 0x003f, 0xe5c5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8c8c, 0x003f, 0xe5c7, 0x003f, 0xe5c6, 0x003f, 0x8f4f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8d73, 0x9fa5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5c8, 0x8f70, 0x003f, 0x003f, 0x003f, 0x8a58, - 0x003f, 0xe5c9, 0x003f, 0x8971, 0x003f, 0x8fd5, 0xe5ca, 0x003f, - 0x003f, 0x8d74, 0xe5cb, 0x88df, 0x003f, 0x003f, 0x003f, 0x003f, - 0x955c, 0x003f, 0x003f, 0xe5cc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x908a, 0x003f, 0xe5d3, 0x003f, 0x003f, 0xe5d0, 0x003f, 0x928f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5d1, 0xe5ce, 0x8bdc, - 0x003f, 0xe5cd, 0xe5d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8c55, 0x003f, 0x003f, 0x91dc, 0x003f, 0xe5da, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5d6, 0x003f, 0x003f, 0x003f, 0x91b3, 0xe5d5, - 0x003f, 0xe5d8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5cf, 0x003f, - 0x003f, 0x003f, 0xe5d9, 0x003f, 0xe5db, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x94ed, 0x003f, 0x003f, 0xe5d7, 0x003f, - 0xe5dc, 0xe5de, 0x003f, 0x003f, 0x8cd1, 0xe5d2, 0x003f, 0x88bf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5dd, - 0x003f, 0x8dd9, 0x97f4, 0xe5df, 0xe5e0, 0x9195, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97a0, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe5e1, 0x9754, 0x003f, 0x003f, - 0xe5e2, 0xe5e3, 0x003f, 0x003f, 0x95e2, 0xe5e4, 0x003f, 0x8dbe, - 0x003f, 0x97a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe5e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5ea, 0x8fd6, 0xe5e8, 0xfba2, 0x003f, 0x003f, - 0x9787, 0xe5e5, 0x003f, 0x003f, 0xe5e7, 0x90bb, 0x909e, 0x003f, - /* 0x8900 .. 0x89ff */ - 0x003f, 0x003f, 0xe5e6, 0x003f, 0xe5eb, 0x003f, 0x003f, 0x95a1, - 0x003f, 0x003f, 0xe5ed, 0x003f, 0xe5ec, 0x003f, 0x003f, 0x003f, - 0x8a8c, 0x003f, 0x964a, 0xe5ee, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfa5d, 0xe5fa, 0xe5f0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f1, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5f2, 0xe5f3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f7, 0x003f, - 0xe5f8, 0x003f, 0x003f, 0xe5f6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe5f4, 0x003f, 0xe5ef, 0xe5f5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f9, 0xe8b5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89a6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5fc, 0x8bdd, - 0xe5fb, 0x003f, 0x003f, 0x003f, 0xe641, 0x003f, 0xe640, 0x003f, - 0x003f, 0x003f, 0xe643, 0x003f, 0x003f, 0xe642, 0x003f, 0xe644, - 0x003f, 0x003f, 0x8f50, 0x003f, 0xe645, 0x003f, 0x003f, 0xe646, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe647, 0x90bc, - 0x003f, 0x9776, 0x003f, 0xe648, 0x003f, 0x003f, 0x95a2, 0x9465, - 0xe649, 0x003f, 0xe64a, 0x8ca9, 0x003f, 0x003f, 0x003f, 0x8b4b, - 0x003f, 0x003f, 0x003f, 0xe64b, 0x003f, 0x003f, 0x8e8b, 0x9460, - 0xe64c, 0x003f, 0x8a6f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe64d, 0x003f, 0x003f, 0x003f, 0x003f, 0xe64f, 0x9797, - 0x003f, 0xe64e, 0x9065, 0x003f, 0xe650, 0x003f, 0x003f, 0xe651, - 0x003f, 0x003f, 0xe652, 0x8acf, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe653, 0x003f, 0x003f, 0xe654, 0x003f, 0xe655, - 0xe656, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8a70, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe657, 0x003f, 0xe658, 0xe659, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x89f0, 0x003f, 0x003f, 0x9047, 0xe65a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe65b, 0x003f, 0x003f, 0x003f, - 0xe65c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8a00 .. 0x8aff */ - 0x8cbe, 0x003f, 0x92f9, 0xe65d, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8c76, 0x003f, 0x9075, 0x003f, 0xe660, 0x003f, 0x93a2, 0x003f, - 0xe65f, 0x003f, 0xfba3, 0x8c50, 0x003f, 0x003f, 0xe65e, 0x91f5, - 0x8b4c, 0x003f, 0x003f, 0xe661, 0x003f, 0xe662, 0x003f, 0x8fd7, - 0x003f, 0x003f, 0x003f, 0x8c8d, 0x003f, 0xe663, 0x003f, 0x003f, - 0x003f, 0x003f, 0x964b, 0x003f, 0x003f, 0x90dd, 0x003f, 0x003f, - 0x003f, 0x8b96, 0x003f, 0x96f3, 0x9169, 0x003f, 0xe664, 0xfba4, - 0x003f, 0x003f, 0x9066, 0x9290, 0x8fd8, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe665, 0x003f, 0x003f, 0x003f, 0x003f, 0xe668, 0x003f, - 0xe669, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8dbc, 0x91c0, 0xe667, 0x003f, 0x8fd9, 0x955d, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe666, 0x003f, 0x003f, 0x8e8c, 0x003f, - 0x8972, 0x003f, 0xe66d, 0x8c77, 0x003f, 0x003f, 0x8e8e, 0x003f, - 0x003f, 0x8e8d, 0x003f, 0x986c, 0xe66c, 0xe66b, 0x9146, 0x003f, - 0x8b6c, 0x9862, 0x8a59, 0x8fda, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfba5, 0x003f, 0x003f, 0xe66a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe66f, 0x003f, 0xe670, 0xe66e, 0x003f, 0x8cd6, - 0x003f, 0x975f, 0x003f, 0x003f, 0x8e8f, 0x9446, 0x003f, 0x003f, - 0x003f, 0xe673, 0x003f, 0x90be, 0x003f, 0x9261, 0x003f, 0x003f, - 0x9755, 0x003f, 0xe676, 0x003f, 0x003f, 0x003f, 0x8cea, 0x003f, - 0x90bd, 0xe672, 0x003f, 0xe677, 0x8ceb, 0xe674, 0xe675, 0xfba6, - 0xe671, 0x003f, 0x003f, 0x003f, 0x90e0, 0x93c7, 0x003f, 0x003f, - 0x924e, 0x003f, 0x89db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x94ee, 0x003f, 0x003f, 0x8b62, 0x003f, 0xfba7, 0x92b2, - 0x003f, 0x003f, 0xe67a, 0x003f, 0xe678, 0x003f, 0x003f, 0x926b, - 0x003f, 0x003f, 0x003f, 0x90bf, 0x8ad0, 0xe679, 0x003f, 0x907a, - 0x003f, 0x003f, 0x97c8, 0x003f, 0x003f, 0x003f, 0x985f, 0x003f, - 0x003f, 0x003f, 0xe67b, 0xe687, 0x92b3, 0x003f, 0xe686, 0xfba8, - 0xe683, 0xe68b, 0xe684, 0x003f, 0xe680, 0x003f, 0x92fa, 0xe67e, - 0x003f, 0x003f, 0x003f, 0xe67c, 0x003f, 0x9740, 0x8e90, 0x003f, - 0x003f, 0xe681, 0x003f, 0xe67d, 0x003f, 0x003f, 0xfbaa, 0xe685, - 0x8f94, 0x003f, 0x8cbf, 0x003f, 0x003f, 0x003f, 0x91f8, 0x003f, - /* 0x8b00 .. 0x8bff */ - 0x9664, 0x8979, 0x88e0, 0x003f, 0x93a3, 0x003f, 0x003f, 0xe689, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe688, 0x003f, 0x93e4, 0x003f, - 0xe68d, 0x003f, 0x003f, 0x003f, 0xe682, 0x003f, 0xe68c, 0xe68e, - 0x003f, 0x8caa, 0xe68a, 0x8d75, 0x003f, 0x8ed3, 0x003f, 0x003f, - 0xe68f, 0x9777, 0x003f, 0x003f, 0x003f, 0x003f, 0xe692, 0x003f, - 0xe695, 0x003f, 0x003f, 0xe693, 0x9554, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe690, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8bde, 0x003f, 0x003f, 0x003f, 0x003f, 0xe694, 0x003f, - 0x003f, 0xe696, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe69a, 0x003f, 0x003f, 0xe697, 0x003f, 0xe699, 0xe698, - 0x003f, 0x003f, 0x003f, 0xfbab, 0x003f, 0x003f, 0xe69b, 0x003f, - 0x8eaf, 0x003f, 0xe69d, 0xe69c, 0x9588, 0x003f, 0x003f, 0xe69f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c78, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe69e, 0xe6a0, 0x003f, 0x003f, 0xe6a1, - 0x8b63, 0xe3bf, 0x8ff7, 0x003f, 0xe6a2, 0x003f, 0x003f, 0x8cec, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a3, 0x003f, 0xfbac, - 0xe6a4, 0x003f, 0x003f, 0x8e5d, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9dcc, 0x003f, 0xe6a5, 0x003f, 0xe6a6, 0x003f, - 0x8f51, 0x003f, 0xe6a7, 0xe6a8, 0x003f, 0x003f, 0xe6a9, 0x003f, - 0x003f, 0xe6aa, 0xe6ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8c00 .. 0x8cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x924a, - 0x003f, 0x003f, 0xe6ac, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ae, - 0x003f, 0xe6ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x93a4, 0x003f, - 0xe6af, 0x003f, 0x964c, 0x003f, 0xe6b0, 0x003f, 0xe6b1, 0x003f, - 0xe6b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x93d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8fdb, 0xe6b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8d8b, 0x98ac, 0xe6b5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6b6, 0x955e, 0xe6b7, 0x003f, 0xe6bf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6b8, 0x003f, 0x003f, 0xe6ba, 0x003f, 0x003f, - 0x003f, 0xe6b9, 0xe6bb, 0x003f, 0x9665, 0xe6bc, 0xe6bd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6be, 0x003f, 0x003f, 0x003f, - 0xe6c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a4c, 0x92e5, 0x003f, - 0x9589, 0x8de0, 0x8d76, 0x003f, 0x003f, 0x003f, 0x003f, 0x956e, - 0x89dd, 0x94cc, 0xe6c3, 0x8ad1, 0x90d3, 0xe6c2, 0xe6c7, 0x9299, - 0x96e1, 0x003f, 0xe6c5, 0xe6c6, 0x8b4d, 0x003f, 0xe6c8, 0x9483, - 0x91dd, 0x003f, 0x003f, 0x94ef, 0x935c, 0xe6c4, 0x003f, 0x9666, - 0x89ea, 0xe6ca, 0x9847, 0x92c0, 0x9864, 0x003f, 0x003f, 0x8e91, - 0xe6c9, 0x003f, 0x91af, 0x003f, 0x003f, 0xe6da, 0x9147, 0x003f, - 0x003f, 0x93f6, 0x003f, 0x956f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6cd, 0x8e5e, 0x8e92, 0x003f, 0x8fdc, 0x003f, - 0x9485, 0x003f, 0x8cab, 0xe6cc, 0xe6cb, 0x003f, 0x958a, 0x003f, - 0x003f, 0x003f, 0x8ebf, 0x003f, 0x003f, 0x9371, 0x003f, 0x003f, - 0xfbad, 0x003f, 0x003f, 0x003f, 0xfbae, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6cf, 0xe6d0, 0x8d77, 0xe6ce, 0x003f, 0x003f, - /* 0x8d00 .. 0x8dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d1, 0xe6d2, 0x003f, 0xe6d4, - 0x91a1, 0x003f, 0xe6d3, 0x8ae4, 0x003f, 0xe6d6, 0x003f, 0xe6d5, - 0xe6d7, 0x003f, 0xfbaf, 0xe6d9, 0xe6db, 0x003f, 0xe6dc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x90d4, 0x003f, 0x8ecd, 0xe6dd, - 0x003f, 0x003f, 0x003f, 0x8a71, 0x003f, 0xe6de, 0x003f, 0x003f, - 0x9196, 0xe6df, 0x003f, 0xe6e0, 0x958b, 0x003f, 0xfbb0, 0x8b4e, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6e1, 0x003f, 0x003f, 0x003f, 0x92b4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x897a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8eef, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9096, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x91ab, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6e5, 0x003f, 0x003f, 0x003f, 0xe6e4, 0x003f, - 0x003f, 0x003f, 0xe6e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6eb, 0xe6e9, 0x003f, 0x003f, 0xe6e6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e8, 0x003f, - 0x003f, 0x003f, 0xe6e7, 0xe6ea, 0x003f, 0x8b97, 0x003f, 0xe6ee, - 0x003f, 0x90d5, 0x003f, 0xe6ef, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8cd7, 0x003f, 0xe6ec, 0xe6ed, 0x003f, 0x003f, 0x003f, 0x9848, - 0x003f, 0x003f, 0x003f, 0x92b5, 0x003f, 0x9148, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f0, 0x003f, 0x003f, 0xe6f3, - /* 0x8e00 .. 0x8eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6f1, 0xe6f2, 0x9778, 0x003f, 0x003f, 0x003f, 0x003f, 0x93a5, - 0xe6f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f4, 0xe6f5, 0xe6f7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe748, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6fa, 0x003f, 0x003f, 0x003f, 0xe6fb, 0xe6f9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe6f8, 0x003f, 0x92fb, 0x003f, 0x003f, 0xe740, - 0xe744, 0xe741, 0xe6fc, 0x003f, 0xe742, 0x003f, 0x003f, 0x003f, - 0xe743, 0x003f, 0x003f, 0x003f, 0x003f, 0xe74a, 0x003f, 0x003f, - 0x003f, 0xe745, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90d6, - 0xe747, 0x003f, 0x003f, 0xe749, 0xe746, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe74c, 0x003f, 0x8f52, 0x003f, 0xe74b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe74d, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe74e, 0x003f, 0x003f, 0xe751, 0xe750, 0x003f, 0xe74f, - 0x003f, 0x003f, 0xe753, 0xe752, 0x003f, 0x96f4, 0x003f, 0x003f, - 0x003f, 0xe755, 0x003f, 0xe754, 0xe756, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe757, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe759, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe758, 0x9067, 0xe75a, 0x003f, 0x003f, 0x8beb, - 0xe75b, 0xe75d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe75e, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe75f, 0xe75c, 0x003f, - 0xe760, 0x003f, 0x8ed4, 0xe761, 0x8b4f, 0x8c52, 0x003f, 0xfbb2, - 0x003f, 0x003f, 0x8cac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe762, 0x003f, 0x003f, 0x003f, 0x93ee, - 0x003f, 0x003f, 0x935d, 0xe763, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe766, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8eb2, 0x003f, 0x003f, 0xe765, 0xe764, 0x8c79, 0xe767, 0x003f, - /* 0x8f00 .. 0x8fff */ - 0x003f, 0x003f, 0x003f, 0x8a72, 0x003f, 0xe769, 0x003f, 0x003f, - 0x003f, 0x8dda, 0xe768, 0x003f, 0xe771, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe76b, 0xe76d, 0x95e3, 0xe76a, 0x003f, 0x003f, - 0x003f, 0xe76c, 0x003f, 0xe770, 0xe76e, 0x8b50, 0x003f, 0xe76f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe772, 0x003f, - 0x003f, 0x9479, 0x97d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f53, - 0x003f, 0x003f, 0x003f, 0xe773, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9741, 0xe775, 0x003f, 0xe774, 0x003f, 0x003f, 0xe778, 0x9760, - 0x003f, 0x003f, 0xe777, 0x003f, 0x8a8d, 0xe776, 0xe77b, 0x003f, - 0x003f, 0xe77a, 0x003f, 0x003f, 0xe779, 0x9351, 0xe77c, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe77d, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe77e, 0x003f, 0x003f, 0x8d8c, - 0x003f, 0x8c44, 0xe780, 0xe781, 0xe782, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9068, 0xe783, 0x003f, 0x8eab, 0xe784, - 0x003f, 0x003f, 0x003f, 0xe785, 0x003f, 0x003f, 0x003f, 0x999f, - 0x999e, 0x003f, 0x003f, 0x003f, 0x003f, 0xe786, 0xe390, 0xe787, - 0x9243, 0x904a, 0x945f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe788, - 0x003f, 0x003f, 0x95d3, 0x92d2, 0x8d9e, 0x003f, 0x003f, 0x9248, - 0x003f, 0x003f, 0x8949, 0x003f, 0x9698, 0x9076, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c7d, 0x003f, - 0x003f, 0x8bdf, 0x003f, 0x003f, 0x95d4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe789, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe78b, 0x003f, 0x003f, 0xe78a, 0x89de, 0x003f, - 0x003f, 0x93f4, 0xe78c, 0x9497, 0x003f, 0x9352, 0x003f, 0xe78d, - 0x8f71, 0x003f, 0x003f, 0x003f, 0xe78f, 0x003f, 0x003f, 0x96c0, - 0xe79e, 0xe791, 0xe792, 0x003f, 0x003f, 0x92c7, 0x003f, 0x003f, - /* 0x9000 .. 0x90ff */ - 0x91de, 0x9197, 0x003f, 0x93a6, 0x003f, 0xe790, 0x8b74, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe799, 0x003f, 0xe796, 0xe7a3, 0x93a7, - 0x9280, 0xe793, 0x003f, 0x92fc, 0x9372, 0xe794, 0xe798, 0x9080, - 0x003f, 0x9487, 0x92ca, 0x003f, 0x003f, 0x90c0, 0xe797, 0x91ac, - 0x91a2, 0xe795, 0x88a7, 0x9841, 0x003f, 0x003f, 0x003f, 0xe79a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91df, 0x003f, - 0x003f, 0x8f54, 0x9069, 0x003f, 0x003f, 0xe79c, 0xe79b, 0x003f, - 0x88ed, 0xe79d, 0x003f, 0x003f, 0x954e, 0x003f, 0xe7a5, 0x003f, - 0x003f, 0x93d9, 0x908b, 0x003f, 0x003f, 0x9278, 0x003f, 0x8bf6, - 0x003f, 0xe7a4, 0x9756, 0x895e, 0x003f, 0x95d5, 0x89df, 0xe79f, - 0xe7a0, 0xe7a1, 0xe7a2, 0x93b9, 0x9242, 0x88e1, 0xe7a6, 0x003f, - 0xe7a7, 0xeaa1, 0x003f, 0x003f, 0x91bb, 0x003f, 0xe7a8, 0x003f, - 0x8993, 0x916b, 0x003f, 0x8cad, 0x003f, 0x9779, 0x003f, 0xfbb5, - 0xe7a9, 0x934b, 0x003f, 0x003f, 0x003f, 0x9198, 0x8ed5, 0xe7aa, - 0x003f, 0x003f, 0xe7ad, 0x003f, 0x003f, 0x8f85, 0xe7ab, 0x914a, - 0x9149, 0x003f, 0x88e2, 0x003f, 0x97c9, 0xe7af, 0x003f, 0x94f0, - 0xe7b1, 0xe7b0, 0xe7ae, 0xe284, 0x8ad2, 0x003f, 0x003f, 0xe78e, - 0x003f, 0xe7b3, 0xe7b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b4, - 0x003f, 0x9757, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x93df, 0x003f, 0x003f, 0x964d, 0x003f, - 0xe7b5, 0x003f, 0x8ed7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b6, - 0x003f, 0xe7b7, 0x003f, 0x003f, 0x003f, 0xe7b8, 0x003f, 0x003f, - 0x9340, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x88e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x8d78, 0x003f, 0x003f, 0x003f, 0x9859, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe7bc, 0x003f, 0x003f, 0xfbb6, 0x003f, - 0x003f, 0x8c53, 0xe7b9, 0x003f, 0xe7ba, 0x003f, 0x003f, 0x003f, - 0x9594, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a73, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9758, 0x003f, 0x8bbd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9373, 0x003f, 0x003f, - /* 0x9100 .. 0x91ff */ - 0x003f, 0x003f, 0xe7bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7be, 0x003f, 0x003f, 0xfbb8, 0x003f, 0x003f, - 0x003f, 0xe7bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbb9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9341, 0x003f, 0x003f, - 0xe7c1, 0x003f, 0xe7c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x93d1, 0xe7c2, 0x8f55, 0x8ede, 0x947a, 0x9291, 0x003f, - 0x003f, 0x003f, 0x8ef0, 0x003f, 0x908c, 0x003f, 0xe7c3, 0x003f, - 0xe7c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x907c, 0xe7c5, 0x003f, 0xe7c6, 0x003f, 0x003f, - 0x003f, 0xe7c7, 0x978f, 0x003f, 0x8f56, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7c9, 0xe7c8, 0x003f, 0x8d79, 0x003f, 0x8d93, - 0x8e5f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f86, - 0x003f, 0xe7cb, 0x003f, 0xe7ca, 0x003f, 0x91e7, 0x003f, 0x003f, - 0x8ced, 0x003f, 0x90c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x94ae, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8f58, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7cd, 0x003f, 0x8fdd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7d0, 0xe7ce, 0x003f, 0x003f, 0x003f, 0xe7cf, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d2, 0xe7d1, 0x003f, 0x003f, - 0x8ff8, 0x003f, 0xe7d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7d4, 0xe7d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x94ce, 0x8dd1, - 0x8edf, 0xe7d6, 0x003f, 0xe7d7, 0x97a2, 0x8f64, 0x96ec, 0x97ca, - 0xe7d8, 0x8be0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d9, 0xfbbb, - 0x9342, 0x003f, 0xfbba, 0xe7dc, 0x8a98, 0x906a, 0xfbbc, 0xe7da, - 0x003f, 0xe7db, 0x003f, 0x92de, 0xfbbf, 0xfbc0, 0x9674, 0x8bfa, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbbd, 0xfbbe, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7de, 0xe7df, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe7dd, 0x003f, 0x003f, 0xe7e1, - /* 0x9200 .. 0x92ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbc1, 0x003f, - 0x003f, 0x003f, 0xfbc3, 0x003f, 0x003f, 0x93dd, 0x8a62, 0x003f, - 0xfbc2, 0xe7e5, 0x003f, 0x003f, 0xe7e2, 0xe7e4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe86e, 0x003f, 0x003f, 0xe7e3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x97e9, 0x003f, 0x003f, 0x8cd8, - 0x003f, 0xfbca, 0xfbc4, 0x003f, 0xfbc6, 0x003f, 0x003f, 0xe7ed, - 0xfbc5, 0x003f, 0x003f, 0x003f, 0x9353, 0xe7e8, 0x003f, 0x003f, - 0xe7eb, 0xe7e9, 0x003f, 0xe7ee, 0x003f, 0x003f, 0xfbc7, 0x003f, - 0xe7ef, 0xfbc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e7, - 0x003f, 0xfbc8, 0xe7f4, 0x8994, 0x003f, 0x003f, 0xe7e6, 0x003f, - 0x003f, 0x003f, 0x94ab, 0x003f, 0xe7ea, 0x003f, 0x8fde, 0xfbcb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8d7a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbcd, - 0xfbce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9667, 0x003f, - 0x8be2, 0x003f, 0x003f, 0x8f65, 0x003f, 0x93ba, 0x003f, 0x003f, - 0xfa5f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x914c, 0x003f, 0xe7f2, 0x003f, 0xe7ec, 0xe7f1, 0x003f, - 0x96c1, 0x003f, 0x92b6, 0xe7f3, 0xe7f0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbcc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x914b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f7, - 0x003f, 0xe7f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f5, - 0xfbd2, 0x003f, 0x964e, 0xfbd6, 0x003f, 0xfbd4, 0x003f, 0xfbd0, - 0x003f, 0xfbd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfbd5, 0x003f, 0x003f, 0x003f, 0x8f9b, 0x003f, 0x003f, 0xfbcf, - 0x003f, 0xe7f8, 0x95dd, 0x003f, 0x003f, 0x8973, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9565, 0x9292, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8b98, 0xfa65, 0xe7fa, 0xfbd9, 0x8d7c, 0x003f, 0x003f, 0xfbdc, - /* 0x9300 .. 0x93ff */ - 0x003f, 0x003f, 0xfbde, 0x003f, 0x003f, 0x003f, 0x8e4b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f9, - 0x908d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x908e, 0xe840, 0xe842, 0x003f, 0x003f, 0xfbdd, 0xfbdb, 0x003f, - 0x8ff9, 0xfbd8, 0xe841, 0xe843, 0x003f, 0xfbd7, 0x8bd1, 0x003f, - 0x9564, 0x003f, 0x003f, 0x8ee0, 0x9842, 0x003f, 0xe7fc, 0x8df6, - 0x003f, 0x003f, 0x985e, 0x003f, 0x003f, 0xe845, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe844, 0xe846, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe7fb, 0x003f, 0x003f, 0x003f, - 0xfa5e, 0x003f, 0x003f, 0x93e7, 0x003f, 0x9374, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x92d5, 0x003f, 0xe84b, 0xfbe0, - 0x003f, 0x003f, 0x003f, 0x9262, 0xe847, 0x003f, 0x003f, 0x003f, - 0xe848, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8c4c, 0x003f, 0xe84a, 0x003f, - 0xfbdf, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cae, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe849, 0x003f, 0x8fdf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8a99, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe84f, 0x003f, 0x8dbd, 0x9199, - 0x003f, 0x003f, 0x92c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfbe1, 0x003f, 0x003f, 0x8a5a, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe84d, 0xe84e, 0x92c1, 0x003f, - 0xe84c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe850, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe856, 0x003f, 0x003f, 0xfbe2, 0x003f, - 0xe859, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe858, 0x934c, 0x003f, 0x003f, 0x003f, 0x003f, 0xe851, 0xe852, - 0xe855, 0x003f, 0x003f, 0x003f, 0x003f, 0xe857, 0xfbe3, 0x003f, - 0x003f, 0x8bbe, 0x003f, 0x003f, 0xe85a, 0xe854, 0x003f, 0x003f, - 0xe853, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfbe4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9400 .. 0x94ff */ - 0x003f, 0x003f, 0x003f, 0xe85e, 0x003f, 0x003f, 0x003f, 0xe85f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe860, 0x003f, 0x003f, 0xe85d, 0xe85c, 0x003f, 0x003f, 0x003f, - 0x8fe0, 0x93a8, 0xe85b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe864, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe862, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfbe5, 0x003f, 0x003f, 0x003f, 0xe863, 0xe861, 0x003f, - 0x91f6, 0x003f, 0xe865, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe866, 0x003f, 0x003f, 0xe868, 0xfbe6, 0x003f, 0x003f, - 0xfbe7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8ad3, 0xe867, 0x96f8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe873, 0xe869, 0x003f, 0x003f, 0xe86c, 0x003f, - 0xe86a, 0x003f, 0xe86b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe86d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe86f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe870, 0x003f, 0xe871, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe874, 0xe872, 0xe875, 0xe877, - 0x003f, 0xe876, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9500 .. 0x95ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92b7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x96e5, 0x003f, 0xe878, 0x914d, 0x003f, 0x003f, 0x003f, 0xe879, - 0x003f, 0x95c2, 0xe87a, 0x8a4a, 0x003f, 0x003f, 0x003f, 0x895b, - 0x003f, 0x8ad5, 0xfbe8, 0x8ad4, 0xe87b, 0x003f, 0xe87c, 0x003f, - 0xe87d, 0xe87e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe880, 0x003f, 0x8ad6, 0x8a74, 0x8d7d, 0x94b4, 0x003f, 0xe882, - 0xe881, 0x003f, 0x003f, 0x003f, 0x003f, 0xe883, 0x003f, 0x003f, - 0x003f, 0x003f, 0x897b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe886, 0x003f, 0xe885, 0xe884, 0x003f, 0xe887, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe88a, 0x003f, 0x003f, 0x003f, 0x88c5, - 0x003f, 0x003f, 0xe888, 0x003f, 0xe88c, 0xe88b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe88e, 0xe88d, 0xe88f, 0x003f, - 0x93ac, 0x003f, 0x003f, 0x003f, 0xe890, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe891, 0xe893, 0x003f, 0x003f, 0xe892, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9600 .. 0x96ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x958c, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe894, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe895, 0x003f, 0x8de3, 0x003f, 0x003f, 0x003f, 0xe896, 0xe897, - 0x003f, 0x003f, 0x9668, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x916a, 0x003f, 0x003f, 0x003f, 0x88a2, - 0x91c9, 0x003f, 0xe898, 0x003f, 0x958d, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe89b, 0xe899, 0x8d7e, 0x003f, 0xe89a, - 0x8cc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x95c3, 0xe89d, 0xe89f, 0xe89e, 0xe8a0, - 0x003f, 0x003f, 0x8940, 0x9077, 0x8f9c, 0x8ad7, 0xe8a1, 0x003f, - 0x003f, 0x003f, 0x9486, 0x003f, 0xe8a3, 0x003f, 0x003f, 0x003f, - 0x8941, 0x003f, 0xe8a2, 0x92c2, 0x003f, 0x97cb, 0x93a9, 0xe89c, - 0x97a4, 0x003f, 0x8caf, 0x003f, 0x003f, 0x977a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bf7, 0x97b2, 0x003f, - 0x8c47, 0x003f, 0x91e0, 0xe440, 0x003f, 0xe8a4, 0x8a4b, 0x908f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8a75, 0xe8a6, 0x003f, 0xe8a7, - 0xe8a5, 0x8c84, 0x003f, 0x8ddb, 0x8fe1, 0xfbeb, 0x003f, 0x003f, - 0x8942, 0x003f, 0x003f, 0x97d7, 0x003f, 0x003f, 0x003f, 0xe8a9, - 0xe7ac, 0x003f, 0xe8a8, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbec, - 0xe8ac, 0xe8aa, 0xe8ab, 0x003f, 0xe8ad, 0x003f, 0xe8ae, 0x97ea, - 0xe8af, 0xe8b0, 0x003f, 0x90c7, 0x94b9, 0x003f, 0x003f, 0x003f, - 0x909d, 0x8ae5, 0x003f, 0x003f, 0x9759, 0x89eb, 0x8f57, 0x8cd9, - 0x003f, 0xe8b3, 0x003f, 0xe8b2, 0x8e93, 0xe8b4, 0xe8b1, 0x003f, - 0x003f, 0x8e47, 0x003f, 0x003f, 0x003f, 0xe8b8, 0xe5ab, 0x003f, - 0x003f, 0x99d4, 0x003f, 0x9097, 0xe8b6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x97a3, 0x93ef, 0x003f, 0x003f, 0x003f, 0x003f, - 0x894a, 0x003f, 0x90e1, 0x8eb4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x95b5, 0x003f, 0x895f, 0x003f, 0x003f, 0x003f, 0x97eb, 0x978b, - 0x003f, 0xe8b9, 0x003f, 0x9364, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9700 .. 0x97ff */ - 0x8ef9, 0x003f, 0x003f, 0x003f, 0xe8ba, 0x003f, 0xe8bb, 0x906b, - 0xe8bc, 0x003f, 0x97ec, 0x003f, 0x003f, 0xe8b7, 0xe8be, 0xe8c0, - 0x003f, 0xe8bf, 0x003f, 0xe8bd, 0x003f, 0x003f, 0xe8c1, 0x003f, - 0x003f, 0xe8c2, 0x003f, 0x003f, 0x919a, 0x003f, 0x89e0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe8c3, 0x003f, 0x003f, 0x96b6, - 0x003f, 0x003f, 0xe8c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe8c5, 0x003f, 0x9849, 0xfbed, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9e50, 0xe8c6, 0x003f, 0xfbee, 0x003f, 0xe8c7, 0xe8c8, 0x003f, - 0x003f, 0x003f, 0xe8cc, 0xfbef, 0xe8c9, 0x003f, 0xe8ca, 0x003f, - 0xe8cb, 0xe8cd, 0x003f, 0x003f, 0x003f, 0xfbf0, 0x003f, 0xfbf1, - 0x003f, 0xfbf2, 0x90c2, 0x003f, 0x003f, 0xfbf3, 0x96f5, 0x003f, - 0x003f, 0x90c3, 0x003f, 0x003f, 0xe8ce, 0x003f, 0x94f1, 0x003f, - 0xe8cf, 0xea72, 0x96ca, 0x003f, 0xe8d0, 0x003f, 0xe8d1, 0x003f, - 0xe8d2, 0x8a76, 0x003f, 0xe8d4, 0x003f, 0x9078, 0x003f, 0x003f, - 0x003f, 0xe8d5, 0x003f, 0x003f, 0x8c43, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe8d6, 0xe8da, 0x003f, 0xe8d8, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe8d9, 0x003f, 0x003f, 0x8a93, 0xe8d7, 0xe8db, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8dc, 0x003f, 0x88c6, 0x003f, 0xe8dd, - 0xe8de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8fe2, 0x003f, 0x003f, 0x003f, 0xe8df, 0x003f, 0x003f, 0x003f, - 0x8b66, 0x003f, 0x003f, 0xe8e2, 0x003f, 0x003f, 0xe8e1, 0x003f, - 0xe8e0, 0x003f, 0x003f, 0xe691, 0x003f, 0x95da, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8e3, 0xe8e4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8e5, 0x003f, 0x003f, 0xe8e6, 0x003f, - 0xe8e7, 0x003f, 0x003f, 0xe8e8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8ad8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe8e9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ea, 0x9442, 0x003f, - 0x003f, 0x003f, 0xe8ec, 0x89b9, 0x003f, 0xe8ef, 0xe8ee, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8943, 0x003f, 0x003f, 0x003f, 0x8bbf, - /* 0x9800 .. 0x98ff */ - 0x003f, 0x95c5, 0x92b8, 0x8da0, 0x003f, 0x8d80, 0x8f87, 0x003f, - 0x907b, 0x003f, 0x003f, 0x003f, 0xe8f1, 0x003f, 0x003f, 0xe8f0, - 0x9761, 0x8ae6, 0x94d0, 0x93da, 0x003f, 0x003f, 0x003f, 0x909c, - 0x97cc, 0x003f, 0x8c7a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe8f4, 0x003f, 0x003f, 0xe8f3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x966a, 0x93aa, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x896f, 0x003f, 0x003f, 0xe8f5, - 0xe8f2, 0x003f, 0x003f, 0x9570, 0x978a, 0xe8f6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f7, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8f9, 0x91e8, 0x8a7a, 0x8a7b, 0xe8f8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8ae7, 0x8cb0, 0x003f, 0xfbf4, - 0x8ae8, 0x003f, 0x003f, 0x935e, 0x003f, 0x003f, 0x97de, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbf5, 0x003f, 0x8cda, - 0x003f, 0x003f, 0x003f, 0xe8fa, 0x003f, 0x003f, 0x003f, 0xe8fb, - 0xe8fc, 0xe940, 0x003f, 0xe942, 0xe941, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9597, 0x003f, 0xe943, 0x003f, 0x003f, 0x003f, 0x003f, 0xe944, - 0x003f, 0xe945, 0x003f, 0x003f, 0x003f, 0x003f, 0xe946, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe948, 0xe947, 0x003f, 0xe949, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x94f2, 0xe3ca, 0x003f, 0x003f, 0x9048, - 0x003f, 0x003f, 0x8b51, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe94a, 0x003f, 0xe94b, 0x003f, 0x99aa, 0x9f5a, 0x94d1, - 0x003f, 0x003f, 0x88f9, 0x003f, 0x88b9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x8e94, 0x964f, 0x8ffc, 0x003f, - /* 0x9900 .. 0x99ff */ - 0x003f, 0x003f, 0x003f, 0xe94c, 0x003f, 0x96dd, 0x003f, 0x003f, - 0x003f, 0xe94d, 0x977b, 0x003f, 0x8961, 0x003f, 0x003f, 0x003f, - 0x8e60, 0x003f, 0xe94e, 0x89ec, 0xe94f, 0x003f, 0x003f, 0x003f, - 0xe950, 0x003f, 0x003f, 0x003f, 0x003f, 0xe952, 0xe953, 0x003f, - 0xe955, 0xe951, 0x003f, 0x003f, 0xe954, 0x003f, 0x003f, 0xfbf8, - 0x8ad9, 0x003f, 0x003f, 0x003f, 0xe956, 0x003f, 0xe957, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe958, 0xe959, 0x003f, - 0x003f, 0x003f, 0xe95a, 0x003f, 0x003f, 0xe95c, 0x003f, 0x003f, - 0x003f, 0xe95b, 0x003f, 0xe95e, 0xe961, 0x003f, 0x003f, 0x003f, - 0xe95d, 0xe95f, 0xe960, 0x003f, 0x003f, 0xe962, 0x003f, 0x8bc0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ef1, 0xe963, - 0xe964, 0x8d81, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbfa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe965, 0x003f, 0x003f, - 0x8a5d, 0x003f, 0x003f, 0x003f, 0x946e, 0xe966, 0xe967, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9279, 0x93e9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe968, 0x003f, 0x003f, 0x003f, - 0x003f, 0x949d, 0x003f, 0x003f, 0x91ca, 0x8977, 0x8bec, 0x003f, - 0x8bed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9293, 0xe96d, 0x8bee, 0x003f, 0x003f, 0x89ed, 0x003f, 0x003f, - 0xe96c, 0x003f, 0x003f, 0xe96a, 0x003f, 0xe96b, 0x003f, 0xe969, - 0x003f, 0x003f, 0xe977, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe96e, 0xe96f, 0x003f, - 0x003f, 0xe970, 0xe971, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe973, 0x003f, 0x003f, 0xe972, 0x003f, 0x003f, 0x003f, 0x8f78, - /* 0x9a00 .. 0x9aff */ - 0x003f, 0xe974, 0x003f, 0x003f, 0x003f, 0xe976, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b52, 0xe975, - 0x003f, 0x003f, 0x919b, 0x8cb1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe978, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x91cb, 0x003f, 0x003f, 0xe979, 0x003f, 0x003f, 0x003f, 0x003f, - 0x93ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe97a, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe980, 0x003f, - 0xe97d, 0x003f, 0xe97c, 0xe97e, 0x003f, 0xe97b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe982, 0xfbfb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe981, 0x003f, 0xe984, - 0x003f, 0x003f, 0x8bc1, 0xe983, 0x003f, 0x003f, 0x003f, 0xe985, - 0x003f, 0x003f, 0xe986, 0x003f, 0xe988, 0xe987, 0x003f, 0x003f, - 0x003f, 0xe989, 0xe98b, 0xe98a, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8d9c, 0x003f, 0x003f, 0x003f, 0x003f, 0xe98c, 0x003f, 0x003f, - 0xe98d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8a5b, 0x003f, 0x003f, 0x003f, 0xe98e, 0x003f, 0x003f, 0x003f, - 0xe98f, 0x003f, 0x003f, 0x003f, 0x9091, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe990, - 0x003f, 0xe991, 0x003f, 0xe992, 0xe993, 0x003f, 0x003f, 0x003f, - 0x8d82, 0xfbfc, 0x003f, 0x003f, 0xfc40, 0x003f, 0xe994, 0xe995, - 0x003f, 0x003f, 0xe996, 0xe997, 0x003f, 0x003f, 0xe998, 0x003f, - 0x003f, 0x003f, 0x94af, 0xe99a, 0x003f, 0x9545, 0xe99b, 0xe999, - 0x003f, 0xe99d, 0x003f, 0x003f, 0xe99c, 0x003f, 0x003f, 0xe99e, - 0x003f, 0x003f, 0x003f, 0xe99f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9b00 .. 0x9bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9a1, 0x003f, 0xe9a2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a3, - 0x003f, 0x003f, 0xe9a4, 0xe9a5, 0x003f, 0xe9a6, 0x003f, 0xe9a7, - 0xe9a8, 0xe9a9, 0xe9aa, 0x003f, 0x003f, 0x003f, 0xe9ab, 0xe9ac, - 0x003f, 0x9f54, 0xe9ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2f6, 0x8b53, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8a40, 0x8db0, 0xe9af, 0xe9ae, 0x96a3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b1, 0xe9b2, 0xe9b0, - 0x003f, 0xe9b3, 0x003f, 0x003f, 0x9682, 0x003f, 0x003f, 0x003f, - 0xe9b4, 0x003f, 0x8b9b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9844, - 0x003f, 0x003f, 0xfc42, 0x003f, 0xe9b5, 0xfc41, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe9b7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88bc, 0xfc43, - 0x003f, 0xe9b8, 0x95a9, 0xe9b6, 0x003f, 0x003f, 0xe9b9, 0xe9ba, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9bb, - 0xe9bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9bd, 0x003f, 0x968e, 0x8e4c, 0x003f, 0x8df8, 0x914e, 0x003f, - 0x003f, 0xfc44, 0x003f, 0x003f, 0xe9be, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9c1, 0x003f, 0xfc45, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c2, 0x003f, - 0x003f, 0x8cef, 0xe9c0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c3, - 0x003f, 0xe9c4, 0xe9c5, 0x003f, 0xe9c9, 0x003f, 0x8e49, 0x003f, - 0x003f, 0x003f, 0x003f, 0x91e2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9ca, 0xe9c7, 0xe9c6, 0xe9c8, 0x003f, 0x003f, 0x003f, - 0x8c7e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9ce, 0xe9cd, 0xe9cc, 0x003f, 0x003f, 0x88b1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9c00 .. 0x9cff */ - 0xfc46, 0x003f, 0x003f, 0x003f, 0xe9d8, 0x003f, 0xe9d4, 0x003f, - 0xe9d5, 0xe9d1, 0xe9d7, 0x003f, 0xe9d3, 0x8a82, 0x003f, 0x003f, - 0x986b, 0x003f, 0xe9d6, 0xe9d2, 0xe9d0, 0xe9cf, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe9da, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9dd, 0x003f, 0x003f, 0xe9dc, 0xe9db, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9568, 0xe9d9, 0x88f1, - 0xe9de, 0x003f, 0xe9e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8a8f, 0xe9cb, 0x8956, 0x003f, 0x003f, 0xe9e2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e1, 0xe9df, - 0x924c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x9690, 0x003f, 0x003f, 0x003f, 0x003f, 0x97d8, - 0x003f, 0x003f, 0xe9e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e6, 0x003f, - 0xe9e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92b9, 0x003f, 0xe9e8, - 0x003f, 0x94b5, 0x003f, 0xe9ed, 0xe9e9, 0x003f, 0x003f, 0x003f, - 0xe9ea, 0x003f, 0x003f, 0x9650, 0x96c2, 0x003f, 0x93ce, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9d00 .. 0x9dff */ - 0x003f, 0x003f, 0x003f, 0xe9ee, 0x003f, 0x003f, 0xe9ef, 0x93bc, - 0xe9ec, 0xe9eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x89a8, 0x003f, - 0x003f, 0x003f, 0xe9f7, 0x003f, 0x003f, 0xe9f6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8995, 0x003f, 0x003f, 0x003f, 0xe9f4, - 0x003f, 0x003f, 0x003f, 0xe9f3, 0x003f, 0x003f, 0xe9f1, 0x003f, - 0x8a9b, 0x003f, 0xe9f0, 0x8eb0, 0x89a7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8d83, 0x003f, 0x003f, 0xe9fa, 0xe9f9, - 0x003f, 0xe9f8, 0x003f, 0x003f, 0xe9f5, 0x003f, 0xe9fb, 0x003f, - 0xe9fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xea44, 0xea43, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xea45, 0x003f, 0x003f, 0x894c, 0xea40, 0xea41, 0x003f, - 0x8d94, 0x96b7, 0x003f, 0x003f, 0xea42, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfc48, 0x9651, 0x003f, 0x003f, 0xea4a, - 0xfc47, 0x003f, 0xea46, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xea4b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea48, - 0x003f, 0xea47, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c7b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xea4c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xea4d, 0x003f, 0x003f, 0x003f, - 0x003f, 0xea4e, 0x003f, 0xea49, 0x003f, 0x003f, 0x003f, 0xe9f2, - 0x003f, 0x003f, 0xea4f, 0x003f, 0x92df, 0x003f, 0x003f, 0x003f, - 0xea53, 0x003f, 0xea54, 0xea52, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xea51, 0xea57, 0x003f, 0xea50, 0x003f, 0xea55, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea56, - 0x003f, 0x003f, 0x003f, 0xea59, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xea58, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea5b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea5c, 0x003f, 0xea5d, - 0x003f, 0x003f, 0x9868, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xea5a, 0x91e9, 0x8deb, 0x003f, 0x003f, 0xea5e, 0x003f, 0x003f, - /* 0x9e00 .. 0x9eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfc4a, 0xea5f, 0xea60, 0x003f, 0x003f, 0xea61, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea62, 0x003f, 0x003f, - 0x8cb2, 0xea63, 0x003f, 0x003f, 0x003f, 0xea64, 0x003f, 0x8ead, - 0x003f, 0xea65, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xea66, 0x003f, 0x003f, 0xea67, 0xea68, 0x003f, 0x003f, 0x003f, - 0x003f, 0xea6b, 0xea69, 0x985b, 0x003f, 0xea6a, 0x003f, 0x97ed, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea6c, 0x003f, 0x97d9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea6d, 0x949e, 0x003f, - 0x003f, 0xea6e, 0xea70, 0x003f, 0x003f, 0xea71, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xea6f, 0x8d8d, 0x96cb, 0x9683, 0x9bf5, 0x003f, 0x9f80, 0x969b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x89a9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xea73, 0x8b6f, 0xea74, 0xea75, - 0xea76, 0xfc4b, 0x8d95, 0x003f, 0xea77, 0x003f, 0x003f, 0x003f, - 0xe0d2, 0x96d9, 0x003f, 0x91e1, 0xea78, 0xea7a, 0xea79, 0x003f, - 0xea7b, 0x003f, 0x003f, 0x003f, 0x003f, 0xea7c, 0x003f, 0x003f, - 0xea7d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea7e, - 0x003f, 0x003f, 0x003f, 0x003f, 0xea80, 0x003f, 0xea81, 0xea82, - 0x003f, 0xea83, 0x003f, 0xea84, 0xea85, 0xea86, 0x003f, 0x003f, - /* 0x9f00 .. 0x9fff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea87, - 0xea88, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9343, 0x003f, - 0x003f, 0x003f, 0x003f, 0x8cdb, 0x003f, 0xea8a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x916c, 0xea8b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xea8c, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x9540, 0x003f, 0x003f, 0xea8d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xea8e, 0xe256, 0x003f, 0x003f, 0xe6d8, 0xe8eb, - 0x003f, 0x003f, 0xea8f, 0x003f, 0xea90, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea92, - 0xea93, 0xea94, 0x97ee, 0xea91, 0x003f, 0x003f, 0xea95, 0xea96, - 0x003f, 0x003f, 0xea98, 0x003f, 0xea97, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xea9a, 0x003f, 0x003f, 0x003f, 0xea9b, 0xea99, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97b4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea9c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xea9d, 0xe273, 0x003f, 0x003f, - 0xea9e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xe000 .. 0xe0ff */ - 0xf040, 0xf041, 0xf042, 0xf043, 0xf044, 0xf045, 0xf046, 0xf047, - 0xf048, 0xf049, 0xf04a, 0xf04b, 0xf04c, 0xf04d, 0xf04e, 0xf04f, - 0xf050, 0xf051, 0xf052, 0xf053, 0xf054, 0xf055, 0xf056, 0xf057, - 0xf058, 0xf059, 0xf05a, 0xf05b, 0xf05c, 0xf05d, 0xf05e, 0xf05f, - 0xf060, 0xf061, 0xf062, 0xf063, 0xf064, 0xf065, 0xf066, 0xf067, - 0xf068, 0xf069, 0xf06a, 0xf06b, 0xf06c, 0xf06d, 0xf06e, 0xf06f, - 0xf070, 0xf071, 0xf072, 0xf073, 0xf074, 0xf075, 0xf076, 0xf077, - 0xf078, 0xf079, 0xf07a, 0xf07b, 0xf07c, 0xf07d, 0xf07e, 0xf080, - 0xf081, 0xf082, 0xf083, 0xf084, 0xf085, 0xf086, 0xf087, 0xf088, - 0xf089, 0xf08a, 0xf08b, 0xf08c, 0xf08d, 0xf08e, 0xf08f, 0xf090, - 0xf091, 0xf092, 0xf093, 0xf094, 0xf095, 0xf096, 0xf097, 0xf098, - 0xf099, 0xf09a, 0xf09b, 0xf09c, 0xf09d, 0xf09e, 0xf09f, 0xf0a0, - 0xf0a1, 0xf0a2, 0xf0a3, 0xf0a4, 0xf0a5, 0xf0a6, 0xf0a7, 0xf0a8, - 0xf0a9, 0xf0aa, 0xf0ab, 0xf0ac, 0xf0ad, 0xf0ae, 0xf0af, 0xf0b0, - 0xf0b1, 0xf0b2, 0xf0b3, 0xf0b4, 0xf0b5, 0xf0b6, 0xf0b7, 0xf0b8, - 0xf0b9, 0xf0ba, 0xf0bb, 0xf0bc, 0xf0bd, 0xf0be, 0xf0bf, 0xf0c0, - 0xf0c1, 0xf0c2, 0xf0c3, 0xf0c4, 0xf0c5, 0xf0c6, 0xf0c7, 0xf0c8, - 0xf0c9, 0xf0ca, 0xf0cb, 0xf0cc, 0xf0cd, 0xf0ce, 0xf0cf, 0xf0d0, - 0xf0d1, 0xf0d2, 0xf0d3, 0xf0d4, 0xf0d5, 0xf0d6, 0xf0d7, 0xf0d8, - 0xf0d9, 0xf0da, 0xf0db, 0xf0dc, 0xf0dd, 0xf0de, 0xf0df, 0xf0e0, - 0xf0e1, 0xf0e2, 0xf0e3, 0xf0e4, 0xf0e5, 0xf0e6, 0xf0e7, 0xf0e8, - 0xf0e9, 0xf0ea, 0xf0eb, 0xf0ec, 0xf0ed, 0xf0ee, 0xf0ef, 0xf0f0, - 0xf0f1, 0xf0f2, 0xf0f3, 0xf0f4, 0xf0f5, 0xf0f6, 0xf0f7, 0xf0f8, - 0xf0f9, 0xf0fa, 0xf0fb, 0xf0fc, 0xf140, 0xf141, 0xf142, 0xf143, - 0xf144, 0xf145, 0xf146, 0xf147, 0xf148, 0xf149, 0xf14a, 0xf14b, - 0xf14c, 0xf14d, 0xf14e, 0xf14f, 0xf150, 0xf151, 0xf152, 0xf153, - 0xf154, 0xf155, 0xf156, 0xf157, 0xf158, 0xf159, 0xf15a, 0xf15b, - 0xf15c, 0xf15d, 0xf15e, 0xf15f, 0xf160, 0xf161, 0xf162, 0xf163, - 0xf164, 0xf165, 0xf166, 0xf167, 0xf168, 0xf169, 0xf16a, 0xf16b, - 0xf16c, 0xf16d, 0xf16e, 0xf16f, 0xf170, 0xf171, 0xf172, 0xf173, - 0xf174, 0xf175, 0xf176, 0xf177, 0xf178, 0xf179, 0xf17a, 0xf17b, - 0xf17c, 0xf17d, 0xf17e, 0xf180, 0xf181, 0xf182, 0xf183, 0xf184, - /* 0xe100 .. 0xe1ff */ - 0xf185, 0xf186, 0xf187, 0xf188, 0xf189, 0xf18a, 0xf18b, 0xf18c, - 0xf18d, 0xf18e, 0xf18f, 0xf190, 0xf191, 0xf192, 0xf193, 0xf194, - 0xf195, 0xf196, 0xf197, 0xf198, 0xf199, 0xf19a, 0xf19b, 0xf19c, - 0xf19d, 0xf19e, 0xf19f, 0xf1a0, 0xf1a1, 0xf1a2, 0xf1a3, 0xf1a4, - 0xf1a5, 0xf1a6, 0xf1a7, 0xf1a8, 0xf1a9, 0xf1aa, 0xf1ab, 0xf1ac, - 0xf1ad, 0xf1ae, 0xf1af, 0xf1b0, 0xf1b1, 0xf1b2, 0xf1b3, 0xf1b4, - 0xf1b5, 0xf1b6, 0xf1b7, 0xf1b8, 0xf1b9, 0xf1ba, 0xf1bb, 0xf1bc, - 0xf1bd, 0xf1be, 0xf1bf, 0xf1c0, 0xf1c1, 0xf1c2, 0xf1c3, 0xf1c4, - 0xf1c5, 0xf1c6, 0xf1c7, 0xf1c8, 0xf1c9, 0xf1ca, 0xf1cb, 0xf1cc, - 0xf1cd, 0xf1ce, 0xf1cf, 0xf1d0, 0xf1d1, 0xf1d2, 0xf1d3, 0xf1d4, - 0xf1d5, 0xf1d6, 0xf1d7, 0xf1d8, 0xf1d9, 0xf1da, 0xf1db, 0xf1dc, - 0xf1dd, 0xf1de, 0xf1df, 0xf1e0, 0xf1e1, 0xf1e2, 0xf1e3, 0xf1e4, - 0xf1e5, 0xf1e6, 0xf1e7, 0xf1e8, 0xf1e9, 0xf1ea, 0xf1eb, 0xf1ec, - 0xf1ed, 0xf1ee, 0xf1ef, 0xf1f0, 0xf1f1, 0xf1f2, 0xf1f3, 0xf1f4, - 0xf1f5, 0xf1f6, 0xf1f7, 0xf1f8, 0xf1f9, 0xf1fa, 0xf1fb, 0xf1fc, - 0xf240, 0xf241, 0xf242, 0xf243, 0xf244, 0xf245, 0xf246, 0xf247, - 0xf248, 0xf249, 0xf24a, 0xf24b, 0xf24c, 0xf24d, 0xf24e, 0xf24f, - 0xf250, 0xf251, 0xf252, 0xf253, 0xf254, 0xf255, 0xf256, 0xf257, - 0xf258, 0xf259, 0xf25a, 0xf25b, 0xf25c, 0xf25d, 0xf25e, 0xf25f, - 0xf260, 0xf261, 0xf262, 0xf263, 0xf264, 0xf265, 0xf266, 0xf267, - 0xf268, 0xf269, 0xf26a, 0xf26b, 0xf26c, 0xf26d, 0xf26e, 0xf26f, - 0xf270, 0xf271, 0xf272, 0xf273, 0xf274, 0xf275, 0xf276, 0xf277, - 0xf278, 0xf279, 0xf27a, 0xf27b, 0xf27c, 0xf27d, 0xf27e, 0xf280, - 0xf281, 0xf282, 0xf283, 0xf284, 0xf285, 0xf286, 0xf287, 0xf288, - 0xf289, 0xf28a, 0xf28b, 0xf28c, 0xf28d, 0xf28e, 0xf28f, 0xf290, - 0xf291, 0xf292, 0xf293, 0xf294, 0xf295, 0xf296, 0xf297, 0xf298, - 0xf299, 0xf29a, 0xf29b, 0xf29c, 0xf29d, 0xf29e, 0xf29f, 0xf2a0, - 0xf2a1, 0xf2a2, 0xf2a3, 0xf2a4, 0xf2a5, 0xf2a6, 0xf2a7, 0xf2a8, - 0xf2a9, 0xf2aa, 0xf2ab, 0xf2ac, 0xf2ad, 0xf2ae, 0xf2af, 0xf2b0, - 0xf2b1, 0xf2b2, 0xf2b3, 0xf2b4, 0xf2b5, 0xf2b6, 0xf2b7, 0xf2b8, - 0xf2b9, 0xf2ba, 0xf2bb, 0xf2bc, 0xf2bd, 0xf2be, 0xf2bf, 0xf2c0, - 0xf2c1, 0xf2c2, 0xf2c3, 0xf2c4, 0xf2c5, 0xf2c6, 0xf2c7, 0xf2c8, - /* 0xe200 .. 0xe2ff */ - 0xf2c9, 0xf2ca, 0xf2cb, 0xf2cc, 0xf2cd, 0xf2ce, 0xf2cf, 0xf2d0, - 0xf2d1, 0xf2d2, 0xf2d3, 0xf2d4, 0xf2d5, 0xf2d6, 0xf2d7, 0xf2d8, - 0xf2d9, 0xf2da, 0xf2db, 0xf2dc, 0xf2dd, 0xf2de, 0xf2df, 0xf2e0, - 0xf2e1, 0xf2e2, 0xf2e3, 0xf2e4, 0xf2e5, 0xf2e6, 0xf2e7, 0xf2e8, - 0xf2e9, 0xf2ea, 0xf2eb, 0xf2ec, 0xf2ed, 0xf2ee, 0xf2ef, 0xf2f0, - 0xf2f1, 0xf2f2, 0xf2f3, 0xf2f4, 0xf2f5, 0xf2f6, 0xf2f7, 0xf2f8, - 0xf2f9, 0xf2fa, 0xf2fb, 0xf2fc, 0xf340, 0xf341, 0xf342, 0xf343, - 0xf344, 0xf345, 0xf346, 0xf347, 0xf348, 0xf349, 0xf34a, 0xf34b, - 0xf34c, 0xf34d, 0xf34e, 0xf34f, 0xf350, 0xf351, 0xf352, 0xf353, - 0xf354, 0xf355, 0xf356, 0xf357, 0xf358, 0xf359, 0xf35a, 0xf35b, - 0xf35c, 0xf35d, 0xf35e, 0xf35f, 0xf360, 0xf361, 0xf362, 0xf363, - 0xf364, 0xf365, 0xf366, 0xf367, 0xf368, 0xf369, 0xf36a, 0xf36b, - 0xf36c, 0xf36d, 0xf36e, 0xf36f, 0xf370, 0xf371, 0xf372, 0xf373, - 0xf374, 0xf375, 0xf376, 0xf377, 0xf378, 0xf379, 0xf37a, 0xf37b, - 0xf37c, 0xf37d, 0xf37e, 0xf380, 0xf381, 0xf382, 0xf383, 0xf384, - 0xf385, 0xf386, 0xf387, 0xf388, 0xf389, 0xf38a, 0xf38b, 0xf38c, - 0xf38d, 0xf38e, 0xf38f, 0xf390, 0xf391, 0xf392, 0xf393, 0xf394, - 0xf395, 0xf396, 0xf397, 0xf398, 0xf399, 0xf39a, 0xf39b, 0xf39c, - 0xf39d, 0xf39e, 0xf39f, 0xf3a0, 0xf3a1, 0xf3a2, 0xf3a3, 0xf3a4, - 0xf3a5, 0xf3a6, 0xf3a7, 0xf3a8, 0xf3a9, 0xf3aa, 0xf3ab, 0xf3ac, - 0xf3ad, 0xf3ae, 0xf3af, 0xf3b0, 0xf3b1, 0xf3b2, 0xf3b3, 0xf3b4, - 0xf3b5, 0xf3b6, 0xf3b7, 0xf3b8, 0xf3b9, 0xf3ba, 0xf3bb, 0xf3bc, - 0xf3bd, 0xf3be, 0xf3bf, 0xf3c0, 0xf3c1, 0xf3c2, 0xf3c3, 0xf3c4, - 0xf3c5, 0xf3c6, 0xf3c7, 0xf3c8, 0xf3c9, 0xf3ca, 0xf3cb, 0xf3cc, - 0xf3cd, 0xf3ce, 0xf3cf, 0xf3d0, 0xf3d1, 0xf3d2, 0xf3d3, 0xf3d4, - 0xf3d5, 0xf3d6, 0xf3d7, 0xf3d8, 0xf3d9, 0xf3da, 0xf3db, 0xf3dc, - 0xf3dd, 0xf3de, 0xf3df, 0xf3e0, 0xf3e1, 0xf3e2, 0xf3e3, 0xf3e4, - 0xf3e5, 0xf3e6, 0xf3e7, 0xf3e8, 0xf3e9, 0xf3ea, 0xf3eb, 0xf3ec, - 0xf3ed, 0xf3ee, 0xf3ef, 0xf3f0, 0xf3f1, 0xf3f2, 0xf3f3, 0xf3f4, - 0xf3f5, 0xf3f6, 0xf3f7, 0xf3f8, 0xf3f9, 0xf3fa, 0xf3fb, 0xf3fc, - 0xf440, 0xf441, 0xf442, 0xf443, 0xf444, 0xf445, 0xf446, 0xf447, - 0xf448, 0xf449, 0xf44a, 0xf44b, 0xf44c, 0xf44d, 0xf44e, 0xf44f, - /* 0xe300 .. 0xe3ff */ - 0xf450, 0xf451, 0xf452, 0xf453, 0xf454, 0xf455, 0xf456, 0xf457, - 0xf458, 0xf459, 0xf45a, 0xf45b, 0xf45c, 0xf45d, 0xf45e, 0xf45f, - 0xf460, 0xf461, 0xf462, 0xf463, 0xf464, 0xf465, 0xf466, 0xf467, - 0xf468, 0xf469, 0xf46a, 0xf46b, 0xf46c, 0xf46d, 0xf46e, 0xf46f, - 0xf470, 0xf471, 0xf472, 0xf473, 0xf474, 0xf475, 0xf476, 0xf477, - 0xf478, 0xf479, 0xf47a, 0xf47b, 0xf47c, 0xf47d, 0xf47e, 0xf480, - 0xf481, 0xf482, 0xf483, 0xf484, 0xf485, 0xf486, 0xf487, 0xf488, - 0xf489, 0xf48a, 0xf48b, 0xf48c, 0xf48d, 0xf48e, 0xf48f, 0xf490, - 0xf491, 0xf492, 0xf493, 0xf494, 0xf495, 0xf496, 0xf497, 0xf498, - 0xf499, 0xf49a, 0xf49b, 0xf49c, 0xf49d, 0xf49e, 0xf49f, 0xf4a0, - 0xf4a1, 0xf4a2, 0xf4a3, 0xf4a4, 0xf4a5, 0xf4a6, 0xf4a7, 0xf4a8, - 0xf4a9, 0xf4aa, 0xf4ab, 0xf4ac, 0xf4ad, 0xf4ae, 0xf4af, 0xf4b0, - 0xf4b1, 0xf4b2, 0xf4b3, 0xf4b4, 0xf4b5, 0xf4b6, 0xf4b7, 0xf4b8, - 0xf4b9, 0xf4ba, 0xf4bb, 0xf4bc, 0xf4bd, 0xf4be, 0xf4bf, 0xf4c0, - 0xf4c1, 0xf4c2, 0xf4c3, 0xf4c4, 0xf4c5, 0xf4c6, 0xf4c7, 0xf4c8, - 0xf4c9, 0xf4ca, 0xf4cb, 0xf4cc, 0xf4cd, 0xf4ce, 0xf4cf, 0xf4d0, - 0xf4d1, 0xf4d2, 0xf4d3, 0xf4d4, 0xf4d5, 0xf4d6, 0xf4d7, 0xf4d8, - 0xf4d9, 0xf4da, 0xf4db, 0xf4dc, 0xf4dd, 0xf4de, 0xf4df, 0xf4e0, - 0xf4e1, 0xf4e2, 0xf4e3, 0xf4e4, 0xf4e5, 0xf4e6, 0xf4e7, 0xf4e8, - 0xf4e9, 0xf4ea, 0xf4eb, 0xf4ec, 0xf4ed, 0xf4ee, 0xf4ef, 0xf4f0, - 0xf4f1, 0xf4f2, 0xf4f3, 0xf4f4, 0xf4f5, 0xf4f6, 0xf4f7, 0xf4f8, - 0xf4f9, 0xf4fa, 0xf4fb, 0xf4fc, 0xf540, 0xf541, 0xf542, 0xf543, - 0xf544, 0xf545, 0xf546, 0xf547, 0xf548, 0xf549, 0xf54a, 0xf54b, - 0xf54c, 0xf54d, 0xf54e, 0xf54f, 0xf550, 0xf551, 0xf552, 0xf553, - 0xf554, 0xf555, 0xf556, 0xf557, 0xf558, 0xf559, 0xf55a, 0xf55b, - 0xf55c, 0xf55d, 0xf55e, 0xf55f, 0xf560, 0xf561, 0xf562, 0xf563, - 0xf564, 0xf565, 0xf566, 0xf567, 0xf568, 0xf569, 0xf56a, 0xf56b, - 0xf56c, 0xf56d, 0xf56e, 0xf56f, 0xf570, 0xf571, 0xf572, 0xf573, - 0xf574, 0xf575, 0xf576, 0xf577, 0xf578, 0xf579, 0xf57a, 0xf57b, - 0xf57c, 0xf57d, 0xf57e, 0xf580, 0xf581, 0xf582, 0xf583, 0xf584, - 0xf585, 0xf586, 0xf587, 0xf588, 0xf589, 0xf58a, 0xf58b, 0xf58c, - 0xf58d, 0xf58e, 0xf58f, 0xf590, 0xf591, 0xf592, 0xf593, 0xf594, - /* 0xe400 .. 0xe4ff */ - 0xf595, 0xf596, 0xf597, 0xf598, 0xf599, 0xf59a, 0xf59b, 0xf59c, - 0xf59d, 0xf59e, 0xf59f, 0xf5a0, 0xf5a1, 0xf5a2, 0xf5a3, 0xf5a4, - 0xf5a5, 0xf5a6, 0xf5a7, 0xf5a8, 0xf5a9, 0xf5aa, 0xf5ab, 0xf5ac, - 0xf5ad, 0xf5ae, 0xf5af, 0xf5b0, 0xf5b1, 0xf5b2, 0xf5b3, 0xf5b4, - 0xf5b5, 0xf5b6, 0xf5b7, 0xf5b8, 0xf5b9, 0xf5ba, 0xf5bb, 0xf5bc, - 0xf5bd, 0xf5be, 0xf5bf, 0xf5c0, 0xf5c1, 0xf5c2, 0xf5c3, 0xf5c4, - 0xf5c5, 0xf5c6, 0xf5c7, 0xf5c8, 0xf5c9, 0xf5ca, 0xf5cb, 0xf5cc, - 0xf5cd, 0xf5ce, 0xf5cf, 0xf5d0, 0xf5d1, 0xf5d2, 0xf5d3, 0xf5d4, - 0xf5d5, 0xf5d6, 0xf5d7, 0xf5d8, 0xf5d9, 0xf5da, 0xf5db, 0xf5dc, - 0xf5dd, 0xf5de, 0xf5df, 0xf5e0, 0xf5e1, 0xf5e2, 0xf5e3, 0xf5e4, - 0xf5e5, 0xf5e6, 0xf5e7, 0xf5e8, 0xf5e9, 0xf5ea, 0xf5eb, 0xf5ec, - 0xf5ed, 0xf5ee, 0xf5ef, 0xf5f0, 0xf5f1, 0xf5f2, 0xf5f3, 0xf5f4, - 0xf5f5, 0xf5f6, 0xf5f7, 0xf5f8, 0xf5f9, 0xf5fa, 0xf5fb, 0xf5fc, - 0xf640, 0xf641, 0xf642, 0xf643, 0xf644, 0xf645, 0xf646, 0xf647, - 0xf648, 0xf649, 0xf64a, 0xf64b, 0xf64c, 0xf64d, 0xf64e, 0xf64f, - 0xf650, 0xf651, 0xf652, 0xf653, 0xf654, 0xf655, 0xf656, 0xf657, - 0xf658, 0xf659, 0xf65a, 0xf65b, 0xf65c, 0xf65d, 0xf65e, 0xf65f, - 0xf660, 0xf661, 0xf662, 0xf663, 0xf664, 0xf665, 0xf666, 0xf667, - 0xf668, 0xf669, 0xf66a, 0xf66b, 0xf66c, 0xf66d, 0xf66e, 0xf66f, - 0xf670, 0xf671, 0xf672, 0xf673, 0xf674, 0xf675, 0xf676, 0xf677, - 0xf678, 0xf679, 0xf67a, 0xf67b, 0xf67c, 0xf67d, 0xf67e, 0xf680, - 0xf681, 0xf682, 0xf683, 0xf684, 0xf685, 0xf686, 0xf687, 0xf688, - 0xf689, 0xf68a, 0xf68b, 0xf68c, 0xf68d, 0xf68e, 0xf68f, 0xf690, - 0xf691, 0xf692, 0xf693, 0xf694, 0xf695, 0xf696, 0xf697, 0xf698, - 0xf699, 0xf69a, 0xf69b, 0xf69c, 0xf69d, 0xf69e, 0xf69f, 0xf6a0, - 0xf6a1, 0xf6a2, 0xf6a3, 0xf6a4, 0xf6a5, 0xf6a6, 0xf6a7, 0xf6a8, - 0xf6a9, 0xf6aa, 0xf6ab, 0xf6ac, 0xf6ad, 0xf6ae, 0xf6af, 0xf6b0, - 0xf6b1, 0xf6b2, 0xf6b3, 0xf6b4, 0xf6b5, 0xf6b6, 0xf6b7, 0xf6b8, - 0xf6b9, 0xf6ba, 0xf6bb, 0xf6bc, 0xf6bd, 0xf6be, 0xf6bf, 0xf6c0, - 0xf6c1, 0xf6c2, 0xf6c3, 0xf6c4, 0xf6c5, 0xf6c6, 0xf6c7, 0xf6c8, - 0xf6c9, 0xf6ca, 0xf6cb, 0xf6cc, 0xf6cd, 0xf6ce, 0xf6cf, 0xf6d0, - 0xf6d1, 0xf6d2, 0xf6d3, 0xf6d4, 0xf6d5, 0xf6d6, 0xf6d7, 0xf6d8, - /* 0xe500 .. 0xe5ff */ - 0xf6d9, 0xf6da, 0xf6db, 0xf6dc, 0xf6dd, 0xf6de, 0xf6df, 0xf6e0, - 0xf6e1, 0xf6e2, 0xf6e3, 0xf6e4, 0xf6e5, 0xf6e6, 0xf6e7, 0xf6e8, - 0xf6e9, 0xf6ea, 0xf6eb, 0xf6ec, 0xf6ed, 0xf6ee, 0xf6ef, 0xf6f0, - 0xf6f1, 0xf6f2, 0xf6f3, 0xf6f4, 0xf6f5, 0xf6f6, 0xf6f7, 0xf6f8, - 0xf6f9, 0xf6fa, 0xf6fb, 0xf6fc, 0xf740, 0xf741, 0xf742, 0xf743, - 0xf744, 0xf745, 0xf746, 0xf747, 0xf748, 0xf749, 0xf74a, 0xf74b, - 0xf74c, 0xf74d, 0xf74e, 0xf74f, 0xf750, 0xf751, 0xf752, 0xf753, - 0xf754, 0xf755, 0xf756, 0xf757, 0xf758, 0xf759, 0xf75a, 0xf75b, - 0xf75c, 0xf75d, 0xf75e, 0xf75f, 0xf760, 0xf761, 0xf762, 0xf763, - 0xf764, 0xf765, 0xf766, 0xf767, 0xf768, 0xf769, 0xf76a, 0xf76b, - 0xf76c, 0xf76d, 0xf76e, 0xf76f, 0xf770, 0xf771, 0xf772, 0xf773, - 0xf774, 0xf775, 0xf776, 0xf777, 0xf778, 0xf779, 0xf77a, 0xf77b, - 0xf77c, 0xf77d, 0xf77e, 0xf780, 0xf781, 0xf782, 0xf783, 0xf784, - 0xf785, 0xf786, 0xf787, 0xf788, 0xf789, 0xf78a, 0xf78b, 0xf78c, - 0xf78d, 0xf78e, 0xf78f, 0xf790, 0xf791, 0xf792, 0xf793, 0xf794, - 0xf795, 0xf796, 0xf797, 0xf798, 0xf799, 0xf79a, 0xf79b, 0xf79c, - 0xf79d, 0xf79e, 0xf79f, 0xf7a0, 0xf7a1, 0xf7a2, 0xf7a3, 0xf7a4, - 0xf7a5, 0xf7a6, 0xf7a7, 0xf7a8, 0xf7a9, 0xf7aa, 0xf7ab, 0xf7ac, - 0xf7ad, 0xf7ae, 0xf7af, 0xf7b0, 0xf7b1, 0xf7b2, 0xf7b3, 0xf7b4, - 0xf7b5, 0xf7b6, 0xf7b7, 0xf7b8, 0xf7b9, 0xf7ba, 0xf7bb, 0xf7bc, - 0xf7bd, 0xf7be, 0xf7bf, 0xf7c0, 0xf7c1, 0xf7c2, 0xf7c3, 0xf7c4, - 0xf7c5, 0xf7c6, 0xf7c7, 0xf7c8, 0xf7c9, 0xf7ca, 0xf7cb, 0xf7cc, - 0xf7cd, 0xf7ce, 0xf7cf, 0xf7d0, 0xf7d1, 0xf7d2, 0xf7d3, 0xf7d4, - 0xf7d5, 0xf7d6, 0xf7d7, 0xf7d8, 0xf7d9, 0xf7da, 0xf7db, 0xf7dc, - 0xf7dd, 0xf7de, 0xf7df, 0xf7e0, 0xf7e1, 0xf7e2, 0xf7e3, 0xf7e4, - 0xf7e5, 0xf7e6, 0xf7e7, 0xf7e8, 0xf7e9, 0xf7ea, 0xf7eb, 0xf7ec, - 0xf7ed, 0xf7ee, 0xf7ef, 0xf7f0, 0xf7f1, 0xf7f2, 0xf7f3, 0xf7f4, - 0xf7f5, 0xf7f6, 0xf7f7, 0xf7f8, 0xf7f9, 0xf7fa, 0xf7fb, 0xf7fc, - 0xf840, 0xf841, 0xf842, 0xf843, 0xf844, 0xf845, 0xf846, 0xf847, - 0xf848, 0xf849, 0xf84a, 0xf84b, 0xf84c, 0xf84d, 0xf84e, 0xf84f, - 0xf850, 0xf851, 0xf852, 0xf853, 0xf854, 0xf855, 0xf856, 0xf857, - 0xf858, 0xf859, 0xf85a, 0xf85b, 0xf85c, 0xf85d, 0xf85e, 0xf85f, - /* 0xe600 .. 0xe6ff */ - 0xf860, 0xf861, 0xf862, 0xf863, 0xf864, 0xf865, 0xf866, 0xf867, - 0xf868, 0xf869, 0xf86a, 0xf86b, 0xf86c, 0xf86d, 0xf86e, 0xf86f, - 0xf870, 0xf871, 0xf872, 0xf873, 0xf874, 0xf875, 0xf876, 0xf877, - 0xf878, 0xf879, 0xf87a, 0xf87b, 0xf87c, 0xf87d, 0xf87e, 0xf880, - 0xf881, 0xf882, 0xf883, 0xf884, 0xf885, 0xf886, 0xf887, 0xf888, - 0xf889, 0xf88a, 0xf88b, 0xf88c, 0xf88d, 0xf88e, 0xf88f, 0xf890, - 0xf891, 0xf892, 0xf893, 0xf894, 0xf895, 0xf896, 0xf897, 0xf898, - 0xf899, 0xf89a, 0xf89b, 0xf89c, 0xf89d, 0xf89e, 0xf89f, 0xf8a0, - 0xf8a1, 0xf8a2, 0xf8a3, 0xf8a4, 0xf8a5, 0xf8a6, 0xf8a7, 0xf8a8, - 0xf8a9, 0xf8aa, 0xf8ab, 0xf8ac, 0xf8ad, 0xf8ae, 0xf8af, 0xf8b0, - 0xf8b1, 0xf8b2, 0xf8b3, 0xf8b4, 0xf8b5, 0xf8b6, 0xf8b7, 0xf8b8, - 0xf8b9, 0xf8ba, 0xf8bb, 0xf8bc, 0xf8bd, 0xf8be, 0xf8bf, 0xf8c0, - 0xf8c1, 0xf8c2, 0xf8c3, 0xf8c4, 0xf8c5, 0xf8c6, 0xf8c7, 0xf8c8, - 0xf8c9, 0xf8ca, 0xf8cb, 0xf8cc, 0xf8cd, 0xf8ce, 0xf8cf, 0xf8d0, - 0xf8d1, 0xf8d2, 0xf8d3, 0xf8d4, 0xf8d5, 0xf8d6, 0xf8d7, 0xf8d8, - 0xf8d9, 0xf8da, 0xf8db, 0xf8dc, 0xf8dd, 0xf8de, 0xf8df, 0xf8e0, - 0xf8e1, 0xf8e2, 0xf8e3, 0xf8e4, 0xf8e5, 0xf8e6, 0xf8e7, 0xf8e8, - 0xf8e9, 0xf8ea, 0xf8eb, 0xf8ec, 0xf8ed, 0xf8ee, 0xf8ef, 0xf8f0, - 0xf8f1, 0xf8f2, 0xf8f3, 0xf8f4, 0xf8f5, 0xf8f6, 0xf8f7, 0xf8f8, - 0xf8f9, 0xf8fa, 0xf8fb, 0xf8fc, 0xf940, 0xf941, 0xf942, 0xf943, - 0xf944, 0xf945, 0xf946, 0xf947, 0xf948, 0xf949, 0xf94a, 0xf94b, - 0xf94c, 0xf94d, 0xf94e, 0xf94f, 0xf950, 0xf951, 0xf952, 0xf953, - 0xf954, 0xf955, 0xf956, 0xf957, 0xf958, 0xf959, 0xf95a, 0xf95b, - 0xf95c, 0xf95d, 0xf95e, 0xf95f, 0xf960, 0xf961, 0xf962, 0xf963, - 0xf964, 0xf965, 0xf966, 0xf967, 0xf968, 0xf969, 0xf96a, 0xf96b, - 0xf96c, 0xf96d, 0xf96e, 0xf96f, 0xf970, 0xf971, 0xf972, 0xf973, - 0xf974, 0xf975, 0xf976, 0xf977, 0xf978, 0xf979, 0xf97a, 0xf97b, - 0xf97c, 0xf97d, 0xf97e, 0xf980, 0xf981, 0xf982, 0xf983, 0xf984, - 0xf985, 0xf986, 0xf987, 0xf988, 0xf989, 0xf98a, 0xf98b, 0xf98c, - 0xf98d, 0xf98e, 0xf98f, 0xf990, 0xf991, 0xf992, 0xf993, 0xf994, - 0xf995, 0xf996, 0xf997, 0xf998, 0xf999, 0xf99a, 0xf99b, 0xf99c, - 0xf99d, 0xf99e, 0xf99f, 0xf9a0, 0xf9a1, 0xf9a2, 0xf9a3, 0xf9a4, - /* 0xe700 .. 0xe7ff */ - 0xf9a5, 0xf9a6, 0xf9a7, 0xf9a8, 0xf9a9, 0xf9aa, 0xf9ab, 0xf9ac, - 0xf9ad, 0xf9ae, 0xf9af, 0xf9b0, 0xf9b1, 0xf9b2, 0xf9b3, 0xf9b4, - 0xf9b5, 0xf9b6, 0xf9b7, 0xf9b8, 0xf9b9, 0xf9ba, 0xf9bb, 0xf9bc, - 0xf9bd, 0xf9be, 0xf9bf, 0xf9c0, 0xf9c1, 0xf9c2, 0xf9c3, 0xf9c4, - 0xf9c5, 0xf9c6, 0xf9c7, 0xf9c8, 0xf9c9, 0xf9ca, 0xf9cb, 0xf9cc, - 0xf9cd, 0xf9ce, 0xf9cf, 0xf9d0, 0xf9d1, 0xf9d2, 0xf9d3, 0xf9d4, - 0xf9d5, 0xf9d6, 0xf9d7, 0xf9d8, 0xf9d9, 0xf9da, 0xf9db, 0xf9dc, - 0xf9dd, 0xf9de, 0xf9df, 0xf9e0, 0xf9e1, 0xf9e2, 0xf9e3, 0xf9e4, - 0xf9e5, 0xf9e6, 0xf9e7, 0xf9e8, 0xf9e9, 0xf9ea, 0xf9eb, 0xf9ec, - 0xf9ed, 0xf9ee, 0xf9ef, 0xf9f0, 0xf9f1, 0xf9f2, 0xf9f3, 0xf9f4, - 0xf9f5, 0xf9f6, 0xf9f7, 0xf9f8, 0xf9f9, 0xf9fa, 0xf9fb, 0xf9fc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xf800 .. 0xf8ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x00a0, 0x00fd, 0x00fe, 0x00ff, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xf900 .. 0xf9ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfae0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfbe9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xfa00 .. 0xfaff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfa90, 0xfa9b, - 0xfa9c, 0xfab1, 0xfad8, 0xfae8, 0xfaea, 0xfb58, 0xfb5e, 0xfb75, - 0xfb7d, 0xfb7e, 0xfb80, 0xfb82, 0xfb86, 0xfb89, 0xfb92, 0xfb9d, - 0xfb9f, 0xfba0, 0xfba9, 0xfbb1, 0xfbb3, 0xfbb4, 0xfbb7, 0xfbd3, - 0xfbda, 0xfbea, 0xfbf6, 0xfbf7, 0xfbf9, 0xfc49, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xff00 .. 0xffff */ - 0x003f, 0x8149, 0xfa57, 0x8194, 0x8190, 0x8193, 0x8195, 0xfa56, - 0x8169, 0x816a, 0x8196, 0x817b, 0x8143, 0x817c, 0x8144, 0x815e, - 0x824f, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256, - 0x8257, 0x8258, 0x8146, 0x8147, 0x8183, 0x8181, 0x8184, 0x8148, - 0x8197, 0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, - 0x8267, 0x8268, 0x8269, 0x826a, 0x826b, 0x826c, 0x826d, 0x826e, - 0x826f, 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, 0x8275, 0x8276, - 0x8277, 0x8278, 0x8279, 0x816d, 0x815f, 0x816e, 0x814f, 0x8151, - 0x814d, 0x8281, 0x8282, 0x8283, 0x8284, 0x8285, 0x8286, 0x8287, - 0x8288, 0x8289, 0x828a, 0x828b, 0x828c, 0x828d, 0x828e, 0x828f, - 0x8290, 0x8291, 0x8292, 0x8293, 0x8294, 0x8295, 0x8296, 0x8297, - 0x8298, 0x8299, 0x829a, 0x816f, 0x8162, 0x8170, 0x8160, 0x003f, - 0x003f, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8191, 0x8192, 0x81ca, 0x8150, 0xfa55, 0x818f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* defaults */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x6b00, 0x6b00, 0x0100, 0x0200, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x0300, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x0a00, 0x6b00, 0x0b00, 0x0c00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x0d00, 0x0e00, - 0x0f00, 0x1000, 0x1100, 0x1200, 0x1300, 0x1400, 0x1500, 0x1600, - 0x1700, 0x1800, 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, - 0x1f00, 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, - 0x2700, 0x2800, 0x2900, 0x2a00, 0x2b00, 0x2c00, 0x2d00, 0x2e00, - 0x2f00, 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, - 0x3700, 0x3800, 0x3900, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, - 0x3f00, 0x4000, 0x4100, 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, - 0x4700, 0x4800, 0x4900, 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, - 0x4f00, 0x5000, 0x5100, 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, - 0x5700, 0x5800, 0x5900, 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x5f00, 0x6000, 0x6100, 0x6200, 0x6300, 0x6400, 0x6500, 0x6600, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, - 0x6700, 0x6800, 0x6900, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6a00 -}; - -const struct dbcs_table cptable_932 = -{ - { 932, 2, 0x003f, 0x30fb, "ANSI/OEM Japanese Shift-JIS" }, - cp2uni, - cp2uni_leadbytes, - uni2cp_low, - uni2cp_high, - { - 0x81, 0x9f, 0xe0, 0xfc, 0x00, 0x00 - } -}; diff --git a/reactos/tools/unicode/c_936.c b/reactos/tools/unicode/c_936.c deleted file mode 100644 index 6760d289c73..00000000000 --- a/reactos/tools/unicode/c_936.c +++ /dev/null @@ -1,8016 +0,0 @@ -/* code page 936 (ANSI/OEM Simplified Chinese GBK) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit936.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[32512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x20ac, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf8f5, - /* lead byte 81 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x4e02, 0x4e04, 0x4e05, 0x4e06, 0x4e0f, 0x4e12, 0x4e17, 0x4e1f, - 0x4e20, 0x4e21, 0x4e23, 0x4e26, 0x4e29, 0x4e2e, 0x4e2f, 0x4e31, - 0x4e33, 0x4e35, 0x4e37, 0x4e3c, 0x4e40, 0x4e41, 0x4e42, 0x4e44, - 0x4e46, 0x4e4a, 0x4e51, 0x4e55, 0x4e57, 0x4e5a, 0x4e5b, 0x4e62, - 0x4e63, 0x4e64, 0x4e65, 0x4e67, 0x4e68, 0x4e6a, 0x4e6b, 0x4e6c, - 0x4e6d, 0x4e6e, 0x4e6f, 0x4e72, 0x4e74, 0x4e75, 0x4e76, 0x4e77, - 0x4e78, 0x4e79, 0x4e7a, 0x4e7b, 0x4e7c, 0x4e7d, 0x4e7f, 0x4e80, - 0x4e81, 0x4e82, 0x4e83, 0x4e84, 0x4e85, 0x4e87, 0x4e8a, 0x003f, - 0x4e90, 0x4e96, 0x4e97, 0x4e99, 0x4e9c, 0x4e9d, 0x4e9e, 0x4ea3, - 0x4eaa, 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb4, 0x4eb6, 0x4eb7, 0x4eb8, - 0x4eb9, 0x4ebc, 0x4ebd, 0x4ebe, 0x4ec8, 0x4ecc, 0x4ecf, 0x4ed0, - 0x4ed2, 0x4eda, 0x4edb, 0x4edc, 0x4ee0, 0x4ee2, 0x4ee6, 0x4ee7, - 0x4ee9, 0x4eed, 0x4eee, 0x4eef, 0x4ef1, 0x4ef4, 0x4ef8, 0x4ef9, - 0x4efa, 0x4efc, 0x4efe, 0x4f00, 0x4f02, 0x4f03, 0x4f04, 0x4f05, - 0x4f06, 0x4f07, 0x4f08, 0x4f0b, 0x4f0c, 0x4f12, 0x4f13, 0x4f14, - 0x4f15, 0x4f16, 0x4f1c, 0x4f1d, 0x4f21, 0x4f23, 0x4f28, 0x4f29, - 0x4f2c, 0x4f2d, 0x4f2e, 0x4f31, 0x4f33, 0x4f35, 0x4f37, 0x4f39, - 0x4f3b, 0x4f3e, 0x4f3f, 0x4f40, 0x4f41, 0x4f42, 0x4f44, 0x4f45, - 0x4f47, 0x4f48, 0x4f49, 0x4f4a, 0x4f4b, 0x4f4c, 0x4f52, 0x4f54, - 0x4f56, 0x4f61, 0x4f62, 0x4f66, 0x4f68, 0x4f6a, 0x4f6b, 0x4f6d, - 0x4f6e, 0x4f71, 0x4f72, 0x4f75, 0x4f77, 0x4f78, 0x4f79, 0x4f7a, - 0x4f7d, 0x4f80, 0x4f81, 0x4f82, 0x4f85, 0x4f86, 0x4f87, 0x4f8a, - 0x4f8c, 0x4f8e, 0x4f90, 0x4f92, 0x4f93, 0x4f95, 0x4f96, 0x4f98, - 0x4f99, 0x4f9a, 0x4f9c, 0x4f9e, 0x4f9f, 0x4fa1, 0x4fa2, 0x003f, - /* lead byte 82 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x4fa4, 0x4fab, 0x4fad, 0x4fb0, 0x4fb1, 0x4fb2, 0x4fb3, 0x4fb4, - 0x4fb6, 0x4fb7, 0x4fb8, 0x4fb9, 0x4fba, 0x4fbb, 0x4fbc, 0x4fbd, - 0x4fbe, 0x4fc0, 0x4fc1, 0x4fc2, 0x4fc6, 0x4fc7, 0x4fc8, 0x4fc9, - 0x4fcb, 0x4fcc, 0x4fcd, 0x4fd2, 0x4fd3, 0x4fd4, 0x4fd5, 0x4fd6, - 0x4fd9, 0x4fdb, 0x4fe0, 0x4fe2, 0x4fe4, 0x4fe5, 0x4fe7, 0x4feb, - 0x4fec, 0x4ff0, 0x4ff2, 0x4ff4, 0x4ff5, 0x4ff6, 0x4ff7, 0x4ff9, - 0x4ffb, 0x4ffc, 0x4ffd, 0x4fff, 0x5000, 0x5001, 0x5002, 0x5003, - 0x5004, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 0x500a, 0x003f, - 0x500b, 0x500e, 0x5010, 0x5011, 0x5013, 0x5015, 0x5016, 0x5017, - 0x501b, 0x501d, 0x501e, 0x5020, 0x5022, 0x5023, 0x5024, 0x5027, - 0x502b, 0x502f, 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035, - 0x5036, 0x5037, 0x5038, 0x5039, 0x503b, 0x503d, 0x503f, 0x5040, - 0x5041, 0x5042, 0x5044, 0x5045, 0x5046, 0x5049, 0x504a, 0x504b, - 0x504d, 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5056, 0x5057, - 0x5058, 0x5059, 0x505b, 0x505d, 0x505e, 0x505f, 0x5060, 0x5061, - 0x5062, 0x5063, 0x5064, 0x5066, 0x5067, 0x5068, 0x5069, 0x506a, - 0x506b, 0x506d, 0x506e, 0x506f, 0x5070, 0x5071, 0x5072, 0x5073, - 0x5074, 0x5075, 0x5078, 0x5079, 0x507a, 0x507c, 0x507d, 0x5081, - 0x5082, 0x5083, 0x5084, 0x5086, 0x5087, 0x5089, 0x508a, 0x508b, - 0x508c, 0x508e, 0x508f, 0x5090, 0x5091, 0x5092, 0x5093, 0x5094, - 0x5095, 0x5096, 0x5097, 0x5098, 0x5099, 0x509a, 0x509b, 0x509c, - 0x509d, 0x509e, 0x509f, 0x50a0, 0x50a1, 0x50a2, 0x50a4, 0x50a6, - 0x50aa, 0x50ab, 0x50ad, 0x50ae, 0x50af, 0x50b0, 0x50b1, 0x50b3, - 0x50b4, 0x50b5, 0x50b6, 0x50b7, 0x50b8, 0x50b9, 0x50bc, 0x003f, - /* lead byte 83 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x50bd, 0x50be, 0x50bf, 0x50c0, 0x50c1, 0x50c2, 0x50c3, 0x50c4, - 0x50c5, 0x50c6, 0x50c7, 0x50c8, 0x50c9, 0x50ca, 0x50cb, 0x50cc, - 0x50cd, 0x50ce, 0x50d0, 0x50d1, 0x50d2, 0x50d3, 0x50d4, 0x50d5, - 0x50d7, 0x50d8, 0x50d9, 0x50db, 0x50dc, 0x50dd, 0x50de, 0x50df, - 0x50e0, 0x50e1, 0x50e2, 0x50e3, 0x50e4, 0x50e5, 0x50e8, 0x50e9, - 0x50ea, 0x50eb, 0x50ef, 0x50f0, 0x50f1, 0x50f2, 0x50f4, 0x50f6, - 0x50f7, 0x50f8, 0x50f9, 0x50fa, 0x50fc, 0x50fd, 0x50fe, 0x50ff, - 0x5100, 0x5101, 0x5102, 0x5103, 0x5104, 0x5105, 0x5108, 0x003f, - 0x5109, 0x510a, 0x510c, 0x510d, 0x510e, 0x510f, 0x5110, 0x5111, - 0x5113, 0x5114, 0x5115, 0x5116, 0x5117, 0x5118, 0x5119, 0x511a, - 0x511b, 0x511c, 0x511d, 0x511e, 0x511f, 0x5120, 0x5122, 0x5123, - 0x5124, 0x5125, 0x5126, 0x5127, 0x5128, 0x5129, 0x512a, 0x512b, - 0x512c, 0x512d, 0x512e, 0x512f, 0x5130, 0x5131, 0x5132, 0x5133, - 0x5134, 0x5135, 0x5136, 0x5137, 0x5138, 0x5139, 0x513a, 0x513b, - 0x513c, 0x513d, 0x513e, 0x5142, 0x5147, 0x514a, 0x514c, 0x514e, - 0x514f, 0x5150, 0x5152, 0x5153, 0x5157, 0x5158, 0x5159, 0x515b, - 0x515d, 0x515e, 0x515f, 0x5160, 0x5161, 0x5163, 0x5164, 0x5166, - 0x5167, 0x5169, 0x516a, 0x516f, 0x5172, 0x517a, 0x517e, 0x517f, - 0x5183, 0x5184, 0x5186, 0x5187, 0x518a, 0x518b, 0x518e, 0x518f, - 0x5190, 0x5191, 0x5193, 0x5194, 0x5198, 0x519a, 0x519d, 0x519e, - 0x519f, 0x51a1, 0x51a3, 0x51a6, 0x51a7, 0x51a8, 0x51a9, 0x51aa, - 0x51ad, 0x51ae, 0x51b4, 0x51b8, 0x51b9, 0x51ba, 0x51be, 0x51bf, - 0x51c1, 0x51c2, 0x51c3, 0x51c5, 0x51c8, 0x51ca, 0x51cd, 0x51ce, - 0x51d0, 0x51d2, 0x51d3, 0x51d4, 0x51d5, 0x51d6, 0x51d7, 0x003f, - /* lead byte 84 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x51d8, 0x51d9, 0x51da, 0x51dc, 0x51de, 0x51df, 0x51e2, 0x51e3, - 0x51e5, 0x51e6, 0x51e7, 0x51e8, 0x51e9, 0x51ea, 0x51ec, 0x51ee, - 0x51f1, 0x51f2, 0x51f4, 0x51f7, 0x51fe, 0x5204, 0x5205, 0x5209, - 0x520b, 0x520c, 0x520f, 0x5210, 0x5213, 0x5214, 0x5215, 0x521c, - 0x521e, 0x521f, 0x5221, 0x5222, 0x5223, 0x5225, 0x5226, 0x5227, - 0x522a, 0x522c, 0x522f, 0x5231, 0x5232, 0x5234, 0x5235, 0x523c, - 0x523e, 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524b, - 0x524e, 0x524f, 0x5252, 0x5253, 0x5255, 0x5257, 0x5258, 0x003f, - 0x5259, 0x525a, 0x525b, 0x525d, 0x525f, 0x5260, 0x5262, 0x5263, - 0x5264, 0x5266, 0x5268, 0x526b, 0x526c, 0x526d, 0x526e, 0x5270, - 0x5271, 0x5273, 0x5274, 0x5275, 0x5276, 0x5277, 0x5278, 0x5279, - 0x527a, 0x527b, 0x527c, 0x527e, 0x5280, 0x5283, 0x5284, 0x5285, - 0x5286, 0x5287, 0x5289, 0x528a, 0x528b, 0x528c, 0x528d, 0x528e, - 0x528f, 0x5291, 0x5292, 0x5294, 0x5295, 0x5296, 0x5297, 0x5298, - 0x5299, 0x529a, 0x529c, 0x52a4, 0x52a5, 0x52a6, 0x52a7, 0x52ae, - 0x52af, 0x52b0, 0x52b4, 0x52b5, 0x52b6, 0x52b7, 0x52b8, 0x52b9, - 0x52ba, 0x52bb, 0x52bc, 0x52bd, 0x52c0, 0x52c1, 0x52c2, 0x52c4, - 0x52c5, 0x52c6, 0x52c8, 0x52ca, 0x52cc, 0x52cd, 0x52ce, 0x52cf, - 0x52d1, 0x52d3, 0x52d4, 0x52d5, 0x52d7, 0x52d9, 0x52da, 0x52db, - 0x52dc, 0x52dd, 0x52de, 0x52e0, 0x52e1, 0x52e2, 0x52e3, 0x52e5, - 0x52e6, 0x52e7, 0x52e8, 0x52e9, 0x52ea, 0x52eb, 0x52ec, 0x52ed, - 0x52ee, 0x52ef, 0x52f1, 0x52f2, 0x52f3, 0x52f4, 0x52f5, 0x52f6, - 0x52f7, 0x52f8, 0x52fb, 0x52fc, 0x52fd, 0x5301, 0x5302, 0x5303, - 0x5304, 0x5307, 0x5309, 0x530a, 0x530b, 0x530c, 0x530e, 0x003f, - /* lead byte 85 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5311, 0x5312, 0x5313, 0x5314, 0x5318, 0x531b, 0x531c, 0x531e, - 0x531f, 0x5322, 0x5324, 0x5325, 0x5327, 0x5328, 0x5329, 0x532b, - 0x532c, 0x532d, 0x532f, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334, - 0x5335, 0x5336, 0x5337, 0x5338, 0x533c, 0x533d, 0x5340, 0x5342, - 0x5344, 0x5346, 0x534b, 0x534c, 0x534d, 0x5350, 0x5354, 0x5358, - 0x5359, 0x535b, 0x535d, 0x5365, 0x5368, 0x536a, 0x536c, 0x536d, - 0x5372, 0x5376, 0x5379, 0x537b, 0x537c, 0x537d, 0x537e, 0x5380, - 0x5381, 0x5383, 0x5387, 0x5388, 0x538a, 0x538e, 0x538f, 0x003f, - 0x5390, 0x5391, 0x5392, 0x5393, 0x5394, 0x5396, 0x5397, 0x5399, - 0x539b, 0x539c, 0x539e, 0x53a0, 0x53a1, 0x53a4, 0x53a7, 0x53aa, - 0x53ab, 0x53ac, 0x53ad, 0x53af, 0x53b0, 0x53b1, 0x53b2, 0x53b3, - 0x53b4, 0x53b5, 0x53b7, 0x53b8, 0x53b9, 0x53ba, 0x53bc, 0x53bd, - 0x53be, 0x53c0, 0x53c3, 0x53c4, 0x53c5, 0x53c6, 0x53c7, 0x53ce, - 0x53cf, 0x53d0, 0x53d2, 0x53d3, 0x53d5, 0x53da, 0x53dc, 0x53dd, - 0x53de, 0x53e1, 0x53e2, 0x53e7, 0x53f4, 0x53fa, 0x53fe, 0x53ff, - 0x5400, 0x5402, 0x5405, 0x5407, 0x540b, 0x5414, 0x5418, 0x5419, - 0x541a, 0x541c, 0x5422, 0x5424, 0x5425, 0x542a, 0x5430, 0x5433, - 0x5436, 0x5437, 0x543a, 0x543d, 0x543f, 0x5441, 0x5442, 0x5444, - 0x5445, 0x5447, 0x5449, 0x544c, 0x544d, 0x544e, 0x544f, 0x5451, - 0x545a, 0x545d, 0x545e, 0x545f, 0x5460, 0x5461, 0x5463, 0x5465, - 0x5467, 0x5469, 0x546a, 0x546b, 0x546c, 0x546d, 0x546e, 0x546f, - 0x5470, 0x5474, 0x5479, 0x547a, 0x547e, 0x547f, 0x5481, 0x5483, - 0x5485, 0x5487, 0x5488, 0x5489, 0x548a, 0x548d, 0x5491, 0x5493, - 0x5497, 0x5498, 0x549c, 0x549e, 0x549f, 0x54a0, 0x54a1, 0x003f, - /* lead byte 86 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x54a2, 0x54a5, 0x54ae, 0x54b0, 0x54b2, 0x54b5, 0x54b6, 0x54b7, - 0x54b9, 0x54ba, 0x54bc, 0x54be, 0x54c3, 0x54c5, 0x54ca, 0x54cb, - 0x54d6, 0x54d8, 0x54db, 0x54e0, 0x54e1, 0x54e2, 0x54e3, 0x54e4, - 0x54eb, 0x54ec, 0x54ef, 0x54f0, 0x54f1, 0x54f4, 0x54f5, 0x54f6, - 0x54f7, 0x54f8, 0x54f9, 0x54fb, 0x54fe, 0x5500, 0x5502, 0x5503, - 0x5504, 0x5505, 0x5508, 0x550a, 0x550b, 0x550c, 0x550d, 0x550e, - 0x5512, 0x5513, 0x5515, 0x5516, 0x5517, 0x5518, 0x5519, 0x551a, - 0x551c, 0x551d, 0x551e, 0x551f, 0x5521, 0x5525, 0x5526, 0x003f, - 0x5528, 0x5529, 0x552b, 0x552d, 0x5532, 0x5534, 0x5535, 0x5536, - 0x5538, 0x5539, 0x553a, 0x553b, 0x553d, 0x5540, 0x5542, 0x5545, - 0x5547, 0x5548, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5551, - 0x5552, 0x5553, 0x5554, 0x5557, 0x5558, 0x5559, 0x555a, 0x555b, - 0x555d, 0x555e, 0x555f, 0x5560, 0x5562, 0x5563, 0x5568, 0x5569, - 0x556b, 0x556f, 0x5570, 0x5571, 0x5572, 0x5573, 0x5574, 0x5579, - 0x557a, 0x557d, 0x557f, 0x5585, 0x5586, 0x558c, 0x558d, 0x558e, - 0x5590, 0x5592, 0x5593, 0x5595, 0x5596, 0x5597, 0x559a, 0x559b, - 0x559e, 0x55a0, 0x55a1, 0x55a2, 0x55a3, 0x55a4, 0x55a5, 0x55a6, - 0x55a8, 0x55a9, 0x55aa, 0x55ab, 0x55ac, 0x55ad, 0x55ae, 0x55af, - 0x55b0, 0x55b2, 0x55b4, 0x55b6, 0x55b8, 0x55ba, 0x55bc, 0x55bf, - 0x55c0, 0x55c1, 0x55c2, 0x55c3, 0x55c6, 0x55c7, 0x55c8, 0x55ca, - 0x55cb, 0x55ce, 0x55cf, 0x55d0, 0x55d5, 0x55d7, 0x55d8, 0x55d9, - 0x55da, 0x55db, 0x55de, 0x55e0, 0x55e2, 0x55e7, 0x55e9, 0x55ed, - 0x55ee, 0x55f0, 0x55f1, 0x55f4, 0x55f6, 0x55f8, 0x55f9, 0x55fa, - 0x55fb, 0x55fc, 0x55ff, 0x5602, 0x5603, 0x5604, 0x5605, 0x003f, - /* lead byte 87 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5606, 0x5607, 0x560a, 0x560b, 0x560d, 0x5610, 0x5611, 0x5612, - 0x5613, 0x5614, 0x5615, 0x5616, 0x5617, 0x5619, 0x561a, 0x561c, - 0x561d, 0x5620, 0x5621, 0x5622, 0x5625, 0x5626, 0x5628, 0x5629, - 0x562a, 0x562b, 0x562e, 0x562f, 0x5630, 0x5633, 0x5635, 0x5637, - 0x5638, 0x563a, 0x563c, 0x563d, 0x563e, 0x5640, 0x5641, 0x5642, - 0x5643, 0x5644, 0x5645, 0x5646, 0x5647, 0x5648, 0x5649, 0x564a, - 0x564b, 0x564f, 0x5650, 0x5651, 0x5652, 0x5653, 0x5655, 0x5656, - 0x565a, 0x565b, 0x565d, 0x565e, 0x565f, 0x5660, 0x5661, 0x003f, - 0x5663, 0x5665, 0x5666, 0x5667, 0x566d, 0x566e, 0x566f, 0x5670, - 0x5672, 0x5673, 0x5674, 0x5675, 0x5677, 0x5678, 0x5679, 0x567a, - 0x567d, 0x567e, 0x567f, 0x5680, 0x5681, 0x5682, 0x5683, 0x5684, - 0x5687, 0x5688, 0x5689, 0x568a, 0x568b, 0x568c, 0x568d, 0x5690, - 0x5691, 0x5692, 0x5694, 0x5695, 0x5696, 0x5697, 0x5698, 0x5699, - 0x569a, 0x569b, 0x569c, 0x569d, 0x569e, 0x569f, 0x56a0, 0x56a1, - 0x56a2, 0x56a4, 0x56a5, 0x56a6, 0x56a7, 0x56a8, 0x56a9, 0x56aa, - 0x56ab, 0x56ac, 0x56ad, 0x56ae, 0x56b0, 0x56b1, 0x56b2, 0x56b3, - 0x56b4, 0x56b5, 0x56b6, 0x56b8, 0x56b9, 0x56ba, 0x56bb, 0x56bd, - 0x56be, 0x56bf, 0x56c0, 0x56c1, 0x56c2, 0x56c3, 0x56c4, 0x56c5, - 0x56c6, 0x56c7, 0x56c8, 0x56c9, 0x56cb, 0x56cc, 0x56cd, 0x56ce, - 0x56cf, 0x56d0, 0x56d1, 0x56d2, 0x56d3, 0x56d5, 0x56d6, 0x56d8, - 0x56d9, 0x56dc, 0x56e3, 0x56e5, 0x56e6, 0x56e7, 0x56e8, 0x56e9, - 0x56ea, 0x56ec, 0x56ee, 0x56ef, 0x56f2, 0x56f3, 0x56f6, 0x56f7, - 0x56f8, 0x56fb, 0x56fc, 0x5700, 0x5701, 0x5702, 0x5705, 0x5707, - 0x570b, 0x570c, 0x570d, 0x570e, 0x570f, 0x5710, 0x5711, 0x003f, - /* lead byte 88 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5712, 0x5713, 0x5714, 0x5715, 0x5716, 0x5717, 0x5718, 0x5719, - 0x571a, 0x571b, 0x571d, 0x571e, 0x5720, 0x5721, 0x5722, 0x5724, - 0x5725, 0x5726, 0x5727, 0x572b, 0x5731, 0x5732, 0x5734, 0x5735, - 0x5736, 0x5737, 0x5738, 0x573c, 0x573d, 0x573f, 0x5741, 0x5743, - 0x5744, 0x5745, 0x5746, 0x5748, 0x5749, 0x574b, 0x5752, 0x5753, - 0x5754, 0x5755, 0x5756, 0x5758, 0x5759, 0x5762, 0x5763, 0x5765, - 0x5767, 0x576c, 0x576e, 0x5770, 0x5771, 0x5772, 0x5774, 0x5775, - 0x5778, 0x5779, 0x577a, 0x577d, 0x577e, 0x577f, 0x5780, 0x003f, - 0x5781, 0x5787, 0x5788, 0x5789, 0x578a, 0x578d, 0x578e, 0x578f, - 0x5790, 0x5791, 0x5794, 0x5795, 0x5796, 0x5797, 0x5798, 0x5799, - 0x579a, 0x579c, 0x579d, 0x579e, 0x579f, 0x57a5, 0x57a8, 0x57aa, - 0x57ac, 0x57af, 0x57b0, 0x57b1, 0x57b3, 0x57b5, 0x57b6, 0x57b7, - 0x57b9, 0x57ba, 0x57bb, 0x57bc, 0x57bd, 0x57be, 0x57bf, 0x57c0, - 0x57c1, 0x57c4, 0x57c5, 0x57c6, 0x57c7, 0x57c8, 0x57c9, 0x57ca, - 0x57cc, 0x57cd, 0x57d0, 0x57d1, 0x57d3, 0x57d6, 0x57d7, 0x57db, - 0x57dc, 0x57de, 0x57e1, 0x57e2, 0x57e3, 0x57e5, 0x57e6, 0x57e7, - 0x57e8, 0x57e9, 0x57ea, 0x57eb, 0x57ec, 0x57ee, 0x57f0, 0x57f1, - 0x57f2, 0x57f3, 0x57f5, 0x57f6, 0x57f7, 0x57fb, 0x57fc, 0x57fe, - 0x57ff, 0x5801, 0x5803, 0x5804, 0x5805, 0x5808, 0x5809, 0x580a, - 0x580c, 0x580e, 0x580f, 0x5810, 0x5812, 0x5813, 0x5814, 0x5816, - 0x5817, 0x5818, 0x581a, 0x581b, 0x581c, 0x581d, 0x581f, 0x5822, - 0x5823, 0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 0x582b, 0x582c, - 0x582d, 0x582e, 0x582f, 0x5831, 0x5832, 0x5833, 0x5834, 0x5836, - 0x5837, 0x5838, 0x5839, 0x583a, 0x583b, 0x583c, 0x583d, 0x003f, - /* lead byte 89 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x583e, 0x583f, 0x5840, 0x5841, 0x5842, 0x5843, 0x5845, 0x5846, - 0x5847, 0x5848, 0x5849, 0x584a, 0x584b, 0x584e, 0x584f, 0x5850, - 0x5852, 0x5853, 0x5855, 0x5856, 0x5857, 0x5859, 0x585a, 0x585b, - 0x585c, 0x585d, 0x585f, 0x5860, 0x5861, 0x5862, 0x5863, 0x5864, - 0x5866, 0x5867, 0x5868, 0x5869, 0x586a, 0x586d, 0x586e, 0x586f, - 0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876, 0x5877, - 0x5878, 0x5879, 0x587a, 0x587b, 0x587c, 0x587d, 0x587f, 0x5882, - 0x5884, 0x5886, 0x5887, 0x5888, 0x588a, 0x588b, 0x588c, 0x003f, - 0x588d, 0x588e, 0x588f, 0x5890, 0x5891, 0x5894, 0x5895, 0x5896, - 0x5897, 0x5898, 0x589b, 0x589c, 0x589d, 0x58a0, 0x58a1, 0x58a2, - 0x58a3, 0x58a4, 0x58a5, 0x58a6, 0x58a7, 0x58aa, 0x58ab, 0x58ac, - 0x58ad, 0x58ae, 0x58af, 0x58b0, 0x58b1, 0x58b2, 0x58b3, 0x58b4, - 0x58b5, 0x58b6, 0x58b7, 0x58b8, 0x58b9, 0x58ba, 0x58bb, 0x58bd, - 0x58be, 0x58bf, 0x58c0, 0x58c2, 0x58c3, 0x58c4, 0x58c6, 0x58c7, - 0x58c8, 0x58c9, 0x58ca, 0x58cb, 0x58cc, 0x58cd, 0x58ce, 0x58cf, - 0x58d0, 0x58d2, 0x58d3, 0x58d4, 0x58d6, 0x58d7, 0x58d8, 0x58d9, - 0x58da, 0x58db, 0x58dc, 0x58dd, 0x58de, 0x58df, 0x58e0, 0x58e1, - 0x58e2, 0x58e3, 0x58e5, 0x58e6, 0x58e7, 0x58e8, 0x58e9, 0x58ea, - 0x58ed, 0x58ef, 0x58f1, 0x58f2, 0x58f4, 0x58f5, 0x58f7, 0x58f8, - 0x58fa, 0x58fb, 0x58fc, 0x58fd, 0x58fe, 0x58ff, 0x5900, 0x5901, - 0x5903, 0x5905, 0x5906, 0x5908, 0x5909, 0x590a, 0x590b, 0x590c, - 0x590e, 0x5910, 0x5911, 0x5912, 0x5913, 0x5917, 0x5918, 0x591b, - 0x591d, 0x591e, 0x5920, 0x5921, 0x5922, 0x5923, 0x5926, 0x5928, - 0x592c, 0x5930, 0x5932, 0x5933, 0x5935, 0x5936, 0x593b, 0x003f, - /* lead byte 8a */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x593d, 0x593e, 0x593f, 0x5940, 0x5943, 0x5945, 0x5946, 0x594a, - 0x594c, 0x594d, 0x5950, 0x5952, 0x5953, 0x5959, 0x595b, 0x595c, - 0x595d, 0x595e, 0x595f, 0x5961, 0x5963, 0x5964, 0x5966, 0x5967, - 0x5968, 0x5969, 0x596a, 0x596b, 0x596c, 0x596d, 0x596e, 0x596f, - 0x5970, 0x5971, 0x5972, 0x5975, 0x5977, 0x597a, 0x597b, 0x597c, - 0x597e, 0x597f, 0x5980, 0x5985, 0x5989, 0x598b, 0x598c, 0x598e, - 0x598f, 0x5990, 0x5991, 0x5994, 0x5995, 0x5998, 0x599a, 0x599b, - 0x599c, 0x599d, 0x599f, 0x59a0, 0x59a1, 0x59a2, 0x59a6, 0x003f, - 0x59a7, 0x59ac, 0x59ad, 0x59b0, 0x59b1, 0x59b3, 0x59b4, 0x59b5, - 0x59b6, 0x59b7, 0x59b8, 0x59ba, 0x59bc, 0x59bd, 0x59bf, 0x59c0, - 0x59c1, 0x59c2, 0x59c3, 0x59c4, 0x59c5, 0x59c7, 0x59c8, 0x59c9, - 0x59cc, 0x59cd, 0x59ce, 0x59cf, 0x59d5, 0x59d6, 0x59d9, 0x59db, - 0x59de, 0x59df, 0x59e0, 0x59e1, 0x59e2, 0x59e4, 0x59e6, 0x59e7, - 0x59e9, 0x59ea, 0x59eb, 0x59ed, 0x59ee, 0x59ef, 0x59f0, 0x59f1, - 0x59f2, 0x59f3, 0x59f4, 0x59f5, 0x59f6, 0x59f7, 0x59f8, 0x59fa, - 0x59fc, 0x59fd, 0x59fe, 0x5a00, 0x5a02, 0x5a0a, 0x5a0b, 0x5a0d, - 0x5a0e, 0x5a0f, 0x5a10, 0x5a12, 0x5a14, 0x5a15, 0x5a16, 0x5a17, - 0x5a19, 0x5a1a, 0x5a1b, 0x5a1d, 0x5a1e, 0x5a21, 0x5a22, 0x5a24, - 0x5a26, 0x5a27, 0x5a28, 0x5a2a, 0x5a2b, 0x5a2c, 0x5a2d, 0x5a2e, - 0x5a2f, 0x5a30, 0x5a33, 0x5a35, 0x5a37, 0x5a38, 0x5a39, 0x5a3a, - 0x5a3b, 0x5a3d, 0x5a3e, 0x5a3f, 0x5a41, 0x5a42, 0x5a43, 0x5a44, - 0x5a45, 0x5a47, 0x5a48, 0x5a4b, 0x5a4c, 0x5a4d, 0x5a4e, 0x5a4f, - 0x5a50, 0x5a51, 0x5a52, 0x5a53, 0x5a54, 0x5a56, 0x5a57, 0x5a58, - 0x5a59, 0x5a5b, 0x5a5c, 0x5a5d, 0x5a5e, 0x5a5f, 0x5a60, 0x003f, - /* lead byte 8b */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5a61, 0x5a63, 0x5a64, 0x5a65, 0x5a66, 0x5a68, 0x5a69, 0x5a6b, - 0x5a6c, 0x5a6d, 0x5a6e, 0x5a6f, 0x5a70, 0x5a71, 0x5a72, 0x5a73, - 0x5a78, 0x5a79, 0x5a7b, 0x5a7c, 0x5a7d, 0x5a7e, 0x5a80, 0x5a81, - 0x5a82, 0x5a83, 0x5a84, 0x5a85, 0x5a86, 0x5a87, 0x5a88, 0x5a89, - 0x5a8a, 0x5a8b, 0x5a8c, 0x5a8d, 0x5a8e, 0x5a8f, 0x5a90, 0x5a91, - 0x5a93, 0x5a94, 0x5a95, 0x5a96, 0x5a97, 0x5a98, 0x5a99, 0x5a9c, - 0x5a9d, 0x5a9e, 0x5a9f, 0x5aa0, 0x5aa1, 0x5aa2, 0x5aa3, 0x5aa4, - 0x5aa5, 0x5aa6, 0x5aa7, 0x5aa8, 0x5aa9, 0x5aab, 0x5aac, 0x003f, - 0x5aad, 0x5aae, 0x5aaf, 0x5ab0, 0x5ab1, 0x5ab4, 0x5ab6, 0x5ab7, - 0x5ab9, 0x5aba, 0x5abb, 0x5abc, 0x5abd, 0x5abf, 0x5ac0, 0x5ac3, - 0x5ac4, 0x5ac5, 0x5ac6, 0x5ac7, 0x5ac8, 0x5aca, 0x5acb, 0x5acd, - 0x5ace, 0x5acf, 0x5ad0, 0x5ad1, 0x5ad3, 0x5ad5, 0x5ad7, 0x5ad9, - 0x5ada, 0x5adb, 0x5add, 0x5ade, 0x5adf, 0x5ae2, 0x5ae4, 0x5ae5, - 0x5ae7, 0x5ae8, 0x5aea, 0x5aec, 0x5aed, 0x5aee, 0x5aef, 0x5af0, - 0x5af2, 0x5af3, 0x5af4, 0x5af5, 0x5af6, 0x5af7, 0x5af8, 0x5af9, - 0x5afa, 0x5afb, 0x5afc, 0x5afd, 0x5afe, 0x5aff, 0x5b00, 0x5b01, - 0x5b02, 0x5b03, 0x5b04, 0x5b05, 0x5b06, 0x5b07, 0x5b08, 0x5b0a, - 0x5b0b, 0x5b0c, 0x5b0d, 0x5b0e, 0x5b0f, 0x5b10, 0x5b11, 0x5b12, - 0x5b13, 0x5b14, 0x5b15, 0x5b18, 0x5b19, 0x5b1a, 0x5b1b, 0x5b1c, - 0x5b1d, 0x5b1e, 0x5b1f, 0x5b20, 0x5b21, 0x5b22, 0x5b23, 0x5b24, - 0x5b25, 0x5b26, 0x5b27, 0x5b28, 0x5b29, 0x5b2a, 0x5b2b, 0x5b2c, - 0x5b2d, 0x5b2e, 0x5b2f, 0x5b30, 0x5b31, 0x5b33, 0x5b35, 0x5b36, - 0x5b38, 0x5b39, 0x5b3a, 0x5b3b, 0x5b3c, 0x5b3d, 0x5b3e, 0x5b3f, - 0x5b41, 0x5b42, 0x5b43, 0x5b44, 0x5b45, 0x5b46, 0x5b47, 0x003f, - /* lead byte 8c */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5b48, 0x5b49, 0x5b4a, 0x5b4b, 0x5b4c, 0x5b4d, 0x5b4e, 0x5b4f, - 0x5b52, 0x5b56, 0x5b5e, 0x5b60, 0x5b61, 0x5b67, 0x5b68, 0x5b6b, - 0x5b6d, 0x5b6e, 0x5b6f, 0x5b72, 0x5b74, 0x5b76, 0x5b77, 0x5b78, - 0x5b79, 0x5b7b, 0x5b7c, 0x5b7e, 0x5b7f, 0x5b82, 0x5b86, 0x5b8a, - 0x5b8d, 0x5b8e, 0x5b90, 0x5b91, 0x5b92, 0x5b94, 0x5b96, 0x5b9f, - 0x5ba7, 0x5ba8, 0x5ba9, 0x5bac, 0x5bad, 0x5bae, 0x5baf, 0x5bb1, - 0x5bb2, 0x5bb7, 0x5bba, 0x5bbb, 0x5bbc, 0x5bc0, 0x5bc1, 0x5bc3, - 0x5bc8, 0x5bc9, 0x5bca, 0x5bcb, 0x5bcd, 0x5bce, 0x5bcf, 0x003f, - 0x5bd1, 0x5bd4, 0x5bd5, 0x5bd6, 0x5bd7, 0x5bd8, 0x5bd9, 0x5bda, - 0x5bdb, 0x5bdc, 0x5be0, 0x5be2, 0x5be3, 0x5be6, 0x5be7, 0x5be9, - 0x5bea, 0x5beb, 0x5bec, 0x5bed, 0x5bef, 0x5bf1, 0x5bf2, 0x5bf3, - 0x5bf4, 0x5bf5, 0x5bf6, 0x5bf7, 0x5bfd, 0x5bfe, 0x5c00, 0x5c02, - 0x5c03, 0x5c05, 0x5c07, 0x5c08, 0x5c0b, 0x5c0c, 0x5c0d, 0x5c0e, - 0x5c10, 0x5c12, 0x5c13, 0x5c17, 0x5c19, 0x5c1b, 0x5c1e, 0x5c1f, - 0x5c20, 0x5c21, 0x5c23, 0x5c26, 0x5c28, 0x5c29, 0x5c2a, 0x5c2b, - 0x5c2d, 0x5c2e, 0x5c2f, 0x5c30, 0x5c32, 0x5c33, 0x5c35, 0x5c36, - 0x5c37, 0x5c43, 0x5c44, 0x5c46, 0x5c47, 0x5c4c, 0x5c4d, 0x5c52, - 0x5c53, 0x5c54, 0x5c56, 0x5c57, 0x5c58, 0x5c5a, 0x5c5b, 0x5c5c, - 0x5c5d, 0x5c5f, 0x5c62, 0x5c64, 0x5c67, 0x5c68, 0x5c69, 0x5c6a, - 0x5c6b, 0x5c6c, 0x5c6d, 0x5c70, 0x5c72, 0x5c73, 0x5c74, 0x5c75, - 0x5c76, 0x5c77, 0x5c78, 0x5c7b, 0x5c7c, 0x5c7d, 0x5c7e, 0x5c80, - 0x5c83, 0x5c84, 0x5c85, 0x5c86, 0x5c87, 0x5c89, 0x5c8a, 0x5c8b, - 0x5c8e, 0x5c8f, 0x5c92, 0x5c93, 0x5c95, 0x5c9d, 0x5c9e, 0x5c9f, - 0x5ca0, 0x5ca1, 0x5ca4, 0x5ca5, 0x5ca6, 0x5ca7, 0x5ca8, 0x003f, - /* lead byte 8d */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5caa, 0x5cae, 0x5caf, 0x5cb0, 0x5cb2, 0x5cb4, 0x5cb6, 0x5cb9, - 0x5cba, 0x5cbb, 0x5cbc, 0x5cbe, 0x5cc0, 0x5cc2, 0x5cc3, 0x5cc5, - 0x5cc6, 0x5cc7, 0x5cc8, 0x5cc9, 0x5cca, 0x5ccc, 0x5ccd, 0x5cce, - 0x5ccf, 0x5cd0, 0x5cd1, 0x5cd3, 0x5cd4, 0x5cd5, 0x5cd6, 0x5cd7, - 0x5cd8, 0x5cda, 0x5cdb, 0x5cdc, 0x5cdd, 0x5cde, 0x5cdf, 0x5ce0, - 0x5ce2, 0x5ce3, 0x5ce7, 0x5ce9, 0x5ceb, 0x5cec, 0x5cee, 0x5cef, - 0x5cf1, 0x5cf2, 0x5cf3, 0x5cf4, 0x5cf5, 0x5cf6, 0x5cf7, 0x5cf8, - 0x5cf9, 0x5cfa, 0x5cfc, 0x5cfd, 0x5cfe, 0x5cff, 0x5d00, 0x003f, - 0x5d01, 0x5d04, 0x5d05, 0x5d08, 0x5d09, 0x5d0a, 0x5d0b, 0x5d0c, - 0x5d0d, 0x5d0f, 0x5d10, 0x5d11, 0x5d12, 0x5d13, 0x5d15, 0x5d17, - 0x5d18, 0x5d19, 0x5d1a, 0x5d1c, 0x5d1d, 0x5d1f, 0x5d20, 0x5d21, - 0x5d22, 0x5d23, 0x5d25, 0x5d28, 0x5d2a, 0x5d2b, 0x5d2c, 0x5d2f, - 0x5d30, 0x5d31, 0x5d32, 0x5d33, 0x5d35, 0x5d36, 0x5d37, 0x5d38, - 0x5d39, 0x5d3a, 0x5d3b, 0x5d3c, 0x5d3f, 0x5d40, 0x5d41, 0x5d42, - 0x5d43, 0x5d44, 0x5d45, 0x5d46, 0x5d48, 0x5d49, 0x5d4d, 0x5d4e, - 0x5d4f, 0x5d50, 0x5d51, 0x5d52, 0x5d53, 0x5d54, 0x5d55, 0x5d56, - 0x5d57, 0x5d59, 0x5d5a, 0x5d5c, 0x5d5e, 0x5d5f, 0x5d60, 0x5d61, - 0x5d62, 0x5d63, 0x5d64, 0x5d65, 0x5d66, 0x5d67, 0x5d68, 0x5d6a, - 0x5d6d, 0x5d6e, 0x5d70, 0x5d71, 0x5d72, 0x5d73, 0x5d75, 0x5d76, - 0x5d77, 0x5d78, 0x5d79, 0x5d7a, 0x5d7b, 0x5d7c, 0x5d7d, 0x5d7e, - 0x5d7f, 0x5d80, 0x5d81, 0x5d83, 0x5d84, 0x5d85, 0x5d86, 0x5d87, - 0x5d88, 0x5d89, 0x5d8a, 0x5d8b, 0x5d8c, 0x5d8d, 0x5d8e, 0x5d8f, - 0x5d90, 0x5d91, 0x5d92, 0x5d93, 0x5d94, 0x5d95, 0x5d96, 0x5d97, - 0x5d98, 0x5d9a, 0x5d9b, 0x5d9c, 0x5d9e, 0x5d9f, 0x5da0, 0x003f, - /* lead byte 8e */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5da1, 0x5da2, 0x5da3, 0x5da4, 0x5da5, 0x5da6, 0x5da7, 0x5da8, - 0x5da9, 0x5daa, 0x5dab, 0x5dac, 0x5dad, 0x5dae, 0x5daf, 0x5db0, - 0x5db1, 0x5db2, 0x5db3, 0x5db4, 0x5db5, 0x5db6, 0x5db8, 0x5db9, - 0x5dba, 0x5dbb, 0x5dbc, 0x5dbd, 0x5dbe, 0x5dbf, 0x5dc0, 0x5dc1, - 0x5dc2, 0x5dc3, 0x5dc4, 0x5dc6, 0x5dc7, 0x5dc8, 0x5dc9, 0x5dca, - 0x5dcb, 0x5dcc, 0x5dce, 0x5dcf, 0x5dd0, 0x5dd1, 0x5dd2, 0x5dd3, - 0x5dd4, 0x5dd5, 0x5dd6, 0x5dd7, 0x5dd8, 0x5dd9, 0x5dda, 0x5ddc, - 0x5ddf, 0x5de0, 0x5de3, 0x5de4, 0x5dea, 0x5dec, 0x5ded, 0x003f, - 0x5df0, 0x5df5, 0x5df6, 0x5df8, 0x5df9, 0x5dfa, 0x5dfb, 0x5dfc, - 0x5dff, 0x5e00, 0x5e04, 0x5e07, 0x5e09, 0x5e0a, 0x5e0b, 0x5e0d, - 0x5e0e, 0x5e12, 0x5e13, 0x5e17, 0x5e1e, 0x5e1f, 0x5e20, 0x5e21, - 0x5e22, 0x5e23, 0x5e24, 0x5e25, 0x5e28, 0x5e29, 0x5e2a, 0x5e2b, - 0x5e2c, 0x5e2f, 0x5e30, 0x5e32, 0x5e33, 0x5e34, 0x5e35, 0x5e36, - 0x5e39, 0x5e3a, 0x5e3e, 0x5e3f, 0x5e40, 0x5e41, 0x5e43, 0x5e46, - 0x5e47, 0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4d, 0x5e4e, 0x5e4f, - 0x5e50, 0x5e51, 0x5e52, 0x5e53, 0x5e56, 0x5e57, 0x5e58, 0x5e59, - 0x5e5a, 0x5e5c, 0x5e5d, 0x5e5f, 0x5e60, 0x5e63, 0x5e64, 0x5e65, - 0x5e66, 0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, - 0x5e6e, 0x5e6f, 0x5e70, 0x5e71, 0x5e75, 0x5e77, 0x5e79, 0x5e7e, - 0x5e81, 0x5e82, 0x5e83, 0x5e85, 0x5e88, 0x5e89, 0x5e8c, 0x5e8d, - 0x5e8e, 0x5e92, 0x5e98, 0x5e9b, 0x5e9d, 0x5ea1, 0x5ea2, 0x5ea3, - 0x5ea4, 0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac, 0x5eae, 0x5eaf, - 0x5eb0, 0x5eb1, 0x5eb2, 0x5eb4, 0x5eba, 0x5ebb, 0x5ebc, 0x5ebd, - 0x5ebf, 0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4, 0x5ec5, 0x003f, - /* lead byte 8f */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5ec6, 0x5ec7, 0x5ec8, 0x5ecb, 0x5ecc, 0x5ecd, 0x5ece, 0x5ecf, - 0x5ed0, 0x5ed4, 0x5ed5, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edc, - 0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4, - 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee9, 0x5eeb, 0x5eec, 0x5eed, 0x5eee, - 0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef5, 0x5ef8, 0x5ef9, - 0x5efb, 0x5efc, 0x5efd, 0x5f05, 0x5f06, 0x5f07, 0x5f09, 0x5f0c, - 0x5f0d, 0x5f0e, 0x5f10, 0x5f12, 0x5f14, 0x5f16, 0x5f19, 0x5f1a, - 0x5f1c, 0x5f1d, 0x5f1e, 0x5f21, 0x5f22, 0x5f23, 0x5f24, 0x003f, - 0x5f28, 0x5f2b, 0x5f2c, 0x5f2e, 0x5f30, 0x5f32, 0x5f33, 0x5f34, - 0x5f35, 0x5f36, 0x5f37, 0x5f38, 0x5f3b, 0x5f3d, 0x5f3e, 0x5f3f, - 0x5f41, 0x5f42, 0x5f43, 0x5f44, 0x5f45, 0x5f46, 0x5f47, 0x5f48, - 0x5f49, 0x5f4a, 0x5f4b, 0x5f4c, 0x5f4d, 0x5f4e, 0x5f4f, 0x5f51, - 0x5f54, 0x5f59, 0x5f5a, 0x5f5b, 0x5f5c, 0x5f5e, 0x5f5f, 0x5f60, - 0x5f63, 0x5f65, 0x5f67, 0x5f68, 0x5f6b, 0x5f6e, 0x5f6f, 0x5f72, - 0x5f74, 0x5f75, 0x5f76, 0x5f78, 0x5f7a, 0x5f7d, 0x5f7e, 0x5f7f, - 0x5f83, 0x5f86, 0x5f8d, 0x5f8e, 0x5f8f, 0x5f91, 0x5f93, 0x5f94, - 0x5f96, 0x5f9a, 0x5f9b, 0x5f9d, 0x5f9e, 0x5f9f, 0x5fa0, 0x5fa2, - 0x5fa3, 0x5fa4, 0x5fa5, 0x5fa6, 0x5fa7, 0x5fa9, 0x5fab, 0x5fac, - 0x5faf, 0x5fb0, 0x5fb1, 0x5fb2, 0x5fb3, 0x5fb4, 0x5fb6, 0x5fb8, - 0x5fb9, 0x5fba, 0x5fbb, 0x5fbe, 0x5fbf, 0x5fc0, 0x5fc1, 0x5fc2, - 0x5fc7, 0x5fc8, 0x5fca, 0x5fcb, 0x5fce, 0x5fd3, 0x5fd4, 0x5fd5, - 0x5fda, 0x5fdb, 0x5fdc, 0x5fde, 0x5fdf, 0x5fe2, 0x5fe3, 0x5fe5, - 0x5fe6, 0x5fe8, 0x5fe9, 0x5fec, 0x5fef, 0x5ff0, 0x5ff2, 0x5ff3, - 0x5ff4, 0x5ff6, 0x5ff7, 0x5ff9, 0x5ffa, 0x5ffc, 0x6007, 0x003f, - /* lead byte 90 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6008, 0x6009, 0x600b, 0x600c, 0x6010, 0x6011, 0x6013, 0x6017, - 0x6018, 0x601a, 0x601e, 0x601f, 0x6022, 0x6023, 0x6024, 0x602c, - 0x602d, 0x602e, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6036, - 0x6037, 0x6038, 0x6039, 0x603a, 0x603d, 0x603e, 0x6040, 0x6044, - 0x6045, 0x6046, 0x6047, 0x6048, 0x6049, 0x604a, 0x604c, 0x604e, - 0x604f, 0x6051, 0x6053, 0x6054, 0x6056, 0x6057, 0x6058, 0x605b, - 0x605c, 0x605e, 0x605f, 0x6060, 0x6061, 0x6065, 0x6066, 0x606e, - 0x6071, 0x6072, 0x6074, 0x6075, 0x6077, 0x607e, 0x6080, 0x003f, - 0x6081, 0x6082, 0x6085, 0x6086, 0x6087, 0x6088, 0x608a, 0x608b, - 0x608e, 0x608f, 0x6090, 0x6091, 0x6093, 0x6095, 0x6097, 0x6098, - 0x6099, 0x609c, 0x609e, 0x60a1, 0x60a2, 0x60a4, 0x60a5, 0x60a7, - 0x60a9, 0x60aa, 0x60ae, 0x60b0, 0x60b3, 0x60b5, 0x60b6, 0x60b7, - 0x60b9, 0x60ba, 0x60bd, 0x60be, 0x60bf, 0x60c0, 0x60c1, 0x60c2, - 0x60c3, 0x60c4, 0x60c7, 0x60c8, 0x60c9, 0x60cc, 0x60cd, 0x60ce, - 0x60cf, 0x60d0, 0x60d2, 0x60d3, 0x60d4, 0x60d6, 0x60d7, 0x60d9, - 0x60db, 0x60de, 0x60e1, 0x60e2, 0x60e3, 0x60e4, 0x60e5, 0x60ea, - 0x60f1, 0x60f2, 0x60f5, 0x60f7, 0x60f8, 0x60fb, 0x60fc, 0x60fd, - 0x60fe, 0x60ff, 0x6102, 0x6103, 0x6104, 0x6105, 0x6107, 0x610a, - 0x610b, 0x610c, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114, 0x6116, - 0x6117, 0x6118, 0x6119, 0x611b, 0x611c, 0x611d, 0x611e, 0x6121, - 0x6122, 0x6125, 0x6128, 0x6129, 0x612a, 0x612c, 0x612d, 0x612e, - 0x612f, 0x6130, 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, - 0x6137, 0x6138, 0x6139, 0x613a, 0x613b, 0x613c, 0x613d, 0x613e, - 0x6140, 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146, 0x003f, - /* lead byte 91 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6147, 0x6149, 0x614b, 0x614d, 0x614f, 0x6150, 0x6152, 0x6153, - 0x6154, 0x6156, 0x6157, 0x6158, 0x6159, 0x615a, 0x615b, 0x615c, - 0x615e, 0x615f, 0x6160, 0x6161, 0x6163, 0x6164, 0x6165, 0x6166, - 0x6169, 0x616a, 0x616b, 0x616c, 0x616d, 0x616e, 0x616f, 0x6171, - 0x6172, 0x6173, 0x6174, 0x6176, 0x6178, 0x6179, 0x617a, 0x617b, - 0x617c, 0x617d, 0x617e, 0x617f, 0x6180, 0x6181, 0x6182, 0x6183, - 0x6184, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 0x618a, 0x618c, - 0x618d, 0x618f, 0x6190, 0x6191, 0x6192, 0x6193, 0x6195, 0x003f, - 0x6196, 0x6197, 0x6198, 0x6199, 0x619a, 0x619b, 0x619c, 0x619e, - 0x619f, 0x61a0, 0x61a1, 0x61a2, 0x61a3, 0x61a4, 0x61a5, 0x61a6, - 0x61aa, 0x61ab, 0x61ad, 0x61ae, 0x61af, 0x61b0, 0x61b1, 0x61b2, - 0x61b3, 0x61b4, 0x61b5, 0x61b6, 0x61b8, 0x61b9, 0x61ba, 0x61bb, - 0x61bc, 0x61bd, 0x61bf, 0x61c0, 0x61c1, 0x61c3, 0x61c4, 0x61c5, - 0x61c6, 0x61c7, 0x61c9, 0x61cc, 0x61cd, 0x61ce, 0x61cf, 0x61d0, - 0x61d3, 0x61d5, 0x61d6, 0x61d7, 0x61d8, 0x61d9, 0x61da, 0x61db, - 0x61dc, 0x61dd, 0x61de, 0x61df, 0x61e0, 0x61e1, 0x61e2, 0x61e3, - 0x61e4, 0x61e5, 0x61e7, 0x61e8, 0x61e9, 0x61ea, 0x61eb, 0x61ec, - 0x61ed, 0x61ee, 0x61ef, 0x61f0, 0x61f1, 0x61f2, 0x61f3, 0x61f4, - 0x61f6, 0x61f7, 0x61f8, 0x61f9, 0x61fa, 0x61fb, 0x61fc, 0x61fd, - 0x61fe, 0x6200, 0x6201, 0x6202, 0x6203, 0x6204, 0x6205, 0x6207, - 0x6209, 0x6213, 0x6214, 0x6219, 0x621c, 0x621d, 0x621e, 0x6220, - 0x6223, 0x6226, 0x6227, 0x6228, 0x6229, 0x622b, 0x622d, 0x622f, - 0x6230, 0x6231, 0x6232, 0x6235, 0x6236, 0x6238, 0x6239, 0x623a, - 0x623b, 0x623c, 0x6242, 0x6244, 0x6245, 0x6246, 0x624a, 0x003f, - /* lead byte 92 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x624f, 0x6250, 0x6255, 0x6256, 0x6257, 0x6259, 0x625a, 0x625c, - 0x625d, 0x625e, 0x625f, 0x6260, 0x6261, 0x6262, 0x6264, 0x6265, - 0x6268, 0x6271, 0x6272, 0x6274, 0x6275, 0x6277, 0x6278, 0x627a, - 0x627b, 0x627d, 0x6281, 0x6282, 0x6283, 0x6285, 0x6286, 0x6287, - 0x6288, 0x628b, 0x628c, 0x628d, 0x628e, 0x628f, 0x6290, 0x6294, - 0x6299, 0x629c, 0x629d, 0x629e, 0x62a3, 0x62a6, 0x62a7, 0x62a9, - 0x62aa, 0x62ad, 0x62ae, 0x62af, 0x62b0, 0x62b2, 0x62b3, 0x62b4, - 0x62b6, 0x62b7, 0x62b8, 0x62ba, 0x62be, 0x62c0, 0x62c1, 0x003f, - 0x62c3, 0x62cb, 0x62cf, 0x62d1, 0x62d5, 0x62dd, 0x62de, 0x62e0, - 0x62e1, 0x62e4, 0x62ea, 0x62eb, 0x62f0, 0x62f2, 0x62f5, 0x62f8, - 0x62f9, 0x62fa, 0x62fb, 0x6300, 0x6303, 0x6304, 0x6305, 0x6306, - 0x630a, 0x630b, 0x630c, 0x630d, 0x630f, 0x6310, 0x6312, 0x6313, - 0x6314, 0x6315, 0x6317, 0x6318, 0x6319, 0x631c, 0x6326, 0x6327, - 0x6329, 0x632c, 0x632d, 0x632e, 0x6330, 0x6331, 0x6333, 0x6334, - 0x6335, 0x6336, 0x6337, 0x6338, 0x633b, 0x633c, 0x633e, 0x633f, - 0x6340, 0x6341, 0x6344, 0x6347, 0x6348, 0x634a, 0x6351, 0x6352, - 0x6353, 0x6354, 0x6356, 0x6357, 0x6358, 0x6359, 0x635a, 0x635b, - 0x635c, 0x635d, 0x6360, 0x6364, 0x6365, 0x6366, 0x6368, 0x636a, - 0x636b, 0x636c, 0x636f, 0x6370, 0x6372, 0x6373, 0x6374, 0x6375, - 0x6378, 0x6379, 0x637c, 0x637d, 0x637e, 0x637f, 0x6381, 0x6383, - 0x6384, 0x6385, 0x6386, 0x638b, 0x638d, 0x6391, 0x6393, 0x6394, - 0x6395, 0x6397, 0x6399, 0x639a, 0x639b, 0x639c, 0x639d, 0x639e, - 0x639f, 0x63a1, 0x63a4, 0x63a6, 0x63ab, 0x63af, 0x63b1, 0x63b2, - 0x63b5, 0x63b6, 0x63b9, 0x63bb, 0x63bd, 0x63bf, 0x63c0, 0x003f, - /* lead byte 93 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x63c1, 0x63c2, 0x63c3, 0x63c5, 0x63c7, 0x63c8, 0x63ca, 0x63cb, - 0x63cc, 0x63d1, 0x63d3, 0x63d4, 0x63d5, 0x63d7, 0x63d8, 0x63d9, - 0x63da, 0x63db, 0x63dc, 0x63dd, 0x63df, 0x63e2, 0x63e4, 0x63e5, - 0x63e6, 0x63e7, 0x63e8, 0x63eb, 0x63ec, 0x63ee, 0x63ef, 0x63f0, - 0x63f1, 0x63f3, 0x63f5, 0x63f7, 0x63f9, 0x63fa, 0x63fb, 0x63fc, - 0x63fe, 0x6403, 0x6404, 0x6406, 0x6407, 0x6408, 0x6409, 0x640a, - 0x640d, 0x640e, 0x6411, 0x6412, 0x6415, 0x6416, 0x6417, 0x6418, - 0x6419, 0x641a, 0x641d, 0x641f, 0x6422, 0x6423, 0x6424, 0x003f, - 0x6425, 0x6427, 0x6428, 0x6429, 0x642b, 0x642e, 0x642f, 0x6430, - 0x6431, 0x6432, 0x6433, 0x6435, 0x6436, 0x6437, 0x6438, 0x6439, - 0x643b, 0x643c, 0x643e, 0x6440, 0x6442, 0x6443, 0x6449, 0x644b, - 0x644c, 0x644d, 0x644e, 0x644f, 0x6450, 0x6451, 0x6453, 0x6455, - 0x6456, 0x6457, 0x6459, 0x645a, 0x645b, 0x645c, 0x645d, 0x645f, - 0x6460, 0x6461, 0x6462, 0x6463, 0x6464, 0x6465, 0x6466, 0x6468, - 0x646a, 0x646b, 0x646c, 0x646e, 0x646f, 0x6470, 0x6471, 0x6472, - 0x6473, 0x6474, 0x6475, 0x6476, 0x6477, 0x647b, 0x647c, 0x647d, - 0x647e, 0x647f, 0x6480, 0x6481, 0x6483, 0x6486, 0x6488, 0x6489, - 0x648a, 0x648b, 0x648c, 0x648d, 0x648e, 0x648f, 0x6490, 0x6493, - 0x6494, 0x6497, 0x6498, 0x649a, 0x649b, 0x649c, 0x649d, 0x649f, - 0x64a0, 0x64a1, 0x64a2, 0x64a3, 0x64a5, 0x64a6, 0x64a7, 0x64a8, - 0x64aa, 0x64ab, 0x64af, 0x64b1, 0x64b2, 0x64b3, 0x64b4, 0x64b6, - 0x64b9, 0x64bb, 0x64bd, 0x64be, 0x64bf, 0x64c1, 0x64c3, 0x64c4, - 0x64c6, 0x64c7, 0x64c8, 0x64c9, 0x64ca, 0x64cb, 0x64cc, 0x64cf, - 0x64d1, 0x64d3, 0x64d4, 0x64d5, 0x64d6, 0x64d9, 0x64da, 0x003f, - /* lead byte 94 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x64db, 0x64dc, 0x64dd, 0x64df, 0x64e0, 0x64e1, 0x64e3, 0x64e5, - 0x64e7, 0x64e8, 0x64e9, 0x64ea, 0x64eb, 0x64ec, 0x64ed, 0x64ee, - 0x64ef, 0x64f0, 0x64f1, 0x64f2, 0x64f3, 0x64f4, 0x64f5, 0x64f6, - 0x64f7, 0x64f8, 0x64f9, 0x64fa, 0x64fb, 0x64fc, 0x64fd, 0x64fe, - 0x64ff, 0x6501, 0x6502, 0x6503, 0x6504, 0x6505, 0x6506, 0x6507, - 0x6508, 0x650a, 0x650b, 0x650c, 0x650d, 0x650e, 0x650f, 0x6510, - 0x6511, 0x6513, 0x6514, 0x6515, 0x6516, 0x6517, 0x6519, 0x651a, - 0x651b, 0x651c, 0x651d, 0x651e, 0x651f, 0x6520, 0x6521, 0x003f, - 0x6522, 0x6523, 0x6524, 0x6526, 0x6527, 0x6528, 0x6529, 0x652a, - 0x652c, 0x652d, 0x6530, 0x6531, 0x6532, 0x6533, 0x6537, 0x653a, - 0x653c, 0x653d, 0x6540, 0x6541, 0x6542, 0x6543, 0x6544, 0x6546, - 0x6547, 0x654a, 0x654b, 0x654d, 0x654e, 0x6550, 0x6552, 0x6553, - 0x6554, 0x6557, 0x6558, 0x655a, 0x655c, 0x655f, 0x6560, 0x6561, - 0x6564, 0x6565, 0x6567, 0x6568, 0x6569, 0x656a, 0x656d, 0x656e, - 0x656f, 0x6571, 0x6573, 0x6575, 0x6576, 0x6578, 0x6579, 0x657a, - 0x657b, 0x657c, 0x657d, 0x657e, 0x657f, 0x6580, 0x6581, 0x6582, - 0x6583, 0x6584, 0x6585, 0x6586, 0x6588, 0x6589, 0x658a, 0x658d, - 0x658e, 0x658f, 0x6592, 0x6594, 0x6595, 0x6596, 0x6598, 0x659a, - 0x659d, 0x659e, 0x65a0, 0x65a2, 0x65a3, 0x65a6, 0x65a8, 0x65aa, - 0x65ac, 0x65ae, 0x65b1, 0x65b2, 0x65b3, 0x65b4, 0x65b5, 0x65b6, - 0x65b7, 0x65b8, 0x65ba, 0x65bb, 0x65be, 0x65bf, 0x65c0, 0x65c2, - 0x65c7, 0x65c8, 0x65c9, 0x65ca, 0x65cd, 0x65d0, 0x65d1, 0x65d3, - 0x65d4, 0x65d5, 0x65d8, 0x65d9, 0x65da, 0x65db, 0x65dc, 0x65dd, - 0x65de, 0x65df, 0x65e1, 0x65e3, 0x65e4, 0x65ea, 0x65eb, 0x003f, - /* lead byte 95 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x65f2, 0x65f3, 0x65f4, 0x65f5, 0x65f8, 0x65f9, 0x65fb, 0x65fc, - 0x65fd, 0x65fe, 0x65ff, 0x6601, 0x6604, 0x6605, 0x6607, 0x6608, - 0x6609, 0x660b, 0x660d, 0x6610, 0x6611, 0x6612, 0x6616, 0x6617, - 0x6618, 0x661a, 0x661b, 0x661c, 0x661e, 0x6621, 0x6622, 0x6623, - 0x6624, 0x6626, 0x6629, 0x662a, 0x662b, 0x662c, 0x662e, 0x6630, - 0x6632, 0x6633, 0x6637, 0x6638, 0x6639, 0x663a, 0x663b, 0x663d, - 0x663f, 0x6640, 0x6642, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648, - 0x6649, 0x664a, 0x664d, 0x664e, 0x6650, 0x6651, 0x6658, 0x003f, - 0x6659, 0x665b, 0x665c, 0x665d, 0x665e, 0x6660, 0x6662, 0x6663, - 0x6665, 0x6667, 0x6669, 0x666a, 0x666b, 0x666c, 0x666d, 0x6671, - 0x6672, 0x6673, 0x6675, 0x6678, 0x6679, 0x667b, 0x667c, 0x667d, - 0x667f, 0x6680, 0x6681, 0x6683, 0x6685, 0x6686, 0x6688, 0x6689, - 0x668a, 0x668b, 0x668d, 0x668e, 0x668f, 0x6690, 0x6692, 0x6693, - 0x6694, 0x6695, 0x6698, 0x6699, 0x669a, 0x669b, 0x669c, 0x669e, - 0x669f, 0x66a0, 0x66a1, 0x66a2, 0x66a3, 0x66a4, 0x66a5, 0x66a6, - 0x66a9, 0x66aa, 0x66ab, 0x66ac, 0x66ad, 0x66af, 0x66b0, 0x66b1, - 0x66b2, 0x66b3, 0x66b5, 0x66b6, 0x66b7, 0x66b8, 0x66ba, 0x66bb, - 0x66bc, 0x66bd, 0x66bf, 0x66c0, 0x66c1, 0x66c2, 0x66c3, 0x66c4, - 0x66c5, 0x66c6, 0x66c7, 0x66c8, 0x66c9, 0x66ca, 0x66cb, 0x66cc, - 0x66cd, 0x66ce, 0x66cf, 0x66d0, 0x66d1, 0x66d2, 0x66d3, 0x66d4, - 0x66d5, 0x66d6, 0x66d7, 0x66d8, 0x66da, 0x66de, 0x66df, 0x66e0, - 0x66e1, 0x66e2, 0x66e3, 0x66e4, 0x66e5, 0x66e7, 0x66e8, 0x66ea, - 0x66eb, 0x66ec, 0x66ed, 0x66ee, 0x66ef, 0x66f1, 0x66f5, 0x66f6, - 0x66f8, 0x66fa, 0x66fb, 0x66fd, 0x6701, 0x6702, 0x6703, 0x003f, - /* lead byte 96 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6704, 0x6705, 0x6706, 0x6707, 0x670c, 0x670e, 0x670f, 0x6711, - 0x6712, 0x6713, 0x6716, 0x6718, 0x6719, 0x671a, 0x671c, 0x671e, - 0x6720, 0x6721, 0x6722, 0x6723, 0x6724, 0x6725, 0x6727, 0x6729, - 0x672e, 0x6730, 0x6732, 0x6733, 0x6736, 0x6737, 0x6738, 0x6739, - 0x673b, 0x673c, 0x673e, 0x673f, 0x6741, 0x6744, 0x6745, 0x6747, - 0x674a, 0x674b, 0x674d, 0x6752, 0x6754, 0x6755, 0x6757, 0x6758, - 0x6759, 0x675a, 0x675b, 0x675d, 0x6762, 0x6763, 0x6764, 0x6766, - 0x6767, 0x676b, 0x676c, 0x676e, 0x6771, 0x6774, 0x6776, 0x003f, - 0x6778, 0x6779, 0x677a, 0x677b, 0x677d, 0x6780, 0x6782, 0x6783, - 0x6785, 0x6786, 0x6788, 0x678a, 0x678c, 0x678d, 0x678e, 0x678f, - 0x6791, 0x6792, 0x6793, 0x6794, 0x6796, 0x6799, 0x679b, 0x679f, - 0x67a0, 0x67a1, 0x67a4, 0x67a6, 0x67a9, 0x67ac, 0x67ae, 0x67b1, - 0x67b2, 0x67b4, 0x67b9, 0x67ba, 0x67bb, 0x67bc, 0x67bd, 0x67be, - 0x67bf, 0x67c0, 0x67c2, 0x67c5, 0x67c6, 0x67c7, 0x67c8, 0x67c9, - 0x67ca, 0x67cb, 0x67cc, 0x67cd, 0x67ce, 0x67d5, 0x67d6, 0x67d7, - 0x67db, 0x67df, 0x67e1, 0x67e3, 0x67e4, 0x67e6, 0x67e7, 0x67e8, - 0x67ea, 0x67eb, 0x67ed, 0x67ee, 0x67f2, 0x67f5, 0x67f6, 0x67f7, - 0x67f8, 0x67f9, 0x67fa, 0x67fb, 0x67fc, 0x67fe, 0x6801, 0x6802, - 0x6803, 0x6804, 0x6806, 0x680d, 0x6810, 0x6812, 0x6814, 0x6815, - 0x6818, 0x6819, 0x681a, 0x681b, 0x681c, 0x681e, 0x681f, 0x6820, - 0x6822, 0x6823, 0x6824, 0x6825, 0x6826, 0x6827, 0x6828, 0x682b, - 0x682c, 0x682d, 0x682e, 0x682f, 0x6830, 0x6831, 0x6834, 0x6835, - 0x6836, 0x683a, 0x683b, 0x683f, 0x6847, 0x684b, 0x684d, 0x684f, - 0x6852, 0x6856, 0x6857, 0x6858, 0x6859, 0x685a, 0x685b, 0x003f, - /* lead byte 97 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x685c, 0x685d, 0x685e, 0x685f, 0x686a, 0x686c, 0x686d, 0x686e, - 0x686f, 0x6870, 0x6871, 0x6872, 0x6873, 0x6875, 0x6878, 0x6879, - 0x687a, 0x687b, 0x687c, 0x687d, 0x687e, 0x687f, 0x6880, 0x6882, - 0x6884, 0x6887, 0x6888, 0x6889, 0x688a, 0x688b, 0x688c, 0x688d, - 0x688e, 0x6890, 0x6891, 0x6892, 0x6894, 0x6895, 0x6896, 0x6898, - 0x6899, 0x689a, 0x689b, 0x689c, 0x689d, 0x689e, 0x689f, 0x68a0, - 0x68a1, 0x68a3, 0x68a4, 0x68a5, 0x68a9, 0x68aa, 0x68ab, 0x68ac, - 0x68ae, 0x68b1, 0x68b2, 0x68b4, 0x68b6, 0x68b7, 0x68b8, 0x003f, - 0x68b9, 0x68ba, 0x68bb, 0x68bc, 0x68bd, 0x68be, 0x68bf, 0x68c1, - 0x68c3, 0x68c4, 0x68c5, 0x68c6, 0x68c7, 0x68c8, 0x68ca, 0x68cc, - 0x68ce, 0x68cf, 0x68d0, 0x68d1, 0x68d3, 0x68d4, 0x68d6, 0x68d7, - 0x68d9, 0x68db, 0x68dc, 0x68dd, 0x68de, 0x68df, 0x68e1, 0x68e2, - 0x68e4, 0x68e5, 0x68e6, 0x68e7, 0x68e8, 0x68e9, 0x68ea, 0x68eb, - 0x68ec, 0x68ed, 0x68ef, 0x68f2, 0x68f3, 0x68f4, 0x68f6, 0x68f7, - 0x68f8, 0x68fb, 0x68fd, 0x68fe, 0x68ff, 0x6900, 0x6902, 0x6903, - 0x6904, 0x6906, 0x6907, 0x6908, 0x6909, 0x690a, 0x690c, 0x690f, - 0x6911, 0x6913, 0x6914, 0x6915, 0x6916, 0x6917, 0x6918, 0x6919, - 0x691a, 0x691b, 0x691c, 0x691d, 0x691e, 0x6921, 0x6922, 0x6923, - 0x6925, 0x6926, 0x6927, 0x6928, 0x6929, 0x692a, 0x692b, 0x692c, - 0x692e, 0x692f, 0x6931, 0x6932, 0x6933, 0x6935, 0x6936, 0x6937, - 0x6938, 0x693a, 0x693b, 0x693c, 0x693e, 0x6940, 0x6941, 0x6943, - 0x6944, 0x6945, 0x6946, 0x6947, 0x6948, 0x6949, 0x694a, 0x694b, - 0x694c, 0x694d, 0x694e, 0x694f, 0x6950, 0x6951, 0x6952, 0x6953, - 0x6955, 0x6956, 0x6958, 0x6959, 0x695b, 0x695c, 0x695f, 0x003f, - /* lead byte 98 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6961, 0x6962, 0x6964, 0x6965, 0x6967, 0x6968, 0x6969, 0x696a, - 0x696c, 0x696d, 0x696f, 0x6970, 0x6972, 0x6973, 0x6974, 0x6975, - 0x6976, 0x697a, 0x697b, 0x697d, 0x697e, 0x697f, 0x6981, 0x6983, - 0x6985, 0x698a, 0x698b, 0x698c, 0x698e, 0x698f, 0x6990, 0x6991, - 0x6992, 0x6993, 0x6996, 0x6997, 0x6999, 0x699a, 0x699d, 0x699e, - 0x699f, 0x69a0, 0x69a1, 0x69a2, 0x69a3, 0x69a4, 0x69a5, 0x69a6, - 0x69a9, 0x69aa, 0x69ac, 0x69ae, 0x69af, 0x69b0, 0x69b2, 0x69b3, - 0x69b5, 0x69b6, 0x69b8, 0x69b9, 0x69ba, 0x69bc, 0x69bd, 0x003f, - 0x69be, 0x69bf, 0x69c0, 0x69c2, 0x69c3, 0x69c4, 0x69c5, 0x69c6, - 0x69c7, 0x69c8, 0x69c9, 0x69cb, 0x69cd, 0x69cf, 0x69d1, 0x69d2, - 0x69d3, 0x69d5, 0x69d6, 0x69d7, 0x69d8, 0x69d9, 0x69da, 0x69dc, - 0x69dd, 0x69de, 0x69e1, 0x69e2, 0x69e3, 0x69e4, 0x69e5, 0x69e6, - 0x69e7, 0x69e8, 0x69e9, 0x69ea, 0x69eb, 0x69ec, 0x69ee, 0x69ef, - 0x69f0, 0x69f1, 0x69f3, 0x69f4, 0x69f5, 0x69f6, 0x69f7, 0x69f8, - 0x69f9, 0x69fa, 0x69fb, 0x69fc, 0x69fe, 0x6a00, 0x6a01, 0x6a02, - 0x6a03, 0x6a04, 0x6a05, 0x6a06, 0x6a07, 0x6a08, 0x6a09, 0x6a0b, - 0x6a0c, 0x6a0d, 0x6a0e, 0x6a0f, 0x6a10, 0x6a11, 0x6a12, 0x6a13, - 0x6a14, 0x6a15, 0x6a16, 0x6a19, 0x6a1a, 0x6a1b, 0x6a1c, 0x6a1d, - 0x6a1e, 0x6a20, 0x6a22, 0x6a23, 0x6a24, 0x6a25, 0x6a26, 0x6a27, - 0x6a29, 0x6a2b, 0x6a2c, 0x6a2d, 0x6a2e, 0x6a30, 0x6a32, 0x6a33, - 0x6a34, 0x6a36, 0x6a37, 0x6a38, 0x6a39, 0x6a3a, 0x6a3b, 0x6a3c, - 0x6a3f, 0x6a40, 0x6a41, 0x6a42, 0x6a43, 0x6a45, 0x6a46, 0x6a48, - 0x6a49, 0x6a4a, 0x6a4b, 0x6a4c, 0x6a4d, 0x6a4e, 0x6a4f, 0x6a51, - 0x6a52, 0x6a53, 0x6a54, 0x6a55, 0x6a56, 0x6a57, 0x6a5a, 0x003f, - /* lead byte 99 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6a5c, 0x6a5d, 0x6a5e, 0x6a5f, 0x6a60, 0x6a62, 0x6a63, 0x6a64, - 0x6a66, 0x6a67, 0x6a68, 0x6a69, 0x6a6a, 0x6a6b, 0x6a6c, 0x6a6d, - 0x6a6e, 0x6a6f, 0x6a70, 0x6a72, 0x6a73, 0x6a74, 0x6a75, 0x6a76, - 0x6a77, 0x6a78, 0x6a7a, 0x6a7b, 0x6a7d, 0x6a7e, 0x6a7f, 0x6a81, - 0x6a82, 0x6a83, 0x6a85, 0x6a86, 0x6a87, 0x6a88, 0x6a89, 0x6a8a, - 0x6a8b, 0x6a8c, 0x6a8d, 0x6a8f, 0x6a92, 0x6a93, 0x6a94, 0x6a95, - 0x6a96, 0x6a98, 0x6a99, 0x6a9a, 0x6a9b, 0x6a9c, 0x6a9d, 0x6a9e, - 0x6a9f, 0x6aa1, 0x6aa2, 0x6aa3, 0x6aa4, 0x6aa5, 0x6aa6, 0x003f, - 0x6aa7, 0x6aa8, 0x6aaa, 0x6aad, 0x6aae, 0x6aaf, 0x6ab0, 0x6ab1, - 0x6ab2, 0x6ab3, 0x6ab4, 0x6ab5, 0x6ab6, 0x6ab7, 0x6ab8, 0x6ab9, - 0x6aba, 0x6abb, 0x6abc, 0x6abd, 0x6abe, 0x6abf, 0x6ac0, 0x6ac1, - 0x6ac2, 0x6ac3, 0x6ac4, 0x6ac5, 0x6ac6, 0x6ac7, 0x6ac8, 0x6ac9, - 0x6aca, 0x6acb, 0x6acc, 0x6acd, 0x6ace, 0x6acf, 0x6ad0, 0x6ad1, - 0x6ad2, 0x6ad3, 0x6ad4, 0x6ad5, 0x6ad6, 0x6ad7, 0x6ad8, 0x6ad9, - 0x6ada, 0x6adb, 0x6adc, 0x6add, 0x6ade, 0x6adf, 0x6ae0, 0x6ae1, - 0x6ae2, 0x6ae3, 0x6ae4, 0x6ae5, 0x6ae6, 0x6ae7, 0x6ae8, 0x6ae9, - 0x6aea, 0x6aeb, 0x6aec, 0x6aed, 0x6aee, 0x6aef, 0x6af0, 0x6af1, - 0x6af2, 0x6af3, 0x6af4, 0x6af5, 0x6af6, 0x6af7, 0x6af8, 0x6af9, - 0x6afa, 0x6afb, 0x6afc, 0x6afd, 0x6afe, 0x6aff, 0x6b00, 0x6b01, - 0x6b02, 0x6b03, 0x6b04, 0x6b05, 0x6b06, 0x6b07, 0x6b08, 0x6b09, - 0x6b0a, 0x6b0b, 0x6b0c, 0x6b0d, 0x6b0e, 0x6b0f, 0x6b10, 0x6b11, - 0x6b12, 0x6b13, 0x6b14, 0x6b15, 0x6b16, 0x6b17, 0x6b18, 0x6b19, - 0x6b1a, 0x6b1b, 0x6b1c, 0x6b1d, 0x6b1e, 0x6b1f, 0x6b25, 0x6b26, - 0x6b28, 0x6b29, 0x6b2a, 0x6b2b, 0x6b2c, 0x6b2d, 0x6b2e, 0x003f, - /* lead byte 9a */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6b2f, 0x6b30, 0x6b31, 0x6b33, 0x6b34, 0x6b35, 0x6b36, 0x6b38, - 0x6b3b, 0x6b3c, 0x6b3d, 0x6b3f, 0x6b40, 0x6b41, 0x6b42, 0x6b44, - 0x6b45, 0x6b48, 0x6b4a, 0x6b4b, 0x6b4d, 0x6b4e, 0x6b4f, 0x6b50, - 0x6b51, 0x6b52, 0x6b53, 0x6b54, 0x6b55, 0x6b56, 0x6b57, 0x6b58, - 0x6b5a, 0x6b5b, 0x6b5c, 0x6b5d, 0x6b5e, 0x6b5f, 0x6b60, 0x6b61, - 0x6b68, 0x6b69, 0x6b6b, 0x6b6c, 0x6b6d, 0x6b6e, 0x6b6f, 0x6b70, - 0x6b71, 0x6b72, 0x6b73, 0x6b74, 0x6b75, 0x6b76, 0x6b77, 0x6b78, - 0x6b7a, 0x6b7d, 0x6b7e, 0x6b7f, 0x6b80, 0x6b85, 0x6b88, 0x003f, - 0x6b8c, 0x6b8e, 0x6b8f, 0x6b90, 0x6b91, 0x6b94, 0x6b95, 0x6b97, - 0x6b98, 0x6b99, 0x6b9c, 0x6b9d, 0x6b9e, 0x6b9f, 0x6ba0, 0x6ba2, - 0x6ba3, 0x6ba4, 0x6ba5, 0x6ba6, 0x6ba7, 0x6ba8, 0x6ba9, 0x6bab, - 0x6bac, 0x6bad, 0x6bae, 0x6baf, 0x6bb0, 0x6bb1, 0x6bb2, 0x6bb6, - 0x6bb8, 0x6bb9, 0x6bba, 0x6bbb, 0x6bbc, 0x6bbd, 0x6bbe, 0x6bc0, - 0x6bc3, 0x6bc4, 0x6bc6, 0x6bc7, 0x6bc8, 0x6bc9, 0x6bca, 0x6bcc, - 0x6bce, 0x6bd0, 0x6bd1, 0x6bd8, 0x6bda, 0x6bdc, 0x6bdd, 0x6bde, - 0x6bdf, 0x6be0, 0x6be2, 0x6be3, 0x6be4, 0x6be5, 0x6be6, 0x6be7, - 0x6be8, 0x6be9, 0x6bec, 0x6bed, 0x6bee, 0x6bf0, 0x6bf1, 0x6bf2, - 0x6bf4, 0x6bf6, 0x6bf7, 0x6bf8, 0x6bfa, 0x6bfb, 0x6bfc, 0x6bfe, - 0x6bff, 0x6c00, 0x6c01, 0x6c02, 0x6c03, 0x6c04, 0x6c08, 0x6c09, - 0x6c0a, 0x6c0b, 0x6c0c, 0x6c0e, 0x6c12, 0x6c17, 0x6c1c, 0x6c1d, - 0x6c1e, 0x6c20, 0x6c23, 0x6c25, 0x6c2b, 0x6c2c, 0x6c2d, 0x6c31, - 0x6c33, 0x6c36, 0x6c37, 0x6c39, 0x6c3a, 0x6c3b, 0x6c3c, 0x6c3e, - 0x6c3f, 0x6c43, 0x6c44, 0x6c45, 0x6c48, 0x6c4b, 0x6c4c, 0x6c4d, - 0x6c4e, 0x6c4f, 0x6c51, 0x6c52, 0x6c53, 0x6c56, 0x6c58, 0x003f, - /* lead byte 9b */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6c59, 0x6c5a, 0x6c62, 0x6c63, 0x6c65, 0x6c66, 0x6c67, 0x6c6b, - 0x6c6c, 0x6c6d, 0x6c6e, 0x6c6f, 0x6c71, 0x6c73, 0x6c75, 0x6c77, - 0x6c78, 0x6c7a, 0x6c7b, 0x6c7c, 0x6c7f, 0x6c80, 0x6c84, 0x6c87, - 0x6c8a, 0x6c8b, 0x6c8d, 0x6c8e, 0x6c91, 0x6c92, 0x6c95, 0x6c96, - 0x6c97, 0x6c98, 0x6c9a, 0x6c9c, 0x6c9d, 0x6c9e, 0x6ca0, 0x6ca2, - 0x6ca8, 0x6cac, 0x6caf, 0x6cb0, 0x6cb4, 0x6cb5, 0x6cb6, 0x6cb7, - 0x6cba, 0x6cc0, 0x6cc1, 0x6cc2, 0x6cc3, 0x6cc6, 0x6cc7, 0x6cc8, - 0x6ccb, 0x6ccd, 0x6cce, 0x6ccf, 0x6cd1, 0x6cd2, 0x6cd8, 0x003f, - 0x6cd9, 0x6cda, 0x6cdc, 0x6cdd, 0x6cdf, 0x6ce4, 0x6ce6, 0x6ce7, - 0x6ce9, 0x6cec, 0x6ced, 0x6cf2, 0x6cf4, 0x6cf9, 0x6cff, 0x6d00, - 0x6d02, 0x6d03, 0x6d05, 0x6d06, 0x6d08, 0x6d09, 0x6d0a, 0x6d0d, - 0x6d0f, 0x6d10, 0x6d11, 0x6d13, 0x6d14, 0x6d15, 0x6d16, 0x6d18, - 0x6d1c, 0x6d1d, 0x6d1f, 0x6d20, 0x6d21, 0x6d22, 0x6d23, 0x6d24, - 0x6d26, 0x6d28, 0x6d29, 0x6d2c, 0x6d2d, 0x6d2f, 0x6d30, 0x6d34, - 0x6d36, 0x6d37, 0x6d38, 0x6d3a, 0x6d3f, 0x6d40, 0x6d42, 0x6d44, - 0x6d49, 0x6d4c, 0x6d50, 0x6d55, 0x6d56, 0x6d57, 0x6d58, 0x6d5b, - 0x6d5d, 0x6d5f, 0x6d61, 0x6d62, 0x6d64, 0x6d65, 0x6d67, 0x6d68, - 0x6d6b, 0x6d6c, 0x6d6d, 0x6d70, 0x6d71, 0x6d72, 0x6d73, 0x6d75, - 0x6d76, 0x6d79, 0x6d7a, 0x6d7b, 0x6d7d, 0x6d7e, 0x6d7f, 0x6d80, - 0x6d81, 0x6d83, 0x6d84, 0x6d86, 0x6d87, 0x6d8a, 0x6d8b, 0x6d8d, - 0x6d8f, 0x6d90, 0x6d92, 0x6d96, 0x6d97, 0x6d98, 0x6d99, 0x6d9a, - 0x6d9c, 0x6da2, 0x6da5, 0x6dac, 0x6dad, 0x6db0, 0x6db1, 0x6db3, - 0x6db4, 0x6db6, 0x6db7, 0x6db9, 0x6dba, 0x6dbb, 0x6dbc, 0x6dbd, - 0x6dbe, 0x6dc1, 0x6dc2, 0x6dc3, 0x6dc8, 0x6dc9, 0x6dca, 0x003f, - /* lead byte 9c */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6dcd, 0x6dce, 0x6dcf, 0x6dd0, 0x6dd2, 0x6dd3, 0x6dd4, 0x6dd5, - 0x6dd7, 0x6dda, 0x6ddb, 0x6ddc, 0x6ddf, 0x6de2, 0x6de3, 0x6de5, - 0x6de7, 0x6de8, 0x6de9, 0x6dea, 0x6ded, 0x6def, 0x6df0, 0x6df2, - 0x6df4, 0x6df5, 0x6df6, 0x6df8, 0x6dfa, 0x6dfd, 0x6dfe, 0x6dff, - 0x6e00, 0x6e01, 0x6e02, 0x6e03, 0x6e04, 0x6e06, 0x6e07, 0x6e08, - 0x6e09, 0x6e0b, 0x6e0f, 0x6e12, 0x6e13, 0x6e15, 0x6e18, 0x6e19, - 0x6e1b, 0x6e1c, 0x6e1e, 0x6e1f, 0x6e22, 0x6e26, 0x6e27, 0x6e28, - 0x6e2a, 0x6e2c, 0x6e2e, 0x6e30, 0x6e31, 0x6e33, 0x6e35, 0x003f, - 0x6e36, 0x6e37, 0x6e39, 0x6e3b, 0x6e3c, 0x6e3d, 0x6e3e, 0x6e3f, - 0x6e40, 0x6e41, 0x6e42, 0x6e45, 0x6e46, 0x6e47, 0x6e48, 0x6e49, - 0x6e4a, 0x6e4b, 0x6e4c, 0x6e4f, 0x6e50, 0x6e51, 0x6e52, 0x6e55, - 0x6e57, 0x6e59, 0x6e5a, 0x6e5c, 0x6e5d, 0x6e5e, 0x6e60, 0x6e61, - 0x6e62, 0x6e63, 0x6e64, 0x6e65, 0x6e66, 0x6e67, 0x6e68, 0x6e69, - 0x6e6a, 0x6e6c, 0x6e6d, 0x6e6f, 0x6e70, 0x6e71, 0x6e72, 0x6e73, - 0x6e74, 0x6e75, 0x6e76, 0x6e77, 0x6e78, 0x6e79, 0x6e7a, 0x6e7b, - 0x6e7c, 0x6e7d, 0x6e80, 0x6e81, 0x6e82, 0x6e84, 0x6e87, 0x6e88, - 0x6e8a, 0x6e8b, 0x6e8c, 0x6e8d, 0x6e8e, 0x6e91, 0x6e92, 0x6e93, - 0x6e94, 0x6e95, 0x6e96, 0x6e97, 0x6e99, 0x6e9a, 0x6e9b, 0x6e9d, - 0x6e9e, 0x6ea0, 0x6ea1, 0x6ea3, 0x6ea4, 0x6ea6, 0x6ea8, 0x6ea9, - 0x6eab, 0x6eac, 0x6ead, 0x6eae, 0x6eb0, 0x6eb3, 0x6eb5, 0x6eb8, - 0x6eb9, 0x6ebc, 0x6ebe, 0x6ebf, 0x6ec0, 0x6ec3, 0x6ec4, 0x6ec5, - 0x6ec6, 0x6ec8, 0x6ec9, 0x6eca, 0x6ecc, 0x6ecd, 0x6ece, 0x6ed0, - 0x6ed2, 0x6ed6, 0x6ed8, 0x6ed9, 0x6edb, 0x6edc, 0x6edd, 0x6ee3, - 0x6ee7, 0x6eea, 0x6eeb, 0x6eec, 0x6eed, 0x6eee, 0x6eef, 0x003f, - /* lead byte 9d */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6ef0, 0x6ef1, 0x6ef2, 0x6ef3, 0x6ef5, 0x6ef6, 0x6ef7, 0x6ef8, - 0x6efa, 0x6efb, 0x6efc, 0x6efd, 0x6efe, 0x6eff, 0x6f00, 0x6f01, - 0x6f03, 0x6f04, 0x6f05, 0x6f07, 0x6f08, 0x6f0a, 0x6f0b, 0x6f0c, - 0x6f0d, 0x6f0e, 0x6f10, 0x6f11, 0x6f12, 0x6f16, 0x6f17, 0x6f18, - 0x6f19, 0x6f1a, 0x6f1b, 0x6f1c, 0x6f1d, 0x6f1e, 0x6f1f, 0x6f21, - 0x6f22, 0x6f23, 0x6f25, 0x6f26, 0x6f27, 0x6f28, 0x6f2c, 0x6f2e, - 0x6f30, 0x6f32, 0x6f34, 0x6f35, 0x6f37, 0x6f38, 0x6f39, 0x6f3a, - 0x6f3b, 0x6f3c, 0x6f3d, 0x6f3f, 0x6f40, 0x6f41, 0x6f42, 0x003f, - 0x6f43, 0x6f44, 0x6f45, 0x6f48, 0x6f49, 0x6f4a, 0x6f4c, 0x6f4e, - 0x6f4f, 0x6f50, 0x6f51, 0x6f52, 0x6f53, 0x6f54, 0x6f55, 0x6f56, - 0x6f57, 0x6f59, 0x6f5a, 0x6f5b, 0x6f5d, 0x6f5f, 0x6f60, 0x6f61, - 0x6f63, 0x6f64, 0x6f65, 0x6f67, 0x6f68, 0x6f69, 0x6f6a, 0x6f6b, - 0x6f6c, 0x6f6f, 0x6f70, 0x6f71, 0x6f73, 0x6f75, 0x6f76, 0x6f77, - 0x6f79, 0x6f7b, 0x6f7d, 0x6f7e, 0x6f7f, 0x6f80, 0x6f81, 0x6f82, - 0x6f83, 0x6f85, 0x6f86, 0x6f87, 0x6f8a, 0x6f8b, 0x6f8f, 0x6f90, - 0x6f91, 0x6f92, 0x6f93, 0x6f94, 0x6f95, 0x6f96, 0x6f97, 0x6f98, - 0x6f99, 0x6f9a, 0x6f9b, 0x6f9d, 0x6f9e, 0x6f9f, 0x6fa0, 0x6fa2, - 0x6fa3, 0x6fa4, 0x6fa5, 0x6fa6, 0x6fa8, 0x6fa9, 0x6faa, 0x6fab, - 0x6fac, 0x6fad, 0x6fae, 0x6faf, 0x6fb0, 0x6fb1, 0x6fb2, 0x6fb4, - 0x6fb5, 0x6fb7, 0x6fb8, 0x6fba, 0x6fbb, 0x6fbc, 0x6fbd, 0x6fbe, - 0x6fbf, 0x6fc1, 0x6fc3, 0x6fc4, 0x6fc5, 0x6fc6, 0x6fc7, 0x6fc8, - 0x6fca, 0x6fcb, 0x6fcc, 0x6fcd, 0x6fce, 0x6fcf, 0x6fd0, 0x6fd3, - 0x6fd4, 0x6fd5, 0x6fd6, 0x6fd7, 0x6fd8, 0x6fd9, 0x6fda, 0x6fdb, - 0x6fdc, 0x6fdd, 0x6fdf, 0x6fe2, 0x6fe3, 0x6fe4, 0x6fe5, 0x003f, - /* lead byte 9e */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6fe6, 0x6fe7, 0x6fe8, 0x6fe9, 0x6fea, 0x6feb, 0x6fec, 0x6fed, - 0x6ff0, 0x6ff1, 0x6ff2, 0x6ff3, 0x6ff4, 0x6ff5, 0x6ff6, 0x6ff7, - 0x6ff8, 0x6ff9, 0x6ffa, 0x6ffb, 0x6ffc, 0x6ffd, 0x6ffe, 0x6fff, - 0x7000, 0x7001, 0x7002, 0x7003, 0x7004, 0x7005, 0x7006, 0x7007, - 0x7008, 0x7009, 0x700a, 0x700b, 0x700c, 0x700d, 0x700e, 0x700f, - 0x7010, 0x7012, 0x7013, 0x7014, 0x7015, 0x7016, 0x7017, 0x7018, - 0x7019, 0x701c, 0x701d, 0x701e, 0x701f, 0x7020, 0x7021, 0x7022, - 0x7024, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 0x702a, 0x003f, - 0x702b, 0x702c, 0x702d, 0x702e, 0x702f, 0x7030, 0x7031, 0x7032, - 0x7033, 0x7034, 0x7036, 0x7037, 0x7038, 0x703a, 0x703b, 0x703c, - 0x703d, 0x703e, 0x703f, 0x7040, 0x7041, 0x7042, 0x7043, 0x7044, - 0x7045, 0x7046, 0x7047, 0x7048, 0x7049, 0x704a, 0x704b, 0x704d, - 0x704e, 0x7050, 0x7051, 0x7052, 0x7053, 0x7054, 0x7055, 0x7056, - 0x7057, 0x7058, 0x7059, 0x705a, 0x705b, 0x705c, 0x705d, 0x705f, - 0x7060, 0x7061, 0x7062, 0x7063, 0x7064, 0x7065, 0x7066, 0x7067, - 0x7068, 0x7069, 0x706a, 0x706e, 0x7071, 0x7072, 0x7073, 0x7074, - 0x7077, 0x7079, 0x707a, 0x707b, 0x707d, 0x7081, 0x7082, 0x7083, - 0x7084, 0x7086, 0x7087, 0x7088, 0x708b, 0x708c, 0x708d, 0x708f, - 0x7090, 0x7091, 0x7093, 0x7097, 0x7098, 0x709a, 0x709b, 0x709e, - 0x709f, 0x70a0, 0x70a1, 0x70a2, 0x70a3, 0x70a4, 0x70a5, 0x70a6, - 0x70a7, 0x70a8, 0x70a9, 0x70aa, 0x70b0, 0x70b2, 0x70b4, 0x70b5, - 0x70b6, 0x70ba, 0x70be, 0x70bf, 0x70c4, 0x70c5, 0x70c6, 0x70c7, - 0x70c9, 0x70cb, 0x70cc, 0x70cd, 0x70ce, 0x70cf, 0x70d0, 0x70d1, - 0x70d2, 0x70d3, 0x70d4, 0x70d5, 0x70d6, 0x70d7, 0x70da, 0x003f, - /* lead byte 9f */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x70dc, 0x70dd, 0x70de, 0x70e0, 0x70e1, 0x70e2, 0x70e3, 0x70e5, - 0x70ea, 0x70ee, 0x70f0, 0x70f1, 0x70f2, 0x70f3, 0x70f4, 0x70f5, - 0x70f6, 0x70f8, 0x70fa, 0x70fb, 0x70fc, 0x70fe, 0x70ff, 0x7100, - 0x7101, 0x7102, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x7108, - 0x710b, 0x710c, 0x710d, 0x710e, 0x710f, 0x7111, 0x7112, 0x7114, - 0x7117, 0x711b, 0x711c, 0x711d, 0x711e, 0x711f, 0x7120, 0x7121, - 0x7122, 0x7123, 0x7124, 0x7125, 0x7127, 0x7128, 0x7129, 0x712a, - 0x712b, 0x712c, 0x712d, 0x712e, 0x7132, 0x7133, 0x7134, 0x003f, - 0x7135, 0x7137, 0x7138, 0x7139, 0x713a, 0x713b, 0x713c, 0x713d, - 0x713e, 0x713f, 0x7140, 0x7141, 0x7142, 0x7143, 0x7144, 0x7146, - 0x7147, 0x7148, 0x7149, 0x714b, 0x714d, 0x714f, 0x7150, 0x7151, - 0x7152, 0x7153, 0x7154, 0x7155, 0x7156, 0x7157, 0x7158, 0x7159, - 0x715a, 0x715b, 0x715d, 0x715f, 0x7160, 0x7161, 0x7162, 0x7163, - 0x7165, 0x7169, 0x716a, 0x716b, 0x716c, 0x716d, 0x716f, 0x7170, - 0x7171, 0x7174, 0x7175, 0x7176, 0x7177, 0x7179, 0x717b, 0x717c, - 0x717e, 0x717f, 0x7180, 0x7181, 0x7182, 0x7183, 0x7185, 0x7186, - 0x7187, 0x7188, 0x7189, 0x718b, 0x718c, 0x718d, 0x718e, 0x7190, - 0x7191, 0x7192, 0x7193, 0x7195, 0x7196, 0x7197, 0x719a, 0x719b, - 0x719c, 0x719d, 0x719e, 0x71a1, 0x71a2, 0x71a3, 0x71a4, 0x71a5, - 0x71a6, 0x71a7, 0x71a9, 0x71aa, 0x71ab, 0x71ad, 0x71ae, 0x71af, - 0x71b0, 0x71b1, 0x71b2, 0x71b4, 0x71b6, 0x71b7, 0x71b8, 0x71ba, - 0x71bb, 0x71bc, 0x71bd, 0x71be, 0x71bf, 0x71c0, 0x71c1, 0x71c2, - 0x71c4, 0x71c5, 0x71c6, 0x71c7, 0x71c8, 0x71c9, 0x71ca, 0x71cb, - 0x71cc, 0x71cd, 0x71cf, 0x71d0, 0x71d1, 0x71d2, 0x71d3, 0x003f, - /* lead byte a0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x71d6, 0x71d7, 0x71d8, 0x71d9, 0x71da, 0x71db, 0x71dc, 0x71dd, - 0x71de, 0x71df, 0x71e1, 0x71e2, 0x71e3, 0x71e4, 0x71e6, 0x71e8, - 0x71e9, 0x71ea, 0x71eb, 0x71ec, 0x71ed, 0x71ef, 0x71f0, 0x71f1, - 0x71f2, 0x71f3, 0x71f4, 0x71f5, 0x71f6, 0x71f7, 0x71f8, 0x71fa, - 0x71fb, 0x71fc, 0x71fd, 0x71fe, 0x71ff, 0x7200, 0x7201, 0x7202, - 0x7203, 0x7204, 0x7205, 0x7207, 0x7208, 0x7209, 0x720a, 0x720b, - 0x720c, 0x720d, 0x720e, 0x720f, 0x7210, 0x7211, 0x7212, 0x7213, - 0x7214, 0x7215, 0x7216, 0x7217, 0x7218, 0x7219, 0x721a, 0x003f, - 0x721b, 0x721c, 0x721e, 0x721f, 0x7220, 0x7221, 0x7222, 0x7223, - 0x7224, 0x7225, 0x7226, 0x7227, 0x7229, 0x722b, 0x722d, 0x722e, - 0x722f, 0x7232, 0x7233, 0x7234, 0x723a, 0x723c, 0x723e, 0x7240, - 0x7241, 0x7242, 0x7243, 0x7244, 0x7245, 0x7246, 0x7249, 0x724a, - 0x724b, 0x724e, 0x724f, 0x7250, 0x7251, 0x7253, 0x7254, 0x7255, - 0x7257, 0x7258, 0x725a, 0x725c, 0x725e, 0x7260, 0x7263, 0x7264, - 0x7265, 0x7268, 0x726a, 0x726b, 0x726c, 0x726d, 0x7270, 0x7271, - 0x7273, 0x7274, 0x7276, 0x7277, 0x7278, 0x727b, 0x727c, 0x727d, - 0x7282, 0x7283, 0x7285, 0x7286, 0x7287, 0x7288, 0x7289, 0x728c, - 0x728e, 0x7290, 0x7291, 0x7293, 0x7294, 0x7295, 0x7296, 0x7297, - 0x7298, 0x7299, 0x729a, 0x729b, 0x729c, 0x729d, 0x729e, 0x72a0, - 0x72a1, 0x72a2, 0x72a3, 0x72a4, 0x72a5, 0x72a6, 0x72a7, 0x72a8, - 0x72a9, 0x72aa, 0x72ab, 0x72ae, 0x72b1, 0x72b2, 0x72b3, 0x72b5, - 0x72ba, 0x72bb, 0x72bc, 0x72bd, 0x72be, 0x72bf, 0x72c0, 0x72c5, - 0x72c6, 0x72c7, 0x72c9, 0x72ca, 0x72cb, 0x72cc, 0x72cf, 0x72d1, - 0x72d3, 0x72d4, 0x72d5, 0x72d6, 0x72d8, 0x72da, 0x72db, 0x003f, - /* lead byte a1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4c6, 0xe4c7, 0xe4c8, 0xe4c9, 0xe4ca, 0xe4cb, 0xe4cc, 0xe4cd, - 0xe4ce, 0xe4cf, 0xe4d0, 0xe4d1, 0xe4d2, 0xe4d3, 0xe4d4, 0xe4d5, - 0xe4d6, 0xe4d7, 0xe4d8, 0xe4d9, 0xe4da, 0xe4db, 0xe4dc, 0xe4dd, - 0xe4de, 0xe4df, 0xe4e0, 0xe4e1, 0xe4e2, 0xe4e3, 0xe4e4, 0xe4e5, - 0xe4e6, 0xe4e7, 0xe4e8, 0xe4e9, 0xe4ea, 0xe4eb, 0xe4ec, 0xe4ed, - 0xe4ee, 0xe4ef, 0xe4f0, 0xe4f1, 0xe4f2, 0xe4f3, 0xe4f4, 0xe4f5, - 0xe4f6, 0xe4f7, 0xe4f8, 0xe4f9, 0xe4fa, 0xe4fb, 0xe4fc, 0xe4fd, - 0xe4fe, 0xe4ff, 0xe500, 0xe501, 0xe502, 0xe503, 0xe504, 0x003f, - 0xe505, 0xe506, 0xe507, 0xe508, 0xe509, 0xe50a, 0xe50b, 0xe50c, - 0xe50d, 0xe50e, 0xe50f, 0xe510, 0xe511, 0xe512, 0xe513, 0xe514, - 0xe515, 0xe516, 0xe517, 0xe518, 0xe519, 0xe51a, 0xe51b, 0xe51c, - 0xe51d, 0xe51e, 0xe51f, 0xe520, 0xe521, 0xe522, 0xe523, 0xe524, - 0xe525, 0x3000, 0x3001, 0x3002, 0x00b7, 0x02c9, 0x02c7, 0x00a8, - 0x3003, 0x3005, 0x2014, 0xff5e, 0x2016, 0x2026, 0x2018, 0x2019, - 0x201c, 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, - 0x300c, 0x300d, 0x300e, 0x300f, 0x3016, 0x3017, 0x3010, 0x3011, - 0x00b1, 0x00d7, 0x00f7, 0x2236, 0x2227, 0x2228, 0x2211, 0x220f, - 0x222a, 0x2229, 0x2208, 0x2237, 0x221a, 0x22a5, 0x2225, 0x2220, - 0x2312, 0x2299, 0x222b, 0x222e, 0x2261, 0x224c, 0x2248, 0x223d, - 0x221d, 0x2260, 0x226e, 0x226f, 0x2264, 0x2265, 0x221e, 0x2235, - 0x2234, 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xff04, - 0x00a4, 0xffe0, 0xffe1, 0x2030, 0x00a7, 0x2116, 0x2606, 0x2605, - 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, - 0x25b2, 0x203b, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0x003f, - /* lead byte a2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe526, 0xe527, 0xe528, 0xe529, 0xe52a, 0xe52b, 0xe52c, 0xe52d, - 0xe52e, 0xe52f, 0xe530, 0xe531, 0xe532, 0xe533, 0xe534, 0xe535, - 0xe536, 0xe537, 0xe538, 0xe539, 0xe53a, 0xe53b, 0xe53c, 0xe53d, - 0xe53e, 0xe53f, 0xe540, 0xe541, 0xe542, 0xe543, 0xe544, 0xe545, - 0xe546, 0xe547, 0xe548, 0xe549, 0xe54a, 0xe54b, 0xe54c, 0xe54d, - 0xe54e, 0xe54f, 0xe550, 0xe551, 0xe552, 0xe553, 0xe554, 0xe555, - 0xe556, 0xe557, 0xe558, 0xe559, 0xe55a, 0xe55b, 0xe55c, 0xe55d, - 0xe55e, 0xe55f, 0xe560, 0xe561, 0xe562, 0xe563, 0xe564, 0x003f, - 0xe565, 0xe566, 0xe567, 0xe568, 0xe569, 0xe56a, 0xe56b, 0xe56c, - 0xe56d, 0xe56e, 0xe56f, 0xe570, 0xe571, 0xe572, 0xe573, 0xe574, - 0xe575, 0xe576, 0xe577, 0xe578, 0xe579, 0xe57a, 0xe57b, 0xe57c, - 0xe57d, 0xe57e, 0xe57f, 0xe580, 0xe581, 0xe582, 0xe583, 0xe584, - 0xe585, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, - 0x2177, 0x2178, 0x2179, 0xe766, 0xe767, 0xe768, 0xe769, 0xe76a, - 0xe76b, 0x2488, 0x2489, 0x248a, 0x248b, 0x248c, 0x248d, 0x248e, - 0x248f, 0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, - 0x2497, 0x2498, 0x2499, 0x249a, 0x249b, 0x2474, 0x2475, 0x2476, - 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, - 0x247f, 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, - 0x2487, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, - 0x2467, 0x2468, 0x2469, 0xe76c, 0xe76d, 0x3220, 0x3221, 0x3222, - 0x3223, 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0xe76e, - 0xe76f, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, - 0x2167, 0x2168, 0x2169, 0x216a, 0x216b, 0xe770, 0xe771, 0x003f, - /* lead byte a3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe586, 0xe587, 0xe588, 0xe589, 0xe58a, 0xe58b, 0xe58c, 0xe58d, - 0xe58e, 0xe58f, 0xe590, 0xe591, 0xe592, 0xe593, 0xe594, 0xe595, - 0xe596, 0xe597, 0xe598, 0xe599, 0xe59a, 0xe59b, 0xe59c, 0xe59d, - 0xe59e, 0xe59f, 0xe5a0, 0xe5a1, 0xe5a2, 0xe5a3, 0xe5a4, 0xe5a5, - 0xe5a6, 0xe5a7, 0xe5a8, 0xe5a9, 0xe5aa, 0xe5ab, 0xe5ac, 0xe5ad, - 0xe5ae, 0xe5af, 0xe5b0, 0xe5b1, 0xe5b2, 0xe5b3, 0xe5b4, 0xe5b5, - 0xe5b6, 0xe5b7, 0xe5b8, 0xe5b9, 0xe5ba, 0xe5bb, 0xe5bc, 0xe5bd, - 0xe5be, 0xe5bf, 0xe5c0, 0xe5c1, 0xe5c2, 0xe5c3, 0xe5c4, 0x003f, - 0xe5c5, 0xe5c6, 0xe5c7, 0xe5c8, 0xe5c9, 0xe5ca, 0xe5cb, 0xe5cc, - 0xe5cd, 0xe5ce, 0xe5cf, 0xe5d0, 0xe5d1, 0xe5d2, 0xe5d3, 0xe5d4, - 0xe5d5, 0xe5d6, 0xe5d7, 0xe5d8, 0xe5d9, 0xe5da, 0xe5db, 0xe5dc, - 0xe5dd, 0xe5de, 0xe5df, 0xe5e0, 0xe5e1, 0xe5e2, 0xe5e3, 0xe5e4, - 0xe5e5, 0xff01, 0xff02, 0xff03, 0xffe5, 0xff05, 0xff06, 0xff07, - 0xff08, 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, - 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, - 0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, - 0xff20, 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, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff3f, - 0xff40, 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, 0xff5b, 0xff5c, 0xff5d, 0xffe3, 0x003f, - /* lead byte a4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe5e6, 0xe5e7, 0xe5e8, 0xe5e9, 0xe5ea, 0xe5eb, 0xe5ec, 0xe5ed, - 0xe5ee, 0xe5ef, 0xe5f0, 0xe5f1, 0xe5f2, 0xe5f3, 0xe5f4, 0xe5f5, - 0xe5f6, 0xe5f7, 0xe5f8, 0xe5f9, 0xe5fa, 0xe5fb, 0xe5fc, 0xe5fd, - 0xe5fe, 0xe5ff, 0xe600, 0xe601, 0xe602, 0xe603, 0xe604, 0xe605, - 0xe606, 0xe607, 0xe608, 0xe609, 0xe60a, 0xe60b, 0xe60c, 0xe60d, - 0xe60e, 0xe60f, 0xe610, 0xe611, 0xe612, 0xe613, 0xe614, 0xe615, - 0xe616, 0xe617, 0xe618, 0xe619, 0xe61a, 0xe61b, 0xe61c, 0xe61d, - 0xe61e, 0xe61f, 0xe620, 0xe621, 0xe622, 0xe623, 0xe624, 0x003f, - 0xe625, 0xe626, 0xe627, 0xe628, 0xe629, 0xe62a, 0xe62b, 0xe62c, - 0xe62d, 0xe62e, 0xe62f, 0xe630, 0xe631, 0xe632, 0xe633, 0xe634, - 0xe635, 0xe636, 0xe637, 0xe638, 0xe639, 0xe63a, 0xe63b, 0xe63c, - 0xe63d, 0xe63e, 0xe63f, 0xe640, 0xe641, 0xe642, 0xe643, 0xe644, - 0xe645, 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, 0xe772, 0xe773, 0xe774, 0xe775, - 0xe776, 0xe777, 0xe778, 0xe779, 0xe77a, 0xe77b, 0xe77c, 0x003f, - /* lead byte a5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe646, 0xe647, 0xe648, 0xe649, 0xe64a, 0xe64b, 0xe64c, 0xe64d, - 0xe64e, 0xe64f, 0xe650, 0xe651, 0xe652, 0xe653, 0xe654, 0xe655, - 0xe656, 0xe657, 0xe658, 0xe659, 0xe65a, 0xe65b, 0xe65c, 0xe65d, - 0xe65e, 0xe65f, 0xe660, 0xe661, 0xe662, 0xe663, 0xe664, 0xe665, - 0xe666, 0xe667, 0xe668, 0xe669, 0xe66a, 0xe66b, 0xe66c, 0xe66d, - 0xe66e, 0xe66f, 0xe670, 0xe671, 0xe672, 0xe673, 0xe674, 0xe675, - 0xe676, 0xe677, 0xe678, 0xe679, 0xe67a, 0xe67b, 0xe67c, 0xe67d, - 0xe67e, 0xe67f, 0xe680, 0xe681, 0xe682, 0xe683, 0xe684, 0x003f, - 0xe685, 0xe686, 0xe687, 0xe688, 0xe689, 0xe68a, 0xe68b, 0xe68c, - 0xe68d, 0xe68e, 0xe68f, 0xe690, 0xe691, 0xe692, 0xe693, 0xe694, - 0xe695, 0xe696, 0xe697, 0xe698, 0xe699, 0xe69a, 0xe69b, 0xe69c, - 0xe69d, 0xe69e, 0xe69f, 0xe6a0, 0xe6a1, 0xe6a2, 0xe6a3, 0xe6a4, - 0xe6a5, 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, - 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, - 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, - 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xe77d, - 0xe77e, 0xe77f, 0xe780, 0xe781, 0xe782, 0xe783, 0xe784, 0x003f, - /* lead byte a6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6a6, 0xe6a7, 0xe6a8, 0xe6a9, 0xe6aa, 0xe6ab, 0xe6ac, 0xe6ad, - 0xe6ae, 0xe6af, 0xe6b0, 0xe6b1, 0xe6b2, 0xe6b3, 0xe6b4, 0xe6b5, - 0xe6b6, 0xe6b7, 0xe6b8, 0xe6b9, 0xe6ba, 0xe6bb, 0xe6bc, 0xe6bd, - 0xe6be, 0xe6bf, 0xe6c0, 0xe6c1, 0xe6c2, 0xe6c3, 0xe6c4, 0xe6c5, - 0xe6c6, 0xe6c7, 0xe6c8, 0xe6c9, 0xe6ca, 0xe6cb, 0xe6cc, 0xe6cd, - 0xe6ce, 0xe6cf, 0xe6d0, 0xe6d1, 0xe6d2, 0xe6d3, 0xe6d4, 0xe6d5, - 0xe6d6, 0xe6d7, 0xe6d8, 0xe6d9, 0xe6da, 0xe6db, 0xe6dc, 0xe6dd, - 0xe6de, 0xe6df, 0xe6e0, 0xe6e1, 0xe6e2, 0xe6e3, 0xe6e4, 0x003f, - 0xe6e5, 0xe6e6, 0xe6e7, 0xe6e8, 0xe6e9, 0xe6ea, 0xe6eb, 0xe6ec, - 0xe6ed, 0xe6ee, 0xe6ef, 0xe6f0, 0xe6f1, 0xe6f2, 0xe6f3, 0xe6f4, - 0xe6f5, 0xe6f6, 0xe6f7, 0xe6f8, 0xe6f9, 0xe6fa, 0xe6fb, 0xe6fc, - 0xe6fd, 0xe6fe, 0xe6ff, 0xe700, 0xe701, 0xe702, 0xe703, 0xe704, - 0xe705, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, - 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, - 0x03a9, 0xe785, 0xe786, 0xe787, 0xe788, 0xe789, 0xe78a, 0xe78b, - 0xe78c, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, - 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, - 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, - 0x03c9, 0xe78d, 0xe78e, 0xe78f, 0xe790, 0xe791, 0xe792, 0xe793, - 0xfe35, 0xfe36, 0xfe39, 0xfe3a, 0xfe3f, 0xfe40, 0xfe3d, 0xfe3e, - 0xfe41, 0xfe42, 0xfe43, 0xfe44, 0xe794, 0xe795, 0xfe3b, 0xfe3c, - 0xfe37, 0xfe38, 0xfe31, 0xe796, 0xfe33, 0xfe34, 0xe797, 0xe798, - 0xe799, 0xe79a, 0xe79b, 0xe79c, 0xe79d, 0xe79e, 0xe79f, 0x003f, - /* lead byte a7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe706, 0xe707, 0xe708, 0xe709, 0xe70a, 0xe70b, 0xe70c, 0xe70d, - 0xe70e, 0xe70f, 0xe710, 0xe711, 0xe712, 0xe713, 0xe714, 0xe715, - 0xe716, 0xe717, 0xe718, 0xe719, 0xe71a, 0xe71b, 0xe71c, 0xe71d, - 0xe71e, 0xe71f, 0xe720, 0xe721, 0xe722, 0xe723, 0xe724, 0xe725, - 0xe726, 0xe727, 0xe728, 0xe729, 0xe72a, 0xe72b, 0xe72c, 0xe72d, - 0xe72e, 0xe72f, 0xe730, 0xe731, 0xe732, 0xe733, 0xe734, 0xe735, - 0xe736, 0xe737, 0xe738, 0xe739, 0xe73a, 0xe73b, 0xe73c, 0xe73d, - 0xe73e, 0xe73f, 0xe740, 0xe741, 0xe742, 0xe743, 0xe744, 0x003f, - 0xe745, 0xe746, 0xe747, 0xe748, 0xe749, 0xe74a, 0xe74b, 0xe74c, - 0xe74d, 0xe74e, 0xe74f, 0xe750, 0xe751, 0xe752, 0xe753, 0xe754, - 0xe755, 0xe756, 0xe757, 0xe758, 0xe759, 0xe75a, 0xe75b, 0xe75c, - 0xe75d, 0xe75e, 0xe75f, 0xe760, 0xe761, 0xe762, 0xe763, 0xe764, - 0xe765, 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, 0xe7a0, 0xe7a1, 0xe7a2, 0xe7a3, 0xe7a4, 0xe7a5, - 0xe7a6, 0xe7a7, 0xe7a8, 0xe7a9, 0xe7aa, 0xe7ab, 0xe7ac, 0xe7ad, - 0xe7ae, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, - 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, - 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, - 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, - 0x044e, 0x044f, 0xe7af, 0xe7b0, 0xe7b1, 0xe7b2, 0xe7b3, 0xe7b4, - 0xe7b5, 0xe7b6, 0xe7b7, 0xe7b8, 0xe7b9, 0xe7ba, 0xe7bb, 0x003f, - /* lead byte a8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x02ca, 0x02cb, 0x02d9, 0x2013, 0x2015, 0x2025, 0x2035, 0x2105, - 0x2109, 0x2196, 0x2197, 0x2198, 0x2199, 0x2215, 0x221f, 0x2223, - 0x2252, 0x2266, 0x2267, 0x22bf, 0x2550, 0x2551, 0x2552, 0x2553, - 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, - 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, - 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, - 0x256c, 0x256d, 0x256e, 0x256f, 0x2570, 0x2571, 0x2572, 0x2573, - 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, 0x003f, - 0x2588, 0x2589, 0x258a, 0x258b, 0x258c, 0x258d, 0x258e, 0x258f, - 0x2593, 0x2594, 0x2595, 0x25bc, 0x25bd, 0x25e2, 0x25e3, 0x25e4, - 0x25e5, 0x2609, 0x2295, 0x3012, 0x301d, 0x301e, 0xe7bc, 0xe7bd, - 0xe7be, 0xe7bf, 0xe7c0, 0xe7c1, 0xe7c2, 0xe7c3, 0xe7c4, 0xe7c5, - 0xe7c6, 0x0101, 0x00e1, 0x01ce, 0x00e0, 0x0113, 0x00e9, 0x011b, - 0x00e8, 0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, - 0x00f2, 0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, - 0x01dc, 0x00fc, 0x00ea, 0x0251, 0xe7c7, 0x0144, 0x0148, 0xe7c8, - 0x0261, 0xe7c9, 0xe7ca, 0xe7cb, 0xe7cc, 0x3105, 0x3106, 0x3107, - 0x3108, 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, - 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, - 0x3118, 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, - 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, - 0x3128, 0x3129, 0xe7cd, 0xe7ce, 0xe7cf, 0xe7d0, 0xe7d1, 0xe7d2, - 0xe7d3, 0xe7d4, 0xe7d5, 0xe7d6, 0xe7d7, 0xe7d8, 0xe7d9, 0xe7da, - 0xe7db, 0xe7dc, 0xe7dd, 0xe7de, 0xe7df, 0xe7e0, 0xe7e1, 0x003f, - /* lead byte a9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, - 0x3029, 0x32a3, 0x338e, 0x338f, 0x339c, 0x339d, 0x339e, 0x33a1, - 0x33c4, 0x33ce, 0x33d1, 0x33d2, 0x33d5, 0xfe30, 0xffe2, 0xffe4, - 0xe7e2, 0x2121, 0x3231, 0xe7e3, 0x2010, 0xe7e4, 0xe7e5, 0xe7e6, - 0x30fc, 0x309b, 0x309c, 0x30fd, 0x30fe, 0x3006, 0x309d, 0x309e, - 0xfe49, 0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 0xfe50, - 0xfe51, 0xfe52, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe59, 0xfe5a, - 0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0xfe5f, 0xfe60, 0xfe61, 0x003f, - 0xfe62, 0xfe63, 0xfe64, 0xfe65, 0xfe66, 0xfe68, 0xfe69, 0xfe6a, - 0xfe6b, 0xe7e7, 0xe7e8, 0xe7e9, 0xe7ea, 0xe7eb, 0xe7ec, 0xe7ed, - 0xe7ee, 0xe7ef, 0xe7f0, 0xe7f1, 0xe7f2, 0xe7f3, 0x3007, 0xe7f4, - 0xe7f5, 0xe7f6, 0xe7f7, 0xe7f8, 0xe7f9, 0xe7fa, 0xe7fb, 0xe7fc, - 0xe7fd, 0xe7fe, 0xe7ff, 0xe800, 0x2500, 0x2501, 0x2502, 0x2503, - 0x2504, 0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 0x250a, 0x250b, - 0x250c, 0x250d, 0x250e, 0x250f, 0x2510, 0x2511, 0x2512, 0x2513, - 0x2514, 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251a, 0x251b, - 0x251c, 0x251d, 0x251e, 0x251f, 0x2520, 0x2521, 0x2522, 0x2523, - 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, - 0x252c, 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, - 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, - 0x253c, 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, - 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, - 0xe801, 0xe802, 0xe803, 0xe804, 0xe805, 0xe806, 0xe807, 0xe808, - 0xe809, 0xe80a, 0xe80b, 0xe80c, 0xe80d, 0xe80e, 0xe80f, 0x003f, - /* lead byte aa */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x72dc, 0x72dd, 0x72df, 0x72e2, 0x72e3, 0x72e4, 0x72e5, 0x72e6, - 0x72e7, 0x72ea, 0x72eb, 0x72f5, 0x72f6, 0x72f9, 0x72fd, 0x72fe, - 0x72ff, 0x7300, 0x7302, 0x7304, 0x7305, 0x7306, 0x7307, 0x7308, - 0x7309, 0x730b, 0x730c, 0x730d, 0x730f, 0x7310, 0x7311, 0x7312, - 0x7314, 0x7318, 0x7319, 0x731a, 0x731f, 0x7320, 0x7323, 0x7324, - 0x7326, 0x7327, 0x7328, 0x732d, 0x732f, 0x7330, 0x7332, 0x7333, - 0x7335, 0x7336, 0x733a, 0x733b, 0x733c, 0x733d, 0x7340, 0x7341, - 0x7342, 0x7343, 0x7344, 0x7345, 0x7346, 0x7347, 0x7348, 0x003f, - 0x7349, 0x734a, 0x734b, 0x734c, 0x734e, 0x734f, 0x7351, 0x7353, - 0x7354, 0x7355, 0x7356, 0x7358, 0x7359, 0x735a, 0x735b, 0x735c, - 0x735d, 0x735e, 0x735f, 0x7361, 0x7362, 0x7363, 0x7364, 0x7365, - 0x7366, 0x7367, 0x7368, 0x7369, 0x736a, 0x736b, 0x736e, 0x7370, - 0x7371, 0xe000, 0xe001, 0xe002, 0xe003, 0xe004, 0xe005, 0xe006, - 0xe007, 0xe008, 0xe009, 0xe00a, 0xe00b, 0xe00c, 0xe00d, 0xe00e, - 0xe00f, 0xe010, 0xe011, 0xe012, 0xe013, 0xe014, 0xe015, 0xe016, - 0xe017, 0xe018, 0xe019, 0xe01a, 0xe01b, 0xe01c, 0xe01d, 0xe01e, - 0xe01f, 0xe020, 0xe021, 0xe022, 0xe023, 0xe024, 0xe025, 0xe026, - 0xe027, 0xe028, 0xe029, 0xe02a, 0xe02b, 0xe02c, 0xe02d, 0xe02e, - 0xe02f, 0xe030, 0xe031, 0xe032, 0xe033, 0xe034, 0xe035, 0xe036, - 0xe037, 0xe038, 0xe039, 0xe03a, 0xe03b, 0xe03c, 0xe03d, 0xe03e, - 0xe03f, 0xe040, 0xe041, 0xe042, 0xe043, 0xe044, 0xe045, 0xe046, - 0xe047, 0xe048, 0xe049, 0xe04a, 0xe04b, 0xe04c, 0xe04d, 0xe04e, - 0xe04f, 0xe050, 0xe051, 0xe052, 0xe053, 0xe054, 0xe055, 0xe056, - 0xe057, 0xe058, 0xe059, 0xe05a, 0xe05b, 0xe05c, 0xe05d, 0x003f, - /* lead byte ab */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7372, 0x7373, 0x7374, 0x7375, 0x7376, 0x7377, 0x7378, 0x7379, - 0x737a, 0x737b, 0x737c, 0x737d, 0x737f, 0x7380, 0x7381, 0x7382, - 0x7383, 0x7385, 0x7386, 0x7388, 0x738a, 0x738c, 0x738d, 0x738f, - 0x7390, 0x7392, 0x7393, 0x7394, 0x7395, 0x7397, 0x7398, 0x7399, - 0x739a, 0x739c, 0x739d, 0x739e, 0x73a0, 0x73a1, 0x73a3, 0x73a4, - 0x73a5, 0x73a6, 0x73a7, 0x73a8, 0x73aa, 0x73ac, 0x73ad, 0x73b1, - 0x73b4, 0x73b5, 0x73b6, 0x73b8, 0x73b9, 0x73bc, 0x73bd, 0x73be, - 0x73bf, 0x73c1, 0x73c3, 0x73c4, 0x73c5, 0x73c6, 0x73c7, 0x003f, - 0x73cb, 0x73cc, 0x73ce, 0x73d2, 0x73d3, 0x73d4, 0x73d5, 0x73d6, - 0x73d7, 0x73d8, 0x73da, 0x73db, 0x73dc, 0x73dd, 0x73df, 0x73e1, - 0x73e2, 0x73e3, 0x73e4, 0x73e6, 0x73e8, 0x73ea, 0x73eb, 0x73ec, - 0x73ee, 0x73ef, 0x73f0, 0x73f1, 0x73f3, 0x73f4, 0x73f5, 0x73f6, - 0x73f7, 0xe05e, 0xe05f, 0xe060, 0xe061, 0xe062, 0xe063, 0xe064, - 0xe065, 0xe066, 0xe067, 0xe068, 0xe069, 0xe06a, 0xe06b, 0xe06c, - 0xe06d, 0xe06e, 0xe06f, 0xe070, 0xe071, 0xe072, 0xe073, 0xe074, - 0xe075, 0xe076, 0xe077, 0xe078, 0xe079, 0xe07a, 0xe07b, 0xe07c, - 0xe07d, 0xe07e, 0xe07f, 0xe080, 0xe081, 0xe082, 0xe083, 0xe084, - 0xe085, 0xe086, 0xe087, 0xe088, 0xe089, 0xe08a, 0xe08b, 0xe08c, - 0xe08d, 0xe08e, 0xe08f, 0xe090, 0xe091, 0xe092, 0xe093, 0xe094, - 0xe095, 0xe096, 0xe097, 0xe098, 0xe099, 0xe09a, 0xe09b, 0xe09c, - 0xe09d, 0xe09e, 0xe09f, 0xe0a0, 0xe0a1, 0xe0a2, 0xe0a3, 0xe0a4, - 0xe0a5, 0xe0a6, 0xe0a7, 0xe0a8, 0xe0a9, 0xe0aa, 0xe0ab, 0xe0ac, - 0xe0ad, 0xe0ae, 0xe0af, 0xe0b0, 0xe0b1, 0xe0b2, 0xe0b3, 0xe0b4, - 0xe0b5, 0xe0b6, 0xe0b7, 0xe0b8, 0xe0b9, 0xe0ba, 0xe0bb, 0x003f, - /* lead byte ac */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x73f8, 0x73f9, 0x73fa, 0x73fb, 0x73fc, 0x73fd, 0x73fe, 0x73ff, - 0x7400, 0x7401, 0x7402, 0x7404, 0x7407, 0x7408, 0x740b, 0x740c, - 0x740d, 0x740e, 0x7411, 0x7412, 0x7413, 0x7414, 0x7415, 0x7416, - 0x7417, 0x7418, 0x7419, 0x741c, 0x741d, 0x741e, 0x741f, 0x7420, - 0x7421, 0x7423, 0x7424, 0x7427, 0x7429, 0x742b, 0x742d, 0x742f, - 0x7431, 0x7432, 0x7437, 0x7438, 0x7439, 0x743a, 0x743b, 0x743d, - 0x743e, 0x743f, 0x7440, 0x7442, 0x7443, 0x7444, 0x7445, 0x7446, - 0x7447, 0x7448, 0x7449, 0x744a, 0x744b, 0x744c, 0x744d, 0x003f, - 0x744e, 0x744f, 0x7450, 0x7451, 0x7452, 0x7453, 0x7454, 0x7456, - 0x7458, 0x745d, 0x7460, 0x7461, 0x7462, 0x7463, 0x7464, 0x7465, - 0x7466, 0x7467, 0x7468, 0x7469, 0x746a, 0x746b, 0x746c, 0x746e, - 0x746f, 0x7471, 0x7472, 0x7473, 0x7474, 0x7475, 0x7478, 0x7479, - 0x747a, 0xe0bc, 0xe0bd, 0xe0be, 0xe0bf, 0xe0c0, 0xe0c1, 0xe0c2, - 0xe0c3, 0xe0c4, 0xe0c5, 0xe0c6, 0xe0c7, 0xe0c8, 0xe0c9, 0xe0ca, - 0xe0cb, 0xe0cc, 0xe0cd, 0xe0ce, 0xe0cf, 0xe0d0, 0xe0d1, 0xe0d2, - 0xe0d3, 0xe0d4, 0xe0d5, 0xe0d6, 0xe0d7, 0xe0d8, 0xe0d9, 0xe0da, - 0xe0db, 0xe0dc, 0xe0dd, 0xe0de, 0xe0df, 0xe0e0, 0xe0e1, 0xe0e2, - 0xe0e3, 0xe0e4, 0xe0e5, 0xe0e6, 0xe0e7, 0xe0e8, 0xe0e9, 0xe0ea, - 0xe0eb, 0xe0ec, 0xe0ed, 0xe0ee, 0xe0ef, 0xe0f0, 0xe0f1, 0xe0f2, - 0xe0f3, 0xe0f4, 0xe0f5, 0xe0f6, 0xe0f7, 0xe0f8, 0xe0f9, 0xe0fa, - 0xe0fb, 0xe0fc, 0xe0fd, 0xe0fe, 0xe0ff, 0xe100, 0xe101, 0xe102, - 0xe103, 0xe104, 0xe105, 0xe106, 0xe107, 0xe108, 0xe109, 0xe10a, - 0xe10b, 0xe10c, 0xe10d, 0xe10e, 0xe10f, 0xe110, 0xe111, 0xe112, - 0xe113, 0xe114, 0xe115, 0xe116, 0xe117, 0xe118, 0xe119, 0x003f, - /* lead byte ad */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x747b, 0x747c, 0x747d, 0x747f, 0x7482, 0x7484, 0x7485, 0x7486, - 0x7488, 0x7489, 0x748a, 0x748c, 0x748d, 0x748f, 0x7491, 0x7492, - 0x7493, 0x7494, 0x7495, 0x7496, 0x7497, 0x7498, 0x7499, 0x749a, - 0x749b, 0x749d, 0x749f, 0x74a0, 0x74a1, 0x74a2, 0x74a3, 0x74a4, - 0x74a5, 0x74a6, 0x74aa, 0x74ab, 0x74ac, 0x74ad, 0x74ae, 0x74af, - 0x74b0, 0x74b1, 0x74b2, 0x74b3, 0x74b4, 0x74b5, 0x74b6, 0x74b7, - 0x74b8, 0x74b9, 0x74bb, 0x74bc, 0x74bd, 0x74be, 0x74bf, 0x74c0, - 0x74c1, 0x74c2, 0x74c3, 0x74c4, 0x74c5, 0x74c6, 0x74c7, 0x003f, - 0x74c8, 0x74c9, 0x74ca, 0x74cb, 0x74cc, 0x74cd, 0x74ce, 0x74cf, - 0x74d0, 0x74d1, 0x74d3, 0x74d4, 0x74d5, 0x74d6, 0x74d7, 0x74d8, - 0x74d9, 0x74da, 0x74db, 0x74dd, 0x74df, 0x74e1, 0x74e5, 0x74e7, - 0x74e8, 0x74e9, 0x74ea, 0x74eb, 0x74ec, 0x74ed, 0x74f0, 0x74f1, - 0x74f2, 0xe11a, 0xe11b, 0xe11c, 0xe11d, 0xe11e, 0xe11f, 0xe120, - 0xe121, 0xe122, 0xe123, 0xe124, 0xe125, 0xe126, 0xe127, 0xe128, - 0xe129, 0xe12a, 0xe12b, 0xe12c, 0xe12d, 0xe12e, 0xe12f, 0xe130, - 0xe131, 0xe132, 0xe133, 0xe134, 0xe135, 0xe136, 0xe137, 0xe138, - 0xe139, 0xe13a, 0xe13b, 0xe13c, 0xe13d, 0xe13e, 0xe13f, 0xe140, - 0xe141, 0xe142, 0xe143, 0xe144, 0xe145, 0xe146, 0xe147, 0xe148, - 0xe149, 0xe14a, 0xe14b, 0xe14c, 0xe14d, 0xe14e, 0xe14f, 0xe150, - 0xe151, 0xe152, 0xe153, 0xe154, 0xe155, 0xe156, 0xe157, 0xe158, - 0xe159, 0xe15a, 0xe15b, 0xe15c, 0xe15d, 0xe15e, 0xe15f, 0xe160, - 0xe161, 0xe162, 0xe163, 0xe164, 0xe165, 0xe166, 0xe167, 0xe168, - 0xe169, 0xe16a, 0xe16b, 0xe16c, 0xe16d, 0xe16e, 0xe16f, 0xe170, - 0xe171, 0xe172, 0xe173, 0xe174, 0xe175, 0xe176, 0xe177, 0x003f, - /* lead byte ae */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x74f3, 0x74f5, 0x74f8, 0x74f9, 0x74fa, 0x74fb, 0x74fc, 0x74fd, - 0x74fe, 0x7500, 0x7501, 0x7502, 0x7503, 0x7505, 0x7506, 0x7507, - 0x7508, 0x7509, 0x750a, 0x750b, 0x750c, 0x750e, 0x7510, 0x7512, - 0x7514, 0x7515, 0x7516, 0x7517, 0x751b, 0x751d, 0x751e, 0x7520, - 0x7521, 0x7522, 0x7523, 0x7524, 0x7526, 0x7527, 0x752a, 0x752e, - 0x7534, 0x7536, 0x7539, 0x753c, 0x753d, 0x753f, 0x7541, 0x7542, - 0x7543, 0x7544, 0x7546, 0x7547, 0x7549, 0x754a, 0x754d, 0x7550, - 0x7551, 0x7552, 0x7553, 0x7555, 0x7556, 0x7557, 0x7558, 0x003f, - 0x755d, 0x755e, 0x755f, 0x7560, 0x7561, 0x7562, 0x7563, 0x7564, - 0x7567, 0x7568, 0x7569, 0x756b, 0x756c, 0x756d, 0x756e, 0x756f, - 0x7570, 0x7571, 0x7573, 0x7575, 0x7576, 0x7577, 0x757a, 0x757b, - 0x757c, 0x757d, 0x757e, 0x7580, 0x7581, 0x7582, 0x7584, 0x7585, - 0x7587, 0xe178, 0xe179, 0xe17a, 0xe17b, 0xe17c, 0xe17d, 0xe17e, - 0xe17f, 0xe180, 0xe181, 0xe182, 0xe183, 0xe184, 0xe185, 0xe186, - 0xe187, 0xe188, 0xe189, 0xe18a, 0xe18b, 0xe18c, 0xe18d, 0xe18e, - 0xe18f, 0xe190, 0xe191, 0xe192, 0xe193, 0xe194, 0xe195, 0xe196, - 0xe197, 0xe198, 0xe199, 0xe19a, 0xe19b, 0xe19c, 0xe19d, 0xe19e, - 0xe19f, 0xe1a0, 0xe1a1, 0xe1a2, 0xe1a3, 0xe1a4, 0xe1a5, 0xe1a6, - 0xe1a7, 0xe1a8, 0xe1a9, 0xe1aa, 0xe1ab, 0xe1ac, 0xe1ad, 0xe1ae, - 0xe1af, 0xe1b0, 0xe1b1, 0xe1b2, 0xe1b3, 0xe1b4, 0xe1b5, 0xe1b6, - 0xe1b7, 0xe1b8, 0xe1b9, 0xe1ba, 0xe1bb, 0xe1bc, 0xe1bd, 0xe1be, - 0xe1bf, 0xe1c0, 0xe1c1, 0xe1c2, 0xe1c3, 0xe1c4, 0xe1c5, 0xe1c6, - 0xe1c7, 0xe1c8, 0xe1c9, 0xe1ca, 0xe1cb, 0xe1cc, 0xe1cd, 0xe1ce, - 0xe1cf, 0xe1d0, 0xe1d1, 0xe1d2, 0xe1d3, 0xe1d4, 0xe1d5, 0x003f, - /* lead byte af */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7588, 0x7589, 0x758a, 0x758c, 0x758d, 0x758e, 0x7590, 0x7593, - 0x7595, 0x7598, 0x759b, 0x759c, 0x759e, 0x75a2, 0x75a6, 0x75a7, - 0x75a8, 0x75a9, 0x75aa, 0x75ad, 0x75b6, 0x75b7, 0x75ba, 0x75bb, - 0x75bf, 0x75c0, 0x75c1, 0x75c6, 0x75cb, 0x75cc, 0x75ce, 0x75cf, - 0x75d0, 0x75d1, 0x75d3, 0x75d7, 0x75d9, 0x75da, 0x75dc, 0x75dd, - 0x75df, 0x75e0, 0x75e1, 0x75e5, 0x75e9, 0x75ec, 0x75ed, 0x75ee, - 0x75ef, 0x75f2, 0x75f3, 0x75f5, 0x75f6, 0x75f7, 0x75f8, 0x75fa, - 0x75fb, 0x75fd, 0x75fe, 0x7602, 0x7604, 0x7606, 0x7607, 0x003f, - 0x7608, 0x7609, 0x760b, 0x760d, 0x760e, 0x760f, 0x7611, 0x7612, - 0x7613, 0x7614, 0x7616, 0x761a, 0x761c, 0x761d, 0x761e, 0x7621, - 0x7623, 0x7627, 0x7628, 0x762c, 0x762e, 0x762f, 0x7631, 0x7632, - 0x7636, 0x7637, 0x7639, 0x763a, 0x763b, 0x763d, 0x7641, 0x7642, - 0x7644, 0xe1d6, 0xe1d7, 0xe1d8, 0xe1d9, 0xe1da, 0xe1db, 0xe1dc, - 0xe1dd, 0xe1de, 0xe1df, 0xe1e0, 0xe1e1, 0xe1e2, 0xe1e3, 0xe1e4, - 0xe1e5, 0xe1e6, 0xe1e7, 0xe1e8, 0xe1e9, 0xe1ea, 0xe1eb, 0xe1ec, - 0xe1ed, 0xe1ee, 0xe1ef, 0xe1f0, 0xe1f1, 0xe1f2, 0xe1f3, 0xe1f4, - 0xe1f5, 0xe1f6, 0xe1f7, 0xe1f8, 0xe1f9, 0xe1fa, 0xe1fb, 0xe1fc, - 0xe1fd, 0xe1fe, 0xe1ff, 0xe200, 0xe201, 0xe202, 0xe203, 0xe204, - 0xe205, 0xe206, 0xe207, 0xe208, 0xe209, 0xe20a, 0xe20b, 0xe20c, - 0xe20d, 0xe20e, 0xe20f, 0xe210, 0xe211, 0xe212, 0xe213, 0xe214, - 0xe215, 0xe216, 0xe217, 0xe218, 0xe219, 0xe21a, 0xe21b, 0xe21c, - 0xe21d, 0xe21e, 0xe21f, 0xe220, 0xe221, 0xe222, 0xe223, 0xe224, - 0xe225, 0xe226, 0xe227, 0xe228, 0xe229, 0xe22a, 0xe22b, 0xe22c, - 0xe22d, 0xe22e, 0xe22f, 0xe230, 0xe231, 0xe232, 0xe233, 0x003f, - /* lead byte b0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7645, 0x7646, 0x7647, 0x7648, 0x7649, 0x764a, 0x764b, 0x764e, - 0x764f, 0x7650, 0x7651, 0x7652, 0x7653, 0x7655, 0x7657, 0x7658, - 0x7659, 0x765a, 0x765b, 0x765d, 0x765f, 0x7660, 0x7661, 0x7662, - 0x7664, 0x7665, 0x7666, 0x7667, 0x7668, 0x7669, 0x766a, 0x766c, - 0x766d, 0x766e, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x7675, - 0x7676, 0x7677, 0x7679, 0x767a, 0x767c, 0x767f, 0x7680, 0x7681, - 0x7683, 0x7685, 0x7689, 0x768a, 0x768c, 0x768d, 0x768f, 0x7690, - 0x7692, 0x7694, 0x7695, 0x7697, 0x7698, 0x769a, 0x769b, 0x003f, - 0x769c, 0x769d, 0x769e, 0x769f, 0x76a0, 0x76a1, 0x76a2, 0x76a3, - 0x76a5, 0x76a6, 0x76a7, 0x76a8, 0x76a9, 0x76aa, 0x76ab, 0x76ac, - 0x76ad, 0x76af, 0x76b0, 0x76b3, 0x76b5, 0x76b6, 0x76b7, 0x76b8, - 0x76b9, 0x76ba, 0x76bb, 0x76bc, 0x76bd, 0x76be, 0x76c0, 0x76c1, - 0x76c3, 0x554a, 0x963f, 0x57c3, 0x6328, 0x54ce, 0x5509, 0x54c0, - 0x7691, 0x764c, 0x853c, 0x77ee, 0x827e, 0x788d, 0x7231, 0x9698, - 0x978d, 0x6c28, 0x5b89, 0x4ffa, 0x6309, 0x6697, 0x5cb8, 0x80fa, - 0x6848, 0x80ae, 0x6602, 0x76ce, 0x51f9, 0x6556, 0x71ac, 0x7ff1, - 0x8884, 0x50b2, 0x5965, 0x61ca, 0x6fb3, 0x82ad, 0x634c, 0x6252, - 0x53ed, 0x5427, 0x7b06, 0x516b, 0x75a4, 0x5df4, 0x62d4, 0x8dcb, - 0x9776, 0x628a, 0x8019, 0x575d, 0x9738, 0x7f62, 0x7238, 0x767d, - 0x67cf, 0x767e, 0x6446, 0x4f70, 0x8d25, 0x62dc, 0x7a17, 0x6591, - 0x73ed, 0x642c, 0x6273, 0x822c, 0x9881, 0x677f, 0x7248, 0x626e, - 0x62cc, 0x4f34, 0x74e3, 0x534a, 0x529e, 0x7eca, 0x90a6, 0x5e2e, - 0x6886, 0x699c, 0x8180, 0x7ed1, 0x68d2, 0x78c5, 0x868c, 0x9551, - 0x508d, 0x8c24, 0x82de, 0x80de, 0x5305, 0x8912, 0x5265, 0x003f, - /* lead byte b1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x76c4, 0x76c7, 0x76c9, 0x76cb, 0x76cc, 0x76d3, 0x76d5, 0x76d9, - 0x76da, 0x76dc, 0x76dd, 0x76de, 0x76e0, 0x76e1, 0x76e2, 0x76e3, - 0x76e4, 0x76e6, 0x76e7, 0x76e8, 0x76e9, 0x76ea, 0x76eb, 0x76ec, - 0x76ed, 0x76f0, 0x76f3, 0x76f5, 0x76f6, 0x76f7, 0x76fa, 0x76fb, - 0x76fd, 0x76ff, 0x7700, 0x7702, 0x7703, 0x7705, 0x7706, 0x770a, - 0x770c, 0x770e, 0x770f, 0x7710, 0x7711, 0x7712, 0x7713, 0x7714, - 0x7715, 0x7716, 0x7717, 0x7718, 0x771b, 0x771c, 0x771d, 0x771e, - 0x7721, 0x7723, 0x7724, 0x7725, 0x7727, 0x772a, 0x772b, 0x003f, - 0x772c, 0x772e, 0x7730, 0x7731, 0x7732, 0x7733, 0x7734, 0x7739, - 0x773b, 0x773d, 0x773e, 0x773f, 0x7742, 0x7744, 0x7745, 0x7746, - 0x7748, 0x7749, 0x774a, 0x774b, 0x774c, 0x774d, 0x774e, 0x774f, - 0x7752, 0x7753, 0x7754, 0x7755, 0x7756, 0x7757, 0x7758, 0x7759, - 0x775c, 0x8584, 0x96f9, 0x4fdd, 0x5821, 0x9971, 0x5b9d, 0x62b1, - 0x62a5, 0x66b4, 0x8c79, 0x9c8d, 0x7206, 0x676f, 0x7891, 0x60b2, - 0x5351, 0x5317, 0x8f88, 0x80cc, 0x8d1d, 0x94a1, 0x500d, 0x72c8, - 0x5907, 0x60eb, 0x7119, 0x88ab, 0x5954, 0x82ef, 0x672c, 0x7b28, - 0x5d29, 0x7ef7, 0x752d, 0x6cf5, 0x8e66, 0x8ff8, 0x903c, 0x9f3b, - 0x6bd4, 0x9119, 0x7b14, 0x5f7c, 0x78a7, 0x84d6, 0x853d, 0x6bd5, - 0x6bd9, 0x6bd6, 0x5e01, 0x5e87, 0x75f9, 0x95ed, 0x655d, 0x5f0a, - 0x5fc5, 0x8f9f, 0x58c1, 0x81c2, 0x907f, 0x965b, 0x97ad, 0x8fb9, - 0x7f16, 0x8d2c, 0x6241, 0x4fbf, 0x53d8, 0x535e, 0x8fa8, 0x8fa9, - 0x8fab, 0x904d, 0x6807, 0x5f6a, 0x8198, 0x8868, 0x9cd6, 0x618b, - 0x522b, 0x762a, 0x5f6c, 0x658c, 0x6fd2, 0x6ee8, 0x5bbe, 0x6448, - 0x5175, 0x51b0, 0x67c4, 0x4e19, 0x79c9, 0x997c, 0x70b3, 0x003f, - /* lead byte b2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x775d, 0x775e, 0x775f, 0x7760, 0x7764, 0x7767, 0x7769, 0x776a, - 0x776d, 0x776e, 0x776f, 0x7770, 0x7771, 0x7772, 0x7773, 0x7774, - 0x7775, 0x7776, 0x7777, 0x7778, 0x777a, 0x777b, 0x777c, 0x7781, - 0x7782, 0x7783, 0x7786, 0x7787, 0x7788, 0x7789, 0x778a, 0x778b, - 0x778f, 0x7790, 0x7793, 0x7794, 0x7795, 0x7796, 0x7797, 0x7798, - 0x7799, 0x779a, 0x779b, 0x779c, 0x779d, 0x779e, 0x77a1, 0x77a3, - 0x77a4, 0x77a6, 0x77a8, 0x77ab, 0x77ad, 0x77ae, 0x77af, 0x77b1, - 0x77b2, 0x77b4, 0x77b6, 0x77b7, 0x77b8, 0x77b9, 0x77ba, 0x003f, - 0x77bc, 0x77be, 0x77c0, 0x77c1, 0x77c2, 0x77c3, 0x77c4, 0x77c5, - 0x77c6, 0x77c7, 0x77c8, 0x77c9, 0x77ca, 0x77cb, 0x77cc, 0x77ce, - 0x77cf, 0x77d0, 0x77d1, 0x77d2, 0x77d3, 0x77d4, 0x77d5, 0x77d6, - 0x77d8, 0x77d9, 0x77da, 0x77dd, 0x77de, 0x77df, 0x77e0, 0x77e1, - 0x77e4, 0x75c5, 0x5e76, 0x73bb, 0x83e0, 0x64ad, 0x62e8, 0x94b5, - 0x6ce2, 0x535a, 0x52c3, 0x640f, 0x94c2, 0x7b94, 0x4f2f, 0x5e1b, - 0x8236, 0x8116, 0x818a, 0x6e24, 0x6cca, 0x9a73, 0x6355, 0x535c, - 0x54fa, 0x8865, 0x57e0, 0x4e0d, 0x5e03, 0x6b65, 0x7c3f, 0x90e8, - 0x6016, 0x64e6, 0x731c, 0x88c1, 0x6750, 0x624d, 0x8d22, 0x776c, - 0x8e29, 0x91c7, 0x5f69, 0x83dc, 0x8521, 0x9910, 0x53c2, 0x8695, - 0x6b8b, 0x60ed, 0x60e8, 0x707f, 0x82cd, 0x8231, 0x4ed3, 0x6ca7, - 0x85cf, 0x64cd, 0x7cd9, 0x69fd, 0x66f9, 0x8349, 0x5395, 0x7b56, - 0x4fa7, 0x518c, 0x6d4b, 0x5c42, 0x8e6d, 0x63d2, 0x53c9, 0x832c, - 0x8336, 0x67e5, 0x78b4, 0x643d, 0x5bdf, 0x5c94, 0x5dee, 0x8be7, - 0x62c6, 0x67f4, 0x8c7a, 0x6400, 0x63ba, 0x8749, 0x998b, 0x8c17, - 0x7f20, 0x94f2, 0x4ea7, 0x9610, 0x98a4, 0x660c, 0x7316, 0x003f, - /* lead byte b3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x77e6, 0x77e8, 0x77ea, 0x77ef, 0x77f0, 0x77f1, 0x77f2, 0x77f4, - 0x77f5, 0x77f7, 0x77f9, 0x77fa, 0x77fb, 0x77fc, 0x7803, 0x7804, - 0x7805, 0x7806, 0x7807, 0x7808, 0x780a, 0x780b, 0x780e, 0x780f, - 0x7810, 0x7813, 0x7815, 0x7819, 0x781b, 0x781e, 0x7820, 0x7821, - 0x7822, 0x7824, 0x7828, 0x782a, 0x782b, 0x782e, 0x782f, 0x7831, - 0x7832, 0x7833, 0x7835, 0x7836, 0x783d, 0x783f, 0x7841, 0x7842, - 0x7843, 0x7844, 0x7846, 0x7848, 0x7849, 0x784a, 0x784b, 0x784d, - 0x784f, 0x7851, 0x7853, 0x7854, 0x7858, 0x7859, 0x785a, 0x003f, - 0x785b, 0x785c, 0x785e, 0x785f, 0x7860, 0x7861, 0x7862, 0x7863, - 0x7864, 0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 0x786f, 0x7870, - 0x7871, 0x7872, 0x7873, 0x7874, 0x7875, 0x7876, 0x7878, 0x7879, - 0x787a, 0x787b, 0x787d, 0x787e, 0x787f, 0x7880, 0x7881, 0x7882, - 0x7883, 0x573a, 0x5c1d, 0x5e38, 0x957f, 0x507f, 0x80a0, 0x5382, - 0x655e, 0x7545, 0x5531, 0x5021, 0x8d85, 0x6284, 0x949e, 0x671d, - 0x5632, 0x6f6e, 0x5de2, 0x5435, 0x7092, 0x8f66, 0x626f, 0x64a4, - 0x63a3, 0x5f7b, 0x6f88, 0x90f4, 0x81e3, 0x8fb0, 0x5c18, 0x6668, - 0x5ff1, 0x6c89, 0x9648, 0x8d81, 0x886c, 0x6491, 0x79f0, 0x57ce, - 0x6a59, 0x6210, 0x5448, 0x4e58, 0x7a0b, 0x60e9, 0x6f84, 0x8bda, - 0x627f, 0x901e, 0x9a8b, 0x79e4, 0x5403, 0x75f4, 0x6301, 0x5319, - 0x6c60, 0x8fdf, 0x5f1b, 0x9a70, 0x803b, 0x9f7f, 0x4f88, 0x5c3a, - 0x8d64, 0x7fc5, 0x65a5, 0x70bd, 0x5145, 0x51b2, 0x866b, 0x5d07, - 0x5ba0, 0x62bd, 0x916c, 0x7574, 0x8e0c, 0x7a20, 0x6101, 0x7b79, - 0x4ec7, 0x7ef8, 0x7785, 0x4e11, 0x81ed, 0x521d, 0x51fa, 0x6a71, - 0x53a8, 0x8e87, 0x9504, 0x96cf, 0x6ec1, 0x9664, 0x695a, 0x003f, - /* lead byte b4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7884, 0x7885, 0x7886, 0x7888, 0x788a, 0x788b, 0x788f, 0x7890, - 0x7892, 0x7894, 0x7895, 0x7896, 0x7899, 0x789d, 0x789e, 0x78a0, - 0x78a2, 0x78a4, 0x78a6, 0x78a8, 0x78a9, 0x78aa, 0x78ab, 0x78ac, - 0x78ad, 0x78ae, 0x78af, 0x78b5, 0x78b6, 0x78b7, 0x78b8, 0x78ba, - 0x78bb, 0x78bc, 0x78bd, 0x78bf, 0x78c0, 0x78c2, 0x78c3, 0x78c4, - 0x78c6, 0x78c7, 0x78c8, 0x78cc, 0x78cd, 0x78ce, 0x78cf, 0x78d1, - 0x78d2, 0x78d3, 0x78d6, 0x78d7, 0x78d8, 0x78da, 0x78db, 0x78dc, - 0x78dd, 0x78de, 0x78df, 0x78e0, 0x78e1, 0x78e2, 0x78e3, 0x003f, - 0x78e4, 0x78e5, 0x78e6, 0x78e7, 0x78e9, 0x78ea, 0x78eb, 0x78ed, - 0x78ee, 0x78ef, 0x78f0, 0x78f1, 0x78f3, 0x78f5, 0x78f6, 0x78f8, - 0x78f9, 0x78fb, 0x78fc, 0x78fd, 0x78fe, 0x78ff, 0x7900, 0x7902, - 0x7903, 0x7904, 0x7906, 0x7907, 0x7908, 0x7909, 0x790a, 0x790b, - 0x790c, 0x7840, 0x50a8, 0x77d7, 0x6410, 0x89e6, 0x5904, 0x63e3, - 0x5ddd, 0x7a7f, 0x693d, 0x4f20, 0x8239, 0x5598, 0x4e32, 0x75ae, - 0x7a97, 0x5e62, 0x5e8a, 0x95ef, 0x521b, 0x5439, 0x708a, 0x6376, - 0x9524, 0x5782, 0x6625, 0x693f, 0x9187, 0x5507, 0x6df3, 0x7eaf, - 0x8822, 0x6233, 0x7ef0, 0x75b5, 0x8328, 0x78c1, 0x96cc, 0x8f9e, - 0x6148, 0x74f7, 0x8bcd, 0x6b64, 0x523a, 0x8d50, 0x6b21, 0x806a, - 0x8471, 0x56f1, 0x5306, 0x4ece, 0x4e1b, 0x51d1, 0x7c97, 0x918b, - 0x7c07, 0x4fc3, 0x8e7f, 0x7be1, 0x7a9c, 0x6467, 0x5d14, 0x50ac, - 0x8106, 0x7601, 0x7cb9, 0x6dec, 0x7fe0, 0x6751, 0x5b58, 0x5bf8, - 0x78cb, 0x64ae, 0x6413, 0x63aa, 0x632b, 0x9519, 0x642d, 0x8fbe, - 0x7b54, 0x7629, 0x6253, 0x5927, 0x5446, 0x6b79, 0x50a3, 0x6234, - 0x5e26, 0x6b86, 0x4ee3, 0x8d37, 0x888b, 0x5f85, 0x902e, 0x003f, - /* lead byte b5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x790d, 0x790e, 0x790f, 0x7910, 0x7911, 0x7912, 0x7914, 0x7915, - 0x7916, 0x7917, 0x7918, 0x7919, 0x791a, 0x791b, 0x791c, 0x791d, - 0x791f, 0x7920, 0x7921, 0x7922, 0x7923, 0x7925, 0x7926, 0x7927, - 0x7928, 0x7929, 0x792a, 0x792b, 0x792c, 0x792d, 0x792e, 0x792f, - 0x7930, 0x7931, 0x7932, 0x7933, 0x7935, 0x7936, 0x7937, 0x7938, - 0x7939, 0x793d, 0x793f, 0x7942, 0x7943, 0x7944, 0x7945, 0x7947, - 0x794a, 0x794b, 0x794c, 0x794d, 0x794e, 0x794f, 0x7950, 0x7951, - 0x7952, 0x7954, 0x7955, 0x7958, 0x7959, 0x7961, 0x7963, 0x003f, - 0x7964, 0x7966, 0x7969, 0x796a, 0x796b, 0x796c, 0x796e, 0x7970, - 0x7971, 0x7972, 0x7973, 0x7974, 0x7975, 0x7976, 0x7979, 0x797b, - 0x797c, 0x797d, 0x797e, 0x797f, 0x7982, 0x7983, 0x7986, 0x7987, - 0x7988, 0x7989, 0x798b, 0x798c, 0x798d, 0x798e, 0x7990, 0x7991, - 0x7992, 0x6020, 0x803d, 0x62c5, 0x4e39, 0x5355, 0x90f8, 0x63b8, - 0x80c6, 0x65e6, 0x6c2e, 0x4f46, 0x60ee, 0x6de1, 0x8bde, 0x5f39, - 0x86cb, 0x5f53, 0x6321, 0x515a, 0x8361, 0x6863, 0x5200, 0x6363, - 0x8e48, 0x5012, 0x5c9b, 0x7977, 0x5bfc, 0x5230, 0x7a3b, 0x60bc, - 0x9053, 0x76d7, 0x5fb7, 0x5f97, 0x7684, 0x8e6c, 0x706f, 0x767b, - 0x7b49, 0x77aa, 0x51f3, 0x9093, 0x5824, 0x4f4e, 0x6ef4, 0x8fea, - 0x654c, 0x7b1b, 0x72c4, 0x6da4, 0x7fdf, 0x5ae1, 0x62b5, 0x5e95, - 0x5730, 0x8482, 0x7b2c, 0x5e1d, 0x5f1f, 0x9012, 0x7f14, 0x98a0, - 0x6382, 0x6ec7, 0x7898, 0x70b9, 0x5178, 0x975b, 0x57ab, 0x7535, - 0x4f43, 0x7538, 0x5e97, 0x60e6, 0x5960, 0x6dc0, 0x6bbf, 0x7889, - 0x53fc, 0x96d5, 0x51cb, 0x5201, 0x6389, 0x540a, 0x9493, 0x8c03, - 0x8dcc, 0x7239, 0x789f, 0x8776, 0x8fed, 0x8c0d, 0x53e0, 0x003f, - /* lead byte b6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7993, 0x7994, 0x7995, 0x7996, 0x7997, 0x7998, 0x7999, 0x799b, - 0x799c, 0x799d, 0x799e, 0x799f, 0x79a0, 0x79a1, 0x79a2, 0x79a3, - 0x79a4, 0x79a5, 0x79a6, 0x79a8, 0x79a9, 0x79aa, 0x79ab, 0x79ac, - 0x79ad, 0x79ae, 0x79af, 0x79b0, 0x79b1, 0x79b2, 0x79b4, 0x79b5, - 0x79b6, 0x79b7, 0x79b8, 0x79bc, 0x79bf, 0x79c2, 0x79c4, 0x79c5, - 0x79c7, 0x79c8, 0x79ca, 0x79cc, 0x79ce, 0x79cf, 0x79d0, 0x79d3, - 0x79d4, 0x79d6, 0x79d7, 0x79d9, 0x79da, 0x79db, 0x79dc, 0x79dd, - 0x79de, 0x79e0, 0x79e1, 0x79e2, 0x79e5, 0x79e8, 0x79ea, 0x003f, - 0x79ec, 0x79ee, 0x79f1, 0x79f2, 0x79f3, 0x79f4, 0x79f5, 0x79f6, - 0x79f7, 0x79f9, 0x79fa, 0x79fc, 0x79fe, 0x79ff, 0x7a01, 0x7a04, - 0x7a05, 0x7a07, 0x7a08, 0x7a09, 0x7a0a, 0x7a0c, 0x7a0f, 0x7a10, - 0x7a11, 0x7a12, 0x7a13, 0x7a15, 0x7a16, 0x7a18, 0x7a19, 0x7a1b, - 0x7a1c, 0x4e01, 0x76ef, 0x53ee, 0x9489, 0x9876, 0x9f0e, 0x952d, - 0x5b9a, 0x8ba2, 0x4e22, 0x4e1c, 0x51ac, 0x8463, 0x61c2, 0x52a8, - 0x680b, 0x4f97, 0x606b, 0x51bb, 0x6d1e, 0x515c, 0x6296, 0x6597, - 0x9661, 0x8c46, 0x9017, 0x75d8, 0x90fd, 0x7763, 0x6bd2, 0x728a, - 0x72ec, 0x8bfb, 0x5835, 0x7779, 0x8d4c, 0x675c, 0x9540, 0x809a, - 0x5ea6, 0x6e21, 0x5992, 0x7aef, 0x77ed, 0x953b, 0x6bb5, 0x65ad, - 0x7f0e, 0x5806, 0x5151, 0x961f, 0x5bf9, 0x58a9, 0x5428, 0x8e72, - 0x6566, 0x987f, 0x56e4, 0x949d, 0x76fe, 0x9041, 0x6387, 0x54c6, - 0x591a, 0x593a, 0x579b, 0x8eb2, 0x6735, 0x8dfa, 0x8235, 0x5241, - 0x60f0, 0x5815, 0x86fe, 0x5ce8, 0x9e45, 0x4fc4, 0x989d, 0x8bb9, - 0x5a25, 0x6076, 0x5384, 0x627c, 0x904f, 0x9102, 0x997f, 0x6069, - 0x800c, 0x513f, 0x8033, 0x5c14, 0x9975, 0x6d31, 0x4e8c, 0x003f, - /* lead byte b7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7a1d, 0x7a1f, 0x7a21, 0x7a22, 0x7a24, 0x7a25, 0x7a26, 0x7a27, - 0x7a28, 0x7a29, 0x7a2a, 0x7a2b, 0x7a2c, 0x7a2d, 0x7a2e, 0x7a2f, - 0x7a30, 0x7a31, 0x7a32, 0x7a34, 0x7a35, 0x7a36, 0x7a38, 0x7a3a, - 0x7a3e, 0x7a40, 0x7a41, 0x7a42, 0x7a43, 0x7a44, 0x7a45, 0x7a47, - 0x7a48, 0x7a49, 0x7a4a, 0x7a4b, 0x7a4c, 0x7a4d, 0x7a4e, 0x7a4f, - 0x7a50, 0x7a52, 0x7a53, 0x7a54, 0x7a55, 0x7a56, 0x7a58, 0x7a59, - 0x7a5a, 0x7a5b, 0x7a5c, 0x7a5d, 0x7a5e, 0x7a5f, 0x7a60, 0x7a61, - 0x7a62, 0x7a63, 0x7a64, 0x7a65, 0x7a66, 0x7a67, 0x7a68, 0x003f, - 0x7a69, 0x7a6a, 0x7a6b, 0x7a6c, 0x7a6d, 0x7a6e, 0x7a6f, 0x7a71, - 0x7a72, 0x7a73, 0x7a75, 0x7a7b, 0x7a7c, 0x7a7d, 0x7a7e, 0x7a82, - 0x7a85, 0x7a87, 0x7a89, 0x7a8a, 0x7a8b, 0x7a8c, 0x7a8e, 0x7a8f, - 0x7a90, 0x7a93, 0x7a94, 0x7a99, 0x7a9a, 0x7a9b, 0x7a9e, 0x7aa1, - 0x7aa2, 0x8d30, 0x53d1, 0x7f5a, 0x7b4f, 0x4f10, 0x4e4f, 0x9600, - 0x6cd5, 0x73d0, 0x85e9, 0x5e06, 0x756a, 0x7ffb, 0x6a0a, 0x77fe, - 0x9492, 0x7e41, 0x51e1, 0x70e6, 0x53cd, 0x8fd4, 0x8303, 0x8d29, - 0x72af, 0x996d, 0x6cdb, 0x574a, 0x82b3, 0x65b9, 0x80aa, 0x623f, - 0x9632, 0x59a8, 0x4eff, 0x8bbf, 0x7eba, 0x653e, 0x83f2, 0x975e, - 0x5561, 0x98de, 0x80a5, 0x532a, 0x8bfd, 0x5420, 0x80ba, 0x5e9f, - 0x6cb8, 0x8d39, 0x82ac, 0x915a, 0x5429, 0x6c1b, 0x5206, 0x7eb7, - 0x575f, 0x711a, 0x6c7e, 0x7c89, 0x594b, 0x4efd, 0x5fff, 0x6124, - 0x7caa, 0x4e30, 0x5c01, 0x67ab, 0x8702, 0x5cf0, 0x950b, 0x98ce, - 0x75af, 0x70fd, 0x9022, 0x51af, 0x7f1d, 0x8bbd, 0x5949, 0x51e4, - 0x4f5b, 0x5426, 0x592b, 0x6577, 0x80a4, 0x5b75, 0x6276, 0x62c2, - 0x8f90, 0x5e45, 0x6c1f, 0x7b26, 0x4f0f, 0x4fd8, 0x670d, 0x003f, - /* lead byte b8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7aa3, 0x7aa4, 0x7aa7, 0x7aa9, 0x7aaa, 0x7aab, 0x7aae, 0x7aaf, - 0x7ab0, 0x7ab1, 0x7ab2, 0x7ab4, 0x7ab5, 0x7ab6, 0x7ab7, 0x7ab8, - 0x7ab9, 0x7aba, 0x7abb, 0x7abc, 0x7abd, 0x7abe, 0x7ac0, 0x7ac1, - 0x7ac2, 0x7ac3, 0x7ac4, 0x7ac5, 0x7ac6, 0x7ac7, 0x7ac8, 0x7ac9, - 0x7aca, 0x7acc, 0x7acd, 0x7ace, 0x7acf, 0x7ad0, 0x7ad1, 0x7ad2, - 0x7ad3, 0x7ad4, 0x7ad5, 0x7ad7, 0x7ad8, 0x7ada, 0x7adb, 0x7adc, - 0x7add, 0x7ae1, 0x7ae2, 0x7ae4, 0x7ae7, 0x7ae8, 0x7ae9, 0x7aea, - 0x7aeb, 0x7aec, 0x7aee, 0x7af0, 0x7af1, 0x7af2, 0x7af3, 0x003f, - 0x7af4, 0x7af5, 0x7af6, 0x7af7, 0x7af8, 0x7afb, 0x7afc, 0x7afe, - 0x7b00, 0x7b01, 0x7b02, 0x7b05, 0x7b07, 0x7b09, 0x7b0c, 0x7b0d, - 0x7b0e, 0x7b10, 0x7b12, 0x7b13, 0x7b16, 0x7b17, 0x7b18, 0x7b1a, - 0x7b1c, 0x7b1d, 0x7b1f, 0x7b21, 0x7b22, 0x7b23, 0x7b27, 0x7b29, - 0x7b2d, 0x6d6e, 0x6daa, 0x798f, 0x88b1, 0x5f17, 0x752b, 0x629a, - 0x8f85, 0x4fef, 0x91dc, 0x65a7, 0x812f, 0x8151, 0x5e9c, 0x8150, - 0x8d74, 0x526f, 0x8986, 0x8d4b, 0x590d, 0x5085, 0x4ed8, 0x961c, - 0x7236, 0x8179, 0x8d1f, 0x5bcc, 0x8ba3, 0x9644, 0x5987, 0x7f1a, - 0x5490, 0x5676, 0x560e, 0x8be5, 0x6539, 0x6982, 0x9499, 0x76d6, - 0x6e89, 0x5e72, 0x7518, 0x6746, 0x67d1, 0x7aff, 0x809d, 0x8d76, - 0x611f, 0x79c6, 0x6562, 0x8d63, 0x5188, 0x521a, 0x94a2, 0x7f38, - 0x809b, 0x7eb2, 0x5c97, 0x6e2f, 0x6760, 0x7bd9, 0x768b, 0x9ad8, - 0x818f, 0x7f94, 0x7cd5, 0x641e, 0x9550, 0x7a3f, 0x544a, 0x54e5, - 0x6b4c, 0x6401, 0x6208, 0x9e3d, 0x80f3, 0x7599, 0x5272, 0x9769, - 0x845b, 0x683c, 0x86e4, 0x9601, 0x9694, 0x94ec, 0x4e2a, 0x5404, - 0x7ed9, 0x6839, 0x8ddf, 0x8015, 0x66f4, 0x5e9a, 0x7fb9, 0x003f, - /* lead byte b9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7b2f, 0x7b30, 0x7b32, 0x7b34, 0x7b35, 0x7b36, 0x7b37, 0x7b39, - 0x7b3b, 0x7b3d, 0x7b3f, 0x7b40, 0x7b41, 0x7b42, 0x7b43, 0x7b44, - 0x7b46, 0x7b48, 0x7b4a, 0x7b4d, 0x7b4e, 0x7b53, 0x7b55, 0x7b57, - 0x7b59, 0x7b5c, 0x7b5e, 0x7b5f, 0x7b61, 0x7b63, 0x7b64, 0x7b65, - 0x7b66, 0x7b67, 0x7b68, 0x7b69, 0x7b6a, 0x7b6b, 0x7b6c, 0x7b6d, - 0x7b6f, 0x7b70, 0x7b73, 0x7b74, 0x7b76, 0x7b78, 0x7b7a, 0x7b7c, - 0x7b7d, 0x7b7f, 0x7b81, 0x7b82, 0x7b83, 0x7b84, 0x7b86, 0x7b87, - 0x7b88, 0x7b89, 0x7b8a, 0x7b8b, 0x7b8c, 0x7b8e, 0x7b8f, 0x003f, - 0x7b91, 0x7b92, 0x7b93, 0x7b96, 0x7b98, 0x7b99, 0x7b9a, 0x7b9b, - 0x7b9e, 0x7b9f, 0x7ba0, 0x7ba3, 0x7ba4, 0x7ba5, 0x7bae, 0x7baf, - 0x7bb0, 0x7bb2, 0x7bb3, 0x7bb5, 0x7bb6, 0x7bb7, 0x7bb9, 0x7bba, - 0x7bbb, 0x7bbc, 0x7bbd, 0x7bbe, 0x7bbf, 0x7bc0, 0x7bc2, 0x7bc3, - 0x7bc4, 0x57c2, 0x803f, 0x6897, 0x5de5, 0x653b, 0x529f, 0x606d, - 0x9f9a, 0x4f9b, 0x8eac, 0x516c, 0x5bab, 0x5f13, 0x5de9, 0x6c5e, - 0x62f1, 0x8d21, 0x5171, 0x94a9, 0x52fe, 0x6c9f, 0x82df, 0x72d7, - 0x57a2, 0x6784, 0x8d2d, 0x591f, 0x8f9c, 0x83c7, 0x5495, 0x7b8d, - 0x4f30, 0x6cbd, 0x5b64, 0x59d1, 0x9f13, 0x53e4, 0x86ca, 0x9aa8, - 0x8c37, 0x80a1, 0x6545, 0x987e, 0x56fa, 0x96c7, 0x522e, 0x74dc, - 0x5250, 0x5be1, 0x6302, 0x8902, 0x4e56, 0x62d0, 0x602a, 0x68fa, - 0x5173, 0x5b98, 0x51a0, 0x89c2, 0x7ba1, 0x9986, 0x7f50, 0x60ef, - 0x704c, 0x8d2f, 0x5149, 0x5e7f, 0x901b, 0x7470, 0x89c4, 0x572d, - 0x7845, 0x5f52, 0x9f9f, 0x95fa, 0x8f68, 0x9b3c, 0x8be1, 0x7678, - 0x6842, 0x67dc, 0x8dea, 0x8d35, 0x523d, 0x8f8a, 0x6eda, 0x68cd, - 0x9505, 0x90ed, 0x56fd, 0x679c, 0x88f9, 0x8fc7, 0x54c8, 0x003f, - /* lead byte ba */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7bc5, 0x7bc8, 0x7bc9, 0x7bca, 0x7bcb, 0x7bcd, 0x7bce, 0x7bcf, - 0x7bd0, 0x7bd2, 0x7bd4, 0x7bd5, 0x7bd6, 0x7bd7, 0x7bd8, 0x7bdb, - 0x7bdc, 0x7bde, 0x7bdf, 0x7be0, 0x7be2, 0x7be3, 0x7be4, 0x7be7, - 0x7be8, 0x7be9, 0x7beb, 0x7bec, 0x7bed, 0x7bef, 0x7bf0, 0x7bf2, - 0x7bf3, 0x7bf4, 0x7bf5, 0x7bf6, 0x7bf8, 0x7bf9, 0x7bfa, 0x7bfb, - 0x7bfd, 0x7bff, 0x7c00, 0x7c01, 0x7c02, 0x7c03, 0x7c04, 0x7c05, - 0x7c06, 0x7c08, 0x7c09, 0x7c0a, 0x7c0d, 0x7c0e, 0x7c10, 0x7c11, - 0x7c12, 0x7c13, 0x7c14, 0x7c15, 0x7c17, 0x7c18, 0x7c19, 0x003f, - 0x7c1a, 0x7c1b, 0x7c1c, 0x7c1d, 0x7c1e, 0x7c20, 0x7c21, 0x7c22, - 0x7c23, 0x7c24, 0x7c25, 0x7c28, 0x7c29, 0x7c2b, 0x7c2c, 0x7c2d, - 0x7c2e, 0x7c2f, 0x7c30, 0x7c31, 0x7c32, 0x7c33, 0x7c34, 0x7c35, - 0x7c36, 0x7c37, 0x7c39, 0x7c3a, 0x7c3b, 0x7c3c, 0x7c3d, 0x7c3e, - 0x7c42, 0x9ab8, 0x5b69, 0x6d77, 0x6c26, 0x4ea5, 0x5bb3, 0x9a87, - 0x9163, 0x61a8, 0x90af, 0x97e9, 0x542b, 0x6db5, 0x5bd2, 0x51fd, - 0x558a, 0x7f55, 0x7ff0, 0x64bc, 0x634d, 0x65f1, 0x61be, 0x608d, - 0x710a, 0x6c57, 0x6c49, 0x592f, 0x676d, 0x822a, 0x58d5, 0x568e, - 0x8c6a, 0x6beb, 0x90dd, 0x597d, 0x8017, 0x53f7, 0x6d69, 0x5475, - 0x559d, 0x8377, 0x83cf, 0x6838, 0x79be, 0x548c, 0x4f55, 0x5408, - 0x76d2, 0x8c89, 0x9602, 0x6cb3, 0x6db8, 0x8d6b, 0x8910, 0x9e64, - 0x8d3a, 0x563f, 0x9ed1, 0x75d5, 0x5f88, 0x72e0, 0x6068, 0x54fc, - 0x4ea8, 0x6a2a, 0x8861, 0x6052, 0x8f70, 0x54c4, 0x70d8, 0x8679, - 0x9e3f, 0x6d2a, 0x5b8f, 0x5f18, 0x7ea2, 0x5589, 0x4faf, 0x7334, - 0x543c, 0x539a, 0x5019, 0x540e, 0x547c, 0x4e4e, 0x5ffd, 0x745a, - 0x58f6, 0x846b, 0x80e1, 0x8774, 0x72d0, 0x7cca, 0x6e56, 0x003f, - /* lead byte bb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7c43, 0x7c44, 0x7c45, 0x7c46, 0x7c47, 0x7c48, 0x7c49, 0x7c4a, - 0x7c4b, 0x7c4c, 0x7c4e, 0x7c4f, 0x7c50, 0x7c51, 0x7c52, 0x7c53, - 0x7c54, 0x7c55, 0x7c56, 0x7c57, 0x7c58, 0x7c59, 0x7c5a, 0x7c5b, - 0x7c5c, 0x7c5d, 0x7c5e, 0x7c5f, 0x7c60, 0x7c61, 0x7c62, 0x7c63, - 0x7c64, 0x7c65, 0x7c66, 0x7c67, 0x7c68, 0x7c69, 0x7c6a, 0x7c6b, - 0x7c6c, 0x7c6d, 0x7c6e, 0x7c6f, 0x7c70, 0x7c71, 0x7c72, 0x7c75, - 0x7c76, 0x7c77, 0x7c78, 0x7c79, 0x7c7a, 0x7c7e, 0x7c7f, 0x7c80, - 0x7c81, 0x7c82, 0x7c83, 0x7c84, 0x7c85, 0x7c86, 0x7c87, 0x003f, - 0x7c88, 0x7c8a, 0x7c8b, 0x7c8c, 0x7c8d, 0x7c8e, 0x7c8f, 0x7c90, - 0x7c93, 0x7c94, 0x7c96, 0x7c99, 0x7c9a, 0x7c9b, 0x7ca0, 0x7ca1, - 0x7ca3, 0x7ca6, 0x7ca7, 0x7ca8, 0x7ca9, 0x7cab, 0x7cac, 0x7cad, - 0x7caf, 0x7cb0, 0x7cb4, 0x7cb5, 0x7cb6, 0x7cb7, 0x7cb8, 0x7cba, - 0x7cbb, 0x5f27, 0x864e, 0x552c, 0x62a4, 0x4e92, 0x6caa, 0x6237, - 0x82b1, 0x54d7, 0x534e, 0x733e, 0x6ed1, 0x753b, 0x5212, 0x5316, - 0x8bdd, 0x69d0, 0x5f8a, 0x6000, 0x6dee, 0x574f, 0x6b22, 0x73af, - 0x6853, 0x8fd8, 0x7f13, 0x6362, 0x60a3, 0x5524, 0x75ea, 0x8c62, - 0x7115, 0x6da3, 0x5ba6, 0x5e7b, 0x8352, 0x614c, 0x9ec4, 0x78fa, - 0x8757, 0x7c27, 0x7687, 0x51f0, 0x60f6, 0x714c, 0x6643, 0x5e4c, - 0x604d, 0x8c0e, 0x7070, 0x6325, 0x8f89, 0x5fbd, 0x6062, 0x86d4, - 0x56de, 0x6bc1, 0x6094, 0x6167, 0x5349, 0x60e0, 0x6666, 0x8d3f, - 0x79fd, 0x4f1a, 0x70e9, 0x6c47, 0x8bb3, 0x8bf2, 0x7ed8, 0x8364, - 0x660f, 0x5a5a, 0x9b42, 0x6d51, 0x6df7, 0x8c41, 0x6d3b, 0x4f19, - 0x706b, 0x83b7, 0x6216, 0x60d1, 0x970d, 0x8d27, 0x7978, 0x51fb, - 0x573e, 0x57fa, 0x673a, 0x7578, 0x7a3d, 0x79ef, 0x7b95, 0x003f, - /* lead byte bc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7cbf, 0x7cc0, 0x7cc2, 0x7cc3, 0x7cc4, 0x7cc6, 0x7cc9, 0x7ccb, - 0x7cce, 0x7ccf, 0x7cd0, 0x7cd1, 0x7cd2, 0x7cd3, 0x7cd4, 0x7cd8, - 0x7cda, 0x7cdb, 0x7cdd, 0x7cde, 0x7ce1, 0x7ce2, 0x7ce3, 0x7ce4, - 0x7ce5, 0x7ce6, 0x7ce7, 0x7ce9, 0x7cea, 0x7ceb, 0x7cec, 0x7ced, - 0x7cee, 0x7cf0, 0x7cf1, 0x7cf2, 0x7cf3, 0x7cf4, 0x7cf5, 0x7cf6, - 0x7cf7, 0x7cf9, 0x7cfa, 0x7cfc, 0x7cfd, 0x7cfe, 0x7cff, 0x7d00, - 0x7d01, 0x7d02, 0x7d03, 0x7d04, 0x7d05, 0x7d06, 0x7d07, 0x7d08, - 0x7d09, 0x7d0b, 0x7d0c, 0x7d0d, 0x7d0e, 0x7d0f, 0x7d10, 0x003f, - 0x7d11, 0x7d12, 0x7d13, 0x7d14, 0x7d15, 0x7d16, 0x7d17, 0x7d18, - 0x7d19, 0x7d1a, 0x7d1b, 0x7d1c, 0x7d1d, 0x7d1e, 0x7d1f, 0x7d21, - 0x7d23, 0x7d24, 0x7d25, 0x7d26, 0x7d28, 0x7d29, 0x7d2a, 0x7d2c, - 0x7d2d, 0x7d2e, 0x7d30, 0x7d31, 0x7d32, 0x7d33, 0x7d34, 0x7d35, - 0x7d36, 0x808c, 0x9965, 0x8ff9, 0x6fc0, 0x8ba5, 0x9e21, 0x59ec, - 0x7ee9, 0x7f09, 0x5409, 0x6781, 0x68d8, 0x8f91, 0x7c4d, 0x96c6, - 0x53ca, 0x6025, 0x75be, 0x6c72, 0x5373, 0x5ac9, 0x7ea7, 0x6324, - 0x51e0, 0x810a, 0x5df1, 0x84df, 0x6280, 0x5180, 0x5b63, 0x4f0e, - 0x796d, 0x5242, 0x60b8, 0x6d4e, 0x5bc4, 0x5bc2, 0x8ba1, 0x8bb0, - 0x65e2, 0x5fcc, 0x9645, 0x5993, 0x7ee7, 0x7eaa, 0x5609, 0x67b7, - 0x5939, 0x4f73, 0x5bb6, 0x52a0, 0x835a, 0x988a, 0x8d3e, 0x7532, - 0x94be, 0x5047, 0x7a3c, 0x4ef7, 0x67b6, 0x9a7e, 0x5ac1, 0x6b7c, - 0x76d1, 0x575a, 0x5c16, 0x7b3a, 0x95f4, 0x714e, 0x517c, 0x80a9, - 0x8270, 0x5978, 0x7f04, 0x8327, 0x68c0, 0x67ec, 0x78b1, 0x7877, - 0x62e3, 0x6361, 0x7b80, 0x4fed, 0x526a, 0x51cf, 0x8350, 0x69db, - 0x9274, 0x8df5, 0x8d31, 0x89c1, 0x952e, 0x7bad, 0x4ef6, 0x003f, - /* lead byte bd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7d37, 0x7d38, 0x7d39, 0x7d3a, 0x7d3b, 0x7d3c, 0x7d3d, 0x7d3e, - 0x7d3f, 0x7d40, 0x7d41, 0x7d42, 0x7d43, 0x7d44, 0x7d45, 0x7d46, - 0x7d47, 0x7d48, 0x7d49, 0x7d4a, 0x7d4b, 0x7d4c, 0x7d4d, 0x7d4e, - 0x7d4f, 0x7d50, 0x7d51, 0x7d52, 0x7d53, 0x7d54, 0x7d55, 0x7d56, - 0x7d57, 0x7d58, 0x7d59, 0x7d5a, 0x7d5b, 0x7d5c, 0x7d5d, 0x7d5e, - 0x7d5f, 0x7d60, 0x7d61, 0x7d62, 0x7d63, 0x7d64, 0x7d65, 0x7d66, - 0x7d67, 0x7d68, 0x7d69, 0x7d6a, 0x7d6b, 0x7d6c, 0x7d6d, 0x7d6f, - 0x7d70, 0x7d71, 0x7d72, 0x7d73, 0x7d74, 0x7d75, 0x7d76, 0x003f, - 0x7d78, 0x7d79, 0x7d7a, 0x7d7b, 0x7d7c, 0x7d7d, 0x7d7e, 0x7d7f, - 0x7d80, 0x7d81, 0x7d82, 0x7d83, 0x7d84, 0x7d85, 0x7d86, 0x7d87, - 0x7d88, 0x7d89, 0x7d8a, 0x7d8b, 0x7d8c, 0x7d8d, 0x7d8e, 0x7d8f, - 0x7d90, 0x7d91, 0x7d92, 0x7d93, 0x7d94, 0x7d95, 0x7d96, 0x7d97, - 0x7d98, 0x5065, 0x8230, 0x5251, 0x996f, 0x6e10, 0x6e85, 0x6da7, - 0x5efa, 0x50f5, 0x59dc, 0x5c06, 0x6d46, 0x6c5f, 0x7586, 0x848b, - 0x6868, 0x5956, 0x8bb2, 0x5320, 0x9171, 0x964d, 0x8549, 0x6912, - 0x7901, 0x7126, 0x80f6, 0x4ea4, 0x90ca, 0x6d47, 0x9a84, 0x5a07, - 0x56bc, 0x6405, 0x94f0, 0x77eb, 0x4fa5, 0x811a, 0x72e1, 0x89d2, - 0x997a, 0x7f34, 0x7ede, 0x527f, 0x6559, 0x9175, 0x8f7f, 0x8f83, - 0x53eb, 0x7a96, 0x63ed, 0x63a5, 0x7686, 0x79f8, 0x8857, 0x9636, - 0x622a, 0x52ab, 0x8282, 0x6854, 0x6770, 0x6377, 0x776b, 0x7aed, - 0x6d01, 0x7ed3, 0x89e3, 0x59d0, 0x6212, 0x85c9, 0x82a5, 0x754c, - 0x501f, 0x4ecb, 0x75a5, 0x8beb, 0x5c4a, 0x5dfe, 0x7b4b, 0x65a4, - 0x91d1, 0x4eca, 0x6d25, 0x895f, 0x7d27, 0x9526, 0x4ec5, 0x8c28, - 0x8fdb, 0x9773, 0x664b, 0x7981, 0x8fd1, 0x70ec, 0x6d78, 0x003f, - /* lead byte be */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7d99, 0x7d9a, 0x7d9b, 0x7d9c, 0x7d9d, 0x7d9e, 0x7d9f, 0x7da0, - 0x7da1, 0x7da2, 0x7da3, 0x7da4, 0x7da5, 0x7da7, 0x7da8, 0x7da9, - 0x7daa, 0x7dab, 0x7dac, 0x7dad, 0x7daf, 0x7db0, 0x7db1, 0x7db2, - 0x7db3, 0x7db4, 0x7db5, 0x7db6, 0x7db7, 0x7db8, 0x7db9, 0x7dba, - 0x7dbb, 0x7dbc, 0x7dbd, 0x7dbe, 0x7dbf, 0x7dc0, 0x7dc1, 0x7dc2, - 0x7dc3, 0x7dc4, 0x7dc5, 0x7dc6, 0x7dc7, 0x7dc8, 0x7dc9, 0x7dca, - 0x7dcb, 0x7dcc, 0x7dcd, 0x7dce, 0x7dcf, 0x7dd0, 0x7dd1, 0x7dd2, - 0x7dd3, 0x7dd4, 0x7dd5, 0x7dd6, 0x7dd7, 0x7dd8, 0x7dd9, 0x003f, - 0x7dda, 0x7ddb, 0x7ddc, 0x7ddd, 0x7dde, 0x7ddf, 0x7de0, 0x7de1, - 0x7de2, 0x7de3, 0x7de4, 0x7de5, 0x7de6, 0x7de7, 0x7de8, 0x7de9, - 0x7dea, 0x7deb, 0x7dec, 0x7ded, 0x7dee, 0x7def, 0x7df0, 0x7df1, - 0x7df2, 0x7df3, 0x7df4, 0x7df5, 0x7df6, 0x7df7, 0x7df8, 0x7df9, - 0x7dfa, 0x5c3d, 0x52b2, 0x8346, 0x5162, 0x830e, 0x775b, 0x6676, - 0x9cb8, 0x4eac, 0x60ca, 0x7cbe, 0x7cb3, 0x7ecf, 0x4e95, 0x8b66, - 0x666f, 0x9888, 0x9759, 0x5883, 0x656c, 0x955c, 0x5f84, 0x75c9, - 0x9756, 0x7adf, 0x7ade, 0x51c0, 0x70af, 0x7a98, 0x63ea, 0x7a76, - 0x7ea0, 0x7396, 0x97ed, 0x4e45, 0x7078, 0x4e5d, 0x9152, 0x53a9, - 0x6551, 0x65e7, 0x81fc, 0x8205, 0x548e, 0x5c31, 0x759a, 0x97a0, - 0x62d8, 0x72d9, 0x75bd, 0x5c45, 0x9a79, 0x83ca, 0x5c40, 0x5480, - 0x77e9, 0x4e3e, 0x6cae, 0x805a, 0x62d2, 0x636e, 0x5de8, 0x5177, - 0x8ddd, 0x8e1e, 0x952f, 0x4ff1, 0x53e5, 0x60e7, 0x70ac, 0x5267, - 0x6350, 0x9e43, 0x5a1f, 0x5026, 0x7737, 0x5377, 0x7ee2, 0x6485, - 0x652b, 0x6289, 0x6398, 0x5014, 0x7235, 0x89c9, 0x51b3, 0x8bc0, - 0x7edd, 0x5747, 0x83cc, 0x94a7, 0x519b, 0x541b, 0x5cfb, 0x003f, - /* lead byte bf */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7dfb, 0x7dfc, 0x7dfd, 0x7dfe, 0x7dff, 0x7e00, 0x7e01, 0x7e02, - 0x7e03, 0x7e04, 0x7e05, 0x7e06, 0x7e07, 0x7e08, 0x7e09, 0x7e0a, - 0x7e0b, 0x7e0c, 0x7e0d, 0x7e0e, 0x7e0f, 0x7e10, 0x7e11, 0x7e12, - 0x7e13, 0x7e14, 0x7e15, 0x7e16, 0x7e17, 0x7e18, 0x7e19, 0x7e1a, - 0x7e1b, 0x7e1c, 0x7e1d, 0x7e1e, 0x7e1f, 0x7e20, 0x7e21, 0x7e22, - 0x7e23, 0x7e24, 0x7e25, 0x7e26, 0x7e27, 0x7e28, 0x7e29, 0x7e2a, - 0x7e2b, 0x7e2c, 0x7e2d, 0x7e2e, 0x7e2f, 0x7e30, 0x7e31, 0x7e32, - 0x7e33, 0x7e34, 0x7e35, 0x7e36, 0x7e37, 0x7e38, 0x7e39, 0x003f, - 0x7e3a, 0x7e3c, 0x7e3d, 0x7e3e, 0x7e3f, 0x7e40, 0x7e42, 0x7e43, - 0x7e44, 0x7e45, 0x7e46, 0x7e48, 0x7e49, 0x7e4a, 0x7e4b, 0x7e4c, - 0x7e4d, 0x7e4e, 0x7e4f, 0x7e50, 0x7e51, 0x7e52, 0x7e53, 0x7e54, - 0x7e55, 0x7e56, 0x7e57, 0x7e58, 0x7e59, 0x7e5a, 0x7e5b, 0x7e5c, - 0x7e5d, 0x4fca, 0x7ae3, 0x6d5a, 0x90e1, 0x9a8f, 0x5580, 0x5496, - 0x5361, 0x54af, 0x5f00, 0x63e9, 0x6977, 0x51ef, 0x6168, 0x520a, - 0x582a, 0x52d8, 0x574e, 0x780d, 0x770b, 0x5eb7, 0x6177, 0x7ce0, - 0x625b, 0x6297, 0x4ea2, 0x7095, 0x8003, 0x62f7, 0x70e4, 0x9760, - 0x5777, 0x82db, 0x67ef, 0x68f5, 0x78d5, 0x9897, 0x79d1, 0x58f3, - 0x54b3, 0x53ef, 0x6e34, 0x514b, 0x523b, 0x5ba2, 0x8bfe, 0x80af, - 0x5543, 0x57a6, 0x6073, 0x5751, 0x542d, 0x7a7a, 0x6050, 0x5b54, - 0x63a7, 0x62a0, 0x53e3, 0x6263, 0x5bc7, 0x67af, 0x54ed, 0x7a9f, - 0x82e6, 0x9177, 0x5e93, 0x88e4, 0x5938, 0x57ae, 0x630e, 0x8de8, - 0x80ef, 0x5757, 0x7b77, 0x4fa9, 0x5feb, 0x5bbd, 0x6b3e, 0x5321, - 0x7b50, 0x72c2, 0x6846, 0x77ff, 0x7736, 0x65f7, 0x51b5, 0x4e8f, - 0x76d4, 0x5cbf, 0x7aa5, 0x8475, 0x594e, 0x9b41, 0x5080, 0x003f, - /* lead byte c0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7e5e, 0x7e5f, 0x7e60, 0x7e61, 0x7e62, 0x7e63, 0x7e64, 0x7e65, - 0x7e66, 0x7e67, 0x7e68, 0x7e69, 0x7e6a, 0x7e6b, 0x7e6c, 0x7e6d, - 0x7e6e, 0x7e6f, 0x7e70, 0x7e71, 0x7e72, 0x7e73, 0x7e74, 0x7e75, - 0x7e76, 0x7e77, 0x7e78, 0x7e79, 0x7e7a, 0x7e7b, 0x7e7c, 0x7e7d, - 0x7e7e, 0x7e7f, 0x7e80, 0x7e81, 0x7e83, 0x7e84, 0x7e85, 0x7e86, - 0x7e87, 0x7e88, 0x7e89, 0x7e8a, 0x7e8b, 0x7e8c, 0x7e8d, 0x7e8e, - 0x7e8f, 0x7e90, 0x7e91, 0x7e92, 0x7e93, 0x7e94, 0x7e95, 0x7e96, - 0x7e97, 0x7e98, 0x7e99, 0x7e9a, 0x7e9c, 0x7e9d, 0x7e9e, 0x003f, - 0x7eae, 0x7eb4, 0x7ebb, 0x7ebc, 0x7ed6, 0x7ee4, 0x7eec, 0x7ef9, - 0x7f0a, 0x7f10, 0x7f1e, 0x7f37, 0x7f39, 0x7f3b, 0x7f3c, 0x7f3d, - 0x7f3e, 0x7f3f, 0x7f40, 0x7f41, 0x7f43, 0x7f46, 0x7f47, 0x7f48, - 0x7f49, 0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f, 0x7f52, - 0x7f53, 0x9988, 0x6127, 0x6e83, 0x5764, 0x6606, 0x6346, 0x56f0, - 0x62ec, 0x6269, 0x5ed3, 0x9614, 0x5783, 0x62c9, 0x5587, 0x8721, - 0x814a, 0x8fa3, 0x5566, 0x83b1, 0x6765, 0x8d56, 0x84dd, 0x5a6a, - 0x680f, 0x62e6, 0x7bee, 0x9611, 0x5170, 0x6f9c, 0x8c30, 0x63fd, - 0x89c8, 0x61d2, 0x7f06, 0x70c2, 0x6ee5, 0x7405, 0x6994, 0x72fc, - 0x5eca, 0x90ce, 0x6717, 0x6d6a, 0x635e, 0x52b3, 0x7262, 0x8001, - 0x4f6c, 0x59e5, 0x916a, 0x70d9, 0x6d9d, 0x52d2, 0x4e50, 0x96f7, - 0x956d, 0x857e, 0x78ca, 0x7d2f, 0x5121, 0x5792, 0x64c2, 0x808b, - 0x7c7b, 0x6cea, 0x68f1, 0x695e, 0x51b7, 0x5398, 0x68a8, 0x7281, - 0x9ece, 0x7bf1, 0x72f8, 0x79bb, 0x6f13, 0x7406, 0x674e, 0x91cc, - 0x9ca4, 0x793c, 0x8389, 0x8354, 0x540f, 0x6817, 0x4e3d, 0x5389, - 0x52b1, 0x783e, 0x5386, 0x5229, 0x5088, 0x4f8b, 0x4fd0, 0x003f, - /* lead byte c1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7f56, 0x7f59, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f60, 0x7f63, - 0x7f64, 0x7f65, 0x7f66, 0x7f67, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6f, - 0x7f70, 0x7f73, 0x7f75, 0x7f76, 0x7f77, 0x7f78, 0x7f7a, 0x7f7b, - 0x7f7c, 0x7f7d, 0x7f7f, 0x7f80, 0x7f82, 0x7f83, 0x7f84, 0x7f85, - 0x7f86, 0x7f87, 0x7f88, 0x7f89, 0x7f8b, 0x7f8d, 0x7f8f, 0x7f90, - 0x7f91, 0x7f92, 0x7f93, 0x7f95, 0x7f96, 0x7f97, 0x7f98, 0x7f99, - 0x7f9b, 0x7f9c, 0x7fa0, 0x7fa2, 0x7fa3, 0x7fa5, 0x7fa6, 0x7fa8, - 0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7fb1, 0x003f, - 0x7fb3, 0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7, 0x7fba, 0x7fbb, 0x7fbe, - 0x7fc0, 0x7fc2, 0x7fc3, 0x7fc4, 0x7fc6, 0x7fc7, 0x7fc8, 0x7fc9, - 0x7fcb, 0x7fcd, 0x7fcf, 0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd6, - 0x7fd7, 0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fe2, - 0x7fe3, 0x75e2, 0x7acb, 0x7c92, 0x6ca5, 0x96b6, 0x529b, 0x7483, - 0x54e9, 0x4fe9, 0x8054, 0x83b2, 0x8fde, 0x9570, 0x5ec9, 0x601c, - 0x6d9f, 0x5e18, 0x655b, 0x8138, 0x94fe, 0x604b, 0x70bc, 0x7ec3, - 0x7cae, 0x51c9, 0x6881, 0x7cb1, 0x826f, 0x4e24, 0x8f86, 0x91cf, - 0x667e, 0x4eae, 0x8c05, 0x64a9, 0x804a, 0x50da, 0x7597, 0x71ce, - 0x5be5, 0x8fbd, 0x6f66, 0x4e86, 0x6482, 0x9563, 0x5ed6, 0x6599, - 0x5217, 0x88c2, 0x70c8, 0x52a3, 0x730e, 0x7433, 0x6797, 0x78f7, - 0x9716, 0x4e34, 0x90bb, 0x9cde, 0x6dcb, 0x51db, 0x8d41, 0x541d, - 0x62ce, 0x73b2, 0x83f1, 0x96f6, 0x9f84, 0x94c3, 0x4f36, 0x7f9a, - 0x51cc, 0x7075, 0x9675, 0x5cad, 0x9886, 0x53e6, 0x4ee4, 0x6e9c, - 0x7409, 0x69b4, 0x786b, 0x998f, 0x7559, 0x5218, 0x7624, 0x6d41, - 0x67f3, 0x516d, 0x9f99, 0x804b, 0x5499, 0x7b3c, 0x7abf, 0x003f, - /* lead byte c2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7fe4, 0x7fe7, 0x7fe8, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fef, - 0x7ff2, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7, 0x7ff8, 0x7ff9, 0x7ffa, - 0x7ffd, 0x7ffe, 0x7fff, 0x8002, 0x8007, 0x8008, 0x8009, 0x800a, - 0x800e, 0x800f, 0x8011, 0x8013, 0x801a, 0x801b, 0x801d, 0x801e, - 0x801f, 0x8021, 0x8023, 0x8024, 0x802b, 0x802c, 0x802d, 0x802e, - 0x802f, 0x8030, 0x8032, 0x8034, 0x8039, 0x803a, 0x803c, 0x803e, - 0x8040, 0x8041, 0x8044, 0x8045, 0x8047, 0x8048, 0x8049, 0x804e, - 0x804f, 0x8050, 0x8051, 0x8053, 0x8055, 0x8056, 0x8057, 0x003f, - 0x8059, 0x805b, 0x805c, 0x805d, 0x805e, 0x805f, 0x8060, 0x8061, - 0x8062, 0x8063, 0x8064, 0x8065, 0x8066, 0x8067, 0x8068, 0x806b, - 0x806c, 0x806d, 0x806e, 0x806f, 0x8070, 0x8072, 0x8073, 0x8074, - 0x8075, 0x8076, 0x8077, 0x8078, 0x8079, 0x807a, 0x807b, 0x807c, - 0x807d, 0x9686, 0x5784, 0x62e2, 0x9647, 0x697c, 0x5a04, 0x6402, - 0x7bd3, 0x6f0f, 0x964b, 0x82a6, 0x5362, 0x9885, 0x5e90, 0x7089, - 0x63b3, 0x5364, 0x864f, 0x9c81, 0x9e93, 0x788c, 0x9732, 0x8def, - 0x8d42, 0x9e7f, 0x6f5e, 0x7984, 0x5f55, 0x9646, 0x622e, 0x9a74, - 0x5415, 0x94dd, 0x4fa3, 0x65c5, 0x5c65, 0x5c61, 0x7f15, 0x8651, - 0x6c2f, 0x5f8b, 0x7387, 0x6ee4, 0x7eff, 0x5ce6, 0x631b, 0x5b6a, - 0x6ee6, 0x5375, 0x4e71, 0x63a0, 0x7565, 0x62a1, 0x8f6e, 0x4f26, - 0x4ed1, 0x6ca6, 0x7eb6, 0x8bba, 0x841d, 0x87ba, 0x7f57, 0x903b, - 0x9523, 0x7ba9, 0x9aa1, 0x88f8, 0x843d, 0x6d1b, 0x9a86, 0x7edc, - 0x5988, 0x9ebb, 0x739b, 0x7801, 0x8682, 0x9a6c, 0x9a82, 0x561b, - 0x5417, 0x57cb, 0x4e70, 0x9ea6, 0x5356, 0x8fc8, 0x8109, 0x7792, - 0x9992, 0x86ee, 0x6ee1, 0x8513, 0x66fc, 0x6162, 0x6f2b, 0x003f, - /* lead byte c3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x807e, 0x8081, 0x8082, 0x8085, 0x8088, 0x808a, 0x808d, 0x808e, - 0x808f, 0x8090, 0x8091, 0x8092, 0x8094, 0x8095, 0x8097, 0x8099, - 0x809e, 0x80a3, 0x80a6, 0x80a7, 0x80a8, 0x80ac, 0x80b0, 0x80b3, - 0x80b5, 0x80b6, 0x80b8, 0x80b9, 0x80bb, 0x80c5, 0x80c7, 0x80c8, - 0x80c9, 0x80ca, 0x80cb, 0x80cf, 0x80d0, 0x80d1, 0x80d2, 0x80d3, - 0x80d4, 0x80d5, 0x80d8, 0x80df, 0x80e0, 0x80e2, 0x80e3, 0x80e6, - 0x80ee, 0x80f5, 0x80f7, 0x80f9, 0x80fb, 0x80fe, 0x80ff, 0x8100, - 0x8101, 0x8103, 0x8104, 0x8105, 0x8107, 0x8108, 0x810b, 0x003f, - 0x810c, 0x8115, 0x8117, 0x8119, 0x811b, 0x811c, 0x811d, 0x811f, - 0x8120, 0x8121, 0x8122, 0x8123, 0x8124, 0x8125, 0x8126, 0x8127, - 0x8128, 0x8129, 0x812a, 0x812b, 0x812d, 0x812e, 0x8130, 0x8133, - 0x8134, 0x8135, 0x8137, 0x8139, 0x813a, 0x813b, 0x813c, 0x813d, - 0x813f, 0x8c29, 0x8292, 0x832b, 0x76f2, 0x6c13, 0x5fd9, 0x83bd, - 0x732b, 0x8305, 0x951a, 0x6bdb, 0x77db, 0x94c6, 0x536f, 0x8302, - 0x5192, 0x5e3d, 0x8c8c, 0x8d38, 0x4e48, 0x73ab, 0x679a, 0x6885, - 0x9176, 0x9709, 0x7164, 0x6ca1, 0x7709, 0x5a92, 0x9541, 0x6bcf, - 0x7f8e, 0x6627, 0x5bd0, 0x59b9, 0x5a9a, 0x95e8, 0x95f7, 0x4eec, - 0x840c, 0x8499, 0x6aac, 0x76df, 0x9530, 0x731b, 0x68a6, 0x5b5f, - 0x772f, 0x919a, 0x9761, 0x7cdc, 0x8ff7, 0x8c1c, 0x5f25, 0x7c73, - 0x79d8, 0x89c5, 0x6ccc, 0x871c, 0x5bc6, 0x5e42, 0x68c9, 0x7720, - 0x7ef5, 0x5195, 0x514d, 0x52c9, 0x5a29, 0x7f05, 0x9762, 0x82d7, - 0x63cf, 0x7784, 0x85d0, 0x79d2, 0x6e3a, 0x5e99, 0x5999, 0x8511, - 0x706d, 0x6c11, 0x62bf, 0x76bf, 0x654f, 0x60af, 0x95fd, 0x660e, - 0x879f, 0x9e23, 0x94ed, 0x540d, 0x547d, 0x8c2c, 0x6478, 0x003f, - /* lead byte c4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8140, 0x8141, 0x8142, 0x8143, 0x8144, 0x8145, 0x8147, 0x8149, - 0x814d, 0x814e, 0x814f, 0x8152, 0x8156, 0x8157, 0x8158, 0x815b, - 0x815c, 0x815d, 0x815e, 0x815f, 0x8161, 0x8162, 0x8163, 0x8164, - 0x8166, 0x8168, 0x816a, 0x816b, 0x816c, 0x816f, 0x8172, 0x8173, - 0x8175, 0x8176, 0x8177, 0x8178, 0x8181, 0x8183, 0x8184, 0x8185, - 0x8186, 0x8187, 0x8189, 0x818b, 0x818c, 0x818d, 0x818e, 0x8190, - 0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8199, 0x819a, - 0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2, 0x81a4, 0x81a5, 0x003f, - 0x81a7, 0x81a9, 0x81ab, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, - 0x81b1, 0x81b2, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, - 0x81bc, 0x81bd, 0x81be, 0x81bf, 0x81c4, 0x81c5, 0x81c7, 0x81c8, - 0x81c9, 0x81cb, 0x81cd, 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d2, - 0x81d3, 0x6479, 0x8611, 0x6a21, 0x819c, 0x78e8, 0x6469, 0x9b54, - 0x62b9, 0x672b, 0x83ab, 0x58a8, 0x9ed8, 0x6cab, 0x6f20, 0x5bde, - 0x964c, 0x8c0b, 0x725f, 0x67d0, 0x62c7, 0x7261, 0x4ea9, 0x59c6, - 0x6bcd, 0x5893, 0x66ae, 0x5e55, 0x52df, 0x6155, 0x6728, 0x76ee, - 0x7766, 0x7267, 0x7a46, 0x62ff, 0x54ea, 0x5450, 0x94a0, 0x90a3, - 0x5a1c, 0x7eb3, 0x6c16, 0x4e43, 0x5976, 0x8010, 0x5948, 0x5357, - 0x7537, 0x96be, 0x56ca, 0x6320, 0x8111, 0x607c, 0x95f9, 0x6dd6, - 0x5462, 0x9981, 0x5185, 0x5ae9, 0x80fd, 0x59ae, 0x9713, 0x502a, - 0x6ce5, 0x5c3c, 0x62df, 0x4f60, 0x533f, 0x817b, 0x9006, 0x6eba, - 0x852b, 0x62c8, 0x5e74, 0x78be, 0x64b5, 0x637b, 0x5ff5, 0x5a18, - 0x917f, 0x9e1f, 0x5c3f, 0x634f, 0x8042, 0x5b7d, 0x556e, 0x954a, - 0x954d, 0x6d85, 0x60a8, 0x67e0, 0x72de, 0x51dd, 0x5b81, 0x003f, - /* lead byte c5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0x81d8, 0x81d9, 0x81da, 0x81db, - 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0x81e1, 0x81e2, 0x81e4, - 0x81e5, 0x81e6, 0x81e8, 0x81e9, 0x81eb, 0x81ee, 0x81ef, 0x81f0, - 0x81f1, 0x81f2, 0x81f5, 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa, - 0x81fd, 0x81ff, 0x8203, 0x8207, 0x8208, 0x8209, 0x820a, 0x820b, - 0x820e, 0x820f, 0x8211, 0x8213, 0x8215, 0x8216, 0x8217, 0x8218, - 0x8219, 0x821a, 0x821d, 0x8220, 0x8224, 0x8225, 0x8226, 0x8227, - 0x8229, 0x822e, 0x8232, 0x823a, 0x823c, 0x823d, 0x823f, 0x003f, - 0x8240, 0x8241, 0x8242, 0x8243, 0x8245, 0x8246, 0x8248, 0x824a, - 0x824c, 0x824d, 0x824e, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, - 0x8255, 0x8256, 0x8257, 0x8259, 0x825b, 0x825c, 0x825d, 0x825e, - 0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, - 0x8269, 0x62e7, 0x6cde, 0x725b, 0x626d, 0x94ae, 0x7ebd, 0x8113, - 0x6d53, 0x519c, 0x5f04, 0x5974, 0x52aa, 0x6012, 0x5973, 0x6696, - 0x8650, 0x759f, 0x632a, 0x61e6, 0x7cef, 0x8bfa, 0x54e6, 0x6b27, - 0x9e25, 0x6bb4, 0x85d5, 0x5455, 0x5076, 0x6ca4, 0x556a, 0x8db4, - 0x722c, 0x5e15, 0x6015, 0x7436, 0x62cd, 0x6392, 0x724c, 0x5f98, - 0x6e43, 0x6d3e, 0x6500, 0x6f58, 0x76d8, 0x78d0, 0x76fc, 0x7554, - 0x5224, 0x53db, 0x4e53, 0x5e9e, 0x65c1, 0x802a, 0x80d6, 0x629b, - 0x5486, 0x5228, 0x70ae, 0x888d, 0x8dd1, 0x6ce1, 0x5478, 0x80da, - 0x57f9, 0x88f4, 0x8d54, 0x966a, 0x914d, 0x4f69, 0x6c9b, 0x55b7, - 0x76c6, 0x7830, 0x62a8, 0x70f9, 0x6f8e, 0x5f6d, 0x84ec, 0x68da, - 0x787c, 0x7bf7, 0x81a8, 0x670b, 0x9e4f, 0x6367, 0x78b0, 0x576f, - 0x7812, 0x9739, 0x6279, 0x62ab, 0x5288, 0x7435, 0x6bd7, 0x003f, - /* lead byte c6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x826a, 0x826b, 0x826c, 0x826d, 0x8271, 0x8275, 0x8276, 0x8277, - 0x8278, 0x827b, 0x827c, 0x8280, 0x8281, 0x8283, 0x8285, 0x8286, - 0x8287, 0x8289, 0x828c, 0x8290, 0x8293, 0x8294, 0x8295, 0x8296, - 0x829a, 0x829b, 0x829e, 0x82a0, 0x82a2, 0x82a3, 0x82a7, 0x82b2, - 0x82b5, 0x82b6, 0x82ba, 0x82bb, 0x82bc, 0x82bf, 0x82c0, 0x82c2, - 0x82c3, 0x82c5, 0x82c6, 0x82c9, 0x82d0, 0x82d6, 0x82d9, 0x82da, - 0x82dd, 0x82e2, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82ec, 0x82ed, - 0x82ee, 0x82f0, 0x82f2, 0x82f3, 0x82f5, 0x82f6, 0x82f8, 0x003f, - 0x82fa, 0x82fc, 0x82fd, 0x82fe, 0x82ff, 0x8300, 0x830a, 0x830b, - 0x830d, 0x8310, 0x8312, 0x8313, 0x8316, 0x8318, 0x8319, 0x831d, - 0x831e, 0x831f, 0x8320, 0x8321, 0x8322, 0x8323, 0x8324, 0x8325, - 0x8326, 0x8329, 0x832a, 0x832e, 0x8330, 0x8332, 0x8337, 0x833b, - 0x833d, 0x5564, 0x813e, 0x75b2, 0x76ae, 0x5339, 0x75de, 0x50fb, - 0x5c41, 0x8b6c, 0x7bc7, 0x504f, 0x7247, 0x9a97, 0x98d8, 0x6f02, - 0x74e2, 0x7968, 0x6487, 0x77a5, 0x62fc, 0x9891, 0x8d2b, 0x54c1, - 0x8058, 0x4e52, 0x576a, 0x82f9, 0x840d, 0x5e73, 0x51ed, 0x74f6, - 0x8bc4, 0x5c4f, 0x5761, 0x6cfc, 0x9887, 0x5a46, 0x7834, 0x9b44, - 0x8feb, 0x7c95, 0x5256, 0x6251, 0x94fa, 0x4ec6, 0x8386, 0x8461, - 0x83e9, 0x84b2, 0x57d4, 0x6734, 0x5703, 0x666e, 0x6d66, 0x8c31, - 0x66dd, 0x7011, 0x671f, 0x6b3a, 0x6816, 0x621a, 0x59bb, 0x4e03, - 0x51c4, 0x6f06, 0x67d2, 0x6c8f, 0x5176, 0x68cb, 0x5947, 0x6b67, - 0x7566, 0x5d0e, 0x8110, 0x9f50, 0x65d7, 0x7948, 0x7941, 0x9a91, - 0x8d77, 0x5c82, 0x4e5e, 0x4f01, 0x542f, 0x5951, 0x780c, 0x5668, - 0x6c14, 0x8fc4, 0x5f03, 0x6c7d, 0x6ce3, 0x8bab, 0x6390, 0x003f, - /* lead byte c7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x833e, 0x833f, 0x8341, 0x8342, 0x8344, 0x8345, 0x8348, 0x834a, - 0x834b, 0x834c, 0x834d, 0x834e, 0x8353, 0x8355, 0x8356, 0x8357, - 0x8358, 0x8359, 0x835d, 0x8362, 0x8370, 0x8371, 0x8372, 0x8373, - 0x8374, 0x8375, 0x8376, 0x8379, 0x837a, 0x837e, 0x837f, 0x8380, - 0x8381, 0x8382, 0x8383, 0x8384, 0x8387, 0x8388, 0x838a, 0x838b, - 0x838c, 0x838d, 0x838f, 0x8390, 0x8391, 0x8394, 0x8395, 0x8396, - 0x8397, 0x8399, 0x839a, 0x839d, 0x839f, 0x83a1, 0x83a2, 0x83a3, - 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83ac, 0x83ad, 0x83ae, 0x003f, - 0x83af, 0x83b5, 0x83bb, 0x83be, 0x83bf, 0x83c2, 0x83c3, 0x83c4, - 0x83c6, 0x83c8, 0x83c9, 0x83cb, 0x83cd, 0x83ce, 0x83d0, 0x83d1, - 0x83d2, 0x83d3, 0x83d5, 0x83d7, 0x83d9, 0x83da, 0x83db, 0x83de, - 0x83e2, 0x83e3, 0x83e4, 0x83e6, 0x83e7, 0x83e8, 0x83eb, 0x83ec, - 0x83ed, 0x6070, 0x6d3d, 0x7275, 0x6266, 0x948e, 0x94c5, 0x5343, - 0x8fc1, 0x7b7e, 0x4edf, 0x8c26, 0x4e7e, 0x9ed4, 0x94b1, 0x94b3, - 0x524d, 0x6f5c, 0x9063, 0x6d45, 0x8c34, 0x5811, 0x5d4c, 0x6b20, - 0x6b49, 0x67aa, 0x545b, 0x8154, 0x7f8c, 0x5899, 0x8537, 0x5f3a, - 0x62a2, 0x6a47, 0x9539, 0x6572, 0x6084, 0x6865, 0x77a7, 0x4e54, - 0x4fa8, 0x5de7, 0x9798, 0x64ac, 0x7fd8, 0x5ced, 0x4fcf, 0x7a8d, - 0x5207, 0x8304, 0x4e14, 0x602f, 0x7a83, 0x94a6, 0x4fb5, 0x4eb2, - 0x79e6, 0x7434, 0x52e4, 0x82b9, 0x64d2, 0x79bd, 0x5bdd, 0x6c81, - 0x9752, 0x8f7b, 0x6c22, 0x503e, 0x537f, 0x6e05, 0x64ce, 0x6674, - 0x6c30, 0x60c5, 0x9877, 0x8bf7, 0x5e86, 0x743c, 0x7a77, 0x79cb, - 0x4e18, 0x90b1, 0x7403, 0x6c42, 0x56da, 0x914b, 0x6cc5, 0x8d8b, - 0x533a, 0x86c6, 0x66f2, 0x8eaf, 0x5c48, 0x9a71, 0x6e20, 0x003f, - /* lead byte c8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x83ee, 0x83ef, 0x83f3, 0x83f4, 0x83f5, 0x83f6, 0x83f7, 0x83fa, - 0x83fb, 0x83fc, 0x83fe, 0x83ff, 0x8400, 0x8402, 0x8405, 0x8407, - 0x8408, 0x8409, 0x840a, 0x8410, 0x8412, 0x8413, 0x8414, 0x8415, - 0x8416, 0x8417, 0x8419, 0x841a, 0x841b, 0x841e, 0x841f, 0x8420, - 0x8421, 0x8422, 0x8423, 0x8429, 0x842a, 0x842b, 0x842c, 0x842d, - 0x842e, 0x842f, 0x8430, 0x8432, 0x8433, 0x8434, 0x8435, 0x8436, - 0x8437, 0x8439, 0x843a, 0x843b, 0x843e, 0x843f, 0x8440, 0x8441, - 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0x003f, - 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, 0x8452, - 0x8453, 0x8454, 0x8455, 0x8456, 0x8458, 0x845d, 0x845e, 0x845f, - 0x8460, 0x8462, 0x8464, 0x8465, 0x8466, 0x8467, 0x8468, 0x846a, - 0x846e, 0x846f, 0x8470, 0x8472, 0x8474, 0x8477, 0x8479, 0x847b, - 0x847c, 0x53d6, 0x5a36, 0x9f8b, 0x8da3, 0x53bb, 0x5708, 0x98a7, - 0x6743, 0x919b, 0x6cc9, 0x5168, 0x75ca, 0x62f3, 0x72ac, 0x5238, - 0x529d, 0x7f3a, 0x7094, 0x7638, 0x5374, 0x9e4a, 0x69b7, 0x786e, - 0x96c0, 0x88d9, 0x7fa4, 0x7136, 0x71c3, 0x5189, 0x67d3, 0x74e4, - 0x58e4, 0x6518, 0x56b7, 0x8ba9, 0x9976, 0x6270, 0x7ed5, 0x60f9, - 0x70ed, 0x58ec, 0x4ec1, 0x4eba, 0x5fcd, 0x97e7, 0x4efb, 0x8ba4, - 0x5203, 0x598a, 0x7eab, 0x6254, 0x4ecd, 0x65e5, 0x620e, 0x8338, - 0x84c9, 0x8363, 0x878d, 0x7194, 0x6eb6, 0x5bb9, 0x7ed2, 0x5197, - 0x63c9, 0x67d4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5b7a, 0x5982, - 0x8fb1, 0x4e73, 0x6c5d, 0x5165, 0x8925, 0x8f6f, 0x962e, 0x854a, - 0x745e, 0x9510, 0x95f0, 0x6da6, 0x82e5, 0x5f31, 0x6492, 0x6d12, - 0x8428, 0x816e, 0x9cc3, 0x585e, 0x8d5b, 0x4e09, 0x53c1, 0x003f, - /* lead byte c9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x847d, 0x847e, 0x847f, 0x8480, 0x8481, 0x8483, 0x8484, 0x8485, - 0x8486, 0x848a, 0x848d, 0x848f, 0x8490, 0x8491, 0x8492, 0x8493, - 0x8494, 0x8495, 0x8496, 0x8498, 0x849a, 0x849b, 0x849d, 0x849e, - 0x849f, 0x84a0, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, - 0x84a8, 0x84a9, 0x84aa, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84b0, - 0x84b1, 0x84b3, 0x84b5, 0x84b6, 0x84b7, 0x84bb, 0x84bc, 0x84be, - 0x84c0, 0x84c2, 0x84c3, 0x84c5, 0x84c6, 0x84c7, 0x84c8, 0x84cb, - 0x84cc, 0x84ce, 0x84cf, 0x84d2, 0x84d4, 0x84d5, 0x84d7, 0x003f, - 0x84d8, 0x84d9, 0x84da, 0x84db, 0x84dc, 0x84de, 0x84e1, 0x84e2, - 0x84e4, 0x84e7, 0x84e8, 0x84e9, 0x84ea, 0x84eb, 0x84ed, 0x84ee, - 0x84ef, 0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, - 0x84f8, 0x84f9, 0x84fa, 0x84fb, 0x84fd, 0x84fe, 0x8500, 0x8501, - 0x8502, 0x4f1e, 0x6563, 0x6851, 0x55d3, 0x4e27, 0x6414, 0x9a9a, - 0x626b, 0x5ac2, 0x745f, 0x8272, 0x6da9, 0x68ee, 0x50e7, 0x838e, - 0x7802, 0x6740, 0x5239, 0x6c99, 0x7eb1, 0x50bb, 0x5565, 0x715e, - 0x7b5b, 0x6652, 0x73ca, 0x82eb, 0x6749, 0x5c71, 0x5220, 0x717d, - 0x886b, 0x95ea, 0x9655, 0x64c5, 0x8d61, 0x81b3, 0x5584, 0x6c55, - 0x6247, 0x7f2e, 0x5892, 0x4f24, 0x5546, 0x8d4f, 0x664c, 0x4e0a, - 0x5c1a, 0x88f3, 0x68a2, 0x634e, 0x7a0d, 0x70e7, 0x828d, 0x52fa, - 0x97f6, 0x5c11, 0x54e8, 0x90b5, 0x7ecd, 0x5962, 0x8d4a, 0x86c7, - 0x820c, 0x820d, 0x8d66, 0x6444, 0x5c04, 0x6151, 0x6d89, 0x793e, - 0x8bbe, 0x7837, 0x7533, 0x547b, 0x4f38, 0x8eab, 0x6df1, 0x5a20, - 0x7ec5, 0x795e, 0x6c88, 0x5ba1, 0x5a76, 0x751a, 0x80be, 0x614e, - 0x6e17, 0x58f0, 0x751f, 0x7525, 0x7272, 0x5347, 0x7ef3, 0x003f, - /* lead byte ca */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8503, 0x8504, 0x8505, 0x8506, 0x8507, 0x8508, 0x8509, 0x850a, - 0x850b, 0x850d, 0x850e, 0x850f, 0x8510, 0x8512, 0x8514, 0x8515, - 0x8516, 0x8518, 0x8519, 0x851b, 0x851c, 0x851d, 0x851e, 0x8520, - 0x8522, 0x8523, 0x8524, 0x8525, 0x8526, 0x8527, 0x8528, 0x8529, - 0x852a, 0x852d, 0x852e, 0x852f, 0x8530, 0x8531, 0x8532, 0x8533, - 0x8534, 0x8535, 0x8536, 0x853e, 0x853f, 0x8540, 0x8541, 0x8542, - 0x8544, 0x8545, 0x8546, 0x8547, 0x854b, 0x854c, 0x854d, 0x854e, - 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8554, 0x8555, 0x003f, - 0x8557, 0x8558, 0x855a, 0x855b, 0x855c, 0x855d, 0x855f, 0x8560, - 0x8561, 0x8562, 0x8563, 0x8565, 0x8566, 0x8567, 0x8569, 0x856a, - 0x856b, 0x856c, 0x856d, 0x856e, 0x856f, 0x8570, 0x8571, 0x8573, - 0x8575, 0x8576, 0x8577, 0x8578, 0x857c, 0x857d, 0x857f, 0x8580, - 0x8581, 0x7701, 0x76db, 0x5269, 0x80dc, 0x5723, 0x5e08, 0x5931, - 0x72ee, 0x65bd, 0x6e7f, 0x8bd7, 0x5c38, 0x8671, 0x5341, 0x77f3, - 0x62fe, 0x65f6, 0x4ec0, 0x98df, 0x8680, 0x5b9e, 0x8bc6, 0x53f2, - 0x77e2, 0x4f7f, 0x5c4e, 0x9a76, 0x59cb, 0x5f0f, 0x793a, 0x58eb, - 0x4e16, 0x67ff, 0x4e8b, 0x62ed, 0x8a93, 0x901d, 0x52bf, 0x662f, - 0x55dc, 0x566c, 0x9002, 0x4ed5, 0x4f8d, 0x91ca, 0x9970, 0x6c0f, - 0x5e02, 0x6043, 0x5ba4, 0x89c6, 0x8bd5, 0x6536, 0x624b, 0x9996, - 0x5b88, 0x5bff, 0x6388, 0x552e, 0x53d7, 0x7626, 0x517d, 0x852c, - 0x67a2, 0x68b3, 0x6b8a, 0x6292, 0x8f93, 0x53d4, 0x8212, 0x6dd1, - 0x758f, 0x4e66, 0x8d4e, 0x5b70, 0x719f, 0x85af, 0x6691, 0x66d9, - 0x7f72, 0x8700, 0x9ecd, 0x9f20, 0x5c5e, 0x672f, 0x8ff0, 0x6811, - 0x675f, 0x620d, 0x7ad6, 0x5885, 0x5eb6, 0x6570, 0x6f31, 0x003f, - /* lead byte cb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8582, 0x8583, 0x8586, 0x8588, 0x8589, 0x858a, 0x858b, 0x858c, - 0x858d, 0x858e, 0x8590, 0x8591, 0x8592, 0x8593, 0x8594, 0x8595, - 0x8596, 0x8597, 0x8598, 0x8599, 0x859a, 0x859d, 0x859e, 0x859f, - 0x85a0, 0x85a1, 0x85a2, 0x85a3, 0x85a5, 0x85a6, 0x85a7, 0x85a9, - 0x85ab, 0x85ac, 0x85ad, 0x85b1, 0x85b2, 0x85b3, 0x85b4, 0x85b5, - 0x85b6, 0x85b8, 0x85ba, 0x85bb, 0x85bc, 0x85bd, 0x85be, 0x85bf, - 0x85c0, 0x85c2, 0x85c3, 0x85c4, 0x85c5, 0x85c6, 0x85c7, 0x85c8, - 0x85ca, 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85d1, 0x85d2, 0x003f, - 0x85d4, 0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da, 0x85db, 0x85dd, - 0x85de, 0x85df, 0x85e0, 0x85e1, 0x85e2, 0x85e3, 0x85e5, 0x85e6, - 0x85e7, 0x85e8, 0x85ea, 0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, - 0x85f0, 0x85f1, 0x85f2, 0x85f3, 0x85f4, 0x85f5, 0x85f6, 0x85f7, - 0x85f8, 0x6055, 0x5237, 0x800d, 0x6454, 0x8870, 0x7529, 0x5e05, - 0x6813, 0x62f4, 0x971c, 0x53cc, 0x723d, 0x8c01, 0x6c34, 0x7761, - 0x7a0e, 0x542e, 0x77ac, 0x987a, 0x821c, 0x8bf4, 0x7855, 0x6714, - 0x70c1, 0x65af, 0x6495, 0x5636, 0x601d, 0x79c1, 0x53f8, 0x4e1d, - 0x6b7b, 0x8086, 0x5bfa, 0x55e3, 0x56db, 0x4f3a, 0x4f3c, 0x9972, - 0x5df3, 0x677e, 0x8038, 0x6002, 0x9882, 0x9001, 0x5b8b, 0x8bbc, - 0x8bf5, 0x641c, 0x8258, 0x64de, 0x55fd, 0x82cf, 0x9165, 0x4fd7, - 0x7d20, 0x901f, 0x7c9f, 0x50f3, 0x5851, 0x6eaf, 0x5bbf, 0x8bc9, - 0x8083, 0x9178, 0x849c, 0x7b97, 0x867d, 0x968b, 0x968f, 0x7ee5, - 0x9ad3, 0x788e, 0x5c81, 0x7a57, 0x9042, 0x96a7, 0x795f, 0x5b59, - 0x635f, 0x7b0b, 0x84d1, 0x68ad, 0x5506, 0x7f29, 0x7410, 0x7d22, - 0x9501, 0x6240, 0x584c, 0x4ed6, 0x5b83, 0x5979, 0x5854, 0x003f, - /* lead byte cc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x85f9, 0x85fa, 0x85fc, 0x85fd, 0x85fe, 0x8600, 0x8601, 0x8602, - 0x8603, 0x8604, 0x8606, 0x8607, 0x8608, 0x8609, 0x860a, 0x860b, - 0x860c, 0x860d, 0x860e, 0x860f, 0x8610, 0x8612, 0x8613, 0x8614, - 0x8615, 0x8617, 0x8618, 0x8619, 0x861a, 0x861b, 0x861c, 0x861d, - 0x861e, 0x861f, 0x8620, 0x8621, 0x8622, 0x8623, 0x8624, 0x8625, - 0x8626, 0x8628, 0x862a, 0x862b, 0x862c, 0x862d, 0x862e, 0x862f, - 0x8630, 0x8631, 0x8632, 0x8633, 0x8634, 0x8635, 0x8636, 0x8637, - 0x8639, 0x863a, 0x863b, 0x863d, 0x863e, 0x863f, 0x8640, 0x003f, - 0x8641, 0x8642, 0x8643, 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, - 0x8649, 0x864a, 0x864b, 0x864c, 0x8652, 0x8653, 0x8655, 0x8656, - 0x8657, 0x8658, 0x8659, 0x865b, 0x865c, 0x865d, 0x865f, 0x8660, - 0x8661, 0x8663, 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, - 0x866a, 0x736d, 0x631e, 0x8e4b, 0x8e0f, 0x80ce, 0x82d4, 0x62ac, - 0x53f0, 0x6cf0, 0x915e, 0x592a, 0x6001, 0x6c70, 0x574d, 0x644a, - 0x8d2a, 0x762b, 0x6ee9, 0x575b, 0x6a80, 0x75f0, 0x6f6d, 0x8c2d, - 0x8c08, 0x5766, 0x6bef, 0x8892, 0x78b3, 0x63a2, 0x53f9, 0x70ad, - 0x6c64, 0x5858, 0x642a, 0x5802, 0x68e0, 0x819b, 0x5510, 0x7cd6, - 0x5018, 0x8eba, 0x6dcc, 0x8d9f, 0x70eb, 0x638f, 0x6d9b, 0x6ed4, - 0x7ee6, 0x8404, 0x6843, 0x9003, 0x6dd8, 0x9676, 0x8ba8, 0x5957, - 0x7279, 0x85e4, 0x817e, 0x75bc, 0x8a8a, 0x68af, 0x5254, 0x8e22, - 0x9511, 0x63d0, 0x9898, 0x8e44, 0x557c, 0x4f53, 0x66ff, 0x568f, - 0x60d5, 0x6d95, 0x5243, 0x5c49, 0x5929, 0x6dfb, 0x586b, 0x7530, - 0x751c, 0x606c, 0x8214, 0x8146, 0x6311, 0x6761, 0x8fe2, 0x773a, - 0x8df3, 0x8d34, 0x94c1, 0x5e16, 0x5385, 0x542c, 0x70c3, 0x003f, - /* lead byte cd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x866d, 0x866f, 0x8670, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, - 0x8677, 0x8678, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, 0x8688, - 0x8689, 0x868e, 0x868f, 0x8690, 0x8691, 0x8692, 0x8694, 0x8696, - 0x8697, 0x8698, 0x8699, 0x869a, 0x869b, 0x869e, 0x869f, 0x86a0, - 0x86a1, 0x86a2, 0x86a5, 0x86a6, 0x86ab, 0x86ad, 0x86ae, 0x86b2, - 0x86b3, 0x86b7, 0x86b8, 0x86b9, 0x86bb, 0x86bc, 0x86bd, 0x86be, - 0x86bf, 0x86c1, 0x86c2, 0x86c3, 0x86c5, 0x86c8, 0x86cc, 0x86cd, - 0x86d2, 0x86d3, 0x86d5, 0x86d6, 0x86d7, 0x86da, 0x86dc, 0x003f, - 0x86dd, 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e5, 0x86e6, 0x86e7, - 0x86e8, 0x86ea, 0x86eb, 0x86ec, 0x86ef, 0x86f5, 0x86f6, 0x86f7, - 0x86fa, 0x86fb, 0x86fc, 0x86fd, 0x86ff, 0x8701, 0x8704, 0x8705, - 0x8706, 0x870b, 0x870c, 0x870e, 0x870f, 0x8710, 0x8711, 0x8714, - 0x8716, 0x6c40, 0x5ef7, 0x505c, 0x4ead, 0x5ead, 0x633a, 0x8247, - 0x901a, 0x6850, 0x916e, 0x77b3, 0x540c, 0x94dc, 0x5f64, 0x7ae5, - 0x6876, 0x6345, 0x7b52, 0x7edf, 0x75db, 0x5077, 0x6295, 0x5934, - 0x900f, 0x51f8, 0x79c3, 0x7a81, 0x56fe, 0x5f92, 0x9014, 0x6d82, - 0x5c60, 0x571f, 0x5410, 0x5154, 0x6e4d, 0x56e2, 0x63a8, 0x9893, - 0x817f, 0x8715, 0x892a, 0x9000, 0x541e, 0x5c6f, 0x81c0, 0x62d6, - 0x6258, 0x8131, 0x9e35, 0x9640, 0x9a6e, 0x9a7c, 0x692d, 0x59a5, - 0x62d3, 0x553e, 0x6316, 0x54c7, 0x86d9, 0x6d3c, 0x5a03, 0x74e6, - 0x889c, 0x6b6a, 0x5916, 0x8c4c, 0x5f2f, 0x6e7e, 0x73a9, 0x987d, - 0x4e38, 0x70f7, 0x5b8c, 0x7897, 0x633d, 0x665a, 0x7696, 0x60cb, - 0x5b9b, 0x5a49, 0x4e07, 0x8155, 0x6c6a, 0x738b, 0x4ea1, 0x6789, - 0x7f51, 0x5f80, 0x65fa, 0x671b, 0x5fd8, 0x5984, 0x5a01, 0x003f, - /* lead byte ce */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8719, 0x871b, 0x871d, 0x871f, 0x8720, 0x8724, 0x8726, 0x8727, - 0x8728, 0x872a, 0x872b, 0x872c, 0x872d, 0x872f, 0x8730, 0x8732, - 0x8733, 0x8735, 0x8736, 0x8738, 0x8739, 0x873a, 0x873c, 0x873d, - 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x874a, - 0x874b, 0x874d, 0x874f, 0x8750, 0x8751, 0x8752, 0x8754, 0x8755, - 0x8756, 0x8758, 0x875a, 0x875b, 0x875c, 0x875d, 0x875e, 0x875f, - 0x8761, 0x8762, 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, - 0x876c, 0x876d, 0x876f, 0x8771, 0x8772, 0x8773, 0x8775, 0x003f, - 0x8777, 0x8778, 0x8779, 0x877a, 0x877f, 0x8780, 0x8781, 0x8784, - 0x8786, 0x8787, 0x8789, 0x878a, 0x878c, 0x878e, 0x878f, 0x8790, - 0x8791, 0x8792, 0x8794, 0x8795, 0x8796, 0x8798, 0x8799, 0x879a, - 0x879b, 0x879c, 0x879d, 0x879e, 0x87a0, 0x87a1, 0x87a2, 0x87a3, - 0x87a4, 0x5dcd, 0x5fae, 0x5371, 0x97e6, 0x8fdd, 0x6845, 0x56f4, - 0x552f, 0x60df, 0x4e3a, 0x6f4d, 0x7ef4, 0x82c7, 0x840e, 0x59d4, - 0x4f1f, 0x4f2a, 0x5c3e, 0x7eac, 0x672a, 0x851a, 0x5473, 0x754f, - 0x80c3, 0x5582, 0x9b4f, 0x4f4d, 0x6e2d, 0x8c13, 0x5c09, 0x6170, - 0x536b, 0x761f, 0x6e29, 0x868a, 0x6587, 0x95fb, 0x7eb9, 0x543b, - 0x7a33, 0x7d0a, 0x95ee, 0x55e1, 0x7fc1, 0x74ee, 0x631d, 0x8717, - 0x6da1, 0x7a9d, 0x6211, 0x65a1, 0x5367, 0x63e1, 0x6c83, 0x5deb, - 0x545c, 0x94a8, 0x4e4c, 0x6c61, 0x8bec, 0x5c4b, 0x65e0, 0x829c, - 0x68a7, 0x543e, 0x5434, 0x6bcb, 0x6b66, 0x4e94, 0x6342, 0x5348, - 0x821e, 0x4f0d, 0x4fae, 0x575e, 0x620a, 0x96fe, 0x6664, 0x7269, - 0x52ff, 0x52a1, 0x609f, 0x8bef, 0x6614, 0x7199, 0x6790, 0x897f, - 0x7852, 0x77fd, 0x6670, 0x563b, 0x5438, 0x9521, 0x727a, 0x003f, - /* lead byte cf */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x87a5, 0x87a6, 0x87a7, 0x87a9, 0x87aa, 0x87ae, 0x87b0, 0x87b1, - 0x87b2, 0x87b4, 0x87b6, 0x87b7, 0x87b8, 0x87b9, 0x87bb, 0x87bc, - 0x87be, 0x87bf, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c7, - 0x87c8, 0x87c9, 0x87cc, 0x87cd, 0x87ce, 0x87cf, 0x87d0, 0x87d4, - 0x87d5, 0x87d6, 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87dc, 0x87dd, - 0x87de, 0x87df, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e6, 0x87e7, - 0x87e8, 0x87e9, 0x87eb, 0x87ec, 0x87ed, 0x87ef, 0x87f0, 0x87f1, - 0x87f2, 0x87f3, 0x87f4, 0x87f5, 0x87f6, 0x87f7, 0x87f8, 0x003f, - 0x87fa, 0x87fb, 0x87fc, 0x87fd, 0x87ff, 0x8800, 0x8801, 0x8802, - 0x8804, 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 0x880b, 0x880c, - 0x880d, 0x880e, 0x880f, 0x8810, 0x8811, 0x8812, 0x8814, 0x8817, - 0x8818, 0x8819, 0x881a, 0x881c, 0x881d, 0x881e, 0x881f, 0x8820, - 0x8823, 0x7a00, 0x606f, 0x5e0c, 0x6089, 0x819d, 0x5915, 0x60dc, - 0x7184, 0x70ef, 0x6eaa, 0x6c50, 0x7280, 0x6a84, 0x88ad, 0x5e2d, - 0x4e60, 0x5ab3, 0x559c, 0x94e3, 0x6d17, 0x7cfb, 0x9699, 0x620f, - 0x7ec6, 0x778e, 0x867e, 0x5323, 0x971e, 0x8f96, 0x6687, 0x5ce1, - 0x4fa0, 0x72ed, 0x4e0b, 0x53a6, 0x590f, 0x5413, 0x6380, 0x9528, - 0x5148, 0x4ed9, 0x9c9c, 0x7ea4, 0x54b8, 0x8d24, 0x8854, 0x8237, - 0x95f2, 0x6d8e, 0x5f26, 0x5acc, 0x663e, 0x9669, 0x73b0, 0x732e, - 0x53bf, 0x817a, 0x9985, 0x7fa1, 0x5baa, 0x9677, 0x9650, 0x7ebf, - 0x76f8, 0x53a2, 0x9576, 0x9999, 0x7bb1, 0x8944, 0x6e58, 0x4e61, - 0x7fd4, 0x7965, 0x8be6, 0x60f3, 0x54cd, 0x4eab, 0x9879, 0x5df7, - 0x6a61, 0x50cf, 0x5411, 0x8c61, 0x8427, 0x785d, 0x9704, 0x524a, - 0x54ee, 0x56a3, 0x9500, 0x6d88, 0x5bb5, 0x6dc6, 0x6653, 0x003f, - /* lead byte d0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8824, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 0x882a, 0x882b, - 0x882c, 0x882d, 0x882e, 0x882f, 0x8830, 0x8831, 0x8833, 0x8834, - 0x8835, 0x8836, 0x8837, 0x8838, 0x883a, 0x883b, 0x883d, 0x883e, - 0x883f, 0x8841, 0x8842, 0x8843, 0x8846, 0x8847, 0x8848, 0x8849, - 0x884a, 0x884b, 0x884e, 0x884f, 0x8850, 0x8851, 0x8852, 0x8853, - 0x8855, 0x8856, 0x8858, 0x885a, 0x885b, 0x885c, 0x885d, 0x885e, - 0x885f, 0x8860, 0x8866, 0x8867, 0x886a, 0x886d, 0x886f, 0x8871, - 0x8873, 0x8874, 0x8875, 0x8876, 0x8878, 0x8879, 0x887a, 0x003f, - 0x887b, 0x887c, 0x8880, 0x8883, 0x8886, 0x8887, 0x8889, 0x888a, - 0x888c, 0x888e, 0x888f, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, - 0x8897, 0x8898, 0x8899, 0x889a, 0x889b, 0x889d, 0x889e, 0x889f, - 0x88a0, 0x88a1, 0x88a3, 0x88a5, 0x88a6, 0x88a7, 0x88a8, 0x88a9, - 0x88aa, 0x5c0f, 0x5b5d, 0x6821, 0x8096, 0x5578, 0x7b11, 0x6548, - 0x6954, 0x4e9b, 0x6b47, 0x874e, 0x978b, 0x534f, 0x631f, 0x643a, - 0x90aa, 0x659c, 0x80c1, 0x8c10, 0x5199, 0x68b0, 0x5378, 0x87f9, - 0x61c8, 0x6cc4, 0x6cfb, 0x8c22, 0x5c51, 0x85aa, 0x82af, 0x950c, - 0x6b23, 0x8f9b, 0x65b0, 0x5ffb, 0x5fc3, 0x4fe1, 0x8845, 0x661f, - 0x8165, 0x7329, 0x60fa, 0x5174, 0x5211, 0x578b, 0x5f62, 0x90a2, - 0x884c, 0x9192, 0x5e78, 0x674f, 0x6027, 0x59d3, 0x5144, 0x51f6, - 0x80f8, 0x5308, 0x6c79, 0x96c4, 0x718a, 0x4f11, 0x4fee, 0x7f9e, - 0x673d, 0x55c5, 0x9508, 0x79c0, 0x8896, 0x7ee3, 0x589f, 0x620c, - 0x9700, 0x865a, 0x5618, 0x987b, 0x5f90, 0x8bb8, 0x84c4, 0x9157, - 0x53d9, 0x65ed, 0x5e8f, 0x755c, 0x6064, 0x7d6e, 0x5a7f, 0x7eea, - 0x7eed, 0x8f69, 0x55a7, 0x5ba3, 0x60ac, 0x65cb, 0x7384, 0x003f, - /* lead byte d1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x88ac, 0x88ae, 0x88af, 0x88b0, 0x88b2, 0x88b3, 0x88b4, 0x88b5, - 0x88b6, 0x88b8, 0x88b9, 0x88ba, 0x88bb, 0x88bd, 0x88be, 0x88bf, - 0x88c0, 0x88c3, 0x88c4, 0x88c7, 0x88c8, 0x88ca, 0x88cb, 0x88cc, - 0x88cd, 0x88cf, 0x88d0, 0x88d1, 0x88d3, 0x88d6, 0x88d7, 0x88da, - 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88e0, 0x88e1, 0x88e6, 0x88e7, - 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f2, - 0x88f5, 0x88f6, 0x88f7, 0x88fa, 0x88fb, 0x88fd, 0x88ff, 0x8900, - 0x8901, 0x8903, 0x8904, 0x8905, 0x8906, 0x8907, 0x8908, 0x003f, - 0x8909, 0x890b, 0x890c, 0x890d, 0x890e, 0x890f, 0x8911, 0x8914, - 0x8915, 0x8916, 0x8917, 0x8918, 0x891c, 0x891d, 0x891e, 0x891f, - 0x8920, 0x8922, 0x8923, 0x8924, 0x8926, 0x8927, 0x8928, 0x8929, - 0x892c, 0x892d, 0x892e, 0x892f, 0x8931, 0x8932, 0x8933, 0x8935, - 0x8937, 0x9009, 0x7663, 0x7729, 0x7eda, 0x9774, 0x859b, 0x5b66, - 0x7a74, 0x96ea, 0x8840, 0x52cb, 0x718f, 0x5faa, 0x65ec, 0x8be2, - 0x5bfb, 0x9a6f, 0x5de1, 0x6b89, 0x6c5b, 0x8bad, 0x8baf, 0x900a, - 0x8fc5, 0x538b, 0x62bc, 0x9e26, 0x9e2d, 0x5440, 0x4e2b, 0x82bd, - 0x7259, 0x869c, 0x5d16, 0x8859, 0x6daf, 0x96c5, 0x54d1, 0x4e9a, - 0x8bb6, 0x7109, 0x54bd, 0x9609, 0x70df, 0x6df9, 0x76d0, 0x4e25, - 0x7814, 0x8712, 0x5ca9, 0x5ef6, 0x8a00, 0x989c, 0x960e, 0x708e, - 0x6cbf, 0x5944, 0x63a9, 0x773c, 0x884d, 0x6f14, 0x8273, 0x5830, - 0x71d5, 0x538c, 0x781a, 0x96c1, 0x5501, 0x5f66, 0x7130, 0x5bb4, - 0x8c1a, 0x9a8c, 0x6b83, 0x592e, 0x9e2f, 0x79e7, 0x6768, 0x626c, - 0x4f6f, 0x75a1, 0x7f8a, 0x6d0b, 0x9633, 0x6c27, 0x4ef0, 0x75d2, - 0x517b, 0x6837, 0x6f3e, 0x9080, 0x8170, 0x5996, 0x7476, 0x003f, - /* lead byte d2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8938, 0x8939, 0x893a, 0x893b, 0x893c, 0x893d, 0x893e, 0x893f, - 0x8940, 0x8942, 0x8943, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, - 0x894a, 0x894b, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, - 0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, - 0x895a, 0x895b, 0x895c, 0x895d, 0x8960, 0x8961, 0x8962, 0x8963, - 0x8964, 0x8965, 0x8967, 0x8968, 0x8969, 0x896a, 0x896b, 0x896c, - 0x896d, 0x896e, 0x896f, 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, - 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, 0x897a, 0x897c, 0x003f, - 0x897d, 0x897e, 0x8980, 0x8982, 0x8984, 0x8985, 0x8987, 0x8988, - 0x8989, 0x898a, 0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, - 0x8991, 0x8992, 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, - 0x8999, 0x899a, 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, - 0x89a1, 0x6447, 0x5c27, 0x9065, 0x7a91, 0x8c23, 0x59da, 0x54ac, - 0x8200, 0x836f, 0x8981, 0x8000, 0x6930, 0x564e, 0x8036, 0x7237, - 0x91ce, 0x51b6, 0x4e5f, 0x9875, 0x6396, 0x4e1a, 0x53f6, 0x66f3, - 0x814b, 0x591c, 0x6db2, 0x4e00, 0x58f9, 0x533b, 0x63d6, 0x94f1, - 0x4f9d, 0x4f0a, 0x8863, 0x9890, 0x5937, 0x9057, 0x79fb, 0x4eea, - 0x80f0, 0x7591, 0x6c82, 0x5b9c, 0x59e8, 0x5f5d, 0x6905, 0x8681, - 0x501a, 0x5df2, 0x4e59, 0x77e3, 0x4ee5, 0x827a, 0x6291, 0x6613, - 0x9091, 0x5c79, 0x4ebf, 0x5f79, 0x81c6, 0x9038, 0x8084, 0x75ab, - 0x4ea6, 0x88d4, 0x610f, 0x6bc5, 0x5fc6, 0x4e49, 0x76ca, 0x6ea2, - 0x8be3, 0x8bae, 0x8c0a, 0x8bd1, 0x5f02, 0x7ffc, 0x7fcc, 0x7ece, - 0x8335, 0x836b, 0x56e0, 0x6bb7, 0x97f3, 0x9634, 0x59fb, 0x541f, - 0x94f6, 0x6deb, 0x5bc5, 0x996e, 0x5c39, 0x5f15, 0x9690, 0x003f, - /* lead byte d3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x89a2, 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9, - 0x89aa, 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1, - 0x89b2, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, - 0x89ba, 0x89bb, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c3, - 0x89cd, 0x89d3, 0x89d4, 0x89d5, 0x89d7, 0x89d8, 0x89d9, 0x89db, - 0x89dd, 0x89df, 0x89e0, 0x89e1, 0x89e2, 0x89e4, 0x89e7, 0x89e8, - 0x89e9, 0x89ea, 0x89ec, 0x89ed, 0x89ee, 0x89f0, 0x89f1, 0x89f2, - 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa, 0x003f, - 0x89fb, 0x89fc, 0x89fd, 0x89fe, 0x89ff, 0x8a01, 0x8a02, 0x8a03, - 0x8a04, 0x8a05, 0x8a06, 0x8a08, 0x8a09, 0x8a0a, 0x8a0b, 0x8a0c, - 0x8a0d, 0x8a0e, 0x8a0f, 0x8a10, 0x8a11, 0x8a12, 0x8a13, 0x8a14, - 0x8a15, 0x8a16, 0x8a17, 0x8a18, 0x8a19, 0x8a1a, 0x8a1b, 0x8a1c, - 0x8a1d, 0x5370, 0x82f1, 0x6a31, 0x5a74, 0x9e70, 0x5e94, 0x7f28, - 0x83b9, 0x8424, 0x8425, 0x8367, 0x8747, 0x8fce, 0x8d62, 0x76c8, - 0x5f71, 0x9896, 0x786c, 0x6620, 0x54df, 0x62e5, 0x4f63, 0x81c3, - 0x75c8, 0x5eb8, 0x96cd, 0x8e0a, 0x86f9, 0x548f, 0x6cf3, 0x6d8c, - 0x6c38, 0x607f, 0x52c7, 0x7528, 0x5e7d, 0x4f18, 0x60a0, 0x5fe7, - 0x5c24, 0x7531, 0x90ae, 0x94c0, 0x72b9, 0x6cb9, 0x6e38, 0x9149, - 0x6709, 0x53cb, 0x53f3, 0x4f51, 0x91c9, 0x8bf1, 0x53c8, 0x5e7c, - 0x8fc2, 0x6de4, 0x4e8e, 0x76c2, 0x6986, 0x865e, 0x611a, 0x8206, - 0x4f59, 0x4fde, 0x903e, 0x9c7c, 0x6109, 0x6e1d, 0x6e14, 0x9685, - 0x4e88, 0x5a31, 0x96e8, 0x4e0e, 0x5c7f, 0x79b9, 0x5b87, 0x8bed, - 0x7fbd, 0x7389, 0x57df, 0x828b, 0x90c1, 0x5401, 0x9047, 0x55bb, - 0x5cea, 0x5fa1, 0x6108, 0x6b32, 0x72f1, 0x80b2, 0x8a89, 0x003f, - /* lead byte d4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8a1e, 0x8a1f, 0x8a20, 0x8a21, 0x8a22, 0x8a23, 0x8a24, 0x8a25, - 0x8a26, 0x8a27, 0x8a28, 0x8a29, 0x8a2a, 0x8a2b, 0x8a2c, 0x8a2d, - 0x8a2e, 0x8a2f, 0x8a30, 0x8a31, 0x8a32, 0x8a33, 0x8a34, 0x8a35, - 0x8a36, 0x8a37, 0x8a38, 0x8a39, 0x8a3a, 0x8a3b, 0x8a3c, 0x8a3d, - 0x8a3f, 0x8a40, 0x8a41, 0x8a42, 0x8a43, 0x8a44, 0x8a45, 0x8a46, - 0x8a47, 0x8a49, 0x8a4a, 0x8a4b, 0x8a4c, 0x8a4d, 0x8a4e, 0x8a4f, - 0x8a50, 0x8a51, 0x8a52, 0x8a53, 0x8a54, 0x8a55, 0x8a56, 0x8a57, - 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, 0x8a5e, 0x003f, - 0x8a5f, 0x8a60, 0x8a61, 0x8a62, 0x8a63, 0x8a64, 0x8a65, 0x8a66, - 0x8a67, 0x8a68, 0x8a69, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, - 0x8a6f, 0x8a70, 0x8a71, 0x8a72, 0x8a73, 0x8a74, 0x8a75, 0x8a76, - 0x8a77, 0x8a78, 0x8a7a, 0x8a7b, 0x8a7c, 0x8a7d, 0x8a7e, 0x8a7f, - 0x8a80, 0x6d74, 0x5bd3, 0x88d5, 0x9884, 0x8c6b, 0x9a6d, 0x9e33, - 0x6e0a, 0x51a4, 0x5143, 0x57a3, 0x8881, 0x539f, 0x63f4, 0x8f95, - 0x56ed, 0x5458, 0x5706, 0x733f, 0x6e90, 0x7f18, 0x8fdc, 0x82d1, - 0x613f, 0x6028, 0x9662, 0x66f0, 0x7ea6, 0x8d8a, 0x8dc3, 0x94a5, - 0x5cb3, 0x7ca4, 0x6708, 0x60a6, 0x9605, 0x8018, 0x4e91, 0x90e7, - 0x5300, 0x9668, 0x5141, 0x8fd0, 0x8574, 0x915d, 0x6655, 0x97f5, - 0x5b55, 0x531d, 0x7838, 0x6742, 0x683d, 0x54c9, 0x707e, 0x5bb0, - 0x8f7d, 0x518d, 0x5728, 0x54b1, 0x6512, 0x6682, 0x8d5e, 0x8d43, - 0x810f, 0x846c, 0x906d, 0x7cdf, 0x51ff, 0x85fb, 0x67a3, 0x65e9, - 0x6fa1, 0x86a4, 0x8e81, 0x566a, 0x9020, 0x7682, 0x7076, 0x71e5, - 0x8d23, 0x62e9, 0x5219, 0x6cfd, 0x8d3c, 0x600e, 0x589e, 0x618e, - 0x66fe, 0x8d60, 0x624e, 0x55b3, 0x6e23, 0x672d, 0x8f67, 0x003f, - /* lead byte d5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8a81, 0x8a82, 0x8a83, 0x8a84, 0x8a85, 0x8a86, 0x8a87, 0x8a88, - 0x8a8b, 0x8a8c, 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92, - 0x8a94, 0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, - 0x8a9c, 0x8a9d, 0x8a9e, 0x8a9f, 0x8aa0, 0x8aa1, 0x8aa2, 0x8aa3, - 0x8aa4, 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, - 0x8aac, 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, - 0x8ab4, 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, 0x8aba, 0x8abb, - 0x8abc, 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0x003f, - 0x8ac3, 0x8ac4, 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, - 0x8acb, 0x8acc, 0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad2, - 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, - 0x8adb, 0x8adc, 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, - 0x8ae3, 0x94e1, 0x95f8, 0x7728, 0x6805, 0x69a8, 0x548b, 0x4e4d, - 0x70b8, 0x8bc8, 0x6458, 0x658b, 0x5b85, 0x7a84, 0x503a, 0x5be8, - 0x77bb, 0x6be1, 0x8a79, 0x7c98, 0x6cbe, 0x76cf, 0x65a9, 0x8f97, - 0x5d2d, 0x5c55, 0x8638, 0x6808, 0x5360, 0x6218, 0x7ad9, 0x6e5b, - 0x7efd, 0x6a1f, 0x7ae0, 0x5f70, 0x6f33, 0x5f20, 0x638c, 0x6da8, - 0x6756, 0x4e08, 0x5e10, 0x8d26, 0x4ed7, 0x80c0, 0x7634, 0x969c, - 0x62db, 0x662d, 0x627e, 0x6cbc, 0x8d75, 0x7167, 0x7f69, 0x5146, - 0x8087, 0x53ec, 0x906e, 0x6298, 0x54f2, 0x86f0, 0x8f99, 0x8005, - 0x9517, 0x8517, 0x8fd9, 0x6d59, 0x73cd, 0x659f, 0x771f, 0x7504, - 0x7827, 0x81fb, 0x8d1e, 0x9488, 0x4fa6, 0x6795, 0x75b9, 0x8bca, - 0x9707, 0x632f, 0x9547, 0x9635, 0x84b8, 0x6323, 0x7741, 0x5f81, - 0x72f0, 0x4e89, 0x6014, 0x6574, 0x62ef, 0x6b63, 0x653f, 0x003f, - /* lead byte d6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb, - 0x8aec, 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, - 0x8af4, 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afb, - 0x8afc, 0x8afd, 0x8afe, 0x8aff, 0x8b00, 0x8b01, 0x8b02, 0x8b03, - 0x8b04, 0x8b05, 0x8b06, 0x8b08, 0x8b09, 0x8b0a, 0x8b0b, 0x8b0c, - 0x8b0d, 0x8b0e, 0x8b0f, 0x8b10, 0x8b11, 0x8b12, 0x8b13, 0x8b14, - 0x8b15, 0x8b16, 0x8b17, 0x8b18, 0x8b19, 0x8b1a, 0x8b1b, 0x8b1c, - 0x8b1d, 0x8b1e, 0x8b1f, 0x8b20, 0x8b21, 0x8b22, 0x8b23, 0x003f, - 0x8b24, 0x8b25, 0x8b27, 0x8b28, 0x8b29, 0x8b2a, 0x8b2b, 0x8b2c, - 0x8b2d, 0x8b2e, 0x8b2f, 0x8b30, 0x8b31, 0x8b32, 0x8b33, 0x8b34, - 0x8b35, 0x8b36, 0x8b37, 0x8b38, 0x8b39, 0x8b3a, 0x8b3b, 0x8b3c, - 0x8b3d, 0x8b3e, 0x8b3f, 0x8b40, 0x8b41, 0x8b42, 0x8b43, 0x8b44, - 0x8b45, 0x5e27, 0x75c7, 0x90d1, 0x8bc1, 0x829d, 0x679d, 0x652f, - 0x5431, 0x8718, 0x77e5, 0x80a2, 0x8102, 0x6c41, 0x4e4b, 0x7ec7, - 0x804c, 0x76f4, 0x690d, 0x6b96, 0x6267, 0x503c, 0x4f84, 0x5740, - 0x6307, 0x6b62, 0x8dbe, 0x53ea, 0x65e8, 0x7eb8, 0x5fd7, 0x631a, - 0x63b7, 0x81f3, 0x81f4, 0x7f6e, 0x5e1c, 0x5cd9, 0x5236, 0x667a, - 0x79e9, 0x7a1a, 0x8d28, 0x7099, 0x75d4, 0x6ede, 0x6cbb, 0x7a92, - 0x4e2d, 0x76c5, 0x5fe0, 0x949f, 0x8877, 0x7ec8, 0x79cd, 0x80bf, - 0x91cd, 0x4ef2, 0x4f17, 0x821f, 0x5468, 0x5dde, 0x6d32, 0x8bcc, - 0x7ca5, 0x8f74, 0x8098, 0x5e1a, 0x5492, 0x76b1, 0x5b99, 0x663c, - 0x9aa4, 0x73e0, 0x682a, 0x86db, 0x6731, 0x732a, 0x8bf8, 0x8bdb, - 0x9010, 0x7af9, 0x70db, 0x716e, 0x62c4, 0x77a9, 0x5631, 0x4e3b, - 0x8457, 0x67f1, 0x52a9, 0x86c0, 0x8d2e, 0x94f8, 0x7b51, 0x003f, - /* lead byte d7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d, - 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b52, 0x8b53, 0x8b54, 0x8b55, - 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, - 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, - 0x8b67, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6d, 0x8b6e, 0x8b6f, - 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, - 0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, 0x8b7e, 0x8b7f, - 0x8b80, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, 0x8b86, 0x003f, - 0x8b87, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, 0x8b8e, - 0x8b8f, 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, 0x8b96, - 0x8b97, 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, 0x8b9e, - 0x8b9f, 0x8bac, 0x8bb1, 0x8bbb, 0x8bc7, 0x8bd0, 0x8bea, 0x8c09, - 0x8c1e, 0x4f4f, 0x6ce8, 0x795d, 0x9a7b, 0x6293, 0x722a, 0x62fd, - 0x4e13, 0x7816, 0x8f6c, 0x64b0, 0x8d5a, 0x7bc6, 0x6869, 0x5e84, - 0x88c5, 0x5986, 0x649e, 0x58ee, 0x72b6, 0x690e, 0x9525, 0x8ffd, - 0x8d58, 0x5760, 0x7f00, 0x8c06, 0x51c6, 0x6349, 0x62d9, 0x5353, - 0x684c, 0x7422, 0x8301, 0x914c, 0x5544, 0x7740, 0x707c, 0x6d4a, - 0x5179, 0x54a8, 0x8d44, 0x59ff, 0x6ecb, 0x6dc4, 0x5b5c, 0x7d2b, - 0x4ed4, 0x7c7d, 0x6ed3, 0x5b50, 0x81ea, 0x6e0d, 0x5b57, 0x9b03, - 0x68d5, 0x8e2a, 0x5b97, 0x7efc, 0x603b, 0x7eb5, 0x90b9, 0x8d70, - 0x594f, 0x63cd, 0x79df, 0x8db3, 0x5352, 0x65cf, 0x7956, 0x8bc5, - 0x963b, 0x7ec4, 0x94bb, 0x7e82, 0x5634, 0x9189, 0x6700, 0x7f6a, - 0x5c0a, 0x9075, 0x6628, 0x5de6, 0x4f50, 0x67de, 0x505a, 0x4f5c, - 0x5750, 0x5ea7, 0xe810, 0xe811, 0xe812, 0xe813, 0xe814, 0x003f, - /* lead byte d8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8c38, 0x8c39, 0x8c3a, 0x8c3b, 0x8c3c, 0x8c3d, 0x8c3e, 0x8c3f, - 0x8c40, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c48, 0x8c4a, 0x8c4b, - 0x8c4d, 0x8c4e, 0x8c4f, 0x8c50, 0x8c51, 0x8c52, 0x8c53, 0x8c54, - 0x8c56, 0x8c57, 0x8c58, 0x8c59, 0x8c5b, 0x8c5c, 0x8c5d, 0x8c5e, - 0x8c5f, 0x8c60, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67, 0x8c68, - 0x8c69, 0x8c6c, 0x8c6d, 0x8c6e, 0x8c6f, 0x8c70, 0x8c71, 0x8c72, - 0x8c74, 0x8c75, 0x8c76, 0x8c77, 0x8c7b, 0x8c7c, 0x8c7d, 0x8c7e, - 0x8c7f, 0x8c80, 0x8c81, 0x8c83, 0x8c84, 0x8c86, 0x8c87, 0x003f, - 0x8c88, 0x8c8b, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90, 0x8c91, 0x8c92, - 0x8c93, 0x8c95, 0x8c96, 0x8c97, 0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, - 0x8c9d, 0x8c9e, 0x8c9f, 0x8ca0, 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, - 0x8ca5, 0x8ca6, 0x8ca7, 0x8ca8, 0x8ca9, 0x8caa, 0x8cab, 0x8cac, - 0x8cad, 0x4e8d, 0x4e0c, 0x5140, 0x4e10, 0x5eff, 0x5345, 0x4e15, - 0x4e98, 0x4e1e, 0x9b32, 0x5b6c, 0x5669, 0x4e28, 0x79ba, 0x4e3f, - 0x5315, 0x4e47, 0x592d, 0x723b, 0x536e, 0x6c10, 0x56df, 0x80e4, - 0x9997, 0x6bd3, 0x777e, 0x9f17, 0x4e36, 0x4e9f, 0x9f10, 0x4e5c, - 0x4e69, 0x4e93, 0x8288, 0x5b5b, 0x556c, 0x560f, 0x4ec4, 0x538d, - 0x539d, 0x53a3, 0x53a5, 0x53ae, 0x9765, 0x8d5d, 0x531a, 0x53f5, - 0x5326, 0x532e, 0x533e, 0x8d5c, 0x5366, 0x5363, 0x5202, 0x5208, - 0x520e, 0x522d, 0x5233, 0x523f, 0x5240, 0x524c, 0x525e, 0x5261, - 0x525c, 0x84af, 0x527d, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, - 0x7f54, 0x4ebb, 0x4ec3, 0x4ec9, 0x4ec2, 0x4ee8, 0x4ee1, 0x4eeb, - 0x4ede, 0x4f1b, 0x4ef3, 0x4f22, 0x4f64, 0x4ef5, 0x4f25, 0x4f27, - 0x4f09, 0x4f2b, 0x4f5e, 0x4f67, 0x6538, 0x4f5a, 0x4f5d, 0x003f, - /* lead byte d9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5, - 0x8cb6, 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, - 0x8cbe, 0x8cbf, 0x8cc0, 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, - 0x8cc6, 0x8cc7, 0x8cc8, 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, - 0x8cce, 0x8ccf, 0x8cd0, 0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5, - 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, - 0x8cde, 0x8cdf, 0x8ce0, 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, 0x8ce5, - 0x8ce6, 0x8ce7, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0x003f, - 0x8ced, 0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, - 0x8cf5, 0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, - 0x8cfd, 0x8cfe, 0x8cff, 0x8d00, 0x8d01, 0x8d02, 0x8d03, 0x8d04, - 0x8d05, 0x8d06, 0x8d07, 0x8d08, 0x8d09, 0x8d0a, 0x8d0b, 0x8d0c, - 0x8d0d, 0x4f5f, 0x4f57, 0x4f32, 0x4f3d, 0x4f76, 0x4f74, 0x4f91, - 0x4f89, 0x4f83, 0x4f8f, 0x4f7e, 0x4f7b, 0x4faa, 0x4f7c, 0x4fac, - 0x4f94, 0x4fe6, 0x4fe8, 0x4fea, 0x4fc5, 0x4fda, 0x4fe3, 0x4fdc, - 0x4fd1, 0x4fdf, 0x4ff8, 0x5029, 0x504c, 0x4ff3, 0x502c, 0x500f, - 0x502e, 0x502d, 0x4ffe, 0x501c, 0x500c, 0x5025, 0x5028, 0x507e, - 0x5043, 0x5055, 0x5048, 0x504e, 0x506c, 0x507b, 0x50a5, 0x50a7, - 0x50a9, 0x50ba, 0x50d6, 0x5106, 0x50ed, 0x50ec, 0x50e6, 0x50ee, - 0x5107, 0x510b, 0x4edd, 0x6c3d, 0x4f58, 0x4f65, 0x4fce, 0x9fa0, - 0x6c46, 0x7c74, 0x516e, 0x5dfd, 0x9ec9, 0x9998, 0x5181, 0x5914, - 0x52f9, 0x530d, 0x8a07, 0x5310, 0x51eb, 0x5919, 0x5155, 0x4ea0, - 0x5156, 0x4eb3, 0x886e, 0x88a4, 0x4eb5, 0x8114, 0x88d2, 0x7980, - 0x5b34, 0x8803, 0x7fb8, 0x51ab, 0x51b1, 0x51bd, 0x51bc, 0x003f, - /* lead byte da */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8d0e, 0x8d0f, 0x8d10, 0x8d11, 0x8d12, 0x8d13, 0x8d14, 0x8d15, - 0x8d16, 0x8d17, 0x8d18, 0x8d19, 0x8d1a, 0x8d1b, 0x8d1c, 0x8d20, - 0x8d51, 0x8d52, 0x8d57, 0x8d5f, 0x8d65, 0x8d68, 0x8d69, 0x8d6a, - 0x8d6c, 0x8d6e, 0x8d6f, 0x8d71, 0x8d72, 0x8d78, 0x8d79, 0x8d7a, - 0x8d7b, 0x8d7c, 0x8d7d, 0x8d7e, 0x8d7f, 0x8d80, 0x8d82, 0x8d83, - 0x8d86, 0x8d87, 0x8d88, 0x8d89, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, - 0x8d90, 0x8d92, 0x8d93, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, - 0x8d9a, 0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8da0, 0x8da1, 0x003f, - 0x8da2, 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, - 0x8dab, 0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db2, 0x8db6, - 0x8db7, 0x8db9, 0x8dbb, 0x8dbd, 0x8dc0, 0x8dc1, 0x8dc2, 0x8dc5, - 0x8dc7, 0x8dc8, 0x8dc9, 0x8dca, 0x8dcd, 0x8dd0, 0x8dd2, 0x8dd3, - 0x8dd4, 0x51c7, 0x5196, 0x51a2, 0x51a5, 0x8ba0, 0x8ba6, 0x8ba7, - 0x8baa, 0x8bb4, 0x8bb5, 0x8bb7, 0x8bc2, 0x8bc3, 0x8bcb, 0x8bcf, - 0x8bce, 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd6, 0x8bd8, 0x8bd9, 0x8bdc, - 0x8bdf, 0x8be0, 0x8be4, 0x8be8, 0x8be9, 0x8bee, 0x8bf0, 0x8bf3, - 0x8bf6, 0x8bf9, 0x8bfc, 0x8bff, 0x8c00, 0x8c02, 0x8c04, 0x8c07, - 0x8c0c, 0x8c0f, 0x8c11, 0x8c12, 0x8c14, 0x8c15, 0x8c16, 0x8c19, - 0x8c1b, 0x8c18, 0x8c1d, 0x8c1f, 0x8c20, 0x8c21, 0x8c25, 0x8c27, - 0x8c2a, 0x8c2b, 0x8c2e, 0x8c2f, 0x8c32, 0x8c33, 0x8c35, 0x8c36, - 0x5369, 0x537a, 0x961d, 0x9622, 0x9621, 0x9631, 0x962a, 0x963d, - 0x963c, 0x9642, 0x9649, 0x9654, 0x965f, 0x9667, 0x966c, 0x9672, - 0x9674, 0x9688, 0x968d, 0x9697, 0x96b0, 0x9097, 0x909b, 0x909d, - 0x9099, 0x90ac, 0x90a1, 0x90b4, 0x90b3, 0x90b6, 0x90ba, 0x003f, - /* lead byte db */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8dd5, 0x8dd8, 0x8dd9, 0x8ddc, 0x8de0, 0x8de1, 0x8de2, 0x8de5, - 0x8de6, 0x8de7, 0x8de9, 0x8ded, 0x8dee, 0x8df0, 0x8df1, 0x8df2, - 0x8df4, 0x8df6, 0x8dfc, 0x8dfe, 0x8dff, 0x8e00, 0x8e01, 0x8e02, - 0x8e03, 0x8e04, 0x8e06, 0x8e07, 0x8e08, 0x8e0b, 0x8e0d, 0x8e0e, - 0x8e10, 0x8e11, 0x8e12, 0x8e13, 0x8e15, 0x8e16, 0x8e17, 0x8e18, - 0x8e19, 0x8e1a, 0x8e1b, 0x8e1c, 0x8e20, 0x8e21, 0x8e24, 0x8e25, - 0x8e26, 0x8e27, 0x8e28, 0x8e2b, 0x8e2d, 0x8e30, 0x8e32, 0x8e33, - 0x8e34, 0x8e36, 0x8e37, 0x8e38, 0x8e3b, 0x8e3c, 0x8e3e, 0x003f, - 0x8e3f, 0x8e43, 0x8e45, 0x8e46, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, - 0x8e50, 0x8e53, 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e5a, - 0x8e5b, 0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, - 0x8e63, 0x8e64, 0x8e65, 0x8e67, 0x8e68, 0x8e6a, 0x8e6b, 0x8e6e, - 0x8e71, 0x90b8, 0x90b0, 0x90cf, 0x90c5, 0x90be, 0x90d0, 0x90c4, - 0x90c7, 0x90d3, 0x90e6, 0x90e2, 0x90dc, 0x90d7, 0x90db, 0x90eb, - 0x90ef, 0x90fe, 0x9104, 0x9122, 0x911e, 0x9123, 0x9131, 0x912f, - 0x9139, 0x9143, 0x9146, 0x520d, 0x5942, 0x52a2, 0x52ac, 0x52ad, - 0x52be, 0x54ff, 0x52d0, 0x52d6, 0x52f0, 0x53df, 0x71ee, 0x77cd, - 0x5ef4, 0x51f5, 0x51fc, 0x9b2f, 0x53b6, 0x5f01, 0x755a, 0x5def, - 0x574c, 0x57a9, 0x57a1, 0x587e, 0x58bc, 0x58c5, 0x58d1, 0x5729, - 0x572c, 0x572a, 0x5733, 0x5739, 0x572e, 0x572f, 0x575c, 0x573b, - 0x5742, 0x5769, 0x5785, 0x576b, 0x5786, 0x577c, 0x577b, 0x5768, - 0x576d, 0x5776, 0x5773, 0x57ad, 0x57a4, 0x578c, 0x57b2, 0x57cf, - 0x57a7, 0x57b4, 0x5793, 0x57a0, 0x57d5, 0x57d8, 0x57da, 0x57d9, - 0x57d2, 0x57b8, 0x57f4, 0x57ef, 0x57f8, 0x57e4, 0x57dd, 0x003f, - /* lead byte dc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8e73, 0x8e75, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b, 0x8e7d, - 0x8e7e, 0x8e80, 0x8e82, 0x8e83, 0x8e84, 0x8e86, 0x8e88, 0x8e89, - 0x8e8a, 0x8e8b, 0x8e8c, 0x8e8d, 0x8e8e, 0x8e91, 0x8e92, 0x8e93, - 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0x8e9d, - 0x8e9f, 0x8ea0, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6, - 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8ead, 0x8eae, 0x8eb0, 0x8eb1, - 0x8eb3, 0x8eb4, 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8ebb, - 0x8ebc, 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x003f, - 0x8ec3, 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, - 0x8ecb, 0x8ecc, 0x8ecd, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, - 0x8ed4, 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, - 0x8edc, 0x8edd, 0x8ede, 0x8edf, 0x8ee0, 0x8ee1, 0x8ee2, 0x8ee3, - 0x8ee4, 0x580b, 0x580d, 0x57fd, 0x57ed, 0x5800, 0x581e, 0x5819, - 0x5844, 0x5820, 0x5865, 0x586c, 0x5881, 0x5889, 0x589a, 0x5880, - 0x99a8, 0x9f19, 0x61ff, 0x8279, 0x827d, 0x827f, 0x828f, 0x828a, - 0x82a8, 0x8284, 0x828e, 0x8291, 0x8297, 0x8299, 0x82ab, 0x82b8, - 0x82be, 0x82b0, 0x82c8, 0x82ca, 0x82e3, 0x8298, 0x82b7, 0x82ae, - 0x82cb, 0x82cc, 0x82c1, 0x82a9, 0x82b4, 0x82a1, 0x82aa, 0x829f, - 0x82c4, 0x82ce, 0x82a4, 0x82e1, 0x8309, 0x82f7, 0x82e4, 0x830f, - 0x8307, 0x82dc, 0x82f4, 0x82d2, 0x82d8, 0x830c, 0x82fb, 0x82d3, - 0x8311, 0x831a, 0x8306, 0x8314, 0x8315, 0x82e0, 0x82d5, 0x831c, - 0x8351, 0x835b, 0x835c, 0x8308, 0x8392, 0x833c, 0x8334, 0x8331, - 0x839b, 0x835e, 0x832f, 0x834f, 0x8347, 0x8343, 0x835f, 0x8340, - 0x8317, 0x8360, 0x832d, 0x833a, 0x8333, 0x8366, 0x8365, 0x003f, - /* lead byte dd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, - 0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4, - 0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc, - 0x8efd, 0x8efe, 0x8eff, 0x8f00, 0x8f01, 0x8f02, 0x8f03, 0x8f04, - 0x8f05, 0x8f06, 0x8f07, 0x8f08, 0x8f09, 0x8f0a, 0x8f0b, 0x8f0c, - 0x8f0d, 0x8f0e, 0x8f0f, 0x8f10, 0x8f11, 0x8f12, 0x8f13, 0x8f14, - 0x8f15, 0x8f16, 0x8f17, 0x8f18, 0x8f19, 0x8f1a, 0x8f1b, 0x8f1c, - 0x8f1d, 0x8f1e, 0x8f1f, 0x8f20, 0x8f21, 0x8f22, 0x8f23, 0x003f, - 0x8f24, 0x8f25, 0x8f26, 0x8f27, 0x8f28, 0x8f29, 0x8f2a, 0x8f2b, - 0x8f2c, 0x8f2d, 0x8f2e, 0x8f2f, 0x8f30, 0x8f31, 0x8f32, 0x8f33, - 0x8f34, 0x8f35, 0x8f36, 0x8f37, 0x8f38, 0x8f39, 0x8f3a, 0x8f3b, - 0x8f3c, 0x8f3d, 0x8f3e, 0x8f3f, 0x8f40, 0x8f41, 0x8f42, 0x8f43, - 0x8f44, 0x8368, 0x831b, 0x8369, 0x836c, 0x836a, 0x836d, 0x836e, - 0x83b0, 0x8378, 0x83b3, 0x83b4, 0x83a0, 0x83aa, 0x8393, 0x839c, - 0x8385, 0x837c, 0x83b6, 0x83a9, 0x837d, 0x83b8, 0x837b, 0x8398, - 0x839e, 0x83a8, 0x83ba, 0x83bc, 0x83c1, 0x8401, 0x83e5, 0x83d8, - 0x5807, 0x8418, 0x840b, 0x83dd, 0x83fd, 0x83d6, 0x841c, 0x8438, - 0x8411, 0x8406, 0x83d4, 0x83df, 0x840f, 0x8403, 0x83f8, 0x83f9, - 0x83ea, 0x83c5, 0x83c0, 0x8426, 0x83f0, 0x83e1, 0x845c, 0x8451, - 0x845a, 0x8459, 0x8473, 0x8487, 0x8488, 0x847a, 0x8489, 0x8478, - 0x843c, 0x8446, 0x8469, 0x8476, 0x848c, 0x848e, 0x8431, 0x846d, - 0x84c1, 0x84cd, 0x84d0, 0x84e6, 0x84bd, 0x84d3, 0x84ca, 0x84bf, - 0x84ba, 0x84e0, 0x84a1, 0x84b9, 0x84b4, 0x8497, 0x84e5, 0x84e3, - 0x850c, 0x750d, 0x8538, 0x84f0, 0x8539, 0x851f, 0x853a, 0x003f, - /* lead byte de */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8f45, 0x8f46, 0x8f47, 0x8f48, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, - 0x8f4d, 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54, - 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0x8f5b, 0x8f5c, - 0x8f5d, 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64, - 0x8f65, 0x8f6a, 0x8f80, 0x8f8c, 0x8f92, 0x8f9d, 0x8fa0, 0x8fa1, - 0x8fa2, 0x8fa4, 0x8fa5, 0x8fa6, 0x8fa7, 0x8faa, 0x8fac, 0x8fad, - 0x8fae, 0x8faf, 0x8fb2, 0x8fb3, 0x8fb4, 0x8fb5, 0x8fb7, 0x8fb8, - 0x8fba, 0x8fbb, 0x8fbc, 0x8fbf, 0x8fc0, 0x8fc3, 0x8fc6, 0x003f, - 0x8fc9, 0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fcf, 0x8fd2, 0x8fd6, - 0x8fd7, 0x8fda, 0x8fe0, 0x8fe1, 0x8fe3, 0x8fe7, 0x8fec, 0x8fef, - 0x8ff1, 0x8ff2, 0x8ff4, 0x8ff5, 0x8ff6, 0x8ffa, 0x8ffb, 0x8ffc, - 0x8ffe, 0x8fff, 0x9007, 0x9008, 0x900c, 0x900e, 0x9013, 0x9015, - 0x9018, 0x8556, 0x853b, 0x84ff, 0x84fc, 0x8559, 0x8548, 0x8568, - 0x8564, 0x855e, 0x857a, 0x77a2, 0x8543, 0x8572, 0x857b, 0x85a4, - 0x85a8, 0x8587, 0x858f, 0x8579, 0x85ae, 0x859c, 0x8585, 0x85b9, - 0x85b7, 0x85b0, 0x85d3, 0x85c1, 0x85dc, 0x85ff, 0x8627, 0x8605, - 0x8629, 0x8616, 0x863c, 0x5efe, 0x5f08, 0x593c, 0x5941, 0x8037, - 0x5955, 0x595a, 0x5958, 0x530f, 0x5c22, 0x5c25, 0x5c2c, 0x5c34, - 0x624c, 0x626a, 0x629f, 0x62bb, 0x62ca, 0x62da, 0x62d7, 0x62ee, - 0x6322, 0x62f6, 0x6339, 0x634b, 0x6343, 0x63ad, 0x63f6, 0x6371, - 0x637a, 0x638e, 0x63b4, 0x636d, 0x63ac, 0x638a, 0x6369, 0x63ae, - 0x63bc, 0x63f2, 0x63f8, 0x63e0, 0x63ff, 0x63c4, 0x63de, 0x63ce, - 0x6452, 0x63c6, 0x63be, 0x6445, 0x6441, 0x640b, 0x641b, 0x6420, - 0x640c, 0x6426, 0x6421, 0x645e, 0x6484, 0x646d, 0x6496, 0x003f, - /* lead byte df */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9019, 0x901c, 0x9023, 0x9024, 0x9025, 0x9027, 0x9028, 0x9029, - 0x902a, 0x902b, 0x902c, 0x9030, 0x9031, 0x9032, 0x9033, 0x9034, - 0x9037, 0x9039, 0x903a, 0x903d, 0x903f, 0x9040, 0x9043, 0x9045, - 0x9046, 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, 0x904e, 0x9054, - 0x9055, 0x9056, 0x9059, 0x905a, 0x905c, 0x905d, 0x905e, 0x905f, - 0x9060, 0x9061, 0x9064, 0x9066, 0x9067, 0x9069, 0x906a, 0x906b, - 0x906c, 0x906f, 0x9070, 0x9071, 0x9072, 0x9073, 0x9076, 0x9077, - 0x9078, 0x9079, 0x907a, 0x907b, 0x907c, 0x907e, 0x9081, 0x003f, - 0x9084, 0x9085, 0x9086, 0x9087, 0x9089, 0x908a, 0x908c, 0x908d, - 0x908e, 0x908f, 0x9090, 0x9092, 0x9094, 0x9096, 0x9098, 0x909a, - 0x909c, 0x909e, 0x909f, 0x90a0, 0x90a4, 0x90a5, 0x90a7, 0x90a8, - 0x90a9, 0x90ab, 0x90ad, 0x90b2, 0x90b7, 0x90bc, 0x90bd, 0x90bf, - 0x90c0, 0x647a, 0x64b7, 0x64b8, 0x6499, 0x64ba, 0x64c0, 0x64d0, - 0x64d7, 0x64e4, 0x64e2, 0x6509, 0x6525, 0x652e, 0x5f0b, 0x5fd2, - 0x7519, 0x5f11, 0x535f, 0x53f1, 0x53fd, 0x53e9, 0x53e8, 0x53fb, - 0x5412, 0x5416, 0x5406, 0x544b, 0x5452, 0x5453, 0x5454, 0x5456, - 0x5443, 0x5421, 0x5457, 0x5459, 0x5423, 0x5432, 0x5482, 0x5494, - 0x5477, 0x5471, 0x5464, 0x549a, 0x549b, 0x5484, 0x5476, 0x5466, - 0x549d, 0x54d0, 0x54ad, 0x54c2, 0x54b4, 0x54d2, 0x54a7, 0x54a6, - 0x54d3, 0x54d4, 0x5472, 0x54a3, 0x54d5, 0x54bb, 0x54bf, 0x54cc, - 0x54d9, 0x54da, 0x54dc, 0x54a9, 0x54aa, 0x54a4, 0x54dd, 0x54cf, - 0x54de, 0x551b, 0x54e7, 0x5520, 0x54fd, 0x5514, 0x54f3, 0x5522, - 0x5523, 0x550f, 0x5511, 0x5527, 0x552a, 0x5567, 0x558f, 0x55b5, - 0x5549, 0x556d, 0x5541, 0x5555, 0x553f, 0x5550, 0x553c, 0x003f, - /* lead byte e0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x90c2, 0x90c3, 0x90c6, 0x90c8, 0x90c9, 0x90cb, 0x90cc, 0x90cd, - 0x90d2, 0x90d4, 0x90d5, 0x90d6, 0x90d8, 0x90d9, 0x90da, 0x90de, - 0x90df, 0x90e0, 0x90e3, 0x90e4, 0x90e5, 0x90e9, 0x90ea, 0x90ec, - 0x90ee, 0x90f0, 0x90f1, 0x90f2, 0x90f3, 0x90f5, 0x90f6, 0x90f7, - 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90ff, 0x9100, 0x9101, 0x9103, - 0x9105, 0x9106, 0x9107, 0x9108, 0x9109, 0x910a, 0x910b, 0x910c, - 0x910d, 0x910e, 0x910f, 0x9110, 0x9111, 0x9112, 0x9113, 0x9114, - 0x9115, 0x9116, 0x9117, 0x9118, 0x911a, 0x911b, 0x911c, 0x003f, - 0x911d, 0x911f, 0x9120, 0x9121, 0x9124, 0x9125, 0x9126, 0x9127, - 0x9128, 0x9129, 0x912a, 0x912b, 0x912c, 0x912d, 0x912e, 0x9130, - 0x9132, 0x9133, 0x9134, 0x9135, 0x9136, 0x9137, 0x9138, 0x913a, - 0x913b, 0x913c, 0x913d, 0x913e, 0x913f, 0x9140, 0x9141, 0x9142, - 0x9144, 0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, - 0x555c, 0x558b, 0x55d2, 0x5583, 0x55b1, 0x55b9, 0x5588, 0x5581, - 0x559f, 0x557e, 0x55d6, 0x5591, 0x557b, 0x55df, 0x55bd, 0x55be, - 0x5594, 0x5599, 0x55ea, 0x55f7, 0x55c9, 0x561f, 0x55d1, 0x55eb, - 0x55ec, 0x55d4, 0x55e6, 0x55dd, 0x55c4, 0x55ef, 0x55e5, 0x55f2, - 0x55f3, 0x55cc, 0x55cd, 0x55e8, 0x55f5, 0x55e4, 0x8f94, 0x561e, - 0x5608, 0x560c, 0x5601, 0x5624, 0x5623, 0x55fe, 0x5600, 0x5627, - 0x562d, 0x5658, 0x5639, 0x5657, 0x562c, 0x564d, 0x5662, 0x5659, - 0x565c, 0x564c, 0x5654, 0x5686, 0x5664, 0x5671, 0x566b, 0x567b, - 0x567c, 0x5685, 0x5693, 0x56af, 0x56d4, 0x56d7, 0x56dd, 0x56e1, - 0x56f5, 0x56eb, 0x56f9, 0x56ff, 0x5704, 0x570a, 0x5709, 0x571c, - 0x5e0f, 0x5e19, 0x5e14, 0x5e11, 0x5e31, 0x5e3b, 0x5e3c, 0x003f, - /* lead byte e1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9145, 0x9147, 0x9148, 0x9151, 0x9153, 0x9154, 0x9155, 0x9156, - 0x9158, 0x9159, 0x915b, 0x915c, 0x915f, 0x9160, 0x9166, 0x9167, - 0x9168, 0x916b, 0x916d, 0x9173, 0x917a, 0x917b, 0x917c, 0x9180, - 0x9181, 0x9182, 0x9183, 0x9184, 0x9186, 0x9188, 0x918a, 0x918e, - 0x918f, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, - 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0x91a4, 0x91a5, - 0x91a6, 0x91a7, 0x91a8, 0x91a9, 0x91ab, 0x91ac, 0x91b0, 0x91b1, - 0x91b2, 0x91b3, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91bb, 0x003f, - 0x91bc, 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0x91c2, 0x91c3, - 0x91c4, 0x91c5, 0x91c6, 0x91c8, 0x91cb, 0x91d0, 0x91d2, 0x91d3, - 0x91d4, 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, 0x91db, - 0x91dd, 0x91de, 0x91df, 0x91e0, 0x91e1, 0x91e2, 0x91e3, 0x91e4, - 0x91e5, 0x5e37, 0x5e44, 0x5e54, 0x5e5b, 0x5e5e, 0x5e61, 0x5c8c, - 0x5c7a, 0x5c8d, 0x5c90, 0x5c96, 0x5c88, 0x5c98, 0x5c99, 0x5c91, - 0x5c9a, 0x5c9c, 0x5cb5, 0x5ca2, 0x5cbd, 0x5cac, 0x5cab, 0x5cb1, - 0x5ca3, 0x5cc1, 0x5cb7, 0x5cc4, 0x5cd2, 0x5ce4, 0x5ccb, 0x5ce5, - 0x5d02, 0x5d03, 0x5d27, 0x5d26, 0x5d2e, 0x5d24, 0x5d1e, 0x5d06, - 0x5d1b, 0x5d58, 0x5d3e, 0x5d34, 0x5d3d, 0x5d6c, 0x5d5b, 0x5d6f, - 0x5d5d, 0x5d6b, 0x5d4b, 0x5d4a, 0x5d69, 0x5d74, 0x5d82, 0x5d99, - 0x5d9d, 0x8c73, 0x5db7, 0x5dc5, 0x5f73, 0x5f77, 0x5f82, 0x5f87, - 0x5f89, 0x5f8c, 0x5f95, 0x5f99, 0x5f9c, 0x5fa8, 0x5fad, 0x5fb5, - 0x5fbc, 0x8862, 0x5f61, 0x72ad, 0x72b0, 0x72b4, 0x72b7, 0x72b8, - 0x72c3, 0x72c1, 0x72ce, 0x72cd, 0x72d2, 0x72e8, 0x72ef, 0x72e9, - 0x72f2, 0x72f4, 0x72f7, 0x7301, 0x72f3, 0x7303, 0x72fa, 0x003f, - /* lead byte e2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0x91ea, 0x91eb, 0x91ec, 0x91ed, - 0x91ee, 0x91ef, 0x91f0, 0x91f1, 0x91f2, 0x91f3, 0x91f4, 0x91f5, - 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0x91fa, 0x91fb, 0x91fc, 0x91fd, - 0x91fe, 0x91ff, 0x9200, 0x9201, 0x9202, 0x9203, 0x9204, 0x9205, - 0x9206, 0x9207, 0x9208, 0x9209, 0x920a, 0x920b, 0x920c, 0x920d, - 0x920e, 0x920f, 0x9210, 0x9211, 0x9212, 0x9213, 0x9214, 0x9215, - 0x9216, 0x9217, 0x9218, 0x9219, 0x921a, 0x921b, 0x921c, 0x921d, - 0x921e, 0x921f, 0x9220, 0x9221, 0x9222, 0x9223, 0x9224, 0x003f, - 0x9225, 0x9226, 0x9227, 0x9228, 0x9229, 0x922a, 0x922b, 0x922c, - 0x922d, 0x922e, 0x922f, 0x9230, 0x9231, 0x9232, 0x9233, 0x9234, - 0x9235, 0x9236, 0x9237, 0x9238, 0x9239, 0x923a, 0x923b, 0x923c, - 0x923d, 0x923e, 0x923f, 0x9240, 0x9241, 0x9242, 0x9243, 0x9244, - 0x9245, 0x72fb, 0x7317, 0x7313, 0x7321, 0x730a, 0x731e, 0x731d, - 0x7315, 0x7322, 0x7339, 0x7325, 0x732c, 0x7338, 0x7331, 0x7350, - 0x734d, 0x7357, 0x7360, 0x736c, 0x736f, 0x737e, 0x821b, 0x5925, - 0x98e7, 0x5924, 0x5902, 0x9963, 0x9967, 0x9968, 0x9969, 0x996a, - 0x996b, 0x996c, 0x9974, 0x9977, 0x997d, 0x9980, 0x9984, 0x9987, - 0x998a, 0x998d, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, 0x5e80, - 0x5e91, 0x5e8b, 0x5e96, 0x5ea5, 0x5ea0, 0x5eb9, 0x5eb5, 0x5ebe, - 0x5eb3, 0x8d53, 0x5ed2, 0x5ed1, 0x5edb, 0x5ee8, 0x5eea, 0x81ba, - 0x5fc4, 0x5fc9, 0x5fd6, 0x5fcf, 0x6003, 0x5fee, 0x6004, 0x5fe1, - 0x5fe4, 0x5ffe, 0x6005, 0x6006, 0x5fea, 0x5fed, 0x5ff8, 0x6019, - 0x6035, 0x6026, 0x601b, 0x600f, 0x600d, 0x6029, 0x602b, 0x600a, - 0x603f, 0x6021, 0x6078, 0x6079, 0x607b, 0x607a, 0x6042, 0x003f, - /* lead byte e3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, 0x924c, 0x924d, - 0x924e, 0x924f, 0x9250, 0x9251, 0x9252, 0x9253, 0x9254, 0x9255, - 0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b, 0x925c, 0x925d, - 0x925e, 0x925f, 0x9260, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, - 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b, 0x926c, 0x926d, - 0x926e, 0x926f, 0x9270, 0x9271, 0x9272, 0x9273, 0x9275, 0x9276, - 0x9277, 0x9278, 0x9279, 0x927a, 0x927b, 0x927c, 0x927d, 0x927e, - 0x927f, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0x003f, - 0x9286, 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, 0x928d, - 0x928f, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, - 0x9297, 0x9298, 0x9299, 0x929a, 0x929b, 0x929c, 0x929d, 0x929e, - 0x929f, 0x92a0, 0x92a1, 0x92a2, 0x92a3, 0x92a4, 0x92a5, 0x92a6, - 0x92a7, 0x606a, 0x607d, 0x6096, 0x609a, 0x60ad, 0x609d, 0x6083, - 0x6092, 0x608c, 0x609b, 0x60ec, 0x60bb, 0x60b1, 0x60dd, 0x60d8, - 0x60c6, 0x60da, 0x60b4, 0x6120, 0x6126, 0x6115, 0x6123, 0x60f4, - 0x6100, 0x610e, 0x612b, 0x614a, 0x6175, 0x61ac, 0x6194, 0x61a7, - 0x61b7, 0x61d4, 0x61f5, 0x5fdd, 0x96b3, 0x95e9, 0x95eb, 0x95f1, - 0x95f3, 0x95f5, 0x95f6, 0x95fc, 0x95fe, 0x9603, 0x9604, 0x9606, - 0x9608, 0x960a, 0x960b, 0x960c, 0x960d, 0x960f, 0x9612, 0x9615, - 0x9616, 0x9617, 0x9619, 0x961a, 0x4e2c, 0x723f, 0x6215, 0x6c35, - 0x6c54, 0x6c5c, 0x6c4a, 0x6ca3, 0x6c85, 0x6c90, 0x6c94, 0x6c8c, - 0x6c68, 0x6c69, 0x6c74, 0x6c76, 0x6c86, 0x6ca9, 0x6cd0, 0x6cd4, - 0x6cad, 0x6cf7, 0x6cf8, 0x6cf1, 0x6cd7, 0x6cb2, 0x6ce0, 0x6cd6, - 0x6cfa, 0x6ceb, 0x6cee, 0x6cb1, 0x6cd3, 0x6cef, 0x6cfe, 0x003f, - /* lead byte e4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac, 0x92ad, 0x92af, 0x92b0, - 0x92b1, 0x92b2, 0x92b3, 0x92b4, 0x92b5, 0x92b6, 0x92b7, 0x92b8, - 0x92b9, 0x92ba, 0x92bb, 0x92bc, 0x92bd, 0x92be, 0x92bf, 0x92c0, - 0x92c1, 0x92c2, 0x92c3, 0x92c4, 0x92c5, 0x92c6, 0x92c7, 0x92c9, - 0x92ca, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, - 0x92d2, 0x92d3, 0x92d4, 0x92d5, 0x92d6, 0x92d7, 0x92d8, 0x92d9, - 0x92da, 0x92db, 0x92dc, 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1, - 0x92e2, 0x92e3, 0x92e4, 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x003f, - 0x92e9, 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, - 0x92f1, 0x92f2, 0x92f3, 0x92f4, 0x92f5, 0x92f6, 0x92f7, 0x92f8, - 0x92f9, 0x92fa, 0x92fb, 0x92fc, 0x92fd, 0x92fe, 0x92ff, 0x9300, - 0x9301, 0x9302, 0x9303, 0x9304, 0x9305, 0x9306, 0x9307, 0x9308, - 0x9309, 0x6d39, 0x6d27, 0x6d0c, 0x6d43, 0x6d48, 0x6d07, 0x6d04, - 0x6d19, 0x6d0e, 0x6d2b, 0x6d4d, 0x6d2e, 0x6d35, 0x6d1a, 0x6d4f, - 0x6d52, 0x6d54, 0x6d33, 0x6d91, 0x6d6f, 0x6d9e, 0x6da0, 0x6d5e, - 0x6d93, 0x6d94, 0x6d5c, 0x6d60, 0x6d7c, 0x6d63, 0x6e1a, 0x6dc7, - 0x6dc5, 0x6dde, 0x6e0e, 0x6dbf, 0x6de0, 0x6e11, 0x6de6, 0x6ddd, - 0x6dd9, 0x6e16, 0x6dab, 0x6e0c, 0x6dae, 0x6e2b, 0x6e6e, 0x6e4e, - 0x6e6b, 0x6eb2, 0x6e5f, 0x6e86, 0x6e53, 0x6e54, 0x6e32, 0x6e25, - 0x6e44, 0x6edf, 0x6eb1, 0x6e98, 0x6ee0, 0x6f2d, 0x6ee2, 0x6ea5, - 0x6ea7, 0x6ebd, 0x6ebb, 0x6eb7, 0x6ed7, 0x6eb4, 0x6ecf, 0x6e8f, - 0x6ec2, 0x6e9f, 0x6f62, 0x6f46, 0x6f47, 0x6f24, 0x6f15, 0x6ef9, - 0x6f2f, 0x6f36, 0x6f4b, 0x6f74, 0x6f2a, 0x6f09, 0x6f29, 0x6f89, - 0x6f8d, 0x6f8c, 0x6f78, 0x6f72, 0x6f7c, 0x6f7a, 0x6fd1, 0x003f, - /* lead byte e5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x930a, 0x930b, 0x930c, 0x930d, 0x930e, 0x930f, 0x9310, 0x9311, - 0x9312, 0x9313, 0x9314, 0x9315, 0x9316, 0x9317, 0x9318, 0x9319, - 0x931a, 0x931b, 0x931c, 0x931d, 0x931e, 0x931f, 0x9320, 0x9321, - 0x9322, 0x9323, 0x9324, 0x9325, 0x9326, 0x9327, 0x9328, 0x9329, - 0x932a, 0x932b, 0x932c, 0x932d, 0x932e, 0x932f, 0x9330, 0x9331, - 0x9332, 0x9333, 0x9334, 0x9335, 0x9336, 0x9337, 0x9338, 0x9339, - 0x933a, 0x933b, 0x933c, 0x933d, 0x933f, 0x9340, 0x9341, 0x9342, - 0x9343, 0x9344, 0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0x003f, - 0x934a, 0x934b, 0x934c, 0x934d, 0x934e, 0x934f, 0x9350, 0x9351, - 0x9352, 0x9353, 0x9354, 0x9355, 0x9356, 0x9357, 0x9358, 0x9359, - 0x935a, 0x935b, 0x935c, 0x935d, 0x935e, 0x935f, 0x9360, 0x9361, - 0x9362, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, - 0x936b, 0x6fc9, 0x6fa7, 0x6fb9, 0x6fb6, 0x6fc2, 0x6fe1, 0x6fee, - 0x6fde, 0x6fe0, 0x6fef, 0x701a, 0x7023, 0x701b, 0x7039, 0x7035, - 0x704f, 0x705e, 0x5b80, 0x5b84, 0x5b95, 0x5b93, 0x5ba5, 0x5bb8, - 0x752f, 0x9a9e, 0x6434, 0x5be4, 0x5bee, 0x8930, 0x5bf0, 0x8e47, - 0x8b07, 0x8fb6, 0x8fd3, 0x8fd5, 0x8fe5, 0x8fee, 0x8fe4, 0x8fe9, - 0x8fe6, 0x8ff3, 0x8fe8, 0x9005, 0x9004, 0x900b, 0x9026, 0x9011, - 0x900d, 0x9016, 0x9021, 0x9035, 0x9036, 0x902d, 0x902f, 0x9044, - 0x9051, 0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905b, 0x66b9, - 0x9074, 0x907d, 0x9082, 0x9088, 0x9083, 0x908b, 0x5f50, 0x5f57, - 0x5f56, 0x5f58, 0x5c3b, 0x54ab, 0x5c50, 0x5c59, 0x5b71, 0x5c63, - 0x5c66, 0x7fbc, 0x5f2a, 0x5f29, 0x5f2d, 0x8274, 0x5f3c, 0x9b3b, - 0x5c6e, 0x5981, 0x5983, 0x598d, 0x59a9, 0x59aa, 0x59a3, 0x003f, - /* lead byte e6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x936c, 0x936d, 0x936e, 0x936f, 0x9370, 0x9371, 0x9372, 0x9373, - 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x937b, - 0x937c, 0x937d, 0x937e, 0x937f, 0x9380, 0x9381, 0x9382, 0x9383, - 0x9384, 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938a, 0x938b, - 0x938c, 0x938d, 0x938e, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, - 0x9395, 0x9396, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, - 0x939d, 0x939e, 0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4, - 0x93a5, 0x93a6, 0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x003f, - 0x93ac, 0x93ad, 0x93ae, 0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3, - 0x93b4, 0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, - 0x93bc, 0x93bd, 0x93be, 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, - 0x93c4, 0x93c5, 0x93c6, 0x93c7, 0x93c8, 0x93c9, 0x93cb, 0x93cc, - 0x93cd, 0x5997, 0x59ca, 0x59ab, 0x599e, 0x59a4, 0x59d2, 0x59b2, - 0x59af, 0x59d7, 0x59be, 0x5a05, 0x5a06, 0x59dd, 0x5a08, 0x59e3, - 0x59d8, 0x59f9, 0x5a0c, 0x5a09, 0x5a32, 0x5a34, 0x5a11, 0x5a23, - 0x5a13, 0x5a40, 0x5a67, 0x5a4a, 0x5a55, 0x5a3c, 0x5a62, 0x5a75, - 0x80ec, 0x5aaa, 0x5a9b, 0x5a77, 0x5a7a, 0x5abe, 0x5aeb, 0x5ab2, - 0x5ad2, 0x5ad4, 0x5ab8, 0x5ae0, 0x5ae3, 0x5af1, 0x5ad6, 0x5ae6, - 0x5ad8, 0x5adc, 0x5b09, 0x5b17, 0x5b16, 0x5b32, 0x5b37, 0x5b40, - 0x5c15, 0x5c1c, 0x5b5a, 0x5b65, 0x5b73, 0x5b51, 0x5b53, 0x5b62, - 0x9a75, 0x9a77, 0x9a78, 0x9a7a, 0x9a7f, 0x9a7d, 0x9a80, 0x9a81, - 0x9a85, 0x9a88, 0x9a8a, 0x9a90, 0x9a92, 0x9a93, 0x9a96, 0x9a98, - 0x9a9b, 0x9a9c, 0x9a9d, 0x9a9f, 0x9aa0, 0x9aa2, 0x9aa3, 0x9aa5, - 0x9aa7, 0x7e9f, 0x7ea1, 0x7ea3, 0x7ea5, 0x7ea8, 0x7ea9, 0x003f, - /* lead byte e7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x93ce, 0x93cf, 0x93d0, 0x93d1, 0x93d2, 0x93d3, 0x93d4, 0x93d5, - 0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db, 0x93dc, 0x93dd, 0x93de, - 0x93df, 0x93e0, 0x93e1, 0x93e2, 0x93e3, 0x93e4, 0x93e5, 0x93e6, - 0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee, - 0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6, - 0x93f7, 0x93f8, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0x93fd, 0x93fe, - 0x93ff, 0x9400, 0x9401, 0x9402, 0x9403, 0x9404, 0x9405, 0x9406, - 0x9407, 0x9408, 0x9409, 0x940a, 0x940b, 0x940c, 0x940d, 0x003f, - 0x940e, 0x940f, 0x9410, 0x9411, 0x9412, 0x9413, 0x9414, 0x9415, - 0x9416, 0x9417, 0x9418, 0x9419, 0x941a, 0x941b, 0x941c, 0x941d, - 0x941e, 0x941f, 0x9420, 0x9421, 0x9422, 0x9423, 0x9424, 0x9425, - 0x9426, 0x9427, 0x9428, 0x9429, 0x942a, 0x942b, 0x942c, 0x942d, - 0x942e, 0x7ead, 0x7eb0, 0x7ebe, 0x7ec0, 0x7ec1, 0x7ec2, 0x7ec9, - 0x7ecb, 0x7ecc, 0x7ed0, 0x7ed4, 0x7ed7, 0x7edb, 0x7ee0, 0x7ee1, - 0x7ee8, 0x7eeb, 0x7eee, 0x7eef, 0x7ef1, 0x7ef2, 0x7f0d, 0x7ef6, - 0x7efa, 0x7efb, 0x7efe, 0x7f01, 0x7f02, 0x7f03, 0x7f07, 0x7f08, - 0x7f0b, 0x7f0c, 0x7f0f, 0x7f11, 0x7f12, 0x7f17, 0x7f19, 0x7f1c, - 0x7f1b, 0x7f1f, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, - 0x7f27, 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2f, 0x7f30, 0x7f31, - 0x7f32, 0x7f33, 0x7f35, 0x5e7a, 0x757f, 0x5ddb, 0x753e, 0x9095, - 0x738e, 0x7391, 0x73ae, 0x73a2, 0x739f, 0x73cf, 0x73c2, 0x73d1, - 0x73b7, 0x73b3, 0x73c0, 0x73c9, 0x73c8, 0x73e5, 0x73d9, 0x987c, - 0x740a, 0x73e9, 0x73e7, 0x73de, 0x73ba, 0x73f2, 0x740f, 0x742a, - 0x745b, 0x7426, 0x7425, 0x7428, 0x7430, 0x742e, 0x742c, 0x003f, - /* lead byte e8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x942f, 0x9430, 0x9431, 0x9432, 0x9433, 0x9434, 0x9435, 0x9436, - 0x9437, 0x9438, 0x9439, 0x943a, 0x943b, 0x943c, 0x943d, 0x943f, - 0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447, - 0x9448, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f, - 0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, - 0x9458, 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f, - 0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, - 0x9468, 0x9469, 0x946a, 0x946c, 0x946d, 0x946e, 0x946f, 0x003f, - 0x9470, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, - 0x9478, 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x947f, - 0x9480, 0x9481, 0x9482, 0x9483, 0x9484, 0x9491, 0x9496, 0x9498, - 0x94c7, 0x94cf, 0x94d3, 0x94d4, 0x94da, 0x94e6, 0x94fb, 0x951c, - 0x9520, 0x741b, 0x741a, 0x7441, 0x745c, 0x7457, 0x7455, 0x7459, - 0x7477, 0x746d, 0x747e, 0x749c, 0x748e, 0x7480, 0x7481, 0x7487, - 0x748b, 0x749e, 0x74a8, 0x74a9, 0x7490, 0x74a7, 0x74d2, 0x74ba, - 0x97ea, 0x97eb, 0x97ec, 0x674c, 0x6753, 0x675e, 0x6748, 0x6769, - 0x67a5, 0x6787, 0x676a, 0x6773, 0x6798, 0x67a7, 0x6775, 0x67a8, - 0x679e, 0x67ad, 0x678b, 0x6777, 0x677c, 0x67f0, 0x6809, 0x67d8, - 0x680a, 0x67e9, 0x67b0, 0x680c, 0x67d9, 0x67b5, 0x67da, 0x67b3, - 0x67dd, 0x6800, 0x67c3, 0x67b8, 0x67e2, 0x680e, 0x67c1, 0x67fd, - 0x6832, 0x6833, 0x6860, 0x6861, 0x684e, 0x6862, 0x6844, 0x6864, - 0x6883, 0x681d, 0x6855, 0x6866, 0x6841, 0x6867, 0x6840, 0x683e, - 0x684a, 0x6849, 0x6829, 0x68b5, 0x688f, 0x6874, 0x6877, 0x6893, - 0x686b, 0x68c2, 0x696e, 0x68fc, 0x691f, 0x6920, 0x68f9, 0x003f, - /* lead byte e9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9527, 0x9533, 0x953d, 0x9543, 0x9548, 0x954b, 0x9555, 0x955a, - 0x9560, 0x956e, 0x9574, 0x9575, 0x9577, 0x9578, 0x9579, 0x957a, - 0x957b, 0x957c, 0x957d, 0x957e, 0x9580, 0x9581, 0x9582, 0x9583, - 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958a, 0x958b, - 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, 0x9591, 0x9592, 0x9593, - 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959a, 0x959b, - 0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, 0x95a1, 0x95a2, 0x95a3, - 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, 0x003f, - 0x95ab, 0x95ac, 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b2, - 0x95b3, 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba, - 0x95bb, 0x95bc, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1, 0x95c2, - 0x95c3, 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0x95ca, - 0x95cb, 0x6924, 0x68f0, 0x690b, 0x6901, 0x6957, 0x68e3, 0x6910, - 0x6971, 0x6939, 0x6960, 0x6942, 0x695d, 0x6984, 0x696b, 0x6980, - 0x6998, 0x6978, 0x6934, 0x69cc, 0x6987, 0x6988, 0x69ce, 0x6989, - 0x6966, 0x6963, 0x6979, 0x699b, 0x69a7, 0x69bb, 0x69ab, 0x69ad, - 0x69d4, 0x69b1, 0x69c1, 0x69ca, 0x69df, 0x6995, 0x69e0, 0x698d, - 0x69ff, 0x6a2f, 0x69ed, 0x6a17, 0x6a18, 0x6a65, 0x69f2, 0x6a44, - 0x6a3e, 0x6aa0, 0x6a50, 0x6a5b, 0x6a35, 0x6a8e, 0x6a79, 0x6a3d, - 0x6a28, 0x6a58, 0x6a7c, 0x6a91, 0x6a90, 0x6aa9, 0x6a97, 0x6aab, - 0x7337, 0x7352, 0x6b81, 0x6b82, 0x6b87, 0x6b84, 0x6b92, 0x6b93, - 0x6b8d, 0x6b9a, 0x6b9b, 0x6ba1, 0x6baa, 0x8f6b, 0x8f6d, 0x8f71, - 0x8f72, 0x8f73, 0x8f75, 0x8f76, 0x8f78, 0x8f77, 0x8f79, 0x8f7a, - 0x8f7c, 0x8f7e, 0x8f81, 0x8f82, 0x8f84, 0x8f87, 0x8f8b, 0x003f, - /* lead byte ea */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, 0x95d3, - 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, 0x95db, - 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, 0x95e3, - 0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95ec, 0x95ff, 0x9607, 0x9613, - 0x9618, 0x961b, 0x961e, 0x9620, 0x9623, 0x9624, 0x9625, 0x9626, - 0x9627, 0x9628, 0x9629, 0x962b, 0x962c, 0x962d, 0x962f, 0x9630, - 0x9637, 0x9638, 0x9639, 0x963a, 0x963e, 0x9641, 0x9643, 0x964a, - 0x964e, 0x964f, 0x9651, 0x9652, 0x9653, 0x9656, 0x9657, 0x003f, - 0x9658, 0x9659, 0x965a, 0x965c, 0x965d, 0x965e, 0x9660, 0x9663, - 0x9665, 0x9666, 0x966b, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, - 0x9673, 0x9678, 0x9679, 0x967a, 0x967b, 0x967c, 0x967d, 0x967e, - 0x967f, 0x9680, 0x9681, 0x9682, 0x9683, 0x9684, 0x9687, 0x9689, - 0x968a, 0x8f8d, 0x8f8e, 0x8f8f, 0x8f98, 0x8f9a, 0x8ece, 0x620b, - 0x6217, 0x621b, 0x621f, 0x6222, 0x6221, 0x6225, 0x6224, 0x622c, - 0x81e7, 0x74ef, 0x74f4, 0x74ff, 0x750f, 0x7511, 0x7513, 0x6534, - 0x65ee, 0x65ef, 0x65f0, 0x660a, 0x6619, 0x6772, 0x6603, 0x6615, - 0x6600, 0x7085, 0x66f7, 0x661d, 0x6634, 0x6631, 0x6636, 0x6635, - 0x8006, 0x665f, 0x6654, 0x6641, 0x664f, 0x6656, 0x6661, 0x6657, - 0x6677, 0x6684, 0x668c, 0x66a7, 0x669d, 0x66be, 0x66db, 0x66dc, - 0x66e6, 0x66e9, 0x8d32, 0x8d33, 0x8d36, 0x8d3b, 0x8d3d, 0x8d40, - 0x8d45, 0x8d46, 0x8d48, 0x8d49, 0x8d47, 0x8d4d, 0x8d55, 0x8d59, - 0x89c7, 0x89ca, 0x89cb, 0x89cc, 0x89ce, 0x89cf, 0x89d0, 0x89d1, - 0x726e, 0x729f, 0x725d, 0x7266, 0x726f, 0x727e, 0x727f, 0x7284, - 0x728b, 0x728d, 0x728f, 0x7292, 0x6308, 0x6332, 0x63b0, 0x003f, - /* lead byte eb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x968c, 0x968e, 0x9691, 0x9692, 0x9693, 0x9695, 0x9696, 0x969a, - 0x969b, 0x969d, 0x969e, 0x969f, 0x96a0, 0x96a1, 0x96a2, 0x96a3, - 0x96a4, 0x96a5, 0x96a6, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac, - 0x96ad, 0x96ae, 0x96af, 0x96b1, 0x96b2, 0x96b4, 0x96b5, 0x96b7, - 0x96b8, 0x96ba, 0x96bb, 0x96bf, 0x96c2, 0x96c3, 0x96c8, 0x96ca, - 0x96cb, 0x96d0, 0x96d1, 0x96d3, 0x96d4, 0x96d6, 0x96d7, 0x96d8, - 0x96d9, 0x96da, 0x96db, 0x96dc, 0x96dd, 0x96de, 0x96df, 0x96e1, - 0x96e2, 0x96e3, 0x96e4, 0x96e5, 0x96e6, 0x96e7, 0x96eb, 0x003f, - 0x96ec, 0x96ed, 0x96ee, 0x96f0, 0x96f1, 0x96f2, 0x96f4, 0x96f5, - 0x96f8, 0x96fa, 0x96fb, 0x96fc, 0x96fd, 0x96ff, 0x9702, 0x9703, - 0x9705, 0x970a, 0x970b, 0x970c, 0x9710, 0x9711, 0x9712, 0x9714, - 0x9715, 0x9717, 0x9718, 0x9719, 0x971a, 0x971b, 0x971d, 0x971f, - 0x9720, 0x643f, 0x64d8, 0x8004, 0x6bea, 0x6bf3, 0x6bfd, 0x6bf5, - 0x6bf9, 0x6c05, 0x6c07, 0x6c06, 0x6c0d, 0x6c15, 0x6c18, 0x6c19, - 0x6c1a, 0x6c21, 0x6c29, 0x6c24, 0x6c2a, 0x6c32, 0x6535, 0x6555, - 0x656b, 0x724d, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809f, - 0x809c, 0x8093, 0x80bc, 0x670a, 0x80bd, 0x80b1, 0x80ab, 0x80ad, - 0x80b4, 0x80b7, 0x80e7, 0x80e8, 0x80e9, 0x80ea, 0x80db, 0x80c2, - 0x80c4, 0x80d9, 0x80cd, 0x80d7, 0x6710, 0x80dd, 0x80eb, 0x80f1, - 0x80f4, 0x80ed, 0x810d, 0x810e, 0x80f2, 0x80fc, 0x6715, 0x8112, - 0x8c5a, 0x8136, 0x811e, 0x812c, 0x8118, 0x8132, 0x8148, 0x814c, - 0x8153, 0x8174, 0x8159, 0x815a, 0x8171, 0x8160, 0x8169, 0x817c, - 0x817d, 0x816d, 0x8167, 0x584d, 0x5ab5, 0x8188, 0x8182, 0x8191, - 0x6ed5, 0x81a3, 0x81aa, 0x81cc, 0x6726, 0x81ca, 0x81bb, 0x003f, - /* lead byte ec */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9721, 0x9722, 0x9723, 0x9724, 0x9725, 0x9726, 0x9727, 0x9728, - 0x9729, 0x972b, 0x972c, 0x972e, 0x972f, 0x9731, 0x9733, 0x9734, - 0x9735, 0x9736, 0x9737, 0x973a, 0x973b, 0x973c, 0x973d, 0x973f, - 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, - 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d, 0x974e, 0x974f, - 0x9750, 0x9751, 0x9754, 0x9755, 0x9757, 0x9758, 0x975a, 0x975c, - 0x975d, 0x975f, 0x9763, 0x9764, 0x9766, 0x9767, 0x9768, 0x976a, - 0x976b, 0x976c, 0x976d, 0x976e, 0x976f, 0x9770, 0x9771, 0x003f, - 0x9772, 0x9775, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977d, - 0x977e, 0x977f, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9786, - 0x9787, 0x9788, 0x9789, 0x978a, 0x978c, 0x978e, 0x978f, 0x9790, - 0x9793, 0x9795, 0x9796, 0x9797, 0x9799, 0x979a, 0x979b, 0x979c, - 0x979d, 0x81c1, 0x81a6, 0x6b24, 0x6b37, 0x6b39, 0x6b43, 0x6b46, - 0x6b59, 0x98d1, 0x98d2, 0x98d3, 0x98d5, 0x98d9, 0x98da, 0x6bb3, - 0x5f40, 0x6bc2, 0x89f3, 0x6590, 0x9f51, 0x6593, 0x65bc, 0x65c6, - 0x65c4, 0x65c3, 0x65cc, 0x65ce, 0x65d2, 0x65d6, 0x7080, 0x709c, - 0x7096, 0x709d, 0x70bb, 0x70c0, 0x70b7, 0x70ab, 0x70b1, 0x70e8, - 0x70ca, 0x7110, 0x7113, 0x7116, 0x712f, 0x7131, 0x7173, 0x715c, - 0x7168, 0x7145, 0x7172, 0x714a, 0x7178, 0x717a, 0x7198, 0x71b3, - 0x71b5, 0x71a8, 0x71a0, 0x71e0, 0x71d4, 0x71e7, 0x71f9, 0x721d, - 0x7228, 0x706c, 0x7118, 0x7166, 0x71b9, 0x623e, 0x623d, 0x6243, - 0x6248, 0x6249, 0x793b, 0x7940, 0x7946, 0x7949, 0x795b, 0x795c, - 0x7953, 0x795a, 0x7962, 0x7957, 0x7960, 0x796f, 0x7967, 0x797a, - 0x7985, 0x798a, 0x799a, 0x79a7, 0x79b3, 0x5fd1, 0x5fd0, 0x003f, - /* lead byte ed */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x979e, 0x979f, 0x97a1, 0x97a2, 0x97a4, 0x97a5, 0x97a6, 0x97a7, - 0x97a8, 0x97a9, 0x97aa, 0x97ac, 0x97ae, 0x97b0, 0x97b1, 0x97b3, - 0x97b5, 0x97b6, 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, - 0x97bd, 0x97be, 0x97bf, 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4, - 0x97c5, 0x97c6, 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, - 0x97cd, 0x97ce, 0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, - 0x97d5, 0x97d6, 0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc, - 0x97dd, 0x97de, 0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x003f, - 0x97e4, 0x97e5, 0x97e8, 0x97ee, 0x97ef, 0x97f0, 0x97f1, 0x97f2, - 0x97f4, 0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0x97fc, 0x97fd, - 0x97fe, 0x97ff, 0x9800, 0x9801, 0x9802, 0x9803, 0x9804, 0x9805, - 0x9806, 0x9807, 0x9808, 0x9809, 0x980a, 0x980b, 0x980c, 0x980d, - 0x980e, 0x603c, 0x605d, 0x605a, 0x6067, 0x6041, 0x6059, 0x6063, - 0x60ab, 0x6106, 0x610d, 0x615d, 0x61a9, 0x619d, 0x61cb, 0x61d1, - 0x6206, 0x8080, 0x807f, 0x6c93, 0x6cf6, 0x6dfc, 0x77f6, 0x77f8, - 0x7800, 0x7809, 0x7817, 0x7818, 0x7811, 0x65ab, 0x782d, 0x781c, - 0x781d, 0x7839, 0x783a, 0x783b, 0x781f, 0x783c, 0x7825, 0x782c, - 0x7823, 0x7829, 0x784e, 0x786d, 0x7856, 0x7857, 0x7826, 0x7850, - 0x7847, 0x784c, 0x786a, 0x789b, 0x7893, 0x789a, 0x7887, 0x789c, - 0x78a1, 0x78a3, 0x78b2, 0x78b9, 0x78a5, 0x78d4, 0x78d9, 0x78c9, - 0x78ec, 0x78f2, 0x7905, 0x78f4, 0x7913, 0x7924, 0x791e, 0x7934, - 0x9f9b, 0x9ef9, 0x9efb, 0x9efc, 0x76f1, 0x7704, 0x770d, 0x76f9, - 0x7707, 0x7708, 0x771a, 0x7722, 0x7719, 0x772d, 0x7726, 0x7735, - 0x7738, 0x7750, 0x7751, 0x7747, 0x7743, 0x775a, 0x7768, 0x003f, - /* lead byte ee */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x980f, 0x9810, 0x9811, 0x9812, 0x9813, 0x9814, 0x9815, 0x9816, - 0x9817, 0x9818, 0x9819, 0x981a, 0x981b, 0x981c, 0x981d, 0x981e, - 0x981f, 0x9820, 0x9821, 0x9822, 0x9823, 0x9824, 0x9825, 0x9826, - 0x9827, 0x9828, 0x9829, 0x982a, 0x982b, 0x982c, 0x982d, 0x982e, - 0x982f, 0x9830, 0x9831, 0x9832, 0x9833, 0x9834, 0x9835, 0x9836, - 0x9837, 0x9838, 0x9839, 0x983a, 0x983b, 0x983c, 0x983d, 0x983e, - 0x983f, 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, - 0x9847, 0x9848, 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x003f, - 0x984e, 0x984f, 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, - 0x9856, 0x9857, 0x9858, 0x9859, 0x985a, 0x985b, 0x985c, 0x985d, - 0x985e, 0x985f, 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, - 0x9866, 0x9867, 0x9868, 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, - 0x986e, 0x7762, 0x7765, 0x777f, 0x778d, 0x777d, 0x7780, 0x778c, - 0x7791, 0x779f, 0x77a0, 0x77b0, 0x77b5, 0x77bd, 0x753a, 0x7540, - 0x754e, 0x754b, 0x7548, 0x755b, 0x7572, 0x7579, 0x7583, 0x7f58, - 0x7f61, 0x7f5f, 0x8a48, 0x7f68, 0x7f74, 0x7f71, 0x7f79, 0x7f81, - 0x7f7e, 0x76cd, 0x76e5, 0x8832, 0x9485, 0x9486, 0x9487, 0x948b, - 0x948a, 0x948c, 0x948d, 0x948f, 0x9490, 0x9494, 0x9497, 0x9495, - 0x949a, 0x949b, 0x949c, 0x94a3, 0x94a4, 0x94ab, 0x94aa, 0x94ad, - 0x94ac, 0x94af, 0x94b0, 0x94b2, 0x94b4, 0x94b6, 0x94b7, 0x94b8, - 0x94b9, 0x94ba, 0x94bc, 0x94bd, 0x94bf, 0x94c4, 0x94c8, 0x94c9, - 0x94ca, 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94d0, 0x94d1, 0x94d2, - 0x94d5, 0x94d6, 0x94d7, 0x94d9, 0x94d8, 0x94db, 0x94de, 0x94df, - 0x94e0, 0x94e2, 0x94e4, 0x94e5, 0x94e7, 0x94e8, 0x94ea, 0x003f, - /* lead byte ef */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x986f, 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x988b, 0x988e, - 0x9892, 0x9895, 0x9899, 0x98a3, 0x98a8, 0x98a9, 0x98aa, 0x98ab, - 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, 0x98b1, 0x98b2, 0x98b3, - 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, 0x98ba, 0x98bb, - 0x98bc, 0x98bd, 0x98be, 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3, - 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0x98cb, - 0x98cc, 0x98cd, 0x98cf, 0x98d0, 0x98d4, 0x98d6, 0x98d7, 0x98db, - 0x98dc, 0x98dd, 0x98e0, 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x003f, - 0x98e5, 0x98e6, 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, - 0x98ef, 0x98f0, 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, - 0x98f7, 0x98f8, 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x98fe, - 0x98ff, 0x9900, 0x9901, 0x9902, 0x9903, 0x9904, 0x9905, 0x9906, - 0x9907, 0x94e9, 0x94eb, 0x94ee, 0x94ef, 0x94f3, 0x94f4, 0x94f5, - 0x94f7, 0x94f9, 0x94fc, 0x94fd, 0x94ff, 0x9503, 0x9502, 0x9506, - 0x9507, 0x9509, 0x950a, 0x950d, 0x950e, 0x950f, 0x9512, 0x9513, - 0x9514, 0x9515, 0x9516, 0x9518, 0x951b, 0x951d, 0x951e, 0x951f, - 0x9522, 0x952a, 0x952b, 0x9529, 0x952c, 0x9531, 0x9532, 0x9534, - 0x9536, 0x9537, 0x9538, 0x953c, 0x953e, 0x953f, 0x9542, 0x9535, - 0x9544, 0x9545, 0x9546, 0x9549, 0x954c, 0x954e, 0x954f, 0x9552, - 0x9553, 0x9554, 0x9556, 0x9557, 0x9558, 0x9559, 0x955b, 0x955e, - 0x955f, 0x955d, 0x9561, 0x9562, 0x9564, 0x9565, 0x9566, 0x9567, - 0x9568, 0x9569, 0x956a, 0x956b, 0x956c, 0x956f, 0x9571, 0x9572, - 0x9573, 0x953a, 0x77e7, 0x77ec, 0x96c9, 0x79d5, 0x79ed, 0x79e3, - 0x79eb, 0x7a06, 0x5d47, 0x7a03, 0x7a02, 0x7a1e, 0x7a14, 0x003f, - /* lead byte f0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9908, 0x9909, 0x990a, 0x990b, 0x990c, 0x990e, 0x990f, 0x9911, - 0x9912, 0x9913, 0x9914, 0x9915, 0x9916, 0x9917, 0x9918, 0x9919, - 0x991a, 0x991b, 0x991c, 0x991d, 0x991e, 0x991f, 0x9920, 0x9921, - 0x9922, 0x9923, 0x9924, 0x9925, 0x9926, 0x9927, 0x9928, 0x9929, - 0x992a, 0x992b, 0x992c, 0x992d, 0x992f, 0x9930, 0x9931, 0x9932, - 0x9933, 0x9934, 0x9935, 0x9936, 0x9937, 0x9938, 0x9939, 0x993a, - 0x993b, 0x993c, 0x993d, 0x993e, 0x993f, 0x9940, 0x9941, 0x9942, - 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x003f, - 0x994a, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, - 0x9952, 0x9953, 0x9956, 0x9957, 0x9958, 0x9959, 0x995a, 0x995b, - 0x995c, 0x995d, 0x995e, 0x995f, 0x9960, 0x9961, 0x9962, 0x9964, - 0x9966, 0x9973, 0x9978, 0x9979, 0x997b, 0x997e, 0x9982, 0x9983, - 0x9989, 0x7a39, 0x7a37, 0x7a51, 0x9ecf, 0x99a5, 0x7a70, 0x7688, - 0x768e, 0x7693, 0x7699, 0x76a4, 0x74de, 0x74e0, 0x752c, 0x9e20, - 0x9e22, 0x9e28, 0x9e29, 0x9e2a, 0x9e2b, 0x9e2c, 0x9e32, 0x9e31, - 0x9e36, 0x9e38, 0x9e37, 0x9e39, 0x9e3a, 0x9e3e, 0x9e41, 0x9e42, - 0x9e44, 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4b, 0x9e4c, 0x9e4e, - 0x9e51, 0x9e55, 0x9e57, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5e, 0x9e63, - 0x9e66, 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e71, - 0x9e6d, 0x9e73, 0x7592, 0x7594, 0x7596, 0x75a0, 0x759d, 0x75ac, - 0x75a3, 0x75b3, 0x75b4, 0x75b8, 0x75c4, 0x75b1, 0x75b0, 0x75c3, - 0x75c2, 0x75d6, 0x75cd, 0x75e3, 0x75e8, 0x75e6, 0x75e4, 0x75eb, - 0x75e7, 0x7603, 0x75f1, 0x75fc, 0x75ff, 0x7610, 0x7600, 0x7605, - 0x760c, 0x7617, 0x760a, 0x7625, 0x7618, 0x7615, 0x7619, 0x003f, - /* lead byte f1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x998c, 0x998e, 0x999a, 0x999b, 0x999c, 0x999d, 0x999e, 0x999f, - 0x99a0, 0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a6, 0x99a7, 0x99a9, - 0x99aa, 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, - 0x99b2, 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, - 0x99ba, 0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1, - 0x99c2, 0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, - 0x99ca, 0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, - 0x99d2, 0x99d3, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x003f, - 0x99d9, 0x99da, 0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, - 0x99e1, 0x99e2, 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, - 0x99e9, 0x99ea, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, - 0x99f1, 0x99f2, 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, - 0x99f9, 0x761b, 0x763c, 0x7622, 0x7620, 0x7640, 0x762d, 0x7630, - 0x763f, 0x7635, 0x7643, 0x763e, 0x7633, 0x764d, 0x765e, 0x7654, - 0x765c, 0x7656, 0x766b, 0x766f, 0x7fca, 0x7ae6, 0x7a78, 0x7a79, - 0x7a80, 0x7a86, 0x7a88, 0x7a95, 0x7aa6, 0x7aa0, 0x7aac, 0x7aa8, - 0x7aad, 0x7ab3, 0x8864, 0x8869, 0x8872, 0x887d, 0x887f, 0x8882, - 0x88a2, 0x88c6, 0x88b7, 0x88bc, 0x88c9, 0x88e2, 0x88ce, 0x88e3, - 0x88e5, 0x88f1, 0x891a, 0x88fc, 0x88e8, 0x88fe, 0x88f0, 0x8921, - 0x8919, 0x8913, 0x891b, 0x890a, 0x8934, 0x892b, 0x8936, 0x8941, - 0x8966, 0x897b, 0x758b, 0x80e5, 0x76b2, 0x76b4, 0x77dc, 0x8012, - 0x8014, 0x8016, 0x801c, 0x8020, 0x8022, 0x8025, 0x8026, 0x8027, - 0x8029, 0x8028, 0x8031, 0x800b, 0x8035, 0x8043, 0x8046, 0x804d, - 0x8052, 0x8069, 0x8071, 0x8983, 0x9878, 0x9880, 0x9883, 0x003f, - /* lead byte f2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x99ff, 0x9a00, 0x9a01, - 0x9a02, 0x9a03, 0x9a04, 0x9a05, 0x9a06, 0x9a07, 0x9a08, 0x9a09, - 0x9a0a, 0x9a0b, 0x9a0c, 0x9a0d, 0x9a0e, 0x9a0f, 0x9a10, 0x9a11, - 0x9a12, 0x9a13, 0x9a14, 0x9a15, 0x9a16, 0x9a17, 0x9a18, 0x9a19, - 0x9a1a, 0x9a1b, 0x9a1c, 0x9a1d, 0x9a1e, 0x9a1f, 0x9a20, 0x9a21, - 0x9a22, 0x9a23, 0x9a24, 0x9a25, 0x9a26, 0x9a27, 0x9a28, 0x9a29, - 0x9a2a, 0x9a2b, 0x9a2c, 0x9a2d, 0x9a2e, 0x9a2f, 0x9a30, 0x9a31, - 0x9a32, 0x9a33, 0x9a34, 0x9a35, 0x9a36, 0x9a37, 0x9a38, 0x003f, - 0x9a39, 0x9a3a, 0x9a3b, 0x9a3c, 0x9a3d, 0x9a3e, 0x9a3f, 0x9a40, - 0x9a41, 0x9a42, 0x9a43, 0x9a44, 0x9a45, 0x9a46, 0x9a47, 0x9a48, - 0x9a49, 0x9a4a, 0x9a4b, 0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, - 0x9a51, 0x9a52, 0x9a53, 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, - 0x9a59, 0x9889, 0x988c, 0x988d, 0x988f, 0x9894, 0x989a, 0x989b, - 0x989e, 0x989f, 0x98a1, 0x98a2, 0x98a5, 0x98a6, 0x864d, 0x8654, - 0x866c, 0x866e, 0x867f, 0x867a, 0x867c, 0x867b, 0x86a8, 0x868d, - 0x868b, 0x86ac, 0x869d, 0x86a7, 0x86a3, 0x86aa, 0x8693, 0x86a9, - 0x86b6, 0x86c4, 0x86b5, 0x86ce, 0x86b0, 0x86ba, 0x86b1, 0x86af, - 0x86c9, 0x86cf, 0x86b4, 0x86e9, 0x86f1, 0x86f2, 0x86ed, 0x86f3, - 0x86d0, 0x8713, 0x86de, 0x86f4, 0x86df, 0x86d8, 0x86d1, 0x8703, - 0x8707, 0x86f8, 0x8708, 0x870a, 0x870d, 0x8709, 0x8723, 0x873b, - 0x871e, 0x8725, 0x872e, 0x871a, 0x873e, 0x8748, 0x8734, 0x8731, - 0x8729, 0x8737, 0x873f, 0x8782, 0x8722, 0x877d, 0x877e, 0x877b, - 0x8760, 0x8770, 0x874c, 0x876e, 0x878b, 0x8753, 0x8763, 0x877c, - 0x8764, 0x8759, 0x8765, 0x8793, 0x87af, 0x87a8, 0x87d2, 0x003f, - /* lead byte f3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0x9a60, 0x9a61, - 0x9a62, 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, - 0x9a6a, 0x9a6b, 0x9a72, 0x9a83, 0x9a89, 0x9a8d, 0x9a8e, 0x9a94, - 0x9a95, 0x9a99, 0x9aa6, 0x9aa9, 0x9aaa, 0x9aab, 0x9aac, 0x9aad, - 0x9aae, 0x9aaf, 0x9ab2, 0x9ab3, 0x9ab4, 0x9ab5, 0x9ab9, 0x9abb, - 0x9abd, 0x9abe, 0x9abf, 0x9ac3, 0x9ac4, 0x9ac6, 0x9ac7, 0x9ac8, - 0x9ac9, 0x9aca, 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad2, 0x9ad4, - 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, 0x003f, - 0x9add, 0x9ade, 0x9ae0, 0x9ae2, 0x9ae3, 0x9ae4, 0x9ae5, 0x9ae7, - 0x9ae8, 0x9ae9, 0x9aea, 0x9aec, 0x9aee, 0x9af0, 0x9af1, 0x9af2, - 0x9af3, 0x9af4, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9afa, 0x9afc, - 0x9afd, 0x9afe, 0x9aff, 0x9b00, 0x9b01, 0x9b02, 0x9b04, 0x9b05, - 0x9b06, 0x87c6, 0x8788, 0x8785, 0x87ad, 0x8797, 0x8783, 0x87ab, - 0x87e5, 0x87ac, 0x87b5, 0x87b3, 0x87cb, 0x87d3, 0x87bd, 0x87d1, - 0x87c0, 0x87ca, 0x87db, 0x87ea, 0x87e0, 0x87ee, 0x8816, 0x8813, - 0x87fe, 0x880a, 0x881b, 0x8821, 0x8839, 0x883c, 0x7f36, 0x7f42, - 0x7f44, 0x7f45, 0x8210, 0x7afa, 0x7afd, 0x7b08, 0x7b03, 0x7b04, - 0x7b15, 0x7b0a, 0x7b2b, 0x7b0f, 0x7b47, 0x7b38, 0x7b2a, 0x7b19, - 0x7b2e, 0x7b31, 0x7b20, 0x7b25, 0x7b24, 0x7b33, 0x7b3e, 0x7b1e, - 0x7b58, 0x7b5a, 0x7b45, 0x7b75, 0x7b4c, 0x7b5d, 0x7b60, 0x7b6e, - 0x7b7b, 0x7b62, 0x7b72, 0x7b71, 0x7b90, 0x7ba6, 0x7ba7, 0x7bb8, - 0x7bac, 0x7b9d, 0x7ba8, 0x7b85, 0x7baa, 0x7b9c, 0x7ba2, 0x7bab, - 0x7bb4, 0x7bd1, 0x7bc1, 0x7bcc, 0x7bdd, 0x7bda, 0x7be5, 0x7be6, - 0x7bea, 0x7c0c, 0x7bfe, 0x7bfc, 0x7c0f, 0x7c16, 0x7c0b, 0x003f, - /* lead byte f4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9b07, 0x9b09, 0x9b0a, 0x9b0b, 0x9b0c, 0x9b0d, 0x9b0e, 0x9b10, - 0x9b11, 0x9b12, 0x9b14, 0x9b15, 0x9b16, 0x9b17, 0x9b18, 0x9b19, - 0x9b1a, 0x9b1b, 0x9b1c, 0x9b1d, 0x9b1e, 0x9b20, 0x9b21, 0x9b22, - 0x9b24, 0x9b25, 0x9b26, 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2b, - 0x9b2c, 0x9b2d, 0x9b2e, 0x9b30, 0x9b31, 0x9b33, 0x9b34, 0x9b35, - 0x9b36, 0x9b37, 0x9b38, 0x9b39, 0x9b3a, 0x9b3d, 0x9b3e, 0x9b3f, - 0x9b40, 0x9b46, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4e, 0x9b50, 0x9b52, - 0x9b53, 0x9b55, 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x003f, - 0x9b5b, 0x9b5c, 0x9b5d, 0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0x9b62, - 0x9b63, 0x9b64, 0x9b65, 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, - 0x9b6b, 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, - 0x9b73, 0x9b74, 0x9b75, 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, - 0x9b7b, 0x7c1f, 0x7c2a, 0x7c26, 0x7c38, 0x7c41, 0x7c40, 0x81fe, - 0x8201, 0x8202, 0x8204, 0x81ec, 0x8844, 0x8221, 0x8222, 0x8223, - 0x822d, 0x822f, 0x8228, 0x822b, 0x8238, 0x823b, 0x8233, 0x8234, - 0x823e, 0x8244, 0x8249, 0x824b, 0x824f, 0x825a, 0x825f, 0x8268, - 0x887e, 0x8885, 0x8888, 0x88d8, 0x88df, 0x895e, 0x7f9d, 0x7f9f, - 0x7fa7, 0x7faf, 0x7fb0, 0x7fb2, 0x7c7c, 0x6549, 0x7c91, 0x7c9d, - 0x7c9c, 0x7c9e, 0x7ca2, 0x7cb2, 0x7cbc, 0x7cbd, 0x7cc1, 0x7cc7, - 0x7ccc, 0x7ccd, 0x7cc8, 0x7cc5, 0x7cd7, 0x7ce8, 0x826e, 0x66a8, - 0x7fbf, 0x7fce, 0x7fd5, 0x7fe5, 0x7fe1, 0x7fe6, 0x7fe9, 0x7fee, - 0x7ff3, 0x7cf8, 0x7d77, 0x7da6, 0x7dae, 0x7e47, 0x7e9b, 0x9eb8, - 0x9eb4, 0x8d73, 0x8d84, 0x8d94, 0x8d91, 0x8db1, 0x8d67, 0x8d6d, - 0x8c47, 0x8c49, 0x914a, 0x9150, 0x914e, 0x914f, 0x9164, 0x003f, - /* lead byte f5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9b7c, 0x9b7d, 0x9b7e, 0x9b7f, 0x9b80, 0x9b81, 0x9b82, 0x9b83, - 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b, - 0x9b8c, 0x9b8d, 0x9b8e, 0x9b8f, 0x9b90, 0x9b91, 0x9b92, 0x9b93, - 0x9b94, 0x9b95, 0x9b96, 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b, - 0x9b9c, 0x9b9d, 0x9b9e, 0x9b9f, 0x9ba0, 0x9ba1, 0x9ba2, 0x9ba3, - 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab, - 0x9bac, 0x9bad, 0x9bae, 0x9baf, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3, - 0x9bb4, 0x9bb5, 0x9bb6, 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x003f, - 0x9bbb, 0x9bbc, 0x9bbd, 0x9bbe, 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, - 0x9bc3, 0x9bc4, 0x9bc5, 0x9bc6, 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, - 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce, 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, - 0x9bd3, 0x9bd4, 0x9bd5, 0x9bd6, 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, - 0x9bdb, 0x9162, 0x9161, 0x9170, 0x9169, 0x916f, 0x917d, 0x917e, - 0x9172, 0x9174, 0x9179, 0x918c, 0x9185, 0x9190, 0x918d, 0x9191, - 0x91a2, 0x91a3, 0x91aa, 0x91ad, 0x91ae, 0x91af, 0x91b5, 0x91b4, - 0x91ba, 0x8c55, 0x9e7e, 0x8db8, 0x8deb, 0x8e05, 0x8e59, 0x8e69, - 0x8db5, 0x8dbf, 0x8dbc, 0x8dba, 0x8dc4, 0x8dd6, 0x8dd7, 0x8dda, - 0x8dde, 0x8dce, 0x8dcf, 0x8ddb, 0x8dc6, 0x8dec, 0x8df7, 0x8df8, - 0x8de3, 0x8df9, 0x8dfb, 0x8de4, 0x8e09, 0x8dfd, 0x8e14, 0x8e1d, - 0x8e1f, 0x8e2c, 0x8e2e, 0x8e23, 0x8e2f, 0x8e3a, 0x8e40, 0x8e39, - 0x8e35, 0x8e3d, 0x8e31, 0x8e49, 0x8e41, 0x8e42, 0x8e51, 0x8e52, - 0x8e4a, 0x8e70, 0x8e76, 0x8e7c, 0x8e6f, 0x8e74, 0x8e85, 0x8e8f, - 0x8e94, 0x8e90, 0x8e9c, 0x8e9e, 0x8c78, 0x8c82, 0x8c8a, 0x8c85, - 0x8c98, 0x8c94, 0x659b, 0x89d6, 0x89de, 0x89da, 0x89dc, 0x003f, - /* lead byte f6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9bdc, 0x9bdd, 0x9bde, 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3, - 0x9be4, 0x9be5, 0x9be6, 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb, - 0x9bec, 0x9bed, 0x9bee, 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, - 0x9bf4, 0x9bf5, 0x9bf6, 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb, - 0x9bfc, 0x9bfd, 0x9bfe, 0x9bff, 0x9c00, 0x9c01, 0x9c02, 0x9c03, - 0x9c04, 0x9c05, 0x9c06, 0x9c07, 0x9c08, 0x9c09, 0x9c0a, 0x9c0b, - 0x9c0c, 0x9c0d, 0x9c0e, 0x9c0f, 0x9c10, 0x9c11, 0x9c12, 0x9c13, - 0x9c14, 0x9c15, 0x9c16, 0x9c17, 0x9c18, 0x9c19, 0x9c1a, 0x003f, - 0x9c1b, 0x9c1c, 0x9c1d, 0x9c1e, 0x9c1f, 0x9c20, 0x9c21, 0x9c22, - 0x9c23, 0x9c24, 0x9c25, 0x9c26, 0x9c27, 0x9c28, 0x9c29, 0x9c2a, - 0x9c2b, 0x9c2c, 0x9c2d, 0x9c2e, 0x9c2f, 0x9c30, 0x9c31, 0x9c32, - 0x9c33, 0x9c34, 0x9c35, 0x9c36, 0x9c37, 0x9c38, 0x9c39, 0x9c3a, - 0x9c3b, 0x89e5, 0x89eb, 0x89ef, 0x8a3e, 0x8b26, 0x9753, 0x96e9, - 0x96f3, 0x96ef, 0x9706, 0x9701, 0x9708, 0x970f, 0x970e, 0x972a, - 0x972d, 0x9730, 0x973e, 0x9f80, 0x9f83, 0x9f85, 0x9f86, 0x9f87, - 0x9f88, 0x9f89, 0x9f8a, 0x9f8c, 0x9efe, 0x9f0b, 0x9f0d, 0x96b9, - 0x96bc, 0x96bd, 0x96ce, 0x96d2, 0x77bf, 0x96e0, 0x928e, 0x92ae, - 0x92c8, 0x933e, 0x936a, 0x93ca, 0x938f, 0x943e, 0x946b, 0x9c7f, - 0x9c82, 0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x7a23, 0x9c8b, 0x9c8e, - 0x9c90, 0x9c91, 0x9c92, 0x9c94, 0x9c95, 0x9c9a, 0x9c9b, 0x9c9e, - 0x9c9f, 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca5, 0x9ca6, 0x9ca7, - 0x9ca8, 0x9ca9, 0x9cab, 0x9cad, 0x9cae, 0x9cb0, 0x9cb1, 0x9cb2, - 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cba, 0x9cbb, 0x9cbc, - 0x9cbd, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cca, 0x9ccb, 0x003f, - /* lead byte f7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9c3c, 0x9c3d, 0x9c3e, 0x9c3f, 0x9c40, 0x9c41, 0x9c42, 0x9c43, - 0x9c44, 0x9c45, 0x9c46, 0x9c47, 0x9c48, 0x9c49, 0x9c4a, 0x9c4b, - 0x9c4c, 0x9c4d, 0x9c4e, 0x9c4f, 0x9c50, 0x9c51, 0x9c52, 0x9c53, - 0x9c54, 0x9c55, 0x9c56, 0x9c57, 0x9c58, 0x9c59, 0x9c5a, 0x9c5b, - 0x9c5c, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c60, 0x9c61, 0x9c62, 0x9c63, - 0x9c64, 0x9c65, 0x9c66, 0x9c67, 0x9c68, 0x9c69, 0x9c6a, 0x9c6b, - 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, 0x9c71, 0x9c72, 0x9c73, - 0x9c74, 0x9c75, 0x9c76, 0x9c77, 0x9c78, 0x9c79, 0x9c7a, 0x003f, - 0x9c7b, 0x9c7d, 0x9c7e, 0x9c80, 0x9c83, 0x9c84, 0x9c89, 0x9c8a, - 0x9c8c, 0x9c8f, 0x9c93, 0x9c96, 0x9c97, 0x9c98, 0x9c99, 0x9c9d, - 0x9caa, 0x9cac, 0x9caf, 0x9cb9, 0x9cbe, 0x9cbf, 0x9cc0, 0x9cc1, - 0x9cc2, 0x9cc8, 0x9cc9, 0x9cd1, 0x9cd2, 0x9cda, 0x9cdb, 0x9ce0, - 0x9ce1, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, 0x9cd3, 0x9cd4, - 0x9cd5, 0x9cd7, 0x9cd8, 0x9cd9, 0x9cdc, 0x9cdd, 0x9cdf, 0x9ce2, - 0x977c, 0x9785, 0x9791, 0x9792, 0x9794, 0x97af, 0x97ab, 0x97a3, - 0x97b2, 0x97b4, 0x9ab1, 0x9ab0, 0x9ab7, 0x9e58, 0x9ab6, 0x9aba, - 0x9abc, 0x9ac1, 0x9ac0, 0x9ac5, 0x9ac2, 0x9acb, 0x9acc, 0x9ad1, - 0x9b45, 0x9b43, 0x9b47, 0x9b49, 0x9b48, 0x9b4d, 0x9b51, 0x98e8, - 0x990d, 0x992e, 0x9955, 0x9954, 0x9adf, 0x9ae1, 0x9ae6, 0x9aef, - 0x9aeb, 0x9afb, 0x9aed, 0x9af9, 0x9b08, 0x9b0f, 0x9b13, 0x9b1f, - 0x9b23, 0x9ebd, 0x9ebe, 0x7e3b, 0x9e82, 0x9e87, 0x9e88, 0x9e8b, - 0x9e92, 0x93d6, 0x9e9d, 0x9e9f, 0x9edb, 0x9edc, 0x9edd, 0x9ee0, - 0x9edf, 0x9ee2, 0x9ee9, 0x9ee7, 0x9ee5, 0x9eea, 0x9eef, 0x9f22, - 0x9f2c, 0x9f2f, 0x9f39, 0x9f37, 0x9f3d, 0x9f3e, 0x9f44, 0x003f, - /* lead byte f8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea, - 0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0x9cf2, - 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa, - 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9cff, 0x9d00, 0x9d01, 0x9d02, - 0x9d03, 0x9d04, 0x9d05, 0x9d06, 0x9d07, 0x9d08, 0x9d09, 0x9d0a, - 0x9d0b, 0x9d0c, 0x9d0d, 0x9d0e, 0x9d0f, 0x9d10, 0x9d11, 0x9d12, - 0x9d13, 0x9d14, 0x9d15, 0x9d16, 0x9d17, 0x9d18, 0x9d19, 0x9d1a, - 0x9d1b, 0x9d1c, 0x9d1d, 0x9d1e, 0x9d1f, 0x9d20, 0x9d21, 0x003f, - 0x9d22, 0x9d23, 0x9d24, 0x9d25, 0x9d26, 0x9d27, 0x9d28, 0x9d29, - 0x9d2a, 0x9d2b, 0x9d2c, 0x9d2d, 0x9d2e, 0x9d2f, 0x9d30, 0x9d31, - 0x9d32, 0x9d33, 0x9d34, 0x9d35, 0x9d36, 0x9d37, 0x9d38, 0x9d39, - 0x9d3a, 0x9d3b, 0x9d3c, 0x9d3d, 0x9d3e, 0x9d3f, 0x9d40, 0x9d41, - 0x9d42, 0xe234, 0xe235, 0xe236, 0xe237, 0xe238, 0xe239, 0xe23a, - 0xe23b, 0xe23c, 0xe23d, 0xe23e, 0xe23f, 0xe240, 0xe241, 0xe242, - 0xe243, 0xe244, 0xe245, 0xe246, 0xe247, 0xe248, 0xe249, 0xe24a, - 0xe24b, 0xe24c, 0xe24d, 0xe24e, 0xe24f, 0xe250, 0xe251, 0xe252, - 0xe253, 0xe254, 0xe255, 0xe256, 0xe257, 0xe258, 0xe259, 0xe25a, - 0xe25b, 0xe25c, 0xe25d, 0xe25e, 0xe25f, 0xe260, 0xe261, 0xe262, - 0xe263, 0xe264, 0xe265, 0xe266, 0xe267, 0xe268, 0xe269, 0xe26a, - 0xe26b, 0xe26c, 0xe26d, 0xe26e, 0xe26f, 0xe270, 0xe271, 0xe272, - 0xe273, 0xe274, 0xe275, 0xe276, 0xe277, 0xe278, 0xe279, 0xe27a, - 0xe27b, 0xe27c, 0xe27d, 0xe27e, 0xe27f, 0xe280, 0xe281, 0xe282, - 0xe283, 0xe284, 0xe285, 0xe286, 0xe287, 0xe288, 0xe289, 0xe28a, - 0xe28b, 0xe28c, 0xe28d, 0xe28e, 0xe28f, 0xe290, 0xe291, 0x003f, - /* lead byte f9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49, 0x9d4a, - 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51, 0x9d52, - 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0x9d5a, - 0x9d5b, 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61, 0x9d62, - 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 0x9d6a, - 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d72, - 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, - 0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9d7f, 0x9d80, 0x9d81, 0x003f, - 0x9d82, 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, - 0x9d8a, 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, 0x9d91, - 0x9d92, 0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, - 0x9d9a, 0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0x9da1, - 0x9da2, 0xe292, 0xe293, 0xe294, 0xe295, 0xe296, 0xe297, 0xe298, - 0xe299, 0xe29a, 0xe29b, 0xe29c, 0xe29d, 0xe29e, 0xe29f, 0xe2a0, - 0xe2a1, 0xe2a2, 0xe2a3, 0xe2a4, 0xe2a5, 0xe2a6, 0xe2a7, 0xe2a8, - 0xe2a9, 0xe2aa, 0xe2ab, 0xe2ac, 0xe2ad, 0xe2ae, 0xe2af, 0xe2b0, - 0xe2b1, 0xe2b2, 0xe2b3, 0xe2b4, 0xe2b5, 0xe2b6, 0xe2b7, 0xe2b8, - 0xe2b9, 0xe2ba, 0xe2bb, 0xe2bc, 0xe2bd, 0xe2be, 0xe2bf, 0xe2c0, - 0xe2c1, 0xe2c2, 0xe2c3, 0xe2c4, 0xe2c5, 0xe2c6, 0xe2c7, 0xe2c8, - 0xe2c9, 0xe2ca, 0xe2cb, 0xe2cc, 0xe2cd, 0xe2ce, 0xe2cf, 0xe2d0, - 0xe2d1, 0xe2d2, 0xe2d3, 0xe2d4, 0xe2d5, 0xe2d6, 0xe2d7, 0xe2d8, - 0xe2d9, 0xe2da, 0xe2db, 0xe2dc, 0xe2dd, 0xe2de, 0xe2df, 0xe2e0, - 0xe2e1, 0xe2e2, 0xe2e3, 0xe2e4, 0xe2e5, 0xe2e6, 0xe2e7, 0xe2e8, - 0xe2e9, 0xe2ea, 0xe2eb, 0xe2ec, 0xe2ed, 0xe2ee, 0xe2ef, 0x003f, - /* lead byte fa */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9da3, 0x9da4, 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa, - 0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db2, - 0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, - 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2, - 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca, - 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2, - 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, 0x9dda, - 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0x9de1, 0x003f, - 0x9de2, 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, - 0x9dea, 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, - 0x9df2, 0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, - 0x9dfa, 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9dff, 0x9e00, 0x9e01, - 0x9e02, 0xe2f0, 0xe2f1, 0xe2f2, 0xe2f3, 0xe2f4, 0xe2f5, 0xe2f6, - 0xe2f7, 0xe2f8, 0xe2f9, 0xe2fa, 0xe2fb, 0xe2fc, 0xe2fd, 0xe2fe, - 0xe2ff, 0xe300, 0xe301, 0xe302, 0xe303, 0xe304, 0xe305, 0xe306, - 0xe307, 0xe308, 0xe309, 0xe30a, 0xe30b, 0xe30c, 0xe30d, 0xe30e, - 0xe30f, 0xe310, 0xe311, 0xe312, 0xe313, 0xe314, 0xe315, 0xe316, - 0xe317, 0xe318, 0xe319, 0xe31a, 0xe31b, 0xe31c, 0xe31d, 0xe31e, - 0xe31f, 0xe320, 0xe321, 0xe322, 0xe323, 0xe324, 0xe325, 0xe326, - 0xe327, 0xe328, 0xe329, 0xe32a, 0xe32b, 0xe32c, 0xe32d, 0xe32e, - 0xe32f, 0xe330, 0xe331, 0xe332, 0xe333, 0xe334, 0xe335, 0xe336, - 0xe337, 0xe338, 0xe339, 0xe33a, 0xe33b, 0xe33c, 0xe33d, 0xe33e, - 0xe33f, 0xe340, 0xe341, 0xe342, 0xe343, 0xe344, 0xe345, 0xe346, - 0xe347, 0xe348, 0xe349, 0xe34a, 0xe34b, 0xe34c, 0xe34d, 0x003f, - /* lead byte fb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9e03, 0x9e04, 0x9e05, 0x9e06, 0x9e07, 0x9e08, 0x9e09, 0x9e0a, - 0x9e0b, 0x9e0c, 0x9e0d, 0x9e0e, 0x9e0f, 0x9e10, 0x9e11, 0x9e12, - 0x9e13, 0x9e14, 0x9e15, 0x9e16, 0x9e17, 0x9e18, 0x9e19, 0x9e1a, - 0x9e1b, 0x9e1c, 0x9e1d, 0x9e1e, 0x9e24, 0x9e27, 0x9e2e, 0x9e30, - 0x9e34, 0x9e3b, 0x9e3c, 0x9e40, 0x9e4d, 0x9e50, 0x9e52, 0x9e53, - 0x9e54, 0x9e56, 0x9e59, 0x9e5d, 0x9e5f, 0x9e60, 0x9e61, 0x9e62, - 0x9e65, 0x9e6e, 0x9e6f, 0x9e72, 0x9e74, 0x9e75, 0x9e76, 0x9e77, - 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, 0x9e7c, 0x9e7d, 0x9e80, 0x003f, - 0x9e81, 0x9e83, 0x9e84, 0x9e85, 0x9e86, 0x9e89, 0x9e8a, 0x9e8c, - 0x9e8d, 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e94, 0x9e95, 0x9e96, - 0x9e97, 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c, 0x9e9e, 0x9ea0, - 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0x9ea7, 0x9ea8, 0x9ea9, - 0x9eaa, 0xe34e, 0xe34f, 0xe350, 0xe351, 0xe352, 0xe353, 0xe354, - 0xe355, 0xe356, 0xe357, 0xe358, 0xe359, 0xe35a, 0xe35b, 0xe35c, - 0xe35d, 0xe35e, 0xe35f, 0xe360, 0xe361, 0xe362, 0xe363, 0xe364, - 0xe365, 0xe366, 0xe367, 0xe368, 0xe369, 0xe36a, 0xe36b, 0xe36c, - 0xe36d, 0xe36e, 0xe36f, 0xe370, 0xe371, 0xe372, 0xe373, 0xe374, - 0xe375, 0xe376, 0xe377, 0xe378, 0xe379, 0xe37a, 0xe37b, 0xe37c, - 0xe37d, 0xe37e, 0xe37f, 0xe380, 0xe381, 0xe382, 0xe383, 0xe384, - 0xe385, 0xe386, 0xe387, 0xe388, 0xe389, 0xe38a, 0xe38b, 0xe38c, - 0xe38d, 0xe38e, 0xe38f, 0xe390, 0xe391, 0xe392, 0xe393, 0xe394, - 0xe395, 0xe396, 0xe397, 0xe398, 0xe399, 0xe39a, 0xe39b, 0xe39c, - 0xe39d, 0xe39e, 0xe39f, 0xe3a0, 0xe3a1, 0xe3a2, 0xe3a3, 0xe3a4, - 0xe3a5, 0xe3a6, 0xe3a7, 0xe3a8, 0xe3a9, 0xe3aa, 0xe3ab, 0x003f, - /* lead byte fc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9eab, 0x9eac, 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2, - 0x9eb3, 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb9, 0x9eba, 0x9ebc, 0x9ebf, - 0x9ec0, 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, - 0x9eca, 0x9ecb, 0x9ecc, 0x9ed0, 0x9ed2, 0x9ed3, 0x9ed5, 0x9ed6, - 0x9ed7, 0x9ed9, 0x9eda, 0x9ede, 0x9ee1, 0x9ee3, 0x9ee4, 0x9ee6, - 0x9ee8, 0x9eeb, 0x9eec, 0x9eed, 0x9eee, 0x9ef0, 0x9ef1, 0x9ef2, - 0x9ef3, 0x9ef4, 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9efa, 0x9efd, - 0x9eff, 0x9f00, 0x9f01, 0x9f02, 0x9f03, 0x9f04, 0x9f05, 0x003f, - 0x9f06, 0x9f07, 0x9f08, 0x9f09, 0x9f0a, 0x9f0c, 0x9f0f, 0x9f11, - 0x9f12, 0x9f14, 0x9f15, 0x9f16, 0x9f18, 0x9f1a, 0x9f1b, 0x9f1c, - 0x9f1d, 0x9f1e, 0x9f1f, 0x9f21, 0x9f23, 0x9f24, 0x9f25, 0x9f26, - 0x9f27, 0x9f28, 0x9f29, 0x9f2a, 0x9f2b, 0x9f2d, 0x9f2e, 0x9f30, - 0x9f31, 0xe3ac, 0xe3ad, 0xe3ae, 0xe3af, 0xe3b0, 0xe3b1, 0xe3b2, - 0xe3b3, 0xe3b4, 0xe3b5, 0xe3b6, 0xe3b7, 0xe3b8, 0xe3b9, 0xe3ba, - 0xe3bb, 0xe3bc, 0xe3bd, 0xe3be, 0xe3bf, 0xe3c0, 0xe3c1, 0xe3c2, - 0xe3c3, 0xe3c4, 0xe3c5, 0xe3c6, 0xe3c7, 0xe3c8, 0xe3c9, 0xe3ca, - 0xe3cb, 0xe3cc, 0xe3cd, 0xe3ce, 0xe3cf, 0xe3d0, 0xe3d1, 0xe3d2, - 0xe3d3, 0xe3d4, 0xe3d5, 0xe3d6, 0xe3d7, 0xe3d8, 0xe3d9, 0xe3da, - 0xe3db, 0xe3dc, 0xe3dd, 0xe3de, 0xe3df, 0xe3e0, 0xe3e1, 0xe3e2, - 0xe3e3, 0xe3e4, 0xe3e5, 0xe3e6, 0xe3e7, 0xe3e8, 0xe3e9, 0xe3ea, - 0xe3eb, 0xe3ec, 0xe3ed, 0xe3ee, 0xe3ef, 0xe3f0, 0xe3f1, 0xe3f2, - 0xe3f3, 0xe3f4, 0xe3f5, 0xe3f6, 0xe3f7, 0xe3f8, 0xe3f9, 0xe3fa, - 0xe3fb, 0xe3fc, 0xe3fd, 0xe3fe, 0xe3ff, 0xe400, 0xe401, 0xe402, - 0xe403, 0xe404, 0xe405, 0xe406, 0xe407, 0xe408, 0xe409, 0x003f, - /* lead byte fd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9f32, 0x9f33, 0x9f34, 0x9f35, 0x9f36, 0x9f38, 0x9f3a, 0x9f3c, - 0x9f3f, 0x9f40, 0x9f41, 0x9f42, 0x9f43, 0x9f45, 0x9f46, 0x9f47, - 0x9f48, 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f, - 0x9f52, 0x9f53, 0x9f54, 0x9f55, 0x9f56, 0x9f57, 0x9f58, 0x9f59, - 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f5e, 0x9f5f, 0x9f60, 0x9f61, - 0x9f62, 0x9f63, 0x9f64, 0x9f65, 0x9f66, 0x9f67, 0x9f68, 0x9f69, - 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, - 0x9f72, 0x9f73, 0x9f74, 0x9f75, 0x9f76, 0x9f77, 0x9f78, 0x003f, - 0x9f79, 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d, 0x9f7e, 0x9f81, 0x9f82, - 0x9f8d, 0x9f8e, 0x9f8f, 0x9f90, 0x9f91, 0x9f92, 0x9f93, 0x9f94, - 0x9f95, 0x9f96, 0x9f97, 0x9f98, 0x9f9c, 0x9f9d, 0x9f9e, 0x9fa1, - 0x9fa2, 0x9fa3, 0x9fa4, 0x9fa5, 0xf92c, 0xf979, 0xf995, 0xf9e7, - 0xf9f1, 0xe40a, 0xe40b, 0xe40c, 0xe40d, 0xe40e, 0xe40f, 0xe410, - 0xe411, 0xe412, 0xe413, 0xe414, 0xe415, 0xe416, 0xe417, 0xe418, - 0xe419, 0xe41a, 0xe41b, 0xe41c, 0xe41d, 0xe41e, 0xe41f, 0xe420, - 0xe421, 0xe422, 0xe423, 0xe424, 0xe425, 0xe426, 0xe427, 0xe428, - 0xe429, 0xe42a, 0xe42b, 0xe42c, 0xe42d, 0xe42e, 0xe42f, 0xe430, - 0xe431, 0xe432, 0xe433, 0xe434, 0xe435, 0xe436, 0xe437, 0xe438, - 0xe439, 0xe43a, 0xe43b, 0xe43c, 0xe43d, 0xe43e, 0xe43f, 0xe440, - 0xe441, 0xe442, 0xe443, 0xe444, 0xe445, 0xe446, 0xe447, 0xe448, - 0xe449, 0xe44a, 0xe44b, 0xe44c, 0xe44d, 0xe44e, 0xe44f, 0xe450, - 0xe451, 0xe452, 0xe453, 0xe454, 0xe455, 0xe456, 0xe457, 0xe458, - 0xe459, 0xe45a, 0xe45b, 0xe45c, 0xe45d, 0xe45e, 0xe45f, 0xe460, - 0xe461, 0xe462, 0xe463, 0xe464, 0xe465, 0xe466, 0xe467, 0x003f, - /* lead byte fe */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfa0c, 0xfa0d, 0xfa0e, 0xfa0f, 0xfa11, 0xfa13, 0xfa14, 0xfa18, - 0xfa1f, 0xfa20, 0xfa21, 0xfa23, 0xfa24, 0xfa27, 0xfa28, 0xfa29, - 0xe815, 0xe816, 0xe817, 0xe818, 0xe819, 0xe81a, 0xe81b, 0xe81c, - 0xe81d, 0xe81e, 0xe81f, 0xe820, 0xe821, 0xe822, 0xe823, 0xe824, - 0xe825, 0xe826, 0xe827, 0xe828, 0xe829, 0xe82a, 0xe82b, 0xe82c, - 0xe82d, 0xe82e, 0xe82f, 0xe830, 0xe831, 0xe832, 0xe833, 0xe834, - 0xe835, 0xe836, 0xe837, 0xe838, 0xe839, 0xe83a, 0xe83b, 0xe83c, - 0xe83d, 0xe83e, 0xe83f, 0xe840, 0xe841, 0xe842, 0xe843, 0x003f, - 0xe844, 0xe845, 0xe846, 0xe847, 0xe848, 0xe849, 0xe84a, 0xe84b, - 0xe84c, 0xe84d, 0xe84e, 0xe84f, 0xe850, 0xe851, 0xe852, 0xe853, - 0xe854, 0xe855, 0xe856, 0xe857, 0xe858, 0xe859, 0xe85a, 0xe85b, - 0xe85c, 0xe85d, 0xe85e, 0xe85f, 0xe860, 0xe861, 0xe862, 0xe863, - 0xe864, 0xe468, 0xe469, 0xe46a, 0xe46b, 0xe46c, 0xe46d, 0xe46e, - 0xe46f, 0xe470, 0xe471, 0xe472, 0xe473, 0xe474, 0xe475, 0xe476, - 0xe477, 0xe478, 0xe479, 0xe47a, 0xe47b, 0xe47c, 0xe47d, 0xe47e, - 0xe47f, 0xe480, 0xe481, 0xe482, 0xe483, 0xe484, 0xe485, 0xe486, - 0xe487, 0xe488, 0xe489, 0xe48a, 0xe48b, 0xe48c, 0xe48d, 0xe48e, - 0xe48f, 0xe490, 0xe491, 0xe492, 0xe493, 0xe494, 0xe495, 0xe496, - 0xe497, 0xe498, 0xe499, 0xe49a, 0xe49b, 0xe49c, 0xe49d, 0xe49e, - 0xe49f, 0xe4a0, 0xe4a1, 0xe4a2, 0xe4a3, 0xe4a4, 0xe4a5, 0xe4a6, - 0xe4a7, 0xe4a8, 0xe4a9, 0xe4aa, 0xe4ab, 0xe4ac, 0xe4ad, 0xe4ae, - 0xe4af, 0xe4b0, 0xe4b1, 0xe4b2, 0xe4b3, 0xe4b4, 0xe4b5, 0xe4b6, - 0xe4b7, 0xe4b8, 0xe4b9, 0xe4ba, 0xe4bb, 0xe4bc, 0xe4bd, 0xe4be, - 0xe4bf, 0xe4c0, 0xe4c1, 0xe4c2, 0xe4c3, 0xe4c4, 0xe4c5, 0x003f -}; - -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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00 -}; - -static const unsigned short uni2cp_low[28928] = -{ - /* 0x0000 .. 0x00ff */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1e9, 0xa1ea, 0xa1e8, 0xa3a4, 0x007c, 0xa1ec, - 0xa1a7, 0x003f, 0x0061, 0x003f, 0x003f, 0x002d, 0x003f, 0xa1a5, - 0xa1e3, 0xa1c0, 0x0032, 0x0033, 0xa1e4, 0xa6cc, 0x003f, 0xa1a4, - 0x003f, 0x0031, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa8a4, 0xa8a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa8a8, 0xa8a6, 0xa8ba, 0x003f, 0xa8ac, 0xa8aa, 0x003f, 0x003f, - 0x0044, 0x003f, 0xa8b0, 0xa8ae, 0x003f, 0x003f, 0x003f, 0xa1c1, - 0x003f, 0xa8b4, 0xa8b2, 0x003f, 0xa8b9, 0x0059, 0x0054, 0x003f, - 0xa8a4, 0xa8a2, 0x0061, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa8a8, 0xa8a6, 0xa8ba, 0x003f, 0xa8ac, 0xa8aa, 0x003f, 0x003f, - 0x0065, 0x003f, 0xa8b0, 0xa8ae, 0x003f, 0x003f, 0x003f, 0xa1c2, - 0x003f, 0xa8b4, 0xa8b2, 0x003f, 0xa8b9, 0x0079, 0x0074, 0x003f, - /* 0x0100 .. 0x01ff */ - 0xa8a1, 0xa8a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa8a5, 0xa8a5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa8a7, 0xa8a7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa8a9, 0xa8a9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa8bd, 0x003f, 0x003f, 0x003f, - 0xa8be, 0x003f, 0x003f, 0x003f, 0xa8ad, 0xa8ad, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa8b1, 0xa8b1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa1ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8a3, 0xa8a3, 0xa8ab, - 0xa8ab, 0xa8af, 0xa8af, 0xa8b3, 0xa8b3, 0xa8b5, 0xa8b5, 0xa8b6, - 0xa8b6, 0xa8b7, 0xa8b7, 0xa8b8, 0xa8b8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0200 .. 0x02ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa8bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa8c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1a6, - 0x003f, 0xa1a5, 0xa840, 0xa841, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa842, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0300 .. 0x03ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa6a1, 0xa6a2, 0xa6a3, 0xa6a4, 0xa6a5, 0xa6a6, 0xa6a7, - 0xa6a8, 0xa6a9, 0xa6aa, 0xa6ab, 0xa6ac, 0xa6ad, 0xa6ae, 0xa6af, - 0xa6b0, 0xa6b1, 0x003f, 0xa6b2, 0xa6b3, 0xa6b4, 0xa6b5, 0xa6b6, - 0xa6b7, 0xa6b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa6c1, 0xa6c2, 0xa6c3, 0xa6c4, 0xa6c5, 0xa6c6, 0xa6c7, - 0xa6c8, 0xa6c9, 0xa6ca, 0xa6cb, 0xa6cc, 0xa6cd, 0xa6ce, 0xa6cf, - 0xa6d0, 0xa6d1, 0x003f, 0xa6d2, 0xa6d3, 0xa6d4, 0xa6d5, 0xa6d6, - 0xa6d7, 0xa6d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0400 .. 0x04ff */ - 0x003f, 0xa7a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa7a1, 0xa7a2, 0xa7a3, 0xa7a4, 0xa7a5, 0xa7a6, 0xa7a8, 0xa7a9, - 0xa7aa, 0xa7ab, 0xa7ac, 0xa7ad, 0xa7ae, 0xa7af, 0xa7b0, 0xa7b1, - 0xa7b2, 0xa7b3, 0xa7b4, 0xa7b5, 0xa7b6, 0xa7b7, 0xa7b8, 0xa7b9, - 0xa7ba, 0xa7bb, 0xa7bc, 0xa7bd, 0xa7be, 0xa7bf, 0xa7c0, 0xa7c1, - 0xa7d1, 0xa7d2, 0xa7d3, 0xa7d4, 0xa7d5, 0xa7d6, 0xa7d8, 0xa7d9, - 0xa7da, 0xa7db, 0xa7dc, 0xa7dd, 0xa7de, 0xa7df, 0xa7e0, 0xa7e1, - 0xa7e2, 0xa7e3, 0xa7e4, 0xa7e5, 0xa7e6, 0xa7e7, 0xa7e8, 0xa7e9, - 0xa7ea, 0xa7eb, 0xa7ec, 0xa7ed, 0xa7ee, 0xa7ef, 0xa7f0, 0xa7f1, - 0x003f, 0xa7d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2000 .. 0x20ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa95c, 0x003f, 0x003f, 0xa843, 0xa1aa, 0xa844, 0xa1ac, 0x003f, - 0xa1ae, 0xa1af, 0x003f, 0x003f, 0xa1b0, 0xa1b1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa845, 0xa1ad, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1eb, 0x003f, 0xa1e4, 0xa1e5, 0x003f, 0xa846, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa1f9, 0x003f, 0x003f, 0xa3fe, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x0080, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2100 .. 0x21ff */ - 0x003f, 0x003f, 0x003f, 0xa1e6, 0x003f, 0xa847, 0x003f, 0x003f, - 0x003f, 0xa848, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ed, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa959, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, 0xa2f7, 0xa2f8, - 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa2a1, 0xa2a2, 0xa2a3, 0xa2a4, 0xa2a5, 0xa2a6, 0xa2a7, 0xa2a8, - 0xa2a9, 0xa2aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1fb, 0xa1fc, 0xa1fa, 0xa1fd, 0x003f, 0x003f, 0xa849, 0xa84a, - 0xa84b, 0xa84c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2200 .. 0x22ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1c7, - 0x003f, 0xa1c6, 0x003f, 0x003f, 0x003f, 0xa84d, 0x003f, 0x003f, - 0xa1e3, 0x003f, 0xa1cc, 0x003f, 0x003f, 0xa1d8, 0xa1de, 0xa84e, - 0xa1cf, 0x003f, 0x003f, 0xa84f, 0x003f, 0xa1ce, 0x003f, 0xa1c4, - 0xa1c5, 0xa1c9, 0xa1c8, 0xa1d2, 0x003f, 0x003f, 0xa1d3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e0, 0xa1df, 0xa1c3, 0xa1cb, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ab, 0xa1d7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1d6, 0x003f, 0x003f, 0x003f, 0xa1d5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa850, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1d9, 0xa1d4, 0x003f, 0x003f, 0xa1dc, 0xa1dd, 0xa851, 0xa852, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1da, 0xa1db, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa892, 0x003f, 0x003f, - 0x003f, 0xa1d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1cd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa853, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2300 .. 0x23ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2400 .. 0x24ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, - 0xa2e1, 0xa2e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, - 0xa2c9, 0xa2ca, 0xa2cb, 0xa2cc, 0xa2cd, 0xa2ce, 0xa2cf, 0xa2d0, - 0xa2d1, 0xa2d2, 0xa2d3, 0xa2d4, 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, - 0xa2b1, 0xa2b2, 0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, - 0xa2b9, 0xa2ba, 0xa2bb, 0xa2bc, 0xa2bd, 0xa2be, 0xa2bf, 0xa2c0, - 0xa2c1, 0xa2c2, 0xa2c3, 0xa2c4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2500 .. 0x25ff */ - 0xa9a4, 0xa9a5, 0xa9a6, 0xa9a7, 0xa9a8, 0xa9a9, 0xa9aa, 0xa9ab, - 0xa9ac, 0xa9ad, 0xa9ae, 0xa9af, 0xa9b0, 0xa9b1, 0xa9b2, 0xa9b3, - 0xa9b4, 0xa9b5, 0xa9b6, 0xa9b7, 0xa9b8, 0xa9b9, 0xa9ba, 0xa9bb, - 0xa9bc, 0xa9bd, 0xa9be, 0xa9bf, 0xa9c0, 0xa9c1, 0xa9c2, 0xa9c3, - 0xa9c4, 0xa9c5, 0xa9c6, 0xa9c7, 0xa9c8, 0xa9c9, 0xa9ca, 0xa9cb, - 0xa9cc, 0xa9cd, 0xa9ce, 0xa9cf, 0xa9d0, 0xa9d1, 0xa9d2, 0xa9d3, - 0xa9d4, 0xa9d5, 0xa9d6, 0xa9d7, 0xa9d8, 0xa9d9, 0xa9da, 0xa9db, - 0xa9dc, 0xa9dd, 0xa9de, 0xa9df, 0xa9e0, 0xa9e1, 0xa9e2, 0xa9e3, - 0xa9e4, 0xa9e5, 0xa9e6, 0xa9e7, 0xa9e8, 0xa9e9, 0xa9ea, 0xa9eb, - 0xa9ec, 0xa9ed, 0xa9ee, 0xa9ef, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa854, 0xa855, 0xa856, 0xa857, 0xa858, 0xa859, 0xa85a, 0xa85b, - 0xa85c, 0xa85d, 0xa85e, 0xa85f, 0xa860, 0xa861, 0xa862, 0xa863, - 0xa864, 0xa865, 0xa866, 0xa867, 0xa868, 0xa869, 0xa86a, 0xa86b, - 0xa86c, 0xa86d, 0xa86e, 0xa86f, 0xa870, 0xa871, 0xa872, 0xa873, - 0xa874, 0xa875, 0xa876, 0xa877, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa878, 0xa879, 0xa87a, 0xa87b, 0xa87c, 0xa87d, 0xa87e, - 0xa880, 0xa881, 0xa882, 0xa883, 0xa884, 0xa885, 0xa886, 0xa887, - 0x003f, 0x003f, 0x003f, 0xa888, 0xa889, 0xa88a, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1f6, 0xa1f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1f8, 0xa1f7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa88b, 0xa88c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f4, 0xa1f3, - 0x003f, 0x003f, 0x003f, 0xa1f0, 0x003f, 0x003f, 0xa1f2, 0xa1f1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa88d, 0xa88e, 0xa88f, 0xa890, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2600 .. 0x26ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ef, 0xa1ee, 0x003f, - 0x003f, 0xa891, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1e2, 0x003f, 0xa1e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3000 .. 0x30ff */ - 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a8, 0x003f, 0xa1a9, 0xa965, 0xa996, - 0xa1b4, 0xa1b5, 0xa1b6, 0xa1b7, 0xa1b8, 0xa1b9, 0xa1ba, 0xa1bb, - 0xa1be, 0xa1bf, 0xa893, 0xa1fe, 0xa1b2, 0xa1b3, 0xa1bc, 0xa1bd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa894, 0xa895, 0x003f, - 0x003f, 0xa940, 0xa941, 0xa942, 0xa943, 0xa944, 0xa945, 0xa946, - 0xa947, 0xa948, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, 0xa4a5, 0xa4a6, 0xa4a7, - 0xa4a8, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4ae, 0xa4af, - 0xa4b0, 0xa4b1, 0xa4b2, 0xa4b3, 0xa4b4, 0xa4b5, 0xa4b6, 0xa4b7, - 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, 0xa4be, 0xa4bf, - 0xa4c0, 0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, 0xa4c5, 0xa4c6, 0xa4c7, - 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, - 0xa4d0, 0xa4d1, 0xa4d2, 0xa4d3, 0xa4d4, 0xa4d5, 0xa4d6, 0xa4d7, - 0xa4d8, 0xa4d9, 0xa4da, 0xa4db, 0xa4dc, 0xa4dd, 0xa4de, 0xa4df, - 0xa4e0, 0xa4e1, 0xa4e2, 0xa4e3, 0xa4e4, 0xa4e5, 0xa4e6, 0xa4e7, - 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ed, 0xa4ee, 0xa4ef, - 0xa4f0, 0xa4f1, 0xa4f2, 0xa4f3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa961, 0xa962, 0xa966, 0xa967, 0x003f, - 0x003f, 0xa5a1, 0xa5a2, 0xa5a3, 0xa5a4, 0xa5a5, 0xa5a6, 0xa5a7, - 0xa5a8, 0xa5a9, 0xa5aa, 0xa5ab, 0xa5ac, 0xa5ad, 0xa5ae, 0xa5af, - 0xa5b0, 0xa5b1, 0xa5b2, 0xa5b3, 0xa5b4, 0xa5b5, 0xa5b6, 0xa5b7, - 0xa5b8, 0xa5b9, 0xa5ba, 0xa5bb, 0xa5bc, 0xa5bd, 0xa5be, 0xa5bf, - 0xa5c0, 0xa5c1, 0xa5c2, 0xa5c3, 0xa5c4, 0xa5c5, 0xa5c6, 0xa5c7, - 0xa5c8, 0xa5c9, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, - 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0xa5d4, 0xa5d5, 0xa5d6, 0xa5d7, - 0xa5d8, 0xa5d9, 0xa5da, 0xa5db, 0xa5dc, 0xa5dd, 0xa5de, 0xa5df, - 0xa5e0, 0xa5e1, 0xa5e2, 0xa5e3, 0xa5e4, 0xa5e5, 0xa5e6, 0xa5e7, - 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ee, 0xa5ef, - 0xa5f0, 0xa5f1, 0xa5f2, 0xa5f3, 0xa5f4, 0xa5f5, 0xa5f6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa960, 0xa963, 0xa964, 0x003f, - /* 0x3100 .. 0x31ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8c5, 0xa8c6, 0xa8c7, - 0xa8c8, 0xa8c9, 0xa8ca, 0xa8cb, 0xa8cc, 0xa8cd, 0xa8ce, 0xa8cf, - 0xa8d0, 0xa8d1, 0xa8d2, 0xa8d3, 0xa8d4, 0xa8d5, 0xa8d6, 0xa8d7, - 0xa8d8, 0xa8d9, 0xa8da, 0xa8db, 0xa8dc, 0xa8dd, 0xa8de, 0xa8df, - 0xa8e0, 0xa8e1, 0xa8e2, 0xa8e3, 0xa8e4, 0xa8e5, 0xa8e6, 0xa8e7, - 0xa8e8, 0xa8e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd2bb, 0xb6fe, 0xc8fd, 0xcbc4, 0xc9cf, 0xd6d0, - 0xcfc2, 0xbcd7, 0xd2d2, 0xb1fb, 0xb6a1, 0xccec, 0xb5d8, 0xc8cb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3200 .. 0x32ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, - 0xa2ed, 0xa2ee, 0xd4c2, 0xbbf0, 0xcbae, 0xc4be, 0xbdf0, 0xcdc1, - 0xc8d5, 0xa95a, 0xd3d0, 0xc9e7, 0xc3fb, 0xccd8, 0xb2c6, 0xd7a3, - 0xc0cd, 0xb4fa, 0xbaf4, 0xd1a7, 0xbce0, 0xc6f3, 0xd7ca, 0xd0ad, - 0xbcc0, 0xd0dd, 0xd7d4, 0xd6c1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd2bb, 0xb6fe, 0xc8fd, 0xcbc4, 0xcee5, 0xc1f9, 0xc6df, 0xb0cb, - 0xbec5, 0xcaae, 0xd4c2, 0xbbf0, 0xcbae, 0xc4be, 0xbdf0, 0xcdc1, - 0xc8d5, 0xd6ea, 0xd3d0, 0xc9e7, 0xc3fb, 0xccd8, 0xb2c6, 0xd7a3, - 0xc0cd, 0xc3d8, 0xc4d0, 0xc5ae, 0xcaca, 0xd3c5, 0x003f, 0xd7a2, - 0xcfee, 0xd0dd, 0xd0b4, 0xa949, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd2bd, 0xd7da, 0xd1a7, 0xbce0, 0xc6f3, 0xd7ca, 0xd0ad, - 0xd2b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3300 .. 0x33ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa94a, 0xa94b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa94c, 0xa94d, 0xa94e, 0x003f, - 0x003f, 0xa94f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa950, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa951, 0x003f, - 0x003f, 0xa952, 0xa953, 0x003f, 0x003f, 0xa954, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x4e00 .. 0x4eff */ - 0xd2bb, 0xb6a1, 0x8140, 0xc6df, 0x8141, 0x8142, 0x8143, 0xcdf2, - 0xd5c9, 0xc8fd, 0xc9cf, 0xcfc2, 0xd8a2, 0xb2bb, 0xd3eb, 0x8144, - 0xd8a4, 0xb3f3, 0x8145, 0xd7a8, 0xc7d2, 0xd8a7, 0xcac0, 0x8146, - 0xc7f0, 0xb1fb, 0xd2b5, 0xb4d4, 0xb6ab, 0xcbbf, 0xd8a9, 0x8147, - 0x8148, 0x8149, 0xb6aa, 0x814a, 0xc1bd, 0xd1cf, 0x814b, 0xc9a5, - 0xd8ad, 0x814c, 0xb8f6, 0xd1be, 0xe3dc, 0xd6d0, 0x814d, 0x814e, - 0xb7e1, 0x814f, 0xb4ae, 0x8150, 0xc1d9, 0x8151, 0xd8bc, 0x8152, - 0xcde8, 0xb5a4, 0xceaa, 0xd6f7, 0x8153, 0xc0f6, 0xbed9, 0xd8af, - 0x8154, 0x8155, 0x8156, 0xc4cb, 0x8157, 0xbec3, 0x8158, 0xd8b1, - 0xc3b4, 0xd2e5, 0x8159, 0xd6ae, 0xceda, 0xd5a7, 0xbaf5, 0xb7a6, - 0xc0d6, 0x815a, 0xc6b9, 0xc5d2, 0xc7c7, 0x815b, 0xb9d4, 0x815c, - 0xb3cb, 0xd2d2, 0x815d, 0x815e, 0xd8bf, 0xbec5, 0xc6f2, 0xd2b2, - 0xcfb0, 0xcfe7, 0x815f, 0x8160, 0x8161, 0x8162, 0xcae9, 0x8163, - 0x8164, 0xd8c0, 0x8165, 0x8166, 0x8167, 0x8168, 0x8169, 0x816a, - 0xc2f2, 0xc2d2, 0x816b, 0xc8e9, 0x816c, 0x816d, 0x816e, 0x816f, - 0x8170, 0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0xc7ac, 0x8176, - 0x8177, 0x8178, 0x8179, 0x817a, 0x817b, 0x817c, 0xc1cb, 0x817d, - 0xd3e8, 0xd5f9, 0x817e, 0xcac2, 0xb6fe, 0xd8a1, 0xd3da, 0xbff7, - 0x8180, 0xd4c6, 0xbba5, 0xd8c1, 0xcee5, 0xbeae, 0x8181, 0x8182, - 0xd8a8, 0x8183, 0xd1c7, 0xd0a9, 0x8184, 0x8185, 0x8186, 0xd8bd, - 0xd9ef, 0xcdf6, 0xbfba, 0x8187, 0xbdbb, 0xbaa5, 0xd2e0, 0xb2fa, - 0xbae0, 0xc4b6, 0x8188, 0xcfed, 0xbea9, 0xcda4, 0xc1c1, 0x8189, - 0x818a, 0x818b, 0xc7d7, 0xd9f1, 0x818c, 0xd9f4, 0x818d, 0x818e, - 0x818f, 0x8190, 0xc8cb, 0xd8e9, 0x8191, 0x8192, 0x8193, 0xd2da, - 0xcab2, 0xc8ca, 0xd8ec, 0xd8ea, 0xd8c6, 0xbdf6, 0xc6cd, 0xb3f0, - 0x8194, 0xd8eb, 0xbdf1, 0xbde9, 0x8195, 0xc8d4, 0xb4d3, 0x8196, - 0x8197, 0xc2d8, 0x8198, 0xb2d6, 0xd7d0, 0xcacb, 0xcbfb, 0xd5cc, - 0xb8b6, 0xcfc9, 0x8199, 0x819a, 0x819b, 0xd9da, 0xd8f0, 0xc7aa, - 0x819c, 0xd8ee, 0x819d, 0xb4fa, 0xc1ee, 0xd2d4, 0x819e, 0x819f, - 0xd8ed, 0x81a0, 0xd2c7, 0xd8ef, 0xc3c7, 0x81a1, 0x81a2, 0x81a3, - 0xd1f6, 0x81a4, 0xd6d9, 0xd8f2, 0x81a5, 0xd8f5, 0xbcfe, 0xbcdb, - 0x81a6, 0x81a7, 0x81a8, 0xc8ce, 0x81a9, 0xb7dd, 0x81aa, 0xb7c2, - /* 0x4f00 .. 0x4fff */ - 0x81ab, 0xc6f3, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, - 0x81b2, 0xd8f8, 0xd2c1, 0x81b3, 0x81b4, 0xcee9, 0xbcbf, 0xb7fc, - 0xb7a5, 0xd0dd, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0xd6da, - 0xd3c5, 0xbbef, 0xbbe1, 0xd8f1, 0x81ba, 0x81bb, 0xc9a1, 0xceb0, - 0xb4ab, 0x81bc, 0xd8f3, 0x81bd, 0xc9cb, 0xd8f6, 0xc2d7, 0xd8f7, - 0x81be, 0x81bf, 0xceb1, 0xd8f9, 0x81c0, 0x81c1, 0x81c2, 0xb2ae, - 0xb9c0, 0x81c3, 0xd9a3, 0x81c4, 0xb0e9, 0x81c5, 0xc1e6, 0x81c6, - 0xc9ec, 0x81c7, 0xcbc5, 0x81c8, 0xcbc6, 0xd9a4, 0x81c9, 0x81ca, - 0x81cb, 0x81cc, 0x81cd, 0xb5e8, 0x81ce, 0x81cf, 0xb5ab, 0x81d0, - 0x81d1, 0x81d2, 0x81d3, 0x81d4, 0x81d5, 0xcebb, 0xb5cd, 0xd7a1, - 0xd7f4, 0xd3d3, 0x81d6, 0xcce5, 0x81d7, 0xbace, 0x81d8, 0xd9a2, - 0xd9dc, 0xd3e0, 0xd8fd, 0xb7f0, 0xd7f7, 0xd8fe, 0xd8fa, 0xd9a1, - 0xc4e3, 0x81d9, 0x81da, 0xd3b6, 0xd8f4, 0xd9dd, 0x81db, 0xd8fb, - 0x81dc, 0xc5e5, 0x81dd, 0x81de, 0xc0d0, 0x81df, 0x81e0, 0xd1f0, - 0xb0db, 0x81e1, 0x81e2, 0xbcd1, 0xd9a6, 0x81e3, 0xd9a5, 0x81e4, - 0x81e5, 0x81e6, 0x81e7, 0xd9ac, 0xd9ae, 0x81e8, 0xd9ab, 0xcab9, - 0x81e9, 0x81ea, 0x81eb, 0xd9a9, 0xd6b6, 0x81ec, 0x81ed, 0x81ee, - 0xb3de, 0xd9a8, 0x81ef, 0xc0fd, 0x81f0, 0xcacc, 0x81f1, 0xd9aa, - 0x81f2, 0xd9a7, 0x81f3, 0x81f4, 0xd9b0, 0x81f5, 0x81f6, 0xb6b1, - 0x81f7, 0x81f8, 0x81f9, 0xb9a9, 0x81fa, 0xd2c0, 0x81fb, 0x81fc, - 0xcfc0, 0x81fd, 0x81fe, 0xc2c2, 0x8240, 0xbdc4, 0xd5ec, 0xb2e0, - 0xc7c8, 0xbfeb, 0xd9ad, 0x8241, 0xd9af, 0x8242, 0xceea, 0xbaee, - 0x8243, 0x8244, 0x8245, 0x8246, 0x8247, 0xc7d6, 0x8248, 0x8249, - 0x824a, 0x824b, 0x824c, 0x824d, 0x824e, 0x824f, 0x8250, 0xb1e3, - 0x8251, 0x8252, 0x8253, 0xb4d9, 0xb6ed, 0xd9b4, 0x8254, 0x8255, - 0x8256, 0x8257, 0xbfa1, 0x8258, 0x8259, 0x825a, 0xd9de, 0xc7ce, - 0xc0fe, 0xd9b8, 0x825b, 0x825c, 0x825d, 0x825e, 0x825f, 0xcbd7, - 0xb7fd, 0x8260, 0xd9b5, 0x8261, 0xd9b7, 0xb1a3, 0xd3e1, 0xd9b9, - 0x8262, 0xd0c5, 0x8263, 0xd9b6, 0x8264, 0x8265, 0xd9b1, 0x8266, - 0xd9b2, 0xc1a9, 0xd9b3, 0x8267, 0x8268, 0xbcf3, 0xd0de, 0xb8a9, - 0x8269, 0xbee3, 0x826a, 0xd9bd, 0x826b, 0x826c, 0x826d, 0x826e, - 0xd9ba, 0x826f, 0xb0b3, 0x8270, 0x8271, 0x8272, 0xd9c2, 0x8273, - /* 0x5000 .. 0x50ff */ - 0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x827a, 0x827b, - 0x827c, 0x827d, 0x827e, 0x8280, 0xd9c4, 0xb1b6, 0x8281, 0xd9bf, - 0x8282, 0x8283, 0xb5b9, 0x8284, 0xbef3, 0x8285, 0x8286, 0x8287, - 0xccc8, 0xbaf2, 0xd2d0, 0x8288, 0xd9c3, 0x8289, 0x828a, 0xbde8, - 0x828b, 0xb3ab, 0x828c, 0x828d, 0x828e, 0xd9c5, 0xbeeb, 0x828f, - 0xd9c6, 0xd9bb, 0xc4df, 0x8290, 0xd9be, 0xd9c1, 0xd9c0, 0x8291, - 0x8292, 0x8293, 0x8294, 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, - 0x829a, 0x829b, 0xd5ae, 0x829c, 0xd6b5, 0x829d, 0xc7e3, 0x829e, - 0x829f, 0x82a0, 0x82a1, 0xd9c8, 0x82a2, 0x82a3, 0x82a4, 0xbcd9, - 0xd9ca, 0x82a5, 0x82a6, 0x82a7, 0xd9bc, 0x82a8, 0xd9cb, 0xc6ab, - 0x82a9, 0x82aa, 0x82ab, 0x82ac, 0x82ad, 0xd9c9, 0x82ae, 0x82af, - 0x82b0, 0x82b1, 0xd7f6, 0x82b2, 0xcda3, 0x82b3, 0x82b4, 0x82b5, - 0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0xbda1, 0x82bb, 0x82bc, - 0x82bd, 0x82be, 0x82bf, 0x82c0, 0xd9cc, 0x82c1, 0x82c2, 0x82c3, - 0x82c4, 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0x82c9, 0xc5bc, 0xcdb5, - 0x82ca, 0x82cb, 0x82cc, 0xd9cd, 0x82cd, 0x82ce, 0xd9c7, 0xb3a5, - 0xbffe, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0xb8b5, 0x82d3, 0x82d4, - 0xc0fc, 0x82d5, 0x82d6, 0x82d7, 0x82d8, 0xb0f8, 0x82d9, 0x82da, - 0x82db, 0x82dc, 0x82dd, 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, - 0x82e3, 0x82e4, 0x82e5, 0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, - 0x82eb, 0x82ec, 0x82ed, 0xb4f6, 0x82ee, 0xd9ce, 0x82ef, 0xd9cf, - 0xb4a2, 0xd9d0, 0x82f0, 0x82f1, 0xb4df, 0x82f2, 0x82f3, 0x82f4, - 0x82f5, 0x82f6, 0xb0c1, 0x82f7, 0x82f8, 0x82f9, 0x82fa, 0x82fb, - 0x82fc, 0x82fd, 0xd9d1, 0xc9b5, 0x82fe, 0x8340, 0x8341, 0x8342, - 0x8343, 0x8344, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 0x834a, - 0x834b, 0x834c, 0x834d, 0x834e, 0x834f, 0x8350, 0x8351, 0xcff1, - 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0xd9d2, 0x8358, - 0x8359, 0x835a, 0xc1c5, 0x835b, 0x835c, 0x835d, 0x835e, 0x835f, - 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0xd9d6, 0xc9ae, - 0x8366, 0x8367, 0x8368, 0x8369, 0xd9d5, 0xd9d4, 0xd9d7, 0x836a, - 0x836b, 0x836c, 0x836d, 0xcbdb, 0x836e, 0xbda9, 0x836f, 0x8370, - 0x8371, 0x8372, 0x8373, 0xc6a7, 0x8374, 0x8375, 0x8376, 0x8377, - /* 0x5100 .. 0x51ff */ - 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d, 0xd9d3, 0xd9d8, - 0x837e, 0x8380, 0x8381, 0xd9d9, 0x8382, 0x8383, 0x8384, 0x8385, - 0x8386, 0x8387, 0xc8e5, 0x8388, 0x8389, 0x838a, 0x838b, 0x838c, - 0x838d, 0x838e, 0x838f, 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, - 0x8395, 0xc0dc, 0x8396, 0x8397, 0x8398, 0x8399, 0x839a, 0x839b, - 0x839c, 0x839d, 0x839e, 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, - 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, - 0x83ac, 0x83ad, 0x83ae, 0x83af, 0x83b0, 0x83b1, 0x83b2, 0xb6f9, - 0xd8a3, 0xd4ca, 0x83b3, 0xd4aa, 0xd0d6, 0xb3e4, 0xd5d7, 0x83b4, - 0xcfc8, 0xb9e2, 0x83b5, 0xbfcb, 0x83b6, 0xc3e2, 0x83b7, 0x83b8, - 0x83b9, 0xb6d2, 0x83ba, 0x83bb, 0xcdc3, 0xd9ee, 0xd9f0, 0x83bc, - 0x83bd, 0x83be, 0xb5b3, 0x83bf, 0xb6b5, 0x83c0, 0x83c1, 0x83c2, - 0x83c3, 0x83c4, 0xbea4, 0x83c5, 0x83c6, 0xc8eb, 0x83c7, 0x83c8, - 0xc8ab, 0x83c9, 0x83ca, 0xb0cb, 0xb9ab, 0xc1f9, 0xd9e2, 0x83cb, - 0xc0bc, 0xb9b2, 0x83cc, 0xb9d8, 0xd0cb, 0xb1f8, 0xc6e4, 0xbedf, - 0xb5e4, 0xd7c8, 0x83cd, 0xd1f8, 0xbce6, 0xcade, 0x83ce, 0x83cf, - 0xbcbd, 0xd9e6, 0xd8e7, 0x83d0, 0x83d1, 0xc4da, 0x83d2, 0x83d3, - 0xb8d4, 0xc8bd, 0x83d4, 0x83d5, 0xb2e1, 0xd4d9, 0x83d6, 0x83d7, - 0x83d8, 0x83d9, 0xc3b0, 0x83da, 0x83db, 0xc3e1, 0xdaa2, 0xc8df, - 0x83dc, 0xd0b4, 0x83dd, 0xbefc, 0xc5a9, 0x83de, 0x83df, 0x83e0, - 0xb9da, 0x83e1, 0xdaa3, 0x83e2, 0xd4a9, 0xdaa4, 0x83e3, 0x83e4, - 0x83e5, 0x83e6, 0x83e7, 0xd9fb, 0xb6ac, 0x83e8, 0x83e9, 0xb7eb, - 0xb1f9, 0xd9fc, 0xb3e5, 0xbef6, 0x83ea, 0xbff6, 0xd2b1, 0xc0e4, - 0x83eb, 0x83ec, 0x83ed, 0xb6b3, 0xd9fe, 0xd9fd, 0x83ee, 0x83ef, - 0xbebb, 0x83f0, 0x83f1, 0x83f2, 0xc6e0, 0x83f3, 0xd7bc, 0xdaa1, - 0x83f4, 0xc1b9, 0x83f5, 0xb5f2, 0xc1e8, 0x83f6, 0x83f7, 0xbcf5, - 0x83f8, 0xb4d5, 0x83f9, 0x83fa, 0x83fb, 0x83fc, 0x83fd, 0x83fe, - 0x8440, 0x8441, 0x8442, 0xc1dd, 0x8443, 0xc4fd, 0x8444, 0x8445, - 0xbcb8, 0xb7b2, 0x8446, 0x8447, 0xb7ef, 0x8448, 0x8449, 0x844a, - 0x844b, 0x844c, 0x844d, 0xd9ec, 0x844e, 0xc6be, 0x844f, 0xbfad, - 0xbbcb, 0x8450, 0x8451, 0xb5ca, 0x8452, 0xdbc9, 0xd0d7, 0x8453, - 0xcdb9, 0xb0bc, 0xb3f6, 0xbbf7, 0xdbca, 0xbaaf, 0x8454, 0xd4e4, - /* 0x5200 .. 0x52ff */ - 0xb5b6, 0xb5f3, 0xd8d6, 0xc8d0, 0x8455, 0x8456, 0xb7d6, 0xc7d0, - 0xd8d7, 0x8457, 0xbfaf, 0x8458, 0x8459, 0xdbbb, 0xd8d8, 0x845a, - 0x845b, 0xd0cc, 0xbbae, 0x845c, 0x845d, 0x845e, 0xebbe, 0xc1d0, - 0xc1f5, 0xd4f2, 0xb8d5, 0xb4b4, 0x845f, 0xb3f5, 0x8460, 0x8461, - 0xc9be, 0x8462, 0x8463, 0x8464, 0xc5d0, 0x8465, 0x8466, 0x8467, - 0xc5d9, 0xc0fb, 0x8468, 0xb1f0, 0x8469, 0xd8d9, 0xb9ce, 0x846a, - 0xb5bd, 0x846b, 0x846c, 0xd8da, 0x846d, 0x846e, 0xd6c6, 0xcba2, - 0xc8af, 0xc9b2, 0xb4cc, 0xbfcc, 0x846f, 0xb9f4, 0x8470, 0xd8db, - 0xd8dc, 0xb6e7, 0xbcc1, 0xccea, 0x8471, 0x8472, 0x8473, 0x8474, - 0x8475, 0x8476, 0xcff7, 0x8477, 0xd8dd, 0xc7b0, 0x8478, 0x8479, - 0xb9d0, 0xbda3, 0x847a, 0x847b, 0xccde, 0x847c, 0xc6ca, 0x847d, - 0x847e, 0x8480, 0x8481, 0x8482, 0xd8e0, 0x8483, 0xd8de, 0x8484, - 0x8485, 0xd8df, 0x8486, 0x8487, 0x8488, 0xb0fe, 0x8489, 0xbee7, - 0x848a, 0xcaa3, 0xbcf4, 0x848b, 0x848c, 0x848d, 0x848e, 0xb8b1, - 0x848f, 0x8490, 0xb8ee, 0x8491, 0x8492, 0x8493, 0x8494, 0x8495, - 0x8496, 0x8497, 0x8498, 0x8499, 0x849a, 0xd8e2, 0x849b, 0xbdcb, - 0x849c, 0xd8e4, 0xd8e3, 0x849d, 0x849e, 0x849f, 0x84a0, 0x84a1, - 0xc5fc, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, 0x84a8, - 0xd8e5, 0x84a9, 0x84aa, 0xd8e6, 0x84ab, 0x84ac, 0x84ad, 0x84ae, - 0x84af, 0x84b0, 0x84b1, 0xc1a6, 0x84b2, 0xc8b0, 0xb0ec, 0xb9a6, - 0xbcd3, 0xcef1, 0xdbbd, 0xc1d3, 0x84b3, 0x84b4, 0x84b5, 0x84b6, - 0xb6af, 0xd6fa, 0xc5ac, 0xbdd9, 0xdbbe, 0xdbbf, 0x84b7, 0x84b8, - 0x84b9, 0xc0f8, 0xbea2, 0xc0cd, 0x84ba, 0x84bb, 0x84bc, 0x84bd, - 0x84be, 0x84bf, 0x84c0, 0x84c1, 0x84c2, 0x84c3, 0xdbc0, 0xcac6, - 0x84c4, 0x84c5, 0x84c6, 0xb2aa, 0x84c7, 0x84c8, 0x84c9, 0xd3c2, - 0x84ca, 0xc3e3, 0x84cb, 0xd1ab, 0x84cc, 0x84cd, 0x84ce, 0x84cf, - 0xdbc2, 0x84d0, 0xc0d5, 0x84d1, 0x84d2, 0x84d3, 0xdbc3, 0x84d4, - 0xbfb1, 0x84d5, 0x84d6, 0x84d7, 0x84d8, 0x84d9, 0x84da, 0xc4bc, - 0x84db, 0x84dc, 0x84dd, 0x84de, 0xc7da, 0x84df, 0x84e0, 0x84e1, - 0x84e2, 0x84e3, 0x84e4, 0x84e5, 0x84e6, 0x84e7, 0x84e8, 0x84e9, - 0xdbc4, 0x84ea, 0x84eb, 0x84ec, 0x84ed, 0x84ee, 0x84ef, 0x84f0, - 0x84f1, 0xd9e8, 0xc9d7, 0x84f2, 0x84f3, 0x84f4, 0xb9b4, 0xcef0, - /* 0x5300 .. 0x53ff */ - 0xd4c8, 0x84f5, 0x84f6, 0x84f7, 0x84f8, 0xb0fc, 0xb4d2, 0x84f9, - 0xd0d9, 0x84fa, 0x84fb, 0x84fc, 0x84fd, 0xd9e9, 0x84fe, 0xdecb, - 0xd9eb, 0x8540, 0x8541, 0x8542, 0x8543, 0xd8b0, 0xbbaf, 0xb1b1, - 0x8544, 0xb3d7, 0xd8ce, 0x8545, 0x8546, 0xd4d1, 0x8547, 0x8548, - 0xbdb3, 0xbfef, 0x8549, 0xcfbb, 0x854a, 0x854b, 0xd8d0, 0x854c, - 0x854d, 0x854e, 0xb7cb, 0x854f, 0x8550, 0x8551, 0xd8d1, 0x8552, - 0x8553, 0x8554, 0x8555, 0x8556, 0x8557, 0x8558, 0x8559, 0x855a, - 0x855b, 0xc6a5, 0xc7f8, 0xd2bd, 0x855c, 0x855d, 0xd8d2, 0xc4e4, - 0x855e, 0xcaae, 0x855f, 0xc7a7, 0x8560, 0xd8a6, 0x8561, 0xc9fd, - 0xcee7, 0xbbdc, 0xb0eb, 0x8562, 0x8563, 0x8564, 0xbbaa, 0xd0ad, - 0x8565, 0xb1b0, 0xd7e4, 0xd7bf, 0x8566, 0xb5a5, 0xc2f4, 0xc4cf, - 0x8567, 0x8568, 0xb2a9, 0x8569, 0xb2b7, 0x856a, 0xb1e5, 0xdfb2, - 0xd5bc, 0xbfa8, 0xc2ac, 0xd8d5, 0xc2b1, 0x856b, 0xd8d4, 0xced4, - 0x856c, 0xdae0, 0x856d, 0xcec0, 0x856e, 0x856f, 0xd8b4, 0xc3ae, - 0xd3a1, 0xcea3, 0x8570, 0xbcb4, 0xc8b4, 0xc2d1, 0x8571, 0xbeed, - 0xd0b6, 0x8572, 0xdae1, 0x8573, 0x8574, 0x8575, 0x8576, 0xc7e4, - 0x8577, 0x8578, 0xb3a7, 0x8579, 0xb6f2, 0xccfc, 0xc0fa, 0x857a, - 0x857b, 0xc0f7, 0x857c, 0xd1b9, 0xd1e1, 0xd8c7, 0x857d, 0x857e, - 0x8580, 0x8581, 0x8582, 0x8583, 0x8584, 0xb2de, 0x8585, 0x8586, - 0xc0e5, 0x8587, 0xbaf1, 0x8588, 0x8589, 0xd8c8, 0x858a, 0xd4ad, - 0x858b, 0x858c, 0xcfe1, 0xd8c9, 0x858d, 0xd8ca, 0xcfc3, 0x858e, - 0xb3f8, 0xbec7, 0x858f, 0x8590, 0x8591, 0x8592, 0xd8cb, 0x8593, - 0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0xdbcc, 0x859a, - 0x859b, 0x859c, 0x859d, 0xc8a5, 0x859e, 0x859f, 0x85a0, 0xcfd8, - 0x85a1, 0xc8fe, 0xb2ce, 0x85a2, 0x85a3, 0x85a4, 0x85a5, 0x85a6, - 0xd3d6, 0xb2e6, 0xbcb0, 0xd3d1, 0xcbab, 0xb7b4, 0x85a7, 0x85a8, - 0x85a9, 0xb7a2, 0x85aa, 0x85ab, 0xcae5, 0x85ac, 0xc8a1, 0xcadc, - 0xb1e4, 0xd0f0, 0x85ad, 0xc5d1, 0x85ae, 0x85af, 0x85b0, 0xdbc5, - 0xb5fe, 0x85b1, 0x85b2, 0xbfda, 0xb9c5, 0xbee4, 0xc1ed, 0x85b3, - 0xdfb6, 0xdfb5, 0xd6bb, 0xbdd0, 0xd5d9, 0xb0c8, 0xb6a3, 0xbfc9, - 0xcca8, 0xdfb3, 0xcab7, 0xd3d2, 0x85b4, 0xd8cf, 0xd2b6, 0xbac5, - 0xcbbe, 0xccbe, 0x85b5, 0xdfb7, 0xb5f0, 0xdfb4, 0x85b6, 0x85b7, - /* 0x5400 .. 0x54ff */ - 0x85b8, 0xd3f5, 0x85b9, 0xb3d4, 0xb8f7, 0x85ba, 0xdfba, 0x85bb, - 0xbacf, 0xbcaa, 0xb5f5, 0x85bc, 0xcdac, 0xc3fb, 0xbaf3, 0xc0f4, - 0xcdc2, 0xcff2, 0xdfb8, 0xcfc5, 0x85bd, 0xc2c0, 0xdfb9, 0xc2f0, - 0x85be, 0x85bf, 0x85c0, 0xbefd, 0x85c1, 0xc1df, 0xcdcc, 0xd2f7, - 0xb7cd, 0xdfc1, 0x85c2, 0xdfc4, 0x85c3, 0x85c4, 0xb7f1, 0xb0c9, - 0xb6d6, 0xb7d4, 0x85c5, 0xbaac, 0xccfd, 0xbfd4, 0xcbb1, 0xc6f4, - 0x85c6, 0xd6a8, 0xdfc5, 0x85c7, 0xcee2, 0xb3b3, 0x85c8, 0x85c9, - 0xcefc, 0xb4b5, 0x85ca, 0xcec7, 0xbaf0, 0x85cb, 0xcee1, 0x85cc, - 0xd1bd, 0x85cd, 0x85ce, 0xdfc0, 0x85cf, 0x85d0, 0xb4f4, 0x85d1, - 0xb3ca, 0x85d2, 0xb8e6, 0xdfbb, 0x85d3, 0x85d4, 0x85d5, 0x85d6, - 0xc4c5, 0x85d7, 0xdfbc, 0xdfbd, 0xdfbe, 0xc5bb, 0xdfbf, 0xdfc2, - 0xd4b1, 0xdfc3, 0x85d8, 0xc7ba, 0xced8, 0x85d9, 0x85da, 0x85db, - 0x85dc, 0x85dd, 0xc4d8, 0x85de, 0xdfca, 0x85df, 0xdfcf, 0x85e0, - 0xd6dc, 0x85e1, 0x85e2, 0x85e3, 0x85e4, 0x85e5, 0x85e6, 0x85e7, - 0x85e8, 0xdfc9, 0xdfda, 0xceb6, 0x85e9, 0xbac7, 0xdfce, 0xdfc8, - 0xc5de, 0x85ea, 0x85eb, 0xc9eb, 0xbaf4, 0xc3fc, 0x85ec, 0x85ed, - 0xbed7, 0x85ee, 0xdfc6, 0x85ef, 0xdfcd, 0x85f0, 0xc5d8, 0x85f1, - 0x85f2, 0x85f3, 0x85f4, 0xd5a6, 0xbacd, 0x85f5, 0xbecc, 0xd3bd, - 0xb8c0, 0x85f6, 0xd6e4, 0x85f7, 0xdfc7, 0xb9be, 0xbfa7, 0x85f8, - 0x85f9, 0xc1fc, 0xdfcb, 0xdfcc, 0x85fa, 0xdfd0, 0x85fb, 0x85fc, - 0x85fd, 0x85fe, 0x8640, 0xdfdb, 0xdfe5, 0x8641, 0xdfd7, 0xdfd6, - 0xd7c9, 0xdfe3, 0xdfe4, 0xe5eb, 0xd2a7, 0xdfd2, 0x8642, 0xbfa9, - 0x8643, 0xd4db, 0x8644, 0xbfc8, 0xdfd4, 0x8645, 0x8646, 0x8647, - 0xcfcc, 0x8648, 0x8649, 0xdfdd, 0x864a, 0xd1ca, 0x864b, 0xdfde, - 0xb0a7, 0xc6b7, 0xdfd3, 0x864c, 0xbae5, 0x864d, 0xb6df, 0xcddb, - 0xb9fe, 0xd4d5, 0x864e, 0x864f, 0xdfdf, 0xcfec, 0xb0a5, 0xdfe7, - 0xdfd1, 0xd1c6, 0xdfd5, 0xdfd8, 0xdfd9, 0xdfdc, 0x8650, 0xbba9, - 0x8651, 0xdfe0, 0xdfe1, 0x8652, 0xdfe2, 0xdfe6, 0xdfe8, 0xd3b4, - 0x8653, 0x8654, 0x8655, 0x8656, 0x8657, 0xb8e7, 0xc5b6, 0xdfea, - 0xc9da, 0xc1a8, 0xc4c4, 0x8658, 0x8659, 0xbfde, 0xcff8, 0x865a, - 0x865b, 0x865c, 0xd5dc, 0xdfee, 0x865d, 0x865e, 0x865f, 0x8660, - 0x8661, 0x8662, 0xb2b8, 0x8663, 0xbadf, 0xdfec, 0x8664, 0xdbc1, - /* 0x5500 .. 0x55ff */ - 0x8665, 0xd1e4, 0x8666, 0x8667, 0x8668, 0x8669, 0xcbf4, 0xb4bd, - 0x866a, 0xb0a6, 0x866b, 0x866c, 0x866d, 0x866e, 0x866f, 0xdff1, - 0xccc6, 0xdff2, 0x8670, 0x8671, 0xdfed, 0x8672, 0x8673, 0x8674, - 0x8675, 0x8676, 0x8677, 0xdfe9, 0x8678, 0x8679, 0x867a, 0x867b, - 0xdfeb, 0x867c, 0xdfef, 0xdff0, 0xbbbd, 0x867d, 0x867e, 0xdff3, - 0x8680, 0x8681, 0xdff4, 0x8682, 0xbba3, 0x8683, 0xcadb, 0xcea8, - 0xe0a7, 0xb3aa, 0x8684, 0xe0a6, 0x8685, 0x8686, 0x8687, 0xe0a1, - 0x8688, 0x8689, 0x868a, 0x868b, 0xdffe, 0x868c, 0xcdd9, 0xdffc, - 0x868d, 0xdffa, 0x868e, 0xbfd0, 0xd7c4, 0x868f, 0xc9cc, 0x8690, - 0x8691, 0xdff8, 0xb0a1, 0x8692, 0x8693, 0x8694, 0x8695, 0x8696, - 0xdffd, 0x8697, 0x8698, 0x8699, 0x869a, 0xdffb, 0xe0a2, 0x869b, - 0x869c, 0x869d, 0x869e, 0x869f, 0xe0a8, 0x86a0, 0x86a1, 0x86a2, - 0x86a3, 0xb7c8, 0x86a4, 0x86a5, 0xc6a1, 0xc9b6, 0xc0b2, 0xdff5, - 0x86a6, 0x86a7, 0xc5be, 0x86a8, 0xd8c4, 0xdff9, 0xc4f6, 0x86a9, - 0x86aa, 0x86ab, 0x86ac, 0x86ad, 0x86ae, 0xe0a3, 0xe0a4, 0xe0a5, - 0xd0a5, 0x86af, 0x86b0, 0xe0b4, 0xcce4, 0x86b1, 0xe0b1, 0x86b2, - 0xbfa6, 0xe0af, 0xceb9, 0xe0ab, 0xc9c6, 0x86b3, 0x86b4, 0xc0ae, - 0xe0ae, 0xbaed, 0xbab0, 0xe0a9, 0x86b5, 0x86b6, 0x86b7, 0xdff6, - 0x86b8, 0xe0b3, 0x86b9, 0x86ba, 0xe0b8, 0x86bb, 0x86bc, 0x86bd, - 0xb4ad, 0xe0b9, 0x86be, 0x86bf, 0xcfb2, 0xbac8, 0x86c0, 0xe0b0, - 0x86c1, 0x86c2, 0x86c3, 0x86c4, 0x86c5, 0x86c6, 0x86c7, 0xd0fa, - 0x86c8, 0x86c9, 0x86ca, 0x86cb, 0x86cc, 0x86cd, 0x86ce, 0x86cf, - 0x86d0, 0xe0ac, 0x86d1, 0xd4fb, 0x86d2, 0xdff7, 0x86d3, 0xc5e7, - 0x86d4, 0xe0ad, 0x86d5, 0xd3f7, 0x86d6, 0xe0b6, 0xe0b7, 0x86d7, - 0x86d8, 0x86d9, 0x86da, 0x86db, 0xe0c4, 0xd0e1, 0x86dc, 0x86dd, - 0x86de, 0xe0bc, 0x86df, 0x86e0, 0xe0c9, 0xe0ca, 0x86e1, 0x86e2, - 0x86e3, 0xe0be, 0xe0aa, 0xc9a4, 0xe0c1, 0x86e4, 0xe0b2, 0x86e5, - 0x86e6, 0x86e7, 0x86e8, 0x86e9, 0xcac8, 0xe0c3, 0x86ea, 0xe0b5, - 0x86eb, 0xcecb, 0x86ec, 0xcbc3, 0xe0cd, 0xe0c6, 0xe0c2, 0x86ed, - 0xe0cb, 0x86ee, 0xe0ba, 0xe0bf, 0xe0c0, 0x86ef, 0x86f0, 0xe0c5, - 0x86f1, 0x86f2, 0xe0c7, 0xe0c8, 0x86f3, 0xe0cc, 0x86f4, 0xe0bb, - 0x86f5, 0x86f6, 0x86f7, 0x86f8, 0x86f9, 0xcbd4, 0xe0d5, 0x86fa, - /* 0x5600 .. 0x56ff */ - 0xe0d6, 0xe0d2, 0x86fb, 0x86fc, 0x86fd, 0x86fe, 0x8740, 0x8741, - 0xe0d0, 0xbcce, 0x8742, 0x8743, 0xe0d1, 0x8744, 0xb8c2, 0xd8c5, - 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, - 0xd0ea, 0x874d, 0x874e, 0xc2ef, 0x874f, 0x8750, 0xe0cf, 0xe0bd, - 0x8751, 0x8752, 0x8753, 0xe0d4, 0xe0d3, 0x8754, 0x8755, 0xe0d7, - 0x8756, 0x8757, 0x8758, 0x8759, 0xe0dc, 0xe0d8, 0x875a, 0x875b, - 0x875c, 0xd6f6, 0xb3b0, 0x875d, 0xd7ec, 0x875e, 0xcbbb, 0x875f, - 0x8760, 0xe0da, 0x8761, 0xcefb, 0x8762, 0x8763, 0x8764, 0xbad9, - 0x8765, 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, 0x876c, - 0x876d, 0x876e, 0x876f, 0x8770, 0xe0e1, 0xe0dd, 0xd2ad, 0x8771, - 0x8772, 0x8773, 0x8774, 0x8775, 0xe0e2, 0x8776, 0x8777, 0xe0db, - 0xe0d9, 0xe0df, 0x8778, 0x8779, 0xe0e0, 0x877a, 0x877b, 0x877c, - 0x877d, 0x877e, 0xe0de, 0x8780, 0xe0e4, 0x8781, 0x8782, 0x8783, - 0xc6f7, 0xd8ac, 0xd4eb, 0xe0e6, 0xcac9, 0x8784, 0x8785, 0x8786, - 0x8787, 0xe0e5, 0x8788, 0x8789, 0x878a, 0x878b, 0xb8c1, 0x878c, - 0x878d, 0x878e, 0x878f, 0xe0e7, 0xe0e8, 0x8790, 0x8791, 0x8792, - 0x8793, 0x8794, 0x8795, 0x8796, 0x8797, 0xe0e9, 0xe0e3, 0x8798, - 0x8799, 0x879a, 0x879b, 0x879c, 0x879d, 0x879e, 0xbabf, 0xcce7, - 0x879f, 0x87a0, 0x87a1, 0xe0ea, 0x87a2, 0x87a3, 0x87a4, 0x87a5, - 0x87a6, 0x87a7, 0x87a8, 0x87a9, 0x87aa, 0x87ab, 0x87ac, 0x87ad, - 0x87ae, 0x87af, 0x87b0, 0xcff9, 0x87b1, 0x87b2, 0x87b3, 0x87b4, - 0x87b5, 0x87b6, 0x87b7, 0x87b8, 0x87b9, 0x87ba, 0x87bb, 0xe0eb, - 0x87bc, 0x87bd, 0x87be, 0x87bf, 0x87c0, 0x87c1, 0x87c2, 0xc8c2, - 0x87c3, 0x87c4, 0x87c5, 0x87c6, 0xbdc0, 0x87c7, 0x87c8, 0x87c9, - 0x87ca, 0x87cb, 0x87cc, 0x87cd, 0x87ce, 0x87cf, 0x87d0, 0x87d1, - 0x87d2, 0x87d3, 0xc4d2, 0x87d4, 0x87d5, 0x87d6, 0x87d7, 0x87d8, - 0x87d9, 0x87da, 0x87db, 0x87dc, 0xe0ec, 0x87dd, 0x87de, 0xe0ed, - 0x87df, 0x87e0, 0xc7f4, 0xcbc4, 0x87e1, 0xe0ee, 0xbbd8, 0xd8b6, - 0xd2f2, 0xe0ef, 0xcdc5, 0x87e2, 0xb6da, 0x87e3, 0x87e4, 0x87e5, - 0x87e6, 0x87e7, 0x87e8, 0xe0f1, 0x87e9, 0xd4b0, 0x87ea, 0x87eb, - 0xc0a7, 0xb4d1, 0x87ec, 0x87ed, 0xcea7, 0xe0f0, 0x87ee, 0x87ef, - 0x87f0, 0xe0f2, 0xb9cc, 0x87f1, 0x87f2, 0xb9fa, 0xcdbc, 0xe0f3, - /* 0x5700 .. 0x57ff */ - 0x87f3, 0x87f4, 0x87f5, 0xc6d4, 0xe0f4, 0x87f6, 0xd4b2, 0x87f7, - 0xc8a6, 0xe0f6, 0xe0f5, 0x87f8, 0x87f9, 0x87fa, 0x87fb, 0x87fc, - 0x87fd, 0x87fe, 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8845, - 0x8846, 0x8847, 0x8848, 0x8849, 0xe0f7, 0x884a, 0x884b, 0xcdc1, - 0x884c, 0x884d, 0x884e, 0xcaa5, 0x884f, 0x8850, 0x8851, 0x8852, - 0xd4da, 0xdbd7, 0xdbd9, 0x8853, 0xdbd8, 0xb9e7, 0xdbdc, 0xdbdd, - 0xb5d8, 0x8854, 0x8855, 0xdbda, 0x8856, 0x8857, 0x8858, 0x8859, - 0x885a, 0xdbdb, 0xb3a1, 0xdbdf, 0x885b, 0x885c, 0xbbf8, 0x885d, - 0xd6b7, 0x885e, 0xdbe0, 0x885f, 0x8860, 0x8861, 0x8862, 0xbef9, - 0x8863, 0x8864, 0xb7bb, 0x8865, 0xdbd0, 0xccae, 0xbfb2, 0xbbb5, - 0xd7f8, 0xbfd3, 0x8866, 0x8867, 0x8868, 0x8869, 0x886a, 0xbfe9, - 0x886b, 0x886c, 0xbce1, 0xccb3, 0xdbde, 0xb0d3, 0xceeb, 0xb7d8, - 0xd7b9, 0xc6c2, 0x886d, 0x886e, 0xc0a4, 0x886f, 0xccb9, 0x8870, - 0xdbe7, 0xdbe1, 0xc6ba, 0xdbe3, 0x8871, 0xdbe8, 0x8872, 0xc5f7, - 0x8873, 0x8874, 0x8875, 0xdbea, 0x8876, 0x8877, 0xdbe9, 0xbfc0, - 0x8878, 0x8879, 0x887a, 0xdbe6, 0xdbe5, 0x887b, 0x887c, 0x887d, - 0x887e, 0x8880, 0xb4b9, 0xc0ac, 0xc2a2, 0xdbe2, 0xdbe4, 0x8881, - 0x8882, 0x8883, 0x8884, 0xd0cd, 0xdbed, 0x8885, 0x8886, 0x8887, - 0x8888, 0x8889, 0xc0dd, 0xdbf2, 0x888a, 0x888b, 0x888c, 0x888d, - 0x888e, 0x888f, 0x8890, 0xb6e2, 0x8891, 0x8892, 0x8893, 0x8894, - 0xdbf3, 0xdbd2, 0xb9b8, 0xd4ab, 0xdbec, 0x8895, 0xbfd1, 0xdbf0, - 0x8896, 0xdbd1, 0x8897, 0xb5e6, 0x8898, 0xdbeb, 0xbfe5, 0x8899, - 0x889a, 0x889b, 0xdbee, 0x889c, 0xdbf1, 0x889d, 0x889e, 0x889f, - 0xdbf9, 0x88a0, 0x88a1, 0x88a2, 0x88a3, 0x88a4, 0x88a5, 0x88a6, - 0x88a7, 0x88a8, 0xb9a1, 0xb0a3, 0x88a9, 0x88aa, 0x88ab, 0x88ac, - 0x88ad, 0x88ae, 0x88af, 0xc2f1, 0x88b0, 0x88b1, 0xb3c7, 0xdbef, - 0x88b2, 0x88b3, 0xdbf8, 0x88b4, 0xc6d2, 0xdbf4, 0x88b5, 0x88b6, - 0xdbf5, 0xdbf7, 0xdbf6, 0x88b7, 0x88b8, 0xdbfe, 0x88b9, 0xd3f2, - 0xb2ba, 0x88ba, 0x88bb, 0x88bc, 0xdbfd, 0x88bd, 0x88be, 0x88bf, - 0x88c0, 0x88c1, 0x88c2, 0x88c3, 0x88c4, 0xdca4, 0x88c5, 0xdbfb, - 0x88c6, 0x88c7, 0x88c8, 0x88c9, 0xdbfa, 0x88ca, 0x88cb, 0x88cc, - 0xdbfc, 0xc5e0, 0xbbf9, 0x88cd, 0x88ce, 0xdca3, 0x88cf, 0x88d0, - /* 0x5800 .. 0x58ff */ - 0xdca5, 0x88d1, 0xccc3, 0x88d2, 0x88d3, 0x88d4, 0xb6d1, 0xddc0, - 0x88d5, 0x88d6, 0x88d7, 0xdca1, 0x88d8, 0xdca2, 0x88d9, 0x88da, - 0x88db, 0xc7b5, 0x88dc, 0x88dd, 0x88de, 0xb6e9, 0x88df, 0x88e0, - 0x88e1, 0xdca7, 0x88e2, 0x88e3, 0x88e4, 0x88e5, 0xdca6, 0x88e6, - 0xdca9, 0xb1a4, 0x88e7, 0x88e8, 0xb5cc, 0x88e9, 0x88ea, 0x88eb, - 0x88ec, 0x88ed, 0xbfb0, 0x88ee, 0x88ef, 0x88f0, 0x88f1, 0x88f2, - 0xd1df, 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0xb6c2, 0x88f7, 0x88f8, - 0x88f9, 0x88fa, 0x88fb, 0x88fc, 0x88fd, 0x88fe, 0x8940, 0x8941, - 0x8942, 0x8943, 0x8944, 0x8945, 0xdca8, 0x8946, 0x8947, 0x8948, - 0x8949, 0x894a, 0x894b, 0x894c, 0xcbfa, 0xebf3, 0x894d, 0x894e, - 0x894f, 0xcbdc, 0x8950, 0x8951, 0xcbfe, 0x8952, 0x8953, 0x8954, - 0xccc1, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, 0xc8fb, 0x895a, - 0x895b, 0x895c, 0x895d, 0x895e, 0x895f, 0xdcaa, 0x8960, 0x8961, - 0x8962, 0x8963, 0x8964, 0xccee, 0xdcab, 0x8965, 0x8966, 0x8967, - 0x8968, 0x8969, 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, - 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0xdbd3, 0x8976, - 0xdcaf, 0xdcac, 0x8977, 0xbeb3, 0x8978, 0xcafb, 0x8979, 0x897a, - 0x897b, 0xdcad, 0x897c, 0x897d, 0x897e, 0x8980, 0x8981, 0x8982, - 0x8983, 0x8984, 0xc9ca, 0xc4b9, 0x8985, 0x8986, 0x8987, 0x8988, - 0x8989, 0xc7bd, 0xdcae, 0x898a, 0x898b, 0x898c, 0xd4f6, 0xd0e6, - 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8992, 0x8993, 0x8994, - 0xc4ab, 0xb6d5, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899a, - 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1, 0x89a2, - 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0xdbd4, 0x89a7, 0x89a8, 0x89a9, - 0x89aa, 0xb1da, 0x89ab, 0x89ac, 0x89ad, 0xdbd5, 0x89ae, 0x89af, - 0x89b0, 0x89b1, 0x89b2, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, - 0x89b8, 0xdbd6, 0x89b9, 0x89ba, 0x89bb, 0xbabe, 0x89bc, 0x89bd, - 0x89be, 0x89bf, 0x89c0, 0x89c1, 0x89c2, 0x89c3, 0x89c4, 0x89c5, - 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0xc8c0, 0x89ca, 0x89cb, 0x89cc, - 0x89cd, 0x89ce, 0x89cf, 0xcabf, 0xc8c9, 0x89d0, 0xd7b3, 0x89d1, - 0xc9f9, 0x89d2, 0x89d3, 0xbfc7, 0x89d4, 0x89d5, 0xbaf8, 0x89d6, - 0x89d7, 0xd2bc, 0x89d8, 0x89d9, 0x89da, 0x89db, 0x89dc, 0x89dd, - /* 0x5900 .. 0x59ff */ - 0x89de, 0x89df, 0xe2ba, 0x89e0, 0xb4a6, 0x89e1, 0x89e2, 0xb1b8, - 0x89e3, 0x89e4, 0x89e5, 0x89e6, 0x89e7, 0xb8b4, 0x89e8, 0xcfc4, - 0x89e9, 0x89ea, 0x89eb, 0x89ec, 0xd9e7, 0xcfa6, 0xcde2, 0x89ed, - 0x89ee, 0xd9ed, 0xb6e0, 0x89ef, 0xd2b9, 0x89f0, 0x89f1, 0xb9bb, - 0x89f2, 0x89f3, 0x89f4, 0x89f5, 0xe2b9, 0xe2b7, 0x89f6, 0xb4f3, - 0x89f7, 0xccec, 0xccab, 0xb7f2, 0x89f8, 0xd8b2, 0xd1eb, 0xbabb, - 0x89f9, 0xcaa7, 0x89fa, 0x89fb, 0xcdb7, 0x89fc, 0x89fd, 0xd2c4, - 0xbfe4, 0xbcd0, 0xb6e1, 0x89fe, 0xdec5, 0x8a40, 0x8a41, 0x8a42, - 0x8a43, 0xdec6, 0xdbbc, 0x8a44, 0xd1d9, 0x8a45, 0x8a46, 0xc6e6, - 0xc4ce, 0xb7ee, 0x8a47, 0xb7dc, 0x8a48, 0x8a49, 0xbffc, 0xd7e0, - 0x8a4a, 0xc6f5, 0x8a4b, 0x8a4c, 0xb1bc, 0xdec8, 0xbdb1, 0xccd7, - 0xdeca, 0x8a4d, 0xdec9, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a52, - 0xb5ec, 0x8a53, 0xc9dd, 0x8a54, 0x8a55, 0xb0c2, 0x8a56, 0x8a57, - 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f, - 0x8a60, 0x8a61, 0x8a62, 0xc5ae, 0xc5ab, 0x8a63, 0xc4cc, 0x8a64, - 0xbce9, 0xcbfd, 0x8a65, 0x8a66, 0x8a67, 0xbac3, 0x8a68, 0x8a69, - 0x8a6a, 0xe5f9, 0xc8e7, 0xe5fa, 0xcdfd, 0x8a6b, 0xd7b1, 0xb8be, - 0xc2e8, 0x8a6c, 0xc8d1, 0x8a6d, 0x8a6e, 0xe5fb, 0x8a6f, 0x8a70, - 0x8a71, 0x8a72, 0xb6ca, 0xbccb, 0x8a73, 0x8a74, 0xd1fd, 0xe6a1, - 0x8a75, 0xc3ee, 0x8a76, 0x8a77, 0x8a78, 0x8a79, 0xe6a4, 0x8a7a, - 0x8a7b, 0x8a7c, 0x8a7d, 0xe5fe, 0xe6a5, 0xcdd7, 0x8a7e, 0x8a80, - 0xb7c1, 0xe5fc, 0xe5fd, 0xe6a3, 0x8a81, 0x8a82, 0xc4dd, 0xe6a8, - 0x8a83, 0x8a84, 0xe6a7, 0x8a85, 0x8a86, 0x8a87, 0x8a88, 0x8a89, - 0x8a8a, 0xc3c3, 0x8a8b, 0xc6de, 0x8a8c, 0x8a8d, 0xe6aa, 0x8a8e, - 0x8a8f, 0x8a90, 0x8a91, 0x8a92, 0x8a93, 0x8a94, 0xc4b7, 0x8a95, - 0x8a96, 0x8a97, 0xe6a2, 0xcabc, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, - 0xbde3, 0xb9c3, 0xe6a6, 0xd0d5, 0xceaf, 0x8a9c, 0x8a9d, 0xe6a9, - 0xe6b0, 0x8a9e, 0xd2a6, 0x8a9f, 0xbdaa, 0xe6ad, 0x8aa0, 0x8aa1, - 0x8aa2, 0x8aa3, 0x8aa4, 0xe6af, 0x8aa5, 0xc0d1, 0x8aa6, 0x8aa7, - 0xd2cc, 0x8aa8, 0x8aa9, 0x8aaa, 0xbca7, 0x8aab, 0x8aac, 0x8aad, - 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4, 0x8ab5, - 0x8ab6, 0xe6b1, 0x8ab7, 0xd2f6, 0x8ab8, 0x8ab9, 0x8aba, 0xd7cb, - /* 0x5a00 .. 0x5aff */ - 0x8abb, 0xcdfe, 0x8abc, 0xcdde, 0xc2a6, 0xe6ab, 0xe6ac, 0xbdbf, - 0xe6ae, 0xe6b3, 0x8abd, 0x8abe, 0xe6b2, 0x8abf, 0x8ac0, 0x8ac1, - 0x8ac2, 0xe6b6, 0x8ac3, 0xe6b8, 0x8ac4, 0x8ac5, 0x8ac6, 0x8ac7, - 0xc4ef, 0x8ac8, 0x8ac9, 0x8aca, 0xc4c8, 0x8acb, 0x8acc, 0xbeea, - 0xc9ef, 0x8acd, 0x8ace, 0xe6b7, 0x8acf, 0xb6f0, 0x8ad0, 0x8ad1, - 0x8ad2, 0xc3e4, 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, - 0x8ad9, 0xd3e9, 0xe6b4, 0x8ada, 0xe6b5, 0x8adb, 0xc8a2, 0x8adc, - 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0xe6bd, 0x8ae1, 0x8ae2, 0x8ae3, - 0xe6b9, 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0xc6c5, 0x8ae9, - 0x8aea, 0xcdf1, 0xe6bb, 0x8aeb, 0x8aec, 0x8aed, 0x8aee, 0x8aef, - 0x8af0, 0x8af1, 0x8af2, 0x8af3, 0x8af4, 0xe6bc, 0x8af5, 0x8af6, - 0x8af7, 0x8af8, 0xbbe9, 0x8af9, 0x8afa, 0x8afb, 0x8afc, 0x8afd, - 0x8afe, 0x8b40, 0xe6be, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0xe6ba, - 0x8b45, 0x8b46, 0xc0b7, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, - 0x8b4c, 0x8b4d, 0x8b4e, 0x8b4f, 0xd3a4, 0xe6bf, 0xc9f4, 0xe6c3, - 0x8b50, 0x8b51, 0xe6c4, 0x8b52, 0x8b53, 0x8b54, 0x8b55, 0xd0f6, - 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, - 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, - 0x8b66, 0x8b67, 0xc3bd, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6c, - 0x8b6d, 0x8b6e, 0xc3c4, 0xe6c2, 0x8b6f, 0x8b70, 0x8b71, 0x8b72, - 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, 0x8b78, 0x8b79, 0x8b7a, - 0x8b7b, 0x8b7c, 0xe6c1, 0x8b7d, 0x8b7e, 0x8b80, 0x8b81, 0x8b82, - 0x8b83, 0x8b84, 0xe6c7, 0xcfb1, 0x8b85, 0xebf4, 0x8b86, 0x8b87, - 0xe6ca, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0xe6c5, 0x8b8d, - 0x8b8e, 0xbcde, 0xc9a9, 0x8b8f, 0x8b90, 0x8b91, 0x8b92, 0x8b93, - 0x8b94, 0xbcb5, 0x8b95, 0x8b96, 0xcfd3, 0x8b97, 0x8b98, 0x8b99, - 0x8b9a, 0x8b9b, 0xe6c8, 0x8b9c, 0xe6c9, 0x8b9d, 0xe6ce, 0x8b9e, - 0xe6d0, 0x8b9f, 0x8ba0, 0x8ba1, 0xe6d1, 0x8ba2, 0x8ba3, 0x8ba4, - 0xe6cb, 0xb5d5, 0x8ba5, 0xe6cc, 0x8ba6, 0x8ba7, 0xe6cf, 0x8ba8, - 0x8ba9, 0xc4db, 0x8baa, 0xe6c6, 0x8bab, 0x8bac, 0x8bad, 0x8bae, - 0x8baf, 0xe6cd, 0x8bb0, 0x8bb1, 0x8bb2, 0x8bb3, 0x8bb4, 0x8bb5, - 0x8bb6, 0x8bb7, 0x8bb8, 0x8bb9, 0x8bba, 0x8bbb, 0x8bbc, 0x8bbd, - /* 0x5b00 .. 0x5bff */ - 0x8bbe, 0x8bbf, 0x8bc0, 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, - 0x8bc6, 0xe6d2, 0x8bc7, 0x8bc8, 0x8bc9, 0x8bca, 0x8bcb, 0x8bcc, - 0x8bcd, 0x8bce, 0x8bcf, 0x8bd0, 0x8bd1, 0x8bd2, 0xe6d4, 0xe6d3, - 0x8bd3, 0x8bd4, 0x8bd5, 0x8bd6, 0x8bd7, 0x8bd8, 0x8bd9, 0x8bda, - 0x8bdb, 0x8bdc, 0x8bdd, 0x8bde, 0x8bdf, 0x8be0, 0x8be1, 0x8be2, - 0x8be3, 0x8be4, 0x8be5, 0x8be6, 0x8be7, 0x8be8, 0x8be9, 0x8bea, - 0x8beb, 0x8bec, 0xe6d5, 0x8bed, 0xd9f8, 0x8bee, 0x8bef, 0xe6d6, - 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3, 0x8bf4, 0x8bf5, 0x8bf6, 0x8bf7, - 0xe6d7, 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb, 0x8bfc, 0x8bfd, 0x8bfe, - 0x8c40, 0x8c41, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c46, 0x8c47, - 0xd7d3, 0xe6dd, 0x8c48, 0xe6de, 0xbfd7, 0xd4d0, 0x8c49, 0xd7d6, - 0xb4e6, 0xcbef, 0xe6da, 0xd8c3, 0xd7ce, 0xd0a2, 0x8c4a, 0xc3cf, - 0x8c4b, 0x8c4c, 0xe6df, 0xbcbe, 0xb9c2, 0xe6db, 0xd1a7, 0x8c4d, - 0x8c4e, 0xbaa2, 0xc2cf, 0x8c4f, 0xd8ab, 0x8c50, 0x8c51, 0x8c52, - 0xcaeb, 0xe5ee, 0x8c53, 0xe6dc, 0x8c54, 0xb7f5, 0x8c55, 0x8c56, - 0x8c57, 0x8c58, 0xc8e6, 0x8c59, 0x8c5a, 0xc4f5, 0x8c5b, 0x8c5c, - 0xe5b2, 0xc4fe, 0x8c5d, 0xcbfc, 0xe5b3, 0xd5ac, 0x8c5e, 0xd3ee, - 0xcad8, 0xb0b2, 0x8c5f, 0xcbce, 0xcdea, 0x8c60, 0x8c61, 0xbaea, - 0x8c62, 0x8c63, 0x8c64, 0xe5b5, 0x8c65, 0xe5b4, 0x8c66, 0xd7da, - 0xb9d9, 0xd6e6, 0xb6a8, 0xcdf0, 0xd2cb, 0xb1a6, 0xcab5, 0x8c67, - 0xb3e8, 0xc9f3, 0xbfcd, 0xd0fb, 0xcad2, 0xe5b6, 0xbbc2, 0x8c68, - 0x8c69, 0x8c6a, 0xcfdc, 0xb9ac, 0x8c6b, 0x8c6c, 0x8c6d, 0x8c6e, - 0xd4d7, 0x8c6f, 0x8c70, 0xbaa6, 0xd1e7, 0xcffc, 0xbcd2, 0x8c71, - 0xe5b7, 0xc8dd, 0x8c72, 0x8c73, 0x8c74, 0xbfed, 0xb1f6, 0xcbde, - 0x8c75, 0x8c76, 0xbcc5, 0x8c77, 0xbcc4, 0xd2fa, 0xc3dc, 0xbfdc, - 0x8c78, 0x8c79, 0x8c7a, 0x8c7b, 0xb8bb, 0x8c7c, 0x8c7d, 0x8c7e, - 0xc3c2, 0x8c80, 0xbaae, 0xd4a2, 0x8c81, 0x8c82, 0x8c83, 0x8c84, - 0x8c85, 0x8c86, 0x8c87, 0x8c88, 0x8c89, 0xc7de, 0xc4af, 0xb2ec, - 0x8c8a, 0xb9d1, 0x8c8b, 0x8c8c, 0xe5bb, 0xc1c8, 0x8c8d, 0x8c8e, - 0xd5af, 0x8c8f, 0x8c90, 0x8c91, 0x8c92, 0x8c93, 0xe5bc, 0x8c94, - 0xe5be, 0x8c95, 0x8c96, 0x8c97, 0x8c98, 0x8c99, 0x8c9a, 0x8c9b, - 0xb4e7, 0xb6d4, 0xcbc2, 0xd1b0, 0xb5bc, 0x8c9c, 0x8c9d, 0xcad9, - /* 0x5c00 .. 0x5cff */ - 0x8c9e, 0xb7e2, 0x8c9f, 0x8ca0, 0xc9e4, 0x8ca1, 0xbdab, 0x8ca2, - 0x8ca3, 0xcebe, 0xd7f0, 0x8ca4, 0x8ca5, 0x8ca6, 0x8ca7, 0xd0a1, - 0x8ca8, 0xc9d9, 0x8ca9, 0x8caa, 0xb6fb, 0xe6d8, 0xbce2, 0x8cab, - 0xb3be, 0x8cac, 0xc9d0, 0x8cad, 0xe6d9, 0xb3a2, 0x8cae, 0x8caf, - 0x8cb0, 0x8cb1, 0xdecc, 0x8cb2, 0xd3c8, 0xdecd, 0x8cb3, 0xd2a2, - 0x8cb4, 0x8cb5, 0x8cb6, 0x8cb7, 0xdece, 0x8cb8, 0x8cb9, 0x8cba, - 0x8cbb, 0xbecd, 0x8cbc, 0x8cbd, 0xdecf, 0x8cbe, 0x8cbf, 0x8cc0, - 0xcaac, 0xd2fc, 0xb3df, 0xe5ea, 0xc4e1, 0xbea1, 0xceb2, 0xc4f2, - 0xbed6, 0xc6a8, 0xb2e3, 0x8cc1, 0x8cc2, 0xbed3, 0x8cc3, 0x8cc4, - 0xc7fc, 0xcceb, 0xbdec, 0xcedd, 0x8cc5, 0x8cc6, 0xcaba, 0xc6c1, - 0xe5ec, 0xd0bc, 0x8cc7, 0x8cc8, 0x8cc9, 0xd5b9, 0x8cca, 0x8ccb, - 0x8ccc, 0xe5ed, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0, 0xcaf4, 0x8cd1, - 0xcdc0, 0xc2c5, 0x8cd2, 0xe5ef, 0x8cd3, 0xc2c4, 0xe5f0, 0x8cd4, - 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, 0xe5f8, 0xcdcd, - 0x8cdb, 0xc9bd, 0x8cdc, 0x8cdd, 0x8cde, 0x8cdf, 0x8ce0, 0x8ce1, - 0x8ce2, 0xd2d9, 0xe1a8, 0x8ce3, 0x8ce4, 0x8ce5, 0x8ce6, 0xd3ec, - 0x8ce7, 0xcbea, 0xc6f1, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, - 0xe1ac, 0x8ced, 0x8cee, 0x8cef, 0xe1a7, 0xe1a9, 0x8cf0, 0x8cf1, - 0xe1aa, 0xe1af, 0x8cf2, 0x8cf3, 0xb2ed, 0x8cf4, 0xe1ab, 0xb8da, - 0xe1ad, 0xe1ae, 0xe1b0, 0xb5ba, 0xe1b1, 0x8cf5, 0x8cf6, 0x8cf7, - 0x8cf8, 0x8cf9, 0xe1b3, 0xe1b8, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, - 0x8cfe, 0xd1d2, 0x8d40, 0xe1b6, 0xe1b5, 0xc1eb, 0x8d41, 0x8d42, - 0x8d43, 0xe1b7, 0x8d44, 0xd4c0, 0x8d45, 0xe1b2, 0x8d46, 0xe1ba, - 0xb0b6, 0x8d47, 0x8d48, 0x8d49, 0x8d4a, 0xe1b4, 0x8d4b, 0xbff9, - 0x8d4c, 0xe1b9, 0x8d4d, 0x8d4e, 0xe1bb, 0x8d4f, 0x8d50, 0x8d51, - 0x8d52, 0x8d53, 0x8d54, 0xe1be, 0x8d55, 0x8d56, 0x8d57, 0x8d58, - 0x8d59, 0x8d5a, 0xe1bc, 0x8d5b, 0x8d5c, 0x8d5d, 0x8d5e, 0x8d5f, - 0x8d60, 0xd6c5, 0x8d61, 0x8d62, 0x8d63, 0x8d64, 0x8d65, 0x8d66, - 0x8d67, 0xcfbf, 0x8d68, 0x8d69, 0xe1bd, 0xe1bf, 0xc2cd, 0x8d6a, - 0xb6eb, 0x8d6b, 0xd3f8, 0x8d6c, 0x8d6d, 0xc7cd, 0x8d6e, 0x8d6f, - 0xb7e5, 0x8d70, 0x8d71, 0x8d72, 0x8d73, 0x8d74, 0x8d75, 0x8d76, - 0x8d77, 0x8d78, 0x8d79, 0xbefe, 0x8d7a, 0x8d7b, 0x8d7c, 0x8d7d, - /* 0x5d00 .. 0x5dff */ - 0x8d7e, 0x8d80, 0xe1c0, 0xe1c1, 0x8d81, 0x8d82, 0xe1c7, 0xb3e7, - 0x8d83, 0x8d84, 0x8d85, 0x8d86, 0x8d87, 0x8d88, 0xc6e9, 0x8d89, - 0x8d8a, 0x8d8b, 0x8d8c, 0x8d8d, 0xb4de, 0x8d8e, 0xd1c2, 0x8d8f, - 0x8d90, 0x8d91, 0x8d92, 0xe1c8, 0x8d93, 0x8d94, 0xe1c6, 0x8d95, - 0x8d96, 0x8d97, 0x8d98, 0x8d99, 0xe1c5, 0x8d9a, 0xe1c3, 0xe1c2, - 0x8d9b, 0xb1c0, 0x8d9c, 0x8d9d, 0x8d9e, 0xd5b8, 0xe1c4, 0x8d9f, - 0x8da0, 0x8da1, 0x8da2, 0x8da3, 0xe1cb, 0x8da4, 0x8da5, 0x8da6, - 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0x8dab, 0xe1cc, 0xe1ca, 0x8dac, - 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db1, 0x8db2, 0x8db3, 0xeffa, - 0x8db4, 0x8db5, 0xe1d3, 0xe1d2, 0xc7b6, 0x8db6, 0x8db7, 0x8db8, - 0x8db9, 0x8dba, 0x8dbb, 0x8dbc, 0x8dbd, 0x8dbe, 0x8dbf, 0x8dc0, - 0xe1c9, 0x8dc1, 0x8dc2, 0xe1ce, 0x8dc3, 0xe1d0, 0x8dc4, 0x8dc5, - 0x8dc6, 0x8dc7, 0x8dc8, 0x8dc9, 0x8dca, 0x8dcb, 0x8dcc, 0x8dcd, - 0x8dce, 0xe1d4, 0x8dcf, 0xe1d1, 0xe1cd, 0x8dd0, 0x8dd1, 0xe1cf, - 0x8dd2, 0x8dd3, 0x8dd4, 0x8dd5, 0xe1d5, 0x8dd6, 0x8dd7, 0x8dd8, - 0x8dd9, 0x8dda, 0x8ddb, 0x8ddc, 0x8ddd, 0x8dde, 0x8ddf, 0x8de0, - 0x8de1, 0x8de2, 0xe1d6, 0x8de3, 0x8de4, 0x8de5, 0x8de6, 0x8de7, - 0x8de8, 0x8de9, 0x8dea, 0x8deb, 0x8dec, 0x8ded, 0x8dee, 0x8def, - 0x8df0, 0x8df1, 0x8df2, 0x8df3, 0x8df4, 0x8df5, 0x8df6, 0x8df7, - 0x8df8, 0xe1d7, 0x8df9, 0x8dfa, 0x8dfb, 0xe1d8, 0x8dfc, 0x8dfd, - 0x8dfe, 0x8e40, 0x8e41, 0x8e42, 0x8e43, 0x8e44, 0x8e45, 0x8e46, - 0x8e47, 0x8e48, 0x8e49, 0x8e4a, 0x8e4b, 0x8e4c, 0x8e4d, 0x8e4e, - 0x8e4f, 0x8e50, 0x8e51, 0x8e52, 0x8e53, 0x8e54, 0x8e55, 0xe1da, - 0x8e56, 0x8e57, 0x8e58, 0x8e59, 0x8e5a, 0x8e5b, 0x8e5c, 0x8e5d, - 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0xe1db, 0x8e63, 0x8e64, - 0x8e65, 0x8e66, 0x8e67, 0x8e68, 0x8e69, 0xcea1, 0x8e6a, 0x8e6b, - 0x8e6c, 0x8e6d, 0x8e6e, 0x8e6f, 0x8e70, 0x8e71, 0x8e72, 0x8e73, - 0x8e74, 0x8e75, 0x8e76, 0xe7dd, 0x8e77, 0xb4a8, 0xd6dd, 0x8e78, - 0x8e79, 0xd1b2, 0xb3b2, 0x8e7a, 0x8e7b, 0xb9a4, 0xd7f3, 0xc7c9, - 0xbede, 0xb9ae, 0x8e7c, 0xced7, 0x8e7d, 0x8e7e, 0xb2ee, 0xdbcf, - 0x8e80, 0xbcba, 0xd2d1, 0xcbc8, 0xb0cd, 0x8e81, 0x8e82, 0xcfef, - 0x8e83, 0x8e84, 0x8e85, 0x8e86, 0x8e87, 0xd9e3, 0xbded, 0x8e88, - /* 0x5e00 .. 0x5eff */ - 0x8e89, 0xb1d2, 0xcad0, 0xb2bc, 0x8e8a, 0xcba7, 0xb7ab, 0x8e8b, - 0xcaa6, 0x8e8c, 0x8e8d, 0x8e8e, 0xcfa3, 0x8e8f, 0x8e90, 0xe0f8, - 0xd5ca, 0xe0fb, 0x8e91, 0x8e92, 0xe0fa, 0xc5c1, 0xccfb, 0x8e93, - 0xc1b1, 0xe0f9, 0xd6e3, 0xb2af, 0xd6c4, 0xb5db, 0x8e94, 0x8e95, - 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0xb4f8, 0xd6a1, - 0x8e9c, 0x8e9d, 0x8e9e, 0x8e9f, 0x8ea0, 0xcfaf, 0xb0ef, 0x8ea1, - 0x8ea2, 0xe0fc, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6, 0x8ea7, 0xe1a1, - 0xb3a3, 0x8ea8, 0x8ea9, 0xe0fd, 0xe0fe, 0xc3b1, 0x8eaa, 0x8eab, - 0x8eac, 0x8ead, 0xc3dd, 0x8eae, 0xe1a2, 0xb7f9, 0x8eaf, 0x8eb0, - 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4, 0xbbcf, 0x8eb5, 0x8eb6, 0x8eb7, - 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0xe1a3, 0xc4bb, 0x8ebc, 0x8ebd, - 0x8ebe, 0x8ebf, 0x8ec0, 0xe1a4, 0x8ec1, 0x8ec2, 0xe1a5, 0x8ec3, - 0x8ec4, 0xe1a6, 0xb4b1, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, - 0x8eca, 0x8ecb, 0x8ecc, 0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, 0x8ed1, - 0x8ed2, 0x8ed3, 0xb8c9, 0xc6bd, 0xc4ea, 0x8ed4, 0xb2a2, 0x8ed5, - 0xd0d2, 0x8ed6, 0xe7db, 0xbbc3, 0xd3d7, 0xd3c4, 0x8ed7, 0xb9e3, - 0xe2cf, 0x8ed8, 0x8ed9, 0x8eda, 0xd7af, 0x8edb, 0xc7ec, 0xb1d3, - 0x8edc, 0x8edd, 0xb4b2, 0xe2d1, 0x8ede, 0x8edf, 0x8ee0, 0xd0f2, - 0xc2ae, 0xe2d0, 0x8ee1, 0xbfe2, 0xd3a6, 0xb5d7, 0xe2d2, 0xb5ea, - 0x8ee2, 0xc3ed, 0xb8fd, 0x8ee3, 0xb8ae, 0x8ee4, 0xc5d3, 0xb7cf, - 0xe2d4, 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0xe2d3, 0xb6c8, 0xd7f9, - 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, 0x8eed, 0xcda5, 0x8eee, 0x8eef, - 0x8ef0, 0x8ef1, 0x8ef2, 0xe2d8, 0x8ef3, 0xe2d6, 0xcafc, 0xbfb5, - 0xd3b9, 0xe2d5, 0x8ef4, 0x8ef5, 0x8ef6, 0x8ef7, 0xe2d7, 0x8ef8, - 0x8ef9, 0x8efa, 0x8efb, 0x8efc, 0x8efd, 0x8efe, 0x8f40, 0x8f41, - 0x8f42, 0xc1ae, 0xc0c8, 0x8f43, 0x8f44, 0x8f45, 0x8f46, 0x8f47, - 0x8f48, 0xe2db, 0xe2da, 0xc0aa, 0x8f49, 0x8f4a, 0xc1ce, 0x8f4b, - 0x8f4c, 0x8f4d, 0x8f4e, 0xe2dc, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, - 0x8f53, 0x8f54, 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, - 0xe2dd, 0x8f5b, 0xe2de, 0x8f5c, 0x8f5d, 0x8f5e, 0x8f5f, 0x8f60, - 0x8f61, 0x8f62, 0x8f63, 0x8f64, 0xdbc8, 0x8f65, 0xd1d3, 0xcda2, - 0x8f66, 0x8f67, 0xbda8, 0x8f68, 0x8f69, 0x8f6a, 0xdec3, 0xd8a5, - /* 0x5f00 .. 0x5fff */ - 0xbfaa, 0xdbcd, 0xd2ec, 0xc6fa, 0xc5aa, 0x8f6b, 0x8f6c, 0x8f6d, - 0xdec4, 0x8f6e, 0xb1d7, 0xdfae, 0x8f6f, 0x8f70, 0x8f71, 0xcabd, - 0x8f72, 0xdfb1, 0x8f73, 0xb9ad, 0x8f74, 0xd2fd, 0x8f75, 0xb8a5, - 0xbaeb, 0x8f76, 0x8f77, 0xb3da, 0x8f78, 0x8f79, 0x8f7a, 0xb5dc, - 0xd5c5, 0x8f7b, 0x8f7c, 0x8f7d, 0x8f7e, 0xc3d6, 0xcfd2, 0xbba1, - 0x8f80, 0xe5f3, 0xe5f2, 0x8f81, 0x8f82, 0xe5f4, 0x8f83, 0xcde4, - 0x8f84, 0xc8f5, 0x8f85, 0x8f86, 0x8f87, 0x8f88, 0x8f89, 0x8f8a, - 0x8f8b, 0xb5af, 0xc7bf, 0x8f8c, 0xe5f6, 0x8f8d, 0x8f8e, 0x8f8f, - 0xecb0, 0x8f90, 0x8f91, 0x8f92, 0x8f93, 0x8f94, 0x8f95, 0x8f96, - 0x8f97, 0x8f98, 0x8f99, 0x8f9a, 0x8f9b, 0x8f9c, 0x8f9d, 0x8f9e, - 0xe5e6, 0x8f9f, 0xb9e9, 0xb5b1, 0x8fa0, 0xc2bc, 0xe5e8, 0xe5e7, - 0xe5e9, 0x8fa1, 0x8fa2, 0x8fa3, 0x8fa4, 0xd2cd, 0x8fa5, 0x8fa6, - 0x8fa7, 0xe1ea, 0xd0ce, 0x8fa8, 0xcdae, 0x8fa9, 0xd1e5, 0x8faa, - 0x8fab, 0xb2ca, 0xb1eb, 0x8fac, 0xb1f2, 0xc5ed, 0x8fad, 0x8fae, - 0xd5c3, 0xd3b0, 0x8faf, 0xe1dc, 0x8fb0, 0x8fb1, 0x8fb2, 0xe1dd, - 0x8fb3, 0xd2db, 0x8fb4, 0xb3b9, 0xb1cb, 0x8fb5, 0x8fb6, 0x8fb7, - 0xcdf9, 0xd5f7, 0xe1de, 0x8fb8, 0xbeb6, 0xb4fd, 0x8fb9, 0xe1df, - 0xbadc, 0xe1e0, 0xbbb2, 0xc2c9, 0xe1e1, 0x8fba, 0x8fbb, 0x8fbc, - 0xd0ec, 0x8fbd, 0xcdbd, 0x8fbe, 0x8fbf, 0xe1e2, 0x8fc0, 0xb5c3, - 0xc5c7, 0xe1e3, 0x8fc1, 0x8fc2, 0xe1e4, 0x8fc3, 0x8fc4, 0x8fc5, - 0x8fc6, 0xd3f9, 0x8fc7, 0x8fc8, 0x8fc9, 0x8fca, 0x8fcb, 0x8fcc, - 0xe1e5, 0x8fcd, 0xd1ad, 0x8fce, 0x8fcf, 0xe1e6, 0xcea2, 0x8fd0, - 0x8fd1, 0x8fd2, 0x8fd3, 0x8fd4, 0x8fd5, 0xe1e7, 0x8fd6, 0xb5c2, - 0x8fd7, 0x8fd8, 0x8fd9, 0x8fda, 0xe1e8, 0xbbd5, 0x8fdb, 0x8fdc, - 0x8fdd, 0x8fde, 0x8fdf, 0xd0c4, 0xe2e0, 0xb1d8, 0xd2e4, 0x8fe0, - 0x8fe1, 0xe2e1, 0x8fe2, 0x8fe3, 0xbcc9, 0xc8cc, 0x8fe4, 0xe2e3, - 0xecfe, 0xecfd, 0xdfaf, 0x8fe5, 0x8fe6, 0x8fe7, 0xe2e2, 0xd6be, - 0xcdfc, 0xc3a6, 0x8fe8, 0x8fe9, 0x8fea, 0xe3c3, 0x8feb, 0x8fec, - 0xd6d2, 0xe2e7, 0x8fed, 0x8fee, 0xe2e8, 0x8fef, 0x8ff0, 0xd3c7, - 0x8ff1, 0x8ff2, 0xe2ec, 0xbfec, 0x8ff3, 0xe2ed, 0xe2e5, 0x8ff4, - 0x8ff5, 0xb3c0, 0x8ff6, 0x8ff7, 0x8ff8, 0xc4ee, 0x8ff9, 0x8ffa, - 0xe2ee, 0x8ffb, 0x8ffc, 0xd0c3, 0x8ffd, 0xbaf6, 0xe2e9, 0xb7de, - /* 0x6000 .. 0x60ff */ - 0xbbb3, 0xccac, 0xcbcb, 0xe2e4, 0xe2e6, 0xe2ea, 0xe2eb, 0x8ffe, - 0x9040, 0x9041, 0xe2f7, 0x9042, 0x9043, 0xe2f4, 0xd4f5, 0xe2f3, - 0x9044, 0x9045, 0xc5ad, 0x9046, 0xd5fa, 0xc5c2, 0xb2c0, 0x9047, - 0x9048, 0xe2ef, 0x9049, 0xe2f2, 0xc1af, 0xcbbc, 0x904a, 0x904b, - 0xb5a1, 0xe2f9, 0x904c, 0x904d, 0x904e, 0xbcb1, 0xe2f1, 0xd0d4, - 0xd4b9, 0xe2f5, 0xb9d6, 0xe2f6, 0x904f, 0x9050, 0x9051, 0xc7d3, - 0x9052, 0x9053, 0x9054, 0x9055, 0x9056, 0xe2f0, 0x9057, 0x9058, - 0x9059, 0x905a, 0x905b, 0xd7dc, 0xeda1, 0x905c, 0x905d, 0xe2f8, - 0x905e, 0xeda5, 0xe2fe, 0xcad1, 0x905f, 0x9060, 0x9061, 0x9062, - 0x9063, 0x9064, 0x9065, 0xc1b5, 0x9066, 0xbbd0, 0x9067, 0x9068, - 0xbfd6, 0x9069, 0xbae3, 0x906a, 0x906b, 0xcba1, 0x906c, 0x906d, - 0x906e, 0xeda6, 0xeda3, 0x906f, 0x9070, 0xeda2, 0x9071, 0x9072, - 0x9073, 0x9074, 0xbbd6, 0xeda7, 0xd0f4, 0x9075, 0x9076, 0xeda4, - 0xbade, 0xb6f7, 0xe3a1, 0xb6b2, 0xccf1, 0xb9a7, 0x9077, 0xcfa2, - 0xc7a1, 0x9078, 0x9079, 0xbfd2, 0x907a, 0x907b, 0xb6f1, 0x907c, - 0xe2fa, 0xe2fb, 0xe2fd, 0xe2fc, 0xc4d5, 0xe3a2, 0x907d, 0xd3c1, - 0x907e, 0x9080, 0x9081, 0xe3a7, 0xc7c4, 0x9082, 0x9083, 0x9084, - 0x9085, 0xcfa4, 0x9086, 0x9087, 0xe3a9, 0xbab7, 0x9088, 0x9089, - 0x908a, 0x908b, 0xe3a8, 0x908c, 0xbbda, 0x908d, 0xe3a3, 0x908e, - 0x908f, 0x9090, 0xe3a4, 0xe3aa, 0x9091, 0xe3a6, 0x9092, 0xcef2, - 0xd3c6, 0x9093, 0x9094, 0xbbbc, 0x9095, 0x9096, 0xd4c3, 0x9097, - 0xc4fa, 0x9098, 0x9099, 0xeda8, 0xd0fc, 0xe3a5, 0x909a, 0xc3f5, - 0x909b, 0xe3ad, 0xb1af, 0x909c, 0xe3b2, 0x909d, 0x909e, 0x909f, - 0xbcc2, 0x90a0, 0x90a1, 0xe3ac, 0xb5bf, 0x90a2, 0x90a3, 0x90a4, - 0x90a5, 0x90a6, 0x90a7, 0x90a8, 0x90a9, 0xc7e9, 0xe3b0, 0x90aa, - 0x90ab, 0x90ac, 0xbeaa, 0xcdef, 0x90ad, 0x90ae, 0x90af, 0x90b0, - 0x90b1, 0xbbf3, 0x90b2, 0x90b3, 0x90b4, 0xcce8, 0x90b5, 0x90b6, - 0xe3af, 0x90b7, 0xe3b1, 0x90b8, 0xcfa7, 0xe3ae, 0x90b9, 0xcea9, - 0xbbdd, 0x90ba, 0x90bb, 0x90bc, 0x90bd, 0x90be, 0xb5eb, 0xbee5, - 0xb2d2, 0xb3cd, 0x90bf, 0xb1b9, 0xe3ab, 0xb2d1, 0xb5ac, 0xb9df, - 0xb6e8, 0x90c0, 0x90c1, 0xcfeb, 0xe3b7, 0x90c2, 0xbbcc, 0x90c3, - 0x90c4, 0xc8c7, 0xd0ca, 0x90c5, 0x90c6, 0x90c7, 0x90c8, 0x90c9, - /* 0x6100 .. 0x61ff */ - 0xe3b8, 0xb3ee, 0x90ca, 0x90cb, 0x90cc, 0x90cd, 0xeda9, 0x90ce, - 0xd3fa, 0xd3e4, 0x90cf, 0x90d0, 0x90d1, 0xedaa, 0xe3b9, 0xd2e2, - 0x90d2, 0x90d3, 0x90d4, 0x90d5, 0x90d6, 0xe3b5, 0x90d7, 0x90d8, - 0x90d9, 0x90da, 0xd3de, 0x90db, 0x90dc, 0x90dd, 0x90de, 0xb8d0, - 0xe3b3, 0x90df, 0x90e0, 0xe3b6, 0xb7df, 0x90e1, 0xe3b4, 0xc0a2, - 0x90e2, 0x90e3, 0x90e4, 0xe3ba, 0x90e5, 0x90e6, 0x90e7, 0x90e8, - 0x90e9, 0x90ea, 0x90eb, 0x90ec, 0x90ed, 0x90ee, 0x90ef, 0x90f0, - 0x90f1, 0x90f2, 0x90f3, 0x90f4, 0x90f5, 0x90f6, 0x90f7, 0xd4b8, - 0x90f8, 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90fd, 0x90fe, 0x9140, - 0xb4c8, 0x9141, 0xe3bb, 0x9142, 0xbbc5, 0x9143, 0xc9f7, 0x9144, - 0x9145, 0xc9e5, 0x9146, 0x9147, 0x9148, 0xc4bd, 0x9149, 0x914a, - 0x914b, 0x914c, 0x914d, 0x914e, 0x914f, 0xedab, 0x9150, 0x9151, - 0x9152, 0x9153, 0xc2fd, 0x9154, 0x9155, 0x9156, 0x9157, 0xbbdb, - 0xbfae, 0x9158, 0x9159, 0x915a, 0x915b, 0x915c, 0x915d, 0x915e, - 0xcebf, 0x915f, 0x9160, 0x9161, 0x9162, 0xe3bc, 0x9163, 0xbfb6, - 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, 0x9169, 0x916a, 0x916b, - 0x916c, 0x916d, 0x916e, 0x916f, 0x9170, 0x9171, 0x9172, 0x9173, - 0x9174, 0x9175, 0x9176, 0xb1ef, 0x9177, 0x9178, 0xd4f7, 0x9179, - 0x917a, 0x917b, 0x917c, 0x917d, 0xe3be, 0x917e, 0x9180, 0x9181, - 0x9182, 0x9183, 0x9184, 0x9185, 0x9186, 0xedad, 0x9187, 0x9188, - 0x9189, 0x918a, 0x918b, 0x918c, 0x918d, 0x918e, 0x918f, 0xe3bf, - 0xbaa9, 0xedac, 0x9190, 0x9191, 0xe3bd, 0x9192, 0x9193, 0x9194, - 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919a, 0x919b, 0xe3c0, - 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0xbab6, 0x91a2, - 0x91a3, 0x91a4, 0xb6ae, 0x91a5, 0x91a6, 0x91a7, 0x91a8, 0x91a9, - 0xd0b8, 0x91aa, 0xb0c3, 0xedae, 0x91ab, 0x91ac, 0x91ad, 0x91ae, - 0x91af, 0xedaf, 0xc0c1, 0x91b0, 0xe3c1, 0x91b1, 0x91b2, 0x91b3, - 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91ba, 0x91bb, - 0x91bc, 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0xc5b3, 0x91c2, - 0x91c3, 0x91c4, 0x91c5, 0x91c6, 0x91c7, 0x91c8, 0x91c9, 0x91ca, - 0x91cb, 0x91cc, 0x91cd, 0x91ce, 0x91cf, 0xe3c2, 0x91d0, 0x91d1, - 0x91d2, 0x91d3, 0x91d4, 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0xdcb2, - /* 0x6200 .. 0x62ff */ - 0x91d9, 0x91da, 0x91db, 0x91dc, 0x91dd, 0x91de, 0xedb0, 0x91df, - 0xb8ea, 0x91e0, 0xceec, 0xeaa7, 0xd0e7, 0xcaf9, 0xc8d6, 0xcfb7, - 0xb3c9, 0xced2, 0xbde4, 0x91e1, 0x91e2, 0xe3de, 0xbbf2, 0xeaa8, - 0xd5bd, 0x91e3, 0xc6dd, 0xeaa9, 0x91e4, 0x91e5, 0x91e6, 0xeaaa, - 0x91e7, 0xeaac, 0xeaab, 0x91e8, 0xeaae, 0xeaad, 0x91e9, 0x91ea, - 0x91eb, 0x91ec, 0xbdd8, 0x91ed, 0xeaaf, 0x91ee, 0xc2be, 0x91ef, - 0x91f0, 0x91f1, 0x91f2, 0xb4c1, 0xb4f7, 0x91f3, 0x91f4, 0xbba7, - 0x91f5, 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0xece6, 0xece5, 0xb7bf, - 0xcbf9, 0xb1e2, 0x91fa, 0xece7, 0x91fb, 0x91fc, 0x91fd, 0xc9c8, - 0xece8, 0xece9, 0x91fe, 0xcad6, 0xded0, 0xb2c5, 0xd4fa, 0x9240, - 0x9241, 0xc6cb, 0xb0c7, 0xb4f2, 0xc8d3, 0x9242, 0x9243, 0x9244, - 0xcdd0, 0x9245, 0x9246, 0xbfb8, 0x9247, 0x9248, 0x9249, 0x924a, - 0x924b, 0x924c, 0x924d, 0xbfdb, 0x924e, 0x924f, 0xc7a4, 0xd6b4, - 0x9250, 0xc0a9, 0xded1, 0xc9a8, 0xd1ef, 0xc5a4, 0xb0e7, 0xb3b6, - 0xc8c5, 0x9251, 0x9252, 0xb0e2, 0x9253, 0x9254, 0xb7f6, 0x9255, - 0x9256, 0xc5fa, 0x9257, 0x9258, 0xb6f3, 0x9259, 0xd5d2, 0xb3d0, - 0xbcbc, 0x925a, 0x925b, 0x925c, 0xb3ad, 0x925d, 0x925e, 0x925f, - 0x9260, 0xbef1, 0xb0d1, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, - 0x9266, 0xd2d6, 0xcae3, 0xd7a5, 0x9267, 0xcdb6, 0xb6b6, 0xbfb9, - 0xd5db, 0x9268, 0xb8a7, 0xc5d7, 0x9269, 0x926a, 0x926b, 0xded2, - 0xbfd9, 0xc2d5, 0xc7c0, 0x926c, 0xbba4, 0xb1a8, 0x926d, 0x926e, - 0xc5ea, 0x926f, 0x9270, 0xc5fb, 0xcca7, 0x9271, 0x9272, 0x9273, - 0x9274, 0xb1a7, 0x9275, 0x9276, 0x9277, 0xb5d6, 0x9278, 0x9279, - 0x927a, 0xc4a8, 0x927b, 0xded3, 0xd1ba, 0xb3e9, 0x927c, 0xc3f2, - 0x927d, 0x927e, 0xb7f7, 0x9280, 0xd6f4, 0xb5a3, 0xb2f0, 0xc4b4, - 0xc4e9, 0xc0ad, 0xded4, 0x9281, 0xb0e8, 0xc5c4, 0xc1e0, 0x9282, - 0xb9d5, 0x9283, 0xbedc, 0xcdd8, 0xb0ce, 0x9284, 0xcdcf, 0xded6, - 0xbed0, 0xd7be, 0xded5, 0xd5d0, 0xb0dd, 0x9285, 0x9286, 0xc4e2, - 0x9287, 0x9288, 0xc2a3, 0xbcf0, 0x9289, 0xd3b5, 0xc0b9, 0xc5a1, - 0xb2a6, 0xd4f1, 0x928a, 0x928b, 0xc0a8, 0xcac3, 0xded7, 0xd5fc, - 0x928c, 0xb9b0, 0x928d, 0xc8ad, 0xcba9, 0x928e, 0xded9, 0xbfbd, - 0x928f, 0x9290, 0x9291, 0x9292, 0xc6b4, 0xd7a7, 0xcab0, 0xc4c3, - /* 0x6300 .. 0x63ff */ - 0x9293, 0xb3d6, 0xb9d2, 0x9294, 0x9295, 0x9296, 0x9297, 0xd6b8, - 0xeafc, 0xb0b4, 0x9298, 0x9299, 0x929a, 0x929b, 0xbfe6, 0x929c, - 0x929d, 0xccf4, 0x929e, 0x929f, 0x92a0, 0x92a1, 0xcdda, 0x92a2, - 0x92a3, 0x92a4, 0xd6bf, 0xc2ce, 0x92a5, 0xcece, 0xcca2, 0xd0ae, - 0xc4d3, 0xb5b2, 0xded8, 0xd5f5, 0xbcb7, 0xbbd3, 0x92a6, 0x92a7, - 0xb0a4, 0x92a8, 0xc5b2, 0xb4ec, 0x92a9, 0x92aa, 0x92ab, 0xd5f1, - 0x92ac, 0x92ad, 0xeafd, 0x92ae, 0x92af, 0x92b0, 0x92b1, 0x92b2, - 0x92b3, 0xdeda, 0xcda6, 0x92b4, 0x92b5, 0xcdec, 0x92b6, 0x92b7, - 0x92b8, 0x92b9, 0xcee6, 0xdedc, 0x92ba, 0xcdb1, 0xc0a6, 0x92bb, - 0x92bc, 0xd7bd, 0x92bd, 0xdedb, 0xb0c6, 0xbab4, 0xc9d3, 0xc4f3, - 0xbee8, 0x92be, 0x92bf, 0x92c0, 0x92c1, 0xb2b6, 0x92c2, 0x92c3, - 0x92c4, 0x92c5, 0x92c6, 0x92c7, 0x92c8, 0x92c9, 0xc0cc, 0xcbf0, - 0x92ca, 0xbcf1, 0xbbbb, 0xb5b7, 0x92cb, 0x92cc, 0x92cd, 0xc5f5, - 0x92ce, 0xdee6, 0x92cf, 0x92d0, 0x92d1, 0xdee3, 0xbedd, 0x92d2, - 0x92d3, 0xdedf, 0x92d4, 0x92d5, 0x92d6, 0x92d7, 0xb4b7, 0xbddd, - 0x92d8, 0x92d9, 0xdee0, 0xc4ed, 0x92da, 0x92db, 0x92dc, 0x92dd, - 0xcfc6, 0x92de, 0xb5e0, 0x92df, 0x92e0, 0x92e1, 0x92e2, 0xb6de, - 0xcada, 0xb5f4, 0xdee5, 0x92e3, 0xd5c6, 0x92e4, 0xdee1, 0xcccd, - 0xc6fe, 0x92e5, 0xc5c5, 0x92e6, 0x92e7, 0x92e8, 0xd2b4, 0x92e9, - 0xbef2, 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, - 0xc2d3, 0x92f1, 0xccbd, 0xb3b8, 0x92f2, 0xbdd3, 0x92f3, 0xbfd8, - 0xcdc6, 0xd1da, 0xb4eb, 0x92f4, 0xdee4, 0xdedd, 0xdee7, 0x92f5, - 0xeafe, 0x92f6, 0x92f7, 0xc2b0, 0xdee2, 0x92f8, 0x92f9, 0xd6c0, - 0xb5a7, 0x92fa, 0xb2f4, 0x92fb, 0xdee8, 0x92fc, 0xdef2, 0x92fd, - 0x92fe, 0x9340, 0x9341, 0x9342, 0xdeed, 0x9343, 0xdef1, 0x9344, - 0x9345, 0xc8e0, 0x9346, 0x9347, 0x9348, 0xd7e1, 0xdeef, 0xc3e8, - 0xcce1, 0x9349, 0xb2e5, 0x934a, 0x934b, 0x934c, 0xd2be, 0x934d, - 0x934e, 0x934f, 0x9350, 0x9351, 0x9352, 0x9353, 0xdeee, 0x9354, - 0xdeeb, 0xced5, 0x9355, 0xb4a7, 0x9356, 0x9357, 0x9358, 0x9359, - 0x935a, 0xbfab, 0xbebe, 0x935b, 0x935c, 0xbdd2, 0x935d, 0x935e, - 0x935f, 0x9360, 0xdee9, 0x9361, 0xd4ae, 0x9362, 0xdede, 0x9363, - 0xdeea, 0x9364, 0x9365, 0x9366, 0x9367, 0xc0bf, 0x9368, 0xdeec, - /* 0x6400 .. 0x64ff */ - 0xb2f3, 0xb8e9, 0xc2a7, 0x9369, 0x936a, 0xbdc1, 0x936b, 0x936c, - 0x936d, 0x936e, 0x936f, 0xdef5, 0xdef8, 0x9370, 0x9371, 0xb2ab, - 0xb4a4, 0x9372, 0x9373, 0xb4ea, 0xc9a6, 0x9374, 0x9375, 0x9376, - 0x9377, 0x9378, 0x9379, 0xdef6, 0xcbd1, 0x937a, 0xb8e3, 0x937b, - 0xdef7, 0xdefa, 0x937c, 0x937d, 0x937e, 0x9380, 0xdef9, 0x9381, - 0x9382, 0x9383, 0xccc2, 0x9384, 0xb0e1, 0xb4ee, 0x9385, 0x9386, - 0x9387, 0x9388, 0x9389, 0x938a, 0xe5ba, 0x938b, 0x938c, 0x938d, - 0x938e, 0x938f, 0xd0af, 0x9390, 0x9391, 0xb2eb, 0x9392, 0xeba1, - 0x9393, 0xdef4, 0x9394, 0x9395, 0xc9e3, 0xdef3, 0xb0da, 0xd2a1, - 0xb1f7, 0x9396, 0xccaf, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, - 0x939c, 0x939d, 0xdef0, 0x939e, 0xcba4, 0x939f, 0x93a0, 0x93a1, - 0xd5aa, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6, 0xdefb, 0x93a7, - 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac, 0x93ad, 0x93ae, 0xb4dd, - 0x93af, 0xc4a6, 0x93b0, 0x93b1, 0x93b2, 0xdefd, 0x93b3, 0x93b4, - 0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc, - 0xc3fe, 0xc4a1, 0xdfa1, 0x93bd, 0x93be, 0x93bf, 0x93c0, 0x93c1, - 0x93c2, 0x93c3, 0xc1cc, 0x93c4, 0xdefc, 0xbeef, 0x93c5, 0xc6b2, - 0x93c6, 0x93c7, 0x93c8, 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, - 0x93ce, 0xb3c5, 0xc8f6, 0x93cf, 0x93d0, 0xcbba, 0xdefe, 0x93d1, - 0x93d2, 0xdfa4, 0x93d3, 0x93d4, 0x93d5, 0x93d6, 0xd7b2, 0x93d7, - 0x93d8, 0x93d9, 0x93da, 0x93db, 0xb3b7, 0x93dc, 0x93dd, 0x93de, - 0x93df, 0xc1c3, 0x93e0, 0x93e1, 0xc7cb, 0xb2a5, 0xb4e9, 0x93e2, - 0xd7ab, 0x93e3, 0x93e4, 0x93e5, 0x93e6, 0xc4ec, 0x93e7, 0xdfa2, - 0xdfa3, 0x93e8, 0xdfa5, 0x93e9, 0xbab3, 0x93ea, 0x93eb, 0x93ec, - 0xdfa6, 0x93ed, 0xc0de, 0x93ee, 0x93ef, 0xc9c3, 0x93f0, 0x93f1, - 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6, 0xb2d9, 0xc7e6, 0x93f7, - 0xdfa7, 0x93f8, 0xc7dc, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0xdfa8, - 0xeba2, 0x93fd, 0x93fe, 0x9440, 0x9441, 0x9442, 0xcbd3, 0x9443, - 0x9444, 0x9445, 0xdfaa, 0x9446, 0xdfa9, 0x9447, 0xb2c1, 0x9448, - 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f, 0x9450, - 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, 0x9458, - 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f, 0x9460, - /* 0x6500 .. 0x65ff */ - 0xc5ca, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, - 0x9468, 0xdfab, 0x9469, 0x946a, 0x946b, 0x946c, 0x946d, 0x946e, - 0x946f, 0x9470, 0xd4dc, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, - 0xc8c1, 0x9476, 0x9477, 0x9478, 0x9479, 0x947a, 0x947b, 0x947c, - 0x947d, 0x947e, 0x9480, 0x9481, 0x9482, 0xdfac, 0x9483, 0x9484, - 0x9485, 0x9486, 0x9487, 0xbef0, 0x9488, 0x9489, 0xdfad, 0xd6a7, - 0x948a, 0x948b, 0x948c, 0x948d, 0xeab7, 0xebb6, 0xcad5, 0x948e, - 0xd8fc, 0xb8c4, 0x948f, 0xb9a5, 0x9490, 0x9491, 0xb7c5, 0xd5fe, - 0x9492, 0x9493, 0x9494, 0x9495, 0x9496, 0xb9ca, 0x9497, 0x9498, - 0xd0a7, 0xf4cd, 0x9499, 0x949a, 0xb5d0, 0x949b, 0x949c, 0xc3f4, - 0x949d, 0xbec8, 0x949e, 0x949f, 0x94a0, 0xebb7, 0xb0bd, 0x94a1, - 0x94a2, 0xbdcc, 0x94a3, 0xc1b2, 0x94a4, 0xb1d6, 0xb3a8, 0x94a5, - 0x94a6, 0x94a7, 0xb8d2, 0xc9a2, 0x94a8, 0x94a9, 0xb6d8, 0x94aa, - 0x94ab, 0x94ac, 0x94ad, 0xebb8, 0xbeb4, 0x94ae, 0x94af, 0x94b0, - 0xcafd, 0x94b1, 0xc7c3, 0x94b2, 0xd5fb, 0x94b3, 0x94b4, 0xb7f3, - 0x94b5, 0x94b6, 0x94b7, 0x94b8, 0x94b9, 0x94ba, 0x94bb, 0x94bc, - 0x94bd, 0x94be, 0x94bf, 0x94c0, 0x94c1, 0x94c2, 0x94c3, 0xcec4, - 0x94c4, 0x94c5, 0x94c6, 0xd5ab, 0xb1f3, 0x94c7, 0x94c8, 0x94c9, - 0xecb3, 0xb0df, 0x94ca, 0xecb5, 0x94cb, 0x94cc, 0x94cd, 0xb6b7, - 0x94ce, 0xc1cf, 0x94cf, 0xf5fa, 0xd0b1, 0x94d0, 0x94d1, 0xd5e5, - 0x94d2, 0xced3, 0x94d3, 0x94d4, 0xbdef, 0xb3e2, 0x94d5, 0xb8ab, - 0x94d6, 0xd5b6, 0x94d7, 0xedbd, 0x94d8, 0xb6cf, 0x94d9, 0xcbb9, - 0xd0c2, 0x94da, 0x94db, 0x94dc, 0x94dd, 0x94de, 0x94df, 0x94e0, - 0x94e1, 0xb7bd, 0x94e2, 0x94e3, 0xecb6, 0xcaa9, 0x94e4, 0x94e5, - 0x94e6, 0xc5d4, 0x94e7, 0xecb9, 0xecb8, 0xc2c3, 0xecb7, 0x94e8, - 0x94e9, 0x94ea, 0x94eb, 0xd0fd, 0xecba, 0x94ec, 0xecbb, 0xd7e5, - 0x94ed, 0x94ee, 0xecbc, 0x94ef, 0x94f0, 0x94f1, 0xecbd, 0xc6ec, - 0x94f2, 0x94f3, 0x94f4, 0x94f5, 0x94f6, 0x94f7, 0x94f8, 0x94f9, - 0xcede, 0x94fa, 0xbcc8, 0x94fb, 0x94fc, 0xc8d5, 0xb5a9, 0xbec9, - 0xd6bc, 0xd4e7, 0x94fd, 0x94fe, 0xd1ae, 0xd0f1, 0xeab8, 0xeab9, - 0xeaba, 0xbab5, 0x9540, 0x9541, 0x9542, 0x9543, 0xcab1, 0xbff5, - 0x9544, 0x9545, 0xcdfa, 0x9546, 0x9547, 0x9548, 0x9549, 0x954a, - /* 0x6600 .. 0x66ff */ - 0xeac0, 0x954b, 0xb0ba, 0xeabe, 0x954c, 0x954d, 0xc0a5, 0x954e, - 0x954f, 0x9550, 0xeabb, 0x9551, 0xb2fd, 0x9552, 0xc3f7, 0xbbe8, - 0x9553, 0x9554, 0x9555, 0xd2d7, 0xcef4, 0xeabf, 0x9556, 0x9557, - 0x9558, 0xeabc, 0x9559, 0x955a, 0x955b, 0xeac3, 0x955c, 0xd0c7, - 0xd3b3, 0x955d, 0x955e, 0x955f, 0x9560, 0xb4ba, 0x9561, 0xc3c1, - 0xd7f2, 0x9562, 0x9563, 0x9564, 0x9565, 0xd5d1, 0x9566, 0xcac7, - 0x9567, 0xeac5, 0x9568, 0x9569, 0xeac4, 0xeac7, 0xeac6, 0x956a, - 0x956b, 0x956c, 0x956d, 0x956e, 0xd6e7, 0x956f, 0xcfd4, 0x9570, - 0x9571, 0xeacb, 0x9572, 0xbbce, 0x9573, 0x9574, 0x9575, 0x9576, - 0x9577, 0x9578, 0x9579, 0xbdfa, 0xc9ce, 0x957a, 0x957b, 0xeacc, - 0x957c, 0x957d, 0xc9b9, 0xcffe, 0xeaca, 0xd4ce, 0xeacd, 0xeacf, - 0x957e, 0x9580, 0xcded, 0x9581, 0x9582, 0x9583, 0x9584, 0xeac9, - 0x9585, 0xeace, 0x9586, 0x9587, 0xceee, 0x9588, 0xbbde, 0x9589, - 0xb3bf, 0x958a, 0x958b, 0x958c, 0x958d, 0x958e, 0xc6d5, 0xbeb0, - 0xcefa, 0x958f, 0x9590, 0x9591, 0xc7e7, 0x9592, 0xbea7, 0xead0, - 0x9593, 0x9594, 0xd6c7, 0x9595, 0x9596, 0x9597, 0xc1c0, 0x9598, - 0x9599, 0x959a, 0xd4dd, 0x959b, 0xead1, 0x959c, 0x959d, 0xcfbe, - 0x959e, 0x959f, 0x95a0, 0x95a1, 0xead2, 0x95a2, 0x95a3, 0x95a4, - 0x95a5, 0xcaee, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0xc5af, 0xb0b5, - 0x95aa, 0x95ab, 0x95ac, 0x95ad, 0x95ae, 0xead4, 0x95af, 0x95b0, - 0x95b1, 0x95b2, 0x95b3, 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0xead3, - 0xf4df, 0x95b8, 0x95b9, 0x95ba, 0x95bb, 0x95bc, 0xc4ba, 0x95bd, - 0x95be, 0x95bf, 0x95c0, 0x95c1, 0xb1a9, 0x95c2, 0x95c3, 0x95c4, - 0x95c5, 0xe5df, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0xead5, 0x95ca, - 0x95cb, 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, - 0x95d3, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, - 0x95db, 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, - 0x95e3, 0xcaef, 0x95e4, 0xead6, 0xead7, 0xc6d8, 0x95e5, 0x95e6, - 0x95e7, 0x95e8, 0x95e9, 0x95ea, 0x95eb, 0x95ec, 0xead8, 0x95ed, - 0x95ee, 0xead9, 0x95ef, 0x95f0, 0x95f1, 0x95f2, 0x95f3, 0x95f4, - 0xd4bb, 0x95f5, 0xc7fa, 0xd2b7, 0xb8fc, 0x95f6, 0x95f7, 0xeac2, - 0x95f8, 0xb2dc, 0x95f9, 0x95fa, 0xc2fc, 0x95fb, 0xd4f8, 0xcce6, - /* 0x6700 .. 0x67ff */ - 0xd7ee, 0x95fc, 0x95fd, 0x95fe, 0x9640, 0x9641, 0x9642, 0x9643, - 0xd4c2, 0xd3d0, 0xebc3, 0xc5f3, 0x9644, 0xb7fe, 0x9645, 0x9646, - 0xebd4, 0x9647, 0x9648, 0x9649, 0xcbb7, 0xebde, 0x964a, 0xc0ca, - 0x964b, 0x964c, 0x964d, 0xcdfb, 0x964e, 0xb3af, 0x964f, 0xc6da, - 0x9650, 0x9651, 0x9652, 0x9653, 0x9654, 0x9655, 0xebfc, 0x9656, - 0xc4be, 0x9657, 0xceb4, 0xc4a9, 0xb1be, 0xd4fd, 0x9658, 0xcaf5, - 0x9659, 0xd6ec, 0x965a, 0x965b, 0xc6d3, 0xb6e4, 0x965c, 0x965d, - 0x965e, 0x965f, 0xbbfa, 0x9660, 0x9661, 0xd0e0, 0x9662, 0x9663, - 0xc9b1, 0x9664, 0xd4d3, 0xc8a8, 0x9665, 0x9666, 0xb8cb, 0x9667, - 0xe8be, 0xc9bc, 0x9668, 0x9669, 0xe8bb, 0x966a, 0xc0ee, 0xd0d3, - 0xb2c4, 0xb4e5, 0x966b, 0xe8bc, 0x966c, 0x966d, 0xd5c8, 0x966e, - 0x966f, 0x9670, 0x9671, 0x9672, 0xb6c5, 0x9673, 0xe8bd, 0xcaf8, - 0xb8dc, 0xccf5, 0x9674, 0x9675, 0x9676, 0xc0b4, 0x9677, 0x9678, - 0xd1ee, 0xe8bf, 0xe8c2, 0x9679, 0x967a, 0xbabc, 0x967b, 0xb1ad, - 0xbddc, 0x967c, 0xeabd, 0xe8c3, 0x967d, 0xe8c6, 0x967e, 0xe8cb, - 0x9680, 0x9681, 0x9682, 0x9683, 0xe8cc, 0x9684, 0xcbc9, 0xb0e5, - 0x9685, 0xbcab, 0x9686, 0x9687, 0xb9b9, 0x9688, 0x9689, 0xe8c1, - 0x968a, 0xcdf7, 0x968b, 0xe8ca, 0x968c, 0x968d, 0x968e, 0x968f, - 0xcef6, 0x9690, 0x9691, 0x9692, 0x9693, 0xd5ed, 0x9694, 0xc1d6, - 0xe8c4, 0x9695, 0xc3b6, 0x9696, 0xb9fb, 0xd6a6, 0xe8c8, 0x9697, - 0x9698, 0x9699, 0xcae0, 0xd4e6, 0x969a, 0xe8c0, 0x969b, 0xe8c5, - 0xe8c7, 0x969c, 0xc7b9, 0xb7e3, 0x969d, 0xe8c9, 0x969e, 0xbfdd, - 0xe8d2, 0x969f, 0x96a0, 0xe8d7, 0x96a1, 0xe8d5, 0xbcdc, 0xbccf, - 0xe8db, 0x96a2, 0x96a3, 0x96a4, 0x96a5, 0x96a6, 0x96a7, 0x96a8, - 0x96a9, 0xe8de, 0x96aa, 0xe8da, 0xb1fa, 0x96ab, 0x96ac, 0x96ad, - 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b2, 0x96b3, 0x96b4, 0xb0d8, - 0xc4b3, 0xb8cc, 0xc6e2, 0xc8be, 0xc8e1, 0x96b5, 0x96b6, 0x96b7, - 0xe8cf, 0xe8d4, 0xe8d6, 0x96b8, 0xb9f1, 0xe8d8, 0xd7f5, 0x96b9, - 0xc4fb, 0x96ba, 0xe8dc, 0x96bb, 0x96bc, 0xb2e9, 0x96bd, 0x96be, - 0x96bf, 0xe8d1, 0x96c0, 0x96c1, 0xbced, 0x96c2, 0x96c3, 0xbfc2, - 0xe8cd, 0xd6f9, 0x96c4, 0xc1f8, 0xb2f1, 0x96c5, 0x96c6, 0x96c7, - 0x96c8, 0x96c9, 0x96ca, 0x96cb, 0x96cc, 0xe8df, 0x96cd, 0xcac1, - /* 0x6800 .. 0x68ff */ - 0xe8d9, 0x96ce, 0x96cf, 0x96d0, 0x96d1, 0xd5a4, 0x96d2, 0xb1ea, - 0xd5bb, 0xe8ce, 0xe8d0, 0xb6b0, 0xe8d3, 0x96d3, 0xe8dd, 0xc0b8, - 0x96d4, 0xcaf7, 0x96d5, 0xcba8, 0x96d6, 0x96d7, 0xc6dc, 0xc0f5, - 0x96d8, 0x96d9, 0x96da, 0x96db, 0x96dc, 0xe8e9, 0x96dd, 0x96de, - 0x96df, 0xd0a3, 0x96e0, 0x96e1, 0x96e2, 0x96e3, 0x96e4, 0x96e5, - 0x96e6, 0xe8f2, 0xd6ea, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, - 0x96ec, 0x96ed, 0xe8e0, 0xe8e1, 0x96ee, 0x96ef, 0x96f0, 0xd1f9, - 0xbacb, 0xb8f9, 0x96f1, 0x96f2, 0xb8f1, 0xd4d4, 0xe8ef, 0x96f3, - 0xe8ee, 0xe8ec, 0xb9f0, 0xccd2, 0xe8e6, 0xcea6, 0xbff2, 0x96f4, - 0xb0b8, 0xe8f1, 0xe8f0, 0x96f5, 0xd7c0, 0x96f6, 0xe8e4, 0x96f7, - 0xcda9, 0xc9a3, 0x96f8, 0xbbb8, 0xbddb, 0xe8ea, 0x96f9, 0x96fa, - 0x96fb, 0x96fc, 0x96fd, 0x96fe, 0x9740, 0x9741, 0x9742, 0x9743, - 0xe8e2, 0xe8e3, 0xe8e5, 0xb5b5, 0xe8e7, 0xc7c5, 0xe8eb, 0xe8ed, - 0xbdb0, 0xd7ae, 0x9744, 0xe8f8, 0x9745, 0x9746, 0x9747, 0x9748, - 0x9749, 0x974a, 0x974b, 0x974c, 0xe8f5, 0x974d, 0xcdb0, 0xe8f6, - 0x974e, 0x974f, 0x9750, 0x9751, 0x9752, 0x9753, 0x9754, 0x9755, - 0x9756, 0xc1ba, 0x9757, 0xe8e8, 0x9758, 0xc3b7, 0xb0f0, 0x9759, - 0x975a, 0x975b, 0x975c, 0x975d, 0x975e, 0x975f, 0x9760, 0xe8f4, - 0x9761, 0x9762, 0x9763, 0xe8f7, 0x9764, 0x9765, 0x9766, 0xb9a3, - 0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, 0x976d, 0x976e, - 0x976f, 0x9770, 0xc9d2, 0x9771, 0x9772, 0x9773, 0xc3ce, 0xcee0, - 0xc0e6, 0x9774, 0x9775, 0x9776, 0x9777, 0xcbf3, 0x9778, 0xccdd, - 0xd0b5, 0x9779, 0x977a, 0xcae1, 0x977b, 0xe8f3, 0x977c, 0x977d, - 0x977e, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, - 0xbcec, 0x9787, 0xe8f9, 0x9788, 0x9789, 0x978a, 0x978b, 0x978c, - 0x978d, 0xc3de, 0x978e, 0xc6e5, 0x978f, 0xb9f7, 0x9790, 0x9791, - 0x9792, 0x9793, 0xb0f4, 0x9794, 0x9795, 0xd7d8, 0x9796, 0x9797, - 0xbcac, 0x9798, 0xc5ef, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d, - 0xccc4, 0x979e, 0x979f, 0xe9a6, 0x97a0, 0x97a1, 0x97a2, 0x97a3, - 0x97a4, 0x97a5, 0x97a6, 0x97a7, 0x97a8, 0x97a9, 0xc9ad, 0x97aa, - 0xe9a2, 0xc0e2, 0x97ab, 0x97ac, 0x97ad, 0xbfc3, 0x97ae, 0x97af, - 0x97b0, 0xe8fe, 0xb9d7, 0x97b1, 0xe8fb, 0x97b2, 0x97b3, 0x97b4, - /* 0x6900 .. 0x69ff */ - 0x97b5, 0xe9a4, 0x97b6, 0x97b7, 0x97b8, 0xd2ce, 0x97b9, 0x97ba, - 0x97bb, 0x97bc, 0x97bd, 0xe9a3, 0x97be, 0xd6b2, 0xd7b5, 0x97bf, - 0xe9a7, 0x97c0, 0xbdb7, 0x97c1, 0x97c2, 0x97c3, 0x97c4, 0x97c5, - 0x97c6, 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, 0xe8fc, - 0xe8fd, 0x97cd, 0x97ce, 0x97cf, 0xe9a1, 0x97d0, 0x97d1, 0x97d2, - 0x97d3, 0x97d4, 0x97d5, 0x97d6, 0x97d7, 0xcdd6, 0x97d8, 0x97d9, - 0xd2ac, 0x97da, 0x97db, 0x97dc, 0xe9b2, 0x97dd, 0x97de, 0x97df, - 0x97e0, 0xe9a9, 0x97e1, 0x97e2, 0x97e3, 0xb4aa, 0x97e4, 0xb4bb, - 0x97e5, 0x97e6, 0xe9ab, 0x97e7, 0x97e8, 0x97e9, 0x97ea, 0x97eb, - 0x97ec, 0x97ed, 0x97ee, 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f3, - 0x97f4, 0x97f5, 0x97f6, 0x97f7, 0xd0a8, 0x97f8, 0x97f9, 0xe9a5, - 0x97fa, 0x97fb, 0xb3fe, 0x97fc, 0x97fd, 0xe9ac, 0xc0e3, 0x97fe, - 0xe9aa, 0x9840, 0x9841, 0xe9b9, 0x9842, 0x9843, 0xe9b8, 0x9844, - 0x9845, 0x9846, 0x9847, 0xe9ae, 0x9848, 0x9849, 0xe8fa, 0x984a, - 0x984b, 0xe9a8, 0x984c, 0x984d, 0x984e, 0x984f, 0x9850, 0xbfac, - 0xe9b1, 0xe9ba, 0x9851, 0x9852, 0xc2a5, 0x9853, 0x9854, 0x9855, - 0xe9af, 0x9856, 0xb8c5, 0x9857, 0xe9ad, 0x9858, 0xd3dc, 0xe9b4, - 0xe9b5, 0xe9b7, 0x9859, 0x985a, 0x985b, 0xe9c7, 0x985c, 0x985d, - 0x985e, 0x985f, 0x9860, 0x9861, 0xc0c6, 0xe9c5, 0x9862, 0x9863, - 0xe9b0, 0x9864, 0x9865, 0xe9bb, 0xb0f1, 0x9866, 0x9867, 0x9868, - 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f, 0xe9bc, - 0xd5a5, 0x9870, 0x9871, 0xe9be, 0x9872, 0xe9bf, 0x9873, 0x9874, - 0x9875, 0xe9c1, 0x9876, 0x9877, 0xc1f1, 0x9878, 0x9879, 0xc8b6, - 0x987a, 0x987b, 0x987c, 0xe9bd, 0x987d, 0x987e, 0x9880, 0x9881, - 0x9882, 0xe9c2, 0x9883, 0x9884, 0x9885, 0x9886, 0x9887, 0x9888, - 0x9889, 0x988a, 0xe9c3, 0x988b, 0xe9b3, 0x988c, 0xe9b6, 0x988d, - 0xbbb1, 0x988e, 0x988f, 0x9890, 0xe9c0, 0x9891, 0x9892, 0x9893, - 0x9894, 0x9895, 0x9896, 0xbcf7, 0x9897, 0x9898, 0x9899, 0xe9c4, - 0xe9c6, 0x989a, 0x989b, 0x989c, 0x989d, 0x989e, 0x989f, 0x98a0, - 0x98a1, 0x98a2, 0x98a3, 0x98a4, 0x98a5, 0xe9ca, 0x98a6, 0x98a7, - 0x98a8, 0x98a9, 0xe9ce, 0x98aa, 0x98ab, 0x98ac, 0x98ad, 0x98ae, - 0x98af, 0x98b0, 0x98b1, 0x98b2, 0x98b3, 0xb2db, 0x98b4, 0xe9c8, - /* 0x6a00 .. 0x6aff */ - 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, 0x98ba, 0x98bb, 0x98bc, - 0x98bd, 0x98be, 0xb7ae, 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3, - 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0xe9cb, - 0xe9cc, 0x98cb, 0x98cc, 0x98cd, 0x98ce, 0x98cf, 0x98d0, 0xd5c1, - 0x98d1, 0xc4a3, 0x98d2, 0x98d3, 0x98d4, 0x98d5, 0x98d6, 0x98d7, - 0xe9d8, 0x98d8, 0xbae1, 0x98d9, 0x98da, 0x98db, 0x98dc, 0xe9c9, - 0x98dd, 0xd3a3, 0x98de, 0x98df, 0x98e0, 0xe9d4, 0x98e1, 0x98e2, - 0x98e3, 0x98e4, 0x98e5, 0x98e6, 0x98e7, 0xe9d7, 0xe9d0, 0x98e8, - 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0xe9cf, 0x98ed, 0x98ee, 0xc7c1, - 0x98ef, 0x98f0, 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, - 0xe9d2, 0x98f7, 0x98f8, 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, - 0xe9d9, 0xb3c8, 0x98fe, 0xe9d3, 0x9940, 0x9941, 0x9942, 0x9943, - 0x9944, 0xcff0, 0x9945, 0x9946, 0x9947, 0xe9cd, 0x9948, 0x9949, - 0x994a, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, - 0x9952, 0xb3f7, 0x9953, 0x9954, 0x9955, 0x9956, 0x9957, 0x9958, - 0x9959, 0xe9d6, 0x995a, 0x995b, 0xe9da, 0x995c, 0x995d, 0x995e, - 0xccb4, 0x995f, 0x9960, 0x9961, 0xcfad, 0x9962, 0x9963, 0x9964, - 0x9965, 0x9966, 0x9967, 0x9968, 0x9969, 0x996a, 0xe9d5, 0x996b, - 0xe9dc, 0xe9db, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, 0xe9de, - 0x9971, 0x9972, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, - 0xe9d1, 0x9979, 0x997a, 0x997b, 0x997c, 0x997d, 0x997e, 0x9980, - 0x9981, 0xe9dd, 0x9982, 0xe9df, 0xc3ca, 0x9983, 0x9984, 0x9985, - 0x9986, 0x9987, 0x9988, 0x9989, 0x998a, 0x998b, 0x998c, 0x998d, - 0x998e, 0x998f, 0x9990, 0x9991, 0x9992, 0x9993, 0x9994, 0x9995, - 0x9996, 0x9997, 0x9998, 0x9999, 0x999a, 0x999b, 0x999c, 0x999d, - 0x999e, 0x999f, 0x99a0, 0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a5, - 0x99a6, 0x99a7, 0x99a8, 0x99a9, 0x99aa, 0x99ab, 0x99ac, 0x99ad, - 0x99ae, 0x99af, 0x99b0, 0x99b1, 0x99b2, 0x99b3, 0x99b4, 0x99b5, - 0x99b6, 0x99b7, 0x99b8, 0x99b9, 0x99ba, 0x99bb, 0x99bc, 0x99bd, - 0x99be, 0x99bf, 0x99c0, 0x99c1, 0x99c2, 0x99c3, 0x99c4, 0x99c5, - 0x99c6, 0x99c7, 0x99c8, 0x99c9, 0x99ca, 0x99cb, 0x99cc, 0x99cd, - 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d2, 0x99d3, 0x99d4, 0x99d5, - /* 0x6b00 .. 0x6bff */ - 0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da, 0x99db, 0x99dc, 0x99dd, - 0x99de, 0x99df, 0x99e0, 0x99e1, 0x99e2, 0x99e3, 0x99e4, 0x99e5, - 0x99e6, 0x99e7, 0x99e8, 0x99e9, 0x99ea, 0x99eb, 0x99ec, 0x99ed, - 0x99ee, 0x99ef, 0x99f0, 0x99f1, 0x99f2, 0x99f3, 0x99f4, 0x99f5, - 0xc7b7, 0xb4ce, 0xbbb6, 0xd0c0, 0xeca3, 0x99f6, 0x99f7, 0xc5b7, - 0x99f8, 0x99f9, 0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x9a40, - 0x9a41, 0x9a42, 0xd3fb, 0x9a43, 0x9a44, 0x9a45, 0x9a46, 0xeca4, - 0x9a47, 0xeca5, 0xc6db, 0x9a48, 0x9a49, 0x9a4a, 0xbfee, 0x9a4b, - 0x9a4c, 0x9a4d, 0x9a4e, 0xeca6, 0x9a4f, 0x9a50, 0xeca7, 0xd0aa, - 0x9a51, 0xc7b8, 0x9a52, 0x9a53, 0xb8e8, 0x9a54, 0x9a55, 0x9a56, - 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, 0x9a5e, - 0x9a5f, 0xeca8, 0x9a60, 0x9a61, 0x9a62, 0x9a63, 0x9a64, 0x9a65, - 0x9a66, 0x9a67, 0xd6b9, 0xd5fd, 0xb4cb, 0xb2bd, 0xcee4, 0xc6e7, - 0x9a68, 0x9a69, 0xcde1, 0x9a6a, 0x9a6b, 0x9a6c, 0x9a6d, 0x9a6e, - 0x9a6f, 0x9a70, 0x9a71, 0x9a72, 0x9a73, 0x9a74, 0x9a75, 0x9a76, - 0x9a77, 0xb4f5, 0x9a78, 0xcbc0, 0xbcdf, 0x9a79, 0x9a7a, 0x9a7b, - 0x9a7c, 0xe9e2, 0xe9e3, 0xd1ea, 0xe9e5, 0x9a7d, 0xb4f9, 0xe9e4, - 0x9a7e, 0xd1b3, 0xcae2, 0xb2d0, 0x9a80, 0xe9e8, 0x9a81, 0x9a82, - 0x9a83, 0x9a84, 0xe9e6, 0xe9e7, 0x9a85, 0x9a86, 0xd6b3, 0x9a87, - 0x9a88, 0x9a89, 0xe9e9, 0xe9ea, 0x9a8a, 0x9a8b, 0x9a8c, 0x9a8d, - 0x9a8e, 0xe9eb, 0x9a8f, 0x9a90, 0x9a91, 0x9a92, 0x9a93, 0x9a94, - 0x9a95, 0x9a96, 0xe9ec, 0x9a97, 0x9a98, 0x9a99, 0x9a9a, 0x9a9b, - 0x9a9c, 0x9a9d, 0x9a9e, 0xecaf, 0xc5b9, 0xb6ce, 0x9a9f, 0xd2f3, - 0x9aa0, 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, 0x9aa5, 0x9aa6, 0xb5ee, - 0x9aa7, 0xbbd9, 0xecb1, 0x9aa8, 0x9aa9, 0xd2e3, 0x9aaa, 0x9aab, - 0x9aac, 0x9aad, 0x9aae, 0xcee3, 0x9aaf, 0xc4b8, 0x9ab0, 0xc3bf, - 0x9ab1, 0x9ab2, 0xb6be, 0xd8b9, 0xb1c8, 0xb1cf, 0xb1d1, 0xc5fe, - 0x9ab3, 0xb1d0, 0x9ab4, 0xc3ab, 0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8, - 0x9ab9, 0xd5b1, 0x9aba, 0x9abb, 0x9abc, 0x9abd, 0x9abe, 0x9abf, - 0x9ac0, 0x9ac1, 0xeba4, 0xbac1, 0x9ac2, 0x9ac3, 0x9ac4, 0xccba, - 0x9ac5, 0x9ac6, 0x9ac7, 0xeba5, 0x9ac8, 0xeba7, 0x9ac9, 0x9aca, - 0x9acb, 0xeba8, 0x9acc, 0x9acd, 0x9ace, 0xeba6, 0x9acf, 0x9ad0, - /* 0x6c00 .. 0x6cff */ - 0x9ad1, 0x9ad2, 0x9ad3, 0x9ad4, 0x9ad5, 0xeba9, 0xebab, 0xebaa, - 0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, 0xebac, 0x9adb, 0xcacf, - 0xd8b5, 0xc3f1, 0x9adc, 0xc3a5, 0xc6f8, 0xebad, 0xc4ca, 0x9add, - 0xebae, 0xebaf, 0xebb0, 0xb7d5, 0x9ade, 0x9adf, 0x9ae0, 0xb7fa, - 0x9ae1, 0xebb1, 0xc7e2, 0x9ae2, 0xebb3, 0x9ae3, 0xbaa4, 0xd1f5, - 0xb0b1, 0xebb2, 0xebb4, 0x9ae4, 0x9ae5, 0x9ae6, 0xb5aa, 0xc2c8, - 0xc7e8, 0x9ae7, 0xebb5, 0x9ae8, 0xcbae, 0xe3df, 0x9ae9, 0x9aea, - 0xd3c0, 0x9aeb, 0x9aec, 0x9aed, 0x9aee, 0xd9db, 0x9aef, 0x9af0, - 0xcda1, 0xd6ad, 0xc7f3, 0x9af1, 0x9af2, 0x9af3, 0xd9e0, 0xbbe3, - 0x9af4, 0xbaba, 0xe3e2, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, - 0xcfab, 0x9afa, 0x9afb, 0x9afc, 0xe3e0, 0xc9c7, 0x9afd, 0xbab9, - 0x9afe, 0x9b40, 0x9b41, 0xd1b4, 0xe3e1, 0xc8ea, 0xb9af, 0xbdad, - 0xb3d8, 0xcedb, 0x9b42, 0x9b43, 0xccc0, 0x9b44, 0x9b45, 0x9b46, - 0xe3e8, 0xe3e9, 0xcdf4, 0x9b47, 0x9b48, 0x9b49, 0x9b4a, 0x9b4b, - 0xccad, 0x9b4c, 0xbcb3, 0x9b4d, 0xe3ea, 0x9b4e, 0xe3eb, 0x9b4f, - 0x9b50, 0xd0da, 0x9b51, 0x9b52, 0x9b53, 0xc6fb, 0xb7da, 0x9b54, - 0x9b55, 0xc7df, 0xd2ca, 0xced6, 0x9b56, 0xe3e4, 0xe3ec, 0x9b57, - 0xc9f2, 0xb3c1, 0x9b58, 0x9b59, 0xe3e7, 0x9b5a, 0x9b5b, 0xc6e3, - 0xe3e5, 0x9b5c, 0x9b5d, 0xedb3, 0xe3e6, 0x9b5e, 0x9b5f, 0x9b60, - 0x9b61, 0xc9b3, 0x9b62, 0xc5e6, 0x9b63, 0x9b64, 0x9b65, 0xb9b5, - 0x9b66, 0xc3bb, 0x9b67, 0xe3e3, 0xc5bd, 0xc1a4, 0xc2d9, 0xb2d7, - 0x9b68, 0xe3ed, 0xbba6, 0xc4ad, 0x9b69, 0xe3f0, 0xbeda, 0x9b6a, - 0x9b6b, 0xe3fb, 0xe3f5, 0xbad3, 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, - 0xb7d0, 0xd3cd, 0x9b70, 0xd6ce, 0xd5d3, 0xb9c1, 0xd5b4, 0xd1d8, - 0x9b71, 0x9b72, 0x9b73, 0x9b74, 0xd0b9, 0xc7f6, 0x9b75, 0x9b76, - 0x9b77, 0xc8aa, 0xb2b4, 0x9b78, 0xc3da, 0x9b79, 0x9b7a, 0x9b7b, - 0xe3ee, 0x9b7c, 0x9b7d, 0xe3fc, 0xe3ef, 0xb7a8, 0xe3f7, 0xe3f4, - 0x9b7e, 0x9b80, 0x9b81, 0xb7ba, 0x9b82, 0x9b83, 0xc5a2, 0x9b84, - 0xe3f6, 0xc5dd, 0xb2a8, 0xc6fc, 0x9b85, 0xc4e0, 0x9b86, 0x9b87, - 0xd7a2, 0x9b88, 0xc0e1, 0xe3f9, 0x9b89, 0x9b8a, 0xe3fa, 0xe3fd, - 0xcca9, 0xe3f3, 0x9b8b, 0xd3be, 0x9b8c, 0xb1c3, 0xedb4, 0xe3f1, - 0xe3f2, 0x9b8d, 0xe3f8, 0xd0ba, 0xc6c3, 0xd4f3, 0xe3fe, 0x9b8e, - /* 0x6d00 .. 0x6dff */ - 0x9b8f, 0xbde0, 0x9b90, 0x9b91, 0xe4a7, 0x9b92, 0x9b93, 0xe4a6, - 0x9b94, 0x9b95, 0x9b96, 0xd1f3, 0xe4a3, 0x9b97, 0xe4a9, 0x9b98, - 0x9b99, 0x9b9a, 0xc8f7, 0x9b9b, 0x9b9c, 0x9b9d, 0x9b9e, 0xcfb4, - 0x9b9f, 0xe4a8, 0xe4ae, 0xc2e5, 0x9ba0, 0x9ba1, 0xb6b4, 0x9ba2, - 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0xbdf2, 0x9ba8, 0xe4a2, - 0x9ba9, 0x9baa, 0xbae9, 0xe4aa, 0x9bab, 0x9bac, 0xe4ac, 0x9bad, - 0x9bae, 0xb6fd, 0xd6de, 0xe4b2, 0x9baf, 0xe4ad, 0x9bb0, 0x9bb1, - 0x9bb2, 0xe4a1, 0x9bb3, 0xbbee, 0xcddd, 0xc7a2, 0xc5c9, 0x9bb4, - 0x9bb5, 0xc1f7, 0x9bb6, 0xe4a4, 0x9bb7, 0xc7b3, 0xbdac, 0xbdbd, - 0xe4a5, 0x9bb8, 0xd7c7, 0xb2e2, 0x9bb9, 0xe4ab, 0xbcc3, 0xe4af, - 0x9bba, 0xbbeb, 0xe4b0, 0xc5a8, 0xe4b1, 0x9bbb, 0x9bbc, 0x9bbd, - 0x9bbe, 0xd5e3, 0xbfa3, 0x9bbf, 0xe4ba, 0x9bc0, 0xe4b7, 0x9bc1, - 0xe4bb, 0x9bc2, 0x9bc3, 0xe4bd, 0x9bc4, 0x9bc5, 0xc6d6, 0x9bc6, - 0x9bc7, 0xbac6, 0xc0cb, 0x9bc8, 0x9bc9, 0x9bca, 0xb8a1, 0xe4b4, - 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce, 0xd4a1, 0x9bcf, 0x9bd0, 0xbaa3, - 0xbdfe, 0x9bd1, 0x9bd2, 0x9bd3, 0xe4bc, 0x9bd4, 0x9bd5, 0x9bd6, - 0x9bd7, 0x9bd8, 0xcdbf, 0x9bd9, 0x9bda, 0xc4f9, 0x9bdb, 0x9bdc, - 0xcffb, 0xc9e6, 0x9bdd, 0x9bde, 0xd3bf, 0x9bdf, 0xcfd1, 0x9be0, - 0x9be1, 0xe4b3, 0x9be2, 0xe4b8, 0xe4b9, 0xcce9, 0x9be3, 0x9be4, - 0x9be5, 0x9be6, 0x9be7, 0xccce, 0x9be8, 0xc0d4, 0xe4b5, 0xc1b0, - 0xe4b6, 0xced0, 0x9be9, 0xbbc1, 0xb5d3, 0x9bea, 0xc8f3, 0xbda7, - 0xd5c7, 0xc9ac, 0xb8a2, 0xe4ca, 0x9beb, 0x9bec, 0xe4cc, 0xd1c4, - 0x9bed, 0x9bee, 0xd2ba, 0x9bef, 0x9bf0, 0xbaad, 0x9bf1, 0x9bf2, - 0xbad4, 0x9bf3, 0x9bf4, 0x9bf5, 0x9bf6, 0x9bf7, 0x9bf8, 0xe4c3, - 0xb5ed, 0x9bf9, 0x9bfa, 0x9bfb, 0xd7cd, 0xe4c0, 0xcffd, 0xe4bf, - 0x9bfc, 0x9bfd, 0x9bfe, 0xc1dc, 0xccca, 0x9c40, 0x9c41, 0x9c42, - 0x9c43, 0xcae7, 0x9c44, 0x9c45, 0x9c46, 0x9c47, 0xc4d7, 0x9c48, - 0xccd4, 0xe4c8, 0x9c49, 0x9c4a, 0x9c4b, 0xe4c7, 0xe4c1, 0x9c4c, - 0xe4c4, 0xb5ad, 0x9c4d, 0x9c4e, 0xd3d9, 0x9c4f, 0xe4c6, 0x9c50, - 0x9c51, 0x9c52, 0x9c53, 0xd2f9, 0xb4e3, 0x9c54, 0xbbb4, 0x9c55, - 0x9c56, 0xc9ee, 0x9c57, 0xb4be, 0x9c58, 0x9c59, 0x9c5a, 0xbbec, - 0x9c5b, 0xd1cd, 0x9c5c, 0xcced, 0xedb5, 0x9c5d, 0x9c5e, 0x9c5f, - /* 0x6e00 .. 0x6eff */ - 0x9c60, 0x9c61, 0x9c62, 0x9c63, 0x9c64, 0xc7e5, 0x9c65, 0x9c66, - 0x9c67, 0x9c68, 0xd4a8, 0x9c69, 0xe4cb, 0xd7d5, 0xe4c2, 0x9c6a, - 0xbda5, 0xe4c5, 0x9c6b, 0x9c6c, 0xd3e6, 0x9c6d, 0xe4c9, 0xc9f8, - 0x9c6e, 0x9c6f, 0xe4be, 0x9c70, 0x9c71, 0xd3e5, 0x9c72, 0x9c73, - 0xc7fe, 0xb6c9, 0x9c74, 0xd4fc, 0xb2b3, 0xe4d7, 0x9c75, 0x9c76, - 0x9c77, 0xcec2, 0x9c78, 0xe4cd, 0x9c79, 0xcebc, 0x9c7a, 0xb8db, - 0x9c7b, 0x9c7c, 0xe4d6, 0x9c7d, 0xbfca, 0x9c7e, 0x9c80, 0x9c81, - 0xd3ce, 0x9c82, 0xc3ec, 0x9c83, 0x9c84, 0x9c85, 0x9c86, 0x9c87, - 0x9c88, 0x9c89, 0x9c8a, 0xc5c8, 0xe4d8, 0x9c8b, 0x9c8c, 0x9c8d, - 0x9c8e, 0x9c8f, 0x9c90, 0x9c91, 0x9c92, 0xcdc4, 0xe4cf, 0x9c93, - 0x9c94, 0x9c95, 0x9c96, 0xe4d4, 0xe4d5, 0x9c97, 0xbafe, 0x9c98, - 0xcfe6, 0x9c99, 0x9c9a, 0xd5bf, 0x9c9b, 0x9c9c, 0x9c9d, 0xe4d2, - 0x9c9e, 0x9c9f, 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, 0x9ca5, - 0x9ca6, 0x9ca7, 0x9ca8, 0xe4d0, 0x9ca9, 0x9caa, 0xe4ce, 0x9cab, - 0x9cac, 0x9cad, 0x9cae, 0x9caf, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3, - 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cb8, 0x9cb9, 0xcde5, 0xcaaa, - 0x9cba, 0x9cbb, 0x9cbc, 0xc0a3, 0x9cbd, 0xbda6, 0xe4d3, 0x9cbe, - 0x9cbf, 0xb8c8, 0x9cc0, 0x9cc1, 0x9cc2, 0x9cc3, 0x9cc4, 0xe4e7, - 0xd4b4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cc8, 0x9cc9, 0x9cca, 0x9ccb, - 0xe4db, 0x9ccc, 0x9ccd, 0x9cce, 0xc1ef, 0x9ccf, 0x9cd0, 0xe4e9, - 0x9cd1, 0x9cd2, 0xd2e7, 0x9cd3, 0x9cd4, 0xe4df, 0x9cd5, 0xe4e0, - 0x9cd6, 0x9cd7, 0xcfaa, 0x9cd8, 0x9cd9, 0x9cda, 0x9cdb, 0xcbdd, - 0x9cdc, 0xe4da, 0xe4d1, 0x9cdd, 0xe4e5, 0x9cde, 0xc8dc, 0xe4e3, - 0x9cdf, 0x9ce0, 0xc4e7, 0xe4e2, 0x9ce1, 0xe4e1, 0x9ce2, 0x9ce3, - 0x9ce4, 0xb3fc, 0xe4e8, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0xb5e1, - 0x9ce9, 0x9cea, 0x9ceb, 0xd7cc, 0x9cec, 0x9ced, 0x9cee, 0xe4e6, - 0x9cef, 0xbbac, 0x9cf0, 0xd7d2, 0xcccf, 0xebf8, 0x9cf1, 0xe4e4, - 0x9cf2, 0x9cf3, 0xb9f6, 0x9cf4, 0x9cf5, 0x9cf6, 0xd6cd, 0xe4d9, - 0xe4dc, 0xc2fa, 0xe4de, 0x9cf7, 0xc2cb, 0xc0c4, 0xc2d0, 0x9cf8, - 0xb1f5, 0xccb2, 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, - 0x9d40, 0x9d41, 0x9d42, 0x9d43, 0xb5ce, 0x9d44, 0x9d45, 0x9d46, - 0x9d47, 0xe4ef, 0x9d48, 0x9d49, 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, - /* 0x6f00 .. 0x6fff */ - 0x9d4e, 0x9d4f, 0xc6af, 0x9d50, 0x9d51, 0x9d52, 0xc6e1, 0x9d53, - 0x9d54, 0xe4f5, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0xc2a9, - 0x9d5a, 0x9d5b, 0x9d5c, 0xc0ec, 0xd1dd, 0xe4ee, 0x9d5d, 0x9d5e, - 0x9d5f, 0x9d60, 0x9d61, 0x9d62, 0x9d63, 0x9d64, 0x9d65, 0x9d66, - 0xc4ae, 0x9d67, 0x9d68, 0x9d69, 0xe4ed, 0x9d6a, 0x9d6b, 0x9d6c, - 0x9d6d, 0xe4f6, 0xe4f4, 0xc2fe, 0x9d6e, 0xe4dd, 0x9d6f, 0xe4f0, - 0x9d70, 0xcafe, 0x9d71, 0xd5c4, 0x9d72, 0x9d73, 0xe4f1, 0x9d74, - 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, 0xd1fa, 0x9d7b, - 0x9d7c, 0x9d7d, 0x9d7e, 0x9d80, 0x9d81, 0x9d82, 0xe4eb, 0xe4ec, - 0x9d83, 0x9d84, 0x9d85, 0xe4f2, 0x9d86, 0xceab, 0x9d87, 0x9d88, - 0x9d89, 0x9d8a, 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, - 0xc5cb, 0x9d91, 0x9d92, 0x9d93, 0xc7b1, 0x9d94, 0xc2ba, 0x9d95, - 0x9d96, 0x9d97, 0xe4ea, 0x9d98, 0x9d99, 0x9d9a, 0xc1ca, 0x9d9b, - 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0xccb6, 0xb3b1, 0x9da1, - 0x9da2, 0x9da3, 0xe4fb, 0x9da4, 0xe4f3, 0x9da5, 0x9da6, 0x9da7, - 0xe4fa, 0x9da8, 0xe4fd, 0x9da9, 0xe4fc, 0x9daa, 0x9dab, 0x9dac, - 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0xb3ce, 0x9db1, 0x9db2, 0x9db3, - 0xb3ba, 0xe4f7, 0x9db4, 0x9db5, 0xe4f9, 0xe4f8, 0xc5ec, 0x9db6, - 0x9db7, 0x9db8, 0x9db9, 0x9dba, 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, - 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2, 0xc0bd, 0x9dc3, 0x9dc4, 0x9dc5, - 0x9dc6, 0xd4e8, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca, 0x9dcb, 0xe5a2, - 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2, 0x9dd3, - 0x9dd4, 0x9dd5, 0x9dd6, 0xb0c4, 0x9dd7, 0x9dd8, 0xe5a4, 0x9dd9, - 0x9dda, 0xe5a3, 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, - 0xbca4, 0x9de1, 0xe5a5, 0x9de2, 0x9de3, 0x9de4, 0x9de5, 0x9de6, - 0x9de7, 0xe5a1, 0x9de8, 0x9de9, 0x9dea, 0x9deb, 0x9dec, 0x9ded, - 0x9dee, 0xe4fe, 0xb1f4, 0x9def, 0x9df0, 0x9df1, 0x9df2, 0x9df3, - 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0xe5a8, 0x9dfa, - 0xe5a9, 0xe5a6, 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9e40, 0x9e41, - 0x9e42, 0x9e43, 0x9e44, 0x9e45, 0x9e46, 0x9e47, 0xe5a7, 0xe5aa, - 0x9e48, 0x9e49, 0x9e4a, 0x9e4b, 0x9e4c, 0x9e4d, 0x9e4e, 0x9e4f, - 0x9e50, 0x9e51, 0x9e52, 0x9e53, 0x9e54, 0x9e55, 0x9e56, 0x9e57, - /* 0x7000 .. 0x70ff */ - 0x9e58, 0x9e59, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5d, 0x9e5e, 0x9e5f, - 0x9e60, 0x9e61, 0x9e62, 0x9e63, 0x9e64, 0x9e65, 0x9e66, 0x9e67, - 0x9e68, 0xc6d9, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e6d, 0x9e6e, - 0x9e6f, 0x9e70, 0xe5ab, 0xe5ad, 0x9e71, 0x9e72, 0x9e73, 0x9e74, - 0x9e75, 0x9e76, 0x9e77, 0xe5ac, 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, - 0x9e7c, 0x9e7d, 0x9e7e, 0x9e80, 0x9e81, 0x9e82, 0x9e83, 0x9e84, - 0x9e85, 0x9e86, 0x9e87, 0x9e88, 0x9e89, 0xe5af, 0x9e8a, 0x9e8b, - 0x9e8c, 0xe5ae, 0x9e8d, 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e92, - 0x9e93, 0x9e94, 0x9e95, 0x9e96, 0x9e97, 0x9e98, 0x9e99, 0x9e9a, - 0x9e9b, 0x9e9c, 0x9e9d, 0x9e9e, 0xb9e0, 0x9e9f, 0x9ea0, 0xe5b0, - 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, - 0x9ea9, 0x9eaa, 0x9eab, 0x9eac, 0x9ead, 0x9eae, 0xe5b1, 0x9eaf, - 0x9eb0, 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb4, 0x9eb5, 0x9eb6, 0x9eb7, - 0x9eb8, 0x9eb9, 0x9eba, 0xbbf0, 0xece1, 0xc3f0, 0x9ebb, 0xb5c6, - 0xbbd2, 0x9ebc, 0x9ebd, 0x9ebe, 0x9ebf, 0xc1e9, 0xd4ee, 0x9ec0, - 0xbec4, 0x9ec1, 0x9ec2, 0x9ec3, 0xd7c6, 0x9ec4, 0xd4d6, 0xb2d3, - 0xecbe, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, 0xeac1, 0x9ec9, 0x9eca, - 0x9ecb, 0xc2af, 0xb4b6, 0x9ecc, 0x9ecd, 0x9ece, 0xd1d7, 0x9ecf, - 0x9ed0, 0x9ed1, 0xb3b4, 0x9ed2, 0xc8b2, 0xbfbb, 0xecc0, 0x9ed3, - 0x9ed4, 0xd6cb, 0x9ed5, 0x9ed6, 0xecbf, 0xecc1, 0x9ed7, 0x9ed8, - 0x9ed9, 0x9eda, 0x9edb, 0x9edc, 0x9edd, 0x9ede, 0x9edf, 0x9ee0, - 0x9ee1, 0x9ee2, 0x9ee3, 0xecc5, 0xbee6, 0xccbf, 0xc5da, 0xbebc, - 0x9ee4, 0xecc6, 0x9ee5, 0xb1fe, 0x9ee6, 0x9ee7, 0x9ee8, 0xecc4, - 0xd5a8, 0xb5e3, 0x9ee9, 0xecc2, 0xc1b6, 0xb3e3, 0x9eea, 0x9eeb, - 0xecc3, 0xcbb8, 0xc0c3, 0xccfe, 0x9eec, 0x9eed, 0x9eee, 0x9eef, - 0xc1d2, 0x9ef0, 0xecc8, 0x9ef1, 0x9ef2, 0x9ef3, 0x9ef4, 0x9ef5, - 0x9ef6, 0x9ef7, 0x9ef8, 0x9ef9, 0x9efa, 0x9efb, 0x9efc, 0x9efd, - 0xbae6, 0xc0d3, 0x9efe, 0xd6f2, 0x9f40, 0x9f41, 0x9f42, 0xd1cc, - 0x9f43, 0x9f44, 0x9f45, 0x9f46, 0xbfbe, 0x9f47, 0xb7b3, 0xc9d5, - 0xecc7, 0xbbe2, 0x9f48, 0xcccc, 0xbdfd, 0xc8c8, 0x9f49, 0xcfa9, - 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f, 0x9f50, 0xcde9, - 0x9f51, 0xc5eb, 0x9f52, 0x9f53, 0x9f54, 0xb7e9, 0x9f55, 0x9f56, - /* 0x7100 .. 0x71ff */ - 0x9f57, 0x9f58, 0x9f59, 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f5e, - 0x9f5f, 0xd1c9, 0xbab8, 0x9f60, 0x9f61, 0x9f62, 0x9f63, 0x9f64, - 0xecc9, 0x9f65, 0x9f66, 0xecca, 0x9f67, 0xbbc0, 0xeccb, 0x9f68, - 0xece2, 0xb1ba, 0xb7d9, 0x9f69, 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, - 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f72, 0x9f73, 0xbdb9, 0x9f74, - 0x9f75, 0x9f76, 0x9f77, 0x9f78, 0x9f79, 0x9f7a, 0x9f7b, 0xeccc, - 0xd1e6, 0xeccd, 0x9f7c, 0x9f7d, 0x9f7e, 0x9f80, 0xc8bb, 0x9f81, - 0x9f82, 0x9f83, 0x9f84, 0x9f85, 0x9f86, 0x9f87, 0x9f88, 0x9f89, - 0x9f8a, 0x9f8b, 0x9f8c, 0x9f8d, 0x9f8e, 0xecd1, 0x9f8f, 0x9f90, - 0x9f91, 0x9f92, 0xecd3, 0x9f93, 0xbbcd, 0x9f94, 0xbce5, 0x9f95, - 0x9f96, 0x9f97, 0x9f98, 0x9f99, 0x9f9a, 0x9f9b, 0x9f9c, 0x9f9d, - 0x9f9e, 0x9f9f, 0x9fa0, 0x9fa1, 0xeccf, 0x9fa2, 0xc9b7, 0x9fa3, - 0x9fa4, 0x9fa5, 0x9fa6, 0x9fa7, 0xc3ba, 0x9fa8, 0xece3, 0xd5d5, - 0xecd0, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, 0x9fad, 0xd6f3, 0x9fae, - 0x9faf, 0x9fb0, 0xecd2, 0xecce, 0x9fb1, 0x9fb2, 0x9fb3, 0x9fb4, - 0xecd4, 0x9fb5, 0xecd5, 0x9fb6, 0x9fb7, 0xc9bf, 0x9fb8, 0x9fb9, - 0x9fba, 0x9fbb, 0x9fbc, 0x9fbd, 0xcfa8, 0x9fbe, 0x9fbf, 0x9fc0, - 0x9fc1, 0x9fc2, 0xd0dc, 0x9fc3, 0x9fc4, 0x9fc5, 0x9fc6, 0xd1ac, - 0x9fc7, 0x9fc8, 0x9fc9, 0x9fca, 0xc8db, 0x9fcb, 0x9fcc, 0x9fcd, - 0xecd6, 0xcef5, 0x9fce, 0x9fcf, 0x9fd0, 0x9fd1, 0x9fd2, 0xcaec, - 0xecda, 0x9fd3, 0x9fd4, 0x9fd5, 0x9fd6, 0x9fd7, 0x9fd8, 0x9fd9, - 0xecd9, 0x9fda, 0x9fdb, 0x9fdc, 0xb0be, 0x9fdd, 0x9fde, 0x9fdf, - 0x9fe0, 0x9fe1, 0x9fe2, 0xecd7, 0x9fe3, 0xecd8, 0x9fe4, 0x9fe5, - 0x9fe6, 0xece4, 0x9fe7, 0x9fe8, 0x9fe9, 0x9fea, 0x9feb, 0x9fec, - 0x9fed, 0x9fee, 0x9fef, 0xc8bc, 0x9ff0, 0x9ff1, 0x9ff2, 0x9ff3, - 0x9ff4, 0x9ff5, 0x9ff6, 0x9ff7, 0x9ff8, 0x9ff9, 0xc1c7, 0x9ffa, - 0x9ffb, 0x9ffc, 0x9ffd, 0x9ffe, 0xecdc, 0xd1e0, 0xa040, 0xa041, - 0xa042, 0xa043, 0xa044, 0xa045, 0xa046, 0xa047, 0xa048, 0xa049, - 0xecdb, 0xa04a, 0xa04b, 0xa04c, 0xa04d, 0xd4ef, 0xa04e, 0xecdd, - 0xa04f, 0xa050, 0xa051, 0xa052, 0xa053, 0xa054, 0xdbc6, 0xa055, - 0xa056, 0xa057, 0xa058, 0xa059, 0xa05a, 0xa05b, 0xa05c, 0xa05d, - 0xa05e, 0xecde, 0xa05f, 0xa060, 0xa061, 0xa062, 0xa063, 0xa064, - /* 0x7200 .. 0x72ff */ - 0xa065, 0xa066, 0xa067, 0xa068, 0xa069, 0xa06a, 0xb1ac, 0xa06b, - 0xa06c, 0xa06d, 0xa06e, 0xa06f, 0xa070, 0xa071, 0xa072, 0xa073, - 0xa074, 0xa075, 0xa076, 0xa077, 0xa078, 0xa079, 0xa07a, 0xa07b, - 0xa07c, 0xa07d, 0xa07e, 0xa080, 0xa081, 0xecdf, 0xa082, 0xa083, - 0xa084, 0xa085, 0xa086, 0xa087, 0xa088, 0xa089, 0xa08a, 0xa08b, - 0xece0, 0xa08c, 0xd7a6, 0xa08d, 0xc5c0, 0xa08e, 0xa08f, 0xa090, - 0xebbc, 0xb0ae, 0xa091, 0xa092, 0xa093, 0xbef4, 0xb8b8, 0xd2af, - 0xb0d6, 0xb5f9, 0xa094, 0xd8b3, 0xa095, 0xcbac, 0xa096, 0xe3dd, - 0xa097, 0xa098, 0xa099, 0xa09a, 0xa09b, 0xa09c, 0xa09d, 0xc6ac, - 0xb0e6, 0xa09e, 0xa09f, 0xa0a0, 0xc5c6, 0xebb9, 0xa0a1, 0xa0a2, - 0xa0a3, 0xa0a4, 0xebba, 0xa0a5, 0xa0a6, 0xa0a7, 0xebbb, 0xa0a8, - 0xa0a9, 0xd1c0, 0xa0aa, 0xc5a3, 0xa0ab, 0xeaf2, 0xa0ac, 0xc4b2, - 0xa0ad, 0xc4b5, 0xc0ce, 0xa0ae, 0xa0af, 0xa0b0, 0xeaf3, 0xc4c1, - 0xa0b1, 0xceef, 0xa0b2, 0xa0b3, 0xa0b4, 0xa0b5, 0xeaf0, 0xeaf4, - 0xa0b6, 0xa0b7, 0xc9fc, 0xa0b8, 0xa0b9, 0xc7a3, 0xa0ba, 0xa0bb, - 0xa0bc, 0xccd8, 0xcefe, 0xa0bd, 0xa0be, 0xa0bf, 0xeaf5, 0xeaf6, - 0xcfac, 0xc0e7, 0xa0c0, 0xa0c1, 0xeaf7, 0xa0c2, 0xa0c3, 0xa0c4, - 0xa0c5, 0xa0c6, 0xb6bf, 0xeaf8, 0xa0c7, 0xeaf9, 0xa0c8, 0xeafa, - 0xa0c9, 0xa0ca, 0xeafb, 0xa0cb, 0xa0cc, 0xa0cd, 0xa0ce, 0xa0cf, - 0xa0d0, 0xa0d1, 0xa0d2, 0xa0d3, 0xa0d4, 0xa0d5, 0xa0d6, 0xeaf1, - 0xa0d7, 0xa0d8, 0xa0d9, 0xa0da, 0xa0db, 0xa0dc, 0xa0dd, 0xa0de, - 0xa0df, 0xa0e0, 0xa0e1, 0xa0e2, 0xc8ae, 0xe1eb, 0xa0e3, 0xb7b8, - 0xe1ec, 0xa0e4, 0xa0e5, 0xa0e6, 0xe1ed, 0xa0e7, 0xd7b4, 0xe1ee, - 0xe1ef, 0xd3cc, 0xa0e8, 0xa0e9, 0xa0ea, 0xa0eb, 0xa0ec, 0xa0ed, - 0xa0ee, 0xe1f1, 0xbff1, 0xe1f0, 0xb5d2, 0xa0ef, 0xa0f0, 0xa0f1, - 0xb1b7, 0xa0f2, 0xa0f3, 0xa0f4, 0xa0f5, 0xe1f3, 0xe1f2, 0xa0f6, - 0xbafc, 0xa0f7, 0xe1f4, 0xa0f8, 0xa0f9, 0xa0fa, 0xa0fb, 0xb9b7, - 0xa0fc, 0xbed1, 0xa0fd, 0xa0fe, 0xaa40, 0xaa41, 0xc4fc, 0xaa42, - 0xbadd, 0xbdc6, 0xaa43, 0xaa44, 0xaa45, 0xaa46, 0xaa47, 0xaa48, - 0xe1f5, 0xe1f7, 0xaa49, 0xaa4a, 0xb6c0, 0xcfc1, 0xcaa8, 0xe1f6, - 0xd5f8, 0xd3fc, 0xe1f8, 0xe1fc, 0xe1f9, 0xaa4b, 0xaa4c, 0xe1fa, - 0xc0ea, 0xaa4d, 0xe1fe, 0xe2a1, 0xc0c7, 0xaa4e, 0xaa4f, 0xaa50, - /* 0x7300 .. 0x73ff */ - 0xaa51, 0xe1fb, 0xaa52, 0xe1fd, 0xaa53, 0xaa54, 0xaa55, 0xaa56, - 0xaa57, 0xaa58, 0xe2a5, 0xaa59, 0xaa5a, 0xaa5b, 0xc1d4, 0xaa5c, - 0xaa5d, 0xaa5e, 0xaa5f, 0xe2a3, 0xaa60, 0xe2a8, 0xb2fe, 0xe2a2, - 0xaa61, 0xaa62, 0xaa63, 0xc3cd, 0xb2c2, 0xe2a7, 0xe2a6, 0xaa64, - 0xaa65, 0xe2a4, 0xe2a9, 0xaa66, 0xaa67, 0xe2ab, 0xaa68, 0xaa69, - 0xaa6a, 0xd0c9, 0xd6ed, 0xc3a8, 0xe2ac, 0xaa6b, 0xcfd7, 0xaa6c, - 0xaa6d, 0xe2ae, 0xaa6e, 0xaa6f, 0xbaef, 0xaa70, 0xaa71, 0xe9e0, - 0xe2ad, 0xe2aa, 0xaa72, 0xaa73, 0xaa74, 0xaa75, 0xbbab, 0xd4b3, - 0xaa76, 0xaa77, 0xaa78, 0xaa79, 0xaa7a, 0xaa7b, 0xaa7c, 0xaa7d, - 0xaa7e, 0xaa80, 0xaa81, 0xaa82, 0xaa83, 0xe2b0, 0xaa84, 0xaa85, - 0xe2af, 0xaa86, 0xe9e1, 0xaa87, 0xaa88, 0xaa89, 0xaa8a, 0xe2b1, - 0xaa8b, 0xaa8c, 0xaa8d, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa92, - 0xe2b2, 0xaa93, 0xaa94, 0xaa95, 0xaa96, 0xaa97, 0xaa98, 0xaa99, - 0xaa9a, 0xaa9b, 0xaa9c, 0xaa9d, 0xe2b3, 0xcca1, 0xaa9e, 0xe2b4, - 0xaa9f, 0xaaa0, 0xab40, 0xab41, 0xab42, 0xab43, 0xab44, 0xab45, - 0xab46, 0xab47, 0xab48, 0xab49, 0xab4a, 0xab4b, 0xe2b5, 0xab4c, - 0xab4d, 0xab4e, 0xab4f, 0xab50, 0xd0fe, 0xab51, 0xab52, 0xc2ca, - 0xab53, 0xd3f1, 0xab54, 0xcdf5, 0xab55, 0xab56, 0xe7e0, 0xab57, - 0xab58, 0xe7e1, 0xab59, 0xab5a, 0xab5b, 0xab5c, 0xbec1, 0xab5d, - 0xab5e, 0xab5f, 0xab60, 0xc2ea, 0xab61, 0xab62, 0xab63, 0xe7e4, - 0xab64, 0xab65, 0xe7e3, 0xab66, 0xab67, 0xab68, 0xab69, 0xab6a, - 0xab6b, 0xcde6, 0xab6c, 0xc3b5, 0xab6d, 0xab6e, 0xe7e2, 0xbbb7, - 0xcfd6, 0xab6f, 0xc1e1, 0xe7e9, 0xab70, 0xab71, 0xab72, 0xe7e8, - 0xab73, 0xab74, 0xe7f4, 0xb2a3, 0xab75, 0xab76, 0xab77, 0xab78, - 0xe7ea, 0xab79, 0xe7e6, 0xab7a, 0xab7b, 0xab7c, 0xab7d, 0xab7e, - 0xe7ec, 0xe7eb, 0xc9ba, 0xab80, 0xab81, 0xd5e4, 0xab82, 0xe7e5, - 0xb7a9, 0xe7e7, 0xab83, 0xab84, 0xab85, 0xab86, 0xab87, 0xab88, - 0xab89, 0xe7ee, 0xab8a, 0xab8b, 0xab8c, 0xab8d, 0xe7f3, 0xab8e, - 0xd6e9, 0xab8f, 0xab90, 0xab91, 0xab92, 0xe7ed, 0xab93, 0xe7f2, - 0xab94, 0xe7f1, 0xab95, 0xab96, 0xab97, 0xb0e0, 0xab98, 0xab99, - 0xab9a, 0xab9b, 0xe7f5, 0xab9c, 0xab9d, 0xab9e, 0xab9f, 0xaba0, - 0xac40, 0xac41, 0xac42, 0xac43, 0xac44, 0xac45, 0xac46, 0xac47, - /* 0x7400 .. 0x74ff */ - 0xac48, 0xac49, 0xac4a, 0xc7f2, 0xac4b, 0xc0c5, 0xc0ed, 0xac4c, - 0xac4d, 0xc1f0, 0xe7f0, 0xac4e, 0xac4f, 0xac50, 0xac51, 0xe7f6, - 0xcbf6, 0xac52, 0xac53, 0xac54, 0xac55, 0xac56, 0xac57, 0xac58, - 0xac59, 0xac5a, 0xe8a2, 0xe8a1, 0xac5b, 0xac5c, 0xac5d, 0xac5e, - 0xac5f, 0xac60, 0xd7c1, 0xac61, 0xac62, 0xe7fa, 0xe7f9, 0xac63, - 0xe7fb, 0xac64, 0xe7f7, 0xac65, 0xe7fe, 0xac66, 0xe7fd, 0xac67, - 0xe7fc, 0xac68, 0xac69, 0xc1d5, 0xc7d9, 0xc5fd, 0xc5c3, 0xac6a, - 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xc7ed, 0xac6f, 0xac70, 0xac71, - 0xac72, 0xe8a3, 0xac73, 0xac74, 0xac75, 0xac76, 0xac77, 0xac78, - 0xac79, 0xac7a, 0xac7b, 0xac7c, 0xac7d, 0xac7e, 0xac80, 0xac81, - 0xac82, 0xac83, 0xac84, 0xac85, 0xac86, 0xe8a6, 0xac87, 0xe8a5, - 0xac88, 0xe8a7, 0xbaf7, 0xe7f8, 0xe8a4, 0xac89, 0xc8f0, 0xc9aa, - 0xac8a, 0xac8b, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, 0xac91, - 0xac92, 0xac93, 0xac94, 0xac95, 0xac96, 0xe8a9, 0xac97, 0xac98, - 0xb9e5, 0xac99, 0xac9a, 0xac9b, 0xac9c, 0xac9d, 0xd1fe, 0xe8a8, - 0xac9e, 0xac9f, 0xaca0, 0xad40, 0xad41, 0xad42, 0xe8aa, 0xad43, - 0xe8ad, 0xe8ae, 0xad44, 0xc1a7, 0xad45, 0xad46, 0xad47, 0xe8af, - 0xad48, 0xad49, 0xad4a, 0xe8b0, 0xad4b, 0xad4c, 0xe8ac, 0xad4d, - 0xe8b4, 0xad4e, 0xad4f, 0xad50, 0xad51, 0xad52, 0xad53, 0xad54, - 0xad55, 0xad56, 0xad57, 0xad58, 0xe8ab, 0xad59, 0xe8b1, 0xad5a, - 0xad5b, 0xad5c, 0xad5d, 0xad5e, 0xad5f, 0xad60, 0xad61, 0xe8b5, - 0xe8b2, 0xe8b3, 0xad62, 0xad63, 0xad64, 0xad65, 0xad66, 0xad67, - 0xad68, 0xad69, 0xad6a, 0xad6b, 0xad6c, 0xad6d, 0xad6e, 0xad6f, - 0xad70, 0xad71, 0xe8b7, 0xad72, 0xad73, 0xad74, 0xad75, 0xad76, - 0xad77, 0xad78, 0xad79, 0xad7a, 0xad7b, 0xad7c, 0xad7d, 0xad7e, - 0xad80, 0xad81, 0xad82, 0xad83, 0xad84, 0xad85, 0xad86, 0xad87, - 0xad88, 0xad89, 0xe8b6, 0xad8a, 0xad8b, 0xad8c, 0xad8d, 0xad8e, - 0xad8f, 0xad90, 0xad91, 0xad92, 0xb9cf, 0xad93, 0xf0ac, 0xad94, - 0xf0ad, 0xad95, 0xc6b0, 0xb0ea, 0xc8bf, 0xad96, 0xcddf, 0xad97, - 0xad98, 0xad99, 0xad9a, 0xad9b, 0xad9c, 0xad9d, 0xcecd, 0xeab1, - 0xad9e, 0xad9f, 0xada0, 0xae40, 0xeab2, 0xae41, 0xc6bf, 0xb4c9, - 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae47, 0xae48, 0xeab3, - /* 0x7500 .. 0x75ff */ - 0xae49, 0xae4a, 0xae4b, 0xae4c, 0xd5e7, 0xae4d, 0xae4e, 0xae4f, - 0xae50, 0xae51, 0xae52, 0xae53, 0xae54, 0xddf9, 0xae55, 0xeab4, - 0xae56, 0xeab5, 0xae57, 0xeab6, 0xae58, 0xae59, 0xae5a, 0xae5b, - 0xb8ca, 0xdfb0, 0xc9f5, 0xae5c, 0xccf0, 0xae5d, 0xae5e, 0xc9fa, - 0xae5f, 0xae60, 0xae61, 0xae62, 0xae63, 0xc9fb, 0xae64, 0xae65, - 0xd3c3, 0xcba6, 0xae66, 0xb8a6, 0xf0ae, 0xb1c2, 0xae67, 0xe5b8, - 0xccef, 0xd3c9, 0xbcd7, 0xc9ea, 0xae68, 0xb5e7, 0xae69, 0xc4d0, - 0xb5e9, 0xae6a, 0xeeae, 0xbbad, 0xae6b, 0xae6c, 0xe7de, 0xae6d, - 0xeeaf, 0xae6e, 0xae6f, 0xae70, 0xae71, 0xb3a9, 0xae72, 0xae73, - 0xeeb2, 0xae74, 0xae75, 0xeeb1, 0xbde7, 0xae76, 0xeeb0, 0xceb7, - 0xae77, 0xae78, 0xae79, 0xae7a, 0xc5cf, 0xae7b, 0xae7c, 0xae7d, - 0xae7e, 0xc1f4, 0xdbce, 0xeeb3, 0xd0f3, 0xae80, 0xae81, 0xae82, - 0xae83, 0xae84, 0xae85, 0xae86, 0xae87, 0xc2d4, 0xc6e8, 0xae88, - 0xae89, 0xae8a, 0xb7ac, 0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xae8f, - 0xae90, 0xae91, 0xeeb4, 0xae92, 0xb3eb, 0xae93, 0xae94, 0xae95, - 0xbbfb, 0xeeb5, 0xae96, 0xae97, 0xae98, 0xae99, 0xae9a, 0xe7dc, - 0xae9b, 0xae9c, 0xae9d, 0xeeb6, 0xae9e, 0xae9f, 0xbdae, 0xaea0, - 0xaf40, 0xaf41, 0xaf42, 0xf1e2, 0xaf43, 0xaf44, 0xaf45, 0xcae8, - 0xaf46, 0xd2c9, 0xf0da, 0xaf47, 0xf0db, 0xaf48, 0xf0dc, 0xc1c6, - 0xaf49, 0xb8ed, 0xbece, 0xaf4a, 0xaf4b, 0xf0de, 0xaf4c, 0xc5b1, - 0xf0dd, 0xd1f1, 0xaf4d, 0xf0e0, 0xb0cc, 0xbdea, 0xaf4e, 0xaf4f, - 0xaf50, 0xaf51, 0xaf52, 0xd2df, 0xf0df, 0xaf53, 0xb4af, 0xb7e8, - 0xf0e6, 0xf0e5, 0xc6a3, 0xf0e1, 0xf0e2, 0xb4c3, 0xaf54, 0xaf55, - 0xf0e3, 0xd5ee, 0xaf56, 0xaf57, 0xccdb, 0xbed2, 0xbcb2, 0xaf58, - 0xaf59, 0xaf5a, 0xf0e8, 0xf0e7, 0xf0e4, 0xb2a1, 0xaf5b, 0xd6a2, - 0xd3b8, 0xbeb7, 0xc8ac, 0xaf5c, 0xaf5d, 0xf0ea, 0xaf5e, 0xaf5f, - 0xaf60, 0xaf61, 0xd1f7, 0xaf62, 0xd6cc, 0xbadb, 0xf0e9, 0xaf63, - 0xb6bb, 0xaf64, 0xaf65, 0xcdb4, 0xaf66, 0xaf67, 0xc6a6, 0xaf68, - 0xaf69, 0xaf6a, 0xc1a1, 0xf0eb, 0xf0ee, 0xaf6b, 0xf0ed, 0xf0f0, - 0xf0ec, 0xaf6c, 0xbbbe, 0xf0ef, 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, - 0xccb5, 0xf0f2, 0xaf71, 0xaf72, 0xb3d5, 0xaf73, 0xaf74, 0xaf75, - 0xaf76, 0xb1d4, 0xaf77, 0xaf78, 0xf0f3, 0xaf79, 0xaf7a, 0xf0f4, - /* 0x7600 .. 0x76ff */ - 0xf0f6, 0xb4e1, 0xaf7b, 0xf0f1, 0xaf7c, 0xf0f7, 0xaf7d, 0xaf7e, - 0xaf80, 0xaf81, 0xf0fa, 0xaf82, 0xf0f8, 0xaf83, 0xaf84, 0xaf85, - 0xf0f5, 0xaf86, 0xaf87, 0xaf88, 0xaf89, 0xf0fd, 0xaf8a, 0xf0f9, - 0xf0fc, 0xf0fe, 0xaf8b, 0xf1a1, 0xaf8c, 0xaf8d, 0xaf8e, 0xcec1, - 0xf1a4, 0xaf8f, 0xf1a3, 0xaf90, 0xc1f6, 0xf0fb, 0xcadd, 0xaf91, - 0xaf92, 0xb4f1, 0xb1f1, 0xccb1, 0xaf93, 0xf1a6, 0xaf94, 0xaf95, - 0xf1a7, 0xaf96, 0xaf97, 0xf1ac, 0xd5ce, 0xf1a9, 0xaf98, 0xaf99, - 0xc8b3, 0xaf9a, 0xaf9b, 0xaf9c, 0xf1a2, 0xaf9d, 0xf1ab, 0xf1a8, - 0xf1a5, 0xaf9e, 0xaf9f, 0xf1aa, 0xafa0, 0xb040, 0xb041, 0xb042, - 0xb043, 0xb044, 0xb045, 0xb046, 0xb0a9, 0xf1ad, 0xb047, 0xb048, - 0xb049, 0xb04a, 0xb04b, 0xb04c, 0xf1af, 0xb04d, 0xf1b1, 0xb04e, - 0xb04f, 0xb050, 0xb051, 0xb052, 0xf1b0, 0xb053, 0xf1ae, 0xb054, - 0xb055, 0xb056, 0xb057, 0xd1a2, 0xb058, 0xb059, 0xb05a, 0xb05b, - 0xb05c, 0xb05d, 0xb05e, 0xf1b2, 0xb05f, 0xb060, 0xb061, 0xf1b3, - 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, 0xb069, - 0xb9ef, 0xb06a, 0xb06b, 0xb5c7, 0xb06c, 0xb0d7, 0xb0d9, 0xb06d, - 0xb06e, 0xb06f, 0xd4ed, 0xb070, 0xb5c4, 0xb071, 0xbdd4, 0xbbca, - 0xf0a7, 0xb072, 0xb073, 0xb8de, 0xb074, 0xb075, 0xf0a8, 0xb076, - 0xb077, 0xb0a8, 0xb078, 0xf0a9, 0xb079, 0xb07a, 0xcdee, 0xb07b, - 0xb07c, 0xf0aa, 0xb07d, 0xb07e, 0xb080, 0xb081, 0xb082, 0xb083, - 0xb084, 0xb085, 0xb086, 0xb087, 0xf0ab, 0xb088, 0xb089, 0xb08a, - 0xb08b, 0xb08c, 0xb08d, 0xb08e, 0xb08f, 0xb090, 0xc6a4, 0xb091, - 0xb092, 0xd6e5, 0xf1e4, 0xb093, 0xf1e5, 0xb094, 0xb095, 0xb096, - 0xb097, 0xb098, 0xb099, 0xb09a, 0xb09b, 0xb09c, 0xb09d, 0xc3f3, - 0xb09e, 0xb09f, 0xd3db, 0xb0a0, 0xb140, 0xd6d1, 0xc5e8, 0xb141, - 0xd3af, 0xb142, 0xd2e6, 0xb143, 0xb144, 0xeec1, 0xb0bb, 0xd5b5, - 0xd1ce, 0xbce0, 0xbad0, 0xb145, 0xbff8, 0xb146, 0xb8c7, 0xb5c1, - 0xc5cc, 0xb147, 0xb148, 0xcaa2, 0xb149, 0xb14a, 0xb14b, 0xc3cb, - 0xb14c, 0xb14d, 0xb14e, 0xb14f, 0xb150, 0xeec2, 0xb151, 0xb152, - 0xb153, 0xb154, 0xb155, 0xb156, 0xb157, 0xb158, 0xc4bf, 0xb6a2, - 0xb159, 0xedec, 0xc3a4, 0xb15a, 0xd6b1, 0xb15b, 0xb15c, 0xb15d, - 0xcfe0, 0xedef, 0xb15e, 0xb15f, 0xc5ce, 0xb160, 0xb6dc, 0xb161, - /* 0x7700 .. 0x77ff */ - 0xb162, 0xcaa1, 0xb163, 0xb164, 0xeded, 0xb165, 0xb166, 0xedf0, - 0xedf1, 0xc3bc, 0xb167, 0xbfb4, 0xb168, 0xedee, 0xb169, 0xb16a, - 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, 0xb171, 0xb172, - 0xb173, 0xedf4, 0xedf2, 0xb174, 0xb175, 0xb176, 0xb177, 0xd5e6, - 0xc3df, 0xb178, 0xedf3, 0xb179, 0xb17a, 0xb17b, 0xedf6, 0xb17c, - 0xd5a3, 0xd1a3, 0xb17d, 0xb17e, 0xb180, 0xedf5, 0xb181, 0xc3d0, - 0xb182, 0xb183, 0xb184, 0xb185, 0xb186, 0xedf7, 0xbff4, 0xbeec, - 0xedf8, 0xb187, 0xccf7, 0xb188, 0xd1db, 0xb189, 0xb18a, 0xb18b, - 0xd7c5, 0xd5f6, 0xb18c, 0xedfc, 0xb18d, 0xb18e, 0xb18f, 0xedfb, - 0xb190, 0xb191, 0xb192, 0xb193, 0xb194, 0xb195, 0xb196, 0xb197, - 0xedf9, 0xedfa, 0xb198, 0xb199, 0xb19a, 0xb19b, 0xb19c, 0xb19d, - 0xb19e, 0xb19f, 0xedfd, 0xbea6, 0xb1a0, 0xb240, 0xb241, 0xb242, - 0xb243, 0xcbaf, 0xeea1, 0xb6bd, 0xb244, 0xeea2, 0xc4c0, 0xb245, - 0xedfe, 0xb246, 0xb247, 0xbdde, 0xb2c7, 0xb248, 0xb249, 0xb24a, - 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, 0xb252, - 0xb253, 0xb6c3, 0xb254, 0xb255, 0xb256, 0xeea5, 0xd8ba, 0xeea3, - 0xeea6, 0xb257, 0xb258, 0xb259, 0xc3e9, 0xb3f2, 0xb25a, 0xb25b, - 0xb25c, 0xb25d, 0xb25e, 0xb25f, 0xeea7, 0xeea4, 0xcfb9, 0xb260, - 0xb261, 0xeea8, 0xc2f7, 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, - 0xb267, 0xb268, 0xb269, 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xeea9, - 0xeeaa, 0xb26e, 0xdeab, 0xb26f, 0xb270, 0xc6b3, 0xb271, 0xc7c6, - 0xb272, 0xd6f5, 0xb5c9, 0xb273, 0xcbb2, 0xb274, 0xb275, 0xb276, - 0xeeab, 0xb277, 0xb278, 0xcdab, 0xb279, 0xeeac, 0xb27a, 0xb27b, - 0xb27c, 0xb27d, 0xb27e, 0xd5b0, 0xb280, 0xeead, 0xb281, 0xf6c4, - 0xb282, 0xb283, 0xb284, 0xb285, 0xb286, 0xb287, 0xb288, 0xb289, - 0xb28a, 0xb28b, 0xb28c, 0xb28d, 0xb28e, 0xdbc7, 0xb28f, 0xb290, - 0xb291, 0xb292, 0xb293, 0xb294, 0xb295, 0xb296, 0xb297, 0xb4a3, - 0xb298, 0xb299, 0xb29a, 0xc3ac, 0xf1e6, 0xb29b, 0xb29c, 0xb29d, - 0xb29e, 0xb29f, 0xcab8, 0xd2d3, 0xb2a0, 0xd6aa, 0xb340, 0xeff2, - 0xb341, 0xbed8, 0xb342, 0xbdc3, 0xeff3, 0xb6cc, 0xb0ab, 0xb343, - 0xb344, 0xb345, 0xb346, 0xcaaf, 0xb347, 0xb348, 0xedb6, 0xb349, - 0xedb7, 0xb34a, 0xb34b, 0xb34c, 0xb34d, 0xcef9, 0xb7af, 0xbff3, - /* 0x7800 .. 0x78ff */ - 0xedb8, 0xc2eb, 0xc9b0, 0xb34e, 0xb34f, 0xb350, 0xb351, 0xb352, - 0xb353, 0xedb9, 0xb354, 0xb355, 0xc6f6, 0xbfb3, 0xb356, 0xb357, - 0xb358, 0xedbc, 0xc5f8, 0xb359, 0xd1d0, 0xb35a, 0xd7a9, 0xedba, - 0xedbb, 0xb35b, 0xd1e2, 0xb35c, 0xedbf, 0xedc0, 0xb35d, 0xedc4, - 0xb35e, 0xb35f, 0xb360, 0xedc8, 0xb361, 0xedc6, 0xedce, 0xd5e8, - 0xb362, 0xedc9, 0xb363, 0xb364, 0xedc7, 0xedbe, 0xb365, 0xb366, - 0xc5e9, 0xb367, 0xb368, 0xb369, 0xc6c6, 0xb36a, 0xb36b, 0xc9e9, - 0xd4d2, 0xedc1, 0xedc2, 0xedc3, 0xedc5, 0xb36c, 0xc0f9, 0xb36d, - 0xb4a1, 0xb36e, 0xb36f, 0xb370, 0xb371, 0xb9e8, 0xb372, 0xedd0, - 0xb373, 0xb374, 0xb375, 0xb376, 0xedd1, 0xb377, 0xedca, 0xb378, - 0xedcf, 0xb379, 0xcef8, 0xb37a, 0xb37b, 0xcbb6, 0xedcc, 0xedcd, - 0xb37c, 0xb37d, 0xb37e, 0xb380, 0xb381, 0xcff5, 0xb382, 0xb383, - 0xb384, 0xb385, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a, 0xb38b, - 0xb38c, 0xb38d, 0xedd2, 0xc1f2, 0xd3b2, 0xedcb, 0xc8b7, 0xb38e, - 0xb38f, 0xb390, 0xb391, 0xb392, 0xb393, 0xb394, 0xb395, 0xbcef, - 0xb396, 0xb397, 0xb398, 0xb399, 0xc5f0, 0xb39a, 0xb39b, 0xb39c, - 0xb39d, 0xb39e, 0xb39f, 0xb3a0, 0xb440, 0xb441, 0xb442, 0xedd6, - 0xb443, 0xb5ef, 0xb444, 0xb445, 0xc2b5, 0xb0ad, 0xcbe9, 0xb446, - 0xb447, 0xb1ae, 0xb448, 0xedd4, 0xb449, 0xb44a, 0xb44b, 0xcdeb, - 0xb5e2, 0xb44c, 0xedd5, 0xedd3, 0xedd7, 0xb44d, 0xb44e, 0xb5fa, - 0xb44f, 0xedd8, 0xb450, 0xedd9, 0xb451, 0xeddc, 0xb452, 0xb1cc, - 0xb453, 0xb454, 0xb455, 0xb456, 0xb457, 0xb458, 0xb459, 0xb45a, - 0xc5f6, 0xbcee, 0xedda, 0xccbc, 0xb2ea, 0xb45b, 0xb45c, 0xb45d, - 0xb45e, 0xeddb, 0xb45f, 0xb460, 0xb461, 0xb462, 0xc4eb, 0xb463, - 0xb464, 0xb4c5, 0xb465, 0xb466, 0xb467, 0xb0f5, 0xb468, 0xb469, - 0xb46a, 0xeddf, 0xc0da, 0xb4e8, 0xb46b, 0xb46c, 0xb46d, 0xb46e, - 0xc5cd, 0xb46f, 0xb470, 0xb471, 0xeddd, 0xbfc4, 0xb472, 0xb473, - 0xb474, 0xedde, 0xb475, 0xb476, 0xb477, 0xb478, 0xb479, 0xb47a, - 0xb47b, 0xb47c, 0xb47d, 0xb47e, 0xb480, 0xb481, 0xb482, 0xb483, - 0xc4a5, 0xb484, 0xb485, 0xb486, 0xede0, 0xb487, 0xb488, 0xb489, - 0xb48a, 0xb48b, 0xede1, 0xb48c, 0xede3, 0xb48d, 0xb48e, 0xc1d7, - 0xb48f, 0xb490, 0xbbc7, 0xb491, 0xb492, 0xb493, 0xb494, 0xb495, - /* 0x7900 .. 0x79ff */ - 0xb496, 0xbdb8, 0xb497, 0xb498, 0xb499, 0xede2, 0xb49a, 0xb49b, - 0xb49c, 0xb49d, 0xb49e, 0xb49f, 0xb4a0, 0xb540, 0xb541, 0xb542, - 0xb543, 0xb544, 0xb545, 0xede4, 0xb546, 0xb547, 0xb548, 0xb549, - 0xb54a, 0xb54b, 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xede6, 0xb550, - 0xb551, 0xb552, 0xb553, 0xb554, 0xede5, 0xb555, 0xb556, 0xb557, - 0xb558, 0xb559, 0xb55a, 0xb55b, 0xb55c, 0xb55d, 0xb55e, 0xb55f, - 0xb560, 0xb561, 0xb562, 0xb563, 0xede7, 0xb564, 0xb565, 0xb566, - 0xb567, 0xb568, 0xcabe, 0xecea, 0xc0f1, 0xb569, 0xc9e7, 0xb56a, - 0xeceb, 0xc6ee, 0xb56b, 0xb56c, 0xb56d, 0xb56e, 0xecec, 0xb56f, - 0xc6ed, 0xeced, 0xb570, 0xb571, 0xb572, 0xb573, 0xb574, 0xb575, - 0xb576, 0xb577, 0xb578, 0xecf0, 0xb579, 0xb57a, 0xd7e6, 0xecf3, - 0xb57b, 0xb57c, 0xecf1, 0xecee, 0xecef, 0xd7a3, 0xc9f1, 0xcbee, - 0xecf4, 0xb57d, 0xecf2, 0xb57e, 0xb580, 0xcfe9, 0xb581, 0xecf6, - 0xc6b1, 0xb582, 0xb583, 0xb584, 0xb585, 0xbcc0, 0xb586, 0xecf5, - 0xb587, 0xb588, 0xb589, 0xb58a, 0xb58b, 0xb58c, 0xb58d, 0xb5bb, - 0xbbf6, 0xb58e, 0xecf7, 0xb58f, 0xb590, 0xb591, 0xb592, 0xb593, - 0xd9f7, 0xbdfb, 0xb594, 0xb595, 0xc2bb, 0xecf8, 0xb596, 0xb597, - 0xb598, 0xb599, 0xecf9, 0xb59a, 0xb59b, 0xb59c, 0xb59d, 0xb8a3, - 0xb59e, 0xb59f, 0xb5a0, 0xb640, 0xb641, 0xb642, 0xb643, 0xb644, - 0xb645, 0xb646, 0xecfa, 0xb647, 0xb648, 0xb649, 0xb64a, 0xb64b, - 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651, 0xb652, 0xecfb, - 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, 0xb65a, - 0xb65b, 0xb65c, 0xb65d, 0xecfc, 0xb65e, 0xb65f, 0xb660, 0xb661, - 0xb662, 0xd3ed, 0xd8ae, 0xc0eb, 0xb663, 0xc7dd, 0xbacc, 0xb664, - 0xd0e3, 0xcbbd, 0xb665, 0xcdba, 0xb666, 0xb667, 0xb8d1, 0xb668, - 0xb669, 0xb1fc, 0xb66a, 0xc7ef, 0xb66b, 0xd6d6, 0xb66c, 0xb66d, - 0xb66e, 0xbfc6, 0xc3eb, 0xb66f, 0xb670, 0xeff5, 0xb671, 0xb672, - 0xc3d8, 0xb673, 0xb674, 0xb675, 0xb676, 0xb677, 0xb678, 0xd7e2, - 0xb679, 0xb67a, 0xb67b, 0xeff7, 0xb3d3, 0xb67c, 0xc7d8, 0xd1ed, - 0xb67d, 0xd6c8, 0xb67e, 0xeff8, 0xb680, 0xeff6, 0xb681, 0xbbfd, - 0xb3c6, 0xb682, 0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, - 0xbdd5, 0xb689, 0xb68a, 0xd2c6, 0xb68b, 0xbbe0, 0xb68c, 0xb68d, - /* 0x7a00 .. 0x7aff */ - 0xcfa1, 0xb68e, 0xeffc, 0xeffb, 0xb68f, 0xb690, 0xeff9, 0xb691, - 0xb692, 0xb693, 0xb694, 0xb3cc, 0xb695, 0xc9d4, 0xcbb0, 0xb696, - 0xb697, 0xb698, 0xb699, 0xb69a, 0xeffe, 0xb69b, 0xb69c, 0xb0de, - 0xb69d, 0xb69e, 0xd6c9, 0xb69f, 0xb6a0, 0xb740, 0xeffd, 0xb741, - 0xb3ed, 0xb742, 0xb743, 0xf6d5, 0xb744, 0xb745, 0xb746, 0xb747, - 0xb748, 0xb749, 0xb74a, 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xb74f, - 0xb750, 0xb751, 0xb752, 0xcec8, 0xb753, 0xb754, 0xb755, 0xf0a2, - 0xb756, 0xf0a1, 0xb757, 0xb5be, 0xbcda, 0xbbfc, 0xb758, 0xb8e5, - 0xb759, 0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb75e, 0xc4c2, 0xb75f, - 0xb760, 0xb761, 0xb762, 0xb763, 0xb764, 0xb765, 0xb766, 0xb767, - 0xb768, 0xf0a3, 0xb769, 0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xcbeb, - 0xb76e, 0xb76f, 0xb770, 0xb771, 0xb772, 0xb773, 0xb774, 0xb775, - 0xb776, 0xb777, 0xb778, 0xb779, 0xb77a, 0xb77b, 0xb77c, 0xb77d, - 0xb77e, 0xb780, 0xb781, 0xb782, 0xb783, 0xb784, 0xb785, 0xb786, - 0xf0a6, 0xb787, 0xb788, 0xb789, 0xd1a8, 0xb78a, 0xbebf, 0xc7ee, - 0xf1b6, 0xf1b7, 0xbfd5, 0xb78b, 0xb78c, 0xb78d, 0xb78e, 0xb4a9, - 0xf1b8, 0xcdbb, 0xb78f, 0xc7d4, 0xd5ad, 0xb790, 0xf1b9, 0xb791, - 0xf1ba, 0xb792, 0xb793, 0xb794, 0xb795, 0xc7cf, 0xb796, 0xb797, - 0xb798, 0xd2a4, 0xd6cf, 0xb799, 0xb79a, 0xf1bb, 0xbdd1, 0xb4b0, - 0xbebd, 0xb79b, 0xb79c, 0xb79d, 0xb4dc, 0xced1, 0xb79e, 0xbfdf, - 0xf1bd, 0xb79f, 0xb7a0, 0xb840, 0xb841, 0xbffa, 0xf1bc, 0xb842, - 0xf1bf, 0xb843, 0xb844, 0xb845, 0xf1be, 0xf1c0, 0xb846, 0xb847, - 0xb848, 0xb849, 0xb84a, 0xf1c1, 0xb84b, 0xb84c, 0xb84d, 0xb84e, - 0xb84f, 0xb850, 0xb851, 0xb852, 0xb853, 0xb854, 0xb855, 0xc1fe, - 0xb856, 0xb857, 0xb858, 0xb859, 0xb85a, 0xb85b, 0xb85c, 0xb85d, - 0xb85e, 0xb85f, 0xb860, 0xc1a2, 0xb861, 0xb862, 0xb863, 0xb864, - 0xb865, 0xb866, 0xb867, 0xb868, 0xb869, 0xb86a, 0xcafa, 0xb86b, - 0xb86c, 0xd5be, 0xb86d, 0xb86e, 0xb86f, 0xb870, 0xbeba, 0xbeb9, - 0xd5c2, 0xb871, 0xb872, 0xbfa2, 0xb873, 0xcdaf, 0xf1b5, 0xb874, - 0xb875, 0xb876, 0xb877, 0xb878, 0xb879, 0xbddf, 0xb87a, 0xb6cb, - 0xb87b, 0xb87c, 0xb87d, 0xb87e, 0xb880, 0xb881, 0xb882, 0xb883, - 0xb884, 0xd6f1, 0xf3c3, 0xb885, 0xb886, 0xf3c4, 0xb887, 0xb8cd, - /* 0x7b00 .. 0x7bff */ - 0xb888, 0xb889, 0xb88a, 0xf3c6, 0xf3c7, 0xb88b, 0xb0ca, 0xb88c, - 0xf3c5, 0xb88d, 0xf3c9, 0xcbf1, 0xb88e, 0xb88f, 0xb890, 0xf3cb, - 0xb891, 0xd0a6, 0xb892, 0xb893, 0xb1ca, 0xf3c8, 0xb894, 0xb895, - 0xb896, 0xf3cf, 0xb897, 0xb5d1, 0xb898, 0xb899, 0xf3d7, 0xb89a, - 0xf3d2, 0xb89b, 0xb89c, 0xb89d, 0xf3d4, 0xf3d3, 0xb7fb, 0xb89e, - 0xb1bf, 0xb89f, 0xf3ce, 0xf3ca, 0xb5da, 0xb8a0, 0xf3d0, 0xb940, - 0xb941, 0xf3d1, 0xb942, 0xf3d5, 0xb943, 0xb944, 0xb945, 0xb946, - 0xf3cd, 0xb947, 0xbce3, 0xb948, 0xc1fd, 0xb949, 0xf3d6, 0xb94a, - 0xb94b, 0xb94c, 0xb94d, 0xb94e, 0xb94f, 0xf3da, 0xb950, 0xf3cc, - 0xb951, 0xb5c8, 0xb952, 0xbdee, 0xf3dc, 0xb953, 0xb954, 0xb7a4, - 0xbff0, 0xd6fe, 0xcdb2, 0xb955, 0xb4f0, 0xb956, 0xb2df, 0xb957, - 0xf3d8, 0xb958, 0xf3d9, 0xc9b8, 0xb959, 0xf3dd, 0xb95a, 0xb95b, - 0xf3de, 0xb95c, 0xf3e1, 0xb95d, 0xb95e, 0xb95f, 0xb960, 0xb961, - 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xf3df, 0xb968, - 0xb969, 0xf3e3, 0xf3e2, 0xb96a, 0xb96b, 0xf3db, 0xb96c, 0xbfea, - 0xb96d, 0xb3ef, 0xb96e, 0xf3e0, 0xb96f, 0xb970, 0xc7a9, 0xb971, - 0xbcf2, 0xb972, 0xb973, 0xb974, 0xb975, 0xf3eb, 0xb976, 0xb977, - 0xb978, 0xb979, 0xb97a, 0xb97b, 0xb97c, 0xb9bf, 0xb97d, 0xb97e, - 0xf3e4, 0xb980, 0xb981, 0xb982, 0xb2ad, 0xbbfe, 0xb983, 0xcbe3, - 0xb984, 0xb985, 0xb986, 0xb987, 0xf3ed, 0xf3e9, 0xb988, 0xb989, - 0xb98a, 0xb9dc, 0xf3ee, 0xb98b, 0xb98c, 0xb98d, 0xf3e5, 0xf3e6, - 0xf3ea, 0xc2e1, 0xf3ec, 0xf3ef, 0xf3e8, 0xbcfd, 0xb98e, 0xb98f, - 0xb990, 0xcfe4, 0xb991, 0xb992, 0xf3f0, 0xb993, 0xb994, 0xb995, - 0xf3e7, 0xb996, 0xb997, 0xb998, 0xb999, 0xb99a, 0xb99b, 0xb99c, - 0xb99d, 0xf3f2, 0xb99e, 0xb99f, 0xb9a0, 0xba40, 0xd7ad, 0xc6aa, - 0xba41, 0xba42, 0xba43, 0xba44, 0xf3f3, 0xba45, 0xba46, 0xba47, - 0xba48, 0xf3f1, 0xba49, 0xc2a8, 0xba4a, 0xba4b, 0xba4c, 0xba4d, - 0xba4e, 0xb8dd, 0xf3f5, 0xba4f, 0xba50, 0xf3f4, 0xba51, 0xba52, - 0xba53, 0xb4db, 0xba54, 0xba55, 0xba56, 0xf3f6, 0xf3f7, 0xba57, - 0xba58, 0xba59, 0xf3f8, 0xba5a, 0xba5b, 0xba5c, 0xc0ba, 0xba5d, - 0xba5e, 0xc0e9, 0xba5f, 0xba60, 0xba61, 0xba62, 0xba63, 0xc5f1, - 0xba64, 0xba65, 0xba66, 0xba67, 0xf3fb, 0xba68, 0xf3fa, 0xba69, - /* 0x7c00 .. 0x7cff */ - 0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0xba70, 0xb4d8, - 0xba71, 0xba72, 0xba73, 0xf3fe, 0xf3f9, 0xba74, 0xba75, 0xf3fc, - 0xba76, 0xba77, 0xba78, 0xba79, 0xba7a, 0xba7b, 0xf3fd, 0xba7c, - 0xba7d, 0xba7e, 0xba80, 0xba81, 0xba82, 0xba83, 0xba84, 0xf4a1, - 0xba85, 0xba86, 0xba87, 0xba88, 0xba89, 0xba8a, 0xf4a3, 0xbbc9, - 0xba8b, 0xba8c, 0xf4a2, 0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, - 0xba92, 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, - 0xf4a4, 0xba9a, 0xba9b, 0xba9c, 0xba9d, 0xba9e, 0xba9f, 0xb2be, - 0xf4a6, 0xf4a5, 0xbaa0, 0xbb40, 0xbb41, 0xbb42, 0xbb43, 0xbb44, - 0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49, 0xbcae, 0xbb4a, 0xbb4b, - 0xbb4c, 0xbb4d, 0xbb4e, 0xbb4f, 0xbb50, 0xbb51, 0xbb52, 0xbb53, - 0xbb54, 0xbb55, 0xbb56, 0xbb57, 0xbb58, 0xbb59, 0xbb5a, 0xbb5b, - 0xbb5c, 0xbb5d, 0xbb5e, 0xbb5f, 0xbb60, 0xbb61, 0xbb62, 0xbb63, - 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68, 0xbb69, 0xbb6a, 0xbb6b, - 0xbb6c, 0xbb6d, 0xbb6e, 0xc3d7, 0xd9e1, 0xbb6f, 0xbb70, 0xbb71, - 0xbb72, 0xbb73, 0xbb74, 0xc0e0, 0xf4cc, 0xd7d1, 0xbb75, 0xbb76, - 0xbb77, 0xbb78, 0xbb79, 0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb7e, - 0xbb80, 0xb7db, 0xbb81, 0xbb82, 0xbb83, 0xbb84, 0xbb85, 0xbb86, - 0xbb87, 0xf4ce, 0xc1a3, 0xbb88, 0xbb89, 0xc6c9, 0xbb8a, 0xb4d6, - 0xd5b3, 0xbb8b, 0xbb8c, 0xbb8d, 0xf4d0, 0xf4cf, 0xf4d1, 0xcbda, - 0xbb8e, 0xbb8f, 0xf4d2, 0xbb90, 0xd4c1, 0xd6e0, 0xbb91, 0xbb92, - 0xbb93, 0xbb94, 0xb7e0, 0xbb95, 0xbb96, 0xbb97, 0xc1b8, 0xbb98, - 0xbb99, 0xc1bb, 0xf4d3, 0xbeac, 0xbb9a, 0xbb9b, 0xbb9c, 0xbb9d, - 0xbb9e, 0xb4e2, 0xbb9f, 0xbba0, 0xf4d4, 0xf4d5, 0xbeab, 0xbc40, - 0xbc41, 0xf4d6, 0xbc42, 0xbc43, 0xbc44, 0xf4db, 0xbc45, 0xf4d7, - 0xf4da, 0xbc46, 0xbafd, 0xbc47, 0xf4d8, 0xf4d9, 0xbc48, 0xbc49, - 0xbc4a, 0xbc4b, 0xbc4c, 0xbc4d, 0xbc4e, 0xb8e2, 0xccc7, 0xf4dc, - 0xbc4f, 0xb2da, 0xbc50, 0xbc51, 0xc3d3, 0xbc52, 0xbc53, 0xd4e3, - 0xbfb7, 0xbc54, 0xbc55, 0xbc56, 0xbc57, 0xbc58, 0xbc59, 0xbc5a, - 0xf4dd, 0xbc5b, 0xbc5c, 0xbc5d, 0xbc5e, 0xbc5f, 0xbc60, 0xc5b4, - 0xbc61, 0xbc62, 0xbc63, 0xbc64, 0xbc65, 0xbc66, 0xbc67, 0xbc68, - 0xf4e9, 0xbc69, 0xbc6a, 0xcfb5, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, - /* 0x7d00 .. 0x7dff */ - 0xbc6f, 0xbc70, 0xbc71, 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, - 0xbc77, 0xbc78, 0xcec9, 0xbc79, 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, - 0xbc7e, 0xbc80, 0xbc81, 0xbc82, 0xbc83, 0xbc84, 0xbc85, 0xbc86, - 0xbc87, 0xbc88, 0xbc89, 0xbc8a, 0xbc8b, 0xbc8c, 0xbc8d, 0xbc8e, - 0xcbd8, 0xbc8f, 0xcbf7, 0xbc90, 0xbc91, 0xbc92, 0xbc93, 0xbdf4, - 0xbc94, 0xbc95, 0xbc96, 0xd7cf, 0xbc97, 0xbc98, 0xbc99, 0xc0db, - 0xbc9a, 0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0xbca0, 0xbd40, - 0xbd41, 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd48, - 0xbd49, 0xbd4a, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd50, - 0xbd51, 0xbd52, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57, 0xbd58, - 0xbd59, 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd5e, 0xbd5f, 0xbd60, - 0xbd61, 0xbd62, 0xbd63, 0xbd64, 0xbd65, 0xbd66, 0xbd67, 0xbd68, - 0xbd69, 0xbd6a, 0xbd6b, 0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, - 0xbd71, 0xbd72, 0xbd73, 0xbd74, 0xbd75, 0xbd76, 0xd0f5, 0xbd77, - 0xbd78, 0xbd79, 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xf4ea, - 0xbd80, 0xbd81, 0xbd82, 0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xbd87, - 0xbd88, 0xbd89, 0xbd8a, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, - 0xbd90, 0xbd91, 0xbd92, 0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, - 0xbd98, 0xbd99, 0xbd9a, 0xbd9b, 0xbd9c, 0xbd9d, 0xbd9e, 0xbd9f, - 0xbda0, 0xbe40, 0xbe41, 0xbe42, 0xbe43, 0xbe44, 0xbe45, 0xbe46, - 0xbe47, 0xbe48, 0xbe49, 0xbe4a, 0xbe4b, 0xbe4c, 0xf4eb, 0xbe4d, - 0xbe4e, 0xbe4f, 0xbe50, 0xbe51, 0xbe52, 0xbe53, 0xf4ec, 0xbe54, - 0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59, 0xbe5a, 0xbe5b, 0xbe5c, - 0xbe5d, 0xbe5e, 0xbe5f, 0xbe60, 0xbe61, 0xbe62, 0xbe63, 0xbe64, - 0xbe65, 0xbe66, 0xbe67, 0xbe68, 0xbe69, 0xbe6a, 0xbe6b, 0xbe6c, - 0xbe6d, 0xbe6e, 0xbe6f, 0xbe70, 0xbe71, 0xbe72, 0xbe73, 0xbe74, - 0xbe75, 0xbe76, 0xbe77, 0xbe78, 0xbe79, 0xbe7a, 0xbe7b, 0xbe7c, - 0xbe7d, 0xbe7e, 0xbe80, 0xbe81, 0xbe82, 0xbe83, 0xbe84, 0xbe85, - 0xbe86, 0xbe87, 0xbe88, 0xbe89, 0xbe8a, 0xbe8b, 0xbe8c, 0xbe8d, - 0xbe8e, 0xbe8f, 0xbe90, 0xbe91, 0xbe92, 0xbe93, 0xbe94, 0xbe95, - 0xbe96, 0xbe97, 0xbe98, 0xbe99, 0xbe9a, 0xbe9b, 0xbe9c, 0xbe9d, - 0xbe9e, 0xbe9f, 0xbea0, 0xbf40, 0xbf41, 0xbf42, 0xbf43, 0xbf44, - /* 0x7e00 .. 0x7eff */ - 0xbf45, 0xbf46, 0xbf47, 0xbf48, 0xbf49, 0xbf4a, 0xbf4b, 0xbf4c, - 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, 0xbf51, 0xbf52, 0xbf53, 0xbf54, - 0xbf55, 0xbf56, 0xbf57, 0xbf58, 0xbf59, 0xbf5a, 0xbf5b, 0xbf5c, - 0xbf5d, 0xbf5e, 0xbf5f, 0xbf60, 0xbf61, 0xbf62, 0xbf63, 0xbf64, - 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, 0xbf6a, 0xbf6b, 0xbf6c, - 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, 0xbf72, 0xbf73, 0xbf74, - 0xbf75, 0xbf76, 0xbf77, 0xbf78, 0xbf79, 0xbf7a, 0xbf7b, 0xbf7c, - 0xbf7d, 0xbf7e, 0xbf80, 0xf7e3, 0xbf81, 0xbf82, 0xbf83, 0xbf84, - 0xbf85, 0xb7b1, 0xbf86, 0xbf87, 0xbf88, 0xbf89, 0xbf8a, 0xf4ed, - 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92, - 0xbf93, 0xbf94, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, - 0xbf9b, 0xbf9c, 0xbf9d, 0xbf9e, 0xbf9f, 0xbfa0, 0xc040, 0xc041, - 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, - 0xc04a, 0xc04b, 0xc04c, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc051, - 0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0xc058, 0xc059, - 0xc05a, 0xc05b, 0xc05c, 0xc05d, 0xc05e, 0xc05f, 0xc060, 0xc061, - 0xc062, 0xc063, 0xd7eb, 0xc064, 0xc065, 0xc066, 0xc067, 0xc068, - 0xc069, 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, - 0xc071, 0xc072, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, - 0xc079, 0xc07a, 0xc07b, 0xf4ee, 0xc07c, 0xc07d, 0xc07e, 0xe6f9, - 0xbec0, 0xe6fa, 0xbaec, 0xe6fb, 0xcfcb, 0xe6fc, 0xd4bc, 0xbcb6, - 0xe6fd, 0xe6fe, 0xbccd, 0xc8d2, 0xceb3, 0xe7a1, 0xc080, 0xb4bf, - 0xe7a2, 0xc9b4, 0xb8d9, 0xc4c9, 0xc081, 0xd7dd, 0xc2da, 0xb7d7, - 0xd6bd, 0xcec6, 0xb7c4, 0xc082, 0xc083, 0xc5a6, 0xe7a3, 0xcfdf, - 0xe7a4, 0xe7a5, 0xe7a6, 0xc1b7, 0xd7e9, 0xc9f0, 0xcfb8, 0xd6af, - 0xd6d5, 0xe7a7, 0xb0ed, 0xe7a8, 0xe7a9, 0xc9dc, 0xd2ef, 0xbead, - 0xe7aa, 0xb0f3, 0xc8de, 0xbde1, 0xe7ab, 0xc8c6, 0xc084, 0xe7ac, - 0xbbe6, 0xb8f8, 0xd1a4, 0xe7ad, 0xc2e7, 0xbef8, 0xbdca, 0xcdb3, - 0xe7ae, 0xe7af, 0xbeee, 0xd0e5, 0xc085, 0xcbe7, 0xccd0, 0xbccc, - 0xe7b0, 0xbca8, 0xd0f7, 0xe7b1, 0xc086, 0xd0f8, 0xe7b2, 0xe7b3, - 0xb4c2, 0xe7b4, 0xe7b5, 0xc9fe, 0xceac, 0xc3e0, 0xe7b7, 0xb1c1, - 0xb3f1, 0xc087, 0xe7b8, 0xe7b9, 0xd7db, 0xd5c0, 0xe7ba, 0xc2cc, - /* 0x7f00 .. 0x7fff */ - 0xd7ba, 0xe7bb, 0xe7bc, 0xe7bd, 0xbcea, 0xc3e5, 0xc0c2, 0xe7be, - 0xe7bf, 0xbca9, 0xc088, 0xe7c0, 0xe7c1, 0xe7b6, 0xb6d0, 0xe7c2, - 0xc089, 0xe7c3, 0xe7c4, 0xbbba, 0xb5de, 0xc2c6, 0xb1e0, 0xe7c5, - 0xd4b5, 0xe7c6, 0xb8bf, 0xe7c8, 0xe7c7, 0xb7ec, 0xc08a, 0xe7c9, - 0xb2f8, 0xe7ca, 0xe7cb, 0xe7cc, 0xe7cd, 0xe7ce, 0xe7cf, 0xe7d0, - 0xd3a7, 0xcbf5, 0xe7d1, 0xe7d2, 0xe7d3, 0xe7d4, 0xc9c9, 0xe7d5, - 0xe7d6, 0xe7d7, 0xe7d8, 0xe7d9, 0xbdc9, 0xe7da, 0xf3be, 0xc08b, - 0xb8d7, 0xc08c, 0xc8b1, 0xc08d, 0xc08e, 0xc08f, 0xc090, 0xc091, - 0xc092, 0xc093, 0xf3bf, 0xc094, 0xf3c0, 0xf3c1, 0xc095, 0xc096, - 0xc097, 0xc098, 0xc099, 0xc09a, 0xc09b, 0xc09c, 0xc09d, 0xc09e, - 0xb9de, 0xcdf8, 0xc09f, 0xc0a0, 0xd8e8, 0xbab1, 0xc140, 0xc2de, - 0xeeb7, 0xc141, 0xb7a3, 0xc142, 0xc143, 0xc144, 0xc145, 0xeeb9, - 0xc146, 0xeeb8, 0xb0d5, 0xc147, 0xc148, 0xc149, 0xc14a, 0xc14b, - 0xeebb, 0xd5d6, 0xd7ef, 0xc14c, 0xc14d, 0xc14e, 0xd6c3, 0xc14f, - 0xc150, 0xeebd, 0xcaf0, 0xc151, 0xeebc, 0xc152, 0xc153, 0xc154, - 0xc155, 0xeebe, 0xc156, 0xc157, 0xc158, 0xc159, 0xeec0, 0xc15a, - 0xc15b, 0xeebf, 0xc15c, 0xc15d, 0xc15e, 0xc15f, 0xc160, 0xc161, - 0xc162, 0xc163, 0xd1f2, 0xc164, 0xc7bc, 0xc165, 0xc3c0, 0xc166, - 0xc167, 0xc168, 0xc169, 0xc16a, 0xb8e1, 0xc16b, 0xc16c, 0xc16d, - 0xc16e, 0xc16f, 0xc1e7, 0xc170, 0xc171, 0xf4c6, 0xd0df, 0xf4c7, - 0xc172, 0xcfdb, 0xc173, 0xc174, 0xc8ba, 0xc175, 0xc176, 0xf4c8, - 0xc177, 0xc178, 0xc179, 0xc17a, 0xc17b, 0xc17c, 0xc17d, 0xf4c9, - 0xf4ca, 0xc17e, 0xf4cb, 0xc180, 0xc181, 0xc182, 0xc183, 0xc184, - 0xd9fa, 0xb8fe, 0xc185, 0xc186, 0xe5f1, 0xd3f0, 0xc187, 0xf4e0, - 0xc188, 0xcecc, 0xc189, 0xc18a, 0xc18b, 0xb3e1, 0xc18c, 0xc18d, - 0xc18e, 0xc18f, 0xf1b4, 0xc190, 0xd2ee, 0xc191, 0xf4e1, 0xc192, - 0xc193, 0xc194, 0xc195, 0xc196, 0xcfe8, 0xf4e2, 0xc197, 0xc198, - 0xc7cc, 0xc199, 0xc19a, 0xc19b, 0xc19c, 0xc19d, 0xc19e, 0xb5d4, - 0xb4e4, 0xf4e4, 0xc19f, 0xc1a0, 0xc240, 0xf4e3, 0xf4e5, 0xc241, - 0xc242, 0xf4e6, 0xc243, 0xc244, 0xc245, 0xc246, 0xf4e7, 0xc247, - 0xbab2, 0xb0bf, 0xc248, 0xf4e8, 0xc249, 0xc24a, 0xc24b, 0xc24c, - 0xc24d, 0xc24e, 0xc24f, 0xb7ad, 0xd2ed, 0xc250, 0xc251, 0xc252, - /* 0x8000 .. 0x80ff */ - 0xd2ab, 0xc0cf, 0xc253, 0xbfbc, 0xeba3, 0xd5df, 0xeac8, 0xc254, - 0xc255, 0xc256, 0xc257, 0xf1f3, 0xb6f8, 0xcba3, 0xc258, 0xc259, - 0xc4cd, 0xc25a, 0xf1e7, 0xc25b, 0xf1e8, 0xb8fb, 0xf1e9, 0xbac4, - 0xd4c5, 0xb0d2, 0xc25c, 0xc25d, 0xf1ea, 0xc25e, 0xc25f, 0xc260, - 0xf1eb, 0xc261, 0xf1ec, 0xc262, 0xc263, 0xf1ed, 0xf1ee, 0xf1ef, - 0xf1f1, 0xf1f0, 0xc5d5, 0xc264, 0xc265, 0xc266, 0xc267, 0xc268, - 0xc269, 0xf1f2, 0xc26a, 0xb6fa, 0xc26b, 0xf1f4, 0xd2ae, 0xdec7, - 0xcbca, 0xc26c, 0xc26d, 0xb3dc, 0xc26e, 0xb5a2, 0xc26f, 0xb9a2, - 0xc270, 0xc271, 0xc4f4, 0xf1f5, 0xc272, 0xc273, 0xf1f6, 0xc274, - 0xc275, 0xc276, 0xc1c4, 0xc1fb, 0xd6b0, 0xf1f7, 0xc277, 0xc278, - 0xc279, 0xc27a, 0xf1f8, 0xc27b, 0xc1aa, 0xc27c, 0xc27d, 0xc27e, - 0xc6b8, 0xc280, 0xbedb, 0xc281, 0xc282, 0xc283, 0xc284, 0xc285, - 0xc286, 0xc287, 0xc288, 0xc289, 0xc28a, 0xc28b, 0xc28c, 0xc28d, - 0xc28e, 0xf1f9, 0xb4cf, 0xc28f, 0xc290, 0xc291, 0xc292, 0xc293, - 0xc294, 0xf1fa, 0xc295, 0xc296, 0xc297, 0xc298, 0xc299, 0xc29a, - 0xc29b, 0xc29c, 0xc29d, 0xc29e, 0xc29f, 0xc2a0, 0xc340, 0xedb2, - 0xedb1, 0xc341, 0xc342, 0xcbe0, 0xd2de, 0xc343, 0xcbc1, 0xd5d8, - 0xc344, 0xc8e2, 0xc345, 0xc0df, 0xbca1, 0xc346, 0xc347, 0xc348, - 0xc349, 0xc34a, 0xc34b, 0xebc1, 0xc34c, 0xc34d, 0xd0a4, 0xc34e, - 0xd6e2, 0xc34f, 0xb6c7, 0xb8d8, 0xebc0, 0xb8ce, 0xc350, 0xebbf, - 0xb3a6, 0xb9c9, 0xd6ab, 0xc351, 0xb7f4, 0xb7ca, 0xc352, 0xc353, - 0xc354, 0xbce7, 0xb7be, 0xebc6, 0xc355, 0xebc7, 0xb0b9, 0xbfcf, - 0xc356, 0xebc5, 0xd3fd, 0xc357, 0xebc8, 0xc358, 0xc359, 0xebc9, - 0xc35a, 0xc35b, 0xb7ce, 0xc35c, 0xebc2, 0xebc4, 0xc9f6, 0xd6d7, - 0xd5cd, 0xd0b2, 0xebcf, 0xceb8, 0xebd0, 0xc35d, 0xb5a8, 0xc35e, - 0xc35f, 0xc360, 0xc361, 0xc362, 0xb1b3, 0xebd2, 0xcca5, 0xc363, - 0xc364, 0xc365, 0xc366, 0xc367, 0xc368, 0xc369, 0xc5d6, 0xebd3, - 0xc36a, 0xebd1, 0xc5df, 0xebce, 0xcaa4, 0xebd5, 0xb0fb, 0xc36b, - 0xc36c, 0xbafa, 0xc36d, 0xc36e, 0xd8b7, 0xf1e3, 0xc36f, 0xebca, - 0xebcb, 0xebcc, 0xebcd, 0xebd6, 0xe6c0, 0xebd9, 0xc370, 0xbfe8, - 0xd2c8, 0xebd7, 0xebdc, 0xb8ec, 0xebd8, 0xc371, 0xbdba, 0xc372, - 0xd0d8, 0xc373, 0xb0b7, 0xc374, 0xebdd, 0xc4dc, 0xc375, 0xc376, - /* 0x8100 .. 0x81ff */ - 0xc377, 0xc378, 0xd6ac, 0xc379, 0xc37a, 0xc37b, 0xb4e0, 0xc37c, - 0xc37d, 0xc2f6, 0xbcb9, 0xc37e, 0xc380, 0xebda, 0xebdb, 0xd4e0, - 0xc6ea, 0xc4d4, 0xebdf, 0xc5a7, 0xd9f5, 0xc381, 0xb2b1, 0xc382, - 0xebe4, 0xc383, 0xbdc5, 0xc384, 0xc385, 0xc386, 0xebe2, 0xc387, - 0xc388, 0xc389, 0xc38a, 0xc38b, 0xc38c, 0xc38d, 0xc38e, 0xc38f, - 0xc390, 0xc391, 0xc392, 0xc393, 0xebe3, 0xc394, 0xc395, 0xb8ac, - 0xc396, 0xcdd1, 0xebe5, 0xc397, 0xc398, 0xc399, 0xebe1, 0xc39a, - 0xc1b3, 0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0xc6a2, 0xc3a0, - 0xc440, 0xc441, 0xc442, 0xc443, 0xc444, 0xc445, 0xccf3, 0xc446, - 0xebe6, 0xc447, 0xc0b0, 0xd2b8, 0xebe7, 0xc448, 0xc449, 0xc44a, - 0xb8af, 0xb8ad, 0xc44b, 0xebe8, 0xc7bb, 0xcdf3, 0xc44c, 0xc44d, - 0xc44e, 0xebea, 0xebeb, 0xc44f, 0xc450, 0xc451, 0xc452, 0xc453, - 0xebed, 0xc454, 0xc455, 0xc456, 0xc457, 0xd0c8, 0xc458, 0xebf2, - 0xc459, 0xebee, 0xc45a, 0xc45b, 0xc45c, 0xebf1, 0xc8f9, 0xc45d, - 0xd1fc, 0xebec, 0xc45e, 0xc45f, 0xebe9, 0xc460, 0xc461, 0xc462, - 0xc463, 0xb8b9, 0xcfd9, 0xc4e5, 0xebef, 0xebf0, 0xccda, 0xcdc8, - 0xb0f2, 0xc464, 0xebf6, 0xc465, 0xc466, 0xc467, 0xc468, 0xc469, - 0xebf5, 0xc46a, 0xb2b2, 0xc46b, 0xc46c, 0xc46d, 0xc46e, 0xb8e0, - 0xc46f, 0xebf7, 0xc470, 0xc471, 0xc472, 0xc473, 0xc474, 0xc475, - 0xb1ec, 0xc476, 0xc477, 0xccc5, 0xc4a4, 0xcfa5, 0xc478, 0xc479, - 0xc47a, 0xc47b, 0xc47c, 0xebf9, 0xc47d, 0xc47e, 0xeca2, 0xc480, - 0xc5f2, 0xc481, 0xebfa, 0xc482, 0xc483, 0xc484, 0xc485, 0xc486, - 0xc487, 0xc488, 0xc489, 0xc9c5, 0xc48a, 0xc48b, 0xc48c, 0xc48d, - 0xc48e, 0xc48f, 0xe2df, 0xebfe, 0xc490, 0xc491, 0xc492, 0xc493, - 0xcdce, 0xeca1, 0xb1db, 0xd3b7, 0xc494, 0xc495, 0xd2dc, 0xc496, - 0xc497, 0xc498, 0xebfd, 0xc499, 0xebfb, 0xc49a, 0xc49b, 0xc49c, - 0xc49d, 0xc49e, 0xc49f, 0xc4a0, 0xc540, 0xc541, 0xc542, 0xc543, - 0xc544, 0xc545, 0xc546, 0xc547, 0xc548, 0xc549, 0xc54a, 0xc54b, - 0xc54c, 0xc54d, 0xc54e, 0xb3bc, 0xc54f, 0xc550, 0xc551, 0xeab0, - 0xc552, 0xc553, 0xd7d4, 0xc554, 0xf4ab, 0xb3f4, 0xc555, 0xc556, - 0xc557, 0xc558, 0xc559, 0xd6c1, 0xd6c2, 0xc55a, 0xc55b, 0xc55c, - 0xc55d, 0xc55e, 0xc55f, 0xd5e9, 0xbeca, 0xc560, 0xf4a7, 0xc561, - /* 0x8200 .. 0x82ff */ - 0xd2a8, 0xf4a8, 0xf4a9, 0xc562, 0xf4aa, 0xbecb, 0xd3df, 0xc563, - 0xc564, 0xc565, 0xc566, 0xc567, 0xc9e0, 0xc9e1, 0xc568, 0xc569, - 0xf3c2, 0xc56a, 0xcae6, 0xc56b, 0xccf2, 0xc56c, 0xc56d, 0xc56e, - 0xc56f, 0xc570, 0xc571, 0xe2b6, 0xcbb4, 0xc572, 0xcee8, 0xd6db, - 0xc573, 0xf4ad, 0xf4ae, 0xf4af, 0xc574, 0xc575, 0xc576, 0xc577, - 0xf4b2, 0xc578, 0xbabd, 0xf4b3, 0xb0e3, 0xf4b0, 0xc579, 0xf4b1, - 0xbda2, 0xb2d5, 0xc57a, 0xf4b6, 0xf4b7, 0xb6e6, 0xb2b0, 0xcfcf, - 0xf4b4, 0xb4ac, 0xc57b, 0xf4b5, 0xc57c, 0xc57d, 0xf4b8, 0xc57e, - 0xc580, 0xc581, 0xc582, 0xc583, 0xf4b9, 0xc584, 0xc585, 0xcda7, - 0xc586, 0xf4ba, 0xc587, 0xf4bb, 0xc588, 0xc589, 0xc58a, 0xf4bc, - 0xc58b, 0xc58c, 0xc58d, 0xc58e, 0xc58f, 0xc590, 0xc591, 0xc592, - 0xcbd2, 0xc593, 0xf4bd, 0xc594, 0xc595, 0xc596, 0xc597, 0xf4be, - 0xc598, 0xc599, 0xc59a, 0xc59b, 0xc59c, 0xc59d, 0xc59e, 0xc59f, - 0xf4bf, 0xc5a0, 0xc640, 0xc641, 0xc642, 0xc643, 0xf4de, 0xc1bc, - 0xbce8, 0xc644, 0xc9ab, 0xd1de, 0xe5f5, 0xc645, 0xc646, 0xc647, - 0xc648, 0xdcb3, 0xd2d5, 0xc649, 0xc64a, 0xdcb4, 0xb0ac, 0xdcb5, - 0xc64b, 0xc64c, 0xbdda, 0xc64d, 0xdcb9, 0xc64e, 0xc64f, 0xc650, - 0xd8c2, 0xc651, 0xdcb7, 0xd3f3, 0xc652, 0xc9d6, 0xdcba, 0xdcb6, - 0xc653, 0xdcbb, 0xc3a2, 0xc654, 0xc655, 0xc656, 0xc657, 0xdcbc, - 0xdcc5, 0xdcbd, 0xc658, 0xc659, 0xcedf, 0xd6a5, 0xc65a, 0xdccf, - 0xc65b, 0xdccd, 0xc65c, 0xc65d, 0xdcd2, 0xbde6, 0xc2ab, 0xc65e, - 0xdcb8, 0xdccb, 0xdcce, 0xdcbe, 0xb7d2, 0xb0c5, 0xdcc7, 0xd0be, - 0xdcc1, 0xbba8, 0xc65f, 0xb7bc, 0xdccc, 0xc660, 0xc661, 0xdcc6, - 0xdcbf, 0xc7db, 0xc662, 0xc663, 0xc664, 0xd1bf, 0xdcc0, 0xc665, - 0xc666, 0xdcca, 0xc667, 0xc668, 0xdcd0, 0xc669, 0xc66a, 0xcead, - 0xdcc2, 0xc66b, 0xdcc3, 0xdcc8, 0xdcc9, 0xb2d4, 0xdcd1, 0xcbd5, - 0xc66c, 0xd4b7, 0xdcdb, 0xdcdf, 0xcca6, 0xdce6, 0xc66d, 0xc3e7, - 0xdcdc, 0xc66e, 0xc66f, 0xbfc1, 0xdcd9, 0xc670, 0xb0fa, 0xb9b6, - 0xdce5, 0xdcd3, 0xc671, 0xdcc4, 0xdcd6, 0xc8f4, 0xbfe0, 0xc672, - 0xc673, 0xc674, 0xc675, 0xc9bb, 0xc676, 0xc677, 0xc678, 0xb1bd, - 0xc679, 0xd3a2, 0xc67a, 0xc67b, 0xdcda, 0xc67c, 0xc67d, 0xdcd5, - 0xc67e, 0xc6bb, 0xc680, 0xdcde, 0xc681, 0xc682, 0xc683, 0xc684, - /* 0x8300 .. 0x83ff */ - 0xc685, 0xd7c2, 0xc3af, 0xb7b6, 0xc7d1, 0xc3a9, 0xdce2, 0xdcd8, - 0xdceb, 0xdcd4, 0xc686, 0xc687, 0xdcdd, 0xc688, 0xbea5, 0xdcd7, - 0xc689, 0xdce0, 0xc68a, 0xc68b, 0xdce3, 0xdce4, 0xc68c, 0xdcf8, - 0xc68d, 0xc68e, 0xdce1, 0xdda2, 0xdce7, 0xc68f, 0xc690, 0xc691, - 0xc692, 0xc693, 0xc694, 0xc695, 0xc696, 0xc697, 0xc698, 0xbceb, - 0xb4c4, 0xc699, 0xc69a, 0xc3a3, 0xb2e7, 0xdcfa, 0xc69b, 0xdcf2, - 0xc69c, 0xdcef, 0xc69d, 0xdcfc, 0xdcee, 0xd2f0, 0xb2e8, 0xc69e, - 0xc8d7, 0xc8e3, 0xdcfb, 0xc69f, 0xdced, 0xc6a0, 0xc740, 0xc741, - 0xdcf7, 0xc742, 0xc743, 0xdcf5, 0xc744, 0xc745, 0xbea3, 0xdcf4, - 0xc746, 0xb2dd, 0xc747, 0xc748, 0xc749, 0xc74a, 0xc74b, 0xdcf3, - 0xbcf6, 0xdce8, 0xbbc4, 0xc74c, 0xc0f3, 0xc74d, 0xc74e, 0xc74f, - 0xc750, 0xc751, 0xbcd4, 0xdce9, 0xdcea, 0xc752, 0xdcf1, 0xdcf6, - 0xdcf9, 0xb5b4, 0xc753, 0xc8d9, 0xbbe7, 0xdcfe, 0xdcfd, 0xd3ab, - 0xdda1, 0xdda3, 0xdda5, 0xd2f1, 0xdda4, 0xdda6, 0xdda7, 0xd2a9, - 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, 0xc75a, 0xbac9, - 0xdda9, 0xc75b, 0xc75c, 0xddb6, 0xddb1, 0xddb4, 0xc75d, 0xc75e, - 0xc75f, 0xc760, 0xc761, 0xc762, 0xc763, 0xddb0, 0xc6ce, 0xc764, - 0xc765, 0xc0f2, 0xc766, 0xc767, 0xc768, 0xc769, 0xc9af, 0xc76a, - 0xc76b, 0xc76c, 0xdcec, 0xddae, 0xc76d, 0xc76e, 0xc76f, 0xc770, - 0xddb7, 0xc771, 0xc772, 0xdcf0, 0xddaf, 0xc773, 0xddb8, 0xc774, - 0xddac, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, 0xc77b, - 0xddb9, 0xddb3, 0xddad, 0xc4aa, 0xc77c, 0xc77d, 0xc77e, 0xc780, - 0xdda8, 0xc0b3, 0xc1ab, 0xddaa, 0xddab, 0xc781, 0xddb2, 0xbbf1, - 0xddb5, 0xd3a8, 0xddba, 0xc782, 0xddbb, 0xc3a7, 0xc783, 0xc784, - 0xddd2, 0xddbc, 0xc785, 0xc786, 0xc787, 0xddd1, 0xc788, 0xb9bd, - 0xc789, 0xc78a, 0xbed5, 0xc78b, 0xbefa, 0xc78c, 0xc78d, 0xbaca, - 0xc78e, 0xc78f, 0xc790, 0xc791, 0xddca, 0xc792, 0xddc5, 0xc793, - 0xddbf, 0xc794, 0xc795, 0xc796, 0xb2cb, 0xddc3, 0xc797, 0xddcb, - 0xb2a4, 0xddd5, 0xc798, 0xc799, 0xc79a, 0xddbe, 0xc79b, 0xc79c, - 0xc79d, 0xc6d0, 0xddd0, 0xc79e, 0xc79f, 0xc7a0, 0xc840, 0xc841, - 0xddd4, 0xc1e2, 0xb7c6, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, - 0xddce, 0xddcf, 0xc847, 0xc848, 0xc849, 0xddc4, 0xc84a, 0xc84b, - /* 0x8400 .. 0x84ff */ - 0xc84c, 0xddbd, 0xc84d, 0xddcd, 0xccd1, 0xc84e, 0xddc9, 0xc84f, - 0xc850, 0xc851, 0xc852, 0xddc2, 0xc3c8, 0xc6bc, 0xceae, 0xddcc, - 0xc853, 0xddc8, 0xc854, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859, - 0xddc1, 0xc85a, 0xc85b, 0xc85c, 0xddc6, 0xc2dc, 0xc85d, 0xc85e, - 0xc85f, 0xc860, 0xc861, 0xc862, 0xd3a9, 0xd3aa, 0xddd3, 0xcff4, - 0xc8f8, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869, - 0xc86a, 0xdde6, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc870, - 0xddc7, 0xc871, 0xc872, 0xc873, 0xdde0, 0xc2e4, 0xc874, 0xc875, - 0xc876, 0xc877, 0xc878, 0xc879, 0xc87a, 0xc87b, 0xdde1, 0xc87c, - 0xc87d, 0xc87e, 0xc880, 0xc881, 0xc882, 0xc883, 0xc884, 0xc885, - 0xc886, 0xddd7, 0xc887, 0xc888, 0xc889, 0xc88a, 0xc88b, 0xd6f8, - 0xc88c, 0xddd9, 0xddd8, 0xb8f0, 0xddd6, 0xc88d, 0xc88e, 0xc88f, - 0xc890, 0xc6cf, 0xc891, 0xb6ad, 0xc892, 0xc893, 0xc894, 0xc895, - 0xc896, 0xdde2, 0xc897, 0xbaf9, 0xd4e1, 0xdde7, 0xc898, 0xc899, - 0xc89a, 0xb4d0, 0xc89b, 0xddda, 0xc89c, 0xbffb, 0xdde3, 0xc89d, - 0xdddf, 0xc89e, 0xdddd, 0xc89f, 0xc8a0, 0xc940, 0xc941, 0xc942, - 0xc943, 0xc944, 0xb5d9, 0xc945, 0xc946, 0xc947, 0xc948, 0xdddb, - 0xdddc, 0xddde, 0xc949, 0xbdaf, 0xdde4, 0xc94a, 0xdde5, 0xc94b, - 0xc94c, 0xc94d, 0xc94e, 0xc94f, 0xc950, 0xc951, 0xc952, 0xddf5, - 0xc953, 0xc3c9, 0xc954, 0xc955, 0xcbe2, 0xc956, 0xc957, 0xc958, - 0xc959, 0xddf2, 0xc95a, 0xc95b, 0xc95c, 0xc95d, 0xc95e, 0xc95f, - 0xc960, 0xc961, 0xc962, 0xc963, 0xc964, 0xc965, 0xc966, 0xd8e1, - 0xc967, 0xc968, 0xc6d1, 0xc969, 0xddf4, 0xc96a, 0xc96b, 0xc96c, - 0xd5f4, 0xddf3, 0xddf0, 0xc96d, 0xc96e, 0xddec, 0xc96f, 0xddef, - 0xc970, 0xdde8, 0xc971, 0xc972, 0xd0ee, 0xc973, 0xc974, 0xc975, - 0xc976, 0xc8d8, 0xddee, 0xc977, 0xc978, 0xdde9, 0xc979, 0xc97a, - 0xddea, 0xcbf2, 0xc97b, 0xdded, 0xc97c, 0xc97d, 0xb1cd, 0xc97e, - 0xc980, 0xc981, 0xc982, 0xc983, 0xc984, 0xc0b6, 0xc985, 0xbcbb, - 0xddf1, 0xc986, 0xc987, 0xddf7, 0xc988, 0xddf6, 0xddeb, 0xc989, - 0xc98a, 0xc98b, 0xc98c, 0xc98d, 0xc5ee, 0xc98e, 0xc98f, 0xc990, - 0xddfb, 0xc991, 0xc992, 0xc993, 0xc994, 0xc995, 0xc996, 0xc997, - 0xc998, 0xc999, 0xc99a, 0xc99b, 0xdea4, 0xc99c, 0xc99d, 0xdea3, - /* 0x8500 .. 0x85ff */ - 0xc99e, 0xc99f, 0xc9a0, 0xca40, 0xca41, 0xca42, 0xca43, 0xca44, - 0xca45, 0xca46, 0xca47, 0xca48, 0xddf8, 0xca49, 0xca4a, 0xca4b, - 0xca4c, 0xc3ef, 0xca4d, 0xc2fb, 0xca4e, 0xca4f, 0xca50, 0xd5e1, - 0xca51, 0xca52, 0xceb5, 0xca53, 0xca54, 0xca55, 0xca56, 0xddfd, - 0xca57, 0xb2cc, 0xca58, 0xca59, 0xca5a, 0xca5b, 0xca5c, 0xca5d, - 0xca5e, 0xca5f, 0xca60, 0xc4e8, 0xcadf, 0xca61, 0xca62, 0xca63, - 0xca64, 0xca65, 0xca66, 0xca67, 0xca68, 0xca69, 0xca6a, 0xc7be, - 0xddfa, 0xddfc, 0xddfe, 0xdea2, 0xb0aa, 0xb1ce, 0xca6b, 0xca6c, - 0xca6d, 0xca6e, 0xca6f, 0xdeac, 0xca70, 0xca71, 0xca72, 0xca73, - 0xdea6, 0xbdb6, 0xc8ef, 0xca74, 0xca75, 0xca76, 0xca77, 0xca78, - 0xca79, 0xca7a, 0xca7b, 0xca7c, 0xca7d, 0xca7e, 0xdea1, 0xca80, - 0xca81, 0xdea5, 0xca82, 0xca83, 0xca84, 0xca85, 0xdea9, 0xca86, - 0xca87, 0xca88, 0xca89, 0xca8a, 0xdea8, 0xca8b, 0xca8c, 0xca8d, - 0xdea7, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca92, 0xca93, 0xca94, - 0xca95, 0xca96, 0xdead, 0xca97, 0xd4cc, 0xca98, 0xca99, 0xca9a, - 0xca9b, 0xdeb3, 0xdeaa, 0xdeae, 0xca9c, 0xca9d, 0xc0d9, 0xca9e, - 0xca9f, 0xcaa0, 0xcb40, 0xcb41, 0xb1a1, 0xdeb6, 0xcb42, 0xdeb1, - 0xcb43, 0xcb44, 0xcb45, 0xcb46, 0xcb47, 0xcb48, 0xcb49, 0xdeb2, - 0xcb4a, 0xcb4b, 0xcb4c, 0xcb4d, 0xcb4e, 0xcb4f, 0xcb50, 0xcb51, - 0xcb52, 0xcb53, 0xcb54, 0xd1a6, 0xdeb5, 0xcb55, 0xcb56, 0xcb57, - 0xcb58, 0xcb59, 0xcb5a, 0xcb5b, 0xdeaf, 0xcb5c, 0xcb5d, 0xcb5e, - 0xdeb0, 0xcb5f, 0xd0bd, 0xcb60, 0xcb61, 0xcb62, 0xdeb4, 0xcaed, - 0xdeb9, 0xcb63, 0xcb64, 0xcb65, 0xcb66, 0xcb67, 0xcb68, 0xdeb8, - 0xcb69, 0xdeb7, 0xcb6a, 0xcb6b, 0xcb6c, 0xcb6d, 0xcb6e, 0xcb6f, - 0xcb70, 0xdebb, 0xcb71, 0xcb72, 0xcb73, 0xcb74, 0xcb75, 0xcb76, - 0xcb77, 0xbde5, 0xcb78, 0xcb79, 0xcb7a, 0xcb7b, 0xcb7c, 0xb2d8, - 0xc3ea, 0xcb7d, 0xcb7e, 0xdeba, 0xcb80, 0xc5ba, 0xcb81, 0xcb82, - 0xcb83, 0xcb84, 0xcb85, 0xcb86, 0xdebc, 0xcb87, 0xcb88, 0xcb89, - 0xcb8a, 0xcb8b, 0xcb8c, 0xcb8d, 0xccd9, 0xcb8e, 0xcb8f, 0xcb90, - 0xcb91, 0xb7aa, 0xcb92, 0xcb93, 0xcb94, 0xcb95, 0xcb96, 0xcb97, - 0xcb98, 0xcb99, 0xcb9a, 0xcb9b, 0xcb9c, 0xcb9d, 0xcb9e, 0xcb9f, - 0xcba0, 0xcc40, 0xcc41, 0xd4e5, 0xcc42, 0xcc43, 0xcc44, 0xdebd, - /* 0x8600 .. 0x86ff */ - 0xcc45, 0xcc46, 0xcc47, 0xcc48, 0xcc49, 0xdebf, 0xcc4a, 0xcc4b, - 0xcc4c, 0xcc4d, 0xcc4e, 0xcc4f, 0xcc50, 0xcc51, 0xcc52, 0xcc53, - 0xcc54, 0xc4a2, 0xcc55, 0xcc56, 0xcc57, 0xcc58, 0xdec1, 0xcc59, - 0xcc5a, 0xcc5b, 0xcc5c, 0xcc5d, 0xcc5e, 0xcc5f, 0xcc60, 0xcc61, - 0xcc62, 0xcc63, 0xcc64, 0xcc65, 0xcc66, 0xcc67, 0xcc68, 0xdebe, - 0xcc69, 0xdec0, 0xcc6a, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, 0xcc6f, - 0xcc70, 0xcc71, 0xcc72, 0xcc73, 0xcc74, 0xcc75, 0xcc76, 0xcc77, - 0xd5ba, 0xcc78, 0xcc79, 0xcc7a, 0xdec2, 0xcc7b, 0xcc7c, 0xcc7d, - 0xcc7e, 0xcc80, 0xcc81, 0xcc82, 0xcc83, 0xcc84, 0xcc85, 0xcc86, - 0xcc87, 0xcc88, 0xcc89, 0xcc8a, 0xcc8b, 0xf2ae, 0xbba2, 0xc2b2, - 0xc5b0, 0xc2c7, 0xcc8c, 0xcc8d, 0xf2af, 0xcc8e, 0xcc8f, 0xcc90, - 0xcc91, 0xcc92, 0xd0e9, 0xcc93, 0xcc94, 0xcc95, 0xd3dd, 0xcc96, - 0xcc97, 0xcc98, 0xebbd, 0xcc99, 0xcc9a, 0xcc9b, 0xcc9c, 0xcc9d, - 0xcc9e, 0xcc9f, 0xcca0, 0xb3e6, 0xf2b0, 0xcd40, 0xf2b1, 0xcd41, - 0xcd42, 0xcaad, 0xcd43, 0xcd44, 0xcd45, 0xcd46, 0xcd47, 0xcd48, - 0xcd49, 0xbae7, 0xf2b3, 0xf2b5, 0xf2b4, 0xcbe4, 0xcfba, 0xf2b2, - 0xcab4, 0xd2cf, 0xc2ec, 0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, - 0xcd4f, 0xcd50, 0xcec3, 0xf2b8, 0xb0f6, 0xf2b7, 0xcd51, 0xcd52, - 0xcd53, 0xcd54, 0xcd55, 0xf2be, 0xcd56, 0xb2cf, 0xcd57, 0xcd58, - 0xcd59, 0xcd5a, 0xcd5b, 0xcd5c, 0xd1c1, 0xf2ba, 0xcd5d, 0xcd5e, - 0xcd5f, 0xcd60, 0xcd61, 0xf2bc, 0xd4e9, 0xcd62, 0xcd63, 0xf2bb, - 0xf2b6, 0xf2bf, 0xf2bd, 0xcd64, 0xf2b9, 0xcd65, 0xcd66, 0xf2c7, - 0xf2c4, 0xf2c6, 0xcd67, 0xcd68, 0xf2ca, 0xf2c2, 0xf2c0, 0xcd69, - 0xcd6a, 0xcd6b, 0xf2c5, 0xcd6c, 0xcd6d, 0xcd6e, 0xcd6f, 0xcd70, - 0xd6fb, 0xcd71, 0xcd72, 0xcd73, 0xf2c1, 0xcd74, 0xc7f9, 0xc9df, - 0xcd75, 0xf2c8, 0xb9c6, 0xb5b0, 0xcd76, 0xcd77, 0xf2c3, 0xf2c9, - 0xf2d0, 0xf2d6, 0xcd78, 0xcd79, 0xbbd7, 0xcd7a, 0xcd7b, 0xcd7c, - 0xf2d5, 0xcddc, 0xcd7d, 0xd6eb, 0xcd7e, 0xcd80, 0xf2d2, 0xf2d4, - 0xcd81, 0xcd82, 0xcd83, 0xcd84, 0xb8f2, 0xcd85, 0xcd86, 0xcd87, - 0xcd88, 0xf2cb, 0xcd89, 0xcd8a, 0xcd8b, 0xf2ce, 0xc2f9, 0xcd8c, - 0xd5dd, 0xf2cc, 0xf2cd, 0xf2cf, 0xf2d3, 0xcd8d, 0xcd8e, 0xcd8f, - 0xf2d9, 0xd3bc, 0xcd90, 0xcd91, 0xcd92, 0xcd93, 0xb6ea, 0xcd94, - /* 0x8700 .. 0x87ff */ - 0xcaf1, 0xcd95, 0xb7e4, 0xf2d7, 0xcd96, 0xcd97, 0xcd98, 0xf2d8, - 0xf2da, 0xf2dd, 0xf2db, 0xcd99, 0xcd9a, 0xf2dc, 0xcd9b, 0xcd9c, - 0xcd9d, 0xcd9e, 0xd1d1, 0xf2d1, 0xcd9f, 0xcdc9, 0xcda0, 0xcecf, - 0xd6a9, 0xce40, 0xf2e3, 0xce41, 0xc3db, 0xce42, 0xf2e0, 0xce43, - 0xce44, 0xc0af, 0xf2ec, 0xf2de, 0xce45, 0xf2e1, 0xce46, 0xce47, - 0xce48, 0xf2e8, 0xce49, 0xce4a, 0xce4b, 0xce4c, 0xf2e2, 0xce4d, - 0xce4e, 0xf2e7, 0xce4f, 0xce50, 0xf2e6, 0xce51, 0xce52, 0xf2e9, - 0xce53, 0xce54, 0xce55, 0xf2df, 0xce56, 0xce57, 0xf2e4, 0xf2ea, - 0xce58, 0xce59, 0xce5a, 0xce5b, 0xce5c, 0xce5d, 0xce5e, 0xd3ac, - 0xf2e5, 0xb2f5, 0xce5f, 0xce60, 0xf2f2, 0xce61, 0xd0ab, 0xce62, - 0xce63, 0xce64, 0xce65, 0xf2f5, 0xce66, 0xce67, 0xce68, 0xbbc8, - 0xce69, 0xf2f9, 0xce6a, 0xce6b, 0xce6c, 0xce6d, 0xce6e, 0xce6f, - 0xf2f0, 0xce70, 0xce71, 0xf2f6, 0xf2f8, 0xf2fa, 0xce72, 0xce73, - 0xce74, 0xce75, 0xce76, 0xce77, 0xce78, 0xce79, 0xf2f3, 0xce7a, - 0xf2f1, 0xce7b, 0xce7c, 0xce7d, 0xbafb, 0xce7e, 0xb5fb, 0xce80, - 0xce81, 0xce82, 0xce83, 0xf2ef, 0xf2f7, 0xf2ed, 0xf2ee, 0xce84, - 0xce85, 0xce86, 0xf2eb, 0xf3a6, 0xce87, 0xf3a3, 0xce88, 0xce89, - 0xf3a2, 0xce8a, 0xce8b, 0xf2f4, 0xce8c, 0xc8da, 0xce8d, 0xce8e, - 0xce8f, 0xce90, 0xce91, 0xf2fb, 0xce92, 0xce93, 0xce94, 0xf3a5, - 0xce95, 0xce96, 0xce97, 0xce98, 0xce99, 0xce9a, 0xce9b, 0xc3f8, - 0xce9c, 0xce9d, 0xce9e, 0xce9f, 0xcea0, 0xcf40, 0xcf41, 0xcf42, - 0xf2fd, 0xcf43, 0xcf44, 0xf3a7, 0xf3a9, 0xf3a4, 0xcf45, 0xf2fc, - 0xcf46, 0xcf47, 0xcf48, 0xf3ab, 0xcf49, 0xf3aa, 0xcf4a, 0xcf4b, - 0xcf4c, 0xcf4d, 0xc2dd, 0xcf4e, 0xcf4f, 0xf3ae, 0xcf50, 0xcf51, - 0xf3b0, 0xcf52, 0xcf53, 0xcf54, 0xcf55, 0xcf56, 0xf3a1, 0xcf57, - 0xcf58, 0xcf59, 0xf3b1, 0xf3ac, 0xcf5a, 0xcf5b, 0xcf5c, 0xcf5d, - 0xcf5e, 0xf3af, 0xf2fe, 0xf3ad, 0xcf5f, 0xcf60, 0xcf61, 0xcf62, - 0xcf63, 0xcf64, 0xcf65, 0xf3b2, 0xcf66, 0xcf67, 0xcf68, 0xcf69, - 0xf3b4, 0xcf6a, 0xcf6b, 0xcf6c, 0xcf6d, 0xf3a8, 0xcf6e, 0xcf6f, - 0xcf70, 0xcf71, 0xf3b3, 0xcf72, 0xcf73, 0xcf74, 0xf3b5, 0xcf75, - 0xcf76, 0xcf77, 0xcf78, 0xcf79, 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, - 0xcf7e, 0xd0b7, 0xcf80, 0xcf81, 0xcf82, 0xcf83, 0xf3b8, 0xcf84, - /* 0x8800 .. 0x88ff */ - 0xcf85, 0xcf86, 0xcf87, 0xd9f9, 0xcf88, 0xcf89, 0xcf8a, 0xcf8b, - 0xcf8c, 0xcf8d, 0xf3b9, 0xcf8e, 0xcf8f, 0xcf90, 0xcf91, 0xcf92, - 0xcf93, 0xcf94, 0xcf95, 0xf3b7, 0xcf96, 0xc8e4, 0xf3b6, 0xcf97, - 0xcf98, 0xcf99, 0xcf9a, 0xf3ba, 0xcf9b, 0xcf9c, 0xcf9d, 0xcf9e, - 0xcf9f, 0xf3bb, 0xb4c0, 0xcfa0, 0xd040, 0xd041, 0xd042, 0xd043, - 0xd044, 0xd045, 0xd046, 0xd047, 0xd048, 0xd049, 0xd04a, 0xd04b, - 0xd04c, 0xd04d, 0xeec3, 0xd04e, 0xd04f, 0xd050, 0xd051, 0xd052, - 0xd053, 0xf3bc, 0xd054, 0xd055, 0xf3bd, 0xd056, 0xd057, 0xd058, - 0xd1aa, 0xd059, 0xd05a, 0xd05b, 0xf4ac, 0xd0c6, 0xd05c, 0xd05d, - 0xd05e, 0xd05f, 0xd060, 0xd061, 0xd0d0, 0xd1dc, 0xd062, 0xd063, - 0xd064, 0xd065, 0xd066, 0xd067, 0xcfce, 0xd068, 0xd069, 0xbdd6, - 0xd06a, 0xd1c3, 0xd06b, 0xd06c, 0xd06d, 0xd06e, 0xd06f, 0xd070, - 0xd071, 0xbae2, 0xe1e9, 0xd2c2, 0xf1c2, 0xb2b9, 0xd072, 0xd073, - 0xb1ed, 0xf1c3, 0xd074, 0xc9c0, 0xb3c4, 0xd075, 0xd9f2, 0xd076, - 0xcba5, 0xd077, 0xf1c4, 0xd078, 0xd079, 0xd07a, 0xd07b, 0xd6d4, - 0xd07c, 0xd07d, 0xd07e, 0xd080, 0xd081, 0xf1c5, 0xf4c0, 0xf1c6, - 0xd082, 0xd4ac, 0xf1c7, 0xd083, 0xb0c0, 0xf4c1, 0xd084, 0xd085, - 0xf4c2, 0xd086, 0xd087, 0xb4fc, 0xd088, 0xc5db, 0xd089, 0xd08a, - 0xd08b, 0xd08c, 0xccbb, 0xd08d, 0xd08e, 0xd08f, 0xd0e4, 0xd090, - 0xd091, 0xd092, 0xd093, 0xd094, 0xcde0, 0xd095, 0xd096, 0xd097, - 0xd098, 0xd099, 0xf1c8, 0xd09a, 0xd9f3, 0xd09b, 0xd09c, 0xd09d, - 0xd09e, 0xd09f, 0xd0a0, 0xb1bb, 0xd140, 0xcfae, 0xd141, 0xd142, - 0xd143, 0xb8a4, 0xd144, 0xd145, 0xd146, 0xd147, 0xd148, 0xf1ca, - 0xd149, 0xd14a, 0xd14b, 0xd14c, 0xf1cb, 0xd14d, 0xd14e, 0xd14f, - 0xd150, 0xb2c3, 0xc1d1, 0xd151, 0xd152, 0xd7b0, 0xf1c9, 0xd153, - 0xd154, 0xf1cc, 0xd155, 0xd156, 0xd157, 0xd158, 0xf1ce, 0xd159, - 0xd15a, 0xd15b, 0xd9f6, 0xd15c, 0xd2e1, 0xd4a3, 0xd15d, 0xd15e, - 0xf4c3, 0xc8b9, 0xd15f, 0xd160, 0xd161, 0xd162, 0xd163, 0xf4c4, - 0xd164, 0xd165, 0xf1cd, 0xf1cf, 0xbfe3, 0xf1d0, 0xd166, 0xd167, - 0xf1d4, 0xd168, 0xd169, 0xd16a, 0xd16b, 0xd16c, 0xd16d, 0xd16e, - 0xf1d6, 0xf1d1, 0xd16f, 0xc9d1, 0xc5e1, 0xd170, 0xd171, 0xd172, - 0xc2e3, 0xb9fc, 0xd173, 0xd174, 0xf1d3, 0xd175, 0xf1d5, 0xd176, - /* 0x8900 .. 0x89ff */ - 0xd177, 0xd178, 0xb9d3, 0xd179, 0xd17a, 0xd17b, 0xd17c, 0xd17d, - 0xd17e, 0xd180, 0xf1db, 0xd181, 0xd182, 0xd183, 0xd184, 0xd185, - 0xbad6, 0xd186, 0xb0fd, 0xf1d9, 0xd187, 0xd188, 0xd189, 0xd18a, - 0xd18b, 0xf1d8, 0xf1d2, 0xf1da, 0xd18c, 0xd18d, 0xd18e, 0xd18f, - 0xd190, 0xf1d7, 0xd191, 0xd192, 0xd193, 0xc8ec, 0xd194, 0xd195, - 0xd196, 0xd197, 0xcdca, 0xf1dd, 0xd198, 0xd199, 0xd19a, 0xd19b, - 0xe5bd, 0xd19c, 0xd19d, 0xd19e, 0xf1dc, 0xd19f, 0xf1de, 0xd1a0, - 0xd240, 0xd241, 0xd242, 0xd243, 0xd244, 0xd245, 0xd246, 0xd247, - 0xd248, 0xf1df, 0xd249, 0xd24a, 0xcfe5, 0xd24b, 0xd24c, 0xd24d, - 0xd24e, 0xd24f, 0xd250, 0xd251, 0xd252, 0xd253, 0xd254, 0xd255, - 0xd256, 0xd257, 0xd258, 0xd259, 0xd25a, 0xd25b, 0xd25c, 0xd25d, - 0xd25e, 0xd25f, 0xd260, 0xd261, 0xd262, 0xd263, 0xf4c5, 0xbdf3, - 0xd264, 0xd265, 0xd266, 0xd267, 0xd268, 0xd269, 0xf1e0, 0xd26a, - 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, 0xd270, 0xd271, 0xd272, - 0xd273, 0xd274, 0xd275, 0xd276, 0xd277, 0xd278, 0xd279, 0xd27a, - 0xd27b, 0xd27c, 0xd27d, 0xf1e1, 0xd27e, 0xd280, 0xd281, 0xcef7, - 0xd282, 0xd2aa, 0xd283, 0xf1fb, 0xd284, 0xd285, 0xb8b2, 0xd286, - 0xd287, 0xd288, 0xd289, 0xd28a, 0xd28b, 0xd28c, 0xd28d, 0xd28e, - 0xd28f, 0xd290, 0xd291, 0xd292, 0xd293, 0xd294, 0xd295, 0xd296, - 0xd297, 0xd298, 0xd299, 0xd29a, 0xd29b, 0xd29c, 0xd29d, 0xd29e, - 0xd29f, 0xd2a0, 0xd340, 0xd341, 0xd342, 0xd343, 0xd344, 0xd345, - 0xd346, 0xd347, 0xd348, 0xd349, 0xd34a, 0xd34b, 0xd34c, 0xd34d, - 0xd34e, 0xd34f, 0xd350, 0xd351, 0xd352, 0xd353, 0xd354, 0xd355, - 0xd356, 0xd357, 0xd358, 0xd359, 0xd35a, 0xd35b, 0xd35c, 0xd35d, - 0xd35e, 0xbcfb, 0xb9db, 0xd35f, 0xb9e6, 0xc3d9, 0xcad3, 0xeae8, - 0xc0c0, 0xbef5, 0xeae9, 0xeaea, 0xeaeb, 0xd360, 0xeaec, 0xeaed, - 0xeaee, 0xeaef, 0xbdc7, 0xd361, 0xd362, 0xd363, 0xf5fb, 0xd364, - 0xd365, 0xd366, 0xf5fd, 0xd367, 0xf5fe, 0xd368, 0xf5fc, 0xd369, - 0xd36a, 0xd36b, 0xd36c, 0xbde2, 0xd36d, 0xf6a1, 0xb4a5, 0xd36e, - 0xd36f, 0xd370, 0xd371, 0xf6a2, 0xd372, 0xd373, 0xd374, 0xf6a3, - 0xd375, 0xd376, 0xd377, 0xecb2, 0xd378, 0xd379, 0xd37a, 0xd37b, - 0xd37c, 0xd37d, 0xd37e, 0xd380, 0xd381, 0xd382, 0xd383, 0xd384, - /* 0x8a00 .. 0x8aff */ - 0xd1d4, 0xd385, 0xd386, 0xd387, 0xd388, 0xd389, 0xd38a, 0xd9ea, - 0xd38b, 0xd38c, 0xd38d, 0xd38e, 0xd38f, 0xd390, 0xd391, 0xd392, - 0xd393, 0xd394, 0xd395, 0xd396, 0xd397, 0xd398, 0xd399, 0xd39a, - 0xd39b, 0xd39c, 0xd39d, 0xd39e, 0xd39f, 0xd3a0, 0xd440, 0xd441, - 0xd442, 0xd443, 0xd444, 0xd445, 0xd446, 0xd447, 0xd448, 0xd449, - 0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, 0xd44f, 0xd450, 0xd451, - 0xd452, 0xd453, 0xd454, 0xd455, 0xd456, 0xd457, 0xd458, 0xd459, - 0xd45a, 0xd45b, 0xd45c, 0xd45d, 0xd45e, 0xd45f, 0xf6a4, 0xd460, - 0xd461, 0xd462, 0xd463, 0xd464, 0xd465, 0xd466, 0xd467, 0xd468, - 0xeeba, 0xd469, 0xd46a, 0xd46b, 0xd46c, 0xd46d, 0xd46e, 0xd46f, - 0xd470, 0xd471, 0xd472, 0xd473, 0xd474, 0xd475, 0xd476, 0xd477, - 0xd478, 0xd479, 0xd47a, 0xd47b, 0xd47c, 0xd47d, 0xd47e, 0xd480, - 0xd481, 0xd482, 0xd483, 0xd484, 0xd485, 0xd486, 0xd487, 0xd488, - 0xd489, 0xd48a, 0xd48b, 0xd48c, 0xd48d, 0xd48e, 0xd48f, 0xd490, - 0xd491, 0xd492, 0xd493, 0xd494, 0xd495, 0xd496, 0xd497, 0xd498, - 0xd499, 0xd5b2, 0xd49a, 0xd49b, 0xd49c, 0xd49d, 0xd49e, 0xd49f, - 0xd4a0, 0xd540, 0xd541, 0xd542, 0xd543, 0xd544, 0xd545, 0xd546, - 0xd547, 0xd3fe, 0xccdc, 0xd548, 0xd549, 0xd54a, 0xd54b, 0xd54c, - 0xd54d, 0xd54e, 0xd54f, 0xcac4, 0xd550, 0xd551, 0xd552, 0xd553, - 0xd554, 0xd555, 0xd556, 0xd557, 0xd558, 0xd559, 0xd55a, 0xd55b, - 0xd55c, 0xd55d, 0xd55e, 0xd55f, 0xd560, 0xd561, 0xd562, 0xd563, - 0xd564, 0xd565, 0xd566, 0xd567, 0xd568, 0xd569, 0xd56a, 0xd56b, - 0xd56c, 0xd56d, 0xd56e, 0xd56f, 0xd570, 0xd571, 0xd572, 0xd573, - 0xd574, 0xd575, 0xd576, 0xd577, 0xd578, 0xd579, 0xd57a, 0xd57b, - 0xd57c, 0xd57d, 0xd57e, 0xd580, 0xd581, 0xd582, 0xd583, 0xd584, - 0xd585, 0xd586, 0xd587, 0xd588, 0xd589, 0xd58a, 0xd58b, 0xd58c, - 0xd58d, 0xd58e, 0xd58f, 0xd590, 0xd591, 0xd592, 0xd593, 0xd594, - 0xd595, 0xd596, 0xd597, 0xd598, 0xd599, 0xd59a, 0xd59b, 0xd59c, - 0xd59d, 0xd59e, 0xd59f, 0xd5a0, 0xd640, 0xd641, 0xd642, 0xd643, - 0xd644, 0xd645, 0xd646, 0xd647, 0xd648, 0xd649, 0xd64a, 0xd64b, - 0xd64c, 0xd64d, 0xd64e, 0xd64f, 0xd650, 0xd651, 0xd652, 0xd653, - 0xd654, 0xd655, 0xd656, 0xd657, 0xd658, 0xd659, 0xd65a, 0xd65b, - /* 0x8b00 .. 0x8bff */ - 0xd65c, 0xd65d, 0xd65e, 0xd65f, 0xd660, 0xd661, 0xd662, 0xe5c0, - 0xd663, 0xd664, 0xd665, 0xd666, 0xd667, 0xd668, 0xd669, 0xd66a, - 0xd66b, 0xd66c, 0xd66d, 0xd66e, 0xd66f, 0xd670, 0xd671, 0xd672, - 0xd673, 0xd674, 0xd675, 0xd676, 0xd677, 0xd678, 0xd679, 0xd67a, - 0xd67b, 0xd67c, 0xd67d, 0xd67e, 0xd680, 0xd681, 0xf6a5, 0xd682, - 0xd683, 0xd684, 0xd685, 0xd686, 0xd687, 0xd688, 0xd689, 0xd68a, - 0xd68b, 0xd68c, 0xd68d, 0xd68e, 0xd68f, 0xd690, 0xd691, 0xd692, - 0xd693, 0xd694, 0xd695, 0xd696, 0xd697, 0xd698, 0xd699, 0xd69a, - 0xd69b, 0xd69c, 0xd69d, 0xd69e, 0xd69f, 0xd6a0, 0xd740, 0xd741, - 0xd742, 0xd743, 0xd744, 0xd745, 0xd746, 0xd747, 0xd748, 0xd749, - 0xd74a, 0xd74b, 0xd74c, 0xd74d, 0xd74e, 0xd74f, 0xd750, 0xd751, - 0xd752, 0xd753, 0xd754, 0xd755, 0xd756, 0xd757, 0xd758, 0xd759, - 0xd75a, 0xd75b, 0xd75c, 0xd75d, 0xd75e, 0xd75f, 0xbeaf, 0xd760, - 0xd761, 0xd762, 0xd763, 0xd764, 0xc6a9, 0xd765, 0xd766, 0xd767, - 0xd768, 0xd769, 0xd76a, 0xd76b, 0xd76c, 0xd76d, 0xd76e, 0xd76f, - 0xd770, 0xd771, 0xd772, 0xd773, 0xd774, 0xd775, 0xd776, 0xd777, - 0xd778, 0xd779, 0xd77a, 0xd77b, 0xd77c, 0xd77d, 0xd77e, 0xd780, - 0xd781, 0xd782, 0xd783, 0xd784, 0xd785, 0xd786, 0xd787, 0xd788, - 0xd789, 0xd78a, 0xd78b, 0xd78c, 0xd78d, 0xd78e, 0xd78f, 0xd790, - 0xd791, 0xd792, 0xd793, 0xd794, 0xd795, 0xd796, 0xd797, 0xd798, - 0xdaa5, 0xbcc6, 0xb6a9, 0xb8bc, 0xc8cf, 0xbca5, 0xdaa6, 0xdaa7, - 0xccd6, 0xc8c3, 0xdaa8, 0xc6fd, 0xd799, 0xd1b5, 0xd2e9, 0xd1b6, - 0xbcc7, 0xd79a, 0xbdb2, 0xbbe4, 0xdaa9, 0xdaaa, 0xd1c8, 0xdaab, - 0xd0ed, 0xb6ef, 0xc2db, 0xd79b, 0xcbcf, 0xb7ed, 0xc9e8, 0xb7c3, - 0xbef7, 0xd6a4, 0xdaac, 0xdaad, 0xc6c0, 0xd7e7, 0xcab6, 0xd79c, - 0xd5a9, 0xcbdf, 0xd5ef, 0xdaae, 0xd6df, 0xb4ca, 0xdab0, 0xdaaf, - 0xd79d, 0xd2eb, 0xdab1, 0xdab2, 0xdab3, 0xcad4, 0xdab4, 0xcaab, - 0xdab5, 0xdab6, 0xb3cf, 0xd6ef, 0xdab7, 0xbbb0, 0xb5ae, 0xdab8, - 0xdab9, 0xb9ee, 0xd1af, 0xd2e8, 0xdaba, 0xb8c3, 0xcfea, 0xb2ef, - 0xdabb, 0xdabc, 0xd79e, 0xbdeb, 0xcedc, 0xd3ef, 0xdabd, 0xcef3, - 0xdabe, 0xd3d5, 0xbbe5, 0xdabf, 0xcbb5, 0xcbd0, 0xdac0, 0xc7eb, - 0xd6ee, 0xdac1, 0xc5b5, 0xb6c1, 0xdac2, 0xb7cc, 0xbfce, 0xdac3, - /* 0x8c00 .. 0x8cff */ - 0xdac4, 0xcbad, 0xdac5, 0xb5f7, 0xdac6, 0xc1c2, 0xd7bb, 0xdac7, - 0xccb8, 0xd79f, 0xd2ea, 0xc4b1, 0xdac8, 0xb5fd, 0xbbd1, 0xdac9, - 0xd0b3, 0xdaca, 0xdacb, 0xcebd, 0xdacc, 0xdacd, 0xdace, 0xb2f7, - 0xdad1, 0xdacf, 0xd1e8, 0xdad0, 0xc3d5, 0xdad2, 0xd7a0, 0xdad3, - 0xdad4, 0xdad5, 0xd0bb, 0xd2a5, 0xb0f9, 0xdad6, 0xc7ab, 0xdad7, - 0xbdf7, 0xc3a1, 0xdad8, 0xdad9, 0xc3fd, 0xccb7, 0xdada, 0xdadb, - 0xc0be, 0xc6d7, 0xdadc, 0xdadd, 0xc7b4, 0xdade, 0xdadf, 0xb9c8, - 0xd840, 0xd841, 0xd842, 0xd843, 0xd844, 0xd845, 0xd846, 0xd847, - 0xd848, 0xbbed, 0xd849, 0xd84a, 0xd84b, 0xd84c, 0xb6b9, 0xf4f8, - 0xd84d, 0xf4f9, 0xd84e, 0xd84f, 0xcde3, 0xd850, 0xd851, 0xd852, - 0xd853, 0xd854, 0xd855, 0xd856, 0xd857, 0xf5b9, 0xd858, 0xd859, - 0xd85a, 0xd85b, 0xebe0, 0xd85c, 0xd85d, 0xd85e, 0xd85f, 0xd860, - 0xd861, 0xcff3, 0xbbbf, 0xd862, 0xd863, 0xd864, 0xd865, 0xd866, - 0xd867, 0xd868, 0xbac0, 0xd4a5, 0xd869, 0xd86a, 0xd86b, 0xd86c, - 0xd86d, 0xd86e, 0xd86f, 0xe1d9, 0xd870, 0xd871, 0xd872, 0xd873, - 0xf5f4, 0xb1aa, 0xb2f2, 0xd874, 0xd875, 0xd876, 0xd877, 0xd878, - 0xd879, 0xd87a, 0xf5f5, 0xd87b, 0xd87c, 0xf5f7, 0xd87d, 0xd87e, - 0xd880, 0xbad1, 0xf5f6, 0xd881, 0xc3b2, 0xd882, 0xd883, 0xd884, - 0xd885, 0xd886, 0xd887, 0xd888, 0xf5f9, 0xd889, 0xd88a, 0xd88b, - 0xf5f8, 0xd88c, 0xd88d, 0xd88e, 0xd88f, 0xd890, 0xd891, 0xd892, - 0xd893, 0xd894, 0xd895, 0xd896, 0xd897, 0xd898, 0xd899, 0xd89a, - 0xd89b, 0xd89c, 0xd89d, 0xd89e, 0xd89f, 0xd8a0, 0xd940, 0xd941, - 0xd942, 0xd943, 0xd944, 0xd945, 0xd946, 0xd947, 0xd948, 0xd949, - 0xd94a, 0xd94b, 0xd94c, 0xd94d, 0xd94e, 0xd94f, 0xd950, 0xd951, - 0xd952, 0xd953, 0xd954, 0xd955, 0xd956, 0xd957, 0xd958, 0xd959, - 0xd95a, 0xd95b, 0xd95c, 0xd95d, 0xd95e, 0xd95f, 0xd960, 0xd961, - 0xd962, 0xd963, 0xd964, 0xd965, 0xd966, 0xd967, 0xd968, 0xd969, - 0xd96a, 0xd96b, 0xd96c, 0xd96d, 0xd96e, 0xd96f, 0xd970, 0xd971, - 0xd972, 0xd973, 0xd974, 0xd975, 0xd976, 0xd977, 0xd978, 0xd979, - 0xd97a, 0xd97b, 0xd97c, 0xd97d, 0xd97e, 0xd980, 0xd981, 0xd982, - 0xd983, 0xd984, 0xd985, 0xd986, 0xd987, 0xd988, 0xd989, 0xd98a, - 0xd98b, 0xd98c, 0xd98d, 0xd98e, 0xd98f, 0xd990, 0xd991, 0xd992, - /* 0x8d00 .. 0x8dff */ - 0xd993, 0xd994, 0xd995, 0xd996, 0xd997, 0xd998, 0xd999, 0xd99a, - 0xd99b, 0xd99c, 0xd99d, 0xd99e, 0xd99f, 0xd9a0, 0xda40, 0xda41, - 0xda42, 0xda43, 0xda44, 0xda45, 0xda46, 0xda47, 0xda48, 0xda49, - 0xda4a, 0xda4b, 0xda4c, 0xda4d, 0xda4e, 0xb1b4, 0xd5ea, 0xb8ba, - 0xda4f, 0xb9b1, 0xb2c6, 0xd4f0, 0xcfcd, 0xb0dc, 0xd5cb, 0xbbf5, - 0xd6ca, 0xb7b7, 0xccb0, 0xc6b6, 0xb1e1, 0xb9ba, 0xd6fc, 0xb9e1, - 0xb7a1, 0xbcfa, 0xeada, 0xeadb, 0xccf9, 0xb9f3, 0xeadc, 0xb4fb, - 0xc3b3, 0xb7d1, 0xbad8, 0xeadd, 0xd4f4, 0xeade, 0xbcd6, 0xbbdf, - 0xeadf, 0xc1de, 0xc2b8, 0xd4df, 0xd7ca, 0xeae0, 0xeae1, 0xeae4, - 0xeae2, 0xeae3, 0xc9de, 0xb8b3, 0xb6c4, 0xeae5, 0xcaea, 0xc9cd, - 0xb4cd, 0xda50, 0xda51, 0xe2d9, 0xc5e2, 0xeae6, 0xc0b5, 0xda52, - 0xd7b8, 0xeae7, 0xd7ac, 0xc8fc, 0xd8d3, 0xd8cd, 0xd4de, 0xda53, - 0xd4f9, 0xc9c4, 0xd3ae, 0xb8d3, 0xb3e0, 0xda54, 0xc9e2, 0xf4f6, - 0xda55, 0xda56, 0xda57, 0xbad5, 0xda58, 0xf4f7, 0xda59, 0xda5a, - 0xd7df, 0xda5b, 0xda5c, 0xf4f1, 0xb8b0, 0xd5d4, 0xb8cf, 0xc6f0, - 0xda5d, 0xda5e, 0xda5f, 0xda60, 0xda61, 0xda62, 0xda63, 0xda64, - 0xda65, 0xb3c3, 0xda66, 0xda67, 0xf4f2, 0xb3ac, 0xda68, 0xda69, - 0xda6a, 0xda6b, 0xd4bd, 0xc7f7, 0xda6c, 0xda6d, 0xda6e, 0xda6f, - 0xda70, 0xf4f4, 0xda71, 0xda72, 0xf4f3, 0xda73, 0xda74, 0xda75, - 0xda76, 0xda77, 0xda78, 0xda79, 0xda7a, 0xda7b, 0xda7c, 0xcccb, - 0xda7d, 0xda7e, 0xda80, 0xc8a4, 0xda81, 0xda82, 0xda83, 0xda84, - 0xda85, 0xda86, 0xda87, 0xda88, 0xda89, 0xda8a, 0xda8b, 0xda8c, - 0xda8d, 0xf4f5, 0xda8e, 0xd7e3, 0xc5bf, 0xf5c0, 0xda8f, 0xda90, - 0xf5bb, 0xda91, 0xf5c3, 0xda92, 0xf5c2, 0xda93, 0xd6ba, 0xf5c1, - 0xda94, 0xda95, 0xda96, 0xd4be, 0xf5c4, 0xda97, 0xf5cc, 0xda98, - 0xda99, 0xda9a, 0xda9b, 0xb0cf, 0xb5f8, 0xda9c, 0xf5c9, 0xf5ca, - 0xda9d, 0xc5dc, 0xda9e, 0xda9f, 0xdaa0, 0xdb40, 0xf5c5, 0xf5c6, - 0xdb41, 0xdb42, 0xf5c7, 0xf5cb, 0xdb43, 0xbee0, 0xf5c8, 0xb8fa, - 0xdb44, 0xdb45, 0xdb46, 0xf5d0, 0xf5d3, 0xdb47, 0xdb48, 0xdb49, - 0xbfe7, 0xdb4a, 0xb9f2, 0xf5bc, 0xf5cd, 0xdb4b, 0xdb4c, 0xc2b7, - 0xdb4d, 0xdb4e, 0xdb4f, 0xccf8, 0xdb50, 0xbcf9, 0xdb51, 0xf5ce, - 0xf5cf, 0xf5d1, 0xb6e5, 0xf5d2, 0xdb52, 0xf5d5, 0xdb53, 0xdb54, - /* 0x8e00 .. 0x8eff */ - 0xdb55, 0xdb56, 0xdb57, 0xdb58, 0xdb59, 0xf5bd, 0xdb5a, 0xdb5b, - 0xdb5c, 0xf5d4, 0xd3bb, 0xdb5d, 0xb3ec, 0xdb5e, 0xdb5f, 0xcca4, - 0xdb60, 0xdb61, 0xdb62, 0xdb63, 0xf5d6, 0xdb64, 0xdb65, 0xdb66, - 0xdb67, 0xdb68, 0xdb69, 0xdb6a, 0xdb6b, 0xf5d7, 0xbee1, 0xf5d8, - 0xdb6c, 0xdb6d, 0xccdf, 0xf5db, 0xdb6e, 0xdb6f, 0xdb70, 0xdb71, - 0xdb72, 0xb2c8, 0xd7d9, 0xdb73, 0xf5d9, 0xdb74, 0xf5da, 0xf5dc, - 0xdb75, 0xf5e2, 0xdb76, 0xdb77, 0xdb78, 0xf5e0, 0xdb79, 0xdb7a, - 0xdb7b, 0xf5df, 0xf5dd, 0xdb7c, 0xdb7d, 0xf5e1, 0xdb7e, 0xdb80, - 0xf5de, 0xf5e4, 0xf5e5, 0xdb81, 0xcce3, 0xdb82, 0xdb83, 0xe5bf, - 0xb5b8, 0xf5e3, 0xf5e8, 0xcca3, 0xdb84, 0xdb85, 0xdb86, 0xdb87, - 0xdb88, 0xf5e6, 0xf5e7, 0xdb89, 0xdb8a, 0xdb8b, 0xdb8c, 0xdb8d, - 0xdb8e, 0xf5be, 0xdb8f, 0xdb90, 0xdb91, 0xdb92, 0xdb93, 0xdb94, - 0xdb95, 0xdb96, 0xdb97, 0xdb98, 0xdb99, 0xdb9a, 0xb1c4, 0xdb9b, - 0xdb9c, 0xf5bf, 0xdb9d, 0xdb9e, 0xb5c5, 0xb2e4, 0xdb9f, 0xf5ec, - 0xf5e9, 0xdba0, 0xb6d7, 0xdc40, 0xf5ed, 0xdc41, 0xf5ea, 0xdc42, - 0xdc43, 0xdc44, 0xdc45, 0xdc46, 0xf5eb, 0xdc47, 0xdc48, 0xb4da, - 0xdc49, 0xd4ea, 0xdc4a, 0xdc4b, 0xdc4c, 0xf5ee, 0xdc4d, 0xb3f9, - 0xdc4e, 0xdc4f, 0xdc50, 0xdc51, 0xdc52, 0xdc53, 0xdc54, 0xf5ef, - 0xf5f1, 0xdc55, 0xdc56, 0xdc57, 0xf5f0, 0xdc58, 0xdc59, 0xdc5a, - 0xdc5b, 0xdc5c, 0xdc5d, 0xdc5e, 0xf5f2, 0xdc5f, 0xf5f3, 0xdc60, - 0xdc61, 0xdc62, 0xdc63, 0xdc64, 0xdc65, 0xdc66, 0xdc67, 0xdc68, - 0xdc69, 0xdc6a, 0xdc6b, 0xc9ed, 0xb9aa, 0xdc6c, 0xdc6d, 0xc7fb, - 0xdc6e, 0xdc6f, 0xb6e3, 0xdc70, 0xdc71, 0xdc72, 0xdc73, 0xdc74, - 0xdc75, 0xdc76, 0xccc9, 0xdc77, 0xdc78, 0xdc79, 0xdc7a, 0xdc7b, - 0xdc7c, 0xdc7d, 0xdc7e, 0xdc80, 0xdc81, 0xdc82, 0xdc83, 0xdc84, - 0xdc85, 0xdc86, 0xdc87, 0xdc88, 0xdc89, 0xdc8a, 0xeaa6, 0xdc8b, - 0xdc8c, 0xdc8d, 0xdc8e, 0xdc8f, 0xdc90, 0xdc91, 0xdc92, 0xdc93, - 0xdc94, 0xdc95, 0xdc96, 0xdc97, 0xdc98, 0xdc99, 0xdc9a, 0xdc9b, - 0xdc9c, 0xdc9d, 0xdc9e, 0xdc9f, 0xdca0, 0xdd40, 0xdd41, 0xdd42, - 0xdd43, 0xdd44, 0xdd45, 0xdd46, 0xdd47, 0xdd48, 0xdd49, 0xdd4a, - 0xdd4b, 0xdd4c, 0xdd4d, 0xdd4e, 0xdd4f, 0xdd50, 0xdd51, 0xdd52, - 0xdd53, 0xdd54, 0xdd55, 0xdd56, 0xdd57, 0xdd58, 0xdd59, 0xdd5a, - /* 0x8f00 .. 0x8fff */ - 0xdd5b, 0xdd5c, 0xdd5d, 0xdd5e, 0xdd5f, 0xdd60, 0xdd61, 0xdd62, - 0xdd63, 0xdd64, 0xdd65, 0xdd66, 0xdd67, 0xdd68, 0xdd69, 0xdd6a, - 0xdd6b, 0xdd6c, 0xdd6d, 0xdd6e, 0xdd6f, 0xdd70, 0xdd71, 0xdd72, - 0xdd73, 0xdd74, 0xdd75, 0xdd76, 0xdd77, 0xdd78, 0xdd79, 0xdd7a, - 0xdd7b, 0xdd7c, 0xdd7d, 0xdd7e, 0xdd80, 0xdd81, 0xdd82, 0xdd83, - 0xdd84, 0xdd85, 0xdd86, 0xdd87, 0xdd88, 0xdd89, 0xdd8a, 0xdd8b, - 0xdd8c, 0xdd8d, 0xdd8e, 0xdd8f, 0xdd90, 0xdd91, 0xdd92, 0xdd93, - 0xdd94, 0xdd95, 0xdd96, 0xdd97, 0xdd98, 0xdd99, 0xdd9a, 0xdd9b, - 0xdd9c, 0xdd9d, 0xdd9e, 0xdd9f, 0xdda0, 0xde40, 0xde41, 0xde42, - 0xde43, 0xde44, 0xde45, 0xde46, 0xde47, 0xde48, 0xde49, 0xde4a, - 0xde4b, 0xde4c, 0xde4d, 0xde4e, 0xde4f, 0xde50, 0xde51, 0xde52, - 0xde53, 0xde54, 0xde55, 0xde56, 0xde57, 0xde58, 0xde59, 0xde5a, - 0xde5b, 0xde5c, 0xde5d, 0xde5e, 0xde5f, 0xde60, 0xb3b5, 0xd4fe, - 0xb9ec, 0xd0f9, 0xde61, 0xe9ed, 0xd7aa, 0xe9ee, 0xc2d6, 0xc8ed, - 0xbae4, 0xe9ef, 0xe9f0, 0xe9f1, 0xd6e1, 0xe9f2, 0xe9f3, 0xe9f5, - 0xe9f4, 0xe9f6, 0xe9f7, 0xc7e1, 0xe9f8, 0xd4d8, 0xe9f9, 0xbdce, - 0xde62, 0xe9fa, 0xe9fb, 0xbdcf, 0xe9fc, 0xb8a8, 0xc1be, 0xe9fd, - 0xb1b2, 0xbbd4, 0xb9f5, 0xe9fe, 0xde63, 0xeaa1, 0xeaa2, 0xeaa3, - 0xb7f8, 0xbcad, 0xde64, 0xcae4, 0xe0ce, 0xd4af, 0xcfbd, 0xd5b7, - 0xeaa4, 0xd5de, 0xeaa5, 0xd0c1, 0xb9bc, 0xde65, 0xb4c7, 0xb1d9, - 0xde66, 0xde67, 0xde68, 0xc0b1, 0xde69, 0xde6a, 0xde6b, 0xde6c, - 0xb1e6, 0xb1e7, 0xde6d, 0xb1e8, 0xde6e, 0xde6f, 0xde70, 0xde71, - 0xb3bd, 0xc8e8, 0xde72, 0xde73, 0xde74, 0xde75, 0xe5c1, 0xde76, - 0xde77, 0xb1df, 0xde78, 0xde79, 0xde7a, 0xc1c9, 0xb4ef, 0xde7b, - 0xde7c, 0xc7a8, 0xd3d8, 0xde7d, 0xc6f9, 0xd1b8, 0xde7e, 0xb9fd, - 0xc2f5, 0xde80, 0xde81, 0xde82, 0xde83, 0xde84, 0xd3ad, 0xde85, - 0xd4cb, 0xbdfc, 0xde86, 0xe5c2, 0xb7b5, 0xe5c3, 0xde87, 0xde88, - 0xbbb9, 0xd5e2, 0xde89, 0xbdf8, 0xd4b6, 0xcea5, 0xc1ac, 0xb3d9, - 0xde8a, 0xde8b, 0xccf6, 0xde8c, 0xe5c6, 0xe5c4, 0xe5c8, 0xde8d, - 0xe5ca, 0xe5c7, 0xb5cf, 0xc6c8, 0xde8e, 0xb5fc, 0xe5c5, 0xde8f, - 0xcaf6, 0xde90, 0xde91, 0xe5c9, 0xde92, 0xde93, 0xde94, 0xc3d4, - 0xb1c5, 0xbca3, 0xde95, 0xde96, 0xde97, 0xd7b7, 0xde98, 0xde99, - /* 0x9000 .. 0x90ff */ - 0xcdcb, 0xcbcd, 0xcaca, 0xccd3, 0xe5cc, 0xe5cb, 0xc4e6, 0xde9a, - 0xde9b, 0xd1a1, 0xd1b7, 0xe5cd, 0xde9c, 0xe5d0, 0xde9d, 0xcdb8, - 0xd6f0, 0xe5cf, 0xb5dd, 0xde9e, 0xcdbe, 0xde9f, 0xe5d1, 0xb6ba, - 0xdea0, 0xdf40, 0xcda8, 0xb9e4, 0xdf41, 0xcac5, 0xb3d1, 0xcbd9, - 0xd4ec, 0xe5d2, 0xb7ea, 0xdf42, 0xdf43, 0xdf44, 0xe5ce, 0xdf45, - 0xdf46, 0xdf47, 0xdf48, 0xdf49, 0xdf4a, 0xe5d5, 0xb4fe, 0xe5d6, - 0xdf4b, 0xdf4c, 0xdf4d, 0xdf4e, 0xdf4f, 0xe5d3, 0xe5d4, 0xdf50, - 0xd2dd, 0xdf51, 0xdf52, 0xc2df, 0xb1c6, 0xdf53, 0xd3e2, 0xdf54, - 0xdf55, 0xb6dd, 0xcbec, 0xdf56, 0xe5d7, 0xdf57, 0xdf58, 0xd3f6, - 0xdf59, 0xdf5a, 0xdf5b, 0xdf5c, 0xdf5d, 0xb1e9, 0xdf5e, 0xb6f4, - 0xe5da, 0xe5d8, 0xe5d9, 0xb5c0, 0xdf5f, 0xdf60, 0xdf61, 0xd2c5, - 0xe5dc, 0xdf62, 0xdf63, 0xe5de, 0xdf64, 0xdf65, 0xdf66, 0xdf67, - 0xdf68, 0xdf69, 0xe5dd, 0xc7b2, 0xdf6a, 0xd2a3, 0xdf6b, 0xdf6c, - 0xe5db, 0xdf6d, 0xdf6e, 0xdf6f, 0xdf70, 0xd4e2, 0xd5da, 0xdf71, - 0xdf72, 0xdf73, 0xdf74, 0xdf75, 0xe5e0, 0xd7f1, 0xdf76, 0xdf77, - 0xdf78, 0xdf79, 0xdf7a, 0xdf7b, 0xdf7c, 0xe5e1, 0xdf7d, 0xb1dc, - 0xd1fb, 0xdf7e, 0xe5e2, 0xe5e4, 0xdf80, 0xdf81, 0xdf82, 0xdf83, - 0xe5e3, 0xdf84, 0xdf85, 0xe5e5, 0xdf86, 0xdf87, 0xdf88, 0xdf89, - 0xdf8a, 0xd2d8, 0xdf8b, 0xb5cb, 0xdf8c, 0xe7df, 0xdf8d, 0xdaf5, - 0xdf8e, 0xdaf8, 0xdf8f, 0xdaf6, 0xdf90, 0xdaf7, 0xdf91, 0xdf92, - 0xdf93, 0xdafa, 0xd0cf, 0xc4c7, 0xdf94, 0xdf95, 0xb0ee, 0xdf96, - 0xdf97, 0xdf98, 0xd0b0, 0xdf99, 0xdaf9, 0xdf9a, 0xd3ca, 0xbaaa, - 0xdba2, 0xc7f1, 0xdf9b, 0xdafc, 0xdafb, 0xc9db, 0xdafd, 0xdf9c, - 0xdba1, 0xd7de, 0xdafe, 0xc1da, 0xdf9d, 0xdf9e, 0xdba5, 0xdf9f, - 0xdfa0, 0xd3f4, 0xe040, 0xe041, 0xdba7, 0xdba4, 0xe042, 0xdba8, - 0xe043, 0xe044, 0xbdbc, 0xe045, 0xe046, 0xe047, 0xc0c9, 0xdba3, - 0xdba6, 0xd6a3, 0xe048, 0xdba9, 0xe049, 0xe04a, 0xe04b, 0xdbad, - 0xe04c, 0xe04d, 0xe04e, 0xdbae, 0xdbac, 0xbac2, 0xe04f, 0xe050, - 0xe051, 0xbfa4, 0xdbab, 0xe052, 0xe053, 0xe054, 0xdbaa, 0xd4c7, - 0xb2bf, 0xe055, 0xe056, 0xdbaf, 0xe057, 0xb9f9, 0xe058, 0xdbb0, - 0xe059, 0xe05a, 0xe05b, 0xe05c, 0xb3bb, 0xe05d, 0xe05e, 0xe05f, - 0xb5a6, 0xe060, 0xe061, 0xe062, 0xe063, 0xb6bc, 0xdbb1, 0xe064, - /* 0x9100 .. 0x91ff */ - 0xe065, 0xe066, 0xb6f5, 0xe067, 0xdbb2, 0xe068, 0xe069, 0xe06a, - 0xe06b, 0xe06c, 0xe06d, 0xe06e, 0xe06f, 0xe070, 0xe071, 0xe072, - 0xe073, 0xe074, 0xe075, 0xe076, 0xe077, 0xe078, 0xe079, 0xe07a, - 0xe07b, 0xb1c9, 0xe07c, 0xe07d, 0xe07e, 0xe080, 0xdbb4, 0xe081, - 0xe082, 0xe083, 0xdbb3, 0xdbb5, 0xe084, 0xe085, 0xe086, 0xe087, - 0xe088, 0xe089, 0xe08a, 0xe08b, 0xe08c, 0xe08d, 0xe08e, 0xdbb7, - 0xe08f, 0xdbb6, 0xe090, 0xe091, 0xe092, 0xe093, 0xe094, 0xe095, - 0xe096, 0xdbb8, 0xe097, 0xe098, 0xe099, 0xe09a, 0xe09b, 0xe09c, - 0xe09d, 0xe09e, 0xe09f, 0xdbb9, 0xe0a0, 0xe140, 0xdbba, 0xe141, - 0xe142, 0xd3cf, 0xf4fa, 0xc7f5, 0xd7c3, 0xc5e4, 0xf4fc, 0xf4fd, - 0xf4fb, 0xe143, 0xbec6, 0xe144, 0xe145, 0xe146, 0xe147, 0xd0ef, - 0xe148, 0xe149, 0xb7d3, 0xe14a, 0xe14b, 0xd4cd, 0xccaa, 0xe14c, - 0xe14d, 0xf5a2, 0xf5a1, 0xbaa8, 0xf4fe, 0xcbd6, 0xe14e, 0xe14f, - 0xe150, 0xf5a4, 0xc0d2, 0xe151, 0xb3ea, 0xe152, 0xcdaa, 0xf5a5, - 0xf5a3, 0xbdb4, 0xf5a8, 0xe153, 0xf5a9, 0xbdcd, 0xc3b8, 0xbfe1, - 0xcbe1, 0xf5aa, 0xe154, 0xe155, 0xe156, 0xf5a6, 0xf5a7, 0xc4f0, - 0xe157, 0xe158, 0xe159, 0xe15a, 0xe15b, 0xf5ac, 0xe15c, 0xb4bc, - 0xe15d, 0xd7ed, 0xe15e, 0xb4d7, 0xf5ab, 0xf5ae, 0xe15f, 0xe160, - 0xf5ad, 0xf5af, 0xd0d1, 0xe161, 0xe162, 0xe163, 0xe164, 0xe165, - 0xe166, 0xe167, 0xc3d1, 0xc8a9, 0xe168, 0xe169, 0xe16a, 0xe16b, - 0xe16c, 0xe16d, 0xf5b0, 0xf5b1, 0xe16e, 0xe16f, 0xe170, 0xe171, - 0xe172, 0xe173, 0xf5b2, 0xe174, 0xe175, 0xf5b3, 0xf5b4, 0xf5b5, - 0xe176, 0xe177, 0xe178, 0xe179, 0xf5b7, 0xf5b6, 0xe17a, 0xe17b, - 0xe17c, 0xe17d, 0xf5b8, 0xe17e, 0xe180, 0xe181, 0xe182, 0xe183, - 0xe184, 0xe185, 0xe186, 0xe187, 0xe188, 0xe189, 0xe18a, 0xb2c9, - 0xe18b, 0xd3d4, 0xcacd, 0xe18c, 0xc0ef, 0xd6d8, 0xd2b0, 0xc1bf, - 0xe18d, 0xbdf0, 0xe18e, 0xe18f, 0xe190, 0xe191, 0xe192, 0xe193, - 0xe194, 0xe195, 0xe196, 0xe197, 0xb8aa, 0xe198, 0xe199, 0xe19a, - 0xe19b, 0xe19c, 0xe19d, 0xe19e, 0xe19f, 0xe1a0, 0xe240, 0xe241, - 0xe242, 0xe243, 0xe244, 0xe245, 0xe246, 0xe247, 0xe248, 0xe249, - 0xe24a, 0xe24b, 0xe24c, 0xe24d, 0xe24e, 0xe24f, 0xe250, 0xe251, - 0xe252, 0xe253, 0xe254, 0xe255, 0xe256, 0xe257, 0xe258, 0xe259, - /* 0x9200 .. 0x92ff */ - 0xe25a, 0xe25b, 0xe25c, 0xe25d, 0xe25e, 0xe25f, 0xe260, 0xe261, - 0xe262, 0xe263, 0xe264, 0xe265, 0xe266, 0xe267, 0xe268, 0xe269, - 0xe26a, 0xe26b, 0xe26c, 0xe26d, 0xe26e, 0xe26f, 0xe270, 0xe271, - 0xe272, 0xe273, 0xe274, 0xe275, 0xe276, 0xe277, 0xe278, 0xe279, - 0xe27a, 0xe27b, 0xe27c, 0xe27d, 0xe27e, 0xe280, 0xe281, 0xe282, - 0xe283, 0xe284, 0xe285, 0xe286, 0xe287, 0xe288, 0xe289, 0xe28a, - 0xe28b, 0xe28c, 0xe28d, 0xe28e, 0xe28f, 0xe290, 0xe291, 0xe292, - 0xe293, 0xe294, 0xe295, 0xe296, 0xe297, 0xe298, 0xe299, 0xe29a, - 0xe29b, 0xe29c, 0xe29d, 0xe29e, 0xe29f, 0xe2a0, 0xe340, 0xe341, - 0xe342, 0xe343, 0xe344, 0xe345, 0xe346, 0xe347, 0xe348, 0xe349, - 0xe34a, 0xe34b, 0xe34c, 0xe34d, 0xe34e, 0xe34f, 0xe350, 0xe351, - 0xe352, 0xe353, 0xe354, 0xe355, 0xe356, 0xe357, 0xe358, 0xe359, - 0xe35a, 0xe35b, 0xe35c, 0xe35d, 0xe35e, 0xe35f, 0xe360, 0xe361, - 0xe362, 0xe363, 0xe364, 0xe365, 0xe366, 0xe367, 0xe368, 0xe369, - 0xe36a, 0xe36b, 0xe36c, 0xe36d, 0xbcf8, 0xe36e, 0xe36f, 0xe370, - 0xe371, 0xe372, 0xe373, 0xe374, 0xe375, 0xe376, 0xe377, 0xe378, - 0xe379, 0xe37a, 0xe37b, 0xe37c, 0xe37d, 0xe37e, 0xe380, 0xe381, - 0xe382, 0xe383, 0xe384, 0xe385, 0xe386, 0xe387, 0xf6c6, 0xe388, - 0xe389, 0xe38a, 0xe38b, 0xe38c, 0xe38d, 0xe38e, 0xe38f, 0xe390, - 0xe391, 0xe392, 0xe393, 0xe394, 0xe395, 0xe396, 0xe397, 0xe398, - 0xe399, 0xe39a, 0xe39b, 0xe39c, 0xe39d, 0xe39e, 0xe39f, 0xe3a0, - 0xe440, 0xe441, 0xe442, 0xe443, 0xe444, 0xe445, 0xf6c7, 0xe446, - 0xe447, 0xe448, 0xe449, 0xe44a, 0xe44b, 0xe44c, 0xe44d, 0xe44e, - 0xe44f, 0xe450, 0xe451, 0xe452, 0xe453, 0xe454, 0xe455, 0xe456, - 0xe457, 0xe458, 0xe459, 0xe45a, 0xe45b, 0xe45c, 0xe45d, 0xe45e, - 0xf6c8, 0xe45f, 0xe460, 0xe461, 0xe462, 0xe463, 0xe464, 0xe465, - 0xe466, 0xe467, 0xe468, 0xe469, 0xe46a, 0xe46b, 0xe46c, 0xe46d, - 0xe46e, 0xe46f, 0xe470, 0xe471, 0xe472, 0xe473, 0xe474, 0xe475, - 0xe476, 0xe477, 0xe478, 0xe479, 0xe47a, 0xe47b, 0xe47c, 0xe47d, - 0xe47e, 0xe480, 0xe481, 0xe482, 0xe483, 0xe484, 0xe485, 0xe486, - 0xe487, 0xe488, 0xe489, 0xe48a, 0xe48b, 0xe48c, 0xe48d, 0xe48e, - 0xe48f, 0xe490, 0xe491, 0xe492, 0xe493, 0xe494, 0xe495, 0xe496, - /* 0x9300 .. 0x93ff */ - 0xe497, 0xe498, 0xe499, 0xe49a, 0xe49b, 0xe49c, 0xe49d, 0xe49e, - 0xe49f, 0xe4a0, 0xe540, 0xe541, 0xe542, 0xe543, 0xe544, 0xe545, - 0xe546, 0xe547, 0xe548, 0xe549, 0xe54a, 0xe54b, 0xe54c, 0xe54d, - 0xe54e, 0xe54f, 0xe550, 0xe551, 0xe552, 0xe553, 0xe554, 0xe555, - 0xe556, 0xe557, 0xe558, 0xe559, 0xe55a, 0xe55b, 0xe55c, 0xe55d, - 0xe55e, 0xe55f, 0xe560, 0xe561, 0xe562, 0xe563, 0xe564, 0xe565, - 0xe566, 0xe567, 0xe568, 0xe569, 0xe56a, 0xe56b, 0xe56c, 0xe56d, - 0xe56e, 0xe56f, 0xe570, 0xe571, 0xe572, 0xe573, 0xf6c9, 0xe574, - 0xe575, 0xe576, 0xe577, 0xe578, 0xe579, 0xe57a, 0xe57b, 0xe57c, - 0xe57d, 0xe57e, 0xe580, 0xe581, 0xe582, 0xe583, 0xe584, 0xe585, - 0xe586, 0xe587, 0xe588, 0xe589, 0xe58a, 0xe58b, 0xe58c, 0xe58d, - 0xe58e, 0xe58f, 0xe590, 0xe591, 0xe592, 0xe593, 0xe594, 0xe595, - 0xe596, 0xe597, 0xe598, 0xe599, 0xe59a, 0xe59b, 0xe59c, 0xe59d, - 0xe59e, 0xe59f, 0xf6ca, 0xe5a0, 0xe640, 0xe641, 0xe642, 0xe643, - 0xe644, 0xe645, 0xe646, 0xe647, 0xe648, 0xe649, 0xe64a, 0xe64b, - 0xe64c, 0xe64d, 0xe64e, 0xe64f, 0xe650, 0xe651, 0xe652, 0xe653, - 0xe654, 0xe655, 0xe656, 0xe657, 0xe658, 0xe659, 0xe65a, 0xe65b, - 0xe65c, 0xe65d, 0xe65e, 0xe65f, 0xe660, 0xe661, 0xe662, 0xf6cc, - 0xe663, 0xe664, 0xe665, 0xe666, 0xe667, 0xe668, 0xe669, 0xe66a, - 0xe66b, 0xe66c, 0xe66d, 0xe66e, 0xe66f, 0xe670, 0xe671, 0xe672, - 0xe673, 0xe674, 0xe675, 0xe676, 0xe677, 0xe678, 0xe679, 0xe67a, - 0xe67b, 0xe67c, 0xe67d, 0xe67e, 0xe680, 0xe681, 0xe682, 0xe683, - 0xe684, 0xe685, 0xe686, 0xe687, 0xe688, 0xe689, 0xe68a, 0xe68b, - 0xe68c, 0xe68d, 0xe68e, 0xe68f, 0xe690, 0xe691, 0xe692, 0xe693, - 0xe694, 0xe695, 0xe696, 0xe697, 0xe698, 0xe699, 0xe69a, 0xe69b, - 0xe69c, 0xe69d, 0xf6cb, 0xe69e, 0xe69f, 0xe6a0, 0xe740, 0xe741, - 0xe742, 0xe743, 0xe744, 0xe745, 0xe746, 0xe747, 0xf7e9, 0xe748, - 0xe749, 0xe74a, 0xe74b, 0xe74c, 0xe74d, 0xe74e, 0xe74f, 0xe750, - 0xe751, 0xe752, 0xe753, 0xe754, 0xe755, 0xe756, 0xe757, 0xe758, - 0xe759, 0xe75a, 0xe75b, 0xe75c, 0xe75d, 0xe75e, 0xe75f, 0xe760, - 0xe761, 0xe762, 0xe763, 0xe764, 0xe765, 0xe766, 0xe767, 0xe768, - 0xe769, 0xe76a, 0xe76b, 0xe76c, 0xe76d, 0xe76e, 0xe76f, 0xe770, - /* 0x9400 .. 0x94ff */ - 0xe771, 0xe772, 0xe773, 0xe774, 0xe775, 0xe776, 0xe777, 0xe778, - 0xe779, 0xe77a, 0xe77b, 0xe77c, 0xe77d, 0xe77e, 0xe780, 0xe781, - 0xe782, 0xe783, 0xe784, 0xe785, 0xe786, 0xe787, 0xe788, 0xe789, - 0xe78a, 0xe78b, 0xe78c, 0xe78d, 0xe78e, 0xe78f, 0xe790, 0xe791, - 0xe792, 0xe793, 0xe794, 0xe795, 0xe796, 0xe797, 0xe798, 0xe799, - 0xe79a, 0xe79b, 0xe79c, 0xe79d, 0xe79e, 0xe79f, 0xe7a0, 0xe840, - 0xe841, 0xe842, 0xe843, 0xe844, 0xe845, 0xe846, 0xe847, 0xe848, - 0xe849, 0xe84a, 0xe84b, 0xe84c, 0xe84d, 0xe84e, 0xf6cd, 0xe84f, - 0xe850, 0xe851, 0xe852, 0xe853, 0xe854, 0xe855, 0xe856, 0xe857, - 0xe858, 0xe859, 0xe85a, 0xe85b, 0xe85c, 0xe85d, 0xe85e, 0xe85f, - 0xe860, 0xe861, 0xe862, 0xe863, 0xe864, 0xe865, 0xe866, 0xe867, - 0xe868, 0xe869, 0xe86a, 0xe86b, 0xe86c, 0xe86d, 0xe86e, 0xe86f, - 0xe870, 0xe871, 0xe872, 0xe873, 0xe874, 0xe875, 0xe876, 0xe877, - 0xe878, 0xe879, 0xe87a, 0xf6ce, 0xe87b, 0xe87c, 0xe87d, 0xe87e, - 0xe880, 0xe881, 0xe882, 0xe883, 0xe884, 0xe885, 0xe886, 0xe887, - 0xe888, 0xe889, 0xe88a, 0xe88b, 0xe88c, 0xe88d, 0xe88e, 0xe88f, - 0xe890, 0xe891, 0xe892, 0xe893, 0xe894, 0xeec4, 0xeec5, 0xeec6, - 0xd5eb, 0xb6a4, 0xeec8, 0xeec7, 0xeec9, 0xeeca, 0xc7a5, 0xeecb, - 0xeecc, 0xe895, 0xb7b0, 0xb5f6, 0xeecd, 0xeecf, 0xe896, 0xeece, - 0xe897, 0xb8c6, 0xeed0, 0xeed1, 0xeed2, 0xb6db, 0xb3ae, 0xd6d3, - 0xc4c6, 0xb1b5, 0xb8d6, 0xeed3, 0xeed4, 0xd4bf, 0xc7d5, 0xbefb, - 0xced9, 0xb9b3, 0xeed6, 0xeed5, 0xeed8, 0xeed7, 0xc5a5, 0xeed9, - 0xeeda, 0xc7ae, 0xeedb, 0xc7af, 0xeedc, 0xb2a7, 0xeedd, 0xeede, - 0xeedf, 0xeee0, 0xeee1, 0xd7ea, 0xeee2, 0xeee3, 0xbcd8, 0xeee4, - 0xd3cb, 0xccfa, 0xb2ac, 0xc1e5, 0xeee5, 0xc7a6, 0xc3ad, 0xe898, - 0xeee6, 0xeee7, 0xeee8, 0xeee9, 0xeeea, 0xeeeb, 0xeeec, 0xe899, - 0xeeed, 0xeeee, 0xeeef, 0xe89a, 0xe89b, 0xeef0, 0xeef1, 0xeef2, - 0xeef4, 0xeef3, 0xe89c, 0xeef5, 0xcdad, 0xc2c1, 0xeef6, 0xeef7, - 0xeef8, 0xd5a1, 0xeef9, 0xcfb3, 0xeefa, 0xeefb, 0xe89d, 0xeefc, - 0xeefd, 0xefa1, 0xeefe, 0xefa2, 0xb8f5, 0xc3fa, 0xefa3, 0xefa4, - 0xbdc2, 0xd2bf, 0xb2f9, 0xefa5, 0xefa6, 0xefa7, 0xd2f8, 0xefa8, - 0xd6fd, 0xefa9, 0xc6cc, 0xe89e, 0xefaa, 0xefab, 0xc1b4, 0xefac, - /* 0x9500 .. 0x95ff */ - 0xcffa, 0xcbf8, 0xefae, 0xefad, 0xb3fa, 0xb9f8, 0xefaf, 0xefb0, - 0xd0e2, 0xefb1, 0xefb2, 0xb7e6, 0xd0bf, 0xefb3, 0xefb4, 0xefb5, - 0xc8f1, 0xcce0, 0xefb6, 0xefb7, 0xefb8, 0xefb9, 0xefba, 0xd5e0, - 0xefbb, 0xb4ed, 0xc3aa, 0xefbc, 0xe89f, 0xefbd, 0xefbe, 0xefbf, - 0xe8a0, 0xcefd, 0xefc0, 0xc2e0, 0xb4b8, 0xd7b6, 0xbdf5, 0xe940, - 0xcfc7, 0xefc3, 0xefc1, 0xefc2, 0xefc4, 0xb6a7, 0xbcfc, 0xbee2, - 0xc3cc, 0xefc5, 0xefc6, 0xe941, 0xefc7, 0xefcf, 0xefc8, 0xefc9, - 0xefca, 0xc7c2, 0xeff1, 0xb6cd, 0xefcb, 0xe942, 0xefcc, 0xefcd, - 0xb6c6, 0xc3be, 0xefce, 0xe943, 0xefd0, 0xefd1, 0xefd2, 0xd5f2, - 0xe944, 0xefd3, 0xc4f7, 0xe945, 0xefd4, 0xc4f8, 0xefd5, 0xefd6, - 0xb8e4, 0xb0f7, 0xefd7, 0xefd8, 0xefd9, 0xe946, 0xefda, 0xefdb, - 0xefdc, 0xefdd, 0xe947, 0xefde, 0xbeb5, 0xefe1, 0xefdf, 0xefe0, - 0xe948, 0xefe2, 0xefe3, 0xc1cd, 0xefe4, 0xefe5, 0xefe6, 0xefe7, - 0xefe8, 0xefe9, 0xefea, 0xefeb, 0xefec, 0xc0d8, 0xe949, 0xefed, - 0xc1ad, 0xefee, 0xefef, 0xeff0, 0xe94a, 0xe94b, 0xcfe2, 0xe94c, - 0xe94d, 0xe94e, 0xe94f, 0xe950, 0xe951, 0xe952, 0xe953, 0xb3a4, - 0xe954, 0xe955, 0xe956, 0xe957, 0xe958, 0xe959, 0xe95a, 0xe95b, - 0xe95c, 0xe95d, 0xe95e, 0xe95f, 0xe960, 0xe961, 0xe962, 0xe963, - 0xe964, 0xe965, 0xe966, 0xe967, 0xe968, 0xe969, 0xe96a, 0xe96b, - 0xe96c, 0xe96d, 0xe96e, 0xe96f, 0xe970, 0xe971, 0xe972, 0xe973, - 0xe974, 0xe975, 0xe976, 0xe977, 0xe978, 0xe979, 0xe97a, 0xe97b, - 0xe97c, 0xe97d, 0xe97e, 0xe980, 0xe981, 0xe982, 0xe983, 0xe984, - 0xe985, 0xe986, 0xe987, 0xe988, 0xe989, 0xe98a, 0xe98b, 0xe98c, - 0xe98d, 0xe98e, 0xe98f, 0xe990, 0xe991, 0xe992, 0xe993, 0xe994, - 0xe995, 0xe996, 0xe997, 0xe998, 0xe999, 0xe99a, 0xe99b, 0xe99c, - 0xe99d, 0xe99e, 0xe99f, 0xe9a0, 0xea40, 0xea41, 0xea42, 0xea43, - 0xea44, 0xea45, 0xea46, 0xea47, 0xea48, 0xea49, 0xea4a, 0xea4b, - 0xea4c, 0xea4d, 0xea4e, 0xea4f, 0xea50, 0xea51, 0xea52, 0xea53, - 0xea54, 0xea55, 0xea56, 0xea57, 0xea58, 0xea59, 0xea5a, 0xea5b, - 0xc3c5, 0xe3c5, 0xc9c1, 0xe3c6, 0xea5c, 0xb1d5, 0xceca, 0xb4b3, - 0xc8f2, 0xe3c7, 0xcfd0, 0xe3c8, 0xbce4, 0xe3c9, 0xe3ca, 0xc3c6, - 0xd5a2, 0xc4d6, 0xb9eb, 0xcec5, 0xe3cb, 0xc3f6, 0xe3cc, 0xea5d, - /* 0x9600 .. 0x96ff */ - 0xb7a7, 0xb8f3, 0xbad2, 0xe3cd, 0xe3ce, 0xd4c4, 0xe3cf, 0xea5e, - 0xe3d0, 0xd1cb, 0xe3d1, 0xe3d2, 0xe3d3, 0xe3d4, 0xd1d6, 0xe3d5, - 0xb2fb, 0xc0bb, 0xe3d6, 0xea5f, 0xc0ab, 0xe3d7, 0xe3d8, 0xe3d9, - 0xea60, 0xe3da, 0xe3db, 0xea61, 0xb8b7, 0xdae2, 0xea62, 0xb6d3, - 0xea63, 0xdae4, 0xdae3, 0xea64, 0xea65, 0xea66, 0xea67, 0xea68, - 0xea69, 0xea6a, 0xdae6, 0xea6b, 0xea6c, 0xea6d, 0xc8ee, 0xea6e, - 0xea6f, 0xdae5, 0xb7c0, 0xd1f4, 0xd2f5, 0xd5f3, 0xbdd7, 0xea70, - 0xea71, 0xea72, 0xea73, 0xd7e8, 0xdae8, 0xdae7, 0xea74, 0xb0a2, - 0xcdd3, 0xea75, 0xdae9, 0xea76, 0xb8bd, 0xbcca, 0xc2bd, 0xc2a4, - 0xb3c2, 0xdaea, 0xea77, 0xc2aa, 0xc4b0, 0xbdb5, 0xea78, 0xea79, - 0xcfde, 0xea7a, 0xea7b, 0xea7c, 0xdaeb, 0xc9c2, 0xea7d, 0xea7e, - 0xea80, 0xea81, 0xea82, 0xb1dd, 0xea83, 0xea84, 0xea85, 0xdaec, - 0xea86, 0xb6b8, 0xd4ba, 0xea87, 0xb3fd, 0xea88, 0xea89, 0xdaed, - 0xd4c9, 0xcfd5, 0xc5e3, 0xea8a, 0xdaee, 0xea8b, 0xea8c, 0xea8d, - 0xea8e, 0xea8f, 0xdaef, 0xea90, 0xdaf0, 0xc1ea, 0xccd5, 0xcfdd, - 0xea91, 0xea92, 0xea93, 0xea94, 0xea95, 0xea96, 0xea97, 0xea98, - 0xea99, 0xea9a, 0xea9b, 0xea9c, 0xea9d, 0xd3e7, 0xc2a1, 0xea9e, - 0xdaf1, 0xea9f, 0xeaa0, 0xcbe5, 0xeb40, 0xdaf2, 0xeb41, 0xcbe6, - 0xd2fe, 0xeb42, 0xeb43, 0xeb44, 0xb8f4, 0xeb45, 0xeb46, 0xdaf3, - 0xb0af, 0xcfb6, 0xeb47, 0xeb48, 0xd5cf, 0xeb49, 0xeb4a, 0xeb4b, - 0xeb4c, 0xeb4d, 0xeb4e, 0xeb4f, 0xeb50, 0xeb51, 0xeb52, 0xcbed, - 0xeb53, 0xeb54, 0xeb55, 0xeb56, 0xeb57, 0xeb58, 0xeb59, 0xeb5a, - 0xdaf4, 0xeb5b, 0xeb5c, 0xe3c4, 0xeb5d, 0xeb5e, 0xc1a5, 0xeb5f, - 0xeb60, 0xf6bf, 0xeb61, 0xeb62, 0xf6c0, 0xf6c1, 0xc4d1, 0xeb63, - 0xc8b8, 0xd1e3, 0xeb64, 0xeb65, 0xd0db, 0xd1c5, 0xbcaf, 0xb9cd, - 0xeb66, 0xeff4, 0xeb67, 0xeb68, 0xb4c6, 0xd3ba, 0xf6c2, 0xb3fb, - 0xeb69, 0xeb6a, 0xf6c3, 0xeb6b, 0xeb6c, 0xb5f1, 0xeb6d, 0xeb6e, - 0xeb6f, 0xeb70, 0xeb71, 0xeb72, 0xeb73, 0xeb74, 0xeb75, 0xeb76, - 0xf6c5, 0xeb77, 0xeb78, 0xeb79, 0xeb7a, 0xeb7b, 0xeb7c, 0xeb7d, - 0xd3ea, 0xf6a7, 0xd1a9, 0xeb7e, 0xeb80, 0xeb81, 0xeb82, 0xf6a9, - 0xeb83, 0xeb84, 0xeb85, 0xf6a8, 0xeb86, 0xeb87, 0xc1e3, 0xc0d7, - 0xeb88, 0xb1a2, 0xeb89, 0xeb8a, 0xeb8b, 0xeb8c, 0xceed, 0xeb8d, - /* 0x9700 .. 0x97ff */ - 0xd0e8, 0xf6ab, 0xeb8e, 0xeb8f, 0xcff6, 0xeb90, 0xf6aa, 0xd5f0, - 0xf6ac, 0xc3b9, 0xeb91, 0xeb92, 0xeb93, 0xbbf4, 0xf6ae, 0xf6ad, - 0xeb94, 0xeb95, 0xeb96, 0xc4de, 0xeb97, 0xeb98, 0xc1d8, 0xeb99, - 0xeb9a, 0xeb9b, 0xeb9c, 0xeb9d, 0xcbaa, 0xeb9e, 0xcfbc, 0xeb9f, - 0xeba0, 0xec40, 0xec41, 0xec42, 0xec43, 0xec44, 0xec45, 0xec46, - 0xec47, 0xec48, 0xf6af, 0xec49, 0xec4a, 0xf6b0, 0xec4b, 0xec4c, - 0xf6b1, 0xec4d, 0xc2b6, 0xec4e, 0xec4f, 0xec50, 0xec51, 0xec52, - 0xb0d4, 0xc5f9, 0xec53, 0xec54, 0xec55, 0xec56, 0xf6b2, 0xec57, - 0xec58, 0xec59, 0xec5a, 0xec5b, 0xec5c, 0xec5d, 0xec5e, 0xec5f, - 0xec60, 0xec61, 0xec62, 0xec63, 0xec64, 0xec65, 0xec66, 0xec67, - 0xec68, 0xec69, 0xc7e0, 0xf6a6, 0xec6a, 0xec6b, 0xbeb8, 0xec6c, - 0xec6d, 0xbeb2, 0xec6e, 0xb5e5, 0xec6f, 0xec70, 0xb7c7, 0xec71, - 0xbfbf, 0xc3d2, 0xc3e6, 0xec72, 0xec73, 0xd8cc, 0xec74, 0xec75, - 0xec76, 0xb8ef, 0xec77, 0xec78, 0xec79, 0xec7a, 0xec7b, 0xec7c, - 0xec7d, 0xec7e, 0xec80, 0xbdf9, 0xd1a5, 0xec81, 0xb0d0, 0xec82, - 0xec83, 0xec84, 0xec85, 0xec86, 0xf7b0, 0xec87, 0xec88, 0xec89, - 0xec8a, 0xec8b, 0xec8c, 0xec8d, 0xec8e, 0xf7b1, 0xec8f, 0xec90, - 0xec91, 0xec92, 0xec93, 0xd0ac, 0xec94, 0xb0b0, 0xec95, 0xec96, - 0xec97, 0xf7b2, 0xf7b3, 0xec98, 0xf7b4, 0xec99, 0xec9a, 0xec9b, - 0xc7ca, 0xec9c, 0xec9d, 0xec9e, 0xec9f, 0xeca0, 0xed40, 0xed41, - 0xbecf, 0xed42, 0xed43, 0xf7b7, 0xed44, 0xed45, 0xed46, 0xed47, - 0xed48, 0xed49, 0xed4a, 0xf7b6, 0xed4b, 0xb1de, 0xed4c, 0xf7b5, - 0xed4d, 0xed4e, 0xf7b8, 0xed4f, 0xf7b9, 0xed50, 0xed51, 0xed52, - 0xed53, 0xed54, 0xed55, 0xed56, 0xed57, 0xed58, 0xed59, 0xed5a, - 0xed5b, 0xed5c, 0xed5d, 0xed5e, 0xed5f, 0xed60, 0xed61, 0xed62, - 0xed63, 0xed64, 0xed65, 0xed66, 0xed67, 0xed68, 0xed69, 0xed6a, - 0xed6b, 0xed6c, 0xed6d, 0xed6e, 0xed6f, 0xed70, 0xed71, 0xed72, - 0xed73, 0xed74, 0xed75, 0xed76, 0xed77, 0xed78, 0xed79, 0xed7a, - 0xed7b, 0xed7c, 0xed7d, 0xed7e, 0xed80, 0xed81, 0xcea4, 0xc8cd, - 0xed82, 0xbaab, 0xe8b8, 0xe8b9, 0xe8ba, 0xbec2, 0xed83, 0xed84, - 0xed85, 0xed86, 0xed87, 0xd2f4, 0xed88, 0xd4cf, 0xc9d8, 0xed89, - 0xed8a, 0xed8b, 0xed8c, 0xed8d, 0xed8e, 0xed8f, 0xed90, 0xed91, - /* 0x9800 .. 0x98ff */ - 0xed92, 0xed93, 0xed94, 0xed95, 0xed96, 0xed97, 0xed98, 0xed99, - 0xed9a, 0xed9b, 0xed9c, 0xed9d, 0xed9e, 0xed9f, 0xeda0, 0xee40, - 0xee41, 0xee42, 0xee43, 0xee44, 0xee45, 0xee46, 0xee47, 0xee48, - 0xee49, 0xee4a, 0xee4b, 0xee4c, 0xee4d, 0xee4e, 0xee4f, 0xee50, - 0xee51, 0xee52, 0xee53, 0xee54, 0xee55, 0xee56, 0xee57, 0xee58, - 0xee59, 0xee5a, 0xee5b, 0xee5c, 0xee5d, 0xee5e, 0xee5f, 0xee60, - 0xee61, 0xee62, 0xee63, 0xee64, 0xee65, 0xee66, 0xee67, 0xee68, - 0xee69, 0xee6a, 0xee6b, 0xee6c, 0xee6d, 0xee6e, 0xee6f, 0xee70, - 0xee71, 0xee72, 0xee73, 0xee74, 0xee75, 0xee76, 0xee77, 0xee78, - 0xee79, 0xee7a, 0xee7b, 0xee7c, 0xee7d, 0xee7e, 0xee80, 0xee81, - 0xee82, 0xee83, 0xee84, 0xee85, 0xee86, 0xee87, 0xee88, 0xee89, - 0xee8a, 0xee8b, 0xee8c, 0xee8d, 0xee8e, 0xee8f, 0xee90, 0xee91, - 0xee92, 0xee93, 0xee94, 0xee95, 0xee96, 0xee97, 0xee98, 0xee99, - 0xee9a, 0xee9b, 0xee9c, 0xee9d, 0xee9e, 0xee9f, 0xeea0, 0xef40, - 0xef41, 0xef42, 0xef43, 0xef44, 0xef45, 0xd2b3, 0xb6a5, 0xc7ea, - 0xf1fc, 0xcfee, 0xcbb3, 0xd0eb, 0xe7ef, 0xcde7, 0xb9cb, 0xb6d9, - 0xf1fd, 0xb0e4, 0xcbcc, 0xf1fe, 0xd4a4, 0xc2ad, 0xc1ec, 0xc6c4, - 0xbeb1, 0xf2a1, 0xbcd5, 0xef46, 0xf2a2, 0xf2a3, 0xef47, 0xf2a4, - 0xd2c3, 0xc6b5, 0xef48, 0xcdc7, 0xf2a5, 0xef49, 0xd3b1, 0xbfc5, - 0xcce2, 0xef4a, 0xf2a6, 0xf2a7, 0xd1d5, 0xb6ee, 0xf2a8, 0xf2a9, - 0xb5df, 0xf2aa, 0xf2ab, 0xef4b, 0xb2fc, 0xf2ac, 0xf2ad, 0xc8a7, - 0xef4c, 0xef4d, 0xef4e, 0xef4f, 0xef50, 0xef51, 0xef52, 0xef53, - 0xef54, 0xef55, 0xef56, 0xef57, 0xef58, 0xef59, 0xef5a, 0xef5b, - 0xef5c, 0xef5d, 0xef5e, 0xef5f, 0xef60, 0xef61, 0xef62, 0xef63, - 0xef64, 0xef65, 0xef66, 0xef67, 0xef68, 0xef69, 0xef6a, 0xef6b, - 0xef6c, 0xef6d, 0xef6e, 0xef6f, 0xef70, 0xef71, 0xb7e7, 0xef72, - 0xef73, 0xeca9, 0xecaa, 0xecab, 0xef74, 0xecac, 0xef75, 0xef76, - 0xc6ae, 0xecad, 0xecae, 0xef77, 0xef78, 0xef79, 0xb7c9, 0xcab3, - 0xef7a, 0xef7b, 0xef7c, 0xef7d, 0xef7e, 0xef80, 0xef81, 0xe2b8, - 0xf7cf, 0xef82, 0xef83, 0xef84, 0xef85, 0xef86, 0xef87, 0xef88, - 0xef89, 0xef8a, 0xef8b, 0xef8c, 0xef8d, 0xef8e, 0xef8f, 0xef90, - 0xef91, 0xef92, 0xef93, 0xef94, 0xef95, 0xef96, 0xef97, 0xef98, - /* 0x9900 .. 0x99ff */ - 0xef99, 0xef9a, 0xef9b, 0xef9c, 0xef9d, 0xef9e, 0xef9f, 0xefa0, - 0xf040, 0xf041, 0xf042, 0xf043, 0xf044, 0xf7d0, 0xf045, 0xf046, - 0xb2cd, 0xf047, 0xf048, 0xf049, 0xf04a, 0xf04b, 0xf04c, 0xf04d, - 0xf04e, 0xf04f, 0xf050, 0xf051, 0xf052, 0xf053, 0xf054, 0xf055, - 0xf056, 0xf057, 0xf058, 0xf059, 0xf05a, 0xf05b, 0xf05c, 0xf05d, - 0xf05e, 0xf05f, 0xf060, 0xf061, 0xf062, 0xf063, 0xf7d1, 0xf064, - 0xf065, 0xf066, 0xf067, 0xf068, 0xf069, 0xf06a, 0xf06b, 0xf06c, - 0xf06d, 0xf06e, 0xf06f, 0xf070, 0xf071, 0xf072, 0xf073, 0xf074, - 0xf075, 0xf076, 0xf077, 0xf078, 0xf079, 0xf07a, 0xf07b, 0xf07c, - 0xf07d, 0xf07e, 0xf080, 0xf081, 0xf082, 0xf083, 0xf084, 0xf085, - 0xf086, 0xf087, 0xf088, 0xf089, 0xf7d3, 0xf7d2, 0xf08a, 0xf08b, - 0xf08c, 0xf08d, 0xf08e, 0xf08f, 0xf090, 0xf091, 0xf092, 0xf093, - 0xf094, 0xf095, 0xf096, 0xe2bb, 0xf097, 0xbca2, 0xf098, 0xe2bc, - 0xe2bd, 0xe2be, 0xe2bf, 0xe2c0, 0xe2c1, 0xb7b9, 0xd2fb, 0xbda4, - 0xcace, 0xb1a5, 0xcbc7, 0xf099, 0xe2c2, 0xb6fc, 0xc8c4, 0xe2c3, - 0xf09a, 0xf09b, 0xbdc8, 0xf09c, 0xb1fd, 0xe2c4, 0xf09d, 0xb6f6, - 0xe2c5, 0xc4d9, 0xf09e, 0xf09f, 0xe2c6, 0xcfda, 0xb9dd, 0xe2c7, - 0xc0a1, 0xf0a0, 0xe2c8, 0xb2f6, 0xf140, 0xe2c9, 0xf141, 0xc1f3, - 0xe2ca, 0xe2cb, 0xc2f8, 0xe2cc, 0xe2cd, 0xe2ce, 0xcad7, 0xd8b8, - 0xd9e5, 0xcfe3, 0xf142, 0xf143, 0xf144, 0xf145, 0xf146, 0xf147, - 0xf148, 0xf149, 0xf14a, 0xf14b, 0xf14c, 0xf0a5, 0xf14d, 0xf14e, - 0xdcb0, 0xf14f, 0xf150, 0xf151, 0xf152, 0xf153, 0xf154, 0xf155, - 0xf156, 0xf157, 0xf158, 0xf159, 0xf15a, 0xf15b, 0xf15c, 0xf15d, - 0xf15e, 0xf15f, 0xf160, 0xf161, 0xf162, 0xf163, 0xf164, 0xf165, - 0xf166, 0xf167, 0xf168, 0xf169, 0xf16a, 0xf16b, 0xf16c, 0xf16d, - 0xf16e, 0xf16f, 0xf170, 0xf171, 0xf172, 0xf173, 0xf174, 0xf175, - 0xf176, 0xf177, 0xf178, 0xf179, 0xf17a, 0xf17b, 0xf17c, 0xf17d, - 0xf17e, 0xf180, 0xf181, 0xf182, 0xf183, 0xf184, 0xf185, 0xf186, - 0xf187, 0xf188, 0xf189, 0xf18a, 0xf18b, 0xf18c, 0xf18d, 0xf18e, - 0xf18f, 0xf190, 0xf191, 0xf192, 0xf193, 0xf194, 0xf195, 0xf196, - 0xf197, 0xf198, 0xf199, 0xf19a, 0xf19b, 0xf19c, 0xf19d, 0xf19e, - 0xf19f, 0xf1a0, 0xf240, 0xf241, 0xf242, 0xf243, 0xf244, 0xf245, - /* 0x9a00 .. 0x9aff */ - 0xf246, 0xf247, 0xf248, 0xf249, 0xf24a, 0xf24b, 0xf24c, 0xf24d, - 0xf24e, 0xf24f, 0xf250, 0xf251, 0xf252, 0xf253, 0xf254, 0xf255, - 0xf256, 0xf257, 0xf258, 0xf259, 0xf25a, 0xf25b, 0xf25c, 0xf25d, - 0xf25e, 0xf25f, 0xf260, 0xf261, 0xf262, 0xf263, 0xf264, 0xf265, - 0xf266, 0xf267, 0xf268, 0xf269, 0xf26a, 0xf26b, 0xf26c, 0xf26d, - 0xf26e, 0xf26f, 0xf270, 0xf271, 0xf272, 0xf273, 0xf274, 0xf275, - 0xf276, 0xf277, 0xf278, 0xf279, 0xf27a, 0xf27b, 0xf27c, 0xf27d, - 0xf27e, 0xf280, 0xf281, 0xf282, 0xf283, 0xf284, 0xf285, 0xf286, - 0xf287, 0xf288, 0xf289, 0xf28a, 0xf28b, 0xf28c, 0xf28d, 0xf28e, - 0xf28f, 0xf290, 0xf291, 0xf292, 0xf293, 0xf294, 0xf295, 0xf296, - 0xf297, 0xf298, 0xf299, 0xf29a, 0xf29b, 0xf29c, 0xf29d, 0xf29e, - 0xf29f, 0xf2a0, 0xf340, 0xf341, 0xf342, 0xf343, 0xf344, 0xf345, - 0xf346, 0xf347, 0xf348, 0xf349, 0xf34a, 0xf34b, 0xf34c, 0xf34d, - 0xf34e, 0xf34f, 0xf350, 0xf351, 0xc2ed, 0xd4a6, 0xcdd4, 0xd1b1, - 0xb3db, 0xc7fd, 0xf352, 0xb2b5, 0xc2bf, 0xe6e0, 0xcabb, 0xe6e1, - 0xe6e2, 0xbed4, 0xe6e3, 0xd7a4, 0xcdd5, 0xe6e5, 0xbcdd, 0xe6e4, - 0xe6e6, 0xe6e7, 0xc2ee, 0xf353, 0xbdbe, 0xe6e8, 0xc2e6, 0xbaa7, - 0xe6e9, 0xf354, 0xe6ea, 0xb3d2, 0xd1e9, 0xf355, 0xf356, 0xbfa5, - 0xe6eb, 0xc6ef, 0xe6ec, 0xe6ed, 0xf357, 0xf358, 0xe6ee, 0xc6ad, - 0xe6ef, 0xf359, 0xc9a7, 0xe6f0, 0xe6f1, 0xe6f2, 0xe5b9, 0xe6f3, - 0xe6f4, 0xc2e2, 0xe6f5, 0xe6f6, 0xd6e8, 0xe6f7, 0xf35a, 0xe6f8, - 0xb9c7, 0xf35b, 0xf35c, 0xf35d, 0xf35e, 0xf35f, 0xf360, 0xf361, - 0xf7bb, 0xf7ba, 0xf362, 0xf363, 0xf364, 0xf365, 0xf7be, 0xf7bc, - 0xbaa1, 0xf366, 0xf7bf, 0xf367, 0xf7c0, 0xf368, 0xf369, 0xf36a, - 0xf7c2, 0xf7c1, 0xf7c4, 0xf36b, 0xf36c, 0xf7c3, 0xf36d, 0xf36e, - 0xf36f, 0xf370, 0xf371, 0xf7c5, 0xf7c6, 0xf372, 0xf373, 0xf374, - 0xf375, 0xf7c7, 0xf376, 0xcbe8, 0xf377, 0xf378, 0xf379, 0xf37a, - 0xb8df, 0xf37b, 0xf37c, 0xf37d, 0xf37e, 0xf380, 0xf381, 0xf7d4, - 0xf382, 0xf7d5, 0xf383, 0xf384, 0xf385, 0xf386, 0xf7d6, 0xf387, - 0xf388, 0xf389, 0xf38a, 0xf7d8, 0xf38b, 0xf7da, 0xf38c, 0xf7d7, - 0xf38d, 0xf38e, 0xf38f, 0xf390, 0xf391, 0xf392, 0xf393, 0xf394, - 0xf395, 0xf7db, 0xf396, 0xf7d9, 0xf397, 0xf398, 0xf399, 0xf39a, - /* 0x9b00 .. 0x9bff */ - 0xf39b, 0xf39c, 0xf39d, 0xd7d7, 0xf39e, 0xf39f, 0xf3a0, 0xf440, - 0xf7dc, 0xf441, 0xf442, 0xf443, 0xf444, 0xf445, 0xf446, 0xf7dd, - 0xf447, 0xf448, 0xf449, 0xf7de, 0xf44a, 0xf44b, 0xf44c, 0xf44d, - 0xf44e, 0xf44f, 0xf450, 0xf451, 0xf452, 0xf453, 0xf454, 0xf7df, - 0xf455, 0xf456, 0xf457, 0xf7e0, 0xf458, 0xf459, 0xf45a, 0xf45b, - 0xf45c, 0xf45d, 0xf45e, 0xf45f, 0xf460, 0xf461, 0xf462, 0xdbcb, - 0xf463, 0xf464, 0xd8aa, 0xf465, 0xf466, 0xf467, 0xf468, 0xf469, - 0xf46a, 0xf46b, 0xf46c, 0xe5f7, 0xb9ed, 0xf46d, 0xf46e, 0xf46f, - 0xf470, 0xbffd, 0xbbea, 0xf7c9, 0xc6c7, 0xf7c8, 0xf471, 0xf7ca, - 0xf7cc, 0xf7cb, 0xf472, 0xf473, 0xf474, 0xf7cd, 0xf475, 0xceba, - 0xf476, 0xf7ce, 0xf477, 0xf478, 0xc4a7, 0xf479, 0xf47a, 0xf47b, - 0xf47c, 0xf47d, 0xf47e, 0xf480, 0xf481, 0xf482, 0xf483, 0xf484, - 0xf485, 0xf486, 0xf487, 0xf488, 0xf489, 0xf48a, 0xf48b, 0xf48c, - 0xf48d, 0xf48e, 0xf48f, 0xf490, 0xf491, 0xf492, 0xf493, 0xf494, - 0xf495, 0xf496, 0xf497, 0xf498, 0xf499, 0xf49a, 0xf49b, 0xf49c, - 0xf49d, 0xf49e, 0xf49f, 0xf4a0, 0xf540, 0xf541, 0xf542, 0xf543, - 0xf544, 0xf545, 0xf546, 0xf547, 0xf548, 0xf549, 0xf54a, 0xf54b, - 0xf54c, 0xf54d, 0xf54e, 0xf54f, 0xf550, 0xf551, 0xf552, 0xf553, - 0xf554, 0xf555, 0xf556, 0xf557, 0xf558, 0xf559, 0xf55a, 0xf55b, - 0xf55c, 0xf55d, 0xf55e, 0xf55f, 0xf560, 0xf561, 0xf562, 0xf563, - 0xf564, 0xf565, 0xf566, 0xf567, 0xf568, 0xf569, 0xf56a, 0xf56b, - 0xf56c, 0xf56d, 0xf56e, 0xf56f, 0xf570, 0xf571, 0xf572, 0xf573, - 0xf574, 0xf575, 0xf576, 0xf577, 0xf578, 0xf579, 0xf57a, 0xf57b, - 0xf57c, 0xf57d, 0xf57e, 0xf580, 0xf581, 0xf582, 0xf583, 0xf584, - 0xf585, 0xf586, 0xf587, 0xf588, 0xf589, 0xf58a, 0xf58b, 0xf58c, - 0xf58d, 0xf58e, 0xf58f, 0xf590, 0xf591, 0xf592, 0xf593, 0xf594, - 0xf595, 0xf596, 0xf597, 0xf598, 0xf599, 0xf59a, 0xf59b, 0xf59c, - 0xf59d, 0xf59e, 0xf59f, 0xf5a0, 0xf640, 0xf641, 0xf642, 0xf643, - 0xf644, 0xf645, 0xf646, 0xf647, 0xf648, 0xf649, 0xf64a, 0xf64b, - 0xf64c, 0xf64d, 0xf64e, 0xf64f, 0xf650, 0xf651, 0xf652, 0xf653, - 0xf654, 0xf655, 0xf656, 0xf657, 0xf658, 0xf659, 0xf65a, 0xf65b, - 0xf65c, 0xf65d, 0xf65e, 0xf65f, 0xf660, 0xf661, 0xf662, 0xf663, - /* 0x9c00 .. 0x9cff */ - 0xf664, 0xf665, 0xf666, 0xf667, 0xf668, 0xf669, 0xf66a, 0xf66b, - 0xf66c, 0xf66d, 0xf66e, 0xf66f, 0xf670, 0xf671, 0xf672, 0xf673, - 0xf674, 0xf675, 0xf676, 0xf677, 0xf678, 0xf679, 0xf67a, 0xf67b, - 0xf67c, 0xf67d, 0xf67e, 0xf680, 0xf681, 0xf682, 0xf683, 0xf684, - 0xf685, 0xf686, 0xf687, 0xf688, 0xf689, 0xf68a, 0xf68b, 0xf68c, - 0xf68d, 0xf68e, 0xf68f, 0xf690, 0xf691, 0xf692, 0xf693, 0xf694, - 0xf695, 0xf696, 0xf697, 0xf698, 0xf699, 0xf69a, 0xf69b, 0xf69c, - 0xf69d, 0xf69e, 0xf69f, 0xf6a0, 0xf740, 0xf741, 0xf742, 0xf743, - 0xf744, 0xf745, 0xf746, 0xf747, 0xf748, 0xf749, 0xf74a, 0xf74b, - 0xf74c, 0xf74d, 0xf74e, 0xf74f, 0xf750, 0xf751, 0xf752, 0xf753, - 0xf754, 0xf755, 0xf756, 0xf757, 0xf758, 0xf759, 0xf75a, 0xf75b, - 0xf75c, 0xf75d, 0xf75e, 0xf75f, 0xf760, 0xf761, 0xf762, 0xf763, - 0xf764, 0xf765, 0xf766, 0xf767, 0xf768, 0xf769, 0xf76a, 0xf76b, - 0xf76c, 0xf76d, 0xf76e, 0xf76f, 0xf770, 0xf771, 0xf772, 0xf773, - 0xf774, 0xf775, 0xf776, 0xf777, 0xf778, 0xf779, 0xf77a, 0xf77b, - 0xf77c, 0xf77d, 0xf77e, 0xf780, 0xd3e3, 0xf781, 0xf782, 0xf6cf, - 0xf783, 0xc2b3, 0xf6d0, 0xf784, 0xf785, 0xf6d1, 0xf6d2, 0xf6d3, - 0xf6d4, 0xf786, 0xf787, 0xf6d6, 0xf788, 0xb1ab, 0xf6d7, 0xf789, - 0xf6d8, 0xf6d9, 0xf6da, 0xf78a, 0xf6db, 0xf6dc, 0xf78b, 0xf78c, - 0xf78d, 0xf78e, 0xf6dd, 0xf6de, 0xcfca, 0xf78f, 0xf6df, 0xf6e0, - 0xf6e1, 0xf6e2, 0xf6e3, 0xf6e4, 0xc0f0, 0xf6e5, 0xf6e6, 0xf6e7, - 0xf6e8, 0xf6e9, 0xf790, 0xf6ea, 0xf791, 0xf6eb, 0xf6ec, 0xf792, - 0xf6ed, 0xf6ee, 0xf6ef, 0xf6f0, 0xf6f1, 0xf6f2, 0xf6f3, 0xf6f4, - 0xbea8, 0xf793, 0xf6f5, 0xf6f6, 0xf6f7, 0xf6f8, 0xf794, 0xf795, - 0xf796, 0xf797, 0xf798, 0xc8fa, 0xf6f9, 0xf6fa, 0xf6fb, 0xf6fc, - 0xf799, 0xf79a, 0xf6fd, 0xf6fe, 0xf7a1, 0xf7a2, 0xf7a3, 0xf7a4, - 0xf7a5, 0xf79b, 0xf79c, 0xf7a6, 0xf7a7, 0xf7a8, 0xb1ee, 0xf7a9, - 0xf7aa, 0xf7ab, 0xf79d, 0xf79e, 0xf7ac, 0xf7ad, 0xc1db, 0xf7ae, - 0xf79f, 0xf7a0, 0xf7af, 0xf840, 0xf841, 0xf842, 0xf843, 0xf844, - 0xf845, 0xf846, 0xf847, 0xf848, 0xf849, 0xf84a, 0xf84b, 0xf84c, - 0xf84d, 0xf84e, 0xf84f, 0xf850, 0xf851, 0xf852, 0xf853, 0xf854, - 0xf855, 0xf856, 0xf857, 0xf858, 0xf859, 0xf85a, 0xf85b, 0xf85c, - /* 0x9d00 .. 0x9dff */ - 0xf85d, 0xf85e, 0xf85f, 0xf860, 0xf861, 0xf862, 0xf863, 0xf864, - 0xf865, 0xf866, 0xf867, 0xf868, 0xf869, 0xf86a, 0xf86b, 0xf86c, - 0xf86d, 0xf86e, 0xf86f, 0xf870, 0xf871, 0xf872, 0xf873, 0xf874, - 0xf875, 0xf876, 0xf877, 0xf878, 0xf879, 0xf87a, 0xf87b, 0xf87c, - 0xf87d, 0xf87e, 0xf880, 0xf881, 0xf882, 0xf883, 0xf884, 0xf885, - 0xf886, 0xf887, 0xf888, 0xf889, 0xf88a, 0xf88b, 0xf88c, 0xf88d, - 0xf88e, 0xf88f, 0xf890, 0xf891, 0xf892, 0xf893, 0xf894, 0xf895, - 0xf896, 0xf897, 0xf898, 0xf899, 0xf89a, 0xf89b, 0xf89c, 0xf89d, - 0xf89e, 0xf89f, 0xf8a0, 0xf940, 0xf941, 0xf942, 0xf943, 0xf944, - 0xf945, 0xf946, 0xf947, 0xf948, 0xf949, 0xf94a, 0xf94b, 0xf94c, - 0xf94d, 0xf94e, 0xf94f, 0xf950, 0xf951, 0xf952, 0xf953, 0xf954, - 0xf955, 0xf956, 0xf957, 0xf958, 0xf959, 0xf95a, 0xf95b, 0xf95c, - 0xf95d, 0xf95e, 0xf95f, 0xf960, 0xf961, 0xf962, 0xf963, 0xf964, - 0xf965, 0xf966, 0xf967, 0xf968, 0xf969, 0xf96a, 0xf96b, 0xf96c, - 0xf96d, 0xf96e, 0xf96f, 0xf970, 0xf971, 0xf972, 0xf973, 0xf974, - 0xf975, 0xf976, 0xf977, 0xf978, 0xf979, 0xf97a, 0xf97b, 0xf97c, - 0xf97d, 0xf97e, 0xf980, 0xf981, 0xf982, 0xf983, 0xf984, 0xf985, - 0xf986, 0xf987, 0xf988, 0xf989, 0xf98a, 0xf98b, 0xf98c, 0xf98d, - 0xf98e, 0xf98f, 0xf990, 0xf991, 0xf992, 0xf993, 0xf994, 0xf995, - 0xf996, 0xf997, 0xf998, 0xf999, 0xf99a, 0xf99b, 0xf99c, 0xf99d, - 0xf99e, 0xf99f, 0xf9a0, 0xfa40, 0xfa41, 0xfa42, 0xfa43, 0xfa44, - 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49, 0xfa4a, 0xfa4b, 0xfa4c, - 0xfa4d, 0xfa4e, 0xfa4f, 0xfa50, 0xfa51, 0xfa52, 0xfa53, 0xfa54, - 0xfa55, 0xfa56, 0xfa57, 0xfa58, 0xfa59, 0xfa5a, 0xfa5b, 0xfa5c, - 0xfa5d, 0xfa5e, 0xfa5f, 0xfa60, 0xfa61, 0xfa62, 0xfa63, 0xfa64, - 0xfa65, 0xfa66, 0xfa67, 0xfa68, 0xfa69, 0xfa6a, 0xfa6b, 0xfa6c, - 0xfa6d, 0xfa6e, 0xfa6f, 0xfa70, 0xfa71, 0xfa72, 0xfa73, 0xfa74, - 0xfa75, 0xfa76, 0xfa77, 0xfa78, 0xfa79, 0xfa7a, 0xfa7b, 0xfa7c, - 0xfa7d, 0xfa7e, 0xfa80, 0xfa81, 0xfa82, 0xfa83, 0xfa84, 0xfa85, - 0xfa86, 0xfa87, 0xfa88, 0xfa89, 0xfa8a, 0xfa8b, 0xfa8c, 0xfa8d, - 0xfa8e, 0xfa8f, 0xfa90, 0xfa91, 0xfa92, 0xfa93, 0xfa94, 0xfa95, - 0xfa96, 0xfa97, 0xfa98, 0xfa99, 0xfa9a, 0xfa9b, 0xfa9c, 0xfa9d, - /* 0x9e00 .. 0x9eff */ - 0xfa9e, 0xfa9f, 0xfaa0, 0xfb40, 0xfb41, 0xfb42, 0xfb43, 0xfb44, - 0xfb45, 0xfb46, 0xfb47, 0xfb48, 0xfb49, 0xfb4a, 0xfb4b, 0xfb4c, - 0xfb4d, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51, 0xfb52, 0xfb53, 0xfb54, - 0xfb55, 0xfb56, 0xfb57, 0xfb58, 0xfb59, 0xfb5a, 0xfb5b, 0xc4f1, - 0xf0af, 0xbca6, 0xf0b0, 0xc3f9, 0xfb5c, 0xc5b8, 0xd1bb, 0xfb5d, - 0xf0b1, 0xf0b2, 0xf0b3, 0xf0b4, 0xf0b5, 0xd1bc, 0xfb5e, 0xd1ec, - 0xfb5f, 0xf0b7, 0xf0b6, 0xd4a7, 0xfb60, 0xcdd2, 0xf0b8, 0xf0ba, - 0xf0b9, 0xf0bb, 0xf0bc, 0xfb61, 0xfb62, 0xb8eb, 0xf0bd, 0xbae8, - 0xfb63, 0xf0be, 0xf0bf, 0xbee9, 0xf0c0, 0xb6ec, 0xf0c1, 0xf0c2, - 0xf0c3, 0xf0c4, 0xc8b5, 0xf0c5, 0xf0c6, 0xfb64, 0xf0c7, 0xc5f4, - 0xfb65, 0xf0c8, 0xfb66, 0xfb67, 0xfb68, 0xf0c9, 0xfb69, 0xf0ca, - 0xf7bd, 0xfb6a, 0xf0cb, 0xf0cc, 0xf0cd, 0xfb6b, 0xf0ce, 0xfb6c, - 0xfb6d, 0xfb6e, 0xfb6f, 0xf0cf, 0xbad7, 0xfb70, 0xf0d0, 0xf0d1, - 0xf0d2, 0xf0d3, 0xf0d4, 0xf0d5, 0xf0d6, 0xf0d8, 0xfb71, 0xfb72, - 0xd3a5, 0xf0d7, 0xfb73, 0xf0d9, 0xfb74, 0xfb75, 0xfb76, 0xfb77, - 0xfb78, 0xfb79, 0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d, 0xf5ba, 0xc2b9, - 0xfb7e, 0xfb80, 0xf7e4, 0xfb81, 0xfb82, 0xfb83, 0xfb84, 0xf7e5, - 0xf7e6, 0xfb85, 0xfb86, 0xf7e7, 0xfb87, 0xfb88, 0xfb89, 0xfb8a, - 0xfb8b, 0xfb8c, 0xf7e8, 0xc2b4, 0xfb8d, 0xfb8e, 0xfb8f, 0xfb90, - 0xfb91, 0xfb92, 0xfb93, 0xfb94, 0xfb95, 0xf7ea, 0xfb96, 0xf7eb, - 0xfb97, 0xfb98, 0xfb99, 0xfb9a, 0xfb9b, 0xfb9c, 0xc2f3, 0xfb9d, - 0xfb9e, 0xfb9f, 0xfba0, 0xfc40, 0xfc41, 0xfc42, 0xfc43, 0xfc44, - 0xfc45, 0xfc46, 0xfc47, 0xfc48, 0xf4f0, 0xfc49, 0xfc4a, 0xfc4b, - 0xf4ef, 0xfc4c, 0xfc4d, 0xc2e9, 0xfc4e, 0xf7e1, 0xf7e2, 0xfc4f, - 0xfc50, 0xfc51, 0xfc52, 0xfc53, 0xbbc6, 0xfc54, 0xfc55, 0xfc56, - 0xfc57, 0xd9e4, 0xfc58, 0xfc59, 0xfc5a, 0xcaf2, 0xc0e8, 0xf0a4, - 0xfc5b, 0xbada, 0xfc5c, 0xfc5d, 0xc7ad, 0xfc5e, 0xfc5f, 0xfc60, - 0xc4ac, 0xfc61, 0xfc62, 0xf7ec, 0xf7ed, 0xf7ee, 0xfc63, 0xf7f0, - 0xf7ef, 0xfc64, 0xf7f1, 0xfc65, 0xfc66, 0xf7f4, 0xfc67, 0xf7f3, - 0xfc68, 0xf7f2, 0xf7f5, 0xfc69, 0xfc6a, 0xfc6b, 0xfc6c, 0xf7f6, - 0xfc6d, 0xfc6e, 0xfc6f, 0xfc70, 0xfc71, 0xfc72, 0xfc73, 0xfc74, - 0xfc75, 0xede9, 0xfc76, 0xedea, 0xedeb, 0xfc77, 0xf6bc, 0xfc78, - /* 0x9f00 .. 0x9fff */ - 0xfc79, 0xfc7a, 0xfc7b, 0xfc7c, 0xfc7d, 0xfc7e, 0xfc80, 0xfc81, - 0xfc82, 0xfc83, 0xfc84, 0xf6bd, 0xfc85, 0xf6be, 0xb6a6, 0xfc86, - 0xd8be, 0xfc87, 0xfc88, 0xb9c4, 0xfc89, 0xfc8a, 0xfc8b, 0xd8bb, - 0xfc8c, 0xdcb1, 0xfc8d, 0xfc8e, 0xfc8f, 0xfc90, 0xfc91, 0xfc92, - 0xcaf3, 0xfc93, 0xf7f7, 0xfc94, 0xfc95, 0xfc96, 0xfc97, 0xfc98, - 0xfc99, 0xfc9a, 0xfc9b, 0xfc9c, 0xf7f8, 0xfc9d, 0xfc9e, 0xf7f9, - 0xfc9f, 0xfca0, 0xfd40, 0xfd41, 0xfd42, 0xfd43, 0xfd44, 0xf7fb, - 0xfd45, 0xf7fa, 0xfd46, 0xb1c7, 0xfd47, 0xf7fc, 0xf7fd, 0xfd48, - 0xfd49, 0xfd4a, 0xfd4b, 0xfd4c, 0xf7fe, 0xfd4d, 0xfd4e, 0xfd4f, - 0xfd50, 0xfd51, 0xfd52, 0xfd53, 0xfd54, 0xfd55, 0xfd56, 0xfd57, - 0xc6eb, 0xecb4, 0xfd58, 0xfd59, 0xfd5a, 0xfd5b, 0xfd5c, 0xfd5d, - 0xfd5e, 0xfd5f, 0xfd60, 0xfd61, 0xfd62, 0xfd63, 0xfd64, 0xfd65, - 0xfd66, 0xfd67, 0xfd68, 0xfd69, 0xfd6a, 0xfd6b, 0xfd6c, 0xfd6d, - 0xfd6e, 0xfd6f, 0xfd70, 0xfd71, 0xfd72, 0xfd73, 0xfd74, 0xfd75, - 0xfd76, 0xfd77, 0xfd78, 0xfd79, 0xfd7a, 0xfd7b, 0xfd7c, 0xfd7d, - 0xfd7e, 0xfd80, 0xfd81, 0xfd82, 0xfd83, 0xfd84, 0xfd85, 0xb3dd, - 0xf6b3, 0xfd86, 0xfd87, 0xf6b4, 0xc1e4, 0xf6b5, 0xf6b6, 0xf6b7, - 0xf6b8, 0xf6b9, 0xf6ba, 0xc8a3, 0xf6bb, 0xfd88, 0xfd89, 0xfd8a, - 0xfd8b, 0xfd8c, 0xfd8d, 0xfd8e, 0xfd8f, 0xfd90, 0xfd91, 0xfd92, - 0xfd93, 0xc1fa, 0xb9a8, 0xede8, 0xfd94, 0xfd95, 0xfd96, 0xb9ea, - 0xd9df, 0xfd97, 0xfd98, 0xfd99, 0xfd9a, 0xfd9b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xe000 .. 0xe0ff */ - 0xaaa1, 0xaaa2, 0xaaa3, 0xaaa4, 0xaaa5, 0xaaa6, 0xaaa7, 0xaaa8, - 0xaaa9, 0xaaaa, 0xaaab, 0xaaac, 0xaaad, 0xaaae, 0xaaaf, 0xaab0, - 0xaab1, 0xaab2, 0xaab3, 0xaab4, 0xaab5, 0xaab6, 0xaab7, 0xaab8, - 0xaab9, 0xaaba, 0xaabb, 0xaabc, 0xaabd, 0xaabe, 0xaabf, 0xaac0, - 0xaac1, 0xaac2, 0xaac3, 0xaac4, 0xaac5, 0xaac6, 0xaac7, 0xaac8, - 0xaac9, 0xaaca, 0xaacb, 0xaacc, 0xaacd, 0xaace, 0xaacf, 0xaad0, - 0xaad1, 0xaad2, 0xaad3, 0xaad4, 0xaad5, 0xaad6, 0xaad7, 0xaad8, - 0xaad9, 0xaada, 0xaadb, 0xaadc, 0xaadd, 0xaade, 0xaadf, 0xaae0, - 0xaae1, 0xaae2, 0xaae3, 0xaae4, 0xaae5, 0xaae6, 0xaae7, 0xaae8, - 0xaae9, 0xaaea, 0xaaeb, 0xaaec, 0xaaed, 0xaaee, 0xaaef, 0xaaf0, - 0xaaf1, 0xaaf2, 0xaaf3, 0xaaf4, 0xaaf5, 0xaaf6, 0xaaf7, 0xaaf8, - 0xaaf9, 0xaafa, 0xaafb, 0xaafc, 0xaafd, 0xaafe, 0xaba1, 0xaba2, - 0xaba3, 0xaba4, 0xaba5, 0xaba6, 0xaba7, 0xaba8, 0xaba9, 0xabaa, - 0xabab, 0xabac, 0xabad, 0xabae, 0xabaf, 0xabb0, 0xabb1, 0xabb2, - 0xabb3, 0xabb4, 0xabb5, 0xabb6, 0xabb7, 0xabb8, 0xabb9, 0xabba, - 0xabbb, 0xabbc, 0xabbd, 0xabbe, 0xabbf, 0xabc0, 0xabc1, 0xabc2, - 0xabc3, 0xabc4, 0xabc5, 0xabc6, 0xabc7, 0xabc8, 0xabc9, 0xabca, - 0xabcb, 0xabcc, 0xabcd, 0xabce, 0xabcf, 0xabd0, 0xabd1, 0xabd2, - 0xabd3, 0xabd4, 0xabd5, 0xabd6, 0xabd7, 0xabd8, 0xabd9, 0xabda, - 0xabdb, 0xabdc, 0xabdd, 0xabde, 0xabdf, 0xabe0, 0xabe1, 0xabe2, - 0xabe3, 0xabe4, 0xabe5, 0xabe6, 0xabe7, 0xabe8, 0xabe9, 0xabea, - 0xabeb, 0xabec, 0xabed, 0xabee, 0xabef, 0xabf0, 0xabf1, 0xabf2, - 0xabf3, 0xabf4, 0xabf5, 0xabf6, 0xabf7, 0xabf8, 0xabf9, 0xabfa, - 0xabfb, 0xabfc, 0xabfd, 0xabfe, 0xaca1, 0xaca2, 0xaca3, 0xaca4, - 0xaca5, 0xaca6, 0xaca7, 0xaca8, 0xaca9, 0xacaa, 0xacab, 0xacac, - 0xacad, 0xacae, 0xacaf, 0xacb0, 0xacb1, 0xacb2, 0xacb3, 0xacb4, - 0xacb5, 0xacb6, 0xacb7, 0xacb8, 0xacb9, 0xacba, 0xacbb, 0xacbc, - 0xacbd, 0xacbe, 0xacbf, 0xacc0, 0xacc1, 0xacc2, 0xacc3, 0xacc4, - 0xacc5, 0xacc6, 0xacc7, 0xacc8, 0xacc9, 0xacca, 0xaccb, 0xaccc, - 0xaccd, 0xacce, 0xaccf, 0xacd0, 0xacd1, 0xacd2, 0xacd3, 0xacd4, - 0xacd5, 0xacd6, 0xacd7, 0xacd8, 0xacd9, 0xacda, 0xacdb, 0xacdc, - 0xacdd, 0xacde, 0xacdf, 0xace0, 0xace1, 0xace2, 0xace3, 0xace4, - /* 0xe100 .. 0xe1ff */ - 0xace5, 0xace6, 0xace7, 0xace8, 0xace9, 0xacea, 0xaceb, 0xacec, - 0xaced, 0xacee, 0xacef, 0xacf0, 0xacf1, 0xacf2, 0xacf3, 0xacf4, - 0xacf5, 0xacf6, 0xacf7, 0xacf8, 0xacf9, 0xacfa, 0xacfb, 0xacfc, - 0xacfd, 0xacfe, 0xada1, 0xada2, 0xada3, 0xada4, 0xada5, 0xada6, - 0xada7, 0xada8, 0xada9, 0xadaa, 0xadab, 0xadac, 0xadad, 0xadae, - 0xadaf, 0xadb0, 0xadb1, 0xadb2, 0xadb3, 0xadb4, 0xadb5, 0xadb6, - 0xadb7, 0xadb8, 0xadb9, 0xadba, 0xadbb, 0xadbc, 0xadbd, 0xadbe, - 0xadbf, 0xadc0, 0xadc1, 0xadc2, 0xadc3, 0xadc4, 0xadc5, 0xadc6, - 0xadc7, 0xadc8, 0xadc9, 0xadca, 0xadcb, 0xadcc, 0xadcd, 0xadce, - 0xadcf, 0xadd0, 0xadd1, 0xadd2, 0xadd3, 0xadd4, 0xadd5, 0xadd6, - 0xadd7, 0xadd8, 0xadd9, 0xadda, 0xaddb, 0xaddc, 0xaddd, 0xadde, - 0xaddf, 0xade0, 0xade1, 0xade2, 0xade3, 0xade4, 0xade5, 0xade6, - 0xade7, 0xade8, 0xade9, 0xadea, 0xadeb, 0xadec, 0xaded, 0xadee, - 0xadef, 0xadf0, 0xadf1, 0xadf2, 0xadf3, 0xadf4, 0xadf5, 0xadf6, - 0xadf7, 0xadf8, 0xadf9, 0xadfa, 0xadfb, 0xadfc, 0xadfd, 0xadfe, - 0xaea1, 0xaea2, 0xaea3, 0xaea4, 0xaea5, 0xaea6, 0xaea7, 0xaea8, - 0xaea9, 0xaeaa, 0xaeab, 0xaeac, 0xaead, 0xaeae, 0xaeaf, 0xaeb0, - 0xaeb1, 0xaeb2, 0xaeb3, 0xaeb4, 0xaeb5, 0xaeb6, 0xaeb7, 0xaeb8, - 0xaeb9, 0xaeba, 0xaebb, 0xaebc, 0xaebd, 0xaebe, 0xaebf, 0xaec0, - 0xaec1, 0xaec2, 0xaec3, 0xaec4, 0xaec5, 0xaec6, 0xaec7, 0xaec8, - 0xaec9, 0xaeca, 0xaecb, 0xaecc, 0xaecd, 0xaece, 0xaecf, 0xaed0, - 0xaed1, 0xaed2, 0xaed3, 0xaed4, 0xaed5, 0xaed6, 0xaed7, 0xaed8, - 0xaed9, 0xaeda, 0xaedb, 0xaedc, 0xaedd, 0xaede, 0xaedf, 0xaee0, - 0xaee1, 0xaee2, 0xaee3, 0xaee4, 0xaee5, 0xaee6, 0xaee7, 0xaee8, - 0xaee9, 0xaeea, 0xaeeb, 0xaeec, 0xaeed, 0xaeee, 0xaeef, 0xaef0, - 0xaef1, 0xaef2, 0xaef3, 0xaef4, 0xaef5, 0xaef6, 0xaef7, 0xaef8, - 0xaef9, 0xaefa, 0xaefb, 0xaefc, 0xaefd, 0xaefe, 0xafa1, 0xafa2, - 0xafa3, 0xafa4, 0xafa5, 0xafa6, 0xafa7, 0xafa8, 0xafa9, 0xafaa, - 0xafab, 0xafac, 0xafad, 0xafae, 0xafaf, 0xafb0, 0xafb1, 0xafb2, - 0xafb3, 0xafb4, 0xafb5, 0xafb6, 0xafb7, 0xafb8, 0xafb9, 0xafba, - 0xafbb, 0xafbc, 0xafbd, 0xafbe, 0xafbf, 0xafc0, 0xafc1, 0xafc2, - 0xafc3, 0xafc4, 0xafc5, 0xafc6, 0xafc7, 0xafc8, 0xafc9, 0xafca, - /* 0xe200 .. 0xe2ff */ - 0xafcb, 0xafcc, 0xafcd, 0xafce, 0xafcf, 0xafd0, 0xafd1, 0xafd2, - 0xafd3, 0xafd4, 0xafd5, 0xafd6, 0xafd7, 0xafd8, 0xafd9, 0xafda, - 0xafdb, 0xafdc, 0xafdd, 0xafde, 0xafdf, 0xafe0, 0xafe1, 0xafe2, - 0xafe3, 0xafe4, 0xafe5, 0xafe6, 0xafe7, 0xafe8, 0xafe9, 0xafea, - 0xafeb, 0xafec, 0xafed, 0xafee, 0xafef, 0xaff0, 0xaff1, 0xaff2, - 0xaff3, 0xaff4, 0xaff5, 0xaff6, 0xaff7, 0xaff8, 0xaff9, 0xaffa, - 0xaffb, 0xaffc, 0xaffd, 0xaffe, 0xf8a1, 0xf8a2, 0xf8a3, 0xf8a4, - 0xf8a5, 0xf8a6, 0xf8a7, 0xf8a8, 0xf8a9, 0xf8aa, 0xf8ab, 0xf8ac, - 0xf8ad, 0xf8ae, 0xf8af, 0xf8b0, 0xf8b1, 0xf8b2, 0xf8b3, 0xf8b4, - 0xf8b5, 0xf8b6, 0xf8b7, 0xf8b8, 0xf8b9, 0xf8ba, 0xf8bb, 0xf8bc, - 0xf8bd, 0xf8be, 0xf8bf, 0xf8c0, 0xf8c1, 0xf8c2, 0xf8c3, 0xf8c4, - 0xf8c5, 0xf8c6, 0xf8c7, 0xf8c8, 0xf8c9, 0xf8ca, 0xf8cb, 0xf8cc, - 0xf8cd, 0xf8ce, 0xf8cf, 0xf8d0, 0xf8d1, 0xf8d2, 0xf8d3, 0xf8d4, - 0xf8d5, 0xf8d6, 0xf8d7, 0xf8d8, 0xf8d9, 0xf8da, 0xf8db, 0xf8dc, - 0xf8dd, 0xf8de, 0xf8df, 0xf8e0, 0xf8e1, 0xf8e2, 0xf8e3, 0xf8e4, - 0xf8e5, 0xf8e6, 0xf8e7, 0xf8e8, 0xf8e9, 0xf8ea, 0xf8eb, 0xf8ec, - 0xf8ed, 0xf8ee, 0xf8ef, 0xf8f0, 0xf8f1, 0xf8f2, 0xf8f3, 0xf8f4, - 0xf8f5, 0xf8f6, 0xf8f7, 0xf8f8, 0xf8f9, 0xf8fa, 0xf8fb, 0xf8fc, - 0xf8fd, 0xf8fe, 0xf9a1, 0xf9a2, 0xf9a3, 0xf9a4, 0xf9a5, 0xf9a6, - 0xf9a7, 0xf9a8, 0xf9a9, 0xf9aa, 0xf9ab, 0xf9ac, 0xf9ad, 0xf9ae, - 0xf9af, 0xf9b0, 0xf9b1, 0xf9b2, 0xf9b3, 0xf9b4, 0xf9b5, 0xf9b6, - 0xf9b7, 0xf9b8, 0xf9b9, 0xf9ba, 0xf9bb, 0xf9bc, 0xf9bd, 0xf9be, - 0xf9bf, 0xf9c0, 0xf9c1, 0xf9c2, 0xf9c3, 0xf9c4, 0xf9c5, 0xf9c6, - 0xf9c7, 0xf9c8, 0xf9c9, 0xf9ca, 0xf9cb, 0xf9cc, 0xf9cd, 0xf9ce, - 0xf9cf, 0xf9d0, 0xf9d1, 0xf9d2, 0xf9d3, 0xf9d4, 0xf9d5, 0xf9d6, - 0xf9d7, 0xf9d8, 0xf9d9, 0xf9da, 0xf9db, 0xf9dc, 0xf9dd, 0xf9de, - 0xf9df, 0xf9e0, 0xf9e1, 0xf9e2, 0xf9e3, 0xf9e4, 0xf9e5, 0xf9e6, - 0xf9e7, 0xf9e8, 0xf9e9, 0xf9ea, 0xf9eb, 0xf9ec, 0xf9ed, 0xf9ee, - 0xf9ef, 0xf9f0, 0xf9f1, 0xf9f2, 0xf9f3, 0xf9f4, 0xf9f5, 0xf9f6, - 0xf9f7, 0xf9f8, 0xf9f9, 0xf9fa, 0xf9fb, 0xf9fc, 0xf9fd, 0xf9fe, - 0xfaa1, 0xfaa2, 0xfaa3, 0xfaa4, 0xfaa5, 0xfaa6, 0xfaa7, 0xfaa8, - 0xfaa9, 0xfaaa, 0xfaab, 0xfaac, 0xfaad, 0xfaae, 0xfaaf, 0xfab0, - /* 0xe300 .. 0xe3ff */ - 0xfab1, 0xfab2, 0xfab3, 0xfab4, 0xfab5, 0xfab6, 0xfab7, 0xfab8, - 0xfab9, 0xfaba, 0xfabb, 0xfabc, 0xfabd, 0xfabe, 0xfabf, 0xfac0, - 0xfac1, 0xfac2, 0xfac3, 0xfac4, 0xfac5, 0xfac6, 0xfac7, 0xfac8, - 0xfac9, 0xfaca, 0xfacb, 0xfacc, 0xfacd, 0xface, 0xfacf, 0xfad0, - 0xfad1, 0xfad2, 0xfad3, 0xfad4, 0xfad5, 0xfad6, 0xfad7, 0xfad8, - 0xfad9, 0xfada, 0xfadb, 0xfadc, 0xfadd, 0xfade, 0xfadf, 0xfae0, - 0xfae1, 0xfae2, 0xfae3, 0xfae4, 0xfae5, 0xfae6, 0xfae7, 0xfae8, - 0xfae9, 0xfaea, 0xfaeb, 0xfaec, 0xfaed, 0xfaee, 0xfaef, 0xfaf0, - 0xfaf1, 0xfaf2, 0xfaf3, 0xfaf4, 0xfaf5, 0xfaf6, 0xfaf7, 0xfaf8, - 0xfaf9, 0xfafa, 0xfafb, 0xfafc, 0xfafd, 0xfafe, 0xfba1, 0xfba2, - 0xfba3, 0xfba4, 0xfba5, 0xfba6, 0xfba7, 0xfba8, 0xfba9, 0xfbaa, - 0xfbab, 0xfbac, 0xfbad, 0xfbae, 0xfbaf, 0xfbb0, 0xfbb1, 0xfbb2, - 0xfbb3, 0xfbb4, 0xfbb5, 0xfbb6, 0xfbb7, 0xfbb8, 0xfbb9, 0xfbba, - 0xfbbb, 0xfbbc, 0xfbbd, 0xfbbe, 0xfbbf, 0xfbc0, 0xfbc1, 0xfbc2, - 0xfbc3, 0xfbc4, 0xfbc5, 0xfbc6, 0xfbc7, 0xfbc8, 0xfbc9, 0xfbca, - 0xfbcb, 0xfbcc, 0xfbcd, 0xfbce, 0xfbcf, 0xfbd0, 0xfbd1, 0xfbd2, - 0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6, 0xfbd7, 0xfbd8, 0xfbd9, 0xfbda, - 0xfbdb, 0xfbdc, 0xfbdd, 0xfbde, 0xfbdf, 0xfbe0, 0xfbe1, 0xfbe2, - 0xfbe3, 0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7, 0xfbe8, 0xfbe9, 0xfbea, - 0xfbeb, 0xfbec, 0xfbed, 0xfbee, 0xfbef, 0xfbf0, 0xfbf1, 0xfbf2, - 0xfbf3, 0xfbf4, 0xfbf5, 0xfbf6, 0xfbf7, 0xfbf8, 0xfbf9, 0xfbfa, - 0xfbfb, 0xfbfc, 0xfbfd, 0xfbfe, 0xfca1, 0xfca2, 0xfca3, 0xfca4, - 0xfca5, 0xfca6, 0xfca7, 0xfca8, 0xfca9, 0xfcaa, 0xfcab, 0xfcac, - 0xfcad, 0xfcae, 0xfcaf, 0xfcb0, 0xfcb1, 0xfcb2, 0xfcb3, 0xfcb4, - 0xfcb5, 0xfcb6, 0xfcb7, 0xfcb8, 0xfcb9, 0xfcba, 0xfcbb, 0xfcbc, - 0xfcbd, 0xfcbe, 0xfcbf, 0xfcc0, 0xfcc1, 0xfcc2, 0xfcc3, 0xfcc4, - 0xfcc5, 0xfcc6, 0xfcc7, 0xfcc8, 0xfcc9, 0xfcca, 0xfccb, 0xfccc, - 0xfccd, 0xfcce, 0xfccf, 0xfcd0, 0xfcd1, 0xfcd2, 0xfcd3, 0xfcd4, - 0xfcd5, 0xfcd6, 0xfcd7, 0xfcd8, 0xfcd9, 0xfcda, 0xfcdb, 0xfcdc, - 0xfcdd, 0xfcde, 0xfcdf, 0xfce0, 0xfce1, 0xfce2, 0xfce3, 0xfce4, - 0xfce5, 0xfce6, 0xfce7, 0xfce8, 0xfce9, 0xfcea, 0xfceb, 0xfcec, - 0xfced, 0xfcee, 0xfcef, 0xfcf0, 0xfcf1, 0xfcf2, 0xfcf3, 0xfcf4, - /* 0xe400 .. 0xe4ff */ - 0xfcf5, 0xfcf6, 0xfcf7, 0xfcf8, 0xfcf9, 0xfcfa, 0xfcfb, 0xfcfc, - 0xfcfd, 0xfcfe, 0xfda1, 0xfda2, 0xfda3, 0xfda4, 0xfda5, 0xfda6, - 0xfda7, 0xfda8, 0xfda9, 0xfdaa, 0xfdab, 0xfdac, 0xfdad, 0xfdae, - 0xfdaf, 0xfdb0, 0xfdb1, 0xfdb2, 0xfdb3, 0xfdb4, 0xfdb5, 0xfdb6, - 0xfdb7, 0xfdb8, 0xfdb9, 0xfdba, 0xfdbb, 0xfdbc, 0xfdbd, 0xfdbe, - 0xfdbf, 0xfdc0, 0xfdc1, 0xfdc2, 0xfdc3, 0xfdc4, 0xfdc5, 0xfdc6, - 0xfdc7, 0xfdc8, 0xfdc9, 0xfdca, 0xfdcb, 0xfdcc, 0xfdcd, 0xfdce, - 0xfdcf, 0xfdd0, 0xfdd1, 0xfdd2, 0xfdd3, 0xfdd4, 0xfdd5, 0xfdd6, - 0xfdd7, 0xfdd8, 0xfdd9, 0xfdda, 0xfddb, 0xfddc, 0xfddd, 0xfdde, - 0xfddf, 0xfde0, 0xfde1, 0xfde2, 0xfde3, 0xfde4, 0xfde5, 0xfde6, - 0xfde7, 0xfde8, 0xfde9, 0xfdea, 0xfdeb, 0xfdec, 0xfded, 0xfdee, - 0xfdef, 0xfdf0, 0xfdf1, 0xfdf2, 0xfdf3, 0xfdf4, 0xfdf5, 0xfdf6, - 0xfdf7, 0xfdf8, 0xfdf9, 0xfdfa, 0xfdfb, 0xfdfc, 0xfdfd, 0xfdfe, - 0xfea1, 0xfea2, 0xfea3, 0xfea4, 0xfea5, 0xfea6, 0xfea7, 0xfea8, - 0xfea9, 0xfeaa, 0xfeab, 0xfeac, 0xfead, 0xfeae, 0xfeaf, 0xfeb0, - 0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4, 0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8, - 0xfeb9, 0xfeba, 0xfebb, 0xfebc, 0xfebd, 0xfebe, 0xfebf, 0xfec0, - 0xfec1, 0xfec2, 0xfec3, 0xfec4, 0xfec5, 0xfec6, 0xfec7, 0xfec8, - 0xfec9, 0xfeca, 0xfecb, 0xfecc, 0xfecd, 0xfece, 0xfecf, 0xfed0, - 0xfed1, 0xfed2, 0xfed3, 0xfed4, 0xfed5, 0xfed6, 0xfed7, 0xfed8, - 0xfed9, 0xfeda, 0xfedb, 0xfedc, 0xfedd, 0xfede, 0xfedf, 0xfee0, - 0xfee1, 0xfee2, 0xfee3, 0xfee4, 0xfee5, 0xfee6, 0xfee7, 0xfee8, - 0xfee9, 0xfeea, 0xfeeb, 0xfeec, 0xfeed, 0xfeee, 0xfeef, 0xfef0, - 0xfef1, 0xfef2, 0xfef3, 0xfef4, 0xfef5, 0xfef6, 0xfef7, 0xfef8, - 0xfef9, 0xfefa, 0xfefb, 0xfefc, 0xfefd, 0xfefe, 0xa140, 0xa141, - 0xa142, 0xa143, 0xa144, 0xa145, 0xa146, 0xa147, 0xa148, 0xa149, - 0xa14a, 0xa14b, 0xa14c, 0xa14d, 0xa14e, 0xa14f, 0xa150, 0xa151, - 0xa152, 0xa153, 0xa154, 0xa155, 0xa156, 0xa157, 0xa158, 0xa159, - 0xa15a, 0xa15b, 0xa15c, 0xa15d, 0xa15e, 0xa15f, 0xa160, 0xa161, - 0xa162, 0xa163, 0xa164, 0xa165, 0xa166, 0xa167, 0xa168, 0xa169, - 0xa16a, 0xa16b, 0xa16c, 0xa16d, 0xa16e, 0xa16f, 0xa170, 0xa171, - 0xa172, 0xa173, 0xa174, 0xa175, 0xa176, 0xa177, 0xa178, 0xa179, - /* 0xe500 .. 0xe5ff */ - 0xa17a, 0xa17b, 0xa17c, 0xa17d, 0xa17e, 0xa180, 0xa181, 0xa182, - 0xa183, 0xa184, 0xa185, 0xa186, 0xa187, 0xa188, 0xa189, 0xa18a, - 0xa18b, 0xa18c, 0xa18d, 0xa18e, 0xa18f, 0xa190, 0xa191, 0xa192, - 0xa193, 0xa194, 0xa195, 0xa196, 0xa197, 0xa198, 0xa199, 0xa19a, - 0xa19b, 0xa19c, 0xa19d, 0xa19e, 0xa19f, 0xa1a0, 0xa240, 0xa241, - 0xa242, 0xa243, 0xa244, 0xa245, 0xa246, 0xa247, 0xa248, 0xa249, - 0xa24a, 0xa24b, 0xa24c, 0xa24d, 0xa24e, 0xa24f, 0xa250, 0xa251, - 0xa252, 0xa253, 0xa254, 0xa255, 0xa256, 0xa257, 0xa258, 0xa259, - 0xa25a, 0xa25b, 0xa25c, 0xa25d, 0xa25e, 0xa25f, 0xa260, 0xa261, - 0xa262, 0xa263, 0xa264, 0xa265, 0xa266, 0xa267, 0xa268, 0xa269, - 0xa26a, 0xa26b, 0xa26c, 0xa26d, 0xa26e, 0xa26f, 0xa270, 0xa271, - 0xa272, 0xa273, 0xa274, 0xa275, 0xa276, 0xa277, 0xa278, 0xa279, - 0xa27a, 0xa27b, 0xa27c, 0xa27d, 0xa27e, 0xa280, 0xa281, 0xa282, - 0xa283, 0xa284, 0xa285, 0xa286, 0xa287, 0xa288, 0xa289, 0xa28a, - 0xa28b, 0xa28c, 0xa28d, 0xa28e, 0xa28f, 0xa290, 0xa291, 0xa292, - 0xa293, 0xa294, 0xa295, 0xa296, 0xa297, 0xa298, 0xa299, 0xa29a, - 0xa29b, 0xa29c, 0xa29d, 0xa29e, 0xa29f, 0xa2a0, 0xa340, 0xa341, - 0xa342, 0xa343, 0xa344, 0xa345, 0xa346, 0xa347, 0xa348, 0xa349, - 0xa34a, 0xa34b, 0xa34c, 0xa34d, 0xa34e, 0xa34f, 0xa350, 0xa351, - 0xa352, 0xa353, 0xa354, 0xa355, 0xa356, 0xa357, 0xa358, 0xa359, - 0xa35a, 0xa35b, 0xa35c, 0xa35d, 0xa35e, 0xa35f, 0xa360, 0xa361, - 0xa362, 0xa363, 0xa364, 0xa365, 0xa366, 0xa367, 0xa368, 0xa369, - 0xa36a, 0xa36b, 0xa36c, 0xa36d, 0xa36e, 0xa36f, 0xa370, 0xa371, - 0xa372, 0xa373, 0xa374, 0xa375, 0xa376, 0xa377, 0xa378, 0xa379, - 0xa37a, 0xa37b, 0xa37c, 0xa37d, 0xa37e, 0xa380, 0xa381, 0xa382, - 0xa383, 0xa384, 0xa385, 0xa386, 0xa387, 0xa388, 0xa389, 0xa38a, - 0xa38b, 0xa38c, 0xa38d, 0xa38e, 0xa38f, 0xa390, 0xa391, 0xa392, - 0xa393, 0xa394, 0xa395, 0xa396, 0xa397, 0xa398, 0xa399, 0xa39a, - 0xa39b, 0xa39c, 0xa39d, 0xa39e, 0xa39f, 0xa3a0, 0xa440, 0xa441, - 0xa442, 0xa443, 0xa444, 0xa445, 0xa446, 0xa447, 0xa448, 0xa449, - 0xa44a, 0xa44b, 0xa44c, 0xa44d, 0xa44e, 0xa44f, 0xa450, 0xa451, - 0xa452, 0xa453, 0xa454, 0xa455, 0xa456, 0xa457, 0xa458, 0xa459, - /* 0xe600 .. 0xe6ff */ - 0xa45a, 0xa45b, 0xa45c, 0xa45d, 0xa45e, 0xa45f, 0xa460, 0xa461, - 0xa462, 0xa463, 0xa464, 0xa465, 0xa466, 0xa467, 0xa468, 0xa469, - 0xa46a, 0xa46b, 0xa46c, 0xa46d, 0xa46e, 0xa46f, 0xa470, 0xa471, - 0xa472, 0xa473, 0xa474, 0xa475, 0xa476, 0xa477, 0xa478, 0xa479, - 0xa47a, 0xa47b, 0xa47c, 0xa47d, 0xa47e, 0xa480, 0xa481, 0xa482, - 0xa483, 0xa484, 0xa485, 0xa486, 0xa487, 0xa488, 0xa489, 0xa48a, - 0xa48b, 0xa48c, 0xa48d, 0xa48e, 0xa48f, 0xa490, 0xa491, 0xa492, - 0xa493, 0xa494, 0xa495, 0xa496, 0xa497, 0xa498, 0xa499, 0xa49a, - 0xa49b, 0xa49c, 0xa49d, 0xa49e, 0xa49f, 0xa4a0, 0xa540, 0xa541, - 0xa542, 0xa543, 0xa544, 0xa545, 0xa546, 0xa547, 0xa548, 0xa549, - 0xa54a, 0xa54b, 0xa54c, 0xa54d, 0xa54e, 0xa54f, 0xa550, 0xa551, - 0xa552, 0xa553, 0xa554, 0xa555, 0xa556, 0xa557, 0xa558, 0xa559, - 0xa55a, 0xa55b, 0xa55c, 0xa55d, 0xa55e, 0xa55f, 0xa560, 0xa561, - 0xa562, 0xa563, 0xa564, 0xa565, 0xa566, 0xa567, 0xa568, 0xa569, - 0xa56a, 0xa56b, 0xa56c, 0xa56d, 0xa56e, 0xa56f, 0xa570, 0xa571, - 0xa572, 0xa573, 0xa574, 0xa575, 0xa576, 0xa577, 0xa578, 0xa579, - 0xa57a, 0xa57b, 0xa57c, 0xa57d, 0xa57e, 0xa580, 0xa581, 0xa582, - 0xa583, 0xa584, 0xa585, 0xa586, 0xa587, 0xa588, 0xa589, 0xa58a, - 0xa58b, 0xa58c, 0xa58d, 0xa58e, 0xa58f, 0xa590, 0xa591, 0xa592, - 0xa593, 0xa594, 0xa595, 0xa596, 0xa597, 0xa598, 0xa599, 0xa59a, - 0xa59b, 0xa59c, 0xa59d, 0xa59e, 0xa59f, 0xa5a0, 0xa640, 0xa641, - 0xa642, 0xa643, 0xa644, 0xa645, 0xa646, 0xa647, 0xa648, 0xa649, - 0xa64a, 0xa64b, 0xa64c, 0xa64d, 0xa64e, 0xa64f, 0xa650, 0xa651, - 0xa652, 0xa653, 0xa654, 0xa655, 0xa656, 0xa657, 0xa658, 0xa659, - 0xa65a, 0xa65b, 0xa65c, 0xa65d, 0xa65e, 0xa65f, 0xa660, 0xa661, - 0xa662, 0xa663, 0xa664, 0xa665, 0xa666, 0xa667, 0xa668, 0xa669, - 0xa66a, 0xa66b, 0xa66c, 0xa66d, 0xa66e, 0xa66f, 0xa670, 0xa671, - 0xa672, 0xa673, 0xa674, 0xa675, 0xa676, 0xa677, 0xa678, 0xa679, - 0xa67a, 0xa67b, 0xa67c, 0xa67d, 0xa67e, 0xa680, 0xa681, 0xa682, - 0xa683, 0xa684, 0xa685, 0xa686, 0xa687, 0xa688, 0xa689, 0xa68a, - 0xa68b, 0xa68c, 0xa68d, 0xa68e, 0xa68f, 0xa690, 0xa691, 0xa692, - 0xa693, 0xa694, 0xa695, 0xa696, 0xa697, 0xa698, 0xa699, 0xa69a, - /* 0xe700 .. 0xe7ff */ - 0xa69b, 0xa69c, 0xa69d, 0xa69e, 0xa69f, 0xa6a0, 0xa740, 0xa741, - 0xa742, 0xa743, 0xa744, 0xa745, 0xa746, 0xa747, 0xa748, 0xa749, - 0xa74a, 0xa74b, 0xa74c, 0xa74d, 0xa74e, 0xa74f, 0xa750, 0xa751, - 0xa752, 0xa753, 0xa754, 0xa755, 0xa756, 0xa757, 0xa758, 0xa759, - 0xa75a, 0xa75b, 0xa75c, 0xa75d, 0xa75e, 0xa75f, 0xa760, 0xa761, - 0xa762, 0xa763, 0xa764, 0xa765, 0xa766, 0xa767, 0xa768, 0xa769, - 0xa76a, 0xa76b, 0xa76c, 0xa76d, 0xa76e, 0xa76f, 0xa770, 0xa771, - 0xa772, 0xa773, 0xa774, 0xa775, 0xa776, 0xa777, 0xa778, 0xa779, - 0xa77a, 0xa77b, 0xa77c, 0xa77d, 0xa77e, 0xa780, 0xa781, 0xa782, - 0xa783, 0xa784, 0xa785, 0xa786, 0xa787, 0xa788, 0xa789, 0xa78a, - 0xa78b, 0xa78c, 0xa78d, 0xa78e, 0xa78f, 0xa790, 0xa791, 0xa792, - 0xa793, 0xa794, 0xa795, 0xa796, 0xa797, 0xa798, 0xa799, 0xa79a, - 0xa79b, 0xa79c, 0xa79d, 0xa79e, 0xa79f, 0xa7a0, 0xa2ab, 0xa2ac, - 0xa2ad, 0xa2ae, 0xa2af, 0xa2b0, 0xa2e3, 0xa2e4, 0xa2ef, 0xa2f0, - 0xa2fd, 0xa2fe, 0xa4f4, 0xa4f5, 0xa4f6, 0xa4f7, 0xa4f8, 0xa4f9, - 0xa4fa, 0xa4fb, 0xa4fc, 0xa4fd, 0xa4fe, 0xa5f7, 0xa5f8, 0xa5f9, - 0xa5fa, 0xa5fb, 0xa5fc, 0xa5fd, 0xa5fe, 0xa6b9, 0xa6ba, 0xa6bb, - 0xa6bc, 0xa6bd, 0xa6be, 0xa6bf, 0xa6c0, 0xa6d9, 0xa6da, 0xa6db, - 0xa6dc, 0xa6dd, 0xa6de, 0xa6df, 0xa6ec, 0xa6ed, 0xa6f3, 0xa6f6, - 0xa6f7, 0xa6f8, 0xa6f9, 0xa6fa, 0xa6fb, 0xa6fc, 0xa6fd, 0xa6fe, - 0xa7c2, 0xa7c3, 0xa7c4, 0xa7c5, 0xa7c6, 0xa7c7, 0xa7c8, 0xa7c9, - 0xa7ca, 0xa7cb, 0xa7cc, 0xa7cd, 0xa7ce, 0xa7cf, 0xa7d0, 0xa7f2, - 0xa7f3, 0xa7f4, 0xa7f5, 0xa7f6, 0xa7f7, 0xa7f8, 0xa7f9, 0xa7fa, - 0xa7fb, 0xa7fc, 0xa7fd, 0xa7fe, 0xa896, 0xa897, 0xa898, 0xa899, - 0xa89a, 0xa89b, 0xa89c, 0xa89d, 0xa89e, 0xa89f, 0xa8a0, 0xa8bc, - 0xa8bf, 0xa8c1, 0xa8c2, 0xa8c3, 0xa8c4, 0xa8ea, 0xa8eb, 0xa8ec, - 0xa8ed, 0xa8ee, 0xa8ef, 0xa8f0, 0xa8f1, 0xa8f2, 0xa8f3, 0xa8f4, - 0xa8f5, 0xa8f6, 0xa8f7, 0xa8f8, 0xa8f9, 0xa8fa, 0xa8fb, 0xa8fc, - 0xa8fd, 0xa8fe, 0xa958, 0xa95b, 0xa95d, 0xa95e, 0xa95f, 0xa989, - 0xa98a, 0xa98b, 0xa98c, 0xa98d, 0xa98e, 0xa98f, 0xa990, 0xa991, - 0xa992, 0xa993, 0xa994, 0xa995, 0xa997, 0xa998, 0xa999, 0xa99a, - 0xa99b, 0xa99c, 0xa99d, 0xa99e, 0xa99f, 0xa9a0, 0xa9a1, 0xa9a2, - /* 0xe800 .. 0xe8ff */ - 0xa9a3, 0xa9f0, 0xa9f1, 0xa9f2, 0xa9f3, 0xa9f4, 0xa9f5, 0xa9f6, - 0xa9f7, 0xa9f8, 0xa9f9, 0xa9fa, 0xa9fb, 0xa9fc, 0xa9fd, 0xa9fe, - 0xd7fa, 0xd7fb, 0xd7fc, 0xd7fd, 0xd7fe, 0xfe50, 0xfe51, 0xfe52, - 0xfe53, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe58, 0xfe59, 0xfe5a, - 0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0xfe5f, 0xfe60, 0xfe61, 0xfe62, - 0xfe63, 0xfe64, 0xfe65, 0xfe66, 0xfe67, 0xfe68, 0xfe69, 0xfe6a, - 0xfe6b, 0xfe6c, 0xfe6d, 0xfe6e, 0xfe6f, 0xfe70, 0xfe71, 0xfe72, - 0xfe73, 0xfe74, 0xfe75, 0xfe76, 0xfe77, 0xfe78, 0xfe79, 0xfe7a, - 0xfe7b, 0xfe7c, 0xfe7d, 0xfe7e, 0xfe80, 0xfe81, 0xfe82, 0xfe83, - 0xfe84, 0xfe85, 0xfe86, 0xfe87, 0xfe88, 0xfe89, 0xfe8a, 0xfe8b, - 0xfe8c, 0xfe8d, 0xfe8e, 0xfe8f, 0xfe90, 0xfe91, 0xfe92, 0xfe93, - 0xfe94, 0xfe95, 0xfe96, 0xfe97, 0xfe98, 0xfe99, 0xfe9a, 0xfe9b, - 0xfe9c, 0xfe9d, 0xfe9e, 0xfe9f, 0xfea0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xf800 .. 0xf8ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00ff, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xf900 .. 0xf9ff */ - 0xd84d, 0xb8fc, 0xdc87, 0xd95a, 0xbbac, 0xb4ae, 0xbee4, 0xfd94, - 0xfd94, 0xc6f5, 0xbdf0, 0xc0ae, 0xc4ce, 0x91d0, 0xb05d, 0xc15f, - 0xcc7d, 0xc2dd, 0xc2e3, 0xdf89, 0x98b7, 0xc2e5, 0xc0d3, 0xe7f3, - 0xc2e4, 0xc0d2, 0xf198, 0x8179, 0xc2d1, 0x99da, 0xa080, 0xcc6d, - 0xfb5b, 0x8db9, 0x9e45, 0xcb7b, 0xd268, 0xc0ad, 0xc544, 0xcf9e, - 0xc0c8, 0xc0ca, 0xc0cb, 0xc0c7, 0xfd9c, 0x81ed, 0xc0e4, 0x84da, - 0x93ef, 0x99a9, 0xa074, 0xb152, 0xc0cf, 0xcc4a, 0xcc94, 0xc2b7, - 0xc2b6, 0xf494, 0xfa98, 0xc2b5, 0xb593, 0xbe47, 0xc78a, 0xe49b, - 0xc2b9, 0xd593, 0x89c5, 0xc5aa, 0xbb5c, 0xc340, 0xc0ce, 0xc0da, - 0xd954, 0xc0d7, 0x89be, 0x8cd2, 0x98c7, 0x9c49, 0xc2a9, 0xc0db, - 0xbf7c, 0xc2aa, 0xc0d5, 0xc0df, 0x8443, 0xc1e8, 0xb6a0, 0xbe63, - 0xc1e2, 0xc1ea, 0xd778, 0x9282, 0x98b7, 0xd65a, 0xb5a4, 0x8c8e, - 0xc5ad, 0xc2ca, 0xae90, 0xb1b1, 0xb491, 0xb1e3, 0x8fcd, 0xb2bb, - 0xc3da, 0x94b5, 0xcbf7, 0x85a2, 0xc8fb, 0xcaa1, 0xc87e, 0xd566, - 0x9aa2, 0xb3bd, 0xc9f2, 0xcab0, 0xc8f4, 0xc2d3, 0xc2d4, 0xc1c1, - 0x83c9, 0xfd9d, 0xc1ba, 0xbc5a, 0xc1bc, 0xd58f, 0xc1bf, 0x84ee, - 0x85ce, 0xc5ae, 0x8f5d, 0xc2c3, 0x9e56, 0xb55a, 0xe982, 0xf350, - 0xfb90, 0xc0e8, 0xc1a6, 0x95d1, 0x9a76, 0xde5d, 0xc4ea, 0x917a, - 0x91d9, 0x93d3, 0x9d69, 0x9f92, 0xad49, 0xfd9e, 0xbe9a, 0xc293, - 0xdd82, 0xc98f, 0xdf42, 0xe580, 0xc1d0, 0xc1d3, 0xd1ca, 0xc1d2, - 0xc1d1, 0xd566, 0xc1ae, 0xc4ee, 0xc4ed, 0x9a9a, 0xba9f, 0xab43, - 0xc1ee, 0xe0f2, 0x8c8e, 0x8e58, 0xc1af, 0xc1e1, 0xac93, 0xc1e7, - 0xf1f6, 0xe28f, 0xc1e3, 0xec60, 0xee49, 0xc0fd, 0xb659, 0xf5b7, - 0xeb60, 0x90ba, 0xc1cb, 0xc1c5, 0xe5bc, 0xc4f2, 0xc1cf, 0x98b7, - 0xc1c7, 0xaf9f, 0xdea4, 0xdf7c, 0xfd88, 0x959e, 0xc8ee, 0x84a2, - 0x9683, 0xc1f8, 0xc1f7, 0xc1ef, 0xc1f0, 0xc1f4, 0xc1f2, 0xbc7e, - 0xee90, 0xc1f9, 0xc2be, 0xea91, 0x8290, 0x8d91, 0x9c53, 0xdd86, - 0xc2c9, 0x90fc, 0xc0f5, 0xc2ca, 0xc2a1, 0xc0fb, 0xc0f4, 0xc2c4, - 0xd2d7, 0xc0ee, 0xc0e6, 0xc4e0, 0xc0ed, 0xc1a1, 0xeebe, 0xfd9f, - 0xd165, 0xc0ef, 0xeb78, 0xc4e4, 0xc4e7, 0xc1df, 0x9ffb, 0xad55, - 0xcc41, 0xfda0, 0xf75b, 0xf7eb, 0xc1d6, 0xc1dc, 0xc552, 0xc1a2, - 0xf3d2, 0xc1a3, 0xa0ee, 0xd6cb, 0xd752, 0xcab2, 0xb2e8, 0xb4cc, - /* 0xfa00 .. 0xfaff */ - 0xc7d0, 0xb6c8, 0xcdd8, 0xccc7, 0xd5ac, 0xb6b4, 0xb1a9, 0xdd97, - 0xd0d0, 0xbdb5, 0xd28a, 0xc0aa, 0xfe40, 0xfe41, 0xfe42, 0xfe43, - 0x8956, 0xfe44, 0xc7e7, 0xfe45, 0xfe46, 0x8444, 0xd869, 0xd2e6, - 0xfe47, 0xc9f1, 0xcfe9, 0xb8a3, 0xbeb8, 0xbeab, 0xd3f0, 0xfe48, - 0xfe49, 0xfe4a, 0xd654, 0xfe4b, 0xfe4c, 0xd2dd, 0xb6bc, 0xfe4d, - 0xfe4e, 0xfe4f, 0xef88, 0xef95, 0xf05e, 0xfa51, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xfe00 .. 0xfeff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa955, 0xa6f2, 0x003f, 0xa6f4, 0xa6f5, 0xa6e0, 0xa6e1, 0xa6f0, - 0xa6f1, 0xa6e2, 0xa6e3, 0xa6ee, 0xa6ef, 0xa6e6, 0xa6e7, 0xa6e4, - 0xa6e5, 0xa6e8, 0xa6e9, 0xa6ea, 0xa6eb, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa968, 0xa969, 0xa96a, 0xa96b, 0xa96c, 0xa96d, 0xa96e, - 0xa96f, 0xa970, 0xa971, 0x003f, 0xa972, 0xa973, 0xa974, 0xa975, - 0x003f, 0xa976, 0xa977, 0xa978, 0xa979, 0xa97a, 0xa97b, 0xa97c, - 0xa97d, 0xa97e, 0xa980, 0xa981, 0xa982, 0xa983, 0xa984, 0x003f, - 0xa985, 0xa986, 0xa987, 0xa988, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xff00 .. 0xffff */ - 0x003f, 0xa3a1, 0xa3a2, 0xa3a3, 0xa1e7, 0xa3a5, 0xa3a6, 0xa3a7, - 0xa3a8, 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, - 0xa3b0, 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, - 0xa3b8, 0xa3b9, 0xa3ba, 0xa3bb, 0xa3bc, 0xa3bd, 0xa3be, 0xa3bf, - 0xa3c0, 0xa3c1, 0xa3c2, 0xa3c3, 0xa3c4, 0xa3c5, 0xa3c6, 0xa3c7, - 0xa3c8, 0xa3c9, 0xa3ca, 0xa3cb, 0xa3cc, 0xa3cd, 0xa3ce, 0xa3cf, - 0xa3d0, 0xa3d1, 0xa3d2, 0xa3d3, 0xa3d4, 0xa3d5, 0xa3d6, 0xa3d7, - 0xa3d8, 0xa3d9, 0xa3da, 0xa3db, 0xa3dc, 0xa3dd, 0xa3de, 0xa3df, - 0xa3e0, 0xa3e1, 0xa3e2, 0xa3e3, 0xa3e4, 0xa3e5, 0xa3e6, 0xa3e7, - 0xa3e8, 0xa3e9, 0xa3ea, 0xa3eb, 0xa3ec, 0xa3ed, 0xa3ee, 0xa3ef, - 0xa3f0, 0xa3f1, 0xa3f2, 0xa3f3, 0xa3f4, 0xa3f5, 0xa3f6, 0xa3f7, - 0xa3f8, 0xa3f9, 0xa3fa, 0xa3fb, 0xa3fc, 0xa3fd, 0xa1ab, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1e9, 0xa1ea, 0xa956, 0xa3fe, 0xa957, 0xa3a4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* defaults */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x0c00, 0x0d00, 0x0e00, 0x0f00, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x1000, 0x1100, - 0x1200, 0x1300, 0x1400, 0x1500, 0x1600, 0x1700, 0x1800, 0x1900, - 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, 0x1f00, 0x2000, 0x2100, - 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, 0x2800, 0x2900, - 0x2a00, 0x2b00, 0x2c00, 0x2d00, 0x2e00, 0x2f00, 0x3000, 0x3100, - 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, 0x3700, 0x3800, 0x3900, - 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, 0x4000, 0x4100, - 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, 0x4700, 0x4800, 0x4900, - 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, 0x4f00, 0x5000, 0x5100, - 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, 0x5700, 0x5800, 0x5900, - 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, 0x5f00, 0x6000, 0x6100, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x6200, 0x6300, 0x6400, 0x6500, 0x6600, 0x6700, 0x6800, 0x6900, - 0x6a00, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, 0x7000, - 0x6b00, 0x6c00, 0x6d00, 0x7000, 0x7000, 0x7000, 0x6e00, 0x6f00 -}; - -const struct dbcs_table cptable_936 = -{ - { 936, 2, 0x003f, 0x003f, "ANSI/OEM Simplified Chinese GBK" }, - cp2uni, - cp2uni_leadbytes, - uni2cp_low, - uni2cp_high, - { - 0x81, 0xfe, 0x00, 0x00 - } -}; diff --git a/reactos/tools/unicode/c_949.c b/reactos/tools/unicode/c_949.c deleted file mode 100644 index 1cfcb71bc3b..00000000000 --- a/reactos/tools/unicode/c_949.c +++ /dev/null @@ -1,9204 +0,0 @@ -/* code page 949 (ANSI/OEM Korean Unified Hangul) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit949.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[32512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf8f7, - /* lead byte 81 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xac02, 0xac03, 0xac05, 0xac06, 0xac0b, 0xac0c, 0xac0d, - 0xac0e, 0xac0f, 0xac18, 0xac1e, 0xac1f, 0xac21, 0xac22, 0xac23, - 0xac25, 0xac26, 0xac27, 0xac28, 0xac29, 0xac2a, 0xac2b, 0xac2e, - 0xac32, 0xac33, 0xac34, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xac35, 0xac36, 0xac37, 0xac3a, 0xac3b, 0xac3d, 0xac3e, - 0xac3f, 0xac41, 0xac42, 0xac43, 0xac44, 0xac45, 0xac46, 0xac47, - 0xac48, 0xac49, 0xac4a, 0xac4c, 0xac4e, 0xac4f, 0xac50, 0xac51, - 0xac52, 0xac53, 0xac55, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xac56, 0xac57, 0xac59, 0xac5a, 0xac5b, 0xac5d, 0xac5e, - 0xac5f, 0xac60, 0xac61, 0xac62, 0xac63, 0xac64, 0xac65, 0xac66, - 0xac67, 0xac68, 0xac69, 0xac6a, 0xac6b, 0xac6c, 0xac6d, 0xac6e, - 0xac6f, 0xac72, 0xac73, 0xac75, 0xac76, 0xac79, 0xac7b, 0xac7c, - 0xac7d, 0xac7e, 0xac7f, 0xac82, 0xac87, 0xac88, 0xac8d, 0xac8e, - 0xac8f, 0xac91, 0xac92, 0xac93, 0xac95, 0xac96, 0xac97, 0xac98, - 0xac99, 0xac9a, 0xac9b, 0xac9e, 0xaca2, 0xaca3, 0xaca4, 0xaca5, - 0xaca6, 0xaca7, 0xacab, 0xacad, 0xacae, 0xacb1, 0xacb2, 0xacb3, - 0xacb4, 0xacb5, 0xacb6, 0xacb7, 0xacba, 0xacbe, 0xacbf, 0xacc0, - 0xacc2, 0xacc3, 0xacc5, 0xacc6, 0xacc7, 0xacc9, 0xacca, 0xaccb, - 0xaccd, 0xacce, 0xaccf, 0xacd0, 0xacd1, 0xacd2, 0xacd3, 0xacd4, - 0xacd6, 0xacd8, 0xacd9, 0xacda, 0xacdb, 0xacdc, 0xacdd, 0xacde, - 0xacdf, 0xace2, 0xace3, 0xace5, 0xace6, 0xace9, 0xaceb, 0xaced, - 0xacee, 0xacf2, 0xacf4, 0xacf7, 0xacf8, 0xacf9, 0xacfa, 0xacfb, - 0xacfe, 0xacff, 0xad01, 0xad02, 0xad03, 0xad05, 0xad07, 0xad08, - 0xad09, 0xad0a, 0xad0b, 0xad0e, 0xad10, 0xad12, 0xad13, 0x003f, - /* lead byte 82 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xad14, 0xad15, 0xad16, 0xad17, 0xad19, 0xad1a, 0xad1b, - 0xad1d, 0xad1e, 0xad1f, 0xad21, 0xad22, 0xad23, 0xad24, 0xad25, - 0xad26, 0xad27, 0xad28, 0xad2a, 0xad2b, 0xad2e, 0xad2f, 0xad30, - 0xad31, 0xad32, 0xad33, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xad36, 0xad37, 0xad39, 0xad3a, 0xad3b, 0xad3d, 0xad3e, - 0xad3f, 0xad40, 0xad41, 0xad42, 0xad43, 0xad46, 0xad48, 0xad4a, - 0xad4b, 0xad4c, 0xad4d, 0xad4e, 0xad4f, 0xad51, 0xad52, 0xad53, - 0xad55, 0xad56, 0xad57, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xad59, 0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad5e, 0xad5f, - 0xad60, 0xad62, 0xad64, 0xad65, 0xad66, 0xad67, 0xad68, 0xad69, - 0xad6a, 0xad6b, 0xad6e, 0xad6f, 0xad71, 0xad72, 0xad77, 0xad78, - 0xad79, 0xad7a, 0xad7e, 0xad80, 0xad83, 0xad84, 0xad85, 0xad86, - 0xad87, 0xad8a, 0xad8b, 0xad8d, 0xad8e, 0xad8f, 0xad91, 0xad92, - 0xad93, 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xad99, 0xad9a, - 0xad9b, 0xad9e, 0xad9f, 0xada0, 0xada1, 0xada2, 0xada3, 0xada5, - 0xada6, 0xada7, 0xada8, 0xada9, 0xadaa, 0xadab, 0xadac, 0xadad, - 0xadae, 0xadaf, 0xadb0, 0xadb1, 0xadb2, 0xadb3, 0xadb4, 0xadb5, - 0xadb6, 0xadb8, 0xadb9, 0xadba, 0xadbb, 0xadbc, 0xadbd, 0xadbe, - 0xadbf, 0xadc2, 0xadc3, 0xadc5, 0xadc6, 0xadc7, 0xadc9, 0xadca, - 0xadcb, 0xadcc, 0xadcd, 0xadce, 0xadcf, 0xadd2, 0xadd4, 0xadd5, - 0xadd6, 0xadd7, 0xadd8, 0xadd9, 0xadda, 0xaddb, 0xaddd, 0xadde, - 0xaddf, 0xade1, 0xade2, 0xade3, 0xade5, 0xade6, 0xade7, 0xade8, - 0xade9, 0xadea, 0xadeb, 0xadec, 0xaded, 0xadee, 0xadef, 0xadf0, - 0xadf1, 0xadf2, 0xadf3, 0xadf4, 0xadf5, 0xadf6, 0xadf7, 0x003f, - /* lead byte 83 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xadfa, 0xadfb, 0xadfd, 0xadfe, 0xae02, 0xae03, 0xae04, - 0xae05, 0xae06, 0xae07, 0xae0a, 0xae0c, 0xae0e, 0xae0f, 0xae10, - 0xae11, 0xae12, 0xae13, 0xae15, 0xae16, 0xae17, 0xae18, 0xae19, - 0xae1a, 0xae1b, 0xae1c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xae1d, 0xae1e, 0xae1f, 0xae20, 0xae21, 0xae22, 0xae23, - 0xae24, 0xae25, 0xae26, 0xae27, 0xae28, 0xae29, 0xae2a, 0xae2b, - 0xae2c, 0xae2d, 0xae2e, 0xae2f, 0xae32, 0xae33, 0xae35, 0xae36, - 0xae39, 0xae3b, 0xae3c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xae3d, 0xae3e, 0xae3f, 0xae42, 0xae44, 0xae47, 0xae48, - 0xae49, 0xae4b, 0xae4f, 0xae51, 0xae52, 0xae53, 0xae55, 0xae57, - 0xae58, 0xae59, 0xae5a, 0xae5b, 0xae5e, 0xae62, 0xae63, 0xae64, - 0xae66, 0xae67, 0xae6a, 0xae6b, 0xae6d, 0xae6e, 0xae6f, 0xae71, - 0xae72, 0xae73, 0xae74, 0xae75, 0xae76, 0xae77, 0xae7a, 0xae7e, - 0xae7f, 0xae80, 0xae81, 0xae82, 0xae83, 0xae86, 0xae87, 0xae88, - 0xae89, 0xae8a, 0xae8b, 0xae8d, 0xae8e, 0xae8f, 0xae90, 0xae91, - 0xae92, 0xae93, 0xae94, 0xae95, 0xae96, 0xae97, 0xae98, 0xae99, - 0xae9a, 0xae9b, 0xae9c, 0xae9d, 0xae9e, 0xae9f, 0xaea0, 0xaea1, - 0xaea2, 0xaea3, 0xaea4, 0xaea5, 0xaea6, 0xaea7, 0xaea8, 0xaea9, - 0xaeaa, 0xaeab, 0xaeac, 0xaead, 0xaeae, 0xaeaf, 0xaeb0, 0xaeb1, - 0xaeb2, 0xaeb3, 0xaeb4, 0xaeb5, 0xaeb6, 0xaeb7, 0xaeb8, 0xaeb9, - 0xaeba, 0xaebb, 0xaebf, 0xaec1, 0xaec2, 0xaec3, 0xaec5, 0xaec6, - 0xaec7, 0xaec8, 0xaec9, 0xaeca, 0xaecb, 0xaece, 0xaed2, 0xaed3, - 0xaed4, 0xaed5, 0xaed6, 0xaed7, 0xaeda, 0xaedb, 0xaedd, 0xaede, - 0xaedf, 0xaee0, 0xaee1, 0xaee2, 0xaee3, 0xaee4, 0xaee5, 0x003f, - /* lead byte 84 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xaee6, 0xaee7, 0xaee9, 0xaeea, 0xaeec, 0xaeee, 0xaeef, - 0xaef0, 0xaef1, 0xaef2, 0xaef3, 0xaef5, 0xaef6, 0xaef7, 0xaef9, - 0xaefa, 0xaefb, 0xaefd, 0xaefe, 0xaeff, 0xaf00, 0xaf01, 0xaf02, - 0xaf03, 0xaf04, 0xaf05, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xaf06, 0xaf09, 0xaf0a, 0xaf0b, 0xaf0c, 0xaf0e, 0xaf0f, - 0xaf11, 0xaf12, 0xaf13, 0xaf14, 0xaf15, 0xaf16, 0xaf17, 0xaf18, - 0xaf19, 0xaf1a, 0xaf1b, 0xaf1c, 0xaf1d, 0xaf1e, 0xaf1f, 0xaf20, - 0xaf21, 0xaf22, 0xaf23, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xaf24, 0xaf25, 0xaf26, 0xaf27, 0xaf28, 0xaf29, 0xaf2a, - 0xaf2b, 0xaf2e, 0xaf2f, 0xaf31, 0xaf33, 0xaf35, 0xaf36, 0xaf37, - 0xaf38, 0xaf39, 0xaf3a, 0xaf3b, 0xaf3e, 0xaf40, 0xaf44, 0xaf45, - 0xaf46, 0xaf47, 0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, - 0xaf51, 0xaf52, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, - 0xaf59, 0xaf5a, 0xaf5b, 0xaf5e, 0xaf5f, 0xaf60, 0xaf61, 0xaf62, - 0xaf63, 0xaf66, 0xaf67, 0xaf68, 0xaf69, 0xaf6a, 0xaf6b, 0xaf6c, - 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, 0xaf71, 0xaf72, 0xaf73, 0xaf74, - 0xaf75, 0xaf76, 0xaf77, 0xaf78, 0xaf7a, 0xaf7b, 0xaf7c, 0xaf7d, - 0xaf7e, 0xaf7f, 0xaf81, 0xaf82, 0xaf83, 0xaf85, 0xaf86, 0xaf87, - 0xaf89, 0xaf8a, 0xaf8b, 0xaf8c, 0xaf8d, 0xaf8e, 0xaf8f, 0xaf92, - 0xaf93, 0xaf94, 0xaf96, 0xaf97, 0xaf98, 0xaf99, 0xaf9a, 0xaf9b, - 0xaf9d, 0xaf9e, 0xaf9f, 0xafa0, 0xafa1, 0xafa2, 0xafa3, 0xafa4, - 0xafa5, 0xafa6, 0xafa7, 0xafa8, 0xafa9, 0xafaa, 0xafab, 0xafac, - 0xafad, 0xafae, 0xafaf, 0xafb0, 0xafb1, 0xafb2, 0xafb3, 0xafb4, - 0xafb5, 0xafb6, 0xafb7, 0xafba, 0xafbb, 0xafbd, 0xafbe, 0x003f, - /* lead byte 85 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xafbf, 0xafc1, 0xafc2, 0xafc3, 0xafc4, 0xafc5, 0xafc6, - 0xafca, 0xafcc, 0xafcf, 0xafd0, 0xafd1, 0xafd2, 0xafd3, 0xafd5, - 0xafd6, 0xafd7, 0xafd8, 0xafd9, 0xafda, 0xafdb, 0xafdd, 0xafde, - 0xafdf, 0xafe0, 0xafe1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xafe2, 0xafe3, 0xafe4, 0xafe5, 0xafe6, 0xafe7, 0xafea, - 0xafeb, 0xafec, 0xafed, 0xafee, 0xafef, 0xaff2, 0xaff3, 0xaff5, - 0xaff6, 0xaff7, 0xaff9, 0xaffa, 0xaffb, 0xaffc, 0xaffd, 0xaffe, - 0xafff, 0xb002, 0xb003, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb005, 0xb006, 0xb007, 0xb008, 0xb009, 0xb00a, 0xb00b, - 0xb00d, 0xb00e, 0xb00f, 0xb011, 0xb012, 0xb013, 0xb015, 0xb016, - 0xb017, 0xb018, 0xb019, 0xb01a, 0xb01b, 0xb01e, 0xb01f, 0xb020, - 0xb021, 0xb022, 0xb023, 0xb024, 0xb025, 0xb026, 0xb027, 0xb029, - 0xb02a, 0xb02b, 0xb02c, 0xb02d, 0xb02e, 0xb02f, 0xb030, 0xb031, - 0xb032, 0xb033, 0xb034, 0xb035, 0xb036, 0xb037, 0xb038, 0xb039, - 0xb03a, 0xb03b, 0xb03c, 0xb03d, 0xb03e, 0xb03f, 0xb040, 0xb041, - 0xb042, 0xb043, 0xb046, 0xb047, 0xb049, 0xb04b, 0xb04d, 0xb04f, - 0xb050, 0xb051, 0xb052, 0xb056, 0xb058, 0xb05a, 0xb05b, 0xb05c, - 0xb05e, 0xb05f, 0xb060, 0xb061, 0xb062, 0xb063, 0xb064, 0xb065, - 0xb066, 0xb067, 0xb068, 0xb069, 0xb06a, 0xb06b, 0xb06c, 0xb06d, - 0xb06e, 0xb06f, 0xb070, 0xb071, 0xb072, 0xb073, 0xb074, 0xb075, - 0xb076, 0xb077, 0xb078, 0xb079, 0xb07a, 0xb07b, 0xb07e, 0xb07f, - 0xb081, 0xb082, 0xb083, 0xb085, 0xb086, 0xb087, 0xb088, 0xb089, - 0xb08a, 0xb08b, 0xb08e, 0xb090, 0xb092, 0xb093, 0xb094, 0xb095, - 0xb096, 0xb097, 0xb09b, 0xb09d, 0xb09e, 0xb0a3, 0xb0a4, 0x003f, - /* lead byte 86 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb0a5, 0xb0a6, 0xb0a7, 0xb0aa, 0xb0b0, 0xb0b2, 0xb0b6, - 0xb0b7, 0xb0b9, 0xb0ba, 0xb0bb, 0xb0bd, 0xb0be, 0xb0bf, 0xb0c0, - 0xb0c1, 0xb0c2, 0xb0c3, 0xb0c6, 0xb0ca, 0xb0cb, 0xb0cc, 0xb0cd, - 0xb0ce, 0xb0cf, 0xb0d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb0d3, 0xb0d5, 0xb0d6, 0xb0d7, 0xb0d9, 0xb0da, 0xb0db, - 0xb0dc, 0xb0dd, 0xb0de, 0xb0df, 0xb0e1, 0xb0e2, 0xb0e3, 0xb0e4, - 0xb0e6, 0xb0e7, 0xb0e8, 0xb0e9, 0xb0ea, 0xb0eb, 0xb0ec, 0xb0ed, - 0xb0ee, 0xb0ef, 0xb0f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb0f1, 0xb0f2, 0xb0f3, 0xb0f4, 0xb0f5, 0xb0f6, 0xb0f7, - 0xb0f8, 0xb0f9, 0xb0fa, 0xb0fb, 0xb0fc, 0xb0fd, 0xb0fe, 0xb0ff, - 0xb100, 0xb101, 0xb102, 0xb103, 0xb104, 0xb105, 0xb106, 0xb107, - 0xb10a, 0xb10d, 0xb10e, 0xb10f, 0xb111, 0xb114, 0xb115, 0xb116, - 0xb117, 0xb11a, 0xb11e, 0xb11f, 0xb120, 0xb121, 0xb122, 0xb126, - 0xb127, 0xb129, 0xb12a, 0xb12b, 0xb12d, 0xb12e, 0xb12f, 0xb130, - 0xb131, 0xb132, 0xb133, 0xb136, 0xb13a, 0xb13b, 0xb13c, 0xb13d, - 0xb13e, 0xb13f, 0xb142, 0xb143, 0xb145, 0xb146, 0xb147, 0xb149, - 0xb14a, 0xb14b, 0xb14c, 0xb14d, 0xb14e, 0xb14f, 0xb152, 0xb153, - 0xb156, 0xb157, 0xb159, 0xb15a, 0xb15b, 0xb15d, 0xb15e, 0xb15f, - 0xb161, 0xb162, 0xb163, 0xb164, 0xb165, 0xb166, 0xb167, 0xb168, - 0xb169, 0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, - 0xb171, 0xb172, 0xb173, 0xb174, 0xb175, 0xb176, 0xb177, 0xb17a, - 0xb17b, 0xb17d, 0xb17e, 0xb17f, 0xb181, 0xb183, 0xb184, 0xb185, - 0xb186, 0xb187, 0xb18a, 0xb18c, 0xb18e, 0xb18f, 0xb190, 0xb191, - 0xb195, 0xb196, 0xb197, 0xb199, 0xb19a, 0xb19b, 0xb19d, 0x003f, - /* lead byte 87 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb19e, 0xb19f, 0xb1a0, 0xb1a1, 0xb1a2, 0xb1a3, 0xb1a4, - 0xb1a5, 0xb1a6, 0xb1a7, 0xb1a9, 0xb1aa, 0xb1ab, 0xb1ac, 0xb1ad, - 0xb1ae, 0xb1af, 0xb1b0, 0xb1b1, 0xb1b2, 0xb1b3, 0xb1b4, 0xb1b5, - 0xb1b6, 0xb1b7, 0xb1b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb1b9, 0xb1ba, 0xb1bb, 0xb1bc, 0xb1bd, 0xb1be, 0xb1bf, - 0xb1c0, 0xb1c1, 0xb1c2, 0xb1c3, 0xb1c4, 0xb1c5, 0xb1c6, 0xb1c7, - 0xb1c8, 0xb1c9, 0xb1ca, 0xb1cb, 0xb1cd, 0xb1ce, 0xb1cf, 0xb1d1, - 0xb1d2, 0xb1d3, 0xb1d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb1d6, 0xb1d7, 0xb1d8, 0xb1d9, 0xb1da, 0xb1db, 0xb1de, - 0xb1e0, 0xb1e1, 0xb1e2, 0xb1e3, 0xb1e4, 0xb1e5, 0xb1e6, 0xb1e7, - 0xb1ea, 0xb1eb, 0xb1ed, 0xb1ee, 0xb1ef, 0xb1f1, 0xb1f2, 0xb1f3, - 0xb1f4, 0xb1f5, 0xb1f6, 0xb1f7, 0xb1f8, 0xb1fa, 0xb1fc, 0xb1fe, - 0xb1ff, 0xb200, 0xb201, 0xb202, 0xb203, 0xb206, 0xb207, 0xb209, - 0xb20a, 0xb20d, 0xb20e, 0xb20f, 0xb210, 0xb211, 0xb212, 0xb213, - 0xb216, 0xb218, 0xb21a, 0xb21b, 0xb21c, 0xb21d, 0xb21e, 0xb21f, - 0xb221, 0xb222, 0xb223, 0xb224, 0xb225, 0xb226, 0xb227, 0xb228, - 0xb229, 0xb22a, 0xb22b, 0xb22c, 0xb22d, 0xb22e, 0xb22f, 0xb230, - 0xb231, 0xb232, 0xb233, 0xb235, 0xb236, 0xb237, 0xb238, 0xb239, - 0xb23a, 0xb23b, 0xb23d, 0xb23e, 0xb23f, 0xb240, 0xb241, 0xb242, - 0xb243, 0xb244, 0xb245, 0xb246, 0xb247, 0xb248, 0xb249, 0xb24a, - 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, 0xb252, - 0xb253, 0xb254, 0xb255, 0xb256, 0xb257, 0xb259, 0xb25a, 0xb25b, - 0xb25d, 0xb25e, 0xb25f, 0xb261, 0xb262, 0xb263, 0xb264, 0xb265, - 0xb266, 0xb267, 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, 0x003f, - /* lead byte 88 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb26f, 0xb270, 0xb271, 0xb272, 0xb273, 0xb276, 0xb277, - 0xb278, 0xb279, 0xb27a, 0xb27b, 0xb27d, 0xb27e, 0xb27f, 0xb280, - 0xb281, 0xb282, 0xb283, 0xb286, 0xb287, 0xb288, 0xb28a, 0xb28b, - 0xb28c, 0xb28d, 0xb28e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb28f, 0xb292, 0xb293, 0xb295, 0xb296, 0xb297, 0xb29b, - 0xb29c, 0xb29d, 0xb29e, 0xb29f, 0xb2a2, 0xb2a4, 0xb2a7, 0xb2a8, - 0xb2a9, 0xb2ab, 0xb2ad, 0xb2ae, 0xb2af, 0xb2b1, 0xb2b2, 0xb2b3, - 0xb2b5, 0xb2b6, 0xb2b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb2b8, 0xb2b9, 0xb2ba, 0xb2bb, 0xb2bc, 0xb2bd, 0xb2be, - 0xb2bf, 0xb2c0, 0xb2c1, 0xb2c2, 0xb2c3, 0xb2c4, 0xb2c5, 0xb2c6, - 0xb2c7, 0xb2ca, 0xb2cb, 0xb2cd, 0xb2ce, 0xb2cf, 0xb2d1, 0xb2d3, - 0xb2d4, 0xb2d5, 0xb2d6, 0xb2d7, 0xb2da, 0xb2dc, 0xb2de, 0xb2df, - 0xb2e0, 0xb2e1, 0xb2e3, 0xb2e7, 0xb2e9, 0xb2ea, 0xb2f0, 0xb2f1, - 0xb2f2, 0xb2f6, 0xb2fc, 0xb2fd, 0xb2fe, 0xb302, 0xb303, 0xb305, - 0xb306, 0xb307, 0xb309, 0xb30a, 0xb30b, 0xb30c, 0xb30d, 0xb30e, - 0xb30f, 0xb312, 0xb316, 0xb317, 0xb318, 0xb319, 0xb31a, 0xb31b, - 0xb31d, 0xb31e, 0xb31f, 0xb320, 0xb321, 0xb322, 0xb323, 0xb324, - 0xb325, 0xb326, 0xb327, 0xb328, 0xb329, 0xb32a, 0xb32b, 0xb32c, - 0xb32d, 0xb32e, 0xb32f, 0xb330, 0xb331, 0xb332, 0xb333, 0xb334, - 0xb335, 0xb336, 0xb337, 0xb338, 0xb339, 0xb33a, 0xb33b, 0xb33c, - 0xb33d, 0xb33e, 0xb33f, 0xb340, 0xb341, 0xb342, 0xb343, 0xb344, - 0xb345, 0xb346, 0xb347, 0xb348, 0xb349, 0xb34a, 0xb34b, 0xb34c, - 0xb34d, 0xb34e, 0xb34f, 0xb350, 0xb351, 0xb352, 0xb353, 0xb357, - 0xb359, 0xb35a, 0xb35d, 0xb360, 0xb361, 0xb362, 0xb363, 0x003f, - /* lead byte 89 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb366, 0xb368, 0xb36a, 0xb36c, 0xb36d, 0xb36f, 0xb372, - 0xb373, 0xb375, 0xb376, 0xb377, 0xb379, 0xb37a, 0xb37b, 0xb37c, - 0xb37d, 0xb37e, 0xb37f, 0xb382, 0xb386, 0xb387, 0xb388, 0xb389, - 0xb38a, 0xb38b, 0xb38d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb38e, 0xb38f, 0xb391, 0xb392, 0xb393, 0xb395, 0xb396, - 0xb397, 0xb398, 0xb399, 0xb39a, 0xb39b, 0xb39c, 0xb39d, 0xb39e, - 0xb39f, 0xb3a2, 0xb3a3, 0xb3a4, 0xb3a5, 0xb3a6, 0xb3a7, 0xb3a9, - 0xb3aa, 0xb3ab, 0xb3ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb3ae, 0xb3af, 0xb3b0, 0xb3b1, 0xb3b2, 0xb3b3, 0xb3b4, - 0xb3b5, 0xb3b6, 0xb3b7, 0xb3b8, 0xb3b9, 0xb3ba, 0xb3bb, 0xb3bc, - 0xb3bd, 0xb3be, 0xb3bf, 0xb3c0, 0xb3c1, 0xb3c2, 0xb3c3, 0xb3c6, - 0xb3c7, 0xb3c9, 0xb3ca, 0xb3cd, 0xb3cf, 0xb3d1, 0xb3d2, 0xb3d3, - 0xb3d6, 0xb3d8, 0xb3da, 0xb3dc, 0xb3de, 0xb3df, 0xb3e1, 0xb3e2, - 0xb3e3, 0xb3e5, 0xb3e6, 0xb3e7, 0xb3e9, 0xb3ea, 0xb3eb, 0xb3ec, - 0xb3ed, 0xb3ee, 0xb3ef, 0xb3f0, 0xb3f1, 0xb3f2, 0xb3f3, 0xb3f4, - 0xb3f5, 0xb3f6, 0xb3f7, 0xb3f8, 0xb3f9, 0xb3fa, 0xb3fb, 0xb3fd, - 0xb3fe, 0xb3ff, 0xb400, 0xb401, 0xb402, 0xb403, 0xb404, 0xb405, - 0xb406, 0xb407, 0xb408, 0xb409, 0xb40a, 0xb40b, 0xb40c, 0xb40d, - 0xb40e, 0xb40f, 0xb411, 0xb412, 0xb413, 0xb414, 0xb415, 0xb416, - 0xb417, 0xb419, 0xb41a, 0xb41b, 0xb41d, 0xb41e, 0xb41f, 0xb421, - 0xb422, 0xb423, 0xb424, 0xb425, 0xb426, 0xb427, 0xb42a, 0xb42c, - 0xb42d, 0xb42e, 0xb42f, 0xb430, 0xb431, 0xb432, 0xb433, 0xb435, - 0xb436, 0xb437, 0xb438, 0xb439, 0xb43a, 0xb43b, 0xb43c, 0xb43d, - 0xb43e, 0xb43f, 0xb440, 0xb441, 0xb442, 0xb443, 0xb444, 0x003f, - /* lead byte 8a */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb445, 0xb446, 0xb447, 0xb448, 0xb449, 0xb44a, 0xb44b, - 0xb44c, 0xb44d, 0xb44e, 0xb44f, 0xb452, 0xb453, 0xb455, 0xb456, - 0xb457, 0xb459, 0xb45a, 0xb45b, 0xb45c, 0xb45d, 0xb45e, 0xb45f, - 0xb462, 0xb464, 0xb466, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb467, 0xb468, 0xb469, 0xb46a, 0xb46b, 0xb46d, 0xb46e, - 0xb46f, 0xb470, 0xb471, 0xb472, 0xb473, 0xb474, 0xb475, 0xb476, - 0xb477, 0xb478, 0xb479, 0xb47a, 0xb47b, 0xb47c, 0xb47d, 0xb47e, - 0xb47f, 0xb481, 0xb482, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb483, 0xb484, 0xb485, 0xb486, 0xb487, 0xb489, 0xb48a, - 0xb48b, 0xb48c, 0xb48d, 0xb48e, 0xb48f, 0xb490, 0xb491, 0xb492, - 0xb493, 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xb499, 0xb49a, - 0xb49b, 0xb49c, 0xb49e, 0xb49f, 0xb4a0, 0xb4a1, 0xb4a2, 0xb4a3, - 0xb4a5, 0xb4a6, 0xb4a7, 0xb4a9, 0xb4aa, 0xb4ab, 0xb4ad, 0xb4ae, - 0xb4af, 0xb4b0, 0xb4b1, 0xb4b2, 0xb4b3, 0xb4b4, 0xb4b6, 0xb4b8, - 0xb4ba, 0xb4bb, 0xb4bc, 0xb4bd, 0xb4be, 0xb4bf, 0xb4c1, 0xb4c2, - 0xb4c3, 0xb4c5, 0xb4c6, 0xb4c7, 0xb4c9, 0xb4ca, 0xb4cb, 0xb4cc, - 0xb4cd, 0xb4ce, 0xb4cf, 0xb4d1, 0xb4d2, 0xb4d3, 0xb4d4, 0xb4d6, - 0xb4d7, 0xb4d8, 0xb4d9, 0xb4da, 0xb4db, 0xb4de, 0xb4df, 0xb4e1, - 0xb4e2, 0xb4e5, 0xb4e7, 0xb4e8, 0xb4e9, 0xb4ea, 0xb4eb, 0xb4ee, - 0xb4f0, 0xb4f2, 0xb4f3, 0xb4f4, 0xb4f5, 0xb4f6, 0xb4f7, 0xb4f9, - 0xb4fa, 0xb4fb, 0xb4fc, 0xb4fd, 0xb4fe, 0xb4ff, 0xb500, 0xb501, - 0xb502, 0xb503, 0xb504, 0xb505, 0xb506, 0xb507, 0xb508, 0xb509, - 0xb50a, 0xb50b, 0xb50c, 0xb50d, 0xb50e, 0xb50f, 0xb510, 0xb511, - 0xb512, 0xb513, 0xb516, 0xb517, 0xb519, 0xb51a, 0xb51d, 0x003f, - /* lead byte 8b */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb51e, 0xb51f, 0xb520, 0xb521, 0xb522, 0xb523, 0xb526, - 0xb52b, 0xb52c, 0xb52d, 0xb52e, 0xb52f, 0xb532, 0xb533, 0xb535, - 0xb536, 0xb537, 0xb539, 0xb53a, 0xb53b, 0xb53c, 0xb53d, 0xb53e, - 0xb53f, 0xb542, 0xb546, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb547, 0xb548, 0xb549, 0xb54a, 0xb54e, 0xb54f, 0xb551, - 0xb552, 0xb553, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559, 0xb55a, - 0xb55b, 0xb55e, 0xb562, 0xb563, 0xb564, 0xb565, 0xb566, 0xb567, - 0xb568, 0xb569, 0xb56a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb56b, 0xb56c, 0xb56d, 0xb56e, 0xb56f, 0xb570, 0xb571, - 0xb572, 0xb573, 0xb574, 0xb575, 0xb576, 0xb577, 0xb578, 0xb579, - 0xb57a, 0xb57b, 0xb57c, 0xb57d, 0xb57e, 0xb57f, 0xb580, 0xb581, - 0xb582, 0xb583, 0xb584, 0xb585, 0xb586, 0xb587, 0xb588, 0xb589, - 0xb58a, 0xb58b, 0xb58c, 0xb58d, 0xb58e, 0xb58f, 0xb590, 0xb591, - 0xb592, 0xb593, 0xb594, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, - 0xb59a, 0xb59b, 0xb59c, 0xb59d, 0xb59e, 0xb59f, 0xb5a2, 0xb5a3, - 0xb5a5, 0xb5a6, 0xb5a7, 0xb5a9, 0xb5ac, 0xb5ad, 0xb5ae, 0xb5af, - 0xb5b2, 0xb5b6, 0xb5b7, 0xb5b8, 0xb5b9, 0xb5ba, 0xb5be, 0xb5bf, - 0xb5c1, 0xb5c2, 0xb5c3, 0xb5c5, 0xb5c6, 0xb5c7, 0xb5c8, 0xb5c9, - 0xb5ca, 0xb5cb, 0xb5ce, 0xb5d2, 0xb5d3, 0xb5d4, 0xb5d5, 0xb5d6, - 0xb5d7, 0xb5d9, 0xb5da, 0xb5db, 0xb5dc, 0xb5dd, 0xb5de, 0xb5df, - 0xb5e0, 0xb5e1, 0xb5e2, 0xb5e3, 0xb5e4, 0xb5e5, 0xb5e6, 0xb5e7, - 0xb5e8, 0xb5e9, 0xb5ea, 0xb5eb, 0xb5ed, 0xb5ee, 0xb5ef, 0xb5f0, - 0xb5f1, 0xb5f2, 0xb5f3, 0xb5f4, 0xb5f5, 0xb5f6, 0xb5f7, 0xb5f8, - 0xb5f9, 0xb5fa, 0xb5fb, 0xb5fc, 0xb5fd, 0xb5fe, 0xb5ff, 0x003f, - /* lead byte 8c */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb600, 0xb601, 0xb602, 0xb603, 0xb604, 0xb605, 0xb606, - 0xb607, 0xb608, 0xb609, 0xb60a, 0xb60b, 0xb60c, 0xb60d, 0xb60e, - 0xb60f, 0xb612, 0xb613, 0xb615, 0xb616, 0xb617, 0xb619, 0xb61a, - 0xb61b, 0xb61c, 0xb61d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb61e, 0xb61f, 0xb620, 0xb621, 0xb622, 0xb623, 0xb624, - 0xb626, 0xb627, 0xb628, 0xb629, 0xb62a, 0xb62b, 0xb62d, 0xb62e, - 0xb62f, 0xb630, 0xb631, 0xb632, 0xb633, 0xb635, 0xb636, 0xb637, - 0xb638, 0xb639, 0xb63a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb63b, 0xb63c, 0xb63d, 0xb63e, 0xb63f, 0xb640, 0xb641, - 0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xb647, 0xb649, 0xb64a, - 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651, 0xb652, - 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, 0xb65a, - 0xb65b, 0xb65c, 0xb65d, 0xb65e, 0xb65f, 0xb660, 0xb661, 0xb662, - 0xb663, 0xb665, 0xb666, 0xb667, 0xb669, 0xb66a, 0xb66b, 0xb66c, - 0xb66d, 0xb66e, 0xb66f, 0xb670, 0xb671, 0xb672, 0xb673, 0xb674, - 0xb675, 0xb676, 0xb677, 0xb678, 0xb679, 0xb67a, 0xb67b, 0xb67c, - 0xb67d, 0xb67e, 0xb67f, 0xb680, 0xb681, 0xb682, 0xb683, 0xb684, - 0xb685, 0xb686, 0xb687, 0xb688, 0xb689, 0xb68a, 0xb68b, 0xb68c, - 0xb68d, 0xb68e, 0xb68f, 0xb690, 0xb691, 0xb692, 0xb693, 0xb694, - 0xb695, 0xb696, 0xb697, 0xb698, 0xb699, 0xb69a, 0xb69b, 0xb69e, - 0xb69f, 0xb6a1, 0xb6a2, 0xb6a3, 0xb6a5, 0xb6a6, 0xb6a7, 0xb6a8, - 0xb6a9, 0xb6aa, 0xb6ad, 0xb6ae, 0xb6af, 0xb6b0, 0xb6b2, 0xb6b3, - 0xb6b4, 0xb6b5, 0xb6b6, 0xb6b7, 0xb6b8, 0xb6b9, 0xb6ba, 0xb6bb, - 0xb6bc, 0xb6bd, 0xb6be, 0xb6bf, 0xb6c0, 0xb6c1, 0xb6c2, 0x003f, - /* lead byte 8d */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb6c3, 0xb6c4, 0xb6c5, 0xb6c6, 0xb6c7, 0xb6c8, 0xb6c9, - 0xb6ca, 0xb6cb, 0xb6cc, 0xb6cd, 0xb6ce, 0xb6cf, 0xb6d0, 0xb6d1, - 0xb6d2, 0xb6d3, 0xb6d5, 0xb6d6, 0xb6d7, 0xb6d8, 0xb6d9, 0xb6da, - 0xb6db, 0xb6dc, 0xb6dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb6de, 0xb6df, 0xb6e0, 0xb6e1, 0xb6e2, 0xb6e3, 0xb6e4, - 0xb6e5, 0xb6e6, 0xb6e7, 0xb6e8, 0xb6e9, 0xb6ea, 0xb6eb, 0xb6ec, - 0xb6ed, 0xb6ee, 0xb6ef, 0xb6f1, 0xb6f2, 0xb6f3, 0xb6f5, 0xb6f6, - 0xb6f7, 0xb6f9, 0xb6fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb6fb, 0xb6fc, 0xb6fd, 0xb6fe, 0xb6ff, 0xb702, 0xb703, - 0xb704, 0xb706, 0xb707, 0xb708, 0xb709, 0xb70a, 0xb70b, 0xb70c, - 0xb70d, 0xb70e, 0xb70f, 0xb710, 0xb711, 0xb712, 0xb713, 0xb714, - 0xb715, 0xb716, 0xb717, 0xb718, 0xb719, 0xb71a, 0xb71b, 0xb71c, - 0xb71d, 0xb71e, 0xb71f, 0xb720, 0xb721, 0xb722, 0xb723, 0xb724, - 0xb725, 0xb726, 0xb727, 0xb72a, 0xb72b, 0xb72d, 0xb72e, 0xb731, - 0xb732, 0xb733, 0xb734, 0xb735, 0xb736, 0xb737, 0xb73a, 0xb73c, - 0xb73d, 0xb73e, 0xb73f, 0xb740, 0xb741, 0xb742, 0xb743, 0xb745, - 0xb746, 0xb747, 0xb749, 0xb74a, 0xb74b, 0xb74d, 0xb74e, 0xb74f, - 0xb750, 0xb751, 0xb752, 0xb753, 0xb756, 0xb757, 0xb758, 0xb759, - 0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb75e, 0xb75f, 0xb761, 0xb762, - 0xb763, 0xb765, 0xb766, 0xb767, 0xb769, 0xb76a, 0xb76b, 0xb76c, - 0xb76d, 0xb76e, 0xb76f, 0xb772, 0xb774, 0xb776, 0xb777, 0xb778, - 0xb779, 0xb77a, 0xb77b, 0xb77e, 0xb77f, 0xb781, 0xb782, 0xb783, - 0xb785, 0xb786, 0xb787, 0xb788, 0xb789, 0xb78a, 0xb78b, 0xb78e, - 0xb793, 0xb794, 0xb795, 0xb79a, 0xb79b, 0xb79d, 0xb79e, 0x003f, - /* lead byte 8e */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb79f, 0xb7a1, 0xb7a2, 0xb7a3, 0xb7a4, 0xb7a5, 0xb7a6, - 0xb7a7, 0xb7aa, 0xb7ae, 0xb7af, 0xb7b0, 0xb7b1, 0xb7b2, 0xb7b3, - 0xb7b6, 0xb7b7, 0xb7b9, 0xb7ba, 0xb7bb, 0xb7bc, 0xb7bd, 0xb7be, - 0xb7bf, 0xb7c0, 0xb7c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb7c2, 0xb7c3, 0xb7c4, 0xb7c5, 0xb7c6, 0xb7c8, 0xb7ca, - 0xb7cb, 0xb7cc, 0xb7cd, 0xb7ce, 0xb7cf, 0xb7d0, 0xb7d1, 0xb7d2, - 0xb7d3, 0xb7d4, 0xb7d5, 0xb7d6, 0xb7d7, 0xb7d8, 0xb7d9, 0xb7da, - 0xb7db, 0xb7dc, 0xb7dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb7de, 0xb7df, 0xb7e0, 0xb7e1, 0xb7e2, 0xb7e3, 0xb7e4, - 0xb7e5, 0xb7e6, 0xb7e7, 0xb7e8, 0xb7e9, 0xb7ea, 0xb7eb, 0xb7ee, - 0xb7ef, 0xb7f1, 0xb7f2, 0xb7f3, 0xb7f5, 0xb7f6, 0xb7f7, 0xb7f8, - 0xb7f9, 0xb7fa, 0xb7fb, 0xb7fe, 0xb802, 0xb803, 0xb804, 0xb805, - 0xb806, 0xb80a, 0xb80b, 0xb80d, 0xb80e, 0xb80f, 0xb811, 0xb812, - 0xb813, 0xb814, 0xb815, 0xb816, 0xb817, 0xb81a, 0xb81c, 0xb81e, - 0xb81f, 0xb820, 0xb821, 0xb822, 0xb823, 0xb826, 0xb827, 0xb829, - 0xb82a, 0xb82b, 0xb82d, 0xb82e, 0xb82f, 0xb830, 0xb831, 0xb832, - 0xb833, 0xb836, 0xb83a, 0xb83b, 0xb83c, 0xb83d, 0xb83e, 0xb83f, - 0xb841, 0xb842, 0xb843, 0xb845, 0xb846, 0xb847, 0xb848, 0xb849, - 0xb84a, 0xb84b, 0xb84c, 0xb84d, 0xb84e, 0xb84f, 0xb850, 0xb852, - 0xb854, 0xb855, 0xb856, 0xb857, 0xb858, 0xb859, 0xb85a, 0xb85b, - 0xb85e, 0xb85f, 0xb861, 0xb862, 0xb863, 0xb865, 0xb866, 0xb867, - 0xb868, 0xb869, 0xb86a, 0xb86b, 0xb86e, 0xb870, 0xb872, 0xb873, - 0xb874, 0xb875, 0xb876, 0xb877, 0xb879, 0xb87a, 0xb87b, 0xb87d, - 0xb87e, 0xb87f, 0xb880, 0xb881, 0xb882, 0xb883, 0xb884, 0x003f, - /* lead byte 8f */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb885, 0xb886, 0xb887, 0xb888, 0xb889, 0xb88a, 0xb88b, - 0xb88c, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb892, 0xb893, 0xb894, - 0xb895, 0xb896, 0xb897, 0xb898, 0xb899, 0xb89a, 0xb89b, 0xb89c, - 0xb89d, 0xb89e, 0xb89f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb8a0, 0xb8a1, 0xb8a2, 0xb8a3, 0xb8a4, 0xb8a5, 0xb8a6, - 0xb8a7, 0xb8a9, 0xb8aa, 0xb8ab, 0xb8ac, 0xb8ad, 0xb8ae, 0xb8af, - 0xb8b1, 0xb8b2, 0xb8b3, 0xb8b5, 0xb8b6, 0xb8b7, 0xb8b9, 0xb8ba, - 0xb8bb, 0xb8bc, 0xb8bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb8be, 0xb8bf, 0xb8c2, 0xb8c4, 0xb8c6, 0xb8c7, 0xb8c8, - 0xb8c9, 0xb8ca, 0xb8cb, 0xb8cd, 0xb8ce, 0xb8cf, 0xb8d1, 0xb8d2, - 0xb8d3, 0xb8d5, 0xb8d6, 0xb8d7, 0xb8d8, 0xb8d9, 0xb8da, 0xb8db, - 0xb8dc, 0xb8de, 0xb8e0, 0xb8e2, 0xb8e3, 0xb8e4, 0xb8e5, 0xb8e6, - 0xb8e7, 0xb8ea, 0xb8eb, 0xb8ed, 0xb8ee, 0xb8ef, 0xb8f1, 0xb8f2, - 0xb8f3, 0xb8f4, 0xb8f5, 0xb8f6, 0xb8f7, 0xb8fa, 0xb8fc, 0xb8fe, - 0xb8ff, 0xb900, 0xb901, 0xb902, 0xb903, 0xb905, 0xb906, 0xb907, - 0xb908, 0xb909, 0xb90a, 0xb90b, 0xb90c, 0xb90d, 0xb90e, 0xb90f, - 0xb910, 0xb911, 0xb912, 0xb913, 0xb914, 0xb915, 0xb916, 0xb917, - 0xb919, 0xb91a, 0xb91b, 0xb91c, 0xb91d, 0xb91e, 0xb91f, 0xb921, - 0xb922, 0xb923, 0xb924, 0xb925, 0xb926, 0xb927, 0xb928, 0xb929, - 0xb92a, 0xb92b, 0xb92c, 0xb92d, 0xb92e, 0xb92f, 0xb930, 0xb931, - 0xb932, 0xb933, 0xb934, 0xb935, 0xb936, 0xb937, 0xb938, 0xb939, - 0xb93a, 0xb93b, 0xb93e, 0xb93f, 0xb941, 0xb942, 0xb943, 0xb945, - 0xb946, 0xb947, 0xb948, 0xb949, 0xb94a, 0xb94b, 0xb94d, 0xb94e, - 0xb950, 0xb952, 0xb953, 0xb954, 0xb955, 0xb956, 0xb957, 0x003f, - /* lead byte 90 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb95a, 0xb95b, 0xb95d, 0xb95e, 0xb95f, 0xb961, 0xb962, - 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xb96a, 0xb96c, 0xb96e, - 0xb96f, 0xb970, 0xb971, 0xb972, 0xb973, 0xb976, 0xb977, 0xb979, - 0xb97a, 0xb97b, 0xb97d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb97e, 0xb97f, 0xb980, 0xb981, 0xb982, 0xb983, 0xb986, - 0xb988, 0xb98b, 0xb98c, 0xb98f, 0xb990, 0xb991, 0xb992, 0xb993, - 0xb994, 0xb995, 0xb996, 0xb997, 0xb998, 0xb999, 0xb99a, 0xb99b, - 0xb99c, 0xb99d, 0xb99e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb99f, 0xb9a0, 0xb9a1, 0xb9a2, 0xb9a3, 0xb9a4, 0xb9a5, - 0xb9a6, 0xb9a7, 0xb9a8, 0xb9a9, 0xb9aa, 0xb9ab, 0xb9ae, 0xb9af, - 0xb9b1, 0xb9b2, 0xb9b3, 0xb9b5, 0xb9b6, 0xb9b7, 0xb9b8, 0xb9b9, - 0xb9ba, 0xb9bb, 0xb9be, 0xb9c0, 0xb9c2, 0xb9c3, 0xb9c4, 0xb9c5, - 0xb9c6, 0xb9c7, 0xb9ca, 0xb9cb, 0xb9cd, 0xb9d3, 0xb9d4, 0xb9d5, - 0xb9d6, 0xb9d7, 0xb9da, 0xb9dc, 0xb9df, 0xb9e0, 0xb9e2, 0xb9e6, - 0xb9e7, 0xb9e9, 0xb9ea, 0xb9eb, 0xb9ed, 0xb9ee, 0xb9ef, 0xb9f0, - 0xb9f1, 0xb9f2, 0xb9f3, 0xb9f6, 0xb9fb, 0xb9fc, 0xb9fd, 0xb9fe, - 0xb9ff, 0xba02, 0xba03, 0xba04, 0xba05, 0xba06, 0xba07, 0xba09, - 0xba0a, 0xba0b, 0xba0c, 0xba0d, 0xba0e, 0xba0f, 0xba10, 0xba11, - 0xba12, 0xba13, 0xba14, 0xba16, 0xba17, 0xba18, 0xba19, 0xba1a, - 0xba1b, 0xba1c, 0xba1d, 0xba1e, 0xba1f, 0xba20, 0xba21, 0xba22, - 0xba23, 0xba24, 0xba25, 0xba26, 0xba27, 0xba28, 0xba29, 0xba2a, - 0xba2b, 0xba2c, 0xba2d, 0xba2e, 0xba2f, 0xba30, 0xba31, 0xba32, - 0xba33, 0xba34, 0xba35, 0xba36, 0xba37, 0xba3a, 0xba3b, 0xba3d, - 0xba3e, 0xba3f, 0xba41, 0xba43, 0xba44, 0xba45, 0xba46, 0x003f, - /* lead byte 91 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xba47, 0xba4a, 0xba4c, 0xba4f, 0xba50, 0xba51, 0xba52, - 0xba56, 0xba57, 0xba59, 0xba5a, 0xba5b, 0xba5d, 0xba5e, 0xba5f, - 0xba60, 0xba61, 0xba62, 0xba63, 0xba66, 0xba6a, 0xba6b, 0xba6c, - 0xba6d, 0xba6e, 0xba6f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xba72, 0xba73, 0xba75, 0xba76, 0xba77, 0xba79, 0xba7a, - 0xba7b, 0xba7c, 0xba7d, 0xba7e, 0xba7f, 0xba80, 0xba81, 0xba82, - 0xba86, 0xba88, 0xba89, 0xba8a, 0xba8b, 0xba8d, 0xba8e, 0xba8f, - 0xba90, 0xba91, 0xba92, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, - 0xba9a, 0xba9b, 0xba9c, 0xba9d, 0xba9e, 0xba9f, 0xbaa0, 0xbaa1, - 0xbaa2, 0xbaa3, 0xbaa4, 0xbaa5, 0xbaa6, 0xbaa7, 0xbaaa, 0xbaad, - 0xbaae, 0xbaaf, 0xbab1, 0xbab3, 0xbab4, 0xbab5, 0xbab6, 0xbab7, - 0xbaba, 0xbabc, 0xbabe, 0xbabf, 0xbac0, 0xbac1, 0xbac2, 0xbac3, - 0xbac5, 0xbac6, 0xbac7, 0xbac9, 0xbaca, 0xbacb, 0xbacc, 0xbacd, - 0xbace, 0xbacf, 0xbad0, 0xbad1, 0xbad2, 0xbad3, 0xbad4, 0xbad5, - 0xbad6, 0xbad7, 0xbada, 0xbadb, 0xbadc, 0xbadd, 0xbade, 0xbadf, - 0xbae0, 0xbae1, 0xbae2, 0xbae3, 0xbae4, 0xbae5, 0xbae6, 0xbae7, - 0xbae8, 0xbae9, 0xbaea, 0xbaeb, 0xbaec, 0xbaed, 0xbaee, 0xbaef, - 0xbaf0, 0xbaf1, 0xbaf2, 0xbaf3, 0xbaf4, 0xbaf5, 0xbaf6, 0xbaf7, - 0xbaf8, 0xbaf9, 0xbafa, 0xbafb, 0xbafd, 0xbafe, 0xbaff, 0xbb01, - 0xbb02, 0xbb03, 0xbb05, 0xbb06, 0xbb07, 0xbb08, 0xbb09, 0xbb0a, - 0xbb0b, 0xbb0c, 0xbb0e, 0xbb10, 0xbb12, 0xbb13, 0xbb14, 0xbb15, - 0xbb16, 0xbb17, 0xbb19, 0xbb1a, 0xbb1b, 0xbb1d, 0xbb1e, 0xbb1f, - 0xbb21, 0xbb22, 0xbb23, 0xbb24, 0xbb25, 0xbb26, 0xbb27, 0x003f, - /* lead byte 92 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbb28, 0xbb2a, 0xbb2c, 0xbb2d, 0xbb2e, 0xbb2f, 0xbb30, - 0xbb31, 0xbb32, 0xbb33, 0xbb37, 0xbb39, 0xbb3a, 0xbb3f, 0xbb40, - 0xbb41, 0xbb42, 0xbb43, 0xbb46, 0xbb48, 0xbb4a, 0xbb4b, 0xbb4c, - 0xbb4e, 0xbb51, 0xbb52, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbb53, 0xbb55, 0xbb56, 0xbb57, 0xbb59, 0xbb5a, 0xbb5b, - 0xbb5c, 0xbb5d, 0xbb5e, 0xbb5f, 0xbb60, 0xbb62, 0xbb64, 0xbb65, - 0xbb66, 0xbb67, 0xbb68, 0xbb69, 0xbb6a, 0xbb6b, 0xbb6d, 0xbb6e, - 0xbb6f, 0xbb70, 0xbb71, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbb72, 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xbb77, 0xbb78, - 0xbb79, 0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb7e, 0xbb7f, 0xbb80, - 0xbb81, 0xbb82, 0xbb83, 0xbb84, 0xbb85, 0xbb86, 0xbb87, 0xbb89, - 0xbb8a, 0xbb8b, 0xbb8d, 0xbb8e, 0xbb8f, 0xbb91, 0xbb92, 0xbb93, - 0xbb94, 0xbb95, 0xbb96, 0xbb97, 0xbb98, 0xbb99, 0xbb9a, 0xbb9b, - 0xbb9c, 0xbb9d, 0xbb9e, 0xbb9f, 0xbba0, 0xbba1, 0xbba2, 0xbba3, - 0xbba5, 0xbba6, 0xbba7, 0xbba9, 0xbbaa, 0xbbab, 0xbbad, 0xbbae, - 0xbbaf, 0xbbb0, 0xbbb1, 0xbbb2, 0xbbb3, 0xbbb5, 0xbbb6, 0xbbb8, - 0xbbb9, 0xbbba, 0xbbbb, 0xbbbc, 0xbbbd, 0xbbbe, 0xbbbf, 0xbbc1, - 0xbbc2, 0xbbc3, 0xbbc5, 0xbbc6, 0xbbc7, 0xbbc9, 0xbbca, 0xbbcb, - 0xbbcc, 0xbbcd, 0xbbce, 0xbbcf, 0xbbd1, 0xbbd2, 0xbbd4, 0xbbd5, - 0xbbd6, 0xbbd7, 0xbbd8, 0xbbd9, 0xbbda, 0xbbdb, 0xbbdc, 0xbbdd, - 0xbbde, 0xbbdf, 0xbbe0, 0xbbe1, 0xbbe2, 0xbbe3, 0xbbe4, 0xbbe5, - 0xbbe6, 0xbbe7, 0xbbe8, 0xbbe9, 0xbbea, 0xbbeb, 0xbbec, 0xbbed, - 0xbbee, 0xbbef, 0xbbf0, 0xbbf1, 0xbbf2, 0xbbf3, 0xbbf4, 0xbbf5, - 0xbbf6, 0xbbf7, 0xbbfa, 0xbbfb, 0xbbfd, 0xbbfe, 0xbc01, 0x003f, - /* lead byte 93 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbc03, 0xbc04, 0xbc05, 0xbc06, 0xbc07, 0xbc0a, 0xbc0e, - 0xbc10, 0xbc12, 0xbc13, 0xbc19, 0xbc1a, 0xbc20, 0xbc21, 0xbc22, - 0xbc23, 0xbc26, 0xbc28, 0xbc2a, 0xbc2b, 0xbc2c, 0xbc2e, 0xbc2f, - 0xbc32, 0xbc33, 0xbc35, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbc36, 0xbc37, 0xbc39, 0xbc3a, 0xbc3b, 0xbc3c, 0xbc3d, - 0xbc3e, 0xbc3f, 0xbc42, 0xbc46, 0xbc47, 0xbc48, 0xbc4a, 0xbc4b, - 0xbc4e, 0xbc4f, 0xbc51, 0xbc52, 0xbc53, 0xbc54, 0xbc55, 0xbc56, - 0xbc57, 0xbc58, 0xbc59, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbc5a, 0xbc5b, 0xbc5c, 0xbc5e, 0xbc5f, 0xbc60, 0xbc61, - 0xbc62, 0xbc63, 0xbc64, 0xbc65, 0xbc66, 0xbc67, 0xbc68, 0xbc69, - 0xbc6a, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, 0xbc6f, 0xbc70, 0xbc71, - 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, 0xbc77, 0xbc78, 0xbc79, - 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, 0xbc7e, 0xbc7f, 0xbc80, 0xbc81, - 0xbc82, 0xbc83, 0xbc86, 0xbc87, 0xbc89, 0xbc8a, 0xbc8d, 0xbc8f, - 0xbc90, 0xbc91, 0xbc92, 0xbc93, 0xbc96, 0xbc98, 0xbc9b, 0xbc9c, - 0xbc9d, 0xbc9e, 0xbc9f, 0xbca2, 0xbca3, 0xbca5, 0xbca6, 0xbca9, - 0xbcaa, 0xbcab, 0xbcac, 0xbcad, 0xbcae, 0xbcaf, 0xbcb2, 0xbcb6, - 0xbcb7, 0xbcb8, 0xbcb9, 0xbcba, 0xbcbb, 0xbcbe, 0xbcbf, 0xbcc1, - 0xbcc2, 0xbcc3, 0xbcc5, 0xbcc6, 0xbcc7, 0xbcc8, 0xbcc9, 0xbcca, - 0xbccb, 0xbccc, 0xbcce, 0xbcd2, 0xbcd3, 0xbcd4, 0xbcd6, 0xbcd7, - 0xbcd9, 0xbcda, 0xbcdb, 0xbcdd, 0xbcde, 0xbcdf, 0xbce0, 0xbce1, - 0xbce2, 0xbce3, 0xbce4, 0xbce5, 0xbce6, 0xbce7, 0xbce8, 0xbce9, - 0xbcea, 0xbceb, 0xbcec, 0xbced, 0xbcee, 0xbcef, 0xbcf0, 0xbcf1, - 0xbcf2, 0xbcf3, 0xbcf7, 0xbcf9, 0xbcfa, 0xbcfb, 0xbcfd, 0x003f, - /* lead byte 94 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbcfe, 0xbcff, 0xbd00, 0xbd01, 0xbd02, 0xbd03, 0xbd06, - 0xbd08, 0xbd0a, 0xbd0b, 0xbd0c, 0xbd0d, 0xbd0e, 0xbd0f, 0xbd11, - 0xbd12, 0xbd13, 0xbd15, 0xbd16, 0xbd17, 0xbd18, 0xbd19, 0xbd1a, - 0xbd1b, 0xbd1c, 0xbd1d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbd1e, 0xbd1f, 0xbd20, 0xbd21, 0xbd22, 0xbd23, 0xbd25, - 0xbd26, 0xbd27, 0xbd28, 0xbd29, 0xbd2a, 0xbd2b, 0xbd2d, 0xbd2e, - 0xbd2f, 0xbd30, 0xbd31, 0xbd32, 0xbd33, 0xbd34, 0xbd35, 0xbd36, - 0xbd37, 0xbd38, 0xbd39, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbd3a, 0xbd3b, 0xbd3c, 0xbd3d, 0xbd3e, 0xbd3f, 0xbd41, - 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd4a, 0xbd4b, - 0xbd4d, 0xbd4e, 0xbd4f, 0xbd51, 0xbd52, 0xbd53, 0xbd54, 0xbd55, - 0xbd56, 0xbd57, 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd5e, 0xbd5f, - 0xbd60, 0xbd61, 0xbd62, 0xbd63, 0xbd65, 0xbd66, 0xbd67, 0xbd69, - 0xbd6a, 0xbd6b, 0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, - 0xbd72, 0xbd73, 0xbd74, 0xbd75, 0xbd76, 0xbd77, 0xbd78, 0xbd79, - 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xbd7f, 0xbd82, 0xbd83, - 0xbd85, 0xbd86, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd92, - 0xbd94, 0xbd96, 0xbd97, 0xbd98, 0xbd9b, 0xbd9d, 0xbd9e, 0xbd9f, - 0xbda0, 0xbda1, 0xbda2, 0xbda3, 0xbda5, 0xbda6, 0xbda7, 0xbda8, - 0xbda9, 0xbdaa, 0xbdab, 0xbdac, 0xbdad, 0xbdae, 0xbdaf, 0xbdb1, - 0xbdb2, 0xbdb3, 0xbdb4, 0xbdb5, 0xbdb6, 0xbdb7, 0xbdb9, 0xbdba, - 0xbdbb, 0xbdbc, 0xbdbd, 0xbdbe, 0xbdbf, 0xbdc0, 0xbdc1, 0xbdc2, - 0xbdc3, 0xbdc4, 0xbdc5, 0xbdc6, 0xbdc7, 0xbdc8, 0xbdc9, 0xbdca, - 0xbdcb, 0xbdcc, 0xbdcd, 0xbdce, 0xbdcf, 0xbdd0, 0xbdd1, 0x003f, - /* lead byte 95 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbdd2, 0xbdd3, 0xbdd6, 0xbdd7, 0xbdd9, 0xbdda, 0xbddb, - 0xbddd, 0xbdde, 0xbddf, 0xbde0, 0xbde1, 0xbde2, 0xbde3, 0xbde4, - 0xbde5, 0xbde6, 0xbde7, 0xbde8, 0xbdea, 0xbdeb, 0xbdec, 0xbded, - 0xbdee, 0xbdef, 0xbdf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbdf2, 0xbdf3, 0xbdf5, 0xbdf6, 0xbdf7, 0xbdf9, 0xbdfa, - 0xbdfb, 0xbdfc, 0xbdfd, 0xbdfe, 0xbdff, 0xbe01, 0xbe02, 0xbe04, - 0xbe06, 0xbe07, 0xbe08, 0xbe09, 0xbe0a, 0xbe0b, 0xbe0e, 0xbe0f, - 0xbe11, 0xbe12, 0xbe13, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbe15, 0xbe16, 0xbe17, 0xbe18, 0xbe19, 0xbe1a, 0xbe1b, - 0xbe1e, 0xbe20, 0xbe21, 0xbe22, 0xbe23, 0xbe24, 0xbe25, 0xbe26, - 0xbe27, 0xbe28, 0xbe29, 0xbe2a, 0xbe2b, 0xbe2c, 0xbe2d, 0xbe2e, - 0xbe2f, 0xbe30, 0xbe31, 0xbe32, 0xbe33, 0xbe34, 0xbe35, 0xbe36, - 0xbe37, 0xbe38, 0xbe39, 0xbe3a, 0xbe3b, 0xbe3c, 0xbe3d, 0xbe3e, - 0xbe3f, 0xbe40, 0xbe41, 0xbe42, 0xbe43, 0xbe46, 0xbe47, 0xbe49, - 0xbe4a, 0xbe4b, 0xbe4d, 0xbe4f, 0xbe50, 0xbe51, 0xbe52, 0xbe53, - 0xbe56, 0xbe58, 0xbe5c, 0xbe5d, 0xbe5e, 0xbe5f, 0xbe62, 0xbe63, - 0xbe65, 0xbe66, 0xbe67, 0xbe69, 0xbe6b, 0xbe6c, 0xbe6d, 0xbe6e, - 0xbe6f, 0xbe72, 0xbe76, 0xbe77, 0xbe78, 0xbe79, 0xbe7a, 0xbe7e, - 0xbe7f, 0xbe81, 0xbe82, 0xbe83, 0xbe85, 0xbe86, 0xbe87, 0xbe88, - 0xbe89, 0xbe8a, 0xbe8b, 0xbe8e, 0xbe92, 0xbe93, 0xbe94, 0xbe95, - 0xbe96, 0xbe97, 0xbe9a, 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, 0xbe9f, - 0xbea0, 0xbea1, 0xbea2, 0xbea3, 0xbea4, 0xbea5, 0xbea6, 0xbea7, - 0xbea9, 0xbeaa, 0xbeab, 0xbeac, 0xbead, 0xbeae, 0xbeaf, 0xbeb0, - 0xbeb1, 0xbeb2, 0xbeb3, 0xbeb4, 0xbeb5, 0xbeb6, 0xbeb7, 0x003f, - /* lead byte 96 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbeb8, 0xbeb9, 0xbeba, 0xbebb, 0xbebc, 0xbebd, 0xbebe, - 0xbebf, 0xbec0, 0xbec1, 0xbec2, 0xbec3, 0xbec4, 0xbec5, 0xbec6, - 0xbec7, 0xbec8, 0xbec9, 0xbeca, 0xbecb, 0xbecc, 0xbecd, 0xbece, - 0xbecf, 0xbed2, 0xbed3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbed5, 0xbed6, 0xbed9, 0xbeda, 0xbedb, 0xbedc, 0xbedd, - 0xbede, 0xbedf, 0xbee1, 0xbee2, 0xbee6, 0xbee7, 0xbee8, 0xbee9, - 0xbeea, 0xbeeb, 0xbeed, 0xbeee, 0xbeef, 0xbef0, 0xbef1, 0xbef2, - 0xbef3, 0xbef4, 0xbef5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbef6, 0xbef7, 0xbef8, 0xbef9, 0xbefa, 0xbefb, 0xbefc, - 0xbefd, 0xbefe, 0xbeff, 0xbf00, 0xbf02, 0xbf03, 0xbf04, 0xbf05, - 0xbf06, 0xbf07, 0xbf0a, 0xbf0b, 0xbf0c, 0xbf0d, 0xbf0e, 0xbf0f, - 0xbf10, 0xbf11, 0xbf12, 0xbf13, 0xbf14, 0xbf15, 0xbf16, 0xbf17, - 0xbf1a, 0xbf1e, 0xbf1f, 0xbf20, 0xbf21, 0xbf22, 0xbf23, 0xbf24, - 0xbf25, 0xbf26, 0xbf27, 0xbf28, 0xbf29, 0xbf2a, 0xbf2b, 0xbf2c, - 0xbf2d, 0xbf2e, 0xbf2f, 0xbf30, 0xbf31, 0xbf32, 0xbf33, 0xbf34, - 0xbf35, 0xbf36, 0xbf37, 0xbf38, 0xbf39, 0xbf3a, 0xbf3b, 0xbf3c, - 0xbf3d, 0xbf3e, 0xbf3f, 0xbf42, 0xbf43, 0xbf45, 0xbf46, 0xbf47, - 0xbf49, 0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf52, - 0xbf53, 0xbf54, 0xbf56, 0xbf57, 0xbf58, 0xbf59, 0xbf5a, 0xbf5b, - 0xbf5c, 0xbf5d, 0xbf5e, 0xbf5f, 0xbf60, 0xbf61, 0xbf62, 0xbf63, - 0xbf64, 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, 0xbf6a, 0xbf6b, - 0xbf6c, 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, 0xbf72, 0xbf73, - 0xbf74, 0xbf75, 0xbf76, 0xbf77, 0xbf78, 0xbf79, 0xbf7a, 0xbf7b, - 0xbf7c, 0xbf7d, 0xbf7e, 0xbf7f, 0xbf80, 0xbf81, 0xbf82, 0x003f, - /* lead byte 97 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xbf87, 0xbf88, 0xbf89, - 0xbf8a, 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, - 0xbf92, 0xbf93, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, - 0xbf9b, 0xbf9c, 0xbf9d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbf9e, 0xbf9f, 0xbfa0, 0xbfa1, 0xbfa2, 0xbfa3, 0xbfa4, - 0xbfa5, 0xbfa6, 0xbfa7, 0xbfa8, 0xbfa9, 0xbfaa, 0xbfab, 0xbfac, - 0xbfad, 0xbfae, 0xbfaf, 0xbfb1, 0xbfb2, 0xbfb3, 0xbfb4, 0xbfb5, - 0xbfb6, 0xbfb7, 0xbfb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xbfb9, 0xbfba, 0xbfbb, 0xbfbc, 0xbfbd, 0xbfbe, 0xbfbf, - 0xbfc0, 0xbfc1, 0xbfc2, 0xbfc3, 0xbfc4, 0xbfc6, 0xbfc7, 0xbfc8, - 0xbfc9, 0xbfca, 0xbfcb, 0xbfce, 0xbfcf, 0xbfd1, 0xbfd2, 0xbfd3, - 0xbfd5, 0xbfd6, 0xbfd7, 0xbfd8, 0xbfd9, 0xbfda, 0xbfdb, 0xbfdd, - 0xbfde, 0xbfe0, 0xbfe2, 0xbfe3, 0xbfe4, 0xbfe5, 0xbfe6, 0xbfe7, - 0xbfe8, 0xbfe9, 0xbfea, 0xbfeb, 0xbfec, 0xbfed, 0xbfee, 0xbfef, - 0xbff0, 0xbff1, 0xbff2, 0xbff3, 0xbff4, 0xbff5, 0xbff6, 0xbff7, - 0xbff8, 0xbff9, 0xbffa, 0xbffb, 0xbffc, 0xbffd, 0xbffe, 0xbfff, - 0xc000, 0xc001, 0xc002, 0xc003, 0xc004, 0xc005, 0xc006, 0xc007, - 0xc008, 0xc009, 0xc00a, 0xc00b, 0xc00c, 0xc00d, 0xc00e, 0xc00f, - 0xc010, 0xc011, 0xc012, 0xc013, 0xc014, 0xc015, 0xc016, 0xc017, - 0xc018, 0xc019, 0xc01a, 0xc01b, 0xc01c, 0xc01d, 0xc01e, 0xc01f, - 0xc020, 0xc021, 0xc022, 0xc023, 0xc024, 0xc025, 0xc026, 0xc027, - 0xc028, 0xc029, 0xc02a, 0xc02b, 0xc02c, 0xc02d, 0xc02e, 0xc02f, - 0xc030, 0xc031, 0xc032, 0xc033, 0xc034, 0xc035, 0xc036, 0xc037, - 0xc038, 0xc039, 0xc03a, 0xc03b, 0xc03d, 0xc03e, 0xc03f, 0x003f, - /* lead byte 98 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc040, 0xc041, 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, - 0xc047, 0xc048, 0xc049, 0xc04a, 0xc04b, 0xc04c, 0xc04d, 0xc04e, - 0xc04f, 0xc050, 0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, - 0xc059, 0xc05a, 0xc05b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc05d, 0xc05e, 0xc05f, 0xc061, 0xc062, 0xc063, 0xc064, - 0xc065, 0xc066, 0xc067, 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, - 0xc06f, 0xc070, 0xc071, 0xc072, 0xc073, 0xc074, 0xc075, 0xc076, - 0xc077, 0xc078, 0xc079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc07a, 0xc07b, 0xc07c, 0xc07d, 0xc07e, 0xc07f, 0xc080, - 0xc081, 0xc082, 0xc083, 0xc084, 0xc085, 0xc086, 0xc087, 0xc088, - 0xc089, 0xc08a, 0xc08b, 0xc08c, 0xc08d, 0xc08e, 0xc08f, 0xc092, - 0xc093, 0xc095, 0xc096, 0xc097, 0xc099, 0xc09a, 0xc09b, 0xc09c, - 0xc09d, 0xc09e, 0xc09f, 0xc0a2, 0xc0a4, 0xc0a6, 0xc0a7, 0xc0a8, - 0xc0a9, 0xc0aa, 0xc0ab, 0xc0ae, 0xc0b1, 0xc0b2, 0xc0b7, 0xc0b8, - 0xc0b9, 0xc0ba, 0xc0bb, 0xc0be, 0xc0c2, 0xc0c3, 0xc0c4, 0xc0c6, - 0xc0c7, 0xc0ca, 0xc0cb, 0xc0cd, 0xc0ce, 0xc0cf, 0xc0d1, 0xc0d2, - 0xc0d3, 0xc0d4, 0xc0d5, 0xc0d6, 0xc0d7, 0xc0da, 0xc0de, 0xc0df, - 0xc0e0, 0xc0e1, 0xc0e2, 0xc0e3, 0xc0e6, 0xc0e7, 0xc0e9, 0xc0ea, - 0xc0eb, 0xc0ed, 0xc0ee, 0xc0ef, 0xc0f0, 0xc0f1, 0xc0f2, 0xc0f3, - 0xc0f6, 0xc0f8, 0xc0fa, 0xc0fb, 0xc0fc, 0xc0fd, 0xc0fe, 0xc0ff, - 0xc101, 0xc102, 0xc103, 0xc105, 0xc106, 0xc107, 0xc109, 0xc10a, - 0xc10b, 0xc10c, 0xc10d, 0xc10e, 0xc10f, 0xc111, 0xc112, 0xc113, - 0xc114, 0xc116, 0xc117, 0xc118, 0xc119, 0xc11a, 0xc11b, 0xc121, - 0xc122, 0xc125, 0xc128, 0xc129, 0xc12a, 0xc12b, 0xc12e, 0x003f, - /* lead byte 99 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc132, 0xc133, 0xc134, 0xc135, 0xc137, 0xc13a, 0xc13b, - 0xc13d, 0xc13e, 0xc13f, 0xc141, 0xc142, 0xc143, 0xc144, 0xc145, - 0xc146, 0xc147, 0xc14a, 0xc14e, 0xc14f, 0xc150, 0xc151, 0xc152, - 0xc153, 0xc156, 0xc157, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc159, 0xc15a, 0xc15b, 0xc15d, 0xc15e, 0xc15f, 0xc160, - 0xc161, 0xc162, 0xc163, 0xc166, 0xc16a, 0xc16b, 0xc16c, 0xc16d, - 0xc16e, 0xc16f, 0xc171, 0xc172, 0xc173, 0xc175, 0xc176, 0xc177, - 0xc179, 0xc17a, 0xc17b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc17c, 0xc17d, 0xc17e, 0xc17f, 0xc180, 0xc181, 0xc182, - 0xc183, 0xc184, 0xc186, 0xc187, 0xc188, 0xc189, 0xc18a, 0xc18b, - 0xc18f, 0xc191, 0xc192, 0xc193, 0xc195, 0xc197, 0xc198, 0xc199, - 0xc19a, 0xc19b, 0xc19e, 0xc1a0, 0xc1a2, 0xc1a3, 0xc1a4, 0xc1a6, - 0xc1a7, 0xc1aa, 0xc1ab, 0xc1ad, 0xc1ae, 0xc1af, 0xc1b1, 0xc1b2, - 0xc1b3, 0xc1b4, 0xc1b5, 0xc1b6, 0xc1b7, 0xc1b8, 0xc1b9, 0xc1ba, - 0xc1bb, 0xc1bc, 0xc1be, 0xc1bf, 0xc1c0, 0xc1c1, 0xc1c2, 0xc1c3, - 0xc1c5, 0xc1c6, 0xc1c7, 0xc1c9, 0xc1ca, 0xc1cb, 0xc1cd, 0xc1ce, - 0xc1cf, 0xc1d0, 0xc1d1, 0xc1d2, 0xc1d3, 0xc1d5, 0xc1d6, 0xc1d9, - 0xc1da, 0xc1db, 0xc1dc, 0xc1dd, 0xc1de, 0xc1df, 0xc1e1, 0xc1e2, - 0xc1e3, 0xc1e5, 0xc1e6, 0xc1e7, 0xc1e9, 0xc1ea, 0xc1eb, 0xc1ec, - 0xc1ed, 0xc1ee, 0xc1ef, 0xc1f2, 0xc1f4, 0xc1f5, 0xc1f6, 0xc1f7, - 0xc1f8, 0xc1f9, 0xc1fa, 0xc1fb, 0xc1fe, 0xc1ff, 0xc201, 0xc202, - 0xc203, 0xc205, 0xc206, 0xc207, 0xc208, 0xc209, 0xc20a, 0xc20b, - 0xc20e, 0xc210, 0xc212, 0xc213, 0xc214, 0xc215, 0xc216, 0xc217, - 0xc21a, 0xc21b, 0xc21d, 0xc21e, 0xc221, 0xc222, 0xc223, 0x003f, - /* lead byte 9a */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc224, 0xc225, 0xc226, 0xc227, 0xc22a, 0xc22c, 0xc22e, - 0xc230, 0xc233, 0xc235, 0xc236, 0xc237, 0xc238, 0xc239, 0xc23a, - 0xc23b, 0xc23c, 0xc23d, 0xc23e, 0xc23f, 0xc240, 0xc241, 0xc242, - 0xc243, 0xc244, 0xc245, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc246, 0xc247, 0xc249, 0xc24a, 0xc24b, 0xc24c, 0xc24d, - 0xc24e, 0xc24f, 0xc252, 0xc253, 0xc255, 0xc256, 0xc257, 0xc259, - 0xc25a, 0xc25b, 0xc25c, 0xc25d, 0xc25e, 0xc25f, 0xc261, 0xc262, - 0xc263, 0xc264, 0xc266, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc267, 0xc268, 0xc269, 0xc26a, 0xc26b, 0xc26e, 0xc26f, - 0xc271, 0xc272, 0xc273, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279, - 0xc27a, 0xc27b, 0xc27e, 0xc280, 0xc282, 0xc283, 0xc284, 0xc285, - 0xc286, 0xc287, 0xc28a, 0xc28b, 0xc28c, 0xc28d, 0xc28e, 0xc28f, - 0xc291, 0xc292, 0xc293, 0xc294, 0xc295, 0xc296, 0xc297, 0xc299, - 0xc29a, 0xc29c, 0xc29e, 0xc29f, 0xc2a0, 0xc2a1, 0xc2a2, 0xc2a3, - 0xc2a6, 0xc2a7, 0xc2a9, 0xc2aa, 0xc2ab, 0xc2ae, 0xc2af, 0xc2b0, - 0xc2b1, 0xc2b2, 0xc2b3, 0xc2b6, 0xc2b8, 0xc2ba, 0xc2bb, 0xc2bc, - 0xc2bd, 0xc2be, 0xc2bf, 0xc2c0, 0xc2c1, 0xc2c2, 0xc2c3, 0xc2c4, - 0xc2c5, 0xc2c6, 0xc2c7, 0xc2c8, 0xc2c9, 0xc2ca, 0xc2cb, 0xc2cc, - 0xc2cd, 0xc2ce, 0xc2cf, 0xc2d0, 0xc2d1, 0xc2d2, 0xc2d3, 0xc2d4, - 0xc2d5, 0xc2d6, 0xc2d7, 0xc2d8, 0xc2d9, 0xc2da, 0xc2db, 0xc2de, - 0xc2df, 0xc2e1, 0xc2e2, 0xc2e5, 0xc2e6, 0xc2e7, 0xc2e8, 0xc2e9, - 0xc2ea, 0xc2ee, 0xc2f0, 0xc2f2, 0xc2f3, 0xc2f4, 0xc2f5, 0xc2f7, - 0xc2fa, 0xc2fd, 0xc2fe, 0xc2ff, 0xc301, 0xc302, 0xc303, 0xc304, - 0xc305, 0xc306, 0xc307, 0xc30a, 0xc30b, 0xc30e, 0xc30f, 0x003f, - /* lead byte 9b */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc310, 0xc311, 0xc312, 0xc316, 0xc317, 0xc319, 0xc31a, - 0xc31b, 0xc31d, 0xc31e, 0xc31f, 0xc320, 0xc321, 0xc322, 0xc323, - 0xc326, 0xc327, 0xc32a, 0xc32b, 0xc32c, 0xc32d, 0xc32e, 0xc32f, - 0xc330, 0xc331, 0xc332, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc333, 0xc334, 0xc335, 0xc336, 0xc337, 0xc338, 0xc339, - 0xc33a, 0xc33b, 0xc33c, 0xc33d, 0xc33e, 0xc33f, 0xc340, 0xc341, - 0xc342, 0xc343, 0xc344, 0xc346, 0xc347, 0xc348, 0xc349, 0xc34a, - 0xc34b, 0xc34c, 0xc34d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc34e, 0xc34f, 0xc350, 0xc351, 0xc352, 0xc353, 0xc354, - 0xc355, 0xc356, 0xc357, 0xc358, 0xc359, 0xc35a, 0xc35b, 0xc35c, - 0xc35d, 0xc35e, 0xc35f, 0xc360, 0xc361, 0xc362, 0xc363, 0xc364, - 0xc365, 0xc366, 0xc367, 0xc36a, 0xc36b, 0xc36d, 0xc36e, 0xc36f, - 0xc371, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc37a, 0xc37b, - 0xc37e, 0xc37f, 0xc380, 0xc381, 0xc382, 0xc383, 0xc385, 0xc386, - 0xc387, 0xc389, 0xc38a, 0xc38b, 0xc38d, 0xc38e, 0xc38f, 0xc390, - 0xc391, 0xc392, 0xc393, 0xc394, 0xc395, 0xc396, 0xc397, 0xc398, - 0xc399, 0xc39a, 0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0xc3a0, - 0xc3a1, 0xc3a2, 0xc3a3, 0xc3a4, 0xc3a5, 0xc3a6, 0xc3a7, 0xc3a8, - 0xc3a9, 0xc3aa, 0xc3ab, 0xc3ac, 0xc3ad, 0xc3ae, 0xc3af, 0xc3b0, - 0xc3b1, 0xc3b2, 0xc3b3, 0xc3b4, 0xc3b5, 0xc3b6, 0xc3b7, 0xc3b8, - 0xc3b9, 0xc3ba, 0xc3bb, 0xc3bc, 0xc3bd, 0xc3be, 0xc3bf, 0xc3c1, - 0xc3c2, 0xc3c3, 0xc3c4, 0xc3c5, 0xc3c6, 0xc3c7, 0xc3c8, 0xc3c9, - 0xc3ca, 0xc3cb, 0xc3cc, 0xc3cd, 0xc3ce, 0xc3cf, 0xc3d0, 0xc3d1, - 0xc3d2, 0xc3d3, 0xc3d4, 0xc3d5, 0xc3d6, 0xc3d7, 0xc3da, 0x003f, - /* lead byte 9c */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc3db, 0xc3dd, 0xc3de, 0xc3e1, 0xc3e3, 0xc3e4, 0xc3e5, - 0xc3e6, 0xc3e7, 0xc3ea, 0xc3eb, 0xc3ec, 0xc3ee, 0xc3ef, 0xc3f0, - 0xc3f1, 0xc3f2, 0xc3f3, 0xc3f6, 0xc3f7, 0xc3f9, 0xc3fa, 0xc3fb, - 0xc3fc, 0xc3fd, 0xc3fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc3ff, 0xc400, 0xc401, 0xc402, 0xc403, 0xc404, 0xc405, - 0xc406, 0xc407, 0xc409, 0xc40a, 0xc40b, 0xc40c, 0xc40d, 0xc40e, - 0xc40f, 0xc411, 0xc412, 0xc413, 0xc414, 0xc415, 0xc416, 0xc417, - 0xc418, 0xc419, 0xc41a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc41b, 0xc41c, 0xc41d, 0xc41e, 0xc41f, 0xc420, 0xc421, - 0xc422, 0xc423, 0xc425, 0xc426, 0xc427, 0xc428, 0xc429, 0xc42a, - 0xc42b, 0xc42d, 0xc42e, 0xc42f, 0xc431, 0xc432, 0xc433, 0xc435, - 0xc436, 0xc437, 0xc438, 0xc439, 0xc43a, 0xc43b, 0xc43e, 0xc43f, - 0xc440, 0xc441, 0xc442, 0xc443, 0xc444, 0xc445, 0xc446, 0xc447, - 0xc449, 0xc44a, 0xc44b, 0xc44c, 0xc44d, 0xc44e, 0xc44f, 0xc450, - 0xc451, 0xc452, 0xc453, 0xc454, 0xc455, 0xc456, 0xc457, 0xc458, - 0xc459, 0xc45a, 0xc45b, 0xc45c, 0xc45d, 0xc45e, 0xc45f, 0xc460, - 0xc461, 0xc462, 0xc463, 0xc466, 0xc467, 0xc469, 0xc46a, 0xc46b, - 0xc46d, 0xc46e, 0xc46f, 0xc470, 0xc471, 0xc472, 0xc473, 0xc476, - 0xc477, 0xc478, 0xc47a, 0xc47b, 0xc47c, 0xc47d, 0xc47e, 0xc47f, - 0xc481, 0xc482, 0xc483, 0xc484, 0xc485, 0xc486, 0xc487, 0xc488, - 0xc489, 0xc48a, 0xc48b, 0xc48c, 0xc48d, 0xc48e, 0xc48f, 0xc490, - 0xc491, 0xc492, 0xc493, 0xc495, 0xc496, 0xc497, 0xc498, 0xc499, - 0xc49a, 0xc49b, 0xc49d, 0xc49e, 0xc49f, 0xc4a0, 0xc4a1, 0xc4a2, - 0xc4a3, 0xc4a4, 0xc4a5, 0xc4a6, 0xc4a7, 0xc4a8, 0xc4a9, 0x003f, - /* lead byte 9d */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc4aa, 0xc4ab, 0xc4ac, 0xc4ad, 0xc4ae, 0xc4af, 0xc4b0, - 0xc4b1, 0xc4b2, 0xc4b3, 0xc4b4, 0xc4b5, 0xc4b6, 0xc4b7, 0xc4b9, - 0xc4ba, 0xc4bb, 0xc4bd, 0xc4be, 0xc4bf, 0xc4c0, 0xc4c1, 0xc4c2, - 0xc4c3, 0xc4c4, 0xc4c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc4c6, 0xc4c7, 0xc4c8, 0xc4c9, 0xc4ca, 0xc4cb, 0xc4cc, - 0xc4cd, 0xc4ce, 0xc4cf, 0xc4d0, 0xc4d1, 0xc4d2, 0xc4d3, 0xc4d4, - 0xc4d5, 0xc4d6, 0xc4d7, 0xc4d8, 0xc4d9, 0xc4da, 0xc4db, 0xc4dc, - 0xc4dd, 0xc4de, 0xc4df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc4e0, 0xc4e1, 0xc4e2, 0xc4e3, 0xc4e4, 0xc4e5, 0xc4e6, - 0xc4e7, 0xc4e8, 0xc4ea, 0xc4eb, 0xc4ec, 0xc4ed, 0xc4ee, 0xc4ef, - 0xc4f2, 0xc4f3, 0xc4f5, 0xc4f6, 0xc4f7, 0xc4f9, 0xc4fb, 0xc4fc, - 0xc4fd, 0xc4fe, 0xc502, 0xc503, 0xc504, 0xc505, 0xc506, 0xc507, - 0xc508, 0xc509, 0xc50a, 0xc50b, 0xc50d, 0xc50e, 0xc50f, 0xc511, - 0xc512, 0xc513, 0xc515, 0xc516, 0xc517, 0xc518, 0xc519, 0xc51a, - 0xc51b, 0xc51d, 0xc51e, 0xc51f, 0xc520, 0xc521, 0xc522, 0xc523, - 0xc524, 0xc525, 0xc526, 0xc527, 0xc52a, 0xc52b, 0xc52d, 0xc52e, - 0xc52f, 0xc531, 0xc532, 0xc533, 0xc534, 0xc535, 0xc536, 0xc537, - 0xc53a, 0xc53c, 0xc53e, 0xc53f, 0xc540, 0xc541, 0xc542, 0xc543, - 0xc546, 0xc547, 0xc54b, 0xc54f, 0xc550, 0xc551, 0xc552, 0xc556, - 0xc55a, 0xc55b, 0xc55c, 0xc55f, 0xc562, 0xc563, 0xc565, 0xc566, - 0xc567, 0xc569, 0xc56a, 0xc56b, 0xc56c, 0xc56d, 0xc56e, 0xc56f, - 0xc572, 0xc576, 0xc577, 0xc578, 0xc579, 0xc57a, 0xc57b, 0xc57e, - 0xc57f, 0xc581, 0xc582, 0xc583, 0xc585, 0xc586, 0xc588, 0xc589, - 0xc58a, 0xc58b, 0xc58e, 0xc590, 0xc592, 0xc593, 0xc594, 0x003f, - /* lead byte 9e */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc596, 0xc599, 0xc59a, 0xc59b, 0xc59d, 0xc59e, 0xc59f, - 0xc5a1, 0xc5a2, 0xc5a3, 0xc5a4, 0xc5a5, 0xc5a6, 0xc5a7, 0xc5a8, - 0xc5aa, 0xc5ab, 0xc5ac, 0xc5ad, 0xc5ae, 0xc5af, 0xc5b0, 0xc5b1, - 0xc5b2, 0xc5b3, 0xc5b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc5b7, 0xc5ba, 0xc5bf, 0xc5c0, 0xc5c1, 0xc5c2, 0xc5c3, - 0xc5cb, 0xc5cd, 0xc5cf, 0xc5d2, 0xc5d3, 0xc5d5, 0xc5d6, 0xc5d7, - 0xc5d9, 0xc5da, 0xc5db, 0xc5dc, 0xc5dd, 0xc5de, 0xc5df, 0xc5e2, - 0xc5e4, 0xc5e6, 0xc5e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc5e8, 0xc5e9, 0xc5ea, 0xc5eb, 0xc5ef, 0xc5f1, 0xc5f2, - 0xc5f3, 0xc5f5, 0xc5f8, 0xc5f9, 0xc5fa, 0xc5fb, 0xc602, 0xc603, - 0xc604, 0xc609, 0xc60a, 0xc60b, 0xc60d, 0xc60e, 0xc60f, 0xc611, - 0xc612, 0xc613, 0xc614, 0xc615, 0xc616, 0xc617, 0xc61a, 0xc61d, - 0xc61e, 0xc61f, 0xc620, 0xc621, 0xc622, 0xc623, 0xc626, 0xc627, - 0xc629, 0xc62a, 0xc62b, 0xc62f, 0xc631, 0xc632, 0xc636, 0xc638, - 0xc63a, 0xc63c, 0xc63d, 0xc63e, 0xc63f, 0xc642, 0xc643, 0xc645, - 0xc646, 0xc647, 0xc649, 0xc64a, 0xc64b, 0xc64c, 0xc64d, 0xc64e, - 0xc64f, 0xc652, 0xc656, 0xc657, 0xc658, 0xc659, 0xc65a, 0xc65b, - 0xc65e, 0xc65f, 0xc661, 0xc662, 0xc663, 0xc664, 0xc665, 0xc666, - 0xc667, 0xc668, 0xc669, 0xc66a, 0xc66b, 0xc66d, 0xc66e, 0xc670, - 0xc672, 0xc673, 0xc674, 0xc675, 0xc676, 0xc677, 0xc67a, 0xc67b, - 0xc67d, 0xc67e, 0xc67f, 0xc681, 0xc682, 0xc683, 0xc684, 0xc685, - 0xc686, 0xc687, 0xc68a, 0xc68c, 0xc68e, 0xc68f, 0xc690, 0xc691, - 0xc692, 0xc693, 0xc696, 0xc697, 0xc699, 0xc69a, 0xc69b, 0xc69d, - 0xc69e, 0xc69f, 0xc6a0, 0xc6a1, 0xc6a2, 0xc6a3, 0xc6a6, 0x003f, - /* lead byte 9f */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc6a8, 0xc6aa, 0xc6ab, 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, - 0xc6b2, 0xc6b3, 0xc6b5, 0xc6b6, 0xc6b7, 0xc6bb, 0xc6bc, 0xc6bd, - 0xc6be, 0xc6bf, 0xc6c2, 0xc6c4, 0xc6c6, 0xc6c7, 0xc6c8, 0xc6c9, - 0xc6ca, 0xc6cb, 0xc6ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc6cf, 0xc6d1, 0xc6d2, 0xc6d3, 0xc6d5, 0xc6d6, 0xc6d7, - 0xc6d8, 0xc6d9, 0xc6da, 0xc6db, 0xc6de, 0xc6df, 0xc6e2, 0xc6e3, - 0xc6e4, 0xc6e5, 0xc6e6, 0xc6e7, 0xc6ea, 0xc6eb, 0xc6ed, 0xc6ee, - 0xc6ef, 0xc6f1, 0xc6f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc6f3, 0xc6f4, 0xc6f5, 0xc6f6, 0xc6f7, 0xc6fa, 0xc6fb, - 0xc6fc, 0xc6fe, 0xc6ff, 0xc700, 0xc701, 0xc702, 0xc703, 0xc706, - 0xc707, 0xc709, 0xc70a, 0xc70b, 0xc70d, 0xc70e, 0xc70f, 0xc710, - 0xc711, 0xc712, 0xc713, 0xc716, 0xc718, 0xc71a, 0xc71b, 0xc71c, - 0xc71d, 0xc71e, 0xc71f, 0xc722, 0xc723, 0xc725, 0xc726, 0xc727, - 0xc729, 0xc72a, 0xc72b, 0xc72c, 0xc72d, 0xc72e, 0xc72f, 0xc732, - 0xc734, 0xc736, 0xc738, 0xc739, 0xc73a, 0xc73b, 0xc73e, 0xc73f, - 0xc741, 0xc742, 0xc743, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, - 0xc74b, 0xc74e, 0xc750, 0xc759, 0xc75a, 0xc75b, 0xc75d, 0xc75e, - 0xc75f, 0xc761, 0xc762, 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, - 0xc769, 0xc76a, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, - 0xc772, 0xc773, 0xc776, 0xc777, 0xc779, 0xc77a, 0xc77b, 0xc77f, - 0xc780, 0xc781, 0xc782, 0xc786, 0xc78b, 0xc78c, 0xc78d, 0xc78f, - 0xc792, 0xc793, 0xc795, 0xc799, 0xc79b, 0xc79c, 0xc79d, 0xc79e, - 0xc79f, 0xc7a2, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ae, - 0xc7af, 0xc7b1, 0xc7b2, 0xc7b3, 0xc7b5, 0xc7b6, 0xc7b7, 0x003f, - /* lead byte a0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xc7be, 0xc7c2, 0xc7c3, - 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0xc7ca, 0xc7cb, 0xc7cd, 0xc7cf, - 0xc7d1, 0xc7d2, 0xc7d3, 0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d9, - 0xc7da, 0xc7db, 0xc7dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3, 0xc7e5, - 0xc7e6, 0xc7e7, 0xc7e9, 0xc7ea, 0xc7eb, 0xc7ed, 0xc7ee, 0xc7ef, - 0xc7f0, 0xc7f1, 0xc7f2, 0xc7f3, 0xc7f4, 0xc7f5, 0xc7f6, 0xc7f7, - 0xc7f8, 0xc7f9, 0xc7fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc7fb, 0xc7fc, 0xc7fd, 0xc7fe, 0xc7ff, 0xc802, 0xc803, - 0xc805, 0xc806, 0xc807, 0xc809, 0xc80b, 0xc80c, 0xc80d, 0xc80e, - 0xc80f, 0xc812, 0xc814, 0xc817, 0xc818, 0xc819, 0xc81a, 0xc81b, - 0xc81e, 0xc81f, 0xc821, 0xc822, 0xc823, 0xc825, 0xc826, 0xc827, - 0xc828, 0xc829, 0xc82a, 0xc82b, 0xc82e, 0xc830, 0xc832, 0xc833, - 0xc834, 0xc835, 0xc836, 0xc837, 0xc839, 0xc83a, 0xc83b, 0xc83d, - 0xc83e, 0xc83f, 0xc841, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, - 0xc847, 0xc84a, 0xc84b, 0xc84e, 0xc84f, 0xc850, 0xc851, 0xc852, - 0xc853, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859, 0xc85a, 0xc85b, - 0xc85c, 0xc85d, 0xc85e, 0xc85f, 0xc860, 0xc861, 0xc862, 0xc863, - 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869, 0xc86a, 0xc86b, - 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc872, 0xc873, 0xc875, 0xc876, - 0xc877, 0xc879, 0xc87b, 0xc87c, 0xc87d, 0xc87e, 0xc87f, 0xc882, - 0xc884, 0xc888, 0xc889, 0xc88a, 0xc88e, 0xc88f, 0xc890, 0xc891, - 0xc892, 0xc893, 0xc895, 0xc896, 0xc897, 0xc898, 0xc899, 0xc89a, - 0xc89b, 0xc89c, 0xc89e, 0xc8a0, 0xc8a2, 0xc8a3, 0xc8a4, 0x003f, - /* lead byte a1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc8a5, 0xc8a6, 0xc8a7, 0xc8a9, 0xc8aa, 0xc8ab, 0xc8ac, - 0xc8ad, 0xc8ae, 0xc8af, 0xc8b0, 0xc8b1, 0xc8b2, 0xc8b3, 0xc8b4, - 0xc8b5, 0xc8b6, 0xc8b7, 0xc8b8, 0xc8b9, 0xc8ba, 0xc8bb, 0xc8be, - 0xc8bf, 0xc8c0, 0xc8c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc8c2, 0xc8c3, 0xc8c5, 0xc8c6, 0xc8c7, 0xc8c9, 0xc8ca, - 0xc8cb, 0xc8cd, 0xc8ce, 0xc8cf, 0xc8d0, 0xc8d1, 0xc8d2, 0xc8d3, - 0xc8d6, 0xc8d8, 0xc8da, 0xc8db, 0xc8dc, 0xc8dd, 0xc8de, 0xc8df, - 0xc8e2, 0xc8e3, 0xc8e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc8e6, 0xc8e7, 0xc8e8, 0xc8e9, 0xc8ea, 0xc8eb, 0xc8ec, - 0xc8ed, 0xc8ee, 0xc8ef, 0xc8f0, 0xc8f1, 0xc8f2, 0xc8f3, 0xc8f4, - 0xc8f6, 0xc8f7, 0xc8f8, 0xc8f9, 0xc8fa, 0xc8fb, 0xc8fe, 0xc8ff, - 0xc901, 0xc902, 0xc903, 0xc907, 0xc908, 0xc909, 0xc90a, 0xc90b, - 0xc90e, 0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, - 0x3003, 0x00ad, 0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, - 0x201c, 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, - 0x300c, 0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0x00b1, 0x00d7, - 0x00f7, 0x2260, 0x2264, 0x2265, 0x221e, 0x2234, 0x00b0, 0x2032, - 0x2033, 0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5, 0x2642, 0x2640, - 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x00a7, - 0x203b, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, - 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, - 0x2191, 0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x223d, - 0x221d, 0x2235, 0x222b, 0x222c, 0x2208, 0x220b, 0x2286, 0x2287, - 0x2282, 0x2283, 0x222a, 0x2229, 0x2227, 0x2228, 0xffe2, 0x003f, - /* lead byte a2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc910, 0xc912, 0xc913, 0xc914, 0xc915, 0xc916, 0xc917, - 0xc919, 0xc91a, 0xc91b, 0xc91c, 0xc91d, 0xc91e, 0xc91f, 0xc920, - 0xc921, 0xc922, 0xc923, 0xc924, 0xc925, 0xc926, 0xc927, 0xc928, - 0xc929, 0xc92a, 0xc92b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc92d, 0xc92e, 0xc92f, 0xc930, 0xc931, 0xc932, 0xc933, - 0xc935, 0xc936, 0xc937, 0xc938, 0xc939, 0xc93a, 0xc93b, 0xc93c, - 0xc93d, 0xc93e, 0xc93f, 0xc940, 0xc941, 0xc942, 0xc943, 0xc944, - 0xc945, 0xc946, 0xc947, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc948, 0xc949, 0xc94a, 0xc94b, 0xc94c, 0xc94d, 0xc94e, - 0xc94f, 0xc952, 0xc953, 0xc955, 0xc956, 0xc957, 0xc959, 0xc95a, - 0xc95b, 0xc95c, 0xc95d, 0xc95e, 0xc95f, 0xc962, 0xc964, 0xc965, - 0xc966, 0xc967, 0xc968, 0xc969, 0xc96a, 0xc96b, 0xc96d, 0xc96e, - 0xc96f, 0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4, 0xff5e, 0x02c7, - 0x02d8, 0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1, 0x00bf, - 0x02d0, 0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1, - 0x25c0, 0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, - 0x2663, 0x2299, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, - 0x25a5, 0x25a8, 0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, - 0x261c, 0x261e, 0x00b6, 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, - 0x2196, 0x2198, 0x266d, 0x2669, 0x266a, 0x266c, 0x327f, 0x321c, - 0x2116, 0x33c7, 0x2122, 0x33c2, 0x33d8, 0x2121, 0x20ac, 0x00ae, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc971, 0xc972, 0xc973, 0xc975, 0xc976, 0xc977, 0xc978, - 0xc979, 0xc97a, 0xc97b, 0xc97d, 0xc97e, 0xc97f, 0xc980, 0xc981, - 0xc982, 0xc983, 0xc984, 0xc985, 0xc986, 0xc987, 0xc98a, 0xc98b, - 0xc98d, 0xc98e, 0xc98f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc991, 0xc992, 0xc993, 0xc994, 0xc995, 0xc996, 0xc997, - 0xc99a, 0xc99c, 0xc99e, 0xc99f, 0xc9a0, 0xc9a1, 0xc9a2, 0xc9a3, - 0xc9a4, 0xc9a5, 0xc9a6, 0xc9a7, 0xc9a8, 0xc9a9, 0xc9aa, 0xc9ab, - 0xc9ac, 0xc9ad, 0xc9ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc9af, 0xc9b0, 0xc9b1, 0xc9b2, 0xc9b3, 0xc9b4, 0xc9b5, - 0xc9b6, 0xc9b7, 0xc9b8, 0xc9b9, 0xc9ba, 0xc9bb, 0xc9bc, 0xc9bd, - 0xc9be, 0xc9bf, 0xc9c2, 0xc9c3, 0xc9c5, 0xc9c6, 0xc9c9, 0xc9cb, - 0xc9cc, 0xc9cd, 0xc9ce, 0xc9cf, 0xc9d2, 0xc9d4, 0xc9d7, 0xc9d8, - 0xc9db, 0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, - 0xff08, 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, - 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, - 0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, - 0xff20, 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, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, - 0xff40, 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, 0xff5b, 0xff5c, 0xff5d, 0xffe3, 0x003f, - /* lead byte a4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc9de, 0xc9df, 0xc9e1, 0xc9e3, 0xc9e5, 0xc9e6, 0xc9e8, - 0xc9e9, 0xc9ea, 0xc9eb, 0xc9ee, 0xc9f2, 0xc9f3, 0xc9f4, 0xc9f5, - 0xc9f6, 0xc9f7, 0xc9fa, 0xc9fb, 0xc9fd, 0xc9fe, 0xc9ff, 0xca01, - 0xca02, 0xca03, 0xca04, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xca05, 0xca06, 0xca07, 0xca0a, 0xca0e, 0xca0f, 0xca10, - 0xca11, 0xca12, 0xca13, 0xca15, 0xca16, 0xca17, 0xca19, 0xca1a, - 0xca1b, 0xca1c, 0xca1d, 0xca1e, 0xca1f, 0xca20, 0xca21, 0xca22, - 0xca23, 0xca24, 0xca25, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xca26, 0xca27, 0xca28, 0xca2a, 0xca2b, 0xca2c, 0xca2d, - 0xca2e, 0xca2f, 0xca30, 0xca31, 0xca32, 0xca33, 0xca34, 0xca35, - 0xca36, 0xca37, 0xca38, 0xca39, 0xca3a, 0xca3b, 0xca3c, 0xca3d, - 0xca3e, 0xca3f, 0xca40, 0xca41, 0xca42, 0xca43, 0xca44, 0xca45, - 0xca46, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, - 0x3138, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, - 0x3140, 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, - 0x3148, 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, - 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, - 0x3158, 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, - 0x3160, 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, - 0x3168, 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, - 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, - 0x3178, 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x317f, - 0x3180, 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, - 0x3188, 0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e, 0x003f, - /* lead byte a5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xca47, 0xca48, 0xca49, 0xca4a, 0xca4b, 0xca4e, 0xca4f, - 0xca51, 0xca52, 0xca53, 0xca55, 0xca56, 0xca57, 0xca58, 0xca59, - 0xca5a, 0xca5b, 0xca5e, 0xca62, 0xca63, 0xca64, 0xca65, 0xca66, - 0xca67, 0xca69, 0xca6a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xca6b, 0xca6c, 0xca6d, 0xca6e, 0xca6f, 0xca70, 0xca71, - 0xca72, 0xca73, 0xca74, 0xca75, 0xca76, 0xca77, 0xca78, 0xca79, - 0xca7a, 0xca7b, 0xca7c, 0xca7e, 0xca7f, 0xca80, 0xca81, 0xca82, - 0xca83, 0xca85, 0xca86, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xca87, 0xca88, 0xca89, 0xca8a, 0xca8b, 0xca8c, 0xca8d, - 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca92, 0xca93, 0xca94, 0xca95, - 0xca96, 0xca97, 0xca99, 0xca9a, 0xca9b, 0xca9c, 0xca9d, 0xca9e, - 0xca9f, 0xcaa0, 0xcaa1, 0xcaa2, 0xcaa3, 0xcaa4, 0xcaa5, 0xcaa6, - 0xcaa7, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, - 0x2177, 0x2178, 0x2179, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, - 0x2168, 0x2169, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, - 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, - 0x03a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, - 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, - 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, - 0x03c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcaa8, 0xcaa9, 0xcaaa, 0xcaab, 0xcaac, 0xcaad, 0xcaae, - 0xcaaf, 0xcab0, 0xcab1, 0xcab2, 0xcab3, 0xcab4, 0xcab5, 0xcab6, - 0xcab7, 0xcab8, 0xcab9, 0xcaba, 0xcabb, 0xcabe, 0xcabf, 0xcac1, - 0xcac2, 0xcac3, 0xcac5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcac6, 0xcac7, 0xcac8, 0xcac9, 0xcaca, 0xcacb, 0xcace, - 0xcad0, 0xcad2, 0xcad4, 0xcad5, 0xcad6, 0xcad7, 0xcada, 0xcadb, - 0xcadc, 0xcadd, 0xcade, 0xcadf, 0xcae1, 0xcae2, 0xcae3, 0xcae4, - 0xcae5, 0xcae6, 0xcae7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcae8, 0xcae9, 0xcaea, 0xcaeb, 0xcaed, 0xcaee, 0xcaef, - 0xcaf0, 0xcaf1, 0xcaf2, 0xcaf3, 0xcaf5, 0xcaf6, 0xcaf7, 0xcaf8, - 0xcaf9, 0xcafa, 0xcafb, 0xcafc, 0xcafd, 0xcafe, 0xcaff, 0xcb00, - 0xcb01, 0xcb02, 0xcb03, 0xcb04, 0xcb05, 0xcb06, 0xcb07, 0xcb09, - 0xcb0a, 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, 0x2512, 0x2511, 0x251a, 0x2519, 0x2516, 0x2515, 0x250e, - 0x250d, 0x251e, 0x251f, 0x2521, 0x2522, 0x2526, 0x2527, 0x2529, - 0x252a, 0x252d, 0x252e, 0x2531, 0x2532, 0x2535, 0x2536, 0x2539, - 0x253a, 0x253d, 0x253e, 0x2540, 0x2541, 0x2543, 0x2544, 0x2545, - 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcb0b, 0xcb0c, 0xcb0d, 0xcb0e, 0xcb0f, 0xcb11, 0xcb12, - 0xcb13, 0xcb15, 0xcb16, 0xcb17, 0xcb19, 0xcb1a, 0xcb1b, 0xcb1c, - 0xcb1d, 0xcb1e, 0xcb1f, 0xcb22, 0xcb23, 0xcb24, 0xcb25, 0xcb26, - 0xcb27, 0xcb28, 0xcb29, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcb2a, 0xcb2b, 0xcb2c, 0xcb2d, 0xcb2e, 0xcb2f, 0xcb30, - 0xcb31, 0xcb32, 0xcb33, 0xcb34, 0xcb35, 0xcb36, 0xcb37, 0xcb38, - 0xcb39, 0xcb3a, 0xcb3b, 0xcb3c, 0xcb3d, 0xcb3e, 0xcb3f, 0xcb40, - 0xcb42, 0xcb43, 0xcb44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcb45, 0xcb46, 0xcb47, 0xcb4a, 0xcb4b, 0xcb4d, 0xcb4e, - 0xcb4f, 0xcb51, 0xcb52, 0xcb53, 0xcb54, 0xcb55, 0xcb56, 0xcb57, - 0xcb5a, 0xcb5b, 0xcb5c, 0xcb5e, 0xcb5f, 0xcb60, 0xcb61, 0xcb62, - 0xcb63, 0xcb65, 0xcb66, 0xcb67, 0xcb68, 0xcb69, 0xcb6a, 0xcb6b, - 0xcb6c, 0x3395, 0x3396, 0x3397, 0x2113, 0x3398, 0x33c4, 0x33a3, - 0x33a4, 0x33a5, 0x33a6, 0x3399, 0x339a, 0x339b, 0x339c, 0x339d, - 0x339e, 0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca, 0x338d, 0x338e, - 0x338f, 0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8, 0x33b0, - 0x33b1, 0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8, - 0x33b9, 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, - 0x33bc, 0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, - 0x3394, 0x2126, 0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, - 0x33c5, 0x33ad, 0x33ae, 0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, - 0x33ac, 0x33dd, 0x33d0, 0x33d3, 0x33c3, 0x33c9, 0x33dc, 0x33c6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcb6d, 0xcb6e, 0xcb6f, 0xcb70, 0xcb71, 0xcb72, 0xcb73, - 0xcb74, 0xcb75, 0xcb76, 0xcb77, 0xcb7a, 0xcb7b, 0xcb7c, 0xcb7d, - 0xcb7e, 0xcb7f, 0xcb80, 0xcb81, 0xcb82, 0xcb83, 0xcb84, 0xcb85, - 0xcb86, 0xcb87, 0xcb88, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcb89, 0xcb8a, 0xcb8b, 0xcb8c, 0xcb8d, 0xcb8e, 0xcb8f, - 0xcb90, 0xcb91, 0xcb92, 0xcb93, 0xcb94, 0xcb95, 0xcb96, 0xcb97, - 0xcb98, 0xcb99, 0xcb9a, 0xcb9b, 0xcb9d, 0xcb9e, 0xcb9f, 0xcba0, - 0xcba1, 0xcba2, 0xcba3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcba4, 0xcba5, 0xcba6, 0xcba7, 0xcba8, 0xcba9, 0xcbaa, - 0xcbab, 0xcbac, 0xcbad, 0xcbae, 0xcbaf, 0xcbb0, 0xcbb1, 0xcbb2, - 0xcbb3, 0xcbb4, 0xcbb5, 0xcbb6, 0xcbb7, 0xcbb9, 0xcbba, 0xcbbb, - 0xcbbc, 0xcbbd, 0xcbbe, 0xcbbf, 0xcbc0, 0xcbc1, 0xcbc2, 0xcbc3, - 0xcbc4, 0x00c6, 0x00d0, 0x00aa, 0x0126, 0x003f, 0x0132, 0x003f, - 0x013f, 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a, - 0x003f, 0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, - 0x3267, 0x3268, 0x3269, 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, - 0x326f, 0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, - 0x3277, 0x3278, 0x3279, 0x327a, 0x327b, 0x24d0, 0x24d1, 0x24d2, - 0x24d3, 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 0x24d9, 0x24da, - 0x24db, 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1, 0x24e2, - 0x24e3, 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460, - 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, - 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, - 0x2154, 0x00bc, 0x00be, 0x215b, 0x215c, 0x215d, 0x215e, 0x003f, - /* lead byte a9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcbc5, 0xcbc6, 0xcbc7, 0xcbc8, 0xcbc9, 0xcbca, 0xcbcb, - 0xcbcc, 0xcbcd, 0xcbce, 0xcbcf, 0xcbd0, 0xcbd1, 0xcbd2, 0xcbd3, - 0xcbd5, 0xcbd6, 0xcbd7, 0xcbd8, 0xcbd9, 0xcbda, 0xcbdb, 0xcbdc, - 0xcbdd, 0xcbde, 0xcbdf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcbe0, 0xcbe1, 0xcbe2, 0xcbe3, 0xcbe5, 0xcbe6, 0xcbe8, - 0xcbea, 0xcbeb, 0xcbec, 0xcbed, 0xcbee, 0xcbef, 0xcbf0, 0xcbf1, - 0xcbf2, 0xcbf3, 0xcbf4, 0xcbf5, 0xcbf6, 0xcbf7, 0xcbf8, 0xcbf9, - 0xcbfa, 0xcbfb, 0xcbfc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcbfd, 0xcbfe, 0xcbff, 0xcc00, 0xcc01, 0xcc02, 0xcc03, - 0xcc04, 0xcc05, 0xcc06, 0xcc07, 0xcc08, 0xcc09, 0xcc0a, 0xcc0b, - 0xcc0e, 0xcc0f, 0xcc11, 0xcc12, 0xcc13, 0xcc15, 0xcc16, 0xcc17, - 0xcc18, 0xcc19, 0xcc1a, 0xcc1b, 0xcc1e, 0xcc1f, 0xcc20, 0xcc23, - 0xcc24, 0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, - 0x0140, 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x0167, 0x014b, - 0x0149, 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, 0x3206, - 0x3207, 0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e, - 0x320f, 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, - 0x3217, 0x3218, 0x3219, 0x321a, 0x321b, 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, 0x2474, - 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, - 0x247d, 0x247e, 0x247f, 0x2480, 0x2481, 0x2482, 0x00b9, 0x00b2, - 0x00b3, 0x2074, 0x207f, 0x2081, 0x2082, 0x2083, 0x2084, 0x003f, - /* lead byte aa */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcc25, 0xcc26, 0xcc2a, 0xcc2b, 0xcc2d, 0xcc2f, 0xcc31, - 0xcc32, 0xcc33, 0xcc34, 0xcc35, 0xcc36, 0xcc37, 0xcc3a, 0xcc3f, - 0xcc40, 0xcc41, 0xcc42, 0xcc43, 0xcc46, 0xcc47, 0xcc49, 0xcc4a, - 0xcc4b, 0xcc4d, 0xcc4e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcc4f, 0xcc50, 0xcc51, 0xcc52, 0xcc53, 0xcc56, 0xcc5a, - 0xcc5b, 0xcc5c, 0xcc5d, 0xcc5e, 0xcc5f, 0xcc61, 0xcc62, 0xcc63, - 0xcc65, 0xcc67, 0xcc69, 0xcc6a, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, - 0xcc6f, 0xcc71, 0xcc72, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcc73, 0xcc74, 0xcc76, 0xcc77, 0xcc78, 0xcc79, 0xcc7a, - 0xcc7b, 0xcc7c, 0xcc7d, 0xcc7e, 0xcc7f, 0xcc80, 0xcc81, 0xcc82, - 0xcc83, 0xcc84, 0xcc85, 0xcc86, 0xcc87, 0xcc88, 0xcc89, 0xcc8a, - 0xcc8b, 0xcc8c, 0xcc8d, 0xcc8e, 0xcc8f, 0xcc90, 0xcc91, 0xcc92, - 0xcc93, 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, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte ab */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcc94, 0xcc95, 0xcc96, 0xcc97, 0xcc9a, 0xcc9b, 0xcc9d, - 0xcc9e, 0xcc9f, 0xcca1, 0xcca2, 0xcca3, 0xcca4, 0xcca5, 0xcca6, - 0xcca7, 0xccaa, 0xccae, 0xccaf, 0xccb0, 0xccb1, 0xccb2, 0xccb3, - 0xccb6, 0xccb7, 0xccb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xccba, 0xccbb, 0xccbd, 0xccbe, 0xccbf, 0xccc0, 0xccc1, - 0xccc2, 0xccc3, 0xccc6, 0xccc8, 0xccca, 0xcccb, 0xcccc, 0xcccd, - 0xccce, 0xcccf, 0xccd1, 0xccd2, 0xccd3, 0xccd5, 0xccd6, 0xccd7, - 0xccd8, 0xccd9, 0xccda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xccdb, 0xccdc, 0xccdd, 0xccde, 0xccdf, 0xcce0, 0xcce1, - 0xcce2, 0xcce3, 0xcce5, 0xcce6, 0xcce7, 0xcce8, 0xcce9, 0xccea, - 0xcceb, 0xcced, 0xccee, 0xccef, 0xccf1, 0xccf2, 0xccf3, 0xccf4, - 0xccf5, 0xccf6, 0xccf7, 0xccf8, 0xccf9, 0xccfa, 0xccfb, 0xccfc, - 0xccfd, 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, - 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, - 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, - 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte ac */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xccfe, 0xccff, 0xcd00, 0xcd02, 0xcd03, 0xcd04, 0xcd05, - 0xcd06, 0xcd07, 0xcd0a, 0xcd0b, 0xcd0d, 0xcd0e, 0xcd0f, 0xcd11, - 0xcd12, 0xcd13, 0xcd14, 0xcd15, 0xcd16, 0xcd17, 0xcd1a, 0xcd1c, - 0xcd1e, 0xcd1f, 0xcd20, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcd21, 0xcd22, 0xcd23, 0xcd25, 0xcd26, 0xcd27, 0xcd29, - 0xcd2a, 0xcd2b, 0xcd2d, 0xcd2e, 0xcd2f, 0xcd30, 0xcd31, 0xcd32, - 0xcd33, 0xcd34, 0xcd35, 0xcd36, 0xcd37, 0xcd38, 0xcd3a, 0xcd3b, - 0xcd3c, 0xcd3d, 0xcd3e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcd3f, 0xcd40, 0xcd41, 0xcd42, 0xcd43, 0xcd44, 0xcd45, - 0xcd46, 0xcd47, 0xcd48, 0xcd49, 0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, - 0xcd4e, 0xcd4f, 0xcd50, 0xcd51, 0xcd52, 0xcd53, 0xcd54, 0xcd55, - 0xcd56, 0xcd57, 0xcd58, 0xcd59, 0xcd5a, 0xcd5b, 0xcd5d, 0xcd5e, - 0xcd5f, 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, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, - 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, - 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, - 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, - 0x044e, 0x044f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte ad */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcd61, 0xcd62, 0xcd63, 0xcd65, 0xcd66, 0xcd67, 0xcd68, - 0xcd69, 0xcd6a, 0xcd6b, 0xcd6e, 0xcd70, 0xcd72, 0xcd73, 0xcd74, - 0xcd75, 0xcd76, 0xcd77, 0xcd79, 0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, - 0xcd7e, 0xcd7f, 0xcd80, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcd81, 0xcd82, 0xcd83, 0xcd84, 0xcd85, 0xcd86, 0xcd87, - 0xcd89, 0xcd8a, 0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e, 0xcd8f, 0xcd90, - 0xcd91, 0xcd92, 0xcd93, 0xcd96, 0xcd97, 0xcd99, 0xcd9a, 0xcd9b, - 0xcd9d, 0xcd9e, 0xcd9f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcda0, 0xcda1, 0xcda2, 0xcda3, 0xcda6, 0xcda8, 0xcdaa, - 0xcdab, 0xcdac, 0xcdad, 0xcdae, 0xcdaf, 0xcdb1, 0xcdb2, 0xcdb3, - 0xcdb4, 0xcdb5, 0xcdb6, 0xcdb7, 0xcdb8, 0xcdb9, 0xcdba, 0xcdbb, - 0xcdbc, 0xcdbd, 0xcdbe, 0xcdbf, 0xcdc0, 0xcdc1, 0xcdc2, 0xcdc3, - 0xcdc5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte ae */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcdc6, 0xcdc7, 0xcdc8, 0xcdc9, 0xcdca, 0xcdcb, 0xcdcd, - 0xcdce, 0xcdcf, 0xcdd1, 0xcdd2, 0xcdd3, 0xcdd4, 0xcdd5, 0xcdd6, - 0xcdd7, 0xcdd8, 0xcdd9, 0xcdda, 0xcddb, 0xcddc, 0xcddd, 0xcdde, - 0xcddf, 0xcde0, 0xcde1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcde2, 0xcde3, 0xcde4, 0xcde5, 0xcde6, 0xcde7, 0xcde9, - 0xcdea, 0xcdeb, 0xcded, 0xcdee, 0xcdef, 0xcdf1, 0xcdf2, 0xcdf3, - 0xcdf4, 0xcdf5, 0xcdf6, 0xcdf7, 0xcdfa, 0xcdfc, 0xcdfe, 0xcdff, - 0xce00, 0xce01, 0xce02, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xce03, 0xce05, 0xce06, 0xce07, 0xce09, 0xce0a, 0xce0b, - 0xce0d, 0xce0e, 0xce0f, 0xce10, 0xce11, 0xce12, 0xce13, 0xce15, - 0xce16, 0xce17, 0xce18, 0xce1a, 0xce1b, 0xce1c, 0xce1d, 0xce1e, - 0xce1f, 0xce22, 0xce23, 0xce25, 0xce26, 0xce27, 0xce29, 0xce2a, - 0xce2b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte af */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xce2c, 0xce2d, 0xce2e, 0xce2f, 0xce32, 0xce34, 0xce36, - 0xce37, 0xce38, 0xce39, 0xce3a, 0xce3b, 0xce3c, 0xce3d, 0xce3e, - 0xce3f, 0xce40, 0xce41, 0xce42, 0xce43, 0xce44, 0xce45, 0xce46, - 0xce47, 0xce48, 0xce49, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xce4a, 0xce4b, 0xce4c, 0xce4d, 0xce4e, 0xce4f, 0xce50, - 0xce51, 0xce52, 0xce53, 0xce54, 0xce55, 0xce56, 0xce57, 0xce5a, - 0xce5b, 0xce5d, 0xce5e, 0xce62, 0xce63, 0xce64, 0xce65, 0xce66, - 0xce67, 0xce6a, 0xce6c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xce6e, 0xce6f, 0xce70, 0xce71, 0xce72, 0xce73, 0xce76, - 0xce77, 0xce79, 0xce7a, 0xce7b, 0xce7d, 0xce7e, 0xce7f, 0xce80, - 0xce81, 0xce82, 0xce83, 0xce86, 0xce88, 0xce8a, 0xce8b, 0xce8c, - 0xce8d, 0xce8e, 0xce8f, 0xce92, 0xce93, 0xce95, 0xce96, 0xce97, - 0xce99, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte b0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xce9a, 0xce9b, 0xce9c, 0xce9d, 0xce9e, 0xce9f, 0xcea2, - 0xcea6, 0xcea7, 0xcea8, 0xcea9, 0xceaa, 0xceab, 0xceae, 0xceaf, - 0xceb0, 0xceb1, 0xceb2, 0xceb3, 0xceb4, 0xceb5, 0xceb6, 0xceb7, - 0xceb8, 0xceb9, 0xceba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcebb, 0xcebc, 0xcebd, 0xcebe, 0xcebf, 0xcec0, 0xcec2, - 0xcec3, 0xcec4, 0xcec5, 0xcec6, 0xcec7, 0xcec8, 0xcec9, 0xceca, - 0xcecb, 0xcecc, 0xcecd, 0xcece, 0xcecf, 0xced0, 0xced1, 0xced2, - 0xced3, 0xced4, 0xced5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xced6, 0xced7, 0xced8, 0xced9, 0xceda, 0xcedb, 0xcedc, - 0xcedd, 0xcede, 0xcedf, 0xcee0, 0xcee1, 0xcee2, 0xcee3, 0xcee6, - 0xcee7, 0xcee9, 0xceea, 0xceed, 0xceee, 0xceef, 0xcef0, 0xcef1, - 0xcef2, 0xcef3, 0xcef6, 0xcefa, 0xcefb, 0xcefc, 0xcefd, 0xcefe, - 0xceff, 0xac00, 0xac01, 0xac04, 0xac07, 0xac08, 0xac09, 0xac0a, - 0xac10, 0xac11, 0xac12, 0xac13, 0xac14, 0xac15, 0xac16, 0xac17, - 0xac19, 0xac1a, 0xac1b, 0xac1c, 0xac1d, 0xac20, 0xac24, 0xac2c, - 0xac2d, 0xac2f, 0xac30, 0xac31, 0xac38, 0xac39, 0xac3c, 0xac40, - 0xac4b, 0xac4d, 0xac54, 0xac58, 0xac5c, 0xac70, 0xac71, 0xac74, - 0xac77, 0xac78, 0xac7a, 0xac80, 0xac81, 0xac83, 0xac84, 0xac85, - 0xac86, 0xac89, 0xac8a, 0xac8b, 0xac8c, 0xac90, 0xac94, 0xac9c, - 0xac9d, 0xac9f, 0xaca0, 0xaca1, 0xaca8, 0xaca9, 0xacaa, 0xacac, - 0xacaf, 0xacb0, 0xacb8, 0xacb9, 0xacbb, 0xacbc, 0xacbd, 0xacc1, - 0xacc4, 0xacc8, 0xaccc, 0xacd5, 0xacd7, 0xace0, 0xace1, 0xace4, - 0xace7, 0xace8, 0xacea, 0xacec, 0xacef, 0xacf0, 0xacf1, 0xacf3, - 0xacf5, 0xacf6, 0xacfc, 0xacfd, 0xad00, 0xad04, 0xad06, 0x003f, - /* lead byte b1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcf02, 0xcf03, 0xcf05, 0xcf06, 0xcf07, 0xcf09, 0xcf0a, - 0xcf0b, 0xcf0c, 0xcf0d, 0xcf0e, 0xcf0f, 0xcf12, 0xcf14, 0xcf16, - 0xcf17, 0xcf18, 0xcf19, 0xcf1a, 0xcf1b, 0xcf1d, 0xcf1e, 0xcf1f, - 0xcf21, 0xcf22, 0xcf23, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcf25, 0xcf26, 0xcf27, 0xcf28, 0xcf29, 0xcf2a, 0xcf2b, - 0xcf2e, 0xcf32, 0xcf33, 0xcf34, 0xcf35, 0xcf36, 0xcf37, 0xcf39, - 0xcf3a, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, 0xcf3f, 0xcf40, 0xcf41, - 0xcf42, 0xcf43, 0xcf44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcf45, 0xcf46, 0xcf47, 0xcf48, 0xcf49, 0xcf4a, 0xcf4b, - 0xcf4c, 0xcf4d, 0xcf4e, 0xcf4f, 0xcf50, 0xcf51, 0xcf52, 0xcf53, - 0xcf56, 0xcf57, 0xcf59, 0xcf5a, 0xcf5b, 0xcf5d, 0xcf5e, 0xcf5f, - 0xcf60, 0xcf61, 0xcf62, 0xcf63, 0xcf66, 0xcf68, 0xcf6a, 0xcf6b, - 0xcf6c, 0xad0c, 0xad0d, 0xad0f, 0xad11, 0xad18, 0xad1c, 0xad20, - 0xad29, 0xad2c, 0xad2d, 0xad34, 0xad35, 0xad38, 0xad3c, 0xad44, - 0xad45, 0xad47, 0xad49, 0xad50, 0xad54, 0xad58, 0xad61, 0xad63, - 0xad6c, 0xad6d, 0xad70, 0xad73, 0xad74, 0xad75, 0xad76, 0xad7b, - 0xad7c, 0xad7d, 0xad7f, 0xad81, 0xad82, 0xad88, 0xad89, 0xad8c, - 0xad90, 0xad9c, 0xad9d, 0xada4, 0xadb7, 0xadc0, 0xadc1, 0xadc4, - 0xadc8, 0xadd0, 0xadd1, 0xadd3, 0xaddc, 0xade0, 0xade4, 0xadf8, - 0xadf9, 0xadfc, 0xadff, 0xae00, 0xae01, 0xae08, 0xae09, 0xae0b, - 0xae0d, 0xae14, 0xae30, 0xae31, 0xae34, 0xae37, 0xae38, 0xae3a, - 0xae40, 0xae41, 0xae43, 0xae45, 0xae46, 0xae4a, 0xae4c, 0xae4d, - 0xae4e, 0xae50, 0xae54, 0xae56, 0xae5c, 0xae5d, 0xae5f, 0xae60, - 0xae61, 0xae65, 0xae68, 0xae69, 0xae6c, 0xae70, 0xae78, 0x003f, - /* lead byte b2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcf6d, 0xcf6e, 0xcf6f, 0xcf72, 0xcf73, 0xcf75, 0xcf76, - 0xcf77, 0xcf79, 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, 0xcf7e, 0xcf7f, - 0xcf81, 0xcf82, 0xcf83, 0xcf84, 0xcf86, 0xcf87, 0xcf88, 0xcf89, - 0xcf8a, 0xcf8b, 0xcf8d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcf8e, 0xcf8f, 0xcf90, 0xcf91, 0xcf92, 0xcf93, 0xcf94, - 0xcf95, 0xcf96, 0xcf97, 0xcf98, 0xcf99, 0xcf9a, 0xcf9b, 0xcf9c, - 0xcf9d, 0xcf9e, 0xcf9f, 0xcfa0, 0xcfa2, 0xcfa3, 0xcfa4, 0xcfa5, - 0xcfa6, 0xcfa7, 0xcfa9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcfaa, 0xcfab, 0xcfac, 0xcfad, 0xcfae, 0xcfaf, 0xcfb1, - 0xcfb2, 0xcfb3, 0xcfb4, 0xcfb5, 0xcfb6, 0xcfb7, 0xcfb8, 0xcfb9, - 0xcfba, 0xcfbb, 0xcfbc, 0xcfbd, 0xcfbe, 0xcfbf, 0xcfc0, 0xcfc1, - 0xcfc2, 0xcfc3, 0xcfc5, 0xcfc6, 0xcfc7, 0xcfc8, 0xcfc9, 0xcfca, - 0xcfcb, 0xae79, 0xae7b, 0xae7c, 0xae7d, 0xae84, 0xae85, 0xae8c, - 0xaebc, 0xaebd, 0xaebe, 0xaec0, 0xaec4, 0xaecc, 0xaecd, 0xaecf, - 0xaed0, 0xaed1, 0xaed8, 0xaed9, 0xaedc, 0xaee8, 0xaeeb, 0xaeed, - 0xaef4, 0xaef8, 0xaefc, 0xaf07, 0xaf08, 0xaf0d, 0xaf10, 0xaf2c, - 0xaf2d, 0xaf30, 0xaf32, 0xaf34, 0xaf3c, 0xaf3d, 0xaf3f, 0xaf41, - 0xaf42, 0xaf43, 0xaf48, 0xaf49, 0xaf50, 0xaf5c, 0xaf5d, 0xaf64, - 0xaf65, 0xaf79, 0xaf80, 0xaf84, 0xaf88, 0xaf90, 0xaf91, 0xaf95, - 0xaf9c, 0xafb8, 0xafb9, 0xafbc, 0xafc0, 0xafc7, 0xafc8, 0xafc9, - 0xafcb, 0xafcd, 0xafce, 0xafd4, 0xafdc, 0xafe8, 0xafe9, 0xaff0, - 0xaff1, 0xaff4, 0xaff8, 0xb000, 0xb001, 0xb004, 0xb00c, 0xb010, - 0xb014, 0xb01c, 0xb01d, 0xb028, 0xb044, 0xb045, 0xb048, 0xb04a, - 0xb04c, 0xb04e, 0xb053, 0xb054, 0xb055, 0xb057, 0xb059, 0x003f, - /* lead byte b3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcfcc, 0xcfcd, 0xcfce, 0xcfcf, 0xcfd0, 0xcfd1, 0xcfd2, - 0xcfd3, 0xcfd4, 0xcfd5, 0xcfd6, 0xcfd7, 0xcfd8, 0xcfd9, 0xcfda, - 0xcfdb, 0xcfdc, 0xcfdd, 0xcfde, 0xcfdf, 0xcfe2, 0xcfe3, 0xcfe5, - 0xcfe6, 0xcfe7, 0xcfe9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcfea, 0xcfeb, 0xcfec, 0xcfed, 0xcfee, 0xcfef, 0xcff2, - 0xcff4, 0xcff6, 0xcff7, 0xcff8, 0xcff9, 0xcffa, 0xcffb, 0xcffd, - 0xcffe, 0xcfff, 0xd001, 0xd002, 0xd003, 0xd005, 0xd006, 0xd007, - 0xd008, 0xd009, 0xd00a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd00b, 0xd00c, 0xd00d, 0xd00e, 0xd00f, 0xd010, 0xd012, - 0xd013, 0xd014, 0xd015, 0xd016, 0xd017, 0xd019, 0xd01a, 0xd01b, - 0xd01c, 0xd01d, 0xd01e, 0xd01f, 0xd020, 0xd021, 0xd022, 0xd023, - 0xd024, 0xd025, 0xd026, 0xd027, 0xd028, 0xd029, 0xd02a, 0xd02b, - 0xd02c, 0xb05d, 0xb07c, 0xb07d, 0xb080, 0xb084, 0xb08c, 0xb08d, - 0xb08f, 0xb091, 0xb098, 0xb099, 0xb09a, 0xb09c, 0xb09f, 0xb0a0, - 0xb0a1, 0xb0a2, 0xb0a8, 0xb0a9, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, - 0xb0af, 0xb0b1, 0xb0b3, 0xb0b4, 0xb0b5, 0xb0b8, 0xb0bc, 0xb0c4, - 0xb0c5, 0xb0c7, 0xb0c8, 0xb0c9, 0xb0d0, 0xb0d1, 0xb0d4, 0xb0d8, - 0xb0e0, 0xb0e5, 0xb108, 0xb109, 0xb10b, 0xb10c, 0xb110, 0xb112, - 0xb113, 0xb118, 0xb119, 0xb11b, 0xb11c, 0xb11d, 0xb123, 0xb124, - 0xb125, 0xb128, 0xb12c, 0xb134, 0xb135, 0xb137, 0xb138, 0xb139, - 0xb140, 0xb141, 0xb144, 0xb148, 0xb150, 0xb151, 0xb154, 0xb155, - 0xb158, 0xb15c, 0xb160, 0xb178, 0xb179, 0xb17c, 0xb180, 0xb182, - 0xb188, 0xb189, 0xb18b, 0xb18d, 0xb192, 0xb193, 0xb194, 0xb198, - 0xb19c, 0xb1a8, 0xb1cc, 0xb1d0, 0xb1d4, 0xb1dc, 0xb1dd, 0x003f, - /* lead byte b4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd02e, 0xd02f, 0xd030, 0xd031, 0xd032, 0xd033, 0xd036, - 0xd037, 0xd039, 0xd03a, 0xd03b, 0xd03d, 0xd03e, 0xd03f, 0xd040, - 0xd041, 0xd042, 0xd043, 0xd046, 0xd048, 0xd04a, 0xd04b, 0xd04c, - 0xd04d, 0xd04e, 0xd04f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd051, 0xd052, 0xd053, 0xd055, 0xd056, 0xd057, 0xd059, - 0xd05a, 0xd05b, 0xd05c, 0xd05d, 0xd05e, 0xd05f, 0xd061, 0xd062, - 0xd063, 0xd064, 0xd065, 0xd066, 0xd067, 0xd068, 0xd069, 0xd06a, - 0xd06b, 0xd06e, 0xd06f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd071, 0xd072, 0xd073, 0xd075, 0xd076, 0xd077, 0xd078, - 0xd079, 0xd07a, 0xd07b, 0xd07e, 0xd07f, 0xd080, 0xd082, 0xd083, - 0xd084, 0xd085, 0xd086, 0xd087, 0xd088, 0xd089, 0xd08a, 0xd08b, - 0xd08c, 0xd08d, 0xd08e, 0xd08f, 0xd090, 0xd091, 0xd092, 0xd093, - 0xd094, 0xb1df, 0xb1e8, 0xb1e9, 0xb1ec, 0xb1f0, 0xb1f9, 0xb1fb, - 0xb1fd, 0xb204, 0xb205, 0xb208, 0xb20b, 0xb20c, 0xb214, 0xb215, - 0xb217, 0xb219, 0xb220, 0xb234, 0xb23c, 0xb258, 0xb25c, 0xb260, - 0xb268, 0xb269, 0xb274, 0xb275, 0xb27c, 0xb284, 0xb285, 0xb289, - 0xb290, 0xb291, 0xb294, 0xb298, 0xb299, 0xb29a, 0xb2a0, 0xb2a1, - 0xb2a3, 0xb2a5, 0xb2a6, 0xb2aa, 0xb2ac, 0xb2b0, 0xb2b4, 0xb2c8, - 0xb2c9, 0xb2cc, 0xb2d0, 0xb2d2, 0xb2d8, 0xb2d9, 0xb2db, 0xb2dd, - 0xb2e2, 0xb2e4, 0xb2e5, 0xb2e6, 0xb2e8, 0xb2eb, 0xb2ec, 0xb2ed, - 0xb2ee, 0xb2ef, 0xb2f3, 0xb2f4, 0xb2f5, 0xb2f7, 0xb2f8, 0xb2f9, - 0xb2fa, 0xb2fb, 0xb2ff, 0xb300, 0xb301, 0xb304, 0xb308, 0xb310, - 0xb311, 0xb313, 0xb314, 0xb315, 0xb31c, 0xb354, 0xb355, 0xb356, - 0xb358, 0xb35b, 0xb35c, 0xb35e, 0xb35f, 0xb364, 0xb365, 0x003f, - /* lead byte b5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd095, 0xd096, 0xd097, 0xd098, 0xd099, 0xd09a, 0xd09b, - 0xd09c, 0xd09d, 0xd09e, 0xd09f, 0xd0a0, 0xd0a1, 0xd0a2, 0xd0a3, - 0xd0a6, 0xd0a7, 0xd0a9, 0xd0aa, 0xd0ab, 0xd0ad, 0xd0ae, 0xd0af, - 0xd0b0, 0xd0b1, 0xd0b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd0b3, 0xd0b6, 0xd0b8, 0xd0ba, 0xd0bb, 0xd0bc, 0xd0bd, - 0xd0be, 0xd0bf, 0xd0c2, 0xd0c3, 0xd0c5, 0xd0c6, 0xd0c7, 0xd0ca, - 0xd0cb, 0xd0cc, 0xd0cd, 0xd0ce, 0xd0cf, 0xd0d2, 0xd0d6, 0xd0d7, - 0xd0d8, 0xd0d9, 0xd0da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd0db, 0xd0de, 0xd0df, 0xd0e1, 0xd0e2, 0xd0e3, 0xd0e5, - 0xd0e6, 0xd0e7, 0xd0e8, 0xd0e9, 0xd0ea, 0xd0eb, 0xd0ee, 0xd0f2, - 0xd0f3, 0xd0f4, 0xd0f5, 0xd0f6, 0xd0f7, 0xd0f9, 0xd0fa, 0xd0fb, - 0xd0fc, 0xd0fd, 0xd0fe, 0xd0ff, 0xd100, 0xd101, 0xd102, 0xd103, - 0xd104, 0xb367, 0xb369, 0xb36b, 0xb36e, 0xb370, 0xb371, 0xb374, - 0xb378, 0xb380, 0xb381, 0xb383, 0xb384, 0xb385, 0xb38c, 0xb390, - 0xb394, 0xb3a0, 0xb3a1, 0xb3a8, 0xb3ac, 0xb3c4, 0xb3c5, 0xb3c8, - 0xb3cb, 0xb3cc, 0xb3ce, 0xb3d0, 0xb3d4, 0xb3d5, 0xb3d7, 0xb3d9, - 0xb3db, 0xb3dd, 0xb3e0, 0xb3e4, 0xb3e8, 0xb3fc, 0xb410, 0xb418, - 0xb41c, 0xb420, 0xb428, 0xb429, 0xb42b, 0xb434, 0xb450, 0xb451, - 0xb454, 0xb458, 0xb460, 0xb461, 0xb463, 0xb465, 0xb46c, 0xb480, - 0xb488, 0xb49d, 0xb4a4, 0xb4a8, 0xb4ac, 0xb4b5, 0xb4b7, 0xb4b9, - 0xb4c0, 0xb4c4, 0xb4c8, 0xb4d0, 0xb4d5, 0xb4dc, 0xb4dd, 0xb4e0, - 0xb4e3, 0xb4e4, 0xb4e6, 0xb4ec, 0xb4ed, 0xb4ef, 0xb4f1, 0xb4f8, - 0xb514, 0xb515, 0xb518, 0xb51b, 0xb51c, 0xb524, 0xb525, 0xb527, - 0xb528, 0xb529, 0xb52a, 0xb530, 0xb531, 0xb534, 0xb538, 0x003f, - /* lead byte b6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd105, 0xd106, 0xd107, 0xd108, 0xd109, 0xd10a, 0xd10b, - 0xd10c, 0xd10e, 0xd10f, 0xd110, 0xd111, 0xd112, 0xd113, 0xd114, - 0xd115, 0xd116, 0xd117, 0xd118, 0xd119, 0xd11a, 0xd11b, 0xd11c, - 0xd11d, 0xd11e, 0xd11f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd120, 0xd121, 0xd122, 0xd123, 0xd124, 0xd125, 0xd126, - 0xd127, 0xd128, 0xd129, 0xd12a, 0xd12b, 0xd12c, 0xd12d, 0xd12e, - 0xd12f, 0xd132, 0xd133, 0xd135, 0xd136, 0xd137, 0xd139, 0xd13b, - 0xd13c, 0xd13d, 0xd13e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd13f, 0xd142, 0xd146, 0xd147, 0xd148, 0xd149, 0xd14a, - 0xd14b, 0xd14e, 0xd14f, 0xd151, 0xd152, 0xd153, 0xd155, 0xd156, - 0xd157, 0xd158, 0xd159, 0xd15a, 0xd15b, 0xd15e, 0xd160, 0xd162, - 0xd163, 0xd164, 0xd165, 0xd166, 0xd167, 0xd169, 0xd16a, 0xd16b, - 0xd16d, 0xb540, 0xb541, 0xb543, 0xb544, 0xb545, 0xb54b, 0xb54c, - 0xb54d, 0xb550, 0xb554, 0xb55c, 0xb55d, 0xb55f, 0xb560, 0xb561, - 0xb5a0, 0xb5a1, 0xb5a4, 0xb5a8, 0xb5aa, 0xb5ab, 0xb5b0, 0xb5b1, - 0xb5b3, 0xb5b4, 0xb5b5, 0xb5bb, 0xb5bc, 0xb5bd, 0xb5c0, 0xb5c4, - 0xb5cc, 0xb5cd, 0xb5cf, 0xb5d0, 0xb5d1, 0xb5d8, 0xb5ec, 0xb610, - 0xb611, 0xb614, 0xb618, 0xb625, 0xb62c, 0xb634, 0xb648, 0xb664, - 0xb668, 0xb69c, 0xb69d, 0xb6a0, 0xb6a4, 0xb6ab, 0xb6ac, 0xb6b1, - 0xb6d4, 0xb6f0, 0xb6f4, 0xb6f8, 0xb700, 0xb701, 0xb705, 0xb728, - 0xb729, 0xb72c, 0xb72f, 0xb730, 0xb738, 0xb739, 0xb73b, 0xb744, - 0xb748, 0xb74c, 0xb754, 0xb755, 0xb760, 0xb764, 0xb768, 0xb770, - 0xb771, 0xb773, 0xb775, 0xb77c, 0xb77d, 0xb780, 0xb784, 0xb78c, - 0xb78d, 0xb78f, 0xb790, 0xb791, 0xb792, 0xb796, 0xb797, 0x003f, - /* lead byte b7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd16e, 0xd16f, 0xd170, 0xd171, 0xd172, 0xd173, 0xd174, - 0xd175, 0xd176, 0xd177, 0xd178, 0xd179, 0xd17a, 0xd17b, 0xd17d, - 0xd17e, 0xd17f, 0xd180, 0xd181, 0xd182, 0xd183, 0xd185, 0xd186, - 0xd187, 0xd189, 0xd18a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd18b, 0xd18c, 0xd18d, 0xd18e, 0xd18f, 0xd190, 0xd191, - 0xd192, 0xd193, 0xd194, 0xd195, 0xd196, 0xd197, 0xd198, 0xd199, - 0xd19a, 0xd19b, 0xd19c, 0xd19d, 0xd19e, 0xd19f, 0xd1a2, 0xd1a3, - 0xd1a5, 0xd1a6, 0xd1a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd1a9, 0xd1aa, 0xd1ab, 0xd1ac, 0xd1ad, 0xd1ae, 0xd1af, - 0xd1b2, 0xd1b4, 0xd1b6, 0xd1b7, 0xd1b8, 0xd1b9, 0xd1bb, 0xd1bd, - 0xd1be, 0xd1bf, 0xd1c1, 0xd1c2, 0xd1c3, 0xd1c4, 0xd1c5, 0xd1c6, - 0xd1c7, 0xd1c8, 0xd1c9, 0xd1ca, 0xd1cb, 0xd1cc, 0xd1cd, 0xd1ce, - 0xd1cf, 0xb798, 0xb799, 0xb79c, 0xb7a0, 0xb7a8, 0xb7a9, 0xb7ab, - 0xb7ac, 0xb7ad, 0xb7b4, 0xb7b5, 0xb7b8, 0xb7c7, 0xb7c9, 0xb7ec, - 0xb7ed, 0xb7f0, 0xb7f4, 0xb7fc, 0xb7fd, 0xb7ff, 0xb800, 0xb801, - 0xb807, 0xb808, 0xb809, 0xb80c, 0xb810, 0xb818, 0xb819, 0xb81b, - 0xb81d, 0xb824, 0xb825, 0xb828, 0xb82c, 0xb834, 0xb835, 0xb837, - 0xb838, 0xb839, 0xb840, 0xb844, 0xb851, 0xb853, 0xb85c, 0xb85d, - 0xb860, 0xb864, 0xb86c, 0xb86d, 0xb86f, 0xb871, 0xb878, 0xb87c, - 0xb88d, 0xb8a8, 0xb8b0, 0xb8b4, 0xb8b8, 0xb8c0, 0xb8c1, 0xb8c3, - 0xb8c5, 0xb8cc, 0xb8d0, 0xb8d4, 0xb8dd, 0xb8df, 0xb8e1, 0xb8e8, - 0xb8e9, 0xb8ec, 0xb8f0, 0xb8f8, 0xb8f9, 0xb8fb, 0xb8fd, 0xb904, - 0xb918, 0xb920, 0xb93c, 0xb93d, 0xb940, 0xb944, 0xb94c, 0xb94f, - 0xb951, 0xb958, 0xb959, 0xb95c, 0xb960, 0xb968, 0xb969, 0x003f, - /* lead byte b8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd1d0, 0xd1d1, 0xd1d2, 0xd1d3, 0xd1d4, 0xd1d5, 0xd1d6, - 0xd1d7, 0xd1d9, 0xd1da, 0xd1db, 0xd1dc, 0xd1dd, 0xd1de, 0xd1df, - 0xd1e0, 0xd1e1, 0xd1e2, 0xd1e3, 0xd1e4, 0xd1e5, 0xd1e6, 0xd1e7, - 0xd1e8, 0xd1e9, 0xd1ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd1eb, 0xd1ec, 0xd1ed, 0xd1ee, 0xd1ef, 0xd1f0, 0xd1f1, - 0xd1f2, 0xd1f3, 0xd1f5, 0xd1f6, 0xd1f7, 0xd1f9, 0xd1fa, 0xd1fb, - 0xd1fc, 0xd1fd, 0xd1fe, 0xd1ff, 0xd200, 0xd201, 0xd202, 0xd203, - 0xd204, 0xd205, 0xd206, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd208, 0xd20a, 0xd20b, 0xd20c, 0xd20d, 0xd20e, 0xd20f, - 0xd211, 0xd212, 0xd213, 0xd214, 0xd215, 0xd216, 0xd217, 0xd218, - 0xd219, 0xd21a, 0xd21b, 0xd21c, 0xd21d, 0xd21e, 0xd21f, 0xd220, - 0xd221, 0xd222, 0xd223, 0xd224, 0xd225, 0xd226, 0xd227, 0xd228, - 0xd229, 0xb96b, 0xb96d, 0xb974, 0xb975, 0xb978, 0xb97c, 0xb984, - 0xb985, 0xb987, 0xb989, 0xb98a, 0xb98d, 0xb98e, 0xb9ac, 0xb9ad, - 0xb9b0, 0xb9b4, 0xb9bc, 0xb9bd, 0xb9bf, 0xb9c1, 0xb9c8, 0xb9c9, - 0xb9cc, 0xb9ce, 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d2, 0xb9d8, 0xb9d9, - 0xb9db, 0xb9dd, 0xb9de, 0xb9e1, 0xb9e3, 0xb9e4, 0xb9e5, 0xb9e8, - 0xb9ec, 0xb9f4, 0xb9f5, 0xb9f7, 0xb9f8, 0xb9f9, 0xb9fa, 0xba00, - 0xba01, 0xba08, 0xba15, 0xba38, 0xba39, 0xba3c, 0xba40, 0xba42, - 0xba48, 0xba49, 0xba4b, 0xba4d, 0xba4e, 0xba53, 0xba54, 0xba55, - 0xba58, 0xba5c, 0xba64, 0xba65, 0xba67, 0xba68, 0xba69, 0xba70, - 0xba71, 0xba74, 0xba78, 0xba83, 0xba84, 0xba85, 0xba87, 0xba8c, - 0xbaa8, 0xbaa9, 0xbaab, 0xbaac, 0xbab0, 0xbab2, 0xbab8, 0xbab9, - 0xbabb, 0xbabd, 0xbac4, 0xbac8, 0xbad8, 0xbad9, 0xbafc, 0x003f, - /* lead byte b9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd22a, 0xd22b, 0xd22e, 0xd22f, 0xd231, 0xd232, 0xd233, - 0xd235, 0xd236, 0xd237, 0xd238, 0xd239, 0xd23a, 0xd23b, 0xd23e, - 0xd240, 0xd242, 0xd243, 0xd244, 0xd245, 0xd246, 0xd247, 0xd249, - 0xd24a, 0xd24b, 0xd24c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd24d, 0xd24e, 0xd24f, 0xd250, 0xd251, 0xd252, 0xd253, - 0xd254, 0xd255, 0xd256, 0xd257, 0xd258, 0xd259, 0xd25a, 0xd25b, - 0xd25d, 0xd25e, 0xd25f, 0xd260, 0xd261, 0xd262, 0xd263, 0xd265, - 0xd266, 0xd267, 0xd268, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd269, 0xd26a, 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, - 0xd270, 0xd271, 0xd272, 0xd273, 0xd274, 0xd275, 0xd276, 0xd277, - 0xd278, 0xd279, 0xd27a, 0xd27b, 0xd27c, 0xd27d, 0xd27e, 0xd27f, - 0xd282, 0xd283, 0xd285, 0xd286, 0xd287, 0xd289, 0xd28a, 0xd28b, - 0xd28c, 0xbb00, 0xbb04, 0xbb0d, 0xbb0f, 0xbb11, 0xbb18, 0xbb1c, - 0xbb20, 0xbb29, 0xbb2b, 0xbb34, 0xbb35, 0xbb36, 0xbb38, 0xbb3b, - 0xbb3c, 0xbb3d, 0xbb3e, 0xbb44, 0xbb45, 0xbb47, 0xbb49, 0xbb4d, - 0xbb4f, 0xbb50, 0xbb54, 0xbb58, 0xbb61, 0xbb63, 0xbb6c, 0xbb88, - 0xbb8c, 0xbb90, 0xbba4, 0xbba8, 0xbbac, 0xbbb4, 0xbbb7, 0xbbc0, - 0xbbc4, 0xbbc8, 0xbbd0, 0xbbd3, 0xbbf8, 0xbbf9, 0xbbfc, 0xbbff, - 0xbc00, 0xbc02, 0xbc08, 0xbc09, 0xbc0b, 0xbc0c, 0xbc0d, 0xbc0f, - 0xbc11, 0xbc14, 0xbc15, 0xbc16, 0xbc17, 0xbc18, 0xbc1b, 0xbc1c, - 0xbc1d, 0xbc1e, 0xbc1f, 0xbc24, 0xbc25, 0xbc27, 0xbc29, 0xbc2d, - 0xbc30, 0xbc31, 0xbc34, 0xbc38, 0xbc40, 0xbc41, 0xbc43, 0xbc44, - 0xbc45, 0xbc49, 0xbc4c, 0xbc4d, 0xbc50, 0xbc5d, 0xbc84, 0xbc85, - 0xbc88, 0xbc8b, 0xbc8c, 0xbc8e, 0xbc94, 0xbc95, 0xbc97, 0x003f, - /* lead byte ba */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd28d, 0xd28e, 0xd28f, 0xd292, 0xd293, 0xd294, 0xd296, - 0xd297, 0xd298, 0xd299, 0xd29a, 0xd29b, 0xd29d, 0xd29e, 0xd29f, - 0xd2a1, 0xd2a2, 0xd2a3, 0xd2a5, 0xd2a6, 0xd2a7, 0xd2a8, 0xd2a9, - 0xd2aa, 0xd2ab, 0xd2ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd2ae, 0xd2af, 0xd2b0, 0xd2b2, 0xd2b3, 0xd2b4, 0xd2b5, - 0xd2b6, 0xd2b7, 0xd2ba, 0xd2bb, 0xd2bd, 0xd2be, 0xd2c1, 0xd2c3, - 0xd2c4, 0xd2c5, 0xd2c6, 0xd2c7, 0xd2ca, 0xd2cc, 0xd2cd, 0xd2ce, - 0xd2cf, 0xd2d0, 0xd2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd2d2, 0xd2d3, 0xd2d5, 0xd2d6, 0xd2d7, 0xd2d9, 0xd2da, - 0xd2db, 0xd2dd, 0xd2de, 0xd2df, 0xd2e0, 0xd2e1, 0xd2e2, 0xd2e3, - 0xd2e6, 0xd2e7, 0xd2e8, 0xd2e9, 0xd2ea, 0xd2eb, 0xd2ec, 0xd2ed, - 0xd2ee, 0xd2ef, 0xd2f2, 0xd2f3, 0xd2f5, 0xd2f6, 0xd2f7, 0xd2f9, - 0xd2fa, 0xbc99, 0xbc9a, 0xbca0, 0xbca1, 0xbca4, 0xbca7, 0xbca8, - 0xbcb0, 0xbcb1, 0xbcb3, 0xbcb4, 0xbcb5, 0xbcbc, 0xbcbd, 0xbcc0, - 0xbcc4, 0xbccd, 0xbccf, 0xbcd0, 0xbcd1, 0xbcd5, 0xbcd8, 0xbcdc, - 0xbcf4, 0xbcf5, 0xbcf6, 0xbcf8, 0xbcfc, 0xbd04, 0xbd05, 0xbd07, - 0xbd09, 0xbd10, 0xbd14, 0xbd24, 0xbd2c, 0xbd40, 0xbd48, 0xbd49, - 0xbd4c, 0xbd50, 0xbd58, 0xbd59, 0xbd64, 0xbd68, 0xbd80, 0xbd81, - 0xbd84, 0xbd87, 0xbd88, 0xbd89, 0xbd8a, 0xbd90, 0xbd91, 0xbd93, - 0xbd95, 0xbd99, 0xbd9a, 0xbd9c, 0xbda4, 0xbdb0, 0xbdb8, 0xbdd4, - 0xbdd5, 0xbdd8, 0xbddc, 0xbde9, 0xbdf0, 0xbdf4, 0xbdf8, 0xbe00, - 0xbe03, 0xbe05, 0xbe0c, 0xbe0d, 0xbe10, 0xbe14, 0xbe1c, 0xbe1d, - 0xbe1f, 0xbe44, 0xbe45, 0xbe48, 0xbe4c, 0xbe4e, 0xbe54, 0xbe55, - 0xbe57, 0xbe59, 0xbe5a, 0xbe5b, 0xbe60, 0xbe61, 0xbe64, 0x003f, - /* lead byte bb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd2fb, 0xd2fc, 0xd2fd, 0xd2fe, 0xd2ff, 0xd302, 0xd304, - 0xd306, 0xd307, 0xd308, 0xd309, 0xd30a, 0xd30b, 0xd30f, 0xd311, - 0xd312, 0xd313, 0xd315, 0xd317, 0xd318, 0xd319, 0xd31a, 0xd31b, - 0xd31e, 0xd322, 0xd323, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd324, 0xd326, 0xd327, 0xd32a, 0xd32b, 0xd32d, 0xd32e, - 0xd32f, 0xd331, 0xd332, 0xd333, 0xd334, 0xd335, 0xd336, 0xd337, - 0xd33a, 0xd33e, 0xd33f, 0xd340, 0xd341, 0xd342, 0xd343, 0xd346, - 0xd347, 0xd348, 0xd349, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd34a, 0xd34b, 0xd34c, 0xd34d, 0xd34e, 0xd34f, 0xd350, - 0xd351, 0xd352, 0xd353, 0xd354, 0xd355, 0xd356, 0xd357, 0xd358, - 0xd359, 0xd35a, 0xd35b, 0xd35c, 0xd35d, 0xd35e, 0xd35f, 0xd360, - 0xd361, 0xd362, 0xd363, 0xd364, 0xd365, 0xd366, 0xd367, 0xd368, - 0xd369, 0xbe68, 0xbe6a, 0xbe70, 0xbe71, 0xbe73, 0xbe74, 0xbe75, - 0xbe7b, 0xbe7c, 0xbe7d, 0xbe80, 0xbe84, 0xbe8c, 0xbe8d, 0xbe8f, - 0xbe90, 0xbe91, 0xbe98, 0xbe99, 0xbea8, 0xbed0, 0xbed1, 0xbed4, - 0xbed7, 0xbed8, 0xbee0, 0xbee3, 0xbee4, 0xbee5, 0xbeec, 0xbf01, - 0xbf08, 0xbf09, 0xbf18, 0xbf19, 0xbf1b, 0xbf1c, 0xbf1d, 0xbf40, - 0xbf41, 0xbf44, 0xbf48, 0xbf50, 0xbf51, 0xbf55, 0xbf94, 0xbfb0, - 0xbfc5, 0xbfcc, 0xbfcd, 0xbfd0, 0xbfd4, 0xbfdc, 0xbfdf, 0xbfe1, - 0xc03c, 0xc051, 0xc058, 0xc05c, 0xc060, 0xc068, 0xc069, 0xc090, - 0xc091, 0xc094, 0xc098, 0xc0a0, 0xc0a1, 0xc0a3, 0xc0a5, 0xc0ac, - 0xc0ad, 0xc0af, 0xc0b0, 0xc0b3, 0xc0b4, 0xc0b5, 0xc0b6, 0xc0bc, - 0xc0bd, 0xc0bf, 0xc0c0, 0xc0c1, 0xc0c5, 0xc0c8, 0xc0c9, 0xc0cc, - 0xc0d0, 0xc0d8, 0xc0d9, 0xc0db, 0xc0dc, 0xc0dd, 0xc0e4, 0x003f, - /* lead byte bc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd36a, 0xd36b, 0xd36c, 0xd36d, 0xd36e, 0xd36f, 0xd370, - 0xd371, 0xd372, 0xd373, 0xd374, 0xd375, 0xd376, 0xd377, 0xd378, - 0xd379, 0xd37a, 0xd37b, 0xd37e, 0xd37f, 0xd381, 0xd382, 0xd383, - 0xd385, 0xd386, 0xd387, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd388, 0xd389, 0xd38a, 0xd38b, 0xd38e, 0xd392, 0xd393, - 0xd394, 0xd395, 0xd396, 0xd397, 0xd39a, 0xd39b, 0xd39d, 0xd39e, - 0xd39f, 0xd3a1, 0xd3a2, 0xd3a3, 0xd3a4, 0xd3a5, 0xd3a6, 0xd3a7, - 0xd3aa, 0xd3ac, 0xd3ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd3af, 0xd3b0, 0xd3b1, 0xd3b2, 0xd3b3, 0xd3b5, 0xd3b6, - 0xd3b7, 0xd3b9, 0xd3ba, 0xd3bb, 0xd3bd, 0xd3be, 0xd3bf, 0xd3c0, - 0xd3c1, 0xd3c2, 0xd3c3, 0xd3c6, 0xd3c7, 0xd3ca, 0xd3cb, 0xd3cc, - 0xd3cd, 0xd3ce, 0xd3cf, 0xd3d1, 0xd3d2, 0xd3d3, 0xd3d4, 0xd3d5, - 0xd3d6, 0xc0e5, 0xc0e8, 0xc0ec, 0xc0f4, 0xc0f5, 0xc0f7, 0xc0f9, - 0xc100, 0xc104, 0xc108, 0xc110, 0xc115, 0xc11c, 0xc11d, 0xc11e, - 0xc11f, 0xc120, 0xc123, 0xc124, 0xc126, 0xc127, 0xc12c, 0xc12d, - 0xc12f, 0xc130, 0xc131, 0xc136, 0xc138, 0xc139, 0xc13c, 0xc140, - 0xc148, 0xc149, 0xc14b, 0xc14c, 0xc14d, 0xc154, 0xc155, 0xc158, - 0xc15c, 0xc164, 0xc165, 0xc167, 0xc168, 0xc169, 0xc170, 0xc174, - 0xc178, 0xc185, 0xc18c, 0xc18d, 0xc18e, 0xc190, 0xc194, 0xc196, - 0xc19c, 0xc19d, 0xc19f, 0xc1a1, 0xc1a5, 0xc1a8, 0xc1a9, 0xc1ac, - 0xc1b0, 0xc1bd, 0xc1c4, 0xc1c8, 0xc1cc, 0xc1d4, 0xc1d7, 0xc1d8, - 0xc1e0, 0xc1e4, 0xc1e8, 0xc1f0, 0xc1f1, 0xc1f3, 0xc1fc, 0xc1fd, - 0xc200, 0xc204, 0xc20c, 0xc20d, 0xc20f, 0xc211, 0xc218, 0xc219, - 0xc21c, 0xc21f, 0xc220, 0xc228, 0xc229, 0xc22b, 0xc22d, 0x003f, - /* lead byte bd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd3d7, 0xd3d9, 0xd3da, 0xd3db, 0xd3dc, 0xd3dd, 0xd3de, - 0xd3df, 0xd3e0, 0xd3e2, 0xd3e4, 0xd3e5, 0xd3e6, 0xd3e7, 0xd3e8, - 0xd3e9, 0xd3ea, 0xd3eb, 0xd3ee, 0xd3ef, 0xd3f1, 0xd3f2, 0xd3f3, - 0xd3f5, 0xd3f6, 0xd3f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd3f8, 0xd3f9, 0xd3fa, 0xd3fb, 0xd3fe, 0xd400, 0xd402, - 0xd403, 0xd404, 0xd405, 0xd406, 0xd407, 0xd409, 0xd40a, 0xd40b, - 0xd40c, 0xd40d, 0xd40e, 0xd40f, 0xd410, 0xd411, 0xd412, 0xd413, - 0xd414, 0xd415, 0xd416, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd417, 0xd418, 0xd419, 0xd41a, 0xd41b, 0xd41c, 0xd41e, - 0xd41f, 0xd420, 0xd421, 0xd422, 0xd423, 0xd424, 0xd425, 0xd426, - 0xd427, 0xd428, 0xd429, 0xd42a, 0xd42b, 0xd42c, 0xd42d, 0xd42e, - 0xd42f, 0xd430, 0xd431, 0xd432, 0xd433, 0xd434, 0xd435, 0xd436, - 0xd437, 0xc22f, 0xc231, 0xc232, 0xc234, 0xc248, 0xc250, 0xc251, - 0xc254, 0xc258, 0xc260, 0xc265, 0xc26c, 0xc26d, 0xc270, 0xc274, - 0xc27c, 0xc27d, 0xc27f, 0xc281, 0xc288, 0xc289, 0xc290, 0xc298, - 0xc29b, 0xc29d, 0xc2a4, 0xc2a5, 0xc2a8, 0xc2ac, 0xc2ad, 0xc2b4, - 0xc2b5, 0xc2b7, 0xc2b9, 0xc2dc, 0xc2dd, 0xc2e0, 0xc2e3, 0xc2e4, - 0xc2eb, 0xc2ec, 0xc2ed, 0xc2ef, 0xc2f1, 0xc2f6, 0xc2f8, 0xc2f9, - 0xc2fb, 0xc2fc, 0xc300, 0xc308, 0xc309, 0xc30c, 0xc30d, 0xc313, - 0xc314, 0xc315, 0xc318, 0xc31c, 0xc324, 0xc325, 0xc328, 0xc329, - 0xc345, 0xc368, 0xc369, 0xc36c, 0xc370, 0xc372, 0xc378, 0xc379, - 0xc37c, 0xc37d, 0xc384, 0xc388, 0xc38c, 0xc3c0, 0xc3d8, 0xc3d9, - 0xc3dc, 0xc3df, 0xc3e0, 0xc3e2, 0xc3e8, 0xc3e9, 0xc3ed, 0xc3f4, - 0xc3f5, 0xc3f8, 0xc408, 0xc410, 0xc424, 0xc42c, 0xc430, 0x003f, - /* lead byte be */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd438, 0xd439, 0xd43a, 0xd43b, 0xd43c, 0xd43d, 0xd43e, - 0xd43f, 0xd441, 0xd442, 0xd443, 0xd445, 0xd446, 0xd447, 0xd448, - 0xd449, 0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, 0xd44f, 0xd450, - 0xd451, 0xd452, 0xd453, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd454, 0xd455, 0xd456, 0xd457, 0xd458, 0xd459, 0xd45a, - 0xd45b, 0xd45d, 0xd45e, 0xd45f, 0xd461, 0xd462, 0xd463, 0xd465, - 0xd466, 0xd467, 0xd468, 0xd469, 0xd46a, 0xd46b, 0xd46c, 0xd46e, - 0xd470, 0xd471, 0xd472, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd473, 0xd474, 0xd475, 0xd476, 0xd477, 0xd47a, 0xd47b, - 0xd47d, 0xd47e, 0xd481, 0xd483, 0xd484, 0xd485, 0xd486, 0xd487, - 0xd48a, 0xd48c, 0xd48e, 0xd48f, 0xd490, 0xd491, 0xd492, 0xd493, - 0xd495, 0xd496, 0xd497, 0xd498, 0xd499, 0xd49a, 0xd49b, 0xd49c, - 0xd49d, 0xc434, 0xc43c, 0xc43d, 0xc448, 0xc464, 0xc465, 0xc468, - 0xc46c, 0xc474, 0xc475, 0xc479, 0xc480, 0xc494, 0xc49c, 0xc4b8, - 0xc4bc, 0xc4e9, 0xc4f0, 0xc4f1, 0xc4f4, 0xc4f8, 0xc4fa, 0xc4ff, - 0xc500, 0xc501, 0xc50c, 0xc510, 0xc514, 0xc51c, 0xc528, 0xc529, - 0xc52c, 0xc530, 0xc538, 0xc539, 0xc53b, 0xc53d, 0xc544, 0xc545, - 0xc548, 0xc549, 0xc54a, 0xc54c, 0xc54d, 0xc54e, 0xc553, 0xc554, - 0xc555, 0xc557, 0xc558, 0xc559, 0xc55d, 0xc55e, 0xc560, 0xc561, - 0xc564, 0xc568, 0xc570, 0xc571, 0xc573, 0xc574, 0xc575, 0xc57c, - 0xc57d, 0xc580, 0xc584, 0xc587, 0xc58c, 0xc58d, 0xc58f, 0xc591, - 0xc595, 0xc597, 0xc598, 0xc59c, 0xc5a0, 0xc5a9, 0xc5b4, 0xc5b5, - 0xc5b8, 0xc5b9, 0xc5bb, 0xc5bc, 0xc5bd, 0xc5be, 0xc5c4, 0xc5c5, - 0xc5c6, 0xc5c7, 0xc5c8, 0xc5c9, 0xc5ca, 0xc5cc, 0xc5ce, 0x003f, - /* lead byte bf */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd49e, 0xd49f, 0xd4a0, 0xd4a1, 0xd4a2, 0xd4a3, 0xd4a4, - 0xd4a5, 0xd4a6, 0xd4a7, 0xd4a8, 0xd4aa, 0xd4ab, 0xd4ac, 0xd4ad, - 0xd4ae, 0xd4af, 0xd4b0, 0xd4b1, 0xd4b2, 0xd4b3, 0xd4b4, 0xd4b5, - 0xd4b6, 0xd4b7, 0xd4b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd4b9, 0xd4ba, 0xd4bb, 0xd4bc, 0xd4bd, 0xd4be, 0xd4bf, - 0xd4c0, 0xd4c1, 0xd4c2, 0xd4c3, 0xd4c4, 0xd4c5, 0xd4c6, 0xd4c7, - 0xd4c8, 0xd4c9, 0xd4ca, 0xd4cb, 0xd4cd, 0xd4ce, 0xd4cf, 0xd4d1, - 0xd4d2, 0xd4d3, 0xd4d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd4d6, 0xd4d7, 0xd4d8, 0xd4d9, 0xd4da, 0xd4db, 0xd4dd, - 0xd4de, 0xd4e0, 0xd4e1, 0xd4e2, 0xd4e3, 0xd4e4, 0xd4e5, 0xd4e6, - 0xd4e7, 0xd4e9, 0xd4ea, 0xd4eb, 0xd4ed, 0xd4ee, 0xd4ef, 0xd4f1, - 0xd4f2, 0xd4f3, 0xd4f4, 0xd4f5, 0xd4f6, 0xd4f7, 0xd4f9, 0xd4fa, - 0xd4fc, 0xc5d0, 0xc5d1, 0xc5d4, 0xc5d8, 0xc5e0, 0xc5e1, 0xc5e3, - 0xc5e5, 0xc5ec, 0xc5ed, 0xc5ee, 0xc5f0, 0xc5f4, 0xc5f6, 0xc5f7, - 0xc5fc, 0xc5fd, 0xc5fe, 0xc5ff, 0xc600, 0xc601, 0xc605, 0xc606, - 0xc607, 0xc608, 0xc60c, 0xc610, 0xc618, 0xc619, 0xc61b, 0xc61c, - 0xc624, 0xc625, 0xc628, 0xc62c, 0xc62d, 0xc62e, 0xc630, 0xc633, - 0xc634, 0xc635, 0xc637, 0xc639, 0xc63b, 0xc640, 0xc641, 0xc644, - 0xc648, 0xc650, 0xc651, 0xc653, 0xc654, 0xc655, 0xc65c, 0xc65d, - 0xc660, 0xc66c, 0xc66f, 0xc671, 0xc678, 0xc679, 0xc67c, 0xc680, - 0xc688, 0xc689, 0xc68b, 0xc68d, 0xc694, 0xc695, 0xc698, 0xc69c, - 0xc6a4, 0xc6a5, 0xc6a7, 0xc6a9, 0xc6b0, 0xc6b1, 0xc6b4, 0xc6b8, - 0xc6b9, 0xc6ba, 0xc6c0, 0xc6c1, 0xc6c3, 0xc6c5, 0xc6cc, 0xc6cd, - 0xc6d0, 0xc6d4, 0xc6dc, 0xc6dd, 0xc6e0, 0xc6e1, 0xc6e8, 0x003f, - /* lead byte c0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd4fe, 0xd4ff, 0xd500, 0xd501, 0xd502, 0xd503, 0xd505, - 0xd506, 0xd507, 0xd509, 0xd50a, 0xd50b, 0xd50d, 0xd50e, 0xd50f, - 0xd510, 0xd511, 0xd512, 0xd513, 0xd516, 0xd518, 0xd519, 0xd51a, - 0xd51b, 0xd51c, 0xd51d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd51e, 0xd51f, 0xd520, 0xd521, 0xd522, 0xd523, 0xd524, - 0xd525, 0xd526, 0xd527, 0xd528, 0xd529, 0xd52a, 0xd52b, 0xd52c, - 0xd52d, 0xd52e, 0xd52f, 0xd530, 0xd531, 0xd532, 0xd533, 0xd534, - 0xd535, 0xd536, 0xd537, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd538, 0xd539, 0xd53a, 0xd53b, 0xd53e, 0xd53f, 0xd541, - 0xd542, 0xd543, 0xd545, 0xd546, 0xd547, 0xd548, 0xd549, 0xd54a, - 0xd54b, 0xd54e, 0xd550, 0xd552, 0xd553, 0xd554, 0xd555, 0xd556, - 0xd557, 0xd55a, 0xd55b, 0xd55d, 0xd55e, 0xd55f, 0xd561, 0xd562, - 0xd563, 0xc6e9, 0xc6ec, 0xc6f0, 0xc6f8, 0xc6f9, 0xc6fd, 0xc704, - 0xc705, 0xc708, 0xc70c, 0xc714, 0xc715, 0xc717, 0xc719, 0xc720, - 0xc721, 0xc724, 0xc728, 0xc730, 0xc731, 0xc733, 0xc735, 0xc737, - 0xc73c, 0xc73d, 0xc740, 0xc744, 0xc74a, 0xc74c, 0xc74d, 0xc74f, - 0xc751, 0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, - 0xc75c, 0xc760, 0xc768, 0xc76b, 0xc774, 0xc775, 0xc778, 0xc77c, - 0xc77d, 0xc77e, 0xc783, 0xc784, 0xc785, 0xc787, 0xc788, 0xc789, - 0xc78a, 0xc78e, 0xc790, 0xc791, 0xc794, 0xc796, 0xc797, 0xc798, - 0xc79a, 0xc7a0, 0xc7a1, 0xc7a3, 0xc7a4, 0xc7a5, 0xc7a6, 0xc7ac, - 0xc7ad, 0xc7b0, 0xc7b4, 0xc7bc, 0xc7bd, 0xc7bf, 0xc7c0, 0xc7c1, - 0xc7c8, 0xc7c9, 0xc7cc, 0xc7ce, 0xc7d0, 0xc7d8, 0xc7dd, 0xc7e4, - 0xc7e8, 0xc7ec, 0xc800, 0xc801, 0xc804, 0xc808, 0xc80a, 0x003f, - /* lead byte c1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd564, 0xd566, 0xd567, 0xd56a, 0xd56c, 0xd56e, 0xd56f, - 0xd570, 0xd571, 0xd572, 0xd573, 0xd576, 0xd577, 0xd579, 0xd57a, - 0xd57b, 0xd57d, 0xd57e, 0xd57f, 0xd580, 0xd581, 0xd582, 0xd583, - 0xd586, 0xd58a, 0xd58b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd58c, 0xd58d, 0xd58e, 0xd58f, 0xd591, 0xd592, 0xd593, - 0xd594, 0xd595, 0xd596, 0xd597, 0xd598, 0xd599, 0xd59a, 0xd59b, - 0xd59c, 0xd59d, 0xd59e, 0xd59f, 0xd5a0, 0xd5a1, 0xd5a2, 0xd5a3, - 0xd5a4, 0xd5a6, 0xd5a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd5a8, 0xd5a9, 0xd5aa, 0xd5ab, 0xd5ac, 0xd5ad, 0xd5ae, - 0xd5af, 0xd5b0, 0xd5b1, 0xd5b2, 0xd5b3, 0xd5b4, 0xd5b5, 0xd5b6, - 0xd5b7, 0xd5b8, 0xd5b9, 0xd5ba, 0xd5bb, 0xd5bc, 0xd5bd, 0xd5be, - 0xd5bf, 0xd5c0, 0xd5c1, 0xd5c2, 0xd5c3, 0xd5c4, 0xd5c5, 0xd5c6, - 0xd5c7, 0xc810, 0xc811, 0xc813, 0xc815, 0xc816, 0xc81c, 0xc81d, - 0xc820, 0xc824, 0xc82c, 0xc82d, 0xc82f, 0xc831, 0xc838, 0xc83c, - 0xc840, 0xc848, 0xc849, 0xc84c, 0xc84d, 0xc854, 0xc870, 0xc871, - 0xc874, 0xc878, 0xc87a, 0xc880, 0xc881, 0xc883, 0xc885, 0xc886, - 0xc887, 0xc88b, 0xc88c, 0xc88d, 0xc894, 0xc89d, 0xc89f, 0xc8a1, - 0xc8a8, 0xc8bc, 0xc8bd, 0xc8c4, 0xc8c8, 0xc8cc, 0xc8d4, 0xc8d5, - 0xc8d7, 0xc8d9, 0xc8e0, 0xc8e1, 0xc8e4, 0xc8f5, 0xc8fc, 0xc8fd, - 0xc900, 0xc904, 0xc905, 0xc906, 0xc90c, 0xc90d, 0xc90f, 0xc911, - 0xc918, 0xc92c, 0xc934, 0xc950, 0xc951, 0xc954, 0xc958, 0xc960, - 0xc961, 0xc963, 0xc96c, 0xc970, 0xc974, 0xc97c, 0xc988, 0xc989, - 0xc98c, 0xc990, 0xc998, 0xc999, 0xc99b, 0xc99d, 0xc9c0, 0xc9c1, - 0xc9c4, 0xc9c7, 0xc9c8, 0xc9ca, 0xc9d0, 0xc9d1, 0xc9d3, 0x003f, - /* lead byte c2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd5ca, 0xd5cb, 0xd5cd, 0xd5ce, 0xd5cf, 0xd5d1, 0xd5d3, - 0xd5d4, 0xd5d5, 0xd5d6, 0xd5d7, 0xd5da, 0xd5dc, 0xd5de, 0xd5df, - 0xd5e0, 0xd5e1, 0xd5e2, 0xd5e3, 0xd5e6, 0xd5e7, 0xd5e9, 0xd5ea, - 0xd5eb, 0xd5ed, 0xd5ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd5ef, 0xd5f0, 0xd5f1, 0xd5f2, 0xd5f3, 0xd5f6, 0xd5f8, - 0xd5fa, 0xd5fb, 0xd5fc, 0xd5fd, 0xd5fe, 0xd5ff, 0xd602, 0xd603, - 0xd605, 0xd606, 0xd607, 0xd609, 0xd60a, 0xd60b, 0xd60c, 0xd60d, - 0xd60e, 0xd60f, 0xd612, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd616, 0xd617, 0xd618, 0xd619, 0xd61a, 0xd61b, 0xd61d, - 0xd61e, 0xd61f, 0xd621, 0xd622, 0xd623, 0xd625, 0xd626, 0xd627, - 0xd628, 0xd629, 0xd62a, 0xd62b, 0xd62c, 0xd62e, 0xd62f, 0xd630, - 0xd631, 0xd632, 0xd633, 0xd634, 0xd635, 0xd636, 0xd637, 0xd63a, - 0xd63b, 0xc9d5, 0xc9d6, 0xc9d9, 0xc9da, 0xc9dc, 0xc9dd, 0xc9e0, - 0xc9e2, 0xc9e4, 0xc9e7, 0xc9ec, 0xc9ed, 0xc9ef, 0xc9f0, 0xc9f1, - 0xc9f8, 0xc9f9, 0xc9fc, 0xca00, 0xca08, 0xca09, 0xca0b, 0xca0c, - 0xca0d, 0xca14, 0xca18, 0xca29, 0xca4c, 0xca4d, 0xca50, 0xca54, - 0xca5c, 0xca5d, 0xca5f, 0xca60, 0xca61, 0xca68, 0xca7d, 0xca84, - 0xca98, 0xcabc, 0xcabd, 0xcac0, 0xcac4, 0xcacc, 0xcacd, 0xcacf, - 0xcad1, 0xcad3, 0xcad8, 0xcad9, 0xcae0, 0xcaec, 0xcaf4, 0xcb08, - 0xcb10, 0xcb14, 0xcb18, 0xcb20, 0xcb21, 0xcb41, 0xcb48, 0xcb49, - 0xcb4c, 0xcb50, 0xcb58, 0xcb59, 0xcb5d, 0xcb64, 0xcb78, 0xcb79, - 0xcb9c, 0xcbb8, 0xcbd4, 0xcbe4, 0xcbe7, 0xcbe9, 0xcc0c, 0xcc0d, - 0xcc10, 0xcc14, 0xcc1c, 0xcc1d, 0xcc21, 0xcc22, 0xcc27, 0xcc28, - 0xcc29, 0xcc2c, 0xcc2e, 0xcc30, 0xcc38, 0xcc39, 0xcc3b, 0x003f, - /* lead byte c3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd63d, 0xd63e, 0xd63f, 0xd641, 0xd642, 0xd643, 0xd644, - 0xd646, 0xd647, 0xd64a, 0xd64c, 0xd64e, 0xd64f, 0xd650, 0xd652, - 0xd653, 0xd656, 0xd657, 0xd659, 0xd65a, 0xd65b, 0xd65d, 0xd65e, - 0xd65f, 0xd660, 0xd661, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd662, 0xd663, 0xd664, 0xd665, 0xd666, 0xd668, 0xd66a, - 0xd66b, 0xd66c, 0xd66d, 0xd66e, 0xd66f, 0xd672, 0xd673, 0xd675, - 0xd676, 0xd677, 0xd678, 0xd679, 0xd67a, 0xd67b, 0xd67c, 0xd67d, - 0xd67e, 0xd67f, 0xd680, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd681, 0xd682, 0xd684, 0xd686, 0xd687, 0xd688, 0xd689, - 0xd68a, 0xd68b, 0xd68e, 0xd68f, 0xd691, 0xd692, 0xd693, 0xd695, - 0xd696, 0xd697, 0xd698, 0xd699, 0xd69a, 0xd69b, 0xd69c, 0xd69e, - 0xd6a0, 0xd6a2, 0xd6a3, 0xd6a4, 0xd6a5, 0xd6a6, 0xd6a7, 0xd6a9, - 0xd6aa, 0xcc3c, 0xcc3d, 0xcc3e, 0xcc44, 0xcc45, 0xcc48, 0xcc4c, - 0xcc54, 0xcc55, 0xcc57, 0xcc58, 0xcc59, 0xcc60, 0xcc64, 0xcc66, - 0xcc68, 0xcc70, 0xcc75, 0xcc98, 0xcc99, 0xcc9c, 0xcca0, 0xcca8, - 0xcca9, 0xccab, 0xccac, 0xccad, 0xccb4, 0xccb5, 0xccb8, 0xccbc, - 0xccc4, 0xccc5, 0xccc7, 0xccc9, 0xccd0, 0xccd4, 0xcce4, 0xccec, - 0xccf0, 0xcd01, 0xcd08, 0xcd09, 0xcd0c, 0xcd10, 0xcd18, 0xcd19, - 0xcd1b, 0xcd1d, 0xcd24, 0xcd28, 0xcd2c, 0xcd39, 0xcd5c, 0xcd60, - 0xcd64, 0xcd6c, 0xcd6d, 0xcd6f, 0xcd71, 0xcd78, 0xcd88, 0xcd94, - 0xcd95, 0xcd98, 0xcd9c, 0xcda4, 0xcda5, 0xcda7, 0xcda9, 0xcdb0, - 0xcdc4, 0xcdcc, 0xcdd0, 0xcde8, 0xcdec, 0xcdf0, 0xcdf8, 0xcdf9, - 0xcdfb, 0xcdfd, 0xce04, 0xce08, 0xce0c, 0xce14, 0xce19, 0xce20, - 0xce21, 0xce24, 0xce28, 0xce30, 0xce31, 0xce33, 0xce35, 0x003f, - /* lead byte c4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd6ab, 0xd6ad, 0xd6ae, 0xd6af, 0xd6b1, 0xd6b2, 0xd6b3, - 0xd6b4, 0xd6b5, 0xd6b6, 0xd6b7, 0xd6b8, 0xd6ba, 0xd6bc, 0xd6bd, - 0xd6be, 0xd6bf, 0xd6c0, 0xd6c1, 0xd6c2, 0xd6c3, 0xd6c6, 0xd6c7, - 0xd6c9, 0xd6ca, 0xd6cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd6cd, 0xd6ce, 0xd6cf, 0xd6d0, 0xd6d2, 0xd6d3, 0xd6d5, - 0xd6d6, 0xd6d8, 0xd6da, 0xd6db, 0xd6dc, 0xd6dd, 0xd6de, 0xd6df, - 0xd6e1, 0xd6e2, 0xd6e3, 0xd6e5, 0xd6e6, 0xd6e7, 0xd6e9, 0xd6ea, - 0xd6eb, 0xd6ec, 0xd6ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd6ee, 0xd6ef, 0xd6f1, 0xd6f2, 0xd6f3, 0xd6f4, 0xd6f6, - 0xd6f7, 0xd6f8, 0xd6f9, 0xd6fa, 0xd6fb, 0xd6fe, 0xd6ff, 0xd701, - 0xd702, 0xd703, 0xd705, 0xd706, 0xd707, 0xd708, 0xd709, 0xd70a, - 0xd70b, 0xd70c, 0xd70d, 0xd70e, 0xd70f, 0xd710, 0xd712, 0xd713, - 0xd714, 0xce58, 0xce59, 0xce5c, 0xce5f, 0xce60, 0xce61, 0xce68, - 0xce69, 0xce6b, 0xce6d, 0xce74, 0xce75, 0xce78, 0xce7c, 0xce84, - 0xce85, 0xce87, 0xce89, 0xce90, 0xce91, 0xce94, 0xce98, 0xcea0, - 0xcea1, 0xcea3, 0xcea4, 0xcea5, 0xceac, 0xcead, 0xcec1, 0xcee4, - 0xcee5, 0xcee8, 0xceeb, 0xceec, 0xcef4, 0xcef5, 0xcef7, 0xcef8, - 0xcef9, 0xcf00, 0xcf01, 0xcf04, 0xcf08, 0xcf10, 0xcf11, 0xcf13, - 0xcf15, 0xcf1c, 0xcf20, 0xcf24, 0xcf2c, 0xcf2d, 0xcf2f, 0xcf30, - 0xcf31, 0xcf38, 0xcf54, 0xcf55, 0xcf58, 0xcf5c, 0xcf64, 0xcf65, - 0xcf67, 0xcf69, 0xcf70, 0xcf71, 0xcf74, 0xcf78, 0xcf80, 0xcf85, - 0xcf8c, 0xcfa1, 0xcfa8, 0xcfb0, 0xcfc4, 0xcfe0, 0xcfe1, 0xcfe4, - 0xcfe8, 0xcff0, 0xcff1, 0xcff3, 0xcff5, 0xcffc, 0xd000, 0xd004, - 0xd011, 0xd018, 0xd02d, 0xd034, 0xd035, 0xd038, 0xd03c, 0x003f, - /* lead byte c5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd715, 0xd716, 0xd717, 0xd71a, 0xd71b, 0xd71d, 0xd71e, - 0xd71f, 0xd721, 0xd722, 0xd723, 0xd724, 0xd725, 0xd726, 0xd727, - 0xd72a, 0xd72c, 0xd72e, 0xd72f, 0xd730, 0xd731, 0xd732, 0xd733, - 0xd736, 0xd737, 0xd739, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd73a, 0xd73b, 0xd73d, 0xd73e, 0xd73f, 0xd740, 0xd741, - 0xd742, 0xd743, 0xd745, 0xd746, 0xd748, 0xd74a, 0xd74b, 0xd74c, - 0xd74d, 0xd74e, 0xd74f, 0xd752, 0xd753, 0xd755, 0xd75a, 0xd75b, - 0xd75c, 0xd75d, 0xd75e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd75f, 0xd762, 0xd764, 0xd766, 0xd767, 0xd768, 0xd76a, - 0xd76b, 0xd76d, 0xd76e, 0xd76f, 0xd771, 0xd772, 0xd773, 0xd775, - 0xd776, 0xd777, 0xd778, 0xd779, 0xd77a, 0xd77b, 0xd77e, 0xd77f, - 0xd780, 0xd782, 0xd783, 0xd784, 0xd785, 0xd786, 0xd787, 0xd78a, - 0xd78b, 0xd044, 0xd045, 0xd047, 0xd049, 0xd050, 0xd054, 0xd058, - 0xd060, 0xd06c, 0xd06d, 0xd070, 0xd074, 0xd07c, 0xd07d, 0xd081, - 0xd0a4, 0xd0a5, 0xd0a8, 0xd0ac, 0xd0b4, 0xd0b5, 0xd0b7, 0xd0b9, - 0xd0c0, 0xd0c1, 0xd0c4, 0xd0c8, 0xd0c9, 0xd0d0, 0xd0d1, 0xd0d3, - 0xd0d4, 0xd0d5, 0xd0dc, 0xd0dd, 0xd0e0, 0xd0e4, 0xd0ec, 0xd0ed, - 0xd0ef, 0xd0f0, 0xd0f1, 0xd0f8, 0xd10d, 0xd130, 0xd131, 0xd134, - 0xd138, 0xd13a, 0xd140, 0xd141, 0xd143, 0xd144, 0xd145, 0xd14c, - 0xd14d, 0xd150, 0xd154, 0xd15c, 0xd15d, 0xd15f, 0xd161, 0xd168, - 0xd16c, 0xd17c, 0xd184, 0xd188, 0xd1a0, 0xd1a1, 0xd1a4, 0xd1a8, - 0xd1b0, 0xd1b1, 0xd1b3, 0xd1b5, 0xd1ba, 0xd1bc, 0xd1c0, 0xd1d8, - 0xd1f4, 0xd1f8, 0xd207, 0xd209, 0xd210, 0xd22c, 0xd22d, 0xd230, - 0xd234, 0xd23c, 0xd23d, 0xd23f, 0xd241, 0xd248, 0xd25c, 0x003f, - /* lead byte c6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd78d, 0xd78e, 0xd78f, 0xd791, 0xd792, 0xd793, 0xd794, - 0xd795, 0xd796, 0xd797, 0xd79a, 0xd79c, 0xd79e, 0xd79f, 0xd7a0, - 0xd7a1, 0xd7a2, 0xd7a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd264, 0xd280, 0xd281, 0xd284, 0xd288, 0xd290, 0xd291, - 0xd295, 0xd29c, 0xd2a0, 0xd2a4, 0xd2ac, 0xd2b1, 0xd2b8, 0xd2b9, - 0xd2bc, 0xd2bf, 0xd2c0, 0xd2c2, 0xd2c8, 0xd2c9, 0xd2cb, 0xd2d4, - 0xd2d8, 0xd2dc, 0xd2e4, 0xd2e5, 0xd2f0, 0xd2f1, 0xd2f4, 0xd2f8, - 0xd300, 0xd301, 0xd303, 0xd305, 0xd30c, 0xd30d, 0xd30e, 0xd310, - 0xd314, 0xd316, 0xd31c, 0xd31d, 0xd31f, 0xd320, 0xd321, 0xd325, - 0xd328, 0xd329, 0xd32c, 0xd330, 0xd338, 0xd339, 0xd33b, 0xd33c, - 0xd33d, 0xd344, 0xd345, 0xd37c, 0xd37d, 0xd380, 0xd384, 0xd38c, - 0xd38d, 0xd38f, 0xd390, 0xd391, 0xd398, 0xd399, 0xd39c, 0xd3a0, - 0xd3a8, 0xd3a9, 0xd3ab, 0xd3ad, 0xd3b4, 0xd3b8, 0xd3bc, 0xd3c4, - 0xd3c5, 0xd3c8, 0xd3c9, 0xd3d0, 0xd3d8, 0xd3e1, 0xd3e3, 0xd3ec, - 0xd3ed, 0xd3f0, 0xd3f4, 0xd3fc, 0xd3fd, 0xd3ff, 0xd401, 0x003f, - /* lead byte c7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd408, 0xd41d, 0xd440, 0xd444, 0xd45c, 0xd460, 0xd464, - 0xd46d, 0xd46f, 0xd478, 0xd479, 0xd47c, 0xd47f, 0xd480, 0xd482, - 0xd488, 0xd489, 0xd48b, 0xd48d, 0xd494, 0xd4a9, 0xd4cc, 0xd4d0, - 0xd4d4, 0xd4dc, 0xd4df, 0xd4e8, 0xd4ec, 0xd4f0, 0xd4f8, 0xd4fb, - 0xd4fd, 0xd504, 0xd508, 0xd50c, 0xd514, 0xd515, 0xd517, 0xd53c, - 0xd53d, 0xd540, 0xd544, 0xd54c, 0xd54d, 0xd54f, 0xd551, 0xd558, - 0xd559, 0xd55c, 0xd560, 0xd565, 0xd568, 0xd569, 0xd56b, 0xd56d, - 0xd574, 0xd575, 0xd578, 0xd57c, 0xd584, 0xd585, 0xd587, 0xd588, - 0xd589, 0xd590, 0xd5a5, 0xd5c8, 0xd5c9, 0xd5cc, 0xd5d0, 0xd5d2, - 0xd5d8, 0xd5d9, 0xd5db, 0xd5dd, 0xd5e4, 0xd5e5, 0xd5e8, 0xd5ec, - 0xd5f4, 0xd5f5, 0xd5f7, 0xd5f9, 0xd600, 0xd601, 0xd604, 0xd608, - 0xd610, 0xd611, 0xd613, 0xd614, 0xd615, 0xd61c, 0xd620, 0x003f, - /* lead byte c8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd624, 0xd62d, 0xd638, 0xd639, 0xd63c, 0xd640, 0xd645, - 0xd648, 0xd649, 0xd64b, 0xd64d, 0xd651, 0xd654, 0xd655, 0xd658, - 0xd65c, 0xd667, 0xd669, 0xd670, 0xd671, 0xd674, 0xd683, 0xd685, - 0xd68c, 0xd68d, 0xd690, 0xd694, 0xd69d, 0xd69f, 0xd6a1, 0xd6a8, - 0xd6ac, 0xd6b0, 0xd6b9, 0xd6bb, 0xd6c4, 0xd6c5, 0xd6c8, 0xd6cc, - 0xd6d1, 0xd6d4, 0xd6d7, 0xd6d9, 0xd6e0, 0xd6e4, 0xd6e8, 0xd6f0, - 0xd6f5, 0xd6fc, 0xd6fd, 0xd700, 0xd704, 0xd711, 0xd718, 0xd719, - 0xd71c, 0xd720, 0xd728, 0xd729, 0xd72b, 0xd72d, 0xd734, 0xd735, - 0xd738, 0xd73c, 0xd744, 0xd747, 0xd749, 0xd750, 0xd751, 0xd754, - 0xd756, 0xd757, 0xd758, 0xd759, 0xd760, 0xd761, 0xd763, 0xd765, - 0xd769, 0xd76c, 0xd770, 0xd774, 0xd77c, 0xd77d, 0xd781, 0xd788, - 0xd789, 0xd78c, 0xd790, 0xd798, 0xd799, 0xd79b, 0xd79d, 0x003f, - /* lead byte c9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe000, 0xe001, 0xe002, 0xe003, 0xe004, 0xe005, 0xe006, - 0xe007, 0xe008, 0xe009, 0xe00a, 0xe00b, 0xe00c, 0xe00d, 0xe00e, - 0xe00f, 0xe010, 0xe011, 0xe012, 0xe013, 0xe014, 0xe015, 0xe016, - 0xe017, 0xe018, 0xe019, 0xe01a, 0xe01b, 0xe01c, 0xe01d, 0xe01e, - 0xe01f, 0xe020, 0xe021, 0xe022, 0xe023, 0xe024, 0xe025, 0xe026, - 0xe027, 0xe028, 0xe029, 0xe02a, 0xe02b, 0xe02c, 0xe02d, 0xe02e, - 0xe02f, 0xe030, 0xe031, 0xe032, 0xe033, 0xe034, 0xe035, 0xe036, - 0xe037, 0xe038, 0xe039, 0xe03a, 0xe03b, 0xe03c, 0xe03d, 0xe03e, - 0xe03f, 0xe040, 0xe041, 0xe042, 0xe043, 0xe044, 0xe045, 0xe046, - 0xe047, 0xe048, 0xe049, 0xe04a, 0xe04b, 0xe04c, 0xe04d, 0xe04e, - 0xe04f, 0xe050, 0xe051, 0xe052, 0xe053, 0xe054, 0xe055, 0xe056, - 0xe057, 0xe058, 0xe059, 0xe05a, 0xe05b, 0xe05c, 0xe05d, 0x003f, - /* lead byte ca */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475, - 0x54e5, 0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, - 0x6b4c, 0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, - 0x8a36, 0x8cc8, 0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, - 0x5404, 0x606a, 0x6164, 0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, - 0x95a3, 0x4f83, 0x520a, 0x58be, 0x5978, 0x59e6, 0x5e72, 0x5e79, - 0x61c7, 0x63c0, 0x6746, 0x67ec, 0x687f, 0x6f97, 0x764e, 0x770b, - 0x78f5, 0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e, 0x8271, 0x8aeb, - 0x9593, 0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed, 0x845b, - 0x8910, 0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x611f, - 0x61be, 0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, 0x7518, 0x75b3, - 0x76e3, 0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, 0x9f95, 0x003f, - /* lead byte cb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5323, 0x5cac, 0x7532, 0x80db, 0x9240, 0x9598, 0x525b, - 0x5808, 0x59dc, 0x5ca1, 0x5d17, 0x5eb7, 0x5f3a, 0x5f4a, 0x6177, - 0x6c5f, 0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1, 0x7f8c, 0x8154, - 0x8221, 0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47, 0x4ecb, - 0x4ef7, 0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539, - 0x69ea, 0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, - 0xf900, 0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, - 0x7fb9, 0x91b5, 0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, - 0x64da, 0x64e7, 0x6e20, 0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, - 0x907d, 0x9245, 0x92f8, 0x4e7e, 0x4ef6, 0x5065, 0x5dfe, 0x5efa, - 0x6106, 0x6957, 0x8171, 0x8654, 0x8e47, 0x9375, 0x9a2b, 0x4e5e, - 0x5091, 0x6770, 0x6840, 0x5109, 0x528d, 0x5292, 0x6aa2, 0x003f, - /* lead byte cc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, - 0x61a9, 0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, - 0x9694, 0x5805, 0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, - 0x898b, 0x8b74, 0x9063, 0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, - 0x7f3a, 0x8a23, 0x517c, 0x614a, 0x7b9d, 0x8b19, 0x9257, 0x938c, - 0x4eac, 0x4fd3, 0x501e, 0x50be, 0x5106, 0x52c1, 0x52cd, 0x537f, - 0x5770, 0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac, 0x64ce, 0x656c, - 0x666f, 0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1, 0x749f, - 0x74a5, 0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45, - 0x7d93, 0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x9015, - 0x93e1, 0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, 0x5553, 0x583a, - 0x5951, 0x5b63, 0x5c46, 0x60b8, 0x6212, 0x6842, 0x68b0, 0x003f, - /* lead byte cd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x68e8, 0x6eaa, 0x754c, 0x7678, 0x78ce, 0x7a3d, 0x7cfb, - 0x7e6b, 0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e, 0x9dc4, 0x53e4, - 0x53e9, 0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b, 0x5eab, - 0x62f7, 0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd, - 0x75fc, 0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, - 0x82e6, 0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, - 0x8f9c, 0x932e, 0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, - 0x66f2, 0x688f, 0x7a40, 0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, - 0x6606, 0x68b1, 0x68cd, 0x6efe, 0x7428, 0x889e, 0x9be4, 0x6c68, - 0xf904, 0x9aa8, 0x4f9b, 0x516c, 0x5171, 0x529f, 0x5b54, 0x5de5, - 0x6050, 0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9, 0x7a7a, 0x86a3, - 0x8ca2, 0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc, 0x003f, - /* lead byte ce */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, - 0x9846, 0x5ed3, 0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, - 0x5bec, 0x6163, 0x68fa, 0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, - 0x7f50, 0x83c5, 0x89c0, 0x8cab, 0x95dc, 0x9928, 0x522e, 0x605d, - 0x62ec, 0x9002, 0x4f8a, 0x5149, 0x5321, 0x58d9, 0x5ee3, 0x66e0, - 0x6d38, 0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1, 0x945b, 0x5366, - 0x639b, 0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a, 0x6127, - 0x62d0, 0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4, - 0x50d1, 0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, - 0x6821, 0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x81a0, - 0x854e, 0x86df, 0x8f03, 0x8f4e, 0x90ca, 0x9903, 0x9a55, 0x9bab, - 0x4e18, 0x4e45, 0x4e5d, 0x4ec7, 0x4ff1, 0x5177, 0x52fe, 0x003f, - /* lead byte cf */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614, 0x5775, 0x57a2, - 0x5bc7, 0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8, 0x67e9, - 0x69cb, 0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7, - 0x7396, 0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, - 0x8205, 0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, - 0x90b1, 0x9264, 0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, - 0x570b, 0x5c40, 0x83ca, 0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, - 0x7fa4, 0x88d9, 0x8ecd, 0x90e1, 0x5800, 0x5c48, 0x6398, 0x7a9f, - 0x5bae, 0x5f13, 0x7a79, 0x7aae, 0x828e, 0x8eac, 0x5026, 0x5238, - 0x52f8, 0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a, 0x6dc3, 0x7737, - 0x53a5, 0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3, 0x6f70, - 0x8a6d, 0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4, 0x003f, - /* lead byte d0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9b3c, 0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, - 0x73ea, 0x7845, 0x7aba, 0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, - 0x9035, 0x95a8, 0x52fb, 0x5747, 0x7547, 0x7b60, 0x83cc, 0x921e, - 0xf908, 0x6a58, 0x514b, 0x524b, 0x5287, 0x621f, 0x68d8, 0x6975, - 0x9699, 0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4, 0x6839, 0x69ff, - 0x747e, 0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1, 0x9949, - 0xf909, 0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981, - 0x79bd, 0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, - 0x53ca, 0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, - 0x77dc, 0x80af, 0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x5668, - 0x573b, 0x57fa, 0x57fc, 0x5914, 0x5947, 0x5993, 0x5bc4, 0x5c90, - 0x5d0e, 0x5df1, 0x5e7e, 0x5fcc, 0x6280, 0x65d7, 0x65e3, 0x003f, - /* lead byte d1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f, 0x6b3a, - 0x6c23, 0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482, - 0x74a3, 0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, - 0x797a, 0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, - 0x8a18, 0x8b4f, 0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, - 0x9a0e, 0x9a0f, 0x9a65, 0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, - 0x6854, 0x91d1, 0x55ab, 0x513a, 0xf90b, 0xf90c, 0x5a1c, 0x61e6, - 0xf90d, 0x62cf, 0x62ff, 0xf90e, 0xf90f, 0xf910, 0xf911, 0xf912, - 0xf913, 0x90a3, 0xf914, 0xf915, 0xf916, 0xf917, 0xf918, 0x8afe, - 0xf919, 0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156, 0xf91e, - 0xf91f, 0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f, - 0x6960, 0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925, 0x003f, - /* lead byte d2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7d0d, 0xf926, 0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, - 0xf929, 0xf92a, 0xf92b, 0xf92c, 0x4e43, 0xf92d, 0x5167, 0x5948, - 0x67f0, 0x8010, 0xf92e, 0x5973, 0x5e74, 0x649a, 0x79ca, 0x5ff5, - 0x606c, 0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa, 0xf92f, 0x5974, - 0x5f29, 0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933, 0xf934, - 0xf935, 0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b, - 0xf93c, 0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, - 0x6fc3, 0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, - 0x8166, 0xf948, 0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, - 0xf94e, 0xf94f, 0xf950, 0xf951, 0x5ae9, 0x8a25, 0x677b, 0x7d10, - 0xf952, 0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0x80fd, 0xf958, - 0xf959, 0x5c3c, 0x6ce5, 0x533f, 0x6eba, 0x591a, 0x8336, 0x003f, - /* lead byte d3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56, - 0x65b7, 0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, - 0x7dde, 0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, - 0x75b8, 0x9054, 0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, - 0x6e5b, 0x6f6d, 0x6fb9, 0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, - 0x8ac7, 0x8b5a, 0x931f, 0x6c93, 0x7553, 0x7b54, 0x8e0f, 0x905d, - 0x5510, 0x5802, 0x5858, 0x5e62, 0x6207, 0x649e, 0x68e0, 0x7576, - 0x7cd6, 0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e, 0x5927, 0x5c0d, - 0x5cb1, 0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa, 0x888b, - 0x8cb8, 0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200, - 0x5230, 0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, - 0x5ea6, 0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843, 0x003f, - /* lead byte d4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x68f9, 0x6ac2, 0x6dd8, 0x6e21, 0x6ed4, 0x6fe4, 0x71fe, - 0x76dc, 0x7779, 0x79b1, 0x7a3b, 0x8404, 0x89a9, 0x8ced, 0x8df3, - 0x8e48, 0x9003, 0x9014, 0x9053, 0x90fd, 0x934d, 0x9676, 0x97dc, - 0x6bd2, 0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf, 0x7be4, - 0x7e9b, 0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c, - 0x711e, 0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, - 0x51cd, 0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, - 0x6f7c, 0x75bc, 0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, - 0x6597, 0x675c, 0x6793, 0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, - 0x9017, 0x982d, 0x5c6f, 0x81c0, 0x829a, 0x9041, 0x906f, 0x920d, - 0x5f97, 0x5d9d, 0x6a59, 0x71c8, 0x767b, 0x7b49, 0x85e4, 0x8b04, - 0x9127, 0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669, 0x7f85, 0x003f, - /* lead byte d5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, - 0x73de, 0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, - 0x5375, 0x6b04, 0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, - 0x8fa3, 0x5d50, 0x64e5, 0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, - 0x85cd, 0x8964, 0x89bd, 0x62c9, 0x81d8, 0x881f, 0x5eca, 0x6717, - 0x6d6a, 0x72fc, 0x7405, 0x746f, 0x8782, 0x90de, 0x4f86, 0x5d0d, - 0x5fa0, 0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae, 0x5006, 0x5169, - 0x51c9, 0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f, 0x8ad2, - 0x8f1b, 0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e, - 0x623e, 0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, - 0x9a62, 0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, - 0x792b, 0x8f62, 0x9742, 0x6190, 0x6200, 0x6523, 0x6f23, 0x003f, - /* lead byte d6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7149, 0x7489, 0x7df4, 0x806f, 0x84ee, 0x8f26, 0x9023, - 0x934a, 0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8, 0x88c2, 0x5ec9, - 0x6582, 0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36, 0x56f9, - 0xf95f, 0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce, - 0x8046, 0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, - 0x6fa7, 0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, - 0x6ad3, 0x6f5e, 0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, - 0x8def, 0x8f05, 0x9732, 0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, - 0x7da0, 0x83c9, 0x9304, 0x9e7f, 0x9e93, 0x8ad6, 0x58df, 0x5f04, - 0x6727, 0x7027, 0x74cf, 0x7c60, 0x807e, 0x5121, 0x7028, 0x7262, - 0x78ca, 0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86, 0x50da, 0x5bee, - 0x5ed6, 0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, 0x84fc, 0x003f, - /* lead byte d7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, - 0x6dda, 0x6f0f, 0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, - 0x964b, 0x5289, 0x65d2, 0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, - 0x7409, 0x7460, 0x7559, 0x7624, 0x786b, 0x8b2c, 0x985e, 0x516d, - 0x622e, 0x9678, 0x4f96, 0x502b, 0x5d19, 0x6dea, 0x7db8, 0x8f2a, - 0x5f8b, 0x6144, 0x6817, 0xf961, 0x9686, 0x52d2, 0x808b, 0x51dc, - 0x51cc, 0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda, 0x5229, - 0x5398, 0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c, - 0x7281, 0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, - 0x7fb8, 0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, - 0x541d, 0x6f7e, 0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, - 0x9e9f, 0x6797, 0x6dcb, 0x7433, 0x81e8, 0x9716, 0x782c, 0x003f, - /* lead byte d8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a, 0x75f2, 0x78bc, - 0x78e8, 0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20, 0x819c, - 0x83ab, 0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162, - 0x633d, 0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, - 0x8513, 0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, - 0x6cab, 0x8309, 0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, - 0x671b, 0x7db2, 0x7f54, 0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, - 0x57cb, 0x59b9, 0x5a92, 0x5bd0, 0x6627, 0x679a, 0x6885, 0x6bcf, - 0x7164, 0x7f75, 0x8cb7, 0x8ce3, 0x9081, 0x9b45, 0x8108, 0x8c8a, - 0x964c, 0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b, 0x76f2, 0x76df, - 0x840c, 0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, 0x68c9, 0x6c94, - 0x7704, 0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, 0x6ec5, 0x003f, - /* lead byte d9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8511, 0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, - 0x6e9f, 0x76bf, 0x7791, 0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, - 0x9cf4, 0x8882, 0x4fae, 0x5192, 0x52df, 0x59c6, 0x5e3d, 0x6155, - 0x6478, 0x6479, 0x66ae, 0x67d0, 0x6a21, 0x6bcd, 0x6bdb, 0x725f, - 0x7261, 0x7441, 0x7738, 0x77db, 0x8017, 0x82bc, 0x8305, 0x8b00, - 0x8b28, 0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766, 0x7a46, - 0x9da9, 0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893, - 0x5999, 0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, - 0x82d7, 0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, - 0x64ab, 0x65e0, 0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, - 0x7e46, 0x821e, 0x8302, 0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, - 0x58a8, 0x9ed8, 0x5011, 0x520e, 0x543b, 0x554f, 0x6587, 0x003f, - /* lead byte da */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580, 0x96ef, - 0x52ff, 0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c, - 0x5fae, 0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, - 0x7f8e, 0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, - 0x610d, 0x61ab, 0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, - 0x73c9, 0x7de1, 0x9594, 0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, - 0x62cd, 0x640f, 0x64b2, 0x6734, 0x6a38, 0x6cca, 0x73c0, 0x749e, - 0x7b94, 0x7c95, 0x7e1b, 0x818a, 0x8236, 0x8584, 0x8feb, 0x96f9, - 0x99c1, 0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc, 0x642c, 0x6500, - 0x6591, 0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622, 0x76e4, - 0x76fc, 0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, 0x87e0, 0x8fd4, - 0x9812, 0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, 0x6f51, 0x003f, - /* lead byte db */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x767c, 0x8dcb, 0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, - 0x508d, 0x574a, 0x59a8, 0x5c28, 0x5e47, 0x5f77, 0x623f, 0x653e, - 0x65b9, 0x65c1, 0x6609, 0x678b, 0x699c, 0x6ec2, 0x78c5, 0x7d21, - 0x80aa, 0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c, 0x8a2a, 0x8b17, - 0x90a6, 0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9, 0x5f98, - 0x62dc, 0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da, - 0x88f4, 0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, - 0x4f70, 0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, - 0x6a0a, 0x7169, 0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, - 0x98dc, 0x4f10, 0x7b4f, 0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, - 0x6c3e, 0x6c4e, 0x6cdb, 0x72af, 0x7bc4, 0x8303, 0x6cd5, 0x743a, - 0x50fb, 0x5288, 0x58c1, 0x64d8, 0x6a97, 0x74a7, 0x7656, 0x003f, - /* lead byte dc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01, - 0x8b8a, 0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, - 0x4e19, 0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, - 0x68c5, 0x70b3, 0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, - 0x9a08, 0x4fdd, 0x5821, 0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, - 0x6e7a, 0x6f7d, 0x73e4, 0x752b, 0x83e9, 0x88dc, 0x8913, 0x8b5c, - 0x8f14, 0x4f0f, 0x50d5, 0x5310, 0x535c, 0x5b93, 0x5fa9, 0x670d, - 0x798f, 0x8179, 0x832f, 0x8514, 0x8907, 0x8986, 0x8f39, 0x8f3b, - 0x99a5, 0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01, 0x5cef, - 0x5cf0, 0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x84ec, - 0x8702, 0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, 0x4fef, 0x5085, - 0x5256, 0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, 0x5a66, 0x003f, - /* lead byte dd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5b5a, 0x5b75, 0x5bcc, 0x5e9c, 0xf966, 0x6276, 0x6577, - 0x65a7, 0x6d6e, 0x6ea5, 0x7236, 0x7b26, 0x7c3f, 0x7f36, 0x8150, - 0x8151, 0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03, 0x8ca0, 0x8ce6, - 0x8cfb, 0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644, 0x99d9, - 0x9ce7, 0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e, - 0x5fff, 0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, - 0x7cde, 0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, - 0x5f7f, 0x62c2, 0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, - 0x4e15, 0x5099, 0x5315, 0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, - 0x60b2, 0x618a, 0x6249, 0x6279, 0x6590, 0x6787, 0x69a7, 0x6bd4, - 0x6bd6, 0x6bd7, 0x6bd8, 0x6cb8, 0xf968, 0x7435, 0x75fa, 0x7812, - 0x7891, 0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1, 0x80a5, 0x003f, - /* lead byte de */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, - 0x8cbb, 0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, - 0x658c, 0x6ab3, 0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, - 0x8ca7, 0x8cd3, 0x983b, 0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, - 0x4e8b, 0x4e9b, 0x4ed5, 0x4f3a, 0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, - 0x53f2, 0x53f8, 0x5506, 0x55e3, 0x56db, 0x58eb, 0x5962, 0x5a11, - 0x5beb, 0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99, 0x601d, 0x6368, - 0x659c, 0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99, 0x6cd7, - 0x6e23, 0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1, - 0x7be9, 0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x86c7, - 0x88df, 0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, 0x8fad, 0x90aa, - 0x98fc, 0x99df, 0x9e9d, 0x524a, 0xf969, 0x6714, 0xf96a, 0x003f, - /* lead byte df */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5098, 0x522a, 0x5c71, 0x6563, 0x6c55, 0x73ca, 0x7523, - 0x759d, 0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77, 0x6492, 0x6bba, - 0x715e, 0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17, 0x829f, - 0x8518, 0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7, - 0x50cf, 0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, - 0x5e38, 0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, - 0x723d, 0x7240, 0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, - 0x89f4, 0x8a73, 0x8c61, 0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, - 0x55c7, 0xf96c, 0x7a61, 0x7d22, 0x8272, 0x7272, 0x751f, 0x7525, - 0xf96d, 0x7b19, 0x5885, 0x58fb, 0x5dbc, 0x5e8f, 0x5eb6, 0x5f90, - 0x6055, 0x6292, 0x637f, 0x654d, 0x6691, 0x66d9, 0x66f8, 0x6816, - 0x68f2, 0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72, 0x003f, - /* lead byte e0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, - 0x9ecd, 0x9f20, 0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, - 0x6790, 0x6c50, 0x6dc5, 0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, - 0x932b, 0x4ed9, 0x50ca, 0x5148, 0x5584, 0x5b0b, 0x5ba3, 0x6247, - 0x657e, 0x65cb, 0x6e32, 0x717d, 0x7401, 0x7444, 0x7487, 0x74bf, - 0x766c, 0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a, 0x81b3, 0x8239, - 0x861a, 0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425, 0x994d, - 0x9bae, 0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c, - 0x859b, 0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, - 0x6bb2, 0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x6d89, - 0x71ee, 0xf96e, 0x57ce, 0x59d3, 0x5bac, 0x6027, 0x60fa, 0x6210, - 0x661f, 0x665f, 0x7329, 0x73f9, 0x76db, 0x7701, 0x7b6c, 0x003f, - /* lead byte e1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192, 0x4e16, 0x52e2, - 0x6b72, 0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0, 0x53ec, - 0x562f, 0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383, - 0x6414, 0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, - 0x71d2, 0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, - 0x7d20, 0x7d39, 0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, - 0x90b5, 0x92b7, 0x97f6, 0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, - 0x7c9f, 0x7e8c, 0x8b16, 0x8d16, 0x901f, 0x5b6b, 0x5dfd, 0x640d, - 0x84c0, 0x905c, 0x98e1, 0x7387, 0x5b8b, 0x609a, 0x677e, 0x6dde, - 0x8a1f, 0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970, 0x7051, 0x788e, - 0x9396, 0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da, 0x5782, - 0x58fd, 0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101, 0x003f, - /* lead byte e2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x620d, 0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, - 0x6b8a, 0x6c34, 0x6d19, 0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, - 0x74b2, 0x7626, 0x7761, 0x79c0, 0x7a57, 0x7aea, 0x7cb9, 0x7d8f, - 0x7dac, 0x7e61, 0x7f9e, 0x8129, 0x8331, 0x8490, 0x84da, 0x85ea, - 0x8896, 0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083, 0x916c, 0x9296, - 0x92b9, 0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808, 0x9996, - 0x9ad3, 0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1, - 0x6f5a, 0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, - 0x5faa, 0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, - 0x6df3, 0x73e3, 0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x821c, - 0x8340, 0x84f4, 0x8563, 0x8a62, 0x8ac4, 0x9187, 0x931e, 0x9806, - 0x99b4, 0x620c, 0x8853, 0x8ff0, 0x9265, 0x5d07, 0x5d27, 0x003f, - /* lead byte e3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe, 0x7fd2, - 0x8936, 0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f, - 0x6607, 0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, - 0x5aa4, 0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, - 0x662f, 0x6642, 0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, - 0x8494, 0x84cd, 0x8996, 0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, - 0x57f4, 0x5bd4, 0x5f0f, 0x606f, 0x62ed, 0x690d, 0x6b96, 0x6e5c, - 0x7184, 0x7bd2, 0x8755, 0x8b58, 0x8efe, 0x98df, 0x98fe, 0x4f38, - 0x4f81, 0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c, 0x65b0, 0x6668, - 0x71fc, 0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398, 0x85aa, - 0x85ce, 0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931, - 0x5ba4, 0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81, 0x003f, - /* lead byte e4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf972, 0x6df1, 0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, - 0x5341, 0xf973, 0x96d9, 0x6c0f, 0x4e9e, 0x4fc4, 0x5152, 0x555e, - 0x5a25, 0x5ce8, 0x6211, 0x7259, 0x82bd, 0x83aa, 0x86fe, 0x8859, - 0x8a1d, 0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d, 0x580a, 0x5cb3, - 0x5dbd, 0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25, 0x9102, - 0x9354, 0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f, - 0x6848, 0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, - 0x8ecb, 0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, - 0x83f4, 0x95c7, 0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, - 0x600f, 0x663b, 0x6b83, 0x79e7, 0x9d26, 0x5393, 0x54c0, 0x57c3, - 0x5d16, 0x611b, 0x66d6, 0x6daf, 0x788d, 0x827e, 0x9698, 0x9744, - 0x5384, 0x627c, 0x6396, 0x6db2, 0x7e0a, 0x814b, 0x984d, 0x003f, - /* lead byte e5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6, - 0x591c, 0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, - 0x5f31, 0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, - 0x8e8d, 0xf977, 0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, - 0x63da, 0x6518, 0x656d, 0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, - 0x7001, 0x716c, 0x75d2, 0x760d, 0x79b3, 0x7a70, 0xf97b, 0x7f8a, - 0xf97c, 0x8944, 0xf97d, 0x8b93, 0x91c0, 0x967d, 0xf97e, 0x990a, - 0x5704, 0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6, 0x8a9e, 0x99ad, - 0x9b5a, 0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6, 0x5043, - 0x5830, 0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa, - 0x513c, 0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, - 0x4e88, 0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982, 0x003f, - /* lead byte e6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf983, 0x6b5f, 0x6c5d, 0xf984, 0x74b5, 0x7916, 0xf985, - 0x8207, 0x8245, 0x8339, 0x8f3f, 0x8f5d, 0xf986, 0x9918, 0xf987, - 0xf988, 0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79, 0x6613, 0xf98b, - 0xf98c, 0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b, 0x56a5, - 0x5827, 0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990, - 0x6350, 0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, - 0x6df5, 0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, - 0x71d5, 0xf994, 0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, - 0x7e2f, 0xf997, 0x884d, 0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, - 0xf99b, 0x9cf6, 0xf99c, 0xf99d, 0xf99e, 0x6085, 0x6d85, 0xf99f, - 0x71b1, 0xf9a0, 0xf9a1, 0x95b1, 0x53ad, 0xf9a2, 0xf9a3, 0xf9a4, - 0x67d3, 0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276, 0x82d2, 0x003f, - /* lead byte e7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, - 0x8449, 0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, - 0xf9ac, 0x6620, 0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, - 0x6f41, 0x6fda, 0x701b, 0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, - 0x745b, 0xf9ae, 0x74d4, 0x76c8, 0x7a4e, 0x7e93, 0xf9af, 0xf9b0, - 0x82f1, 0x8a60, 0x8fce, 0xf9b1, 0x9348, 0xf9b2, 0x9719, 0xf9b3, - 0xf9b4, 0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1, 0x66f3, 0x6c6d, - 0x6fca, 0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602, 0xf9b6, - 0x88d4, 0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713, - 0x9810, 0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, - 0x55da, 0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, - 0x61ca, 0x6556, 0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3, 0x003f, - /* lead byte e8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x70cf, 0x71ac, 0x7352, 0x7b7d, 0x8708, 0x8aa4, 0x9c32, - 0x9f07, 0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a, 0x6eab, 0x7465, - 0x761f, 0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1, 0x74ee, - 0x7515, 0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6, - 0x7aa9, 0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, - 0x5b9b, 0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, - 0x7de9, 0x7feb, 0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, - 0x66f0, 0x5f80, 0x65fa, 0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, - 0x6b6a, 0x77ee, 0x5916, 0x5d6c, 0x5dcd, 0x7325, 0x754f, 0xf9ba, - 0xf9bb, 0x50e5, 0x51f9, 0x582f, 0x592d, 0x5996, 0x59da, 0x5be5, - 0xf9bc, 0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493, 0x64fe, 0xf9be, - 0x66dc, 0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, 0xf9c1, 0x003f, - /* lead byte e9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, - 0x87ef, 0x8981, 0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, - 0x6b32, 0x6d74, 0x7e1f, 0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, - 0x52c7, 0x57c7, 0x5889, 0x5bb9, 0x5eb8, 0x6142, 0x6995, 0x6d8c, - 0x6e67, 0x6eb6, 0x7194, 0x7462, 0x7528, 0x752c, 0x8073, 0x8338, - 0x84c9, 0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e, 0x4f51, 0x5076, - 0x512a, 0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24, 0x611a, - 0x6182, 0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991, - 0x79b9, 0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, - 0x90f5, 0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, - 0x6631, 0x682f, 0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, - 0x6a52, 0x6b9e, 0x6f90, 0x7189, 0x8018, 0x82b8, 0x8553, 0x003f, - /* lead byte ea */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a, 0x9b31, 0x4e90, - 0x718a, 0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712, 0x57a3, - 0x5a9b, 0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39, - 0x6e72, 0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, - 0x9060, 0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, - 0x4f4d, 0x5049, 0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, - 0x6170, 0x6690, 0x6e2d, 0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, - 0x8466, 0x853f, 0x875f, 0x885b, 0x8918, 0x8b02, 0x9055, 0x97cb, - 0x9b4f, 0x4e73, 0x4f91, 0x5112, 0x516a, 0xf9c7, 0x552f, 0x55a9, - 0x5b7a, 0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0, 0x60df, 0x6108, - 0x6109, 0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, 0x67da, 0xf9c9, - 0x6961, 0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, 0xf9cb, 0x003f, - /* lead byte eb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6fe1, 0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, - 0x7652, 0xf9ce, 0xf9cf, 0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, - 0x8adb, 0x8aed, 0x8e30, 0x8e42, 0x904a, 0x903e, 0x907a, 0x9149, - 0x91c9, 0x936e, 0xf9d0, 0xf9d1, 0x5809, 0xf9d2, 0x6bd3, 0x8089, - 0x80b2, 0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39, 0xf9d5, 0xf9d6, - 0x6f64, 0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f, 0xf9d8, - 0xf9d9, 0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d, - 0xf9dc, 0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, - 0x4e59, 0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, - 0x6ce3, 0x9091, 0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, - 0x5100, 0x5b9c, 0x610f, 0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, - 0x77e3, 0x7fa9, 0x8264, 0x858f, 0x87fb, 0x8863, 0x8abc, 0x003f, - /* lead byte ec */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd, 0xf9de, - 0x5937, 0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0, - 0xf9e1, 0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, - 0xf9e5, 0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, - 0xf9e7, 0xf9e8, 0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, - 0x990c, 0xf9eb, 0xf9ec, 0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, - 0x8b1a, 0x4eba, 0x4ec1, 0x5203, 0x5370, 0xf9ed, 0x54bd, 0x56e0, - 0x59fb, 0x5bc5, 0x5f15, 0x5fcd, 0x6e6e, 0xf9ee, 0xf9ef, 0x7d6a, - 0x8335, 0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d, 0x9777, 0xf9f2, - 0xf9f3, 0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2, 0x9038, - 0x93b0, 0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, 0x6041, 0xf9f4, - 0xf9f5, 0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, 0x5344, 0x003f, - /* lead byte ed */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf9f7, 0xf9f8, 0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, - 0x4ed4, 0x523a, 0x54a8, 0x59c9, 0x59ff, 0x5b50, 0x5b57, 0x5b5c, - 0x6063, 0x6148, 0x6ecb, 0x7099, 0x716e, 0x7386, 0x74f7, 0x75b5, - 0x78c1, 0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517, 0x85c9, 0x8aee, - 0x8cc7, 0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628, 0x707c, - 0x70b8, 0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71, - 0x68e7, 0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, - 0x7c2a, 0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, - 0x58ef, 0x596c, 0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, - 0x6756, 0x6a1f, 0x6aa3, 0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, - 0x748b, 0x7ae0, 0x7ca7, 0x8178, 0x81df, 0x81e7, 0x838a, 0x846c, - 0x8523, 0x8594, 0x85cf, 0x88dd, 0x8d13, 0x91ac, 0x9577, 0x003f, - /* lead byte ee */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750, - 0x683d, 0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, - 0x8f09, 0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, - 0x4f4e, 0x5132, 0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, - 0x6a17, 0x6cae, 0x6e1a, 0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, - 0x82e7, 0x83f9, 0x8457, 0x85f7, 0x8a5b, 0x8caf, 0x8e87, 0x9019, - 0x90b8, 0x96ce, 0x9f5f, 0x52e3, 0x540a, 0x5ae1, 0x5bc2, 0x6458, - 0x6575, 0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d, 0x7b1b, 0x7c4d, - 0x7e3e, 0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1, 0x8e5f, - 0x8fea, 0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x5168, - 0x5178, 0x524d, 0x526a, 0x5861, 0x587c, 0x5960, 0x5c08, 0x5c55, - 0x5edb, 0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, 0x6fb1, 0x003f, - /* lead byte ef */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x714e, 0x7420, 0x7530, 0x7538, 0x7551, 0x7672, 0x7b4c, - 0x7b8b, 0x7bad, 0x7bc6, 0x7e8f, 0x8a6e, 0x8f3e, 0x8f49, 0x923f, - 0x9293, 0x9322, 0x942b, 0x96fb, 0x985a, 0x986b, 0x991e, 0x5207, - 0x622a, 0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76, 0x5360, - 0x5cbe, 0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede, - 0x63a5, 0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, - 0x5448, 0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, - 0x633a, 0x653f, 0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, - 0x6a89, 0x6b63, 0x6c40, 0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, - 0x70a1, 0x738e, 0x73fd, 0x753a, 0x775b, 0x7887, 0x798e, 0x7a0b, - 0x7a7d, 0x7cbe, 0x7d8e, 0x8247, 0x8a02, 0x8aea, 0x8c9e, 0x912d, - 0x914a, 0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706, 0x9756, 0x003f, - /* lead byte f0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, - 0x5e1d, 0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, - 0x81cd, 0x85ba, 0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, - 0x973d, 0x984c, 0x9f4a, 0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, - 0x5f14, 0x5f6b, 0x63aa, 0x64cd, 0x65e9, 0x6641, 0x66fa, 0x66f9, - 0x671d, 0x689d, 0x68d7, 0x69fd, 0x6f15, 0x6f6e, 0x7167, 0x71e5, - 0x722a, 0x74aa, 0x773a, 0x7956, 0x795a, 0x79df, 0x7a20, 0x7a95, - 0x7c97, 0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4, 0x8a54, - 0x8abf, 0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5, - 0x9ce5, 0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x5352, - 0x62d9, 0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, 0x616b, 0x68d5, - 0x6dd9, 0x742e, 0x7a2e, 0x7d42, 0x7d9c, 0x7e31, 0x816b, 0x003f, - /* lead byte f1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8e2a, 0x8e35, 0x937e, 0x9418, 0x4f50, 0x5750, 0x5de6, - 0x5ea7, 0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f, 0x505a, 0x59dd, - 0x80c4, 0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde, 0x5eda, - 0x665d, 0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d, - 0x70b7, 0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, - 0x86db, 0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, - 0x9152, 0x9444, 0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, - 0x57c8, 0x5bef, 0x5cfb, 0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, - 0x710c, 0x756f, 0x7ae3, 0x8822, 0x9021, 0x9075, 0x96cb, 0x99ff, - 0x8301, 0x4e2d, 0x4ef2, 0x8846, 0x91cd, 0x537d, 0x6adb, 0x696b, - 0x6c41, 0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef, 0x70dd, 0x7511, - 0x75c7, 0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea, 0x003f, - /* lead byte f2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, - 0x652f, 0x65e8, 0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, - 0x6f2c, 0x77e5, 0x7825, 0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, - 0x81f3, 0x829d, 0x82b7, 0x8718, 0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, - 0x9072, 0x76f4, 0x7a19, 0x7a37, 0x7e54, 0x8077, 0x5507, 0x55d4, - 0x5875, 0x632f, 0x6422, 0x6649, 0x664b, 0x686d, 0x699b, 0x6b84, - 0x6d25, 0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9, 0x76e1, - 0x771e, 0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897, - 0x8a3a, 0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, - 0x9707, 0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x74c6, - 0x75be, 0x79e9, 0x7a92, 0x81a3, 0x86ed, 0x8cea, 0x8dcc, 0x8fed, - 0x659f, 0x6715, 0xf9fd, 0x57f7, 0x6f57, 0x7ddd, 0x8f2f, 0x003f, - /* lead byte f3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84, 0x4e14, 0x4f98, - 0x501f, 0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64, 0x78cb, - 0x7b9a, 0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740, - 0x7a84, 0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, - 0x74da, 0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, - 0x947d, 0x9910, 0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, - 0x50ed, 0x53c3, 0x5879, 0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, - 0x8b92, 0x8b96, 0x5009, 0x5021, 0x5275, 0x5531, 0x5a3c, 0x5ee0, - 0x5f70, 0x6134, 0x655e, 0x660c, 0x6636, 0x66a2, 0x69cd, 0x6ec4, - 0x6f32, 0x7316, 0x7621, 0x7a93, 0x8139, 0x8259, 0x83d6, 0x84bc, - 0x50b5, 0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826, 0x7db5, - 0x83dc, 0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56, 0x003f, - /* lead byte f4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8cac, 0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, - 0x5254, 0x5c3a, 0x617d, 0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, - 0x7620, 0x810a, 0x8e60, 0x965f, 0x96bb, 0x4edf, 0x5343, 0x5598, - 0x5929, 0x5ddd, 0x64c5, 0x6cc9, 0x6dfa, 0x7394, 0x7a7f, 0x821b, - 0x85a6, 0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1, 0x9621, 0x97c6, - 0x51f8, 0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4, 0x8f1f, - 0x8f4d, 0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb, - 0x7c3d, 0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, - 0x7252, 0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, - 0x6df8, 0x807d, 0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x5243, - 0x66ff, 0x6d95, 0x6eef, 0x7de0, 0x8ae6, 0x902e, 0x905e, 0x9ad4, - 0x521d, 0x527f, 0x54e8, 0x6194, 0x6284, 0x62db, 0x68a2, 0x003f, - /* lead byte f5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d, 0x7901, - 0x790e, 0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549, - 0x8c82, 0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, - 0x77d7, 0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, - 0x585a, 0x5bf5, 0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, - 0x9283, 0x64ae, 0x50ac, 0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, - 0x690e, 0x6978, 0x6a1e, 0x6e6b, 0x76ba, 0x79cb, 0x82bb, 0x8429, - 0x8acf, 0x8da8, 0x8ffd, 0x9112, 0x914b, 0x919c, 0x9310, 0x9318, - 0x939a, 0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c, 0x795d, 0x7afa, - 0x7b51, 0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8, 0x9010, - 0x6625, 0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0, - 0x6c96, 0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403, 0x003f, - /* lead byte f6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8d05, 0x53d6, 0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, - 0x7fe0, 0x805a, 0x8106, 0x81ed, 0x8da3, 0x9189, 0x9a5f, 0x9df2, - 0x5074, 0x4ec4, 0x53a0, 0x60fb, 0x6e2c, 0x5c64, 0x4f88, 0x5024, - 0x55e4, 0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb, 0x6dc4, 0x71be, - 0x75d4, 0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb, 0x7f6e, - 0x81f4, 0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5, - 0x98ed, 0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, - 0x6c88, 0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, - 0x7a31, 0x5feb, 0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, - 0x6253, 0x62d6, 0x6736, 0x6955, 0x8235, 0x9640, 0x99b1, 0x99dd, - 0x502c, 0x5353, 0x5544, 0x577c, 0xfa01, 0x6258, 0xfa02, 0x64e2, - 0x666b, 0x67dd, 0x6fc1, 0x6fef, 0x7422, 0x7438, 0x8a17, 0x003f, - /* lead byte f7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e, - 0x7058, 0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, - 0x803d, 0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, - 0xfa03, 0x8569, 0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, - 0x6c70, 0x6cf0, 0x7b1e, 0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, - 0xfa04, 0x64c7, 0x6fa4, 0x6491, 0x6504, 0x514e, 0x5410, 0x571f, - 0x8a0e, 0x615f, 0x6876, 0xfa05, 0x75db, 0x7b52, 0x7d71, 0x901a, - 0x5806, 0x69cc, 0x817f, 0x892a, 0x9000, 0x9839, 0x5078, 0x5957, - 0x59ac, 0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6, 0x5761, - 0x5a46, 0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e, - 0x722c, 0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, - 0x5742, 0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211, 0x003f, - /* lead byte f8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x962a, 0x516b, 0x53ed, 0x634c, 0x4f69, 0x5504, 0x6096, - 0x6557, 0x6c9b, 0x6d7f, 0x724c, 0x72fd, 0x7a17, 0x8987, 0x8c9d, - 0x5f6d, 0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf, 0x504f, 0x6241, - 0x7247, 0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19, 0x8cb6, - 0x576a, 0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63, - 0x5ee2, 0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, - 0x5305, 0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, - 0x629b, 0x62b1, 0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, - 0x80de, 0x812f, 0x82de, 0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, - 0x92ea, 0x98fd, 0x9b91, 0x5e45, 0x66b4, 0x66dd, 0x7011, 0x7206, - 0xfa07, 0x4ff5, 0x527d, 0x5f6a, 0x6153, 0x6753, 0x6a19, 0x6f02, - 0x74e2, 0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4, 0x9a43, 0x003f, - /* lead byte f9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, - 0x5f7c, 0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, - 0x5f3c, 0x5fc5, 0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, - 0x999d, 0x4e4f, 0x903c, 0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, - 0x6630, 0x6cb3, 0x7455, 0x8377, 0x8766, 0x8cc0, 0x9050, 0x971e, - 0x9c15, 0x58d1, 0x5b78, 0x8650, 0x8b14, 0x9db4, 0x5bd2, 0x6068, - 0x608d, 0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a, 0x7f55, 0x7ff0, - 0x9591, 0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd, 0x542b, - 0x54b8, 0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c, - 0x9677, 0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, - 0x965c, 0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, - 0x676d, 0x6841, 0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a, 0x003f, - /* lead byte fa */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfa08, 0xfa09, 0x9805, 0x4ea5, 0x5055, 0x54b3, 0x5793, - 0x595a, 0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77, 0x7023, 0x87f9, - 0x89e3, 0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be, 0x6838, - 0x5016, 0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae, - 0x73e6, 0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, - 0x865b, 0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, - 0x9a57, 0x5955, 0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, - 0x61f8, 0x665b, 0x6ceb, 0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, - 0x774d, 0x7d43, 0x7d62, 0x7e23, 0x8237, 0x8852, 0xfa0a, 0x8ce2, - 0x9249, 0x986f, 0x5b51, 0x7a74, 0x8840, 0x9801, 0x5acc, 0x4fe0, - 0x5354, 0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9, 0x8105, 0x8107, - 0x83a2, 0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, 0x578b, 0x003f, - /* lead byte fb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, - 0x73e9, 0x7469, 0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, - 0x99a8, 0x516e, 0x5f57, 0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, - 0x91af, 0x978b, 0x4e4e, 0x4e92, 0x547c, 0x58d5, 0x58fa, 0x597d, - 0x5cb5, 0x5f27, 0x6236, 0x6248, 0x660a, 0x6667, 0x6beb, 0x6d69, - 0x6dcf, 0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9, 0x705d, 0x72d0, - 0x7425, 0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e, 0x80e1, - 0x82a6, 0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a, - 0x93ac, 0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, - 0x6df7, 0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, - 0x5f18, 0x6c5e, 0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, - 0x9d3b, 0x5316, 0x548c, 0x5b05, 0x6a3a, 0x706b, 0x7575, 0x003f, - /* lead byte fc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71, 0x8b41, 0x8ca8, - 0x9774, 0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b, 0x4e38, - 0x559a, 0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665, - 0x6853, 0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, - 0x6d3b, 0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, - 0x604d, 0x60f6, 0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, - 0x6e5f, 0x6ec9, 0x6f62, 0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, - 0x8352, 0x8757, 0x9051, 0x968d, 0x9ec3, 0x532f, 0x56de, 0x5efb, - 0x5f8a, 0x6062, 0x6094, 0x61f7, 0x6666, 0x6703, 0x6a9c, 0x6dee, - 0x6fae, 0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334, 0x86d4, 0x8aa8, - 0x8cc4, 0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, 0x54ee, 0x5686, - 0x5b5d, 0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, 0x6dc6, 0x003f, - /* lead byte fd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x723b, 0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, - 0x540e, 0x543c, 0x5589, 0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, - 0x73dd, 0x9005, 0x52db, 0x52f3, 0x5864, 0x58ce, 0x7104, 0x718f, - 0x71fb, 0x85b0, 0x8a13, 0x6688, 0x85a8, 0x55a7, 0x6684, 0x714a, - 0x8431, 0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd, 0x63ee, 0x6689, - 0x7147, 0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb, 0x7566, - 0x8667, 0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36, - 0x80f8, 0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, - 0x7d07, 0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, - 0x7fd5, 0x8208, 0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, - 0x5b09, 0x5e0c, 0x6199, 0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, - 0x71b9, 0x71ba, 0x72a7, 0x79a7, 0x7a00, 0x7fb2, 0x8a70, 0x003f, - /* lead byte fe */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe05e, 0xe05f, 0xe060, 0xe061, 0xe062, 0xe063, 0xe064, - 0xe065, 0xe066, 0xe067, 0xe068, 0xe069, 0xe06a, 0xe06b, 0xe06c, - 0xe06d, 0xe06e, 0xe06f, 0xe070, 0xe071, 0xe072, 0xe073, 0xe074, - 0xe075, 0xe076, 0xe077, 0xe078, 0xe079, 0xe07a, 0xe07b, 0xe07c, - 0xe07d, 0xe07e, 0xe07f, 0xe080, 0xe081, 0xe082, 0xe083, 0xe084, - 0xe085, 0xe086, 0xe087, 0xe088, 0xe089, 0xe08a, 0xe08b, 0xe08c, - 0xe08d, 0xe08e, 0xe08f, 0xe090, 0xe091, 0xe092, 0xe093, 0xe094, - 0xe095, 0xe096, 0xe097, 0xe098, 0xe099, 0xe09a, 0xe09b, 0xe09c, - 0xe09d, 0xe09e, 0xe09f, 0xe0a0, 0xe0a1, 0xe0a2, 0xe0a3, 0xe0a4, - 0xe0a5, 0xe0a6, 0xe0a7, 0xe0a8, 0xe0a9, 0xe0aa, 0xe0ab, 0xe0ac, - 0xe0ad, 0xe0ae, 0xe0af, 0xe0b0, 0xe0b1, 0xe0b2, 0xe0b3, 0xe0b4, - 0xe0b5, 0xe0b6, 0xe0b7, 0xe0b8, 0xe0b9, 0xe0ba, 0xe0bb, 0x003f -}; - -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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00 -}; - -static const unsigned short uni2cp_low[38144] = -{ - /* 0x0000 .. 0x00ff */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0080, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa2ae, 0xa1cb, 0xa1cc, 0xa2b4, 0xa1cd, 0x007c, 0xa1d7, - 0xa1a7, 0xa8cf, 0xa8a3, 0xa1ec, 0xa1fe, 0xa1a9, 0xa2e7, 0x003f, - 0xa1c6, 0xa1be, 0xa9f7, 0xa9f8, 0xa2a5, 0xa5ec, 0xa2d2, 0xa1a4, - 0xa2ac, 0xa9f6, 0xa8ac, 0xa1ed, 0xa8f9, 0xa8f6, 0xa8fa, 0xa2af, - 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0xa8a1, 0x0043, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, - 0xa8a2, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0xa1bf, - 0xa8aa, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0xa8ad, 0xa9ac, - 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0xa9a1, 0x0063, - 0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, - 0xa9a3, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0xa1c0, - 0xa9aa, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0xa9ad, 0x0079, - /* 0x0100 .. 0x01ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa9a2, 0xa9a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8a4, 0xa9a4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa9a5, 0xa8a6, 0xa9a6, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa9a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8a8, - 0xa9a8, 0xa8a9, 0xa9a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa9b0, 0xa8af, 0xa9af, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa8ab, 0xa9ab, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8ae, 0xa9ae, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0200 .. 0x02ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa2b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa2a8, 0xa2ab, 0xa2aa, 0xa2ad, 0x003f, 0xa2a9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0300 .. 0x03ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa5c1, 0xa5c2, 0xa5c3, 0xa5c4, 0xa5c5, 0xa5c6, 0xa5c7, - 0xa5c8, 0xa5c9, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, - 0xa5d0, 0xa5d1, 0x003f, 0xa5d2, 0xa5d3, 0xa5d4, 0xa5d5, 0xa5d6, - 0xa5d7, 0xa5d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa5e1, 0xa5e2, 0xa5e3, 0xa5e4, 0xa5e5, 0xa5e6, 0xa5e7, - 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ee, 0xa5ef, - 0xa5f0, 0xa5f1, 0x003f, 0xa5f2, 0xa5f3, 0xa5f4, 0xa5f5, 0xa5f6, - 0xa5f7, 0xa5f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0400 .. 0x04ff */ - 0x003f, 0xaca7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xaca1, 0xaca2, 0xaca3, 0xaca4, 0xaca5, 0xaca6, 0xaca8, 0xaca9, - 0xacaa, 0xacab, 0xacac, 0xacad, 0xacae, 0xacaf, 0xacb0, 0xacb1, - 0xacb2, 0xacb3, 0xacb4, 0xacb5, 0xacb6, 0xacb7, 0xacb8, 0xacb9, - 0xacba, 0xacbb, 0xacbc, 0xacbd, 0xacbe, 0xacbf, 0xacc0, 0xacc1, - 0xacd1, 0xacd2, 0xacd3, 0xacd4, 0xacd5, 0xacd6, 0xacd8, 0xacd9, - 0xacda, 0xacdb, 0xacdc, 0xacdd, 0xacde, 0xacdf, 0xace0, 0xace1, - 0xace2, 0xace3, 0xace4, 0xace5, 0xace6, 0xace7, 0xace8, 0xace9, - 0xacea, 0xaceb, 0xacec, 0xaced, 0xacee, 0xacef, 0xacf0, 0xacf1, - 0x003f, 0xacd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x1100 .. 0x11ff */ - 0xa4a1, 0xa4a2, 0xa4a4, 0xa4a7, 0xa4a8, 0xa4a9, 0xa4b1, 0xa4b2, - 0xa4b3, 0xa4b5, 0xa4b6, 0xa4b7, 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, - 0xa4bc, 0xa4bd, 0xa4be, 0x003f, 0xa4d5, 0xa4d6, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa4dd, 0x003f, 0xa4de, 0xa4e1, 0xa4e2, 0x003f, - 0xa4e3, 0xa4b4, 0xa4e4, 0xa4e5, 0x003f, 0x003f, 0x003f, 0xa4e6, - 0x003f, 0xa4e7, 0x003f, 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, - 0x003f, 0x003f, 0xa4ed, 0x003f, 0x003f, 0x003f, 0xa4ee, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa4b5, 0xa4b6, 0xa4b5, 0xa4b6, - 0xa4ef, 0x003f, 0x003f, 0x003f, 0x003f, 0xa4f2, 0xa4f3, 0xa4f0, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa4b7, 0x003f, 0xa4b8, 0xa4b9, - 0xa4b8, 0xa4b9, 0x003f, 0x003f, 0xa4ba, 0xa4ba, 0x003f, 0xa4f4, - 0xa4f5, 0xa4f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa4d4, - 0x003f, 0xa4bf, 0xa4c0, 0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, 0xa4c5, - 0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, 0xa4cc, 0xa4cd, - 0xa4ce, 0xa4cf, 0xa4d0, 0xa4d1, 0xa4d2, 0xa4d3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa4f7, 0xa4f8, 0x003f, 0x003f, - 0xa4f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa4fa, 0xa4fb, 0x003f, 0xa4fc, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa4fd, 0x003f, - 0x003f, 0xa4fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, 0xa4a5, 0xa4a6, 0xa4a7, 0xa4a9, - 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4ae, 0xa4af, 0xa4b0, 0xa4b1, - 0xa4b2, 0xa4b4, 0xa4b5, 0xa4b6, 0xa4b7, 0xa4b8, 0xa4ba, 0xa4bb, - 0xa4bc, 0xa4bd, 0xa4be, 0x003f, 0x003f, 0x003f, 0xa4d6, 0xa4d7, - 0xa4d8, 0x003f, 0x003f, 0x003f, 0xa4d9, 0x003f, 0xa4da, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa4db, 0x003f, 0x003f, 0x003f, 0xa4dc, - 0x003f, 0xa4dd, 0x003f, 0x003f, 0xa4de, 0xa4df, 0x003f, 0xa4e0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa4e8, 0xa4ea, - 0xa4ec, 0x003f, 0xa4ed, 0xa4ef, 0x003f, 0x003f, 0xa4f0, 0x003f, - 0xa4b7, 0xa4f2, 0xa4f3, 0x003f, 0xa4f4, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa4f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2000 .. 0x20ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1aa, 0x003f, 0x003f, - 0xa1ae, 0xa1af, 0x003f, 0x003f, 0xa1b0, 0xa1b1, 0x003f, 0x003f, - 0xa2d3, 0xa2d4, 0x003f, 0x003f, 0x003f, 0xa1a5, 0xa1a6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa2b6, 0x003f, 0xa1c7, 0xa1c8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa1d8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa9f9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa9fa, - 0x003f, 0xa9fb, 0xa9fc, 0xa9fd, 0xa9fe, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x005c, 0x003f, 0x003f, 0xa2e6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2100 .. 0x21ff */ - 0x003f, 0x003f, 0x003f, 0xa1c9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa2b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa7a4, 0x003f, 0x003f, 0xa2e0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa2e5, 0xa2e2, 0x003f, 0x003f, 0x003f, 0xa7d9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa1ca, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa8f7, 0xa8f8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa8fb, 0xa8fc, 0xa8fd, 0xa8fe, 0x003f, - 0xa5b0, 0xa5b1, 0xa5b2, 0xa5b3, 0xa5b4, 0xa5b5, 0xa5b6, 0xa5b7, - 0xa5b8, 0xa5b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa5a1, 0xa5a2, 0xa5a3, 0xa5a4, 0xa5a5, 0xa5a6, 0xa5a7, 0xa5a8, - 0xa5a9, 0xa5aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1e7, 0xa1e8, 0xa1e6, 0xa1e9, 0xa1ea, 0xa2d5, 0xa2d8, 0xa2d6, - 0xa2d9, 0xa2d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa2a1, 0x003f, 0xa2a2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2200 .. 0x22ff */ - 0xa2a3, 0x003f, 0xa1d3, 0xa2a4, 0x003f, 0x003f, 0x003f, 0xa1d4, - 0xa1f4, 0x003f, 0x003f, 0xa1f5, 0x003f, 0x003f, 0x003f, 0xa2b3, - 0x003f, 0xa2b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1ee, 0x003f, 0x003f, 0xa1f0, 0xa1c4, 0x003f, - 0xa1d0, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ab, 0x003f, 0xa1fc, - 0xa1fd, 0xa1fb, 0xa1fa, 0xa1f2, 0xa1f3, 0x003f, 0xa2b1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa1c5, 0xa1f1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ad, 0xa1ef, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1c1, 0xa1d5, 0x003f, 0x003f, 0xa1c2, 0xa1c3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1ec, 0xa1ed, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1f8, 0xa1f9, 0x003f, 0x003f, 0xa1f6, 0xa1f7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa2c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1d1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2300 .. 0x23ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2400 .. 0x24ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa8e7, 0xa8e8, 0xa8e9, 0xa8ea, 0xa8eb, 0xa8ec, 0xa8ed, 0xa8ee, - 0xa8ef, 0xa8f0, 0xa8f1, 0xa8f2, 0xa8f3, 0xa8f4, 0xa8f5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa9e7, 0xa9e8, 0xa9e9, 0xa9ea, - 0xa9eb, 0xa9ec, 0xa9ed, 0xa9ee, 0xa9ef, 0xa9f0, 0xa9f1, 0xa9f2, - 0xa9f3, 0xa9f4, 0xa9f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa9cd, 0xa9ce, 0xa9cf, 0xa9d0, - 0xa9d1, 0xa9d2, 0xa9d3, 0xa9d4, 0xa9d5, 0xa9d6, 0xa9d7, 0xa9d8, - 0xa9d9, 0xa9da, 0xa9db, 0xa9dc, 0xa9dd, 0xa9de, 0xa9df, 0xa9e0, - 0xa9e1, 0xa9e2, 0xa9e3, 0xa9e4, 0xa9e5, 0xa9e6, 0xa8cd, 0xa8ce, - 0xa8cf, 0xa8d0, 0xa8d1, 0xa8d2, 0xa8d3, 0xa8d4, 0xa8d5, 0xa8d6, - 0xa8d7, 0xa8d8, 0xa8d9, 0xa8da, 0xa8db, 0xa8dc, 0xa8dd, 0xa8de, - 0xa8df, 0xa8e0, 0xa8e1, 0xa8e2, 0xa8e3, 0xa8e4, 0xa8e5, 0xa8e6, - 0xa8cd, 0xa8ce, 0xa8cf, 0xa8d0, 0xa8d1, 0xa8d2, 0xa8d3, 0xa8d4, - 0xa8d5, 0xa8d6, 0xa8d7, 0xa8d8, 0xa8d9, 0xa8da, 0xa8db, 0xa8dc, - 0xa8dd, 0xa8de, 0xa8df, 0xa8e0, 0xa8e1, 0xa8e2, 0xa8e3, 0xa8e4, - 0xa8e5, 0xa8e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2500 .. 0x25ff */ - 0xa6a1, 0xa6ac, 0xa6a2, 0xa6ad, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa6a3, 0xa6c8, 0xa6c7, 0xa6ae, - 0xa6a4, 0xa6c2, 0xa6c1, 0xa6af, 0xa6a6, 0xa6c6, 0xa6c5, 0xa6b1, - 0xa6a5, 0xa6c4, 0xa6c3, 0xa6b0, 0xa6a7, 0xa6bc, 0xa6c9, 0xa6ca, - 0xa6b7, 0xa6cb, 0xa6cc, 0xa6b2, 0xa6a9, 0xa6be, 0xa6cd, 0xa6ce, - 0xa6b9, 0xa6cf, 0xa6d0, 0xa6b4, 0xa6a8, 0xa6d1, 0xa6d2, 0xa6b8, - 0xa6bd, 0xa6d3, 0xa6d4, 0xa6b3, 0xa6aa, 0xa6d5, 0xa6d6, 0xa6ba, - 0xa6bf, 0xa6d7, 0xa6d8, 0xa6b5, 0xa6ab, 0xa6d9, 0xa6da, 0xa6bb, - 0xa6db, 0xa6dc, 0xa6c0, 0xa6dd, 0xa6de, 0xa6df, 0xa6e0, 0xa6e1, - 0xa6e2, 0xa6e3, 0xa6e4, 0xa6b6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa2c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1e1, 0xa1e0, 0x003f, 0xa2c3, 0xa2c7, 0xa2c8, 0xa2cb, 0xa2ca, - 0xa2c9, 0xa2cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1e3, 0xa1e2, 0x003f, 0x003f, 0xa2ba, 0xa2b9, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e5, 0xa1e4, 0x003f, 0x003f, - 0xa2b8, 0xa2b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1df, 0xa1de, - 0xa2c2, 0x003f, 0x003f, 0xa1db, 0x003f, 0x003f, 0xa1dd, 0xa1dc, - 0xa2c4, 0xa2c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2600 .. 0x26ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1da, 0xa1d9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2cf, 0xa2ce, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa2d0, 0x003f, 0xa2d1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1cf, 0x003f, 0xa1ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa2bc, 0xa2bd, 0x003f, 0xa2c0, 0xa2bb, 0xa2be, 0x003f, 0xa2bf, - 0xa2cd, 0xa2db, 0xa2dc, 0x003f, 0xa2dd, 0xa2da, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3000 .. 0x30ff */ - 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a8, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1b4, 0xa1b5, 0xa1b6, 0xa1b7, 0xa1b8, 0xa1b9, 0xa1ba, 0xa1bb, - 0xa1bc, 0xa1bd, 0x003f, 0xa1eb, 0xa1b2, 0xa1b3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xaaa1, 0xaaa2, 0xaaa3, 0xaaa4, 0xaaa5, 0xaaa6, 0xaaa7, - 0xaaa8, 0xaaa9, 0xaaaa, 0xaaab, 0xaaac, 0xaaad, 0xaaae, 0xaaaf, - 0xaab0, 0xaab1, 0xaab2, 0xaab3, 0xaab4, 0xaab5, 0xaab6, 0xaab7, - 0xaab8, 0xaab9, 0xaaba, 0xaabb, 0xaabc, 0xaabd, 0xaabe, 0xaabf, - 0xaac0, 0xaac1, 0xaac2, 0xaac3, 0xaac4, 0xaac5, 0xaac6, 0xaac7, - 0xaac8, 0xaac9, 0xaaca, 0xaacb, 0xaacc, 0xaacd, 0xaace, 0xaacf, - 0xaad0, 0xaad1, 0xaad2, 0xaad3, 0xaad4, 0xaad5, 0xaad6, 0xaad7, - 0xaad8, 0xaad9, 0xaada, 0xaadb, 0xaadc, 0xaadd, 0xaade, 0xaadf, - 0xaae0, 0xaae1, 0xaae2, 0xaae3, 0xaae4, 0xaae5, 0xaae6, 0xaae7, - 0xaae8, 0xaae9, 0xaaea, 0xaaeb, 0xaaec, 0xaaed, 0xaaee, 0xaaef, - 0xaaf0, 0xaaf1, 0xaaf2, 0xaaf3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xaba1, 0xaba2, 0xaba3, 0xaba4, 0xaba5, 0xaba6, 0xaba7, - 0xaba8, 0xaba9, 0xabaa, 0xabab, 0xabac, 0xabad, 0xabae, 0xabaf, - 0xabb0, 0xabb1, 0xabb2, 0xabb3, 0xabb4, 0xabb5, 0xabb6, 0xabb7, - 0xabb8, 0xabb9, 0xabba, 0xabbb, 0xabbc, 0xabbd, 0xabbe, 0xabbf, - 0xabc0, 0xabc1, 0xabc2, 0xabc3, 0xabc4, 0xabc5, 0xabc6, 0xabc7, - 0xabc8, 0xabc9, 0xabca, 0xabcb, 0xabcc, 0xabcd, 0xabce, 0xabcf, - 0xabd0, 0xabd1, 0xabd2, 0xabd3, 0xabd4, 0xabd5, 0xabd6, 0xabd7, - 0xabd8, 0xabd9, 0xabda, 0xabdb, 0xabdc, 0xabdd, 0xabde, 0xabdf, - 0xabe0, 0xabe1, 0xabe2, 0xabe3, 0xabe4, 0xabe5, 0xabe6, 0xabe7, - 0xabe8, 0xabe9, 0xabea, 0xabeb, 0xabec, 0xabed, 0xabee, 0xabef, - 0xabf0, 0xabf1, 0xabf2, 0xabf3, 0xabf4, 0xabf5, 0xabf6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3100 .. 0x31ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, 0xa4a5, 0xa4a6, 0xa4a7, - 0xa4a8, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4ae, 0xa4af, - 0xa4b0, 0xa4b1, 0xa4b2, 0xa4b3, 0xa4b4, 0xa4b5, 0xa4b6, 0xa4b7, - 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, 0xa4be, 0xa4bf, - 0xa4c0, 0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, 0xa4c5, 0xa4c6, 0xa4c7, - 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, - 0xa4d0, 0xa4d1, 0xa4d2, 0xa4d3, 0xa4d4, 0xa4d5, 0xa4d6, 0xa4d7, - 0xa4d8, 0xa4d9, 0xa4da, 0xa4db, 0xa4dc, 0xa4dd, 0xa4de, 0xa4df, - 0xa4e0, 0xa4e1, 0xa4e2, 0xa4e3, 0xa4e4, 0xa4e5, 0xa4e6, 0xa4e7, - 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ed, 0xa4ee, 0xa4ef, - 0xa4f0, 0xa4f1, 0xa4f2, 0xa4f3, 0xa4f4, 0xa4f5, 0xa4f6, 0xa4f7, - 0xa4f8, 0xa4f9, 0xa4fa, 0xa4fb, 0xa4fc, 0xa4fd, 0xa4fe, 0x003f, - 0x003f, 0x003f, 0xece9, 0xeca3, 0xdfb2, 0xdecc, 0xdfbe, 0xf1e9, - 0xf9bb, 0xcba3, 0xebe0, 0xdcb0, 0xefcb, 0xf4b8, 0xf2a2, 0xecd1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3200 .. 0x32ff */ - 0xa9b1, 0xa9b2, 0xa9b3, 0xa9b4, 0xa9b5, 0xa9b6, 0xa9b7, 0xa9b8, - 0xa9b9, 0xa9ba, 0xa9bb, 0xa9bc, 0xa9bd, 0xa9be, 0xa9bf, 0xa9c0, - 0xa9c1, 0xa9c2, 0xa9c3, 0xa9c4, 0xa9c5, 0xa9c6, 0xa9c7, 0xa9c8, - 0xa9c9, 0xa9ca, 0xa9cb, 0xa9cc, 0xa2df, 0x003f, 0x003f, 0x003f, - 0xece9, 0xeca3, 0xdfb2, 0xdecc, 0xe7e9, 0xd7bf, 0xf6d2, 0xf8a2, - 0xcefa, 0xe4a8, 0xeac5, 0xfbfd, 0xe2a9, 0xd9ca, 0xd1d1, 0xf7cf, - 0xeced, 0xf1bb, 0xeaf3, 0xdee4, 0xd9a3, 0xf7e5, 0xeeaf, 0xf5e6, - 0xd6cc, 0xd3db, 0xfbbc, 0xf9ca, 0xcaf8, 0xd0ea, 0xedc0, 0xfaf0, - 0xf0ae, 0xfdcc, 0xedbb, 0xf2b8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa8b1, 0xa8b2, 0xa8b3, 0xa8b4, 0xa8b5, 0xa8b6, 0xa8b7, 0xa8b8, - 0xa8b9, 0xa8ba, 0xa8bb, 0xa8bc, 0xa8bd, 0xa8be, 0xa8bf, 0xa8c0, - 0xa8c1, 0xa8c2, 0xa8c3, 0xa8c4, 0xa8c5, 0xa8c6, 0xa8c7, 0xa8c8, - 0xa8c9, 0xa8ca, 0xa8cb, 0xa8cc, 0x003f, 0x003f, 0x003f, 0xa2de, - 0xece9, 0xeca3, 0xdfb2, 0xdecc, 0xe7e9, 0xd7bf, 0xf6d2, 0xf8a2, - 0xcefa, 0xe4a8, 0xeac5, 0xfbfd, 0xe2a9, 0xd9ca, 0xd1d1, 0xf7cf, - 0xeced, 0xf1bb, 0xeaf3, 0xdee4, 0xd9a3, 0xf7e5, 0xeeaf, 0xf5e6, - 0xd6cc, 0xddfa, 0xd1fb, 0xd2b3, 0xeeea, 0xe9d0, 0xecd4, 0xf1bc, - 0xfaa3, 0xfdcc, 0xded0, 0xefe1, 0xdfbe, 0xf1e9, 0xf9bb, 0xf1a7, - 0xe9d3, 0xeca2, 0xf0f3, 0xf9ca, 0xcaf8, 0xd0ea, 0xedc0, 0xfaf0, - 0xe5a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3300 .. 0x33ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa7c9, 0xa7ca, 0xa7cb, 0xa7cc, 0xa7cd, 0x003f, 0x003f, 0x003f, - 0xa7ba, 0xa7bb, 0xa7dc, 0xa7dd, 0xa7de, 0xa7b6, 0xa7b7, 0xa7b8, - 0xa7d4, 0xa7d5, 0xa7d6, 0xa7d7, 0xa7d8, 0xa7a1, 0xa7a2, 0xa7a3, - 0xa7a5, 0xa7ab, 0xa7ac, 0xa7ad, 0xa7ae, 0xa7af, 0xa7b0, 0xa7b1, - 0xa7b2, 0xa7b3, 0xa7b4, 0xa7a7, 0xa7a8, 0xa7a9, 0xa7aa, 0xa7bd, - 0xa7be, 0xa7e5, 0xa7e6, 0xa7e7, 0xa7e8, 0xa7e1, 0xa7e2, 0xa7e3, - 0xa7bf, 0xa7c0, 0xa7c1, 0xa7c2, 0xa7c3, 0xa7c4, 0xa7c5, 0xa7c6, - 0xa7c7, 0xa7c8, 0xa7ce, 0xa7cf, 0xa7d0, 0xa7d1, 0xa7d2, 0xa7d3, - 0xa7da, 0xa7db, 0xa2e3, 0xa7ec, 0xa7a6, 0xa7e0, 0xa7ef, 0xa2e1, - 0xa7bc, 0xa7ed, 0xa7b5, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7b9, - 0xa7ea, 0x003f, 0x003f, 0xa7eb, 0x003f, 0x003f, 0xa7df, 0x003f, - 0xa2e4, 0x003f, 0x003f, 0xa7e4, 0xa7ee, 0xa7e9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x4e00 .. 0x4eff */ - 0xece9, 0xefcb, 0x003f, 0xf6d2, 0x003f, 0x003f, 0x003f, 0xd8b2, - 0xeddb, 0xdfb2, 0xdfbe, 0xf9bb, 0x003f, 0xdcf4, 0x003f, 0x003f, - 0x003f, 0xf5e4, 0x003f, 0x003f, 0xf3a6, 0xdde0, 0xe1a6, 0x003f, - 0xcef8, 0xdcb0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3aa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e9, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcdfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfcaf, 0xd3a1, 0x003f, 0xf1ab, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7d1, 0xd2ac, 0x003f, 0xcef9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf1fd, 0x003f, 0xdebf, 0xfbba, 0xf9b9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xced2, 0x003f, - 0xe3ab, 0xebe0, 0x003f, 0x003f, 0x003f, 0xcefa, 0xcbf7, 0xe5a5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcae1, 0x003f, 0xd4cc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeae1, 0x003f, 0x003f, 0xdce3, 0xdfad, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbeb, 0x003f, - 0x003f, 0x003f, 0xd5af, 0x003f, 0x003f, 0x003f, 0xd6f5, 0x003f, - 0xe5f8, 0x003f, 0x003f, 0xdec0, 0xeca3, 0x003f, 0xe9cd, 0x003f, - 0xeaa7, 0xe9f6, 0xfbbb, 0x003f, 0xe7e9, 0xefcc, 0x003f, 0x003f, - 0xd0e6, 0x003f, 0x003f, 0xdec1, 0x003f, 0x003f, 0xe4ac, 0x003f, - 0x003f, 0xd8cc, 0xf9f1, 0x003f, 0xcedf, 0xfaa4, 0xe6b2, 0x003f, - 0xfafb, 0x003f, 0x003f, 0xfabd, 0xccc8, 0xefcd, 0xd5d5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3a2, 0x003f, - 0x003f, 0x003f, 0xecd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4a7, 0xecd2, 0x003f, 0x003f, 0xf6b1, 0x003f, 0x003f, 0xcefb, - 0x003f, 0x003f, 0xd0d1, 0xcbbf, 0x003f, 0xeda4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeda8, 0xdec2, 0xf6e2, 0xeddc, - 0xdcf5, 0xe0b9, 0x003f, 0x003f, 0x003f, 0xd4ce, 0x003f, 0xf4b5, - 0x003f, 0x003f, 0x003f, 0xd3db, 0xd6b5, 0xeca4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4e6, 0x003f, 0xf1ea, 0x003f, 0x003f, 0x003f, 0xcbec, 0xcbc0, - 0x003f, 0x003f, 0x003f, 0xecf2, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x4f00 .. 0x4fff */ - 0x003f, 0xd0ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf9f2, 0xeca5, 0xd0df, 0x003f, 0xe7ea, 0xd0eb, 0xdcd1, - 0xdbe9, 0xfdcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbd7, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdae1, 0x003f, 0xd6b6, 0x003f, - 0xe3df, 0x003f, 0xdec3, 0x003f, 0xdec4, 0xcaa1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeeec, 0x003f, 0x003f, 0xd3a3, 0xeeb7, - 0xf8cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac8, 0xeeb8, 0xf1ac, - 0xf1a5, 0xe9ce, 0x003f, 0x003f, 0x003f, 0xf9bc, 0x003f, 0x003f, - 0x003f, 0xe5f9, 0xecea, 0xddd6, 0xedc2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ba, - 0xdbd8, 0x003f, 0x003f, 0xcaa2, 0x003f, 0x003f, 0xd1cd, 0x003f, - 0x003f, 0x003f, 0xeeed, 0x003f, 0x003f, 0x003f, 0xeceb, 0xdec5, - 0x003f, 0xe3e0, 0x003f, 0xcac9, 0xf2e9, 0x003f, 0xd5ce, 0x003f, - 0xf6b6, 0x003f, 0xcec2, 0xd6c7, 0x003f, 0xe3b4, 0x003f, 0xf1ad, - 0x003f, 0xeae2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7c2, 0x003f, - 0xf3a7, 0x003f, 0x003f, 0xcdea, 0x003f, 0xebee, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9b2, 0xfda5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6d5, 0xd5e2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8b5, - 0x003f, 0x003f, 0xccf5, 0xf5b5, 0xe4ad, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe7eb, 0xf1d5, 0x003f, 0x003f, 0x003f, 0xf0bb, 0x003f, - 0x003f, 0xe9b5, 0x003f, 0xccc9, 0xfad5, 0x003f, 0x003f, 0xe1d4, - 0x003f, 0x003f, 0xd7d6, 0x003f, 0x003f, 0xdcc1, 0x003f, 0xdec6, - 0xfaef, 0xe3e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f3, 0xdcf6, - 0x003f, 0xcefc, 0x003f, 0xdbc4, 0x003f, 0xf8f1, 0x003f, 0x003f, - 0xdce4, 0x003f, 0xe5ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5000 .. 0x50ff */ - 0x003f, 0x003f, 0xdcb1, 0x003f, 0x003f, 0x003f, 0xd5d6, 0x003f, - 0x003f, 0xf3da, 0x003f, 0xcbc1, 0x003f, 0xdbc3, 0x003f, 0x003f, - 0x003f, 0xd9fa, 0xd3ee, 0x003f, 0x003f, 0x003f, 0xfab8, 0x003f, - 0x003f, 0xfda6, 0xebef, 0x003f, 0xf4a6, 0x003f, 0xccca, 0xf3a8, - 0x003f, 0xf3db, 0x003f, 0xdba7, 0xf6b7, 0x003f, 0xcfe6, 0xf0f2, - 0xcbda, 0x003f, 0xe7d2, 0xd7c3, 0xf6f0, 0xe8de, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5a6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5e7, 0x003f, 0x003f, 0x003f, 0xcaa3, - 0xcca7, 0xeac9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8b6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaa5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1ae, 0x003f, 0xefce, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbed, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf6b0, 0xefcf, 0xe9cf, 0x003f, - 0xf7de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xced3, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcf7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdba8, 0x003f, 0x003f, - 0x003f, 0xcbf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdfa1, 0xdde1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf5ca, 0xe9b6, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7ec, 0xeeee, 0x003f, 0xf3f0, 0x003f, 0xdfbf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcccb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0c1, 0x003f, 0x003f, - 0x003f, 0xf4d2, 0xe0ba, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfc0, - 0x003f, 0xcee0, 0x003f, 0x003f, 0x003f, 0xdcd2, 0xfdea, 0x003f, - 0x003f, 0x003f, 0xd6f6, 0x003f, 0x003f, 0x003f, 0xeaca, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8e9, 0x003f, 0xe3ac, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3d0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcaa4, 0x003f, 0xdbf8, 0x003f, 0x003f, 0x003f, 0xdec7, - /* 0x5100 .. 0x51ff */ - 0xebf0, 0xf1d6, 0x003f, 0x003f, 0xe5e2, 0x003f, 0xcccc, 0x003f, - 0x003f, 0xcbfb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeae3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfc1, - 0x003f, 0xd6ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeeb9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5e3, - 0x003f, 0x003f, 0xd1d3, 0x003f, 0xe5f0, 0x003f, 0x003f, 0x003f, - 0xe8b4, 0xebc3, 0x003f, 0xeaaa, 0xfafc, 0xf5f6, 0xf0bc, 0xfdd4, - 0xe0bb, 0xcec3, 0x003f, 0xd0ba, 0xf7ba, 0xd8f3, 0xf7cd, 0x003f, - 0x003f, 0x003f, 0xe4ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd4df, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd0e7, 0x003f, 0x003f, 0xecfd, 0x003f, 0xd2ae, - 0xeeef, 0xd5d7, 0xeae4, 0xf8a2, 0xcdeb, 0xd7bf, 0xfbb1, 0x003f, - 0x003f, 0xcdec, 0x003f, 0x003f, 0x003f, 0xdcb2, 0xd0ec, 0xcefd, - 0xeef0, 0x003f, 0x003f, 0x003f, 0xccc2, 0x003f, 0x003f, 0x003f, - 0xd0ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f7, 0x003f, - 0x003f, 0x003f, 0xf3fc, 0x003f, 0x003f, 0xeea2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd9b3, 0x003f, 0x003f, 0xd8f4, 0x003f, 0xe9b7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xceae, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd8f1, 0x003f, 0xd4cf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a7, 0xd5d2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf4a2, 0x003f, 0xf1d7, 0x003f, - 0x003f, 0xd5d8, 0x003f, 0xf0bd, 0xd7d0, 0xd4d0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd7cf, 0xebea, 0xfdeb, 0x003f, - 0x003f, 0xdbed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfcc5, 0xcbc2, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdd5, 0x003f, - 0xf4c8, 0xe8ea, 0xf5f3, 0x003f, 0x003f, 0xf9de, 0x003f, 0x003f, - /* 0x5200 .. 0x52ff */ - 0xd3ef, 0x003f, 0x003f, 0xecd3, 0x003f, 0x003f, 0xddc2, 0xefb7, - 0xe7d4, 0x003f, 0xcaca, 0x003f, 0x003f, 0x003f, 0xd9fb, 0x003f, - 0x003f, 0xfafd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6aa, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf7f7, 0xdcac, 0x003f, 0x003f, - 0x003f, 0xd7d7, 0xdfa2, 0x003f, 0x003f, 0x003f, 0xcebe, 0x003f, - 0xd3f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0a4, 0xe1ec, - 0xcfe7, 0xf3cb, 0xeda9, 0xcabe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf4ef, 0x003f, 0x003f, 0x003f, 0xf6ce, - 0x003f, 0x003f, 0xdefb, 0xd0bb, 0xd5b7, 0xeef1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf4a8, 0x003f, 0xdcf8, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcba7, 0x003f, 0xdace, 0x003f, 0x003f, - 0x003f, 0xe0e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeda5, 0xeef2, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcf9, - 0x003f, 0x003f, 0xf9dc, 0x003f, 0x003f, 0xf3dc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8f2, 0x003f, 0xf4f9, - 0x003f, 0x003f, 0x003f, 0xfcf1, 0x003f, 0x003f, 0x003f, 0xd0bc, - 0xdbf9, 0xd7b1, 0x003f, 0x003f, 0x003f, 0xcbfc, 0x003f, 0x003f, - 0x003f, 0xf0a5, 0xcbfd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd5f4, 0x003f, 0x003f, 0x003f, 0xcded, - 0xcaa5, 0x003f, 0x003f, 0xd6ab, 0xd0c2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf0be, 0xd2bd, 0xcca4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfab6, 0x003f, - 0x003f, 0xcccd, 0x003f, 0xdafa, 0x003f, 0xf6cf, 0x003f, 0xe9b8, - 0x003f, 0xd8f5, 0x003f, 0x003f, 0x003f, 0xccce, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd7cd, 0x003f, 0x003f, 0xd4d1, 0xe9ed, 0x003f, - 0xcaeb, 0xd9e2, 0x003f, 0xfdb2, 0x003f, 0xe3ad, 0xd6cc, 0xd9b4, - 0x003f, 0x003f, 0xe1a7, 0xeed3, 0xd0c3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfdb3, 0x003f, 0xd5e4, 0x003f, 0x003f, - 0xcfe8, 0x003f, 0xedc3, 0xd0b2, 0x003f, 0x003f, 0xcefe, 0xdaa8, - /* 0x5300 .. 0x53ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8d0, 0x003f, 0x003f, - 0xfdd6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8d1, 0x003f, 0xf8d2, - 0xdcd3, 0x003f, 0x003f, 0x003f, 0x003f, 0xdde2, 0xfbf9, 0xddc1, - 0x003f, 0xe3b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeddd, 0xcec4, 0x003f, 0xcba1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdde3, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcdd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf9af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2fb, - 0xcfa1, 0xe4a8, 0x003f, 0xf4b6, 0xecfe, 0x003f, 0x003f, 0xe3ae, - 0xe7ed, 0xfdc1, 0xdae2, 0x003f, 0x003f, 0xd8b3, 0x003f, 0x003f, - 0x003f, 0xdde4, 0xf0ef, 0xf6f1, 0xfaf0, 0x003f, 0x003f, 0xd1f5, - 0x003f, 0x003f, 0xdacf, 0x003f, 0xdcd4, 0x003f, 0xdca6, 0x003f, - 0xefbf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcecf, 0x003f, - 0xe0d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d6, - 0xecd4, 0xeacb, 0x003f, 0x003f, 0xcabf, 0xd5b0, 0x003f, 0xcfe9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ed, 0x003f, 0xcccf, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4ed, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd7d8, 0x003f, 0xfda7, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaab, - 0xf6b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xcff0, 0xf9bd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcbdb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf3d1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9d1, 0xf3a9, 0xd0e0, 0xe9d2, 0x003f, 0xdae3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d2, 0x003f, 0xf6a2, 0xe1f4, - 0x003f, 0x003f, 0x003f, 0xdae4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe7d5, 0xf5bf, 0xcfa2, 0xcdaf, 0xcfa3, 0x003f, 0x003f, - 0x003f, 0xcdb0, 0xf1fe, 0xd0a3, 0xe1af, 0xf8a3, 0x003f, 0xcaa6, - 0xf7bb, 0xf2ea, 0xdec8, 0xe9d3, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdec9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5400 .. 0x54ff */ - 0x003f, 0x003f, 0x003f, 0xfdde, 0xcac0, 0x003f, 0x003f, 0x003f, - 0xf9ea, 0xd1ce, 0xeed4, 0x003f, 0xd4d2, 0xd9a3, 0xfda8, 0xd7d9, - 0xf7ce, 0xfabe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcfd6, 0x003f, 0xd7f0, 0x003f, 0xebe1, - 0xf8c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcfa, 0x003f, - 0x003f, 0xddc3, 0x003f, 0xf9df, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe7ef, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfde5, 0xf6a3, 0x003f, 0xd9fc, 0xfda9, 0x003f, 0xe7ee, 0x003f, - 0x003f, 0x003f, 0xd5e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefd0, 0x003f, 0xcdb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf7a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1b2, 0x003f, 0xf1b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcdb2, 0x003f, 0xdaab, 0x003f, 0xcaa7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe3e2, 0xfbbc, 0xd9a4, 0x003f, 0x003f, - 0xeeba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8d3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfbfa, 0x003f, 0xcfa4, 0x003f, - 0xdcfb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e3, 0x003f, 0x003f, 0x003f, - 0xedaa, 0x003f, 0x003f, 0xf2a1, 0xcee1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfaa6, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf9e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xecd6, 0x003f, 0x003f, - 0xe4ee, 0xf9a1, 0x003f, 0x003f, 0xfbef, 0x003f, 0x003f, 0x003f, - 0xf9eb, 0xeea3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeaac, 0x003f, 0x003f, 0x003f, 0xcaa8, 0x003f, 0x003f, - 0xf4fa, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdd6, 0xfcf6, 0x003f, - 0x003f, 0x003f, 0xf4c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5500 .. 0x55ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xf8a6, 0x003f, 0xdeca, 0xf2c6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7da, 0x003f, - 0xd3d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeae6, - 0x003f, 0xf3dd, 0x003f, 0x003f, 0x003f, 0xe4da, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf6f2, 0x003f, 0xdfc2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9fd, - 0x003f, 0x003f, 0x003f, 0xccf6, 0x003f, 0x003f, 0xd3ba, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4af, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9e1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf0a6, 0x003f, 0x003f, 0x003f, - 0xcbd3, 0x003f, 0x003f, 0x003f, 0xe0bc, 0x003f, 0xf4ca, 0xd4fa, - 0x003f, 0xfdaa, 0xf9e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf4b7, 0xfdc2, 0xfcb0, 0x003f, 0xfdec, 0xcae2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdbd, - 0x003f, 0xeae7, 0xdfc3, 0xd1d2, 0xcee2, 0x003f, 0xd3a4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdab, 0x003f, 0xdfe0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7f0, 0x003f, 0xd0ee, 0x003f, 0x003f, 0xf3aa, - 0x003f, 0x003f, 0x003f, 0xdecb, 0xf6b8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f5, 0xf1b3, 0x003f, - /* 0x5600 .. 0x56ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7a3, 0x003f, - 0x003f, 0xcaa9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcfa5, 0x003f, 0x003f, 0xdfc4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1b0, - 0x003f, 0x003f, 0xf0bf, 0x003f, 0xf6a4, 0x003f, 0xe3b6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfac6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd0ef, 0x003f, 0x003f, 0xfded, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xddc4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcf7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6bf, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdead, 0x003f, 0xfabf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xedc4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd2a5, 0x003f, 0x003f, 0xfdee, 0x003f, 0x003f, - 0x003f, 0xf5b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1f6, 0xdecc, 0x003f, 0x003f, 0xfcde, 0x003f, - 0xecd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcddd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd6b7, 0xcdb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5700 .. 0x57ff */ - 0x003f, 0x003f, 0x003f, 0xf8d5, 0xe5d8, 0x003f, 0x003f, 0x003f, - 0xcfea, 0x003f, 0x003f, 0xcfd0, 0x003f, 0xeacc, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeaae, 0xeaad, 0x003f, 0x003f, 0xd3f1, 0x003f, - 0xd3a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7cf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeea4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0a4, 0x003f, 0x003f, - 0xf2a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd0f0, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2a3, 0x003f, 0xf7f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b3, - 0x003f, 0x003f, 0xdba9, 0x003f, 0x003f, 0xd3bb, 0xcaec, 0x003f, - 0xf1a6, 0xcbd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf7e7, 0x003f, 0x003f, 0xcdde, 0x003f, 0xf7a4, 0x003f, - 0x003f, 0x003f, 0xf8c0, 0x003f, 0x003f, 0x003f, 0xd3dd, 0x003f, - 0xccd0, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfa6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf6f3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd3dc, 0x003f, 0x003f, 0xfafe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfaa7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xebd9, 0x003f, 0xcfa7, 0xeaaf, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4ef, 0x003f, 0x003f, 0x003f, 0xe9b9, - 0xf1d8, 0x003f, 0x003f, 0xd8d8, 0x003f, 0x003f, 0xe0f2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b4, - 0xdcfc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf3f1, 0x003f, 0x003f, 0x003f, 0xe3d0, 0x003f, 0x003f, 0xf2fb, - 0x003f, 0xdbc6, 0xd0f1, 0x003f, 0xd0f2, 0x003f, 0x003f, 0x003f, - /* 0x5800 .. 0x58ff */ - 0xcfdc, 0x003f, 0xd3d1, 0x003f, 0x003f, 0xccb1, 0xf7d8, 0x003f, - 0xcba8, 0xebbc, 0xe4be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4dc, 0x003f, - 0x003f, 0xdcc2, 0x003f, 0x003f, 0xf0a7, 0x003f, 0x003f, 0xe6c0, - 0x003f, 0x003f, 0xcaed, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8eb, - 0xe5e8, 0xdcc3, 0x003f, 0x003f, 0xedde, 0xd3f2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xccf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xced4, 0xe7ab, 0x003f, 0x003f, 0x003f, 0xcbc3, - 0x003f, 0xe1b1, 0x003f, 0x003f, 0xf7b2, 0x003f, 0x003f, 0xd3f3, - 0xd3d2, 0x003f, 0xf5c0, 0x003f, 0x003f, 0x003f, 0xdfdd, 0x003f, - 0x003f, 0xeef3, 0xe7f1, 0x003f, 0xfdb4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c8, 0x003f, 0x003f, - 0x003f, 0xf3d2, 0x003f, 0x003f, 0xeef4, 0x003f, 0xe2d3, 0x003f, - 0x003f, 0x003f, 0x003f, 0xccd1, 0x003f, 0xdfea, 0x003f, 0x003f, - 0x003f, 0xe9ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd9d7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf5cd, 0x003f, 0xf1f2, 0xfac7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd9f8, 0xd4c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e5, 0x003f, - 0x003f, 0x003f, 0x003f, 0xddc5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7f2, 0xeddf, 0x003f, 0x003f, 0xcacb, 0x003f, - 0x003f, 0xdbfa, 0x003f, 0x003f, 0x003f, 0xe8b5, 0x003f, 0xd3a6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdb5, 0x003f, - 0x003f, 0xf9c9, 0x003f, 0xe4e2, 0x003f, 0xfbbd, 0x003f, 0x003f, - 0xd7a4, 0xcec5, 0x003f, 0x003f, 0x003f, 0x003f, 0xced5, 0xd6e6, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe5bd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdecd, 0xecf3, 0x003f, 0x003f, 0xede0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xecec, 0xfbbe, 0xdfeb, 0x003f, 0xe1f8, 0x003f, 0x003f, - /* 0x5900 .. 0x59ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9be, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f3, 0xe0aa, 0xe8e2, 0x003f, - 0x003f, 0xe2d4, 0xd2fd, 0x003f, 0xe5a8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd9d3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3de, - 0x003f, 0xf4b8, 0xf7bc, 0xdcfd, 0x003f, 0xe8ec, 0xe4e7, 0x003f, - 0x003f, 0xe3f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeca8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaf1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f2, 0x003f, 0x003f, 0xd0f4, - 0xd2af, 0xdce5, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0a5, 0xf1b4, - 0xfcb1, 0xccf8, 0x003f, 0x003f, 0xddc6, 0xfad1, 0x003f, 0xf7df, - 0x003f, 0x003f, 0xfaa8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeef5, 0x003f, 0xdece, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f3, - 0x003f, 0x003f, 0xf7ac, 0xebc4, 0xede1, 0xe0ab, 0xddc7, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd2b3, 0xd2bf, 0x003f, 0x003f, 0x003f, - 0xcacc, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbbf, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5fd, 0xdde5, 0xd8cd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xecf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd0f5, 0x003f, 0x003f, 0xe8ed, 0xd0d2, - 0x003f, 0xd9d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e6, 0x003f, 0x003f, - 0xdbaa, 0x003f, 0x003f, 0x003f, 0xf7e0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd8d9, 0x003f, 0xf4a3, 0x003f, 0x003f, 0xf4dd, 0x003f, - 0x003f, 0x003f, 0x003f, 0xefd1, 0x003f, 0x003f, 0xd9b5, 0x003f, - 0x003f, 0xedab, 0x003f, 0xe3b7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeebb, 0xcdb4, 0x003f, 0xe0f3, 0xeacd, 0x003f, 0x003f, 0x003f, - 0x003f, 0xecf5, 0xe8ee, 0x003f, 0xcba9, 0xf1af, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcacd, 0x003f, - 0xeca9, 0x003f, 0xf2eb, 0x003f, 0xfdef, 0x003f, 0xf9f3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6c1, 0x003f, 0x003f, 0xecd8, 0x003f, 0x003f, 0x003f, 0xedac, - /* 0x5a00 .. 0x5aff */ - 0x003f, 0xeace, 0x003f, 0xe8df, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdecf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd2a6, 0x003f, 0x003f, 0xe7f4, 0xd1d6, 0x003f, 0x003f, 0xe6c2, - 0xe3e3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4b0, 0x003f, 0x003f, - 0x003f, 0xd8b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6a5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf3de, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd7a5, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7e8, 0x003f, - 0x003f, 0xe8c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfbe6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdde6, 0x003f, 0x003f, 0x003f, 0xdcfe, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd8da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdaac, 0xeab0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcaaa, 0xe1f9, 0x003f, 0xeab1, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2ec, 0x003f, 0x003f, 0xfaee, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeed5, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9f4, 0x003f, - 0x003f, 0xd2ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5b00 .. 0x5bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbfb, 0x003f, 0x003f, - 0x003f, 0xfdf0, 0x003f, 0xe0bd, 0xcee3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8c6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdeae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdfc5, 0x003f, 0x003f, 0xe5be, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xedad, 0xfaea, 0x003f, 0x003f, 0xcdee, 0xeda6, 0x003f, 0xedae, - 0xf0ed, 0x003f, 0xdda1, 0x003f, 0xedaf, 0xfcf8, 0x003f, 0xd8eb, - 0x003f, 0x003f, 0x003f, 0xccf9, 0xcdb5, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfaa9, 0x003f, 0xe1dd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2d5, 0xedcf, 0x003f, 0x003f, 0x003f, 0xdda2, 0x003f, 0x003f, - 0xf9ca, 0x003f, 0xeae8, 0x003f, 0xe5ed, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3eb, 0x003f, 0xe9d4, - 0xe1fa, 0xe4cc, 0x003f, 0xe1e4, 0xe8c7, 0x003f, 0x003f, 0xcedb, - 0x003f, 0x003f, 0x003f, 0xdcd5, 0x003f, 0xf7b5, 0xfcf3, 0xf0f3, - 0xceaf, 0xf1b5, 0xefd2, 0xe8c8, 0xebf1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcbd4, 0xe0be, 0xe3f8, 0xeae9, 0xfcb2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f4, 0x003f, 0xcfe0, 0x003f, - 0xeea5, 0x003f, 0x003f, 0xfaaa, 0xe6c3, 0xe1b2, 0xcaab, 0x003f, - 0xe3e4, 0xe9bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d6, - 0xf3f2, 0x003f, 0xeed6, 0xeab2, 0xd0f6, 0xecd9, 0xdacb, 0xcfa8, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdda3, 0x003f, 0x003f, 0x003f, - 0xd8db, 0x003f, 0xf9ce, 0xe9d5, 0xe3d1, 0x003f, 0x003f, 0xd2bc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8ac, 0xf3cc, - 0x003f, 0xcdfb, 0xf6d6, 0x003f, 0xe7f5, 0xe8ef, 0xe3f9, 0xd2bb, - 0xf3f3, 0xe3fb, 0x003f, 0xded0, 0xceb0, 0x003f, 0xd6f7, 0xf1d9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5c1, 0xdcc4, 0x003f, - 0xf5bb, 0x003f, 0xded1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5c00 .. 0x5cff */ - 0x003f, 0xdce6, 0x003f, 0x003f, 0xded2, 0x003f, 0x003f, 0xede2, - 0xeef6, 0xeacf, 0xf0ee, 0xe3fc, 0x003f, 0xd3df, 0xd3f4, 0xe1b3, - 0x003f, 0xe1b4, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4d3, 0x003f, - 0x003f, 0xdfc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9d6, 0x003f, 0x003f, 0x003f, - 0xdbab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf6a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe3b9, 0xebc5, 0xf4a9, 0xcdb6, 0xd2f9, 0x003f, 0xdaad, 0xd2e3, - 0xcfd1, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbdc, 0xccfa, 0x003f, - 0xcfdd, 0x003f, 0x003f, 0xe8a9, 0x003f, 0xe3bb, 0xe3ba, 0x003f, - 0x003f, 0xe0da, 0x003f, 0x003f, 0x003f, 0xeef7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdcb3, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd3f5, 0x003f, 0xd7a6, 0x003f, 0xf6b5, 0xd7db, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d5, 0x003f, 0x003f, 0xd4ea, - 0x003f, 0xdfa3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfddf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd0f7, 0xedd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcbaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe4db, 0x003f, 0xe1fb, 0xcba2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd3e0, 0x003f, 0xe4bf, 0x003f, 0xfbc0, 0x003f, 0xdabe, - 0xe4cd, 0x003f, 0xd6b9, 0x003f, 0x003f, 0x003f, 0xefc0, 0x003f, - 0xe1fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf6b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdfc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdce7, - 0xdce8, 0x003f, 0x003f, 0x003f, 0xfad6, 0x003f, 0xd3f6, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf1da, 0x003f, 0xfaf2, 0x003f, 0x003f, - /* 0x5d00 .. 0x5dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2fd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5cf, 0xd0f8, 0x003f, - 0x003f, 0xcddf, 0x003f, 0x003f, 0xf5cb, 0x003f, 0xe4f0, 0xcbab, - 0x003f, 0xd7c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2fe, - 0x003f, 0xddda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdaae, 0xcaee, 0x003f, 0x003f, 0x003f, - 0xd5b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3a1, 0x003f, 0x003f, 0xe8e3, 0x003f, 0x003f, 0xf3ab, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfa9, - 0x003f, 0x003f, 0x003f, 0xd3f7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f1, 0x003f, 0x003f, - 0xcee4, 0x003f, 0xe8f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7ae, 0x003f, 0xd6ba, 0x003f, 0xdfec, 0xe4c0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8e4, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd8b5, 0x003f, 0x003f, 0x003f, 0xe4dc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4b9, 0xf1b6, 0x003f, - 0x003f, 0xe2de, 0xe1b5, 0x003f, 0x003f, 0xcdef, 0xf1a7, 0xcee5, - 0xcbdd, 0x003f, 0x003f, 0xd9e3, 0x003f, 0x003f, 0xf3ac, 0x003f, - 0x003f, 0xd0f9, 0xecab, 0xded3, 0xf7e9, 0x003f, 0x003f, 0xf9f5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1de, 0xcbee, 0x003f, - /* 0x5e00 .. 0x5eff */ - 0x003f, 0x003f, 0xe3bc, 0xf8d6, 0x003f, 0x003f, 0xdbee, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfdf1, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf7b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4de, 0x003f, - 0x003f, 0xf2ed, 0x003f, 0xdbd9, 0x003f, 0xf0a8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1fd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xded4, 0x003f, 0xe0ac, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xede3, 0x003f, 0x003f, 0xd3e1, 0x003f, - 0xdfc8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9b6, 0x003f, 0xfdac, - 0xefd3, 0x003f, 0x003f, 0x003f, 0xe4c1, 0xf8eb, 0x003f, 0xdbac, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfcc6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8ad, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6ba, - 0x003f, 0xdbdf, 0xd3d3, 0xf8c7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcace, 0xf8c1, 0xd2b4, 0x003f, 0x003f, 0xdcb4, - 0xfab9, 0xcacf, 0x003f, 0xfcb3, 0xeaea, 0xeaeb, 0xd0fa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xede4, 0x003f, 0x003f, 0xdde7, - 0x003f, 0x003f, 0xdfc9, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfed, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeebc, 0x003f, 0xefc1, - 0x003f, 0x003f, 0xccd2, 0x003f, 0xdda4, 0x003f, 0x003f, 0x003f, - 0xdfca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3f8, 0xf1a8, - 0x003f, 0x003f, 0x003f, 0xcdb7, 0x003f, 0xefd4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4dd, 0xdfee, 0xcbac, - 0xe9bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaec, 0x003f, - 0x003f, 0x003f, 0xdfcb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf9bf, 0xd6af, 0xd5c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcfaa, 0x003f, 0x003f, 0xcea9, 0x003f, 0x003f, 0xd6f8, 0x003f, - 0x003f, 0x003f, 0xf1b7, 0xeef8, 0x003f, 0x003f, 0x003f, 0xd9d9, - 0xf3df, 0x003f, 0xf8c8, 0xcec6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd5e6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf4e6, 0x003f, 0x003f, 0xe6c5, 0xefd5, - 0x003f, 0x003f, 0xcbef, 0xfcdf, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5f00 .. 0x5fff */ - 0x003f, 0xdca7, 0x003f, 0x003f, 0xd6e7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8c9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d2, - 0x003f, 0xe3bd, 0x003f, 0xcfe1, 0xf0c0, 0xecda, 0x003f, 0xddd7, - 0xfbf0, 0x003f, 0x003f, 0xecac, 0x003f, 0x003f, 0x003f, 0xf0a9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfad7, 0xfbc1, - 0x003f, 0xd2c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe5b0, 0x003f, 0x003f, 0x003f, 0xede5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcbad, 0x003f, 0xf9b0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf7a5, 0x003f, 0xcbae, 0x003f, 0xdaaf, 0x003f, 0xd8b6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3a7, 0xfbb2, - 0x003f, 0xfdc4, 0x003f, 0xecad, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfba1, 0x003f, 0x003f, 0x003f, 0xe5e9, 0xe9ee, - 0x003f, 0xf3f4, 0xf8f3, 0xf0c1, 0xdeaf, 0xf8b0, 0x003f, 0x003f, - 0xf3e0, 0xe7af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbad, - 0x003f, 0xe6b5, 0x003f, 0x003f, 0xf9a8, 0x003f, 0x003f, 0xddd8, - 0xe8d9, 0xefd6, 0x003f, 0x003f, 0x003f, 0xd3e2, 0x003f, 0xe2df, - 0x003f, 0x003f, 0xfce0, 0xd7c8, 0xfdad, 0x003f, 0x003f, 0x003f, - 0xdfef, 0xccd3, 0xd3f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f0, - 0xdbc7, 0xded5, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0f4, 0x003f, - 0xd5d0, 0xe5d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfcc7, 0xdcd6, 0xe2e0, 0x003f, 0x003f, 0x003f, 0xdab0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3a3, 0x003f, 0xd3ec, - 0x003f, 0xf4cb, 0x003f, 0x003f, 0x003f, 0xfdc5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe3fd, 0x003f, 0xf9b1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd0fb, 0xecdb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5bc, 0xf2a4, - 0xd8ce, 0xd8cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf6e1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2b7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbec, 0x003f, 0xddc8, - /* 0x6000 .. 0x60ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4e8, - 0x003f, 0x003f, 0xd2c1, 0x003f, 0x003f, 0x003f, 0xf8d7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6bb, 0xded6, 0x003f, 0x003f, - 0xf7bd, 0xecae, 0x003f, 0x003f, 0x003f, 0xd0e1, 0x003f, 0xe0f5, - 0xeab3, 0x003f, 0xced6, 0x003f, 0x003f, 0x003f, 0x003f, 0xcca5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xecf6, 0xe2e1, 0xe3be, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcc8, 0x003f, 0x003f, - 0xcdf0, 0x003f, 0xf9f6, 0x003f, 0x003f, 0xdff0, 0x003f, 0x003f, - 0x003f, 0xe5bf, 0x003f, 0x003f, 0x003f, 0xcebf, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfce1, 0xedb0, 0xfdd1, 0xf6bb, 0x003f, 0x003f, - 0xf9cf, 0xebda, 0xcac1, 0x003f, 0xd2b8, 0xcdf1, 0x003f, 0xe3d3, - 0xfde6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ed, 0x003f, 0x003f, - 0x003f, 0xe3fa, 0x003f, 0x003f, 0xf0aa, 0xf9d0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfce2, 0x003f, 0xf8a7, 0x003f, - 0x003f, 0x003f, 0xe1e5, 0xeef9, 0x003f, 0x003f, 0x003f, 0xe7f6, - 0xeaed, 0x003f, 0x003f, 0xfcb4, 0xf5c2, 0x003f, 0x003f, 0xd7dc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf0f5, 0x003f, 0xdde8, 0xd3ed, 0xf5fc, 0x003f, 0xdabf, 0x003f, - 0xccfb, 0x003f, 0x003f, 0x003f, 0xd3fa, 0xf4a4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefd7, 0x003f, 0xd4c3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfbe3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfbed, 0x003f, 0xe0ad, 0x003f, 0x003f, 0xeaee, - 0xfbb3, 0xe4c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf6e7, 0xd2dd, 0x003f, 0xdfcc, 0x003f, 0x003f, 0xfcc9, 0x003f, - 0x003f, 0xe5a9, 0xe0f6, 0xf6b3, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6100 .. 0x61ff */ - 0x003f, 0xe1fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbf0, 0x003f, - 0xeaef, 0xeaf0, 0x003f, 0x003f, 0x003f, 0xdac0, 0xf8b4, 0xebf2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4c3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9d7, 0xe4f1, 0x003f, 0x003f, 0x003f, 0xcaef, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xced7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfcca, 0x003f, 0x003f, 0x003f, 0xf3e1, 0x003f, 0x003f, 0xcbc4, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe3e5, 0x003f, 0xcbc5, 0xeab4, - 0x003f, 0x003f, 0xe9bd, 0x003f, 0xd7c9, 0x003f, 0x003f, 0xebdb, - 0xedb1, 0x003f, 0xccc3, 0xf7be, 0xfccb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf8f4, 0x003f, 0xd9b7, 0x003f, 0x003f, - 0xf3d3, 0xf3d4, 0x003f, 0x003f, 0x003f, 0xf7e4, 0x003f, 0xf7d1, - 0x003f, 0x003f, 0xd8b7, 0xceb1, 0xcac2, 0x003f, 0x003f, 0xfbb4, - 0xcbc6, 0x003f, 0x003f, 0xf0f6, 0x003f, 0x003f, 0xd5e7, 0x003f, - 0xead0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccd4, 0xcbaf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4aa, 0xe9af, 0x003f, - 0x003f, 0xf5c3, 0xe9d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdde9, 0x003f, 0x003f, 0x003f, 0xf1f3, 0x003f, - 0xd5fb, 0xdebb, 0x003f, 0x003f, 0xf4fb, 0x003f, 0x003f, 0x003f, - 0xfdf3, 0xfdf2, 0xf7a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xddc9, 0x003f, 0x003f, 0xd4d3, - 0x003f, 0xcca8, 0x003f, 0xdac1, 0xccd5, 0x003f, 0xd9e4, 0x003f, - 0x003f, 0x003f, 0xfaca, 0x003f, 0x003f, 0x003f, 0xe5e3, 0x003f, - 0x003f, 0x003f, 0xd3bc, 0x003f, 0x003f, 0x003f, 0xcaf0, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd0c4, 0x003f, 0x003f, 0x003f, 0xcad0, - 0xfaab, 0xebeb, 0xe7f8, 0xd9e5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1d7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3a4, 0x003f, 0x003f, 0x003f, 0xd4fb, 0xfce3, - 0xfad8, 0x003f, 0xf3d5, 0x003f, 0xcfab, 0x003f, 0x003f, 0xebf3, - /* 0x6200 .. 0x62ff */ - 0xd5fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d4, - 0xcdfc, 0x003f, 0xd9e6, 0x003f, 0xe2f9, 0xe2a1, 0xebd4, 0x003f, - 0xe0f7, 0xe4b2, 0xccfc, 0x003f, 0x003f, 0x003f, 0xfbe4, 0x003f, - 0x003f, 0x003f, 0xf4ab, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0bd, - 0x003f, 0xcaf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xefb8, 0x003f, 0x003f, 0x003f, 0xd7c0, 0x003f, - 0xeefa, 0xfdf4, 0x003f, 0x003f, 0xd3e3, 0x003f, 0xfbc2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5e8, 0xdbae, - 0xe1b6, 0xf8b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0bf, - 0xfbc3, 0xddea, 0x003f, 0xe2a2, 0x003f, 0xeea6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf6e8, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf6f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddca, 0x003f, - 0x003f, 0xd0e2, 0x003f, 0x003f, 0x003f, 0x003f, 0xdda6, 0x003f, - 0x003f, 0xddeb, 0x003f, 0x003f, 0xe4f9, 0x003f, 0x003f, 0xe3af, - 0xd0fc, 0x003f, 0x003f, 0x003f, 0xf4fc, 0x003f, 0x003f, 0x003f, - 0x003f, 0xccbc, 0xf7ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe5e4, 0xdff1, 0x003f, 0x003f, 0xf7e1, 0x003f, 0xf9f7, - 0xefb9, 0x003f, 0x003f, 0xf8d8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9a9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8d9, 0x003f, 0x003f, 0x003f, 0xeebd, 0x003f, 0x003f, - 0x003f, 0xd8c6, 0x003f, 0x003f, 0xe4e3, 0xf5ce, 0x003f, 0x003f, - 0x003f, 0x003f, 0xddd9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9e7, - 0xd2b9, 0xd5c3, 0x003f, 0x003f, 0xdae5, 0xdad0, 0x003f, 0xd1d9, - 0xced8, 0x003f, 0xcbde, 0xf4ac, 0xdafb, 0x003f, 0xf6e9, 0xe8f3, - 0xcfac, 0xf0f0, 0x003f, 0xf4fd, 0xdbc8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcec0, 0xe3d4, 0xd1cf, 0xf1f5, - 0x003f, 0xcdf2, 0x003f, 0xcfeb, 0x003f, 0x003f, 0x003f, 0xcdb8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a6, 0xd1da, - /* 0x6300 .. 0x63ff */ - 0x003f, 0xf2a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a6, - 0x003f, 0xe4ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd3fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf1a9, 0x003f, 0x003f, 0x003f, 0xf2c9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xefd8, 0xe6c9, 0x003f, 0xd8b8, 0xfaf3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3b5, 0x003f, 0x003f, 0xf8a4, 0x003f, 0x003f, 0xd1f3, - 0xe6c8, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8da, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdce9, - 0xded7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbdf, 0x003f, - 0x003f, 0x003f, 0xcfec, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4df, - 0x003f, 0x003f, 0xd1f4, 0xd2ba, 0x003f, 0x003f, 0x003f, 0xdff2, - 0x003f, 0x003f, 0x003f, 0xe1b7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2a3, 0xd3fc, 0x003f, 0x003f, 0xede6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdbc9, 0x003f, 0x003f, 0x003f, 0xe4fa, 0x003f, - 0xcfde, 0x003f, 0x003f, 0xced0, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd5d3, 0xf3f5, 0xf7ae, 0x003f, 0x003f, 0xefc8, 0x003f, 0xcdf3, - 0xf5cf, 0xe5f3, 0xf0c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcad1, 0x003f, 0x003f, 0x003f, 0xeaf1, 0x003f, 0xd0a6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9da, - 0xf0ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebe7, 0x003f, - 0x003f, 0x003f, 0xe5c0, 0xfcb5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe4c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcca9, 0xfdc6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeab5, 0x003f, 0xe5aa, 0xdfba, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6400 .. 0x64ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1df, 0x003f, 0xdad1, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1b8, 0x003f, 0xe8f4, 0xd3fd, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf2ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdae6, 0xf7b3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfdcd, 0x003f, 0x003f, 0x003f, 0xf3b6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeed7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd8a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd9b8, 0xd9b9, 0xefc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd6ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf7cb, 0xdfae, 0xe8f5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd2b5, 0x003f, 0x003f, 0x003f, 0xd3d5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf4cc, 0xdafc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd9e8, 0x003f, 0xf7eb, 0xf5c9, 0x003f, - 0xf3bc, 0x003f, 0xdad2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd3b5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe8b6, 0x003f, 0x003f, 0xd6cf, 0xf4ba, 0x003f, 0xf7c9, - 0x003f, 0x003f, 0xccaa, 0x003f, 0x003f, 0xf0c3, 0xccd6, 0x003f, - 0x003f, 0x003f, 0xd0d3, 0x003f, 0xd3bd, 0x003f, 0x003f, 0x003f, - 0xdbfb, 0x003f, 0xcbe0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd3e4, 0xf6f7, 0x003f, 0x003f, 0xd5ba, 0xf3cd, 0xcbe1, - 0x003f, 0x003f, 0x003f, 0x003f, 0xebf4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf4ad, 0x003f, 0xfcaa, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf7ec, 0x003f, 0x003f, 0x003f, 0xe8f6, 0x003f, - /* 0x6500 .. 0x65ff */ - 0xdae7, 0x003f, 0x003f, 0x003f, 0xf7cc, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe5c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ee, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd5fd, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcee6, 0xfcab, 0xd5bb, 0x003f, 0x003f, 0xf2a8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a5, 0xcdb9, - 0xeaf2, 0xcbc7, 0x003f, 0xcdf4, 0x003f, 0x003f, 0xdbaf, 0xefd9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdba, 0x003f, 0x003f, - 0xfcf9, 0x003f, 0x003f, 0x003f, 0x003f, 0xdff3, 0xcee7, 0xdac2, - 0x003f, 0xcfad, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f9, 0xf8a8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3e2, 0x003f, - 0x003f, 0x003f, 0xcaf2, 0xdfa4, 0x003f, 0x003f, 0xd4c4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xccd7, 0xe5c2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcdbb, 0x003f, 0xefda, 0xeed8, 0x003f, 0xdda7, - 0xe2a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c0, 0x003f, - 0x003f, 0x003f, 0xd6b0, 0xf8ca, 0x003f, 0xfcfa, 0x003f, 0xd9fe, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdeb0, 0x003f, 0x003f, 0x003f, - 0xddec, 0xdae8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4e0, - 0x003f, 0xd6f9, 0x003f, 0xcdd7, 0xded8, 0x003f, 0x003f, 0xf2f8, - 0x003f, 0xe4d6, 0x003f, 0x003f, 0xd0c5, 0xf4ae, 0x003f, 0xdda8, - 0x003f, 0x003f, 0x003f, 0xedc5, 0xf3d6, 0x003f, 0x003f, 0xded9, - 0xe3e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3a8, - 0x003f, 0xdbb0, 0x003f, 0x003f, 0xe5da, 0xe3bf, 0x003f, 0x003f, - 0x003f, 0xdbb1, 0x003f, 0x003f, 0x003f, 0xd5e9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0c1, 0xefdb, 0x003f, 0x003f, 0xf0e9, - 0x003f, 0x003f, 0xd7b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0fd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd9e9, 0x003f, 0x003f, 0xd0fe, 0x003f, 0xeced, 0xd3a9, 0x003f, - 0xf2a9, 0xf0c4, 0x003f, 0x003f, 0xe2e2, 0xe9ef, 0x003f, 0x003f, - 0x003f, 0xf9d1, 0x003f, 0x003f, 0xe9d9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe8da, 0xdac3, 0xdac4, 0xd4c5, 0x003f, 0xe7fa, - /* 0x6600 .. 0x66ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde0, 0xe3b0, - 0x003f, 0xdbb2, 0xfbc4, 0x003f, 0xf3e3, 0x003f, 0xd9a5, 0xfbe7, - 0xddcb, 0xd0d4, 0x003f, 0xe6b6, 0xe0ae, 0xfdda, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcb5, 0xe0f8, - 0xe7b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5f0, 0x003f, 0xd8dc, - 0xedc6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1b9, 0x003f, 0xe3c0, - 0xf9c0, 0xe9f0, 0x003f, 0x003f, 0xd9db, 0x003f, 0xf3e4, 0x003f, - 0x003f, 0x003f, 0xdcb6, 0xe4e9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf0c5, 0xe3c1, 0xfccc, 0xfccd, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2cb, 0x003f, 0xf2cc, 0x003f, 0x003f, 0x003f, 0xe4cf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf1db, 0x003f, 0xfad9, 0x003f, 0xf1b8, 0xfdf5, 0xe0f9, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe7fb, 0xfcb7, 0xfce4, 0xfbc5, - 0xe3e7, 0xd8b9, 0x003f, 0xf6f8, 0x003f, 0x003f, 0xdcc5, 0xccd8, - 0x003f, 0x003f, 0x003f, 0xe0af, 0xf4e7, 0x003f, 0xefdc, 0xcffc, - 0xefdd, 0x003f, 0xf2aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfdbe, 0x003f, 0x003f, 0xcaac, - 0xfdbb, 0xfdc7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b2, 0x003f, - 0xead1, 0xdff4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1ec, 0xe4de, - 0xe5c3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a6, 0x003f, 0x003f, - 0xcdbc, 0x003f, 0xf3e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xedd5, 0x003f, 0x003f, 0xd9ba, 0x003f, - 0x003f, 0x003f, 0xede7, 0xfbb5, 0xf8ec, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe0e7, 0x003f, 0xccd9, 0x003f, 0x003f, 0xd4c6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a5, 0x003f, 0xd5f5, 0xd3be, - 0x003f, 0xfcfb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f2, 0x003f, - 0x003f, 0xdff5, 0x003f, 0x003f, 0xe8f8, 0xf8ed, 0x003f, 0x003f, - 0xcec7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdf6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe8d8, 0x003f, 0xcdd8, 0xe7d6, 0xccda, 0x003f, 0x003f, 0xcae3, - 0xdff6, 0xf0c7, 0xf0c6, 0x003f, 0xd8ba, 0x003f, 0xf1f4, 0xf4f0, - /* 0x6700 .. 0x67ff */ - 0xf5cc, 0x003f, 0x003f, 0xfce5, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeac5, 0xeaf3, 0x003f, 0xdddb, 0x003f, 0xdcd7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdefd, 0xf2f9, 0x003f, 0xd5c7, - 0x003f, 0x003f, 0x003f, 0xd8d0, 0x003f, 0xf0c8, 0xd1a1, 0xd1a2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d4, 0xd6e8, - 0xd9ca, 0x003f, 0xdab1, 0xd8c7, 0xdce2, 0xf3ce, 0xf5f4, 0x003f, - 0x003f, 0xf1b9, 0x003f, 0x003f, 0xdad3, 0x003f, 0xf6ea, 0x003f, - 0x003f, 0x003f, 0xcff5, 0x003f, 0x003f, 0xfdae, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad2, 0x003f, - 0x003f, 0xdfb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7dd, 0xfaba, - 0xeea7, 0xf5bd, 0x003f, 0xf8f5, 0x003f, 0x003f, 0xede8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd4e1, 0x003f, 0xd1a3, 0xe1d6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9f8, 0x003f, 0xdbca, - 0xcbf9, 0xd4d4, 0x003f, 0xd9dc, 0x003f, 0xeebe, 0x003f, 0xf7ed, - 0x003f, 0x003f, 0x003f, 0xd2ee, 0x003f, 0x003f, 0xe1e6, 0xf7f9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdded, - 0x003f, 0xe8db, 0x003f, 0xdbb3, 0x003f, 0x003f, 0x003f, 0xd1f7, - 0xe0b0, 0x003f, 0x003f, 0xd4e2, 0x003f, 0xf6d7, 0x003f, 0xd7f9, - 0x003f, 0x003f, 0xd8dd, 0x003f, 0xcdfd, 0xf2ab, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdbd, - 0xf8c2, 0x003f, 0x003f, 0xf2ac, 0x003f, 0x003f, 0xcaad, 0xcaae, - 0xcfae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3c2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdcb7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbda, - 0xd9bb, 0xcaf3, 0xf6d3, 0xe6f8, 0xeaf5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeaf6, 0x003f, 0x003f, 0xf6f9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcfaf, 0x003f, 0x003f, 0xcad3, 0x003f, 0x003f, 0xcaaf, - 0xd2b0, 0xf1ba, 0x003f, 0xd7b3, 0xe3c3, 0xf3fd, 0xdeda, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdedb, 0x003f, 0x003f, 0xefde, 0x003f, - /* 0x6800 .. 0x68ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe2e3, 0xeefb, 0x003f, 0x003f, 0xdff7, 0xd7ca, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcee8, 0xdbdb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1bb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfab7, 0xd0c6, 0x003f, 0x003f, 0xccab, 0xeea8, 0x003f, 0x003f, - 0xcbfa, 0xf9f9, 0xccfd, 0xd3fe, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2ee, 0x003f, - 0xd4d5, 0xdfcd, 0x003f, 0xfcb8, 0xd1d0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2cd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7d2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad4, - 0x003f, 0xd5d9, 0x003f, 0x003f, 0x003f, 0xd8de, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdd9, - 0x003f, 0x003f, 0x003f, 0xeea9, 0xf6bc, 0x003f, 0x003f, 0xccdb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0c9, 0x003f, 0xfcfc, - 0x003f, 0xe8c9, 0xf4fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7fc, - 0xd7de, 0x003f, 0x003f, 0x003f, 0x003f, 0xdedc, 0x003f, 0xf0ac, - 0xccfe, 0xcde1, 0x003f, 0xe1ba, 0x003f, 0xdbef, 0xdab2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd1a5, 0xdcb8, 0x003f, 0x003f, - 0x003f, 0xd8f6, 0x003f, 0xd1a4, 0x003f, 0xcde2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdcea, 0x003f, 0x003f, 0xf0f7, 0x003f, 0xf0ca, - 0xd0be, 0x003f, 0xdddc, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4d6, - 0xd3d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedd0, - 0xcda1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfb5, 0x003f, - 0x003f, 0x003f, 0xdff8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd4a1, 0xceb2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6900 .. 0x69ff */ - 0xe8ca, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d5, 0xf5d0, 0x003f, - 0x003f, 0x003f, 0xf5a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe5ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6cb, 0x003f, 0xf5f1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9a3, 0xe0db, 0xf6eb, 0x003f, 0xcbf1, - 0x003f, 0xd9ea, 0xf5a2, 0x003f, 0x003f, 0x003f, 0xd7d1, 0x003f, - 0xd1f8, 0xeaf8, 0xeaf9, 0xdab3, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefdf, 0x003f, 0x003f, 0xf1ef, 0x003f, 0xe5f6, 0xeebf, 0xe2e4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0bf, 0x003f, 0xfaac, - 0xf5d1, 0xe7b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9be, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf2ce, 0xdbb4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcce, 0x003f, 0xddee, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd7b4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf7b4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcdbe, 0x003f, 0xdae9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcfb0, 0xf7d9, 0xf3e6, 0x003f, 0x003f, - 0xced9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xceaa, 0x003f, 0xcbc8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd0a7, 0x003f, 0xf0cb, 0x003f, 0xd0c7, - /* 0x6a00 .. 0x6aff */ - 0x003f, 0x003f, 0xe4c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdbe0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd5da, 0x003f, 0xd7a7, 0x003f, 0x003f, 0x003f, 0xeec0, - 0x003f, 0xf8f6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5d2, 0xede9, - 0x003f, 0xd9bc, 0x003f, 0xe5c6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a3, 0x003f, 0x003f, - 0xdad4, 0xe2a7, 0xfbfc, 0x003f, 0x003f, 0xf1dc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcaf4, 0x003f, 0x003f, 0x003f, - 0xe8fa, 0x003f, 0x003f, 0xcee9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9f8, 0xe2e5, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd0b9, 0xd4f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1a6, - 0x003f, 0xdfce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfcf4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd3aa, 0x003f, 0x003f, 0x003f, 0xccac, 0x003f, 0x003f, 0x003f, - 0x003f, 0xefe0, 0x003f, 0x003f, 0x003f, 0xe5e5, 0xd0d5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbfc, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfce6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcbfe, 0xedea, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdeb1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9e3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd4a2, 0xcff6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd6d0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5ea, 0xf1ee, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfacb, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5a1, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6b00 .. 0x6bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcfed, 0x003f, 0xedeb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5b2, 0x003f, 0x003f, 0x003f, 0xd5bc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfde2, 0xf3ad, 0x003f, 0xfddb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd1a7, 0x003f, 0x003f, 0xfde3, 0xceb3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfde4, 0xface, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcab0, 0x003f, 0xf7a7, 0x003f, - 0xcfb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a2, - 0x003f, 0xfcb6, 0xf2ad, 0xefe1, 0xf3ae, 0xdcc6, 0xd9eb, 0x003f, - 0x003f, 0x003f, 0xe8e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1a8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5f6, - 0xcffd, 0x003f, 0x003f, 0xdedd, 0x003f, 0x003f, 0x003f, 0xd9d1, - 0x003f, 0x003f, 0x003f, 0xe4ea, 0xf2cf, 0x003f, 0xf7bf, 0x003f, - 0x003f, 0xe2e6, 0xe2a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d6, 0x003f, - 0xedd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6b1, 0xdeb2, - 0x003f, 0x003f, 0xe0e8, 0x003f, 0x003f, 0xd3ab, 0x003f, 0xebdc, - 0x003f, 0x003f, 0xdfaf, 0x003f, 0xcac3, 0x003f, 0x003f, 0xeefc, - 0x003f, 0xfdc3, 0x003f, 0x003f, 0x003f, 0xebf6, 0xcfb2, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd9ec, 0x003f, 0xd9bd, 0x003f, 0xd8df, - 0x003f, 0x003f, 0xd4b8, 0xebbe, 0xddef, 0x003f, 0xddf0, 0xddf1, - 0xddf2, 0x003f, 0x003f, 0xd9be, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfbc6, 0xcfb3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6c00 .. 0x6cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeefd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ab, - 0x003f, 0xdac5, 0x003f, 0xd8ec, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd1a8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a9, 0x003f, 0x003f, 0xdebc, - 0xe7b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbf0, 0x003f, - 0xefe2, 0xf1f0, 0xcfb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbf1, 0x003f, - 0xe0b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfa5, 0x003f, 0xf9d2, - 0x003f, 0x003f, 0xe7fd, 0x003f, 0x003f, 0xe6a3, 0xfbf1, 0xcbb0, - 0xf2ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcde7, 0x003f, 0xe8dc, 0x003f, 0x003f, 0xe7d7, 0x003f, 0x003f, - 0xf7c0, 0x003f, 0xd0e3, 0x003f, 0x003f, 0x003f, 0xdaa1, 0x003f, - 0x003f, 0x003f, 0xccbd, 0x003f, 0x003f, 0xd1a9, 0xddcc, 0x003f, - 0x003f, 0xe3fe, 0xd1aa, 0xe8aa, 0x003f, 0xeab6, 0xf9fa, 0xe6cc, - 0xf6d8, 0x003f, 0x003f, 0x003f, 0xd4c7, 0x003f, 0x003f, 0x003f, - 0xd9cb, 0x003f, 0xd9d2, 0xd3cb, 0xd8f7, 0xdaa9, 0xf5f8, 0x003f, - 0x003f, 0xdede, 0xf2af, 0xf8a9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd8c8, 0x003f, 0x003f, 0xeec1, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9c1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xddf3, 0xeafa, 0x003f, 0xf6bd, 0xe1bb, 0xcdbf, 0xf4d4, 0xe6cd, - 0x003f, 0xfccf, 0xfba2, 0x003f, 0xe0dc, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf4bb, 0xdad5, 0x003f, 0xf9b2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfbf2, 0x003f, 0xdbf6, 0x003f, 0xdedf, - 0x003f, 0x003f, 0x003f, 0xdbf2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8dc, 0xf7ee, 0xebe8, 0x003f, 0xd2fa, 0x003f, 0x003f, - 0xf1bc, 0x003f, 0x003f, 0xfada, 0x003f, 0x003f, 0xdaea, 0xdac6, - 0xf7c1, 0x003f, 0x003f, 0xe7b6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6d00 .. 0x6dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe5c7, 0xd6ac, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdcc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a9, - 0x003f, 0xe2aa, 0x003f, 0xd5a6, 0x003f, 0x003f, 0xd4d7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2d0, 0x003f, 0xeafb, - 0x003f, 0xe0dd, 0xfbf3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1bd, 0x003f, 0x003f, 0xe2e7, 0xfdd7, 0x003f, - 0xcec8, 0xeab7, 0x003f, 0xfcc0, 0x003f, 0xfde7, 0xf7ef, 0x003f, - 0x003f, 0xd7b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xefba, 0xf1dd, 0x003f, 0xdeb3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8cb, 0x003f, 0x003f, 0xf8dd, 0x003f, - 0x003f, 0xfbc7, 0xd5c8, 0x003f, 0xd7df, 0x003f, 0xdda9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b1, 0x003f, 0x003f, 0xfaad, - 0xf6d9, 0xfaf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8aa, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ee, 0x003f, 0xccdc, - 0xe1bc, 0xe0ef, 0x003f, 0x003f, 0xe9bf, 0xfcfd, 0xe6ce, 0x003f, - 0x003f, 0xe1d7, 0x003f, 0xe6cf, 0x003f, 0xf4f1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f3, - 0x003f, 0x003f, 0xe4fb, 0x003f, 0x003f, 0xf9e4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefe3, 0x003f, 0x003f, 0xcfee, 0xf6be, 0xe0b2, 0xfcfe, 0xd1ab, - 0x003f, 0x003f, 0x003f, 0xd7fa, 0x003f, 0x003f, 0x003f, 0xfbc8, - 0x003f, 0xe2d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4a3, 0xf0f8, 0xd7a8, 0x003f, 0x003f, 0x003f, 0xe1e7, 0x003f, - 0x003f, 0xd3bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefe4, 0x003f, 0xd7c5, 0xebe2, 0x003f, 0x003f, 0xfce7, 0x003f, - 0x003f, 0xe4a2, 0x003f, 0xe2e8, 0x003f, 0xe6d0, 0x003f, 0xfbe8, - 0xf4e8, 0xe5f4, 0xf4bc, 0xf4d5, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6e00 .. 0x6eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfb6, - 0x003f, 0xfcb9, 0xeec2, 0xcaf5, 0x003f, 0x003f, 0x003f, 0xefe5, - 0xcbe2, 0xd4a4, 0x003f, 0xdee0, 0xdafd, 0xe4c6, 0xe8be, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0de, 0xf6b4, 0xead2, 0x003f, 0xf9fb, - 0x003f, 0x003f, 0xe0c2, 0x003f, 0xcae4, 0x003f, 0xe7b7, 0x003f, - 0xeafd, 0x003f, 0xd9dd, 0x003f, 0xdab4, 0xeeaa, 0xfbe9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdbcb, 0xdab5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1be, 0x003f, 0x003f, 0xd3ac, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbc9, 0x003f, - 0xdfcf, 0x003f, 0x003f, 0xd3c0, 0xe3d7, 0x003f, 0xefe6, 0xfcd0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c0, - 0x003f, 0x003f, 0x003f, 0xf5d3, 0x003f, 0x003f, 0xecdc, 0xf7b7, - 0x003f, 0x003f, 0xeab8, 0xd1f9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdcc8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeab9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1de, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd7b6, 0xcfb5, 0x003f, 0xd9a8, - 0x003f, 0x003f, 0xecee, 0x003f, 0x003f, 0xddaa, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcda2, 0xe8ae, 0x003f, 0x003f, 0x003f, 0xe1bd, - 0x003f, 0xf2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c1, 0x003f, - 0x003f, 0x003f, 0xd2fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdbb5, 0x003f, 0xf3e7, 0xd8fe, 0x003f, 0x003f, - 0x003f, 0xfcd1, 0x003f, 0xedb2, 0xf4af, 0x003f, 0xfba3, 0x003f, - 0x003f, 0xfcc1, 0x003f, 0xeeab, 0xd4a5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f2, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeed9, 0x003f, 0x003f, 0x003f, - 0xfbca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde3, 0xd8bb, - /* 0x6f00 .. 0x6fff */ - 0x003f, 0xe5db, 0xf8f7, 0x003f, 0x003f, 0x003f, 0xf6d4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7a9, - 0x003f, 0xcbc9, 0x003f, 0x003f, 0xe6d1, 0xf0cc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd8ae, 0x003f, 0xf9d3, 0xd5fe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd8bc, 0xf2b0, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe2ab, 0xf3e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefc2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedec, - 0x003f, 0xe7b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdafe, 0x003f, 0x003f, 0xccbe, 0x003f, 0x003f, 0xf2fc, - 0xdaeb, 0x003f, 0xe2d8, 0xedd6, 0x003f, 0x003f, 0xd6d1, 0xe0b3, - 0x003f, 0x003f, 0xfcd2, 0x003f, 0xebc8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3c1, 0xf0cd, 0x003f, - 0xcff7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xedd2, 0x003f, 0xd4d8, 0xdcc9, 0xd7f1, 0x003f, - 0x003f, 0xdfbb, 0x003f, 0x003f, 0xf3a5, 0x003f, 0x003f, 0x003f, - 0xf4cd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1bf, 0xf8b1, 0x003f, - 0xe9fa, 0x003f, 0x003f, 0x003f, 0xfbcb, 0x003f, 0x003f, 0xcad5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9d4, 0xf7ca, 0x003f, 0x003f, 0xd6c8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfce8, 0xf3bd, - 0x003f, 0xeefe, 0x003f, 0xe7fe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd3c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b6, 0x003f, - 0xccad, 0xf6fa, 0xd6b2, 0xd2d8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7b9, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0ad, - 0xfbcc, 0xeba1, 0x003f, 0x003f, 0xd4a6, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfbcd, 0x003f, 0xd5bd, 0xf1df, 0x003f, 0x003f, 0xf6fb, - 0x003f, 0xdeb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5eb, 0x003f, - /* 0x7000 .. 0x70ff */ - 0x003f, 0xe5c8, 0x003f, 0x003f, 0x003f, 0xfba4, 0xd4b9, 0x003f, - 0x003f, 0xdee1, 0x003f, 0xe4a3, 0x003f, 0x003f, 0x003f, 0xd7b7, - 0x003f, 0xf8ee, 0x003f, 0x003f, 0x003f, 0xdeb5, 0x003f, 0x003f, - 0xd6d2, 0x003f, 0xf9d5, 0xe7ba, 0xebd5, 0xd5f7, 0xefe7, 0xe1be, - 0x003f, 0x003f, 0x003f, 0xfaae, 0x003f, 0x003f, 0x003f, 0xd6e9, - 0xd6ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7bb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeccb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xceb4, 0x003f, 0x003f, 0x003f, - 0xfba5, 0xe1ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf7a8, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbce, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd8bd, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfbfd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfce9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcfb6, 0x003f, 0x003f, 0x003f, 0xedc7, 0xeeac, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccdd, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf6a7, 0x003f, 0x003f, 0x003f, 0xe6fa, 0x003f, - 0x003f, 0x003f, 0xf5a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfddc, 0xedb3, 0xcec9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xefe8, 0x003f, 0x003f, 0xe1bf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfadb, 0xcbe3, 0xf7a9, 0x003f, 0xfba6, - 0x003f, 0x003f, 0x003f, 0xdcb9, 0x003f, 0x003f, 0x003f, 0xf1c0, - 0xedc8, 0xefc3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd6ad, 0x003f, 0x003f, 0xfdce, 0x003f, 0x003f, 0x003f, 0xe8a1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfbf4, 0xd5a7, 0x003f, 0x003f, 0x003f, 0xf1f6, 0x003f, 0xe6d3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xccde, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8b2, 0x003f, 0x003f, 0x003f, 0xdceb, 0x003f, 0x003f, - /* 0x7100 .. 0x71ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xfdb6, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe5ea, 0x003f, 0x003f, 0xf1e0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdbcc, 0xddcd, 0x003f, 0x003f, 0x003f, 0xd4c8, 0x003f, - 0x003f, 0xd9ed, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdc8, - 0x003f, 0xd6a1, 0xfdbf, 0x003f, 0xfcd3, 0x003f, 0xefa1, 0x003f, - 0xe7bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1ee, 0x003f, - 0x003f, 0xe6d5, 0x003f, 0x003f, 0xe9f2, 0x003f, 0xdfb0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd8e0, 0xfcba, 0xfdaf, 0xf0ce, - 0x003f, 0xdbe1, 0x003f, 0x003f, 0xe5c9, 0x003f, 0xedb4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d8, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9fb, 0xeaa8, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdb7, - 0x003f, 0x003f, 0xfba7, 0x003f, 0xe9c2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfdf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d9, - 0x003f, 0x003f, 0xdcec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfdf8, 0xfdf9, 0x003f, 0x003f, 0x003f, 0xf6bf, 0x003f, - 0x003f, 0xe7a7, 0x003f, 0xe6d7, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4f3, 0xd4c9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6fa, 0x003f, - 0xd7f2, 0x003f, 0xe1c0, 0x003f, 0xdbe2, 0xe6d8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7bd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0cf, 0xf3be, 0xe2ac, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5b7, 0xe0f0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfdb8, 0xe3e8, 0x003f, 0xd4a7, 0xe8fc, - /* 0x7200 .. 0x72ff */ - 0xfad2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8ef, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd6d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd5b4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf0d0, 0x003f, 0xf7f0, 0xeeb3, 0x003f, 0x003f, - 0xeaba, 0x003f, 0xead3, 0x003f, 0x003f, 0xedc9, 0xddab, 0x003f, - 0x003f, 0x003f, 0xe5ac, 0xfda1, 0x003f, 0xdfd0, 0xecb3, 0x003f, - 0xdfd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeded, 0xf8b8, - 0xf7fa, 0x003f, 0x003f, 0x003f, 0xf8ab, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf4e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4ba, 0xe4b3, 0x003f, 0xe9da, 0x003f, 0xdeb6, 0x003f, 0xd9bf, - 0x003f, 0xd9c0, 0xd6ef, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9cc, - 0x003f, 0xdaaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdfe5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf7e5, 0x003f, 0x003f, 0x003f, 0xccb2, 0x003f, 0x003f, - 0xdff9, 0xd7e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd4bb, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdfa, - 0x003f, 0x003f, 0x003f, 0x003f, 0xccb3, 0x003f, 0x003f, 0xdbf3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdfd2, 0x003f, 0xceca, 0x003f, 0xeeda, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4e4, 0x003f, - 0xfbcf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfb7, - 0x003f, 0xeec3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xceea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe2ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd7e1, 0xfaf5, 0x003f, 0x003f, 0xd5c9, 0xf8ac, 0x003f, 0x003f, - /* 0x7300 .. 0x73ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe7d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3e9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd8ed, 0xe3c4, 0xf0f1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8e5, 0x003f, 0x003f, - 0x003f, 0xe0fa, 0xeec4, 0xd9de, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeba2, 0xeba3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcc2, 0xeabb, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ab, 0xdee2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xedef, 0x003f, 0xe8a3, 0x003f, 0x003f, 0x003f, 0x003f, 0xcff1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4bc, 0x003f, 0xfcea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7be, 0x003f, 0xfcf2, 0x003f, 0x003f, 0xd6b4, 0x003f, 0x003f, - 0xe2ae, 0x003f, 0xd3b7, 0xfacc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfadc, 0x003f, 0xedb5, 0xe1e3, - 0x003f, 0xe8ac, 0x003f, 0xe8dd, 0x003f, 0x003f, 0xefe9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf4bd, 0x003f, 0xcfb8, 0xe9db, - 0xd1ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdac7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebc9, - 0x003f, 0xe8cc, 0x003f, 0x003f, 0x003f, 0xdeb7, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd6bc, 0xd3e5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfadd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdad6, 0x003f, 0xcab1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdac8, 0xdfa6, 0x003f, 0xf9b3, 0xf2d2, 0x003f, 0xcac4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcecb, 0x003f, - 0x003f, 0xcdf5, 0x003f, 0x003f, 0x003f, 0xfdb0, 0xd5a8, 0x003f, - 0xf1c1, 0x003f, 0x003f, 0xe2e9, 0xdcca, 0xecb4, 0xfac0, 0x003f, - 0x003f, 0xfba8, 0xd0a8, 0x003f, 0x003f, 0xdaec, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ee, - 0x003f, 0xe0fb, 0x003f, 0x003f, 0x003f, 0xefea, 0xfade, 0x003f, - /* 0x7400 .. 0x74ff */ - 0x003f, 0xe0c4, 0x003f, 0xcfb9, 0x003f, 0xd5ca, 0xd7e2, 0xe2af, - 0x003f, 0xd7b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe8cd, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf6da, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefa2, 0xe2da, 0xf6fc, 0x003f, 0x003f, 0xfbd0, 0xd1ad, 0x003f, - 0xcde4, 0x003f, 0xd1ae, 0xdced, 0xe8ce, 0x003f, 0xf0f9, 0xceb5, - 0xe6fc, 0x003f, 0x003f, 0xd7fb, 0xd0d6, 0xddf5, 0xf7f1, 0x003f, - 0xf6fd, 0x003f, 0xdbf7, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbea, - 0xe9dc, 0xd9c1, 0x003f, 0xf5f2, 0xe0c5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xead4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9c2, 0x003f, 0xeabc, - 0x003f, 0xd2c5, 0xfbd1, 0xe7c0, 0xeba5, 0x003f, 0xdffa, 0xe3a2, - 0xd7b9, 0x003f, 0xe9c3, 0x003f, 0xe8fd, 0xe8af, 0x003f, 0x003f, - 0xf2d3, 0xfba9, 0xd8a5, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5cb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0c8, 0x003f, - 0x003f, 0x003f, 0xd1af, 0xd7e3, 0x003f, 0x003f, 0x003f, 0xe0c6, - 0x003f, 0xd6a2, 0x003f, 0xedf0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd7f3, 0x003f, 0x003f, 0x003f, 0xfcd4, 0x003f, 0xdad7, 0xccdf, - 0x003f, 0xf2d4, 0x003f, 0xd1b0, 0x003f, 0xcce0, 0x003f, 0xdbfd, - 0xf3bf, 0x003f, 0xf0d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfcbb, 0x003f, 0xe2b0, 0x003f, 0x003f, 0xe6a5, 0x003f, 0x003f, - 0x003f, 0xe2db, 0x003f, 0x003f, 0x003f, 0xdfde, 0x003f, 0xe0c7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2ef, 0x003f, - 0x003f, 0x003f, 0xcce1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6ea, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe7c2, 0x003f, 0x003f, 0x003f, - 0xceb6, 0x003f, 0xf3c0, 0x003f, 0xcdfe, 0x003f, 0x003f, 0x003f, - 0xfbd2, 0x003f, 0xf8f8, 0xf7fb, 0x003f, 0x003f, 0xe8bf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8b7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedb6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7500 .. 0x75ff */ - 0x003f, 0xdcba, 0x003f, 0x003f, 0xccb4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf1f7, 0x003f, 0x003f, 0x003f, 0xe8b8, 0x003f, 0x003f, - 0xcaf6, 0x003f, 0xe4a4, 0xf4d6, 0x003f, 0x003f, 0x003f, 0xdfe6, - 0x003f, 0x003f, 0x003f, 0xdfa7, 0x003f, 0xdfe7, 0xe1c1, 0x003f, - 0xe9c4, 0x003f, 0x003f, 0xdccb, 0xe9c5, 0x003f, 0x003f, 0x003f, - 0xefa3, 0xeba6, 0xcba3, 0xe3e9, 0x003f, 0x003f, 0x003f, 0xd1fb, - 0xefa4, 0x003f, 0xefeb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b4, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcda3, 0x003f, 0x003f, 0xe8e6, - 0x003f, 0xefa5, 0x003f, 0xd3cc, 0xdaed, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd7ba, 0x003f, 0xf2d5, 0xf5e5, 0xd9ef, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf9b4, 0x003f, 0x003f, 0xd5d4, 0xfdcf, 0x003f, - 0x003f, 0x003f, 0xdbe3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e1, - 0xecb6, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbfe, 0xd3d7, 0x003f, - 0xd1b1, 0x003f, 0xcbb1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1b2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbb2, 0xf1c2, - 0x003f, 0x003f, 0xf4e1, 0xf9b5, 0x003f, 0x003f, 0xe1c3, 0xe1c2, - 0x003f, 0xebf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfa8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbca, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe6b9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8de, 0xf9aa, 0xcaf7, 0x003f, 0xedb7, 0x003f, 0x003f, - 0xd3b8, 0xf2d6, 0x003f, 0x003f, 0xd4d9, 0xeec5, 0xf2f0, 0x003f, - 0x003f, 0x003f, 0xcab2, 0x003f, 0x003f, 0xdcbb, 0x003f, 0xf1f8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecb7, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5ca, 0x003f, 0xf6c0, 0xfddd, 0x003f, 0x003f, - 0xd4e3, 0xcce2, 0x003f, 0xf7d4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd7e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd3c3, 0x003f, 0xd8a6, 0x003f, 0xf6c1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xddf6, 0x003f, 0xcdc0, 0x003f, 0x003f, 0x003f, - /* 0x7600 .. 0x76ff */ - 0xe5dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5cb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe1c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8b0, - 0xf4b0, 0xf3ea, 0xdaee, 0x003f, 0xd7bb, 0x003f, 0xe2b1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd7aa, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd6fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe4df, 0x003f, 0xcad6, 0x003f, - 0x003f, 0x003f, 0xeba8, 0x003f, 0x003f, 0x003f, 0xdbfe, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf6c2, 0x003f, 0x003f, 0xefbb, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd4fd, 0x003f, 0x003f, 0xe0c8, 0x003f, 0x003f, 0x003f, - 0xe8b9, 0x003f, 0xefa6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcda4, 0x003f, 0x003f, 0xd4f4, 0xdba1, 0xdbdc, 0xdbdd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeedc, 0x003f, 0xcbcb, 0xfcd5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceeb, 0x003f, - 0xcdc1, 0x003f, 0x003f, 0xfbd3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9ab, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf5d4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a9, - 0x003f, 0x003f, 0xe9dd, 0xdbcd, 0x003f, 0x003f, 0xddce, 0x003f, - 0xe7c3, 0x003f, 0xeccc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf9ec, 0x003f, 0x003f, 0x003f, 0xcbcc, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0fc, 0xd4a8, 0x003f, 0xedd3, 0xd8ef, - 0x003f, 0xf2d7, 0x003f, 0xcaf8, 0xdaef, 0x003f, 0x003f, 0xd6d4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9cd, 0x003f, - 0x003f, 0x003f, 0xd8ee, 0x003f, 0xf2c1, 0x003f, 0x003f, 0x003f, - 0xdfd3, 0x003f, 0x003f, 0x003f, 0xdaf0, 0x003f, 0xe2ea, 0x003f, - /* 0x7700 .. 0x77ff */ - 0x003f, 0xe0fd, 0x003f, 0x003f, 0xd8f8, 0x003f, 0x003f, 0x003f, - 0xf7af, 0xdab6, 0x003f, 0xcad7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2d8, 0x003f, - 0xd8f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfadf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfef, - 0xd9c2, 0x003f, 0xf0d2, 0x003f, 0xe4d1, 0x003f, 0x003f, 0x003f, - 0xf3b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfae0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xefec, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe2b2, 0x003f, 0xd4bd, 0x003f, 0x003f, 0xd9ce, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf4e2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd4a9, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdc2, 0xe7da, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf2d9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd9aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8be, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcad, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2eb, 0xd6fc, 0x003f, 0x003f, - 0xcaf9, 0x003f, 0x003f, 0xd4da, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf4d7, 0xcca1, 0x003f, 0x003f, 0xcfba, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5b8, - 0x003f, 0x003f, 0x003f, 0xd9c3, 0xd0e8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3c5, 0xebf8, 0x003f, 0xf2b1, 0x003f, 0x003f, - 0x003f, 0xcfbb, 0x003f, 0x003f, 0x003f, 0xd3ad, 0xe8e1, 0xceec, - 0x003f, 0x003f, 0x003f, 0xe0b4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7800 .. 0x78ff */ - 0x003f, 0x003f, 0xdee3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xddf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2b2, 0xf3f6, 0xf6db, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd7fe, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8df, 0x003f, 0xf7f2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0a9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6da, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd7bc, 0xcce3, 0x003f, 0x003f, 0xe6db, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdddd, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd1b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefed, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6de, 0xe4f4, 0xe1ef, 0x003f, - 0x003f, 0xddf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8cf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcae5, 0x003f, 0x003f, 0x003f, 0xdca1, - 0x003f, 0xe0b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfcac, 0xfcad, 0xd8a7, 0x003f, 0x003f, 0x003f, - 0x003f, 0xedb8, 0x003f, 0x003f, 0x003f, 0xdbb6, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd6f0, 0xf3af, 0x003f, 0x003f, 0xcda5, 0x003f, - 0xdaf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd8a8, 0x003f, 0x003f, 0x003f, 0xcce4, 0x003f, 0x003f, 0xd1b4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdaf2, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7900 .. 0x79ff */ - 0x003f, 0xf5a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5ec, 0xd5f8, 0xdaf3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3c6, 0x003f, 0x003f, 0x003f, 0xdee4, 0x003f, - 0xdee5, 0xd1b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1b6, - 0xd1b7, 0xf2b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0d3, 0xf2b4, - 0x003f, 0x003f, 0xf0d4, 0xcbe4, 0xfbd4, 0xf5e6, 0xe3ea, 0x003f, - 0xdee6, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd4, 0x003f, 0x003f, - 0xf8f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0ae, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd1b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6df, - 0x003f, 0xd0d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfca1, 0xefee, 0xdcd8, - 0x003f, 0xe9df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5dd, 0xfdfb, - 0x003f, 0x003f, 0xe0c9, 0x003f, 0x003f, 0x003f, 0xd6c9, 0x003f, - 0x003f, 0xd4aa, 0x003f, 0xe5cc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9e0, 0x003f, 0x003f, 0x003f, 0xd0d8, 0xfca2, 0xd4be, - 0xe2b3, 0xdee7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdcbc, 0xd2b6, 0xf5d5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcea1, 0xf5a9, 0x003f, 0x003f, 0xddf9, 0x003f, 0x003f, - 0xddfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0d5, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf6df, 0x003f, 0xf2da, 0xe4eb, - 0x003f, 0xf2f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xecb9, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7a00 .. 0x7aff */ - 0xfdfc, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1aa, 0x003f, 0x003f, - 0xcad9, 0x003f, 0x003f, 0xefef, 0x003f, 0xf5aa, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xecf9, 0x003f, 0x003f, 0xf8ad, - 0x003f, 0xf2c2, 0xf6c3, 0x003f, 0xd7d2, 0x003f, 0x003f, 0xf9a2, - 0xf0d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0fa, 0x003f, - 0x003f, 0xf6e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f3, 0xf2c3, - 0x003f, 0x003f, 0x003f, 0xd4ab, 0xcab3, 0xcda6, 0x003f, 0xcdc3, - 0xcdda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9cf, 0x003f, - 0x003f, 0xf6c4, 0x003f, 0x003f, 0x003f, 0xeedd, 0xe7c4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2b4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfe2, 0xe7db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe8b1, 0x003f, 0xfcae, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe5cd, 0x003f, 0x003f, 0x003f, 0xfaeb, 0x003f, 0xcfbc, 0x003f, - 0x003f, 0xcfe2, 0xcdf6, 0x003f, 0x003f, 0xeff0, 0x003f, 0xf4be, - 0x003f, 0xd4cd, 0x003f, 0x003f, 0xf3b8, 0x003f, 0x003f, 0x003f, - 0xe9a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf2f2, 0xf3eb, 0x003f, 0xf0d7, 0x003f, 0x003f, - 0xcfd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfdf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe8c0, 0xe8c1, 0x003f, 0x003f, 0x003f, 0xcfe3, 0xe9a2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd0aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf3c1, 0xd0ab, 0x003f, 0xd4e4, - 0x003f, 0x003f, 0xefbc, 0xd8a1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9df, - 0x003f, 0xf3d7, 0x003f, 0x003f, 0x003f, 0xdcbd, 0x003f, 0xcce5, - 0xedf1, 0x003f, 0x003f, 0xf1e2, 0x003f, 0xd4db, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe2b5, 0x003f, 0x003f, 0xcae6, 0x003f, 0xd3ae, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcce6, 0x003f, - 0x003f, 0xf1d3, 0xf5e7, 0x003f, 0x003f, 0x003f, 0x003f, 0xcada, - /* 0x7b00 .. 0x7bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbee, - 0x003f, 0xe1c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfe9, 0x003f, 0xeede, 0x003f, 0x003f, 0xf7c2, 0x003f, - 0xd8a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddac, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf0af, 0xd6bd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe1ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9b6, 0x003f, - 0x003f, 0xd4f5, 0x003f, 0xd0c9, 0xefa7, 0xe2ec, 0x003f, 0xdbea, - 0xcecc, 0xf5e8, 0xf7d5, 0x003f, 0xd3cd, 0x003f, 0xf3fe, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd0b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fe, 0x003f, 0xdffb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6dd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbcd, - 0x003f, 0x003f, 0x003f, 0xefa8, 0x003f, 0x003f, 0x003f, 0xeeb4, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdad8, 0xd1b9, 0x003f, 0xdfa9, - 0x003f, 0x003f, 0xf3b0, 0x003f, 0x003f, 0xccc4, 0x003f, 0x003f, - 0x003f, 0xceb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefa9, 0x003f, 0x003f, - 0x003f, 0xdfd5, 0x003f, 0x003f, 0xedd7, 0x003f, 0x003f, 0x003f, - 0xeec6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefbd, 0xfcd6, 0x003f, 0x003f, 0xdbf4, 0x003f, 0xefaa, 0xf8b9, - 0x003f, 0xf5e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1c6, 0x003f, 0x003f, 0x003f, 0xd4bf, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdee8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7c00 .. 0x7cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0ea, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3af, 0x003f, - 0x003f, 0xcadb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcd7, - 0x003f, 0x003f, 0xedd8, 0xe1c7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4d8, 0xd6b3, 0xddad, - 0x003f, 0x003f, 0x003f, 0xd5be, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf1c3, 0xeedf, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd6eb, 0x003f, 0x003f, 0x003f, 0xf4d9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd7e6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdab7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xddfb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xddcf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd8a3, 0x003f, 0x003f, 0xdad9, 0x003f, 0xf0d8, - 0xefc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1d4, 0x003f, 0xedf2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5db, 0x003f, - 0x003f, 0xd5dc, 0xf3c4, 0xcbd7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe2b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfbd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddd0, 0xf0d9, - 0xcbb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5dd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcda7, 0x003f, 0x003f, 0xd0ac, 0x003f, - /* 0x7d00 .. 0x7dff */ - 0xd1ba, 0x003f, 0xf1c4, 0x003f, 0xe5b3, 0xfbf5, 0xe9e1, 0xfde0, - 0xfcbc, 0x003f, 0xdaa2, 0xdaa3, 0x003f, 0xd2a1, 0x003f, 0x003f, - 0xd2ef, 0x003f, 0x003f, 0x003f, 0xe2ed, 0x003f, 0x003f, 0xdee9, - 0xcedc, 0xf2b5, 0xd0e4, 0xddd1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1c8, 0xdbb7, 0xdfe3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xedb9, 0xf1c5, 0x003f, 0xf3cf, 0xd7ab, - 0xe1ac, 0x003f, 0x003f, 0xe3eb, 0x003f, 0xeec7, 0x003f, 0x003f, - 0x003f, 0xe1c9, 0xcafa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf0fb, 0xfae1, 0xf0da, 0xcce7, 0xdaf4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xccbf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceed, 0x003f, - 0x003f, 0xd5a9, 0xfae2, 0x003f, 0x003f, 0x003f, 0xd0e5, 0x003f, - 0xebd6, 0x003f, 0xecdf, 0x003f, 0x003f, 0x003f, 0xdffc, 0x003f, - 0x003f, 0xf7d6, 0xdeea, 0xcbb4, 0x003f, 0x003f, 0xefbe, 0x003f, - 0x003f, 0xccb5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfbd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff2, 0xe2b7, - 0x003f, 0x003f, 0x003f, 0xcce8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf0fc, 0x003f, 0x003f, 0x003f, - 0xd6e0, 0x003f, 0xf1c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2b8, 0xebab, 0x003f, 0x003f, - 0x003f, 0xcbb5, 0xd8d1, 0x003f, 0xf4ce, 0xf3f7, 0x003f, 0x003f, - 0xd7c6, 0x003f, 0xd1bb, 0xf7aa, 0x003f, 0xedca, 0xd7d3, 0xd8fa, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6c5, - 0x003f, 0x003f, 0xd1cc, 0xddfc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdffd, 0x003f, - 0xf9e5, 0x003f, 0xe0ca, 0x003f, 0x003f, 0xf2fd, 0xd3b0, 0x003f, - 0xf4f3, 0xdac9, 0x003f, 0xe6de, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf8ba, 0xe8d0, 0x003f, 0x003f, 0xd8fb, 0x003f, 0x003f, 0xead5, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf6c6, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7e00 .. 0x7eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2db, 0xe4fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8b2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdada, 0x003f, 0xf2dc, 0xfbd6, 0xe9b2, - 0x003f, 0xeead, 0x003f, 0xfae3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdcee, 0x003f, 0x003f, 0xf5ea, 0xe6e0, - 0x003f, 0xf0fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ac, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5c5, 0xeee0, 0x003f, - 0x003f, 0xdbe5, 0x003f, 0xddde, 0x003f, 0x003f, 0xd9f0, 0xe9a3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1f9, 0x003f, 0xf2c4, 0xe0cb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a4, 0x003f, - 0x003f, 0xe2b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3b1, 0xfceb, 0xcda8, 0x003f, 0xccb6, 0x003f, 0x003f, - 0xf0db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6ba, 0x003f, 0x003f, 0xcda9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d9, 0x003f, 0x003f, 0xefab, - 0x003f, 0x003f, 0x003f, 0xe7c5, 0x003f, 0x003f, 0xe0e9, 0x003f, - 0xf3c5, 0x003f, 0x003f, 0xd4c0, 0xd5bf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7f00 .. 0x7fff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddae, 0x003f, - 0xf9fc, 0x003f, 0xccc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a2, 0x003f, 0x003f, 0x003f, - 0xceb8, 0x003f, 0x003f, 0x003f, 0xd8d2, 0xf9d6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1aa, 0xced1, 0x003f, 0x003f, 0xf6c7, 0x003f, - 0xdbeb, 0x003f, 0xdffe, 0x003f, 0x003f, 0xd8e1, 0x003f, 0xf7f3, - 0x003f, 0xd7e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4fe, 0x003f, 0x003f, - 0xd1bc, 0x003f, 0xe5cf, 0x003f, 0xcbb6, 0x003f, 0xdab8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcdc4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd6be, 0x003f, 0x003f, 0x003f, 0xe2ba, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcfd8, 0x003f, 0x003f, 0x003f, - 0xe0cc, 0xebf9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfdfd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd7e8, 0xcbd8, 0x003f, 0x003f, 0x003f, 0xe9e2, 0x003f, 0x003f, - 0x003f, 0xe8ba, 0x003f, 0x003f, 0x003f, 0xe3c7, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeccd, 0x003f, 0xecce, 0x003f, 0xd6bf, 0x003f, - 0x003f, 0x003f, 0xe3a7, 0x003f, 0xdfd6, 0xfde8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee1, - 0xf6a8, 0xddfd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8bb, 0x003f, 0xe8d1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf9d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xceee, 0x003f, 0x003f, 0xeccf, 0x003f, 0x003f, 0x003f, - /* 0x8000 .. 0x80ff */ - 0xe9a5, 0xd6d5, 0x003f, 0xcdc5, 0x003f, 0xedba, 0xd1bd, 0x003f, - 0x003f, 0xcfbe, 0x003f, 0x003f, 0xecbb, 0x003f, 0x003f, 0x003f, - 0xd2b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xcce9, 0x003f, 0xd9c4, - 0xe9fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1be, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xecbc, 0x003f, 0x003f, 0xe5ad, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7b0, 0x003f, 0xccea, - 0x003f, 0x003f, 0x003f, 0xd3c4, 0x003f, 0x003f, 0xd6c0, 0x003f, - 0x003f, 0x003f, 0xd6fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a1, 0x003f, - 0xdebd, 0x003f, 0xf6a9, 0x003f, 0x003f, 0x003f, 0xdaa4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a4, - 0xf5c6, 0x003f, 0xe1a2, 0xe9c6, 0x003f, 0x003f, 0x003f, 0xf2c5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4e9, 0xd6ec, 0xebd3, - 0x003f, 0x003f, 0x003f, 0x003f, 0xecbd, 0xe2dc, 0xdeeb, 0xf0dc, - 0x003f, 0xebbf, 0x003f, 0xd7ce, 0xd1bf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5ab, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9fd, 0x003f, 0xcadc, 0x003f, 0x003f, - 0x003f, 0xcdc6, 0xf2b6, 0x003f, 0x003f, 0xddfe, 0x003f, 0x003f, - 0x003f, 0xccb7, 0xdbb8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0e9, - 0x003f, 0xcedd, 0xebc0, 0x003f, 0xfda2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xead6, 0xf1b0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdbce, 0x003f, 0xf7c3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdbcf, 0xcba4, 0x003f, 0x003f, 0xf8e0, 0x003f, - 0x003f, 0xfbd7, 0x003f, 0x003f, 0xebca, 0xe0a1, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcecd, 0x003f, 0x003f, 0xd4dc, 0x003f, 0x003f, 0x003f, - 0xfdd8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2f6, 0x003f, 0x003f, - /* 0x8100 .. 0x81ff */ - 0x003f, 0x003f, 0xf2b7, 0x003f, 0x003f, 0xfaf6, 0xf6aa, 0xfaf7, - 0xd8e6, 0x003f, 0xf4b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe8d2, 0x003f, 0xcac5, 0xcceb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2ee, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe2bb, 0x003f, 0xf7ad, 0x003f, 0x003f, 0x003f, 0xf8e1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3ec, 0x003f, 0x003f, 0x003f, 0x003f, 0xdea1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe4fd, 0x003f, 0x003f, 0xe3ec, 0x003f, - 0xddaf, 0xddb0, 0x003f, 0x003f, 0xcbb7, 0xe8d3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a3, 0xd2e0, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf0fe, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9a6, 0xcbf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xedf3, 0xdcd9, 0xe0cd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7da, - 0xdbb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xccae, 0x003f, 0xdadb, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdc7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xddb1, 0x003f, 0xd8af, 0xe3a3, 0x003f, 0x003f, - 0xceef, 0x003f, 0x003f, 0xf2f3, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf8b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0ce, 0x003f, 0xf5fd, 0x003f, 0x003f, - 0x003f, 0x003f, 0xebec, 0x003f, 0x003f, 0xd3c5, 0xfcec, 0xd2db, - 0xd4eb, 0x003f, 0xdea2, 0x003f, 0x003f, 0x003f, 0xe5e6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0b0, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd5c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedf4, - 0x003f, 0x003f, 0x003f, 0xe3ed, 0x003f, 0xe8c2, 0x003f, 0xedf5, - 0xd7fc, 0x003f, 0xedbb, 0x003f, 0x003f, 0xf6ab, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf2b8, 0xf6c8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd3e6, 0xf2dd, 0xcfbf, 0x003f, 0xebac, 0x003f, - /* 0x8200 .. 0x82ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfc0, 0x003f, 0xe6a8, - 0xfde9, 0x003f, 0xcfc1, 0x003f, 0xe0df, 0xdeec, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe0a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf4bf, 0xe2ef, 0x003f, 0xd9f1, 0xf1c7, - 0x003f, 0xcbb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf9fe, 0xdbba, 0xdaf5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6ec, 0xdadc, 0xfae4, - 0x003f, 0xe0cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xddb2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a9, 0x003f, 0xeff3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xebfa, 0x003f, 0xf9e6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcadd, 0xd5de, - 0x003f, 0xcade, 0xdfe4, 0x003f, 0x003f, 0x003f, 0xe6fd, 0x003f, - 0xf5ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe9e3, 0x003f, 0xedcb, 0xcfe4, 0x003f, - 0x003f, 0x003f, 0xd8d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xddb3, 0xd4ec, 0x003f, 0x003f, 0xf2b9, 0x003f, 0xdfb7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbce, 0xfbd8, 0x003f, - 0x003f, 0xd0d9, 0x003f, 0x003f, 0xddd2, 0xf7f4, 0xe7dc, 0xe4a5, - 0x003f, 0xfca3, 0x003f, 0xdbbb, 0x003f, 0x003f, 0x003f, 0xf2ba, - 0xe9fd, 0xd0ca, 0x003f, 0xf5d6, 0xd9c5, 0xe4b4, 0x003f, 0xeda7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeabd, 0xe6fe, 0x003f, 0xf7c4, 0xf5ad, 0x003f, 0xd9e0, - 0x003f, 0x003f, 0x003f, 0xcab4, 0x003f, 0x003f, 0xf8e2, 0xcfc2, - 0x003f, 0xecbe, 0x003f, 0x003f, 0x003f, 0xe5b4, 0xcdc8, 0xeec8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe7c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdc9, 0xf9b7, 0x003f, - /* 0x8300 .. 0x83ff */ - 0x003f, 0xf1e8, 0xd9f2, 0xdbf5, 0xcab5, 0xd9c6, 0x003f, 0x003f, - 0x003f, 0xd8c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ab, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xedbc, 0x003f, 0x003f, 0xd8d4, 0x003f, 0x003f, 0x003f, 0xdcda, - 0x003f, 0xe2bc, 0x003f, 0x003f, 0xfced, 0xece0, 0xd2fe, 0x003f, - 0xe9c7, 0xe6aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfabb, - 0x003f, 0xf5ae, 0xfbaa, 0x003f, 0x003f, 0x003f, 0x003f, 0xecfb, - 0x003f, 0xecbf, 0xfcd8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd4e5, 0x003f, 0x003f, 0x003f, 0xf9c3, - 0x003f, 0x003f, 0x003f, 0xeee2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd7e9, 0xedf6, 0x003f, 0x003f, 0x003f, 0xdeed, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccec, 0x003f, - 0xe3ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8d4, 0x003f, - 0x003f, 0x003f, 0xfaf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xddb4, 0xe4b5, 0xd8b0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8d5, 0x003f, 0x003f, - 0x003f, 0xf4ea, 0x003f, 0x003f, 0x003f, 0xceb9, 0x003f, 0x003f, - 0x003f, 0xd6e1, 0xcfd2, 0x003f, 0xd0b6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcea2, 0x003f, 0x003f, 0xf3ee, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf3f8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdccc, 0x003f, 0xd0cb, 0x003f, 0x003f, 0x003f, 0xfca4, - 0xcdca, 0xd7d4, 0xdea3, 0x003f, 0xe4e0, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeec9, 0x003f, 0x003f, 0x003f, 0xe2dd, 0x003f, 0x003f, - /* 0x8400 .. 0x84ff */ - 0x003f, 0x003f, 0x003f, 0xf5fe, 0xd4ac, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5d1, 0x003f, 0xd8f0, 0xf8c3, 0xead7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf5d7, 0x003f, 0x003f, 0xd8bf, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfdc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xebad, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5aa, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe7a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeca, - 0x003f, 0x003f, 0x003f, 0xcae7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8e3, 0x003f, 0xd4dd, 0x003f, 0x003f, 0xead8, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfbd9, 0xedf7, 0x003f, 0x003f, 0xe5b5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0ad, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2bd, 0x003f, 0x003f, 0x003f, 0xe3c8, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd9d5, 0x003f, 0x003f, 0xdfaa, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdbbc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1fa, 0x003f, 0x003f, 0xe5b6, 0xf3ef, 0x003f, 0x003f, 0xfbda, - 0xe1e0, 0x003f, 0xd9ac, 0x003f, 0xf5eb, 0x003f, 0xe0b6, 0x003f, - 0x003f, 0xe9c8, 0x003f, 0xcbcf, 0x003f, 0xe3c9, 0x003f, 0x003f, - 0x003f, 0xdeee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe2be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdcef, 0x003f, 0xd6a5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6fe, 0x003f, 0x003f, 0x003f, - /* 0x8500 .. 0x85ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd9a1, 0x003f, 0xd8c0, 0xdcdb, 0x003f, 0x003f, 0xedbd, - 0xdfb8, 0x003f, 0xeaa5, 0x003f, 0x003f, 0x003f, 0xd7ad, 0x003f, - 0x003f, 0xf3f9, 0x003f, 0xedf8, 0x003f, 0xf5c7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ca, 0xebe3, 0x003f, 0xf2de, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8cc, 0x003f, 0xead9, - 0x003f, 0xd3c6, 0x003f, 0xdbe6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf5af, 0x003f, 0x003f, 0x003f, 0x003f, 0xcef0, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe9fe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfbb6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2f2, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcff2, 0xf7b9, 0xd9f3, 0x003f, 0x003f, 0xe1cb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdadd, 0x003f, 0x003f, 0xdab9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebfb, - 0x003f, 0xcbb9, 0x003f, 0x003f, 0xedf9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0e0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4c0, 0x003f, - 0xfdbc, 0xdfb1, 0xe3ef, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a3, - 0xfdb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf0b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcdcb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xedbe, 0x003f, 0x003f, 0x003f, 0xd5c0, 0xe3f0, 0xedfa, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ed, 0xe7dd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f6, 0xe5b7, 0x003f, 0x003f, - 0x003f, 0xdbe7, 0xe2bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeecb, - 0x003f, 0x003f, 0xd7f4, 0xf0dd, 0x003f, 0x003f, 0x003f, 0xceab, - /* 0x8600 .. 0x86ff */ - 0x003f, 0x003f, 0xe7de, 0x003f, 0x003f, 0x003f, 0xd6d6, 0xe1cc, - 0x003f, 0x003f, 0xe8b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ee, 0xdca2, - 0x003f, 0x003f, 0xe0d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5a1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbdb, 0x003f, - 0xf9cb, 0x003f, 0x003f, 0x003f, 0xcbf3, 0xf4a5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfac8, 0xd6d7, 0x003f, 0xe9e5, 0xfbdc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdd0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfbf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdaa5, 0x003f, 0xdbbd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xece2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcdf7, 0xf0de, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf6c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeef, - 0x003f, 0x003f, 0x003f, 0xd3b1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfcee, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe8c3, 0x003f, 0xf1c8, 0x003f, 0x003f, 0x003f, 0xcef1, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf9ed, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2f4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4b6, 0x003f, - /* 0x8700 .. 0x87ff */ - 0xf5b9, 0x003f, 0xdcf0, 0xe3f1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe8a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2bb, 0x003f, 0xdea4, 0x003f, 0xdacc, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcae9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3da, 0x003f, 0xfcd9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeada, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9c4, 0x003f, - 0xe3a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfbdd, 0x003f, 0xefca, 0x003f, - 0xe8c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebd7, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ad, - 0x003f, 0x003f, 0xfbab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd3d9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf6de, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdaf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d1, 0x003f, 0x003f, 0xe9a8, - 0x003f, 0x003f, 0xf5f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfaaf, 0x003f, 0xebfc, 0x003f, 0x003f, 0xe0ea, 0x003f, - /* 0x8800 .. 0x88ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5c5, - 0x003f, 0x003f, 0xf1e3, 0xd5ee, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcdcc, 0x003f, 0x003f, 0x003f, 0x003f, 0xedd9, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd8c1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfaec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1eb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfabc, 0xe6e2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfae5, 0xe2fa, 0x003f, 0x003f, 0x003f, 0xcab6, - 0x003f, 0xe4b7, 0x003f, 0xeadb, 0x003f, 0xf5fa, 0x003f, 0x003f, - 0x003f, 0xfbac, 0xcfc3, 0xebfd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf8fa, 0x003f, 0x003f, 0xdfb9, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1f1, 0x003f, 0xd2a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5fb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0da, 0xd0db, - 0x003f, 0xeabe, 0xd9b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcab7, 0x003f, 0x003f, 0xd3e7, 0x003f, 0xf8e5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd3b2, 0x003f, 0x003f, 0x003f, 0xe2c0, 0xf2df, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9ac, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcdcd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeeae, 0xd6ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ea, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e0, 0xebae, 0x003f, 0x003f, - 0x003f, 0xcfd9, 0x003f, 0x003f, 0xdccd, 0xedfb, 0x003f, 0xdef0, - 0x003f, 0xd7eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdea5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdfd7, 0xdbd0, 0xdbd1, 0x003f, 0x003f, - 0xd5a3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0b2, 0x003f, 0x003f, - /* 0x8900 .. 0x89ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcdc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcae8, 0x003f, 0xf8e6, 0xdcce, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeadc, 0xdbd2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf7db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a8, 0x003f, - 0xd7ae, 0x003f, 0x003f, 0xe0e1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcbba, 0x003f, 0x003f, 0xe5d1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0dc, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd5c1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd8ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe3a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a4, - 0x003f, 0xe9a9, 0x003f, 0xd3c7, 0x003f, 0x003f, 0xdcdd, 0xf8ae, - 0x003f, 0x003f, 0x003f, 0xccb8, 0x003f, 0x003f, 0x003f, 0xd0ae, - 0x003f, 0x003f, 0x003f, 0xd8f2, 0x003f, 0x003f, 0xe3ca, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xccaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd4ad, 0xf6d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd0cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcac6, 0x003f, 0x003f, 0xd5c2, 0x003f, 0x003f, - 0xceba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcac7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfab0, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd8, 0x003f, 0x003f, 0x003f, - 0xf5ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8a00 .. 0x8aff */ - 0xe5eb, 0x003f, 0xeff4, 0xddb5, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcdaa, 0x003f, 0xe3f2, 0x003f, 0xfbf7, 0x003f, 0xf7d0, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfdba, 0x003f, 0x003f, 0xfde1, 0xf6fe, - 0xd1c0, 0x003f, 0x003f, 0xe8c5, 0x003f, 0xe4b8, 0x003f, 0xe1e8, - 0x003f, 0x003f, 0x003f, 0xccc1, 0x003f, 0xd2ed, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdbbe, 0x003f, 0x003f, 0xe0e2, 0x003f, 0x003f, - 0x003f, 0xfac9, 0x003f, 0x003f, 0xe1cd, 0x003f, 0xcab8, 0x003f, - 0x003f, 0x003f, 0xf2e0, 0xf1c9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdef1, 0x003f, 0x003f, 0x003f, 0xf0df, 0xf8c4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeecc, 0x003f, 0x003f, 0xdef2, 0x003f, - 0xe7c9, 0x003f, 0xe2f3, 0xe7e1, 0x003f, 0x003f, 0xe3cb, 0x003f, - 0x003f, 0xe3cc, 0x003f, 0x003f, 0x003f, 0xcff8, 0xefac, 0x003f, - 0xfdfe, 0xfca5, 0xfab1, 0xdfd9, 0x003f, 0xe0d2, 0x003f, 0x003f, - 0x003f, 0xf4da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ca, 0x003f, 0xcea3, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf2bc, 0xece3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe0a5, 0x003f, 0xf7ab, 0x003f, 0x003f, - 0xebaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5de, 0x003f, - 0xe1a4, 0xcdab, 0x003f, 0xd9f4, 0xe8a6, 0xcdce, 0xe1e9, 0x003f, - 0xfcef, 0x003f, 0xe0e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2c1, 0x003f, 0xcea4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdea6, 0x003f, 0x003f, 0xebfe, 0x003f, 0xebdd, 0xf0e0, - 0x003f, 0x003f, 0xf4db, 0x003f, 0xe2f4, 0x003f, 0x003f, 0xd3c8, - 0x003f, 0x003f, 0x003f, 0xf4eb, 0x003f, 0xeeb5, 0x003f, 0xf5d8, - 0x003f, 0x003f, 0xd5df, 0x003f, 0x003f, 0x003f, 0xd6e5, 0x003f, - 0x003f, 0x003f, 0x003f, 0xebb0, 0xf4e3, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3cd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f4, 0xfab2, - 0x003f, 0x003f, 0xeff5, 0xcadf, 0x003f, 0xebb1, 0xedbf, 0x003f, - 0x003f, 0xfdc9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a6, 0xf9a4, - 0xf0b3, 0x003f, 0xe5ec, 0x003f, 0x003f, 0x003f, 0xd1e7, 0x003f, - /* 0x8b00 .. 0x8bff */ - 0xd9c7, 0xe4d7, 0xeadd, 0x003f, 0xd4f7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaba, 0x003f, - 0xdacd, 0x003f, 0x003f, 0x003f, 0xf9cc, 0x003f, 0xe1da, 0xdbbf, - 0x003f, 0xccc5, 0xecd0, 0xcbbb, 0x003f, 0xdef3, 0x003f, 0x003f, - 0xe9aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd9c8, 0x003f, 0x003f, 0xeee3, 0xd7bd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcfc4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd0cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfca6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf1fb, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdd2, 0xd1c1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe3db, 0x003f, 0xd3c9, 0x003f, 0xdccf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcced, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdea7, 0x003f, 0x003f, 0xe6bb, - 0xeca1, 0x003f, 0x003f, 0x003f, 0xccb9, 0x003f, 0x003f, 0xfbde, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e2, 0x003f, 0x003f, - 0xd4c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdca8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2c2, 0x003f, 0xf3d8, 0xe5d3, 0x003f, 0x003f, 0xf3d9, 0x003f, - 0x003f, 0x003f, 0xf3c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8c00 .. 0x8cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcddb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdac, - 0x003f, 0xfcc3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4e7, 0x003f, - 0xd1c2, 0x003f, 0xf9a5, 0x003f, 0xe8d5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3ce, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd4ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfbdf, 0xe7e3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8fb, 0xe3cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf5b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd8e7, 0x003f, 0xd9c9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8af, 0xeff6, 0x003f, - 0xddb6, 0xeeaf, 0xcdf8, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeb8, - 0xfca7, 0xf7fc, 0xf7b1, 0xcebb, 0xf4a1, 0x003f, 0x003f, 0xeecd, - 0xe1ae, 0x003f, 0x003f, 0xecc3, 0xcffe, 0x003f, 0xf8bf, 0xd8e2, - 0xd3e8, 0x003f, 0x003f, 0xdea8, 0xf4e4, 0xecc2, 0x003f, 0xd9f5, - 0xf9c5, 0xddd3, 0xd6f1, 0xecfc, 0xfcf0, 0x003f, 0x003f, 0xedc0, - 0xcab9, 0x003f, 0xeee4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2e1, 0x003f, 0xdeb9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd6f2, 0x003f, 0xdef4, 0x003f, 0xdfdb, 0x003f, - 0xdbd3, 0x003f, 0xfae7, 0xd8e3, 0xf4c1, 0x003f, 0xddb7, 0x003f, - 0x003f, 0x003f, 0xf2f5, 0x003f, 0x003f, 0xd4ae, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6f3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xddb8, 0xcfc5, 0xdfdf, 0x003f, 0x003f, - /* 0x8d00 .. 0x8dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xf2be, 0xf6a1, 0x003f, 0xebcb, - 0xf1fc, 0x003f, 0xf3c7, 0x003f, 0x003f, 0xe0eb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xedfc, 0x003f, 0x003f, 0xe1db, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeee5, 0x003f, 0xdef5, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfad3, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1cb, 0x003f, 0x003f, 0xd0af, 0xddb9, 0x003f, 0x003f, 0xd1c3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5b1, 0x003f, 0x003f, - 0x003f, 0x003f, 0xeac6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf0e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf6ac, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf0eb, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xddba, 0x003f, 0x003f, 0x003f, 0xf2bf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7c5, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdba2, 0xf2f6, 0x003f, 0x003f, 0xcaba, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf7f5, 0x003f, 0xcbe5, 0x003f, 0x003f, - 0x003f, 0xeee6, 0x003f, 0xe0d3, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcea5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d8, - 0x003f, 0x003f, 0x003f, 0xd4af, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8e00 .. 0x8eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9c9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ce, - 0xf4c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbe6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xebb2, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1a2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xebb3, 0x003f, 0xf0b4, 0x003f, 0x003f, 0xcbf4, - 0xd4b0, 0xf3b2, 0xfbb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf5ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee7, - 0xf4b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf5ed, 0x003f, 0xcff3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf0e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeece, - 0x003f, 0x003f, 0xf1cc, 0x003f, 0x003f, 0xe5b8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd7f5, 0xe3f3, 0xcfe5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcfc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf3b3, 0xe4d8, 0xcff9, 0xcfda, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfacd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf2e2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5ee, 0x003f, 0x003f, 0xcabb, 0x003f, 0x003f, 0xe3dc, 0x003f, - /* 0x8f00 .. 0x8fff */ - 0x003f, 0x003f, 0x003f, 0xcef2, 0x003f, 0xd6d9, 0x003f, 0x003f, - 0x003f, 0xeeb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf4e5, 0xd8c2, 0xdcd0, 0xccee, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd5e0, 0xf6ca, 0xfdca, 0xd8d6, 0xf4cf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a6, 0xdcbe, - 0x003f, 0xdbd4, 0xd7c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2fe, - 0x003f, 0x003f, 0x003f, 0xf1cd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2c3, 0xdcde, 0x003f, 0xdcdf, 0x003f, 0x003f, 0xefad, 0xe6ab, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf9dd, 0xeabf, 0x003f, 0x003f, - 0x003f, 0xefae, 0x003f, 0x003f, 0x003f, 0xf4d0, 0xcef3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ac, 0x003f, 0xcede, - 0x003f, 0x003f, 0xd5f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe3f4, 0xcdd0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd5b8, 0x003f, 0x003f, 0xf7fd, 0x003f, - 0xdca9, 0x003f, 0x003f, 0x003f, 0x003f, 0xdef6, 0x003f, 0xdcaa, - 0xf2e3, 0xe9b4, 0xd2dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9e6, 0x003f, 0x003f, 0xe3f6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7ca, 0x003f, - 0x003f, 0xd0ce, 0x003f, 0x003f, 0xdaf7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcabc, 0x003f, - 0x003f, 0x003f, 0xeee8, 0xdade, 0x003f, 0xf2f7, 0x003f, 0x003f, - 0xe2fb, 0x003f, 0xcca6, 0x003f, 0x003f, 0x003f, 0x003f, 0xdabb, - 0x003f, 0xeee9, 0x003f, 0x003f, 0x003f, 0xf5da, 0x003f, 0x003f, - /* 0x9000 .. 0x90ff */ - 0xf7dc, 0xe1ea, 0xcec1, 0xd4b1, 0x003f, 0xfdb1, 0xe6bd, 0x003f, - 0xfbad, 0x003f, 0x003f, 0xf8e7, 0x003f, 0xe1ce, 0x003f, 0xf7e2, - 0xf5ef, 0xcfc7, 0x003f, 0x003f, 0xd4b2, 0xccef, 0x003f, 0xd4e8, - 0x003f, 0xeecf, 0xf7d7, 0x003f, 0x003f, 0xe0a6, 0xd6c1, 0xe1dc, - 0xf0e3, 0xf1e4, 0xdcf1, 0xd6a7, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f5, 0x003f, - 0x003f, 0xf1ce, 0xf2e4, 0x003f, 0x003f, 0xd0b0, 0x003f, 0x003f, - 0xecef, 0x003f, 0x003f, 0x003f, 0xf9ba, 0x003f, 0xebb5, 0x003f, - 0x003f, 0xd4ed, 0xe2c4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e7, - 0x003f, 0x003f, 0xebb4, 0xeaa1, 0x003f, 0xf8bc, 0xcea6, 0x003f, - 0xf9c6, 0xfcda, 0x003f, 0xd4b3, 0xd3b9, 0xeade, 0x003f, 0x003f, - 0x003f, 0xe9ab, 0x003f, 0x003f, 0xe1e1, 0xd3cf, 0xf4f6, 0x003f, - 0xeac0, 0xe1cf, 0x003f, 0xccba, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeeea, 0x003f, 0x003f, 0x003f, 0xf0e4, 0xf3b4, 0xd4ee, - 0x003f, 0x003f, 0xf2c0, 0x003f, 0x003f, 0xf1e5, 0x003f, 0xf4c3, - 0xe0d4, 0x003f, 0xebb6, 0x003f, 0xd7a1, 0xcbe8, 0x003f, 0xf9ad, - 0xe9ad, 0xd8e4, 0xfab3, 0xe2c5, 0xfcbd, 0x003f, 0x003f, 0xecc4, - 0xd8b1, 0x003f, 0xdcab, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5a4, - 0x003f, 0xebe9, 0x003f, 0x003f, 0x003f, 0xe8bb, 0x003f, 0x003f, - 0x003f, 0xd8d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xfbae, 0xd1e1, 0x003f, 0x003f, 0xdbc0, 0x003f, - 0xf5be, 0x003f, 0xdef7, 0x003f, 0x003f, 0x003f, 0x003f, 0xcafb, - 0xf7c6, 0xcfc8, 0x003f, 0x003f, 0x003f, 0xe1d0, 0x003f, 0x003f, - 0xeed0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe9f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcef4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5cd, 0x003f, - 0x003f, 0xcfdb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xddbb, 0x003f, 0x003f, 0x003f, 0x003f, 0xceac, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b4, 0x003f, 0x003f, - /* 0x9100 .. 0x91ff */ - 0x003f, 0x003f, 0xe4c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf5db, 0x003f, 0x003f, 0xfac1, 0x003f, 0x003f, - 0x003f, 0xdea9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff7, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd3b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xebb7, 0xeff8, 0xf5dc, 0xedcc, 0xdbd5, 0xf1cf, 0x003f, - 0x003f, 0x003f, 0xf1d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf5b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd9ae, 0xd5ac, 0x003f, 0xe2c6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfda3, 0x003f, 0xfbe5, - 0xdfab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f5, - 0x003f, 0xf6ad, 0x003f, 0xf5b3, 0x003f, 0xf0b5, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe1a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf5dd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeca2, 0xedfd, 0x003f, 0xf5b4, 0xfbb8, - 0x003f, 0xdba3, 0x003f, 0x003f, 0xd6ca, 0xcbd9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe5d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3fa, - 0x003f, 0xebb8, 0x003f, 0xe0b7, 0xd7ec, 0xf1ec, 0xe5af, 0xd5e1, - 0xd7ed, 0xd1d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f2, - 0xeff9, 0x003f, 0x003f, 0x003f, 0xddbc, 0xf6dc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf0e5, 0x003f, 0x003f, 0x003f, 0xf4c4, - 0x003f, 0x003f, 0xe9e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3fb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9200 .. 0x92ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4ef, 0x003f, 0x003f, - 0xcca2, 0xf7fe, 0xdfbc, 0x003f, 0x003f, 0x003f, 0x003f, 0xebcd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6c2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe8ad, 0x003f, 0x003f, 0x003f, 0x003f, 0xefaf, - 0xcba5, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbe9, 0x003f, 0x003f, - 0x003f, 0xfae8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccc6, - 0x003f, 0x003f, 0x003f, 0xe6e7, 0x003f, 0x003f, 0xeac7, 0x003f, - 0x003f, 0x003f, 0xdba4, 0x003f, 0xcfc9, 0xe2fc, 0xeffa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xebde, 0x003f, 0x003f, 0xf5c8, 0x003f, 0xd4de, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe0d5, 0x003f, 0xefb0, 0x003f, 0x003f, 0xe2c7, 0x003f, - 0xd9af, 0x003f, 0x003f, 0x003f, 0xf9e7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe7e5, 0x003f, 0x003f, 0xcfca, 0xe1d1, - 0x003f, 0xe2c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeffb, 0x003f, 0x003f, 0xfaf9, - 0x003f, 0x003f, 0xdcf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcbea, 0x003f, 0x003f, 0x003f, 0xcbbc, 0x003f, 0x003f, 0x003f, - /* 0x9300 .. 0x93ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xd6e2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5df, 0x003f, 0xeeb6, 0x003f, 0x003f, 0x003f, 0xe2f6, 0xd3ca, - 0xeffc, 0xd1c4, 0xefb1, 0x003f, 0xd1c5, 0x003f, 0xd0de, 0x003f, - 0xd9e1, 0x003f, 0x003f, 0xe0b8, 0x003f, 0x003f, 0xcdd1, 0xf3b9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7cc, 0x003f, 0xd6a8, 0xcea7, 0x003f, 0xd4b5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe4c8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd3b4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbf5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf6dd, 0x003f, 0xf1a3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xccc7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ca, 0x003f, 0xe1f0, 0x003f, - 0x003f, 0x003f, 0xf5e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfbaf, 0x003f, 0x003f, 0x003f, 0xcbd1, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfbe0, 0xf2e5, 0x003f, 0x003f, - 0xecf0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf0ec, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeeeb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9cb, 0x003f, - 0x003f, 0xccf0, 0x003f, 0x003f, 0xd7af, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3a1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9400 .. 0x94ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xfcf5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xefb2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4d1, 0x003f, 0x003f, - 0xf7a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf1d1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcafc, 0xcafd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcece, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3c8, 0x003f, 0xf3ba, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9500 .. 0x95ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedfe, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdaa6, 0x003f, 0x003f, 0xe0ec, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8cd, 0x003f, 0xcbd2, 0x003f, 0x003f, 0x003f, 0xebce, - 0x003f, 0xf9d8, 0xf9d9, 0xcae0, 0xdaca, 0x003f, 0x003f, 0x003f, - 0xcba6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcac8, 0xf9ee, 0xdbec, 0x003f, 0x003f, - 0xd0b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ef, 0x003f, 0x003f, - 0x003f, 0xe6f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe7a2, 0xe4d9, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4e1, - 0x003f, 0x003f, 0xfcc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf9ef, 0xcff4, 0xf7e6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcebc, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf4c5, 0xdca3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9600 .. 0x96ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xddbd, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf4c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf8a1, 0x003f, 0x003f, 0x003f, 0xe8d6, 0x003f, - 0x003f, 0x003f, 0xdbc1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf0e6, 0x003f, 0x003f, 0x003f, 0xe4b9, - 0xf6ed, 0x003f, 0xf9ae, 0x003f, 0xddbe, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd7b0, 0xd8e8, 0xcbbd, 0x003f, 0x003f, - 0xf9da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf8ce, 0xf9f0, 0xe0ed, 0xe3b3, 0xf4b3, - 0x003f, 0x003f, 0xeac2, 0xf2e6, 0xf0b6, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdbd6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xebe4, 0x003f, 0x003f, 0xf2e7, 0x003f, 0xd7d5, 0xd4b6, 0xf9e8, - 0xd7c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5d5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ea, 0xd7cc, 0x003f, - 0x003f, 0x003f, 0xd3e9, 0xe2c9, 0x003f, 0xfcdb, 0xcdad, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xccb0, 0xeaa2, 0x003f, 0x003f, - 0xe4f6, 0xd0c0, 0x003f, 0xf0b7, 0xeea1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd7f6, 0x003f, 0x003f, 0x003f, 0xe2ca, - 0xe2cb, 0x003f, 0xfacf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xebdf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6cb, - 0x003f, 0x003f, 0x003f, 0xf4b4, 0x003f, 0x003f, 0x003f, 0x003f, - 0xedcd, 0xe4d2, 0x003f, 0x003f, 0xeaa9, 0xe4ba, 0xf3a2, 0xcdd2, - 0x003f, 0xf6cb, 0x003f, 0xf1e6, 0xedc1, 0xe8bc, 0xeed1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0e7, 0xe2cc, 0x003f, - 0x003f, 0xe4aa, 0x003f, 0xf5e1, 0xedda, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd7ee, 0xd1f1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9eb, 0xe9ec, 0xe0e4, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaa7, - 0xddd4, 0x003f, 0xeaa3, 0x003f, 0x003f, 0x003f, 0xd6c3, 0xd6f4, - 0x003f, 0xdadf, 0x003f, 0xefb3, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9700 .. 0x97ff */ - 0xe2cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeffd, 0xf2e8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xefc5, 0x003f, 0xe7e7, 0x003f, 0x003f, 0xd7fd, 0x003f, - 0x003f, 0xe7ce, 0x003f, 0x003f, 0xdfdc, 0x003f, 0xf9c7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f6, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdfac, 0x003f, 0xd6da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdca4, 0x003f, 0x003f, 0x003f, 0xf0b8, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd5fa, 0x003f, 0xe4f7, 0x003f, 0x003f, 0x003f, - 0xd6c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf4ec, 0x003f, 0x003f, 0x003f, 0x003f, 0xeffe, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf0a1, 0x003f, 0xdeaa, 0x003f, - 0x003f, 0xdabc, 0xd8fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfad4, 0x003f, 0x003f, 0x003f, 0xece5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xfca8, 0x003f, 0x003f, 0xece6, - 0x003f, 0x003f, 0xd8cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfbb9, 0x003f, 0xe4d3, 0x003f, 0xcdf9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcfd3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcaea, 0x003f, 0x003f, 0xcfd4, 0x003f, 0xf8bd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4c7, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeadf, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf9db, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xebe5, 0x003f, 0x003f, 0xe1d2, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeaa4, 0x003f, 0x003f, 0x003f, 0xfac2, - /* 0x9800 .. 0x98ff */ - 0xfbe1, 0xfaed, 0xf0a2, 0xccf1, 0x003f, 0xfaa3, 0xe2f7, 0x003f, - 0xe2ce, 0x003f, 0xe9f5, 0x003f, 0xe1eb, 0x003f, 0x003f, 0x003f, - 0xe7e8, 0xe8d7, 0xdaf8, 0xd4cb, 0x003f, 0x003f, 0x003f, 0xf7f6, - 0xd6c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4e9, 0x003f, 0x003f, - 0xfafa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xccf2, 0xf7dd, 0x003f, 0xdeba, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcea8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf0b9, 0xe4fe, 0xe4c9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d4, 0x003f, 0x003f, 0x003f, - 0xeac3, 0x003f, 0xefb4, 0x003f, 0x003f, 0x003f, 0xd7be, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbe2, 0x003f, 0xcdd3, - 0x003f, 0x003f, 0x003f, 0xefb5, 0x003f, 0x003f, 0x003f, 0xfae9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf9a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfbd, - 0x003f, 0xf7c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf8fd, 0x003f, 0x003f, 0xf8fc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdeab, 0xdbe8, 0x003f, 0x003f, 0xe3dd, - 0x003f, 0xe1e2, 0xd1c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6d0, 0xebe6, 0xdaf9, - 0x003f, 0x003f, 0x003f, 0x003f, 0xecc7, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdef8, 0xf8e9, 0xe3de, 0x003f, - /* 0x9900 .. 0x99ff */ - 0x003f, 0x003f, 0x003f, 0xcef5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfac3, 0xe5d7, 0x003f, 0xecc8, 0x003f, 0x003f, 0x003f, - 0xf3c9, 0x003f, 0x003f, 0xe4bb, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb6, 0x003f, - 0xdcbf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcebd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c3, 0x003f, 0x003f, - 0x003f, 0xd0cf, 0x003f, 0xcffa, 0xf3ca, 0xe0d7, 0x003f, 0x003f, - 0x003f, 0xd1c7, 0xe9ae, 0x003f, 0xe8bd, 0x003f, 0x003f, 0xfac4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2cf, 0x003f, - 0x003f, 0xfac5, 0x003f, 0x003f, 0x003f, 0xf9b8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdce0, 0x003f, 0x003f, - 0xfbb0, 0x003f, 0x003f, 0x003f, 0xd8a9, 0xe5df, 0xf9a7, 0x003f, - 0x003f, 0xf6ee, 0x003f, 0xf6cc, 0xe2f8, 0x003f, 0x003f, 0x003f, - 0x003f, 0xecf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdae0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1d2, 0xd2cc, 0xcfcb, 0x003f, 0x003f, 0xcabd, 0x003f, 0x003f, - 0x003f, 0xddbf, 0x003f, 0x003f, 0x003f, 0xf6ef, 0x003f, 0xdef9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfab4, 0x003f, 0x003f, - 0x003f, 0xd5ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e7, - /* 0x9a00 .. 0x9aff */ - 0x003f, 0xdebe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdcc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1c8, 0xd1c9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf8be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcbf6, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd4f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5e2, 0xe1d3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd8e9, 0x003f, 0x003f, 0xf8fe, 0x003f, 0xcfcc, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfda4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcef6, 0x003f, 0xfad0, - 0x003f, 0x003f, 0xccf3, 0xe6be, 0x003f, 0x003f, 0x003f, 0xf6ae, - 0x003f, 0x003f, 0xd5f0, 0x003f, 0x003f, 0xd1ca, 0x003f, 0x003f, - 0x003f, 0xfcbe, 0xd5f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcde9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfab5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2d0, 0xf4f7, 0x003f, 0x003f, 0x003f, - 0xcdd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdba5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9b00 .. 0x9bff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7a2, - 0x003f, 0x003f, 0xf7e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeaa6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd0a1, 0x003f, 0x003f, 0x003f, - 0x003f, 0xceda, 0xfbeb, 0xdba6, 0xdbde, 0xd8e5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeae0, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd8aa, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6db, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc6, 0x003f, - 0x003f, 0xf8ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d5, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcef7, 0x003f, 0x003f, 0xe0d8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd7ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4ed, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcde6, 0x003f, 0x003f, 0x003f, - 0xccf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9c00 .. 0x9cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5e3, 0x003f, 0x003f, - 0xe4ca, 0x003f, 0xdce1, 0x003f, 0x003f, 0xf9c8, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcbf, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe8a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd8c4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbbe, - 0x003f, 0xdcae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7f7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0e8, 0x003f, 0xddc0, - 0x003f, 0xcfcd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdcf3, 0xd9b0, 0x003f, 0xe6e9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9d00 .. 0x9dff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe4bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xeac4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ec, 0x003f, - 0xe4e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfbf8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xccbb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4bd, 0x003f, 0x003f, - 0xcddc, 0xd9f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdddf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xedce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd9d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a3, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf9cd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcdae, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfce, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf6af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xfdd3, 0xebed, 0xd6dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9e00 .. 0x9eff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5a4, 0x003f, 0x003f, 0x003f, 0xd5b6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6dd, 0x003f, 0x003f, - 0x003f, 0xf9e9, 0x003f, 0x003f, 0x003f, 0xe7a4, 0x003f, 0xd6e3, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd1cb, 0xd6e4, 0x003f, 0x003f, 0x003f, 0xd5f2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdefa, 0x003f, 0xd7f8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8ea, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcfd5, 0xd8fd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd8ab, 0x003f, 0x003f, 0xfdcb, 0x003f, - 0x003f, 0x003f, 0x003f, 0xfcdc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a8, 0xd5f3, 0x003f, - 0x003f, 0xfdd9, 0x003f, 0x003f, 0xcca3, 0x003f, 0x003f, 0x003f, - 0xd9f9, 0x003f, 0x003f, 0xd3ea, 0xf5f5, 0x003f, 0xefc7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd3da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdabd, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9f00 .. 0x9fff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a8, - 0xdcaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0a3, 0x003f, - 0x003f, 0x003f, 0x003f, 0xcdd5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe0a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdeac, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf0ba, 0xeeb1, 0x003f, 0x003f, 0xeeb2, 0x003f, - 0x003f, 0x003f, 0xf6cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeed2, - 0x003f, 0xd6c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e5, - 0x003f, 0x003f, 0xf3bb, 0x003f, 0xe5e1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4cb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7a3, 0x003f, 0x003f, - 0xdbc2, 0x003f, 0x003f, 0x003f, 0x003f, 0xcafe, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcfcf, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xac00 .. 0xacff */ - 0xb0a1, 0xb0a2, 0x8141, 0x8142, 0xb0a3, 0x8143, 0x8144, 0xb0a4, - 0xb0a5, 0xb0a6, 0xb0a7, 0x8145, 0x8146, 0x8147, 0x8148, 0x8149, - 0xb0a8, 0xb0a9, 0xb0aa, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, 0xb0af, - 0x814a, 0xb0b0, 0xb0b1, 0xb0b2, 0xb0b3, 0xb0b4, 0x814b, 0x814c, - 0xb0b5, 0x814d, 0x814e, 0x814f, 0xb0b6, 0x8150, 0x8151, 0x8152, - 0x8153, 0x8154, 0x8155, 0x8156, 0xb0b7, 0xb0b8, 0x8157, 0xb0b9, - 0xb0ba, 0xb0bb, 0x8158, 0x8159, 0x815a, 0x8161, 0x8162, 0x8163, - 0xb0bc, 0xb0bd, 0x8164, 0x8165, 0xb0be, 0x8166, 0x8167, 0x8168, - 0xb0bf, 0x8169, 0x816a, 0x816b, 0x816c, 0x816d, 0x816e, 0x816f, - 0x8170, 0x8171, 0x8172, 0xb0c0, 0x8173, 0xb0c1, 0x8174, 0x8175, - 0x8176, 0x8177, 0x8178, 0x8179, 0xb0c2, 0x817a, 0x8181, 0x8182, - 0xb0c3, 0x8183, 0x8184, 0x8185, 0xb0c4, 0x8186, 0x8187, 0x8188, - 0x8189, 0x818a, 0x818b, 0x818c, 0x818d, 0x818e, 0x818f, 0x8190, - 0x8191, 0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8198, - 0xb0c5, 0xb0c6, 0x8199, 0x819a, 0xb0c7, 0x819b, 0x819c, 0xb0c8, - 0xb0c9, 0x819d, 0xb0ca, 0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2, - 0xb0cb, 0xb0cc, 0x81a3, 0xb0cd, 0xb0ce, 0xb0cf, 0xb0d0, 0x81a4, - 0x81a5, 0xb0d1, 0xb0d2, 0xb0d3, 0xb0d4, 0x81a6, 0x81a7, 0x81a8, - 0xb0d5, 0x81a9, 0x81aa, 0x81ab, 0xb0d6, 0x81ac, 0x81ad, 0x81ae, - 0x81af, 0x81b0, 0x81b1, 0x81b2, 0xb0d7, 0xb0d8, 0x81b3, 0xb0d9, - 0xb0da, 0xb0db, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, - 0xb0dc, 0xb0dd, 0xb0de, 0x81ba, 0xb0df, 0x81bb, 0x81bc, 0xb0e0, - 0xb0e1, 0x81bd, 0x81be, 0x81bf, 0x81c0, 0x81c1, 0x81c2, 0x81c3, - 0xb0e2, 0xb0e3, 0x81c4, 0xb0e4, 0xb0e5, 0xb0e6, 0x81c5, 0x81c6, - 0x81c7, 0xb0e7, 0x81c8, 0x81c9, 0xb0e8, 0x81ca, 0x81cb, 0x81cc, - 0xb0e9, 0x81cd, 0x81ce, 0x81cf, 0xb0ea, 0x81d0, 0x81d1, 0x81d2, - 0x81d3, 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0xb0eb, 0x81d8, 0xb0ec, - 0x81d9, 0x81da, 0x81db, 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, - 0xb0ed, 0xb0ee, 0x81e1, 0x81e2, 0xb0ef, 0x81e3, 0x81e4, 0xb0f0, - 0xb0f1, 0x81e5, 0xb0f2, 0x81e6, 0xb0f3, 0x81e7, 0x81e8, 0xb0f4, - 0xb0f5, 0xb0f6, 0x81e9, 0xb0f7, 0x81ea, 0xb0f8, 0xb0f9, 0x81eb, - 0x81ec, 0x81ed, 0x81ee, 0x81ef, 0xb0fa, 0xb0fb, 0x81f0, 0x81f1, - /* 0xad00 .. 0xadff */ - 0xb0fc, 0x81f2, 0x81f3, 0x81f4, 0xb0fd, 0x81f5, 0xb0fe, 0x81f6, - 0x81f7, 0x81f8, 0x81f9, 0x81fa, 0xb1a1, 0xb1a2, 0x81fb, 0xb1a3, - 0x81fc, 0xb1a4, 0x81fd, 0x81fe, 0x8241, 0x8242, 0x8243, 0x8244, - 0xb1a5, 0x8245, 0x8246, 0x8247, 0xb1a6, 0x8248, 0x8249, 0x824a, - 0xb1a7, 0x824b, 0x824c, 0x824d, 0x824e, 0x824f, 0x8250, 0x8251, - 0x8252, 0xb1a8, 0x8253, 0x8254, 0xb1a9, 0xb1aa, 0x8255, 0x8256, - 0x8257, 0x8258, 0x8259, 0x825a, 0xb1ab, 0xb1ac, 0x8261, 0x8262, - 0xb1ad, 0x8263, 0x8264, 0x8265, 0xb1ae, 0x8266, 0x8267, 0x8268, - 0x8269, 0x826a, 0x826b, 0x826c, 0xb1af, 0xb1b0, 0x826d, 0xb1b1, - 0x826e, 0xb1b2, 0x826f, 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, - 0xb1b3, 0x8275, 0x8276, 0x8277, 0xb1b4, 0x8278, 0x8279, 0x827a, - 0xb1b5, 0x8281, 0x8282, 0x8283, 0x8284, 0x8285, 0x8286, 0x8287, - 0x8288, 0xb1b6, 0x8289, 0xb1b7, 0x828a, 0x828b, 0x828c, 0x828d, - 0x828e, 0x828f, 0x8290, 0x8291, 0xb1b8, 0xb1b9, 0x8292, 0x8293, - 0xb1ba, 0x8294, 0x8295, 0xb1bb, 0xb1bc, 0xb1bd, 0xb1be, 0x8296, - 0x8297, 0x8298, 0x8299, 0xb1bf, 0xb1c0, 0xb1c1, 0x829a, 0xb1c2, - 0x829b, 0xb1c3, 0xb1c4, 0x829c, 0x829d, 0x829e, 0x829f, 0x82a0, - 0xb1c5, 0xb1c6, 0x82a1, 0x82a2, 0xb1c7, 0x82a3, 0x82a4, 0x82a5, - 0xb1c8, 0x82a6, 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac, - 0x82ad, 0x82ae, 0x82af, 0x82b0, 0xb1c9, 0xb1ca, 0x82b1, 0x82b2, - 0x82b3, 0x82b4, 0x82b5, 0x82b6, 0xb1cb, 0x82b7, 0x82b8, 0x82b9, - 0x82ba, 0x82bb, 0x82bc, 0x82bd, 0x82be, 0x82bf, 0x82c0, 0x82c1, - 0x82c2, 0x82c3, 0x82c4, 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0xb1cc, - 0x82c9, 0x82ca, 0x82cb, 0x82cc, 0x82cd, 0x82ce, 0x82cf, 0x82d0, - 0xb1cd, 0xb1ce, 0x82d1, 0x82d2, 0xb1cf, 0x82d3, 0x82d4, 0x82d5, - 0xb1d0, 0x82d6, 0x82d7, 0x82d8, 0x82d9, 0x82da, 0x82db, 0x82dc, - 0xb1d1, 0xb1d2, 0x82dd, 0xb1d3, 0x82de, 0x82df, 0x82e0, 0x82e1, - 0x82e2, 0x82e3, 0x82e4, 0x82e5, 0xb1d4, 0x82e6, 0x82e7, 0x82e8, - 0xb1d5, 0x82e9, 0x82ea, 0x82eb, 0xb1d6, 0x82ec, 0x82ed, 0x82ee, - 0x82ef, 0x82f0, 0x82f1, 0x82f2, 0x82f3, 0x82f4, 0x82f5, 0x82f6, - 0x82f7, 0x82f8, 0x82f9, 0x82fa, 0x82fb, 0x82fc, 0x82fd, 0x82fe, - 0xb1d7, 0xb1d8, 0x8341, 0x8342, 0xb1d9, 0x8343, 0x8344, 0xb1da, - /* 0xae00 .. 0xaeff */ - 0xb1db, 0xb1dc, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 0x834a, - 0xb1dd, 0xb1de, 0x834b, 0xb1df, 0x834c, 0xb1e0, 0x834d, 0x834e, - 0x834f, 0x8350, 0x8351, 0x8352, 0xb1e1, 0x8353, 0x8354, 0x8355, - 0x8356, 0x8357, 0x8358, 0x8359, 0x835a, 0x8361, 0x8362, 0x8363, - 0x8364, 0x8365, 0x8366, 0x8367, 0x8368, 0x8369, 0x836a, 0x836b, - 0x836c, 0x836d, 0x836e, 0x836f, 0x8370, 0x8371, 0x8372, 0x8373, - 0xb1e2, 0xb1e3, 0x8374, 0x8375, 0xb1e4, 0x8376, 0x8377, 0xb1e5, - 0xb1e6, 0x8378, 0xb1e7, 0x8379, 0x837a, 0x8381, 0x8382, 0x8383, - 0xb1e8, 0xb1e9, 0x8384, 0xb1ea, 0x8385, 0xb1eb, 0xb1ec, 0x8386, - 0x8387, 0x8388, 0xb1ed, 0x8389, 0xb1ee, 0xb1ef, 0xb1f0, 0x838a, - 0xb1f1, 0x838b, 0x838c, 0x838d, 0xb1f2, 0x838e, 0xb1f3, 0x838f, - 0x8390, 0x8391, 0x8392, 0x8393, 0xb1f4, 0xb1f5, 0x8394, 0xb1f6, - 0xb1f7, 0xb1f8, 0x8395, 0x8396, 0x8397, 0xb1f9, 0x8398, 0x8399, - 0xb1fa, 0xb1fb, 0x839a, 0x839b, 0xb1fc, 0x839c, 0x839d, 0x839e, - 0xb1fd, 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, - 0xb1fe, 0xb2a1, 0x83a6, 0xb2a2, 0xb2a3, 0xb2a4, 0x83a7, 0x83a8, - 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0xb2a5, 0xb2a6, 0x83ad, 0x83ae, - 0x83af, 0x83b0, 0x83b1, 0x83b2, 0xb2a7, 0x83b3, 0x83b4, 0x83b5, - 0x83b6, 0x83b7, 0x83b8, 0x83b9, 0x83ba, 0x83bb, 0x83bc, 0x83bd, - 0x83be, 0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0x83c5, - 0x83c6, 0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb, 0x83cc, 0x83cd, - 0x83ce, 0x83cf, 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d4, 0x83d5, - 0x83d6, 0x83d7, 0x83d8, 0x83d9, 0x83da, 0x83db, 0x83dc, 0x83dd, - 0x83de, 0x83df, 0x83e0, 0x83e1, 0xb2a8, 0xb2a9, 0xb2aa, 0x83e2, - 0xb2ab, 0x83e3, 0x83e4, 0x83e5, 0xb2ac, 0x83e6, 0x83e7, 0x83e8, - 0x83e9, 0x83ea, 0x83eb, 0x83ec, 0xb2ad, 0xb2ae, 0x83ed, 0xb2af, - 0xb2b0, 0xb2b1, 0x83ee, 0x83ef, 0x83f0, 0x83f1, 0x83f2, 0x83f3, - 0xb2b2, 0xb2b3, 0x83f4, 0x83f5, 0xb2b4, 0x83f6, 0x83f7, 0x83f8, - 0x83f9, 0x83fa, 0x83fb, 0x83fc, 0x83fd, 0x83fe, 0x8441, 0x8442, - 0xb2b5, 0x8443, 0x8444, 0xb2b6, 0x8445, 0xb2b7, 0x8446, 0x8447, - 0x8448, 0x8449, 0x844a, 0x844b, 0xb2b8, 0x844c, 0x844d, 0x844e, - 0xb2b9, 0x844f, 0x8450, 0x8451, 0xb2ba, 0x8452, 0x8453, 0x8454, - /* 0xaf00 .. 0xafff */ - 0x8455, 0x8456, 0x8457, 0x8458, 0x8459, 0x845a, 0x8461, 0xb2bb, - 0xb2bc, 0x8462, 0x8463, 0x8464, 0x8465, 0xb2bd, 0x8466, 0x8467, - 0xb2be, 0x8468, 0x8469, 0x846a, 0x846b, 0x846c, 0x846d, 0x846e, - 0x846f, 0x8470, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8476, - 0x8477, 0x8478, 0x8479, 0x847a, 0x8481, 0x8482, 0x8483, 0x8484, - 0x8485, 0x8486, 0x8487, 0x8488, 0xb2bf, 0xb2c0, 0x8489, 0x848a, - 0xb2c1, 0x848b, 0xb2c2, 0x848c, 0xb2c3, 0x848d, 0x848e, 0x848f, - 0x8490, 0x8491, 0x8492, 0x8493, 0xb2c4, 0xb2c5, 0x8494, 0xb2c6, - 0x8495, 0xb2c7, 0xb2c8, 0xb2c9, 0x8496, 0x8497, 0x8498, 0x8499, - 0xb2ca, 0xb2cb, 0x849a, 0x849b, 0x849c, 0x849d, 0x849e, 0x849f, - 0xb2cc, 0x84a0, 0x84a1, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, - 0x84a7, 0x84a8, 0x84a9, 0x84aa, 0xb2cd, 0xb2ce, 0x84ab, 0x84ac, - 0x84ad, 0x84ae, 0x84af, 0x84b0, 0xb2cf, 0xb2d0, 0x84b1, 0x84b2, - 0x84b3, 0x84b4, 0x84b5, 0x84b6, 0x84b7, 0x84b8, 0x84b9, 0x84ba, - 0x84bb, 0x84bc, 0x84bd, 0x84be, 0x84bf, 0x84c0, 0x84c1, 0x84c2, - 0x84c3, 0xb2d1, 0x84c4, 0x84c5, 0x84c6, 0x84c7, 0x84c8, 0x84c9, - 0xb2d2, 0x84ca, 0x84cb, 0x84cc, 0xb2d3, 0x84cd, 0x84ce, 0x84cf, - 0xb2d4, 0x84d0, 0x84d1, 0x84d2, 0x84d3, 0x84d4, 0x84d5, 0x84d6, - 0xb2d5, 0xb2d6, 0x84d7, 0x84d8, 0x84d9, 0xb2d7, 0x84da, 0x84db, - 0x84dc, 0x84dd, 0x84de, 0x84df, 0xb2d8, 0x84e0, 0x84e1, 0x84e2, - 0x84e3, 0x84e4, 0x84e5, 0x84e6, 0x84e7, 0x84e8, 0x84e9, 0x84ea, - 0x84eb, 0x84ec, 0x84ed, 0x84ee, 0x84ef, 0x84f0, 0x84f1, 0x84f2, - 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8, 0x84f9, 0x84fa, - 0xb2d9, 0xb2da, 0x84fb, 0x84fc, 0xb2db, 0x84fd, 0x84fe, 0x8541, - 0xb2dc, 0x8542, 0x8543, 0x8544, 0x8545, 0x8546, 0x8547, 0xb2dd, - 0xb2de, 0xb2df, 0x8548, 0xb2e0, 0x8549, 0xb2e1, 0xb2e2, 0x854a, - 0x854b, 0x854c, 0x854d, 0x854e, 0xb2e3, 0x854f, 0x8550, 0x8551, - 0x8552, 0x8553, 0x8554, 0x8555, 0xb2e4, 0x8556, 0x8557, 0x8558, - 0x8559, 0x855a, 0x8561, 0x8562, 0x8563, 0x8564, 0x8565, 0x8566, - 0xb2e5, 0xb2e6, 0x8567, 0x8568, 0x8569, 0x856a, 0x856b, 0x856c, - 0xb2e7, 0xb2e8, 0x856d, 0x856e, 0xb2e9, 0x856f, 0x8570, 0x8571, - 0xb2ea, 0x8572, 0x8573, 0x8574, 0x8575, 0x8576, 0x8577, 0x8578, - /* 0xb000 .. 0xb0ff */ - 0xb2eb, 0xb2ec, 0x8579, 0x857a, 0xb2ed, 0x8581, 0x8582, 0x8583, - 0x8584, 0x8585, 0x8586, 0x8587, 0xb2ee, 0x8588, 0x8589, 0x858a, - 0xb2ef, 0x858b, 0x858c, 0x858d, 0xb2f0, 0x858e, 0x858f, 0x8590, - 0x8591, 0x8592, 0x8593, 0x8594, 0xb2f1, 0xb2f2, 0x8595, 0x8596, - 0x8597, 0x8598, 0x8599, 0x859a, 0x859b, 0x859c, 0x859d, 0x859e, - 0xb2f3, 0x859f, 0x85a0, 0x85a1, 0x85a2, 0x85a3, 0x85a4, 0x85a5, - 0x85a6, 0x85a7, 0x85a8, 0x85a9, 0x85aa, 0x85ab, 0x85ac, 0x85ad, - 0x85ae, 0x85af, 0x85b0, 0x85b1, 0x85b2, 0x85b3, 0x85b4, 0x85b5, - 0x85b6, 0x85b7, 0x85b8, 0x85b9, 0xb2f4, 0xb2f5, 0x85ba, 0x85bb, - 0xb2f6, 0x85bc, 0xb2f7, 0x85bd, 0xb2f8, 0x85be, 0xb2f9, 0x85bf, - 0x85c0, 0x85c1, 0x85c2, 0xb2fa, 0xb2fb, 0xb2fc, 0x85c3, 0xb2fd, - 0x85c4, 0xb2fe, 0x85c5, 0x85c6, 0x85c7, 0xb3a1, 0x85c8, 0x85c9, - 0x85ca, 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85cf, 0x85d0, 0x85d1, - 0x85d2, 0x85d3, 0x85d4, 0x85d5, 0x85d6, 0x85d7, 0x85d8, 0x85d9, - 0x85da, 0x85db, 0x85dc, 0x85dd, 0x85de, 0x85df, 0x85e0, 0x85e1, - 0x85e2, 0x85e3, 0x85e4, 0x85e5, 0xb3a2, 0xb3a3, 0x85e6, 0x85e7, - 0xb3a4, 0x85e8, 0x85e9, 0x85ea, 0xb3a5, 0x85eb, 0x85ec, 0x85ed, - 0x85ee, 0x85ef, 0x85f0, 0x85f1, 0xb3a6, 0xb3a7, 0x85f2, 0xb3a8, - 0x85f3, 0xb3a9, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8, 0x85f9, - 0xb3aa, 0xb3ab, 0xb3ac, 0x85fa, 0xb3ad, 0x85fb, 0x85fc, 0xb3ae, - 0xb3af, 0xb3b0, 0xb3b1, 0x85fd, 0x85fe, 0x8641, 0x8642, 0x8643, - 0xb3b2, 0xb3b3, 0x8644, 0xb3b4, 0xb3b5, 0xb3b6, 0xb3b7, 0xb3b8, - 0x8645, 0xb3b9, 0x8646, 0xb3ba, 0xb3bb, 0xb3bc, 0x8647, 0x8648, - 0xb3bd, 0x8649, 0x864a, 0x864b, 0xb3be, 0x864c, 0x864d, 0x864e, - 0x864f, 0x8650, 0x8651, 0x8652, 0xb3bf, 0xb3c0, 0x8653, 0xb3c1, - 0xb3c2, 0xb3c3, 0x8654, 0x8655, 0x8656, 0x8657, 0x8658, 0x8659, - 0xb3c4, 0xb3c5, 0x865a, 0x8661, 0xb3c6, 0x8662, 0x8663, 0x8664, - 0xb3c7, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a, 0x866b, - 0xb3c8, 0x866c, 0x866d, 0x866e, 0x866f, 0xb3c9, 0x8670, 0x8671, - 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, 0x8677, 0x8678, 0x8679, - 0x867a, 0x8681, 0x8682, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, - 0x8688, 0x8689, 0x868a, 0x868b, 0x868c, 0x868d, 0x868e, 0x868f, - /* 0xb100 .. 0xb1ff */ - 0x8690, 0x8691, 0x8692, 0x8693, 0x8694, 0x8695, 0x8696, 0x8697, - 0xb3ca, 0xb3cb, 0x8698, 0xb3cc, 0xb3cd, 0x8699, 0x869a, 0x869b, - 0xb3ce, 0x869c, 0xb3cf, 0xb3d0, 0x869d, 0x869e, 0x869f, 0x86a0, - 0xb3d1, 0xb3d2, 0x86a1, 0xb3d3, 0xb3d4, 0xb3d5, 0x86a2, 0x86a3, - 0x86a4, 0x86a5, 0x86a6, 0xb3d6, 0xb3d7, 0xb3d8, 0x86a7, 0x86a8, - 0xb3d9, 0x86a9, 0x86aa, 0x86ab, 0xb3da, 0x86ac, 0x86ad, 0x86ae, - 0x86af, 0x86b0, 0x86b1, 0x86b2, 0xb3db, 0xb3dc, 0x86b3, 0xb3dd, - 0xb3de, 0xb3df, 0x86b4, 0x86b5, 0x86b6, 0x86b7, 0x86b8, 0x86b9, - 0xb3e0, 0xb3e1, 0x86ba, 0x86bb, 0xb3e2, 0x86bc, 0x86bd, 0x86be, - 0xb3e3, 0x86bf, 0x86c0, 0x86c1, 0x86c2, 0x86c3, 0x86c4, 0x86c5, - 0xb3e4, 0xb3e5, 0x86c6, 0x86c7, 0xb3e6, 0xb3e7, 0x86c8, 0x86c9, - 0xb3e8, 0x86ca, 0x86cb, 0x86cc, 0xb3e9, 0x86cd, 0x86ce, 0x86cf, - 0xb3ea, 0x86d0, 0x86d1, 0x86d2, 0x86d3, 0x86d4, 0x86d5, 0x86d6, - 0x86d7, 0x86d8, 0x86d9, 0x86da, 0x86db, 0x86dc, 0x86dd, 0x86de, - 0x86df, 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e4, 0x86e5, 0x86e6, - 0xb3eb, 0xb3ec, 0x86e7, 0x86e8, 0xb3ed, 0x86e9, 0x86ea, 0x86eb, - 0xb3ee, 0x86ec, 0xb3ef, 0x86ed, 0x86ee, 0x86ef, 0x86f0, 0x86f1, - 0xb3f0, 0xb3f1, 0x86f2, 0xb3f2, 0x86f3, 0xb3f3, 0x86f4, 0x86f5, - 0x86f6, 0x86f7, 0xb3f4, 0xb3f5, 0xb3f6, 0x86f8, 0x86f9, 0x86fa, - 0xb3f7, 0x86fb, 0x86fc, 0x86fd, 0xb3f8, 0x86fe, 0x8741, 0x8742, - 0x8743, 0x8744, 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, - 0xb3f9, 0x874b, 0x874c, 0x874d, 0x874e, 0x874f, 0x8750, 0x8751, - 0x8752, 0x8753, 0x8754, 0x8755, 0x8756, 0x8757, 0x8758, 0x8759, - 0x875a, 0x8761, 0x8762, 0x8763, 0x8764, 0x8765, 0x8766, 0x8767, - 0x8768, 0x8769, 0x876a, 0x876b, 0x876c, 0x876d, 0x876e, 0x876f, - 0x8770, 0x8771, 0x8772, 0x8773, 0xb3fa, 0x8774, 0x8775, 0x8776, - 0xb3fb, 0x8777, 0x8778, 0x8779, 0xb3fc, 0x877a, 0x8781, 0x8782, - 0x8783, 0x8784, 0x8785, 0x8786, 0xb3fd, 0xb3fe, 0x8787, 0xb4a1, - 0x8788, 0x8789, 0x878a, 0x878b, 0x878c, 0x878d, 0x878e, 0x878f, - 0xb4a2, 0xb4a3, 0x8790, 0x8791, 0xb4a4, 0x8792, 0x8793, 0x8794, - 0xb4a5, 0x8795, 0x8796, 0x8797, 0x8798, 0x8799, 0x879a, 0x879b, - 0x879c, 0xb4a6, 0x879d, 0xb4a7, 0x879e, 0xb4a8, 0x879f, 0x87a0, - /* 0xb200 .. 0xb2ff */ - 0x87a1, 0x87a2, 0x87a3, 0x87a4, 0xb4a9, 0xb4aa, 0x87a5, 0x87a6, - 0xb4ab, 0x87a7, 0x87a8, 0xb4ac, 0xb4ad, 0x87a9, 0x87aa, 0x87ab, - 0x87ac, 0x87ad, 0x87ae, 0x87af, 0xb4ae, 0xb4af, 0x87b0, 0xb4b0, - 0x87b1, 0xb4b1, 0x87b2, 0x87b3, 0x87b4, 0x87b5, 0x87b6, 0x87b7, - 0xb4b2, 0x87b8, 0x87b9, 0x87ba, 0x87bb, 0x87bc, 0x87bd, 0x87be, - 0x87bf, 0x87c0, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c6, - 0x87c7, 0x87c8, 0x87c9, 0x87ca, 0xb4b3, 0x87cb, 0x87cc, 0x87cd, - 0x87ce, 0x87cf, 0x87d0, 0x87d1, 0xb4b4, 0x87d2, 0x87d3, 0x87d4, - 0x87d5, 0x87d6, 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87db, 0x87dc, - 0x87dd, 0x87de, 0x87df, 0x87e0, 0x87e1, 0x87e2, 0x87e3, 0x87e4, - 0x87e5, 0x87e6, 0x87e7, 0x87e8, 0x87e9, 0x87ea, 0x87eb, 0x87ec, - 0xb4b5, 0x87ed, 0x87ee, 0x87ef, 0xb4b6, 0x87f0, 0x87f1, 0x87f2, - 0xb4b7, 0x87f3, 0x87f4, 0x87f5, 0x87f6, 0x87f7, 0x87f8, 0x87f9, - 0xb4b8, 0xb4b9, 0x87fa, 0x87fb, 0x87fc, 0x87fd, 0x87fe, 0x8841, - 0x8842, 0x8843, 0x8844, 0x8845, 0xb4ba, 0xb4bb, 0x8846, 0x8847, - 0x8848, 0x8849, 0x884a, 0x884b, 0xb4bc, 0x884c, 0x884d, 0x884e, - 0x884f, 0x8850, 0x8851, 0x8852, 0xb4bd, 0xb4be, 0x8853, 0x8854, - 0x8855, 0xb4bf, 0x8856, 0x8857, 0x8858, 0x8859, 0x885a, 0x8861, - 0xb4c0, 0xb4c1, 0x8862, 0x8863, 0xb4c2, 0x8864, 0x8865, 0x8866, - 0xb4c3, 0xb4c4, 0xb4c5, 0x8867, 0x8868, 0x8869, 0x886a, 0x886b, - 0xb4c6, 0xb4c7, 0x886c, 0xb4c8, 0x886d, 0xb4c9, 0xb4ca, 0x886e, - 0x886f, 0x8870, 0xb4cb, 0x8871, 0xb4cc, 0x8872, 0x8873, 0x8874, - 0xb4cd, 0x8875, 0x8876, 0x8877, 0xb4ce, 0x8878, 0x8879, 0x887a, - 0x8881, 0x8882, 0x8883, 0x8884, 0x8885, 0x8886, 0x8887, 0x8888, - 0x8889, 0x888a, 0x888b, 0x888c, 0x888d, 0x888e, 0x888f, 0x8890, - 0xb4cf, 0xb4d0, 0x8891, 0x8892, 0xb4d1, 0x8893, 0x8894, 0x8895, - 0xb4d2, 0x8896, 0xb4d3, 0x8897, 0x8898, 0x8899, 0x889a, 0x889b, - 0xb4d4, 0xb4d5, 0x889c, 0xb4d6, 0x889d, 0xb4d7, 0x889e, 0x889f, - 0x88a0, 0x88a1, 0xb4d8, 0x88a2, 0xb4d9, 0xb4da, 0xb4db, 0x88a3, - 0xb4dc, 0x88a4, 0x88a5, 0xb4dd, 0xb4de, 0xb4df, 0xb4e0, 0xb4e1, - 0x88a6, 0x88a7, 0x88a8, 0xb4e2, 0xb4e3, 0xb4e4, 0x88a9, 0xb4e5, - 0xb4e6, 0xb4e7, 0xb4e8, 0xb4e9, 0x88aa, 0x88ab, 0x88ac, 0xb4ea, - /* 0xb300 .. 0xb3ff */ - 0xb4eb, 0xb4ec, 0x88ad, 0x88ae, 0xb4ed, 0x88af, 0x88b0, 0x88b1, - 0xb4ee, 0x88b2, 0x88b3, 0x88b4, 0x88b5, 0x88b6, 0x88b7, 0x88b8, - 0xb4ef, 0xb4f0, 0x88b9, 0xb4f1, 0xb4f2, 0xb4f3, 0x88ba, 0x88bb, - 0x88bc, 0x88bd, 0x88be, 0x88bf, 0xb4f4, 0x88c0, 0x88c1, 0x88c2, - 0x88c3, 0x88c4, 0x88c5, 0x88c6, 0x88c7, 0x88c8, 0x88c9, 0x88ca, - 0x88cb, 0x88cc, 0x88cd, 0x88ce, 0x88cf, 0x88d0, 0x88d1, 0x88d2, - 0x88d3, 0x88d4, 0x88d5, 0x88d6, 0x88d7, 0x88d8, 0x88d9, 0x88da, - 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88df, 0x88e0, 0x88e1, 0x88e2, - 0x88e3, 0x88e4, 0x88e5, 0x88e6, 0x88e7, 0x88e8, 0x88e9, 0x88ea, - 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f0, 0x88f1, 0x88f2, - 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0xb4f5, 0xb4f6, 0xb4f7, 0x88f7, - 0xb4f8, 0x88f8, 0x88f9, 0xb4f9, 0xb4fa, 0x88fa, 0xb4fb, 0xb4fc, - 0x88fb, 0x88fc, 0x88fd, 0x88fe, 0xb4fd, 0xb4fe, 0x8941, 0xb5a1, - 0x8942, 0xb5a2, 0x8943, 0xb5a3, 0x8944, 0x8945, 0xb5a4, 0x8946, - 0xb5a5, 0xb5a6, 0x8947, 0x8948, 0xb5a7, 0x8949, 0x894a, 0x894b, - 0xb5a8, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, 0x8952, - 0xb5a9, 0xb5aa, 0x8953, 0xb5ab, 0xb5ac, 0xb5ad, 0x8954, 0x8955, - 0x8956, 0x8957, 0x8958, 0x8959, 0xb5ae, 0x895a, 0x8961, 0x8962, - 0xb5af, 0x8963, 0x8964, 0x8965, 0xb5b0, 0x8966, 0x8967, 0x8968, - 0x8969, 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, 0x8970, - 0xb5b1, 0xb5b2, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0x8976, - 0xb5b3, 0x8977, 0x8978, 0x8979, 0xb5b4, 0x897a, 0x8981, 0x8982, - 0x8983, 0x8984, 0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0x898a, - 0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8992, - 0x8993, 0x8994, 0x8995, 0x8996, 0xb5b5, 0xb5b6, 0x8997, 0x8998, - 0xb5b7, 0x8999, 0x899a, 0xb5b8, 0xb5b9, 0x899b, 0xb5ba, 0x899c, - 0xb5bb, 0x899d, 0x899e, 0x899f, 0xb5bc, 0xb5bd, 0x89a0, 0xb5be, - 0x89a1, 0xb5bf, 0x89a2, 0xb5c0, 0x89a3, 0xb5c1, 0x89a4, 0x89a5, - 0xb5c2, 0x89a6, 0x89a7, 0x89a8, 0xb5c3, 0x89a9, 0x89aa, 0x89ab, - 0xb5c4, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1, 0x89b2, - 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, 0x89ba, - 0x89bb, 0x89bc, 0x89bd, 0x89be, 0xb5c5, 0x89bf, 0x89c0, 0x89c1, - /* 0xb400 .. 0xb4ff */ - 0x89c2, 0x89c3, 0x89c4, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, - 0x89ca, 0x89cb, 0x89cc, 0x89cd, 0x89ce, 0x89cf, 0x89d0, 0x89d1, - 0xb5c6, 0x89d2, 0x89d3, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8, - 0xb5c7, 0x89d9, 0x89da, 0x89db, 0xb5c8, 0x89dc, 0x89dd, 0x89de, - 0xb5c9, 0x89df, 0x89e0, 0x89e1, 0x89e2, 0x89e3, 0x89e4, 0x89e5, - 0xb5ca, 0xb5cb, 0x89e6, 0xb5cc, 0x89e7, 0x89e8, 0x89e9, 0x89ea, - 0x89eb, 0x89ec, 0x89ed, 0x89ee, 0xb5cd, 0x89ef, 0x89f0, 0x89f1, - 0x89f2, 0x89f3, 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, - 0x89fa, 0x89fb, 0x89fc, 0x89fd, 0x89fe, 0x8a41, 0x8a42, 0x8a43, - 0x8a44, 0x8a45, 0x8a46, 0x8a47, 0x8a48, 0x8a49, 0x8a4a, 0x8a4b, - 0xb5ce, 0xb5cf, 0x8a4c, 0x8a4d, 0xb5d0, 0x8a4e, 0x8a4f, 0x8a50, - 0xb5d1, 0x8a51, 0x8a52, 0x8a53, 0x8a54, 0x8a55, 0x8a56, 0x8a57, - 0xb5d2, 0xb5d3, 0x8a58, 0xb5d4, 0x8a59, 0xb5d5, 0x8a5a, 0x8a61, - 0x8a62, 0x8a63, 0x8a64, 0x8a65, 0xb5d6, 0x8a66, 0x8a67, 0x8a68, - 0x8a69, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, - 0x8a71, 0x8a72, 0x8a73, 0x8a74, 0x8a75, 0x8a76, 0x8a77, 0x8a78, - 0xb5d7, 0x8a79, 0x8a7a, 0x8a81, 0x8a82, 0x8a83, 0x8a84, 0x8a85, - 0xb5d8, 0x8a86, 0x8a87, 0x8a88, 0x8a89, 0x8a8a, 0x8a8b, 0x8a8c, - 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92, 0x8a93, 0x8a94, - 0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0xb5d9, 0x8a9a, 0x8a9b, - 0x8a9c, 0x8a9d, 0x8a9e, 0x8a9f, 0xb5da, 0x8aa0, 0x8aa1, 0x8aa2, - 0xb5db, 0x8aa3, 0x8aa4, 0x8aa5, 0xb5dc, 0x8aa6, 0x8aa7, 0x8aa8, - 0x8aa9, 0x8aaa, 0x8aab, 0x8aac, 0x8aad, 0xb5dd, 0x8aae, 0xb5de, - 0x8aaf, 0xb5df, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4, 0x8ab5, - 0xb5e0, 0x8ab6, 0x8ab7, 0x8ab8, 0xb5e1, 0x8ab9, 0x8aba, 0x8abb, - 0xb5e2, 0x8abc, 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, - 0xb5e3, 0x8ac3, 0x8ac4, 0x8ac5, 0x8ac6, 0xb5e4, 0x8ac7, 0x8ac8, - 0x8ac9, 0x8aca, 0x8acb, 0x8acc, 0xb5e5, 0xb5e6, 0x8acd, 0x8ace, - 0xb5e7, 0x8acf, 0x8ad0, 0xb5e8, 0xb5e9, 0x8ad1, 0xb5ea, 0x8ad2, - 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad6, 0xb5eb, 0xb5ec, 0x8ad7, 0xb5ed, - 0x8ad8, 0xb5ee, 0x8ad9, 0x8ada, 0x8adb, 0x8adc, 0x8add, 0x8ade, - 0xb5ef, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3, 0x8ae4, 0x8ae5, - /* 0xb500 .. 0xb5ff */ - 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb, 0x8aec, 0x8aed, - 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, 0x8af4, 0x8af5, - 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0xb5f0, 0xb5f1, 0x8afa, 0x8afb, - 0xb5f2, 0x8afc, 0x8afd, 0xb5f3, 0xb5f4, 0x8afe, 0x8b41, 0x8b42, - 0x8b43, 0x8b44, 0x8b45, 0x8b46, 0xb5f5, 0xb5f6, 0x8b47, 0xb5f7, - 0xb5f8, 0xb5f9, 0xb5fa, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, - 0xb5fb, 0xb5fc, 0x8b4d, 0x8b4e, 0xb5fd, 0x8b4f, 0x8b50, 0x8b51, - 0xb5fe, 0x8b52, 0x8b53, 0x8b54, 0x8b55, 0x8b56, 0x8b57, 0x8b58, - 0xb6a1, 0xb6a2, 0x8b59, 0xb6a3, 0xb6a4, 0xb6a5, 0x8b5a, 0x8b61, - 0x8b62, 0x8b63, 0x8b64, 0xb6a6, 0xb6a7, 0xb6a8, 0x8b65, 0x8b66, - 0xb6a9, 0x8b67, 0x8b68, 0x8b69, 0xb6aa, 0x8b6a, 0x8b6b, 0x8b6c, - 0x8b6d, 0x8b6e, 0x8b6f, 0x8b70, 0xb6ab, 0xb6ac, 0x8b71, 0xb6ad, - 0xb6ae, 0xb6af, 0x8b72, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, - 0x8b78, 0x8b79, 0x8b7a, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, - 0x8b86, 0x8b87, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, - 0x8b8e, 0x8b8f, 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, - 0x8b96, 0x8b97, 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, - 0x8b9e, 0x8b9f, 0x8ba0, 0x8ba1, 0x8ba2, 0x8ba3, 0x8ba4, 0x8ba5, - 0x8ba6, 0x8ba7, 0x8ba8, 0x8ba9, 0x8baa, 0x8bab, 0x8bac, 0x8bad, - 0x8bae, 0x8baf, 0x8bb0, 0x8bb1, 0x8bb2, 0x8bb3, 0x8bb4, 0x8bb5, - 0xb6b0, 0xb6b1, 0x8bb6, 0x8bb7, 0xb6b2, 0x8bb8, 0x8bb9, 0x8bba, - 0xb6b3, 0x8bbb, 0xb6b4, 0xb6b5, 0x8bbc, 0x8bbd, 0x8bbe, 0x8bbf, - 0xb6b6, 0xb6b7, 0x8bc0, 0xb6b8, 0xb6b9, 0xb6ba, 0x8bc1, 0x8bc2, - 0x8bc3, 0x8bc4, 0x8bc5, 0xb6bb, 0xb6bc, 0xb6bd, 0x8bc6, 0x8bc7, - 0xb6be, 0x8bc8, 0x8bc9, 0x8bca, 0xb6bf, 0x8bcb, 0x8bcc, 0x8bcd, - 0x8bce, 0x8bcf, 0x8bd0, 0x8bd1, 0xb6c0, 0xb6c1, 0x8bd2, 0xb6c2, - 0xb6c3, 0xb6c4, 0x8bd3, 0x8bd4, 0x8bd5, 0x8bd6, 0x8bd7, 0x8bd8, - 0xb6c5, 0x8bd9, 0x8bda, 0x8bdb, 0x8bdc, 0x8bdd, 0x8bde, 0x8bdf, - 0x8be0, 0x8be1, 0x8be2, 0x8be3, 0x8be4, 0x8be5, 0x8be6, 0x8be7, - 0x8be8, 0x8be9, 0x8bea, 0x8beb, 0xb6c6, 0x8bec, 0x8bed, 0x8bee, - 0x8bef, 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3, 0x8bf4, 0x8bf5, 0x8bf6, - 0x8bf7, 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb, 0x8bfc, 0x8bfd, 0x8bfe, - /* 0xb600 .. 0xb6ff */ - 0x8c41, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c46, 0x8c47, 0x8c48, - 0x8c49, 0x8c4a, 0x8c4b, 0x8c4c, 0x8c4d, 0x8c4e, 0x8c4f, 0x8c50, - 0xb6c7, 0xb6c8, 0x8c51, 0x8c52, 0xb6c9, 0x8c53, 0x8c54, 0x8c55, - 0xb6ca, 0x8c56, 0x8c57, 0x8c58, 0x8c59, 0x8c5a, 0x8c61, 0x8c62, - 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67, 0xb6cb, 0x8c68, 0x8c69, - 0x8c6a, 0x8c6b, 0x8c6c, 0x8c6d, 0xb6cc, 0x8c6e, 0x8c6f, 0x8c70, - 0x8c71, 0x8c72, 0x8c73, 0x8c74, 0xb6cd, 0x8c75, 0x8c76, 0x8c77, - 0x8c78, 0x8c79, 0x8c7a, 0x8c81, 0x8c82, 0x8c83, 0x8c84, 0x8c85, - 0x8c86, 0x8c87, 0x8c88, 0x8c89, 0x8c8a, 0x8c8b, 0x8c8c, 0x8c8d, - 0xb6ce, 0x8c8e, 0x8c8f, 0x8c90, 0x8c91, 0x8c92, 0x8c93, 0x8c94, - 0x8c95, 0x8c96, 0x8c97, 0x8c98, 0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, - 0x8c9d, 0x8c9e, 0x8c9f, 0x8ca0, 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, - 0x8ca5, 0x8ca6, 0x8ca7, 0x8ca8, 0xb6cf, 0x8ca9, 0x8caa, 0x8cab, - 0xb6d0, 0x8cac, 0x8cad, 0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0x8cb2, - 0x8cb3, 0x8cb4, 0x8cb5, 0x8cb6, 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, - 0x8cbb, 0x8cbc, 0x8cbd, 0x8cbe, 0x8cbf, 0x8cc0, 0x8cc1, 0x8cc2, - 0x8cc3, 0x8cc4, 0x8cc5, 0x8cc6, 0x8cc7, 0x8cc8, 0x8cc9, 0x8cca, - 0x8ccb, 0x8ccc, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0, 0x8cd1, 0x8cd2, - 0x8cd3, 0x8cd4, 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, - 0x8cdb, 0x8cdc, 0x8cdd, 0x8cde, 0xb6d1, 0xb6d2, 0x8cdf, 0x8ce0, - 0xb6d3, 0x8ce1, 0x8ce2, 0x8ce3, 0xb6d4, 0x8ce4, 0x8ce5, 0x8ce6, - 0x8ce7, 0x8ce8, 0x8ce9, 0xb6d5, 0xb6d6, 0x8cea, 0x8ceb, 0x8cec, - 0x8ced, 0xb6d7, 0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf2, 0x8cf3, - 0x8cf4, 0x8cf5, 0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, 0x8cfb, - 0x8cfc, 0x8cfd, 0x8cfe, 0x8d41, 0x8d42, 0x8d43, 0x8d44, 0x8d45, - 0x8d46, 0x8d47, 0x8d48, 0x8d49, 0x8d4a, 0x8d4b, 0x8d4c, 0x8d4d, - 0x8d4e, 0x8d4f, 0x8d50, 0x8d51, 0xb6d8, 0x8d52, 0x8d53, 0x8d54, - 0x8d55, 0x8d56, 0x8d57, 0x8d58, 0x8d59, 0x8d5a, 0x8d61, 0x8d62, - 0x8d63, 0x8d64, 0x8d65, 0x8d66, 0x8d67, 0x8d68, 0x8d69, 0x8d6a, - 0x8d6b, 0x8d6c, 0x8d6d, 0x8d6e, 0x8d6f, 0x8d70, 0x8d71, 0x8d72, - 0xb6d9, 0x8d73, 0x8d74, 0x8d75, 0xb6da, 0x8d76, 0x8d77, 0x8d78, - 0xb6db, 0x8d79, 0x8d7a, 0x8d81, 0x8d82, 0x8d83, 0x8d84, 0x8d85, - /* 0xb700 .. 0xb7ff */ - 0xb6dc, 0xb6dd, 0x8d86, 0x8d87, 0x8d88, 0xb6de, 0x8d89, 0x8d8a, - 0x8d8b, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, 0x8d90, 0x8d91, 0x8d92, - 0x8d93, 0x8d94, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, 0x8d9a, - 0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8d9f, 0x8da0, 0x8da1, 0x8da2, - 0x8da3, 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, - 0xb6df, 0xb6e0, 0x8dab, 0x8dac, 0xb6e1, 0x8dad, 0x8dae, 0xb6e2, - 0xb6e3, 0x8daf, 0x8db0, 0x8db1, 0x8db2, 0x8db3, 0x8db4, 0x8db5, - 0xb6e4, 0xb6e5, 0x8db6, 0xb6e6, 0x8db7, 0x8db8, 0x8db9, 0x8dba, - 0x8dbb, 0x8dbc, 0x8dbd, 0x8dbe, 0xb6e7, 0x8dbf, 0x8dc0, 0x8dc1, - 0xb6e8, 0x8dc2, 0x8dc3, 0x8dc4, 0xb6e9, 0x8dc5, 0x8dc6, 0x8dc7, - 0x8dc8, 0x8dc9, 0x8dca, 0x8dcb, 0xb6ea, 0xb6eb, 0x8dcc, 0x8dcd, - 0x8dce, 0x8dcf, 0x8dd0, 0x8dd1, 0x8dd2, 0x8dd3, 0x8dd4, 0x8dd5, - 0xb6ec, 0x8dd6, 0x8dd7, 0x8dd8, 0xb6ed, 0x8dd9, 0x8dda, 0x8ddb, - 0xb6ee, 0x8ddc, 0x8ddd, 0x8dde, 0x8ddf, 0x8de0, 0x8de1, 0x8de2, - 0xb6ef, 0xb6f0, 0x8de3, 0xb6f1, 0x8de4, 0xb6f2, 0x8de5, 0x8de6, - 0x8de7, 0x8de8, 0x8de9, 0x8dea, 0xb6f3, 0xb6f4, 0x8deb, 0x8dec, - 0xb6f5, 0x8ded, 0x8dee, 0x8def, 0xb6f6, 0x8df0, 0x8df1, 0x8df2, - 0x8df3, 0x8df4, 0x8df5, 0x8df6, 0xb6f7, 0xb6f8, 0x8df7, 0xb6f9, - 0xb6fa, 0xb6fb, 0xb6fc, 0x8df8, 0x8df9, 0x8dfa, 0xb6fd, 0xb6fe, - 0xb7a1, 0xb7a2, 0x8dfb, 0x8dfc, 0xb7a3, 0x8dfd, 0x8dfe, 0x8e41, - 0xb7a4, 0x8e42, 0x8e43, 0x8e44, 0x8e45, 0x8e46, 0x8e47, 0x8e48, - 0xb7a5, 0xb7a6, 0x8e49, 0xb7a7, 0xb7a8, 0xb7a9, 0x8e4a, 0x8e4b, - 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0xb7aa, 0xb7ab, 0x8e50, 0x8e51, - 0xb7ac, 0x8e52, 0x8e53, 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, - 0x8e59, 0x8e5a, 0x8e61, 0x8e62, 0x8e63, 0x8e64, 0x8e65, 0xb7ad, - 0x8e66, 0xb7ae, 0x8e67, 0x8e68, 0x8e69, 0x8e6a, 0x8e6b, 0x8e6c, - 0x8e6d, 0x8e6e, 0x8e6f, 0x8e70, 0x8e71, 0x8e72, 0x8e73, 0x8e74, - 0x8e75, 0x8e76, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e81, 0x8e82, - 0x8e83, 0x8e84, 0x8e85, 0x8e86, 0x8e87, 0x8e88, 0x8e89, 0x8e8a, - 0x8e8b, 0x8e8c, 0x8e8d, 0x8e8e, 0xb7af, 0xb7b0, 0x8e8f, 0x8e90, - 0xb7b1, 0x8e91, 0x8e92, 0x8e93, 0xb7b2, 0x8e94, 0x8e95, 0x8e96, - 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0xb7b3, 0xb7b4, 0x8e9b, 0xb7b5, - /* 0xb800 .. 0xb8ff */ - 0xb7b6, 0xb7b7, 0x8e9c, 0x8e9d, 0x8e9e, 0x8e9f, 0x8ea0, 0xb7b8, - 0xb7b9, 0xb7ba, 0x8ea1, 0x8ea2, 0xb7bb, 0x8ea3, 0x8ea4, 0x8ea5, - 0xb7bc, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8eab, 0x8eac, - 0xb7bd, 0xb7be, 0x8ead, 0xb7bf, 0x8eae, 0xb7c0, 0x8eaf, 0x8eb0, - 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4, 0xb7c1, 0xb7c2, 0x8eb5, 0x8eb6, - 0xb7c3, 0x8eb7, 0x8eb8, 0x8eb9, 0xb7c4, 0x8eba, 0x8ebb, 0x8ebc, - 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0xb7c5, 0xb7c6, 0x8ec1, 0xb7c7, - 0xb7c8, 0xb7c9, 0x8ec2, 0x8ec3, 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, - 0xb7ca, 0x8ec8, 0x8ec9, 0x8eca, 0xb7cb, 0x8ecb, 0x8ecc, 0x8ecd, - 0x8ece, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4, 0x8ed5, - 0x8ed6, 0xb7cc, 0x8ed7, 0xb7cd, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, - 0x8edc, 0x8edd, 0x8ede, 0x8edf, 0xb7ce, 0xb7cf, 0x8ee0, 0x8ee1, - 0xb7d0, 0x8ee2, 0x8ee3, 0x8ee4, 0xb7d1, 0x8ee5, 0x8ee6, 0x8ee7, - 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0xb7d2, 0xb7d3, 0x8eec, 0xb7d4, - 0x8eed, 0xb7d5, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, - 0xb7d6, 0x8ef4, 0x8ef5, 0x8ef6, 0xb7d7, 0x8ef7, 0x8ef8, 0x8ef9, - 0x8efa, 0x8efb, 0x8efc, 0x8efd, 0x8efe, 0x8f41, 0x8f42, 0x8f43, - 0x8f44, 0x8f45, 0x8f46, 0x8f47, 0x8f48, 0xb7d8, 0x8f49, 0x8f4a, - 0x8f4b, 0x8f4c, 0x8f4d, 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, - 0x8f53, 0x8f54, 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, - 0x8f61, 0x8f62, 0x8f63, 0x8f64, 0x8f65, 0x8f66, 0x8f67, 0x8f68, - 0xb7d9, 0x8f69, 0x8f6a, 0x8f6b, 0x8f6c, 0x8f6d, 0x8f6e, 0x8f6f, - 0xb7da, 0x8f70, 0x8f71, 0x8f72, 0xb7db, 0x8f73, 0x8f74, 0x8f75, - 0xb7dc, 0x8f76, 0x8f77, 0x8f78, 0x8f79, 0x8f7a, 0x8f81, 0x8f82, - 0xb7dd, 0xb7de, 0x8f83, 0xb7df, 0x8f84, 0xb7e0, 0x8f85, 0x8f86, - 0x8f87, 0x8f88, 0x8f89, 0x8f8a, 0xb7e1, 0x8f8b, 0x8f8c, 0x8f8d, - 0xb7e2, 0x8f8e, 0x8f8f, 0x8f90, 0xb7e3, 0x8f91, 0x8f92, 0x8f93, - 0x8f94, 0x8f95, 0x8f96, 0x8f97, 0x8f98, 0xb7e4, 0x8f99, 0xb7e5, - 0x8f9a, 0xb7e6, 0x8f9b, 0x8f9c, 0x8f9d, 0x8f9e, 0x8f9f, 0x8fa0, - 0xb7e7, 0xb7e8, 0x8fa1, 0x8fa2, 0xb7e9, 0x8fa3, 0x8fa4, 0x8fa5, - 0xb7ea, 0x8fa6, 0x8fa7, 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, 0x8fac, - 0xb7eb, 0xb7ec, 0x8fad, 0xb7ed, 0x8fae, 0xb7ee, 0x8faf, 0x8fb0, - /* 0xb900 .. 0xb9ff */ - 0x8fb1, 0x8fb2, 0x8fb3, 0x8fb4, 0xb7ef, 0x8fb5, 0x8fb6, 0x8fb7, - 0x8fb8, 0x8fb9, 0x8fba, 0x8fbb, 0x8fbc, 0x8fbd, 0x8fbe, 0x8fbf, - 0x8fc0, 0x8fc1, 0x8fc2, 0x8fc3, 0x8fc4, 0x8fc5, 0x8fc6, 0x8fc7, - 0xb7f0, 0x8fc8, 0x8fc9, 0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fce, - 0xb7f1, 0x8fcf, 0x8fd0, 0x8fd1, 0x8fd2, 0x8fd3, 0x8fd4, 0x8fd5, - 0x8fd6, 0x8fd7, 0x8fd8, 0x8fd9, 0x8fda, 0x8fdb, 0x8fdc, 0x8fdd, - 0x8fde, 0x8fdf, 0x8fe0, 0x8fe1, 0x8fe2, 0x8fe3, 0x8fe4, 0x8fe5, - 0x8fe6, 0x8fe7, 0x8fe8, 0x8fe9, 0xb7f2, 0xb7f3, 0x8fea, 0x8feb, - 0xb7f4, 0x8fec, 0x8fed, 0x8fee, 0xb7f5, 0x8fef, 0x8ff0, 0x8ff1, - 0x8ff2, 0x8ff3, 0x8ff4, 0x8ff5, 0xb7f6, 0x8ff6, 0x8ff7, 0xb7f7, - 0x8ff8, 0xb7f8, 0x8ff9, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffd, 0x8ffe, - 0xb7f9, 0xb7fa, 0x9041, 0x9042, 0xb7fb, 0x9043, 0x9044, 0x9045, - 0xb7fc, 0x9046, 0x9047, 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, - 0xb7fd, 0xb7fe, 0x904d, 0xb8a1, 0x904e, 0xb8a2, 0x904f, 0x9050, - 0x9051, 0x9052, 0x9053, 0x9054, 0xb8a3, 0xb8a4, 0x9055, 0x9056, - 0xb8a5, 0x9057, 0x9058, 0x9059, 0xb8a6, 0x905a, 0x9061, 0x9062, - 0x9063, 0x9064, 0x9065, 0x9066, 0xb8a7, 0xb8a8, 0x9067, 0xb8a9, - 0x9068, 0xb8aa, 0xb8ab, 0x9069, 0x906a, 0xb8ac, 0xb8ad, 0x906b, - 0x906c, 0x906d, 0x906e, 0x906f, 0x9070, 0x9071, 0x9072, 0x9073, - 0x9074, 0x9075, 0x9076, 0x9077, 0x9078, 0x9079, 0x907a, 0x9081, - 0x9082, 0x9083, 0x9084, 0x9085, 0x9086, 0x9087, 0x9088, 0x9089, - 0x908a, 0x908b, 0x908c, 0x908d, 0xb8ae, 0xb8af, 0x908e, 0x908f, - 0xb8b0, 0x9090, 0x9091, 0x9092, 0xb8b1, 0x9093, 0x9094, 0x9095, - 0x9096, 0x9097, 0x9098, 0x9099, 0xb8b2, 0xb8b3, 0x909a, 0xb8b4, - 0x909b, 0xb8b5, 0x909c, 0x909d, 0x909e, 0x909f, 0x90a0, 0x90a1, - 0xb8b6, 0xb8b7, 0x90a2, 0x90a3, 0xb8b8, 0x90a4, 0xb8b9, 0xb8ba, - 0xb8bb, 0xb8bc, 0xb8bd, 0x90a5, 0x90a6, 0x90a7, 0x90a8, 0x90a9, - 0xb8be, 0xb8bf, 0x90aa, 0xb8c0, 0x90ab, 0xb8c1, 0xb8c2, 0x90ac, - 0x90ad, 0xb8c3, 0x90ae, 0xb8c4, 0xb8c5, 0xb8c6, 0x90af, 0x90b0, - 0xb8c7, 0x90b1, 0x90b2, 0x90b3, 0xb8c8, 0x90b4, 0x90b5, 0x90b6, - 0x90b7, 0x90b8, 0x90b9, 0x90ba, 0xb8c9, 0xb8ca, 0x90bb, 0xb8cb, - 0xb8cc, 0xb8cd, 0xb8ce, 0x90bc, 0x90bd, 0x90be, 0x90bf, 0x90c0, - /* 0xba00 .. 0xbaff */ - 0xb8cf, 0xb8d0, 0x90c1, 0x90c2, 0x90c3, 0x90c4, 0x90c5, 0x90c6, - 0xb8d1, 0x90c7, 0x90c8, 0x90c9, 0x90ca, 0x90cb, 0x90cc, 0x90cd, - 0x90ce, 0x90cf, 0x90d0, 0x90d1, 0x90d2, 0xb8d2, 0x90d3, 0x90d4, - 0x90d5, 0x90d6, 0x90d7, 0x90d8, 0x90d9, 0x90da, 0x90db, 0x90dc, - 0x90dd, 0x90de, 0x90df, 0x90e0, 0x90e1, 0x90e2, 0x90e3, 0x90e4, - 0x90e5, 0x90e6, 0x90e7, 0x90e8, 0x90e9, 0x90ea, 0x90eb, 0x90ec, - 0x90ed, 0x90ee, 0x90ef, 0x90f0, 0x90f1, 0x90f2, 0x90f3, 0x90f4, - 0xb8d3, 0xb8d4, 0x90f5, 0x90f6, 0xb8d5, 0x90f7, 0x90f8, 0x90f9, - 0xb8d6, 0x90fa, 0xb8d7, 0x90fb, 0x90fc, 0x90fd, 0x90fe, 0x9141, - 0xb8d8, 0xb8d9, 0x9142, 0xb8da, 0x9143, 0xb8db, 0xb8dc, 0x9144, - 0x9145, 0x9146, 0x9147, 0xb8dd, 0xb8de, 0xb8df, 0x9148, 0x9149, - 0xb8e0, 0x914a, 0x914b, 0x914c, 0xb8e1, 0x914d, 0x914e, 0x914f, - 0x9150, 0x9151, 0x9152, 0x9153, 0xb8e2, 0xb8e3, 0x9154, 0xb8e4, - 0xb8e5, 0xb8e6, 0x9155, 0x9156, 0x9157, 0x9158, 0x9159, 0x915a, - 0xb8e7, 0xb8e8, 0x9161, 0x9162, 0xb8e9, 0x9163, 0x9164, 0x9165, - 0xb8ea, 0x9166, 0x9167, 0x9168, 0x9169, 0x916a, 0x916b, 0x916c, - 0x916d, 0x916e, 0x916f, 0xb8eb, 0xb8ec, 0xb8ed, 0x9170, 0xb8ee, - 0x9171, 0x9172, 0x9173, 0x9174, 0xb8ef, 0x9175, 0x9176, 0x9177, - 0x9178, 0x9179, 0x917a, 0x9181, 0x9182, 0x9183, 0x9184, 0x9185, - 0x9186, 0x9187, 0x9188, 0x9189, 0x918a, 0x918b, 0x918c, 0x918d, - 0x918e, 0x918f, 0x9190, 0x9191, 0x9192, 0x9193, 0x9194, 0x9195, - 0xb8f0, 0xb8f1, 0x9196, 0xb8f2, 0xb8f3, 0x9197, 0x9198, 0x9199, - 0xb8f4, 0x919a, 0xb8f5, 0x919b, 0x919c, 0x919d, 0x919e, 0x919f, - 0xb8f6, 0xb8f7, 0x91a0, 0xb8f8, 0x91a1, 0xb8f9, 0x91a2, 0x91a3, - 0x91a4, 0x91a5, 0x91a6, 0x91a7, 0xb8fa, 0x91a8, 0x91a9, 0x91aa, - 0xb8fb, 0x91ab, 0x91ac, 0x91ad, 0x91ae, 0x91af, 0x91b0, 0x91b1, - 0x91b2, 0x91b3, 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, - 0xb8fc, 0xb8fd, 0x91ba, 0x91bb, 0x91bc, 0x91bd, 0x91be, 0x91bf, - 0x91c0, 0x91c1, 0x91c2, 0x91c3, 0x91c4, 0x91c5, 0x91c6, 0x91c7, - 0x91c8, 0x91c9, 0x91ca, 0x91cb, 0x91cc, 0x91cd, 0x91ce, 0x91cf, - 0x91d0, 0x91d1, 0x91d2, 0x91d3, 0x91d4, 0x91d5, 0x91d6, 0x91d7, - 0x91d8, 0x91d9, 0x91da, 0x91db, 0xb8fe, 0x91dc, 0x91dd, 0x91de, - /* 0xbb00 .. 0xbbff */ - 0xb9a1, 0x91df, 0x91e0, 0x91e1, 0xb9a2, 0x91e2, 0x91e3, 0x91e4, - 0x91e5, 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0xb9a3, 0x91ea, 0xb9a4, - 0x91eb, 0xb9a5, 0x91ec, 0x91ed, 0x91ee, 0x91ef, 0x91f0, 0x91f1, - 0xb9a6, 0x91f2, 0x91f3, 0x91f4, 0xb9a7, 0x91f5, 0x91f6, 0x91f7, - 0xb9a8, 0x91f8, 0x91f9, 0x91fa, 0x91fb, 0x91fc, 0x91fd, 0x91fe, - 0x9241, 0xb9a9, 0x9242, 0xb9aa, 0x9243, 0x9244, 0x9245, 0x9246, - 0x9247, 0x9248, 0x9249, 0x924a, 0xb9ab, 0xb9ac, 0xb9ad, 0x924b, - 0xb9ae, 0x924c, 0x924d, 0xb9af, 0xb9b0, 0xb9b1, 0xb9b2, 0x924e, - 0x924f, 0x9250, 0x9251, 0x9252, 0xb9b3, 0xb9b4, 0x9253, 0xb9b5, - 0x9254, 0xb9b6, 0x9255, 0x9256, 0x9257, 0xb9b7, 0x9258, 0xb9b8, - 0xb9b9, 0x9259, 0x925a, 0x9261, 0xb9ba, 0x9262, 0x9263, 0x9264, - 0xb9bb, 0x9265, 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b, - 0x926c, 0xb9bc, 0x926d, 0xb9bd, 0x926e, 0x926f, 0x9270, 0x9271, - 0x9272, 0x9273, 0x9274, 0x9275, 0xb9be, 0x9276, 0x9277, 0x9278, - 0x9279, 0x927a, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0x9286, - 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, 0x928d, 0x928e, - 0x928f, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, - 0xb9bf, 0x9297, 0x9298, 0x9299, 0xb9c0, 0x929a, 0x929b, 0x929c, - 0xb9c1, 0x929d, 0x929e, 0x929f, 0x92a0, 0x92a1, 0x92a2, 0x92a3, - 0x92a4, 0x92a5, 0x92a6, 0x92a7, 0x92a8, 0x92a9, 0x92aa, 0x92ab, - 0x92ac, 0x92ad, 0x92ae, 0x92af, 0xb9c2, 0x92b0, 0x92b1, 0x92b2, - 0xb9c3, 0x92b3, 0x92b4, 0x92b5, 0xb9c4, 0x92b6, 0x92b7, 0x92b8, - 0x92b9, 0x92ba, 0x92bb, 0x92bc, 0xb9c5, 0x92bd, 0x92be, 0xb9c6, - 0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c4, 0x92c5, 0x92c6, - 0xb9c7, 0x92c7, 0x92c8, 0x92c9, 0xb9c8, 0x92ca, 0x92cb, 0x92cc, - 0xb9c9, 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, 0x92d2, 0x92d3, - 0xb9ca, 0x92d4, 0x92d5, 0xb9cb, 0x92d6, 0x92d7, 0x92d8, 0x92d9, - 0x92da, 0x92db, 0x92dc, 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1, - 0x92e2, 0x92e3, 0x92e4, 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x92e9, - 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1, - 0x92f2, 0x92f3, 0x92f4, 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, - 0xb9cc, 0xb9cd, 0x92fa, 0x92fb, 0xb9ce, 0x92fc, 0x92fd, 0xb9cf, - /* 0xbc00 .. 0xbcff */ - 0xb9d0, 0x92fe, 0xb9d1, 0x9341, 0x9342, 0x9343, 0x9344, 0x9345, - 0xb9d2, 0xb9d3, 0x9346, 0xb9d4, 0xb9d5, 0xb9d6, 0x9347, 0xb9d7, - 0x9348, 0xb9d8, 0x9349, 0x934a, 0xb9d9, 0xb9da, 0xb9db, 0xb9dc, - 0xb9dd, 0x934b, 0x934c, 0xb9de, 0xb9df, 0xb9e0, 0xb9e1, 0xb9e2, - 0x934d, 0x934e, 0x934f, 0x9350, 0xb9e3, 0xb9e4, 0x9351, 0xb9e5, - 0x9352, 0xb9e6, 0x9353, 0x9354, 0x9355, 0xb9e7, 0x9356, 0x9357, - 0xb9e8, 0xb9e9, 0x9358, 0x9359, 0xb9ea, 0x935a, 0x9361, 0x9362, - 0xb9eb, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, - 0xb9ec, 0xb9ed, 0x936a, 0xb9ee, 0xb9ef, 0xb9f0, 0x936b, 0x936c, - 0x936d, 0xb9f1, 0x936e, 0x936f, 0xb9f2, 0xb9f3, 0x9370, 0x9371, - 0xb9f4, 0x9372, 0x9373, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, - 0x9379, 0x937a, 0x9381, 0x9382, 0x9383, 0xb9f5, 0x9384, 0x9385, - 0x9386, 0x9387, 0x9388, 0x9389, 0x938a, 0x938b, 0x938c, 0x938d, - 0x938e, 0x938f, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, 0x9395, - 0x9396, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, 0x939d, - 0x939e, 0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4, 0x93a5, - 0x93a6, 0x93a7, 0x93a8, 0x93a9, 0xb9f6, 0xb9f7, 0x93aa, 0x93ab, - 0xb9f8, 0x93ac, 0x93ad, 0xb9f9, 0xb9fa, 0x93ae, 0xb9fb, 0x93af, - 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0xb9fc, 0xb9fd, 0x93b4, 0xb9fe, - 0x93b5, 0xbaa1, 0xbaa2, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, - 0xbaa3, 0xbaa4, 0x93bb, 0x93bc, 0xbaa5, 0x93bd, 0x93be, 0xbaa6, - 0xbaa7, 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4, 0x93c5, - 0xbaa8, 0xbaa9, 0x93c6, 0xbaaa, 0xbaab, 0xbaac, 0x93c7, 0x93c8, - 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0xbaad, 0xbaae, 0x93cd, 0x93ce, - 0xbaaf, 0x93cf, 0x93d0, 0x93d1, 0xbab0, 0x93d2, 0x93d3, 0x93d4, - 0x93d5, 0x93d6, 0x93d7, 0x93d8, 0x93d9, 0xbab1, 0x93da, 0xbab2, - 0xbab3, 0xbab4, 0x93db, 0x93dc, 0x93dd, 0xbab5, 0x93de, 0x93df, - 0xbab6, 0x93e0, 0x93e1, 0x93e2, 0xbab7, 0x93e3, 0x93e4, 0x93e5, - 0x93e6, 0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, - 0x93ee, 0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, - 0x93f6, 0x93f7, 0x93f8, 0x93f9, 0xbab8, 0xbab9, 0xbaba, 0x93fa, - 0xbabb, 0x93fb, 0x93fc, 0x93fd, 0xbabc, 0x93fe, 0x9441, 0x9442, - /* 0xbd00 .. 0xbdff */ - 0x9443, 0x9444, 0x9445, 0x9446, 0xbabd, 0xbabe, 0x9447, 0xbabf, - 0x9448, 0xbac0, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, - 0xbac1, 0x944f, 0x9450, 0x9451, 0xbac2, 0x9452, 0x9453, 0x9454, - 0x9455, 0x9456, 0x9457, 0x9458, 0x9459, 0x945a, 0x9461, 0x9462, - 0x9463, 0x9464, 0x9465, 0x9466, 0xbac3, 0x9467, 0x9468, 0x9469, - 0x946a, 0x946b, 0x946c, 0x946d, 0xbac4, 0x946e, 0x946f, 0x9470, - 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, 0x9478, - 0x9479, 0x947a, 0x9481, 0x9482, 0x9483, 0x9484, 0x9485, 0x9486, - 0xbac5, 0x9487, 0x9488, 0x9489, 0x948a, 0x948b, 0x948c, 0x948d, - 0xbac6, 0xbac7, 0x948e, 0x948f, 0xbac8, 0x9490, 0x9491, 0x9492, - 0xbac9, 0x9493, 0x9494, 0x9495, 0x9496, 0x9497, 0x9498, 0x9499, - 0xbaca, 0xbacb, 0x949a, 0x949b, 0x949c, 0x949d, 0x949e, 0x949f, - 0x94a0, 0x94a1, 0x94a2, 0x94a3, 0xbacc, 0x94a4, 0x94a5, 0x94a6, - 0xbacd, 0x94a7, 0x94a8, 0x94a9, 0x94aa, 0x94ab, 0x94ac, 0x94ad, - 0x94ae, 0x94af, 0x94b0, 0x94b1, 0x94b2, 0x94b3, 0x94b4, 0x94b5, - 0x94b6, 0x94b7, 0x94b8, 0x94b9, 0x94ba, 0x94bb, 0x94bc, 0x94bd, - 0xbace, 0xbacf, 0x94be, 0x94bf, 0xbad0, 0x94c0, 0x94c1, 0xbad1, - 0xbad2, 0xbad3, 0xbad4, 0x94c2, 0x94c3, 0x94c4, 0x94c5, 0x94c6, - 0xbad5, 0xbad6, 0x94c7, 0xbad7, 0x94c8, 0xbad8, 0x94c9, 0x94ca, - 0x94cb, 0xbad9, 0xbada, 0x94cc, 0xbadb, 0x94cd, 0x94ce, 0x94cf, - 0x94d0, 0x94d1, 0x94d2, 0x94d3, 0xbadc, 0x94d4, 0x94d5, 0x94d6, - 0x94d7, 0x94d8, 0x94d9, 0x94da, 0x94db, 0x94dc, 0x94dd, 0x94de, - 0xbadd, 0x94df, 0x94e0, 0x94e1, 0x94e2, 0x94e3, 0x94e4, 0x94e5, - 0xbade, 0x94e6, 0x94e7, 0x94e8, 0x94e9, 0x94ea, 0x94eb, 0x94ec, - 0x94ed, 0x94ee, 0x94ef, 0x94f0, 0x94f1, 0x94f2, 0x94f3, 0x94f4, - 0x94f5, 0x94f6, 0x94f7, 0x94f8, 0x94f9, 0x94fa, 0x94fb, 0x94fc, - 0x94fd, 0x94fe, 0x9541, 0x9542, 0xbadf, 0xbae0, 0x9543, 0x9544, - 0xbae1, 0x9545, 0x9546, 0x9547, 0xbae2, 0x9548, 0x9549, 0x954a, - 0x954b, 0x954c, 0x954d, 0x954e, 0x954f, 0x9550, 0x9551, 0x9552, - 0x9553, 0xbae3, 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559, - 0xbae4, 0x955a, 0x9561, 0x9562, 0xbae5, 0x9563, 0x9564, 0x9565, - 0xbae6, 0x9566, 0x9567, 0x9568, 0x9569, 0x956a, 0x956b, 0x956c, - /* 0xbe00 .. 0xbeff */ - 0xbae7, 0x956d, 0x956e, 0xbae8, 0x956f, 0xbae9, 0x9570, 0x9571, - 0x9572, 0x9573, 0x9574, 0x9575, 0xbaea, 0xbaeb, 0x9576, 0x9577, - 0xbaec, 0x9578, 0x9579, 0x957a, 0xbaed, 0x9581, 0x9582, 0x9583, - 0x9584, 0x9585, 0x9586, 0x9587, 0xbaee, 0xbaef, 0x9588, 0xbaf0, - 0x9589, 0x958a, 0x958b, 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, - 0x9591, 0x9592, 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, - 0x9599, 0x959a, 0x959b, 0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, - 0x95a1, 0x95a2, 0x95a3, 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, - 0x95a9, 0x95aa, 0x95ab, 0x95ac, 0xbaf1, 0xbaf2, 0x95ad, 0x95ae, - 0xbaf3, 0x95af, 0x95b0, 0x95b1, 0xbaf4, 0x95b2, 0xbaf5, 0x95b3, - 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0xbaf6, 0xbaf7, 0x95b8, 0xbaf8, - 0x95b9, 0xbaf9, 0xbafa, 0xbafb, 0x95ba, 0x95bb, 0x95bc, 0x95bd, - 0xbafc, 0xbafd, 0x95be, 0x95bf, 0xbafe, 0x95c0, 0x95c1, 0x95c2, - 0xbba1, 0x95c3, 0xbba2, 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, - 0xbba3, 0xbba4, 0x95c9, 0xbba5, 0xbba6, 0xbba7, 0x95ca, 0x95cb, - 0x95cc, 0x95cd, 0x95ce, 0xbba8, 0xbba9, 0xbbaa, 0x95cf, 0x95d0, - 0xbbab, 0x95d1, 0x95d2, 0x95d3, 0xbbac, 0x95d4, 0x95d5, 0x95d6, - 0x95d7, 0x95d8, 0x95d9, 0x95da, 0xbbad, 0xbbae, 0x95db, 0xbbaf, - 0xbbb0, 0xbbb1, 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, - 0xbbb2, 0xbbb3, 0x95e2, 0x95e3, 0x95e4, 0x95e5, 0x95e6, 0x95e7, - 0x95e8, 0x95e9, 0x95ea, 0x95eb, 0x95ec, 0x95ed, 0x95ee, 0x95ef, - 0xbbb4, 0x95f0, 0x95f1, 0x95f2, 0x95f3, 0x95f4, 0x95f5, 0x95f6, - 0x95f7, 0x95f8, 0x95f9, 0x95fa, 0x95fb, 0x95fc, 0x95fd, 0x95fe, - 0x9641, 0x9642, 0x9643, 0x9644, 0x9645, 0x9646, 0x9647, 0x9648, - 0x9649, 0x964a, 0x964b, 0x964c, 0x964d, 0x964e, 0x964f, 0x9650, - 0x9651, 0x9652, 0x9653, 0x9654, 0x9655, 0x9656, 0x9657, 0x9658, - 0xbbb5, 0xbbb6, 0x9659, 0x965a, 0xbbb7, 0x9661, 0x9662, 0xbbb8, - 0xbbb9, 0x9663, 0x9664, 0x9665, 0x9666, 0x9667, 0x9668, 0x9669, - 0xbbba, 0x966a, 0x966b, 0xbbbb, 0xbbbc, 0xbbbd, 0x966c, 0x966d, - 0x966e, 0x966f, 0x9670, 0x9671, 0xbbbe, 0x9672, 0x9673, 0x9674, - 0x9675, 0x9676, 0x9677, 0x9678, 0x9679, 0x967a, 0x9681, 0x9682, - 0x9683, 0x9684, 0x9685, 0x9686, 0x9687, 0x9688, 0x9689, 0x968a, - /* 0xbf00 .. 0xbfff */ - 0x968b, 0xbbbf, 0x968c, 0x968d, 0x968e, 0x968f, 0x9690, 0x9691, - 0xbbc0, 0xbbc1, 0x9692, 0x9693, 0x9694, 0x9695, 0x9696, 0x9697, - 0x9698, 0x9699, 0x969a, 0x969b, 0x969c, 0x969d, 0x969e, 0x969f, - 0xbbc2, 0xbbc3, 0x96a0, 0xbbc4, 0xbbc5, 0xbbc6, 0x96a1, 0x96a2, - 0x96a3, 0x96a4, 0x96a5, 0x96a6, 0x96a7, 0x96a8, 0x96a9, 0x96aa, - 0x96ab, 0x96ac, 0x96ad, 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b2, - 0x96b3, 0x96b4, 0x96b5, 0x96b6, 0x96b7, 0x96b8, 0x96b9, 0x96ba, - 0x96bb, 0x96bc, 0x96bd, 0x96be, 0x96bf, 0x96c0, 0x96c1, 0x96c2, - 0xbbc7, 0xbbc8, 0x96c3, 0x96c4, 0xbbc9, 0x96c5, 0x96c6, 0x96c7, - 0xbbca, 0x96c8, 0x96c9, 0x96ca, 0x96cb, 0x96cc, 0x96cd, 0x96ce, - 0xbbcb, 0xbbcc, 0x96cf, 0x96d0, 0x96d1, 0xbbcd, 0x96d2, 0x96d3, - 0x96d4, 0x96d5, 0x96d6, 0x96d7, 0x96d8, 0x96d9, 0x96da, 0x96db, - 0x96dc, 0x96dd, 0x96de, 0x96df, 0x96e0, 0x96e1, 0x96e2, 0x96e3, - 0x96e4, 0x96e5, 0x96e6, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, - 0x96ec, 0x96ed, 0x96ee, 0x96ef, 0x96f0, 0x96f1, 0x96f2, 0x96f3, - 0x96f4, 0x96f5, 0x96f6, 0x96f7, 0x96f8, 0x96f9, 0x96fa, 0x96fb, - 0x96fc, 0x96fd, 0x96fe, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, - 0x9746, 0x9747, 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d, - 0x974e, 0x974f, 0x9750, 0x9751, 0xbbce, 0x9752, 0x9753, 0x9754, - 0x9755, 0x9756, 0x9757, 0x9758, 0x9759, 0x975a, 0x9761, 0x9762, - 0x9763, 0x9764, 0x9765, 0x9766, 0x9767, 0x9768, 0x9769, 0x976a, - 0x976b, 0x976c, 0x976d, 0x976e, 0x976f, 0x9770, 0x9771, 0x9772, - 0xbbcf, 0x9773, 0x9774, 0x9775, 0x9776, 0x9777, 0x9778, 0x9779, - 0x977a, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, 0x9787, - 0x9788, 0x9789, 0x978a, 0x978b, 0x978c, 0xbbd0, 0x978d, 0x978e, - 0x978f, 0x9790, 0x9791, 0x9792, 0xbbd1, 0xbbd2, 0x9793, 0x9794, - 0xbbd3, 0x9795, 0x9796, 0x9797, 0xbbd4, 0x9798, 0x9799, 0x979a, - 0x979b, 0x979c, 0x979d, 0x979e, 0xbbd5, 0x979f, 0x97a0, 0xbbd6, - 0x97a1, 0xbbd7, 0x97a2, 0x97a3, 0x97a4, 0x97a5, 0x97a6, 0x97a7, - 0x97a8, 0x97a9, 0x97aa, 0x97ab, 0x97ac, 0x97ad, 0x97ae, 0x97af, - 0x97b0, 0x97b1, 0x97b2, 0x97b3, 0x97b4, 0x97b5, 0x97b6, 0x97b7, - 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, 0x97bd, 0x97be, 0x97bf, - /* 0xc000 .. 0xc0ff */ - 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4, 0x97c5, 0x97c6, 0x97c7, - 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, 0x97cd, 0x97ce, 0x97cf, - 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, 0x97d5, 0x97d6, 0x97d7, - 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc, 0x97dd, 0x97de, 0x97df, - 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x97e4, 0x97e5, 0x97e6, 0x97e7, - 0x97e8, 0x97e9, 0x97ea, 0x97eb, 0x97ec, 0x97ed, 0x97ee, 0x97ef, - 0x97f0, 0x97f1, 0x97f2, 0x97f3, 0x97f4, 0x97f5, 0x97f6, 0x97f7, - 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0xbbd8, 0x97fc, 0x97fd, 0x97fe, - 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, 0x9847, 0x9848, - 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x984e, 0x984f, 0x9850, - 0x9851, 0xbbd9, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, 0x9857, - 0xbbda, 0x9858, 0x9859, 0x985a, 0xbbdb, 0x9861, 0x9862, 0x9863, - 0xbbdc, 0x9864, 0x9865, 0x9866, 0x9867, 0x9868, 0x9869, 0x986a, - 0xbbdd, 0xbbde, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f, 0x9870, - 0x9871, 0x9872, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877, 0x9878, - 0x9879, 0x987a, 0x9881, 0x9882, 0x9883, 0x9884, 0x9885, 0x9886, - 0x9887, 0x9888, 0x9889, 0x988a, 0x988b, 0x988c, 0x988d, 0x988e, - 0x988f, 0x9890, 0x9891, 0x9892, 0x9893, 0x9894, 0x9895, 0x9896, - 0xbbdf, 0xbbe0, 0x9897, 0x9898, 0xbbe1, 0x9899, 0x989a, 0x989b, - 0xbbe2, 0x989c, 0x989d, 0x989e, 0x989f, 0x98a0, 0x98a1, 0x98a2, - 0xbbe3, 0xbbe4, 0x98a3, 0xbbe5, 0x98a4, 0xbbe6, 0x98a5, 0x98a6, - 0x98a7, 0x98a8, 0x98a9, 0x98aa, 0xbbe7, 0xbbe8, 0x98ab, 0xbbe9, - 0xbbea, 0x98ac, 0x98ad, 0xbbeb, 0xbbec, 0xbbed, 0xbbee, 0x98ae, - 0x98af, 0x98b0, 0x98b1, 0x98b2, 0xbbef, 0xbbf0, 0x98b3, 0xbbf1, - 0xbbf2, 0xbbf3, 0x98b4, 0x98b5, 0x98b6, 0xbbf4, 0x98b7, 0x98b8, - 0xbbf5, 0xbbf6, 0x98b9, 0x98ba, 0xbbf7, 0x98bb, 0x98bc, 0x98bd, - 0xbbf8, 0x98be, 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3, 0x98c4, - 0xbbf9, 0xbbfa, 0x98c5, 0xbbfb, 0xbbfc, 0xbbfd, 0x98c6, 0x98c7, - 0x98c8, 0x98c9, 0x98ca, 0x98cb, 0xbbfe, 0xbca1, 0x98cc, 0x98cd, - 0xbca2, 0x98ce, 0x98cf, 0x98d0, 0xbca3, 0x98d1, 0x98d2, 0x98d3, - 0x98d4, 0x98d5, 0x98d6, 0x98d7, 0xbca4, 0xbca5, 0x98d8, 0xbca6, - 0x98d9, 0xbca7, 0x98da, 0x98db, 0x98dc, 0x98dd, 0x98de, 0x98df, - /* 0xc100 .. 0xc1ff */ - 0xbca8, 0x98e0, 0x98e1, 0x98e2, 0xbca9, 0x98e3, 0x98e4, 0x98e5, - 0xbcaa, 0x98e6, 0x98e7, 0x98e8, 0x98e9, 0x98ea, 0x98eb, 0x98ec, - 0xbcab, 0x98ed, 0x98ee, 0x98ef, 0x98f0, 0xbcac, 0x98f1, 0x98f2, - 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0xbcad, 0xbcae, 0xbcaf, 0xbcb0, - 0xbcb1, 0x98f7, 0x98f8, 0xbcb2, 0xbcb3, 0x98f9, 0xbcb4, 0xbcb5, - 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0xbcb6, 0xbcb7, 0x98fe, 0xbcb8, - 0xbcb9, 0xbcba, 0x9941, 0x9942, 0x9943, 0x9944, 0xbcbb, 0x9945, - 0xbcbc, 0xbcbd, 0x9946, 0x9947, 0xbcbe, 0x9948, 0x9949, 0x994a, - 0xbcbf, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, - 0xbcc0, 0xbcc1, 0x9952, 0xbcc2, 0xbcc3, 0xbcc4, 0x9953, 0x9954, - 0x9955, 0x9956, 0x9957, 0x9958, 0xbcc5, 0xbcc6, 0x9959, 0x995a, - 0xbcc7, 0x9961, 0x9962, 0x9963, 0xbcc8, 0x9964, 0x9965, 0x9966, - 0x9967, 0x9968, 0x9969, 0x996a, 0xbcc9, 0xbcca, 0x996b, 0xbccb, - 0xbccc, 0xbccd, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, 0x9971, - 0xbcce, 0x9972, 0x9973, 0x9974, 0xbccf, 0x9975, 0x9976, 0x9977, - 0xbcd0, 0x9978, 0x9979, 0x997a, 0x9981, 0x9982, 0x9983, 0x9984, - 0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0xbcd1, 0x998a, 0x998b, - 0x998c, 0x998d, 0x998e, 0x998f, 0xbcd2, 0xbcd3, 0xbcd4, 0x9990, - 0xbcd5, 0x9991, 0x9992, 0x9993, 0xbcd6, 0x9994, 0xbcd7, 0x9995, - 0x9996, 0x9997, 0x9998, 0x9999, 0xbcd8, 0xbcd9, 0x999a, 0xbcda, - 0x999b, 0xbcdb, 0x999c, 0x999d, 0x999e, 0xbcdc, 0x999f, 0x99a0, - 0xbcdd, 0xbcde, 0x99a1, 0x99a2, 0xbcdf, 0x99a3, 0x99a4, 0x99a5, - 0xbce0, 0x99a6, 0x99a7, 0x99a8, 0x99a9, 0x99aa, 0x99ab, 0x99ac, - 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, 0xbce1, 0x99b2, 0x99b3, - 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0xbce2, 0x99b8, 0x99b9, 0x99ba, - 0xbce3, 0x99bb, 0x99bc, 0x99bd, 0xbce4, 0x99be, 0x99bf, 0x99c0, - 0x99c1, 0x99c2, 0x99c3, 0x99c4, 0xbce5, 0x99c5, 0x99c6, 0xbce6, - 0xbce7, 0x99c7, 0x99c8, 0x99c9, 0x99ca, 0x99cb, 0x99cc, 0x99cd, - 0xbce8, 0x99ce, 0x99cf, 0x99d0, 0xbce9, 0x99d1, 0x99d2, 0x99d3, - 0xbcea, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da, - 0xbceb, 0xbcec, 0x99db, 0xbced, 0x99dc, 0x99dd, 0x99de, 0x99df, - 0x99e0, 0x99e1, 0x99e2, 0x99e3, 0xbcee, 0xbcef, 0x99e4, 0x99e5, - /* 0xc200 .. 0xc2ff */ - 0xbcf0, 0x99e6, 0x99e7, 0x99e8, 0xbcf1, 0x99e9, 0x99ea, 0x99eb, - 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0xbcf2, 0xbcf3, 0x99f0, 0xbcf4, - 0x99f1, 0xbcf5, 0x99f2, 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, - 0xbcf6, 0xbcf7, 0x99f8, 0x99f9, 0xbcf8, 0x99fa, 0x99fb, 0xbcf9, - 0xbcfa, 0x99fc, 0x99fd, 0x99fe, 0x9a41, 0x9a42, 0x9a43, 0x9a44, - 0xbcfb, 0xbcfc, 0x9a45, 0xbcfd, 0x9a46, 0xbcfe, 0x9a47, 0xbda1, - 0x9a48, 0xbda2, 0xbda3, 0x9a49, 0xbda4, 0x9a4a, 0x9a4b, 0x9a4c, - 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, 0x9a52, 0x9a53, 0x9a54, - 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a61, 0x9a62, - 0xbda5, 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, - 0xbda6, 0xbda7, 0x9a6a, 0x9a6b, 0xbda8, 0x9a6c, 0x9a6d, 0x9a6e, - 0xbda9, 0x9a6f, 0x9a70, 0x9a71, 0x9a72, 0x9a73, 0x9a74, 0x9a75, - 0xbdaa, 0x9a76, 0x9a77, 0x9a78, 0x9a79, 0xbdab, 0x9a7a, 0x9a81, - 0x9a82, 0x9a83, 0x9a84, 0x9a85, 0xbdac, 0xbdad, 0x9a86, 0x9a87, - 0xbdae, 0x9a88, 0x9a89, 0x9a8a, 0xbdaf, 0x9a8b, 0x9a8c, 0x9a8d, - 0x9a8e, 0x9a8f, 0x9a90, 0x9a91, 0xbdb0, 0xbdb1, 0x9a92, 0xbdb2, - 0x9a93, 0xbdb3, 0x9a94, 0x9a95, 0x9a96, 0x9a97, 0x9a98, 0x9a99, - 0xbdb4, 0xbdb5, 0x9a9a, 0x9a9b, 0x9a9c, 0x9a9d, 0x9a9e, 0x9a9f, - 0xbdb6, 0x9aa0, 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, 0x9aa5, 0x9aa6, - 0xbdb7, 0x9aa7, 0x9aa8, 0xbdb8, 0x9aa9, 0xbdb9, 0x9aaa, 0x9aab, - 0x9aac, 0x9aad, 0x9aae, 0x9aaf, 0xbdba, 0xbdbb, 0x9ab0, 0x9ab1, - 0xbdbc, 0x9ab2, 0x9ab3, 0x9ab4, 0xbdbd, 0xbdbe, 0x9ab5, 0x9ab6, - 0x9ab7, 0x9ab8, 0x9ab9, 0x9aba, 0xbdbf, 0xbdc0, 0x9abb, 0xbdc1, - 0x9abc, 0xbdc2, 0x9abd, 0x9abe, 0x9abf, 0x9ac0, 0x9ac1, 0x9ac2, - 0x9ac3, 0x9ac4, 0x9ac5, 0x9ac6, 0x9ac7, 0x9ac8, 0x9ac9, 0x9aca, - 0x9acb, 0x9acc, 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad1, 0x9ad2, - 0x9ad3, 0x9ad4, 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, - 0x9adb, 0x9adc, 0x9add, 0x9ade, 0xbdc3, 0xbdc4, 0x9adf, 0x9ae0, - 0xbdc5, 0x9ae1, 0x9ae2, 0xbdc6, 0xbdc7, 0x9ae3, 0x9ae4, 0x9ae5, - 0x9ae6, 0x9ae7, 0x9ae8, 0xbdc8, 0xbdc9, 0xbdca, 0x9ae9, 0xbdcb, - 0x9aea, 0xbdcc, 0x9aeb, 0x9aec, 0x9aed, 0x9aee, 0xbdcd, 0x9aef, - 0xbdce, 0xbdcf, 0x9af0, 0xbdd0, 0xbdd1, 0x9af1, 0x9af2, 0x9af3, - /* 0xc300 .. 0xc3ff */ - 0xbdd2, 0x9af4, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, 0x9afa, - 0xbdd3, 0xbdd4, 0x9afb, 0x9afc, 0xbdd5, 0xbdd6, 0x9afd, 0x9afe, - 0x9b41, 0x9b42, 0x9b43, 0xbdd7, 0xbdd8, 0xbdd9, 0x9b44, 0x9b45, - 0xbdda, 0x9b46, 0x9b47, 0x9b48, 0xbddb, 0x9b49, 0x9b4a, 0x9b4b, - 0x9b4c, 0x9b4d, 0x9b4e, 0x9b4f, 0xbddc, 0xbddd, 0x9b50, 0x9b51, - 0xbdde, 0xbddf, 0x9b52, 0x9b53, 0x9b54, 0x9b55, 0x9b56, 0x9b57, - 0x9b58, 0x9b59, 0x9b5a, 0x9b61, 0x9b62, 0x9b63, 0x9b64, 0x9b65, - 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b, 0x9b6c, 0x9b6d, - 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0xbde0, 0x9b73, 0x9b74, - 0x9b75, 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b81, 0x9b82, - 0x9b83, 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b88, 0x9b89, 0x9b8a, - 0x9b8b, 0x9b8c, 0x9b8d, 0x9b8e, 0x9b8f, 0x9b90, 0x9b91, 0x9b92, - 0x9b93, 0x9b94, 0x9b95, 0x9b96, 0x9b97, 0x9b98, 0x9b99, 0x9b9a, - 0xbde1, 0xbde2, 0x9b9b, 0x9b9c, 0xbde3, 0x9b9d, 0x9b9e, 0x9b9f, - 0xbde4, 0x9ba0, 0xbde5, 0x9ba1, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, - 0xbde6, 0xbde7, 0x9ba6, 0x9ba7, 0xbde8, 0xbde9, 0x9ba8, 0x9ba9, - 0x9baa, 0x9bab, 0x9bac, 0x9bad, 0xbdea, 0x9bae, 0x9baf, 0x9bb0, - 0xbdeb, 0x9bb1, 0x9bb2, 0x9bb3, 0xbdec, 0x9bb4, 0x9bb5, 0x9bb6, - 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb, 0x9bbc, 0x9bbd, 0x9bbe, - 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3, 0x9bc4, 0x9bc5, 0x9bc6, - 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce, - 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3, 0x9bd4, 0x9bd5, 0x9bd6, - 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb, 0x9bdc, 0x9bdd, 0x9bde, - 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3, 0x9be4, 0x9be5, 0x9be6, - 0xbded, 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb, 0x9bec, 0x9bed, - 0x9bee, 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, 0x9bf4, 0x9bf5, - 0x9bf6, 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb, 0x9bfc, 0x9bfd, - 0xbdee, 0xbdef, 0x9bfe, 0x9c41, 0xbdf0, 0x9c42, 0x9c43, 0xbdf1, - 0xbdf2, 0x9c44, 0xbdf3, 0x9c45, 0x9c46, 0x9c47, 0x9c48, 0x9c49, - 0xbdf4, 0xbdf5, 0x9c4a, 0x9c4b, 0x9c4c, 0xbdf6, 0x9c4d, 0x9c4e, - 0x9c4f, 0x9c50, 0x9c51, 0x9c52, 0xbdf7, 0xbdf8, 0x9c53, 0x9c54, - 0xbdf9, 0x9c55, 0x9c56, 0x9c57, 0x9c58, 0x9c59, 0x9c5a, 0x9c61, - /* 0xc400 .. 0xc4ff */ - 0x9c62, 0x9c63, 0x9c64, 0x9c65, 0x9c66, 0x9c67, 0x9c68, 0x9c69, - 0xbdfa, 0x9c6a, 0x9c6b, 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, - 0xbdfb, 0x9c71, 0x9c72, 0x9c73, 0x9c74, 0x9c75, 0x9c76, 0x9c77, - 0x9c78, 0x9c79, 0x9c7a, 0x9c81, 0x9c82, 0x9c83, 0x9c84, 0x9c85, - 0x9c86, 0x9c87, 0x9c88, 0x9c89, 0xbdfc, 0x9c8a, 0x9c8b, 0x9c8c, - 0x9c8d, 0x9c8e, 0x9c8f, 0x9c90, 0xbdfd, 0x9c91, 0x9c92, 0x9c93, - 0xbdfe, 0x9c94, 0x9c95, 0x9c96, 0xbea1, 0x9c97, 0x9c98, 0x9c99, - 0x9c9a, 0x9c9b, 0x9c9c, 0x9c9d, 0xbea2, 0xbea3, 0x9c9e, 0x9c9f, - 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, 0x9ca5, 0x9ca6, 0x9ca7, - 0xbea4, 0x9ca8, 0x9ca9, 0x9caa, 0x9cab, 0x9cac, 0x9cad, 0x9cae, - 0x9caf, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6, - 0x9cb7, 0x9cb8, 0x9cb9, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, 0x9cbe, - 0x9cbf, 0x9cc0, 0x9cc1, 0x9cc2, 0xbea5, 0xbea6, 0x9cc3, 0x9cc4, - 0xbea7, 0x9cc5, 0x9cc6, 0x9cc7, 0xbea8, 0x9cc8, 0x9cc9, 0x9cca, - 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0xbea9, 0xbeaa, 0x9ccf, 0x9cd0, - 0x9cd1, 0xbeab, 0x9cd2, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6, 0x9cd7, - 0xbeac, 0x9cd8, 0x9cd9, 0x9cda, 0x9cdb, 0x9cdc, 0x9cdd, 0x9cde, - 0x9cdf, 0x9ce0, 0x9ce1, 0x9ce2, 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, - 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea, 0xbead, 0x9ceb, 0x9cec, 0x9ced, - 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0xbeae, 0x9cf2, 0x9cf3, 0x9cf4, - 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, - 0x9cfd, 0x9cfe, 0x9d41, 0x9d42, 0x9d43, 0x9d44, 0x9d45, 0x9d46, - 0x9d47, 0x9d48, 0x9d49, 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, - 0xbeaf, 0x9d4f, 0x9d50, 0x9d51, 0xbeb0, 0x9d52, 0x9d53, 0x9d54, - 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0x9d5a, 0x9d61, 0x9d62, - 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 0x9d6a, - 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d72, - 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, - 0x9d81, 0x9d82, 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, - 0x9d89, 0xbeb1, 0x9d8a, 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, - 0xbeb2, 0xbeb3, 0x9d90, 0x9d91, 0xbeb4, 0x9d92, 0x9d93, 0x9d94, - 0xbeb5, 0x9d95, 0xbeb6, 0x9d96, 0x9d97, 0x9d98, 0x9d99, 0xbeb7, - /* 0xc500 .. 0xc5ff */ - 0xbeb8, 0xbeb9, 0x9d9a, 0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, - 0x9da0, 0x9da1, 0x9da2, 0x9da3, 0xbeba, 0x9da4, 0x9da5, 0x9da6, - 0xbebb, 0x9da7, 0x9da8, 0x9da9, 0xbebc, 0x9daa, 0x9dab, 0x9dac, - 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0xbebd, 0x9db1, 0x9db2, 0x9db3, - 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, 0x9dbb, - 0xbebe, 0xbebf, 0x9dbc, 0x9dbd, 0xbec0, 0x9dbe, 0x9dbf, 0x9dc0, - 0xbec1, 0x9dc1, 0x9dc2, 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, - 0xbec2, 0xbec3, 0x9dc8, 0xbec4, 0x9dc9, 0xbec5, 0x9dca, 0x9dcb, - 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0xbec6, 0xbec7, 0x9dd0, 0x9dd1, - 0xbec8, 0xbec9, 0xbeca, 0x9dd2, 0xbecb, 0xbecc, 0xbecd, 0x9dd3, - 0x9dd4, 0x9dd5, 0x9dd6, 0xbece, 0xbecf, 0xbed0, 0x9dd7, 0xbed1, - 0xbed2, 0xbed3, 0x9dd8, 0x9dd9, 0x9dda, 0xbed4, 0xbed5, 0x9ddb, - 0xbed6, 0xbed7, 0x9ddc, 0x9ddd, 0xbed8, 0x9dde, 0x9ddf, 0x9de0, - 0xbed9, 0x9de1, 0x9de2, 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, - 0xbeda, 0xbedb, 0x9de8, 0xbedc, 0xbedd, 0xbede, 0x9de9, 0x9dea, - 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0xbedf, 0xbee0, 0x9def, 0x9df0, - 0xbee1, 0x9df1, 0x9df2, 0x9df3, 0xbee2, 0x9df4, 0x9df5, 0xbee3, - 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0xbee4, 0xbee5, 0x9dfa, 0xbee6, - 0x9dfb, 0xbee7, 0x9dfc, 0x9dfd, 0x9dfe, 0xbee8, 0x9e41, 0xbee9, - 0xbeea, 0x9e42, 0x9e43, 0x9e44, 0xbeeb, 0x9e45, 0x9e46, 0x9e47, - 0xbeec, 0x9e48, 0x9e49, 0x9e4a, 0x9e4b, 0x9e4c, 0x9e4d, 0x9e4e, - 0x9e4f, 0xbeed, 0x9e50, 0x9e51, 0x9e52, 0x9e53, 0x9e54, 0x9e55, - 0x9e56, 0x9e57, 0x9e58, 0x9e59, 0xbeee, 0xbeef, 0x9e5a, 0x9e61, - 0xbef0, 0xbef1, 0x9e62, 0xbef2, 0xbef3, 0xbef4, 0xbef5, 0x9e63, - 0x9e64, 0x9e65, 0x9e66, 0x9e67, 0xbef6, 0xbef7, 0xbef8, 0xbef9, - 0xbefa, 0xbefb, 0xbefc, 0x9e68, 0xbefd, 0x9e69, 0xbefe, 0x9e6a, - 0xbfa1, 0xbfa2, 0x9e6b, 0x9e6c, 0xbfa3, 0x9e6d, 0x9e6e, 0x9e6f, - 0xbfa4, 0x9e70, 0x9e71, 0x9e72, 0x9e73, 0x9e74, 0x9e75, 0x9e76, - 0xbfa5, 0xbfa6, 0x9e77, 0xbfa7, 0x9e78, 0xbfa8, 0x9e79, 0x9e7a, - 0x9e81, 0x9e82, 0x9e83, 0x9e84, 0xbfa9, 0xbfaa, 0xbfab, 0x9e85, - 0xbfac, 0x9e86, 0x9e87, 0x9e88, 0xbfad, 0x9e89, 0xbfae, 0xbfaf, - 0x9e8a, 0x9e8b, 0x9e8c, 0x9e8d, 0xbfb0, 0xbfb1, 0xbfb2, 0xbfb3, - /* 0xc600 .. 0xc6ff */ - 0xbfb4, 0xbfb5, 0x9e8e, 0x9e8f, 0x9e90, 0xbfb6, 0xbfb7, 0xbfb8, - 0xbfb9, 0x9e91, 0x9e92, 0x9e93, 0xbfba, 0x9e94, 0x9e95, 0x9e96, - 0xbfbb, 0x9e97, 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c, 0x9e9d, - 0xbfbc, 0xbfbd, 0x9e9e, 0xbfbe, 0xbfbf, 0x9e9f, 0x9ea0, 0x9ea1, - 0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0xbfc0, 0xbfc1, 0x9ea6, 0x9ea7, - 0xbfc2, 0x9ea8, 0x9ea9, 0x9eaa, 0xbfc3, 0xbfc4, 0xbfc5, 0x9eab, - 0xbfc6, 0x9eac, 0x9ead, 0xbfc7, 0xbfc8, 0xbfc9, 0x9eae, 0xbfca, - 0x9eaf, 0xbfcb, 0x9eb0, 0xbfcc, 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb4, - 0xbfcd, 0xbfce, 0x9eb5, 0x9eb6, 0xbfcf, 0x9eb7, 0x9eb8, 0x9eb9, - 0xbfd0, 0x9eba, 0x9ebb, 0x9ebc, 0x9ebd, 0x9ebe, 0x9ebf, 0x9ec0, - 0xbfd1, 0xbfd2, 0x9ec1, 0xbfd3, 0xbfd4, 0xbfd5, 0x9ec2, 0x9ec3, - 0x9ec4, 0x9ec5, 0x9ec6, 0x9ec7, 0xbfd6, 0xbfd7, 0x9ec8, 0x9ec9, - 0xbfd8, 0x9eca, 0x9ecb, 0x9ecc, 0x9ecd, 0x9ece, 0x9ecf, 0x9ed0, - 0x9ed1, 0x9ed2, 0x9ed3, 0x9ed4, 0xbfd9, 0x9ed5, 0x9ed6, 0xbfda, - 0x9ed7, 0xbfdb, 0x9ed8, 0x9ed9, 0x9eda, 0x9edb, 0x9edc, 0x9edd, - 0xbfdc, 0xbfdd, 0x9ede, 0x9edf, 0xbfde, 0x9ee0, 0x9ee1, 0x9ee2, - 0xbfdf, 0x9ee3, 0x9ee4, 0x9ee5, 0x9ee6, 0x9ee7, 0x9ee8, 0x9ee9, - 0xbfe0, 0xbfe1, 0x9eea, 0xbfe2, 0x9eeb, 0xbfe3, 0x9eec, 0x9eed, - 0x9eee, 0x9eef, 0x9ef0, 0x9ef1, 0xbfe4, 0xbfe5, 0x9ef2, 0x9ef3, - 0xbfe6, 0x9ef4, 0x9ef5, 0x9ef6, 0xbfe7, 0x9ef7, 0x9ef8, 0x9ef9, - 0x9efa, 0x9efb, 0x9efc, 0x9efd, 0xbfe8, 0xbfe9, 0x9efe, 0xbfea, - 0x9f41, 0xbfeb, 0x9f42, 0x9f43, 0x9f44, 0x9f45, 0x9f46, 0x9f47, - 0xbfec, 0xbfed, 0x9f48, 0x9f49, 0xbfee, 0x9f4a, 0x9f4b, 0x9f4c, - 0xbfef, 0xbff0, 0xbff1, 0x9f4d, 0x9f4e, 0x9f4f, 0x9f50, 0x9f51, - 0xbff2, 0xbff3, 0x9f52, 0xbff4, 0x9f53, 0xbff5, 0x9f54, 0x9f55, - 0x9f56, 0x9f57, 0x9f58, 0x9f59, 0xbff6, 0xbff7, 0x9f5a, 0x9f61, - 0xbff8, 0x9f62, 0x9f63, 0x9f64, 0xbff9, 0x9f65, 0x9f66, 0x9f67, - 0x9f68, 0x9f69, 0x9f6a, 0x9f6b, 0xbffa, 0xbffb, 0x9f6c, 0x9f6d, - 0xbffc, 0xbffd, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f72, 0x9f73, - 0xbffe, 0xc0a1, 0x9f74, 0x9f75, 0xc0a2, 0x9f76, 0x9f77, 0x9f78, - 0xc0a3, 0x9f79, 0x9f7a, 0x9f81, 0x9f82, 0x9f83, 0x9f84, 0x9f85, - 0xc0a4, 0xc0a5, 0x9f86, 0x9f87, 0x9f88, 0xc0a6, 0x9f89, 0x9f8a, - /* 0xc700 .. 0xc7ff */ - 0x9f8b, 0x9f8c, 0x9f8d, 0x9f8e, 0xc0a7, 0xc0a8, 0x9f8f, 0x9f90, - 0xc0a9, 0x9f91, 0x9f92, 0x9f93, 0xc0aa, 0x9f94, 0x9f95, 0x9f96, - 0x9f97, 0x9f98, 0x9f99, 0x9f9a, 0xc0ab, 0xc0ac, 0x9f9b, 0xc0ad, - 0x9f9c, 0xc0ae, 0x9f9d, 0x9f9e, 0x9f9f, 0x9fa0, 0x9fa1, 0x9fa2, - 0xc0af, 0xc0b0, 0x9fa3, 0x9fa4, 0xc0b1, 0x9fa5, 0x9fa6, 0x9fa7, - 0xc0b2, 0x9fa8, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, 0x9fad, 0x9fae, - 0xc0b3, 0xc0b4, 0x9faf, 0xc0b5, 0x9fb0, 0xc0b6, 0x9fb1, 0xc0b7, - 0x9fb2, 0x9fb3, 0x9fb4, 0x9fb5, 0xc0b8, 0xc0b9, 0x9fb6, 0x9fb7, - 0xc0ba, 0x9fb8, 0x9fb9, 0x9fba, 0xc0bb, 0x9fbb, 0x9fbc, 0x9fbd, - 0x9fbe, 0x9fbf, 0xc0bc, 0x9fc0, 0xc0bd, 0xc0be, 0x9fc1, 0xc0bf, - 0x9fc2, 0xc0c0, 0xc0c1, 0xc0c2, 0xc0c3, 0xc0c4, 0xc0c5, 0xc0c6, - 0xc0c7, 0x9fc3, 0x9fc4, 0x9fc5, 0xc0c8, 0x9fc6, 0x9fc7, 0x9fc8, - 0xc0c9, 0x9fc9, 0x9fca, 0x9fcb, 0x9fcc, 0x9fcd, 0x9fce, 0x9fcf, - 0xc0ca, 0x9fd0, 0x9fd1, 0xc0cb, 0x9fd2, 0x9fd3, 0x9fd4, 0x9fd5, - 0x9fd6, 0x9fd7, 0x9fd8, 0x9fd9, 0xc0cc, 0xc0cd, 0x9fda, 0x9fdb, - 0xc0ce, 0x9fdc, 0x9fdd, 0x9fde, 0xc0cf, 0xc0d0, 0xc0d1, 0x9fdf, - 0x9fe0, 0x9fe1, 0x9fe2, 0xc0d2, 0xc0d3, 0xc0d4, 0x9fe3, 0xc0d5, - 0xc0d6, 0xc0d7, 0xc0d8, 0x9fe4, 0x9fe5, 0x9fe6, 0xc0d9, 0x9fe7, - 0xc0da, 0xc0db, 0x9fe8, 0x9fe9, 0xc0dc, 0x9fea, 0xc0dd, 0xc0de, - 0xc0df, 0x9feb, 0xc0e0, 0x9fec, 0x9fed, 0x9fee, 0x9fef, 0x9ff0, - 0xc0e1, 0xc0e2, 0x9ff1, 0xc0e3, 0xc0e4, 0xc0e5, 0xc0e6, 0x9ff2, - 0x9ff3, 0x9ff4, 0x9ff5, 0x9ff6, 0xc0e7, 0xc0e8, 0x9ff7, 0x9ff8, - 0xc0e9, 0x9ff9, 0x9ffa, 0x9ffb, 0xc0ea, 0x9ffc, 0x9ffd, 0x9ffe, - 0xa041, 0xa042, 0xa043, 0xa044, 0xc0eb, 0xc0ec, 0xa045, 0xc0ed, - 0xc0ee, 0xc0ef, 0xa046, 0xa047, 0xa048, 0xa049, 0xa04a, 0xa04b, - 0xc0f0, 0xc0f1, 0xa04c, 0xa04d, 0xc0f2, 0xa04e, 0xc0f3, 0xa04f, - 0xc0f4, 0xa050, 0xa051, 0xa052, 0xa053, 0xa054, 0xa055, 0xa056, - 0xc0f5, 0xa057, 0xa058, 0xa059, 0xa05a, 0xc0f6, 0xa061, 0xa062, - 0xa063, 0xa064, 0xa065, 0xa066, 0xc0f7, 0xa067, 0xa068, 0xa069, - 0xc0f8, 0xa06a, 0xa06b, 0xa06c, 0xc0f9, 0xa06d, 0xa06e, 0xa06f, - 0xa070, 0xa071, 0xa072, 0xa073, 0xa074, 0xa075, 0xa076, 0xa077, - 0xa078, 0xa079, 0xa07a, 0xa081, 0xa082, 0xa083, 0xa084, 0xa085, - /* 0xc800 .. 0xc8ff */ - 0xc0fa, 0xc0fb, 0xa086, 0xa087, 0xc0fc, 0xa088, 0xa089, 0xa08a, - 0xc0fd, 0xa08b, 0xc0fe, 0xa08c, 0xa08d, 0xa08e, 0xa08f, 0xa090, - 0xc1a1, 0xc1a2, 0xa091, 0xc1a3, 0xa092, 0xc1a4, 0xc1a5, 0xa093, - 0xa094, 0xa095, 0xa096, 0xa097, 0xc1a6, 0xc1a7, 0xa098, 0xa099, - 0xc1a8, 0xa09a, 0xa09b, 0xa09c, 0xc1a9, 0xa09d, 0xa09e, 0xa09f, - 0xa0a0, 0xa0a1, 0xa0a2, 0xa0a3, 0xc1aa, 0xc1ab, 0xa0a4, 0xc1ac, - 0xa0a5, 0xc1ad, 0xa0a6, 0xa0a7, 0xa0a8, 0xa0a9, 0xa0aa, 0xa0ab, - 0xc1ae, 0xa0ac, 0xa0ad, 0xa0ae, 0xc1af, 0xa0af, 0xa0b0, 0xa0b1, - 0xc1b0, 0xa0b2, 0xa0b3, 0xa0b4, 0xa0b5, 0xa0b6, 0xa0b7, 0xa0b8, - 0xc1b1, 0xc1b2, 0xa0b9, 0xa0ba, 0xc1b3, 0xc1b4, 0xa0bb, 0xa0bc, - 0xa0bd, 0xa0be, 0xa0bf, 0xa0c0, 0xc1b5, 0xa0c1, 0xa0c2, 0xa0c3, - 0xa0c4, 0xa0c5, 0xa0c6, 0xa0c7, 0xa0c8, 0xa0c9, 0xa0ca, 0xa0cb, - 0xa0cc, 0xa0cd, 0xa0ce, 0xa0cf, 0xa0d0, 0xa0d1, 0xa0d2, 0xa0d3, - 0xa0d4, 0xa0d5, 0xa0d6, 0xa0d7, 0xa0d8, 0xa0d9, 0xa0da, 0xa0db, - 0xc1b6, 0xc1b7, 0xa0dc, 0xa0dd, 0xc1b8, 0xa0de, 0xa0df, 0xa0e0, - 0xc1b9, 0xa0e1, 0xc1ba, 0xa0e2, 0xa0e3, 0xa0e4, 0xa0e5, 0xa0e6, - 0xc1bb, 0xc1bc, 0xa0e7, 0xc1bd, 0xa0e8, 0xc1be, 0xc1bf, 0xc1c0, - 0xa0e9, 0xa0ea, 0xa0eb, 0xc1c1, 0xc1c2, 0xc1c3, 0xa0ec, 0xa0ed, - 0xa0ee, 0xa0ef, 0xa0f0, 0xa0f1, 0xc1c4, 0xa0f2, 0xa0f3, 0xa0f4, - 0xa0f5, 0xa0f6, 0xa0f7, 0xa0f8, 0xa0f9, 0xc1c5, 0xa0fa, 0xc1c6, - 0xa0fb, 0xc1c7, 0xa0fc, 0xa0fd, 0xa0fe, 0xa141, 0xa142, 0xa143, - 0xc1c8, 0xa144, 0xa145, 0xa146, 0xa147, 0xa148, 0xa149, 0xa14a, - 0xa14b, 0xa14c, 0xa14d, 0xa14e, 0xa14f, 0xa150, 0xa151, 0xa152, - 0xa153, 0xa154, 0xa155, 0xa156, 0xc1c9, 0xc1ca, 0xa157, 0xa158, - 0xa159, 0xa15a, 0xa161, 0xa162, 0xc1cb, 0xa163, 0xa164, 0xa165, - 0xc1cc, 0xa166, 0xa167, 0xa168, 0xc1cd, 0xa169, 0xa16a, 0xa16b, - 0xa16c, 0xa16d, 0xa16e, 0xa16f, 0xc1ce, 0xc1cf, 0xa170, 0xc1d0, - 0xa171, 0xc1d1, 0xa172, 0xa173, 0xa174, 0xa175, 0xa176, 0xa177, - 0xc1d2, 0xc1d3, 0xa178, 0xa179, 0xc1d4, 0xa17a, 0xa181, 0xa182, - 0xa183, 0xa184, 0xa185, 0xa186, 0xa187, 0xa188, 0xa189, 0xa18a, - 0xa18b, 0xa18c, 0xa18d, 0xa18e, 0xa18f, 0xc1d5, 0xa190, 0xa191, - 0xa192, 0xa193, 0xa194, 0xa195, 0xc1d6, 0xc1d7, 0xa196, 0xa197, - /* 0xc900 .. 0xc9ff */ - 0xc1d8, 0xa198, 0xa199, 0xa19a, 0xc1d9, 0xc1da, 0xc1db, 0xa19b, - 0xa19c, 0xa19d, 0xa19e, 0xa19f, 0xc1dc, 0xc1dd, 0xa1a0, 0xc1de, - 0xa241, 0xc1df, 0xa242, 0xa243, 0xa244, 0xa245, 0xa246, 0xa247, - 0xc1e0, 0xa248, 0xa249, 0xa24a, 0xa24b, 0xa24c, 0xa24d, 0xa24e, - 0xa24f, 0xa250, 0xa251, 0xa252, 0xa253, 0xa254, 0xa255, 0xa256, - 0xa257, 0xa258, 0xa259, 0xa25a, 0xc1e1, 0xa261, 0xa262, 0xa263, - 0xa264, 0xa265, 0xa266, 0xa267, 0xc1e2, 0xa268, 0xa269, 0xa26a, - 0xa26b, 0xa26c, 0xa26d, 0xa26e, 0xa26f, 0xa270, 0xa271, 0xa272, - 0xa273, 0xa274, 0xa275, 0xa276, 0xa277, 0xa278, 0xa279, 0xa27a, - 0xa281, 0xa282, 0xa283, 0xa284, 0xa285, 0xa286, 0xa287, 0xa288, - 0xc1e3, 0xc1e4, 0xa289, 0xa28a, 0xc1e5, 0xa28b, 0xa28c, 0xa28d, - 0xc1e6, 0xa28e, 0xa28f, 0xa290, 0xa291, 0xa292, 0xa293, 0xa294, - 0xc1e7, 0xc1e8, 0xa295, 0xc1e9, 0xa296, 0xa297, 0xa298, 0xa299, - 0xa29a, 0xa29b, 0xa29c, 0xa29d, 0xc1ea, 0xa29e, 0xa29f, 0xa2a0, - 0xc1eb, 0xa341, 0xa342, 0xa343, 0xc1ec, 0xa344, 0xa345, 0xa346, - 0xa347, 0xa348, 0xa349, 0xa34a, 0xc1ed, 0xa34b, 0xa34c, 0xa34d, - 0xa34e, 0xa34f, 0xa350, 0xa351, 0xa352, 0xa353, 0xa354, 0xa355, - 0xc1ee, 0xc1ef, 0xa356, 0xa357, 0xc1f0, 0xa358, 0xa359, 0xa35a, - 0xc1f1, 0xa361, 0xa362, 0xa363, 0xa364, 0xa365, 0xa366, 0xa367, - 0xc1f2, 0xc1f3, 0xa368, 0xc1f4, 0xa369, 0xc1f5, 0xa36a, 0xa36b, - 0xa36c, 0xa36d, 0xa36e, 0xa36f, 0xa370, 0xa371, 0xa372, 0xa373, - 0xa374, 0xa375, 0xa376, 0xa377, 0xa378, 0xa379, 0xa37a, 0xa381, - 0xa382, 0xa383, 0xa384, 0xa385, 0xa386, 0xa387, 0xa388, 0xa389, - 0xa38a, 0xa38b, 0xa38c, 0xa38d, 0xa38e, 0xa38f, 0xa390, 0xa391, - 0xc1f6, 0xc1f7, 0xa392, 0xa393, 0xc1f8, 0xa394, 0xa395, 0xc1f9, - 0xc1fa, 0xa396, 0xc1fb, 0xa397, 0xa398, 0xa399, 0xa39a, 0xa39b, - 0xc1fc, 0xc1fd, 0xa39c, 0xc1fe, 0xa39d, 0xc2a1, 0xc2a2, 0xa39e, - 0xa39f, 0xc2a3, 0xc2a4, 0xa3a0, 0xc2a5, 0xc2a6, 0xa441, 0xa442, - 0xc2a7, 0xa443, 0xc2a8, 0xa444, 0xc2a9, 0xa445, 0xa446, 0xc2aa, - 0xa447, 0xa448, 0xa449, 0xa44a, 0xc2ab, 0xc2ac, 0xa44b, 0xc2ad, - 0xc2ae, 0xc2af, 0xa44c, 0xa44d, 0xa44e, 0xa44f, 0xa450, 0xa451, - 0xc2b0, 0xc2b1, 0xa452, 0xa453, 0xc2b2, 0xa454, 0xa455, 0xa456, - /* 0xca00 .. 0xcaff */ - 0xc2b3, 0xa457, 0xa458, 0xa459, 0xa45a, 0xa461, 0xa462, 0xa463, - 0xc2b4, 0xc2b5, 0xa464, 0xc2b6, 0xc2b7, 0xc2b8, 0xa465, 0xa466, - 0xa467, 0xa468, 0xa469, 0xa46a, 0xc2b9, 0xa46b, 0xa46c, 0xa46d, - 0xc2ba, 0xa46e, 0xa46f, 0xa470, 0xa471, 0xa472, 0xa473, 0xa474, - 0xa475, 0xa476, 0xa477, 0xa478, 0xa479, 0xa47a, 0xa481, 0xa482, - 0xa483, 0xc2bb, 0xa484, 0xa485, 0xa486, 0xa487, 0xa488, 0xa489, - 0xa48a, 0xa48b, 0xa48c, 0xa48d, 0xa48e, 0xa48f, 0xa490, 0xa491, - 0xa492, 0xa493, 0xa494, 0xa495, 0xa496, 0xa497, 0xa498, 0xa499, - 0xa49a, 0xa49b, 0xa49c, 0xa49d, 0xa49e, 0xa49f, 0xa4a0, 0xa541, - 0xa542, 0xa543, 0xa544, 0xa545, 0xc2bc, 0xc2bd, 0xa546, 0xa547, - 0xc2be, 0xa548, 0xa549, 0xa54a, 0xc2bf, 0xa54b, 0xa54c, 0xa54d, - 0xa54e, 0xa54f, 0xa550, 0xa551, 0xc2c0, 0xc2c1, 0xa552, 0xc2c2, - 0xc2c3, 0xc2c4, 0xa553, 0xa554, 0xa555, 0xa556, 0xa557, 0xa558, - 0xc2c5, 0xa559, 0xa55a, 0xa561, 0xa562, 0xa563, 0xa564, 0xa565, - 0xa566, 0xa567, 0xa568, 0xa569, 0xa56a, 0xa56b, 0xa56c, 0xa56d, - 0xa56e, 0xa56f, 0xa570, 0xa571, 0xa572, 0xc2c6, 0xa573, 0xa574, - 0xa575, 0xa576, 0xa577, 0xa578, 0xc2c7, 0xa579, 0xa57a, 0xa581, - 0xa582, 0xa583, 0xa584, 0xa585, 0xa586, 0xa587, 0xa588, 0xa589, - 0xa58a, 0xa58b, 0xa58c, 0xa58d, 0xa58e, 0xa58f, 0xa590, 0xa591, - 0xc2c8, 0xa592, 0xa593, 0xa594, 0xa595, 0xa596, 0xa597, 0xa598, - 0xa599, 0xa59a, 0xa59b, 0xa59c, 0xa59d, 0xa59e, 0xa59f, 0xa5a0, - 0xa641, 0xa642, 0xa643, 0xa644, 0xa645, 0xa646, 0xa647, 0xa648, - 0xa649, 0xa64a, 0xa64b, 0xa64c, 0xa64d, 0xa64e, 0xa64f, 0xa650, - 0xa651, 0xa652, 0xa653, 0xa654, 0xc2c9, 0xc2ca, 0xa655, 0xa656, - 0xc2cb, 0xa657, 0xa658, 0xa659, 0xc2cc, 0xa65a, 0xa661, 0xa662, - 0xa663, 0xa664, 0xa665, 0xa666, 0xc2cd, 0xc2ce, 0xa667, 0xc2cf, - 0xa668, 0xc2d0, 0xa669, 0xc2d1, 0xa66a, 0xa66b, 0xa66c, 0xa66d, - 0xc2d2, 0xc2d3, 0xa66e, 0xa66f, 0xa670, 0xa671, 0xa672, 0xa673, - 0xc2d4, 0xa674, 0xa675, 0xa676, 0xa677, 0xa678, 0xa679, 0xa67a, - 0xa681, 0xa682, 0xa683, 0xa684, 0xc2d5, 0xa685, 0xa686, 0xa687, - 0xa688, 0xa689, 0xa68a, 0xa68b, 0xc2d6, 0xa68c, 0xa68d, 0xa68e, - 0xa68f, 0xa690, 0xa691, 0xa692, 0xa693, 0xa694, 0xa695, 0xa696, - /* 0xcb00 .. 0xcbff */ - 0xa697, 0xa698, 0xa699, 0xa69a, 0xa69b, 0xa69c, 0xa69d, 0xa69e, - 0xc2d7, 0xa69f, 0xa6a0, 0xa741, 0xa742, 0xa743, 0xa744, 0xa745, - 0xc2d8, 0xa746, 0xa747, 0xa748, 0xc2d9, 0xa749, 0xa74a, 0xa74b, - 0xc2da, 0xa74c, 0xa74d, 0xa74e, 0xa74f, 0xa750, 0xa751, 0xa752, - 0xc2db, 0xc2dc, 0xa753, 0xa754, 0xa755, 0xa756, 0xa757, 0xa758, - 0xa759, 0xa75a, 0xa761, 0xa762, 0xa763, 0xa764, 0xa765, 0xa766, - 0xa767, 0xa768, 0xa769, 0xa76a, 0xa76b, 0xa76c, 0xa76d, 0xa76e, - 0xa76f, 0xa770, 0xa771, 0xa772, 0xa773, 0xa774, 0xa775, 0xa776, - 0xa777, 0xc2dd, 0xa778, 0xa779, 0xa77a, 0xa781, 0xa782, 0xa783, - 0xc2de, 0xc2df, 0xa784, 0xa785, 0xc2e0, 0xa786, 0xa787, 0xa788, - 0xc2e1, 0xa789, 0xa78a, 0xa78b, 0xa78c, 0xa78d, 0xa78e, 0xa78f, - 0xc2e2, 0xc2e3, 0xa790, 0xa791, 0xa792, 0xc2e4, 0xa793, 0xa794, - 0xa795, 0xa796, 0xa797, 0xa798, 0xc2e5, 0xa799, 0xa79a, 0xa79b, - 0xa79c, 0xa79d, 0xa79e, 0xa79f, 0xa7a0, 0xa841, 0xa842, 0xa843, - 0xa844, 0xa845, 0xa846, 0xa847, 0xa848, 0xa849, 0xa84a, 0xa84b, - 0xc2e6, 0xc2e7, 0xa84c, 0xa84d, 0xa84e, 0xa84f, 0xa850, 0xa851, - 0xa852, 0xa853, 0xa854, 0xa855, 0xa856, 0xa857, 0xa858, 0xa859, - 0xa85a, 0xa861, 0xa862, 0xa863, 0xa864, 0xa865, 0xa866, 0xa867, - 0xa868, 0xa869, 0xa86a, 0xa86b, 0xa86c, 0xa86d, 0xa86e, 0xa86f, - 0xa870, 0xa871, 0xa872, 0xa873, 0xc2e8, 0xa874, 0xa875, 0xa876, - 0xa877, 0xa878, 0xa879, 0xa87a, 0xa881, 0xa882, 0xa883, 0xa884, - 0xa885, 0xa886, 0xa887, 0xa888, 0xa889, 0xa88a, 0xa88b, 0xa88c, - 0xa88d, 0xa88e, 0xa88f, 0xa890, 0xa891, 0xa892, 0xa893, 0xa894, - 0xc2e9, 0xa895, 0xa896, 0xa897, 0xa898, 0xa899, 0xa89a, 0xa89b, - 0xa89c, 0xa89d, 0xa89e, 0xa89f, 0xa8a0, 0xa941, 0xa942, 0xa943, - 0xa944, 0xa945, 0xa946, 0xa947, 0xa948, 0xa949, 0xa94a, 0xa94b, - 0xa94c, 0xa94d, 0xa94e, 0xa94f, 0xc2ea, 0xa950, 0xa951, 0xa952, - 0xa953, 0xa954, 0xa955, 0xa956, 0xa957, 0xa958, 0xa959, 0xa95a, - 0xa961, 0xa962, 0xa963, 0xa964, 0xc2eb, 0xa965, 0xa966, 0xc2ec, - 0xa967, 0xc2ed, 0xa968, 0xa969, 0xa96a, 0xa96b, 0xa96c, 0xa96d, - 0xa96e, 0xa96f, 0xa970, 0xa971, 0xa972, 0xa973, 0xa974, 0xa975, - 0xa976, 0xa977, 0xa978, 0xa979, 0xa97a, 0xa981, 0xa982, 0xa983, - /* 0xcc00 .. 0xccff */ - 0xa984, 0xa985, 0xa986, 0xa987, 0xa988, 0xa989, 0xa98a, 0xa98b, - 0xa98c, 0xa98d, 0xa98e, 0xa98f, 0xc2ee, 0xc2ef, 0xa990, 0xa991, - 0xc2f0, 0xa992, 0xa993, 0xa994, 0xc2f1, 0xa995, 0xa996, 0xa997, - 0xa998, 0xa999, 0xa99a, 0xa99b, 0xc2f2, 0xc2f3, 0xa99c, 0xa99d, - 0xa99e, 0xc2f4, 0xc2f5, 0xa99f, 0xa9a0, 0xaa41, 0xaa42, 0xc2f6, - 0xc2f7, 0xc2f8, 0xaa43, 0xaa44, 0xc2f9, 0xaa45, 0xc2fa, 0xaa46, - 0xc2fb, 0xaa47, 0xaa48, 0xaa49, 0xaa4a, 0xaa4b, 0xaa4c, 0xaa4d, - 0xc2fc, 0xc2fd, 0xaa4e, 0xc2fe, 0xc3a1, 0xc3a2, 0xc3a3, 0xaa4f, - 0xaa50, 0xaa51, 0xaa52, 0xaa53, 0xc3a4, 0xc3a5, 0xaa54, 0xaa55, - 0xc3a6, 0xaa56, 0xaa57, 0xaa58, 0xc3a7, 0xaa59, 0xaa5a, 0xaa61, - 0xaa62, 0xaa63, 0xaa64, 0xaa65, 0xc3a8, 0xc3a9, 0xaa66, 0xc3aa, - 0xc3ab, 0xc3ac, 0xaa67, 0xaa68, 0xaa69, 0xaa6a, 0xaa6b, 0xaa6c, - 0xc3ad, 0xaa6d, 0xaa6e, 0xaa6f, 0xc3ae, 0xaa70, 0xc3af, 0xaa71, - 0xc3b0, 0xaa72, 0xaa73, 0xaa74, 0xaa75, 0xaa76, 0xaa77, 0xaa78, - 0xc3b1, 0xaa79, 0xaa7a, 0xaa81, 0xaa82, 0xc3b2, 0xaa83, 0xaa84, - 0xaa85, 0xaa86, 0xaa87, 0xaa88, 0xaa89, 0xaa8a, 0xaa8b, 0xaa8c, - 0xaa8d, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa92, 0xaa93, 0xaa94, - 0xaa95, 0xaa96, 0xaa97, 0xaa98, 0xaa99, 0xaa9a, 0xaa9b, 0xaa9c, - 0xaa9d, 0xaa9e, 0xaa9f, 0xaaa0, 0xab41, 0xab42, 0xab43, 0xab44, - 0xc3b3, 0xc3b4, 0xab45, 0xab46, 0xc3b5, 0xab47, 0xab48, 0xab49, - 0xc3b6, 0xab4a, 0xab4b, 0xab4c, 0xab4d, 0xab4e, 0xab4f, 0xab50, - 0xc3b7, 0xc3b8, 0xab51, 0xc3b9, 0xc3ba, 0xc3bb, 0xab52, 0xab53, - 0xab54, 0xab55, 0xab56, 0xab57, 0xc3bc, 0xc3bd, 0xab58, 0xab59, - 0xc3be, 0xab5a, 0xab61, 0xab62, 0xc3bf, 0xab63, 0xab64, 0xab65, - 0xab66, 0xab67, 0xab68, 0xab69, 0xc3c0, 0xc3c1, 0xab6a, 0xc3c2, - 0xab6b, 0xc3c3, 0xab6c, 0xab6d, 0xab6e, 0xab6f, 0xab70, 0xab71, - 0xc3c4, 0xab72, 0xab73, 0xab74, 0xc3c5, 0xab75, 0xab76, 0xab77, - 0xab78, 0xab79, 0xab7a, 0xab81, 0xab82, 0xab83, 0xab84, 0xab85, - 0xab86, 0xab87, 0xab88, 0xab89, 0xc3c6, 0xab8a, 0xab8b, 0xab8c, - 0xab8d, 0xab8e, 0xab8f, 0xab90, 0xc3c7, 0xab91, 0xab92, 0xab93, - 0xc3c8, 0xab94, 0xab95, 0xab96, 0xab97, 0xab98, 0xab99, 0xab9a, - 0xab9b, 0xab9c, 0xab9d, 0xab9e, 0xab9f, 0xaba0, 0xac41, 0xac42, - /* 0xcd00 .. 0xcdff */ - 0xac43, 0xc3c9, 0xac44, 0xac45, 0xac46, 0xac47, 0xac48, 0xac49, - 0xc3ca, 0xc3cb, 0xac4a, 0xac4b, 0xc3cc, 0xac4c, 0xac4d, 0xac4e, - 0xc3cd, 0xac4f, 0xac50, 0xac51, 0xac52, 0xac53, 0xac54, 0xac55, - 0xc3ce, 0xc3cf, 0xac56, 0xc3d0, 0xac57, 0xc3d1, 0xac58, 0xac59, - 0xac5a, 0xac61, 0xac62, 0xac63, 0xc3d2, 0xac64, 0xac65, 0xac66, - 0xc3d3, 0xac67, 0xac68, 0xac69, 0xc3d4, 0xac6a, 0xac6b, 0xac6c, - 0xac6d, 0xac6e, 0xac6f, 0xac70, 0xac71, 0xac72, 0xac73, 0xac74, - 0xac75, 0xc3d5, 0xac76, 0xac77, 0xac78, 0xac79, 0xac7a, 0xac81, - 0xac82, 0xac83, 0xac84, 0xac85, 0xac86, 0xac87, 0xac88, 0xac89, - 0xac8a, 0xac8b, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, 0xac91, - 0xac92, 0xac93, 0xac94, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, - 0xac9a, 0xac9b, 0xac9c, 0xac9d, 0xc3d6, 0xac9e, 0xac9f, 0xaca0, - 0xc3d7, 0xad41, 0xad42, 0xad43, 0xc3d8, 0xad44, 0xad45, 0xad46, - 0xad47, 0xad48, 0xad49, 0xad4a, 0xc3d9, 0xc3da, 0xad4b, 0xc3db, - 0xad4c, 0xc3dc, 0xad4d, 0xad4e, 0xad4f, 0xad50, 0xad51, 0xad52, - 0xc3dd, 0xad53, 0xad54, 0xad55, 0xad56, 0xad57, 0xad58, 0xad59, - 0xad5a, 0xad61, 0xad62, 0xad63, 0xad64, 0xad65, 0xad66, 0xad67, - 0xc3de, 0xad68, 0xad69, 0xad6a, 0xad6b, 0xad6c, 0xad6d, 0xad6e, - 0xad6f, 0xad70, 0xad71, 0xad72, 0xc3df, 0xc3e0, 0xad73, 0xad74, - 0xc3e1, 0xad75, 0xad76, 0xad77, 0xc3e2, 0xad78, 0xad79, 0xad7a, - 0xad81, 0xad82, 0xad83, 0xad84, 0xc3e3, 0xc3e4, 0xad85, 0xc3e5, - 0xad86, 0xc3e6, 0xad87, 0xad88, 0xad89, 0xad8a, 0xad8b, 0xad8c, - 0xc3e7, 0xad8d, 0xad8e, 0xad8f, 0xad90, 0xad91, 0xad92, 0xad93, - 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xad99, 0xad9a, 0xad9b, - 0xad9c, 0xad9d, 0xad9e, 0xad9f, 0xc3e8, 0xada0, 0xae41, 0xae42, - 0xae43, 0xae44, 0xae45, 0xae46, 0xc3e9, 0xae47, 0xae48, 0xae49, - 0xc3ea, 0xae4a, 0xae4b, 0xae4c, 0xae4d, 0xae4e, 0xae4f, 0xae50, - 0xae51, 0xae52, 0xae53, 0xae54, 0xae55, 0xae56, 0xae57, 0xae58, - 0xae59, 0xae5a, 0xae61, 0xae62, 0xae63, 0xae64, 0xae65, 0xae66, - 0xc3eb, 0xae67, 0xae68, 0xae69, 0xc3ec, 0xae6a, 0xae6b, 0xae6c, - 0xc3ed, 0xae6d, 0xae6e, 0xae6f, 0xae70, 0xae71, 0xae72, 0xae73, - 0xc3ee, 0xc3ef, 0xae74, 0xc3f0, 0xae75, 0xc3f1, 0xae76, 0xae77, - /* 0xce00 .. 0xceff */ - 0xae78, 0xae79, 0xae7a, 0xae81, 0xc3f2, 0xae82, 0xae83, 0xae84, - 0xc3f3, 0xae85, 0xae86, 0xae87, 0xc3f4, 0xae88, 0xae89, 0xae8a, - 0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xc3f5, 0xae8f, 0xae90, 0xae91, - 0xae92, 0xc3f6, 0xae93, 0xae94, 0xae95, 0xae96, 0xae97, 0xae98, - 0xc3f7, 0xc3f8, 0xae99, 0xae9a, 0xc3f9, 0xae9b, 0xae9c, 0xae9d, - 0xc3fa, 0xae9e, 0xae9f, 0xaea0, 0xaf41, 0xaf42, 0xaf43, 0xaf44, - 0xc3fb, 0xc3fc, 0xaf45, 0xc3fd, 0xaf46, 0xc3fe, 0xaf47, 0xaf48, - 0xaf49, 0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, 0xaf50, - 0xaf51, 0xaf52, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, - 0xaf59, 0xaf5a, 0xaf61, 0xaf62, 0xaf63, 0xaf64, 0xaf65, 0xaf66, - 0xaf67, 0xaf68, 0xaf69, 0xaf6a, 0xaf6b, 0xaf6c, 0xaf6d, 0xaf6e, - 0xc4a1, 0xc4a2, 0xaf6f, 0xaf70, 0xc4a3, 0xaf71, 0xaf72, 0xc4a4, - 0xc4a5, 0xc4a6, 0xaf73, 0xaf74, 0xaf75, 0xaf76, 0xaf77, 0xaf78, - 0xc4a7, 0xc4a8, 0xaf79, 0xc4a9, 0xaf7a, 0xc4aa, 0xaf81, 0xaf82, - 0xaf83, 0xaf84, 0xaf85, 0xaf86, 0xc4ab, 0xc4ac, 0xaf87, 0xaf88, - 0xc4ad, 0xaf89, 0xaf8a, 0xaf8b, 0xc4ae, 0xaf8c, 0xaf8d, 0xaf8e, - 0xaf8f, 0xaf90, 0xaf91, 0xaf92, 0xc4af, 0xc4b0, 0xaf93, 0xc4b1, - 0xaf94, 0xc4b2, 0xaf95, 0xaf96, 0xaf97, 0xaf98, 0xaf99, 0xaf9a, - 0xc4b3, 0xc4b4, 0xaf9b, 0xaf9c, 0xc4b5, 0xaf9d, 0xaf9e, 0xaf9f, - 0xc4b6, 0xafa0, 0xb041, 0xb042, 0xb043, 0xb044, 0xb045, 0xb046, - 0xc4b7, 0xc4b8, 0xb047, 0xc4b9, 0xc4ba, 0xc4bb, 0xb048, 0xb049, - 0xb04a, 0xb04b, 0xb04c, 0xb04d, 0xc4bc, 0xc4bd, 0xb04e, 0xb04f, - 0xb050, 0xb051, 0xb052, 0xb053, 0xb054, 0xb055, 0xb056, 0xb057, - 0xb058, 0xb059, 0xb05a, 0xb061, 0xb062, 0xb063, 0xb064, 0xb065, - 0xb066, 0xc4be, 0xb067, 0xb068, 0xb069, 0xb06a, 0xb06b, 0xb06c, - 0xb06d, 0xb06e, 0xb06f, 0xb070, 0xb071, 0xb072, 0xb073, 0xb074, - 0xb075, 0xb076, 0xb077, 0xb078, 0xb079, 0xb07a, 0xb081, 0xb082, - 0xb083, 0xb084, 0xb085, 0xb086, 0xb087, 0xb088, 0xb089, 0xb08a, - 0xb08b, 0xb08c, 0xb08d, 0xb08e, 0xc4bf, 0xc4c0, 0xb08f, 0xb090, - 0xc4c1, 0xb091, 0xb092, 0xc4c2, 0xc4c3, 0xb093, 0xb094, 0xb095, - 0xb096, 0xb097, 0xb098, 0xb099, 0xc4c4, 0xc4c5, 0xb09a, 0xc4c6, - 0xc4c7, 0xc4c8, 0xb09b, 0xb09c, 0xb09d, 0xb09e, 0xb09f, 0xb0a0, - /* 0xcf00 .. 0xcfff */ - 0xc4c9, 0xc4ca, 0xb141, 0xb142, 0xc4cb, 0xb143, 0xb144, 0xb145, - 0xc4cc, 0xb146, 0xb147, 0xb148, 0xb149, 0xb14a, 0xb14b, 0xb14c, - 0xc4cd, 0xc4ce, 0xb14d, 0xc4cf, 0xb14e, 0xc4d0, 0xb14f, 0xb150, - 0xb151, 0xb152, 0xb153, 0xb154, 0xc4d1, 0xb155, 0xb156, 0xb157, - 0xc4d2, 0xb158, 0xb159, 0xb15a, 0xc4d3, 0xb161, 0xb162, 0xb163, - 0xb164, 0xb165, 0xb166, 0xb167, 0xc4d4, 0xc4d5, 0xb168, 0xc4d6, - 0xc4d7, 0xc4d8, 0xb169, 0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, - 0xc4d9, 0xb16f, 0xb170, 0xb171, 0xb172, 0xb173, 0xb174, 0xb175, - 0xb176, 0xb177, 0xb178, 0xb179, 0xb17a, 0xb181, 0xb182, 0xb183, - 0xb184, 0xb185, 0xb186, 0xb187, 0xb188, 0xb189, 0xb18a, 0xb18b, - 0xb18c, 0xb18d, 0xb18e, 0xb18f, 0xc4da, 0xc4db, 0xb190, 0xb191, - 0xc4dc, 0xb192, 0xb193, 0xb194, 0xc4dd, 0xb195, 0xb196, 0xb197, - 0xb198, 0xb199, 0xb19a, 0xb19b, 0xc4de, 0xc4df, 0xb19c, 0xc4e0, - 0xb19d, 0xc4e1, 0xb19e, 0xb19f, 0xb1a0, 0xb241, 0xb242, 0xb243, - 0xc4e2, 0xc4e3, 0xb244, 0xb245, 0xc4e4, 0xb246, 0xb247, 0xb248, - 0xc4e5, 0xb249, 0xb24a, 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, - 0xc4e6, 0xb250, 0xb251, 0xb252, 0xb253, 0xc4e7, 0xb254, 0xb255, - 0xb256, 0xb257, 0xb258, 0xb259, 0xc4e8, 0xb25a, 0xb261, 0xb262, - 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb268, 0xb269, 0xb26a, - 0xb26b, 0xb26c, 0xb26d, 0xb26e, 0xb26f, 0xb270, 0xb271, 0xb272, - 0xb273, 0xc4e9, 0xb274, 0xb275, 0xb276, 0xb277, 0xb278, 0xb279, - 0xc4ea, 0xb27a, 0xb281, 0xb282, 0xb283, 0xb284, 0xb285, 0xb286, - 0xc4eb, 0xb287, 0xb288, 0xb289, 0xb28a, 0xb28b, 0xb28c, 0xb28d, - 0xb28e, 0xb28f, 0xb290, 0xb291, 0xb292, 0xb293, 0xb294, 0xb295, - 0xb296, 0xb297, 0xb298, 0xb299, 0xc4ec, 0xb29a, 0xb29b, 0xb29c, - 0xb29d, 0xb29e, 0xb29f, 0xb2a0, 0xb341, 0xb342, 0xb343, 0xb344, - 0xb345, 0xb346, 0xb347, 0xb348, 0xb349, 0xb34a, 0xb34b, 0xb34c, - 0xb34d, 0xb34e, 0xb34f, 0xb350, 0xb351, 0xb352, 0xb353, 0xb354, - 0xc4ed, 0xc4ee, 0xb355, 0xb356, 0xc4ef, 0xb357, 0xb358, 0xb359, - 0xc4f0, 0xb35a, 0xb361, 0xb362, 0xb363, 0xb364, 0xb365, 0xb366, - 0xc4f1, 0xc4f2, 0xb367, 0xc4f3, 0xb368, 0xc4f4, 0xb369, 0xb36a, - 0xb36b, 0xb36c, 0xb36d, 0xb36e, 0xc4f5, 0xb36f, 0xb370, 0xb371, - /* 0xd000 .. 0xd0ff */ - 0xc4f6, 0xb372, 0xb373, 0xb374, 0xc4f7, 0xb375, 0xb376, 0xb377, - 0xb378, 0xb379, 0xb37a, 0xb381, 0xb382, 0xb383, 0xb384, 0xb385, - 0xb386, 0xc4f8, 0xb387, 0xb388, 0xb389, 0xb38a, 0xb38b, 0xb38c, - 0xc4f9, 0xb38d, 0xb38e, 0xb38f, 0xb390, 0xb391, 0xb392, 0xb393, - 0xb394, 0xb395, 0xb396, 0xb397, 0xb398, 0xb399, 0xb39a, 0xb39b, - 0xb39c, 0xb39d, 0xb39e, 0xb39f, 0xb3a0, 0xc4fa, 0xb441, 0xb442, - 0xb443, 0xb444, 0xb445, 0xb446, 0xc4fb, 0xc4fc, 0xb447, 0xb448, - 0xc4fd, 0xb449, 0xb44a, 0xb44b, 0xc4fe, 0xb44c, 0xb44d, 0xb44e, - 0xb44f, 0xb450, 0xb451, 0xb452, 0xc5a1, 0xc5a2, 0xb453, 0xc5a3, - 0xb454, 0xc5a4, 0xb455, 0xb456, 0xb457, 0xb458, 0xb459, 0xb45a, - 0xc5a5, 0xb461, 0xb462, 0xb463, 0xc5a6, 0xb464, 0xb465, 0xb466, - 0xc5a7, 0xb467, 0xb468, 0xb469, 0xb46a, 0xb46b, 0xb46c, 0xb46d, - 0xc5a8, 0xb46e, 0xb46f, 0xb470, 0xb471, 0xb472, 0xb473, 0xb474, - 0xb475, 0xb476, 0xb477, 0xb478, 0xc5a9, 0xc5aa, 0xb479, 0xb47a, - 0xc5ab, 0xb481, 0xb482, 0xb483, 0xc5ac, 0xb484, 0xb485, 0xb486, - 0xb487, 0xb488, 0xb489, 0xb48a, 0xc5ad, 0xc5ae, 0xb48b, 0xb48c, - 0xb48d, 0xc5af, 0xb48e, 0xb48f, 0xb490, 0xb491, 0xb492, 0xb493, - 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xb499, 0xb49a, 0xb49b, - 0xb49c, 0xb49d, 0xb49e, 0xb49f, 0xb4a0, 0xb541, 0xb542, 0xb543, - 0xb544, 0xb545, 0xb546, 0xb547, 0xb548, 0xb549, 0xb54a, 0xb54b, - 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xc5b0, 0xc5b1, 0xb550, 0xb551, - 0xc5b2, 0xb552, 0xb553, 0xb554, 0xc5b3, 0xb555, 0xb556, 0xb557, - 0xb558, 0xb559, 0xb55a, 0xb561, 0xc5b4, 0xc5b5, 0xb562, 0xc5b6, - 0xb563, 0xc5b7, 0xb564, 0xb565, 0xb566, 0xb567, 0xb568, 0xb569, - 0xc5b8, 0xc5b9, 0xb56a, 0xb56b, 0xc5ba, 0xb56c, 0xb56d, 0xb56e, - 0xc5bb, 0xc5bc, 0xb56f, 0xb570, 0xb571, 0xb572, 0xb573, 0xb574, - 0xc5bd, 0xc5be, 0xb575, 0xc5bf, 0xc5c0, 0xc5c1, 0xb576, 0xb577, - 0xb578, 0xb579, 0xb57a, 0xb581, 0xc5c2, 0xc5c3, 0xb582, 0xb583, - 0xc5c4, 0xb584, 0xb585, 0xb586, 0xc5c5, 0xb587, 0xb588, 0xb589, - 0xb58a, 0xb58b, 0xb58c, 0xb58d, 0xc5c6, 0xc5c7, 0xb58e, 0xc5c8, - 0xc5c9, 0xc5ca, 0xb58f, 0xb590, 0xb591, 0xb592, 0xb593, 0xb594, - 0xc5cb, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, 0xb59a, 0xb59b, - /* 0xd100 .. 0xd1ff */ - 0xb59c, 0xb59d, 0xb59e, 0xb59f, 0xb5a0, 0xb641, 0xb642, 0xb643, - 0xb644, 0xb645, 0xb646, 0xb647, 0xb648, 0xc5cc, 0xb649, 0xb64a, - 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651, 0xb652, - 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, 0xb65a, - 0xb661, 0xb662, 0xb663, 0xb664, 0xb665, 0xb666, 0xb667, 0xb668, - 0xb669, 0xb66a, 0xb66b, 0xb66c, 0xb66d, 0xb66e, 0xb66f, 0xb670, - 0xc5cd, 0xc5ce, 0xb671, 0xb672, 0xc5cf, 0xb673, 0xb674, 0xb675, - 0xc5d0, 0xb676, 0xc5d1, 0xb677, 0xb678, 0xb679, 0xb67a, 0xb681, - 0xc5d2, 0xc5d3, 0xb682, 0xc5d4, 0xc5d5, 0xc5d6, 0xb683, 0xb684, - 0xb685, 0xb686, 0xb687, 0xb688, 0xc5d7, 0xc5d8, 0xb689, 0xb68a, - 0xc5d9, 0xb68b, 0xb68c, 0xb68d, 0xc5da, 0xb68e, 0xb68f, 0xb690, - 0xb691, 0xb692, 0xb693, 0xb694, 0xc5db, 0xc5dc, 0xb695, 0xc5dd, - 0xb696, 0xc5de, 0xb697, 0xb698, 0xb699, 0xb69a, 0xb69b, 0xb69c, - 0xc5df, 0xb69d, 0xb69e, 0xb69f, 0xc5e0, 0xb6a0, 0xb741, 0xb742, - 0xb743, 0xb744, 0xb745, 0xb746, 0xb747, 0xb748, 0xb749, 0xb74a, - 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xc5e1, 0xb74f, 0xb750, 0xb751, - 0xb752, 0xb753, 0xb754, 0xb755, 0xc5e2, 0xb756, 0xb757, 0xb758, - 0xc5e3, 0xb759, 0xb75a, 0xb761, 0xb762, 0xb763, 0xb764, 0xb765, - 0xb766, 0xb767, 0xb768, 0xb769, 0xb76a, 0xb76b, 0xb76c, 0xb76d, - 0xb76e, 0xb76f, 0xb770, 0xb771, 0xb772, 0xb773, 0xb774, 0xb775, - 0xc5e4, 0xc5e5, 0xb776, 0xb777, 0xc5e6, 0xb778, 0xb779, 0xb77a, - 0xc5e7, 0xb781, 0xb782, 0xb783, 0xb784, 0xb785, 0xb786, 0xb787, - 0xc5e8, 0xc5e9, 0xb788, 0xc5ea, 0xb789, 0xc5eb, 0xb78a, 0xb78b, - 0xb78c, 0xb78d, 0xc5ec, 0xb78e, 0xc5ed, 0xb78f, 0xb790, 0xb791, - 0xc5ee, 0xb792, 0xb793, 0xb794, 0xb795, 0xb796, 0xb797, 0xb798, - 0xb799, 0xb79a, 0xb79b, 0xb79c, 0xb79d, 0xb79e, 0xb79f, 0xb7a0, - 0xb841, 0xb842, 0xb843, 0xb844, 0xb845, 0xb846, 0xb847, 0xb848, - 0xc5ef, 0xb849, 0xb84a, 0xb84b, 0xb84c, 0xb84d, 0xb84e, 0xb84f, - 0xb850, 0xb851, 0xb852, 0xb853, 0xb854, 0xb855, 0xb856, 0xb857, - 0xb858, 0xb859, 0xb85a, 0xb861, 0xb862, 0xb863, 0xb864, 0xb865, - 0xb866, 0xb867, 0xb868, 0xb869, 0xc5f0, 0xb86a, 0xb86b, 0xb86c, - 0xc5f1, 0xb86d, 0xb86e, 0xb86f, 0xb870, 0xb871, 0xb872, 0xb873, - /* 0xd200 .. 0xd2ff */ - 0xb874, 0xb875, 0xb876, 0xb877, 0xb878, 0xb879, 0xb87a, 0xc5f2, - 0xb881, 0xc5f3, 0xb882, 0xb883, 0xb884, 0xb885, 0xb886, 0xb887, - 0xc5f4, 0xb888, 0xb889, 0xb88a, 0xb88b, 0xb88c, 0xb88d, 0xb88e, - 0xb88f, 0xb890, 0xb891, 0xb892, 0xb893, 0xb894, 0xb895, 0xb896, - 0xb897, 0xb898, 0xb899, 0xb89a, 0xb89b, 0xb89c, 0xb89d, 0xb89e, - 0xb89f, 0xb8a0, 0xb941, 0xb942, 0xc5f5, 0xc5f6, 0xb943, 0xb944, - 0xc5f7, 0xb945, 0xb946, 0xb947, 0xc5f8, 0xb948, 0xb949, 0xb94a, - 0xb94b, 0xb94c, 0xb94d, 0xb94e, 0xc5f9, 0xc5fa, 0xb94f, 0xc5fb, - 0xb950, 0xc5fc, 0xb951, 0xb952, 0xb953, 0xb954, 0xb955, 0xb956, - 0xc5fd, 0xb957, 0xb958, 0xb959, 0xb95a, 0xb961, 0xb962, 0xb963, - 0xb964, 0xb965, 0xb966, 0xb967, 0xb968, 0xb969, 0xb96a, 0xb96b, - 0xb96c, 0xb96d, 0xb96e, 0xb96f, 0xc5fe, 0xb970, 0xb971, 0xb972, - 0xb973, 0xb974, 0xb975, 0xb976, 0xc6a1, 0xb977, 0xb978, 0xb979, - 0xb97a, 0xb981, 0xb982, 0xb983, 0xb984, 0xb985, 0xb986, 0xb987, - 0xb988, 0xb989, 0xb98a, 0xb98b, 0xb98c, 0xb98d, 0xb98e, 0xb98f, - 0xb990, 0xb991, 0xb992, 0xb993, 0xb994, 0xb995, 0xb996, 0xb997, - 0xc6a2, 0xc6a3, 0xb998, 0xb999, 0xc6a4, 0xb99a, 0xb99b, 0xb99c, - 0xc6a5, 0xb99d, 0xb99e, 0xb99f, 0xb9a0, 0xba41, 0xba42, 0xba43, - 0xc6a6, 0xc6a7, 0xba44, 0xba45, 0xba46, 0xc6a8, 0xba47, 0xba48, - 0xba49, 0xba4a, 0xba4b, 0xba4c, 0xc6a9, 0xba4d, 0xba4e, 0xba4f, - 0xc6aa, 0xba50, 0xba51, 0xba52, 0xc6ab, 0xba53, 0xba54, 0xba55, - 0xba56, 0xba57, 0xba58, 0xba59, 0xc6ac, 0xba5a, 0xba61, 0xba62, - 0xba63, 0xc6ad, 0xba64, 0xba65, 0xba66, 0xba67, 0xba68, 0xba69, - 0xc6ae, 0xc6af, 0xba6a, 0xba6b, 0xc6b0, 0xba6c, 0xba6d, 0xc6b1, - 0xc6b2, 0xba6e, 0xc6b3, 0xba6f, 0xba70, 0xba71, 0xba72, 0xba73, - 0xc6b4, 0xc6b5, 0xba74, 0xc6b6, 0xba75, 0xba76, 0xba77, 0xba78, - 0xba79, 0xba7a, 0xba81, 0xba82, 0xc6b7, 0xba83, 0xba84, 0xba85, - 0xc6b8, 0xba86, 0xba87, 0xba88, 0xc6b9, 0xba89, 0xba8a, 0xba8b, - 0xba8c, 0xba8d, 0xba8e, 0xba8f, 0xc6ba, 0xc6bb, 0xba90, 0xba91, - 0xba92, 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, - 0xc6bc, 0xc6bd, 0xba9a, 0xba9b, 0xc6be, 0xba9c, 0xba9d, 0xba9e, - 0xc6bf, 0xba9f, 0xbaa0, 0xbb41, 0xbb42, 0xbb43, 0xbb44, 0xbb45, - /* 0xd300 .. 0xd3ff */ - 0xc6c0, 0xc6c1, 0xbb46, 0xc6c2, 0xbb47, 0xc6c3, 0xbb48, 0xbb49, - 0xbb4a, 0xbb4b, 0xbb4c, 0xbb4d, 0xc6c4, 0xc6c5, 0xc6c6, 0xbb4e, - 0xc6c7, 0xbb4f, 0xbb50, 0xbb51, 0xc6c8, 0xbb52, 0xc6c9, 0xbb53, - 0xbb54, 0xbb55, 0xbb56, 0xbb57, 0xc6ca, 0xc6cb, 0xbb58, 0xc6cc, - 0xc6cd, 0xc6ce, 0xbb59, 0xbb5a, 0xbb61, 0xc6cf, 0xbb62, 0xbb63, - 0xc6d0, 0xc6d1, 0xbb64, 0xbb65, 0xc6d2, 0xbb66, 0xbb67, 0xbb68, - 0xc6d3, 0xbb69, 0xbb6a, 0xbb6b, 0xbb6c, 0xbb6d, 0xbb6e, 0xbb6f, - 0xc6d4, 0xc6d5, 0xbb70, 0xc6d6, 0xc6d7, 0xc6d8, 0xbb71, 0xbb72, - 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xc6d9, 0xc6da, 0xbb77, 0xbb78, - 0xbb79, 0xbb7a, 0xbb81, 0xbb82, 0xbb83, 0xbb84, 0xbb85, 0xbb86, - 0xbb87, 0xbb88, 0xbb89, 0xbb8a, 0xbb8b, 0xbb8c, 0xbb8d, 0xbb8e, - 0xbb8f, 0xbb90, 0xbb91, 0xbb92, 0xbb93, 0xbb94, 0xbb95, 0xbb96, - 0xbb97, 0xbb98, 0xbb99, 0xbb9a, 0xbb9b, 0xbb9c, 0xbb9d, 0xbb9e, - 0xbb9f, 0xbba0, 0xbc41, 0xbc42, 0xbc43, 0xbc44, 0xbc45, 0xbc46, - 0xbc47, 0xbc48, 0xbc49, 0xbc4a, 0xbc4b, 0xbc4c, 0xbc4d, 0xbc4e, - 0xbc4f, 0xbc50, 0xbc51, 0xbc52, 0xc6db, 0xc6dc, 0xbc53, 0xbc54, - 0xc6dd, 0xbc55, 0xbc56, 0xbc57, 0xc6de, 0xbc58, 0xbc59, 0xbc5a, - 0xbc61, 0xbc62, 0xbc63, 0xbc64, 0xc6df, 0xc6e0, 0xbc65, 0xc6e1, - 0xc6e2, 0xc6e3, 0xbc66, 0xbc67, 0xbc68, 0xbc69, 0xbc6a, 0xbc6b, - 0xc6e4, 0xc6e5, 0xbc6c, 0xbc6d, 0xc6e6, 0xbc6e, 0xbc6f, 0xbc70, - 0xc6e7, 0xbc71, 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, 0xbc77, - 0xc6e8, 0xc6e9, 0xbc78, 0xc6ea, 0xbc79, 0xc6eb, 0xbc7a, 0xbc81, - 0xbc82, 0xbc83, 0xbc84, 0xbc85, 0xc6ec, 0xbc86, 0xbc87, 0xbc88, - 0xc6ed, 0xbc89, 0xbc8a, 0xbc8b, 0xc6ee, 0xbc8c, 0xbc8d, 0xbc8e, - 0xbc8f, 0xbc90, 0xbc91, 0xbc92, 0xc6ef, 0xc6f0, 0xbc93, 0xbc94, - 0xc6f1, 0xc6f2, 0xbc95, 0xbc96, 0xbc97, 0xbc98, 0xbc99, 0xbc9a, - 0xc6f3, 0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0xbca0, 0xbd41, - 0xc6f4, 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd48, - 0xbd49, 0xc6f5, 0xbd4a, 0xc6f6, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, - 0xbd4f, 0xbd50, 0xbd51, 0xbd52, 0xc6f7, 0xc6f8, 0xbd53, 0xbd54, - 0xc6f9, 0xbd55, 0xbd56, 0xbd57, 0xc6fa, 0xbd58, 0xbd59, 0xbd5a, - 0xbd61, 0xbd62, 0xbd63, 0xbd64, 0xc6fb, 0xc6fc, 0xbd65, 0xc6fd, - /* 0xd400 .. 0xd4ff */ - 0xbd66, 0xc6fe, 0xbd67, 0xbd68, 0xbd69, 0xbd6a, 0xbd6b, 0xbd6c, - 0xc7a1, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, 0xbd72, 0xbd73, - 0xbd74, 0xbd75, 0xbd76, 0xbd77, 0xbd78, 0xbd79, 0xbd7a, 0xbd81, - 0xbd82, 0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xc7a2, 0xbd87, 0xbd88, - 0xbd89, 0xbd8a, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd90, - 0xbd91, 0xbd92, 0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, 0xbd98, - 0xbd99, 0xbd9a, 0xbd9b, 0xbd9c, 0xbd9d, 0xbd9e, 0xbd9f, 0xbda0, - 0xbe41, 0xbe42, 0xbe43, 0xbe44, 0xbe45, 0xbe46, 0xbe47, 0xbe48, - 0xc7a3, 0xbe49, 0xbe4a, 0xbe4b, 0xc7a4, 0xbe4c, 0xbe4d, 0xbe4e, - 0xbe4f, 0xbe50, 0xbe51, 0xbe52, 0xbe53, 0xbe54, 0xbe55, 0xbe56, - 0xbe57, 0xbe58, 0xbe59, 0xbe5a, 0xbe61, 0xbe62, 0xbe63, 0xbe64, - 0xbe65, 0xbe66, 0xbe67, 0xbe68, 0xc7a5, 0xbe69, 0xbe6a, 0xbe6b, - 0xc7a6, 0xbe6c, 0xbe6d, 0xbe6e, 0xc7a7, 0xbe6f, 0xbe70, 0xbe71, - 0xbe72, 0xbe73, 0xbe74, 0xbe75, 0xbe76, 0xc7a8, 0xbe77, 0xc7a9, - 0xbe78, 0xbe79, 0xbe7a, 0xbe81, 0xbe82, 0xbe83, 0xbe84, 0xbe85, - 0xc7aa, 0xc7ab, 0xbe86, 0xbe87, 0xc7ac, 0xbe88, 0xbe89, 0xc7ad, - 0xc7ae, 0xbe8a, 0xc7af, 0xbe8b, 0xbe8c, 0xbe8d, 0xbe8e, 0xbe8f, - 0xc7b0, 0xc7b1, 0xbe90, 0xc7b2, 0xbe91, 0xc7b3, 0xbe92, 0xbe93, - 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0xc7b4, 0xbe98, 0xbe99, 0xbe9a, - 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, 0xbe9f, 0xbea0, 0xbf41, 0xbf42, - 0xbf43, 0xbf44, 0xbf45, 0xbf46, 0xbf47, 0xbf48, 0xbf49, 0xbf4a, - 0xbf4b, 0xc7b5, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, 0xbf51, - 0xbf52, 0xbf53, 0xbf54, 0xbf55, 0xbf56, 0xbf57, 0xbf58, 0xbf59, - 0xbf5a, 0xbf61, 0xbf62, 0xbf63, 0xbf64, 0xbf65, 0xbf66, 0xbf67, - 0xbf68, 0xbf69, 0xbf6a, 0xbf6b, 0xbf6c, 0xbf6d, 0xbf6e, 0xbf6f, - 0xbf70, 0xbf71, 0xbf72, 0xbf73, 0xc7b6, 0xbf74, 0xbf75, 0xbf76, - 0xc7b7, 0xbf77, 0xbf78, 0xbf79, 0xc7b8, 0xbf7a, 0xbf81, 0xbf82, - 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xc7b9, 0xbf87, 0xbf88, 0xc7ba, - 0xbf89, 0xbf8a, 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, - 0xc7bb, 0xbf91, 0xbf92, 0xbf93, 0xc7bc, 0xbf94, 0xbf95, 0xbf96, - 0xc7bd, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, 0xbf9b, 0xbf9c, 0xbf9d, - 0xc7be, 0xbf9e, 0xbf9f, 0xc7bf, 0xbfa0, 0xc7c0, 0xc041, 0xc042, - /* 0xd500 .. 0xd5ff */ - 0xc043, 0xc044, 0xc045, 0xc046, 0xc7c1, 0xc047, 0xc048, 0xc049, - 0xc7c2, 0xc04a, 0xc04b, 0xc04c, 0xc7c3, 0xc04d, 0xc04e, 0xc04f, - 0xc050, 0xc051, 0xc052, 0xc053, 0xc7c4, 0xc7c5, 0xc054, 0xc7c6, - 0xc055, 0xc056, 0xc057, 0xc058, 0xc059, 0xc05a, 0xc061, 0xc062, - 0xc063, 0xc064, 0xc065, 0xc066, 0xc067, 0xc068, 0xc069, 0xc06a, - 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, 0xc071, 0xc072, - 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079, 0xc07a, - 0xc081, 0xc082, 0xc083, 0xc084, 0xc7c7, 0xc7c8, 0xc085, 0xc086, - 0xc7c9, 0xc087, 0xc088, 0xc089, 0xc7ca, 0xc08a, 0xc08b, 0xc08c, - 0xc08d, 0xc08e, 0xc08f, 0xc090, 0xc7cb, 0xc7cc, 0xc091, 0xc7cd, - 0xc092, 0xc7ce, 0xc093, 0xc094, 0xc095, 0xc096, 0xc097, 0xc098, - 0xc7cf, 0xc7d0, 0xc099, 0xc09a, 0xc7d1, 0xc09b, 0xc09c, 0xc09d, - 0xc7d2, 0xc09e, 0xc09f, 0xc0a0, 0xc141, 0xc7d3, 0xc142, 0xc143, - 0xc7d4, 0xc7d5, 0xc144, 0xc7d6, 0xc145, 0xc7d7, 0xc146, 0xc147, - 0xc148, 0xc149, 0xc14a, 0xc14b, 0xc7d8, 0xc7d9, 0xc14c, 0xc14d, - 0xc7da, 0xc14e, 0xc14f, 0xc150, 0xc7db, 0xc151, 0xc152, 0xc153, - 0xc154, 0xc155, 0xc156, 0xc157, 0xc7dc, 0xc7dd, 0xc158, 0xc7de, - 0xc7df, 0xc7e0, 0xc159, 0xc15a, 0xc161, 0xc162, 0xc163, 0xc164, - 0xc7e1, 0xc165, 0xc166, 0xc167, 0xc168, 0xc169, 0xc16a, 0xc16b, - 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xc170, 0xc171, 0xc172, 0xc173, - 0xc174, 0xc175, 0xc176, 0xc177, 0xc178, 0xc7e2, 0xc179, 0xc17a, - 0xc181, 0xc182, 0xc183, 0xc184, 0xc185, 0xc186, 0xc187, 0xc188, - 0xc189, 0xc18a, 0xc18b, 0xc18c, 0xc18d, 0xc18e, 0xc18f, 0xc190, - 0xc191, 0xc192, 0xc193, 0xc194, 0xc195, 0xc196, 0xc197, 0xc198, - 0xc199, 0xc19a, 0xc19b, 0xc19c, 0xc19d, 0xc19e, 0xc19f, 0xc1a0, - 0xc7e3, 0xc7e4, 0xc241, 0xc242, 0xc7e5, 0xc243, 0xc244, 0xc245, - 0xc7e6, 0xc246, 0xc7e7, 0xc247, 0xc248, 0xc249, 0xc24a, 0xc24b, - 0xc7e8, 0xc7e9, 0xc24c, 0xc7ea, 0xc24d, 0xc7eb, 0xc24e, 0xc24f, - 0xc250, 0xc251, 0xc252, 0xc253, 0xc7ec, 0xc7ed, 0xc254, 0xc255, - 0xc7ee, 0xc256, 0xc257, 0xc258, 0xc7ef, 0xc259, 0xc25a, 0xc261, - 0xc262, 0xc263, 0xc264, 0xc265, 0xc7f0, 0xc7f1, 0xc266, 0xc7f2, - 0xc267, 0xc7f3, 0xc268, 0xc269, 0xc26a, 0xc26b, 0xc26c, 0xc26d, - /* 0xd600 .. 0xd6ff */ - 0xc7f4, 0xc7f5, 0xc26e, 0xc26f, 0xc7f6, 0xc270, 0xc271, 0xc272, - 0xc7f7, 0xc273, 0xc274, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279, - 0xc7f8, 0xc7f9, 0xc27a, 0xc7fa, 0xc7fb, 0xc7fc, 0xc281, 0xc282, - 0xc283, 0xc284, 0xc285, 0xc286, 0xc7fd, 0xc287, 0xc288, 0xc289, - 0xc7fe, 0xc28a, 0xc28b, 0xc28c, 0xc8a1, 0xc28d, 0xc28e, 0xc28f, - 0xc290, 0xc291, 0xc292, 0xc293, 0xc294, 0xc8a2, 0xc295, 0xc296, - 0xc297, 0xc298, 0xc299, 0xc29a, 0xc29b, 0xc29c, 0xc29d, 0xc29e, - 0xc8a3, 0xc8a4, 0xc29f, 0xc2a0, 0xc8a5, 0xc341, 0xc342, 0xc343, - 0xc8a6, 0xc344, 0xc345, 0xc346, 0xc347, 0xc8a7, 0xc348, 0xc349, - 0xc8a8, 0xc8a9, 0xc34a, 0xc8aa, 0xc34b, 0xc8ab, 0xc34c, 0xc34d, - 0xc34e, 0xc8ac, 0xc34f, 0xc350, 0xc8ad, 0xc8ae, 0xc351, 0xc352, - 0xc8af, 0xc353, 0xc354, 0xc355, 0xc8b0, 0xc356, 0xc357, 0xc358, - 0xc359, 0xc35a, 0xc361, 0xc362, 0xc363, 0xc364, 0xc365, 0xc8b1, - 0xc366, 0xc8b2, 0xc367, 0xc368, 0xc369, 0xc36a, 0xc36b, 0xc36c, - 0xc8b3, 0xc8b4, 0xc36d, 0xc36e, 0xc8b5, 0xc36f, 0xc370, 0xc371, - 0xc372, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc378, 0xc379, - 0xc37a, 0xc381, 0xc382, 0xc8b6, 0xc383, 0xc8b7, 0xc384, 0xc385, - 0xc386, 0xc387, 0xc388, 0xc389, 0xc8b8, 0xc8b9, 0xc38a, 0xc38b, - 0xc8ba, 0xc38c, 0xc38d, 0xc38e, 0xc8bb, 0xc38f, 0xc390, 0xc391, - 0xc392, 0xc393, 0xc394, 0xc395, 0xc396, 0xc8bc, 0xc397, 0xc8bd, - 0xc398, 0xc8be, 0xc399, 0xc39a, 0xc39b, 0xc39c, 0xc39d, 0xc39e, - 0xc8bf, 0xc39f, 0xc3a0, 0xc441, 0xc8c0, 0xc442, 0xc443, 0xc444, - 0xc8c1, 0xc445, 0xc446, 0xc447, 0xc448, 0xc449, 0xc44a, 0xc44b, - 0xc44c, 0xc8c2, 0xc44d, 0xc8c3, 0xc44e, 0xc44f, 0xc450, 0xc451, - 0xc452, 0xc453, 0xc454, 0xc455, 0xc8c4, 0xc8c5, 0xc456, 0xc457, - 0xc8c6, 0xc458, 0xc459, 0xc45a, 0xc8c7, 0xc461, 0xc462, 0xc463, - 0xc464, 0xc8c8, 0xc465, 0xc466, 0xc8c9, 0xc467, 0xc468, 0xc8ca, - 0xc469, 0xc8cb, 0xc46a, 0xc46b, 0xc46c, 0xc46d, 0xc46e, 0xc46f, - 0xc8cc, 0xc470, 0xc471, 0xc472, 0xc8cd, 0xc473, 0xc474, 0xc475, - 0xc8ce, 0xc476, 0xc477, 0xc478, 0xc479, 0xc47a, 0xc481, 0xc482, - 0xc8cf, 0xc483, 0xc484, 0xc485, 0xc486, 0xc8d0, 0xc487, 0xc488, - 0xc489, 0xc48a, 0xc48b, 0xc48c, 0xc8d1, 0xc8d2, 0xc48d, 0xc48e, - /* 0xd700 .. 0xd7ff */ - 0xc8d3, 0xc48f, 0xc490, 0xc491, 0xc8d4, 0xc492, 0xc493, 0xc494, - 0xc495, 0xc496, 0xc497, 0xc498, 0xc499, 0xc49a, 0xc49b, 0xc49c, - 0xc49d, 0xc8d5, 0xc49e, 0xc49f, 0xc4a0, 0xc541, 0xc542, 0xc543, - 0xc8d6, 0xc8d7, 0xc544, 0xc545, 0xc8d8, 0xc546, 0xc547, 0xc548, - 0xc8d9, 0xc549, 0xc54a, 0xc54b, 0xc54c, 0xc54d, 0xc54e, 0xc54f, - 0xc8da, 0xc8db, 0xc550, 0xc8dc, 0xc551, 0xc8dd, 0xc552, 0xc553, - 0xc554, 0xc555, 0xc556, 0xc557, 0xc8de, 0xc8df, 0xc558, 0xc559, - 0xc8e0, 0xc55a, 0xc561, 0xc562, 0xc8e1, 0xc563, 0xc564, 0xc565, - 0xc566, 0xc567, 0xc568, 0xc569, 0xc8e2, 0xc56a, 0xc56b, 0xc8e3, - 0xc56c, 0xc8e4, 0xc56d, 0xc56e, 0xc56f, 0xc570, 0xc571, 0xc572, - 0xc8e5, 0xc8e6, 0xc573, 0xc574, 0xc8e7, 0xc575, 0xc8e8, 0xc8e9, - 0xc8ea, 0xc8eb, 0xc576, 0xc577, 0xc578, 0xc579, 0xc57a, 0xc581, - 0xc8ec, 0xc8ed, 0xc582, 0xc8ee, 0xc583, 0xc8ef, 0xc584, 0xc585, - 0xc586, 0xc8f0, 0xc587, 0xc588, 0xc8f1, 0xc589, 0xc58a, 0xc58b, - 0xc8f2, 0xc58c, 0xc58d, 0xc58e, 0xc8f3, 0xc58f, 0xc590, 0xc591, - 0xc592, 0xc593, 0xc594, 0xc595, 0xc8f4, 0xc8f5, 0xc596, 0xc597, - 0xc598, 0xc8f6, 0xc599, 0xc59a, 0xc59b, 0xc59c, 0xc59d, 0xc59e, - 0xc8f7, 0xc8f8, 0xc59f, 0xc5a0, 0xc8f9, 0xc641, 0xc642, 0xc643, - 0xc8fa, 0xc644, 0xc645, 0xc646, 0xc647, 0xc648, 0xc649, 0xc64a, - 0xc8fb, 0xc8fc, 0xc64b, 0xc8fd, 0xc64c, 0xc8fe, 0xc64d, 0xc64e, - 0xc64f, 0xc650, 0xc651, 0xc652, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xe000 .. 0xe0ff */ - 0xc9a1, 0xc9a2, 0xc9a3, 0xc9a4, 0xc9a5, 0xc9a6, 0xc9a7, 0xc9a8, - 0xc9a9, 0xc9aa, 0xc9ab, 0xc9ac, 0xc9ad, 0xc9ae, 0xc9af, 0xc9b0, - 0xc9b1, 0xc9b2, 0xc9b3, 0xc9b4, 0xc9b5, 0xc9b6, 0xc9b7, 0xc9b8, - 0xc9b9, 0xc9ba, 0xc9bb, 0xc9bc, 0xc9bd, 0xc9be, 0xc9bf, 0xc9c0, - 0xc9c1, 0xc9c2, 0xc9c3, 0xc9c4, 0xc9c5, 0xc9c6, 0xc9c7, 0xc9c8, - 0xc9c9, 0xc9ca, 0xc9cb, 0xc9cc, 0xc9cd, 0xc9ce, 0xc9cf, 0xc9d0, - 0xc9d1, 0xc9d2, 0xc9d3, 0xc9d4, 0xc9d5, 0xc9d6, 0xc9d7, 0xc9d8, - 0xc9d9, 0xc9da, 0xc9db, 0xc9dc, 0xc9dd, 0xc9de, 0xc9df, 0xc9e0, - 0xc9e1, 0xc9e2, 0xc9e3, 0xc9e4, 0xc9e5, 0xc9e6, 0xc9e7, 0xc9e8, - 0xc9e9, 0xc9ea, 0xc9eb, 0xc9ec, 0xc9ed, 0xc9ee, 0xc9ef, 0xc9f0, - 0xc9f1, 0xc9f2, 0xc9f3, 0xc9f4, 0xc9f5, 0xc9f6, 0xc9f7, 0xc9f8, - 0xc9f9, 0xc9fa, 0xc9fb, 0xc9fc, 0xc9fd, 0xc9fe, 0xfea1, 0xfea2, - 0xfea3, 0xfea4, 0xfea5, 0xfea6, 0xfea7, 0xfea8, 0xfea9, 0xfeaa, - 0xfeab, 0xfeac, 0xfead, 0xfeae, 0xfeaf, 0xfeb0, 0xfeb1, 0xfeb2, - 0xfeb3, 0xfeb4, 0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8, 0xfeb9, 0xfeba, - 0xfebb, 0xfebc, 0xfebd, 0xfebe, 0xfebf, 0xfec0, 0xfec1, 0xfec2, - 0xfec3, 0xfec4, 0xfec5, 0xfec6, 0xfec7, 0xfec8, 0xfec9, 0xfeca, - 0xfecb, 0xfecc, 0xfecd, 0xfece, 0xfecf, 0xfed0, 0xfed1, 0xfed2, - 0xfed3, 0xfed4, 0xfed5, 0xfed6, 0xfed7, 0xfed8, 0xfed9, 0xfeda, - 0xfedb, 0xfedc, 0xfedd, 0xfede, 0xfedf, 0xfee0, 0xfee1, 0xfee2, - 0xfee3, 0xfee4, 0xfee5, 0xfee6, 0xfee7, 0xfee8, 0xfee9, 0xfeea, - 0xfeeb, 0xfeec, 0xfeed, 0xfeee, 0xfeef, 0xfef0, 0xfef1, 0xfef2, - 0xfef3, 0xfef4, 0xfef5, 0xfef6, 0xfef7, 0xfef8, 0xfef9, 0xfefa, - 0xfefb, 0xfefc, 0xfefd, 0xfefe, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xf800 .. 0xf8ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00ff, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xf900 .. 0xf9ff */ - 0xcbd0, 0xcbd6, 0xcbe7, 0xcdcf, 0xcde8, 0xcead, 0xcffb, 0xd0a2, - 0xd0b8, 0xd0d0, 0xd0dd, 0xd1d4, 0xd1d5, 0xd1d8, 0xd1db, 0xd1dc, - 0xd1dd, 0xd1de, 0xd1df, 0xd1e0, 0xd1e2, 0xd1e3, 0xd1e4, 0xd1e5, - 0xd1e6, 0xd1e8, 0xd1e9, 0xd1ea, 0xd1eb, 0xd1ed, 0xd1ef, 0xd1f0, - 0xd1f2, 0xd1f6, 0xd1fa, 0xd1fc, 0xd1fd, 0xd1fe, 0xd2a2, 0xd2a3, - 0xd2a7, 0xd2a8, 0xd2a9, 0xd2aa, 0xd2ab, 0xd2ad, 0xd2b2, 0xd2be, - 0xd2c2, 0xd2c3, 0xd2c4, 0xd2c6, 0xd2c7, 0xd2c8, 0xd2c9, 0xd2ca, - 0xd2cb, 0xd2cd, 0xd2ce, 0xd2cf, 0xd2d0, 0xd2d1, 0xd2d2, 0xd2d3, - 0xd2d4, 0xd2d5, 0xd2d6, 0xd2d7, 0xd2d9, 0xd2da, 0xd2de, 0xd2df, - 0xd2e1, 0xd2e2, 0xd2e4, 0xd2e5, 0xd2e6, 0xd2e7, 0xd2e8, 0xd2e9, - 0xd2ea, 0xd2eb, 0xd2f0, 0xd2f1, 0xd2f2, 0xd2f3, 0xd2f4, 0xd2f5, - 0xd2f7, 0xd2f8, 0xd4e6, 0xd4fc, 0xd5a5, 0xd5ab, 0xd5ae, 0xd6b8, - 0xd6cd, 0xd7cb, 0xd7e4, 0xdbc5, 0xdbe4, 0xdca5, 0xdda5, 0xddd5, - 0xddf4, 0xdefc, 0xdefe, 0xdfb3, 0xdfe1, 0xdfe8, 0xe0f1, 0xe1ad, - 0xe1ed, 0xe3f5, 0xe4a1, 0xe4a9, 0xe5ae, 0xe5b1, 0xe5b2, 0xe5b9, - 0xe5bb, 0xe5bc, 0xe5c4, 0xe5ce, 0xe5d0, 0xe5d2, 0xe5d6, 0xe5fa, - 0xe5fb, 0xe5fc, 0xe5fe, 0xe6a1, 0xe6a4, 0xe6a7, 0xe6ad, 0xe6af, - 0xe6b0, 0xe6b1, 0xe6b3, 0xe6b7, 0xe6b8, 0xe6bc, 0xe6c4, 0xe6c6, - 0xe6c7, 0xe6ca, 0xe6d2, 0xe6d6, 0xe6d9, 0xe6dc, 0xe6df, 0xe6e1, - 0xe6e4, 0xe6e5, 0xe6e6, 0xe6e8, 0xe6ea, 0xe6eb, 0xe6ec, 0xe6ef, - 0xe6f1, 0xe6f2, 0xe6f5, 0xe6f6, 0xe6f7, 0xe6f9, 0xe7a1, 0xe7a6, - 0xe7a9, 0xe7aa, 0xe7ac, 0xe7ad, 0xe7b0, 0xe7bf, 0xe7c1, 0xe7c6, - 0xe7c7, 0xe7cb, 0xe7cd, 0xe7cf, 0xe7d0, 0xe7d3, 0xe7df, 0xe7e4, - 0xe7e6, 0xe7f7, 0xe8e7, 0xe8e8, 0xe8f0, 0xe8f1, 0xe8f7, 0xe8f9, - 0xe8fb, 0xe8fe, 0xe9a7, 0xe9ac, 0xe9cc, 0xe9f7, 0xeac1, 0xeae5, - 0xeaf4, 0xeaf7, 0xeafc, 0xeafe, 0xeba4, 0xeba7, 0xeba9, 0xebaa, - 0xebba, 0xebbb, 0xebbd, 0xebc1, 0xebc2, 0xebc6, 0xebc7, 0xebcc, - 0xebcf, 0xebd0, 0xebd1, 0xebd2, 0xebd8, 0xeca6, 0xeca7, 0xecaa, - 0xecaf, 0xecb0, 0xecb1, 0xecb2, 0xecb5, 0xecb8, 0xecba, 0xecc0, - 0xecc1, 0xecc5, 0xecc6, 0xecc9, 0xecca, 0xecd5, 0xecdd, 0xecde, - 0xece1, 0xece4, 0xece7, 0xece8, 0xecf7, 0xecf8, 0xecfa, 0xeda1, - 0xeda2, 0xeda3, 0xedee, 0xeedb, 0xf2bd, 0xf2fa, 0xf3b1, 0xf4a7, - /* 0xfa00 .. 0xfaff */ - 0xf4ee, 0xf6f4, 0xf6f6, 0xf7b8, 0xf7c8, 0xf7d3, 0xf8db, 0xf8f0, - 0xfaa1, 0xfaa2, 0xfae6, 0xfca9, 0xe8b4, 0x003f, 0x003f, 0x003f, - 0xf5c0, 0x003f, 0xf4e7, 0x003f, 0x003f, 0xfdeb, 0x003f, 0xeccc, - 0x003f, 0xe3ea, 0xdfd4, 0xdcd8, 0xeffe, 0xeff1, 0xe9e2, 0x003f, - 0x003f, 0x003f, 0xf0b3, 0x003f, 0x003f, 0xecef, 0xd4b4, 0x003f, - 0x003f, 0x003f, 0xdaf9, 0xdef8, 0xcebd, 0xf9cd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xff00 .. 0xffff */ - 0x003f, 0xa3a1, 0xa3a2, 0xa3a3, 0xa3a4, 0xa3a5, 0xa3a6, 0xa3a7, - 0xa3a8, 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, - 0xa3b0, 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, - 0xa3b8, 0xa3b9, 0xa3ba, 0xa3bb, 0xa3bc, 0xa3bd, 0xa3be, 0xa3bf, - 0xa3c0, 0xa3c1, 0xa3c2, 0xa3c3, 0xa3c4, 0xa3c5, 0xa3c6, 0xa3c7, - 0xa3c8, 0xa3c9, 0xa3ca, 0xa3cb, 0xa3cc, 0xa3cd, 0xa3ce, 0xa3cf, - 0xa3d0, 0xa3d1, 0xa3d2, 0xa3d3, 0xa3d4, 0xa3d5, 0xa3d6, 0xa3d7, - 0xa3d8, 0xa3d9, 0xa3da, 0xa3db, 0xa1ac, 0xa3dd, 0xa3de, 0xa3df, - 0xa3e0, 0xa3e1, 0xa3e2, 0xa3e3, 0xa3e4, 0xa3e5, 0xa3e6, 0xa3e7, - 0xa3e8, 0xa3e9, 0xa3ea, 0xa3eb, 0xa3ec, 0xa3ed, 0xa3ee, 0xa3ef, - 0xa3f0, 0xa3f1, 0xa3f2, 0xa3f3, 0xa3f4, 0xa3f5, 0xa3f6, 0xa3f7, - 0xa3f8, 0xa3f9, 0xa3fa, 0xa3fb, 0xa3fc, 0xa3fd, 0xa2a6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa4d4, 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, 0xa4a5, 0xa4a6, 0xa4a7, - 0xa4a8, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4ae, 0xa4af, - 0xa4b0, 0xa4b1, 0xa4b2, 0xa4b3, 0xa4b4, 0xa4b5, 0xa4b6, 0xa4b7, - 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, 0xa4be, 0x003f, - 0x003f, 0x003f, 0xa4bf, 0xa4c0, 0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, - 0x003f, 0x003f, 0xa4c5, 0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 0xa4ca, - 0x003f, 0x003f, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, 0xa4d0, - 0x003f, 0x003f, 0xa4d1, 0xa4d2, 0xa4d3, 0x003f, 0x003f, 0x003f, - 0xa1cb, 0xa1cc, 0xa1fe, 0xa3fe, 0x003f, 0xa1cd, 0xa3dc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* defaults */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x9400, 0x9400, 0x9400, - 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, - 0x9400, 0x0500, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, - 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, - 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x9400, - 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, - 0x0d00, 0x0e00, 0x0f00, 0x1000, 0x9400, 0x9400, 0x9400, 0x9400, - 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, - 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, - 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x1100, 0x1200, - 0x1300, 0x1400, 0x1500, 0x1600, 0x1700, 0x1800, 0x1900, 0x1a00, - 0x1b00, 0x1c00, 0x1d00, 0x1e00, 0x1f00, 0x2000, 0x2100, 0x2200, - 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, 0x2800, 0x2900, 0x2a00, - 0x2b00, 0x2c00, 0x2d00, 0x2e00, 0x2f00, 0x3000, 0x3100, 0x3200, - 0x3300, 0x3400, 0x3500, 0x3600, 0x3700, 0x3800, 0x3900, 0x3a00, - 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, 0x4000, 0x4100, 0x4200, - 0x4300, 0x4400, 0x4500, 0x4600, 0x4700, 0x4800, 0x4900, 0x4a00, - 0x4b00, 0x4c00, 0x4d00, 0x4e00, 0x4f00, 0x5000, 0x5100, 0x5200, - 0x5300, 0x5400, 0x5500, 0x5600, 0x5700, 0x5800, 0x5900, 0x5a00, - 0x5b00, 0x5c00, 0x5d00, 0x5e00, 0x5f00, 0x6000, 0x6100, 0x6200, - 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, - 0x9400, 0x9400, 0x9400, 0x9400, 0x6300, 0x6400, 0x6500, 0x6600, - 0x6700, 0x6800, 0x6900, 0x6a00, 0x6b00, 0x6c00, 0x6d00, 0x6e00, - 0x6f00, 0x7000, 0x7100, 0x7200, 0x7300, 0x7400, 0x7500, 0x7600, - 0x7700, 0x7800, 0x7900, 0x7a00, 0x7b00, 0x7c00, 0x7d00, 0x7e00, - 0x7f00, 0x8000, 0x8100, 0x8200, 0x8300, 0x8400, 0x8500, 0x8600, - 0x8700, 0x8800, 0x8900, 0x8a00, 0x8b00, 0x8c00, 0x8d00, 0x8e00, - 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, - 0x8f00, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, - 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, - 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, 0x9400, - 0x9000, 0x9100, 0x9200, 0x9400, 0x9400, 0x9400, 0x9400, 0x9300 -}; - -const struct dbcs_table cptable_949 = -{ - { 949, 2, 0x003f, 0x003f, "ANSI/OEM Korean Unified Hangul" }, - cp2uni, - cp2uni_leadbytes, - uni2cp_low, - uni2cp_high, - { - 0x81, 0xfe, 0x00, 0x00 - } -}; diff --git a/reactos/tools/unicode/c_950.c b/reactos/tools/unicode/c_950.c deleted file mode 100644 index fc7f76f034a..00000000000 --- a/reactos/tools/unicode/c_950.c +++ /dev/null @@ -1,8412 +0,0 @@ -/* code page 950 (ANSI/OEM Traditional Chinese Big5) */ -/* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit950.txt */ -/* DO NOT EDIT!! */ - -#include "wine/unicode.h" - -static const WCHAR cp2uni[32512] = -{ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf8f8, - /* lead byte 81 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeeb8, 0xeeb9, 0xeeba, 0xeebb, 0xeebc, 0xeebd, 0xeebe, 0xeebf, - 0xeec0, 0xeec1, 0xeec2, 0xeec3, 0xeec4, 0xeec5, 0xeec6, 0xeec7, - 0xeec8, 0xeec9, 0xeeca, 0xeecb, 0xeecc, 0xeecd, 0xeece, 0xeecf, - 0xeed0, 0xeed1, 0xeed2, 0xeed3, 0xeed4, 0xeed5, 0xeed6, 0xeed7, - 0xeed8, 0xeed9, 0xeeda, 0xeedb, 0xeedc, 0xeedd, 0xeede, 0xeedf, - 0xeee0, 0xeee1, 0xeee2, 0xeee3, 0xeee4, 0xeee5, 0xeee6, 0xeee7, - 0xeee8, 0xeee9, 0xeeea, 0xeeeb, 0xeeec, 0xeeed, 0xeeee, 0xeeef, - 0xeef0, 0xeef1, 0xeef2, 0xeef3, 0xeef4, 0xeef5, 0xeef6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeef7, 0xeef8, 0xeef9, 0xeefa, 0xeefb, 0xeefc, 0xeefd, - 0xeefe, 0xeeff, 0xef00, 0xef01, 0xef02, 0xef03, 0xef04, 0xef05, - 0xef06, 0xef07, 0xef08, 0xef09, 0xef0a, 0xef0b, 0xef0c, 0xef0d, - 0xef0e, 0xef0f, 0xef10, 0xef11, 0xef12, 0xef13, 0xef14, 0xef15, - 0xef16, 0xef17, 0xef18, 0xef19, 0xef1a, 0xef1b, 0xef1c, 0xef1d, - 0xef1e, 0xef1f, 0xef20, 0xef21, 0xef22, 0xef23, 0xef24, 0xef25, - 0xef26, 0xef27, 0xef28, 0xef29, 0xef2a, 0xef2b, 0xef2c, 0xef2d, - 0xef2e, 0xef2f, 0xef30, 0xef31, 0xef32, 0xef33, 0xef34, 0xef35, - 0xef36, 0xef37, 0xef38, 0xef39, 0xef3a, 0xef3b, 0xef3c, 0xef3d, - 0xef3e, 0xef3f, 0xef40, 0xef41, 0xef42, 0xef43, 0xef44, 0xef45, - 0xef46, 0xef47, 0xef48, 0xef49, 0xef4a, 0xef4b, 0xef4c, 0xef4d, - 0xef4e, 0xef4f, 0xef50, 0xef51, 0xef52, 0xef53, 0xef54, 0x003f, - /* lead byte 82 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xef55, 0xef56, 0xef57, 0xef58, 0xef59, 0xef5a, 0xef5b, 0xef5c, - 0xef5d, 0xef5e, 0xef5f, 0xef60, 0xef61, 0xef62, 0xef63, 0xef64, - 0xef65, 0xef66, 0xef67, 0xef68, 0xef69, 0xef6a, 0xef6b, 0xef6c, - 0xef6d, 0xef6e, 0xef6f, 0xef70, 0xef71, 0xef72, 0xef73, 0xef74, - 0xef75, 0xef76, 0xef77, 0xef78, 0xef79, 0xef7a, 0xef7b, 0xef7c, - 0xef7d, 0xef7e, 0xef7f, 0xef80, 0xef81, 0xef82, 0xef83, 0xef84, - 0xef85, 0xef86, 0xef87, 0xef88, 0xef89, 0xef8a, 0xef8b, 0xef8c, - 0xef8d, 0xef8e, 0xef8f, 0xef90, 0xef91, 0xef92, 0xef93, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xef94, 0xef95, 0xef96, 0xef97, 0xef98, 0xef99, 0xef9a, - 0xef9b, 0xef9c, 0xef9d, 0xef9e, 0xef9f, 0xefa0, 0xefa1, 0xefa2, - 0xefa3, 0xefa4, 0xefa5, 0xefa6, 0xefa7, 0xefa8, 0xefa9, 0xefaa, - 0xefab, 0xefac, 0xefad, 0xefae, 0xefaf, 0xefb0, 0xefb1, 0xefb2, - 0xefb3, 0xefb4, 0xefb5, 0xefb6, 0xefb7, 0xefb8, 0xefb9, 0xefba, - 0xefbb, 0xefbc, 0xefbd, 0xefbe, 0xefbf, 0xefc0, 0xefc1, 0xefc2, - 0xefc3, 0xefc4, 0xefc5, 0xefc6, 0xefc7, 0xefc8, 0xefc9, 0xefca, - 0xefcb, 0xefcc, 0xefcd, 0xefce, 0xefcf, 0xefd0, 0xefd1, 0xefd2, - 0xefd3, 0xefd4, 0xefd5, 0xefd6, 0xefd7, 0xefd8, 0xefd9, 0xefda, - 0xefdb, 0xefdc, 0xefdd, 0xefde, 0xefdf, 0xefe0, 0xefe1, 0xefe2, - 0xefe3, 0xefe4, 0xefe5, 0xefe6, 0xefe7, 0xefe8, 0xefe9, 0xefea, - 0xefeb, 0xefec, 0xefed, 0xefee, 0xefef, 0xeff0, 0xeff1, 0x003f, - /* lead byte 83 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeff2, 0xeff3, 0xeff4, 0xeff5, 0xeff6, 0xeff7, 0xeff8, 0xeff9, - 0xeffa, 0xeffb, 0xeffc, 0xeffd, 0xeffe, 0xefff, 0xf000, 0xf001, - 0xf002, 0xf003, 0xf004, 0xf005, 0xf006, 0xf007, 0xf008, 0xf009, - 0xf00a, 0xf00b, 0xf00c, 0xf00d, 0xf00e, 0xf00f, 0xf010, 0xf011, - 0xf012, 0xf013, 0xf014, 0xf015, 0xf016, 0xf017, 0xf018, 0xf019, - 0xf01a, 0xf01b, 0xf01c, 0xf01d, 0xf01e, 0xf01f, 0xf020, 0xf021, - 0xf022, 0xf023, 0xf024, 0xf025, 0xf026, 0xf027, 0xf028, 0xf029, - 0xf02a, 0xf02b, 0xf02c, 0xf02d, 0xf02e, 0xf02f, 0xf030, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf031, 0xf032, 0xf033, 0xf034, 0xf035, 0xf036, 0xf037, - 0xf038, 0xf039, 0xf03a, 0xf03b, 0xf03c, 0xf03d, 0xf03e, 0xf03f, - 0xf040, 0xf041, 0xf042, 0xf043, 0xf044, 0xf045, 0xf046, 0xf047, - 0xf048, 0xf049, 0xf04a, 0xf04b, 0xf04c, 0xf04d, 0xf04e, 0xf04f, - 0xf050, 0xf051, 0xf052, 0xf053, 0xf054, 0xf055, 0xf056, 0xf057, - 0xf058, 0xf059, 0xf05a, 0xf05b, 0xf05c, 0xf05d, 0xf05e, 0xf05f, - 0xf060, 0xf061, 0xf062, 0xf063, 0xf064, 0xf065, 0xf066, 0xf067, - 0xf068, 0xf069, 0xf06a, 0xf06b, 0xf06c, 0xf06d, 0xf06e, 0xf06f, - 0xf070, 0xf071, 0xf072, 0xf073, 0xf074, 0xf075, 0xf076, 0xf077, - 0xf078, 0xf079, 0xf07a, 0xf07b, 0xf07c, 0xf07d, 0xf07e, 0xf07f, - 0xf080, 0xf081, 0xf082, 0xf083, 0xf084, 0xf085, 0xf086, 0xf087, - 0xf088, 0xf089, 0xf08a, 0xf08b, 0xf08c, 0xf08d, 0xf08e, 0x003f, - /* lead byte 84 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf08f, 0xf090, 0xf091, 0xf092, 0xf093, 0xf094, 0xf095, 0xf096, - 0xf097, 0xf098, 0xf099, 0xf09a, 0xf09b, 0xf09c, 0xf09d, 0xf09e, - 0xf09f, 0xf0a0, 0xf0a1, 0xf0a2, 0xf0a3, 0xf0a4, 0xf0a5, 0xf0a6, - 0xf0a7, 0xf0a8, 0xf0a9, 0xf0aa, 0xf0ab, 0xf0ac, 0xf0ad, 0xf0ae, - 0xf0af, 0xf0b0, 0xf0b1, 0xf0b2, 0xf0b3, 0xf0b4, 0xf0b5, 0xf0b6, - 0xf0b7, 0xf0b8, 0xf0b9, 0xf0ba, 0xf0bb, 0xf0bc, 0xf0bd, 0xf0be, - 0xf0bf, 0xf0c0, 0xf0c1, 0xf0c2, 0xf0c3, 0xf0c4, 0xf0c5, 0xf0c6, - 0xf0c7, 0xf0c8, 0xf0c9, 0xf0ca, 0xf0cb, 0xf0cc, 0xf0cd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf0ce, 0xf0cf, 0xf0d0, 0xf0d1, 0xf0d2, 0xf0d3, 0xf0d4, - 0xf0d5, 0xf0d6, 0xf0d7, 0xf0d8, 0xf0d9, 0xf0da, 0xf0db, 0xf0dc, - 0xf0dd, 0xf0de, 0xf0df, 0xf0e0, 0xf0e1, 0xf0e2, 0xf0e3, 0xf0e4, - 0xf0e5, 0xf0e6, 0xf0e7, 0xf0e8, 0xf0e9, 0xf0ea, 0xf0eb, 0xf0ec, - 0xf0ed, 0xf0ee, 0xf0ef, 0xf0f0, 0xf0f1, 0xf0f2, 0xf0f3, 0xf0f4, - 0xf0f5, 0xf0f6, 0xf0f7, 0xf0f8, 0xf0f9, 0xf0fa, 0xf0fb, 0xf0fc, - 0xf0fd, 0xf0fe, 0xf0ff, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104, - 0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf10a, 0xf10b, 0xf10c, - 0xf10d, 0xf10e, 0xf10f, 0xf110, 0xf111, 0xf112, 0xf113, 0xf114, - 0xf115, 0xf116, 0xf117, 0xf118, 0xf119, 0xf11a, 0xf11b, 0xf11c, - 0xf11d, 0xf11e, 0xf11f, 0xf120, 0xf121, 0xf122, 0xf123, 0xf124, - 0xf125, 0xf126, 0xf127, 0xf128, 0xf129, 0xf12a, 0xf12b, 0x003f, - /* lead byte 85 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf12c, 0xf12d, 0xf12e, 0xf12f, 0xf130, 0xf131, 0xf132, 0xf133, - 0xf134, 0xf135, 0xf136, 0xf137, 0xf138, 0xf139, 0xf13a, 0xf13b, - 0xf13c, 0xf13d, 0xf13e, 0xf13f, 0xf140, 0xf141, 0xf142, 0xf143, - 0xf144, 0xf145, 0xf146, 0xf147, 0xf148, 0xf149, 0xf14a, 0xf14b, - 0xf14c, 0xf14d, 0xf14e, 0xf14f, 0xf150, 0xf151, 0xf152, 0xf153, - 0xf154, 0xf155, 0xf156, 0xf157, 0xf158, 0xf159, 0xf15a, 0xf15b, - 0xf15c, 0xf15d, 0xf15e, 0xf15f, 0xf160, 0xf161, 0xf162, 0xf163, - 0xf164, 0xf165, 0xf166, 0xf167, 0xf168, 0xf169, 0xf16a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf16b, 0xf16c, 0xf16d, 0xf16e, 0xf16f, 0xf170, 0xf171, - 0xf172, 0xf173, 0xf174, 0xf175, 0xf176, 0xf177, 0xf178, 0xf179, - 0xf17a, 0xf17b, 0xf17c, 0xf17d, 0xf17e, 0xf17f, 0xf180, 0xf181, - 0xf182, 0xf183, 0xf184, 0xf185, 0xf186, 0xf187, 0xf188, 0xf189, - 0xf18a, 0xf18b, 0xf18c, 0xf18d, 0xf18e, 0xf18f, 0xf190, 0xf191, - 0xf192, 0xf193, 0xf194, 0xf195, 0xf196, 0xf197, 0xf198, 0xf199, - 0xf19a, 0xf19b, 0xf19c, 0xf19d, 0xf19e, 0xf19f, 0xf1a0, 0xf1a1, - 0xf1a2, 0xf1a3, 0xf1a4, 0xf1a5, 0xf1a6, 0xf1a7, 0xf1a8, 0xf1a9, - 0xf1aa, 0xf1ab, 0xf1ac, 0xf1ad, 0xf1ae, 0xf1af, 0xf1b0, 0xf1b1, - 0xf1b2, 0xf1b3, 0xf1b4, 0xf1b5, 0xf1b6, 0xf1b7, 0xf1b8, 0xf1b9, - 0xf1ba, 0xf1bb, 0xf1bc, 0xf1bd, 0xf1be, 0xf1bf, 0xf1c0, 0xf1c1, - 0xf1c2, 0xf1c3, 0xf1c4, 0xf1c5, 0xf1c6, 0xf1c7, 0xf1c8, 0x003f, - /* lead byte 86 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf1c9, 0xf1ca, 0xf1cb, 0xf1cc, 0xf1cd, 0xf1ce, 0xf1cf, 0xf1d0, - 0xf1d1, 0xf1d2, 0xf1d3, 0xf1d4, 0xf1d5, 0xf1d6, 0xf1d7, 0xf1d8, - 0xf1d9, 0xf1da, 0xf1db, 0xf1dc, 0xf1dd, 0xf1de, 0xf1df, 0xf1e0, - 0xf1e1, 0xf1e2, 0xf1e3, 0xf1e4, 0xf1e5, 0xf1e6, 0xf1e7, 0xf1e8, - 0xf1e9, 0xf1ea, 0xf1eb, 0xf1ec, 0xf1ed, 0xf1ee, 0xf1ef, 0xf1f0, - 0xf1f1, 0xf1f2, 0xf1f3, 0xf1f4, 0xf1f5, 0xf1f6, 0xf1f7, 0xf1f8, - 0xf1f9, 0xf1fa, 0xf1fb, 0xf1fc, 0xf1fd, 0xf1fe, 0xf1ff, 0xf200, - 0xf201, 0xf202, 0xf203, 0xf204, 0xf205, 0xf206, 0xf207, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf208, 0xf209, 0xf20a, 0xf20b, 0xf20c, 0xf20d, 0xf20e, - 0xf20f, 0xf210, 0xf211, 0xf212, 0xf213, 0xf214, 0xf215, 0xf216, - 0xf217, 0xf218, 0xf219, 0xf21a, 0xf21b, 0xf21c, 0xf21d, 0xf21e, - 0xf21f, 0xf220, 0xf221, 0xf222, 0xf223, 0xf224, 0xf225, 0xf226, - 0xf227, 0xf228, 0xf229, 0xf22a, 0xf22b, 0xf22c, 0xf22d, 0xf22e, - 0xf22f, 0xf230, 0xf231, 0xf232, 0xf233, 0xf234, 0xf235, 0xf236, - 0xf237, 0xf238, 0xf239, 0xf23a, 0xf23b, 0xf23c, 0xf23d, 0xf23e, - 0xf23f, 0xf240, 0xf241, 0xf242, 0xf243, 0xf244, 0xf245, 0xf246, - 0xf247, 0xf248, 0xf249, 0xf24a, 0xf24b, 0xf24c, 0xf24d, 0xf24e, - 0xf24f, 0xf250, 0xf251, 0xf252, 0xf253, 0xf254, 0xf255, 0xf256, - 0xf257, 0xf258, 0xf259, 0xf25a, 0xf25b, 0xf25c, 0xf25d, 0xf25e, - 0xf25f, 0xf260, 0xf261, 0xf262, 0xf263, 0xf264, 0xf265, 0x003f, - /* lead byte 87 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf266, 0xf267, 0xf268, 0xf269, 0xf26a, 0xf26b, 0xf26c, 0xf26d, - 0xf26e, 0xf26f, 0xf270, 0xf271, 0xf272, 0xf273, 0xf274, 0xf275, - 0xf276, 0xf277, 0xf278, 0xf279, 0xf27a, 0xf27b, 0xf27c, 0xf27d, - 0xf27e, 0xf27f, 0xf280, 0xf281, 0xf282, 0xf283, 0xf284, 0xf285, - 0xf286, 0xf287, 0xf288, 0xf289, 0xf28a, 0xf28b, 0xf28c, 0xf28d, - 0xf28e, 0xf28f, 0xf290, 0xf291, 0xf292, 0xf293, 0xf294, 0xf295, - 0xf296, 0xf297, 0xf298, 0xf299, 0xf29a, 0xf29b, 0xf29c, 0xf29d, - 0xf29e, 0xf29f, 0xf2a0, 0xf2a1, 0xf2a2, 0xf2a3, 0xf2a4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf2a5, 0xf2a6, 0xf2a7, 0xf2a8, 0xf2a9, 0xf2aa, 0xf2ab, - 0xf2ac, 0xf2ad, 0xf2ae, 0xf2af, 0xf2b0, 0xf2b1, 0xf2b2, 0xf2b3, - 0xf2b4, 0xf2b5, 0xf2b6, 0xf2b7, 0xf2b8, 0xf2b9, 0xf2ba, 0xf2bb, - 0xf2bc, 0xf2bd, 0xf2be, 0xf2bf, 0xf2c0, 0xf2c1, 0xf2c2, 0xf2c3, - 0xf2c4, 0xf2c5, 0xf2c6, 0xf2c7, 0xf2c8, 0xf2c9, 0xf2ca, 0xf2cb, - 0xf2cc, 0xf2cd, 0xf2ce, 0xf2cf, 0xf2d0, 0xf2d1, 0xf2d2, 0xf2d3, - 0xf2d4, 0xf2d5, 0xf2d6, 0xf2d7, 0xf2d8, 0xf2d9, 0xf2da, 0xf2db, - 0xf2dc, 0xf2dd, 0xf2de, 0xf2df, 0xf2e0, 0xf2e1, 0xf2e2, 0xf2e3, - 0xf2e4, 0xf2e5, 0xf2e6, 0xf2e7, 0xf2e8, 0xf2e9, 0xf2ea, 0xf2eb, - 0xf2ec, 0xf2ed, 0xf2ee, 0xf2ef, 0xf2f0, 0xf2f1, 0xf2f2, 0xf2f3, - 0xf2f4, 0xf2f5, 0xf2f6, 0xf2f7, 0xf2f8, 0xf2f9, 0xf2fa, 0xf2fb, - 0xf2fc, 0xf2fd, 0xf2fe, 0xf2ff, 0xf300, 0xf301, 0xf302, 0x003f, - /* lead byte 88 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf303, 0xf304, 0xf305, 0xf306, 0xf307, 0xf308, 0xf309, 0xf30a, - 0xf30b, 0xf30c, 0xf30d, 0xf30e, 0xf30f, 0xf310, 0xf311, 0xf312, - 0xf313, 0xf314, 0xf315, 0xf316, 0xf317, 0xf318, 0xf319, 0xf31a, - 0xf31b, 0xf31c, 0xf31d, 0xf31e, 0xf31f, 0xf320, 0xf321, 0xf322, - 0xf323, 0xf324, 0xf325, 0xf326, 0xf327, 0xf328, 0xf329, 0xf32a, - 0xf32b, 0xf32c, 0xf32d, 0xf32e, 0xf32f, 0xf330, 0xf331, 0xf332, - 0xf333, 0xf334, 0xf335, 0xf336, 0xf337, 0xf338, 0xf339, 0xf33a, - 0xf33b, 0xf33c, 0xf33d, 0xf33e, 0xf33f, 0xf340, 0xf341, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf342, 0xf343, 0xf344, 0xf345, 0xf346, 0xf347, 0xf348, - 0xf349, 0xf34a, 0xf34b, 0xf34c, 0xf34d, 0xf34e, 0xf34f, 0xf350, - 0xf351, 0xf352, 0xf353, 0xf354, 0xf355, 0xf356, 0xf357, 0xf358, - 0xf359, 0xf35a, 0xf35b, 0xf35c, 0xf35d, 0xf35e, 0xf35f, 0xf360, - 0xf361, 0xf362, 0xf363, 0xf364, 0xf365, 0xf366, 0xf367, 0xf368, - 0xf369, 0xf36a, 0xf36b, 0xf36c, 0xf36d, 0xf36e, 0xf36f, 0xf370, - 0xf371, 0xf372, 0xf373, 0xf374, 0xf375, 0xf376, 0xf377, 0xf378, - 0xf379, 0xf37a, 0xf37b, 0xf37c, 0xf37d, 0xf37e, 0xf37f, 0xf380, - 0xf381, 0xf382, 0xf383, 0xf384, 0xf385, 0xf386, 0xf387, 0xf388, - 0xf389, 0xf38a, 0xf38b, 0xf38c, 0xf38d, 0xf38e, 0xf38f, 0xf390, - 0xf391, 0xf392, 0xf393, 0xf394, 0xf395, 0xf396, 0xf397, 0xf398, - 0xf399, 0xf39a, 0xf39b, 0xf39c, 0xf39d, 0xf39e, 0xf39f, 0x003f, - /* lead byte 89 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf3a0, 0xf3a1, 0xf3a2, 0xf3a3, 0xf3a4, 0xf3a5, 0xf3a6, 0xf3a7, - 0xf3a8, 0xf3a9, 0xf3aa, 0xf3ab, 0xf3ac, 0xf3ad, 0xf3ae, 0xf3af, - 0xf3b0, 0xf3b1, 0xf3b2, 0xf3b3, 0xf3b4, 0xf3b5, 0xf3b6, 0xf3b7, - 0xf3b8, 0xf3b9, 0xf3ba, 0xf3bb, 0xf3bc, 0xf3bd, 0xf3be, 0xf3bf, - 0xf3c0, 0xf3c1, 0xf3c2, 0xf3c3, 0xf3c4, 0xf3c5, 0xf3c6, 0xf3c7, - 0xf3c8, 0xf3c9, 0xf3ca, 0xf3cb, 0xf3cc, 0xf3cd, 0xf3ce, 0xf3cf, - 0xf3d0, 0xf3d1, 0xf3d2, 0xf3d3, 0xf3d4, 0xf3d5, 0xf3d6, 0xf3d7, - 0xf3d8, 0xf3d9, 0xf3da, 0xf3db, 0xf3dc, 0xf3dd, 0xf3de, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf3df, 0xf3e0, 0xf3e1, 0xf3e2, 0xf3e3, 0xf3e4, 0xf3e5, - 0xf3e6, 0xf3e7, 0xf3e8, 0xf3e9, 0xf3ea, 0xf3eb, 0xf3ec, 0xf3ed, - 0xf3ee, 0xf3ef, 0xf3f0, 0xf3f1, 0xf3f2, 0xf3f3, 0xf3f4, 0xf3f5, - 0xf3f6, 0xf3f7, 0xf3f8, 0xf3f9, 0xf3fa, 0xf3fb, 0xf3fc, 0xf3fd, - 0xf3fe, 0xf3ff, 0xf400, 0xf401, 0xf402, 0xf403, 0xf404, 0xf405, - 0xf406, 0xf407, 0xf408, 0xf409, 0xf40a, 0xf40b, 0xf40c, 0xf40d, - 0xf40e, 0xf40f, 0xf410, 0xf411, 0xf412, 0xf413, 0xf414, 0xf415, - 0xf416, 0xf417, 0xf418, 0xf419, 0xf41a, 0xf41b, 0xf41c, 0xf41d, - 0xf41e, 0xf41f, 0xf420, 0xf421, 0xf422, 0xf423, 0xf424, 0xf425, - 0xf426, 0xf427, 0xf428, 0xf429, 0xf42a, 0xf42b, 0xf42c, 0xf42d, - 0xf42e, 0xf42f, 0xf430, 0xf431, 0xf432, 0xf433, 0xf434, 0xf435, - 0xf436, 0xf437, 0xf438, 0xf439, 0xf43a, 0xf43b, 0xf43c, 0x003f, - /* lead byte 8a */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf43d, 0xf43e, 0xf43f, 0xf440, 0xf441, 0xf442, 0xf443, 0xf444, - 0xf445, 0xf446, 0xf447, 0xf448, 0xf449, 0xf44a, 0xf44b, 0xf44c, - 0xf44d, 0xf44e, 0xf44f, 0xf450, 0xf451, 0xf452, 0xf453, 0xf454, - 0xf455, 0xf456, 0xf457, 0xf458, 0xf459, 0xf45a, 0xf45b, 0xf45c, - 0xf45d, 0xf45e, 0xf45f, 0xf460, 0xf461, 0xf462, 0xf463, 0xf464, - 0xf465, 0xf466, 0xf467, 0xf468, 0xf469, 0xf46a, 0xf46b, 0xf46c, - 0xf46d, 0xf46e, 0xf46f, 0xf470, 0xf471, 0xf472, 0xf473, 0xf474, - 0xf475, 0xf476, 0xf477, 0xf478, 0xf479, 0xf47a, 0xf47b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf47c, 0xf47d, 0xf47e, 0xf47f, 0xf480, 0xf481, 0xf482, - 0xf483, 0xf484, 0xf485, 0xf486, 0xf487, 0xf488, 0xf489, 0xf48a, - 0xf48b, 0xf48c, 0xf48d, 0xf48e, 0xf48f, 0xf490, 0xf491, 0xf492, - 0xf493, 0xf494, 0xf495, 0xf496, 0xf497, 0xf498, 0xf499, 0xf49a, - 0xf49b, 0xf49c, 0xf49d, 0xf49e, 0xf49f, 0xf4a0, 0xf4a1, 0xf4a2, - 0xf4a3, 0xf4a4, 0xf4a5, 0xf4a6, 0xf4a7, 0xf4a8, 0xf4a9, 0xf4aa, - 0xf4ab, 0xf4ac, 0xf4ad, 0xf4ae, 0xf4af, 0xf4b0, 0xf4b1, 0xf4b2, - 0xf4b3, 0xf4b4, 0xf4b5, 0xf4b6, 0xf4b7, 0xf4b8, 0xf4b9, 0xf4ba, - 0xf4bb, 0xf4bc, 0xf4bd, 0xf4be, 0xf4bf, 0xf4c0, 0xf4c1, 0xf4c2, - 0xf4c3, 0xf4c4, 0xf4c5, 0xf4c6, 0xf4c7, 0xf4c8, 0xf4c9, 0xf4ca, - 0xf4cb, 0xf4cc, 0xf4cd, 0xf4ce, 0xf4cf, 0xf4d0, 0xf4d1, 0xf4d2, - 0xf4d3, 0xf4d4, 0xf4d5, 0xf4d6, 0xf4d7, 0xf4d8, 0xf4d9, 0x003f, - /* lead byte 8b */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf4da, 0xf4db, 0xf4dc, 0xf4dd, 0xf4de, 0xf4df, 0xf4e0, 0xf4e1, - 0xf4e2, 0xf4e3, 0xf4e4, 0xf4e5, 0xf4e6, 0xf4e7, 0xf4e8, 0xf4e9, - 0xf4ea, 0xf4eb, 0xf4ec, 0xf4ed, 0xf4ee, 0xf4ef, 0xf4f0, 0xf4f1, - 0xf4f2, 0xf4f3, 0xf4f4, 0xf4f5, 0xf4f6, 0xf4f7, 0xf4f8, 0xf4f9, - 0xf4fa, 0xf4fb, 0xf4fc, 0xf4fd, 0xf4fe, 0xf4ff, 0xf500, 0xf501, - 0xf502, 0xf503, 0xf504, 0xf505, 0xf506, 0xf507, 0xf508, 0xf509, - 0xf50a, 0xf50b, 0xf50c, 0xf50d, 0xf50e, 0xf50f, 0xf510, 0xf511, - 0xf512, 0xf513, 0xf514, 0xf515, 0xf516, 0xf517, 0xf518, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf519, 0xf51a, 0xf51b, 0xf51c, 0xf51d, 0xf51e, 0xf51f, - 0xf520, 0xf521, 0xf522, 0xf523, 0xf524, 0xf525, 0xf526, 0xf527, - 0xf528, 0xf529, 0xf52a, 0xf52b, 0xf52c, 0xf52d, 0xf52e, 0xf52f, - 0xf530, 0xf531, 0xf532, 0xf533, 0xf534, 0xf535, 0xf536, 0xf537, - 0xf538, 0xf539, 0xf53a, 0xf53b, 0xf53c, 0xf53d, 0xf53e, 0xf53f, - 0xf540, 0xf541, 0xf542, 0xf543, 0xf544, 0xf545, 0xf546, 0xf547, - 0xf548, 0xf549, 0xf54a, 0xf54b, 0xf54c, 0xf54d, 0xf54e, 0xf54f, - 0xf550, 0xf551, 0xf552, 0xf553, 0xf554, 0xf555, 0xf556, 0xf557, - 0xf558, 0xf559, 0xf55a, 0xf55b, 0xf55c, 0xf55d, 0xf55e, 0xf55f, - 0xf560, 0xf561, 0xf562, 0xf563, 0xf564, 0xf565, 0xf566, 0xf567, - 0xf568, 0xf569, 0xf56a, 0xf56b, 0xf56c, 0xf56d, 0xf56e, 0xf56f, - 0xf570, 0xf571, 0xf572, 0xf573, 0xf574, 0xf575, 0xf576, 0x003f, - /* lead byte 8c */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf577, 0xf578, 0xf579, 0xf57a, 0xf57b, 0xf57c, 0xf57d, 0xf57e, - 0xf57f, 0xf580, 0xf581, 0xf582, 0xf583, 0xf584, 0xf585, 0xf586, - 0xf587, 0xf588, 0xf589, 0xf58a, 0xf58b, 0xf58c, 0xf58d, 0xf58e, - 0xf58f, 0xf590, 0xf591, 0xf592, 0xf593, 0xf594, 0xf595, 0xf596, - 0xf597, 0xf598, 0xf599, 0xf59a, 0xf59b, 0xf59c, 0xf59d, 0xf59e, - 0xf59f, 0xf5a0, 0xf5a1, 0xf5a2, 0xf5a3, 0xf5a4, 0xf5a5, 0xf5a6, - 0xf5a7, 0xf5a8, 0xf5a9, 0xf5aa, 0xf5ab, 0xf5ac, 0xf5ad, 0xf5ae, - 0xf5af, 0xf5b0, 0xf5b1, 0xf5b2, 0xf5b3, 0xf5b4, 0xf5b5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf5b6, 0xf5b7, 0xf5b8, 0xf5b9, 0xf5ba, 0xf5bb, 0xf5bc, - 0xf5bd, 0xf5be, 0xf5bf, 0xf5c0, 0xf5c1, 0xf5c2, 0xf5c3, 0xf5c4, - 0xf5c5, 0xf5c6, 0xf5c7, 0xf5c8, 0xf5c9, 0xf5ca, 0xf5cb, 0xf5cc, - 0xf5cd, 0xf5ce, 0xf5cf, 0xf5d0, 0xf5d1, 0xf5d2, 0xf5d3, 0xf5d4, - 0xf5d5, 0xf5d6, 0xf5d7, 0xf5d8, 0xf5d9, 0xf5da, 0xf5db, 0xf5dc, - 0xf5dd, 0xf5de, 0xf5df, 0xf5e0, 0xf5e1, 0xf5e2, 0xf5e3, 0xf5e4, - 0xf5e5, 0xf5e6, 0xf5e7, 0xf5e8, 0xf5e9, 0xf5ea, 0xf5eb, 0xf5ec, - 0xf5ed, 0xf5ee, 0xf5ef, 0xf5f0, 0xf5f1, 0xf5f2, 0xf5f3, 0xf5f4, - 0xf5f5, 0xf5f6, 0xf5f7, 0xf5f8, 0xf5f9, 0xf5fa, 0xf5fb, 0xf5fc, - 0xf5fd, 0xf5fe, 0xf5ff, 0xf600, 0xf601, 0xf602, 0xf603, 0xf604, - 0xf605, 0xf606, 0xf607, 0xf608, 0xf609, 0xf60a, 0xf60b, 0xf60c, - 0xf60d, 0xf60e, 0xf60f, 0xf610, 0xf611, 0xf612, 0xf613, 0x003f, - /* lead byte 8d */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf614, 0xf615, 0xf616, 0xf617, 0xf618, 0xf619, 0xf61a, 0xf61b, - 0xf61c, 0xf61d, 0xf61e, 0xf61f, 0xf620, 0xf621, 0xf622, 0xf623, - 0xf624, 0xf625, 0xf626, 0xf627, 0xf628, 0xf629, 0xf62a, 0xf62b, - 0xf62c, 0xf62d, 0xf62e, 0xf62f, 0xf630, 0xf631, 0xf632, 0xf633, - 0xf634, 0xf635, 0xf636, 0xf637, 0xf638, 0xf639, 0xf63a, 0xf63b, - 0xf63c, 0xf63d, 0xf63e, 0xf63f, 0xf640, 0xf641, 0xf642, 0xf643, - 0xf644, 0xf645, 0xf646, 0xf647, 0xf648, 0xf649, 0xf64a, 0xf64b, - 0xf64c, 0xf64d, 0xf64e, 0xf64f, 0xf650, 0xf651, 0xf652, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf653, 0xf654, 0xf655, 0xf656, 0xf657, 0xf658, 0xf659, - 0xf65a, 0xf65b, 0xf65c, 0xf65d, 0xf65e, 0xf65f, 0xf660, 0xf661, - 0xf662, 0xf663, 0xf664, 0xf665, 0xf666, 0xf667, 0xf668, 0xf669, - 0xf66a, 0xf66b, 0xf66c, 0xf66d, 0xf66e, 0xf66f, 0xf670, 0xf671, - 0xf672, 0xf673, 0xf674, 0xf675, 0xf676, 0xf677, 0xf678, 0xf679, - 0xf67a, 0xf67b, 0xf67c, 0xf67d, 0xf67e, 0xf67f, 0xf680, 0xf681, - 0xf682, 0xf683, 0xf684, 0xf685, 0xf686, 0xf687, 0xf688, 0xf689, - 0xf68a, 0xf68b, 0xf68c, 0xf68d, 0xf68e, 0xf68f, 0xf690, 0xf691, - 0xf692, 0xf693, 0xf694, 0xf695, 0xf696, 0xf697, 0xf698, 0xf699, - 0xf69a, 0xf69b, 0xf69c, 0xf69d, 0xf69e, 0xf69f, 0xf6a0, 0xf6a1, - 0xf6a2, 0xf6a3, 0xf6a4, 0xf6a5, 0xf6a6, 0xf6a7, 0xf6a8, 0xf6a9, - 0xf6aa, 0xf6ab, 0xf6ac, 0xf6ad, 0xf6ae, 0xf6af, 0xf6b0, 0x003f, - /* lead byte 8e */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe311, 0xe312, 0xe313, 0xe314, 0xe315, 0xe316, 0xe317, 0xe318, - 0xe319, 0xe31a, 0xe31b, 0xe31c, 0xe31d, 0xe31e, 0xe31f, 0xe320, - 0xe321, 0xe322, 0xe323, 0xe324, 0xe325, 0xe326, 0xe327, 0xe328, - 0xe329, 0xe32a, 0xe32b, 0xe32c, 0xe32d, 0xe32e, 0xe32f, 0xe330, - 0xe331, 0xe332, 0xe333, 0xe334, 0xe335, 0xe336, 0xe337, 0xe338, - 0xe339, 0xe33a, 0xe33b, 0xe33c, 0xe33d, 0xe33e, 0xe33f, 0xe340, - 0xe341, 0xe342, 0xe343, 0xe344, 0xe345, 0xe346, 0xe347, 0xe348, - 0xe349, 0xe34a, 0xe34b, 0xe34c, 0xe34d, 0xe34e, 0xe34f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe350, 0xe351, 0xe352, 0xe353, 0xe354, 0xe355, 0xe356, - 0xe357, 0xe358, 0xe359, 0xe35a, 0xe35b, 0xe35c, 0xe35d, 0xe35e, - 0xe35f, 0xe360, 0xe361, 0xe362, 0xe363, 0xe364, 0xe365, 0xe366, - 0xe367, 0xe368, 0xe369, 0xe36a, 0xe36b, 0xe36c, 0xe36d, 0xe36e, - 0xe36f, 0xe370, 0xe371, 0xe372, 0xe373, 0xe374, 0xe375, 0xe376, - 0xe377, 0xe378, 0xe379, 0xe37a, 0xe37b, 0xe37c, 0xe37d, 0xe37e, - 0xe37f, 0xe380, 0xe381, 0xe382, 0xe383, 0xe384, 0xe385, 0xe386, - 0xe387, 0xe388, 0xe389, 0xe38a, 0xe38b, 0xe38c, 0xe38d, 0xe38e, - 0xe38f, 0xe390, 0xe391, 0xe392, 0xe393, 0xe394, 0xe395, 0xe396, - 0xe397, 0xe398, 0xe399, 0xe39a, 0xe39b, 0xe39c, 0xe39d, 0xe39e, - 0xe39f, 0xe3a0, 0xe3a1, 0xe3a2, 0xe3a3, 0xe3a4, 0xe3a5, 0xe3a6, - 0xe3a7, 0xe3a8, 0xe3a9, 0xe3aa, 0xe3ab, 0xe3ac, 0xe3ad, 0x003f, - /* lead byte 8f */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe3ae, 0xe3af, 0xe3b0, 0xe3b1, 0xe3b2, 0xe3b3, 0xe3b4, 0xe3b5, - 0xe3b6, 0xe3b7, 0xe3b8, 0xe3b9, 0xe3ba, 0xe3bb, 0xe3bc, 0xe3bd, - 0xe3be, 0xe3bf, 0xe3c0, 0xe3c1, 0xe3c2, 0xe3c3, 0xe3c4, 0xe3c5, - 0xe3c6, 0xe3c7, 0xe3c8, 0xe3c9, 0xe3ca, 0xe3cb, 0xe3cc, 0xe3cd, - 0xe3ce, 0xe3cf, 0xe3d0, 0xe3d1, 0xe3d2, 0xe3d3, 0xe3d4, 0xe3d5, - 0xe3d6, 0xe3d7, 0xe3d8, 0xe3d9, 0xe3da, 0xe3db, 0xe3dc, 0xe3dd, - 0xe3de, 0xe3df, 0xe3e0, 0xe3e1, 0xe3e2, 0xe3e3, 0xe3e4, 0xe3e5, - 0xe3e6, 0xe3e7, 0xe3e8, 0xe3e9, 0xe3ea, 0xe3eb, 0xe3ec, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe3ed, 0xe3ee, 0xe3ef, 0xe3f0, 0xe3f1, 0xe3f2, 0xe3f3, - 0xe3f4, 0xe3f5, 0xe3f6, 0xe3f7, 0xe3f8, 0xe3f9, 0xe3fa, 0xe3fb, - 0xe3fc, 0xe3fd, 0xe3fe, 0xe3ff, 0xe400, 0xe401, 0xe402, 0xe403, - 0xe404, 0xe405, 0xe406, 0xe407, 0xe408, 0xe409, 0xe40a, 0xe40b, - 0xe40c, 0xe40d, 0xe40e, 0xe40f, 0xe410, 0xe411, 0xe412, 0xe413, - 0xe414, 0xe415, 0xe416, 0xe417, 0xe418, 0xe419, 0xe41a, 0xe41b, - 0xe41c, 0xe41d, 0xe41e, 0xe41f, 0xe420, 0xe421, 0xe422, 0xe423, - 0xe424, 0xe425, 0xe426, 0xe427, 0xe428, 0xe429, 0xe42a, 0xe42b, - 0xe42c, 0xe42d, 0xe42e, 0xe42f, 0xe430, 0xe431, 0xe432, 0xe433, - 0xe434, 0xe435, 0xe436, 0xe437, 0xe438, 0xe439, 0xe43a, 0xe43b, - 0xe43c, 0xe43d, 0xe43e, 0xe43f, 0xe440, 0xe441, 0xe442, 0xe443, - 0xe444, 0xe445, 0xe446, 0xe447, 0xe448, 0xe449, 0xe44a, 0x003f, - /* lead byte 90 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe44b, 0xe44c, 0xe44d, 0xe44e, 0xe44f, 0xe450, 0xe451, 0xe452, - 0xe453, 0xe454, 0xe455, 0xe456, 0xe457, 0xe458, 0xe459, 0xe45a, - 0xe45b, 0xe45c, 0xe45d, 0xe45e, 0xe45f, 0xe460, 0xe461, 0xe462, - 0xe463, 0xe464, 0xe465, 0xe466, 0xe467, 0xe468, 0xe469, 0xe46a, - 0xe46b, 0xe46c, 0xe46d, 0xe46e, 0xe46f, 0xe470, 0xe471, 0xe472, - 0xe473, 0xe474, 0xe475, 0xe476, 0xe477, 0xe478, 0xe479, 0xe47a, - 0xe47b, 0xe47c, 0xe47d, 0xe47e, 0xe47f, 0xe480, 0xe481, 0xe482, - 0xe483, 0xe484, 0xe485, 0xe486, 0xe487, 0xe488, 0xe489, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe48a, 0xe48b, 0xe48c, 0xe48d, 0xe48e, 0xe48f, 0xe490, - 0xe491, 0xe492, 0xe493, 0xe494, 0xe495, 0xe496, 0xe497, 0xe498, - 0xe499, 0xe49a, 0xe49b, 0xe49c, 0xe49d, 0xe49e, 0xe49f, 0xe4a0, - 0xe4a1, 0xe4a2, 0xe4a3, 0xe4a4, 0xe4a5, 0xe4a6, 0xe4a7, 0xe4a8, - 0xe4a9, 0xe4aa, 0xe4ab, 0xe4ac, 0xe4ad, 0xe4ae, 0xe4af, 0xe4b0, - 0xe4b1, 0xe4b2, 0xe4b3, 0xe4b4, 0xe4b5, 0xe4b6, 0xe4b7, 0xe4b8, - 0xe4b9, 0xe4ba, 0xe4bb, 0xe4bc, 0xe4bd, 0xe4be, 0xe4bf, 0xe4c0, - 0xe4c1, 0xe4c2, 0xe4c3, 0xe4c4, 0xe4c5, 0xe4c6, 0xe4c7, 0xe4c8, - 0xe4c9, 0xe4ca, 0xe4cb, 0xe4cc, 0xe4cd, 0xe4ce, 0xe4cf, 0xe4d0, - 0xe4d1, 0xe4d2, 0xe4d3, 0xe4d4, 0xe4d5, 0xe4d6, 0xe4d7, 0xe4d8, - 0xe4d9, 0xe4da, 0xe4db, 0xe4dc, 0xe4dd, 0xe4de, 0xe4df, 0xe4e0, - 0xe4e1, 0xe4e2, 0xe4e3, 0xe4e4, 0xe4e5, 0xe4e6, 0xe4e7, 0x003f, - /* lead byte 91 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe4e8, 0xe4e9, 0xe4ea, 0xe4eb, 0xe4ec, 0xe4ed, 0xe4ee, 0xe4ef, - 0xe4f0, 0xe4f1, 0xe4f2, 0xe4f3, 0xe4f4, 0xe4f5, 0xe4f6, 0xe4f7, - 0xe4f8, 0xe4f9, 0xe4fa, 0xe4fb, 0xe4fc, 0xe4fd, 0xe4fe, 0xe4ff, - 0xe500, 0xe501, 0xe502, 0xe503, 0xe504, 0xe505, 0xe506, 0xe507, - 0xe508, 0xe509, 0xe50a, 0xe50b, 0xe50c, 0xe50d, 0xe50e, 0xe50f, - 0xe510, 0xe511, 0xe512, 0xe513, 0xe514, 0xe515, 0xe516, 0xe517, - 0xe518, 0xe519, 0xe51a, 0xe51b, 0xe51c, 0xe51d, 0xe51e, 0xe51f, - 0xe520, 0xe521, 0xe522, 0xe523, 0xe524, 0xe525, 0xe526, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe527, 0xe528, 0xe529, 0xe52a, 0xe52b, 0xe52c, 0xe52d, - 0xe52e, 0xe52f, 0xe530, 0xe531, 0xe532, 0xe533, 0xe534, 0xe535, - 0xe536, 0xe537, 0xe538, 0xe539, 0xe53a, 0xe53b, 0xe53c, 0xe53d, - 0xe53e, 0xe53f, 0xe540, 0xe541, 0xe542, 0xe543, 0xe544, 0xe545, - 0xe546, 0xe547, 0xe548, 0xe549, 0xe54a, 0xe54b, 0xe54c, 0xe54d, - 0xe54e, 0xe54f, 0xe550, 0xe551, 0xe552, 0xe553, 0xe554, 0xe555, - 0xe556, 0xe557, 0xe558, 0xe559, 0xe55a, 0xe55b, 0xe55c, 0xe55d, - 0xe55e, 0xe55f, 0xe560, 0xe561, 0xe562, 0xe563, 0xe564, 0xe565, - 0xe566, 0xe567, 0xe568, 0xe569, 0xe56a, 0xe56b, 0xe56c, 0xe56d, - 0xe56e, 0xe56f, 0xe570, 0xe571, 0xe572, 0xe573, 0xe574, 0xe575, - 0xe576, 0xe577, 0xe578, 0xe579, 0xe57a, 0xe57b, 0xe57c, 0xe57d, - 0xe57e, 0xe57f, 0xe580, 0xe581, 0xe582, 0xe583, 0xe584, 0x003f, - /* lead byte 92 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe585, 0xe586, 0xe587, 0xe588, 0xe589, 0xe58a, 0xe58b, 0xe58c, - 0xe58d, 0xe58e, 0xe58f, 0xe590, 0xe591, 0xe592, 0xe593, 0xe594, - 0xe595, 0xe596, 0xe597, 0xe598, 0xe599, 0xe59a, 0xe59b, 0xe59c, - 0xe59d, 0xe59e, 0xe59f, 0xe5a0, 0xe5a1, 0xe5a2, 0xe5a3, 0xe5a4, - 0xe5a5, 0xe5a6, 0xe5a7, 0xe5a8, 0xe5a9, 0xe5aa, 0xe5ab, 0xe5ac, - 0xe5ad, 0xe5ae, 0xe5af, 0xe5b0, 0xe5b1, 0xe5b2, 0xe5b3, 0xe5b4, - 0xe5b5, 0xe5b6, 0xe5b7, 0xe5b8, 0xe5b9, 0xe5ba, 0xe5bb, 0xe5bc, - 0xe5bd, 0xe5be, 0xe5bf, 0xe5c0, 0xe5c1, 0xe5c2, 0xe5c3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe5c4, 0xe5c5, 0xe5c6, 0xe5c7, 0xe5c8, 0xe5c9, 0xe5ca, - 0xe5cb, 0xe5cc, 0xe5cd, 0xe5ce, 0xe5cf, 0xe5d0, 0xe5d1, 0xe5d2, - 0xe5d3, 0xe5d4, 0xe5d5, 0xe5d6, 0xe5d7, 0xe5d8, 0xe5d9, 0xe5da, - 0xe5db, 0xe5dc, 0xe5dd, 0xe5de, 0xe5df, 0xe5e0, 0xe5e1, 0xe5e2, - 0xe5e3, 0xe5e4, 0xe5e5, 0xe5e6, 0xe5e7, 0xe5e8, 0xe5e9, 0xe5ea, - 0xe5eb, 0xe5ec, 0xe5ed, 0xe5ee, 0xe5ef, 0xe5f0, 0xe5f1, 0xe5f2, - 0xe5f3, 0xe5f4, 0xe5f5, 0xe5f6, 0xe5f7, 0xe5f8, 0xe5f9, 0xe5fa, - 0xe5fb, 0xe5fc, 0xe5fd, 0xe5fe, 0xe5ff, 0xe600, 0xe601, 0xe602, - 0xe603, 0xe604, 0xe605, 0xe606, 0xe607, 0xe608, 0xe609, 0xe60a, - 0xe60b, 0xe60c, 0xe60d, 0xe60e, 0xe60f, 0xe610, 0xe611, 0xe612, - 0xe613, 0xe614, 0xe615, 0xe616, 0xe617, 0xe618, 0xe619, 0xe61a, - 0xe61b, 0xe61c, 0xe61d, 0xe61e, 0xe61f, 0xe620, 0xe621, 0x003f, - /* lead byte 93 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe622, 0xe623, 0xe624, 0xe625, 0xe626, 0xe627, 0xe628, 0xe629, - 0xe62a, 0xe62b, 0xe62c, 0xe62d, 0xe62e, 0xe62f, 0xe630, 0xe631, - 0xe632, 0xe633, 0xe634, 0xe635, 0xe636, 0xe637, 0xe638, 0xe639, - 0xe63a, 0xe63b, 0xe63c, 0xe63d, 0xe63e, 0xe63f, 0xe640, 0xe641, - 0xe642, 0xe643, 0xe644, 0xe645, 0xe646, 0xe647, 0xe648, 0xe649, - 0xe64a, 0xe64b, 0xe64c, 0xe64d, 0xe64e, 0xe64f, 0xe650, 0xe651, - 0xe652, 0xe653, 0xe654, 0xe655, 0xe656, 0xe657, 0xe658, 0xe659, - 0xe65a, 0xe65b, 0xe65c, 0xe65d, 0xe65e, 0xe65f, 0xe660, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe661, 0xe662, 0xe663, 0xe664, 0xe665, 0xe666, 0xe667, - 0xe668, 0xe669, 0xe66a, 0xe66b, 0xe66c, 0xe66d, 0xe66e, 0xe66f, - 0xe670, 0xe671, 0xe672, 0xe673, 0xe674, 0xe675, 0xe676, 0xe677, - 0xe678, 0xe679, 0xe67a, 0xe67b, 0xe67c, 0xe67d, 0xe67e, 0xe67f, - 0xe680, 0xe681, 0xe682, 0xe683, 0xe684, 0xe685, 0xe686, 0xe687, - 0xe688, 0xe689, 0xe68a, 0xe68b, 0xe68c, 0xe68d, 0xe68e, 0xe68f, - 0xe690, 0xe691, 0xe692, 0xe693, 0xe694, 0xe695, 0xe696, 0xe697, - 0xe698, 0xe699, 0xe69a, 0xe69b, 0xe69c, 0xe69d, 0xe69e, 0xe69f, - 0xe6a0, 0xe6a1, 0xe6a2, 0xe6a3, 0xe6a4, 0xe6a5, 0xe6a6, 0xe6a7, - 0xe6a8, 0xe6a9, 0xe6aa, 0xe6ab, 0xe6ac, 0xe6ad, 0xe6ae, 0xe6af, - 0xe6b0, 0xe6b1, 0xe6b2, 0xe6b3, 0xe6b4, 0xe6b5, 0xe6b6, 0xe6b7, - 0xe6b8, 0xe6b9, 0xe6ba, 0xe6bb, 0xe6bc, 0xe6bd, 0xe6be, 0x003f, - /* lead byte 94 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe6bf, 0xe6c0, 0xe6c1, 0xe6c2, 0xe6c3, 0xe6c4, 0xe6c5, 0xe6c6, - 0xe6c7, 0xe6c8, 0xe6c9, 0xe6ca, 0xe6cb, 0xe6cc, 0xe6cd, 0xe6ce, - 0xe6cf, 0xe6d0, 0xe6d1, 0xe6d2, 0xe6d3, 0xe6d4, 0xe6d5, 0xe6d6, - 0xe6d7, 0xe6d8, 0xe6d9, 0xe6da, 0xe6db, 0xe6dc, 0xe6dd, 0xe6de, - 0xe6df, 0xe6e0, 0xe6e1, 0xe6e2, 0xe6e3, 0xe6e4, 0xe6e5, 0xe6e6, - 0xe6e7, 0xe6e8, 0xe6e9, 0xe6ea, 0xe6eb, 0xe6ec, 0xe6ed, 0xe6ee, - 0xe6ef, 0xe6f0, 0xe6f1, 0xe6f2, 0xe6f3, 0xe6f4, 0xe6f5, 0xe6f6, - 0xe6f7, 0xe6f8, 0xe6f9, 0xe6fa, 0xe6fb, 0xe6fc, 0xe6fd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe6fe, 0xe6ff, 0xe700, 0xe701, 0xe702, 0xe703, 0xe704, - 0xe705, 0xe706, 0xe707, 0xe708, 0xe709, 0xe70a, 0xe70b, 0xe70c, - 0xe70d, 0xe70e, 0xe70f, 0xe710, 0xe711, 0xe712, 0xe713, 0xe714, - 0xe715, 0xe716, 0xe717, 0xe718, 0xe719, 0xe71a, 0xe71b, 0xe71c, - 0xe71d, 0xe71e, 0xe71f, 0xe720, 0xe721, 0xe722, 0xe723, 0xe724, - 0xe725, 0xe726, 0xe727, 0xe728, 0xe729, 0xe72a, 0xe72b, 0xe72c, - 0xe72d, 0xe72e, 0xe72f, 0xe730, 0xe731, 0xe732, 0xe733, 0xe734, - 0xe735, 0xe736, 0xe737, 0xe738, 0xe739, 0xe73a, 0xe73b, 0xe73c, - 0xe73d, 0xe73e, 0xe73f, 0xe740, 0xe741, 0xe742, 0xe743, 0xe744, - 0xe745, 0xe746, 0xe747, 0xe748, 0xe749, 0xe74a, 0xe74b, 0xe74c, - 0xe74d, 0xe74e, 0xe74f, 0xe750, 0xe751, 0xe752, 0xe753, 0xe754, - 0xe755, 0xe756, 0xe757, 0xe758, 0xe759, 0xe75a, 0xe75b, 0x003f, - /* lead byte 95 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe75c, 0xe75d, 0xe75e, 0xe75f, 0xe760, 0xe761, 0xe762, 0xe763, - 0xe764, 0xe765, 0xe766, 0xe767, 0xe768, 0xe769, 0xe76a, 0xe76b, - 0xe76c, 0xe76d, 0xe76e, 0xe76f, 0xe770, 0xe771, 0xe772, 0xe773, - 0xe774, 0xe775, 0xe776, 0xe777, 0xe778, 0xe779, 0xe77a, 0xe77b, - 0xe77c, 0xe77d, 0xe77e, 0xe77f, 0xe780, 0xe781, 0xe782, 0xe783, - 0xe784, 0xe785, 0xe786, 0xe787, 0xe788, 0xe789, 0xe78a, 0xe78b, - 0xe78c, 0xe78d, 0xe78e, 0xe78f, 0xe790, 0xe791, 0xe792, 0xe793, - 0xe794, 0xe795, 0xe796, 0xe797, 0xe798, 0xe799, 0xe79a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe79b, 0xe79c, 0xe79d, 0xe79e, 0xe79f, 0xe7a0, 0xe7a1, - 0xe7a2, 0xe7a3, 0xe7a4, 0xe7a5, 0xe7a6, 0xe7a7, 0xe7a8, 0xe7a9, - 0xe7aa, 0xe7ab, 0xe7ac, 0xe7ad, 0xe7ae, 0xe7af, 0xe7b0, 0xe7b1, - 0xe7b2, 0xe7b3, 0xe7b4, 0xe7b5, 0xe7b6, 0xe7b7, 0xe7b8, 0xe7b9, - 0xe7ba, 0xe7bb, 0xe7bc, 0xe7bd, 0xe7be, 0xe7bf, 0xe7c0, 0xe7c1, - 0xe7c2, 0xe7c3, 0xe7c4, 0xe7c5, 0xe7c6, 0xe7c7, 0xe7c8, 0xe7c9, - 0xe7ca, 0xe7cb, 0xe7cc, 0xe7cd, 0xe7ce, 0xe7cf, 0xe7d0, 0xe7d1, - 0xe7d2, 0xe7d3, 0xe7d4, 0xe7d5, 0xe7d6, 0xe7d7, 0xe7d8, 0xe7d9, - 0xe7da, 0xe7db, 0xe7dc, 0xe7dd, 0xe7de, 0xe7df, 0xe7e0, 0xe7e1, - 0xe7e2, 0xe7e3, 0xe7e4, 0xe7e5, 0xe7e6, 0xe7e7, 0xe7e8, 0xe7e9, - 0xe7ea, 0xe7eb, 0xe7ec, 0xe7ed, 0xe7ee, 0xe7ef, 0xe7f0, 0xe7f1, - 0xe7f2, 0xe7f3, 0xe7f4, 0xe7f5, 0xe7f6, 0xe7f7, 0xe7f8, 0x003f, - /* lead byte 96 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe7f9, 0xe7fa, 0xe7fb, 0xe7fc, 0xe7fd, 0xe7fe, 0xe7ff, 0xe800, - 0xe801, 0xe802, 0xe803, 0xe804, 0xe805, 0xe806, 0xe807, 0xe808, - 0xe809, 0xe80a, 0xe80b, 0xe80c, 0xe80d, 0xe80e, 0xe80f, 0xe810, - 0xe811, 0xe812, 0xe813, 0xe814, 0xe815, 0xe816, 0xe817, 0xe818, - 0xe819, 0xe81a, 0xe81b, 0xe81c, 0xe81d, 0xe81e, 0xe81f, 0xe820, - 0xe821, 0xe822, 0xe823, 0xe824, 0xe825, 0xe826, 0xe827, 0xe828, - 0xe829, 0xe82a, 0xe82b, 0xe82c, 0xe82d, 0xe82e, 0xe82f, 0xe830, - 0xe831, 0xe832, 0xe833, 0xe834, 0xe835, 0xe836, 0xe837, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe838, 0xe839, 0xe83a, 0xe83b, 0xe83c, 0xe83d, 0xe83e, - 0xe83f, 0xe840, 0xe841, 0xe842, 0xe843, 0xe844, 0xe845, 0xe846, - 0xe847, 0xe848, 0xe849, 0xe84a, 0xe84b, 0xe84c, 0xe84d, 0xe84e, - 0xe84f, 0xe850, 0xe851, 0xe852, 0xe853, 0xe854, 0xe855, 0xe856, - 0xe857, 0xe858, 0xe859, 0xe85a, 0xe85b, 0xe85c, 0xe85d, 0xe85e, - 0xe85f, 0xe860, 0xe861, 0xe862, 0xe863, 0xe864, 0xe865, 0xe866, - 0xe867, 0xe868, 0xe869, 0xe86a, 0xe86b, 0xe86c, 0xe86d, 0xe86e, - 0xe86f, 0xe870, 0xe871, 0xe872, 0xe873, 0xe874, 0xe875, 0xe876, - 0xe877, 0xe878, 0xe879, 0xe87a, 0xe87b, 0xe87c, 0xe87d, 0xe87e, - 0xe87f, 0xe880, 0xe881, 0xe882, 0xe883, 0xe884, 0xe885, 0xe886, - 0xe887, 0xe888, 0xe889, 0xe88a, 0xe88b, 0xe88c, 0xe88d, 0xe88e, - 0xe88f, 0xe890, 0xe891, 0xe892, 0xe893, 0xe894, 0xe895, 0x003f, - /* lead byte 97 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe896, 0xe897, 0xe898, 0xe899, 0xe89a, 0xe89b, 0xe89c, 0xe89d, - 0xe89e, 0xe89f, 0xe8a0, 0xe8a1, 0xe8a2, 0xe8a3, 0xe8a4, 0xe8a5, - 0xe8a6, 0xe8a7, 0xe8a8, 0xe8a9, 0xe8aa, 0xe8ab, 0xe8ac, 0xe8ad, - 0xe8ae, 0xe8af, 0xe8b0, 0xe8b1, 0xe8b2, 0xe8b3, 0xe8b4, 0xe8b5, - 0xe8b6, 0xe8b7, 0xe8b8, 0xe8b9, 0xe8ba, 0xe8bb, 0xe8bc, 0xe8bd, - 0xe8be, 0xe8bf, 0xe8c0, 0xe8c1, 0xe8c2, 0xe8c3, 0xe8c4, 0xe8c5, - 0xe8c6, 0xe8c7, 0xe8c8, 0xe8c9, 0xe8ca, 0xe8cb, 0xe8cc, 0xe8cd, - 0xe8ce, 0xe8cf, 0xe8d0, 0xe8d1, 0xe8d2, 0xe8d3, 0xe8d4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe8d5, 0xe8d6, 0xe8d7, 0xe8d8, 0xe8d9, 0xe8da, 0xe8db, - 0xe8dc, 0xe8dd, 0xe8de, 0xe8df, 0xe8e0, 0xe8e1, 0xe8e2, 0xe8e3, - 0xe8e4, 0xe8e5, 0xe8e6, 0xe8e7, 0xe8e8, 0xe8e9, 0xe8ea, 0xe8eb, - 0xe8ec, 0xe8ed, 0xe8ee, 0xe8ef, 0xe8f0, 0xe8f1, 0xe8f2, 0xe8f3, - 0xe8f4, 0xe8f5, 0xe8f6, 0xe8f7, 0xe8f8, 0xe8f9, 0xe8fa, 0xe8fb, - 0xe8fc, 0xe8fd, 0xe8fe, 0xe8ff, 0xe900, 0xe901, 0xe902, 0xe903, - 0xe904, 0xe905, 0xe906, 0xe907, 0xe908, 0xe909, 0xe90a, 0xe90b, - 0xe90c, 0xe90d, 0xe90e, 0xe90f, 0xe910, 0xe911, 0xe912, 0xe913, - 0xe914, 0xe915, 0xe916, 0xe917, 0xe918, 0xe919, 0xe91a, 0xe91b, - 0xe91c, 0xe91d, 0xe91e, 0xe91f, 0xe920, 0xe921, 0xe922, 0xe923, - 0xe924, 0xe925, 0xe926, 0xe927, 0xe928, 0xe929, 0xe92a, 0xe92b, - 0xe92c, 0xe92d, 0xe92e, 0xe92f, 0xe930, 0xe931, 0xe932, 0x003f, - /* lead byte 98 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe933, 0xe934, 0xe935, 0xe936, 0xe937, 0xe938, 0xe939, 0xe93a, - 0xe93b, 0xe93c, 0xe93d, 0xe93e, 0xe93f, 0xe940, 0xe941, 0xe942, - 0xe943, 0xe944, 0xe945, 0xe946, 0xe947, 0xe948, 0xe949, 0xe94a, - 0xe94b, 0xe94c, 0xe94d, 0xe94e, 0xe94f, 0xe950, 0xe951, 0xe952, - 0xe953, 0xe954, 0xe955, 0xe956, 0xe957, 0xe958, 0xe959, 0xe95a, - 0xe95b, 0xe95c, 0xe95d, 0xe95e, 0xe95f, 0xe960, 0xe961, 0xe962, - 0xe963, 0xe964, 0xe965, 0xe966, 0xe967, 0xe968, 0xe969, 0xe96a, - 0xe96b, 0xe96c, 0xe96d, 0xe96e, 0xe96f, 0xe970, 0xe971, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe972, 0xe973, 0xe974, 0xe975, 0xe976, 0xe977, 0xe978, - 0xe979, 0xe97a, 0xe97b, 0xe97c, 0xe97d, 0xe97e, 0xe97f, 0xe980, - 0xe981, 0xe982, 0xe983, 0xe984, 0xe985, 0xe986, 0xe987, 0xe988, - 0xe989, 0xe98a, 0xe98b, 0xe98c, 0xe98d, 0xe98e, 0xe98f, 0xe990, - 0xe991, 0xe992, 0xe993, 0xe994, 0xe995, 0xe996, 0xe997, 0xe998, - 0xe999, 0xe99a, 0xe99b, 0xe99c, 0xe99d, 0xe99e, 0xe99f, 0xe9a0, - 0xe9a1, 0xe9a2, 0xe9a3, 0xe9a4, 0xe9a5, 0xe9a6, 0xe9a7, 0xe9a8, - 0xe9a9, 0xe9aa, 0xe9ab, 0xe9ac, 0xe9ad, 0xe9ae, 0xe9af, 0xe9b0, - 0xe9b1, 0xe9b2, 0xe9b3, 0xe9b4, 0xe9b5, 0xe9b6, 0xe9b7, 0xe9b8, - 0xe9b9, 0xe9ba, 0xe9bb, 0xe9bc, 0xe9bd, 0xe9be, 0xe9bf, 0xe9c0, - 0xe9c1, 0xe9c2, 0xe9c3, 0xe9c4, 0xe9c5, 0xe9c6, 0xe9c7, 0xe9c8, - 0xe9c9, 0xe9ca, 0xe9cb, 0xe9cc, 0xe9cd, 0xe9ce, 0xe9cf, 0x003f, - /* lead byte 99 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe9d0, 0xe9d1, 0xe9d2, 0xe9d3, 0xe9d4, 0xe9d5, 0xe9d6, 0xe9d7, - 0xe9d8, 0xe9d9, 0xe9da, 0xe9db, 0xe9dc, 0xe9dd, 0xe9de, 0xe9df, - 0xe9e0, 0xe9e1, 0xe9e2, 0xe9e3, 0xe9e4, 0xe9e5, 0xe9e6, 0xe9e7, - 0xe9e8, 0xe9e9, 0xe9ea, 0xe9eb, 0xe9ec, 0xe9ed, 0xe9ee, 0xe9ef, - 0xe9f0, 0xe9f1, 0xe9f2, 0xe9f3, 0xe9f4, 0xe9f5, 0xe9f6, 0xe9f7, - 0xe9f8, 0xe9f9, 0xe9fa, 0xe9fb, 0xe9fc, 0xe9fd, 0xe9fe, 0xe9ff, - 0xea00, 0xea01, 0xea02, 0xea03, 0xea04, 0xea05, 0xea06, 0xea07, - 0xea08, 0xea09, 0xea0a, 0xea0b, 0xea0c, 0xea0d, 0xea0e, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xea0f, 0xea10, 0xea11, 0xea12, 0xea13, 0xea14, 0xea15, - 0xea16, 0xea17, 0xea18, 0xea19, 0xea1a, 0xea1b, 0xea1c, 0xea1d, - 0xea1e, 0xea1f, 0xea20, 0xea21, 0xea22, 0xea23, 0xea24, 0xea25, - 0xea26, 0xea27, 0xea28, 0xea29, 0xea2a, 0xea2b, 0xea2c, 0xea2d, - 0xea2e, 0xea2f, 0xea30, 0xea31, 0xea32, 0xea33, 0xea34, 0xea35, - 0xea36, 0xea37, 0xea38, 0xea39, 0xea3a, 0xea3b, 0xea3c, 0xea3d, - 0xea3e, 0xea3f, 0xea40, 0xea41, 0xea42, 0xea43, 0xea44, 0xea45, - 0xea46, 0xea47, 0xea48, 0xea49, 0xea4a, 0xea4b, 0xea4c, 0xea4d, - 0xea4e, 0xea4f, 0xea50, 0xea51, 0xea52, 0xea53, 0xea54, 0xea55, - 0xea56, 0xea57, 0xea58, 0xea59, 0xea5a, 0xea5b, 0xea5c, 0xea5d, - 0xea5e, 0xea5f, 0xea60, 0xea61, 0xea62, 0xea63, 0xea64, 0xea65, - 0xea66, 0xea67, 0xea68, 0xea69, 0xea6a, 0xea6b, 0xea6c, 0x003f, - /* lead byte 9a */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xea6d, 0xea6e, 0xea6f, 0xea70, 0xea71, 0xea72, 0xea73, 0xea74, - 0xea75, 0xea76, 0xea77, 0xea78, 0xea79, 0xea7a, 0xea7b, 0xea7c, - 0xea7d, 0xea7e, 0xea7f, 0xea80, 0xea81, 0xea82, 0xea83, 0xea84, - 0xea85, 0xea86, 0xea87, 0xea88, 0xea89, 0xea8a, 0xea8b, 0xea8c, - 0xea8d, 0xea8e, 0xea8f, 0xea90, 0xea91, 0xea92, 0xea93, 0xea94, - 0xea95, 0xea96, 0xea97, 0xea98, 0xea99, 0xea9a, 0xea9b, 0xea9c, - 0xea9d, 0xea9e, 0xea9f, 0xeaa0, 0xeaa1, 0xeaa2, 0xeaa3, 0xeaa4, - 0xeaa5, 0xeaa6, 0xeaa7, 0xeaa8, 0xeaa9, 0xeaaa, 0xeaab, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeaac, 0xeaad, 0xeaae, 0xeaaf, 0xeab0, 0xeab1, 0xeab2, - 0xeab3, 0xeab4, 0xeab5, 0xeab6, 0xeab7, 0xeab8, 0xeab9, 0xeaba, - 0xeabb, 0xeabc, 0xeabd, 0xeabe, 0xeabf, 0xeac0, 0xeac1, 0xeac2, - 0xeac3, 0xeac4, 0xeac5, 0xeac6, 0xeac7, 0xeac8, 0xeac9, 0xeaca, - 0xeacb, 0xeacc, 0xeacd, 0xeace, 0xeacf, 0xead0, 0xead1, 0xead2, - 0xead3, 0xead4, 0xead5, 0xead6, 0xead7, 0xead8, 0xead9, 0xeada, - 0xeadb, 0xeadc, 0xeadd, 0xeade, 0xeadf, 0xeae0, 0xeae1, 0xeae2, - 0xeae3, 0xeae4, 0xeae5, 0xeae6, 0xeae7, 0xeae8, 0xeae9, 0xeaea, - 0xeaeb, 0xeaec, 0xeaed, 0xeaee, 0xeaef, 0xeaf0, 0xeaf1, 0xeaf2, - 0xeaf3, 0xeaf4, 0xeaf5, 0xeaf6, 0xeaf7, 0xeaf8, 0xeaf9, 0xeafa, - 0xeafb, 0xeafc, 0xeafd, 0xeafe, 0xeaff, 0xeb00, 0xeb01, 0xeb02, - 0xeb03, 0xeb04, 0xeb05, 0xeb06, 0xeb07, 0xeb08, 0xeb09, 0x003f, - /* lead byte 9b */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeb0a, 0xeb0b, 0xeb0c, 0xeb0d, 0xeb0e, 0xeb0f, 0xeb10, 0xeb11, - 0xeb12, 0xeb13, 0xeb14, 0xeb15, 0xeb16, 0xeb17, 0xeb18, 0xeb19, - 0xeb1a, 0xeb1b, 0xeb1c, 0xeb1d, 0xeb1e, 0xeb1f, 0xeb20, 0xeb21, - 0xeb22, 0xeb23, 0xeb24, 0xeb25, 0xeb26, 0xeb27, 0xeb28, 0xeb29, - 0xeb2a, 0xeb2b, 0xeb2c, 0xeb2d, 0xeb2e, 0xeb2f, 0xeb30, 0xeb31, - 0xeb32, 0xeb33, 0xeb34, 0xeb35, 0xeb36, 0xeb37, 0xeb38, 0xeb39, - 0xeb3a, 0xeb3b, 0xeb3c, 0xeb3d, 0xeb3e, 0xeb3f, 0xeb40, 0xeb41, - 0xeb42, 0xeb43, 0xeb44, 0xeb45, 0xeb46, 0xeb47, 0xeb48, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeb49, 0xeb4a, 0xeb4b, 0xeb4c, 0xeb4d, 0xeb4e, 0xeb4f, - 0xeb50, 0xeb51, 0xeb52, 0xeb53, 0xeb54, 0xeb55, 0xeb56, 0xeb57, - 0xeb58, 0xeb59, 0xeb5a, 0xeb5b, 0xeb5c, 0xeb5d, 0xeb5e, 0xeb5f, - 0xeb60, 0xeb61, 0xeb62, 0xeb63, 0xeb64, 0xeb65, 0xeb66, 0xeb67, - 0xeb68, 0xeb69, 0xeb6a, 0xeb6b, 0xeb6c, 0xeb6d, 0xeb6e, 0xeb6f, - 0xeb70, 0xeb71, 0xeb72, 0xeb73, 0xeb74, 0xeb75, 0xeb76, 0xeb77, - 0xeb78, 0xeb79, 0xeb7a, 0xeb7b, 0xeb7c, 0xeb7d, 0xeb7e, 0xeb7f, - 0xeb80, 0xeb81, 0xeb82, 0xeb83, 0xeb84, 0xeb85, 0xeb86, 0xeb87, - 0xeb88, 0xeb89, 0xeb8a, 0xeb8b, 0xeb8c, 0xeb8d, 0xeb8e, 0xeb8f, - 0xeb90, 0xeb91, 0xeb92, 0xeb93, 0xeb94, 0xeb95, 0xeb96, 0xeb97, - 0xeb98, 0xeb99, 0xeb9a, 0xeb9b, 0xeb9c, 0xeb9d, 0xeb9e, 0xeb9f, - 0xeba0, 0xeba1, 0xeba2, 0xeba3, 0xeba4, 0xeba5, 0xeba6, 0x003f, - /* lead byte 9c */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xeba7, 0xeba8, 0xeba9, 0xebaa, 0xebab, 0xebac, 0xebad, 0xebae, - 0xebaf, 0xebb0, 0xebb1, 0xebb2, 0xebb3, 0xebb4, 0xebb5, 0xebb6, - 0xebb7, 0xebb8, 0xebb9, 0xebba, 0xebbb, 0xebbc, 0xebbd, 0xebbe, - 0xebbf, 0xebc0, 0xebc1, 0xebc2, 0xebc3, 0xebc4, 0xebc5, 0xebc6, - 0xebc7, 0xebc8, 0xebc9, 0xebca, 0xebcb, 0xebcc, 0xebcd, 0xebce, - 0xebcf, 0xebd0, 0xebd1, 0xebd2, 0xebd3, 0xebd4, 0xebd5, 0xebd6, - 0xebd7, 0xebd8, 0xebd9, 0xebda, 0xebdb, 0xebdc, 0xebdd, 0xebde, - 0xebdf, 0xebe0, 0xebe1, 0xebe2, 0xebe3, 0xebe4, 0xebe5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xebe6, 0xebe7, 0xebe8, 0xebe9, 0xebea, 0xebeb, 0xebec, - 0xebed, 0xebee, 0xebef, 0xebf0, 0xebf1, 0xebf2, 0xebf3, 0xebf4, - 0xebf5, 0xebf6, 0xebf7, 0xebf8, 0xebf9, 0xebfa, 0xebfb, 0xebfc, - 0xebfd, 0xebfe, 0xebff, 0xec00, 0xec01, 0xec02, 0xec03, 0xec04, - 0xec05, 0xec06, 0xec07, 0xec08, 0xec09, 0xec0a, 0xec0b, 0xec0c, - 0xec0d, 0xec0e, 0xec0f, 0xec10, 0xec11, 0xec12, 0xec13, 0xec14, - 0xec15, 0xec16, 0xec17, 0xec18, 0xec19, 0xec1a, 0xec1b, 0xec1c, - 0xec1d, 0xec1e, 0xec1f, 0xec20, 0xec21, 0xec22, 0xec23, 0xec24, - 0xec25, 0xec26, 0xec27, 0xec28, 0xec29, 0xec2a, 0xec2b, 0xec2c, - 0xec2d, 0xec2e, 0xec2f, 0xec30, 0xec31, 0xec32, 0xec33, 0xec34, - 0xec35, 0xec36, 0xec37, 0xec38, 0xec39, 0xec3a, 0xec3b, 0xec3c, - 0xec3d, 0xec3e, 0xec3f, 0xec40, 0xec41, 0xec42, 0xec43, 0x003f, - /* lead byte 9d */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xec44, 0xec45, 0xec46, 0xec47, 0xec48, 0xec49, 0xec4a, 0xec4b, - 0xec4c, 0xec4d, 0xec4e, 0xec4f, 0xec50, 0xec51, 0xec52, 0xec53, - 0xec54, 0xec55, 0xec56, 0xec57, 0xec58, 0xec59, 0xec5a, 0xec5b, - 0xec5c, 0xec5d, 0xec5e, 0xec5f, 0xec60, 0xec61, 0xec62, 0xec63, - 0xec64, 0xec65, 0xec66, 0xec67, 0xec68, 0xec69, 0xec6a, 0xec6b, - 0xec6c, 0xec6d, 0xec6e, 0xec6f, 0xec70, 0xec71, 0xec72, 0xec73, - 0xec74, 0xec75, 0xec76, 0xec77, 0xec78, 0xec79, 0xec7a, 0xec7b, - 0xec7c, 0xec7d, 0xec7e, 0xec7f, 0xec80, 0xec81, 0xec82, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xec83, 0xec84, 0xec85, 0xec86, 0xec87, 0xec88, 0xec89, - 0xec8a, 0xec8b, 0xec8c, 0xec8d, 0xec8e, 0xec8f, 0xec90, 0xec91, - 0xec92, 0xec93, 0xec94, 0xec95, 0xec96, 0xec97, 0xec98, 0xec99, - 0xec9a, 0xec9b, 0xec9c, 0xec9d, 0xec9e, 0xec9f, 0xeca0, 0xeca1, - 0xeca2, 0xeca3, 0xeca4, 0xeca5, 0xeca6, 0xeca7, 0xeca8, 0xeca9, - 0xecaa, 0xecab, 0xecac, 0xecad, 0xecae, 0xecaf, 0xecb0, 0xecb1, - 0xecb2, 0xecb3, 0xecb4, 0xecb5, 0xecb6, 0xecb7, 0xecb8, 0xecb9, - 0xecba, 0xecbb, 0xecbc, 0xecbd, 0xecbe, 0xecbf, 0xecc0, 0xecc1, - 0xecc2, 0xecc3, 0xecc4, 0xecc5, 0xecc6, 0xecc7, 0xecc8, 0xecc9, - 0xecca, 0xeccb, 0xeccc, 0xeccd, 0xecce, 0xeccf, 0xecd0, 0xecd1, - 0xecd2, 0xecd3, 0xecd4, 0xecd5, 0xecd6, 0xecd7, 0xecd8, 0xecd9, - 0xecda, 0xecdb, 0xecdc, 0xecdd, 0xecde, 0xecdf, 0xece0, 0x003f, - /* lead byte 9e */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xece1, 0xece2, 0xece3, 0xece4, 0xece5, 0xece6, 0xece7, 0xece8, - 0xece9, 0xecea, 0xeceb, 0xecec, 0xeced, 0xecee, 0xecef, 0xecf0, - 0xecf1, 0xecf2, 0xecf3, 0xecf4, 0xecf5, 0xecf6, 0xecf7, 0xecf8, - 0xecf9, 0xecfa, 0xecfb, 0xecfc, 0xecfd, 0xecfe, 0xecff, 0xed00, - 0xed01, 0xed02, 0xed03, 0xed04, 0xed05, 0xed06, 0xed07, 0xed08, - 0xed09, 0xed0a, 0xed0b, 0xed0c, 0xed0d, 0xed0e, 0xed0f, 0xed10, - 0xed11, 0xed12, 0xed13, 0xed14, 0xed15, 0xed16, 0xed17, 0xed18, - 0xed19, 0xed1a, 0xed1b, 0xed1c, 0xed1d, 0xed1e, 0xed1f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xed20, 0xed21, 0xed22, 0xed23, 0xed24, 0xed25, 0xed26, - 0xed27, 0xed28, 0xed29, 0xed2a, 0xed2b, 0xed2c, 0xed2d, 0xed2e, - 0xed2f, 0xed30, 0xed31, 0xed32, 0xed33, 0xed34, 0xed35, 0xed36, - 0xed37, 0xed38, 0xed39, 0xed3a, 0xed3b, 0xed3c, 0xed3d, 0xed3e, - 0xed3f, 0xed40, 0xed41, 0xed42, 0xed43, 0xed44, 0xed45, 0xed46, - 0xed47, 0xed48, 0xed49, 0xed4a, 0xed4b, 0xed4c, 0xed4d, 0xed4e, - 0xed4f, 0xed50, 0xed51, 0xed52, 0xed53, 0xed54, 0xed55, 0xed56, - 0xed57, 0xed58, 0xed59, 0xed5a, 0xed5b, 0xed5c, 0xed5d, 0xed5e, - 0xed5f, 0xed60, 0xed61, 0xed62, 0xed63, 0xed64, 0xed65, 0xed66, - 0xed67, 0xed68, 0xed69, 0xed6a, 0xed6b, 0xed6c, 0xed6d, 0xed6e, - 0xed6f, 0xed70, 0xed71, 0xed72, 0xed73, 0xed74, 0xed75, 0xed76, - 0xed77, 0xed78, 0xed79, 0xed7a, 0xed7b, 0xed7c, 0xed7d, 0x003f, - /* lead byte 9f */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xed7e, 0xed7f, 0xed80, 0xed81, 0xed82, 0xed83, 0xed84, 0xed85, - 0xed86, 0xed87, 0xed88, 0xed89, 0xed8a, 0xed8b, 0xed8c, 0xed8d, - 0xed8e, 0xed8f, 0xed90, 0xed91, 0xed92, 0xed93, 0xed94, 0xed95, - 0xed96, 0xed97, 0xed98, 0xed99, 0xed9a, 0xed9b, 0xed9c, 0xed9d, - 0xed9e, 0xed9f, 0xeda0, 0xeda1, 0xeda2, 0xeda3, 0xeda4, 0xeda5, - 0xeda6, 0xeda7, 0xeda8, 0xeda9, 0xedaa, 0xedab, 0xedac, 0xedad, - 0xedae, 0xedaf, 0xedb0, 0xedb1, 0xedb2, 0xedb3, 0xedb4, 0xedb5, - 0xedb6, 0xedb7, 0xedb8, 0xedb9, 0xedba, 0xedbb, 0xedbc, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xedbd, 0xedbe, 0xedbf, 0xedc0, 0xedc1, 0xedc2, 0xedc3, - 0xedc4, 0xedc5, 0xedc6, 0xedc7, 0xedc8, 0xedc9, 0xedca, 0xedcb, - 0xedcc, 0xedcd, 0xedce, 0xedcf, 0xedd0, 0xedd1, 0xedd2, 0xedd3, - 0xedd4, 0xedd5, 0xedd6, 0xedd7, 0xedd8, 0xedd9, 0xedda, 0xeddb, - 0xeddc, 0xeddd, 0xedde, 0xeddf, 0xede0, 0xede1, 0xede2, 0xede3, - 0xede4, 0xede5, 0xede6, 0xede7, 0xede8, 0xede9, 0xedea, 0xedeb, - 0xedec, 0xeded, 0xedee, 0xedef, 0xedf0, 0xedf1, 0xedf2, 0xedf3, - 0xedf4, 0xedf5, 0xedf6, 0xedf7, 0xedf8, 0xedf9, 0xedfa, 0xedfb, - 0xedfc, 0xedfd, 0xedfe, 0xedff, 0xee00, 0xee01, 0xee02, 0xee03, - 0xee04, 0xee05, 0xee06, 0xee07, 0xee08, 0xee09, 0xee0a, 0xee0b, - 0xee0c, 0xee0d, 0xee0e, 0xee0f, 0xee10, 0xee11, 0xee12, 0xee13, - 0xee14, 0xee15, 0xee16, 0xee17, 0xee18, 0xee19, 0xee1a, 0x003f, - /* lead byte a0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xee1b, 0xee1c, 0xee1d, 0xee1e, 0xee1f, 0xee20, 0xee21, 0xee22, - 0xee23, 0xee24, 0xee25, 0xee26, 0xee27, 0xee28, 0xee29, 0xee2a, - 0xee2b, 0xee2c, 0xee2d, 0xee2e, 0xee2f, 0xee30, 0xee31, 0xee32, - 0xee33, 0xee34, 0xee35, 0xee36, 0xee37, 0xee38, 0xee39, 0xee3a, - 0xee3b, 0xee3c, 0xee3d, 0xee3e, 0xee3f, 0xee40, 0xee41, 0xee42, - 0xee43, 0xee44, 0xee45, 0xee46, 0xee47, 0xee48, 0xee49, 0xee4a, - 0xee4b, 0xee4c, 0xee4d, 0xee4e, 0xee4f, 0xee50, 0xee51, 0xee52, - 0xee53, 0xee54, 0xee55, 0xee56, 0xee57, 0xee58, 0xee59, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xee5a, 0xee5b, 0xee5c, 0xee5d, 0xee5e, 0xee5f, 0xee60, - 0xee61, 0xee62, 0xee63, 0xee64, 0xee65, 0xee66, 0xee67, 0xee68, - 0xee69, 0xee6a, 0xee6b, 0xee6c, 0xee6d, 0xee6e, 0xee6f, 0xee70, - 0xee71, 0xee72, 0xee73, 0xee74, 0xee75, 0xee76, 0xee77, 0xee78, - 0xee79, 0xee7a, 0xee7b, 0xee7c, 0xee7d, 0xee7e, 0xee7f, 0xee80, - 0xee81, 0xee82, 0xee83, 0xee84, 0xee85, 0xee86, 0xee87, 0xee88, - 0xee89, 0xee8a, 0xee8b, 0xee8c, 0xee8d, 0xee8e, 0xee8f, 0xee90, - 0xee91, 0xee92, 0xee93, 0xee94, 0xee95, 0xee96, 0xee97, 0xee98, - 0xee99, 0xee9a, 0xee9b, 0xee9c, 0xee9d, 0xee9e, 0xee9f, 0xeea0, - 0xeea1, 0xeea2, 0xeea3, 0xeea4, 0xeea5, 0xeea6, 0xeea7, 0xeea8, - 0xeea9, 0xeeaa, 0xeeab, 0xeeac, 0xeead, 0xeeae, 0xeeaf, 0xeeb0, - 0xeeb1, 0xeeb2, 0xeeb3, 0xeeb4, 0xeeb5, 0xeeb6, 0xeeb7, 0x003f, - /* lead byte a1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2027, 0xff1b, 0xff1a, - 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52, - 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31, - 0x2014, 0xfe33, 0x2574, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35, - 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39, - 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d, - 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41, - 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, - 0x201d, 0x301d, 0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, - 0x203b, 0x00a7, 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, - 0x2606, 0x2605, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, - 0x32a3, 0x2105, 0x00af, 0xffe3, 0xff3f, 0x02cd, 0xfe49, 0xfe4a, - 0xfe4d, 0xfe4e, 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, - 0xff0d, 0x00d7, 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, - 0x2266, 0x2267, 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, - 0xfe64, 0xfe65, 0xfe66, 0xff5e, 0x2229, 0x222a, 0x22a5, 0x2220, - 0x221f, 0x22bf, 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, - 0x2640, 0x2642, 0x2295, 0x2299, 0x2191, 0x2193, 0x2190, 0x2192, - 0x2196, 0x2197, 0x2199, 0x2198, 0x2225, 0x2223, 0xff0f, 0x003f, - /* lead byte a2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xff3c, 0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1, - 0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5, - 0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4, - 0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7, - 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, - 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a, - 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500, - 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x256e, 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, - 0x25e2, 0x25e3, 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, - 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, - 0xff19, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, - 0x2167, 0x2168, 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, - 0x3026, 0x3027, 0x3028, 0x3029, 0x5341, 0x5344, 0x5345, 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, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, - 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, - 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0x003f, - /* lead byte a3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xff57, 0xff58, 0xff59, 0xff5a, 0x0391, 0x0392, 0x0393, 0x0394, - 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, - 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, - 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x03b4, - 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, - 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, - 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x3105, 0x3106, 0x3107, 0x3108, - 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, - 0x3117, 0x3118, 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, - 0x311f, 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, - 0x3127, 0x3128, 0x3129, 0x02d9, 0x02c9, 0x02ca, 0x02c7, 0x02cb, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x20ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* lead byte a4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x4e00, 0x4e59, 0x4e01, 0x4e03, 0x4e43, 0x4e5d, 0x4e86, 0x4e8c, - 0x4eba, 0x513f, 0x5165, 0x516b, 0x51e0, 0x5200, 0x5201, 0x529b, - 0x5315, 0x5341, 0x535c, 0x53c8, 0x4e09, 0x4e0b, 0x4e08, 0x4e0a, - 0x4e2b, 0x4e38, 0x51e1, 0x4e45, 0x4e48, 0x4e5f, 0x4e5e, 0x4e8e, - 0x4ea1, 0x5140, 0x5203, 0x52fa, 0x5343, 0x53c9, 0x53e3, 0x571f, - 0x58eb, 0x5915, 0x5927, 0x5973, 0x5b50, 0x5b51, 0x5b53, 0x5bf8, - 0x5c0f, 0x5c22, 0x5c38, 0x5c71, 0x5ddd, 0x5de5, 0x5df1, 0x5df2, - 0x5df3, 0x5dfe, 0x5e72, 0x5efe, 0x5f0b, 0x5f13, 0x624d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x4e11, 0x4e10, 0x4e0d, 0x4e2d, 0x4e30, 0x4e39, 0x4e4b, - 0x5c39, 0x4e88, 0x4e91, 0x4e95, 0x4e92, 0x4e94, 0x4ea2, 0x4ec1, - 0x4ec0, 0x4ec3, 0x4ec6, 0x4ec7, 0x4ecd, 0x4eca, 0x4ecb, 0x4ec4, - 0x5143, 0x5141, 0x5167, 0x516d, 0x516e, 0x516c, 0x5197, 0x51f6, - 0x5206, 0x5207, 0x5208, 0x52fb, 0x52fe, 0x52ff, 0x5316, 0x5339, - 0x5348, 0x5347, 0x5345, 0x535e, 0x5384, 0x53cb, 0x53ca, 0x53cd, - 0x58ec, 0x5929, 0x592b, 0x592a, 0x592d, 0x5b54, 0x5c11, 0x5c24, - 0x5c3a, 0x5c6f, 0x5df4, 0x5e7b, 0x5eff, 0x5f14, 0x5f15, 0x5fc3, - 0x6208, 0x6236, 0x624b, 0x624e, 0x652f, 0x6587, 0x6597, 0x65a4, - 0x65b9, 0x65e5, 0x66f0, 0x6708, 0x6728, 0x6b20, 0x6b62, 0x6b79, - 0x6bcb, 0x6bd4, 0x6bdb, 0x6c0f, 0x6c34, 0x706b, 0x722a, 0x7236, - 0x723b, 0x7247, 0x7259, 0x725b, 0x72ac, 0x738b, 0x4e19, 0x003f, - /* lead byte a5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x4e16, 0x4e15, 0x4e14, 0x4e18, 0x4e3b, 0x4e4d, 0x4e4f, 0x4e4e, - 0x4ee5, 0x4ed8, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, 0x4ee3, 0x4ee4, - 0x4ed9, 0x4ede, 0x5145, 0x5144, 0x5189, 0x518a, 0x51ac, 0x51f9, - 0x51fa, 0x51f8, 0x520a, 0x52a0, 0x529f, 0x5305, 0x5306, 0x5317, - 0x531d, 0x4edf, 0x534a, 0x5349, 0x5361, 0x5360, 0x536f, 0x536e, - 0x53bb, 0x53ef, 0x53e4, 0x53f3, 0x53ec, 0x53ee, 0x53e9, 0x53e8, - 0x53fc, 0x53f8, 0x53f5, 0x53eb, 0x53e6, 0x53ea, 0x53f2, 0x53f1, - 0x53f0, 0x53e5, 0x53ed, 0x53fb, 0x56db, 0x56da, 0x5916, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x592e, 0x5931, 0x5974, 0x5976, 0x5b55, 0x5b83, 0x5c3c, - 0x5de8, 0x5de7, 0x5de6, 0x5e02, 0x5e03, 0x5e73, 0x5e7c, 0x5f01, - 0x5f18, 0x5f17, 0x5fc5, 0x620a, 0x6253, 0x6254, 0x6252, 0x6251, - 0x65a5, 0x65e6, 0x672e, 0x672c, 0x672a, 0x672b, 0x672d, 0x6b63, - 0x6bcd, 0x6c11, 0x6c10, 0x6c38, 0x6c41, 0x6c40, 0x6c3e, 0x72af, - 0x7384, 0x7389, 0x74dc, 0x74e6, 0x7518, 0x751f, 0x7528, 0x7529, - 0x7530, 0x7531, 0x7532, 0x7533, 0x758b, 0x767d, 0x76ae, 0x76bf, - 0x76ee, 0x77db, 0x77e2, 0x77f3, 0x793a, 0x79be, 0x7a74, 0x7acb, - 0x4e1e, 0x4e1f, 0x4e52, 0x4e53, 0x4e69, 0x4e99, 0x4ea4, 0x4ea6, - 0x4ea5, 0x4eff, 0x4f09, 0x4f19, 0x4f0a, 0x4f15, 0x4f0d, 0x4f10, - 0x4f11, 0x4f0f, 0x4ef2, 0x4ef6, 0x4efb, 0x4ef0, 0x4ef3, 0x4efd, - 0x4f01, 0x4f0b, 0x5149, 0x5147, 0x5146, 0x5148, 0x5168, 0x003f, - /* lead byte a6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5171, 0x518d, 0x51b0, 0x5217, 0x5211, 0x5212, 0x520e, 0x5216, - 0x52a3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540f, - 0x540c, 0x540a, 0x5410, 0x5401, 0x540b, 0x5404, 0x5411, 0x540d, - 0x5408, 0x5403, 0x540e, 0x5406, 0x5412, 0x56e0, 0x56de, 0x56dd, - 0x5733, 0x5730, 0x5728, 0x572d, 0x572c, 0x572f, 0x5729, 0x5919, - 0x591a, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597d, 0x5979, - 0x5982, 0x5981, 0x5b57, 0x5b58, 0x5b87, 0x5b88, 0x5b85, 0x5b89, - 0x5bfa, 0x5c16, 0x5c79, 0x5dde, 0x5e06, 0x5e76, 0x5e74, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5f0f, 0x5f1b, 0x5fd9, 0x5fd6, 0x620e, 0x620c, 0x620d, - 0x6210, 0x6263, 0x625b, 0x6258, 0x6536, 0x65e9, 0x65e8, 0x65ec, - 0x65ed, 0x66f2, 0x66f3, 0x6709, 0x673d, 0x6734, 0x6731, 0x6735, - 0x6b21, 0x6b64, 0x6b7b, 0x6c16, 0x6c5d, 0x6c57, 0x6c59, 0x6c5f, - 0x6c60, 0x6c50, 0x6c55, 0x6c61, 0x6c5b, 0x6c4d, 0x6c4e, 0x7070, - 0x725f, 0x725d, 0x767e, 0x7af9, 0x7c73, 0x7cf8, 0x7f36, 0x7f8a, - 0x7fbd, 0x8001, 0x8003, 0x800c, 0x8012, 0x8033, 0x807f, 0x8089, - 0x808b, 0x808c, 0x81e3, 0x81ea, 0x81f3, 0x81fc, 0x820c, 0x821b, - 0x821f, 0x826e, 0x8272, 0x827e, 0x866b, 0x8840, 0x884c, 0x8863, - 0x897f, 0x9621, 0x4e32, 0x4ea8, 0x4f4d, 0x4f4f, 0x4f47, 0x4f57, - 0x4f5e, 0x4f34, 0x4f5b, 0x4f55, 0x4f30, 0x4f50, 0x4f51, 0x4f3d, - 0x4f3a, 0x4f38, 0x4f43, 0x4f54, 0x4f3c, 0x4f46, 0x4f63, 0x003f, - /* lead byte a7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x4f5c, 0x4f60, 0x4f2f, 0x4f4e, 0x4f36, 0x4f59, 0x4f5d, 0x4f48, - 0x4f5a, 0x514c, 0x514b, 0x514d, 0x5175, 0x51b6, 0x51b7, 0x5225, - 0x5224, 0x5229, 0x522a, 0x5228, 0x52ab, 0x52a9, 0x52aa, 0x52ac, - 0x5323, 0x5373, 0x5375, 0x541d, 0x542d, 0x541e, 0x543e, 0x5426, - 0x544e, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442, 0x541b, - 0x5429, 0x544a, 0x5439, 0x543b, 0x5438, 0x542e, 0x5435, 0x5436, - 0x5420, 0x543c, 0x5440, 0x5431, 0x542b, 0x541f, 0x542c, 0x56ea, - 0x56f0, 0x56e4, 0x56eb, 0x574a, 0x5751, 0x5740, 0x574d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5747, 0x574e, 0x573e, 0x5750, 0x574f, 0x573b, 0x58ef, - 0x593e, 0x599d, 0x5992, 0x59a8, 0x599e, 0x59a3, 0x5999, 0x5996, - 0x598d, 0x59a4, 0x5993, 0x598a, 0x59a5, 0x5b5d, 0x5b5c, 0x5b5a, - 0x5b5b, 0x5b8c, 0x5b8b, 0x5b8f, 0x5c2c, 0x5c40, 0x5c41, 0x5c3f, - 0x5c3e, 0x5c90, 0x5c91, 0x5c94, 0x5c8c, 0x5deb, 0x5e0c, 0x5e8f, - 0x5e87, 0x5e8a, 0x5ef7, 0x5f04, 0x5f1f, 0x5f64, 0x5f62, 0x5f77, - 0x5f79, 0x5fd8, 0x5fcc, 0x5fd7, 0x5fcd, 0x5ff1, 0x5feb, 0x5ff8, - 0x5fea, 0x6212, 0x6211, 0x6284, 0x6297, 0x6296, 0x6280, 0x6276, - 0x6289, 0x626d, 0x628a, 0x627c, 0x627e, 0x6279, 0x6273, 0x6292, - 0x626f, 0x6298, 0x626e, 0x6295, 0x6293, 0x6291, 0x6286, 0x6539, - 0x653b, 0x6538, 0x65f1, 0x66f4, 0x675f, 0x674e, 0x674f, 0x6750, - 0x6751, 0x675c, 0x6756, 0x675e, 0x6749, 0x6746, 0x6760, 0x003f, - /* lead byte a8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6753, 0x6757, 0x6b65, 0x6bcf, 0x6c42, 0x6c5e, 0x6c99, 0x6c81, - 0x6c88, 0x6c89, 0x6c85, 0x6c9b, 0x6c6a, 0x6c7a, 0x6c90, 0x6c70, - 0x6c8c, 0x6c68, 0x6c96, 0x6c92, 0x6c7d, 0x6c83, 0x6c72, 0x6c7e, - 0x6c74, 0x6c86, 0x6c76, 0x6c8d, 0x6c94, 0x6c98, 0x6c82, 0x7076, - 0x707c, 0x707d, 0x7078, 0x7262, 0x7261, 0x7260, 0x72c4, 0x72c2, - 0x7396, 0x752c, 0x752b, 0x7537, 0x7538, 0x7682, 0x76ef, 0x77e3, - 0x79c1, 0x79c0, 0x79bf, 0x7a76, 0x7cfb, 0x7f55, 0x8096, 0x8093, - 0x809d, 0x8098, 0x809b, 0x809a, 0x80b2, 0x826f, 0x8292, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x828b, 0x828d, 0x898b, 0x89d2, 0x8a00, 0x8c37, 0x8c46, - 0x8c55, 0x8c9d, 0x8d64, 0x8d70, 0x8db3, 0x8eab, 0x8eca, 0x8f9b, - 0x8fb0, 0x8fc2, 0x8fc6, 0x8fc5, 0x8fc4, 0x5de1, 0x9091, 0x90a2, - 0x90aa, 0x90a6, 0x90a3, 0x9149, 0x91c6, 0x91cc, 0x9632, 0x962e, - 0x9631, 0x962a, 0x962c, 0x4e26, 0x4e56, 0x4e73, 0x4e8b, 0x4e9b, - 0x4e9e, 0x4eab, 0x4eac, 0x4f6f, 0x4f9d, 0x4f8d, 0x4f73, 0x4f7f, - 0x4f6c, 0x4f9b, 0x4f8b, 0x4f86, 0x4f83, 0x4f70, 0x4f75, 0x4f88, - 0x4f69, 0x4f7b, 0x4f96, 0x4f7e, 0x4f8f, 0x4f91, 0x4f7a, 0x5154, - 0x5152, 0x5155, 0x5169, 0x5177, 0x5176, 0x5178, 0x51bd, 0x51fd, - 0x523b, 0x5238, 0x5237, 0x523a, 0x5230, 0x522e, 0x5236, 0x5241, - 0x52be, 0x52bb, 0x5352, 0x5354, 0x5353, 0x5351, 0x5366, 0x5377, - 0x5378, 0x5379, 0x53d6, 0x53d4, 0x53d7, 0x5473, 0x5475, 0x003f, - /* lead byte a9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5496, 0x5478, 0x5495, 0x5480, 0x547b, 0x5477, 0x5484, 0x5492, - 0x5486, 0x547c, 0x5490, 0x5471, 0x5476, 0x548c, 0x549a, 0x5462, - 0x5468, 0x548b, 0x547d, 0x548e, 0x56fa, 0x5783, 0x5777, 0x576a, - 0x5769, 0x5761, 0x5766, 0x5764, 0x577c, 0x591c, 0x5949, 0x5947, - 0x5948, 0x5944, 0x5954, 0x59be, 0x59bb, 0x59d4, 0x59b9, 0x59ae, - 0x59d1, 0x59c6, 0x59d0, 0x59cd, 0x59cb, 0x59d3, 0x59ca, 0x59af, - 0x59b3, 0x59d2, 0x59c5, 0x5b5f, 0x5b64, 0x5b63, 0x5b97, 0x5b9a, - 0x5b98, 0x5b9c, 0x5b99, 0x5b9b, 0x5c1a, 0x5c48, 0x5c45, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5c46, 0x5cb7, 0x5ca1, 0x5cb8, 0x5ca9, 0x5cab, 0x5cb1, - 0x5cb3, 0x5e18, 0x5e1a, 0x5e16, 0x5e15, 0x5e1b, 0x5e11, 0x5e78, - 0x5e9a, 0x5e97, 0x5e9c, 0x5e95, 0x5e96, 0x5ef6, 0x5f26, 0x5f27, - 0x5f29, 0x5f80, 0x5f81, 0x5f7f, 0x5f7c, 0x5fdd, 0x5fe0, 0x5ffd, - 0x5ff5, 0x5fff, 0x600f, 0x6014, 0x602f, 0x6035, 0x6016, 0x602a, - 0x6015, 0x6021, 0x6027, 0x6029, 0x602b, 0x601b, 0x6216, 0x6215, - 0x623f, 0x623e, 0x6240, 0x627f, 0x62c9, 0x62cc, 0x62c4, 0x62bf, - 0x62c2, 0x62b9, 0x62d2, 0x62db, 0x62ab, 0x62d3, 0x62d4, 0x62cb, - 0x62c8, 0x62a8, 0x62bd, 0x62bc, 0x62d0, 0x62d9, 0x62c7, 0x62cd, - 0x62b5, 0x62da, 0x62b1, 0x62d8, 0x62d6, 0x62d7, 0x62c6, 0x62ac, - 0x62ce, 0x653e, 0x65a7, 0x65bc, 0x65fa, 0x6614, 0x6613, 0x660c, - 0x6606, 0x6602, 0x660e, 0x6600, 0x660f, 0x6615, 0x660a, 0x003f, - /* lead byte aa */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6607, 0x670d, 0x670b, 0x676d, 0x678b, 0x6795, 0x6771, 0x679c, - 0x6773, 0x6777, 0x6787, 0x679d, 0x6797, 0x676f, 0x6770, 0x677f, - 0x6789, 0x677e, 0x6790, 0x6775, 0x679a, 0x6793, 0x677c, 0x676a, - 0x6772, 0x6b23, 0x6b66, 0x6b67, 0x6b7f, 0x6c13, 0x6c1b, 0x6ce3, - 0x6ce8, 0x6cf3, 0x6cb1, 0x6ccc, 0x6ce5, 0x6cb3, 0x6cbd, 0x6cbe, - 0x6cbc, 0x6ce2, 0x6cab, 0x6cd5, 0x6cd3, 0x6cb8, 0x6cc4, 0x6cb9, - 0x6cc1, 0x6cae, 0x6cd7, 0x6cc5, 0x6cf1, 0x6cbf, 0x6cbb, 0x6ce1, - 0x6cdb, 0x6cca, 0x6cac, 0x6cef, 0x6cdc, 0x6cd6, 0x6ce0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7095, 0x708e, 0x7092, 0x708a, 0x7099, 0x722c, 0x722d, - 0x7238, 0x7248, 0x7267, 0x7269, 0x72c0, 0x72ce, 0x72d9, 0x72d7, - 0x72d0, 0x73a9, 0x73a8, 0x739f, 0x73ab, 0x73a5, 0x753d, 0x759d, - 0x7599, 0x759a, 0x7684, 0x76c2, 0x76f2, 0x76f4, 0x77e5, 0x77fd, - 0x793e, 0x7940, 0x7941, 0x79c9, 0x79c8, 0x7a7a, 0x7a79, 0x7afa, - 0x7cfe, 0x7f54, 0x7f8c, 0x7f8b, 0x8005, 0x80ba, 0x80a5, 0x80a2, - 0x80b1, 0x80a1, 0x80ab, 0x80a9, 0x80b4, 0x80aa, 0x80af, 0x81e5, - 0x81fe, 0x820d, 0x82b3, 0x829d, 0x8299, 0x82ad, 0x82bd, 0x829f, - 0x82b9, 0x82b1, 0x82ac, 0x82a5, 0x82af, 0x82b8, 0x82a3, 0x82b0, - 0x82be, 0x82b7, 0x864e, 0x8671, 0x521d, 0x8868, 0x8ecb, 0x8fce, - 0x8fd4, 0x8fd1, 0x90b5, 0x90b8, 0x90b1, 0x90b6, 0x91c7, 0x91d1, - 0x9577, 0x9580, 0x961c, 0x9640, 0x963f, 0x963b, 0x9644, 0x003f, - /* lead byte ab */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9642, 0x96b9, 0x96e8, 0x9752, 0x975e, 0x4e9f, 0x4ead, 0x4eae, - 0x4fe1, 0x4fb5, 0x4faf, 0x4fbf, 0x4fe0, 0x4fd1, 0x4fcf, 0x4fdd, - 0x4fc3, 0x4fb6, 0x4fd8, 0x4fdf, 0x4fca, 0x4fd7, 0x4fae, 0x4fd0, - 0x4fc4, 0x4fc2, 0x4fda, 0x4fce, 0x4fde, 0x4fb7, 0x5157, 0x5192, - 0x5191, 0x51a0, 0x524e, 0x5243, 0x524a, 0x524d, 0x524c, 0x524b, - 0x5247, 0x52c7, 0x52c9, 0x52c3, 0x52c1, 0x530d, 0x5357, 0x537b, - 0x539a, 0x53db, 0x54ac, 0x54c0, 0x54a8, 0x54ce, 0x54c9, 0x54b8, - 0x54a6, 0x54b3, 0x54c7, 0x54c2, 0x54bd, 0x54aa, 0x54c1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x54c4, 0x54c8, 0x54af, 0x54ab, 0x54b1, 0x54bb, 0x54a9, - 0x54a7, 0x54bf, 0x56ff, 0x5782, 0x578b, 0x57a0, 0x57a3, 0x57a2, - 0x57ce, 0x57ae, 0x5793, 0x5955, 0x5951, 0x594f, 0x594e, 0x5950, - 0x59dc, 0x59d8, 0x59ff, 0x59e3, 0x59e8, 0x5a03, 0x59e5, 0x59ea, - 0x59da, 0x59e6, 0x5a01, 0x59fb, 0x5b69, 0x5ba3, 0x5ba6, 0x5ba4, - 0x5ba2, 0x5ba5, 0x5c01, 0x5c4e, 0x5c4f, 0x5c4d, 0x5c4b, 0x5cd9, - 0x5cd2, 0x5df7, 0x5e1d, 0x5e25, 0x5e1f, 0x5e7d, 0x5ea0, 0x5ea6, - 0x5efa, 0x5f08, 0x5f2d, 0x5f65, 0x5f88, 0x5f85, 0x5f8a, 0x5f8b, - 0x5f87, 0x5f8c, 0x5f89, 0x6012, 0x601d, 0x6020, 0x6025, 0x600e, - 0x6028, 0x604d, 0x6070, 0x6068, 0x6062, 0x6046, 0x6043, 0x606c, - 0x606b, 0x606a, 0x6064, 0x6241, 0x62dc, 0x6316, 0x6309, 0x62fc, - 0x62ed, 0x6301, 0x62ee, 0x62fd, 0x6307, 0x62f1, 0x62f7, 0x003f, - /* lead byte ac */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x62ef, 0x62ec, 0x62fe, 0x62f4, 0x6311, 0x6302, 0x653f, 0x6545, - 0x65ab, 0x65bd, 0x65e2, 0x6625, 0x662d, 0x6620, 0x6627, 0x662f, - 0x661f, 0x6628, 0x6631, 0x6624, 0x66f7, 0x67ff, 0x67d3, 0x67f1, - 0x67d4, 0x67d0, 0x67ec, 0x67b6, 0x67af, 0x67f5, 0x67e9, 0x67ef, - 0x67c4, 0x67d1, 0x67b4, 0x67da, 0x67e5, 0x67b8, 0x67cf, 0x67de, - 0x67f3, 0x67b0, 0x67d9, 0x67e2, 0x67dd, 0x67d2, 0x6b6a, 0x6b83, - 0x6b86, 0x6bb5, 0x6bd2, 0x6bd7, 0x6c1f, 0x6cc9, 0x6d0b, 0x6d32, - 0x6d2a, 0x6d41, 0x6d25, 0x6d0c, 0x6d31, 0x6d1e, 0x6d17, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6d3b, 0x6d3d, 0x6d3e, 0x6d36, 0x6d1b, 0x6cf5, 0x6d39, - 0x6d27, 0x6d38, 0x6d29, 0x6d2e, 0x6d35, 0x6d0e, 0x6d2b, 0x70ab, - 0x70ba, 0x70b3, 0x70ac, 0x70af, 0x70ad, 0x70b8, 0x70ae, 0x70a4, - 0x7230, 0x7272, 0x726f, 0x7274, 0x72e9, 0x72e0, 0x72e1, 0x73b7, - 0x73ca, 0x73bb, 0x73b2, 0x73cd, 0x73c0, 0x73b3, 0x751a, 0x752d, - 0x754f, 0x754c, 0x754e, 0x754b, 0x75ab, 0x75a4, 0x75a5, 0x75a2, - 0x75a3, 0x7678, 0x7686, 0x7687, 0x7688, 0x76c8, 0x76c6, 0x76c3, - 0x76c5, 0x7701, 0x76f9, 0x76f8, 0x7709, 0x770b, 0x76fe, 0x76fc, - 0x7707, 0x77dc, 0x7802, 0x7814, 0x780c, 0x780d, 0x7946, 0x7949, - 0x7948, 0x7947, 0x79b9, 0x79ba, 0x79d1, 0x79d2, 0x79cb, 0x7a7f, - 0x7a81, 0x7aff, 0x7afd, 0x7c7d, 0x7d02, 0x7d05, 0x7d00, 0x7d09, - 0x7d07, 0x7d04, 0x7d06, 0x7f38, 0x7f8e, 0x7fbf, 0x8004, 0x003f, - /* lead byte ad */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8010, 0x800d, 0x8011, 0x8036, 0x80d6, 0x80e5, 0x80da, 0x80c3, - 0x80c4, 0x80cc, 0x80e1, 0x80db, 0x80ce, 0x80de, 0x80e4, 0x80dd, - 0x81f4, 0x8222, 0x82e7, 0x8303, 0x8305, 0x82e3, 0x82db, 0x82e6, - 0x8304, 0x82e5, 0x8302, 0x8309, 0x82d2, 0x82d7, 0x82f1, 0x8301, - 0x82dc, 0x82d4, 0x82d1, 0x82de, 0x82d3, 0x82df, 0x82ef, 0x8306, - 0x8650, 0x8679, 0x867b, 0x867a, 0x884d, 0x886b, 0x8981, 0x89d4, - 0x8a08, 0x8a02, 0x8a03, 0x8c9e, 0x8ca0, 0x8d74, 0x8d73, 0x8db4, - 0x8ecd, 0x8ecc, 0x8ff0, 0x8fe6, 0x8fe2, 0x8fea, 0x8fe5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8fed, 0x8feb, 0x8fe4, 0x8fe8, 0x90ca, 0x90ce, 0x90c1, - 0x90c3, 0x914b, 0x914a, 0x91cd, 0x9582, 0x9650, 0x964b, 0x964c, - 0x964d, 0x9762, 0x9769, 0x97cb, 0x97ed, 0x97f3, 0x9801, 0x98a8, - 0x98db, 0x98df, 0x9996, 0x9999, 0x4e58, 0x4eb3, 0x500c, 0x500d, - 0x5023, 0x4fef, 0x5026, 0x5025, 0x4ff8, 0x5029, 0x5016, 0x5006, - 0x503c, 0x501f, 0x501a, 0x5012, 0x5011, 0x4ffa, 0x5000, 0x5014, - 0x5028, 0x4ff1, 0x5021, 0x500b, 0x5019, 0x5018, 0x4ff3, 0x4fee, - 0x502d, 0x502a, 0x4ffe, 0x502b, 0x5009, 0x517c, 0x51a4, 0x51a5, - 0x51a2, 0x51cd, 0x51cc, 0x51c6, 0x51cb, 0x5256, 0x525c, 0x5254, - 0x525b, 0x525d, 0x532a, 0x537f, 0x539f, 0x539d, 0x53df, 0x54e8, - 0x5510, 0x5501, 0x5537, 0x54fc, 0x54e5, 0x54f2, 0x5506, 0x54fa, - 0x5514, 0x54e9, 0x54ed, 0x54e1, 0x5509, 0x54ee, 0x54ea, 0x003f, - /* lead byte ae */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x54e6, 0x5527, 0x5507, 0x54fd, 0x550f, 0x5703, 0x5704, 0x57c2, - 0x57d4, 0x57cb, 0x57c3, 0x5809, 0x590f, 0x5957, 0x5958, 0x595a, - 0x5a11, 0x5a18, 0x5a1c, 0x5a1f, 0x5a1b, 0x5a13, 0x59ec, 0x5a20, - 0x5a23, 0x5a29, 0x5a25, 0x5a0c, 0x5a09, 0x5b6b, 0x5c58, 0x5bb0, - 0x5bb3, 0x5bb6, 0x5bb4, 0x5bae, 0x5bb5, 0x5bb9, 0x5bb8, 0x5c04, - 0x5c51, 0x5c55, 0x5c50, 0x5ced, 0x5cfd, 0x5cfb, 0x5cea, 0x5ce8, - 0x5cf0, 0x5cf6, 0x5d01, 0x5cf4, 0x5dee, 0x5e2d, 0x5e2b, 0x5eab, - 0x5ead, 0x5ea7, 0x5f31, 0x5f92, 0x5f91, 0x5f90, 0x6059, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6063, 0x6065, 0x6050, 0x6055, 0x606d, 0x6069, 0x606f, - 0x6084, 0x609f, 0x609a, 0x608d, 0x6094, 0x608c, 0x6085, 0x6096, - 0x6247, 0x62f3, 0x6308, 0x62ff, 0x634e, 0x633e, 0x632f, 0x6355, - 0x6342, 0x6346, 0x634f, 0x6349, 0x633a, 0x6350, 0x633d, 0x632a, - 0x632b, 0x6328, 0x634d, 0x634c, 0x6548, 0x6549, 0x6599, 0x65c1, - 0x65c5, 0x6642, 0x6649, 0x664f, 0x6643, 0x6652, 0x664c, 0x6645, - 0x6641, 0x66f8, 0x6714, 0x6715, 0x6717, 0x6821, 0x6838, 0x6848, - 0x6846, 0x6853, 0x6839, 0x6842, 0x6854, 0x6829, 0x68b3, 0x6817, - 0x684c, 0x6851, 0x683d, 0x67f4, 0x6850, 0x6840, 0x683c, 0x6843, - 0x682a, 0x6845, 0x6813, 0x6818, 0x6841, 0x6b8a, 0x6b89, 0x6bb7, - 0x6c23, 0x6c27, 0x6c28, 0x6c26, 0x6c24, 0x6cf0, 0x6d6a, 0x6d95, - 0x6d88, 0x6d87, 0x6d66, 0x6d78, 0x6d77, 0x6d59, 0x6d93, 0x003f, - /* lead byte af */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6d6c, 0x6d89, 0x6d6e, 0x6d5a, 0x6d74, 0x6d69, 0x6d8c, 0x6d8a, - 0x6d79, 0x6d85, 0x6d65, 0x6d94, 0x70ca, 0x70d8, 0x70e4, 0x70d9, - 0x70c8, 0x70cf, 0x7239, 0x7279, 0x72fc, 0x72f9, 0x72fd, 0x72f8, - 0x72f7, 0x7386, 0x73ed, 0x7409, 0x73ee, 0x73e0, 0x73ea, 0x73de, - 0x7554, 0x755d, 0x755c, 0x755a, 0x7559, 0x75be, 0x75c5, 0x75c7, - 0x75b2, 0x75b3, 0x75bd, 0x75bc, 0x75b9, 0x75c2, 0x75b8, 0x768b, - 0x76b0, 0x76ca, 0x76cd, 0x76ce, 0x7729, 0x771f, 0x7720, 0x7728, - 0x77e9, 0x7830, 0x7827, 0x7838, 0x781d, 0x7834, 0x7837, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7825, 0x782d, 0x7820, 0x781f, 0x7832, 0x7955, 0x7950, - 0x7960, 0x795f, 0x7956, 0x795e, 0x795d, 0x7957, 0x795a, 0x79e4, - 0x79e3, 0x79e7, 0x79df, 0x79e6, 0x79e9, 0x79d8, 0x7a84, 0x7a88, - 0x7ad9, 0x7b06, 0x7b11, 0x7c89, 0x7d21, 0x7d17, 0x7d0b, 0x7d0a, - 0x7d20, 0x7d22, 0x7d14, 0x7d10, 0x7d15, 0x7d1a, 0x7d1c, 0x7d0d, - 0x7d19, 0x7d1b, 0x7f3a, 0x7f5f, 0x7f94, 0x7fc5, 0x7fc1, 0x8006, - 0x8018, 0x8015, 0x8019, 0x8017, 0x803d, 0x803f, 0x80f1, 0x8102, - 0x80f0, 0x8105, 0x80ed, 0x80f4, 0x8106, 0x80f8, 0x80f3, 0x8108, - 0x80fd, 0x810a, 0x80fc, 0x80ef, 0x81ed, 0x81ec, 0x8200, 0x8210, - 0x822a, 0x822b, 0x8228, 0x822c, 0x82bb, 0x832b, 0x8352, 0x8354, - 0x834a, 0x8338, 0x8350, 0x8349, 0x8335, 0x8334, 0x834f, 0x8332, - 0x8339, 0x8336, 0x8317, 0x8340, 0x8331, 0x8328, 0x8343, 0x003f, - /* lead byte b0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8654, 0x868a, 0x86aa, 0x8693, 0x86a4, 0x86a9, 0x868c, 0x86a3, - 0x869c, 0x8870, 0x8877, 0x8881, 0x8882, 0x887d, 0x8879, 0x8a18, - 0x8a10, 0x8a0e, 0x8a0c, 0x8a15, 0x8a0a, 0x8a17, 0x8a13, 0x8a16, - 0x8a0f, 0x8a11, 0x8c48, 0x8c7a, 0x8c79, 0x8ca1, 0x8ca2, 0x8d77, - 0x8eac, 0x8ed2, 0x8ed4, 0x8ecf, 0x8fb1, 0x9001, 0x9006, 0x8ff7, - 0x9000, 0x8ffa, 0x8ff4, 0x9003, 0x8ffd, 0x9005, 0x8ff8, 0x9095, - 0x90e1, 0x90dd, 0x90e2, 0x9152, 0x914d, 0x914c, 0x91d8, 0x91dd, - 0x91d7, 0x91dc, 0x91d9, 0x9583, 0x9662, 0x9663, 0x9661, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x965b, 0x965d, 0x9664, 0x9658, 0x965e, 0x96bb, 0x98e2, - 0x99ac, 0x9aa8, 0x9ad8, 0x9b25, 0x9b32, 0x9b3c, 0x4e7e, 0x507a, - 0x507d, 0x505c, 0x5047, 0x5043, 0x504c, 0x505a, 0x5049, 0x5065, - 0x5076, 0x504e, 0x5055, 0x5075, 0x5074, 0x5077, 0x504f, 0x500f, - 0x506f, 0x506d, 0x515c, 0x5195, 0x51f0, 0x526a, 0x526f, 0x52d2, - 0x52d9, 0x52d8, 0x52d5, 0x5310, 0x530f, 0x5319, 0x533f, 0x5340, - 0x533e, 0x53c3, 0x66fc, 0x5546, 0x556a, 0x5566, 0x5544, 0x555e, - 0x5561, 0x5543, 0x554a, 0x5531, 0x5556, 0x554f, 0x5555, 0x552f, - 0x5564, 0x5538, 0x552e, 0x555c, 0x552c, 0x5563, 0x5533, 0x5541, - 0x5557, 0x5708, 0x570b, 0x5709, 0x57df, 0x5805, 0x580a, 0x5806, - 0x57e0, 0x57e4, 0x57fa, 0x5802, 0x5835, 0x57f7, 0x57f9, 0x5920, - 0x5962, 0x5a36, 0x5a41, 0x5a49, 0x5a66, 0x5a6a, 0x5a40, 0x003f, - /* lead byte b1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5a3c, 0x5a62, 0x5a5a, 0x5a46, 0x5a4a, 0x5b70, 0x5bc7, 0x5bc5, - 0x5bc4, 0x5bc2, 0x5bbf, 0x5bc6, 0x5c09, 0x5c08, 0x5c07, 0x5c60, - 0x5c5c, 0x5c5d, 0x5d07, 0x5d06, 0x5d0e, 0x5d1b, 0x5d16, 0x5d22, - 0x5d11, 0x5d29, 0x5d14, 0x5d19, 0x5d24, 0x5d27, 0x5d17, 0x5de2, - 0x5e38, 0x5e36, 0x5e33, 0x5e37, 0x5eb7, 0x5eb8, 0x5eb6, 0x5eb5, - 0x5ebe, 0x5f35, 0x5f37, 0x5f57, 0x5f6c, 0x5f69, 0x5f6b, 0x5f97, - 0x5f99, 0x5f9e, 0x5f98, 0x5fa1, 0x5fa0, 0x5f9c, 0x607f, 0x60a3, - 0x6089, 0x60a0, 0x60a8, 0x60cb, 0x60b4, 0x60e6, 0x60bd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x60c5, 0x60bb, 0x60b5, 0x60dc, 0x60bc, 0x60d8, 0x60d5, - 0x60c6, 0x60df, 0x60b8, 0x60da, 0x60c7, 0x621a, 0x621b, 0x6248, - 0x63a0, 0x63a7, 0x6372, 0x6396, 0x63a2, 0x63a5, 0x6377, 0x6367, - 0x6398, 0x63aa, 0x6371, 0x63a9, 0x6389, 0x6383, 0x639b, 0x636b, - 0x63a8, 0x6384, 0x6388, 0x6399, 0x63a1, 0x63ac, 0x6392, 0x638f, - 0x6380, 0x637b, 0x6369, 0x6368, 0x637a, 0x655d, 0x6556, 0x6551, - 0x6559, 0x6557, 0x555f, 0x654f, 0x6558, 0x6555, 0x6554, 0x659c, - 0x659b, 0x65ac, 0x65cf, 0x65cb, 0x65cc, 0x65ce, 0x665d, 0x665a, - 0x6664, 0x6668, 0x6666, 0x665e, 0x66f9, 0x52d7, 0x671b, 0x6881, - 0x68af, 0x68a2, 0x6893, 0x68b5, 0x687f, 0x6876, 0x68b1, 0x68a7, - 0x6897, 0x68b0, 0x6883, 0x68c4, 0x68ad, 0x6886, 0x6885, 0x6894, - 0x689d, 0x68a8, 0x689f, 0x68a1, 0x6882, 0x6b32, 0x6bba, 0x003f, - /* lead byte b2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6beb, 0x6bec, 0x6c2b, 0x6d8e, 0x6dbc, 0x6df3, 0x6dd9, 0x6db2, - 0x6de1, 0x6dcc, 0x6de4, 0x6dfb, 0x6dfa, 0x6e05, 0x6dc7, 0x6dcb, - 0x6daf, 0x6dd1, 0x6dae, 0x6dde, 0x6df9, 0x6db8, 0x6df7, 0x6df5, - 0x6dc5, 0x6dd2, 0x6e1a, 0x6db5, 0x6dda, 0x6deb, 0x6dd8, 0x6dea, - 0x6df1, 0x6dee, 0x6de8, 0x6dc6, 0x6dc4, 0x6daa, 0x6dec, 0x6dbf, - 0x6de6, 0x70f9, 0x7109, 0x710a, 0x70fd, 0x70ef, 0x723d, 0x727d, - 0x7281, 0x731c, 0x731b, 0x7316, 0x7313, 0x7319, 0x7387, 0x7405, - 0x740a, 0x7403, 0x7406, 0x73fe, 0x740d, 0x74e0, 0x74f6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x74f7, 0x751c, 0x7522, 0x7565, 0x7566, 0x7562, 0x7570, - 0x758f, 0x75d4, 0x75d5, 0x75b5, 0x75ca, 0x75cd, 0x768e, 0x76d4, - 0x76d2, 0x76db, 0x7737, 0x773e, 0x773c, 0x7736, 0x7738, 0x773a, - 0x786b, 0x7843, 0x784e, 0x7965, 0x7968, 0x796d, 0x79fb, 0x7a92, - 0x7a95, 0x7b20, 0x7b28, 0x7b1b, 0x7b2c, 0x7b26, 0x7b19, 0x7b1e, - 0x7b2e, 0x7c92, 0x7c97, 0x7c95, 0x7d46, 0x7d43, 0x7d71, 0x7d2e, - 0x7d39, 0x7d3c, 0x7d40, 0x7d30, 0x7d33, 0x7d44, 0x7d2f, 0x7d42, - 0x7d32, 0x7d31, 0x7f3d, 0x7f9e, 0x7f9a, 0x7fcc, 0x7fce, 0x7fd2, - 0x801c, 0x804a, 0x8046, 0x812f, 0x8116, 0x8123, 0x812b, 0x8129, - 0x8130, 0x8124, 0x8202, 0x8235, 0x8237, 0x8236, 0x8239, 0x838e, - 0x839e, 0x8398, 0x8378, 0x83a2, 0x8396, 0x83bd, 0x83ab, 0x8392, - 0x838a, 0x8393, 0x8389, 0x83a0, 0x8377, 0x837b, 0x837c, 0x003f, - /* lead byte b3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8386, 0x83a7, 0x8655, 0x5f6a, 0x86c7, 0x86c0, 0x86b6, 0x86c4, - 0x86b5, 0x86c6, 0x86cb, 0x86b1, 0x86af, 0x86c9, 0x8853, 0x889e, - 0x8888, 0x88ab, 0x8892, 0x8896, 0x888d, 0x888b, 0x8993, 0x898f, - 0x8a2a, 0x8a1d, 0x8a23, 0x8a25, 0x8a31, 0x8a2d, 0x8a1f, 0x8a1b, - 0x8a22, 0x8c49, 0x8c5a, 0x8ca9, 0x8cac, 0x8cab, 0x8ca8, 0x8caa, - 0x8ca7, 0x8d67, 0x8d66, 0x8dbe, 0x8dba, 0x8edb, 0x8edf, 0x9019, - 0x900d, 0x901a, 0x9017, 0x9023, 0x901f, 0x901d, 0x9010, 0x9015, - 0x901e, 0x9020, 0x900f, 0x9022, 0x9016, 0x901b, 0x9014, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x90e8, 0x90ed, 0x90fd, 0x9157, 0x91ce, 0x91f5, 0x91e6, - 0x91e3, 0x91e7, 0x91ed, 0x91e9, 0x9589, 0x966a, 0x9675, 0x9673, - 0x9678, 0x9670, 0x9674, 0x9676, 0x9677, 0x966c, 0x96c0, 0x96ea, - 0x96e9, 0x7ae0, 0x7adf, 0x9802, 0x9803, 0x9b5a, 0x9ce5, 0x9e75, - 0x9e7f, 0x9ea5, 0x9ebb, 0x50a2, 0x508d, 0x5085, 0x5099, 0x5091, - 0x5080, 0x5096, 0x5098, 0x509a, 0x6700, 0x51f1, 0x5272, 0x5274, - 0x5275, 0x5269, 0x52de, 0x52dd, 0x52db, 0x535a, 0x53a5, 0x557b, - 0x5580, 0x55a7, 0x557c, 0x558a, 0x559d, 0x5598, 0x5582, 0x559c, - 0x55aa, 0x5594, 0x5587, 0x558b, 0x5583, 0x55b3, 0x55ae, 0x559f, - 0x553e, 0x55b2, 0x559a, 0x55bb, 0x55ac, 0x55b1, 0x557e, 0x5589, - 0x55ab, 0x5599, 0x570d, 0x582f, 0x582a, 0x5834, 0x5824, 0x5830, - 0x5831, 0x5821, 0x581d, 0x5820, 0x58f9, 0x58fa, 0x5960, 0x003f, - /* lead byte b4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5a77, 0x5a9a, 0x5a7f, 0x5a92, 0x5a9b, 0x5aa7, 0x5b73, 0x5b71, - 0x5bd2, 0x5bcc, 0x5bd3, 0x5bd0, 0x5c0a, 0x5c0b, 0x5c31, 0x5d4c, - 0x5d50, 0x5d34, 0x5d47, 0x5dfd, 0x5e45, 0x5e3d, 0x5e40, 0x5e43, - 0x5e7e, 0x5eca, 0x5ec1, 0x5ec2, 0x5ec4, 0x5f3c, 0x5f6d, 0x5fa9, - 0x5faa, 0x5fa8, 0x60d1, 0x60e1, 0x60b2, 0x60b6, 0x60e0, 0x611c, - 0x6123, 0x60fa, 0x6115, 0x60f0, 0x60fb, 0x60f4, 0x6168, 0x60f1, - 0x610e, 0x60f6, 0x6109, 0x6100, 0x6112, 0x621f, 0x6249, 0x63a3, - 0x638c, 0x63cf, 0x63c0, 0x63e9, 0x63c9, 0x63c6, 0x63cd, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x63d2, 0x63e3, 0x63d0, 0x63e1, 0x63d6, 0x63ed, 0x63ee, - 0x6376, 0x63f4, 0x63ea, 0x63db, 0x6452, 0x63da, 0x63f9, 0x655e, - 0x6566, 0x6562, 0x6563, 0x6591, 0x6590, 0x65af, 0x666e, 0x6670, - 0x6674, 0x6676, 0x666f, 0x6691, 0x667a, 0x667e, 0x6677, 0x66fe, - 0x66ff, 0x671f, 0x671d, 0x68fa, 0x68d5, 0x68e0, 0x68d8, 0x68d7, - 0x6905, 0x68df, 0x68f5, 0x68ee, 0x68e7, 0x68f9, 0x68d2, 0x68f2, - 0x68e3, 0x68cb, 0x68cd, 0x690d, 0x6912, 0x690e, 0x68c9, 0x68da, - 0x696e, 0x68fb, 0x6b3e, 0x6b3a, 0x6b3d, 0x6b98, 0x6b96, 0x6bbc, - 0x6bef, 0x6c2e, 0x6c2f, 0x6c2c, 0x6e2f, 0x6e38, 0x6e54, 0x6e21, - 0x6e32, 0x6e67, 0x6e4a, 0x6e20, 0x6e25, 0x6e23, 0x6e1b, 0x6e5b, - 0x6e58, 0x6e24, 0x6e56, 0x6e6e, 0x6e2d, 0x6e26, 0x6e6f, 0x6e34, - 0x6e4d, 0x6e3a, 0x6e2c, 0x6e43, 0x6e1d, 0x6e3e, 0x6ecb, 0x003f, - /* lead byte b5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6e89, 0x6e19, 0x6e4e, 0x6e63, 0x6e44, 0x6e72, 0x6e69, 0x6e5f, - 0x7119, 0x711a, 0x7126, 0x7130, 0x7121, 0x7136, 0x716e, 0x711c, - 0x724c, 0x7284, 0x7280, 0x7336, 0x7325, 0x7334, 0x7329, 0x743a, - 0x742a, 0x7433, 0x7422, 0x7425, 0x7435, 0x7436, 0x7434, 0x742f, - 0x741b, 0x7426, 0x7428, 0x7525, 0x7526, 0x756b, 0x756a, 0x75e2, - 0x75db, 0x75e3, 0x75d9, 0x75d8, 0x75de, 0x75e0, 0x767b, 0x767c, - 0x7696, 0x7693, 0x76b4, 0x76dc, 0x774f, 0x77ed, 0x785d, 0x786c, - 0x786f, 0x7a0d, 0x7a08, 0x7a0b, 0x7a05, 0x7a00, 0x7a98, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7a97, 0x7a96, 0x7ae5, 0x7ae3, 0x7b49, 0x7b56, 0x7b46, - 0x7b50, 0x7b52, 0x7b54, 0x7b4d, 0x7b4b, 0x7b4f, 0x7b51, 0x7c9f, - 0x7ca5, 0x7d5e, 0x7d50, 0x7d68, 0x7d55, 0x7d2b, 0x7d6e, 0x7d72, - 0x7d61, 0x7d66, 0x7d62, 0x7d70, 0x7d73, 0x5584, 0x7fd4, 0x7fd5, - 0x800b, 0x8052, 0x8085, 0x8155, 0x8154, 0x814b, 0x8151, 0x814e, - 0x8139, 0x8146, 0x813e, 0x814c, 0x8153, 0x8174, 0x8212, 0x821c, - 0x83e9, 0x8403, 0x83f8, 0x840d, 0x83e0, 0x83c5, 0x840b, 0x83c1, - 0x83ef, 0x83f1, 0x83f4, 0x8457, 0x840a, 0x83f0, 0x840c, 0x83cc, - 0x83fd, 0x83f2, 0x83ca, 0x8438, 0x840e, 0x8404, 0x83dc, 0x8407, - 0x83d4, 0x83df, 0x865b, 0x86df, 0x86d9, 0x86ed, 0x86d4, 0x86db, - 0x86e4, 0x86d0, 0x86de, 0x8857, 0x88c1, 0x88c2, 0x88b1, 0x8983, - 0x8996, 0x8a3b, 0x8a60, 0x8a55, 0x8a5e, 0x8a3c, 0x8a41, 0x003f, - /* lead byte b6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8a54, 0x8a5b, 0x8a50, 0x8a46, 0x8a34, 0x8a3a, 0x8a36, 0x8a56, - 0x8c61, 0x8c82, 0x8caf, 0x8cbc, 0x8cb3, 0x8cbd, 0x8cc1, 0x8cbb, - 0x8cc0, 0x8cb4, 0x8cb7, 0x8cb6, 0x8cbf, 0x8cb8, 0x8d8a, 0x8d85, - 0x8d81, 0x8dce, 0x8ddd, 0x8dcb, 0x8dda, 0x8dd1, 0x8dcc, 0x8ddb, - 0x8dc6, 0x8efb, 0x8ef8, 0x8efc, 0x8f9c, 0x902e, 0x9035, 0x9031, - 0x9038, 0x9032, 0x9036, 0x9102, 0x90f5, 0x9109, 0x90fe, 0x9163, - 0x9165, 0x91cf, 0x9214, 0x9215, 0x9223, 0x9209, 0x921e, 0x920d, - 0x9210, 0x9207, 0x9211, 0x9594, 0x958f, 0x958b, 0x9591, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9593, 0x9592, 0x958e, 0x968a, 0x968e, 0x968b, 0x967d, - 0x9685, 0x9686, 0x968d, 0x9672, 0x9684, 0x96c1, 0x96c5, 0x96c4, - 0x96c6, 0x96c7, 0x96ef, 0x96f2, 0x97cc, 0x9805, 0x9806, 0x9808, - 0x98e7, 0x98ea, 0x98ef, 0x98e9, 0x98f2, 0x98ed, 0x99ae, 0x99ad, - 0x9ec3, 0x9ecd, 0x9ed1, 0x4e82, 0x50ad, 0x50b5, 0x50b2, 0x50b3, - 0x50c5, 0x50be, 0x50ac, 0x50b7, 0x50bb, 0x50af, 0x50c7, 0x527f, - 0x5277, 0x527d, 0x52df, 0x52e6, 0x52e4, 0x52e2, 0x52e3, 0x532f, - 0x55df, 0x55e8, 0x55d3, 0x55e6, 0x55ce, 0x55dc, 0x55c7, 0x55d1, - 0x55e3, 0x55e4, 0x55ef, 0x55da, 0x55e1, 0x55c5, 0x55c6, 0x55e5, - 0x55c9, 0x5712, 0x5713, 0x585e, 0x5851, 0x5858, 0x5857, 0x585a, - 0x5854, 0x586b, 0x584c, 0x586d, 0x584a, 0x5862, 0x5852, 0x584b, - 0x5967, 0x5ac1, 0x5ac9, 0x5acc, 0x5abe, 0x5abd, 0x5abc, 0x003f, - /* lead byte b7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5ab3, 0x5ac2, 0x5ab2, 0x5d69, 0x5d6f, 0x5e4c, 0x5e79, 0x5ec9, - 0x5ec8, 0x5f12, 0x5f59, 0x5fac, 0x5fae, 0x611a, 0x610f, 0x6148, - 0x611f, 0x60f3, 0x611b, 0x60f9, 0x6101, 0x6108, 0x614e, 0x614c, - 0x6144, 0x614d, 0x613e, 0x6134, 0x6127, 0x610d, 0x6106, 0x6137, - 0x6221, 0x6222, 0x6413, 0x643e, 0x641e, 0x642a, 0x642d, 0x643d, - 0x642c, 0x640f, 0x641c, 0x6414, 0x640d, 0x6436, 0x6416, 0x6417, - 0x6406, 0x656c, 0x659f, 0x65b0, 0x6697, 0x6689, 0x6687, 0x6688, - 0x6696, 0x6684, 0x6698, 0x668d, 0x6703, 0x6994, 0x696d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x695a, 0x6977, 0x6960, 0x6954, 0x6975, 0x6930, 0x6982, - 0x694a, 0x6968, 0x696b, 0x695e, 0x6953, 0x6979, 0x6986, 0x695d, - 0x6963, 0x695b, 0x6b47, 0x6b72, 0x6bc0, 0x6bbf, 0x6bd3, 0x6bfd, - 0x6ea2, 0x6eaf, 0x6ed3, 0x6eb6, 0x6ec2, 0x6e90, 0x6e9d, 0x6ec7, - 0x6ec5, 0x6ea5, 0x6e98, 0x6ebc, 0x6eba, 0x6eab, 0x6ed1, 0x6e96, - 0x6e9c, 0x6ec4, 0x6ed4, 0x6eaa, 0x6ea7, 0x6eb4, 0x714e, 0x7159, - 0x7169, 0x7164, 0x7149, 0x7167, 0x715c, 0x716c, 0x7166, 0x714c, - 0x7165, 0x715e, 0x7146, 0x7168, 0x7156, 0x723a, 0x7252, 0x7337, - 0x7345, 0x733f, 0x733e, 0x746f, 0x745a, 0x7455, 0x745f, 0x745e, - 0x7441, 0x743f, 0x7459, 0x745b, 0x745c, 0x7576, 0x7578, 0x7600, - 0x75f0, 0x7601, 0x75f2, 0x75f1, 0x75fa, 0x75ff, 0x75f4, 0x75f3, - 0x76de, 0x76df, 0x775b, 0x776b, 0x7766, 0x775e, 0x7763, 0x003f, - /* lead byte b8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7779, 0x776a, 0x776c, 0x775c, 0x7765, 0x7768, 0x7762, 0x77ee, - 0x788e, 0x78b0, 0x7897, 0x7898, 0x788c, 0x7889, 0x787c, 0x7891, - 0x7893, 0x787f, 0x797a, 0x797f, 0x7981, 0x842c, 0x79bd, 0x7a1c, - 0x7a1a, 0x7a20, 0x7a14, 0x7a1f, 0x7a1e, 0x7a9f, 0x7aa0, 0x7b77, - 0x7bc0, 0x7b60, 0x7b6e, 0x7b67, 0x7cb1, 0x7cb3, 0x7cb5, 0x7d93, - 0x7d79, 0x7d91, 0x7d81, 0x7d8f, 0x7d5b, 0x7f6e, 0x7f69, 0x7f6a, - 0x7f72, 0x7fa9, 0x7fa8, 0x7fa4, 0x8056, 0x8058, 0x8086, 0x8084, - 0x8171, 0x8170, 0x8178, 0x8165, 0x816e, 0x8173, 0x816b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8179, 0x817a, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, - 0x843d, 0x8431, 0x8475, 0x8466, 0x846b, 0x8449, 0x846c, 0x845b, - 0x843c, 0x8435, 0x8461, 0x8463, 0x8469, 0x846d, 0x8446, 0x865e, - 0x865c, 0x865f, 0x86f9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86fe, - 0x86fb, 0x8702, 0x8703, 0x8706, 0x870a, 0x8859, 0x88df, 0x88d4, - 0x88d9, 0x88dc, 0x88d8, 0x88dd, 0x88e1, 0x88ca, 0x88d5, 0x88d2, - 0x899c, 0x89e3, 0x8a6b, 0x8a72, 0x8a73, 0x8a66, 0x8a69, 0x8a70, - 0x8a87, 0x8a7c, 0x8a63, 0x8aa0, 0x8a71, 0x8a85, 0x8a6d, 0x8a62, - 0x8a6e, 0x8a6c, 0x8a79, 0x8a7b, 0x8a3e, 0x8a68, 0x8c62, 0x8c8a, - 0x8c89, 0x8cca, 0x8cc7, 0x8cc8, 0x8cc4, 0x8cb2, 0x8cc3, 0x8cc2, - 0x8cc5, 0x8de1, 0x8ddf, 0x8de8, 0x8def, 0x8df3, 0x8dfa, 0x8dea, - 0x8de4, 0x8de6, 0x8eb2, 0x8f03, 0x8f09, 0x8efe, 0x8f0a, 0x003f, - /* lead byte b9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8f9f, 0x8fb2, 0x904b, 0x904a, 0x9053, 0x9042, 0x9054, 0x903c, - 0x9055, 0x9050, 0x9047, 0x904f, 0x904e, 0x904d, 0x9051, 0x903e, - 0x9041, 0x9112, 0x9117, 0x916c, 0x916a, 0x9169, 0x91c9, 0x9237, - 0x9257, 0x9238, 0x923d, 0x9240, 0x923e, 0x925b, 0x924b, 0x9264, - 0x9251, 0x9234, 0x9249, 0x924d, 0x9245, 0x9239, 0x923f, 0x925a, - 0x9598, 0x9698, 0x9694, 0x9695, 0x96cd, 0x96cb, 0x96c9, 0x96ca, - 0x96f7, 0x96fb, 0x96f9, 0x96f6, 0x9756, 0x9774, 0x9776, 0x9810, - 0x9811, 0x9813, 0x980a, 0x9812, 0x980c, 0x98fc, 0x98f4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x98fd, 0x98fe, 0x99b3, 0x99b1, 0x99b4, 0x9ae1, 0x9ce9, - 0x9e82, 0x9f0e, 0x9f13, 0x9f20, 0x50e7, 0x50ee, 0x50e5, 0x50d6, - 0x50ed, 0x50da, 0x50d5, 0x50cf, 0x50d1, 0x50f1, 0x50ce, 0x50e9, - 0x5162, 0x51f3, 0x5283, 0x5282, 0x5331, 0x53ad, 0x55fe, 0x5600, - 0x561b, 0x5617, 0x55fd, 0x5614, 0x5606, 0x5609, 0x560d, 0x560e, - 0x55f7, 0x5616, 0x561f, 0x5608, 0x5610, 0x55f6, 0x5718, 0x5716, - 0x5875, 0x587e, 0x5883, 0x5893, 0x588a, 0x5879, 0x5885, 0x587d, - 0x58fd, 0x5925, 0x5922, 0x5924, 0x596a, 0x5969, 0x5ae1, 0x5ae6, - 0x5ae9, 0x5ad7, 0x5ad6, 0x5ad8, 0x5ae3, 0x5b75, 0x5bde, 0x5be7, - 0x5be1, 0x5be5, 0x5be6, 0x5be8, 0x5be2, 0x5be4, 0x5bdf, 0x5c0d, - 0x5c62, 0x5d84, 0x5d87, 0x5e5b, 0x5e63, 0x5e55, 0x5e57, 0x5e54, - 0x5ed3, 0x5ed6, 0x5f0a, 0x5f46, 0x5f70, 0x5fb9, 0x6147, 0x003f, - /* lead byte ba */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x613f, 0x614b, 0x6177, 0x6162, 0x6163, 0x615f, 0x615a, 0x6158, - 0x6175, 0x622a, 0x6487, 0x6458, 0x6454, 0x64a4, 0x6478, 0x645f, - 0x647a, 0x6451, 0x6467, 0x6434, 0x646d, 0x647b, 0x6572, 0x65a1, - 0x65d7, 0x65d6, 0x66a2, 0x66a8, 0x669d, 0x699c, 0x69a8, 0x6995, - 0x69c1, 0x69ae, 0x69d3, 0x69cb, 0x699b, 0x69b7, 0x69bb, 0x69ab, - 0x69b4, 0x69d0, 0x69cd, 0x69ad, 0x69cc, 0x69a6, 0x69c3, 0x69a3, - 0x6b49, 0x6b4c, 0x6c33, 0x6f33, 0x6f14, 0x6efe, 0x6f13, 0x6ef4, - 0x6f29, 0x6f3e, 0x6f20, 0x6f2c, 0x6f0f, 0x6f02, 0x6f22, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6eff, 0x6eef, 0x6f06, 0x6f31, 0x6f38, 0x6f32, 0x6f23, - 0x6f15, 0x6f2b, 0x6f2f, 0x6f88, 0x6f2a, 0x6eec, 0x6f01, 0x6ef2, - 0x6ecc, 0x6ef7, 0x7194, 0x7199, 0x717d, 0x718a, 0x7184, 0x7192, - 0x723e, 0x7292, 0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746a, - 0x7470, 0x746d, 0x7504, 0x7591, 0x7627, 0x760d, 0x760b, 0x7609, - 0x7613, 0x76e1, 0x76e3, 0x7784, 0x777d, 0x777f, 0x7761, 0x78c1, - 0x789f, 0x78a7, 0x78b3, 0x78a9, 0x78a3, 0x798e, 0x798f, 0x798d, - 0x7a2e, 0x7a31, 0x7aaa, 0x7aa9, 0x7aed, 0x7aef, 0x7ba1, 0x7b95, - 0x7b8b, 0x7b75, 0x7b97, 0x7b9d, 0x7b94, 0x7b8f, 0x7bb8, 0x7b87, - 0x7b84, 0x7cb9, 0x7cbd, 0x7cbe, 0x7dbb, 0x7db0, 0x7d9c, 0x7dbd, - 0x7dbe, 0x7da0, 0x7dca, 0x7db4, 0x7db2, 0x7db1, 0x7dba, 0x7da2, - 0x7dbf, 0x7db5, 0x7db8, 0x7dad, 0x7dd2, 0x7dc7, 0x7dac, 0x003f, - /* lead byte bb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7f70, 0x7fe0, 0x7fe1, 0x7fdf, 0x805e, 0x805a, 0x8087, 0x8150, - 0x8180, 0x818f, 0x8188, 0x818a, 0x817f, 0x8182, 0x81e7, 0x81fa, - 0x8207, 0x8214, 0x821e, 0x824b, 0x84c9, 0x84bf, 0x84c6, 0x84c4, - 0x8499, 0x849e, 0x84b2, 0x849c, 0x84cb, 0x84b8, 0x84c0, 0x84d3, - 0x8490, 0x84bc, 0x84d1, 0x84ca, 0x873f, 0x871c, 0x873b, 0x8722, - 0x8725, 0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88f3, 0x8902, - 0x88f4, 0x88f9, 0x88f8, 0x88fd, 0x88e8, 0x891a, 0x88ef, 0x8aa6, - 0x8a8c, 0x8a9e, 0x8aa3, 0x8a8d, 0x8aa1, 0x8a93, 0x8aa4, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8aaa, 0x8aa5, 0x8aa8, 0x8a98, 0x8a91, 0x8a9a, 0x8aa7, - 0x8c6a, 0x8c8d, 0x8c8c, 0x8cd3, 0x8cd1, 0x8cd2, 0x8d6b, 0x8d99, - 0x8d95, 0x8dfc, 0x8f14, 0x8f12, 0x8f15, 0x8f13, 0x8fa3, 0x9060, - 0x9058, 0x905c, 0x9063, 0x9059, 0x905e, 0x9062, 0x905d, 0x905b, - 0x9119, 0x9118, 0x911e, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, - 0x9280, 0x9285, 0x9298, 0x9296, 0x927b, 0x9293, 0x929c, 0x92a8, - 0x927c, 0x9291, 0x95a1, 0x95a8, 0x95a9, 0x95a3, 0x95a5, 0x95a4, - 0x9699, 0x969c, 0x969b, 0x96cc, 0x96d2, 0x9700, 0x977c, 0x9785, - 0x97f6, 0x9817, 0x9818, 0x98af, 0x98b1, 0x9903, 0x9905, 0x990c, - 0x9909, 0x99c1, 0x9aaf, 0x9ab0, 0x9ae6, 0x9b41, 0x9b42, 0x9cf4, - 0x9cf6, 0x9cf3, 0x9ebc, 0x9f3b, 0x9f4a, 0x5104, 0x5100, 0x50fb, - 0x50f5, 0x50f9, 0x5102, 0x5108, 0x5109, 0x5105, 0x51dc, 0x003f, - /* lead byte bc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5287, 0x5288, 0x5289, 0x528d, 0x528a, 0x52f0, 0x53b2, 0x562e, - 0x563b, 0x5639, 0x5632, 0x563f, 0x5634, 0x5629, 0x5653, 0x564e, - 0x5657, 0x5674, 0x5636, 0x562f, 0x5630, 0x5880, 0x589f, 0x589e, - 0x58b3, 0x589c, 0x58ae, 0x58a9, 0x58a6, 0x596d, 0x5b09, 0x5afb, - 0x5b0b, 0x5af5, 0x5b0c, 0x5b08, 0x5bee, 0x5bec, 0x5be9, 0x5beb, - 0x5c64, 0x5c65, 0x5d9d, 0x5d94, 0x5e62, 0x5e5f, 0x5e61, 0x5ee2, - 0x5eda, 0x5edf, 0x5edd, 0x5ee3, 0x5ee0, 0x5f48, 0x5f71, 0x5fb7, - 0x5fb5, 0x6176, 0x6167, 0x616e, 0x615d, 0x6155, 0x6182, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x617c, 0x6170, 0x616b, 0x617e, 0x61a7, 0x6190, 0x61ab, - 0x618e, 0x61ac, 0x619a, 0x61a4, 0x6194, 0x61ae, 0x622e, 0x6469, - 0x646f, 0x6479, 0x649e, 0x64b2, 0x6488, 0x6490, 0x64b0, 0x64a5, - 0x6493, 0x6495, 0x64a9, 0x6492, 0x64ae, 0x64ad, 0x64ab, 0x649a, - 0x64ac, 0x6499, 0x64a2, 0x64b3, 0x6575, 0x6577, 0x6578, 0x66ae, - 0x66ab, 0x66b4, 0x66b1, 0x6a23, 0x6a1f, 0x69e8, 0x6a01, 0x6a1e, - 0x6a19, 0x69fd, 0x6a21, 0x6a13, 0x6a0a, 0x69f3, 0x6a02, 0x6a05, - 0x69ed, 0x6a11, 0x6b50, 0x6b4e, 0x6ba4, 0x6bc5, 0x6bc6, 0x6f3f, - 0x6f7c, 0x6f84, 0x6f51, 0x6f66, 0x6f54, 0x6f86, 0x6f6d, 0x6f5b, - 0x6f78, 0x6f6e, 0x6f8e, 0x6f7a, 0x6f70, 0x6f64, 0x6f97, 0x6f58, - 0x6ed5, 0x6f6f, 0x6f60, 0x6f5f, 0x719f, 0x71ac, 0x71b1, 0x71a8, - 0x7256, 0x729b, 0x734e, 0x7357, 0x7469, 0x748b, 0x7483, 0x003f, - /* lead byte bd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x747e, 0x7480, 0x757f, 0x7620, 0x7629, 0x761f, 0x7624, 0x7626, - 0x7621, 0x7622, 0x769a, 0x76ba, 0x76e4, 0x778e, 0x7787, 0x778c, - 0x7791, 0x778b, 0x78cb, 0x78c5, 0x78ba, 0x78ca, 0x78be, 0x78d5, - 0x78bc, 0x78d0, 0x7a3f, 0x7a3c, 0x7a40, 0x7a3d, 0x7a37, 0x7a3b, - 0x7aaf, 0x7aae, 0x7bad, 0x7bb1, 0x7bc4, 0x7bb4, 0x7bc6, 0x7bc7, - 0x7bc1, 0x7ba0, 0x7bcc, 0x7cca, 0x7de0, 0x7df4, 0x7def, 0x7dfb, - 0x7dd8, 0x7dec, 0x7ddd, 0x7de8, 0x7de3, 0x7dda, 0x7dde, 0x7de9, - 0x7d9e, 0x7dd9, 0x7df2, 0x7df9, 0x7f75, 0x7f77, 0x7faf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7fe9, 0x8026, 0x819b, 0x819c, 0x819d, 0x81a0, 0x819a, - 0x8198, 0x8517, 0x853d, 0x851a, 0x84ee, 0x852c, 0x852d, 0x8513, - 0x8511, 0x8523, 0x8521, 0x8514, 0x84ec, 0x8525, 0x84ff, 0x8506, - 0x8782, 0x8774, 0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759, - 0x8757, 0x874c, 0x8753, 0x885b, 0x885d, 0x8910, 0x8907, 0x8912, - 0x8913, 0x8915, 0x890a, 0x8abc, 0x8ad2, 0x8ac7, 0x8ac4, 0x8a95, - 0x8acb, 0x8af8, 0x8ab2, 0x8ac9, 0x8ac2, 0x8abf, 0x8ab0, 0x8ad6, - 0x8acd, 0x8ab6, 0x8ab9, 0x8adb, 0x8c4c, 0x8c4e, 0x8c6c, 0x8ce0, - 0x8cde, 0x8ce6, 0x8ce4, 0x8cec, 0x8ced, 0x8ce2, 0x8ce3, 0x8cdc, - 0x8cea, 0x8ce1, 0x8d6d, 0x8d9f, 0x8da3, 0x8e2b, 0x8e10, 0x8e1d, - 0x8e22, 0x8e0f, 0x8e29, 0x8e1f, 0x8e21, 0x8e1e, 0x8eba, 0x8f1d, - 0x8f1b, 0x8f1f, 0x8f29, 0x8f26, 0x8f2a, 0x8f1c, 0x8f1e, 0x003f, - /* lead byte be */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8f25, 0x9069, 0x906e, 0x9068, 0x906d, 0x9077, 0x9130, 0x912d, - 0x9127, 0x9131, 0x9187, 0x9189, 0x918b, 0x9183, 0x92c5, 0x92bb, - 0x92b7, 0x92ea, 0x92ac, 0x92e4, 0x92c1, 0x92b3, 0x92bc, 0x92d2, - 0x92c7, 0x92f0, 0x92b2, 0x95ad, 0x95b1, 0x9704, 0x9706, 0x9707, - 0x9709, 0x9760, 0x978d, 0x978b, 0x978f, 0x9821, 0x982b, 0x981c, - 0x98b3, 0x990a, 0x9913, 0x9912, 0x9918, 0x99dd, 0x99d0, 0x99df, - 0x99db, 0x99d1, 0x99d5, 0x99d2, 0x99d9, 0x9ab7, 0x9aee, 0x9aef, - 0x9b27, 0x9b45, 0x9b44, 0x9b77, 0x9b6f, 0x9d06, 0x9d09, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9d03, 0x9ea9, 0x9ebe, 0x9ece, 0x58a8, 0x9f52, 0x5112, - 0x5118, 0x5114, 0x5110, 0x5115, 0x5180, 0x51aa, 0x51dd, 0x5291, - 0x5293, 0x52f3, 0x5659, 0x566b, 0x5679, 0x5669, 0x5664, 0x5678, - 0x566a, 0x5668, 0x5665, 0x5671, 0x566f, 0x566c, 0x5662, 0x5676, - 0x58c1, 0x58be, 0x58c7, 0x58c5, 0x596e, 0x5b1d, 0x5b34, 0x5b78, - 0x5bf0, 0x5c0e, 0x5f4a, 0x61b2, 0x6191, 0x61a9, 0x618a, 0x61cd, - 0x61b6, 0x61be, 0x61ca, 0x61c8, 0x6230, 0x64c5, 0x64c1, 0x64cb, - 0x64bb, 0x64bc, 0x64da, 0x64c4, 0x64c7, 0x64c2, 0x64cd, 0x64bf, - 0x64d2, 0x64d4, 0x64be, 0x6574, 0x66c6, 0x66c9, 0x66b9, 0x66c4, - 0x66c7, 0x66b8, 0x6a3d, 0x6a38, 0x6a3a, 0x6a59, 0x6a6b, 0x6a58, - 0x6a39, 0x6a44, 0x6a62, 0x6a61, 0x6a4b, 0x6a47, 0x6a35, 0x6a5f, - 0x6a48, 0x6b59, 0x6b77, 0x6c05, 0x6fc2, 0x6fb1, 0x6fa1, 0x003f, - /* lead byte bf */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6fc3, 0x6fa4, 0x6fc1, 0x6fa7, 0x6fb3, 0x6fc0, 0x6fb9, 0x6fb6, - 0x6fa6, 0x6fa0, 0x6fb4, 0x71be, 0x71c9, 0x71d0, 0x71d2, 0x71c8, - 0x71d5, 0x71b9, 0x71ce, 0x71d9, 0x71dc, 0x71c3, 0x71c4, 0x7368, - 0x749c, 0x74a3, 0x7498, 0x749f, 0x749e, 0x74e2, 0x750c, 0x750d, - 0x7634, 0x7638, 0x763a, 0x76e7, 0x76e5, 0x77a0, 0x779e, 0x779f, - 0x77a5, 0x78e8, 0x78da, 0x78ec, 0x78e7, 0x79a6, 0x7a4d, 0x7a4e, - 0x7a46, 0x7a4c, 0x7a4b, 0x7aba, 0x7bd9, 0x7c11, 0x7bc9, 0x7be4, - 0x7bdb, 0x7be1, 0x7be9, 0x7be6, 0x7cd5, 0x7cd6, 0x7e0a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7e11, 0x7e08, 0x7e1b, 0x7e23, 0x7e1e, 0x7e1d, 0x7e09, - 0x7e10, 0x7f79, 0x7fb2, 0x7ff0, 0x7ff1, 0x7fee, 0x8028, 0x81b3, - 0x81a9, 0x81a8, 0x81fb, 0x8208, 0x8258, 0x8259, 0x854a, 0x8559, - 0x8548, 0x8568, 0x8569, 0x8543, 0x8549, 0x856d, 0x856a, 0x855e, - 0x8783, 0x879f, 0x879e, 0x87a2, 0x878d, 0x8861, 0x892a, 0x8932, - 0x8925, 0x892b, 0x8921, 0x89aa, 0x89a6, 0x8ae6, 0x8afa, 0x8aeb, - 0x8af1, 0x8b00, 0x8adc, 0x8ae7, 0x8aee, 0x8afe, 0x8b01, 0x8b02, - 0x8af7, 0x8aed, 0x8af3, 0x8af6, 0x8afc, 0x8c6b, 0x8c6d, 0x8c93, - 0x8cf4, 0x8e44, 0x8e31, 0x8e34, 0x8e42, 0x8e39, 0x8e35, 0x8f3b, - 0x8f2f, 0x8f38, 0x8f33, 0x8fa8, 0x8fa6, 0x9075, 0x9074, 0x9078, - 0x9072, 0x907c, 0x907a, 0x9134, 0x9192, 0x9320, 0x9336, 0x92f8, - 0x9333, 0x932f, 0x9322, 0x92fc, 0x932b, 0x9304, 0x931a, 0x003f, - /* lead byte c0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9310, 0x9326, 0x9321, 0x9315, 0x932e, 0x9319, 0x95bb, 0x96a7, - 0x96a8, 0x96aa, 0x96d5, 0x970e, 0x9711, 0x9716, 0x970d, 0x9713, - 0x970f, 0x975b, 0x975c, 0x9766, 0x9798, 0x9830, 0x9838, 0x983b, - 0x9837, 0x982d, 0x9839, 0x9824, 0x9910, 0x9928, 0x991e, 0x991b, - 0x9921, 0x991a, 0x99ed, 0x99e2, 0x99f1, 0x9ab8, 0x9abc, 0x9afb, - 0x9aed, 0x9b28, 0x9b91, 0x9d15, 0x9d23, 0x9d26, 0x9d28, 0x9d12, - 0x9d1b, 0x9ed8, 0x9ed4, 0x9f8d, 0x9f9c, 0x512a, 0x511f, 0x5121, - 0x5132, 0x52f5, 0x568e, 0x5680, 0x5690, 0x5685, 0x5687, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x568f, 0x58d5, 0x58d3, 0x58d1, 0x58ce, 0x5b30, 0x5b2a, - 0x5b24, 0x5b7a, 0x5c37, 0x5c68, 0x5dbc, 0x5dba, 0x5dbd, 0x5db8, - 0x5e6b, 0x5f4c, 0x5fbd, 0x61c9, 0x61c2, 0x61c7, 0x61e6, 0x61cb, - 0x6232, 0x6234, 0x64ce, 0x64ca, 0x64d8, 0x64e0, 0x64f0, 0x64e6, - 0x64ec, 0x64f1, 0x64e2, 0x64ed, 0x6582, 0x6583, 0x66d9, 0x66d6, - 0x6a80, 0x6a94, 0x6a84, 0x6aa2, 0x6a9c, 0x6adb, 0x6aa3, 0x6a7e, - 0x6a97, 0x6a90, 0x6aa0, 0x6b5c, 0x6bae, 0x6bda, 0x6c08, 0x6fd8, - 0x6ff1, 0x6fdf, 0x6fe0, 0x6fdb, 0x6fe4, 0x6feb, 0x6fef, 0x6f80, - 0x6fec, 0x6fe1, 0x6fe9, 0x6fd5, 0x6fee, 0x6ff0, 0x71e7, 0x71df, - 0x71ee, 0x71e6, 0x71e5, 0x71ed, 0x71ec, 0x71f4, 0x71e0, 0x7235, - 0x7246, 0x7370, 0x7372, 0x74a9, 0x74b0, 0x74a6, 0x74a8, 0x7646, - 0x7642, 0x764c, 0x76ea, 0x77b3, 0x77aa, 0x77b0, 0x77ac, 0x003f, - /* lead byte c1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x77a7, 0x77ad, 0x77ef, 0x78f7, 0x78fa, 0x78f4, 0x78ef, 0x7901, - 0x79a7, 0x79aa, 0x7a57, 0x7abf, 0x7c07, 0x7c0d, 0x7bfe, 0x7bf7, - 0x7c0c, 0x7be0, 0x7ce0, 0x7cdc, 0x7cde, 0x7ce2, 0x7cdf, 0x7cd9, - 0x7cdd, 0x7e2e, 0x7e3e, 0x7e46, 0x7e37, 0x7e32, 0x7e43, 0x7e2b, - 0x7e3d, 0x7e31, 0x7e45, 0x7e41, 0x7e34, 0x7e39, 0x7e48, 0x7e35, - 0x7e3f, 0x7e2f, 0x7f44, 0x7ff3, 0x7ffc, 0x8071, 0x8072, 0x8070, - 0x806f, 0x8073, 0x81c6, 0x81c3, 0x81ba, 0x81c2, 0x81c0, 0x81bf, - 0x81bd, 0x81c9, 0x81be, 0x81e8, 0x8209, 0x8271, 0x85aa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8584, 0x857e, 0x859c, 0x8591, 0x8594, 0x85af, 0x859b, - 0x8587, 0x85a8, 0x858a, 0x8667, 0x87c0, 0x87d1, 0x87b3, 0x87d2, - 0x87c6, 0x87ab, 0x87bb, 0x87ba, 0x87c8, 0x87cb, 0x893b, 0x8936, - 0x8944, 0x8938, 0x893d, 0x89ac, 0x8b0e, 0x8b17, 0x8b19, 0x8b1b, - 0x8b0a, 0x8b20, 0x8b1d, 0x8b04, 0x8b10, 0x8c41, 0x8c3f, 0x8c73, - 0x8cfa, 0x8cfd, 0x8cfc, 0x8cf8, 0x8cfb, 0x8da8, 0x8e49, 0x8e4b, - 0x8e48, 0x8e4a, 0x8f44, 0x8f3e, 0x8f42, 0x8f45, 0x8f3f, 0x907f, - 0x907d, 0x9084, 0x9081, 0x9082, 0x9080, 0x9139, 0x91a3, 0x919e, - 0x919c, 0x934d, 0x9382, 0x9328, 0x9375, 0x934a, 0x9365, 0x934b, - 0x9318, 0x937e, 0x936c, 0x935b, 0x9370, 0x935a, 0x9354, 0x95ca, - 0x95cb, 0x95cc, 0x95c8, 0x95c6, 0x96b1, 0x96b8, 0x96d6, 0x971c, - 0x971e, 0x97a0, 0x97d3, 0x9846, 0x98b6, 0x9935, 0x9a01, 0x003f, - /* lead byte c2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x99ff, 0x9bae, 0x9bab, 0x9baa, 0x9bad, 0x9d3b, 0x9d3f, 0x9e8b, - 0x9ecf, 0x9ede, 0x9edc, 0x9edd, 0x9edb, 0x9f3e, 0x9f4b, 0x53e2, - 0x5695, 0x56ae, 0x58d9, 0x58d8, 0x5b38, 0x5f5d, 0x61e3, 0x6233, - 0x64f4, 0x64f2, 0x64fe, 0x6506, 0x64fa, 0x64fb, 0x64f7, 0x65b7, - 0x66dc, 0x6726, 0x6ab3, 0x6aac, 0x6ac3, 0x6abb, 0x6ab8, 0x6ac2, - 0x6aae, 0x6aaf, 0x6b5f, 0x6b78, 0x6baf, 0x7009, 0x700b, 0x6ffe, - 0x7006, 0x6ffa, 0x7011, 0x700f, 0x71fb, 0x71fc, 0x71fe, 0x71f8, - 0x7377, 0x7375, 0x74a7, 0x74bf, 0x7515, 0x7656, 0x7658, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7652, 0x77bd, 0x77bf, 0x77bb, 0x77bc, 0x790e, 0x79ae, - 0x7a61, 0x7a62, 0x7a60, 0x7ac4, 0x7ac5, 0x7c2b, 0x7c27, 0x7c2a, - 0x7c1e, 0x7c23, 0x7c21, 0x7ce7, 0x7e54, 0x7e55, 0x7e5e, 0x7e5a, - 0x7e61, 0x7e52, 0x7e59, 0x7f48, 0x7ff9, 0x7ffb, 0x8077, 0x8076, - 0x81cd, 0x81cf, 0x820a, 0x85cf, 0x85a9, 0x85cd, 0x85d0, 0x85c9, - 0x85b0, 0x85ba, 0x85b9, 0x85a6, 0x87ef, 0x87ec, 0x87f2, 0x87e0, - 0x8986, 0x89b2, 0x89f4, 0x8b28, 0x8b39, 0x8b2c, 0x8b2b, 0x8c50, - 0x8d05, 0x8e59, 0x8e63, 0x8e66, 0x8e64, 0x8e5f, 0x8e55, 0x8ec0, - 0x8f49, 0x8f4d, 0x9087, 0x9083, 0x9088, 0x91ab, 0x91ac, 0x91d0, - 0x9394, 0x938a, 0x9396, 0x93a2, 0x93b3, 0x93ae, 0x93ac, 0x93b0, - 0x9398, 0x939a, 0x9397, 0x95d4, 0x95d6, 0x95d0, 0x95d5, 0x96e2, - 0x96dc, 0x96d9, 0x96db, 0x96de, 0x9724, 0x97a3, 0x97a6, 0x003f, - /* lead byte c3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x97ad, 0x97f9, 0x984d, 0x984f, 0x984c, 0x984e, 0x9853, 0x98ba, - 0x993e, 0x993f, 0x993d, 0x992e, 0x99a5, 0x9a0e, 0x9ac1, 0x9b03, - 0x9b06, 0x9b4f, 0x9b4e, 0x9b4d, 0x9bca, 0x9bc9, 0x9bfd, 0x9bc8, - 0x9bc0, 0x9d51, 0x9d5d, 0x9d60, 0x9ee0, 0x9f15, 0x9f2c, 0x5133, - 0x56a5, 0x58de, 0x58df, 0x58e2, 0x5bf5, 0x9f90, 0x5eec, 0x61f2, - 0x61f7, 0x61f6, 0x61f5, 0x6500, 0x650f, 0x66e0, 0x66dd, 0x6ae5, - 0x6add, 0x6ada, 0x6ad3, 0x701b, 0x701f, 0x7028, 0x701a, 0x701d, - 0x7015, 0x7018, 0x7206, 0x720d, 0x7258, 0x72a2, 0x7378, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x737a, 0x74bd, 0x74ca, 0x74e3, 0x7587, 0x7586, 0x765f, - 0x7661, 0x77c7, 0x7919, 0x79b1, 0x7a6b, 0x7a69, 0x7c3e, 0x7c3f, - 0x7c38, 0x7c3d, 0x7c37, 0x7c40, 0x7e6b, 0x7e6d, 0x7e79, 0x7e69, - 0x7e6a, 0x7f85, 0x7e73, 0x7fb6, 0x7fb9, 0x7fb8, 0x81d8, 0x85e9, - 0x85dd, 0x85ea, 0x85d5, 0x85e4, 0x85e5, 0x85f7, 0x87fb, 0x8805, - 0x880d, 0x87f9, 0x87fe, 0x8960, 0x895f, 0x8956, 0x895e, 0x8b41, - 0x8b5c, 0x8b58, 0x8b49, 0x8b5a, 0x8b4e, 0x8b4f, 0x8b46, 0x8b59, - 0x8d08, 0x8d0a, 0x8e7c, 0x8e72, 0x8e87, 0x8e76, 0x8e6c, 0x8e7a, - 0x8e74, 0x8f54, 0x8f4e, 0x8fad, 0x908a, 0x908b, 0x91b1, 0x91ae, - 0x93e1, 0x93d1, 0x93df, 0x93c3, 0x93c8, 0x93dc, 0x93dd, 0x93d6, - 0x93e2, 0x93cd, 0x93d8, 0x93e4, 0x93d7, 0x93e8, 0x95dc, 0x96b4, - 0x96e3, 0x972a, 0x9727, 0x9761, 0x97dc, 0x97fb, 0x985e, 0x003f, - /* lead byte c4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x9858, 0x985b, 0x98bc, 0x9945, 0x9949, 0x9a16, 0x9a19, 0x9b0d, - 0x9be8, 0x9be7, 0x9bd6, 0x9bdb, 0x9d89, 0x9d61, 0x9d72, 0x9d6a, - 0x9d6c, 0x9e92, 0x9e97, 0x9e93, 0x9eb4, 0x52f8, 0x56a8, 0x56b7, - 0x56b6, 0x56b4, 0x56bc, 0x58e4, 0x5b40, 0x5b43, 0x5b7d, 0x5bf6, - 0x5dc9, 0x61f8, 0x61fa, 0x6518, 0x6514, 0x6519, 0x66e6, 0x6727, - 0x6aec, 0x703e, 0x7030, 0x7032, 0x7210, 0x737b, 0x74cf, 0x7662, - 0x7665, 0x7926, 0x792a, 0x792c, 0x792b, 0x7ac7, 0x7af6, 0x7c4c, - 0x7c43, 0x7c4d, 0x7cef, 0x7cf0, 0x8fae, 0x7e7d, 0x7e7c, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7e82, 0x7f4c, 0x8000, 0x81da, 0x8266, 0x85fb, 0x85f9, - 0x8611, 0x85fa, 0x8606, 0x860b, 0x8607, 0x860a, 0x8814, 0x8815, - 0x8964, 0x89ba, 0x89f8, 0x8b70, 0x8b6c, 0x8b66, 0x8b6f, 0x8b5f, - 0x8b6b, 0x8d0f, 0x8d0d, 0x8e89, 0x8e81, 0x8e85, 0x8e82, 0x91b4, - 0x91cb, 0x9418, 0x9403, 0x93fd, 0x95e1, 0x9730, 0x98c4, 0x9952, - 0x9951, 0x99a8, 0x9a2b, 0x9a30, 0x9a37, 0x9a35, 0x9c13, 0x9c0d, - 0x9e79, 0x9eb5, 0x9ee8, 0x9f2f, 0x9f5f, 0x9f63, 0x9f61, 0x5137, - 0x5138, 0x56c1, 0x56c0, 0x56c2, 0x5914, 0x5c6c, 0x5dcd, 0x61fc, - 0x61fe, 0x651d, 0x651c, 0x6595, 0x66e9, 0x6afb, 0x6b04, 0x6afa, - 0x6bb2, 0x704c, 0x721b, 0x72a7, 0x74d6, 0x74d4, 0x7669, 0x77d3, - 0x7c50, 0x7e8f, 0x7e8c, 0x7fbc, 0x8617, 0x862d, 0x861a, 0x8823, - 0x8822, 0x8821, 0x881f, 0x896a, 0x896c, 0x89bd, 0x8b74, 0x003f, - /* lead byte c5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8b77, 0x8b7d, 0x8d13, 0x8e8a, 0x8e8d, 0x8e8b, 0x8f5f, 0x8faf, - 0x91ba, 0x942e, 0x9433, 0x9435, 0x943a, 0x9438, 0x9432, 0x942b, - 0x95e2, 0x9738, 0x9739, 0x9732, 0x97ff, 0x9867, 0x9865, 0x9957, - 0x9a45, 0x9a43, 0x9a40, 0x9a3e, 0x9acf, 0x9b54, 0x9b51, 0x9c2d, - 0x9c25, 0x9daf, 0x9db4, 0x9dc2, 0x9db8, 0x9e9d, 0x9eef, 0x9f19, - 0x9f5c, 0x9f66, 0x9f67, 0x513c, 0x513b, 0x56c8, 0x56ca, 0x56c9, - 0x5b7f, 0x5dd4, 0x5dd2, 0x5f4e, 0x61ff, 0x6524, 0x6b0a, 0x6b61, - 0x7051, 0x7058, 0x7380, 0x74e4, 0x758a, 0x766e, 0x766c, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x79b3, 0x7c60, 0x7c5f, 0x807e, 0x807d, 0x81df, 0x8972, - 0x896f, 0x89fc, 0x8b80, 0x8d16, 0x8d17, 0x8e91, 0x8e93, 0x8f61, - 0x9148, 0x9444, 0x9451, 0x9452, 0x973d, 0x973e, 0x97c3, 0x97c1, - 0x986b, 0x9955, 0x9a55, 0x9a4d, 0x9ad2, 0x9b1a, 0x9c49, 0x9c31, - 0x9c3e, 0x9c3b, 0x9dd3, 0x9dd7, 0x9f34, 0x9f6c, 0x9f6a, 0x9f94, - 0x56cc, 0x5dd6, 0x6200, 0x6523, 0x652b, 0x652a, 0x66ec, 0x6b10, - 0x74da, 0x7aca, 0x7c64, 0x7c63, 0x7c65, 0x7e93, 0x7e96, 0x7e94, - 0x81e2, 0x8638, 0x863f, 0x8831, 0x8b8a, 0x9090, 0x908f, 0x9463, - 0x9460, 0x9464, 0x9768, 0x986f, 0x995c, 0x9a5a, 0x9a5b, 0x9a57, - 0x9ad3, 0x9ad4, 0x9ad1, 0x9c54, 0x9c57, 0x9c56, 0x9de5, 0x9e9f, - 0x9ef4, 0x56d1, 0x58e9, 0x652c, 0x705e, 0x7671, 0x7672, 0x77d7, - 0x7f50, 0x7f88, 0x8836, 0x8839, 0x8862, 0x8b93, 0x8b92, 0x003f, - /* lead byte c6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8b96, 0x8277, 0x8d1b, 0x91c0, 0x946a, 0x9742, 0x9748, 0x9744, - 0x97c6, 0x9870, 0x9a5f, 0x9b22, 0x9b58, 0x9c5f, 0x9df9, 0x9dfa, - 0x9e7c, 0x9e7d, 0x9f07, 0x9f77, 0x9f72, 0x5ef3, 0x6b16, 0x7063, - 0x7c6c, 0x7c6e, 0x883b, 0x89c0, 0x8ea1, 0x91c1, 0x9472, 0x9470, - 0x9871, 0x995e, 0x9ad6, 0x9b23, 0x9ecc, 0x7064, 0x77da, 0x8b9a, - 0x9477, 0x97c9, 0x9a62, 0x9a65, 0x7e9c, 0x8b9c, 0x8eaa, 0x91c5, - 0x947d, 0x947e, 0x947c, 0x9c77, 0x9c78, 0x9ef7, 0x8c54, 0x947f, - 0x9e1a, 0x7228, 0x9a6a, 0x9b31, 0x9e1b, 0x9e1e, 0x7c72, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf6b1, 0xf6b2, 0xf6b3, 0xf6b4, 0xf6b5, 0xf6b6, 0xf6b7, - 0xf6b8, 0xf6b9, 0xf6ba, 0xf6bb, 0xf6bc, 0xf6bd, 0xf6be, 0xf6bf, - 0xf6c0, 0xf6c1, 0xf6c2, 0xf6c3, 0xf6c4, 0xf6c5, 0xf6c6, 0xf6c7, - 0xf6c8, 0xf6c9, 0xf6ca, 0xf6cb, 0xf6cc, 0xf6cd, 0xf6ce, 0xf6cf, - 0xf6d0, 0xf6d1, 0xf6d2, 0xf6d3, 0xf6d4, 0xf6d5, 0xf6d6, 0xf6d7, - 0xf6d8, 0xf6d9, 0xf6da, 0xf6db, 0xf6dc, 0xf6dd, 0xf6de, 0xf6df, - 0xf6e0, 0xf6e1, 0xf6e2, 0xf6e3, 0xf6e4, 0xf6e5, 0xf6e6, 0xf6e7, - 0xf6e8, 0xf6e9, 0xf6ea, 0xf6eb, 0xf6ec, 0xf6ed, 0xf6ee, 0xf6ef, - 0xf6f0, 0xf6f1, 0xf6f2, 0xf6f3, 0xf6f4, 0xf6f5, 0xf6f6, 0xf6f7, - 0xf6f8, 0xf6f9, 0xf6fa, 0xf6fb, 0xf6fc, 0xf6fd, 0xf6fe, 0xf6ff, - 0xf700, 0xf701, 0xf702, 0xf703, 0xf704, 0xf705, 0xf706, 0xf707, - 0xf708, 0xf709, 0xf70a, 0xf70b, 0xf70c, 0xf70d, 0xf70e, 0x003f, - /* lead byte c7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf70f, 0xf710, 0xf711, 0xf712, 0xf713, 0xf714, 0xf715, 0xf716, - 0xf717, 0xf718, 0xf719, 0xf71a, 0xf71b, 0xf71c, 0xf71d, 0xf71e, - 0xf71f, 0xf720, 0xf721, 0xf722, 0xf723, 0xf724, 0xf725, 0xf726, - 0xf727, 0xf728, 0xf729, 0xf72a, 0xf72b, 0xf72c, 0xf72d, 0xf72e, - 0xf72f, 0xf730, 0xf731, 0xf732, 0xf733, 0xf734, 0xf735, 0xf736, - 0xf737, 0xf738, 0xf739, 0xf73a, 0xf73b, 0xf73c, 0xf73d, 0xf73e, - 0xf73f, 0xf740, 0xf741, 0xf742, 0xf743, 0xf744, 0xf745, 0xf746, - 0xf747, 0xf748, 0xf749, 0xf74a, 0xf74b, 0xf74c, 0xf74d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf74e, 0xf74f, 0xf750, 0xf751, 0xf752, 0xf753, 0xf754, - 0xf755, 0xf756, 0xf757, 0xf758, 0xf759, 0xf75a, 0xf75b, 0xf75c, - 0xf75d, 0xf75e, 0xf75f, 0xf760, 0xf761, 0xf762, 0xf763, 0xf764, - 0xf765, 0xf766, 0xf767, 0xf768, 0xf769, 0xf76a, 0xf76b, 0xf76c, - 0xf76d, 0xf76e, 0xf76f, 0xf770, 0xf771, 0xf772, 0xf773, 0xf774, - 0xf775, 0xf776, 0xf777, 0xf778, 0xf779, 0xf77a, 0xf77b, 0xf77c, - 0xf77d, 0xf77e, 0xf77f, 0xf780, 0xf781, 0xf782, 0xf783, 0xf784, - 0xf785, 0xf786, 0xf787, 0xf788, 0xf789, 0xf78a, 0xf78b, 0xf78c, - 0xf78d, 0xf78e, 0xf78f, 0xf790, 0xf791, 0xf792, 0xf793, 0xf794, - 0xf795, 0xf796, 0xf797, 0xf798, 0xf799, 0xf79a, 0xf79b, 0xf79c, - 0xf79d, 0xf79e, 0xf79f, 0xf7a0, 0xf7a1, 0xf7a2, 0xf7a3, 0xf7a4, - 0xf7a5, 0xf7a6, 0xf7a7, 0xf7a8, 0xf7a9, 0xf7aa, 0xf7ab, 0x003f, - /* lead byte c8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf7ac, 0xf7ad, 0xf7ae, 0xf7af, 0xf7b0, 0xf7b1, 0xf7b2, 0xf7b3, - 0xf7b4, 0xf7b5, 0xf7b6, 0xf7b7, 0xf7b8, 0xf7b9, 0xf7ba, 0xf7bb, - 0xf7bc, 0xf7bd, 0xf7be, 0xf7bf, 0xf7c0, 0xf7c1, 0xf7c2, 0xf7c3, - 0xf7c4, 0xf7c5, 0xf7c6, 0xf7c7, 0xf7c8, 0xf7c9, 0xf7ca, 0xf7cb, - 0xf7cc, 0xf7cd, 0xf7ce, 0xf7cf, 0xf7d0, 0xf7d1, 0xf7d2, 0xf7d3, - 0xf7d4, 0xf7d5, 0xf7d6, 0xf7d7, 0xf7d8, 0xf7d9, 0xf7da, 0xf7db, - 0xf7dc, 0xf7dd, 0xf7de, 0xf7df, 0xf7e0, 0xf7e1, 0xf7e2, 0xf7e3, - 0xf7e4, 0xf7e5, 0xf7e6, 0xf7e7, 0xf7e8, 0xf7e9, 0xf7ea, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf7eb, 0xf7ec, 0xf7ed, 0xf7ee, 0xf7ef, 0xf7f0, 0xf7f1, - 0xf7f2, 0xf7f3, 0xf7f4, 0xf7f5, 0xf7f6, 0xf7f7, 0xf7f8, 0xf7f9, - 0xf7fa, 0xf7fb, 0xf7fc, 0xf7fd, 0xf7fe, 0xf7ff, 0xf800, 0xf801, - 0xf802, 0xf803, 0xf804, 0xf805, 0xf806, 0xf807, 0xf808, 0xf809, - 0xf80a, 0xf80b, 0xf80c, 0xf80d, 0xf80e, 0xf80f, 0xf810, 0xf811, - 0xf812, 0xf813, 0xf814, 0xf815, 0xf816, 0xf817, 0xf818, 0xf819, - 0xf81a, 0xf81b, 0xf81c, 0xf81d, 0xf81e, 0xf81f, 0xf820, 0xf821, - 0xf822, 0xf823, 0xf824, 0xf825, 0xf826, 0xf827, 0xf828, 0xf829, - 0xf82a, 0xf82b, 0xf82c, 0xf82d, 0xf82e, 0xf82f, 0xf830, 0xf831, - 0xf832, 0xf833, 0xf834, 0xf835, 0xf836, 0xf837, 0xf838, 0xf839, - 0xf83a, 0xf83b, 0xf83c, 0xf83d, 0xf83e, 0xf83f, 0xf840, 0xf841, - 0xf842, 0xf843, 0xf844, 0xf845, 0xf846, 0xf847, 0xf848, 0x003f, - /* lead byte c9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x4e42, 0x4e5c, 0x51f5, 0x531a, 0x5382, 0x4e07, 0x4e0c, 0x4e47, - 0x4e8d, 0x56d7, 0xfa0c, 0x5c6e, 0x5f73, 0x4e0f, 0x5187, 0x4e0e, - 0x4e2e, 0x4e93, 0x4ec2, 0x4ec9, 0x4ec8, 0x5198, 0x52fc, 0x536c, - 0x53b9, 0x5720, 0x5903, 0x592c, 0x5c10, 0x5dff, 0x65e1, 0x6bb3, - 0x6bcc, 0x6c14, 0x723f, 0x4e31, 0x4e3c, 0x4ee8, 0x4edc, 0x4ee9, - 0x4ee1, 0x4edd, 0x4eda, 0x520c, 0x531c, 0x534c, 0x5722, 0x5723, - 0x5917, 0x592f, 0x5b81, 0x5b84, 0x5c12, 0x5c3b, 0x5c74, 0x5c73, - 0x5e04, 0x5e80, 0x5e82, 0x5fc9, 0x6209, 0x6250, 0x6c15, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6c36, 0x6c43, 0x6c3f, 0x6c3b, 0x72ae, 0x72b0, 0x738a, - 0x79b8, 0x808a, 0x961e, 0x4f0e, 0x4f18, 0x4f2c, 0x4ef5, 0x4f14, - 0x4ef1, 0x4f00, 0x4ef7, 0x4f08, 0x4f1d, 0x4f02, 0x4f05, 0x4f22, - 0x4f13, 0x4f04, 0x4ef4, 0x4f12, 0x51b1, 0x5213, 0x5209, 0x5210, - 0x52a6, 0x5322, 0x531f, 0x534d, 0x538a, 0x5407, 0x56e1, 0x56df, - 0x572e, 0x572a, 0x5734, 0x593c, 0x5980, 0x597c, 0x5985, 0x597b, - 0x597e, 0x5977, 0x597f, 0x5b56, 0x5c15, 0x5c25, 0x5c7c, 0x5c7a, - 0x5c7b, 0x5c7e, 0x5ddf, 0x5e75, 0x5e84, 0x5f02, 0x5f1a, 0x5f74, - 0x5fd5, 0x5fd4, 0x5fcf, 0x625c, 0x625e, 0x6264, 0x6261, 0x6266, - 0x6262, 0x6259, 0x6260, 0x625a, 0x6265, 0x65ef, 0x65ee, 0x673e, - 0x6739, 0x6738, 0x673b, 0x673a, 0x673f, 0x673c, 0x6733, 0x6c18, - 0x6c46, 0x6c52, 0x6c5c, 0x6c4f, 0x6c4a, 0x6c54, 0x6c4b, 0x003f, - /* lead byte ca */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6c4c, 0x7071, 0x725e, 0x72b4, 0x72b5, 0x738e, 0x752a, 0x767f, - 0x7a75, 0x7f51, 0x8278, 0x827c, 0x8280, 0x827d, 0x827f, 0x864d, - 0x897e, 0x9099, 0x9097, 0x9098, 0x909b, 0x9094, 0x9622, 0x9624, - 0x9620, 0x9623, 0x4f56, 0x4f3b, 0x4f62, 0x4f49, 0x4f53, 0x4f64, - 0x4f3e, 0x4f67, 0x4f52, 0x4f5f, 0x4f41, 0x4f58, 0x4f2d, 0x4f33, - 0x4f3f, 0x4f61, 0x518f, 0x51b9, 0x521c, 0x521e, 0x5221, 0x52ad, - 0x52ae, 0x5309, 0x5363, 0x5372, 0x538e, 0x538f, 0x5430, 0x5437, - 0x542a, 0x5454, 0x5445, 0x5419, 0x541c, 0x5425, 0x5418, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x543d, 0x544f, 0x5441, 0x5428, 0x5424, 0x5447, 0x56ee, - 0x56e7, 0x56e5, 0x5741, 0x5745, 0x574c, 0x5749, 0x574b, 0x5752, - 0x5906, 0x5940, 0x59a6, 0x5998, 0x59a0, 0x5997, 0x598e, 0x59a2, - 0x5990, 0x598f, 0x59a7, 0x59a1, 0x5b8e, 0x5b92, 0x5c28, 0x5c2a, - 0x5c8d, 0x5c8f, 0x5c88, 0x5c8b, 0x5c89, 0x5c92, 0x5c8a, 0x5c86, - 0x5c93, 0x5c95, 0x5de0, 0x5e0a, 0x5e0e, 0x5e8b, 0x5e89, 0x5e8c, - 0x5e88, 0x5e8d, 0x5f05, 0x5f1d, 0x5f78, 0x5f76, 0x5fd2, 0x5fd1, - 0x5fd0, 0x5fed, 0x5fe8, 0x5fee, 0x5ff3, 0x5fe1, 0x5fe4, 0x5fe3, - 0x5ffa, 0x5fef, 0x5ff7, 0x5ffb, 0x6000, 0x5ff4, 0x623a, 0x6283, - 0x628c, 0x628e, 0x628f, 0x6294, 0x6287, 0x6271, 0x627b, 0x627a, - 0x6270, 0x6281, 0x6288, 0x6277, 0x627d, 0x6272, 0x6274, 0x6537, - 0x65f0, 0x65f4, 0x65f3, 0x65f2, 0x65f5, 0x6745, 0x6747, 0x003f, - /* lead byte cb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6759, 0x6755, 0x674c, 0x6748, 0x675d, 0x674d, 0x675a, 0x674b, - 0x6bd0, 0x6c19, 0x6c1a, 0x6c78, 0x6c67, 0x6c6b, 0x6c84, 0x6c8b, - 0x6c8f, 0x6c71, 0x6c6f, 0x6c69, 0x6c9a, 0x6c6d, 0x6c87, 0x6c95, - 0x6c9c, 0x6c66, 0x6c73, 0x6c65, 0x6c7b, 0x6c8e, 0x7074, 0x707a, - 0x7263, 0x72bf, 0x72bd, 0x72c3, 0x72c6, 0x72c1, 0x72ba, 0x72c5, - 0x7395, 0x7397, 0x7393, 0x7394, 0x7392, 0x753a, 0x7539, 0x7594, - 0x7595, 0x7681, 0x793d, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092, - 0x809c, 0x8290, 0x828f, 0x8285, 0x828e, 0x8291, 0x8293, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x828a, 0x8283, 0x8284, 0x8c78, 0x8fc9, 0x8fbf, 0x909f, - 0x90a1, 0x90a5, 0x909e, 0x90a7, 0x90a0, 0x9630, 0x9628, 0x962f, - 0x962d, 0x4e33, 0x4f98, 0x4f7c, 0x4f85, 0x4f7d, 0x4f80, 0x4f87, - 0x4f76, 0x4f74, 0x4f89, 0x4f84, 0x4f77, 0x4f4c, 0x4f97, 0x4f6a, - 0x4f9a, 0x4f79, 0x4f81, 0x4f78, 0x4f90, 0x4f9c, 0x4f94, 0x4f9e, - 0x4f92, 0x4f82, 0x4f95, 0x4f6b, 0x4f6e, 0x519e, 0x51bc, 0x51be, - 0x5235, 0x5232, 0x5233, 0x5246, 0x5231, 0x52bc, 0x530a, 0x530b, - 0x533c, 0x5392, 0x5394, 0x5487, 0x547f, 0x5481, 0x5491, 0x5482, - 0x5488, 0x546b, 0x547a, 0x547e, 0x5465, 0x546c, 0x5474, 0x5466, - 0x548d, 0x546f, 0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, - 0x56f7, 0x56f9, 0x576f, 0x5772, 0x576d, 0x576b, 0x5771, 0x5770, - 0x5776, 0x5780, 0x5775, 0x577b, 0x5773, 0x5774, 0x5762, 0x003f, - /* lead byte cc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5768, 0x577d, 0x590c, 0x5945, 0x59b5, 0x59ba, 0x59cf, 0x59ce, - 0x59b2, 0x59cc, 0x59c1, 0x59b6, 0x59bc, 0x59c3, 0x59d6, 0x59b1, - 0x59bd, 0x59c0, 0x59c8, 0x59b4, 0x59c7, 0x5b62, 0x5b65, 0x5b93, - 0x5b95, 0x5c44, 0x5c47, 0x5cae, 0x5ca4, 0x5ca0, 0x5cb5, 0x5caf, - 0x5ca8, 0x5cac, 0x5c9f, 0x5ca3, 0x5cad, 0x5ca2, 0x5caa, 0x5ca7, - 0x5c9d, 0x5ca5, 0x5cb6, 0x5cb0, 0x5ca6, 0x5e17, 0x5e14, 0x5e19, - 0x5f28, 0x5f22, 0x5f23, 0x5f24, 0x5f54, 0x5f82, 0x5f7e, 0x5f7d, - 0x5fde, 0x5fe5, 0x602d, 0x6026, 0x6019, 0x6032, 0x600b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6034, 0x600a, 0x6017, 0x6033, 0x601a, 0x601e, 0x602c, - 0x6022, 0x600d, 0x6010, 0x602e, 0x6013, 0x6011, 0x600c, 0x6009, - 0x601c, 0x6214, 0x623d, 0x62ad, 0x62b4, 0x62d1, 0x62be, 0x62aa, - 0x62b6, 0x62ca, 0x62ae, 0x62b3, 0x62af, 0x62bb, 0x62a9, 0x62b0, - 0x62b8, 0x653d, 0x65a8, 0x65bb, 0x6609, 0x65fc, 0x6604, 0x6612, - 0x6608, 0x65fb, 0x6603, 0x660b, 0x660d, 0x6605, 0x65fd, 0x6611, - 0x6610, 0x66f6, 0x670a, 0x6785, 0x676c, 0x678e, 0x6792, 0x6776, - 0x677b, 0x6798, 0x6786, 0x6784, 0x6774, 0x678d, 0x678c, 0x677a, - 0x679f, 0x6791, 0x6799, 0x6783, 0x677d, 0x6781, 0x6778, 0x6779, - 0x6794, 0x6b25, 0x6b80, 0x6b7e, 0x6bde, 0x6c1d, 0x6c93, 0x6cec, - 0x6ceb, 0x6cee, 0x6cd9, 0x6cb6, 0x6cd4, 0x6cad, 0x6ce7, 0x6cb7, - 0x6cd0, 0x6cc2, 0x6cba, 0x6cc3, 0x6cc6, 0x6ced, 0x6cf2, 0x003f, - /* lead byte cd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6cd2, 0x6cdd, 0x6cb4, 0x6c8a, 0x6c9d, 0x6c80, 0x6cde, 0x6cc0, - 0x6d30, 0x6ccd, 0x6cc7, 0x6cb0, 0x6cf9, 0x6ccf, 0x6ce9, 0x6cd1, - 0x7094, 0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096, - 0x7082, 0x709a, 0x7083, 0x726a, 0x72d6, 0x72cb, 0x72d8, 0x72c9, - 0x72dc, 0x72d2, 0x72d4, 0x72da, 0x72cc, 0x72d1, 0x73a4, 0x73a1, - 0x73ad, 0x73a6, 0x73a2, 0x73a0, 0x73ac, 0x739d, 0x74dd, 0x74e8, - 0x753f, 0x7540, 0x753e, 0x758c, 0x7598, 0x76af, 0x76f3, 0x76f1, - 0x76f0, 0x76f5, 0x77f8, 0x77fc, 0x77f9, 0x77fb, 0x77fa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x77f7, 0x7942, 0x793f, 0x79c5, 0x7a78, 0x7a7b, 0x7afb, - 0x7c75, 0x7cfd, 0x8035, 0x808f, 0x80ae, 0x80a3, 0x80b8, 0x80b5, - 0x80ad, 0x8220, 0x82a0, 0x82c0, 0x82ab, 0x829a, 0x8298, 0x829b, - 0x82b5, 0x82a7, 0x82ae, 0x82bc, 0x829e, 0x82ba, 0x82b4, 0x82a8, - 0x82a1, 0x82a9, 0x82c2, 0x82a4, 0x82c3, 0x82b6, 0x82a2, 0x8670, - 0x866f, 0x866d, 0x866e, 0x8c56, 0x8fd2, 0x8fcb, 0x8fd3, 0x8fcd, - 0x8fd6, 0x8fd5, 0x8fd7, 0x90b2, 0x90b4, 0x90af, 0x90b3, 0x90b0, - 0x9639, 0x963d, 0x963c, 0x963a, 0x9643, 0x4fcd, 0x4fc5, 0x4fd3, - 0x4fb2, 0x4fc9, 0x4fcb, 0x4fc1, 0x4fd4, 0x4fdc, 0x4fd9, 0x4fbb, - 0x4fb3, 0x4fdb, 0x4fc7, 0x4fd6, 0x4fba, 0x4fc0, 0x4fb9, 0x4fec, - 0x5244, 0x5249, 0x52c0, 0x52c2, 0x533d, 0x537c, 0x5397, 0x5396, - 0x5399, 0x5398, 0x54ba, 0x54a1, 0x54ad, 0x54a5, 0x54cf, 0x003f, - /* lead byte ce */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x54c3, 0x830d, 0x54b7, 0x54ae, 0x54d6, 0x54b6, 0x54c5, 0x54c6, - 0x54a0, 0x5470, 0x54bc, 0x54a2, 0x54be, 0x5472, 0x54de, 0x54b0, - 0x57b5, 0x579e, 0x579f, 0x57a4, 0x578c, 0x5797, 0x579d, 0x579b, - 0x5794, 0x5798, 0x578f, 0x5799, 0x57a5, 0x579a, 0x5795, 0x58f4, - 0x590d, 0x5953, 0x59e1, 0x59de, 0x59ee, 0x5a00, 0x59f1, 0x59dd, - 0x59fa, 0x59fd, 0x59fc, 0x59f6, 0x59e4, 0x59f2, 0x59f7, 0x59db, - 0x59e9, 0x59f3, 0x59f5, 0x59e0, 0x59fe, 0x59f4, 0x59ed, 0x5ba8, - 0x5c4c, 0x5cd0, 0x5cd8, 0x5ccc, 0x5cd7, 0x5ccb, 0x5cdb, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5cde, 0x5cda, 0x5cc9, 0x5cc7, 0x5cca, 0x5cd6, 0x5cd3, - 0x5cd4, 0x5ccf, 0x5cc8, 0x5cc6, 0x5cce, 0x5cdf, 0x5cf8, 0x5df9, - 0x5e21, 0x5e22, 0x5e23, 0x5e20, 0x5e24, 0x5eb0, 0x5ea4, 0x5ea2, - 0x5e9b, 0x5ea3, 0x5ea5, 0x5f07, 0x5f2e, 0x5f56, 0x5f86, 0x6037, - 0x6039, 0x6054, 0x6072, 0x605e, 0x6045, 0x6053, 0x6047, 0x6049, - 0x605b, 0x604c, 0x6040, 0x6042, 0x605f, 0x6024, 0x6044, 0x6058, - 0x6066, 0x606e, 0x6242, 0x6243, 0x62cf, 0x630d, 0x630b, 0x62f5, - 0x630e, 0x6303, 0x62eb, 0x62f9, 0x630f, 0x630c, 0x62f8, 0x62f6, - 0x6300, 0x6313, 0x6314, 0x62fa, 0x6315, 0x62fb, 0x62f0, 0x6541, - 0x6543, 0x65aa, 0x65bf, 0x6636, 0x6621, 0x6632, 0x6635, 0x661c, - 0x6626, 0x6622, 0x6633, 0x662b, 0x663a, 0x661d, 0x6634, 0x6639, - 0x662e, 0x670f, 0x6710, 0x67c1, 0x67f2, 0x67c8, 0x67ba, 0x003f, - /* lead byte cf */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x67dc, 0x67bb, 0x67f8, 0x67d8, 0x67c0, 0x67b7, 0x67c5, 0x67eb, - 0x67e4, 0x67df, 0x67b5, 0x67cd, 0x67b3, 0x67f7, 0x67f6, 0x67ee, - 0x67e3, 0x67c2, 0x67b9, 0x67ce, 0x67e7, 0x67f0, 0x67b2, 0x67fc, - 0x67c6, 0x67ed, 0x67cc, 0x67ae, 0x67e6, 0x67db, 0x67fa, 0x67c9, - 0x67ca, 0x67c3, 0x67ea, 0x67cb, 0x6b28, 0x6b82, 0x6b84, 0x6bb6, - 0x6bd6, 0x6bd8, 0x6be0, 0x6c20, 0x6c21, 0x6d28, 0x6d34, 0x6d2d, - 0x6d1f, 0x6d3c, 0x6d3f, 0x6d12, 0x6d0a, 0x6cda, 0x6d33, 0x6d04, - 0x6d19, 0x6d3a, 0x6d1a, 0x6d11, 0x6d00, 0x6d1d, 0x6d42, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6d01, 0x6d18, 0x6d37, 0x6d03, 0x6d0f, 0x6d40, 0x6d07, - 0x6d20, 0x6d2c, 0x6d08, 0x6d22, 0x6d09, 0x6d10, 0x70b7, 0x709f, - 0x70be, 0x70b1, 0x70b0, 0x70a1, 0x70b4, 0x70b5, 0x70a9, 0x7241, - 0x7249, 0x724a, 0x726c, 0x7270, 0x7273, 0x726e, 0x72ca, 0x72e4, - 0x72e8, 0x72eb, 0x72df, 0x72ea, 0x72e6, 0x72e3, 0x7385, 0x73cc, - 0x73c2, 0x73c8, 0x73c5, 0x73b9, 0x73b6, 0x73b5, 0x73b4, 0x73eb, - 0x73bf, 0x73c7, 0x73be, 0x73c3, 0x73c6, 0x73b8, 0x73cb, 0x74ec, - 0x74ee, 0x752e, 0x7547, 0x7548, 0x75a7, 0x75aa, 0x7679, 0x76c4, - 0x7708, 0x7703, 0x7704, 0x7705, 0x770a, 0x76f7, 0x76fb, 0x76fa, - 0x77e7, 0x77e8, 0x7806, 0x7811, 0x7812, 0x7805, 0x7810, 0x780f, - 0x780e, 0x7809, 0x7803, 0x7813, 0x794a, 0x794c, 0x794b, 0x7945, - 0x7944, 0x79d5, 0x79cd, 0x79cf, 0x79d6, 0x79ce, 0x7a80, 0x003f, - /* lead byte d0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7a7e, 0x7ad1, 0x7b00, 0x7b01, 0x7c7a, 0x7c78, 0x7c79, 0x7c7f, - 0x7c80, 0x7c81, 0x7d03, 0x7d08, 0x7d01, 0x7f58, 0x7f91, 0x7f8d, - 0x7fbe, 0x8007, 0x800e, 0x800f, 0x8014, 0x8037, 0x80d8, 0x80c7, - 0x80e0, 0x80d1, 0x80c8, 0x80c2, 0x80d0, 0x80c5, 0x80e3, 0x80d9, - 0x80dc, 0x80ca, 0x80d5, 0x80c9, 0x80cf, 0x80d7, 0x80e6, 0x80cd, - 0x81ff, 0x8221, 0x8294, 0x82d9, 0x82fe, 0x82f9, 0x8307, 0x82e8, - 0x8300, 0x82d5, 0x833a, 0x82eb, 0x82d6, 0x82f4, 0x82ec, 0x82e1, - 0x82f2, 0x82f5, 0x830c, 0x82fb, 0x82f6, 0x82f0, 0x82ea, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x82e4, 0x82e0, 0x82fa, 0x82f3, 0x82ed, 0x8677, 0x8674, - 0x867c, 0x8673, 0x8841, 0x884e, 0x8867, 0x886a, 0x8869, 0x89d3, - 0x8a04, 0x8a07, 0x8d72, 0x8fe3, 0x8fe1, 0x8fee, 0x8fe0, 0x90f1, - 0x90bd, 0x90bf, 0x90d5, 0x90c5, 0x90be, 0x90c7, 0x90cb, 0x90c8, - 0x91d4, 0x91d3, 0x9654, 0x964f, 0x9651, 0x9653, 0x964a, 0x964e, - 0x501e, 0x5005, 0x5007, 0x5013, 0x5022, 0x5030, 0x501b, 0x4ff5, - 0x4ff4, 0x5033, 0x5037, 0x502c, 0x4ff6, 0x4ff7, 0x5017, 0x501c, - 0x5020, 0x5027, 0x5035, 0x502f, 0x5031, 0x500e, 0x515a, 0x5194, - 0x5193, 0x51ca, 0x51c4, 0x51c5, 0x51c8, 0x51ce, 0x5261, 0x525a, - 0x5252, 0x525e, 0x525f, 0x5255, 0x5262, 0x52cd, 0x530e, 0x539e, - 0x5526, 0x54e2, 0x5517, 0x5512, 0x54e7, 0x54f3, 0x54e4, 0x551a, - 0x54ff, 0x5504, 0x5508, 0x54eb, 0x5511, 0x5505, 0x54f1, 0x003f, - /* lead byte d1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x550a, 0x54fb, 0x54f7, 0x54f8, 0x54e0, 0x550e, 0x5503, 0x550b, - 0x5701, 0x5702, 0x57cc, 0x5832, 0x57d5, 0x57d2, 0x57ba, 0x57c6, - 0x57bd, 0x57bc, 0x57b8, 0x57b6, 0x57bf, 0x57c7, 0x57d0, 0x57b9, - 0x57c1, 0x590e, 0x594a, 0x5a19, 0x5a16, 0x5a2d, 0x5a2e, 0x5a15, - 0x5a0f, 0x5a17, 0x5a0a, 0x5a1e, 0x5a33, 0x5b6c, 0x5ba7, 0x5bad, - 0x5bac, 0x5c03, 0x5c56, 0x5c54, 0x5cec, 0x5cff, 0x5cee, 0x5cf1, - 0x5cf7, 0x5d00, 0x5cf9, 0x5e29, 0x5e28, 0x5ea8, 0x5eae, 0x5eaa, - 0x5eac, 0x5f33, 0x5f30, 0x5f67, 0x605d, 0x605a, 0x6067, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6041, 0x60a2, 0x6088, 0x6080, 0x6092, 0x6081, 0x609d, - 0x6083, 0x6095, 0x609b, 0x6097, 0x6087, 0x609c, 0x608e, 0x6219, - 0x6246, 0x62f2, 0x6310, 0x6356, 0x632c, 0x6344, 0x6345, 0x6336, - 0x6343, 0x63e4, 0x6339, 0x634b, 0x634a, 0x633c, 0x6329, 0x6341, - 0x6334, 0x6358, 0x6354, 0x6359, 0x632d, 0x6347, 0x6333, 0x635a, - 0x6351, 0x6338, 0x6357, 0x6340, 0x6348, 0x654a, 0x6546, 0x65c6, - 0x65c3, 0x65c4, 0x65c2, 0x664a, 0x665f, 0x6647, 0x6651, 0x6712, - 0x6713, 0x681f, 0x681a, 0x6849, 0x6832, 0x6833, 0x683b, 0x684b, - 0x684f, 0x6816, 0x6831, 0x681c, 0x6835, 0x682b, 0x682d, 0x682f, - 0x684e, 0x6844, 0x6834, 0x681d, 0x6812, 0x6814, 0x6826, 0x6828, - 0x682e, 0x684d, 0x683a, 0x6825, 0x6820, 0x6b2c, 0x6b2f, 0x6b2d, - 0x6b31, 0x6b34, 0x6b6d, 0x8082, 0x6b88, 0x6be6, 0x6be4, 0x003f, - /* lead byte d2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6be8, 0x6be3, 0x6be2, 0x6be7, 0x6c25, 0x6d7a, 0x6d63, 0x6d64, - 0x6d76, 0x6d0d, 0x6d61, 0x6d92, 0x6d58, 0x6d62, 0x6d6d, 0x6d6f, - 0x6d91, 0x6d8d, 0x6def, 0x6d7f, 0x6d86, 0x6d5e, 0x6d67, 0x6d60, - 0x6d97, 0x6d70, 0x6d7c, 0x6d5f, 0x6d82, 0x6d98, 0x6d2f, 0x6d68, - 0x6d8b, 0x6d7e, 0x6d80, 0x6d84, 0x6d16, 0x6d83, 0x6d7b, 0x6d7d, - 0x6d75, 0x6d90, 0x70dc, 0x70d3, 0x70d1, 0x70dd, 0x70cb, 0x7f39, - 0x70e2, 0x70d7, 0x70d2, 0x70de, 0x70e0, 0x70d4, 0x70cd, 0x70c5, - 0x70c6, 0x70c7, 0x70da, 0x70ce, 0x70e1, 0x7242, 0x7278, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7277, 0x7276, 0x7300, 0x72fa, 0x72f4, 0x72fe, 0x72f6, - 0x72f3, 0x72fb, 0x7301, 0x73d3, 0x73d9, 0x73e5, 0x73d6, 0x73bc, - 0x73e7, 0x73e3, 0x73e9, 0x73dc, 0x73d2, 0x73db, 0x73d4, 0x73dd, - 0x73da, 0x73d7, 0x73d8, 0x73e8, 0x74de, 0x74df, 0x74f4, 0x74f5, - 0x7521, 0x755b, 0x755f, 0x75b0, 0x75c1, 0x75bb, 0x75c4, 0x75c0, - 0x75bf, 0x75b6, 0x75ba, 0x768a, 0x76c9, 0x771d, 0x771b, 0x7710, - 0x7713, 0x7712, 0x7723, 0x7711, 0x7715, 0x7719, 0x771a, 0x7722, - 0x7727, 0x7823, 0x782c, 0x7822, 0x7835, 0x782f, 0x7828, 0x782e, - 0x782b, 0x7821, 0x7829, 0x7833, 0x782a, 0x7831, 0x7954, 0x795b, - 0x794f, 0x795c, 0x7953, 0x7952, 0x7951, 0x79eb, 0x79ec, 0x79e0, - 0x79ee, 0x79ed, 0x79ea, 0x79dc, 0x79de, 0x79dd, 0x7a86, 0x7a89, - 0x7a85, 0x7a8b, 0x7a8c, 0x7a8a, 0x7a87, 0x7ad8, 0x7b10, 0x003f, - /* lead byte d3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7b04, 0x7b13, 0x7b05, 0x7b0f, 0x7b08, 0x7b0a, 0x7b0e, 0x7b09, - 0x7b12, 0x7c84, 0x7c91, 0x7c8a, 0x7c8c, 0x7c88, 0x7c8d, 0x7c85, - 0x7d1e, 0x7d1d, 0x7d11, 0x7d0e, 0x7d18, 0x7d16, 0x7d13, 0x7d1f, - 0x7d12, 0x7d0f, 0x7d0c, 0x7f5c, 0x7f61, 0x7f5e, 0x7f60, 0x7f5d, - 0x7f5b, 0x7f96, 0x7f92, 0x7fc3, 0x7fc2, 0x7fc0, 0x8016, 0x803e, - 0x8039, 0x80fa, 0x80f2, 0x80f9, 0x80f5, 0x8101, 0x80fb, 0x8100, - 0x8201, 0x822f, 0x8225, 0x8333, 0x832d, 0x8344, 0x8319, 0x8351, - 0x8325, 0x8356, 0x833f, 0x8341, 0x8326, 0x831c, 0x8322, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8342, 0x834e, 0x831b, 0x832a, 0x8308, 0x833c, 0x834d, - 0x8316, 0x8324, 0x8320, 0x8337, 0x832f, 0x8329, 0x8347, 0x8345, - 0x834c, 0x8353, 0x831e, 0x832c, 0x834b, 0x8327, 0x8348, 0x8653, - 0x8652, 0x86a2, 0x86a8, 0x8696, 0x868d, 0x8691, 0x869e, 0x8687, - 0x8697, 0x8686, 0x868b, 0x869a, 0x8685, 0x86a5, 0x8699, 0x86a1, - 0x86a7, 0x8695, 0x8698, 0x868e, 0x869d, 0x8690, 0x8694, 0x8843, - 0x8844, 0x886d, 0x8875, 0x8876, 0x8872, 0x8880, 0x8871, 0x887f, - 0x886f, 0x8883, 0x887e, 0x8874, 0x887c, 0x8a12, 0x8c47, 0x8c57, - 0x8c7b, 0x8ca4, 0x8ca3, 0x8d76, 0x8d78, 0x8db5, 0x8db7, 0x8db6, - 0x8ed1, 0x8ed3, 0x8ffe, 0x8ff5, 0x9002, 0x8fff, 0x8ffb, 0x9004, - 0x8ffc, 0x8ff6, 0x90d6, 0x90e0, 0x90d9, 0x90da, 0x90e3, 0x90df, - 0x90e5, 0x90d8, 0x90db, 0x90d7, 0x90dc, 0x90e4, 0x9150, 0x003f, - /* lead byte d4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x914e, 0x914f, 0x91d5, 0x91e2, 0x91da, 0x965c, 0x965f, 0x96bc, - 0x98e3, 0x9adf, 0x9b2f, 0x4e7f, 0x5070, 0x506a, 0x5061, 0x505e, - 0x5060, 0x5053, 0x504b, 0x505d, 0x5072, 0x5048, 0x504d, 0x5041, - 0x505b, 0x504a, 0x5062, 0x5015, 0x5045, 0x505f, 0x5069, 0x506b, - 0x5063, 0x5064, 0x5046, 0x5040, 0x506e, 0x5073, 0x5057, 0x5051, - 0x51d0, 0x526b, 0x526d, 0x526c, 0x526e, 0x52d6, 0x52d3, 0x532d, - 0x539c, 0x5575, 0x5576, 0x553c, 0x554d, 0x5550, 0x5534, 0x552a, - 0x5551, 0x5562, 0x5536, 0x5535, 0x5530, 0x5552, 0x5545, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x550c, 0x5532, 0x5565, 0x554e, 0x5539, 0x5548, 0x552d, - 0x553b, 0x5540, 0x554b, 0x570a, 0x5707, 0x57fb, 0x5814, 0x57e2, - 0x57f6, 0x57dc, 0x57f4, 0x5800, 0x57ed, 0x57fd, 0x5808, 0x57f8, - 0x580b, 0x57f3, 0x57cf, 0x5807, 0x57ee, 0x57e3, 0x57f2, 0x57e5, - 0x57ec, 0x57e1, 0x580e, 0x57fc, 0x5810, 0x57e7, 0x5801, 0x580c, - 0x57f1, 0x57e9, 0x57f0, 0x580d, 0x5804, 0x595c, 0x5a60, 0x5a58, - 0x5a55, 0x5a67, 0x5a5e, 0x5a38, 0x5a35, 0x5a6d, 0x5a50, 0x5a5f, - 0x5a65, 0x5a6c, 0x5a53, 0x5a64, 0x5a57, 0x5a43, 0x5a5d, 0x5a52, - 0x5a44, 0x5a5b, 0x5a48, 0x5a8e, 0x5a3e, 0x5a4d, 0x5a39, 0x5a4c, - 0x5a70, 0x5a69, 0x5a47, 0x5a51, 0x5a56, 0x5a42, 0x5a5c, 0x5b72, - 0x5b6e, 0x5bc1, 0x5bc0, 0x5c59, 0x5d1e, 0x5d0b, 0x5d1d, 0x5d1a, - 0x5d20, 0x5d0c, 0x5d28, 0x5d0d, 0x5d26, 0x5d25, 0x5d0f, 0x003f, - /* lead byte d5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5d30, 0x5d12, 0x5d23, 0x5d1f, 0x5d2e, 0x5e3e, 0x5e34, 0x5eb1, - 0x5eb4, 0x5eb9, 0x5eb2, 0x5eb3, 0x5f36, 0x5f38, 0x5f9b, 0x5f96, - 0x5f9f, 0x608a, 0x6090, 0x6086, 0x60be, 0x60b0, 0x60ba, 0x60d3, - 0x60d4, 0x60cf, 0x60e4, 0x60d9, 0x60dd, 0x60c8, 0x60b1, 0x60db, - 0x60b7, 0x60ca, 0x60bf, 0x60c3, 0x60cd, 0x60c0, 0x6332, 0x6365, - 0x638a, 0x6382, 0x637d, 0x63bd, 0x639e, 0x63ad, 0x639d, 0x6397, - 0x63ab, 0x638e, 0x636f, 0x6387, 0x6390, 0x636e, 0x63af, 0x6375, - 0x639c, 0x636d, 0x63ae, 0x637c, 0x63a4, 0x633b, 0x639f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6378, 0x6385, 0x6381, 0x6391, 0x638d, 0x6370, 0x6553, - 0x65cd, 0x6665, 0x6661, 0x665b, 0x6659, 0x665c, 0x6662, 0x6718, - 0x6879, 0x6887, 0x6890, 0x689c, 0x686d, 0x686e, 0x68ae, 0x68ab, - 0x6956, 0x686f, 0x68a3, 0x68ac, 0x68a9, 0x6875, 0x6874, 0x68b2, - 0x688f, 0x6877, 0x6892, 0x687c, 0x686b, 0x6872, 0x68aa, 0x6880, - 0x6871, 0x687e, 0x689b, 0x6896, 0x688b, 0x68a0, 0x6889, 0x68a4, - 0x6878, 0x687b, 0x6891, 0x688c, 0x688a, 0x687d, 0x6b36, 0x6b33, - 0x6b37, 0x6b38, 0x6b91, 0x6b8f, 0x6b8d, 0x6b8e, 0x6b8c, 0x6c2a, - 0x6dc0, 0x6dab, 0x6db4, 0x6db3, 0x6e74, 0x6dac, 0x6de9, 0x6de2, - 0x6db7, 0x6df6, 0x6dd4, 0x6e00, 0x6dc8, 0x6de0, 0x6ddf, 0x6dd6, - 0x6dbe, 0x6de5, 0x6ddc, 0x6ddd, 0x6ddb, 0x6df4, 0x6dca, 0x6dbd, - 0x6ded, 0x6df0, 0x6dba, 0x6dd5, 0x6dc2, 0x6dcf, 0x6dc9, 0x003f, - /* lead byte d6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6dd0, 0x6df2, 0x6dd3, 0x6dfd, 0x6dd7, 0x6dcd, 0x6de3, 0x6dbb, - 0x70fa, 0x710d, 0x70f7, 0x7117, 0x70f4, 0x710c, 0x70f0, 0x7104, - 0x70f3, 0x7110, 0x70fc, 0x70ff, 0x7106, 0x7113, 0x7100, 0x70f8, - 0x70f6, 0x710b, 0x7102, 0x710e, 0x727e, 0x727b, 0x727c, 0x727f, - 0x731d, 0x7317, 0x7307, 0x7311, 0x7318, 0x730a, 0x7308, 0x72ff, - 0x730f, 0x731e, 0x7388, 0x73f6, 0x73f8, 0x73f5, 0x7404, 0x7401, - 0x73fd, 0x7407, 0x7400, 0x73fa, 0x73fc, 0x73ff, 0x740c, 0x740b, - 0x73f4, 0x7408, 0x7564, 0x7563, 0x75ce, 0x75d2, 0x75cf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x75cb, 0x75cc, 0x75d1, 0x75d0, 0x768f, 0x7689, 0x76d3, - 0x7739, 0x772f, 0x772d, 0x7731, 0x7732, 0x7734, 0x7733, 0x773d, - 0x7725, 0x773b, 0x7735, 0x7848, 0x7852, 0x7849, 0x784d, 0x784a, - 0x784c, 0x7826, 0x7845, 0x7850, 0x7964, 0x7967, 0x7969, 0x796a, - 0x7963, 0x796b, 0x7961, 0x79bb, 0x79fa, 0x79f8, 0x79f6, 0x79f7, - 0x7a8f, 0x7a94, 0x7a90, 0x7b35, 0x7b47, 0x7b34, 0x7b25, 0x7b30, - 0x7b22, 0x7b24, 0x7b33, 0x7b18, 0x7b2a, 0x7b1d, 0x7b31, 0x7b2b, - 0x7b2d, 0x7b2f, 0x7b32, 0x7b38, 0x7b1a, 0x7b23, 0x7c94, 0x7c98, - 0x7c96, 0x7ca3, 0x7d35, 0x7d3d, 0x7d38, 0x7d36, 0x7d3a, 0x7d45, - 0x7d2c, 0x7d29, 0x7d41, 0x7d47, 0x7d3e, 0x7d3f, 0x7d4a, 0x7d3b, - 0x7d28, 0x7f63, 0x7f95, 0x7f9c, 0x7f9d, 0x7f9b, 0x7fca, 0x7fcb, - 0x7fcd, 0x7fd0, 0x7fd1, 0x7fc7, 0x7fcf, 0x7fc9, 0x801f, 0x003f, - /* lead byte d7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x801e, 0x801b, 0x8047, 0x8043, 0x8048, 0x8118, 0x8125, 0x8119, - 0x811b, 0x812d, 0x811f, 0x812c, 0x811e, 0x8121, 0x8115, 0x8127, - 0x811d, 0x8122, 0x8211, 0x8238, 0x8233, 0x823a, 0x8234, 0x8232, - 0x8274, 0x8390, 0x83a3, 0x83a8, 0x838d, 0x837a, 0x8373, 0x83a4, - 0x8374, 0x838f, 0x8381, 0x8395, 0x8399, 0x8375, 0x8394, 0x83a9, - 0x837d, 0x8383, 0x838c, 0x839d, 0x839b, 0x83aa, 0x838b, 0x837e, - 0x83a5, 0x83af, 0x8388, 0x8397, 0x83b0, 0x837f, 0x83a6, 0x8387, - 0x83ae, 0x8376, 0x839a, 0x8659, 0x8656, 0x86bf, 0x86b7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x86c2, 0x86c1, 0x86c5, 0x86ba, 0x86b0, 0x86c8, 0x86b9, - 0x86b3, 0x86b8, 0x86cc, 0x86b4, 0x86bb, 0x86bc, 0x86c3, 0x86bd, - 0x86be, 0x8852, 0x8889, 0x8895, 0x88a8, 0x88a2, 0x88aa, 0x889a, - 0x8891, 0x88a1, 0x889f, 0x8898, 0x88a7, 0x8899, 0x889b, 0x8897, - 0x88a4, 0x88ac, 0x888c, 0x8893, 0x888e, 0x8982, 0x89d6, 0x89d9, - 0x89d5, 0x8a30, 0x8a27, 0x8a2c, 0x8a1e, 0x8c39, 0x8c3b, 0x8c5c, - 0x8c5d, 0x8c7d, 0x8ca5, 0x8d7d, 0x8d7b, 0x8d79, 0x8dbc, 0x8dc2, - 0x8db9, 0x8dbf, 0x8dc1, 0x8ed8, 0x8ede, 0x8edd, 0x8edc, 0x8ed7, - 0x8ee0, 0x8ee1, 0x9024, 0x900b, 0x9011, 0x901c, 0x900c, 0x9021, - 0x90ef, 0x90ea, 0x90f0, 0x90f4, 0x90f2, 0x90f3, 0x90d4, 0x90eb, - 0x90ec, 0x90e9, 0x9156, 0x9158, 0x915a, 0x9153, 0x9155, 0x91ec, - 0x91f4, 0x91f1, 0x91f3, 0x91f8, 0x91e4, 0x91f9, 0x91ea, 0x003f, - /* lead byte d8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x91eb, 0x91f7, 0x91e8, 0x91ee, 0x957a, 0x9586, 0x9588, 0x967c, - 0x966d, 0x966b, 0x9671, 0x966f, 0x96bf, 0x976a, 0x9804, 0x98e5, - 0x9997, 0x509b, 0x5095, 0x5094, 0x509e, 0x508b, 0x50a3, 0x5083, - 0x508c, 0x508e, 0x509d, 0x5068, 0x509c, 0x5092, 0x5082, 0x5087, - 0x515f, 0x51d4, 0x5312, 0x5311, 0x53a4, 0x53a7, 0x5591, 0x55a8, - 0x55a5, 0x55ad, 0x5577, 0x5645, 0x55a2, 0x5593, 0x5588, 0x558f, - 0x55b5, 0x5581, 0x55a3, 0x5592, 0x55a4, 0x557d, 0x558c, 0x55a6, - 0x557f, 0x5595, 0x55a1, 0x558e, 0x570c, 0x5829, 0x5837, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5819, 0x581e, 0x5827, 0x5823, 0x5828, 0x57f5, 0x5848, - 0x5825, 0x581c, 0x581b, 0x5833, 0x583f, 0x5836, 0x582e, 0x5839, - 0x5838, 0x582d, 0x582c, 0x583b, 0x5961, 0x5aaf, 0x5a94, 0x5a9f, - 0x5a7a, 0x5aa2, 0x5a9e, 0x5a78, 0x5aa6, 0x5a7c, 0x5aa5, 0x5aac, - 0x5a95, 0x5aae, 0x5a37, 0x5a84, 0x5a8a, 0x5a97, 0x5a83, 0x5a8b, - 0x5aa9, 0x5a7b, 0x5a7d, 0x5a8c, 0x5a9c, 0x5a8f, 0x5a93, 0x5a9d, - 0x5bea, 0x5bcd, 0x5bcb, 0x5bd4, 0x5bd1, 0x5bca, 0x5bce, 0x5c0c, - 0x5c30, 0x5d37, 0x5d43, 0x5d6b, 0x5d41, 0x5d4b, 0x5d3f, 0x5d35, - 0x5d51, 0x5d4e, 0x5d55, 0x5d33, 0x5d3a, 0x5d52, 0x5d3d, 0x5d31, - 0x5d59, 0x5d42, 0x5d39, 0x5d49, 0x5d38, 0x5d3c, 0x5d32, 0x5d36, - 0x5d40, 0x5d45, 0x5e44, 0x5e41, 0x5f58, 0x5fa6, 0x5fa5, 0x5fab, - 0x60c9, 0x60b9, 0x60cc, 0x60e2, 0x60ce, 0x60c4, 0x6114, 0x003f, - /* lead byte d9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x60f2, 0x610a, 0x6116, 0x6105, 0x60f5, 0x6113, 0x60f8, 0x60fc, - 0x60fe, 0x60c1, 0x6103, 0x6118, 0x611d, 0x6110, 0x60ff, 0x6104, - 0x610b, 0x624a, 0x6394, 0x63b1, 0x63b0, 0x63ce, 0x63e5, 0x63e8, - 0x63ef, 0x63c3, 0x649d, 0x63f3, 0x63ca, 0x63e0, 0x63f6, 0x63d5, - 0x63f2, 0x63f5, 0x6461, 0x63df, 0x63be, 0x63dd, 0x63dc, 0x63c4, - 0x63d8, 0x63d3, 0x63c2, 0x63c7, 0x63cc, 0x63cb, 0x63c8, 0x63f0, - 0x63d7, 0x63d9, 0x6532, 0x6567, 0x656a, 0x6564, 0x655c, 0x6568, - 0x6565, 0x658c, 0x659d, 0x659e, 0x65ae, 0x65d0, 0x65d2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x667c, 0x666c, 0x667b, 0x6680, 0x6671, 0x6679, 0x666a, - 0x6672, 0x6701, 0x690c, 0x68d3, 0x6904, 0x68dc, 0x692a, 0x68ec, - 0x68ea, 0x68f1, 0x690f, 0x68d6, 0x68f7, 0x68eb, 0x68e4, 0x68f6, - 0x6913, 0x6910, 0x68f3, 0x68e1, 0x6907, 0x68cc, 0x6908, 0x6970, - 0x68b4, 0x6911, 0x68ef, 0x68c6, 0x6914, 0x68f8, 0x68d0, 0x68fd, - 0x68fc, 0x68e8, 0x690b, 0x690a, 0x6917, 0x68ce, 0x68c8, 0x68dd, - 0x68de, 0x68e6, 0x68f4, 0x68d1, 0x6906, 0x68d4, 0x68e9, 0x6915, - 0x6925, 0x68c7, 0x6b39, 0x6b3b, 0x6b3f, 0x6b3c, 0x6b94, 0x6b97, - 0x6b99, 0x6b95, 0x6bbd, 0x6bf0, 0x6bf2, 0x6bf3, 0x6c30, 0x6dfc, - 0x6e46, 0x6e47, 0x6e1f, 0x6e49, 0x6e88, 0x6e3c, 0x6e3d, 0x6e45, - 0x6e62, 0x6e2b, 0x6e3f, 0x6e41, 0x6e5d, 0x6e73, 0x6e1c, 0x6e33, - 0x6e4b, 0x6e40, 0x6e51, 0x6e3b, 0x6e03, 0x6e2e, 0x6e5e, 0x003f, - /* lead byte da */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6e68, 0x6e5c, 0x6e61, 0x6e31, 0x6e28, 0x6e60, 0x6e71, 0x6e6b, - 0x6e39, 0x6e22, 0x6e30, 0x6e53, 0x6e65, 0x6e27, 0x6e78, 0x6e64, - 0x6e77, 0x6e55, 0x6e79, 0x6e52, 0x6e66, 0x6e35, 0x6e36, 0x6e5a, - 0x7120, 0x711e, 0x712f, 0x70fb, 0x712e, 0x7131, 0x7123, 0x7125, - 0x7122, 0x7132, 0x711f, 0x7128, 0x713a, 0x711b, 0x724b, 0x725a, - 0x7288, 0x7289, 0x7286, 0x7285, 0x728b, 0x7312, 0x730b, 0x7330, - 0x7322, 0x7331, 0x7333, 0x7327, 0x7332, 0x732d, 0x7326, 0x7323, - 0x7335, 0x730c, 0x742e, 0x742c, 0x7430, 0x742b, 0x7416, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x741a, 0x7421, 0x742d, 0x7431, 0x7424, 0x7423, 0x741d, - 0x7429, 0x7420, 0x7432, 0x74fb, 0x752f, 0x756f, 0x756c, 0x75e7, - 0x75da, 0x75e1, 0x75e6, 0x75dd, 0x75df, 0x75e4, 0x75d7, 0x7695, - 0x7692, 0x76da, 0x7746, 0x7747, 0x7744, 0x774d, 0x7745, 0x774a, - 0x774e, 0x774b, 0x774c, 0x77de, 0x77ec, 0x7860, 0x7864, 0x7865, - 0x785c, 0x786d, 0x7871, 0x786a, 0x786e, 0x7870, 0x7869, 0x7868, - 0x785e, 0x7862, 0x7974, 0x7973, 0x7972, 0x7970, 0x7a02, 0x7a0a, - 0x7a03, 0x7a0c, 0x7a04, 0x7a99, 0x7ae6, 0x7ae4, 0x7b4a, 0x7b3b, - 0x7b44, 0x7b48, 0x7b4c, 0x7b4e, 0x7b40, 0x7b58, 0x7b45, 0x7ca2, - 0x7c9e, 0x7ca8, 0x7ca1, 0x7d58, 0x7d6f, 0x7d63, 0x7d53, 0x7d56, - 0x7d67, 0x7d6a, 0x7d4f, 0x7d6d, 0x7d5c, 0x7d6b, 0x7d52, 0x7d54, - 0x7d69, 0x7d51, 0x7d5f, 0x7d4e, 0x7f3e, 0x7f3f, 0x7f65, 0x003f, - /* lead byte db */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7f66, 0x7fa2, 0x7fa0, 0x7fa1, 0x7fd7, 0x8051, 0x804f, 0x8050, - 0x80fe, 0x80d4, 0x8143, 0x814a, 0x8152, 0x814f, 0x8147, 0x813d, - 0x814d, 0x813a, 0x81e6, 0x81ee, 0x81f7, 0x81f8, 0x81f9, 0x8204, - 0x823c, 0x823d, 0x823f, 0x8275, 0x833b, 0x83cf, 0x83f9, 0x8423, - 0x83c0, 0x83e8, 0x8412, 0x83e7, 0x83e4, 0x83fc, 0x83f6, 0x8410, - 0x83c6, 0x83c8, 0x83eb, 0x83e3, 0x83bf, 0x8401, 0x83dd, 0x83e5, - 0x83d8, 0x83ff, 0x83e1, 0x83cb, 0x83ce, 0x83d6, 0x83f5, 0x83c9, - 0x8409, 0x840f, 0x83de, 0x8411, 0x8406, 0x83c2, 0x83f3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x83d5, 0x83fa, 0x83c7, 0x83d1, 0x83ea, 0x8413, 0x83c3, - 0x83ec, 0x83ee, 0x83c4, 0x83fb, 0x83d7, 0x83e2, 0x841b, 0x83db, - 0x83fe, 0x86d8, 0x86e2, 0x86e6, 0x86d3, 0x86e3, 0x86da, 0x86ea, - 0x86dd, 0x86eb, 0x86dc, 0x86ec, 0x86e9, 0x86d7, 0x86e8, 0x86d1, - 0x8848, 0x8856, 0x8855, 0x88ba, 0x88d7, 0x88b9, 0x88b8, 0x88c0, - 0x88be, 0x88b6, 0x88bc, 0x88b7, 0x88bd, 0x88b2, 0x8901, 0x88c9, - 0x8995, 0x8998, 0x8997, 0x89dd, 0x89da, 0x89db, 0x8a4e, 0x8a4d, - 0x8a39, 0x8a59, 0x8a40, 0x8a57, 0x8a58, 0x8a44, 0x8a45, 0x8a52, - 0x8a48, 0x8a51, 0x8a4a, 0x8a4c, 0x8a4f, 0x8c5f, 0x8c81, 0x8c80, - 0x8cba, 0x8cbe, 0x8cb0, 0x8cb9, 0x8cb5, 0x8d84, 0x8d80, 0x8d89, - 0x8dd8, 0x8dd3, 0x8dcd, 0x8dc7, 0x8dd6, 0x8ddc, 0x8dcf, 0x8dd5, - 0x8dd9, 0x8dc8, 0x8dd7, 0x8dc5, 0x8eef, 0x8ef7, 0x8efa, 0x003f, - /* lead byte dc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8ef9, 0x8ee6, 0x8eee, 0x8ee5, 0x8ef5, 0x8ee7, 0x8ee8, 0x8ef6, - 0x8eeb, 0x8ef1, 0x8eec, 0x8ef4, 0x8ee9, 0x902d, 0x9034, 0x902f, - 0x9106, 0x912c, 0x9104, 0x90ff, 0x90fc, 0x9108, 0x90f9, 0x90fb, - 0x9101, 0x9100, 0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915f, - 0x9162, 0x9160, 0x9201, 0x920a, 0x9225, 0x9203, 0x921a, 0x9226, - 0x920f, 0x920c, 0x9200, 0x9212, 0x91ff, 0x91fd, 0x9206, 0x9204, - 0x9227, 0x9202, 0x921c, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216, - 0x957b, 0x958d, 0x958c, 0x9590, 0x9687, 0x967e, 0x9688, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9689, 0x9683, 0x9680, 0x96c2, 0x96c8, 0x96c3, 0x96f1, - 0x96f0, 0x976c, 0x9770, 0x976e, 0x9807, 0x98a9, 0x98eb, 0x9ce6, - 0x9ef9, 0x4e83, 0x4e84, 0x4eb6, 0x50bd, 0x50bf, 0x50c6, 0x50ae, - 0x50c4, 0x50ca, 0x50b4, 0x50c8, 0x50c2, 0x50b0, 0x50c1, 0x50ba, - 0x50b1, 0x50cb, 0x50c9, 0x50b6, 0x50b8, 0x51d7, 0x527a, 0x5278, - 0x527b, 0x527c, 0x55c3, 0x55db, 0x55cc, 0x55d0, 0x55cb, 0x55ca, - 0x55dd, 0x55c0, 0x55d4, 0x55c4, 0x55e9, 0x55bf, 0x55d2, 0x558d, - 0x55cf, 0x55d5, 0x55e2, 0x55d6, 0x55c8, 0x55f2, 0x55cd, 0x55d9, - 0x55c2, 0x5714, 0x5853, 0x5868, 0x5864, 0x584f, 0x584d, 0x5849, - 0x586f, 0x5855, 0x584e, 0x585d, 0x5859, 0x5865, 0x585b, 0x583d, - 0x5863, 0x5871, 0x58fc, 0x5ac7, 0x5ac4, 0x5acb, 0x5aba, 0x5ab8, - 0x5ab1, 0x5ab5, 0x5ab0, 0x5abf, 0x5ac8, 0x5abb, 0x5ac6, 0x003f, - /* lead byte dd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5ab7, 0x5ac0, 0x5aca, 0x5ab4, 0x5ab6, 0x5acd, 0x5ab9, 0x5a90, - 0x5bd6, 0x5bd8, 0x5bd9, 0x5c1f, 0x5c33, 0x5d71, 0x5d63, 0x5d4a, - 0x5d65, 0x5d72, 0x5d6c, 0x5d5e, 0x5d68, 0x5d67, 0x5d62, 0x5df0, - 0x5e4f, 0x5e4e, 0x5e4a, 0x5e4d, 0x5e4b, 0x5ec5, 0x5ecc, 0x5ec6, - 0x5ecb, 0x5ec7, 0x5f40, 0x5faf, 0x5fad, 0x60f7, 0x6149, 0x614a, - 0x612b, 0x6145, 0x6136, 0x6132, 0x612e, 0x6146, 0x612f, 0x614f, - 0x6129, 0x6140, 0x6220, 0x9168, 0x6223, 0x6225, 0x6224, 0x63c5, - 0x63f1, 0x63eb, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6433, 0x6443, 0x641f, 0x6415, 0x6418, 0x6439, 0x6437, - 0x6422, 0x6423, 0x640c, 0x6426, 0x6430, 0x6428, 0x6441, 0x6435, - 0x642f, 0x640a, 0x641a, 0x6440, 0x6425, 0x6427, 0x640b, 0x63e7, - 0x641b, 0x642e, 0x6421, 0x640e, 0x656f, 0x6592, 0x65d3, 0x6686, - 0x668c, 0x6695, 0x6690, 0x668b, 0x668a, 0x6699, 0x6694, 0x6678, - 0x6720, 0x6966, 0x695f, 0x6938, 0x694e, 0x6962, 0x6971, 0x693f, - 0x6945, 0x696a, 0x6939, 0x6942, 0x6957, 0x6959, 0x697a, 0x6948, - 0x6949, 0x6935, 0x696c, 0x6933, 0x693d, 0x6965, 0x68f0, 0x6978, - 0x6934, 0x6969, 0x6940, 0x696f, 0x6944, 0x6976, 0x6958, 0x6941, - 0x6974, 0x694c, 0x693b, 0x694b, 0x6937, 0x695c, 0x694f, 0x6951, - 0x6932, 0x6952, 0x692f, 0x697b, 0x693c, 0x6b46, 0x6b45, 0x6b43, - 0x6b42, 0x6b48, 0x6b41, 0x6b9b, 0xfa0d, 0x6bfb, 0x6bfc, 0x003f, - /* lead byte de */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6bf9, 0x6bf7, 0x6bf8, 0x6e9b, 0x6ed6, 0x6ec8, 0x6e8f, 0x6ec0, - 0x6e9f, 0x6e93, 0x6e94, 0x6ea0, 0x6eb1, 0x6eb9, 0x6ec6, 0x6ed2, - 0x6ebd, 0x6ec1, 0x6e9e, 0x6ec9, 0x6eb7, 0x6eb0, 0x6ecd, 0x6ea6, - 0x6ecf, 0x6eb2, 0x6ebe, 0x6ec3, 0x6edc, 0x6ed8, 0x6e99, 0x6e92, - 0x6e8e, 0x6e8d, 0x6ea4, 0x6ea1, 0x6ebf, 0x6eb3, 0x6ed0, 0x6eca, - 0x6e97, 0x6eae, 0x6ea3, 0x7147, 0x7154, 0x7152, 0x7163, 0x7160, - 0x7141, 0x715d, 0x7162, 0x7172, 0x7178, 0x716a, 0x7161, 0x7142, - 0x7158, 0x7143, 0x714b, 0x7170, 0x715f, 0x7150, 0x7153, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7144, 0x714d, 0x715a, 0x724f, 0x728d, 0x728c, 0x7291, - 0x7290, 0x728e, 0x733c, 0x7342, 0x733b, 0x733a, 0x7340, 0x734a, - 0x7349, 0x7444, 0x744a, 0x744b, 0x7452, 0x7451, 0x7457, 0x7440, - 0x744f, 0x7450, 0x744e, 0x7442, 0x7446, 0x744d, 0x7454, 0x74e1, - 0x74ff, 0x74fe, 0x74fd, 0x751d, 0x7579, 0x7577, 0x6983, 0x75ef, - 0x760f, 0x7603, 0x75f7, 0x75fe, 0x75fc, 0x75f9, 0x75f8, 0x7610, - 0x75fb, 0x75f6, 0x75ed, 0x75f5, 0x75fd, 0x7699, 0x76b5, 0x76dd, - 0x7755, 0x775f, 0x7760, 0x7752, 0x7756, 0x775a, 0x7769, 0x7767, - 0x7754, 0x7759, 0x776d, 0x77e0, 0x7887, 0x789a, 0x7894, 0x788f, - 0x7884, 0x7895, 0x7885, 0x7886, 0x78a1, 0x7883, 0x7879, 0x7899, - 0x7880, 0x7896, 0x787b, 0x797c, 0x7982, 0x797d, 0x7979, 0x7a11, - 0x7a18, 0x7a19, 0x7a12, 0x7a17, 0x7a15, 0x7a22, 0x7a13, 0x003f, - /* lead byte df */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7a1b, 0x7a10, 0x7aa3, 0x7aa2, 0x7a9e, 0x7aeb, 0x7b66, 0x7b64, - 0x7b6d, 0x7b74, 0x7b69, 0x7b72, 0x7b65, 0x7b73, 0x7b71, 0x7b70, - 0x7b61, 0x7b78, 0x7b76, 0x7b63, 0x7cb2, 0x7cb4, 0x7caf, 0x7d88, - 0x7d86, 0x7d80, 0x7d8d, 0x7d7f, 0x7d85, 0x7d7a, 0x7d8e, 0x7d7b, - 0x7d83, 0x7d7c, 0x7d8c, 0x7d94, 0x7d84, 0x7d7d, 0x7d92, 0x7f6d, - 0x7f6b, 0x7f67, 0x7f68, 0x7f6c, 0x7fa6, 0x7fa5, 0x7fa7, 0x7fdb, - 0x7fdc, 0x8021, 0x8164, 0x8160, 0x8177, 0x815c, 0x8169, 0x815b, - 0x8162, 0x8172, 0x6721, 0x815e, 0x8176, 0x8167, 0x816f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8144, 0x8161, 0x821d, 0x8249, 0x8244, 0x8240, 0x8242, - 0x8245, 0x84f1, 0x843f, 0x8456, 0x8476, 0x8479, 0x848f, 0x848d, - 0x8465, 0x8451, 0x8440, 0x8486, 0x8467, 0x8430, 0x844d, 0x847d, - 0x845a, 0x8459, 0x8474, 0x8473, 0x845d, 0x8507, 0x845e, 0x8437, - 0x843a, 0x8434, 0x847a, 0x8443, 0x8478, 0x8432, 0x8445, 0x8429, - 0x83d9, 0x844b, 0x842f, 0x8442, 0x842d, 0x845f, 0x8470, 0x8439, - 0x844e, 0x844c, 0x8452, 0x846f, 0x84c5, 0x848e, 0x843b, 0x8447, - 0x8436, 0x8433, 0x8468, 0x847e, 0x8444, 0x842b, 0x8460, 0x8454, - 0x846e, 0x8450, 0x870b, 0x8704, 0x86f7, 0x870c, 0x86fa, 0x86d6, - 0x86f5, 0x874d, 0x86f8, 0x870e, 0x8709, 0x8701, 0x86f6, 0x870d, - 0x8705, 0x88d6, 0x88cb, 0x88cd, 0x88ce, 0x88de, 0x88db, 0x88da, - 0x88cc, 0x88d0, 0x8985, 0x899b, 0x89df, 0x89e5, 0x89e4, 0x003f, - /* lead byte e0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x89e1, 0x89e0, 0x89e2, 0x89dc, 0x89e6, 0x8a76, 0x8a86, 0x8a7f, - 0x8a61, 0x8a3f, 0x8a77, 0x8a82, 0x8a84, 0x8a75, 0x8a83, 0x8a81, - 0x8a74, 0x8a7a, 0x8c3c, 0x8c4b, 0x8c4a, 0x8c65, 0x8c64, 0x8c66, - 0x8c86, 0x8c84, 0x8c85, 0x8ccc, 0x8d68, 0x8d69, 0x8d91, 0x8d8c, - 0x8d8e, 0x8d8f, 0x8d8d, 0x8d93, 0x8d94, 0x8d90, 0x8d92, 0x8df0, - 0x8de0, 0x8dec, 0x8df1, 0x8dee, 0x8dd0, 0x8de9, 0x8de3, 0x8de2, - 0x8de7, 0x8df2, 0x8deb, 0x8df4, 0x8f06, 0x8eff, 0x8f01, 0x8f00, - 0x8f05, 0x8f07, 0x8f08, 0x8f02, 0x8f0b, 0x9052, 0x903f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9044, 0x9049, 0x903d, 0x9110, 0x910d, 0x910f, 0x9111, - 0x9116, 0x9114, 0x910b, 0x910e, 0x916e, 0x916f, 0x9248, 0x9252, - 0x9230, 0x923a, 0x9266, 0x9233, 0x9265, 0x925e, 0x9283, 0x922e, - 0x924a, 0x9246, 0x926d, 0x926c, 0x924f, 0x9260, 0x9267, 0x926f, - 0x9236, 0x9261, 0x9270, 0x9231, 0x9254, 0x9263, 0x9250, 0x9272, - 0x924e, 0x9253, 0x924c, 0x9256, 0x9232, 0x959f, 0x959c, 0x959e, - 0x959b, 0x9692, 0x9693, 0x9691, 0x9697, 0x96ce, 0x96fa, 0x96fd, - 0x96f8, 0x96f5, 0x9773, 0x9777, 0x9778, 0x9772, 0x980f, 0x980d, - 0x980e, 0x98ac, 0x98f6, 0x98f9, 0x99af, 0x99b2, 0x99b0, 0x99b5, - 0x9aad, 0x9aab, 0x9b5b, 0x9cea, 0x9ced, 0x9ce7, 0x9e80, 0x9efd, - 0x50e6, 0x50d4, 0x50d7, 0x50e8, 0x50f3, 0x50db, 0x50ea, 0x50dd, - 0x50e4, 0x50d3, 0x50ec, 0x50f0, 0x50ef, 0x50e3, 0x50e0, 0x003f, - /* lead byte e1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x51d8, 0x5280, 0x5281, 0x52e9, 0x52eb, 0x5330, 0x53ac, 0x5627, - 0x5615, 0x560c, 0x5612, 0x55fc, 0x560f, 0x561c, 0x5601, 0x5613, - 0x5602, 0x55fa, 0x561d, 0x5604, 0x55ff, 0x55f9, 0x5889, 0x587c, - 0x5890, 0x5898, 0x5886, 0x5881, 0x587f, 0x5874, 0x588b, 0x587a, - 0x5887, 0x5891, 0x588e, 0x5876, 0x5882, 0x5888, 0x587b, 0x5894, - 0x588f, 0x58fe, 0x596b, 0x5adc, 0x5aee, 0x5ae5, 0x5ad5, 0x5aea, - 0x5ada, 0x5aed, 0x5aeb, 0x5af3, 0x5ae2, 0x5ae0, 0x5adb, 0x5aec, - 0x5ade, 0x5add, 0x5ad9, 0x5ae8, 0x5adf, 0x5b77, 0x5be0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x5be3, 0x5c63, 0x5d82, 0x5d80, 0x5d7d, 0x5d86, 0x5d7a, - 0x5d81, 0x5d77, 0x5d8a, 0x5d89, 0x5d88, 0x5d7e, 0x5d7c, 0x5d8d, - 0x5d79, 0x5d7f, 0x5e58, 0x5e59, 0x5e53, 0x5ed8, 0x5ed1, 0x5ed7, - 0x5ece, 0x5edc, 0x5ed5, 0x5ed9, 0x5ed2, 0x5ed4, 0x5f44, 0x5f43, - 0x5f6f, 0x5fb6, 0x612c, 0x6128, 0x6141, 0x615e, 0x6171, 0x6173, - 0x6152, 0x6153, 0x6172, 0x616c, 0x6180, 0x6174, 0x6154, 0x617a, - 0x615b, 0x6165, 0x613b, 0x616a, 0x6161, 0x6156, 0x6229, 0x6227, - 0x622b, 0x642b, 0x644d, 0x645b, 0x645d, 0x6474, 0x6476, 0x6472, - 0x6473, 0x647d, 0x6475, 0x6466, 0x64a6, 0x644e, 0x6482, 0x645e, - 0x645c, 0x644b, 0x6453, 0x6460, 0x6450, 0x647f, 0x643f, 0x646c, - 0x646b, 0x6459, 0x6465, 0x6477, 0x6573, 0x65a0, 0x66a1, 0x66a0, - 0x669f, 0x6705, 0x6704, 0x6722, 0x69b1, 0x69b6, 0x69c9, 0x003f, - /* lead byte e2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x69a0, 0x69ce, 0x6996, 0x69b0, 0x69ac, 0x69bc, 0x6991, 0x6999, - 0x698e, 0x69a7, 0x698d, 0x69a9, 0x69be, 0x69af, 0x69bf, 0x69c4, - 0x69bd, 0x69a4, 0x69d4, 0x69b9, 0x69ca, 0x699a, 0x69cf, 0x69b3, - 0x6993, 0x69aa, 0x69a1, 0x699e, 0x69d9, 0x6997, 0x6990, 0x69c2, - 0x69b5, 0x69a5, 0x69c6, 0x6b4a, 0x6b4d, 0x6b4b, 0x6b9e, 0x6b9f, - 0x6ba0, 0x6bc3, 0x6bc4, 0x6bfe, 0x6ece, 0x6ef5, 0x6ef1, 0x6f03, - 0x6f25, 0x6ef8, 0x6f37, 0x6efb, 0x6f2e, 0x6f09, 0x6f4e, 0x6f19, - 0x6f1a, 0x6f27, 0x6f18, 0x6f3b, 0x6f12, 0x6eed, 0x6f0a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x6f36, 0x6f73, 0x6ef9, 0x6eee, 0x6f2d, 0x6f40, 0x6f30, - 0x6f3c, 0x6f35, 0x6eeb, 0x6f07, 0x6f0e, 0x6f43, 0x6f05, 0x6efd, - 0x6ef6, 0x6f39, 0x6f1c, 0x6efc, 0x6f3a, 0x6f1f, 0x6f0d, 0x6f1e, - 0x6f08, 0x6f21, 0x7187, 0x7190, 0x7189, 0x7180, 0x7185, 0x7182, - 0x718f, 0x717b, 0x7186, 0x7181, 0x7197, 0x7244, 0x7253, 0x7297, - 0x7295, 0x7293, 0x7343, 0x734d, 0x7351, 0x734c, 0x7462, 0x7473, - 0x7471, 0x7475, 0x7472, 0x7467, 0x746e, 0x7500, 0x7502, 0x7503, - 0x757d, 0x7590, 0x7616, 0x7608, 0x760c, 0x7615, 0x7611, 0x760a, - 0x7614, 0x76b8, 0x7781, 0x777c, 0x7785, 0x7782, 0x776e, 0x7780, - 0x776f, 0x777e, 0x7783, 0x78b2, 0x78aa, 0x78b4, 0x78ad, 0x78a8, - 0x787e, 0x78ab, 0x789e, 0x78a5, 0x78a0, 0x78ac, 0x78a2, 0x78a4, - 0x7998, 0x798a, 0x798b, 0x7996, 0x7995, 0x7994, 0x7993, 0x003f, - /* lead byte e3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7997, 0x7988, 0x7992, 0x7990, 0x7a2b, 0x7a4a, 0x7a30, 0x7a2f, - 0x7a28, 0x7a26, 0x7aa8, 0x7aab, 0x7aac, 0x7aee, 0x7b88, 0x7b9c, - 0x7b8a, 0x7b91, 0x7b90, 0x7b96, 0x7b8d, 0x7b8c, 0x7b9b, 0x7b8e, - 0x7b85, 0x7b98, 0x5284, 0x7b99, 0x7ba4, 0x7b82, 0x7cbb, 0x7cbf, - 0x7cbc, 0x7cba, 0x7da7, 0x7db7, 0x7dc2, 0x7da3, 0x7daa, 0x7dc1, - 0x7dc0, 0x7dc5, 0x7d9d, 0x7dce, 0x7dc4, 0x7dc6, 0x7dcb, 0x7dcc, - 0x7daf, 0x7db9, 0x7d96, 0x7dbc, 0x7d9f, 0x7da6, 0x7dae, 0x7da9, - 0x7da1, 0x7dc9, 0x7f73, 0x7fe2, 0x7fe3, 0x7fe5, 0x7fde, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8024, 0x805d, 0x805c, 0x8189, 0x8186, 0x8183, 0x8187, - 0x818d, 0x818c, 0x818b, 0x8215, 0x8497, 0x84a4, 0x84a1, 0x849f, - 0x84ba, 0x84ce, 0x84c2, 0x84ac, 0x84ae, 0x84ab, 0x84b9, 0x84b4, - 0x84c1, 0x84cd, 0x84aa, 0x849a, 0x84b1, 0x84d0, 0x849d, 0x84a7, - 0x84bb, 0x84a2, 0x8494, 0x84c7, 0x84cc, 0x849b, 0x84a9, 0x84af, - 0x84a8, 0x84d6, 0x8498, 0x84b6, 0x84cf, 0x84a0, 0x84d7, 0x84d4, - 0x84d2, 0x84db, 0x84b0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, - 0x876b, 0x8740, 0x872e, 0x871e, 0x8721, 0x8719, 0x871b, 0x8743, - 0x872c, 0x8741, 0x873e, 0x8746, 0x8720, 0x8732, 0x872a, 0x872d, - 0x873c, 0x8712, 0x873a, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, - 0x8738, 0x8724, 0x871a, 0x8730, 0x8711, 0x88f7, 0x88e7, 0x88f1, - 0x88f2, 0x88fa, 0x88fe, 0x88ee, 0x88fc, 0x88f6, 0x88fb, 0x003f, - /* lead byte e4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x88f0, 0x88ec, 0x88eb, 0x899d, 0x89a1, 0x899f, 0x899e, 0x89e9, - 0x89eb, 0x89e8, 0x8aab, 0x8a99, 0x8a8b, 0x8a92, 0x8a8f, 0x8a96, - 0x8c3d, 0x8c68, 0x8c69, 0x8cd5, 0x8ccf, 0x8cd7, 0x8d96, 0x8e09, - 0x8e02, 0x8dff, 0x8e0d, 0x8dfd, 0x8e0a, 0x8e03, 0x8e07, 0x8e06, - 0x8e05, 0x8dfe, 0x8e00, 0x8e04, 0x8f10, 0x8f11, 0x8f0e, 0x8f0d, - 0x9123, 0x911c, 0x9120, 0x9122, 0x911f, 0x911d, 0x911a, 0x9124, - 0x9121, 0x911b, 0x917a, 0x9172, 0x9179, 0x9173, 0x92a5, 0x92a4, - 0x9276, 0x929b, 0x927a, 0x92a0, 0x9294, 0x92aa, 0x928d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x92a6, 0x929a, 0x92ab, 0x9279, 0x9297, 0x927f, 0x92a3, - 0x92ee, 0x928e, 0x9282, 0x9295, 0x92a2, 0x927d, 0x9288, 0x92a1, - 0x928a, 0x9286, 0x928c, 0x9299, 0x92a7, 0x927e, 0x9287, 0x92a9, - 0x929d, 0x928b, 0x922d, 0x969e, 0x96a1, 0x96ff, 0x9758, 0x977d, - 0x977a, 0x977e, 0x9783, 0x9780, 0x9782, 0x977b, 0x9784, 0x9781, - 0x977f, 0x97ce, 0x97cd, 0x9816, 0x98ad, 0x98ae, 0x9902, 0x9900, - 0x9907, 0x999d, 0x999c, 0x99c3, 0x99b9, 0x99bb, 0x99ba, 0x99c2, - 0x99bd, 0x99c7, 0x9ab1, 0x9ae3, 0x9ae7, 0x9b3e, 0x9b3f, 0x9b60, - 0x9b61, 0x9b5f, 0x9cf1, 0x9cf2, 0x9cf5, 0x9ea7, 0x50ff, 0x5103, - 0x5130, 0x50f8, 0x5106, 0x5107, 0x50f6, 0x50fe, 0x510b, 0x510c, - 0x50fd, 0x510a, 0x528b, 0x528c, 0x52f1, 0x52ef, 0x5648, 0x5642, - 0x564c, 0x5635, 0x5641, 0x564a, 0x5649, 0x5646, 0x5658, 0x003f, - /* lead byte e5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x565a, 0x5640, 0x5633, 0x563d, 0x562c, 0x563e, 0x5638, 0x562a, - 0x563a, 0x571a, 0x58ab, 0x589d, 0x58b1, 0x58a0, 0x58a3, 0x58af, - 0x58ac, 0x58a5, 0x58a1, 0x58ff, 0x5aff, 0x5af4, 0x5afd, 0x5af7, - 0x5af6, 0x5b03, 0x5af8, 0x5b02, 0x5af9, 0x5b01, 0x5b07, 0x5b05, - 0x5b0f, 0x5c67, 0x5d99, 0x5d97, 0x5d9f, 0x5d92, 0x5da2, 0x5d93, - 0x5d95, 0x5da0, 0x5d9c, 0x5da1, 0x5d9a, 0x5d9e, 0x5e69, 0x5e5d, - 0x5e60, 0x5e5c, 0x7df3, 0x5edb, 0x5ede, 0x5ee1, 0x5f49, 0x5fb2, - 0x618b, 0x6183, 0x6179, 0x61b1, 0x61b0, 0x61a2, 0x6189, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x619b, 0x6193, 0x61af, 0x61ad, 0x619f, 0x6192, 0x61aa, - 0x61a1, 0x618d, 0x6166, 0x61b3, 0x622d, 0x646e, 0x6470, 0x6496, - 0x64a0, 0x6485, 0x6497, 0x649c, 0x648f, 0x648b, 0x648a, 0x648c, - 0x64a3, 0x649f, 0x6468, 0x64b1, 0x6498, 0x6576, 0x657a, 0x6579, - 0x657b, 0x65b2, 0x65b3, 0x66b5, 0x66b0, 0x66a9, 0x66b2, 0x66b7, - 0x66aa, 0x66af, 0x6a00, 0x6a06, 0x6a17, 0x69e5, 0x69f8, 0x6a15, - 0x69f1, 0x69e4, 0x6a20, 0x69ff, 0x69ec, 0x69e2, 0x6a1b, 0x6a1d, - 0x69fe, 0x6a27, 0x69f2, 0x69ee, 0x6a14, 0x69f7, 0x69e7, 0x6a40, - 0x6a08, 0x69e6, 0x69fb, 0x6a0d, 0x69fc, 0x69eb, 0x6a09, 0x6a04, - 0x6a18, 0x6a25, 0x6a0f, 0x69f6, 0x6a26, 0x6a07, 0x69f4, 0x6a16, - 0x6b51, 0x6ba5, 0x6ba3, 0x6ba2, 0x6ba6, 0x6c01, 0x6c00, 0x6bff, - 0x6c02, 0x6f41, 0x6f26, 0x6f7e, 0x6f87, 0x6fc6, 0x6f92, 0x003f, - /* lead byte e6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6f8d, 0x6f89, 0x6f8c, 0x6f62, 0x6f4f, 0x6f85, 0x6f5a, 0x6f96, - 0x6f76, 0x6f6c, 0x6f82, 0x6f55, 0x6f72, 0x6f52, 0x6f50, 0x6f57, - 0x6f94, 0x6f93, 0x6f5d, 0x6f00, 0x6f61, 0x6f6b, 0x6f7d, 0x6f67, - 0x6f90, 0x6f53, 0x6f8b, 0x6f69, 0x6f7f, 0x6f95, 0x6f63, 0x6f77, - 0x6f6a, 0x6f7b, 0x71b2, 0x71af, 0x719b, 0x71b0, 0x71a0, 0x719a, - 0x71a9, 0x71b5, 0x719d, 0x71a5, 0x719e, 0x71a4, 0x71a1, 0x71aa, - 0x719c, 0x71a7, 0x71b3, 0x7298, 0x729a, 0x7358, 0x7352, 0x735e, - 0x735f, 0x7360, 0x735d, 0x735b, 0x7361, 0x735a, 0x7359, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7362, 0x7487, 0x7489, 0x748a, 0x7486, 0x7481, 0x747d, - 0x7485, 0x7488, 0x747c, 0x7479, 0x7508, 0x7507, 0x757e, 0x7625, - 0x761e, 0x7619, 0x761d, 0x761c, 0x7623, 0x761a, 0x7628, 0x761b, - 0x769c, 0x769d, 0x769e, 0x769b, 0x778d, 0x778f, 0x7789, 0x7788, - 0x78cd, 0x78bb, 0x78cf, 0x78cc, 0x78d1, 0x78ce, 0x78d4, 0x78c8, - 0x78c3, 0x78c4, 0x78c9, 0x799a, 0x79a1, 0x79a0, 0x799c, 0x79a2, - 0x799b, 0x6b76, 0x7a39, 0x7ab2, 0x7ab4, 0x7ab3, 0x7bb7, 0x7bcb, - 0x7bbe, 0x7bac, 0x7bce, 0x7baf, 0x7bb9, 0x7bca, 0x7bb5, 0x7cc5, - 0x7cc8, 0x7ccc, 0x7ccb, 0x7df7, 0x7ddb, 0x7dea, 0x7de7, 0x7dd7, - 0x7de1, 0x7e03, 0x7dfa, 0x7de6, 0x7df6, 0x7df1, 0x7df0, 0x7dee, - 0x7ddf, 0x7f76, 0x7fac, 0x7fb0, 0x7fad, 0x7fed, 0x7feb, 0x7fea, - 0x7fec, 0x7fe6, 0x7fe8, 0x8064, 0x8067, 0x81a3, 0x819f, 0x003f, - /* lead byte e7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x819e, 0x8195, 0x81a2, 0x8199, 0x8197, 0x8216, 0x824f, 0x8253, - 0x8252, 0x8250, 0x824e, 0x8251, 0x8524, 0x853b, 0x850f, 0x8500, - 0x8529, 0x850e, 0x8509, 0x850d, 0x851f, 0x850a, 0x8527, 0x851c, - 0x84fb, 0x852b, 0x84fa, 0x8508, 0x850c, 0x84f4, 0x852a, 0x84f2, - 0x8515, 0x84f7, 0x84eb, 0x84f3, 0x84fc, 0x8512, 0x84ea, 0x84e9, - 0x8516, 0x84fe, 0x8528, 0x851d, 0x852e, 0x8502, 0x84fd, 0x851e, - 0x84f6, 0x8531, 0x8526, 0x84e7, 0x84e8, 0x84f0, 0x84ef, 0x84f9, - 0x8518, 0x8520, 0x8530, 0x850b, 0x8519, 0x852f, 0x8662, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8756, 0x8763, 0x8764, 0x8777, 0x87e1, 0x8773, 0x8758, - 0x8754, 0x875b, 0x8752, 0x8761, 0x875a, 0x8751, 0x875e, 0x876d, - 0x876a, 0x8750, 0x874e, 0x875f, 0x875d, 0x876f, 0x876c, 0x877a, - 0x876e, 0x875c, 0x8765, 0x874f, 0x877b, 0x8775, 0x8762, 0x8767, - 0x8769, 0x885a, 0x8905, 0x890c, 0x8914, 0x890b, 0x8917, 0x8918, - 0x8919, 0x8906, 0x8916, 0x8911, 0x890e, 0x8909, 0x89a2, 0x89a4, - 0x89a3, 0x89ed, 0x89f0, 0x89ec, 0x8acf, 0x8ac6, 0x8ab8, 0x8ad3, - 0x8ad1, 0x8ad4, 0x8ad5, 0x8abb, 0x8ad7, 0x8abe, 0x8ac0, 0x8ac5, - 0x8ad8, 0x8ac3, 0x8aba, 0x8abd, 0x8ad9, 0x8c3e, 0x8c4d, 0x8c8f, - 0x8ce5, 0x8cdf, 0x8cd9, 0x8ce8, 0x8cda, 0x8cdd, 0x8ce7, 0x8da0, - 0x8d9c, 0x8da1, 0x8d9b, 0x8e20, 0x8e23, 0x8e25, 0x8e24, 0x8e2e, - 0x8e15, 0x8e1b, 0x8e16, 0x8e11, 0x8e19, 0x8e26, 0x8e27, 0x003f, - /* lead byte e8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8e14, 0x8e12, 0x8e18, 0x8e13, 0x8e1c, 0x8e17, 0x8e1a, 0x8f2c, - 0x8f24, 0x8f18, 0x8f1a, 0x8f20, 0x8f23, 0x8f16, 0x8f17, 0x9073, - 0x9070, 0x906f, 0x9067, 0x906b, 0x912f, 0x912b, 0x9129, 0x912a, - 0x9132, 0x9126, 0x912e, 0x9185, 0x9186, 0x918a, 0x9181, 0x9182, - 0x9184, 0x9180, 0x92d0, 0x92c3, 0x92c4, 0x92c0, 0x92d9, 0x92b6, - 0x92cf, 0x92f1, 0x92df, 0x92d8, 0x92e9, 0x92d7, 0x92dd, 0x92cc, - 0x92ef, 0x92c2, 0x92e8, 0x92ca, 0x92c8, 0x92ce, 0x92e6, 0x92cd, - 0x92d5, 0x92c9, 0x92e0, 0x92de, 0x92e7, 0x92d1, 0x92d3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x92b5, 0x92e1, 0x92c6, 0x92b4, 0x957c, 0x95ac, 0x95ab, - 0x95ae, 0x95b0, 0x96a4, 0x96a2, 0x96d3, 0x9705, 0x9708, 0x9702, - 0x975a, 0x978a, 0x978e, 0x9788, 0x97d0, 0x97cf, 0x981e, 0x981d, - 0x9826, 0x9829, 0x9828, 0x9820, 0x981b, 0x9827, 0x98b2, 0x9908, - 0x98fa, 0x9911, 0x9914, 0x9916, 0x9917, 0x9915, 0x99dc, 0x99cd, - 0x99cf, 0x99d3, 0x99d4, 0x99ce, 0x99c9, 0x99d6, 0x99d8, 0x99cb, - 0x99d7, 0x99cc, 0x9ab3, 0x9aec, 0x9aeb, 0x9af3, 0x9af2, 0x9af1, - 0x9b46, 0x9b43, 0x9b67, 0x9b74, 0x9b71, 0x9b66, 0x9b76, 0x9b75, - 0x9b70, 0x9b68, 0x9b64, 0x9b6c, 0x9cfc, 0x9cfa, 0x9cfd, 0x9cff, - 0x9cf7, 0x9d07, 0x9d00, 0x9cf9, 0x9cfb, 0x9d08, 0x9d05, 0x9d04, - 0x9e83, 0x9ed3, 0x9f0f, 0x9f10, 0x511c, 0x5113, 0x5117, 0x511a, - 0x5111, 0x51de, 0x5334, 0x53e1, 0x5670, 0x5660, 0x566e, 0x003f, - /* lead byte e9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5673, 0x5666, 0x5663, 0x566d, 0x5672, 0x565e, 0x5677, 0x571c, - 0x571b, 0x58c8, 0x58bd, 0x58c9, 0x58bf, 0x58ba, 0x58c2, 0x58bc, - 0x58c6, 0x5b17, 0x5b19, 0x5b1b, 0x5b21, 0x5b14, 0x5b13, 0x5b10, - 0x5b16, 0x5b28, 0x5b1a, 0x5b20, 0x5b1e, 0x5bef, 0x5dac, 0x5db1, - 0x5da9, 0x5da7, 0x5db5, 0x5db0, 0x5dae, 0x5daa, 0x5da8, 0x5db2, - 0x5dad, 0x5daf, 0x5db4, 0x5e67, 0x5e68, 0x5e66, 0x5e6f, 0x5ee9, - 0x5ee7, 0x5ee6, 0x5ee8, 0x5ee5, 0x5f4b, 0x5fbc, 0x619d, 0x61a8, - 0x6196, 0x61c5, 0x61b4, 0x61c6, 0x61c1, 0x61cc, 0x61ba, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x61bf, 0x61b8, 0x618c, 0x64d7, 0x64d6, 0x64d0, 0x64cf, - 0x64c9, 0x64bd, 0x6489, 0x64c3, 0x64db, 0x64f3, 0x64d9, 0x6533, - 0x657f, 0x657c, 0x65a2, 0x66c8, 0x66be, 0x66c0, 0x66ca, 0x66cb, - 0x66cf, 0x66bd, 0x66bb, 0x66ba, 0x66cc, 0x6723, 0x6a34, 0x6a66, - 0x6a49, 0x6a67, 0x6a32, 0x6a68, 0x6a3e, 0x6a5d, 0x6a6d, 0x6a76, - 0x6a5b, 0x6a51, 0x6a28, 0x6a5a, 0x6a3b, 0x6a3f, 0x6a41, 0x6a6a, - 0x6a64, 0x6a50, 0x6a4f, 0x6a54, 0x6a6f, 0x6a69, 0x6a60, 0x6a3c, - 0x6a5e, 0x6a56, 0x6a55, 0x6a4d, 0x6a4e, 0x6a46, 0x6b55, 0x6b54, - 0x6b56, 0x6ba7, 0x6baa, 0x6bab, 0x6bc8, 0x6bc7, 0x6c04, 0x6c03, - 0x6c06, 0x6fad, 0x6fcb, 0x6fa3, 0x6fc7, 0x6fbc, 0x6fce, 0x6fc8, - 0x6f5e, 0x6fc4, 0x6fbd, 0x6f9e, 0x6fca, 0x6fa8, 0x7004, 0x6fa5, - 0x6fae, 0x6fba, 0x6fac, 0x6faa, 0x6fcf, 0x6fbf, 0x6fb8, 0x003f, - /* lead byte ea */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6fa2, 0x6fc9, 0x6fab, 0x6fcd, 0x6faf, 0x6fb2, 0x6fb0, 0x71c5, - 0x71c2, 0x71bf, 0x71b8, 0x71d6, 0x71c0, 0x71c1, 0x71cb, 0x71d4, - 0x71ca, 0x71c7, 0x71cf, 0x71bd, 0x71d8, 0x71bc, 0x71c6, 0x71da, - 0x71db, 0x729d, 0x729e, 0x7369, 0x7366, 0x7367, 0x736c, 0x7365, - 0x736b, 0x736a, 0x747f, 0x749a, 0x74a0, 0x7494, 0x7492, 0x7495, - 0x74a1, 0x750b, 0x7580, 0x762f, 0x762d, 0x7631, 0x763d, 0x7633, - 0x763c, 0x7635, 0x7632, 0x7630, 0x76bb, 0x76e6, 0x779a, 0x779d, - 0x77a1, 0x779c, 0x779b, 0x77a2, 0x77a3, 0x7795, 0x7799, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7797, 0x78dd, 0x78e9, 0x78e5, 0x78ea, 0x78de, 0x78e3, - 0x78db, 0x78e1, 0x78e2, 0x78ed, 0x78df, 0x78e0, 0x79a4, 0x7a44, - 0x7a48, 0x7a47, 0x7ab6, 0x7ab8, 0x7ab5, 0x7ab1, 0x7ab7, 0x7bde, - 0x7be3, 0x7be7, 0x7bdd, 0x7bd5, 0x7be5, 0x7bda, 0x7be8, 0x7bf9, - 0x7bd4, 0x7bea, 0x7be2, 0x7bdc, 0x7beb, 0x7bd8, 0x7bdf, 0x7cd2, - 0x7cd4, 0x7cd7, 0x7cd0, 0x7cd1, 0x7e12, 0x7e21, 0x7e17, 0x7e0c, - 0x7e1f, 0x7e20, 0x7e13, 0x7e0e, 0x7e1c, 0x7e15, 0x7e1a, 0x7e22, - 0x7e0b, 0x7e0f, 0x7e16, 0x7e0d, 0x7e14, 0x7e25, 0x7e24, 0x7f43, - 0x7f7b, 0x7f7c, 0x7f7a, 0x7fb1, 0x7fef, 0x802a, 0x8029, 0x806c, - 0x81b1, 0x81a6, 0x81ae, 0x81b9, 0x81b5, 0x81ab, 0x81b0, 0x81ac, - 0x81b4, 0x81b2, 0x81b7, 0x81a7, 0x81f2, 0x8255, 0x8256, 0x8257, - 0x8556, 0x8545, 0x856b, 0x854d, 0x8553, 0x8561, 0x8558, 0x003f, - /* lead byte eb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544, 0x8551, 0x8547, - 0x8563, 0x853e, 0x855b, 0x8571, 0x854e, 0x856e, 0x8575, 0x8555, - 0x8567, 0x8560, 0x858c, 0x8566, 0x855d, 0x8554, 0x8565, 0x856c, - 0x8663, 0x8665, 0x8664, 0x879b, 0x878f, 0x8797, 0x8793, 0x8792, - 0x8788, 0x8781, 0x8796, 0x8798, 0x8779, 0x8787, 0x87a3, 0x8785, - 0x8790, 0x8791, 0x879d, 0x8784, 0x8794, 0x879c, 0x879a, 0x8789, - 0x891e, 0x8926, 0x8930, 0x892d, 0x892e, 0x8927, 0x8931, 0x8922, - 0x8929, 0x8923, 0x892f, 0x892c, 0x891f, 0x89f1, 0x8ae0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8ae2, 0x8af2, 0x8af4, 0x8af5, 0x8add, 0x8b14, 0x8ae4, - 0x8adf, 0x8af0, 0x8ac8, 0x8ade, 0x8ae1, 0x8ae8, 0x8aff, 0x8aef, - 0x8afb, 0x8c91, 0x8c92, 0x8c90, 0x8cf5, 0x8cee, 0x8cf1, 0x8cf0, - 0x8cf3, 0x8d6c, 0x8d6e, 0x8da5, 0x8da7, 0x8e33, 0x8e3e, 0x8e38, - 0x8e40, 0x8e45, 0x8e36, 0x8e3c, 0x8e3d, 0x8e41, 0x8e30, 0x8e3f, - 0x8ebd, 0x8f36, 0x8f2e, 0x8f35, 0x8f32, 0x8f39, 0x8f37, 0x8f34, - 0x9076, 0x9079, 0x907b, 0x9086, 0x90fa, 0x9133, 0x9135, 0x9136, - 0x9193, 0x9190, 0x9191, 0x918d, 0x918f, 0x9327, 0x931e, 0x9308, - 0x931f, 0x9306, 0x930f, 0x937a, 0x9338, 0x933c, 0x931b, 0x9323, - 0x9312, 0x9301, 0x9346, 0x932d, 0x930e, 0x930d, 0x92cb, 0x931d, - 0x92fa, 0x9325, 0x9313, 0x92f9, 0x92f7, 0x9334, 0x9302, 0x9324, - 0x92ff, 0x9329, 0x9339, 0x9335, 0x932a, 0x9314, 0x930c, 0x003f, - /* lead byte ec */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x930b, 0x92fe, 0x9309, 0x9300, 0x92fb, 0x9316, 0x95bc, 0x95cd, - 0x95be, 0x95b9, 0x95ba, 0x95b6, 0x95bf, 0x95b5, 0x95bd, 0x96a9, - 0x96d4, 0x970b, 0x9712, 0x9710, 0x9799, 0x9797, 0x9794, 0x97f0, - 0x97f8, 0x9835, 0x982f, 0x9832, 0x9924, 0x991f, 0x9927, 0x9929, - 0x999e, 0x99ee, 0x99ec, 0x99e5, 0x99e4, 0x99f0, 0x99e3, 0x99ea, - 0x99e9, 0x99e7, 0x9ab9, 0x9abf, 0x9ab4, 0x9abb, 0x9af6, 0x9afa, - 0x9af9, 0x9af7, 0x9b33, 0x9b80, 0x9b85, 0x9b87, 0x9b7c, 0x9b7e, - 0x9b7b, 0x9b82, 0x9b93, 0x9b92, 0x9b90, 0x9b7a, 0x9b95, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9b7d, 0x9b88, 0x9d25, 0x9d17, 0x9d20, 0x9d1e, 0x9d14, - 0x9d29, 0x9d1d, 0x9d18, 0x9d22, 0x9d10, 0x9d19, 0x9d1f, 0x9e88, - 0x9e86, 0x9e87, 0x9eae, 0x9ead, 0x9ed5, 0x9ed6, 0x9efa, 0x9f12, - 0x9f3d, 0x5126, 0x5125, 0x5122, 0x5124, 0x5120, 0x5129, 0x52f4, - 0x5693, 0x568c, 0x568d, 0x5686, 0x5684, 0x5683, 0x567e, 0x5682, - 0x567f, 0x5681, 0x58d6, 0x58d4, 0x58cf, 0x58d2, 0x5b2d, 0x5b25, - 0x5b32, 0x5b23, 0x5b2c, 0x5b27, 0x5b26, 0x5b2f, 0x5b2e, 0x5b7b, - 0x5bf1, 0x5bf2, 0x5db7, 0x5e6c, 0x5e6a, 0x5fbe, 0x5fbb, 0x61c3, - 0x61b5, 0x61bc, 0x61e7, 0x61e0, 0x61e5, 0x61e4, 0x61e8, 0x61de, - 0x64ef, 0x64e9, 0x64e3, 0x64eb, 0x64e4, 0x64e8, 0x6581, 0x6580, - 0x65b6, 0x65da, 0x66d2, 0x6a8d, 0x6a96, 0x6a81, 0x6aa5, 0x6a89, - 0x6a9f, 0x6a9b, 0x6aa1, 0x6a9e, 0x6a87, 0x6a93, 0x6a8e, 0x003f, - /* lead byte ed */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x6a95, 0x6a83, 0x6aa8, 0x6aa4, 0x6a91, 0x6a7f, 0x6aa6, 0x6a9a, - 0x6a85, 0x6a8c, 0x6a92, 0x6b5b, 0x6bad, 0x6c09, 0x6fcc, 0x6fa9, - 0x6ff4, 0x6fd4, 0x6fe3, 0x6fdc, 0x6fed, 0x6fe7, 0x6fe6, 0x6fde, - 0x6ff2, 0x6fdd, 0x6fe2, 0x6fe8, 0x71e1, 0x71f1, 0x71e8, 0x71f2, - 0x71e4, 0x71f0, 0x71e2, 0x7373, 0x736e, 0x736f, 0x7497, 0x74b2, - 0x74ab, 0x7490, 0x74aa, 0x74ad, 0x74b1, 0x74a5, 0x74af, 0x7510, - 0x7511, 0x7512, 0x750f, 0x7584, 0x7643, 0x7648, 0x7649, 0x7647, - 0x76a4, 0x76e9, 0x77b5, 0x77ab, 0x77b2, 0x77b7, 0x77b6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x77b4, 0x77b1, 0x77a8, 0x77f0, 0x78f3, 0x78fd, 0x7902, - 0x78fb, 0x78fc, 0x78f2, 0x7905, 0x78f9, 0x78fe, 0x7904, 0x79ab, - 0x79a8, 0x7a5c, 0x7a5b, 0x7a56, 0x7a58, 0x7a54, 0x7a5a, 0x7abe, - 0x7ac0, 0x7ac1, 0x7c05, 0x7c0f, 0x7bf2, 0x7c00, 0x7bff, 0x7bfb, - 0x7c0e, 0x7bf4, 0x7c0b, 0x7bf3, 0x7c02, 0x7c09, 0x7c03, 0x7c01, - 0x7bf8, 0x7bfd, 0x7c06, 0x7bf0, 0x7bf1, 0x7c10, 0x7c0a, 0x7ce8, - 0x7e2d, 0x7e3c, 0x7e42, 0x7e33, 0x9848, 0x7e38, 0x7e2a, 0x7e49, - 0x7e40, 0x7e47, 0x7e29, 0x7e4c, 0x7e30, 0x7e3b, 0x7e36, 0x7e44, - 0x7e3a, 0x7f45, 0x7f7f, 0x7f7e, 0x7f7d, 0x7ff4, 0x7ff2, 0x802c, - 0x81bb, 0x81c4, 0x81cc, 0x81ca, 0x81c5, 0x81c7, 0x81bc, 0x81e9, - 0x825b, 0x825a, 0x825c, 0x8583, 0x8580, 0x858f, 0x85a7, 0x8595, - 0x85a0, 0x858b, 0x85a3, 0x857b, 0x85a4, 0x859a, 0x859e, 0x003f, - /* lead byte ee */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8577, 0x857c, 0x8589, 0x85a1, 0x857a, 0x8578, 0x8557, 0x858e, - 0x8596, 0x8586, 0x858d, 0x8599, 0x859d, 0x8581, 0x85a2, 0x8582, - 0x8588, 0x8585, 0x8579, 0x8576, 0x8598, 0x8590, 0x859f, 0x8668, - 0x87be, 0x87aa, 0x87ad, 0x87c5, 0x87b0, 0x87ac, 0x87b9, 0x87b5, - 0x87bc, 0x87ae, 0x87c9, 0x87c3, 0x87c2, 0x87cc, 0x87b7, 0x87af, - 0x87c4, 0x87ca, 0x87b4, 0x87b6, 0x87bf, 0x87b8, 0x87bd, 0x87de, - 0x87b2, 0x8935, 0x8933, 0x893c, 0x893e, 0x8941, 0x8952, 0x8937, - 0x8942, 0x89ad, 0x89af, 0x89ae, 0x89f2, 0x89f3, 0x8b1e, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x8b18, 0x8b16, 0x8b11, 0x8b05, 0x8b0b, 0x8b22, 0x8b0f, - 0x8b12, 0x8b15, 0x8b07, 0x8b0d, 0x8b08, 0x8b06, 0x8b1c, 0x8b13, - 0x8b1a, 0x8c4f, 0x8c70, 0x8c72, 0x8c71, 0x8c6f, 0x8c95, 0x8c94, - 0x8cf9, 0x8d6f, 0x8e4e, 0x8e4d, 0x8e53, 0x8e50, 0x8e4c, 0x8e47, - 0x8f43, 0x8f40, 0x9085, 0x907e, 0x9138, 0x919a, 0x91a2, 0x919b, - 0x9199, 0x919f, 0x91a1, 0x919d, 0x91a0, 0x93a1, 0x9383, 0x93af, - 0x9364, 0x9356, 0x9347, 0x937c, 0x9358, 0x935c, 0x9376, 0x9349, - 0x9350, 0x9351, 0x9360, 0x936d, 0x938f, 0x934c, 0x936a, 0x9379, - 0x9357, 0x9355, 0x9352, 0x934f, 0x9371, 0x9377, 0x937b, 0x9361, - 0x935e, 0x9363, 0x9367, 0x9380, 0x934e, 0x9359, 0x95c7, 0x95c0, - 0x95c9, 0x95c3, 0x95c5, 0x95b7, 0x96ae, 0x96b0, 0x96ac, 0x9720, - 0x971f, 0x9718, 0x971d, 0x9719, 0x979a, 0x97a1, 0x979c, 0x003f, - /* lead byte ef */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x979e, 0x979d, 0x97d5, 0x97d4, 0x97f1, 0x9841, 0x9844, 0x984a, - 0x9849, 0x9845, 0x9843, 0x9925, 0x992b, 0x992c, 0x992a, 0x9933, - 0x9932, 0x992f, 0x992d, 0x9931, 0x9930, 0x9998, 0x99a3, 0x99a1, - 0x9a02, 0x99fa, 0x99f4, 0x99f7, 0x99f9, 0x99f8, 0x99f6, 0x99fb, - 0x99fd, 0x99fe, 0x99fc, 0x9a03, 0x9abe, 0x9afe, 0x9afd, 0x9b01, - 0x9afc, 0x9b48, 0x9b9a, 0x9ba8, 0x9b9e, 0x9b9b, 0x9ba6, 0x9ba1, - 0x9ba5, 0x9ba4, 0x9b86, 0x9ba2, 0x9ba0, 0x9baf, 0x9d33, 0x9d41, - 0x9d67, 0x9d36, 0x9d2e, 0x9d2f, 0x9d31, 0x9d38, 0x9d30, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9d45, 0x9d42, 0x9d43, 0x9d3e, 0x9d37, 0x9d40, 0x9d3d, - 0x7ff5, 0x9d2d, 0x9e8a, 0x9e89, 0x9e8d, 0x9eb0, 0x9ec8, 0x9eda, - 0x9efb, 0x9eff, 0x9f24, 0x9f23, 0x9f22, 0x9f54, 0x9fa0, 0x5131, - 0x512d, 0x512e, 0x5698, 0x569c, 0x5697, 0x569a, 0x569d, 0x5699, - 0x5970, 0x5b3c, 0x5c69, 0x5c6a, 0x5dc0, 0x5e6d, 0x5e6e, 0x61d8, - 0x61df, 0x61ed, 0x61ee, 0x61f1, 0x61ea, 0x61f0, 0x61eb, 0x61d6, - 0x61e9, 0x64ff, 0x6504, 0x64fd, 0x64f8, 0x6501, 0x6503, 0x64fc, - 0x6594, 0x65db, 0x66da, 0x66db, 0x66d8, 0x6ac5, 0x6ab9, 0x6abd, - 0x6ae1, 0x6ac6, 0x6aba, 0x6ab6, 0x6ab7, 0x6ac7, 0x6ab4, 0x6aad, - 0x6b5e, 0x6bc9, 0x6c0b, 0x7007, 0x700c, 0x700d, 0x7001, 0x7005, - 0x7014, 0x700e, 0x6fff, 0x7000, 0x6ffb, 0x7026, 0x6ffc, 0x6ff7, - 0x700a, 0x7201, 0x71ff, 0x71f9, 0x7203, 0x71fd, 0x7376, 0x003f, - /* lead byte f0 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x74b8, 0x74c0, 0x74b5, 0x74c1, 0x74be, 0x74b6, 0x74bb, 0x74c2, - 0x7514, 0x7513, 0x765c, 0x7664, 0x7659, 0x7650, 0x7653, 0x7657, - 0x765a, 0x76a6, 0x76bd, 0x76ec, 0x77c2, 0x77ba, 0x78ff, 0x790c, - 0x7913, 0x7914, 0x7909, 0x7910, 0x7912, 0x7911, 0x79ad, 0x79ac, - 0x7a5f, 0x7c1c, 0x7c29, 0x7c19, 0x7c20, 0x7c1f, 0x7c2d, 0x7c1d, - 0x7c26, 0x7c28, 0x7c22, 0x7c25, 0x7c30, 0x7e5c, 0x7e50, 0x7e56, - 0x7e63, 0x7e58, 0x7e62, 0x7e5f, 0x7e51, 0x7e60, 0x7e57, 0x7e53, - 0x7fb5, 0x7fb3, 0x7ff7, 0x7ff8, 0x8075, 0x81d1, 0x81d2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x81d0, 0x825f, 0x825e, 0x85b4, 0x85c6, 0x85c0, 0x85c3, - 0x85c2, 0x85b3, 0x85b5, 0x85bd, 0x85c7, 0x85c4, 0x85bf, 0x85cb, - 0x85ce, 0x85c8, 0x85c5, 0x85b1, 0x85b6, 0x85d2, 0x8624, 0x85b8, - 0x85b7, 0x85be, 0x8669, 0x87e7, 0x87e6, 0x87e2, 0x87db, 0x87eb, - 0x87ea, 0x87e5, 0x87df, 0x87f3, 0x87e4, 0x87d4, 0x87dc, 0x87d3, - 0x87ed, 0x87d8, 0x87e3, 0x87a4, 0x87d7, 0x87d9, 0x8801, 0x87f4, - 0x87e8, 0x87dd, 0x8953, 0x894b, 0x894f, 0x894c, 0x8946, 0x8950, - 0x8951, 0x8949, 0x8b2a, 0x8b27, 0x8b23, 0x8b33, 0x8b30, 0x8b35, - 0x8b47, 0x8b2f, 0x8b3c, 0x8b3e, 0x8b31, 0x8b25, 0x8b37, 0x8b26, - 0x8b36, 0x8b2e, 0x8b24, 0x8b3b, 0x8b3d, 0x8b3a, 0x8c42, 0x8c75, - 0x8c99, 0x8c98, 0x8c97, 0x8cfe, 0x8d04, 0x8d02, 0x8d00, 0x8e5c, - 0x8e62, 0x8e60, 0x8e57, 0x8e56, 0x8e5e, 0x8e65, 0x8e67, 0x003f, - /* lead byte f1 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8e5b, 0x8e5a, 0x8e61, 0x8e5d, 0x8e69, 0x8e54, 0x8f46, 0x8f47, - 0x8f48, 0x8f4b, 0x9128, 0x913a, 0x913b, 0x913e, 0x91a8, 0x91a5, - 0x91a7, 0x91af, 0x91aa, 0x93b5, 0x938c, 0x9392, 0x93b7, 0x939b, - 0x939d, 0x9389, 0x93a7, 0x938e, 0x93aa, 0x939e, 0x93a6, 0x9395, - 0x9388, 0x9399, 0x939f, 0x938d, 0x93b1, 0x9391, 0x93b2, 0x93a4, - 0x93a8, 0x93b4, 0x93a3, 0x93a5, 0x95d2, 0x95d3, 0x95d1, 0x96b3, - 0x96d7, 0x96da, 0x5dc2, 0x96df, 0x96d8, 0x96dd, 0x9723, 0x9722, - 0x9725, 0x97ac, 0x97ae, 0x97a8, 0x97ab, 0x97a4, 0x97aa, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x97a2, 0x97a5, 0x97d7, 0x97d9, 0x97d6, 0x97d8, 0x97fa, - 0x9850, 0x9851, 0x9852, 0x98b8, 0x9941, 0x993c, 0x993a, 0x9a0f, - 0x9a0b, 0x9a09, 0x9a0d, 0x9a04, 0x9a11, 0x9a0a, 0x9a05, 0x9a07, - 0x9a06, 0x9ac0, 0x9adc, 0x9b08, 0x9b04, 0x9b05, 0x9b29, 0x9b35, - 0x9b4a, 0x9b4c, 0x9b4b, 0x9bc7, 0x9bc6, 0x9bc3, 0x9bbf, 0x9bc1, - 0x9bb5, 0x9bb8, 0x9bd3, 0x9bb6, 0x9bc4, 0x9bb9, 0x9bbd, 0x9d5c, - 0x9d53, 0x9d4f, 0x9d4a, 0x9d5b, 0x9d4b, 0x9d59, 0x9d56, 0x9d4c, - 0x9d57, 0x9d52, 0x9d54, 0x9d5f, 0x9d58, 0x9d5a, 0x9e8e, 0x9e8c, - 0x9edf, 0x9f01, 0x9f00, 0x9f16, 0x9f25, 0x9f2b, 0x9f2a, 0x9f29, - 0x9f28, 0x9f4c, 0x9f55, 0x5134, 0x5135, 0x5296, 0x52f7, 0x53b4, - 0x56ab, 0x56ad, 0x56a6, 0x56a7, 0x56aa, 0x56ac, 0x58da, 0x58dd, - 0x58db, 0x5912, 0x5b3d, 0x5b3e, 0x5b3f, 0x5dc3, 0x5e70, 0x003f, - /* lead byte f2 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x5fbf, 0x61fb, 0x6507, 0x6510, 0x650d, 0x6509, 0x650c, 0x650e, - 0x6584, 0x65de, 0x65dd, 0x66de, 0x6ae7, 0x6ae0, 0x6acc, 0x6ad1, - 0x6ad9, 0x6acb, 0x6adf, 0x6adc, 0x6ad0, 0x6aeb, 0x6acf, 0x6acd, - 0x6ade, 0x6b60, 0x6bb0, 0x6c0c, 0x7019, 0x7027, 0x7020, 0x7016, - 0x702b, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017, 0x7024, 0x701c, - 0x702a, 0x720c, 0x720a, 0x7207, 0x7202, 0x7205, 0x72a5, 0x72a6, - 0x72a4, 0x72a3, 0x72a1, 0x74cb, 0x74c5, 0x74b7, 0x74c3, 0x7516, - 0x7660, 0x77c9, 0x77ca, 0x77c4, 0x77f1, 0x791d, 0x791b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x7921, 0x791c, 0x7917, 0x791e, 0x79b0, 0x7a67, 0x7a68, - 0x7c33, 0x7c3c, 0x7c39, 0x7c2c, 0x7c3b, 0x7cec, 0x7cea, 0x7e76, - 0x7e75, 0x7e78, 0x7e70, 0x7e77, 0x7e6f, 0x7e7a, 0x7e72, 0x7e74, - 0x7e68, 0x7f4b, 0x7f4a, 0x7f83, 0x7f86, 0x7fb7, 0x7ffd, 0x7ffe, - 0x8078, 0x81d7, 0x81d5, 0x8264, 0x8261, 0x8263, 0x85eb, 0x85f1, - 0x85ed, 0x85d9, 0x85e1, 0x85e8, 0x85da, 0x85d7, 0x85ec, 0x85f2, - 0x85f8, 0x85d8, 0x85df, 0x85e3, 0x85dc, 0x85d1, 0x85f0, 0x85e6, - 0x85ef, 0x85de, 0x85e2, 0x8800, 0x87fa, 0x8803, 0x87f6, 0x87f7, - 0x8809, 0x880c, 0x880b, 0x8806, 0x87fc, 0x8808, 0x87ff, 0x880a, - 0x8802, 0x8962, 0x895a, 0x895b, 0x8957, 0x8961, 0x895c, 0x8958, - 0x895d, 0x8959, 0x8988, 0x89b7, 0x89b6, 0x89f6, 0x8b50, 0x8b48, - 0x8b4a, 0x8b40, 0x8b53, 0x8b56, 0x8b54, 0x8b4b, 0x8b55, 0x003f, - /* lead byte f3 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8b51, 0x8b42, 0x8b52, 0x8b57, 0x8c43, 0x8c77, 0x8c76, 0x8c9a, - 0x8d06, 0x8d07, 0x8d09, 0x8dac, 0x8daa, 0x8dad, 0x8dab, 0x8e6d, - 0x8e78, 0x8e73, 0x8e6a, 0x8e6f, 0x8e7b, 0x8ec2, 0x8f52, 0x8f51, - 0x8f4f, 0x8f50, 0x8f53, 0x8fb4, 0x9140, 0x913f, 0x91b0, 0x91ad, - 0x93de, 0x93c7, 0x93cf, 0x93c2, 0x93da, 0x93d0, 0x93f9, 0x93ec, - 0x93cc, 0x93d9, 0x93a9, 0x93e6, 0x93ca, 0x93d4, 0x93ee, 0x93e3, - 0x93d5, 0x93c4, 0x93ce, 0x93c0, 0x93d2, 0x93e7, 0x957d, 0x95da, - 0x95db, 0x96e1, 0x9729, 0x972b, 0x972c, 0x9728, 0x9726, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x97b3, 0x97b7, 0x97b6, 0x97dd, 0x97de, 0x97df, 0x985c, - 0x9859, 0x985d, 0x9857, 0x98bf, 0x98bd, 0x98bb, 0x98be, 0x9948, - 0x9947, 0x9943, 0x99a6, 0x99a7, 0x9a1a, 0x9a15, 0x9a25, 0x9a1d, - 0x9a24, 0x9a1b, 0x9a22, 0x9a20, 0x9a27, 0x9a23, 0x9a1e, 0x9a1c, - 0x9a14, 0x9ac2, 0x9b0b, 0x9b0a, 0x9b0e, 0x9b0c, 0x9b37, 0x9bea, - 0x9beb, 0x9be0, 0x9bde, 0x9be4, 0x9be6, 0x9be2, 0x9bf0, 0x9bd4, - 0x9bd7, 0x9bec, 0x9bdc, 0x9bd9, 0x9be5, 0x9bd5, 0x9be1, 0x9bda, - 0x9d77, 0x9d81, 0x9d8a, 0x9d84, 0x9d88, 0x9d71, 0x9d80, 0x9d78, - 0x9d86, 0x9d8b, 0x9d8c, 0x9d7d, 0x9d6b, 0x9d74, 0x9d75, 0x9d70, - 0x9d69, 0x9d85, 0x9d73, 0x9d7b, 0x9d82, 0x9d6f, 0x9d79, 0x9d7f, - 0x9d87, 0x9d68, 0x9e94, 0x9e91, 0x9ec0, 0x9efc, 0x9f2d, 0x9f40, - 0x9f41, 0x9f4d, 0x9f56, 0x9f57, 0x9f58, 0x5337, 0x56b2, 0x003f, - /* lead byte f4 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x56b5, 0x56b3, 0x58e3, 0x5b45, 0x5dc6, 0x5dc7, 0x5eee, 0x5eef, - 0x5fc0, 0x5fc1, 0x61f9, 0x6517, 0x6516, 0x6515, 0x6513, 0x65df, - 0x66e8, 0x66e3, 0x66e4, 0x6af3, 0x6af0, 0x6aea, 0x6ae8, 0x6af9, - 0x6af1, 0x6aee, 0x6aef, 0x703c, 0x7035, 0x702f, 0x7037, 0x7034, - 0x7031, 0x7042, 0x7038, 0x703f, 0x703a, 0x7039, 0x7040, 0x703b, - 0x7033, 0x7041, 0x7213, 0x7214, 0x72a8, 0x737d, 0x737c, 0x74ba, - 0x76ab, 0x76aa, 0x76be, 0x76ed, 0x77cc, 0x77ce, 0x77cf, 0x77cd, - 0x77f2, 0x7925, 0x7923, 0x7927, 0x7928, 0x7924, 0x7929, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x79b2, 0x7a6e, 0x7a6c, 0x7a6d, 0x7af7, 0x7c49, 0x7c48, - 0x7c4a, 0x7c47, 0x7c45, 0x7cee, 0x7e7b, 0x7e7e, 0x7e81, 0x7e80, - 0x7fba, 0x7fff, 0x8079, 0x81db, 0x81d9, 0x820b, 0x8268, 0x8269, - 0x8622, 0x85ff, 0x8601, 0x85fe, 0x861b, 0x8600, 0x85f6, 0x8604, - 0x8609, 0x8605, 0x860c, 0x85fd, 0x8819, 0x8810, 0x8811, 0x8817, - 0x8813, 0x8816, 0x8963, 0x8966, 0x89b9, 0x89f7, 0x8b60, 0x8b6a, - 0x8b5d, 0x8b68, 0x8b63, 0x8b65, 0x8b67, 0x8b6d, 0x8dae, 0x8e86, - 0x8e88, 0x8e84, 0x8f59, 0x8f56, 0x8f57, 0x8f55, 0x8f58, 0x8f5a, - 0x908d, 0x9143, 0x9141, 0x91b7, 0x91b5, 0x91b2, 0x91b3, 0x940b, - 0x9413, 0x93fb, 0x9420, 0x940f, 0x9414, 0x93fe, 0x9415, 0x9410, - 0x9428, 0x9419, 0x940d, 0x93f5, 0x9400, 0x93f7, 0x9407, 0x940e, - 0x9416, 0x9412, 0x93fa, 0x9409, 0x93f8, 0x940a, 0x93ff, 0x003f, - /* lead byte f5 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x93fc, 0x940c, 0x93f6, 0x9411, 0x9406, 0x95de, 0x95e0, 0x95df, - 0x972e, 0x972f, 0x97b9, 0x97bb, 0x97fd, 0x97fe, 0x9860, 0x9862, - 0x9863, 0x985f, 0x98c1, 0x98c2, 0x9950, 0x994e, 0x9959, 0x994c, - 0x994b, 0x9953, 0x9a32, 0x9a34, 0x9a31, 0x9a2c, 0x9a2a, 0x9a36, - 0x9a29, 0x9a2e, 0x9a38, 0x9a2d, 0x9ac7, 0x9aca, 0x9ac6, 0x9b10, - 0x9b12, 0x9b11, 0x9c0b, 0x9c08, 0x9bf7, 0x9c05, 0x9c12, 0x9bf8, - 0x9c40, 0x9c07, 0x9c0e, 0x9c06, 0x9c17, 0x9c14, 0x9c09, 0x9d9f, - 0x9d99, 0x9da4, 0x9d9d, 0x9d92, 0x9d98, 0x9d90, 0x9d9b, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9da0, 0x9d94, 0x9d9c, 0x9daa, 0x9d97, 0x9da1, 0x9d9a, - 0x9da2, 0x9da8, 0x9d9e, 0x9da3, 0x9dbf, 0x9da9, 0x9d96, 0x9da6, - 0x9da7, 0x9e99, 0x9e9b, 0x9e9a, 0x9ee5, 0x9ee4, 0x9ee7, 0x9ee6, - 0x9f30, 0x9f2e, 0x9f5b, 0x9f60, 0x9f5e, 0x9f5d, 0x9f59, 0x9f91, - 0x513a, 0x5139, 0x5298, 0x5297, 0x56c3, 0x56bd, 0x56be, 0x5b48, - 0x5b47, 0x5dcb, 0x5dcf, 0x5ef1, 0x61fd, 0x651b, 0x6b02, 0x6afc, - 0x6b03, 0x6af8, 0x6b00, 0x7043, 0x7044, 0x704a, 0x7048, 0x7049, - 0x7045, 0x7046, 0x721d, 0x721a, 0x7219, 0x737e, 0x7517, 0x766a, - 0x77d0, 0x792d, 0x7931, 0x792f, 0x7c54, 0x7c53, 0x7cf2, 0x7e8a, - 0x7e87, 0x7e88, 0x7e8b, 0x7e86, 0x7e8d, 0x7f4d, 0x7fbb, 0x8030, - 0x81dd, 0x8618, 0x862a, 0x8626, 0x861f, 0x8623, 0x861c, 0x8619, - 0x8627, 0x862e, 0x8621, 0x8620, 0x8629, 0x861e, 0x8625, 0x003f, - /* lead byte f6 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8829, 0x881d, 0x881b, 0x8820, 0x8824, 0x881c, 0x882b, 0x884a, - 0x896d, 0x8969, 0x896e, 0x896b, 0x89fa, 0x8b79, 0x8b78, 0x8b45, - 0x8b7a, 0x8b7b, 0x8d10, 0x8d14, 0x8daf, 0x8e8e, 0x8e8c, 0x8f5e, - 0x8f5b, 0x8f5d, 0x9146, 0x9144, 0x9145, 0x91b9, 0x943f, 0x943b, - 0x9436, 0x9429, 0x943d, 0x943c, 0x9430, 0x9439, 0x942a, 0x9437, - 0x942c, 0x9440, 0x9431, 0x95e5, 0x95e4, 0x95e3, 0x9735, 0x973a, - 0x97bf, 0x97e1, 0x9864, 0x98c9, 0x98c6, 0x98c0, 0x9958, 0x9956, - 0x9a39, 0x9a3d, 0x9a46, 0x9a44, 0x9a42, 0x9a41, 0x9a3a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9a3f, 0x9acd, 0x9b15, 0x9b17, 0x9b18, 0x9b16, 0x9b3a, - 0x9b52, 0x9c2b, 0x9c1d, 0x9c1c, 0x9c2c, 0x9c23, 0x9c28, 0x9c29, - 0x9c24, 0x9c21, 0x9db7, 0x9db6, 0x9dbc, 0x9dc1, 0x9dc7, 0x9dca, - 0x9dcf, 0x9dbe, 0x9dc5, 0x9dc3, 0x9dbb, 0x9db5, 0x9dce, 0x9db9, - 0x9dba, 0x9dac, 0x9dc8, 0x9db1, 0x9dad, 0x9dcc, 0x9db3, 0x9dcd, - 0x9db2, 0x9e7a, 0x9e9c, 0x9eeb, 0x9eee, 0x9eed, 0x9f1b, 0x9f18, - 0x9f1a, 0x9f31, 0x9f4e, 0x9f65, 0x9f64, 0x9f92, 0x4eb9, 0x56c6, - 0x56c5, 0x56cb, 0x5971, 0x5b4b, 0x5b4c, 0x5dd5, 0x5dd1, 0x5ef2, - 0x6521, 0x6520, 0x6526, 0x6522, 0x6b0b, 0x6b08, 0x6b09, 0x6c0d, - 0x7055, 0x7056, 0x7057, 0x7052, 0x721e, 0x721f, 0x72a9, 0x737f, - 0x74d8, 0x74d5, 0x74d9, 0x74d7, 0x766d, 0x76ad, 0x7935, 0x79b4, - 0x7a70, 0x7a71, 0x7c57, 0x7c5c, 0x7c59, 0x7c5b, 0x7c5a, 0x003f, - /* lead byte f7 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7cf4, 0x7cf1, 0x7e91, 0x7f4f, 0x7f87, 0x81de, 0x826b, 0x8634, - 0x8635, 0x8633, 0x862c, 0x8632, 0x8636, 0x882c, 0x8828, 0x8826, - 0x882a, 0x8825, 0x8971, 0x89bf, 0x89be, 0x89fb, 0x8b7e, 0x8b84, - 0x8b82, 0x8b86, 0x8b85, 0x8b7f, 0x8d15, 0x8e95, 0x8e94, 0x8e9a, - 0x8e92, 0x8e90, 0x8e96, 0x8e97, 0x8f60, 0x8f62, 0x9147, 0x944c, - 0x9450, 0x944a, 0x944b, 0x944f, 0x9447, 0x9445, 0x9448, 0x9449, - 0x9446, 0x973f, 0x97e3, 0x986a, 0x9869, 0x98cb, 0x9954, 0x995b, - 0x9a4e, 0x9a53, 0x9a54, 0x9a4c, 0x9a4f, 0x9a48, 0x9a4a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9a49, 0x9a52, 0x9a50, 0x9ad0, 0x9b19, 0x9b2b, 0x9b3b, - 0x9b56, 0x9b55, 0x9c46, 0x9c48, 0x9c3f, 0x9c44, 0x9c39, 0x9c33, - 0x9c41, 0x9c3c, 0x9c37, 0x9c34, 0x9c32, 0x9c3d, 0x9c36, 0x9ddb, - 0x9dd2, 0x9dde, 0x9dda, 0x9dcb, 0x9dd0, 0x9ddc, 0x9dd1, 0x9ddf, - 0x9de9, 0x9dd9, 0x9dd8, 0x9dd6, 0x9df5, 0x9dd5, 0x9ddd, 0x9eb6, - 0x9ef0, 0x9f35, 0x9f33, 0x9f32, 0x9f42, 0x9f6b, 0x9f95, 0x9fa2, - 0x513d, 0x5299, 0x58e8, 0x58e7, 0x5972, 0x5b4d, 0x5dd8, 0x882f, - 0x5f4f, 0x6201, 0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66eb, - 0x6b11, 0x6b12, 0x6b0f, 0x6bca, 0x705b, 0x705a, 0x7222, 0x7382, - 0x7381, 0x7383, 0x7670, 0x77d4, 0x7c67, 0x7c66, 0x7e95, 0x826c, - 0x863a, 0x8640, 0x8639, 0x863c, 0x8631, 0x863b, 0x863e, 0x8830, - 0x8832, 0x882e, 0x8833, 0x8976, 0x8974, 0x8973, 0x89fe, 0x003f, - /* lead byte f8 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x8b8c, 0x8b8e, 0x8b8b, 0x8b88, 0x8c45, 0x8d19, 0x8e98, 0x8f64, - 0x8f63, 0x91bc, 0x9462, 0x9455, 0x945d, 0x9457, 0x945e, 0x97c4, - 0x97c5, 0x9800, 0x9a56, 0x9a59, 0x9b1e, 0x9b1f, 0x9b20, 0x9c52, - 0x9c58, 0x9c50, 0x9c4a, 0x9c4d, 0x9c4b, 0x9c55, 0x9c59, 0x9c4c, - 0x9c4e, 0x9dfb, 0x9df7, 0x9def, 0x9de3, 0x9deb, 0x9df8, 0x9de4, - 0x9df6, 0x9de1, 0x9dee, 0x9de6, 0x9df2, 0x9df0, 0x9de2, 0x9dec, - 0x9df4, 0x9df3, 0x9de8, 0x9ded, 0x9ec2, 0x9ed0, 0x9ef2, 0x9ef3, - 0x9f06, 0x9f1c, 0x9f38, 0x9f37, 0x9f36, 0x9f43, 0x9f4f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9f71, 0x9f70, 0x9f6e, 0x9f6f, 0x56d3, 0x56cd, 0x5b4e, - 0x5c6d, 0x652d, 0x66ed, 0x66ee, 0x6b13, 0x705f, 0x7061, 0x705d, - 0x7060, 0x7223, 0x74db, 0x74e5, 0x77d5, 0x7938, 0x79b7, 0x79b6, - 0x7c6a, 0x7e97, 0x7f89, 0x826d, 0x8643, 0x8838, 0x8837, 0x8835, - 0x884b, 0x8b94, 0x8b95, 0x8e9e, 0x8e9f, 0x8ea0, 0x8e9d, 0x91be, - 0x91bd, 0x91c2, 0x946b, 0x9468, 0x9469, 0x96e5, 0x9746, 0x9743, - 0x9747, 0x97c7, 0x97e5, 0x9a5e, 0x9ad5, 0x9b59, 0x9c63, 0x9c67, - 0x9c66, 0x9c62, 0x9c5e, 0x9c60, 0x9e02, 0x9dfe, 0x9e07, 0x9e03, - 0x9e06, 0x9e05, 0x9e00, 0x9e01, 0x9e09, 0x9dff, 0x9dfd, 0x9e04, - 0x9ea0, 0x9f1e, 0x9f46, 0x9f74, 0x9f75, 0x9f76, 0x56d4, 0x652e, - 0x65b8, 0x6b18, 0x6b19, 0x6b17, 0x6b1a, 0x7062, 0x7226, 0x72aa, - 0x77d8, 0x77d9, 0x7939, 0x7c69, 0x7c6b, 0x7cf6, 0x7e9a, 0x003f, - /* lead byte f9 */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x7e98, 0x7e9b, 0x7e99, 0x81e0, 0x81e1, 0x8646, 0x8647, 0x8648, - 0x8979, 0x897a, 0x897c, 0x897b, 0x89ff, 0x8b98, 0x8b99, 0x8ea5, - 0x8ea4, 0x8ea3, 0x946e, 0x946d, 0x946f, 0x9471, 0x9473, 0x9749, - 0x9872, 0x995f, 0x9c68, 0x9c6e, 0x9c6d, 0x9e0b, 0x9e0d, 0x9e10, - 0x9e0f, 0x9e12, 0x9e11, 0x9ea1, 0x9ef5, 0x9f09, 0x9f47, 0x9f78, - 0x9f7b, 0x9f7a, 0x9f79, 0x571e, 0x7066, 0x7c6f, 0x883c, 0x8db2, - 0x8ea6, 0x91c3, 0x9474, 0x9478, 0x9476, 0x9475, 0x9a60, 0x9c74, - 0x9c73, 0x9c71, 0x9c75, 0x9e14, 0x9e13, 0x9ef6, 0x9f0a, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x9fa4, 0x7068, 0x7065, 0x7cf7, 0x866a, 0x883e, 0x883d, - 0x883f, 0x8b9e, 0x8c9c, 0x8ea9, 0x8ec9, 0x974b, 0x9873, 0x9874, - 0x98cc, 0x9961, 0x99ab, 0x9a64, 0x9a66, 0x9a67, 0x9b24, 0x9e15, - 0x9e17, 0x9f48, 0x6207, 0x6b1e, 0x7227, 0x864c, 0x8ea8, 0x9482, - 0x9480, 0x9481, 0x9a69, 0x9a68, 0x9b2e, 0x9e19, 0x7229, 0x864b, - 0x8b9f, 0x9483, 0x9c79, 0x9eb7, 0x7675, 0x9a6b, 0x9c7a, 0x9e1d, - 0x7069, 0x706a, 0x9ea4, 0x9f7e, 0x9f49, 0x9f98, 0x7881, 0x92b9, - 0x88cf, 0x58bb, 0x6052, 0x7ca7, 0x5afa, 0x2554, 0x2566, 0x2557, - 0x2560, 0x256c, 0x2563, 0x255a, 0x2569, 0x255d, 0x2552, 0x2564, - 0x2555, 0x255e, 0x256a, 0x2561, 0x2558, 0x2567, 0x255b, 0x2553, - 0x2565, 0x2556, 0x255f, 0x256b, 0x2562, 0x2559, 0x2568, 0x255c, - 0x2551, 0x2550, 0x256d, 0x256e, 0x2570, 0x256f, 0x2593, 0x003f, - /* lead byte fa */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe000, 0xe001, 0xe002, 0xe003, 0xe004, 0xe005, 0xe006, 0xe007, - 0xe008, 0xe009, 0xe00a, 0xe00b, 0xe00c, 0xe00d, 0xe00e, 0xe00f, - 0xe010, 0xe011, 0xe012, 0xe013, 0xe014, 0xe015, 0xe016, 0xe017, - 0xe018, 0xe019, 0xe01a, 0xe01b, 0xe01c, 0xe01d, 0xe01e, 0xe01f, - 0xe020, 0xe021, 0xe022, 0xe023, 0xe024, 0xe025, 0xe026, 0xe027, - 0xe028, 0xe029, 0xe02a, 0xe02b, 0xe02c, 0xe02d, 0xe02e, 0xe02f, - 0xe030, 0xe031, 0xe032, 0xe033, 0xe034, 0xe035, 0xe036, 0xe037, - 0xe038, 0xe039, 0xe03a, 0xe03b, 0xe03c, 0xe03d, 0xe03e, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe03f, 0xe040, 0xe041, 0xe042, 0xe043, 0xe044, 0xe045, - 0xe046, 0xe047, 0xe048, 0xe049, 0xe04a, 0xe04b, 0xe04c, 0xe04d, - 0xe04e, 0xe04f, 0xe050, 0xe051, 0xe052, 0xe053, 0xe054, 0xe055, - 0xe056, 0xe057, 0xe058, 0xe059, 0xe05a, 0xe05b, 0xe05c, 0xe05d, - 0xe05e, 0xe05f, 0xe060, 0xe061, 0xe062, 0xe063, 0xe064, 0xe065, - 0xe066, 0xe067, 0xe068, 0xe069, 0xe06a, 0xe06b, 0xe06c, 0xe06d, - 0xe06e, 0xe06f, 0xe070, 0xe071, 0xe072, 0xe073, 0xe074, 0xe075, - 0xe076, 0xe077, 0xe078, 0xe079, 0xe07a, 0xe07b, 0xe07c, 0xe07d, - 0xe07e, 0xe07f, 0xe080, 0xe081, 0xe082, 0xe083, 0xe084, 0xe085, - 0xe086, 0xe087, 0xe088, 0xe089, 0xe08a, 0xe08b, 0xe08c, 0xe08d, - 0xe08e, 0xe08f, 0xe090, 0xe091, 0xe092, 0xe093, 0xe094, 0xe095, - 0xe096, 0xe097, 0xe098, 0xe099, 0xe09a, 0xe09b, 0xe09c, 0x003f, - /* lead byte fb */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe09d, 0xe09e, 0xe09f, 0xe0a0, 0xe0a1, 0xe0a2, 0xe0a3, 0xe0a4, - 0xe0a5, 0xe0a6, 0xe0a7, 0xe0a8, 0xe0a9, 0xe0aa, 0xe0ab, 0xe0ac, - 0xe0ad, 0xe0ae, 0xe0af, 0xe0b0, 0xe0b1, 0xe0b2, 0xe0b3, 0xe0b4, - 0xe0b5, 0xe0b6, 0xe0b7, 0xe0b8, 0xe0b9, 0xe0ba, 0xe0bb, 0xe0bc, - 0xe0bd, 0xe0be, 0xe0bf, 0xe0c0, 0xe0c1, 0xe0c2, 0xe0c3, 0xe0c4, - 0xe0c5, 0xe0c6, 0xe0c7, 0xe0c8, 0xe0c9, 0xe0ca, 0xe0cb, 0xe0cc, - 0xe0cd, 0xe0ce, 0xe0cf, 0xe0d0, 0xe0d1, 0xe0d2, 0xe0d3, 0xe0d4, - 0xe0d5, 0xe0d6, 0xe0d7, 0xe0d8, 0xe0d9, 0xe0da, 0xe0db, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe0dc, 0xe0dd, 0xe0de, 0xe0df, 0xe0e0, 0xe0e1, 0xe0e2, - 0xe0e3, 0xe0e4, 0xe0e5, 0xe0e6, 0xe0e7, 0xe0e8, 0xe0e9, 0xe0ea, - 0xe0eb, 0xe0ec, 0xe0ed, 0xe0ee, 0xe0ef, 0xe0f0, 0xe0f1, 0xe0f2, - 0xe0f3, 0xe0f4, 0xe0f5, 0xe0f6, 0xe0f7, 0xe0f8, 0xe0f9, 0xe0fa, - 0xe0fb, 0xe0fc, 0xe0fd, 0xe0fe, 0xe0ff, 0xe100, 0xe101, 0xe102, - 0xe103, 0xe104, 0xe105, 0xe106, 0xe107, 0xe108, 0xe109, 0xe10a, - 0xe10b, 0xe10c, 0xe10d, 0xe10e, 0xe10f, 0xe110, 0xe111, 0xe112, - 0xe113, 0xe114, 0xe115, 0xe116, 0xe117, 0xe118, 0xe119, 0xe11a, - 0xe11b, 0xe11c, 0xe11d, 0xe11e, 0xe11f, 0xe120, 0xe121, 0xe122, - 0xe123, 0xe124, 0xe125, 0xe126, 0xe127, 0xe128, 0xe129, 0xe12a, - 0xe12b, 0xe12c, 0xe12d, 0xe12e, 0xe12f, 0xe130, 0xe131, 0xe132, - 0xe133, 0xe134, 0xe135, 0xe136, 0xe137, 0xe138, 0xe139, 0x003f, - /* lead byte fc */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe13a, 0xe13b, 0xe13c, 0xe13d, 0xe13e, 0xe13f, 0xe140, 0xe141, - 0xe142, 0xe143, 0xe144, 0xe145, 0xe146, 0xe147, 0xe148, 0xe149, - 0xe14a, 0xe14b, 0xe14c, 0xe14d, 0xe14e, 0xe14f, 0xe150, 0xe151, - 0xe152, 0xe153, 0xe154, 0xe155, 0xe156, 0xe157, 0xe158, 0xe159, - 0xe15a, 0xe15b, 0xe15c, 0xe15d, 0xe15e, 0xe15f, 0xe160, 0xe161, - 0xe162, 0xe163, 0xe164, 0xe165, 0xe166, 0xe167, 0xe168, 0xe169, - 0xe16a, 0xe16b, 0xe16c, 0xe16d, 0xe16e, 0xe16f, 0xe170, 0xe171, - 0xe172, 0xe173, 0xe174, 0xe175, 0xe176, 0xe177, 0xe178, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe179, 0xe17a, 0xe17b, 0xe17c, 0xe17d, 0xe17e, 0xe17f, - 0xe180, 0xe181, 0xe182, 0xe183, 0xe184, 0xe185, 0xe186, 0xe187, - 0xe188, 0xe189, 0xe18a, 0xe18b, 0xe18c, 0xe18d, 0xe18e, 0xe18f, - 0xe190, 0xe191, 0xe192, 0xe193, 0xe194, 0xe195, 0xe196, 0xe197, - 0xe198, 0xe199, 0xe19a, 0xe19b, 0xe19c, 0xe19d, 0xe19e, 0xe19f, - 0xe1a0, 0xe1a1, 0xe1a2, 0xe1a3, 0xe1a4, 0xe1a5, 0xe1a6, 0xe1a7, - 0xe1a8, 0xe1a9, 0xe1aa, 0xe1ab, 0xe1ac, 0xe1ad, 0xe1ae, 0xe1af, - 0xe1b0, 0xe1b1, 0xe1b2, 0xe1b3, 0xe1b4, 0xe1b5, 0xe1b6, 0xe1b7, - 0xe1b8, 0xe1b9, 0xe1ba, 0xe1bb, 0xe1bc, 0xe1bd, 0xe1be, 0xe1bf, - 0xe1c0, 0xe1c1, 0xe1c2, 0xe1c3, 0xe1c4, 0xe1c5, 0xe1c6, 0xe1c7, - 0xe1c8, 0xe1c9, 0xe1ca, 0xe1cb, 0xe1cc, 0xe1cd, 0xe1ce, 0xe1cf, - 0xe1d0, 0xe1d1, 0xe1d2, 0xe1d3, 0xe1d4, 0xe1d5, 0xe1d6, 0x003f, - /* lead byte fd */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe1d7, 0xe1d8, 0xe1d9, 0xe1da, 0xe1db, 0xe1dc, 0xe1dd, 0xe1de, - 0xe1df, 0xe1e0, 0xe1e1, 0xe1e2, 0xe1e3, 0xe1e4, 0xe1e5, 0xe1e6, - 0xe1e7, 0xe1e8, 0xe1e9, 0xe1ea, 0xe1eb, 0xe1ec, 0xe1ed, 0xe1ee, - 0xe1ef, 0xe1f0, 0xe1f1, 0xe1f2, 0xe1f3, 0xe1f4, 0xe1f5, 0xe1f6, - 0xe1f7, 0xe1f8, 0xe1f9, 0xe1fa, 0xe1fb, 0xe1fc, 0xe1fd, 0xe1fe, - 0xe1ff, 0xe200, 0xe201, 0xe202, 0xe203, 0xe204, 0xe205, 0xe206, - 0xe207, 0xe208, 0xe209, 0xe20a, 0xe20b, 0xe20c, 0xe20d, 0xe20e, - 0xe20f, 0xe210, 0xe211, 0xe212, 0xe213, 0xe214, 0xe215, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe216, 0xe217, 0xe218, 0xe219, 0xe21a, 0xe21b, 0xe21c, - 0xe21d, 0xe21e, 0xe21f, 0xe220, 0xe221, 0xe222, 0xe223, 0xe224, - 0xe225, 0xe226, 0xe227, 0xe228, 0xe229, 0xe22a, 0xe22b, 0xe22c, - 0xe22d, 0xe22e, 0xe22f, 0xe230, 0xe231, 0xe232, 0xe233, 0xe234, - 0xe235, 0xe236, 0xe237, 0xe238, 0xe239, 0xe23a, 0xe23b, 0xe23c, - 0xe23d, 0xe23e, 0xe23f, 0xe240, 0xe241, 0xe242, 0xe243, 0xe244, - 0xe245, 0xe246, 0xe247, 0xe248, 0xe249, 0xe24a, 0xe24b, 0xe24c, - 0xe24d, 0xe24e, 0xe24f, 0xe250, 0xe251, 0xe252, 0xe253, 0xe254, - 0xe255, 0xe256, 0xe257, 0xe258, 0xe259, 0xe25a, 0xe25b, 0xe25c, - 0xe25d, 0xe25e, 0xe25f, 0xe260, 0xe261, 0xe262, 0xe263, 0xe264, - 0xe265, 0xe266, 0xe267, 0xe268, 0xe269, 0xe26a, 0xe26b, 0xe26c, - 0xe26d, 0xe26e, 0xe26f, 0xe270, 0xe271, 0xe272, 0xe273, 0x003f, - /* lead byte fe */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe274, 0xe275, 0xe276, 0xe277, 0xe278, 0xe279, 0xe27a, 0xe27b, - 0xe27c, 0xe27d, 0xe27e, 0xe27f, 0xe280, 0xe281, 0xe282, 0xe283, - 0xe284, 0xe285, 0xe286, 0xe287, 0xe288, 0xe289, 0xe28a, 0xe28b, - 0xe28c, 0xe28d, 0xe28e, 0xe28f, 0xe290, 0xe291, 0xe292, 0xe293, - 0xe294, 0xe295, 0xe296, 0xe297, 0xe298, 0xe299, 0xe29a, 0xe29b, - 0xe29c, 0xe29d, 0xe29e, 0xe29f, 0xe2a0, 0xe2a1, 0xe2a2, 0xe2a3, - 0xe2a4, 0xe2a5, 0xe2a6, 0xe2a7, 0xe2a8, 0xe2a9, 0xe2aa, 0xe2ab, - 0xe2ac, 0xe2ad, 0xe2ae, 0xe2af, 0xe2b0, 0xe2b1, 0xe2b2, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe2b3, 0xe2b4, 0xe2b5, 0xe2b6, 0xe2b7, 0xe2b8, 0xe2b9, - 0xe2ba, 0xe2bb, 0xe2bc, 0xe2bd, 0xe2be, 0xe2bf, 0xe2c0, 0xe2c1, - 0xe2c2, 0xe2c3, 0xe2c4, 0xe2c5, 0xe2c6, 0xe2c7, 0xe2c8, 0xe2c9, - 0xe2ca, 0xe2cb, 0xe2cc, 0xe2cd, 0xe2ce, 0xe2cf, 0xe2d0, 0xe2d1, - 0xe2d2, 0xe2d3, 0xe2d4, 0xe2d5, 0xe2d6, 0xe2d7, 0xe2d8, 0xe2d9, - 0xe2da, 0xe2db, 0xe2dc, 0xe2dd, 0xe2de, 0xe2df, 0xe2e0, 0xe2e1, - 0xe2e2, 0xe2e3, 0xe2e4, 0xe2e5, 0xe2e6, 0xe2e7, 0xe2e8, 0xe2e9, - 0xe2ea, 0xe2eb, 0xe2ec, 0xe2ed, 0xe2ee, 0xe2ef, 0xe2f0, 0xe2f1, - 0xe2f2, 0xe2f3, 0xe2f4, 0xe2f5, 0xe2f6, 0xe2f7, 0xe2f8, 0xe2f9, - 0xe2fa, 0xe2fb, 0xe2fc, 0xe2fd, 0xe2fe, 0xe2ff, 0xe300, 0xe301, - 0xe302, 0xe303, 0xe304, 0xe305, 0xe306, 0xe307, 0xe308, 0xe309, - 0xe30a, 0xe30b, 0xe30c, 0xe30d, 0xe30e, 0xe30f, 0xe310, 0x003f -}; - -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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, - 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, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 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, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00 -}; - -static const unsigned short uni2cp_low[32000] = -{ - /* 0x0000 .. 0x00ff */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x0080, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x0021, 0xa246, 0xa247, 0x003f, 0xa244, 0x007c, 0xa1b1, - 0xa14c, 0x0063, 0x0061, 0x003f, 0x003f, 0x002d, 0x0052, 0xa1c2, - 0xa258, 0xa1d3, 0x0032, 0x0033, 0xa1a6, 0xa367, 0x003f, 0xa150, - 0xa14d, 0x0031, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0043, - 0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, - 0x0044, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0xa1d1, - 0x004f, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0x0054, 0x0073, - 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0063, - 0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, - 0x0065, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0xa1d2, - 0x006f, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0x0074, 0x0079, - /* 0x0200 .. 0x02ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa3be, - 0x003f, 0xa3bc, 0xa3bd, 0xa3bf, 0x003f, 0xa1c5, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa3bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x0300 .. 0x03ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1c2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa344, 0xa345, 0xa346, 0xa347, 0xa348, 0xa349, 0xa34a, - 0xa34b, 0xa34c, 0xa34d, 0xa34e, 0xa34f, 0xa350, 0xa351, 0xa352, - 0xa353, 0xa354, 0x003f, 0xa355, 0xa356, 0xa357, 0xa358, 0xa359, - 0xa35a, 0xa35b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa35c, 0xa35d, 0xa35e, 0xa35f, 0xa360, 0xa361, 0xa362, - 0xa363, 0xa364, 0xa365, 0xa366, 0xa367, 0xa368, 0xa369, 0xa36a, - 0xa36b, 0xa36c, 0x003f, 0xa36d, 0xa36e, 0xa36f, 0xa370, 0xa371, - 0xa372, 0xa373, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2000 .. 0x20ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa156, 0xa158, 0xa277, 0xa1fc, 0x003f, - 0xa1a5, 0xa1a6, 0x003f, 0x003f, 0xa1a7, 0xa1a8, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa145, 0x003f, 0xa3bb, 0xa14c, 0xa14b, 0xa145, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1ac, 0xa1b2, 0x003f, 0xa1ab, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa1b0, 0x003f, 0x003f, 0xa1c3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa3e1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2100 .. 0x21ff */ - 0x003f, 0x003f, 0x003f, 0xa24a, 0x003f, 0xa1c1, 0x003f, 0x003f, - 0x003f, 0xa24b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa2b9, 0xa2ba, 0xa2bb, 0xa2bc, 0xa2bd, 0xa2be, 0xa2bf, 0xa2c0, - 0xa2c1, 0xa2c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1f6, 0xa1f4, 0xa1f7, 0xa1f5, 0x003f, 0x003f, 0xa1f8, 0xa1f9, - 0xa1fb, 0xa1fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2200 .. 0x22ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa241, 0xa242, 0x003f, - 0xa258, 0x003f, 0xa1d4, 0x003f, 0x003f, 0x003f, 0xa1db, 0xa1e8, - 0xa1e7, 0x003f, 0x003f, 0xa1fd, 0x003f, 0xa1fc, 0x003f, 0x003f, - 0x003f, 0xa1e4, 0xa1e5, 0xa1ec, 0x003f, 0x003f, 0xa1ed, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ef, 0xa1ee, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1da, 0xa1dd, 0x003f, 0xa1dd, 0x003f, 0x003f, 0xa1d8, 0xa1d9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f2, 0x003f, 0x003f, - 0x003f, 0xa1f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e6, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e9, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2300 .. 0x23ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa15b, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2500 .. 0x25ff */ - 0xa277, 0x003f, 0xa278, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa27a, 0x003f, 0x003f, 0x003f, - 0xa27b, 0x003f, 0x003f, 0x003f, 0xa27c, 0x003f, 0x003f, 0x003f, - 0xa27d, 0x003f, 0x003f, 0x003f, 0xa275, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa274, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa273, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa272, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa271, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf9f9, 0xf9f8, 0xf9e6, 0xf9ef, 0xf9dd, 0xf9e8, 0xf9f1, 0xf9df, - 0xf9ec, 0xf9f5, 0xf9e3, 0xf9ee, 0xf9f7, 0xf9e5, 0xf9e9, 0xf9f2, - 0xf9e0, 0xf9eb, 0xf9f4, 0xf9e2, 0xf9e7, 0xf9f0, 0xf9de, 0xf9ed, - 0xf9f6, 0xf9e4, 0xf9ea, 0xf9f3, 0xf9e1, 0xa27e, 0xa2a1, 0xa2a3, - 0xa2a2, 0xa2ac, 0xa2ad, 0xa2ae, 0xa15a, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa262, 0xa263, 0xa264, 0xa265, 0xa266, 0xa267, 0xa268, - 0xa269, 0xa270, 0xa26f, 0xa26e, 0xa26d, 0xa26c, 0xa26b, 0xa26a, - 0x003f, 0x003f, 0x003f, 0xf9fe, 0xa276, 0xa279, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1bd, 0xa1bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa1b6, 0xa1b5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa1bf, 0xa1be, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1bb, 0xa1ba, - 0x003f, 0x003f, 0x003f, 0xa1b3, 0x003f, 0x003f, 0xa1b7, 0xa1b4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa2a8, 0xa2a9, 0xa2ab, 0xa2aa, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x2600 .. 0x26ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1b9, 0xa1b8, 0x003f, - 0x003f, 0xa1f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1f0, 0xa1f2, 0xa1f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3000 .. 0x30ff */ - 0xa140, 0xa142, 0xa143, 0xa1b2, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa171, 0xa172, 0xa16d, 0xa16e, 0xa175, 0xa176, 0xa179, 0xa17a, - 0xa169, 0xa16a, 0xa245, 0x003f, 0xa165, 0xa166, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e3, 0xa1a9, 0xa1aa, 0x003f, - 0x003f, 0xa2c3, 0xa2c4, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, - 0xa2ca, 0xa2cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa1ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3100 .. 0x31ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa374, 0xa375, 0xa376, - 0xa377, 0xa378, 0xa379, 0xa37a, 0xa37b, 0xa37c, 0xa37d, 0xa37e, - 0xa3a1, 0xa3a2, 0xa3a3, 0xa3a4, 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8, - 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, 0xa3b0, - 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8, - 0xa3b9, 0xa3ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa440, 0xa447, 0xa454, 0xa57c, 0xa457, 0xa4a4, - 0xa455, 0xa5d2, 0xa441, 0xa4fe, 0xa442, 0xa4d1, 0xa661, 0xa448, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3200 .. 0x32ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa440, 0xa447, 0xa454, 0xa57c, 0xa4ad, 0xa4bb, 0xa443, 0xa44b, - 0xa445, 0xa451, 0xa4eb, 0xa4f5, 0xa4f4, 0xa4ec, 0xaaf7, 0xa467, - 0xa4e9, 0xaee8, 0xa6b3, 0xaac0, 0xa657, 0xaf53, 0xb05d, 0xafac, - 0xb3d2, 0xa54e, 0xa949, 0xbec7, 0xbaca, 0xa5f8, 0xb8ea, 0xa8f3, - 0xb2bd, 0xa5f0, 0xa6db, 0xa6dc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa440, 0xa447, 0xa454, 0xa57c, 0xa4ad, 0xa4bb, 0xa443, 0xa44b, - 0xa445, 0xa451, 0xa4eb, 0xa4f5, 0xa4f4, 0xa4ec, 0xaaf7, 0xa467, - 0xa4e9, 0xaee8, 0xa6b3, 0xaac0, 0xa657, 0xaf53, 0xb05d, 0xafac, - 0xb3d2, 0xafb5, 0xa86b, 0xa46b, 0xbe41, 0xc075, 0xa64c, 0xaa60, - 0xb6b5, 0xa5f0, 0xbc67, 0xa1c0, 0xa457, 0xa4a4, 0xa455, 0xa5aa, - 0xa56b, 0xc2e5, 0xa976, 0xbec7, 0xbaca, 0xa5f8, 0xb8ea, 0xa8f3, - 0xa95d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x3300 .. 0x33ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa255, 0xa256, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa250, 0xa251, 0xa252, 0x003f, - 0x003f, 0xa254, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa257, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa253, 0x003f, - 0x003f, 0xa1eb, 0xa1ea, 0x003f, 0x003f, 0xa24f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x4e00 .. 0x4eff */ - 0xa440, 0xa442, 0x003f, 0xa443, 0x003f, 0x003f, 0x003f, 0xc945, - 0xa456, 0xa454, 0xa457, 0xa455, 0xc946, 0xa4a3, 0xc94f, 0xc94d, - 0xa4a2, 0xa4a1, 0x003f, 0x003f, 0xa542, 0xa541, 0xa540, 0x003f, - 0xa543, 0xa4fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xa5e0, 0xa5e1, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8c3, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa458, 0x003f, 0xa4a4, 0xc950, 0x003f, - 0xa4a5, 0xc963, 0xa6ea, 0xcbb1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa459, 0xa4a6, 0x003f, 0xa544, 0xc964, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc940, 0xa444, 0x003f, 0xa45b, 0x003f, 0xc947, - 0xa45c, 0x003f, 0x003f, 0xa4a7, 0x003f, 0xa545, 0xa547, 0xa546, - 0x003f, 0x003f, 0xa5e2, 0xa5e3, 0x003f, 0x003f, 0xa8c4, 0x003f, - 0xadbc, 0xa441, 0x003f, 0x003f, 0xc941, 0xa445, 0xa45e, 0xa45d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa5e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa8c5, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0ae, 0xd44b, - 0x003f, 0x003f, 0xb6c3, 0xdcb1, 0xdcb2, 0x003f, 0xa446, 0x003f, - 0xa4a9, 0x003f, 0x003f, 0xa8c6, 0xa447, 0xc948, 0xa45f, 0x003f, - 0x003f, 0xa4aa, 0xa4ac, 0xc951, 0xa4ad, 0xa4ab, 0x003f, 0x003f, - 0x003f, 0xa5e5, 0x003f, 0xa8c7, 0x003f, 0x003f, 0xa8c8, 0xab45, - 0x003f, 0xa460, 0xa4ae, 0x003f, 0xa5e6, 0xa5e8, 0xa5e7, 0x003f, - 0xa6eb, 0x003f, 0x003f, 0xa8c9, 0xa8ca, 0xab46, 0xab47, 0x003f, - 0x003f, 0x003f, 0x003f, 0xadbd, 0x003f, 0x003f, 0xdcb3, 0x003f, - 0x003f, 0xf6d6, 0xa448, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa4b0, 0xa4af, 0xc952, 0xa4b1, 0xa4b7, 0x003f, 0xa4b2, 0xa4b3, - 0xc954, 0xc953, 0xa4b5, 0xa4b6, 0x003f, 0xa4b4, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa54a, 0xa54b, 0xa54c, 0xa54d, - 0xa549, 0xa550, 0xc96a, 0x003f, 0xc966, 0xc969, 0xa551, 0xa561, - 0x003f, 0xc968, 0x003f, 0xa54e, 0xa54f, 0xa548, 0x003f, 0x003f, - 0xc965, 0xc967, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa5f5, 0xc9b0, 0xa5f2, 0xa5f6, 0xc9ba, 0xc9ae, 0xa5f3, 0xc9b2, - 0x003f, 0x003f, 0x003f, 0xa5f4, 0x003f, 0xa5f7, 0x003f, 0xa5e9, - /* 0x4f00 .. 0x4fff */ - 0xc9b1, 0xa5f8, 0xc9b5, 0x003f, 0xc9b9, 0xc9b6, 0x003f, 0x003f, - 0xc9b3, 0xa5ea, 0xa5ec, 0xa5f9, 0x003f, 0xa5ee, 0xc9ab, 0xa5f1, - 0xa5ef, 0xa5f0, 0xc9bb, 0xc9b8, 0xc9af, 0xa5ed, 0x003f, 0x003f, - 0xc9ac, 0xa5eb, 0x003f, 0x003f, 0x003f, 0xc9b4, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc9b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc9ad, 0xca66, 0x003f, 0xa742, - 0xa6f4, 0x003f, 0x003f, 0xca67, 0xa6f1, 0x003f, 0xa744, 0x003f, - 0xa6f9, 0x003f, 0xa6f8, 0xca5b, 0xa6fc, 0xa6f7, 0xca60, 0xca68, - 0x003f, 0xca64, 0x003f, 0xa6fa, 0x003f, 0x003f, 0xa6fd, 0xa6ee, - 0xa747, 0xca5d, 0x003f, 0x003f, 0xcbbd, 0xa6ec, 0xa743, 0xa6ed, - 0xa6f5, 0xa6f6, 0xca62, 0xca5e, 0xa6fb, 0xa6f3, 0xca5a, 0xa6ef, - 0xca65, 0xa745, 0xa748, 0xa6f2, 0xa740, 0xa746, 0xa6f0, 0xca63, - 0xa741, 0xca69, 0xca5c, 0xa6fe, 0xca5f, 0x003f, 0x003f, 0xca61, - 0x003f, 0xa8d8, 0xcbbf, 0xcbcb, 0xa8d0, 0x003f, 0xcbcc, 0xa8cb, - 0xa8d5, 0x003f, 0x003f, 0xa8ce, 0xcbb9, 0xa8d6, 0xcbb8, 0xcbbc, - 0xcbc3, 0xcbc1, 0xa8de, 0xa8d9, 0xcbb3, 0xcbb5, 0xa8db, 0xa8cf, - 0xcbb6, 0xcbc2, 0xcbc9, 0xa8d4, 0xcbbb, 0xcbb4, 0xa8d3, 0xcbb7, - 0xa8d7, 0xcbba, 0x003f, 0xa8d2, 0x003f, 0xa8cd, 0x003f, 0xa8dc, - 0xcbc4, 0xa8dd, 0xcbc8, 0x003f, 0xcbc6, 0xcbca, 0xa8da, 0xcbbe, - 0xcbb2, 0x003f, 0xcbc0, 0xa8d1, 0xcbc5, 0xa8cc, 0xcbc7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xab56, 0xab4a, - 0x003f, 0x003f, 0xcde0, 0xcde8, 0x003f, 0xab49, 0xab51, 0xab5d, - 0x003f, 0xcdee, 0xcdec, 0xcde7, 0x003f, 0x003f, 0x003f, 0xab4b, - 0xcded, 0xcde3, 0xab59, 0xab50, 0xab58, 0xcdde, 0x003f, 0xcdea, - 0x003f, 0xcde1, 0xab54, 0xcde2, 0x003f, 0xcddd, 0xab5b, 0xab4e, - 0xab57, 0xab4d, 0x003f, 0xcddf, 0xcde4, 0x003f, 0xcdeb, 0xab55, - 0xab52, 0xcde6, 0xab5a, 0xcde9, 0xcde5, 0xab4f, 0xab5c, 0xab53, - 0xab4c, 0xab48, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcdef, 0x003f, 0xadd7, 0xadc1, - 0x003f, 0xadd1, 0x003f, 0xadd6, 0xd0d0, 0xd0cf, 0xd0d4, 0xd0d5, - 0xadc4, 0x003f, 0xadcd, 0x003f, 0x003f, 0x003f, 0xadda, 0x003f, - /* 0x5000 .. 0x50ff */ - 0xadce, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0c9, 0xadc7, 0xd0ca, - 0x003f, 0xaddc, 0x003f, 0xadd3, 0xadbe, 0xadbf, 0xd0dd, 0xb0bf, - 0x003f, 0xadcc, 0xadcb, 0xd0cb, 0xadcf, 0xd45b, 0xadc6, 0xd0d6, - 0xadd5, 0xadd4, 0xadca, 0xd0ce, 0xd0d7, 0x003f, 0xd0c8, 0xadc9, - 0xd0d8, 0xadd2, 0xd0cc, 0xadc0, 0x003f, 0xadc3, 0xadc2, 0xd0d9, - 0xadd0, 0xadc5, 0xadd9, 0xaddb, 0xd0d3, 0xadd8, 0x003f, 0xd0db, - 0xd0cd, 0xd0dc, 0x003f, 0xd0d1, 0x003f, 0xd0da, 0x003f, 0xd0d2, - 0x003f, 0x003f, 0x003f, 0x003f, 0xadc8, 0x003f, 0x003f, 0x003f, - 0xd463, 0xd457, 0x003f, 0xb0b3, 0x003f, 0xd45c, 0xd462, 0xb0b2, - 0xd455, 0xb0b6, 0xd459, 0xd452, 0xb0b4, 0xd456, 0xb0b9, 0xb0be, - 0x003f, 0xd467, 0x003f, 0xd451, 0x003f, 0xb0ba, 0x003f, 0xd466, - 0x003f, 0x003f, 0xb0b5, 0xd458, 0xb0b1, 0xd453, 0xd44f, 0xd45d, - 0xd450, 0xd44e, 0xd45a, 0xd460, 0xd461, 0xb0b7, 0x003f, 0x003f, - 0xd85b, 0xd45e, 0xd44d, 0xd45f, 0x003f, 0xb0c1, 0xd464, 0xb0c0, - 0xd44c, 0x003f, 0xd454, 0xd465, 0xb0bc, 0xb0bb, 0xb0b8, 0xb0bd, - 0x003f, 0x003f, 0xb0af, 0x003f, 0x003f, 0xb0b0, 0x003f, 0x003f, - 0xb3c8, 0x003f, 0xd85e, 0xd857, 0x003f, 0xb3c5, 0x003f, 0xd85f, - 0x003f, 0x003f, 0x003f, 0xd855, 0xd858, 0xb3c4, 0xd859, 0x003f, - 0x003f, 0xb3c7, 0xd85d, 0x003f, 0xd853, 0xd852, 0xb3c9, 0x003f, - 0xb3ca, 0xb3c6, 0xb3cb, 0xd851, 0xd85c, 0xd85a, 0xd854, 0x003f, - 0x003f, 0x003f, 0xb3c3, 0xd856, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb6ca, 0xb6c4, 0xdcb7, 0xb6cd, - 0xdcbd, 0xdcc0, 0xb6c6, 0xb6c7, 0xdcba, 0xb6c5, 0xdcc3, 0xb6cb, - 0xdcc4, 0x003f, 0xdcbf, 0xb6cc, 0x003f, 0xdcb4, 0xb6c9, 0xdcb5, - 0x003f, 0xdcbe, 0xdcbc, 0x003f, 0xdcb8, 0xb6c8, 0xdcb6, 0xb6ce, - 0xdcbb, 0xdcc2, 0xdcb9, 0xdcc1, 0x003f, 0x003f, 0xb9b6, 0xb9b3, - 0x003f, 0xb9b4, 0x003f, 0xe0f9, 0xe0f1, 0xb9b2, 0xb9af, 0xe0f2, - 0x003f, 0x003f, 0xb9b1, 0xe0f5, 0x003f, 0xe0f7, 0x003f, 0x003f, - 0xe0fe, 0x003f, 0x003f, 0xe0fd, 0xe0f8, 0xb9ae, 0xe0f0, 0xb9ac, - 0xe0f3, 0xb9b7, 0xe0f6, 0x003f, 0xe0fa, 0xb9b0, 0xb9ad, 0xe0fc, - 0xe0fb, 0xb9b5, 0x003f, 0xe0f4, 0x003f, 0xbbf8, 0xe4ec, 0x003f, - 0xe4e9, 0xbbf9, 0x003f, 0xbbf7, 0x003f, 0xe4f0, 0xe4ed, 0xe4e6, - /* 0x5100 .. 0x51ff */ - 0xbbf6, 0x003f, 0xbbfa, 0xe4e7, 0xbbf5, 0xbbfd, 0xe4ea, 0xe4eb, - 0xbbfb, 0xbbfc, 0xe4f1, 0xe4ee, 0xe4ef, 0x003f, 0x003f, 0x003f, - 0xbeaa, 0xe8f8, 0xbea7, 0xe8f5, 0xbea9, 0xbeab, 0x003f, 0xe8f6, - 0xbea8, 0x003f, 0xe8f7, 0x003f, 0xe8f4, 0x003f, 0x003f, 0xc076, - 0xecbd, 0xc077, 0xecbb, 0x003f, 0xecbc, 0xecba, 0xecb9, 0x003f, - 0x003f, 0xecbe, 0xc075, 0x003f, 0x003f, 0xefb8, 0xefb9, 0x003f, - 0xe4e8, 0xefb7, 0xc078, 0xc35f, 0xf1eb, 0xf1ec, 0x003f, 0xc4d7, - 0xc4d8, 0xf5c1, 0xf5c0, 0xc56c, 0xc56b, 0xf7d0, 0x003f, 0xa449, - 0xa461, 0xa4b9, 0x003f, 0xa4b8, 0xa553, 0xa552, 0xa5fc, 0xa5fb, - 0xa5fd, 0xa5fa, 0x003f, 0xa74a, 0xa749, 0xa74b, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa8e0, 0x003f, 0xa8df, 0xa8e1, 0x003f, 0xab5e, - 0x003f, 0xa259, 0xd0de, 0xa25a, 0xb0c2, 0xa25c, 0xa25b, 0xd860, - 0x003f, 0xa25d, 0xb9b8, 0xa25e, 0x003f, 0xa44a, 0x003f, 0xa4ba, - 0xa5fe, 0xa8e2, 0x003f, 0xa44b, 0xa4bd, 0xa4bb, 0xa4bc, 0x003f, - 0x003f, 0xa640, 0x003f, 0x003f, 0x003f, 0xa74c, 0xa8e4, 0xa8e3, - 0xa8e5, 0x003f, 0x003f, 0x003f, 0xaddd, 0x003f, 0x003f, 0x003f, - 0xbeac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc94e, - 0x003f, 0xa554, 0xa555, 0x003f, 0x003f, 0xa641, 0x003f, 0xca6a, - 0x003f, 0xab60, 0xab5f, 0xd0e0, 0xd0df, 0xb0c3, 0x003f, 0xa4be, - 0xc955, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbcd, 0x003f, - 0xab61, 0x003f, 0xade0, 0x003f, 0xadde, 0xaddf, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbead, 0x003f, 0xa556, 0x003f, 0x003f, 0x003f, - 0xa642, 0xc9bc, 0x003f, 0x003f, 0x003f, 0x003f, 0xa74d, 0xa74e, - 0x003f, 0xca6b, 0x003f, 0x003f, 0xcbce, 0xa8e6, 0xcbcf, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd0e2, 0xd0e3, 0xade3, 0x003f, - 0xd0e4, 0x003f, 0xd0e1, 0xade4, 0xade2, 0xade1, 0xd0e5, 0x003f, - 0xd468, 0x003f, 0x003f, 0x003f, 0xd861, 0x003f, 0x003f, 0xdcc5, - 0xe140, 0x003f, 0x003f, 0x003f, 0xbbfe, 0xbeae, 0xe8f9, 0x003f, - 0xa44c, 0xa45a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb0c4, 0xb3cd, 0x003f, 0xb9b9, 0x003f, 0xc942, 0xa4bf, 0x003f, - 0xa559, 0xa557, 0xa558, 0x003f, 0x003f, 0xa8e7, 0x003f, 0x003f, - /* 0x5200 .. 0x52ff */ - 0xa44d, 0xa44e, 0x003f, 0xa462, 0x003f, 0x003f, 0xa4c0, 0xa4c1, - 0xa4c2, 0xc9be, 0xa55a, 0x003f, 0xc96b, 0x003f, 0xa646, 0x003f, - 0xc9bf, 0xa644, 0xa645, 0xc9bd, 0x003f, 0x003f, 0xa647, 0xa643, - 0x003f, 0x003f, 0x003f, 0x003f, 0xca6c, 0xaaec, 0xca6d, 0x003f, - 0x003f, 0xca6e, 0x003f, 0x003f, 0xa750, 0xa74f, 0x003f, 0x003f, - 0xa753, 0xa751, 0xa752, 0x003f, 0x003f, 0x003f, 0xa8ed, 0x003f, - 0xa8ec, 0xcbd4, 0xcbd1, 0xcbd2, 0x003f, 0xcbd0, 0xa8ee, 0xa8ea, - 0xa8e9, 0x003f, 0xa8eb, 0xa8e8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa8ef, 0x003f, 0xab63, 0xcdf0, 0x003f, 0xcbd3, 0xab68, - 0x003f, 0xcdf1, 0xab64, 0xab67, 0xab66, 0xab65, 0xab62, 0x003f, - 0x003f, 0x003f, 0xd0e8, 0x003f, 0xade7, 0xd0eb, 0xade5, 0x003f, - 0x003f, 0x003f, 0xd0e7, 0xade8, 0xade6, 0xade9, 0xd0e9, 0xd0ea, - 0x003f, 0xd0e6, 0xd0ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb3d1, 0xb0c5, 0xd469, 0xd46b, 0xd46a, 0xd46c, 0xb0c6, - 0x003f, 0x003f, 0xb3ce, 0x003f, 0xb3cf, 0xb3d0, 0x003f, 0xb6d0, - 0xdcc7, 0x003f, 0xdcc6, 0xdcc8, 0xdcc9, 0xb6d1, 0x003f, 0xb6cf, - 0xe141, 0xe142, 0xb9bb, 0xb9ba, 0xe35a, 0x003f, 0x003f, 0xbc40, - 0xbc41, 0xbc42, 0xbc44, 0xe4f2, 0xe4f3, 0xbc43, 0x003f, 0x003f, - 0x003f, 0xbeaf, 0x003f, 0xbeb0, 0x003f, 0x003f, 0xf1ed, 0xf5c3, - 0xf5c2, 0xf7d1, 0x003f, 0xa44f, 0x003f, 0x003f, 0x003f, 0xa55c, - 0xa55b, 0x003f, 0x003f, 0xa648, 0x003f, 0x003f, 0xc9c0, 0x003f, - 0x003f, 0xa755, 0xa756, 0xa754, 0xa757, 0xca6f, 0xca70, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa8f1, 0xcbd5, 0x003f, 0xa8f0, 0x003f, - 0xcdf2, 0xab6c, 0xcdf3, 0xab6b, 0x003f, 0x003f, 0x003f, 0xab69, - 0x003f, 0xab6a, 0x003f, 0x003f, 0x003f, 0xd0ed, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb0c7, 0xd46e, 0x003f, 0xb0ca, 0xd46d, 0xb1e5, - 0xb0c9, 0xb0c8, 0x003f, 0xb3d4, 0x003f, 0xb3d3, 0xb3d2, 0xb6d2, - 0x003f, 0x003f, 0xb6d5, 0xb6d6, 0xb6d4, 0x003f, 0xb6d3, 0x003f, - 0x003f, 0xe143, 0x003f, 0xe144, 0x003f, 0x003f, 0x003f, 0xe4f5, - 0xbc45, 0xe4f4, 0x003f, 0xbeb1, 0xecbf, 0xc079, 0x003f, 0xf1ee, - 0xc455, 0x003f, 0xa463, 0xa4c3, 0xc956, 0x003f, 0xa4c4, 0xa4c5, - /* 0x5300 .. 0x53ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa55d, 0xa55e, 0x003f, - 0xa649, 0xca71, 0xcbd6, 0xcbd7, 0x003f, 0xab6d, 0xd0ee, 0xb0cc, - 0xb0cb, 0xd863, 0xd862, 0x003f, 0x003f, 0xa450, 0xa4c6, 0xa55f, - 0x003f, 0xb0cd, 0xc943, 0x003f, 0xc96c, 0xa560, 0x003f, 0xc9c2, - 0xa64b, 0xa64a, 0xc9c1, 0xa758, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xadea, 0x003f, 0x003f, 0xd46f, 0x003f, 0xb6d7, - 0xe145, 0xb9bc, 0x003f, 0x003f, 0xe8fa, 0x003f, 0x003f, 0xf3fd, - 0x003f, 0xa4c7, 0x003f, 0x003f, 0xcbd8, 0xcdf4, 0xb0d0, 0xb0ce, - 0xb0cf, 0xa451, 0x003f, 0xa464, 0xa2cd, 0xa4ca, 0x003f, 0xa4c9, - 0xa4c8, 0xa563, 0xa562, 0x003f, 0xc96d, 0xc9c3, 0x003f, 0x003f, - 0x003f, 0xa8f5, 0xa8f2, 0xa8f4, 0xa8f3, 0x003f, 0x003f, 0xab6e, - 0x003f, 0x003f, 0xb3d5, 0x003f, 0xa452, 0x003f, 0xa4cb, 0x003f, - 0xa565, 0xa564, 0x003f, 0xca72, 0x003f, 0x003f, 0xa8f6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc957, 0x003f, 0xa567, 0xa566, - 0xa64c, 0xa64d, 0xca73, 0xa759, 0x003f, 0xa75a, 0x003f, 0xa8f7, - 0xa8f8, 0xa8f9, 0x003f, 0xab6f, 0xcdf5, 0x003f, 0x003f, 0xadeb, - 0x003f, 0x003f, 0xc944, 0x003f, 0xa4cc, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc9c4, 0x003f, 0x003f, 0x003f, 0xca74, 0xca75, - 0x003f, 0x003f, 0xcbd9, 0x003f, 0xcbda, 0x003f, 0xcdf7, 0xcdf6, - 0xcdf9, 0xcdf8, 0xab70, 0x003f, 0xd470, 0xaded, 0xd0ef, 0xadec, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd864, 0xb3d6, 0x003f, 0xd865, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe146, 0xb9bd, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbc46, 0x003f, 0xf1ef, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc958, 0x003f, 0xa568, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb0d1, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa453, 0xa465, 0xa4ce, 0xa4cd, 0x003f, 0xa4cf, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa8fb, 0x003f, 0xa8fa, 0xa8fc, - 0x003f, 0x003f, 0x003f, 0xab71, 0x003f, 0x003f, 0x003f, 0xadee, - 0x003f, 0xe8fb, 0xc24f, 0xa466, 0xa56a, 0xa579, 0xa574, 0x003f, - 0xa56f, 0xa56e, 0xa575, 0xa573, 0xa56c, 0xa57a, 0xa56d, 0xa569, - 0xa578, 0xa577, 0xa576, 0xa56b, 0x003f, 0xa572, 0x003f, 0x003f, - 0xa571, 0x003f, 0x003f, 0xa57b, 0xa570, 0x003f, 0x003f, 0x003f, - /* 0x5400 .. 0x54ff */ - 0x003f, 0xa653, 0x003f, 0xa659, 0xa655, 0x003f, 0xa65b, 0xc9c5, - 0xa658, 0xa64e, 0xa651, 0xa654, 0xa650, 0xa657, 0xa65a, 0xa64f, - 0xa652, 0xa656, 0xa65c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xca7e, 0xca7b, 0x003f, 0xa767, 0xca7c, 0xa75b, 0xa75d, 0xa775, - 0xa770, 0x003f, 0x003f, 0x003f, 0xcaa5, 0xca7d, 0xa75f, 0xa761, - 0xcaa4, 0xa768, 0xca78, 0xa774, 0xa776, 0xa75c, 0xa76d, 0x003f, - 0xca76, 0xa773, 0x003f, 0xa764, 0x003f, 0xa76e, 0xa76f, 0xca77, - 0xa76c, 0xa76a, 0x003f, 0xa76b, 0xa771, 0xcaa1, 0xa75e, 0x003f, - 0xa772, 0xcaa3, 0xa766, 0xa763, 0x003f, 0xca7a, 0xa762, 0xcaa6, - 0xa765, 0x003f, 0xa769, 0x003f, 0x003f, 0x003f, 0xa760, 0xcaa2, - 0x003f, 0x003f, 0x003f, 0x003f, 0xca79, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcbeb, 0xcbea, 0xa94f, 0xcbed, 0xcbef, 0xcbe4, 0xcbe7, 0xcbee, - 0xa950, 0x003f, 0x003f, 0xcbe1, 0xcbe5, 0x003f, 0x003f, 0xcbe9, - 0xce49, 0xa94b, 0xce4d, 0xa8fd, 0xcbe6, 0xa8fe, 0xa94c, 0xa945, - 0xa941, 0x003f, 0xcbe2, 0xa944, 0xa949, 0xa952, 0xcbe3, 0xcbdc, - 0xa943, 0xcbdd, 0xcbdf, 0x003f, 0xa946, 0x003f, 0xa948, 0xcbdb, - 0xcbe0, 0x003f, 0x003f, 0xa951, 0xa94d, 0xcbe8, 0xa953, 0x003f, - 0xa94a, 0xcbde, 0xa947, 0x003f, 0x003f, 0xa942, 0xa940, 0x003f, - 0xcbec, 0x003f, 0xa94e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xce48, 0xcdfb, 0xce4b, 0x003f, 0x003f, 0xcdfd, 0xab78, 0xaba8, - 0xab74, 0xaba7, 0xab7d, 0xaba4, 0xab72, 0xcdfc, 0xce43, 0xaba3, - 0xce4f, 0xaba5, 0x003f, 0xab79, 0x003f, 0x003f, 0xce45, 0xce42, - 0xab77, 0x003f, 0xcdfa, 0xaba6, 0xce4a, 0xab7c, 0xce4c, 0xaba9, - 0xab73, 0xab7e, 0xab7b, 0xce40, 0xaba1, 0xce46, 0xce47, 0xab7a, - 0xaba2, 0xab76, 0x003f, 0x003f, 0x003f, 0x003f, 0xab75, 0xcdfe, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce44, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce4e, 0x003f, - 0xd144, 0xadfb, 0xd0f1, 0x003f, 0xd0f6, 0xadf4, 0xae40, 0xd0f4, - 0xadef, 0xadf9, 0xadfe, 0xd0fb, 0x003f, 0xadfa, 0xadfd, 0x003f, - 0x003f, 0xd0fe, 0xadf5, 0xd0f5, 0x003f, 0x003f, 0x003f, 0xd142, - 0xd143, 0x003f, 0xadf7, 0xd141, 0xadf3, 0xae43, 0x003f, 0xd0f8, - /* 0x5500 .. 0x55ff */ - 0x003f, 0xadf1, 0x003f, 0xd146, 0xd0f9, 0xd0fd, 0xadf6, 0xae42, - 0xd0fa, 0xadfc, 0xd140, 0xd147, 0xd4a1, 0x003f, 0xd145, 0xae44, - 0xadf0, 0xd0fc, 0xd0f3, 0x003f, 0xadf8, 0x003f, 0x003f, 0xd0f2, - 0x003f, 0x003f, 0xd0f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f0, 0xae41, - 0x003f, 0x003f, 0xd477, 0x003f, 0xb0e4, 0xd4a7, 0xb0e2, 0xb0df, - 0xd47c, 0xb0db, 0xd4a2, 0xb0e6, 0xd476, 0xd47b, 0xd47a, 0xadf2, - 0xb0e1, 0xd4a5, 0x003f, 0xd4a8, 0xd473, 0x003f, 0xb3e8, 0x003f, - 0xd4a9, 0xb0e7, 0x003f, 0xb0d9, 0xb0d6, 0xd47e, 0xb0d3, 0x003f, - 0xd4a6, 0x003f, 0xb0da, 0xd4aa, 0x003f, 0xd474, 0xd4a4, 0xb0dd, - 0xd475, 0xd478, 0xd47d, 0x003f, 0x003f, 0xb0de, 0xb0dc, 0xb0e8, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb0e3, 0x003f, 0xb0d7, 0xb1d2, - 0x003f, 0xb0d8, 0xd479, 0xb0e5, 0xb0e0, 0xd4a3, 0xb0d5, 0x003f, - 0x003f, 0x003f, 0xb0d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd471, 0xd472, 0xd86a, - 0x003f, 0x003f, 0x003f, 0xb3d7, 0xb3da, 0xd875, 0xb3ee, 0xd878, - 0xb3d8, 0xd871, 0xb3de, 0xb3e4, 0xb5bd, 0x003f, 0x003f, 0xb3e2, - 0xd86e, 0xb3ef, 0xb3db, 0xb3e3, 0xd876, 0xdcd7, 0xd87b, 0xd86f, - 0x003f, 0xd866, 0xd873, 0xd86d, 0xb3e1, 0xd879, 0x003f, 0x003f, - 0xb3dd, 0xb3f1, 0xb3ea, 0x003f, 0xb3df, 0xb3dc, 0x003f, 0xb3e7, - 0x003f, 0xd87a, 0xd86c, 0xd872, 0xd874, 0xd868, 0xd877, 0xb3d9, - 0xd867, 0x003f, 0xb3e0, 0xb3f0, 0xb3ec, 0xd869, 0xb3e6, 0x003f, - 0x003f, 0xb3ed, 0xb3e9, 0xb3e5, 0x003f, 0xd870, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb3eb, 0x003f, 0x003f, 0x003f, 0xdcd5, - 0xdcd1, 0x003f, 0xdce0, 0xdcca, 0xdcd3, 0xb6e5, 0xb6e6, 0xb6de, - 0xdcdc, 0xb6e8, 0xdccf, 0xdcce, 0xdccc, 0xdcde, 0xb6dc, 0xdcd8, - 0xdccd, 0xb6df, 0xdcd6, 0xb6da, 0xdcd2, 0xdcd9, 0xdcdb, 0x003f, - 0x003f, 0xdcdf, 0xb6e3, 0xdccb, 0xb6dd, 0xdcd0, 0x003f, 0xb6d8, - 0x003f, 0xb6e4, 0xdcda, 0xb6e0, 0xb6e1, 0xb6e7, 0xb6db, 0xa25f, - 0xb6d9, 0xdcd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6e2, - 0x003f, 0x003f, 0xdcdd, 0x003f, 0x003f, 0x003f, 0xb9cd, 0xb9c8, - 0x003f, 0xe155, 0xe151, 0x003f, 0xe14b, 0xb9c2, 0xb9be, 0xe154, - /* 0x5600 .. 0x56ff */ - 0xb9bf, 0xe14e, 0xe150, 0x003f, 0xe153, 0x003f, 0xb9c4, 0x003f, - 0xb9cb, 0xb9c5, 0x003f, 0x003f, 0xe149, 0xb9c6, 0xb9c7, 0xe14c, - 0xb9cc, 0x003f, 0xe14a, 0xe14f, 0xb9c3, 0xe148, 0xb9c9, 0xb9c1, - 0x003f, 0x003f, 0x003f, 0xb9c0, 0xe14d, 0xe152, 0x003f, 0xb9ca, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe147, - 0x003f, 0xbc4d, 0xe547, 0x003f, 0xe544, 0x003f, 0xbc47, 0xbc53, - 0xbc54, 0x003f, 0xbc4a, 0xe542, 0xbc4c, 0xe4f9, 0xbc52, 0x003f, - 0xe546, 0xbc49, 0xe548, 0xbc48, 0x003f, 0xe543, 0xe545, 0xbc4b, - 0xe541, 0xe4fa, 0xe4f7, 0x003f, 0x003f, 0xd86b, 0xe4fd, 0x003f, - 0xe4f6, 0xe4fc, 0xe4fb, 0x003f, 0xe4f8, 0x003f, 0xbc4f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbc4e, 0x003f, 0x003f, 0x003f, 0xbc50, - 0xe4fe, 0xbeb2, 0xe540, 0x003f, 0x003f, 0x003f, 0xe945, 0x003f, - 0xe8fd, 0x003f, 0xbebe, 0xe942, 0xbeb6, 0xbeba, 0xe941, 0x003f, - 0xbeb9, 0xbeb5, 0xbeb8, 0xbeb3, 0xbebd, 0xe943, 0xe8fe, 0xbebc, - 0xe8fc, 0xbebb, 0xe944, 0xe940, 0xbc51, 0x003f, 0xbebf, 0xe946, - 0xbeb7, 0xbeb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xecc6, 0xecc8, - 0xc07b, 0xecc9, 0xecc7, 0xecc5, 0xecc4, 0xc07d, 0xecc3, 0xc07e, - 0x003f, 0x003f, 0x003f, 0x003f, 0xecc1, 0xecc2, 0xc07a, 0xc0a1, - 0xc07c, 0x003f, 0x003f, 0xecc0, 0x003f, 0xc250, 0x003f, 0xefbc, - 0xefba, 0xefbf, 0xefbd, 0x003f, 0xefbb, 0xefbe, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc360, 0xf1f2, 0xf1f3, - 0xc456, 0x003f, 0xf1f4, 0xf1f0, 0xf1f5, 0xf1f1, 0xc251, 0x003f, - 0x003f, 0x003f, 0xf3fe, 0xf441, 0xc459, 0xf440, 0xc458, 0xc457, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc45a, 0xf5c5, 0xf5c6, 0x003f, - 0xc4da, 0xc4d9, 0xc4db, 0xf5c4, 0x003f, 0xf6d8, 0xf6d7, 0x003f, - 0xc56d, 0xc56f, 0xc56e, 0xf6d9, 0xc5c8, 0xf8a6, 0x003f, 0x003f, - 0x003f, 0xc5f1, 0x003f, 0xf8a5, 0xf8ee, 0x003f, 0x003f, 0xc949, - 0x003f, 0x003f, 0xa57d, 0xa57c, 0x003f, 0xa65f, 0xa65e, 0xc9c7, - 0xa65d, 0xc9c6, 0x003f, 0x003f, 0xa779, 0xcaa9, 0x003f, 0xcaa8, - 0x003f, 0x003f, 0xa777, 0xa77a, 0x003f, 0x003f, 0xcaa7, 0x003f, - 0xa778, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbf0, - 0x003f, 0xcbf1, 0xa954, 0x003f, 0x003f, 0x003f, 0x003f, 0xabaa, - /* 0x5700 .. 0x57ff */ - 0x003f, 0xd148, 0xd149, 0xae45, 0xae46, 0x003f, 0x003f, 0xd4ac, - 0xb0e9, 0xb0eb, 0xd4ab, 0xb0ea, 0xd87c, 0xb3f2, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb6e9, 0xb6ea, 0xdce1, 0x003f, 0xb9cf, 0x003f, - 0xb9ce, 0x003f, 0xe549, 0xe948, 0xe947, 0x003f, 0xf96b, 0xa467, - 0xc959, 0x003f, 0xc96e, 0xc96f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa662, 0xa666, 0xc9c9, 0x003f, 0xa664, 0xa663, 0xc9c8, 0xa665, - 0xa661, 0x003f, 0x003f, 0xa660, 0xc9ca, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa7a6, 0x003f, 0x003f, 0xa7a3, 0x003f, - 0xa77d, 0xcaaa, 0x003f, 0x003f, 0x003f, 0xcaab, 0x003f, 0xa7a1, - 0x003f, 0xcaad, 0xa77b, 0xcaae, 0xcaac, 0xa77e, 0xa7a2, 0xa7a5, - 0xa7a4, 0xa77c, 0xcaaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa959, 0xcbfe, 0x003f, 0xa95b, 0x003f, 0xa95a, 0x003f, - 0xcc40, 0xa958, 0xa957, 0xcbf5, 0x003f, 0xcbf4, 0x003f, 0xcbf2, - 0xcbf7, 0xcbf6, 0xcbf3, 0xcbfc, 0xcbfd, 0xcbfa, 0xcbf8, 0xa956, - 0x003f, 0x003f, 0x003f, 0xcbfb, 0xa95c, 0xcc41, 0x003f, 0x003f, - 0xcbf9, 0x003f, 0xabab, 0xa955, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xabac, 0xce54, 0x003f, 0x003f, 0xce5a, - 0x003f, 0x003f, 0x003f, 0xabb2, 0xce58, 0xce5e, 0x003f, 0xce55, - 0xce59, 0xce5b, 0xce5d, 0xce57, 0x003f, 0xce56, 0xce51, 0xce52, - 0xabad, 0x003f, 0xabaf, 0xabae, 0xce53, 0xce5c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xabb1, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce50, 0xd153, 0x003f, - 0xd152, 0xd157, 0xd14e, 0x003f, 0xd151, 0xd150, 0x003f, 0xd154, - 0x003f, 0xd158, 0xae47, 0xae4a, 0x003f, 0x003f, 0xd14f, 0xd155, - 0x003f, 0x003f, 0x003f, 0xae49, 0xd14a, 0x003f, 0xabb0, 0xd4ba, - 0xd156, 0x003f, 0xd14d, 0x003f, 0xae48, 0xd14c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b1, 0x003f, 0x003f, 0xb0ec, - 0xb0f0, 0xd4c1, 0xd4af, 0xd4bd, 0xb0f1, 0xd4bf, 0x003f, 0xd4c5, - 0x003f, 0xd4c9, 0x003f, 0x003f, 0xd4c0, 0xd4b4, 0xd4bc, 0x003f, - 0xd4ca, 0xd4c8, 0xd4be, 0xd4b9, 0xd4b2, 0xd8a6, 0xd4b0, 0xb0f5, - 0xd4b7, 0xb0f6, 0xb0f2, 0xd4ad, 0xd4c3, 0xd4b5, 0x003f, 0x003f, - /* 0x5800 .. 0x58ff */ - 0xd4b3, 0xd4c6, 0xb0f3, 0x003f, 0xd4cc, 0xb0ed, 0xb0ef, 0xd4bb, - 0xd4b6, 0xae4b, 0xb0ee, 0xd4b8, 0xd4c7, 0xd4cb, 0xd4c2, 0x003f, - 0xd4c4, 0x003f, 0x003f, 0x003f, 0xd4ae, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd8a1, 0x003f, 0xd8aa, 0xd8a9, 0xb3fa, 0xd8a2, 0x003f, - 0xb3fb, 0xb3f9, 0x003f, 0xd8a4, 0xb3f6, 0xd8a8, 0x003f, 0xd8a3, - 0xd8a5, 0xd87d, 0xb3f4, 0x003f, 0xd8b2, 0xd8b1, 0xd8ae, 0xb3f3, - 0xb3f7, 0xb3f8, 0xd14b, 0xd8ab, 0xb3f5, 0xb0f4, 0xd8ad, 0xd87e, - 0xd8b0, 0xd8af, 0x003f, 0xd8b3, 0x003f, 0xdcef, 0x003f, 0xd8ac, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd8a7, 0xdce7, 0xb6f4, 0xb6f7, 0xb6f2, 0xdce6, 0xdcea, 0xdce5, - 0x003f, 0xb6ec, 0xb6f6, 0xdce2, 0xb6f0, 0xdce9, 0x003f, 0xb6ee, - 0xb6ed, 0xdcec, 0xb6ef, 0xdcee, 0x003f, 0xdceb, 0xb6eb, 0x003f, - 0x003f, 0x003f, 0xb6f5, 0xdcf0, 0xdce4, 0xdced, 0x003f, 0x003f, - 0xdce3, 0x003f, 0x003f, 0xb6f1, 0x003f, 0xb6f3, 0x003f, 0xdce8, - 0x003f, 0xdcf1, 0x003f, 0x003f, 0xe15d, 0xb9d0, 0xe163, 0x003f, - 0x003f, 0xb9d5, 0xe15f, 0xe166, 0xe157, 0xb9d7, 0xb9d1, 0xe15c, - 0xbc55, 0xe15b, 0xe164, 0xb9d2, 0x003f, 0xb9d6, 0xe15a, 0xe160, - 0xe165, 0xe156, 0xb9d4, 0xe15e, 0x003f, 0x003f, 0xe162, 0xe168, - 0xe158, 0xe161, 0x003f, 0xb9d3, 0xe167, 0x003f, 0x003f, 0x003f, - 0xe159, 0x003f, 0x003f, 0x003f, 0xbc59, 0xe54b, 0xbc57, 0xbc56, - 0xe54d, 0xe552, 0x003f, 0xe54e, 0x003f, 0xe551, 0xbc5c, 0x003f, - 0xbea5, 0xbc5b, 0x003f, 0xe54a, 0xe550, 0x003f, 0xbc5a, 0xe54f, - 0x003f, 0xe54c, 0x003f, 0xbc58, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe94d, 0xf9d9, 0xe94f, 0xe94a, 0xbec1, 0xe94c, - 0x003f, 0xbec0, 0xe94e, 0x003f, 0x003f, 0xbec3, 0xe950, 0xbec2, - 0xe949, 0xe94b, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0a5, 0xeccc, - 0x003f, 0xc0a4, 0xeccd, 0xc0a3, 0xeccb, 0xc0a2, 0xecca, 0x003f, - 0xc253, 0xc252, 0xf1f6, 0xf1f8, 0x003f, 0xf1f7, 0xc361, 0xc362, - 0x003f, 0x003f, 0xc363, 0xf442, 0xc45b, 0x003f, 0x003f, 0xf7d3, - 0xf7d2, 0xc5f2, 0x003f, 0xa468, 0xa4d0, 0x003f, 0x003f, 0xa7a7, - 0x003f, 0x003f, 0x003f, 0x003f, 0xce5f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb3fc, 0xb3fd, 0x003f, 0xdcf2, 0xb9d8, 0xe169, 0xe553, - /* 0x5900 .. 0x59ff */ - 0x003f, 0x003f, 0x003f, 0xc95a, 0x003f, 0x003f, 0xcab0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcc42, 0xce60, 0xd159, 0xae4c, - 0x003f, 0x003f, 0xf1f9, 0x003f, 0xc4dc, 0xa469, 0xa57e, 0xc970, - 0x003f, 0xa667, 0xa668, 0x003f, 0xa95d, 0x003f, 0x003f, 0x003f, - 0xb0f7, 0x003f, 0xb9da, 0x003f, 0xb9db, 0xb9d9, 0x003f, 0xa46a, - 0x003f, 0xa4d1, 0xa4d3, 0xa4d2, 0xc95b, 0xa4d4, 0xa5a1, 0xc971, - 0x003f, 0xa5a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa669, - 0xa66a, 0x003f, 0x003f, 0x003f, 0xc9cb, 0x003f, 0xa7a8, 0x003f, - 0xcab1, 0x003f, 0x003f, 0x003f, 0xa961, 0xcc43, 0x003f, 0xa95f, - 0xa960, 0xa95e, 0xd15a, 0x003f, 0x003f, 0x003f, 0xabb6, 0xabb5, - 0xabb7, 0xabb4, 0x003f, 0xce61, 0xa962, 0xabb3, 0x003f, 0xae4d, - 0xae4e, 0x003f, 0xae4f, 0x003f, 0xd4cd, 0x003f, 0x003f, 0x003f, - 0xb3fe, 0xd8b4, 0xb0f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6f8, - 0x003f, 0xb9dd, 0xb9dc, 0xe16a, 0x003f, 0xbc5d, 0xbec4, 0x003f, - 0xefc0, 0xf6da, 0xf7d4, 0xa46b, 0xa5a3, 0x003f, 0xa5a4, 0xc9d1, - 0xa66c, 0xa66f, 0x003f, 0xc9cf, 0xc9cd, 0xa66e, 0xc9d0, 0xc9d2, - 0xc9cc, 0xa671, 0xa670, 0xa66d, 0xa66b, 0xc9ce, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa7b3, 0x003f, 0x003f, 0xa7b0, 0xcab6, 0xcab9, - 0xcab8, 0x003f, 0xa7aa, 0xa7b2, 0x003f, 0x003f, 0xa7af, 0xcab5, - 0xcab3, 0xa7ae, 0x003f, 0x003f, 0x003f, 0xa7a9, 0xa7ac, 0x003f, - 0xcab4, 0xcabb, 0xcab7, 0xa7ad, 0xa7b1, 0xa7b4, 0xcab2, 0xcaba, - 0xa7ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa967, 0xa96f, - 0x003f, 0xcc4f, 0xcc48, 0xa970, 0xcc53, 0xcc44, 0xcc4b, 0x003f, - 0x003f, 0xa966, 0xcc45, 0xa964, 0xcc4c, 0xcc50, 0xa963, 0x003f, - 0xcc51, 0xcc4a, 0x003f, 0xcc4d, 0x003f, 0xa972, 0xa969, 0xcc54, - 0xcc52, 0x003f, 0xa96e, 0xa96c, 0xcc49, 0xa96b, 0xcc47, 0xcc46, - 0xa96a, 0xa968, 0xa971, 0xa96d, 0xa965, 0x003f, 0xcc4e, 0x003f, - 0xabb9, 0x003f, 0xabc0, 0xce6f, 0xabb8, 0xce67, 0xce63, 0x003f, - 0xce73, 0xce62, 0x003f, 0xabbb, 0xce6c, 0xabbe, 0xabc1, 0x003f, - 0xabbc, 0xce70, 0xabbf, 0x003f, 0xae56, 0xce76, 0xce64, 0x003f, - 0x003f, 0xce66, 0xce6d, 0xce71, 0xce75, 0xce72, 0xce6b, 0xce6e, - 0x003f, 0x003f, 0xce68, 0xabc3, 0xce6a, 0xce69, 0xce74, 0xabba, - /* 0x5a00 .. 0x5aff */ - 0xce65, 0xabc2, 0x003f, 0xabbd, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xae5c, 0xd162, 0x003f, 0xae5b, 0x003f, 0x003f, 0xd160, - 0x003f, 0xae50, 0x003f, 0xae55, 0x003f, 0xd15f, 0xd15c, 0xd161, - 0xae51, 0xd15b, 0x003f, 0xae54, 0xae52, 0x003f, 0xd163, 0xae53, - 0xae57, 0x003f, 0x003f, 0xae58, 0x003f, 0xae5a, 0x003f, 0x003f, - 0x003f, 0xae59, 0x003f, 0x003f, 0x003f, 0xd15d, 0xd15e, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd164, 0x003f, 0xd4d4, 0xb0f9, 0xd8c2, - 0xd4d3, 0xd4e6, 0x003f, 0x003f, 0xb140, 0x003f, 0xd4e4, 0x003f, - 0xb0fe, 0xb0fa, 0xd4ed, 0xd4dd, 0xd4e0, 0x003f, 0xb143, 0xd4ea, - 0xd4e2, 0xb0fb, 0xb144, 0x003f, 0xd4e7, 0xd4e5, 0x003f, 0x003f, - 0xd4d6, 0xd4eb, 0xd4df, 0xd4da, 0x003f, 0xd4d0, 0xd4ec, 0xd4dc, - 0xd4cf, 0x003f, 0xb142, 0xd4e1, 0xd4ee, 0xd4de, 0xd4d2, 0xd4d7, - 0xd4ce, 0x003f, 0xb141, 0x003f, 0xd4db, 0xd4d8, 0xb0fc, 0xd4d1, - 0x003f, 0xd4e9, 0xb0fd, 0x003f, 0xd4d9, 0xd4d5, 0x003f, 0x003f, - 0xd4e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb440, - 0xd8bb, 0x003f, 0xd8b8, 0xd8c9, 0xd8bd, 0xd8ca, 0x003f, 0xb442, - 0x003f, 0x003f, 0x003f, 0xd8c6, 0xd8c3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd8c4, 0xd8c7, 0xd8cb, 0x003f, 0xd4e3, 0xd8cd, - 0xdd47, 0x003f, 0xb443, 0xd8ce, 0xd8b6, 0xd8c0, 0x003f, 0xd8c5, - 0x003f, 0x003f, 0xb441, 0xb444, 0xd8cc, 0xd8cf, 0xd8ba, 0xd8b7, - 0x003f, 0x003f, 0xd8b9, 0x003f, 0x003f, 0xd8be, 0xd8bc, 0xb445, - 0x003f, 0xd8c8, 0x003f, 0x003f, 0xd8bf, 0x003f, 0xd8c1, 0xd8b5, - 0xdcfa, 0xdcf8, 0xb742, 0xb740, 0xdd43, 0xdcf9, 0xdd44, 0xdd40, - 0xdcf7, 0xdd46, 0xdcf6, 0xdcfd, 0xb6fe, 0xb6fd, 0xb6fc, 0xdcfb, - 0xdd41, 0xb6f9, 0xb741, 0x003f, 0xdcf4, 0x003f, 0xdcfe, 0xdcf3, - 0xdcfc, 0xb6fa, 0xdd42, 0xdcf5, 0xb6fb, 0xdd45, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe16e, 0xb9e2, 0xb9e1, - 0xb9e3, 0xe17a, 0xe170, 0xe176, 0xe16b, 0xe179, 0xe178, 0xe17c, - 0xe175, 0xb9de, 0xe174, 0xb9e4, 0x003f, 0xe16d, 0xb9df, 0x003f, - 0xe17b, 0xb9e0, 0xe16f, 0xe172, 0xe177, 0xe171, 0xe16c, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe173, 0xe555, 0xbc61, 0xe558, 0xe557, - 0xe55a, 0xe55c, 0xf9dc, 0xbc5f, 0x003f, 0xe556, 0x003f, 0xe554, - /* 0x5b00 .. 0x5bff */ - 0x003f, 0xe55d, 0xe55b, 0xe559, 0x003f, 0xe55f, 0x003f, 0xe55e, - 0xbc63, 0xbc5e, 0x003f, 0xbc60, 0xbc62, 0x003f, 0x003f, 0xe560, - 0xe957, 0x003f, 0x003f, 0xe956, 0xe955, 0x003f, 0xe958, 0xe951, - 0x003f, 0xe952, 0xe95a, 0xe953, 0x003f, 0xbec5, 0xe95c, 0x003f, - 0xe95b, 0xe954, 0x003f, 0xecd1, 0xc0a8, 0xeccf, 0xecd4, 0xecd3, - 0xe959, 0x003f, 0xc0a7, 0x003f, 0xecd2, 0xecce, 0xecd6, 0xecd5, - 0xc0a6, 0x003f, 0xecd0, 0x003f, 0xbec6, 0x003f, 0x003f, 0x003f, - 0xc254, 0x003f, 0x003f, 0x003f, 0xefc1, 0xf1fa, 0xf1fb, 0xf1fc, - 0xc45c, 0x003f, 0x003f, 0xc45d, 0x003f, 0xf443, 0x003f, 0xf5c8, - 0xf5c7, 0x003f, 0x003f, 0xf6db, 0xf6dc, 0xf7d5, 0xf8a7, 0x003f, - 0xa46c, 0xa46d, 0x003f, 0xa46e, 0xa4d5, 0xa5a5, 0xc9d3, 0xa672, - 0xa673, 0x003f, 0xa7b7, 0xa7b8, 0xa7b6, 0xa7b5, 0x003f, 0xa973, - 0x003f, 0x003f, 0xcc55, 0xa975, 0xa974, 0xcc56, 0x003f, 0x003f, - 0x003f, 0xabc4, 0x003f, 0xae5d, 0xd165, 0x003f, 0xd4f0, 0x003f, - 0xb145, 0xb447, 0xd4ef, 0xb446, 0x003f, 0xb9e5, 0x003f, 0xe17d, - 0xbec7, 0x003f, 0xc0a9, 0xecd7, 0x003f, 0xc45e, 0x003f, 0xc570, - 0x003f, 0xc972, 0x003f, 0xa5a6, 0xc973, 0xa676, 0x003f, 0xa674, - 0xa675, 0xa677, 0x003f, 0xa7ba, 0xa7b9, 0x003f, 0xcabc, 0xa7bb, - 0x003f, 0x003f, 0xcabd, 0xcc57, 0x003f, 0xcc58, 0x003f, 0xa976, - 0xa978, 0xa97a, 0xa977, 0xa97b, 0xa979, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xabc8, 0xabc5, 0xabc7, 0xabc9, 0xabc6, 0xd166, - 0xce77, 0x003f, 0x003f, 0x003f, 0xd168, 0xd167, 0xae63, 0x003f, - 0xae5f, 0x003f, 0x003f, 0xae60, 0xae62, 0xae64, 0xae61, 0x003f, - 0xae66, 0xae65, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb14a, - 0xd4f2, 0xd4f1, 0xb149, 0x003f, 0xb148, 0xb147, 0xb14b, 0xb146, - 0x003f, 0x003f, 0xd8d5, 0xd8d2, 0xb449, 0xd8d1, 0xd8d6, 0x003f, - 0xb44b, 0xd8d4, 0xb448, 0xb44a, 0xd8d3, 0x003f, 0xdd48, 0x003f, - 0xdd49, 0xdd4a, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9e6, 0xb9ee, - 0xe17e, 0xb9e8, 0xb9ec, 0xe1a1, 0xb9ed, 0xb9e9, 0xb9ea, 0xb9e7, - 0xb9eb, 0xbc66, 0xd8d0, 0xbc67, 0xbc65, 0x003f, 0xbc64, 0xe95d, - 0xbec8, 0xecd8, 0xecd9, 0x003f, 0x003f, 0xc364, 0xc45f, 0x003f, - 0xa46f, 0x003f, 0xa678, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x5c00 .. 0x5cff */ - 0x003f, 0xabca, 0x003f, 0xd169, 0xae67, 0x003f, 0x003f, 0xb14e, - 0xb14d, 0xb14c, 0xb44c, 0xb44d, 0xd8d7, 0xb9ef, 0xbec9, 0xa470, - 0xc95c, 0xa4d6, 0xc974, 0x003f, 0x003f, 0xc9d4, 0xa679, 0x003f, - 0x003f, 0x003f, 0xa97c, 0x003f, 0x003f, 0x003f, 0x003f, 0xdd4b, - 0x003f, 0x003f, 0xa471, 0x003f, 0xa4d7, 0xc9d5, 0x003f, 0x003f, - 0xcabe, 0x003f, 0xcabf, 0x003f, 0xa7bc, 0x003f, 0x003f, 0x003f, - 0xd8d8, 0xb44e, 0x003f, 0xdd4c, 0x003f, 0x003f, 0x003f, 0xc0aa, - 0xa472, 0xa4a8, 0xa4d8, 0xc975, 0xa5a7, 0x003f, 0xa7c0, 0xa7bf, - 0xa7bd, 0xa7be, 0x003f, 0x003f, 0xcc59, 0xa97e, 0xa9a1, 0xcc5a, - 0xa97d, 0x003f, 0x003f, 0xabce, 0xce78, 0xabcd, 0xabcb, 0xabcc, - 0xae6a, 0xae68, 0x003f, 0x003f, 0xd16b, 0xae69, 0xd16a, 0x003f, - 0xae5e, 0xd4f3, 0x003f, 0x003f, 0xb150, 0xb151, 0x003f, 0x003f, - 0xb14f, 0x003f, 0xb9f0, 0xe1a2, 0xbc68, 0xbc69, 0x003f, 0xe561, - 0xc0ab, 0xefc2, 0xefc3, 0x003f, 0xc4dd, 0xf8a8, 0xc94b, 0xa4d9, - 0x003f, 0xa473, 0x003f, 0xc977, 0xc976, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa67a, 0xc9d7, 0xc9d8, 0xc9d6, 0x003f, 0xc9d9, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac7, 0x003f, - 0xcac2, 0xcac4, 0xcac6, 0xcac3, 0xa7c4, 0xcac0, 0x003f, 0xcac1, - 0xa7c1, 0xa7c2, 0xcac5, 0xcac8, 0xa7c3, 0xcac9, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcc68, 0x003f, 0xcc62, - 0xcc5d, 0xa9a3, 0xcc65, 0xcc63, 0xcc5c, 0xcc69, 0xcc6c, 0xcc67, - 0xcc60, 0xa9a5, 0xcc66, 0xa9a6, 0xcc61, 0xcc64, 0xcc5b, 0xcc5f, - 0xcc6b, 0xa9a7, 0x003f, 0xa9a8, 0x003f, 0xcc5e, 0xcc6a, 0xa9a2, - 0xa9a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceab, 0xcea4, - 0xceaa, 0xcea3, 0xcea5, 0xce7d, 0xce7b, 0x003f, 0xceac, 0xcea9, - 0xce79, 0x003f, 0xabd0, 0xcea7, 0xcea8, 0x003f, 0xcea6, 0xce7c, - 0xce7a, 0xabcf, 0xcea2, 0xce7e, 0x003f, 0x003f, 0xcea1, 0xcead, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xae6f, 0x003f, 0xae6e, 0x003f, 0xd16c, 0xae6b, 0xd16e, 0x003f, - 0xae70, 0xd16f, 0x003f, 0x003f, 0xae73, 0x003f, 0xae71, 0xd170, - 0xceae, 0xd172, 0x003f, 0xae6d, 0x003f, 0xae6c, 0x003f, 0xd16d, - /* 0x5d00 .. 0x5dff */ - 0xd171, 0xae72, 0x003f, 0x003f, 0x003f, 0x003f, 0xb153, 0xb152, - 0x003f, 0x003f, 0x003f, 0xd4f5, 0xd4f9, 0xd4fb, 0xb154, 0xd4fe, - 0x003f, 0xb158, 0xd541, 0x003f, 0xb15a, 0x003f, 0xb156, 0xb15e, - 0x003f, 0xb15b, 0xd4f7, 0xb155, 0x003f, 0xd4f6, 0xd4f4, 0xd543, - 0xd4f8, 0x003f, 0xb157, 0xd542, 0xb15c, 0xd4fd, 0xd4fc, 0xb15d, - 0xd4fa, 0xb159, 0x003f, 0x003f, 0x003f, 0x003f, 0xd544, 0x003f, - 0xd540, 0xd8e7, 0xd8ee, 0xd8e3, 0xb451, 0xd8df, 0xd8ef, 0xd8d9, - 0xd8ec, 0xd8ea, 0xd8e4, 0x003f, 0xd8ed, 0xd8e6, 0x003f, 0xd8de, - 0xd8f0, 0xd8dc, 0xd8e9, 0xd8da, 0x003f, 0xd8f1, 0x003f, 0xb452, - 0x003f, 0xd8eb, 0xdd4f, 0xd8dd, 0xb44f, 0x003f, 0xd8e1, 0x003f, - 0xb450, 0xd8e0, 0xd8e5, 0x003f, 0x003f, 0xd8e2, 0x003f, 0x003f, - 0x003f, 0xd8e8, 0x003f, 0x003f, 0x003f, 0x003f, 0xdd53, 0x003f, - 0x003f, 0x003f, 0xdd56, 0xdd4e, 0x003f, 0xdd50, 0x003f, 0xdd55, - 0xdd54, 0xb743, 0x003f, 0xd8db, 0xdd52, 0x003f, 0x003f, 0xb744, - 0x003f, 0xdd4d, 0xdd51, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a9, - 0x003f, 0xe1b0, 0xe1a7, 0x003f, 0xe1ae, 0xe1a5, 0xe1ad, 0xe1b1, - 0xe1a4, 0xe1a8, 0xe1a3, 0x003f, 0xb9f1, 0x003f, 0xe1a6, 0xb9f2, - 0xe1ac, 0xe1ab, 0xe1aa, 0x003f, 0x003f, 0xe1af, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe565, 0xe567, 0xbc6b, 0xe568, 0x003f, 0xe563, - 0x003f, 0xe562, 0xe56c, 0x003f, 0xe56a, 0xbc6a, 0xe56d, 0xe564, - 0xe569, 0xe56b, 0xe566, 0x003f, 0x003f, 0x003f, 0x003f, 0xe961, - 0xe966, 0xe960, 0xe965, 0x003f, 0xe95e, 0xe968, 0xe964, 0xe969, - 0xe963, 0xe95f, 0xe967, 0x003f, 0xe96a, 0xe962, 0x003f, 0xecda, - 0xc0af, 0x003f, 0xc0ad, 0x003f, 0xc0ac, 0xc0ae, 0x003f, 0x003f, - 0xefc4, 0x003f, 0xf172, 0xf1fd, 0x003f, 0x003f, 0xf444, 0xf445, - 0x003f, 0xc460, 0x003f, 0xf5c9, 0x003f, 0xc4de, 0x003f, 0xf5ca, - 0x003f, 0xf6de, 0xc572, 0x003f, 0xc571, 0xf6dd, 0xc5c9, 0x003f, - 0xf7d6, 0x003f, 0x003f, 0x003f, 0x003f, 0xa474, 0xa67b, 0xc9da, - 0xcaca, 0xa8b5, 0xb15f, 0x003f, 0x003f, 0xa475, 0xa5aa, 0xa5a9, - 0xa5a8, 0x003f, 0x003f, 0xa7c5, 0x003f, 0x003f, 0xae74, 0x003f, - 0xdd57, 0xa476, 0xa477, 0xa478, 0xa4da, 0x003f, 0x003f, 0xabd1, - 0x003f, 0xceaf, 0x003f, 0x003f, 0x003f, 0xb453, 0xa479, 0xc95d, - /* 0x5e00 .. 0x5eff */ - 0x003f, 0x003f, 0xa5ab, 0xa5ac, 0xc978, 0x003f, 0xa67c, 0x003f, - 0x003f, 0x003f, 0xcacb, 0x003f, 0xa7c6, 0x003f, 0xcacc, 0x003f, - 0x003f, 0xa9ae, 0x003f, 0x003f, 0xcc6e, 0xa9ac, 0xa9ab, 0xcc6d, - 0xa9a9, 0xcc6f, 0xa9aa, 0xa9ad, 0x003f, 0xabd2, 0x003f, 0xabd4, - 0xceb3, 0xceb0, 0xceb1, 0xceb2, 0xceb4, 0xabd3, 0x003f, 0x003f, - 0xd174, 0xd173, 0x003f, 0xae76, 0x003f, 0xae75, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb162, 0xd546, 0x003f, 0xb161, 0xb163, - 0xb160, 0x003f, 0x003f, 0x003f, 0x003f, 0xb455, 0xd545, 0x003f, - 0xb456, 0xd8f3, 0x003f, 0xb457, 0xd8f2, 0xb454, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdd5a, 0xdd5c, 0xb745, 0xdd5b, 0xdd59, 0xdd58, - 0x003f, 0x003f, 0x003f, 0xe1b4, 0xb9f7, 0xb9f5, 0x003f, 0xb9f6, - 0xe1b2, 0xe1b3, 0x003f, 0xb9f3, 0xe571, 0xe56f, 0x003f, 0xbc6d, - 0xe570, 0xbc6e, 0xbc6c, 0xb9f4, 0x003f, 0x003f, 0xe96d, 0xe96b, - 0xe96c, 0xe56e, 0xecdc, 0xc0b0, 0xecdb, 0xefc5, 0xefc6, 0xe96e, - 0xf1fe, 0x003f, 0xa47a, 0xa5ad, 0xa67e, 0xc9db, 0xa67d, 0x003f, - 0xa9af, 0xb746, 0x003f, 0xa4db, 0xa5ae, 0xabd5, 0xb458, 0x003f, - 0xc979, 0x003f, 0xc97a, 0x003f, 0xc9dc, 0x003f, 0x003f, 0xa7c8, - 0xcad0, 0xcace, 0xa7c9, 0xcacd, 0xcacf, 0xcad1, 0x003f, 0xa7c7, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa9b3, 0xa9b4, 0xa9b1, - 0x003f, 0x003f, 0xa9b0, 0xceb8, 0xa9b2, 0x003f, 0x003f, 0x003f, - 0xabd6, 0x003f, 0xceb7, 0xceb9, 0xceb6, 0xceba, 0xabd7, 0xae79, - 0xd175, 0x003f, 0xd177, 0xae77, 0xd178, 0xae78, 0xd176, 0x003f, - 0xceb5, 0xd547, 0xd54a, 0xd54b, 0xd548, 0xb167, 0xb166, 0xb164, - 0xb165, 0xd549, 0x003f, 0x003f, 0x003f, 0x003f, 0xb168, 0x003f, - 0x003f, 0xb45a, 0xb45b, 0x003f, 0xb45c, 0xdd5d, 0xdd5f, 0xdd61, - 0xb748, 0xb747, 0xb459, 0xdd60, 0xdd5e, 0x003f, 0xe1b8, 0x003f, - 0x003f, 0xe1b6, 0xe1bc, 0xb9f8, 0xe1bd, 0xe1ba, 0xb9f9, 0xe1b7, - 0xe1b5, 0xe1bb, 0xbc70, 0xe573, 0xe1b9, 0xbc72, 0xe574, 0xbc71, - 0xbc74, 0xe575, 0xbc6f, 0xbc73, 0x003f, 0xe973, 0xe971, 0xe970, - 0xe972, 0xe96f, 0x003f, 0x003f, 0xc366, 0x003f, 0xf446, 0xf447, - 0x003f, 0xf5cb, 0xf6df, 0xc655, 0x003f, 0x003f, 0xa9b5, 0xa7ca, - 0x003f, 0x003f, 0xabd8, 0x003f, 0x003f, 0x003f, 0xa47b, 0xa4dc, - /* 0x5f00 .. 0x5fff */ - 0x003f, 0xa5af, 0xc9dd, 0x003f, 0xa7cb, 0xcad2, 0x003f, 0xcebb, - 0xabd9, 0x003f, 0xb9fa, 0xa47c, 0x003f, 0x003f, 0x003f, 0xa6a1, - 0x003f, 0x003f, 0xb749, 0xa47d, 0xa4dd, 0xa4de, 0x003f, 0xa5b1, - 0xa5b0, 0x003f, 0xc9de, 0xa6a2, 0x003f, 0xcad3, 0x003f, 0xa7cc, - 0x003f, 0x003f, 0xcc71, 0xcc72, 0xcc73, 0x003f, 0xa9b6, 0xa9b7, - 0xcc70, 0xa9b8, 0x003f, 0x003f, 0x003f, 0xabda, 0xcebc, 0x003f, - 0xd17a, 0xae7a, 0x003f, 0xd179, 0x003f, 0xb169, 0xd54c, 0xb16a, - 0xd54d, 0x003f, 0x003f, 0x003f, 0xb45d, 0x003f, 0x003f, 0x003f, - 0xdd62, 0x003f, 0x003f, 0xe1bf, 0xe1be, 0x003f, 0xb9fb, 0x003f, - 0xbc75, 0xe576, 0xbeca, 0xe974, 0xc0b1, 0x003f, 0xc573, 0xf7d8, - 0x003f, 0x003f, 0x003f, 0x003f, 0xcc74, 0x003f, 0xcebd, 0xb16b, - 0xd8f4, 0xb74a, 0x003f, 0x003f, 0x003f, 0xc255, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa7ce, 0x003f, 0xa7cd, 0xabdb, 0x003f, 0xd17b, - 0x003f, 0xb16d, 0xb343, 0xb16e, 0xb16c, 0xb45e, 0x003f, 0xe1c0, - 0xb9fc, 0xbc76, 0x003f, 0xc94c, 0xc9df, 0x003f, 0xcad5, 0xa7cf, - 0xcad4, 0xa7d0, 0x003f, 0x003f, 0xa9bc, 0xcc77, 0xcc76, 0xa9bb, - 0xa9b9, 0xa9ba, 0xcc75, 0x003f, 0x003f, 0xabdd, 0xcebe, 0xabe0, - 0xabdc, 0xabe2, 0xabde, 0xabdf, 0xabe1, 0x003f, 0x003f, 0x003f, - 0xae7d, 0xae7c, 0xae7b, 0x003f, 0x003f, 0x003f, 0xd54f, 0xb16f, - 0xb172, 0xb170, 0x003f, 0xd54e, 0xb175, 0x003f, 0xb171, 0xd550, - 0xb174, 0xb173, 0x003f, 0x003f, 0x003f, 0xd8f6, 0xd8f5, 0x003f, - 0xb461, 0xb45f, 0xb460, 0xd8f7, 0xb74b, 0xdd64, 0xb74c, 0xdd63, - 0x003f, 0x003f, 0xe577, 0x003f, 0x003f, 0xbc78, 0xe1c1, 0xbc77, - 0x003f, 0xb9fd, 0x003f, 0xecde, 0xe975, 0xc0b2, 0xecdd, 0xf240, - 0xf448, 0xf449, 0x003f, 0xa4df, 0x003f, 0xa5b2, 0x003f, 0x003f, - 0x003f, 0xc97b, 0x003f, 0x003f, 0xa7d2, 0xa7d4, 0x003f, 0xc9e2, - 0xcad8, 0xcad7, 0xcad6, 0x003f, 0xc9e1, 0xc9e0, 0xa6a4, 0xa7d3, - 0xa7d1, 0xa6a3, 0x003f, 0x003f, 0x003f, 0xa9bd, 0xcc78, 0x003f, - 0xa9be, 0xcadd, 0x003f, 0xcadf, 0xcade, 0xcc79, 0x003f, 0x003f, - 0xcada, 0x003f, 0xa7d8, 0xa7d6, 0x003f, 0xcad9, 0xcadb, 0xcae1, - 0x003f, 0xa7d5, 0x003f, 0xcadc, 0xcae5, 0xa9c0, 0x003f, 0xcae2, - 0xa7d7, 0x003f, 0xcae0, 0xcae3, 0x003f, 0xa9bf, 0x003f, 0xa9c1, - /* 0x6000 .. 0x60ff */ - 0xcae4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xccaf, 0xcca2, 0xcc7e, 0xccae, 0xcca9, 0xabe7, 0xa9c2, - 0xccaa, 0xccad, 0xabe3, 0xccac, 0xa9c3, 0xa9c8, 0xa9c6, 0xcca3, - 0x003f, 0xcc7c, 0xcca5, 0xa9cd, 0xccb0, 0xabe4, 0xcca6, 0x003f, - 0xabe5, 0xa9c9, 0xcca8, 0x003f, 0xcecd, 0xabe6, 0xcc7b, 0xa9ca, - 0xabe8, 0xa9cb, 0xa9c7, 0xa9cc, 0xcca7, 0xcc7a, 0xccab, 0xa9c4, - 0x003f, 0x003f, 0xcc7d, 0xcca4, 0xcca1, 0xa9c5, 0x003f, 0xcebf, - 0x003f, 0xcec0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xceca, 0xd1a1, 0xcecb, 0xabee, 0xcece, 0xcec4, 0xabed, 0xcec6, - 0x003f, 0xcec7, 0x003f, 0x003f, 0xcec9, 0xabe9, 0x003f, 0x003f, - 0xaea3, 0x003f, 0xf9da, 0xcec5, 0xcec1, 0xaea4, 0x003f, 0x003f, - 0xcecf, 0xae7e, 0xd17d, 0xcec8, 0x003f, 0xd17c, 0xcec3, 0xcecc, - 0x003f, 0x003f, 0xabec, 0xaea1, 0xabf2, 0xaea2, 0xced0, 0xd17e, - 0xabeb, 0xaea6, 0xabf1, 0xabf0, 0xabef, 0xaea5, 0xced1, 0xaea7, - 0xabea, 0x003f, 0xcec2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb176, - 0xd1a4, 0xd1a6, 0x003f, 0xd1a8, 0xaea8, 0xaeae, 0xd553, 0xd1ac, - 0xd1a3, 0xb178, 0xd551, 0x003f, 0xaead, 0xaeab, 0xd1ae, 0x003f, - 0xd552, 0x003f, 0xd1a5, 0x003f, 0xaeac, 0xd1a9, 0xaeaf, 0xd1ab, - 0x003f, 0x003f, 0xaeaa, 0xd1aa, 0xd1ad, 0xd1a7, 0x003f, 0xaea9, - 0xb179, 0x003f, 0xd1a2, 0xb177, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb17a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd555, 0xd55e, 0xb464, 0x003f, 0xb17c, 0xb1a3, 0xb465, 0xd560, - 0xb1aa, 0xd8f9, 0xd556, 0xb1a2, 0xb1a5, 0xb17e, 0xd554, 0xd562, - 0xd565, 0xd949, 0x003f, 0xd563, 0xd8fd, 0xb1a1, 0xb1a8, 0xb1ac, - 0xd55d, 0xd8f8, 0xd561, 0xb17b, 0xd8fa, 0xd564, 0xd8fc, 0xd559, - 0x003f, 0xb462, 0x003f, 0xd557, 0xd558, 0xb1a7, 0x003f, 0x003f, - 0xb1a6, 0xd55b, 0xb1ab, 0xd55f, 0xb1a4, 0xd55c, 0x003f, 0xb1a9, - 0xb466, 0xb463, 0xd8fb, 0x003f, 0xd55a, 0x003f, 0xb17d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb46b, 0xb46f, 0xd940, 0xb751, 0xb46d, 0xd944, 0xb471, 0xdd65, - 0xd946, 0xb753, 0xb469, 0xb46c, 0xd947, 0x003f, 0xd948, 0xd94e, - /* 0x6100 .. 0x61ff */ - 0xb473, 0xb754, 0x003f, 0xd94a, 0xd94f, 0xd943, 0xb75e, 0x003f, - 0xb755, 0xb472, 0xd941, 0xd950, 0x003f, 0xb75d, 0xb470, 0xb74e, - 0xd94d, 0x003f, 0xb474, 0xd945, 0xd8fe, 0xb46a, 0xd942, 0x003f, - 0xd94b, 0x003f, 0xb74d, 0xb752, 0xb467, 0xd94c, 0x003f, 0xb750, - 0x003f, 0x003f, 0x003f, 0xb468, 0x003f, 0x003f, 0x003f, 0xb75c, - 0xe1c3, 0xdd70, 0x003f, 0xdd68, 0xe1c2, 0x003f, 0xdd6c, 0xdd6e, - 0x003f, 0x003f, 0xdd6b, 0x003f, 0xb75b, 0x003f, 0xdd6a, 0xb75f, - 0x003f, 0x003f, 0x003f, 0xe1d2, 0x003f, 0x003f, 0xb75a, 0xba40, - 0xdd71, 0xe1c4, 0x003f, 0x003f, 0xb758, 0xdd69, 0xdd6d, 0xb9fe, - 0xb74f, 0xdd66, 0xdd67, 0xba41, 0xb757, 0xb759, 0xb756, 0xdd6f, - 0x003f, 0x003f, 0xe1c8, 0xe1c9, 0xe1ce, 0xbc7d, 0xe1d5, 0x003f, - 0xba47, 0x003f, 0xba46, 0xe1d0, 0x003f, 0xbc7c, 0xe1c5, 0xba45, - 0x003f, 0xe1d4, 0xba43, 0xba44, 0x003f, 0xe1d1, 0xe5aa, 0xbc7a, - 0xb46e, 0x003f, 0xe1d3, 0xbca3, 0xe1cb, 0x003f, 0xbc7b, 0x003f, - 0xbca2, 0xe1c6, 0xe1ca, 0xe1c7, 0xe1cd, 0xba48, 0xbc79, 0xba42, - 0x003f, 0xe57a, 0xe1cf, 0x003f, 0xbca1, 0x003f, 0xbca4, 0x003f, - 0xe1cc, 0x003f, 0xbc7e, 0xe579, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe57e, 0xbece, 0xe578, 0xe9a3, 0xe5a9, 0xbca8, 0x003f, - 0xbca6, 0xbecc, 0xe5a6, 0xe5a2, 0xbcac, 0x003f, 0xe978, 0x003f, - 0x003f, 0x003f, 0xbcaa, 0xe5a1, 0x003f, 0xe976, 0x003f, 0xe5a5, - 0x003f, 0xe5a8, 0xe57d, 0x003f, 0xbcab, 0x003f, 0x003f, 0xbca5, - 0xe977, 0xbecd, 0xe5a7, 0xbca7, 0xbca9, 0xe5a4, 0xbcad, 0xe5a3, - 0xe57c, 0xe57b, 0xbecb, 0xe5ab, 0xe97a, 0xece0, 0xbed0, 0x003f, - 0xe9a2, 0x003f, 0xe97e, 0x003f, 0xece1, 0x003f, 0xbed1, 0xe9a1, - 0x003f, 0xe97c, 0xc0b4, 0xecdf, 0x003f, 0xe979, 0xe97b, 0xc0b5, - 0xbed3, 0xc0b3, 0xbed2, 0xc0b7, 0xe97d, 0xbecf, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefcf, 0x003f, - 0xefc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xece7, 0xefc8, - 0xece3, 0x003f, 0x003f, 0xc256, 0xece5, 0xece4, 0xc0b6, 0xece2, - 0xece6, 0xefd0, 0xefcc, 0xefce, 0x003f, 0xefc9, 0xefca, 0x003f, - 0xefcd, 0xefcb, 0xc367, 0x003f, 0x003f, 0xc36a, 0xc369, 0xc368, - 0xc461, 0xf44a, 0xc462, 0xf241, 0xc4df, 0xf5cc, 0xc4e0, 0xc574, - /* 0x6200 .. 0x62ff */ - 0xc5ca, 0xf7d9, 0x003f, 0xf7da, 0xf7db, 0x003f, 0x003f, 0xf9ba, - 0xa4e0, 0xc97c, 0xa5b3, 0x003f, 0xa6a6, 0xa6a7, 0xa6a5, 0x003f, - 0xa6a8, 0xa7da, 0xa7d9, 0x003f, 0xccb1, 0xa9cf, 0xa9ce, 0x003f, - 0x003f, 0xd1af, 0xb1ad, 0xb1ae, 0x003f, 0x003f, 0x003f, 0xb475, - 0xdd72, 0xb760, 0xb761, 0xdd74, 0xdd76, 0xdd75, 0x003f, 0xe1d7, - 0x003f, 0xe1d6, 0xba49, 0xe1d8, 0x003f, 0xe5ac, 0xbcae, 0x003f, - 0xbed4, 0x003f, 0xc0b8, 0xc257, 0xc0b9, 0x003f, 0xa4e1, 0x003f, - 0x003f, 0x003f, 0xcae6, 0x003f, 0x003f, 0xccb2, 0xa9d1, 0xa9d0, - 0xa9d2, 0xabf3, 0xced2, 0xced3, 0x003f, 0x003f, 0xd1b0, 0xaeb0, - 0xb1af, 0xb476, 0xd951, 0xa4e2, 0x003f, 0xa47e, 0xa4e3, 0x003f, - 0xc97d, 0xa5b7, 0xa5b6, 0xa5b4, 0xa5b5, 0x003f, 0x003f, 0x003f, - 0xa6ab, 0xc9e9, 0xc9eb, 0xa6aa, 0xc9e3, 0x003f, 0xc9e4, 0x003f, - 0xc9ea, 0xc9e6, 0xc9e8, 0xa6a9, 0xc9e5, 0xc9ec, 0xc9e7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7e1, 0xa7ea, 0xa7e8, - 0xcaf0, 0xcaed, 0xcaf5, 0xa7e6, 0xcaf6, 0x003f, 0xa7df, 0xcaf3, - 0x003f, 0xa7e5, 0xcaef, 0xcaee, 0xa7e3, 0xcaf4, 0xa7e4, 0xa9d3, - 0xa7de, 0xcaf1, 0x003f, 0xcae7, 0xa7db, 0x003f, 0xa7ee, 0xcaec, - 0xcaf2, 0xa7e0, 0xa7e2, 0x003f, 0xcae8, 0x003f, 0xcae9, 0xcaea, - 0x003f, 0xa7ed, 0xa7e7, 0xa7ec, 0xcaeb, 0xa7eb, 0xa7dd, 0xa7dc, - 0xa7e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa9e1, 0xccbe, 0xccb7, 0xa9dc, 0xa9ef, 0xccb3, 0xccba, 0xccbc, - 0xccbf, 0xa9ea, 0x003f, 0xccbb, 0xccb4, 0xa9e8, 0xccb8, 0x003f, - 0xccc0, 0xa9d9, 0x003f, 0xccbd, 0xa9e3, 0xa9e2, 0xccb6, 0xa9d7, - 0x003f, 0x003f, 0xa9d8, 0x003f, 0xa9d6, 0x003f, 0xa9ee, 0xa9e6, - 0xa9e0, 0xa9d4, 0xccb9, 0xa9df, 0xa9d5, 0xa9e7, 0xa9f0, 0xced4, - 0xa9e4, 0xccb5, 0xa9da, 0xa9dd, 0xa9de, 0x003f, 0xa9ec, 0xa9ed, - 0xa9eb, 0xa9e5, 0xa9e9, 0xa9db, 0xabf4, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xceda, 0xac41, 0xabf8, 0xabfa, 0xac40, - 0xcee6, 0xabfd, 0xd1b1, 0xaeb1, 0xac43, 0xced7, 0xcedf, 0xabfe, - 0xcede, 0xcedb, 0xcee3, 0xcee5, 0xabf7, 0xabfb, 0xac42, 0xaeb3, - /* 0x6300 .. 0x63ff */ - 0xcee0, 0xabf9, 0xac45, 0xced9, 0x003f, 0x003f, 0x003f, 0xabfc, - 0xaeb2, 0xabf6, 0x003f, 0xced6, 0xcedd, 0xced5, 0xced8, 0xcedc, - 0xd1b2, 0xac44, 0x003f, 0xcee1, 0xcee2, 0xcee4, 0xabf5, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xaec1, 0xd1be, 0xaebf, 0xaec0, 0xd1b4, 0xd1c4, 0x003f, 0xaeb6, - 0x003f, 0x003f, 0xd566, 0xd1c6, 0xd1c0, 0x003f, 0xd1b7, 0x003f, - 0xd1c9, 0xd1ba, 0xaebc, 0xd57d, 0xd1bd, 0xaebe, 0xaeb5, 0x003f, - 0xd1cb, 0xd1bf, 0xaeb8, 0xd1b8, 0xd1b5, 0xd1b6, 0xaeb9, 0xd1c5, - 0xd1cc, 0xaebb, 0xd1bc, 0xd1bb, 0xaec3, 0xaec2, 0xaeb4, 0xaeba, - 0xaebd, 0xd1c8, 0x003f, 0x003f, 0xd1c2, 0xaeb7, 0xd1b3, 0xd1ca, - 0xd1c1, 0xd1c3, 0xd1c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd567, 0x003f, 0xb1b7, - 0xb1cb, 0xb1ca, 0x003f, 0xb1bf, 0x003f, 0xd579, 0xd575, 0xd572, - 0xd5a6, 0xb1ba, 0xb1b2, 0x003f, 0x003f, 0xd577, 0xb4a8, 0xb1b6, - 0xd5a1, 0x003f, 0xb1cc, 0xb1c9, 0xd57b, 0xd56a, 0x003f, 0x003f, - 0xb1c8, 0xd5a3, 0xd569, 0xb1bd, 0xb1c1, 0xd5a2, 0x003f, 0xd573, - 0xb1c2, 0xb1bc, 0xd568, 0x003f, 0xb478, 0xd5a5, 0xd571, 0xb1c7, - 0xd574, 0xd5a4, 0xb1c6, 0x003f, 0xd952, 0x003f, 0xb1b3, 0xd56f, - 0xb1b8, 0xb1c3, 0x003f, 0xb1be, 0xd578, 0xd56e, 0xd56c, 0xd57e, - 0xb1b0, 0xb1c4, 0xb1b4, 0xb477, 0xd57c, 0xb1b5, 0x003f, 0xb1b1, - 0xb1c0, 0xb1bb, 0xb1b9, 0xd570, 0xb1c5, 0xd56d, 0xd57a, 0xd576, - 0xd954, 0xd953, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd56b, 0xd964, 0x003f, - 0xb47a, 0x003f, 0xd96a, 0xd959, 0xd967, 0xdd77, 0xb47d, 0xd96b, - 0xd96e, 0xb47c, 0xd95c, 0xd96d, 0xd96c, 0xb47e, 0xd955, 0xb479, - 0xb4a3, 0x003f, 0xb4a1, 0xd969, 0x003f, 0xd95f, 0xb4a5, 0xd970, - 0xd968, 0xd971, 0xb4ad, 0xb4ab, 0xd966, 0xd965, 0x003f, 0xd963, - 0xd95d, 0xb4a4, 0x003f, 0xb4a2, 0xd1b9, 0xd956, 0x003f, 0xddb7, - 0xd957, 0xb47b, 0xb4aa, 0xdd79, 0x003f, 0xb4a6, 0xb4a7, 0xd958, - 0xd96f, 0xdd78, 0xd960, 0xd95b, 0xb4a9, 0xd961, 0xd95e, 0x003f, - 0x003f, 0xb4ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6400 .. 0x64ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb770, 0x003f, - 0x003f, 0xdd7c, 0xddb1, 0xddb6, 0xddaa, 0xb76c, 0xddbb, 0xb769, - 0xdd7a, 0x003f, 0xdd7b, 0xb762, 0xb76b, 0xdda4, 0xb76e, 0xb76f, - 0xdda5, 0x003f, 0xddb2, 0xddb8, 0xb76a, 0x003f, 0xb764, 0xdda3, - 0xdd7d, 0xddba, 0xdda8, 0xdda9, 0xdd7e, 0xddb4, 0xddab, 0xddb5, - 0xddad, 0x003f, 0xb765, 0xe1d9, 0xb768, 0xb766, 0xddb9, 0xddb0, - 0xddac, 0x003f, 0x003f, 0xdda1, 0xba53, 0xddaf, 0xb76d, 0xdda7, - 0x003f, 0xdda6, 0x003f, 0x003f, 0x003f, 0xb767, 0xb763, 0xe1ee, - 0xddb3, 0xddae, 0x003f, 0xdda2, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe1e9, 0x003f, 0xe1da, 0xe1e5, 0x003f, - 0xe1ec, 0xba51, 0xb4ac, 0xe1ea, 0xba4c, 0x003f, 0x003f, 0x003f, - 0xba4b, 0xe1f1, 0x003f, 0xe1db, 0xe1e8, 0xe1dc, 0xe1e7, 0xba4f, - 0xe1eb, 0xd962, 0x003f, 0x003f, 0x003f, 0xe1f2, 0xe1e3, 0xba52, - 0xe5ba, 0xbcaf, 0x003f, 0xe1f0, 0xe1ef, 0xba54, 0xe5ad, 0xbcb0, - 0xe5ae, 0x003f, 0xe1df, 0xe1e0, 0xe1dd, 0xe1e2, 0xe1de, 0xe1f3, - 0xba4e, 0xbcb1, 0xba50, 0xba55, 0x003f, 0xe1e1, 0x003f, 0xe1ed, - 0x003f, 0x003f, 0xe1e6, 0x003f, 0x003f, 0xe5b1, 0x003f, 0xba4a, - 0xbcb4, 0xe9aa, 0xe5b6, 0xe5b5, 0xe5b7, 0x003f, 0x003f, 0xe5b4, - 0xbcb5, 0x003f, 0xbcbb, 0xbcb8, 0x003f, 0xbcb9, 0xe5af, 0xe5b2, - 0xe5bc, 0xbcc1, 0xbcbf, 0x003f, 0xe5b3, 0xd95a, 0xbcb2, 0xe5b9, - 0xe5b0, 0x003f, 0xbcc2, 0xe5b8, 0xba4d, 0xbcb7, 0xe1e4, 0x003f, - 0x003f, 0xbcba, 0x003f, 0xbcbe, 0xbcc0, 0xbcbd, 0xbcbc, 0x003f, - 0xbcb6, 0xe5bb, 0xbcb3, 0xbcc3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xbed8, 0xbed9, 0xe9a9, 0xbee2, 0xbedf, - 0x003f, 0xbed6, 0xbedd, 0xe9ab, 0xbedb, 0xbed5, 0x003f, 0xbedc, - 0x003f, 0xe9a8, 0xc0bb, 0xbed7, 0x003f, 0xbede, 0xc0ba, 0xe9a7, - 0xe9a6, 0x003f, 0xbee0, 0x003f, 0xbee1, 0x003f, 0xe9a5, 0xe9a4, - 0xc0bc, 0xe9ae, 0xbeda, 0xe9ac, 0x003f, 0x003f, 0x003f, 0x003f, - 0xc0bd, 0x003f, 0xc0c2, 0xecea, 0xecec, 0x003f, 0xc0bf, 0x003f, - 0xeced, 0xece9, 0x003f, 0xeceb, 0xc0c0, 0xc0c3, 0x003f, 0xece8, - 0xc0be, 0xc0c1, 0xc259, 0xe9ad, 0xc258, 0x003f, 0x003f, 0xc25e, - 0xefd4, 0x003f, 0xc25c, 0xc25d, 0xefd7, 0xefd3, 0xc25a, 0xefd1, - /* 0x6500 .. 0x65ff */ - 0xc36b, 0xefd5, 0x003f, 0xefd6, 0xefd2, 0x003f, 0xc25b, 0xf242, - 0x003f, 0xf245, 0x003f, 0x003f, 0xf246, 0xf244, 0xf247, 0xc36c, - 0xf243, 0x003f, 0x003f, 0xf44e, 0xc464, 0xf44d, 0xf44c, 0xf44b, - 0xc463, 0xc465, 0x003f, 0xf5cd, 0xc4e2, 0xc4e1, 0x003f, 0x003f, - 0xf6e1, 0xf6e0, 0xf6e3, 0xc5cb, 0xc575, 0xf7dd, 0xf6e2, 0x003f, - 0x003f, 0xf7dc, 0xc5cd, 0xc5cc, 0xc5f3, 0xf8a9, 0xf8ef, 0xa4e4, - 0x003f, 0x003f, 0xd972, 0xe9af, 0x003f, 0x003f, 0xa6ac, 0xcaf7, - 0xa7f1, 0xa7ef, 0x003f, 0xa7f0, 0x003f, 0xccc1, 0xa9f1, 0xac46, - 0x003f, 0xcee7, 0x003f, 0xcee8, 0x003f, 0xac47, 0xd1ce, 0x003f, - 0xaec4, 0xaec5, 0xd1cd, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1d3, - 0x003f, 0xb1cf, 0x003f, 0xd5a7, 0xb1d6, 0xb1d5, 0xb1ce, 0xb1d1, - 0xb1d4, 0xb1d0, 0x003f, 0x003f, 0xd976, 0xb1cd, 0xb4af, 0x003f, - 0x003f, 0x003f, 0xb4b1, 0xb4b2, 0xd975, 0xd978, 0xb4b0, 0xd973, - 0xd977, 0x003f, 0xd974, 0x003f, 0xb771, 0x003f, 0x003f, 0xddbc, - 0x003f, 0x003f, 0xba56, 0xe1f4, 0xbee3, 0xbcc4, 0xe5bd, 0xbcc5, - 0xbcc6, 0xe5bf, 0xe5be, 0xe5c0, 0xe9b1, 0x003f, 0x003f, 0xe9b0, - 0xecef, 0xecee, 0xc0c4, 0xc0c5, 0xf248, 0x003f, 0x003f, 0xa4e5, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd979, 0x003f, 0x003f, 0x003f, - 0xb4b4, 0xb4b3, 0xddbd, 0x003f, 0xefd8, 0xc4e3, 0xf7de, 0xa4e6, - 0x003f, 0xaec6, 0x003f, 0xb1d8, 0xb1d7, 0xd97a, 0xd97b, 0xb772, - 0xe1f5, 0xba57, 0xe9b2, 0x003f, 0xa4e7, 0xa5b8, 0x003f, 0xa9f2, - 0xccc2, 0x003f, 0xcee9, 0xac48, 0xb1d9, 0x003f, 0xd97c, 0xb4b5, - 0xb773, 0x003f, 0xe5c1, 0xe5c2, 0x003f, 0x003f, 0xecf0, 0xc25f, - 0xf8f0, 0xa4e8, 0x003f, 0xccc3, 0xa9f3, 0xac49, 0x003f, 0xceea, - 0x003f, 0xaec7, 0xd1d2, 0xd1d0, 0xd1d1, 0xaec8, 0xd1cf, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb1db, 0xb1dc, 0xd5a8, 0xb1dd, 0xb1da, - 0xd97d, 0x003f, 0xd97e, 0xddbe, 0x003f, 0x003f, 0xba59, 0xba58, - 0x003f, 0x003f, 0xecf1, 0xefd9, 0x003f, 0xf24a, 0xf249, 0xf44f, - 0x003f, 0xc95e, 0xac4a, 0x003f, 0x003f, 0xa4e9, 0xa5b9, 0x003f, - 0xa6ae, 0xa6ad, 0x003f, 0x003f, 0xa6af, 0xa6b0, 0xc9ee, 0xc9ed, - 0xcaf8, 0xa7f2, 0xcafb, 0xcafa, 0xcaf9, 0xcafc, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa9f4, 0xccc9, 0xccc5, 0xccce, 0x003f, 0x003f, - /* 0x6600 .. 0x66ff */ - 0xa9fb, 0x003f, 0xa9f9, 0xccca, 0xccc6, 0xcccd, 0xa9f8, 0xaa40, - 0xccc8, 0xccc4, 0xa9fe, 0xcccb, 0xa9f7, 0xcccc, 0xa9fa, 0xa9fc, - 0xccd0, 0xcccf, 0xccc7, 0xa9f6, 0xa9f5, 0xa9fd, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xceef, 0xcef5, 0x003f, 0xac50, - 0xac4d, 0xceec, 0xcef1, 0x003f, 0xac53, 0xac4b, 0xcef0, 0xac4e, - 0xac51, 0x003f, 0x003f, 0xcef3, 0x003f, 0xac4c, 0xcef8, 0xac4f, - 0x003f, 0xac52, 0xceed, 0xcef2, 0xcef6, 0xceee, 0xceeb, 0x003f, - 0x003f, 0xcef7, 0xcef4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xaed0, 0xaec9, 0xaecc, 0x003f, 0xaecf, 0x003f, 0xd1d5, - 0x003f, 0xaeca, 0xd1d3, 0x003f, 0xaece, 0x003f, 0x003f, 0xaecb, - 0x003f, 0xd1d6, 0xaecd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd5ac, 0xb1df, 0xd5ab, 0xd5ad, 0xb1de, 0xb1e3, 0xd1d4, - 0x003f, 0xd5aa, 0xd5ae, 0x003f, 0xb1e0, 0xd5a9, 0xb1e2, 0x003f, - 0xb1e1, 0x003f, 0xd9a7, 0x003f, 0xd9a2, 0x003f, 0xb4b6, 0xb4ba, - 0xb4b7, 0xd9a5, 0xd9a8, 0x003f, 0xb4b8, 0x003f, 0xb4b9, 0xb4be, - 0xddc7, 0xd9a6, 0xb4bc, 0xd9a3, 0xd9a1, 0x003f, 0xb4bd, 0x003f, - 0xd9a4, 0x003f, 0x003f, 0x003f, 0xb779, 0x003f, 0xddbf, 0xb776, - 0xb777, 0xb775, 0xddc4, 0xddc3, 0xddc0, 0xb77b, 0x003f, 0x003f, - 0xddc2, 0xb4bb, 0x003f, 0x003f, 0xddc6, 0xddc1, 0xb778, 0xb774, - 0xb77a, 0xddc5, 0x003f, 0x003f, 0x003f, 0xba5c, 0x003f, 0xe1f8, - 0xe1f7, 0xe1f6, 0xba5a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xba5b, 0xe5c5, 0xe5c8, 0xbcc8, 0x003f, 0x003f, 0xbcc7, 0xe5c9, - 0xe5c4, 0xbcca, 0xe5c6, 0x003f, 0xbcc9, 0xe5c3, 0x003f, 0xe5c7, - 0xbee9, 0xbee6, 0xe9bb, 0xe9ba, 0x003f, 0xe9b9, 0xe9b4, 0x003f, - 0xe9b5, 0x003f, 0x003f, 0x003f, 0xbee7, 0x003f, 0xbee4, 0xbee8, - 0xe9b3, 0xbee5, 0xe9b6, 0xe9b7, 0xe9bc, 0x003f, 0x003f, 0xe9b8, - 0x003f, 0x003f, 0xecf2, 0x003f, 0x003f, 0x003f, 0xc0c7, 0x003f, - 0xefdc, 0xc0c6, 0xefda, 0xefdb, 0xc260, 0xc36e, 0xf24b, 0x003f, - 0xc36d, 0x003f, 0x003f, 0xf451, 0xf452, 0x003f, 0xc466, 0x003f, - 0xf450, 0xc4e4, 0x003f, 0xf7df, 0xc5ce, 0xf8aa, 0xf8ab, 0x003f, - 0xa4ea, 0x003f, 0xa6b1, 0xa6b2, 0xa7f3, 0x003f, 0xccd1, 0xac54, - 0xaed1, 0xb1e4, 0x003f, 0x003f, 0xb0d2, 0x003f, 0xb4bf, 0xb4c0, - /* 0x6700 .. 0x67ff */ - 0xb3cc, 0xd9a9, 0x003f, 0xb77c, 0xe1fa, 0xe1f9, 0x003f, 0x003f, - 0xa4eb, 0xa6b3, 0xccd2, 0xaa42, 0x003f, 0xaa41, 0x003f, 0xcef9, - 0xcefa, 0x003f, 0xd1d7, 0xd1d8, 0xaed2, 0xaed3, 0x003f, 0xaed4, - 0xd5af, 0x003f, 0x003f, 0xb1e6, 0x003f, 0xb4c2, 0x003f, 0xb4c1, - 0xddc8, 0xdf7a, 0xe1fb, 0xe9bd, 0x003f, 0x003f, 0xc261, 0xc467, - 0xa4ec, 0x003f, 0xa5bc, 0xa5bd, 0xa5bb, 0xa5be, 0xa5ba, 0x003f, - 0x003f, 0xa6b6, 0x003f, 0xc9f6, 0xa6b5, 0xa6b7, 0x003f, 0x003f, - 0xc9f1, 0xc9f0, 0xc9f3, 0xc9f2, 0xc9f5, 0xa6b4, 0xc9ef, 0xc9f4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcafd, 0xa7fd, 0xcafe, - 0xcb43, 0xa7fc, 0x003f, 0xcb47, 0xcb42, 0xcb45, 0xa7f5, 0xa7f6, - 0xa7f7, 0xa7f8, 0x003f, 0xa840, 0x003f, 0xcb41, 0xa7fa, 0xa841, - 0x003f, 0xcb40, 0xcb46, 0x003f, 0xa7f9, 0xcb44, 0xa7fb, 0xa7f4, - 0xa7fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xaa57, 0x003f, 0xccd4, 0xaa43, 0x003f, 0xaa4d, - 0xaa4e, 0xaa46, 0xaa58, 0xaa48, 0xccdc, 0xaa53, 0xccd7, 0xaa49, - 0xcce6, 0xcce7, 0xccdf, 0xccd8, 0xaa56, 0xcce4, 0xaa51, 0xaa4f, - 0x003f, 0xcce5, 0x003f, 0xcce3, 0xccdb, 0xccd3, 0xccda, 0xaa4a, - 0x003f, 0xaa50, 0x003f, 0xaa44, 0xccde, 0xccdd, 0xccd5, 0x003f, - 0xaa52, 0xcce1, 0xccd6, 0xaa55, 0xcce8, 0xaa45, 0x003f, 0xaa4c, - 0xccd9, 0xcce2, 0xaa54, 0x003f, 0xaa47, 0xaa4b, 0x003f, 0xcce0, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcf5b, 0xac5c, - 0xac69, 0x003f, 0xcf56, 0xcf4c, 0xac62, 0xcf4a, 0xac5b, 0xcf45, - 0xac65, 0xcf52, 0xcefe, 0xcf41, 0x003f, 0x003f, 0x003f, 0x003f, - 0xcf44, 0xcefb, 0xcf51, 0xcf61, 0xac60, 0xcf46, 0xcf58, 0x003f, - 0xcefd, 0xcf5f, 0xcf60, 0xcf63, 0xcf5a, 0xcf4b, 0xcf53, 0xac66, - 0xac59, 0xac61, 0xac6d, 0xac56, 0xac58, 0x003f, 0x003f, 0x003f, - 0xcf43, 0xac6a, 0xac63, 0xcf5d, 0xcf40, 0xac6c, 0xac67, 0xcf49, - 0x003f, 0x003f, 0xac6b, 0xcf50, 0xcf48, 0xac64, 0xcf5c, 0xcf54, - 0x003f, 0xac5e, 0xcf62, 0xcf47, 0xac5a, 0xcf59, 0xcf4f, 0xac5f, - 0xcf55, 0xac57, 0xcefc, 0xac68, 0xaee3, 0xac5d, 0xcf4e, 0xcf4d, - 0xcf42, 0x003f, 0xcf5e, 0x003f, 0xcf57, 0x003f, 0x003f, 0xac55, - /* 0x6800 .. 0x68ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd1ec, 0xaeea, 0xd1ed, 0x003f, 0xd1e1, 0xaedf, - 0xaeeb, 0x003f, 0xd1da, 0x003f, 0xd1e3, 0xd1eb, 0x003f, 0xd1d9, - 0xd1f4, 0xaed5, 0x003f, 0x003f, 0x003f, 0xd1f3, 0xd1ee, 0x003f, - 0xd1ef, 0xaedd, 0xaee8, 0xd1e5, 0x003f, 0xd1e6, 0xd1f0, 0xd1e7, - 0x003f, 0xd1e2, 0xd1dc, 0xd1dd, 0xd1ea, 0xd1e4, 0x003f, 0x003f, - 0xaed6, 0xaeda, 0xd1f2, 0xd1de, 0xaee6, 0xaee2, 0x003f, 0x003f, - 0xaee5, 0xaeec, 0xaedb, 0xaee7, 0xd1e9, 0xaee9, 0xaed8, 0x003f, - 0xaed7, 0xd1db, 0x003f, 0xd1df, 0xaee0, 0xd1f1, 0xd1e8, 0xd1e0, - 0xaee4, 0xaee1, 0x003f, 0xaed9, 0xaedc, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd5c4, 0x003f, 0xd5b4, 0xd5b5, 0xd5b9, - 0x003f, 0xd5c8, 0xd5c5, 0x003f, 0xd5be, 0xd5bd, 0xb1ed, 0xd5c1, - 0xd5d0, 0xd5b0, 0x003f, 0xd5d1, 0xd5c3, 0xd5d5, 0xd5c9, 0xb1ec, - 0xd5c7, 0xb1e7, 0xb1fc, 0xb1f2, 0x003f, 0xb1f6, 0xb1f5, 0xd5b1, - 0x003f, 0xd5ce, 0xd5d4, 0xd5cc, 0xd5d3, 0x003f, 0x003f, 0xd5c0, - 0xd5b2, 0xd5d2, 0xd5c2, 0xb1ea, 0xb1f7, 0x003f, 0xd5cb, 0xb1f0, - 0x003f, 0x003f, 0x003f, 0xd5ca, 0xd5b3, 0xb1f8, 0x003f, 0xb1fa, - 0xd5cd, 0xb1fb, 0xb1e9, 0xd5ba, 0xd5cf, 0x003f, 0x003f, 0xb1ef, - 0xb1f9, 0xd5bc, 0xd5c6, 0xd5b7, 0xd5bb, 0xb1f4, 0xd5b6, 0xb1e8, - 0xb1f1, 0xb1ee, 0xd5bf, 0xaede, 0xd9c0, 0xb1eb, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xb1f3, 0x003f, 0xd9c3, 0xd9d9, - 0xd9ce, 0xb4d6, 0x003f, 0xb4d1, 0xd9bd, 0xb4d2, 0xd9cd, 0x003f, - 0xd9c6, 0xd9d3, 0xb4ce, 0xd9ab, 0xd9d5, 0xb4c4, 0xd9b3, 0xb4c7, - 0xb4c6, 0x003f, 0xb4d7, 0x003f, 0xd9ad, 0xd9cf, 0xd9d0, 0xb4c9, - 0xb4c5, 0xd9bb, 0x003f, 0xb4d0, 0xd9b6, 0x003f, 0xd9d1, 0xb4cc, - 0xd9c9, 0xd9d6, 0xd9b0, 0xd9b5, 0xd9af, 0x003f, 0xb4cb, 0xd9c2, - 0xddde, 0xd9b1, 0xb4cf, 0xd9ba, 0xd9d2, 0xb4ca, 0xd9b7, 0xd9b4, - 0xd9c5, 0xb4cd, 0xb4c3, 0xb4d9, 0xd9c8, 0xd9c7, 0x003f, 0x003f, - /* 0x6900 .. 0x69ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ac, 0xb4c8, 0xd9d4, 0xd9bc, - 0xd9be, 0x003f, 0xd9cb, 0xd9ca, 0xd9aa, 0xb4d3, 0xb4d5, 0xd9b2, - 0xd9b9, 0xd9c1, 0xb4d4, 0xd9b8, 0xd9c4, 0xd9d7, 0x003f, 0xd9cc, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d8, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd9ae, 0x003f, 0x003f, 0x003f, 0x003f, 0xddf2, - 0xb7a6, 0x003f, 0xddf0, 0xdddb, 0xdde0, 0xddd9, 0x003f, 0xddec, - 0xddcb, 0xddd2, 0x003f, 0xddea, 0xddf4, 0xdddc, 0x003f, 0xddcf, - 0xdde2, 0xdde7, 0xddd3, 0x003f, 0xdde4, 0xddd0, 0x003f, 0x003f, - 0xddd7, 0xddd8, 0xb7a8, 0xddeb, 0xdde9, 0x003f, 0xddcc, 0xddee, - 0x003f, 0xddef, 0xddf1, 0xb7ac, 0xb7a4, 0x003f, 0xd5b8, 0xddd4, - 0xdde6, 0xddd5, 0xb7a1, 0xb7b1, 0xdded, 0xb7af, 0xb7ab, 0xddca, - 0xb7a3, 0x003f, 0xddcd, 0xb7b0, 0x003f, 0xdddd, 0xddc9, 0x003f, - 0xb7a9, 0xdde1, 0xddd1, 0xb7aa, 0xddda, 0xb77e, 0xb4d8, 0xdde3, - 0xd9bf, 0xddce, 0x003f, 0x003f, 0xdde8, 0xb7a5, 0xdde5, 0xb7a2, - 0xdddf, 0xb7ad, 0xddd6, 0xddf3, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb7a7, 0xdec6, 0x003f, 0x003f, 0xb7ae, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe24a, 0xe248, 0x003f, - 0xe25e, 0xe246, 0x003f, 0xe258, 0xb77d, 0xba5f, 0xe242, 0xe25d, - 0x003f, 0xe247, 0xe255, 0xba64, 0xba5d, 0x003f, 0xe25b, 0x003f, - 0xe240, 0xe25a, 0x003f, 0xba6f, 0xe251, 0xe261, 0xba6d, 0xe249, - 0xba5e, 0xe24b, 0xe259, 0xba67, 0xe244, 0xba6b, 0xba61, 0xe24d, - 0xe243, 0xe1fc, 0x003f, 0xe257, 0xba68, 0xe260, 0xe1fd, 0xba65, - 0x003f, 0xe253, 0x003f, 0xba66, 0xe245, 0xe250, 0xe24c, 0xe24e, - 0x003f, 0xba60, 0xe25f, 0xba6e, 0xe24f, 0x003f, 0xe262, 0x003f, - 0x003f, 0xe1fe, 0xe254, 0xba63, 0xba6c, 0xba6a, 0xe241, 0xe256, - 0xba69, 0x003f, 0x003f, 0xba62, 0xe252, 0x003f, 0x003f, 0x003f, - 0x003f, 0xe25c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe5d5, 0x003f, 0xe5d1, 0xe5cd, 0xe5e1, 0xe5de, - 0xbccd, 0x003f, 0x003f, 0xe5e5, 0xe5d4, 0xbcd8, 0xe5db, 0x003f, - 0x003f, 0xe5d0, 0xe5da, 0xbcd5, 0xe5ee, 0x003f, 0xe5eb, 0xe5dd, - 0xe5ce, 0x003f, 0x003f, 0xe5e2, 0xe5e4, 0xbcd1, 0xe5d8, 0xe5d3, - /* 0x6a00 .. 0x6aff */ - 0xe5ca, 0xbcce, 0xbcd6, 0x003f, 0xe5e7, 0xbcd7, 0xe5cb, 0xe5ed, - 0xe5e0, 0xe5e6, 0xbcd4, 0x003f, 0x003f, 0xe5e3, 0x003f, 0xe5ea, - 0x003f, 0xbcd9, 0x003f, 0xbcd3, 0xe5dc, 0xe5cf, 0xe5ef, 0xe5cc, - 0xe5e8, 0xbcd0, 0x003f, 0xe5d6, 0x003f, 0xe5d7, 0xbccf, 0xbccc, - 0xe5d2, 0xbcd2, 0x003f, 0xbccb, 0x003f, 0xe5e9, 0xe5ec, 0xe5d9, - 0xe9ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe9c2, 0x003f, 0xe9be, 0xbef6, 0x003f, 0x003f, - 0xbeeb, 0xbef0, 0xbeec, 0xe9cc, 0xe9d7, 0xbeea, 0xe9c4, 0xe9cd, - 0xe5df, 0xe9ce, 0x003f, 0x003f, 0xbef1, 0x003f, 0xe9dd, 0xbef5, - 0xbef8, 0xe9c0, 0x003f, 0xbef4, 0x003f, 0xe9db, 0xe9dc, 0xe9d2, - 0xe9d1, 0xe9c9, 0x003f, 0x003f, 0xe9d3, 0xe9da, 0xe9d9, 0x003f, - 0xbeef, 0xbeed, 0xe9cb, 0xe9c8, 0x003f, 0xe9c5, 0xe9d8, 0xbef7, - 0xe9d6, 0xbef3, 0xbef2, 0x003f, 0xe9d0, 0x003f, 0xe9bf, 0xe9c1, - 0xe9c3, 0xe9d5, 0xe9cf, 0xbeee, 0x003f, 0xe9c6, 0x003f, 0xe9d4, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c7, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0cf, 0xed45, - 0xc0c8, 0xecf5, 0x003f, 0xed41, 0xc0ca, 0xed48, 0x003f, 0xecfc, - 0x003f, 0xecf7, 0x003f, 0x003f, 0xed49, 0xecf3, 0xecfe, 0x003f, - 0xc0d1, 0xed44, 0xed4a, 0xecfd, 0xc0c9, 0xed40, 0xecf4, 0xc0d0, - 0x003f, 0x003f, 0xed47, 0xecf9, 0xc0cc, 0x003f, 0xecfb, 0xecf8, - 0xc0d2, 0xecfa, 0xc0cb, 0xc0ce, 0xed43, 0xecf6, 0xed46, 0x003f, - 0xed42, 0x003f, 0x003f, 0x003f, 0xc263, 0xefe7, 0xc268, 0xc269, - 0x003f, 0x003f, 0x003f, 0xc262, 0xefe6, 0x003f, 0xefe3, 0xefe4, - 0xc266, 0xefde, 0xefe2, 0xc265, 0x003f, 0xefdf, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc267, 0xc264, 0x003f, 0xefdd, 0xefe1, 0xefe5, - 0x003f, 0x003f, 0x003f, 0xf251, 0xf24e, 0xf257, 0x003f, 0xf256, - 0xf254, 0xf24f, 0x003f, 0xc372, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf250, 0xc371, 0xc0cd, 0xf253, 0xc370, 0xf258, 0xf252, - 0xf24d, 0xefe0, 0x003f, 0x003f, 0x003f, 0xc36f, 0x003f, 0xf24c, - 0xf456, 0x003f, 0xf455, 0xf255, 0xc468, 0x003f, 0xf459, 0xf45a, - 0xf454, 0xf458, 0x003f, 0xf453, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf5d1, 0xf457, 0xc4e7, 0xc4e5, 0xf5cf, 0x003f, 0x003f, 0x003f, - /* 0x6b00 .. 0x6bff */ - 0xf5d2, 0x003f, 0xf5ce, 0xf5d0, 0xc4e6, 0x003f, 0x003f, 0x003f, - 0xf6e5, 0xf6e6, 0xc576, 0xf6e4, 0x003f, 0x003f, 0x003f, 0xf7e2, - 0xc5cf, 0xf7e0, 0xf7e1, 0xf8ac, 0x003f, 0x003f, 0xc656, 0xf8f3, - 0xf8f1, 0xf8f2, 0xf8f4, 0x003f, 0x003f, 0x003f, 0xf9bb, 0x003f, - 0xa4ed, 0xa6b8, 0x003f, 0xaa59, 0x003f, 0xcce9, 0x003f, 0x003f, - 0xcf64, 0x003f, 0x003f, 0x003f, 0xd1f5, 0xd1f7, 0x003f, 0xd1f6, - 0x003f, 0xd1f8, 0xb1fd, 0xd5d7, 0xd1f9, 0x003f, 0xd5d6, 0xd5d8, - 0xd5d9, 0xd9da, 0xb4db, 0xd9db, 0xd9dd, 0xb4dc, 0xb4da, 0xd9dc, - 0x003f, 0xddfa, 0xddf8, 0xddf7, 0x003f, 0xddf6, 0xddf5, 0xb7b2, - 0xddf9, 0xba70, 0xe263, 0xe265, 0xba71, 0xe264, 0xbcdb, 0x003f, - 0xbcda, 0xe5f0, 0x003f, 0x003f, 0xe9df, 0xe9de, 0xe9e0, 0x003f, - 0x003f, 0xbef9, 0x003f, 0xed4b, 0xc0d3, 0x003f, 0xefe8, 0xc26a, - 0xf259, 0xc577, 0xa4ee, 0xa5bf, 0xa6b9, 0xa842, 0xaa5a, 0xaa5b, - 0x003f, 0x003f, 0xac6e, 0x003f, 0x003f, 0xd1fa, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb7b3, 0x003f, 0x003f, 0x003f, 0xe6d1, 0xbefa, - 0xc26b, 0xa4ef, 0x003f, 0xa6ba, 0x003f, 0x003f, 0xcceb, 0xaa5c, - 0xccea, 0x003f, 0xcf65, 0xac6f, 0xcf66, 0x003f, 0xac70, 0x003f, - 0xd1fc, 0xaeee, 0xaeed, 0x003f, 0xd5de, 0xd5dc, 0xd5dd, 0xd5db, - 0x003f, 0xd5da, 0x003f, 0x003f, 0xd9de, 0xd9e1, 0xb4de, 0xd9df, - 0xb4dd, 0xd9e0, 0x003f, 0xddfb, 0x003f, 0x003f, 0xe266, 0xe267, - 0xe268, 0x003f, 0xe5f3, 0xe5f2, 0xbcdc, 0xe5f1, 0xe5f4, 0xe9e1, - 0x003f, 0x003f, 0xe9e2, 0xe9e3, 0x003f, 0xed4c, 0xc0d4, 0xc26c, - 0xf25a, 0x003f, 0xc4e8, 0xc95f, 0x003f, 0xac71, 0xcf67, 0xaeef, - 0x003f, 0x003f, 0xb1fe, 0x003f, 0xb4df, 0xd9e2, 0x003f, 0xb7b5, - 0xb7b4, 0x003f, 0x003f, 0xe269, 0xe26a, 0xbcdd, 0xbcde, 0xe9e5, - 0xe9e4, 0xefe9, 0xf7e3, 0xa4f0, 0xc960, 0xa5c0, 0x003f, 0xa843, - 0xcb48, 0x003f, 0xac72, 0xb7b6, 0xa4f1, 0x003f, 0xcf68, 0xac73, - 0xcf69, 0x003f, 0xc0d5, 0xa4f2, 0x003f, 0x003f, 0xccec, 0x003f, - 0xcf6a, 0x003f, 0xd242, 0xd241, 0xd1fe, 0x003f, 0xd1fd, 0xd243, - 0xd240, 0x003f, 0x003f, 0xb240, 0xb241, 0x003f, 0x003f, 0xb4e0, - 0xd9e3, 0x003f, 0xd9e4, 0xd9e5, 0x003f, 0x003f, 0x003f, 0xde41, - 0xde42, 0xde40, 0x003f, 0xddfd, 0xddfe, 0xb7b7, 0xe26b, 0xe5f7, - /* 0x6c00 .. 0x6cff */ - 0xe5f6, 0xe5f5, 0xe5f8, 0xe9e7, 0xe9e6, 0xbefb, 0xe9e8, 0x003f, - 0xc0d6, 0xed4d, 0x003f, 0xefea, 0xf25b, 0xf6e7, 0x003f, 0xa4f3, - 0xa5c2, 0xa5c1, 0x003f, 0xaa5d, 0xc961, 0xc97e, 0xa6bb, 0x003f, - 0xc9f7, 0xcb49, 0xcb4a, 0xaa5e, 0x003f, 0xcced, 0x003f, 0xac74, - 0xcf6b, 0xcf6c, 0x003f, 0xaef0, 0xaef4, 0xd244, 0xaef3, 0xaef1, - 0xaef2, 0x003f, 0xd5df, 0xb242, 0xb4e3, 0x003f, 0xb4e1, 0xb4e2, - 0xd9e6, 0x003f, 0x003f, 0xba72, 0xa4f4, 0x003f, 0xc9a1, 0x003f, - 0xa5c3, 0x003f, 0x003f, 0xc9a4, 0x003f, 0x003f, 0xa5c6, 0xc9a3, - 0xa5c5, 0xa5c4, 0xa844, 0xc9a2, 0x003f, 0x003f, 0xc9f8, 0x003f, - 0x003f, 0x003f, 0xc9fc, 0xc9fe, 0xca40, 0xa6c5, 0xa6c6, 0xc9fb, - 0xa6c1, 0x003f, 0xc9f9, 0x003f, 0xc9fd, 0xa6c2, 0x003f, 0xa6bd, - 0x003f, 0xa6be, 0x003f, 0xa6c4, 0xc9fa, 0xa6bc, 0xa845, 0xa6bf, - 0xa6c0, 0xa6c3, 0x003f, 0x003f, 0x003f, 0xcb5b, 0xcb59, 0xcb4c, - 0xa851, 0xcb53, 0xa84c, 0xcb4d, 0x003f, 0xcb55, 0x003f, 0xcb52, - 0xa84f, 0xcb51, 0xa856, 0xcb5a, 0xa858, 0x003f, 0xa85a, 0x003f, - 0xcb4b, 0x003f, 0xa84d, 0xcb5c, 0x003f, 0xa854, 0xa857, 0x003f, - 0xcd45, 0xa847, 0xa85e, 0xa855, 0xcb4e, 0xa84a, 0xa859, 0xcb56, - 0xa848, 0xa849, 0xcd43, 0xcb4f, 0xa850, 0xa85b, 0xcb5d, 0xcb50, - 0xa84e, 0x003f, 0xa853, 0xccee, 0xa85c, 0xcb57, 0xa852, 0x003f, - 0xa85d, 0xa846, 0xcb54, 0xa84b, 0xcb58, 0xcd44, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xaa6a, 0xaa7a, 0xccf5, 0xaa71, 0x003f, - 0xcd4b, 0xaa62, 0x003f, 0xaa65, 0xcd42, 0x003f, 0xccf3, 0xccf7, - 0xaa6d, 0xaa6f, 0xccfa, 0xaa76, 0xaa68, 0xaa66, 0xaa67, 0xaa75, - 0xcd47, 0xaa70, 0xccf9, 0xccfb, 0xaa6e, 0xaa73, 0xccfc, 0xcd4a, - 0x003f, 0xac75, 0xaa79, 0x003f, 0xaa63, 0xcd49, 0x003f, 0xcd4d, - 0xccf8, 0xcd4f, 0xcd40, 0xaa6c, 0xccf4, 0xaa6b, 0xaa7d, 0xaa72, - 0x003f, 0xccf2, 0xcf75, 0xaa78, 0xaa7c, 0xcd41, 0xcd46, 0x003f, - 0xaa7e, 0xaa77, 0xaa69, 0xaa5f, 0x003f, 0xaa64, 0x003f, 0xccf6, - 0xaa60, 0xcd4e, 0x003f, 0xccf0, 0xccef, 0xccfd, 0xccf1, 0xaa7b, - 0xaef5, 0xaa74, 0xccfe, 0xaa61, 0x003f, 0xaca6, 0x003f, 0x003f, - 0x003f, 0xcd4c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x6d00 .. 0x6dff */ - 0xcf7c, 0xcfa1, 0x003f, 0xcfa4, 0xcf77, 0x003f, 0x003f, 0xcfa7, - 0xcfaa, 0xcfac, 0xcf74, 0xac76, 0xac7b, 0xd249, 0xacad, 0xcfa5, - 0xcfad, 0xcf7b, 0xcf73, 0x003f, 0x003f, 0x003f, 0xd264, 0xac7e, - 0xcfa2, 0xcf78, 0xcf7a, 0xaca5, 0x003f, 0xcf7d, 0xac7d, 0xcf70, - 0xcfa8, 0x003f, 0xcfab, 0x003f, 0x003f, 0xac7a, 0x003f, 0xaca8, - 0xcf6d, 0xacaa, 0xac78, 0xacae, 0xcfa9, 0xcf6f, 0xacab, 0xd25e, - 0xcd48, 0xac7c, 0xac77, 0xcf76, 0xcf6e, 0xacac, 0xaca4, 0xcfa3, - 0xaca9, 0xaca7, 0xcf79, 0xaca1, 0xcf71, 0xaca2, 0xaca3, 0xcf72, - 0xcfa6, 0xac79, 0xcf7e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd24c, 0xaefd, 0xaf43, 0x003f, 0x003f, 0x003f, 0xd255, 0xd25b, - 0xd257, 0xd24a, 0xd24d, 0xd246, 0xd247, 0xaf4a, 0xaefa, 0xd256, - 0xd25f, 0xaf45, 0xaef6, 0x003f, 0xaf40, 0xd24e, 0xaf42, 0xd24f, - 0xd259, 0x003f, 0x003f, 0x003f, 0xaf44, 0xd268, 0xd248, 0xaefc, - 0xaefb, 0xaf48, 0xd245, 0xd266, 0xd25a, 0xd267, 0xd261, 0xd253, - 0xd262, 0x003f, 0xd25c, 0xd265, 0xd263, 0xaf49, 0xd254, 0xaef9, - 0xaef8, 0xaf41, 0xaf47, 0xd260, 0xaf46, 0xd251, 0xb243, 0x003f, - 0xd269, 0xd250, 0xd24b, 0xaefe, 0xaf4b, 0xaef7, 0x003f, 0xd258, - 0xd25d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb265, 0xd5e1, 0xd5e5, 0x003f, 0xb252, 0xb250, - 0x003f, 0x003f, 0xb247, 0xd5e3, 0xd5e2, 0xb25b, 0x003f, 0xd5e8, - 0xb255, 0x003f, 0xd5fa, 0xd647, 0xb244, 0xd5f7, 0xd5f0, 0xb267, - 0xd5e0, 0x003f, 0xd5fc, 0x003f, 0xb264, 0xb258, 0xb263, 0xb24e, - 0xd5ec, 0xd5fe, 0xd5f6, 0xb24f, 0xb249, 0xd645, 0x003f, 0xd5fd, - 0xd640, 0xb251, 0xb259, 0xd642, 0xd5ea, 0xd5fb, 0xd5ef, 0xd644, - 0xb25e, 0xb246, 0xb25c, 0xd5f4, 0xd5f2, 0xd5f3, 0xb253, 0xd5ee, - 0xd5ed, 0xb248, 0xd5e7, 0xd646, 0xb24a, 0xd5f1, 0xb268, 0x003f, - 0xb262, 0xd5e6, 0xb25f, 0xb25d, 0xb266, 0xd5f8, 0xb261, 0xd252, - 0xd5f9, 0xb260, 0xd641, 0xb245, 0xd5f5, 0xb257, 0xd5e9, 0xb256, - 0x003f, 0xb254, 0xb24c, 0xb24b, 0xd9e7, 0xd643, 0x003f, 0x003f, - /* 0x6e00 .. 0x6eff */ - 0xd5eb, 0x003f, 0x003f, 0xd9fc, 0x003f, 0xb24d, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb541, 0xb25a, 0xb4ee, 0xd9f6, 0xb4fc, 0x003f, 0xd9ea, - 0xb4eb, 0xb4e7, 0xda49, 0xb4ed, 0xb4f1, 0xb4ec, 0xb4f5, 0xda4d, - 0xda44, 0x003f, 0x003f, 0xd9f1, 0xb4fa, 0xb4f4, 0xd9fd, 0xb4e4, - 0xda4a, 0xda43, 0xb4e8, 0xd9f7, 0xb4f7, 0xda55, 0xda56, 0x003f, - 0xb4e5, 0xda48, 0xb4f9, 0xd9fb, 0xd9ed, 0xd9ee, 0xb4fd, 0xd9f2, - 0xd9f9, 0xd9f3, 0x003f, 0xb4fb, 0xb544, 0xd9ef, 0xd9e8, 0xd9e9, - 0x003f, 0xd9eb, 0xb4ea, 0xd9f8, 0x003f, 0xb4f8, 0xb542, 0x003f, - 0x003f, 0xd9fa, 0xda53, 0xda4b, 0xb4e6, 0xda51, 0xb4f2, 0x003f, - 0xb4f0, 0x003f, 0xda57, 0xb4ef, 0xda41, 0xd9f4, 0xd9fe, 0xb547, - 0xda45, 0xda42, 0xd9f0, 0xb543, 0xda4f, 0xda4c, 0xda54, 0xb4e9, - 0xda40, 0xb546, 0x003f, 0xda47, 0x003f, 0x003f, 0xb4f3, 0xb4f6, - 0x003f, 0xda46, 0xb545, 0xd9f5, 0xd5e4, 0x003f, 0x003f, 0xda50, - 0xda4e, 0xda52, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd9ec, 0xb540, 0x003f, 0x003f, 0x003f, 0xde61, 0xde60, 0xde46, - 0xb7bd, 0x003f, 0xde5f, 0xde49, 0xde4a, 0x003f, 0xb7c7, 0xde68, - 0xb7c2, 0xde5e, 0x003f, 0xde43, 0xb7c8, 0xb7be, 0xde52, 0xde48, - 0xde4b, 0xde63, 0xb7b8, 0xde6a, 0xde62, 0xb7c1, 0xde57, 0xb7cc, - 0x003f, 0x003f, 0xb7cb, 0xb7c5, 0x003f, 0x003f, 0xde69, 0xb7b9, - 0xde55, 0xde4c, 0xde59, 0xde65, 0xb7cd, 0x003f, 0xb7bb, 0xde54, - 0x003f, 0xde4d, 0xb7c4, 0x003f, 0xb7c3, 0xde50, 0xde5a, 0xde64, - 0xde47, 0xde51, 0xb7bc, 0xde5b, 0xb7c9, 0xb7c0, 0xde4e, 0xb7bf, - 0xde45, 0xde53, 0xde67, 0xb4fe, 0xbab0, 0xde56, 0xe26c, 0xde58, - 0xde66, 0xb7c6, 0xde4f, 0xb7ba, 0xb7ca, 0xbcf0, 0xde44, 0x003f, - 0xde5d, 0x003f, 0x003f, 0x003f, 0xde5c, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe2aa, 0xbaad, 0xe27d, 0xe2a4, 0xbaa2, - 0x003f, 0xe26e, 0xbaaf, 0x003f, 0xba77, 0xe26d, 0xe2b0, 0xbab1, - 0xe271, 0xe2a3, 0x003f, 0xe273, 0xe2b3, 0xe2af, 0xba75, 0xbaa1, - /* 0x6f00 .. 0x6fff */ - 0xe653, 0xbaae, 0xba7d, 0xe26f, 0x003f, 0xe2ae, 0xbaa3, 0xe2ab, - 0xe2b8, 0xe275, 0xe27e, 0x003f, 0x003f, 0xe2b6, 0xe2ac, 0xba7c, - 0x003f, 0x003f, 0xe27c, 0xba76, 0xba74, 0xbaa8, 0x003f, 0x003f, - 0xe27a, 0xe277, 0xe278, 0x003f, 0xe2b2, 0x003f, 0xe2b7, 0xe2b5, - 0xba7a, 0xe2b9, 0xba7e, 0xbaa7, 0x003f, 0xe270, 0xe5fa, 0xe279, - 0x003f, 0xba78, 0xbaac, 0xbaa9, 0xba7b, 0xe2a5, 0xe274, 0xbaaa, - 0xe2a7, 0xbaa4, 0xbaa6, 0xba73, 0x003f, 0xe2a9, 0xe2a1, 0xe272, - 0xbaa5, 0xe2b1, 0xe2b4, 0xe27b, 0xe2a8, 0x003f, 0xba79, 0xbcdf, - 0xe2a6, 0xe5f9, 0x003f, 0xe2ad, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe276, 0xe644, - 0xe64e, 0xbce2, 0xe64d, 0xe659, 0xbce4, 0xe64b, 0x003f, 0xe64f, - 0xbcef, 0x003f, 0xe646, 0xbce7, 0x003f, 0xe652, 0xe9f0, 0xbcf3, - 0xbcf2, 0xe654, 0xe643, 0xe65e, 0xbced, 0x003f, 0xbce3, 0xe657, - 0x003f, 0xe65b, 0xe660, 0xe655, 0xe649, 0xbce6, 0xbce9, 0xbcf1, - 0xbcec, 0x003f, 0xe64c, 0xe2a2, 0x003f, 0x003f, 0xe648, 0xe65f, - 0xbce8, 0x003f, 0xbceb, 0xe661, 0xbce0, 0xe656, 0xe5fb, 0xe65c, - 0xc0df, 0x003f, 0xe64a, 0x003f, 0xbce1, 0xe645, 0xbce5, 0xe5fc, - 0xbaab, 0xe641, 0x003f, 0xe65a, 0xe642, 0xe640, 0xbcea, 0x003f, - 0xe658, 0x003f, 0xe5fe, 0xe651, 0xe650, 0xe65d, 0xe647, 0xbcee, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f3, 0x003f, - 0xbf49, 0xbefe, 0xea40, 0xe9eb, 0xbf41, 0xe9f7, 0xbf48, 0xbf43, - 0xe9f5, 0xed4f, 0xe9fb, 0xea42, 0xe9fa, 0xe9e9, 0xe9f8, 0xea44, - 0xea46, 0xbefd, 0xea45, 0xbf44, 0xbf4a, 0x003f, 0xbf47, 0x003f, - 0xe9fe, 0xbf46, 0xe9f9, 0x003f, 0xe9ed, 0xe9f2, 0x003f, 0xe9fd, - 0xbf45, 0xbf42, 0xbefc, 0xbf40, 0xe9f1, 0x003f, 0xe5fd, 0xe9ec, - 0xe9ef, 0xea41, 0xe9f4, 0xe9ea, 0xed4e, 0xea43, 0xe9ee, 0xe9fc, - 0x003f, 0x003f, 0x003f, 0x003f, 0xed51, 0xc0e3, 0x003f, 0x003f, - 0xc0d7, 0x003f, 0x003f, 0xc0db, 0xed53, 0xed59, 0xed57, 0xc0d9, - 0xc0da, 0xc0e1, 0xed5a, 0xed52, 0xc0dc, 0x003f, 0xed56, 0xed55, - 0xed5b, 0xc0e2, 0x003f, 0xc0dd, 0xc0e0, 0xed54, 0xc0e4, 0xc0de, - 0xc0e5, 0xc0d8, 0xed58, 0x003f, 0xed50, 0x003f, 0x003f, 0xeff7, - 0x003f, 0x003f, 0xc271, 0xeff4, 0xeff6, 0x003f, 0xc26f, 0xeff2, - /* 0x7000 .. 0x70ff */ - 0xeff3, 0xefee, 0x003f, 0x003f, 0xe9f6, 0xefef, 0xc270, 0xefeb, - 0x003f, 0xc26d, 0xeff8, 0xc26e, 0xefec, 0xefed, 0xeff1, 0xc273, - 0x003f, 0xc272, 0x003f, 0x003f, 0xeff0, 0xc378, 0xf25f, 0xf265, - 0xc379, 0xf25c, 0xc376, 0xc373, 0xf267, 0xc377, 0x003f, 0xc374, - 0xf25e, 0xf261, 0xf262, 0xf263, 0xf266, 0x003f, 0xeff5, 0xf25d, - 0xc375, 0xf264, 0xf268, 0xf260, 0x003f, 0x003f, 0x003f, 0xf45d, - 0xc46a, 0xf460, 0xc46b, 0xf468, 0xf45f, 0xf45c, 0x003f, 0xf45e, - 0xf462, 0xf465, 0xf464, 0xf467, 0xf45b, 0x003f, 0xc469, 0xf463, - 0xf466, 0xf469, 0xf461, 0xf5d3, 0xf5d4, 0xf5d8, 0xf5d9, 0x003f, - 0xf5d6, 0xf5d7, 0xf5d5, 0x003f, 0xc4e9, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc578, 0xf6eb, 0x003f, 0x003f, 0xf6e8, 0xf6e9, 0xf6ea, - 0xc579, 0x003f, 0xf7e5, 0xf7e4, 0x003f, 0xf8af, 0xc5f4, 0xf8ad, - 0xf8b0, 0xf8ae, 0xf8f5, 0xc657, 0xc665, 0xf9a3, 0xf96c, 0x003f, - 0xf9a2, 0xf9d0, 0xf9d1, 0xa4f5, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa6c7, 0xca41, 0x003f, 0x003f, 0xcb5e, 0x003f, 0xa85f, 0x003f, - 0xa862, 0x003f, 0xcb5f, 0x003f, 0xa860, 0xa861, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcd58, 0xcd5a, 0xcd55, 0xcd52, 0xcd54, 0x003f, - 0x003f, 0x003f, 0xaaa4, 0x003f, 0x003f, 0x003f, 0xaaa2, 0x003f, - 0x003f, 0xcd56, 0xaaa3, 0xcd53, 0xcd50, 0xaaa1, 0xcd57, 0x003f, - 0xcd51, 0xaaa5, 0xcd59, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfaf, - 0x003f, 0xcfb3, 0x003f, 0x003f, 0xacb7, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcfb6, 0x003f, 0xacaf, 0xacb2, 0xacb4, 0xacb6, 0xacb3, - 0xcfb2, 0xcfb1, 0x003f, 0xacb1, 0xcfb4, 0xcfb5, 0x003f, 0xcfae, - 0xacb5, 0x003f, 0xacb0, 0x003f, 0x003f, 0x003f, 0xcfb0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd277, 0xd278, 0xd279, - 0xaf50, 0x003f, 0xaf4c, 0xd26e, 0x003f, 0xd276, 0xd27b, 0xaf51, - 0x003f, 0xd26c, 0xd272, 0xd26b, 0xd275, 0x003f, 0x003f, 0xd271, - 0xaf4d, 0xaf4f, 0xd27a, 0x003f, 0xd26a, 0xd26d, 0xd273, 0x003f, - 0xd274, 0xd27c, 0xd270, 0x003f, 0xaf4e, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb26d, - 0xd64e, 0x003f, 0x003f, 0xd650, 0xd64c, 0x003f, 0xd658, 0xd64a, - 0xd657, 0xb269, 0xd648, 0xda5b, 0xd652, 0xb26c, 0x003f, 0xd653, - /* 0x7100 .. 0x71ff */ - 0xd656, 0x003f, 0xd65a, 0x003f, 0xd64f, 0x003f, 0xd654, 0x003f, - 0x003f, 0xb26a, 0xb26b, 0xd659, 0xd64d, 0xd649, 0xd65b, 0x003f, - 0xd651, 0x003f, 0x003f, 0xd655, 0x003f, 0x003f, 0x003f, 0xd64b, - 0x003f, 0xb548, 0xb549, 0xda65, 0xb54f, 0x003f, 0xda59, 0xda62, - 0xda58, 0xb54c, 0xda60, 0xda5e, 0x003f, 0xda5f, 0xb54a, 0x003f, - 0xda63, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xda5c, 0xda5a, - 0xb54b, 0xda5d, 0xda61, 0x003f, 0x003f, 0x003f, 0xb54d, 0x003f, - 0x003f, 0x003f, 0xda64, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xde70, 0xde77, 0xde79, 0xdea1, 0x003f, 0xb7da, 0xde6b, - 0x003f, 0xb7d2, 0x003f, 0xde7a, 0xb7d7, 0xdea2, 0xb7ce, 0x003f, - 0xde7d, 0x003f, 0xde6d, 0xde7e, 0xde6c, 0x003f, 0xb7dc, 0x003f, - 0xde78, 0xb7cf, 0xdea3, 0x003f, 0xb7d4, 0xde71, 0xb7d9, 0xde7c, - 0xde6f, 0xde76, 0xde72, 0xde6e, 0xb7d1, 0xb7d8, 0xb7d6, 0xb7d3, - 0xb7db, 0xb7d0, 0xde75, 0x003f, 0xb7d5, 0x003f, 0xb54e, 0x003f, - 0xde7b, 0x003f, 0xde73, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xde74, 0x003f, 0x003f, 0xe2c1, 0x003f, 0xbab4, 0x003f, 0x003f, - 0xe2bd, 0xe2c3, 0xe2bf, 0x003f, 0xbab6, 0xe2be, 0xe2c2, 0xe2ba, - 0x003f, 0xe2bc, 0xbab5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c0, - 0xe2bb, 0x003f, 0xbab7, 0x003f, 0xbab2, 0x003f, 0x003f, 0xe2c4, - 0x003f, 0xbab3, 0xe667, 0xe664, 0xe670, 0xe66a, 0xe66c, 0xbcf4, - 0xe666, 0xe66e, 0x003f, 0x003f, 0xe66d, 0xe66b, 0x003f, 0xe671, - 0xbcf7, 0xe668, 0xe66f, 0x003f, 0xbcf5, 0x003f, 0x003f, 0xe663, - 0xe665, 0xbcf6, 0xe662, 0xe672, 0x003f, 0xe669, 0x003f, 0x003f, - 0xea4a, 0xbf51, 0x003f, 0x003f, 0xea55, 0xea53, 0xbf4b, 0xea49, - 0xea4c, 0xea4d, 0xea48, 0xbf55, 0xbf56, 0xea47, 0xea56, 0xea51, - 0xbf4f, 0xbf4c, 0xea50, 0xea4e, 0x003f, 0x003f, 0xbf52, 0xea52, - 0xbf4d, 0x003f, 0xbf4e, 0x003f, 0xea4f, 0xbf50, 0xea4b, 0x003f, - 0xea54, 0xbf53, 0xea57, 0xea58, 0xbf54, 0x003f, 0x003f, 0xc0e7, - 0xc0ee, 0xed5c, 0xed62, 0x003f, 0xed60, 0xc0ea, 0xc0e9, 0xc0e6, - 0xed5e, 0x003f, 0x003f, 0x003f, 0xc0ec, 0xc0eb, 0xc0e8, 0x003f, - 0xed61, 0xed5d, 0xed5f, 0x003f, 0xc0ed, 0x003f, 0x003f, 0x003f, - 0xc277, 0xeffb, 0x003f, 0xc274, 0xc275, 0xeffd, 0xc276, 0xeffa, - /* 0x7200 .. 0x72ff */ - 0x003f, 0xeff9, 0xf26c, 0xeffc, 0x003f, 0xf26d, 0xc37a, 0xf26b, - 0x003f, 0x003f, 0xf26a, 0x003f, 0xf269, 0xc37b, 0x003f, 0x003f, - 0xc46c, 0x003f, 0x003f, 0xf46a, 0xf46b, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf5dc, 0xf5db, 0xc4ea, 0x003f, 0xf5da, 0xf6ec, 0xf6ed, - 0x003f, 0x003f, 0xf7e6, 0xf8b1, 0x003f, 0x003f, 0xf8f6, 0xf9bc, - 0xc679, 0xf9c6, 0xa4f6, 0x003f, 0xaaa6, 0xaaa7, 0x003f, 0x003f, - 0xacb8, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0ef, 0xa4f7, 0x003f, - 0xaaa8, 0xaf52, 0xb7dd, 0xa4f8, 0x003f, 0xb26e, 0xbab8, 0xc962, - 0x003f, 0xcfb7, 0xd27d, 0x003f, 0xe2c5, 0x003f, 0xc0f0, 0xa4f9, - 0xaaa9, 0xcfb8, 0xcfb9, 0xda66, 0xb550, 0x003f, 0x003f, 0xdea4, - 0x003f, 0x003f, 0xb7de, 0xe2c6, 0x003f, 0x003f, 0xbcf8, 0x003f, - 0xc37c, 0xa4fa, 0xda67, 0xa4fb, 0x003f, 0xa6c9, 0xca42, 0xa6c8, - 0xa865, 0xa864, 0xa863, 0xcb60, 0x003f, 0x003f, 0x003f, 0xaaaa, - 0x003f, 0xaaab, 0xcd5b, 0x003f, 0xcfba, 0x003f, 0xcfbd, 0xacba, - 0xcfbb, 0x003f, 0xacb9, 0xcfbc, 0xacbb, 0x003f, 0xd2a2, 0xd2a1, - 0xd27e, 0xaf53, 0x003f, 0xd65d, 0xd65e, 0xb26f, 0xd65c, 0xd65f, - 0xb552, 0xb270, 0x003f, 0x003f, 0xb551, 0xda6b, 0xda6a, 0x003f, - 0xda68, 0xda69, 0x003f, 0xda6c, 0xdea6, 0xdea5, 0xdea9, 0x003f, - 0xdea8, 0xdea7, 0xbab9, 0xe2c9, 0x003f, 0xe2c8, 0xbaba, 0xe2c7, - 0xe673, 0x003f, 0xe674, 0xbcf9, 0x003f, 0xea59, 0xea5a, 0x003f, - 0x003f, 0xf272, 0xc37d, 0xf271, 0xf270, 0xf26e, 0xf26f, 0xc4eb, - 0xf46c, 0xf6ee, 0xf8f7, 0x003f, 0xa4fc, 0x003f, 0xc9a5, 0xa5c7, - 0xc9a6, 0x003f, 0x003f, 0x003f, 0xca43, 0xca44, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcb66, 0x003f, 0x003f, 0xcb62, 0x003f, 0xcb61, - 0xaaac, 0xcb65, 0xa867, 0xcb63, 0xa866, 0xcb67, 0xcb64, 0x003f, - 0x003f, 0xcd5f, 0xcfbe, 0xcd5d, 0xcd64, 0x003f, 0xaaad, 0x003f, - 0xaab0, 0xcd65, 0xcd61, 0x003f, 0xcd62, 0x003f, 0xcd5c, 0xaaaf, - 0xcd5e, 0xaaae, 0xcd63, 0x003f, 0xcd60, 0x003f, 0x003f, 0xcfc2, - 0xacbd, 0xacbe, 0x003f, 0xcfc5, 0xcfbf, 0x003f, 0xcfc4, 0x003f, - 0xcfc0, 0xacbc, 0xcfc3, 0xcfc1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd2a8, 0xd2a5, 0x003f, 0xd2a7, 0xaf58, - 0xaf57, 0xaf55, 0xd2a4, 0xd2a9, 0xaf54, 0xaf56, 0xd2a6, 0xd667, - /* 0x7300 .. 0x73ff */ - 0xd2a3, 0xd2aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd662, - 0xd666, 0x003f, 0xd665, 0xda6e, 0xda79, 0x003f, 0x003f, 0xd668, - 0x003f, 0xd663, 0xda6d, 0xb274, 0x003f, 0x003f, 0xb273, 0xd661, - 0xd664, 0xb275, 0x003f, 0xb272, 0xb271, 0xd660, 0xd669, 0x003f, - 0x003f, 0x003f, 0xda70, 0xda77, 0x003f, 0xb554, 0xda76, 0xda73, - 0x003f, 0xb556, 0x003f, 0x003f, 0x003f, 0xda75, 0x003f, 0x003f, - 0xda6f, 0xda71, 0xda74, 0xda72, 0xb555, 0xda78, 0xb553, 0xb7df, - 0x003f, 0x003f, 0xdead, 0xdeac, 0xdeaa, 0x003f, 0xb7e2, 0xb7e1, - 0xdeae, 0x003f, 0xdeab, 0xe2ca, 0xbabb, 0xb7e0, 0x003f, 0x003f, - 0x003f, 0xdeb0, 0xdeaf, 0x003f, 0xe2cd, 0xe2cb, 0xbcfa, 0x003f, - 0xbabc, 0xe2cc, 0xe676, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcfb, - 0xe675, 0xe67e, 0xe67d, 0xe67b, 0x003f, 0xe67a, 0xe677, 0xe678, - 0xe679, 0xe67c, 0xe6a1, 0x003f, 0x003f, 0xea5f, 0xea5c, 0xea5d, - 0xbf57, 0xea5b, 0xea61, 0xea60, 0xea5e, 0x003f, 0xed64, 0xed65, - 0xc0f1, 0x003f, 0xc0f2, 0xed63, 0x003f, 0xc279, 0xeffe, 0xc278, - 0xc37e, 0x003f, 0xc3a1, 0xc46d, 0xf46e, 0xf46d, 0xf5dd, 0xf6ef, - 0xc57a, 0xf7e8, 0xf7e7, 0xf7e9, 0xa5c8, 0xcfc6, 0xaf59, 0xb276, - 0xd66a, 0xa5c9, 0xc9a7, 0xa4fd, 0x003f, 0x003f, 0xca45, 0x003f, - 0x003f, 0x003f, 0xcb6c, 0xcb6a, 0xcb6b, 0xcb68, 0xa868, 0xcb69, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcd6d, 0x003f, 0xaab3, - 0xcd6b, 0xcd67, 0xcd6a, 0x003f, 0xcd66, 0xaab5, 0xcd69, 0x003f, - 0xaab2, 0xaab1, 0x003f, 0xaab4, 0xcd6c, 0xcd68, 0x003f, 0x003f, - 0x003f, 0x003f, 0xacc2, 0xacc5, 0xcfce, 0xcfcd, 0xcfcc, 0xacbf, - 0xcfd5, 0xcfcb, 0x003f, 0xacc1, 0xd2af, 0x003f, 0xcfd2, 0xcfd0, - 0xacc4, 0x003f, 0xcfc8, 0xcfd3, 0x003f, 0xcfca, 0xcfd4, 0xcfd1, - 0xcfc9, 0x003f, 0xacc0, 0xcfd6, 0xcfc7, 0xacc3, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd2b4, 0xd2ab, 0xd2b6, 0x003f, 0xd2ae, 0xd2b9, - 0xd2ba, 0xd2ac, 0xd2b8, 0xd2b5, 0xd2b3, 0xd2b7, 0xaf5f, 0x003f, - 0xaf5d, 0x003f, 0x003f, 0xd2b1, 0x003f, 0xd2ad, 0x003f, 0xd2b0, - 0xd2bb, 0xd2b2, 0xaf5e, 0xcfcf, 0x003f, 0xaf5a, 0xaf5c, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd678, 0xd66d, 0xd66b, 0x003f, - 0xd66c, 0x003f, 0xd673, 0x003f, 0xd674, 0xd670, 0xb27b, 0xd675, - /* 0x7400 .. 0x74ff */ - 0xd672, 0xd66f, 0x003f, 0xb279, 0xd66e, 0xb277, 0xb27a, 0xd671, - 0xd679, 0xaf5b, 0xb278, 0xd677, 0xd676, 0xb27c, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xda7e, 0x003f, - 0x003f, 0x003f, 0xdaa1, 0xb560, 0x003f, 0xdaa7, 0x003f, 0x003f, - 0xdaa9, 0xdaa2, 0xb55a, 0xdaa6, 0xdaa5, 0xb55b, 0xb561, 0x003f, - 0xb562, 0xdaa8, 0xb558, 0xda7d, 0xda7b, 0xdaa3, 0xda7a, 0xb55f, - 0xda7c, 0xdaa4, 0xdaaa, 0xb559, 0xb55e, 0xb55c, 0xb55d, 0x003f, - 0x003f, 0x003f, 0xb557, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7e9, - 0xdeb7, 0xb7e8, 0xdebb, 0x003f, 0xdeb1, 0x003f, 0xdebc, 0x003f, - 0x003f, 0x003f, 0xdeb2, 0xdeb3, 0x003f, 0xdebd, 0xdeba, 0xdeb8, - 0xdeb9, 0xdeb5, 0xdeb4, 0x003f, 0xdebe, 0xb7e5, 0x003f, 0xdeb6, - 0x003f, 0xb7ea, 0xb7e4, 0xb7eb, 0xb7ec, 0x003f, 0xb7e7, 0xb7e6, - 0x003f, 0x003f, 0xe2ce, 0xbabe, 0xbabd, 0x003f, 0x003f, 0xe2d3, - 0x003f, 0xbcfc, 0xbabf, 0x003f, 0x003f, 0xbac1, 0xe2d4, 0xb7e3, - 0xbac0, 0xe2d0, 0xe2d2, 0xe2cf, 0x003f, 0xe2d1, 0x003f, 0x003f, - 0x003f, 0xe6ab, 0x003f, 0x003f, 0xe6aa, 0xe6a7, 0xbd40, 0xea62, - 0xbd41, 0xe6a6, 0x003f, 0xbcfe, 0x003f, 0xe6a8, 0xe6a5, 0xe6a2, - 0xe6a9, 0xe6a3, 0xe6a4, 0xbcfd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xed69, 0x003f, 0xea66, 0x003f, 0xea65, 0xea67, 0x003f, 0xed66, - 0xbf5a, 0x003f, 0xea63, 0x003f, 0xbf58, 0x003f, 0xbf5c, 0xbf5b, - 0xea64, 0xea68, 0x003f, 0xbf59, 0x003f, 0xed6d, 0xc0f5, 0xc27a, - 0xc0f6, 0xc0f3, 0xed6a, 0xed68, 0x003f, 0xed6b, 0x003f, 0xed6e, - 0xc0f4, 0xed6c, 0xed67, 0x003f, 0x003f, 0xf042, 0xf045, 0xf275, - 0xf040, 0x003f, 0xf46f, 0xf046, 0x003f, 0xc3a2, 0xf044, 0xc27b, - 0xf041, 0xf043, 0xf047, 0xf276, 0x003f, 0xf274, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc3a3, 0xf273, 0x003f, 0x003f, 0x003f, 0xc46e, - 0x003f, 0x003f, 0x003f, 0x003f, 0xc4ed, 0xf6f1, 0xc4ec, 0xf6f3, - 0xf6f0, 0xf6f2, 0xc5d0, 0xf8b2, 0xa5ca, 0xcd6e, 0xd2bc, 0xd2bd, - 0xb27d, 0xdebf, 0xbf5d, 0xc3a4, 0xc57b, 0xf8b3, 0xa5cb, 0x003f, - 0xcd6f, 0xa260, 0x003f, 0x003f, 0xcfd7, 0x003f, 0xcfd8, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd2be, 0xd2bf, 0xb27e, 0xb2a1, - 0x003f, 0x003f, 0x003f, 0xdaab, 0x003f, 0xdec2, 0xdec1, 0xdec0, - /* 0x7500 .. 0x75ff */ - 0xe2d5, 0x003f, 0xe2d6, 0xe2d7, 0xbac2, 0x003f, 0x003f, 0xe6ad, - 0xe6ac, 0x003f, 0x003f, 0xea69, 0xbf5e, 0xbf5f, 0x003f, 0xed72, - 0xed6f, 0xed70, 0xed71, 0xf049, 0xf048, 0xc27c, 0xf277, 0xf5de, - 0xa5cc, 0x003f, 0xacc6, 0x003f, 0xb2a2, 0xdec3, 0x003f, 0xa5cd, - 0x003f, 0xd2c0, 0xb2a3, 0x003f, 0x003f, 0xb563, 0xb564, 0x003f, - 0xa5ce, 0xa5cf, 0xca46, 0xa86a, 0xa869, 0xacc7, 0xcfd9, 0xdaac, - 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0x003f, 0x003f, 0x003f, 0xa86b, - 0xa86c, 0xcb6e, 0xcb6d, 0x003f, 0x003f, 0xaab6, 0xcd72, 0xcd70, - 0xcd71, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfda, - 0xcfdb, 0x003f, 0x003f, 0xaccb, 0xacc9, 0x003f, 0xacca, 0xacc8, - 0x003f, 0x003f, 0x003f, 0x003f, 0xaf60, 0x003f, 0x003f, 0x003f, - 0x003f, 0xaf64, 0xaf63, 0xd2c1, 0xaf62, 0xaf61, 0x003f, 0xd2c2, - 0x003f, 0x003f, 0xb2a6, 0xd67b, 0xd67a, 0xb2a4, 0xb2a5, 0x003f, - 0x003f, 0x003f, 0xb566, 0xb565, 0xdaae, 0x003f, 0x003f, 0xdaad, - 0xb2a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7ed, 0xdec5, - 0xb7ee, 0xdec4, 0x003f, 0x003f, 0x003f, 0xe2d8, 0xe6ae, 0xbd42, - 0xea6a, 0x003f, 0x003f, 0x003f, 0xed73, 0x003f, 0xc3a6, 0xc3a5, - 0x003f, 0x003f, 0xc57c, 0xa5d4, 0xcd73, 0x003f, 0x003f, 0xb2a8, - 0xe2d9, 0xbac3, 0x003f, 0x003f, 0xcb6f, 0xcb70, 0x003f, 0x003f, - 0xcd74, 0xaab8, 0xaab9, 0x003f, 0x003f, 0xaab7, 0x003f, 0x003f, - 0x003f, 0x003f, 0xaccf, 0xacd0, 0xaccd, 0xacce, 0x003f, 0xcfdc, - 0x003f, 0x003f, 0xcfdd, 0xaccc, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd2c3, 0x003f, 0xaf68, 0xaf69, 0x003f, 0xb2ab, 0xd2c9, 0x003f, - 0xaf6e, 0xaf6c, 0xd2ca, 0xd2c5, 0xaf6b, 0xaf6a, 0xaf65, 0xd2c8, - 0xd2c7, 0xd2c4, 0xaf6d, 0x003f, 0xd2c6, 0xaf66, 0x003f, 0xaf67, - 0x003f, 0x003f, 0xb2ac, 0xd6a1, 0xd6a2, 0xb2ad, 0xd67c, 0xd67e, - 0xd6a4, 0xd6a3, 0xd67d, 0x003f, 0xb2a9, 0xb2aa, 0x003f, 0xdab6, - 0xb56b, 0xb56a, 0xdab0, 0xb568, 0x003f, 0xdab3, 0xb56c, 0xdab4, - 0xb56d, 0xdab1, 0xb567, 0xb569, 0xdab5, 0x003f, 0xdab2, 0xdaaf, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xded2, 0x003f, 0xdec7, - 0xb7f0, 0xb7f3, 0xb7f2, 0xb7f7, 0xb7f6, 0xded3, 0xded1, 0xdeca, - 0xdece, 0xdecd, 0xb7f4, 0xded0, 0xdecc, 0xded4, 0xdecb, 0xb7f5, - /* 0x7600 .. 0x76ff */ - 0xb7ef, 0xb7f1, 0x003f, 0xdec9, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe2db, 0xbac7, 0xe2df, 0xbac6, 0xe2dc, 0xbac5, 0x003f, 0xdec8, - 0xdecf, 0xe2de, 0x003f, 0xbac8, 0xe2e0, 0xe2dd, 0xe2da, 0x003f, - 0x003f, 0xe6b1, 0xe6b5, 0xe6b7, 0xe6b3, 0xe6b2, 0xe6b0, 0xbd45, - 0xbd43, 0xbd48, 0xbd49, 0xe6b4, 0xbd46, 0xe6af, 0xbd47, 0xbac4, - 0xe6b6, 0xbd44, 0x003f, 0x003f, 0x003f, 0xea6c, 0x003f, 0xea6b, - 0xea73, 0xea6d, 0xea72, 0xea6f, 0xbf60, 0xea71, 0x003f, 0x003f, - 0xbf61, 0x003f, 0xbf62, 0x003f, 0xea70, 0xea6e, 0x003f, 0x003f, - 0x003f, 0x003f, 0xc0f8, 0xed74, 0x003f, 0x003f, 0xc0f7, 0xed77, - 0xed75, 0xed76, 0x003f, 0x003f, 0xc0f9, 0x003f, 0x003f, 0x003f, - 0xf04d, 0x003f, 0xc2a1, 0xf04e, 0x003f, 0x003f, 0xc27d, 0xf04f, - 0xc27e, 0xf04c, 0xf050, 0x003f, 0xf04a, 0x003f, 0x003f, 0xc3a7, - 0xf278, 0xc3a8, 0xc46f, 0x003f, 0xf04b, 0xc470, 0x003f, 0x003f, - 0x003f, 0xc4ee, 0xf5df, 0x003f, 0xc57e, 0xf6f4, 0xc57d, 0x003f, - 0xf7ea, 0xc5f5, 0xc5f6, 0x003f, 0x003f, 0xf9cc, 0x003f, 0x003f, - 0xacd1, 0xcfde, 0x003f, 0xb56e, 0xb56f, 0xa5d5, 0xa6ca, 0xca47, - 0x003f, 0xcb71, 0xa86d, 0x003f, 0xaaba, 0x003f, 0xacd2, 0xacd3, - 0xacd4, 0xd6a6, 0xd2cb, 0xaf6f, 0x003f, 0x003f, 0xb2ae, 0xd6a5, - 0x003f, 0x003f, 0xdab8, 0xb571, 0x003f, 0xdab7, 0xb570, 0x003f, - 0x003f, 0xded5, 0xbd4a, 0xe6bb, 0xe6b8, 0xe6b9, 0xe6ba, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xed78, 0x003f, 0xf051, 0x003f, - 0x003f, 0x003f, 0xf471, 0xf470, 0x003f, 0xf6f5, 0xa5d6, 0xcd75, - 0xaf70, 0x003f, 0x003f, 0x003f, 0xb572, 0xded6, 0x003f, 0x003f, - 0xe2e1, 0x003f, 0xbd4b, 0xea74, 0x003f, 0xf052, 0xf472, 0xa5d7, - 0x003f, 0x003f, 0xaabb, 0xacd7, 0xcfdf, 0xacd8, 0xacd6, 0x003f, - 0xacd5, 0xd2cc, 0xaf71, 0x003f, 0x003f, 0xaf72, 0xaf73, 0x003f, - 0x003f, 0x003f, 0xb2b0, 0xd6a7, 0xb2af, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xdab9, 0xb2b1, 0xb573, 0xded7, 0xb7f8, 0xb7f9, - 0x003f, 0xbac9, 0x003f, 0xbaca, 0xbd4c, 0xbf64, 0xea75, 0xbf63, - 0x003f, 0xed79, 0xc0fa, 0x003f, 0xf053, 0xf473, 0xa5d8, 0xa86e, - 0xcd78, 0xcd77, 0xaabc, 0xcd76, 0xaabd, 0xcd79, 0x003f, 0xcfe5, - 0xacdb, 0xacda, 0xcfe7, 0xcfe6, 0xacdf, 0x003f, 0xacde, 0x003f, - /* 0x7700 .. 0x77ff */ - 0x003f, 0xacd9, 0x003f, 0xcfe1, 0xcfe2, 0xcfe3, 0x003f, 0xace0, - 0xcfe0, 0xacdc, 0xcfe4, 0xacdd, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd2cf, 0xd2d3, 0xd2d1, 0xd2d0, 0x003f, 0xd2d4, 0x003f, 0x003f, - 0x003f, 0xd2d5, 0xd2d6, 0xd2ce, 0x003f, 0xd2cd, 0x003f, 0xaf75, - 0xaf76, 0x003f, 0xd2d7, 0xd2d2, 0x003f, 0xd6b0, 0x003f, 0xd2d8, - 0xaf77, 0xaf74, 0x003f, 0x003f, 0x003f, 0xd6aa, 0x003f, 0xd6a9, - 0x003f, 0xd6ab, 0xd6ac, 0xd6ae, 0xd6ad, 0xd6b2, 0xb2b5, 0xb2b2, - 0xb2b6, 0xd6a8, 0xb2b7, 0xd6b1, 0xb2b4, 0xd6af, 0xb2b3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdabc, 0xdabe, 0xdaba, 0xdabb, - 0x003f, 0x003f, 0xdabf, 0xdac1, 0xdac2, 0xdabd, 0xdac0, 0xb574, - 0x003f, 0x003f, 0xdedb, 0x003f, 0xdee0, 0xded8, 0xdedc, 0x003f, - 0x003f, 0xdee1, 0xdedd, 0xb7fa, 0xb843, 0x003f, 0xb7fd, 0xded9, - 0xdeda, 0xbace, 0xb846, 0xb7fe, 0x003f, 0xb844, 0xb7fc, 0xdedf, - 0xb845, 0xdede, 0xb841, 0xb7fb, 0xb842, 0xdee2, 0xe2e6, 0xe2e8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb840, 0x003f, 0x003f, 0xe2e3, 0xbacc, 0xe2e9, 0xbacd, - 0xe2e7, 0xe2e2, 0xe2e5, 0xe2ea, 0xbacb, 0xe2e4, 0x003f, 0xbd4e, - 0xe6bf, 0xe6be, 0x003f, 0xbd51, 0xbd4f, 0xe6bc, 0xbd4d, 0xe6bd, - 0x003f, 0xbd50, 0x003f, 0x003f, 0x003f, 0xea7d, 0x003f, 0xeaa1, - 0x003f, 0xea7e, 0xea76, 0xea7a, 0xea79, 0xea77, 0xbf66, 0xbf67, - 0xbf65, 0xea78, 0xea7b, 0xea7c, 0x003f, 0xbf68, 0x003f, 0xc140, - 0xeda3, 0x003f, 0xc0fc, 0xed7b, 0xc0fe, 0xc141, 0x003f, 0x003f, - 0xc0fd, 0xeda2, 0xed7c, 0xc0fb, 0xeda1, 0xed7a, 0xed7e, 0xed7d, - 0x003f, 0x003f, 0xf055, 0xc2a4, 0xc2a5, 0xc2a2, 0x003f, 0xc2a3, - 0x003f, 0x003f, 0xf054, 0x003f, 0xf27b, 0x003f, 0x003f, 0xc3a9, - 0x003f, 0xf279, 0xf27a, 0x003f, 0xf474, 0xf477, 0xf475, 0xf476, - 0xf5e0, 0x003f, 0x003f, 0xc4ef, 0xf7eb, 0xf8b4, 0x003f, 0xc5f7, - 0xf8f8, 0xf8f9, 0xc666, 0xa5d9, 0xace1, 0x003f, 0xdac3, 0x003f, - 0xdee3, 0x003f, 0xa5da, 0xa86f, 0x003f, 0xaabe, 0x003f, 0xcfe8, - 0xcfe9, 0xaf78, 0x003f, 0x003f, 0xdac4, 0xb575, 0xb847, 0xc142, - 0xeda4, 0xf27c, 0xf478, 0xa5db, 0x003f, 0x003f, 0x003f, 0xcda1, - 0xcd7a, 0xcd7c, 0xcd7e, 0xcd7d, 0xcd7b, 0xaabf, 0x003f, 0x003f, - /* 0x7800 .. 0x78ff */ - 0x003f, 0x003f, 0xace2, 0xcff2, 0x003f, 0xcfed, 0xcfea, 0x003f, - 0x003f, 0xcff1, 0x003f, 0x003f, 0xace4, 0xace5, 0xcff0, 0xcfef, - 0xcfee, 0xcfeb, 0xcfec, 0xcff3, 0xace3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaf7c, 0x003f, 0xafa4, - 0xafa3, 0xd2e1, 0xd2db, 0xd2d9, 0x003f, 0xafa1, 0xd6b9, 0xaf7a, - 0xd2de, 0xd2e2, 0xd2e4, 0xd2e0, 0xd2da, 0xafa2, 0xd2df, 0xd2dd, - 0xaf79, 0xd2e5, 0xafa5, 0xd2e3, 0xaf7d, 0xd2dc, 0x003f, 0xaf7e, - 0xaf7b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb2b9, 0x003f, 0xd6ba, 0x003f, 0x003f, - 0xd6b3, 0xd6b5, 0xd6b7, 0x003f, 0xd6b8, 0xd6b6, 0xb2ba, 0x003f, - 0xd6bb, 0x003f, 0xd6b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xdac8, 0xb576, 0xdad0, 0x003f, - 0xdac5, 0x003f, 0xdad1, 0x003f, 0xdac6, 0xdac7, 0x003f, 0x003f, - 0xdacf, 0xdace, 0xdacb, 0xb2b8, 0xb577, 0xdac9, 0xdacc, 0xb578, - 0xdacd, 0xdaca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdeee, 0x003f, 0xdef2, 0xb84e, 0x003f, 0xe2f0, 0xb851, - 0xdef0, 0xf9d6, 0x003f, 0xdeed, 0xdee8, 0xdeea, 0xdeeb, 0xdee4, - 0x003f, 0xb84d, 0x003f, 0x003f, 0xb84c, 0x003f, 0xb848, 0xdee7, - 0x003f, 0xb84f, 0x003f, 0xb850, 0xdee6, 0xdee9, 0xdef1, 0xb84a, - 0xb84b, 0xdeef, 0xdee5, 0x003f, 0x003f, 0x003f, 0xe2f2, 0xbad0, - 0xe2f4, 0xdeec, 0xe2f6, 0xbad4, 0xe2f7, 0xe2f3, 0x003f, 0xbad1, - 0xe2ef, 0xbad3, 0xe2ec, 0xe2f1, 0xe2f5, 0xe2ee, 0x003f, 0x003f, - 0xb849, 0x003f, 0xe2eb, 0xbad2, 0xe2ed, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbd54, 0xe6c1, 0xbd58, 0x003f, 0xbd56, 0x003f, - 0x003f, 0xbacf, 0x003f, 0xe6c8, 0xe6c9, 0xbd53, 0x003f, 0x003f, - 0xe6c7, 0xe6ca, 0xbd55, 0xbd52, 0xe6c3, 0xe6c0, 0xe6c5, 0xe6c2, - 0xbd59, 0xe6c4, 0x003f, 0x003f, 0xe6c6, 0xbd57, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbf6a, 0xeaa8, 0x003f, 0xeaa2, 0xeaa6, 0xeaac, - 0xeaad, 0xeaa9, 0xeaaa, 0xeaa7, 0x003f, 0xeaa4, 0x003f, 0xbf6c, - 0xbf69, 0xeaa3, 0xeaa5, 0x003f, 0xbf6b, 0xeaab, 0x003f, 0xc146, - 0x003f, 0x003f, 0xedaa, 0xeda5, 0xc145, 0x003f, 0x003f, 0xc143, - 0x003f, 0xedac, 0xc144, 0xeda8, 0xeda9, 0xeda6, 0xedad, 0xf056, - /* 0x7900 .. 0x79ff */ - 0x003f, 0xc147, 0xeda7, 0x003f, 0xedae, 0xedab, 0x003f, 0x003f, - 0x003f, 0xf05a, 0x003f, 0x003f, 0xf057, 0x003f, 0xc2a6, 0x003f, - 0xf05b, 0xf05d, 0xf05c, 0xf058, 0xf059, 0x003f, 0x003f, 0xf2a3, - 0x003f, 0xc3aa, 0x003f, 0xf27e, 0xf2a2, 0xf27d, 0xf2a4, 0x003f, - 0x003f, 0xf2a1, 0x003f, 0xf47a, 0xf47d, 0xf479, 0xc471, 0xf47b, - 0xf47c, 0xf47e, 0xc472, 0xc474, 0xc473, 0xf5e1, 0x003f, 0xf5e3, - 0x003f, 0xf5e2, 0x003f, 0x003f, 0x003f, 0xf6f6, 0x003f, 0x003f, - 0xf8b5, 0xf8fa, 0xa5dc, 0x003f, 0x003f, 0xcb72, 0xaac0, 0xcda3, - 0xaac1, 0xaac2, 0xcda2, 0x003f, 0xcff8, 0xcff7, 0xace6, 0xace9, - 0xace8, 0xace7, 0xcff4, 0xcff6, 0xcff5, 0x003f, 0x003f, 0xd2e8, - 0xafa7, 0xd2ec, 0xd2eb, 0xd2ea, 0xd2e6, 0xafa6, 0xafaa, 0xafad, - 0x003f, 0x003f, 0xafae, 0xd2e7, 0xd2e9, 0xafac, 0xafab, 0xafa9, - 0xafa8, 0xd6c2, 0x003f, 0xd6c0, 0xd6bc, 0xb2bb, 0x003f, 0xd6bd, - 0xb2bc, 0xd6be, 0xd6bf, 0xd6c1, 0x003f, 0xb2bd, 0x003f, 0x003f, - 0xdad5, 0x003f, 0xdad4, 0xdad3, 0xdad2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdef6, 0xb852, 0x003f, 0xdef3, 0xdef5, 0x003f, 0xb853, - 0x003f, 0xb854, 0xdef4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe341, 0x003f, 0xe2f9, 0xe2fa, 0x003f, 0xbad7, 0xbad5, 0xbad6, - 0xe343, 0x003f, 0xe342, 0xe2fe, 0xe2fd, 0xe2fc, 0xe2fb, 0xe340, - 0xe2f8, 0x003f, 0xe6cb, 0xe6d0, 0xe6ce, 0x003f, 0x003f, 0x003f, - 0xe6cd, 0xe6cc, 0xe6cf, 0x003f, 0xeaae, 0x003f, 0xbf6d, 0xc148, - 0xedb0, 0x003f, 0xc149, 0xedaf, 0xf05f, 0xf05e, 0xc2a7, 0x003f, - 0xf2a5, 0xc3ab, 0xf4a1, 0xc5a1, 0xf6f7, 0x003f, 0xf8b7, 0xf8b6, - 0xc9a8, 0xacea, 0xaceb, 0xd6c3, 0x003f, 0xb856, 0xa5dd, 0xa872, - 0xa871, 0xa870, 0x003f, 0x003f, 0x003f, 0xcda4, 0x003f, 0x003f, - 0xaac4, 0xaac3, 0x003f, 0xacee, 0x003f, 0xcffa, 0xcffd, 0xcffb, - 0x003f, 0xacec, 0xaced, 0x003f, 0x003f, 0xcff9, 0xcffc, 0x003f, - 0xafb5, 0x003f, 0x003f, 0x003f, 0xd2f3, 0xd2f5, 0xd2f4, 0xafb2, - 0xd2ef, 0x003f, 0x003f, 0xafb0, 0xafaf, 0x003f, 0xafb3, 0xafb1, - 0x003f, 0xafb4, 0xd2f2, 0xd2ed, 0xd2ee, 0xd2f1, 0xd2f0, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6c6, 0xd6c7, - 0xd6c5, 0x003f, 0xd6c4, 0xb2be, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7a00 .. 0x7aff */ - 0xb57d, 0x003f, 0xdad6, 0xdad8, 0xdada, 0xb57c, 0x003f, 0x003f, - 0xb57a, 0x003f, 0xdad7, 0xb57b, 0xdad9, 0xb579, 0x003f, 0x003f, - 0xdf41, 0xdef7, 0xdefa, 0xdefe, 0xb85a, 0xdefc, 0x003f, 0xdefb, - 0xdef8, 0xdef9, 0xb858, 0xdf40, 0xb857, 0x003f, 0xb85c, 0xb85b, - 0xb859, 0x003f, 0xdefd, 0x003f, 0x003f, 0x003f, 0xe349, 0x003f, - 0xe348, 0x003f, 0x003f, 0xe344, 0x003f, 0x003f, 0xbad8, 0xe347, - 0xe346, 0xbad9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbd5e, - 0x003f, 0xe6d2, 0x003f, 0xbd5f, 0xbd5b, 0xbd5d, 0x003f, 0xbd5a, - 0xbd5c, 0x003f, 0x003f, 0x003f, 0xeaaf, 0x003f, 0xbf70, 0xeab1, - 0xeab0, 0x003f, 0xe345, 0xbf72, 0xbf71, 0xbf6e, 0xbf6f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xedb5, 0x003f, 0xedb3, 0xc14a, - 0xedb4, 0x003f, 0xedb6, 0xedb2, 0xedb1, 0x003f, 0x003f, 0xf060, - 0xc2aa, 0xc2a8, 0xc2a9, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a6, - 0xf2a7, 0xc3ad, 0x003f, 0xc3ac, 0xf4a3, 0xf4a4, 0xf4a2, 0x003f, - 0xf6f8, 0xf6f9, 0x003f, 0x003f, 0xa5de, 0xca48, 0xa873, 0x003f, - 0xcda5, 0xaac6, 0xaac5, 0xcda6, 0x003f, 0x003f, 0xd040, 0xacef, - 0xcffe, 0xacf0, 0x003f, 0x003f, 0xafb6, 0xd2f8, 0xd2f6, 0xd2fc, - 0xafb7, 0xd2f7, 0xd2fb, 0xd2f9, 0xd2fa, 0x003f, 0x003f, 0xd6c8, - 0xd6ca, 0x003f, 0xb2bf, 0x003f, 0xd6c9, 0xb2c0, 0xb5a2, 0xb5a1, - 0xb57e, 0xdadb, 0x003f, 0x003f, 0x003f, 0x003f, 0xdf44, 0xb85d, - 0xb85e, 0x003f, 0xdf43, 0xdf42, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe34a, 0xbadb, 0xbada, 0xe34b, 0xe34c, 0x003f, 0xbd61, 0xbd60, - 0x003f, 0xeab5, 0xe6d3, 0xe6d5, 0xe6d4, 0xeab4, 0xeab2, 0xeab6, - 0xeab3, 0x003f, 0xbf73, 0x003f, 0x003f, 0x003f, 0xedb7, 0xc14b, - 0xedb8, 0xedb9, 0x003f, 0x003f, 0xc2ab, 0xc2ac, 0x003f, 0xc475, - 0x003f, 0x003f, 0xc5d1, 0xa5df, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xd041, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd2fd, 0xafb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3ba, - 0xb3b9, 0x003f, 0x003f, 0xb5a4, 0xdadd, 0xb5a3, 0xdadc, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdf45, 0x003f, 0xbadc, 0xe34d, 0xbadd, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc476, 0xf4a5, - 0x003f, 0xa6cb, 0xaac7, 0xcda7, 0x003f, 0xacf2, 0x003f, 0xacf1, - /* 0x7b00 .. 0x7bff */ - 0xd042, 0xd043, 0x003f, 0x003f, 0xd340, 0xd342, 0xafb9, 0x003f, - 0xd344, 0xd347, 0xd345, 0x003f, 0x003f, 0x003f, 0xd346, 0xd343, - 0xd2fe, 0xafba, 0xd348, 0xd341, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd6d3, 0xb2c6, 0xd6dc, 0xb2c3, 0x003f, 0xd6d5, 0xb2c7, 0x003f, - 0xb2c1, 0x003f, 0xd6d0, 0xd6dd, 0xd6d1, 0xd6ce, 0xb2c5, 0x003f, - 0xb2c2, 0x003f, 0xd6d4, 0xd6d7, 0xb2c4, 0xd6d8, 0xb2c8, 0xd6d9, - 0xd6cf, 0xd6d6, 0xd6da, 0xd6d2, 0xd6cd, 0xd6cb, 0x003f, 0x003f, - 0xd6db, 0x003f, 0x003f, 0xdadf, 0x003f, 0x003f, 0x003f, 0x003f, - 0xdae4, 0x003f, 0x003f, 0x003f, 0xdae0, 0xdae6, 0xb5a7, 0xd6cc, - 0xdae1, 0xb5a5, 0xdade, 0xb5ac, 0xdae2, 0xb5ab, 0xdae3, 0xb5ad, - 0xb5a8, 0xb5ae, 0xb5a9, 0x003f, 0xb5aa, 0x003f, 0xb5a6, 0x003f, - 0xdae5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb861, 0xdf50, 0x003f, 0xdf53, 0xdf47, 0xdf4c, 0xdf46, 0xb863, - 0x003f, 0xdf4a, 0x003f, 0x003f, 0x003f, 0xdf48, 0xb862, 0x003f, - 0xdf4f, 0xdf4e, 0xdf4b, 0xdf4d, 0xdf49, 0xbae1, 0xdf52, 0xb85f, - 0xdf51, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xe35d, 0x003f, 0xbae8, 0xe358, 0x003f, 0xbae7, - 0xe34e, 0x003f, 0xe350, 0xbae0, 0xe355, 0xe354, 0xe357, 0xbae5, - 0xe352, 0xe351, 0x003f, 0x003f, 0xbae4, 0xbadf, 0xe353, 0xbae2, - 0xe359, 0xe35b, 0x003f, 0xe356, 0xe34f, 0xbae3, 0x003f, 0x003f, - 0xbd69, 0xbade, 0x003f, 0x003f, 0xe35c, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d9, 0xbd62, 0x003f, 0xe6db, - 0x003f, 0xbd63, 0x003f, 0x003f, 0xbd65, 0xe6de, 0x003f, 0xe6d6, - 0xbae6, 0xe6dc, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d8, 0x003f, - 0xb860, 0xbd68, 0x003f, 0x003f, 0xbd64, 0x003f, 0xbd66, 0xbd67, - 0x003f, 0xbf76, 0xe6dd, 0xe6d7, 0xbd6a, 0x003f, 0xe6da, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeac0, 0xeabb, 0x003f, 0x003f, - 0xeac5, 0xbf74, 0xeabd, 0xbf78, 0xeac3, 0xeaba, 0xeab7, 0xeac6, - 0xc151, 0xbf79, 0xeac2, 0xeab8, 0xbf77, 0xeabc, 0xbf7b, 0xeab9, - 0xeabe, 0xbf7a, 0xeac1, 0xeac4, 0x003f, 0x003f, 0x003f, 0x003f, - 0xedcb, 0xedcc, 0xedbc, 0xedc3, 0xedc1, 0x003f, 0x003f, 0xc14f, - 0xedc8, 0xeabf, 0x003f, 0xedbf, 0x003f, 0xedc9, 0xc14e, 0xedbe, - /* 0x7c00 .. 0x7cff */ - 0xedbd, 0xedc7, 0xedc4, 0xedc6, 0x003f, 0xedba, 0xedca, 0xc14c, - 0x003f, 0xedc5, 0xedce, 0xedc2, 0xc150, 0xc14d, 0xedc0, 0xedbb, - 0xedcd, 0xbf75, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf063, 0x003f, 0x003f, 0xf061, 0xf067, 0xc2b0, 0xf065, - 0xf064, 0xc2b2, 0xf06a, 0xc2b1, 0x003f, 0xf06b, 0xf068, 0xc2ae, - 0xf069, 0xf062, 0xc2af, 0xc2ad, 0xf2ab, 0xf066, 0x003f, 0x003f, - 0xf06c, 0x003f, 0x003f, 0xf2a8, 0x003f, 0x003f, 0x003f, 0xc3b2, - 0xc3b0, 0xf2aa, 0x003f, 0xf2ac, 0xf2a9, 0xc3b1, 0xc3ae, 0xc3af, - 0xc3b3, 0x003f, 0x003f, 0xc478, 0x003f, 0xf4aa, 0x003f, 0xf4a9, - 0xf4a7, 0xf4a6, 0xf4a8, 0x003f, 0xc477, 0xc479, 0x003f, 0x003f, - 0xc4f0, 0x003f, 0x003f, 0xf5e5, 0xf5e4, 0x003f, 0x003f, 0xf6fa, - 0x003f, 0xf6fc, 0xf6fe, 0xf6fd, 0xf6fb, 0x003f, 0x003f, 0xc5a3, - 0xc5a2, 0x003f, 0x003f, 0xc5d3, 0xc5d2, 0xc5d4, 0xf7ed, 0xf7ec, - 0x003f, 0xf8fb, 0xf8b8, 0xf8fc, 0xc658, 0x003f, 0xc659, 0xf96d, - 0x003f, 0x003f, 0xc67e, 0xa6cc, 0x003f, 0xcda8, 0x003f, 0x003f, - 0xd045, 0xd046, 0xd044, 0x003f, 0x003f, 0xacf3, 0x003f, 0xd047, - 0xd048, 0xd049, 0x003f, 0x003f, 0xd349, 0xd34f, 0x003f, 0x003f, - 0xd34d, 0xafbb, 0xd34b, 0x003f, 0xd34c, 0xd34e, 0x003f, 0x003f, - 0x003f, 0xd34a, 0xb2c9, 0x003f, 0xd6de, 0xb2cb, 0xd6e0, 0xb2ca, - 0xd6df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdae8, 0xb5af, - 0x003f, 0xdaea, 0xdae7, 0xd6e1, 0x003f, 0xb5b0, 0x003f, 0xf9db, - 0xdae9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdf56, - 0x003f, 0xb864, 0xdf54, 0xb865, 0xdf55, 0xb866, 0x003f, 0x003f, - 0x003f, 0xbae9, 0xe361, 0xe35e, 0xe360, 0xbaea, 0xbaeb, 0xe35f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6df, 0x003f, 0x003f, - 0xe6e0, 0x003f, 0xbd6b, 0xe6e2, 0xe6e1, 0x003f, 0xa261, 0x003f, - 0xeaca, 0xeacb, 0xeac7, 0x003f, 0xeac8, 0xbf7c, 0xbf7d, 0xeac9, - 0x003f, 0xc157, 0x003f, 0x003f, 0xc153, 0xc158, 0xc154, 0xc156, - 0xc152, 0x003f, 0xc155, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2b3, - 0xedcf, 0x003f, 0xf2ae, 0x003f, 0xf2ad, 0x003f, 0xf4ab, 0xc47a, - 0xc47b, 0xf741, 0xf5e6, 0x003f, 0xf740, 0x003f, 0xf8fd, 0xf9a4, - 0xa6cd, 0x003f, 0x003f, 0xa874, 0x003f, 0xcda9, 0xaac8, 0x003f, - /* 0x7d00 .. 0x7dff */ - 0xacf6, 0xd04c, 0xacf4, 0xd04a, 0xacf9, 0xacf5, 0xacfa, 0xacf8, - 0xd04b, 0xacf7, 0xafbf, 0xafbe, 0xd35a, 0xafc7, 0xd353, 0xd359, - 0xafc3, 0xd352, 0xd358, 0xd356, 0xafc2, 0xafc4, 0xd355, 0xafbd, - 0xd354, 0xafc8, 0xafc5, 0xafc9, 0xafc6, 0xd351, 0xd350, 0xd357, - 0xafc0, 0xafbc, 0xafc1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd6f0, 0xd6e9, 0x003f, 0xb5b5, 0xd6e8, 0x003f, 0xb2cf, 0xb2d6, - 0xb2d3, 0xb2d9, 0xb2d8, 0xb2d4, 0x003f, 0xd6e2, 0xd6e5, 0x003f, - 0xd6e4, 0xb2d0, 0xd6e6, 0xd6ef, 0xb2d1, 0xd6e3, 0xd6ec, 0xd6ed, - 0xb2d2, 0xd6ea, 0xb2d7, 0xb2cd, 0xb2d5, 0xd6e7, 0xb2cc, 0xd6eb, - 0x003f, 0x003f, 0xd6ee, 0x003f, 0x003f, 0x003f, 0xdafb, 0xdaf2, - 0xb5b2, 0xdaf9, 0xdaf6, 0xdaee, 0xdaf7, 0xb5b4, 0xdaef, 0x003f, - 0xdaeb, 0x003f, 0x003f, 0xb86c, 0xdaf4, 0x003f, 0xb5b1, 0xdafa, - 0x003f, 0xb5b8, 0xb5ba, 0xdaed, 0x003f, 0x003f, 0xb5b9, 0xdaf0, - 0xb5b3, 0xdaf8, 0xdaf1, 0xdaf5, 0x003f, 0xdaf3, 0xb5b6, 0xdaec, - 0xb5bb, 0xb2ce, 0xb5b7, 0xb5bc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb868, 0xdf5d, 0xdf5f, 0xdf61, 0xdf65, 0x003f, 0xdf5b, - 0xdf59, 0xb86a, 0x003f, 0xdf60, 0xdf64, 0xdf5c, 0xdf58, 0x003f, - 0xdf57, 0x003f, 0x003f, 0x003f, 0xdf62, 0xdf5a, 0xdf5e, 0xb86b, - 0x003f, 0xb869, 0xdf66, 0xb867, 0xdf63, 0x003f, 0xe372, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbaee, 0xe36a, 0xbd78, 0xe374, - 0xbaf1, 0xe378, 0xbaf7, 0xe365, 0x003f, 0x003f, 0xe375, 0xe362, - 0x003f, 0xe377, 0xe366, 0x003f, 0xbafe, 0xbafb, 0xe376, 0xe370, - 0xbaed, 0xbaf5, 0xbaf4, 0x003f, 0xbaf3, 0xbaf9, 0x003f, 0xe363, - 0xbafa, 0xe371, 0xbaf6, 0xbaec, 0xe373, 0xbaef, 0xbaf0, 0xbaf8, - 0xe368, 0xe367, 0xe364, 0x003f, 0xe36c, 0xe369, 0xe36d, 0xbafd, - 0x003f, 0xe379, 0xbaf2, 0xe36e, 0xe36f, 0x003f, 0xe36b, 0x003f, - 0x003f, 0x003f, 0xbafc, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e7, - 0xbd70, 0xbd79, 0xbd75, 0xe6e4, 0x003f, 0xbd72, 0xbd76, 0xe6f0, - 0xbd6c, 0xe6e8, 0x003f, 0xbd74, 0x003f, 0x003f, 0xe6eb, 0xe6e6, - 0xbd73, 0xbd77, 0xe6e5, 0x003f, 0xbd71, 0x003f, 0xe6ef, 0xbd6e, - 0xe6ee, 0xe6ed, 0xbd7a, 0xe572, 0xbd6d, 0x003f, 0xe6ec, 0xe6e3, - 0x003f, 0xbd7b, 0xe6ea, 0xbd6f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7e00 .. 0x7eff */ - 0x003f, 0x003f, 0x003f, 0xe6e9, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbfa2, 0xbfa7, 0xbf7e, 0xead8, 0xeacf, 0xeadb, 0xead3, 0xead9, - 0xbfa8, 0xbfa1, 0xeacc, 0xead2, 0xeadc, 0xead5, 0xeada, 0xeace, - 0x003f, 0x003f, 0xead6, 0xbfa3, 0xead4, 0xbfa6, 0xbfa5, 0xead0, - 0xead1, 0xeacd, 0xead7, 0xbfa4, 0xeade, 0xeadd, 0x003f, 0x003f, - 0x003f, 0xedda, 0xedd6, 0xc15f, 0x003f, 0xedd0, 0xc159, 0xc169, - 0xeddc, 0xc161, 0xc15d, 0xedd3, 0xc164, 0xc167, 0xedde, 0xc15c, - 0xedd5, 0xc165, 0xede0, 0xeddd, 0xedd1, 0xc160, 0xc15a, 0xc168, - 0xedd8, 0xc163, 0xedd2, 0xc15e, 0xeddf, 0xc162, 0xc15b, 0xedd9, - 0xc166, 0xedd7, 0x003f, 0x003f, 0xeddb, 0x003f, 0x003f, 0x003f, - 0xf06e, 0xf074, 0xc2b9, 0xf077, 0xc2b4, 0xc2b5, 0xf06f, 0xf076, - 0xf071, 0xc2ba, 0xc2b7, 0x003f, 0xf06d, 0x003f, 0xc2b6, 0xf073, - 0xf075, 0xc2b8, 0xf072, 0xf070, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf2b8, 0xc3b7, 0xc3b8, 0xc3b4, 0x003f, 0xc3b5, 0x003f, 0xf2b4, - 0xf2b2, 0x003f, 0xf2b6, 0xc3ba, 0xf2b7, 0xf2b0, 0xf2af, 0xf2b3, - 0xf2b1, 0xc3b6, 0xf2b5, 0xf4ac, 0xc47e, 0xc47d, 0xf4ad, 0x003f, - 0xf4af, 0xf4ae, 0xc4a1, 0x003f, 0x003f, 0x003f, 0xf5eb, 0xf5e8, - 0xf5e9, 0x003f, 0xf5e7, 0xf5ea, 0xc4f2, 0xf5ec, 0x003f, 0xc4f1, - 0x003f, 0xf742, 0x003f, 0xc5d5, 0xc5d7, 0xf7ee, 0xc5d6, 0xf8b9, - 0xf940, 0xf942, 0xf8fe, 0xf941, 0xc66c, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x7f00 .. 0x7fff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa6ce, 0x003f, - 0xacfb, 0xd26f, 0xafca, 0x003f, 0x003f, 0xb2da, 0xdafc, 0xdafd, - 0x003f, 0x003f, 0x003f, 0xeadf, 0xc16a, 0xede1, 0x003f, 0x003f, - 0xc2bb, 0x003f, 0xf2ba, 0xf2b9, 0xc4a2, 0xf5ed, 0x003f, 0xf743, - 0xc5f8, 0xca49, 0x003f, 0x003f, 0xaac9, 0xa875, 0x003f, 0x003f, - 0xd04d, 0x003f, 0x003f, 0xd360, 0xd35b, 0xd35f, 0xd35d, 0xafcb, - 0xd35e, 0xd35c, 0x003f, 0xd6f1, 0x003f, 0xdafe, 0xdb40, 0xdf69, - 0xdf6a, 0xb86e, 0xb86f, 0xdf68, 0xdf6b, 0xdf67, 0xb86d, 0x003f, - 0xbb40, 0x003f, 0xb870, 0xe37a, 0x003f, 0xbd7c, 0xe6f1, 0xbd7d, - 0x003f, 0xbfa9, 0xeae2, 0xeae0, 0xeae1, 0xede4, 0xede3, 0xede2, - 0x003f, 0x003f, 0x003f, 0xf2bb, 0x003f, 0xc3b9, 0xf2bc, 0xf744, - 0xc5f9, 0xf8ba, 0xa6cf, 0xaacb, 0xaaca, 0xd04f, 0xacfc, 0x003f, - 0x003f, 0xd04e, 0xd362, 0x003f, 0xafcc, 0xd6f2, 0xd361, 0x003f, - 0x003f, 0x003f, 0xb2dc, 0xd6f5, 0xd6f3, 0xd6f4, 0xb2db, 0x003f, - 0xdb42, 0xdb43, 0xdb41, 0x003f, 0xb873, 0xdf6d, 0xdf6c, 0xdf6e, - 0xb872, 0xb871, 0x003f, 0x003f, 0xe6f2, 0xe6f4, 0x003f, 0xbd7e, - 0xe6f3, 0xeae3, 0xbfaa, 0xf079, 0x003f, 0xf078, 0xc3bb, 0xf2bd, - 0xc3bd, 0xc3bc, 0xf4b0, 0xf5ee, 0xc4f3, 0xa6d0, 0xd050, 0xacfd, - 0xd365, 0xafce, 0xd364, 0xd363, 0x003f, 0xafcd, 0x003f, 0xd6fb, - 0x003f, 0xd6fd, 0xd6f6, 0xd6f7, 0xb2dd, 0xd6f8, 0xb2de, 0xd6fc, - 0xd6f9, 0xd6fa, 0xb2df, 0x003f, 0xb5be, 0xb5bf, 0x003f, 0xdb44, - 0x003f, 0x003f, 0x003f, 0xdf6f, 0xdf70, 0x003f, 0xe37e, 0xbb43, - 0xbb41, 0xbb42, 0xe37b, 0xe37c, 0x003f, 0xe37d, 0xe6f9, 0x003f, - 0xe6fa, 0xbda1, 0xe6f7, 0xe6f6, 0xe6f8, 0xe6f5, 0xbfad, 0xeae4, - 0xbfab, 0xbfac, 0xede6, 0xc16b, 0xede5, 0xefa8, 0x003f, 0xf07a, - 0xf07b, 0xc2bc, 0x003f, 0xc2bd, 0xc16c, 0xf2be, 0xf2bf, 0xf4b1, - /* 0x8000 .. 0x80ff */ - 0xc4a3, 0xa6d1, 0x003f, 0xa6d2, 0xacfe, 0xaacc, 0xafcf, 0xd051, - 0x003f, 0x003f, 0x003f, 0xb5c0, 0xa6d3, 0xad41, 0xd052, 0xd053, - 0xad40, 0xad42, 0xa6d4, 0x003f, 0xd054, 0xafd1, 0xd366, 0xafd3, - 0xafd0, 0xafd2, 0x003f, 0xd741, 0xb2e0, 0x003f, 0xd740, 0xd6fe, - 0x003f, 0xdf71, 0x003f, 0x003f, 0xe3a1, 0x003f, 0xbda2, 0x003f, - 0xbfae, 0xeae6, 0xeae5, 0x003f, 0xede7, 0x003f, 0x003f, 0x003f, - 0xf5ef, 0x003f, 0x003f, 0xa6d5, 0xcb73, 0xcdaa, 0xad43, 0xd055, - 0x003f, 0xd368, 0x003f, 0x003f, 0x003f, 0xafd4, 0xd367, 0xafd5, - 0x003f, 0x003f, 0x003f, 0xd743, 0x003f, 0x003f, 0xb2e2, 0xd742, - 0xd744, 0x003f, 0xb2e1, 0x003f, 0x003f, 0x003f, 0x003f, 0xdb46, - 0xdb47, 0xdb45, 0xb5c1, 0x003f, 0x003f, 0x003f, 0xb874, 0x003f, - 0xb875, 0x003f, 0xbb45, 0x003f, 0xe3a3, 0xe3a2, 0xbb44, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe6fb, 0x003f, 0x003f, 0xe6fc, - 0x003f, 0x003f, 0x003f, 0x003f, 0xeae7, 0x003f, 0x003f, 0xc170, - 0xc16f, 0xc16d, 0xc16e, 0xc171, 0x003f, 0xf07c, 0xc2bf, 0xc2be, - 0xf2c0, 0xf4b2, 0x003f, 0x003f, 0x003f, 0xc5a5, 0xc5a4, 0xa6d6, - 0x003f, 0x003f, 0xd1fb, 0x003f, 0xb877, 0xb5c2, 0xb876, 0xbb46, - 0x003f, 0xa6d7, 0xc9a9, 0xa6d8, 0xa6d9, 0x003f, 0x003f, 0xcdab, - 0xcb76, 0x003f, 0xcb77, 0xa877, 0x003f, 0xcb74, 0xa876, 0x003f, - 0xa879, 0xcb75, 0xa87b, 0xa87a, 0xcb78, 0xa878, 0x003f, 0x003f, - 0x003f, 0xaad1, 0xaacf, 0xcdad, 0x003f, 0xaace, 0x003f, 0x003f, - 0x003f, 0xaad3, 0xaad5, 0xaad2, 0x003f, 0xcdb0, 0xcdac, 0xaad6, - 0x003f, 0xaad0, 0xa87c, 0x003f, 0xaad4, 0xcdaf, 0x003f, 0x003f, - 0xcdae, 0x003f, 0xaacd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd05b, 0xad47, 0xad48, 0xd05d, 0x003f, 0xd057, - 0xd05a, 0xd063, 0xd061, 0x003f, 0xad49, 0xd067, 0xad4c, 0xd064, - 0xd05c, 0xd059, 0x003f, 0x003f, 0xdb49, 0xd062, 0xad44, 0xd065, - 0xd056, 0xd05f, 0xad46, 0xad4b, 0xd060, 0xad4f, 0xad4d, 0x003f, - 0xd058, 0xad4a, 0x003f, 0xd05e, 0xad4e, 0xad45, 0xd066, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xafda, 0x003f, 0xafe3, - 0xafd8, 0xafd6, 0xd36a, 0xafde, 0xafdb, 0xd36c, 0x003f, 0x003f, - 0xafdd, 0xd36b, 0xd369, 0xd36e, 0xafe2, 0xafe0, 0xdb48, 0x003f, - /* 0x8100 .. 0x81ff */ - 0xd36f, 0xd36d, 0xafd7, 0x003f, 0x003f, 0xafd9, 0xafdc, 0x003f, - 0xafdf, 0x003f, 0xafe1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd74e, 0xb2e4, 0x003f, - 0xd745, 0xd747, 0x003f, 0xd748, 0x003f, 0xd750, 0xd74c, 0xd74a, - 0x003f, 0xd74d, 0xd751, 0xb2e5, 0xb2e9, 0xd746, 0x003f, 0xd74f, - 0x003f, 0xb2e7, 0x003f, 0xb2e6, 0xd74b, 0xd749, 0x003f, 0xb2e3, - 0xb2e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb5c8, 0xdb51, 0x003f, 0x003f, 0xdb4f, 0xb5ca, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdb4a, 0xdfa1, 0x003f, 0xb5c9, 0xdb4e, - 0x003f, 0x003f, 0xdb4b, 0xb5c5, 0xb5cb, 0xdb50, 0xb5c7, 0xdb4d, - 0xbb47, 0xb5c6, 0xdb4c, 0xb5cc, 0xb5c4, 0xb5c3, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdf77, 0xdf75, 0x003f, 0xdf7b, 0x003f, - 0xdf73, 0xdfa2, 0xdf78, 0x003f, 0xdf72, 0xb87b, 0xb8a3, 0xdf7d, - 0x003f, 0xdf76, 0x003f, 0xb87e, 0x003f, 0x003f, 0xb87c, 0xdf7e, - 0xb879, 0xb878, 0xdf79, 0xb87d, 0xb5cd, 0x003f, 0xdf7c, 0xdf74, - 0xb87a, 0xb8a1, 0xb8a2, 0x003f, 0x003f, 0x003f, 0x003f, 0xbb4c, - 0xbb48, 0x003f, 0xbb4d, 0xe3a6, 0x003f, 0x003f, 0xe3a5, 0xe3a7, - 0xbb4a, 0xe3a4, 0xbb4b, 0xe3aa, 0xe3a9, 0xe3a8, 0x003f, 0xbb49, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe741, 0x003f, 0xe744, - 0xbda8, 0xe743, 0xbda7, 0xbda3, 0xbda4, 0xbda5, 0xe740, 0xe6fe, - 0xbda6, 0x003f, 0xe742, 0xe6fd, 0x003f, 0x003f, 0xeae9, 0xeaf3, - 0xbfb1, 0xbfb0, 0x003f, 0xeaed, 0xeaef, 0x003f, 0xeaea, 0x003f, - 0xeaee, 0xeae8, 0xeaf1, 0xbfaf, 0xeaf0, 0xeaec, 0x003f, 0xeaf2, - 0x003f, 0xeaeb, 0xc174, 0xede8, 0xedee, 0xc178, 0xc17a, 0xc177, - 0xc176, 0x003f, 0xc175, 0xc173, 0xede9, 0xedec, 0xc172, 0xeded, - 0x003f, 0xc179, 0xedeb, 0x003f, 0xedea, 0xc2c0, 0x003f, 0xc2c1, - 0xf0a1, 0xf07d, 0xf07e, 0x003f, 0x003f, 0xf2c2, 0x003f, 0xf2c1, - 0xc3be, 0xf4b4, 0xc4a4, 0xf4b3, 0x003f, 0xf5f0, 0xf745, 0xc5a6, - 0xf943, 0xf944, 0xc5d8, 0xa6da, 0x003f, 0xaad7, 0xdb52, 0xbb4e, - 0xc17b, 0xedef, 0xa6db, 0x003f, 0xafe5, 0xafe4, 0xdb53, 0x003f, - 0x003f, 0x003f, 0xeaf4, 0xa6dc, 0xad50, 0x003f, 0x003f, 0xdb54, - 0xdb55, 0xdb56, 0xbb4f, 0xbfb2, 0xa6dd, 0x003f, 0xaad8, 0xd068, - /* 0x8200 .. 0x82ff */ - 0xafe6, 0xd370, 0xb2ea, 0x003f, 0xdb57, 0xb8a4, 0x003f, 0xbb50, - 0xbfb3, 0xc17c, 0xc2c2, 0xf4b5, 0xa6de, 0xaad9, 0x003f, 0x003f, - 0xafe7, 0xd752, 0xb5ce, 0x003f, 0xbb51, 0xe3ab, 0xe745, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa6df, 0xb5cf, 0xdfa3, 0xbb52, 0xa6e0, - 0xcdb1, 0xd069, 0xad51, 0x003f, 0x003f, 0xd372, 0x003f, 0x003f, - 0xafea, 0x003f, 0xafe8, 0xafe9, 0xafeb, 0x003f, 0x003f, 0xd371, - 0x003f, 0x003f, 0xd757, 0xd754, 0xd756, 0xb2eb, 0xb2ed, 0xb2ec, - 0xd753, 0xb2ee, 0xd755, 0x003f, 0xdb58, 0xdb59, 0x003f, 0xdb5a, - 0xdfa6, 0x003f, 0xdfa7, 0x003f, 0xdfa5, 0xdfa8, 0x003f, 0xb8a5, - 0x003f, 0xdfa4, 0x003f, 0xbb53, 0x003f, 0x003f, 0xe74a, 0xe746, - 0xe749, 0xe74b, 0xe748, 0xe747, 0x003f, 0xeaf5, 0xeaf6, 0xeaf7, - 0xbfb4, 0xbfb5, 0xedf1, 0xedf0, 0xedf2, 0x003f, 0xf0a3, 0xf0a2, - 0x003f, 0xf2c4, 0x003f, 0xf2c5, 0xf2c3, 0x003f, 0xc4a5, 0x003f, - 0xf4b6, 0xf4b7, 0x003f, 0xf746, 0xf7ef, 0xf8bb, 0xa6e1, 0xa87d, - 0x003f, 0xc17d, 0xa6e2, 0x003f, 0xd758, 0xdb5b, 0x003f, 0xc641, - 0xca4a, 0x003f, 0x003f, 0x003f, 0xca4b, 0xca4d, 0xa6e3, 0xca4e, - 0xca4c, 0x003f, 0x003f, 0xcba2, 0xcba3, 0xcb7b, 0x003f, 0x003f, - 0x003f, 0x003f, 0xcba1, 0xa8a1, 0x003f, 0xa8a2, 0xcb7c, 0xcb7a, - 0xcb79, 0xcb7d, 0xa87e, 0xcb7e, 0xd06a, 0x003f, 0x003f, 0x003f, - 0xcdb6, 0xaadc, 0xcdb5, 0xcdb7, 0x003f, 0xaadb, 0xcdbc, 0xaadf, - 0xcdb2, 0xcdc0, 0xcdc6, 0xaae6, 0xcdc3, 0xaae3, 0x003f, 0xcdb9, - 0xcdbf, 0xcdc1, 0x003f, 0xcdb4, 0xaae2, 0xaadd, 0xcdba, 0xaae4, - 0xaae7, 0xaae1, 0x003f, 0xaada, 0xcdbe, 0xcdb8, 0xcdc5, 0xaae9, - 0xaae5, 0xaae0, 0xcdbd, 0xafec, 0xcdbb, 0xaade, 0xaae8, 0x003f, - 0xcdb3, 0x003f, 0xcdc2, 0xcdc4, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xad62, 0xad5c, 0xad64, 0xad61, 0xd071, 0xd074, 0xad5d, - 0x003f, 0xd06b, 0x003f, 0xad56, 0xad60, 0x003f, 0xad63, 0xad65, - 0xd0a2, 0xd077, 0x003f, 0xad55, 0xd0a1, 0xad59, 0xad57, 0xad52, - 0xd06f, 0x003f, 0xd07e, 0xd073, 0xd076, 0xd0a5, 0x003f, 0xad66, - 0xd07d, 0xad5e, 0xd078, 0xd0a4, 0xd075, 0xd079, 0xd07c, 0x003f, - 0x003f, 0xd06d, 0xd0a3, 0xd07b, 0x003f, 0x003f, 0xd06c, 0x003f, - /* 0x8300 .. 0x83ff */ - 0xd070, 0xad5f, 0xad5a, 0xad53, 0xad58, 0xad54, 0xad67, 0xd06e, - 0xd3a5, 0xad5b, 0x003f, 0x003f, 0xd07a, 0xce41, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3a8, 0xaffa, - 0x003f, 0xd376, 0x003f, 0xd3a3, 0xd37d, 0x003f, 0xd3b2, 0x003f, - 0xd3aa, 0x003f, 0xd37e, 0x003f, 0xd3a9, 0xd378, 0xd37c, 0xd3b5, - 0xaffd, 0xd3ad, 0xd3a4, 0xafed, 0xd3b3, 0xd374, 0x003f, 0xd3ac, - 0x003f, 0xaffc, 0xaff7, 0xd373, 0xaff5, 0xaff4, 0xaff9, 0xd3ab, - 0xaff1, 0xaff8, 0xd072, 0xdb5c, 0xd3a6, 0x003f, 0x003f, 0xd37a, - 0xaffb, 0xd37b, 0xd3a1, 0xaffe, 0xd375, 0xd3af, 0x003f, 0xd3ae, - 0xd3b6, 0xaff3, 0xaff0, 0xd3b4, 0xd3b0, 0xd3a7, 0xd3a2, 0xaff6, - 0xaff2, 0xd377, 0xafee, 0xd3b1, 0xafef, 0x003f, 0xd379, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd75e, 0xd760, 0xd765, 0xd779, 0xb2fc, - 0xb2f2, 0x003f, 0xd75d, 0xb2fd, 0xb2fe, 0xd768, 0xd76f, 0xd775, - 0x003f, 0xd762, 0x003f, 0xd769, 0x003f, 0x003f, 0xb340, 0xd777, - 0xd772, 0xb2fa, 0xb2f8, 0xd76e, 0xd76a, 0xd75c, 0xb2ef, 0xd761, - 0xd759, 0x003f, 0xb2f7, 0xb2f9, 0xd766, 0xd763, 0xb2f4, 0xd773, - 0xb2f1, 0xd764, 0xd77a, 0xd76c, 0x003f, 0xd76b, 0xb2f0, 0x003f, - 0xb2fb, 0x003f, 0xb2f3, 0xd75a, 0xd75f, 0xd770, 0xd776, 0xb341, - 0xd75b, 0xd767, 0xd76d, 0xb2f6, 0x003f, 0x003f, 0xd778, 0xd771, - 0xd774, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2f5, 0x003f, 0xdb6c, - 0xdb60, 0xb5d7, 0xdb7d, 0xdba7, 0xdbaa, 0xb5d5, 0xdb68, 0xdba3, - 0xdb69, 0xdb77, 0xb5e2, 0xdb73, 0xb5df, 0x003f, 0xdb74, 0xdb5d, - 0x003f, 0xdba4, 0x003f, 0x003f, 0xb5e8, 0xdba1, 0xdb75, 0xdbac, - 0xdb70, 0xdfc8, 0x003f, 0xdbaf, 0xb5e6, 0xdb6e, 0xdb7a, 0xb5e9, - 0xb5d4, 0xdb72, 0xdbad, 0xdb6b, 0xdb64, 0xdb6f, 0x003f, 0xdb63, - 0xdb61, 0xb5d0, 0xdba5, 0xdb6a, 0xdba8, 0x003f, 0xdba9, 0xb5d8, - 0xb5dd, 0xb5d9, 0xb5e1, 0xdb7e, 0xb5da, 0xdb76, 0xdb66, 0x003f, - 0xb5d2, 0xdb5e, 0xdba2, 0xdbab, 0xdb65, 0xb5e0, 0xdbb0, 0xdb71, - /* 0x8400 .. 0x84ff */ - 0x003f, 0xdb6d, 0x003f, 0xb5d1, 0xb5e5, 0x003f, 0xdb7c, 0xb5e7, - 0x003f, 0xdb78, 0xb5dc, 0xb5d6, 0xb5de, 0xb5d3, 0xb5e4, 0xdb79, - 0xdb67, 0xdb7b, 0xdb62, 0xdba6, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdbae, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xdb5f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdfc7, 0x003f, 0xdfdd, 0xb855, 0xdfcc, 0x003f, 0xdfca, - 0xdfb5, 0xb8a9, 0xdfc5, 0xdfd9, 0xdfc1, 0xb8b1, 0xdfd8, 0xdfbf, - 0xb5e3, 0xdfcf, 0xdfc0, 0xdfd6, 0xb8b0, 0xb8a8, 0x003f, 0xdfaa, - 0xdfb2, 0x003f, 0xdfcb, 0xdfc3, 0xdfdc, 0xdfc6, 0xb8b6, 0xdfd7, - 0x003f, 0xb8ad, 0x003f, 0xdfc9, 0xdfd1, 0xdfb6, 0xdfd0, 0x003f, - 0xdfe1, 0xdfb1, 0xdfd2, 0x003f, 0xdfdf, 0x003f, 0xdfab, 0xb5db, - 0x003f, 0xdfb9, 0xdfb8, 0xb8af, 0x003f, 0xdfbc, 0xdfbe, 0xdfcd, - 0xdfde, 0xb8b2, 0x003f, 0xb8b3, 0x003f, 0xdfb0, 0xb8ab, 0xdfb4, - 0xdfda, 0xb8b4, 0x003f, 0xb8ac, 0xb8ae, 0xb8b5, 0xdfe0, 0xdfd3, - 0xdfce, 0x003f, 0x003f, 0xdfbb, 0xdfba, 0xb8aa, 0xdfac, 0xb8a7, - 0xdfc4, 0xdfad, 0xdfc2, 0x003f, 0x003f, 0xdfb7, 0xdfdb, 0x003f, - 0x003f, 0x003f, 0xb8a6, 0x003f, 0x003f, 0x003f, 0xdfb3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfaf, 0xdfd5, 0xdfae, - 0xbb60, 0xe3d3, 0x003f, 0x003f, 0xe3c2, 0x003f, 0x003f, 0xe3ac, - 0xe3ca, 0xbb58, 0xe3bb, 0xe3c5, 0xbb5b, 0xe3be, 0xbb59, 0xe3af, - 0xe3cd, 0xe3ae, 0xe3c1, 0x003f, 0xe3ad, 0x003f, 0x003f, 0xe3bf, - 0xe3c8, 0xe3c6, 0xe3ba, 0xe3b5, 0xe3b3, 0x003f, 0xe3b4, 0xe3c7, - 0xe3d2, 0xe3bc, 0xbb5a, 0x003f, 0xe3b7, 0x003f, 0xe3cb, 0x003f, - 0xbb5d, 0xe3b6, 0xe3b0, 0xe3c0, 0xbb61, 0x003f, 0x003f, 0xbb55, - 0xbb5e, 0xe3b8, 0xe3b2, 0x003f, 0xbb57, 0xdfd4, 0xbb56, 0xe3c3, - 0x003f, 0xbb54, 0xbb63, 0xbb5c, 0xe3c4, 0xe3b9, 0xe3b1, 0xe3cc, - 0xe3bd, 0xbb62, 0xe3d0, 0xbb5f, 0xe3cf, 0x003f, 0xe3c9, 0xe3ce, - 0x003f, 0x003f, 0x003f, 0xe3d1, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe773, - 0xe774, 0xe767, 0xe766, 0xe762, 0xbdb4, 0x003f, 0xbdac, 0xe776, - 0xe775, 0xdfa9, 0xe75f, 0xe763, 0xe75d, 0x003f, 0xe770, 0xe761, - 0x003f, 0xe777, 0xe75a, 0xe758, 0xe764, 0xe76e, 0xe769, 0xbdb6, - /* 0x8500 .. 0x85ff */ - 0xe74f, 0x003f, 0xe76d, 0x003f, 0x003f, 0x003f, 0xbdb7, 0xdfbd, - 0xe75b, 0xe752, 0xe755, 0xe77b, 0xe75c, 0xe753, 0xe751, 0xe74e, - 0x003f, 0xbdb0, 0xe765, 0xbdaf, 0xbdb3, 0xe760, 0xe768, 0xbda9, - 0xe778, 0xe77c, 0xbdab, 0x003f, 0xe757, 0xe76b, 0xe76f, 0xe754, - 0xe779, 0xbdb2, 0x003f, 0xbdb1, 0xe74c, 0xbdb5, 0xe772, 0xe756, - 0xe76a, 0xe750, 0xe75e, 0xe759, 0xbdad, 0xbdae, 0xe76c, 0xe77d, - 0xe77a, 0xe771, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xe74d, 0x003f, 0xbdaa, 0xeb49, 0x003f, - 0xeb40, 0xeb43, 0x003f, 0xbfbb, 0xeb45, 0xeaf9, 0xeb41, 0xeb47, - 0xbfb8, 0xbfbc, 0xbfb6, 0x003f, 0x003f, 0xeafb, 0xeb4c, 0x003f, - 0x003f, 0xeb46, 0x003f, 0xeafc, 0xeb55, 0xeb4f, 0xeaf8, 0xee46, - 0xeafe, 0xbfb7, 0x003f, 0xeb4a, 0x003f, 0xeb54, 0xbfbf, 0x003f, - 0xeb51, 0xeafd, 0xeb44, 0xeb48, 0xeb42, 0xeb56, 0xeb53, 0xeb50, - 0xbfb9, 0xbfba, 0xbfbe, 0xeafa, 0xeb57, 0xbfbd, 0xeb4d, 0x003f, - 0x003f, 0xeb4b, 0x003f, 0x003f, 0x003f, 0xeb4e, 0xee53, 0xee40, - 0xee45, 0xee52, 0xee44, 0xedfb, 0xee41, 0x003f, 0xc1a2, 0x003f, - 0xedf4, 0xee4d, 0xee4f, 0xedf3, 0xc1a1, 0xee51, 0xee49, 0xc1a8, - 0xee50, 0xee42, 0xc1aa, 0xedf9, 0xeb52, 0xee4a, 0xee47, 0xedf5, - 0xee55, 0xc1a4, 0x003f, 0x003f, 0xc1a5, 0xedf7, 0xee48, 0x003f, - 0xee54, 0xee4b, 0xedfd, 0xc1a7, 0xc1a3, 0xee4c, 0xedfe, 0xee56, - 0xedf8, 0xee43, 0xee4e, 0xedfa, 0xedfc, 0x003f, 0xc2cb, 0xedf6, - 0xc1a9, 0xc2c4, 0xc17e, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1a6, - 0xc2c8, 0xf0b3, 0x003f, 0xf0a9, 0xf0a4, 0xf0aa, 0xf0b4, 0xf0b8, - 0xf0b7, 0xc2ca, 0xc2c9, 0x003f, 0x003f, 0xf0ab, 0xf0b9, 0xf0ae, - 0xf0a6, 0x003f, 0xf0a8, 0xf0a7, 0xf0ad, 0xf0b2, 0xf0a5, 0xf0ac, - 0xf0b1, 0xc2c7, 0x003f, 0xf0af, 0x003f, 0xc2c5, 0xf0b0, 0xc2c3, - 0xc2c6, 0xf2d5, 0xf0b5, 0x003f, 0x003f, 0xc3c2, 0x003f, 0xf2cd, - 0xf2d1, 0xf2c9, 0xf2cc, 0x003f, 0xf2d4, 0xc3c0, 0xf2d9, 0xf2d2, - 0x003f, 0xf2ca, 0xf2da, 0xf2d3, 0xc3c3, 0xc3c4, 0xf2d7, 0x003f, - 0xf2cb, 0xc3bf, 0xc3c1, 0xf2c6, 0xf2ce, 0xf2c8, 0x003f, 0xf2d8, - 0xf2d6, 0xf2c7, 0xf2cf, 0x003f, 0x003f, 0x003f, 0xf4be, 0xc3c5, - 0xf2d0, 0xc4a7, 0xc4a9, 0xc4a6, 0x003f, 0xf4c3, 0xf4bb, 0xf4b9, - /* 0x8600 .. 0x86ff */ - 0xf4bd, 0xf4ba, 0x003f, 0x003f, 0xf4bf, 0xf4c1, 0xc4aa, 0xc4ac, - 0x003f, 0xf4c0, 0xc4ad, 0xc4ab, 0xf4c2, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc4a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4f4, - 0xf5f1, 0xf5f7, 0xc4f6, 0xf4bc, 0xf5f6, 0x003f, 0xf5fd, 0xf5f4, - 0xf5fb, 0xf5fa, 0xf4b8, 0xf5f5, 0xf0b6, 0xf5fe, 0xf5f3, 0xf5f8, - 0x003f, 0xf5fc, 0xf5f2, 0x003f, 0xf74a, 0xc4f5, 0xf5f9, 0x003f, - 0x003f, 0xf7f4, 0xf74b, 0xf749, 0xf747, 0xf748, 0xf74c, 0x003f, - 0xc5d9, 0xf7f2, 0xf7f0, 0xf7f5, 0xf7f3, 0x003f, 0xf7f6, 0xc5da, - 0xf7f1, 0x003f, 0x003f, 0xf8bc, 0x003f, 0x003f, 0xf945, 0xf946, - 0xf947, 0x003f, 0x003f, 0xf9c7, 0xf9bd, 0xca4f, 0xaaea, 0x003f, - 0xad68, 0x003f, 0xd3b8, 0xd3b7, 0xb040, 0xb342, 0xd77c, 0x003f, - 0x003f, 0xd77b, 0x003f, 0xb5ea, 0xb8b8, 0x003f, 0xb8b7, 0xb8b9, - 0x003f, 0xe3d4, 0xe77e, 0xeb58, 0xeb5a, 0xeb59, 0x003f, 0xc1ab, - 0xee57, 0xf0ba, 0xf9a5, 0xa6e4, 0x003f, 0xcdc9, 0xcdca, 0xcdc8, - 0xcdc7, 0xaaeb, 0x003f, 0xd0a9, 0xd0a7, 0x003f, 0x003f, 0xd0a6, - 0x003f, 0xad69, 0xad6b, 0xad6a, 0xd0a8, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3c4, 0xd3c1, 0xd3bf, - 0x003f, 0x003f, 0xb041, 0xd3c2, 0xb046, 0xd3bc, 0xd3cb, 0x003f, - 0xd3cd, 0xd3bd, 0x003f, 0xb043, 0xd3ce, 0xd3c9, 0xd3bb, 0xd3c0, - 0xd3ca, 0xd3c6, 0xd3c3, 0x003f, 0xb048, 0xd3cc, 0xd3be, 0x003f, - 0x003f, 0xd3c7, 0xd3b9, 0xb047, 0xb044, 0xd3c5, 0x003f, 0xd3c8, - 0xd3ba, 0xb045, 0xb042, 0x003f, 0x003f, 0x003f, 0x003f, 0xb34c, - 0xd7a5, 0xb34b, 0x003f, 0xd7a8, 0xd7ab, 0xb348, 0xb346, 0xd77e, - 0xd7a9, 0xd7a7, 0xd7a4, 0xd7ac, 0xd7ad, 0xd7af, 0xd7b0, 0xd77d, - 0xb345, 0xd7a2, 0xd7a1, 0xd7ae, 0xb347, 0xd7a3, 0xb349, 0xb344, - 0xd7a6, 0xb34d, 0x003f, 0xb34a, 0xd7aa, 0x003f, 0x003f, 0x003f, - 0xb5f1, 0xdbbf, 0x003f, 0xdbb4, 0xb5ee, 0x003f, 0xdfe7, 0xdbbd, - 0xdbb1, 0xb5ec, 0xdbb6, 0xb5ef, 0xdbba, 0xdbb8, 0xb5f2, 0xb5eb, - 0x003f, 0x003f, 0xdbb2, 0xdbb5, 0xb5f0, 0x003f, 0xdbb3, 0x003f, - 0xdbbe, 0xdbbc, 0xdbb7, 0xdbb9, 0xdbbb, 0xb5ed, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfe8, 0xdfee, 0xdfe4, - 0xdfea, 0xb8ba, 0xdfe6, 0xb8c0, 0x003f, 0x003f, 0xb8bf, 0x003f, - /* 0x8700 .. 0x87ff */ - 0xb8be, 0xdfed, 0xb8c1, 0xb8c2, 0xdfe3, 0xdff0, 0xb8c3, 0xb8bd, - 0xb8bc, 0xdfec, 0xb8c4, 0xdfe2, 0xdfe5, 0xdfef, 0xdfeb, 0x003f, - 0x003f, 0xe3f4, 0xe3e9, 0xb8bb, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbb6a, 0xe3dd, 0xe3f2, 0xe3de, 0xbb65, 0x003f, 0xe3db, 0x003f, - 0xe3e4, 0xe3dc, 0xbb67, 0xe3d6, 0xe3f1, 0xbb68, 0xe3ee, 0xe3ef, - 0xe3d7, 0xbb6d, 0xe3e6, 0x003f, 0xe3e0, 0xe3e7, 0xe3da, 0x003f, - 0xe3f3, 0xe3eb, 0xe3e5, 0xe3d5, 0xbb69, 0xe3ec, 0x003f, 0xbb6c, - 0xe3f0, 0x003f, 0xe3ea, 0xbb66, 0xe3e8, 0x003f, 0xe3e2, 0xbb64, - 0xe3d9, 0xe3e1, 0xe3ed, 0xe3df, 0x003f, 0x003f, 0xe3e3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xbdc1, 0xdfe9, 0xe7b2, 0xe7bb, - 0xe7b1, 0xe7ad, 0xe7aa, 0xbdc2, 0xe7a8, 0xbb6b, 0xe7a1, 0xbdc0, - 0xe7a7, 0xbdbf, 0xe7ac, 0xe7a9, 0xe7b9, 0xe7b4, 0xe7ae, 0xe7b3, - 0xbdbb, 0xe7ab, 0xe7be, 0xe7a2, 0xe7a3, 0xe7ba, 0xbdbc, 0xe7bf, - 0xbdbe, 0xe7c0, 0xe7b0, 0xe3d8, 0xe7b6, 0xe7af, 0xe7b8, 0xe7b5, - 0x003f, 0x003f, 0x003f, 0xe7a6, 0xbdb9, 0xe7bd, 0xbdba, 0xe7a4, - 0xbdbd, 0xeb64, 0xe7b7, 0xe7bc, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeb61, 0xbdb8, 0xbfc0, 0xeb6b, 0xeb67, 0x003f, 0xeb65, - 0xeb60, 0xeb6f, 0x003f, 0x003f, 0x003f, 0xbfc4, 0x003f, 0xeb5c, - 0xeb68, 0xeb69, 0xeb5f, 0xeb5e, 0xeb6c, 0x003f, 0xeb62, 0xeb5d, - 0xeb63, 0x003f, 0xeb6e, 0xeb5b, 0xeb6d, 0xeb6a, 0xbfc2, 0xbfc1, - 0x003f, 0x003f, 0xbfc3, 0xeb66, 0xf0cb, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xee59, 0xc1b1, 0xee5d, 0xee5a, 0xee61, 0xee67, - 0xee5c, 0x003f, 0xee70, 0xc1ae, 0xee6a, 0xee5f, 0xee6b, 0xee66, - 0xee6d, 0xee5e, 0xc1b3, 0xc1b2, 0xee60, 0xee6e, 0xee58, 0xee6c, - 0xc1ac, 0x003f, 0xee64, 0xee63, 0xee68, 0xee5b, 0xc1b0, 0x003f, - 0xc1b4, 0xee62, 0xee69, 0xc1b5, 0xee65, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc1ad, 0xc1af, 0xf0c7, 0xf0c5, 0x003f, 0x003f, 0xf0cc, - 0xf0c9, 0xf0cd, 0x003f, 0xf0be, 0xf0c6, 0xf0d1, 0xee6f, 0xf0c2, - 0xc2cf, 0xe7a5, 0xf0bd, 0xf0ca, 0xf0c4, 0xf0c1, 0xf0bc, 0xf0bb, - 0xf0d0, 0x003f, 0xf0c0, 0xf0bf, 0xc2cd, 0xf0c8, 0x003f, 0xc2cc, - 0x003f, 0x003f, 0xc2ce, 0xf0c3, 0xf0cf, 0x003f, 0xf2de, 0xf2df, - 0x003f, 0xc3c9, 0xf2dc, 0xc3c6, 0xf2e4, 0x003f, 0xc3ca, 0xf2e6, - /* 0x8800 .. 0x88ff */ - 0xf2db, 0xf0ce, 0xf2e8, 0xf2dd, 0x003f, 0xc3c7, 0xf2e3, 0x003f, - 0xf2e5, 0xf2e0, 0xf2e7, 0xf2e2, 0xf2e1, 0xc3c8, 0x003f, 0x003f, - 0xf4c5, 0xf4c6, 0x003f, 0xf4c8, 0xc4ae, 0xc4af, 0xf4c9, 0xf4c7, - 0x003f, 0xf4c4, 0x003f, 0xf642, 0xf645, 0xf641, 0x003f, 0xc4fa, - 0xf643, 0xc4f9, 0xc4f8, 0xc4f7, 0xf644, 0xf751, 0xf74f, 0x003f, - 0xf74e, 0xf640, 0xf750, 0xf646, 0xf74d, 0x003f, 0xf7f9, 0xf7d7, - 0xf7f7, 0xc5db, 0xf7f8, 0xf7fa, 0x003f, 0xf8bf, 0xc5fa, 0xf8be, - 0xf8bd, 0xc5fb, 0x003f, 0xc65a, 0xf96e, 0xf9a7, 0xf9a6, 0xf9a8, - 0xa6e5, 0xd0aa, 0x003f, 0xd3cf, 0xd3d0, 0x003f, 0x003f, 0x003f, - 0xdbc0, 0x003f, 0xf647, 0xf8c0, 0xa6e6, 0xad6c, 0xd0ab, 0x003f, - 0x003f, 0x003f, 0xd7b1, 0xb34e, 0x003f, 0xdbc2, 0xdbc1, 0xb5f3, - 0x003f, 0xb8c5, 0xe7c1, 0xbdc3, 0x003f, 0xbdc4, 0x003f, 0x003f, - 0x003f, 0xbfc5, 0xc5fc, 0xa6e7, 0x003f, 0x003f, 0x003f, 0xd0ac, - 0xaaed, 0xd0ae, 0xd0ad, 0xad6d, 0x003f, 0xd3d1, 0x003f, 0xd3d8, - 0xb049, 0xd3d6, 0xd3d4, 0x003f, 0xd3db, 0xd3d2, 0xd3d3, 0xb04a, - 0x003f, 0xb04e, 0x003f, 0x003f, 0xd3dc, 0xb04d, 0xd3da, 0xd3d7, - 0xd3d5, 0xb04b, 0xb04c, 0xd3d9, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb350, 0xd7b2, 0x003f, 0xb355, 0xd7c2, 0xb354, 0xd7c4, 0x003f, - 0x003f, 0xd7b8, 0xb352, 0xd7c3, 0x003f, 0xd7b3, 0xb353, 0xd7bf, - 0xd7bb, 0xd7bd, 0xd7b7, 0xd7be, 0x003f, 0x003f, 0xb34f, 0xd7ba, - 0x003f, 0xd7b9, 0xd7b5, 0x003f, 0xd7c0, 0x003f, 0x003f, 0xd7bc, - 0xd7b4, 0x003f, 0xd7b6, 0xb351, 0xd7c1, 0x003f, 0x003f, 0x003f, - 0x003f, 0xb5f6, 0xdbcd, 0x003f, 0x003f, 0x003f, 0xdbc9, 0xdbcb, - 0xdbc6, 0xdbc5, 0xdbc3, 0x003f, 0xdbca, 0xdbcc, 0xdbc8, 0x003f, - 0xdbc7, 0xb5f4, 0xb5f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xdbcf, 0xb8cd, 0xdff2, 0xdff8, 0xdff3, 0xdff4, 0xf9d8, - 0xdff9, 0x003f, 0xb8cf, 0x003f, 0xb8c7, 0xb8ce, 0xdff1, 0xdbc4, - 0xb8ca, 0xb8c8, 0xdff7, 0xdff6, 0xb8c9, 0xb8cb, 0xdff5, 0xb8c6, - 0x003f, 0xb8cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3f6, - 0xbb74, 0x003f, 0x003f, 0xe442, 0xe441, 0x003f, 0xe3fb, 0xbb76, - 0xe440, 0xe3f7, 0xe3f8, 0xbb6e, 0xbb70, 0x003f, 0xe3fd, 0xe3f5, - 0xbb72, 0xbb71, 0xe3f9, 0xe3fe, 0xe3fc, 0xbb73, 0xe3fa, 0x003f, - /* 0x8900 .. 0x89ff */ - 0x003f, 0xdbce, 0xbb6f, 0x003f, 0x003f, 0xe7c2, 0xe7c9, 0xbdc6, - 0x003f, 0xe7cd, 0xbdca, 0xe7c5, 0xe7c3, 0x003f, 0xe7cc, 0x003f, - 0xbdc5, 0xe7cb, 0xbdc7, 0xbdc8, 0xe7c4, 0xbdc9, 0xe7ca, 0xe7c6, - 0xe7c7, 0xe7c8, 0xbb75, 0x003f, 0x003f, 0x003f, 0xeb70, 0xeb7c, - 0x003f, 0xbfca, 0xeb77, 0xeb79, 0x003f, 0xbfc8, 0xeb71, 0xeb75, - 0x003f, 0xeb78, 0xbfc6, 0xbfc9, 0xeb7b, 0xeb73, 0xeb74, 0xeb7a, - 0xeb72, 0xeb76, 0xbfc7, 0xee72, 0x003f, 0xee71, 0xc1b7, 0xee77, - 0xc1b9, 0x003f, 0x003f, 0xc1b6, 0xee73, 0xc1ba, 0xee74, 0x003f, - 0x003f, 0xee75, 0xee78, 0x003f, 0xc1b8, 0x003f, 0xf0d6, 0x003f, - 0x003f, 0xf0d9, 0x003f, 0xf0d3, 0xf0d5, 0x003f, 0x003f, 0xf0d4, - 0xf0d7, 0xf0d8, 0xee76, 0xf0d2, 0x003f, 0x003f, 0xc3cd, 0xf2ec, - 0xf2ef, 0xf2f1, 0xf2ea, 0xf2eb, 0xf2ee, 0xf2f0, 0xc3ce, 0xc3cc, - 0xc3cb, 0xf2ed, 0xf2e9, 0xf4ca, 0xc4b0, 0x003f, 0xf4cb, 0x003f, - 0x003f, 0xf649, 0xc4fb, 0xf64b, 0xc4fc, 0xf648, 0xf64a, 0xc5a8, - 0x003f, 0xf752, 0xc5a7, 0xf7fd, 0xf7fc, 0x003f, 0xf7fb, 0x003f, - 0x003f, 0xf948, 0xf949, 0xf94b, 0xf94a, 0x003f, 0xca50, 0xa6e8, - 0x003f, 0xad6e, 0xd7c5, 0xb5f7, 0x003f, 0xdffa, 0xc2d0, 0x003f, - 0xf2f2, 0x003f, 0x003f, 0xa8a3, 0x003f, 0x003f, 0x003f, 0xb357, - 0x003f, 0x003f, 0x003f, 0xb356, 0x003f, 0xdbd0, 0xb5f8, 0xdbd2, - 0xdbd1, 0x003f, 0x003f, 0xdffb, 0xb8d0, 0xe443, 0xe446, 0xe445, - 0x003f, 0xe444, 0xe7ce, 0xe7d0, 0xe7cf, 0x003f, 0xbfcc, 0x003f, - 0x003f, 0x003f, 0xbfcb, 0x003f, 0xc1bb, 0xee79, 0xee7b, 0xee7a, - 0x003f, 0x003f, 0xc2d1, 0x003f, 0x003f, 0x003f, 0xf2f4, 0xf2f3, - 0x003f, 0xf4cc, 0xc4b1, 0x003f, 0x003f, 0xc4fd, 0xf754, 0xf753, - 0xc65b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xa8a4, 0xd0af, 0xad6f, 0xd7c8, 0xd7c6, 0x003f, - 0x003f, 0xd7c7, 0xdbd4, 0xdbd5, 0xe043, 0xdbd3, 0x003f, 0xdffc, - 0xe041, 0xe040, 0xe042, 0xb8d1, 0xdffe, 0xdffd, 0xe044, 0x003f, - 0xe449, 0xe447, 0x003f, 0xe448, 0xe7d3, 0xe7d1, 0x003f, 0x003f, - 0xe7d2, 0xeb7d, 0xee7c, 0xee7d, 0xc2d2, 0x003f, 0xf2f5, 0xf4cd, - 0xc4b2, 0x003f, 0xf64c, 0xf755, 0xc5a9, 0x003f, 0xf7fe, 0xf94c, - /* 0x8a00 .. 0x8aff */ - 0xa8a5, 0x003f, 0xad71, 0xad72, 0xd0b0, 0x003f, 0x003f, 0xd0b1, - 0xad70, 0x003f, 0xb054, 0x003f, 0xb052, 0x003f, 0xb051, 0xb058, - 0xb050, 0xb059, 0xd3dd, 0xb056, 0x003f, 0xb053, 0xb057, 0xb055, - 0xb04f, 0x003f, 0x003f, 0xb35f, 0x003f, 0xb359, 0xd7cc, 0xb35e, - 0x003f, 0x003f, 0xb360, 0xb35a, 0x003f, 0xb35b, 0x003f, 0xd7ca, - 0x003f, 0x003f, 0xb358, 0x003f, 0xd7cb, 0xb35d, 0x003f, 0x003f, - 0xd7c9, 0xb35c, 0x003f, 0x003f, 0xb644, 0x003f, 0xb646, 0x003f, - 0x003f, 0xdbd8, 0xb645, 0xb5f9, 0xb5fd, 0x003f, 0xb8e4, 0xe049, - 0xdbda, 0xb5fe, 0x003f, 0x003f, 0xdbdd, 0xdbde, 0xb643, 0x003f, - 0xdbe0, 0x003f, 0xdbe2, 0x003f, 0xdbe3, 0xdbd7, 0xdbd6, 0xdbe4, - 0xb642, 0xdbe1, 0xdbdf, 0x003f, 0xb640, 0xb5fb, 0xb647, 0xdbdb, - 0xdbdc, 0xdbd9, 0x003f, 0xb641, 0x003f, 0x003f, 0xb5fc, 0x003f, - 0xb5fa, 0xe048, 0xb8df, 0xb8da, 0x003f, 0x003f, 0xb8d5, 0x003f, - 0xb8e5, 0xb8d6, 0x003f, 0xb8d2, 0xb8e1, 0xb8de, 0xb8e0, 0x003f, - 0xb8d7, 0xb8dc, 0xb8d3, 0xb8d4, 0xe050, 0xe04d, 0xe045, 0xe04a, - 0x003f, 0xb8e2, 0xe051, 0xb8e3, 0xb8d9, 0x003f, 0x003f, 0xe047, - 0x003f, 0xe04f, 0xe04b, 0xe04e, 0xe04c, 0xb8dd, 0xe046, 0xb8d8, - 0x003f, 0x003f, 0x003f, 0xe44c, 0xbb78, 0xbb7b, 0x003f, 0xe44e, - 0x003f, 0xbba5, 0xe44d, 0xbb7d, 0x003f, 0xbdcf, 0xe44f, 0x003f, - 0xbba4, 0xe44b, 0xbba6, 0x003f, 0x003f, 0x003f, 0xbb79, 0x003f, - 0xb8db, 0xbb7c, 0x003f, 0xbb7a, 0xbb7e, 0xbba2, 0xbb77, 0xbba7, - 0xbba3, 0x003f, 0xbba1, 0xe44a, 0x003f, 0x003f, 0x003f, 0x003f, - 0xbdd6, 0x003f, 0xbdd2, 0x003f, 0x003f, 0x003f, 0xbdd9, 0x003f, - 0xe7d6, 0xbdda, 0xe7e2, 0xe7db, 0xbdcb, 0xe7e3, 0xe7dd, 0xbdd5, - 0xe7de, 0x003f, 0xbdd4, 0xe7e1, 0xbdce, 0xe7df, 0xe7d5, 0xbdcd, - 0xebaa, 0xbdd3, 0x003f, 0xbdd0, 0x003f, 0xbdd8, 0x003f, 0xe7d4, - 0x003f, 0xe7d8, 0xbdcc, 0xe7d7, 0xe7d9, 0xe7da, 0xbdd7, 0xe7dc, - 0xe7e0, 0xe7e4, 0x003f, 0xbddb, 0xbfd2, 0xeba5, 0xebab, 0xeba8, - 0xeb7e, 0xebac, 0xeba1, 0x003f, 0xeba7, 0x003f, 0xbfcd, 0xbfd3, - 0xebad, 0x003f, 0x003f, 0xbfcf, 0x003f, 0xbfd9, 0xbfd4, 0xebaf, - 0xeba9, 0xbfd0, 0xeba2, 0xbfda, 0xeba3, 0xeba4, 0xbfdb, 0xbfd8, - 0xbdd1, 0x003f, 0xbfce, 0xebb0, 0xbfdc, 0x003f, 0xbfd5, 0xebae, - /* 0x8b00 .. 0x8bff */ - 0xbfd1, 0xbfd6, 0xbfd7, 0x003f, 0xc1c3, 0xeea4, 0xeead, 0xeeaa, - 0xeeac, 0x003f, 0xc1c0, 0xeea5, 0x003f, 0xeeab, 0xc1bc, 0xeea7, - 0xc1c4, 0xeea3, 0xeea8, 0xeeaf, 0xeba6, 0xeea9, 0xeea2, 0xc1bd, - 0xeea1, 0xc1be, 0xeeb0, 0xc1bf, 0xeeae, 0xc1c2, 0xee7e, 0x003f, - 0xc1c1, 0x003f, 0xeea6, 0xf0dc, 0xf0ea, 0xf0e5, 0xf0e7, 0xf0db, - 0xc2d3, 0x003f, 0xf0da, 0xc2d6, 0xc2d5, 0x003f, 0xf0e9, 0xf0e1, - 0xf0de, 0xf0e4, 0x003f, 0xf0dd, 0x003f, 0xf0df, 0xf0e8, 0xf0e6, - 0x003f, 0xc2d4, 0xf0ed, 0xf0eb, 0xf0e2, 0xf0ec, 0xf0e3, 0x003f, - 0xf2f9, 0xc3cf, 0xf341, 0x003f, 0x003f, 0xf64f, 0xc3d6, 0xf0e0, - 0xf2f7, 0xc3d2, 0xf2f8, 0xf2fd, 0x003f, 0x003f, 0xc3d4, 0xc3d5, - 0xf2f6, 0xf340, 0xf342, 0xf2fa, 0xf2fc, 0xf2fe, 0xf2fb, 0xf343, - 0xc3d1, 0xc3d7, 0xc3d3, 0x003f, 0xc3d0, 0xf4d0, 0x003f, 0xc4b7, - 0xf4ce, 0x003f, 0x003f, 0xf4d2, 0x003f, 0xf4d3, 0xc4b5, 0xf4d4, - 0xf4d1, 0x003f, 0xf4cf, 0xc4b8, 0xc4b4, 0xf4d5, 0x003f, 0xc4b6, - 0xc4b3, 0x003f, 0x003f, 0x003f, 0xc4fe, 0x003f, 0x003f, 0xc540, - 0xf64e, 0xf64d, 0xf650, 0xf651, 0x003f, 0xc541, 0xf756, 0xf75b, - 0xc5aa, 0x003f, 0xf758, 0x003f, 0xf757, 0xf75a, 0xf759, 0x003f, - 0xf843, 0x003f, 0xc5dc, 0xf842, 0xf840, 0x003f, 0xf841, 0x003f, - 0x003f, 0x003f, 0xc5fe, 0xc5fd, 0xf8c1, 0xf8c2, 0xc640, 0x003f, - 0xf94d, 0xf94e, 0xc667, 0x003f, 0xc66d, 0x003f, 0xf9a9, 0xf9c8, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x8c00 .. 0x8cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8a6, - 0x003f, 0xd7cd, 0x003f, 0xd7ce, 0xe052, 0xe450, 0xe7e5, 0xc1c6, - 0x003f, 0xc1c5, 0xf0ee, 0xf344, 0x003f, 0xf844, 0xa8a7, 0xd3de, - 0xb05a, 0xb361, 0xe054, 0xe053, 0xbddc, 0xe7e6, 0xbddd, 0xeeb1, - 0xc2d7, 0x003f, 0x003f, 0x003f, 0xc676, 0xa8a8, 0xcdcb, 0xd3df, - 0x003f, 0x003f, 0xb362, 0x003f, 0xd7cf, 0xd7d0, 0x003f, 0xdbe5, - 0x003f, 0xb648, 0xb8e6, 0x003f, 0xe056, 0xe055, 0xe057, 0x003f, - 0xe451, 0xe452, 0xbba8, 0xbfdd, 0xbdde, 0xbfde, 0x003f, 0xeeb5, - 0xeeb2, 0xeeb4, 0xeeb3, 0xc1c7, 0x003f, 0xf0ef, 0xf346, 0xf345, - 0xcba4, 0xb05c, 0xb05b, 0xd3e0, 0x003f, 0xd7d1, 0x003f, 0x003f, - 0xdbe7, 0xdbe6, 0xb649, 0x003f, 0xe059, 0xe05a, 0xe058, 0x003f, - 0x003f, 0xb8e8, 0xb8e7, 0x003f, 0xbbaa, 0xbba9, 0x003f, 0xe7e7, - 0xebb3, 0xebb1, 0xebb2, 0xbfdf, 0xeeb7, 0xeeb6, 0x003f, 0xf0f2, - 0xf0f1, 0xf0f0, 0xf347, 0x003f, 0xf9aa, 0xa8a9, 0xad73, 0x003f, - 0xad74, 0xb05d, 0xb05e, 0xd3e2, 0xd3e1, 0xd7d2, 0x003f, 0xb368, - 0xb366, 0xb363, 0xb367, 0xb365, 0xb364, 0x003f, 0x003f, 0xb64a, - 0xdbea, 0x003f, 0xb8ed, 0xb64c, 0xb651, 0xdbec, 0xb653, 0xb652, - 0xb655, 0xdbeb, 0xdbe8, 0xb64f, 0xb64b, 0xb64d, 0xdbe9, 0xb654, - 0xb650, 0xb64e, 0xb8ef, 0xb8ee, 0xb8ec, 0xb8f0, 0x003f, 0xb8ea, - 0xb8eb, 0x003f, 0xb8e9, 0x003f, 0xe05b, 0x003f, 0x003f, 0xe454, - 0x003f, 0xbbac, 0xbbad, 0xbbab, 0x003f, 0xe453, 0x003f, 0xe455, - 0x003f, 0xe7ea, 0xe7ec, 0x003f, 0xbde7, 0xe7ed, 0xbde0, 0xe7e9, - 0xbddf, 0xbde9, 0xbde5, 0xbde6, 0xbde2, 0xe7e8, 0xbde1, 0xe7ee, - 0xe7eb, 0x003f, 0xbde8, 0x003f, 0xbde3, 0xbde4, 0xebb5, 0x003f, - 0xebb7, 0xebb6, 0x003f, 0xebb8, 0xbfe0, 0xebb4, 0x003f, 0x003f, - 0xc1cb, 0xeeb8, 0xc1c8, 0xc1cc, 0xc1ca, 0xc1c9, 0xf0f3, 0x003f, - /* 0x8d00 .. 0x8dff */ - 0xf0f6, 0x003f, 0xf0f5, 0x003f, 0xf0f4, 0xc2d8, 0xf348, 0xf349, - 0xc3d8, 0xf34a, 0xc3d9, 0x003f, 0x003f, 0xc4ba, 0x003f, 0xc4b9, - 0xf652, 0x003f, 0x003f, 0xc542, 0xf653, 0xf75c, 0xc5ab, 0xc5ac, - 0x003f, 0xf845, 0x003f, 0xc642, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa8aa, 0x003f, 0xb36a, 0xb369, - 0xe05c, 0xe05d, 0x003f, 0xbbae, 0xebb9, 0xbdea, 0xebba, 0xeeb9, - 0xa8ab, 0x003f, 0xd0b2, 0xad76, 0xad75, 0x003f, 0xd3e3, 0xb05f, - 0xd3e4, 0xd7d5, 0x003f, 0xd7d4, 0x003f, 0xd7d3, 0x003f, 0x003f, - 0xdbee, 0xb658, 0x003f, 0x003f, 0xdbed, 0xb657, 0x003f, 0x003f, - 0x003f, 0xdbef, 0xb656, 0x003f, 0xe05f, 0xe062, 0xe060, 0xe061, - 0xe065, 0xe05e, 0xe066, 0xe063, 0xe064, 0xbbb0, 0xe456, 0x003f, - 0x003f, 0xbbaf, 0x003f, 0xe7f2, 0xe7f0, 0x003f, 0x003f, 0xbdeb, - 0xe7ef, 0xe7f1, 0x003f, 0xbdec, 0x003f, 0xebbb, 0x003f, 0xebbc, - 0xc1cd, 0x003f, 0xf34c, 0xf34e, 0xf34b, 0xf34d, 0xf4d6, 0xf654, - 0x003f, 0x003f, 0xf96f, 0xa8ac, 0xad77, 0xd3e5, 0xd3e7, 0xd3e6, - 0x003f, 0xd7d8, 0xb36c, 0x003f, 0xd7d6, 0x003f, 0xb36b, 0xd7d9, - 0x003f, 0xd7da, 0xd7d7, 0x003f, 0x003f, 0xdbfb, 0xb660, 0xdbf3, - 0xdbf9, 0x003f, 0x003f, 0xb65b, 0xb65e, 0xdbf2, 0xb659, 0xdbf6, - 0xe06c, 0xb65d, 0x003f, 0xdbf1, 0x003f, 0xdbf7, 0xdbf4, 0xdbfa, - 0xdbf0, 0xdbf8, 0xb65c, 0xb65f, 0xdbf5, 0xb65a, 0x003f, 0xb8f2, - 0xe068, 0xb8f1, 0xe06f, 0xe06e, 0xb8f8, 0x003f, 0xb8f9, 0xe070, - 0xb8f3, 0xe06d, 0xb8f7, 0xe072, 0xe069, 0x003f, 0xe06b, 0xb8f4, - 0xe067, 0xe06a, 0xe071, 0xb8f5, 0xe073, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb8f6, 0x003f, 0xbbb1, 0xe45b, 0xe461, 0xe459, - /* 0x8e00 .. 0x8eff */ - 0xe462, 0x003f, 0xe458, 0xe45d, 0xe463, 0xe460, 0xe45f, 0xe45e, - 0x003f, 0xe457, 0xe45c, 0x003f, 0x003f, 0xe45a, 0x003f, 0xbdf1, - 0xbdee, 0xe7fb, 0xe841, 0xe843, 0xe840, 0xe7f8, 0xe7fa, 0xe845, - 0xe842, 0xe7fc, 0xe846, 0xe7f9, 0xe844, 0xbdef, 0xbdf5, 0xbdf3, - 0xe7f3, 0xbdf4, 0xbdf0, 0xe7f4, 0xe7f6, 0xe7f5, 0xe7fd, 0xe7fe, - 0x003f, 0xbdf2, 0x003f, 0xbded, 0x003f, 0x003f, 0xe7f7, 0x003f, - 0xebc6, 0xbfe2, 0x003f, 0xebbd, 0xbfe3, 0xbfe6, 0xebc2, 0x003f, - 0xebbf, 0xbfe5, 0x003f, 0x003f, 0xebc3, 0xebc4, 0xebbe, 0xebc7, - 0xebc0, 0xebc5, 0xbfe4, 0x003f, 0xbfe1, 0xebc1, 0x003f, 0xeebf, - 0xc1d0, 0xc1ce, 0xc1d1, 0xc1cf, 0xeebe, 0xeebb, 0xeeba, 0x003f, - 0xeebd, 0x003f, 0x003f, 0xeebc, 0xf145, 0xc2de, 0xf0fb, 0xf0fa, - 0x003f, 0xc2d9, 0xf141, 0xf140, 0xf0f7, 0xf143, 0xf0fc, 0xc2dd, - 0xf0f9, 0xf142, 0xf0f8, 0xc2da, 0xc2dc, 0xf0fd, 0xc2db, 0xf0fe, - 0x003f, 0xf144, 0xf352, 0x003f, 0xc3de, 0xf34f, 0x003f, 0xf353, - 0x003f, 0x003f, 0xc3db, 0xf351, 0xc3e0, 0x003f, 0xc3dd, 0x003f, - 0xf350, 0x003f, 0xc3df, 0xf354, 0xc3da, 0x003f, 0x003f, 0x003f, - 0x003f, 0xc4bc, 0xc4be, 0x003f, 0xf4d9, 0xc4bd, 0xf4d7, 0xc3dc, - 0xf4d8, 0xc4bb, 0xc543, 0xc545, 0xf656, 0xc544, 0xf655, 0x003f, - 0xf761, 0xc5ad, 0xf760, 0xc5ae, 0xf75e, 0xf75d, 0xf762, 0xf763, - 0xf846, 0x003f, 0xf75f, 0x003f, 0x003f, 0xf8c6, 0xf8c3, 0xf8c4, - 0xf8c5, 0xc65c, 0x003f, 0xf951, 0xf950, 0xf94f, 0xf970, 0x003f, - 0xf9be, 0xf9ab, 0xc66e, 0xa8ad, 0xb060, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb8fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbdf6, 0x003f, 0x003f, 0xebc8, 0x003f, 0x003f, - 0xc2df, 0x003f, 0xf355, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xf9ac, 0xa8ae, 0xaaee, 0xad79, 0xad78, 0x003f, 0xb063, - 0x003f, 0xd3e8, 0xb061, 0xd3e9, 0xb062, 0x003f, 0x003f, 0xd7df, - 0xd7db, 0x003f, 0x003f, 0xb36d, 0xd7de, 0xd7dd, 0xd7dc, 0xb36e, - 0xd7e0, 0xd7e1, 0x003f, 0x003f, 0x003f, 0xdc43, 0xdc41, 0xdc45, - 0xdc46, 0xdc4c, 0x003f, 0xdc48, 0xdc4a, 0x003f, 0xdc42, 0xdbfc, - 0x003f, 0xdc49, 0x003f, 0x003f, 0xdc4b, 0xdc44, 0xdc47, 0xdbfd, - 0xb662, 0xdc40, 0xdbfe, 0xb661, 0xb663, 0x003f, 0xb8fd, 0xe075, - /* 0x8f00 .. 0x8fff */ - 0xe077, 0xe076, 0xe07b, 0xb8fb, 0x003f, 0xe078, 0xe074, 0xe079, - 0xe07a, 0xb8fc, 0xb8fe, 0xe07c, 0x003f, 0xe467, 0xe466, 0x003f, - 0xe464, 0xe465, 0xbbb3, 0xbbb5, 0xbbb2, 0xbbb4, 0xe84d, 0xe84e, - 0xe849, 0x003f, 0xe84a, 0xbdf8, 0xbdfd, 0xbdf7, 0xbdfe, 0xbdf9, - 0xe84b, 0x003f, 0x003f, 0xe84c, 0xe848, 0xbe40, 0xbdfb, 0x003f, - 0x003f, 0xbdfa, 0xbdfc, 0x003f, 0xe847, 0x003f, 0xebca, 0xbfe8, - 0x003f, 0x003f, 0xebcc, 0xbfea, 0xebcf, 0xebcb, 0xebc9, 0xebce, - 0xbfe9, 0xebcd, 0x003f, 0xbfe7, 0x003f, 0x003f, 0xc1d3, 0xc1d6, - 0xeec1, 0x003f, 0xc1d4, 0xeec0, 0xc1d2, 0xc1d5, 0xf146, 0xf147, - 0xf148, 0xc2e0, 0x003f, 0xf149, 0x003f, 0xc2e1, 0xc3e2, 0xf358, - 0xf359, 0xf357, 0xf356, 0xf35a, 0xc3e1, 0xf4dd, 0xf4db, 0xf4dc, - 0xf4de, 0xf4da, 0xf4df, 0xf658, 0x003f, 0xf659, 0xf657, 0xc546, - 0xf764, 0xc5af, 0xf765, 0xf848, 0xf847, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xa8af, 0xb664, 0x003f, 0x003f, 0xb940, - 0x003f, 0x003f, 0x003f, 0xbbb6, 0x003f, 0x003f, 0xbfec, 0x003f, - 0xbfeb, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3e3, 0xc47c, 0xc547, - 0xa8b0, 0xb064, 0xb941, 0x003f, 0xf35b, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcba6, - 0x003f, 0x003f, 0xa8b1, 0x003f, 0xa8b4, 0xa8b3, 0xa8b2, 0x003f, - 0x003f, 0xcba5, 0x003f, 0xcdcd, 0x003f, 0xcdcf, 0xaaef, 0x003f, - 0x003f, 0xaaf1, 0xcdcc, 0xcdce, 0xaaf0, 0xcdd1, 0xcdd0, 0xcdd2, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xd0b6, 0xd0b4, 0xad7c, 0xd0b3, 0xada3, 0xad7e, 0xad7b, 0x003f, - 0xada4, 0x003f, 0xad7d, 0xada2, 0x003f, 0xada1, 0xd0b5, 0x003f, - 0xad7a, 0x003f, 0x003f, 0x003f, 0xb06a, 0xd3eb, 0xd3f1, 0xb067, - 0xb06e, 0x003f, 0xb069, 0xd3ee, 0xd3f0, 0xb06c, 0xd3ea, 0xd3ed, - /* 0x9000 .. 0x90ff */ - 0xb068, 0xb065, 0xd3ec, 0xb06b, 0xd3ef, 0xb06d, 0xb066, 0x003f, - 0x003f, 0x003f, 0x003f, 0xd7e3, 0xd7e6, 0xb370, 0x003f, 0xb37a, - 0xb376, 0xd7e4, 0x003f, 0x003f, 0xb37e, 0xb377, 0xb37c, 0xb372, - 0x003f, 0xb36f, 0xb371, 0xb37d, 0xd7e5, 0xb375, 0xb378, 0xb374, - 0xb379, 0xd7e7, 0xb37b, 0xb373, 0xd7e2, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdc4d, 0xb665, 0xdc4f, - 0x003f, 0xb667, 0xb669, 0x003f, 0xdc4e, 0xb666, 0xb66a, 0x003f, - 0xb668, 0x003f, 0x003f, 0x003f, 0xb947, 0xe0a3, 0xb94f, 0xe07e, - 0x003f, 0xb950, 0xb945, 0x003f, 0xe0a1, 0x003f, 0x003f, 0xb94a, - 0x003f, 0xe0a2, 0xb943, 0xb942, 0x003f, 0xb94d, 0xb94c, 0xb94b, - 0xb949, 0xb94e, 0xe07d, 0xb944, 0xb946, 0xb948, 0x003f, 0x003f, - 0xbbb8, 0xbbbb, 0x003f, 0xbbbf, 0xbbb9, 0xbbbe, 0xbbbc, 0x003f, - 0xbbb7, 0x003f, 0xbbbd, 0xbbba, 0x003f, 0x003f, 0x003f, 0xe852, - 0xbe43, 0xbe41, 0x003f, 0xe853, 0x003f, 0xbe44, 0xbe42, 0xe851, - 0xe850, 0x003f, 0xbff0, 0xe84f, 0xbfee, 0xbfed, 0xebd0, 0xbe45, - 0xbfef, 0xebd1, 0xbff2, 0xebd2, 0xbff1, 0xc1d8, 0xeec3, 0xc1d7, - 0xc1dc, 0xc1da, 0xc1db, 0xc2e3, 0xc1d9, 0xeec2, 0xebd3, 0xc2e2, - 0xc2e4, 0x003f, 0xc3e4, 0xc3e5, 0x003f, 0xf4e0, 0x003f, 0xc5de, - 0xc5dd, 0xa8b6, 0x003f, 0x003f, 0xca55, 0xb06f, 0x003f, 0xca52, - 0xca53, 0xca51, 0x003f, 0xca54, 0x003f, 0x003f, 0xcbaa, 0xcba7, - 0xcbac, 0xcba8, 0xa8b7, 0xa8ba, 0x003f, 0xcba9, 0xa8b9, 0xcbab, - 0x003f, 0x003f, 0xa8b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdd5, - 0xcdd7, 0xaaf4, 0xcdd3, 0xcdd6, 0xcdd4, 0xaaf2, 0xaaf5, 0x003f, - 0xaaf3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b8, 0xd0bc, 0xd0b9, - 0x003f, 0xada7, 0x003f, 0xada8, 0x003f, 0xd0bb, 0x003f, 0xd0bd, - 0xd0bf, 0x003f, 0xada5, 0xd0be, 0x003f, 0x003f, 0xada6, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ee, 0xd0ba, 0xd3f2, 0xd3fb, - 0xd3f9, 0xd3f4, 0xd3f5, 0xd3fa, 0xd3fc, 0xb071, 0x003f, 0xd3f7, - 0xd3f3, 0xb070, 0xb072, 0xd3f6, 0xd3fd, 0xd3f8, 0x003f, 0x003f, - 0xb3a1, 0xd7f1, 0xd7e9, 0xd7ef, 0xd7f0, 0xb3a2, 0x003f, 0xd7e8, - 0xd7ea, 0xd0b7, 0xd7ec, 0xd7ed, 0xd7eb, 0xb66c, 0x003f, 0x003f, - 0x003f, 0xdc56, 0xebd4, 0xdc57, 0xdc54, 0xb3a3, 0xb66e, 0xdc53, - /* 0x9100 .. 0x91ff */ - 0xdc59, 0xdc58, 0xb66b, 0xdc5c, 0xdc52, 0xdc5b, 0xdc50, 0xdc5a, - 0xdc55, 0xb66d, 0x003f, 0xe0aa, 0x003f, 0xe0a5, 0xe0ab, 0xe0a6, - 0xe0a4, 0xe0a7, 0xb951, 0x003f, 0xe0a9, 0x003f, 0xe0a8, 0xb952, - 0xbbc1, 0xbbc0, 0xe46e, 0xe471, 0xe469, 0xe46d, 0xbbc2, 0xe46c, - 0xe46a, 0xe470, 0xe46b, 0xe468, 0xe46f, 0x003f, 0xe859, 0xbe48, - 0xf14a, 0xe856, 0xe857, 0xe855, 0xdc51, 0xbe47, 0xe85a, 0xe854, - 0xbe46, 0xbe49, 0xe858, 0xebd5, 0xbff3, 0xebd6, 0xebd7, 0x003f, - 0xeec4, 0xc1dd, 0xf14b, 0xf14c, 0x003f, 0x003f, 0xf14d, 0xf35d, - 0xf35c, 0xf4e2, 0x003f, 0xf4e1, 0xf65b, 0xf65c, 0xf65a, 0xf766, - 0xc5b0, 0xa8bb, 0xadaa, 0xada9, 0xb075, 0xb074, 0xd440, 0xd441, - 0xd3fe, 0x003f, 0xb073, 0xd7f5, 0x003f, 0xd7f6, 0xd7f2, 0xb3a4, - 0xd7f3, 0x003f, 0xd7f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xdc5f, - 0xdc61, 0xdc5d, 0xdc60, 0xb66f, 0xdc5e, 0xb670, 0x003f, 0x003f, - 0xdd73, 0xb955, 0xb954, 0x003f, 0xb953, 0x003f, 0xe0ac, 0xe0ad, - 0x003f, 0x003f, 0xe473, 0xe475, 0xbbc6, 0xbbc3, 0x003f, 0xbbc5, - 0xbbc4, 0xe474, 0xe472, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xe861, 0xe85e, 0xe85f, 0xbe4d, 0xe860, 0xe85b, 0xe85c, 0xbe4a, - 0x003f, 0xbe4b, 0xe85d, 0xbe4c, 0x003f, 0xebdb, 0x003f, 0xebdc, - 0xebd9, 0xebda, 0xbff4, 0xebd8, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xeec8, 0xeec5, 0xeec7, 0xc1e0, 0xeecb, 0xc1df, 0xeec9, - 0xeecc, 0xeeca, 0xeec6, 0xc1de, 0x003f, 0xf14f, 0x003f, 0xf150, - 0xf14e, 0x003f, 0xf152, 0xc2e5, 0xc2e6, 0xf35f, 0xc3e7, 0xf151, - 0xf35e, 0xc3e6, 0xf4e5, 0xf4e6, 0xc4bf, 0xf4e4, 0x003f, 0xf4e3, - 0x003f, 0xf65d, 0xc548, 0x003f, 0xf849, 0xf8c8, 0xf8c7, 0x003f, - 0xc643, 0xc65d, 0xf8c9, 0xf971, 0x003f, 0xc66f, 0xa8bc, 0xaaf6, - 0x003f, 0xb956, 0x003f, 0xc4c0, 0xa8bd, 0xadab, 0xb3a5, 0xb671, - 0xc2e7, 0xaaf7, 0x003f, 0xd0c1, 0xd0c0, 0xd442, 0x003f, 0xb078, - 0xb076, 0xb07a, 0xd444, 0x003f, 0xb079, 0xb077, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd443, 0xb3a8, 0xd7fc, 0x003f, 0xb3a7, 0xb3a9, - 0xd842, 0xb3ab, 0xd7fe, 0xd840, 0xd7f7, 0xb3aa, 0xd843, 0x003f, - 0x003f, 0xd7f9, 0x003f, 0xd7fa, 0xd7f8, 0xb3a6, 0x003f, 0xd841, - 0xd7fb, 0xd7fd, 0x003f, 0x003f, 0x003f, 0xdc6d, 0x003f, 0xdc6c, - /* 0x9200 .. 0x92ff */ - 0xdc6a, 0xdc62, 0xdc71, 0xdc65, 0xdc6f, 0xdc76, 0xdc6e, 0xb679, - 0x003f, 0xb675, 0xdc63, 0x003f, 0xdc69, 0xb677, 0x003f, 0xdc68, - 0xb678, 0xb67a, 0xdc6b, 0x003f, 0xb672, 0xb673, 0xdc77, 0xdc75, - 0x003f, 0xdc74, 0xdc66, 0x003f, 0xdc72, 0x003f, 0xb676, 0x003f, - 0x003f, 0x003f, 0x003f, 0xb674, 0xdc73, 0xdc64, 0xdc67, 0xdc70, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ba, 0xe0b7, 0x003f, - 0xe0b0, 0xe0c3, 0xe0cc, 0xe0b3, 0xb961, 0x003f, 0xe0c0, 0xb957, - 0xb959, 0xb965, 0xe0b1, 0x003f, 0x003f, 0xb95a, 0xb95c, 0xb966, - 0xb95b, 0x003f, 0x003f, 0x003f, 0x003f, 0xb964, 0xe0b9, 0x003f, - 0xe0ae, 0xb962, 0xe0b8, 0xb95e, 0xe0ca, 0xb963, 0xe0c8, 0xe0bc, - 0xe0c6, 0xb960, 0xe0af, 0xe0c9, 0xe0c4, 0x003f, 0xe0cb, 0xb958, - 0x003f, 0x003f, 0xb967, 0xb95d, 0x003f, 0x003f, 0xe0b5, 0x003f, - 0xe0bd, 0xe0c1, 0x003f, 0xe0c5, 0xb95f, 0xe0b4, 0xe0b2, 0xe0be, - 0x003f, 0x003f, 0x003f, 0x003f, 0xe0bb, 0xe0ba, 0x003f, 0xe0bf, - 0xe0c2, 0x003f, 0xe0c7, 0x003f, 0x003f, 0x003f, 0xe478, 0x003f, - 0xbbc7, 0xe4a4, 0xe47a, 0xbbcc, 0xbbd0, 0xe4ad, 0xe4b5, 0xe4a6, - 0xbbc8, 0x003f, 0xe4aa, 0xe0b6, 0x003f, 0xbbc9, 0xe4b1, 0xe4b6, - 0xe4ae, 0x003f, 0xe4b0, 0xe4b9, 0xe4b2, 0xe47e, 0xe4a9, 0x003f, - 0x003f, 0xbbd1, 0x003f, 0xbbcd, 0xe47c, 0xe4ab, 0xbbcb, 0xe4a5, - 0xbbca, 0xe4b3, 0xe4a2, 0xe479, 0xbbce, 0xe4b8, 0x003f, 0x003f, - 0xe47b, 0xe4af, 0xe4ac, 0xe4a7, 0xe477, 0xe476, 0xe4a1, 0xe4b4, - 0xbbcf, 0xe4b7, 0xe47d, 0xe4a3, 0xbe52, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xbe5a, 0xbe55, 0xe8a4, 0xe8a1, 0xe867, 0xbe50, - 0x003f, 0xf9d7, 0x003f, 0xbe4f, 0xbe56, 0x003f, 0x003f, 0x003f, - 0xe865, 0xbe54, 0xe871, 0xe863, 0xe864, 0xbe4e, 0xe8a3, 0xbe58, - 0xe874, 0xe879, 0xe873, 0xebee, 0xe86f, 0xe877, 0xe875, 0xe868, - 0xe862, 0xe87d, 0xbe57, 0xe87e, 0x003f, 0xe878, 0x003f, 0xe86d, - 0xe86b, 0xe866, 0x003f, 0x003f, 0x003f, 0xe86e, 0xe87b, 0xe86a, - 0xe87a, 0xe8a2, 0x003f, 0x003f, 0xbe53, 0x003f, 0xe876, 0xe87c, - 0xe872, 0xe86c, 0xbe51, 0x003f, 0x003f, 0x003f, 0xe4a8, 0xe870, - 0xbe59, 0xe869, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf4, - 0xbff7, 0xebf3, 0xebf0, 0xec44, 0xbffb, 0x003f, 0xec41, 0xebf8, - /* 0x9300 .. 0x93ff */ - 0xec43, 0xebe9, 0xebf6, 0x003f, 0xbffd, 0x003f, 0xebe1, 0x003f, - 0xebdf, 0xec42, 0x003f, 0xec40, 0xebfe, 0xebed, 0xebec, 0xebe2, - 0xc040, 0x003f, 0xebe8, 0xebf2, 0xebfd, 0xc043, 0xec45, 0x003f, - 0xc1e8, 0xc045, 0xbffe, 0xebe6, 0x003f, 0xebef, 0xebde, 0xebe0, - 0xbff5, 0xc042, 0xbffa, 0xebe7, 0xebf7, 0xebf1, 0xc041, 0xebdd, - 0xc1e3, 0xebf9, 0xebfc, 0xbffc, 0x003f, 0xebeb, 0xc044, 0xbff9, - 0x003f, 0x003f, 0x003f, 0xbff8, 0xebf5, 0xebfb, 0xbff6, 0x003f, - 0xebe4, 0xebfa, 0x003f, 0x003f, 0xebe5, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebea, 0xeed2, - 0x003f, 0xeed7, 0xc1e5, 0xc1e7, 0xeedd, 0xc1e1, 0xeeec, 0xeee3, - 0xeed8, 0xeed9, 0xeee2, 0x003f, 0xc1ee, 0xeee1, 0xeed1, 0xeee0, - 0xeed4, 0xeeed, 0xc1ed, 0xc1eb, 0xeed5, 0x003f, 0xeee8, 0x003f, - 0xeeda, 0xeee7, 0x003f, 0xeee9, 0xeed0, 0xc1e6, 0x003f, 0xeeea, - 0x003f, 0x003f, 0xeede, 0x003f, 0xc1ea, 0xeedb, 0x003f, 0x003f, - 0xc1ec, 0xeee4, 0x003f, 0x003f, 0x003f, 0xc1e4, 0xeed6, 0xeee5, - 0x003f, 0xeedf, 0xebe3, 0xeee6, 0xeed3, 0x003f, 0xc1e9, 0x003f, - 0xeeeb, 0x003f, 0xc1e2, 0xeece, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf160, 0xf159, 0xc2e9, 0x003f, 0xf154, 0xf163, 0xf15b, 0xeedc, - 0x003f, 0xf165, 0xf155, 0x003f, 0xc2e8, 0xf15f, 0xc2ea, 0xc2f2, - 0xc2f0, 0xf161, 0xc2f1, 0xf157, 0x003f, 0xf158, 0xf15d, 0xf162, - 0x003f, 0xeecd, 0xc2eb, 0xf16a, 0xf167, 0xf16b, 0xf15e, 0xf15a, - 0xf168, 0xf36a, 0xf15c, 0x003f, 0xc2ee, 0x003f, 0xc2ed, 0xeecf, - 0xc2ef, 0xf164, 0xf166, 0xc2ec, 0xf169, 0xf153, 0x003f, 0xf156, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf373, 0x003f, 0xf363, 0xc3eb, 0xf371, 0x003f, 0x003f, 0xf361, - 0xc3ec, 0x003f, 0xf36c, 0x003f, 0xf368, 0xc3f1, 0xf372, 0xf362, - 0xf365, 0xc3e9, 0xf374, 0x003f, 0xf36d, 0xf370, 0xc3ef, 0xc3f4, - 0xc3f2, 0xf369, 0xf364, 0x003f, 0xc3ed, 0xc3ee, 0xf360, 0xc3ea, - 0x003f, 0xc3e8, 0xc3f0, 0xf36f, 0xc3f3, 0x003f, 0xf36b, 0xf375, - 0xc3f5, 0x003f, 0x003f, 0x003f, 0xf367, 0x003f, 0xf36e, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f3, 0xf542, 0xf4f5, - 0xf4fc, 0xf366, 0xf4fa, 0xf4e9, 0xf540, 0xc4c3, 0xf4ed, 0xf4fe, - /* 0x9400 .. 0x94ff */ - 0xf4f4, 0x003f, 0x003f, 0xc4c2, 0x003f, 0x003f, 0xf544, 0xf4f6, - 0x003f, 0xf4fb, 0xf4fd, 0xf4e7, 0xf541, 0xf4f2, 0xf4f7, 0xf4eb, - 0xf4ef, 0xf543, 0xf4f9, 0xf4e8, 0xf4ec, 0xf4ee, 0xf4f8, 0x003f, - 0xc4c1, 0xf4f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf4ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xf4f0, 0xf661, 0xf666, 0xc54f, 0xf668, 0x003f, 0xc549, 0x003f, - 0xf664, 0xf66a, 0xc54e, 0xc54a, 0x003f, 0xc54b, 0xf660, 0xf667, - 0xc54d, 0xf665, 0xc54c, 0xf65f, 0xf663, 0xf662, 0x003f, 0xf65e, - 0xf669, 0x003f, 0x003f, 0x003f, 0xc5b1, 0xf76d, 0xf770, 0xf76c, - 0xf76e, 0xf76f, 0xf769, 0xf76a, 0xf767, 0x003f, 0x003f, 0xf76b, - 0xf768, 0xc5b2, 0xc5b3, 0x003f, 0x003f, 0xf84b, 0x003f, 0xf84d, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf84c, 0xf84e, 0x003f, - 0xc5e0, 0x003f, 0xf84a, 0xc5df, 0xc5e1, 0x003f, 0x003f, 0x003f, - 0xf8cb, 0xf8cc, 0xc644, 0xf8ca, 0x003f, 0xf953, 0xf952, 0xf954, - 0xc65f, 0xf955, 0xc65e, 0xf956, 0xf972, 0xf975, 0xf974, 0xc668, - 0xf973, 0x003f, 0x003f, 0x003f, 0xc672, 0xc670, 0xc671, 0xc677, - 0xf9c0, 0xf9c1, 0xf9bf, 0xf9c9, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9500 .. 0x95ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaaf8, - 0x003f, 0x003f, 0xd844, 0xdc78, 0xe8a5, 0xf376, 0x003f, 0x003f, - 0xaaf9, 0x003f, 0xadac, 0xb07b, 0x003f, 0x003f, 0xd845, 0x003f, - 0xd846, 0xb3ac, 0x003f, 0xb67d, 0xdc7a, 0xdc79, 0xb6a3, 0xb67c, - 0xdc7b, 0xb67e, 0xb6a2, 0xb6a1, 0xb67b, 0x003f, 0x003f, 0x003f, - 0xb968, 0x003f, 0x003f, 0xe0d0, 0xe0ce, 0x003f, 0xe0cf, 0xe0cd, - 0x003f, 0xbbd2, 0x003f, 0xbbd5, 0xbbd7, 0xbbd6, 0x003f, 0x003f, - 0xbbd3, 0xbbd4, 0x003f, 0xe8a7, 0xe8a6, 0xbe5b, 0xe8a8, 0x003f, - 0xe8a9, 0xbe5c, 0x003f, 0x003f, 0x003f, 0xec4d, 0xec4b, 0xeef3, - 0x003f, 0xec49, 0xec4a, 0xc046, 0xec46, 0xec4e, 0xec48, 0xec4c, - 0xeeef, 0x003f, 0x003f, 0xeef1, 0x003f, 0xeef2, 0xc1f3, 0xeeee, - 0xc1f2, 0xeef0, 0xc1ef, 0xc1f0, 0xc1f1, 0xec47, 0x003f, 0x003f, - 0xc2f5, 0xf16e, 0xf16c, 0xf16d, 0xc2f3, 0xc2f6, 0xc2f4, 0x003f, - 0x003f, 0x003f, 0xf377, 0xf378, 0xc3f6, 0x003f, 0xf545, 0xf547, - 0xf546, 0xc4c4, 0xc550, 0xf66d, 0xf66c, 0xf66b, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0x9600 .. 0x96ff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xaafa, 0x003f, 0xc9aa, 0x003f, - 0xca58, 0xa6e9, 0xca56, 0xca59, 0xca57, 0x003f, 0x003f, 0x003f, - 0xcbae, 0x003f, 0xa8c1, 0x003f, 0xa8c2, 0xcbb0, 0xa8bf, 0xcbaf, - 0xcbad, 0xa8c0, 0xa8be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xcdd8, 0xcddb, 0xaafd, 0xcdda, 0xcdd9, 0x003f, 0xaafc, - 0xaafb, 0x003f, 0xab40, 0xcddc, 0xaafe, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xd0c6, 0xadae, 0xadaf, 0xadb0, 0xd0c7, 0xd0c3, - 0xadad, 0xd0c4, 0x003f, 0xd0c5, 0xd0c2, 0x003f, 0x003f, 0x003f, - 0xb0a4, 0x003f, 0x003f, 0xb0a1, 0xd445, 0xb0a2, 0xb0a5, 0xd446, - 0x003f, 0xb07e, 0xb07c, 0xb07d, 0xb0a3, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xb3ad, 0xd849, 0xb3b5, 0xd848, 0x003f, 0xd84b, - 0xb3b1, 0xd84a, 0xb6ab, 0xb3af, 0xb3b2, 0xb3ae, 0xb3b3, 0xb3b4, - 0xb3b0, 0x003f, 0x003f, 0x003f, 0xd847, 0xb6a7, 0xdc7d, 0x003f, - 0xdca3, 0x003f, 0x003f, 0xdca2, 0xb6ac, 0xb6a8, 0xb6a9, 0xdc7c, - 0xdc7e, 0xdca1, 0xb6a4, 0xb6a6, 0x003f, 0xb6aa, 0xb6a5, 0x003f, - 0x003f, 0xe0d3, 0xe0d1, 0xe0d2, 0xb96a, 0xb96b, 0x003f, 0xe0d4, - 0xb969, 0xbbd8, 0x003f, 0xbbda, 0xbbd9, 0x003f, 0xe4bb, 0x003f, - 0x003f, 0xe4bc, 0xe8ab, 0x003f, 0xe8aa, 0x003f, 0x003f, 0xc047, - 0xc048, 0xec4f, 0xc049, 0x003f, 0xeef6, 0x003f, 0xeef4, 0x003f, - 0xeef5, 0xc1f4, 0x003f, 0xf16f, 0xc3f7, 0x003f, 0x003f, 0x003f, - 0xc1f5, 0xab41, 0x003f, 0xb0a6, 0xd447, 0x003f, 0x003f, 0xd84c, - 0xb3b6, 0xb6ad, 0xdca4, 0xdca6, 0xb6af, 0xb6ae, 0xb6b0, 0xb6b1, - 0xdca5, 0xb96e, 0xb96f, 0xb96d, 0xbbdb, 0xb96c, 0xe0d5, 0x003f, - 0x003f, 0x003f, 0xbbdc, 0xe8ac, 0xec50, 0xc04a, 0xc1f6, 0xf170, - 0xf174, 0xc2f9, 0xf171, 0xc2fa, 0xc2f8, 0xf175, 0xc2fb, 0xf173, - 0x003f, 0xf379, 0xc2f7, 0xc3f8, 0x003f, 0xf8cd, 0x003f, 0x003f, - 0xab42, 0xb3b8, 0xb3b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6b2, - 0xdca8, 0xdca7, 0xb6b3, 0x003f, 0x003f, 0xe0d9, 0xb973, 0xb970, - 0xe0d8, 0xb972, 0xe0d6, 0xb971, 0x003f, 0xe0d7, 0x003f, 0xe4bd, - /* 0x9700 .. 0x97ff */ - 0xbbdd, 0x003f, 0xe8af, 0x003f, 0xbe5d, 0xe8ad, 0xbe5e, 0xbe5f, - 0xe8ae, 0xbe60, 0x003f, 0xec51, 0x003f, 0xc04e, 0xc04b, 0xc050, - 0xec53, 0xc04c, 0xec52, 0xc04f, 0x003f, 0x003f, 0xc04d, 0x003f, - 0xeef9, 0xeefb, 0x003f, 0x003f, 0xc1f7, 0xeefa, 0xc1f8, 0xeef8, - 0xeef7, 0x003f, 0xf177, 0xf176, 0xc2fc, 0xf178, 0xf37e, 0xc3fa, - 0xf37d, 0xf37a, 0xc3f9, 0xf37b, 0xf37c, 0x003f, 0xf548, 0xf549, - 0xc4c5, 0x003f, 0xc553, 0x003f, 0x003f, 0xf66e, 0x003f, 0x003f, - 0xc551, 0xc552, 0xf66f, 0x003f, 0x003f, 0xc5b4, 0xc5b5, 0xf771, - 0x003f, 0x003f, 0xc645, 0xf8cf, 0xc647, 0x003f, 0xf8ce, 0xf8d0, - 0xc646, 0xf957, 0x003f, 0xf9ad, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0xab43, 0x003f, 0x003f, 0x003f, 0xb974, 0x003f, - 0xe4be, 0x003f, 0xe8b0, 0xc051, 0xc052, 0x003f, 0xab44, 0x003f, - 0xbe61, 0xc3fb, 0xadb1, 0x003f, 0x003f, 0x003f, 0xc053, 0x003f, - 0xc5e2, 0xadb2, 0xd84d, 0x003f, 0xdca9, 0x003f, 0xdcab, 0x003f, - 0xdcaa, 0x003f, 0xe0dd, 0xe0da, 0xb975, 0x003f, 0xb976, 0xe0db, - 0xe0dc, 0x003f, 0xe4c0, 0xe4c5, 0xbbde, 0xe4bf, 0xe4c1, 0xe4c8, - 0xe4c3, 0xe4c7, 0xe4c4, 0xe4c2, 0xe4c6, 0xbbdf, 0x003f, 0x003f, - 0xe8b3, 0x003f, 0xe8b1, 0xbe63, 0x003f, 0xbe62, 0xe8b2, 0xbe64, - 0x003f, 0x003f, 0x003f, 0x003f, 0xec56, 0x003f, 0x003f, 0xec55, - 0xc054, 0xec54, 0xeefc, 0x003f, 0xeefe, 0xef41, 0xef40, 0x003f, - 0xc1f9, 0xeefd, 0xf1a1, 0xc2fd, 0xf17d, 0xf1a2, 0xc2fe, 0x003f, - 0xf17b, 0x003f, 0xf17e, 0xf17c, 0xf179, 0xc340, 0xf17a, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf3a1, 0x003f, 0x003f, 0xf3a3, 0xf3a2, - 0x003f, 0xf54a, 0x003f, 0xf54b, 0x003f, 0x003f, 0x003f, 0xf670, - 0x003f, 0xc5b7, 0x003f, 0xc5b6, 0xf84f, 0xf850, 0xc648, 0xf8d1, - 0x003f, 0xc669, 0x003f, 0xadb3, 0xb6b4, 0xe4ca, 0xe4c9, 0xe8b5, - 0xe8b4, 0x003f, 0x003f, 0xc1fa, 0xef43, 0xef42, 0xf1a5, 0xf1a3, - 0xf1a6, 0xf1a4, 0x003f, 0x003f, 0xc3fc, 0xf3a4, 0xf3a5, 0xf3a6, - 0x003f, 0xf671, 0x003f, 0xf772, 0x003f, 0xf8d2, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xadb4, 0x003f, 0x003f, - 0xec57, 0xef44, 0x003f, 0xadb5, 0x003f, 0x003f, 0xbbe0, 0x003f, - 0xec58, 0xc341, 0xf1a7, 0xc3fd, 0x003f, 0xf54c, 0xf54d, 0xc554, - /* 0x9800 .. 0x98ff */ - 0xf851, 0xadb6, 0xb3bb, 0xb3bc, 0xd84e, 0xb6b5, 0xb6b6, 0xdcac, - 0xb6b7, 0x003f, 0xb97a, 0x003f, 0xb97c, 0xe0df, 0xe0e0, 0xe0de, - 0xb977, 0xb978, 0xb97b, 0xb979, 0x003f, 0x003f, 0xe4cb, 0xbbe1, - 0xbbe2, 0x003f, 0x003f, 0xe8bc, 0xbe67, 0xe8b7, 0xe8b6, 0x003f, - 0xe8bb, 0xbe65, 0x003f, 0x003f, 0xc05b, 0x003f, 0xe8b8, 0xe8bd, - 0xe8ba, 0xe8b9, 0x003f, 0xbe66, 0x003f, 0xc059, 0x003f, 0xec5a, - 0xc055, 0x003f, 0xec5b, 0x003f, 0x003f, 0xec59, 0x003f, 0xc058, - 0xc056, 0xc05a, 0x003f, 0xc057, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0xef45, 0x003f, 0xef4a, 0xef46, 0xef49, 0xc1fb, 0x003f, - 0xedd4, 0xef48, 0xef47, 0x003f, 0xc344, 0xc342, 0xc345, 0xc343, - 0xf1a8, 0xf1a9, 0xf1aa, 0xc346, 0x003f, 0x003f, 0x003f, 0xf3aa, - 0xc440, 0xf3a8, 0x003f, 0xc441, 0xf3a7, 0xf3a9, 0xc3fe, 0xf551, - 0xf54e, 0x003f, 0xf54f, 0xf550, 0xf672, 0xc556, 0x003f, 0xc555, - 0x003f, 0xf774, 0xf773, 0xc5b8, 0x003f, 0x003f, 0x003f, 0xc5e3, - 0xc649, 0xc660, 0xf958, 0xf9ae, 0xf9af, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xadb7, 0xdcad, 0x003f, 0x003f, 0xe0e1, 0xe4cc, 0xe4cd, 0xbbe3, - 0x003f, 0xbbe4, 0xe8be, 0xbe68, 0x003f, 0x003f, 0xc1fc, 0x003f, - 0xf1ab, 0x003f, 0xc347, 0xf3ad, 0xc442, 0xf3ac, 0xf3ae, 0xf3ab, - 0xf675, 0xf552, 0xf553, 0x003f, 0xc4c6, 0x003f, 0xf674, 0x003f, - 0x003f, 0xf673, 0x003f, 0xf775, 0xf9b0, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xadb8, 0x003f, 0x003f, 0x003f, 0xadb9, - 0x003f, 0x003f, 0xb0a7, 0xd448, 0x003f, 0xd84f, 0x003f, 0xb6b8, - 0x003f, 0xb6bb, 0xb6b9, 0xdcae, 0x003f, 0xb6bd, 0x003f, 0xb6ba, - 0x003f, 0x003f, 0xb6bc, 0x003f, 0xb97e, 0x003f, 0xe0e2, 0x003f, - 0x003f, 0xe0e3, 0xe8c0, 0x003f, 0xb97d, 0xb9a1, 0xb9a2, 0x003f, - /* 0x9900 .. 0x99ff */ - 0xe4cf, 0x003f, 0xe4ce, 0xbbe5, 0x003f, 0xbbe6, 0x003f, 0xe4d0, - 0xe8bf, 0xbbe8, 0xbe69, 0x003f, 0xbbe7, 0x003f, 0x003f, 0x003f, - 0xc05c, 0xe8c1, 0xbe6b, 0xbe6a, 0xe8c2, 0xe8c5, 0xe8c3, 0xe8c4, - 0xbe6c, 0x003f, 0xc061, 0xc05f, 0x003f, 0x003f, 0xc05e, 0xec5d, - 0x003f, 0xc060, 0x003f, 0x003f, 0xec5c, 0xef4b, 0x003f, 0xec5e, - 0xc05d, 0xec5f, 0xef4e, 0xef4c, 0xef4d, 0xef52, 0xc34b, 0xef51, - 0xef54, 0xef53, 0xef50, 0xef4f, 0x003f, 0xc1fd, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1ae, 0x003f, 0xf1ad, 0xc34a, 0xc348, 0xc349, - 0x003f, 0xf1ac, 0x003f, 0xf3b1, 0x003f, 0xc443, 0x003f, 0xf3b0, - 0xf3af, 0xc444, 0x003f, 0xf558, 0xf557, 0x003f, 0xf555, 0x003f, - 0xf554, 0xc4c8, 0xc4c7, 0xf559, 0xf776, 0xc5b9, 0xf677, 0xc557, - 0xf676, 0xf556, 0x003f, 0xf777, 0xc5e4, 0x003f, 0xc661, 0xf959, - 0x003f, 0xf9b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xadba, 0xd850, - 0xef55, 0xadbb, 0x003f, 0x003f, 0xe4d2, 0xe4d1, 0xec60, 0x003f, - 0x003f, 0xef57, 0x003f, 0xef56, 0x003f, 0xc34c, 0xf3b2, 0xf3b3, - 0xc4c9, 0x003f, 0x003f, 0xf9b2, 0xb0a8, 0xb6bf, 0xb6be, 0xe0e4, - 0xe0e6, 0xb9a4, 0xe0e5, 0xb9a3, 0xb9a5, 0xe0e7, 0x003f, 0x003f, - 0x003f, 0xe4d4, 0xe4d6, 0xe4d5, 0x003f, 0xe4d8, 0x003f, 0x003f, - 0x003f, 0xbbe9, 0xe4d7, 0xe4d3, 0x003f, 0x003f, 0x003f, 0xe4d9, - 0x003f, 0xe8cc, 0x003f, 0xe8cf, 0xe8d1, 0xe8c7, 0xe8cb, 0xe8c8, - 0xbe6e, 0xbe71, 0xbe73, 0xe8c9, 0xe8ca, 0xbe72, 0xe8cd, 0xe8d0, - 0xe8ce, 0xbe74, 0x003f, 0xbe70, 0xe8c6, 0xbe6d, 0x003f, 0xbe6f, - 0x003f, 0x003f, 0xc063, 0xec66, 0xec64, 0xec63, 0x003f, 0xec69, - 0x003f, 0xec68, 0xec67, 0x003f, 0xec62, 0xc062, 0xec61, 0x003f, - 0xec65, 0xc064, 0x003f, 0x003f, 0xef5a, 0x003f, 0xef5e, 0xef5b, - 0xef5d, 0xef5c, 0xef59, 0xef5f, 0xef62, 0xef60, 0xef61, 0xc240, - /* 0x9a00 .. 0x9aff */ - 0x003f, 0xc1fe, 0xef58, 0xef63, 0xf1b3, 0xf1b6, 0xf1b8, 0xf1b7, - 0x003f, 0xf1b1, 0xf1b5, 0xf1b0, 0x003f, 0xf1b2, 0xc34d, 0xf1af, - 0x003f, 0xf1b4, 0x003f, 0x003f, 0xf3c0, 0xf3b5, 0xc445, 0x003f, - 0x003f, 0xc446, 0xf3b4, 0xf3b9, 0xf3bf, 0xf3b7, 0xf3be, 0x003f, - 0xf3bb, 0x003f, 0xf3ba, 0xf3bd, 0xf3b8, 0xf3b6, 0x003f, 0xf3bc, - 0x003f, 0xf560, 0xf55e, 0xc4ca, 0xf55d, 0xf563, 0xf561, 0x003f, - 0xc4cb, 0xf55c, 0xf55a, 0x003f, 0xf55b, 0xc4cd, 0xf55f, 0xc4cc, - 0xf562, 0xf678, 0xf67e, 0x003f, 0x003f, 0xf679, 0xc55b, 0xf6a1, - 0xc55a, 0xf67d, 0xf67c, 0xc559, 0xf67b, 0xc558, 0xf67a, 0x003f, - 0xf77d, 0xf7a1, 0xf77e, 0x003f, 0xf77b, 0xc5bb, 0xf778, 0xf77c, - 0xf7a3, 0x003f, 0xf7a2, 0xf779, 0xf77a, 0xc5ba, 0xf852, 0xc5e7, - 0x003f, 0xf853, 0xc5e5, 0xc5e6, 0x003f, 0x003f, 0xf8d3, 0xc64a, - 0xf976, 0x003f, 0xc66a, 0x003f, 0xf9b3, 0xc66b, 0xf9b4, 0xf9b5, - 0xf9c3, 0xf9c2, 0xc67a, 0xf9cd, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xb0a9, 0x003f, 0x003f, 0xe0e9, 0x003f, 0xe0e8, 0x003f, 0xbbea, - 0xbbeb, 0xe4da, 0x003f, 0xe8d2, 0xec6c, 0x003f, 0x003f, 0xbe75, - 0xc065, 0xec6a, 0x003f, 0xec6d, 0xc066, 0x003f, 0xef64, 0xec6b, - 0xf1b9, 0xc34e, 0xf3c1, 0x003f, 0x003f, 0x003f, 0xf566, 0xf564, - 0x003f, 0x003f, 0xf565, 0x003f, 0x003f, 0xf6a2, 0x003f, 0xc55c, - 0xf7a4, 0xc5ea, 0xc5bc, 0xc5e8, 0xc5e9, 0xf8d4, 0xc662, 0x003f, - 0xb0aa, 0x003f, 0x003f, 0x003f, 0xf1ba, 0x003f, 0x003f, 0xd449, - 0x003f, 0xb9a6, 0x003f, 0xe4db, 0x003f, 0x003f, 0xbbec, 0xe4dc, - 0x003f, 0x003f, 0x003f, 0xe8d4, 0xe8d3, 0xc068, 0xbe76, 0xbe77, - 0x003f, 0xe8d7, 0xe8d6, 0xe8d5, 0x003f, 0x003f, 0xec6e, 0xec71, - 0x003f, 0xec70, 0xec6f, 0xc067, 0xef68, 0xef66, 0xef65, 0x003f, - /* 0x9b00 .. 0x9bff */ - 0x003f, 0xef67, 0x003f, 0xc34f, 0xf1bc, 0xf1bd, 0xc350, 0x003f, - 0xf1bb, 0x003f, 0xf3c3, 0xf3c2, 0xf3c5, 0xc447, 0xf3c4, 0x003f, - 0xf567, 0xf569, 0xf568, 0x003f, 0x003f, 0xf6a3, 0xf6a6, 0xf6a4, - 0xf6a5, 0xf7a5, 0xc5bd, 0x003f, 0x003f, 0x003f, 0xf854, 0xf855, - 0xf856, 0x003f, 0xc64b, 0xc663, 0xf9b6, 0xb0ab, 0x003f, 0xbe78, - 0xc069, 0xf1be, 0x003f, 0xf7a6, 0x003f, 0x003f, 0xf9c4, 0xd44a, - 0x003f, 0xc67b, 0xb0ac, 0xec72, 0x003f, 0xf1bf, 0x003f, 0xf3c6, - 0x003f, 0x003f, 0xf6a7, 0xf7a7, 0xb0ad, 0x003f, 0xe4dd, 0xe4de, - 0x003f, 0xbbed, 0xbbee, 0xe8d9, 0xbe7a, 0xbe79, 0xe8d8, 0x003f, - 0xef69, 0x003f, 0xf1c0, 0xf1c2, 0xf1c1, 0xc353, 0xc352, 0xc351, - 0x003f, 0xc55e, 0xf6a8, 0x003f, 0xc55d, 0xf7a9, 0xf7a8, 0x003f, - 0xc64c, 0xf8d5, 0xb3bd, 0xe0ea, 0x003f, 0x003f, 0x003f, 0xe4e1, - 0xe4df, 0xe4e0, 0x003f, 0x003f, 0xe8e2, 0x003f, 0xe8dd, 0xe8da, - 0xe8e1, 0x003f, 0x003f, 0x003f, 0xe8e3, 0x003f, 0x003f, 0xbe7c, - 0xe8e0, 0xe8dc, 0x003f, 0x003f, 0xe8db, 0xe8df, 0xe8de, 0xbe7b, - 0x003f, 0x003f, 0xec7d, 0xec78, 0xec76, 0xeca1, 0xec77, 0x003f, - 0xec73, 0x003f, 0xec79, 0x003f, 0x003f, 0xec74, 0xef72, 0xec75, - 0xeca2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xec7c, 0xc06a, 0xec7b, 0xec7a, 0x003f, 0xec7e, 0x003f, 0x003f, - 0x003f, 0x003f, 0xef6a, 0xef6d, 0x003f, 0x003f, 0xef6c, 0x003f, - 0xef74, 0xef6f, 0xef73, 0x003f, 0xef71, 0xef70, 0xef6e, 0x003f, - 0xef6b, 0x003f, 0xc243, 0xc242, 0x003f, 0xc244, 0xc241, 0xef75, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1c8, 0xf1cb, 0x003f, - 0xf1c9, 0xf1cd, 0x003f, 0x003f, 0x003f, 0xf1ce, 0x003f, 0xf1c6, - 0xc358, 0xf1c7, 0x003f, 0xf1c5, 0xf1cc, 0x003f, 0xf1c4, 0xf1c3, - 0xc357, 0xc355, 0xc354, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0xf1ca, 0xf3cf, 0xf3d5, 0xc44a, 0xf3d0, - 0x003f, 0xf3d3, 0xf3d7, 0xc44b, 0xf3d2, 0x003f, 0xf3ca, 0x003f, - 0xf3c9, 0xf3d6, 0xf3cd, 0x003f, 0xf3cb, 0xf3d4, 0xf3cc, 0xc449, - 0xc448, 0x003f, 0xf3c7, 0xf3c8, 0xf3d1, 0x003f, 0x003f, 0x003f, - 0xf3ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf56c, - 0xf56f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc356, 0x003f, 0x003f, - /* 0x9c00 .. 0x9cff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf56d, 0xf573, 0xf571, - 0xf56b, 0xf576, 0x003f, 0xf56a, 0x003f, 0xc4cf, 0xf572, 0x003f, - 0x003f, 0x003f, 0xf56e, 0xc4ce, 0xf575, 0x003f, 0x003f, 0xf574, - 0x003f, 0x003f, 0x003f, 0x003f, 0xf6ab, 0xf6aa, 0x003f, 0x003f, - 0x003f, 0xf6b1, 0x003f, 0xf6ad, 0xf6b0, 0xc560, 0x003f, 0x003f, - 0xf6ae, 0xf6af, 0x003f, 0xf6a9, 0xf6ac, 0xc55f, 0x003f, 0x003f, - 0x003f, 0xc5bf, 0xf7b4, 0xf7af, 0xf7b3, 0x003f, 0xf7b6, 0xf7b2, - 0x003f, 0xf7ae, 0x003f, 0xc5c1, 0xf7b1, 0xf7b5, 0xc5c0, 0xf7ac, - 0xf570, 0xf7b0, 0x003f, 0x003f, 0xf7ad, 0x003f, 0xf7aa, 0x003f, - 0xf7ab, 0xc5be, 0xf85a, 0xf85c, 0xf85f, 0xf85b, 0xf860, 0x003f, - 0xf859, 0x003f, 0xf857, 0x003f, 0xc5eb, 0xf85d, 0xc5ed, 0xc5ec, - 0xf858, 0xf85e, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8da, 0xc64d, - 0xf8db, 0x003f, 0xf8d9, 0xf8d6, 0x003f, 0x003f, 0xf8d8, 0xf8d7, - 0xf95a, 0x003f, 0x003f, 0x003f, 0x003f, 0xf95c, 0xf95b, 0x003f, - 0x003f, 0xf979, 0x003f, 0xf978, 0xf977, 0xf97a, 0x003f, 0xc673, - 0xc674, 0xf9ca, 0xf9ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3be, 0xdcaf, 0xe0ed, - 0x003f, 0xb9a7, 0xe0eb, 0x003f, 0x003f, 0xe0ec, 0x003f, 0x003f, - 0x003f, 0xe4e2, 0xe4e3, 0xbbf1, 0xbbef, 0xe4e4, 0xbbf0, 0xe8e8, - 0x003f, 0xe8eb, 0xe8e5, 0xe8ec, 0xe8e4, 0xe8e6, 0x003f, 0xe8e7, - /* 0x9d00 .. 0x9dff */ - 0xe8ea, 0x003f, 0x003f, 0xbea1, 0xe8ef, 0xe8ee, 0xbe7d, 0xe8e9, - 0xe8ed, 0xbe7e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xecac, 0x003f, 0xc06f, 0x003f, 0xeca7, 0xc06b, 0x003f, 0xeca4, - 0xecaa, 0xecad, 0x003f, 0xc070, 0x003f, 0xeca9, 0xeca6, 0xecae, - 0xeca5, 0x003f, 0xecab, 0xc06c, 0x003f, 0xeca3, 0xc06d, 0x003f, - 0xc06e, 0xeca8, 0x003f, 0x003f, 0x003f, 0xefa9, 0xef7a, 0xef7b, - 0xef7e, 0xef7c, 0x003f, 0xef76, 0x003f, 0x003f, 0xef79, 0xefa5, - 0xef7d, 0x003f, 0x003f, 0xc245, 0x003f, 0xefa7, 0xefa4, 0xc246, - 0xefa6, 0xef77, 0xefa2, 0xefa3, 0x003f, 0xefa1, 0x003f, 0x003f, - 0x003f, 0x003f, 0xf1d2, 0xf1d4, 0xf1d7, 0x003f, 0x003f, 0xf1d1, - 0x003f, 0xc359, 0xf1d9, 0xf1d0, 0xf1da, 0x003f, 0xf1d6, 0xf1d8, - 0xf1dc, 0xf1d5, 0xf1dd, 0xf1d3, 0xf1cf, 0xc35a, 0x003f, 0xf1db, - 0xc35b, 0xc44d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef78, - 0xf3f1, 0xf3e8, 0xc44f, 0xf3e4, 0xc450, 0x003f, 0x003f, 0xf3ed, - 0xf3e7, 0xf3dd, 0xc44e, 0xf3ea, 0xf3e5, 0xf3e6, 0x003f, 0xf3d8, - 0xf3df, 0xf3ee, 0x003f, 0xf3eb, 0x003f, 0xf3e3, 0x003f, 0xf3ef, - 0xf3de, 0xf3d9, 0xf3ec, 0x003f, 0xf3db, 0xf3e9, 0xf3e0, 0xf3f0, - 0xf3dc, 0xc44c, 0xf3da, 0xf3e1, 0xf3e2, 0x003f, 0x003f, 0x003f, - 0xf57d, 0x003f, 0xf57b, 0x003f, 0xf5a2, 0x003f, 0xf5ae, 0xf5a5, - 0xf57c, 0xf578, 0xf5a7, 0xf57e, 0xf5a3, 0xf57a, 0xf5aa, 0xf577, - 0xf5a1, 0xf5a6, 0xf5a8, 0xf5ab, 0xf579, 0x003f, 0xf5af, 0xf5b0, - 0xf5a9, 0xf5ad, 0xf5a4, 0x003f, 0xf6c1, 0xf6c4, 0x003f, 0xc561, - 0x003f, 0xf6c3, 0xf6c8, 0xf6c6, 0xc562, 0xf6bd, 0xf6b3, 0xf6b2, - 0xc564, 0xf6bf, 0xf6c0, 0xf6bc, 0xf6b4, 0x003f, 0xf6b9, 0xf5ac, - 0x003f, 0xf6b5, 0xc563, 0xf6bb, 0x003f, 0xf6ba, 0x003f, 0xf6b6, - 0xf6c2, 0x003f, 0xf6b7, 0xf7bb, 0xf6c5, 0xf6c7, 0xf6be, 0xf6b8, - 0xf7bc, 0xf7be, 0xf7b8, 0xc5c2, 0x003f, 0xf7c5, 0xf7c3, 0xc5c3, - 0xf7c2, 0xf7c1, 0xf7ba, 0xf7b7, 0xf7bd, 0xf7c6, 0xf7b9, 0xf7bf, - 0x003f, 0xf869, 0xf86e, 0xf864, 0xf867, 0xc5ee, 0xf86b, 0x003f, - 0xf872, 0xf7c0, 0x003f, 0xf865, 0xf86f, 0xf873, 0xf86a, 0xf863, - 0xf86d, 0x003f, 0xf86c, 0xf871, 0xf870, 0xf7c4, 0xf868, 0xf862, - 0xf866, 0xc64e, 0xc64f, 0xf861, 0x003f, 0xf8e6, 0xf8dd, 0xf8e5, - /* 0x9e00 .. 0x9eff */ - 0xf8e2, 0xf8e3, 0xf8dc, 0xf8df, 0xf8e7, 0xf8e1, 0xf8e0, 0xf8de, - 0x003f, 0xf8e4, 0x003f, 0xf95d, 0x003f, 0xf95e, 0x003f, 0xf960, - 0xf95f, 0xf962, 0xf961, 0xf97c, 0xf97b, 0xf9b7, 0x003f, 0xf9b8, - 0x003f, 0xf9c5, 0xc678, 0xc67c, 0x003f, 0xf9cf, 0xc67d, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3bf, 0x003f, 0x003f, - 0x003f, 0xc4d0, 0xf6c9, 0x003f, 0xc650, 0xc651, 0x003f, 0xb3c0, - 0xe0ee, 0x003f, 0xb9a8, 0xe8f0, 0x003f, 0x003f, 0xecb0, 0xecb1, - 0xecaf, 0xefab, 0xefaa, 0xc247, 0xf1df, 0xefac, 0xf1de, 0x003f, - 0x003f, 0xf3f3, 0xc451, 0xc453, 0xf3f2, 0x003f, 0x003f, 0xc452, - 0x003f, 0xf5b1, 0xf5b3, 0xf5b2, 0xf6ca, 0xc565, 0x003f, 0xc5ef, - 0xf8e8, 0xf963, 0x003f, 0x003f, 0xf9d2, 0xb3c1, 0x003f, 0xe4e5, - 0x003f, 0xbea2, 0x003f, 0x003f, 0x003f, 0xecb3, 0xecb2, 0x003f, - 0xefad, 0x003f, 0x003f, 0x003f, 0xc454, 0xc4d1, 0xf7c7, 0xf9cb, - 0x003f, 0x003f, 0x003f, 0xb3c2, 0xbbf2, 0x003f, 0xbea3, 0x003f, - 0xf3f4, 0x003f, 0xf874, 0xb6c0, 0x003f, 0x003f, 0x003f, 0x003f, - 0xefae, 0x003f, 0x003f, 0x003f, 0xc664, 0xb6c1, 0xbea4, 0xc248, - 0xf875, 0xb6c2, 0x003f, 0xe8f1, 0xc072, 0xecb4, 0xecb5, 0x003f, - 0xc071, 0x003f, 0xefaf, 0xc24c, 0xc24a, 0xc24b, 0xc249, 0xf1e0, - 0xc35c, 0x003f, 0x003f, 0x003f, 0xf5b5, 0xf5b4, 0xf5b7, 0xf5b6, - 0xc4d2, 0x003f, 0x003f, 0xf6cb, 0x003f, 0xf6cd, 0xf6cc, 0xc566, - 0xf7c8, 0x003f, 0xf876, 0xf877, 0xc5f0, 0xf964, 0xf97d, 0xc675, - 0x003f, 0xdcb0, 0xecb6, 0xefb0, 0xf3f5, 0xe0ef, 0x003f, 0xefb1, - /* 0x9f00 .. 0x9fff */ - 0xf1e2, 0xf1e1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf878, 0xc652, - 0x003f, 0xf965, 0xf97e, 0x003f, 0x003f, 0x003f, 0xb9a9, 0xe8f2, - 0xe8f3, 0x003f, 0xecb7, 0xb9aa, 0x003f, 0xc35d, 0xf1e3, 0x003f, - 0xf6cf, 0xc567, 0xf6d0, 0xf6ce, 0xf879, 0x003f, 0xf8e9, 0x003f, - 0xb9ab, 0x003f, 0xefb4, 0xefb3, 0xefb2, 0xf1e4, 0x003f, 0x003f, - 0xf1e8, 0xf1e7, 0xf1e6, 0xf1e5, 0xc35e, 0xf3f6, 0xf5b9, 0xc4d3, - 0xf5b8, 0xf6d1, 0xf7cb, 0xf7ca, 0xc5c4, 0xf7c9, 0xf87c, 0xf87b, - 0xf87a, 0x003f, 0x003f, 0xbbf3, 0x003f, 0xecb8, 0xc24d, 0x003f, - 0xf3f7, 0xf3f8, 0xf7cc, 0xf87d, 0x003f, 0x003f, 0xf8ea, 0xf966, - 0xf9b9, 0xf9d4, 0xbbf4, 0xc24e, 0xf1e9, 0xf3f9, 0xf6d2, 0xf87e, - 0x003f, 0x003f, 0xbea6, 0x003f, 0xefb5, 0xf1ea, 0xf3fa, 0xf3fb, - 0xf3fc, 0xf5be, 0x003f, 0xf5ba, 0xc568, 0xf5bd, 0xf5bc, 0xc4d4, - 0xf5bb, 0xc4d6, 0x003f, 0xc4d5, 0xf6d4, 0xf6d3, 0xc569, 0xc56a, - 0x003f, 0x003f, 0xc5c6, 0xf7cd, 0xc5c5, 0x003f, 0xf8a3, 0xf8a4, - 0xf8a2, 0xf8a1, 0xc654, 0x003f, 0xf8eb, 0xf8ec, 0xf8ed, 0xc653, - 0xf967, 0xf96a, 0xf969, 0xf968, 0x003f, 0x003f, 0xf9d3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc073, 0x003f, 0x003f, - 0xc365, 0xf5bf, 0xf6d5, 0x003f, 0xc5c7, 0xf7ce, 0x003f, 0x003f, - 0xf9d5, 0x003f, 0x003f, 0x003f, 0xc074, 0x003f, 0x003f, 0x003f, - 0xefb6, 0x003f, 0xf7cf, 0x003f, 0xf9a1, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xe000 .. 0xe0ff */ - 0xfa40, 0xfa41, 0xfa42, 0xfa43, 0xfa44, 0xfa45, 0xfa46, 0xfa47, - 0xfa48, 0xfa49, 0xfa4a, 0xfa4b, 0xfa4c, 0xfa4d, 0xfa4e, 0xfa4f, - 0xfa50, 0xfa51, 0xfa52, 0xfa53, 0xfa54, 0xfa55, 0xfa56, 0xfa57, - 0xfa58, 0xfa59, 0xfa5a, 0xfa5b, 0xfa5c, 0xfa5d, 0xfa5e, 0xfa5f, - 0xfa60, 0xfa61, 0xfa62, 0xfa63, 0xfa64, 0xfa65, 0xfa66, 0xfa67, - 0xfa68, 0xfa69, 0xfa6a, 0xfa6b, 0xfa6c, 0xfa6d, 0xfa6e, 0xfa6f, - 0xfa70, 0xfa71, 0xfa72, 0xfa73, 0xfa74, 0xfa75, 0xfa76, 0xfa77, - 0xfa78, 0xfa79, 0xfa7a, 0xfa7b, 0xfa7c, 0xfa7d, 0xfa7e, 0xfaa1, - 0xfaa2, 0xfaa3, 0xfaa4, 0xfaa5, 0xfaa6, 0xfaa7, 0xfaa8, 0xfaa9, - 0xfaaa, 0xfaab, 0xfaac, 0xfaad, 0xfaae, 0xfaaf, 0xfab0, 0xfab1, - 0xfab2, 0xfab3, 0xfab4, 0xfab5, 0xfab6, 0xfab7, 0xfab8, 0xfab9, - 0xfaba, 0xfabb, 0xfabc, 0xfabd, 0xfabe, 0xfabf, 0xfac0, 0xfac1, - 0xfac2, 0xfac3, 0xfac4, 0xfac5, 0xfac6, 0xfac7, 0xfac8, 0xfac9, - 0xfaca, 0xfacb, 0xfacc, 0xfacd, 0xface, 0xfacf, 0xfad0, 0xfad1, - 0xfad2, 0xfad3, 0xfad4, 0xfad5, 0xfad6, 0xfad7, 0xfad8, 0xfad9, - 0xfada, 0xfadb, 0xfadc, 0xfadd, 0xfade, 0xfadf, 0xfae0, 0xfae1, - 0xfae2, 0xfae3, 0xfae4, 0xfae5, 0xfae6, 0xfae7, 0xfae8, 0xfae9, - 0xfaea, 0xfaeb, 0xfaec, 0xfaed, 0xfaee, 0xfaef, 0xfaf0, 0xfaf1, - 0xfaf2, 0xfaf3, 0xfaf4, 0xfaf5, 0xfaf6, 0xfaf7, 0xfaf8, 0xfaf9, - 0xfafa, 0xfafb, 0xfafc, 0xfafd, 0xfafe, 0xfb40, 0xfb41, 0xfb42, - 0xfb43, 0xfb44, 0xfb45, 0xfb46, 0xfb47, 0xfb48, 0xfb49, 0xfb4a, - 0xfb4b, 0xfb4c, 0xfb4d, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51, 0xfb52, - 0xfb53, 0xfb54, 0xfb55, 0xfb56, 0xfb57, 0xfb58, 0xfb59, 0xfb5a, - 0xfb5b, 0xfb5c, 0xfb5d, 0xfb5e, 0xfb5f, 0xfb60, 0xfb61, 0xfb62, - 0xfb63, 0xfb64, 0xfb65, 0xfb66, 0xfb67, 0xfb68, 0xfb69, 0xfb6a, - 0xfb6b, 0xfb6c, 0xfb6d, 0xfb6e, 0xfb6f, 0xfb70, 0xfb71, 0xfb72, - 0xfb73, 0xfb74, 0xfb75, 0xfb76, 0xfb77, 0xfb78, 0xfb79, 0xfb7a, - 0xfb7b, 0xfb7c, 0xfb7d, 0xfb7e, 0xfba1, 0xfba2, 0xfba3, 0xfba4, - 0xfba5, 0xfba6, 0xfba7, 0xfba8, 0xfba9, 0xfbaa, 0xfbab, 0xfbac, - 0xfbad, 0xfbae, 0xfbaf, 0xfbb0, 0xfbb1, 0xfbb2, 0xfbb3, 0xfbb4, - 0xfbb5, 0xfbb6, 0xfbb7, 0xfbb8, 0xfbb9, 0xfbba, 0xfbbb, 0xfbbc, - 0xfbbd, 0xfbbe, 0xfbbf, 0xfbc0, 0xfbc1, 0xfbc2, 0xfbc3, 0xfbc4, - /* 0xe100 .. 0xe1ff */ - 0xfbc5, 0xfbc6, 0xfbc7, 0xfbc8, 0xfbc9, 0xfbca, 0xfbcb, 0xfbcc, - 0xfbcd, 0xfbce, 0xfbcf, 0xfbd0, 0xfbd1, 0xfbd2, 0xfbd3, 0xfbd4, - 0xfbd5, 0xfbd6, 0xfbd7, 0xfbd8, 0xfbd9, 0xfbda, 0xfbdb, 0xfbdc, - 0xfbdd, 0xfbde, 0xfbdf, 0xfbe0, 0xfbe1, 0xfbe2, 0xfbe3, 0xfbe4, - 0xfbe5, 0xfbe6, 0xfbe7, 0xfbe8, 0xfbe9, 0xfbea, 0xfbeb, 0xfbec, - 0xfbed, 0xfbee, 0xfbef, 0xfbf0, 0xfbf1, 0xfbf2, 0xfbf3, 0xfbf4, - 0xfbf5, 0xfbf6, 0xfbf7, 0xfbf8, 0xfbf9, 0xfbfa, 0xfbfb, 0xfbfc, - 0xfbfd, 0xfbfe, 0xfc40, 0xfc41, 0xfc42, 0xfc43, 0xfc44, 0xfc45, - 0xfc46, 0xfc47, 0xfc48, 0xfc49, 0xfc4a, 0xfc4b, 0xfc4c, 0xfc4d, - 0xfc4e, 0xfc4f, 0xfc50, 0xfc51, 0xfc52, 0xfc53, 0xfc54, 0xfc55, - 0xfc56, 0xfc57, 0xfc58, 0xfc59, 0xfc5a, 0xfc5b, 0xfc5c, 0xfc5d, - 0xfc5e, 0xfc5f, 0xfc60, 0xfc61, 0xfc62, 0xfc63, 0xfc64, 0xfc65, - 0xfc66, 0xfc67, 0xfc68, 0xfc69, 0xfc6a, 0xfc6b, 0xfc6c, 0xfc6d, - 0xfc6e, 0xfc6f, 0xfc70, 0xfc71, 0xfc72, 0xfc73, 0xfc74, 0xfc75, - 0xfc76, 0xfc77, 0xfc78, 0xfc79, 0xfc7a, 0xfc7b, 0xfc7c, 0xfc7d, - 0xfc7e, 0xfca1, 0xfca2, 0xfca3, 0xfca4, 0xfca5, 0xfca6, 0xfca7, - 0xfca8, 0xfca9, 0xfcaa, 0xfcab, 0xfcac, 0xfcad, 0xfcae, 0xfcaf, - 0xfcb0, 0xfcb1, 0xfcb2, 0xfcb3, 0xfcb4, 0xfcb5, 0xfcb6, 0xfcb7, - 0xfcb8, 0xfcb9, 0xfcba, 0xfcbb, 0xfcbc, 0xfcbd, 0xfcbe, 0xfcbf, - 0xfcc0, 0xfcc1, 0xfcc2, 0xfcc3, 0xfcc4, 0xfcc5, 0xfcc6, 0xfcc7, - 0xfcc8, 0xfcc9, 0xfcca, 0xfccb, 0xfccc, 0xfccd, 0xfcce, 0xfccf, - 0xfcd0, 0xfcd1, 0xfcd2, 0xfcd3, 0xfcd4, 0xfcd5, 0xfcd6, 0xfcd7, - 0xfcd8, 0xfcd9, 0xfcda, 0xfcdb, 0xfcdc, 0xfcdd, 0xfcde, 0xfcdf, - 0xfce0, 0xfce1, 0xfce2, 0xfce3, 0xfce4, 0xfce5, 0xfce6, 0xfce7, - 0xfce8, 0xfce9, 0xfcea, 0xfceb, 0xfcec, 0xfced, 0xfcee, 0xfcef, - 0xfcf0, 0xfcf1, 0xfcf2, 0xfcf3, 0xfcf4, 0xfcf5, 0xfcf6, 0xfcf7, - 0xfcf8, 0xfcf9, 0xfcfa, 0xfcfb, 0xfcfc, 0xfcfd, 0xfcfe, 0xfd40, - 0xfd41, 0xfd42, 0xfd43, 0xfd44, 0xfd45, 0xfd46, 0xfd47, 0xfd48, - 0xfd49, 0xfd4a, 0xfd4b, 0xfd4c, 0xfd4d, 0xfd4e, 0xfd4f, 0xfd50, - 0xfd51, 0xfd52, 0xfd53, 0xfd54, 0xfd55, 0xfd56, 0xfd57, 0xfd58, - 0xfd59, 0xfd5a, 0xfd5b, 0xfd5c, 0xfd5d, 0xfd5e, 0xfd5f, 0xfd60, - 0xfd61, 0xfd62, 0xfd63, 0xfd64, 0xfd65, 0xfd66, 0xfd67, 0xfd68, - /* 0xe200 .. 0xe2ff */ - 0xfd69, 0xfd6a, 0xfd6b, 0xfd6c, 0xfd6d, 0xfd6e, 0xfd6f, 0xfd70, - 0xfd71, 0xfd72, 0xfd73, 0xfd74, 0xfd75, 0xfd76, 0xfd77, 0xfd78, - 0xfd79, 0xfd7a, 0xfd7b, 0xfd7c, 0xfd7d, 0xfd7e, 0xfda1, 0xfda2, - 0xfda3, 0xfda4, 0xfda5, 0xfda6, 0xfda7, 0xfda8, 0xfda9, 0xfdaa, - 0xfdab, 0xfdac, 0xfdad, 0xfdae, 0xfdaf, 0xfdb0, 0xfdb1, 0xfdb2, - 0xfdb3, 0xfdb4, 0xfdb5, 0xfdb6, 0xfdb7, 0xfdb8, 0xfdb9, 0xfdba, - 0xfdbb, 0xfdbc, 0xfdbd, 0xfdbe, 0xfdbf, 0xfdc0, 0xfdc1, 0xfdc2, - 0xfdc3, 0xfdc4, 0xfdc5, 0xfdc6, 0xfdc7, 0xfdc8, 0xfdc9, 0xfdca, - 0xfdcb, 0xfdcc, 0xfdcd, 0xfdce, 0xfdcf, 0xfdd0, 0xfdd1, 0xfdd2, - 0xfdd3, 0xfdd4, 0xfdd5, 0xfdd6, 0xfdd7, 0xfdd8, 0xfdd9, 0xfdda, - 0xfddb, 0xfddc, 0xfddd, 0xfdde, 0xfddf, 0xfde0, 0xfde1, 0xfde2, - 0xfde3, 0xfde4, 0xfde5, 0xfde6, 0xfde7, 0xfde8, 0xfde9, 0xfdea, - 0xfdeb, 0xfdec, 0xfded, 0xfdee, 0xfdef, 0xfdf0, 0xfdf1, 0xfdf2, - 0xfdf3, 0xfdf4, 0xfdf5, 0xfdf6, 0xfdf7, 0xfdf8, 0xfdf9, 0xfdfa, - 0xfdfb, 0xfdfc, 0xfdfd, 0xfdfe, 0xfe40, 0xfe41, 0xfe42, 0xfe43, - 0xfe44, 0xfe45, 0xfe46, 0xfe47, 0xfe48, 0xfe49, 0xfe4a, 0xfe4b, - 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 0xfe50, 0xfe51, 0xfe52, 0xfe53, - 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe58, 0xfe59, 0xfe5a, 0xfe5b, - 0xfe5c, 0xfe5d, 0xfe5e, 0xfe5f, 0xfe60, 0xfe61, 0xfe62, 0xfe63, - 0xfe64, 0xfe65, 0xfe66, 0xfe67, 0xfe68, 0xfe69, 0xfe6a, 0xfe6b, - 0xfe6c, 0xfe6d, 0xfe6e, 0xfe6f, 0xfe70, 0xfe71, 0xfe72, 0xfe73, - 0xfe74, 0xfe75, 0xfe76, 0xfe77, 0xfe78, 0xfe79, 0xfe7a, 0xfe7b, - 0xfe7c, 0xfe7d, 0xfe7e, 0xfea1, 0xfea2, 0xfea3, 0xfea4, 0xfea5, - 0xfea6, 0xfea7, 0xfea8, 0xfea9, 0xfeaa, 0xfeab, 0xfeac, 0xfead, - 0xfeae, 0xfeaf, 0xfeb0, 0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4, 0xfeb5, - 0xfeb6, 0xfeb7, 0xfeb8, 0xfeb9, 0xfeba, 0xfebb, 0xfebc, 0xfebd, - 0xfebe, 0xfebf, 0xfec0, 0xfec1, 0xfec2, 0xfec3, 0xfec4, 0xfec5, - 0xfec6, 0xfec7, 0xfec8, 0xfec9, 0xfeca, 0xfecb, 0xfecc, 0xfecd, - 0xfece, 0xfecf, 0xfed0, 0xfed1, 0xfed2, 0xfed3, 0xfed4, 0xfed5, - 0xfed6, 0xfed7, 0xfed8, 0xfed9, 0xfeda, 0xfedb, 0xfedc, 0xfedd, - 0xfede, 0xfedf, 0xfee0, 0xfee1, 0xfee2, 0xfee3, 0xfee4, 0xfee5, - 0xfee6, 0xfee7, 0xfee8, 0xfee9, 0xfeea, 0xfeeb, 0xfeec, 0xfeed, - /* 0xe300 .. 0xe3ff */ - 0xfeee, 0xfeef, 0xfef0, 0xfef1, 0xfef2, 0xfef3, 0xfef4, 0xfef5, - 0xfef6, 0xfef7, 0xfef8, 0xfef9, 0xfefa, 0xfefb, 0xfefc, 0xfefd, - 0xfefe, 0x8e40, 0x8e41, 0x8e42, 0x8e43, 0x8e44, 0x8e45, 0x8e46, - 0x8e47, 0x8e48, 0x8e49, 0x8e4a, 0x8e4b, 0x8e4c, 0x8e4d, 0x8e4e, - 0x8e4f, 0x8e50, 0x8e51, 0x8e52, 0x8e53, 0x8e54, 0x8e55, 0x8e56, - 0x8e57, 0x8e58, 0x8e59, 0x8e5a, 0x8e5b, 0x8e5c, 0x8e5d, 0x8e5e, - 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0x8e63, 0x8e64, 0x8e65, 0x8e66, - 0x8e67, 0x8e68, 0x8e69, 0x8e6a, 0x8e6b, 0x8e6c, 0x8e6d, 0x8e6e, - 0x8e6f, 0x8e70, 0x8e71, 0x8e72, 0x8e73, 0x8e74, 0x8e75, 0x8e76, - 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b, 0x8e7c, 0x8e7d, 0x8e7e, - 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6, 0x8ea7, 0x8ea8, - 0x8ea9, 0x8eaa, 0x8eab, 0x8eac, 0x8ead, 0x8eae, 0x8eaf, 0x8eb0, - 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4, 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, - 0x8eb9, 0x8eba, 0x8ebb, 0x8ebc, 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, - 0x8ec1, 0x8ec2, 0x8ec3, 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, - 0x8ec9, 0x8eca, 0x8ecb, 0x8ecc, 0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, - 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4, 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, - 0x8ed9, 0x8eda, 0x8edb, 0x8edc, 0x8edd, 0x8ede, 0x8edf, 0x8ee0, - 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4, 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, - 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, 0x8eed, 0x8eee, 0x8eef, 0x8ef0, - 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4, 0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, - 0x8ef9, 0x8efa, 0x8efb, 0x8efc, 0x8efd, 0x8efe, 0x8f40, 0x8f41, - 0x8f42, 0x8f43, 0x8f44, 0x8f45, 0x8f46, 0x8f47, 0x8f48, 0x8f49, - 0x8f4a, 0x8f4b, 0x8f4c, 0x8f4d, 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, - 0x8f52, 0x8f53, 0x8f54, 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, - 0x8f5a, 0x8f5b, 0x8f5c, 0x8f5d, 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, - 0x8f62, 0x8f63, 0x8f64, 0x8f65, 0x8f66, 0x8f67, 0x8f68, 0x8f69, - 0x8f6a, 0x8f6b, 0x8f6c, 0x8f6d, 0x8f6e, 0x8f6f, 0x8f70, 0x8f71, - 0x8f72, 0x8f73, 0x8f74, 0x8f75, 0x8f76, 0x8f77, 0x8f78, 0x8f79, - 0x8f7a, 0x8f7b, 0x8f7c, 0x8f7d, 0x8f7e, 0x8fa1, 0x8fa2, 0x8fa3, - 0x8fa4, 0x8fa5, 0x8fa6, 0x8fa7, 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, - 0x8fac, 0x8fad, 0x8fae, 0x8faf, 0x8fb0, 0x8fb1, 0x8fb2, 0x8fb3, - /* 0xe400 .. 0xe4ff */ - 0x8fb4, 0x8fb5, 0x8fb6, 0x8fb7, 0x8fb8, 0x8fb9, 0x8fba, 0x8fbb, - 0x8fbc, 0x8fbd, 0x8fbe, 0x8fbf, 0x8fc0, 0x8fc1, 0x8fc2, 0x8fc3, - 0x8fc4, 0x8fc5, 0x8fc6, 0x8fc7, 0x8fc8, 0x8fc9, 0x8fca, 0x8fcb, - 0x8fcc, 0x8fcd, 0x8fce, 0x8fcf, 0x8fd0, 0x8fd1, 0x8fd2, 0x8fd3, - 0x8fd4, 0x8fd5, 0x8fd6, 0x8fd7, 0x8fd8, 0x8fd9, 0x8fda, 0x8fdb, - 0x8fdc, 0x8fdd, 0x8fde, 0x8fdf, 0x8fe0, 0x8fe1, 0x8fe2, 0x8fe3, - 0x8fe4, 0x8fe5, 0x8fe6, 0x8fe7, 0x8fe8, 0x8fe9, 0x8fea, 0x8feb, - 0x8fec, 0x8fed, 0x8fee, 0x8fef, 0x8ff0, 0x8ff1, 0x8ff2, 0x8ff3, - 0x8ff4, 0x8ff5, 0x8ff6, 0x8ff7, 0x8ff8, 0x8ff9, 0x8ffa, 0x8ffb, - 0x8ffc, 0x8ffd, 0x8ffe, 0x9040, 0x9041, 0x9042, 0x9043, 0x9044, - 0x9045, 0x9046, 0x9047, 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, - 0x904d, 0x904e, 0x904f, 0x9050, 0x9051, 0x9052, 0x9053, 0x9054, - 0x9055, 0x9056, 0x9057, 0x9058, 0x9059, 0x905a, 0x905b, 0x905c, - 0x905d, 0x905e, 0x905f, 0x9060, 0x9061, 0x9062, 0x9063, 0x9064, - 0x9065, 0x9066, 0x9067, 0x9068, 0x9069, 0x906a, 0x906b, 0x906c, - 0x906d, 0x906e, 0x906f, 0x9070, 0x9071, 0x9072, 0x9073, 0x9074, - 0x9075, 0x9076, 0x9077, 0x9078, 0x9079, 0x907a, 0x907b, 0x907c, - 0x907d, 0x907e, 0x90a1, 0x90a2, 0x90a3, 0x90a4, 0x90a5, 0x90a6, - 0x90a7, 0x90a8, 0x90a9, 0x90aa, 0x90ab, 0x90ac, 0x90ad, 0x90ae, - 0x90af, 0x90b0, 0x90b1, 0x90b2, 0x90b3, 0x90b4, 0x90b5, 0x90b6, - 0x90b7, 0x90b8, 0x90b9, 0x90ba, 0x90bb, 0x90bc, 0x90bd, 0x90be, - 0x90bf, 0x90c0, 0x90c1, 0x90c2, 0x90c3, 0x90c4, 0x90c5, 0x90c6, - 0x90c7, 0x90c8, 0x90c9, 0x90ca, 0x90cb, 0x90cc, 0x90cd, 0x90ce, - 0x90cf, 0x90d0, 0x90d1, 0x90d2, 0x90d3, 0x90d4, 0x90d5, 0x90d6, - 0x90d7, 0x90d8, 0x90d9, 0x90da, 0x90db, 0x90dc, 0x90dd, 0x90de, - 0x90df, 0x90e0, 0x90e1, 0x90e2, 0x90e3, 0x90e4, 0x90e5, 0x90e6, - 0x90e7, 0x90e8, 0x90e9, 0x90ea, 0x90eb, 0x90ec, 0x90ed, 0x90ee, - 0x90ef, 0x90f0, 0x90f1, 0x90f2, 0x90f3, 0x90f4, 0x90f5, 0x90f6, - 0x90f7, 0x90f8, 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90fd, 0x90fe, - 0x9140, 0x9141, 0x9142, 0x9143, 0x9144, 0x9145, 0x9146, 0x9147, - 0x9148, 0x9149, 0x914a, 0x914b, 0x914c, 0x914d, 0x914e, 0x914f, - 0x9150, 0x9151, 0x9152, 0x9153, 0x9154, 0x9155, 0x9156, 0x9157, - /* 0xe500 .. 0xe5ff */ - 0x9158, 0x9159, 0x915a, 0x915b, 0x915c, 0x915d, 0x915e, 0x915f, - 0x9160, 0x9161, 0x9162, 0x9163, 0x9164, 0x9165, 0x9166, 0x9167, - 0x9168, 0x9169, 0x916a, 0x916b, 0x916c, 0x916d, 0x916e, 0x916f, - 0x9170, 0x9171, 0x9172, 0x9173, 0x9174, 0x9175, 0x9176, 0x9177, - 0x9178, 0x9179, 0x917a, 0x917b, 0x917c, 0x917d, 0x917e, 0x91a1, - 0x91a2, 0x91a3, 0x91a4, 0x91a5, 0x91a6, 0x91a7, 0x91a8, 0x91a9, - 0x91aa, 0x91ab, 0x91ac, 0x91ad, 0x91ae, 0x91af, 0x91b0, 0x91b1, - 0x91b2, 0x91b3, 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, - 0x91ba, 0x91bb, 0x91bc, 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, - 0x91c2, 0x91c3, 0x91c4, 0x91c5, 0x91c6, 0x91c7, 0x91c8, 0x91c9, - 0x91ca, 0x91cb, 0x91cc, 0x91cd, 0x91ce, 0x91cf, 0x91d0, 0x91d1, - 0x91d2, 0x91d3, 0x91d4, 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, - 0x91da, 0x91db, 0x91dc, 0x91dd, 0x91de, 0x91df, 0x91e0, 0x91e1, - 0x91e2, 0x91e3, 0x91e4, 0x91e5, 0x91e6, 0x91e7, 0x91e8, 0x91e9, - 0x91ea, 0x91eb, 0x91ec, 0x91ed, 0x91ee, 0x91ef, 0x91f0, 0x91f1, - 0x91f2, 0x91f3, 0x91f4, 0x91f5, 0x91f6, 0x91f7, 0x91f8, 0x91f9, - 0x91fa, 0x91fb, 0x91fc, 0x91fd, 0x91fe, 0x9240, 0x9241, 0x9242, - 0x9243, 0x9244, 0x9245, 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, - 0x924b, 0x924c, 0x924d, 0x924e, 0x924f, 0x9250, 0x9251, 0x9252, - 0x9253, 0x9254, 0x9255, 0x9256, 0x9257, 0x9258, 0x9259, 0x925a, - 0x925b, 0x925c, 0x925d, 0x925e, 0x925f, 0x9260, 0x9261, 0x9262, - 0x9263, 0x9264, 0x9265, 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, - 0x926b, 0x926c, 0x926d, 0x926e, 0x926f, 0x9270, 0x9271, 0x9272, - 0x9273, 0x9274, 0x9275, 0x9276, 0x9277, 0x9278, 0x9279, 0x927a, - 0x927b, 0x927c, 0x927d, 0x927e, 0x92a1, 0x92a2, 0x92a3, 0x92a4, - 0x92a5, 0x92a6, 0x92a7, 0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac, - 0x92ad, 0x92ae, 0x92af, 0x92b0, 0x92b1, 0x92b2, 0x92b3, 0x92b4, - 0x92b5, 0x92b6, 0x92b7, 0x92b8, 0x92b9, 0x92ba, 0x92bb, 0x92bc, - 0x92bd, 0x92be, 0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c4, - 0x92c5, 0x92c6, 0x92c7, 0x92c8, 0x92c9, 0x92ca, 0x92cb, 0x92cc, - 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, 0x92d2, 0x92d3, 0x92d4, - 0x92d5, 0x92d6, 0x92d7, 0x92d8, 0x92d9, 0x92da, 0x92db, 0x92dc, - /* 0xe600 .. 0xe6ff */ - 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1, 0x92e2, 0x92e3, 0x92e4, - 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x92e9, 0x92ea, 0x92eb, 0x92ec, - 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1, 0x92f2, 0x92f3, 0x92f4, - 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, 0x92fa, 0x92fb, 0x92fc, - 0x92fd, 0x92fe, 0x9340, 0x9341, 0x9342, 0x9343, 0x9344, 0x9345, - 0x9346, 0x9347, 0x9348, 0x9349, 0x934a, 0x934b, 0x934c, 0x934d, - 0x934e, 0x934f, 0x9350, 0x9351, 0x9352, 0x9353, 0x9354, 0x9355, - 0x9356, 0x9357, 0x9358, 0x9359, 0x935a, 0x935b, 0x935c, 0x935d, - 0x935e, 0x935f, 0x9360, 0x9361, 0x9362, 0x9363, 0x9364, 0x9365, - 0x9366, 0x9367, 0x9368, 0x9369, 0x936a, 0x936b, 0x936c, 0x936d, - 0x936e, 0x936f, 0x9370, 0x9371, 0x9372, 0x9373, 0x9374, 0x9375, - 0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x937b, 0x937c, 0x937d, - 0x937e, 0x93a1, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6, 0x93a7, - 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac, 0x93ad, 0x93ae, 0x93af, - 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0x93b4, 0x93b5, 0x93b6, 0x93b7, - 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc, 0x93bd, 0x93be, 0x93bf, - 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4, 0x93c5, 0x93c6, 0x93c7, - 0x93c8, 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, 0x93ce, 0x93cf, - 0x93d0, 0x93d1, 0x93d2, 0x93d3, 0x93d4, 0x93d5, 0x93d6, 0x93d7, - 0x93d8, 0x93d9, 0x93da, 0x93db, 0x93dc, 0x93dd, 0x93de, 0x93df, - 0x93e0, 0x93e1, 0x93e2, 0x93e3, 0x93e4, 0x93e5, 0x93e6, 0x93e7, - 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee, 0x93ef, - 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6, 0x93f7, - 0x93f8, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0x93fd, 0x93fe, 0x9440, - 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447, 0x9448, - 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f, 0x9450, - 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, 0x9458, - 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f, 0x9460, - 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, 0x9468, - 0x9469, 0x946a, 0x946b, 0x946c, 0x946d, 0x946e, 0x946f, 0x9470, - 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, 0x9478, - 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x94a1, 0x94a2, - /* 0xe700 .. 0xe7ff */ - 0x94a3, 0x94a4, 0x94a5, 0x94a6, 0x94a7, 0x94a8, 0x94a9, 0x94aa, - 0x94ab, 0x94ac, 0x94ad, 0x94ae, 0x94af, 0x94b0, 0x94b1, 0x94b2, - 0x94b3, 0x94b4, 0x94b5, 0x94b6, 0x94b7, 0x94b8, 0x94b9, 0x94ba, - 0x94bb, 0x94bc, 0x94bd, 0x94be, 0x94bf, 0x94c0, 0x94c1, 0x94c2, - 0x94c3, 0x94c4, 0x94c5, 0x94c6, 0x94c7, 0x94c8, 0x94c9, 0x94ca, - 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94cf, 0x94d0, 0x94d1, 0x94d2, - 0x94d3, 0x94d4, 0x94d5, 0x94d6, 0x94d7, 0x94d8, 0x94d9, 0x94da, - 0x94db, 0x94dc, 0x94dd, 0x94de, 0x94df, 0x94e0, 0x94e1, 0x94e2, - 0x94e3, 0x94e4, 0x94e5, 0x94e6, 0x94e7, 0x94e8, 0x94e9, 0x94ea, - 0x94eb, 0x94ec, 0x94ed, 0x94ee, 0x94ef, 0x94f0, 0x94f1, 0x94f2, - 0x94f3, 0x94f4, 0x94f5, 0x94f6, 0x94f7, 0x94f8, 0x94f9, 0x94fa, - 0x94fb, 0x94fc, 0x94fd, 0x94fe, 0x9540, 0x9541, 0x9542, 0x9543, - 0x9544, 0x9545, 0x9546, 0x9547, 0x9548, 0x9549, 0x954a, 0x954b, - 0x954c, 0x954d, 0x954e, 0x954f, 0x9550, 0x9551, 0x9552, 0x9553, - 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559, 0x955a, 0x955b, - 0x955c, 0x955d, 0x955e, 0x955f, 0x9560, 0x9561, 0x9562, 0x9563, - 0x9564, 0x9565, 0x9566, 0x9567, 0x9568, 0x9569, 0x956a, 0x956b, - 0x956c, 0x956d, 0x956e, 0x956f, 0x9570, 0x9571, 0x9572, 0x9573, - 0x9574, 0x9575, 0x9576, 0x9577, 0x9578, 0x9579, 0x957a, 0x957b, - 0x957c, 0x957d, 0x957e, 0x95a1, 0x95a2, 0x95a3, 0x95a4, 0x95a5, - 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, 0x95ab, 0x95ac, 0x95ad, - 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b2, 0x95b3, 0x95b4, 0x95b5, - 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba, 0x95bb, 0x95bc, 0x95bd, - 0x95be, 0x95bf, 0x95c0, 0x95c1, 0x95c2, 0x95c3, 0x95c4, 0x95c5, - 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0x95ca, 0x95cb, 0x95cc, 0x95cd, - 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, 0x95d3, 0x95d4, 0x95d5, - 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, 0x95db, 0x95dc, 0x95dd, - 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, 0x95e3, 0x95e4, 0x95e5, - 0x95e6, 0x95e7, 0x95e8, 0x95e9, 0x95ea, 0x95eb, 0x95ec, 0x95ed, - 0x95ee, 0x95ef, 0x95f0, 0x95f1, 0x95f2, 0x95f3, 0x95f4, 0x95f5, - 0x95f6, 0x95f7, 0x95f8, 0x95f9, 0x95fa, 0x95fb, 0x95fc, 0x95fd, - 0x95fe, 0x9640, 0x9641, 0x9642, 0x9643, 0x9644, 0x9645, 0x9646, - /* 0xe800 .. 0xe8ff */ - 0x9647, 0x9648, 0x9649, 0x964a, 0x964b, 0x964c, 0x964d, 0x964e, - 0x964f, 0x9650, 0x9651, 0x9652, 0x9653, 0x9654, 0x9655, 0x9656, - 0x9657, 0x9658, 0x9659, 0x965a, 0x965b, 0x965c, 0x965d, 0x965e, - 0x965f, 0x9660, 0x9661, 0x9662, 0x9663, 0x9664, 0x9665, 0x9666, - 0x9667, 0x9668, 0x9669, 0x966a, 0x966b, 0x966c, 0x966d, 0x966e, - 0x966f, 0x9670, 0x9671, 0x9672, 0x9673, 0x9674, 0x9675, 0x9676, - 0x9677, 0x9678, 0x9679, 0x967a, 0x967b, 0x967c, 0x967d, 0x967e, - 0x96a1, 0x96a2, 0x96a3, 0x96a4, 0x96a5, 0x96a6, 0x96a7, 0x96a8, - 0x96a9, 0x96aa, 0x96ab, 0x96ac, 0x96ad, 0x96ae, 0x96af, 0x96b0, - 0x96b1, 0x96b2, 0x96b3, 0x96b4, 0x96b5, 0x96b6, 0x96b7, 0x96b8, - 0x96b9, 0x96ba, 0x96bb, 0x96bc, 0x96bd, 0x96be, 0x96bf, 0x96c0, - 0x96c1, 0x96c2, 0x96c3, 0x96c4, 0x96c5, 0x96c6, 0x96c7, 0x96c8, - 0x96c9, 0x96ca, 0x96cb, 0x96cc, 0x96cd, 0x96ce, 0x96cf, 0x96d0, - 0x96d1, 0x96d2, 0x96d3, 0x96d4, 0x96d5, 0x96d6, 0x96d7, 0x96d8, - 0x96d9, 0x96da, 0x96db, 0x96dc, 0x96dd, 0x96de, 0x96df, 0x96e0, - 0x96e1, 0x96e2, 0x96e3, 0x96e4, 0x96e5, 0x96e6, 0x96e7, 0x96e8, - 0x96e9, 0x96ea, 0x96eb, 0x96ec, 0x96ed, 0x96ee, 0x96ef, 0x96f0, - 0x96f1, 0x96f2, 0x96f3, 0x96f4, 0x96f5, 0x96f6, 0x96f7, 0x96f8, - 0x96f9, 0x96fa, 0x96fb, 0x96fc, 0x96fd, 0x96fe, 0x9740, 0x9741, - 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, 0x9748, 0x9749, - 0x974a, 0x974b, 0x974c, 0x974d, 0x974e, 0x974f, 0x9750, 0x9751, - 0x9752, 0x9753, 0x9754, 0x9755, 0x9756, 0x9757, 0x9758, 0x9759, - 0x975a, 0x975b, 0x975c, 0x975d, 0x975e, 0x975f, 0x9760, 0x9761, - 0x9762, 0x9763, 0x9764, 0x9765, 0x9766, 0x9767, 0x9768, 0x9769, - 0x976a, 0x976b, 0x976c, 0x976d, 0x976e, 0x976f, 0x9770, 0x9771, - 0x9772, 0x9773, 0x9774, 0x9775, 0x9776, 0x9777, 0x9778, 0x9779, - 0x977a, 0x977b, 0x977c, 0x977d, 0x977e, 0x97a1, 0x97a2, 0x97a3, - 0x97a4, 0x97a5, 0x97a6, 0x97a7, 0x97a8, 0x97a9, 0x97aa, 0x97ab, - 0x97ac, 0x97ad, 0x97ae, 0x97af, 0x97b0, 0x97b1, 0x97b2, 0x97b3, - 0x97b4, 0x97b5, 0x97b6, 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, - 0x97bc, 0x97bd, 0x97be, 0x97bf, 0x97c0, 0x97c1, 0x97c2, 0x97c3, - 0x97c4, 0x97c5, 0x97c6, 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, - /* 0xe900 .. 0xe9ff */ - 0x97cc, 0x97cd, 0x97ce, 0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, - 0x97d4, 0x97d5, 0x97d6, 0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, - 0x97dc, 0x97dd, 0x97de, 0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, - 0x97e4, 0x97e5, 0x97e6, 0x97e7, 0x97e8, 0x97e9, 0x97ea, 0x97eb, - 0x97ec, 0x97ed, 0x97ee, 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f3, - 0x97f4, 0x97f5, 0x97f6, 0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, - 0x97fc, 0x97fd, 0x97fe, 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, - 0x9845, 0x9846, 0x9847, 0x9848, 0x9849, 0x984a, 0x984b, 0x984c, - 0x984d, 0x984e, 0x984f, 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, - 0x9855, 0x9856, 0x9857, 0x9858, 0x9859, 0x985a, 0x985b, 0x985c, - 0x985d, 0x985e, 0x985f, 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, - 0x9865, 0x9866, 0x9867, 0x9868, 0x9869, 0x986a, 0x986b, 0x986c, - 0x986d, 0x986e, 0x986f, 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, - 0x9875, 0x9876, 0x9877, 0x9878, 0x9879, 0x987a, 0x987b, 0x987c, - 0x987d, 0x987e, 0x98a1, 0x98a2, 0x98a3, 0x98a4, 0x98a5, 0x98a6, - 0x98a7, 0x98a8, 0x98a9, 0x98aa, 0x98ab, 0x98ac, 0x98ad, 0x98ae, - 0x98af, 0x98b0, 0x98b1, 0x98b2, 0x98b3, 0x98b4, 0x98b5, 0x98b6, - 0x98b7, 0x98b8, 0x98b9, 0x98ba, 0x98bb, 0x98bc, 0x98bd, 0x98be, - 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3, 0x98c4, 0x98c5, 0x98c6, - 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0x98cb, 0x98cc, 0x98cd, 0x98ce, - 0x98cf, 0x98d0, 0x98d1, 0x98d2, 0x98d3, 0x98d4, 0x98d5, 0x98d6, - 0x98d7, 0x98d8, 0x98d9, 0x98da, 0x98db, 0x98dc, 0x98dd, 0x98de, - 0x98df, 0x98e0, 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5, 0x98e6, - 0x98e7, 0x98e8, 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, - 0x98ef, 0x98f0, 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, - 0x98f7, 0x98f8, 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x98fe, - 0x9940, 0x9941, 0x9942, 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, - 0x9948, 0x9949, 0x994a, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, - 0x9950, 0x9951, 0x9952, 0x9953, 0x9954, 0x9955, 0x9956, 0x9957, - 0x9958, 0x9959, 0x995a, 0x995b, 0x995c, 0x995d, 0x995e, 0x995f, - 0x9960, 0x9961, 0x9962, 0x9963, 0x9964, 0x9965, 0x9966, 0x9967, - 0x9968, 0x9969, 0x996a, 0x996b, 0x996c, 0x996d, 0x996e, 0x996f, - /* 0xea00 .. 0xeaff */ - 0x9970, 0x9971, 0x9972, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, - 0x9978, 0x9979, 0x997a, 0x997b, 0x997c, 0x997d, 0x997e, 0x99a1, - 0x99a2, 0x99a3, 0x99a4, 0x99a5, 0x99a6, 0x99a7, 0x99a8, 0x99a9, - 0x99aa, 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, - 0x99b2, 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, - 0x99ba, 0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1, - 0x99c2, 0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, - 0x99ca, 0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, - 0x99d2, 0x99d3, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x99d9, - 0x99da, 0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1, - 0x99e2, 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9, - 0x99ea, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, 0x99f1, - 0x99f2, 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9, - 0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x9a40, 0x9a41, 0x9a42, - 0x9a43, 0x9a44, 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49, 0x9a4a, - 0x9a4b, 0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, 0x9a52, - 0x9a53, 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59, 0x9a5a, - 0x9a5b, 0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0x9a60, 0x9a61, 0x9a62, - 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, 0x9a6a, - 0x9a6b, 0x9a6c, 0x9a6d, 0x9a6e, 0x9a6f, 0x9a70, 0x9a71, 0x9a72, - 0x9a73, 0x9a74, 0x9a75, 0x9a76, 0x9a77, 0x9a78, 0x9a79, 0x9a7a, - 0x9a7b, 0x9a7c, 0x9a7d, 0x9a7e, 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, - 0x9aa5, 0x9aa6, 0x9aa7, 0x9aa8, 0x9aa9, 0x9aaa, 0x9aab, 0x9aac, - 0x9aad, 0x9aae, 0x9aaf, 0x9ab0, 0x9ab1, 0x9ab2, 0x9ab3, 0x9ab4, - 0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8, 0x9ab9, 0x9aba, 0x9abb, 0x9abc, - 0x9abd, 0x9abe, 0x9abf, 0x9ac0, 0x9ac1, 0x9ac2, 0x9ac3, 0x9ac4, - 0x9ac5, 0x9ac6, 0x9ac7, 0x9ac8, 0x9ac9, 0x9aca, 0x9acb, 0x9acc, - 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad1, 0x9ad2, 0x9ad3, 0x9ad4, - 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, - 0x9add, 0x9ade, 0x9adf, 0x9ae0, 0x9ae1, 0x9ae2, 0x9ae3, 0x9ae4, - 0x9ae5, 0x9ae6, 0x9ae7, 0x9ae8, 0x9ae9, 0x9aea, 0x9aeb, 0x9aec, - 0x9aed, 0x9aee, 0x9aef, 0x9af0, 0x9af1, 0x9af2, 0x9af3, 0x9af4, - /* 0xeb00 .. 0xebff */ - 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, 0x9afa, 0x9afb, 0x9afc, - 0x9afd, 0x9afe, 0x9b40, 0x9b41, 0x9b42, 0x9b43, 0x9b44, 0x9b45, - 0x9b46, 0x9b47, 0x9b48, 0x9b49, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4d, - 0x9b4e, 0x9b4f, 0x9b50, 0x9b51, 0x9b52, 0x9b53, 0x9b54, 0x9b55, - 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b5b, 0x9b5c, 0x9b5d, - 0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0x9b62, 0x9b63, 0x9b64, 0x9b65, - 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b, 0x9b6c, 0x9b6d, - 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0x9b73, 0x9b74, 0x9b75, - 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b7b, 0x9b7c, 0x9b7d, - 0x9b7e, 0x9ba1, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, - 0x9ba8, 0x9ba9, 0x9baa, 0x9bab, 0x9bac, 0x9bad, 0x9bae, 0x9baf, - 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3, 0x9bb4, 0x9bb5, 0x9bb6, 0x9bb7, - 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb, 0x9bbc, 0x9bbd, 0x9bbe, 0x9bbf, - 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3, 0x9bc4, 0x9bc5, 0x9bc6, 0x9bc7, - 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce, 0x9bcf, - 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3, 0x9bd4, 0x9bd5, 0x9bd6, 0x9bd7, - 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb, 0x9bdc, 0x9bdd, 0x9bde, 0x9bdf, - 0x9be0, 0x9be1, 0x9be2, 0x9be3, 0x9be4, 0x9be5, 0x9be6, 0x9be7, - 0x9be8, 0x9be9, 0x9bea, 0x9beb, 0x9bec, 0x9bed, 0x9bee, 0x9bef, - 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, 0x9bf4, 0x9bf5, 0x9bf6, 0x9bf7, - 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb, 0x9bfc, 0x9bfd, 0x9bfe, 0x9c40, - 0x9c41, 0x9c42, 0x9c43, 0x9c44, 0x9c45, 0x9c46, 0x9c47, 0x9c48, - 0x9c49, 0x9c4a, 0x9c4b, 0x9c4c, 0x9c4d, 0x9c4e, 0x9c4f, 0x9c50, - 0x9c51, 0x9c52, 0x9c53, 0x9c54, 0x9c55, 0x9c56, 0x9c57, 0x9c58, - 0x9c59, 0x9c5a, 0x9c5b, 0x9c5c, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c60, - 0x9c61, 0x9c62, 0x9c63, 0x9c64, 0x9c65, 0x9c66, 0x9c67, 0x9c68, - 0x9c69, 0x9c6a, 0x9c6b, 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, - 0x9c71, 0x9c72, 0x9c73, 0x9c74, 0x9c75, 0x9c76, 0x9c77, 0x9c78, - 0x9c79, 0x9c7a, 0x9c7b, 0x9c7c, 0x9c7d, 0x9c7e, 0x9ca1, 0x9ca2, - 0x9ca3, 0x9ca4, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8, 0x9ca9, 0x9caa, - 0x9cab, 0x9cac, 0x9cad, 0x9cae, 0x9caf, 0x9cb0, 0x9cb1, 0x9cb2, - 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cb8, 0x9cb9, 0x9cba, - /* 0xec00 .. 0xecff */ - 0x9cbb, 0x9cbc, 0x9cbd, 0x9cbe, 0x9cbf, 0x9cc0, 0x9cc1, 0x9cc2, - 0x9cc3, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cc8, 0x9cc9, 0x9cca, - 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, 0x9cd1, 0x9cd2, - 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6, 0x9cd7, 0x9cd8, 0x9cd9, 0x9cda, - 0x9cdb, 0x9cdc, 0x9cdd, 0x9cde, 0x9cdf, 0x9ce0, 0x9ce1, 0x9ce2, - 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea, - 0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0x9cf2, - 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa, - 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9d40, 0x9d41, 0x9d42, 0x9d43, - 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49, 0x9d4a, 0x9d4b, - 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51, 0x9d52, 0x9d53, - 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0x9d5a, 0x9d5b, - 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61, 0x9d62, 0x9d63, - 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 0x9d6a, 0x9d6b, - 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d72, 0x9d73, - 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, 0x9d7b, - 0x9d7c, 0x9d7d, 0x9d7e, 0x9da1, 0x9da2, 0x9da3, 0x9da4, 0x9da5, - 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa, 0x9dab, 0x9dac, 0x9dad, - 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db2, 0x9db3, 0x9db4, 0x9db5, - 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, 0x9dbb, 0x9dbc, 0x9dbd, - 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2, 0x9dc3, 0x9dc4, 0x9dc5, - 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca, 0x9dcb, 0x9dcc, 0x9dcd, - 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2, 0x9dd3, 0x9dd4, 0x9dd5, - 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, 0x9dda, 0x9ddb, 0x9ddc, 0x9ddd, - 0x9dde, 0x9ddf, 0x9de0, 0x9de1, 0x9de2, 0x9de3, 0x9de4, 0x9de5, - 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea, 0x9deb, 0x9dec, 0x9ded, - 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df2, 0x9df3, 0x9df4, 0x9df5, - 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa, 0x9dfb, 0x9dfc, 0x9dfd, - 0x9dfe, 0x9e40, 0x9e41, 0x9e42, 0x9e43, 0x9e44, 0x9e45, 0x9e46, - 0x9e47, 0x9e48, 0x9e49, 0x9e4a, 0x9e4b, 0x9e4c, 0x9e4d, 0x9e4e, - 0x9e4f, 0x9e50, 0x9e51, 0x9e52, 0x9e53, 0x9e54, 0x9e55, 0x9e56, - 0x9e57, 0x9e58, 0x9e59, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5d, 0x9e5e, - /* 0xed00 .. 0xedff */ - 0x9e5f, 0x9e60, 0x9e61, 0x9e62, 0x9e63, 0x9e64, 0x9e65, 0x9e66, - 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e6d, 0x9e6e, - 0x9e6f, 0x9e70, 0x9e71, 0x9e72, 0x9e73, 0x9e74, 0x9e75, 0x9e76, - 0x9e77, 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, 0x9e7c, 0x9e7d, 0x9e7e, - 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, - 0x9ea9, 0x9eaa, 0x9eab, 0x9eac, 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, - 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb4, 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb8, - 0x9eb9, 0x9eba, 0x9ebb, 0x9ebc, 0x9ebd, 0x9ebe, 0x9ebf, 0x9ec0, - 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec4, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, - 0x9ec9, 0x9eca, 0x9ecb, 0x9ecc, 0x9ecd, 0x9ece, 0x9ecf, 0x9ed0, - 0x9ed1, 0x9ed2, 0x9ed3, 0x9ed4, 0x9ed5, 0x9ed6, 0x9ed7, 0x9ed8, - 0x9ed9, 0x9eda, 0x9edb, 0x9edc, 0x9edd, 0x9ede, 0x9edf, 0x9ee0, - 0x9ee1, 0x9ee2, 0x9ee3, 0x9ee4, 0x9ee5, 0x9ee6, 0x9ee7, 0x9ee8, - 0x9ee9, 0x9eea, 0x9eeb, 0x9eec, 0x9eed, 0x9eee, 0x9eef, 0x9ef0, - 0x9ef1, 0x9ef2, 0x9ef3, 0x9ef4, 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, - 0x9ef9, 0x9efa, 0x9efb, 0x9efc, 0x9efd, 0x9efe, 0x9f40, 0x9f41, - 0x9f42, 0x9f43, 0x9f44, 0x9f45, 0x9f46, 0x9f47, 0x9f48, 0x9f49, - 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f, 0x9f50, 0x9f51, - 0x9f52, 0x9f53, 0x9f54, 0x9f55, 0x9f56, 0x9f57, 0x9f58, 0x9f59, - 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f5e, 0x9f5f, 0x9f60, 0x9f61, - 0x9f62, 0x9f63, 0x9f64, 0x9f65, 0x9f66, 0x9f67, 0x9f68, 0x9f69, - 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, - 0x9f72, 0x9f73, 0x9f74, 0x9f75, 0x9f76, 0x9f77, 0x9f78, 0x9f79, - 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d, 0x9f7e, 0x9fa1, 0x9fa2, 0x9fa3, - 0x9fa4, 0x9fa5, 0x9fa6, 0x9fa7, 0x9fa8, 0x9fa9, 0x9faa, 0x9fab, - 0x9fac, 0x9fad, 0x9fae, 0x9faf, 0x9fb0, 0x9fb1, 0x9fb2, 0x9fb3, - 0x9fb4, 0x9fb5, 0x9fb6, 0x9fb7, 0x9fb8, 0x9fb9, 0x9fba, 0x9fbb, - 0x9fbc, 0x9fbd, 0x9fbe, 0x9fbf, 0x9fc0, 0x9fc1, 0x9fc2, 0x9fc3, - 0x9fc4, 0x9fc5, 0x9fc6, 0x9fc7, 0x9fc8, 0x9fc9, 0x9fca, 0x9fcb, - 0x9fcc, 0x9fcd, 0x9fce, 0x9fcf, 0x9fd0, 0x9fd1, 0x9fd2, 0x9fd3, - 0x9fd4, 0x9fd5, 0x9fd6, 0x9fd7, 0x9fd8, 0x9fd9, 0x9fda, 0x9fdb, - 0x9fdc, 0x9fdd, 0x9fde, 0x9fdf, 0x9fe0, 0x9fe1, 0x9fe2, 0x9fe3, - /* 0xee00 .. 0xeeff */ - 0x9fe4, 0x9fe5, 0x9fe6, 0x9fe7, 0x9fe8, 0x9fe9, 0x9fea, 0x9feb, - 0x9fec, 0x9fed, 0x9fee, 0x9fef, 0x9ff0, 0x9ff1, 0x9ff2, 0x9ff3, - 0x9ff4, 0x9ff5, 0x9ff6, 0x9ff7, 0x9ff8, 0x9ff9, 0x9ffa, 0x9ffb, - 0x9ffc, 0x9ffd, 0x9ffe, 0xa040, 0xa041, 0xa042, 0xa043, 0xa044, - 0xa045, 0xa046, 0xa047, 0xa048, 0xa049, 0xa04a, 0xa04b, 0xa04c, - 0xa04d, 0xa04e, 0xa04f, 0xa050, 0xa051, 0xa052, 0xa053, 0xa054, - 0xa055, 0xa056, 0xa057, 0xa058, 0xa059, 0xa05a, 0xa05b, 0xa05c, - 0xa05d, 0xa05e, 0xa05f, 0xa060, 0xa061, 0xa062, 0xa063, 0xa064, - 0xa065, 0xa066, 0xa067, 0xa068, 0xa069, 0xa06a, 0xa06b, 0xa06c, - 0xa06d, 0xa06e, 0xa06f, 0xa070, 0xa071, 0xa072, 0xa073, 0xa074, - 0xa075, 0xa076, 0xa077, 0xa078, 0xa079, 0xa07a, 0xa07b, 0xa07c, - 0xa07d, 0xa07e, 0xa0a1, 0xa0a2, 0xa0a3, 0xa0a4, 0xa0a5, 0xa0a6, - 0xa0a7, 0xa0a8, 0xa0a9, 0xa0aa, 0xa0ab, 0xa0ac, 0xa0ad, 0xa0ae, - 0xa0af, 0xa0b0, 0xa0b1, 0xa0b2, 0xa0b3, 0xa0b4, 0xa0b5, 0xa0b6, - 0xa0b7, 0xa0b8, 0xa0b9, 0xa0ba, 0xa0bb, 0xa0bc, 0xa0bd, 0xa0be, - 0xa0bf, 0xa0c0, 0xa0c1, 0xa0c2, 0xa0c3, 0xa0c4, 0xa0c5, 0xa0c6, - 0xa0c7, 0xa0c8, 0xa0c9, 0xa0ca, 0xa0cb, 0xa0cc, 0xa0cd, 0xa0ce, - 0xa0cf, 0xa0d0, 0xa0d1, 0xa0d2, 0xa0d3, 0xa0d4, 0xa0d5, 0xa0d6, - 0xa0d7, 0xa0d8, 0xa0d9, 0xa0da, 0xa0db, 0xa0dc, 0xa0dd, 0xa0de, - 0xa0df, 0xa0e0, 0xa0e1, 0xa0e2, 0xa0e3, 0xa0e4, 0xa0e5, 0xa0e6, - 0xa0e7, 0xa0e8, 0xa0e9, 0xa0ea, 0xa0eb, 0xa0ec, 0xa0ed, 0xa0ee, - 0xa0ef, 0xa0f0, 0xa0f1, 0xa0f2, 0xa0f3, 0xa0f4, 0xa0f5, 0xa0f6, - 0xa0f7, 0xa0f8, 0xa0f9, 0xa0fa, 0xa0fb, 0xa0fc, 0xa0fd, 0xa0fe, - 0x8140, 0x8141, 0x8142, 0x8143, 0x8144, 0x8145, 0x8146, 0x8147, - 0x8148, 0x8149, 0x814a, 0x814b, 0x814c, 0x814d, 0x814e, 0x814f, - 0x8150, 0x8151, 0x8152, 0x8153, 0x8154, 0x8155, 0x8156, 0x8157, - 0x8158, 0x8159, 0x815a, 0x815b, 0x815c, 0x815d, 0x815e, 0x815f, - 0x8160, 0x8161, 0x8162, 0x8163, 0x8164, 0x8165, 0x8166, 0x8167, - 0x8168, 0x8169, 0x816a, 0x816b, 0x816c, 0x816d, 0x816e, 0x816f, - 0x8170, 0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, - 0x8178, 0x8179, 0x817a, 0x817b, 0x817c, 0x817d, 0x817e, 0x81a1, - 0x81a2, 0x81a3, 0x81a4, 0x81a5, 0x81a6, 0x81a7, 0x81a8, 0x81a9, - /* 0xef00 .. 0xefff */ - 0x81aa, 0x81ab, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, - 0x81b2, 0x81b3, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, - 0x81ba, 0x81bb, 0x81bc, 0x81bd, 0x81be, 0x81bf, 0x81c0, 0x81c1, - 0x81c2, 0x81c3, 0x81c4, 0x81c5, 0x81c6, 0x81c7, 0x81c8, 0x81c9, - 0x81ca, 0x81cb, 0x81cc, 0x81cd, 0x81ce, 0x81cf, 0x81d0, 0x81d1, - 0x81d2, 0x81d3, 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0x81d8, 0x81d9, - 0x81da, 0x81db, 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0x81e1, - 0x81e2, 0x81e3, 0x81e4, 0x81e5, 0x81e6, 0x81e7, 0x81e8, 0x81e9, - 0x81ea, 0x81eb, 0x81ec, 0x81ed, 0x81ee, 0x81ef, 0x81f0, 0x81f1, - 0x81f2, 0x81f3, 0x81f4, 0x81f5, 0x81f6, 0x81f7, 0x81f8, 0x81f9, - 0x81fa, 0x81fb, 0x81fc, 0x81fd, 0x81fe, 0x8240, 0x8241, 0x8242, - 0x8243, 0x8244, 0x8245, 0x8246, 0x8247, 0x8248, 0x8249, 0x824a, - 0x824b, 0x824c, 0x824d, 0x824e, 0x824f, 0x8250, 0x8251, 0x8252, - 0x8253, 0x8254, 0x8255, 0x8256, 0x8257, 0x8258, 0x8259, 0x825a, - 0x825b, 0x825c, 0x825d, 0x825e, 0x825f, 0x8260, 0x8261, 0x8262, - 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, 0x8268, 0x8269, 0x826a, - 0x826b, 0x826c, 0x826d, 0x826e, 0x826f, 0x8270, 0x8271, 0x8272, - 0x8273, 0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x827a, - 0x827b, 0x827c, 0x827d, 0x827e, 0x82a1, 0x82a2, 0x82a3, 0x82a4, - 0x82a5, 0x82a6, 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac, - 0x82ad, 0x82ae, 0x82af, 0x82b0, 0x82b1, 0x82b2, 0x82b3, 0x82b4, - 0x82b5, 0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0x82bb, 0x82bc, - 0x82bd, 0x82be, 0x82bf, 0x82c0, 0x82c1, 0x82c2, 0x82c3, 0x82c4, - 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0x82c9, 0x82ca, 0x82cb, 0x82cc, - 0x82cd, 0x82ce, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0x82d3, 0x82d4, - 0x82d5, 0x82d6, 0x82d7, 0x82d8, 0x82d9, 0x82da, 0x82db, 0x82dc, - 0x82dd, 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, 0x82e3, 0x82e4, - 0x82e5, 0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82eb, 0x82ec, - 0x82ed, 0x82ee, 0x82ef, 0x82f0, 0x82f1, 0x82f2, 0x82f3, 0x82f4, - 0x82f5, 0x82f6, 0x82f7, 0x82f8, 0x82f9, 0x82fa, 0x82fb, 0x82fc, - 0x82fd, 0x82fe, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, - 0x8346, 0x8347, 0x8348, 0x8349, 0x834a, 0x834b, 0x834c, 0x834d, - /* 0xf000 .. 0xf0ff */ - 0x834e, 0x834f, 0x8350, 0x8351, 0x8352, 0x8353, 0x8354, 0x8355, - 0x8356, 0x8357, 0x8358, 0x8359, 0x835a, 0x835b, 0x835c, 0x835d, - 0x835e, 0x835f, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, - 0x8366, 0x8367, 0x8368, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d, - 0x836e, 0x836f, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375, - 0x8376, 0x8377, 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d, - 0x837e, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, 0x83a6, 0x83a7, - 0x83a8, 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0x83ad, 0x83ae, 0x83af, - 0x83b0, 0x83b1, 0x83b2, 0x83b3, 0x83b4, 0x83b5, 0x83b6, 0x83b7, - 0x83b8, 0x83b9, 0x83ba, 0x83bb, 0x83bc, 0x83bd, 0x83be, 0x83bf, - 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0x83c5, 0x83c6, 0x83c7, - 0x83c8, 0x83c9, 0x83ca, 0x83cb, 0x83cc, 0x83cd, 0x83ce, 0x83cf, - 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d4, 0x83d5, 0x83d6, 0x83d7, - 0x83d8, 0x83d9, 0x83da, 0x83db, 0x83dc, 0x83dd, 0x83de, 0x83df, - 0x83e0, 0x83e1, 0x83e2, 0x83e3, 0x83e4, 0x83e5, 0x83e6, 0x83e7, - 0x83e8, 0x83e9, 0x83ea, 0x83eb, 0x83ec, 0x83ed, 0x83ee, 0x83ef, - 0x83f0, 0x83f1, 0x83f2, 0x83f3, 0x83f4, 0x83f5, 0x83f6, 0x83f7, - 0x83f8, 0x83f9, 0x83fa, 0x83fb, 0x83fc, 0x83fd, 0x83fe, 0x8440, - 0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8446, 0x8447, 0x8448, - 0x8449, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, - 0x8451, 0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8457, 0x8458, - 0x8459, 0x845a, 0x845b, 0x845c, 0x845d, 0x845e, 0x845f, 0x8460, - 0x8461, 0x8462, 0x8463, 0x8464, 0x8465, 0x8466, 0x8467, 0x8468, - 0x8469, 0x846a, 0x846b, 0x846c, 0x846d, 0x846e, 0x846f, 0x8470, - 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8476, 0x8477, 0x8478, - 0x8479, 0x847a, 0x847b, 0x847c, 0x847d, 0x847e, 0x84a1, 0x84a2, - 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, 0x84a8, 0x84a9, 0x84aa, - 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84af, 0x84b0, 0x84b1, 0x84b2, - 0x84b3, 0x84b4, 0x84b5, 0x84b6, 0x84b7, 0x84b8, 0x84b9, 0x84ba, - 0x84bb, 0x84bc, 0x84bd, 0x84be, 0x84bf, 0x84c0, 0x84c1, 0x84c2, - 0x84c3, 0x84c4, 0x84c5, 0x84c6, 0x84c7, 0x84c8, 0x84c9, 0x84ca, - 0x84cb, 0x84cc, 0x84cd, 0x84ce, 0x84cf, 0x84d0, 0x84d1, 0x84d2, - /* 0xf100 .. 0xf1ff */ - 0x84d3, 0x84d4, 0x84d5, 0x84d6, 0x84d7, 0x84d8, 0x84d9, 0x84da, - 0x84db, 0x84dc, 0x84dd, 0x84de, 0x84df, 0x84e0, 0x84e1, 0x84e2, - 0x84e3, 0x84e4, 0x84e5, 0x84e6, 0x84e7, 0x84e8, 0x84e9, 0x84ea, - 0x84eb, 0x84ec, 0x84ed, 0x84ee, 0x84ef, 0x84f0, 0x84f1, 0x84f2, - 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8, 0x84f9, 0x84fa, - 0x84fb, 0x84fc, 0x84fd, 0x84fe, 0x8540, 0x8541, 0x8542, 0x8543, - 0x8544, 0x8545, 0x8546, 0x8547, 0x8548, 0x8549, 0x854a, 0x854b, - 0x854c, 0x854d, 0x854e, 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, - 0x8554, 0x8555, 0x8556, 0x8557, 0x8558, 0x8559, 0x855a, 0x855b, - 0x855c, 0x855d, 0x855e, 0x855f, 0x8560, 0x8561, 0x8562, 0x8563, - 0x8564, 0x8565, 0x8566, 0x8567, 0x8568, 0x8569, 0x856a, 0x856b, - 0x856c, 0x856d, 0x856e, 0x856f, 0x8570, 0x8571, 0x8572, 0x8573, - 0x8574, 0x8575, 0x8576, 0x8577, 0x8578, 0x8579, 0x857a, 0x857b, - 0x857c, 0x857d, 0x857e, 0x85a1, 0x85a2, 0x85a3, 0x85a4, 0x85a5, - 0x85a6, 0x85a7, 0x85a8, 0x85a9, 0x85aa, 0x85ab, 0x85ac, 0x85ad, - 0x85ae, 0x85af, 0x85b0, 0x85b1, 0x85b2, 0x85b3, 0x85b4, 0x85b5, - 0x85b6, 0x85b7, 0x85b8, 0x85b9, 0x85ba, 0x85bb, 0x85bc, 0x85bd, - 0x85be, 0x85bf, 0x85c0, 0x85c1, 0x85c2, 0x85c3, 0x85c4, 0x85c5, - 0x85c6, 0x85c7, 0x85c8, 0x85c9, 0x85ca, 0x85cb, 0x85cc, 0x85cd, - 0x85ce, 0x85cf, 0x85d0, 0x85d1, 0x85d2, 0x85d3, 0x85d4, 0x85d5, - 0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da, 0x85db, 0x85dc, 0x85dd, - 0x85de, 0x85df, 0x85e0, 0x85e1, 0x85e2, 0x85e3, 0x85e4, 0x85e5, - 0x85e6, 0x85e7, 0x85e8, 0x85e9, 0x85ea, 0x85eb, 0x85ec, 0x85ed, - 0x85ee, 0x85ef, 0x85f0, 0x85f1, 0x85f2, 0x85f3, 0x85f4, 0x85f5, - 0x85f6, 0x85f7, 0x85f8, 0x85f9, 0x85fa, 0x85fb, 0x85fc, 0x85fd, - 0x85fe, 0x8640, 0x8641, 0x8642, 0x8643, 0x8644, 0x8645, 0x8646, - 0x8647, 0x8648, 0x8649, 0x864a, 0x864b, 0x864c, 0x864d, 0x864e, - 0x864f, 0x8650, 0x8651, 0x8652, 0x8653, 0x8654, 0x8655, 0x8656, - 0x8657, 0x8658, 0x8659, 0x865a, 0x865b, 0x865c, 0x865d, 0x865e, - 0x865f, 0x8660, 0x8661, 0x8662, 0x8663, 0x8664, 0x8665, 0x8666, - 0x8667, 0x8668, 0x8669, 0x866a, 0x866b, 0x866c, 0x866d, 0x866e, - 0x866f, 0x8670, 0x8671, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, - /* 0xf200 .. 0xf2ff */ - 0x8677, 0x8678, 0x8679, 0x867a, 0x867b, 0x867c, 0x867d, 0x867e, - 0x86a1, 0x86a2, 0x86a3, 0x86a4, 0x86a5, 0x86a6, 0x86a7, 0x86a8, - 0x86a9, 0x86aa, 0x86ab, 0x86ac, 0x86ad, 0x86ae, 0x86af, 0x86b0, - 0x86b1, 0x86b2, 0x86b3, 0x86b4, 0x86b5, 0x86b6, 0x86b7, 0x86b8, - 0x86b9, 0x86ba, 0x86bb, 0x86bc, 0x86bd, 0x86be, 0x86bf, 0x86c0, - 0x86c1, 0x86c2, 0x86c3, 0x86c4, 0x86c5, 0x86c6, 0x86c7, 0x86c8, - 0x86c9, 0x86ca, 0x86cb, 0x86cc, 0x86cd, 0x86ce, 0x86cf, 0x86d0, - 0x86d1, 0x86d2, 0x86d3, 0x86d4, 0x86d5, 0x86d6, 0x86d7, 0x86d8, - 0x86d9, 0x86da, 0x86db, 0x86dc, 0x86dd, 0x86de, 0x86df, 0x86e0, - 0x86e1, 0x86e2, 0x86e3, 0x86e4, 0x86e5, 0x86e6, 0x86e7, 0x86e8, - 0x86e9, 0x86ea, 0x86eb, 0x86ec, 0x86ed, 0x86ee, 0x86ef, 0x86f0, - 0x86f1, 0x86f2, 0x86f3, 0x86f4, 0x86f5, 0x86f6, 0x86f7, 0x86f8, - 0x86f9, 0x86fa, 0x86fb, 0x86fc, 0x86fd, 0x86fe, 0x8740, 0x8741, - 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, - 0x874a, 0x874b, 0x874c, 0x874d, 0x874e, 0x874f, 0x8750, 0x8751, - 0x8752, 0x8753, 0x8754, 0x8755, 0x8756, 0x8757, 0x8758, 0x8759, - 0x875a, 0x875b, 0x875c, 0x875d, 0x875e, 0x875f, 0x8760, 0x8761, - 0x8762, 0x8763, 0x8764, 0x8765, 0x8766, 0x8767, 0x8768, 0x8769, - 0x876a, 0x876b, 0x876c, 0x876d, 0x876e, 0x876f, 0x8770, 0x8771, - 0x8772, 0x8773, 0x8774, 0x8775, 0x8776, 0x8777, 0x8778, 0x8779, - 0x877a, 0x877b, 0x877c, 0x877d, 0x877e, 0x87a1, 0x87a2, 0x87a3, - 0x87a4, 0x87a5, 0x87a6, 0x87a7, 0x87a8, 0x87a9, 0x87aa, 0x87ab, - 0x87ac, 0x87ad, 0x87ae, 0x87af, 0x87b0, 0x87b1, 0x87b2, 0x87b3, - 0x87b4, 0x87b5, 0x87b6, 0x87b7, 0x87b8, 0x87b9, 0x87ba, 0x87bb, - 0x87bc, 0x87bd, 0x87be, 0x87bf, 0x87c0, 0x87c1, 0x87c2, 0x87c3, - 0x87c4, 0x87c5, 0x87c6, 0x87c7, 0x87c8, 0x87c9, 0x87ca, 0x87cb, - 0x87cc, 0x87cd, 0x87ce, 0x87cf, 0x87d0, 0x87d1, 0x87d2, 0x87d3, - 0x87d4, 0x87d5, 0x87d6, 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87db, - 0x87dc, 0x87dd, 0x87de, 0x87df, 0x87e0, 0x87e1, 0x87e2, 0x87e3, - 0x87e4, 0x87e5, 0x87e6, 0x87e7, 0x87e8, 0x87e9, 0x87ea, 0x87eb, - 0x87ec, 0x87ed, 0x87ee, 0x87ef, 0x87f0, 0x87f1, 0x87f2, 0x87f3, - 0x87f4, 0x87f5, 0x87f6, 0x87f7, 0x87f8, 0x87f9, 0x87fa, 0x87fb, - /* 0xf300 .. 0xf3ff */ - 0x87fc, 0x87fd, 0x87fe, 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, - 0x8845, 0x8846, 0x8847, 0x8848, 0x8849, 0x884a, 0x884b, 0x884c, - 0x884d, 0x884e, 0x884f, 0x8850, 0x8851, 0x8852, 0x8853, 0x8854, - 0x8855, 0x8856, 0x8857, 0x8858, 0x8859, 0x885a, 0x885b, 0x885c, - 0x885d, 0x885e, 0x885f, 0x8860, 0x8861, 0x8862, 0x8863, 0x8864, - 0x8865, 0x8866, 0x8867, 0x8868, 0x8869, 0x886a, 0x886b, 0x886c, - 0x886d, 0x886e, 0x886f, 0x8870, 0x8871, 0x8872, 0x8873, 0x8874, - 0x8875, 0x8876, 0x8877, 0x8878, 0x8879, 0x887a, 0x887b, 0x887c, - 0x887d, 0x887e, 0x88a1, 0x88a2, 0x88a3, 0x88a4, 0x88a5, 0x88a6, - 0x88a7, 0x88a8, 0x88a9, 0x88aa, 0x88ab, 0x88ac, 0x88ad, 0x88ae, - 0x88af, 0x88b0, 0x88b1, 0x88b2, 0x88b3, 0x88b4, 0x88b5, 0x88b6, - 0x88b7, 0x88b8, 0x88b9, 0x88ba, 0x88bb, 0x88bc, 0x88bd, 0x88be, - 0x88bf, 0x88c0, 0x88c1, 0x88c2, 0x88c3, 0x88c4, 0x88c5, 0x88c6, - 0x88c7, 0x88c8, 0x88c9, 0x88ca, 0x88cb, 0x88cc, 0x88cd, 0x88ce, - 0x88cf, 0x88d0, 0x88d1, 0x88d2, 0x88d3, 0x88d4, 0x88d5, 0x88d6, - 0x88d7, 0x88d8, 0x88d9, 0x88da, 0x88db, 0x88dc, 0x88dd, 0x88de, - 0x88df, 0x88e0, 0x88e1, 0x88e2, 0x88e3, 0x88e4, 0x88e5, 0x88e6, - 0x88e7, 0x88e8, 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, - 0x88ef, 0x88f0, 0x88f1, 0x88f2, 0x88f3, 0x88f4, 0x88f5, 0x88f6, - 0x88f7, 0x88f8, 0x88f9, 0x88fa, 0x88fb, 0x88fc, 0x88fd, 0x88fe, - 0x8940, 0x8941, 0x8942, 0x8943, 0x8944, 0x8945, 0x8946, 0x8947, - 0x8948, 0x8949, 0x894a, 0x894b, 0x894c, 0x894d, 0x894e, 0x894f, - 0x8950, 0x8951, 0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, - 0x8958, 0x8959, 0x895a, 0x895b, 0x895c, 0x895d, 0x895e, 0x895f, - 0x8960, 0x8961, 0x8962, 0x8963, 0x8964, 0x8965, 0x8966, 0x8967, - 0x8968, 0x8969, 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, - 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0x8976, 0x8977, - 0x8978, 0x8979, 0x897a, 0x897b, 0x897c, 0x897d, 0x897e, 0x89a1, - 0x89a2, 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9, - 0x89aa, 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1, - 0x89b2, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, - 0x89ba, 0x89bb, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c1, - /* 0xf400 .. 0xf4ff */ - 0x89c2, 0x89c3, 0x89c4, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, - 0x89ca, 0x89cb, 0x89cc, 0x89cd, 0x89ce, 0x89cf, 0x89d0, 0x89d1, - 0x89d2, 0x89d3, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8, 0x89d9, - 0x89da, 0x89db, 0x89dc, 0x89dd, 0x89de, 0x89df, 0x89e0, 0x89e1, - 0x89e2, 0x89e3, 0x89e4, 0x89e5, 0x89e6, 0x89e7, 0x89e8, 0x89e9, - 0x89ea, 0x89eb, 0x89ec, 0x89ed, 0x89ee, 0x89ef, 0x89f0, 0x89f1, - 0x89f2, 0x89f3, 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, - 0x89fa, 0x89fb, 0x89fc, 0x89fd, 0x89fe, 0x8a40, 0x8a41, 0x8a42, - 0x8a43, 0x8a44, 0x8a45, 0x8a46, 0x8a47, 0x8a48, 0x8a49, 0x8a4a, - 0x8a4b, 0x8a4c, 0x8a4d, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a52, - 0x8a53, 0x8a54, 0x8a55, 0x8a56, 0x8a57, 0x8a58, 0x8a59, 0x8a5a, - 0x8a5b, 0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f, 0x8a60, 0x8a61, 0x8a62, - 0x8a63, 0x8a64, 0x8a65, 0x8a66, 0x8a67, 0x8a68, 0x8a69, 0x8a6a, - 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, 0x8a71, 0x8a72, - 0x8a73, 0x8a74, 0x8a75, 0x8a76, 0x8a77, 0x8a78, 0x8a79, 0x8a7a, - 0x8a7b, 0x8a7c, 0x8a7d, 0x8a7e, 0x8aa1, 0x8aa2, 0x8aa3, 0x8aa4, - 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, 0x8aac, - 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4, - 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, 0x8aba, 0x8abb, 0x8abc, - 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0x8ac3, 0x8ac4, - 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb, 0x8acc, - 0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad2, 0x8ad3, 0x8ad4, - 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb, 0x8adc, - 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3, 0x8ae4, - 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb, 0x8aec, - 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, 0x8af4, - 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afb, 0x8afc, - 0x8afd, 0x8afe, 0x8b40, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0x8b45, - 0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d, - 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b52, 0x8b53, 0x8b54, 0x8b55, - 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, - 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, - /* 0xf500 .. 0xf5ff */ - 0x8b66, 0x8b67, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6c, 0x8b6d, - 0x8b6e, 0x8b6f, 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75, - 0x8b76, 0x8b77, 0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, - 0x8b7e, 0x8ba1, 0x8ba2, 0x8ba3, 0x8ba4, 0x8ba5, 0x8ba6, 0x8ba7, - 0x8ba8, 0x8ba9, 0x8baa, 0x8bab, 0x8bac, 0x8bad, 0x8bae, 0x8baf, - 0x8bb0, 0x8bb1, 0x8bb2, 0x8bb3, 0x8bb4, 0x8bb5, 0x8bb6, 0x8bb7, - 0x8bb8, 0x8bb9, 0x8bba, 0x8bbb, 0x8bbc, 0x8bbd, 0x8bbe, 0x8bbf, - 0x8bc0, 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, 0x8bc6, 0x8bc7, - 0x8bc8, 0x8bc9, 0x8bca, 0x8bcb, 0x8bcc, 0x8bcd, 0x8bce, 0x8bcf, - 0x8bd0, 0x8bd1, 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd5, 0x8bd6, 0x8bd7, - 0x8bd8, 0x8bd9, 0x8bda, 0x8bdb, 0x8bdc, 0x8bdd, 0x8bde, 0x8bdf, - 0x8be0, 0x8be1, 0x8be2, 0x8be3, 0x8be4, 0x8be5, 0x8be6, 0x8be7, - 0x8be8, 0x8be9, 0x8bea, 0x8beb, 0x8bec, 0x8bed, 0x8bee, 0x8bef, - 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3, 0x8bf4, 0x8bf5, 0x8bf6, 0x8bf7, - 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb, 0x8bfc, 0x8bfd, 0x8bfe, 0x8c40, - 0x8c41, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c46, 0x8c47, 0x8c48, - 0x8c49, 0x8c4a, 0x8c4b, 0x8c4c, 0x8c4d, 0x8c4e, 0x8c4f, 0x8c50, - 0x8c51, 0x8c52, 0x8c53, 0x8c54, 0x8c55, 0x8c56, 0x8c57, 0x8c58, - 0x8c59, 0x8c5a, 0x8c5b, 0x8c5c, 0x8c5d, 0x8c5e, 0x8c5f, 0x8c60, - 0x8c61, 0x8c62, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67, 0x8c68, - 0x8c69, 0x8c6a, 0x8c6b, 0x8c6c, 0x8c6d, 0x8c6e, 0x8c6f, 0x8c70, - 0x8c71, 0x8c72, 0x8c73, 0x8c74, 0x8c75, 0x8c76, 0x8c77, 0x8c78, - 0x8c79, 0x8c7a, 0x8c7b, 0x8c7c, 0x8c7d, 0x8c7e, 0x8ca1, 0x8ca2, - 0x8ca3, 0x8ca4, 0x8ca5, 0x8ca6, 0x8ca7, 0x8ca8, 0x8ca9, 0x8caa, - 0x8cab, 0x8cac, 0x8cad, 0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0x8cb2, - 0x8cb3, 0x8cb4, 0x8cb5, 0x8cb6, 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, - 0x8cbb, 0x8cbc, 0x8cbd, 0x8cbe, 0x8cbf, 0x8cc0, 0x8cc1, 0x8cc2, - 0x8cc3, 0x8cc4, 0x8cc5, 0x8cc6, 0x8cc7, 0x8cc8, 0x8cc9, 0x8cca, - 0x8ccb, 0x8ccc, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0, 0x8cd1, 0x8cd2, - 0x8cd3, 0x8cd4, 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, - 0x8cdb, 0x8cdc, 0x8cdd, 0x8cde, 0x8cdf, 0x8ce0, 0x8ce1, 0x8ce2, - 0x8ce3, 0x8ce4, 0x8ce5, 0x8ce6, 0x8ce7, 0x8ce8, 0x8ce9, 0x8cea, - /* 0xf600 .. 0xf6ff */ - 0x8ceb, 0x8cec, 0x8ced, 0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf2, - 0x8cf3, 0x8cf4, 0x8cf5, 0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, - 0x8cfb, 0x8cfc, 0x8cfd, 0x8cfe, 0x8d40, 0x8d41, 0x8d42, 0x8d43, - 0x8d44, 0x8d45, 0x8d46, 0x8d47, 0x8d48, 0x8d49, 0x8d4a, 0x8d4b, - 0x8d4c, 0x8d4d, 0x8d4e, 0x8d4f, 0x8d50, 0x8d51, 0x8d52, 0x8d53, - 0x8d54, 0x8d55, 0x8d56, 0x8d57, 0x8d58, 0x8d59, 0x8d5a, 0x8d5b, - 0x8d5c, 0x8d5d, 0x8d5e, 0x8d5f, 0x8d60, 0x8d61, 0x8d62, 0x8d63, - 0x8d64, 0x8d65, 0x8d66, 0x8d67, 0x8d68, 0x8d69, 0x8d6a, 0x8d6b, - 0x8d6c, 0x8d6d, 0x8d6e, 0x8d6f, 0x8d70, 0x8d71, 0x8d72, 0x8d73, - 0x8d74, 0x8d75, 0x8d76, 0x8d77, 0x8d78, 0x8d79, 0x8d7a, 0x8d7b, - 0x8d7c, 0x8d7d, 0x8d7e, 0x8da1, 0x8da2, 0x8da3, 0x8da4, 0x8da5, - 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0x8dab, 0x8dac, 0x8dad, - 0x8dae, 0x8daf, 0x8db0, 0x8db1, 0x8db2, 0x8db3, 0x8db4, 0x8db5, - 0x8db6, 0x8db7, 0x8db8, 0x8db9, 0x8dba, 0x8dbb, 0x8dbc, 0x8dbd, - 0x8dbe, 0x8dbf, 0x8dc0, 0x8dc1, 0x8dc2, 0x8dc3, 0x8dc4, 0x8dc5, - 0x8dc6, 0x8dc7, 0x8dc8, 0x8dc9, 0x8dca, 0x8dcb, 0x8dcc, 0x8dcd, - 0x8dce, 0x8dcf, 0x8dd0, 0x8dd1, 0x8dd2, 0x8dd3, 0x8dd4, 0x8dd5, - 0x8dd6, 0x8dd7, 0x8dd8, 0x8dd9, 0x8dda, 0x8ddb, 0x8ddc, 0x8ddd, - 0x8dde, 0x8ddf, 0x8de0, 0x8de1, 0x8de2, 0x8de3, 0x8de4, 0x8de5, - 0x8de6, 0x8de7, 0x8de8, 0x8de9, 0x8dea, 0x8deb, 0x8dec, 0x8ded, - 0x8dee, 0x8def, 0x8df0, 0x8df1, 0x8df2, 0x8df3, 0x8df4, 0x8df5, - 0x8df6, 0x8df7, 0x8df8, 0x8df9, 0x8dfa, 0x8dfb, 0x8dfc, 0x8dfd, - 0x8dfe, 0xc6a1, 0xc6a2, 0xc6a3, 0xc6a4, 0xc6a5, 0xc6a6, 0xc6a7, - 0xc6a8, 0xc6a9, 0xc6aa, 0xc6ab, 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, - 0xc6b0, 0xc6b1, 0xc6b2, 0xc6b3, 0xc6b4, 0xc6b5, 0xc6b6, 0xc6b7, - 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb, 0xc6bc, 0xc6bd, 0xc6be, 0xc6bf, - 0xc6c0, 0xc6c1, 0xc6c2, 0xc6c3, 0xc6c4, 0xc6c5, 0xc6c6, 0xc6c7, - 0xc6c8, 0xc6c9, 0xc6ca, 0xc6cb, 0xc6cc, 0xc6cd, 0xc6ce, 0xc6cf, - 0xc6d0, 0xc6d1, 0xc6d2, 0xc6d3, 0xc6d4, 0xc6d5, 0xc6d6, 0xc6d7, - 0xc6d8, 0xc6d9, 0xc6da, 0xc6db, 0xc6dc, 0xc6dd, 0xc6de, 0xc6df, - 0xc6e0, 0xc6e1, 0xc6e2, 0xc6e3, 0xc6e4, 0xc6e5, 0xc6e6, 0xc6e7, - 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb, 0xc6ec, 0xc6ed, 0xc6ee, 0xc6ef, - /* 0xf700 .. 0xf7ff */ - 0xc6f0, 0xc6f1, 0xc6f2, 0xc6f3, 0xc6f4, 0xc6f5, 0xc6f6, 0xc6f7, - 0xc6f8, 0xc6f9, 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fd, 0xc6fe, 0xc740, - 0xc741, 0xc742, 0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, - 0xc749, 0xc74a, 0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f, 0xc750, - 0xc751, 0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, - 0xc759, 0xc75a, 0xc75b, 0xc75c, 0xc75d, 0xc75e, 0xc75f, 0xc760, - 0xc761, 0xc762, 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc768, - 0xc769, 0xc76a, 0xc76b, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, - 0xc771, 0xc772, 0xc773, 0xc774, 0xc775, 0xc776, 0xc777, 0xc778, - 0xc779, 0xc77a, 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc7a1, 0xc7a2, - 0xc7a3, 0xc7a4, 0xc7a5, 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, - 0xc7ab, 0xc7ac, 0xc7ad, 0xc7ae, 0xc7af, 0xc7b0, 0xc7b1, 0xc7b2, - 0xc7b3, 0xc7b4, 0xc7b5, 0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, - 0xc7bb, 0xc7bc, 0xc7bd, 0xc7be, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c2, - 0xc7c3, 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0xc7c8, 0xc7c9, 0xc7ca, - 0xc7cb, 0xc7cc, 0xc7cd, 0xc7ce, 0xc7cf, 0xc7d0, 0xc7d1, 0xc7d2, - 0xc7d3, 0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d8, 0xc7d9, 0xc7da, - 0xc7db, 0xc7dc, 0xc7dd, 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, - 0xc7e3, 0xc7e4, 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e8, 0xc7e9, 0xc7ea, - 0xc7eb, 0xc7ec, 0xc7ed, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, - 0xc7f3, 0xc7f4, 0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7f9, 0xc7fa, - 0xc7fb, 0xc7fc, 0xc7fd, 0xc7fe, 0xc840, 0xc841, 0xc842, 0xc843, - 0xc844, 0xc845, 0xc846, 0xc847, 0xc848, 0xc849, 0xc84a, 0xc84b, - 0xc84c, 0xc84d, 0xc84e, 0xc84f, 0xc850, 0xc851, 0xc852, 0xc853, - 0xc854, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859, 0xc85a, 0xc85b, - 0xc85c, 0xc85d, 0xc85e, 0xc85f, 0xc860, 0xc861, 0xc862, 0xc863, - 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869, 0xc86a, 0xc86b, - 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc870, 0xc871, 0xc872, 0xc873, - 0xc874, 0xc875, 0xc876, 0xc877, 0xc878, 0xc879, 0xc87a, 0xc87b, - 0xc87c, 0xc87d, 0xc87e, 0xc8a1, 0xc8a2, 0xc8a3, 0xc8a4, 0xc8a5, - 0xc8a6, 0xc8a7, 0xc8a8, 0xc8a9, 0xc8aa, 0xc8ab, 0xc8ac, 0xc8ad, - 0xc8ae, 0xc8af, 0xc8b0, 0xc8b1, 0xc8b2, 0xc8b3, 0xc8b4, 0xc8b5, - /* 0xf800 .. 0xf8ff */ - 0xc8b6, 0xc8b7, 0xc8b8, 0xc8b9, 0xc8ba, 0xc8bb, 0xc8bc, 0xc8bd, - 0xc8be, 0xc8bf, 0xc8c0, 0xc8c1, 0xc8c2, 0xc8c3, 0xc8c4, 0xc8c5, - 0xc8c6, 0xc8c7, 0xc8c8, 0xc8c9, 0xc8ca, 0xc8cb, 0xc8cc, 0xc8cd, - 0xc8ce, 0xc8cf, 0xc8d0, 0xc8d1, 0xc8d2, 0xc8d3, 0xc8d4, 0xc8d5, - 0xc8d6, 0xc8d7, 0xc8d8, 0xc8d9, 0xc8da, 0xc8db, 0xc8dc, 0xc8dd, - 0xc8de, 0xc8df, 0xc8e0, 0xc8e1, 0xc8e2, 0xc8e3, 0xc8e4, 0xc8e5, - 0xc8e6, 0xc8e7, 0xc8e8, 0xc8e9, 0xc8ea, 0xc8eb, 0xc8ec, 0xc8ed, - 0xc8ee, 0xc8ef, 0xc8f0, 0xc8f1, 0xc8f2, 0xc8f3, 0xc8f4, 0xc8f5, - 0xc8f6, 0xc8f7, 0xc8f8, 0xc8f9, 0xc8fa, 0xc8fb, 0xc8fc, 0xc8fd, - 0xc8fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x00ff, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xf900 .. 0xf9ff */ - 0xb05a, 0xa7f3, 0xa8ae, 0xb8eb, 0xb7c6, 0xa6ea, 0xa579, 0xc074, - 0xc074, 0xabb4, 0xaaf7, 0xb3e2, 0xa960, 0xc369, 0xc4ee, 0xc3b9, - 0xc5da, 0xc1b3, 0xbb72, 0xc5de, 0xbcd6, 0xaca5, 0xaf4f, 0xaf5f, - 0xb8a8, 0xb954, 0xc064, 0xb6c3, 0xa75a, 0xc4e6, 0xc4ea, 0xc4f5, - 0xc67d, 0xb450, 0xc0dd, 0xc2c5, 0xc4b0, 0xa9d4, 0xc3be, 0xc4fa, - 0xb459, 0xaed4, 0xaef6, 0xaf54, 0x003f, 0xa8d3, 0xa74e, 0xb3d2, - 0xbedb, 0xc372, 0xc46c, 0xbf63, 0xa6d1, 0xc4aa, 0xb8b8, 0xb8f4, - 0xc553, 0xbe7c, 0xc64f, 0xb84c, 0xb853, 0xbaf1, 0xdb77, 0xbffd, - 0xb3c0, 0xbdd7, 0xc362, 0xa7cb, 0xc5a2, 0xc5a4, 0xa863, 0xbd55, - 0xb8ef, 0xb970, 0xc253, 0xb9f0, 0xbcd3, 0xb25c, 0xba7c, 0xb2d6, - 0xc15c, 0xadae, 0xb0c7, 0xa6d8, 0xbbfe, 0xade2, 0xb857, 0xbaf0, - 0xb5d9, 0xb3ae, 0xc5aa, 0xced4, 0xbcd6, 0xbfd5, 0xa4a6, 0xb9e7, - 0xabe3, 0xb276, 0xb2a7, 0xa55f, 0xeda8, 0xab4b, 0xb45f, 0xa4a3, - 0xaa63, 0xbcc6, 0xafc1, 0xb0d1, 0xb6eb, 0xacd9, 0xb8ad, 0xbba1, - 0xb1fe, 0xa8b0, 0xa848, 0xac42, 0xad59, 0xb1b0, 0xb2a4, 0xab47, - 0xa8e2, 0x003f, 0xb1e7, 0xc2b3, 0xa87d, 0xbdcc, 0xb671, 0xc079, - 0xa766, 0xa46b, 0xc366, 0xaec8, 0xc26f, 0xc472, 0xbe5b, 0xc67a, - 0xc452, 0xbea4, 0xa44f, 0xbee4, 0xbefa, 0xf765, 0xa67e, 0xbca6, - 0xc5ca, 0xbcbf, 0xbaa7, 0xb7d2, 0xe6a3, 0x003f, 0xbd6d, 0xc170, - 0xbdfb, 0xbdac, 0xb373, 0xc1e5, 0xa643, 0xa648, 0xab7c, 0xaf50, - 0xb5f5, 0xbba1, 0xb747, 0xa9c0, 0xb1c9, 0xc0d4, 0xc3ae, 0xc279, - 0xa54f, 0xcbf1, 0xb9e7, 0xc0ad, 0xccb0, 0xacc2, 0xbcfc, 0xb2dc, - 0xb2e2, 0xb961, 0xb973, 0xc646, 0xbbe2, 0xa8d2, 0xc2a7, 0xc4bf, - 0xc1f5, 0xb463, 0xa446, 0xb9b1, 0xbc64, 0xa7bf, 0xaec6, 0xbcd6, - 0xbf52, 0xc0f8, 0xe764, 0xbff1, 0xc073, 0xb777, 0xa8bf, 0xbc42, - 0xccd8, 0xac68, 0xac79, 0xb7c8, 0xaf5b, 0xaf64, 0xb2b8, 0xafc3, - 0xc3fe, 0xa4bb, 0xbcae, 0xb3b0, 0xaddb, 0xb15b, 0xb25f, 0xbdfc, - 0xabdf, 0xb758, 0xaedf, 0xb276, 0xb6a9, 0xa751, 0xa64f, 0xbc69, - 0xa9f6, 0xa7f5, 0xb1f9, 0xaa64, 0xb27a, 0xb567, 0xbfa9, 0x003f, - 0xb8cc, 0xa8bd, 0xc2f7, 0xb0ce, 0xb7c4, 0xa75b, 0xbf4d, 0xbf5a, - 0xc4a9, 0x003f, 0xc5ec, 0xc5ef, 0xaa4c, 0xb24f, 0xc17b, 0xa5df, - 0xb2c1, 0xb2c9, 0xaaac, 0xaaa5, 0xc3d1, 0xa4b0, 0xaff9, 0xa8eb, - /* 0xfa00 .. 0xfaff */ - 0xa4c1, 0xabd7, 0xa9dd, 0xbf7d, 0xa676, 0xac7d, 0xbcc9, 0xbfe7, - 0xa6e6, 0xadb0, 0xa8a3, 0xb9f8, 0xc94a, 0xddfc, 0x003f, 0x003f, - 0xb6ef, 0x003f, 0xb4b8, 0x003f, 0x003f, 0xe8f9, 0xbdde, 0xaf71, - 0x003f, 0xafab, 0xb2bb, 0xbad6, 0xb974, 0xbaeb, 0xa6d0, 0x003f, - 0x003f, 0x003f, 0xbdd1, 0x003f, 0x003f, 0xb668, 0xb3a3, 0x003f, - 0x003f, 0x003f, 0xb6ba, 0xb97d, 0xc05d, 0xc562, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xfe00 .. 0xfeff */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa14a, 0xa157, 0x003f, 0xa159, 0xa15b, 0xa15f, 0xa160, 0xa163, - 0xa164, 0xa167, 0xa168, 0xa16b, 0xa16c, 0xa16f, 0xa170, 0xa173, - 0xa174, 0xa177, 0xa178, 0xa17b, 0xa17c, 0x003f, 0x003f, 0x003f, - 0x003f, 0xa1c6, 0xa1c7, 0xa1ca, 0xa1cb, 0xa1c8, 0xa1c9, 0xa15c, - 0xa14d, 0xa14e, 0xa14f, 0x003f, 0xa151, 0xa152, 0xa153, 0xa154, - 0x003f, 0xa17d, 0xa17e, 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1cc, - 0xa1cd, 0xa1ce, 0xa1de, 0xa1df, 0xa1e0, 0xa1e1, 0xa1e2, 0x003f, - 0xa242, 0xa24c, 0xa24d, 0xa24e, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* 0xff00 .. 0xffff */ - 0x003f, 0xa149, 0xa1a8, 0xa1ad, 0xa243, 0xa248, 0xa1ae, 0xa1a6, - 0xa15d, 0xa15e, 0xa1af, 0xa1cf, 0xa141, 0xa1d0, 0xa144, 0xa1fe, - 0xa2af, 0xa2b0, 0xa2b1, 0xa2b2, 0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, - 0xa2b7, 0xa2b8, 0xa147, 0xa146, 0xa1d5, 0xa1d7, 0xa1d6, 0xa148, - 0xa249, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d2, 0xa2d3, 0xa2d4, 0xa2d5, - 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, 0xa2dd, - 0xa2de, 0xa2df, 0xa2e0, 0xa2e1, 0xa2e2, 0xa2e3, 0xa2e4, 0xa2e5, - 0xa2e6, 0xa2e7, 0xa2e8, 0xa165, 0xa240, 0xa166, 0xa173, 0xa1c4, - 0xa1a5, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, 0xa2ef, - 0xa2f0, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, 0xa2f7, - 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa2fe, 0xa340, - 0xa341, 0xa342, 0xa343, 0xa161, 0xa155, 0xa162, 0xa1e3, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0xa14e, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0xa246, 0xa247, 0x003f, 0xa1c3, 0x003f, 0xa244, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - /* defaults */ - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, - 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f -}; - -static const unsigned short uni2cp_high[256] = -{ - 0x0000, 0x7c00, 0x0100, 0x0200, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x0300, 0x0400, 0x0500, 0x0600, 0x7c00, 0x0700, 0x0800, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x0d00, 0x0e00, - 0x0f00, 0x1000, 0x1100, 0x1200, 0x1300, 0x1400, 0x1500, 0x1600, - 0x1700, 0x1800, 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, - 0x1f00, 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, - 0x2700, 0x2800, 0x2900, 0x2a00, 0x2b00, 0x2c00, 0x2d00, 0x2e00, - 0x2f00, 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, - 0x3700, 0x3800, 0x3900, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, - 0x3f00, 0x4000, 0x4100, 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, - 0x4700, 0x4800, 0x4900, 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, - 0x4f00, 0x5000, 0x5100, 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, - 0x5700, 0x5800, 0x5900, 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, - 0x5f00, 0x6000, 0x6100, 0x6200, 0x6300, 0x6400, 0x6500, 0x6600, - 0x6700, 0x6800, 0x6900, 0x6a00, 0x6b00, 0x6c00, 0x6d00, 0x6e00, - 0x6f00, 0x7000, 0x7100, 0x7200, 0x7300, 0x7400, 0x7500, 0x7600, - 0x7700, 0x7800, 0x7900, 0x7c00, 0x7c00, 0x7c00, 0x7a00, 0x7b00 -}; - -const struct dbcs_table cptable_950 = -{ - { 950, 2, 0x003f, 0x003f, "ANSI/OEM Traditional Chinese Big5" }, - cp2uni, - cp2uni_leadbytes, - uni2cp_low, - uni2cp_high, - { - 0x81, 0xfe, 0x00, 0x00 - } -}; diff --git a/reactos/tools/unicode/casemap.c b/reactos/tools/unicode/casemap.c deleted file mode 100644 index 56371283ac2..00000000000 --- a/reactos/tools/unicode/casemap.c +++ /dev/null @@ -1,1992 +0,0 @@ -/* Unicode case mappings */ -/* Automatically generated; DO NOT EDIT!! */ - -#include "wine/unicode.h" - -const WCHAR wine_casemap_lower[3802] = -{ - /* index */ - 0x01bf, 0x02bf, 0x03bf, 0x044f, 0x054f, 0x064f, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x06af, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x07af, 0x08ae, - 0x0100, 0x09ab, 0x0100, 0x0100, 0x0a2f, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0b2f, 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, 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, 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, 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, 0x0c1d, 0x0cfb, - 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, 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, 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, 0x0dda, - /* defaults */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0041 .. 0x00ff */ - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0100 .. 0x01ff */ - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0xff39, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, - 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0xff87, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, - 0x0000, 0x00d2, 0x0001, 0x0000, 0x0001, 0x0000, 0x00ce, 0x0001, - 0x0000, 0x00cd, 0x00cd, 0x0001, 0x0000, 0x0000, 0x004f, 0x00ca, - 0x00cb, 0x0001, 0x0000, 0x00cd, 0x00cf, 0x0000, 0x00d3, 0x00d1, - 0x0001, 0x0000, 0x0000, 0x0000, 0x00d3, 0x00d5, 0x0000, 0x00d6, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x00da, 0x0001, - 0x0000, 0x00da, 0x0000, 0x0000, 0x0001, 0x0000, 0x00da, 0x0001, - 0x0000, 0x00d9, 0x00d9, 0x0001, 0x0000, 0x0001, 0x0000, 0x00db, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0001, 0x0000, 0x0002, - 0x0001, 0x0000, 0x0002, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0000, 0x0002, 0x0001, 0x0000, 0x0001, 0x0000, 0xff9f, 0xffc8, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - /* 0x0200 .. 0x02ff */ - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0xff7e, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x2a2b, 0x0001, 0x0000, 0xff5d, 0x2a28, 0x0000, - 0x0000, 0x0001, 0x0000, 0xff3d, 0x0045, 0x0047, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0370 .. 0x03ff */ - 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0026, 0x0000, - 0x0025, 0x0025, 0x0025, 0x0000, 0x0040, 0x0000, 0x003f, 0x003f, - 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xffc4, 0x0000, 0x0000, 0x0001, - 0x0000, 0xfff9, 0x0001, 0x0000, 0x0000, 0xff7e, 0xff7e, 0xff7e, - /* 0x0400 .. 0x04ff */ - 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, - 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x000f, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - /* 0x0500 .. 0x05ff */ - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x10a0 .. 0x10ff */ - 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, - 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, - 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, - 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, - 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xe241, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - /* 0x1f01 .. 0x1fff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, - 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, - 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, - 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, - 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 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, - 0xfff8, 0x0000, 0xfff8, 0x0000, 0xfff8, 0x0000, 0xfff8, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, - 0xfff8, 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, 0xfff8, - 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, - 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, - 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, - 0xfff8, 0xffb6, 0xffb6, 0xfff7, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffaa, - 0xffaa, 0xffaa, 0xffaa, 0xfff7, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, - 0xfff8, 0xff9c, 0xff9c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, - 0xfff8, 0xff90, 0xff90, 0xfff9, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xff80, - 0xff80, 0xff82, 0xff82, 0xfff7, 0x0000, 0x0000, 0x0000, - /* 0x2103 .. 0x21ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0xe2a3, 0x0000, 0x0000, 0x0000, 0xdf41, - 0xdfba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001c, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x247c .. 0x24ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, - 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, - 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, - 0x001a, 0x001a, 0x001a, 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2c00 .. 0x2cff */ - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0000, 0xd609, 0xf11a, 0xd619, 0x0000, 0x0000, 0x0001, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0xd5e4, 0xd603, 0xd5e1, - 0xd5e2, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd5c1, 0xd5c1, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xa612 .. 0xa6ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xa722 .. 0xa7ff */ - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, - 0x0000, 0x0001, 0x0000, 0x75fc, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0001, 0x0000, 0x5ad8, 0x0000, 0x0000, 0x0001, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xff21 .. 0xffff */ - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 -}; -const WCHAR wine_casemap_upper[3994] = -{ - /* index */ - 0x019f, 0x029f, 0x039f, 0x045a, 0x0556, 0x0656, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x06dd, 0x07dc, 0x08dc, - 0x0100, 0x09d0, 0x0100, 0x0100, 0x0a55, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0b3f, 0x0c3f, 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, 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, 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, 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, 0x0cfe, 0x0ddb, - 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, 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, 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, 0x0e9a, - /* defaults */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0061 .. 0x00ff */ - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x02e7, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0x0000, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0x0079, - /* 0x0100 .. 0x01ff */ - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xff18, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0xfed4, - 0x00c3, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0061, 0x0000, 0x0000, - 0x0000, 0xffff, 0x00a3, 0x0000, 0x0000, 0x0000, 0x0082, 0x0000, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0038, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0xfffe, 0x0000, - 0xffff, 0xfffe, 0x0000, 0xffff, 0xfffe, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0xffb1, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0x0000, 0xffff, 0xfffe, 0x0000, 0xffff, 0x0000, 0x0000, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - /* 0x0200 .. 0x02ff */ - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0x0000, 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, 0xffff, 0x0000, 0x0000, 0x2a3f, - 0x2a3f, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x2a1f, 0x2a1c, 0x2a1e, 0xff2e, 0xff32, 0x0000, 0xff33, 0xff33, - 0x0000, 0xff36, 0x0000, 0xff35, 0x0000, 0x0000, 0x0000, 0x0000, - 0xff33, 0x0000, 0x0000, 0xff31, 0x0000, 0xa528, 0x0000, 0x0000, - 0xff2f, 0xff2d, 0x0000, 0x29f7, 0x0000, 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, 0x0000, - 0xff26, 0xffbb, 0xff27, 0xff27, 0xffb9, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xff25, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0345 .. 0x03ff */ - 0x0054, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, - 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0082, 0x0082, - 0x0082, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffda, - 0xffdb, 0xffdb, 0xffdb, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe1, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffc0, - 0xffc1, 0xffc1, 0x0000, 0xffc2, 0xffc7, 0x0000, 0x0000, 0x0000, - 0xffd1, 0xffca, 0xfff8, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0xffaa, 0xffb0, 0x0007, 0x0000, 0x0000, - 0xffa0, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, - 0x0000, 0x0000, 0x0000, - /* 0x0404 .. 0x04ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, - 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, - 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 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, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0xfff1, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, - /* 0x0500 .. 0x05ff */ - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1d79 .. 0x1dff */ - 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, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1e01 .. 0x1eff */ - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 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, 0xffc5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - /* 0x1f00 .. 0x1fff */ - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0008, 0x0000, 0x0008, 0x0000, 0x0008, 0x0000, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x004a, 0x004a, 0x0056, 0x0056, 0x0056, 0x0056, 0x0064, 0x0064, - 0x0080, 0x0080, 0x0070, 0x0070, 0x007e, 0x007e, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xe3db, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0007, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x210c .. 0x21ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xffe4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xfff0, 0xfff0, 0xfff0, 0xfff0, - 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, - 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0x0000, 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, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x247b .. 0x24ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe6, 0xffe6, 0xffe6, - 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, - 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, - 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2c16 .. 0x2cff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xd5d5, - 0xd5d8, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 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, 0xffff, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x2d00 .. 0x2dff */ - 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, - 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, - 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, - 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, - 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xa641 .. 0xa6ff */ - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 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, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xffff, 0x0000, 0xffff, 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xa723 .. 0xa7ff */ - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 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, 0xffff, - 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, - 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 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, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xff41 .. 0xffff */ - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 -}; -const WCHAR wine_digitmap[5837] = -{ - /* index */ - 0x01d0, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x028a, 0x0384, - 0x0100, 0x044e, 0x053e, 0x062e, 0x071e, 0x080e, 0x08be, 0x099e, - 0x0a5e, 0x0100, 0x0100, 0x0af8, 0x0100, 0x0100, 0x0100, 0x0b6a, - 0x0c5a, 0x0d14, 0x0def, 0x0e9f, 0x0f5f, 0x0100, 0x0100, 0x0100, - 0x0fef, 0x0100, 0x0100, 0x0100, 0x108f, 0x0100, 0x0100, 0x118f, - 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, 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, 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, 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, 0x0100, 0x0100, 0x126f, 0x0100, - 0x129f, 0x139f, 0x1479, 0x14d3, 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, 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, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x15cd, - /* defaults */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0030 .. 0x00ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xff80, 0xff80, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xff78, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0646 .. 0x06ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, - 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xf940, 0xf940, 0xf940, 0xf940, 0xf940, 0xf940, - 0xf940, 0xf940, 0xf940, 0xf940, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x0706 .. 0x07ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xf870, 0xf870, 0xf870, 0xf870, 0xf870, 0xf870, - 0xf870, 0xf870, 0xf870, 0xf870, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x0936 .. 0x09ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, - 0xf6ca, 0xf6ca, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, - 0xf64a, 0xf64a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x0a10 .. 0x0aff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf5ca, 0xf5ca, - 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf54a, 0xf54a, - 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0b10 .. 0x0bff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf4ca, 0xf4ca, - 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf44a, 0xf44a, - 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0c10 .. 0x0cff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf3ca, 0xf3ca, - 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf34a, 0xf34a, - 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0d10 .. 0x0dff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf2ca, 0xf2ca, - 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0e50 .. 0x0eff */ - 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, - 0xf1e0, 0xf1e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, - 0xf160, 0xf160, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0f20 .. 0x0fff */ - 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, - 0xf110, 0xf110, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1040 .. 0x10ff */ - 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, - 0xeff0, 0xeff0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xefa0, 0xefa0, 0xefa0, 0xefa0, 0xefa0, 0xefa0, 0xefa0, 0xefa0, - 0xefa0, 0xefa0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1366 .. 0x13ff */ - 0x0000, 0x0000, 0x0000, 0xecc8, 0xecc8, 0xecc8, 0xecc8, 0xecc8, - 0xecc8, 0xecc8, 0xecc8, 0xecc8, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x178e .. 0x17ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xe850, 0xe850, 0xe850, 0xe850, 0xe850, 0xe850, - 0xe850, 0xe850, 0xe850, 0xe850, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x1810 .. 0x18ff */ - 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, - 0xe820, 0xe820, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1946 .. 0x19ff */ - 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, - 0xe6ea, 0xe6ea, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xe660, 0xe660, 0xe660, 0xe660, 0xe660, 0xe660, - 0xe660, 0xe660, 0xe660, 0xe660, 0xe657, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x1a25 .. 0x1aff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0xe5b0, 0xe5b0, 0xe5b0, 0xe5b0, 0xe5b0, - 0xe5b0, 0xe5b0, 0xe5b0, 0xe5b0, 0xe5b0, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0xe5a0, 0xe5a0, 0xe5a0, 0xe5a0, 0xe5a0, - 0xe5a0, 0xe5a0, 0xe5a0, 0xe5a0, 0xe5a0, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, - /* 0x1b50 .. 0x1bff */ - 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, - 0xe4e0, 0xe4e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xe480, 0xe480, 0xe480, 0xe480, 0xe480, 0xe480, 0xe480, 0xe480, - 0xe480, 0xe480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1c40 .. 0x1cff */ - 0xe3f0, 0xe3f0, 0xe3f0, 0xe3f0, 0xe3f0, 0xe3f0, 0xe3f0, 0xe3f0, - 0xe3f0, 0xe3f0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xe3e0, 0xe3e0, 0xe3e0, 0xe3e0, 0xe3e0, 0xe3e0, 0xe3e0, 0xe3e0, - 0xe3e0, 0xe3e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2070 .. 0x20ff */ - 0xdfc0, 0x0000, 0x0000, 0x0000, 0xdfc0, 0xdfc0, 0xdfc0, 0xdfc0, - 0xdfc0, 0xdfc0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, - 0xdfb0, 0xdfb0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2460 .. 0x24ff */ - 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, - 0xdbd1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xdbbd, 0xdbbd, 0xdbbd, 0xdbbd, - 0xdbbd, 0xdbbd, 0xdbbd, 0xdbbd, 0xdbbd, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, - 0xdba9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xdb46, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xdb3c, 0xdb3c, 0xdb3c, - 0xdb3c, 0xdb3c, 0xdb3c, 0xdb3c, 0xdb3c, 0xdb3c, 0x0000, 0xdb31, - /* 0x2700 .. 0x27ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd8bb, 0xd8bb, - 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0x0000, - 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, - 0xd8b1, 0x0000, 0xd8a7, 0xd8a7, 0xd8a7, 0xd8a7, 0xd8a7, 0xd8a7, - 0xd8a7, 0xd8a7, 0xd8a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xa620 .. 0xa6ff */ - 0x5a10, 0x5a10, 0x5a10, 0x5a10, 0x5a10, 0x5a10, 0x5a10, 0x5a10, - 0x5a10, 0x5a10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xa8d0 .. 0xa8ff */ - 0x5760, 0x5760, 0x5760, 0x5760, 0x5760, 0x5760, 0x5760, 0x5760, - 0x5760, 0x5760, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xa900 .. 0xa9ff */ - 0x5730, 0x5730, 0x5730, 0x5730, 0x5730, 0x5730, 0x5730, 0x5730, - 0x5730, 0x5730, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x5660, 0x5660, 0x5660, 0x5660, 0x5660, 0x5660, 0x5660, 0x5660, - 0x5660, 0x5660, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xaa26 .. 0xaaff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x55e0, 0x55e0, 0x55e0, 0x55e0, 0x55e0, 0x55e0, - 0x55e0, 0x55e0, 0x55e0, 0x55e0, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0xaba6 .. 0xabff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x5440, 0x5440, 0x5440, 0x5440, 0x5440, 0x5440, - 0x5440, 0x5440, 0x5440, 0x5440, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0xff06 .. 0xffff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000 -}; -const WCHAR wine_compatmap[1497] = -{ - /* index */ - 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, 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, 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, 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, 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, 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, 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, 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, - 0x0100, 0x0200, 0x0300, 0x0100, 0x0100, 0x0100, 0x03da, 0x04d9, - /* defaults */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xf900 .. 0xf9ff */ - 0x9348, 0x6df3, 0x95c8, 0x93c5, 0x75cd, 0x552d, 0x5adf, 0xa695, - 0xa694, 0x6048, 0x98c7, 0x5c7c, 0x603c, 0x68e9, 0x7d5b, 0x8676, - 0x8d2f, 0x8ea9, 0x8fe6, 0x977c, 0x70ee, 0x7406, 0x77c3, 0x7ac7, - 0x8b25, 0x9851, 0xa0d7, 0x5567, 0x5a59, 0x71e7, 0x78fd, 0x8d0e, - 0xa4fe, 0x642f, 0x76c9, 0x8caa, 0x9040, 0x69a4, 0x88b2, 0x8ef8, - 0x65a2, 0x6dee, 0x7440, 0x79d1, 0x97a2, 0x5659, 0x5889, 0x59af, - 0x6b94, 0x71a2, 0x78de, 0x7db4, 0x86cd, 0x8cd1, 0x8d26, 0x94b8, - 0x9dfa, 0xa236, 0xa4c0, 0x7f51, 0x8043, 0x8463, 0x8a8b, 0x99c5, - 0xa53f, 0x9195, 0x5f9d, 0x65c1, 0x831c, 0x8739, 0x791c, 0x7f83, - 0x937a, 0x9dae, 0x5f8e, 0x6317, 0x70c7, 0x748d, 0x75c1, 0x83e0, - 0x84e7, 0x9cfa, 0x5980, 0x8738, 0x5888, 0x5877, 0x80c6, 0x8467, - 0x8a99, 0x9d1c, 0x9226, 0x6974, 0x70a6, 0x91a1, 0x54db, 0x6288, - 0x66b2, 0x7a26, 0x7c0e, 0x59b4, 0x7f97, 0x565a, 0x6643, 0x54a6, - 0x7364, 0x6c0f, 0x83b8, 0x5a58, 0x5ef2, 0x7d94, 0x8adb, 0x913b, - 0x724a, 0x963f, 0x7316, 0x698b, 0x8971, 0x6a2b, 0x7bef, 0x5537, - 0x57f1, 0x5850, 0x6f07, 0x836c, 0x88f3, 0x9155, 0x9851, 0x5976, - 0x5ac2, 0x5ff2, 0x656a, 0x6c42, 0x767a, 0x7fa5, 0x9c27, 0xa0e3, - 0xa50f, 0xa545, 0x5911, 0x6d3b, 0x71eb, 0x95d5, 0x64e6, 0x6801, - 0x6870, 0x6b09, 0x7591, 0x77b6, 0x7af5, 0x8035, 0x845e, 0x86d8, - 0x958e, 0x8b55, 0x9689, 0x99af, 0x587b, 0x5906, 0x5b1f, 0x7729, - 0x8f22, 0x9109, 0x6527, 0x6652, 0x69d7, 0x7209, 0x8298, 0x79ce, - 0x553c, 0x5d50, 0x623d, 0x640f, 0x6670, 0x7a05, 0x7abb, 0x85eb, - 0x8696, 0x9883, 0x9d44, 0x9d95, 0x9e64, 0x55d6, 0x7ff8, 0x97fd, - 0x9d00, 0x6728, 0x54cc, 0x571f, 0x6232, 0x6282, 0x6bdb, 0x7043, - 0x780e, 0x7c81, 0x8b3a, 0x96b9, 0xa5c9, 0x6cc3, 0x9c68, 0x58c2, - 0x6db3, 0x6e2a, 0x7377, 0x74d1, 0x7a3d, 0x7b8c, 0x7e9d, 0x8341, - 0x9e8e, 0x579c, 0x685c, 0x9ca5, 0x5657, 0x6344, 0x7414, 0x9553, - 0x65b3, 0x676b, 0x6e3d, 0x79ac, 0x9caa, 0x584c, 0x5a31, 0x6286, - 0x6c33, 0x6d6d, 0x6ec6, 0x7302, 0x7a22, 0x7bfd, 0x8593, 0x8ee8, - 0x8ef9, 0x97e3, 0x9cf8, 0x5954, 0x74ce, 0x5a30, 0x77e2, 0x7aa9, - 0x8c0a, 0x9cb2, 0xa265, 0xa4ac, 0x6da3, 0x73d6, 0x87f2, 0x80d4, - 0x8128, 0x8299, 0x78c6, 0x769e, 0x915c, 0x54c3, 0x8938, 0x583b, - /* 0xfa00 .. 0xfaff */ - 0x5807, 0x64a5, 0x68d1, 0x82d3, 0x6181, 0x7319, 0x6cae, 0x9534, - 0x8e44, 0x9c44, 0x8f81, 0x64c8, 0x5734, 0x5bb3, 0x0000, 0x0000, - 0x5e4a, 0x0000, 0x6c62, 0x0000, 0x0000, 0x57c9, 0x7914, 0x7cb3, - 0x7f24, 0x7f45, 0x7f4b, 0x7f74, 0x9d3a, 0x82a1, 0x859f, 0x0000, - 0x8bf2, 0x0000, 0x90d6, 0x0000, 0x0000, 0x9613, 0x96d7, 0x0000, - 0x0000, 0x0000, 0x9ec5, 0x9ed1, 0x9efc, 0xa387, 0x0000, 0x0000, - 0x557e, 0x56b6, 0x571b, 0x5896, 0x58b0, 0x591c, 0x5b67, 0x5bcf, - 0x5c30, 0x5e07, 0x5e6e, 0x6229, 0x6232, 0x6657, 0x672a, 0x674f, - 0x67b2, 0x6b0e, 0x6ba0, 0x6c4e, 0x6e41, 0x7332, 0x73d4, 0x74db, - 0x7726, 0x77e2, 0x79d8, 0x7e46, 0x7ef2, 0x7efc, 0x7efa, 0x7f01, - 0x7f06, 0x7f0c, 0x7f3b, 0x7f3b, 0x7fec, 0x802c, 0x816a, 0x839d, - 0x83b1, 0x83e8, 0x8518, 0x85aa, 0x8791, 0x881c, 0x881b, 0x89f8, - 0x8eb0, 0x8f35, 0x909f, 0x90d6, 0x926f, 0x92a3, 0x9550, 0x95d1, - 0x9c7b, 0x9d96, 0x9dd1, 0x660a, 0x4882, 0x87ab, 0x0000, 0x0000, - 0x53b6, 0x5744, 0x56f6, 0x550d, 0x56d1, 0x570b, 0x5851, 0x5883, - 0x5b25, 0x5adc, 0x5b1f, 0x5b67, 0x5dde, 0x5e36, 0x5ec6, 0x5ed5, - 0x5fe2, 0x60a7, 0x6450, 0x6456, 0x64e5, 0x6528, 0x6652, 0x66c7, - 0x6680, 0x6705, 0x66d6, 0x6767, 0x67a8, 0x6937, 0x698e, 0x69c3, - 0x6ac6, 0x6be3, 0x6c85, 0x6c88, 0x6cc2, 0x70e4, 0x7124, 0x72aa, - 0x7443, 0x7432, 0x7488, 0x7583, 0x76d2, 0x7d0a, 0x7797, 0x7810, - 0x788a, 0x79d0, 0x7a64, 0x7a98, 0x7b79, 0x7b7a, 0x7c24, 0x7c34, - 0x7c4c, 0x7ca1, 0x7c96, 0x7e21, 0x8005, 0x8113, 0x81cd, 0x82ac, - 0x8344, 0x848d, 0x8553, 0x889f, 0x893b, 0x8cc4, 0x8e8b, 0x8ecf, - 0x8ede, 0x9006, 0x903e, 0x9010, 0x9045, 0x9041, 0x902f, 0x907a, - 0x90ca, 0x9247, 0x9476, 0x95af, 0x96d5, 0x97b1, 0x9bb6, 0x9c1c, - 0x9c8e, 0x9d12, 0x9d35, 0x9d40, 0x9d6f, 0xa045, 0xa4ce, 0x2d7b, - 0x2d74, 0x3904, 0x40cb, 0x4545, 0x4565, 0x5774, 0x61fa, 0x83fc, - 0xa46b, 0xa4b5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xfe26 .. 0xfeff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x21f5, 0x21e3, 0x21e1, 0x022c, 0x022b, 0x01f3, - 0x01f3, 0x0244, 0x0245, 0x31db, 0x31db, 0x31d5, 0x31d5, 0x31cd, - 0x31cd, 0x31c9, 0x31c9, 0x31cb, 0x31cb, 0x31cb, 0x31cb, 0x0000, - 0x0000, 0x0214, 0x0215, 0x21f5, 0x21f4, 0x21f3, 0x21f2, 0x0212, - 0x0211, 0x0210, 0x01dc, 0x31b0, 0x01dc, 0x0000, 0x01e7, 0x01e5, - 0x01e9, 0x01ca, 0x21bc, 0x01cf, 0x01cf, 0x0220, 0x0221, 0x31b7, - 0x31b7, 0x01c4, 0x01c6, 0x01c9, 0x01c9, 0x01ca, 0x01d8, 0x01d9, - 0x01d7, 0x0000, 0x01f4, 0x01bb, 0x01bb, 0x01d5, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x07a1, 0x07a1, 0x07a0, 0x07a0, 0x079f, 0x079f, - 0x079e, 0x079e, 0x079d, 0x079d, 0x079c, 0x079b, 0x079a, 0x079a, - 0x0799, 0x0799, 0x0798, 0x0797, 0x0796, 0x0796, 0x0795, 0x0795, - 0x0794, 0x0793, 0x0792, 0x0792, 0x0791, 0x0790, 0x078f, 0x078f, - 0x078e, 0x078d, 0x078c, 0x078c, 0x078b, 0x078a, 0x0789, 0x0789, - 0x0788, 0x0787, 0x0786, 0x0786, 0x0785, 0x0785, 0x0784, 0x0784, - 0x0783, 0x0783, 0x0782, 0x0782, 0x0781, 0x0780, 0x077f, 0x077f, - 0x077e, 0x077d, 0x077c, 0x077c, 0x077b, 0x077a, 0x0779, 0x0779, - 0x0778, 0x0777, 0x0776, 0x0776, 0x0775, 0x0774, 0x0773, 0x0773, - 0x0772, 0x0771, 0x0770, 0x0770, 0x076f, 0x076e, 0x076d, 0x076d, - 0x076c, 0x076b, 0x076a, 0x0770, 0x076f, 0x076e, 0x076d, 0x076d, - 0x076c, 0x076b, 0x076a, 0x076a, 0x0769, 0x0768, 0x0767, 0x0767, - 0x0766, 0x0765, 0x0764, 0x0764, 0x0763, 0x0762, 0x0761, 0x0761, - 0x0760, 0x075f, 0x075e, 0x075e, 0x075d, 0x075c, 0x075b, 0x075b, - 0x075a, 0x075a, 0x0759, 0x0759, 0x0758, 0x0757, 0x0756, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0xff01 .. 0xffff */ - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x2a26, 0x2a26, - 0x30a1, 0x30aa, 0x30aa, 0x309d, 0x3196, 0x318c, 0x313a, 0x313b, - 0x313c, 0x313d, 0x313e, 0x3177, 0x3178, 0x3179, 0x3154, 0x318c, - 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3135, 0x3136, 0x3137, - 0x3138, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, - 0x3140, 0x3142, 0x3143, 0x3144, 0x3145, 0x3145, 0x3145, 0x3145, - 0x3145, 0x3145, 0x3147, 0x3149, 0x314b, 0x314d, 0x314f, 0x314f, - 0x314f, 0x314f, 0x314f, 0x3150, 0x3151, 0x3152, 0x3152, 0x3152, - 0x3152, 0x3152, 0x3152, 0x3153, 0x3156, 0x30fb, 0x30fb, 0x31c4, - 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, - 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, - 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, - 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x0000, 0x0000, - 0x0000, 0x318d, 0x318d, 0x318d, 0x318d, 0x318d, 0x318d, 0x0000, - 0x0000, 0x318b, 0x318b, 0x318b, 0x318b, 0x318b, 0x318b, 0x0000, - 0x0000, 0x3189, 0x3189, 0x3189, 0x3189, 0x3189, 0x3189, 0x0000, - 0x0000, 0x3187, 0x3187, 0x3187, 0x0000, 0x0000, 0x0000, 0x00c2, - 0x00c2, 0x00ca, 0x00cc, 0x00c2, 0x00c0, 0x20c3, 0x0000, 0x251a, - 0x21a7, 0x21a7, 0x21a7, 0x21a7, 0x25b3, 0x25dd, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 -}; diff --git a/reactos/tools/unicode/collation.c b/reactos/tools/unicode/collation.c deleted file mode 100644 index 465d740001b..00000000000 --- a/reactos/tools/unicode/collation.c +++ /dev/null @@ -1,1657 +0,0 @@ -/* Unicode collation element table */ -/* generated from http://www.unicode.org/reports/tr10/allkeys.txt */ -/* DO NOT EDIT!! */ - -const unsigned int collation_table[12800] = -{ - /* index */ - 0x00000200, 0x00000300, 0x00000400, 0x00000500, 0x00000600, 0x00000700, 0x00000800, 0x00000900, - 0x00000100, 0x00000a00, 0x00000b00, 0x00000c00, 0x00000d00, 0x00000e00, 0x00000f00, 0x00001000, - 0x00001100, 0x00001200, 0x00001300, 0x00001400, 0x00001500, 0x00001600, 0x00001700, 0x00001800, - 0x00001900, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00001a00, 0x00001b00, - 0x00001c00, 0x00001d00, 0x00001e00, 0x00001f00, 0x00002000, 0x00002100, 0x00002200, 0x00002300, - 0x00002400, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00002500, 0x00002600, - 0x00002700, 0x00002800, 0x00002900, 0x00002a00, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00002b00, 0x00002c00, 0x00002d00, 0x00002e00, 0x00002f00, 0x00003000, 0x00003100, - /* defaults */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0000 .. 0x00ff */ - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x02010111, 0x02020111, 0x02030111, 0x02040111, 0x02050111, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x02090111, 0x024b0111, 0x02700111, 0x02a90111, 0x09e00111, 0x02aa0111, 0x02a70111, 0x02690111, - 0x027a0111, 0x027b0111, 0x02a20111, 0x039f0111, 0x022d0111, 0x02210111, 0x02550111, 0x02a40111, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x02370111, 0x02350111, 0x03a30111, 0x03a40111, 0x03a50111, 0x024e0111, - 0x02a10111, 0x0a150151, 0x0a290141, 0x0a3d0151, 0x0a490151, 0x0a650151, 0x0a910151, 0x0a990151, - 0x0ab90151, 0x0ad30161, 0x0ae70141, 0x0af70141, 0x0b030161, 0x0b2b0151, 0x0b330151, 0x0b4b0161, - 0x0b670141, 0x0b730141, 0x0b7f0141, 0x0ba70151, 0x0bbf0151, 0x0bd70141, 0x0bef0151, 0x0bfb0141, - 0x0c030151, 0x0c070141, 0x0c130141, 0x027c0111, 0x02a60111, 0x027d0111, 0x020f0111, 0x021b0111, - 0x020c0111, 0x0a150111, 0x0a290111, 0x0a3d0111, 0x0a490111, 0x0a650111, 0x0a910111, 0x0a990111, - 0x0ab90111, 0x0ad30111, 0x0ae70111, 0x0af70111, 0x0b030111, 0x0b2b0111, 0x0b330111, 0x0b4b0111, - 0x0b670111, 0x0b730111, 0x0b7f0111, 0x0ba70111, 0x0bbf0111, 0x0bd70111, 0x0bef0111, 0x0bfb0111, - 0x0c030111, 0x0c070111, 0x0c130111, 0x027e0111, 0x03a70111, 0x027f0111, 0x03aa0111, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02060111, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x02090141, 0x024c0111, 0x09df0111, 0x09e10111, 0x09de0111, 0x09e20111, 0x03a80111, 0x029c0111, - 0x02140111, 0x029f0111, 0x0a150181, 0x02780111, 0x03a60111, 0x02200111, 0x02a00111, 0x02100111, - 0x030a0111, 0x03a00111, 0x0a0d0151, 0x0a0e0151, 0x020d0111, 0x0c9f0121, 0x029d0111, 0x025f0111, - 0x02190111, 0x0a0c0151, 0x0b4b01a1, 0x02790111, 0x0a0c0171, 0x0a0c0171, 0x0a0e0171, 0x024f0111, - 0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a190121, 0x0a3d0151, - 0x0a650151, 0x0a650151, 0x0a650151, 0x0a650151, 0x0ad30161, 0x0ad30161, 0x0ad30161, 0x0ad30161, - 0x0a5d0121, 0x0b330151, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x03a20111, - 0x0b530121, 0x0bd70141, 0x0bd70141, 0x0bd70141, 0x0bd70141, 0x0c070141, 0x0c3b0121, 0x0ba70131, - 0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a190111, 0x0a3d0111, - 0x0a650111, 0x0a650111, 0x0a650111, 0x0a650111, 0x0ad30111, 0x0ad30111, 0x0ad30111, 0x0ad30111, - 0x0a5d0111, 0x0b330111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x03a10111, - 0x0b530111, 0x0bd70111, 0x0bd70111, 0x0bd70111, 0x0bd70111, 0x0c070111, 0x0c3b0111, 0x0c070111, - /* 0x0100 .. 0x01ff */ - 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a3d0151, 0x0a3d0111, - 0x0a3d0151, 0x0a3d0111, 0x0a3d0151, 0x0a3d0111, 0x0a3d0151, 0x0a3d0111, 0x0a490151, 0x0a490111, - 0x0a4d0121, 0x0a4d0111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, - 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a990151, 0x0a990111, 0x0a990151, 0x0a990111, - 0x0a990151, 0x0a990111, 0x0a990151, 0x0a990111, 0x0ab90151, 0x0ab90111, 0x0ac50131, 0x0ac50111, - 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, - 0x0ad30161, 0x0ad70111, 0x0ad30181, 0x0ad30131, 0x0ae70141, 0x0ae70111, 0x0af70141, 0x0af70111, - 0x0b7b0111, 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b030181, - 0x0b030131, 0x0b0b0121, 0x0b0b0111, 0x0b330151, 0x0b330111, 0x0b330151, 0x0b330111, 0x0b330151, - 0x0b330111, 0x0c580121, 0x0b470121, 0x0b470111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0b4b0181, 0x0b4b0131, 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, - 0x0b7f0141, 0x0b7f0111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, - 0x0ba70151, 0x0ba70111, 0x0bbf0151, 0x0bbf0111, 0x0bbf0151, 0x0bbf0111, 0x0bc30121, 0x0bc30111, - 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, - 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bfb0141, 0x0bfb0111, 0x0c070141, 0x0c070111, - 0x0c070141, 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0ba70131, - 0x0a310111, 0x0a350121, 0x0a390121, 0x0a390111, 0x0c4f0121, 0x0c4f0111, 0x0b570121, 0x0a410121, - 0x0a410111, 0x0a510121, 0x0a550121, 0x0a590121, 0x0a590111, 0x0a610111, 0x0a690121, 0x0a6d0121, - 0x0a710121, 0x0a950121, 0x0a950111, 0x0aa50121, 0x0aad0121, 0x0ac10111, 0x0ae30121, 0x0adf0121, - 0x0afb0121, 0x0afb0111, 0x0b0f0111, 0x0b230111, 0x0be30121, 0x0b3b0121, 0x0b3f0111, 0x0b5b0121, - 0x0b4b0161, 0x0b4b0111, 0x0ab50121, 0x0ab50111, 0x0b6b0121, 0x0b6b0111, 0x0b830121, 0x0c470121, - 0x0c470111, 0x0baf0121, 0x0bb30111, 0x0bc70111, 0x0bcb0121, 0x0bcb0111, 0x0bcf0121, 0x0bd70141, - 0x0bd70111, 0x0beb0121, 0x0bf30121, 0x0c0f0121, 0x0c0f0111, 0x0c170121, 0x0c170111, 0x0c270121, - 0x0c2b0121, 0x0c2b0111, 0x0c2f0111, 0x0c430111, 0x0c4b0121, 0x0c4b0111, 0x0c610111, 0x0c3f0111, - 0x0c710111, 0x0c750111, 0x0c790111, 0x0c7d0111, 0x0a490171, 0x0a490171, 0x0a490131, 0x0b030181, - 0x0b030181, 0x0b030131, 0x0b330171, 0x0b330171, 0x0b330131, 0x0a150151, 0x0a150111, 0x0ad30161, - 0x0ad30111, 0x0b4b0161, 0x0b4b0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, - 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0a690111, 0x0a150151, 0x0a150111, - 0x0a150151, 0x0a150111, 0x0a190121, 0x0a190111, 0x0aa10121, 0x0aa10111, 0x0a990151, 0x0a990111, - 0x0af70141, 0x0af70111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0c270121, 0x0c270111, - 0x0ae70111, 0x0a490171, 0x0a490171, 0x0a490131, 0x0a990151, 0x0a990111, 0x0ac10121, 0x0c3f0121, - 0x0b330151, 0x0b330111, 0x0a150151, 0x0a150111, 0x0a190121, 0x0a190111, 0x0b530121, 0x0b530111, - /* 0x0200 .. 0x02ff */ - 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, - 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, - 0x0ba70151, 0x0ba70111, 0x0bbf0151, 0x0bbf0111, 0x0c370121, 0x0c370111, 0x0ab90151, 0x0ab90111, - 0xffffffff, 0xffffffff, 0x0b630121, 0x0b630111, 0x0c1b0121, 0x0c1b0111, 0x0a150151, 0x0a150111, - 0x0a650151, 0x0a650111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0c070141, 0x0c070111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a1d0111, 0x0a210111, 0x0a250111, 0x0a350111, 0x0b570111, 0x0a450111, 0x0a510111, 0x0a550111, - 0x0a750111, 0x0a6d0111, 0x0a790111, 0x0a710111, 0x0a7d0111, 0x0a810111, 0x0a850111, 0x0aef0111, - 0x0aa50111, 0x0ab10111, 0x0a9d0111, 0x0aad0111, 0x0a8d0111, 0x0bdf0111, 0x0ac90111, 0x0acd0111, - 0x0adf0111, 0x0ae30111, 0x0adb0111, 0x0b130111, 0x0b170111, 0x0b1b0111, 0x0b1f0111, 0x0be30111, - 0x0be70111, 0x0b2f0111, 0x0b3b0111, 0x0b430111, 0x0b370111, 0x0b5b0111, 0x0b4f0111, 0x0b5f0111, - 0x0b6f0111, 0x0b870111, 0x0b8b0111, 0x0b8f0111, 0x0b930111, 0x0b970111, 0x0b9b0111, 0x0b9f0111, - 0x0b830111, 0x0ba30111, 0x0bab0111, 0x0baf0111, 0x0af30111, 0x0bb70111, 0x0bbb0111, 0x0bd30111, - 0x0bcf0111, 0x0bdb0111, 0x0beb0111, 0x0bf30111, 0x0bf70111, 0x0bff0111, 0x0b270111, 0x0c0b0111, - 0x0c1f0111, 0x0c230111, 0x0c270111, 0x0c330111, 0x0c530111, 0x0c5b0111, 0x0c6d0111, 0x0c810111, - 0x0c850111, 0x0a2d0111, 0x0a890111, 0x0aa90111, 0x0abd0111, 0x0aeb0111, 0x0aff0111, 0x0b070111, - 0x0b770111, 0x0c650111, 0x0c690111, 0x0a490131, 0x0a490131, 0x0a490131, 0x0bbf0131, 0x0bbf0131, - 0x0bbf0131, 0x0a910131, 0x0b030131, 0x0b030131, 0x0c890111, 0x0c8d0111, 0xffffffff, 0xffffffff, - 0x0ab90191, 0x0ac90121, 0x0ae70171, 0x0b7f0191, 0x0b870121, 0x0b8f0121, 0x0ba30121, 0x0bfb0171, - 0x0c070171, 0x02e90111, 0x02eb0111, 0x0ad10111, 0x0c580111, 0x0ad20111, 0x0c5a0111, 0x0c5f0111, - 0x0c570111, 0x0c600111, 0x02ec0111, 0x02ed0111, 0x02ee0111, 0x02ef0111, 0x02f00111, 0x02f10111, - 0x02f20111, 0x02f30111, 0x02f40111, 0x02f50111, 0x02f60111, 0x02f70111, 0x02f80111, 0x02f90111, - 0x09d30111, 0x09d40111, 0x02fa0111, 0x02fb0111, 0x02fc0111, 0x02fd0111, 0x02fe0111, 0x02ff0111, - 0x02120111, 0x02130111, 0x02150111, 0x021a0111, 0x020e0111, 0x02160111, 0x03000111, 0xffffffff, - 0x0aad0131, 0x0b0301b1, 0x0ba70181, 0x0c030191, 0x0c5b0121, 0x03010111, 0x03020111, 0x03030111, - 0x03040111, 0x03050111, 0x03060111, 0x03070111, 0x03080111, 0x03090111, 0x0c590111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0300 .. 0x03ff */ - 0x00000611, 0x00000511, 0x00000811, 0x00000e11, 0x00001311, 0x00001411, 0x00000711, 0x00000f11, - 0x00000c11, 0x00001511, 0x00000a11, 0x00000d11, 0x00000911, 0x00001611, 0x00001711, 0x00001811, - 0x00001911, 0x00001a11, 0x00001b11, 0x00000311, 0x00000411, 0x00001c11, 0x00001d11, 0x00001e11, - 0x00001f11, 0x00002011, 0x00002111, 0x00002211, 0x00002311, 0x00002411, 0x00002511, 0x00002611, - 0x00002711, 0x00002811, 0x00002911, 0x00002a11, 0x00002b11, 0x00002c11, 0x00002d11, 0x00001111, - 0x00001211, 0x00002e11, 0x00002f11, 0x00003011, 0x00003111, 0x00003211, 0x00003311, 0x00003411, - 0x00003511, 0x00003611, 0x00000211, 0x00003711, 0x00003811, 0x00003911, 0x00003a11, 0x00003b11, - 0x00001011, 0x00003c11, 0x00003d11, 0x00003e11, 0x00003f11, 0x00004011, 0x00004111, 0x00004211, - 0x00000611, 0x00000511, 0x00000b11, 0x00000311, 0x00000c11, 0x00004311, 0x00004411, 0x00004511, - 0x00004611, 0x00004711, 0x00004811, 0x00004911, 0x00004a11, 0x00004b11, 0x00004c11, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x00004d11, 0x00004e11, 0x00004f11, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x02e90111, 0x02ea0111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x0c9b0111, 0xffffffff, 0xffffffff, 0xffffffff, 0x02350111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x020d0111, 0x02140111, 0x0c910121, 0x025f0111, - 0x0c950131, 0x0c990121, 0x0c9b0121, 0xffffffff, 0x0ca20121, 0xffffffff, 0x0ca80121, 0x0cac0121, - 0x0c9b0111, 0x0c910121, 0x0c920131, 0x0c930121, 0x0c940121, 0x0c950131, 0x0c980121, 0x0c990121, - 0x0c9a0131, 0x0c9b0121, 0x0c9d0131, 0x0c9e0121, 0x0c9f0131, 0x0ca00121, 0x0ca10121, 0x0ca20121, - 0x0ca30131, 0x0ca50131, 0xffffffff, 0x0ca60131, 0x0ca70121, 0x0ca80121, 0x0ca90131, 0x0caa0121, - 0x0cab0121, 0x0cac0121, 0x0c9b0121, 0x0ca80121, 0x0c910111, 0x0c950111, 0x0c990111, 0x0c9b0111, - 0x0ca80111, 0x0c910111, 0x0c920111, 0x0c930111, 0x0c940111, 0x0c950111, 0x0c980111, 0x0c990111, - 0x0c9a0111, 0x0c9b0111, 0x0c9d0111, 0x0c9e0111, 0x0c9f0111, 0x0ca00111, 0x0ca10111, 0x0ca20111, - 0x0ca30111, 0x0ca50111, 0x0ca60141, 0x0ca60111, 0x0ca70111, 0x0ca80111, 0x0ca90111, 0x0caa0111, - 0x0cab0111, 0x0cac0111, 0x0c9b0111, 0x0ca80111, 0x0ca20111, 0x0ca80111, 0x0cac0111, 0xffffffff, - 0x0c920121, 0x0c9a0121, 0x0ca80131, 0x0ca80131, 0x0ca80131, 0x0ca90121, 0x0ca30121, 0x0c9d0121, - 0xffffffff, 0xffffffff, 0x0c970121, 0x0c970111, 0x0c960121, 0x0c960111, 0x0ca40121, 0x0ca40111, - 0x0cad0121, 0x0cad0111, 0x0cae0121, 0x0cae0111, 0x0caf0121, 0x0caf0111, 0x0cb00121, 0x0cb00111, - 0x0cb10121, 0x0cb10111, 0x0cb20121, 0x0cb20111, 0x0cb30121, 0x0cb30111, 0x0cb40121, 0x0cb40111, - 0x0c9d0121, 0x0ca50121, 0x0ca60121, 0x0c9c0111, 0x0c9a0141, 0x0c950121, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0400 .. 0x04ff */ - 0x0cf10121, 0x0cf10121, 0x0ce50121, 0x0ce90121, 0x0cf90121, 0x0d110121, 0x0d210121, 0x0d250121, - 0x0d2d0121, 0x0d4d0121, 0x0d650121, 0x0d9d0121, 0x0da10121, 0x0d190121, 0x0da90121, 0x0e050121, - 0x0cb50121, 0x0ccd0121, 0x0cd10121, 0x0cd50131, 0x0ce10121, 0x0cf10121, 0x0cfd0121, 0x0d090121, - 0x0d190121, 0x0d290121, 0x0d310121, 0x0d490121, 0x0d510121, 0x0d550121, 0x0d690121, 0x0d790121, - 0x0d850121, 0x0d8d0121, 0x0d950121, 0x0da50121, 0x0dc10121, 0x0dc50121, 0x0de10121, 0x0de90121, - 0x0e090121, 0x0e0d0121, 0x0e110121, 0x0e150121, 0x0e1d0121, 0x0e290121, 0x0e310121, 0x0e350121, - 0x0cb50111, 0x0ccd0111, 0x0cd10111, 0x0cd50111, 0x0ce10111, 0x0cf10111, 0x0cfd0111, 0x0d090111, - 0x0d190111, 0x0d290111, 0x0d310111, 0x0d490111, 0x0d510111, 0x0d550111, 0x0d690111, 0x0d790111, - 0x0d850111, 0x0d8d0111, 0x0d950111, 0x0da50111, 0x0dc10111, 0x0dc50111, 0x0de10111, 0x0de90111, - 0x0e090111, 0x0e0d0111, 0x0e110111, 0x0e150111, 0x0e1d0111, 0x0e290111, 0x0e310111, 0x0e350111, - 0x0cf10111, 0x0cf10111, 0x0ce50111, 0x0ce90111, 0x0cf90111, 0x0d110111, 0x0d210111, 0x0d250111, - 0x0d2d0111, 0x0d4d0111, 0x0d650111, 0x0d9d0111, 0x0da10111, 0x0d190111, 0x0da90111, 0x0e050111, - 0x0dd10121, 0x0dd10111, 0x0e250121, 0x0e250111, 0x0e390121, 0x0e390111, 0x0e3d0121, 0x0e3d0111, - 0x0e450121, 0x0e450111, 0x0e410121, 0x0e410111, 0x0e490121, 0x0e490111, 0x0e4d0121, 0x0e4d0111, - 0x0e510121, 0x0e510111, 0x0e550121, 0x0e550111, 0x0e590121, 0x0e590111, 0x0e5d0121, 0x0e5d0111, - 0x0dbd0121, 0x0dbd0111, 0x0ddd0121, 0x0ddd0111, 0x0dd90121, 0x0dd90111, 0x0dd50121, 0x0dd50111, - 0x0d810121, 0x0d810111, 0x030b0111, 0x00005411, 0x00005511, 0x00005611, 0x00005711, 0xffffffff, - 0x00000001, 0x00000001, 0xffffffff, 0xffffffff, 0x0e210121, 0x0e210111, 0x0d890121, 0x0d890111, - 0x0cd50141, 0x0cd50121, 0x0cd90121, 0x0cd90111, 0x0cdd0121, 0x0cdd0111, 0x0d050121, 0x0d050111, - 0x0ced0121, 0x0ced0111, 0x0d350121, 0x0d350111, 0x0d450121, 0x0d450111, 0x0d410121, 0x0d410111, - 0x0d3d0121, 0x0d3d0111, 0x0d590121, 0x0d590111, 0x0d610121, 0x0d610111, 0x0d7d0121, 0x0d7d0111, - 0x0e610121, 0x0e610111, 0x0d910121, 0x0d910111, 0x0d990121, 0x0d990111, 0x0db50121, 0x0db50111, - 0x0db90121, 0x0db90111, 0x0dc90121, 0x0dc90111, 0x0de50121, 0x0de50111, 0x0df10121, 0x0df10111, - 0x0df90121, 0x0df90111, 0x0dcd0121, 0x0dcd0111, 0x0dfd0121, 0x0dfd0111, 0x0e010121, 0x0e010111, - 0x0e650111, 0x0cfd0121, 0x0cfd0111, 0x0d390121, 0x0d390111, 0xffffffff, 0xffffffff, 0x0d5d0121, - 0x0d5d0111, 0xffffffff, 0xffffffff, 0x0df50121, 0x0df50111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0cb90121, 0x0cb90111, 0x0cbd0121, 0x0cbd0111, 0x0cc90121, 0x0cc90111, 0x0cf50121, 0x0cf50111, - 0x0cc10121, 0x0cc10111, 0x0cc50121, 0x0cc50111, 0x0d010121, 0x0d010111, 0x0d0d0121, 0x0d0d0111, - 0x0d150121, 0x0d150111, 0x0d190121, 0x0d190111, 0x0d1d0121, 0x0d1d0111, 0x0d6d0121, 0x0d6d0111, - 0x0d710121, 0x0d710111, 0x0d750121, 0x0d750111, 0x0e2d0121, 0x0e2d0111, 0x0da50121, 0x0da50111, - 0x0dad0121, 0x0dad0111, 0x0db10121, 0x0db10111, 0x0ded0121, 0x0ded0111, 0xffffffff, 0xffffffff, - 0x0e190121, 0x0e190111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0500 .. 0x05ff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x0e900121, 0x0e910121, 0x0e920121, 0x0e930121, 0x0e940131, 0x0e950121, 0x0e960121, - 0x0e970121, 0x0e980121, 0x0e990121, 0x0e9a0121, 0x0e9b0121, 0x0e9c0121, 0x0e9d0121, 0x0e9e0121, - 0x0e9f0121, 0x0ea00121, 0x0ea10121, 0x0ea20121, 0x0ea30131, 0x0ea40121, 0x0ea50121, 0x0ea60121, - 0x0ea70121, 0x0ea80121, 0x0ea90121, 0x0eaa0121, 0x0eab0121, 0x0eac0121, 0x0ead0131, 0x0eae0121, - 0x0eaf0121, 0x0eb00121, 0x0eb10121, 0x0eb20121, 0x0eb30121, 0x0eb40121, 0x0eb50121, 0xffffffff, - 0xffffffff, 0x0eb60111, 0x02bf0111, 0x02c00111, 0x024d0111, 0x022e0111, 0x02500111, 0x02c10111, - 0xffffffff, 0x0e900111, 0x0e910111, 0x0e920111, 0x0e930111, 0x0e940111, 0x0e950111, 0x0e960111, - 0x0e970111, 0x0e980111, 0x0e990111, 0x0e9a0111, 0x0e9b0111, 0x0e9c0111, 0x0e9d0111, 0x0e9e0111, - 0x0e9f0111, 0x0ea00111, 0x0ea10111, 0x0ea20111, 0x0ea30111, 0x0ea40111, 0x0ea50111, 0x0ea60111, - 0x0ea70111, 0x0ea80111, 0x0ea90111, 0x0eaa0111, 0x0eab0111, 0x0eac0111, 0x0ead0111, 0x0eae0111, - 0x0eaf0111, 0x0eb00111, 0x0eb10111, 0x0eb20111, 0x0eb30111, 0x0eb40111, 0x0eb50111, 0x0e940121, - 0xffffffff, 0x02380111, 0x02220111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, - 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, - 0x00000001, 0x00000001, 0xffffffff, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, - 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, - 0x00005811, 0x00005911, 0x00005a11, 0x00005b11, 0x00005c11, 0x00005d11, 0x00005e11, 0x00005f11, - 0x00006011, 0x00006111, 0xffffffff, 0x00006211, 0x00006311, 0x00000001, 0x02c20111, 0x00006411, - 0x02c30111, 0x00006511, 0x00006611, 0x02c40111, 0x00000001, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0eb70111, 0x0eb80111, 0x0eb90111, 0x0eba0111, 0x0ebb0111, 0x0ebc0111, 0x0ebd0111, 0x0ebe0111, - 0x0ebf0111, 0x0ec00111, 0x0ec10131, 0x0ec10111, 0x0ec20111, 0x0ec30131, 0x0ec30111, 0x0ec40121, - 0x0ec40111, 0x0ec50111, 0x0ec60111, 0x0ec70121, 0x0ec70111, 0x0ec80121, 0x0ec80111, 0x0ec90111, - 0x0eca0111, 0x0ecb0111, 0x0ecc0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0ebc0121, 0x0ebc0121, 0x0ec00121, 0x02c50111, 0x02c60111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0600 .. 0x06ff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x022f0111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0x02360111, 0xffffffff, 0xffffffff, 0xffffffff, 0x02510111, - 0xffffffff, 0x0ecd0111, 0x0ece0111, 0x0ecf0111, 0x0ed20111, 0x0ed30111, 0x0ed50111, 0x0ed60111, - 0x0ed70111, 0x0edb0111, 0x0edc0111, 0x0edd0111, 0x0ee30111, 0x0ee90111, 0x0eea0111, 0x0eee0111, - 0x0eef0111, 0x0ef90111, 0x0efa0111, 0x0f040111, 0x0f050111, 0x0f0a0111, 0x0f0b0111, 0x0f0f0111, - 0x0f100111, 0x0f120111, 0x0f130111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x020b0111, 0x0f160111, 0x0f1d0111, 0x0f200111, 0x0f2d0111, 0x0f320111, 0x0f330111, 0x0f390111, - 0x0f3e0111, 0x0f480111, 0x0f490111, 0x00006811, 0x00006911, 0x00006a11, 0x00006b11, 0x00006c11, - 0x00006d11, 0x00006e11, 0x00006f11, 0x00007011, 0x00007111, 0x00007211, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x02ab0111, 0x02300111, 0x02310111, 0x02a30111, 0xffffffff, 0xffffffff, - 0x00007311, 0x0ed10111, 0x0ed00111, 0x0ed40111, 0x0ecd0111, 0x0ed60121, 0x0f3e0121, 0x0f420121, - 0x0f490121, 0x0ede0111, 0x0edf0111, 0x0ed80111, 0x0ee00111, 0x0ee10111, 0x0ed90111, 0x0ee20111, - 0x0eda0111, 0x0eeb0111, 0x0eec0111, 0x0ee40111, 0x0ee50111, 0x0eed0111, 0x0ee60111, 0x0ee80111, - 0x0ef00111, 0x0ef10111, 0x0ef20111, 0x0ef30111, 0x0ef40111, 0x0ef50111, 0x0ef60111, 0x0ef70111, - 0x0ef80111, 0x0efb0111, 0x0efc0111, 0x0efd0111, 0x0efe0111, 0x0eff0111, 0x0f000111, 0x0f010111, - 0x0f020111, 0x0f030111, 0x0f060111, 0x0f070111, 0x0f080111, 0x0f0c0111, 0x0f0d0111, 0x0f110111, - 0x0f140111, 0x0f170111, 0x0f180111, 0x0f190111, 0x0f1a0111, 0x0f1b0111, 0x0f1c0111, 0x0f1e0111, - 0x0f1f0111, 0x0f210111, 0x0f220111, 0x0f230111, 0x0f240111, 0x0f250111, 0x0f260111, 0x0f270111, - 0x0f280111, 0x0f290111, 0x0f2a0111, 0x0f2b0111, 0x0f2c0111, 0x0f2e0111, 0x0f2f0111, 0x0f300111, - 0x0f310111, 0x0f380111, 0x0f340111, 0x0f350111, 0x0f360111, 0x0f370111, 0x0f3a0111, 0x0ee70111, - 0x0f3d0111, 0x0f3b0111, 0x0f3b0111, 0x0f3c0111, 0x0f3f0111, 0x0f400111, 0x0f410111, 0x0f420111, - 0x0f430111, 0x0f440111, 0x0f450111, 0x0f460111, 0x0f4a0111, 0x0f4b0111, 0x0f4c0111, 0x0f470111, - 0x0f4d0111, 0x0f4e0111, 0x0f4f0111, 0x0f4f0111, 0x02570111, 0x0f3d0111, 0x00007411, 0x00007511, - 0x00007611, 0x00007711, 0x00007811, 0x00007911, 0x00007a11, 0x00000001, 0x00000001, 0x00000001, - 0x00000001, 0x00007b11, 0x00007c11, 0x00007d11, 0x00007e11, 0x0f3e0121, 0x0f490121, 0x00007f11, - 0x00008011, 0x030c0111, 0x00000001, 0x00000001, 0x00000001, 0x00008111, 0xffffffff, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x0f090111, 0x0f0e0111, 0x0f150111, 0x0ecd0121, 0x0f320121, 0xffffffff, - /* 0x0700 .. 0x07ff */ - 0x02660111, 0x02580111, 0x02590111, 0x02390111, 0x023a0111, 0x023b0111, 0x023c0111, 0x023d0111, - 0x023e0111, 0x02520111, 0x02c70111, 0x02c80111, 0x02c90111, 0x02ca0111, 0xffffffff, 0x00000000, - 0x0f500111, 0x00008211, 0x0f510111, 0x0f520111, 0x0f520121, 0x0f530111, 0x0f540111, 0x0f550111, - 0x0f560111, 0x0f570111, 0x0f580111, 0x0f590111, 0x0f590121, 0x0f5a0111, 0x0f5b0111, 0x0f5c0111, - 0x0f5d0111, 0x0f5e0111, 0x0f5f0111, 0x0f600111, 0x0f600121, 0x0f610111, 0x0f620111, 0x0f620121, - 0x0f630111, 0x0f640111, 0x0f650111, 0x0f660111, 0x0f670111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x00008311, 0x00008411, 0x00008511, 0x00008611, 0x00008711, 0x00008811, 0x00008911, 0x00008a11, - 0x00008b11, 0x00008c11, 0x00008d11, 0x00008e11, 0x00008f11, 0x00009011, 0x00009111, 0x00009211, - 0x00009311, 0x00009411, 0x00009511, 0x00009611, 0x00009711, 0x00009811, 0x00009911, 0x00009a11, - 0x00009b11, 0x00009c11, 0x00009d11, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0f680111, 0x0f6b0111, 0x0f6c0111, 0x0f6d0111, 0x0f6f0111, 0x0f700111, 0x0f710111, 0x0f720111, - 0x0f750111, 0x0f770111, 0x0f780111, 0x0f790111, 0x0f7b0111, 0x0f7f0111, 0x0f800111, 0x0f820111, - 0x0f830111, 0x0f870111, 0x0f880111, 0x0f890111, 0x0f8a0111, 0x0f8b0111, 0x0f8c0111, 0x0f8d0111, - 0x0f7c0111, 0x0f690111, 0x0f6a0111, 0x0f7a0111, 0x0f6e0111, 0x0f840111, 0x0f850111, 0x0f860111, - 0x0f7d0111, 0x0f7e0111, 0x0f730111, 0x0f740111, 0x0f810111, 0x0f760111, 0x0f8e0111, 0x0f8f0111, - 0x0f900111, 0x0f910111, 0x0f920111, 0x0f930111, 0x0f940111, 0x0f950111, 0x0f960111, 0x0f970111, - 0x0f980111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0900 .. 0x09ff */ - 0xffffffff, 0x00009f11, 0x0000a011, 0x0000a111, 0xffffffff, 0x10d70111, 0x10d80111, 0x10d90111, - 0x10da0111, 0x10db0111, 0x10dc0111, 0x10dd0111, 0x10df0111, 0x10e10111, 0x10e20111, 0x10e30111, - 0x10e40111, 0x10e50111, 0x10e60111, 0x10e70111, 0x10e80111, 0x10e90111, 0x10ea0111, 0x10eb0111, - 0x10ec0111, 0x10ed0111, 0x10ee0111, 0x10ef0111, 0x10f00111, 0x10f10111, 0x10f20111, 0x10f30111, - 0x10f40111, 0x10f50111, 0x10f60111, 0x10f70111, 0x10f80111, 0x10f90111, 0x10fa0111, 0x10fb0111, - 0x10fc0111, 0x10fc0111, 0x10fd0111, 0x10fe0111, 0x10ff0111, 0x11000111, 0x11010111, 0x11020111, - 0x11030111, 0x11030111, 0x11040111, 0x11050111, 0x11050111, 0x11060111, 0x11070111, 0x11080111, - 0x11090111, 0x110a0111, 0xffffffff, 0xffffffff, 0x00009e11, 0x110b0111, 0x110c0111, 0x110d0111, - 0x110e0111, 0x110f0111, 0x11100111, 0x11110111, 0x11120111, 0x11150111, 0x11160111, 0x11170111, - 0x11180111, 0x11190111, 0x111a0111, 0x111b0111, 0x111c0111, 0x111d0111, 0xffffffff, 0xffffffff, - 0x10d60111, 0x0000a211, 0x0000a311, 0x0000a411, 0x0000a511, 0xffffffff, 0xffffffff, 0xffffffff, - 0x10e90111, 0x10ea0111, 0x10eb0111, 0x10f00111, 0x10f50111, 0x10f60111, 0x10fe0111, 0x11020111, - 0x10de0111, 0x10e00111, 0x11130111, 0x11140111, 0x02600111, 0x02610111, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0x02cd0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x0000a711, 0x0000a811, 0x0000a911, 0xffffffff, 0x111e0111, 0x111f0111, 0x11200111, - 0x11210111, 0x11220111, 0x11230111, 0x11240111, 0x11260111, 0xffffffff, 0xffffffff, 0x11280111, - 0x11290111, 0xffffffff, 0xffffffff, 0x112a0111, 0x112b0111, 0x112c0111, 0x112d0111, 0x112e0111, - 0x112f0111, 0x11300111, 0x11310111, 0x11320111, 0x11330111, 0x11340111, 0x11350111, 0x11360111, - 0x11370111, 0x11380111, 0x11390111, 0x113a0111, 0x113b0111, 0x113c0111, 0x113d0111, 0x113e0111, - 0x113f0111, 0xffffffff, 0x11400111, 0x11410111, 0x11420111, 0x11430111, 0x11440111, 0x11450111, - 0x11460111, 0xffffffff, 0x11480111, 0xffffffff, 0xffffffff, 0xffffffff, 0x114a0111, 0x114b0111, - 0x114c0111, 0x114d0111, 0xffffffff, 0xffffffff, 0x0000a611, 0xffffffff, 0x114e0111, 0x114f0111, - 0x11500111, 0x11510111, 0x11520111, 0x11530111, 0x11540111, 0xffffffff, 0xffffffff, 0x11570111, - 0x11580111, 0xffffffff, 0xffffffff, 0x11590111, 0x115a0111, 0x115b0111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x115c0111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x11380111, 0x11390111, 0xffffffff, 0x11450111, - 0x11250111, 0x11270111, 0x11550111, 0x11560111, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0x11470111, 0x11490111, 0x09e30111, 0x09e40111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, - 0x09c10111, 0x09c20111, 0x030d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0a00 .. 0x0aff */ - 0xffffffff, 0xffffffff, 0x0000ab11, 0xffffffff, 0xffffffff, 0x11620111, 0x11630111, 0x11670111, - 0x11680111, 0x115f0111, 0x11600111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x11690111, - 0x11640111, 0xffffffff, 0xffffffff, 0x11610111, 0x11650111, 0x116c0111, 0x116d0111, 0x116e0111, - 0x116f0111, 0x11700111, 0x11710111, 0x11720111, 0x11730111, 0x11740111, 0x11750111, 0x11760111, - 0x11770111, 0x11780111, 0x11790111, 0x117a0111, 0x117b0111, 0x117c0111, 0x117d0111, 0x117e0111, - 0x117f0111, 0xffffffff, 0x11800111, 0x11810111, 0x11820111, 0x11830111, 0x11840111, 0x11850111, - 0x11860111, 0xffffffff, 0x11870111, 0x11870111, 0xffffffff, 0x11880111, 0x116a0111, 0xffffffff, - 0x116a0111, 0x116b0111, 0xffffffff, 0xffffffff, 0x0000aa11, 0xffffffff, 0x118a0111, 0x118b0111, - 0x118c0111, 0x118d0111, 0x118e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x118f0111, - 0x11900111, 0xffffffff, 0xffffffff, 0x11910111, 0x11920111, 0x11930111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x116d0111, 0x116e0111, 0x11730111, 0x11890111, 0xffffffff, 0x11810111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0x0000ac11, 0x0000ad11, 0x11660111, 0x115e0111, 0x115d0111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x0000af11, 0x0000b011, 0x0000b111, 0xffffffff, 0x11950111, 0x11960111, 0x11970111, - 0x11980111, 0x11990111, 0x119a0111, 0x119b0111, 0xffffffff, 0x119d0111, 0xffffffff, 0x119e0111, - 0x119f0111, 0x11a00111, 0xffffffff, 0x11a10111, 0x11a20111, 0x11a30111, 0x11a40111, 0x11a50111, - 0x11a60111, 0x11a70111, 0x11a80111, 0x11a90111, 0x11aa0111, 0x11ab0111, 0x11ac0111, 0x11ad0111, - 0x11ae0111, 0x11af0111, 0x11b00111, 0x11b10111, 0x11b20111, 0x11b30111, 0x11b40111, 0x11b50111, - 0x11b60111, 0xffffffff, 0x11b70111, 0x11b80111, 0x11b90111, 0x11ba0111, 0x11bb0111, 0x11bc0111, - 0x11bd0111, 0xffffffff, 0x11be0111, 0x11bf0111, 0xffffffff, 0x11c00111, 0x11c10111, 0x11c20111, - 0x11c30111, 0x11c40111, 0xffffffff, 0xffffffff, 0x0000ae11, 0x11c50111, 0x11c60111, 0x11c70111, - 0x11c80111, 0x11c90111, 0x11ca0111, 0x11cb0111, 0x11cc0111, 0x11cd0111, 0xffffffff, 0x11ce0111, - 0x11cf0111, 0x11d00111, 0xffffffff, 0x11d10111, 0x11d20111, 0x11d30111, 0xffffffff, 0xffffffff, - 0x11940111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x119c0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0b00 .. 0x0bff */ - 0xffffffff, 0x0000b311, 0x0000b411, 0x0000b511, 0xffffffff, 0x11d40111, 0x11d50111, 0x11d60111, - 0x11d70111, 0x11d80111, 0x11d90111, 0x11da0111, 0x11dc0111, 0xffffffff, 0xffffffff, 0x11de0111, - 0x11df0111, 0xffffffff, 0xffffffff, 0x11e00111, 0x11e10111, 0x11e20111, 0x11e30111, 0x11e40111, - 0x11e50111, 0x11e60111, 0x11e70111, 0x11e80111, 0x11e90111, 0x11ea0111, 0x11eb0111, 0x11ec0111, - 0x11ed0111, 0x11ee0111, 0x11ef0111, 0x11f00111, 0x11f10111, 0x11f20111, 0x11f30111, 0x11f40111, - 0x11f50111, 0xffffffff, 0x11f60111, 0x11f70111, 0x11f80111, 0x11f90111, 0x11fa0111, 0x11fb0111, - 0x11fd0111, 0xffffffff, 0x11fe0111, 0x11ff0111, 0xffffffff, 0xffffffff, 0x12000111, 0x12010111, - 0x12020111, 0x12030111, 0xffffffff, 0xffffffff, 0x0000b211, 0x12040111, 0x12050111, 0x12060111, - 0x12070111, 0x12080111, 0x12090111, 0x120a0111, 0xffffffff, 0xffffffff, 0xffffffff, 0x120b0111, - 0x120c0111, 0xffffffff, 0xffffffff, 0x120d0111, 0x120e0111, 0x120f0111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12100111, 0x12110111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x11ee0111, 0x11ef0111, 0xffffffff, 0x11fc0111, - 0x11db0111, 0x11dd0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0x030e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x0000b611, 0x12120111, 0xffffffff, 0x12130111, 0x12140111, 0x12150111, - 0x12160111, 0x12170111, 0x12180111, 0xffffffff, 0xffffffff, 0xffffffff, 0x12190111, 0x121a0111, - 0x121b0111, 0xffffffff, 0x121c0111, 0x121d0111, 0x121e0111, 0x121f0111, 0xffffffff, 0xffffffff, - 0xffffffff, 0x12200111, 0x12210111, 0xffffffff, 0x12220111, 0xffffffff, 0x12230111, 0x12240111, - 0xffffffff, 0xffffffff, 0xffffffff, 0x12250111, 0x12260111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x12270111, 0x12280111, 0x12290111, 0xffffffff, 0xffffffff, 0xffffffff, 0x122a0111, 0x122b0111, - 0x122c0111, 0x122d0111, 0x122e0111, 0x122f0111, 0x12300111, 0x12310111, 0xffffffff, 0x12320111, - 0x12330111, 0x12340111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12350111, 0x12360111, - 0x12370111, 0x12380111, 0x12390111, 0xffffffff, 0xffffffff, 0xffffffff, 0x123a0111, 0x123b0111, - 0x123c0111, 0xffffffff, 0x123d0111, 0x123e0111, 0x123f0111, 0x12400111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12410111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0x09c30111, 0x09c40111, 0x09c50111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0c00 .. 0x0cff */ - 0xffffffff, 0x0000b711, 0x0000b811, 0x0000b911, 0xffffffff, 0x12420111, 0x12430111, 0x12440111, - 0x12450111, 0x12460111, 0x12470111, 0x12480111, 0x124a0111, 0xffffffff, 0x124c0111, 0x124d0111, - 0x124e0111, 0xffffffff, 0x124f0111, 0x12500111, 0x12510111, 0x12520111, 0x12530111, 0x12540111, - 0x12550111, 0x12560111, 0x12570111, 0x12580111, 0x12590111, 0x125a0111, 0x125b0111, 0x125c0111, - 0x125d0111, 0x125e0111, 0x125f0111, 0x12600111, 0x12610111, 0x12620111, 0x12630111, 0x12640111, - 0x12650111, 0xffffffff, 0x12660111, 0x12670111, 0x12680111, 0x12690111, 0x126a0111, 0x126b0111, - 0x126c0111, 0x126d0111, 0x126e0111, 0x126f0111, 0xffffffff, 0x12700111, 0x12710111, 0x12720111, - 0x12730111, 0x12740111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12750111, 0x12760111, - 0x12770111, 0x12780111, 0x12790111, 0x127a0111, 0x127b0111, 0xffffffff, 0x127c0111, 0x127d0111, - 0x127e0111, 0xffffffff, 0x127f0111, 0x12800111, 0x12810111, 0x12820111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12830111, 0x12840111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x12490111, 0x124b0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x0000ba11, 0x0000bb11, 0xffffffff, 0x12850111, 0x12860111, 0x12870111, - 0x12880111, 0x12890111, 0x128a0111, 0x128b0111, 0x128d0111, 0xffffffff, 0x128f0111, 0x12900111, - 0x12910111, 0xffffffff, 0x12920111, 0x12930111, 0x12940111, 0x12950111, 0x12960111, 0x12970111, - 0x12980111, 0x12990111, 0x129a0111, 0x129b0111, 0x129c0111, 0x129d0111, 0x129e0111, 0x129f0111, - 0x12a00111, 0x12a10111, 0x12a20111, 0x12a30111, 0x12a40111, 0x12a50111, 0x12a60111, 0x12a70111, - 0x12a80111, 0xffffffff, 0x12a90111, 0x12aa0111, 0x12ab0111, 0x12ac0111, 0x12ad0111, 0x12ae0111, - 0x12af0111, 0x12b00111, 0x12b10111, 0x12b70111, 0xffffffff, 0x12b20111, 0x12b30111, 0x12b40111, - 0x12b50111, 0x12b60111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12b90111, 0x12ba0111, - 0x12bb0111, 0x12bc0111, 0x12bd0111, 0x12be0111, 0x12bf0111, 0xffffffff, 0x12c00111, 0x12c10111, - 0x12c20111, 0xffffffff, 0x12c30111, 0x12c40111, 0x12c50111, 0x12c60111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12c70111, 0x12c80111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12b80111, 0xffffffff, - 0x128c0111, 0x128e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0d00 .. 0x0dff */ - 0xffffffff, 0xffffffff, 0x0000bc11, 0x0000bd11, 0xffffffff, 0x12c90111, 0x12ca0111, 0x12cb0111, - 0x12cc0111, 0x12cd0111, 0x12ce0111, 0x12cf0111, 0x12d10111, 0xffffffff, 0x12d30111, 0x12d40111, - 0x12d50111, 0xffffffff, 0x12d60111, 0x12d70111, 0x12d80111, 0x12d90111, 0x12da0111, 0x12db0111, - 0x12dc0111, 0x12dd0111, 0x12de0111, 0x12df0111, 0x12e00111, 0x12e10111, 0x12e20111, 0x12e30111, - 0x12e40111, 0x12e50111, 0x12e60111, 0x12e70111, 0x12e80111, 0x12e90111, 0x12ea0111, 0x12eb0111, - 0x12ec0111, 0xffffffff, 0x12ed0111, 0x12ee0111, 0x12ef0111, 0x12f00111, 0x12f10111, 0x12f20111, - 0x12f30111, 0x12f40111, 0x12f50111, 0x12f60111, 0x12f70111, 0x12f80111, 0x12f90111, 0x12fa0111, - 0x12fb0111, 0x12fc0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12fd0111, 0x12fe0111, - 0x12ff0111, 0x13000111, 0x13010111, 0x13020111, 0xffffffff, 0xffffffff, 0x13030111, 0x13040111, - 0x13050111, 0xffffffff, 0x13060111, 0x13070111, 0x13080111, 0x13090111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x130a0111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x12d00111, 0x12d20111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x0000be11, 0x0000bf11, 0xffffffff, 0x130b0111, 0x130c0111, 0x130d0111, - 0x130e0111, 0x130f0111, 0x13100111, 0x13110111, 0x13120111, 0x13130111, 0x13140111, 0x13150111, - 0x13160111, 0x13170111, 0x13180111, 0x13190111, 0x131a0111, 0x131b0111, 0x131c0111, 0xffffffff, - 0xffffffff, 0xffffffff, 0x131d0111, 0x131e0111, 0x131f0111, 0x13200111, 0x13210111, 0x13220111, - 0x13230111, 0x13240111, 0x13250111, 0x13260111, 0x13270111, 0x13280111, 0x13290111, 0x132a0111, - 0x132b0111, 0x132c0111, 0x132d0111, 0x132e0111, 0x132f0111, 0x13300111, 0x13310111, 0x13320111, - 0x13330111, 0x13340111, 0xffffffff, 0x13350111, 0x13360111, 0x13370111, 0x13380111, 0x13390111, - 0x133a0111, 0x133b0111, 0x133c0111, 0x133d0111, 0xffffffff, 0x133e0111, 0xffffffff, 0xffffffff, - 0x133f0111, 0x13400111, 0x13410111, 0x13420111, 0x13430111, 0x13440111, 0x13450111, 0xffffffff, - 0xffffffff, 0xffffffff, 0x13460111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x13470111, - 0x13480111, 0x13490111, 0x134a0111, 0x134b0111, 0x134c0111, 0xffffffff, 0x134d0111, 0xffffffff, - 0x134e0111, 0x134f0111, 0x13500111, 0x13510111, 0x13520111, 0x13530111, 0x13540111, 0x13550111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x13560111, 0x13570111, 0x02ce0111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0e00 .. 0x0eff */ - 0xffffffff, 0x13580111, 0x13590111, 0x135a0111, 0x135b0111, 0x135c0111, 0x135d0111, 0x135e0111, - 0x135f0111, 0x13600111, 0x13610111, 0x13620111, 0x13630111, 0x13640111, 0x13650111, 0x13660111, - 0x13670111, 0x13680111, 0x13690111, 0x136a0111, 0x136b0111, 0x136c0111, 0x136d0111, 0x136e0111, - 0x136f0111, 0x13700111, 0x13710111, 0x13720111, 0x13730111, 0x13740111, 0x13750111, 0x13760111, - 0x13770111, 0x13780111, 0x13790111, 0x137a0111, 0x137b0111, 0x137c0111, 0x137d0111, 0x137e0111, - 0x137f0111, 0x13800111, 0x13810111, 0x13820111, 0x13830111, 0x13840111, 0x13850111, 0x13860111, - 0x13870111, 0x13880111, 0x13890111, 0x138a0111, 0x138b0111, 0x138c0111, 0x138d0111, 0x138e0111, - 0x138f0111, 0x13900111, 0x13910111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x09e50111, - 0x13920111, 0x13930111, 0x13940111, 0x13950111, 0x13960111, 0x13970111, 0x09d50111, 0x0000c011, - 0x0000c111, 0x0000c211, 0x0000c311, 0x0000c411, 0x13980111, 0x13990111, 0x00000001, 0x030f0111, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x02cf0111, 0x02d00111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x139a0111, 0x139b0111, 0xffffffff, 0x139c0111, 0xffffffff, 0xffffffff, 0x139d0111, - 0x139e0111, 0xffffffff, 0x139f0111, 0xffffffff, 0xffffffff, 0x13a00111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x13a10111, 0x13a20111, 0x13a30111, 0x13a40111, - 0xffffffff, 0x13a50111, 0x13a60111, 0x13a70111, 0x13a80111, 0x13a90111, 0x13aa0111, 0x13ab0111, - 0xffffffff, 0x13ac0111, 0x13ad0111, 0x13ae0111, 0xffffffff, 0x13af0111, 0xffffffff, 0x13b00111, - 0xffffffff, 0xffffffff, 0x13b10111, 0x13b20111, 0xffffffff, 0x13b30111, 0x13b40111, 0x13b50111, - 0x13b60111, 0x13b70111, 0x13b80111, 0x13b90111, 0x13ba0111, 0x13bb0111, 0x13bc0111, 0x13bd0111, - 0x13be0111, 0x13bf0111, 0xffffffff, 0x13c00111, 0x13c10111, 0x13c20111, 0xffffffff, 0xffffffff, - 0x13c30111, 0x13c40111, 0x13c50111, 0x13c60111, 0x13c70111, 0xffffffff, 0x09d60111, 0xffffffff, - 0x0000c511, 0x0000c611, 0x0000c711, 0x0000c811, 0x13c80111, 0x13c90111, 0xffffffff, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0xffffffff, 0xffffffff, 0x13b20121, 0x13b20121, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0f00 .. 0x0fff */ - 0x140e0121, 0x03100111, 0x03110111, 0x03120111, 0x02d10111, 0x02d20111, 0x02d30111, 0x02d40111, - 0x02d50111, 0x02d60111, 0x02d70111, 0x02d80111, 0x02d80121, 0x02d90111, 0x02da0111, 0x02db0111, - 0x02dc0111, 0x02dd0111, 0x02de0111, 0x03130111, 0x02460111, 0x03140111, 0x03150111, 0x03160111, - 0x00000001, 0x00000001, 0x03170111, 0x03180111, 0x03190111, 0x031a0111, 0x031b0111, 0x031c0111, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, - 0x0a120111, 0x0a130111, 0x0a140111, 0x0a0b0111, 0x031d0111, 0x00000001, 0x031e0111, 0x00000001, - 0x031f0111, 0x0000c911, 0x02800111, 0x02810111, 0x02820111, 0x02830111, 0x03200111, 0x03210111, - 0x13ca0111, 0x13cc0111, 0x13ce0111, 0x13ce0111, 0x13d00111, 0x13d20111, 0x13d40111, 0x13d60111, - 0xffffffff, 0x13d80111, 0x13da0111, 0x13dc0111, 0x13de0111, 0x13de0111, 0x13e00111, 0x13e20111, - 0x13e40111, 0x13e60111, 0x13e60111, 0x13e80111, 0x13ea0111, 0x13ec0111, 0x13ee0111, 0x13ee0111, - 0x13f00111, 0x13f20111, 0x13f40111, 0x13f60111, 0x13f60111, 0x13f80111, 0x13fa0111, 0x13fc0111, - 0x13fe0111, 0x14000111, 0x14020111, 0x14040111, 0x14060111, 0x14080111, 0x140a0111, 0x140c0111, - 0x140e0111, 0x13ca0111, 0x14020121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x14140111, 0x14150111, 0x14160111, 0x14190111, 0x141a0111, 0x141b0111, 0x141c0111, - 0x141d0111, 0x141e0111, 0x141f0111, 0x14200111, 0x14210111, 0x14220111, 0x0000ca11, 0x0000cb11, - 0x14170111, 0x14180111, 0x00000001, 0x00000001, 0x14230111, 0x02df0111, 0x00000001, 0x00000001, - 0x14100111, 0x14110111, 0x14120111, 0x14130111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x13cb0111, 0x13cd0111, 0x13cf0111, 0x13cf0111, 0x13d10111, 0x13d30111, 0x13d50111, 0x13d70111, - 0xffffffff, 0x13d90111, 0x13db0111, 0x13dd0111, 0x13df0111, 0x13df0111, 0x13e10111, 0x13e30111, - 0x13e50111, 0x13e70111, 0x13e70111, 0x13e90111, 0x13eb0111, 0x13ed0111, 0x13ef0111, 0x13ef0111, - 0x13f10111, 0x13f30111, 0x13f50111, 0x13f70111, 0x13f70111, 0x13f90111, 0x13fb0111, 0x13fd0111, - 0x13ff0111, 0x14010111, 0x14030111, 0x14050111, 0x14070111, 0x14090111, 0x140b0111, 0x140d0111, - 0x140f0111, 0x13cb0111, 0x13f90121, 0x14010121, 0x14030121, 0xffffffff, 0x03220111, 0x03230111, - 0x03240111, 0x03250111, 0x03260111, 0x03270111, 0x03280111, 0x03290111, 0x00000001, 0x032a0111, - 0x032b0111, 0x032c0111, 0x032d0111, 0x032e0111, 0x032f0111, 0xffffffff, 0xffffffff, 0x03300111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1000 .. 0x10ff */ - 0x14240111, 0x14250111, 0x14260111, 0x14270111, 0x14280111, 0x14290111, 0x142a0111, 0x142b0111, - 0x142c0111, 0x142d0111, 0x142e0111, 0x142f0111, 0x14300111, 0x14310111, 0x14320111, 0x14330111, - 0x14340111, 0x14350111, 0x14360111, 0x14370111, 0x14380111, 0x14390111, 0x143a0111, 0x143b0111, - 0x143c0111, 0x143d0111, 0x143e0111, 0x143f0111, 0x14400111, 0x14410111, 0x14440111, 0x14450111, - 0x14460111, 0x14470111, 0xffffffff, 0x14480111, 0x14490111, 0x144a0111, 0x144b0111, 0x144c0111, - 0xffffffff, 0x144d0111, 0x144e0111, 0xffffffff, 0x14530111, 0x14540111, 0x14550111, 0x14560111, - 0x14570111, 0x14580111, 0x14590111, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000cc11, 0x0000cd11, - 0x0000ce11, 0x145e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x02620111, 0x02630111, 0x02e00111, 0x02e10111, 0x02e20111, 0x02e30111, - 0x14420111, 0x14430111, 0x144f0111, 0x14500111, 0x14510111, 0x14520111, 0x145a0111, 0x145b0111, - 0x145c0111, 0x145d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0e690121, 0x0e6a0121, 0x0e6b0121, 0x0e6c0121, 0x0e6d0121, 0x0e6e0121, 0x0e6f0121, 0x0e710121, - 0x0e720121, 0x0e730121, 0x0e740121, 0x0e750121, 0x0e760121, 0x0e780121, 0x0e790121, 0x0e7a0121, - 0x0e7b0121, 0x0e7c0121, 0x0e7d0121, 0x0e7f0121, 0x0e800121, 0x0e810121, 0x0e820121, 0x0e830121, - 0x0e840121, 0x0e850121, 0x0e860121, 0x0e870121, 0x0e880121, 0x0e890121, 0x0e8a0121, 0x0e8c0121, - 0x0e8d0121, 0x0e700121, 0x0e770121, 0x0e7e0121, 0x0e8b0121, 0x0e8e0121, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0e690111, 0x0e6a0111, 0x0e6b0111, 0x0e6c0111, 0x0e6d0111, 0x0e6e0111, 0x0e6f0111, 0x0e710111, - 0x0e720111, 0x0e730111, 0x0e740111, 0x0e750111, 0x0e760111, 0x0e780111, 0x0e790111, 0x0e7a0111, - 0x0e7b0111, 0x0e7c0111, 0x0e7d0111, 0x0e7f0111, 0x0e800111, 0x0e810111, 0x0e820111, 0x0e830111, - 0x0e840111, 0x0e850111, 0x0e860111, 0x0e870111, 0x0e880111, 0x0e890111, 0x0e8a0111, 0x0e8c0111, - 0x0e8d0111, 0x0e700111, 0x0e770111, 0x0e7e0111, 0x0e8b0111, 0x0e8e0111, 0x0e8f0111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0x02670111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1100 .. 0x11ff */ - 0x18310111, 0x18320111, 0x18330111, 0x18340111, 0x18350111, 0x18360111, 0x18370111, 0x18380111, - 0x18390111, 0x183a0111, 0x183b0111, 0x183c0111, 0x183d0111, 0x183e0111, 0x183f0111, 0x18400111, - 0x18410111, 0x18420111, 0x18430111, 0x18440111, 0x18450111, 0x18460111, 0x18470111, 0x18480111, - 0x18490111, 0x184a0111, 0x184b0111, 0x184c0111, 0x184d0111, 0x184e0111, 0x184f0111, 0x18500111, - 0x18510111, 0x18520111, 0x18530111, 0x18540111, 0x18550111, 0x18560111, 0x18570111, 0x18580111, - 0x18590111, 0x185a0111, 0x185b0111, 0x185c0111, 0x185d0111, 0x185e0111, 0x185f0111, 0x18600111, - 0x18610111, 0x18620111, 0x18630111, 0x18640111, 0x18650111, 0x18660111, 0x18670111, 0x18680111, - 0x18690111, 0x186a0111, 0x186b0111, 0x186c0111, 0x186d0111, 0x186e0111, 0x186f0111, 0x18700111, - 0x18710111, 0x18720111, 0x18730111, 0x18740111, 0x18750111, 0x18760111, 0x18770111, 0x18780111, - 0x18790111, 0x187a0111, 0x187b0111, 0x187c0111, 0x187d0111, 0x187e0111, 0x187f0111, 0x18800111, - 0x18810111, 0x18820111, 0x18830111, 0x18840111, 0x18850111, 0x18860111, 0x18870111, 0x18880111, - 0x18890111, 0x188a0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x188b0111, - 0x188c0111, 0x188d0111, 0x188e0111, 0x188f0111, 0x18900111, 0x18910111, 0x18920111, 0x18930111, - 0x18940111, 0x18950111, 0x18960111, 0x18970111, 0x18980111, 0x18990111, 0x189a0111, 0x189b0111, - 0x189c0111, 0x189d0111, 0x189e0111, 0x189f0111, 0x18a00111, 0x18a10111, 0x18a20111, 0x18a30111, - 0x18a40111, 0x18a50111, 0x18a60111, 0x18a70111, 0x18a80111, 0x18a90111, 0x18aa0111, 0x18ab0111, - 0x18ac0111, 0x18ad0111, 0x18ae0111, 0x18af0111, 0x18b00111, 0x18b10111, 0x18b20111, 0x18b30111, - 0x18b40111, 0x18b50111, 0x18b60111, 0x18b70111, 0x18b80111, 0x18b90111, 0x18ba0111, 0x18bb0111, - 0x18bc0111, 0x18bd0111, 0x18be0111, 0x18bf0111, 0x18c00111, 0x18c10111, 0x18c20111, 0x18c30111, - 0x18c40111, 0x18c50111, 0x18c60111, 0x18c70111, 0x18c80111, 0x18c90111, 0x18ca0111, 0x18cb0111, - 0x18cc0111, 0x18cd0111, 0x18ce0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x18cf0111, 0x18d00111, 0x18d10111, 0x18d20111, 0x18d30111, 0x18d40111, 0x18d50111, 0x18d60111, - 0x18d70111, 0x18d80111, 0x18d90111, 0x18da0111, 0x18db0111, 0x18dc0111, 0x18dd0111, 0x18de0111, - 0x18df0111, 0x18e00111, 0x18e10111, 0x18e20111, 0x18e30111, 0x18e40111, 0x18e50111, 0x18e60111, - 0x18e70111, 0x18e80111, 0x18e90111, 0x18ea0111, 0x18eb0111, 0x18ec0111, 0x18ed0111, 0x18ee0111, - 0x18ef0111, 0x18f00111, 0x18f10111, 0x18f20111, 0x18f30111, 0x18f40111, 0x18f50111, 0x18f60111, - 0x18f70111, 0x18f80111, 0x18f90111, 0x18fa0111, 0x18fb0111, 0x18fc0111, 0x18fd0111, 0x18fe0111, - 0x18ff0111, 0x19000111, 0x19010111, 0x19020111, 0x19030111, 0x19040111, 0x19050111, 0x19060111, - 0x19070111, 0x19080111, 0x19090111, 0x190a0111, 0x190b0111, 0x190c0111, 0x190d0111, 0x190e0111, - 0x190f0111, 0x19100111, 0x19110111, 0x19120111, 0x19130111, 0x19140111, 0x19150111, 0x19160111, - 0x19170111, 0x19180111, 0x19190111, 0x191a0111, 0x191b0111, 0x191c0111, 0x191d0111, 0x191e0111, - 0x191f0111, 0x19200111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1200 .. 0x12ff */ - 0x0f990111, 0x0f9a0111, 0x0f9b0111, 0x0f9c0111, 0x0f9d0111, 0x0f9e0111, 0x0f9f0111, 0xffffffff, - 0x0fa00111, 0x0fa10111, 0x0fa20111, 0x0fa30111, 0x0fa40111, 0x0fa50111, 0x0fa60111, 0x0fa70111, - 0x0fa80111, 0x0fa90111, 0x0faa0111, 0x0fab0111, 0x0fac0111, 0x0fad0111, 0x0fae0111, 0x0faf0111, - 0x0fb00111, 0x0fb10111, 0x0fb20111, 0x0fb30111, 0x0fb40111, 0x0fb50111, 0x0fb60111, 0x0fb70111, - 0x0fb80111, 0x0fb90111, 0x0fba0111, 0x0fbb0111, 0x0fbc0111, 0x0fbd0111, 0x0fbe0111, 0x0fbf0111, - 0x0fc00111, 0x0fc10111, 0x0fc20111, 0x0fc30111, 0x0fc40111, 0x0fc50111, 0x0fc60111, 0x0fc70111, - 0x0fc80111, 0x0fc90111, 0x0fca0111, 0x0fcb0111, 0x0fcc0111, 0x0fcd0111, 0x0fce0111, 0x0fcf0111, - 0x0fd00111, 0x0fd10111, 0x0fd20111, 0x0fd30111, 0x0fd40111, 0x0fd50111, 0x0fd60111, 0x0fd70111, - 0x0fd80111, 0x0fd90111, 0x0fda0111, 0x0fdb0111, 0x0fdc0111, 0x0fdd0111, 0x0fde0111, 0xffffffff, - 0x0fdf0111, 0xffffffff, 0x0fe00111, 0x0fe10111, 0x0fe20111, 0x0fe30111, 0xffffffff, 0xffffffff, - 0x0fe40111, 0x0fe50111, 0x0fe60111, 0x0fe70111, 0x0fe80111, 0x0fe90111, 0x0fea0111, 0xffffffff, - 0x0feb0111, 0xffffffff, 0x0fec0111, 0x0fed0111, 0x0fee0111, 0x0fef0111, 0xffffffff, 0xffffffff, - 0x0ff00111, 0x0ff10111, 0x0ff20111, 0x0ff30111, 0x0ff40111, 0x0ff50111, 0x0ff60111, 0x0ff70111, - 0x0ff80111, 0x0ff90111, 0x0ffa0111, 0x0ffb0111, 0x0ffc0111, 0x0ffd0111, 0x0ffe0111, 0x0fff0111, - 0x10000111, 0x10010111, 0x10020111, 0x10030111, 0x10040111, 0x10050111, 0x10060111, 0x10070111, - 0x10080111, 0x10090111, 0x100a0111, 0x100b0111, 0x100c0111, 0x100d0111, 0x100e0111, 0x100f0111, - 0x10100111, 0x10110111, 0x10120111, 0x10130111, 0x10140111, 0x10150111, 0x10160111, 0xffffffff, - 0x10170111, 0xffffffff, 0x10180111, 0x10190111, 0x101a0111, 0x101b0111, 0xffffffff, 0xffffffff, - 0x101c0111, 0x101d0111, 0x101e0111, 0x101f0111, 0x10200111, 0x10210111, 0x10220111, 0x10230111, - 0x10240111, 0x10250111, 0x10260111, 0x10270111, 0x10280111, 0x10290111, 0x102a0111, 0x102b0111, - 0x102c0111, 0x102d0111, 0x102e0111, 0x102f0111, 0x10300111, 0x10310111, 0x10320111, 0x10330111, - 0x10340111, 0x10350111, 0x10360111, 0x10370111, 0x10380111, 0x10390111, 0x103a0111, 0xffffffff, - 0x103b0111, 0xffffffff, 0x103c0111, 0x103d0111, 0x103e0111, 0x103f0111, 0xffffffff, 0xffffffff, - 0x10400111, 0x10410111, 0x10420111, 0x10430111, 0x10440111, 0x10450111, 0x10460111, 0xffffffff, - 0x10470111, 0xffffffff, 0x10480111, 0x10490111, 0x104a0111, 0x104b0111, 0xffffffff, 0xffffffff, - 0x104c0111, 0x104d0111, 0x104e0111, 0x104f0111, 0x10500111, 0x10510111, 0x10520111, 0xffffffff, - 0x10530111, 0x10540111, 0x10550111, 0x10560111, 0x10570111, 0x10580111, 0x10590111, 0xffffffff, - 0x105a0111, 0x105b0111, 0x105c0111, 0x105d0111, 0x105e0111, 0x105f0111, 0x10600111, 0x10610111, - 0x10620111, 0x10630111, 0x10640111, 0x10650111, 0x10660111, 0x10670111, 0x10680111, 0x10690111, - 0x106a0111, 0x106b0111, 0x106c0111, 0x106d0111, 0x106e0111, 0x106f0111, 0x10700111, 0xffffffff, - 0x10710111, 0x10720111, 0x10730111, 0x10740111, 0x10750111, 0x10760111, 0x10770111, 0x10780111, - 0x10790111, 0x107a0111, 0x107b0111, 0x107c0111, 0x107d0111, 0x107e0111, 0x107f0111, 0x10800111, - /* 0x1300 .. 0x13ff */ - 0x10810111, 0x10820111, 0x10830111, 0x10840111, 0x10850111, 0x10860111, 0x10870111, 0x10880111, - 0x10890111, 0x108a0111, 0x108b0111, 0x108c0111, 0x108d0111, 0x108e0111, 0x108f0111, 0xffffffff, - 0x10900111, 0xffffffff, 0x10910111, 0x10920111, 0x10930111, 0x10940111, 0xffffffff, 0xffffffff, - 0x10950111, 0x10960111, 0x10970111, 0x10980111, 0x10990111, 0x109a0111, 0x109b0111, 0xffffffff, - 0x109c0111, 0x109d0111, 0x109e0111, 0x109f0111, 0x10a00111, 0x10a10111, 0x10a20111, 0x10a30111, - 0x10a40111, 0x10a50111, 0x10a60111, 0x10a70111, 0x10a80111, 0x10a90111, 0x10aa0111, 0x10ab0111, - 0x10ac0111, 0x10ad0111, 0x10ae0111, 0x10af0111, 0x10b00111, 0x10b10111, 0x10b20111, 0x10b30111, - 0x10b40111, 0x10b50111, 0x10b60111, 0x10b70111, 0x10b80111, 0x10b90111, 0x10ba0111, 0x10bb0111, - 0x10bc0111, 0x10bd0111, 0x10be0111, 0x10bf0111, 0x10c00111, 0x10c10111, 0x10c20111, 0xffffffff, - 0x10c30111, 0x10c40111, 0x10c50111, 0x10c60111, 0x10c70111, 0x10c80111, 0x10c90111, 0x10ca0111, - 0x10cb0111, 0x10cc0111, 0x10cd0111, 0x10ce0111, 0x10cf0111, 0x10d00111, 0x10d10111, 0x10d20111, - 0x10d30111, 0x10d40111, 0x10d50111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x023f0111, 0x025a0111, 0x02400111, 0x02410111, 0x02420111, 0x02430111, 0x02530111, - 0x02680111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x09c60111, 0x09c70111, 0x09c80111, 0x09c90111, 0x09ca0111, 0x09cb0111, - 0x09cc0111, 0x09cd0111, 0x09ce0111, 0x09cf0111, 0x09d00111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x15280111, 0x15290111, 0x152a0111, 0x152b0111, 0x152c0111, 0x152d0111, 0x152e0111, 0x152f0111, - 0x15300111, 0x15310111, 0x15320111, 0x15330111, 0x15340111, 0x15350111, 0x15360111, 0x15370111, - 0x15380111, 0x15390111, 0x153a0111, 0x153b0111, 0x153c0111, 0x153d0111, 0x153e0111, 0x153f0111, - 0x15400111, 0x15410111, 0x15420111, 0x15430111, 0x15440111, 0x15450111, 0x15460111, 0x15470111, - 0x15480111, 0x15490111, 0x154a0111, 0x154b0111, 0x154c0111, 0x154d0111, 0x154e0111, 0x154f0111, - 0x15500111, 0x15510111, 0x15520111, 0x15530111, 0x15540111, 0x15550111, 0x15560111, 0x15570111, - 0x15580111, 0x15590111, 0x155a0111, 0x155b0111, 0x155c0111, 0x155d0111, 0x155e0111, 0x155f0111, - 0x15600111, 0x15610111, 0x15620111, 0x15630111, 0x15640111, 0x15650111, 0x15660111, 0x15670111, - 0x15680111, 0x15690111, 0x156a0111, 0x156b0111, 0x156c0111, 0x156d0111, 0x156e0111, 0x156f0111, - 0x15700111, 0x15710111, 0x15720111, 0x15730111, 0x15740111, 0x15750111, 0x15760111, 0x15770111, - 0x15780111, 0x15790111, 0x157a0111, 0x157b0111, 0x157c0111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1400 .. 0x14ff */ - 0xffffffff, 0x157d0111, 0x157e0111, 0x157f0111, 0x15800111, 0x15810111, 0x15820111, 0x15830111, - 0x15840111, 0x15850111, 0x15860111, 0x15870111, 0x15880111, 0x15890111, 0x158a0111, 0x158b0111, - 0x158c0111, 0x158d0111, 0x158e0111, 0x158f0111, 0x15900111, 0x15910111, 0x15920111, 0x15930111, - 0x15940111, 0x15950111, 0x15960111, 0x15970111, 0x15980111, 0x15990111, 0x159a0111, 0x159b0111, - 0x159c0111, 0x159d0111, 0x159e0111, 0x159f0111, 0x15a00111, 0x15a10111, 0x15a20111, 0x15a30111, - 0x15a40111, 0x15a50111, 0x15a60111, 0x15a70111, 0x15a80111, 0x15a90111, 0x15aa0111, 0x15ab0111, - 0x15ac0111, 0x15ad0111, 0x15ae0111, 0x15af0111, 0x15b00111, 0x15b10111, 0x15b20111, 0x15b30111, - 0x15b40111, 0x15b50111, 0x15b60111, 0x15b70111, 0x15b80111, 0x15b90111, 0x15ba0111, 0x15bb0111, - 0x15bc0111, 0x15bd0111, 0x15be0111, 0x15bf0111, 0x15c00111, 0x15c10111, 0x15c20111, 0x15c30111, - 0x15c40111, 0x15c50111, 0x15c60111, 0x15c70111, 0x15c80111, 0x15c90111, 0x15ca0111, 0x15cb0111, - 0x15cc0111, 0x15cd0111, 0x15ce0111, 0x15cf0111, 0x15d00111, 0x15d10111, 0x15d20111, 0x15d30111, - 0x15d40111, 0x15d50111, 0x15d60111, 0x15d70111, 0x15d80111, 0x15d90111, 0x15da0111, 0x15db0111, - 0x15dc0111, 0x15dd0111, 0x15de0111, 0x15df0111, 0x15e00111, 0x15e10111, 0x15e20111, 0x15e30111, - 0x15e40111, 0x15e50111, 0x15e60111, 0x15e70111, 0x15e80111, 0x15e90111, 0x15ea0111, 0x15eb0111, - 0x15ec0111, 0x15ed0111, 0x15ee0111, 0x15ef0111, 0x15f00111, 0x15f10111, 0x15f20111, 0x15f30111, - 0x15f40111, 0x15f50111, 0x15f60111, 0x15f70111, 0x15f80111, 0x15f90111, 0x15fa0111, 0x15fb0111, - 0x15fc0111, 0x15fd0111, 0x15fe0111, 0x15ff0111, 0x16000111, 0x16010111, 0x16020111, 0x16030111, - 0x16040111, 0x16050111, 0x16060111, 0x16070111, 0x16080111, 0x16090111, 0x160a0111, 0x160b0111, - 0x160c0111, 0x160d0111, 0x160e0111, 0x160f0111, 0x16100111, 0x16110111, 0x16120111, 0x16130111, - 0x16140111, 0x16150111, 0x16160111, 0x16170111, 0x16180111, 0x16190111, 0x161a0111, 0x161b0111, - 0x161c0111, 0x161d0111, 0x161e0111, 0x161f0111, 0x16200111, 0x16210111, 0x16220111, 0x16230111, - 0x16240111, 0x16250111, 0x16260111, 0x16270111, 0x16280111, 0x16290111, 0x162a0111, 0x162b0111, - 0x162c0111, 0x162d0111, 0x162e0111, 0x162f0111, 0x16300111, 0x16310111, 0x16320111, 0x16330111, - 0x16340111, 0x16350111, 0x16360111, 0x16370111, 0x16380111, 0x16390111, 0x163a0111, 0x163b0111, - 0x163c0111, 0x163d0111, 0x163e0111, 0x163f0111, 0x16400111, 0x16410111, 0x16420111, 0x16430111, - 0x16440111, 0x16450111, 0x16460111, 0x16470111, 0x16480111, 0x16490111, 0x164a0111, 0x164b0111, - 0x164c0111, 0x164d0111, 0x164e0111, 0x164f0111, 0x16500111, 0x16510111, 0x16520111, 0x16530111, - 0x16540111, 0x16550111, 0x16560111, 0x16570111, 0x16580111, 0x16590111, 0x165a0111, 0x165b0111, - 0x165c0111, 0x165d0111, 0x165e0111, 0x165f0111, 0x16600111, 0x16610111, 0x16620111, 0x16630111, - 0x16640111, 0x16650111, 0x16660111, 0x16670111, 0x16680111, 0x16690111, 0x166a0111, 0x166b0111, - 0x166c0111, 0x166d0111, 0x166e0111, 0x166f0111, 0x16700111, 0x16710111, 0x16720111, 0x16730111, - 0x16740111, 0x16750111, 0x16760111, 0x16770111, 0x16780111, 0x16790111, 0x167a0111, 0x167b0111, - /* 0x1500 .. 0x15ff */ - 0x167c0111, 0x167d0111, 0x167e0111, 0x167f0111, 0x16800111, 0x16810111, 0x16820111, 0x16830111, - 0x16840111, 0x16850111, 0x16860111, 0x16870111, 0x16880111, 0x16890111, 0x168a0111, 0x168b0111, - 0x168c0111, 0x168d0111, 0x168e0111, 0x168f0111, 0x16900111, 0x16910111, 0x16920111, 0x16930111, - 0x16940111, 0x16950111, 0x16960111, 0x16970111, 0x16980111, 0x16990111, 0x169a0111, 0x169b0111, - 0x169c0111, 0x169d0111, 0x169e0111, 0x169f0111, 0x16a00111, 0x16a10111, 0x16a20111, 0x16a30111, - 0x16a40111, 0x16a50111, 0x16a60111, 0x16a70111, 0x16a80111, 0x16a90111, 0x16aa0111, 0x16ab0111, - 0x16ac0111, 0x16ad0111, 0x16ae0111, 0x16af0111, 0x16b00111, 0x16b10111, 0x16b20111, 0x16b30111, - 0x16b40111, 0x16b50111, 0x16b60111, 0x16b70111, 0x16b80111, 0x16b90111, 0x16ba0111, 0x16bb0111, - 0x16bc0111, 0x16bd0111, 0x16be0111, 0x16bf0111, 0x16c00111, 0x16c10111, 0x16c20111, 0x16c30111, - 0x16c40111, 0x16c50111, 0x16c60111, 0x16c70111, 0x16c80111, 0x16c90111, 0x16ca0111, 0x16cb0111, - 0x16cc0111, 0x16cd0111, 0x16ce0111, 0x16cf0111, 0x16d00111, 0x16d10111, 0x16d20111, 0x16d30111, - 0x16d40111, 0x16d50111, 0x16d60111, 0x16d70111, 0x16d80111, 0x16d90111, 0x16da0111, 0x16db0111, - 0x16dc0111, 0x16dd0111, 0x16de0111, 0x16df0111, 0x16e00111, 0x16e10111, 0x16e20111, 0x16e30111, - 0x16e40111, 0x16e50111, 0x16e60111, 0x16e70111, 0x16e80111, 0x16e90111, 0x16ea0111, 0x16eb0111, - 0x16ec0111, 0x16ed0111, 0x16ee0111, 0x16ef0111, 0x16f00111, 0x16f10111, 0x16f20111, 0x16f30111, - 0x16f40111, 0x16f50111, 0x16f60111, 0x16f70111, 0x172a0111, 0x16f80111, 0x16fa0111, 0x16fb0111, - 0x16fc0111, 0x16fd0111, 0x16fe0111, 0x16ff0111, 0x17000111, 0x17010111, 0x17020111, 0x17030111, - 0x17040111, 0x17050111, 0x17060111, 0x17070111, 0x17080111, 0x17090111, 0x170b0111, 0x170c0111, - 0x170d0111, 0x170e0111, 0x170f0111, 0x17100111, 0x17110111, 0x17120111, 0x17190111, 0x171a0111, - 0x171b0111, 0x171c0111, 0x171d0111, 0x171e0111, 0x171f0111, 0x17200111, 0x17210111, 0x17220111, - 0x17230111, 0x17240111, 0x17250111, 0x17260111, 0x17270111, 0x17280111, 0x17290111, 0x172b0111, - 0x172c0111, 0x172d0111, 0x172e0111, 0x172f0111, 0x17300111, 0x17310111, 0x17320111, 0x17330111, - 0x17340111, 0x17350111, 0x17360111, 0x17370111, 0x17380111, 0x17390111, 0x173a0111, 0x173b0111, - 0x173c0111, 0x173d0111, 0x173e0111, 0x173f0111, 0x17400111, 0x17410111, 0x17420111, 0x17430111, - 0x17440111, 0x17450111, 0x17460111, 0x17470111, 0x17480111, 0x17490111, 0x174a0111, 0x174b0111, - 0x174c0111, 0x174d0111, 0x174e0111, 0x174f0111, 0x17500111, 0x17510111, 0x17520111, 0x17530111, - 0x17540111, 0x17550111, 0x17560111, 0x17570111, 0x17580111, 0x17590111, 0x175a0111, 0x175b0111, - 0x175c0111, 0x175d0111, 0x175e0111, 0x175f0111, 0x17600111, 0x17610111, 0x17620111, 0x17630111, - 0x17640111, 0x17650111, 0x17660111, 0x17670111, 0x17680111, 0x17690111, 0x176a0111, 0x176b0111, - 0x176c0111, 0x176d0111, 0x176e0111, 0x176f0111, 0x17700111, 0x17710111, 0x17720111, 0x17730111, - 0x17740111, 0x17750111, 0x17760111, 0x17770111, 0x17780111, 0x17790111, 0x177a0111, 0x177b0111, - 0x177c0111, 0x177d0111, 0x177e0111, 0x177f0111, 0x17800111, 0x17810111, 0x17820111, 0x17830111, - /* 0x1600 .. 0x16ff */ - 0x17840111, 0x17850111, 0x17860111, 0x17870111, 0x17880111, 0x17890111, 0x178a0111, 0x178b0111, - 0x178c0111, 0x178d0111, 0x178e0111, 0x178f0111, 0x17900111, 0x17910111, 0x17920111, 0x17930111, - 0x17940111, 0x17950111, 0x17960111, 0x17970111, 0x17980111, 0x17990111, 0x179a0111, 0x179b0111, - 0x179c0111, 0x179d0111, 0x179e0111, 0x179f0111, 0x17a00111, 0x17a10111, 0x17a20111, 0x17a30111, - 0x17a40111, 0x17a50111, 0x17a60111, 0x17a70111, 0x17a80111, 0x17a90111, 0x17aa0111, 0x17ab0111, - 0x17ac0111, 0x17ad0111, 0x17ae0111, 0x17af0111, 0x17b00111, 0x17b10111, 0x17b20111, 0x17b30111, - 0x17b40111, 0x17b50111, 0x17b60111, 0x17b70111, 0x17b80111, 0x17b90111, 0x17ba0111, 0x17bb0111, - 0x17bc0111, 0x17bd0111, 0x17be0111, 0x17bf0111, 0x17c00111, 0x17c10111, 0x17c20111, 0x17c30111, - 0x17c40111, 0x17c50111, 0x17c60111, 0x17c70111, 0x17c80111, 0x17c90111, 0x17ca0111, 0x17cb0111, - 0x17cc0111, 0x17cd0111, 0x17ce0111, 0x17cf0111, 0x17d00111, 0x17d10111, 0x17d20111, 0x17d30111, - 0x17d40111, 0x17d50111, 0x17d60111, 0x17d70111, 0x17d80111, 0x17d90111, 0x17da0111, 0x17db0111, - 0x17dc0111, 0x17dd0111, 0x17de0111, 0x17df0111, 0x17e00111, 0x17e10111, 0x17e20111, 0x17e30111, - 0x17e40111, 0x17e50111, 0x17e60111, 0x17e70111, 0x17e80111, 0x17e90111, 0x17ea0111, 0x17eb0111, - 0x17ec0111, 0x17ed0111, 0x17ee0111, 0x17ef0111, 0x17f00111, 0x03310111, 0x025d0111, 0x16f90111, - 0x170a0111, 0x17130111, 0x17140111, 0x17150111, 0x17160111, 0x17170111, 0x17180111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x020a0111, 0x17f10111, 0x17f20111, 0x17f30111, 0x17f40111, 0x17f50111, 0x17f60111, 0x17f70111, - 0x17f80111, 0x17f90111, 0x17fa0111, 0x17fb0111, 0x17fc0111, 0x17fd0111, 0x17fe0111, 0x17ff0111, - 0x18000111, 0x18010111, 0x18020111, 0x18030111, 0x18040111, 0x18050111, 0x18060111, 0x18070111, - 0x18080111, 0x18090111, 0x180a0111, 0x02840111, 0x02850111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x180b0111, 0x180b0121, 0x180c0111, 0x18280111, 0x180c0121, 0x180c0121, 0x180d0111, 0x180d0121, - 0x180e0111, 0x180e0121, 0x18260111, 0x18270111, 0x180e0121, 0x180e0121, 0x180e0121, 0x180f0111, - 0x18100111, 0x18110111, 0x18120111, 0x18120121, 0x18120121, 0x18120121, 0x18120121, 0x18130111, - 0x182b0111, 0x18140111, 0x18150111, 0x18150121, 0x18150121, 0x18150121, 0x18160111, 0x18160121, - 0x18160121, 0x18170111, 0x18170121, 0x18180111, 0x18180121, 0x18190111, 0x18190121, 0x181a0111, - 0x181b0111, 0x181c0111, 0x181d0111, 0x181d0121, 0x181d0121, 0x181d0121, 0x181d0121, 0x181e0111, - 0x181e0121, 0x181e0121, 0x181f0111, 0x181f0121, 0x181f0121, 0x181b0121, 0x18200111, 0x18210111, - 0x18210121, 0x18210121, 0x18220111, 0x18220121, 0x18230111, 0x18230121, 0x18240111, 0x18250111, - 0x18290111, 0x182d0111, 0x182e0111, 0x182a0111, 0x182c0111, 0x182f0111, 0x18300111, 0x18300121, - 0x18300121, 0x18140121, 0x181d0121, 0x02480111, 0x02490111, 0x024a0111, 0x18190121, 0x18210121, - 0x180d0121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1700 .. 0x17ff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x145f0111, 0x14600111, 0x14610111, 0x14620111, 0x14630111, 0x14640111, 0x14650111, 0x14660111, - 0x14670111, 0x14680111, 0x14690111, 0x146a0111, 0x146b0111, 0x146c0111, 0x146d0111, 0x146e0111, - 0x146f0111, 0x14700111, 0x14710111, 0x14720111, 0x14730111, 0x14740111, 0x14750111, 0x14760111, - 0x14770111, 0x14780111, 0x14790111, 0x147a0111, 0x147b0111, 0x147c0111, 0x147d0111, 0x147e0111, - 0x147f0111, 0x14800111, 0x14810111, 0x14820111, 0x14830111, 0x14840111, 0x14850111, 0x14860111, - 0x14870111, 0x14880111, 0x14890111, 0x148a0111, 0x148b0111, 0x148c0111, 0x148d0111, 0x148e0111, - 0x148f0111, 0x14900111, 0x14910111, 0x14920111, 0x14930111, 0x14940111, 0x14950111, 0x14960111, - 0x14970111, 0x14980111, 0x14990111, 0x149a0111, 0x149b0111, 0x149c0111, 0x149d0111, 0x149e0111, - 0x149f0111, 0x14a00111, 0x14a10111, 0x14a20111, 0x14a30111, 0x14a40111, 0x0000cf11, 0x0000d011, - 0x0000d111, 0x0000d211, 0x0000d311, 0x0000d411, 0x0000d511, 0x0000d611, 0x0000d711, 0x0000d811, - 0x0000d911, 0x0000da11, 0x14a50111, 0x0000db11, 0x02640111, 0x02650111, 0x02470111, 0x02e40111, - 0x02e50111, 0x02e60111, 0x02e70111, 0x09e60111, 0x02e80111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1800 .. 0x18ff */ - 0x02cb0111, 0x02560111, 0x02320111, 0x025b0111, 0x02440111, 0x02450111, 0x02230111, 0x02240111, - 0x02330111, 0x025c0111, 0x02cc0111, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x14ae0111, 0x14b00111, 0x14b30111, 0x14b90111, 0x14bb0111, 0x14be0111, 0x14c00111, 0x14c30111, - 0x14c40111, 0x14c50111, 0x14ca0111, 0x14cc0111, 0x14cf0111, 0x14d10111, 0x14d60111, 0x14d80111, - 0x14d90111, 0x14da0111, 0x14e10111, 0x14e40111, 0x14e70111, 0x14ec0111, 0x14f00111, 0x14f30111, - 0x14f50111, 0x14f70111, 0x14fa0111, 0x14ff0111, 0x15000111, 0x15030111, 0x15070111, 0x150a0111, - 0x150b0111, 0x150c0111, 0x150d0111, 0x14ad0111, 0x14b10111, 0x14b40111, 0x14ba0111, 0x14bc0111, - 0x14bf0111, 0x14c10111, 0x14c60111, 0x14cb0111, 0x14cd0111, 0x14d00111, 0x14d20111, 0x14d70111, - 0x14e20111, 0x14e50111, 0x14e80111, 0x14ed0111, 0x15010111, 0x14f10111, 0x14f60111, 0x14fb0111, - 0x15050111, 0x15080111, 0x150e0111, 0x150f0111, 0x14ea0111, 0x14b20111, 0x14b50111, 0x14b80111, - 0x14c20111, 0x14bd0111, 0x14c70111, 0x14fc0111, 0x14d30111, 0x14d50111, 0x14ce0111, 0x14db0111, - 0x14e30111, 0x14e60111, 0x14ee0111, 0x14f80111, 0x15060111, 0x15090111, 0x15020111, 0x15040111, - 0x15100111, 0x14e90111, 0x14f20111, 0x14b60111, 0x14fd0111, 0x14f40111, 0x14f90111, 0x14ef0111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x14a60111, 0x14a70111, 0x14a80111, 0x14a90111, 0x14aa0111, 0x14ab0111, 0x14ac0111, 0x14af0111, - 0x14b70111, 0x14fe0111, 0x14c80111, 0x14eb0111, 0x15110111, 0x15130111, 0x15140111, 0x15160111, - 0x15170111, 0x151a0111, 0x151c0111, 0x151d0111, 0x151f0111, 0x15210111, 0x15230111, 0x15240111, - 0x15180111, 0x15220111, 0x14d40111, 0x14c90111, 0x14dc0111, 0x14dd0111, 0x15120111, 0x15150111, - 0x15190111, 0x151b0111, 0x14de0111, 0x15200111, 0x14df0111, 0x14e00111, 0x15250111, 0x15260111, - 0x151e0111, 0x15270111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1e00 .. 0x1eff */ - 0x0a150151, 0x0a150111, 0x0a290141, 0x0a290111, 0x0a290141, 0x0a290111, 0x0a290141, 0x0a290111, - 0x0a3d0151, 0x0a3d0111, 0x0a490151, 0x0a490111, 0x0a490151, 0x0a490111, 0x0a490151, 0x0a490111, - 0x0a490151, 0x0a490111, 0x0a490151, 0x0a490111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, - 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a910151, 0x0a910111, - 0x0a990151, 0x0a990111, 0x0ab90151, 0x0ab90111, 0x0ab90151, 0x0ab90111, 0x0ab90151, 0x0ab90111, - 0x0ab90151, 0x0ab90111, 0x0ab90151, 0x0ab90111, 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, - 0x0af70141, 0x0af70111, 0x0af70141, 0x0af70111, 0x0af70141, 0x0af70111, 0x0b030161, 0x0b030111, - 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b2b0151, 0x0b2b0111, - 0x0b2b0151, 0x0b2b0111, 0x0b2b0151, 0x0b2b0111, 0x0b330151, 0x0b330111, 0x0b330151, 0x0b330111, - 0x0b330151, 0x0b330111, 0x0b330151, 0x0b330111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b670141, 0x0b670111, 0x0b670141, 0x0b670111, - 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, - 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, - 0x0ba70151, 0x0ba70111, 0x0bbf0151, 0x0bbf0111, 0x0bbf0151, 0x0bbf0111, 0x0bbf0151, 0x0bbf0111, - 0x0bbf0151, 0x0bbf0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, - 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bef0151, 0x0bef0111, 0x0bef0151, 0x0bef0111, - 0x0bfb0141, 0x0bfb0111, 0x0bfb0141, 0x0bfb0111, 0x0bfb0141, 0x0bfb0111, 0x0bfb0141, 0x0bfb0111, - 0x0bfb0141, 0x0bfb0111, 0x0c030151, 0x0c030111, 0x0c030151, 0x0c030111, 0x0c070141, 0x0c070111, - 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0ab90111, 0x0bbf0111, - 0x0bfb0111, 0x0c070111, 0x0a150131, 0x0ba70131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, - 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, - 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, - 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, - 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, - 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, - 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, - 0x0bd70141, 0x0bd70111, 0x0c070141, 0x0c070111, 0x0c070141, 0x0c070111, 0x0c070141, 0x0c070111, - 0x0c070141, 0x0c070111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1f00 .. 0x1fff */ - 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, - 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, - 0x0c950111, 0x0c950111, 0x0c950111, 0x0c950111, 0x0c950111, 0x0c950111, 0xffffffff, 0xffffffff, - 0x0c950131, 0x0c950131, 0x0c950131, 0x0c950131, 0x0c950131, 0x0c950131, 0xffffffff, 0xffffffff, - 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, - 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, - 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, - 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, - 0x0ca20111, 0x0ca20111, 0x0ca20111, 0x0ca20111, 0x0ca20111, 0x0ca20111, 0xffffffff, 0xffffffff, - 0x0ca20121, 0x0ca20121, 0x0ca20121, 0x0ca20121, 0x0ca20121, 0x0ca20121, 0xffffffff, 0xffffffff, - 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, - 0xffffffff, 0x0ca80121, 0xffffffff, 0x0ca80121, 0xffffffff, 0x0ca80121, 0xffffffff, 0x0ca80121, - 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, - 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, - 0x0c910111, 0x0c910111, 0x0c950111, 0x0c950111, 0x0c990111, 0x0c990111, 0x0c9b0111, 0x0c9b0111, - 0x0ca20111, 0x0ca20111, 0x0ca80111, 0x0ca80111, 0x0cac0111, 0x0cac0111, 0xffffffff, 0xffffffff, - 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, - 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, - 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, - 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, - 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, - 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, - 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0xffffffff, 0x0c910111, 0x0c910111, - 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x02170111, 0x0c9b0111, 0x02170111, - 0x021d0111, 0x02140111, 0x0c990111, 0x0c990111, 0x0c990111, 0xffffffff, 0x0c990111, 0x0c990111, - 0x0c950131, 0x0c950131, 0x0c990121, 0x0c990121, 0x0c990121, 0x02170111, 0x02170111, 0x02170111, - 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0xffffffff, 0xffffffff, 0x0c9b0111, 0x0c9b0111, - 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0xffffffff, 0x02180111, 0x02180111, 0x02180111, - 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca50111, 0x0ca50111, 0x0ca80111, 0x0ca80111, - 0x0ca80121, 0x0ca80121, 0x0ca80121, 0x0ca80121, 0x0ca50131, 0x02140111, 0x02140111, 0x020c0111, - 0xffffffff, 0xffffffff, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0xffffffff, 0x0cac0111, 0x0cac0111, - 0x0ca20121, 0x0ca20121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x020d0111, 0x02180111, 0xffffffff, - /* 0x2000 .. 0x20ff */ - 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090141, - 0x02090131, 0x02090131, 0x02090131, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x02250111, 0x02250121, 0x02260111, 0x02270111, 0x02280111, 0x02290111, 0x03a90111, 0x021c0111, - 0x026a0111, 0x026b0111, 0x026c0111, 0x026d0111, 0x02710111, 0x02720111, 0x02730111, 0x02740111, - 0x02ae0111, 0x02af0111, 0x02b00111, 0x02b10111, 0x02550131, 0x02550131, 0x02550131, 0x02b20111, - 0x02070111, 0x02080111, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02090141, - 0x02ac0111, 0x02ad0111, 0x02b60111, 0x02b60121, 0x02b60121, 0x02b70111, 0x02b70121, 0x02b70121, - 0x02b90111, 0x026e0111, 0x026f0111, 0x02ba0111, 0x024b0131, 0x02540111, 0x02110111, 0x02bb0111, - 0x02bc0111, 0x02bd0111, 0x02be0111, 0x02b30111, 0x02a50111, 0x02860111, 0x02870111, 0xffffffff, - 0x024e0131, 0x024b0131, 0x02a80111, 0x029e0111, 0x02b40111, 0x02b50111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x0a0b0151, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0f0151, 0x0a100151, 0x0a110151, 0x0a120151, - 0x0a130151, 0x0a140151, 0x039f0151, 0x03ab0121, 0x03a40141, 0x027a0151, 0x027b0141, 0x0b3301a1, - 0x0a0b0161, 0x0a0c0161, 0x0a0d0161, 0x0a0e0161, 0x0a0f0161, 0x0a100161, 0x0a110161, 0x0a120161, - 0x0a130161, 0x0a140161, 0x039f0161, 0x03ab0131, 0x03a40151, 0x027a0161, 0x027b0151, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x09e70111, 0x09e80111, 0x09e90111, 0x09ea0111, 0x09eb0111, 0x09ec0111, 0x09ed0111, 0x09ee0111, - 0x0b7f0161, 0x09ef0111, 0x09f00111, 0x09f10111, 0x09f20111, 0x09f30111, 0x09f40111, 0x09f50111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0000e411, 0x0000e511, 0x0000e611, 0x0000e711, 0x0000e811, 0x0000e911, 0x0000ea11, 0x0000eb11, - 0x0000ec11, 0x0000ed11, 0x0000ee11, 0x0000ef11, 0x0000f011, 0x0000f111, 0x0000f211, 0x0000f311, - 0x0000f411, 0x0000f511, 0x0000f611, 0x0000f711, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2100 .. 0x21ff */ - 0x0a150131, 0x0a150131, 0x0a3d0181, 0x030a0121, 0x09f60111, 0x0a3d0131, 0x0a3d0131, 0x0a710131, - 0x09f70111, 0x030a0121, 0x0a990131, 0x0ab90171, 0x0ab90171, 0x0ab90171, 0x0ab90131, 0x0ac50121, - 0x0ad30191, 0x0ad30191, 0x0b030191, 0x0b030141, 0x09f80111, 0x0b330181, 0x0b330171, 0x09f90111, - 0x09fa0111, 0x0b670161, 0x0b730161, 0x0b7f0171, 0x0b7f0171, 0x0b7f0171, 0x09fb0111, 0x09fc0111, - 0x0ba70181, 0x0bbf0171, 0x0bbf0191, 0x09fd0111, 0x0c130161, 0x09fe0111, 0x0cac0121, 0x09ff0111, - 0x0c130161, 0x0a000111, 0x0af70141, 0x0a150151, 0x0a290161, 0x0a3d0181, 0x0a010111, 0x0a650131, - 0x0a650171, 0x0a910171, 0x0a020111, 0x0b2b0181, 0x0b4b0141, 0x0eb70121, 0x0eb80121, 0x0eb90121, - 0x0eba0121, 0x0ad30141, 0x0a030111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0c0171, 0x0a0d0171, 0x0a0c0171, 0x0a0d0171, 0x0a0e0171, - 0x0a0f0171, 0x0a0c0171, 0x0a100171, 0x0a0c0171, 0x0a0e0171, 0x0a100171, 0x0a120171, 0x0a0c0171, - 0x0ad30181, 0x0ad30181, 0x0ad30181, 0x0ad30181, 0x0bef0171, 0x0bef0171, 0x0bef0171, 0x0bef0171, - 0x0ad30181, 0x0c030171, 0x0c030171, 0x0c030171, 0x0b030181, 0x0a3d0171, 0x0a490171, 0x0b2b0171, - 0x0ad30131, 0x0ad30131, 0x0ad30131, 0x0ad30131, 0x0bef0131, 0x0bef0131, 0x0bef0131, 0x0bef0131, - 0x0ad30131, 0x0c030131, 0x0c030131, 0x0c030131, 0x0b030131, 0x0a3d0131, 0x0a490131, 0x0b2b0131, - 0x0a040111, 0x0a050111, 0x0a060111, 0x0a070111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x03320111, 0x03340111, 0x03330111, 0x03350111, 0x03360111, 0x03370111, 0x03380111, 0x03390111, - 0x033a0111, 0x033b0111, 0x03320111, 0x03330111, 0x033c0111, 0x033d0111, 0x033e0111, 0x033f0111, - 0x03400111, 0x03410111, 0x03420111, 0x03430111, 0x03440111, 0x03450111, 0x03460111, 0x03470111, - 0x03480111, 0x03490111, 0x034a0111, 0x034b0111, 0x034c0111, 0x034d0111, 0x03360111, 0x034e0111, - 0x034f0111, 0x03500111, 0x03510111, 0x03520111, 0x03530111, 0x03540111, 0x03550111, 0x03560111, - 0x03570111, 0x03580111, 0x03590111, 0x035a0111, 0x035b0111, 0x035c0111, 0x035d0111, 0x035e0111, - 0x035f0111, 0x03600111, 0x03610111, 0x03620111, 0x03630111, 0x03640111, 0x03650111, 0x03660111, - 0x03670111, 0x03680111, 0x03690111, 0x036a0111, 0x036b0111, 0x036c0111, 0x03700111, 0x036e0111, - 0x036c0111, 0x036d0111, 0x036e0111, 0x036f0111, 0x03700111, 0x03710111, 0x03720111, 0x03730111, - 0x03740111, 0x03750111, 0x03760111, 0x03770111, 0x03780111, 0x03790111, 0x037a0111, 0x037b0111, - 0x037c0111, 0x037d0111, 0x037e0111, 0x037f0111, 0x03800111, 0x03810111, 0x03820111, 0x03830111, - 0x03840111, 0x03850111, 0x03860111, 0x03870111, 0x03880111, 0x03890111, 0x038a0111, 0x038b0111, - 0x038c0111, 0x038d0111, 0x038e0111, 0x038f0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2200 .. 0x22ff */ - 0x03900111, 0x03910111, 0x03920111, 0x03930111, 0x03930111, 0x03940111, 0x03950111, 0x03960111, - 0x03970111, 0x03970111, 0x03980111, 0x03990111, 0x03990111, 0x039a0111, 0x039b0111, 0x039c0111, - 0x039d0111, 0x039e0111, 0x03ab0111, 0x03ac0111, 0x03ad0111, 0x03ae0111, 0x03af0111, 0x03b00111, - 0x03b10111, 0x03b20111, 0x03b30111, 0x03b40111, 0x03b50111, 0x03b60111, 0x03b70111, 0x03b80111, - 0x03b90111, 0x03ba0111, 0x03bb0111, 0x03bc0111, 0x03bc0111, 0x03bd0111, 0x03bd0111, 0x03be0111, - 0x03bf0111, 0x03c00111, 0x03c10111, 0x03c20111, 0x03c20121, 0x03c20121, 0x03c30111, 0x03c30121, - 0x03c30121, 0x03c40111, 0x03c50111, 0x03c60111, 0x03c70111, 0x03c80111, 0x03c90111, 0x03ca0111, - 0x03cb0111, 0x03cc0111, 0x03cd0111, 0x03ce0111, 0x03cf0111, 0x03d00111, 0x03d10111, 0x03d20111, - 0x03d30111, 0x03cf0111, 0x03d40111, 0x03d50111, 0x03d50111, 0x03d60111, 0x03d70111, 0x03d60111, - 0x03d80111, 0x03d80111, 0x03d90111, 0x03da0111, 0x03db0111, 0x03dc0111, 0x03dd0111, 0x03de0111, - 0x03df0111, 0x03e00111, 0x03e10111, 0x03e20111, 0x03e30111, 0x03e40111, 0x03e50111, 0x03e60111, - 0x03e70111, 0x03e80111, 0x03e90111, 0x03ea0111, 0x03eb0111, 0x03ec0111, 0x03ed0111, 0x03ee0111, - 0x03a40111, 0x03ef0111, 0x03ef0111, 0x03f00111, 0x03f10111, 0x03f20111, 0x03f30111, 0x03f40111, - 0x03f50111, 0x03f60111, 0x03f70111, 0x03f80111, 0x03f90111, 0x03dc0111, 0x03a30111, 0x03a50111, - 0x03f10111, 0x03f20111, 0x03fa0111, 0x03fb0111, 0x03fa0111, 0x03fb0111, 0x03fc0111, 0x03fd0111, - 0x03fc0111, 0x03fd0111, 0x03fe0111, 0x03ff0111, 0x04000111, 0x04010111, 0x04020111, 0x04030111, - 0x03fe0111, 0x03ff0111, 0x04040111, 0x04050111, 0x04040111, 0x04050111, 0x04060111, 0x04070111, - 0x04060111, 0x04070111, 0x04080111, 0x04090111, 0x040a0111, 0x040b0111, 0x040c0111, 0x040d0111, - 0x040e0111, 0x040f0111, 0x04100111, 0x04110111, 0x04120111, 0x04130111, 0x04140111, 0x04150111, - 0x04160111, 0x04170111, 0x04180111, 0x04190111, 0x041a0111, 0x041b0111, 0x041c0111, 0x041d0111, - 0x041e0111, 0x041f0111, 0x04200111, 0x04210111, 0x04220111, 0x04230111, 0x04240111, 0x04250111, - 0x04260111, 0x04270111, 0x04280111, 0x04290111, 0x04200111, 0x04260111, 0x04270111, 0x04290111, - 0x042a0111, 0x042b0111, 0x042c0111, 0x042d0111, 0x042e0111, 0x042f0111, 0x04300111, 0x04310111, - 0x04320111, 0x04330111, 0x04340111, 0x04350111, 0x04360111, 0x04370111, 0x04380111, 0x04390111, - 0x043a0111, 0x043b0111, 0x043c0111, 0x043d0111, 0x043e0111, 0x043f0111, 0x04400111, 0x04410111, - 0x04420111, 0x04430111, 0x04440111, 0x04450111, 0x04460111, 0x04470111, 0x04480111, 0x04490111, - 0x044a0111, 0x044b0111, 0x044c0111, 0x044d0111, 0x044e0111, 0x044f0111, 0x04500111, 0x04510111, - 0x04520111, 0x04530111, 0x04540111, 0x04550111, 0x04560111, 0x04570111, 0x04580111, 0x04590111, - 0x04000111, 0x04010111, 0x040f0111, 0x04100111, 0x045a0111, 0x045b0111, 0x045c0111, 0x045d0111, - 0x045e0111, 0x045f0111, 0x042c0111, 0x042d0111, 0x042e0111, 0x042f0111, 0x04600111, 0x04610111, - 0x04620111, 0x04630111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2300 .. 0x23ff */ - 0x04640111, 0x04650111, 0x04660111, 0x04670111, 0x04680111, 0x04690111, 0x046a0111, 0x046b0111, - 0x046c0111, 0x046d0111, 0x046e0111, 0x046f0111, 0x04700111, 0x04710111, 0x04720111, 0x04730111, - 0x04740111, 0x04750111, 0x04760111, 0x04770111, 0x04780111, 0x04790111, 0x047a0111, 0x047b0111, - 0x047c0111, 0x047d0111, 0x047e0111, 0x047f0111, 0x04800111, 0x04810111, 0x04820111, 0x04830111, - 0x04840111, 0x04850111, 0x04860111, 0x04870111, 0x04880111, 0x04890111, 0x048a0111, 0x048b0111, - 0x048c0111, 0x02880111, 0x02890111, 0x048d0111, 0x048e0111, 0x048f0111, 0x04900111, 0x04910111, - 0x04920111, 0x04930111, 0x04940111, 0x04950111, 0x04960111, 0x04970111, 0x04980111, 0x04990111, - 0x049a0111, 0x049b0111, 0x049c0111, 0x049d0111, 0x049e0111, 0x049f0111, 0x04a00111, 0x04a10111, - 0x04a20111, 0x04a30111, 0x04a40111, 0x04a50111, 0x04a60111, 0x04a70111, 0x04a80111, 0x04a90111, - 0x04aa0111, 0x04ab0111, 0x04ac0111, 0x04ad0111, 0x04ae0111, 0x04af0111, 0x04b00111, 0x04b10111, - 0x04b20111, 0x04b30111, 0x04b40111, 0x04b50111, 0x04b60111, 0x04b70111, 0x04b80111, 0x04b90111, - 0x04ba0111, 0x04bb0111, 0x04bc0111, 0x04bd0111, 0x04be0111, 0x04bf0111, 0x04c00111, 0x04c10111, - 0x04c20111, 0x04c30111, 0x04c40111, 0x04c50111, 0x04c60111, 0x04c70111, 0x04c80111, 0x04c90111, - 0x04ca0111, 0x04cb0111, 0x04cc0111, 0x04cd0111, 0x04ce0111, 0x04cf0111, 0x04d00111, 0x04d10111, - 0x04d20111, 0x04d30111, 0x04d40111, 0x04d50111, 0x04d60111, 0x04d70111, 0x04d80111, 0x04d90111, - 0x04da0111, 0x04db0111, 0x04dc0111, 0x04dd0111, 0xffffffff, 0x04de0111, 0x04df0111, 0x04e00111, - 0x04e10111, 0x04e20111, 0x04e30111, 0x04e40111, 0x04e50111, 0x04e60111, 0x04e70111, 0x04e80111, - 0x04e90111, 0x04ea0111, 0x04eb0111, 0x04ec0111, 0x04ed0111, 0x04ee0111, 0x04ef0111, 0x04f00111, - 0x04f10111, 0x04f20111, 0x04f30111, 0x04f40111, 0x04f50111, 0x04f60111, 0x04f70111, 0x04f80111, - 0x04f90111, 0x04fa0111, 0x04fb0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2400 .. 0x24ff */ - 0x04fc0111, 0x04fd0111, 0x04fe0111, 0x04ff0111, 0x05000111, 0x05010111, 0x05020111, 0x05030111, - 0x05040111, 0x05050111, 0x05060111, 0x05070111, 0x05080111, 0x05090111, 0x050a0111, 0x050b0111, - 0x050c0111, 0x050d0111, 0x050e0111, 0x050f0111, 0x05100111, 0x05110111, 0x05120111, 0x05130111, - 0x05140111, 0x05150111, 0x05160111, 0x05170111, 0x05180111, 0x05190111, 0x051a0111, 0x051b0111, - 0x051c0111, 0x051d0111, 0x051e0111, 0x051f0111, 0x05200111, 0x05210111, 0x05220111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x05230111, 0x05240111, 0x05250111, 0x05260111, 0x05270111, 0x05280111, 0x05290111, 0x052a0111, - 0x052b0111, 0x052c0111, 0x052d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141, - 0x0a140141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, - 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0d0141, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, 0x0a130131, - 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, - 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0d0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x0a150171, 0x0a290171, - 0x0a3d0191, 0x0a490181, 0x0a650181, 0x0a910181, 0x0a990171, 0x0ab90181, 0x0ad301a1, 0x0ae70161, - 0x0af70161, 0x0b0301a1, 0x0b2b0191, 0x0b330191, 0x0b4b0191, 0x0b670171, 0x0b730171, 0x0b7f0181, - 0x0ba70171, 0x0bbf0181, 0x0bd70161, 0x0bef0181, 0x0bfb0161, 0x0c030181, 0x0c070161, 0x0c130171, - 0x0a150141, 0x0a290131, 0x0a3d0141, 0x0a490141, 0x0a650141, 0x0a910141, 0x0a990141, 0x0ab90141, - 0x0ad30151, 0x0ae70131, 0x0af70131, 0x0b030151, 0x0b2b0141, 0x0b330141, 0x0b4b0151, 0x0b670131, - 0x0b730131, 0x0b7f0131, 0x0ba70141, 0x0bbf0141, 0x0bd70131, 0x0bef0141, 0x0bfb0131, 0x0c030141, - 0x0c070131, 0x0c130131, 0x0a0b0141, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2500 .. 0x25ff */ - 0x052e0111, 0x052f0111, 0x05300111, 0x05310111, 0x05320111, 0x05330111, 0x05340111, 0x05350111, - 0x05360111, 0x05370111, 0x05380111, 0x05390111, 0x053a0111, 0x053b0111, 0x053c0111, 0x053d0111, - 0x053e0111, 0x053f0111, 0x05400111, 0x05410111, 0x05420111, 0x05430111, 0x05440111, 0x05450111, - 0x05460111, 0x05470111, 0x05480111, 0x05490111, 0x054a0111, 0x054b0111, 0x054c0111, 0x054d0111, - 0x054e0111, 0x054f0111, 0x05500111, 0x05510111, 0x05520111, 0x05530111, 0x05540111, 0x05550111, - 0x05560111, 0x05570111, 0x05580111, 0x05590111, 0x055a0111, 0x055b0111, 0x055c0111, 0x055d0111, - 0x055e0111, 0x055f0111, 0x05600111, 0x05610111, 0x05620111, 0x05630111, 0x05640111, 0x05650111, - 0x05660111, 0x05670111, 0x05680111, 0x05690111, 0x056a0111, 0x056b0111, 0x056c0111, 0x056d0111, - 0x056e0111, 0x056f0111, 0x05700111, 0x05710111, 0x05720111, 0x05730111, 0x05740111, 0x05750111, - 0x05760111, 0x05770111, 0x05780111, 0x05790111, 0x057a0111, 0x057b0111, 0x057c0111, 0x057d0111, - 0x057e0111, 0x057f0111, 0x05800111, 0x05810111, 0x05820111, 0x05830111, 0x05840111, 0x05850111, - 0x05860111, 0x05870111, 0x05880111, 0x05890111, 0x058a0111, 0x058b0111, 0x058c0111, 0x058d0111, - 0x058e0111, 0x058f0111, 0x05900111, 0x05910111, 0x05920111, 0x05930111, 0x05940111, 0x05950111, - 0x05960111, 0x05970111, 0x05980111, 0x05990111, 0x059a0111, 0x059b0111, 0x059c0111, 0x059d0111, - 0x059e0111, 0x059f0111, 0x05a00111, 0x05a10111, 0x05a20111, 0x05a30111, 0x05a40111, 0x05a50111, - 0x05a60111, 0x05a70111, 0x05a80111, 0x05a90111, 0x05aa0111, 0x05ab0111, 0x05ac0111, 0x05ad0111, - 0x05ae0111, 0x05af0111, 0x05b00111, 0x05b10111, 0x05b20111, 0x05b30111, 0x05b40111, 0x05b50111, - 0x05b60111, 0x05b70111, 0x05b80111, 0x05b90111, 0x05ba0111, 0x05bb0111, 0x05bc0111, 0x05bd0111, - 0x05be0111, 0x05bf0111, 0x05c00111, 0x05c10111, 0x05c20111, 0x05c30111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x05c40111, 0x05c50111, 0x05c60111, 0x05c70111, 0x05c80111, 0x05c90111, 0x05ca0111, 0x05cb0111, - 0x05cc0111, 0x05cd0111, 0x05ce0111, 0x05cf0111, 0x05d00111, 0x05d10111, 0x05d20111, 0x05d30111, - 0x05d40111, 0x05d50111, 0x05d60111, 0x05d70111, 0x05d80111, 0x05d90111, 0x05da0111, 0x05db0111, - 0x05dc0111, 0x05dd0111, 0x05de0111, 0x05df0111, 0x05e00111, 0x05e10111, 0x05e20111, 0x05e30111, - 0x05e40111, 0x05e50111, 0x05e60111, 0x05e70111, 0x05e80111, 0x05e90111, 0x05ea0111, 0x05eb0111, - 0x05ec0111, 0x05ed0111, 0x05ee0111, 0x05ef0111, 0x05f00111, 0x05f10111, 0x05f20111, 0x05f30111, - 0x05f40111, 0x05f50111, 0x05f60111, 0x05f70111, 0x05f80111, 0x05f90111, 0x05fa0111, 0x05fb0111, - 0x05fc0111, 0x05fd0111, 0x05fe0111, 0x05ff0111, 0x06000111, 0x06010111, 0x06020111, 0x06030111, - 0x06040111, 0x06050111, 0x06060111, 0x06070111, 0x06080111, 0x06090111, 0x060a0111, 0x060b0111, - 0x060c0111, 0x060d0111, 0x060e0111, 0x060f0111, 0x06100111, 0x06110111, 0x06120111, 0x06130111, - 0x06140111, 0x06150111, 0x06160111, 0x06170111, 0x06180111, 0x06190111, 0x061a0111, 0x061b0111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2600 .. 0x26ff */ - 0x061c0111, 0x061d0111, 0x061e0111, 0x061f0111, 0x06200111, 0x06210111, 0x06220111, 0x06230111, - 0x06240111, 0x06250111, 0x06260111, 0x06270111, 0x06280111, 0x06290111, 0x062a0111, 0x062b0111, - 0x062c0111, 0x062d0111, 0x062e0111, 0x062f0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x06300111, 0x06310111, 0x06320111, 0x06330111, 0x06340111, 0x06350111, 0x06360111, - 0x06370111, 0x06380111, 0x06390111, 0x063a0111, 0x063b0111, 0x063c0111, 0x063d0111, 0x063e0111, - 0x063f0111, 0x06400111, 0x06410111, 0x06420111, 0x06430111, 0x06440111, 0x06450111, 0x06460111, - 0x06470111, 0x06480111, 0x06490111, 0x064a0111, 0x064b0111, 0x064c0111, 0x064d0111, 0x064e0111, - 0x064f0111, 0x06500111, 0x06510111, 0x06520111, 0x06530111, 0x06540111, 0x06550111, 0x06560111, - 0x06570111, 0x06580111, 0x06590111, 0x065a0111, 0x065b0111, 0x065c0111, 0x065d0111, 0x065e0111, - 0x065f0111, 0x06600111, 0x06610111, 0x06620111, 0x06630111, 0x06640111, 0x06650111, 0x06660111, - 0x06670111, 0x06680111, 0x06690111, 0x066a0111, 0x066b0111, 0x066c0111, 0x066d0111, 0x066e0111, - 0x066f0111, 0x06700111, 0x06710111, 0x06720111, 0x06730111, 0x06740111, 0x06750111, 0x06760111, - 0x06770111, 0x06780111, 0x06790111, 0x067a0111, 0x067b0111, 0x067c0111, 0x067d0111, 0x067e0111, - 0x067f0111, 0x06800111, 0x06810111, 0x06820111, 0x06830111, 0x0a080111, 0x0a090111, 0x0a0a0111, - 0x06840111, 0x06850111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2700 .. 0x27ff */ - 0xffffffff, 0x06860111, 0x06870111, 0x06880111, 0x06890111, 0xffffffff, 0x068a0111, 0x068b0111, - 0x068c0111, 0x068d0111, 0xffffffff, 0xffffffff, 0x068e0111, 0x068f0111, 0x06900111, 0x06910111, - 0x06920111, 0x06930111, 0x06940111, 0x06950111, 0x06960111, 0x06970111, 0x06980111, 0x06990111, - 0x069a0111, 0x069b0111, 0x069c0111, 0x069d0111, 0x069e0111, 0x069f0111, 0x06a00111, 0x06a10111, - 0x06a20111, 0x06a30111, 0x06a40111, 0x06a50111, 0x06a60111, 0x06a70111, 0x06a80111, 0x06a90111, - 0xffffffff, 0x06aa0111, 0x06ab0111, 0x06ac0111, 0x06ad0111, 0x06ae0111, 0x06af0111, 0x06b00111, - 0x06b10111, 0x06b20111, 0x06b30111, 0x06b40111, 0x06b50111, 0x06b60111, 0x06b70111, 0x06b80111, - 0x06b90111, 0x06ba0111, 0x06bb0111, 0x06bc0111, 0x06bd0111, 0x06be0111, 0x06bf0111, 0x06c00111, - 0x06c10111, 0x06c20111, 0x06c30111, 0x06c40111, 0x06c50111, 0x06c60111, 0x06c70111, 0x06c80111, - 0x06c90111, 0x06ca0111, 0x06cb0111, 0x06cc0111, 0xffffffff, 0x06cd0111, 0xffffffff, 0x06ce0111, - 0x06cf0111, 0x06d00111, 0x06d10111, 0xffffffff, 0xffffffff, 0xffffffff, 0x06d20111, 0xffffffff, - 0x06d30111, 0x06d40111, 0x06d50111, 0x06d60111, 0x06d70111, 0x06d80111, 0x06d90111, 0xffffffff, - 0xffffffff, 0x06da0111, 0x06db0111, 0x06dc0111, 0x06dd0111, 0x06de0111, 0x06df0111, 0x06e00111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0c0141, 0x0a0d0141, - 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141, 0x0a140141, 0x06e10111, - 0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141, - 0x0a140141, 0x06e20111, 0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, - 0x0a120141, 0x0a130141, 0x0a140141, 0x06e30111, 0x06e40111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x06e50111, 0x06e60111, 0x06e70111, 0x06e80111, 0x06e90111, 0x06ea0111, 0x06eb0111, 0x06ec0111, - 0x06ed0111, 0x06ee0111, 0x06ef0111, 0x06f00111, 0x06f10111, 0x06f20111, 0x06f30111, 0x06f40111, - 0x06f50111, 0x06f60111, 0x06f70111, 0x06f80111, 0x06f90111, 0x06fa0111, 0x06fb0111, 0x06fc0111, - 0xffffffff, 0x06fd0111, 0x06fe0111, 0x06ff0111, 0x07000111, 0x07010111, 0x07020111, 0x07030111, - 0x07040111, 0x07050111, 0x07060111, 0x07070111, 0x07080111, 0x07090111, 0x070a0111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2800 .. 0x28ff */ - 0x070b0111, 0x070c0111, 0x070d0111, 0x070e0111, 0x070f0111, 0x07100111, 0x07110111, 0x07120111, - 0x07130111, 0x07140111, 0x07150111, 0x07160111, 0x07170111, 0x07180111, 0x07190111, 0x071a0111, - 0x071b0111, 0x071c0111, 0x071d0111, 0x071e0111, 0x071f0111, 0x07200111, 0x07210111, 0x07220111, - 0x07230111, 0x07240111, 0x07250111, 0x07260111, 0x07270111, 0x07280111, 0x07290111, 0x072a0111, - 0x072b0111, 0x072c0111, 0x072d0111, 0x072e0111, 0x072f0111, 0x07300111, 0x07310111, 0x07320111, - 0x07330111, 0x07340111, 0x07350111, 0x07360111, 0x07370111, 0x07380111, 0x07390111, 0x073a0111, - 0x073b0111, 0x073c0111, 0x073d0111, 0x073e0111, 0x073f0111, 0x07400111, 0x07410111, 0x07420111, - 0x07430111, 0x07440111, 0x07450111, 0x07460111, 0x07470111, 0x07480111, 0x07490111, 0x074a0111, - 0x074b0111, 0x074c0111, 0x074d0111, 0x074e0111, 0x074f0111, 0x07500111, 0x07510111, 0x07520111, - 0x07530111, 0x07540111, 0x07550111, 0x07560111, 0x07570111, 0x07580111, 0x07590111, 0x075a0111, - 0x075b0111, 0x075c0111, 0x075d0111, 0x075e0111, 0x075f0111, 0x07600111, 0x07610111, 0x07620111, - 0x07630111, 0x07640111, 0x07650111, 0x07660111, 0x07670111, 0x07680111, 0x07690111, 0x076a0111, - 0x076b0111, 0x076c0111, 0x076d0111, 0x076e0111, 0x076f0111, 0x07700111, 0x07710111, 0x07720111, - 0x07730111, 0x07740111, 0x07750111, 0x07760111, 0x07770111, 0x07780111, 0x07790111, 0x077a0111, - 0x077b0111, 0x077c0111, 0x077d0111, 0x077e0111, 0x077f0111, 0x07800111, 0x07810111, 0x07820111, - 0x07830111, 0x07840111, 0x07850111, 0x07860111, 0x07870111, 0x07880111, 0x07890111, 0x078a0111, - 0x078b0111, 0x078c0111, 0x078d0111, 0x078e0111, 0x078f0111, 0x07900111, 0x07910111, 0x07920111, - 0x07930111, 0x07940111, 0x07950111, 0x07960111, 0x07970111, 0x07980111, 0x07990111, 0x079a0111, - 0x079b0111, 0x079c0111, 0x079d0111, 0x079e0111, 0x079f0111, 0x07a00111, 0x07a10111, 0x07a20111, - 0x07a30111, 0x07a40111, 0x07a50111, 0x07a60111, 0x07a70111, 0x07a80111, 0x07a90111, 0x07aa0111, - 0x07ab0111, 0x07ac0111, 0x07ad0111, 0x07ae0111, 0x07af0111, 0x07b00111, 0x07b10111, 0x07b20111, - 0x07b30111, 0x07b40111, 0x07b50111, 0x07b60111, 0x07b70111, 0x07b80111, 0x07b90111, 0x07ba0111, - 0x07bb0111, 0x07bc0111, 0x07bd0111, 0x07be0111, 0x07bf0111, 0x07c00111, 0x07c10111, 0x07c20111, - 0x07c30111, 0x07c40111, 0x07c50111, 0x07c60111, 0x07c70111, 0x07c80111, 0x07c90111, 0x07ca0111, - 0x07cb0111, 0x07cc0111, 0x07cd0111, 0x07ce0111, 0x07cf0111, 0x07d00111, 0x07d10111, 0x07d20111, - 0x07d30111, 0x07d40111, 0x07d50111, 0x07d60111, 0x07d70111, 0x07d80111, 0x07d90111, 0x07da0111, - 0x07db0111, 0x07dc0111, 0x07dd0111, 0x07de0111, 0x07df0111, 0x07e00111, 0x07e10111, 0x07e20111, - 0x07e30111, 0x07e40111, 0x07e50111, 0x07e60111, 0x07e70111, 0x07e80111, 0x07e90111, 0x07ea0111, - 0x07eb0111, 0x07ec0111, 0x07ed0111, 0x07ee0111, 0x07ef0111, 0x07f00111, 0x07f10111, 0x07f20111, - 0x07f30111, 0x07f40111, 0x07f50111, 0x07f60111, 0x07f70111, 0x07f80111, 0x07f90111, 0x07fa0111, - 0x07fb0111, 0x07fc0111, 0x07fd0111, 0x07fe0111, 0x07ff0111, 0x08000111, 0x08010111, 0x08020111, - 0x08030111, 0x08040111, 0x08050111, 0x08060111, 0x08070111, 0x08080111, 0x08090111, 0x080a0111, - /* 0x2e00 .. 0x2eff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xfb400121, 0xfb400121, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400111, - 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400121, - 0xfb400111, 0xfb400111, 0xffffffff, 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400121, - 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400111, 0xfb400121, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410111, 0xfb410121, - 0xfb410121, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, - 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, - 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410111, 0xfb410111, 0xfb410121, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, - 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2f00 .. 0x2fff */ - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x09a90111, 0x09aa0111, 0x09ab0111, 0x09ac0111, 0x09ad0111, 0x09ae0111, 0x09af0111, 0x09b00111, - 0x09b10111, 0x09b20111, 0x09b30111, 0x09b40111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x3000 .. 0x30ff */ - 0x02090121, 0x02340111, 0x025e0111, 0x02b80111, 0x09b50111, 0x09d70111, 0x192c0111, 0x0a0b0111, - 0x02880111, 0x02890111, 0x028a0111, 0x028b0111, 0x028c0111, 0x028d0111, 0x028e0111, 0x028f0111, - 0x02900111, 0x02910111, 0x09b60111, 0x09b70111, 0x02920111, 0x02930111, 0x02940111, 0x02950111, - 0x02960111, 0x02970111, 0x02980111, 0x02990111, 0x022a0111, 0x02750111, 0x02760111, 0x02770111, - 0x09b80111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x0000dc11, 0x0000dd11, 0x0000de11, 0x0000df11, 0x0000e011, 0x0000e111, - 0x022b0111, 0x09d80111, 0x09d80111, 0x09d90111, 0x09d90111, 0x09da0111, 0x09b60121, 0x09b90111, - 0xfb400121, 0xfb400121, 0xfb400121, 0xffffffff, 0xffffffff, 0xffffffff, 0x09ba0111, 0x09bb0111, - 0xffffffff, 0x19210111, 0x19210121, 0x19220111, 0x19220121, 0x19230111, 0x19230121, 0x19240111, - 0x19240121, 0x19250111, 0x19250121, 0x19260111, 0x19260111, 0x19270111, 0x19270111, 0x19280111, - 0x19280111, 0x19290111, 0x19290111, 0x192a0111, 0x192a0111, 0x192b0111, 0x192b0111, 0x192c0121, - 0x192c0121, 0x192d0111, 0x192d0111, 0x192e0111, 0x192e0111, 0x192f0111, 0x192f0111, 0x19300111, - 0x19300111, 0x19310111, 0x19310111, 0x19320111, 0x19320121, 0x19320121, 0x19330111, 0x19330111, - 0x19340111, 0x19340111, 0x19350111, 0x19360111, 0x19370111, 0x19380111, 0x19390111, 0x193a0111, - 0x193a0111, 0x193a0111, 0x193b0111, 0x193b0111, 0x193b0111, 0x193c0111, 0x193c0111, 0x193c0111, - 0x193d0111, 0x193d0111, 0x193d0111, 0x193e0111, 0x193e0111, 0x193e0111, 0x193f0111, 0x19400111, - 0x19410111, 0x19420111, 0x19430111, 0x19440111, 0x19440121, 0x19450111, 0x19450121, 0x19460111, - 0x19460121, 0x19470111, 0x19480111, 0x19490111, 0x194a0111, 0x194b0111, 0x194c0111, 0x194c0121, - 0x194d0111, 0x194e0111, 0x194f0111, 0x19500111, 0x19230121, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x0000e211, 0x0000e311, 0x021e0111, 0x021f0111, 0x09db0111, 0x09db0111, 0xffffffff, - 0xffffffff, 0x19210131, 0x19210151, 0x19220131, 0x19220151, 0x19230131, 0x19230151, 0x19240131, - 0x19240151, 0x19250131, 0x19250151, 0x19260131, 0x19260131, 0x19270121, 0x19270121, 0x19280121, - 0x19280121, 0x19290131, 0x19290131, 0x192a0121, 0x192a0121, 0x192b0121, 0x192b0121, 0x192c0131, - 0x192c0131, 0x192d0121, 0x192d0121, 0x192e0121, 0x192e0121, 0x192f0121, 0x192f0121, 0x19300121, - 0x19300121, 0x19310121, 0x19310121, 0x19320131, 0x19320151, 0x19320151, 0x19330121, 0x19330121, - 0x19340121, 0x19340121, 0x19350121, 0x19360121, 0x19370121, 0x19380121, 0x19390121, 0x193a0121, - 0x193a0121, 0x193a0121, 0x193b0121, 0x193b0121, 0x193b0121, 0x193c0121, 0x193c0121, 0x193c0121, - 0x193d0121, 0x193d0121, 0x193d0121, 0x193e0121, 0x193e0121, 0x193e0121, 0x193f0121, 0x19400121, - 0x19410121, 0x19420121, 0x19430121, 0x19440131, 0x19440151, 0x19450131, 0x19450151, 0x19460131, - 0x19460151, 0x19470121, 0x19480121, 0x19490121, 0x194a0121, 0x194b0121, 0x194c0131, 0x194c0141, - 0x194d0121, 0x194e0121, 0x194f0121, 0x19500121, 0x19230151, 0x19260121, 0x19290121, 0x194c0141, - 0x194d0121, 0x194e0121, 0x194f0121, 0x022c0111, 0x09dc0111, 0x09dd0111, 0x09dd0111, 0xffffffff, - /* 0x3100 .. 0x31ff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x19510111, 0x19520111, 0x19530111, - 0x19540111, 0x19560111, 0x19570111, 0x19580111, 0x19590111, 0x195a0111, 0x195b0111, 0x195e0111, - 0x195f0111, 0x19600111, 0x19610111, 0x19630111, 0x19640111, 0x19650111, 0x19660111, 0x19670111, - 0x19680111, 0x19690111, 0x196a0111, 0x196b0111, 0x196d0111, 0x196e0111, 0x19700111, 0x19710111, - 0x19720111, 0x19730111, 0x19740111, 0x19750111, 0x19760111, 0x19780111, 0x197c0111, 0x197d0111, - 0x197e0111, 0x197f0111, 0x19550111, 0x195c0111, 0x19620111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x18310121, 0x18320121, 0x18d10121, 0x18330121, 0x18d30121, 0x18d40121, 0x18340121, - 0x18350121, 0x18360121, 0x18d70121, 0x18d80121, 0x18d90121, 0x18da0121, 0x18db0121, 0x18dc0121, - 0x184b0121, 0x18370121, 0x18380121, 0x18390121, 0x18520121, 0x183a0121, 0x183b0121, 0x183c0121, - 0x183d0121, 0x183e0121, 0x183f0121, 0x18400121, 0x18410121, 0x18420121, 0x18430121, 0x188d0121, - 0x188e0121, 0x188f0121, 0x18900121, 0x18910121, 0x18920121, 0x18930121, 0x18940121, 0x18950121, - 0x18960121, 0x18970121, 0x18980121, 0x18990121, 0x189a0121, 0x189b0121, 0x189c0121, 0x189d0121, - 0x189e0121, 0x189f0121, 0x18a00121, 0x18a10121, 0x188c0121, 0x18450121, 0x18460121, 0x18ee0121, - 0x18ef0121, 0x18f30121, 0x18f50121, 0x18fa0121, 0x18fe0121, 0x19000121, 0x184d0121, 0x19040121, - 0x19060121, 0x184e0121, 0x184f0121, 0x18510121, 0x18530121, 0x18540121, 0x18580121, 0x185a0121, - 0x185c0121, 0x185d0121, 0x185e0121, 0x185f0121, 0x18600121, 0x18630121, 0x18670121, 0x18710121, - 0x18780121, 0x187d0121, 0x19180121, 0x19190121, 0x18880121, 0x18890121, 0x188a0121, 0x18b00121, - 0x18b10121, 0x18b40121, 0x18bd0121, 0x18be0121, 0x18c00121, 0x18ca0121, 0x18cd0121, 0xffffffff, - 0x09bc0111, 0x09bd0111, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, - 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, - 0x19510121, 0x19670121, 0x195f0121, 0x195a0121, 0x196f0111, 0x196f0121, 0x196c0111, 0x196b0121, - 0x197e0121, 0x196a0121, 0x197d0121, 0x197e0121, 0x197b0111, 0x195d0111, 0x19700121, 0x19720121, - 0x19790111, 0x197a0111, 0x19770111, 0x197d0131, 0x19520121, 0x19570121, 0x195b0121, 0x195e0121, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x3200 .. 0x32ff */ - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0xffffffff, 0xffffffff, 0xffffffff, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x18310131, 0x18330131, 0x18340131, 0x18360131, 0x18370131, 0x18380131, 0x183a0131, 0x183c0131, - 0x183d0131, 0x183f0131, 0x18400131, 0x18410131, 0x18420131, 0x18430131, 0x18310131, 0x18330131, - 0x18340131, 0x18360131, 0x18370131, 0x18380131, 0x183a0131, 0x183c0131, 0x183d0131, 0x183f0131, - 0x18400131, 0x18410131, 0x18420131, 0x18430131, 0xffffffff, 0xffffffff, 0xffffffff, 0x09be0111, - 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, - 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, - 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, - 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, 0xfb400131, 0xfb400131, - 0xfb410131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, - 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, - 0xfb400131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, 0x0a130131, - 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x19210171, 0x19220171, 0x19230171, 0x19240171, 0x19250171, 0x19260151, 0x19270141, 0x19280141, - 0x19290151, 0x192a0141, 0x192b0141, 0x192c0151, 0x192d0141, 0x192e0141, 0x192f0141, 0x19300141, - 0x19310141, 0x19320171, 0x19330141, 0x19340141, 0x19350141, 0x19360141, 0x19370141, 0x19380141, - 0x19390141, 0x193a0141, 0x193b0141, 0x193c0141, 0x193d0141, 0x193e0141, 0x193f0141, 0x19400141, - 0x19410141, 0x19420141, 0x19430141, 0x19440171, 0x19450171, 0x19460171, 0x19470141, 0x19480141, - 0x19490141, 0x194a0141, 0x194b0141, 0x194c0161, 0x194d0131, 0x194e0131, 0x194f0141, 0xffffffff, - /* 0x3300 .. 0x33ff */ - 0x19210181, 0x19210181, 0x19210181, 0x19210181, 0x19220181, 0x19220181, 0x19230181, 0x19240181, - 0x19240181, 0x19250181, 0x19250181, 0x19260161, 0x19260161, 0x19260161, 0x19260161, 0x19260161, - 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, - 0x19280151, 0x19280151, 0x19280151, 0x19280151, 0x19290161, 0x192a0151, 0x192a0151, 0x192b0151, - 0x192b0151, 0x192c0161, 0x192e0151, 0x192e0151, 0x19300151, 0x19330151, 0x19340151, 0x19340151, - 0x19350151, 0x19390151, 0x193a0151, 0x193a0151, 0x193a0151, 0x193a0151, 0x193b0151, 0x193b0151, - 0x193b0151, 0x193b0151, 0x193c0151, 0x193c0151, 0x193c0151, 0x193c0151, 0x193d0151, 0x193d0151, - 0x193d0151, 0x193d0151, 0x193d0151, 0x193d0151, 0x193d0151, 0x193e0151, 0x193e0151, 0x193e0151, - 0x193e0151, 0x193e0151, 0x193e0151, 0x193f0151, 0x193f0151, 0x193f0151, 0x193f0151, 0x193f0151, - 0x19400151, 0x19400151, 0x19400151, 0x19420151, 0x19420151, 0x19420151, 0x19440181, 0x19440181, - 0x19450181, 0x19480151, 0x19480151, 0x19490151, 0x19490151, 0x194a0151, 0x194a0151, 0x194c0171, - 0x0a0b0131, 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, - 0x0a130131, 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, - 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, - 0x0a0d0131, 0x0ab901a1, 0x0a490191, 0x0a1501a1, 0x0a290181, 0x0b4b01b1, 0x0b670181, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xfb400151, 0xfb400151, 0xfb400151, 0xfb400151, 0xfb400151, - 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0af70171, 0x0af70181, 0x0b2b01b1, 0x0a990181, - 0x0a3d01a1, 0x0af70171, 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0c9f0141, 0x0b2b01a1, 0x0af70171, - 0x0ab901b1, 0x0af70171, 0x0b2b01b1, 0x0a990181, 0x0bbf01a1, 0x0c9f0141, 0x0b2b01a1, 0x0a490191, - 0x0af70171, 0x0a910191, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0a3d01a1, 0x0af70171, 0x0b2b01a1, - 0x0a3d01a1, 0x0b2b01a1, 0x0af70171, 0x0b2b01a1, 0x0a3d01a1, 0x0b2b01a1, 0x0af70171, 0x0b2b01a1, - 0x0b2b01a1, 0x0b670191, 0x0af70171, 0x0b2b01b1, 0x0a990181, 0x0b7f01a1, 0x0b7f01a1, 0x0b7f01a1, - 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, - 0x0af70171, 0x0b2b01b1, 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0af70171, 0x0b2b01b1, - 0x0af70171, 0x0b2b01b1, 0x0a150191, 0x0a290191, 0x0a3d01a1, 0x0a3d01a1, 0x0a3d01b1, 0x0a3d01b1, - 0x0a490191, 0x0a990181, 0x0ab901a1, 0x0ab901b1, 0x0ad301b1, 0x0af70181, 0x0af70181, 0x0af70171, - 0x0b0301c1, 0x0b0301c1, 0x0b0301c1, 0x0b0301c1, 0x0b2b01a1, 0x0b2b01a1, 0x0b2b01a1, 0x0b670191, - 0x0b670181, 0x0b670191, 0x0b670191, 0x0ba70191, 0x0ba701a1, 0x0bfb0181, 0xffffffff, 0xffffffff, - 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, 0x0a130131, - 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, - 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, - 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0e0131, 0x0a0e0131, 0xffffffff, - /* 0xf900 .. 0xf9ff */ - 0xfb410111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb410111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, - 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, - /* 0xfa00 .. 0xfaff */ - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, - 0xfb400111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0xfb00 .. 0xfbff */ - 0x0a910131, 0x0a910131, 0x0a910131, 0x0a910131, 0x0a910131, 0x0ba70131, 0x0ba70131, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0x0ea30121, 0x0ea30121, 0x0ea30121, 0x0ead0121, 0x0ea30121, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0ec00111, 0x00006711, 0x0ec00121, - 0x0ec60121, 0x0eb70131, 0x0eba0131, 0x0ebb0121, 0x0ec10121, 0x0ec20121, 0x0ec30121, 0x0eca0121, - 0x0ecc0121, 0x039f0131, 0x0ecb0111, 0x0ecb0111, 0x0ecb0111, 0x0ecb0111, 0x0eb70111, 0x0eb70111, - 0x0eb70111, 0x0eb80111, 0x0eb90111, 0x0eba0111, 0x0ebb0111, 0x0ebc0111, 0x0ebd0111, 0xffffffff, - 0x0ebf0111, 0x0ec00111, 0x0ec10131, 0x0ec10111, 0x0ec20111, 0xffffffff, 0x0ec30111, 0xffffffff, - 0x0ec40111, 0x0ec50111, 0xffffffff, 0x0ec70121, 0x0ec70111, 0xffffffff, 0x0ec80111, 0x0ec90111, - 0x0eca0111, 0x0ecb0111, 0x0ecc0111, 0x0ebc0111, 0x0eb80111, 0x0ec10111, 0x0ec70111, 0x0eb70121, - 0x0ed10131, 0x0ed10121, 0x0ed80151, 0x0ed80141, 0x0ed80121, 0x0ed80131, 0x0ed90151, 0x0ed90141, - 0x0ed90121, 0x0ed90131, 0x0eda0151, 0x0eda0141, 0x0eda0121, 0x0eda0131, 0x0edf0151, 0x0edf0141, - 0x0edf0121, 0x0edf0131, 0x0ee20151, 0x0ee20141, 0x0ee20121, 0x0ee20131, 0x0ede0151, 0x0ede0141, - 0x0ede0121, 0x0ede0131, 0x0f1a0151, 0x0f1a0141, 0x0f1a0121, 0x0f1a0131, 0x0f1c0151, 0x0f1c0141, - 0x0f1c0121, 0x0f1c0131, 0x0ee50151, 0x0ee50141, 0x0ee50121, 0x0ee50131, 0x0ee40151, 0x0ee40141, - 0x0ee40121, 0x0ee40131, 0x0ee60151, 0x0ee60141, 0x0ee60121, 0x0ee60131, 0x0ee80151, 0x0ee80141, - 0x0ee80121, 0x0ee80131, 0x0ef50131, 0x0ef50121, 0x0ef40131, 0x0ef40121, 0x0ef60131, 0x0ef60121, - 0x0ef00131, 0x0ef00121, 0x0f020131, 0x0f020121, 0x0efb0131, 0x0efb0121, 0x0f210151, 0x0f210141, - 0x0f210121, 0x0f210131, 0x0f270151, 0x0f270141, 0x0f270121, 0x0f270131, 0x0f2b0151, 0x0f2b0141, - 0x0f2b0121, 0x0f2b0131, 0x0f290151, 0x0f290141, 0x0f290121, 0x0f290131, 0x0f340131, 0x0f340121, - 0x0f350151, 0x0f350141, 0x0f350121, 0x0f350131, 0x0f3d0131, 0x0f3d0121, 0x0f3b0151, 0x0f3b0141, - 0x0f3b0121, 0x0f3b0131, 0x0f3a0151, 0x0f3a0141, 0x0f3a0121, 0x0f3a0131, 0x0f4f0131, 0x0f4f0121, - 0x0f4f0131, 0x0f4f0121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0x0f250151, 0x0f250141, 0x0f250121, 0x0f250131, 0x0f420141, - 0x0f420131, 0x0f410131, 0x0f410121, 0x0f430131, 0x0f430121, 0x0f420141, 0x0f460131, 0x0f460121, - 0x0f400131, 0x0f400121, 0x0f440131, 0x0f440121, 0x0f4d0151, 0x0f4d0141, 0x0f4d0121, 0x0f4d0131, - 0x0f480121, 0x0f480131, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, - 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, - 0x0ed50121, 0x0ed50151, 0x0ed50141, 0x0ed50121, 0x0f4a0151, 0x0f4a0141, 0x0f4a0121, 0x0f4a0131, - /* 0xfc00 .. 0xfcff */ - 0x0ed50151, 0x0ed50151, 0x0ed50151, 0x0ed50151, 0x0ed50151, 0x0ed70151, 0x0ed70151, 0x0ed70151, - 0x0ed70151, 0x0ed70151, 0x0ed70151, 0x0edc0151, 0x0edc0151, 0x0edc0151, 0x0edc0151, 0x0edc0151, - 0x0edc0151, 0x0edd0151, 0x0edd0151, 0x0edd0151, 0x0edd0151, 0x0ee30151, 0x0ee30151, 0x0ee90151, - 0x0ee90151, 0x0eea0151, 0x0eea0151, 0x0eea0151, 0x0f040151, 0x0f040151, 0x0f040151, 0x0f040151, - 0x0f0a0151, 0x0f0a0151, 0x0f0b0151, 0x0f0b0151, 0x0f0b0151, 0x0f0b0151, 0x0f0f0151, 0x0f0f0151, - 0x0f100151, 0x0f120151, 0x0f120151, 0x0f130151, 0x0f130151, 0x0f160151, 0x0f160151, 0x0f160151, - 0x0f160151, 0x0f160151, 0x0f160151, 0x0f1d0151, 0x0f1d0151, 0x0f1d0151, 0x0f1d0151, 0x0f200151, - 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f2d0151, - 0x0f2d0151, 0x0f2d0151, 0x0f2d0151, 0x0f2d0151, 0x0f2d0151, 0x0f320161, 0x0f320161, 0x0f320161, - 0x0f320161, 0x0f320161, 0x0f320161, 0x0f330151, 0x0f330151, 0x0f330151, 0x0f330151, 0x0f330151, - 0x0f330151, 0x0f390151, 0x0f390151, 0x0f390151, 0x0f390151, 0x0f490161, 0x0f490161, 0x0f490161, - 0x0f490161, 0x0f490161, 0x0f490161, 0x0eef0131, 0x0ef90131, 0x0f480151, 0x00006e31, 0x00006e31, - 0x00006e31, 0x00006e31, 0x00006e31, 0x00006e31, 0x0ed50141, 0x0ed50141, 0x0ed50141, 0x0ed50141, - 0x0ed50141, 0x0ed50141, 0x0ed70141, 0x0ed70141, 0x0ed70141, 0x0ed70141, 0x0ed70141, 0x0ed70141, - 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edd0141, 0x0edd0141, - 0x0edd0141, 0x0edd0141, 0x0edd0141, 0x0edd0141, 0x0f160141, 0x0f160141, 0x0f1d0141, 0x0f1d0141, - 0x0f200141, 0x0f200141, 0x0f200141, 0x0f200141, 0x0f200141, 0x0f2d0141, 0x0f2d0141, 0x0f2d0141, - 0x0f320151, 0x0f320151, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f330141, - 0x0f480141, 0x0f490151, 0x0f490151, 0x0f490151, 0x0f490151, 0x0f490151, 0x0f490151, 0x0ed50121, - 0x0ed50121, 0x0ed50121, 0x0ed50121, 0x0ed50121, 0x0ed70121, 0x0ed70121, 0x0ed70121, 0x0ed70121, - 0x0ed70121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edd0121, 0x0ee30121, - 0x0ee30121, 0x0ee90121, 0x0ee90121, 0x0eea0121, 0x0eea0121, 0x0f040121, 0x0f040121, 0x0f040121, - 0x0f040121, 0x0f0a0121, 0x0f0a0121, 0x0f0a0121, 0x0f0b0121, 0x0f0b0121, 0x0f0b0121, 0x0f0b0121, - 0x0f0f0121, 0x0f100121, 0x0f120121, 0x0f120121, 0x0f130121, 0x0f130121, 0x0f160121, 0x0f160121, - 0x0f160121, 0x0f160121, 0x0f1d0121, 0x0f1d0121, 0x0f200121, 0x0f200121, 0x0f200121, 0x0f200121, - 0x0f200121, 0x0f2d0121, 0x0f2d0121, 0x0f2d0121, 0x0f2d0121, 0x0f2d0121, 0x0f320131, 0x0f320131, - 0x0f320131, 0x0f320131, 0x0f330121, 0x0f330121, 0x0f330121, 0x0f330121, 0x0f330121, 0x0f390121, - 0x0f390121, 0x0f390121, 0x0f490131, 0x0f490131, 0x0f490131, 0x0f490131, 0x0f490131, 0x0ed50131, - 0x0ed50131, 0x0ed70131, 0x0ed70131, 0x0edc0131, 0x0edc0131, 0x0edd0131, 0x0edd0131, 0x0f040131, - 0x0f040131, 0x0f050131, 0x0f050131, 0x0f200131, 0x0f200131, 0x0f2d0131, 0x0f330131, 0x0f330131, - 0x0f490141, 0x0f490141, 0x00006e21, 0x00006e21, 0x00006e21, 0x0f0f0151, 0x0f0f0151, 0x0f120151, - 0x0f120151, 0x0f130151, 0x0f130151, 0x0f040151, 0x0f040151, 0x0f050151, 0x0f050151, 0x0ee90151, - /* 0xfd00 .. 0xfdff */ - 0x0ee90151, 0x0ee30151, 0x0ee30151, 0x0eea0151, 0x0eea0151, 0x0f0a0151, 0x0f0a0151, 0x0f0b0151, - 0x0f0b0151, 0x0f050151, 0x0f050151, 0x0f050151, 0x0f050151, 0x0f050151, 0x0f040151, 0x0f0a0151, - 0x0f0b0151, 0x0f0f0141, 0x0f0f0141, 0x0f120141, 0x0f120141, 0x0f130141, 0x0f130141, 0x0f040141, - 0x0f040141, 0x0f050141, 0x0f050141, 0x0ee90141, 0x0ee90141, 0x0ee30141, 0x0ee30141, 0x0eea0141, - 0x0eea0141, 0x0f0a0141, 0x0f0a0141, 0x0f0b0141, 0x0f0b0141, 0x0f050141, 0x0f050141, 0x0f050141, - 0x0f050141, 0x0f050141, 0x0f040141, 0x0f0a0141, 0x0f0b0141, 0x0f050121, 0x0f050121, 0x0f050121, - 0x0f050121, 0x0f040121, 0x0f050121, 0x0f0f0121, 0x0f040131, 0x0f040131, 0x0f040131, 0x0f050131, - 0x0f050131, 0x0f050131, 0x0f0f0131, 0x0f100131, 0x0ed60131, 0x0ed60141, 0x029a0111, 0x029b0111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0edc0121, 0x0edc0141, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, - 0x0ee30141, 0x0ee30121, 0x0ee90141, 0x0ee90141, 0x0f040121, 0x0f040121, 0x0f040141, 0x0f040141, - 0x0f040121, 0x0f040121, 0x0f040141, 0x0f040121, 0x0f0a0141, 0x0f0a0121, 0x0f0a0141, 0x0f050141, - 0x0f050121, 0x0f050141, 0x0f050141, 0x0f050121, 0x0f050141, 0x0f050121, 0x0f0b0141, 0x0f0b0141, - 0x0f0b0121, 0x0f0f0141, 0x0f0f0121, 0x0f0f0121, 0x0f0f0141, 0x0f120141, 0x0f120141, 0x0f120121, - 0x0f120141, 0x0f130141, 0x0f130141, 0x0f130141, 0x0f160141, 0x0f160121, 0x0f1d0141, 0x0f1d0141, - 0x0f2d0141, 0x0f2d0141, 0x0f2d0141, 0x0f2d0121, 0x0f2d0141, 0x0f2d0141, 0x0f2d0121, 0x0f2d0141, - 0x0f2d0121, 0x0f320131, 0x0f320131, 0x0f320151, 0x0f320131, 0x0f320131, 0x0f320131, 0x0f320131, - 0xffffffff, 0xffffffff, 0x0f320131, 0x0f390121, 0x0f390121, 0x0f330121, 0x0f330141, 0x0f330141, - 0x0f330121, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f490151, 0x0f490131, 0x0ed70141, 0x0edc0141, - 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0ee30141, 0x0ee30141, 0x0ee30141, - 0x0f040141, 0x0f0a0141, 0x0f050141, 0x0f0b0141, 0x0f2d0141, 0x0f2d0141, 0x0f490151, 0x0f490151, - 0x0f490151, 0x0f320151, 0x0f1d0141, 0x0f330141, 0x0f1d0121, 0x0f2d0121, 0x0f120141, 0x0f200141, - 0x0f330121, 0x0f320151, 0x0f2d0121, 0x0f200141, 0x0f2d0141, 0x0f330141, 0x0ee30141, 0x0ee90141, - 0x0f320151, 0x0f160141, 0x0ed70141, 0x0f200121, 0x0f120121, 0x0f0a0121, 0x0f040141, 0x0f330141, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0f0a0151, 0x0f1d0151, 0x0ed60141, 0x0ed60141, 0x0f320161, 0x0f0a0151, 0x0ef90131, 0x0f120151, - 0x0f3e0141, 0x0f0a0151, 0x0f0a0151, 0x0ee30151, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0xfe00 .. 0xfeff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x00005011, 0x00005111, 0x00005211, 0x00005311, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x02550151, 0x02280131, 0x02270121, 0x021b0141, 0x021b0141, 0x027a0171, 0x027b0161, 0x027e0141, - 0x027f0141, 0x02920131, 0x02930131, 0x02900121, 0x02910121, 0x028a0121, 0x028b0121, 0x02880121, - 0x02890121, 0x028c0131, 0x028d0131, 0x028e0121, 0x028f0121, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x02110121, 0x02110121, 0x02110121, 0x02110121, 0x021b0131, 0x021b0131, 0x021b0131, - 0x022d0131, 0x02340121, 0x02550141, 0xffffffff, 0x02350131, 0x02370131, 0x024e0141, 0x024b0141, - 0x02280121, 0x027a0141, 0x027b0131, 0x027e0131, 0x027f0131, 0x02920121, 0x02930121, 0x02a90131, - 0x02a70131, 0x02a20131, 0x039f0141, 0x02210131, 0x03a30131, 0x03a50131, 0x03a40131, 0xffffffff, - 0x02a60131, 0x09e00131, 0x02aa0131, 0x02a10131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x00006831, 0x00006821, 0x00006921, 0xffffffff, 0x00006a21, 0xffffffff, 0x00006b31, 0x00006b21, - 0x00006c31, 0x00006c21, 0x00006d31, 0x00006d21, 0x00006e31, 0x00006e21, 0x00006f31, 0x00006f21, - 0x0ecd0131, 0x0ece0131, 0x0ece0121, 0x0ecf0131, 0x0ecf0121, 0x0ed20131, 0x0ed20121, 0x0ed30131, - 0x0ed30121, 0x0ed50151, 0x0ed50141, 0x0ed50121, 0x0ed50131, 0x0ed60141, 0x0ed60131, 0x0ed70151, - 0x0ed70141, 0x0ed70121, 0x0ed70131, 0x0edb0131, 0x0edb0121, 0x0edc0151, 0x0edc0141, 0x0edc0121, - 0x0edc0131, 0x0edd0151, 0x0edd0141, 0x0edd0121, 0x0edd0131, 0x0ee30151, 0x0ee30141, 0x0ee30121, - 0x0ee30131, 0x0ee90151, 0x0ee90141, 0x0ee90121, 0x0ee90131, 0x0eea0151, 0x0eea0141, 0x0eea0121, - 0x0eea0131, 0x0eee0131, 0x0eee0121, 0x0eef0131, 0x0eef0121, 0x0ef90131, 0x0ef90121, 0x0efa0131, - 0x0efa0121, 0x0f040151, 0x0f040141, 0x0f040121, 0x0f040131, 0x0f050151, 0x0f050141, 0x0f050121, - 0x0f050131, 0x0f0a0151, 0x0f0a0141, 0x0f0a0121, 0x0f0a0131, 0x0f0b0151, 0x0f0b0141, 0x0f0b0121, - 0x0f0b0131, 0x0f0f0151, 0x0f0f0141, 0x0f0f0121, 0x0f0f0131, 0x0f100151, 0x0f100141, 0x0f100121, - 0x0f100131, 0x0f120151, 0x0f120141, 0x0f120121, 0x0f120131, 0x0f130151, 0x0f130141, 0x0f130121, - 0x0f130131, 0x0f160151, 0x0f160141, 0x0f160121, 0x0f160131, 0x0f1d0151, 0x0f1d0141, 0x0f1d0121, - 0x0f1d0131, 0x0f200151, 0x0f200141, 0x0f200121, 0x0f200131, 0x0f2d0151, 0x0f2d0141, 0x0f2d0121, - 0x0f2d0131, 0x0f320161, 0x0f320151, 0x0f320131, 0x0f320141, 0x0f330151, 0x0f330141, 0x0f330121, - 0x0f330131, 0x0f390151, 0x0f390141, 0x0f390121, 0x0f390131, 0x0f3e0141, 0x0f3e0131, 0x0f480151, - 0x0f480141, 0x0f490161, 0x0f490151, 0x0f490131, 0x0f490141, 0x0f2d0151, 0x0f2d0141, 0x0f2d0151, - 0x0f2d0141, 0x0f2d0151, 0x0f2d0141, 0x0f2d0151, 0x0f2d0141, 0xffffffff, 0xffffffff, 0x00000000, - /* 0xff00 .. 0xffff */ - 0xffffffff, 0x024b0121, 0x02700121, 0x02a90121, 0x09e00121, 0x02aa0121, 0x02a70121, 0x02690121, - 0x027a0121, 0x027b0121, 0x02a20121, 0x039f0121, 0x022d0121, 0x02210121, 0x02550121, 0x02a40121, - 0x0a0b0121, 0x0a0c0121, 0x0a0d0121, 0x0a0e0121, 0x0a0f0121, 0x0a100121, 0x0a110121, 0x0a120121, - 0x0a130121, 0x0a140121, 0x02370121, 0x02350121, 0x03a30121, 0x03a40121, 0x03a50121, 0x024e0121, - 0x02a10121, 0x0a150161, 0x0a290151, 0x0a3d0161, 0x0a490161, 0x0a650161, 0x0a910161, 0x0a990161, - 0x0ab90161, 0x0ad30171, 0x0ae70151, 0x0af70151, 0x0b030171, 0x0b2b0161, 0x0b330161, 0x0b4b0171, - 0x0b670151, 0x0b730151, 0x0b7f0151, 0x0ba70161, 0x0bbf0161, 0x0bd70151, 0x0bef0161, 0x0bfb0151, - 0x0c030161, 0x0c070151, 0x0c130151, 0x027c0121, 0x02a60121, 0x027d0121, 0x020f0121, 0x021b0121, - 0x020c0121, 0x0a150121, 0x0a290121, 0x0a3d0121, 0x0a490121, 0x0a650121, 0x0a910121, 0x0a990121, - 0x0ab90121, 0x0ad30121, 0x0ae70121, 0x0af70121, 0x0b030121, 0x0b2b0121, 0x0b330121, 0x0b4b0121, - 0x0b670121, 0x0b730121, 0x0b7f0121, 0x0ba70121, 0x0bbf0121, 0x0bd70121, 0x0bef0121, 0x0bfb0121, - 0x0c030121, 0x0c070121, 0x0c130121, 0x027e0121, 0x03a70121, 0x027f0121, 0x03aa0121, 0xffffffff, - 0xffffffff, 0x025e0121, 0x028c0121, 0x028d0121, 0x02340131, 0x022c0121, 0x194f0131, 0x19210141, - 0x19220141, 0x19230141, 0x19240141, 0x19250141, 0x19440141, 0x19450141, 0x19460141, 0x19320141, - 0x09dc0121, 0x19210161, 0x19220161, 0x19230161, 0x19240161, 0x19250161, 0x19260141, 0x19270131, - 0x19280131, 0x19290141, 0x192a0131, 0x192b0131, 0x192c0141, 0x192d0131, 0x192e0131, 0x192f0131, - 0x19300131, 0x19310131, 0x19320161, 0x19330131, 0x19340131, 0x19350131, 0x19360131, 0x19370131, - 0x19380131, 0x19390131, 0x193a0131, 0x193b0131, 0x193c0131, 0x193d0131, 0x193e0131, 0x193f0131, - 0x19400131, 0x19410131, 0x19420131, 0x19430131, 0x19440161, 0x19450161, 0x19460161, 0x19470131, - 0x19480131, 0x19490131, 0x194a0131, 0x194b0131, 0x194c0151, 0x19500131, 0x0000e221, 0x0000e321, - 0x188c0131, 0x18310141, 0x18320131, 0x18d10131, 0x18330141, 0x18d30131, 0x18d40131, 0x18340141, - 0x18350131, 0x18360141, 0x18d70131, 0x18d80131, 0x18d90131, 0x18da0131, 0x18db0131, 0x18dc0131, - 0x184b0131, 0x18370141, 0x18380141, 0x18390131, 0x18520131, 0x183a0141, 0x183b0131, 0x183c0141, - 0x183d0141, 0x183e0131, 0x183f0141, 0x18400141, 0x18410141, 0x18420141, 0x18430141, 0xffffffff, - 0xffffffff, 0xffffffff, 0x188d0131, 0x188e0131, 0x188f0131, 0x18900131, 0x18910131, 0x18920131, - 0xffffffff, 0xffffffff, 0x18930131, 0x18940131, 0x18950131, 0x18960131, 0x18970131, 0x18980131, - 0xffffffff, 0xffffffff, 0x18990131, 0x189a0131, 0x189b0131, 0x189c0131, 0x189d0131, 0x189e0131, - 0xffffffff, 0xffffffff, 0x189f0131, 0x18a00131, 0x18a10131, 0xffffffff, 0xffffffff, 0xffffffff, - 0x09df0121, 0x09e10121, 0x03a60121, 0x02100121, 0x03a80121, 0x09e20121, 0x09ef0121, 0xffffffff, - 0x05300121, 0x03320121, 0x03340121, 0x03330121, 0x03350121, 0x05c40121, 0x05ef0121, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x09bf0111, 0x09c00111, 0xffffffff, 0xffffffff -}; diff --git a/reactos/tools/unicode/compose.c b/reactos/tools/unicode/compose.c deleted file mode 100644 index be886d0390d..00000000000 --- a/reactos/tools/unicode/compose.c +++ /dev/null @@ -1,1125 +0,0 @@ -/* Unicode char composition */ -/* Automatically generated; DO NOT EDIT!! */ - -#include "wine/unicode.h" - -const WCHAR unicode_compose_table[0x85e] = -{ - /* second chars + offsets */ - 0x0300, 0x0047, 0x0301, 0x009b, 0x0302, 0x0111, 0x0303, 0x0131, - 0x0304, 0x014d, 0x0306, 0x0179, 0x0307, 0x0199, 0x0308, 0x01c7, - 0x0309, 0x01fd, 0x030a, 0x0215, 0x030b, 0x021b, 0x030c, 0x0221, - 0x030f, 0x0246, 0x0311, 0x0254, 0x0313, 0x0260, 0x0314, 0x026e, - 0x031b, 0x027e, 0x0323, 0x0282, 0x0324, 0x02ac, 0x0325, 0x02ae, - 0x0326, 0x02b0, 0x0327, 0x02b4, 0x0328, 0x02ca, 0x032d, 0x02d4, - 0x032e, 0x02e0, 0x0330, 0x02e2, 0x0331, 0x02e8, 0x0338, 0x02f9, - 0x0342, 0x0326, 0x0345, 0x0343, 0x05b4, 0x0382, 0x05b7, 0x0383, - 0x05b8, 0x0385, 0x05b9, 0x0386, 0x05bc, 0x0387, 0x05bf, 0x039d, - 0x05c1, 0x03a0, 0x05c2, 0x03a2, 0x0653, 0x03a4, 0x0654, 0x03a5, - 0x0655, 0x03ab, 0x093c, 0x03ac, 0x09bc, 0x03b7, 0x09be, 0x03ba, - 0x09d7, 0x03bb, 0x0a3c, 0x03bc, 0x0b3c, 0x03c2, 0x0b3e, 0x03c4, - 0x0b56, 0x03c5, 0x0b57, 0x03c6, 0x0bbe, 0x03c7, 0x0bd7, 0x03c9, - 0x0c56, 0x03cb, 0x0cc2, 0x03cc, 0x0cd5, 0x03cd, 0x0cd6, 0x03d0, - 0x0d3e, 0x03d1, 0x0d57, 0x03d3, 0x0dca, 0x03d4, 0x0dcf, 0x03d6, - 0x0ddf, 0x03d7, 0x0f72, 0x03d8, 0x0f74, 0x03d9, 0x0f80, 0x03da, - 0x0fb5, 0x03dd, 0x0fb7, 0x03df, 0x102e, 0x03e9, 0x1b35, 0x03ea, - 0x3099, 0x03f5, 0x309a, 0x0425, 0x0000, 0x042f, - /* 0x0300 */ - 0x0041, 0x00c0, 0x0045, 0x00c8, 0x0049, 0x00cc, 0x004e, 0x01f8, - 0x004f, 0x00d2, 0x0055, 0x00d9, 0x0057, 0x1e80, 0x0059, 0x1ef2, - 0x0061, 0x00e0, 0x0065, 0x00e8, 0x0069, 0x00ec, 0x006e, 0x01f9, - 0x006f, 0x00f2, 0x0075, 0x00f9, 0x0077, 0x1e81, 0x0079, 0x1ef3, - 0x00a8, 0x1fed, 0x00c2, 0x1ea6, 0x00ca, 0x1ec0, 0x00d4, 0x1ed2, - 0x00dc, 0x01db, 0x00e2, 0x1ea7, 0x00ea, 0x1ec1, 0x00f4, 0x1ed3, - 0x00fc, 0x01dc, 0x0102, 0x1eb0, 0x0103, 0x1eb1, 0x0112, 0x1e14, - 0x0113, 0x1e15, 0x014c, 0x1e50, 0x014d, 0x1e51, 0x01a0, 0x1edc, - 0x01a1, 0x1edd, 0x01af, 0x1eea, 0x01b0, 0x1eeb, 0x0391, 0x1fba, - 0x0395, 0x1fc8, 0x0397, 0x1fca, 0x0399, 0x1fda, 0x039f, 0x1ff8, - 0x03a5, 0x1fea, 0x03a9, 0x1ffa, 0x03b1, 0x1f70, 0x03b5, 0x1f72, - 0x03b7, 0x1f74, 0x03b9, 0x1f76, 0x03bf, 0x1f78, 0x03c5, 0x1f7a, - 0x03c9, 0x1f7c, 0x03ca, 0x1fd2, 0x03cb, 0x1fe2, 0x0415, 0x0400, - 0x0418, 0x040d, 0x0435, 0x0450, 0x0438, 0x045d, 0x1f00, 0x1f02, - 0x1f01, 0x1f03, 0x1f08, 0x1f0a, 0x1f09, 0x1f0b, 0x1f10, 0x1f12, - 0x1f11, 0x1f13, 0x1f18, 0x1f1a, 0x1f19, 0x1f1b, 0x1f20, 0x1f22, - 0x1f21, 0x1f23, 0x1f28, 0x1f2a, 0x1f29, 0x1f2b, 0x1f30, 0x1f32, - 0x1f31, 0x1f33, 0x1f38, 0x1f3a, 0x1f39, 0x1f3b, 0x1f40, 0x1f42, - 0x1f41, 0x1f43, 0x1f48, 0x1f4a, 0x1f49, 0x1f4b, 0x1f50, 0x1f52, - 0x1f51, 0x1f53, 0x1f59, 0x1f5b, 0x1f60, 0x1f62, 0x1f61, 0x1f63, - 0x1f68, 0x1f6a, 0x1f69, 0x1f6b, 0x1fbf, 0x1fcd, 0x1ffe, 0x1fdd, - /* 0x0301 */ - 0x0041, 0x00c1, 0x0043, 0x0106, 0x0045, 0x00c9, 0x0047, 0x01f4, - 0x0049, 0x00cd, 0x004b, 0x1e30, 0x004c, 0x0139, 0x004d, 0x1e3e, - 0x004e, 0x0143, 0x004f, 0x00d3, 0x0050, 0x1e54, 0x0052, 0x0154, - 0x0053, 0x015a, 0x0055, 0x00da, 0x0057, 0x1e82, 0x0059, 0x00dd, - 0x005a, 0x0179, 0x0061, 0x00e1, 0x0063, 0x0107, 0x0065, 0x00e9, - 0x0067, 0x01f5, 0x0069, 0x00ed, 0x006b, 0x1e31, 0x006c, 0x013a, - 0x006d, 0x1e3f, 0x006e, 0x0144, 0x006f, 0x00f3, 0x0070, 0x1e55, - 0x0072, 0x0155, 0x0073, 0x015b, 0x0075, 0x00fa, 0x0077, 0x1e83, - 0x0079, 0x00fd, 0x007a, 0x017a, 0x00a8, 0x0385, 0x00c2, 0x1ea4, - 0x00c5, 0x01fa, 0x00c6, 0x01fc, 0x00c7, 0x1e08, 0x00ca, 0x1ebe, - 0x00cf, 0x1e2e, 0x00d4, 0x1ed0, 0x00d5, 0x1e4c, 0x00d8, 0x01fe, - 0x00dc, 0x01d7, 0x00e2, 0x1ea5, 0x00e5, 0x01fb, 0x00e6, 0x01fd, - 0x00e7, 0x1e09, 0x00ea, 0x1ebf, 0x00ef, 0x1e2f, 0x00f4, 0x1ed1, - 0x00f5, 0x1e4d, 0x00f8, 0x01ff, 0x00fc, 0x01d8, 0x0102, 0x1eae, - 0x0103, 0x1eaf, 0x0112, 0x1e16, 0x0113, 0x1e17, 0x014c, 0x1e52, - 0x014d, 0x1e53, 0x0168, 0x1e78, 0x0169, 0x1e79, 0x01a0, 0x1eda, - 0x01a1, 0x1edb, 0x01af, 0x1ee8, 0x01b0, 0x1ee9, 0x0308, 0x0344, - 0x0391, 0x0386, 0x0395, 0x0388, 0x0397, 0x0389, 0x0399, 0x038a, - 0x039f, 0x038c, 0x03a5, 0x038e, 0x03a9, 0x038f, 0x03b1, 0x03ac, - 0x03b5, 0x03ad, 0x03b7, 0x03ae, 0x03b9, 0x03af, 0x03bf, 0x03cc, - 0x03c5, 0x03cd, 0x03c9, 0x03ce, 0x03ca, 0x0390, 0x03cb, 0x03b0, - 0x03d2, 0x03d3, 0x0413, 0x0403, 0x041a, 0x040c, 0x0433, 0x0453, - 0x043a, 0x045c, 0x1f00, 0x1f04, 0x1f01, 0x1f05, 0x1f08, 0x1f0c, - 0x1f09, 0x1f0d, 0x1f10, 0x1f14, 0x1f11, 0x1f15, 0x1f18, 0x1f1c, - 0x1f19, 0x1f1d, 0x1f20, 0x1f24, 0x1f21, 0x1f25, 0x1f28, 0x1f2c, - 0x1f29, 0x1f2d, 0x1f30, 0x1f34, 0x1f31, 0x1f35, 0x1f38, 0x1f3c, - 0x1f39, 0x1f3d, 0x1f40, 0x1f44, 0x1f41, 0x1f45, 0x1f48, 0x1f4c, - 0x1f49, 0x1f4d, 0x1f50, 0x1f54, 0x1f51, 0x1f55, 0x1f59, 0x1f5d, - 0x1f60, 0x1f64, 0x1f61, 0x1f65, 0x1f68, 0x1f6c, 0x1f69, 0x1f6d, - 0x1fbf, 0x1fce, 0x1ffe, 0x1fde, - /* 0x0302 */ - 0x0041, 0x00c2, 0x0043, 0x0108, 0x0045, 0x00ca, 0x0047, 0x011c, - 0x0048, 0x0124, 0x0049, 0x00ce, 0x004a, 0x0134, 0x004f, 0x00d4, - 0x0053, 0x015c, 0x0055, 0x00db, 0x0057, 0x0174, 0x0059, 0x0176, - 0x005a, 0x1e90, 0x0061, 0x00e2, 0x0063, 0x0109, 0x0065, 0x00ea, - 0x0067, 0x011d, 0x0068, 0x0125, 0x0069, 0x00ee, 0x006a, 0x0135, - 0x006f, 0x00f4, 0x0073, 0x015d, 0x0075, 0x00fb, 0x0077, 0x0175, - 0x0079, 0x0177, 0x007a, 0x1e91, 0x1ea0, 0x1eac, 0x1ea1, 0x1ead, - 0x1eb8, 0x1ec6, 0x1eb9, 0x1ec7, 0x1ecc, 0x1ed8, 0x1ecd, 0x1ed9, - /* 0x0303 */ - 0x0041, 0x00c3, 0x0045, 0x1ebc, 0x0049, 0x0128, 0x004e, 0x00d1, - 0x004f, 0x00d5, 0x0055, 0x0168, 0x0056, 0x1e7c, 0x0059, 0x1ef8, - 0x0061, 0x00e3, 0x0065, 0x1ebd, 0x0069, 0x0129, 0x006e, 0x00f1, - 0x006f, 0x00f5, 0x0075, 0x0169, 0x0076, 0x1e7d, 0x0079, 0x1ef9, - 0x00c2, 0x1eaa, 0x00ca, 0x1ec4, 0x00d4, 0x1ed6, 0x00e2, 0x1eab, - 0x00ea, 0x1ec5, 0x00f4, 0x1ed7, 0x0102, 0x1eb4, 0x0103, 0x1eb5, - 0x01a0, 0x1ee0, 0x01a1, 0x1ee1, 0x01af, 0x1eee, 0x01b0, 0x1eef, - /* 0x0304 */ - 0x0041, 0x0100, 0x0045, 0x0112, 0x0047, 0x1e20, 0x0049, 0x012a, - 0x004f, 0x014c, 0x0055, 0x016a, 0x0059, 0x0232, 0x0061, 0x0101, - 0x0065, 0x0113, 0x0067, 0x1e21, 0x0069, 0x012b, 0x006f, 0x014d, - 0x0075, 0x016b, 0x0079, 0x0233, 0x00c4, 0x01de, 0x00c6, 0x01e2, - 0x00d5, 0x022c, 0x00d6, 0x022a, 0x00dc, 0x01d5, 0x00e4, 0x01df, - 0x00e6, 0x01e3, 0x00f5, 0x022d, 0x00f6, 0x022b, 0x00fc, 0x01d6, - 0x01ea, 0x01ec, 0x01eb, 0x01ed, 0x0226, 0x01e0, 0x0227, 0x01e1, - 0x022e, 0x0230, 0x022f, 0x0231, 0x0391, 0x1fb9, 0x0399, 0x1fd9, - 0x03a5, 0x1fe9, 0x03b1, 0x1fb1, 0x03b9, 0x1fd1, 0x03c5, 0x1fe1, - 0x0418, 0x04e2, 0x0423, 0x04ee, 0x0438, 0x04e3, 0x0443, 0x04ef, - 0x1e36, 0x1e38, 0x1e37, 0x1e39, 0x1e5a, 0x1e5c, 0x1e5b, 0x1e5d, - /* 0x0306 */ - 0x0041, 0x0102, 0x0045, 0x0114, 0x0047, 0x011e, 0x0049, 0x012c, - 0x004f, 0x014e, 0x0055, 0x016c, 0x0061, 0x0103, 0x0065, 0x0115, - 0x0067, 0x011f, 0x0069, 0x012d, 0x006f, 0x014f, 0x0075, 0x016d, - 0x0228, 0x1e1c, 0x0229, 0x1e1d, 0x0391, 0x1fb8, 0x0399, 0x1fd8, - 0x03a5, 0x1fe8, 0x03b1, 0x1fb0, 0x03b9, 0x1fd0, 0x03c5, 0x1fe0, - 0x0410, 0x04d0, 0x0415, 0x04d6, 0x0416, 0x04c1, 0x0418, 0x0419, - 0x0423, 0x040e, 0x0430, 0x04d1, 0x0435, 0x04d7, 0x0436, 0x04c2, - 0x0438, 0x0439, 0x0443, 0x045e, 0x1ea0, 0x1eb6, 0x1ea1, 0x1eb7, - /* 0x0307 */ - 0x0041, 0x0226, 0x0042, 0x1e02, 0x0043, 0x010a, 0x0044, 0x1e0a, - 0x0045, 0x0116, 0x0046, 0x1e1e, 0x0047, 0x0120, 0x0048, 0x1e22, - 0x0049, 0x0130, 0x004d, 0x1e40, 0x004e, 0x1e44, 0x004f, 0x022e, - 0x0050, 0x1e56, 0x0052, 0x1e58, 0x0053, 0x1e60, 0x0054, 0x1e6a, - 0x0057, 0x1e86, 0x0058, 0x1e8a, 0x0059, 0x1e8e, 0x005a, 0x017b, - 0x0061, 0x0227, 0x0062, 0x1e03, 0x0063, 0x010b, 0x0064, 0x1e0b, - 0x0065, 0x0117, 0x0066, 0x1e1f, 0x0067, 0x0121, 0x0068, 0x1e23, - 0x006d, 0x1e41, 0x006e, 0x1e45, 0x006f, 0x022f, 0x0070, 0x1e57, - 0x0072, 0x1e59, 0x0073, 0x1e61, 0x0074, 0x1e6b, 0x0077, 0x1e87, - 0x0078, 0x1e8b, 0x0079, 0x1e8f, 0x007a, 0x017c, 0x015a, 0x1e64, - 0x015b, 0x1e65, 0x0160, 0x1e66, 0x0161, 0x1e67, 0x017f, 0x1e9b, - 0x1e62, 0x1e68, 0x1e63, 0x1e69, - /* 0x0308 */ - 0x0041, 0x00c4, 0x0045, 0x00cb, 0x0048, 0x1e26, 0x0049, 0x00cf, - 0x004f, 0x00d6, 0x0055, 0x00dc, 0x0057, 0x1e84, 0x0058, 0x1e8c, - 0x0059, 0x0178, 0x0061, 0x00e4, 0x0065, 0x00eb, 0x0068, 0x1e27, - 0x0069, 0x00ef, 0x006f, 0x00f6, 0x0074, 0x1e97, 0x0075, 0x00fc, - 0x0077, 0x1e85, 0x0078, 0x1e8d, 0x0079, 0x00ff, 0x00d5, 0x1e4e, - 0x00f5, 0x1e4f, 0x016a, 0x1e7a, 0x016b, 0x1e7b, 0x0399, 0x03aa, - 0x03a5, 0x03ab, 0x03b9, 0x03ca, 0x03c5, 0x03cb, 0x03d2, 0x03d4, - 0x0406, 0x0407, 0x0410, 0x04d2, 0x0415, 0x0401, 0x0416, 0x04dc, - 0x0417, 0x04de, 0x0418, 0x04e4, 0x041e, 0x04e6, 0x0423, 0x04f0, - 0x0427, 0x04f4, 0x042b, 0x04f8, 0x042d, 0x04ec, 0x0430, 0x04d3, - 0x0435, 0x0451, 0x0436, 0x04dd, 0x0437, 0x04df, 0x0438, 0x04e5, - 0x043e, 0x04e7, 0x0443, 0x04f1, 0x0447, 0x04f5, 0x044b, 0x04f9, - 0x044d, 0x04ed, 0x0456, 0x0457, 0x04d8, 0x04da, 0x04d9, 0x04db, - 0x04e8, 0x04ea, 0x04e9, 0x04eb, - /* 0x0309 */ - 0x0041, 0x1ea2, 0x0045, 0x1eba, 0x0049, 0x1ec8, 0x004f, 0x1ece, - 0x0055, 0x1ee6, 0x0059, 0x1ef6, 0x0061, 0x1ea3, 0x0065, 0x1ebb, - 0x0069, 0x1ec9, 0x006f, 0x1ecf, 0x0075, 0x1ee7, 0x0079, 0x1ef7, - 0x00c2, 0x1ea8, 0x00ca, 0x1ec2, 0x00d4, 0x1ed4, 0x00e2, 0x1ea9, - 0x00ea, 0x1ec3, 0x00f4, 0x1ed5, 0x0102, 0x1eb2, 0x0103, 0x1eb3, - 0x01a0, 0x1ede, 0x01a1, 0x1edf, 0x01af, 0x1eec, 0x01b0, 0x1eed, - /* 0x030a */ - 0x0041, 0x00c5, 0x0055, 0x016e, 0x0061, 0x00e5, 0x0075, 0x016f, - 0x0077, 0x1e98, 0x0079, 0x1e99, - /* 0x030b */ - 0x004f, 0x0150, 0x0055, 0x0170, 0x006f, 0x0151, 0x0075, 0x0171, - 0x0423, 0x04f2, 0x0443, 0x04f3, - /* 0x030c */ - 0x0041, 0x01cd, 0x0043, 0x010c, 0x0044, 0x010e, 0x0045, 0x011a, - 0x0047, 0x01e6, 0x0048, 0x021e, 0x0049, 0x01cf, 0x004b, 0x01e8, - 0x004c, 0x013d, 0x004e, 0x0147, 0x004f, 0x01d1, 0x0052, 0x0158, - 0x0053, 0x0160, 0x0054, 0x0164, 0x0055, 0x01d3, 0x005a, 0x017d, - 0x0061, 0x01ce, 0x0063, 0x010d, 0x0064, 0x010f, 0x0065, 0x011b, - 0x0067, 0x01e7, 0x0068, 0x021f, 0x0069, 0x01d0, 0x006a, 0x01f0, - 0x006b, 0x01e9, 0x006c, 0x013e, 0x006e, 0x0148, 0x006f, 0x01d2, - 0x0072, 0x0159, 0x0073, 0x0161, 0x0074, 0x0165, 0x0075, 0x01d4, - 0x007a, 0x017e, 0x00dc, 0x01d9, 0x00fc, 0x01da, 0x01b7, 0x01ee, - 0x0292, 0x01ef, - /* 0x030f */ - 0x0041, 0x0200, 0x0045, 0x0204, 0x0049, 0x0208, 0x004f, 0x020c, - 0x0052, 0x0210, 0x0055, 0x0214, 0x0061, 0x0201, 0x0065, 0x0205, - 0x0069, 0x0209, 0x006f, 0x020d, 0x0072, 0x0211, 0x0075, 0x0215, - 0x0474, 0x0476, 0x0475, 0x0477, - /* 0x0311 */ - 0x0041, 0x0202, 0x0045, 0x0206, 0x0049, 0x020a, 0x004f, 0x020e, - 0x0052, 0x0212, 0x0055, 0x0216, 0x0061, 0x0203, 0x0065, 0x0207, - 0x0069, 0x020b, 0x006f, 0x020f, 0x0072, 0x0213, 0x0075, 0x0217, - /* 0x0313 */ - 0x0391, 0x1f08, 0x0395, 0x1f18, 0x0397, 0x1f28, 0x0399, 0x1f38, - 0x039f, 0x1f48, 0x03a9, 0x1f68, 0x03b1, 0x1f00, 0x03b5, 0x1f10, - 0x03b7, 0x1f20, 0x03b9, 0x1f30, 0x03bf, 0x1f40, 0x03c1, 0x1fe4, - 0x03c5, 0x1f50, 0x03c9, 0x1f60, - /* 0x0314 */ - 0x0391, 0x1f09, 0x0395, 0x1f19, 0x0397, 0x1f29, 0x0399, 0x1f39, - 0x039f, 0x1f49, 0x03a1, 0x1fec, 0x03a5, 0x1f59, 0x03a9, 0x1f69, - 0x03b1, 0x1f01, 0x03b5, 0x1f11, 0x03b7, 0x1f21, 0x03b9, 0x1f31, - 0x03bf, 0x1f41, 0x03c1, 0x1fe5, 0x03c5, 0x1f51, 0x03c9, 0x1f61, - /* 0x031b */ - 0x004f, 0x01a0, 0x0055, 0x01af, 0x006f, 0x01a1, 0x0075, 0x01b0, - /* 0x0323 */ - 0x0041, 0x1ea0, 0x0042, 0x1e04, 0x0044, 0x1e0c, 0x0045, 0x1eb8, - 0x0048, 0x1e24, 0x0049, 0x1eca, 0x004b, 0x1e32, 0x004c, 0x1e36, - 0x004d, 0x1e42, 0x004e, 0x1e46, 0x004f, 0x1ecc, 0x0052, 0x1e5a, - 0x0053, 0x1e62, 0x0054, 0x1e6c, 0x0055, 0x1ee4, 0x0056, 0x1e7e, - 0x0057, 0x1e88, 0x0059, 0x1ef4, 0x005a, 0x1e92, 0x0061, 0x1ea1, - 0x0062, 0x1e05, 0x0064, 0x1e0d, 0x0065, 0x1eb9, 0x0068, 0x1e25, - 0x0069, 0x1ecb, 0x006b, 0x1e33, 0x006c, 0x1e37, 0x006d, 0x1e43, - 0x006e, 0x1e47, 0x006f, 0x1ecd, 0x0072, 0x1e5b, 0x0073, 0x1e63, - 0x0074, 0x1e6d, 0x0075, 0x1ee5, 0x0076, 0x1e7f, 0x0077, 0x1e89, - 0x0079, 0x1ef5, 0x007a, 0x1e93, 0x01a0, 0x1ee2, 0x01a1, 0x1ee3, - 0x01af, 0x1ef0, 0x01b0, 0x1ef1, - /* 0x0324 */ - 0x0055, 0x1e72, 0x0075, 0x1e73, - /* 0x0325 */ - 0x0041, 0x1e00, 0x0061, 0x1e01, - /* 0x0326 */ - 0x0053, 0x0218, 0x0054, 0x021a, 0x0073, 0x0219, 0x0074, 0x021b, - /* 0x0327 */ - 0x0043, 0x00c7, 0x0044, 0x1e10, 0x0045, 0x0228, 0x0047, 0x0122, - 0x0048, 0x1e28, 0x004b, 0x0136, 0x004c, 0x013b, 0x004e, 0x0145, - 0x0052, 0x0156, 0x0053, 0x015e, 0x0054, 0x0162, 0x0063, 0x00e7, - 0x0064, 0x1e11, 0x0065, 0x0229, 0x0067, 0x0123, 0x0068, 0x1e29, - 0x006b, 0x0137, 0x006c, 0x013c, 0x006e, 0x0146, 0x0072, 0x0157, - 0x0073, 0x015f, 0x0074, 0x0163, - /* 0x0328 */ - 0x0041, 0x0104, 0x0045, 0x0118, 0x0049, 0x012e, 0x004f, 0x01ea, - 0x0055, 0x0172, 0x0061, 0x0105, 0x0065, 0x0119, 0x0069, 0x012f, - 0x006f, 0x01eb, 0x0075, 0x0173, - /* 0x032d */ - 0x0044, 0x1e12, 0x0045, 0x1e18, 0x004c, 0x1e3c, 0x004e, 0x1e4a, - 0x0054, 0x1e70, 0x0055, 0x1e76, 0x0064, 0x1e13, 0x0065, 0x1e19, - 0x006c, 0x1e3d, 0x006e, 0x1e4b, 0x0074, 0x1e71, 0x0075, 0x1e77, - /* 0x032e */ - 0x0048, 0x1e2a, 0x0068, 0x1e2b, - /* 0x0330 */ - 0x0045, 0x1e1a, 0x0049, 0x1e2c, 0x0055, 0x1e74, 0x0065, 0x1e1b, - 0x0069, 0x1e2d, 0x0075, 0x1e75, - /* 0x0331 */ - 0x0042, 0x1e06, 0x0044, 0x1e0e, 0x004b, 0x1e34, 0x004c, 0x1e3a, - 0x004e, 0x1e48, 0x0052, 0x1e5e, 0x0054, 0x1e6e, 0x005a, 0x1e94, - 0x0062, 0x1e07, 0x0064, 0x1e0f, 0x0068, 0x1e96, 0x006b, 0x1e35, - 0x006c, 0x1e3b, 0x006e, 0x1e49, 0x0072, 0x1e5f, 0x0074, 0x1e6f, - 0x007a, 0x1e95, - /* 0x0338 */ - 0x003c, 0x226e, 0x003d, 0x2260, 0x003e, 0x226f, 0x2190, 0x219a, - 0x2192, 0x219b, 0x2194, 0x21ae, 0x21d0, 0x21cd, 0x21d2, 0x21cf, - 0x21d4, 0x21ce, 0x2203, 0x2204, 0x2208, 0x2209, 0x220b, 0x220c, - 0x2223, 0x2224, 0x2225, 0x2226, 0x223c, 0x2241, 0x2243, 0x2244, - 0x2245, 0x2247, 0x2248, 0x2249, 0x224d, 0x226d, 0x2261, 0x2262, - 0x2264, 0x2270, 0x2265, 0x2271, 0x2272, 0x2274, 0x2273, 0x2275, - 0x2276, 0x2278, 0x2277, 0x2279, 0x227a, 0x2280, 0x227b, 0x2281, - 0x227c, 0x22e0, 0x227d, 0x22e1, 0x2282, 0x2284, 0x2283, 0x2285, - 0x2286, 0x2288, 0x2287, 0x2289, 0x2291, 0x22e2, 0x2292, 0x22e3, - 0x22a2, 0x22ac, 0x22a8, 0x22ad, 0x22a9, 0x22ae, 0x22ab, 0x22af, - 0x22b2, 0x22ea, 0x22b3, 0x22eb, 0x22b4, 0x22ec, 0x22b5, 0x22ed, - 0x2add, 0x2adc, - /* 0x0342 */ - 0x00a8, 0x1fc1, 0x03b1, 0x1fb6, 0x03b7, 0x1fc6, 0x03b9, 0x1fd6, - 0x03c5, 0x1fe6, 0x03c9, 0x1ff6, 0x03ca, 0x1fd7, 0x03cb, 0x1fe7, - 0x1f00, 0x1f06, 0x1f01, 0x1f07, 0x1f08, 0x1f0e, 0x1f09, 0x1f0f, - 0x1f20, 0x1f26, 0x1f21, 0x1f27, 0x1f28, 0x1f2e, 0x1f29, 0x1f2f, - 0x1f30, 0x1f36, 0x1f31, 0x1f37, 0x1f38, 0x1f3e, 0x1f39, 0x1f3f, - 0x1f50, 0x1f56, 0x1f51, 0x1f57, 0x1f59, 0x1f5f, 0x1f60, 0x1f66, - 0x1f61, 0x1f67, 0x1f68, 0x1f6e, 0x1f69, 0x1f6f, 0x1fbf, 0x1fcf, - 0x1ffe, 0x1fdf, - /* 0x0345 */ - 0x0391, 0x1fbc, 0x0397, 0x1fcc, 0x03a9, 0x1ffc, 0x03ac, 0x1fb4, - 0x03ae, 0x1fc4, 0x03b1, 0x1fb3, 0x03b7, 0x1fc3, 0x03c9, 0x1ff3, - 0x03ce, 0x1ff4, 0x1f00, 0x1f80, 0x1f01, 0x1f81, 0x1f02, 0x1f82, - 0x1f03, 0x1f83, 0x1f04, 0x1f84, 0x1f05, 0x1f85, 0x1f06, 0x1f86, - 0x1f07, 0x1f87, 0x1f08, 0x1f88, 0x1f09, 0x1f89, 0x1f0a, 0x1f8a, - 0x1f0b, 0x1f8b, 0x1f0c, 0x1f8c, 0x1f0d, 0x1f8d, 0x1f0e, 0x1f8e, - 0x1f0f, 0x1f8f, 0x1f20, 0x1f90, 0x1f21, 0x1f91, 0x1f22, 0x1f92, - 0x1f23, 0x1f93, 0x1f24, 0x1f94, 0x1f25, 0x1f95, 0x1f26, 0x1f96, - 0x1f27, 0x1f97, 0x1f28, 0x1f98, 0x1f29, 0x1f99, 0x1f2a, 0x1f9a, - 0x1f2b, 0x1f9b, 0x1f2c, 0x1f9c, 0x1f2d, 0x1f9d, 0x1f2e, 0x1f9e, - 0x1f2f, 0x1f9f, 0x1f60, 0x1fa0, 0x1f61, 0x1fa1, 0x1f62, 0x1fa2, - 0x1f63, 0x1fa3, 0x1f64, 0x1fa4, 0x1f65, 0x1fa5, 0x1f66, 0x1fa6, - 0x1f67, 0x1fa7, 0x1f68, 0x1fa8, 0x1f69, 0x1fa9, 0x1f6a, 0x1faa, - 0x1f6b, 0x1fab, 0x1f6c, 0x1fac, 0x1f6d, 0x1fad, 0x1f6e, 0x1fae, - 0x1f6f, 0x1faf, 0x1f70, 0x1fb2, 0x1f74, 0x1fc2, 0x1f7c, 0x1ff2, - 0x1fb6, 0x1fb7, 0x1fc6, 0x1fc7, 0x1ff6, 0x1ff7, - /* 0x05b4 */ - 0x05d9, 0xfb1d, - /* 0x05b7 */ - 0x05d0, 0xfb2e, 0x05f2, 0xfb1f, - /* 0x05b8 */ - 0x05d0, 0xfb2f, - /* 0x05b9 */ - 0x05d5, 0xfb4b, - /* 0x05bc */ - 0x05d0, 0xfb30, 0x05d1, 0xfb31, 0x05d2, 0xfb32, 0x05d3, 0xfb33, - 0x05d4, 0xfb34, 0x05d5, 0xfb35, 0x05d6, 0xfb36, 0x05d8, 0xfb38, - 0x05d9, 0xfb39, 0x05da, 0xfb3a, 0x05db, 0xfb3b, 0x05dc, 0xfb3c, - 0x05de, 0xfb3e, 0x05e0, 0xfb40, 0x05e1, 0xfb41, 0x05e3, 0xfb43, - 0x05e4, 0xfb44, 0x05e6, 0xfb46, 0x05e7, 0xfb47, 0x05e8, 0xfb48, - 0x05e9, 0xfb49, 0x05ea, 0xfb4a, - /* 0x05bf */ - 0x05d1, 0xfb4c, 0x05db, 0xfb4d, 0x05e4, 0xfb4e, - /* 0x05c1 */ - 0x05e9, 0xfb2a, 0xfb49, 0xfb2c, - /* 0x05c2 */ - 0x05e9, 0xfb2b, 0xfb49, 0xfb2d, - /* 0x0653 */ - 0x0627, 0x0622, - /* 0x0654 */ - 0x0627, 0x0623, 0x0648, 0x0624, 0x064a, 0x0626, 0x06c1, 0x06c2, - 0x06d2, 0x06d3, 0x06d5, 0x06c0, - /* 0x0655 */ - 0x0627, 0x0625, - /* 0x093c */ - 0x0915, 0x0958, 0x0916, 0x0959, 0x0917, 0x095a, 0x091c, 0x095b, - 0x0921, 0x095c, 0x0922, 0x095d, 0x0928, 0x0929, 0x092b, 0x095e, - 0x092f, 0x095f, 0x0930, 0x0931, 0x0933, 0x0934, - /* 0x09bc */ - 0x09a1, 0x09dc, 0x09a2, 0x09dd, 0x09af, 0x09df, - /* 0x09be */ - 0x09c7, 0x09cb, - /* 0x09d7 */ - 0x09c7, 0x09cc, - /* 0x0a3c */ - 0x0a16, 0x0a59, 0x0a17, 0x0a5a, 0x0a1c, 0x0a5b, 0x0a2b, 0x0a5e, - 0x0a32, 0x0a33, 0x0a38, 0x0a36, - /* 0x0b3c */ - 0x0b21, 0x0b5c, 0x0b22, 0x0b5d, - /* 0x0b3e */ - 0x0b47, 0x0b4b, - /* 0x0b56 */ - 0x0b47, 0x0b48, - /* 0x0b57 */ - 0x0b47, 0x0b4c, - /* 0x0bbe */ - 0x0bc6, 0x0bca, 0x0bc7, 0x0bcb, - /* 0x0bd7 */ - 0x0b92, 0x0b94, 0x0bc6, 0x0bcc, - /* 0x0c56 */ - 0x0c46, 0x0c48, - /* 0x0cc2 */ - 0x0cc6, 0x0cca, - /* 0x0cd5 */ - 0x0cbf, 0x0cc0, 0x0cc6, 0x0cc7, 0x0cca, 0x0ccb, - /* 0x0cd6 */ - 0x0cc6, 0x0cc8, - /* 0x0d3e */ - 0x0d46, 0x0d4a, 0x0d47, 0x0d4b, - /* 0x0d57 */ - 0x0d46, 0x0d4c, - /* 0x0dca */ - 0x0dd9, 0x0dda, 0x0ddc, 0x0ddd, - /* 0x0dcf */ - 0x0dd9, 0x0ddc, - /* 0x0ddf */ - 0x0dd9, 0x0dde, - /* 0x0f72 */ - 0x0f71, 0x0f73, - /* 0x0f74 */ - 0x0f71, 0x0f75, - /* 0x0f80 */ - 0x0f71, 0x0f81, 0x0fb2, 0x0f76, 0x0fb3, 0x0f78, - /* 0x0fb5 */ - 0x0f40, 0x0f69, 0x0f90, 0x0fb9, - /* 0x0fb7 */ - 0x0f42, 0x0f43, 0x0f4c, 0x0f4d, 0x0f51, 0x0f52, 0x0f56, 0x0f57, - 0x0f5b, 0x0f5c, 0x0f92, 0x0f93, 0x0f9c, 0x0f9d, 0x0fa1, 0x0fa2, - 0x0fa6, 0x0fa7, 0x0fab, 0x0fac, - /* 0x102e */ - 0x1025, 0x1026, - /* 0x1b35 */ - 0x1b05, 0x1b06, 0x1b07, 0x1b08, 0x1b09, 0x1b0a, 0x1b0b, 0x1b0c, - 0x1b0d, 0x1b0e, 0x1b11, 0x1b12, 0x1b3a, 0x1b3b, 0x1b3c, 0x1b3d, - 0x1b3e, 0x1b40, 0x1b3f, 0x1b41, 0x1b42, 0x1b43, - /* 0x3099 */ - 0x3046, 0x3094, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, - 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, - 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, - 0x3061, 0x3062, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, - 0x306f, 0x3070, 0x3072, 0x3073, 0x3075, 0x3076, 0x3078, 0x3079, - 0x307b, 0x307c, 0x309d, 0x309e, 0x30a6, 0x30f4, 0x30ab, 0x30ac, - 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, - 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, - 0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c4, 0x30c5, - 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30cf, 0x30d0, 0x30d2, 0x30d3, - 0x30d5, 0x30d6, 0x30d8, 0x30d9, 0x30db, 0x30dc, 0x30ef, 0x30f7, - 0x30f0, 0x30f8, 0x30f1, 0x30f9, 0x30f2, 0x30fa, 0x30fd, 0x30fe, - /* 0x309a */ - 0x306f, 0x3071, 0x3072, 0x3074, 0x3075, 0x3077, 0x3078, 0x307a, - 0x307b, 0x307d, 0x30cf, 0x30d1, 0x30d2, 0x30d4, 0x30d5, 0x30d7, - 0x30d8, 0x30da, 0x30db, 0x30dd -}; - -const unsigned int unicode_compose_table_size = 70; - -const WCHAR unicode_decompose_table[4704] = -{ - /* index */ - 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0100, 0x0160, 0x0100, - 0x0100, 0x0170, 0x0180, 0x0190, 0x01a0, 0x01b0, 0x0100, 0x01c0, - 0x01d0, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x01e0, 0x0100, 0x0100, 0x01f0, 0x0200, - 0x0100, 0x0210, 0x0220, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0230, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0240, 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, - 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, 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, 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, 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, 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, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0250, 0x0100, 0x0100, 0x0100, 0x0100, - /* null sub-index */ - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - /* sub-index 00 */ - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0280, 0x02a0, 0x02c0, 0x02e0, - /* sub-index 01 */ - 0x0300, 0x0320, 0x0340, 0x0360, 0x0380, 0x03a0, 0x03c0, 0x03e0, - 0x0260, 0x0260, 0x0400, 0x0420, 0x0440, 0x0460, 0x0480, 0x04a0, - /* sub-index 02 */ - 0x04c0, 0x04e0, 0x0500, 0x0520, 0x0260, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - /* sub-index 03 */ - 0x0260, 0x0260, 0x0260, 0x0260, 0x0540, 0x0260, 0x0260, 0x0260, - 0x0560, 0x0580, 0x05a0, 0x05c0, 0x05e0, 0x0600, 0x0260, 0x0260, - /* sub-index 04 */ - 0x0620, 0x0640, 0x0260, 0x0660, 0x0260, 0x0680, 0x0260, 0x06a0, - 0x0260, 0x0260, 0x0260, 0x0260, 0x06c0, 0x06e0, 0x0700, 0x0720, - /* sub-index 06 */ - 0x0260, 0x0260, 0x0740, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0760, 0x0780, 0x0260, 0x0260, - /* sub-index 09 */ - 0x0260, 0x0260, 0x07a0, 0x07c0, 0x0260, 0x07e0, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0800, 0x0820, 0x0260, 0x0260, - /* sub-index 0a */ - 0x0260, 0x0260, 0x0260, 0x0840, 0x0260, 0x0860, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - /* sub-index 0b */ - 0x0260, 0x0260, 0x0260, 0x0260, 0x0880, 0x08a0, 0x0260, 0x0260, - 0x0260, 0x08c0, 0x0260, 0x0260, 0x08e0, 0x0260, 0x0260, 0x0260, - /* sub-index 0c */ - 0x0260, 0x0260, 0x0260, 0x0260, 0x0900, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0920, 0x0260, 0x0260, 0x0260, - /* sub-index 0d */ - 0x0260, 0x0260, 0x0260, 0x0260, 0x0940, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0960, 0x0260, 0x0260, - /* sub-index 0f */ - 0x0260, 0x0260, 0x0260, 0x0260, 0x0980, 0x09a0, 0x09c0, 0x09e0, - 0x0a00, 0x0a20, 0x0a40, 0x0a60, 0x0260, 0x0260, 0x0260, 0x0260, - /* sub-index 10 */ - 0x0260, 0x0260, 0x0a80, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - /* sub-index 1b */ - 0x0aa0, 0x0ac0, 0x0260, 0x0ae0, 0x0b00, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - /* sub-index 1e */ - 0x0b20, 0x0b40, 0x0b60, 0x0b80, 0x0ba0, 0x0bc0, 0x0be0, 0x0c00, - 0x0c20, 0x0c40, 0x0c60, 0x0c80, 0x0ca0, 0x0cc0, 0x0ce0, 0x0d00, - /* sub-index 1f */ - 0x0d20, 0x0d40, 0x0d60, 0x0d80, 0x0da0, 0x0dc0, 0x0de0, 0x0e00, - 0x0e20, 0x0e40, 0x0e60, 0x0e80, 0x0ea0, 0x0ec0, 0x0ee0, 0x0f00, - /* sub-index 21 */ - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0f20, 0x0f40, 0x0260, 0x0f60, 0x0260, 0x0260, 0x0260, - /* sub-index 22 */ - 0x0f80, 0x0260, 0x0fa0, 0x0260, 0x0fc0, 0x0260, 0x0fe0, 0x1000, - 0x1020, 0x0260, 0x1040, 0x0260, 0x0260, 0x0260, 0x1060, 0x0260, - /* sub-index 2a */ - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x1080, 0x0260, 0x0260, - /* sub-index 30 */ - 0x0260, 0x0260, 0x0260, 0x0260, 0x10a0, 0x10c0, 0x10e0, 0x1100, - 0x0260, 0x1120, 0x1140, 0x1160, 0x1180, 0x11a0, 0x0260, 0x11c0, - /* sub-index fb */ - 0x0260, 0x11e0, 0x1200, 0x1220, 0x1240, 0x0260, 0x0260, 0x0260, - 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, - /* null mapping */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x00c0 .. 0x00cf */ - 0x0041, 0x0300, 0x0041, 0x0301, 0x0041, 0x0302, 0x0041, 0x0303, - 0x0041, 0x0308, 0x0041, 0x030a, 0x0000, 0x0000, 0x0043, 0x0327, - 0x0045, 0x0300, 0x0045, 0x0301, 0x0045, 0x0302, 0x0045, 0x0308, - 0x0049, 0x0300, 0x0049, 0x0301, 0x0049, 0x0302, 0x0049, 0x0308, - /* 0x00d0 .. 0x00df */ - 0x0000, 0x0000, 0x004e, 0x0303, 0x004f, 0x0300, 0x004f, 0x0301, - 0x004f, 0x0302, 0x004f, 0x0303, 0x004f, 0x0308, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0055, 0x0300, 0x0055, 0x0301, 0x0055, 0x0302, - 0x0055, 0x0308, 0x0059, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x00e0 .. 0x00ef */ - 0x0061, 0x0300, 0x0061, 0x0301, 0x0061, 0x0302, 0x0061, 0x0303, - 0x0061, 0x0308, 0x0061, 0x030a, 0x0000, 0x0000, 0x0063, 0x0327, - 0x0065, 0x0300, 0x0065, 0x0301, 0x0065, 0x0302, 0x0065, 0x0308, - 0x0069, 0x0300, 0x0069, 0x0301, 0x0069, 0x0302, 0x0069, 0x0308, - /* 0x00f0 .. 0x00ff */ - 0x0000, 0x0000, 0x006e, 0x0303, 0x006f, 0x0300, 0x006f, 0x0301, - 0x006f, 0x0302, 0x006f, 0x0303, 0x006f, 0x0308, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0075, 0x0300, 0x0075, 0x0301, 0x0075, 0x0302, - 0x0075, 0x0308, 0x0079, 0x0301, 0x0000, 0x0000, 0x0079, 0x0308, - /* 0x0100 .. 0x010f */ - 0x0041, 0x0304, 0x0061, 0x0304, 0x0041, 0x0306, 0x0061, 0x0306, - 0x0041, 0x0328, 0x0061, 0x0328, 0x0043, 0x0301, 0x0063, 0x0301, - 0x0043, 0x0302, 0x0063, 0x0302, 0x0043, 0x0307, 0x0063, 0x0307, - 0x0043, 0x030c, 0x0063, 0x030c, 0x0044, 0x030c, 0x0064, 0x030c, - /* 0x0110 .. 0x011f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0045, 0x0304, 0x0065, 0x0304, - 0x0045, 0x0306, 0x0065, 0x0306, 0x0045, 0x0307, 0x0065, 0x0307, - 0x0045, 0x0328, 0x0065, 0x0328, 0x0045, 0x030c, 0x0065, 0x030c, - 0x0047, 0x0302, 0x0067, 0x0302, 0x0047, 0x0306, 0x0067, 0x0306, - /* 0x0120 .. 0x012f */ - 0x0047, 0x0307, 0x0067, 0x0307, 0x0047, 0x0327, 0x0067, 0x0327, - 0x0048, 0x0302, 0x0068, 0x0302, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0049, 0x0303, 0x0069, 0x0303, 0x0049, 0x0304, 0x0069, 0x0304, - 0x0049, 0x0306, 0x0069, 0x0306, 0x0049, 0x0328, 0x0069, 0x0328, - /* 0x0130 .. 0x013f */ - 0x0049, 0x0307, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x004a, 0x0302, 0x006a, 0x0302, 0x004b, 0x0327, 0x006b, 0x0327, - 0x0000, 0x0000, 0x004c, 0x0301, 0x006c, 0x0301, 0x004c, 0x0327, - 0x006c, 0x0327, 0x004c, 0x030c, 0x006c, 0x030c, 0x0000, 0x0000, - /* 0x0140 .. 0x014f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x004e, 0x0301, - 0x006e, 0x0301, 0x004e, 0x0327, 0x006e, 0x0327, 0x004e, 0x030c, - 0x006e, 0x030c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x004f, 0x0304, 0x006f, 0x0304, 0x004f, 0x0306, 0x006f, 0x0306, - /* 0x0150 .. 0x015f */ - 0x004f, 0x030b, 0x006f, 0x030b, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0052, 0x0301, 0x0072, 0x0301, 0x0052, 0x0327, 0x0072, 0x0327, - 0x0052, 0x030c, 0x0072, 0x030c, 0x0053, 0x0301, 0x0073, 0x0301, - 0x0053, 0x0302, 0x0073, 0x0302, 0x0053, 0x0327, 0x0073, 0x0327, - /* 0x0160 .. 0x016f */ - 0x0053, 0x030c, 0x0073, 0x030c, 0x0054, 0x0327, 0x0074, 0x0327, - 0x0054, 0x030c, 0x0074, 0x030c, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0055, 0x0303, 0x0075, 0x0303, 0x0055, 0x0304, 0x0075, 0x0304, - 0x0055, 0x0306, 0x0075, 0x0306, 0x0055, 0x030a, 0x0075, 0x030a, - /* 0x0170 .. 0x017f */ - 0x0055, 0x030b, 0x0075, 0x030b, 0x0055, 0x0328, 0x0075, 0x0328, - 0x0057, 0x0302, 0x0077, 0x0302, 0x0059, 0x0302, 0x0079, 0x0302, - 0x0059, 0x0308, 0x005a, 0x0301, 0x007a, 0x0301, 0x005a, 0x0307, - 0x007a, 0x0307, 0x005a, 0x030c, 0x007a, 0x030c, 0x0000, 0x0000, - /* 0x01a0 .. 0x01af */ - 0x004f, 0x031b, 0x006f, 0x031b, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0055, 0x031b, - /* 0x01b0 .. 0x01bf */ - 0x0075, 0x031b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x01c0 .. 0x01cf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0041, 0x030c, 0x0061, 0x030c, 0x0049, 0x030c, - /* 0x01d0 .. 0x01df */ - 0x0069, 0x030c, 0x004f, 0x030c, 0x006f, 0x030c, 0x0055, 0x030c, - 0x0075, 0x030c, 0x00dc, 0x0304, 0x00fc, 0x0304, 0x00dc, 0x0301, - 0x00fc, 0x0301, 0x00dc, 0x030c, 0x00fc, 0x030c, 0x00dc, 0x0300, - 0x00fc, 0x0300, 0x0000, 0x0000, 0x00c4, 0x0304, 0x00e4, 0x0304, - /* 0x01e0 .. 0x01ef */ - 0x0226, 0x0304, 0x0227, 0x0304, 0x00c6, 0x0304, 0x00e6, 0x0304, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0047, 0x030c, 0x0067, 0x030c, - 0x004b, 0x030c, 0x006b, 0x030c, 0x004f, 0x0328, 0x006f, 0x0328, - 0x01ea, 0x0304, 0x01eb, 0x0304, 0x01b7, 0x030c, 0x0292, 0x030c, - /* 0x01f0 .. 0x01ff */ - 0x006a, 0x030c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0047, 0x0301, 0x0067, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, - 0x004e, 0x0300, 0x006e, 0x0300, 0x00c5, 0x0301, 0x00e5, 0x0301, - 0x00c6, 0x0301, 0x00e6, 0x0301, 0x00d8, 0x0301, 0x00f8, 0x0301, - /* 0x0200 .. 0x020f */ - 0x0041, 0x030f, 0x0061, 0x030f, 0x0041, 0x0311, 0x0061, 0x0311, - 0x0045, 0x030f, 0x0065, 0x030f, 0x0045, 0x0311, 0x0065, 0x0311, - 0x0049, 0x030f, 0x0069, 0x030f, 0x0049, 0x0311, 0x0069, 0x0311, - 0x004f, 0x030f, 0x006f, 0x030f, 0x004f, 0x0311, 0x006f, 0x0311, - /* 0x0210 .. 0x021f */ - 0x0052, 0x030f, 0x0072, 0x030f, 0x0052, 0x0311, 0x0072, 0x0311, - 0x0055, 0x030f, 0x0075, 0x030f, 0x0055, 0x0311, 0x0075, 0x0311, - 0x0053, 0x0326, 0x0073, 0x0326, 0x0054, 0x0326, 0x0074, 0x0326, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0048, 0x030c, 0x0068, 0x030c, - /* 0x0220 .. 0x022f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0041, 0x0307, 0x0061, 0x0307, - 0x0045, 0x0327, 0x0065, 0x0327, 0x00d6, 0x0304, 0x00f6, 0x0304, - 0x00d5, 0x0304, 0x00f5, 0x0304, 0x004f, 0x0307, 0x006f, 0x0307, - /* 0x0230 .. 0x023f */ - 0x022e, 0x0304, 0x022f, 0x0304, 0x0059, 0x0304, 0x0079, 0x0304, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0340 .. 0x034f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0308, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0380 .. 0x038f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x00a8, 0x0301, 0x0391, 0x0301, 0x0000, 0x0000, - 0x0395, 0x0301, 0x0397, 0x0301, 0x0399, 0x0301, 0x0000, 0x0000, - 0x039f, 0x0301, 0x0000, 0x0000, 0x03a5, 0x0301, 0x03a9, 0x0301, - /* 0x0390 .. 0x039f */ - 0x03ca, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x03a0 .. 0x03af */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0399, 0x0308, 0x03a5, 0x0308, - 0x03b1, 0x0301, 0x03b5, 0x0301, 0x03b7, 0x0301, 0x03b9, 0x0301, - /* 0x03b0 .. 0x03bf */ - 0x03cb, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x03c0 .. 0x03cf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x03b9, 0x0308, 0x03c5, 0x0308, - 0x03bf, 0x0301, 0x03c5, 0x0301, 0x03c9, 0x0301, 0x0000, 0x0000, - /* 0x03d0 .. 0x03df */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03d2, 0x0301, - 0x03d2, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0400 .. 0x040f */ - 0x0415, 0x0300, 0x0415, 0x0308, 0x0000, 0x0000, 0x0413, 0x0301, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0406, 0x0308, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x041a, 0x0301, 0x0418, 0x0300, 0x0423, 0x0306, 0x0000, 0x0000, - /* 0x0410 .. 0x041f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0418, 0x0306, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0430 .. 0x043f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0438, 0x0306, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0450 .. 0x045f */ - 0x0435, 0x0300, 0x0435, 0x0308, 0x0000, 0x0000, 0x0433, 0x0301, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0456, 0x0308, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x043a, 0x0301, 0x0438, 0x0300, 0x0443, 0x0306, 0x0000, 0x0000, - /* 0x0470 .. 0x047f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0474, 0x030f, 0x0475, 0x030f, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x04c0 .. 0x04cf */ - 0x0000, 0x0000, 0x0416, 0x0306, 0x0436, 0x0306, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x04d0 .. 0x04df */ - 0x0410, 0x0306, 0x0430, 0x0306, 0x0410, 0x0308, 0x0430, 0x0308, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0415, 0x0306, 0x0435, 0x0306, - 0x0000, 0x0000, 0x0000, 0x0000, 0x04d8, 0x0308, 0x04d9, 0x0308, - 0x0416, 0x0308, 0x0436, 0x0308, 0x0417, 0x0308, 0x0437, 0x0308, - /* 0x04e0 .. 0x04ef */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0418, 0x0304, 0x0438, 0x0304, - 0x0418, 0x0308, 0x0438, 0x0308, 0x041e, 0x0308, 0x043e, 0x0308, - 0x0000, 0x0000, 0x0000, 0x0000, 0x04e8, 0x0308, 0x04e9, 0x0308, - 0x042d, 0x0308, 0x044d, 0x0308, 0x0423, 0x0304, 0x0443, 0x0304, - /* 0x04f0 .. 0x04ff */ - 0x0423, 0x0308, 0x0443, 0x0308, 0x0423, 0x030b, 0x0443, 0x030b, - 0x0427, 0x0308, 0x0447, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, - 0x042b, 0x0308, 0x044b, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0620 .. 0x062f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0627, 0x0653, 0x0627, 0x0654, - 0x0648, 0x0654, 0x0627, 0x0655, 0x064a, 0x0654, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x06c0 .. 0x06cf */ - 0x06d5, 0x0654, 0x0000, 0x0000, 0x06c1, 0x0654, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x06d0 .. 0x06df */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x06d2, 0x0654, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0920 .. 0x092f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0928, 0x093c, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0930 .. 0x093f */ - 0x0000, 0x0000, 0x0930, 0x093c, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0933, 0x093c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0950 .. 0x095f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0915, 0x093c, 0x0916, 0x093c, 0x0917, 0x093c, 0x091c, 0x093c, - 0x0921, 0x093c, 0x0922, 0x093c, 0x092b, 0x093c, 0x092f, 0x093c, - /* 0x09c0 .. 0x09cf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x09c7, 0x09be, - 0x09c7, 0x09d7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x09d0 .. 0x09df */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x09a1, 0x09bc, 0x09a2, 0x09bc, 0x0000, 0x0000, 0x09af, 0x09bc, - /* 0x0a30 .. 0x0a3f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0a32, 0x0a3c, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0a38, 0x0a3c, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0a50 .. 0x0a5f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0a16, 0x0a3c, 0x0a17, 0x0a3c, 0x0a1c, 0x0a3c, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0a2b, 0x0a3c, 0x0000, 0x0000, - /* 0x0b40 .. 0x0b4f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0b47, 0x0b56, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b47, 0x0b3e, - 0x0b47, 0x0b57, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0b50 .. 0x0b5f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0b21, 0x0b3c, 0x0b22, 0x0b3c, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0b90 .. 0x0b9f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0b92, 0x0bd7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0bc0 .. 0x0bcf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0bc6, 0x0bbe, 0x0bc7, 0x0bbe, - 0x0bc6, 0x0bd7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0c40 .. 0x0c4f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0c46, 0x0c56, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0cc0 .. 0x0ccf */ - 0x0cbf, 0x0cd5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0cc6, 0x0cd5, - 0x0cc6, 0x0cd6, 0x0000, 0x0000, 0x0cc6, 0x0cc2, 0x0cca, 0x0cd5, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0d40 .. 0x0d4f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0d46, 0x0d3e, 0x0d47, 0x0d3e, - 0x0d46, 0x0d57, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0dd0 .. 0x0ddf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0dd9, 0x0dca, 0x0000, 0x0000, - 0x0dd9, 0x0dcf, 0x0ddc, 0x0dca, 0x0dd9, 0x0ddf, 0x0000, 0x0000, - /* 0x0f40 .. 0x0f4f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f42, 0x0fb7, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0f4c, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0f50 .. 0x0f5f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0f51, 0x0fb7, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f56, 0x0fb7, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0f5b, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0f60 .. 0x0f6f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0f40, 0x0fb5, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0f70 .. 0x0f7f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f71, 0x0f72, - 0x0000, 0x0000, 0x0f71, 0x0f74, 0x0fb2, 0x0f80, 0x0000, 0x0000, - 0x0fb3, 0x0f80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0f80 .. 0x0f8f */ - 0x0000, 0x0000, 0x0f71, 0x0f80, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0f90 .. 0x0f9f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f92, 0x0fb7, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0f9c, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0fa0 .. 0x0faf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0fa1, 0x0fb7, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0fa6, 0x0fb7, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0fab, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0fb0 .. 0x0fbf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0f90, 0x0fb5, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1020 .. 0x102f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1025, 0x102e, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1b00 .. 0x1b0f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1b05, 0x1b35, 0x0000, 0x0000, - 0x1b07, 0x1b35, 0x0000, 0x0000, 0x1b09, 0x1b35, 0x0000, 0x0000, - 0x1b0b, 0x1b35, 0x0000, 0x0000, 0x1b0d, 0x1b35, 0x0000, 0x0000, - /* 0x1b10 .. 0x1b1f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x1b11, 0x1b35, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1b30 .. 0x1b3f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1b3a, 0x1b35, - 0x0000, 0x0000, 0x1b3c, 0x1b35, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1b40 .. 0x1b4f */ - 0x1b3e, 0x1b35, 0x1b3f, 0x1b35, 0x0000, 0x0000, 0x1b42, 0x1b35, - 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 .. 0x1e0f */ - 0x0041, 0x0325, 0x0061, 0x0325, 0x0042, 0x0307, 0x0062, 0x0307, - 0x0042, 0x0323, 0x0062, 0x0323, 0x0042, 0x0331, 0x0062, 0x0331, - 0x00c7, 0x0301, 0x00e7, 0x0301, 0x0044, 0x0307, 0x0064, 0x0307, - 0x0044, 0x0323, 0x0064, 0x0323, 0x0044, 0x0331, 0x0064, 0x0331, - /* 0x1e10 .. 0x1e1f */ - 0x0044, 0x0327, 0x0064, 0x0327, 0x0044, 0x032d, 0x0064, 0x032d, - 0x0112, 0x0300, 0x0113, 0x0300, 0x0112, 0x0301, 0x0113, 0x0301, - 0x0045, 0x032d, 0x0065, 0x032d, 0x0045, 0x0330, 0x0065, 0x0330, - 0x0228, 0x0306, 0x0229, 0x0306, 0x0046, 0x0307, 0x0066, 0x0307, - /* 0x1e20 .. 0x1e2f */ - 0x0047, 0x0304, 0x0067, 0x0304, 0x0048, 0x0307, 0x0068, 0x0307, - 0x0048, 0x0323, 0x0068, 0x0323, 0x0048, 0x0308, 0x0068, 0x0308, - 0x0048, 0x0327, 0x0068, 0x0327, 0x0048, 0x032e, 0x0068, 0x032e, - 0x0049, 0x0330, 0x0069, 0x0330, 0x00cf, 0x0301, 0x00ef, 0x0301, - /* 0x1e30 .. 0x1e3f */ - 0x004b, 0x0301, 0x006b, 0x0301, 0x004b, 0x0323, 0x006b, 0x0323, - 0x004b, 0x0331, 0x006b, 0x0331, 0x004c, 0x0323, 0x006c, 0x0323, - 0x1e36, 0x0304, 0x1e37, 0x0304, 0x004c, 0x0331, 0x006c, 0x0331, - 0x004c, 0x032d, 0x006c, 0x032d, 0x004d, 0x0301, 0x006d, 0x0301, - /* 0x1e40 .. 0x1e4f */ - 0x004d, 0x0307, 0x006d, 0x0307, 0x004d, 0x0323, 0x006d, 0x0323, - 0x004e, 0x0307, 0x006e, 0x0307, 0x004e, 0x0323, 0x006e, 0x0323, - 0x004e, 0x0331, 0x006e, 0x0331, 0x004e, 0x032d, 0x006e, 0x032d, - 0x00d5, 0x0301, 0x00f5, 0x0301, 0x00d5, 0x0308, 0x00f5, 0x0308, - /* 0x1e50 .. 0x1e5f */ - 0x014c, 0x0300, 0x014d, 0x0300, 0x014c, 0x0301, 0x014d, 0x0301, - 0x0050, 0x0301, 0x0070, 0x0301, 0x0050, 0x0307, 0x0070, 0x0307, - 0x0052, 0x0307, 0x0072, 0x0307, 0x0052, 0x0323, 0x0072, 0x0323, - 0x1e5a, 0x0304, 0x1e5b, 0x0304, 0x0052, 0x0331, 0x0072, 0x0331, - /* 0x1e60 .. 0x1e6f */ - 0x0053, 0x0307, 0x0073, 0x0307, 0x0053, 0x0323, 0x0073, 0x0323, - 0x015a, 0x0307, 0x015b, 0x0307, 0x0160, 0x0307, 0x0161, 0x0307, - 0x1e62, 0x0307, 0x1e63, 0x0307, 0x0054, 0x0307, 0x0074, 0x0307, - 0x0054, 0x0323, 0x0074, 0x0323, 0x0054, 0x0331, 0x0074, 0x0331, - /* 0x1e70 .. 0x1e7f */ - 0x0054, 0x032d, 0x0074, 0x032d, 0x0055, 0x0324, 0x0075, 0x0324, - 0x0055, 0x0330, 0x0075, 0x0330, 0x0055, 0x032d, 0x0075, 0x032d, - 0x0168, 0x0301, 0x0169, 0x0301, 0x016a, 0x0308, 0x016b, 0x0308, - 0x0056, 0x0303, 0x0076, 0x0303, 0x0056, 0x0323, 0x0076, 0x0323, - /* 0x1e80 .. 0x1e8f */ - 0x0057, 0x0300, 0x0077, 0x0300, 0x0057, 0x0301, 0x0077, 0x0301, - 0x0057, 0x0308, 0x0077, 0x0308, 0x0057, 0x0307, 0x0077, 0x0307, - 0x0057, 0x0323, 0x0077, 0x0323, 0x0058, 0x0307, 0x0078, 0x0307, - 0x0058, 0x0308, 0x0078, 0x0308, 0x0059, 0x0307, 0x0079, 0x0307, - /* 0x1e90 .. 0x1e9f */ - 0x005a, 0x0302, 0x007a, 0x0302, 0x005a, 0x0323, 0x007a, 0x0323, - 0x005a, 0x0331, 0x007a, 0x0331, 0x0068, 0x0331, 0x0074, 0x0308, - 0x0077, 0x030a, 0x0079, 0x030a, 0x0000, 0x0000, 0x017f, 0x0307, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1ea0 .. 0x1eaf */ - 0x0041, 0x0323, 0x0061, 0x0323, 0x0041, 0x0309, 0x0061, 0x0309, - 0x00c2, 0x0301, 0x00e2, 0x0301, 0x00c2, 0x0300, 0x00e2, 0x0300, - 0x00c2, 0x0309, 0x00e2, 0x0309, 0x00c2, 0x0303, 0x00e2, 0x0303, - 0x1ea0, 0x0302, 0x1ea1, 0x0302, 0x0102, 0x0301, 0x0103, 0x0301, - /* 0x1eb0 .. 0x1ebf */ - 0x0102, 0x0300, 0x0103, 0x0300, 0x0102, 0x0309, 0x0103, 0x0309, - 0x0102, 0x0303, 0x0103, 0x0303, 0x1ea0, 0x0306, 0x1ea1, 0x0306, - 0x0045, 0x0323, 0x0065, 0x0323, 0x0045, 0x0309, 0x0065, 0x0309, - 0x0045, 0x0303, 0x0065, 0x0303, 0x00ca, 0x0301, 0x00ea, 0x0301, - /* 0x1ec0 .. 0x1ecf */ - 0x00ca, 0x0300, 0x00ea, 0x0300, 0x00ca, 0x0309, 0x00ea, 0x0309, - 0x00ca, 0x0303, 0x00ea, 0x0303, 0x1eb8, 0x0302, 0x1eb9, 0x0302, - 0x0049, 0x0309, 0x0069, 0x0309, 0x0049, 0x0323, 0x0069, 0x0323, - 0x004f, 0x0323, 0x006f, 0x0323, 0x004f, 0x0309, 0x006f, 0x0309, - /* 0x1ed0 .. 0x1edf */ - 0x00d4, 0x0301, 0x00f4, 0x0301, 0x00d4, 0x0300, 0x00f4, 0x0300, - 0x00d4, 0x0309, 0x00f4, 0x0309, 0x00d4, 0x0303, 0x00f4, 0x0303, - 0x1ecc, 0x0302, 0x1ecd, 0x0302, 0x01a0, 0x0301, 0x01a1, 0x0301, - 0x01a0, 0x0300, 0x01a1, 0x0300, 0x01a0, 0x0309, 0x01a1, 0x0309, - /* 0x1ee0 .. 0x1eef */ - 0x01a0, 0x0303, 0x01a1, 0x0303, 0x01a0, 0x0323, 0x01a1, 0x0323, - 0x0055, 0x0323, 0x0075, 0x0323, 0x0055, 0x0309, 0x0075, 0x0309, - 0x01af, 0x0301, 0x01b0, 0x0301, 0x01af, 0x0300, 0x01b0, 0x0300, - 0x01af, 0x0309, 0x01b0, 0x0309, 0x01af, 0x0303, 0x01b0, 0x0303, - /* 0x1ef0 .. 0x1eff */ - 0x01af, 0x0323, 0x01b0, 0x0323, 0x0059, 0x0300, 0x0079, 0x0300, - 0x0059, 0x0323, 0x0079, 0x0323, 0x0059, 0x0309, 0x0079, 0x0309, - 0x0059, 0x0303, 0x0079, 0x0303, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1f00 .. 0x1f0f */ - 0x03b1, 0x0313, 0x03b1, 0x0314, 0x1f00, 0x0300, 0x1f01, 0x0300, - 0x1f00, 0x0301, 0x1f01, 0x0301, 0x1f00, 0x0342, 0x1f01, 0x0342, - 0x0391, 0x0313, 0x0391, 0x0314, 0x1f08, 0x0300, 0x1f09, 0x0300, - 0x1f08, 0x0301, 0x1f09, 0x0301, 0x1f08, 0x0342, 0x1f09, 0x0342, - /* 0x1f10 .. 0x1f1f */ - 0x03b5, 0x0313, 0x03b5, 0x0314, 0x1f10, 0x0300, 0x1f11, 0x0300, - 0x1f10, 0x0301, 0x1f11, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0395, 0x0313, 0x0395, 0x0314, 0x1f18, 0x0300, 0x1f19, 0x0300, - 0x1f18, 0x0301, 0x1f19, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1f20 .. 0x1f2f */ - 0x03b7, 0x0313, 0x03b7, 0x0314, 0x1f20, 0x0300, 0x1f21, 0x0300, - 0x1f20, 0x0301, 0x1f21, 0x0301, 0x1f20, 0x0342, 0x1f21, 0x0342, - 0x0397, 0x0313, 0x0397, 0x0314, 0x1f28, 0x0300, 0x1f29, 0x0300, - 0x1f28, 0x0301, 0x1f29, 0x0301, 0x1f28, 0x0342, 0x1f29, 0x0342, - /* 0x1f30 .. 0x1f3f */ - 0x03b9, 0x0313, 0x03b9, 0x0314, 0x1f30, 0x0300, 0x1f31, 0x0300, - 0x1f30, 0x0301, 0x1f31, 0x0301, 0x1f30, 0x0342, 0x1f31, 0x0342, - 0x0399, 0x0313, 0x0399, 0x0314, 0x1f38, 0x0300, 0x1f39, 0x0300, - 0x1f38, 0x0301, 0x1f39, 0x0301, 0x1f38, 0x0342, 0x1f39, 0x0342, - /* 0x1f40 .. 0x1f4f */ - 0x03bf, 0x0313, 0x03bf, 0x0314, 0x1f40, 0x0300, 0x1f41, 0x0300, - 0x1f40, 0x0301, 0x1f41, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, - 0x039f, 0x0313, 0x039f, 0x0314, 0x1f48, 0x0300, 0x1f49, 0x0300, - 0x1f48, 0x0301, 0x1f49, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1f50 .. 0x1f5f */ - 0x03c5, 0x0313, 0x03c5, 0x0314, 0x1f50, 0x0300, 0x1f51, 0x0300, - 0x1f50, 0x0301, 0x1f51, 0x0301, 0x1f50, 0x0342, 0x1f51, 0x0342, - 0x0000, 0x0000, 0x03a5, 0x0314, 0x0000, 0x0000, 0x1f59, 0x0300, - 0x0000, 0x0000, 0x1f59, 0x0301, 0x0000, 0x0000, 0x1f59, 0x0342, - /* 0x1f60 .. 0x1f6f */ - 0x03c9, 0x0313, 0x03c9, 0x0314, 0x1f60, 0x0300, 0x1f61, 0x0300, - 0x1f60, 0x0301, 0x1f61, 0x0301, 0x1f60, 0x0342, 0x1f61, 0x0342, - 0x03a9, 0x0313, 0x03a9, 0x0314, 0x1f68, 0x0300, 0x1f69, 0x0300, - 0x1f68, 0x0301, 0x1f69, 0x0301, 0x1f68, 0x0342, 0x1f69, 0x0342, - /* 0x1f70 .. 0x1f7f */ - 0x03b1, 0x0300, 0x0000, 0x0000, 0x03b5, 0x0300, 0x0000, 0x0000, - 0x03b7, 0x0300, 0x0000, 0x0000, 0x03b9, 0x0300, 0x0000, 0x0000, - 0x03bf, 0x0300, 0x0000, 0x0000, 0x03c5, 0x0300, 0x0000, 0x0000, - 0x03c9, 0x0300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1f80 .. 0x1f8f */ - 0x1f00, 0x0345, 0x1f01, 0x0345, 0x1f02, 0x0345, 0x1f03, 0x0345, - 0x1f04, 0x0345, 0x1f05, 0x0345, 0x1f06, 0x0345, 0x1f07, 0x0345, - 0x1f08, 0x0345, 0x1f09, 0x0345, 0x1f0a, 0x0345, 0x1f0b, 0x0345, - 0x1f0c, 0x0345, 0x1f0d, 0x0345, 0x1f0e, 0x0345, 0x1f0f, 0x0345, - /* 0x1f90 .. 0x1f9f */ - 0x1f20, 0x0345, 0x1f21, 0x0345, 0x1f22, 0x0345, 0x1f23, 0x0345, - 0x1f24, 0x0345, 0x1f25, 0x0345, 0x1f26, 0x0345, 0x1f27, 0x0345, - 0x1f28, 0x0345, 0x1f29, 0x0345, 0x1f2a, 0x0345, 0x1f2b, 0x0345, - 0x1f2c, 0x0345, 0x1f2d, 0x0345, 0x1f2e, 0x0345, 0x1f2f, 0x0345, - /* 0x1fa0 .. 0x1faf */ - 0x1f60, 0x0345, 0x1f61, 0x0345, 0x1f62, 0x0345, 0x1f63, 0x0345, - 0x1f64, 0x0345, 0x1f65, 0x0345, 0x1f66, 0x0345, 0x1f67, 0x0345, - 0x1f68, 0x0345, 0x1f69, 0x0345, 0x1f6a, 0x0345, 0x1f6b, 0x0345, - 0x1f6c, 0x0345, 0x1f6d, 0x0345, 0x1f6e, 0x0345, 0x1f6f, 0x0345, - /* 0x1fb0 .. 0x1fbf */ - 0x03b1, 0x0306, 0x03b1, 0x0304, 0x1f70, 0x0345, 0x03b1, 0x0345, - 0x03ac, 0x0345, 0x0000, 0x0000, 0x03b1, 0x0342, 0x1fb6, 0x0345, - 0x0391, 0x0306, 0x0391, 0x0304, 0x0391, 0x0300, 0x0000, 0x0000, - 0x0391, 0x0345, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1fc0 .. 0x1fcf */ - 0x0000, 0x0000, 0x00a8, 0x0342, 0x1f74, 0x0345, 0x03b7, 0x0345, - 0x03ae, 0x0345, 0x0000, 0x0000, 0x03b7, 0x0342, 0x1fc6, 0x0345, - 0x0395, 0x0300, 0x0000, 0x0000, 0x0397, 0x0300, 0x0000, 0x0000, - 0x0397, 0x0345, 0x1fbf, 0x0300, 0x1fbf, 0x0301, 0x1fbf, 0x0342, - /* 0x1fd0 .. 0x1fdf */ - 0x03b9, 0x0306, 0x03b9, 0x0304, 0x03ca, 0x0300, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x03b9, 0x0342, 0x03ca, 0x0342, - 0x0399, 0x0306, 0x0399, 0x0304, 0x0399, 0x0300, 0x0000, 0x0000, - 0x0000, 0x0000, 0x1ffe, 0x0300, 0x1ffe, 0x0301, 0x1ffe, 0x0342, - /* 0x1fe0 .. 0x1fef */ - 0x03c5, 0x0306, 0x03c5, 0x0304, 0x03cb, 0x0300, 0x0000, 0x0000, - 0x03c1, 0x0313, 0x03c1, 0x0314, 0x03c5, 0x0342, 0x03cb, 0x0342, - 0x03a5, 0x0306, 0x03a5, 0x0304, 0x03a5, 0x0300, 0x0000, 0x0000, - 0x03a1, 0x0314, 0x00a8, 0x0300, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1ff0 .. 0x1fff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x1f7c, 0x0345, 0x03c9, 0x0345, - 0x03ce, 0x0345, 0x0000, 0x0000, 0x03c9, 0x0342, 0x1ff6, 0x0345, - 0x039f, 0x0300, 0x0000, 0x0000, 0x03a9, 0x0300, 0x0000, 0x0000, - 0x03a9, 0x0345, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2190 .. 0x219f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x2190, 0x0338, 0x2192, 0x0338, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x21a0 .. 0x21af */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x2194, 0x0338, 0x0000, 0x0000, - /* 0x21c0 .. 0x21cf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x21d0, 0x0338, 0x21d4, 0x0338, 0x21d2, 0x0338, - /* 0x2200 .. 0x220f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2203, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x2208, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, - 0x220b, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2220 .. 0x222f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2223, 0x0338, 0x0000, 0x0000, 0x2225, 0x0338, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2240 .. 0x224f */ - 0x0000, 0x0000, 0x223c, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2243, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x2245, 0x0338, - 0x0000, 0x0000, 0x2248, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2260 .. 0x226f */ - 0x003d, 0x0338, 0x0000, 0x0000, 0x2261, 0x0338, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x224d, 0x0338, 0x003c, 0x0338, 0x003e, 0x0338, - /* 0x2270 .. 0x227f */ - 0x2264, 0x0338, 0x2265, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2272, 0x0338, 0x2273, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2276, 0x0338, 0x2277, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2280 .. 0x228f */ - 0x227a, 0x0338, 0x227b, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2282, 0x0338, 0x2283, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2286, 0x0338, 0x2287, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x22a0 .. 0x22af */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x22a2, 0x0338, 0x22a8, 0x0338, 0x22a9, 0x0338, 0x22ab, 0x0338, - /* 0x22e0 .. 0x22ef */ - 0x227c, 0x0338, 0x227d, 0x0338, 0x2291, 0x0338, 0x2292, 0x0338, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x22b2, 0x0338, 0x22b3, 0x0338, - 0x22b4, 0x0338, 0x22b5, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2ad0 .. 0x2adf */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2add, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x3040 .. 0x304f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x304b, 0x3099, 0x0000, 0x0000, 0x304d, 0x3099, 0x0000, 0x0000, - /* 0x3050 .. 0x305f */ - 0x304f, 0x3099, 0x0000, 0x0000, 0x3051, 0x3099, 0x0000, 0x0000, - 0x3053, 0x3099, 0x0000, 0x0000, 0x3055, 0x3099, 0x0000, 0x0000, - 0x3057, 0x3099, 0x0000, 0x0000, 0x3059, 0x3099, 0x0000, 0x0000, - 0x305b, 0x3099, 0x0000, 0x0000, 0x305d, 0x3099, 0x0000, 0x0000, - /* 0x3060 .. 0x306f */ - 0x305f, 0x3099, 0x0000, 0x0000, 0x3061, 0x3099, 0x0000, 0x0000, - 0x0000, 0x0000, 0x3064, 0x3099, 0x0000, 0x0000, 0x3066, 0x3099, - 0x0000, 0x0000, 0x3068, 0x3099, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x3070 .. 0x307f */ - 0x306f, 0x3099, 0x306f, 0x309a, 0x0000, 0x0000, 0x3072, 0x3099, - 0x3072, 0x309a, 0x0000, 0x0000, 0x3075, 0x3099, 0x3075, 0x309a, - 0x0000, 0x0000, 0x3078, 0x3099, 0x3078, 0x309a, 0x0000, 0x0000, - 0x307b, 0x3099, 0x307b, 0x309a, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x3090 .. 0x309f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x3046, 0x3099, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x309d, 0x3099, 0x0000, 0x0000, - /* 0x30a0 .. 0x30af */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x30ab, 0x3099, 0x0000, 0x0000, 0x30ad, 0x3099, 0x0000, 0x0000, - /* 0x30b0 .. 0x30bf */ - 0x30af, 0x3099, 0x0000, 0x0000, 0x30b1, 0x3099, 0x0000, 0x0000, - 0x30b3, 0x3099, 0x0000, 0x0000, 0x30b5, 0x3099, 0x0000, 0x0000, - 0x30b7, 0x3099, 0x0000, 0x0000, 0x30b9, 0x3099, 0x0000, 0x0000, - 0x30bb, 0x3099, 0x0000, 0x0000, 0x30bd, 0x3099, 0x0000, 0x0000, - /* 0x30c0 .. 0x30cf */ - 0x30bf, 0x3099, 0x0000, 0x0000, 0x30c1, 0x3099, 0x0000, 0x0000, - 0x0000, 0x0000, 0x30c4, 0x3099, 0x0000, 0x0000, 0x30c6, 0x3099, - 0x0000, 0x0000, 0x30c8, 0x3099, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x30d0 .. 0x30df */ - 0x30cf, 0x3099, 0x30cf, 0x309a, 0x0000, 0x0000, 0x30d2, 0x3099, - 0x30d2, 0x309a, 0x0000, 0x0000, 0x30d5, 0x3099, 0x30d5, 0x309a, - 0x0000, 0x0000, 0x30d8, 0x3099, 0x30d8, 0x309a, 0x0000, 0x0000, - 0x30db, 0x3099, 0x30db, 0x309a, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x30f0 .. 0x30ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x30a6, 0x3099, 0x0000, 0x0000, 0x0000, 0x0000, 0x30ef, 0x3099, - 0x30f0, 0x3099, 0x30f1, 0x3099, 0x30f2, 0x3099, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x30fd, 0x3099, 0x0000, 0x0000, - /* 0xfb10 .. 0xfb1f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x05d9, 0x05b4, 0x0000, 0x0000, 0x05f2, 0x05b7, - /* 0xfb20 .. 0xfb2f */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x05e9, 0x05c1, 0x05e9, 0x05c2, - 0xfb49, 0x05c1, 0xfb49, 0x05c2, 0x05d0, 0x05b7, 0x05d0, 0x05b8, - /* 0xfb30 .. 0xfb3f */ - 0x05d0, 0x05bc, 0x05d1, 0x05bc, 0x05d2, 0x05bc, 0x05d3, 0x05bc, - 0x05d4, 0x05bc, 0x05d5, 0x05bc, 0x05d6, 0x05bc, 0x0000, 0x0000, - 0x05d8, 0x05bc, 0x05d9, 0x05bc, 0x05da, 0x05bc, 0x05db, 0x05bc, - 0x05dc, 0x05bc, 0x0000, 0x0000, 0x05de, 0x05bc, 0x0000, 0x0000, - /* 0xfb40 .. 0xfb4f */ - 0x05e0, 0x05bc, 0x05e1, 0x05bc, 0x0000, 0x0000, 0x05e3, 0x05bc, - 0x05e4, 0x05bc, 0x0000, 0x0000, 0x05e6, 0x05bc, 0x05e7, 0x05bc, - 0x05e8, 0x05bc, 0x05e9, 0x05bc, 0x05ea, 0x05bc, 0x05d5, 0x05b9, - 0x05d1, 0x05bf, 0x05db, 0x05bf, 0x05e4, 0x05bf, 0x0000, 0x0000 -}; diff --git a/reactos/tools/unicode/cpmap.pl b/reactos/tools/unicode/cpmap.pl deleted file mode 100644 index a04b10d9015..00000000000 --- a/reactos/tools/unicode/cpmap.pl +++ /dev/null @@ -1,1310 +0,0 @@ -#!/usr/bin/perl -# -# Generate code page .c files from ftp.unicode.org descriptions -# -# Copyright 2000 Alexandre Julliard -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -# - -# base directory for ftp.unicode.org files -$BASEDIR = "ftp.unicode.org/Public/"; -$MAPPREFIX = $BASEDIR . "MAPPINGS/"; - -# UnicodeData file -$UNICODEDATA = $BASEDIR . "UNIDATA/UnicodeData.txt"; - -# Sort keys file -$SORTKEYS = "www.unicode.org/reports/tr10/allkeys.txt"; - -# Defaults mapping -$DEFAULTS = "./defaults"; - -# Default char for undefined mappings -$DEF_CHAR = ord '?'; - -@allfiles = -( - [ 37, "VENDORS/MICSFT/EBCDIC/CP037.TXT", 0, "IBM EBCDIC US Canada" ], - [ 424, "VENDORS/MISC/CP424.TXT", 0, "IBM EBCDIC Hebrew" ], - [ 437, "VENDORS/MICSFT/PC/CP437.TXT", 1, "OEM United States" ], - [ 500, "VENDORS/MICSFT/EBCDIC/CP500.TXT", 0, "IBM EBCDIC International" ], - [ 737, "VENDORS/MICSFT/PC/CP737.TXT", 1, "OEM Greek 437G" ], - [ 775, "VENDORS/MICSFT/PC/CP775.TXT", 1, "OEM Baltic" ], - [ 850, "VENDORS/MICSFT/PC/CP850.TXT", 1, "OEM Multilingual Latin 1" ], - [ 852, "VENDORS/MICSFT/PC/CP852.TXT", 1, "OEM Slovak Latin 2" ], - [ 855, "VENDORS/MICSFT/PC/CP855.TXT", 1, "OEM Cyrillic" ], - [ 856, "VENDORS/MISC/CP856.TXT", 0, "Hebrew PC" ], - [ 857, "VENDORS/MICSFT/PC/CP857.TXT", 1, "OEM Turkish" ], - [ 860, "VENDORS/MICSFT/PC/CP860.TXT", 1, "OEM Portuguese" ], - [ 861, "VENDORS/MICSFT/PC/CP861.TXT", 1, "OEM Icelandic" ], - [ 862, "VENDORS/MICSFT/PC/CP862.TXT", 1, "OEM Hebrew" ], - [ 863, "VENDORS/MICSFT/PC/CP863.TXT", 1, "OEM Canadian French" ], - [ 864, "VENDORS/MICSFT/PC/CP864.TXT", 0, "OEM Arabic" ], - [ 865, "VENDORS/MICSFT/PC/CP865.TXT", 1, "OEM Nordic" ], - [ 866, "VENDORS/MICSFT/PC/CP866.TXT", 1, "OEM Russian" ], - [ 869, "VENDORS/MICSFT/PC/CP869.TXT", 1, "OEM Greek" ], - [ 874, "VENDORS/MICSFT/PC/CP874.TXT", 1, "ANSI/OEM Thai" ], - [ 875, "VENDORS/MICSFT/EBCDIC/CP875.TXT", 0, "IBM EBCDIC Greek" ], - [ 878, "VENDORS/MISC/KOI8-R.TXT", 0, "Russian KOI8" ], - [ 932, "VENDORS/MICSFT/WINDOWS/CP932.TXT", 0, "ANSI/OEM Japanese Shift-JIS" ], - [ 936, "VENDORS/MICSFT/WINDOWS/CP936.TXT", 0, "ANSI/OEM Simplified Chinese GBK" ], - [ 949, "VENDORS/MICSFT/WINDOWS/CP949.TXT", 0, "ANSI/OEM Korean Unified Hangul" ], - [ 950, "VENDORS/MICSFT/WINDOWS/CP950.TXT", 0, "ANSI/OEM Traditional Chinese Big5" ], - [ 1006, "VENDORS/MISC/CP1006.TXT", 0, "IBM Arabic" ], - [ 1026, "VENDORS/MICSFT/EBCDIC/CP1026.TXT", 0, "IBM EBCDIC Latin 5 Turkish" ], - [ 1250, "VENDORS/MICSFT/WINDOWS/CP1250.TXT", 0, "ANSI Eastern Europe" ], - [ 1251, "VENDORS/MICSFT/WINDOWS/CP1251.TXT", 0, "ANSI Cyrillic" ], - [ 1252, "VENDORS/MICSFT/WINDOWS/CP1252.TXT", 0, "ANSI Latin 1" ], - [ 1253, "VENDORS/MICSFT/WINDOWS/CP1253.TXT", 0, "ANSI Greek" ], - [ 1254, "VENDORS/MICSFT/WINDOWS/CP1254.TXT", 0, "ANSI Turkish" ], - [ 1255, "VENDORS/MICSFT/WINDOWS/CP1255.TXT", 0, "ANSI Hebrew" ], - [ 1256, "VENDORS/MICSFT/WINDOWS/CP1256.TXT", 0, "ANSI Arabic" ], - [ 1257, "VENDORS/MICSFT/WINDOWS/CP1257.TXT", 0, "ANSI Baltic" ], - [ 1258, "VENDORS/MICSFT/WINDOWS/CP1258.TXT", 0, "ANSI/OEM Viet Nam" ], - [ 1361, "OBSOLETE/EASTASIA/KSC/JOHAB.TXT", 0, "Korean Johab" ], - [ 10000, "VENDORS/MICSFT/MAC/ROMAN.TXT", 0, "Mac Roman" ], - [ 10006, "VENDORS/MICSFT/MAC/GREEK.TXT", 0, "Mac Greek" ], - [ 10007, "VENDORS/MICSFT/MAC/CYRILLIC.TXT", 0, "Mac Cyrillic" ], - [ 10029, "VENDORS/MICSFT/MAC/LATIN2.TXT", 0, "Mac Latin 2" ], - [ 10079, "VENDORS/MICSFT/MAC/ICELAND.TXT", 0, "Mac Icelandic" ], - [ 10081, "VENDORS/MICSFT/MAC/TURKISH.TXT", 0, "Mac Turkish" ], - [ 20127, undef, 0, "US-ASCII (7bit)" ], - [ 20866, "VENDORS/MISC/KOI8-R.TXT", 0, "Russian KOI8" ], - [ 20932, "OBSOLETE/EASTASIA/JIS/JIS0208.TXT", 0, "EUC-JP" ], - [ 21866, "VENDORS/MISC/KOI8-U.TXT", 0, "Ukrainian KOI8" ], - [ 28591, "ISO8859/8859-1.TXT", 0, "ISO 8859-1 Latin 1" ], - [ 28592, "ISO8859/8859-2.TXT", 0, "ISO 8859-2 Latin 2 (East European)" ], - [ 28593, "ISO8859/8859-3.TXT", 0, "ISO 8859-3 Latin 3 (South European)" ], - [ 28594, "ISO8859/8859-4.TXT", 0, "ISO 8859-4 Latin 4 (Baltic old)" ], - [ 28595, "ISO8859/8859-5.TXT", 0, "ISO 8859-5 Cyrillic" ], - [ 28596, "ISO8859/8859-6.TXT", 0, "ISO 8859-6 Arabic" ], - [ 28597, "ISO8859/8859-7.TXT", 0, "ISO 8859-7 Greek" ], - [ 28598, "ISO8859/8859-8.TXT", 0, "ISO 8859-8 Hebrew" ], - [ 28599, "ISO8859/8859-9.TXT", 0, "ISO 8859-9 Latin 5 (Turkish)" ], - [ 28600, "ISO8859/8859-10.TXT", 0, "ISO 8859-10 Latin 6 (Nordic)" ], - [ 28603, "ISO8859/8859-13.TXT", 0, "ISO 8859-13 Latin 7 (Baltic)" ], - [ 28604, "ISO8859/8859-14.TXT", 0, "ISO 8859-14 Latin 8 (Celtic)" ], - [ 28605, "ISO8859/8859-15.TXT", 0, "ISO 8859-15 Latin 9 (Euro)" ], - [ 28606, "ISO8859/8859-16.TXT", 0, "ISO 8859-16 Latin 10 (Balkan)" ] -); - - -%ctype = -( - "upper" => 0x0001, - "lower" => 0x0002, - "digit" => 0x0004, - "space" => 0x0008, - "punct" => 0x0010, - "cntrl" => 0x0020, - "blank" => 0x0040, - "xdigit" => 0x0080, - "alpha" => 0x0100 -); - -%categories = -( - "Lu" => $ctype{"alpha"}|$ctype{"upper"}, # Letter, Uppercase - "Ll" => $ctype{"alpha"}|$ctype{"lower"}, # Letter, Lowercase - "Lt" => $ctype{"alpha"}, # Letter, Titlecase - "Mn" => $ctype{"punct"}, # Mark, Non-Spacing - "Mc" => $ctype{"punct"}, # Mark, Spacing Combining - "Me" => $ctype{"punct"}, # Mark, Enclosing - "Nd" => $ctype{"digit"}, # Number, Decimal Digit - "Nl" => $ctype{"punct"}, # Number, Letter - "No" => $ctype{"punct"}, # Number, Other - "Zs" => $ctype{"space"}, # Separator, Space - "Zl" => $ctype{"space"}, # Separator, Line - "Zp" => $ctype{"space"}, # Separator, Paragraph - "Cc" => $ctype{"cntrl"}, # Other, Control - "Cf" => 0, # Other, Format - "Cs" => 0, # Other, Surrogate - "Co" => 0, # Other, Private Use - "Cn" => 0, # Other, Not Assigned - "Lm" => $ctype{"punct"}, # Letter, Modifier - "Lo" => $ctype{"alpha"}, # Letter, Other - "Pc" => $ctype{"punct"}, # Punctuation, Connector - "Pd" => $ctype{"punct"}, # Punctuation, Dash - "Ps" => $ctype{"punct"}, # Punctuation, Open - "Pe" => $ctype{"punct"}, # Punctuation, Close - "Pi" => $ctype{"punct"}, # Punctuation, Initial quote - "Pf" => $ctype{"punct"}, # Punctuation, Final quote - "Po" => $ctype{"punct"}, # Punctuation, Other - "Sm" => $ctype{"punct"}, # Symbol, Math - "Sc" => $ctype{"punct"}, # Symbol, Currency - "Sk" => $ctype{"punct"}, # Symbol, Modifier - "So" => $ctype{"punct"} # Symbol, Other -); - -# a few characters need additional categories that cannot be determined automatically -%special_categories = -( - "xdigit" => [ ord('0')..ord('9'),ord('A')..ord('F'),ord('a')..ord('f'), - 0xff10..0xff19, 0xff21..0xff26, 0xff41..0xff46 ], - "space" => [ 0x09..0x0d, 0x85 ], - "blank" => [ 0x09, 0x20, 0xa0, 0x3000, 0xfeff ], - "cntrl" => [ 0x070f, 0x180b, 0x180c, 0x180d, 0x180e, 0x200c, 0x200d, - 0x200e, 0x200f, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, - 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f, 0xfeff, - 0xfff9, 0xfffa, 0xfffb ] -); - -%directions = -( - "L" => 1, # Left-to-Right - "LRE" => 11, # Left-to-Right Embedding - "LRO" => 11, # Left-to-Right Override - "R" => 2, # Right-to-Left - "AL" => 2, # Right-to-Left Arabic - "RLE" => 11, # Right-to-Left Embedding - "RLO" => 11, # Right-to-Left Override - "PDF" => 11, # Pop Directional Format - "EN" => 3, # European Number - "ES" => 4, # European Number Separator - "ET" => 5, # European Number Terminator - "AN" => 6, # Arabic Number - "CS" => 7, # Common Number Separator - "NSM" => 0, # Non-Spacing Mark - "BN" => 0, # Boundary Neutral - "B" => 8, # Paragraph Separator - "S" => 9, # Segment Separator - "WS" => 10, # Whitespace - "ON" => 11 # Other Neutrals -); - - -################################################################ -# main routine - -READ_DEFAULTS(); -my @sortkeys = READ_SORTKEYS_FILE(); -DUMP_CASE_MAPPINGS(); -DUMP_SORTKEYS(@sortkeys); -DUMP_COMPOSE_TABLES(); -DUMP_CTYPE_TABLES(); - -foreach $file (@allfiles) { HANDLE_FILE( @$file ); } - -OUTPUT_CPTABLE(); - -exit(0); - - -################################################################ -# read in the defaults file -sub READ_DEFAULTS -{ - @unicode_defaults = (); - @unicode_aliases = (); - @tolower_table = (); - @toupper_table = (); - @digitmap_table = (); - @compatmap_table = (); - @category_table = (); - @direction_table = (); - @decomp_table = (); - @compose_table = (); - - # first setup a few default mappings - - open DEFAULTS or die "Cannot open $DEFAULTS"; - print "Loading $DEFAULTS\n"; - while () - { - next if /^\#/; # skip comments - next if /^$/; # skip empty lines - if (/^(([0-9a-fA-F]+)(,[0-9a-fA-F]+)*)\s+([0-9a-fA-F]+|'.'|none)\s+(\#.*)?/) - { - my @src = map hex, split /,/,$1; - my $dst = $4; - my $comment = $5; - if ($#src > 0) { push @unicode_aliases, \@src; } - next if ($dst eq "none"); - $dst = ($dst =~ /\'.\'/) ? ord substr($dst,1,1) : hex $dst; - foreach $src (@src) - { - die "Duplicate value" if defined($unicode_defaults[$src]); - $unicode_defaults[$src] = $dst; - } - next; - } - die "Unrecognized line $_\n"; - } - - # now build mappings from the decomposition field of the Unicode database - - open UNICODEDATA or die "Cannot open $UNICODEDATA"; - print "Loading $UNICODEDATA\n"; - while () - { - # Decode the fields ... - ($code, $name, $cat, $comb, $bidi, - $decomp, $dec, $dig, $num, $mirror, - $oldname, $comment, $upper, $lower, $title) = split /;/; - - my $src = hex $code; - - die "unknown category $cat" unless defined $categories{$cat}; - die "unknown directionality $bidi" unless defined $directions{$bidi}; - - $uniname[$src] = $name; - $category_table[$src] = $categories{$cat}; - $direction_table[$src] = $directions{$bidi}; - - if ($lower ne "") - { - $tolower_table[$src] = hex $lower; - $category_table[$src] |= $ctype{"upper"}|$ctype{"alpha"}; - } - if ($upper ne "") - { - $toupper_table[$src] = hex $upper; - $category_table[$src] |= $ctype{"lower"}|$ctype{"alpha"}; - } - if ($dec ne "") - { - $category_table[$src] |= $ctype{"digit"}; - } - if ($dig ne "") - { - $digitmap_table[$src] = ord $dig; - } - - # copy the category and direction for everything between First/Last pairs - if ($name =~ /, First>/) { $start = $src; } - if ($name =~ /, Last>/) - { - while ($start < $src) - { - $category_table[$start] = $category_table[$src]; - $direction_table[$start] = $direction_table[$src]; - $start++; - } - } - - next if $decomp eq ""; # no decomposition, skip it - - if ($decomp =~ /^<([a-zA-Z]+)>\s+([0-9a-fA-F]+)$/) - { - # decomposition of the form " 1234" -> use char if type is known - if (($src >= 0xf900 && $src < 0xfb00) || ($src >= 0xfe30 && $src < 0xfffd)) - { - # Single char decomposition in the compatibility range - $compatmap_table[$src] = hex $2; - } - next unless ($1 eq "font" || - $1 eq "noBreak" || - $1 eq "circle" || - $1 eq "super" || - $1 eq "sub" || - $1 eq "wide" || - $1 eq "narrow" || - $1 eq "compat" || - $1 eq "small"); - $dst = hex $2; - } - elsif ($decomp =~ /^\s+0020\s+([0-9a-fA-F]+)/) - { - # decomposition " 0020 1234" -> combining accent - $dst = hex $1; - } - elsif ($decomp =~ /^([0-9a-fA-F]+)/) - { - # decomposition contains only char values without prefix -> use first char - $dst = hex $1; - $category_table[$src] |= $category_table[$dst]; - # store decomposition if it contains two chars - if ($decomp =~ /^([0-9a-fA-F]+)\s+([0-9a-fA-F]+)$/) - { - $decomp_table[$src] = [ hex $1, hex $2 ]; - push @compose_table, [ hex $1, hex $2, $src ]; - } - elsif ($decomp =~ /^(<[a-z]+>\s)*([0-9a-fA-F]+)$/ && - (($src >= 0xf900 && $src < 0xfb00) || ($src >= 0xfe30 && $src < 0xfffd))) - { - # Single char decomposition in the compatibility range - $compatmap_table[$src] = hex $2; - } - } - else - { - next; - } - - next if defined($unicode_defaults[$src]); # may have been set in the defaults file - - # check for loops - for ($i = $dst; ; $i = $unicode_defaults[$i]) - { - die sprintf("loop detected for %04x -> %04x",$src,$dst) if $i == $src; - last unless defined($unicode_defaults[$i]); - } - $unicode_defaults[$src] = $dst; - } - - # patch the category of some special characters - - foreach $cat (keys %special_categories) - { - my $flag = $ctype{$cat}; - foreach $i (@{$special_categories{$cat}}) { $category_table[$i] |= $flag; } - } -} - - -################################################################ -# parse the input file -sub READ_FILE -{ - my $name = shift; - open INPUT,$name or die "Cannot open $name"; - - while () - { - next if /^\#/; # skip comments - next if /^$/; # skip empty lines - next if /\x1a/; # skip ^Z - next if (/^0x([0-9a-fA-F]+)\s+\#UNDEFINED/); # undefined char - - if (/^0x([0-9a-fA-F]+)\s+\#DBCS LEAD BYTE/) - { - $cp = hex $1; - push @lead_bytes,$cp; - $cp2uni[$cp] = 0; - next; - } - if (/^0x([0-9a-fA-F]+)\s+0x([0-9a-fA-F]+)\s+(\#.*)?/) - { - $cp = hex $1; - $uni = hex $2; - $cp2uni[$cp] = $uni unless defined($cp2uni[$cp]); - $uni2cp[$uni] = $cp unless defined($uni2cp[$uni]); - if ($cp > 0xff && !defined($cp2uni[$cp >> 8])) - { - push @lead_bytes,$cp >> 8; - $cp2uni[$cp >> 8] = 0; - } - next; - } - die "$name: Unrecognized line $_\n"; - } -} - - -################################################################ -# fill input data for the 20127 (us-ascii) codepage -sub fill_20127_codepage() -{ - for (my $i = 0; $i < 128; $i++) { $cp2uni[$i] = $uni2cp[$i] = $i; } - for (my $i = 128; $i < 256; $i++) { $cp2uni[$i] = $i & 0x7f; } -} - -################################################################ -# get a mapping including glyph chars for MB_USEGLYPHCHARS - -sub get_glyphs_mapping(@) -{ - $_[0x01] = 0x263a; # (WHITE SMILING FACE) - $_[0x02] = 0x263b; # (BLACK SMILING FACE) - $_[0x03] = 0x2665; # (BLACK HEART SUIT) - $_[0x04] = 0x2666; # (BLACK DIAMOND SUIT) - $_[0x05] = 0x2663; # (BLACK CLUB SUIT) - $_[0x06] = 0x2660; # (BLACK SPADE SUIT) - $_[0x07] = 0x2022; # (BULLET) - $_[0x08] = 0x25d8; # (INVERSE BULLET) - $_[0x09] = 0x25cb; # (WHITE CIRCLE) - $_[0x0a] = 0x25d9; # (INVERSE WHITE CIRCLE) - $_[0x0b] = 0x2642; # (MALE SIGN) - $_[0x0c] = 0x2640; # (FEMALE SIGN) - $_[0x0d] = 0x266a; # (EIGHTH NOTE) - $_[0x0e] = 0x266b; # (BEAMED EIGHTH NOTES) - $_[0x0f] = 0x263c; # (WHITE SUN WITH RAYS) - $_[0x10] = 0x25ba; # (BLACK RIGHT-POINTING POINTER) - $_[0x11] = 0x25c4; # (BLACK LEFT-POINTING POINTER) - $_[0x12] = 0x2195; # (UP DOWN ARROW) - $_[0x13] = 0x203c; # (DOUBLE EXCLAMATION MARK) - $_[0x14] = 0x00b6; # (PILCROW SIGN) - $_[0x15] = 0x00a7; # (SECTION SIGN) - $_[0x16] = 0x25ac; # (BLACK RECTANGLE) - $_[0x17] = 0x21a8; # (UP DOWN ARROW WITH BASE) - $_[0x18] = 0x2191; # (UPWARDS ARROW) - $_[0x19] = 0x2193; # (DOWNWARDS ARROW) - $_[0x1a] = 0x2192; # (RIGHTWARDS ARROW) - $_[0x1b] = 0x2190; # (LEFTWARDS ARROW) - $_[0x1c] = 0x221f; # (RIGHT ANGLE) - $_[0x1d] = 0x2194; # (LEFT RIGHT ARROW) - $_[0x1e] = 0x25b2; # (BLACK UP-POINTING TRIANGLE) - $_[0x1f] = 0x25bc; # (BLACK DOWN-POINTING TRIANGLE) - $_[0x7f] = 0x2302; # (HOUSE) - return @_; -} - -################################################################ -# build EUC-JP table from the JIS 0208 file -# FIXME: for proper EUC-JP we should probably read JIS 0212 too -# but this would require 3-byte DBCS characters -sub READ_JIS0208_FILE -{ - my $name = shift; - - # ASCII chars - for ($i = 0x00; $i <= 0x7f; $i++) - { - $cp2uni[$i] = $i; - $uni2cp[$i] = $i; - } - - # JIS X 0201 right plane - for ($i = 0xa1; $i <= 0xdf; $i++) - { - $cp2uni[0x8e00 + $i] = 0xfec0 + $i; - $uni2cp[0xfec0 + $i] = 0x8e00 + $i; - } - - # lead bytes - foreach $i (0x8e, 0x8f, 0xa1 .. 0xfe) - { - push @lead_bytes,$i; - $cp2uni[$i] = 0; - } - - # undefined chars - foreach $i (0x80 .. 0x8d, 0x90 .. 0xa0, 0xff) - { - $cp2uni[$i] = $DEF_CHAR; - } - - # Shift-JIS compatibility - $uni2cp[0x00a5] = 0x5c; - $uni2cp[0x203e] = 0x7e; - - # Fix backslash conversion - $cp2uni[0xa1c0] = 0xff3c; - $uni2cp[0xff3c] = 0xa1c0; - - open INPUT, "$name" or die "Cannot open $name"; - while () - { - next if /^\#/; # skip comments - next if /^$/; # skip empty lines - next if /\x1a/; # skip ^Z - if (/^0x[0-9a-fA-F]+\s+0x([0-9a-fA-F]+)\s+0x([0-9a-fA-F]+)\s+(\#.*)?/) - { - $cp = 0x8080 + hex $1; - $uni = hex $2; - $cp2uni[$cp] = $uni unless defined($cp2uni[$cp]); - $uni2cp[$uni] = $cp unless defined($uni2cp[$uni]); - next; - } - die "$name: Unrecognized line $_\n"; - } -} - - -################################################################ -# build the sort keys table -sub READ_SORTKEYS_FILE -{ - my @sortkeys = (); - for (my $i = 0; $i < 65536; $i++) { $sortkeys[$i] = [ -1, 0, 0, 0, 0 ] }; - - open INPUT, "$SORTKEYS" or die "Cannot open $SORTKEYS"; - print "Loading $SORTKEYS\n"; - while () - { - next if /^\#/; # skip comments - next if /^$/; # skip empty lines - next if /\x1a/; # skip ^Z - next if /^\@version/; # skip @version header - if (/^([0-9a-fA-F]+)\s+;\s+\[([*.])([0-9a-fA-F]{4})\.([0-9a-fA-F]{4})\.([0-9a-fA-F]{4})\.([0-9a-fA-F]+)\]/) - { - my ($uni,$variable) = (hex $1, $2); - next if $uni > 65535; - $sortkeys[$uni] = [ $uni, hex $3, hex $4, hex $5, hex $6 ]; - next; - } - if (/^([0-9a-fA-F]+\s+)+;\s+\[[*.]([0-9a-fA-F]{4})\.([0-9a-fA-F]{4})\.([0-9a-fA-F]{4})\.([0-9a-fA-F]+)\]/) - { - # multiple character sequence, ignored for now - next; - } - die "$SORTKEYS: Unrecognized line $_\n"; - } - close INPUT; - - # compress the keys to 32 bit: - # key 1 to 16 bits, key 2 to 8 bits, key 3 to 4 bits, key 4 to 1 bit - - @sortkeys = sort { ${$a}[1] <=> ${$b}[1] or - ${$a}[2] <=> ${$b}[2] or - ${$a}[3] <=> ${$b}[3] or - ${$a}[4] <=> ${$b}[4] or - $a cmp $b; } @sortkeys; - - my ($n2, $n3) = (1, 1); - my @keys = (-1, -1, -1, -1, -1 ); - my @flatkeys = (); - - for (my $i = 0; $i < 65536; $i++) - { - my @current = @{$sortkeys[$i]}; - next if $current[0] == -1; - if ($current[1] == $keys[1]) - { - if ($current[2] == $keys[2]) - { - if ($current[3] == $keys[3]) - { - # nothing - } - else - { - $keys[3] = $current[3]; - $n3++; - die if ($n3 >= 16); - } - } - else - { - $keys[2] = $current[2]; - $keys[3] = $current[3]; - $n2++; - $n3 = 1; - die if ($n2 >= 256); - } - } - else - { - $keys[1] = $current[1]; - $keys[2] = $current[2]; - $keys[3] = $current[3]; - $n2 = 1; - $n3 = 1; - } - - if ($current[2]) { $current[2] = $n2; } - if ($current[3]) { $current[3] = $n3; } - if ($current[4]) { $current[4] = 1; } - - $flatkeys[$current[0]] = ($current[1] << 16) | ($current[2] << 8) | ($current[3] << 4) | $current[4]; - } - return @flatkeys; -} - - -################################################################ -# build the sort keys table -sub DUMP_SORTKEYS -{ - my @keys = @_; - - # count the number of 256-key ranges that contain something - - my @offsets = (); - my $ranges = 2; - for (my $i = 0; $i < 256; $i++) { $offsets[$i] = 256; } - for (my $i = 0; $i < 65536; $i++) - { - next unless defined $keys[$i]; - $offsets[$i >> 8] = $ranges * 256; - $ranges++; - $i |= 255; - } - - # output the range offsets - - open OUTPUT,">collation.c.new" or die "Cannot create collation.c"; - printf "Building collation.c\n"; - printf OUTPUT "/* Unicode collation element table */\n"; - printf OUTPUT "/* generated from %s */\n", $SORTKEYS; - printf OUTPUT "/* DO NOT EDIT!! */\n\n"; - - printf OUTPUT "const unsigned int collation_table[%d] =\n{\n", $ranges*256; - printf OUTPUT " /* index */\n"; - printf OUTPUT "%s,\n", DUMP_ARRAY( "0x%08x", 0, @offsets ); - - # output the default values - - printf OUTPUT " /* defaults */\n"; - printf OUTPUT "%s", DUMP_ARRAY( "0x%08x", 0, (0xffffffff) x 256 ); - - # output all the key ranges - - for (my $i = 0; $i < 256; $i++) - { - next if $offsets[$i] == 256; - printf OUTPUT ",\n /* 0x%02x00 .. 0x%02xff */\n", $i, $i; - printf OUTPUT "%s", DUMP_ARRAY( "0x%08x", 0xffffffff, @keys[($i<<8) .. ($i<<8)+255] ); - } - printf OUTPUT "\n};\n"; - close OUTPUT; - save_file("collation.c"); -} - - -################################################################ -# add default mappings once the file had been read -sub ADD_DEFAULT_MAPPINGS -{ - # Apply aliases - - foreach $alias (@unicode_aliases) - { - my $target = undef; - foreach $src (@$alias) - { - if (defined($uni2cp[$src])) - { - $target = $uni2cp[$src]; - last; - } - } - next unless defined($target); - - # At least one char of the alias set is defined, set the others to the same value - foreach $src (@$alias) - { - $uni2cp[$src] = $target unless defined($uni2cp[$src]); - } - } - - # For every src -> target mapping in the defaults table, - # make uni2cp[src] = uni2cp[target] if uni2cp[target] is defined - - for ($src = 0; $src < 65536; $src++) - { - next if defined($uni2cp[$src]); # source has a definition already - next unless defined($unicode_defaults[$src]); # no default for this char - my $target = $unicode_defaults[$src]; - - # do a recursive mapping until we find a target char that is defined - while (!defined($uni2cp[$target]) && - defined($unicode_defaults[$target])) { $target = $unicode_defaults[$target]; } - - if (defined($uni2cp[$target])) { $uni2cp[$src] = $uni2cp[$target]; } - } - - # Add an identity mapping for all undefined chars - - for ($i = 0; $i < 256; $i++) - { - next if defined($cp2uni[$i]); - next if defined($uni2cp[$i]); - $cp2uni[$i] = $uni2cp[$i] = $i; - } -} - -################################################################ -# dump an array of integers -sub DUMP_ARRAY -{ - my ($format,$default,@array) = @_; - my $i, $ret = " "; - for ($i = 0; $i < $#array; $i++) - { - $ret .= sprintf($format, defined $array[$i] ? $array[$i] : $default); - $ret .= (($i % 8) != 7) ? ", " : ",\n "; - } - $ret .= sprintf($format, defined $array[$i] ? $array[$i] : $default); - return $ret; -} - -################################################################ -# dump an SBCS mapping table -sub DUMP_SBCS_TABLE -{ - my ($codepage, $has_glyphs, $name) = @_; - my $i; - - # output the ascii->unicode table - - if ($has_glyphs) - { - printf OUTPUT "static const WCHAR cp2uni[512] =\n"; - printf OUTPUT "{\n%s", DUMP_ARRAY( "0x%04x", $DEF_CHAR, @cp2uni[0 .. 255] ); - printf OUTPUT ",\n /* glyphs */\n%s\n};\n\n", - DUMP_ARRAY( "0x%04x", $DEF_CHAR, get_glyphs_mapping(@cp2uni[0 .. 255]) ); - } - else - { - printf OUTPUT "static const WCHAR cp2uni[256] =\n"; - printf OUTPUT "{\n%s\n};\n\n", DUMP_ARRAY( "0x%04x", $DEF_CHAR, @cp2uni[0 .. 255] ); - } - - # count the number of unicode->ascii subtables that contain something - - my @filled = (); - my $subtables = 1; - for ($i = 0; $i < 65536; $i++) - { - next unless defined $uni2cp[$i]; - $filled[$i >> 8] = 1; - $subtables++; - $i |= 255; - } - - # output all the subtables into a single array - - printf OUTPUT "static const unsigned char uni2cp_low[%d] =\n{\n", $subtables*256; - for ($i = 0; $i < 256; $i++) - { - next unless $filled[$i]; - printf OUTPUT " /* 0x%02x00 .. 0x%02xff */\n", $i, $i; - printf OUTPUT "%s,\n", DUMP_ARRAY( "0x%02x", $DEF_CHAR, @uni2cp[($i<<8) .. ($i<<8)+255] ); - } - printf OUTPUT " /* defaults */\n"; - printf OUTPUT "%s\n};\n\n", DUMP_ARRAY( "0x%02x", 0, ($DEF_CHAR) x 256 ); - - # output a table of the offsets of the subtables in the previous array - - my $pos = 0; - my @offsets = (); - for ($i = 0; $i < 256; $i++) - { - if ($filled[$i]) { push @offsets, $pos; $pos += 256; } - else { push @offsets, ($subtables-1) * 256; } - } - printf OUTPUT "static const unsigned short uni2cp_high[256] =\n"; - printf OUTPUT "{\n%s\n};\n\n", DUMP_ARRAY( "0x%04x", 0, @offsets ); - - # output the code page descriptor - - printf OUTPUT "const struct sbcs_table cptable_%03d =\n{\n", $codepage; - printf OUTPUT " { %d, 1, 0x%04x, 0x%04x, \"%s\" },\n", - $codepage, $DEF_CHAR, $DEF_CHAR, $name; - printf OUTPUT " cp2uni,\n"; - if ($has_glyphs) { printf OUTPUT " cp2uni + 256,\n"; } - else { printf OUTPUT " cp2uni,\n"; } - printf OUTPUT " uni2cp_low,\n"; - printf OUTPUT " uni2cp_high\n};\n"; -} - - -################################################################ -# dump a DBCS mapping table -sub DUMP_DBCS_TABLE -{ - my ($codepage, $name) = @_; - my $i, $x, $y; - - # build a list of lead bytes that are actually used - - my @lblist = (); - LBLOOP: for ($y = 0; $y <= $#lead_bytes; $y++) - { - my $base = $lead_bytes[$y] << 8; - for ($x = 0; $x < 256; $x++) - { - if (defined $cp2uni[$base+$x]) - { - push @lblist,$lead_bytes[$y]; - next LBLOOP; - } - } - } - my $unused = ($#lead_bytes > $#lblist); - - # output the ascii->unicode table for the single byte chars - - printf OUTPUT "static const WCHAR cp2uni[%d] =\n", 256 * ($#lblist + 2 + $unused); - printf OUTPUT "{\n%s,\n", DUMP_ARRAY( "0x%04x", $DEF_CHAR, @cp2uni[0 .. 255] ); - - # output the default table for unused lead bytes - - if ($unused) - { - printf OUTPUT " /* unused lead bytes */\n"; - printf OUTPUT "%s,\n", DUMP_ARRAY( "0x%04x", 0, ($DEF_CHAR) x 256 ); - } - - # output the ascii->unicode table for each DBCS lead byte - - for ($y = 0; $y <= $#lblist; $y++) - { - my $base = $lblist[$y] << 8; - printf OUTPUT " /* lead byte %02x */\n", $lblist[$y]; - printf OUTPUT "%s", DUMP_ARRAY( "0x%04x", $DEF_CHAR, @cp2uni[$base .. $base+255] ); - printf OUTPUT ($y < $#lblist) ? ",\n" : "\n};\n\n"; - } - - # output the lead byte subtables offsets - - my @offsets = (); - for ($x = 0; $x < 256; $x++) { $offsets[$x] = 0; } - for ($x = 0; $x <= $#lblist; $x++) { $offsets[$lblist[$x]] = $x + 1; } - if ($unused) - { - # increment all lead bytes offset to take into account the unused table - for ($x = 0; $x <= $#lead_bytes; $x++) { $offsets[$lead_bytes[$x]]++; } - } - printf OUTPUT "static const unsigned char cp2uni_leadbytes[256] =\n"; - printf OUTPUT "{\n%s\n};\n\n", DUMP_ARRAY( "0x%02x", 0, @offsets ); - - # count the number of unicode->ascii subtables that contain something - - my @filled = (); - my $subtables = 1; - for ($i = 0; $i < 65536; $i++) - { - next unless defined $uni2cp[$i]; - $filled[$i >> 8] = 1; - $subtables++; - $i |= 255; - } - - # output all the subtables into a single array - - printf OUTPUT "static const unsigned short uni2cp_low[%d] =\n{\n", $subtables*256; - for ($y = 0; $y < 256; $y++) - { - next unless $filled[$y]; - printf OUTPUT " /* 0x%02x00 .. 0x%02xff */\n", $y, $y; - printf OUTPUT "%s,\n", DUMP_ARRAY( "0x%04x", $DEF_CHAR, @uni2cp[($y<<8) .. ($y<<8)+255] ); - } - printf OUTPUT " /* defaults */\n"; - printf OUTPUT "%s\n};\n\n", DUMP_ARRAY( "0x%04x", 0, ($DEF_CHAR) x 256 ); - - # output a table of the offsets of the subtables in the previous array - - my $pos = 0; - my @offsets = (); - for ($y = 0; $y < 256; $y++) - { - if ($filled[$y]) { push @offsets, $pos; $pos += 256; } - else { push @offsets, ($subtables-1) * 256; } - } - printf OUTPUT "static const unsigned short uni2cp_high[256] =\n"; - printf OUTPUT "{\n%s\n};\n\n", DUMP_ARRAY( "0x%04x", 0, @offsets ); - - # output the code page descriptor - - printf OUTPUT "const struct dbcs_table cptable_%03d =\n{\n", $codepage; - printf OUTPUT " { %d, 2, 0x%04x, 0x%04x, \"%s\" },\n", - $codepage, $DEF_CHAR, $DEF_CHAR, $name; - printf OUTPUT " cp2uni,\n"; - printf OUTPUT " cp2uni_leadbytes,\n"; - printf OUTPUT " uni2cp_low,\n"; - printf OUTPUT " uni2cp_high,\n"; - DUMP_LB_RANGES(); - printf OUTPUT "};\n"; -} - - -################################################################ -# dump the list of defined lead byte ranges -sub DUMP_LB_RANGES -{ - my @list = (); - my $i = 0; - foreach $i (@lead_bytes) { $list[$i] = 1; } - my $on = 0; - printf OUTPUT " { "; - for ($i = 0; $i < 256; $i++) - { - if ($on) - { - if (!defined $list[$i]) { printf OUTPUT "0x%02x, ", $i-1; $on = 0; } - } - else - { - if ($list[$i]) { printf OUTPUT "0x%02x, ", $i; $on = 1; } - } - } - if ($on) { printf OUTPUT "0xff, "; } - printf OUTPUT "0x00, 0x00 }\n"; -} - - -################################################################ -# dump the case mapping tables -sub DUMP_CASE_MAPPINGS -{ - open OUTPUT,">casemap.c.new" or die "Cannot create casemap.c"; - printf "Building casemap.c\n"; - printf OUTPUT "/* Unicode case mappings */\n"; - printf OUTPUT "/* Automatically generated; DO NOT EDIT!! */\n\n"; - printf OUTPUT "#include \"wine/unicode.h\"\n\n"; - - DUMP_CASE_TABLE( "wine_casemap_lower", @tolower_table ); - DUMP_CASE_TABLE( "wine_casemap_upper", @toupper_table ); - DUMP_CASE_TABLE( "wine_digitmap", @digitmap_table ); - DUMP_CASE_TABLE( "wine_compatmap", @compatmap_table ); - close OUTPUT; - save_file("casemap.c"); -} - - -################################################################ -# dump a case mapping table -sub DUMP_CASE_TABLE -{ - my ($name,@table) = @_; - - # count the number of sub tables that contain something - # also compute the low and upper populated bounds - - my @lowerbounds = ( 0, 0 ); - my @upperbounds = ( 0, 255 ); - my $index = 0; - my @filled = (); - for ($i = 0; $i < 65536; $i++) - { - next unless defined $table[$i]; - if (!defined $filled[$i >> 8]) - { - $lowerbounds[$index] = $i & 0xff; - $upperbounds[$index] = 0xff - $lowerbounds[$index]; - $filled[$i >> 8] = $index * 256 + 512; - $index++; - } - else - { - $upperbounds[$index-1] = 0xff - ($i & 0xff); - } - $table[$i] = ($table[$i] - $i) & 0xffff; - } - - # Collapse blocks upwards if possible - my $removed = 0; - $index = 0; - for ($i = 0; $i < 256; $i++) - { - next unless defined $filled[$i]; - if ($upperbounds[$index - 1] > $lowerbounds[$index]) - { - $removed = $removed + $lowerbounds[$index]; - } - else - { - $removed = $removed + $upperbounds[$index - 1]; - $lowerbounds[$index] = $upperbounds[$index - 1]; - } - $filled[$i] = $filled[$i] - $removed; - $index++; - } - - # dump the table - - printf OUTPUT "const WCHAR %s[%d] =\n", $name, $index * 256 + 512 - $removed; - printf OUTPUT "{\n /* index */\n"; - printf OUTPUT "%s,\n", DUMP_ARRAY( "0x%04x", 256, @filled ); - printf OUTPUT " /* defaults */\n"; - printf OUTPUT "%s", DUMP_ARRAY( "0x%04x", 0, (0) x 256 ); - $index = 0; - for ($i = 0; $i < 256; $i++) - { - next unless $filled[$i]; - printf OUTPUT ",\n /* 0x%02x%02x .. 0x%02xff */\n", $i, $lowerbounds[$index], $i; - printf OUTPUT "%s", DUMP_ARRAY( "0x%04x", 0, - @table[($i<<8) + $lowerbounds[$index] .. ($i<<8)+255] ); - $index++; - } - printf OUTPUT "\n};\n"; -} - - -################################################################ -# dump the ctype tables -sub DUMP_CTYPE_TABLES -{ - open OUTPUT,">wctype.c.new" or die "Cannot create wctype.c"; - printf "Building wctype.c\n"; - printf OUTPUT "/* Unicode ctype tables */\n"; - printf OUTPUT "/* Automatically generated; DO NOT EDIT!! */\n\n"; - printf OUTPUT "#include \"wine/unicode.h\"\n\n"; - - my $i; - my @array = (0) x 256; - - # add the direction in the high 4 bits of the category - for ($i = 0; $i < 65536; $i++) - { - $category_table[$i] |= $direction_table[$i] << 12; - } - - # try to merge table rows - for ($row = 0; $row < 256; $row++) - { - my $rowtxt = sprintf "%04x" x 256, @category_table[($row<<8)..($row<<8)+255]; - if (defined($sequences{$rowtxt})) - { - # reuse an existing row - $array[$row] = $sequences{$rowtxt}; - } - else - { - # create a new row - $sequences{$rowtxt} = $array[$row] = $#array + 1; - push @array, @category_table[($row<<8)..($row<<8)+255]; - } - } - - printf OUTPUT "const unsigned short wine_wctype_table[%d] =\n{\n", $#array+1; - printf OUTPUT " /* offsets */\n%s,\n", DUMP_ARRAY( "0x%04x", 0, @array[0..255] ); - printf OUTPUT " /* values */\n%s\n};\n", DUMP_ARRAY( "0x%04x", 0, @array[256..$#array] ); - - close OUTPUT; - save_file("wctype.c"); -} - - -################################################################ -# dump the char composition tables -sub DUMP_COMPOSE_TABLES -{ - open OUTPUT,">compose.c.new" or die "Cannot create compose.c"; - printf "Building compose.c\n"; - printf OUTPUT "/* Unicode char composition */\n"; - printf OUTPUT "/* Automatically generated; DO NOT EDIT!! */\n\n"; - printf OUTPUT "#include \"wine/unicode.h\"\n\n"; - - ######### composition table - - my @filled = (); - foreach $i (@compose_table) - { - my @comp = @$i; - push @{$filled[$comp[1]]}, [ $comp[0], $comp[2] ]; - } - - # count how many different second chars we have - - for ($i = $count = 0; $i < 65536; $i++) - { - next unless defined $filled[$i]; - $count++; - } - - # build the table of second chars and offsets - - my $pos = $count + 1; - for ($i = 0; $i < 65536; $i++) - { - next unless defined $filled[$i]; - push @table, $i, $pos; - $pos += @{$filled[$i]}; - } - # terminator with last position - push @table, 0, $pos; - printf OUTPUT "const WCHAR unicode_compose_table[0x%x] =\n{\n", 2*$pos; - printf OUTPUT " /* second chars + offsets */\n%s", DUMP_ARRAY( "0x%04x", 0, @table ); - - # build the table of first chars and mappings - - for ($i = 0; $i < 65536; $i++) - { - next unless defined $filled[$i]; - my @table = (); - my @list = sort { $a->[0] <=> $b->[0] } @{$filled[$i]}; - for ($j = 0; $j <= $#list; $j++) - { - push @table, $list[$j][0], $list[$j][1]; - } - printf OUTPUT ",\n /* 0x%04x */\n%s", $i, DUMP_ARRAY( "0x%04x", 0, @table ); - } - printf OUTPUT "\n};\n\nconst unsigned int unicode_compose_table_size = %d;\n\n", $count; - - ######### decomposition table - - # first determine all the 16-char subsets that contain something - - my @filled = (0) x 4096; - my $pos = 16*2; # for the null subset - for ($i = 0; $i < 65536; $i++) - { - next unless defined $decomp_table[$i]; - $filled[$i >> 4] = $pos; - $pos += 16*2; - $i |= 15; - } - my $total = $pos; - - # now count the 256-char subsets that contain something - - my @filled_idx = (256) x 256; - $pos = 256 + 16; - for ($i = 0; $i < 4096; $i++) - { - next unless $filled[$i]; - $filled_idx[$i >> 4] = $pos; - $pos += 16; - $i |= 15; - } - my $null_offset = $pos; # null mapping - $total += $pos; - - # add the index offsets to the subsets positions - - for ($i = 0; $i < 4096; $i++) - { - next unless $filled[$i]; - $filled[$i] += $null_offset; - } - - # dump the main index - - printf OUTPUT "const WCHAR unicode_decompose_table[%d] =\n", $total; - printf OUTPUT "{\n /* index */\n"; - printf OUTPUT "%s", DUMP_ARRAY( "0x%04x", 0, @filled_idx ); - printf OUTPUT ",\n /* null sub-index */\n%s", DUMP_ARRAY( "0x%04x", 0, ($null_offset) x 16 ); - - # dump the second-level indexes - - for ($i = 0; $i < 256; $i++) - { - next unless ($filled_idx[$i] > 256); - my @table = @filled[($i<<4)..($i<<4)+15]; - for ($j = 0; $j < 16; $j++) { $table[$j] ||= $null_offset; } - printf OUTPUT ",\n /* sub-index %02x */\n", $i; - printf OUTPUT "%s", DUMP_ARRAY( "0x%04x", 0, @table ); - } - - # dump the 16-char subsets - - printf OUTPUT ",\n /* null mapping */\n"; - printf OUTPUT "%s", DUMP_ARRAY( "0x%04x", 0, (0) x 32 ); - - for ($i = 0; $i < 4096; $i++) - { - next unless $filled[$i]; - my @table = (0) x 32; - for ($j = 0; $j < 16; $j++) - { - if (defined $decomp_table[($i<<4) + $j]) - { - $table[2 * $j] = ${$decomp_table[($i << 4) + $j]}[0]; - $table[2 * $j + 1] = ${$decomp_table[($i << 4) + $j]}[1]; - } - } - printf OUTPUT ",\n /* 0x%03x0 .. 0x%03xf */\n", $i, $i; - printf OUTPUT "%s", DUMP_ARRAY( "0x%04x", 0, @table ); - } - - printf OUTPUT "\n};\n"; - close OUTPUT; - save_file("compose.c"); -} - - -################################################################ -# read an input file and generate the corresponding .c file -sub HANDLE_FILE -{ - my ($codepage,$filename,$has_glyphs,$comment) = @_; - - @cp2uni = (); - @lead_bytes = (); - @uni2cp = (); - - # symbol codepage file is special - if ($codepage == 20932) { READ_JIS0208_FILE($MAPPREFIX . $filename); } - elsif ($codepage == 20127) { fill_20127_codepage(); } - else { READ_FILE($MAPPREFIX . $filename); } - - # hack: 0x00a5 must map to backslash in Shift-JIS - if ($codepage == 932) { $uni2cp[0x00a5] = 0x5c; } - - ADD_DEFAULT_MAPPINGS(); - - my $output = sprintf "c_%03d.c", $codepage; - open OUTPUT,">$output.new" or die "Cannot create $output"; - - printf "Building %s from %s (%s)\n", $output, $filename || "hardcoded data", $comment; - - # dump all tables - - printf OUTPUT "/* code page %03d (%s) */\n", $codepage, $comment; - if ($filename) - { - printf OUTPUT "/* generated from %s */\n", $MAPPREFIX . $filename; - printf OUTPUT "/* DO NOT EDIT!! */\n\n"; - } - else - { - printf OUTPUT "/* Automatically generated; DO NOT EDIT!! */\n\n"; - } - printf OUTPUT "#include \"wine/unicode.h\"\n\n"; - - if ($#lead_bytes == -1) { DUMP_SBCS_TABLE( $codepage, $has_glyphs, $comment ); } - else { DUMP_DBCS_TABLE( $codepage, $comment ); } - close OUTPUT; - save_file($output); -} - - -################################################################ -# save a file if modified -sub save_file($) -{ - my $file = shift; - if (-f $file && !system "cmp $file $file.new >/dev/null") - { - unlink "$file.new"; - } - else - { - rename "$file.new", "$file"; - } -} - - -################################################################ -# output the list of codepage tables into the cptable.c file -sub OUTPUT_CPTABLE -{ - @tables_decl = (); - - foreach $file (@allfiles) - { - my ($codepage,$filename,$comment) = @$file; - push @tables_decl, sprintf("extern union cptable cptable_%03d;\n",$codepage); - } - - push @tables_decl, sprintf("\nstatic const union cptable * const cptables[%d] =\n{\n",$#allfiles+1); - foreach $file (@allfiles) - { - my ($codepage,$filename,$comment) = @$file; - push @tables_decl, sprintf(" &cptable_%03d,\n", $codepage); - } - push @tables_decl, "};"; - REPLACE_IN_FILE( "cptable.c", @tables_decl ); -} - -################################################################ -# replace the contents of a file between ### cpmap ### marks - -sub REPLACE_IN_FILE -{ - my $name = shift; - my @data = @_; - my @lines = (); - open(FILE,$name) or die "Can't open $name"; - while () - { - push @lines, $_; - last if /\#\#\# cpmap begin \#\#\#/; - } - push @lines, @data; - while () - { - if (/\#\#\# cpmap end \#\#\#/) { push @lines, "\n", $_; last; } - } - push @lines, ; - open(FILE,">$name.new") or die "Can't modify $name"; - print FILE @lines; - close(FILE); - save_file($name); -} diff --git a/reactos/tools/unicode/cptable.c b/reactos/tools/unicode/cptable.c deleted file mode 100644 index 50849468e65..00000000000 --- a/reactos/tools/unicode/cptable.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Codepage tables - * - * Copyright 2000 Alexandre Julliard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -#include "wine/unicode.h" - -/* Everything below this line is generated automatically by cpmap.pl */ -/* ### cpmap begin ### */ -extern union cptable cptable_037; -extern union cptable cptable_424; -extern union cptable cptable_437; -extern union cptable cptable_500; -extern union cptable cptable_737; -extern union cptable cptable_775; -extern union cptable cptable_850; -extern union cptable cptable_852; -extern union cptable cptable_855; -extern union cptable cptable_856; -extern union cptable cptable_857; -extern union cptable cptable_860; -extern union cptable cptable_861; -extern union cptable cptable_862; -extern union cptable cptable_863; -extern union cptable cptable_864; -extern union cptable cptable_865; -extern union cptable cptable_866; -extern union cptable cptable_869; -extern union cptable cptable_874; -extern union cptable cptable_875; -extern union cptable cptable_878; -extern union cptable cptable_932; -extern union cptable cptable_936; -extern union cptable cptable_949; -extern union cptable cptable_950; -extern union cptable cptable_1006; -extern union cptable cptable_1026; -extern union cptable cptable_1250; -extern union cptable cptable_1251; -extern union cptable cptable_1252; -extern union cptable cptable_1253; -extern union cptable cptable_1254; -extern union cptable cptable_1255; -extern union cptable cptable_1256; -extern union cptable cptable_1257; -extern union cptable cptable_1258; -extern union cptable cptable_1361; -extern union cptable cptable_10000; -extern union cptable cptable_10006; -extern union cptable cptable_10007; -extern union cptable cptable_10029; -extern union cptable cptable_10079; -extern union cptable cptable_10081; -extern union cptable cptable_20127; -extern union cptable cptable_20866; -extern union cptable cptable_20932; -extern union cptable cptable_21866; -extern union cptable cptable_28591; -extern union cptable cptable_28592; -extern union cptable cptable_28593; -extern union cptable cptable_28594; -extern union cptable cptable_28595; -extern union cptable cptable_28596; -extern union cptable cptable_28597; -extern union cptable cptable_28598; -extern union cptable cptable_28599; -extern union cptable cptable_28600; -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[62] = -{ - &cptable_037, - &cptable_424, - &cptable_437, - &cptable_500, - &cptable_737, - &cptable_775, - &cptable_850, - &cptable_852, - &cptable_855, - &cptable_856, - &cptable_857, - &cptable_860, - &cptable_861, - &cptable_862, - &cptable_863, - &cptable_864, - &cptable_865, - &cptable_866, - &cptable_869, - &cptable_874, - &cptable_875, - &cptable_878, - &cptable_932, - &cptable_936, - &cptable_949, - &cptable_950, - &cptable_1006, - &cptable_1026, - &cptable_1250, - &cptable_1251, - &cptable_1252, - &cptable_1253, - &cptable_1254, - &cptable_1255, - &cptable_1256, - &cptable_1257, - &cptable_1258, - &cptable_1361, - &cptable_10000, - &cptable_10006, - &cptable_10007, - &cptable_10029, - &cptable_10079, - &cptable_10081, - &cptable_20127, - &cptable_20866, - &cptable_20932, - &cptable_21866, - &cptable_28591, - &cptable_28592, - &cptable_28593, - &cptable_28594, - &cptable_28595, - &cptable_28596, - &cptable_28597, - &cptable_28598, - &cptable_28599, - &cptable_28600, - &cptable_28603, - &cptable_28604, - &cptable_28605, - &cptable_28606, -}; -/* ### cpmap end ### */ -/* Everything above this line is generated automatically by cpmap.pl */ - -#define NB_CODEPAGES (sizeof(cptables)/sizeof(cptables[0])) - - -static int cmp_codepage( const void *codepage, const void *entry ) -{ - return *(const unsigned int *)codepage - (*(const union cptable *const *)entry)->info.codepage; -} - - -/* get the table of a given code page */ -const union cptable *wine_cp_get_table( unsigned int codepage ) -{ - const union cptable **res; - - if (!(res = bsearch( &codepage, cptables, NB_CODEPAGES, - sizeof(cptables[0]), cmp_codepage ))) return NULL; - return *res; -} - - -/* enum valid codepages */ -const union cptable *wine_cp_enum_table( unsigned int index ) -{ - if (index >= NB_CODEPAGES) return NULL; - return cptables[index]; -} diff --git a/reactos/tools/unicode/defaults b/reactos/tools/unicode/defaults deleted file mode 100644 index b823fb4c91b..00000000000 --- a/reactos/tools/unicode/defaults +++ /dev/null @@ -1,202 +0,0 @@ -# Default Unicode mappings -# -# Copyright 2000 Alexandre Julliard -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -# -# NOTES: -# -# This file contains default mappings for Unicode chars that aren't -# defined directly in the code page file. It is used by the cpmap.pl -# tool to build codepage tables. -# -# The first column defines equivalence sets; if any character in the set -# is defined in the codepage file, all others in the set will map to the -# same value. -# -# The second column specifies the default char to map the whole set to, -# if no characters in the set are defined by the codepage file. -# -# Characters that have an explicit decomposition in the UnicodeData.txt -# file (for instance 00c0 LATIN CAPITAL LETTER A WITH GRAVE -> 0041 0300) -# are handled automatically and do not have to be defined here. They can -# still be defined if necessary to override the unicode decomposition. -# - -# letters - -00a2,20a1 'c' # CENT SIGN, COLON SIGN -00a3,20a4 'L' # POUND SIGN, LIRA SIGN -00a5 'Y' # YEN SIGN -00a6 '|' # BROKEN BAR -00a9 'c' # COPYRIGHT SIGN -00ae 'r' # REGISTERED SIGN -00b5,03bc 'u' # MICRO SIGN, GREEK SMALL LETTER MU -00c6 'A' # LATIN CAPITAL LETTER AE -00d0,0110,0189 'D' # LATIN CAPITAL LETTER D WITH STROKE/AFRICAN D/ETH -00d7 'x' # MULTIPLICATION SIGN -00d8,2205 'O' # LATIN CAPITAL LETTER O WITH STROKE, EMPTY SET -00df,03b2 none # LATIN SMALL LETTER SHARP S, GREEK SMALL LETTER BETA -00e6 'a' # LATIN SMALL LETTER AE -00f0 'd' # LATIN SMALL LETTER ETH -00f8 'o' # LATIN SMALL LETTER O WITH STROKE -0111 'd' # LATIN SMALL LETTER D WITH STROKE -0126 'H' # LATIN CAPITAL LETTER H WITH STROKE -0127 'h' # LATIN SMALL LETTER H WITH STROKE -0131 'i' # LATIN SMALL LETTER DOTLESS I -0141 'L' # LATIN CAPITAL LETTER L WITH STROKE -0142 'l' # LATIN SMALL LETTER L WITH STROKE -0152 'O' # LATIN CAPITAL LIGATURE OE -0153 'o' # LATIN SMALL LIGATURE OE -0166 'T' # LATIN CAPITAL LETTER T WITH STROKE -0167 't' # LATIN SMALL LETTER T WITH STROKE -0180 'b' # LATIN SMALL LETTER B WITH STROKE -0190 'E' # LATIN CAPITAL LETTER OPEN E -0191 'F' # LATIN CAPITAL LETTER F WITH HOOK -0192 'f' # LATIN SMALL LETTER F WITH HOOK -0197 'I' # LATIN CAPITAL LETTER I WITH STROKE -019a 'l' # LATIN SMALL LETTER L WITH BAR -019f 'O' # LATIN CAPITAL LETTER O WITH MIDDLE TILDE -01ab 't' # LATIN SMALL LETTER T WITH PALATAL HOOK -01ae 'T' # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK -01b6 'z' # LATIN SMALL LETTER Z WITH STROKE -0391 'A' # GREEK CAPITAL LETTER ALPHA -0392 'B' # GREEK CAPITAL LETTER BETA -0395 'E' # GREEK CAPITAL LETTER EPSILON -0396 'Z' # GREEK CAPITAL LETTER ZETA -0397 'H' # GREEK CAPITAL LETTER ETA -0399 'I' # GREEK CAPITAL LETTER IOTA -039a 'K' # GREEK CAPITAL LETTER KAPPA -039c 'M' # GREEK CAPITAL LETTER MU -039d 'N' # GREEK CAPITAL LETTER NU -039f 'O' # GREEK CAPITAL LETTER OMICRON -03a1 'P' # GREEK CAPITAL LETTER RHO -03a4 'T' # GREEK CAPITAL LETTER TAU -03a5 'Y' # GREEK CAPITAL LETTER UPSILON -03a7 'X' # GREEK CAPITAL LETTER CHI -01e4 'G' # LATIN CAPITAL LETTER G WITH STROKE -01e5 'g' # LATIN SMALL LETTER G WITH STROKE -0261 'g' # LATIN SMALL LETTER SCRIPT G -2118 'P' # SCRIPT CAPITAL P -212e 'e' # ESTIMATED SYMBOL - -# accents - -00a8,0308 '"' # DIAERESIS -00af,02c9,0304 2014 # MACRON -> EM DASH -00b4,02b9,02ca,0301,2032 ''' # ACUTE ACCENT, PRIME -00b8,0327 ',' # CEDILLA -02ba,02dd,030b,2033 '"' # DOUBLE ACUTE ACCENT, DOUBLE PRIME -02c4,2303 '^' # UP ARROWHEAD -02c6,0302 '^' # CIRCUMFLEX ACCENT -02c7,030c 'v' # COMBINING CARON -> CARON -02c8 ''' # MODIFIER LETTER VERTICAL LINE -02cb,0300 '`' # GRAVE ACCENT -02cd,0331,0332 '_' # MODIFIER LETTER LOW MACRON, COMBINING MACRON BELOW, COMBINING LOW LINE -02d8,0306 none # BREVE -02d9,0307 none # DOT ABOVE -02da,030a,2070,2218 00b0 # RING ABOVE, SUPERSCRIPT ZERO, RING OPERATOR -> DEGREE SIGN -02db,0328 none # OGONEK -02dc,0303 '~' # SMALL TILDE -0305,203e 00af # OVERLINE -> MACRON -030e '"' # COMBINING DOUBLE VERTICAL LINE ABOVE -0333 '_' # COMBINING DOUBLE LOW LINE - -# mathematical symbols - -00b1,2213 none # PLUS-MINUS SIGN, MINUS-OR-PLUS SIGN -2044,2215 '/' # FRACTION/DIVISION SLASH -2216 '\' # SET MINUS -2217 '*' # ASTERISK OPERATOR -221a 'V' # SQUARE ROOT -221f 'L' # RIGHT ANGLE -2223 '|' # DIVIDES -2229 'n' # INTERSECTION -2236 ':' # RATIO -2248 02DC # ALMOST EQUAL TO -> SMALL TILDE -2261,2263 '=' # IDENTICAL TO, STRICTLY EQUIVALENT TO -226a 00ab # MUCH LESS-THAN -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -226b 00bb # MUCH GREATER-THAN -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -22c5 00b7 # DOT OPERATOR -> MIDDLE DOT - -# misc symbols - -00a1 '!' # INVERTED EXCLAMATION MARK -00ab,300a '<' # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, LEFT DOUBLE ANGLE BRACKET -00ad '-' # SOFT HYPHEN -00bb,300b '>' # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, RIGHT DOUBLE ANGLE BRACKET -01c0 2502 # LATIN LETTER DENTAL CLICK -> BOX DRAWINGS LIGHT VERTICAL -01c3 '!' # LATIN LETTER RETROFLEX CLICK -02bb 2018 # MODIFIER LETTER TURNED COMMA -> LEFT SINGLE QUOTATION MARK -02bc,2019 ''' # RIGHT SINGLE QUOTATION MARK -2010,2011,2212 '-' # HYPHEN, MINUS SIGN -2013,2014,2015 '-' # EN DASH, EM DASH, HORIZONTAL BAR, MINUS SIGN -2018,201b,2035 '`' # LEFT SINGLE QUOTATION MARK, SINGLE HIGH-REVERSED-9 QUOTATION MARK, REVERSED PRIME -201a ',' # SINGLE LOW-9 QUOTATION MARK -201c,301d '"' # LEFT DOUBLE QUOTATION MARK, REVERSED DOUBLE PRIME QUOTATION MARK -201d,301e '"' # RIGHT DOUBLE QUOTATION MARK, DOUBLE PRIME QUOTATION MARK -201e,301f ',' # LOW DOUBLE PRIME QUOTATION MARK, DOUBLE LOW-9 QUOTATION MARK -2022,2219 none # BULLET, BULLET OPERATOR -2039,3008 '<' # SINGLE LEFT-POINTING ANGLE QUOTATION MARK, LEFT ANGLE BRACKET -203a,3009 '>' # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK, RIGHT ANGLE BRACKET -203c '!' # DOUBLE EXCLAMATION MARK -2190 2039 # LEFTWARDS ARROW -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK -2191 02c6 # UPWARDS ARROW -> MODIFIER LETTER CIRCUMFLEX ACCENT -2192 203a # RIGHTWARDS ARROW -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK -2193 02c7 # DOWNWARDS ARROW -> CARON -2194 '-' # LEFT RIGHT ARROW -2195 '|' # UP DOWN ARROW -223c '~' # TILDE -301a '[' # LEFT WHITE SQUARE BRACKET -301b ']' # RIGHT WHITE SQUARE BRACKET -fe49,fe4a,fe4b,fe4c 203e # DOUBLE WAVY OVERLINE -> OVERLINE -fe4d,fe4e,fe4f '_' # DASHED/CENTRELINE/WAVY LOW LINE - -# box drawing chars - -2500,2501 '-' # BOX DRAWINGS LIGHT/HEAVY HORIZONTAL -2502,2503 '|' # BOX DRAWINGS LIGHT/HEAVY VERTICAL -2504,2505 '-' # BOX DRAWINGS LIGHT/HEAVY TRIPLE DASH HORIZONTAL -2506,2507 00a6 # BOX DRAWINGS LIGHT/HEAVY TRIPLE DASH VERTICAL -> BROKEN BAR -2508,2509 '-' # BOX DRAWINGS LIGHT/HEAVY QUADRUPLE DASH HORIZONTAL -250a,250b 00a6 # BOX DRAWINGS LIGHT/HEAVY QUADRUPLE DASH VERTICAL -> BROKEN BAR -250c,250d,250e,250f '+' # BOX DRAWINGS LIGHT/HEAVY DOWN AND RIGHT -2510,2511,2512,2513 00ac # BOX DRAWINGS LIGHT/HEAVY DOWN AND LEFT -> NOT SIGN -2514,2515,2516,2517 'L' # BOX DRAWINGS LIGHT/HEAVY UP AND RIGHT -2518,2519,251a,251b '+' # BOX DRAWINGS LIGHT/HEAVY UP AND LEFT -251c,251d,251e,251f,2520,2521,2522,2523 '+' # BOX DRAWINGS LIGHT/HEAVY VERTICAL AND RIGHT -2524,2525,2526,2527,2528,2529,252a,252b '+' # BOX DRAWINGS LIGHT/HEAVY VERTICAL AND LEFT -252c,252d,252e,252f,2530,2531,2532,2533 'T' # BOX DRAWINGS LIGHT/HEAVY DOWN AND HORIZONTAL -2534,2535,2536,2537,2538,2539,253a,253b '+' # BOX DRAWINGS LIGHT/HEAVY UP AND HORIZONTAL -253c,253d,253e,253f,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,254a,254b '+' # BOX DRAWINGS LIGHT/HEAVY VERTICAL AND HORIZONTAL -254c,254d '-' # BOX DRAWINGS LIGHT/HEAVY DOUBLE DASH HORIZONTAL -254e,254f 00a6 # BOX DRAWINGS LIGHT/HEAVY DOUBLE DASH VERTICAL -> BROKEN BAR -2550 '=' # BOX DRAWINGS DOUBLE HORIZONTAL -2551 '|' # BOX DRAWINGS DOUBLE VERTICAL -2552,2553,2554 '+' # BOX DRAWINGS DOWN AND RIGHT -2555,2556,2557 00ac # BOX DRAWINGS DOWN AND LEFT -> NOT SIGN -2558,2559,255a 'L' # BOX DRAWINGS UP AND RIGHT -255b,255c,255d '+' # BOX DRAWINGS UP AND LEFT -255e,255f,2560 '+' # BOX DRAWINGS VERTICAL AND RIGHT -2561,2562,2563 '+' # BOX DRAWINGS VERTICAL AND LEFT -2564,2565,2566 'T' # BOX DRAWINGS DOWN AND HORIZONTAL -2567,2568,2569 '+' # BOX DRAWINGS UP AND HORIZONTAL -256a,256b,256c '+' # BOX DRAWINGS VERTICAL AND HORIZONTAL -2571 '/' # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT -2572 '\' # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT -2573 'X' # BOX DRAWINGS LIGHT DIAGONAL CROSS -2574,2576,2578,257a,257c,257e '-' # BOX DRAWINGS LIGHT/HEAVY LEFT/RIGHT -2575,2577,2579,257b,257d,257f '|' # BOX DRAWINGS LIGHT/HEAVY UP/DOWN -25cb,25ef 'O' # WHITE/LARGE CIRCLE diff --git a/reactos/tools/unicode/fold.c b/reactos/tools/unicode/fold.c deleted file mode 100644 index 87a4a418faa..00000000000 --- a/reactos/tools/unicode/fold.c +++ /dev/null @@ -1,198 +0,0 @@ -/* - * String folding - * - * Copyright 2003 Jon Griffiths - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "wine/unicode.h" - -static inline WCHAR to_unicode_digit( WCHAR ch ) -{ - extern const WCHAR wine_digitmap[]; - return ch + wine_digitmap[wine_digitmap[ch >> 8] + (ch & 0xff)]; -} - -static inline WCHAR to_unicode_native( WCHAR ch ) -{ - extern const WCHAR wine_compatmap[]; - return ch + wine_compatmap[wine_compatmap[ch >> 8] + (ch & 0xff)]; -} - -static const WCHAR wine_ligatures[] = -{ - 0x00c6, 0x00de, 0x00df, 0x00e6, 0x00fe, 0x0132, 0x0133, 0x0152, - 0x0153, 0x01c4, 0x01c5, 0x01c6, 0x01c7, 0x01c8, 0x01c9, 0x01ca, - 0x01cb, 0x01cc, 0x01e2, 0x01e3, 0x01f1, 0x01f2, 0x01f3, 0x01fc, - 0x01fd, 0x05f0, 0x05f1, 0x05f2, 0xfb00, 0xfb01, 0xfb02, 0xfb03, - 0xfb04, 0xfb05, 0xfb06 -}; - -/* Unicode expanded ligatures */ -static const WCHAR wine_expanded_ligatures[][4] = -{ - { 'A','E','\0',1 }, - { 'T','H','\0',1 }, - { 's','s','\0',1 }, - { 'a','e','\0',1 }, - { 't','h','\0',1 }, - { 'I','J','\0',1 }, - { 'i','j','\0',1 }, - { 'O','E','\0',1 }, - { 'o','e','\0',1 }, - { 'D',0x017d,'\0',1 }, - { 'D',0x017e,'\0',1 }, - { 'd',0x017e,'\0',1 }, - { 'L','J','\0',1 }, - { 'L','j','\0',1 }, - { 'l','j','\0',1 }, - { 'N','J','\0',1 }, - { 'N','j','\0',1 }, - { 'n','j','\0',1 }, - { 0x0100,0x0112,'\0',1 }, - { 0x0101,0x0113,'\0',1 }, - { 'D','Z','\0',1 }, - { 'D','z','\0',1 }, - { 'd','z','\0',1 }, - { 0x00c1,0x00c9,'\0',1 }, - { 0x00e1,0x00e9,'\0',1 }, - { 0x05d5,0x05d5,'\0',1 }, - { 0x05d5,0x05d9,'\0',1 }, - { 0x05d9,0x05d9,'\0',1 }, - { 'f','f','\0',1 }, - { 'f','i','\0',1 }, - { 'f','l','\0',1 }, - { 'f','f','i',2 }, - { 'f','f','l',2 }, - { 0x017f,'t','\0',1 }, - { 's','t','\0',1 } -}; - -static inline int get_ligature_len( WCHAR wc ) -{ - int low = 0, high = sizeof(wine_ligatures)/sizeof(WCHAR) -1; - while (low <= high) - { - int pos = (low + high) / 2; - if (wine_ligatures[pos] < wc) - low = pos + 1; - else if (wine_ligatures[pos] > wc) - high = pos - 1; - else - return wine_expanded_ligatures[pos][3]; - } - return 0; -} - -static inline const WCHAR* get_ligature( WCHAR wc ) -{ - static const WCHAR empty_ligature[] = { '\0','\0','\0', 0 }; - int low = 0, high = sizeof(wine_ligatures)/sizeof(WCHAR) -1; - while (low <= high) - { - int pos = (low + high) / 2; - if (wine_ligatures[pos] < wc) - low = pos + 1; - else if (wine_ligatures[pos] > wc) - high = pos - 1; - else - return wine_expanded_ligatures[pos]; - } - return empty_ligature; -} - -/* fold a unicode string */ -int wine_fold_string( int flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen ) -{ - WCHAR *dstbase = dst; - const WCHAR *expand; - int i; - - if (srclen == -1) - srclen = strlenW(src) + 1; /* Include terminating NUL in count */ - - if (!dstlen) - { - /* Calculate the required size for dst */ - dstlen = srclen; - - if (flags & MAP_EXPAND_LIGATURES) - { - while (srclen--) - { - dstlen += get_ligature_len(*src); - src++; - } - } - else if (flags & MAP_COMPOSITE) - { - /* FIXME */ - } - else if (flags & MAP_PRECOMPOSED) - { - /* FIXME */ - } - return dstlen; - } - - if (srclen > dstlen) - return 0; - - dstlen -= srclen; - - /* Actually perform the mapping(s) specified */ - for (i = 0; i < srclen; i++) - { - WCHAR ch = *src; - - if (flags & MAP_EXPAND_LIGATURES) - { - expand = get_ligature(ch); - if (expand[0]) - { - if (!dstlen--) - return 0; - dst[0] = expand[0]; - if (expand[2]) - { - if (!dstlen--) - return 0; - *++dst = expand[1]; - ch = expand[2]; - } - else - ch = expand[1]; - dst++; - } - } - else if (flags & MAP_COMPOSITE) - { - /* FIXME */ - } - else if (flags & MAP_PRECOMPOSED) - { - /* FIXME */ - } - if (flags & MAP_FOLDDIGITS) - ch = to_unicode_digit(ch); - if (flags & MAP_FOLDCZONE) - ch = to_unicode_native(ch); - - *dst++ = ch; - src++; - } - return dst - dstbase; -} diff --git a/reactos/tools/unicode/mbtowc.c b/reactos/tools/unicode/mbtowc.c deleted file mode 100644 index 1995b31a227..00000000000 --- a/reactos/tools/unicode/mbtowc.c +++ /dev/null @@ -1,312 +0,0 @@ -/* - * MultiByteToWideChar implementation - * - * Copyright 2000 Alexandre Julliard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -#include "wine/unicode.h" - -/* get the decomposition of a Unicode char */ -static int get_decomposition( WCHAR src, WCHAR *dst, unsigned int dstlen ) -{ - extern const WCHAR unicode_decompose_table[]; - const WCHAR *ptr = unicode_decompose_table; - int res; - - *dst = src; - ptr = unicode_decompose_table + ptr[src >> 8]; - ptr = unicode_decompose_table + ptr[(src >> 4) & 0x0f] + 2 * (src & 0x0f); - if (!*ptr) return 1; - if (dstlen <= 1) return 0; - /* apply the decomposition recursively to the first char */ - if ((res = get_decomposition( *ptr, dst, dstlen-1 ))) dst[res++] = ptr[1]; - return res; -} - -/* 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. */ -static inline int is_private_use_area_char(WCHAR code) -{ - return (code >= 0xe000 && code <= 0xf8ff); -} - -/* check src string for invalid chars; return non-zero if invalid char found */ -static inline int check_invalid_chars_sbcs( const struct sbcs_table *table, int flags, - const unsigned char *src, unsigned int srclen ) -{ - const WCHAR * const cp2uni = (flags & MB_USEGLYPHCHARS) ? table->cp2uni_glyphs : table->cp2uni; - const WCHAR def_unicode_char = table->info.def_unicode_char; - const unsigned char def_char = table->uni2cp_low[table->uni2cp_high[def_unicode_char >> 8] - + (def_unicode_char & 0xff)]; - while (srclen) - { - if ((cp2uni[*src] == def_unicode_char && *src != def_char) || - is_private_use_area_char(cp2uni[*src])) break; - src++; - srclen--; - } - return srclen; -} - -/* mbstowcs for single-byte code page */ -/* all lengths are in characters, not bytes */ -static inline int mbstowcs_sbcs( const struct sbcs_table *table, int flags, - const unsigned char *src, unsigned int srclen, - WCHAR *dst, unsigned int dstlen ) -{ - const WCHAR * const cp2uni = (flags & MB_USEGLYPHCHARS) ? table->cp2uni_glyphs : table->cp2uni; - int ret = srclen; - - if (dstlen < srclen) - { - /* buffer too small: fill it up to dstlen and return error */ - srclen = dstlen; - ret = -1; - } - - for (;;) - { - 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; - src += 16; - srclen -= 16; - } -} - -/* mbstowcs for single-byte code page with char decomposition */ -static int mbstowcs_sbcs_decompose( const struct sbcs_table *table, int flags, - const unsigned char *src, unsigned int srclen, - WCHAR *dst, unsigned int dstlen ) -{ - const WCHAR * const cp2uni = (flags & MB_USEGLYPHCHARS) ? table->cp2uni_glyphs : table->cp2uni; - unsigned int len; - - if (!dstlen) /* compute length */ - { - WCHAR dummy[4]; /* no decomposition is larger than 4 chars */ - for (len = 0; srclen; srclen--, src++) - len += get_decomposition( cp2uni[*src], dummy, 4 ); - return len; - } - - for (len = dstlen; srclen && len; srclen--, src++) - { - int res = get_decomposition( cp2uni[*src], dst, len ); - if (!res) break; - len -= res; - dst += res; - } - if (srclen) return -1; /* overflow */ - return dstlen - len; -} - -/* query necessary dst length for src string */ -static inline int get_length_dbcs( const struct dbcs_table *table, - const unsigned char *src, unsigned int srclen ) -{ - const unsigned char * const cp2uni_lb = table->cp2uni_leadbytes; - int len; - - for (len = 0; srclen; srclen--, src++, len++) - { - if (cp2uni_lb[*src]) - { - if (!--srclen) break; /* partial char, ignore it */ - src++; - } - } - return len; -} - -/* check src string for invalid chars; return non-zero if invalid char found */ -static inline int check_invalid_chars_dbcs( const struct dbcs_table *table, - const unsigned char *src, unsigned int srclen ) -{ - const WCHAR * const cp2uni = table->cp2uni; - const unsigned char * const cp2uni_lb = table->cp2uni_leadbytes; - const WCHAR def_unicode_char = table->info.def_unicode_char; - const unsigned short def_char = table->uni2cp_low[table->uni2cp_high[def_unicode_char >> 8] - + (def_unicode_char & 0xff)]; - while (srclen) - { - unsigned char off = cp2uni_lb[*src]; - if (off) /* multi-byte char */ - { - if (srclen == 1) break; /* partial char, error */ - if (cp2uni[(off << 8) + src[1]] == def_unicode_char && - ((src[0] << 8) | src[1]) != def_char) break; - src++; - srclen--; - } - else if ((cp2uni[*src] == def_unicode_char && *src != def_char) || - is_private_use_area_char(cp2uni[*src])) break; - src++; - srclen--; - } - return srclen; -} - -/* mbstowcs for double-byte code page */ -/* all lengths are in characters, not bytes */ -static inline int mbstowcs_dbcs( const struct dbcs_table *table, - const unsigned char *src, unsigned int srclen, - WCHAR *dst, unsigned int dstlen ) -{ - const WCHAR * const cp2uni = table->cp2uni; - const unsigned char * const cp2uni_lb = table->cp2uni_leadbytes; - unsigned int len; - - if (!dstlen) return get_length_dbcs( table, src, srclen ); - - for (len = dstlen; srclen && len; len--, srclen--, src++, dst++) - { - unsigned char off = cp2uni_lb[*src]; - if (off) - { - if (!--srclen) break; /* partial char, ignore it */ - src++; - *dst = cp2uni[(off << 8) + *src]; - } - else *dst = cp2uni[*src]; - } - if (srclen) return -1; /* overflow */ - return dstlen - len; -} - - -/* mbstowcs for double-byte code page with character decomposition */ -static int mbstowcs_dbcs_decompose( const struct dbcs_table *table, - const unsigned char *src, unsigned int srclen, - WCHAR *dst, unsigned int dstlen ) -{ - const WCHAR * const cp2uni = table->cp2uni; - const unsigned char * const cp2uni_lb = table->cp2uni_leadbytes; - unsigned int len; - WCHAR ch; - int res; - - if (!dstlen) /* compute length */ - { - WCHAR dummy[4]; /* no decomposition is larger than 4 chars */ - for (len = 0; srclen; srclen--, src++) - { - unsigned char off = cp2uni_lb[*src]; - if (off) - { - if (!--srclen) break; /* partial char, ignore it */ - src++; - ch = cp2uni[(off << 8) + *src]; - } - else ch = cp2uni[*src]; - len += get_decomposition( ch, dummy, 4 ); - } - return len; - } - - for (len = dstlen; srclen && len; srclen--, src++) - { - unsigned char off = cp2uni_lb[*src]; - if (off) - { - if (!--srclen) break; /* partial char, ignore it */ - src++; - ch = cp2uni[(off << 8) + *src]; - } - else ch = cp2uni[*src]; - if (!(res = get_decomposition( ch, dst, len ))) break; - dst += res; - len -= res; - } - if (srclen) return -1; /* overflow */ - return dstlen - len; -} - - -/* return -1 on dst buffer overflow, -2 on invalid input char */ -int wine_cp_mbstowcs( const union cptable *table, int flags, - const char *s, int srclen, - WCHAR *dst, int dstlen ) -{ - const unsigned char *src = (const unsigned char*) s; - - if (table->info.char_size == 1) - { - if (flags & MB_ERR_INVALID_CHARS) - { - if (check_invalid_chars_sbcs( &table->sbcs, flags, src, srclen )) return -2; - } - if (!(flags & MB_COMPOSITE)) - { - if (!dstlen) return srclen; - return mbstowcs_sbcs( &table->sbcs, flags, src, srclen, dst, dstlen ); - } - return mbstowcs_sbcs_decompose( &table->sbcs, flags, src, srclen, dst, dstlen ); - } - else /* mbcs */ - { - if (flags & MB_ERR_INVALID_CHARS) - { - if (check_invalid_chars_dbcs( &table->dbcs, src, srclen )) return -2; - } - if (!(flags & MB_COMPOSITE)) - return mbstowcs_dbcs( &table->dbcs, src, srclen, dst, dstlen ); - else - return mbstowcs_dbcs_decompose( &table->dbcs, src, srclen, dst, dstlen ); - } -} - -/* CP_SYMBOL implementation */ -/* return -1 on dst buffer overflow */ -int wine_cpsymbol_mbstowcs( const char *src, int srclen, WCHAR *dst, int dstlen) -{ - int len, i; - if( dstlen == 0) return srclen; - len = dstlen > srclen ? srclen : dstlen; - for( i = 0; i < len; i++) - { - unsigned char c = src [ i ]; - if( c < 0x20 ) - dst[i] = c; - else - dst[i] = c + 0xf000; - } - if( srclen > len) return -1; - return len; -} diff --git a/reactos/tools/unicode/sortkey.c b/reactos/tools/unicode/sortkey.c deleted file mode 100644 index 17b55374c51..00000000000 --- a/reactos/tools/unicode/sortkey.c +++ /dev/null @@ -1,350 +0,0 @@ -/* - * Unicode sort key generation - * - * Copyright 2003 Dmitry Timoshkov - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ -#include "wine/unicode.h" - -extern int get_decomposition(WCHAR src, WCHAR *dst, unsigned int dstlen); -extern const unsigned int collation_table[]; - -/* - * flags - normalization NORM_* flags - * - * FIXME: 'variable' flag not handled - */ -int wine_get_sortkey(int flags, const WCHAR *src, int srclen, char *dst, int dstlen) -{ - WCHAR dummy[4]; /* no decomposition is larger than 4 chars */ - int key_len[4]; - char *key_ptr[4]; - const WCHAR *src_save = src; - int srclen_save = srclen; - - key_len[0] = key_len[1] = key_len[2] = key_len[3] = 0; - for (; srclen; srclen--, src++) - { - int decomposed_len = 1;/*get_decomposition(*src, dummy, 4);*/ - dummy[0] = *src; - if (decomposed_len) - { - int i; - for (i = 0; i < decomposed_len; i++) - { - WCHAR wch = dummy[i]; - unsigned int ce; - - /* tests show that win2k just ignores NORM_IGNORENONSPACE, - * and skips white space and punctuation characters for - * NORM_IGNORESYMBOLS. - */ - if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) - continue; - - if (flags & NORM_IGNORECASE) wch = tolowerW(wch); - - ce = collation_table[collation_table[wch >> 8] + (wch & 0xff)]; - if (ce != (unsigned int)-1) - { - if (ce >> 16) key_len[0] += 2; - if ((ce >> 8) & 0xff) key_len[1]++; - if ((ce >> 4) & 0x0f) key_len[2]++; - if (ce & 1) - { - if (wch >> 8) key_len[3]++; - key_len[3]++; - } - } - else - { - key_len[0] += 2; - if (wch >> 8) key_len[0]++; - if (wch & 0xff) key_len[0]++; - } - } - } - } - - 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; - - if (dstlen < key_len[0] + key_len[1] + key_len[2] + key_len[3] + 4 + 1) - return 0; /* overflow */ - - src = src_save; - srclen = srclen_save; - - key_ptr[0] = dst; - key_ptr[1] = key_ptr[0] + key_len[0] + 1; - key_ptr[2] = key_ptr[1] + key_len[1] + 1; - key_ptr[3] = key_ptr[2] + key_len[2] + 1; - - for (; srclen; srclen--, src++) - { - int decomposed_len = 1;/*get_decomposition(*src, dummy, 4);*/ - dummy[0] = *src; - if (decomposed_len) - { - int i; - for (i = 0; i < decomposed_len; i++) - { - WCHAR wch = dummy[i]; - unsigned int ce; - - /* tests show that win2k just ignores NORM_IGNORENONSPACE, - * and skips white space and punctuation characters for - * NORM_IGNORESYMBOLS. - */ - if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) - continue; - - if (flags & NORM_IGNORECASE) wch = tolowerW(wch); - - ce = collation_table[collation_table[wch >> 8] + (wch & 0xff)]; - if (ce != (unsigned int)-1) - { - WCHAR key; - if ((key = ce >> 16)) - { - *key_ptr[0]++ = key >> 8; - *key_ptr[0]++ = key & 0xff; - } - /* make key 1 start from 2 */ - if ((key = (ce >> 8) & 0xff)) *key_ptr[1]++ = key + 1; - /* make key 2 start from 2 */ - if ((key = (ce >> 4) & 0x0f)) *key_ptr[2]++ = key + 1; - /* key 3 is always a character code */ - if (ce & 1) - { - if (wch >> 8) *key_ptr[3]++ = wch >> 8; - if (wch & 0xff) *key_ptr[3]++ = wch & 0xff; - } - } - else - { - *key_ptr[0]++ = 0xff; - *key_ptr[0]++ = 0xfe; - if (wch >> 8) *key_ptr[0]++ = wch >> 8; - if (wch & 0xff) *key_ptr[0]++ = wch & 0xff; - } - } - } - } - - *key_ptr[0] = '\1'; - *key_ptr[1] = '\1'; - *key_ptr[2] = '\1'; - *key_ptr[3]++ = '\1'; - *key_ptr[3] = 0; - - return key_ptr[3] - dst; -} - -static inline int compare_unicode_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) - { - 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; - } - - /* hyphen and apostrophe are treated differently depending on - * whether SORT_STRINGSORT specified or not - */ - if (!(flags & SORT_STRINGSORT)) - { - if (*str1 == '-' || *str1 == '\'') - { - if (*str2 != '-' && *str2 != '\'') - { - str1++; - len1--; - continue; - } - } - else if (*str2 == '-' || *str2 == '\'') - { - str2++; - len2--; - 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--; - } - 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) - { - 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; - } - - 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--; - } - 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) - { - 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; - } - - 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; - - str1++; - str2++; - len1--; - len2--; - } - return len1 - len2; -} - -static inline int real_length(const WCHAR *str, int len) -{ - while (len && !str[len - 1]) len--; - return len; -} - -int wine_compare_string(int flags, const WCHAR *str1, int len1, - const WCHAR *str2, int len2) -{ - int ret; - - len1 = real_length(str1, len1); - len2 = real_length(str2, len2); - - ret = compare_unicode_weights(flags, str1, len1, str2, len2); - if (!ret) - { - if (!(flags & NORM_IGNORENONSPACE)) - ret = compare_diacritic_weights(flags, str1, len1, str2, len2); - if (!ret && !(flags & NORM_IGNORECASE)) - ret = compare_case_weights(flags, str1, len1, str2, len2); - } - return ret; -} diff --git a/reactos/tools/unicode/string.c b/reactos/tools/unicode/string.c deleted file mode 100644 index 0b42ea8a8cc..00000000000 --- a/reactos/tools/unicode/string.c +++ /dev/null @@ -1,517 +0,0 @@ -/* - * Unicode string manipulation functions - * - * Copyright 2000 Alexandre Julliard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include -#include -#include - -#define WINE_UNICODE_INLINE /* nothing */ -#include "wine/unicode.h" - -int strcmpiW( const WCHAR *str1, const WCHAR *str2 ) -{ - for (;;) - { - int ret = tolowerW(*str1) - tolowerW(*str2); - if (ret || !*str1) return ret; - str1++; - str2++; - } -} - -int strncmpiW( const WCHAR *str1, const WCHAR *str2, int n ) -{ - int ret = 0; - for ( ; n > 0; n--, str1++, str2++) - if ((ret = tolowerW(*str1) - tolowerW(*str2)) || !*str1) break; - return ret; -} - -int memicmpW( const WCHAR *str1, const WCHAR *str2, int n ) -{ - int ret = 0; - for ( ; n > 0; n--, str1++, str2++) - if ((ret = tolowerW(*str1) - tolowerW(*str2))) break; - return ret; -} - -WCHAR *strstrW( const WCHAR *str, const WCHAR *sub ) -{ - while (*str) - { - const WCHAR *p1 = str, *p2 = sub; - while (*p1 && *p2 && *p1 == *p2) { p1++; p2++; } - if (!*p2) return (WCHAR *)str; - str++; - } - return NULL; -} - -/* strtolW and strtoulW implementation based on the GNU C library code */ -/* Copyright (C) 1991,92,94,95,96,97,98,99,2000,2001 Free Software Foundation, Inc. */ - -long int strtolW( const WCHAR *nptr, WCHAR **endptr, int base ) -{ - int negative; - register unsigned long int cutoff; - register unsigned int cutlim; - register unsigned long int i; - register const WCHAR *s; - register WCHAR c; - const WCHAR *save, *end; - int overflow; - - if (base < 0 || base == 1 || base > 36) return 0; - - save = s = nptr; - - /* Skip white space. */ - while (isspaceW (*s)) - ++s; - if (!*s) goto noconv; - - /* Check for a sign. */ - negative = 0; - if (*s == '-') - { - negative = 1; - ++s; - } - else if (*s == '+') - ++s; - - /* Recognize number prefix and if BASE is zero, figure it out ourselves. */ - if (*s == '0') - { - if ((base == 0 || base == 16) && toupperW(s[1]) == 'X') - { - s += 2; - base = 16; - } - else if (base == 0) - base = 8; - } - else if (base == 0) - base = 10; - - /* Save the pointer so we can check later if anything happened. */ - save = s; - end = NULL; - - cutoff = ULONG_MAX / (unsigned long int) base; - cutlim = ULONG_MAX % (unsigned long int) base; - - overflow = 0; - i = 0; - c = *s; - for (;c != '\0'; c = *++s) - { - if (s == end) - break; - if (c >= '0' && c <= '9') - c -= '0'; - else if (isalphaW (c)) - c = toupperW (c) - 'A' + 10; - else - break; - if ((int) c >= base) - break; - /* Check for overflow. */ - if (i > cutoff || (i == cutoff && c > cutlim)) - overflow = 1; - else - { - i *= (unsigned long int) base; - i += c; - } - } - - /* Check if anything actually happened. */ - if (s == save) - goto noconv; - - /* Store in ENDPTR the address of one character - past the last character we converted. */ - if (endptr != NULL) - *endptr = (WCHAR *)s; - - /* Check for a value that is within the range of - `unsigned LONG int', but outside the range of `LONG int'. */ - if (overflow == 0 - && i > (negative - ? -((unsigned long int) (LONG_MIN + 1)) + 1 - : (unsigned long int) LONG_MAX)) - overflow = 1; - - if (overflow) - { - return negative ? LONG_MIN : LONG_MAX; - } - - /* Return the result of the appropriate sign. */ - return negative ? -i : i; - -noconv: - /* We must handle a special case here: the base is 0 or 16 and the - first two characters are '0' and 'x', but the rest are not - hexadecimal digits. This is no error case. We return 0 and - ENDPTR points to the `x`. */ - if (endptr != NULL) - { - if (save - nptr >= 2 && toupperW (save[-1]) == 'X' - && save[-2] == '0') - *endptr = (WCHAR *)&save[-1]; - else - /* There was no number to convert. */ - *endptr = (WCHAR *)nptr; - } - - return 0L; -} - - -unsigned long int strtoulW( const WCHAR *nptr, WCHAR **endptr, int base ) -{ - int negative; - register unsigned long int cutoff; - register unsigned int cutlim; - register unsigned long int i; - register const WCHAR *s; - register WCHAR c; - const WCHAR *save, *end; - int overflow; - - if (base < 0 || base == 1 || base > 36) return 0; - - save = s = nptr; - - /* Skip white space. */ - while (isspaceW (*s)) - ++s; - if (!*s) goto noconv; - - /* Check for a sign. */ - negative = 0; - if (*s == '-') - { - negative = 1; - ++s; - } - else if (*s == '+') - ++s; - - /* Recognize number prefix and if BASE is zero, figure it out ourselves. */ - if (*s == '0') - { - if ((base == 0 || base == 16) && toupperW(s[1]) == 'X') - { - s += 2; - base = 16; - } - else if (base == 0) - base = 8; - } - else if (base == 0) - base = 10; - - /* Save the pointer so we can check later if anything happened. */ - save = s; - end = NULL; - - cutoff = ULONG_MAX / (unsigned long int) base; - cutlim = ULONG_MAX % (unsigned long int) base; - - overflow = 0; - i = 0; - c = *s; - for (;c != '\0'; c = *++s) - { - if (s == end) - break; - if (c >= '0' && c <= '9') - c -= '0'; - else if (isalphaW (c)) - c = toupperW (c) - 'A' + 10; - else - break; - if ((int) c >= base) - break; - /* Check for overflow. */ - if (i > cutoff || (i == cutoff && c > cutlim)) - overflow = 1; - else - { - i *= (unsigned long int) base; - i += c; - } - } - - /* Check if anything actually happened. */ - if (s == save) - goto noconv; - - /* Store in ENDPTR the address of one character - past the last character we converted. */ - if (endptr != NULL) - *endptr = (WCHAR *)s; - - if (overflow) - { - return ULONG_MAX; - } - - /* Return the result of the appropriate sign. */ - return negative ? -i : i; - -noconv: - /* We must handle a special case here: the base is 0 or 16 and the - first two characters are '0' and 'x', but the rest are not - hexadecimal digits. This is no error case. We return 0 and - ENDPTR points to the `x`. */ - if (endptr != NULL) - { - if (save - nptr >= 2 && toupperW (save[-1]) == 'X' - && save[-2] == '0') - *endptr = (WCHAR *)&save[-1]; - else - /* There was no number to convert. */ - *endptr = (WCHAR *)nptr; - } - - return 0L; -} - - -/* format a WCHAR string according to a printf format; helper for vsnprintfW */ -static int format_string( WCHAR *buffer, size_t len, const char *format, const WCHAR *str, int str_len ) -{ - size_t count = 0; - int i, left_align = 0, width = 0, max = 0; - - assert( *format == '%' ); - format++; /* skip '%' */ - - while (*format == '0' || *format == '+' || *format == '-' || *format == ' ' || *format == '#') - { - if (*format == '-') left_align = 1; - format++; - } - - while (isdigit(*format)) width = width * 10 + *format++ - '0'; - - if (str_len == -1) str_len = strlenW( str ); - if (*format == '.') - { - format++; - while (isdigit(*format)) max = max * 10 + *format++ - '0'; - if (max > str_len) max = str_len; - } - else max = str_len; - - if (*format == 'h' || *format == 'l') format++; - - assert( *format == 's' ); - - if (!left_align && width > max) - { - if ((count += width - max) >= len) return -1; - for (i = 0; i < width - max; i++) *buffer++ = ' '; - } - - if ((count += max) >= len) return -1; - memcpy( buffer, str, max * sizeof(WCHAR) ); - buffer += max; - - if (left_align && width > max) - { - if ((count += width - max) >= len) return -1; - for (i = 0; i < width - max; i++) *buffer++ = ' '; - } - return count; -} - -int vsnprintfW(WCHAR *str, size_t len, const WCHAR *format, va_list valist) -{ - unsigned int written = 0; - const WCHAR *iter = format; - char bufa[512], fmtbufa[64], *fmta; - - while (*iter) - { - while (*iter && *iter != '%') - { - if (written++ >= len) - return -1; - *str++ = *iter++; - } - if (*iter == '%') - { - if (iter[1] == '%') - { - if (written++ >= len) - return -1; - *str++ = '%'; /* "%%"->'%' */ - iter += 2; - continue; - } - - fmta = fmtbufa; - *fmta++ = *iter++; - while (*iter == '0' || - *iter == '+' || - *iter == '-' || - *iter == ' ' || - *iter == '*' || - *iter == '#') - { - if (*iter == '*') - { - char *buffiter = bufa; - int fieldlen = va_arg(valist, int); - sprintf(buffiter, "%d", fieldlen); - while (*buffiter) - *fmta++ = *buffiter++; - } - else - *fmta++ = *iter; - iter++; - } - - while (isdigit(*iter)) - *fmta++ = *iter++; - - if (*iter == '.') - { - *fmta++ = *iter++; - if (*iter == '*') - { - char *buffiter = bufa; - int fieldlen = va_arg(valist, int); - sprintf(buffiter, "%d", fieldlen); - while (*buffiter) - *fmta++ = *buffiter++; - iter++; - } - else - while (isdigit(*iter)) - *fmta++ = *iter++; - } - if (*iter == 'h' || *iter == 'l') - *fmta++ = *iter++; - - switch (*iter) - { - case 's': - { - static const WCHAR none[] = { '(','n','u','l','l',')',0 }; - const WCHAR *wstr = va_arg(valist, const WCHAR *); - int count; - - *fmta++ = 's'; - *fmta = 0; - count = format_string( str, len - written, fmtbufa, wstr ? wstr : none, -1 ); - if (count == -1) return -1; - str += count; - written += count; - iter++; - break; - } - - case 'c': - { - WCHAR wstr; - int count; - - wstr = va_arg(valist, int); - *fmta++ = 's'; - *fmta = 0; - count = format_string( str, len - written, fmtbufa, &wstr, 1 ); - if (count == -1) return -1; - str += count; - written += count; - iter++; - break; - } - - default: - { - /* For non wc types, use system sprintf and append to wide char output */ - /* FIXME: for unrecognised types, should ignore % when printing */ - char *bufaiter = bufa; - if (*iter == 'p') - sprintf(bufaiter, "%0*lX", 2 * (int)sizeof(void*), - (unsigned long)va_arg(valist, void *)); - else - { - *fmta++ = *iter; - *fmta = '\0'; - if (*iter == 'a' || *iter == 'A' || - *iter == 'e' || *iter == 'E' || - *iter == 'f' || *iter == 'F' || - *iter == 'g' || *iter == 'G') - sprintf(bufaiter, fmtbufa, va_arg(valist, double)); - else - { - /* FIXME: On 32 bit systems this doesn't handle int 64's. */ - sprintf(bufaiter, fmtbufa, va_arg(valist, void *)); - } - } - while (*bufaiter) - { - if (written++ >= len) - return -1; - *str++ = *bufaiter++; - } - iter++; - break; - } - } - } - } - if (written >= len) - return -1; - *str++ = 0; - return (int)written; -} - -int vsprintfW( WCHAR *str, const WCHAR *format, va_list valist ) -{ - return vsnprintfW( str, INT_MAX, format, valist ); -} - -int snprintfW( WCHAR *str, size_t len, const WCHAR *format, ...) -{ - int retval; - va_list valist; - va_start(valist, format); - retval = vsnprintfW(str, len, format, valist); - va_end(valist); - return retval; -} - -int sprintfW( WCHAR *str, const WCHAR *format, ...) -{ - int retval; - va_list valist; - va_start(valist, format); - retval = vsnprintfW(str, INT_MAX, format, valist); - va_end(valist); - return retval; -} diff --git a/reactos/tools/unicode/utf8.c b/reactos/tools/unicode/utf8.c deleted file mode 100644 index c95bc519155..00000000000 --- a/reactos/tools/unicode/utf8.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - * UTF-8 support routines - * - * Copyright 2000 Alexandre Julliard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -#include "wine/unicode.h" - -extern WCHAR compose( const WCHAR *str ); - -/* number of following bytes in sequence based on first byte value (for bytes above 0x7f) */ -static const char utf8_length[128] = -{ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x80-0x8f */ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x90-0x9f */ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xa0-0xaf */ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xb0-0xbf */ - 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0xc0-0xcf */ - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0xd0-0xdf */ - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, /* 0xe0-0xef */ - 3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0 /* 0xf0-0xff */ -}; - -/* first byte mask depending on UTF-8 sequence length */ -static const unsigned char utf8_mask[4] = { 0x7f, 0x1f, 0x0f, 0x07 }; - -/* minimum Unicode value depending on UTF-8 sequence length */ -static const unsigned int utf8_minval[4] = { 0x0, 0x80, 0x800, 0x10000 }; - - -/* get the next char value taking surrogates into account */ -static inline unsigned int get_surrogate_value( const WCHAR *src, unsigned int srclen ) -{ - if (src[0] >= 0xd800 && src[0] <= 0xdfff) /* surrogate pair */ - { - if (src[0] > 0xdbff || /* invalid high surrogate */ - srclen <= 1 || /* missing low surrogate */ - src[1] < 0xdc00 || src[1] > 0xdfff) /* invalid low surrogate */ - return 0; - return 0x10000 + ((src[0] & 0x3ff) << 10) + (src[1] & 0x3ff); - } - return src[0]; -} - -/* query necessary dst length for src string */ -static inline int get_length_wcs_utf8( int flags, const WCHAR *src, unsigned int srclen ) -{ - int len; - unsigned int val; - - for (len = 0; srclen; srclen--, src++) - { - if (*src < 0x80) /* 0x00-0x7f: 1 byte */ - { - len++; - continue; - } - if (*src < 0x800) /* 0x80-0x7ff: 2 bytes */ - { - len += 2; - continue; - } - if (!(val = get_surrogate_value( src, srclen ))) - { - if (flags & WC_ERR_INVALID_CHARS) return -2; - continue; - } - if (val < 0x10000) /* 0x800-0xffff: 3 bytes */ - len += 3; - else /* 0x10000-0x10ffff: 4 bytes */ - { - len += 4; - src++; - srclen--; - } - } - return len; -} - -/* wide char to UTF-8 string conversion */ -/* return -1 on dst buffer overflow, -2 on invalid input char */ -int wine_utf8_wcstombs( int flags, const WCHAR *src, int srclen, char *dst, int dstlen ) -{ - int len; - - if (!dstlen) return get_length_wcs_utf8( flags, src, srclen ); - - for (len = dstlen; srclen; srclen--, src++) - { - WCHAR ch = *src; - unsigned int val; - - if (ch < 0x80) /* 0x00-0x7f: 1 byte */ - { - if (!len--) return -1; /* overflow */ - *dst++ = ch; - continue; - } - - if (ch < 0x800) /* 0x80-0x7ff: 2 bytes */ - { - if ((len -= 2) < 0) return -1; /* overflow */ - dst[1] = 0x80 | (ch & 0x3f); - ch >>= 6; - dst[0] = 0xc0 | ch; - dst += 2; - continue; - } - - if (!(val = get_surrogate_value( src, srclen ))) - { - if (flags & WC_ERR_INVALID_CHARS) return -2; - continue; - } - - if (val < 0x10000) /* 0x800-0xffff: 3 bytes */ - { - if ((len -= 3) < 0) return -1; /* overflow */ - dst[2] = 0x80 | (val & 0x3f); - val >>= 6; - dst[1] = 0x80 | (val & 0x3f); - val >>= 6; - dst[0] = 0xe0 | val; - dst += 3; - } - else /* 0x10000-0x10ffff: 4 bytes */ - { - if ((len -= 4) < 0) return -1; /* overflow */ - dst[3] = 0x80 | (val & 0x3f); - val >>= 6; - dst[2] = 0x80 | (val & 0x3f); - val >>= 6; - dst[1] = 0x80 | (val & 0x3f); - val >>= 6; - dst[0] = 0xf0 | val; - dst += 4; - src++; - srclen--; - } - } - return dstlen - len; -} - -/* helper for the various utf8 mbstowcs functions */ -static inline unsigned int decode_utf8_char( unsigned char ch, const char **str, const char *strend ) -{ - unsigned int len = utf8_length[ch-0x80]; - unsigned int res = ch & utf8_mask[len]; - const char *end = *str + len; - - if (end > strend) return ~0; - switch(len) - { - case 3: - if ((ch = end[-3] ^ 0x80) >= 0x40) break; - res = (res << 6) | ch; - (*str)++; - case 2: - if ((ch = end[-2] ^ 0x80) >= 0x40) break; - res = (res << 6) | ch; - (*str)++; - case 1: - if ((ch = end[-1] ^ 0x80) >= 0x40) break; - res = (res << 6) | ch; - (*str)++; - if (res < utf8_minval[len]) break; - return res; - } - return ~0; -} - -/* query necessary dst length for src string with composition */ -static inline int get_length_mbs_utf8_compose( int flags, const char *src, int srclen ) -{ - int ret = 0; - unsigned int res; - WCHAR composed[2]; - const char *srcend = src + srclen; - - composed[0] = 0; - while (src < srcend) - { - unsigned char ch = *src++; - if (ch < 0x80) /* special fast case for 7-bit ASCII */ - { - composed[0] = ch; - ret++; - continue; - } - if ((res = decode_utf8_char( ch, &src, srcend )) <= 0xffff) - { - if (composed[0]) - { - composed[1] = res; - if ((composed[0] = compose( composed ))) continue; - } - composed[0] = res; - ret++; - } - else if (res <= 0x10ffff) - { - ret += 2; - composed[0] = 0; /* no composition for surrogates */ - } - else if (flags & MB_ERR_INVALID_CHARS) return -2; /* bad char */ - /* otherwise ignore it */ - } - return ret; -} - -/* UTF-8 to wide char string conversion with composition */ -/* return -1 on dst buffer overflow, -2 on invalid input char */ -static int utf8_mbstowcs_compose( int flags, const char *src, int srclen, WCHAR *dst, int dstlen ) -{ - unsigned int res; - const char *srcend = src + srclen; - WCHAR composed[2]; - WCHAR *dstend = dst + dstlen; - - if (!dstlen) return get_length_mbs_utf8_compose( flags, src, srclen ); - - composed[0] = 0; - while (src < srcend) - { - unsigned char ch = *src++; - if (ch < 0x80) /* special fast case for 7-bit ASCII */ - { - if (dst >= dstend) return -1; /* overflow */ - *dst++ = composed[0] = ch; - continue; - } - if ((res = decode_utf8_char( ch, &src, srcend )) <= 0xffff) - { - if (composed[0]) - { - composed[1] = res; - if ((composed[0] = compose( composed ))) - { - dst[-1] = composed[0]; - continue; - } - } - if (dst >= dstend) return -1; /* overflow */ - *dst++ = composed[0] = res; - } - else if (res <= 0x10ffff) /* we need surrogates */ - { - if (dst >= dstend - 1) return -1; /* overflow */ - res -= 0x10000; - *dst++ = 0xd800 | (res >> 10); - *dst++ = 0xdc00 | (res & 0x3ff); - composed[0] = 0; /* no composition for surrogates */ - } - else if (flags & MB_ERR_INVALID_CHARS) return -2; /* bad char */ - /* otherwise ignore it */ - } - return dstlen - (dstend - dst); -} - -/* query necessary dst length for src string */ -static inline int get_length_mbs_utf8( int flags, const char *src, int srclen ) -{ - int ret = 0; - unsigned int res; - const char *srcend = src + srclen; - - while (src < srcend) - { - unsigned char ch = *src++; - if (ch < 0x80) /* special fast case for 7-bit ASCII */ - { - ret++; - continue; - } - if ((res = decode_utf8_char( ch, &src, srcend )) <= 0x10ffff) - { - if (res > 0xffff) ret++; - ret++; - } - else if (flags & MB_ERR_INVALID_CHARS) return -2; /* bad char */ - /* otherwise ignore it */ - } - return ret; -} - -/* UTF-8 to wide char string conversion */ -/* return -1 on dst buffer overflow, -2 on invalid input char */ -int wine_utf8_mbstowcs( int flags, const char *src, int srclen, WCHAR *dst, int dstlen ) -{ - unsigned int res; - const char *srcend = src + srclen; - WCHAR *dstend = dst + dstlen; - - if (flags & MB_COMPOSITE) return utf8_mbstowcs_compose( flags, src, srclen, dst, dstlen ); - - if (!dstlen) return get_length_mbs_utf8( flags, src, srclen ); - - while ((dst < dstend) && (src < srcend)) - { - unsigned char ch = *src++; - if (ch < 0x80) /* special fast case for 7-bit ASCII */ - { - *dst++ = ch; - continue; - } - if ((res = decode_utf8_char( ch, &src, srcend )) <= 0xffff) - { - *dst++ = res; - } - else if (res <= 0x10ffff) /* we need surrogates */ - { - if (dst == dstend - 1) return -1; /* overflow */ - res -= 0x10000; - *dst++ = 0xd800 | (res >> 10); - *dst++ = 0xdc00 | (res & 0x3ff); - } - else if (flags & MB_ERR_INVALID_CHARS) return -2; /* bad char */ - /* otherwise ignore it */ - } - if (src < srcend) return -1; /* overflow */ - return dstlen - (dstend - dst); -} diff --git a/reactos/tools/unicode/wctomb.c b/reactos/tools/unicode/wctomb.c deleted file mode 100644 index 3b081d45653..00000000000 --- a/reactos/tools/unicode/wctomb.c +++ /dev/null @@ -1,487 +0,0 @@ -/* - * WideCharToMultiByte implementation - * - * Copyright 2000 Alexandre Julliard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -#include "wine/unicode.h" - -/* search for a character in the unicode_compose_table; helper for compose() */ -static inline int binary_search( WCHAR ch, int low, int high ) -{ - extern const WCHAR unicode_compose_table[]; - while (low <= high) - { - int pos = (low + high) / 2; - if (unicode_compose_table[2*pos] < ch) - { - low = pos + 1; - continue; - } - if (unicode_compose_table[2*pos] > ch) - { - high = pos - 1; - continue; - } - return pos; - } - return -1; -} - -/* return the result of the composition of two Unicode chars, or 0 if none */ -WCHAR compose( const WCHAR *str ) -{ - extern const WCHAR unicode_compose_table[]; - extern const unsigned int unicode_compose_table_size; - - int idx = 1, low = 0, high = unicode_compose_table_size - 1; - for (;;) - { - int pos = binary_search( str[idx], low, high ); - if (pos == -1) return 0; - if (!idx--) return unicode_compose_table[2*pos+1]; - low = unicode_compose_table[2*pos+1]; - high = unicode_compose_table[2*pos+3] - 1; - } -} - - -/****************************************************************/ -/* sbcs support */ - -/* check if 'ch' is an acceptable sbcs mapping for 'wch' */ -static inline int is_valid_sbcs_mapping( const struct sbcs_table *table, int flags, - WCHAR wch, unsigned char ch ) -{ - if ((flags & WC_NO_BEST_FIT_CHARS) || ch == (unsigned char)table->info.def_char) - return (table->cp2uni[ch] == wch); - return 1; -} - -/* query necessary dst length for src string */ -static int get_length_sbcs( const struct sbcs_table *table, int flags, - const WCHAR *src, unsigned int srclen, int *used ) -{ - const unsigned char * const uni2cp_low = table->uni2cp_low; - const unsigned short * const uni2cp_high = table->uni2cp_high; - int ret, tmp; - WCHAR composed; - - if (!used) used = &tmp; /* avoid checking on every char */ - *used = 0; - - for (ret = 0; srclen; ret++, src++, srclen--) - { - WCHAR wch = *src; - unsigned char ch; - - if ((flags & WC_COMPOSITECHECK) && (srclen > 1) && (composed = compose(src))) - { - /* now check if we can use the composed char */ - ch = uni2cp_low[uni2cp_high[composed >> 8] + (composed & 0xff)]; - if (is_valid_sbcs_mapping( table, flags, composed, ch )) - { - /* we have a good mapping, use it */ - src++; - srclen--; - continue; - } - /* no mapping for the composed char, check the other flags */ - if (flags & WC_DEFAULTCHAR) /* use the default char instead */ - { - *used = 1; - src++; /* skip the non-spacing char */ - srclen--; - continue; - } - if (flags & WC_DISCARDNS) /* skip the second char of the composition */ - { - src++; - srclen--; - } - /* WC_SEPCHARS is the default */ - } - if (!*used) - { - ch = uni2cp_low[uni2cp_high[wch >> 8] + (wch & 0xff)]; - *used = !is_valid_sbcs_mapping( table, flags, wch, ch ); - } - } - return ret; -} - -/* wcstombs for single-byte code page */ -static inline int wcstombs_sbcs( const struct sbcs_table *table, - const WCHAR *src, unsigned int srclen, - char *dst, unsigned int dstlen ) -{ - const unsigned char * const uni2cp_low = table->uni2cp_low; - const unsigned short * const uni2cp_high = table->uni2cp_high; - int ret = srclen; - - if (dstlen < srclen) - { - /* buffer too small: fill it up to dstlen and return error */ - srclen = dstlen; - ret = -1; - } - - while (srclen >= 16) - { - dst[0] = uni2cp_low[uni2cp_high[src[0] >> 8] + (src[0] & 0xff)]; - dst[1] = uni2cp_low[uni2cp_high[src[1] >> 8] + (src[1] & 0xff)]; - dst[2] = uni2cp_low[uni2cp_high[src[2] >> 8] + (src[2] & 0xff)]; - dst[3] = uni2cp_low[uni2cp_high[src[3] >> 8] + (src[3] & 0xff)]; - dst[4] = uni2cp_low[uni2cp_high[src[4] >> 8] + (src[4] & 0xff)]; - dst[5] = uni2cp_low[uni2cp_high[src[5] >> 8] + (src[5] & 0xff)]; - dst[6] = uni2cp_low[uni2cp_high[src[6] >> 8] + (src[6] & 0xff)]; - dst[7] = uni2cp_low[uni2cp_high[src[7] >> 8] + (src[7] & 0xff)]; - dst[8] = uni2cp_low[uni2cp_high[src[8] >> 8] + (src[8] & 0xff)]; - dst[9] = uni2cp_low[uni2cp_high[src[9] >> 8] + (src[9] & 0xff)]; - dst[10] = uni2cp_low[uni2cp_high[src[10] >> 8] + (src[10] & 0xff)]; - dst[11] = uni2cp_low[uni2cp_high[src[11] >> 8] + (src[11] & 0xff)]; - dst[12] = uni2cp_low[uni2cp_high[src[12] >> 8] + (src[12] & 0xff)]; - dst[13] = uni2cp_low[uni2cp_high[src[13] >> 8] + (src[13] & 0xff)]; - dst[14] = uni2cp_low[uni2cp_high[src[14] >> 8] + (src[14] & 0xff)]; - dst[15] = uni2cp_low[uni2cp_high[src[15] >> 8] + (src[15] & 0xff)]; - src += 16; - dst += 16; - srclen -= 16; - } - - /* now handle remaining characters */ - src += srclen; - dst += srclen; - switch(srclen) - { - case 15: dst[-15] = uni2cp_low[uni2cp_high[src[-15] >> 8] + (src[-15] & 0xff)]; - case 14: dst[-14] = uni2cp_low[uni2cp_high[src[-14] >> 8] + (src[-14] & 0xff)]; - case 13: dst[-13] = uni2cp_low[uni2cp_high[src[-13] >> 8] + (src[-13] & 0xff)]; - case 12: dst[-12] = uni2cp_low[uni2cp_high[src[-12] >> 8] + (src[-12] & 0xff)]; - case 11: dst[-11] = uni2cp_low[uni2cp_high[src[-11] >> 8] + (src[-11] & 0xff)]; - case 10: dst[-10] = uni2cp_low[uni2cp_high[src[-10] >> 8] + (src[-10] & 0xff)]; - case 9: dst[-9] = uni2cp_low[uni2cp_high[src[-9] >> 8] + (src[-9] & 0xff)]; - case 8: dst[-8] = uni2cp_low[uni2cp_high[src[-8] >> 8] + (src[-8] & 0xff)]; - case 7: dst[-7] = uni2cp_low[uni2cp_high[src[-7] >> 8] + (src[-7] & 0xff)]; - case 6: dst[-6] = uni2cp_low[uni2cp_high[src[-6] >> 8] + (src[-6] & 0xff)]; - case 5: dst[-5] = uni2cp_low[uni2cp_high[src[-5] >> 8] + (src[-5] & 0xff)]; - case 4: dst[-4] = uni2cp_low[uni2cp_high[src[-4] >> 8] + (src[-4] & 0xff)]; - case 3: dst[-3] = uni2cp_low[uni2cp_high[src[-3] >> 8] + (src[-3] & 0xff)]; - case 2: dst[-2] = uni2cp_low[uni2cp_high[src[-2] >> 8] + (src[-2] & 0xff)]; - case 1: dst[-1] = uni2cp_low[uni2cp_high[src[-1] >> 8] + (src[-1] & 0xff)]; - case 0: break; - } - return ret; -} - -/* slow version of wcstombs_sbcs that handles the various flags */ -static int wcstombs_sbcs_slow( const struct sbcs_table *table, int flags, - const WCHAR *src, unsigned int srclen, - char *dst, unsigned int dstlen, - const char *defchar, int *used ) -{ - const unsigned char * const uni2cp_low = table->uni2cp_low; - const unsigned short * const uni2cp_high = table->uni2cp_high; - unsigned char def; - unsigned int len; - int tmp; - WCHAR composed; - - if (!defchar) - def = table->info.def_char & 0xff; - else - def = *defchar; - - if (!used) used = &tmp; /* avoid checking on every char */ - *used = 0; - - for (len = dstlen; srclen && len; dst++, len--, src++, srclen--) - { - WCHAR wch = *src; - - if ((flags & WC_COMPOSITECHECK) && (srclen > 1) && (composed = compose(src))) - { - /* now check if we can use the composed char */ - *dst = uni2cp_low[uni2cp_high[composed >> 8] + (composed & 0xff)]; - if (is_valid_sbcs_mapping( table, flags, composed, *dst )) - { - /* we have a good mapping, use it */ - src++; - srclen--; - continue; - } - /* no mapping for the composed char, check the other flags */ - if (flags & WC_DEFAULTCHAR) /* use the default char instead */ - { - *dst = def; - *used = 1; - src++; /* skip the non-spacing char */ - srclen--; - continue; - } - if (flags & WC_DISCARDNS) /* skip the second char of the composition */ - { - src++; - srclen--; - } - /* WC_SEPCHARS is the default */ - } - - *dst = uni2cp_low[uni2cp_high[wch >> 8] + (wch & 0xff)]; - if (!is_valid_sbcs_mapping( table, flags, wch, *dst )) - { - *dst = def; - *used = 1; - } - } - if (srclen) return -1; /* overflow */ - return dstlen - len; -} - - -/****************************************************************/ -/* dbcs support */ - -/* check if 'ch' is an acceptable dbcs mapping for 'wch' */ -static inline int is_valid_dbcs_mapping( const struct dbcs_table *table, int flags, - WCHAR wch, unsigned short ch ) -{ - if ((flags & WC_NO_BEST_FIT_CHARS) || ch == table->info.def_char) - { - /* check if char maps back to the same Unicode value */ - if (ch & 0xff00) - { - unsigned char off = table->cp2uni_leadbytes[ch >> 8]; - return (table->cp2uni[(off << 8) + (ch & 0xff)] == wch); - } - return (table->cp2uni[ch & 0xff] == wch); - } - return 1; -} - -/* query necessary dst length for src string */ -static int get_length_dbcs( const struct dbcs_table *table, int flags, - const WCHAR *src, unsigned int srclen, - const char *defchar, int *used ) -{ - const unsigned short * const uni2cp_low = table->uni2cp_low; - const unsigned short * const uni2cp_high = table->uni2cp_high; - WCHAR defchar_value = table->info.def_char; - WCHAR composed; - int len, tmp; - - if (!defchar && !used && !(flags & WC_COMPOSITECHECK)) - { - for (len = 0; srclen; srclen--, src++, len++) - { - if (uni2cp_low[uni2cp_high[*src >> 8] + (*src & 0xff)] & 0xff00) len++; - } - return len; - } - - if (defchar) defchar_value = defchar[1] ? ((defchar[0] << 8) | defchar[1]) : defchar[0]; - if (!used) used = &tmp; /* avoid checking on every char */ - *used = 0; - for (len = 0; srclen; len++, srclen--, src++) - { - unsigned short res; - WCHAR wch = *src; - - if ((flags & WC_COMPOSITECHECK) && (srclen > 1) && (composed = compose(src))) - { - /* now check if we can use the composed char */ - res = uni2cp_low[uni2cp_high[composed >> 8] + (composed & 0xff)]; - - if (is_valid_dbcs_mapping( table, flags, composed, res )) - { - /* we have a good mapping for the composed char, use it */ - if (res & 0xff00) len++; - src++; - srclen--; - continue; - } - /* no mapping for the composed char, check the other flags */ - if (flags & WC_DEFAULTCHAR) /* use the default char instead */ - { - if (defchar_value & 0xff00) len++; - *used = 1; - src++; /* skip the non-spacing char */ - srclen--; - continue; - } - if (flags & WC_DISCARDNS) /* skip the second char of the composition */ - { - src++; - srclen--; - } - /* WC_SEPCHARS is the default */ - } - - res = uni2cp_low[uni2cp_high[wch >> 8] + (wch & 0xff)]; - if (!is_valid_dbcs_mapping( table, flags, wch, res )) - { - res = defchar_value; - *used = 1; - } - if (res & 0xff00) len++; - } - return len; -} - -/* wcstombs for double-byte code page */ -static inline int wcstombs_dbcs( const struct dbcs_table *table, - const WCHAR *src, unsigned int srclen, - char *dst, unsigned int dstlen ) -{ - const unsigned short * const uni2cp_low = table->uni2cp_low; - const unsigned short * const uni2cp_high = table->uni2cp_high; - int len; - - for (len = dstlen; srclen && len; len--, srclen--, src++) - { - unsigned short res = uni2cp_low[uni2cp_high[*src >> 8] + (*src & 0xff)]; - if (res & 0xff00) - { - if (len == 1) break; /* do not output a partial char */ - len--; - *dst++ = res >> 8; - } - *dst++ = (char)res; - } - if (srclen) return -1; /* overflow */ - return dstlen - len; -} - -/* slow version of wcstombs_dbcs that handles the various flags */ -static int wcstombs_dbcs_slow( const struct dbcs_table *table, int flags, - const WCHAR *src, unsigned int srclen, - char *dst, unsigned int dstlen, - const char *defchar, int *used ) -{ - const unsigned short * const uni2cp_low = table->uni2cp_low; - const unsigned short * const uni2cp_high = table->uni2cp_high; - WCHAR defchar_value = table->info.def_char; - WCHAR composed; - int len, tmp; - - if (defchar) defchar_value = defchar[1] ? ((defchar[0] << 8) | defchar[1]) : defchar[0]; - if (!used) used = &tmp; /* avoid checking on every char */ - *used = 0; - - for (len = dstlen; srclen && len; len--, srclen--, src++) - { - unsigned short res; - WCHAR wch = *src; - - if ((flags & WC_COMPOSITECHECK) && (srclen > 1) && (composed = compose(src))) - { - /* now check if we can use the composed char */ - res = uni2cp_low[uni2cp_high[composed >> 8] + (composed & 0xff)]; - - if (is_valid_dbcs_mapping( table, flags, composed, res )) - { - /* we have a good mapping for the composed char, use it */ - src++; - srclen--; - goto output_char; - } - /* no mapping for the composed char, check the other flags */ - if (flags & WC_DEFAULTCHAR) /* use the default char instead */ - { - res = defchar_value; - *used = 1; - src++; /* skip the non-spacing char */ - srclen--; - goto output_char; - } - if (flags & WC_DISCARDNS) /* skip the second char of the composition */ - { - src++; - srclen--; - } - /* WC_SEPCHARS is the default */ - } - - res = uni2cp_low[uni2cp_high[wch >> 8] + (wch & 0xff)]; - if (!is_valid_dbcs_mapping( table, flags, wch, res )) - { - res = defchar_value; - *used = 1; - } - - output_char: - if (res & 0xff00) - { - if (len == 1) break; /* do not output a partial char */ - len--; - *dst++ = res >> 8; - } - *dst++ = (char)res; - } - if (srclen) return -1; /* overflow */ - return dstlen - len; -} - -/* wide char to multi byte string conversion */ -/* return -1 on dst buffer overflow */ -int wine_cp_wcstombs( const union cptable *table, int flags, - const WCHAR *src, int srclen, - char *dst, int dstlen, const char *defchar, int *used ) -{ - if (table->info.char_size == 1) - { - if (flags || defchar || used) - { - if (!dstlen) return get_length_sbcs( &table->sbcs, flags, src, srclen, used ); - return wcstombs_sbcs_slow( &table->sbcs, flags, src, srclen, - dst, dstlen, defchar, used ); - } - if (!dstlen) return srclen; - return wcstombs_sbcs( &table->sbcs, src, srclen, dst, dstlen ); - } - else /* mbcs */ - { - if (!dstlen) return get_length_dbcs( &table->dbcs, flags, src, srclen, defchar, used ); - if (flags || defchar || used) - return wcstombs_dbcs_slow( &table->dbcs, flags, src, srclen, - dst, dstlen, defchar, used ); - return wcstombs_dbcs( &table->dbcs, src, srclen, dst, dstlen ); - } -} - -/* CP_SYMBOL implementation */ -/* return -1 on dst buffer overflow, -2 on invalid character */ -int wine_cpsymbol_wcstombs( const WCHAR *src, int srclen, char *dst, int dstlen) -{ - int len, i; - if( dstlen == 0) return srclen; - len = dstlen > srclen ? srclen : dstlen; - for( i = 0; i < len; i++) - { - WCHAR w = src [ i ]; - if( w < 0x20 ) - dst[i] = w; - else if( w >= 0xf020 && w < 0xf100) - dst[i] = w - 0xf000; - else - return -2; - } - if( srclen > len) return -1; - return len; -} diff --git a/reactos/tools/unicode/wctype.c b/reactos/tools/unicode/wctype.c deleted file mode 100644 index 12ce9c85fb0..00000000000 --- a/reactos/tools/unicode/wctype.c +++ /dev/null @@ -1,2154 +0,0 @@ -/* Unicode ctype tables */ -/* Automatically generated; DO NOT EDIT!! */ - -#include "wine/unicode.h" - -const unsigned short wine_wctype_table[17152] = -{ - /* offsets */ - 0x0100, 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, - 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x0e00, 0x0f00, 0x1000, - 0x1100, 0x1200, 0x1300, 0x1400, 0x1500, 0x1200, 0x1600, 0x1700, - 0x1800, 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, 0x1f00, - 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, - 0x2800, 0x2900, 0x2500, 0x2a00, 0x2b00, 0x2c00, 0x2d00, 0x2e00, - 0x2f00, 0x3000, 0x3100, 0x3200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x3300, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x3400, - 0x1200, 0x1200, 0x1200, 0x1200, 0x3500, 0x1200, 0x3600, 0x3700, - 0x3800, 0x3900, 0x3a00, 0x3b00, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x3c00, - 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, - 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, - 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, - 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, - 0x2800, 0x1200, 0x3d00, 0x3e00, 0x3f00, 0x4000, 0x4100, 0x4200, - /* values */ - 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, - 0xe220, 0x9268, 0x8228, 0x9228, 0xa228, 0x8228, 0xe220, 0xe220, - 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, - 0xe220, 0xe220, 0xe220, 0xe220, 0x8220, 0x8220, 0x8220, 0x9220, - 0xa248, 0xb210, 0xb210, 0x5210, 0x5210, 0x5210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0x4210, 0x7210, 0x4210, 0x7210, 0x7210, - 0x3284, 0x3284, 0x3284, 0x3284, 0x3284, 0x3284, 0x3284, 0x3284, - 0x3284, 0x3284, 0x7210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0x1381, 0x1381, 0x1381, 0x1381, 0x1381, 0x1381, 0x1301, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1301, 0x1301, 0x1301, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0x1382, 0x1382, 0x1382, 0x1382, 0x1382, 0x1382, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0xb210, 0xb210, 0xb210, 0xb210, 0xe220, - 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0x8228, 0xe220, 0xe220, - 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, - 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, - 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, - 0x7248, 0xb210, 0x5210, 0x5210, 0x5210, 0x5210, 0xb210, 0xb210, - 0xb210, 0xb210, 0x1312, 0xb210, 0xb210, 0xe230, 0xb210, 0xb210, - 0x5210, 0x5210, 0x3214, 0x3214, 0xb210, 0x1312, 0xb210, 0xb210, - 0xb210, 0x3214, 0x1312, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0xb210, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0xb210, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, - 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, - 0x1302, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1302, - 0x1302, 0x1301, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1301, - 0x1302, 0x1301, 0x1301, 0x1301, 0x1302, 0x1302, 0x1301, 0x1301, - 0x1301, 0x1301, 0x1302, 0x1301, 0x1301, 0x1302, 0x1301, 0x1301, - 0x1301, 0x1302, 0x1302, 0x1302, 0x1301, 0x1301, 0x1302, 0x1301, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1301, - 0x1302, 0x1301, 0x1302, 0x1302, 0x1301, 0x1302, 0x1301, 0x1301, - 0x1302, 0x1301, 0x1301, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, - 0x1301, 0x1302, 0x1302, 0x1300, 0x1301, 0x1302, 0x1302, 0x1302, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1301, 0x1303, 0x1302, 0x1301, - 0x1303, 0x1302, 0x1301, 0x1303, 0x1302, 0x1301, 0x1302, 0x1301, - 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, - 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1302, 0x1301, 0x1303, 0x1302, 0x1301, 0x1302, 0x1301, 0x1301, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1301, 0x1301, 0x1302, 0x1301, 0x1301, 0x1302, - 0x1302, 0x1301, 0x1302, 0x1301, 0x1301, 0x1301, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 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, 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, 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, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0xb300, 0xb300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0xb200, 0xb200, 0xb200, 0xb200, 0xb300, 0xb300, - 0xb300, 0xb300, 0xb300, 0xb300, 0xb300, 0xb300, 0xb300, 0xb300, - 0x1300, 0x1300, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb300, 0xb200, 0x1300, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0x1301, 0x1302, 0x1301, 0x1302, 0xb300, 0xb200, 0x1301, 0x1302, - 0x0000, 0x0000, 0x1300, 0x1302, 0x1302, 0x1302, 0xb210, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xb200, 0xb200, 0x1301, 0xb210, - 0x1301, 0x1301, 0x1301, 0x0000, 0x1301, 0x0000, 0x1301, 0x1301, - 0x1302, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1301, 0x1301, 0x0000, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1301, 0x1301, 0x1301, 0x1301, 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, 0x1301, - 0x1302, 0x1302, 0x1301, 0x1301, 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, 0x1302, 0x1301, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1301, 0x1302, 0xb200, 0x1301, - 0x1302, 0x1301, 0x1301, 0x1302, 0x1302, 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, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 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, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, - 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 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, 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, 0x0000, 0x0000, 0x0000, - 0x0000, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x2210, 0xd200, - 0x2210, 0xd200, 0xd200, 0x2210, 0xd200, 0xd200, 0x2210, 0xd200, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, 0x2210, 0x2210, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x6220, 0x6220, 0x6220, 0x6220, 0x0000, 0x0000, 0xb200, 0xb200, - 0xc200, 0x5210, 0x5210, 0xc200, 0x7210, 0xc210, 0xb200, 0xb200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xc210, 0x0000, 0x0000, 0xc210, 0xc210, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0x6204, 0x6204, 0x6204, 0x6204, 0x6204, 0x6204, 0x6204, 0x6204, - 0x6204, 0x6204, 0x5210, 0x6210, 0x6210, 0xc210, 0xc300, 0xc300, - 0xd200, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc210, 0xc300, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x6220, 0xb200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xc300, 0xc300, 0xd200, - 0xd200, 0xb200, 0xd200, 0xd200, 0xd200, 0xd200, 0xc300, 0xc300, - 0x3204, 0x3204, 0x3204, 0x3204, 0x3204, 0x3204, 0x3204, 0x3204, - 0x3204, 0x3204, 0xc300, 0xc300, 0xc300, 0xc200, 0xc200, 0xc300, - 0xc210, 0xc210, 0xc210, 0xc210, 0xc210, 0xc210, 0xc210, 0xc210, - 0xc210, 0xc210, 0xc210, 0xc210, 0xc210, 0xc210, 0x0000, 0x6220, - 0xc300, 0xd200, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xc300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2204, 0x2204, 0x2204, 0x2204, 0x2204, 0x2204, 0x2204, 0x2204, - 0x2204, 0x2204, 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, 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, - 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, - 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, - 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0xd200, 0xd200, - 0xd200, 0xd200, 0x2300, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0x2300, 0xd200, 0xd200, 0xd200, - 0x2300, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, - 0x2210, 0x2210, 0x2210, 0x2210, 0x2210, 0x2210, 0x2210, 0x2210, - 0x2210, 0x2210, 0x2210, 0x2210, 0x2210, 0x2210, 0x2210, 0x0000, - 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, 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, 0x2210, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 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, 0x1200, 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, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0xd200, 0x1200, 0xd200, 0x1300, 0x1200, 0x1200, - 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0x1200, 0x1200, 0x1200, 0x1200, 0xd200, 0x1200, 0x1200, - 0x1300, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0xd200, 0xd200, 0x1210, 0x1210, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1210, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x0000, 0xd200, 0x1200, 0x1200, 0x0000, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x1300, - 0x1300, 0x0000, 0x0000, 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, 0x0000, 0x1300, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, - 0x1300, 0x1300, 0x0000, 0x0000, 0xd200, 0x1300, 0x1200, 0x1200, - 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, 0x1200, - 0x1200, 0x0000, 0x0000, 0x1200, 0x1200, 0xd200, 0x1300, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1200, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, 0x0000, 0x1300, - 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, 0x0000, 0x0000, 0x0000, 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, - 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, 0x0000, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x0000, - 0x1300, 0x1300, 0x0000, 0x0000, 0xd200, 0x0000, 0x1200, 0x1200, - 0x1200, 0xd200, 0xd200, 0x0000, 0x0000, 0x0000, 0x0000, 0xd200, - 0xd200, 0x0000, 0x0000, 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, - 0x0000, 0xd200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xd200, 0xd200, 0x1200, 0x0000, 0x1300, 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, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x0000, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x0000, 0x0000, 0xd200, 0x1300, 0x1200, 0x1200, - 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, 0xd200, - 0xd200, 0x1200, 0x0000, 0x1200, 0x1200, 0xd200, 0x0000, 0x0000, - 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1300, 0x1300, 0xd200, 0xd200, 0x0000, 0x0000, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x0000, 0x5200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xd200, 0x1200, 0x1200, 0x0000, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x1300, - 0x1300, 0x0000, 0x0000, 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, 0x0000, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x0000, 0x0000, 0xd200, 0x1300, 0x1200, 0xd200, - 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, 0x1200, - 0x1200, 0x0000, 0x0000, 0x1200, 0x1200, 0xd200, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd200, 0x1200, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, 0x0000, 0x1300, - 0x1300, 0x1300, 0xd200, 0xd200, 0x0000, 0x0000, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1200, 0x1300, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xd200, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, - 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, - 0x0000, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0x1300, 0x1300, - 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x1200, 0x1200, - 0xd200, 0x1200, 0x1200, 0x0000, 0x0000, 0x0000, 0x1200, 0x1200, - 0x1200, 0x0000, 0x1200, 0x1200, 0x1200, 0xd200, 0x0000, 0x0000, - 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1200, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1200, 0x1200, 0x1200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0x5200, 0xb200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x1200, 0x1200, 0x1200, 0x0000, 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, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x1300, 0xd200, 0xd200, - 0xd200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0000, 0xd200, 0xd200, - 0xd200, 0x0000, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd200, 0xd200, 0x0000, - 0x1300, 0x1300, 0x0000, 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, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0x1200, - 0x0000, 0x0000, 0x1200, 0x1200, 0x0000, 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, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x0000, 0x0000, 0xd200, 0x1300, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0000, 0x1200, 0x1200, - 0x1200, 0x0000, 0x1200, 0x1200, 0xd200, 0xd200, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1200, 0x1200, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x0000, - 0x1300, 0x1300, 0xd200, 0xd200, 0x0000, 0x0000, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x0000, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x1200, 0x1200, 0x0000, 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, - 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, 0x1300, 0x1200, 0x1200, - 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, 0x1200, 0x1200, - 0x1200, 0x0000, 0x1200, 0x1200, 0x1200, 0xd200, 0x1300, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1200, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1300, 0x1300, 0xd200, 0xd200, 0x0000, 0x0000, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0000, 0x0000, - 0x0000, 0x1200, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x0000, 0x0000, 0x1200, 0x1200, 0x0000, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 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, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x0000, 0x0000, 0xd200, 0x0000, 0x0000, 0x0000, 0x0000, 0x1200, - 0x1200, 0x1200, 0xd200, 0xd200, 0xd200, 0x0000, 0xd200, 0x0000, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x1200, 0x1200, 0x1210, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0xd200, 0x1300, 0x1300, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, 0x0000, 0x0000, 0x5200, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1210, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1210, 0x1210, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 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, - 0x1300, 0xd200, 0x1300, 0x1300, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0x0000, 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, - 0x1204, 0x1204, 0x0000, 0x0000, 0x1300, 0x1300, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, 0x1200, 0x1200, 0x1200, 0x1210, 0x1210, 0x1210, 0x1210, - 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, - 0x1210, 0x1210, 0x1210, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0xd200, 0xd200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0xd200, 0x1200, 0xd200, - 0x1200, 0xd200, 0xb210, 0xb210, 0xb210, 0xb210, 0x1200, 0x1200, - 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, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, - 0x0000, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1210, 0xd200, 0xd200, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0x0000, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0xd200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0000, 0x1200, 0x1200, - 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1210, 0x1210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, 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, 0x1200, 0x1200, 0xd200, 0xd200, 0xd200, - 0xd200, 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0x1200, 0xd200, 0xd200, 0x1200, 0x1200, 0xd200, 0xd200, 0x1300, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1200, 0x1200, - 0xd200, 0xd200, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0xd200, - 0xd200, 0x1300, 0x1200, 0x1200, 0x1200, 0x1300, 0x1300, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1300, 0x1300, - 0x1300, 0xd200, 0xd200, 0xd200, 0xd200, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0xd200, 0x1200, 0x1200, 0xd200, 0xd200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0xd200, 0x1300, 0x1200, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1200, 0x1200, 0x1200, 0xd200, 0x1200, 0x1200, - 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, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, 0x0000, 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, 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, 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, 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, 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, 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, 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, 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, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 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, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 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, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 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, 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, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 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, 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, 0xd200, 0xd200, 0xd200, - 0x1200, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, - 0x1210, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0000, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0x0000, 0x0000, 0x0000, 0x0000, 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, 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, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb210, 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, 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, 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, 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, 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, - 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, 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, 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, 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, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0xa208, 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, 0xb210, 0xb210, 0x0000, 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, 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, 0x1210, 0x1210, 0x1300, 0x1300, - 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, - 0x1300, 0x1300, 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0xd200, 0xd200, 0xd200, 0x1210, 0x1210, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0xd200, 0xd200, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, - 0x1300, 0x0000, 0xd200, 0xd200, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1220, 0x1220, 0x1200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0xd200, 0x1200, - 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0x1210, 0x1210, 0x1210, 0x1300, - 0x1210, 0x1210, 0x1210, 0x5200, 0x1300, 0xd200, 0x0000, 0x0000, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xd200, 0xd200, 0xd200, 0xa208, 0x0000, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x0000, 0x0000, 0x0000, 0x0000, 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, 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, 0x1300, 0x1300, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, 0xd200, 0x1300, 0x0000, 0x0000, 0x0000, 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, 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, 0x0000, 0x0000, 0x0000, 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, 0x0000, 0x0000, 0x0000, - 0xd200, 0xd200, 0xd200, 0x1200, 0x1200, 0x1200, 0x1200, 0xd200, - 0xd200, 0x1200, 0x1200, 0x1200, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1200, 0x1200, 0xd200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb200, 0x0000, 0x0000, 0x0000, 0xb210, 0xb210, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 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, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1200, 0x1200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1200, 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, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, - 0xd200, 0x1200, 0x1200, 0x1200, 0x0000, 0x0000, 0x1210, 0x1210, - 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, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1200, 0xd200, 0x1200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, - 0xd200, 0x1200, 0xd200, 0x1200, 0x1200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, 0xd200, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1300, - 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 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, 0x1200, 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, - 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0x1200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0x1200, 0xd200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0xd200, 0x1200, 0x1200, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, - 0x1210, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0000, 0x0000, 0x0000, - 0xd200, 0xd200, 0x1200, 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, 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1200, 0x1200, - 0xd200, 0xd200, 0x1200, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x0000, 0x0000, 0x0000, 0x0000, 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, 0xd200, 0x1200, - 0xd200, 0xd200, 0x1200, 0x1200, 0x1200, 0xd200, 0x1200, 0xd200, - 0xd200, 0xd200, 0x1200, 0x1200, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1210, 0x1210, 0x1210, 0x1210, - 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, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0x1200, 0x1200, 0xd200, 0xd200, - 0x0000, 0x0000, 0x0000, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 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, 0x1210, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 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, 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 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, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 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, 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, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 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, 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, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 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, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x0000, 0x0000, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x0000, 0x0000, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x0000, 0x0000, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x0000, 0x0000, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x0000, 0x1301, 0x0000, 0x1301, 0x0000, 0x1301, 0x0000, 0x1301, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x0000, 0x0000, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, 0x1303, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x0000, 0x1302, 0x1302, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1303, 0xb200, 0x1302, 0xb200, - 0xb200, 0xb200, 0x1302, 0x1302, 0x1302, 0x0000, 0x1302, 0x1302, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1303, 0xb200, 0xb200, 0xb200, - 0x1302, 0x1302, 0x1302, 0x1302, 0x0000, 0x0000, 0x1302, 0x1302, - 0x1301, 0x1301, 0x1301, 0x1301, 0x0000, 0xb200, 0xb200, 0xb200, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0xb200, 0xb200, 0xb200, - 0x0000, 0x0000, 0x1302, 0x1302, 0x1302, 0x0000, 0x1302, 0x1302, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1303, 0xb200, 0xb200, 0x0000, - 0xa208, 0xa208, 0xa208, 0xa208, 0xa208, 0xa208, 0xa208, 0xa208, - 0xa208, 0xa208, 0xa208, 0xe220, 0xe220, 0xe220, 0x1220, 0x2220, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xa208, 0x8208, 0xf220, 0xf220, 0xf220, 0xf220, 0xf220, 0x7208, - 0x5210, 0x5210, 0x5210, 0x5210, 0x5210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0x7200, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb200, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xa208, - 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, - 0x3200, 0x1302, 0x0000, 0x0000, 0x3200, 0x3200, 0x3200, 0x3200, - 0x3200, 0x3200, 0x4200, 0x4200, 0xb200, 0xb210, 0xb210, 0x1302, - 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, - 0x3200, 0x3200, 0x4200, 0x4200, 0xb200, 0xb210, 0xb210, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, - 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, - 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, - 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, - 0x5200, 0x5200, 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, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb200, 0xb200, 0x1301, 0xb200, 0xb200, 0xb200, 0xb200, 0x1301, - 0xb200, 0xb200, 0x1302, 0x1301, 0x1301, 0x1301, 0x1302, 0x1302, - 0x1301, 0x1301, 0x1301, 0x1302, 0xb200, 0x1301, 0xb200, 0xb200, - 0xb200, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0x1301, 0xb200, 0x1301, 0xb200, - 0x1301, 0xb200, 0x1301, 0x1301, 0x1301, 0x1301, 0x5200, 0x1302, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1302, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1302, 0xb200, 0xb200, 0x1302, 0x1302, 0x1301, 0x1301, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0x1301, 0x1302, 0x1302, - 0x1302, 0x1302, 0xb200, 0xb200, 0xb200, 0xb200, 0x1302, 0x1200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 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, 0x1301, 0x1302, 0x1300, 0x1300, 0x1300, - 0x1300, 0xb200, 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, - 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, - 0xb200, 0xb200, 0x4200, 0x5200, 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, 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, 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, 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, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb210, 0xb210, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 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, 0x1200, 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, 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, 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, 0x0000, - 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, 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, - 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, - 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, - 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, 0x3200, - 0x3200, 0x3200, 0x3200, 0x3200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 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, 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, 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, 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, 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, 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, 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, 0xb200, 0xb200, 0x1200, 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, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 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, 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, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 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, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb210, 0xb210, 0xb200, - 0xb200, 0xb200, 0xb200, 0x0000, 0xb200, 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, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 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, - 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, - 0xb200, 0xb200, 0xb200, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 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, - 0xb210, 0xb210, 0xb210, 0xb210, 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, 0xb210, 0xb210, 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, 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, 0x1301, 0x1301, 0x1301, 0x1301, 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, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x0000, - 0x1301, 0x1302, 0x1301, 0x1301, 0x1301, 0x1302, 0x1302, 0x1301, - 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1301, 0x1301, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1302, 0x1301, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1300, 0x1301, 0x1301, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1302, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0x1301, 0x1302, 0x1301, 0x1302, 0xd200, - 0xd200, 0xd200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xb210, 0xb210, 0xb210, 0xb210, 0xb200, 0xb210, 0xb210, - 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, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, - 0x1210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd200, - 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, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 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, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb300, - 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 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, 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, 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, - 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, - 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, - 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, 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, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0x0000, 0x0000, 0x0000, 0x0000, - 0xa248, 0xb210, 0xb210, 0xb210, 0xb200, 0x1300, 0x1300, 0x1300, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb200, 0xb200, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb200, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xb210, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xb200, 0xb200, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xb210, 0xb200, 0xb200, - 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, 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, 0x0000, - 0x0000, 0xd200, 0xd200, 0xb200, 0xb200, 0x1300, 0x1300, 0x1300, - 0xb210, 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, 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, 0x1300, - 0x1300, 0x1300, 0x1300, 0xb210, 0x1300, 0x1300, 0x1300, 0x1300, - 0x0000, 0x0000, 0x0000, 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, 0x0000, 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, 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, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 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, - 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, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0xb200, 0xb200, 0x0000, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0xb200, 0xb200, 0xb200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0xb200, 0xb200, 0xb200, 0xb200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0000, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0xb200, - 0xb200, 0xb200, 0xb200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0xb200, 0xb200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0xb200, - 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, 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, 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, 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, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 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, - 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, 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, 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, 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, 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, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, 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, 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, - 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, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 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, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, 0x1300, 0x1300, 0x1300, 0x1210, 0x1210, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xb210, 0xb210, 0xb210, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1300, 0xd200, - 0xd200, 0xd200, 0xd200, 0xb210, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xd200, 0xd200, 0xb210, 0xb300, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, 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, - 0xd200, 0xd200, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, - 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, 0xb300, - 0xb300, 0xb300, 0xb300, 0xb300, 0xb300, 0xb300, 0xb300, 0xb300, - 0xb200, 0xb200, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 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, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1300, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0xb300, 0x1200, 0x1200, 0x1301, 0x1302, 0x1301, 0x1302, 0x0000, - 0x1301, 0x1302, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x1302, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0xd200, 0x1300, 0x1300, 0x1300, 0xd200, 0x1300, - 0x1300, 0x1300, 0x1300, 0xd200, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1200, 0x1200, 0xd200, 0xd200, 0x1200, - 0xb200, 0xb200, 0xb200, 0xb200, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x5200, 0x5200, 0x0000, 0x0000, 0x0000, 0x0000, 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, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0xb210, 0xb210, 0xb210, 0xb210, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1200, 0x1200, 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, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x1200, 0xd200, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1210, 0x1210, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 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, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1210, 0x1210, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0x1200, 0x1200, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1210, - 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, 0x0000, 0x0000, - 0xd200, 0xd200, 0xd200, 0x1200, 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, 0x1300, - 0x1300, 0x1300, 0x1300, 0xd200, 0x1200, 0x1200, 0xd200, 0xd200, - 0xd200, 0xd200, 0x1200, 0x1200, 0xd200, 0x1200, 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, - 0x1204, 0x1204, 0x0000, 0x0000, 0x0000, 0x0000, 0x1210, 0x1210, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, 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, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1200, - 0x1200, 0xd200, 0xd200, 0x1200, 0x1200, 0xd200, 0xd200, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0xd200, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0x1200, 0x0000, 0x0000, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x0000, 0x0000, 0x1210, 0x1210, 0x1210, 0x1210, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1200, - 0x1200, 0x1200, 0x1300, 0x1200, 0x0000, 0x0000, 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, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0xd200, 0x1300, 0xd200, 0xd200, 0xd200, 0x1300, 0x1300, 0xd200, - 0xd200, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0xd200, - 0x1300, 0xd200, 0x1300, 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, 0x1300, 0x1210, 0x1210, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 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, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, 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, 0x1200, 0x1200, 0xd200, 0x1200, 0x1200, - 0xd200, 0x1200, 0x1200, 0x1210, 0x1200, 0xd200, 0x0000, 0x0000, - 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x1204, 0x1204, 0x0000, 0x0000, 0x0000, 0x0000, 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, 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, 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, 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, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, 0x0000, - 0x0000, 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, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 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, 0x1300, 0x1300, 0x1300, 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, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 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, 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, 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2300, 0xd200, 0x2300, - 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, - 0x2300, 0x4200, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, - 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x0000, - 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x0000, 0x2300, 0x0000, - 0x2300, 0x2300, 0x0000, 0x2300, 0x2300, 0x0000, 0x2300, 0x2300, - 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc200, 0xc200, 0xc200, 0xc200, 0xc200, 0xc200, - 0xc200, 0xc200, 0xc200, 0xc200, 0xc200, 0xc200, 0xc200, 0xc200, - 0xc200, 0xc200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xb210, 0xb210, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0x0000, 0x0000, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 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, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc200, 0xb200, 0x0000, 0x0000, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0x7210, 0xb210, 0x7210, 0x0000, 0xb210, 0x7210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0x5210, - 0xb210, 0xb210, 0x4200, 0x4210, 0xb200, 0xb200, 0xb200, 0x0000, - 0xb210, 0x5200, 0x5210, 0xb210, 0x0000, 0x0000, 0x0000, 0x0000, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0x0000, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, - 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0x0000, 0x0000, 0xe260, - 0x0000, 0xb210, 0xb210, 0x5210, 0x5200, 0x5210, 0xb210, 0xb210, - 0xb210, 0xb210, 0xb210, 0x4200, 0x7210, 0x4210, 0x7210, 0x7210, - 0x3284, 0x3284, 0x3284, 0x3284, 0x3284, 0x3284, 0x3284, 0x3284, - 0x3284, 0x3284, 0x7210, 0xb210, 0xb200, 0xb200, 0xb200, 0xb210, - 0xb210, 0x1381, 0x1381, 0x1381, 0x1381, 0x1381, 0x1381, 0x1301, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, - 0x1301, 0x1301, 0x1301, 0xb210, 0xb210, 0xb210, 0xb200, 0xb210, - 0xb200, 0x1382, 0x1382, 0x1382, 0x1382, 0x1382, 0x1382, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x1302, 0x1302, 0x1302, 0xb210, 0xb200, 0xb210, 0xb200, 0xb210, - 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 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, 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, 0x1300, 0x1300, 0x1300, 0x0000, - 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, - 0x5200, 0x5200, 0xb200, 0xb200, 0xb200, 0x5200, 0x5200, 0x0000, - 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xb220, 0xb220, 0xb220, 0xb200, 0xb200, 0x0000, 0x0000 -}; diff --git a/reactos/tools/unicode/wine_unicode.def b/reactos/tools/unicode/wine_unicode.def deleted file mode 100644 index e582d88c29d..00000000000 --- a/reactos/tools/unicode/wine_unicode.def +++ /dev/null @@ -1,58 +0,0 @@ -LIBRARY libwine_unicode.dll - -EXPORTS - atoiW - atolW - get_char_typeW - isalnumW - isalphaW - iscntrlW - isdigitW - isgraphW - islowerW - isprintW - ispunctW - isspaceW - isupperW - isxdigitW - memchrW - memicmpW - memrchrW - snprintfW - sprintfW - strcatW - strchrW - strcmpW - strcmpiW - strcpyW - strcspnW - strlenW - strlwrW - strncmpW - strncmpiW - strpbrkW - strrchrW - strspnW - strstrW - strtolW - strtoulW - struprW - tolowerW - toupperW - vsnprintfW - vsprintfW - wine_casemap_lower - wine_casemap_upper - wine_compare_string - wine_cp_enum_table - wine_cp_get_table - wine_cp_mbstowcs - wine_cp_wcstombs - wine_cpsymbol_mbstowcs - wine_cpsymbol_wcstombs - wine_fold_string - wine_get_sortkey - wine_is_dbcs_leadbyte - wine_utf8_mbstowcs - wine_utf8_wcstombs - wine_wctype_table diff --git a/reactos/tools/utf16le/utf16le.cpp b/reactos/tools/utf16le/utf16le.cpp deleted file mode 100644 index 54b23b26d03..00000000000 --- a/reactos/tools/utf16le/utf16le.cpp +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Usage: utf16le inputfile outputfile - * - * This is a tool and is compiled using the host compiler, - * i.e. on Linux gcc and not mingw-gcc (cross-compiler). - * It's a converter from utf-8, utf-16 (LE/BE) and utf-32 (LE/BE) - * to utf-16 LE and especially made for automatic conversions of - * INF-files from utf-8 to utf-16LE (so we can furthermore - * store the INF files in utf-8 for subversion. - * - * Author: Matthias Kupfer (mkupfer@reactos.org) - */ - -#include -#include - -//#define DISPLAY_DETECTED_UNICODE - -using namespace std; - -class utf_converter -{ - public: - // detect can detect utf-8 and both utf-16 variants, but assume utf-32 only - // due to ambiguous BOM - enum enc_types { detect, utf8, utf16le, utf16be, utf32le, utf32be }; - enum err_types { none, iopen, oopen, eof, read, write, decode }; - protected: - err_types error; - enc_types encoding; - unsigned char buffer[4], fill, index; // need 4 char buffer for optional BOM handling - fstream inputfile,outputfile; - static const unsigned char utf8table[64]; - public: - utf_converter(string ifname, string ofname, enc_types enc = detect) : error(none), encoding(enc), fill(0), index(0) - { - enc_types tmp_enc; - inputfile.open(ifname.c_str(), ios::in); - if (!inputfile) - { - error = iopen; - return; - } - outputfile.open(ofname.c_str(), ios::out); - if (!outputfile) - { - error = oopen; - return; - } - tmp_enc = getBOM(); - if (enc != detect) - { - if (enc != tmp_enc) - cerr << "Warning: UTF-BOM doesn't match encoding setting, but given encoding forced" << endl; - } - else - encoding = tmp_enc; - } - err_types getError() - { - return error; - } - enc_types getBOM() - { - index = 0; - /* first byte can also detect with: - if ((buffer[0] & 0x11) || !buffer[0])) - valid values are 0xef, 0xff, 0xfe, 0x00 - */ - inputfile.read(reinterpret_cast(&buffer),4); - fill =inputfile.gcount(); - // stupid utf8 bom - if ((fill > 2) && - (buffer[0] == 0xef) && - (buffer[1] == 0xbb) && - (buffer[2] == 0xbf)) - { - index += 3; - fill -=3; -#ifdef DISPLAY_DETECTED_UNICODE - cerr << "UTF-8 BOM found" << endl; -#endif - return utf8; - } - if ((fill > 1) && - (buffer[0] == 0xfe) && - (buffer[1] == 0xff)) - { - index += 2; - fill -= 2; -#ifdef DISPLAY_DETECTED_UNICODE - cerr << "UTF-16BE BOM found" << endl; -#endif - return utf16be; - } - if ((fill > 1) && - (buffer[0] == 0xff) && - (buffer[1] == 0xfe)) - { - if ((fill == 4) && - (buffer[2] == 0x00) && - (buffer[3] == 0x00)) - { - cerr << "UTF Error: ambiguous BOM UTF-16 or UTF-32; assume UTF-32" << endl; - fill = 0; - index = 0; - return utf32le; - } - fill -= 2; - index += 2; -#ifdef DISPLAY_DETECTED_UNICODE - cerr << "UTF-16LE BOM found" << endl; -#endif - return utf16le; - } - if ((fill == 4) && - (buffer[0] == 0x00) && - (buffer[1] == 0x00) && - (buffer[2] == 0xfe) && - (buffer[3] == 0xff)) - { - fill = 0; - index = 0; -#ifdef DISPLAY_DETECTED_UNICODE - cerr << "UTF-32BE BOM found" << endl; -#endif - return utf32be; - } - return utf8; // no valid bom so use utf8 as default - } - int getByte(unsigned char &c) - { - if (fill) - { - index %= 4; - --fill; - c = buffer[index++]; - return 1; - } else - { - inputfile.read(reinterpret_cast(&c),1); - return inputfile.gcount(); - } - } - int getWord(unsigned short &w) - { - unsigned char c[2]; - if (!getByte(c[0])) - return 0; - if (!getByte(c[1])) - return 1; - if (encoding == utf16le) - w = c[0] | (c[1] << 8); - else - w = c[1] | (c[0] << 8); - return 2; - } - int getDWord(wchar_t &d) - { - unsigned char c[4]; - for (int i=0;i<4;i++) - if (!getByte(c[i])) - return i; - if (encoding == utf32le) - d = c[0] | (c[1] << 8) | (c[2] << 16) | (c[3] << 24); - else - d = c[3] | (c[2] << 8) | (c[1] << 16) | (c[0] << 24); - return 4; - } - wchar_t get_wchar_t() - { - wchar_t ret = (wchar_t)-1; - switch (encoding) - { - case detect: // if still unknwon - encoding = utf8; // assume utf8 as default - case utf8: - unsigned char c, tmp; - if (!getByte(tmp)) - return ret; - // table for 64 bytes (all 11xxxxxx resp. >=192) - // resulting byte is determined: - // lower 3 bits: number of following bytes (max.8) 0=error - // upper 5 bits: data filled with 0 - if (tmp & 0x80) - { - if ((tmp & 0xc0) != 0xc0) - { - cerr << "UTF-8 Error: invalid data byte" << endl; - return ret; - } - unsigned char i = utf8table[tmp & 0x3f]; - ret = i >> 3; - i &= 7; - while (i--) - { - ret <<= 6; - if (!getByte(c)) - return wchar_t(-1); - ret |= c & 0x3f; - } - return ret; - } - else - return wchar_t(tmp); - case utf16le: - case utf16be: - unsigned short w,w2; - if (getWord(w) != 2) - return ret; - if ((w & 0xfc00) == 0xd800) // high surrogate first - { - if (getWord(w2) != 2) - return ret; - if ((w2 & 0xfc00) != 0xdc00) - { - cerr << "UTF-16 Error: invalid low surrogate" << endl; - return ret; - } - return (((w & 0x3ff) + 0x40) << 10) | (w2 & 0x3ff); - } - return w; - case utf32le: - case utf32be: - if (getDWord(ret) != 4) - return wchar_t (-1); - return ret; - } - return ret; - } - void convert2utf16le() - { - wchar_t c; - unsigned char buffer[2] = {0xff, 0xfe}; - outputfile.write(reinterpret_cast(&buffer),2); // write BOM - c = get_wchar_t(); - while (!inputfile.eof()) - { - buffer[0] = c & 0xff; - buffer[1] = (c >> 8) & 0xff; // create utf16-le char - outputfile.write(reinterpret_cast(&buffer),2); // write char - c = get_wchar_t(); - } - } - ~utf_converter() - { - if (inputfile) - inputfile.close(); - if (outputfile) - outputfile.close(); - } -}; - -const unsigned char utf_converter::utf8table[64] = { -1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 113, 121, -129, 137, 145, 153, 161, 169, 177, 185, 193, 201, 209, 217, 225, 233, 241, 249, -2, 10, 18, 26, 34, 42, 50, 58, 66, 74, 82, 90, 98, 106, 114, 122, -3, 11, 19, 27, 35, 43, 51, 59, 4, 12, 20, 28, 5, 13, 6, 7 -}; - - -int main(int argc, char* argv[]) -{ - utf_converter::err_types err; - if (argc < 3) - { - cout << "usage: " << argv[0] << " inputfile outputfile" << endl; - return -1; - } - utf_converter conv(argv[1],argv[2]); - if ((err = conv.getError())!=utf_converter::none) - { - switch (err) - { - case utf_converter::iopen: - cerr << "Couldn't open input file." << endl; - break; - case utf_converter::oopen: - cerr << "Couldn't open output file." << endl; - break; - default: - cerr << "Unknown error." << endl; - } - return -1; - } else - conv.convert2utf16le(); - return 0; -} - -// vim:set ts=4 sw=4: diff --git a/reactos/tools/widl/CMakeLists.txt b/reactos/tools/widl/CMakeLists.txt deleted file mode 100644 index 1fb4c413970..00000000000 --- a/reactos/tools/widl/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ - -if(MSVC) - add_definitions( - -Dsnprintf=_snprintf) - - # Add this definition for WDK only, VS 9 doesn't like that - if (DEFINED ENV{DDKBUILDENV}) - add_definitions( - -Dvsnprintf=_vsnprintf) - endif() - - list(APPEND SOURCE getopt.c) -endif() - -list(APPEND SOURCE - client.c - expr.c - hash.c - header.c - proxy.c - register.c - server.c - typegen.c - typelib.c - typetree.c - utils.c - widl.c - write_msft.c - parser.yy.c - parser.tab.c - port/mkstemps.c) - -# Taken from widl.rbuild -add_definitions(-DINT16=SHORT) - -add_executable(widl ${SOURCE}) - -target_link_libraries(widl wpp) diff --git a/reactos/tools/widl/client.c b/reactos/tools/widl/client.c deleted file mode 100644 index 739dba9c913..00000000000 --- a/reactos/tools/widl/client.c +++ /dev/null @@ -1,553 +0,0 @@ -/* - * IDL Compiler - * - * Copyright 2005-2006 Eric Kohl - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" -#include "wine/port.h" - -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "header.h" - -#include "widltypes.h" -#include "typegen.h" -#include "expr.h" - -static FILE* client; -static int indent = 0; - -static void print_client( const char *format, ... ) __attribute__((format (printf, 1, 2))); -static void print_client( const char *format, ... ) -{ - va_list va; - va_start(va, format); - print(client, indent, format, va); - va_end(va); -} - -static void write_client_func_decl( const type_t *iface, const var_t *func ) -{ - const char *callconv = get_attrp(func->type->attrs, ATTR_CALLCONV); - const var_list_t *args = type_get_function_args(func->type); - type_t *rettype = type_function_get_rettype(func->type); - - if (!callconv) callconv = "__cdecl"; - write_type_decl_left(client, rettype); - fprintf(client, " %s ", callconv); - fprintf(client, "%s%s(\n", prefix_client, get_name(func)); - indent++; - if (args) - write_args(client, args, iface->name, 0, TRUE); - else - print_client("void"); - fprintf(client, ")\n"); - indent--; -} - -static void write_function_stub( const type_t *iface, const var_t *func, - int method_count, unsigned int proc_offset ) -{ - unsigned char explicit_fc, implicit_fc; - int has_full_pointer = is_full_pointer_function(func); - var_t *retval = type_function_get_retval(func->type); - const var_t *handle_var = get_func_handle_var( iface, func, &explicit_fc, &implicit_fc ); - int has_ret = !is_void(retval->type); - - if (is_interpreted_func( iface, func )) - { - write_client_func_decl( iface, func ); - write_client_call_routine( client, iface, func, iface->name, proc_offset ); - return; - } - - print_client( "struct __frame_%s%s\n{\n", prefix_client, get_name(func) ); - indent++; - print_client( "__DECL_EXCEPTION_FRAME\n" ); - print_client("MIDL_STUB_MESSAGE _StubMsg;\n"); - if (handle_var) - { - if (explicit_fc == RPC_FC_BIND_GENERIC) - print_client("%s %s;\n", - get_explicit_generic_handle_type(handle_var)->name, handle_var->name ); - print_client("RPC_BINDING_HANDLE _Handle;\n"); - } - - if (has_ret && decl_indirect(retval->type)) - { - print_client("void *_p_%s;\n", retval->name); - } - indent--; - print_client( "};\n\n" ); - - print_client( "static void __finally_%s%s(", prefix_client, get_name(func) ); - print_client( " struct __frame_%s%s *__frame )\n{\n", prefix_client, get_name(func) ); - indent++; - - if (has_full_pointer) - write_full_pointer_free(client, indent, func); - - print_client("NdrFreeBuffer(&__frame->_StubMsg);\n"); - - if (explicit_fc == RPC_FC_BIND_GENERIC) - { - fprintf(client, "\n"); - print_client("if (__frame->_Handle)\n"); - indent++; - print_client("%s_unbind(__frame->%s, __frame->_Handle);\n", - get_explicit_generic_handle_type(handle_var)->name, handle_var->name); - indent--; - } - indent--; - print_client( "}\n\n" ); - - write_client_func_decl( iface, func ); - - /* write the functions body */ - fprintf(client, "{\n"); - indent++; - print_client( "struct __frame_%s%s __f, * const __frame = &__f;\n", prefix_client, get_name(func) ); - - /* declare return value */ - if (has_ret) - { - print_client("%s", ""); - write_type_decl(client, retval->type, retval->name); - fprintf(client, ";\n"); - } - print_client("RPC_MESSAGE _RpcMessage;\n"); - - if (handle_var) - { - print_client( "__frame->_Handle = 0;\n" ); - if (explicit_fc == RPC_FC_BIND_GENERIC) - print_client("__frame->%s = %s;\n", handle_var->name, handle_var->name ); - } - if (has_ret && decl_indirect(retval->type)) - { - print_client("__frame->_p_%s = &%s;\n", retval->name, retval->name); - } - fprintf(client, "\n"); - - print_client( "RpcExceptionInit( 0, __finally_%s%s );\n", prefix_client, get_name(func) ); - - if (has_full_pointer) - write_full_pointer_init(client, indent, func, FALSE); - - /* check pointers */ - write_pointer_checks( client, indent, func ); - - print_client("RpcTryFinally\n"); - print_client("{\n"); - indent++; - - print_client("NdrClientInitializeNew(&_RpcMessage, &__frame->_StubMsg, &%s_StubDesc, %d);\n", - iface->name, method_count); - - if (is_attr(func->attrs, ATTR_IDEMPOTENT) || is_attr(func->attrs, ATTR_BROADCAST)) - { - print_client("_RpcMessage.RpcFlags = ( RPC_NCA_FLAGS_DEFAULT "); - if (is_attr(func->attrs, ATTR_IDEMPOTENT)) - fprintf(client, "| RPC_NCA_FLAGS_IDEMPOTENT "); - if (is_attr(func->attrs, ATTR_BROADCAST)) - fprintf(client, "| RPC_NCA_FLAGS_BROADCAST "); - fprintf(client, ");\n\n"); - } - - switch (explicit_fc) - { - case RPC_FC_BIND_PRIMITIVE: - print_client("__frame->_Handle = %s;\n", handle_var->name); - fprintf(client, "\n"); - break; - case RPC_FC_BIND_GENERIC: - print_client("__frame->_Handle = %s_bind(%s);\n", - get_explicit_generic_handle_type(handle_var)->name, handle_var->name); - fprintf(client, "\n"); - break; - case RPC_FC_BIND_CONTEXT: - { - /* if the context_handle attribute appears in the chain of types - * without pointers being followed, then the context handle must - * be direct, otherwise it is a pointer */ - int is_ch_ptr = !is_aliaschain_attr(handle_var->type, ATTR_CONTEXTHANDLE); - print_client("if (%s%s != 0)\n", is_ch_ptr ? "*" : "", handle_var->name); - indent++; - print_client("__frame->_Handle = NDRCContextBinding(%s%s);\n", - is_ch_ptr ? "*" : "", handle_var->name); - indent--; - if (is_attr(handle_var->attrs, ATTR_IN) && !is_attr(handle_var->attrs, ATTR_OUT)) - { - print_client("else\n"); - indent++; - print_client("RpcRaiseException(RPC_X_SS_IN_NULL_CONTEXT);\n"); - indent--; - } - fprintf(client, "\n"); - break; - } - case 0: /* implicit handle */ - if (handle_var) - { - print_client("__frame->_Handle = %s;\n", handle_var->name); - fprintf(client, "\n"); - } - break; - } - - write_remoting_arguments(client, indent, func, "", PASS_IN, PHASE_BUFFERSIZE); - - print_client("NdrGetBuffer(&__frame->_StubMsg, __frame->_StubMsg.BufferLength, "); - if (handle_var) - fprintf(client, "__frame->_Handle);\n\n"); - else - fprintf(client,"%s__MIDL_AutoBindHandle);\n\n", iface->name); - - /* marshal arguments */ - write_remoting_arguments(client, indent, func, "", PASS_IN, PHASE_MARSHAL); - - /* send/receive message */ - /* print_client("NdrNsSendReceive(\n"); */ - /* print_client("(unsigned char *)__frame->_StubMsg.Buffer,\n"); */ - /* print_client("(RPC_BINDING_HANDLE *) &%s__MIDL_AutoBindHandle);\n", iface->name); */ - print_client("NdrSendReceive(&__frame->_StubMsg, __frame->_StubMsg.Buffer);\n\n"); - - print_client("__frame->_StubMsg.BufferStart = _RpcMessage.Buffer;\n"); - print_client("__frame->_StubMsg.BufferEnd = __frame->_StubMsg.BufferStart + _RpcMessage.BufferLength;\n"); - - if (has_out_arg_or_return(func)) - { - fprintf(client, "\n"); - - print_client("if ((_RpcMessage.DataRepresentation & 0x0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION)\n"); - indent++; - print_client("NdrConvert(&__frame->_StubMsg, (PFORMAT_STRING)&__MIDL_ProcFormatString.Format[%u]);\n", - proc_offset); - indent--; - } - - /* unmarshall arguments */ - fprintf(client, "\n"); - write_remoting_arguments(client, indent, func, "", PASS_OUT, PHASE_UNMARSHAL); - - /* unmarshal return value */ - if (has_ret) - { - if (decl_indirect(retval->type)) - print_client("MIDL_memset(&%s, 0, sizeof(%s));\n", retval->name, retval->name); - else if (is_ptr(retval->type) || is_array(retval->type)) - print_client("%s = 0;\n", retval->name); - write_remoting_arguments(client, indent, func, "", PASS_RETURN, PHASE_UNMARSHAL); - } - - indent--; - print_client("}\n"); - print_client("RpcFinally\n"); - print_client("{\n"); - indent++; - print_client( "__finally_%s%s( __frame );\n", prefix_client, get_name(func) ); - indent--; - print_client("}\n"); - print_client("RpcEndFinally\n"); - - - /* emit return code */ - if (has_ret) - { - fprintf(client, "\n"); - print_client("return %s;\n", retval->name); - } - - indent--; - fprintf(client, "}\n"); - fprintf(client, "\n"); -} - -static void write_function_stubs(type_t *iface, unsigned int *proc_offset) -{ - const statement_t *stmt; - const var_t *implicit_handle = get_attrp(iface->attrs, ATTR_IMPLICIT_HANDLE); - int method_count = 0; - - if (!implicit_handle) - print_client("static RPC_BINDING_HANDLE %s__MIDL_AutoBindHandle;\n\n", iface->name); - - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - const var_t *func = stmt->u.var; - write_function_stub( iface, func, method_count++, *proc_offset ); - *proc_offset += get_size_procformatstring_func( iface, func ); - } -} - - -static void write_stubdescdecl(type_t *iface) -{ - print_client("static const MIDL_STUB_DESC %s_StubDesc;\n", iface->name); - fprintf(client, "\n"); -} - - -static void write_stubdescriptor(type_t *iface, int expr_eval_routines) -{ - const var_t *implicit_handle = get_attrp(iface->attrs, ATTR_IMPLICIT_HANDLE); - - print_client("static const MIDL_STUB_DESC %s_StubDesc =\n", iface->name); - print_client("{\n"); - indent++; - print_client("(void *)& %s___RpcClientInterface,\n", iface->name); - print_client("MIDL_user_allocate,\n"); - print_client("MIDL_user_free,\n"); - print_client("{\n"); - indent++; - if (implicit_handle) - print_client("&%s,\n", implicit_handle->name); - else - print_client("&%s__MIDL_AutoBindHandle,\n", iface->name); - indent--; - print_client("},\n"); - print_client("0,\n"); - if (!list_empty( &generic_handle_list )) - print_client("BindingRoutines,\n"); - else - print_client("0,\n"); - if (expr_eval_routines) - print_client("ExprEvalRoutines,\n"); - else - print_client("0,\n"); - print_client("0,\n"); - print_client("__MIDL_TypeFormatString.Format,\n"); - print_client("1, /* -error bounds_check flag */\n"); - print_client("0x%x, /* Ndr library version */\n", get_stub_mode() == MODE_Oif ? 0x50002 : 0x10001); - print_client("0,\n"); - print_client("0x50100a4, /* MIDL Version 5.1.164 */\n"); - print_client("0,\n"); - print_client("%s,\n", list_empty(&user_type_list) ? "0" : "UserMarshalRoutines"); - print_client("0, /* notify & notify_flag routine table */\n"); - print_client("1, /* Flags */\n"); - print_client("0, /* Reserved3 */\n"); - print_client("0, /* Reserved4 */\n"); - print_client("0 /* Reserved5 */\n"); - indent--; - print_client("};\n"); - fprintf(client, "\n"); -} - - -static void write_clientinterfacedecl(type_t *iface) -{ - unsigned int ver = get_attrv(iface->attrs, ATTR_VERSION); - const UUID *uuid = get_attrp(iface->attrs, ATTR_UUID); - const str_list_t *endpoints = get_attrp(iface->attrs, ATTR_ENDPOINT); - - if (endpoints) write_endpoints( client, iface->name, endpoints ); - - print_client("static const RPC_CLIENT_INTERFACE %s___RpcClientInterface =\n", iface->name ); - print_client("{\n"); - indent++; - print_client("sizeof(RPC_CLIENT_INTERFACE),\n"); - print_client("{{0x%08x,0x%04x,0x%04x,{0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x}},{%d,%d}},\n", - uuid->Data1, uuid->Data2, uuid->Data3, uuid->Data4[0], uuid->Data4[1], - uuid->Data4[2], uuid->Data4[3], uuid->Data4[4], uuid->Data4[5], uuid->Data4[6], - uuid->Data4[7], MAJORVERSION(ver), MINORVERSION(ver)); - print_client("{{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},\n"); /* FIXME */ - print_client("0,\n"); - if (endpoints) - { - print_client("%u,\n", list_count(endpoints)); - print_client("(PRPC_PROTSEQ_ENDPOINT)%s__RpcProtseqEndpoint,\n", iface->name); - } - else - { - print_client("0,\n"); - print_client("0,\n"); - } - print_client("0,\n"); - print_client("0,\n"); - print_client("0,\n"); - indent--; - print_client("};\n"); - if (old_names) - print_client("RPC_IF_HANDLE %s_ClientIfHandle DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n", - iface->name, iface->name); - else - print_client("RPC_IF_HANDLE %s%s_v%d_%d_c_ifspec DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n", - prefix_client, iface->name, MAJORVERSION(ver), MINORVERSION(ver), iface->name); - fprintf(client, "\n"); -} - - -static void write_implicithandledecl(type_t *iface) -{ - const var_t *implicit_handle = get_attrp(iface->attrs, ATTR_IMPLICIT_HANDLE); - - if (implicit_handle) - { - write_type_decl( client, implicit_handle->type, implicit_handle->name ); - fprintf(client, ";\n\n"); - } -} - - -static void init_client(void) -{ - if (client) return; - if (!(client = fopen(client_name, "w"))) - error("Could not open %s for output\n", client_name); - - print_client("/*** Autogenerated by WIDL %s from %s - Do not edit ***/\n", PACKAGE_VERSION, input_name); - print_client("#include \n"); - print_client( "\n"); - print_client("#include \"%s\"\n", header_name); - print_client( "\n"); - print_client( "#ifndef DECLSPEC_HIDDEN\n"); - print_client( "#define DECLSPEC_HIDDEN\n"); - print_client( "#endif\n"); - print_client( "\n"); -} - - -static void write_client_ifaces(const statement_list_t *stmts, int expr_eval_routines, unsigned int *proc_offset) -{ - const statement_t *stmt; - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE) - { - int has_func = 0; - const statement_t *stmt2; - type_t *iface = stmt->u.type; - if (!need_stub(iface)) - return; - - fprintf(client, "/*****************************************************************************\n"); - fprintf(client, " * %s interface\n", iface->name); - fprintf(client, " */\n"); - fprintf(client, "\n"); - - STATEMENTS_FOR_EACH_FUNC(stmt2, type_iface_get_stmts(iface)) - { - has_func = 1; - break; - } - - if (has_func) - { - write_implicithandledecl(iface); - - write_clientinterfacedecl(iface); - write_stubdescdecl(iface); - write_function_stubs(iface, proc_offset); - - print_client("#if !defined(__RPC_WIN%u__)\n", pointer_size == 8 ? 64 : 32); - print_client("#error Invalid build platform for this stub.\n"); - print_client("#endif\n"); - - fprintf(client, "\n"); - write_stubdescriptor(iface, expr_eval_routines); - } - } - } -} - -static void write_generic_handle_routine_list(void) -{ - generic_handle_t *gh; - - if (list_empty( &generic_handle_list )) return; - print_client( "static const GENERIC_BINDING_ROUTINE_PAIR BindingRoutines[] =\n" ); - print_client( "{\n" ); - indent++; - LIST_FOR_EACH_ENTRY( gh, &generic_handle_list, generic_handle_t, entry ) - { - print_client( "{ (GENERIC_BINDING_ROUTINE)%s_bind, (GENERIC_UNBIND_ROUTINE)%s_unbind },\n", - gh->name, gh->name ); - } - indent--; - print_client( "};\n\n" ); -} - -static void write_client_routines(const statement_list_t *stmts) -{ - unsigned int proc_offset = 0; - int expr_eval_routines; - - if (need_inline_stubs_file( stmts )) - { - write_exceptions( client ); - print_client( "\n"); - } - - write_formatstringsdecl(client, indent, stmts, need_stub); - expr_eval_routines = write_expr_eval_routines(client, client_token); - if (expr_eval_routines) - write_expr_eval_routine_list(client, client_token); - write_generic_handle_routine_list(); - write_user_quad_list(client); - - write_client_ifaces(stmts, expr_eval_routines, &proc_offset); - - fprintf(client, "\n"); - - write_procformatstring(client, stmts, need_stub); - write_typeformatstring(client, stmts, need_stub); -} - -void write_client(const statement_list_t *stmts) -{ - if (!do_client) - return; - if (do_everything && !need_stub_files(stmts)) - return; - - init_client(); - if (!client) - return; - - if (do_win32 && do_win64) - { - fprintf(client, "#ifndef _WIN64\n\n"); - pointer_size = 4; - write_client_routines( stmts ); - fprintf(client, "\n#else /* _WIN64 */\n\n"); - pointer_size = 8; - write_client_routines( stmts ); - fprintf(client, "\n#endif /* _WIN64 */\n"); - } - else if (do_win32) - { - pointer_size = 4; - write_client_routines( stmts ); - } - else if (do_win64) - { - pointer_size = 8; - write_client_routines( stmts ); - } - - fclose(client); -} diff --git a/reactos/tools/widl/expr.c b/reactos/tools/widl/expr.c deleted file mode 100644 index 70123825072..00000000000 --- a/reactos/tools/widl/expr.c +++ /dev/null @@ -1,935 +0,0 @@ -/* - * Expression Abstract Syntax Tree Functions - * - * Copyright 2002 Ove Kaaven - * Copyright 2006-2008 Robert Shearman - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include - -#include "widl.h" -#include "utils.h" -#include "expr.h" -#include "header.h" -#include "typetree.h" -#include "typegen.h" - -static int is_integer_type(const type_t *type) -{ - switch (type_get_type(type)) - { - case TYPE_ENUM: - return TRUE; - case TYPE_BASIC: - switch (type_basic_get_type(type)) - { - case TYPE_BASIC_INT8: - case TYPE_BASIC_INT16: - case TYPE_BASIC_INT32: - case TYPE_BASIC_INT64: - case TYPE_BASIC_INT: - case TYPE_BASIC_INT3264: - case TYPE_BASIC_CHAR: - case TYPE_BASIC_HYPER: - case TYPE_BASIC_BYTE: - case TYPE_BASIC_WCHAR: - case TYPE_BASIC_ERROR_STATUS_T: - return TRUE; - case TYPE_BASIC_FLOAT: - case TYPE_BASIC_DOUBLE: - case TYPE_BASIC_HANDLE: - return FALSE; - } - return FALSE; - default: - return FALSE; - } -} - -static int is_signed_integer_type(const type_t *type) -{ - switch (type_get_type(type)) - { - case TYPE_ENUM: - return FALSE; - case TYPE_BASIC: - switch (type_basic_get_type(type)) - { - case TYPE_BASIC_INT8: - case TYPE_BASIC_INT16: - case TYPE_BASIC_INT32: - case TYPE_BASIC_INT64: - case TYPE_BASIC_INT: - case TYPE_BASIC_INT3264: - return type_basic_get_sign(type) < 0; - case TYPE_BASIC_CHAR: - return TRUE; - case TYPE_BASIC_HYPER: - case TYPE_BASIC_BYTE: - case TYPE_BASIC_WCHAR: - case TYPE_BASIC_ERROR_STATUS_T: - case TYPE_BASIC_FLOAT: - case TYPE_BASIC_DOUBLE: - case TYPE_BASIC_HANDLE: - return FALSE; - } - /* FALLTHROUGH */ - default: - return FALSE; - } -} - -static int is_float_type(const type_t *type) -{ - return (type_get_type(type) == TYPE_BASIC && - (type_basic_get_type(type) == TYPE_BASIC_FLOAT || - type_basic_get_type(type) == TYPE_BASIC_DOUBLE)); -} - -expr_t *make_expr(enum expr_type type) -{ - expr_t *e = xmalloc(sizeof(expr_t)); - e->type = type; - e->ref = NULL; - e->u.lval = 0; - e->is_const = FALSE; - e->cval = 0; - return e; -} - -expr_t *make_exprl(enum expr_type type, int val) -{ - expr_t *e = xmalloc(sizeof(expr_t)); - e->type = type; - e->ref = NULL; - e->u.lval = val; - e->is_const = FALSE; - /* check for numeric constant */ - if (type == EXPR_NUM || type == EXPR_HEXNUM || type == EXPR_TRUEFALSE) - { - /* make sure true/false value is valid */ - assert(type != EXPR_TRUEFALSE || val == 0 || val == 1); - e->is_const = TRUE; - e->cval = val; - } - return e; -} - -expr_t *make_exprd(enum expr_type type, double val) -{ - expr_t *e = xmalloc(sizeof(expr_t)); - e->type = type; - e->ref = NULL; - e->u.dval = val; - e->is_const = TRUE; - e->cval = val; - return e; -} - -expr_t *make_exprs(enum expr_type type, char *val) -{ - expr_t *e; - e = xmalloc(sizeof(expr_t)); - e->type = type; - e->ref = NULL; - e->u.sval = val; - e->is_const = FALSE; - /* check for predefined constants */ - switch (type) - { - case EXPR_IDENTIFIER: - { - var_t *c = find_const(val, 0); - if (c) - { - e->u.sval = c->name; - free(val); - e->is_const = TRUE; - e->cval = c->eval->cval; - } - break; - } - case EXPR_CHARCONST: - if (!val[0]) - error_loc("empty character constant\n"); - else if (val[1]) - error_loc("multi-character constants are endian dependent\n"); - else - { - e->is_const = TRUE; - e->cval = *val; - } - break; - default: - break; - } - return e; -} - -expr_t *make_exprt(enum expr_type type, var_t *var, expr_t *expr) -{ - expr_t *e; - type_t *tref; - - if (var->stgclass != STG_NONE && var->stgclass != STG_REGISTER) - error_loc("invalid storage class for type expression\n"); - - tref = var->type; - - e = xmalloc(sizeof(expr_t)); - e->type = type; - e->ref = expr; - e->u.tref = tref; - e->is_const = FALSE; - if (type == EXPR_SIZEOF) - { - /* only do this for types that should be the same on all platforms */ - if (is_integer_type(tref) || is_float_type(tref)) - { - e->is_const = TRUE; - e->cval = type_memsize(tref); - } - } - /* check for cast of constant expression */ - if (type == EXPR_CAST && expr->is_const) - { - if (is_integer_type(tref)) - { - unsigned int cast_type_bits = type_memsize(tref) * 8; - unsigned int cast_mask; - - e->is_const = TRUE; - if (is_signed_integer_type(tref)) - { - cast_mask = (1 << (cast_type_bits - 1)) - 1; - if (expr->cval & (1 << (cast_type_bits - 1))) - e->cval = -((-expr->cval) & cast_mask); - else - e->cval = expr->cval & cast_mask; - } - else - { - /* calculate ((1 << cast_type_bits) - 1) avoiding overflow */ - cast_mask = ((1 << (cast_type_bits - 1)) - 1) | - 1 << (cast_type_bits - 1); - e->cval = expr->cval & cast_mask; - } - } - else - { - e->is_const = TRUE; - e->cval = expr->cval; - } - } - free(var); - return e; -} - -expr_t *make_expr1(enum expr_type type, expr_t *expr) -{ - expr_t *e; - e = xmalloc(sizeof(expr_t)); - e->type = type; - e->ref = expr; - e->u.lval = 0; - e->is_const = FALSE; - /* check for compile-time optimization */ - if (expr->is_const) - { - e->is_const = TRUE; - switch (type) - { - case EXPR_LOGNOT: - e->cval = !expr->cval; - break; - case EXPR_POS: - e->cval = +expr->cval; - break; - case EXPR_NEG: - e->cval = -expr->cval; - break; - case EXPR_NOT: - e->cval = ~expr->cval; - break; - default: - e->is_const = FALSE; - break; - } - } - return e; -} - -expr_t *make_expr2(enum expr_type type, expr_t *expr1, expr_t *expr2) -{ - expr_t *e; - e = xmalloc(sizeof(expr_t)); - e->type = type; - e->ref = expr1; - e->u.ext = expr2; - e->is_const = FALSE; - /* check for compile-time optimization */ - if (expr1->is_const && expr2->is_const) - { - e->is_const = TRUE; - switch (type) - { - case EXPR_ADD: - e->cval = expr1->cval + expr2->cval; - break; - case EXPR_SUB: - e->cval = expr1->cval - expr2->cval; - break; - case EXPR_MOD: - if (expr2->cval == 0) - { - error_loc("divide by zero in expression\n"); - e->cval = 0; - } - else - e->cval = expr1->cval % expr2->cval; - break; - case EXPR_MUL: - e->cval = expr1->cval * expr2->cval; - break; - case EXPR_DIV: - if (expr2->cval == 0) - { - error_loc("divide by zero in expression\n"); - e->cval = 0; - } - else - e->cval = expr1->cval / expr2->cval; - break; - case EXPR_OR: - e->cval = expr1->cval | expr2->cval; - break; - case EXPR_AND: - e->cval = expr1->cval & expr2->cval; - break; - case EXPR_SHL: - e->cval = expr1->cval << expr2->cval; - break; - case EXPR_SHR: - e->cval = expr1->cval >> expr2->cval; - break; - case EXPR_LOGOR: - e->cval = expr1->cval || expr2->cval; - break; - case EXPR_LOGAND: - e->cval = expr1->cval && expr2->cval; - break; - case EXPR_XOR: - e->cval = expr1->cval ^ expr2->cval; - break; - case EXPR_EQUALITY: - e->cval = expr1->cval == expr2->cval; - break; - case EXPR_INEQUALITY: - e->cval = expr1->cval != expr2->cval; - break; - case EXPR_GTR: - e->cval = expr1->cval > expr2->cval; - break; - case EXPR_LESS: - e->cval = expr1->cval < expr2->cval; - break; - case EXPR_GTREQL: - e->cval = expr1->cval >= expr2->cval; - break; - case EXPR_LESSEQL: - e->cval = expr1->cval <= expr2->cval; - break; - default: - e->is_const = FALSE; - break; - } - } - return e; -} - -expr_t *make_expr3(enum expr_type type, expr_t *expr1, expr_t *expr2, expr_t *expr3) -{ - expr_t *e; - e = xmalloc(sizeof(expr_t)); - e->type = type; - e->ref = expr1; - e->u.ext = expr2; - e->ext2 = expr3; - e->is_const = FALSE; - /* check for compile-time optimization */ - if (expr1->is_const && expr2->is_const && expr3->is_const) - { - e->is_const = TRUE; - switch (type) - { - case EXPR_COND: - e->cval = expr1->cval ? expr2->cval : expr3->cval; - break; - default: - e->is_const = FALSE; - break; - } - } - return e; -} - -struct expression_type -{ - int is_variable; /* is the expression resolved to a variable? */ - int is_temporary; /* should the type be freed? */ - type_t *type; -}; - -static void check_scalar_type(const struct expr_loc *expr_loc, - const type_t *cont_type, const type_t *type) -{ - if (!cont_type || (!is_integer_type(type) && !is_ptr(type) && - !is_float_type(type))) - error_loc_info(&expr_loc->v->loc_info, "scalar type required in expression%s%s\n", - expr_loc->attr ? " for attribute " : "", - expr_loc->attr ? expr_loc->attr : ""); -} - -static void check_arithmetic_type(const struct expr_loc *expr_loc, - const type_t *cont_type, const type_t *type) -{ - if (!cont_type || (!is_integer_type(type) && !is_float_type(type))) - error_loc_info(&expr_loc->v->loc_info, "arithmetic type required in expression%s%s\n", - expr_loc->attr ? " for attribute " : "", - expr_loc->attr ? expr_loc->attr : ""); -} - -static void check_integer_type(const struct expr_loc *expr_loc, - const type_t *cont_type, const type_t *type) -{ - if (!cont_type || !is_integer_type(type)) - error_loc_info(&expr_loc->v->loc_info, "integer type required in expression%s%s\n", - expr_loc->attr ? " for attribute " : "", - expr_loc->attr ? expr_loc->attr : ""); -} - -static type_t *find_identifier(const char *identifier, const type_t *cont_type, int *found_in_cont_type) -{ - type_t *type = NULL; - const var_t *field; - const var_list_t *fields = NULL; - - *found_in_cont_type = 0; - - if (cont_type) - { - switch (type_get_type(cont_type)) - { - case TYPE_FUNCTION: - fields = type_function_get_args(cont_type); - break; - case TYPE_STRUCT: - fields = type_struct_get_fields(cont_type); - break; - case TYPE_UNION: - case TYPE_ENCAPSULATED_UNION: - fields = type_union_get_cases(cont_type); - break; - case TYPE_VOID: - case TYPE_BASIC: - case TYPE_ENUM: - case TYPE_MODULE: - case TYPE_COCLASS: - case TYPE_INTERFACE: - case TYPE_POINTER: - case TYPE_ARRAY: - case TYPE_BITFIELD: - /* nothing to do */ - break; - case TYPE_ALIAS: - /* shouldn't get here because of using type_get_type above */ - assert(0); - break; - } - } - - if (fields) LIST_FOR_EACH_ENTRY( field, fields, const var_t, entry ) - if (field->name && !strcmp(identifier, field->name)) - { - type = field->type; - *found_in_cont_type = 1; - break; - } - - if (!type) - { - var_t *const_var = find_const(identifier, 0); - if (const_var) type = const_var->type; - } - - return type; -} - -static int is_valid_member_operand(const type_t *type) -{ - switch (type_get_type(type)) - { - case TYPE_STRUCT: - case TYPE_UNION: - case TYPE_ENUM: - return TRUE; - default: - return FALSE; - } -} - -static struct expression_type resolve_expression(const struct expr_loc *expr_loc, - const type_t *cont_type, - const expr_t *e) -{ - struct expression_type result; - result.is_variable = FALSE; - result.is_temporary = FALSE; - result.type = NULL; - switch (e->type) - { - case EXPR_VOID: - break; - case EXPR_HEXNUM: - case EXPR_NUM: - case EXPR_TRUEFALSE: - result.is_temporary = FALSE; - result.type = type_new_int(TYPE_BASIC_INT, 0); - break; - case EXPR_STRLIT: - result.is_temporary = TRUE; - result.type = type_new_pointer(RPC_FC_UP, type_new_int(TYPE_BASIC_CHAR, 0), NULL); - break; - case EXPR_WSTRLIT: - result.is_temporary = TRUE; - result.type = type_new_pointer(RPC_FC_UP, type_new_int(TYPE_BASIC_WCHAR, 0), NULL); - break; - case EXPR_CHARCONST: - result.is_temporary = TRUE; - result.type = type_new_int(TYPE_BASIC_CHAR, 0); - break; - case EXPR_DOUBLE: - result.is_temporary = TRUE; - result.type = type_new_basic(TYPE_BASIC_DOUBLE); - break; - case EXPR_IDENTIFIER: - { - int found_in_cont_type; - result.is_variable = TRUE; - result.is_temporary = FALSE; - result.type = find_identifier(e->u.sval, cont_type, &found_in_cont_type); - if (!result.type) - { - error_loc_info(&expr_loc->v->loc_info, "identifier %s cannot be resolved in expression%s%s\n", - e->u.sval, expr_loc->attr ? " for attribute " : "", - expr_loc->attr ? expr_loc->attr : ""); - } - break; - } - case EXPR_LOGNOT: - result = resolve_expression(expr_loc, cont_type, e->ref); - check_scalar_type(expr_loc, cont_type, result.type); - result.is_variable = FALSE; - result.is_temporary = FALSE; - result.type = type_new_int(TYPE_BASIC_INT, 0); - break; - case EXPR_NOT: - result = resolve_expression(expr_loc, cont_type, e->ref); - check_integer_type(expr_loc, cont_type, result.type); - result.is_variable = FALSE; - break; - case EXPR_POS: - case EXPR_NEG: - result = resolve_expression(expr_loc, cont_type, e->ref); - check_arithmetic_type(expr_loc, cont_type, result.type); - result.is_variable = FALSE; - break; - case EXPR_ADDRESSOF: - result = resolve_expression(expr_loc, cont_type, e->ref); - if (!result.is_variable) - error_loc_info(&expr_loc->v->loc_info, "address-of operator applied to non-variable type in expression%s%s\n", - expr_loc->attr ? " for attribute " : "", - expr_loc->attr ? expr_loc->attr : ""); - result.is_variable = FALSE; - result.is_temporary = TRUE; - result.type = type_new_pointer(RPC_FC_UP, result.type, NULL); - break; - case EXPR_PPTR: - result = resolve_expression(expr_loc, cont_type, e->ref); - if (result.type && is_ptr(result.type)) - result.type = type_pointer_get_ref(result.type); - else if(result.type && is_array(result.type) - && type_array_is_decl_as_ptr(result.type)) - result.type = type_array_get_element(result.type); - else - error_loc_info(&expr_loc->v->loc_info, "dereference operator applied to non-pointer type in expression%s%s\n", - expr_loc->attr ? " for attribute " : "", - expr_loc->attr ? expr_loc->attr : ""); - break; - case EXPR_CAST: - result = resolve_expression(expr_loc, cont_type, e->ref); - result.type = e->u.tref; - break; - case EXPR_SIZEOF: - result.is_temporary = FALSE; - result.type = type_new_int(TYPE_BASIC_INT, 0); - break; - case EXPR_SHL: - case EXPR_SHR: - case EXPR_MOD: - case EXPR_MUL: - case EXPR_DIV: - case EXPR_ADD: - case EXPR_SUB: - case EXPR_AND: - case EXPR_OR: - case EXPR_XOR: - { - struct expression_type result_right; - result = resolve_expression(expr_loc, cont_type, e->ref); - result.is_variable = FALSE; - result_right = resolve_expression(expr_loc, cont_type, e->u.ext); - /* FIXME: these checks aren't strict enough for some of the operators */ - check_scalar_type(expr_loc, cont_type, result.type); - check_scalar_type(expr_loc, cont_type, result_right.type); - break; - } - case EXPR_LOGOR: - case EXPR_LOGAND: - case EXPR_EQUALITY: - case EXPR_INEQUALITY: - case EXPR_GTR: - case EXPR_LESS: - case EXPR_GTREQL: - case EXPR_LESSEQL: - { - struct expression_type result_left, result_right; - result_left = resolve_expression(expr_loc, cont_type, e->ref); - result_right = resolve_expression(expr_loc, cont_type, e->u.ext); - check_scalar_type(expr_loc, cont_type, result_left.type); - check_scalar_type(expr_loc, cont_type, result_right.type); - result.is_temporary = FALSE; - result.type = type_new_int(TYPE_BASIC_INT, 0); - break; - } - case EXPR_MEMBER: - result = resolve_expression(expr_loc, cont_type, e->ref); - if (result.type && is_valid_member_operand(result.type)) - result = resolve_expression(expr_loc, result.type, e->u.ext); - else - error_loc_info(&expr_loc->v->loc_info, "'.' or '->' operator applied to a type that isn't a structure, union or enumeration in expression%s%s\n", - expr_loc->attr ? " for attribute " : "", - expr_loc->attr ? expr_loc->attr : ""); - break; - case EXPR_COND: - { - struct expression_type result_first, result_second, result_third; - result_first = resolve_expression(expr_loc, cont_type, e->ref); - check_scalar_type(expr_loc, cont_type, result_first.type); - result_second = resolve_expression(expr_loc, cont_type, e->u.ext); - result_third = resolve_expression(expr_loc, cont_type, e->ext2); - check_scalar_type(expr_loc, cont_type, result_second.type); - check_scalar_type(expr_loc, cont_type, result_third.type); - if (!is_ptr(result_second.type) ^ !is_ptr(result_third.type)) - error_loc_info(&expr_loc->v->loc_info, "type mismatch in ?: expression\n" ); - /* FIXME: determine the correct return type */ - result = result_second; - result.is_variable = FALSE; - break; - } - case EXPR_ARRAY: - result = resolve_expression(expr_loc, cont_type, e->ref); - if (result.type && is_array(result.type)) - { - struct expression_type index_result; - result.type = type_array_get_element(result.type); - index_result = resolve_expression(expr_loc, cont_type /* FIXME */, e->u.ext); - if (!index_result.type || !is_integer_type(index_result.type)) - error_loc_info(&expr_loc->v->loc_info, "array subscript not of integral type in expression%s%s\n", - expr_loc->attr ? " for attribute " : "", - expr_loc->attr ? expr_loc->attr : ""); - } - else - error_loc_info(&expr_loc->v->loc_info, "array subscript operator applied to non-array type in expression%s%s\n", - expr_loc->attr ? " for attribute " : "", - expr_loc->attr ? expr_loc->attr : ""); - break; - } - return result; -} - -const type_t *expr_resolve_type(const struct expr_loc *expr_loc, const type_t *cont_type, const expr_t *expr) -{ - struct expression_type expr_type; - expr_type = resolve_expression(expr_loc, cont_type, expr); - return expr_type.type; -} - -void write_expr(FILE *h, const expr_t *e, int brackets, - int toplevel, const char *toplevel_prefix, - const type_t *cont_type, const char *local_var_prefix) -{ - switch (e->type) - { - case EXPR_VOID: - break; - case EXPR_NUM: - fprintf(h, "%u", e->u.lval); - break; - case EXPR_HEXNUM: - fprintf(h, "0x%x", e->u.lval); - break; - case EXPR_DOUBLE: - fprintf(h, "%#.15g", e->u.dval); - break; - case EXPR_TRUEFALSE: - if (e->u.lval == 0) - fprintf(h, "FALSE"); - else - fprintf(h, "TRUE"); - break; - case EXPR_IDENTIFIER: - if (toplevel && toplevel_prefix && cont_type) - { - int found_in_cont_type; - find_identifier(e->u.sval, cont_type, &found_in_cont_type); - if (found_in_cont_type) - { - fprintf(h, "%s%s", toplevel_prefix, e->u.sval); - break; - } - } - fprintf(h, "%s%s", local_var_prefix, e->u.sval); - break; - case EXPR_STRLIT: - fprintf(h, "\"%s\"", e->u.sval); - break; - case EXPR_WSTRLIT: - fprintf(h, "L\"%s\"", e->u.sval); - break; - case EXPR_CHARCONST: - fprintf(h, "'%s'", e->u.sval); - break; - case EXPR_LOGNOT: - fprintf(h, "!"); - write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - break; - case EXPR_NOT: - fprintf(h, "~"); - write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - break; - case EXPR_POS: - fprintf(h, "+"); - write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - break; - case EXPR_NEG: - fprintf(h, "-"); - write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - break; - case EXPR_ADDRESSOF: - fprintf(h, "&"); - write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - break; - case EXPR_PPTR: - fprintf(h, "*"); - write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - break; - case EXPR_CAST: - fprintf(h, "("); - write_type_decl(h, e->u.tref, NULL); - fprintf(h, ")"); - write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - break; - case EXPR_SIZEOF: - fprintf(h, "sizeof("); - write_type_decl(h, e->u.tref, NULL); - fprintf(h, ")"); - break; - case EXPR_SHL: - case EXPR_SHR: - case EXPR_MOD: - case EXPR_MUL: - case EXPR_DIV: - case EXPR_ADD: - case EXPR_SUB: - case EXPR_AND: - case EXPR_OR: - case EXPR_LOGOR: - case EXPR_LOGAND: - case EXPR_XOR: - case EXPR_EQUALITY: - case EXPR_INEQUALITY: - case EXPR_GTR: - case EXPR_LESS: - case EXPR_GTREQL: - case EXPR_LESSEQL: - if (brackets) fprintf(h, "("); - write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - switch (e->type) - { - case EXPR_SHL: fprintf(h, " << "); break; - case EXPR_SHR: fprintf(h, " >> "); break; - case EXPR_MOD: fprintf(h, " %% "); break; - case EXPR_MUL: fprintf(h, " * "); break; - case EXPR_DIV: fprintf(h, " / "); break; - case EXPR_ADD: fprintf(h, " + "); break; - case EXPR_SUB: fprintf(h, " - "); break; - case EXPR_AND: fprintf(h, " & "); break; - case EXPR_OR: fprintf(h, " | "); break; - case EXPR_LOGOR: fprintf(h, " || "); break; - case EXPR_LOGAND: fprintf(h, " && "); break; - case EXPR_XOR: fprintf(h, " ^ "); break; - case EXPR_EQUALITY: fprintf(h, " == "); break; - case EXPR_INEQUALITY: fprintf(h, " != "); break; - case EXPR_GTR: fprintf(h, " > "); break; - case EXPR_LESS: fprintf(h, " < "); break; - case EXPR_GTREQL: fprintf(h, " >= "); break; - case EXPR_LESSEQL: fprintf(h, " <= "); break; - default: break; - } - write_expr(h, e->u.ext, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - if (brackets) fprintf(h, ")"); - break; - case EXPR_MEMBER: - if (brackets) fprintf(h, "("); - if (e->ref->type == EXPR_PPTR) - { - write_expr(h, e->ref->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - fprintf(h, "->"); - } - else - { - write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - fprintf(h, "."); - } - write_expr(h, e->u.ext, 1, 0, toplevel_prefix, cont_type, ""); - if (brackets) fprintf(h, ")"); - break; - case EXPR_COND: - if (brackets) fprintf(h, "("); - write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - fprintf(h, " ? "); - write_expr(h, e->u.ext, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - fprintf(h, " : "); - write_expr(h, e->ext2, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - if (brackets) fprintf(h, ")"); - break; - case EXPR_ARRAY: - if (brackets) fprintf(h, "("); - write_expr(h, e->ref, 1, toplevel, toplevel_prefix, cont_type, local_var_prefix); - fprintf(h, "["); - write_expr(h, e->u.ext, 1, 1, toplevel_prefix, cont_type, local_var_prefix); - fprintf(h, "]"); - if (brackets) fprintf(h, ")"); - break; - } -} - -/* This is actually fairly involved to implement precisely, due to the - effects attributes may have and things like that. Right now this is - only used for optimization, so just check for a very small set of - criteria that guarantee the types are equivalent; assume every thing - else is different. */ -static int compare_type(const type_t *a, const type_t *b) -{ - if (a == b - || (a->name - && b->name - && strcmp(a->name, b->name) == 0)) - return 0; - /* Ordering doesn't need to be implemented yet. */ - return 1; -} - -int compare_expr(const expr_t *a, const expr_t *b) -{ - int ret; - - if (a->type != b->type) - return a->type - b->type; - - switch (a->type) - { - case EXPR_NUM: - case EXPR_HEXNUM: - case EXPR_TRUEFALSE: - return a->u.lval - b->u.lval; - case EXPR_DOUBLE: - return a->u.dval - b->u.dval; - case EXPR_IDENTIFIER: - case EXPR_STRLIT: - case EXPR_WSTRLIT: - case EXPR_CHARCONST: - return strcmp(a->u.sval, b->u.sval); - case EXPR_COND: - ret = compare_expr(a->ref, b->ref); - if (ret != 0) - return ret; - ret = compare_expr(a->u.ext, b->u.ext); - if (ret != 0) - return ret; - return compare_expr(a->ext2, b->ext2); - case EXPR_OR: - case EXPR_AND: - case EXPR_ADD: - case EXPR_SUB: - case EXPR_MOD: - case EXPR_MUL: - case EXPR_DIV: - case EXPR_SHL: - case EXPR_SHR: - case EXPR_MEMBER: - case EXPR_ARRAY: - case EXPR_LOGOR: - case EXPR_LOGAND: - case EXPR_XOR: - case EXPR_EQUALITY: - case EXPR_INEQUALITY: - case EXPR_GTR: - case EXPR_LESS: - case EXPR_GTREQL: - case EXPR_LESSEQL: - ret = compare_expr(a->ref, b->ref); - if (ret != 0) - return ret; - return compare_expr(a->u.ext, b->u.ext); - case EXPR_CAST: - ret = compare_type(a->u.tref, b->u.tref); - if (ret != 0) - return ret; - /* Fall through. */ - case EXPR_NOT: - case EXPR_NEG: - case EXPR_PPTR: - case EXPR_ADDRESSOF: - case EXPR_LOGNOT: - case EXPR_POS: - return compare_expr(a->ref, b->ref); - case EXPR_SIZEOF: - return compare_type(a->u.tref, b->u.tref); - case EXPR_VOID: - return 0; - } - return -1; -} diff --git a/reactos/tools/widl/expr.h b/reactos/tools/widl/expr.h deleted file mode 100644 index 7b0e1b2c7ba..00000000000 --- a/reactos/tools/widl/expr.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Expression Abstract Syntax Tree Functions - * - * Copyright 2002 Ove Kaaven - * Copyright 2006-2008 Robert Shearman - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -struct expr_loc -{ - const var_t *v; - const char *attr; -}; - -extern expr_t *make_expr(enum expr_type type); -extern expr_t *make_exprl(enum expr_type type, int val); -extern expr_t *make_exprd(enum expr_type type, double val); -extern expr_t *make_exprs(enum expr_type type, char *val); -extern expr_t *make_exprt(enum expr_type type, var_t *var, expr_t *expr); -extern expr_t *make_expr1(enum expr_type type, expr_t *expr); -extern expr_t *make_expr2(enum expr_type type, expr_t *exp1, expr_t *exp2); -extern expr_t *make_expr3(enum expr_type type, expr_t *expr1, expr_t *expr2, expr_t *expr3); - -extern const type_t *expr_resolve_type(const struct expr_loc *expr_loc, const type_t *cont_type, const expr_t *expr); -extern int compare_expr(const expr_t *a, const expr_t *b); - -extern void write_expr(FILE *h, const expr_t *e, int brackets, int toplevel, const char *toplevel_prefix, - const type_t *cont_type, const char *local_var_prefix); diff --git a/reactos/tools/widl/getopt.c b/reactos/tools/widl/getopt.c deleted file mode 100644 index c41bb0f8b63..00000000000 --- a/reactos/tools/widl/getopt.c +++ /dev/null @@ -1,436 +0,0 @@ -/* - * Copyright (c) 1987, 1993, 1994, 1996 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include - -extern int opterr; /* if error message should be printed */ -extern int optind; /* index into parent argv vector */ -extern int optopt; /* character checked for validity */ -extern int optreset; /* reset getopt */ -extern char *optarg; /* argument associated with option */ - -int getopt (int, char * const *, const char *); - -struct option { - const char *name; - int has_arg; - int *flag; - int val; -}; - -int getopt_long (int, char *const *, const char *, const struct option *, int *); - -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 - -#define REPLACE_GETOPT - -#define _DIAGASSERT(x) do {} while (0) - -#ifdef REPLACE_GETOPT -int opterr = 1; -int optind = 1; -int optopt = '?'; -int optreset; -char *optarg; -#endif - -#define __progname __argv[0] - -#define IGNORE_FIRST (*options == '-' || *options == '+') -#define PRINT_ERROR ((opterr) && ((*options != ':') || (IGNORE_FIRST && options[1] != ':'))) - -#ifndef IS_POSIXLY_CORRECT -#define IS_POSIXLY_CORRECT (getenv("POSIXLY_CORRECT") != NULL) -#endif - -#define PERMUTE (!IS_POSIXLY_CORRECT && !IGNORE_FIRST) - -#define IN_ORDER (!IS_POSIXLY_CORRECT && *options == '-') - -#define BADCH (int)'?' -#define BADARG ((IGNORE_FIRST && options[1] == ':') || (*options == ':') ? (int)':' : (int)'?') -#define INORDER (int)1 - -static char EMSG[1]; - -static int getopt_internal (int,char * const *,const char *); -static int gcd (int,int); -static void permute_args (int,int,int,char * const *); - -static char *place = EMSG; - -static int nonopt_start = -1; -static int nonopt_end = -1; - -static const char recargchar[] = "option requires an argument -- %c"; -static const char recargstring[] = "option requires an argument -- %s"; -static const char ambig[] = "ambiguous option -- %.*s"; -static const char noarg[] = "option doesn't take an argument -- %.*s"; -static const char illoptchar[] = "unknown option -- %c"; -static const char illoptstring[] = "unknown option -- %s"; - -static void -_vwarnx(const char *fmt,va_list ap) -{ - (void)fprintf(stderr,"%s: ",__progname); - if (fmt != NULL) - (void)vfprintf(stderr,fmt,ap); - (void)fprintf(stderr,"\n"); -} - -static void -warnx(const char *fmt,...) -{ - va_list ap; - va_start(ap,fmt); - _vwarnx(fmt,ap); - va_end(ap); -} - -static int -gcd(a,b) - int a; - int b; -{ - int c; - - c = a % b; - while (c != 0) { - a = b; - b = c; - c = a % b; - } - - return b; -} - -static void -permute_args(panonopt_start,panonopt_end,opt_end,nargv) - int panonopt_start; - int panonopt_end; - int opt_end; - char * const *nargv; -{ - int cstart,cyclelen,i,j,ncycle,nnonopts,nopts,pos; - char *swap; - - _DIAGASSERT(nargv != NULL); - - nnonopts = panonopt_end - panonopt_start; - nopts = opt_end - panonopt_end; - ncycle = gcd(nnonopts,nopts); - cyclelen = (opt_end - panonopt_start) / ncycle; - - for (i = 0; i < ncycle; i++) { - cstart = panonopt_end+i; - pos = cstart; - for (j = 0; j < cyclelen; j++) { - if (pos >= panonopt_end) - pos -= nnonopts; - else - pos += nopts; - swap = nargv[pos]; - - ((char **) nargv)[pos] = nargv[cstart]; - - ((char **)nargv)[cstart] = swap; - } - } -} - -static int -getopt_internal(nargc,nargv,options) - int nargc; - char * const *nargv; - const char *options; -{ - char *oli; - int optchar; - - _DIAGASSERT(nargv != NULL); - _DIAGASSERT(options != NULL); - - optarg = NULL; - - if (optind == 0) - optind = 1; - - if (optreset) - nonopt_start = nonopt_end = -1; -start: - if (optreset || !*place) { - optreset = 0; - if (optind >= nargc) { - place = EMSG; - if (nonopt_end != -1) { - - permute_args(nonopt_start,nonopt_end,optind,nargv); - optind -= nonopt_end - nonopt_start; - } - else if (nonopt_start != -1) { - - optind = nonopt_start; - } - nonopt_start = nonopt_end = -1; - return -1; - } - if ((*(place = nargv[optind]) != '-') - || (place[1] == '\0')) { - place = EMSG; - if (IN_ORDER) { - - optarg = nargv[optind++]; - return INORDER; - } - if (!PERMUTE) { - - return -1; - } - - if (nonopt_start == -1) - nonopt_start = optind; - else if (nonopt_end != -1) { - permute_args(nonopt_start,nonopt_end,optind,nargv); - nonopt_start = optind - - (nonopt_end - nonopt_start); - nonopt_end = -1; - } - optind++; - - goto start; - } - if (nonopt_start != -1 && nonopt_end == -1) - nonopt_end = optind; - if (place[1] && *++place == '-') { - place++; - return -2; - } - } - if ((optchar = (int)*place++) == (int)':' || - (oli = strchr(options + (IGNORE_FIRST ? 1 : 0),optchar)) == NULL) { - - if (!*place) - ++optind; - if (PRINT_ERROR) - warnx(illoptchar,optchar); - optopt = optchar; - return BADCH; - } - if (optchar == 'W' && oli[1] == ';') { - - if (*place) - return -2; - - if (++optind >= nargc) { - place = EMSG; - if (PRINT_ERROR) - warnx(recargchar,optchar); - optopt = optchar; - return BADARG; - } else - place = nargv[optind]; - - return -2; - } - if (*++oli != ':') { - if (!*place) - ++optind; - } else { - optarg = NULL; - if (*place) - optarg = place; - - else if (oli[1] != ':') { - if (++optind >= nargc) { - place = EMSG; - if (PRINT_ERROR) - warnx(recargchar,optchar); - optopt = optchar; - return BADARG; - } else - optarg = nargv[optind]; - } - place = EMSG; - ++optind; - } - - return optchar; -} - -#ifdef REPLACE_GETOPT - -int -getopt(nargc,nargv,options) - int nargc; - char * const *nargv; - const char *options; -{ - int retval; - - _DIAGASSERT(nargv != NULL); - _DIAGASSERT(options != NULL); - - if ((retval = getopt_internal(nargc,nargv,options)) == -2) { - ++optind; - - if (nonopt_end != -1) { - permute_args(nonopt_start,nonopt_end,optind,nargv); - optind -= nonopt_end - nonopt_start; - } - nonopt_start = nonopt_end = -1; - retval = -1; - } - return retval; -} -#endif - -int -getopt_long(nargc,nargv,options,long_options,idx) - int nargc; - char * const *nargv; - const char *options; - const struct option *long_options; - int *idx; -{ - int retval; - - _DIAGASSERT(nargv != NULL); - _DIAGASSERT(options != NULL); - _DIAGASSERT(long_options != NULL); - - if ((retval = getopt_internal(nargc,nargv,options)) == -2) { - char *current_argv,*has_equal; - size_t current_argv_len; - int i,match; - - current_argv = place; - match = -1; - - optind++; - place = EMSG; - - if (*current_argv == '\0') { - - if (nonopt_end != -1) { - permute_args(nonopt_start,nonopt_end,optind,nargv); - optind -= nonopt_end - nonopt_start; - } - nonopt_start = nonopt_end = -1; - return -1; - } - if ((has_equal = strchr(current_argv,'=')) != NULL) { - - current_argv_len = has_equal - current_argv; - has_equal++; - } else - current_argv_len = strlen(current_argv); - - for (i = 0; long_options[i].name; i++) { - - if (strncmp(current_argv,long_options[i].name,current_argv_len)) - continue; - - if (strlen(long_options[i].name) == - (unsigned)current_argv_len) { - - match = i; - break; - } - if (match == -1) - match = i; - else { - - if (PRINT_ERROR) - warnx(ambig,(int)current_argv_len,current_argv); - optopt = 0; - return BADCH; - } - } - if (match != -1) { - if (long_options[match].has_arg == no_argument - && has_equal) { - if (PRINT_ERROR) - warnx(noarg,(int)current_argv_len,current_argv); - - if (long_options[match].flag == NULL) - optopt = long_options[match].val; - else - optopt = 0; - return BADARG; - } - if (long_options[match].has_arg == required_argument || - long_options[match].has_arg == optional_argument) { - if (has_equal) - optarg = has_equal; - else if (long_options[match].has_arg == - required_argument) { - - optarg = nargv[optind++]; - } - } - if ((long_options[match].has_arg == required_argument) - && (optarg == NULL)) { - - if (PRINT_ERROR) - warnx(recargstring,current_argv); - - if (long_options[match].flag == NULL) - optopt = long_options[match].val; - else - optopt = 0; - --optind; - return BADARG; - } - } else { - if (PRINT_ERROR) - warnx(illoptstring,current_argv); - optopt = 0; - return BADCH; - } - if (long_options[match].flag) { - *long_options[match].flag = long_options[match].val; - retval = 0; - } else - retval = long_options[match].val; - if (idx) - *idx = match; - } - return retval; -} diff --git a/reactos/tools/widl/hash.c b/reactos/tools/widl/hash.c deleted file mode 100644 index a084a7c8854..00000000000 --- a/reactos/tools/widl/hash.c +++ /dev/null @@ -1,639 +0,0 @@ -/* - * Oleaut32 hash functions - * - * Copyright 1999 Corel Corporation - * Copyright 2001-2003 Jon Griffiths - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ -#include -#include - -#include - -#include "widltypes.h" -#include "hash.h" - -static const unsigned char Lookup_16[128 * 3] = { - /* Common */ - 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, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x00, 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, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x56, 0x58, 0x55, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x56, 0x58, 0x55, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, - - /* Windows */ - 0x7F, 0x7F, 0x82, 0x46, 0x84, 0x85, 0x86, 0x87, 0x7F, 0x89, 0x53, 0x8B, 0x8C, - 0x7F, 0x7F, 0x7F, 0x7F, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x96, 0x98, 0x99, - 0x53, 0x9B, 0x8C, 0x7F, 0x7F, 0x55, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0x41, 0xAB, 0xAC, 0x96, 0xAE, 0xAF, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x31, 0x4F, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, - 0x49, 0x49, 0x44, 0x4E, 0x4F, 0x4F, 0x4F, 0x4F, 0x4F, 0xD7, 0x4F, 0x55, 0x55, - 0x55, 0x55, 0x55, 0xDE, 0xDF, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, - 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4E, 0x4F, 0x4F, 0x4F, - 0x4F, 0x4F, 0xF7, 0x4F, 0x55, 0x55, 0x55, 0x55, 0x55, 0xDE, 0x55, - - /* Mac */ - 0x41, 0x41, 0x43, 0x45, 0x4E, 0x4F, 0x55, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x4E, 0x4F, 0x4F, 0x4F, - 0x4F, 0x4F, 0x55, 0x55, 0x55, 0x55, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0x41, 0x4F, 0xB0, 0xB1, 0xB2, 0xB3, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0x41, 0x4F, 0xBD, 0x41, 0x4F, 0xC0, - 0xC1, 0xC2, 0xC3, 0x46, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0x41, 0x41, 0x4F, - 0xCE, 0xCE, 0xD0, 0xD0, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0x55, 0x55, 0xDA, - 0xDB, 0xDC, 0xDD, 0x3F, 0x3F, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0x41, 0x45, 0x41, - 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x4F, 0x4F, 0x3F, 0x4F, 0x55, 0x55, 0x55, - 0x49, 0x7F, 0xF7, 0x7F, 0xF9, 0xFA, 0xFB, 0x3F, 0xFD, 0xFE, 0x7F -}; - -static const unsigned char Lookup_32[128 * 3] = { - /* Common */ - 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, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x00, 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, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, - - /* Windows */ - 0x7F, 0x7F, 0x82, 0x7F, 0x84, 0x85, 0x86, 0x87, 0x7F, 0x89, 0x53, 0x8B, 0x53, - 0x54, 0x5A, 0x5A, 0x7F, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x96, 0x7F, 0x99, - 0x53, 0x9B, 0x53, 0x54, 0x5A, 0x5A, 0xA0, 0x7F, 0xA2, 0x4C, 0xA4, 0x41, 0xA6, - 0xA7, 0xA8, 0xA9, 0x53, 0xAB, 0xAC, 0x96, 0xAE, 0x5A, 0xB0, 0xB1, 0xB2, 0x4C, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x41, 0x53, 0xBB, 0x4C, 0xBD, 0x4C, 0x5A, 0x52, - 0x41, 0x41, 0x41, 0x41, 0x4C, 0x43, 0x43, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, - 0x49, 0x44, 0xD0, 0x4E, 0x4E, 0x4F, 0x4F, 0x4F, 0x4F, 0xD7, 0x52, 0x55, 0x55, - 0x55, 0x55, 0x59, 0x54, 0xDF, 0x52, 0x41, 0x41, 0x41, 0x41, 0x4C, 0x43, 0x43, - 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x44, 0xD0, 0x4E, 0x4E, 0x4F, 0x4F, - 0x4F, 0x4F, 0xF7, 0x52, 0x55, 0x55, 0x55, 0x55, 0x59, 0x54, 0xFF, - - /* Mac */ - 0x41, 0x41, 0x41, 0x45, 0x41, 0x4F, 0x55, 0x41, 0x41, 0x43, 0x41, 0x43, 0x43, - 0x43, 0x45, 0x5A, 0x5A, 0x44, 0x49, 0x44, 0x45, 0x45, 0x45, 0x4F, 0x45, 0x4F, - 0x4F, 0x4F, 0x55, 0x45, 0x45, 0x55, 0xA0, 0xA1, 0x45, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0xAA, 0x45, 0xAC, 0xAD, 0x47, 0x49, 0x49, 0x49, 0xB2, 0xB3, - 0x49, 0x4B, 0xB6, 0xB7, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4E, 0x4E, - 0x4E, 0xC2, 0xC3, 0x4E, 0x4E, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0x4E, 0x4F, 0x4F, - 0x4F, 0x4F, 0xD0, 0xD0, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0x4F, 0x52, 0x52, - 0x52, 0xDC, 0xDD, 0x52, 0x52, 0x52, 0x53, 0xE2, 0xE3, 0x53, 0x53, 0x53, 0x41, - 0x54, 0x54, 0x49, 0x5A, 0x5A, 0x55, 0x4F, 0x4F, 0x55, 0x55, 0x55, 0x55, 0x55, - 0x55, 0x55, 0x55, 0x59, 0x59, 0x4B, 0x5A, 0x4C, 0x4C, 0x47, 0xFF -}; - -static const unsigned char Lookup_48[128 * 3] = { - /* Common */ - 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, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x00, 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, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, - - /* Windows */ - 0x7F, 0x7F, 0x82, 0x46, 0x84, 0x85, 0x86, 0x87, 0x7F, 0x89, 0x53, 0x8B, 0x8C, - 0x7F, 0x7F, 0x7F, 0x7F, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x96, 0x98, 0x99, - 0x53, 0x9B, 0x8C, 0x7F, 0x7F, 0x59, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0x41, 0xAB, 0xAC, 0x96, 0xAE, 0xAF, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x31, 0x4F, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0xC6, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, - 0x49, 0x49, 0xD0, 0x4E, 0x4F, 0x4F, 0x4F, 0x4F, 0x4F, 0xD7, 0x4F, 0x55, 0x55, - 0x55, 0x55, 0x59, 0xDE, 0xDF, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xC6, 0x43, - 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0xD0, 0x4E, 0x4F, 0x4F, 0x4F, - 0x4F, 0x4F, 0xF7, 0x4F, 0x55, 0x55, 0x55, 0x55, 0x59, 0xDE, 0x59, - - /* Mac */ - 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, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAB, 0xAD, 0xAE, 0xAE, 0xB0, 0xB1, 0xB2, 0xB3, - 0xA7, 0xB5, 0xB6, 0xB7, 0xB8, 0xB8, 0xBA, 0xBA, 0xBC, 0xBC, 0xBE, 0xBE, 0xB7, - 0xC1, 0xC2, 0xC3, 0x46, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCB, 0xCD, - 0xCD, 0xC1, 0xD0, 0xD0, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD8, 0xDA, - 0xDA, 0xDC, 0xDD, 0xDD, 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 -}; - -static const unsigned char Lookup_64[128 * 3] = { - /* Common */ - 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x00, 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, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x56, 0x58, 0x55, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x56, 0x58, 0x55, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, - -/* Windows */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0x41, 0xAB, 0xAC, 0x96, 0xAE, 0xAF, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x31, 0x4F, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, - 0x49, 0x49, 0x44, 0x4E, 0x4F, 0x4F, 0x4F, 0x4F, 0x4F, 0xD7, 0x4F, 0x55, 0x55, - 0x55, 0x55, 0x55, 0xDE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - /* Mac */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0x41, 0xAB, 0xAC, 0x96, 0xAE, 0xAF, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x31, 0x4F, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, - 0x49, 0x49, 0x44, 0x4E, 0x4F, 0x4F, 0x4F, 0x4F, 0x4F, 0xD7, 0x4F, 0x55, 0x55, - 0x55, 0x55, 0x55, 0xDE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -static const unsigned char Lookup_80[128 * 3] = { - /* Common */ - 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, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x00, 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, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x56, 0x58, 0x55, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x56, 0x58, 0x55, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, - -/* Windows */ - 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, - - /* Mac */ - 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, -}; - -static const unsigned char Lookup_112[128 * 3] = { - /* Common */ - 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, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x00, 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, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x56, 0x58, 0x55, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x56, 0x58, 0x55, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, - -/* Windows */ - 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, - - /* Mac */ - 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, -}; - -static const unsigned char Lookup_128[128 * 3] = { - /* Common */ - 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, 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, 0x3D, 0x3E, 0x3F, 0x40, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x00, - -/* Windows */ - 0x00, 0x00, 0x82, 0x46, 0x84, 0x85, 0x86, 0x87, 0x00, 0x89, 0x00, 0x8B, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x91, 0x92, 0x93, 0x94, 0x95, 0x2D, 0x2D, 0x00, 0x99, - 0x00, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x09, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0x00, 0xAB, 0xAC, 0x2D, 0xAE, 0x2D, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xBA, - 0xA2, 0xC2, 0xC3, 0xC4, 0xB8, 0xC6, 0xB9, 0xC8, 0xBA, 0xCA, 0xCB, 0xCC, 0xCD, - 0xCE, 0xBC, 0xD0, 0xD1, 0x00, 0xD3, 0xD4, 0xBE, 0xD6, 0xD7, 0xD8, 0xBF, 0xBA, - 0xBE, 0xA2, 0xB8, 0xB9, 0xBA, 0xBE, 0xA2, 0xC2, 0xC3, 0xC4, 0xB8, 0xC6, 0xB9, - 0xC8, 0xBA, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xBC, 0xD0, 0xD1, 0xD3, 0xD3, 0xD4, - 0xBE, 0xD6, 0xD7, 0xD8, 0xBF, 0xBA, 0xBE, 0xBC, 0xBE, 0xBF, 0x00, - - /* Mac */ - 0x41, 0x31, 0x32, 0x45, 0x33, 0x4F, 0x55, 0x87, 0x41, 0x41, 0x41, 0x00, 0x8C, - 0x43, 0x45, 0x45, 0x45, 0x45, 0x92, 0x93, 0x49, 0x49, 0x96, 0x97, 0x98, 0x4F, - 0x4F, 0x9B, 0x3F, 0x55, 0x55, 0x55, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xAB, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xB0, - 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x09, 0xBD, 0xCC, 0xB0, - 0xB6, 0xCF, 0x2D, 0x2D, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xB8, 0xAB, 0xC3, 0xBD, - 0xB6, 0xB8, 0xAB, 0xC3, 0xBF, 0xBD, 0xB0, 0xB5, 0xBE, 0xA2, 0xB6, 0xBC, 0xA1, - 0xB8, 0xAB, 0xA5, 0xBA, 0xA4, 0xBB, 0xC1, 0xC3, 0xA6, 0xBF, 0xC4, 0xAA, 0xC6, - 0xA3, 0xBF, 0xAA, 0xCC, 0xBD, 0xB7, 0xAB, 0xBD, 0xAB, 0xBD, 0x3F, -}; - -static const unsigned char Lookup_144[128 * 3] = { - /* Common */ - 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, 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, 0x3D, 0x3E, 0x3F, 0x40, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x00, - -/* Windows */ - 0x00, 0x00, 0x82, 0x46, 0x84, 0x85, 0x86, 0x87, 0x00, 0x89, 0x53, 0x8B, 0x8C, - 0x00, 0x00, 0x00, 0x00, 0x91, 0x92, 0x93, 0x94, 0x95, 0x2D, 0x2D, 0x98, 0x99, - 0x53, 0x9B, 0x8C, 0x00, 0x00, 0x59, 0x09, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0x41, 0xAB, 0xAC, 0x2D, 0xAE, 0xAF, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x31, 0x4F, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0x41, - 0xC1, 0x41, 0x41, 0x41, 0x41, 0xC6, 0x43, 0x45, 0xC9, 0x45, 0x45, 0x49, 0xCD, - 0x49, 0x49, 0xD0, 0x4E, 0x4F, 0xD3, 0x4F, 0x4F, 0xD6, 0xD7, 0xD6, 0x55, 0xDA, - 0x55, 0x55, 0xDD, 0xDE, 0xDF, 0x41, 0xC1, 0x41, 0x41, 0x41, 0x41, 0xC6, 0x43, - 0x45, 0xC9, 0x45, 0x45, 0x49, 0xCD, 0x49, 0x49, 0xD0, 0x4E, 0x4F, 0xD3, 0x4F, - 0x4F, 0xD6, 0xF7, 0xD6, 0x55, 0xDA, 0x55, 0x55, 0xDD, 0xDE, 0x59, - - /* Mac */ - 0x00, 0x00, 0x82, 0x46, 0x84, 0x85, 0x86, 0x87, 0x00, 0x89, 0x53, 0x8B, 0x8C, - 0x00, 0x00, 0x00, 0x00, 0x91, 0x92, 0x93, 0x94, 0x95, 0x2D, 0x2D, 0x98, 0x99, - 0x53, 0x9B, 0x8C, 0x00, 0x00, 0x59, 0x09, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0x41, 0xAB, 0xAC, 0x2D, 0xAE, 0xAF, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x31, 0x4F, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0x41, - 0xC1, 0x41, 0x41, 0x41, 0x41, 0xC6, 0x43, 0x45, 0xC9, 0x45, 0x45, 0x49, 0xCD, - 0x49, 0x49, 0xD0, 0x4E, 0x4F, 0xD3, 0x4F, 0x4F, 0xD6, 0xD7, 0xD6, 0x55, 0xDA, - 0x55, 0x55, 0xDD, 0xDE, 0xDF, 0x41, 0xC1, 0x41, 0x41, 0x41, 0x41, 0xC6, 0x43, - 0x45, 0xC9, 0x45, 0x45, 0x49, 0xCD, 0x49, 0x49, 0xD0, 0x4E, 0x4F, 0xD3, 0x4F, - 0x4F, 0xD6, 0xF7, 0xD6, 0x55, 0xDA, 0x55, 0x55, 0xDD, 0xDE, 0x59, -}; - -static const unsigned char Lookup_160[128 * 3] = { - /* Common */ - 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, 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, 0x3D, 0x3E, 0x3F, 0x40, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x00, - -/* Windows */ - 0x00, 0x00, 0x82, 0x46, 0x84, 0x85, 0x86, 0x87, 0x00, 0x89, 0x53, 0x8B, 0x8C, - 0x00, 0x00, 0x00, 0x00, 0x91, 0x92, 0x93, 0x94, 0x95, 0x2D, 0x2D, 0x98, 0x99, - 0x53, 0x9B, 0x8C, 0x00, 0x00, 0x59, 0x09, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0x41, 0xAB, 0xAC, 0x2D, 0xAE, 0xAF, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x31, 0x4F, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0xC6, 0xC7, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, - 0x49, 0x49, 0xD0, 0x4E, 0x4F, 0x4F, 0x4F, 0x4F, 0xD6, 0xD7, 0x4F, 0x55, 0x55, - 0x55, 0xDC, 0xDD, 0xDE, 0xDF, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xC6, 0xC7, - 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0xD0, 0x4E, 0x4F, 0x4F, 0x4F, - 0x4F, 0xD6, 0xF7, 0x4F, 0x55, 0x55, 0x55, 0xDC, 0xDD, 0xDE, 0x59, - - /* Mac */ - 0x00, 0x00, 0x82, 0x46, 0x84, 0x85, 0x86, 0x87, 0x00, 0x89, 0x53, 0x8B, 0x8C, - 0x00, 0x00, 0x00, 0x00, 0x91, 0x92, 0x93, 0x94, 0x95, 0x2D, 0x2D, 0x98, 0x99, - 0x53, 0x9B, 0x8C, 0x00, 0x00, 0x59, 0x09, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0x41, 0xAB, 0xAC, 0x2D, 0xAE, 0xAF, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x31, 0x4F, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0x41, - 0x41, 0x41, 0x41, 0x41, 0x41, 0xC6, 0xC7, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, - 0x49, 0x49, 0xD0, 0x4E, 0x4F, 0x4F, 0x4F, 0x4F, 0xD6, 0xD7, 0x4F, 0x55, 0x55, - 0x55, 0xDC, 0xDD, 0xDE, 0xDF, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xC6, 0xC7, - 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0xD0, 0x4E, 0x4F, 0x4F, 0x4F, - 0x4F, 0xD6, 0xF7, 0x4F, 0x55, 0x55, 0x55, 0xDC, 0xDD, 0xDE, 0x59, -}; - -static const unsigned char Lookup_176[128 * 3] = { - /* Common */ - 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, 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, 0x3D, 0x3E, 0x3F, 0x40, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x00, - - /* Windows */ - 0x00, 0x00, 0x82, 0x46, 0x84, 0x85, 0x86, 0x87, 0x00, 0x89, 0x53, 0x8B, 0x8C, - 0x00, 0x00, 0x00, 0x00, 0x91, 0x92, 0x93, 0x94, 0x95, 0x2D, 0x2D, 0x98, 0x99, - 0x53, 0x9B, 0x8C, 0x00, 0x00, 0x59, 0x09, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0x41, 0xAB, 0xAC, 0x2D, 0xAE, 0xAF, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x31, 0x4F, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0x41, - 0x41, 0x41, 0x41, 0xC4, 0xC5, 0xC4, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, - 0x49, 0x49, 0x44, 0x4E, 0x4F, 0x4F, 0x4F, 0x4F, 0xD6, 0xD7, 0xD6, 0x55, 0x55, - 0x55, 0x59, 0x59, 0xDE, 0xDF, 0x41, 0x41, 0x41, 0x41, 0xC4, 0xC5, 0xC4, 0x43, - 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4E, 0x4F, 0x4F, 0x4F, - 0x4F, 0xD6, 0xF7, 0xD6, 0x55, 0x55, 0x55, 0x59, 0x59, 0xDE, 0x59, - - /* Mac */ - 0x80, 0x81, 0x43, 0x45, 0x4E, 0x85, 0x59, 0x41, 0x41, 0x41, 0x80, 0x41, 0x81, - 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x4E, 0x4F, 0x4F, 0x4F, - 0x85, 0x4F, 0x55, 0x55, 0x55, 0x59, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0x80, 0x85, 0xB0, 0xB1, 0xB2, 0xB3, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0x41, 0x4F, 0xBD, 0x80, 0x85, 0xC0, - 0xC1, 0xC2, 0xC3, 0x46, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x09, 0x41, 0x41, 0x4F, - 0xCE, 0xCE, 0x2D, 0x2D, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0x59, 0x59, 0xDA, - 0xDB, 0xDC, 0xDD, 0x3F, 0x3F, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0x41, 0x45, 0x41, - 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x4F, 0x4F, 0x3F, 0x4F, 0x55, 0x55, 0x55, - 0x49, 0x00, 0xF7, 0x00, 0xF9, 0xFA, 0xFB, 0x3F, 0xFD, 0xFE, 0x00 -}; - -static const unsigned char Lookup_208[128 * 3] = { - /* Common */ - 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, 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, 0x3D, 0x3E, 0x3F, 0x40, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, - -/* Windows */ - 0x80, 0x81, 0x82, 0x46, 0x84, 0x85, 0x86, 0x87, 0x5E, 0x89, 0x8A, 0x8B, 0x8C, - 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, - 0x9A, 0x9B, 0x8C, 0x9D, 0x00, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x31, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, - 0xC1, 0xC2, 0xC1, 0xC1, 0xC1, 0xC1, 0xC7, 0xC8, 0xC9, 0xC9, 0xCB, 0xCC, 0xCD, - 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, - 0xDB, 0x00, 0xDD, 0xDE, 0xDF, 0x41, 0xE1, 0x41, 0xE3, 0xE4, 0xE5, 0xE6, 0x43, - 0x45, 0x45, 0x45, 0x45, 0xEC, 0xEC, 0x49, 0x49, 0xF0, 0xF1, 0xF2, 0xF3, 0x4F, - 0xF5, 0xF6, 0xF7, 0xF8, 0x55, 0xFA, 0x55, 0x55, 0x00, 0x00, 0xFF, - - /* Mac */ - 0x41, 0x81, 0x43, 0x45, 0x4E, 0x4F, 0x55, 0x41, 0x41, 0x41, 0x41, 0x8B, 0x8C, - 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x93, 0x49, 0x49, 0x4E, 0x4F, 0x98, 0x4F, - 0x4F, 0x9B, 0x55, 0x55, 0x55, 0x55, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, - 0xC1, 0xC2, 0xC1, 0xC1, 0xC1, 0xC1, 0xC7, 0xC8, 0xC9, 0xC9, 0xCB, 0xCC, 0xCD, - 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, - 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0x00, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xE9, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, - 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, -}; - -static const unsigned char Lookup_224[128 * 3] = { - /* Common */ - 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, 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, 0x3D, 0x3E, 0x3F, 0x40, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, - 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, - -/* Windows */ - 0x80, 0x81, 0x82, 0x46, 0x84, 0x85, 0x86, 0x87, 0x5E, 0x89, 0x8A, 0x8B, 0x8C, - 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, - 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0x32, 0x33, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0x31, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, - 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, - 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, - 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEA, 0xEC, 0xED, 0xED, 0xEF, 0xEF, 0xF1, 0xF2, 0xF3, 0xF3, - 0xF5, 0xF5, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x00, 0x00, 0xFF, - - /* Mac */ - 0x41, 0x41, 0x43, 0x45, 0x4E, 0x4F, 0x55, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, - 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x4E, 0x4F, 0x4F, 0x4F, - 0x4F, 0x4F, 0x55, 0x55, 0x55, 0x55, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, - 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, - 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, - 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEA, 0xEC, 0xED, 0xED, 0xEF, 0xEF, 0xF1, 0xF2, 0xF3, 0xF3, - 0xF5, 0xF5, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, -}; - -/*********************************************************************** - * lhash_val_of_name_sys - * - * Copy of oleaut32.LHashValOfNameSysA - * Produce a string hash value. - * - * PARAMS - * skind [I] Type of the system. - * lcid [I] Locale id for the hash. - * lpStr [I] String to hash. - * - * RETURNS - * Success: The hash value of the string. - * Failure: 0, if lpStr is NULL. - * - * NOTES - * This function produces a two part hash: The high word is based on - * skind and lcid, while the low word is based on a repeated string - * hash of skind/str. - */ -unsigned int lhash_val_of_name_sys( syskind_t skind, LCID lcid, LPCSTR lpStr) -{ - ULONG nOffset, nMask = skind == SYS_MAC ? 1 : 0; - ULONG nHiWord, nLoWord = 0x0deadbee; - const unsigned char *str = (const unsigned char *)lpStr, *pnLookup = NULL; - - if (!str) - return 0; - - switch (PRIMARYLANGID(LANGIDFROMLCID(lcid))) - { - default: - fprintf(stderr, "Unknown lcid %x, treating as latin-based, please report\n", lcid); - /* .. Fall Through .. */ - case LANG_AFRIKAANS: case LANG_ALBANIAN: case LANG_ARMENIAN: - case LANG_ASSAMESE: case LANG_AZERI: case LANG_BASQUE: - case LANG_BELARUSIAN: case LANG_BENGALI: case LANG_BULGARIAN: - case LANG_CATALAN: case LANG_DANISH: case LANG_DIVEHI: - case LANG_DUTCH: case LANG_ENGLISH: case LANG_ESTONIAN: - case LANG_FAEROESE: case LANG_FINNISH: case LANG_FRENCH: - case LANG_GALICIAN: case LANG_GEORGIAN: case LANG_GERMAN: - case LANG_GUJARATI: case LANG_HINDI: case LANG_INDONESIAN: - case LANG_ITALIAN: case LANG_KANNADA: case LANG_KASHMIRI: - case LANG_KAZAK: case LANG_KONKANI: case LANG_KYRGYZ: - case LANG_LATVIAN: case LANG_LITHUANIAN: case LANG_MACEDONIAN: - case LANG_MALAY: case LANG_MALAYALAM: case LANG_MANIPURI: - case LANG_MARATHI: case LANG_MONGOLIAN: case LANG_NEPALI: - case LANG_ORIYA: case LANG_PORTUGUESE: case LANG_PUNJABI: - case LANG_ROMANIAN: case LANG_SANSKRIT: case LANG_SERBIAN: - case LANG_SINDHI: case LANG_SLOVENIAN: case LANG_SWAHILI: - case LANG_SWEDISH: case LANG_SYRIAC: case LANG_TAMIL: - case LANG_TATAR: case LANG_TELUGU: case LANG_THAI: - case LANG_UKRAINIAN: case LANG_URDU: case LANG_UZBEK: - case LANG_VIETNAMESE: case LANG_MALTESE: case LANG_IRISH: - case LANG_SAMI: case LANG_UPPER_SORBIAN: case LANG_TSWANA: - case LANG_XHOSA: case LANG_ZULU: case LANG_WELSH: - case LANG_BRETON: case LANG_NEUTRAL: -/* some languages not in all windows versions or ReactOS */ -#ifdef LANG_GAELIC - case LANG_GAELIC: -#endif -#ifdef LANG_TAJIK - case LANG_TAJIK: -#endif -#ifdef LANG_ROMANSH - case LANG_ROMANSH: -#endif -#ifdef LANG_SUTU - case LANG_SUTU: -#endif -#ifdef LANG_TSONGA - case LANG_TSONGA: -#endif -#ifdef LANG_VENDA - case LANG_VENDA: -#endif -#ifdef LANG_ESPERANTO - case LANG_ESPERANTO: -#endif -#ifdef LANG_WALON - case LANG_WALON: -#endif -#ifdef LANG_CORNISH - case LANG_CORNISH: -#endif - nOffset = 16; - pnLookup = Lookup_16; - break; - case LANG_CZECH: case LANG_HUNGARIAN: case LANG_POLISH: - case LANG_SLOVAK: case LANG_SPANISH: - nOffset = 32; - pnLookup = Lookup_32; - break; - case LANG_HEBREW: - nOffset = 48; - pnLookup = Lookup_48; - break; - case LANG_JAPANESE: - nOffset = 64; - pnLookup = Lookup_64; - break; - case LANG_KOREAN: - nOffset = 80; - pnLookup = Lookup_80; - break; - case LANG_CHINESE: - nOffset = 112; - pnLookup = Lookup_112; - break; - case LANG_GREEK: - nOffset = 128; - pnLookup = Lookup_128; - break; - case LANG_ICELANDIC: - nOffset = 144; - pnLookup = Lookup_144; - break; - case LANG_TURKISH: - nOffset = 160; - pnLookup = Lookup_160; - break; - case LANG_NORWEGIAN: - if (SUBLANGID(LANGIDFROMLCID(lcid)) == SUBLANG_NORWEGIAN_NYNORSK) - { - nOffset = 176; - pnLookup = Lookup_176; - } - else - { - nOffset = 16; - pnLookup = Lookup_16; - } - break; - case LANG_ARABIC: - case LANG_FARSI: - nOffset = 208; - pnLookup = Lookup_208; - break; - case LANG_RUSSIAN: - nOffset = 224; - pnLookup = Lookup_224; - break; - } - - nHiWord = (nOffset | nMask) << 16; - - while (*str) - { - nLoWord = 37 * nLoWord + pnLookup[*str > 0x7f && nMask ? *str + 0x80 : *str]; - str++; - } - /* Constrain to a prime modulo and sizeof(WORD) */ - nLoWord = (nLoWord % 65599) & 0xffff; - - return nHiWord | nLoWord; -} diff --git a/reactos/tools/widl/hash.h b/reactos/tools/widl/hash.h deleted file mode 100644 index 3c2fd2914bf..00000000000 --- a/reactos/tools/widl/hash.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Hash definitions - * - * Copyright 2005 Huw Davies - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - */ - -#ifndef __WIDL_HASH_H -#define __WIDL_HASH_H - -extern unsigned int lhash_val_of_name_sys( syskind_t skind, LCID lcid, LPCSTR lpStr); - -#endif diff --git a/reactos/tools/widl/header.c b/reactos/tools/widl/header.c deleted file mode 100644 index 309eaf888b0..00000000000 --- a/reactos/tools/widl/header.c +++ /dev/null @@ -1,1518 +0,0 @@ -/* - * IDL Compiler - * - * Copyright 2002 Ove Kaaven - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" - -#include -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "header.h" -#include "expr.h" -#include "typetree.h" - -static int indentation = 0; -static int is_object_interface = 0; -user_type_list_t user_type_list = LIST_INIT(user_type_list); -context_handle_list_t context_handle_list = LIST_INIT(context_handle_list); -generic_handle_list_t generic_handle_list = LIST_INIT(generic_handle_list); - -static void write_type_def_or_decl(FILE *f, type_t *t, int field, const char *name); - -static void indent(FILE *h, int delta) -{ - int c; - if (delta < 0) indentation += delta; - for (c=0; c 0) indentation += delta; -} - -int is_ptrchain_attr(const var_t *var, enum attr_type t) -{ - if (is_attr(var->attrs, t)) - return 1; - else - { - type_t *type = var->type; - for (;;) - { - if (is_attr(type->attrs, t)) - return 1; - else if (type_is_alias(type)) - type = type_alias_get_aliasee(type); - else if (is_ptr(type)) - type = type_pointer_get_ref(type); - else return 0; - } - } -} - -int is_aliaschain_attr(const type_t *type, enum attr_type attr) -{ - const type_t *t = type; - for (;;) - { - if (is_attr(t->attrs, attr)) - return 1; - else if (type_is_alias(t)) - t = type_alias_get_aliasee(t); - else return 0; - } -} - -int is_attr(const attr_list_t *list, enum attr_type t) -{ - const attr_t *attr; - if (list) LIST_FOR_EACH_ENTRY( attr, list, const attr_t, entry ) - if (attr->type == t) return 1; - return 0; -} - -void *get_attrp(const attr_list_t *list, enum attr_type t) -{ - const attr_t *attr; - if (list) LIST_FOR_EACH_ENTRY( attr, list, const attr_t, entry ) - if (attr->type == t) return attr->u.pval; - return NULL; -} - -unsigned int get_attrv(const attr_list_t *list, enum attr_type t) -{ - const attr_t *attr; - if (list) LIST_FOR_EACH_ENTRY( attr, list, const attr_t, entry ) - if (attr->type == t) return attr->u.ival; - return 0; -} - -int is_void(const type_t *t) -{ - return type_get_type(t) == TYPE_VOID; -} - -int is_conformant_array(const type_t *t) -{ - return is_array(t) && type_array_has_conformance(t); -} - -void write_guid(FILE *f, const char *guid_prefix, const char *name, const UUID *uuid) -{ - if (!uuid) return; - fprintf(f, "DEFINE_GUID(%s_%s, 0x%08x, 0x%04x, 0x%04x, 0x%02x,0x%02x, 0x%02x," - "0x%02x,0x%02x,0x%02x,0x%02x,0x%02x);\n", - guid_prefix, name, uuid->Data1, uuid->Data2, uuid->Data3, uuid->Data4[0], - uuid->Data4[1], uuid->Data4[2], uuid->Data4[3], uuid->Data4[4], uuid->Data4[5], - uuid->Data4[6], uuid->Data4[7]); -} - -static void write_uuid_decl(FILE *f, const char *name, const UUID *uuid) -{ - fprintf(f, "#ifdef __CRT_UUID_DECL\n"); - fprintf(f, "__CRT_UUID_DECL(%s, 0x%08x, 0x%04x, 0x%04x, 0x%02x,0x%02x, 0x%02x," - "0x%02x,0x%02x,0x%02x,0x%02x,0x%02x)\n", - name, uuid->Data1, uuid->Data2, uuid->Data3, uuid->Data4[0], uuid->Data4[1], - uuid->Data4[2], uuid->Data4[3], uuid->Data4[4], uuid->Data4[5], uuid->Data4[6], - uuid->Data4[7]); - fprintf(f, "#endif\n"); -} - -static const char *uuid_string(const UUID *uuid) -{ - static char buf[37]; - - sprintf(buf, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", - uuid->Data1, uuid->Data2, uuid->Data3, uuid->Data4[0], uuid->Data4[1], uuid->Data4[2], - uuid->Data4[3], uuid->Data4[4], uuid->Data4[5], uuid->Data4[6], uuid->Data4[7]); - - return buf; -} - -const char *get_name(const var_t *v) -{ - static char buffer[256]; - - if (is_attr( v->attrs, ATTR_PROPGET )) - strcpy( buffer, "get_" ); - else if (is_attr( v->attrs, ATTR_PROPPUT )) - strcpy( buffer, "put_" ); - else if (is_attr( v->attrs, ATTR_PROPPUTREF )) - strcpy( buffer, "putref_" ); - else - buffer[0] = 0; - strcat( buffer, v->name ); - return buffer; -} - -static void write_fields(FILE *h, var_list_t *fields) -{ - unsigned nameless_struct_cnt = 0, nameless_struct_i = 0, nameless_union_cnt = 0, nameless_union_i = 0; - const char *name; - char buf[32]; - var_t *v; - - if (!fields) return; - - LIST_FOR_EACH_ENTRY( v, fields, var_t, entry ) { - if (!v || !v->type) continue; - - switch(type_get_type_detect_alias(v->type)) { - case TYPE_STRUCT: - case TYPE_ENCAPSULATED_UNION: - nameless_struct_cnt++; - break; - case TYPE_UNION: - nameless_union_cnt++; - break; - default: - ; - } - } - - LIST_FOR_EACH_ENTRY( v, fields, var_t, entry ) { - if (!v || !v->type) continue; - - indent(h, 0); - name = v->name; - - switch(type_get_type_detect_alias(v->type)) { - case TYPE_STRUCT: - case TYPE_ENCAPSULATED_UNION: - if(!v->name) { - fprintf(h, "__C89_NAMELESS "); - if(nameless_struct_cnt == 1) { - name = "__C89_NAMELESSSTRUCTNAME"; - }else if(nameless_struct_i < 5 /* # of supporting macros */) { - sprintf(buf, "__C89_NAMELESSSTRUCTNAME%d", ++nameless_struct_i); - name = buf; - } - } - break; - case TYPE_UNION: - if(!v->name) { - fprintf(h, "__C89_NAMELESS "); - if(nameless_union_cnt == 1) { - name = "__C89_NAMELESSUNIONNAME"; - }else if(nameless_union_i < 8 /* # of supporting macros */ ) { - sprintf(buf, "__C89_NAMELESSUNIONNAME%d", ++nameless_union_i); - name = buf; - } - } - break; - default: - ; - } - write_type_def_or_decl(h, v->type, TRUE, name); - fprintf(h, ";\n"); - } -} - -static void write_enums(FILE *h, var_list_t *enums) -{ - var_t *v; - if (!enums) return; - LIST_FOR_EACH_ENTRY( v, enums, var_t, entry ) - { - if (v->name) { - indent(h, 0); - fprintf(h, "%s", get_name(v)); - if (v->eval) { - fprintf(h, " = "); - write_expr(h, v->eval, 0, 1, NULL, NULL, ""); - } - } - if (list_next( enums, &v->entry )) fprintf(h, ",\n"); - } - fprintf(h, "\n"); -} - -int needs_space_after(type_t *t) -{ - return (type_is_alias(t) || - (!is_ptr(t) && (!is_array(t) || !type_array_is_decl_as_ptr(t) || t->name))); -} - -void write_type_left(FILE *h, type_t *t, int declonly) -{ - if (!h) return; - - if (is_attr(t->attrs, ATTR_CONST) && - (type_is_alias(t) || !is_ptr(t))) - fprintf(h, "const "); - - if (type_is_alias(t)) fprintf(h, "%s", t->name); - else { - switch (type_get_type_detect_alias(t)) { - case TYPE_ENUM: - if (!declonly && t->defined && !t->written) { - if (t->name) fprintf(h, "enum %s {\n", t->name); - else fprintf(h, "enum {\n"); - t->written = TRUE; - indentation++; - write_enums(h, type_enum_get_values(t)); - indent(h, -1); - fprintf(h, "}"); - } - else fprintf(h, "enum %s", t->name ? t->name : ""); - break; - case TYPE_STRUCT: - case TYPE_ENCAPSULATED_UNION: - if (!declonly && t->defined && !t->written) { - if (t->name) fprintf(h, "struct %s {\n", t->name); - else fprintf(h, "struct {\n"); - t->written = TRUE; - indentation++; - if (type_get_type(t) != TYPE_STRUCT) - write_fields(h, type_encapsulated_union_get_fields(t)); - else - write_fields(h, type_struct_get_fields(t)); - indent(h, -1); - fprintf(h, "}"); - } - else fprintf(h, "struct %s", t->name ? t->name : ""); - break; - case TYPE_UNION: - if (!declonly && t->defined && !t->written) { - if (t->name) fprintf(h, "union %s {\n", t->name); - else fprintf(h, "union {\n"); - t->written = TRUE; - indentation++; - write_fields(h, type_union_get_cases(t)); - indent(h, -1); - fprintf(h, "}"); - } - else fprintf(h, "union %s", t->name ? t->name : ""); - break; - case TYPE_POINTER: - write_type_left(h, type_pointer_get_ref(t), declonly); - fprintf(h, "%s*", needs_space_after(type_pointer_get_ref(t)) ? " " : ""); - if (is_attr(t->attrs, ATTR_CONST)) fprintf(h, "const "); - break; - case TYPE_ARRAY: - if (t->name && type_array_is_decl_as_ptr(t)) - fprintf(h, "%s", t->name); - else - { - write_type_left(h, type_array_get_element(t), declonly); - if (type_array_is_decl_as_ptr(t)) - fprintf(h, "%s*", needs_space_after(type_array_get_element(t)) ? " " : ""); - } - break; - case TYPE_BASIC: - if (type_basic_get_type(t) != TYPE_BASIC_INT32 && - type_basic_get_type(t) != TYPE_BASIC_INT64 && - type_basic_get_type(t) != TYPE_BASIC_HYPER) - { - if (type_basic_get_sign(t) < 0) fprintf(h, "signed "); - else if (type_basic_get_sign(t) > 0) fprintf(h, "unsigned "); - } - switch (type_basic_get_type(t)) - { - case TYPE_BASIC_INT8: fprintf(h, "small"); break; - case TYPE_BASIC_INT16: fprintf(h, "short"); break; - case TYPE_BASIC_INT: fprintf(h, "int"); break; - case TYPE_BASIC_INT3264: fprintf(h, "__int3264"); break; - case TYPE_BASIC_BYTE: fprintf(h, "byte"); break; - case TYPE_BASIC_CHAR: fprintf(h, "char"); break; - case TYPE_BASIC_WCHAR: fprintf(h, "wchar_t"); break; - case TYPE_BASIC_FLOAT: fprintf(h, "float"); break; - case TYPE_BASIC_DOUBLE: fprintf(h, "double"); break; - case TYPE_BASIC_ERROR_STATUS_T: fprintf(h, "error_status_t"); break; - case TYPE_BASIC_HANDLE: fprintf(h, "handle_t"); break; - case TYPE_BASIC_INT32: - if (type_basic_get_sign(t) > 0) - fprintf(h, "ULONG"); - else - fprintf(h, "LONG"); - break; - case TYPE_BASIC_INT64: - if (type_basic_get_sign(t) > 0) - fprintf(h, "UINT64"); - else - fprintf(h, "INT64"); - break; - case TYPE_BASIC_HYPER: - if (type_basic_get_sign(t) > 0) - fprintf(h, "MIDL_uhyper"); - else - fprintf(h, "hyper"); - break; - } - break; - case TYPE_INTERFACE: - case TYPE_MODULE: - case TYPE_COCLASS: - fprintf(h, "%s", t->name); - break; - case TYPE_VOID: - fprintf(h, "void"); - break; - case TYPE_BITFIELD: - write_type_left(h, type_bitfield_get_field(t), declonly); - break; - case TYPE_ALIAS: - case TYPE_FUNCTION: - /* handled elsewhere */ - assert(0); - break; - } - } -} - -void write_type_right(FILE *h, type_t *t, int is_field) -{ - if (!h) return; - - switch (type_get_type(t)) - { - case TYPE_ARRAY: - if (!type_array_is_decl_as_ptr(t)) - { - if (is_conformant_array(t)) - { - fprintf(h, "[%s]", is_field ? "1" : ""); - t = type_array_get_element(t); - } - for ( ; - type_get_type(t) == TYPE_ARRAY && !type_array_is_decl_as_ptr(t); - t = type_array_get_element(t)) - fprintf(h, "[%u]", type_array_get_dim(t)); - } - break; - case TYPE_BITFIELD: - fprintf(h, " : %u", type_bitfield_get_bits(t)->cval); - break; - case TYPE_VOID: - case TYPE_BASIC: - case TYPE_ENUM: - case TYPE_STRUCT: - case TYPE_ENCAPSULATED_UNION: - case TYPE_UNION: - case TYPE_ALIAS: - case TYPE_MODULE: - case TYPE_COCLASS: - case TYPE_FUNCTION: - case TYPE_INTERFACE: - case TYPE_POINTER: - break; - } -} - -static void write_type_v(FILE *h, type_t *t, int is_field, int declonly, const char *name) -{ - type_t *pt = NULL; - int ptr_level = 0; - - if (!h) return; - - if (t) { - for (pt = t; is_ptr(pt); pt = type_pointer_get_ref(pt), ptr_level++) - ; - - if (type_get_type_detect_alias(pt) == TYPE_FUNCTION) { - int i; - const char *callconv = get_attrp(pt->attrs, ATTR_CALLCONV); - if (!callconv && is_object_interface) callconv = "STDMETHODCALLTYPE"; - if (is_attr(pt->attrs, ATTR_INLINE)) fprintf(h, "inline "); - write_type_left(h, type_function_get_rettype(pt), declonly); - fputc(' ', h); - if (ptr_level) fputc('(', h); - if (callconv) fprintf(h, "%s ", callconv); - for (i = 0; i < ptr_level; i++) - fputc('*', h); - } else - write_type_left(h, t, declonly); - } - - if (name) fprintf(h, "%s%s", !t || needs_space_after(t) ? " " : "", name ); - - if (t) { - if (type_get_type_detect_alias(pt) == TYPE_FUNCTION) { - const var_list_t *args = type_function_get_args(pt); - - if (ptr_level) fputc(')', h); - fputc('(', h); - if (args) - write_args(h, args, NULL, 0, FALSE); - else - fprintf(h, "void"); - fputc(')', h); - } else - write_type_right(h, t, is_field); - } -} - -static void write_type_def_or_decl(FILE *f, type_t *t, int field, const char *name) -{ - write_type_v(f, t, field, FALSE, name); -} - -void write_type_decl(FILE *f, type_t *t, const char *name) -{ - write_type_v(f, t, FALSE, TRUE, name); -} - -void write_type_decl_left(FILE *f, type_t *t) -{ - write_type_left(f, t, TRUE); -} - -static int user_type_registered(const char *name) -{ - user_type_t *ut; - LIST_FOR_EACH_ENTRY(ut, &user_type_list, user_type_t, entry) - if (!strcmp(name, ut->name)) - return 1; - return 0; -} - -static int context_handle_registered(const char *name) -{ - context_handle_t *ch; - LIST_FOR_EACH_ENTRY(ch, &context_handle_list, context_handle_t, entry) - if (!strcmp(name, ch->name)) - return 1; - return 0; -} - -static int generic_handle_registered(const char *name) -{ - generic_handle_t *gh; - LIST_FOR_EACH_ENTRY(gh, &generic_handle_list, generic_handle_t, entry) - if (!strcmp(name, gh->name)) - return 1; - return 0; -} - -unsigned int get_context_handle_offset( const type_t *type ) -{ - context_handle_t *ch; - unsigned int index = 0; - - while (!is_attr( type->attrs, ATTR_CONTEXTHANDLE )) - { - if (type_is_alias( type )) type = type_alias_get_aliasee( type ); - else if (is_ptr( type )) type = type_pointer_get_ref( type ); - else error( "internal error: %s is not a context handle\n", type->name ); - } - LIST_FOR_EACH_ENTRY( ch, &context_handle_list, context_handle_t, entry ) - { - if (!strcmp( type->name, ch->name )) return index; - index++; - } - error( "internal error: %s is not registered as a context handle\n", type->name ); - return index; -} - -unsigned int get_generic_handle_offset( const type_t *type ) -{ - generic_handle_t *gh; - unsigned int index = 0; - - while (!is_attr( type->attrs, ATTR_HANDLE )) - { - if (type_is_alias( type )) type = type_alias_get_aliasee( type ); - else if (is_ptr( type )) type = type_pointer_get_ref( type ); - else error( "internal error: %s is not a generic handle\n", type->name ); - } - LIST_FOR_EACH_ENTRY( gh, &generic_handle_list, generic_handle_t, entry ) - { - if (!strcmp( type->name, gh->name )) return index; - index++; - } - error( "internal error: %s is not registered as a generic handle\n", type->name ); - return index; -} - -/* check for types which require additional prototypes to be generated in the - * header */ -void check_for_additional_prototype_types(const var_list_t *list) -{ - const var_t *v; - - if (!list) return; - LIST_FOR_EACH_ENTRY( v, list, const var_t, entry ) - { - type_t *type = v->type; - if (!type) continue; - for (;;) { - const char *name = type->name; - if (type->user_types_registered) break; - type->user_types_registered = 1; - if (is_attr(type->attrs, ATTR_CONTEXTHANDLE)) { - if (!context_handle_registered(name)) - { - context_handle_t *ch = xmalloc(sizeof(*ch)); - ch->name = xstrdup(name); - list_add_tail(&context_handle_list, &ch->entry); - } - /* don't carry on parsing fields within this type */ - break; - } - if ((type_get_type(type) != TYPE_BASIC || - type_basic_get_type(type) != TYPE_BASIC_HANDLE) && - is_attr(type->attrs, ATTR_HANDLE)) { - if (!generic_handle_registered(name)) - { - generic_handle_t *gh = xmalloc(sizeof(*gh)); - gh->name = xstrdup(name); - list_add_tail(&generic_handle_list, &gh->entry); - } - /* don't carry on parsing fields within this type */ - break; - } - if (is_attr(type->attrs, ATTR_WIREMARSHAL)) { - if (!user_type_registered(name)) - { - user_type_t *ut = xmalloc(sizeof *ut); - ut->name = xstrdup(name); - list_add_tail(&user_type_list, &ut->entry); - } - /* don't carry on parsing fields within this type as we are already - * using a wire marshaled type */ - break; - } - else if (type_is_complete(type)) - { - var_list_t *vars; - switch (type_get_type_detect_alias(type)) - { - case TYPE_ENUM: - vars = type_enum_get_values(type); - break; - case TYPE_STRUCT: - vars = type_struct_get_fields(type); - break; - case TYPE_UNION: - vars = type_union_get_cases(type); - break; - default: - vars = NULL; - break; - } - check_for_additional_prototype_types(vars); - } - - if (type_is_alias(type)) - type = type_alias_get_aliasee(type); - else if (is_ptr(type)) - type = type_pointer_get_ref(type); - else if (is_array(type)) - type = type_array_get_element(type); - else - break; - } - } -} - -static void write_user_types(FILE *header) -{ - user_type_t *ut; - LIST_FOR_EACH_ENTRY(ut, &user_type_list, user_type_t, entry) - { - const char *name = ut->name; - fprintf(header, "ULONG __RPC_USER %s_UserSize (ULONG *, ULONG, %s *);\n", name, name); - fprintf(header, "unsigned char * __RPC_USER %s_UserMarshal (ULONG *, unsigned char *, %s *);\n", name, name); - fprintf(header, "unsigned char * __RPC_USER %s_UserUnmarshal(ULONG *, unsigned char *, %s *);\n", name, name); - fprintf(header, "void __RPC_USER %s_UserFree (ULONG *, %s *);\n", name, name); - } -} - -static void write_context_handle_rundowns(FILE *header) -{ - context_handle_t *ch; - LIST_FOR_EACH_ENTRY(ch, &context_handle_list, context_handle_t, entry) - { - const char *name = ch->name; - fprintf(header, "void __RPC_USER %s_rundown(%s);\n", name, name); - } -} - -static void write_generic_handle_routines(FILE *header) -{ - generic_handle_t *gh; - LIST_FOR_EACH_ENTRY(gh, &generic_handle_list, generic_handle_t, entry) - { - const char *name = gh->name; - fprintf(header, "handle_t __RPC_USER %s_bind(%s);\n", name, name); - fprintf(header, "void __RPC_USER %s_unbind(%s, handle_t);\n", name, name); - } -} - -static void write_typedef(FILE *header, type_t *type) -{ - fprintf(header, "typedef "); - write_type_def_or_decl(header, type_alias_get_aliasee(type), FALSE, type->name); - fprintf(header, ";\n"); -} - -int is_const_decl(const var_t *var) -{ - const type_t *t; - /* strangely, MIDL accepts a const attribute on any pointer in the - * declaration to mean that data isn't being instantiated. this appears - * to be a bug, but there is no benefit to being incompatible with MIDL, - * so we'll do the same thing */ - for (t = var->type; ; ) - { - if (is_attr(t->attrs, ATTR_CONST)) - return TRUE; - else if (is_ptr(t)) - t = type_pointer_get_ref(t); - else break; - } - return FALSE; -} - -static void write_declaration(FILE *header, const var_t *v) -{ - if (is_const_decl(v) && v->eval) - { - fprintf(header, "#define %s (", v->name); - write_expr(header, v->eval, 0, 1, NULL, NULL, ""); - fprintf(header, ")\n\n"); - } - else - { - switch (v->stgclass) - { - case STG_NONE: - case STG_REGISTER: /* ignored */ - break; - case STG_STATIC: - fprintf(header, "static "); - break; - case STG_EXTERN: - fprintf(header, "extern "); - break; - } - write_type_def_or_decl(header, v->type, FALSE, v->name); - fprintf(header, ";\n\n"); - } -} - -static void write_library(FILE *header, const typelib_t *typelib) -{ - const UUID *uuid = get_attrp(typelib->attrs, ATTR_UUID); - fprintf(header, "\n"); - write_guid(header, "LIBID", typelib->name, uuid); - fprintf(header, "\n"); -} - - -const type_t* get_explicit_generic_handle_type(const var_t* var) -{ - const type_t *t; - for (t = var->type; - is_ptr(t) || type_is_alias(t); - t = type_is_alias(t) ? type_alias_get_aliasee(t) : type_pointer_get_ref(t)) - if ((type_get_type_detect_alias(t) != TYPE_BASIC || type_basic_get_type(t) != TYPE_BASIC_HANDLE) && - is_attr(t->attrs, ATTR_HANDLE)) - return t; - return NULL; -} - -const var_t *get_func_handle_var( const type_t *iface, const var_t *func, - unsigned char *explicit_fc, unsigned char *implicit_fc ) -{ - const var_t *var; - const var_list_t *args = type_get_function_args( func->type ); - - *explicit_fc = *implicit_fc = 0; - if (args) LIST_FOR_EACH_ENTRY( var, args, const var_t, entry ) - { - if (!is_attr( var->attrs, ATTR_IN ) && is_attr( var->attrs, ATTR_OUT )) continue; - if (type_get_type( var->type ) == TYPE_BASIC && type_basic_get_type( var->type ) == TYPE_BASIC_HANDLE) - { - *explicit_fc = RPC_FC_BIND_PRIMITIVE; - return var; - } - if (get_explicit_generic_handle_type( var )) - { - *explicit_fc = RPC_FC_BIND_GENERIC; - return var; - } - if (is_context_handle( var->type )) - { - *explicit_fc = RPC_FC_BIND_CONTEXT; - return var; - } - } - - if ((var = get_attrp( iface->attrs, ATTR_IMPLICIT_HANDLE ))) - { - if (type_get_type( var->type ) == TYPE_BASIC && - type_basic_get_type( var->type ) == TYPE_BASIC_HANDLE) - *implicit_fc = RPC_FC_BIND_PRIMITIVE; - else - *implicit_fc = RPC_FC_BIND_GENERIC; - return var; - } - - *implicit_fc = RPC_FC_AUTO_HANDLE; - return NULL; -} - -int has_out_arg_or_return(const var_t *func) -{ - const var_t *var; - - if (!is_void(type_function_get_rettype(func->type))) - return 1; - - if (!type_get_function_args(func->type)) - return 0; - - LIST_FOR_EACH_ENTRY( var, type_get_function_args(func->type), const var_t, entry ) - if (is_attr(var->attrs, ATTR_OUT)) - return 1; - - return 0; -} - - -/********** INTERFACES **********/ - -int is_object(const type_t *iface) -{ - const attr_t *attr; - if (type_is_defined(iface) && type_iface_get_inherit(iface)) - return 1; - if (iface->attrs) LIST_FOR_EACH_ENTRY( attr, iface->attrs, const attr_t, entry ) - if (attr->type == ATTR_OBJECT || attr->type == ATTR_ODL) return 1; - return 0; -} - -int is_local(const attr_list_t *a) -{ - return is_attr(a, ATTR_LOCAL); -} - -const var_t *is_callas(const attr_list_t *a) -{ - return get_attrp(a, ATTR_CALLAS); -} - -static int is_inherited_method(const type_t *iface, const var_t *func) -{ - while ((iface = type_iface_get_inherit(iface))) - { - const statement_t *stmt; - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) - { - const var_t *funccmp = stmt->u.var; - - if (!is_callas(func->attrs)) - { - char inherit_name[256]; - /* compare full name including property prefix */ - strcpy(inherit_name, get_name(funccmp)); - if (!strcmp(inherit_name, get_name(func))) return 1; - } - } - } - - return 0; -} - -static void write_method_macro(FILE *header, const type_t *iface, const char *name) -{ - const statement_t *stmt; - int first_iface = 1; - - if (type_iface_get_inherit(iface)) - write_method_macro(header, type_iface_get_inherit(iface), name); - - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) - { - const var_t *func = stmt->u.var; - - if (first_iface) - { - fprintf(header, "/*** %s methods ***/\n", iface->name); - first_iface = 0; - } - - if (!is_callas(func->attrs) && !is_inherited_method(iface, func)) { - const var_t *arg; - - fprintf(header, "#define %s_%s(This", name, get_name(func)); - if (type_get_function_args(func->type)) - LIST_FOR_EACH_ENTRY( arg, type_get_function_args(func->type), const var_t, entry ) - fprintf(header, ",%s", arg->name); - fprintf(header, ") "); - - fprintf(header, "(This)->lpVtbl->%s(This", get_name(func)); - if (type_get_function_args(func->type)) - LIST_FOR_EACH_ENTRY( arg, type_get_function_args(func->type), const var_t, entry ) - fprintf(header, ",%s", arg->name); - fprintf(header, ")\n"); - } - } -} - -void write_args(FILE *h, const var_list_t *args, const char *name, int method, int do_indent) -{ - const var_t *arg; - int count = 0; - - if (do_indent) - { - indentation++; - indent(h, 0); - } - if (method == 1) { - fprintf(h, "%s* This", name); - count++; - } - if (args) LIST_FOR_EACH_ENTRY( arg, args, const var_t, entry ) { - if (count) { - if (do_indent) - { - fprintf(h, ",\n"); - indent(h, 0); - } - else fprintf(h, ","); - } - write_type_decl(h, arg->type, arg->name); - if (method == 2) { - const expr_t *expr = get_attrp(arg->attrs, ATTR_DEFAULTVALUE); - if (expr) { - fprintf(h, " = "); - write_expr( h, expr, 0, 1, NULL, NULL, "" ); - } - } - count++; - } - if (do_indent) indentation--; -} - -static void write_cpp_method_def(FILE *header, const type_t *iface) -{ - const statement_t *stmt; - - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) - { - const var_t *func = stmt->u.var; - if (!is_callas(func->attrs)) { - const char *callconv = get_attrp(func->type->attrs, ATTR_CALLCONV); - if (!callconv) callconv = "STDMETHODCALLTYPE"; - indent(header, 0); - fprintf(header, "virtual "); - write_type_decl_left(header, type_function_get_rettype(func->type)); - fprintf(header, " %s %s(\n", callconv, get_name(func)); - write_args(header, type_get_function_args(func->type), iface->name, 2, TRUE); - fprintf(header, ") = 0;\n"); - fprintf(header, "\n"); - } - } -} - -static void write_inline_wrappers(FILE *header, const type_t *iface, const char *name) -{ - const statement_t *stmt; - int first_iface = 1; - - if (type_iface_get_inherit(iface)) - write_inline_wrappers(header, type_iface_get_inherit(iface), name); - - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) - { - const var_t *func = stmt->u.var; - - if (first_iface) - { - fprintf(header, "/*** %s methods ***/\n", iface->name); - first_iface = 0; - } - - if (!is_callas(func->attrs) && !is_inherited_method(iface, func)) { - const var_t *arg; - - fprintf(header, "static FORCEINLINE "); - write_type_decl_left(header, type_function_get_rettype(func->type)); - fprintf(header, " %s_%s(", name, get_name(func)); - write_args(header, type_get_function_args(func->type), name, 1, FALSE); - fprintf(header, ") {\n"); - fprintf(header, " %s", is_void(type_function_get_rettype(func->type)) ? "" : "return "); - fprintf(header, "This->lpVtbl->%s(This", get_name(func)); - if (type_get_function_args(func->type)) - LIST_FOR_EACH_ENTRY( arg, type_get_function_args(func->type), const var_t, entry ) - fprintf(header, ",%s", arg->name); - fprintf(header, ");\n"); - fprintf(header, "}\n"); - } - } -} - -static void do_write_c_method_def(FILE *header, const type_t *iface, const char *name) -{ - const statement_t *stmt; - int first_iface = 1; - - if (type_iface_get_inherit(iface)) - do_write_c_method_def(header, type_iface_get_inherit(iface), name); - - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) - { - const var_t *func = stmt->u.var; - if (first_iface) { - indent(header, 0); - fprintf(header, "/*** %s methods ***/\n", iface->name); - first_iface = 0; - } - if (!is_callas(func->attrs)) { - const char *callconv = get_attrp(func->type->attrs, ATTR_CALLCONV); - if (!callconv) callconv = "STDMETHODCALLTYPE"; - indent(header, 0); - write_type_decl_left(header, type_function_get_rettype(func->type)); - if (is_inherited_method(iface, func)) - fprintf(header, " (%s *%s_%s)(\n", callconv, iface->name, func->name); - else - fprintf(header, " (%s *%s)(\n", callconv, get_name(func)); - write_args(header, type_get_function_args(func->type), name, 1, TRUE); - fprintf(header, ");\n"); - fprintf(header, "\n"); - } - } -} - -static void write_c_method_def(FILE *header, const type_t *iface) -{ - do_write_c_method_def(header, iface, iface->name); -} - -static void write_c_disp_method_def(FILE *header, const type_t *iface) -{ - do_write_c_method_def(header, type_iface_get_inherit(iface), iface->name); -} - -static void write_method_proto(FILE *header, const type_t *iface) -{ - const statement_t *stmt; - - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) - { - const var_t *func = stmt->u.var; - - if (!is_local(func->attrs)) { - const char *callconv = get_attrp(func->type->attrs, ATTR_CALLCONV); - if (!callconv) callconv = "STDMETHODCALLTYPE"; - /* proxy prototype */ - write_type_decl_left(header, type_function_get_rettype(func->type)); - fprintf(header, " %s %s_%s_Proxy(\n", callconv, iface->name, get_name(func)); - write_args(header, type_get_function_args(func->type), iface->name, 1, TRUE); - fprintf(header, ");\n"); - /* stub prototype */ - fprintf(header, "void __RPC_STUB %s_%s_Stub(\n", iface->name, get_name(func)); - fprintf(header, " IRpcStubBuffer* This,\n"); - fprintf(header, " IRpcChannelBuffer* pRpcChannelBuffer,\n"); - fprintf(header, " PRPC_MESSAGE pRpcMessage,\n"); - fprintf(header, " DWORD* pdwStubPhase);\n"); - } - } -} - -static void write_locals(FILE *fp, const type_t *iface, int body) -{ - static const char comment[] - = "/* WIDL-generated stub. You must provide an implementation for this. */"; - const statement_t *stmt; - - if (!is_object(iface)) - return; - - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) { - const var_t *func = stmt->u.var; - const var_t *cas = is_callas(func->attrs); - - if (cas) { - const statement_t *stmt2 = NULL; - STATEMENTS_FOR_EACH_FUNC(stmt2, type_iface_get_stmts(iface)) - if (!strcmp(stmt2->u.var->name, cas->name)) - break; - if (&stmt2->entry != type_iface_get_stmts(iface)) { - const var_t *m = stmt2->u.var; - /* proxy prototype - use local prototype */ - write_type_decl_left(fp, type_function_get_rettype(m->type)); - fprintf(fp, " CALLBACK %s_%s_Proxy(\n", iface->name, get_name(m)); - write_args(fp, type_get_function_args(m->type), iface->name, 1, TRUE); - fprintf(fp, ")"); - if (body) { - type_t *rt = type_function_get_rettype(m->type); - fprintf(fp, "\n{\n"); - fprintf(fp, " %s\n", comment); - if (rt->name && strcmp(rt->name, "HRESULT") == 0) - fprintf(fp, " return E_NOTIMPL;\n"); - else if (type_get_type(rt) != TYPE_VOID) { - fprintf(fp, " "); - write_type_decl(fp, rt, "rv"); - fprintf(fp, ";\n"); - fprintf(fp, " memset(&rv, 0, sizeof rv);\n"); - fprintf(fp, " return rv;\n"); - } - fprintf(fp, "}\n\n"); - } - else - fprintf(fp, ";\n"); - /* stub prototype - use remotable prototype */ - write_type_decl_left(fp, type_function_get_rettype(func->type)); - fprintf(fp, " __RPC_STUB %s_%s_Stub(\n", iface->name, get_name(m)); - write_args(fp, type_get_function_args(func->type), iface->name, 1, TRUE); - fprintf(fp, ")"); - if (body) - /* Remotable methods must all return HRESULTs. */ - fprintf(fp, "\n{\n %s\n return E_NOTIMPL;\n}\n\n", comment); - else - fprintf(fp, ";\n"); - } - else - error_loc("invalid call_as attribute (%s -> %s)\n", func->name, cas->name); - } - } -} - -static void write_local_stubs_stmts(FILE *local_stubs, const statement_list_t *stmts) -{ - const statement_t *stmt; - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE) - write_locals(local_stubs, stmt->u.type, TRUE); - } -} - -void write_local_stubs(const statement_list_t *stmts) -{ - FILE *local_stubs; - - if (!local_stubs_name) return; - - local_stubs = fopen(local_stubs_name, "w"); - if (!local_stubs) { - error("Could not open %s for output\n", local_stubs_name); - return; - } - fprintf(local_stubs, "/* call_as/local stubs for %s */\n\n", input_name); - fprintf(local_stubs, "#include \n"); - fprintf(local_stubs, "#include \"%s\"\n\n", header_name); - - write_local_stubs_stmts(local_stubs, stmts); - - fclose(local_stubs); -} - -static void write_function_proto(FILE *header, const type_t *iface, const var_t *fun, const char *prefix) -{ - const char *callconv = get_attrp(fun->type->attrs, ATTR_CALLCONV); - - if (!callconv) callconv = "__cdecl"; - /* FIXME: do we need to handle call_as? */ - write_type_decl_left(header, type_function_get_rettype(fun->type)); - fprintf(header, " %s ", callconv); - fprintf(header, "%s%s(\n", prefix, get_name(fun)); - if (type_get_function_args(fun->type)) - write_args(header, type_get_function_args(fun->type), iface->name, 0, TRUE); - else - fprintf(header, " void"); - fprintf(header, ");\n\n"); -} - -static void write_forward(FILE *header, type_t *iface) -{ - fprintf(header, "#ifndef __%s_FWD_DEFINED__\n", iface->name); - fprintf(header, "#define __%s_FWD_DEFINED__\n", iface->name); - fprintf(header, "typedef interface %s %s;\n", iface->name, iface->name); - fprintf(header, "#endif\n\n" ); -} - -static void write_com_interface_start(FILE *header, const type_t *iface) -{ - int dispinterface = is_attr(iface->attrs, ATTR_DISPINTERFACE); - fprintf(header, "/*****************************************************************************\n"); - fprintf(header, " * %s %sinterface\n", iface->name, dispinterface ? "disp" : ""); - fprintf(header, " */\n"); - fprintf(header,"#ifndef __%s_%sINTERFACE_DEFINED__\n", iface->name, dispinterface ? "DISP" : ""); - fprintf(header,"#define __%s_%sINTERFACE_DEFINED__\n\n", iface->name, dispinterface ? "DISP" : ""); -} - -static void write_com_interface_end(FILE *header, type_t *iface) -{ - int dispinterface = is_attr(iface->attrs, ATTR_DISPINTERFACE); - const UUID *uuid = get_attrp(iface->attrs, ATTR_UUID); - - if (uuid) - write_guid(header, dispinterface ? "DIID" : "IID", iface->name, uuid); - - /* C++ interface */ - fprintf(header, "#if defined(__cplusplus) && !defined(CINTERFACE)\n"); - if (uuid) - fprintf(header, "MIDL_INTERFACE(\"%s\")\n", uuid_string(uuid)); - else - fprintf(header, "interface "); - if (type_iface_get_inherit(iface)) - { - fprintf(header, "%s : public %s\n", iface->name, - type_iface_get_inherit(iface)->name); - fprintf(header, "{\n"); - } - else - { - fprintf(header, "%s\n", iface->name); - fprintf(header, "{\n"); - fprintf(header, " BEGIN_INTERFACE\n"); - fprintf(header, "\n"); - } - /* dispinterfaces don't have real functions, so don't write C++ functions for - * them */ - if (!dispinterface) - { - indentation++; - write_cpp_method_def(header, iface); - indentation--; - } - if (!type_iface_get_inherit(iface)) - fprintf(header, " END_INTERFACE\n"); - fprintf(header, "};\n"); - if (uuid) - write_uuid_decl(header, iface->name, uuid); - fprintf(header, "#else\n"); - /* C interface */ - fprintf(header, "typedef struct %sVtbl {\n", iface->name); - indentation++; - fprintf(header, " BEGIN_INTERFACE\n"); - fprintf(header, "\n"); - if (dispinterface) - write_c_disp_method_def(header, iface); - else - write_c_method_def(header, iface); - indentation--; - fprintf(header, " END_INTERFACE\n"); - fprintf(header, "} %sVtbl;\n", iface->name); - fprintf(header, "interface %s {\n", iface->name); - fprintf(header, " CONST_VTBL %sVtbl* lpVtbl;\n", iface->name); - fprintf(header, "};\n"); - fprintf(header, "\n"); - fprintf(header, "#ifdef COBJMACROS\n"); - /* dispinterfaces don't have real functions, so don't write macros for them, - * only for the interface this interface inherits from, i.e. IDispatch */ - fprintf(header, "#ifndef WIDL_C_INLINE_WRAPPERS\n"); - write_method_macro(header, dispinterface ? type_iface_get_inherit(iface) : iface, iface->name); - fprintf(header, "#else\n"); - write_inline_wrappers(header, dispinterface ? type_iface_get_inherit(iface) : iface, iface->name); - fprintf(header, "#endif\n"); fprintf(header, "#endif\n"); - fprintf(header, "\n"); - fprintf(header, "#endif\n"); - fprintf(header, "\n"); - /* dispinterfaces don't have real functions, so don't write prototypes for - * them */ - if (!dispinterface) - { - write_method_proto(header, iface); - write_locals(header, iface, FALSE); - fprintf(header, "\n"); - } - fprintf(header,"#endif /* __%s_%sINTERFACE_DEFINED__ */\n\n", iface->name, dispinterface ? "DISP" : ""); -} - -static void write_rpc_interface_start(FILE *header, const type_t *iface) -{ - unsigned int ver = get_attrv(iface->attrs, ATTR_VERSION); - const var_t *var = get_attrp(iface->attrs, ATTR_IMPLICIT_HANDLE); - - fprintf(header, "/*****************************************************************************\n"); - fprintf(header, " * %s interface (v%d.%d)\n", iface->name, MAJORVERSION(ver), MINORVERSION(ver)); - fprintf(header, " */\n"); - fprintf(header,"#ifndef __%s_INTERFACE_DEFINED__\n", iface->name); - fprintf(header,"#define __%s_INTERFACE_DEFINED__\n\n", iface->name); - if (var) - { - fprintf(header, "extern "); - write_type_decl( header, var->type, var->name ); - fprintf(header, ";\n"); - } - if (old_names) - { - fprintf(header, "extern RPC_IF_HANDLE %s%s_ClientIfHandle;\n", prefix_client, iface->name); - fprintf(header, "extern RPC_IF_HANDLE %s%s_ServerIfHandle;\n", prefix_server, iface->name); - } - else - { - fprintf(header, "extern RPC_IF_HANDLE %s%s_v%d_%d_c_ifspec;\n", - prefix_client, iface->name, MAJORVERSION(ver), MINORVERSION(ver)); - fprintf(header, "extern RPC_IF_HANDLE %s%s_v%d_%d_s_ifspec;\n", - prefix_server, iface->name, MAJORVERSION(ver), MINORVERSION(ver)); - } -} - -static void write_rpc_interface_end(FILE *header, const type_t *iface) -{ - fprintf(header,"\n#endif /* __%s_INTERFACE_DEFINED__ */\n\n", iface->name); -} - -static void write_coclass(FILE *header, type_t *cocl) -{ - const UUID *uuid = get_attrp(cocl->attrs, ATTR_UUID); - - fprintf(header, "/*****************************************************************************\n"); - fprintf(header, " * %s coclass\n", cocl->name); - fprintf(header, " */\n\n"); - if (uuid) - write_guid(header, "CLSID", cocl->name, uuid); - fprintf(header, "\n#ifdef __cplusplus\n"); - if (uuid) - { - fprintf(header, "class DECLSPEC_UUID(\"%s\") %s;\n", uuid_string(uuid), cocl->name); - write_uuid_decl(header, cocl->name, uuid); - } - else - { - fprintf(header, "class %s;\n", cocl->name); - } - fprintf(header, "#endif\n"); - fprintf(header, "\n"); -} - -static void write_coclass_forward(FILE *header, type_t *cocl) -{ - fprintf(header, "#ifndef __%s_FWD_DEFINED__\n", cocl->name); - fprintf(header, "#define __%s_FWD_DEFINED__\n", cocl->name); - fprintf(header, "typedef struct %s %s;\n", cocl->name, cocl->name); - fprintf(header, "#endif /* defined __%s_FWD_DEFINED__ */\n\n", cocl->name ); -} - -static void write_import(FILE *header, const char *fname) -{ - char *hname, *p; - - hname = dup_basename(fname, ".idl"); - p = hname + strlen(hname) - 2; - if (p <= hname || strcmp( p, ".h" )) strcat(hname, ".h"); - - fprintf(header, "#include <%s>\n", hname); - free(hname); -} - -static void write_imports(FILE *header, const statement_list_t *stmts) -{ - const statement_t *stmt; - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - switch (stmt->type) - { - case STMT_TYPE: - if (type_get_type(stmt->u.type) == TYPE_INTERFACE) - write_imports(header, type_iface_get_stmts(stmt->u.type)); - break; - case STMT_TYPEREF: - case STMT_IMPORTLIB: - /* not included in header */ - break; - case STMT_IMPORT: - write_import(header, stmt->u.str); - break; - case STMT_TYPEDEF: - case STMT_MODULE: - case STMT_CPPQUOTE: - case STMT_DECLARATION: - /* not processed here */ - break; - case STMT_LIBRARY: - write_imports(header, stmt->u.lib->stmts); - break; - } - } -} - -static void write_forward_decls(FILE *header, const statement_list_t *stmts) -{ - const statement_t *stmt; - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - switch (stmt->type) - { - case STMT_TYPE: - if (type_get_type(stmt->u.type) == TYPE_INTERFACE) - { - if (is_object(stmt->u.type) || is_attr(stmt->u.type->attrs, ATTR_DISPINTERFACE)) - write_forward(header, stmt->u.type); - } - else if (type_get_type(stmt->u.type) == TYPE_COCLASS) - write_coclass_forward(header, stmt->u.type); - break; - case STMT_TYPEREF: - case STMT_IMPORTLIB: - /* not included in header */ - break; - case STMT_IMPORT: - case STMT_TYPEDEF: - case STMT_MODULE: - case STMT_CPPQUOTE: - case STMT_DECLARATION: - /* not processed here */ - break; - case STMT_LIBRARY: - write_forward_decls(header, stmt->u.lib->stmts); - break; - } - } -} - -static void write_header_stmts(FILE *header, const statement_list_t *stmts, const type_t *iface, int ignore_funcs) -{ - const statement_t *stmt; - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - switch (stmt->type) - { - case STMT_TYPE: - if (type_get_type(stmt->u.type) == TYPE_INTERFACE) - { - type_t *iface = stmt->u.type; - if (is_object(iface)) is_object_interface++; - if (is_attr(stmt->u.type->attrs, ATTR_DISPINTERFACE) || is_object(stmt->u.type)) - { - write_com_interface_start(header, iface); - write_header_stmts(header, type_iface_get_stmts(iface), stmt->u.type, TRUE); - write_com_interface_end(header, iface); - } - else - { - write_rpc_interface_start(header, iface); - write_header_stmts(header, type_iface_get_stmts(iface), iface, FALSE); - write_rpc_interface_end(header, iface); - } - if (is_object(iface)) is_object_interface--; - } - else if (type_get_type(stmt->u.type) == TYPE_COCLASS) - write_coclass(header, stmt->u.type); - else - { - write_type_def_or_decl(header, stmt->u.type, FALSE, NULL); - fprintf(header, ";\n\n"); - } - break; - case STMT_TYPEREF: - /* FIXME: shouldn't write out forward declarations for undefined - * interfaces but a number of our IDL files depend on this */ - if (type_get_type(stmt->u.type) == TYPE_INTERFACE && !stmt->u.type->written) - write_forward(header, stmt->u.type); - break; - case STMT_IMPORTLIB: - case STMT_MODULE: - /* not included in header */ - break; - case STMT_IMPORT: - /* not processed here */ - break; - case STMT_TYPEDEF: - { - const type_list_t *type_entry = stmt->u.type_list; - for (; type_entry; type_entry = type_entry->next) - write_typedef(header, type_entry->type); - break; - } - case STMT_LIBRARY: - write_library(header, stmt->u.lib); - write_header_stmts(header, stmt->u.lib->stmts, NULL, FALSE); - break; - case STMT_CPPQUOTE: - fprintf(header, "%s\n", stmt->u.str); - break; - case STMT_DECLARATION: - if (iface && type_get_type(stmt->u.var->type) == TYPE_FUNCTION) - { - if (!ignore_funcs) - { - int prefixes_differ = strcmp(prefix_client, prefix_server); - - if (prefixes_differ) - { - fprintf(header, "/* client prototype */\n"); - write_function_proto(header, iface, stmt->u.var, prefix_client); - fprintf(header, "/* server prototype */\n"); - } - write_function_proto(header, iface, stmt->u.var, prefix_server); - } - } - else - write_declaration(header, stmt->u.var); - break; - } - } -} - -void write_header(const statement_list_t *stmts) -{ - FILE *header; - - if (!do_header) return; - - if(!(header = fopen(header_name, "w"))) { - error("Could not open %s for output\n", header_name); - return; - } - fprintf(header, "/*** Autogenerated by WIDL %s from %s - Do not edit ***/\n\n", PACKAGE_VERSION, input_name); - - fprintf(header, "#ifndef __REQUIRED_RPCNDR_H_VERSION__\n"); - fprintf(header, "#define __REQUIRED_RPCNDR_H_VERSION__ 475\n"); - fprintf(header, "#endif\n\n"); - - fprintf(header, "#include \n" ); - fprintf(header, "#include \n\n" ); - - fprintf(header, "#ifndef COM_NO_WINDOWS_H\n"); - fprintf(header, "#include \n"); - fprintf(header, "#include \n"); - fprintf(header, "#endif\n\n"); - - fprintf(header, "#ifndef __%s__\n", header_token); - fprintf(header, "#define __%s__\n\n", header_token); - - fprintf(header, "/* Forward declarations */\n\n"); - write_forward_decls(header, stmts); - - fprintf(header, "/* Headers for imported files */\n\n"); - write_imports(header, stmts); - fprintf(header, "\n"); - start_cplusplus_guard(header); - - write_header_stmts(header, stmts, NULL, FALSE); - - fprintf(header, "/* Begin additional prototypes for all interfaces */\n"); - fprintf(header, "\n"); - write_user_types(header); - write_generic_handle_routines(header); - write_context_handle_rundowns(header); - fprintf(header, "\n"); - fprintf(header, "/* End additional prototypes */\n"); - fprintf(header, "\n"); - - end_cplusplus_guard(header); - fprintf(header, "#endif /* __%s__ */\n", header_token); - - fclose(header); -} diff --git a/reactos/tools/widl/header.h b/reactos/tools/widl/header.h deleted file mode 100644 index 6d056db2df5..00000000000 --- a/reactos/tools/widl/header.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * IDL Compiler - * - * Copyright 2002 Ove Kaaven - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef __WIDL_HEADER_H -#define __WIDL_HEADER_H - -#include "typetree.h" - -extern int is_ptrchain_attr(const var_t *var, enum attr_type t); -extern int is_aliaschain_attr(const type_t *var, enum attr_type t); -extern int is_attr(const attr_list_t *list, enum attr_type t); -extern void *get_attrp(const attr_list_t *list, enum attr_type t); -extern unsigned int get_attrv(const attr_list_t *list, enum attr_type t); -extern int is_void(const type_t *t); -extern int is_conformant_array(const type_t *t); -extern int is_declptr(const type_t *t); -extern const char* get_name(const var_t *v); -extern void write_type_left(FILE *h, type_t *t, int declonly); -extern void write_type_right(FILE *h, type_t *t, int is_field); -extern void write_type_decl(FILE *f, type_t *t, const char *name); -extern void write_type_decl_left(FILE *f, type_t *t); -extern unsigned int get_context_handle_offset( const type_t *type ); -extern unsigned int get_generic_handle_offset( const type_t *type ); -extern int needs_space_after(type_t *t); -extern int is_object(const type_t *iface); -extern int is_local(const attr_list_t *list); -extern int count_methods(const type_t *iface); -extern int need_stub(const type_t *iface); -extern int need_proxy(const type_t *iface); -extern int need_inline_stubs(const type_t *iface); -extern int need_stub_files(const statement_list_t *stmts); -extern int need_proxy_file(const statement_list_t *stmts); -extern int need_inline_stubs_file(const statement_list_t *stmts); -extern const var_t *is_callas(const attr_list_t *list); -extern void write_args(FILE *h, const var_list_t *arg, const char *name, int obj, int do_indent); -extern void write_array(FILE *h, array_dims_t *v, int field); -extern const type_t* get_explicit_generic_handle_type(const var_t* var); -extern const var_t *get_func_handle_var( const type_t *iface, const var_t *func, - unsigned char *explicit_fc, unsigned char *implicit_fc ); -extern int has_out_arg_or_return(const var_t *func); -extern void write_guid(FILE *f, const char *guid_prefix, const char *name, - const UUID *uuid); -extern int is_const_decl(const var_t *var); - -static inline int last_ptr(const type_t *type) -{ - return is_ptr(type) && !is_declptr(type_pointer_get_ref(type)); -} - -static inline int last_array(const type_t *type) -{ - return is_array(type) && !is_array(type_array_get_element(type)); -} - -static inline int is_string_type(const attr_list_t *attrs, const type_t *type) -{ - return ((is_attr(attrs, ATTR_STRING) || is_aliaschain_attr(type, ATTR_STRING)) - && (last_ptr(type) || last_array(type))); -} - -static inline int is_context_handle(const type_t *type) -{ - const type_t *t; - for (t = type; - is_ptr(t) || type_is_alias(t); - t = type_is_alias(t) ? type_alias_get_aliasee(t) : type_pointer_get_ref(t)) - if (is_attr(t->attrs, ATTR_CONTEXTHANDLE)) - return 1; - return 0; -} - -#endif diff --git a/reactos/tools/widl/parser.h b/reactos/tools/widl/parser.h deleted file mode 100644 index 1bcc3c182f2..00000000000 --- a/reactos/tools/widl/parser.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * IDL Compiler - * - * Copyright 2002 Ove Kaaven - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef __WIDL_PARSER_H -#define __WIDL_PARSER_H - -typedef struct -{ - type_t *interface; - unsigned char old_pointer_default; -} interface_info_t; - -int parser_parse(void); - -extern FILE *parser_in; -extern char *parser_text; -extern int parser_debug; -extern int yy_flex_debug; - -int parser_lex(void); - -extern int import_stack_ptr; -int do_import(char *fname); -void abort_import(void); -void pop_import(void); - -#define parse_only import_stack_ptr - -int is_type(const char *name); - -extern char *temp_name; - -#endif diff --git a/reactos/tools/widl/parser.l b/reactos/tools/widl/parser.l deleted file mode 100644 index e80616792b4..00000000000 --- a/reactos/tools/widl/parser.l +++ /dev/null @@ -1,536 +0,0 @@ -/* -*-C-*- - * IDL Compiler - * - * Copyright 2002 Ove Kaaven - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -%option stack -%option noinput nounput noyy_top_state -%option 8bit never-interactive prefix="parser_" - -nl \r?\n -ws [ \f\t\r] -cident [a-zA-Z_][0-9a-zA-Z_]* -u_suffix (u|U) -l_suffix (l|L) -int [0-9]+({l_suffix}?{u_suffix}?|{u_suffix}?{l_suffix}?)? -hexd [0-9a-fA-F] -hex 0(x|X){hexd}+({l_suffix}?{u_suffix}?|{u_suffix}?{l_suffix}?)? -uuid {hexd}{8}-{hexd}{4}-{hexd}{4}-{hexd}{4}-{hexd}{12} -double [0-9]+\.[0-9]+([eE][+-]?[0-9]+)* - -%x QUOTE -%x WSTRQUOTE -%x ATTR -%x PP_LINE -%x SQUOTE - -%{ - -#include "config.h" -#include "wine/port.h" - -#include -#include -#include -#include -#include -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#else -#define YY_NO_UNISTD_H -#endif - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "wine/wpp.h" - -#include "parser.tab.h" - -static void addcchar(char c); -static char *get_buffered_cstring(void); - -static char *cbuffer; -static int cbufidx; -static int cbufalloc = 0; - -static int kw_token(const char *kw); -static int attr_token(const char *kw); - -#define MAX_IMPORT_DEPTH 10 -struct { - YY_BUFFER_STATE state; - char *input_name; - int line_number; - char *temp_name; -} import_stack[MAX_IMPORT_DEPTH]; -int import_stack_ptr = 0; - -/* converts an integer in string form to an unsigned long and prints an error - * on overflow */ -static unsigned int xstrtoul(const char *nptr, char **endptr, int base) -{ - unsigned long val; - - errno = 0; - val = strtoul(nptr, endptr, base); - if ((val == ULONG_MAX && errno == ERANGE) || ((unsigned int)val != val)) - error_loc("integer constant %s is too large\n", nptr); - return val; -} - -UUID *parse_uuid(const char *u) -{ - UUID* uuid = xmalloc(sizeof(UUID)); - char b[3]; - /* it would be nice to use UuidFromStringA */ - uuid->Data1 = strtoul(u, NULL, 16); - uuid->Data2 = strtoul(u+9, NULL, 16); - uuid->Data3 = strtoul(u+14, NULL, 16); - b[2] = 0; - memcpy(b, u+19, 2); uuid->Data4[0] = strtoul(b, NULL, 16); - memcpy(b, u+21, 2); uuid->Data4[1] = strtoul(b, NULL, 16); - memcpy(b, u+24, 2); uuid->Data4[2] = strtoul(b, NULL, 16); - memcpy(b, u+26, 2); uuid->Data4[3] = strtoul(b, NULL, 16); - memcpy(b, u+28, 2); uuid->Data4[4] = strtoul(b, NULL, 16); - memcpy(b, u+30, 2); uuid->Data4[5] = strtoul(b, NULL, 16); - memcpy(b, u+32, 2); uuid->Data4[6] = strtoul(b, NULL, 16); - memcpy(b, u+34, 2); uuid->Data4[7] = strtoul(b, NULL, 16); - return uuid; -} - -%} - -/* - ************************************************************************** - * The flexer starts here - ************************************************************************** - */ -%% -^{ws}*\#{ws}* yy_push_state(PP_LINE); -[^\n]* { - int lineno; - char *cptr, *fname; - yy_pop_state(); - lineno = (int)strtol(yytext, &cptr, 10); - if(!lineno) - error_loc("Malformed '#...' line-directive; invalid linenumber\n"); - fname = strchr(cptr, '"'); - if(!fname) - error_loc("Malformed '#...' line-directive; missing filename\n"); - fname++; - cptr = strchr(fname, '"'); - if(!cptr) - error_loc("Malformed '#...' line-directive; missing terminating \"\n"); - *cptr = '\0'; - line_number = lineno - 1; /* We didn't read the newline */ - input_name = xstrdup(fname); - } -\" yy_push_state(QUOTE); cbufidx = 0; -\" { - yy_pop_state(); - parser_lval.str = get_buffered_cstring(); - return aSTRING; - } -L\" yy_push_state(WSTRQUOTE); cbufidx = 0; -\" { - yy_pop_state(); - parser_lval.str = get_buffered_cstring(); - return aWSTRING; - } -\' yy_push_state(SQUOTE); cbufidx = 0; -\' { - yy_pop_state(); - parser_lval.str = get_buffered_cstring(); - return aSQSTRING; - } -\\\\ | -\\\" addcchar(yytext[1]); -\\\' addcchar(yytext[1]); -\\. addcchar('\\'); addcchar(yytext[1]); -. addcchar(yytext[0]); -\[ yy_push_state(ATTR); return '['; -\] yy_pop_state(); return ']'; -{cident} return attr_token(yytext); -{uuid} { - parser_lval.uuid = parse_uuid(yytext); - return aUUID; - } -{hex} { - parser_lval.num = xstrtoul(yytext, NULL, 0); - return aHEXNUM; - } -{int} { - parser_lval.num = xstrtoul(yytext, NULL, 0); - return aNUM; - } -{double} { - parser_lval.dbl = strtod(yytext, NULL); - return aDOUBLE; - } -SAFEARRAY{ws}*/\( return tSAFEARRAY; -{cident} return kw_token(yytext); -\n line_number++; -{ws} -\<\< return SHL; -\>\> return SHR; -\-\> return MEMBERPTR; -== return EQUALITY; -!= return INEQUALITY; -\>= return GREATEREQUAL; -\<= return LESSEQUAL; -\|\| return LOGICALOR; -&& return LOGICALAND; -\.\.\. return ELLIPSIS; -. return yytext[0]; -<> { - if (import_stack_ptr) - return aEOF; - else yyterminate(); - } -%% - -#ifndef parser_wrap -int parser_wrap(void) -{ - return 1; -} -#endif - -struct keyword { - const char *kw; - int token; -}; - -/* This table MUST be alphabetically sorted on the kw field */ -static const struct keyword keywords[] = { - {"FALSE", tFALSE}, - {"NULL", tNULL}, - {"TRUE", tTRUE}, - {"__cdecl", tCDECL}, - {"__fastcall", tFASTCALL}, - {"__int3264", tINT3264}, - {"__int64", tINT64}, - {"__pascal", tPASCAL}, - {"__stdcall", tSTDCALL}, - {"_cdecl", tCDECL}, - {"_fastcall", tFASTCALL}, - {"_pascal", tPASCAL}, - {"_stdcall", tSTDCALL}, - {"boolean", tBOOLEAN}, - {"byte", tBYTE}, - {"case", tCASE}, - {"cdecl", tCDECL}, - {"char", tCHAR}, - {"coclass", tCOCLASS}, - {"const", tCONST}, - {"cpp_quote", tCPPQUOTE}, - {"default", tDEFAULT}, - {"dispinterface", tDISPINTERFACE}, - {"double", tDOUBLE}, - {"enum", tENUM}, - {"error_status_t", tERRORSTATUST}, - {"extern", tEXTERN}, - {"float", tFLOAT}, - {"handle_t", tHANDLET}, - {"hyper", tHYPER}, - {"import", tIMPORT}, - {"importlib", tIMPORTLIB}, - {"inline", tINLINE}, - {"int", tINT}, - {"interface", tINTERFACE}, - {"library", tLIBRARY}, - {"long", tLONG}, - {"methods", tMETHODS}, - {"module", tMODULE}, - {"pascal", tPASCAL}, - {"properties", tPROPERTIES}, - {"register", tREGISTER}, - {"short", tSHORT}, - {"signed", tSIGNED}, - {"sizeof", tSIZEOF}, - {"small", tSMALL}, - {"static", tSTATIC}, - {"stdcall", tSTDCALL}, - {"struct", tSTRUCT}, - {"switch", tSWITCH}, - {"typedef", tTYPEDEF}, - {"union", tUNION}, - {"unsigned", tUNSIGNED}, - {"void", tVOID}, - {"wchar_t", tWCHAR}, -}; -#define NKEYWORDS (sizeof(keywords)/sizeof(keywords[0])) - -/* keywords only recognized in attribute lists - * This table MUST be alphabetically sorted on the kw field - */ -static const struct keyword attr_keywords[] = -{ - {"aggregatable", tAGGREGATABLE}, - {"allocate", tALLOCATE}, - {"annotation", tANNOTATION}, - {"apartment", tAPARTMENT}, - {"appobject", tAPPOBJECT}, - {"async", tASYNC}, - {"async_uuid", tASYNCUUID}, - {"auto_handle", tAUTOHANDLE}, - {"bindable", tBINDABLE}, - {"both", tBOTH}, - {"broadcast", tBROADCAST}, - {"byte_count", tBYTECOUNT}, - {"call_as", tCALLAS}, - {"callback", tCALLBACK}, - {"code", tCODE}, - {"comm_status", tCOMMSTATUS}, - {"context_handle", tCONTEXTHANDLE}, - {"context_handle_noserialize", tCONTEXTHANDLENOSERIALIZE}, - {"context_handle_serialize", tCONTEXTHANDLENOSERIALIZE}, - {"control", tCONTROL}, - {"decode", tDECODE}, - {"defaultbind", tDEFAULTBIND}, - {"defaultcollelem", tDEFAULTCOLLELEM}, - {"defaultvalue", tDEFAULTVALUE}, - {"defaultvtable", tDEFAULTVTABLE}, - {"disable_consistency_check", tDISABLECONSISTENCYCHECK}, - {"displaybind", tDISPLAYBIND}, - {"dllname", tDLLNAME}, - {"dual", tDUAL}, - {"enable_allocate", tENABLEALLOCATE}, - {"encode", tENCODE}, - {"endpoint", tENDPOINT}, - {"entry", tENTRY}, - {"explicit_handle", tEXPLICITHANDLE}, - {"fault_status", tFAULTSTATUS}, - {"force_allocate", tFORCEALLOCATE}, - {"free", tFREE}, - {"handle", tHANDLE}, - {"helpcontext", tHELPCONTEXT}, - {"helpfile", tHELPFILE}, - {"helpstring", tHELPSTRING}, - {"helpstringcontext", tHELPSTRINGCONTEXT}, - {"helpstringdll", tHELPSTRINGDLL}, - {"hidden", tHIDDEN}, - {"id", tID}, - {"idempotent", tIDEMPOTENT}, - {"ignore", tIGNORE}, - {"iid_is", tIIDIS}, - {"immediatebind", tIMMEDIATEBIND}, - {"implicit_handle", tIMPLICITHANDLE}, - {"in", tIN}, - {"in_line", tIN_LINE}, - {"input_sync", tINPUTSYNC}, - {"lcid", tLCID}, - {"length_is", tLENGTHIS}, - {"licensed", tLICENSED}, - {"local", tLOCAL}, - {"maybe", tMAYBE}, - {"message", tMESSAGE}, - {"neutral", tNEUTRAL}, - {"nocode", tNOCODE}, - {"nonbrowsable", tNONBROWSABLE}, - {"noncreatable", tNONCREATABLE}, - {"nonextensible", tNONEXTENSIBLE}, - {"notify", tNOTIFY}, - {"notify_flag", tNOTIFYFLAG}, - {"object", tOBJECT}, - {"odl", tODL}, - {"oleautomation", tOLEAUTOMATION}, - {"optimize", tOPTIMIZE}, - {"optional", tOPTIONAL}, - {"out", tOUT}, - {"partial_ignore", tPARTIALIGNORE}, - {"pointer_default", tPOINTERDEFAULT}, - {"progid", tPROGID}, - {"propget", tPROPGET}, - {"propput", tPROPPUT}, - {"propputref", tPROPPUTREF}, - {"proxy", tPROXY}, - {"ptr", tPTR}, - {"public", tPUBLIC}, - {"range", tRANGE}, - {"readonly", tREADONLY}, - {"ref", tREF}, - {"represent_as", tREPRESENTAS}, - {"requestedit", tREQUESTEDIT}, - {"restricted", tRESTRICTED}, - {"retval", tRETVAL}, - {"single", tSINGLE}, - {"size_is", tSIZEIS}, - {"source", tSOURCE}, - {"strict_context_handle", tSTRICTCONTEXTHANDLE}, - {"string", tSTRING}, - {"switch_is", tSWITCHIS}, - {"switch_type", tSWITCHTYPE}, - {"threading", tTHREADING}, - {"transmit_as", tTRANSMITAS}, - {"uidefault", tUIDEFAULT}, - {"unique", tUNIQUE}, - {"user_marshal", tUSERMARSHAL}, - {"usesgetlasterror", tUSESGETLASTERROR}, - {"uuid", tUUID}, - {"v1_enum", tV1ENUM}, - {"vararg", tVARARG}, - {"version", tVERSION}, - {"vi_progid", tVIPROGID}, - {"wire_marshal", tWIREMARSHAL}, -}; - -/* attributes TODO: - custom - first_is - last_is - max_is - min_is -*/ - -#define KWP(p) ((const struct keyword *)(p)) - -static int kw_cmp_func(const void *s1, const void *s2) -{ - return strcmp(KWP(s1)->kw, KWP(s2)->kw); -} - -static int kw_token(const char *kw) -{ - struct keyword key, *kwp; - key.kw = kw; - kwp = bsearch(&key, keywords, NKEYWORDS, sizeof(keywords[0]), kw_cmp_func); - if (kwp) { - parser_lval.str = xstrdup(kwp->kw); - return kwp->token; - } - parser_lval.str = xstrdup(kw); - return is_type(kw) ? aKNOWNTYPE : aIDENTIFIER; -} - -static int attr_token(const char *kw) -{ - struct keyword key, *kwp; - key.kw = kw; - kwp = bsearch(&key, attr_keywords, sizeof(attr_keywords)/sizeof(attr_keywords[0]), - sizeof(attr_keywords[0]), kw_cmp_func); - if (kwp) { - parser_lval.str = xstrdup(kwp->kw); - return kwp->token; - } - return kw_token(kw); -} - -static void addcchar(char c) -{ - if(cbufidx >= cbufalloc) - { - cbufalloc += 1024; - cbuffer = xrealloc(cbuffer, cbufalloc * sizeof(cbuffer[0])); - if(cbufalloc > 65536) - parser_warning("Reallocating string buffer larger than 64kB\n"); - } - cbuffer[cbufidx++] = c; -} - -static char *get_buffered_cstring(void) -{ - addcchar(0); - return xstrdup(cbuffer); -} - -void pop_import(void) -{ - int ptr = import_stack_ptr-1; - - fclose(yyin); - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( import_stack[ptr].state ); - if (temp_name) { - unlink(temp_name); - free(temp_name); - } - temp_name = import_stack[ptr].temp_name; - input_name = import_stack[ptr].input_name; - line_number = import_stack[ptr].line_number; - import_stack_ptr--; -} - -struct imports { - char *name; - struct imports *next; -} *first_import; - -int do_import(char *fname) -{ - FILE *f; - char *path, *name; - struct imports *import; - int ptr = import_stack_ptr; - int ret, fd; - - import = first_import; - while (import && strcmp(import->name, fname)) - import = import->next; - if (import) return 0; /* already imported */ - - import = xmalloc(sizeof(struct imports)); - import->name = xstrdup(fname); - import->next = first_import; - first_import = import; - - /* don't search for a file name with a path in the include directories, - * for compatibility with MIDL */ - if (strchr( fname, '/' ) || strchr( fname, '\\' )) - path = xstrdup( fname ); - else if (!(path = wpp_find_include( fname, input_name ))) - error_loc("Unable to open include file %s\n", fname); - - import_stack[ptr].temp_name = temp_name; - import_stack[ptr].input_name = input_name; - import_stack[ptr].line_number = line_number; - import_stack_ptr++; - input_name = path; - line_number = 1; - - name = xstrdup( "widl.XXXXXX" ); - if((fd = mkstemps( name, 0 )) == -1) - error("Could not generate a temp name from %s\n", name); - - temp_name = name; - if (!(f = fdopen(fd, "wt"))) - error("Could not open fd %s for writing\n", name); - - ret = wpp_parse( path, f ); - fclose( f ); - if (ret) exit(1); - - if((f = fopen(temp_name, "r")) == NULL) - error_loc("Unable to open %s\n", temp_name); - - import_stack[ptr].state = YY_CURRENT_BUFFER; - yy_switch_to_buffer(yy_create_buffer(f, YY_BUF_SIZE)); - return 1; -} - -void abort_import(void) -{ - int ptr; - - for (ptr=0; ptr. */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -/* Identify Bison output. */ -#define YYBISON 1 - -/* Bison version. */ -#define YYBISON_VERSION "2.5" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 0 - -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - -/* Using locations. */ -#define YYLSP_NEEDED 0 - -/* Substitute the variable and function names. */ -#define yyparse parser_parse -#define yylex parser_lex -#define yyerror parser_error -#define yylval parser_lval -#define yychar parser_char -#define yydebug parser_debug -#define yynerrs parser_nerrs - - -/* Copy the first part of user declarations. */ - -/* Line 268 of yacc.c */ -#line 1 "parser.y" - -/* - * IDL Compiler - * - * Copyright 2002 Ove Kaaven - * Copyright 2006-2008 Robert Shearman - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "header.h" -#include "typelib.h" -#include "typegen.h" -#include "expr.h" -#include "typetree.h" - -#if defined(YYBYACC) - /* Berkeley yacc (byacc) doesn't seem to know about these */ - /* Some *BSD supplied versions do define these though */ -# ifndef YYEMPTY -# define YYEMPTY (-1) /* Empty lookahead value of yychar */ -# endif -# ifndef YYLEX -# define YYLEX yylex() -# endif - -#elif defined(YYBISON) - /* Bison was used for original development */ - /* #define YYEMPTY -2 */ - /* #define YYLEX yylex() */ - -#else - /* No yacc we know yet */ -# if !defined(YYEMPTY) || !defined(YYLEX) -# error Yacc version/type unknown. This version needs to be verified for settings of YYEMPTY and YYLEX. -# elif defined(__GNUC__) /* gcc defines the #warning directive */ -# warning Yacc version/type unknown. It defines YYEMPTY and YYLEX, but is not tested - /* #else we just take a chance that it works... */ -# endif -#endif - -#define YYERROR_VERBOSE - -static unsigned char pointer_default = RPC_FC_UP; - -typedef struct list typelist_t; -struct typenode { - type_t *type; - struct list entry; -}; - -struct _import_t -{ - char *name; - int import_performed; -}; - -typedef struct _decl_spec_t -{ - type_t *type; - attr_list_t *attrs; - enum storage_class stgclass; -} decl_spec_t; - -typelist_t incomplete_types = LIST_INIT(incomplete_types); - -static void fix_incomplete(void); -static void fix_incomplete_types(type_t *complete_type); - -static str_list_t *append_str(str_list_t *list, char *str); -static attr_list_t *append_attr(attr_list_t *list, attr_t *attr); -static attr_list_t *append_attr_list(attr_list_t *new_list, attr_list_t *old_list); -static decl_spec_t *make_decl_spec(type_t *type, decl_spec_t *left, decl_spec_t *right, attr_t *attr, enum storage_class stgclass); -static attr_t *make_attr(enum attr_type type); -static attr_t *make_attrv(enum attr_type type, unsigned int val); -static attr_t *make_attrp(enum attr_type type, void *val); -static expr_list_t *append_expr(expr_list_t *list, expr_t *expr); -static array_dims_t *append_array(array_dims_t *list, expr_t *expr); -static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, const declarator_t *decl, int top); -static var_list_t *set_var_types(attr_list_t *attrs, decl_spec_t *decl_spec, declarator_list_t *decls); -static ifref_list_t *append_ifref(ifref_list_t *list, ifref_t *iface); -static ifref_t *make_ifref(type_t *iface); -static var_list_t *append_var_list(var_list_t *list, var_list_t *vars); -static declarator_list_t *append_declarator(declarator_list_t *list, declarator_t *p); -static declarator_t *make_declarator(var_t *var); -static type_t *make_safearray(type_t *type); -static typelib_t *make_library(const char *name, const attr_list_t *attrs); -static type_t *append_ptrchain_type(type_t *ptrchain, type_t *type); - -static type_t *reg_typedefs(decl_spec_t *decl_spec, var_list_t *names, attr_list_t *attrs); -static type_t *find_type_or_error(const char *name, int t); -static type_t *find_type_or_error2(char *name, int t); - -static var_t *reg_const(var_t *var); - -static char *gen_name(void); -static void check_arg_attrs(const var_t *arg); -static void check_statements(const statement_list_t *stmts, int is_inside_library); -static void check_all_user_types(const statement_list_t *stmts); -static attr_list_t *check_iface_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_function_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_typedef_attrs(attr_list_t *attrs); -static attr_list_t *check_enum_attrs(attr_list_t *attrs); -static attr_list_t *check_struct_attrs(attr_list_t *attrs); -static attr_list_t *check_union_attrs(attr_list_t *attrs); -static attr_list_t *check_field_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_library_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_dispiface_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_module_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_coclass_attrs(const char *name, attr_list_t *attrs); -const char *get_attr_display_name(enum attr_type type); -static void add_explicit_handle_if_necessary(const type_t *iface, var_t *func); -static void check_def(const type_t *t); - -static statement_t *make_statement(enum statement_type type); -static statement_t *make_statement_type_decl(type_t *type); -static statement_t *make_statement_reference(type_t *type); -static statement_t *make_statement_declaration(var_t *var); -static statement_t *make_statement_library(typelib_t *typelib); -static statement_t *make_statement_cppquote(const char *str); -static statement_t *make_statement_importlib(const char *str); -static statement_t *make_statement_module(type_t *type); -static statement_t *make_statement_typedef(var_list_t *names); -static statement_t *make_statement_import(const char *str); -static statement_t *make_statement_typedef(var_list_t *names); -static statement_list_t *append_statement(statement_list_t *list, statement_t *stmt); - - - -/* Line 268 of yacc.c */ -#line 233 "parser.tab.c" - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - aIDENTIFIER = 258, - aKNOWNTYPE = 259, - aNUM = 260, - aHEXNUM = 261, - aDOUBLE = 262, - aSTRING = 263, - aWSTRING = 264, - aSQSTRING = 265, - aUUID = 266, - aEOF = 267, - SHL = 268, - SHR = 269, - MEMBERPTR = 270, - EQUALITY = 271, - INEQUALITY = 272, - GREATEREQUAL = 273, - LESSEQUAL = 274, - LOGICALOR = 275, - LOGICALAND = 276, - ELLIPSIS = 277, - tAGGREGATABLE = 278, - tALLOCATE = 279, - tANNOTATION = 280, - tAPPOBJECT = 281, - tASYNC = 282, - tASYNCUUID = 283, - tAUTOHANDLE = 284, - tBINDABLE = 285, - tBOOLEAN = 286, - tBROADCAST = 287, - tBYTE = 288, - tBYTECOUNT = 289, - tCALLAS = 290, - tCALLBACK = 291, - tCASE = 292, - tCDECL = 293, - tCHAR = 294, - tCOCLASS = 295, - tCODE = 296, - tCOMMSTATUS = 297, - tCONST = 298, - tCONTEXTHANDLE = 299, - tCONTEXTHANDLENOSERIALIZE = 300, - tCONTEXTHANDLESERIALIZE = 301, - tCONTROL = 302, - tCPPQUOTE = 303, - tDECODE = 304, - tDEFAULT = 305, - tDEFAULTBIND = 306, - tDEFAULTCOLLELEM = 307, - tDEFAULTVALUE = 308, - tDEFAULTVTABLE = 309, - tDISABLECONSISTENCYCHECK = 310, - tDISPLAYBIND = 311, - tDISPINTERFACE = 312, - tDLLNAME = 313, - tDOUBLE = 314, - tDUAL = 315, - tENABLEALLOCATE = 316, - tENCODE = 317, - tENDPOINT = 318, - tENTRY = 319, - tENUM = 320, - tERRORSTATUST = 321, - tEXPLICITHANDLE = 322, - tEXTERN = 323, - tFALSE = 324, - tFASTCALL = 325, - tFAULTSTATUS = 326, - tFLOAT = 327, - tFORCEALLOCATE = 328, - tHANDLE = 329, - tHANDLET = 330, - tHELPCONTEXT = 331, - tHELPFILE = 332, - tHELPSTRING = 333, - tHELPSTRINGCONTEXT = 334, - tHELPSTRINGDLL = 335, - tHIDDEN = 336, - tHYPER = 337, - tID = 338, - tIDEMPOTENT = 339, - tIGNORE = 340, - tIIDIS = 341, - tIMMEDIATEBIND = 342, - tIMPLICITHANDLE = 343, - tIMPORT = 344, - tIMPORTLIB = 345, - tIN = 346, - tIN_LINE = 347, - tINLINE = 348, - tINPUTSYNC = 349, - tINT = 350, - tINT3264 = 351, - tINT64 = 352, - tINTERFACE = 353, - tLCID = 354, - tLENGTHIS = 355, - tLIBRARY = 356, - tLICENSED = 357, - tLOCAL = 358, - tLONG = 359, - tMAYBE = 360, - tMESSAGE = 361, - tMETHODS = 362, - tMODULE = 363, - tNOCODE = 364, - tNONBROWSABLE = 365, - tNONCREATABLE = 366, - tNONEXTENSIBLE = 367, - tNOTIFY = 368, - tNOTIFYFLAG = 369, - tNULL = 370, - tOBJECT = 371, - tODL = 372, - tOLEAUTOMATION = 373, - tOPTIMIZE = 374, - tOPTIONAL = 375, - tOUT = 376, - tPARTIALIGNORE = 377, - tPASCAL = 378, - tPOINTERDEFAULT = 379, - tPROGID = 380, - tPROPERTIES = 381, - tPROPGET = 382, - tPROPPUT = 383, - tPROPPUTREF = 384, - tPROXY = 385, - tPTR = 386, - tPUBLIC = 387, - tRANGE = 388, - tREADONLY = 389, - tREF = 390, - tREGISTER = 391, - tREPRESENTAS = 392, - tREQUESTEDIT = 393, - tRESTRICTED = 394, - tRETVAL = 395, - tSAFEARRAY = 396, - tSHORT = 397, - tSIGNED = 398, - tSIZEIS = 399, - tSIZEOF = 400, - tSMALL = 401, - tSOURCE = 402, - tSTATIC = 403, - tSTDCALL = 404, - tSTRICTCONTEXTHANDLE = 405, - tSTRING = 406, - tSTRUCT = 407, - tSWITCH = 408, - tSWITCHIS = 409, - tSWITCHTYPE = 410, - tTHREADING = 411, - tTRANSMITAS = 412, - tTRUE = 413, - tTYPEDEF = 414, - tUIDEFAULT = 415, - tUNION = 416, - tUNIQUE = 417, - tUNSIGNED = 418, - tUSESGETLASTERROR = 419, - tUSERMARSHAL = 420, - tUUID = 421, - tV1ENUM = 422, - tVARARG = 423, - tVERSION = 424, - tVIPROGID = 425, - tVOID = 426, - tWCHAR = 427, - tWIREMARSHAL = 428, - tAPARTMENT = 429, - tNEUTRAL = 430, - tSINGLE = 431, - tFREE = 432, - tBOTH = 433, - ADDRESSOF = 434, - NEG = 435, - POS = 436, - PPTR = 437, - CAST = 438 - }; -#endif - - - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -{ - -/* Line 293 of yacc.c */ -#line 153 "parser.y" - - attr_t *attr; - attr_list_t *attr_list; - str_list_t *str_list; - expr_t *expr; - expr_list_t *expr_list; - array_dims_t *array_dims; - type_t *type; - var_t *var; - var_list_t *var_list; - declarator_t *declarator; - declarator_list_t *declarator_list; - statement_t *statement; - statement_list_t *stmt_list; - ifref_t *ifref; - ifref_list_t *ifref_list; - char *str; - UUID *uuid; - unsigned int num; - double dbl; - interface_info_t ifinfo; - typelib_t *typelib; - struct _import_t *import; - struct _decl_spec_t *declspec; - enum storage_class stgclass; - - - -/* Line 293 of yacc.c */ -#line 481 "parser.tab.c" -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - - -/* Copy the second part of user declarations. */ - - -/* Line 343 of yacc.c */ -#line 493 "parser.tab.c" - -#ifdef short -# undef short -#endif - -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; -#endif - -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; -#else -typedef short int yytype_int8; -#endif - -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; -#else -typedef unsigned short int yytype_uint16; -#endif - -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; -#else -typedef short int yytype_int16; -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned int -# endif -#endif - -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) - -#ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS -# if ENABLE_NLS -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) -# endif -# endif -# ifndef YY_ -# define YY_(msgid) msgid -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) -#else -# define YYUSE(e) /* empty */ -#endif - -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) -#else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int yyi) -#else -static int -YYID (yyi) - int yyi; -#endif -{ - return yyi; -} -#endif - -#if ! defined yyoverflow || YYERROR_VERBOSE - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# elif defined __BUILTIN_VA_ARG_INCR -# include /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -# endif -# else -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -# endif -# if (defined __cplusplus && ! defined EXIT_SUCCESS \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - - -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - yytype_int16 yyss_alloc; - YYSTYPE yyvs_alloc; -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - -# define YYCOPY_NEEDED 1 - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) - -#endif - -#if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif -#endif /* !YYCOPY_NEEDED */ - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 3 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2733 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 208 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 100 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 381 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 662 - -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 -#define YYMAXUTOK 438 - -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const yytype_uint8 yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 192, 2, 2, 2, 191, 184, 2, - 203, 204, 189, 188, 179, 187, 199, 190, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 181, 202, - 185, 207, 186, 180, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 200, 2, 201, 183, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 205, 182, 206, 193, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 194, 195, 196, 197, 198 -}; - -#if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 5, 6, 9, 12, 16, 19, 22, - 25, 28, 29, 32, 35, 39, 42, 45, 48, 51, - 54, 55, 58, 59, 61, 63, 66, 69, 71, 74, - 76, 79, 81, 84, 86, 89, 92, 95, 98, 103, - 107, 111, 117, 120, 124, 129, 130, 132, 134, 138, - 140, 144, 148, 151, 155, 159, 162, 163, 165, 169, - 171, 175, 180, 182, 186, 187, 189, 194, 196, 198, - 200, 202, 204, 209, 214, 216, 218, 220, 222, 224, - 226, 228, 230, 232, 234, 239, 241, 243, 245, 250, - 252, 254, 256, 261, 266, 268, 270, 272, 274, 279, - 284, 289, 294, 299, 301, 306, 308, 310, 315, 317, - 322, 324, 326, 331, 336, 338, 340, 342, 344, 346, - 348, 350, 352, 354, 356, 358, 360, 362, 364, 369, - 371, 373, 375, 380, 385, 387, 389, 391, 393, 395, - 402, 404, 409, 411, 413, 415, 420, 422, 424, 426, - 431, 436, 441, 446, 448, 450, 455, 460, 462, 464, - 469, 474, 479, 481, 483, 485, 487, 489, 491, 493, - 494, 497, 502, 506, 507, 510, 512, 514, 518, 522, - 524, 530, 532, 536, 537, 539, 541, 543, 545, 547, - 549, 551, 553, 555, 557, 559, 565, 569, 573, 577, - 581, 585, 589, 593, 597, 601, 605, 609, 613, 617, - 621, 625, 629, 633, 637, 640, 643, 646, 649, 652, - 655, 659, 663, 669, 675, 680, 684, 686, 690, 692, - 694, 695, 698, 703, 707, 710, 713, 714, 717, 720, - 722, 726, 729, 731, 735, 738, 739, 741, 742, 744, - 746, 748, 750, 752, 754, 756, 759, 762, 764, 766, - 768, 770, 772, 774, 775, 777, 779, 782, 784, 787, - 790, 792, 794, 796, 799, 802, 805, 811, 812, 815, - 818, 821, 824, 827, 830, 834, 837, 841, 847, 853, - 854, 857, 860, 863, 866, 873, 882, 885, 888, 891, - 894, 897, 900, 906, 908, 910, 912, 914, 916, 917, - 920, 923, 927, 928, 930, 933, 936, 939, 943, 946, - 948, 950, 954, 957, 962, 966, 969, 971, 975, 978, - 979, 981, 985, 988, 990, 994, 999, 1003, 1006, 1008, - 1012, 1015, 1016, 1018, 1020, 1024, 1027, 1029, 1033, 1038, - 1040, 1044, 1045, 1048, 1051, 1053, 1057, 1059, 1063, 1065, - 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1085, 1087, 1089, - 1091, 1093, 1096, 1098, 1101, 1103, 1106, 1111, 1116, 1122, - 1133, 1135 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 209, 0, -1, 210, -1, -1, 210, 275, -1, 210, - 274, -1, 210, 261, 202, -1, 210, 263, -1, 210, - 278, -1, 210, 222, -1, 210, 214, -1, -1, 211, - 275, -1, 211, 274, -1, 211, 261, 202, -1, 211, - 263, -1, 211, 278, -1, 211, 214, -1, 211, 219, - -1, 211, 222, -1, -1, 212, 214, -1, -1, 202, - -1, 216, -1, 215, 202, -1, 254, 202, -1, 218, - -1, 305, 202, -1, 240, -1, 65, 3, -1, 303, - -1, 152, 3, -1, 306, -1, 161, 3, -1, 229, - 240, -1, 229, 303, -1, 229, 306, -1, 48, 203, - 8, 204, -1, 89, 8, 202, -1, 217, 211, 12, - -1, 90, 203, 8, 204, 213, -1, 101, 3, -1, - 229, 220, 205, -1, 221, 211, 206, 213, -1, -1, - 225, -1, 226, -1, 224, 179, 226, -1, 224, -1, - 224, 179, 22, -1, 229, 283, 294, -1, 283, 294, - -1, 200, 243, 201, -1, 200, 189, 201, -1, 200, - 201, -1, -1, 229, -1, 200, 230, 201, -1, 232, - -1, 230, 179, 232, -1, 230, 201, 200, 232, -1, - 8, -1, 231, 179, 8, -1, -1, 23, -1, 25, - 203, 8, 204, -1, 26, -1, 27, -1, 29, -1, - 30, -1, 32, -1, 35, 203, 257, 204, -1, 37, - 203, 244, 204, -1, 41, -1, 42, -1, 44, -1, - 45, -1, 46, -1, 47, -1, 49, -1, 50, -1, - 51, -1, 52, -1, 53, 203, 246, 204, -1, 54, - -1, 55, -1, 56, -1, 58, 203, 8, 204, -1, - 60, -1, 61, -1, 62, -1, 63, 203, 231, 204, - -1, 64, 203, 246, 204, -1, 67, -1, 71, -1, - 73, -1, 74, -1, 76, 203, 245, 204, -1, 77, - 203, 8, 204, -1, 78, 203, 8, 204, -1, 79, - 203, 245, 204, -1, 80, 203, 8, 204, -1, 81, - -1, 83, 203, 245, 204, -1, 84, -1, 85, -1, - 86, 203, 243, 204, -1, 87, -1, 88, 203, 226, - 204, -1, 91, -1, 94, -1, 100, 203, 241, 204, - -1, 99, 203, 245, 204, -1, 99, -1, 102, -1, - 103, -1, 105, -1, 106, -1, 109, -1, 110, -1, - 111, -1, 112, -1, 113, -1, 114, -1, 116, -1, - 117, -1, 118, -1, 119, 203, 8, 204, -1, 120, - -1, 121, -1, 122, -1, 124, 203, 302, 204, -1, - 125, 203, 8, 204, -1, 127, -1, 128, -1, 129, - -1, 130, -1, 132, -1, 133, 203, 245, 179, 245, - 204, -1, 134, -1, 137, 203, 304, 204, -1, 138, - -1, 139, -1, 140, -1, 144, 203, 241, 204, -1, - 147, -1, 150, -1, 151, -1, 154, 203, 243, 204, - -1, 155, 203, 304, 204, -1, 157, 203, 304, 204, - -1, 156, 203, 301, 204, -1, 160, -1, 164, -1, - 165, 203, 304, 204, -1, 166, 203, 233, 204, -1, - 167, -1, 168, -1, 169, 203, 307, 204, -1, 170, - 203, 8, 204, -1, 173, 203, 304, 204, -1, 302, - -1, 11, -1, 8, -1, 38, -1, 70, -1, 123, - -1, 149, -1, -1, 235, 236, -1, 37, 245, 181, - 251, -1, 50, 181, 251, -1, -1, 238, 179, -1, - 238, -1, 239, -1, 238, 179, 239, -1, 257, 207, - 245, -1, 257, -1, 65, 256, 205, 237, 206, -1, - 242, -1, 241, 179, 242, -1, -1, 243, -1, 5, - -1, 6, -1, 7, -1, 69, -1, 115, -1, 158, - -1, 8, -1, 9, -1, 10, -1, 3, -1, 243, - 180, 243, 181, 243, -1, 243, 20, 243, -1, 243, - 21, 243, -1, 243, 182, 243, -1, 243, 183, 243, - -1, 243, 184, 243, -1, 243, 16, 243, -1, 243, - 17, 243, -1, 243, 186, 243, -1, 243, 185, 243, - -1, 243, 18, 243, -1, 243, 19, 243, -1, 243, - 13, 243, -1, 243, 14, 243, -1, 243, 188, 243, - -1, 243, 187, 243, -1, 243, 191, 243, -1, 243, - 189, 243, -1, 243, 190, 243, -1, 192, 243, -1, - 193, 243, -1, 188, 243, -1, 187, 243, -1, 184, - 243, -1, 189, 243, -1, 243, 15, 3, -1, 243, - 199, 3, -1, 203, 283, 290, 204, 243, -1, 145, - 203, 283, 290, 204, -1, 243, 200, 243, 201, -1, - 203, 243, 204, -1, 245, -1, 244, 179, 245, -1, - 243, -1, 243, -1, -1, 247, 248, -1, 228, 283, - 299, 202, -1, 228, 306, 202, -1, 252, 202, -1, - 229, 202, -1, -1, 250, 249, -1, 252, 202, -1, - 202, -1, 228, 283, 286, -1, 228, 303, -1, 254, - -1, 229, 283, 300, -1, 283, 300, -1, -1, 257, - -1, -1, 3, -1, 4, -1, 3, -1, 4, -1, - 33, -1, 172, -1, 260, -1, 143, 260, -1, 163, - 260, -1, 163, -1, 72, -1, 59, -1, 31, -1, - 66, -1, 75, -1, -1, 95, -1, 95, -1, 142, - 259, -1, 146, -1, 104, 259, -1, 82, 259, -1, - 97, -1, 39, -1, 96, -1, 40, 3, -1, 40, - 4, -1, 229, 261, -1, 262, 205, 264, 206, 213, - -1, -1, 264, 265, -1, 228, 275, -1, 57, 3, - -1, 57, 4, -1, 229, 266, -1, 126, 181, -1, - 268, 252, 202, -1, 107, 181, -1, 269, 253, 202, - -1, 267, 205, 268, 269, 206, -1, 267, 205, 272, - 202, 206, -1, -1, 181, 4, -1, 98, 3, -1, - 98, 4, -1, 229, 272, -1, 273, 271, 205, 212, - 206, 213, -1, 273, 181, 3, 205, 218, 212, 206, - 213, -1, 270, 213, -1, 272, 202, -1, 266, 202, - -1, 108, 3, -1, 108, 4, -1, 229, 276, -1, - 277, 205, 212, 206, 213, -1, 68, -1, 148, -1, - 136, -1, 93, -1, 43, -1, -1, 282, 281, -1, - 304, 284, -1, 285, 304, 284, -1, -1, 285, -1, - 281, 284, -1, 280, 284, -1, 279, 284, -1, 189, - 282, 286, -1, 234, 286, -1, 287, -1, 257, -1, - 203, 286, 204, -1, 287, 227, -1, 287, 203, 223, - 204, -1, 189, 282, 290, -1, 234, 290, -1, 291, - -1, 189, 282, 294, -1, 234, 294, -1, -1, 288, - -1, 203, 289, 204, -1, 291, 227, -1, 227, -1, - 203, 223, 204, -1, 291, 203, 223, 204, -1, 189, - 282, 294, -1, 234, 294, -1, 295, -1, 189, 282, - 294, -1, 234, 294, -1, -1, 292, -1, 257, -1, - 203, 293, 204, -1, 295, 227, -1, 227, -1, 203, - 223, 204, -1, 295, 203, 223, 204, -1, 286, -1, - 296, 179, 286, -1, -1, 181, 246, -1, 292, 297, - -1, 298, -1, 299, 179, 298, -1, 286, -1, 286, - 207, 246, -1, 174, -1, 175, -1, 176, -1, 177, - -1, 178, -1, 135, -1, 162, -1, 131, -1, 152, - 256, 205, 247, 206, -1, 171, -1, 4, -1, 258, - -1, 240, -1, 65, 3, -1, 303, -1, 152, 3, - -1, 306, -1, 161, 3, -1, 141, 203, 304, 204, - -1, 159, 228, 283, 296, -1, 161, 256, 205, 250, - 206, -1, 161, 256, 153, 203, 252, 204, 255, 205, - 235, 206, -1, 5, -1, 5, 199, 5, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = -{ - 0, 328, 328, 342, 343, 344, 345, 348, 351, 352, - 353, 356, 357, 358, 359, 360, 363, 364, 365, 366, - 369, 370, 373, 374, 378, 379, 380, 381, 382, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 397, 399, - 407, 413, 417, 419, 423, 430, 431, 434, 435, 438, - 439, 443, 448, 455, 459, 460, 463, 464, 468, 471, - 472, 473, 476, 477, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 585, 586, 591, 592, 593, 594, 597, - 598, 601, 605, 611, 612, 613, 616, 620, 629, 633, - 638, 641, 642, 645, 646, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 688, 690, 691, 694, 695, 698, 704, - 710, 711, 714, 719, 726, 727, 730, 731, 735, 736, - 739, 743, 749, 757, 761, 766, 767, 770, 771, 772, - 775, 777, 780, 781, 782, 783, 784, 785, 786, 787, - 788, 789, 790, 793, 794, 797, 798, 799, 800, 801, - 802, 803, 804, 807, 808, 816, 822, 826, 827, 831, - 834, 835, 838, 847, 848, 851, 852, 855, 861, 867, - 868, 871, 872, 875, 885, 892, 898, 902, 903, 906, - 907, 910, 915, 922, 923, 924, 928, 932, 935, 936, - 939, 940, 944, 945, 949, 950, 951, 955, 957, 959, - 963, 964, 965, 966, 974, 976, 978, 983, 985, 990, - 991, 996, 997, 998, 999, 1004, 1013, 1015, 1016, 1021, - 1023, 1027, 1028, 1035, 1036, 1037, 1038, 1039, 1044, 1052, - 1053, 1056, 1057, 1060, 1067, 1068, 1073, 1074, 1078, 1079, - 1080, 1081, 1082, 1086, 1087, 1088, 1091, 1094, 1095, 1096, - 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1106, 1112, 1114, - 1120, 1121 -}; -#endif - -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "$end", "error", "$undefined", "aIDENTIFIER", "aKNOWNTYPE", "aNUM", - "aHEXNUM", "aDOUBLE", "aSTRING", "aWSTRING", "aSQSTRING", "aUUID", - "aEOF", "SHL", "SHR", "MEMBERPTR", "EQUALITY", "INEQUALITY", - "GREATEREQUAL", "LESSEQUAL", "LOGICALOR", "LOGICALAND", "ELLIPSIS", - "tAGGREGATABLE", "tALLOCATE", "tANNOTATION", "tAPPOBJECT", "tASYNC", - "tASYNCUUID", "tAUTOHANDLE", "tBINDABLE", "tBOOLEAN", "tBROADCAST", - "tBYTE", "tBYTECOUNT", "tCALLAS", "tCALLBACK", "tCASE", "tCDECL", - "tCHAR", "tCOCLASS", "tCODE", "tCOMMSTATUS", "tCONST", "tCONTEXTHANDLE", - "tCONTEXTHANDLENOSERIALIZE", "tCONTEXTHANDLESERIALIZE", "tCONTROL", - "tCPPQUOTE", "tDECODE", "tDEFAULT", "tDEFAULTBIND", "tDEFAULTCOLLELEM", - "tDEFAULTVALUE", "tDEFAULTVTABLE", "tDISABLECONSISTENCYCHECK", - "tDISPLAYBIND", "tDISPINTERFACE", "tDLLNAME", "tDOUBLE", "tDUAL", - "tENABLEALLOCATE", "tENCODE", "tENDPOINT", "tENTRY", "tENUM", - "tERRORSTATUST", "tEXPLICITHANDLE", "tEXTERN", "tFALSE", "tFASTCALL", - "tFAULTSTATUS", "tFLOAT", "tFORCEALLOCATE", "tHANDLE", "tHANDLET", - "tHELPCONTEXT", "tHELPFILE", "tHELPSTRING", "tHELPSTRINGCONTEXT", - "tHELPSTRINGDLL", "tHIDDEN", "tHYPER", "tID", "tIDEMPOTENT", "tIGNORE", - "tIIDIS", "tIMMEDIATEBIND", "tIMPLICITHANDLE", "tIMPORT", "tIMPORTLIB", - "tIN", "tIN_LINE", "tINLINE", "tINPUTSYNC", "tINT", "tINT3264", "tINT64", - "tINTERFACE", "tLCID", "tLENGTHIS", "tLIBRARY", "tLICENSED", "tLOCAL", - "tLONG", "tMAYBE", "tMESSAGE", "tMETHODS", "tMODULE", "tNOCODE", - "tNONBROWSABLE", "tNONCREATABLE", "tNONEXTENSIBLE", "tNOTIFY", - "tNOTIFYFLAG", "tNULL", "tOBJECT", "tODL", "tOLEAUTOMATION", "tOPTIMIZE", - "tOPTIONAL", "tOUT", "tPARTIALIGNORE", "tPASCAL", "tPOINTERDEFAULT", - "tPROGID", "tPROPERTIES", "tPROPGET", "tPROPPUT", "tPROPPUTREF", - "tPROXY", "tPTR", "tPUBLIC", "tRANGE", "tREADONLY", "tREF", "tREGISTER", - "tREPRESENTAS", "tREQUESTEDIT", "tRESTRICTED", "tRETVAL", "tSAFEARRAY", - "tSHORT", "tSIGNED", "tSIZEIS", "tSIZEOF", "tSMALL", "tSOURCE", - "tSTATIC", "tSTDCALL", "tSTRICTCONTEXTHANDLE", "tSTRING", "tSTRUCT", - "tSWITCH", "tSWITCHIS", "tSWITCHTYPE", "tTHREADING", "tTRANSMITAS", - "tTRUE", "tTYPEDEF", "tUIDEFAULT", "tUNION", "tUNIQUE", "tUNSIGNED", - "tUSESGETLASTERROR", "tUSERMARSHAL", "tUUID", "tV1ENUM", "tVARARG", - "tVERSION", "tVIPROGID", "tVOID", "tWCHAR", "tWIREMARSHAL", "tAPARTMENT", - "tNEUTRAL", "tSINGLE", "tFREE", "tBOTH", "','", "'?'", "':'", "'|'", - "'^'", "'&'", "'<'", "'>'", "'-'", "'+'", "'*'", "'/'", "'%'", "'!'", - "'~'", "ADDRESSOF", "NEG", "POS", "PPTR", "CAST", "'.'", "'['", "']'", - "';'", "'('", "')'", "'{'", "'}'", "'='", "$accept", "input", - "gbl_statements", "imp_statements", "int_statements", "semicolon_opt", - "statement", "typedecl", "cppquote", "import_start", "import", - "importlib", "libraryhdr", "library_start", "librarydef", "m_args", - "arg_list", "args", "arg", "array", "m_attributes", "attributes", - "attrib_list", "str_list", "attribute", "uuid_string", "callconv", - "cases", "case", "enums", "enum_list", "enum", "enumdef", "m_exprs", - "m_expr", "expr", "expr_list_int_const", "expr_int_const", "expr_const", - "fields", "field", "ne_union_field", "ne_union_fields", "union_field", - "s_field", "funcdef", "declaration", "m_ident", "t_ident", "ident", - "base_type", "m_int", "int_std", "coclass", "coclasshdr", "coclassdef", - "coclass_ints", "coclass_int", "dispinterface", "dispinterfacehdr", - "dispint_props", "dispint_meths", "dispinterfacedef", "inherit", - "interface", "interfacehdr", "interfacedef", "interfacedec", "module", - "modulehdr", "moduledef", "storage_cls_spec", "function_specifier", - "type_qualifier", "m_type_qual_list", "decl_spec", "m_decl_spec_no_type", - "decl_spec_no_type", "declarator", "direct_declarator", - "abstract_declarator", "abstract_declarator_no_direct", - "m_abstract_declarator", "abstract_direct_declarator", "any_declarator", - "any_declarator_no_direct", "m_any_declarator", "any_direct_declarator", - "declarator_list", "m_bitfield", "struct_declarator", - "struct_declarator_list", "init_declarator", "threading_type", - "pointer_type", "structdef", "type", "typedef", "uniondef", "version", 0 -}; -#endif - -# ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const yytype_uint16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 44, - 63, 58, 124, 94, 38, 60, 62, 45, 43, 42, - 47, 37, 33, 126, 434, 435, 436, 437, 438, 46, - 91, 93, 59, 40, 41, 123, 125, 61 -}; -# endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 208, 209, 210, 210, 210, 210, 210, 210, 210, - 210, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 212, 212, 213, 213, 214, 214, 214, 214, 214, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 223, 224, 224, 225, - 225, 226, 226, 227, 227, 227, 228, 228, 229, 230, - 230, 230, 231, 231, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 233, 233, 234, 234, 234, 234, 235, - 235, 236, 236, 237, 237, 237, 238, 238, 239, 239, - 240, 241, 241, 242, 242, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 244, 244, 245, 246, - 247, 247, 248, 248, 249, 249, 250, 250, 251, 251, - 252, 252, 253, 254, 254, 255, 255, 256, 256, 256, - 257, 257, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 259, 259, 260, 260, 260, 260, 260, - 260, 260, 260, 261, 261, 262, 263, 264, 264, 265, - 266, 266, 267, 268, 268, 269, 269, 270, 270, 271, - 271, 272, 272, 273, 274, 274, 274, 275, 275, 276, - 276, 277, 278, 279, 279, 279, 280, 281, 282, 282, - 283, 283, 284, 284, 285, 285, 285, 286, 286, 286, - 287, 287, 287, 287, 288, 288, 288, 289, 289, 290, - 290, 291, 291, 291, 291, 291, 292, 292, 292, 293, - 293, 294, 294, 295, 295, 295, 295, 295, 295, 296, - 296, 297, 297, 298, 299, 299, 300, 300, 301, 301, - 301, 301, 301, 302, 302, 302, 303, 304, 304, 304, - 304, 304, 304, 304, 304, 304, 304, 305, 306, 306, - 307, 307 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 1, 0, 2, 2, 3, 2, 2, 2, - 2, 0, 2, 2, 3, 2, 2, 2, 2, 2, - 0, 2, 0, 1, 1, 2, 2, 1, 2, 1, - 2, 1, 2, 1, 2, 2, 2, 2, 4, 3, - 3, 5, 2, 3, 4, 0, 1, 1, 3, 1, - 3, 3, 2, 3, 3, 2, 0, 1, 3, 1, - 3, 4, 1, 3, 0, 1, 4, 1, 1, 1, - 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 4, 1, - 1, 1, 4, 4, 1, 1, 1, 1, 4, 4, - 4, 4, 4, 1, 4, 1, 1, 4, 1, 4, - 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - 1, 1, 4, 4, 1, 1, 1, 1, 1, 6, - 1, 4, 1, 1, 1, 4, 1, 1, 1, 4, - 4, 4, 4, 1, 1, 4, 4, 1, 1, 4, - 4, 4, 1, 1, 1, 1, 1, 1, 1, 0, - 2, 4, 3, 0, 2, 1, 1, 3, 3, 1, - 5, 1, 3, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 5, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, - 3, 3, 5, 5, 4, 3, 1, 3, 1, 1, - 0, 2, 4, 3, 2, 2, 0, 2, 2, 1, - 3, 2, 1, 3, 2, 0, 1, 0, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, - 1, 1, 1, 0, 1, 1, 2, 1, 2, 2, - 1, 1, 1, 2, 2, 2, 5, 0, 2, 2, - 2, 2, 2, 2, 3, 2, 3, 5, 5, 0, - 2, 2, 2, 2, 6, 8, 2, 2, 2, 2, - 2, 2, 5, 1, 1, 1, 1, 1, 0, 2, - 2, 3, 0, 1, 2, 2, 2, 3, 2, 1, - 1, 3, 2, 4, 3, 2, 1, 3, 2, 0, - 1, 3, 2, 1, 3, 4, 3, 2, 1, 3, - 2, 0, 1, 1, 3, 2, 1, 3, 4, 1, - 3, 0, 2, 2, 1, 3, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, - 1, 2, 1, 2, 1, 2, 4, 4, 5, 10, - 1, 3 -}; - -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint16 yydefact[] = -{ - 3, 0, 2, 1, 368, 260, 252, 271, 0, 307, - 0, 0, 259, 247, 261, 303, 258, 262, 263, 0, - 306, 265, 272, 270, 0, 263, 305, 0, 263, 0, - 267, 304, 247, 56, 247, 257, 367, 253, 64, 10, - 0, 24, 11, 27, 11, 9, 0, 370, 0, 369, - 254, 0, 0, 7, 0, 0, 22, 0, 289, 5, - 4, 0, 8, 312, 312, 312, 0, 0, 372, 312, - 0, 374, 273, 274, 0, 280, 281, 371, 249, 0, - 264, 269, 0, 291, 292, 268, 0, 266, 255, 373, - 0, 0, 57, 375, 0, 256, 65, 0, 67, 68, - 69, 70, 71, 0, 0, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 0, 85, 86, 87, 0, - 89, 90, 91, 0, 0, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 103, 0, 105, 106, 0, 108, - 0, 110, 111, 114, 0, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 0, 129, - 130, 131, 0, 0, 134, 135, 136, 137, 365, 138, - 0, 140, 363, 0, 142, 143, 144, 0, 146, 147, - 148, 0, 0, 0, 0, 153, 364, 154, 0, 0, - 157, 158, 0, 0, 0, 0, 59, 162, 25, 0, - 0, 247, 0, 0, 247, 247, 0, 370, 275, 282, - 293, 301, 0, 372, 374, 26, 6, 277, 298, 0, - 23, 296, 297, 0, 0, 20, 316, 313, 315, 314, - 250, 251, 165, 166, 167, 168, 308, 0, 0, 320, - 356, 319, 244, 370, 372, 312, 374, 310, 28, 0, - 173, 39, 0, 230, 0, 0, 236, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 183, 0, 0, 0, 0, 0, 183, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, - 58, 40, 0, 17, 18, 19, 0, 15, 13, 12, - 16, 22, 371, 42, 299, 300, 373, 375, 43, 243, - 56, 0, 56, 0, 0, 290, 20, 0, 0, 0, - 318, 0, 0, 45, 322, 311, 38, 0, 175, 176, - 179, 376, 56, 349, 377, 56, 56, 0, 0, 194, - 185, 186, 187, 191, 192, 193, 188, 189, 0, 190, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 226, - 229, 0, 0, 62, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 341, 0, 0, 181, 184, - 0, 0, 0, 0, 0, 0, 0, 0, 358, 359, - 360, 361, 362, 0, 0, 0, 164, 163, 0, 380, - 0, 0, 0, 60, 64, 0, 14, 44, 22, 0, - 278, 283, 0, 0, 0, 0, 0, 0, 0, 22, - 21, 0, 309, 317, 321, 357, 0, 55, 0, 0, - 49, 46, 47, 180, 174, 0, 366, 0, 231, 0, - 0, 378, 57, 237, 0, 66, 72, 0, 218, 217, - 216, 219, 214, 215, 0, 329, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, - 84, 88, 0, 92, 93, 98, 99, 100, 101, 102, - 104, 107, 109, 341, 308, 45, 346, 341, 343, 342, - 52, 338, 113, 183, 112, 128, 132, 133, 0, 141, - 145, 149, 150, 152, 151, 155, 156, 0, 159, 160, - 161, 61, 0, 276, 279, 285, 0, 372, 284, 287, - 0, 0, 242, 288, 20, 22, 302, 54, 53, 323, - 0, 177, 178, 0, 374, 350, 245, 235, 234, 329, - 225, 308, 45, 333, 329, 330, 0, 326, 207, 208, - 220, 201, 202, 205, 206, 196, 197, 0, 198, 199, - 200, 204, 203, 210, 209, 212, 213, 211, 221, 0, - 227, 63, 51, 341, 308, 0, 341, 0, 337, 45, - 345, 182, 0, 381, 22, 240, 286, 0, 294, 50, - 48, 351, 354, 0, 233, 0, 246, 0, 329, 308, - 0, 341, 0, 325, 0, 45, 332, 0, 224, 336, - 341, 347, 340, 344, 0, 139, 41, 22, 0, 353, - 0, 232, 169, 223, 324, 341, 334, 328, 331, 222, - 0, 195, 339, 348, 295, 352, 355, 0, 327, 335, - 0, 0, 379, 170, 0, 56, 56, 239, 172, 0, - 171, 238 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 1, 2, 199, 317, 221, 420, 40, 41, 42, - 43, 294, 206, 44, 295, 429, 430, 431, 432, 496, - 413, 92, 195, 364, 196, 398, 497, 647, 653, 327, - 328, 329, 243, 377, 378, 357, 358, 359, 361, 332, - 438, 443, 336, 658, 659, 531, 48, 605, 79, 498, - 49, 81, 50, 296, 52, 297, 310, 410, 54, 55, - 312, 415, 56, 224, 57, 58, 298, 299, 211, 61, - 300, 63, 64, 65, 318, 66, 226, 67, 240, 241, - 555, 612, 556, 557, 499, 587, 500, 501, 334, 629, - 602, 603, 242, 393, 197, 244, 69, 70, 246, 400 -}; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -519 -static const yytype_int16 yypact[] = -{ - -519, 56, 1328, -519, -519, -519, -519, -519, 160, -519, - -140, 164, -519, 168, -519, -519, -519, -519, 7, 105, - -519, -519, -519, -519, 174, 7, -519, -58, 7, 426, - -519, -519, 178, -78, 180, 426, -519, -519, 2560, -519, - -15, -519, -519, -519, -519, -519, 2244, -11, -7, -519, - -519, 13, -36, -519, 15, -20, 20, 22, 12, -519, - -519, -6, -519, -16, -16, -16, 493, 2410, 31, -16, - 33, 41, -519, -519, 171, -519, -519, -72, -519, 4, - -519, -519, 45, -519, -519, -519, 2410, -519, -519, -71, - 44, 2316, -519, -111, -121, -519, -519, 49, -519, -519, - -519, -519, -519, 55, 67, -519, -519, -519, -519, -519, - -519, -519, -519, -519, -519, 70, -519, -519, -519, 72, - -519, -519, -519, 74, 76, -519, -519, -519, -519, 78, - 81, 84, 94, 97, -519, 103, -519, -519, 110, -519, - 113, -519, -519, 128, 130, -519, -519, -519, -519, -519, - -519, -519, -519, -519, -519, -519, -519, -519, 132, -519, - -519, -519, 138, 141, -519, -519, -519, -519, -519, -519, - 159, -519, -519, 161, -519, -519, -519, 162, -519, -519, - -519, 163, 166, 169, 170, -519, -519, -519, 176, 177, - -519, -519, 179, 191, 195, -74, -519, -519, -519, 1201, - 514, 264, 364, 288, 305, 322, 194, 172, -519, -519, - -519, -519, 493, 199, 202, -519, -519, -519, -519, -29, - -519, -519, -519, 334, 200, -519, -519, -519, -519, -519, - -519, -519, -519, -519, -519, -519, -519, 493, 493, -519, - 201, -133, -519, -519, -519, -16, -519, -519, -519, 206, - 336, -519, 207, -519, 493, 203, -519, 404, 336, 436, - 436, 409, 410, 436, 436, 412, 419, 436, 421, 436, - 436, 1747, 436, 436, 423, -73, 424, 436, 2410, 436, - 436, 2410, -37, 2410, 2410, 136, 429, 427, 2410, 2560, - 236, -519, 235, -519, -519, -519, 246, -519, -519, -519, - -519, 20, 248, -519, -519, -519, 248, -109, -519, -519, - -135, 270, -81, 252, 250, -519, -519, 615, 387, 255, - -519, 436, 73, 1747, -519, -519, -519, 266, 277, -519, - 259, -519, -134, -519, 297, -78, -132, 273, 274, -519, - -519, -519, -519, -519, -519, -519, -519, -519, 278, -519, - 436, 436, 436, 436, 436, 436, 1058, 2055, -143, -519, - 2055, 282, 285, -519, -129, 287, 290, 294, 295, 298, - 300, 302, 1745, 307, 2316, 260, 308, -106, -519, 2055, - 309, 311, 312, 330, 313, -89, 1817, 315, -519, -519, - -519, -519, -519, 316, 320, 321, -519, -519, 323, 289, - 324, 325, 328, -519, 2560, 525, -519, -519, 20, -3, - -519, -519, 345, 2316, 299, 944, 329, 445, 729, 20, - -519, 2316, -519, -519, -519, -519, 101, -519, 1937, 333, - 360, -519, -519, -519, 336, 436, -519, 2316, -519, 493, - 337, -519, 338, -519, 340, -519, -519, 2316, 14, 14, - 14, 14, 14, 14, 1842, 258, 436, 436, 540, 436, - 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, - 436, 436, 436, 436, 436, 436, 545, 436, 436, -519, - -519, -519, 541, -519, -519, -519, -519, -519, -519, -519, - -519, -519, -519, 260, -519, 1455, -519, 260, -519, -519, - -519, -48, -519, 436, -519, -519, -519, -519, 436, -519, - -519, -519, -519, -519, -519, -519, -519, 547, -519, -519, - -519, -519, 351, -519, -519, -519, 493, -101, -519, -519, - 2316, 356, -519, -519, -519, 20, -519, -519, -519, -519, - 1653, -519, -519, 260, 357, -519, 336, -519, -519, 258, - -519, -519, 1581, -519, 258, -519, 361, -46, 280, 280, - -519, 751, 751, 197, 197, 2074, 981, 2034, 1996, 1977, - 1037, 197, 197, 284, 284, 14, 14, 14, -519, 1959, - -519, -519, -519, 83, -519, 362, 260, 363, -519, 1747, - -519, -519, 365, -519, 20, -519, -519, 830, -519, -519, - -519, 379, -519, -86, -519, 359, -519, 370, 518, -519, - 371, 260, 373, -519, 436, 1747, -519, 436, -519, -519, - 83, -519, -519, -519, 374, -519, -519, 20, 436, -519, - 260, -519, -519, -519, -519, 83, -519, -519, -519, 14, - 380, 2055, -519, -519, -519, -519, -519, -17, -519, -519, - 436, 402, -519, -519, 411, -40, -40, -519, -519, 383, - -519, -519 -}; - -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -519, -519, -519, 549, -300, -291, 28, -519, -519, -519, - 182, -519, -519, -519, 589, -464, -519, -519, -258, -230, - -9, -2, -519, -519, -268, -519, -62, -519, -519, -519, - -519, 167, 5, 318, 102, -114, -519, -255, -257, -519, - -519, -519, -519, -50, -212, -519, 193, -519, 25, -64, - -519, 133, 100, 46, -519, 612, -519, -519, 569, -519, - -519, -519, -519, -519, -23, -519, 619, 6, -519, -519, - 620, -519, -519, -303, -466, -45, -24, -26, -219, -519, - -519, -519, -494, -519, -518, -519, -183, -519, -519, -519, - -13, -519, 414, -519, 352, 1, -33, -519, 3, -519 -}; - -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -249 -static const yytype_int16 yytable[] = -{ - 46, 212, 239, 68, 238, 71, 365, 47, 60, 366, - 407, 324, 369, 373, 371, 422, 418, 376, 319, 320, - 650, 403, 383, 210, 91, 601, 412, 9, 583, 458, - 39, 585, 255, 651, 245, 333, 478, 227, 227, 227, - 228, 229, -248, 227, -248, 247, 254, 213, 51, 214, - 482, 207, 15, 252, 11, 607, 3, 90, 168, 94, - 613, 479, 172, 74, 425, 38, 38, 322, 38, 24, - 323, 408, 436, 503, 441, 483, 339, 20, 340, 341, - 342, 343, 344, 345, 256, 608, 230, 231, 610, 186, - 503, -34, 208, 630, -248, 24, -248, 311, 504, 423, - 414, -241, 80, -241, 339, 289, 340, 341, 342, 343, - 344, 345, 601, 82, 634, 510, 631, 523, 620, 38, - 26, 232, 38, 440, 444, 624, 9, 290, 536, 88, - -30, -32, 31, -248, -248, 95, 521, 388, 389, 390, - 391, 392, 346, 635, 396, 86, 360, 397, 239, 360, - 238, 640, 322, 233, 322, 589, 372, 615, 85, 379, - 38, 87, 657, 72, 73, 379, 386, 75, 76, 217, - 346, 77, 78, 239, 239, 238, 238, 83, 84, 249, - 542, 89, 78, 93, 78, 219, 330, 198, 347, 652, - 239, -29, 238, 223, 338, 215, 313, 46, 46, 225, - 68, 68, 71, 71, 47, 47, 234, 360, 428, 250, - 456, 457, 458, 476, 477, 216, 347, 218, 348, 227, - 545, 325, 220, 580, 222, 553, 375, 293, 293, 90, - 94, 349, 235, -31, 597, 248, 448, 449, 450, 451, - 452, 453, 454, -33, 598, 384, 348, 251, 387, 253, - 394, 395, 257, 592, 239, 402, 238, 350, 258, 349, - 351, 352, 426, 230, 231, 354, 355, 302, 78, 374, - 259, 590, 494, 260, 427, 261, 356, 262, 375, 263, - 422, 264, 600, 322, 265, 350, 495, 266, 351, 352, - 353, 304, 305, 354, 355, 458, 232, 267, 232, 458, - 268, 409, 537, 626, 356, 422, 269, 595, 306, 78, - 582, 455, 451, 270, 588, 421, 271, 422, 68, 553, - 71, 374, 47, 437, 553, 307, 78, 616, 233, 493, - 233, 272, 422, 273, 442, 274, 644, 314, 315, 230, - 231, 275, 558, 559, 276, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 277, 579, 278, 279, 280, 303, 526, 281, - 330, 645, 282, 283, -35, 239, 212, 238, 553, 284, - 285, 234, 286, 234, 471, 472, 473, 474, 475, 379, - 230, 231, 543, 554, 287, 654, 476, 477, 288, 308, - 619, -36, 549, 622, -37, 316, 335, 235, 321, 235, - 326, 331, 337, 530, 527, 524, 421, 362, 363, 68, - 367, 71, 213, 47, 214, 232, 207, 368, 637, 370, - 9, 380, 382, 586, 399, 401, 404, 642, 405, 339, - 544, 340, 341, 342, 343, 344, 345, 551, 406, 494, - 375, 411, 648, -248, 416, 417, 434, 233, 322, 424, - 322, 552, 239, 495, 238, 7, 435, 471, 472, 473, - 474, 475, 433, 473, 474, 475, 439, 445, 446, 476, - 477, 447, 606, 476, 477, 212, 480, 554, 517, 481, - 611, 484, 554, 374, 485, 375, 230, 231, 486, 487, - 639, 528, 488, 641, 489, 346, 490, 375, 18, 508, - 234, 492, 502, 505, 360, 506, 507, 509, 4, 512, - 513, 21, 22, 23, 514, 515, 525, 516, 518, 519, - 25, 232, 520, 522, 19, 533, 235, 539, 374, 540, - 547, 546, 548, 560, 375, 5, 554, 6, 578, 581, - 374, 347, 593, 7, 8, 594, 232, 9, 596, 604, - 628, 9, 10, 233, 632, 614, 621, 623, 28, 625, - 375, 11, 30, 12, 633, 636, 236, 638, 643, 13, - 14, 348, 15, 655, 649, 661, 16, 374, 233, 17, - 237, 45, 656, 200, 349, 421, 18, 385, 68, 534, - 71, 541, 47, 19, 292, 591, 660, 20, 532, 21, - 22, 23, 24, 374, 53, 209, 234, 646, 25, 4, - 350, 59, 62, 351, 352, 353, 309, 381, 354, 355, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, - 0, 234, 235, 0, 0, 0, 5, 0, 6, 0, - 26, 0, 0, 0, 7, 27, 28, 29, 9, 0, - 30, 0, 31, 10, 0, 0, 32, 235, 0, 0, - 0, 0, 0, 33, 12, 34, 0, 35, 0, 0, - 13, 14, 236, 15, 0, 36, 37, 16, 0, 0, - 17, 0, 0, 0, 0, 0, 237, 18, 0, 0, - 0, 0, 0, 0, 19, 0, 0, 551, 20, 0, - 21, 22, 23, 0, 38, 0, 0, 0, 322, 25, - 301, 552, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 26, 0, 0, 0, 0, 27, 28, 29, 0, - 5, 30, 6, 31, 456, 457, 458, 32, 7, 461, - 462, 0, 9, 0, 33, 0, 34, 10, 35, 0, - 0, 0, 0, 0, 0, 0, 36, 37, 12, 0, - 0, 0, 0, 0, 13, 14, 0, 15, 0, 0, - 0, 16, 0, 0, 17, 0, 0, 0, 0, 0, - 0, 18, 0, 0, 0, 38, 0, 0, 19, 0, - 0, 419, 20, 0, 21, 22, 23, 0, 0, 0, - 0, 0, 0, 25, 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 0, 6, 0, 26, 0, 0, 0, 7, - 27, 28, 29, 9, 0, 30, 0, 31, 10, 0, - 0, 32, 0, 0, 0, 0, 0, 0, 33, 12, - 34, 0, 35, 0, 0, 13, 14, 0, 15, 0, - 36, 37, 16, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 18, 0, 0, 0, 0, 0, 0, 19, - 0, 0, 0, 20, 0, 21, 22, 23, 0, 38, - 0, 0, 0, 0, 25, 535, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 0, 4, 0, - 476, 477, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, - 0, 27, 28, 29, 0, 5, 30, 6, 31, 0, - 0, 0, 32, 7, 0, 0, 0, 9, 0, 33, - 0, 34, 0, 35, 456, 457, 458, 459, 460, 461, - 462, 36, 37, 12, 0, 0, 0, 0, 0, 201, - 14, 0, 15, 0, 0, 0, 16, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, - 38, 0, 0, 0, 0, 0, 627, 20, 0, 21, - 22, 23, 0, 0, 0, 0, 0, 0, 25, 0, - 456, 457, 458, 459, 460, 461, 462, 0, 0, 0, - 0, 339, 4, 340, 341, 342, 343, 344, 345, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 0, 27, 28, 29, 0, 5, - 30, 6, 31, 0, 0, 0, 204, 7, 0, 0, - 0, 9, 0, 0, 0, 205, 0, 35, 0, 0, - 0, 0, 0, 0, 0, 36, 37, 12, 0, 0, - 0, 0, 0, 201, 14, 0, 15, 346, 0, 0, - 16, 0, 0, 17, 0, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 38, 0, 0, 0, 0, 0, - 529, 20, 0, 21, 22, 23, 0, 0, 0, 0, - 0, 0, 25, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 347, 0, 0, 0, 0, 0, 0, - 476, 477, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, - 28, 29, 0, 348, 30, 4, 31, 0, 0, 0, - 204, 0, 0, 291, 0, 0, 349, 0, 0, 205, - 0, 35, 469, 470, 471, 472, 473, 474, 475, 36, - 37, 0, 5, 0, 6, 0, 476, 477, 0, 0, - 7, 8, 350, 0, 9, 351, 352, 353, 0, 10, - 354, 355, 0, 0, 0, 0, 0, 0, 11, 0, - 12, 356, 0, 0, 0, 0, 13, 14, 0, 15, - 0, 0, 0, 16, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, - 19, 292, 0, 0, 20, 0, 21, 22, 23, 24, - 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, 0, 26, 0, 0, - 0, 0, 27, 28, 29, 0, 0, 30, 0, 31, - 0, 0, 0, 32, 0, 0, 0, 0, 0, 5, - 33, 6, 34, 0, 35, 0, 0, 7, 8, 0, - 0, 9, 36, 37, 0, 0, 10, 0, 0, 0, - 0, 0, 0, 0, 0, 11, 0, 12, 0, 0, - 0, 0, 0, 13, 14, 0, 15, 0, 0, 0, - 16, 38, 0, 17, 0, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 0, 19, 0, 0, - 0, 20, 0, 21, 22, 23, 24, 0, 0, 0, - 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, - 28, 29, 0, 0, 30, 0, 31, 0, 0, 0, - 32, 0, 0, 0, 0, 0, 5, 33, 6, 34, - 0, 35, 0, 232, 7, 0, 0, 0, 9, 36, - 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, - 201, 14, 0, 15, 0, 233, 0, 16, 38, 0, - 17, 0, 0, 0, 0, 0, 0, 18, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, - 21, 22, 23, 0, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, - 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, - 0, 26, 0, 0, 0, 0, 27, 28, 29, 0, - 0, 30, 0, 31, 235, 0, 0, 204, 0, 0, - 0, 0, 5, 0, 6, 0, 205, 0, 35, 232, - 7, 0, 0, 0, 9, 0, 36, 37, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 584, 0, 201, 14, 0, 15, - 0, 233, 0, 16, 0, 38, 17, 4, 0, 0, - 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 599, 21, 22, 23, 0, - 0, 0, 0, 0, 5, 25, 6, 0, 0, 0, - 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, - 0, 0, 12, 0, 0, 0, 0, 26, 201, 14, - 0, 15, 27, 28, 29, 16, 0, 30, 17, 31, - 235, 0, 0, 204, 0, 18, 0, 0, 0, 0, - 0, 0, 205, 0, 35, 0, 20, 0, 21, 22, - 23, 4, 36, 37, 0, 0, 0, 25, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 0, 0, 0, - 609, 0, 0, 0, 0, 0, 0, 0, 5, 0, - 6, 38, 0, 0, 0, 0, 7, 0, 0, 26, - 9, 0, 0, 0, 27, 28, 29, 0, 0, 30, - 0, 31, 0, 0, 0, 204, 12, 0, 0, 0, - 0, 0, 201, 14, 205, 15, 35, 0, 0, 16, - 0, 0, 17, 0, 36, 37, 0, 0, 0, 18, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 0, - 20, 0, 21, 22, 23, 0, 0, 0, 0, 0, - 0, 25, 0, 38, 0, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 26, 0, 0, 0, 0, 27, 28, - 29, 0, 0, 30, 0, 31, 0, 0, 0, 204, - 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, - 35, 0, 0, 0, 0, 0, 0, 0, 36, 37, - 0, 0, 0, 0, 0, 465, 0, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 0, 0, 0, 476, 477, 0, 38, 0, 491, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 456, 457, 458, 459, 460, 461, 462, 465, 0, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 456, - 457, 458, 459, 460, 461, 462, 476, 477, 0, 0, - 0, 511, 465, 0, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 0, 0, - 0, 476, 477, 0, 0, 0, 550, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 456, 457, 458, - 459, 460, 461, 462, 0, 464, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 465, 0, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 0, 0, 0, 476, 477, 538, 465, - 0, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 0, 0, 0, 476, 477, - 618, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 0, 0, 0, 476, 477, 0, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 0, 0, 0, 476, 477, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 465, 617, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 0, 0, 0, 476, 477, 465, 0, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 4, 0, - 0, 0, 0, 0, 476, 477, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 0, 0, 0, 476, 477, 5, 0, 6, 0, 0, - 0, 0, 0, 7, 8, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 0, 12, 0, 0, 0, 0, 0, 201, - 14, 0, 15, 0, 0, 0, 16, 0, 0, 17, - 4, 0, 0, 0, 0, 0, 18, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 20, 0, 21, - 22, 23, 24, 0, 0, 202, 0, 5, 25, 6, - 0, 0, 203, 0, 0, 7, 0, 0, 0, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, - 26, 201, 14, 0, 15, 27, 28, 29, 16, 0, - 30, 17, 31, 0, 0, 0, 204, 0, 18, 0, - 0, 0, 0, 0, 0, 205, 0, 35, 0, 20, - 0, 21, 22, 23, 4, 36, 37, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 0, 6, 0, 0, 0, 0, 0, 7, - 0, 0, 26, 0, 0, 0, 0, 27, 28, 29, - 0, 0, 30, 0, 31, 0, 0, 0, 204, 12, - 0, 0, 0, 0, 0, 201, 14, 205, 0, 35, - 0, 0, 16, 0, 0, 17, 0, 36, 37, 0, - 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 21, 22, 23, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 27, 28, 29, 0, 0, 30, 0, 0, 0, - 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, - 0, 205, 0, 35, 0, 0, 0, 0, 0, 0, - 0, 36, 37, 96, 0, 97, 98, 99, 0, 100, - 101, 0, 102, 0, 0, 103, 0, 104, 0, 0, - 0, 105, 106, 0, 107, 108, 109, 110, 0, 111, - 112, 113, 114, 115, 116, 117, 118, 0, 119, 0, - 120, 121, 122, 123, 124, 0, 0, 125, 0, 0, - 0, 126, 0, 127, 128, 0, 129, 130, 131, 132, - 133, 134, 0, 135, 136, 137, 138, 139, 140, 0, - 0, 141, 0, 0, 142, 0, 0, 0, 0, 143, - 144, 0, 145, 146, 0, 147, 148, 0, 0, 149, - 150, 151, 152, 153, 154, 0, 155, 156, 157, 158, - 159, 160, 161, 0, 162, 163, 0, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, - 176, 0, 0, 0, 177, 0, 0, 178, 0, 0, - 179, 180, 0, 0, 181, 182, 183, 184, 0, 0, - 185, 0, 186, 0, 187, 188, 189, 190, 191, 192, - 193, 0, 0, 194 -}; - -#define yypact_value_is_default(yystate) \ - ((yystate) == (-519)) - -#define yytable_value_is_error(yytable_value) \ - YYID (0) - -static const yytype_int16 yycheck[] = -{ - 2, 46, 66, 2, 66, 2, 263, 2, 2, 264, - 301, 241, 267, 271, 269, 318, 316, 272, 237, 238, - 37, 289, 277, 46, 33, 543, 107, 43, 494, 15, - 2, 495, 153, 50, 67, 254, 179, 63, 64, 65, - 64, 65, 153, 69, 153, 69, 91, 46, 2, 46, - 179, 46, 68, 86, 57, 549, 0, 32, 131, 34, - 554, 204, 135, 203, 321, 200, 200, 200, 200, 98, - 203, 206, 206, 179, 206, 204, 3, 93, 5, 6, - 7, 8, 9, 10, 205, 551, 3, 4, 552, 162, - 179, 202, 46, 179, 205, 98, 205, 126, 204, 318, - 312, 202, 95, 204, 3, 179, 5, 6, 7, 8, - 9, 10, 630, 8, 608, 204, 202, 408, 584, 200, - 136, 38, 200, 335, 336, 589, 43, 201, 419, 29, - 202, 202, 148, 205, 205, 35, 404, 174, 175, 176, - 177, 178, 69, 609, 8, 203, 260, 11, 212, 263, - 212, 615, 200, 70, 200, 203, 270, 203, 25, 273, - 200, 28, 202, 3, 4, 279, 280, 3, 4, 205, - 69, 3, 4, 237, 238, 237, 238, 3, 4, 8, - 435, 3, 4, 3, 4, 205, 250, 202, 115, 206, - 254, 202, 254, 181, 258, 202, 219, 199, 200, 205, - 199, 200, 199, 200, 199, 200, 123, 321, 322, 205, - 13, 14, 15, 199, 200, 202, 115, 202, 145, 245, - 439, 245, 202, 478, 202, 455, 271, 199, 200, 204, - 205, 158, 149, 202, 534, 202, 350, 351, 352, 353, - 354, 355, 356, 202, 535, 278, 145, 202, 281, 205, - 283, 284, 203, 508, 318, 288, 318, 184, 203, 158, - 187, 188, 189, 3, 4, 192, 193, 3, 4, 271, - 203, 501, 189, 203, 201, 203, 203, 203, 323, 203, - 583, 203, 540, 200, 203, 184, 203, 203, 187, 188, - 189, 3, 4, 192, 193, 15, 38, 203, 38, 15, - 203, 310, 201, 594, 203, 608, 203, 526, 3, 4, - 493, 356, 426, 203, 497, 317, 203, 620, 317, 549, - 317, 323, 317, 332, 554, 3, 4, 557, 70, 374, - 70, 203, 635, 203, 336, 203, 627, 3, 4, 3, - 4, 203, 456, 457, 203, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 203, 477, 203, 203, 203, 3, 413, 203, - 434, 628, 203, 203, 202, 439, 421, 439, 608, 203, - 203, 123, 203, 123, 187, 188, 189, 190, 191, 503, - 3, 4, 437, 455, 203, 650, 199, 200, 203, 205, - 583, 202, 447, 586, 202, 205, 203, 149, 207, 149, - 204, 204, 8, 415, 413, 409, 418, 8, 8, 418, - 8, 418, 421, 418, 421, 38, 421, 8, 611, 8, - 43, 8, 8, 495, 5, 8, 200, 620, 203, 3, - 437, 5, 6, 7, 8, 9, 10, 189, 202, 189, - 495, 181, 635, 205, 202, 205, 179, 70, 200, 204, - 200, 203, 526, 203, 526, 39, 207, 187, 188, 189, - 190, 191, 206, 189, 190, 191, 179, 204, 204, 199, - 200, 203, 546, 199, 200, 530, 204, 549, 199, 204, - 552, 204, 554, 495, 204, 540, 3, 4, 204, 204, - 614, 202, 204, 617, 204, 69, 204, 552, 82, 179, - 123, 204, 204, 204, 628, 204, 204, 204, 4, 204, - 204, 95, 96, 97, 204, 204, 181, 204, 204, 204, - 104, 38, 204, 8, 89, 206, 149, 204, 540, 179, - 202, 204, 202, 3, 589, 31, 608, 33, 3, 8, - 552, 115, 5, 39, 40, 204, 38, 43, 202, 202, - 181, 43, 48, 70, 205, 204, 204, 204, 142, 204, - 615, 57, 146, 59, 204, 204, 189, 204, 204, 65, - 66, 145, 68, 181, 204, 202, 72, 589, 70, 75, - 203, 2, 181, 44, 158, 597, 82, 279, 597, 417, - 597, 434, 597, 89, 90, 503, 656, 93, 415, 95, - 96, 97, 98, 615, 2, 46, 123, 630, 104, 4, - 184, 2, 2, 187, 188, 189, 212, 275, 192, 193, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 203, - -1, 123, 149, -1, -1, -1, 31, -1, 33, -1, - 136, -1, -1, -1, 39, 141, 142, 143, 43, -1, - 146, -1, 148, 48, -1, -1, 152, 149, -1, -1, - -1, -1, -1, 159, 59, 161, -1, 163, -1, -1, - 65, 66, 189, 68, -1, 171, 172, 72, -1, -1, - 75, -1, -1, -1, -1, -1, 203, 82, -1, -1, - -1, -1, -1, -1, 89, -1, -1, 189, 93, -1, - 95, 96, 97, -1, 200, -1, -1, -1, 200, 104, - 206, 203, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 136, -1, -1, -1, -1, 141, 142, 143, -1, - 31, 146, 33, 148, 13, 14, 15, 152, 39, 18, - 19, -1, 43, -1, 159, -1, 161, 48, 163, -1, - -1, -1, -1, -1, -1, -1, 171, 172, 59, -1, - -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, - -1, 72, -1, -1, 75, -1, -1, -1, -1, -1, - -1, 82, -1, -1, -1, 200, -1, -1, 89, -1, - -1, 206, 93, -1, 95, 96, 97, -1, -1, -1, - -1, -1, -1, 104, 4, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 31, -1, 33, -1, 136, -1, -1, -1, 39, - 141, 142, 143, 43, -1, 146, -1, 148, 48, -1, - -1, 152, -1, -1, -1, -1, -1, -1, 159, 59, - 161, -1, 163, -1, -1, 65, 66, -1, 68, -1, - 171, 172, 72, -1, -1, 75, -1, -1, -1, -1, - -1, -1, 82, -1, -1, -1, -1, -1, -1, 89, - -1, -1, -1, 93, -1, 95, 96, 97, -1, 200, - -1, -1, -1, -1, 104, 206, 185, 186, 187, 188, - 189, 190, 191, -1, -1, -1, -1, -1, 4, -1, - 199, 200, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, - -1, 141, 142, 143, -1, 31, 146, 33, 148, -1, - -1, -1, 152, 39, -1, -1, -1, 43, -1, 159, - -1, 161, -1, 163, 13, 14, 15, 16, 17, 18, - 19, 171, 172, 59, -1, -1, -1, -1, -1, 65, - 66, -1, 68, -1, -1, -1, 72, -1, -1, 75, - -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, - 200, -1, -1, -1, -1, -1, 206, 93, -1, 95, - 96, 97, -1, -1, -1, -1, -1, -1, 104, -1, - 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, - -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 136, -1, -1, -1, -1, 141, 142, 143, -1, 31, - 146, 33, 148, -1, -1, -1, 152, 39, -1, -1, - -1, 43, -1, -1, -1, 161, -1, 163, -1, -1, - -1, -1, -1, -1, -1, 171, 172, 59, -1, -1, - -1, -1, -1, 65, 66, -1, 68, 69, -1, -1, - 72, -1, -1, 75, -1, -1, -1, -1, -1, -1, - 82, -1, -1, -1, 200, -1, -1, -1, -1, -1, - 206, 93, -1, 95, 96, 97, -1, -1, -1, -1, - -1, -1, 104, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 115, -1, -1, -1, -1, -1, -1, - 199, 200, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 136, -1, -1, -1, -1, 141, - 142, 143, -1, 145, 146, 4, 148, -1, -1, -1, - 152, -1, -1, 12, -1, -1, 158, -1, -1, 161, - -1, 163, 185, 186, 187, 188, 189, 190, 191, 171, - 172, -1, 31, -1, 33, -1, 199, 200, -1, -1, - 39, 40, 184, -1, 43, 187, 188, 189, -1, 48, - 192, 193, -1, -1, -1, -1, -1, -1, 57, -1, - 59, 203, -1, -1, -1, -1, 65, 66, -1, 68, - -1, -1, -1, 72, -1, -1, 75, -1, -1, -1, - -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, - 89, 90, -1, -1, 93, -1, 95, 96, 97, 98, - -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4, -1, -1, -1, -1, 136, -1, -1, - -1, -1, 141, 142, 143, -1, -1, 146, -1, 148, - -1, -1, -1, 152, -1, -1, -1, -1, -1, 31, - 159, 33, 161, -1, 163, -1, -1, 39, 40, -1, - -1, 43, 171, 172, -1, -1, 48, -1, -1, -1, - -1, -1, -1, -1, -1, 57, -1, 59, -1, -1, - -1, -1, -1, 65, 66, -1, 68, -1, -1, -1, - 72, 200, -1, 75, -1, -1, -1, -1, -1, -1, - 82, -1, -1, -1, -1, -1, -1, 89, -1, -1, - -1, 93, -1, 95, 96, 97, 98, -1, -1, -1, - -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, - -1, -1, -1, -1, 136, -1, -1, -1, -1, 141, - 142, 143, -1, -1, 146, -1, 148, -1, -1, -1, - 152, -1, -1, -1, -1, -1, 31, 159, 33, 161, - -1, 163, -1, 38, 39, -1, -1, -1, 43, 171, - 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - 65, 66, -1, 68, -1, 70, -1, 72, 200, -1, - 75, -1, -1, -1, -1, -1, -1, 82, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, - 95, 96, 97, -1, -1, -1, -1, -1, -1, 104, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, - -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, - -1, 136, -1, -1, -1, -1, 141, 142, 143, -1, - -1, 146, -1, 148, 149, -1, -1, 152, -1, -1, - -1, -1, 31, -1, 33, -1, 161, -1, 163, 38, - 39, -1, -1, -1, 43, -1, 171, 172, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, 189, -1, 65, 66, -1, 68, - -1, 70, -1, 72, -1, 200, 75, 4, -1, -1, - -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 93, 22, 95, 96, 97, -1, - -1, -1, -1, -1, 31, 104, 33, -1, -1, -1, - -1, -1, 39, -1, -1, -1, 43, -1, -1, -1, - -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, 136, 65, 66, - -1, 68, 141, 142, 143, 72, -1, 146, 75, 148, - 149, -1, -1, 152, -1, 82, -1, -1, -1, -1, - -1, -1, 161, -1, 163, -1, 93, -1, 95, 96, - 97, 4, 171, 172, -1, -1, -1, 104, 13, 14, - 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, - 189, -1, -1, -1, -1, -1, -1, -1, 31, -1, - 33, 200, -1, -1, -1, -1, 39, -1, -1, 136, - 43, -1, -1, -1, 141, 142, 143, -1, -1, 146, - -1, 148, -1, -1, -1, 152, 59, -1, -1, -1, - -1, -1, 65, 66, 161, 68, 163, -1, -1, 72, - -1, -1, 75, -1, 171, 172, -1, -1, -1, 82, - 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, - 93, -1, 95, 96, 97, -1, -1, -1, -1, -1, - -1, 104, -1, 200, -1, 13, 14, 15, 16, 17, - 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 136, -1, -1, -1, -1, 141, 142, - 143, -1, -1, 146, -1, 148, -1, -1, -1, 152, - -1, -1, -1, -1, -1, -1, -1, -1, 161, -1, - 163, -1, -1, -1, -1, -1, -1, -1, 171, 172, - -1, -1, -1, -1, -1, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, -1, -1, -1, - -1, -1, -1, -1, 199, 200, -1, 200, -1, 204, - 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 13, 14, 15, 16, 17, 18, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 13, 14, 15, 16, 17, 18, 19, 180, -1, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 13, - 14, 15, 16, 17, 18, 19, 199, 200, -1, -1, - -1, 204, 180, -1, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, -1, -1, -1, -1, -1, -1, - -1, 199, 200, -1, -1, -1, 204, 13, 14, 15, - 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 13, 14, - 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, - 16, 17, 18, 19, -1, 21, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 180, -1, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, -1, - -1, -1, -1, -1, -1, -1, 199, 200, 201, 180, - -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, -1, -1, -1, -1, -1, -1, -1, 199, 200, - 201, 184, 185, 186, 187, 188, 189, 190, 191, -1, - -1, -1, -1, -1, -1, -1, 199, 200, -1, 183, - 184, 185, 186, 187, 188, 189, 190, 191, -1, -1, - -1, -1, -1, -1, -1, 199, 200, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, -1, -1, -1, -1, - -1, -1, -1, 199, 200, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, -1, 4, -1, - -1, -1, -1, -1, 199, 200, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, -1, -1, -1, -1, - -1, -1, -1, 199, 200, 31, -1, 33, -1, -1, - -1, -1, -1, 39, 40, -1, -1, 43, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 57, -1, 59, -1, -1, -1, -1, -1, 65, - 66, -1, 68, -1, -1, -1, 72, -1, -1, 75, - 4, -1, -1, -1, -1, -1, 82, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, -1, 95, - 96, 97, 98, -1, -1, 101, -1, 31, 104, 33, - -1, -1, 108, -1, -1, 39, -1, -1, -1, 43, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - 136, 65, 66, -1, 68, 141, 142, 143, 72, -1, - 146, 75, 148, -1, -1, -1, 152, -1, 82, -1, - -1, -1, -1, -1, -1, 161, -1, 163, -1, 93, - -1, 95, 96, 97, 4, 171, 172, -1, -1, -1, - 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 31, -1, 33, -1, -1, -1, -1, -1, 39, - -1, -1, 136, -1, -1, -1, -1, 141, 142, 143, - -1, -1, 146, -1, 148, -1, -1, -1, 152, 59, - -1, -1, -1, -1, -1, 65, 66, 161, -1, 163, - -1, -1, 72, -1, -1, 75, -1, 171, 172, -1, - -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 95, 96, 97, -1, -1, - -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 141, 142, 143, -1, -1, 146, -1, -1, -1, - -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, - -1, 161, -1, 163, -1, -1, -1, -1, -1, -1, - -1, 171, 172, 23, -1, 25, 26, 27, -1, 29, - 30, -1, 32, -1, -1, 35, -1, 37, -1, -1, - -1, 41, 42, -1, 44, 45, 46, 47, -1, 49, - 50, 51, 52, 53, 54, 55, 56, -1, 58, -1, - 60, 61, 62, 63, 64, -1, -1, 67, -1, -1, - -1, 71, -1, 73, 74, -1, 76, 77, 78, 79, - 80, 81, -1, 83, 84, 85, 86, 87, 88, -1, - -1, 91, -1, -1, 94, -1, -1, -1, -1, 99, - 100, -1, 102, 103, -1, 105, 106, -1, -1, 109, - 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, - 120, 121, 122, -1, 124, 125, -1, 127, 128, 129, - 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, - 140, -1, -1, -1, 144, -1, -1, 147, -1, -1, - 150, 151, -1, -1, 154, 155, 156, 157, -1, -1, - 160, -1, 162, -1, 164, 165, 166, 167, 168, 169, - 170, -1, -1, 173 -}; - -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = -{ - 0, 209, 210, 0, 4, 31, 33, 39, 40, 43, - 48, 57, 59, 65, 66, 68, 72, 75, 82, 89, - 93, 95, 96, 97, 98, 104, 136, 141, 142, 143, - 146, 148, 152, 159, 161, 163, 171, 172, 200, 214, - 215, 216, 217, 218, 221, 222, 229, 240, 254, 258, - 260, 261, 262, 263, 266, 267, 270, 272, 273, 274, - 275, 277, 278, 279, 280, 281, 283, 285, 303, 304, - 305, 306, 3, 4, 203, 3, 4, 3, 4, 256, - 95, 259, 8, 3, 4, 259, 203, 259, 260, 3, - 256, 228, 229, 3, 256, 260, 23, 25, 26, 27, - 29, 30, 32, 35, 37, 41, 42, 44, 45, 46, - 47, 49, 50, 51, 52, 53, 54, 55, 56, 58, - 60, 61, 62, 63, 64, 67, 71, 73, 74, 76, - 77, 78, 79, 80, 81, 83, 84, 85, 86, 87, - 88, 91, 94, 99, 100, 102, 103, 105, 106, 109, - 110, 111, 112, 113, 114, 116, 117, 118, 119, 120, - 121, 122, 124, 125, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 137, 138, 139, 140, 144, 147, 150, - 151, 154, 155, 156, 157, 160, 162, 164, 165, 166, - 167, 168, 169, 170, 173, 230, 232, 302, 202, 211, - 211, 65, 101, 108, 152, 161, 220, 240, 261, 266, - 272, 276, 283, 303, 306, 202, 202, 205, 202, 205, - 202, 213, 202, 181, 271, 205, 284, 285, 284, 284, - 3, 4, 38, 70, 123, 149, 189, 203, 234, 257, - 286, 287, 300, 240, 303, 304, 306, 284, 202, 8, - 205, 202, 304, 205, 283, 153, 205, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 179, - 201, 12, 90, 214, 219, 222, 261, 263, 274, 275, - 278, 206, 3, 3, 3, 4, 3, 3, 205, 300, - 264, 126, 268, 272, 3, 4, 205, 212, 282, 286, - 286, 207, 200, 203, 227, 284, 204, 237, 238, 239, - 257, 204, 247, 286, 296, 203, 250, 8, 257, 3, - 5, 6, 7, 8, 9, 10, 69, 115, 145, 158, - 184, 187, 188, 189, 192, 193, 203, 243, 244, 245, - 243, 246, 8, 8, 231, 246, 245, 8, 8, 245, - 8, 245, 243, 226, 229, 283, 245, 241, 242, 243, - 8, 302, 8, 245, 304, 241, 243, 304, 174, 175, - 176, 177, 178, 301, 304, 304, 8, 11, 233, 5, - 307, 8, 304, 232, 200, 203, 202, 213, 206, 228, - 265, 181, 107, 228, 252, 269, 202, 205, 212, 206, - 214, 229, 281, 286, 204, 246, 189, 201, 243, 223, - 224, 225, 226, 206, 179, 207, 206, 228, 248, 179, - 252, 206, 229, 249, 252, 204, 204, 203, 243, 243, - 243, 243, 243, 243, 243, 283, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 180, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 199, 200, 179, 204, - 204, 204, 179, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 283, 189, 203, 227, 234, 257, 292, - 294, 295, 204, 179, 204, 204, 204, 204, 179, 204, - 204, 204, 204, 204, 204, 204, 204, 199, 204, 204, - 204, 232, 8, 213, 275, 181, 283, 303, 202, 206, - 229, 253, 254, 206, 218, 206, 213, 201, 201, 204, - 179, 239, 245, 283, 306, 286, 204, 202, 202, 283, - 204, 189, 203, 227, 234, 288, 290, 291, 243, 243, - 3, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 3, 243, - 245, 8, 294, 282, 189, 223, 234, 293, 294, 203, - 227, 242, 245, 5, 204, 286, 202, 212, 213, 22, - 226, 292, 298, 299, 202, 255, 257, 290, 282, 189, - 223, 234, 289, 290, 204, 203, 227, 181, 201, 294, - 282, 204, 294, 204, 223, 204, 213, 206, 181, 297, - 179, 202, 205, 204, 290, 282, 204, 294, 204, 243, - 223, 243, 294, 204, 213, 246, 298, 235, 294, 204, - 37, 50, 206, 236, 245, 181, 181, 202, 251, 252, - 251, 202 -}; - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ - -#define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif - -#define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) - - -#define YYTERROR 1 -#define YYERRCODE 256 - - -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif - - -/* This macro is provided for backward compatibility. */ - -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) -#else -# define YYLEX yylex () -#endif - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif -{ - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); -# endif - switch (yytype) - { - default: - break; - } -} - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif -{ - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); - - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -#else -static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; -#endif -{ - YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } - YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif -{ - int yynrhs = yyr2[yyrule]; - int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - YYFPRINTF (stderr, "\n"); - } -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ - - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - - -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static YYSIZE_T -yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static char * -yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = 0; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - Assume YYFAIL is not used. It's too flawed to consider. See - - for details. YYERROR is fine as it does not invoke this - function. - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - case N: \ - yyformat = S; \ - break - YYCASE_(0, YY_("syntax error")); - YYCASE_(1, YY_("syntax error, unexpected %s")); - YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - - yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ - -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; -#endif -{ - YYUSE (yyvaluep); - - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - - switch (yytype) - { - - default: - break; - } -} - - -/* Prevent warnings from -Wmissing-prototypes. */ -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - - -/* The lookahead symbol. */ -int yychar; - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval; - -/* Number of syntax errors so far. */ -int yynerrs; - - -/*----------. -| yyparse. | -`----------*/ - -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void) -#else -int -yyparse () - -#endif -#endif -{ - int yystate; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; - - YYSIZE_T yystacksize; - - int yyn; - int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - - yytoken = 0; - yyss = yyssa; - yyvs = yyvsa; - yystacksize = YYINITDEPTH; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - yyssp = yyss; - yyvsp = yyvs; - - goto yysetstate; - -/*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | -`------------------------------------------------------------*/ - yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. So pushing a state here evens the stacks. */ - yyssp++; - - yysetstate: - *yyssp = yystate; - - if (yyss + yystacksize - 1 <= yyssp) - { - /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; - -#ifdef yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; - - { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; - } - - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - - if (yystate == YYFINAL) - YYACCEPT; - - goto yybackup; - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - - /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to lookahead token. */ - yyn = yypact[yystate]; - if (yypact_value_is_default (yyn)) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - if (yychar <= YYEOF) - { - yychar = yytoken = YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) - goto yydefault; - yyn = yytable[yyn]; - if (yyn <= 0) - { - if (yytable_value_is_error (yyn)) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the lookahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - - yystate = yyn; - *++yyvsp = yylval; - - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- Do a reduction. | -`-----------------------------*/ -yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 2: - -/* Line 1806 of yacc.c */ -#line 328 "parser.y" - { fix_incomplete(); - check_statements((yyvsp[(1) - (1)].stmt_list), FALSE); - check_all_user_types((yyvsp[(1) - (1)].stmt_list)); - write_header((yyvsp[(1) - (1)].stmt_list)); - write_id_data((yyvsp[(1) - (1)].stmt_list)); - write_proxies((yyvsp[(1) - (1)].stmt_list)); - write_client((yyvsp[(1) - (1)].stmt_list)); - write_server((yyvsp[(1) - (1)].stmt_list)); - write_regscript((yyvsp[(1) - (1)].stmt_list)); - write_dlldata((yyvsp[(1) - (1)].stmt_list)); - write_local_stubs((yyvsp[(1) - (1)].stmt_list)); - } - break; - - case 3: - -/* Line 1806 of yacc.c */ -#line 342 "parser.y" - { (yyval.stmt_list) = NULL; } - break; - - case 4: - -/* Line 1806 of yacc.c */ -#line 343 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_reference((yyvsp[(2) - (2)].type))); } - break; - - case 5: - -/* Line 1806 of yacc.c */ -#line 344 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_type_decl((yyvsp[(2) - (2)].type))); } - break; - - case 6: - -/* Line 1806 of yacc.c */ -#line 345 "parser.y" - { (yyval.stmt_list) = (yyvsp[(1) - (3)].stmt_list); - reg_type((yyvsp[(2) - (3)].type), (yyvsp[(2) - (3)].type)->name, 0); - } - break; - - case 7: - -/* Line 1806 of yacc.c */ -#line 348 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_type_decl((yyvsp[(2) - (2)].type))); - reg_type((yyvsp[(2) - (2)].type), (yyvsp[(2) - (2)].type)->name, 0); - } - break; - - case 8: - -/* Line 1806 of yacc.c */ -#line 351 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_module((yyvsp[(2) - (2)].type))); } - break; - - case 9: - -/* Line 1806 of yacc.c */ -#line 352 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_library((yyvsp[(2) - (2)].typelib))); } - break; - - case 10: - -/* Line 1806 of yacc.c */ -#line 353 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), (yyvsp[(2) - (2)].statement)); } - break; - - case 11: - -/* Line 1806 of yacc.c */ -#line 356 "parser.y" - { (yyval.stmt_list) = NULL; } - break; - - case 12: - -/* Line 1806 of yacc.c */ -#line 357 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_reference((yyvsp[(2) - (2)].type))); } - break; - - case 13: - -/* Line 1806 of yacc.c */ -#line 358 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_type_decl((yyvsp[(2) - (2)].type))); } - break; - - case 14: - -/* Line 1806 of yacc.c */ -#line 359 "parser.y" - { (yyval.stmt_list) = (yyvsp[(1) - (3)].stmt_list); reg_type((yyvsp[(2) - (3)].type), (yyvsp[(2) - (3)].type)->name, 0); } - break; - - case 15: - -/* Line 1806 of yacc.c */ -#line 360 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_type_decl((yyvsp[(2) - (2)].type))); - reg_type((yyvsp[(2) - (2)].type), (yyvsp[(2) - (2)].type)->name, 0); - } - break; - - case 16: - -/* Line 1806 of yacc.c */ -#line 363 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_module((yyvsp[(2) - (2)].type))); } - break; - - case 17: - -/* Line 1806 of yacc.c */ -#line 364 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), (yyvsp[(2) - (2)].statement)); } - break; - - case 18: - -/* Line 1806 of yacc.c */ -#line 365 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_importlib((yyvsp[(2) - (2)].str))); } - break; - - case 19: - -/* Line 1806 of yacc.c */ -#line 366 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_library((yyvsp[(2) - (2)].typelib))); } - break; - - case 20: - -/* Line 1806 of yacc.c */ -#line 369 "parser.y" - { (yyval.stmt_list) = NULL; } - break; - - case 21: - -/* Line 1806 of yacc.c */ -#line 370 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), (yyvsp[(2) - (2)].statement)); } - break; - - case 24: - -/* Line 1806 of yacc.c */ -#line 378 "parser.y" - { (yyval.statement) = make_statement_cppquote((yyvsp[(1) - (1)].str)); } - break; - - case 25: - -/* Line 1806 of yacc.c */ -#line 379 "parser.y" - { (yyval.statement) = make_statement_type_decl((yyvsp[(1) - (2)].type)); } - break; - - case 26: - -/* Line 1806 of yacc.c */ -#line 380 "parser.y" - { (yyval.statement) = make_statement_declaration((yyvsp[(1) - (2)].var)); } - break; - - case 27: - -/* Line 1806 of yacc.c */ -#line 381 "parser.y" - { (yyval.statement) = make_statement_import((yyvsp[(1) - (1)].str)); } - break; - - case 28: - -/* Line 1806 of yacc.c */ -#line 382 "parser.y" - { (yyval.statement) = (yyvsp[(1) - (2)].statement); } - break; - - case 30: - -/* Line 1806 of yacc.c */ -#line 387 "parser.y" - { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); } - break; - - case 32: - -/* Line 1806 of yacc.c */ -#line 389 "parser.y" - { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); } - break; - - case 34: - -/* Line 1806 of yacc.c */ -#line 391 "parser.y" - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); } - break; - - case 35: - -/* Line 1806 of yacc.c */ -#line 392 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); (yyval.type)->attrs = check_enum_attrs((yyvsp[(1) - (2)].attr_list)); } - break; - - case 36: - -/* Line 1806 of yacc.c */ -#line 393 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); (yyval.type)->attrs = check_struct_attrs((yyvsp[(1) - (2)].attr_list)); } - break; - - case 37: - -/* Line 1806 of yacc.c */ -#line 394 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); (yyval.type)->attrs = check_union_attrs((yyvsp[(1) - (2)].attr_list)); } - break; - - case 38: - -/* Line 1806 of yacc.c */ -#line 397 "parser.y" - { (yyval.str) = (yyvsp[(3) - (4)].str); } - break; - - case 39: - -/* Line 1806 of yacc.c */ -#line 399 "parser.y" - { assert(yychar == YYEMPTY); - (yyval.import) = xmalloc(sizeof(struct _import_t)); - (yyval.import)->name = (yyvsp[(2) - (3)].str); - (yyval.import)->import_performed = do_import((yyvsp[(2) - (3)].str)); - if (!(yyval.import)->import_performed) yychar = aEOF; - } - break; - - case 40: - -/* Line 1806 of yacc.c */ -#line 407 "parser.y" - { (yyval.str) = (yyvsp[(1) - (3)].import)->name; - if ((yyvsp[(1) - (3)].import)->import_performed) pop_import(); - free((yyvsp[(1) - (3)].import)); - } - break; - - case 41: - -/* Line 1806 of yacc.c */ -#line 414 "parser.y" - { (yyval.str) = (yyvsp[(3) - (5)].str); if(!parse_only) add_importlib((yyvsp[(3) - (5)].str)); } - break; - - case 42: - -/* Line 1806 of yacc.c */ -#line 417 "parser.y" - { (yyval.str) = (yyvsp[(2) - (2)].str); } - break; - - case 43: - -/* Line 1806 of yacc.c */ -#line 419 "parser.y" - { (yyval.typelib) = make_library((yyvsp[(2) - (3)].str), check_library_attrs((yyvsp[(2) - (3)].str), (yyvsp[(1) - (3)].attr_list))); - if (!parse_only) start_typelib((yyval.typelib)); - } - break; - - case 44: - -/* Line 1806 of yacc.c */ -#line 424 "parser.y" - { (yyval.typelib) = (yyvsp[(1) - (4)].typelib); - (yyval.typelib)->stmts = (yyvsp[(2) - (4)].stmt_list); - if (!parse_only) end_typelib(); - } - break; - - case 45: - -/* Line 1806 of yacc.c */ -#line 430 "parser.y" - { (yyval.var_list) = NULL; } - break; - - case 47: - -/* Line 1806 of yacc.c */ -#line 434 "parser.y" - { check_arg_attrs((yyvsp[(1) - (1)].var)); (yyval.var_list) = append_var( NULL, (yyvsp[(1) - (1)].var) ); } - break; - - case 48: - -/* Line 1806 of yacc.c */ -#line 435 "parser.y" - { check_arg_attrs((yyvsp[(3) - (3)].var)); (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(3) - (3)].var) ); } - break; - - case 50: - -/* Line 1806 of yacc.c */ -#line 439 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), make_var(strdup("...")) ); } - break; - - case 51: - -/* Line 1806 of yacc.c */ -#line 443 "parser.y" - { if ((yyvsp[(2) - (3)].declspec)->stgclass != STG_NONE && (yyvsp[(2) - (3)].declspec)->stgclass != STG_REGISTER) - error_loc("invalid storage class for function parameter\n"); - (yyval.var) = declare_var((yyvsp[(1) - (3)].attr_list), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), TRUE); - free((yyvsp[(2) - (3)].declspec)); free((yyvsp[(3) - (3)].declarator)); - } - break; - - case 52: - -/* Line 1806 of yacc.c */ -#line 448 "parser.y" - { if ((yyvsp[(1) - (2)].declspec)->stgclass != STG_NONE && (yyvsp[(1) - (2)].declspec)->stgclass != STG_REGISTER) - error_loc("invalid storage class for function parameter\n"); - (yyval.var) = declare_var(NULL, (yyvsp[(1) - (2)].declspec), (yyvsp[(2) - (2)].declarator), TRUE); - free((yyvsp[(1) - (2)].declspec)); free((yyvsp[(2) - (2)].declarator)); - } - break; - - case 53: - -/* Line 1806 of yacc.c */ -#line 455 "parser.y" - { (yyval.expr) = (yyvsp[(2) - (3)].expr); - if (!(yyval.expr)->is_const) - error_loc("array dimension is not an integer constant\n"); - } - break; - - case 54: - -/* Line 1806 of yacc.c */ -#line 459 "parser.y" - { (yyval.expr) = make_expr(EXPR_VOID); } - break; - - case 55: - -/* Line 1806 of yacc.c */ -#line 460 "parser.y" - { (yyval.expr) = make_expr(EXPR_VOID); } - break; - - case 56: - -/* Line 1806 of yacc.c */ -#line 463 "parser.y" - { (yyval.attr_list) = NULL; } - break; - - case 58: - -/* Line 1806 of yacc.c */ -#line 468 "parser.y" - { (yyval.attr_list) = (yyvsp[(2) - (3)].attr_list); } - break; - - case 59: - -/* Line 1806 of yacc.c */ -#line 471 "parser.y" - { (yyval.attr_list) = append_attr( NULL, (yyvsp[(1) - (1)].attr) ); } - break; - - case 60: - -/* Line 1806 of yacc.c */ -#line 472 "parser.y" - { (yyval.attr_list) = append_attr( (yyvsp[(1) - (3)].attr_list), (yyvsp[(3) - (3)].attr) ); } - break; - - case 61: - -/* Line 1806 of yacc.c */ -#line 473 "parser.y" - { (yyval.attr_list) = append_attr( (yyvsp[(1) - (4)].attr_list), (yyvsp[(4) - (4)].attr) ); } - break; - - case 62: - -/* Line 1806 of yacc.c */ -#line 476 "parser.y" - { (yyval.str_list) = append_str( NULL, (yyvsp[(1) - (1)].str) ); } - break; - - case 63: - -/* Line 1806 of yacc.c */ -#line 477 "parser.y" - { (yyval.str_list) = append_str( (yyvsp[(1) - (3)].str_list), (yyvsp[(3) - (3)].str) ); } - break; - - case 64: - -/* Line 1806 of yacc.c */ -#line 480 "parser.y" - { (yyval.attr) = NULL; } - break; - - case 65: - -/* Line 1806 of yacc.c */ -#line 481 "parser.y" - { (yyval.attr) = make_attr(ATTR_AGGREGATABLE); } - break; - - case 66: - -/* Line 1806 of yacc.c */ -#line 482 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ANNOTATION, (yyvsp[(3) - (4)].str)); } - break; - - case 67: - -/* Line 1806 of yacc.c */ -#line 483 "parser.y" - { (yyval.attr) = make_attr(ATTR_APPOBJECT); } - break; - - case 68: - -/* Line 1806 of yacc.c */ -#line 484 "parser.y" - { (yyval.attr) = make_attr(ATTR_ASYNC); } - break; - - case 69: - -/* Line 1806 of yacc.c */ -#line 485 "parser.y" - { (yyval.attr) = make_attr(ATTR_AUTO_HANDLE); } - break; - - case 70: - -/* Line 1806 of yacc.c */ -#line 486 "parser.y" - { (yyval.attr) = make_attr(ATTR_BINDABLE); } - break; - - case 71: - -/* Line 1806 of yacc.c */ -#line 487 "parser.y" - { (yyval.attr) = make_attr(ATTR_BROADCAST); } - break; - - case 72: - -/* Line 1806 of yacc.c */ -#line 488 "parser.y" - { (yyval.attr) = make_attrp(ATTR_CALLAS, (yyvsp[(3) - (4)].var)); } - break; - - case 73: - -/* Line 1806 of yacc.c */ -#line 489 "parser.y" - { (yyval.attr) = make_attrp(ATTR_CASE, (yyvsp[(3) - (4)].expr_list)); } - break; - - case 74: - -/* Line 1806 of yacc.c */ -#line 490 "parser.y" - { (yyval.attr) = make_attr(ATTR_CODE); } - break; - - case 75: - -/* Line 1806 of yacc.c */ -#line 491 "parser.y" - { (yyval.attr) = make_attr(ATTR_COMMSTATUS); } - break; - - case 76: - -/* Line 1806 of yacc.c */ -#line 492 "parser.y" - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); } - break; - - case 77: - -/* Line 1806 of yacc.c */ -#line 493 "parser.y" - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ } - break; - - case 78: - -/* Line 1806 of yacc.c */ -#line 494 "parser.y" - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ } - break; - - case 79: - -/* Line 1806 of yacc.c */ -#line 495 "parser.y" - { (yyval.attr) = make_attr(ATTR_CONTROL); } - break; - - case 80: - -/* Line 1806 of yacc.c */ -#line 496 "parser.y" - { (yyval.attr) = make_attr(ATTR_DECODE); } - break; - - case 81: - -/* Line 1806 of yacc.c */ -#line 497 "parser.y" - { (yyval.attr) = make_attr(ATTR_DEFAULT); } - break; - - case 82: - -/* Line 1806 of yacc.c */ -#line 498 "parser.y" - { (yyval.attr) = make_attr(ATTR_DEFAULTBIND); } - break; - - case 83: - -/* Line 1806 of yacc.c */ -#line 499 "parser.y" - { (yyval.attr) = make_attr(ATTR_DEFAULTCOLLELEM); } - break; - - case 84: - -/* Line 1806 of yacc.c */ -#line 500 "parser.y" - { (yyval.attr) = make_attrp(ATTR_DEFAULTVALUE, (yyvsp[(3) - (4)].expr)); } - break; - - case 85: - -/* Line 1806 of yacc.c */ -#line 501 "parser.y" - { (yyval.attr) = make_attr(ATTR_DEFAULTVTABLE); } - break; - - case 86: - -/* Line 1806 of yacc.c */ -#line 502 "parser.y" - { (yyval.attr) = make_attr(ATTR_DISABLECONSISTENCYCHECK); } - break; - - case 87: - -/* Line 1806 of yacc.c */ -#line 503 "parser.y" - { (yyval.attr) = make_attr(ATTR_DISPLAYBIND); } - break; - - case 88: - -/* Line 1806 of yacc.c */ -#line 504 "parser.y" - { (yyval.attr) = make_attrp(ATTR_DLLNAME, (yyvsp[(3) - (4)].str)); } - break; - - case 89: - -/* Line 1806 of yacc.c */ -#line 505 "parser.y" - { (yyval.attr) = make_attr(ATTR_DUAL); } - break; - - case 90: - -/* Line 1806 of yacc.c */ -#line 506 "parser.y" - { (yyval.attr) = make_attr(ATTR_ENABLEALLOCATE); } - break; - - case 91: - -/* Line 1806 of yacc.c */ -#line 507 "parser.y" - { (yyval.attr) = make_attr(ATTR_ENCODE); } - break; - - case 92: - -/* Line 1806 of yacc.c */ -#line 508 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ENDPOINT, (yyvsp[(3) - (4)].str_list)); } - break; - - case 93: - -/* Line 1806 of yacc.c */ -#line 509 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ENTRY, (yyvsp[(3) - (4)].expr)); } - break; - - case 94: - -/* Line 1806 of yacc.c */ -#line 510 "parser.y" - { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); } - break; - - case 95: - -/* Line 1806 of yacc.c */ -#line 511 "parser.y" - { (yyval.attr) = make_attr(ATTR_FAULTSTATUS); } - break; - - case 96: - -/* Line 1806 of yacc.c */ -#line 512 "parser.y" - { (yyval.attr) = make_attr(ATTR_FORCEALLOCATE); } - break; - - case 97: - -/* Line 1806 of yacc.c */ -#line 513 "parser.y" - { (yyval.attr) = make_attr(ATTR_HANDLE); } - break; - - case 98: - -/* Line 1806 of yacc.c */ -#line 514 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPCONTEXT, (yyvsp[(3) - (4)].expr)); } - break; - - case 99: - -/* Line 1806 of yacc.c */ -#line 515 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPFILE, (yyvsp[(3) - (4)].str)); } - break; - - case 100: - -/* Line 1806 of yacc.c */ -#line 516 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPSTRING, (yyvsp[(3) - (4)].str)); } - break; - - case 101: - -/* Line 1806 of yacc.c */ -#line 517 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPSTRINGCONTEXT, (yyvsp[(3) - (4)].expr)); } - break; - - case 102: - -/* Line 1806 of yacc.c */ -#line 518 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPSTRINGDLL, (yyvsp[(3) - (4)].str)); } - break; - - case 103: - -/* Line 1806 of yacc.c */ -#line 519 "parser.y" - { (yyval.attr) = make_attr(ATTR_HIDDEN); } - break; - - case 104: - -/* Line 1806 of yacc.c */ -#line 520 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ID, (yyvsp[(3) - (4)].expr)); } - break; - - case 105: - -/* Line 1806 of yacc.c */ -#line 521 "parser.y" - { (yyval.attr) = make_attr(ATTR_IDEMPOTENT); } - break; - - case 106: - -/* Line 1806 of yacc.c */ -#line 522 "parser.y" - { (yyval.attr) = make_attr(ATTR_IGNORE); } - break; - - case 107: - -/* Line 1806 of yacc.c */ -#line 523 "parser.y" - { (yyval.attr) = make_attrp(ATTR_IIDIS, (yyvsp[(3) - (4)].expr)); } - break; - - case 108: - -/* Line 1806 of yacc.c */ -#line 524 "parser.y" - { (yyval.attr) = make_attr(ATTR_IMMEDIATEBIND); } - break; - - case 109: - -/* Line 1806 of yacc.c */ -#line 525 "parser.y" - { (yyval.attr) = make_attrp(ATTR_IMPLICIT_HANDLE, (yyvsp[(3) - (4)].var)); } - break; - - case 110: - -/* Line 1806 of yacc.c */ -#line 526 "parser.y" - { (yyval.attr) = make_attr(ATTR_IN); } - break; - - case 111: - -/* Line 1806 of yacc.c */ -#line 527 "parser.y" - { (yyval.attr) = make_attr(ATTR_INPUTSYNC); } - break; - - case 112: - -/* Line 1806 of yacc.c */ -#line 528 "parser.y" - { (yyval.attr) = make_attrp(ATTR_LENGTHIS, (yyvsp[(3) - (4)].expr_list)); } - break; - - case 113: - -/* Line 1806 of yacc.c */ -#line 529 "parser.y" - { (yyval.attr) = make_attrp(ATTR_LIBLCID, (yyvsp[(3) - (4)].expr)); } - break; - - case 114: - -/* Line 1806 of yacc.c */ -#line 530 "parser.y" - { (yyval.attr) = make_attr(ATTR_PARAMLCID); } - break; - - case 115: - -/* Line 1806 of yacc.c */ -#line 531 "parser.y" - { (yyval.attr) = make_attr(ATTR_LICENSED); } - break; - - case 116: - -/* Line 1806 of yacc.c */ -#line 532 "parser.y" - { (yyval.attr) = make_attr(ATTR_LOCAL); } - break; - - case 117: - -/* Line 1806 of yacc.c */ -#line 533 "parser.y" - { (yyval.attr) = make_attr(ATTR_MAYBE); } - break; - - case 118: - -/* Line 1806 of yacc.c */ -#line 534 "parser.y" - { (yyval.attr) = make_attr(ATTR_MESSAGE); } - break; - - case 119: - -/* Line 1806 of yacc.c */ -#line 535 "parser.y" - { (yyval.attr) = make_attr(ATTR_NOCODE); } - break; - - case 120: - -/* Line 1806 of yacc.c */ -#line 536 "parser.y" - { (yyval.attr) = make_attr(ATTR_NONBROWSABLE); } - break; - - case 121: - -/* Line 1806 of yacc.c */ -#line 537 "parser.y" - { (yyval.attr) = make_attr(ATTR_NONCREATABLE); } - break; - - case 122: - -/* Line 1806 of yacc.c */ -#line 538 "parser.y" - { (yyval.attr) = make_attr(ATTR_NONEXTENSIBLE); } - break; - - case 123: - -/* Line 1806 of yacc.c */ -#line 539 "parser.y" - { (yyval.attr) = make_attr(ATTR_NOTIFY); } - break; - - case 124: - -/* Line 1806 of yacc.c */ -#line 540 "parser.y" - { (yyval.attr) = make_attr(ATTR_NOTIFYFLAG); } - break; - - case 125: - -/* Line 1806 of yacc.c */ -#line 541 "parser.y" - { (yyval.attr) = make_attr(ATTR_OBJECT); } - break; - - case 126: - -/* Line 1806 of yacc.c */ -#line 542 "parser.y" - { (yyval.attr) = make_attr(ATTR_ODL); } - break; - - case 127: - -/* Line 1806 of yacc.c */ -#line 543 "parser.y" - { (yyval.attr) = make_attr(ATTR_OLEAUTOMATION); } - break; - - case 128: - -/* Line 1806 of yacc.c */ -#line 544 "parser.y" - { (yyval.attr) = make_attrp(ATTR_OPTIMIZE, (yyvsp[(3) - (4)].str)); } - break; - - case 129: - -/* Line 1806 of yacc.c */ -#line 545 "parser.y" - { (yyval.attr) = make_attr(ATTR_OPTIONAL); } - break; - - case 130: - -/* Line 1806 of yacc.c */ -#line 546 "parser.y" - { (yyval.attr) = make_attr(ATTR_OUT); } - break; - - case 131: - -/* Line 1806 of yacc.c */ -#line 547 "parser.y" - { (yyval.attr) = make_attr(ATTR_PARTIALIGNORE); } - break; - - case 132: - -/* Line 1806 of yacc.c */ -#line 548 "parser.y" - { (yyval.attr) = make_attrv(ATTR_POINTERDEFAULT, (yyvsp[(3) - (4)].num)); } - break; - - case 133: - -/* Line 1806 of yacc.c */ -#line 549 "parser.y" - { (yyval.attr) = make_attrp(ATTR_PROGID, (yyvsp[(3) - (4)].str)); } - break; - - case 134: - -/* Line 1806 of yacc.c */ -#line 550 "parser.y" - { (yyval.attr) = make_attr(ATTR_PROPGET); } - break; - - case 135: - -/* Line 1806 of yacc.c */ -#line 551 "parser.y" - { (yyval.attr) = make_attr(ATTR_PROPPUT); } - break; - - case 136: - -/* Line 1806 of yacc.c */ -#line 552 "parser.y" - { (yyval.attr) = make_attr(ATTR_PROPPUTREF); } - break; - - case 137: - -/* Line 1806 of yacc.c */ -#line 553 "parser.y" - { (yyval.attr) = make_attr(ATTR_PROXY); } - break; - - case 138: - -/* Line 1806 of yacc.c */ -#line 554 "parser.y" - { (yyval.attr) = make_attr(ATTR_PUBLIC); } - break; - - case 139: - -/* Line 1806 of yacc.c */ -#line 556 "parser.y" - { expr_list_t *list = append_expr( NULL, (yyvsp[(3) - (6)].expr) ); - list = append_expr( list, (yyvsp[(5) - (6)].expr) ); - (yyval.attr) = make_attrp(ATTR_RANGE, list); } - break; - - case 140: - -/* Line 1806 of yacc.c */ -#line 559 "parser.y" - { (yyval.attr) = make_attr(ATTR_READONLY); } - break; - - case 141: - -/* Line 1806 of yacc.c */ -#line 560 "parser.y" - { (yyval.attr) = make_attrp(ATTR_REPRESENTAS, (yyvsp[(3) - (4)].type)); } - break; - - case 142: - -/* Line 1806 of yacc.c */ -#line 561 "parser.y" - { (yyval.attr) = make_attr(ATTR_REQUESTEDIT); } - break; - - case 143: - -/* Line 1806 of yacc.c */ -#line 562 "parser.y" - { (yyval.attr) = make_attr(ATTR_RESTRICTED); } - break; - - case 144: - -/* Line 1806 of yacc.c */ -#line 563 "parser.y" - { (yyval.attr) = make_attr(ATTR_RETVAL); } - break; - - case 145: - -/* Line 1806 of yacc.c */ -#line 564 "parser.y" - { (yyval.attr) = make_attrp(ATTR_SIZEIS, (yyvsp[(3) - (4)].expr_list)); } - break; - - case 146: - -/* Line 1806 of yacc.c */ -#line 565 "parser.y" - { (yyval.attr) = make_attr(ATTR_SOURCE); } - break; - - case 147: - -/* Line 1806 of yacc.c */ -#line 566 "parser.y" - { (yyval.attr) = make_attr(ATTR_STRICTCONTEXTHANDLE); } - break; - - case 148: - -/* Line 1806 of yacc.c */ -#line 567 "parser.y" - { (yyval.attr) = make_attr(ATTR_STRING); } - break; - - case 149: - -/* Line 1806 of yacc.c */ -#line 568 "parser.y" - { (yyval.attr) = make_attrp(ATTR_SWITCHIS, (yyvsp[(3) - (4)].expr)); } - break; - - case 150: - -/* Line 1806 of yacc.c */ -#line 569 "parser.y" - { (yyval.attr) = make_attrp(ATTR_SWITCHTYPE, (yyvsp[(3) - (4)].type)); } - break; - - case 151: - -/* Line 1806 of yacc.c */ -#line 570 "parser.y" - { (yyval.attr) = make_attrp(ATTR_TRANSMITAS, (yyvsp[(3) - (4)].type)); } - break; - - case 152: - -/* Line 1806 of yacc.c */ -#line 571 "parser.y" - { (yyval.attr) = make_attrv(ATTR_THREADING, (yyvsp[(3) - (4)].num)); } - break; - - case 153: - -/* Line 1806 of yacc.c */ -#line 572 "parser.y" - { (yyval.attr) = make_attr(ATTR_UIDEFAULT); } - break; - - case 154: - -/* Line 1806 of yacc.c */ -#line 573 "parser.y" - { (yyval.attr) = make_attr(ATTR_USESGETLASTERROR); } - break; - - case 155: - -/* Line 1806 of yacc.c */ -#line 574 "parser.y" - { (yyval.attr) = make_attrp(ATTR_USERMARSHAL, (yyvsp[(3) - (4)].type)); } - break; - - case 156: - -/* Line 1806 of yacc.c */ -#line 575 "parser.y" - { (yyval.attr) = make_attrp(ATTR_UUID, (yyvsp[(3) - (4)].uuid)); } - break; - - case 157: - -/* Line 1806 of yacc.c */ -#line 576 "parser.y" - { (yyval.attr) = make_attr(ATTR_V1ENUM); } - break; - - case 158: - -/* Line 1806 of yacc.c */ -#line 577 "parser.y" - { (yyval.attr) = make_attr(ATTR_VARARG); } - break; - - case 159: - -/* Line 1806 of yacc.c */ -#line 578 "parser.y" - { (yyval.attr) = make_attrv(ATTR_VERSION, (yyvsp[(3) - (4)].num)); } - break; - - case 160: - -/* Line 1806 of yacc.c */ -#line 579 "parser.y" - { (yyval.attr) = make_attrp(ATTR_VIPROGID, (yyvsp[(3) - (4)].str)); } - break; - - case 161: - -/* Line 1806 of yacc.c */ -#line 580 "parser.y" - { (yyval.attr) = make_attrp(ATTR_WIREMARSHAL, (yyvsp[(3) - (4)].type)); } - break; - - case 162: - -/* Line 1806 of yacc.c */ -#line 581 "parser.y" - { (yyval.attr) = make_attrv(ATTR_POINTERTYPE, (yyvsp[(1) - (1)].num)); } - break; - - case 164: - -/* Line 1806 of yacc.c */ -#line 586 "parser.y" - { if (!is_valid_uuid((yyvsp[(1) - (1)].str))) - error_loc("invalid UUID: %s\n", (yyvsp[(1) - (1)].str)); - (yyval.uuid) = parse_uuid((yyvsp[(1) - (1)].str)); } - break; - - case 165: - -/* Line 1806 of yacc.c */ -#line 591 "parser.y" - { (yyval.str) = xstrdup("__cdecl"); } - break; - - case 166: - -/* Line 1806 of yacc.c */ -#line 592 "parser.y" - { (yyval.str) = xstrdup("__fastcall"); } - break; - - case 167: - -/* Line 1806 of yacc.c */ -#line 593 "parser.y" - { (yyval.str) = xstrdup("__pascal"); } - break; - - case 168: - -/* Line 1806 of yacc.c */ -#line 594 "parser.y" - { (yyval.str) = xstrdup("__stdcall"); } - break; - - case 169: - -/* Line 1806 of yacc.c */ -#line 597 "parser.y" - { (yyval.var_list) = NULL; } - break; - - case 170: - -/* Line 1806 of yacc.c */ -#line 598 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var) ); } - break; - - case 171: - -/* Line 1806 of yacc.c */ -#line 601 "parser.y" - { attr_t *a = make_attrp(ATTR_CASE, append_expr( NULL, (yyvsp[(2) - (4)].expr) )); - (yyval.var) = (yyvsp[(4) - (4)].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); - (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); - } - break; - - case 172: - -/* Line 1806 of yacc.c */ -#line 605 "parser.y" - { attr_t *a = make_attr(ATTR_DEFAULT); - (yyval.var) = (yyvsp[(3) - (3)].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); - (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); - } - break; - - case 173: - -/* Line 1806 of yacc.c */ -#line 611 "parser.y" - { (yyval.var_list) = NULL; } - break; - - case 174: - -/* Line 1806 of yacc.c */ -#line 612 "parser.y" - { (yyval.var_list) = (yyvsp[(1) - (2)].var_list); } - break; - - case 176: - -/* Line 1806 of yacc.c */ -#line 616 "parser.y" - { if (!(yyvsp[(1) - (1)].var)->eval) - (yyvsp[(1) - (1)].var)->eval = make_exprl(EXPR_NUM, 0 /* default for first enum entry */); - (yyval.var_list) = append_var( NULL, (yyvsp[(1) - (1)].var) ); - } - break; - - case 177: - -/* Line 1806 of yacc.c */ -#line 620 "parser.y" - { if (!(yyvsp[(3) - (3)].var)->eval) - { - var_t *last = LIST_ENTRY( list_tail((yyval.var_list)), var_t, entry ); - (yyvsp[(3) - (3)].var)->eval = make_exprl(EXPR_NUM, last->eval->cval + 1); - } - (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(3) - (3)].var) ); - } - break; - - case 178: - -/* Line 1806 of yacc.c */ -#line 629 "parser.y" - { (yyval.var) = reg_const((yyvsp[(1) - (3)].var)); - (yyval.var)->eval = (yyvsp[(3) - (3)].expr); - (yyval.var)->type = type_new_int(TYPE_BASIC_INT, 0); - } - break; - - case 179: - -/* Line 1806 of yacc.c */ -#line 633 "parser.y" - { (yyval.var) = reg_const((yyvsp[(1) - (1)].var)); - (yyval.var)->type = type_new_int(TYPE_BASIC_INT, 0); - } - break; - - case 180: - -/* Line 1806 of yacc.c */ -#line 638 "parser.y" - { (yyval.type) = type_new_enum((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); } - break; - - case 181: - -/* Line 1806 of yacc.c */ -#line 641 "parser.y" - { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); } - break; - - case 182: - -/* Line 1806 of yacc.c */ -#line 642 "parser.y" - { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); } - break; - - case 183: - -/* Line 1806 of yacc.c */ -#line 645 "parser.y" - { (yyval.expr) = make_expr(EXPR_VOID); } - break; - - case 185: - -/* Line 1806 of yacc.c */ -#line 649 "parser.y" - { (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[(1) - (1)].num)); } - break; - - case 186: - -/* Line 1806 of yacc.c */ -#line 650 "parser.y" - { (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[(1) - (1)].num)); } - break; - - case 187: - -/* Line 1806 of yacc.c */ -#line 651 "parser.y" - { (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[(1) - (1)].dbl)); } - break; - - case 188: - -/* Line 1806 of yacc.c */ -#line 652 "parser.y" - { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); } - break; - - case 189: - -/* Line 1806 of yacc.c */ -#line 653 "parser.y" - { (yyval.expr) = make_exprl(EXPR_NUM, 0); } - break; - - case 190: - -/* Line 1806 of yacc.c */ -#line 654 "parser.y" - { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); } - break; - - case 191: - -/* Line 1806 of yacc.c */ -#line 655 "parser.y" - { (yyval.expr) = make_exprs(EXPR_STRLIT, (yyvsp[(1) - (1)].str)); } - break; - - case 192: - -/* Line 1806 of yacc.c */ -#line 656 "parser.y" - { (yyval.expr) = make_exprs(EXPR_WSTRLIT, (yyvsp[(1) - (1)].str)); } - break; - - case 193: - -/* Line 1806 of yacc.c */ -#line 657 "parser.y" - { (yyval.expr) = make_exprs(EXPR_CHARCONST, (yyvsp[(1) - (1)].str)); } - break; - - case 194: - -/* Line 1806 of yacc.c */ -#line 658 "parser.y" - { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[(1) - (1)].str)); } - break; - - case 195: - -/* Line 1806 of yacc.c */ -#line 659 "parser.y" - { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[(1) - (5)].expr), (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].expr)); } - break; - - case 196: - -/* Line 1806 of yacc.c */ -#line 660 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 197: - -/* Line 1806 of yacc.c */ -#line 661 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 198: - -/* Line 1806 of yacc.c */ -#line 662 "parser.y" - { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 199: - -/* Line 1806 of yacc.c */ -#line 663 "parser.y" - { (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 200: - -/* Line 1806 of yacc.c */ -#line 664 "parser.y" - { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 201: - -/* Line 1806 of yacc.c */ -#line 665 "parser.y" - { (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 202: - -/* Line 1806 of yacc.c */ -#line 666 "parser.y" - { (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 203: - -/* Line 1806 of yacc.c */ -#line 667 "parser.y" - { (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 204: - -/* Line 1806 of yacc.c */ -#line 668 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 205: - -/* Line 1806 of yacc.c */ -#line 669 "parser.y" - { (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 206: - -/* Line 1806 of yacc.c */ -#line 670 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 207: - -/* Line 1806 of yacc.c */ -#line 671 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 208: - -/* Line 1806 of yacc.c */ -#line 672 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 209: - -/* Line 1806 of yacc.c */ -#line 673 "parser.y" - { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 210: - -/* Line 1806 of yacc.c */ -#line 674 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 211: - -/* Line 1806 of yacc.c */ -#line 675 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 212: - -/* Line 1806 of yacc.c */ -#line 676 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 213: - -/* Line 1806 of yacc.c */ -#line 677 "parser.y" - { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } - break; - - case 214: - -/* Line 1806 of yacc.c */ -#line 678 "parser.y" - { (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[(2) - (2)].expr)); } - break; - - case 215: - -/* Line 1806 of yacc.c */ -#line 679 "parser.y" - { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[(2) - (2)].expr)); } - break; - - case 216: - -/* Line 1806 of yacc.c */ -#line 680 "parser.y" - { (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[(2) - (2)].expr)); } - break; - - case 217: - -/* Line 1806 of yacc.c */ -#line 681 "parser.y" - { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[(2) - (2)].expr)); } - break; - - case 218: - -/* Line 1806 of yacc.c */ -#line 682 "parser.y" - { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[(2) - (2)].expr)); } - break; - - case 219: - -/* Line 1806 of yacc.c */ -#line 683 "parser.y" - { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[(2) - (2)].expr)); } - break; - - case 220: - -/* Line 1806 of yacc.c */ -#line 684 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, (yyvsp[(1) - (3)].expr)), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); } - break; - - case 221: - -/* Line 1806 of yacc.c */ -#line 685 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[(1) - (3)].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); } - break; - - case 222: - -/* Line 1806 of yacc.c */ -#line 687 "parser.y" - { (yyval.expr) = make_exprt(EXPR_CAST, declare_var(NULL, (yyvsp[(2) - (5)].declspec), (yyvsp[(3) - (5)].declarator), 0), (yyvsp[(5) - (5)].expr)); free((yyvsp[(2) - (5)].declspec)); free((yyvsp[(3) - (5)].declarator)); } - break; - - case 223: - -/* Line 1806 of yacc.c */ -#line 689 "parser.y" - { (yyval.expr) = make_exprt(EXPR_SIZEOF, declare_var(NULL, (yyvsp[(3) - (5)].declspec), (yyvsp[(4) - (5)].declarator), 0), NULL); free((yyvsp[(3) - (5)].declspec)); free((yyvsp[(4) - (5)].declarator)); } - break; - - case 224: - -/* Line 1806 of yacc.c */ -#line 690 "parser.y" - { (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr)); } - break; - - case 225: - -/* Line 1806 of yacc.c */ -#line 691 "parser.y" - { (yyval.expr) = (yyvsp[(2) - (3)].expr); } - break; - - case 226: - -/* Line 1806 of yacc.c */ -#line 694 "parser.y" - { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); } - break; - - case 227: - -/* Line 1806 of yacc.c */ -#line 695 "parser.y" - { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); } - break; - - case 228: - -/* Line 1806 of yacc.c */ -#line 698 "parser.y" - { (yyval.expr) = (yyvsp[(1) - (1)].expr); - if (!(yyval.expr)->is_const) - error_loc("expression is not an integer constant\n"); - } - break; - - case 229: - -/* Line 1806 of yacc.c */ -#line 704 "parser.y" - { (yyval.expr) = (yyvsp[(1) - (1)].expr); - if (!(yyval.expr)->is_const && (yyval.expr)->type != EXPR_STRLIT && (yyval.expr)->type != EXPR_WSTRLIT) - error_loc("expression is not constant\n"); - } - break; - - case 230: - -/* Line 1806 of yacc.c */ -#line 710 "parser.y" - { (yyval.var_list) = NULL; } - break; - - case 231: - -/* Line 1806 of yacc.c */ -#line 711 "parser.y" - { (yyval.var_list) = append_var_list((yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var_list)); } - break; - - case 232: - -/* Line 1806 of yacc.c */ -#line 715 "parser.y" - { const char *first = LIST_ENTRY(list_head((yyvsp[(3) - (4)].declarator_list)), declarator_t, entry)->var->name; - check_field_attrs(first, (yyvsp[(1) - (4)].attr_list)); - (yyval.var_list) = set_var_types((yyvsp[(1) - (4)].attr_list), (yyvsp[(2) - (4)].declspec), (yyvsp[(3) - (4)].declarator_list)); - } - break; - - case 233: - -/* Line 1806 of yacc.c */ -#line 719 "parser.y" - { var_t *v = make_var(NULL); - v->type = (yyvsp[(2) - (3)].type); v->attrs = (yyvsp[(1) - (3)].attr_list); - (yyval.var_list) = append_var(NULL, v); - } - break; - - case 234: - -/* Line 1806 of yacc.c */ -#line 726 "parser.y" - { (yyval.var) = (yyvsp[(1) - (2)].var); } - break; - - case 235: - -/* Line 1806 of yacc.c */ -#line 727 "parser.y" - { (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[(1) - (2)].attr_list); } - break; - - case 236: - -/* Line 1806 of yacc.c */ -#line 730 "parser.y" - { (yyval.var_list) = NULL; } - break; - - case 237: - -/* Line 1806 of yacc.c */ -#line 731 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var) ); } - break; - - case 238: - -/* Line 1806 of yacc.c */ -#line 735 "parser.y" - { (yyval.var) = (yyvsp[(1) - (2)].var); } - break; - - case 239: - -/* Line 1806 of yacc.c */ -#line 736 "parser.y" - { (yyval.var) = NULL; } - break; - - case 240: - -/* Line 1806 of yacc.c */ -#line 739 "parser.y" - { (yyval.var) = declare_var(check_field_attrs((yyvsp[(3) - (3)].declarator)->var->name, (yyvsp[(1) - (3)].attr_list)), - (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); - free((yyvsp[(3) - (3)].declarator)); - } - break; - - case 241: - -/* Line 1806 of yacc.c */ -#line 743 "parser.y" - { var_t *v = make_var(NULL); - v->type = (yyvsp[(2) - (2)].type); v->attrs = (yyvsp[(1) - (2)].attr_list); - (yyval.var) = v; - } - break; - - case 242: - -/* Line 1806 of yacc.c */ -#line 749 "parser.y" - { (yyval.var) = (yyvsp[(1) - (1)].var); - if (type_get_type((yyval.var)->type) != TYPE_FUNCTION) - error_loc("only methods may be declared inside the methods section of a dispinterface\n"); - check_function_attrs((yyval.var)->name, (yyval.var)->attrs); - } - break; - - case 243: - -/* Line 1806 of yacc.c */ -#line 758 "parser.y" - { (yyval.var) = declare_var((yyvsp[(1) - (3)].attr_list), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); - free((yyvsp[(3) - (3)].declarator)); - } - break; - - case 244: - -/* Line 1806 of yacc.c */ -#line 761 "parser.y" - { (yyval.var) = declare_var(NULL, (yyvsp[(1) - (2)].declspec), (yyvsp[(2) - (2)].declarator), FALSE); - free((yyvsp[(2) - (2)].declarator)); - } - break; - - case 245: - -/* Line 1806 of yacc.c */ -#line 766 "parser.y" - { (yyval.var) = NULL; } - break; - - case 247: - -/* Line 1806 of yacc.c */ -#line 770 "parser.y" - { (yyval.str) = NULL; } - break; - - case 248: - -/* Line 1806 of yacc.c */ -#line 771 "parser.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); } - break; - - case 249: - -/* Line 1806 of yacc.c */ -#line 772 "parser.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); } - break; - - case 250: - -/* Line 1806 of yacc.c */ -#line 775 "parser.y" - { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); } - break; - - case 251: - -/* Line 1806 of yacc.c */ -#line 777 "parser.y" - { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); } - break; - - case 252: - -/* Line 1806 of yacc.c */ -#line 780 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } - break; - - case 253: - -/* Line 1806 of yacc.c */ -#line 781 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } - break; - - case 255: - -/* Line 1806 of yacc.c */ -#line 783 "parser.y" - { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), -1); } - break; - - case 256: - -/* Line 1806 of yacc.c */ -#line 784 "parser.y" - { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), 1); } - break; - - case 257: - -/* Line 1806 of yacc.c */ -#line 785 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); } - break; - - case 258: - -/* Line 1806 of yacc.c */ -#line 786 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } - break; - - case 259: - -/* Line 1806 of yacc.c */ -#line 787 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } - break; - - case 260: - -/* Line 1806 of yacc.c */ -#line 788 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } - break; - - case 261: - -/* Line 1806 of yacc.c */ -#line 789 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } - break; - - case 262: - -/* Line 1806 of yacc.c */ -#line 790 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } - break; - - case 265: - -/* Line 1806 of yacc.c */ -#line 797 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); } - break; - - case 266: - -/* Line 1806 of yacc.c */ -#line 798 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); } - break; - - case 267: - -/* Line 1806 of yacc.c */ -#line 799 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); } - break; - - case 268: - -/* Line 1806 of yacc.c */ -#line 800 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); } - break; - - case 269: - -/* Line 1806 of yacc.c */ -#line 801 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); } - break; - - case 270: - -/* Line 1806 of yacc.c */ -#line 802 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); } - break; - - case 271: - -/* Line 1806 of yacc.c */ -#line 803 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); } - break; - - case 272: - -/* Line 1806 of yacc.c */ -#line 804 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); } - break; - - case 273: - -/* Line 1806 of yacc.c */ -#line 807 "parser.y" - { (yyval.type) = type_new_coclass((yyvsp[(2) - (2)].str)); } - break; - - case 274: - -/* Line 1806 of yacc.c */ -#line 808 "parser.y" - { (yyval.type) = find_type((yyvsp[(2) - (2)].str), 0); - if (type_get_type_detect_alias((yyval.type)) != TYPE_COCLASS) - error_loc("%s was not declared a coclass at %s:%d\n", - (yyvsp[(2) - (2)].str), (yyval.type)->loc_info.input_name, - (yyval.type)->loc_info.line_number); - } - break; - - case 275: - -/* Line 1806 of yacc.c */ -#line 816 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); - check_def((yyval.type)); - (yyval.type)->attrs = check_coclass_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); - } - break; - - case 276: - -/* Line 1806 of yacc.c */ -#line 823 "parser.y" - { (yyval.type) = type_coclass_define((yyvsp[(1) - (5)].type), (yyvsp[(3) - (5)].ifref_list)); } - break; - - case 277: - -/* Line 1806 of yacc.c */ -#line 826 "parser.y" - { (yyval.ifref_list) = NULL; } - break; - - case 278: - -/* Line 1806 of yacc.c */ -#line 827 "parser.y" - { (yyval.ifref_list) = append_ifref( (yyvsp[(1) - (2)].ifref_list), (yyvsp[(2) - (2)].ifref) ); } - break; - - case 279: - -/* Line 1806 of yacc.c */ -#line 831 "parser.y" - { (yyval.ifref) = make_ifref((yyvsp[(2) - (2)].type)); (yyval.ifref)->attrs = (yyvsp[(1) - (2)].attr_list); } - break; - - case 280: - -/* Line 1806 of yacc.c */ -#line 834 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } - break; - - case 281: - -/* Line 1806 of yacc.c */ -#line 835 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } - break; - - case 282: - -/* Line 1806 of yacc.c */ -#line 838 "parser.y" - { attr_t *attrs; - (yyval.type) = (yyvsp[(2) - (2)].type); - check_def((yyval.type)); - attrs = make_attr(ATTR_DISPINTERFACE); - (yyval.type)->attrs = append_attr( check_dispiface_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)), attrs ); - (yyval.type)->defined = TRUE; - } - break; - - case 283: - -/* Line 1806 of yacc.c */ -#line 847 "parser.y" - { (yyval.var_list) = NULL; } - break; - - case 284: - -/* Line 1806 of yacc.c */ -#line 848 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); } - break; - - case 285: - -/* Line 1806 of yacc.c */ -#line 851 "parser.y" - { (yyval.var_list) = NULL; } - break; - - case 286: - -/* Line 1806 of yacc.c */ -#line 852 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); } - break; - - case 287: - -/* Line 1806 of yacc.c */ -#line 858 "parser.y" - { (yyval.type) = (yyvsp[(1) - (5)].type); - type_dispinterface_define((yyval.type), (yyvsp[(3) - (5)].var_list), (yyvsp[(4) - (5)].var_list)); - } - break; - - case 288: - -/* Line 1806 of yacc.c */ -#line 862 "parser.y" - { (yyval.type) = (yyvsp[(1) - (5)].type); - type_dispinterface_define_from_iface((yyval.type), (yyvsp[(3) - (5)].type)); - } - break; - - case 289: - -/* Line 1806 of yacc.c */ -#line 867 "parser.y" - { (yyval.type) = NULL; } - break; - - case 290: - -/* Line 1806 of yacc.c */ -#line 868 "parser.y" - { (yyval.type) = find_type_or_error2((yyvsp[(2) - (2)].str), 0); } - break; - - case 291: - -/* Line 1806 of yacc.c */ -#line 871 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } - break; - - case 292: - -/* Line 1806 of yacc.c */ -#line 872 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } - break; - - case 293: - -/* Line 1806 of yacc.c */ -#line 875 "parser.y" - { (yyval.ifinfo).interface = (yyvsp[(2) - (2)].type); - (yyval.ifinfo).old_pointer_default = pointer_default; - if (is_attr((yyvsp[(1) - (2)].attr_list), ATTR_POINTERDEFAULT)) - pointer_default = get_attrv((yyvsp[(1) - (2)].attr_list), ATTR_POINTERDEFAULT); - check_def((yyvsp[(2) - (2)].type)); - (yyvsp[(2) - (2)].type)->attrs = check_iface_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); - (yyvsp[(2) - (2)].type)->defined = TRUE; - } - break; - - case 294: - -/* Line 1806 of yacc.c */ -#line 886 "parser.y" - { (yyval.type) = (yyvsp[(1) - (6)].ifinfo).interface; - type_interface_define((yyval.type), (yyvsp[(2) - (6)].type), (yyvsp[(4) - (6)].stmt_list)); - pointer_default = (yyvsp[(1) - (6)].ifinfo).old_pointer_default; - } - break; - - case 295: - -/* Line 1806 of yacc.c */ -#line 894 "parser.y" - { (yyval.type) = (yyvsp[(1) - (8)].ifinfo).interface; - type_interface_define((yyval.type), find_type_or_error2((yyvsp[(3) - (8)].str), 0), (yyvsp[(6) - (8)].stmt_list)); - pointer_default = (yyvsp[(1) - (8)].ifinfo).old_pointer_default; - } - break; - - case 296: - -/* Line 1806 of yacc.c */ -#line 898 "parser.y" - { (yyval.type) = (yyvsp[(1) - (2)].type); } - break; - - case 297: - -/* Line 1806 of yacc.c */ -#line 902 "parser.y" - { (yyval.type) = (yyvsp[(1) - (2)].type); } - break; - - case 298: - -/* Line 1806 of yacc.c */ -#line 903 "parser.y" - { (yyval.type) = (yyvsp[(1) - (2)].type); } - break; - - case 299: - -/* Line 1806 of yacc.c */ -#line 906 "parser.y" - { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); } - break; - - case 300: - -/* Line 1806 of yacc.c */ -#line 907 "parser.y" - { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); } - break; - - case 301: - -/* Line 1806 of yacc.c */ -#line 910 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); - (yyval.type)->attrs = check_module_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); - } - break; - - case 302: - -/* Line 1806 of yacc.c */ -#line 916 "parser.y" - { (yyval.type) = (yyvsp[(1) - (5)].type); - type_module_define((yyval.type), (yyvsp[(3) - (5)].stmt_list)); - } - break; - - case 303: - -/* Line 1806 of yacc.c */ -#line 922 "parser.y" - { (yyval.stgclass) = STG_EXTERN; } - break; - - case 304: - -/* Line 1806 of yacc.c */ -#line 923 "parser.y" - { (yyval.stgclass) = STG_STATIC; } - break; - - case 305: - -/* Line 1806 of yacc.c */ -#line 924 "parser.y" - { (yyval.stgclass) = STG_REGISTER; } - break; - - case 306: - -/* Line 1806 of yacc.c */ -#line 928 "parser.y" - { (yyval.attr) = make_attr(ATTR_INLINE); } - break; - - case 307: - -/* Line 1806 of yacc.c */ -#line 932 "parser.y" - { (yyval.attr) = make_attr(ATTR_CONST); } - break; - - case 308: - -/* Line 1806 of yacc.c */ -#line 935 "parser.y" - { (yyval.attr_list) = NULL; } - break; - - case 309: - -/* Line 1806 of yacc.c */ -#line 936 "parser.y" - { (yyval.attr_list) = append_attr((yyvsp[(1) - (2)].attr_list), (yyvsp[(2) - (2)].attr)); } - break; - - case 310: - -/* Line 1806 of yacc.c */ -#line 939 "parser.y" - { (yyval.declspec) = make_decl_spec((yyvsp[(1) - (2)].type), (yyvsp[(2) - (2)].declspec), NULL, NULL, STG_NONE); } - break; - - case 311: - -/* Line 1806 of yacc.c */ -#line 941 "parser.y" - { (yyval.declspec) = make_decl_spec((yyvsp[(2) - (3)].type), (yyvsp[(1) - (3)].declspec), (yyvsp[(3) - (3)].declspec), NULL, STG_NONE); } - break; - - case 312: - -/* Line 1806 of yacc.c */ -#line 944 "parser.y" - { (yyval.declspec) = NULL; } - break; - - case 314: - -/* Line 1806 of yacc.c */ -#line 949 "parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); } - break; - - case 315: - -/* Line 1806 of yacc.c */ -#line 950 "parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); } - break; - - case 316: - -/* Line 1806 of yacc.c */ -#line 951 "parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, NULL, (yyvsp[(1) - (2)].stgclass)); } - break; - - case 317: - -/* Line 1806 of yacc.c */ -#line 956 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } - break; - - case 318: - -/* Line 1806 of yacc.c */ -#line 957 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); - else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } - break; - - case 320: - -/* Line 1806 of yacc.c */ -#line 963 "parser.y" - { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); } - break; - - case 321: - -/* Line 1806 of yacc.c */ -#line 964 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } - break; - - case 322: - -/* Line 1806 of yacc.c */ -#line 965 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } - break; - - case 323: - -/* Line 1806 of yacc.c */ -#line 966 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); - (yyval.declarator)->type = NULL; - } - break; - - case 324: - -/* Line 1806 of yacc.c */ -#line 975 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } - break; - - case 325: - -/* Line 1806 of yacc.c */ -#line 976 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); - else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } - break; - - case 327: - -/* Line 1806 of yacc.c */ -#line 984 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } - break; - - case 328: - -/* Line 1806 of yacc.c */ -#line 985 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); - else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } - break; - - case 329: - -/* Line 1806 of yacc.c */ -#line 990 "parser.y" - { (yyval.declarator) = make_declarator(NULL); } - break; - - case 331: - -/* Line 1806 of yacc.c */ -#line 996 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } - break; - - case 332: - -/* Line 1806 of yacc.c */ -#line 997 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } - break; - - case 333: - -/* Line 1806 of yacc.c */ -#line 998 "parser.y" - { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); } - break; - - case 334: - -/* Line 1806 of yacc.c */ -#line 1000 "parser.y" - { (yyval.declarator) = make_declarator(NULL); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); - (yyval.declarator)->type = NULL; - } - break; - - case 335: - -/* Line 1806 of yacc.c */ -#line 1005 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); - (yyval.declarator)->type = NULL; - } - break; - - case 336: - -/* Line 1806 of yacc.c */ -#line 1014 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } - break; - - case 337: - -/* Line 1806 of yacc.c */ -#line 1015 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } - break; - - case 339: - -/* Line 1806 of yacc.c */ -#line 1022 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } - break; - - case 340: - -/* Line 1806 of yacc.c */ -#line 1023 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } - break; - - case 341: - -/* Line 1806 of yacc.c */ -#line 1027 "parser.y" - { (yyval.declarator) = make_declarator(NULL); } - break; - - case 343: - -/* Line 1806 of yacc.c */ -#line 1035 "parser.y" - { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); } - break; - - case 344: - -/* Line 1806 of yacc.c */ -#line 1036 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } - break; - - case 345: - -/* Line 1806 of yacc.c */ -#line 1037 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } - break; - - case 346: - -/* Line 1806 of yacc.c */ -#line 1038 "parser.y" - { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); } - break; - - case 347: - -/* Line 1806 of yacc.c */ -#line 1040 "parser.y" - { (yyval.declarator) = make_declarator(NULL); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); - (yyval.declarator)->type = NULL; - } - break; - - case 348: - -/* Line 1806 of yacc.c */ -#line 1045 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); - (yyval.declarator)->type = NULL; - } - break; - - case 349: - -/* Line 1806 of yacc.c */ -#line 1052 "parser.y" - { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); } - break; - - case 350: - -/* Line 1806 of yacc.c */ -#line 1053 "parser.y" - { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); } - break; - - case 351: - -/* Line 1806 of yacc.c */ -#line 1056 "parser.y" - { (yyval.expr) = NULL; } - break; - - case 352: - -/* Line 1806 of yacc.c */ -#line 1057 "parser.y" - { (yyval.expr) = (yyvsp[(2) - (2)].expr); } - break; - - case 353: - -/* Line 1806 of yacc.c */ -#line 1060 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->bits = (yyvsp[(2) - (2)].expr); - if (!(yyval.declarator)->bits && !(yyval.declarator)->var->name) - error_loc("unnamed fields are not allowed\n"); - } - break; - - case 354: - -/* Line 1806 of yacc.c */ -#line 1067 "parser.y" - { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); } - break; - - case 355: - -/* Line 1806 of yacc.c */ -#line 1069 "parser.y" - { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); } - break; - - case 356: - -/* Line 1806 of yacc.c */ -#line 1073 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (1)].declarator); } - break; - - case 357: - -/* Line 1806 of yacc.c */ -#line 1074 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (3)].declarator); (yyvsp[(1) - (3)].declarator)->var->eval = (yyvsp[(3) - (3)].expr); } - break; - - case 358: - -/* Line 1806 of yacc.c */ -#line 1078 "parser.y" - { (yyval.num) = THREADING_APARTMENT; } - break; - - case 359: - -/* Line 1806 of yacc.c */ -#line 1079 "parser.y" - { (yyval.num) = THREADING_NEUTRAL; } - break; - - case 360: - -/* Line 1806 of yacc.c */ -#line 1080 "parser.y" - { (yyval.num) = THREADING_SINGLE; } - break; - - case 361: - -/* Line 1806 of yacc.c */ -#line 1081 "parser.y" - { (yyval.num) = THREADING_FREE; } - break; - - case 362: - -/* Line 1806 of yacc.c */ -#line 1082 "parser.y" - { (yyval.num) = THREADING_BOTH; } - break; - - case 363: - -/* Line 1806 of yacc.c */ -#line 1086 "parser.y" - { (yyval.num) = RPC_FC_RP; } - break; - - case 364: - -/* Line 1806 of yacc.c */ -#line 1087 "parser.y" - { (yyval.num) = RPC_FC_UP; } - break; - - case 365: - -/* Line 1806 of yacc.c */ -#line 1088 "parser.y" - { (yyval.num) = RPC_FC_FP; } - break; - - case 366: - -/* Line 1806 of yacc.c */ -#line 1091 "parser.y" - { (yyval.type) = type_new_struct((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); } - break; - - case 367: - -/* Line 1806 of yacc.c */ -#line 1094 "parser.y" - { (yyval.type) = type_new_void(); } - break; - - case 368: - -/* Line 1806 of yacc.c */ -#line 1095 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } - break; - - case 369: - -/* Line 1806 of yacc.c */ -#line 1096 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); } - break; - - case 370: - -/* Line 1806 of yacc.c */ -#line 1097 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); } - break; - - case 371: - -/* Line 1806 of yacc.c */ -#line 1098 "parser.y" - { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); } - break; - - case 372: - -/* Line 1806 of yacc.c */ -#line 1099 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); } - break; - - case 373: - -/* Line 1806 of yacc.c */ -#line 1100 "parser.y" - { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); } - break; - - case 374: - -/* Line 1806 of yacc.c */ -#line 1101 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); } - break; - - case 375: - -/* Line 1806 of yacc.c */ -#line 1102 "parser.y" - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); } - break; - - case 376: - -/* Line 1806 of yacc.c */ -#line 1103 "parser.y" - { (yyval.type) = make_safearray((yyvsp[(3) - (4)].type)); } - break; - - case 377: - -/* Line 1806 of yacc.c */ -#line 1107 "parser.y" - { reg_typedefs((yyvsp[(3) - (4)].declspec), (yyvsp[(4) - (4)].declarator_list), check_typedef_attrs((yyvsp[(2) - (4)].attr_list))); - (yyval.statement) = make_statement_typedef((yyvsp[(4) - (4)].declarator_list)); - } - break; - - case 378: - -/* Line 1806 of yacc.c */ -#line 1113 "parser.y" - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); } - break; - - case 379: - -/* Line 1806 of yacc.c */ -#line 1116 "parser.y" - { (yyval.type) = type_new_encapsulated_union((yyvsp[(2) - (10)].str), (yyvsp[(5) - (10)].var), (yyvsp[(7) - (10)].var), (yyvsp[(9) - (10)].var_list)); } - break; - - case 380: - -/* Line 1806 of yacc.c */ -#line 1120 "parser.y" - { (yyval.num) = MAKEVERSION((yyvsp[(1) - (1)].num), 0); } - break; - - case 381: - -/* Line 1806 of yacc.c */ -#line 1121 "parser.y" - { (yyval.num) = MAKEVERSION((yyvsp[(1) - (3)].num), (yyvsp[(3) - (3)].num)); } - break; - - - -/* Line 1806 of yacc.c */ -#line 5486 "parser.tab.c" - default: break; - } - /* User semantic actions sometimes alter yychar, and that requires - that yytoken be updated with the new translation. We take the - approach of translating immediately before every use of yytoken. - One alternative is translating here after every semantic action, - but that translation would be missed if the semantic action invokes - YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or - if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an - incorrect destructor might then be invoked immediately. In the - case of YYERROR or YYBACKUP, subsequent parser actions might lead - to an incorrect destructor call or verbose syntax error message - before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - - *++yyvsp = yyval; - - /* Now `shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; -#if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif - } - - - - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ - - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - goto yyerrlab1; - - -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR. | -`---------------------------------------------------*/ -yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - /* Do not reclaim the symbols of the rule which action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - yystate = *yyssp; - goto yyerrlab1; - - -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR. | -`-------------------------------------------------------------*/ -yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ - - for (;;) - { - yyn = yypact[yystate]; - if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; - - - yydestruct ("Error: popping", - yystos[yystate], yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); - } - - *++yyvsp = yylval; - - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -#if !defined(yyoverflow) || YYERROR_VERBOSE -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - /* Fall through. */ -#endif - -yyreturn: - if (yychar != YYEMPTY) - { - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = YYTRANSLATE (yychar); - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - } - /* Do not reclaim the symbols of the rule which action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); - YYPOPSTACK (1); - } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - /* Make sure YYID is used. */ - return YYID (yyresult); -} - - - -/* Line 2067 of yacc.c */ -#line 1124 "parser.y" - - -static void decl_builtin_basic(const char *name, enum type_basic_type type) -{ - type_t *t = type_new_basic(type); - reg_type(t, name, 0); -} - -static void decl_builtin_alias(const char *name, type_t *t) -{ - reg_type(type_new_alias(t, name), name, 0); -} - -void init_types(void) -{ - decl_builtin_basic("byte", TYPE_BASIC_BYTE); - decl_builtin_basic("wchar_t", TYPE_BASIC_WCHAR); - decl_builtin_basic("float", TYPE_BASIC_FLOAT); - decl_builtin_basic("double", TYPE_BASIC_DOUBLE); - decl_builtin_basic("error_status_t", TYPE_BASIC_ERROR_STATUS_T); - decl_builtin_basic("handle_t", TYPE_BASIC_HANDLE); - decl_builtin_alias("boolean", type_new_basic(TYPE_BASIC_BYTE)); -} - -static str_list_t *append_str(str_list_t *list, char *str) -{ - struct str_list_entry_t *entry; - - if (!str) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - entry = xmalloc( sizeof(*entry) ); - entry->str = str; - list_add_tail( list, &entry->entry ); - return list; -} - -static attr_list_t *append_attr(attr_list_t *list, attr_t *attr) -{ - attr_t *attr_existing; - if (!attr) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - LIST_FOR_EACH_ENTRY(attr_existing, list, attr_t, entry) - if (attr_existing->type == attr->type) - { - parser_warning("duplicate attribute %s\n", get_attr_display_name(attr->type)); - /* use the last attribute, like MIDL does */ - list_remove(&attr_existing->entry); - break; - } - list_add_tail( list, &attr->entry ); - return list; -} - -static attr_list_t *move_attr(attr_list_t *dst, attr_list_t *src, enum attr_type type) -{ - attr_t *attr; - if (!src) return dst; - LIST_FOR_EACH_ENTRY(attr, src, attr_t, entry) - if (attr->type == type) - { - list_remove(&attr->entry); - return append_attr(dst, attr); - } - return dst; -} - -static attr_list_t *append_attr_list(attr_list_t *new_list, attr_list_t *old_list) -{ - struct list *entry; - - if (!old_list) return new_list; - - while ((entry = list_head(old_list))) - { - attr_t *attr = LIST_ENTRY(entry, attr_t, entry); - list_remove(entry); - new_list = append_attr(new_list, attr); - } - return new_list; -} - -static attr_list_t *dupattrs(const attr_list_t *list) -{ - attr_list_t *new_list; - const attr_t *attr; - - if (!list) return NULL; - - new_list = xmalloc( sizeof(*list) ); - list_init( new_list ); - LIST_FOR_EACH_ENTRY(attr, list, const attr_t, entry) - { - attr_t *new_attr = xmalloc(sizeof(*new_attr)); - *new_attr = *attr; - list_add_tail(new_list, &new_attr->entry); - } - return new_list; -} - -static decl_spec_t *make_decl_spec(type_t *type, decl_spec_t *left, decl_spec_t *right, attr_t *attr, enum storage_class stgclass) -{ - decl_spec_t *declspec = left ? left : right; - if (!declspec) - { - declspec = xmalloc(sizeof(*declspec)); - declspec->type = NULL; - declspec->attrs = NULL; - declspec->stgclass = STG_NONE; - } - declspec->type = type; - if (left && declspec != left) - { - declspec->attrs = append_attr_list(declspec->attrs, left->attrs); - if (declspec->stgclass == STG_NONE) - declspec->stgclass = left->stgclass; - else if (left->stgclass != STG_NONE) - error_loc("only one storage class can be specified\n"); - assert(!left->type); - free(left); - } - if (right && declspec != right) - { - declspec->attrs = append_attr_list(declspec->attrs, right->attrs); - if (declspec->stgclass == STG_NONE) - declspec->stgclass = right->stgclass; - else if (right->stgclass != STG_NONE) - error_loc("only one storage class can be specified\n"); - assert(!right->type); - free(right); - } - - declspec->attrs = append_attr(declspec->attrs, attr); - if (declspec->stgclass == STG_NONE) - declspec->stgclass = stgclass; - else if (stgclass != STG_NONE) - error_loc("only one storage class can be specified\n"); - - /* apply attributes to type */ - if (type && declspec->attrs) - { - attr_list_t *attrs; - declspec->type = duptype(type, 1); - attrs = dupattrs(type->attrs); - declspec->type->attrs = append_attr_list(attrs, declspec->attrs); - declspec->attrs = NULL; - } - - return declspec; -} - -static attr_t *make_attr(enum attr_type type) -{ - attr_t *a = xmalloc(sizeof(attr_t)); - a->type = type; - a->u.ival = 0; - return a; -} - -static attr_t *make_attrv(enum attr_type type, unsigned int val) -{ - attr_t *a = xmalloc(sizeof(attr_t)); - a->type = type; - a->u.ival = val; - return a; -} - -static attr_t *make_attrp(enum attr_type type, void *val) -{ - attr_t *a = xmalloc(sizeof(attr_t)); - a->type = type; - a->u.pval = val; - return a; -} - -static expr_list_t *append_expr(expr_list_t *list, expr_t *expr) -{ - if (!expr) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_add_tail( list, &expr->entry ); - return list; -} - -static array_dims_t *append_array(array_dims_t *list, expr_t *expr) -{ - if (!expr) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_add_tail( list, &expr->entry ); - return list; -} - -static struct list type_pool = LIST_INIT(type_pool); -typedef struct -{ - type_t data; - struct list link; -} type_pool_node_t; - -type_t *alloc_type(void) -{ - type_pool_node_t *node = xmalloc(sizeof *node); - list_add_tail(&type_pool, &node->link); - return &node->data; -} - -void set_all_tfswrite(int val) -{ - type_pool_node_t *node; - LIST_FOR_EACH_ENTRY(node, &type_pool, type_pool_node_t, link) - node->data.tfswrite = val; -} - -void clear_all_offsets(void) -{ - type_pool_node_t *node; - LIST_FOR_EACH_ENTRY(node, &type_pool, type_pool_node_t, link) - node->data.typestring_offset = node->data.ptrdesc = 0; -} - -static void type_function_add_head_arg(type_t *type, var_t *arg) -{ - if (!type->details.function->args) - { - type->details.function->args = xmalloc( sizeof(*type->details.function->args) ); - list_init( type->details.function->args ); - } - list_add_head( type->details.function->args, &arg->entry ); -} - -static int is_allowed_range_type(const type_t *type) -{ - switch (type_get_type(type)) - { - case TYPE_ENUM: - return TRUE; - case TYPE_BASIC: - switch (type_basic_get_type(type)) - { - case TYPE_BASIC_INT8: - case TYPE_BASIC_INT16: - case TYPE_BASIC_INT32: - case TYPE_BASIC_INT64: - case TYPE_BASIC_INT: - case TYPE_BASIC_INT3264: - case TYPE_BASIC_BYTE: - case TYPE_BASIC_CHAR: - case TYPE_BASIC_WCHAR: - case TYPE_BASIC_HYPER: - return TRUE; - case TYPE_BASIC_FLOAT: - case TYPE_BASIC_DOUBLE: - case TYPE_BASIC_ERROR_STATUS_T: - case TYPE_BASIC_HANDLE: - return FALSE; - } - return FALSE; - default: - return FALSE; - } -} - -static type_t *append_ptrchain_type(type_t *ptrchain, type_t *type) -{ - type_t *ptrchain_type; - if (!ptrchain) - return type; - for (ptrchain_type = ptrchain; type_pointer_get_ref(ptrchain_type); ptrchain_type = type_pointer_get_ref(ptrchain_type)) - ; - assert(ptrchain_type->type_type == TYPE_POINTER); - ptrchain_type->details.pointer.ref = type; - return ptrchain; -} - -static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, const declarator_t *decl, - int top) -{ - var_t *v = decl->var; - expr_list_t *sizes = get_attrp(attrs, ATTR_SIZEIS); - expr_list_t *lengs = get_attrp(attrs, ATTR_LENGTHIS); - int sizeless; - expr_t *dim; - type_t **ptype; - array_dims_t *arr = decl ? decl->array : NULL; - type_t *func_type = decl ? decl->func_type : NULL; - type_t *type = decl_spec->type; - - /* In case of a range attribute, duplicate the type to keep track of - * the min/max values in the type format string */ - if(is_attr(attrs, ATTR_RANGE)) - type = duptype(type, 1); - - if (is_attr(type->attrs, ATTR_INLINE)) - { - if (!func_type) - error_loc("inline attribute applied to non-function type\n"); - else - { - type_t *t; - /* move inline attribute from return type node to function node */ - for (t = func_type; is_ptr(t); t = type_pointer_get_ref(t)) - ; - t->attrs = move_attr(t->attrs, type->attrs, ATTR_INLINE); - } - } - - /* add type onto the end of the pointers in pident->type */ - v->type = append_ptrchain_type(decl ? decl->type : NULL, type); - v->stgclass = decl_spec->stgclass; - v->attrs = attrs; - - /* check for pointer attribute being applied to non-pointer, non-array - * type */ - if (!arr) - { - int ptr_attr = get_attrv(v->attrs, ATTR_POINTERTYPE); - const type_t *ptr = NULL; - /* pointer attributes on the left side of the type belong to the function - * pointer, if one is being declared */ - type_t **pt = func_type ? &func_type : &v->type; - for (ptr = *pt; ptr && !ptr_attr; ) - { - ptr_attr = get_attrv(ptr->attrs, ATTR_POINTERTYPE); - if (!ptr_attr && type_is_alias(ptr)) - ptr = type_alias_get_aliasee(ptr); - else - break; - } - if (is_ptr(ptr)) - { - if (ptr_attr && ptr_attr != RPC_FC_UP && - type_get_type(type_pointer_get_ref(ptr)) == TYPE_INTERFACE) - warning_loc_info(&v->loc_info, - "%s: pointer attribute applied to interface " - "pointer type has no effect\n", v->name); - if (!ptr_attr && top && (*pt)->details.pointer.def_fc != RPC_FC_RP) - { - /* FIXME: this is a horrible hack to cope with the issue that we - * store an offset to the typeformat string in the type object, but - * two typeformat strings may be written depending on whether the - * pointer is a toplevel parameter or not */ - *pt = duptype(*pt, 1); - } - } - else if (ptr_attr) - error_loc("%s: pointer attribute applied to non-pointer type\n", v->name); - } - - if (is_attr(v->attrs, ATTR_STRING)) - { - type_t *t = type; - - if (!is_ptr(v->type) && !arr) - error_loc("'%s': [string] attribute applied to non-pointer, non-array type\n", - v->name); - - while (is_ptr(t)) - t = type_pointer_get_ref(t); - - if (type_get_type(t) != TYPE_BASIC && - (get_basic_fc(t) != RPC_FC_CHAR && - get_basic_fc(t) != RPC_FC_BYTE && - get_basic_fc(t) != RPC_FC_WCHAR)) - { - error_loc("'%s': [string] attribute is only valid on 'char', 'byte', or 'wchar_t' pointers and arrays\n", - v->name); - } - } - - if (is_attr(v->attrs, ATTR_V1ENUM)) - { - if (type_get_type_detect_alias(v->type) != TYPE_ENUM) - error_loc("'%s': [v1_enum] attribute applied to non-enum type\n", v->name); - } - - if (is_attr(v->attrs, ATTR_RANGE) && !is_allowed_range_type(v->type)) - error_loc("'%s': [range] attribute applied to non-integer type\n", - v->name); - - ptype = &v->type; - sizeless = FALSE; - if (arr) LIST_FOR_EACH_ENTRY_REV(dim, arr, expr_t, entry) - { - if (sizeless) - error_loc("%s: only the first array dimension can be unspecified\n", v->name); - - if (dim->is_const) - { - if (dim->cval <= 0) - error_loc("%s: array dimension must be positive\n", v->name); - - /* FIXME: should use a type_memsize that allows us to pass in a pointer size */ - if (0) - { - unsigned int size = type_memsize(v->type); - - if (0xffffffffu / size < dim->cval) - error_loc("%s: total array size is too large\n", v->name); - } - } - else - sizeless = TRUE; - - *ptype = type_new_array(NULL, *ptype, FALSE, - dim->is_const ? dim->cval : 0, - dim->is_const ? NULL : dim, NULL, - pointer_default); - } - - ptype = &v->type; - if (sizes) LIST_FOR_EACH_ENTRY(dim, sizes, expr_t, entry) - { - if (dim->type != EXPR_VOID) - { - if (is_array(*ptype)) - { - if (!type_array_get_conformance(*ptype) || - type_array_get_conformance(*ptype)->type != EXPR_VOID) - error_loc("%s: cannot specify size_is for an already sized array\n", v->name); - else - *ptype = type_new_array((*ptype)->name, - type_array_get_element(*ptype), FALSE, - 0, dim, NULL, 0); - } - else if (is_ptr(*ptype)) - *ptype = type_new_array((*ptype)->name, type_pointer_get_ref(*ptype), TRUE, - 0, dim, NULL, pointer_default); - else - error_loc("%s: size_is attribute applied to illegal type\n", v->name); - } - - if (is_ptr(*ptype)) - ptype = &(*ptype)->details.pointer.ref; - else if (is_array(*ptype)) - ptype = &(*ptype)->details.array.elem; - else - error_loc("%s: too many expressions in size_is attribute\n", v->name); - } - - ptype = &v->type; - if (lengs) LIST_FOR_EACH_ENTRY(dim, lengs, expr_t, entry) - { - if (dim->type != EXPR_VOID) - { - if (is_array(*ptype)) - { - *ptype = type_new_array((*ptype)->name, - type_array_get_element(*ptype), - type_array_is_decl_as_ptr(*ptype), - type_array_get_dim(*ptype), - type_array_get_conformance(*ptype), - dim, type_array_get_ptr_default_fc(*ptype)); - } - else - error_loc("%s: length_is attribute applied to illegal type\n", v->name); - } - - if (is_ptr(*ptype)) - ptype = &(*ptype)->details.pointer.ref; - else if (is_array(*ptype)) - ptype = &(*ptype)->details.array.elem; - else - error_loc("%s: too many expressions in length_is attribute\n", v->name); - } - - /* v->type is currently pointing to the type on the left-side of the - * declaration, so we need to fix this up so that it is the return type of the - * function and make v->type point to the function side of the declaration */ - if (func_type) - { - type_t *ft, *t; - type_t *return_type = v->type; - v->type = func_type; - for (ft = v->type; is_ptr(ft); ft = type_pointer_get_ref(ft)) - ; - assert(type_get_type_detect_alias(ft) == TYPE_FUNCTION); - ft->details.function->retval = make_var(xstrdup("_RetVal")); - ft->details.function->retval->type = return_type; - /* move calling convention attribute, if present, from pointer nodes to - * function node */ - for (t = v->type; is_ptr(t); t = type_pointer_get_ref(t)) - ft->attrs = move_attr(ft->attrs, t->attrs, ATTR_CALLCONV); - } - else - { - type_t *t; - for (t = v->type; is_ptr(t); t = type_pointer_get_ref(t)) - if (is_attr(t->attrs, ATTR_CALLCONV)) - error_loc("calling convention applied to non-function-pointer type\n"); - } - - if (decl->bits) - v->type = type_new_bitfield(v->type, decl->bits); - - return v; -} - -static var_list_t *set_var_types(attr_list_t *attrs, decl_spec_t *decl_spec, declarator_list_t *decls) -{ - declarator_t *decl, *next; - var_list_t *var_list = NULL; - - LIST_FOR_EACH_ENTRY_SAFE( decl, next, decls, declarator_t, entry ) - { - var_t *var = declare_var(attrs, decl_spec, decl, 0); - var_list = append_var(var_list, var); - free(decl); - } - free(decl_spec); - return var_list; -} - -static ifref_list_t *append_ifref(ifref_list_t *list, ifref_t *iface) -{ - if (!iface) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_add_tail( list, &iface->entry ); - return list; -} - -static ifref_t *make_ifref(type_t *iface) -{ - ifref_t *l = xmalloc(sizeof(ifref_t)); - l->iface = iface; - l->attrs = NULL; - return l; -} - -var_list_t *append_var(var_list_t *list, var_t *var) -{ - if (!var) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_add_tail( list, &var->entry ); - return list; -} - -static var_list_t *append_var_list(var_list_t *list, var_list_t *vars) -{ - if (!vars) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_move_tail( list, vars ); - return list; -} - -var_t *make_var(char *name) -{ - var_t *v = xmalloc(sizeof(var_t)); - v->name = name; - v->type = NULL; - v->attrs = NULL; - v->eval = NULL; - v->stgclass = STG_NONE; - init_loc_info(&v->loc_info); - return v; -} - -static declarator_list_t *append_declarator(declarator_list_t *list, declarator_t *d) -{ - if (!d) return list; - if (!list) { - list = xmalloc(sizeof(*list)); - list_init(list); - } - list_add_tail(list, &d->entry); - return list; -} - -static declarator_t *make_declarator(var_t *var) -{ - declarator_t *d = xmalloc(sizeof(*d)); - d->var = var ? var : make_var(NULL); - d->type = NULL; - d->func_type = NULL; - d->array = NULL; - d->bits = NULL; - return d; -} - -static type_t *make_safearray(type_t *type) -{ - return type_new_array(NULL, type_new_alias(type, "SAFEARRAY"), TRUE, 0, - NULL, NULL, RPC_FC_RP); -} - -static typelib_t *make_library(const char *name, const attr_list_t *attrs) -{ - typelib_t *typelib = xmalloc(sizeof(*typelib)); - typelib->name = xstrdup(name); - typelib->attrs = attrs; - list_init( &typelib->importlibs ); - return typelib; -} - -#define HASHMAX 64 - -static int hash_ident(const char *name) -{ - const char *p = name; - int sum = 0; - /* a simple sum hash is probably good enough */ - while (*p) { - sum += *p; - p++; - } - return sum & (HASHMAX-1); -} - -/***** type repository *****/ - -struct rtype { - const char *name; - type_t *type; - int t; - struct rtype *next; -}; - -struct rtype *type_hash[HASHMAX]; - -type_t *reg_type(type_t *type, const char *name, int t) -{ - struct rtype *nt; - int hash; - if (!name) { - error_loc("registering named type without name\n"); - return type; - } - hash = hash_ident(name); - nt = xmalloc(sizeof(struct rtype)); - nt->name = name; - nt->type = type; - nt->t = t; - nt->next = type_hash[hash]; - type_hash[hash] = nt; - if ((t == tsSTRUCT || t == tsUNION)) - fix_incomplete_types(type); - return type; -} - -static int is_incomplete(const type_t *t) -{ - return !t->defined && - (type_get_type_detect_alias(t) == TYPE_STRUCT || - type_get_type_detect_alias(t) == TYPE_UNION || - type_get_type_detect_alias(t) == TYPE_ENCAPSULATED_UNION); -} - -void add_incomplete(type_t *t) -{ - struct typenode *tn = xmalloc(sizeof *tn); - tn->type = t; - list_add_tail(&incomplete_types, &tn->entry); -} - -static void fix_type(type_t *t) -{ - if (type_is_alias(t) && is_incomplete(t)) { - type_t *ot = type_alias_get_aliasee(t); - fix_type(ot); - if (type_get_type_detect_alias(ot) == TYPE_STRUCT || - type_get_type_detect_alias(ot) == TYPE_UNION || - type_get_type_detect_alias(ot) == TYPE_ENCAPSULATED_UNION) - t->details.structure = ot->details.structure; - t->defined = ot->defined; - } -} - -static void fix_incomplete(void) -{ - struct typenode *tn, *next; - - LIST_FOR_EACH_ENTRY_SAFE(tn, next, &incomplete_types, struct typenode, entry) { - fix_type(tn->type); - list_remove(&tn->entry); - free(tn); - } -} - -static void fix_incomplete_types(type_t *complete_type) -{ - struct typenode *tn, *next; - - LIST_FOR_EACH_ENTRY_SAFE(tn, next, &incomplete_types, struct typenode, entry) - { - if (type_is_equal(complete_type, tn->type)) - { - tn->type->details.structure = complete_type->details.structure; - list_remove(&tn->entry); - free(tn); - } - } -} - -static type_t *reg_typedefs(decl_spec_t *decl_spec, declarator_list_t *decls, attr_list_t *attrs) -{ - const declarator_t *decl; - type_t *type = decl_spec->type; - - /* We must generate names for tagless enum, struct or union. - Typedef-ing a tagless enum, struct or union means we want the typedef - to be included in a library hence the public attribute. */ - if ((type_get_type_detect_alias(type) == TYPE_ENUM || - type_get_type_detect_alias(type) == TYPE_STRUCT || - type_get_type_detect_alias(type) == TYPE_UNION || - type_get_type_detect_alias(type) == TYPE_ENCAPSULATED_UNION) && - !type->name && !parse_only) - { - if (! is_attr(attrs, ATTR_PUBLIC)) - attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) ); - type->name = gen_name(); - } - else if (is_attr(attrs, ATTR_UUID) && !is_attr(attrs, ATTR_PUBLIC)) - attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) ); - - /* Append the SWITCHTYPE attribute to a non-encapsulated union if it does not already have it. */ - if (type_get_type_detect_alias(type) == TYPE_UNION && - is_attr(attrs, ATTR_SWITCHTYPE) && - !is_attr(type->attrs, ATTR_SWITCHTYPE)) - type->attrs = append_attr(type->attrs, make_attrp(ATTR_SWITCHTYPE, get_attrp(attrs, ATTR_SWITCHTYPE))); - - LIST_FOR_EACH_ENTRY( decl, decls, const declarator_t, entry ) - { - - if (decl->var->name) { - type_t *cur; - var_t *name; - - cur = find_type(decl->var->name, 0); - if (cur) - error_loc("%s: redefinition error; original definition was at %s:%d\n", - cur->name, cur->loc_info.input_name, - cur->loc_info.line_number); - - name = declare_var(attrs, decl_spec, decl, 0); - cur = type_new_alias(name->type, name->name); - cur->attrs = attrs; - - if (is_incomplete(cur)) - add_incomplete(cur); - reg_type(cur, cur->name, 0); - } - } - return type; -} - -type_t *find_type(const char *name, int t) -{ - struct rtype *cur = type_hash[hash_ident(name)]; - while (cur && (cur->t != t || strcmp(cur->name, name))) - cur = cur->next; - return cur ? cur->type : NULL; -} - -static type_t *find_type_or_error(const char *name, int t) -{ - type_t *type = find_type(name, t); - if (!type) { - error_loc("type '%s' not found\n", name); - return NULL; - } - return type; -} - -static type_t *find_type_or_error2(char *name, int t) -{ - type_t *tp = find_type_or_error(name, t); - free(name); - return tp; -} - -int is_type(const char *name) -{ - return find_type(name, 0) != NULL; -} - -type_t *get_type(enum type_type type, char *name, int t) -{ - type_t *tp; - if (name) { - tp = find_type(name, t); - if (tp) { - free(name); - return tp; - } - } - tp = make_type(type); - tp->name = name; - if (!name) return tp; - return reg_type(tp, name, t); -} - -/***** constant repository *****/ - -struct rconst { - char *name; - var_t *var; - struct rconst *next; -}; - -struct rconst *const_hash[HASHMAX]; - -static var_t *reg_const(var_t *var) -{ - struct rconst *nc; - int hash; - if (!var->name) { - error_loc("registering constant without name\n"); - return var; - } - hash = hash_ident(var->name); - nc = xmalloc(sizeof(struct rconst)); - nc->name = var->name; - nc->var = var; - nc->next = const_hash[hash]; - const_hash[hash] = nc; - return var; -} - -var_t *find_const(const char *name, int f) -{ - struct rconst *cur = const_hash[hash_ident(name)]; - while (cur && strcmp(cur->name, name)) - cur = cur->next; - if (!cur) { - if (f) error_loc("constant '%s' not found\n", name); - return NULL; - } - return cur->var; -} - -static char *gen_name(void) -{ - static const char format[] = "__WIDL_%s_generated_name_%08lX"; - static unsigned long n = 0; - static const char *file_id; - static size_t size; - char *name; - - if (! file_id) - { - char *dst = dup_basename(input_name, ".idl"); - file_id = dst; - - for (; *dst; ++dst) - if (! isalnum((unsigned char) *dst)) - *dst = '_'; - - size = sizeof format - 7 + strlen(file_id) + 8; - } - - name = xmalloc(size); - sprintf(name, format, file_id, n++); - return name; -} - -struct allowed_attr -{ - unsigned int dce_compatible : 1; - unsigned int acf : 1; - unsigned int on_interface : 1; - unsigned int on_function : 1; - unsigned int on_arg : 1; - unsigned int on_type : 1; - unsigned int on_enum : 1; - unsigned int on_struct : 1; - unsigned int on_union : 1; - unsigned int on_field : 1; - unsigned int on_library : 1; - unsigned int on_dispinterface : 1; - unsigned int on_module : 1; - unsigned int on_coclass : 1; - const char *display_name; -}; - -struct allowed_attr allowed_attr[] = -{ - /* attr { D ACF I Fn ARG T En St Un Fi L DI M C } */ - /* ATTR_AGGREGATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "aggregatable" }, - /* ATTR_ANNOTATION */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "annotation" }, - /* ATTR_APPOBJECT */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "appobject" }, - /* ATTR_ASYNC */ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "async" }, - /* ATTR_AUTO_HANDLE */ { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "auto_handle" }, - /* ATTR_BINDABLE */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "bindable" }, - /* ATTR_BROADCAST */ { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "broadcast" }, - /* ATTR_CALLAS */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "call_as" }, - /* ATTR_CALLCONV */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL }, - /* ATTR_CASE */ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, "case" }, - /* ATTR_CODE */ { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "code" }, - /* ATTR_COMMSTATUS */ { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "comm_status" }, - /* ATTR_CONST */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "const" }, - /* ATTR_CONTEXTHANDLE */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "context_handle" }, - /* ATTR_CONTROL */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, "control" }, - /* ATTR_DECODE */ { 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "decode" }, - /* ATTR_DEFAULT */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, "default" }, - /* ATTR_DEFAULTBIND */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "defaultbind" }, - /* ATTR_DEFAULTCOLLELEM */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "defaultcollelem" }, - /* ATTR_DEFAULTVALUE */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "defaultvalue" }, - /* ATTR_DEFAULTVTABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "defaultvtable" }, - /* ATTR_DISABLECONSISTENCYCHECK */{ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "disable_consistency_check" }, - /* ATTR_DISPINTERFACE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL }, - /* ATTR_DISPLAYBIND */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "displaybind" }, - /* ATTR_DLLNAME */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, "dllname" }, - /* ATTR_DUAL */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "dual" }, - /* ATTR_ENABLEALLOCATE */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "enable_allocate" }, - /* ATTR_ENCODE */ { 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "encode" }, - /* ATTR_ENDPOINT */ { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "endpoint" }, - /* ATTR_ENTRY */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "entry" }, - /* ATTR_EXPLICIT_HANDLE */ { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "explicit_handle" }, - /* ATTR_FAULTSTATUS */ { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fault_status" }, - /* ATTR_FORCEALLOCATE */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "force_allocate" }, - /* ATTR_HANDLE */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "handle" }, - /* ATTR_HELPCONTEXT */ { 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "helpcontext" }, - /* ATTR_HELPFILE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, "helpfile" }, - /* ATTR_HELPSTRING */ { 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "helpstring" }, - /* ATTR_HELPSTRINGCONTEXT */ { 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "helpstringcontext" }, - /* ATTR_HELPSTRINGDLL */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, "helpstringdll" }, - /* ATTR_HIDDEN */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, "hidden" }, - /* ATTR_ID */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, "id" }, - /* ATTR_IDEMPOTENT */ { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "idempotent" }, - /* ATTR_IGNORE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, "ignore" }, - /* ATTR_IIDIS */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "iid_is" }, - /* ATTR_IMMEDIATEBIND */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "immediatebind" }, - /* ATTR_IMPLICIT_HANDLE */ { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "implicit_handle" }, - /* ATTR_IN */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "in" }, - /* ATTR_INLINE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "inline" }, - /* ATTR_INPUTSYNC */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "inputsync" }, - /* ATTR_LENGTHIS */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "length_is" }, - /* ATTR_LIBLCID */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, "lcid" }, - /* ATTR_LICENSED */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "licensed" }, - /* ATTR_LOCAL */ { 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "local" }, - /* ATTR_MAYBE */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "maybe" }, - /* ATTR_MESSAGE */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "message" }, - /* ATTR_NOCODE */ { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "nocode" }, - /* ATTR_NONBROWSABLE */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "nonbrowsable" }, - /* ATTR_NONCREATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "noncreatable" }, - /* ATTR_NONEXTENSIBLE */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "nonextensible" }, - /* ATTR_NOTIFY */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "notify" }, - /* ATTR_NOTIFYFLAG */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "notify_flag" }, - /* ATTR_OBJECT */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "object" }, - /* ATTR_ODL */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, "odl" }, - /* ATTR_OLEAUTOMATION */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "oleautomation" }, - /* ATTR_OPTIMIZE */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "optimize" }, - /* ATTR_OPTIONAL */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "optional" }, - /* ATTR_OUT */ { 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "out" }, - /* ATTR_PARAMLCID */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "lcid" }, - /* ATTR_PARTIALIGNORE */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "partial_ignore" }, - /* ATTR_POINTERDEFAULT */ { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "pointer_default" }, - /* ATTR_POINTERTYPE */ { 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, "ref, unique or ptr" }, - /* ATTR_PROGID */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "progid" }, - /* ATTR_PROPGET */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "propget" }, - /* ATTR_PROPPUT */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "propput" }, - /* ATTR_PROPPUTREF */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "propputref" }, - /* ATTR_PROXY */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "proxy" }, - /* ATTR_PUBLIC */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "public" }, - /* ATTR_RANGE */ { 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, "range" }, - /* ATTR_READONLY */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "readonly" }, - /* ATTR_REPRESENTAS */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "represent_as" }, - /* ATTR_REQUESTEDIT */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "requestedit" }, - /* ATTR_RESTRICTED */ { 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, "restricted" }, - /* ATTR_RETVAL */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "retval" }, - /* ATTR_SIZEIS */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "size_is" }, - /* ATTR_SOURCE */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, "source" }, - /* ATTR_STRICTCONTEXTHANDLE */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "strict_context_handle" }, - /* ATTR_STRING */ { 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, "string" }, - /* ATTR_SWITCHIS */ { 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "switch_is" }, - /* ATTR_SWITCHTYPE */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, "switch_type" }, - /* ATTR_THREADING */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "threading" }, - /* ATTR_TRANSMITAS */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "transmit_as" }, - /* ATTR_UIDEFAULT */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "uidefault" }, - /* ATTR_USESGETLASTERROR */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "usesgetlasterror" }, - /* ATTR_USERMARSHAL */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "user_marshal" }, - /* ATTR_UUID */ { 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "uuid" }, - /* ATTR_V1ENUM */ { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, "v1_enum" }, - /* ATTR_VARARG */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "vararg" }, - /* ATTR_VERSION */ { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, "version" }, - /* ATTR_VIPROGID */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "vi_progid" }, - /* ATTR_WIREMARSHAL */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "wire_marshal" }, -}; - -const char *get_attr_display_name(enum attr_type type) -{ - return allowed_attr[type].display_name; -} - -static attr_list_t *check_iface_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_interface) - error_loc("inapplicable attribute %s for interface %s\n", - allowed_attr[attr->type].display_name, name); - if (attr->type == ATTR_IMPLICIT_HANDLE) - { - const var_t *var = attr->u.pval; - if (type_get_type( var->type) == TYPE_BASIC && - type_basic_get_type( var->type ) == TYPE_BASIC_HANDLE) - continue; - if (is_aliaschain_attr( var->type, ATTR_HANDLE )) - continue; - error_loc("attribute %s requires a handle type in interface %s\n", - allowed_attr[attr->type].display_name, name); - } - } - return attrs; -} - -static attr_list_t *check_function_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_function) - error_loc("inapplicable attribute %s for function %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static void check_arg_attrs(const var_t *arg) -{ - const attr_t *attr; - - if (arg->attrs) - { - LIST_FOR_EACH_ENTRY(attr, arg->attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_arg) - error_loc("inapplicable attribute %s for argument %s\n", - allowed_attr[attr->type].display_name, arg->name); - } - } -} - -static attr_list_t *check_typedef_attrs(attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_type) - error_loc("inapplicable attribute %s for typedef\n", - allowed_attr[attr->type].display_name); - } - return attrs; -} - -static attr_list_t *check_enum_attrs(attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_enum) - error_loc("inapplicable attribute %s for enum\n", - allowed_attr[attr->type].display_name); - } - return attrs; -} - -static attr_list_t *check_struct_attrs(attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_struct) - error_loc("inapplicable attribute %s for struct\n", - allowed_attr[attr->type].display_name); - } - return attrs; -} - -static attr_list_t *check_union_attrs(attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_union) - error_loc("inapplicable attribute %s for union\n", - allowed_attr[attr->type].display_name); - } - return attrs; -} - -static attr_list_t *check_field_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_field) - error_loc("inapplicable attribute %s for field %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static attr_list_t *check_library_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_library) - error_loc("inapplicable attribute %s for library %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static attr_list_t *check_dispiface_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_dispinterface) - error_loc("inapplicable attribute %s for dispinterface %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static attr_list_t *check_module_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_module) - error_loc("inapplicable attribute %s for module %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static attr_list_t *check_coclass_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_coclass) - error_loc("inapplicable attribute %s for coclass %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static int is_allowed_conf_type(const type_t *type) -{ - switch (type_get_type(type)) - { - case TYPE_ENUM: - return TRUE; - case TYPE_BASIC: - switch (type_basic_get_type(type)) - { - case TYPE_BASIC_INT8: - case TYPE_BASIC_INT16: - case TYPE_BASIC_INT32: - case TYPE_BASIC_INT64: - case TYPE_BASIC_INT: - case TYPE_BASIC_CHAR: - case TYPE_BASIC_HYPER: - case TYPE_BASIC_BYTE: - case TYPE_BASIC_WCHAR: - return TRUE; - default: - return FALSE; - } - case TYPE_ALIAS: - /* shouldn't get here because of type_get_type call above */ - assert(0); - /* fall through */ - case TYPE_STRUCT: - case TYPE_UNION: - case TYPE_ENCAPSULATED_UNION: - case TYPE_ARRAY: - case TYPE_POINTER: - case TYPE_VOID: - case TYPE_MODULE: - case TYPE_COCLASS: - case TYPE_FUNCTION: - case TYPE_INTERFACE: - case TYPE_BITFIELD: - return FALSE; - } - return FALSE; -} - -static int is_ptr_guid_type(const type_t *type) -{ - /* first, make sure it is a pointer to something */ - if (!is_ptr(type)) return FALSE; - - /* second, make sure it is a pointer to something of size sizeof(GUID), - * i.e. 16 bytes */ - return (type_memsize(type_pointer_get_ref(type)) == 16); -} - -static void check_conformance_expr_list(const char *attr_name, const var_t *arg, const type_t *container_type, expr_list_t *expr_list) -{ - expr_t *dim; - struct expr_loc expr_loc; - expr_loc.v = arg; - expr_loc.attr = attr_name; - if (expr_list) LIST_FOR_EACH_ENTRY(dim, expr_list, expr_t, entry) - { - if (dim->type != EXPR_VOID) - { - const type_t *expr_type = expr_resolve_type(&expr_loc, container_type, dim); - if (!is_allowed_conf_type(expr_type)) - error_loc_info(&arg->loc_info, "expression must resolve to integral type <= 32bits for attribute %s\n", - attr_name); - } - } -} - -static void check_remoting_fields(const var_t *var, type_t *type); - -/* checks that properties common to fields and arguments are consistent */ -static void check_field_common(const type_t *container_type, - const char *container_name, const var_t *arg) -{ - type_t *type = arg->type; - int more_to_do; - const char *container_type_name; - const char *var_type; - - switch (type_get_type(container_type)) - { - case TYPE_STRUCT: - container_type_name = "struct"; - var_type = "field"; - break; - case TYPE_UNION: - container_type_name = "union"; - var_type = "arm"; - break; - case TYPE_ENCAPSULATED_UNION: - container_type_name = "encapsulated union"; - var_type = "arm"; - break; - case TYPE_FUNCTION: - container_type_name = "function"; - var_type = "parameter"; - break; - default: - /* should be no other container types */ - assert(0); - return; - } - - if (is_attr(arg->attrs, ATTR_LENGTHIS) && - (is_attr(arg->attrs, ATTR_STRING) || is_aliaschain_attr(arg->type, ATTR_STRING))) - error_loc_info(&arg->loc_info, - "string and length_is specified for argument %s are mutually exclusive attributes\n", - arg->name); - - if (is_attr(arg->attrs, ATTR_SIZEIS)) - { - expr_list_t *size_is_exprs = get_attrp(arg->attrs, ATTR_SIZEIS); - check_conformance_expr_list("size_is", arg, container_type, size_is_exprs); - } - if (is_attr(arg->attrs, ATTR_LENGTHIS)) - { - expr_list_t *length_is_exprs = get_attrp(arg->attrs, ATTR_LENGTHIS); - check_conformance_expr_list("length_is", arg, container_type, length_is_exprs); - } - if (is_attr(arg->attrs, ATTR_IIDIS)) - { - struct expr_loc expr_loc; - expr_t *expr = get_attrp(arg->attrs, ATTR_IIDIS); - if (expr->type != EXPR_VOID) - { - const type_t *expr_type; - expr_loc.v = arg; - expr_loc.attr = "iid_is"; - expr_type = expr_resolve_type(&expr_loc, container_type, expr); - if (!expr_type || !is_ptr_guid_type(expr_type)) - error_loc_info(&arg->loc_info, "expression must resolve to pointer to GUID type for attribute iid_is\n"); - } - } - if (is_attr(arg->attrs, ATTR_SWITCHIS)) - { - struct expr_loc expr_loc; - expr_t *expr = get_attrp(arg->attrs, ATTR_SWITCHIS); - if (expr->type != EXPR_VOID) - { - const type_t *expr_type; - expr_loc.v = arg; - expr_loc.attr = "switch_is"; - expr_type = expr_resolve_type(&expr_loc, container_type, expr); - if (!expr_type || !is_allowed_conf_type(expr_type)) - error_loc_info(&arg->loc_info, "expression must resolve to integral type <= 32bits for attribute %s\n", - expr_loc.attr); - } - } - - do - { - more_to_do = FALSE; - - switch (typegen_detect_type(type, arg->attrs, TDT_IGNORE_STRINGS)) - { - case TGT_STRUCT: - case TGT_UNION: - check_remoting_fields(arg, type); - break; - case TGT_INVALID: - { - const char *reason = "is invalid"; - switch (type_get_type(type)) - { - case TYPE_VOID: - reason = "cannot derive from void *"; - break; - case TYPE_FUNCTION: - reason = "cannot be a function pointer"; - break; - case TYPE_BITFIELD: - reason = "cannot be a bit-field"; - break; - case TYPE_COCLASS: - reason = "cannot be a class"; - break; - case TYPE_INTERFACE: - reason = "cannot be a non-pointer to an interface"; - break; - case TYPE_MODULE: - reason = "cannot be a module"; - break; - default: - break; - } - error_loc_info(&arg->loc_info, "%s \'%s\' of %s \'%s\' %s\n", - var_type, arg->name, container_type_name, container_name, reason); - break; - } - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - if (type_get_type(container_type) != TYPE_FUNCTION) - error_loc_info(&arg->loc_info, - "%s \'%s\' of %s \'%s\' cannot be a context handle\n", - var_type, arg->name, container_type_name, - container_name); - break; - case TGT_STRING: - { - const type_t *t = type; - while (is_ptr(t)) - t = type_pointer_get_ref(t); - if (is_aliaschain_attr(t, ATTR_RANGE)) - warning_loc_info(&arg->loc_info, "%s: range not verified for a string of ranged types\n", arg->name); - break; - } - case TGT_POINTER: - type = type_pointer_get_ref(type); - more_to_do = TRUE; - break; - case TGT_ARRAY: - type = type_array_get_element(type); - more_to_do = TRUE; - break; - case TGT_USER_TYPE: - case TGT_IFACE_POINTER: - case TGT_BASIC: - case TGT_ENUM: - case TGT_RANGE: - /* nothing to do */ - break; - } - } while (more_to_do); -} - -static void check_remoting_fields(const var_t *var, type_t *type) -{ - const var_t *field; - const var_list_t *fields = NULL; - - type = type_get_real_type(type); - - if (type->checked) - return; - - type->checked = TRUE; - - if (type_get_type(type) == TYPE_STRUCT) - { - if (type_is_complete(type)) - fields = type_struct_get_fields(type); - else - error_loc_info(&var->loc_info, "undefined type declaration %s\n", type->name); - } - else if (type_get_type(type) == TYPE_UNION || type_get_type(type) == TYPE_ENCAPSULATED_UNION) - fields = type_union_get_cases(type); - - if (fields) LIST_FOR_EACH_ENTRY( field, fields, const var_t, entry ) - if (field->type) check_field_common(type, type->name, field); -} - -/* checks that arguments for a function make sense for marshalling and unmarshalling */ -static void check_remoting_args(const var_t *func) -{ - const char *funcname = func->name; - const var_t *arg; - - if (func->type->details.function->args) LIST_FOR_EACH_ENTRY( arg, func->type->details.function->args, const var_t, entry ) - { - const type_t *type = arg->type; - - /* check that [out] parameters have enough pointer levels */ - if (is_attr(arg->attrs, ATTR_OUT)) - { - switch (typegen_detect_type(type, arg->attrs, TDT_ALL_TYPES)) - { - case TGT_BASIC: - case TGT_ENUM: - case TGT_RANGE: - case TGT_STRUCT: - case TGT_UNION: - case TGT_CTXT_HANDLE: - case TGT_USER_TYPE: - error_loc_info(&arg->loc_info, "out parameter \'%s\' of function \'%s\' is not a pointer\n", arg->name, funcname); - break; - case TGT_IFACE_POINTER: - error_loc_info(&arg->loc_info, "out interface pointer \'%s\' of function \'%s\' is not a double pointer\n", arg->name, funcname); - break; - case TGT_STRING: - if (is_array(type)) - { - /* needs conformance or fixed dimension */ - if (type_array_has_conformance(type) && - type_array_get_conformance(type)->type != EXPR_VOID) break; - if (!type_array_has_conformance(type) && type_array_get_dim(type)) break; - } - if (is_attr( arg->attrs, ATTR_IN )) break; - error_loc_info(&arg->loc_info, "out parameter \'%s\' of function \'%s\' cannot be an unsized string\n", arg->name, funcname); - break; - case TGT_INVALID: - /* already error'd before we get here */ - case TGT_CTXT_HANDLE_POINTER: - case TGT_POINTER: - case TGT_ARRAY: - /* OK */ - break; - } - } - - check_field_common(func->type, funcname, arg); - } - - if (type_get_type(type_function_get_rettype(func->type)) != TYPE_VOID) - { - var_t var; - var = *func; - var.type = type_function_get_rettype(func->type); - var.name = xstrdup("return value"); - check_field_common(func->type, funcname, &var); - free(var.name); - } -} - -static void add_explicit_handle_if_necessary(const type_t *iface, var_t *func) -{ - unsigned char explicit_fc, implicit_fc; - - /* check for a defined binding handle */ - if (!get_func_handle_var( iface, func, &explicit_fc, &implicit_fc ) || !explicit_fc) - { - /* no explicit handle specified so add - * "[in] handle_t IDL_handle" as the first parameter to the - * function */ - var_t *idl_handle = make_var(xstrdup("IDL_handle")); - idl_handle->attrs = append_attr(NULL, make_attr(ATTR_IN)); - idl_handle->type = find_type_or_error("handle_t", 0); - type_function_add_head_arg(func->type, idl_handle); - } -} - -static void check_functions(const type_t *iface, int is_inside_library) -{ - const statement_t *stmt; - if (is_attr(iface->attrs, ATTR_EXPLICIT_HANDLE)) - { - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - var_t *func = stmt->u.var; - add_explicit_handle_if_necessary(iface, func); - } - } - if (!is_inside_library && !is_attr(iface->attrs, ATTR_LOCAL)) - { - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - const var_t *func = stmt->u.var; - if (!is_attr(func->attrs, ATTR_LOCAL)) - check_remoting_args(func); - } - } -} - -static void check_statements(const statement_list_t *stmts, int is_inside_library) -{ - const statement_t *stmt; - - if (stmts) LIST_FOR_EACH_ENTRY(stmt, stmts, const statement_t, entry) - { - if (stmt->type == STMT_LIBRARY) - check_statements(stmt->u.lib->stmts, TRUE); - else if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE) - check_functions(stmt->u.type, is_inside_library); - } -} - -static void check_all_user_types(const statement_list_t *stmts) -{ - const statement_t *stmt; - - if (stmts) LIST_FOR_EACH_ENTRY(stmt, stmts, const statement_t, entry) - { - if (stmt->type == STMT_LIBRARY) - check_all_user_types(stmt->u.lib->stmts); - else if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE && - !is_local(stmt->u.type->attrs)) - { - const statement_t *stmt_func; - STATEMENTS_FOR_EACH_FUNC(stmt_func, type_iface_get_stmts(stmt->u.type)) { - const var_t *func = stmt_func->u.var; - check_for_additional_prototype_types(func->type->details.function->args); - } - } - } -} - -int is_valid_uuid(const char *s) -{ - int i; - - for (i = 0; i < 36; ++i) - if (i == 8 || i == 13 || i == 18 || i == 23) - { - if (s[i] != '-') - return FALSE; - } - else - if (!isxdigit(s[i])) - return FALSE; - - return s[i] == '\0'; -} - -static statement_t *make_statement(enum statement_type type) -{ - statement_t *stmt = xmalloc(sizeof(*stmt)); - stmt->type = type; - return stmt; -} - -static statement_t *make_statement_type_decl(type_t *type) -{ - statement_t *stmt = make_statement(STMT_TYPE); - stmt->u.type = type; - return stmt; -} - -static statement_t *make_statement_reference(type_t *type) -{ - statement_t *stmt = make_statement(STMT_TYPEREF); - stmt->u.type = type; - return stmt; -} - -static statement_t *make_statement_declaration(var_t *var) -{ - statement_t *stmt = make_statement(STMT_DECLARATION); - stmt->u.var = var; - if (var->stgclass == STG_EXTERN && var->eval) - warning("'%s' initialised and declared extern\n", var->name); - if (is_const_decl(var)) - { - if (var->eval) - reg_const(var); - } - else if (type_get_type(var->type) == TYPE_FUNCTION) - check_function_attrs(var->name, var->attrs); - else if (var->stgclass == STG_NONE || var->stgclass == STG_REGISTER) - error_loc("instantiation of data is illegal\n"); - return stmt; -} - -static statement_t *make_statement_library(typelib_t *typelib) -{ - statement_t *stmt = make_statement(STMT_LIBRARY); - stmt->u.lib = typelib; - return stmt; -} - -static statement_t *make_statement_cppquote(const char *str) -{ - statement_t *stmt = make_statement(STMT_CPPQUOTE); - stmt->u.str = str; - return stmt; -} - -static statement_t *make_statement_importlib(const char *str) -{ - statement_t *stmt = make_statement(STMT_IMPORTLIB); - stmt->u.str = str; - return stmt; -} - -static statement_t *make_statement_import(const char *str) -{ - statement_t *stmt = make_statement(STMT_IMPORT); - stmt->u.str = str; - return stmt; -} - -static statement_t *make_statement_module(type_t *type) -{ - statement_t *stmt = make_statement(STMT_MODULE); - stmt->u.type = type; - return stmt; -} - -static statement_t *make_statement_typedef(declarator_list_t *decls) -{ - declarator_t *decl, *next; - statement_t *stmt; - type_list_t **type_list; - - if (!decls) return NULL; - - stmt = make_statement(STMT_TYPEDEF); - stmt->u.type_list = NULL; - type_list = &stmt->u.type_list; - - LIST_FOR_EACH_ENTRY_SAFE( decl, next, decls, declarator_t, entry ) - { - var_t *var = decl->var; - type_t *type = find_type_or_error(var->name, 0); - *type_list = xmalloc(sizeof(type_list_t)); - (*type_list)->type = type; - (*type_list)->next = NULL; - - type_list = &(*type_list)->next; - free(decl); - free(var); - } - - return stmt; -} - -static statement_list_t *append_statement(statement_list_t *list, statement_t *stmt) -{ - if (!stmt) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_add_tail( list, &stmt->entry ); - return list; -} - -void init_loc_info(loc_info_t *i) -{ - i->input_name = input_name ? input_name : "stdin"; - i->line_number = line_number; - i->near_text = parser_text; -} - -static void check_def(const type_t *t) -{ - if (t->defined) - error_loc("%s: redefinition error; original definition was at %s:%d\n", - t->name, t->loc_info.input_name, t->loc_info.line_number); -} - diff --git a/reactos/tools/widl/parser.tab.h b/reactos/tools/widl/parser.tab.h deleted file mode 100644 index 8aca8fa6a6d..00000000000 --- a/reactos/tools/widl/parser.tab.h +++ /dev/null @@ -1,270 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.5. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - aIDENTIFIER = 258, - aKNOWNTYPE = 259, - aNUM = 260, - aHEXNUM = 261, - aDOUBLE = 262, - aSTRING = 263, - aWSTRING = 264, - aSQSTRING = 265, - aUUID = 266, - aEOF = 267, - SHL = 268, - SHR = 269, - MEMBERPTR = 270, - EQUALITY = 271, - INEQUALITY = 272, - GREATEREQUAL = 273, - LESSEQUAL = 274, - LOGICALOR = 275, - LOGICALAND = 276, - ELLIPSIS = 277, - tAGGREGATABLE = 278, - tALLOCATE = 279, - tANNOTATION = 280, - tAPPOBJECT = 281, - tASYNC = 282, - tASYNCUUID = 283, - tAUTOHANDLE = 284, - tBINDABLE = 285, - tBOOLEAN = 286, - tBROADCAST = 287, - tBYTE = 288, - tBYTECOUNT = 289, - tCALLAS = 290, - tCALLBACK = 291, - tCASE = 292, - tCDECL = 293, - tCHAR = 294, - tCOCLASS = 295, - tCODE = 296, - tCOMMSTATUS = 297, - tCONST = 298, - tCONTEXTHANDLE = 299, - tCONTEXTHANDLENOSERIALIZE = 300, - tCONTEXTHANDLESERIALIZE = 301, - tCONTROL = 302, - tCPPQUOTE = 303, - tDECODE = 304, - tDEFAULT = 305, - tDEFAULTBIND = 306, - tDEFAULTCOLLELEM = 307, - tDEFAULTVALUE = 308, - tDEFAULTVTABLE = 309, - tDISABLECONSISTENCYCHECK = 310, - tDISPLAYBIND = 311, - tDISPINTERFACE = 312, - tDLLNAME = 313, - tDOUBLE = 314, - tDUAL = 315, - tENABLEALLOCATE = 316, - tENCODE = 317, - tENDPOINT = 318, - tENTRY = 319, - tENUM = 320, - tERRORSTATUST = 321, - tEXPLICITHANDLE = 322, - tEXTERN = 323, - tFALSE = 324, - tFASTCALL = 325, - tFAULTSTATUS = 326, - tFLOAT = 327, - tFORCEALLOCATE = 328, - tHANDLE = 329, - tHANDLET = 330, - tHELPCONTEXT = 331, - tHELPFILE = 332, - tHELPSTRING = 333, - tHELPSTRINGCONTEXT = 334, - tHELPSTRINGDLL = 335, - tHIDDEN = 336, - tHYPER = 337, - tID = 338, - tIDEMPOTENT = 339, - tIGNORE = 340, - tIIDIS = 341, - tIMMEDIATEBIND = 342, - tIMPLICITHANDLE = 343, - tIMPORT = 344, - tIMPORTLIB = 345, - tIN = 346, - tIN_LINE = 347, - tINLINE = 348, - tINPUTSYNC = 349, - tINT = 350, - tINT3264 = 351, - tINT64 = 352, - tINTERFACE = 353, - tLCID = 354, - tLENGTHIS = 355, - tLIBRARY = 356, - tLICENSED = 357, - tLOCAL = 358, - tLONG = 359, - tMAYBE = 360, - tMESSAGE = 361, - tMETHODS = 362, - tMODULE = 363, - tNOCODE = 364, - tNONBROWSABLE = 365, - tNONCREATABLE = 366, - tNONEXTENSIBLE = 367, - tNOTIFY = 368, - tNOTIFYFLAG = 369, - tNULL = 370, - tOBJECT = 371, - tODL = 372, - tOLEAUTOMATION = 373, - tOPTIMIZE = 374, - tOPTIONAL = 375, - tOUT = 376, - tPARTIALIGNORE = 377, - tPASCAL = 378, - tPOINTERDEFAULT = 379, - tPROGID = 380, - tPROPERTIES = 381, - tPROPGET = 382, - tPROPPUT = 383, - tPROPPUTREF = 384, - tPROXY = 385, - tPTR = 386, - tPUBLIC = 387, - tRANGE = 388, - tREADONLY = 389, - tREF = 390, - tREGISTER = 391, - tREPRESENTAS = 392, - tREQUESTEDIT = 393, - tRESTRICTED = 394, - tRETVAL = 395, - tSAFEARRAY = 396, - tSHORT = 397, - tSIGNED = 398, - tSIZEIS = 399, - tSIZEOF = 400, - tSMALL = 401, - tSOURCE = 402, - tSTATIC = 403, - tSTDCALL = 404, - tSTRICTCONTEXTHANDLE = 405, - tSTRING = 406, - tSTRUCT = 407, - tSWITCH = 408, - tSWITCHIS = 409, - tSWITCHTYPE = 410, - tTHREADING = 411, - tTRANSMITAS = 412, - tTRUE = 413, - tTYPEDEF = 414, - tUIDEFAULT = 415, - tUNION = 416, - tUNIQUE = 417, - tUNSIGNED = 418, - tUSESGETLASTERROR = 419, - tUSERMARSHAL = 420, - tUUID = 421, - tV1ENUM = 422, - tVARARG = 423, - tVERSION = 424, - tVIPROGID = 425, - tVOID = 426, - tWCHAR = 427, - tWIREMARSHAL = 428, - tAPARTMENT = 429, - tNEUTRAL = 430, - tSINGLE = 431, - tFREE = 432, - tBOTH = 433, - ADDRESSOF = 434, - NEG = 435, - POS = 436, - PPTR = 437, - CAST = 438 - }; -#endif - - - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -{ - -/* Line 2068 of yacc.c */ -#line 153 "parser.y" - - attr_t *attr; - attr_list_t *attr_list; - str_list_t *str_list; - expr_t *expr; - expr_list_t *expr_list; - array_dims_t *array_dims; - type_t *type; - var_t *var; - var_list_t *var_list; - declarator_t *declarator; - declarator_list_t *declarator_list; - statement_t *statement; - statement_list_t *stmt_list; - ifref_t *ifref; - ifref_list_t *ifref_list; - char *str; - UUID *uuid; - unsigned int num; - double dbl; - interface_info_t ifinfo; - typelib_t *typelib; - struct _import_t *import; - struct _decl_spec_t *declspec; - enum storage_class stgclass; - - - -/* Line 2068 of yacc.c */ -#line 262 "parser.tab.h" -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - -extern YYSTYPE parser_lval; - - diff --git a/reactos/tools/widl/parser.y b/reactos/tools/widl/parser.y deleted file mode 100644 index 20a74c36e9e..00000000000 --- a/reactos/tools/widl/parser.y +++ /dev/null @@ -1,2832 +0,0 @@ -%{ -/* - * IDL Compiler - * - * Copyright 2002 Ove Kaaven - * Copyright 2006-2008 Robert Shearman - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "header.h" -#include "typelib.h" -#include "typegen.h" -#include "expr.h" -#include "typetree.h" - -#if defined(YYBYACC) - /* Berkeley yacc (byacc) doesn't seem to know about these */ - /* Some *BSD supplied versions do define these though */ -# ifndef YYEMPTY -# define YYEMPTY (-1) /* Empty lookahead value of yychar */ -# endif -# ifndef YYLEX -# define YYLEX yylex() -# endif - -#elif defined(YYBISON) - /* Bison was used for original development */ - /* #define YYEMPTY -2 */ - /* #define YYLEX yylex() */ - -#else - /* No yacc we know yet */ -# if !defined(YYEMPTY) || !defined(YYLEX) -# error Yacc version/type unknown. This version needs to be verified for settings of YYEMPTY and YYLEX. -# elif defined(__GNUC__) /* gcc defines the #warning directive */ -# warning Yacc version/type unknown. It defines YYEMPTY and YYLEX, but is not tested - /* #else we just take a chance that it works... */ -# endif -#endif - -#define YYERROR_VERBOSE - -static unsigned char pointer_default = RPC_FC_UP; - -typedef struct list typelist_t; -struct typenode { - type_t *type; - struct list entry; -}; - -struct _import_t -{ - char *name; - int import_performed; -}; - -typedef struct _decl_spec_t -{ - type_t *type; - attr_list_t *attrs; - enum storage_class stgclass; -} decl_spec_t; - -typelist_t incomplete_types = LIST_INIT(incomplete_types); - -static void fix_incomplete(void); -static void fix_incomplete_types(type_t *complete_type); - -static str_list_t *append_str(str_list_t *list, char *str); -static attr_list_t *append_attr(attr_list_t *list, attr_t *attr); -static attr_list_t *append_attr_list(attr_list_t *new_list, attr_list_t *old_list); -static decl_spec_t *make_decl_spec(type_t *type, decl_spec_t *left, decl_spec_t *right, attr_t *attr, enum storage_class stgclass); -static attr_t *make_attr(enum attr_type type); -static attr_t *make_attrv(enum attr_type type, unsigned int val); -static attr_t *make_attrp(enum attr_type type, void *val); -static expr_list_t *append_expr(expr_list_t *list, expr_t *expr); -static array_dims_t *append_array(array_dims_t *list, expr_t *expr); -static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, const declarator_t *decl, int top); -static var_list_t *set_var_types(attr_list_t *attrs, decl_spec_t *decl_spec, declarator_list_t *decls); -static ifref_list_t *append_ifref(ifref_list_t *list, ifref_t *iface); -static ifref_t *make_ifref(type_t *iface); -static var_list_t *append_var_list(var_list_t *list, var_list_t *vars); -static declarator_list_t *append_declarator(declarator_list_t *list, declarator_t *p); -static declarator_t *make_declarator(var_t *var); -static type_t *make_safearray(type_t *type); -static typelib_t *make_library(const char *name, const attr_list_t *attrs); -static type_t *append_ptrchain_type(type_t *ptrchain, type_t *type); - -static type_t *reg_typedefs(decl_spec_t *decl_spec, var_list_t *names, attr_list_t *attrs); -static type_t *find_type_or_error(const char *name, int t); -static type_t *find_type_or_error2(char *name, int t); - -static var_t *reg_const(var_t *var); - -static char *gen_name(void); -static void check_arg_attrs(const var_t *arg); -static void check_statements(const statement_list_t *stmts, int is_inside_library); -static void check_all_user_types(const statement_list_t *stmts); -static attr_list_t *check_iface_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_function_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_typedef_attrs(attr_list_t *attrs); -static attr_list_t *check_enum_attrs(attr_list_t *attrs); -static attr_list_t *check_struct_attrs(attr_list_t *attrs); -static attr_list_t *check_union_attrs(attr_list_t *attrs); -static attr_list_t *check_field_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_library_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_dispiface_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_module_attrs(const char *name, attr_list_t *attrs); -static attr_list_t *check_coclass_attrs(const char *name, attr_list_t *attrs); -const char *get_attr_display_name(enum attr_type type); -static void add_explicit_handle_if_necessary(const type_t *iface, var_t *func); -static void check_def(const type_t *t); - -static statement_t *make_statement(enum statement_type type); -static statement_t *make_statement_type_decl(type_t *type); -static statement_t *make_statement_reference(type_t *type); -static statement_t *make_statement_declaration(var_t *var); -static statement_t *make_statement_library(typelib_t *typelib); -static statement_t *make_statement_cppquote(const char *str); -static statement_t *make_statement_importlib(const char *str); -static statement_t *make_statement_module(type_t *type); -static statement_t *make_statement_typedef(var_list_t *names); -static statement_t *make_statement_import(const char *str); -static statement_t *make_statement_typedef(var_list_t *names); -static statement_list_t *append_statement(statement_list_t *list, statement_t *stmt); - -%} -%union { - attr_t *attr; - attr_list_t *attr_list; - str_list_t *str_list; - expr_t *expr; - expr_list_t *expr_list; - array_dims_t *array_dims; - type_t *type; - var_t *var; - var_list_t *var_list; - declarator_t *declarator; - declarator_list_t *declarator_list; - statement_t *statement; - statement_list_t *stmt_list; - ifref_t *ifref; - ifref_list_t *ifref_list; - char *str; - UUID *uuid; - unsigned int num; - double dbl; - interface_info_t ifinfo; - typelib_t *typelib; - struct _import_t *import; - struct _decl_spec_t *declspec; - enum storage_class stgclass; -} - -%token aIDENTIFIER -%token aKNOWNTYPE -%token aNUM aHEXNUM -%token aDOUBLE -%token aSTRING aWSTRING aSQSTRING -%token aUUID -%token aEOF -%token SHL SHR -%token MEMBERPTR -%token EQUALITY INEQUALITY -%token GREATEREQUAL LESSEQUAL -%token LOGICALOR LOGICALAND -%token ELLIPSIS -%token tAGGREGATABLE tALLOCATE tANNOTATION tAPPOBJECT tASYNC tASYNCUUID -%token tAUTOHANDLE tBINDABLE tBOOLEAN tBROADCAST tBYTE tBYTECOUNT -%token tCALLAS tCALLBACK tCASE tCDECL tCHAR tCOCLASS tCODE tCOMMSTATUS -%token tCONST tCONTEXTHANDLE tCONTEXTHANDLENOSERIALIZE -%token tCONTEXTHANDLESERIALIZE tCONTROL tCPPQUOTE -%token tDECODE tDEFAULT tDEFAULTBIND -%token tDEFAULTCOLLELEM -%token tDEFAULTVALUE -%token tDEFAULTVTABLE -%token tDISABLECONSISTENCYCHECK tDISPLAYBIND -%token tDISPINTERFACE -%token tDLLNAME tDOUBLE tDUAL -%token tENABLEALLOCATE tENCODE tENDPOINT -%token tENTRY tENUM tERRORSTATUST -%token tEXPLICITHANDLE tEXTERN -%token tFALSE -%token tFASTCALL tFAULTSTATUS -%token tFLOAT tFORCEALLOCATE -%token tHANDLE -%token tHANDLET -%token tHELPCONTEXT tHELPFILE -%token tHELPSTRING tHELPSTRINGCONTEXT tHELPSTRINGDLL -%token tHIDDEN -%token tHYPER tID tIDEMPOTENT -%token tIGNORE tIIDIS -%token tIMMEDIATEBIND -%token tIMPLICITHANDLE -%token tIMPORT tIMPORTLIB -%token tIN tIN_LINE tINLINE -%token tINPUTSYNC -%token tINT tINT3264 tINT64 -%token tINTERFACE -%token tLCID -%token tLENGTHIS tLIBRARY -%token tLICENSED tLOCAL -%token tLONG -%token tMAYBE tMESSAGE -%token tMETHODS -%token tMODULE -%token tNOCODE tNONBROWSABLE -%token tNONCREATABLE -%token tNONEXTENSIBLE -%token tNOTIFY tNOTIFYFLAG -%token tNULL -%token tOBJECT tODL tOLEAUTOMATION -%token tOPTIMIZE tOPTIONAL -%token tOUT -%token tPARTIALIGNORE tPASCAL -%token tPOINTERDEFAULT -%token tPROGID tPROPERTIES -%token tPROPGET tPROPPUT tPROPPUTREF -%token tPROXY tPTR -%token tPUBLIC -%token tRANGE -%token tREADONLY tREF -%token tREGISTER tREPRESENTAS -%token tREQUESTEDIT -%token tRESTRICTED -%token tRETVAL -%token tSAFEARRAY -%token tSHORT -%token tSIGNED -%token tSIZEIS tSIZEOF -%token tSMALL -%token tSOURCE -%token tSTATIC -%token tSTDCALL -%token tSTRICTCONTEXTHANDLE -%token tSTRING tSTRUCT -%token tSWITCH tSWITCHIS tSWITCHTYPE -%token tTHREADING tTRANSMITAS -%token tTRUE -%token tTYPEDEF -%token tUIDEFAULT tUNION -%token tUNIQUE -%token tUNSIGNED -%token tUSESGETLASTERROR tUSERMARSHAL tUUID -%token tV1ENUM -%token tVARARG -%token tVERSION tVIPROGID -%token tVOID -%token tWCHAR tWIREMARSHAL -%token tAPARTMENT tNEUTRAL tSINGLE tFREE tBOTH - -%type attribute type_qualifier function_specifier -%type m_attributes attributes attrib_list m_type_qual_list -%type str_list -%type m_expr expr expr_const expr_int_const array m_bitfield -%type m_exprs /* exprs expr_list */ expr_list_int_const -%type interfacehdr -%type storage_cls_spec -%type decl_spec decl_spec_no_type m_decl_spec_no_type -%type inherit interface interfacedef interfacedec -%type dispinterface dispinterfacehdr dispinterfacedef -%type module modulehdr moduledef -%type base_type int_std -%type enumdef structdef uniondef typedecl -%type type -%type coclass_int -%type coclass_ints -%type arg ne_union_field union_field s_field case enum declaration -%type funcdef -%type m_args arg_list args dispint_meths -%type fields ne_union_fields cases enums enum_list dispint_props field -%type m_ident ident -%type declarator direct_declarator init_declarator struct_declarator -%type m_any_declarator any_declarator any_declarator_no_direct any_direct_declarator -%type m_abstract_declarator abstract_declarator abstract_declarator_no_direct abstract_direct_declarator -%type declarator_list struct_declarator_list -%type coclass coclasshdr coclassdef -%type pointer_type threading_type version -%type libraryhdr callconv cppquote importlib import t_ident -%type uuid_string -%type import_start -%type library_start librarydef -%type statement typedef -%type gbl_statements imp_statements int_statements - -%left ',' -%right '?' ':' -%left LOGICALOR -%left LOGICALAND -%left '|' -%left '^' -%left '&' -%left EQUALITY INEQUALITY -%left '<' '>' LESSEQUAL GREATEREQUAL -%left SHL SHR -%left '-' '+' -%left '*' '/' '%' -%right '!' '~' CAST PPTR POS NEG ADDRESSOF tSIZEOF -%left '.' MEMBERPTR '[' ']' - -%% - -input: gbl_statements { fix_incomplete(); - check_statements($1, FALSE); - check_all_user_types($1); - write_header($1); - write_id_data($1); - write_proxies($1); - write_client($1); - write_server($1); - write_regscript($1); - write_dlldata($1); - write_local_stubs($1); - } - ; - -gbl_statements: { $$ = NULL; } - | gbl_statements interfacedec { $$ = append_statement($1, make_statement_reference($2)); } - | gbl_statements interfacedef { $$ = append_statement($1, make_statement_type_decl($2)); } - | gbl_statements coclass ';' { $$ = $1; - reg_type($2, $2->name, 0); - } - | gbl_statements coclassdef { $$ = append_statement($1, make_statement_type_decl($2)); - reg_type($2, $2->name, 0); - } - | gbl_statements moduledef { $$ = append_statement($1, make_statement_module($2)); } - | gbl_statements librarydef { $$ = append_statement($1, make_statement_library($2)); } - | gbl_statements statement { $$ = append_statement($1, $2); } - ; - -imp_statements: { $$ = NULL; } - | imp_statements interfacedec { $$ = append_statement($1, make_statement_reference($2)); } - | imp_statements interfacedef { $$ = append_statement($1, make_statement_type_decl($2)); } - | imp_statements coclass ';' { $$ = $1; reg_type($2, $2->name, 0); } - | imp_statements coclassdef { $$ = append_statement($1, make_statement_type_decl($2)); - reg_type($2, $2->name, 0); - } - | imp_statements moduledef { $$ = append_statement($1, make_statement_module($2)); } - | imp_statements statement { $$ = append_statement($1, $2); } - | imp_statements importlib { $$ = append_statement($1, make_statement_importlib($2)); } - | imp_statements librarydef { $$ = append_statement($1, make_statement_library($2)); } - ; - -int_statements: { $$ = NULL; } - | int_statements statement { $$ = append_statement($1, $2); } - ; - -semicolon_opt: - | ';' - ; - -statement: - cppquote { $$ = make_statement_cppquote($1); } - | typedecl ';' { $$ = make_statement_type_decl($1); } - | declaration ';' { $$ = make_statement_declaration($1); } - | import { $$ = make_statement_import($1); } - | typedef ';' { $$ = $1; } - ; - -typedecl: - enumdef - | tENUM aIDENTIFIER { $$ = type_new_enum($2, FALSE, NULL); } - | structdef - | tSTRUCT aIDENTIFIER { $$ = type_new_struct($2, FALSE, NULL); } - | uniondef - | tUNION aIDENTIFIER { $$ = type_new_nonencapsulated_union($2, FALSE, NULL); } - | attributes enumdef { $$ = $2; $$->attrs = check_enum_attrs($1); } - | attributes structdef { $$ = $2; $$->attrs = check_struct_attrs($1); } - | attributes uniondef { $$ = $2; $$->attrs = check_union_attrs($1); } - ; - -cppquote: tCPPQUOTE '(' aSTRING ')' { $$ = $3; } - ; -import_start: tIMPORT aSTRING ';' { assert(yychar == YYEMPTY); - $$ = xmalloc(sizeof(struct _import_t)); - $$->name = $2; - $$->import_performed = do_import($2); - if (!$$->import_performed) yychar = aEOF; - } - ; - -import: import_start imp_statements aEOF { $$ = $1->name; - if ($1->import_performed) pop_import(); - free($1); - } - ; - -importlib: tIMPORTLIB '(' aSTRING ')' - semicolon_opt { $$ = $3; if(!parse_only) add_importlib($3); } - ; - -libraryhdr: tLIBRARY aIDENTIFIER { $$ = $2; } - ; -library_start: attributes libraryhdr '{' { $$ = make_library($2, check_library_attrs($2, $1)); - if (!parse_only) start_typelib($$); - } - ; -librarydef: library_start imp_statements '}' - semicolon_opt { $$ = $1; - $$->stmts = $2; - if (!parse_only) end_typelib(); - } - ; - -m_args: { $$ = NULL; } - | args - ; - -arg_list: arg { check_arg_attrs($1); $$ = append_var( NULL, $1 ); } - | arg_list ',' arg { check_arg_attrs($3); $$ = append_var( $1, $3 ); } - ; - -args: arg_list - | arg_list ',' ELLIPSIS { $$ = append_var( $1, make_var(strdup("...")) ); } - ; - -/* split into two rules to get bison to resolve a tVOID conflict */ -arg: attributes decl_spec m_any_declarator { if ($2->stgclass != STG_NONE && $2->stgclass != STG_REGISTER) - error_loc("invalid storage class for function parameter\n"); - $$ = declare_var($1, $2, $3, TRUE); - free($2); free($3); - } - | decl_spec m_any_declarator { if ($1->stgclass != STG_NONE && $1->stgclass != STG_REGISTER) - error_loc("invalid storage class for function parameter\n"); - $$ = declare_var(NULL, $1, $2, TRUE); - free($1); free($2); - } - ; - -array: '[' expr ']' { $$ = $2; - if (!$$->is_const) - error_loc("array dimension is not an integer constant\n"); - } - | '[' '*' ']' { $$ = make_expr(EXPR_VOID); } - | '[' ']' { $$ = make_expr(EXPR_VOID); } - ; - -m_attributes: { $$ = NULL; } - | attributes - ; - -attributes: - '[' attrib_list ']' { $$ = $2; } - ; - -attrib_list: attribute { $$ = append_attr( NULL, $1 ); } - | attrib_list ',' attribute { $$ = append_attr( $1, $3 ); } - | attrib_list ']' '[' attribute { $$ = append_attr( $1, $4 ); } - ; - -str_list: aSTRING { $$ = append_str( NULL, $1 ); } - | str_list ',' aSTRING { $$ = append_str( $1, $3 ); } - ; - -attribute: { $$ = NULL; } - | tAGGREGATABLE { $$ = make_attr(ATTR_AGGREGATABLE); } - | tANNOTATION '(' aSTRING ')' { $$ = make_attrp(ATTR_ANNOTATION, $3); } - | tAPPOBJECT { $$ = make_attr(ATTR_APPOBJECT); } - | tASYNC { $$ = make_attr(ATTR_ASYNC); } - | tAUTOHANDLE { $$ = make_attr(ATTR_AUTO_HANDLE); } - | tBINDABLE { $$ = make_attr(ATTR_BINDABLE); } - | tBROADCAST { $$ = make_attr(ATTR_BROADCAST); } - | tCALLAS '(' ident ')' { $$ = make_attrp(ATTR_CALLAS, $3); } - | tCASE '(' expr_list_int_const ')' { $$ = make_attrp(ATTR_CASE, $3); } - | tCODE { $$ = make_attr(ATTR_CODE); } - | tCOMMSTATUS { $$ = make_attr(ATTR_COMMSTATUS); } - | tCONTEXTHANDLE { $$ = make_attrv(ATTR_CONTEXTHANDLE, 0); } - | tCONTEXTHANDLENOSERIALIZE { $$ = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ } - | tCONTEXTHANDLESERIALIZE { $$ = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ } - | tCONTROL { $$ = make_attr(ATTR_CONTROL); } - | tDECODE { $$ = make_attr(ATTR_DECODE); } - | tDEFAULT { $$ = make_attr(ATTR_DEFAULT); } - | tDEFAULTBIND { $$ = make_attr(ATTR_DEFAULTBIND); } - | tDEFAULTCOLLELEM { $$ = make_attr(ATTR_DEFAULTCOLLELEM); } - | tDEFAULTVALUE '(' expr_const ')' { $$ = make_attrp(ATTR_DEFAULTVALUE, $3); } - | tDEFAULTVTABLE { $$ = make_attr(ATTR_DEFAULTVTABLE); } - | tDISABLECONSISTENCYCHECK { $$ = make_attr(ATTR_DISABLECONSISTENCYCHECK); } - | tDISPLAYBIND { $$ = make_attr(ATTR_DISPLAYBIND); } - | tDLLNAME '(' aSTRING ')' { $$ = make_attrp(ATTR_DLLNAME, $3); } - | tDUAL { $$ = make_attr(ATTR_DUAL); } - | tENABLEALLOCATE { $$ = make_attr(ATTR_ENABLEALLOCATE); } - | tENCODE { $$ = make_attr(ATTR_ENCODE); } - | tENDPOINT '(' str_list ')' { $$ = make_attrp(ATTR_ENDPOINT, $3); } - | tENTRY '(' expr_const ')' { $$ = make_attrp(ATTR_ENTRY, $3); } - | tEXPLICITHANDLE { $$ = make_attr(ATTR_EXPLICIT_HANDLE); } - | tFAULTSTATUS { $$ = make_attr(ATTR_FAULTSTATUS); } - | tFORCEALLOCATE { $$ = make_attr(ATTR_FORCEALLOCATE); } - | tHANDLE { $$ = make_attr(ATTR_HANDLE); } - | tHELPCONTEXT '(' expr_int_const ')' { $$ = make_attrp(ATTR_HELPCONTEXT, $3); } - | tHELPFILE '(' aSTRING ')' { $$ = make_attrp(ATTR_HELPFILE, $3); } - | tHELPSTRING '(' aSTRING ')' { $$ = make_attrp(ATTR_HELPSTRING, $3); } - | tHELPSTRINGCONTEXT '(' expr_int_const ')' { $$ = make_attrp(ATTR_HELPSTRINGCONTEXT, $3); } - | tHELPSTRINGDLL '(' aSTRING ')' { $$ = make_attrp(ATTR_HELPSTRINGDLL, $3); } - | tHIDDEN { $$ = make_attr(ATTR_HIDDEN); } - | tID '(' expr_int_const ')' { $$ = make_attrp(ATTR_ID, $3); } - | tIDEMPOTENT { $$ = make_attr(ATTR_IDEMPOTENT); } - | tIGNORE { $$ = make_attr(ATTR_IGNORE); } - | tIIDIS '(' expr ')' { $$ = make_attrp(ATTR_IIDIS, $3); } - | tIMMEDIATEBIND { $$ = make_attr(ATTR_IMMEDIATEBIND); } - | tIMPLICITHANDLE '(' arg ')' { $$ = make_attrp(ATTR_IMPLICIT_HANDLE, $3); } - | tIN { $$ = make_attr(ATTR_IN); } - | tINPUTSYNC { $$ = make_attr(ATTR_INPUTSYNC); } - | tLENGTHIS '(' m_exprs ')' { $$ = make_attrp(ATTR_LENGTHIS, $3); } - | tLCID '(' expr_int_const ')' { $$ = make_attrp(ATTR_LIBLCID, $3); } - | tLCID { $$ = make_attr(ATTR_PARAMLCID); } - | tLICENSED { $$ = make_attr(ATTR_LICENSED); } - | tLOCAL { $$ = make_attr(ATTR_LOCAL); } - | tMAYBE { $$ = make_attr(ATTR_MAYBE); } - | tMESSAGE { $$ = make_attr(ATTR_MESSAGE); } - | tNOCODE { $$ = make_attr(ATTR_NOCODE); } - | tNONBROWSABLE { $$ = make_attr(ATTR_NONBROWSABLE); } - | tNONCREATABLE { $$ = make_attr(ATTR_NONCREATABLE); } - | tNONEXTENSIBLE { $$ = make_attr(ATTR_NONEXTENSIBLE); } - | tNOTIFY { $$ = make_attr(ATTR_NOTIFY); } - | tNOTIFYFLAG { $$ = make_attr(ATTR_NOTIFYFLAG); } - | tOBJECT { $$ = make_attr(ATTR_OBJECT); } - | tODL { $$ = make_attr(ATTR_ODL); } - | tOLEAUTOMATION { $$ = make_attr(ATTR_OLEAUTOMATION); } - | tOPTIMIZE '(' aSTRING ')' { $$ = make_attrp(ATTR_OPTIMIZE, $3); } - | tOPTIONAL { $$ = make_attr(ATTR_OPTIONAL); } - | tOUT { $$ = make_attr(ATTR_OUT); } - | tPARTIALIGNORE { $$ = make_attr(ATTR_PARTIALIGNORE); } - | tPOINTERDEFAULT '(' pointer_type ')' { $$ = make_attrv(ATTR_POINTERDEFAULT, $3); } - | tPROGID '(' aSTRING ')' { $$ = make_attrp(ATTR_PROGID, $3); } - | tPROPGET { $$ = make_attr(ATTR_PROPGET); } - | tPROPPUT { $$ = make_attr(ATTR_PROPPUT); } - | tPROPPUTREF { $$ = make_attr(ATTR_PROPPUTREF); } - | tPROXY { $$ = make_attr(ATTR_PROXY); } - | tPUBLIC { $$ = make_attr(ATTR_PUBLIC); } - | tRANGE '(' expr_int_const ',' expr_int_const ')' - { expr_list_t *list = append_expr( NULL, $3 ); - list = append_expr( list, $5 ); - $$ = make_attrp(ATTR_RANGE, list); } - | tREADONLY { $$ = make_attr(ATTR_READONLY); } - | tREPRESENTAS '(' type ')' { $$ = make_attrp(ATTR_REPRESENTAS, $3); } - | tREQUESTEDIT { $$ = make_attr(ATTR_REQUESTEDIT); } - | tRESTRICTED { $$ = make_attr(ATTR_RESTRICTED); } - | tRETVAL { $$ = make_attr(ATTR_RETVAL); } - | tSIZEIS '(' m_exprs ')' { $$ = make_attrp(ATTR_SIZEIS, $3); } - | tSOURCE { $$ = make_attr(ATTR_SOURCE); } - | tSTRICTCONTEXTHANDLE { $$ = make_attr(ATTR_STRICTCONTEXTHANDLE); } - | tSTRING { $$ = make_attr(ATTR_STRING); } - | tSWITCHIS '(' expr ')' { $$ = make_attrp(ATTR_SWITCHIS, $3); } - | tSWITCHTYPE '(' type ')' { $$ = make_attrp(ATTR_SWITCHTYPE, $3); } - | tTRANSMITAS '(' type ')' { $$ = make_attrp(ATTR_TRANSMITAS, $3); } - | tTHREADING '(' threading_type ')' { $$ = make_attrv(ATTR_THREADING, $3); } - | tUIDEFAULT { $$ = make_attr(ATTR_UIDEFAULT); } - | tUSESGETLASTERROR { $$ = make_attr(ATTR_USESGETLASTERROR); } - | tUSERMARSHAL '(' type ')' { $$ = make_attrp(ATTR_USERMARSHAL, $3); } - | tUUID '(' uuid_string ')' { $$ = make_attrp(ATTR_UUID, $3); } - | tV1ENUM { $$ = make_attr(ATTR_V1ENUM); } - | tVARARG { $$ = make_attr(ATTR_VARARG); } - | tVERSION '(' version ')' { $$ = make_attrv(ATTR_VERSION, $3); } - | tVIPROGID '(' aSTRING ')' { $$ = make_attrp(ATTR_VIPROGID, $3); } - | tWIREMARSHAL '(' type ')' { $$ = make_attrp(ATTR_WIREMARSHAL, $3); } - | pointer_type { $$ = make_attrv(ATTR_POINTERTYPE, $1); } - ; - -uuid_string: - aUUID - | aSTRING { if (!is_valid_uuid($1)) - error_loc("invalid UUID: %s\n", $1); - $$ = parse_uuid($1); } - ; - -callconv: tCDECL { $$ = xstrdup("__cdecl"); } - | tFASTCALL { $$ = xstrdup("__fastcall"); } - | tPASCAL { $$ = xstrdup("__pascal"); } - | tSTDCALL { $$ = xstrdup("__stdcall"); } - ; - -cases: { $$ = NULL; } - | cases case { $$ = append_var( $1, $2 ); } - ; - -case: tCASE expr_int_const ':' union_field { attr_t *a = make_attrp(ATTR_CASE, append_expr( NULL, $2 )); - $$ = $4; if (!$$) $$ = make_var(NULL); - $$->attrs = append_attr( $$->attrs, a ); - } - | tDEFAULT ':' union_field { attr_t *a = make_attr(ATTR_DEFAULT); - $$ = $3; if (!$$) $$ = make_var(NULL); - $$->attrs = append_attr( $$->attrs, a ); - } - ; - -enums: { $$ = NULL; } - | enum_list ',' { $$ = $1; } - | enum_list - ; - -enum_list: enum { if (!$1->eval) - $1->eval = make_exprl(EXPR_NUM, 0 /* default for first enum entry */); - $$ = append_var( NULL, $1 ); - } - | enum_list ',' enum { if (!$3->eval) - { - var_t *last = LIST_ENTRY( list_tail($$), var_t, entry ); - $3->eval = make_exprl(EXPR_NUM, last->eval->cval + 1); - } - $$ = append_var( $1, $3 ); - } - ; - -enum: ident '=' expr_int_const { $$ = reg_const($1); - $$->eval = $3; - $$->type = type_new_int(TYPE_BASIC_INT, 0); - } - | ident { $$ = reg_const($1); - $$->type = type_new_int(TYPE_BASIC_INT, 0); - } - ; - -enumdef: tENUM t_ident '{' enums '}' { $$ = type_new_enum($2, TRUE, $4); } - ; - -m_exprs: m_expr { $$ = append_expr( NULL, $1 ); } - | m_exprs ',' m_expr { $$ = append_expr( $1, $3 ); } - ; - -m_expr: { $$ = make_expr(EXPR_VOID); } - | expr - ; - -expr: aNUM { $$ = make_exprl(EXPR_NUM, $1); } - | aHEXNUM { $$ = make_exprl(EXPR_HEXNUM, $1); } - | aDOUBLE { $$ = make_exprd(EXPR_DOUBLE, $1); } - | tFALSE { $$ = make_exprl(EXPR_TRUEFALSE, 0); } - | tNULL { $$ = make_exprl(EXPR_NUM, 0); } - | tTRUE { $$ = make_exprl(EXPR_TRUEFALSE, 1); } - | aSTRING { $$ = make_exprs(EXPR_STRLIT, $1); } - | aWSTRING { $$ = make_exprs(EXPR_WSTRLIT, $1); } - | aSQSTRING { $$ = make_exprs(EXPR_CHARCONST, $1); } - | aIDENTIFIER { $$ = make_exprs(EXPR_IDENTIFIER, $1); } - | expr '?' expr ':' expr { $$ = make_expr3(EXPR_COND, $1, $3, $5); } - | expr LOGICALOR expr { $$ = make_expr2(EXPR_LOGOR, $1, $3); } - | expr LOGICALAND expr { $$ = make_expr2(EXPR_LOGAND, $1, $3); } - | expr '|' expr { $$ = make_expr2(EXPR_OR , $1, $3); } - | expr '^' expr { $$ = make_expr2(EXPR_XOR, $1, $3); } - | expr '&' expr { $$ = make_expr2(EXPR_AND, $1, $3); } - | expr EQUALITY expr { $$ = make_expr2(EXPR_EQUALITY, $1, $3); } - | expr INEQUALITY expr { $$ = make_expr2(EXPR_INEQUALITY, $1, $3); } - | expr '>' expr { $$ = make_expr2(EXPR_GTR, $1, $3); } - | expr '<' expr { $$ = make_expr2(EXPR_LESS, $1, $3); } - | expr GREATEREQUAL expr { $$ = make_expr2(EXPR_GTREQL, $1, $3); } - | expr LESSEQUAL expr { $$ = make_expr2(EXPR_LESSEQL, $1, $3); } - | expr SHL expr { $$ = make_expr2(EXPR_SHL, $1, $3); } - | expr SHR expr { $$ = make_expr2(EXPR_SHR, $1, $3); } - | expr '+' expr { $$ = make_expr2(EXPR_ADD, $1, $3); } - | expr '-' expr { $$ = make_expr2(EXPR_SUB, $1, $3); } - | expr '%' expr { $$ = make_expr2(EXPR_MOD, $1, $3); } - | expr '*' expr { $$ = make_expr2(EXPR_MUL, $1, $3); } - | expr '/' expr { $$ = make_expr2(EXPR_DIV, $1, $3); } - | '!' expr { $$ = make_expr1(EXPR_LOGNOT, $2); } - | '~' expr { $$ = make_expr1(EXPR_NOT, $2); } - | '+' expr %prec POS { $$ = make_expr1(EXPR_POS, $2); } - | '-' expr %prec NEG { $$ = make_expr1(EXPR_NEG, $2); } - | '&' expr %prec ADDRESSOF { $$ = make_expr1(EXPR_ADDRESSOF, $2); } - | '*' expr %prec PPTR { $$ = make_expr1(EXPR_PPTR, $2); } - | expr MEMBERPTR aIDENTIFIER { $$ = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, $1), make_exprs(EXPR_IDENTIFIER, $3)); } - | expr '.' aIDENTIFIER { $$ = make_expr2(EXPR_MEMBER, $1, make_exprs(EXPR_IDENTIFIER, $3)); } - | '(' decl_spec m_abstract_declarator ')' expr %prec CAST - { $$ = make_exprt(EXPR_CAST, declare_var(NULL, $2, $3, 0), $5); free($2); free($3); } - | tSIZEOF '(' decl_spec m_abstract_declarator ')' - { $$ = make_exprt(EXPR_SIZEOF, declare_var(NULL, $3, $4, 0), NULL); free($3); free($4); } - | expr '[' expr ']' { $$ = make_expr2(EXPR_ARRAY, $1, $3); } - | '(' expr ')' { $$ = $2; } - ; - -expr_list_int_const: expr_int_const { $$ = append_expr( NULL, $1 ); } - | expr_list_int_const ',' expr_int_const { $$ = append_expr( $1, $3 ); } - ; - -expr_int_const: expr { $$ = $1; - if (!$$->is_const) - error_loc("expression is not an integer constant\n"); - } - ; - -expr_const: expr { $$ = $1; - if (!$$->is_const && $$->type != EXPR_STRLIT && $$->type != EXPR_WSTRLIT) - error_loc("expression is not constant\n"); - } - ; - -fields: { $$ = NULL; } - | fields field { $$ = append_var_list($1, $2); } - ; - -field: m_attributes decl_spec struct_declarator_list ';' - { const char *first = LIST_ENTRY(list_head($3), declarator_t, entry)->var->name; - check_field_attrs(first, $1); - $$ = set_var_types($1, $2, $3); - } - | m_attributes uniondef ';' { var_t *v = make_var(NULL); - v->type = $2; v->attrs = $1; - $$ = append_var(NULL, v); - } - ; - -ne_union_field: - s_field ';' { $$ = $1; } - | attributes ';' { $$ = make_var(NULL); $$->attrs = $1; } - ; - -ne_union_fields: { $$ = NULL; } - | ne_union_fields ne_union_field { $$ = append_var( $1, $2 ); } - ; - -union_field: - s_field ';' { $$ = $1; } - | ';' { $$ = NULL; } - ; - -s_field: m_attributes decl_spec declarator { $$ = declare_var(check_field_attrs($3->var->name, $1), - $2, $3, FALSE); - free($3); - } - | m_attributes structdef { var_t *v = make_var(NULL); - v->type = $2; v->attrs = $1; - $$ = v; - } - ; - -funcdef: declaration { $$ = $1; - if (type_get_type($$->type) != TYPE_FUNCTION) - error_loc("only methods may be declared inside the methods section of a dispinterface\n"); - check_function_attrs($$->name, $$->attrs); - } - ; - -declaration: - attributes decl_spec init_declarator - { $$ = declare_var($1, $2, $3, FALSE); - free($3); - } - | decl_spec init_declarator { $$ = declare_var(NULL, $1, $2, FALSE); - free($2); - } - ; - -m_ident: { $$ = NULL; } - | ident - ; - -t_ident: { $$ = NULL; } - | aIDENTIFIER { $$ = $1; } - | aKNOWNTYPE { $$ = $1; } - ; - -ident: aIDENTIFIER { $$ = make_var($1); } -/* some "reserved words" used in attributes are also used as field names in some MS IDL files */ - | aKNOWNTYPE { $$ = make_var($1); } - ; - -base_type: tBYTE { $$ = find_type_or_error($1, 0); } - | tWCHAR { $$ = find_type_or_error($1, 0); } - | int_std - | tSIGNED int_std { $$ = type_new_int(type_basic_get_type($2), -1); } - | tUNSIGNED int_std { $$ = type_new_int(type_basic_get_type($2), 1); } - | tUNSIGNED { $$ = type_new_int(TYPE_BASIC_INT, 1); } - | tFLOAT { $$ = find_type_or_error($1, 0); } - | tDOUBLE { $$ = find_type_or_error($1, 0); } - | tBOOLEAN { $$ = find_type_or_error($1, 0); } - | tERRORSTATUST { $$ = find_type_or_error($1, 0); } - | tHANDLET { $$ = find_type_or_error($1, 0); } - ; - -m_int: - | tINT - ; - -int_std: tINT { $$ = type_new_int(TYPE_BASIC_INT, 0); } - | tSHORT m_int { $$ = type_new_int(TYPE_BASIC_INT16, 0); } - | tSMALL { $$ = type_new_int(TYPE_BASIC_INT8, 0); } - | tLONG m_int { $$ = type_new_int(TYPE_BASIC_INT32, 0); } - | tHYPER m_int { $$ = type_new_int(TYPE_BASIC_HYPER, 0); } - | tINT64 { $$ = type_new_int(TYPE_BASIC_INT64, 0); } - | tCHAR { $$ = type_new_int(TYPE_BASIC_CHAR, 0); } - | tINT3264 { $$ = type_new_int(TYPE_BASIC_INT3264, 0); } - ; - -coclass: tCOCLASS aIDENTIFIER { $$ = type_new_coclass($2); } - | tCOCLASS aKNOWNTYPE { $$ = find_type($2, 0); - if (type_get_type_detect_alias($$) != TYPE_COCLASS) - error_loc("%s was not declared a coclass at %s:%d\n", - $2, $$->loc_info.input_name, - $$->loc_info.line_number); - } - ; - -coclasshdr: attributes coclass { $$ = $2; - check_def($$); - $$->attrs = check_coclass_attrs($2->name, $1); - } - ; - -coclassdef: coclasshdr '{' coclass_ints '}' semicolon_opt - { $$ = type_coclass_define($1, $3); } - ; - -coclass_ints: { $$ = NULL; } - | coclass_ints coclass_int { $$ = append_ifref( $1, $2 ); } - ; - -coclass_int: - m_attributes interfacedec { $$ = make_ifref($2); $$->attrs = $1; } - ; - -dispinterface: tDISPINTERFACE aIDENTIFIER { $$ = get_type(TYPE_INTERFACE, $2, 0); } - | tDISPINTERFACE aKNOWNTYPE { $$ = get_type(TYPE_INTERFACE, $2, 0); } - ; - -dispinterfacehdr: attributes dispinterface { attr_t *attrs; - $$ = $2; - check_def($$); - attrs = make_attr(ATTR_DISPINTERFACE); - $$->attrs = append_attr( check_dispiface_attrs($2->name, $1), attrs ); - $$->defined = TRUE; - } - ; - -dispint_props: tPROPERTIES ':' { $$ = NULL; } - | dispint_props s_field ';' { $$ = append_var( $1, $2 ); } - ; - -dispint_meths: tMETHODS ':' { $$ = NULL; } - | dispint_meths funcdef ';' { $$ = append_var( $1, $2 ); } - ; - -dispinterfacedef: dispinterfacehdr '{' - dispint_props - dispint_meths - '}' { $$ = $1; - type_dispinterface_define($$, $3, $4); - } - | dispinterfacehdr - '{' interface ';' '}' { $$ = $1; - type_dispinterface_define_from_iface($$, $3); - } - ; - -inherit: { $$ = NULL; } - | ':' aKNOWNTYPE { $$ = find_type_or_error2($2, 0); } - ; - -interface: tINTERFACE aIDENTIFIER { $$ = get_type(TYPE_INTERFACE, $2, 0); } - | tINTERFACE aKNOWNTYPE { $$ = get_type(TYPE_INTERFACE, $2, 0); } - ; - -interfacehdr: attributes interface { $$.interface = $2; - $$.old_pointer_default = pointer_default; - if (is_attr($1, ATTR_POINTERDEFAULT)) - pointer_default = get_attrv($1, ATTR_POINTERDEFAULT); - check_def($2); - $2->attrs = check_iface_attrs($2->name, $1); - $2->defined = TRUE; - } - ; - -interfacedef: interfacehdr inherit - '{' int_statements '}' semicolon_opt { $$ = $1.interface; - type_interface_define($$, $2, $4); - pointer_default = $1.old_pointer_default; - } -/* MIDL is able to import the definition of a base class from inside the - * definition of a derived class, I'll try to support it with this rule */ - | interfacehdr ':' aIDENTIFIER - '{' import int_statements '}' - semicolon_opt { $$ = $1.interface; - type_interface_define($$, find_type_or_error2($3, 0), $6); - pointer_default = $1.old_pointer_default; - } - | dispinterfacedef semicolon_opt { $$ = $1; } - ; - -interfacedec: - interface ';' { $$ = $1; } - | dispinterface ';' { $$ = $1; } - ; - -module: tMODULE aIDENTIFIER { $$ = type_new_module($2); } - | tMODULE aKNOWNTYPE { $$ = type_new_module($2); } - ; - -modulehdr: attributes module { $$ = $2; - $$->attrs = check_module_attrs($2->name, $1); - } - ; - -moduledef: modulehdr '{' int_statements '}' - semicolon_opt { $$ = $1; - type_module_define($$, $3); - } - ; - -storage_cls_spec: - tEXTERN { $$ = STG_EXTERN; } - | tSTATIC { $$ = STG_STATIC; } - | tREGISTER { $$ = STG_REGISTER; } - ; - -function_specifier: - tINLINE { $$ = make_attr(ATTR_INLINE); } - ; - -type_qualifier: - tCONST { $$ = make_attr(ATTR_CONST); } - ; - -m_type_qual_list: { $$ = NULL; } - | m_type_qual_list type_qualifier { $$ = append_attr($1, $2); } - ; - -decl_spec: type m_decl_spec_no_type { $$ = make_decl_spec($1, $2, NULL, NULL, STG_NONE); } - | decl_spec_no_type type m_decl_spec_no_type - { $$ = make_decl_spec($2, $1, $3, NULL, STG_NONE); } - ; - -m_decl_spec_no_type: { $$ = NULL; } - | decl_spec_no_type - ; - -decl_spec_no_type: - type_qualifier m_decl_spec_no_type { $$ = make_decl_spec(NULL, $2, NULL, $1, STG_NONE); } - | function_specifier m_decl_spec_no_type { $$ = make_decl_spec(NULL, $2, NULL, $1, STG_NONE); } - | storage_cls_spec m_decl_spec_no_type { $$ = make_decl_spec(NULL, $2, NULL, NULL, $1); } - ; - -declarator: - '*' m_type_qual_list declarator %prec PPTR - { $$ = $3; $$->type = append_ptrchain_type($$->type, type_new_pointer(pointer_default, NULL, $2)); } - | callconv declarator { $$ = $2; if ($$->func_type) $$->func_type->attrs = append_attr($$->func_type->attrs, make_attrp(ATTR_CALLCONV, $1)); - else if ($$->type) $$->type->attrs = append_attr($$->type->attrs, make_attrp(ATTR_CALLCONV, $1)); } - | direct_declarator - ; - -direct_declarator: - ident { $$ = make_declarator($1); } - | '(' declarator ')' { $$ = $2; } - | direct_declarator array { $$ = $1; $$->array = append_array($$->array, $2); } - | direct_declarator '(' m_args ')' { $$ = $1; - $$->func_type = append_ptrchain_type($$->type, type_new_function($3)); - $$->type = NULL; - } - ; - -/* abstract declarator */ -abstract_declarator: - '*' m_type_qual_list m_abstract_declarator %prec PPTR - { $$ = $3; $$->type = append_ptrchain_type($$->type, type_new_pointer(pointer_default, NULL, $2)); } - | callconv m_abstract_declarator { $$ = $2; if ($$->func_type) $$->func_type->attrs = append_attr($$->func_type->attrs, make_attrp(ATTR_CALLCONV, $1)); - else if ($$->type) $$->type->attrs = append_attr($$->type->attrs, make_attrp(ATTR_CALLCONV, $1)); } - | abstract_direct_declarator - ; - -/* abstract declarator without accepting direct declarator */ -abstract_declarator_no_direct: - '*' m_type_qual_list m_any_declarator %prec PPTR - { $$ = $3; $$->type = append_ptrchain_type($$->type, type_new_pointer(pointer_default, NULL, $2)); } - | callconv m_any_declarator { $$ = $2; if ($$->func_type) $$->func_type->attrs = append_attr($$->func_type->attrs, make_attrp(ATTR_CALLCONV, $1)); - else if ($$->type) $$->type->attrs = append_attr($$->type->attrs, make_attrp(ATTR_CALLCONV, $1)); } - ; - -/* abstract declarator or empty */ -m_abstract_declarator: { $$ = make_declarator(NULL); } - | abstract_declarator - ; - -/* abstract direct declarator */ -abstract_direct_declarator: - '(' abstract_declarator_no_direct ')' { $$ = $2; } - | abstract_direct_declarator array { $$ = $1; $$->array = append_array($$->array, $2); } - | array { $$ = make_declarator(NULL); $$->array = append_array($$->array, $1); } - | '(' m_args ')' - { $$ = make_declarator(NULL); - $$->func_type = append_ptrchain_type($$->type, type_new_function($2)); - $$->type = NULL; - } - | abstract_direct_declarator '(' m_args ')' - { $$ = $1; - $$->func_type = append_ptrchain_type($$->type, type_new_function($3)); - $$->type = NULL; - } - ; - -/* abstract or non-abstract declarator */ -any_declarator: - '*' m_type_qual_list m_any_declarator %prec PPTR - { $$ = $3; $$->type = append_ptrchain_type($$->type, type_new_pointer(pointer_default, NULL, $2)); } - | callconv m_any_declarator { $$ = $2; $$->type->attrs = append_attr($$->type->attrs, make_attrp(ATTR_CALLCONV, $1)); } - | any_direct_declarator - ; - -/* abstract or non-abstract declarator without accepting direct declarator */ -any_declarator_no_direct: - '*' m_type_qual_list m_any_declarator %prec PPTR - { $$ = $3; $$->type = append_ptrchain_type($$->type, type_new_pointer(pointer_default, NULL, $2)); } - | callconv m_any_declarator { $$ = $2; $$->type->attrs = append_attr($$->type->attrs, make_attrp(ATTR_CALLCONV, $1)); } - ; - -/* abstract or non-abstract declarator or empty */ -m_any_declarator: { $$ = make_declarator(NULL); } - | any_declarator - ; - -/* abstract or non-abstract direct declarator. note: direct declarators - * aren't accepted inside brackets to avoid ambiguity with the rule for - * function arguments */ -any_direct_declarator: - ident { $$ = make_declarator($1); } - | '(' any_declarator_no_direct ')' { $$ = $2; } - | any_direct_declarator array { $$ = $1; $$->array = append_array($$->array, $2); } - | array { $$ = make_declarator(NULL); $$->array = append_array($$->array, $1); } - | '(' m_args ')' - { $$ = make_declarator(NULL); - $$->func_type = append_ptrchain_type($$->type, type_new_function($2)); - $$->type = NULL; - } - | any_direct_declarator '(' m_args ')' - { $$ = $1; - $$->func_type = append_ptrchain_type($$->type, type_new_function($3)); - $$->type = NULL; - } - ; - -declarator_list: - declarator { $$ = append_declarator( NULL, $1 ); } - | declarator_list ',' declarator { $$ = append_declarator( $1, $3 ); } - ; - -m_bitfield: { $$ = NULL; } - | ':' expr_const { $$ = $2; } - ; - -struct_declarator: any_declarator m_bitfield { $$ = $1; $$->bits = $2; - if (!$$->bits && !$$->var->name) - error_loc("unnamed fields are not allowed\n"); - } - ; - -struct_declarator_list: - struct_declarator { $$ = append_declarator( NULL, $1 ); } - | struct_declarator_list ',' struct_declarator - { $$ = append_declarator( $1, $3 ); } - ; - -init_declarator: - declarator { $$ = $1; } - | declarator '=' expr_const { $$ = $1; $1->var->eval = $3; } - ; - -threading_type: - tAPARTMENT { $$ = THREADING_APARTMENT; } - | tNEUTRAL { $$ = THREADING_NEUTRAL; } - | tSINGLE { $$ = THREADING_SINGLE; } - | tFREE { $$ = THREADING_FREE; } - | tBOTH { $$ = THREADING_BOTH; } - ; - -pointer_type: - tREF { $$ = RPC_FC_RP; } - | tUNIQUE { $$ = RPC_FC_UP; } - | tPTR { $$ = RPC_FC_FP; } - ; - -structdef: tSTRUCT t_ident '{' fields '}' { $$ = type_new_struct($2, TRUE, $4); } - ; - -type: tVOID { $$ = type_new_void(); } - | aKNOWNTYPE { $$ = find_type_or_error($1, 0); } - | base_type { $$ = $1; } - | enumdef { $$ = $1; } - | tENUM aIDENTIFIER { $$ = type_new_enum($2, FALSE, NULL); } - | structdef { $$ = $1; } - | tSTRUCT aIDENTIFIER { $$ = type_new_struct($2, FALSE, NULL); } - | uniondef { $$ = $1; } - | tUNION aIDENTIFIER { $$ = type_new_nonencapsulated_union($2, FALSE, NULL); } - | tSAFEARRAY '(' type ')' { $$ = make_safearray($3); } - ; - -typedef: tTYPEDEF m_attributes decl_spec declarator_list - { reg_typedefs($3, $4, check_typedef_attrs($2)); - $$ = make_statement_typedef($4); - } - ; - -uniondef: tUNION t_ident '{' ne_union_fields '}' - { $$ = type_new_nonencapsulated_union($2, TRUE, $4); } - | tUNION t_ident - tSWITCH '(' s_field ')' - m_ident '{' cases '}' { $$ = type_new_encapsulated_union($2, $5, $7, $9); } - ; - -version: - aNUM { $$ = MAKEVERSION($1, 0); } - | aNUM '.' aNUM { $$ = MAKEVERSION($1, $3); } - ; - -%% - -static void decl_builtin_basic(const char *name, enum type_basic_type type) -{ - type_t *t = type_new_basic(type); - reg_type(t, name, 0); -} - -static void decl_builtin_alias(const char *name, type_t *t) -{ - reg_type(type_new_alias(t, name), name, 0); -} - -void init_types(void) -{ - decl_builtin_basic("byte", TYPE_BASIC_BYTE); - decl_builtin_basic("wchar_t", TYPE_BASIC_WCHAR); - decl_builtin_basic("float", TYPE_BASIC_FLOAT); - decl_builtin_basic("double", TYPE_BASIC_DOUBLE); - decl_builtin_basic("error_status_t", TYPE_BASIC_ERROR_STATUS_T); - decl_builtin_basic("handle_t", TYPE_BASIC_HANDLE); - decl_builtin_alias("boolean", type_new_basic(TYPE_BASIC_BYTE)); -} - -static str_list_t *append_str(str_list_t *list, char *str) -{ - struct str_list_entry_t *entry; - - if (!str) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - entry = xmalloc( sizeof(*entry) ); - entry->str = str; - list_add_tail( list, &entry->entry ); - return list; -} - -static attr_list_t *append_attr(attr_list_t *list, attr_t *attr) -{ - attr_t *attr_existing; - if (!attr) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - LIST_FOR_EACH_ENTRY(attr_existing, list, attr_t, entry) - if (attr_existing->type == attr->type) - { - parser_warning("duplicate attribute %s\n", get_attr_display_name(attr->type)); - /* use the last attribute, like MIDL does */ - list_remove(&attr_existing->entry); - break; - } - list_add_tail( list, &attr->entry ); - return list; -} - -static attr_list_t *move_attr(attr_list_t *dst, attr_list_t *src, enum attr_type type) -{ - attr_t *attr; - if (!src) return dst; - LIST_FOR_EACH_ENTRY(attr, src, attr_t, entry) - if (attr->type == type) - { - list_remove(&attr->entry); - return append_attr(dst, attr); - } - return dst; -} - -static attr_list_t *append_attr_list(attr_list_t *new_list, attr_list_t *old_list) -{ - struct list *entry; - - if (!old_list) return new_list; - - while ((entry = list_head(old_list))) - { - attr_t *attr = LIST_ENTRY(entry, attr_t, entry); - list_remove(entry); - new_list = append_attr(new_list, attr); - } - return new_list; -} - -static attr_list_t *dupattrs(const attr_list_t *list) -{ - attr_list_t *new_list; - const attr_t *attr; - - if (!list) return NULL; - - new_list = xmalloc( sizeof(*list) ); - list_init( new_list ); - LIST_FOR_EACH_ENTRY(attr, list, const attr_t, entry) - { - attr_t *new_attr = xmalloc(sizeof(*new_attr)); - *new_attr = *attr; - list_add_tail(new_list, &new_attr->entry); - } - return new_list; -} - -static decl_spec_t *make_decl_spec(type_t *type, decl_spec_t *left, decl_spec_t *right, attr_t *attr, enum storage_class stgclass) -{ - decl_spec_t *declspec = left ? left : right; - if (!declspec) - { - declspec = xmalloc(sizeof(*declspec)); - declspec->type = NULL; - declspec->attrs = NULL; - declspec->stgclass = STG_NONE; - } - declspec->type = type; - if (left && declspec != left) - { - declspec->attrs = append_attr_list(declspec->attrs, left->attrs); - if (declspec->stgclass == STG_NONE) - declspec->stgclass = left->stgclass; - else if (left->stgclass != STG_NONE) - error_loc("only one storage class can be specified\n"); - assert(!left->type); - free(left); - } - if (right && declspec != right) - { - declspec->attrs = append_attr_list(declspec->attrs, right->attrs); - if (declspec->stgclass == STG_NONE) - declspec->stgclass = right->stgclass; - else if (right->stgclass != STG_NONE) - error_loc("only one storage class can be specified\n"); - assert(!right->type); - free(right); - } - - declspec->attrs = append_attr(declspec->attrs, attr); - if (declspec->stgclass == STG_NONE) - declspec->stgclass = stgclass; - else if (stgclass != STG_NONE) - error_loc("only one storage class can be specified\n"); - - /* apply attributes to type */ - if (type && declspec->attrs) - { - attr_list_t *attrs; - declspec->type = duptype(type, 1); - attrs = dupattrs(type->attrs); - declspec->type->attrs = append_attr_list(attrs, declspec->attrs); - declspec->attrs = NULL; - } - - return declspec; -} - -static attr_t *make_attr(enum attr_type type) -{ - attr_t *a = xmalloc(sizeof(attr_t)); - a->type = type; - a->u.ival = 0; - return a; -} - -static attr_t *make_attrv(enum attr_type type, unsigned int val) -{ - attr_t *a = xmalloc(sizeof(attr_t)); - a->type = type; - a->u.ival = val; - return a; -} - -static attr_t *make_attrp(enum attr_type type, void *val) -{ - attr_t *a = xmalloc(sizeof(attr_t)); - a->type = type; - a->u.pval = val; - return a; -} - -static expr_list_t *append_expr(expr_list_t *list, expr_t *expr) -{ - if (!expr) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_add_tail( list, &expr->entry ); - return list; -} - -static array_dims_t *append_array(array_dims_t *list, expr_t *expr) -{ - if (!expr) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_add_tail( list, &expr->entry ); - return list; -} - -static struct list type_pool = LIST_INIT(type_pool); -typedef struct -{ - type_t data; - struct list link; -} type_pool_node_t; - -type_t *alloc_type(void) -{ - type_pool_node_t *node = xmalloc(sizeof *node); - list_add_tail(&type_pool, &node->link); - return &node->data; -} - -void set_all_tfswrite(int val) -{ - type_pool_node_t *node; - LIST_FOR_EACH_ENTRY(node, &type_pool, type_pool_node_t, link) - node->data.tfswrite = val; -} - -void clear_all_offsets(void) -{ - type_pool_node_t *node; - LIST_FOR_EACH_ENTRY(node, &type_pool, type_pool_node_t, link) - node->data.typestring_offset = node->data.ptrdesc = 0; -} - -static void type_function_add_head_arg(type_t *type, var_t *arg) -{ - if (!type->details.function->args) - { - type->details.function->args = xmalloc( sizeof(*type->details.function->args) ); - list_init( type->details.function->args ); - } - list_add_head( type->details.function->args, &arg->entry ); -} - -static int is_allowed_range_type(const type_t *type) -{ - switch (type_get_type(type)) - { - case TYPE_ENUM: - return TRUE; - case TYPE_BASIC: - switch (type_basic_get_type(type)) - { - case TYPE_BASIC_INT8: - case TYPE_BASIC_INT16: - case TYPE_BASIC_INT32: - case TYPE_BASIC_INT64: - case TYPE_BASIC_INT: - case TYPE_BASIC_INT3264: - case TYPE_BASIC_BYTE: - case TYPE_BASIC_CHAR: - case TYPE_BASIC_WCHAR: - case TYPE_BASIC_HYPER: - return TRUE; - case TYPE_BASIC_FLOAT: - case TYPE_BASIC_DOUBLE: - case TYPE_BASIC_ERROR_STATUS_T: - case TYPE_BASIC_HANDLE: - return FALSE; - } - return FALSE; - default: - return FALSE; - } -} - -static type_t *append_ptrchain_type(type_t *ptrchain, type_t *type) -{ - type_t *ptrchain_type; - if (!ptrchain) - return type; - for (ptrchain_type = ptrchain; type_pointer_get_ref(ptrchain_type); ptrchain_type = type_pointer_get_ref(ptrchain_type)) - ; - assert(ptrchain_type->type_type == TYPE_POINTER); - ptrchain_type->details.pointer.ref = type; - return ptrchain; -} - -static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, const declarator_t *decl, - int top) -{ - var_t *v = decl->var; - expr_list_t *sizes = get_attrp(attrs, ATTR_SIZEIS); - expr_list_t *lengs = get_attrp(attrs, ATTR_LENGTHIS); - int sizeless; - expr_t *dim; - type_t **ptype; - array_dims_t *arr = decl ? decl->array : NULL; - type_t *func_type = decl ? decl->func_type : NULL; - type_t *type = decl_spec->type; - - /* In case of a range attribute, duplicate the type to keep track of - * the min/max values in the type format string */ - if(is_attr(attrs, ATTR_RANGE)) - type = duptype(type, 1); - - if (is_attr(type->attrs, ATTR_INLINE)) - { - if (!func_type) - error_loc("inline attribute applied to non-function type\n"); - else - { - type_t *t; - /* move inline attribute from return type node to function node */ - for (t = func_type; is_ptr(t); t = type_pointer_get_ref(t)) - ; - t->attrs = move_attr(t->attrs, type->attrs, ATTR_INLINE); - } - } - - /* add type onto the end of the pointers in pident->type */ - v->type = append_ptrchain_type(decl ? decl->type : NULL, type); - v->stgclass = decl_spec->stgclass; - v->attrs = attrs; - - /* check for pointer attribute being applied to non-pointer, non-array - * type */ - if (!arr) - { - int ptr_attr = get_attrv(v->attrs, ATTR_POINTERTYPE); - const type_t *ptr = NULL; - /* pointer attributes on the left side of the type belong to the function - * pointer, if one is being declared */ - type_t **pt = func_type ? &func_type : &v->type; - for (ptr = *pt; ptr && !ptr_attr; ) - { - ptr_attr = get_attrv(ptr->attrs, ATTR_POINTERTYPE); - if (!ptr_attr && type_is_alias(ptr)) - ptr = type_alias_get_aliasee(ptr); - else - break; - } - if (is_ptr(ptr)) - { - if (ptr_attr && ptr_attr != RPC_FC_UP && - type_get_type(type_pointer_get_ref(ptr)) == TYPE_INTERFACE) - warning_loc_info(&v->loc_info, - "%s: pointer attribute applied to interface " - "pointer type has no effect\n", v->name); - if (!ptr_attr && top && (*pt)->details.pointer.def_fc != RPC_FC_RP) - { - /* FIXME: this is a horrible hack to cope with the issue that we - * store an offset to the typeformat string in the type object, but - * two typeformat strings may be written depending on whether the - * pointer is a toplevel parameter or not */ - *pt = duptype(*pt, 1); - } - } - else if (ptr_attr) - error_loc("%s: pointer attribute applied to non-pointer type\n", v->name); - } - - if (is_attr(v->attrs, ATTR_STRING)) - { - type_t *t = type; - - if (!is_ptr(v->type) && !arr) - error_loc("'%s': [string] attribute applied to non-pointer, non-array type\n", - v->name); - - while (is_ptr(t)) - t = type_pointer_get_ref(t); - - if (type_get_type(t) != TYPE_BASIC && - (get_basic_fc(t) != RPC_FC_CHAR && - get_basic_fc(t) != RPC_FC_BYTE && - get_basic_fc(t) != RPC_FC_WCHAR)) - { - error_loc("'%s': [string] attribute is only valid on 'char', 'byte', or 'wchar_t' pointers and arrays\n", - v->name); - } - } - - if (is_attr(v->attrs, ATTR_V1ENUM)) - { - if (type_get_type_detect_alias(v->type) != TYPE_ENUM) - error_loc("'%s': [v1_enum] attribute applied to non-enum type\n", v->name); - } - - if (is_attr(v->attrs, ATTR_RANGE) && !is_allowed_range_type(v->type)) - error_loc("'%s': [range] attribute applied to non-integer type\n", - v->name); - - ptype = &v->type; - sizeless = FALSE; - if (arr) LIST_FOR_EACH_ENTRY_REV(dim, arr, expr_t, entry) - { - if (sizeless) - error_loc("%s: only the first array dimension can be unspecified\n", v->name); - - if (dim->is_const) - { - if (dim->cval <= 0) - error_loc("%s: array dimension must be positive\n", v->name); - - /* FIXME: should use a type_memsize that allows us to pass in a pointer size */ - if (0) - { - unsigned int size = type_memsize(v->type); - - if (0xffffffffu / size < dim->cval) - error_loc("%s: total array size is too large\n", v->name); - } - } - else - sizeless = TRUE; - - *ptype = type_new_array(NULL, *ptype, FALSE, - dim->is_const ? dim->cval : 0, - dim->is_const ? NULL : dim, NULL, - pointer_default); - } - - ptype = &v->type; - if (sizes) LIST_FOR_EACH_ENTRY(dim, sizes, expr_t, entry) - { - if (dim->type != EXPR_VOID) - { - if (is_array(*ptype)) - { - if (!type_array_get_conformance(*ptype) || - type_array_get_conformance(*ptype)->type != EXPR_VOID) - error_loc("%s: cannot specify size_is for an already sized array\n", v->name); - else - *ptype = type_new_array((*ptype)->name, - type_array_get_element(*ptype), FALSE, - 0, dim, NULL, 0); - } - else if (is_ptr(*ptype)) - *ptype = type_new_array((*ptype)->name, type_pointer_get_ref(*ptype), TRUE, - 0, dim, NULL, pointer_default); - else - error_loc("%s: size_is attribute applied to illegal type\n", v->name); - } - - if (is_ptr(*ptype)) - ptype = &(*ptype)->details.pointer.ref; - else if (is_array(*ptype)) - ptype = &(*ptype)->details.array.elem; - else - error_loc("%s: too many expressions in size_is attribute\n", v->name); - } - - ptype = &v->type; - if (lengs) LIST_FOR_EACH_ENTRY(dim, lengs, expr_t, entry) - { - if (dim->type != EXPR_VOID) - { - if (is_array(*ptype)) - { - *ptype = type_new_array((*ptype)->name, - type_array_get_element(*ptype), - type_array_is_decl_as_ptr(*ptype), - type_array_get_dim(*ptype), - type_array_get_conformance(*ptype), - dim, type_array_get_ptr_default_fc(*ptype)); - } - else - error_loc("%s: length_is attribute applied to illegal type\n", v->name); - } - - if (is_ptr(*ptype)) - ptype = &(*ptype)->details.pointer.ref; - else if (is_array(*ptype)) - ptype = &(*ptype)->details.array.elem; - else - error_loc("%s: too many expressions in length_is attribute\n", v->name); - } - - /* v->type is currently pointing to the type on the left-side of the - * declaration, so we need to fix this up so that it is the return type of the - * function and make v->type point to the function side of the declaration */ - if (func_type) - { - type_t *ft, *t; - type_t *return_type = v->type; - v->type = func_type; - for (ft = v->type; is_ptr(ft); ft = type_pointer_get_ref(ft)) - ; - assert(type_get_type_detect_alias(ft) == TYPE_FUNCTION); - ft->details.function->retval = make_var(xstrdup("_RetVal")); - ft->details.function->retval->type = return_type; - /* move calling convention attribute, if present, from pointer nodes to - * function node */ - for (t = v->type; is_ptr(t); t = type_pointer_get_ref(t)) - ft->attrs = move_attr(ft->attrs, t->attrs, ATTR_CALLCONV); - } - else - { - type_t *t; - for (t = v->type; is_ptr(t); t = type_pointer_get_ref(t)) - if (is_attr(t->attrs, ATTR_CALLCONV)) - error_loc("calling convention applied to non-function-pointer type\n"); - } - - if (decl->bits) - v->type = type_new_bitfield(v->type, decl->bits); - - return v; -} - -static var_list_t *set_var_types(attr_list_t *attrs, decl_spec_t *decl_spec, declarator_list_t *decls) -{ - declarator_t *decl, *next; - var_list_t *var_list = NULL; - - LIST_FOR_EACH_ENTRY_SAFE( decl, next, decls, declarator_t, entry ) - { - var_t *var = declare_var(attrs, decl_spec, decl, 0); - var_list = append_var(var_list, var); - free(decl); - } - free(decl_spec); - return var_list; -} - -static ifref_list_t *append_ifref(ifref_list_t *list, ifref_t *iface) -{ - if (!iface) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_add_tail( list, &iface->entry ); - return list; -} - -static ifref_t *make_ifref(type_t *iface) -{ - ifref_t *l = xmalloc(sizeof(ifref_t)); - l->iface = iface; - l->attrs = NULL; - return l; -} - -var_list_t *append_var(var_list_t *list, var_t *var) -{ - if (!var) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_add_tail( list, &var->entry ); - return list; -} - -static var_list_t *append_var_list(var_list_t *list, var_list_t *vars) -{ - if (!vars) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_move_tail( list, vars ); - return list; -} - -var_t *make_var(char *name) -{ - var_t *v = xmalloc(sizeof(var_t)); - v->name = name; - v->type = NULL; - v->attrs = NULL; - v->eval = NULL; - v->stgclass = STG_NONE; - init_loc_info(&v->loc_info); - return v; -} - -static declarator_list_t *append_declarator(declarator_list_t *list, declarator_t *d) -{ - if (!d) return list; - if (!list) { - list = xmalloc(sizeof(*list)); - list_init(list); - } - list_add_tail(list, &d->entry); - return list; -} - -static declarator_t *make_declarator(var_t *var) -{ - declarator_t *d = xmalloc(sizeof(*d)); - d->var = var ? var : make_var(NULL); - d->type = NULL; - d->func_type = NULL; - d->array = NULL; - d->bits = NULL; - return d; -} - -static type_t *make_safearray(type_t *type) -{ - return type_new_array(NULL, type_new_alias(type, "SAFEARRAY"), TRUE, 0, - NULL, NULL, RPC_FC_RP); -} - -static typelib_t *make_library(const char *name, const attr_list_t *attrs) -{ - typelib_t *typelib = xmalloc(sizeof(*typelib)); - typelib->name = xstrdup(name); - typelib->attrs = attrs; - list_init( &typelib->importlibs ); - return typelib; -} - -#define HASHMAX 64 - -static int hash_ident(const char *name) -{ - const char *p = name; - int sum = 0; - /* a simple sum hash is probably good enough */ - while (*p) { - sum += *p; - p++; - } - return sum & (HASHMAX-1); -} - -/***** type repository *****/ - -struct rtype { - const char *name; - type_t *type; - int t; - struct rtype *next; -}; - -struct rtype *type_hash[HASHMAX]; - -type_t *reg_type(type_t *type, const char *name, int t) -{ - struct rtype *nt; - int hash; - if (!name) { - error_loc("registering named type without name\n"); - return type; - } - hash = hash_ident(name); - nt = xmalloc(sizeof(struct rtype)); - nt->name = name; - nt->type = type; - nt->t = t; - nt->next = type_hash[hash]; - type_hash[hash] = nt; - if ((t == tsSTRUCT || t == tsUNION)) - fix_incomplete_types(type); - return type; -} - -static int is_incomplete(const type_t *t) -{ - return !t->defined && - (type_get_type_detect_alias(t) == TYPE_STRUCT || - type_get_type_detect_alias(t) == TYPE_UNION || - type_get_type_detect_alias(t) == TYPE_ENCAPSULATED_UNION); -} - -void add_incomplete(type_t *t) -{ - struct typenode *tn = xmalloc(sizeof *tn); - tn->type = t; - list_add_tail(&incomplete_types, &tn->entry); -} - -static void fix_type(type_t *t) -{ - if (type_is_alias(t) && is_incomplete(t)) { - type_t *ot = type_alias_get_aliasee(t); - fix_type(ot); - if (type_get_type_detect_alias(ot) == TYPE_STRUCT || - type_get_type_detect_alias(ot) == TYPE_UNION || - type_get_type_detect_alias(ot) == TYPE_ENCAPSULATED_UNION) - t->details.structure = ot->details.structure; - t->defined = ot->defined; - } -} - -static void fix_incomplete(void) -{ - struct typenode *tn, *next; - - LIST_FOR_EACH_ENTRY_SAFE(tn, next, &incomplete_types, struct typenode, entry) { - fix_type(tn->type); - list_remove(&tn->entry); - free(tn); - } -} - -static void fix_incomplete_types(type_t *complete_type) -{ - struct typenode *tn, *next; - - LIST_FOR_EACH_ENTRY_SAFE(tn, next, &incomplete_types, struct typenode, entry) - { - if (type_is_equal(complete_type, tn->type)) - { - tn->type->details.structure = complete_type->details.structure; - list_remove(&tn->entry); - free(tn); - } - } -} - -static type_t *reg_typedefs(decl_spec_t *decl_spec, declarator_list_t *decls, attr_list_t *attrs) -{ - const declarator_t *decl; - type_t *type = decl_spec->type; - - /* We must generate names for tagless enum, struct or union. - Typedef-ing a tagless enum, struct or union means we want the typedef - to be included in a library hence the public attribute. */ - if ((type_get_type_detect_alias(type) == TYPE_ENUM || - type_get_type_detect_alias(type) == TYPE_STRUCT || - type_get_type_detect_alias(type) == TYPE_UNION || - type_get_type_detect_alias(type) == TYPE_ENCAPSULATED_UNION) && - !type->name && !parse_only) - { - if (! is_attr(attrs, ATTR_PUBLIC)) - attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) ); - type->name = gen_name(); - } - else if (is_attr(attrs, ATTR_UUID) && !is_attr(attrs, ATTR_PUBLIC)) - attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) ); - - /* Append the SWITCHTYPE attribute to a non-encapsulated union if it does not already have it. */ - if (type_get_type_detect_alias(type) == TYPE_UNION && - is_attr(attrs, ATTR_SWITCHTYPE) && - !is_attr(type->attrs, ATTR_SWITCHTYPE)) - type->attrs = append_attr(type->attrs, make_attrp(ATTR_SWITCHTYPE, get_attrp(attrs, ATTR_SWITCHTYPE))); - - LIST_FOR_EACH_ENTRY( decl, decls, const declarator_t, entry ) - { - - if (decl->var->name) { - type_t *cur; - var_t *name; - - cur = find_type(decl->var->name, 0); - if (cur) - error_loc("%s: redefinition error; original definition was at %s:%d\n", - cur->name, cur->loc_info.input_name, - cur->loc_info.line_number); - - name = declare_var(attrs, decl_spec, decl, 0); - cur = type_new_alias(name->type, name->name); - cur->attrs = attrs; - - if (is_incomplete(cur)) - add_incomplete(cur); - reg_type(cur, cur->name, 0); - } - } - return type; -} - -type_t *find_type(const char *name, int t) -{ - struct rtype *cur = type_hash[hash_ident(name)]; - while (cur && (cur->t != t || strcmp(cur->name, name))) - cur = cur->next; - return cur ? cur->type : NULL; -} - -static type_t *find_type_or_error(const char *name, int t) -{ - type_t *type = find_type(name, t); - if (!type) { - error_loc("type '%s' not found\n", name); - return NULL; - } - return type; -} - -static type_t *find_type_or_error2(char *name, int t) -{ - type_t *tp = find_type_or_error(name, t); - free(name); - return tp; -} - -int is_type(const char *name) -{ - return find_type(name, 0) != NULL; -} - -type_t *get_type(enum type_type type, char *name, int t) -{ - type_t *tp; - if (name) { - tp = find_type(name, t); - if (tp) { - free(name); - return tp; - } - } - tp = make_type(type); - tp->name = name; - if (!name) return tp; - return reg_type(tp, name, t); -} - -/***** constant repository *****/ - -struct rconst { - char *name; - var_t *var; - struct rconst *next; -}; - -struct rconst *const_hash[HASHMAX]; - -static var_t *reg_const(var_t *var) -{ - struct rconst *nc; - int hash; - if (!var->name) { - error_loc("registering constant without name\n"); - return var; - } - hash = hash_ident(var->name); - nc = xmalloc(sizeof(struct rconst)); - nc->name = var->name; - nc->var = var; - nc->next = const_hash[hash]; - const_hash[hash] = nc; - return var; -} - -var_t *find_const(const char *name, int f) -{ - struct rconst *cur = const_hash[hash_ident(name)]; - while (cur && strcmp(cur->name, name)) - cur = cur->next; - if (!cur) { - if (f) error_loc("constant '%s' not found\n", name); - return NULL; - } - return cur->var; -} - -static char *gen_name(void) -{ - static const char format[] = "__WIDL_%s_generated_name_%08lX"; - static unsigned long n = 0; - static const char *file_id; - static size_t size; - char *name; - - if (! file_id) - { - char *dst = dup_basename(input_name, ".idl"); - file_id = dst; - - for (; *dst; ++dst) - if (! isalnum((unsigned char) *dst)) - *dst = '_'; - - size = sizeof format - 7 + strlen(file_id) + 8; - } - - name = xmalloc(size); - sprintf(name, format, file_id, n++); - return name; -} - -struct allowed_attr -{ - unsigned int dce_compatible : 1; - unsigned int acf : 1; - unsigned int on_interface : 1; - unsigned int on_function : 1; - unsigned int on_arg : 1; - unsigned int on_type : 1; - unsigned int on_enum : 1; - unsigned int on_struct : 1; - unsigned int on_union : 1; - unsigned int on_field : 1; - unsigned int on_library : 1; - unsigned int on_dispinterface : 1; - unsigned int on_module : 1; - unsigned int on_coclass : 1; - const char *display_name; -}; - -struct allowed_attr allowed_attr[] = -{ - /* attr { D ACF I Fn ARG T En St Un Fi L DI M C } */ - /* ATTR_AGGREGATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "aggregatable" }, - /* ATTR_ANNOTATION */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "annotation" }, - /* ATTR_APPOBJECT */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "appobject" }, - /* ATTR_ASYNC */ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "async" }, - /* ATTR_AUTO_HANDLE */ { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "auto_handle" }, - /* ATTR_BINDABLE */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "bindable" }, - /* ATTR_BROADCAST */ { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "broadcast" }, - /* ATTR_CALLAS */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "call_as" }, - /* ATTR_CALLCONV */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL }, - /* ATTR_CASE */ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, "case" }, - /* ATTR_CODE */ { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "code" }, - /* ATTR_COMMSTATUS */ { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "comm_status" }, - /* ATTR_CONST */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "const" }, - /* ATTR_CONTEXTHANDLE */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "context_handle" }, - /* ATTR_CONTROL */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, "control" }, - /* ATTR_DECODE */ { 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "decode" }, - /* ATTR_DEFAULT */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, "default" }, - /* ATTR_DEFAULTBIND */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "defaultbind" }, - /* ATTR_DEFAULTCOLLELEM */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "defaultcollelem" }, - /* ATTR_DEFAULTVALUE */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "defaultvalue" }, - /* ATTR_DEFAULTVTABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "defaultvtable" }, - /* ATTR_DISABLECONSISTENCYCHECK */{ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "disable_consistency_check" }, - /* ATTR_DISPINTERFACE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL }, - /* ATTR_DISPLAYBIND */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "displaybind" }, - /* ATTR_DLLNAME */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, "dllname" }, - /* ATTR_DUAL */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "dual" }, - /* ATTR_ENABLEALLOCATE */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "enable_allocate" }, - /* ATTR_ENCODE */ { 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "encode" }, - /* ATTR_ENDPOINT */ { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "endpoint" }, - /* ATTR_ENTRY */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "entry" }, - /* ATTR_EXPLICIT_HANDLE */ { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "explicit_handle" }, - /* ATTR_FAULTSTATUS */ { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fault_status" }, - /* ATTR_FORCEALLOCATE */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "force_allocate" }, - /* ATTR_HANDLE */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "handle" }, - /* ATTR_HELPCONTEXT */ { 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "helpcontext" }, - /* ATTR_HELPFILE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, "helpfile" }, - /* ATTR_HELPSTRING */ { 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "helpstring" }, - /* ATTR_HELPSTRINGCONTEXT */ { 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "helpstringcontext" }, - /* ATTR_HELPSTRINGDLL */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, "helpstringdll" }, - /* ATTR_HIDDEN */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, "hidden" }, - /* ATTR_ID */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, "id" }, - /* ATTR_IDEMPOTENT */ { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "idempotent" }, - /* ATTR_IGNORE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, "ignore" }, - /* ATTR_IIDIS */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "iid_is" }, - /* ATTR_IMMEDIATEBIND */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "immediatebind" }, - /* ATTR_IMPLICIT_HANDLE */ { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "implicit_handle" }, - /* ATTR_IN */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "in" }, - /* ATTR_INLINE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "inline" }, - /* ATTR_INPUTSYNC */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "inputsync" }, - /* ATTR_LENGTHIS */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "length_is" }, - /* ATTR_LIBLCID */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, "lcid" }, - /* ATTR_LICENSED */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "licensed" }, - /* ATTR_LOCAL */ { 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "local" }, - /* ATTR_MAYBE */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "maybe" }, - /* ATTR_MESSAGE */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "message" }, - /* ATTR_NOCODE */ { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "nocode" }, - /* ATTR_NONBROWSABLE */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "nonbrowsable" }, - /* ATTR_NONCREATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "noncreatable" }, - /* ATTR_NONEXTENSIBLE */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "nonextensible" }, - /* ATTR_NOTIFY */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "notify" }, - /* ATTR_NOTIFYFLAG */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "notify_flag" }, - /* ATTR_OBJECT */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "object" }, - /* ATTR_ODL */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, "odl" }, - /* ATTR_OLEAUTOMATION */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "oleautomation" }, - /* ATTR_OPTIMIZE */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "optimize" }, - /* ATTR_OPTIONAL */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "optional" }, - /* ATTR_OUT */ { 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "out" }, - /* ATTR_PARAMLCID */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "lcid" }, - /* ATTR_PARTIALIGNORE */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "partial_ignore" }, - /* ATTR_POINTERDEFAULT */ { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "pointer_default" }, - /* ATTR_POINTERTYPE */ { 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, "ref, unique or ptr" }, - /* ATTR_PROGID */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "progid" }, - /* ATTR_PROPGET */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "propget" }, - /* ATTR_PROPPUT */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "propput" }, - /* ATTR_PROPPUTREF */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "propputref" }, - /* ATTR_PROXY */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "proxy" }, - /* ATTR_PUBLIC */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "public" }, - /* ATTR_RANGE */ { 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, "range" }, - /* ATTR_READONLY */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "readonly" }, - /* ATTR_REPRESENTAS */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "represent_as" }, - /* ATTR_REQUESTEDIT */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "requestedit" }, - /* ATTR_RESTRICTED */ { 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, "restricted" }, - /* ATTR_RETVAL */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "retval" }, - /* ATTR_SIZEIS */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "size_is" }, - /* ATTR_SOURCE */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, "source" }, - /* ATTR_STRICTCONTEXTHANDLE */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "strict_context_handle" }, - /* ATTR_STRING */ { 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, "string" }, - /* ATTR_SWITCHIS */ { 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "switch_is" }, - /* ATTR_SWITCHTYPE */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, "switch_type" }, - /* ATTR_THREADING */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "threading" }, - /* ATTR_TRANSMITAS */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "transmit_as" }, - /* ATTR_UIDEFAULT */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "uidefault" }, - /* ATTR_USESGETLASTERROR */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "usesgetlasterror" }, - /* ATTR_USERMARSHAL */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "user_marshal" }, - /* ATTR_UUID */ { 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "uuid" }, - /* ATTR_V1ENUM */ { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, "v1_enum" }, - /* ATTR_VARARG */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "vararg" }, - /* ATTR_VERSION */ { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, "version" }, - /* ATTR_VIPROGID */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "vi_progid" }, - /* ATTR_WIREMARSHAL */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "wire_marshal" }, -}; - -const char *get_attr_display_name(enum attr_type type) -{ - return allowed_attr[type].display_name; -} - -static attr_list_t *check_iface_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_interface) - error_loc("inapplicable attribute %s for interface %s\n", - allowed_attr[attr->type].display_name, name); - if (attr->type == ATTR_IMPLICIT_HANDLE) - { - const var_t *var = attr->u.pval; - if (type_get_type( var->type) == TYPE_BASIC && - type_basic_get_type( var->type ) == TYPE_BASIC_HANDLE) - continue; - if (is_aliaschain_attr( var->type, ATTR_HANDLE )) - continue; - error_loc("attribute %s requires a handle type in interface %s\n", - allowed_attr[attr->type].display_name, name); - } - } - return attrs; -} - -static attr_list_t *check_function_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_function) - error_loc("inapplicable attribute %s for function %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static void check_arg_attrs(const var_t *arg) -{ - const attr_t *attr; - - if (arg->attrs) - { - LIST_FOR_EACH_ENTRY(attr, arg->attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_arg) - error_loc("inapplicable attribute %s for argument %s\n", - allowed_attr[attr->type].display_name, arg->name); - } - } -} - -static attr_list_t *check_typedef_attrs(attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_type) - error_loc("inapplicable attribute %s for typedef\n", - allowed_attr[attr->type].display_name); - } - return attrs; -} - -static attr_list_t *check_enum_attrs(attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_enum) - error_loc("inapplicable attribute %s for enum\n", - allowed_attr[attr->type].display_name); - } - return attrs; -} - -static attr_list_t *check_struct_attrs(attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_struct) - error_loc("inapplicable attribute %s for struct\n", - allowed_attr[attr->type].display_name); - } - return attrs; -} - -static attr_list_t *check_union_attrs(attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_union) - error_loc("inapplicable attribute %s for union\n", - allowed_attr[attr->type].display_name); - } - return attrs; -} - -static attr_list_t *check_field_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_field) - error_loc("inapplicable attribute %s for field %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static attr_list_t *check_library_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_library) - error_loc("inapplicable attribute %s for library %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static attr_list_t *check_dispiface_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_dispinterface) - error_loc("inapplicable attribute %s for dispinterface %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static attr_list_t *check_module_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_module) - error_loc("inapplicable attribute %s for module %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static attr_list_t *check_coclass_attrs(const char *name, attr_list_t *attrs) -{ - const attr_t *attr; - if (!attrs) return attrs; - LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry) - { - if (!allowed_attr[attr->type].on_coclass) - error_loc("inapplicable attribute %s for coclass %s\n", - allowed_attr[attr->type].display_name, name); - } - return attrs; -} - -static int is_allowed_conf_type(const type_t *type) -{ - switch (type_get_type(type)) - { - case TYPE_ENUM: - return TRUE; - case TYPE_BASIC: - switch (type_basic_get_type(type)) - { - case TYPE_BASIC_INT8: - case TYPE_BASIC_INT16: - case TYPE_BASIC_INT32: - case TYPE_BASIC_INT64: - case TYPE_BASIC_INT: - case TYPE_BASIC_CHAR: - case TYPE_BASIC_HYPER: - case TYPE_BASIC_BYTE: - case TYPE_BASIC_WCHAR: - return TRUE; - default: - return FALSE; - } - case TYPE_ALIAS: - /* shouldn't get here because of type_get_type call above */ - assert(0); - /* fall through */ - case TYPE_STRUCT: - case TYPE_UNION: - case TYPE_ENCAPSULATED_UNION: - case TYPE_ARRAY: - case TYPE_POINTER: - case TYPE_VOID: - case TYPE_MODULE: - case TYPE_COCLASS: - case TYPE_FUNCTION: - case TYPE_INTERFACE: - case TYPE_BITFIELD: - return FALSE; - } - return FALSE; -} - -static int is_ptr_guid_type(const type_t *type) -{ - /* first, make sure it is a pointer to something */ - if (!is_ptr(type)) return FALSE; - - /* second, make sure it is a pointer to something of size sizeof(GUID), - * i.e. 16 bytes */ - return (type_memsize(type_pointer_get_ref(type)) == 16); -} - -static void check_conformance_expr_list(const char *attr_name, const var_t *arg, const type_t *container_type, expr_list_t *expr_list) -{ - expr_t *dim; - struct expr_loc expr_loc; - expr_loc.v = arg; - expr_loc.attr = attr_name; - if (expr_list) LIST_FOR_EACH_ENTRY(dim, expr_list, expr_t, entry) - { - if (dim->type != EXPR_VOID) - { - const type_t *expr_type = expr_resolve_type(&expr_loc, container_type, dim); - if (!is_allowed_conf_type(expr_type)) - error_loc_info(&arg->loc_info, "expression must resolve to integral type <= 32bits for attribute %s\n", - attr_name); - } - } -} - -static void check_remoting_fields(const var_t *var, type_t *type); - -/* checks that properties common to fields and arguments are consistent */ -static void check_field_common(const type_t *container_type, - const char *container_name, const var_t *arg) -{ - type_t *type = arg->type; - int more_to_do; - const char *container_type_name; - const char *var_type; - - switch (type_get_type(container_type)) - { - case TYPE_STRUCT: - container_type_name = "struct"; - var_type = "field"; - break; - case TYPE_UNION: - container_type_name = "union"; - var_type = "arm"; - break; - case TYPE_ENCAPSULATED_UNION: - container_type_name = "encapsulated union"; - var_type = "arm"; - break; - case TYPE_FUNCTION: - container_type_name = "function"; - var_type = "parameter"; - break; - default: - /* should be no other container types */ - assert(0); - return; - } - - if (is_attr(arg->attrs, ATTR_LENGTHIS) && - (is_attr(arg->attrs, ATTR_STRING) || is_aliaschain_attr(arg->type, ATTR_STRING))) - error_loc_info(&arg->loc_info, - "string and length_is specified for argument %s are mutually exclusive attributes\n", - arg->name); - - if (is_attr(arg->attrs, ATTR_SIZEIS)) - { - expr_list_t *size_is_exprs = get_attrp(arg->attrs, ATTR_SIZEIS); - check_conformance_expr_list("size_is", arg, container_type, size_is_exprs); - } - if (is_attr(arg->attrs, ATTR_LENGTHIS)) - { - expr_list_t *length_is_exprs = get_attrp(arg->attrs, ATTR_LENGTHIS); - check_conformance_expr_list("length_is", arg, container_type, length_is_exprs); - } - if (is_attr(arg->attrs, ATTR_IIDIS)) - { - struct expr_loc expr_loc; - expr_t *expr = get_attrp(arg->attrs, ATTR_IIDIS); - if (expr->type != EXPR_VOID) - { - const type_t *expr_type; - expr_loc.v = arg; - expr_loc.attr = "iid_is"; - expr_type = expr_resolve_type(&expr_loc, container_type, expr); - if (!expr_type || !is_ptr_guid_type(expr_type)) - error_loc_info(&arg->loc_info, "expression must resolve to pointer to GUID type for attribute iid_is\n"); - } - } - if (is_attr(arg->attrs, ATTR_SWITCHIS)) - { - struct expr_loc expr_loc; - expr_t *expr = get_attrp(arg->attrs, ATTR_SWITCHIS); - if (expr->type != EXPR_VOID) - { - const type_t *expr_type; - expr_loc.v = arg; - expr_loc.attr = "switch_is"; - expr_type = expr_resolve_type(&expr_loc, container_type, expr); - if (!expr_type || !is_allowed_conf_type(expr_type)) - error_loc_info(&arg->loc_info, "expression must resolve to integral type <= 32bits for attribute %s\n", - expr_loc.attr); - } - } - - do - { - more_to_do = FALSE; - - switch (typegen_detect_type(type, arg->attrs, TDT_IGNORE_STRINGS)) - { - case TGT_STRUCT: - case TGT_UNION: - check_remoting_fields(arg, type); - break; - case TGT_INVALID: - { - const char *reason = "is invalid"; - switch (type_get_type(type)) - { - case TYPE_VOID: - reason = "cannot derive from void *"; - break; - case TYPE_FUNCTION: - reason = "cannot be a function pointer"; - break; - case TYPE_BITFIELD: - reason = "cannot be a bit-field"; - break; - case TYPE_COCLASS: - reason = "cannot be a class"; - break; - case TYPE_INTERFACE: - reason = "cannot be a non-pointer to an interface"; - break; - case TYPE_MODULE: - reason = "cannot be a module"; - break; - default: - break; - } - error_loc_info(&arg->loc_info, "%s \'%s\' of %s \'%s\' %s\n", - var_type, arg->name, container_type_name, container_name, reason); - break; - } - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - if (type_get_type(container_type) != TYPE_FUNCTION) - error_loc_info(&arg->loc_info, - "%s \'%s\' of %s \'%s\' cannot be a context handle\n", - var_type, arg->name, container_type_name, - container_name); - break; - case TGT_STRING: - { - const type_t *t = type; - while (is_ptr(t)) - t = type_pointer_get_ref(t); - if (is_aliaschain_attr(t, ATTR_RANGE)) - warning_loc_info(&arg->loc_info, "%s: range not verified for a string of ranged types\n", arg->name); - break; - } - case TGT_POINTER: - type = type_pointer_get_ref(type); - more_to_do = TRUE; - break; - case TGT_ARRAY: - type = type_array_get_element(type); - more_to_do = TRUE; - break; - case TGT_USER_TYPE: - case TGT_IFACE_POINTER: - case TGT_BASIC: - case TGT_ENUM: - case TGT_RANGE: - /* nothing to do */ - break; - } - } while (more_to_do); -} - -static void check_remoting_fields(const var_t *var, type_t *type) -{ - const var_t *field; - const var_list_t *fields = NULL; - - type = type_get_real_type(type); - - if (type->checked) - return; - - type->checked = TRUE; - - if (type_get_type(type) == TYPE_STRUCT) - { - if (type_is_complete(type)) - fields = type_struct_get_fields(type); - else - error_loc_info(&var->loc_info, "undefined type declaration %s\n", type->name); - } - else if (type_get_type(type) == TYPE_UNION || type_get_type(type) == TYPE_ENCAPSULATED_UNION) - fields = type_union_get_cases(type); - - if (fields) LIST_FOR_EACH_ENTRY( field, fields, const var_t, entry ) - if (field->type) check_field_common(type, type->name, field); -} - -/* checks that arguments for a function make sense for marshalling and unmarshalling */ -static void check_remoting_args(const var_t *func) -{ - const char *funcname = func->name; - const var_t *arg; - - if (func->type->details.function->args) LIST_FOR_EACH_ENTRY( arg, func->type->details.function->args, const var_t, entry ) - { - const type_t *type = arg->type; - - /* check that [out] parameters have enough pointer levels */ - if (is_attr(arg->attrs, ATTR_OUT)) - { - switch (typegen_detect_type(type, arg->attrs, TDT_ALL_TYPES)) - { - case TGT_BASIC: - case TGT_ENUM: - case TGT_RANGE: - case TGT_STRUCT: - case TGT_UNION: - case TGT_CTXT_HANDLE: - case TGT_USER_TYPE: - error_loc_info(&arg->loc_info, "out parameter \'%s\' of function \'%s\' is not a pointer\n", arg->name, funcname); - break; - case TGT_IFACE_POINTER: - error_loc_info(&arg->loc_info, "out interface pointer \'%s\' of function \'%s\' is not a double pointer\n", arg->name, funcname); - break; - case TGT_STRING: - if (is_array(type)) - { - /* needs conformance or fixed dimension */ - if (type_array_has_conformance(type) && - type_array_get_conformance(type)->type != EXPR_VOID) break; - if (!type_array_has_conformance(type) && type_array_get_dim(type)) break; - } - if (is_attr( arg->attrs, ATTR_IN )) break; - error_loc_info(&arg->loc_info, "out parameter \'%s\' of function \'%s\' cannot be an unsized string\n", arg->name, funcname); - break; - case TGT_INVALID: - /* already error'd before we get here */ - case TGT_CTXT_HANDLE_POINTER: - case TGT_POINTER: - case TGT_ARRAY: - /* OK */ - break; - } - } - - check_field_common(func->type, funcname, arg); - } - - if (type_get_type(type_function_get_rettype(func->type)) != TYPE_VOID) - { - var_t var; - var = *func; - var.type = type_function_get_rettype(func->type); - var.name = xstrdup("return value"); - check_field_common(func->type, funcname, &var); - free(var.name); - } -} - -static void add_explicit_handle_if_necessary(const type_t *iface, var_t *func) -{ - unsigned char explicit_fc, implicit_fc; - - /* check for a defined binding handle */ - if (!get_func_handle_var( iface, func, &explicit_fc, &implicit_fc ) || !explicit_fc) - { - /* no explicit handle specified so add - * "[in] handle_t IDL_handle" as the first parameter to the - * function */ - var_t *idl_handle = make_var(xstrdup("IDL_handle")); - idl_handle->attrs = append_attr(NULL, make_attr(ATTR_IN)); - idl_handle->type = find_type_or_error("handle_t", 0); - type_function_add_head_arg(func->type, idl_handle); - } -} - -static void check_functions(const type_t *iface, int is_inside_library) -{ - const statement_t *stmt; - if (is_attr(iface->attrs, ATTR_EXPLICIT_HANDLE)) - { - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - var_t *func = stmt->u.var; - add_explicit_handle_if_necessary(iface, func); - } - } - if (!is_inside_library && !is_attr(iface->attrs, ATTR_LOCAL)) - { - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - const var_t *func = stmt->u.var; - if (!is_attr(func->attrs, ATTR_LOCAL)) - check_remoting_args(func); - } - } -} - -static void check_statements(const statement_list_t *stmts, int is_inside_library) -{ - const statement_t *stmt; - - if (stmts) LIST_FOR_EACH_ENTRY(stmt, stmts, const statement_t, entry) - { - if (stmt->type == STMT_LIBRARY) - check_statements(stmt->u.lib->stmts, TRUE); - else if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE) - check_functions(stmt->u.type, is_inside_library); - } -} - -static void check_all_user_types(const statement_list_t *stmts) -{ - const statement_t *stmt; - - if (stmts) LIST_FOR_EACH_ENTRY(stmt, stmts, const statement_t, entry) - { - if (stmt->type == STMT_LIBRARY) - check_all_user_types(stmt->u.lib->stmts); - else if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE && - !is_local(stmt->u.type->attrs)) - { - const statement_t *stmt_func; - STATEMENTS_FOR_EACH_FUNC(stmt_func, type_iface_get_stmts(stmt->u.type)) { - const var_t *func = stmt_func->u.var; - check_for_additional_prototype_types(func->type->details.function->args); - } - } - } -} - -int is_valid_uuid(const char *s) -{ - int i; - - for (i = 0; i < 36; ++i) - if (i == 8 || i == 13 || i == 18 || i == 23) - { - if (s[i] != '-') - return FALSE; - } - else - if (!isxdigit(s[i])) - return FALSE; - - return s[i] == '\0'; -} - -static statement_t *make_statement(enum statement_type type) -{ - statement_t *stmt = xmalloc(sizeof(*stmt)); - stmt->type = type; - return stmt; -} - -static statement_t *make_statement_type_decl(type_t *type) -{ - statement_t *stmt = make_statement(STMT_TYPE); - stmt->u.type = type; - return stmt; -} - -static statement_t *make_statement_reference(type_t *type) -{ - statement_t *stmt = make_statement(STMT_TYPEREF); - stmt->u.type = type; - return stmt; -} - -static statement_t *make_statement_declaration(var_t *var) -{ - statement_t *stmt = make_statement(STMT_DECLARATION); - stmt->u.var = var; - if (var->stgclass == STG_EXTERN && var->eval) - warning("'%s' initialised and declared extern\n", var->name); - if (is_const_decl(var)) - { - if (var->eval) - reg_const(var); - } - else if (type_get_type(var->type) == TYPE_FUNCTION) - check_function_attrs(var->name, var->attrs); - else if (var->stgclass == STG_NONE || var->stgclass == STG_REGISTER) - error_loc("instantiation of data is illegal\n"); - return stmt; -} - -static statement_t *make_statement_library(typelib_t *typelib) -{ - statement_t *stmt = make_statement(STMT_LIBRARY); - stmt->u.lib = typelib; - return stmt; -} - -static statement_t *make_statement_cppquote(const char *str) -{ - statement_t *stmt = make_statement(STMT_CPPQUOTE); - stmt->u.str = str; - return stmt; -} - -static statement_t *make_statement_importlib(const char *str) -{ - statement_t *stmt = make_statement(STMT_IMPORTLIB); - stmt->u.str = str; - return stmt; -} - -static statement_t *make_statement_import(const char *str) -{ - statement_t *stmt = make_statement(STMT_IMPORT); - stmt->u.str = str; - return stmt; -} - -static statement_t *make_statement_module(type_t *type) -{ - statement_t *stmt = make_statement(STMT_MODULE); - stmt->u.type = type; - return stmt; -} - -static statement_t *make_statement_typedef(declarator_list_t *decls) -{ - declarator_t *decl, *next; - statement_t *stmt; - type_list_t **type_list; - - if (!decls) return NULL; - - stmt = make_statement(STMT_TYPEDEF); - stmt->u.type_list = NULL; - type_list = &stmt->u.type_list; - - LIST_FOR_EACH_ENTRY_SAFE( decl, next, decls, declarator_t, entry ) - { - var_t *var = decl->var; - type_t *type = find_type_or_error(var->name, 0); - *type_list = xmalloc(sizeof(type_list_t)); - (*type_list)->type = type; - (*type_list)->next = NULL; - - type_list = &(*type_list)->next; - free(decl); - free(var); - } - - return stmt; -} - -static statement_list_t *append_statement(statement_list_t *list, statement_t *stmt) -{ - if (!stmt) return list; - if (!list) - { - list = xmalloc( sizeof(*list) ); - list_init( list ); - } - list_add_tail( list, &stmt->entry ); - return list; -} - -void init_loc_info(loc_info_t *i) -{ - i->input_name = input_name ? input_name : "stdin"; - i->line_number = line_number; - i->near_text = parser_text; -} - -static void check_def(const type_t *t) -{ - if (t->defined) - error_loc("%s: redefinition error; original definition was at %s:%d\n", - t->name, t->loc_info.input_name, t->loc_info.line_number); -} diff --git a/reactos/tools/widl/parser.yy.c b/reactos/tools/widl/parser.yy.c deleted file mode 100644 index f7904240587..00000000000 --- a/reactos/tools/widl/parser.yy.c +++ /dev/null @@ -1,2586 +0,0 @@ -#line 2 "parser.yy.c" - -#line 4 "parser.yy.c" - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define yy_create_buffer parser__create_buffer -#define yy_delete_buffer parser__delete_buffer -#define yy_flex_debug parser__flex_debug -#define yy_init_buffer parser__init_buffer -#define yy_flush_buffer parser__flush_buffer -#define yy_load_buffer_state parser__load_buffer_state -#define yy_switch_to_buffer parser__switch_to_buffer -#define yyin parser_in -#define yyleng parser_leng -#define yylex parser_lex -#define yylineno parser_lineno -#define yyout parser_out -#define yyrestart parser_restart -#define yytext parser_text -#define yywrap parser_wrap -#define yyalloc parser_alloc -#define yyrealloc parser_realloc -#define yyfree parser_free - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* First, we deal with platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -#include -#include -#include -#include - -/* end standard C headers. */ - -/* flex integer type definitions */ - -#ifndef FLEXINT_H -#define FLEXINT_H - -/* C99 systems have . Non-C99 systems may or may not. */ - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. - */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - -#include -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -#else -typedef signed char flex_int8_t; -typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; -typedef unsigned short int flex_uint16_t; -typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ - -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#endif /* ! FLEXINT_H */ - -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST -#define yyconst const -#else -#define yyconst -#endif - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START - -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE parser_restart(parser_in ) - -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#define YY_BUF_SIZE 16384 -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -extern int parser_leng; - -extern FILE *parser_in, *parser_out; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) - -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up parser_text. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up parser_text again */ \ - } \ - while ( 0 ) - -#define unput(c) yyunput( c, (yytext_ptr) ) - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { - FILE *yy_input_file; - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - int yy_bs_lineno; /**< The line count. */ - int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via parser_restart()), so that the user can continue scanning by - * just pointing parser_in at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - - }; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* Stack of input buffers. */ -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ - : NULL) - -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* yy_hold_char holds the character lost when parser_text is formed. */ -static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int parser_leng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; -static int yy_init = 0; /* whether we need to initialize */ -static int yy_start = 0; /* start state number */ - -/* Flag which is used to allow parser_wrap()'s to do buffer switches - * instead of setting up a fresh parser_in. A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void parser_restart (FILE *input_file ); -void parser__switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE parser__create_buffer (FILE *file,int size ); -void parser__delete_buffer (YY_BUFFER_STATE b ); -void parser__flush_buffer (YY_BUFFER_STATE b ); -void parser_push_buffer_state (YY_BUFFER_STATE new_buffer ); -void parser_pop_buffer_state (void ); - -static void parser_ensure_buffer_stack (void ); -static void parser__load_buffer_state (void ); -static void parser__init_buffer (YY_BUFFER_STATE b,FILE *file ); - -#define YY_FLUSH_BUFFER parser__flush_buffer(YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE parser__scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE parser__scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE parser__scan_bytes (yyconst char *bytes,int len ); - -void *parser_alloc (yy_size_t ); -void *parser_realloc (void *,yy_size_t ); -void parser_free (void * ); - -#define yy_new_buffer parser__create_buffer - -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! YY_CURRENT_BUFFER ){ \ - parser_ensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - parser__create_buffer(parser_in,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ - } - -#define yy_set_bol(at_bol) \ - { \ - if ( ! YY_CURRENT_BUFFER ){\ - parser_ensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - parser__create_buffer(parser_in,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ - } - -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -/* Begin user sect3 */ - -typedef unsigned char YY_CHAR; - -FILE *parser_in = (FILE *) 0, *parser_out = (FILE *) 0; - -typedef int yy_state_type; - -extern int parser_lineno; - -int parser_lineno = 1; - -extern char *parser_text; -#define yytext_ptr parser_text - -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up parser_text. - */ -#define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ - parser_leng = (size_t) (yy_cp - yy_bp); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ - (yy_c_buf_p) = yy_cp; - -#define YY_NUM_RULES 36 -#define YY_END_OF_BUFFER 37 -/* This struct is not used in this scanner, - but its presence is necessary. */ -struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[148] = - { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, - 0, 0, 37, 35, 24, 23, 35, 3, 35, 7, - 35, 35, 19, 19, 35, 35, 35, 22, 22, 22, - 14, 35, 24, 1, 13, 36, 4, 13, 6, 19, - 19, 16, 16, 16, 15, 2, 8, 13, 29, 33, - 27, 0, 0, 19, 19, 19, 0, 25, 31, 28, - 30, 26, 22, 5, 22, 32, 0, 1, 1, 12, - 10, 9, 19, 0, 16, 16, 2, 11, 34, 20, - 19, 19, 18, 22, 19, 0, 16, 0, 18, 18, - 22, 19, 0, 16, 0, 20, 18, 18, 22, 19, - - 0, 16, 22, 19, 0, 16, 22, 19, 0, 16, - 22, 19, 0, 16, 22, 0, 19, 0, 21, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 4, 5, 6, 1, 1, 7, 8, 9, - 1, 1, 10, 1, 11, 12, 1, 13, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 1, 1, 15, - 16, 17, 1, 1, 18, 19, 19, 19, 20, 21, - 22, 22, 22, 22, 22, 23, 22, 22, 22, 22, - 22, 24, 25, 22, 26, 22, 22, 27, 28, 22, - 29, 30, 31, 1, 22, 1, 19, 19, 19, 19, - - 32, 19, 22, 22, 22, 22, 22, 33, 22, 22, - 22, 22, 22, 22, 22, 22, 34, 22, 22, 35, - 22, 22, 1, 36, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int32_t yy_meta[37] = - { 0, - 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 3, 1, 1, 1, 3, 3, 3, - 3, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 3, 4, 4, 4, 1 - } ; - -static yyconst flex_int16_t yy_base[184] = - { 0, - 0, 35, 35, 39, 40, 43, 61, 45, 262, 261, - 46, 47, 263, 481, 481, 481, 246, 481, 254, 481, - 243, 243, 85, 25, 41, 238, 42, 0, 248, 229, - 481, 210, 60, 243, 481, 481, 481, 34, 481, 108, - 26, 131, 154, 239, 481, 0, 481, 60, 481, 481, - 481, 231, 58, 0, 75, 77, 0, 481, 481, 481, - 481, 481, 0, 481, 220, 481, 61, 238, 236, 481, - 481, 481, 174, 0, 196, 0, 0, 481, 481, 93, - 481, 481, 113, 213, 216, 0, 238, 166, 89, 81, - 214, 258, 0, 280, 89, 169, 481, 481, 207, 300, - - 0, 322, 203, 342, 0, 364, 208, 384, 0, 406, - 197, 428, 213, 212, 115, 0, 211, 128, 481, 0, - 0, 0, 210, 0, 0, 0, 0, 209, 0, 0, - 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 481, 481, 462, 466, 468, - 472, 476, 215, 210, 209, 208, 202, 201, 200, 199, - 196, 195, 193, 188, 187, 182, 181, 178, 175, 168, - 167, 166, 159, 158, 157, 145, 135, 130, 129, 113, - 102, 88, 75 - } ; - -static yyconst flex_int16_t yy_def[184] = - { 0, - 147, 1, 148, 148, 148, 148, 1, 7, 149, 149, - 148, 148, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 23, 147, 147, 147, 150, 150, 150, - 147, 147, 147, 147, 147, 147, 147, 151, 147, 147, - 40, 147, 42, 43, 147, 152, 147, 151, 147, 147, - 147, 147, 147, 24, 147, 147, 153, 147, 147, 147, - 147, 147, 150, 147, 150, 147, 147, 147, 147, 147, - 147, 147, 147, 154, 43, 43, 152, 147, 147, 147, - 147, 147, 153, 150, 147, 155, 43, 147, 147, 147, - 150, 147, 156, 43, 147, 147, 147, 147, 150, 147, - - 157, 43, 150, 147, 158, 43, 150, 147, 159, 43, - 150, 147, 147, 43, 150, 160, 112, 147, 147, 161, - 162, 163, 147, 164, 165, 166, 167, 147, 168, 169, - 170, 171, 147, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 147, 0, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147 - } ; - -static yyconst flex_int16_t yy_nxt[518] = - { 0, - 14, 15, 16, 17, 18, 14, 19, 20, 14, 14, - 21, 22, 23, 24, 25, 26, 27, 28, 28, 28, - 28, 28, 29, 28, 30, 28, 28, 28, 31, 14, - 14, 28, 28, 28, 28, 32, 33, 36, 71, 37, - 34, 36, 36, 37, 39, 36, 33, 39, 36, 36, - 34, 147, 147, 47, 47, 58, 59, 61, 62, 147, - 147, 67, 67, 72, 38, 68, 68, 78, 38, 38, - 80, 80, 38, 40, 41, 48, 48, 146, 42, 42, - 42, 42, 43, 44, 43, 43, 43, 43, 43, 72, - 145, 45, 42, 43, 43, 43, 53, 54, 54, 82, - - 81, 96, 96, 98, 144, 80, 80, 55, 81, 82, - 56, 57, 88, 98, 97, 143, 118, 55, 56, 57, - 73, 73, 97, 119, 88, 74, 74, 74, 74, 118, - 55, 142, 141, 56, 57, 89, 119, 140, 90, 74, - 55, 56, 57, 75, 75, 89, 90, 139, 75, 75, - 75, 75, 76, 76, 76, 76, 76, 76, 76, 138, - 137, 136, 75, 76, 76, 76, 76, 76, 135, 133, - 132, 76, 76, 76, 76, 95, 95, 131, 96, 96, - 130, 96, 96, 128, 127, 76, 85, 85, 88, 126, - 125, 86, 86, 86, 86, 123, 55, 122, 121, 56, - - 88, 120, 113, 109, 105, 86, 55, 56, 87, 87, - 101, 93, 86, 87, 87, 87, 87, 83, 134, 129, - 124, 147, 116, 116, 115, 111, 107, 87, 92, 92, - 103, 99, 91, 93, 93, 93, 93, 69, 55, 69, - 84, 56, 79, 64, 69, 66, 65, 93, 55, 56, - 94, 94, 64, 60, 52, 94, 94, 94, 94, 51, - 50, 49, 147, 36, 36, 147, 147, 147, 147, 94, - 100, 100, 147, 147, 147, 101, 101, 101, 101, 147, - 55, 147, 147, 56, 147, 147, 147, 147, 147, 101, - 55, 56, 102, 102, 147, 147, 147, 102, 102, 102, - - 102, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 102, 104, 104, 147, 147, 147, 105, 105, 105, - 105, 147, 55, 147, 147, 56, 147, 147, 147, 147, - 147, 105, 55, 56, 106, 106, 147, 147, 147, 106, - 106, 106, 106, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 106, 108, 108, 147, 147, 147, 109, - 109, 109, 109, 147, 55, 147, 147, 56, 147, 147, - 147, 147, 147, 109, 55, 56, 110, 110, 147, 147, - 147, 110, 110, 110, 110, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 110, 112, 112, 147, 147, - - 147, 113, 113, 113, 113, 147, 55, 147, 147, 56, - 147, 147, 147, 147, 147, 113, 55, 56, 114, 114, - 147, 147, 147, 114, 114, 114, 114, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 114, 116, 147, - 117, 117, 147, 147, 147, 147, 147, 147, 147, 147, - 55, 147, 147, 56, 147, 147, 147, 147, 147, 147, - 55, 56, 35, 35, 35, 35, 46, 46, 46, 46, - 63, 63, 70, 147, 70, 70, 77, 147, 77, 77, - 13, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147 - } ; - -static yyconst flex_int16_t yy_chk[518] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 3, 38, 3, - 2, 4, 5, 4, 5, 6, 8, 6, 11, 12, - 8, 24, 41, 11, 12, 25, 25, 27, 27, 24, - 41, 33, 67, 38, 3, 33, 67, 48, 4, 5, - 53, 53, 6, 7, 7, 11, 12, 183, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 48, - 182, 7, 7, 7, 7, 7, 23, 23, 23, 56, - - 55, 95, 95, 90, 181, 80, 80, 23, 55, 56, - 23, 23, 80, 90, 89, 180, 115, 23, 23, 23, - 40, 40, 89, 115, 80, 40, 40, 40, 40, 118, - 40, 179, 178, 40, 40, 83, 118, 177, 83, 40, - 40, 40, 40, 42, 42, 83, 83, 176, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 175, - 174, 173, 42, 42, 42, 42, 43, 43, 172, 171, - 170, 43, 43, 43, 43, 88, 88, 169, 88, 88, - 168, 96, 96, 167, 166, 43, 73, 73, 96, 165, - 164, 73, 73, 73, 73, 163, 73, 162, 161, 73, - - 96, 160, 159, 158, 157, 73, 73, 73, 75, 75, - 156, 155, 154, 75, 75, 75, 75, 153, 133, 128, - 123, 117, 114, 113, 111, 107, 103, 75, 85, 85, - 99, 91, 84, 85, 85, 85, 85, 69, 85, 68, - 65, 85, 52, 44, 34, 32, 30, 85, 85, 85, - 87, 87, 29, 26, 22, 87, 87, 87, 87, 21, - 19, 17, 13, 10, 9, 0, 0, 0, 0, 87, - 92, 92, 0, 0, 0, 92, 92, 92, 92, 0, - 92, 0, 0, 92, 0, 0, 0, 0, 0, 92, - 92, 92, 94, 94, 0, 0, 0, 94, 94, 94, - - 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 100, 100, 0, 0, 0, 100, 100, 100, - 100, 0, 100, 0, 0, 100, 0, 0, 0, 0, - 0, 100, 100, 100, 102, 102, 0, 0, 0, 102, - 102, 102, 102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 102, 104, 104, 0, 0, 0, 104, - 104, 104, 104, 0, 104, 0, 0, 104, 0, 0, - 0, 0, 0, 104, 104, 104, 106, 106, 0, 0, - 0, 106, 106, 106, 106, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 106, 108, 108, 0, 0, - - 0, 108, 108, 108, 108, 0, 108, 0, 0, 108, - 0, 0, 0, 0, 0, 108, 108, 108, 110, 110, - 0, 0, 0, 110, 110, 110, 110, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 110, 112, 0, - 112, 112, 0, 0, 0, 0, 0, 0, 0, 0, - 112, 0, 0, 112, 0, 0, 0, 0, 0, 0, - 112, 112, 148, 148, 148, 148, 149, 149, 149, 149, - 150, 150, 151, 0, 151, 151, 152, 0, 152, 152, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147 - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -extern int parser__flex_debug; -int parser__flex_debug = 0; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -char *parser_text; -#line 1 "parser.l" -/* -*-C-*- - * IDL Compiler - * - * Copyright 2002 Ove Kaaven - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ -#define YY_NO_INPUT 1 - - - - - -#line 43 "parser.l" - -#include "config.h" -#include "wine/port.h" - -#include -#include -#include -#include -#include -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#else -#define YY_NO_UNISTD_H -#endif - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "wine/wpp.h" - -#include "parser.tab.h" - -static void addcchar(char c); -static char *get_buffered_cstring(void); - -static char *cbuffer; -static int cbufidx; -static int cbufalloc = 0; - -static int kw_token(const char *kw); -static int attr_token(const char *kw); - -#define MAX_IMPORT_DEPTH 10 -struct { - YY_BUFFER_STATE state; - char *input_name; - int line_number; - char *temp_name; -} import_stack[MAX_IMPORT_DEPTH]; -int import_stack_ptr = 0; - -/* converts an integer in string form to an unsigned long and prints an error - * on overflow */ -static unsigned int xstrtoul(const char *nptr, char **endptr, int base) -{ - unsigned long val; - - errno = 0; - val = strtoul(nptr, endptr, base); - if ((val == ULONG_MAX && errno == ERANGE) || ((unsigned int)val != val)) - error_loc("integer constant %s is too large\n", nptr); - return val; -} - -UUID *parse_uuid(const char *u) -{ - UUID* uuid = xmalloc(sizeof(UUID)); - char b[3]; - /* it would be nice to use UuidFromStringA */ - uuid->Data1 = strtoul(u, NULL, 16); - uuid->Data2 = strtoul(u+9, NULL, 16); - uuid->Data3 = strtoul(u+14, NULL, 16); - b[2] = 0; - memcpy(b, u+19, 2); uuid->Data4[0] = strtoul(b, NULL, 16); - memcpy(b, u+21, 2); uuid->Data4[1] = strtoul(b, NULL, 16); - memcpy(b, u+24, 2); uuid->Data4[2] = strtoul(b, NULL, 16); - memcpy(b, u+26, 2); uuid->Data4[3] = strtoul(b, NULL, 16); - memcpy(b, u+28, 2); uuid->Data4[4] = strtoul(b, NULL, 16); - memcpy(b, u+30, 2); uuid->Data4[5] = strtoul(b, NULL, 16); - memcpy(b, u+32, 2); uuid->Data4[6] = strtoul(b, NULL, 16); - memcpy(b, u+34, 2); uuid->Data4[7] = strtoul(b, NULL, 16); - return uuid; -} - -/* - ************************************************************************** - * The flexer starts here - ************************************************************************** - */ -#line 745 "parser.yy.c" - -#define INITIAL 0 -#define QUOTE 1 -#define WSTRQUOTE 2 -#define ATTR 3 -#define PP_LINE 4 -#define SQUOTE 5 - -#ifndef YY_NO_UNISTD_H -/* Special case for "unistd.h", since it is non-ANSI. We include it way - * down here because we want the user's section 1 to have been scanned first. - * The user has a chance to override it with an option. - */ -#include -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -static int yy_init_globals (void ); - -/* Accessor methods to globals. - These are made visible to non-reentrant scanners for convenience. */ - -int parser_lex_destroy (void ); - -int parser_get_debug (void ); - -void parser_set_debug (int debug_flag ); - -YY_EXTRA_TYPE parser_get_extra (void ); - -void parser_set_extra (YY_EXTRA_TYPE user_defined ); - -FILE *parser_get_in (void ); - -void parser_set_in (FILE * in_str ); - -FILE *parser_get_out (void ); - -void parser_set_out (FILE * out_str ); - -int parser_get_leng (void ); - -char *parser_get_text (void ); - -int parser_get_lineno (void ); - -void parser_set_lineno (int line_number ); - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int parser_wrap (void ); -#else -extern int parser_wrap (void ); -#endif -#endif - -#ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); -#endif - -#ifndef YY_NO_INPUT - -#ifdef __cplusplus -static int yyinput (void ); -#else -static int input (void ); -#endif - -#endif - - static int yy_start_stack_ptr = 0; - static int yy_start_stack_depth = 0; - static int *yy_start_stack = NULL; - - static void yy_push_state (int new_state ); - - static void yy_pop_state (void ); - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#define YY_READ_BUF_SIZE 8192 -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO fwrite( parser_text, parser_leng, 1, parser_out ) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ - if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ - { \ - int c = '*'; \ - int n; \ - for ( n = 0; n < max_size && \ - (c = getc( parser_in )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( parser_in ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, parser_in))==0 && ferror(parser_in)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(parser_in); \ - } \ - }\ -\ - -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -#endif - -/* end tables serialization structures and prototypes */ - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL_IS_OURS 1 - -extern int parser_lex (void); - -#define YY_DECL int parser_lex (void) -#endif /* !YY_DECL */ - -/* Code executed at the beginning of each rule, after parser_text and parser_leng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK break; -#endif - -#define YY_RULE_SETUP \ - if ( parser_leng > 0 ) \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ - (parser_text[parser_leng - 1] == '\n'); \ - YY_USER_ACTION - -/** The main scanner function which does all the work. - */ -YY_DECL -{ - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - -#line 127 "parser.l" - -#line 943 "parser.yy.c" - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! parser_in ) - parser_in = stdin; - - if ( ! parser_out ) - parser_out = stdout; - - if ( ! YY_CURRENT_BUFFER ) { - parser_ensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - parser__create_buffer(parser_in,YY_BUF_SIZE ); - } - - parser__load_buffer_state( ); - } - - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = (yy_c_buf_p); - - /* Support of parser_text. */ - *yy_cp = (yy_hold_char); - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = (yy_start); - yy_current_state += YY_AT_BOL(); -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 148 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_current_state != 147 ); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - -case 1: -YY_RULE_SETUP -#line 128 "parser.l" -yy_push_state(PP_LINE); - YY_BREAK -case 2: -YY_RULE_SETUP -#line 129 "parser.l" -{ - int lineno; - char *cptr, *fname; - yy_pop_state(); - lineno = (int)strtol(parser_text, &cptr, 10); - if(!lineno) - error_loc("Malformed '#...' line-directive; invalid linenumber\n"); - fname = strchr(cptr, '"'); - if(!fname) - error_loc("Malformed '#...' line-directive; missing filename\n"); - fname++; - cptr = strchr(fname, '"'); - if(!cptr) - error_loc("Malformed '#...' line-directive; missing terminating \"\n"); - *cptr = '\0'; - line_number = lineno - 1; /* We didn't read the newline */ - input_name = xstrdup(fname); - } - YY_BREAK -case 3: -YY_RULE_SETUP -#line 147 "parser.l" -yy_push_state(QUOTE); cbufidx = 0; - YY_BREAK -case 4: -YY_RULE_SETUP -#line 148 "parser.l" -{ - yy_pop_state(); - parser_lval.str = get_buffered_cstring(); - return aSTRING; - } - YY_BREAK -case 5: -YY_RULE_SETUP -#line 153 "parser.l" -yy_push_state(WSTRQUOTE); cbufidx = 0; - YY_BREAK -case 6: -YY_RULE_SETUP -#line 154 "parser.l" -{ - yy_pop_state(); - parser_lval.str = get_buffered_cstring(); - return aWSTRING; - } - YY_BREAK -case 7: -YY_RULE_SETUP -#line 159 "parser.l" -yy_push_state(SQUOTE); cbufidx = 0; - YY_BREAK -case 8: -YY_RULE_SETUP -#line 160 "parser.l" -{ - yy_pop_state(); - parser_lval.str = get_buffered_cstring(); - return aSQSTRING; - } - YY_BREAK -case 9: -#line 166 "parser.l" -case 10: -YY_RULE_SETUP -#line 166 "parser.l" -addcchar(parser_text[1]); - YY_BREAK -case 11: -YY_RULE_SETUP -#line 167 "parser.l" -addcchar(parser_text[1]); - YY_BREAK -case 12: -YY_RULE_SETUP -#line 168 "parser.l" -addcchar('\\'); addcchar(parser_text[1]); - YY_BREAK -case 13: -YY_RULE_SETUP -#line 169 "parser.l" -addcchar(parser_text[0]); - YY_BREAK -case 14: -YY_RULE_SETUP -#line 170 "parser.l" -yy_push_state(ATTR); return '['; - YY_BREAK -case 15: -YY_RULE_SETUP -#line 171 "parser.l" -yy_pop_state(); return ']'; - YY_BREAK -case 16: -YY_RULE_SETUP -#line 172 "parser.l" -return attr_token(parser_text); - YY_BREAK -case 17: -YY_RULE_SETUP -#line 173 "parser.l" -{ - parser_lval.uuid = parse_uuid(parser_text); - return aUUID; - } - YY_BREAK -case 18: -YY_RULE_SETUP -#line 177 "parser.l" -{ - parser_lval.num = xstrtoul(parser_text, NULL, 0); - return aHEXNUM; - } - YY_BREAK -case 19: -YY_RULE_SETUP -#line 181 "parser.l" -{ - parser_lval.num = xstrtoul(parser_text, NULL, 0); - return aNUM; - } - YY_BREAK -case 20: -YY_RULE_SETUP -#line 185 "parser.l" -{ - parser_lval.dbl = strtod(parser_text, NULL); - return aDOUBLE; - } - YY_BREAK -case 21: -*yy_cp = (yy_hold_char); /* undo effects of setting up parser_text */ -(yy_c_buf_p) = yy_cp -= 1; -YY_DO_BEFORE_ACTION; /* set up parser_text again */ -YY_RULE_SETUP -#line 189 "parser.l" -return tSAFEARRAY; - YY_BREAK -case 22: -YY_RULE_SETUP -#line 190 "parser.l" -return kw_token(parser_text); - YY_BREAK -case 23: -/* rule 23 can match eol */ -YY_RULE_SETUP -#line 191 "parser.l" -line_number++; - YY_BREAK -case 24: -YY_RULE_SETUP -#line 192 "parser.l" - - YY_BREAK -case 25: -YY_RULE_SETUP -#line 193 "parser.l" -return SHL; - YY_BREAK -case 26: -YY_RULE_SETUP -#line 194 "parser.l" -return SHR; - YY_BREAK -case 27: -YY_RULE_SETUP -#line 195 "parser.l" -return MEMBERPTR; - YY_BREAK -case 28: -YY_RULE_SETUP -#line 196 "parser.l" -return EQUALITY; - YY_BREAK -case 29: -YY_RULE_SETUP -#line 197 "parser.l" -return INEQUALITY; - YY_BREAK -case 30: -YY_RULE_SETUP -#line 198 "parser.l" -return GREATEREQUAL; - YY_BREAK -case 31: -YY_RULE_SETUP -#line 199 "parser.l" -return LESSEQUAL; - YY_BREAK -case 32: -YY_RULE_SETUP -#line 200 "parser.l" -return LOGICALOR; - YY_BREAK -case 33: -YY_RULE_SETUP -#line 201 "parser.l" -return LOGICALAND; - YY_BREAK -case 34: -YY_RULE_SETUP -#line 202 "parser.l" -return ELLIPSIS; - YY_BREAK -case 35: -YY_RULE_SETUP -#line 203 "parser.l" -return parser_text[0]; - YY_BREAK -case YY_STATE_EOF(INITIAL): -case YY_STATE_EOF(QUOTE): -case YY_STATE_EOF(WSTRQUOTE): -case YY_STATE_EOF(ATTR): -case YY_STATE_EOF(PP_LINE): -case YY_STATE_EOF(SQUOTE): -#line 204 "parser.l" -{ - if (import_stack_ptr) - return aEOF; - else yyterminate(); - } - YY_BREAK -case 36: -YY_RULE_SETUP -#line 209 "parser.l" -ECHO; - YY_BREAK -#line 1258 "parser.yy.c" - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = (yy_hold_char); - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed parser_in at a new source and called - * parser_lex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = parser_in; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++(yy_c_buf_p); - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_END_OF_FILE: - { - (yy_did_buffer_switch_on_eof) = 0; - - if ( parser_wrap( ) ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * parser_text, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = - (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - (yy_c_buf_p) = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of parser_lex */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ -static int yy_get_next_buffer (void) -{ - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - parser_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; - - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), (size_t) num_to_read ); - - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - if ( (yy_n_chars) == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - parser_restart(parser_in ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) parser_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } - - (yy_n_chars) += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - - static yy_state_type yy_get_previous_state (void) -{ - register yy_state_type yy_current_state; - register char *yy_cp; - - yy_current_state = (yy_start); - yy_current_state += YY_AT_BOL(); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 148 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) -{ - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 148 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 147); - - return yy_is_jam ? 0 : yy_current_state; -} - -#ifndef YY_NO_INPUT -#ifdef __cplusplus - static int yyinput (void) -#else - static int input (void) -#endif - -{ - int c; - - *(yy_c_buf_p) = (yy_hold_char); - - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - /* This was really a NUL. */ - *(yy_c_buf_p) = '\0'; - - else - { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - parser_restart(parser_in ); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( parser_wrap( ) ) - return EOF; - - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = (yytext_ptr) + offset; - break; - } - } - } - - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve parser_text */ - (yy_hold_char) = *++(yy_c_buf_p); - - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); - - return c; -} -#endif /* ifndef YY_NO_INPUT */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - * - * @note This function does not reset the start condition to @c INITIAL . - */ - void parser_restart (FILE * input_file ) -{ - - if ( ! YY_CURRENT_BUFFER ){ - parser_ensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - parser__create_buffer(parser_in,YY_BUF_SIZE ); - } - - parser__init_buffer(YY_CURRENT_BUFFER,input_file ); - parser__load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ - void parser__switch_to_buffer (YY_BUFFER_STATE new_buffer ) -{ - - /* TODO. We should be able to replace this entire function body - * with - * parser_pop_buffer_state(); - * parser_push_buffer_state(new_buffer); - */ - parser_ensure_buffer_stack (); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - parser__load_buffer_state( ); - - /* We don't actually know whether we did this switch during - * EOF (parser_wrap()) processing, but the only time this flag - * is looked at is after parser_wrap() is called, so it's safe - * to go ahead and always set it. - */ - (yy_did_buffer_switch_on_eof) = 1; -} - -static void parser__load_buffer_state (void) -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - parser_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - (yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * - * @return the allocated buffer state. - */ - YY_BUFFER_STATE parser__create_buffer (FILE * file, int size ) -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) parser_alloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in parser__create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) parser_alloc(b->yy_buf_size + 2 ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in parser__create_buffer()" ); - - b->yy_is_our_buffer = 1; - - parser__init_buffer(b,file ); - - return b; -} - -/** Destroy the buffer. - * @param b a buffer created with parser__create_buffer() - * - */ - void parser__delete_buffer (YY_BUFFER_STATE b ) -{ - - if ( ! b ) - return; - - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - parser_free((void *) b->yy_ch_buf ); - - parser_free((void *) b ); -} - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a parser_restart() or at EOF. - */ - static void parser__init_buffer (YY_BUFFER_STATE b, FILE * file ) - -{ - int oerrno = errno; - - parser__flush_buffer(b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - - /* If b is the current buffer, then parser__init_buffer was _probably_ - * called from parser_restart() or through yy_get_next_buffer. - * In that case, we don't want to reset the lineno or column. - */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = 0; - - errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * - */ - void parser__flush_buffer (YY_BUFFER_STATE b ) -{ - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == YY_CURRENT_BUFFER ) - parser__load_buffer_state( ); -} - -/** Pushes the new state onto the stack. The new state becomes - * the current state. This function will allocate the stack - * if necessary. - * @param new_buffer The new state. - * - */ -void parser_push_buffer_state (YY_BUFFER_STATE new_buffer ) -{ - if (new_buffer == NULL) - return; - - parser_ensure_buffer_stack(); - - /* This block is copied from parser__switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - (yy_buffer_stack_top)++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from parser__switch_to_buffer. */ - parser__load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; -} - -/** Removes and deletes the top of the stack, if present. - * The next element becomes the new top. - * - */ -void parser_pop_buffer_state (void) -{ - if (!YY_CURRENT_BUFFER) - return; - - parser__delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - if ((yy_buffer_stack_top) > 0) - --(yy_buffer_stack_top); - - if (YY_CURRENT_BUFFER) { - parser__load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; - } -} - -/* Allocates the stack if it does not exist. - * Guarantees space for at least one push. - */ -static void parser_ensure_buffer_stack (void) -{ - int num_to_alloc; - - if (!(yy_buffer_stack)) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)parser_alloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in parser_ensure_buffer_stack()" ); - - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - (yy_buffer_stack_max) = num_to_alloc; - (yy_buffer_stack_top) = 0; - return; - } - - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)parser_realloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in parser_ensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); - (yy_buffer_stack_max) = num_to_alloc; - } -} - -/** Setup the input buffer state to scan directly from a user-specified character buffer. - * @param base the character buffer - * @param size the size in bytes of the character buffer - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE parser__scan_buffer (char * base, yy_size_t size ) -{ - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) parser_alloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in parser__scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - parser__switch_to_buffer(b ); - - return b; -} - -/** Setup the input buffer state to scan a string. The next call to parser_lex() will - * scan from a @e copy of @a str. - * @param yystr a NUL-terminated string to scan - * - * @return the newly allocated buffer state object. - * @note If you want to scan bytes that may contain NUL values, then use - * parser__scan_bytes() instead. - */ -YY_BUFFER_STATE parser__scan_string (yyconst char * yystr ) -{ - - return parser__scan_bytes(yystr,strlen(yystr) ); -} - -/** Setup the input buffer state to scan the given bytes. The next call to parser_lex() will - * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE parser__scan_bytes (yyconst char * yybytes, int _yybytes_len ) -{ - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) parser_alloc(n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in parser__scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = parser__scan_buffer(buf,n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in parser__scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; -} - - static void yy_push_state (int new_state ) -{ - if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) - { - yy_size_t new_size; - - (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); - - if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) parser_alloc(new_size ); - - else - (yy_start_stack) = (int *) parser_realloc((void *) (yy_start_stack),new_size ); - - if ( ! (yy_start_stack) ) - YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); - } - - (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - - BEGIN(new_state); -} - - static void yy_pop_state (void) -{ - if ( --(yy_start_stack_ptr) < 0 ) - YY_FATAL_ERROR( "start-condition stack underflow" ); - - BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -static void yy_fatal_error (yyconst char* msg ) -{ - (void) fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); -} - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up parser_text. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - parser_text[parser_leng] = (yy_hold_char); \ - (yy_c_buf_p) = parser_text + yyless_macro_arg; \ - (yy_hold_char) = *(yy_c_buf_p); \ - *(yy_c_buf_p) = '\0'; \ - parser_leng = yyless_macro_arg; \ - } \ - while ( 0 ) - -/* Accessor methods (get/set functions) to struct members. */ - -/** Get the current line number. - * - */ -int parser_get_lineno (void) -{ - - return parser_lineno; -} - -/** Get the input stream. - * - */ -FILE *parser_get_in (void) -{ - return parser_in; -} - -/** Get the output stream. - * - */ -FILE *parser_get_out (void) -{ - return parser_out; -} - -/** Get the length of the current token. - * - */ -int parser_get_leng (void) -{ - return parser_leng; -} - -/** Get the current token. - * - */ - -char *parser_get_text (void) -{ - return parser_text; -} - -/** Set the current line number. - * @param line_number - * - */ -void parser_set_lineno (int line_number ) -{ - - parser_lineno = line_number; -} - -/** Set the input stream. This does not discard the current - * input buffer. - * @param in_str A readable stream. - * - * @see parser__switch_to_buffer - */ -void parser_set_in (FILE * in_str ) -{ - parser_in = in_str ; -} - -void parser_set_out (FILE * out_str ) -{ - parser_out = out_str ; -} - -int parser_get_debug (void) -{ - return parser__flex_debug; -} - -void parser_set_debug (int bdebug ) -{ - parser__flex_debug = bdebug ; -} - -static int yy_init_globals (void) -{ - /* Initialization is the same as for the non-reentrant scanner. - * This function is called from parser_lex_destroy(), so don't allocate here. - */ - - (yy_buffer_stack) = 0; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; - (yy_init) = 0; - (yy_start) = 0; - - (yy_start_stack_ptr) = 0; - (yy_start_stack_depth) = 0; - (yy_start_stack) = NULL; - -/* Defined in main.c */ -#ifdef YY_STDINIT - parser_in = stdin; - parser_out = stdout; -#else - parser_in = (FILE *) 0; - parser_out = (FILE *) 0; -#endif - - /* For future reference: Set errno on error, since we are called by - * parser_lex_init() - */ - return 0; -} - -/* parser_lex_destroy is for both reentrant and non-reentrant scanners. */ -int parser_lex_destroy (void) -{ - - /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - parser__delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - parser_pop_buffer_state(); - } - - /* Destroy the stack itself. */ - parser_free((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - - /* Destroy the start condition stack. */ - parser_free((yy_start_stack) ); - (yy_start_stack) = NULL; - - /* Reset the globals. This is important in a non-reentrant scanner so the next time - * parser_lex() is called, initialization will occur. */ - yy_init_globals( ); - - return 0; -} - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) -{ - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) -{ - register int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *parser_alloc (yy_size_t size ) -{ - return (void *) malloc( size ); -} - -void *parser_realloc (void * ptr, yy_size_t size ) -{ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); -} - -void parser_free (void * ptr ) -{ - free( (char *) ptr ); /* see parser_realloc() for (char *) cast */ -} - -#define YYTABLES_NAME "yytables" - -#line 209 "parser.l" - - - -#ifndef parser_wrap -int parser_wrap(void) -{ - return 1; -} -#endif - -struct keyword { - const char *kw; - int token; -}; - -/* This table MUST be alphabetically sorted on the kw field */ -static const struct keyword keywords[] = { - {"FALSE", tFALSE}, - {"NULL", tNULL}, - {"TRUE", tTRUE}, - {"__cdecl", tCDECL}, - {"__fastcall", tFASTCALL}, - {"__int3264", tINT3264}, - {"__int64", tINT64}, - {"__pascal", tPASCAL}, - {"__stdcall", tSTDCALL}, - {"_cdecl", tCDECL}, - {"_fastcall", tFASTCALL}, - {"_pascal", tPASCAL}, - {"_stdcall", tSTDCALL}, - {"boolean", tBOOLEAN}, - {"byte", tBYTE}, - {"case", tCASE}, - {"cdecl", tCDECL}, - {"char", tCHAR}, - {"coclass", tCOCLASS}, - {"const", tCONST}, - {"cpp_quote", tCPPQUOTE}, - {"default", tDEFAULT}, - {"dispinterface", tDISPINTERFACE}, - {"double", tDOUBLE}, - {"enum", tENUM}, - {"error_status_t", tERRORSTATUST}, - {"extern", tEXTERN}, - {"float", tFLOAT}, - {"handle_t", tHANDLET}, - {"hyper", tHYPER}, - {"import", tIMPORT}, - {"importlib", tIMPORTLIB}, - {"inline", tINLINE}, - {"int", tINT}, - {"interface", tINTERFACE}, - {"library", tLIBRARY}, - {"long", tLONG}, - {"methods", tMETHODS}, - {"module", tMODULE}, - {"pascal", tPASCAL}, - {"properties", tPROPERTIES}, - {"register", tREGISTER}, - {"short", tSHORT}, - {"signed", tSIGNED}, - {"sizeof", tSIZEOF}, - {"small", tSMALL}, - {"static", tSTATIC}, - {"stdcall", tSTDCALL}, - {"struct", tSTRUCT}, - {"switch", tSWITCH}, - {"typedef", tTYPEDEF}, - {"union", tUNION}, - {"unsigned", tUNSIGNED}, - {"void", tVOID}, - {"wchar_t", tWCHAR}, -}; -#define NKEYWORDS (sizeof(keywords)/sizeof(keywords[0])) - -/* keywords only recognized in attribute lists - * This table MUST be alphabetically sorted on the kw field - */ -static const struct keyword attr_keywords[] = -{ - {"aggregatable", tAGGREGATABLE}, - {"allocate", tALLOCATE}, - {"annotation", tANNOTATION}, - {"apartment", tAPARTMENT}, - {"appobject", tAPPOBJECT}, - {"async", tASYNC}, - {"async_uuid", tASYNCUUID}, - {"auto_handle", tAUTOHANDLE}, - {"bindable", tBINDABLE}, - {"both", tBOTH}, - {"broadcast", tBROADCAST}, - {"byte_count", tBYTECOUNT}, - {"call_as", tCALLAS}, - {"callback", tCALLBACK}, - {"code", tCODE}, - {"comm_status", tCOMMSTATUS}, - {"context_handle", tCONTEXTHANDLE}, - {"context_handle_noserialize", tCONTEXTHANDLENOSERIALIZE}, - {"context_handle_serialize", tCONTEXTHANDLENOSERIALIZE}, - {"control", tCONTROL}, - {"decode", tDECODE}, - {"defaultbind", tDEFAULTBIND}, - {"defaultcollelem", tDEFAULTCOLLELEM}, - {"defaultvalue", tDEFAULTVALUE}, - {"defaultvtable", tDEFAULTVTABLE}, - {"disable_consistency_check", tDISABLECONSISTENCYCHECK}, - {"displaybind", tDISPLAYBIND}, - {"dllname", tDLLNAME}, - {"dual", tDUAL}, - {"enable_allocate", tENABLEALLOCATE}, - {"encode", tENCODE}, - {"endpoint", tENDPOINT}, - {"entry", tENTRY}, - {"explicit_handle", tEXPLICITHANDLE}, - {"fault_status", tFAULTSTATUS}, - {"force_allocate", tFORCEALLOCATE}, - {"free", tFREE}, - {"handle", tHANDLE}, - {"helpcontext", tHELPCONTEXT}, - {"helpfile", tHELPFILE}, - {"helpstring", tHELPSTRING}, - {"helpstringcontext", tHELPSTRINGCONTEXT}, - {"helpstringdll", tHELPSTRINGDLL}, - {"hidden", tHIDDEN}, - {"id", tID}, - {"idempotent", tIDEMPOTENT}, - {"ignore", tIGNORE}, - {"iid_is", tIIDIS}, - {"immediatebind", tIMMEDIATEBIND}, - {"implicit_handle", tIMPLICITHANDLE}, - {"in", tIN}, - {"in_line", tIN_LINE}, - {"input_sync", tINPUTSYNC}, - {"lcid", tLCID}, - {"length_is", tLENGTHIS}, - {"licensed", tLICENSED}, - {"local", tLOCAL}, - {"maybe", tMAYBE}, - {"message", tMESSAGE}, - {"neutral", tNEUTRAL}, - {"nocode", tNOCODE}, - {"nonbrowsable", tNONBROWSABLE}, - {"noncreatable", tNONCREATABLE}, - {"nonextensible", tNONEXTENSIBLE}, - {"notify", tNOTIFY}, - {"notify_flag", tNOTIFYFLAG}, - {"object", tOBJECT}, - {"odl", tODL}, - {"oleautomation", tOLEAUTOMATION}, - {"optimize", tOPTIMIZE}, - {"optional", tOPTIONAL}, - {"out", tOUT}, - {"partial_ignore", tPARTIALIGNORE}, - {"pointer_default", tPOINTERDEFAULT}, - {"progid", tPROGID}, - {"propget", tPROPGET}, - {"propput", tPROPPUT}, - {"propputref", tPROPPUTREF}, - {"proxy", tPROXY}, - {"ptr", tPTR}, - {"public", tPUBLIC}, - {"range", tRANGE}, - {"readonly", tREADONLY}, - {"ref", tREF}, - {"represent_as", tREPRESENTAS}, - {"requestedit", tREQUESTEDIT}, - {"restricted", tRESTRICTED}, - {"retval", tRETVAL}, - {"single", tSINGLE}, - {"size_is", tSIZEIS}, - {"source", tSOURCE}, - {"strict_context_handle", tSTRICTCONTEXTHANDLE}, - {"string", tSTRING}, - {"switch_is", tSWITCHIS}, - {"switch_type", tSWITCHTYPE}, - {"threading", tTHREADING}, - {"transmit_as", tTRANSMITAS}, - {"uidefault", tUIDEFAULT}, - {"unique", tUNIQUE}, - {"user_marshal", tUSERMARSHAL}, - {"usesgetlasterror", tUSESGETLASTERROR}, - {"uuid", tUUID}, - {"v1_enum", tV1ENUM}, - {"vararg", tVARARG}, - {"version", tVERSION}, - {"vi_progid", tVIPROGID}, - {"wire_marshal", tWIREMARSHAL}, -}; - -/* attributes TODO: - custom - first_is - last_is - max_is - min_is -*/ - -#define KWP(p) ((const struct keyword *)(p)) - -static int kw_cmp_func(const void *s1, const void *s2) -{ - return strcmp(KWP(s1)->kw, KWP(s2)->kw); -} - -static int kw_token(const char *kw) -{ - struct keyword key, *kwp; - key.kw = kw; - kwp = bsearch(&key, keywords, NKEYWORDS, sizeof(keywords[0]), kw_cmp_func); - if (kwp) { - parser_lval.str = xstrdup(kwp->kw); - return kwp->token; - } - parser_lval.str = xstrdup(kw); - return is_type(kw) ? aKNOWNTYPE : aIDENTIFIER; -} - -static int attr_token(const char *kw) -{ - struct keyword key, *kwp; - key.kw = kw; - kwp = bsearch(&key, attr_keywords, sizeof(attr_keywords)/sizeof(attr_keywords[0]), - sizeof(attr_keywords[0]), kw_cmp_func); - if (kwp) { - parser_lval.str = xstrdup(kwp->kw); - return kwp->token; - } - return kw_token(kw); -} - -static void addcchar(char c) -{ - if(cbufidx >= cbufalloc) - { - cbufalloc += 1024; - cbuffer = xrealloc(cbuffer, cbufalloc * sizeof(cbuffer[0])); - if(cbufalloc > 65536) - parser_warning("Reallocating string buffer larger than 64kB\n"); - } - cbuffer[cbufidx++] = c; -} - -static char *get_buffered_cstring(void) -{ - addcchar(0); - return xstrdup(cbuffer); -} - -void pop_import(void) -{ - int ptr = import_stack_ptr-1; - - fclose(parser_in); - parser__delete_buffer(YY_CURRENT_BUFFER ); - parser__switch_to_buffer(import_stack[ptr].state ); - if (temp_name) { - unlink(temp_name); - free(temp_name); - } - temp_name = import_stack[ptr].temp_name; - input_name = import_stack[ptr].input_name; - line_number = import_stack[ptr].line_number; - import_stack_ptr--; -} - -struct imports { - char *name; - struct imports *next; -} *first_import; - -int do_import(char *fname) -{ - FILE *f; - char *path, *name; - struct imports *import; - int ptr = import_stack_ptr; - int ret, fd; - - import = first_import; - while (import && strcmp(import->name, fname)) - import = import->next; - if (import) return 0; /* already imported */ - - import = xmalloc(sizeof(struct imports)); - import->name = xstrdup(fname); - import->next = first_import; - first_import = import; - - /* don't search for a file name with a path in the include directories, - * for compatibility with MIDL */ - if (strchr( fname, '/' ) || strchr( fname, '\\' )) - path = xstrdup( fname ); - else if (!(path = wpp_find_include( fname, input_name ))) - error_loc("Unable to open include file %s\n", fname); - - import_stack[ptr].temp_name = temp_name; - import_stack[ptr].input_name = input_name; - import_stack[ptr].line_number = line_number; - import_stack_ptr++; - input_name = path; - line_number = 1; - - name = xstrdup( "widl.XXXXXX" ); - if((fd = mkstemps( name, 0 )) == -1) - error("Could not generate a temp name from %s\n", name); - - temp_name = name; - if (!(f = fdopen(fd, "wt"))) - error("Could not open fd %s for writing\n", name); - - ret = wpp_parse( path, f ); - fclose( f ); - if (ret) exit(1); - - if((f = fopen(temp_name, "r")) == NULL) - error_loc("Unable to open %s\n", temp_name); - - import_stack[ptr].state = YY_CURRENT_BUFFER; - parser__switch_to_buffer(parser__create_buffer(f,YY_BUF_SIZE)); - return 1; -} - -void abort_import(void) -{ - int ptr; - - for (ptr=0; ptr -#include -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_PROCESS_H -#include -#endif - -/* We need to provide a type for gcc_uint64_t. */ -#ifdef __GNUC__ -__extension__ typedef unsigned long long gcc_uint64_t; -#else -typedef unsigned long gcc_uint64_t; -#endif - -#ifndef TMP_MAX -#define TMP_MAX 16384 -#endif - -/* - -@deftypefn Replacement int mkstemps (char *@var{template}, int @var{suffix_len}) - -Generate a unique temporary file name from @var{template}. -@var{template} has the form: - -@example - @var{path}/ccXXXXXX@var{suffix} -@end example - -@var{suffix_len} tells us how long @var{suffix} is (it can be zero -length). The last six characters of @var{template} before @var{suffix} -must be @samp{XXXXXX}; they are replaced with a string that makes the -filename unique. Returns a file descriptor open on the file for -reading and writing. - -@end deftypefn - -*/ - -int -mkstemps ( - char *template, - int suffix_len) -{ - static const char letters[] - = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - static gcc_uint64_t value; -#ifdef HAVE_GETTIMEOFDAY - struct timeval tv; -#endif - char *XXXXXX; - size_t len; - int count; - - len = strlen (template); - - if ((int) len < 6 + suffix_len - || strncmp (&template[len - 6 - suffix_len], "XXXXXX", 6)) - { - return -1; - } - - XXXXXX = &template[len - 6 - suffix_len]; - -#ifdef HAVE_GETTIMEOFDAY - /* Get some more or less random data. */ - gettimeofday (&tv, NULL); - value += ((gcc_uint64_t) tv.tv_usec << 16) ^ tv.tv_sec ^ getpid (); -#else - value += getpid (); -#endif - - for (count = 0; count < TMP_MAX; ++count) - { - gcc_uint64_t v = value; - int fd; - - /* Fill in the random bits. */ - XXXXXX[0] = letters[v % 62]; - v /= 62; - XXXXXX[1] = letters[v % 62]; - v /= 62; - XXXXXX[2] = letters[v % 62]; - v /= 62; - XXXXXX[3] = letters[v % 62]; - v /= 62; - XXXXXX[4] = letters[v % 62]; - v /= 62; - XXXXXX[5] = letters[v % 62]; - -#ifdef VMS - fd = open (template, O_RDWR|O_CREAT|O_EXCL, 0600, "fop=tmd"); -#else - fd = open (template, O_RDWR|O_CREAT|O_EXCL, 0600); -#endif - if (fd >= 0) - /* The file does not exist. */ - return fd; - - /* This is a random value. It is only necessary that the next - TMP_MAX values generated by adding 7777 to VALUE are different - with (module 2^32). */ - value += 7777; - } - - /* We return the null string if we can't find a unique file name. */ - template[0] = '\0'; - return -1; -} diff --git a/reactos/tools/widl/proxy.c b/reactos/tools/widl/proxy.c deleted file mode 100644 index 3ec4201a016..00000000000 --- a/reactos/tools/widl/proxy.c +++ /dev/null @@ -1,1049 +0,0 @@ -/* - * IDL Compiler - * - * Copyright 2002 Ove Kaaven - * Copyright 2004 Mike McCormack - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" -#include "wine/port.h" - -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "header.h" -#include "typegen.h" -#include "expr.h" - -#define END_OF_LIST(list) \ - do { \ - if (list) { \ - while (NEXT_LINK(list)) \ - list = NEXT_LINK(list); \ - } \ - } while(0) - -static FILE* proxy; -static int indent = 0; - -static void print_proxy( const char *format, ... ) __attribute__((format (printf, 1, 2))); -static void print_proxy( const char *format, ... ) -{ - va_list va; - va_start( va, format ); - print( proxy, indent, format, va ); - va_end( va ); -} - -static void write_stubdescproto(void) -{ - print_proxy( "static const MIDL_STUB_DESC Object_StubDesc;\n"); - print_proxy( "\n"); -} - -static void write_stubdesc(int expr_eval_routines) -{ - print_proxy( "static const MIDL_STUB_DESC Object_StubDesc =\n{\n"); - indent++; - print_proxy( "0,\n"); - print_proxy( "NdrOleAllocate,\n"); - print_proxy( "NdrOleFree,\n"); - print_proxy( "{0}, 0, 0, %s, 0,\n", expr_eval_routines ? "ExprEvalRoutines" : "0"); - print_proxy( "__MIDL_TypeFormatString.Format,\n"); - print_proxy( "1, /* -error bounds_check flag */\n"); - print_proxy( "0x%x, /* Ndr library version */\n", get_stub_mode() == MODE_Oif ? 0x50002 : 0x10001); - print_proxy( "0,\n"); - print_proxy( "0x50100a4, /* MIDL Version 5.1.164 */\n"); - print_proxy( "0,\n"); - print_proxy("%s,\n", list_empty(&user_type_list) ? "0" : "UserMarshalRoutines"); - print_proxy( "0, /* notify & notify_flag routine table */\n"); - print_proxy( "1, /* Flags */\n"); - print_proxy( "0, /* Reserved3 */\n"); - print_proxy( "0, /* Reserved4 */\n"); - print_proxy( "0 /* Reserved5 */\n"); - indent--; - print_proxy( "};\n"); - print_proxy( "\n"); -} - -static void init_proxy(const statement_list_t *stmts) -{ - if (proxy) return; - if(!(proxy = fopen(proxy_name, "w"))) - error("Could not open %s for output\n", proxy_name); - print_proxy( "/*** Autogenerated by WIDL %s from %s - Do not edit ***/\n", PACKAGE_VERSION, input_name); - print_proxy( "\n"); - print_proxy( "#define __midl_proxy\n"); - print_proxy( "#include \"objbase.h\"\n"); - print_proxy( "\n"); - print_proxy( "#ifndef DECLSPEC_HIDDEN\n"); - print_proxy( "#define DECLSPEC_HIDDEN\n"); - print_proxy( "#endif\n"); - print_proxy( "\n"); -} - -static void clear_output_vars( const var_list_t *args ) -{ - const var_t *arg; - - if (!args) return; - LIST_FOR_EACH_ENTRY( arg, args, const var_t, entry ) - { - if (is_attr(arg->attrs, ATTR_IN)) continue; - if (!is_attr(arg->attrs, ATTR_OUT)) continue; - if (is_ptr(arg->type)) - { - if (type_get_type(type_pointer_get_ref(arg->type)) == TYPE_BASIC) continue; - if (type_get_type(type_pointer_get_ref(arg->type)) == TYPE_ENUM) continue; - } - print_proxy( "if (%s) MIDL_memset( %s, 0, sizeof( *%s ));\n", arg->name, arg->name, arg->name ); - } -} - -static int need_delegation(const type_t *iface) -{ - const type_t *parent = type_iface_get_inherit( iface ); - return parent && type_iface_get_inherit(parent) && (parent->ignore || is_local( parent->attrs )); -} - -static int get_delegation_indirect(const type_t *iface, const type_t ** delegate_to) -{ - const type_t * cur_iface; - for (cur_iface = iface; cur_iface != NULL; cur_iface = type_iface_get_inherit(cur_iface)) - if (need_delegation(cur_iface)) - { - if(delegate_to) - *delegate_to = type_iface_get_inherit(cur_iface); - return 1; - } - return 0; -} - -static int need_delegation_indirect(const type_t *iface) -{ - return get_delegation_indirect(iface, NULL); -} - -static void free_variable( const var_t *arg, const char *local_var_prefix ) -{ - unsigned int type_offset = arg->typestring_offset; - type_t *type = arg->type; - - write_parameter_conf_or_var_exprs(proxy, indent, local_var_prefix, PHASE_FREE, arg, FALSE); - - switch (typegen_detect_type(type, arg->attrs, TDT_IGNORE_STRINGS)) - { - case TGT_ENUM: - case TGT_BASIC: - break; - - case TGT_STRUCT: - if (get_struct_fc(type) != RPC_FC_STRUCT) - print_proxy("/* FIXME: %s code for %s struct type 0x%x missing */\n", __FUNCTION__, arg->name, get_struct_fc(type) ); - break; - - case TGT_IFACE_POINTER: - case TGT_POINTER: - case TGT_ARRAY: - print_proxy( "NdrClearOutParameters( &__frame->_StubMsg, "); - fprintf(proxy, "&__MIDL_TypeFormatString.Format[%u], ", type_offset ); - fprintf(proxy, "(void *)%s );\n", arg->name ); - break; - - default: - print_proxy("/* FIXME: %s code for %s type %d missing */\n", __FUNCTION__, arg->name, type_get_type(type) ); - } -} - -static void proxy_free_variables( var_list_t *args, const char *local_var_prefix ) -{ - const var_t *arg; - - if (!args) return; - LIST_FOR_EACH_ENTRY( arg, args, const var_t, entry ) - if (is_attr(arg->attrs, ATTR_OUT)) - { - free_variable( arg, local_var_prefix ); - fprintf(proxy, "\n"); - } -} - -static void gen_proxy(type_t *iface, const var_t *func, int idx, - unsigned int proc_offset) -{ - var_t *retval = type_function_get_retval(func->type); - int has_ret = !is_void(retval->type); - int has_full_pointer = is_full_pointer_function(func); - const char *callconv = get_attrp(func->type->attrs, ATTR_CALLCONV); - const var_list_t *args = type_get_function_args(func->type); - if (!callconv) callconv = "STDMETHODCALLTYPE"; - - indent = 0; - if (is_interpreted_func( iface, func )) - { - if (get_stub_mode() == MODE_Oif && !is_callas( func->attrs )) return; - write_type_decl_left(proxy, retval->type); - print_proxy( " %s %s_%s_Proxy(\n", callconv, iface->name, get_name(func)); - write_args(proxy, args, iface->name, 1, TRUE); - print_proxy( ")\n"); - write_client_call_routine( proxy, iface, func, "Object", proc_offset ); - return; - } - print_proxy( "static void __finally_%s_%s_Proxy( struct __proxy_frame *__frame )\n", - iface->name, get_name(func) ); - print_proxy( "{\n"); - indent++; - if (has_full_pointer) write_full_pointer_free(proxy, indent, func); - print_proxy( "NdrProxyFreeBuffer( __frame->This, &__frame->_StubMsg );\n" ); - indent--; - print_proxy( "}\n"); - print_proxy( "\n"); - - write_type_decl_left(proxy, retval->type); - print_proxy( " %s %s_%s_Proxy(\n", callconv, iface->name, get_name(func)); - write_args(proxy, args, iface->name, 1, TRUE); - print_proxy( ")\n"); - print_proxy( "{\n"); - indent ++; - print_proxy( "struct __proxy_frame __f, * const __frame = &__f;\n" ); - /* local variables */ - if (has_ret) { - print_proxy( "%s", "" ); - write_type_decl(proxy, retval->type, retval->name); - fprintf( proxy, ";\n" ); - } - print_proxy( "RPC_MESSAGE _RpcMessage;\n" ); - if (has_ret) { - if (decl_indirect(retval->type)) - print_proxy("void *_p_%s = &%s;\n", retval->name, retval->name); - } - print_proxy( "\n"); - - print_proxy( "RpcExceptionInit( __proxy_filter, __finally_%s_%s_Proxy );\n", iface->name, get_name(func) ); - print_proxy( "__frame->This = This;\n" ); - - if (has_full_pointer) - write_full_pointer_init(proxy, indent, func, FALSE); - - /* FIXME: trace */ - clear_output_vars( type_get_function_args(func->type) ); - - print_proxy( "RpcTryExcept\n" ); - print_proxy( "{\n" ); - indent++; - print_proxy( "NdrProxyInitialize(This, &_RpcMessage, &__frame->_StubMsg, &Object_StubDesc, %d);\n", idx); - write_pointer_checks( proxy, indent, func ); - - print_proxy( "RpcTryFinally\n" ); - print_proxy( "{\n" ); - indent++; - - write_remoting_arguments(proxy, indent, func, "", PASS_IN, PHASE_BUFFERSIZE); - - print_proxy( "NdrProxyGetBuffer(This, &__frame->_StubMsg);\n" ); - - write_remoting_arguments(proxy, indent, func, "", PASS_IN, PHASE_MARSHAL); - - print_proxy( "NdrProxySendReceive(This, &__frame->_StubMsg);\n" ); - fprintf(proxy, "\n"); - print_proxy( "__frame->_StubMsg.BufferStart = _RpcMessage.Buffer;\n" ); - print_proxy( "__frame->_StubMsg.BufferEnd = __frame->_StubMsg.BufferStart + _RpcMessage.BufferLength;\n\n" ); - - print_proxy("if ((_RpcMessage.DataRepresentation & 0xffff) != NDR_LOCAL_DATA_REPRESENTATION)\n"); - indent++; - print_proxy("NdrConvert( &__frame->_StubMsg, &__MIDL_ProcFormatString.Format[%u]);\n", proc_offset ); - indent--; - fprintf(proxy, "\n"); - - write_remoting_arguments(proxy, indent, func, "", PASS_OUT, PHASE_UNMARSHAL); - - if (has_ret) - { - if (decl_indirect(retval->type)) - print_proxy("MIDL_memset(&%s, 0, sizeof(%s));\n", retval->name, retval->name); - else if (is_ptr(retval->type) || is_array(retval->type)) - print_proxy("%s = 0;\n", retval->name); - write_remoting_arguments(proxy, indent, func, "", PASS_RETURN, PHASE_UNMARSHAL); - } - - indent--; - print_proxy( "}\n"); - print_proxy( "RpcFinally\n" ); - print_proxy( "{\n" ); - indent++; - print_proxy( "__finally_%s_%s_Proxy( __frame );\n", iface->name, get_name(func) ); - indent--; - print_proxy( "}\n"); - print_proxy( "RpcEndFinally\n" ); - indent--; - print_proxy( "}\n" ); - print_proxy( "RpcExcept(__frame->_StubMsg.dwStubPhase != PROXY_SENDRECEIVE)\n" ); - print_proxy( "{\n" ); - if (has_ret) { - indent++; - proxy_free_variables( type_get_function_args(func->type), "" ); - print_proxy( "_RetVal = NdrProxyErrorHandler(RpcExceptionCode());\n" ); - indent--; - } - print_proxy( "}\n" ); - print_proxy( "RpcEndExcept\n" ); - - if (has_ret) { - print_proxy( "return _RetVal;\n" ); - } - indent--; - print_proxy( "}\n"); - print_proxy( "\n"); -} - -static void gen_stub(type_t *iface, const var_t *func, const char *cas, - unsigned int proc_offset) -{ - const var_t *arg; - int has_ret = !is_void(type_function_get_rettype(func->type)); - int has_full_pointer = is_full_pointer_function(func); - - if (is_interpreted_func( iface, func )) return; - - indent = 0; - print_proxy( "struct __frame_%s_%s_Stub\n{\n", iface->name, get_name(func)); - indent++; - print_proxy( "__DECL_EXCEPTION_FRAME\n" ); - print_proxy( "MIDL_STUB_MESSAGE _StubMsg;\n"); - print_proxy( "%s * _This;\n", iface->name ); - declare_stub_args( proxy, indent, func ); - indent--; - print_proxy( "};\n\n" ); - - print_proxy( "static void __finally_%s_%s_Stub(", iface->name, get_name(func) ); - print_proxy( " struct __frame_%s_%s_Stub *__frame )\n{\n", iface->name, get_name(func) ); - indent++; - write_remoting_arguments(proxy, indent, func, "__frame->", PASS_OUT, PHASE_FREE); - if (has_full_pointer) - write_full_pointer_free(proxy, indent, func); - indent--; - print_proxy( "}\n\n" ); - - print_proxy( "void __RPC_STUB %s_%s_Stub(\n", iface->name, get_name(func)); - indent++; - print_proxy( "IRpcStubBuffer* This,\n"); - print_proxy( "IRpcChannelBuffer *_pRpcChannelBuffer,\n"); - print_proxy( "PRPC_MESSAGE _pRpcMessage,\n"); - print_proxy( "DWORD* _pdwStubPhase)\n"); - indent--; - print_proxy( "{\n"); - indent++; - print_proxy( "struct __frame_%s_%s_Stub __f, * const __frame = &__f;\n\n", - iface->name, get_name(func) ); - - print_proxy("__frame->_This = (%s*)((CStdStubBuffer*)This)->pvServerObject;\n\n", iface->name); - - /* FIXME: trace */ - - print_proxy("NdrStubInitialize(_pRpcMessage, &__frame->_StubMsg, &Object_StubDesc, _pRpcChannelBuffer);\n"); - fprintf(proxy, "\n"); - print_proxy( "RpcExceptionInit( 0, __finally_%s_%s_Stub );\n", iface->name, get_name(func) ); - - write_parameters_init(proxy, indent, func, "__frame->"); - - print_proxy("RpcTryFinally\n"); - print_proxy("{\n"); - indent++; - if (has_full_pointer) - write_full_pointer_init(proxy, indent, func, TRUE); - print_proxy("if ((_pRpcMessage->DataRepresentation & 0xffff) != NDR_LOCAL_DATA_REPRESENTATION)\n"); - indent++; - print_proxy("NdrConvert( &__frame->_StubMsg, &__MIDL_ProcFormatString.Format[%u]);\n", proc_offset ); - indent--; - fprintf(proxy, "\n"); - - write_remoting_arguments(proxy, indent, func, "__frame->", PASS_IN, PHASE_UNMARSHAL); - fprintf(proxy, "\n"); - - assign_stub_out_args( proxy, indent, func, "__frame->" ); - - print_proxy("*_pdwStubPhase = STUB_CALL_SERVER;\n"); - fprintf(proxy, "\n"); - print_proxy( "%s", has_ret ? "__frame->_RetVal = " : "" ); - if (cas) fprintf(proxy, "%s_%s_Stub", iface->name, cas); - else fprintf(proxy, "__frame->_This->lpVtbl->%s", get_name(func)); - fprintf(proxy, "(__frame->_This"); - - if (type_get_function_args(func->type)) - { - LIST_FOR_EACH_ENTRY( arg, type_get_function_args(func->type), const var_t, entry ) - fprintf(proxy, ", %s__frame->%s", is_array(arg->type) && !type_array_is_decl_as_ptr(arg->type) ? "*" :"" , arg->name); - } - fprintf(proxy, ");\n"); - fprintf(proxy, "\n"); - print_proxy("*_pdwStubPhase = STUB_MARSHAL;\n"); - fprintf(proxy, "\n"); - - write_remoting_arguments(proxy, indent, func, "__frame->", PASS_OUT, PHASE_BUFFERSIZE); - - if (!is_void(type_function_get_rettype(func->type))) - write_remoting_arguments(proxy, indent, func, "__frame->", PASS_RETURN, PHASE_BUFFERSIZE); - - print_proxy("NdrStubGetBuffer(This, _pRpcChannelBuffer, &__frame->_StubMsg);\n"); - - write_remoting_arguments(proxy, indent, func, "__frame->", PASS_OUT, PHASE_MARSHAL); - fprintf(proxy, "\n"); - - /* marshall the return value */ - if (!is_void(type_function_get_rettype(func->type))) - write_remoting_arguments(proxy, indent, func, "__frame->", PASS_RETURN, PHASE_MARSHAL); - - indent--; - print_proxy("}\n"); - print_proxy("RpcFinally\n"); - print_proxy("{\n"); - indent++; - print_proxy( "__finally_%s_%s_Stub( __frame );\n", iface->name, get_name(func) ); - indent--; - print_proxy("}\n"); - print_proxy("RpcEndFinally\n"); - - print_proxy("_pRpcMessage->BufferLength = __frame->_StubMsg.Buffer - (unsigned char *)_pRpcMessage->Buffer;\n"); - indent--; - - print_proxy("}\n"); - print_proxy("\n"); -} - -static void gen_stub_thunk( type_t *iface, const var_t *func, unsigned int proc_offset ) -{ - int has_ret = !is_void( type_function_get_rettype( func->type )); - const var_t *arg, *callas = is_callas( func->attrs ); - const var_list_t *args = type_get_function_args( func->type ); - - indent = 0; - print_proxy( "void __RPC_API %s_%s_Thunk( PMIDL_STUB_MESSAGE pStubMsg )\n", - iface->name, get_name(func) ); - print_proxy( "{\n"); - indent++; - write_func_param_struct( proxy, iface, func->type, - "*pParamStruct = (struct _PARAM_STRUCT *)pStubMsg->StackTop", has_ret ); - print_proxy( "%s%s_%s_Stub( pParamStruct->This", - has_ret ? "pParamStruct->_RetVal = " : "", iface->name, callas->name ); - indent++; - if (args) LIST_FOR_EACH_ENTRY( arg, args, const var_t, entry ) - { - fprintf( proxy, ",\n%*spParamStruct->%s", 4 * indent, "", arg->name ); - } - fprintf( proxy, " );\n" ); - indent--; - indent--; - print_proxy( "}\n\n"); -} - -int count_methods(const type_t *iface) -{ - const statement_t *stmt; - int count = 0; - - if (type_iface_get_inherit(iface)) - count = count_methods(type_iface_get_inherit(iface)); - - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) { - const var_t *func = stmt->u.var; - if (!is_callas(func->attrs)) count++; - } - return count; -} - -static const statement_t * get_callas_source(const type_t * iface, const var_t * def) -{ - const statement_t * source; - STATEMENTS_FOR_EACH_FUNC( source, type_iface_get_stmts(iface)) { - const var_t * cas = is_callas(source->u.var->attrs ); - if (cas && !strcmp(def->name, cas->name)) - return source; - } - return NULL; -} - -static int write_proxy_procformatstring_offsets( const type_t *iface, int skip ) -{ - const statement_t *stmt; - int i = 0; - - if (type_iface_get_inherit(iface)) - i = write_proxy_procformatstring_offsets( type_iface_get_inherit(iface), need_delegation(iface)); - else - return 0; - - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - const var_t *func = stmt->u.var; - int missing = 0; - - if (is_callas(func->attrs)) continue; - if (is_local(func->attrs)) - { - const statement_t * callas_source = get_callas_source(iface, func); - if (!callas_source) - missing = 1; - else - func = callas_source->u.var; - } - if (skip || missing) - print_proxy( "(unsigned short)-1, /* %s::%s */\n", iface->name, get_name(func)); - else - print_proxy( "%u, /* %s::%s */\n", func->procstring_offset, iface->name, get_name(func)); - i++; - } - return i; -} - -static int write_proxy_methods(type_t *iface, int skip) -{ - const statement_t *stmt; - int i = 0; - - if (type_iface_get_inherit(iface)) - i = write_proxy_methods(type_iface_get_inherit(iface), - need_delegation(iface)); - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) { - const var_t *func = stmt->u.var; - if (!is_callas(func->attrs)) { - if (skip || (is_local(func->attrs) && !get_callas_source(iface, func))) - print_proxy( "0, /* %s::%s */\n", iface->name, get_name(func)); - else if (is_interpreted_func( iface, func ) && - !is_local( func->attrs ) && - type_iface_get_inherit(iface)) - print_proxy( "(void *)-1, /* %s::%s */\n", iface->name, get_name(func)); - else - print_proxy( "%s_%s_Proxy,\n", iface->name, get_name(func)); - i++; - } - } - return i; -} - -static int write_stub_methods(type_t *iface, int skip) -{ - const statement_t *stmt; - int i = 0; - - if (type_iface_get_inherit(iface)) - i = write_stub_methods(type_iface_get_inherit(iface), need_delegation(iface)); - else - return i; /* skip IUnknown */ - - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) { - const var_t *func = stmt->u.var; - if (!is_callas(func->attrs)) { - int missing = 0; - const char * fname = get_name(func); - if(is_local(func->attrs)) { - const statement_t * callas_source = get_callas_source(iface, func); - if(!callas_source) - missing = 1; - else - fname = get_name(callas_source->u.var); - } - if (i) fprintf(proxy,",\n"); - if (skip || missing) print_proxy("STUB_FORWARDING_FUNCTION"); - else if (is_interpreted_func( iface, func )) - print_proxy( "(PRPC_STUB_FUNCTION)%s", get_stub_mode() == MODE_Oif ? "NdrStubCall2" : "NdrStubCall" ); - else print_proxy( "%s_%s_Stub", iface->name, fname); - i++; - } - } - return i; -} - -static void write_thunk_methods( type_t *iface, int skip ) -{ - const statement_t *stmt; - - if (type_iface_get_inherit( iface )) - write_thunk_methods( type_iface_get_inherit(iface), need_delegation(iface) ); - else - return; /* skip IUnknown */ - - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - var_t *func = stmt->u.var; - const statement_t * callas_source = NULL; - - if (is_callas(func->attrs)) continue; - if (is_local(func->attrs)) callas_source = get_callas_source(iface, func); - - if (!skip && callas_source && is_interpreted_func( iface, func )) - print_proxy( "%s_%s_Thunk,\n", iface->name, get_name(callas_source->u.var) ); - else - print_proxy( "0, /* %s::%s */\n", iface->name, get_name(func) ); - } -} - -static void write_proxy(type_t *iface, unsigned int *proc_offset) -{ - int count; - const statement_t *stmt; - int first_func = 1; - int needs_stub_thunks = 0; - int needs_inline_stubs = need_inline_stubs( iface ) || need_delegation( iface ); - - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) { - var_t *func = stmt->u.var; - if (first_func) { - fprintf(proxy, "/*****************************************************************************\n"); - fprintf(proxy, " * %s interface\n", iface->name); - fprintf(proxy, " */\n"); - first_func = 0; - } - if (!is_local(func->attrs)) { - const var_t *cas = is_callas(func->attrs); - const char *cname = cas ? cas->name : NULL; - int idx = func->type->details.function->idx; - if (cname) { - const statement_t *stmt2; - STATEMENTS_FOR_EACH_FUNC(stmt2, type_iface_get_stmts(iface)) { - const var_t *m = stmt2->u.var; - if (!strcmp(m->name, cname)) - { - idx = m->type->details.function->idx; - break; - } - } - } - func->procstring_offset = *proc_offset; - gen_proxy(iface, func, idx, *proc_offset); - gen_stub(iface, func, cname, *proc_offset); - if (cas && is_interpreted_func( iface, func )) - { - needs_stub_thunks = 1; - gen_stub_thunk(iface, func, *proc_offset); - } - *proc_offset += get_size_procformatstring_func( iface, func ); - } - } - - count = count_methods(iface); - - print_proxy( "static const unsigned short %s_FormatStringOffsetTable[] =\n", iface->name ); - print_proxy( "{\n" ); - indent++; - if (write_proxy_procformatstring_offsets( iface, 0 ) == 0) - { - print_proxy( "0\n" ); - } - indent--; - print_proxy( "};\n\n" ); - - /* proxy info */ - if (get_stub_mode() == MODE_Oif) - { - print_proxy( "static const MIDL_STUBLESS_PROXY_INFO %s_ProxyInfo =\n", iface->name ); - print_proxy( "{\n" ); - indent++; - print_proxy( "&Object_StubDesc,\n" ); - print_proxy( "__MIDL_ProcFormatString.Format,\n" ); - print_proxy( "&%s_FormatStringOffsetTable[-3],\n", iface->name ); - print_proxy( "0,\n" ); - print_proxy( "0,\n" ); - print_proxy( "0\n" ); - indent--; - print_proxy( "};\n\n" ); - } - - /* proxy vtable */ - print_proxy( "static %sCINTERFACE_PROXY_VTABLE(%d) _%sProxyVtbl =\n", - need_delegation_indirect(iface) ? "" : "const ", count, iface->name); - print_proxy( "{\n"); - indent++; - print_proxy( "{\n"); - indent++; - if (get_stub_mode() == MODE_Oif) print_proxy( "&%s_ProxyInfo,\n", iface->name ); - print_proxy( "&IID_%s,\n", iface->name); - indent--; - print_proxy( "},\n"); - print_proxy( "{\n"); - indent++; - write_proxy_methods(iface, FALSE); - indent--; - print_proxy( "}\n"); - indent--; - print_proxy( "};\n\n"); - - /* stub thunk table */ - if (needs_stub_thunks) - { - print_proxy( "static const STUB_THUNK %s_StubThunkTable[] =\n", iface->name); - print_proxy( "{\n"); - indent++; - write_thunk_methods( iface, 0 ); - indent--; - print_proxy( "};\n\n"); - } - - /* server info */ - print_proxy( "static const MIDL_SERVER_INFO %s_ServerInfo =\n", iface->name ); - print_proxy( "{\n" ); - indent++; - print_proxy( "&Object_StubDesc,\n" ); - print_proxy( "0,\n" ); - print_proxy( "__MIDL_ProcFormatString.Format,\n" ); - print_proxy( "&%s_FormatStringOffsetTable[-3],\n", iface->name ); - if (needs_stub_thunks) - print_proxy( "&%s_StubThunkTable[-3],\n", iface->name ); - else - print_proxy( "0,\n" ); - print_proxy( "0,\n" ); - print_proxy( "0,\n" ); - print_proxy( "0\n" ); - indent--; - print_proxy( "};\n\n" ); - - /* stub vtable */ - if (needs_inline_stubs) - { - print_proxy( "static const PRPC_STUB_FUNCTION %s_table[] =\n", iface->name); - print_proxy( "{\n"); - indent++; - if (write_stub_methods(iface, FALSE) == 0) - { - fprintf(proxy, "0"); - } - fprintf(proxy, "\n"); - indent--; - fprintf(proxy, "};\n\n"); - } - print_proxy( "static %sCInterfaceStubVtbl _%sStubVtbl =\n", - need_delegation_indirect(iface) ? "" : "const ", iface->name); - print_proxy( "{\n"); - indent++; - print_proxy( "{\n"); - indent++; - print_proxy( "&IID_%s,\n", iface->name); - print_proxy( "&%s_ServerInfo,\n", iface->name ); - print_proxy( "%d,\n", count); - if (needs_inline_stubs) print_proxy( "&%s_table[-3]\n", iface->name ); - else print_proxy( "0\n" ); - indent--; - print_proxy( "},\n"); - print_proxy( "{\n"); - indent++; - print_proxy( "CStdStubBuffer_%s\n", need_delegation_indirect(iface) ? "DELEGATING_METHODS" : "METHODS"); - indent--; - print_proxy( "}\n"); - indent--; - print_proxy( "};\n"); - print_proxy( "\n"); -} - -static int does_any_iface(const statement_list_t *stmts, type_pred_t pred) -{ - const statement_t *stmt; - - if (stmts) - LIST_FOR_EACH_ENTRY(stmt, stmts, const statement_t, entry) - { - if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE) - { - if (pred(stmt->u.type)) - return TRUE; - } - } - - return FALSE; -} - -int need_proxy(const type_t *iface) -{ - if (!is_object( iface )) return 0; - if (is_local( iface->attrs )) return 0; - if (is_attr( iface->attrs, ATTR_DISPINTERFACE )) return 0; - return 1; -} - -int need_stub(const type_t *iface) -{ - return !is_object(iface) && !is_local(iface->attrs); -} - -int need_proxy_file(const statement_list_t *stmts) -{ - return does_any_iface(stmts, need_proxy); -} - -int need_inline_stubs(const type_t *iface) -{ - const statement_t *stmt; - - if (get_stub_mode() == MODE_Os) return 1; - - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - const var_t *func = stmt->u.var; - if (is_local( func->attrs )) continue; - if (!is_interpreted_func( iface, func )) return 1; - } - return 0; -} - -static int need_proxy_and_inline_stubs(const type_t *iface) -{ - const statement_t *stmt; - - if (!need_proxy( iface )) return 0; - if (get_stub_mode() == MODE_Os) return 1; - - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - const var_t *func = stmt->u.var; - if (is_local( func->attrs )) continue; - if (!is_interpreted_func( iface, func )) return 1; - } - return 0; -} - -int need_stub_files(const statement_list_t *stmts) -{ - return does_any_iface(stmts, need_stub); -} - -int need_inline_stubs_file(const statement_list_t *stmts) -{ - return does_any_iface(stmts, need_inline_stubs); -} - -static void write_proxy_stmts(const statement_list_t *stmts, unsigned int *proc_offset) -{ - const statement_t *stmt; - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE) - { - if (need_proxy(stmt->u.type)) - write_proxy(stmt->u.type, proc_offset); - } - } -} - -static int cmp_iid( const void *ptr1, const void *ptr2 ) -{ - const type_t * const *iface1 = ptr1; - const type_t * const *iface2 = ptr2; - const UUID *uuid1 = get_attrp( (*iface1)->attrs, ATTR_UUID ); - const UUID *uuid2 = get_attrp( (*iface2)->attrs, ATTR_UUID ); - return memcmp( uuid1, uuid2, sizeof(UUID) ); -} - -static void build_iface_list( const statement_list_t *stmts, type_t **ifaces[], int *count ) -{ - const statement_t *stmt; - - if (!stmts) return; - LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE) - { - type_t *iface = stmt->u.type; - if (type_iface_get_inherit(iface) && need_proxy(iface)) - { - *ifaces = xrealloc( *ifaces, (*count + 1) * sizeof(**ifaces) ); - (*ifaces)[(*count)++] = iface; - } - } - } -} - -static type_t **sort_interfaces( const statement_list_t *stmts, int *count ) -{ - type_t **ifaces = NULL; - - *count = 0; - build_iface_list( stmts, &ifaces, count ); - qsort( ifaces, *count, sizeof(*ifaces), cmp_iid ); - return ifaces; -} - -static void write_proxy_routines(const statement_list_t *stmts) -{ - int expr_eval_routines; - unsigned int proc_offset = 0; - char *file_id = proxy_token; - int i, count, have_baseiid = 0; - type_t **interfaces; - const type_t * delegate_to; - - print_proxy( "#ifndef __REDQ_RPCPROXY_H_VERSION__\n"); - print_proxy( "#define __REQUIRED_RPCPROXY_H_VERSION__ %u\n", get_stub_mode() == MODE_Oif ? 475 : 440); - print_proxy( "#endif\n"); - print_proxy( "\n"); - if (get_stub_mode() == MODE_Oif) print_proxy( "#define USE_STUBLESS_PROXY\n"); - print_proxy( "#include \"rpcproxy.h\"\n"); - print_proxy( "#ifndef __RPCPROXY_H_VERSION__\n"); - print_proxy( "#error This code needs a newer version of rpcproxy.h\n"); - print_proxy( "#endif /* __RPCPROXY_H_VERSION__ */\n"); - print_proxy( "\n"); - print_proxy( "#include \"%s\"\n", header_name); - print_proxy( "\n"); - - if (does_any_iface(stmts, need_proxy_and_inline_stubs)) - { - write_exceptions( proxy ); - print_proxy( "\n"); - print_proxy( "struct __proxy_frame\n"); - print_proxy( "{\n"); - print_proxy( " __DECL_EXCEPTION_FRAME\n"); - print_proxy( " MIDL_STUB_MESSAGE _StubMsg;\n"); - print_proxy( " void *This;\n"); - print_proxy( "};\n"); - print_proxy( "\n"); - print_proxy("static int __proxy_filter( struct __proxy_frame *__frame )\n"); - print_proxy( "{\n"); - print_proxy( " return (__frame->_StubMsg.dwStubPhase != PROXY_SENDRECEIVE);\n"); - print_proxy( "}\n"); - print_proxy( "\n"); - } - - write_formatstringsdecl(proxy, indent, stmts, need_proxy); - write_stubdescproto(); - write_proxy_stmts(stmts, &proc_offset); - - expr_eval_routines = write_expr_eval_routines(proxy, proxy_token); - if (expr_eval_routines) - write_expr_eval_routine_list(proxy, proxy_token); - write_user_quad_list(proxy); - write_stubdesc(expr_eval_routines); - - print_proxy( "#if !defined(__RPC_WIN%u__)\n", pointer_size == 8 ? 64 : 32); - print_proxy( "#error Currently only Wine and WIN32 are supported.\n"); - print_proxy( "#endif\n"); - print_proxy( "\n"); - write_procformatstring(proxy, stmts, need_proxy); - write_typeformatstring(proxy, stmts, need_proxy); - - interfaces = sort_interfaces(stmts, &count); - fprintf(proxy, "static const CInterfaceProxyVtbl* const _%s_ProxyVtblList[] =\n", file_id); - fprintf(proxy, "{\n"); - for (i = 0; i < count; i++) - fprintf(proxy, " (const CInterfaceProxyVtbl*)&_%sProxyVtbl,\n", interfaces[i]->name); - fprintf(proxy, " 0\n"); - fprintf(proxy, "};\n"); - fprintf(proxy, "\n"); - - fprintf(proxy, "static const CInterfaceStubVtbl* const _%s_StubVtblList[] =\n", file_id); - fprintf(proxy, "{\n"); - for (i = 0; i < count; i++) - fprintf(proxy, " &_%sStubVtbl,\n", interfaces[i]->name); - fprintf(proxy, " 0\n"); - fprintf(proxy, "};\n"); - fprintf(proxy, "\n"); - - fprintf(proxy, "static PCInterfaceName const _%s_InterfaceNamesList[] =\n", file_id); - fprintf(proxy, "{\n"); - for (i = 0; i < count; i++) - fprintf(proxy, " \"%s\",\n", interfaces[i]->name); - fprintf(proxy, " 0\n"); - fprintf(proxy, "};\n"); - fprintf(proxy, "\n"); - - for (i = 0; i < count; i++) - if ((have_baseiid = get_delegation_indirect( interfaces[i], NULL ))) break; - - if (have_baseiid) - { - fprintf(proxy, "static const IID * _%s_BaseIIDList[] =\n", file_id); - fprintf(proxy, "{\n"); - for (i = 0; i < count; i++) - { - if (get_delegation_indirect(interfaces[i], &delegate_to)) - fprintf( proxy, " &IID_%s, /* %s */\n", delegate_to->name, interfaces[i]->name ); - else - fprintf( proxy, " 0,\n" ); - } - fprintf(proxy, " 0\n"); - fprintf(proxy, "};\n"); - fprintf(proxy, "\n"); - } - - fprintf(proxy, "static int __stdcall _%s_IID_Lookup(const IID* pIID, int* pIndex)\n", file_id); - fprintf(proxy, "{\n"); - fprintf(proxy, " int low = 0, high = %d;\n", count - 1); - fprintf(proxy, "\n"); - fprintf(proxy, " while (low <= high)\n"); - fprintf(proxy, " {\n"); - fprintf(proxy, " int pos = (low + high) / 2;\n"); - fprintf(proxy, " int res = IID_GENERIC_CHECK_IID(_%s, pIID, pos);\n", file_id); - fprintf(proxy, " if (!res) { *pIndex = pos; return 1; }\n"); - fprintf(proxy, " if (res > 0) low = pos + 1;\n"); - fprintf(proxy, " else high = pos - 1;\n"); - fprintf(proxy, " }\n"); - fprintf(proxy, " return 0;\n"); - fprintf(proxy, "}\n"); - fprintf(proxy, "\n"); - - fprintf(proxy, "const ExtendedProxyFileInfo %s_ProxyFileInfo DECLSPEC_HIDDEN =\n", file_id); - fprintf(proxy, "{\n"); - fprintf(proxy, " (const PCInterfaceProxyVtblList*)_%s_ProxyVtblList,\n", file_id); - fprintf(proxy, " (const PCInterfaceStubVtblList*)_%s_StubVtblList,\n", file_id); - fprintf(proxy, " _%s_InterfaceNamesList,\n", file_id); - if (have_baseiid) fprintf(proxy, " _%s_BaseIIDList,\n", file_id); - else fprintf(proxy, " 0,\n"); - fprintf(proxy, " _%s_IID_Lookup,\n", file_id); - fprintf(proxy, " %d,\n", count); - fprintf(proxy, " %d,\n", get_stub_mode() == MODE_Oif ? 2 : 1); - fprintf(proxy, " 0,\n"); - fprintf(proxy, " 0,\n"); - fprintf(proxy, " 0,\n"); - fprintf(proxy, " 0\n"); - fprintf(proxy, "};\n"); -} - -void write_proxies(const statement_list_t *stmts) -{ - if (!do_proxies) return; - if (do_everything && !need_proxy_file(stmts)) return; - - init_proxy(stmts); - if(!proxy) return; - - if (do_win32 && do_win64) - { - fprintf(proxy, "\n#ifndef _WIN64\n\n"); - pointer_size = 4; - write_proxy_routines( stmts ); - fprintf(proxy, "\n#else /* _WIN64 */\n\n"); - pointer_size = 8; - write_proxy_routines( stmts ); - fprintf(proxy, "\n#endif /* _WIN64 */\n"); - } - else if (do_win32) - { - pointer_size = 4; - write_proxy_routines( stmts ); - } - else if (do_win64) - { - pointer_size = 8; - write_proxy_routines( stmts ); - } - - fclose(proxy); -} diff --git a/reactos/tools/widl/register.c b/reactos/tools/widl/register.c deleted file mode 100644 index d8b34d981de..00000000000 --- a/reactos/tools/widl/register.c +++ /dev/null @@ -1,319 +0,0 @@ -/* - * Generation of dll registration scripts - * - * Copyright 2010 Alexandre Julliard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" -#include "wine/port.h" - -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "header.h" -#include "typegen.h" - -static int indent; - -static const char *format_uuid( const UUID *uuid ) -{ - static char buffer[40]; - sprintf( buffer, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}", - uuid->Data1, uuid->Data2, uuid->Data3, - uuid->Data4[0], uuid->Data4[1], uuid->Data4[2], uuid->Data4[3], - uuid->Data4[4], uuid->Data4[5], uuid->Data4[6], uuid->Data4[7] ); - return buffer; -} - -static const char *get_coclass_threading( const type_t *class ) -{ - static const char * const models[] = - { - NULL, - "Apartment", /* THREADING_APARTMENT */ - "Neutral", /* THREADING_NEUTRAL */ - "Single", /* THREADING_SINGLE */ - "Free", /* THREADING_FREE */ - "Both", /* THREADING_BOTH */ - }; - return models[get_attrv( class->attrs, ATTR_THREADING )]; -} - -static const type_t *find_ps_factory( const statement_list_t *stmts ) -{ - const statement_t *stmt; - - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE) - { - const type_t *type = stmt->u.type; - if (type_get_type(type) == TYPE_COCLASS && !strcmp( type->name, "PSFactoryBuffer" )) - return type; - } - } - return NULL; -} - -static void write_interface( const type_t *iface, const type_t *ps_factory ) -{ - const UUID *uuid = get_attrp( iface->attrs, ATTR_UUID ); - const UUID *ps_uuid = get_attrp( ps_factory->attrs, ATTR_UUID ); - - if (!uuid) return; - if (!is_object( iface )) return; - if (!type_iface_get_inherit(iface)) /* special case for IUnknown */ - { - put_str( indent, "'%s' = s '%s'\n", format_uuid( uuid ), iface->name ); - return; - } - if (is_local( iface->attrs )) return; - put_str( indent, "'%s' = s '%s'\n", format_uuid( uuid ), iface->name ); - put_str( indent, "{\n" ); - indent++; - put_str( indent, "NumMethods = s %u\n", count_methods( iface )); - put_str( indent, "ProxyStubClsid32 = s '%s'\n", format_uuid( ps_uuid )); - indent--; - put_str( indent, "}\n" ); -} - -static void write_interfaces( const statement_list_t *stmts, const type_t *ps_factory ) -{ - const statement_t *stmt; - - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE && type_get_type( stmt->u.type ) == TYPE_INTERFACE) - write_interface( stmt->u.type, ps_factory ); - } -} - -static void write_typelib_interface( const type_t *iface, const typelib_t *typelib ) -{ - const UUID *typelib_uuid = get_attrp( typelib->attrs, ATTR_UUID ); - const UUID *uuid = get_attrp( iface->attrs, ATTR_UUID ); - unsigned int version = get_attrv( typelib->attrs, ATTR_VERSION ); - - if (!uuid) return; - if (!is_object( iface )) return; - if (!is_attr( iface->attrs, ATTR_OLEAUTOMATION ) && !is_attr( iface->attrs, ATTR_DISPINTERFACE )) - return; - put_str( indent, "'%s' = s '%s'\n", format_uuid( uuid ), iface->name ); - put_str( indent, "{\n" ); - indent++; - put_str( indent, "ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}'\n" ); - put_str( indent, "ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}'\n" ); - if (version) - put_str( indent, "TypeLib = s '%s' { val Version = s '%u.%u' }\n", - format_uuid( typelib_uuid ), MAJORVERSION(version), MINORVERSION(version) ); - else - put_str( indent, "TypeLib = s '%s'", format_uuid( typelib_uuid )); - indent--; - put_str( indent, "}\n" ); -} - -static void write_typelib_interfaces( const typelib_t *typelib ) -{ - const statement_t *stmt; - - if (typelib->stmts) LIST_FOR_EACH_ENTRY( stmt, typelib->stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE && type_get_type( stmt->u.type ) == TYPE_INTERFACE) - write_typelib_interface( stmt->u.type, typelib ); - } -} - -static int write_coclass( const type_t *class, const typelib_t *typelib ) -{ - const UUID *uuid = get_attrp( class->attrs, ATTR_UUID ); - const char *descr = get_attrp( class->attrs, ATTR_HELPSTRING ); - const char *progid = get_attrp( class->attrs, ATTR_PROGID ); - const char *vi_progid = get_attrp( class->attrs, ATTR_VIPROGID ); - const char *threading = get_coclass_threading( class ); - unsigned int version = get_attrv( class->attrs, ATTR_VERSION ); - - if (!uuid) return 0; - if (typelib && !threading && !progid) return 0; - if (!descr) descr = class->name; - - put_str( indent, "'%s' = s '%s'\n", format_uuid( uuid ), descr ); - put_str( indent++, "{\n" ); - if (threading) put_str( indent, "InprocServer32 = s '%%MODULE%%' { val ThreadingModel = s '%s' }\n", - threading ); - if (progid) put_str( indent, "ProgId = s '%s'\n", progid ); - if (typelib) - { - const UUID *typelib_uuid = get_attrp( typelib->attrs, ATTR_UUID ); - put_str( indent, "TypeLib = s '%s'\n", format_uuid( typelib_uuid )); - if (!version) version = get_attrv( typelib->attrs, ATTR_VERSION ); - } - if (version) put_str( indent, "Version = s '%u.%u'\n", MAJORVERSION(version), MINORVERSION(version) ); - if (vi_progid) put_str( indent, "VersionIndependentProgId = s '%s'\n", vi_progid ); - put_str( --indent, "}\n" ); - return 1; -} - -static void write_coclasses( const statement_list_t *stmts, const typelib_t *typelib ) -{ - const statement_t *stmt; - - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE) - { - const type_t *type = stmt->u.type; - if (type_get_type(type) == TYPE_COCLASS) write_coclass( type, typelib ); - } - } -} - -static int write_progid( const type_t *class ) -{ - const UUID *uuid = get_attrp( class->attrs, ATTR_UUID ); - const char *descr = get_attrp( class->attrs, ATTR_HELPSTRING ); - const char *progid = get_attrp( class->attrs, ATTR_PROGID ); - const char *vi_progid = get_attrp( class->attrs, ATTR_VIPROGID ); - - if (!uuid) return 0; - if (!descr) descr = class->name; - - if (progid) - { - put_str( indent, "'%s' = s '%s'\n", progid, descr ); - put_str( indent++, "{\n" ); - put_str( indent, "CLSID = s '%s'\n", format_uuid( uuid ) ); - put_str( --indent, "}\n" ); - } - if (vi_progid) - { - put_str( indent, "'%s' = s '%s'\n", vi_progid, descr ); - put_str( indent++, "{\n" ); - put_str( indent, "CLSID = s '%s'\n", format_uuid( uuid ) ); - if (progid && strcmp( progid, vi_progid )) put_str( indent, "CurVer = s '%s'\n", progid ); - put_str( --indent, "}\n" ); - } - return 1; -} - -static void write_progids( const statement_list_t *stmts ) -{ - const statement_t *stmt; - - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE) - { - const type_t *type = stmt->u.type; - if (type_get_type(type) == TYPE_COCLASS) write_progid( type ); - } - } -} - -void write_regscript( const statement_list_t *stmts ) -{ - const type_t *ps_factory; - - if (!do_regscript) return; - if (do_everything && !need_proxy_file( stmts )) return; - - init_output_buffer(); - - put_str( indent, "HKCR\n" ); - put_str( indent++, "{\n" ); - - put_str( indent, "NoRemove Interface\n" ); - put_str( indent++, "{\n" ); - ps_factory = find_ps_factory( stmts ); - if (ps_factory) write_interfaces( stmts, ps_factory ); - put_str( --indent, "}\n" ); - - put_str( indent, "NoRemove CLSID\n" ); - put_str( indent++, "{\n" ); - write_coclasses( stmts, NULL ); - put_str( --indent, "}\n" ); - - write_progids( stmts ); - put_str( --indent, "}\n" ); - - if (strendswith( regscript_name, ".res" )) /* create a binary resource file */ - { - add_output_to_resources( "WINE_REGISTRY", regscript_token ); - flush_output_resources( regscript_name ); - } - else - { - FILE *f = fopen( regscript_name, "w" ); - if (!f) error( "Could not open %s for output\n", regscript_name ); - if (fwrite( output_buffer, 1, output_buffer_pos, f ) != output_buffer_pos) - error( "Failed to write to %s\n", regscript_name ); - if (fclose( f )) - error( "Failed to write to %s\n", regscript_name ); - } -} - -void output_typelib_regscript( const typelib_t *typelib ) -{ - const UUID *typelib_uuid = get_attrp( typelib->attrs, ATTR_UUID ); - const char *descr = get_attrp( typelib->attrs, ATTR_HELPSTRING ); - const expr_t *lcid_expr = get_attrp( typelib->attrs, ATTR_LIBLCID ); - unsigned int version = get_attrv( typelib->attrs, ATTR_VERSION ); - unsigned int flags = 0; - - if (is_attr( typelib->attrs, ATTR_RESTRICTED )) flags |= 1; /* LIBFLAG_FRESTRICTED */ - if (is_attr( typelib->attrs, ATTR_CONTROL )) flags |= 2; /* LIBFLAG_FCONTROL */ - if (is_attr( typelib->attrs, ATTR_HIDDEN )) flags |= 4; /* LIBFLAG_FHIDDEN */ - - put_str( indent, "HKCR\n" ); - put_str( indent++, "{\n" ); - - put_str( indent, "NoRemove Typelib\n" ); - put_str( indent++, "{\n" ); - put_str( indent, "NoRemove '%s'\n", format_uuid( typelib_uuid )); - put_str( indent++, "{\n" ); - put_str( indent, "'%u.%u' = s '%s'\n", - MAJORVERSION(version), MINORVERSION(version), descr ? descr : typelib->name ); - put_str( indent++, "{\n" ); - put_str( indent, "'%x' { %s = s '%%MODULE%%' }\n", - lcid_expr ? lcid_expr->cval : 0, typelib_kind == SYS_WIN64 ? "win64" : "win32" ); - put_str( indent, "FLAGS = s '%u'\n", flags ); - put_str( --indent, "}\n" ); - put_str( --indent, "}\n" ); - put_str( --indent, "}\n" ); - - put_str( indent, "NoRemove Interface\n" ); - put_str( indent++, "{\n" ); - write_typelib_interfaces( typelib ); - put_str( --indent, "}\n" ); - - put_str( indent, "NoRemove CLSID\n" ); - put_str( indent++, "{\n" ); - write_coclasses( typelib->stmts, typelib ); - put_str( --indent, "}\n" ); - - write_progids( typelib->stmts ); - put_str( --indent, "}\n" ); - - add_output_to_resources( "WINE_REGISTRY", typelib_name ); -} diff --git a/reactos/tools/widl/server.c b/reactos/tools/widl/server.c deleted file mode 100644 index 29b5beca250..00000000000 --- a/reactos/tools/widl/server.c +++ /dev/null @@ -1,569 +0,0 @@ -/* - * IDL Compiler - * - * Copyright 2005-2006 Eric Kohl - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" -#include "wine/port.h" - -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "header.h" - -#include "typegen.h" - -static FILE* server; -static int indent = 0; - - -static void print_server(const char *format, ...) __attribute__((format (printf, 1, 2))); -static void print_server(const char *format, ...) -{ - va_list va; - va_start(va, format); - print(server, indent, format, va); - va_end(va); -} - -static void write_function_stub(const type_t *iface, const var_t *func, unsigned int proc_offset) -{ - const var_t *var; - unsigned char explicit_fc, implicit_fc; - int has_full_pointer = is_full_pointer_function(func); - const var_t *handle_var = get_func_handle_var( iface, func, &explicit_fc, &implicit_fc ); - - if (is_interpreted_func( iface, func )) return; - - print_server("struct __frame_%s_%s\n{\n", iface->name, get_name(func)); - indent++; - print_server("__DECL_EXCEPTION_FRAME\n"); - print_server("MIDL_STUB_MESSAGE _StubMsg;\n"); - - /* Declare arguments */ - declare_stub_args(server, indent, func); - - indent--; - print_server("};\n\n"); - - print_server("static void __finally_%s_%s(", iface->name, get_name(func)); - fprintf(server," struct __frame_%s_%s *__frame )\n{\n", iface->name, get_name(func)); - - indent++; - write_remoting_arguments(server, indent, func, "__frame->", PASS_OUT, PHASE_FREE); - - if (!is_void(type_function_get_rettype(func->type))) - write_remoting_arguments(server, indent, func, "__frame->", PASS_RETURN, PHASE_FREE); - - if (has_full_pointer) - write_full_pointer_free(server, indent, func); - - indent--; - print_server("}\n\n"); - - print_server("void __RPC_STUB %s_%s( PRPC_MESSAGE _pRpcMessage )\n", iface->name, get_name(func)); - - /* write the functions body */ - fprintf(server, "{\n"); - indent++; - print_server("struct __frame_%s_%s __f, * const __frame = &__f;\n", iface->name, get_name(func)); - if (has_out_arg_or_return(func)) print_server("RPC_STATUS _Status;\n"); - fprintf(server, "\n"); - - print_server("NdrServerInitializeNew(\n"); - indent++; - print_server("_pRpcMessage,\n"); - print_server("&__frame->_StubMsg,\n"); - print_server("&%s_StubDesc);\n", iface->name); - indent--; - fprintf(server, "\n"); - print_server( "RpcExceptionInit( __server_filter, __finally_%s_%s );\n", iface->name, get_name(func)); - - write_parameters_init(server, indent, func, "__frame->"); - - if (explicit_fc == RPC_FC_BIND_PRIMITIVE) - { - print_server("__frame->%s = _pRpcMessage->Handle;\n", handle_var->name); - fprintf(server, "\n"); - } - - print_server("RpcTryFinally\n"); - print_server("{\n"); - indent++; - print_server("RpcTryExcept\n"); - print_server("{\n"); - indent++; - - if (has_full_pointer) - write_full_pointer_init(server, indent, func, TRUE); - - if (type_get_function_args(func->type)) - { - print_server("if ((_pRpcMessage->DataRepresentation & 0x0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION)\n"); - indent++; - print_server("NdrConvert(&__frame->_StubMsg, (PFORMAT_STRING)&__MIDL_ProcFormatString.Format[%u]);\n", - proc_offset); - indent--; - fprintf(server, "\n"); - - /* unmarshall arguments */ - write_remoting_arguments(server, indent, func, "__frame->", PASS_IN, PHASE_UNMARSHAL); - } - - print_server("if (__frame->_StubMsg.Buffer > __frame->_StubMsg.BufferEnd)\n"); - print_server("{\n"); - indent++; - print_server("RpcRaiseException(RPC_X_BAD_STUB_DATA);\n"); - indent--; - print_server("}\n"); - indent--; - print_server("}\n"); - print_server("RpcExcept(RPC_BAD_STUB_DATA_EXCEPTION_FILTER)\n"); - print_server("{\n"); - indent++; - print_server("RpcRaiseException(RPC_X_BAD_STUB_DATA);\n"); - indent--; - print_server("}\n"); - print_server("RpcEndExcept\n"); - fprintf(server, "\n"); - - /* Assign 'out' arguments */ - assign_stub_out_args(server, indent, func, "__frame->"); - - /* Call the real server function */ - print_server("%s%s%s", - is_void(type_function_get_rettype(func->type)) ? "" : "__frame->_RetVal = ", - prefix_server, get_name(func)); - - if (type_get_function_args(func->type)) - { - int first_arg = 1; - - fprintf(server, "(\n"); - indent++; - LIST_FOR_EACH_ENTRY( var, type_get_function_args(func->type), const var_t, entry ) - { - if (first_arg) - first_arg = 0; - else - fprintf(server, ",\n"); - if (is_context_handle(var->type)) - { - /* if the context_handle attribute appears in the chain of types - * without pointers being followed, then the context handle must - * be direct, otherwise it is a pointer */ - const char *ch_ptr = is_aliaschain_attr(var->type, ATTR_CONTEXTHANDLE) ? "*" : ""; - print_server("("); - write_type_decl_left(server, var->type); - fprintf(server, ")%sNDRSContextValue(__frame->%s)", ch_ptr, var->name); - } - else - { - print_server("%s__frame->%s", is_array(var->type) && !type_array_is_decl_as_ptr(var->type) ? "*" : "", var->name); - } - } - fprintf(server, ");\n"); - indent--; - } - else - { - fprintf(server, "();\n"); - } - - if (has_out_arg_or_return(func)) - { - write_remoting_arguments(server, indent, func, "__frame->", PASS_OUT, PHASE_BUFFERSIZE); - - if (!is_void(type_function_get_rettype(func->type))) - write_remoting_arguments(server, indent, func, "__frame->", PASS_RETURN, PHASE_BUFFERSIZE); - - print_server("_pRpcMessage->BufferLength = __frame->_StubMsg.BufferLength;\n"); - fprintf(server, "\n"); - print_server("_Status = I_RpcGetBuffer(_pRpcMessage);\n"); - print_server("if (_Status)\n"); - indent++; - print_server("RpcRaiseException(_Status);\n"); - indent--; - fprintf(server, "\n"); - print_server("__frame->_StubMsg.Buffer = _pRpcMessage->Buffer;\n"); - fprintf(server, "\n"); - } - - /* marshall arguments */ - write_remoting_arguments(server, indent, func, "__frame->", PASS_OUT, PHASE_MARSHAL); - - /* marshall the return value */ - if (!is_void(type_function_get_rettype(func->type))) - write_remoting_arguments(server, indent, func, "__frame->", PASS_RETURN, PHASE_MARSHAL); - - indent--; - print_server("}\n"); - print_server("RpcFinally\n"); - print_server("{\n"); - indent++; - print_server("__finally_%s_%s( __frame );\n", iface->name, get_name(func)); - indent--; - print_server("}\n"); - print_server("RpcEndFinally\n"); - - /* calculate buffer length */ - fprintf(server, "\n"); - print_server("_pRpcMessage->BufferLength = __frame->_StubMsg.Buffer - (unsigned char *)_pRpcMessage->Buffer;\n"); - indent--; - fprintf(server, "}\n"); - fprintf(server, "\n"); -} - - -static void write_function_stubs(type_t *iface, unsigned int *proc_offset) -{ - const statement_t *stmt; - - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - var_t *func = stmt->u.var; - - write_function_stub( iface, func, *proc_offset ); - - /* update proc_offset */ - func->procstring_offset = *proc_offset; - *proc_offset += get_size_procformatstring_func( iface, func ); - } -} - - -static void write_dispatchtable(type_t *iface) -{ - unsigned int ver = get_attrv(iface->attrs, ATTR_VERSION); - unsigned int method_count = 0; - const statement_t *stmt; - - print_server("static RPC_DISPATCH_FUNCTION %s_table[] =\n", iface->name); - print_server("{\n"); - indent++; - - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - var_t *func = stmt->u.var; - if (is_interpreted_func( iface, func )) - print_server("%s,\n", get_stub_mode() == MODE_Oif ? "NdrServerCall2" : "NdrServerCall"); - else - print_server("%s_%s,\n", iface->name, get_name(func)); - method_count++; - } - print_server("0\n"); - indent--; - print_server("};\n"); - print_server("static RPC_DISPATCH_TABLE %s_v%d_%d_DispatchTable =\n", iface->name, MAJORVERSION(ver), MINORVERSION(ver)); - print_server("{\n"); - indent++; - print_server("%u,\n", method_count); - print_server("%s_table\n", iface->name); - indent--; - print_server("};\n"); - fprintf(server, "\n"); -} - - -static void write_routinetable(type_t *iface) -{ - const statement_t *stmt; - - print_server( "static const SERVER_ROUTINE %s_ServerRoutineTable[] =\n", iface->name ); - print_server( "{\n" ); - indent++; - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - var_t *func = stmt->u.var; - if (is_local( func->attrs )) continue; - print_server( "(SERVER_ROUTINE)%s%s,\n", prefix_server, get_name(func)); - } - indent--; - print_server( "};\n\n" ); -} - - -static void write_rundown_routines(void) -{ - context_handle_t *ch; - int count = list_count( &context_handle_list ); - - if (!count) return; - print_server( "static const NDR_RUNDOWN RundownRoutines[] =\n" ); - print_server( "{\n" ); - indent++; - LIST_FOR_EACH_ENTRY( ch, &context_handle_list, context_handle_t, entry ) - { - print_server( "%s_rundown", ch->name ); - if (--count) fputc( ',', server ); - fputc( '\n', server ); - } - indent--; - print_server( "};\n\n" ); -} - - -static void write_serverinfo(type_t *iface) -{ - print_server( "static const MIDL_SERVER_INFO %s_ServerInfo =\n", iface->name ); - print_server( "{\n" ); - indent++; - print_server( "&%s_StubDesc,\n", iface->name ); - print_server( "%s_ServerRoutineTable,\n", iface->name ); - print_server( "__MIDL_ProcFormatString.Format,\n" ); - print_server( "%s_FormatStringOffsetTable,\n", iface->name ); - print_server( "0,\n" ); - print_server( "0,\n" ); - print_server( "0,\n" ); - print_server( "0\n" ); - indent--; - print_server( "};\n\n" ); -} - - -static void write_stubdescdecl(type_t *iface) -{ - print_server("static const MIDL_STUB_DESC %s_StubDesc;\n", iface->name); - fprintf(server, "\n"); -} - - -static void write_stubdescriptor(type_t *iface, int expr_eval_routines) -{ - print_server("static const MIDL_STUB_DESC %s_StubDesc =\n", iface->name); - print_server("{\n"); - indent++; - print_server("(void *)& %s___RpcServerInterface,\n", iface->name); - print_server("MIDL_user_allocate,\n"); - print_server("MIDL_user_free,\n"); - print_server("{\n"); - indent++; - print_server("0,\n"); - indent--; - print_server("},\n"); - if (!list_empty( &context_handle_list )) - print_server("RundownRoutines,\n"); - else - print_server("0,\n"); - print_server("0,\n"); - if (expr_eval_routines) - print_server("ExprEvalRoutines,\n"); - else - print_server("0,\n"); - print_server("0,\n"); - print_server("__MIDL_TypeFormatString.Format,\n"); - print_server("1, /* -error bounds_check flag */\n"); - print_server("0x%x, /* Ndr library version */\n", get_stub_mode() == MODE_Oif ? 0x50002 : 0x10001); - print_server("0,\n"); - print_server("0x50100a4, /* MIDL Version 5.1.164 */\n"); - print_server("0,\n"); - print_server("%s,\n", list_empty(&user_type_list) ? "0" : "UserMarshalRoutines"); - print_server("0, /* notify & notify_flag routine table */\n"); - print_server("1, /* Flags */\n"); - print_server("0, /* Reserved3 */\n"); - print_server("0, /* Reserved4 */\n"); - print_server("0 /* Reserved5 */\n"); - indent--; - print_server("};\n"); - fprintf(server, "\n"); -} - - -static void write_serverinterfacedecl(type_t *iface) -{ - unsigned int ver = get_attrv(iface->attrs, ATTR_VERSION); - UUID *uuid = get_attrp(iface->attrs, ATTR_UUID); - const str_list_t *endpoints = get_attrp(iface->attrs, ATTR_ENDPOINT); - - if (endpoints) write_endpoints( server, iface->name, endpoints ); - - print_server("static RPC_DISPATCH_TABLE %s_v%d_%d_DispatchTable;\n", iface->name, MAJORVERSION(ver), MINORVERSION(ver)); - print_server( "static const MIDL_SERVER_INFO %s_ServerInfo;\n", iface->name ); - fprintf(server, "\n"); - print_server("static const RPC_SERVER_INTERFACE %s___RpcServerInterface =\n", iface->name ); - print_server("{\n"); - indent++; - print_server("sizeof(RPC_SERVER_INTERFACE),\n"); - print_server("{{0x%08x,0x%04x,0x%04x,{0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x}},{%d,%d}},\n", - uuid->Data1, uuid->Data2, uuid->Data3, uuid->Data4[0], uuid->Data4[1], - uuid->Data4[2], uuid->Data4[3], uuid->Data4[4], uuid->Data4[5], uuid->Data4[6], - uuid->Data4[7], MAJORVERSION(ver), MINORVERSION(ver)); - print_server("{{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},\n"); /* FIXME */ - print_server("&%s_v%d_%d_DispatchTable,\n", iface->name, MAJORVERSION(ver), MINORVERSION(ver)); - if (endpoints) - { - print_server("%u,\n", list_count(endpoints)); - print_server("(PRPC_PROTSEQ_ENDPOINT)%s__RpcProtseqEndpoint,\n", iface->name); - } - else - { - print_server("0,\n"); - print_server("0,\n"); - } - print_server("0,\n"); - print_server("&%s_ServerInfo,\n", iface->name); - print_server("0,\n"); - indent--; - print_server("};\n"); - if (old_names) - print_server("RPC_IF_HANDLE %s_ServerIfHandle DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n", - iface->name, iface->name); - else - print_server("RPC_IF_HANDLE %s%s_v%d_%d_s_ifspec DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n", - prefix_server, iface->name, MAJORVERSION(ver), MINORVERSION(ver), iface->name); - fprintf(server, "\n"); -} - - -static void init_server(void) -{ - if (server) - return; - if (!(server = fopen(server_name, "w"))) - error("Could not open %s for output\n", server_name); - - print_server("/*** Autogenerated by WIDL %s from %s - Do not edit ***/\n", PACKAGE_VERSION, input_name); - print_server("#include \n"); - fprintf(server, "\n"); - print_server("#include \"%s\"\n", header_name); - print_server("\n"); - print_server( "#ifndef DECLSPEC_HIDDEN\n"); - print_server( "#define DECLSPEC_HIDDEN\n"); - print_server( "#endif\n"); - print_server( "\n"); -} - - -static void write_server_stmts(const statement_list_t *stmts, int expr_eval_routines, unsigned int *proc_offset) -{ - const statement_t *stmt; - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE) - { - type_t *iface = stmt->u.type; - if (!need_stub(iface)) - continue; - - fprintf(server, "/*****************************************************************************\n"); - fprintf(server, " * %s interface\n", iface->name); - fprintf(server, " */\n"); - fprintf(server, "\n"); - - if (statements_has_func(type_iface_get_stmts(iface))) - { - write_serverinterfacedecl(iface); - write_stubdescdecl(iface); - - write_function_stubs(iface, proc_offset); - - print_server("#if !defined(__RPC_WIN%u__)\n", pointer_size == 8 ? 64 : 32); - print_server("#error Invalid build platform for this stub.\n"); - print_server("#endif\n"); - - fprintf(server, "\n"); - write_procformatstring_offsets( server, iface ); - write_stubdescriptor(iface, expr_eval_routines); - write_dispatchtable(iface); - write_routinetable(iface); - write_serverinfo(iface); - } - } - } -} - -static void write_server_routines(const statement_list_t *stmts) -{ - unsigned int proc_offset = 0; - int expr_eval_routines; - - if (need_inline_stubs_file( stmts )) - { - write_exceptions( server ); - print_server("\n"); - print_server("struct __server_frame\n"); - print_server("{\n"); - print_server(" __DECL_EXCEPTION_FRAME\n"); - print_server(" MIDL_STUB_MESSAGE _StubMsg;\n"); - print_server("};\n"); - print_server("\n"); - print_server("static int __server_filter( struct __server_frame *__frame )\n"); - print_server( "{\n"); - print_server( " return (__frame->code == STATUS_ACCESS_VIOLATION) ||\n"); - print_server( " (__frame->code == STATUS_DATATYPE_MISALIGNMENT) ||\n"); - print_server( " (__frame->code == RPC_X_BAD_STUB_DATA) ||\n"); - print_server( " (__frame->code == RPC_S_INVALID_BOUND);\n"); - print_server( "}\n"); - print_server( "\n"); - } - - write_formatstringsdecl(server, indent, stmts, need_stub); - expr_eval_routines = write_expr_eval_routines(server, server_token); - if (expr_eval_routines) - write_expr_eval_routine_list(server, server_token); - write_user_quad_list(server); - write_rundown_routines(); - - write_server_stmts(stmts, expr_eval_routines, &proc_offset); - - write_procformatstring(server, stmts, need_stub); - write_typeformatstring(server, stmts, need_stub); -} - -void write_server(const statement_list_t *stmts) -{ - if (!do_server) - return; - if (do_everything && !need_stub_files(stmts)) - return; - - init_server(); - if (!server) - return; - - if (do_win32 && do_win64) - { - fprintf(server, "#ifndef _WIN64\n\n"); - pointer_size = 4; - write_server_routines( stmts ); - fprintf(server, "\n#else /* _WIN64 */\n\n"); - pointer_size = 8; - write_server_routines( stmts ); - fprintf(server, "\n#endif /* _WIN64 */\n"); - } - else if (do_win32) - { - pointer_size = 4; - write_server_routines( stmts ); - } - else if (do_win64) - { - pointer_size = 8; - write_server_routines( stmts ); - } - - fclose(server); -} diff --git a/reactos/tools/widl/typegen.c b/reactos/tools/widl/typegen.c deleted file mode 100644 index 5c891c4501f..00000000000 --- a/reactos/tools/widl/typegen.c +++ /dev/null @@ -1,5059 +0,0 @@ -/* - * Format String Generator for IDL Compiler - * - * Copyright 2005-2006 Eric Kohl - * Copyright 2005-2006 Robert Shearman - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" -#include "wine/port.h" - -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include -#include -#include - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "header.h" -#include "typetree.h" - -#include "typegen.h" -#include "expr.h" - -/* round size up to multiple of alignment */ -#define ROUND_SIZE(size, alignment) (((size) + ((alignment) - 1)) & ~((alignment) - 1)) -/* value to add on to round size up to a multiple of alignment */ -#define ROUNDING(size, alignment) (((alignment) - 1) - (((size) + ((alignment) - 1)) & ((alignment) - 1))) - -static const type_t *current_structure; -static const var_t *current_func; -static const type_t *current_iface; - -static struct list expr_eval_routines = LIST_INIT(expr_eval_routines); -struct expr_eval_routine -{ - struct list entry; - const type_t *iface; - const type_t *cont_type; - char *name; - unsigned int baseoff; - const expr_t *expr; -}; - -enum type_context -{ - TYPE_CONTEXT_TOPLEVELPARAM, - TYPE_CONTEXT_PARAM, - TYPE_CONTEXT_CONTAINER, - TYPE_CONTEXT_CONTAINER_NO_POINTERS, -}; - -/* parameter flags in Oif mode */ -static const unsigned short MustSize = 0x0001; -static const unsigned short MustFree = 0x0002; -static const unsigned short IsPipe = 0x0004; -static const unsigned short IsIn = 0x0008; -static const unsigned short IsOut = 0x0010; -static const unsigned short IsReturn = 0x0020; -static const unsigned short IsBasetype = 0x0040; -static const unsigned short IsByValue = 0x0080; -static const unsigned short IsSimpleRef = 0x0100; -/* static const unsigned short IsDontCallFreeInst = 0x0200; */ -/* static const unsigned short SaveForAsyncFinish = 0x0400; */ - -static unsigned int field_memsize(const type_t *type, unsigned int *offset); -static unsigned int fields_memsize(const var_list_t *fields, unsigned int *align); -static unsigned int type_memsize_and_alignment(const type_t *t, unsigned int *align); -static unsigned int write_struct_tfs(FILE *file, type_t *type, const char *name, unsigned int *tfsoff); -static int write_embedded_types(FILE *file, const attr_list_t *attrs, type_t *type, - const char *name, int write_ptr, unsigned int *tfsoff); -static const var_t *find_array_or_string_in_struct(const type_t *type); -static unsigned int write_string_tfs(FILE *file, const attr_list_t *attrs, - type_t *type, enum type_context context, - const char *name, unsigned int *typestring_offset); -static unsigned int get_required_buffer_size_type( const type_t *type, const char *name, - const attr_list_t *attrs, int toplevel_param, - unsigned int *alignment ); -static unsigned int get_function_buffer_size( const var_t *func, enum pass pass ); - -static const char *string_of_type(unsigned char type) -{ - switch (type) - { - case RPC_FC_BYTE: return "FC_BYTE"; - case RPC_FC_CHAR: return "FC_CHAR"; - case RPC_FC_SMALL: return "FC_SMALL"; - case RPC_FC_USMALL: return "FC_USMALL"; - case RPC_FC_WCHAR: return "FC_WCHAR"; - case RPC_FC_SHORT: return "FC_SHORT"; - case RPC_FC_USHORT: return "FC_USHORT"; - case RPC_FC_LONG: return "FC_LONG"; - case RPC_FC_ULONG: return "FC_ULONG"; - case RPC_FC_FLOAT: return "FC_FLOAT"; - case RPC_FC_HYPER: return "FC_HYPER"; - case RPC_FC_DOUBLE: return "FC_DOUBLE"; - case RPC_FC_ENUM16: return "FC_ENUM16"; - case RPC_FC_ENUM32: return "FC_ENUM32"; - case RPC_FC_IGNORE: return "FC_IGNORE"; - case RPC_FC_ERROR_STATUS_T: return "FC_ERROR_STATUS_T"; - case RPC_FC_RP: return "FC_RP"; - case RPC_FC_UP: return "FC_UP"; - case RPC_FC_OP: return "FC_OP"; - case RPC_FC_FP: return "FC_FP"; - case RPC_FC_ENCAPSULATED_UNION: return "FC_ENCAPSULATED_UNION"; - case RPC_FC_NON_ENCAPSULATED_UNION: return "FC_NON_ENCAPSULATED_UNION"; - case RPC_FC_STRUCT: return "FC_STRUCT"; - case RPC_FC_PSTRUCT: return "FC_PSTRUCT"; - case RPC_FC_CSTRUCT: return "FC_CSTRUCT"; - case RPC_FC_CPSTRUCT: return "FC_CPSTRUCT"; - case RPC_FC_CVSTRUCT: return "FC_CVSTRUCT"; - case RPC_FC_BOGUS_STRUCT: return "FC_BOGUS_STRUCT"; - case RPC_FC_SMFARRAY: return "FC_SMFARRAY"; - case RPC_FC_LGFARRAY: return "FC_LGFARRAY"; - case RPC_FC_SMVARRAY: return "FC_SMVARRAY"; - case RPC_FC_LGVARRAY: return "FC_LGVARRAY"; - case RPC_FC_CARRAY: return "FC_CARRAY"; - case RPC_FC_CVARRAY: return "FC_CVARRAY"; - case RPC_FC_BOGUS_ARRAY: return "FC_BOGUS_ARRAY"; - case RPC_FC_ALIGNM2: return "FC_ALIGNM2"; - case RPC_FC_ALIGNM4: return "FC_ALIGNM4"; - case RPC_FC_ALIGNM8: return "FC_ALIGNM8"; - case RPC_FC_POINTER: return "FC_POINTER"; - case RPC_FC_C_CSTRING: return "FC_C_CSTRING"; - case RPC_FC_C_WSTRING: return "FC_C_WSTRING"; - case RPC_FC_CSTRING: return "FC_CSTRING"; - case RPC_FC_WSTRING: return "FC_WSTRING"; - case RPC_FC_BYTE_COUNT_POINTER: return "FC_BYTE_COUNT_POINTER"; - case RPC_FC_TRANSMIT_AS: return "FC_TRANSMIT_AS"; - case RPC_FC_REPRESENT_AS: return "FC_REPRESENT_AS"; - case RPC_FC_IP: return "FC_IP"; - case RPC_FC_BIND_CONTEXT: return "FC_BIND_CONTEXT"; - case RPC_FC_BIND_GENERIC: return "FC_BIND_GENERIC"; - case RPC_FC_BIND_PRIMITIVE: return "FC_BIND_PRIMITIVE"; - case RPC_FC_AUTO_HANDLE: return "FC_AUTO_HANDLE"; - case RPC_FC_CALLBACK_HANDLE: return "FC_CALLBACK_HANDLE"; - case RPC_FC_STRUCTPAD1: return "FC_STRUCTPAD1"; - case RPC_FC_STRUCTPAD2: return "FC_STRUCTPAD2"; - case RPC_FC_STRUCTPAD3: return "FC_STRUCTPAD3"; - case RPC_FC_STRUCTPAD4: return "FC_STRUCTPAD4"; - case RPC_FC_STRUCTPAD5: return "FC_STRUCTPAD5"; - case RPC_FC_STRUCTPAD6: return "FC_STRUCTPAD6"; - case RPC_FC_STRUCTPAD7: return "FC_STRUCTPAD7"; - case RPC_FC_STRING_SIZED: return "FC_STRING_SIZED"; - case RPC_FC_NO_REPEAT: return "FC_NO_REPEAT"; - case RPC_FC_FIXED_REPEAT: return "FC_FIXED_REPEAT"; - case RPC_FC_VARIABLE_REPEAT: return "FC_VARIABLE_REPEAT"; - case RPC_FC_FIXED_OFFSET: return "FC_FIXED_OFFSET"; - case RPC_FC_VARIABLE_OFFSET: return "FC_VARIABLE_OFFSET"; - case RPC_FC_PP: return "FC_PP"; - case RPC_FC_EMBEDDED_COMPLEX: return "FC_EMBEDDED_COMPLEX"; - case RPC_FC_DEREFERENCE: return "FC_DEREFERENCE"; - case RPC_FC_DIV_2: return "FC_DIV_2"; - case RPC_FC_MULT_2: return "FC_MULT_2"; - case RPC_FC_ADD_1: return "FC_ADD_1"; - case RPC_FC_SUB_1: return "FC_SUB_1"; - case RPC_FC_CALLBACK: return "FC_CALLBACK"; - case RPC_FC_CONSTANT_IID: return "FC_CONSTANT_IID"; - case RPC_FC_END: return "FC_END"; - case RPC_FC_PAD: return "FC_PAD"; - case RPC_FC_USER_MARSHAL: return "FC_USER_MARSHAL"; - case RPC_FC_RANGE: return "FC_RANGE"; - case RPC_FC_INT3264: return "FC_INT3264"; - case RPC_FC_UINT3264: return "FC_UINT3264"; - default: - error("string_of_type: unknown type 0x%02x\n", type); - return NULL; - } -} - -static void *get_aliaschain_attrp(const type_t *type, enum attr_type attr) -{ - const type_t *t = type; - for (;;) - { - if (is_attr(t->attrs, attr)) - return get_attrp(t->attrs, attr); - else if (type_is_alias(t)) - t = type_alias_get_aliasee(t); - else return NULL; - } -} - -unsigned char get_basic_fc(const type_t *type) -{ - int sign = type_basic_get_sign(type); - switch (type_basic_get_type(type)) - { - case TYPE_BASIC_INT8: return (sign <= 0 ? RPC_FC_SMALL : RPC_FC_USMALL); - case TYPE_BASIC_INT16: return (sign <= 0 ? RPC_FC_SHORT : RPC_FC_USHORT); - case TYPE_BASIC_INT32: return (sign <= 0 ? RPC_FC_LONG : RPC_FC_ULONG); - case TYPE_BASIC_INT64: return RPC_FC_HYPER; - case TYPE_BASIC_INT: return (sign <= 0 ? RPC_FC_LONG : RPC_FC_ULONG); - case TYPE_BASIC_INT3264: return (sign <= 0 ? RPC_FC_INT3264 : RPC_FC_UINT3264); - case TYPE_BASIC_BYTE: return RPC_FC_BYTE; - case TYPE_BASIC_CHAR: return RPC_FC_CHAR; - case TYPE_BASIC_WCHAR: return RPC_FC_WCHAR; - case TYPE_BASIC_HYPER: return RPC_FC_HYPER; - case TYPE_BASIC_FLOAT: return RPC_FC_FLOAT; - case TYPE_BASIC_DOUBLE: return RPC_FC_DOUBLE; - case TYPE_BASIC_ERROR_STATUS_T: return RPC_FC_ERROR_STATUS_T; - case TYPE_BASIC_HANDLE: return RPC_FC_BIND_PRIMITIVE; - } - return 0; -} - -static unsigned char get_basic_fc_signed(const type_t *type) -{ - switch (type_basic_get_type(type)) - { - case TYPE_BASIC_INT8: return RPC_FC_SMALL; - case TYPE_BASIC_INT16: return RPC_FC_SHORT; - case TYPE_BASIC_INT32: return RPC_FC_LONG; - case TYPE_BASIC_INT64: return RPC_FC_HYPER; - case TYPE_BASIC_INT: return RPC_FC_LONG; - case TYPE_BASIC_INT3264: return RPC_FC_INT3264; - case TYPE_BASIC_BYTE: return RPC_FC_BYTE; - case TYPE_BASIC_CHAR: return RPC_FC_CHAR; - case TYPE_BASIC_WCHAR: return RPC_FC_WCHAR; - case TYPE_BASIC_HYPER: return RPC_FC_HYPER; - case TYPE_BASIC_FLOAT: return RPC_FC_FLOAT; - case TYPE_BASIC_DOUBLE: return RPC_FC_DOUBLE; - case TYPE_BASIC_ERROR_STATUS_T: return RPC_FC_ERROR_STATUS_T; - case TYPE_BASIC_HANDLE: return RPC_FC_BIND_PRIMITIVE; - } - return 0; -} - -static inline unsigned int clamp_align(unsigned int align) -{ - unsigned int packing = (pointer_size == 4) ? win32_packing : win64_packing; - if(align > packing) align = packing; - return align; -} - -unsigned char get_pointer_fc(const type_t *type, const attr_list_t *attrs, int toplevel_param) -{ - const type_t *t; - int pointer_type; - - assert(is_ptr(type) || is_array(type)); - - pointer_type = get_attrv(attrs, ATTR_POINTERTYPE); - if (pointer_type) - return pointer_type; - - for (t = type; type_is_alias(t); t = type_alias_get_aliasee(t)) - { - pointer_type = get_attrv(t->attrs, ATTR_POINTERTYPE); - if (pointer_type) - return pointer_type; - } - - if (toplevel_param) - return RPC_FC_RP; - else if (is_ptr(type)) - return type_pointer_get_default_fc(type); - else - return type_array_get_ptr_default_fc(type); -} - -static unsigned char get_pointer_fc_context( const type_t *type, const attr_list_t *attrs, - enum type_context context ) -{ - int pointer_fc = get_pointer_fc(type, attrs, context == TYPE_CONTEXT_TOPLEVELPARAM); - - if (pointer_fc == RPC_FC_UP && is_attr( attrs, ATTR_OUT ) && - context == TYPE_CONTEXT_PARAM && is_object( current_iface )) - pointer_fc = RPC_FC_OP; - - return pointer_fc; -} - -static unsigned char get_enum_fc(const type_t *type) -{ - assert(type_get_type(type) == TYPE_ENUM); - if (is_aliaschain_attr(type, ATTR_V1ENUM)) - return RPC_FC_ENUM32; - else - return RPC_FC_ENUM16; -} - -static type_t *get_user_type(const type_t *t, const char **pname) -{ - for (;;) - { - type_t *ut = get_attrp(t->attrs, ATTR_WIREMARSHAL); - if (ut) - { - if (pname) - *pname = t->name; - return ut; - } - - if (type_is_alias(t)) - t = type_alias_get_aliasee(t); - else - return NULL; - } -} - -static int is_user_type(const type_t *t) -{ - return get_user_type(t, NULL) != NULL; -} - -enum typegen_type typegen_detect_type(const type_t *type, const attr_list_t *attrs, unsigned int flags) -{ - if (is_user_type(type)) - return TGT_USER_TYPE; - - if (is_aliaschain_attr(type, ATTR_CONTEXTHANDLE)) - return TGT_CTXT_HANDLE; - - if (!(flags & TDT_IGNORE_STRINGS) && is_string_type(attrs, type)) - return TGT_STRING; - - switch (type_get_type(type)) - { - case TYPE_BASIC: - if (!(flags & TDT_IGNORE_RANGES) && - (is_attr(attrs, ATTR_RANGE) || is_aliaschain_attr(type, ATTR_RANGE))) - return TGT_RANGE; - return TGT_BASIC; - case TYPE_ENUM: - if (!(flags & TDT_IGNORE_RANGES) && - (is_attr(attrs, ATTR_RANGE) || is_aliaschain_attr(type, ATTR_RANGE))) - return TGT_RANGE; - return TGT_ENUM; - case TYPE_POINTER: - if (type_get_type(type_pointer_get_ref(type)) == TYPE_INTERFACE || - (type_get_type(type_pointer_get_ref(type)) == TYPE_VOID && is_attr(attrs, ATTR_IIDIS))) - return TGT_IFACE_POINTER; - else if (is_aliaschain_attr(type_pointer_get_ref(type), ATTR_CONTEXTHANDLE)) - return TGT_CTXT_HANDLE_POINTER; - else - return TGT_POINTER; - case TYPE_STRUCT: - return TGT_STRUCT; - case TYPE_ENCAPSULATED_UNION: - case TYPE_UNION: - return TGT_UNION; - case TYPE_ARRAY: - return TGT_ARRAY; - case TYPE_FUNCTION: - case TYPE_COCLASS: - case TYPE_INTERFACE: - case TYPE_MODULE: - case TYPE_VOID: - case TYPE_ALIAS: - case TYPE_BITFIELD: - break; - } - return TGT_INVALID; -} - -static int cant_be_null(const var_t *v) -{ - switch (typegen_detect_type(v->type, v->attrs, TDT_IGNORE_STRINGS)) - { - case TGT_ARRAY: - if (!type_array_is_decl_as_ptr( v->type )) return 0; - /* fall through */ - case TGT_POINTER: - return (get_pointer_fc(v->type, v->attrs, TRUE) == RPC_FC_RP); - case TGT_CTXT_HANDLE_POINTER: - return TRUE; - default: - return 0; - } - -} - -static int get_padding(const var_list_t *fields) -{ - unsigned short offset = 0; - unsigned int salign = 1; - const var_t *f; - - if (!fields) - return 0; - - LIST_FOR_EACH_ENTRY(f, fields, const var_t, entry) - { - type_t *ft = f->type; - unsigned int align = 0; - unsigned int size = type_memsize_and_alignment(ft, &align); - align = clamp_align(align); - if (align > salign) salign = align; - offset = ROUND_SIZE(offset, align); - offset += size; - } - - return ROUNDING(offset, salign); -} - -static unsigned int get_stack_size( const var_t *var, int *by_value ) -{ - unsigned int stack_size; - int by_val; - - switch (typegen_detect_type( var->type, var->attrs, TDT_ALL_TYPES )) - { - case TGT_BASIC: - case TGT_ENUM: - case TGT_RANGE: - case TGT_STRUCT: - case TGT_UNION: - case TGT_USER_TYPE: - stack_size = type_memsize( var->type ); - by_val = (pointer_size < 8 || stack_size <= pointer_size); /* FIXME: should be platform-specific */ - break; - default: - by_val = 0; - break; - } - if (!by_val) stack_size = pointer_size; - if (by_value) *by_value = by_val; - return ROUND_SIZE( stack_size, pointer_size ); -} - -static unsigned char get_contexthandle_flags( const type_t *iface, const attr_list_t *attrs, - const type_t *type ) -{ - unsigned char flags = 0; - - if (is_attr(iface->attrs, ATTR_STRICTCONTEXTHANDLE)) flags |= NDR_STRICT_CONTEXT_HANDLE; - - if (is_ptr(type) && - !is_attr( type->attrs, ATTR_CONTEXTHANDLE ) && - !is_attr( attrs, ATTR_CONTEXTHANDLE )) - flags |= 0x80; - - if (is_attr(attrs, ATTR_IN)) - { - flags |= 0x40; - if (!is_attr(attrs, ATTR_OUT)) flags |= NDR_CONTEXT_HANDLE_CANNOT_BE_NULL; - } - if (is_attr(attrs, ATTR_OUT)) flags |= 0x20; - - return flags; -} - -static unsigned int get_rpc_flags( const attr_list_t *attrs ) -{ - unsigned int flags = 0; - - if (is_attr( attrs, ATTR_IDEMPOTENT )) flags |= 0x0001; - if (is_attr( attrs, ATTR_BROADCAST )) flags |= 0x0002; - if (is_attr( attrs, ATTR_MAYBE )) flags |= 0x0004; - if (is_attr( attrs, ATTR_MESSAGE )) flags |= 0x0100; - if (is_attr( attrs, ATTR_ASYNC )) flags |= 0x4000; - return flags; -} - -unsigned char get_struct_fc(const type_t *type) -{ - int has_pointer = 0; - int has_conformance = 0; - int has_variance = 0; - var_t *field; - var_list_t *fields; - - fields = type_struct_get_fields(type); - - if (get_padding(fields)) - return RPC_FC_BOGUS_STRUCT; - - if (fields) LIST_FOR_EACH_ENTRY( field, fields, var_t, entry ) - { - type_t *t = field->type; - enum typegen_type typegen_type; - - typegen_type = typegen_detect_type(t, field->attrs, TDT_IGNORE_STRINGS); - - if (typegen_type == TGT_ARRAY && !type_array_is_decl_as_ptr(t)) - { - if (is_string_type(field->attrs, field->type)) - { - if (is_conformant_array(t)) - has_conformance = 1; - has_variance = 1; - continue; - } - - if (is_array(type_array_get_element(field->type))) - return RPC_FC_BOGUS_STRUCT; - - if (type_array_has_conformance(field->type)) - { - has_conformance = 1; - if (list_next(fields, &field->entry)) - error_loc("field '%s' deriving from a conformant array must be the last field in the structure\n", - field->name); - } - if (type_array_has_variance(t)) - has_variance = 1; - - t = type_array_get_element(t); - typegen_type = typegen_detect_type(t, field->attrs, TDT_IGNORE_STRINGS); - } - - switch (typegen_type) - { - case TGT_USER_TYPE: - case TGT_IFACE_POINTER: - return RPC_FC_BOGUS_STRUCT; - case TGT_BASIC: - if (type_basic_get_type(t) == TYPE_BASIC_INT3264 && pointer_size != 4) - return RPC_FC_BOGUS_STRUCT; - break; - case TGT_ENUM: - if (get_enum_fc(t) == RPC_FC_ENUM16) - return RPC_FC_BOGUS_STRUCT; - break; - case TGT_POINTER: - case TGT_ARRAY: - if (get_pointer_fc(t, field->attrs, FALSE) == RPC_FC_RP || pointer_size != 4) - return RPC_FC_BOGUS_STRUCT; - has_pointer = 1; - break; - case TGT_UNION: - return RPC_FC_BOGUS_STRUCT; - case TGT_STRUCT: - { - unsigned char fc = get_struct_fc(t); - switch (fc) - { - case RPC_FC_STRUCT: - break; - case RPC_FC_CVSTRUCT: - has_conformance = 1; - has_variance = 1; - has_pointer = 1; - break; - - case RPC_FC_CPSTRUCT: - has_conformance = 1; - if (list_next( fields, &field->entry )) - error_loc("field '%s' deriving from a conformant array must be the last field in the structure\n", - field->name); - has_pointer = 1; - break; - - case RPC_FC_CSTRUCT: - has_conformance = 1; - if (list_next( fields, &field->entry )) - error_loc("field '%s' deriving from a conformant array must be the last field in the structure\n", - field->name); - break; - - case RPC_FC_PSTRUCT: - has_pointer = 1; - break; - - default: - error_loc("Unknown struct member %s with type (0x%02x)\n", field->name, fc); - /* fallthru - treat it as complex */ - - /* as soon as we see one of these these members, it's bogus... */ - case RPC_FC_BOGUS_STRUCT: - return RPC_FC_BOGUS_STRUCT; - } - break; - } - case TGT_RANGE: - return RPC_FC_BOGUS_STRUCT; - case TGT_STRING: - /* shouldn't get here because of TDT_IGNORE_STRINGS above. fall through */ - case TGT_INVALID: - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - /* checking after parsing should mean that we don't get here. if we do, - * it's a checker bug */ - assert(0); - } - } - - if( has_variance ) - { - if ( has_conformance ) - return RPC_FC_CVSTRUCT; - else - return RPC_FC_BOGUS_STRUCT; - } - if( has_conformance && has_pointer ) - return RPC_FC_CPSTRUCT; - if( has_conformance ) - return RPC_FC_CSTRUCT; - if( has_pointer ) - return RPC_FC_PSTRUCT; - return RPC_FC_STRUCT; -} - -static unsigned char get_array_fc(const type_t *type) -{ - unsigned char fc; - const expr_t *size_is; - const type_t *elem_type; - - elem_type = type_array_get_element(type); - size_is = type_array_get_conformance(type); - - if (!size_is) - { - unsigned int size = type_memsize(elem_type); - if (size * type_array_get_dim(type) > 0xffffuL) - fc = RPC_FC_LGFARRAY; - else - fc = RPC_FC_SMFARRAY; - } - else - fc = RPC_FC_CARRAY; - - if (type_array_has_variance(type)) - { - if (fc == RPC_FC_SMFARRAY) - fc = RPC_FC_SMVARRAY; - else if (fc == RPC_FC_LGFARRAY) - fc = RPC_FC_LGVARRAY; - else if (fc == RPC_FC_CARRAY) - fc = RPC_FC_CVARRAY; - } - - switch (typegen_detect_type(elem_type, NULL, TDT_IGNORE_STRINGS)) - { - case TGT_USER_TYPE: - fc = RPC_FC_BOGUS_ARRAY; - break; - case TGT_BASIC: - if (type_basic_get_type(elem_type) == TYPE_BASIC_INT3264 && - pointer_size != 4) - fc = RPC_FC_BOGUS_ARRAY; - break; - case TGT_STRUCT: - switch (get_struct_fc(elem_type)) - { - case RPC_FC_BOGUS_STRUCT: - fc = RPC_FC_BOGUS_ARRAY; - break; - } - break; - case TGT_ENUM: - /* is 16-bit enum - if so, wire size differs from mem size and so - * the array cannot be block copied, which means the array is complex */ - if (get_enum_fc(elem_type) == RPC_FC_ENUM16) - fc = RPC_FC_BOGUS_ARRAY; - break; - case TGT_UNION: - case TGT_IFACE_POINTER: - fc = RPC_FC_BOGUS_ARRAY; - break; - case TGT_POINTER: - /* ref pointers cannot just be block copied. unique pointers to - * interfaces need special treatment. either case means the array is - * complex */ - if (get_pointer_fc(elem_type, NULL, FALSE) == RPC_FC_RP || pointer_size != 4) - fc = RPC_FC_BOGUS_ARRAY; - break; - case TGT_RANGE: - fc = RPC_FC_BOGUS_ARRAY; - break; - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - case TGT_STRING: - case TGT_INVALID: - case TGT_ARRAY: - /* nothing to do for everything else */ - break; - } - - return fc; -} - -static int is_non_complex_struct(const type_t *type) -{ - return (type_get_type(type) == TYPE_STRUCT && - get_struct_fc(type) != RPC_FC_BOGUS_STRUCT); -} - -static int type_has_pointers(const type_t *type) -{ - switch (typegen_detect_type(type, NULL, TDT_IGNORE_STRINGS)) - { - case TGT_USER_TYPE: - return FALSE; - case TGT_POINTER: - return TRUE; - case TGT_ARRAY: - return type_array_is_decl_as_ptr(type) || type_has_pointers(type_array_get_element(type)); - case TGT_STRUCT: - { - var_list_t *fields = type_struct_get_fields(type); - const var_t *field; - if (fields) LIST_FOR_EACH_ENTRY( field, fields, const var_t, entry ) - { - if (type_has_pointers(field->type)) - return TRUE; - } - break; - } - case TGT_UNION: - { - var_list_t *fields; - const var_t *field; - fields = type_union_get_cases(type); - if (fields) LIST_FOR_EACH_ENTRY( field, fields, const var_t, entry ) - { - if (field->type && type_has_pointers(field->type)) - return TRUE; - } - break; - } - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - case TGT_STRING: - case TGT_IFACE_POINTER: - case TGT_BASIC: - case TGT_ENUM: - case TGT_RANGE: - case TGT_INVALID: - break; - } - - return FALSE; -} - -static int type_has_full_pointer(const type_t *type, const attr_list_t *attrs, - int toplevel_param) -{ - switch (typegen_detect_type(type, NULL, TDT_IGNORE_STRINGS)) - { - case TGT_USER_TYPE: - return FALSE; - case TGT_POINTER: - if (get_pointer_fc(type, attrs, toplevel_param) == RPC_FC_FP) - return TRUE; - else - return FALSE; - case TGT_ARRAY: - if (get_pointer_fc(type, attrs, toplevel_param) == RPC_FC_FP) - return TRUE; - else - return type_has_full_pointer(type_array_get_element(type), NULL, FALSE); - case TGT_STRUCT: - { - var_list_t *fields = type_struct_get_fields(type); - const var_t *field; - if (fields) LIST_FOR_EACH_ENTRY( field, fields, const var_t, entry ) - { - if (type_has_full_pointer(field->type, field->attrs, FALSE)) - return TRUE; - } - break; - } - case TGT_UNION: - { - var_list_t *fields; - const var_t *field; - fields = type_union_get_cases(type); - if (fields) LIST_FOR_EACH_ENTRY( field, fields, const var_t, entry ) - { - if (field->type && type_has_full_pointer(field->type, field->attrs, FALSE)) - return TRUE; - } - break; - } - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - case TGT_STRING: - case TGT_IFACE_POINTER: - case TGT_BASIC: - case TGT_ENUM: - case TGT_RANGE: - case TGT_INVALID: - break; - } - - return FALSE; -} - -static unsigned short user_type_offset(const char *name) -{ - user_type_t *ut; - unsigned short off = 0; - LIST_FOR_EACH_ENTRY(ut, &user_type_list, user_type_t, entry) - { - if (strcmp(name, ut->name) == 0) - return off; - ++off; - } - error("user_type_offset: couldn't find type (%s)\n", name); - return 0; -} - -static void update_tfsoff(type_t *type, unsigned int offset, FILE *file) -{ - type->typestring_offset = offset; - if (file) type->tfswrite = FALSE; -} - -static void guard_rec(type_t *type) -{ - /* types that contain references to themselves (like a linked list), - need to be shielded from infinite recursion when writing embedded - types */ - if (type->typestring_offset) - type->tfswrite = FALSE; - else - type->typestring_offset = 1; -} - -static int is_embedded_complex(const type_t *type) -{ - switch (typegen_detect_type(type, NULL, TDT_ALL_TYPES)) - { - case TGT_USER_TYPE: - case TGT_STRUCT: - case TGT_UNION: - case TGT_ARRAY: - case TGT_IFACE_POINTER: - return TRUE; - default: - return FALSE; - } -} - -static const char *get_context_handle_type_name(const type_t *type) -{ - const type_t *t; - for (t = type; - is_ptr(t) || type_is_alias(t); - t = type_is_alias(t) ? type_alias_get_aliasee(t) : type_pointer_get_ref(t)) - if (is_attr(t->attrs, ATTR_CONTEXTHANDLE)) - return t->name; - assert(0); - return NULL; -} - -#define WRITE_FCTYPE(file, fctype, typestring_offset) \ - do { \ - if (file) \ - fprintf(file, "/* %2u */\n", typestring_offset); \ - print_file((file), 2, "0x%02x, /* " #fctype " */\n", RPC_##fctype); \ - } \ - while (0) - -static void print_file(FILE *file, int indent, const char *format, ...) __attribute__((format (printf, 3, 4))); -static void print_file(FILE *file, int indent, const char *format, ...) -{ - va_list va; - va_start(va, format); - print(file, indent, format, va); - va_end(va); -} - -void print(FILE *file, int indent, const char *format, va_list va) -{ - if (file) - { - if (format[0] != '\n') - while (0 < indent--) - fprintf(file, " "); - vfprintf(file, format, va); - } -} - - -static void write_var_init(FILE *file, int indent, const type_t *t, const char *n, const char *local_var_prefix) -{ - if (decl_indirect(t)) - { - print_file(file, indent, "MIDL_memset(&%s%s, 0, sizeof(%s%s));\n", - local_var_prefix, n, local_var_prefix, n); - print_file(file, indent, "%s_p_%s = &%s%s;\n", local_var_prefix, n, local_var_prefix, n); - } - else if (is_ptr(t) || is_array(t)) - print_file(file, indent, "%s%s = 0;\n", local_var_prefix, n); -} - -void write_parameters_init(FILE *file, int indent, const var_t *func, const char *local_var_prefix) -{ - const var_t *var = type_function_get_retval(func->type); - - if (!is_void(var->type)) - write_var_init(file, indent, var->type, var->name, local_var_prefix); - - if (!type_get_function_args(func->type)) - return; - - LIST_FOR_EACH_ENTRY( var, type_get_function_args(func->type), const var_t, entry ) - write_var_init(file, indent, var->type, var->name, local_var_prefix); - - fprintf(file, "\n"); -} - -static void write_formatdesc(FILE *f, int indent, const char *str) -{ - print_file(f, indent, "typedef struct _MIDL_%s_FORMAT_STRING\n", str); - print_file(f, indent, "{\n"); - print_file(f, indent + 1, "short Pad;\n"); - print_file(f, indent + 1, "unsigned char Format[%s_FORMAT_STRING_SIZE];\n", str); - print_file(f, indent, "} MIDL_%s_FORMAT_STRING;\n", str); - print_file(f, indent, "\n"); -} - -void write_formatstringsdecl(FILE *f, int indent, const statement_list_t *stmts, type_pred_t pred) -{ - clear_all_offsets(); - - print_file(f, indent, "#define TYPE_FORMAT_STRING_SIZE %d\n", - get_size_typeformatstring(stmts, pred)); - - print_file(f, indent, "#define PROC_FORMAT_STRING_SIZE %d\n", - get_size_procformatstring(stmts, pred)); - - fprintf(f, "\n"); - write_formatdesc(f, indent, "TYPE"); - write_formatdesc(f, indent, "PROC"); - fprintf(f, "\n"); - print_file(f, indent, "static const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString;\n"); - print_file(f, indent, "static const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString;\n"); - print_file(f, indent, "\n"); -} - -int decl_indirect(const type_t *t) -{ - if (is_user_type(t)) - return TRUE; - return (type_get_type(t) != TYPE_BASIC && - type_get_type(t) != TYPE_ENUM && - type_get_type(t) != TYPE_POINTER && - type_get_type(t) != TYPE_ARRAY); -} - -static unsigned char get_parameter_fc( const var_t *var, int is_return, unsigned short *flags, - unsigned int *stack_size, unsigned int *typestring_offset ) -{ - unsigned int alignment, server_size = 0, buffer_size = 0; - unsigned char fc = 0; - int is_byval; - int is_in = is_attr(var->attrs, ATTR_IN); - int is_out = is_attr(var->attrs, ATTR_OUT); - - if (is_return) is_out = TRUE; - else if (!is_in && !is_out) is_in = TRUE; - - *flags = 0; - *stack_size = get_stack_size( var, &is_byval ); - *typestring_offset = var->typestring_offset; - - if (is_in) *flags |= IsIn; - if (is_out) *flags |= IsOut; - if (is_return) *flags |= IsReturn; - - if (!is_string_type( var->attrs, var->type )) - buffer_size = get_required_buffer_size_type( var->type, NULL, var->attrs, TRUE, &alignment ); - - switch (typegen_detect_type( var->type, var->attrs, TDT_ALL_TYPES )) - { - case TGT_BASIC: - *flags |= IsBasetype; - fc = get_basic_fc_signed( var->type ); - if (fc == RPC_FC_BIND_PRIMITIVE) - { - buffer_size = 4; /* actually 0 but avoids setting MustSize */ - fc = RPC_FC_LONG; - } - break; - case TGT_ENUM: - *flags |= IsBasetype; - fc = get_enum_fc( var->type ); - break; - case TGT_RANGE: - *flags |= IsByValue; - break; - case TGT_STRUCT: - case TGT_UNION: - case TGT_USER_TYPE: - *flags |= MustFree | (is_byval ? IsByValue : IsSimpleRef); - break; - case TGT_IFACE_POINTER: - *flags |= MustFree; - break; - case TGT_ARRAY: - *flags |= MustFree; - if (type_array_is_decl_as_ptr(var->type) && var->type->details.array.ptr_tfsoff && - get_pointer_fc( var->type, var->attrs, !is_return ) == RPC_FC_RP) - { - *typestring_offset = var->type->typestring_offset; - *flags |= IsSimpleRef; - } - break; - case TGT_STRING: - *flags |= MustFree; - if (is_declptr( var->type ) && get_pointer_fc( var->type, var->attrs, !is_return ) == RPC_FC_RP) - { - /* skip over pointer description straight to string description */ - if (is_conformant_array( var->type )) *typestring_offset += 4; - else *typestring_offset += 2; - *flags |= IsSimpleRef; - } - break; - case TGT_CTXT_HANDLE_POINTER: - *flags |= IsSimpleRef; - *typestring_offset += 4; - /* fall through */ - case TGT_CTXT_HANDLE: - buffer_size = 20; - break; - case TGT_POINTER: - if (get_pointer_fc( var->type, var->attrs, !is_return ) == RPC_FC_RP) - { - const type_t *ref = type_pointer_get_ref( var->type ); - - if (!is_string_type( var->attrs, ref )) - buffer_size = get_required_buffer_size_type( ref, NULL, NULL, TRUE, &alignment ); - - switch (typegen_detect_type( ref, NULL, TDT_ALL_TYPES )) - { - case TGT_BASIC: - *flags |= IsSimpleRef | IsBasetype; - fc = get_basic_fc( ref ); - if (!is_in && is_out) server_size = pointer_size; - break; - case TGT_ENUM: - if ((fc = get_enum_fc( ref )) == RPC_FC_ENUM32) - { - *flags |= IsSimpleRef | IsBasetype; - if (!is_in && is_out) server_size = pointer_size; - } - else - { - server_size = pointer_size; - } - break; - case TGT_UNION: - case TGT_USER_TYPE: - case TGT_RANGE: - *flags |= IsSimpleRef | MustFree; - *typestring_offset = ref->typestring_offset; - if (!is_in && is_out) server_size = type_memsize( ref ); - break; - case TGT_STRING: - case TGT_POINTER: - case TGT_ARRAY: - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - *flags |= MustFree; - server_size = pointer_size; - break; - case TGT_IFACE_POINTER: - *flags |= MustFree; - if (is_in && is_out) server_size = pointer_size; - break; - case TGT_STRUCT: - *flags |= IsSimpleRef | MustFree; - *typestring_offset = ref->typestring_offset; - switch (get_struct_fc(ref)) - { - case RPC_FC_STRUCT: - case RPC_FC_PSTRUCT: - case RPC_FC_BOGUS_STRUCT: - if (!is_in && is_out) server_size = type_memsize( ref ); - break; - default: - break; - } - break; - case TGT_INVALID: - assert(0); - } - } - else /* not ref pointer */ - { - *flags |= MustFree; - } - break; - case TGT_INVALID: - assert(0); - } - - if (!buffer_size) *flags |= MustSize; - - if (server_size) - { - server_size = (server_size + 7) / 8; - if (server_size < 8) *flags |= server_size << 13; - } - return fc; -} - -static unsigned char get_func_oi2_flags( const var_t *func ) -{ - const var_t *var; - var_list_t *args = type_get_function_args( func->type ); - var_t *retval = type_function_get_retval( func->type ); - unsigned char oi2_flags = 0x40; /* HasExtensions */ - unsigned short flags; - unsigned int stack_size, typestring_offset; - - if (args) LIST_FOR_EACH_ENTRY( var, args, const var_t, entry ) - { - get_parameter_fc( var, 0, &flags, &stack_size, &typestring_offset ); - if (flags & MustSize) - { - if (flags & IsIn) oi2_flags |= 0x02; /* ClientMustSize */ - if (flags & IsOut) oi2_flags |= 0x01; /* ServerMustSize */ - } - } - - if (!is_void( retval->type )) - { - oi2_flags |= 0x04; /* HasRet */ - get_parameter_fc( retval, 1, &flags, &stack_size, &typestring_offset ); - if (flags & MustSize) oi2_flags |= 0x01; /* ServerMustSize */ - } - return oi2_flags; -} - -static unsigned int write_new_procformatstring_type(FILE *file, int indent, const var_t *var, - int is_return, unsigned int *stack_offset) -{ - char buffer[64]; - unsigned int stack_size, typestring_offset; - unsigned short flags; - unsigned char fc = get_parameter_fc( var, is_return, &flags, &stack_size, &typestring_offset ); - - strcpy( buffer, "/* flags:" ); - if (flags & MustSize) strcat( buffer, " must size," ); - if (flags & MustFree) strcat( buffer, " must free," ); - if (flags & IsPipe) strcat( buffer, " pipe," ); - if (flags & IsIn) strcat( buffer, " in," ); - if (flags & IsOut) strcat( buffer, " out," ); - if (flags & IsReturn) strcat( buffer, " return," ); - if (flags & IsBasetype) strcat( buffer, " base type," ); - if (flags & IsByValue) strcat( buffer, " by value," ); - if (flags & IsSimpleRef) strcat( buffer, " simple ref," ); - if (flags >> 13) sprintf( buffer + strlen(buffer), " srv size=%u,", (flags >> 13) * 8 ); - strcpy( buffer + strlen( buffer ) - 1, " */" ); - print_file( file, indent, "NdrFcShort(0x%hx),\t%s\n", flags, buffer ); - print_file( file, indent, "NdrFcShort(0x%hx), /* stack offset = %hu */\n", - *stack_offset, *stack_offset ); - if (flags & IsBasetype) - { - print_file( file, indent, "0x%02x, /* %s */\n", fc, string_of_type(fc) ); - print_file( file, indent, "0x0,\n" ); - } - else - print_file( file, indent, "NdrFcShort(0x%x), /* type offset = %u */\n", - typestring_offset, typestring_offset ); - *stack_offset += max( stack_size, pointer_size ); - return 6; -} - -static unsigned int write_old_procformatstring_type(FILE *file, int indent, const var_t *var, - int is_return, int is_interpreted) -{ - unsigned int size; - - int is_in = is_attr(var->attrs, ATTR_IN); - int is_out = is_attr(var->attrs, ATTR_OUT); - - if (!is_in && !is_out) is_in = TRUE; - - if (type_get_type(var->type) == TYPE_BASIC || - type_get_type(var->type) == TYPE_ENUM) - { - unsigned char fc; - - if (is_return) - print_file(file, indent, "0x53, /* FC_RETURN_PARAM_BASETYPE */\n"); - else - print_file(file, indent, "0x4e, /* FC_IN_PARAM_BASETYPE */\n"); - - if (type_get_type(var->type) == TYPE_ENUM) - { - fc = get_enum_fc(var->type); - } - else - { - fc = get_basic_fc_signed(var->type); - - if (fc == RPC_FC_BIND_PRIMITIVE) - fc = RPC_FC_IGNORE; - } - - print_file(file, indent, "0x%02x, /* %s */\n", - fc, string_of_type(fc)); - size = 2; /* includes param type prefix */ - } - else - { - unsigned short offset = var->typestring_offset; - - if (!is_interpreted && is_array(var->type) && - type_array_is_decl_as_ptr(var->type) && - var->type->details.array.ptr_tfsoff) - offset = var->type->typestring_offset; - - if (is_return) - print_file(file, indent, "0x52, /* FC_RETURN_PARAM */\n"); - else if (is_in && is_out) - print_file(file, indent, "0x50, /* FC_IN_OUT_PARAM */\n"); - else if (is_out) - print_file(file, indent, "0x51, /* FC_OUT_PARAM */\n"); - else - print_file(file, indent, "0x4d, /* FC_IN_PARAM */\n"); - - size = get_stack_size( var, NULL ); - print_file(file, indent, "0x%02x,\n", size / pointer_size ); - print_file(file, indent, "NdrFcShort(0x%x), /* type offset = %u */\n", offset, offset); - size = 4; /* includes param type prefix */ - } - return size; -} - -int is_interpreted_func( const type_t *iface, const var_t *func ) -{ - const char *str; - const var_t *var; - const var_list_t *args = type_get_function_args( func->type ); - const type_t *ret_type = type_function_get_rettype( func->type ); - - if (type_get_type( ret_type ) == TYPE_BASIC) - { - switch (type_basic_get_type( ret_type )) - { - case TYPE_BASIC_INT64: - case TYPE_BASIC_HYPER: - /* return value must fit in a long_ptr */ - if (pointer_size < 8) return 0; - break; - case TYPE_BASIC_FLOAT: - case TYPE_BASIC_DOUBLE: - /* floating point values can't be returned */ - return 0; - default: - break; - } - } - if (get_stub_mode() != MODE_Oif && args) - { - LIST_FOR_EACH_ENTRY( var, args, const var_t, entry ) - switch (type_get_type( var->type )) - { - case TYPE_BASIC: - switch (type_basic_get_type( var->type )) - { - /* floating point arguments are not supported in Oi mode */ - case TYPE_BASIC_FLOAT: return 0; - case TYPE_BASIC_DOUBLE: return 0; - default: break; - } - break; - /* unions passed by value are not supported in Oi mode */ - case TYPE_UNION: return 0; - case TYPE_ENCAPSULATED_UNION: return 0; - default: break; - } - } - - if ((str = get_attrp( func->attrs, ATTR_OPTIMIZE ))) return !strcmp( str, "i" ); - if ((str = get_attrp( iface->attrs, ATTR_OPTIMIZE ))) return !strcmp( str, "i" ); - return (get_stub_mode() != MODE_Os); -} - -static void write_proc_func_header( FILE *file, int indent, const type_t *iface, - const var_t *func, unsigned int *offset, - unsigned short num_proc ) -{ - var_t *var; - var_list_t *args = type_get_function_args( func->type ); - unsigned char explicit_fc, implicit_fc; - unsigned char handle_flags; - const var_t *handle_var = get_func_handle_var( iface, func, &explicit_fc, &implicit_fc ); - unsigned char oi_flags = RPC_FC_PROC_OIF_RPCFLAGS | RPC_FC_PROC_OIF_NEWINIT; - unsigned int rpc_flags = get_rpc_flags( func->attrs ); - unsigned int nb_args = 0; - unsigned int stack_size = 0; - unsigned short param_num = 0; - unsigned short handle_stack_offset = 0; - unsigned short handle_param_num = 0; - - if (is_full_pointer_function( func )) oi_flags |= RPC_FC_PROC_OIF_FULLPTR; - if (is_object( iface )) - { - oi_flags |= RPC_FC_PROC_OIF_OBJECT; - if (get_stub_mode() == MODE_Oif) oi_flags |= RPC_FC_PROC_OIF_OBJ_V2; - stack_size += pointer_size; - } - - if (args) LIST_FOR_EACH_ENTRY( var, args, var_t, entry ) - { - if (var == handle_var) - { - handle_stack_offset = stack_size; - handle_param_num = param_num; - } - stack_size += get_stack_size( var, NULL ); - param_num++; - nb_args++; - } - if (!is_void( type_function_get_rettype( func->type ))) - { - stack_size += pointer_size; - nb_args++; - } - - print_file( file, 0, "/* %u (procedure %s::%s) */\n", *offset, iface->name, func->name ); - print_file( file, indent, "0x%02x,\t/* %s */\n", implicit_fc, - implicit_fc ? string_of_type(implicit_fc) : "explicit handle" ); - print_file( file, indent, "0x%02x,\n", oi_flags ); - print_file( file, indent, "NdrFcLong(0x%x),\n", rpc_flags ); - print_file( file, indent, "NdrFcShort(0x%hx),\t/* method %hu */\n", num_proc, num_proc ); - print_file( file, indent, "NdrFcShort(0x%hx),\t/* stack size = %hu */\n", stack_size, stack_size ); - *offset += 10; - - if (!implicit_fc) - { - switch (explicit_fc) - { - case RPC_FC_BIND_PRIMITIVE: - handle_flags = 0; - print_file( file, indent, "0x%02x,\t/* %s */\n", explicit_fc, string_of_type(explicit_fc) ); - print_file( file, indent, "0x%02x,\n", handle_flags ); - print_file( file, indent, "NdrFcShort(0x%hx),\t/* stack offset = %hu */\n", - handle_stack_offset, handle_stack_offset ); - *offset += 4; - break; - case RPC_FC_BIND_GENERIC: - handle_flags = type_memsize( handle_var->type ); - print_file( file, indent, "0x%02x,\t/* %s */\n", explicit_fc, string_of_type(explicit_fc) ); - print_file( file, indent, "0x%02x,\n", handle_flags ); - print_file( file, indent, "NdrFcShort(0x%hx),\t/* stack offset = %hu */\n", - handle_stack_offset, handle_stack_offset ); - print_file( file, indent, "0x%02x,\n", get_generic_handle_offset( handle_var->type ) ); - print_file( file, indent, "0x%x,\t/* FC_PAD */\n", RPC_FC_PAD); - *offset += 6; - break; - case RPC_FC_BIND_CONTEXT: - handle_flags = get_contexthandle_flags( iface, handle_var->attrs, handle_var->type ); - print_file( file, indent, "0x%02x,\t/* %s */\n", explicit_fc, string_of_type(explicit_fc) ); - print_file( file, indent, "0x%02x,\n", handle_flags ); - print_file( file, indent, "NdrFcShort(0x%hx),\t/* stack offset = %hu */\n", - handle_stack_offset, handle_stack_offset ); - print_file( file, indent, "0x%02x,\n", get_context_handle_offset( handle_var->type ) ); - print_file( file, indent, "0x%02x,\t/* param %hu */\n", handle_param_num, handle_param_num ); - *offset += 6; - break; - } - } - - if (get_stub_mode() == MODE_Oif) - { - unsigned char oi2_flags = get_func_oi2_flags( func ); - unsigned char ext_flags = 0; - unsigned int size; - - if (is_attr( func->attrs, ATTR_NOTIFY )) ext_flags |= 0x08; /* HasNotify */ - if (is_attr( func->attrs, ATTR_NOTIFYFLAG )) ext_flags |= 0x10; /* HasNotify2 */ - - size = get_function_buffer_size( func, PASS_IN ); - print_file( file, indent, "NdrFcShort(0x%x),\t/* client buffer = %hu */\n", size, size ); - size = get_function_buffer_size( func, PASS_OUT ); - print_file( file, indent, "NdrFcShort(0x%x),\t/* server buffer = %hu */\n", size, size ); - print_file( file, indent, "0x%02x,\n", oi2_flags ); - print_file( file, indent, "0x%02x,\t/* %u params */\n", nb_args, nb_args ); - print_file( file, indent, "0x%02x,\n", pointer_size == 8 ? 10 : 8 ); - print_file( file, indent, "0x%02x,\n", ext_flags ); - print_file( file, indent, "NdrFcShort(0x0),\n" ); /* server corr hint */ - print_file( file, indent, "NdrFcShort(0x0),\n" ); /* client corr hint */ - print_file( file, indent, "NdrFcShort(0x0),\n" ); /* FIXME: notify index */ - *offset += 14; - if (pointer_size == 8) - { - unsigned short pos = 0, fpu_mask = 0; - - if (is_object( iface )) pos += 2; - if (args) LIST_FOR_EACH_ENTRY( var, args, var_t, entry ) - { - if (type_get_type( var->type ) == TYPE_BASIC) - { - switch (type_basic_get_type( var->type )) - { - case TYPE_BASIC_FLOAT: fpu_mask |= 1 << pos; break; - case TYPE_BASIC_DOUBLE: fpu_mask |= 2 << pos; break; - default: break; - } - } - pos += 2; - if (pos >= 16) break; - } - print_file( file, indent, "NdrFcShort(0x%x),\n", fpu_mask ); /* floating point mask */ - *offset += 2; - } - } -} - -static void write_procformatstring_func( FILE *file, int indent, const type_t *iface, - const var_t *func, unsigned int *offset, - unsigned short num_proc ) -{ - unsigned int stack_offset = is_object( iface ) ? pointer_size : 0; - int is_interpreted = is_interpreted_func( iface, func ); - int is_new_style = is_interpreted && (get_stub_mode() == MODE_Oif); - var_t *retval = type_function_get_retval( func->type ); - - if (is_interpreted) write_proc_func_header( file, indent, iface, func, offset, num_proc ); - - /* emit argument data */ - if (type_get_function_args(func->type)) - { - const var_t *var; - LIST_FOR_EACH_ENTRY( var, type_get_function_args(func->type), const var_t, entry ) - { - print_file( file, 0, "/* %u (parameter %s) */\n", *offset, var->name ); - if (is_new_style) - *offset += write_new_procformatstring_type(file, indent, var, FALSE, &stack_offset); - else - *offset += write_old_procformatstring_type(file, indent, var, FALSE, is_interpreted); - } - } - - /* emit return value data */ - if (is_void(retval->type)) - { - if (!is_new_style) - { - print_file(file, 0, "/* %u (void) */\n", *offset); - print_file(file, indent, "0x5b, /* FC_END */\n"); - print_file(file, indent, "0x5c, /* FC_PAD */\n"); - *offset += 2; - } - } - else - { - print_file( file, 0, "/* %u (return value) */\n", *offset ); - if (is_new_style) - *offset += write_new_procformatstring_type(file, indent, retval, TRUE, &stack_offset); - else - *offset += write_old_procformatstring_type(file, indent, retval, TRUE, is_interpreted); - } -} - -static void write_procformatstring_stmts(FILE *file, int indent, const statement_list_t *stmts, - type_pred_t pred, unsigned int *offset) -{ - const statement_t *stmt; - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE) - { - const statement_t *stmt_func; - const type_t *iface = stmt->u.type; - const type_t *parent = type_iface_get_inherit( iface ); - int count = parent ? count_methods( parent ) : 0; - - if (!pred(iface)) continue; - STATEMENTS_FOR_EACH_FUNC(stmt_func, type_iface_get_stmts(iface)) - { - var_t *func = stmt_func->u.var; - if (is_local(func->attrs)) continue; - write_procformatstring_func( file, indent, iface, func, offset, count++ ); - } - } - } -} - -void write_procformatstring(FILE *file, const statement_list_t *stmts, type_pred_t pred) -{ - int indent = 0; - unsigned int offset = 0; - - print_file(file, indent, "static const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString =\n"); - print_file(file, indent, "{\n"); - indent++; - print_file(file, indent, "0,\n"); - print_file(file, indent, "{\n"); - indent++; - - write_procformatstring_stmts(file, indent, stmts, pred, &offset); - - print_file(file, indent, "0x0\n"); - indent--; - print_file(file, indent, "}\n"); - indent--; - print_file(file, indent, "};\n"); - print_file(file, indent, "\n"); -} - -void write_procformatstring_offsets( FILE *file, const type_t *iface ) -{ - const statement_t *stmt; - int indent = 0; - - print_file( file, indent, "static const unsigned short %s_FormatStringOffsetTable[] =\n", - iface->name ); - print_file( file, indent, "{\n" ); - indent++; - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - var_t *func = stmt->u.var; - if (is_local( func->attrs )) continue; - print_file( file, indent, "%u, /* %s */\n", func->procstring_offset, func->name ); - } - indent--; - print_file( file, indent, "};\n\n" ); -} - -static int write_base_type(FILE *file, const type_t *type, unsigned int *typestring_offset) -{ - unsigned char fc; - - if (type_get_type(type) == TYPE_BASIC) - fc = get_basic_fc_signed(type); - else if (type_get_type(type) == TYPE_ENUM) - fc = get_enum_fc(type); - else - return 0; - - print_file(file, 2, "0x%02x,\t/* %s */\n", fc, string_of_type(fc)); - *typestring_offset += 1; - return 1; -} - -/* write conformance / variance descriptor */ -static unsigned int write_conf_or_var_desc(FILE *file, const type_t *cont_type, - unsigned int baseoff, const type_t *type, - const expr_t *expr) -{ - unsigned char operator_type = 0; - unsigned char conftype = RPC_FC_NORMAL_CONFORMANCE; - const char *conftype_string = "field"; - const expr_t *subexpr; - const type_t *iface = NULL; - const char *name; - - if (!expr) - { - print_file(file, 2, "NdrFcLong(0xffffffff),\t/* -1 */\n"); - return 4; - } - - if (expr->is_const) - { - if (expr->cval > UCHAR_MAX * (USHRT_MAX + 1) + USHRT_MAX) - error("write_conf_or_var_desc: constant value %d is greater than " - "the maximum constant size of %d\n", expr->cval, - UCHAR_MAX * (USHRT_MAX + 1) + USHRT_MAX); - - print_file(file, 2, "0x%x, /* Corr desc: constant, val = %d */\n", - RPC_FC_CONSTANT_CONFORMANCE, expr->cval); - print_file(file, 2, "0x%x,\n", expr->cval >> 16); - print_file(file, 2, "NdrFcShort(0x%hx),\n", (unsigned short)expr->cval); - - return 4; - } - - if (!cont_type) /* top-level conformance */ - { - conftype = RPC_FC_TOP_LEVEL_CONFORMANCE; - conftype_string = "parameter"; - cont_type = current_func->type; - name = current_func->name; - iface = current_iface; - } - else - { - name = cont_type->name; - if (is_ptr(type) || (is_array(type) && type_array_is_decl_as_ptr(type))) - { - conftype = RPC_FC_POINTER_CONFORMANCE; - conftype_string = "field pointer"; - } - } - - subexpr = expr; - switch (subexpr->type) - { - case EXPR_PPTR: - subexpr = subexpr->ref; - operator_type = RPC_FC_DEREFERENCE; - break; - case EXPR_DIV: - if (subexpr->u.ext->is_const && (subexpr->u.ext->cval == 2)) - { - subexpr = subexpr->ref; - operator_type = RPC_FC_DIV_2; - } - break; - case EXPR_MUL: - if (subexpr->u.ext->is_const && (subexpr->u.ext->cval == 2)) - { - subexpr = subexpr->ref; - operator_type = RPC_FC_MULT_2; - } - break; - case EXPR_SUB: - if (subexpr->u.ext->is_const && (subexpr->u.ext->cval == 1)) - { - subexpr = subexpr->ref; - operator_type = RPC_FC_SUB_1; - } - break; - case EXPR_ADD: - if (subexpr->u.ext->is_const && (subexpr->u.ext->cval == 1)) - { - subexpr = subexpr->ref; - operator_type = RPC_FC_ADD_1; - } - break; - default: - break; - } - - if (subexpr->type == EXPR_IDENTIFIER) - { - const type_t *correlation_variable = NULL; - unsigned char param_type = 0; - unsigned int offset = 0; - const var_t *var; - struct expr_loc expr_loc; - - if (type_get_type(cont_type) == TYPE_FUNCTION) - { - var_list_t *args = type_get_function_args( cont_type ); - - if (is_object( iface )) offset += pointer_size; - if (args) LIST_FOR_EACH_ENTRY( var, args, const var_t, entry ) - { - if (var->name && !strcmp(var->name, subexpr->u.sval)) - { - expr_loc.v = var; - correlation_variable = var->type; - break; - } - offset += get_stack_size( var, NULL ); - } - } - else - { - var_list_t *fields = type_struct_get_fields( cont_type ); - - if (fields) LIST_FOR_EACH_ENTRY( var, fields, const var_t, entry ) - { - unsigned int size = field_memsize( var->type, &offset ); - if (var->name && !strcmp(var->name, subexpr->u.sval)) - { - expr_loc.v = var; - correlation_variable = var->type; - break; - } - offset += size; - } - } - - if (!correlation_variable) - error("write_conf_or_var_desc: couldn't find variable %s in %s\n", subexpr->u.sval, name); - expr_loc.attr = NULL; - correlation_variable = expr_resolve_type(&expr_loc, cont_type, expr); - - offset -= baseoff; - - if (type_get_type(correlation_variable) == TYPE_BASIC) - { - switch (get_basic_fc(correlation_variable)) - { - case RPC_FC_CHAR: - case RPC_FC_SMALL: - param_type = RPC_FC_SMALL; - break; - case RPC_FC_BYTE: - case RPC_FC_USMALL: - param_type = RPC_FC_USMALL; - break; - case RPC_FC_WCHAR: - case RPC_FC_SHORT: - param_type = RPC_FC_SHORT; - break; - case RPC_FC_USHORT: - param_type = RPC_FC_USHORT; - break; - case RPC_FC_LONG: - param_type = RPC_FC_LONG; - break; - case RPC_FC_ULONG: - param_type = RPC_FC_ULONG; - break; - default: - error("write_conf_or_var_desc: conformance variable type not supported 0x%x\n", - get_basic_fc(correlation_variable)); - } - } - else if (type_get_type(correlation_variable) == TYPE_ENUM) - { - if (get_enum_fc(correlation_variable) == RPC_FC_ENUM32) - param_type = RPC_FC_LONG; - else - param_type = RPC_FC_SHORT; - } - else if (type_get_type(correlation_variable) == TYPE_POINTER) - { - if (pointer_size == 8) - param_type = RPC_FC_HYPER; - else - param_type = RPC_FC_LONG; - } - else - { - error("write_conf_or_var_desc: non-arithmetic type used as correlation variable %s\n", - subexpr->u.sval); - return 0; - } - - print_file(file, 2, "0x%x,\t/* Corr desc: %s %s, %s */\n", - conftype | param_type, conftype_string, subexpr->u.sval, string_of_type(param_type)); - print_file(file, 2, "0x%x,\t/* %s */\n", operator_type, - operator_type ? string_of_type(operator_type) : "no operators"); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* offset = %d */\n", - (unsigned short)offset, offset); - } - else if (!iface || is_interpreted_func( iface, current_func )) - { - unsigned int callback_offset = 0; - struct expr_eval_routine *eval; - int found = 0; - - LIST_FOR_EACH_ENTRY(eval, &expr_eval_routines, struct expr_eval_routine, entry) - { - if (eval->cont_type == cont_type || - (type_get_type( eval->cont_type ) == type_get_type( cont_type ) && - eval->iface == iface && - eval->name && name && !strcmp(eval->name, name) && - !compare_expr(eval->expr, expr))) - { - found = 1; - break; - } - callback_offset++; - } - - if (!found) - { - eval = xmalloc (sizeof(*eval)); - eval->iface = iface; - eval->cont_type = cont_type; - eval->name = xstrdup( name ); - eval->baseoff = baseoff; - eval->expr = expr; - list_add_tail (&expr_eval_routines, &eval->entry); - } - - if (callback_offset > USHRT_MAX) - error("Maximum number of callback routines reached\n"); - - print_file(file, 2, "0x%x,\t/* Corr desc: %s in %s */\n", conftype, conftype_string, name); - print_file(file, 2, "0x%x,\t/* %s */\n", RPC_FC_CALLBACK, "FC_CALLBACK"); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* %u */\n", (unsigned short)callback_offset, callback_offset); - } - else /* output a dummy corr desc that isn't used */ - { - print_file(file, 2, "0x%x,\t/* Corr desc: unused for %s */\n", conftype, name); - print_file(file, 2, "0x0,\n" ); - print_file(file, 2, "NdrFcShort(0x0),\n" ); - } - return 4; -} - -/* return size and start offset of a data field based on current offset */ -static unsigned int field_memsize(const type_t *type, unsigned int *offset) -{ - unsigned int align = 0; - unsigned int size = type_memsize_and_alignment( type, &align ); - - *offset = ROUND_SIZE( *offset, align ); - return size; -} - -static unsigned int fields_memsize(const var_list_t *fields, unsigned int *align) -{ - unsigned int size = 0; - unsigned int max_align; - const var_t *v; - - if (!fields) return 0; - LIST_FOR_EACH_ENTRY( v, fields, const var_t, entry ) - { - unsigned int falign = 0; - unsigned int fsize = type_memsize_and_alignment(v->type, &falign); - if (*align < falign) *align = falign; - falign = clamp_align(falign); - size = ROUND_SIZE(size, falign); - size += fsize; - } - - max_align = clamp_align(*align); - size = ROUND_SIZE(size, max_align); - - return size; -} - -static unsigned int union_memsize(const var_list_t *fields, unsigned int *pmaxa) -{ - unsigned int size, maxs = 0; - unsigned int align = *pmaxa; - const var_t *v; - - if (fields) LIST_FOR_EACH_ENTRY( v, fields, const var_t, entry ) - { - /* we could have an empty default field with NULL type */ - if (v->type) - { - size = type_memsize_and_alignment(v->type, &align); - if (maxs < size) maxs = size; - if (*pmaxa < align) *pmaxa = align; - } - } - - return maxs; -} - -static unsigned int type_memsize_and_alignment(const type_t *t, unsigned int *align) -{ - unsigned int size = 0; - - switch (type_get_type(t)) - { - case TYPE_BASIC: - switch (get_basic_fc(t)) - { - case RPC_FC_BYTE: - case RPC_FC_CHAR: - case RPC_FC_USMALL: - case RPC_FC_SMALL: - size = 1; - if (size > *align) *align = size; - break; - case RPC_FC_WCHAR: - case RPC_FC_USHORT: - case RPC_FC_SHORT: - size = 2; - if (size > *align) *align = size; - break; - case RPC_FC_ULONG: - case RPC_FC_LONG: - case RPC_FC_ERROR_STATUS_T: - case RPC_FC_FLOAT: - size = 4; - if (size > *align) *align = size; - break; - case RPC_FC_HYPER: - case RPC_FC_DOUBLE: - size = 8; - if (size > *align) *align = size; - break; - case RPC_FC_INT3264: - case RPC_FC_UINT3264: - case RPC_FC_BIND_PRIMITIVE: - assert( pointer_size ); - size = pointer_size; - if (size > *align) *align = size; - break; - default: - error("type_memsize: Unknown type 0x%x\n", get_basic_fc(t)); - size = 0; - } - break; - case TYPE_ENUM: - switch (get_enum_fc(t)) - { - case RPC_FC_ENUM16: - case RPC_FC_ENUM32: - size = 4; - if (size > *align) *align = size; - break; - default: - error("type_memsize: Unknown enum type\n"); - size = 0; - } - break; - case TYPE_STRUCT: - size = fields_memsize(type_struct_get_fields(t), align); - break; - case TYPE_ENCAPSULATED_UNION: - size = fields_memsize(type_encapsulated_union_get_fields(t), align); - break; - case TYPE_UNION: - size = union_memsize(type_union_get_cases(t), align); - break; - case TYPE_POINTER: - assert( pointer_size ); - size = pointer_size; - if (size > *align) *align = size; - break; - case TYPE_ARRAY: - if (!type_array_is_decl_as_ptr(t)) - { - if (is_conformant_array(t)) - { - type_memsize_and_alignment(type_array_get_element(t), align); - size = 0; - } - else - size = type_array_get_dim(t) * - type_memsize_and_alignment(type_array_get_element(t), align); - } - else /* declared as a pointer */ - { - assert( pointer_size ); - size = pointer_size; - if (size > *align) *align = size; - } - break; - case TYPE_INTERFACE: - case TYPE_ALIAS: - case TYPE_VOID: - case TYPE_COCLASS: - case TYPE_MODULE: - case TYPE_FUNCTION: - case TYPE_BITFIELD: - /* these types should not be encountered here due to language - * restrictions (interface, void, coclass, module), logical - * restrictions (alias - due to type_get_type call above) or - * checking restrictions (function, bitfield). */ - assert(0); - } - - return size; -} - -unsigned int type_memsize(const type_t *t) -{ - unsigned int align = 0; - return type_memsize_and_alignment( t, &align ); -} - -static unsigned int type_buffer_alignment(const type_t *t) -{ - const var_list_t *fields; - const var_t *var; - unsigned int max = 0, align; - - switch (type_get_type(t)) - { - case TYPE_BASIC: - switch (get_basic_fc(t)) - { - case RPC_FC_BYTE: - case RPC_FC_CHAR: - case RPC_FC_USMALL: - case RPC_FC_SMALL: - return 1; - case RPC_FC_WCHAR: - case RPC_FC_USHORT: - case RPC_FC_SHORT: - return 2; - case RPC_FC_ULONG: - case RPC_FC_LONG: - case RPC_FC_ERROR_STATUS_T: - case RPC_FC_FLOAT: - case RPC_FC_INT3264: - case RPC_FC_UINT3264: - return 4; - case RPC_FC_HYPER: - case RPC_FC_DOUBLE: - return 8; - default: - error("type_buffer_alignment: Unknown type 0x%x\n", get_basic_fc(t)); - } - break; - case TYPE_ENUM: - switch (get_enum_fc(t)) - { - case RPC_FC_ENUM16: - return 2; - case RPC_FC_ENUM32: - return 4; - default: - error("type_buffer_alignment: Unknown enum type\n"); - } - break; - case TYPE_STRUCT: - if (!(fields = type_struct_get_fields(t))) break; - LIST_FOR_EACH_ENTRY( var, fields, const var_t, entry ) - { - if (!var->type) continue; - align = type_buffer_alignment( var->type ); - if (max < align) max = align; - } - break; - case TYPE_ENCAPSULATED_UNION: - if (!(fields = type_encapsulated_union_get_fields(t))) break; - LIST_FOR_EACH_ENTRY( var, fields, const var_t, entry ) - { - if (!var->type) continue; - align = type_buffer_alignment( var->type ); - if (max < align) max = align; - } - break; - case TYPE_UNION: - if (!(fields = type_union_get_cases(t))) break; - LIST_FOR_EACH_ENTRY( var, fields, const var_t, entry ) - { - if (!var->type) continue; - align = type_buffer_alignment( var->type ); - if (max < align) max = align; - } - break; - case TYPE_ARRAY: - if (!type_array_is_decl_as_ptr(t)) - return type_buffer_alignment( type_array_get_element(t) ); - /* else fall through */ - case TYPE_POINTER: - return 4; - case TYPE_INTERFACE: - case TYPE_ALIAS: - case TYPE_VOID: - case TYPE_COCLASS: - case TYPE_MODULE: - case TYPE_FUNCTION: - case TYPE_BITFIELD: - /* these types should not be encountered here due to language - * restrictions (interface, void, coclass, module), logical - * restrictions (alias - due to type_get_type call above) or - * checking restrictions (function, bitfield). */ - assert(0); - } - return max; -} - -int is_full_pointer_function(const var_t *func) -{ - const var_t *var; - if (type_has_full_pointer(type_function_get_rettype(func->type), func->attrs, TRUE)) - return TRUE; - if (!type_get_function_args(func->type)) - return FALSE; - LIST_FOR_EACH_ENTRY( var, type_get_function_args(func->type), const var_t, entry ) - if (type_has_full_pointer( var->type, var->attrs, TRUE )) - return TRUE; - return FALSE; -} - -void write_full_pointer_init(FILE *file, int indent, const var_t *func, int is_server) -{ - print_file(file, indent, "__frame->_StubMsg.FullPtrXlatTables = NdrFullPointerXlatInit(0,%s);\n", - is_server ? "XLAT_SERVER" : "XLAT_CLIENT"); - fprintf(file, "\n"); -} - -void write_full_pointer_free(FILE *file, int indent, const var_t *func) -{ - print_file(file, indent, "NdrFullPointerXlatFree(__frame->_StubMsg.FullPtrXlatTables);\n"); - fprintf(file, "\n"); -} - -static unsigned int write_nonsimple_pointer(FILE *file, const attr_list_t *attrs, - const type_t *type, - enum type_context context, - unsigned int offset, - unsigned int *typeformat_offset) -{ - unsigned int start_offset = *typeformat_offset; - short reloff = offset - (*typeformat_offset + 2); - int in_attr, out_attr; - int pointer_type; - unsigned char flags = 0; - - pointer_type = get_pointer_fc_context(type, attrs, context); - - in_attr = is_attr(attrs, ATTR_IN); - out_attr = is_attr(attrs, ATTR_OUT); - if (!in_attr && !out_attr) in_attr = 1; - - if (out_attr && !in_attr && pointer_type == RPC_FC_RP) - flags |= RPC_FC_P_ONSTACK; - - if (is_ptr(type)) - { - type_t *ref = type_pointer_get_ref(type); - if(is_declptr(ref) && !is_user_type(ref)) - flags |= RPC_FC_P_DEREF; - } - - print_file(file, 2, "0x%x, 0x%x,\t\t/* %s", - pointer_type, - flags, - string_of_type(pointer_type)); - if (file) - { - if (flags & RPC_FC_P_ONSTACK) - fprintf(file, " [allocated_on_stack]"); - if (flags & RPC_FC_P_DEREF) - fprintf(file, " [pointer_deref]"); - fprintf(file, " */\n"); - } - - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Offset= %hd (%u) */\n", reloff, reloff, offset); - *typeformat_offset += 4; - - return start_offset; -} - -static unsigned int write_simple_pointer(FILE *file, const attr_list_t *attrs, - const type_t *type, enum type_context context) -{ - unsigned char fc; - unsigned char pointer_fc; - const type_t *ref; - int in_attr = is_attr(attrs, ATTR_IN); - int out_attr = is_attr(attrs, ATTR_OUT); - unsigned char flags = RPC_FC_P_SIMPLEPOINTER; - - /* for historical reasons, write_simple_pointer also handled string types, - * but no longer does. catch bad uses of the function with this check */ - if (is_string_type(attrs, type)) - error("write_simple_pointer: can't handle type %s which is a string type\n", type->name); - - pointer_fc = get_pointer_fc_context(type, attrs, context); - - ref = type_pointer_get_ref(type); - if (type_get_type(ref) == TYPE_ENUM) - fc = get_enum_fc(ref); - else - fc = get_basic_fc(ref); - - if (out_attr && !in_attr) - flags |= RPC_FC_P_ONSTACK; - - print_file(file, 2, "0x%02x, 0x%x,\t/* %s %s[simple_pointer] */\n", - pointer_fc, flags, string_of_type(pointer_fc), - flags & RPC_FC_P_ONSTACK ? "[allocated_on_stack] " : ""); - print_file(file, 2, "0x%02x,\t/* %s */\n", fc, string_of_type(fc)); - print_file(file, 2, "0x5c,\t/* FC_PAD */\n"); - return 4; -} - -static void print_start_tfs_comment(FILE *file, type_t *t, unsigned int tfsoff) -{ - print_file(file, 0, "/* %u (", tfsoff); - write_type_decl(file, t, NULL); - print_file(file, 0, ") */\n"); -} - -static unsigned int write_pointer_tfs(FILE *file, const attr_list_t *attrs, - type_t *type, unsigned int ref_offset, - enum type_context context, - unsigned int *typestring_offset) -{ - unsigned int offset = *typestring_offset; - type_t *ref = type_pointer_get_ref(type); - - print_start_tfs_comment(file, type, offset); - update_tfsoff(type, offset, file); - - switch (typegen_detect_type(ref, attrs, TDT_ALL_TYPES)) - { - case TGT_BASIC: - case TGT_ENUM: - *typestring_offset += write_simple_pointer(file, attrs, type, context); - break; - default: - if (ref_offset) - write_nonsimple_pointer(file, attrs, type, context, ref_offset, typestring_offset); - break; - } - - return offset; -} - -static int processed(const type_t *type) -{ - return type->typestring_offset && !type->tfswrite; -} - -static int user_type_has_variable_size(const type_t *t) -{ - if (is_ptr(t)) - return TRUE; - else if (type_get_type(t) == TYPE_STRUCT) - { - switch (get_struct_fc(t)) - { - case RPC_FC_PSTRUCT: - case RPC_FC_CSTRUCT: - case RPC_FC_CPSTRUCT: - case RPC_FC_CVSTRUCT: - return TRUE; - } - } - /* Note: Since this only applies to user types, we can't have a conformant - array here, and strings should get filed under pointer in this case. */ - return FALSE; -} - -static unsigned int write_user_tfs(FILE *file, type_t *type, unsigned int *tfsoff) -{ - unsigned int start, absoff, flags; - const char *name = NULL; - type_t *utype = get_user_type(type, &name); - unsigned int usize = type_memsize(utype); - unsigned int ualign = type_buffer_alignment(utype); - unsigned int size = type_memsize(type); - unsigned short funoff = user_type_offset(name); - short reloff; - - if (processed(type)) return type->typestring_offset; - - guard_rec(type); - - if(user_type_has_variable_size(utype)) usize = 0; - - if (type_get_type(utype) == TYPE_BASIC || - type_get_type(utype) == TYPE_ENUM) - { - unsigned char fc; - - if (type_get_type(utype) == TYPE_ENUM) - fc = get_enum_fc(utype); - else - fc = get_basic_fc(utype); - - absoff = *tfsoff; - print_start_tfs_comment(file, utype, absoff); - print_file(file, 2, "0x%x,\t/* %s */\n", fc, string_of_type(fc)); - print_file(file, 2, "0x5c,\t/* FC_PAD */\n"); - *tfsoff += 2; - } - else - { - if (!processed(utype)) - write_embedded_types(file, NULL, utype, utype->name, TRUE, tfsoff); - absoff = utype->typestring_offset; - } - - if (type_get_type(utype) == TYPE_POINTER && get_pointer_fc(utype, NULL, FALSE) == RPC_FC_RP) - flags = 0x40; - else if (type_get_type(utype) == TYPE_POINTER && get_pointer_fc(utype, NULL, FALSE) == RPC_FC_UP) - flags = 0x80; - else - flags = 0; - - start = *tfsoff; - update_tfsoff(type, start, file); - print_start_tfs_comment(file, type, start); - print_file(file, 2, "0x%x,\t/* FC_USER_MARSHAL */\n", RPC_FC_USER_MARSHAL); - print_file(file, 2, "0x%x,\t/* Alignment= %d, Flags= %02x */\n", - flags | (ualign - 1), ualign - 1, flags); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Function offset= %hu */\n", funoff, funoff); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* %u */\n", (unsigned short)size, size); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* %u */\n", (unsigned short)usize, usize); - *tfsoff += 8; - reloff = absoff - *tfsoff; - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Offset= %hd (%u) */\n", reloff, reloff, absoff); - *tfsoff += 2; - return start; -} - -static void write_member_type(FILE *file, const type_t *cont, - int cont_is_complex, const attr_list_t *attrs, - const type_t *type, unsigned int *corroff, - unsigned int *tfsoff) -{ - if (is_embedded_complex(type) && !is_conformant_array(type)) - { - unsigned int absoff; - short reloff; - - if (type_get_type(type) == TYPE_UNION && is_attr(attrs, ATTR_SWITCHIS)) - { - absoff = *corroff; - *corroff += 8; - } - else - { - absoff = type->typestring_offset; - } - reloff = absoff - (*tfsoff + 2); - - print_file(file, 2, "0x4c,\t/* FC_EMBEDDED_COMPLEX */\n"); - /* padding is represented using FC_STRUCTPAD* types, so presumably - * this is left over in the format for historical purposes in MIDL - * or rpcrt4. */ - print_file(file, 2, "0x0,\n"); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Offset= %hd (%u) */\n", - reloff, reloff, absoff); - *tfsoff += 4; - } - else if (is_ptr(type) || is_conformant_array(type)) - { - unsigned char fc = cont_is_complex ? RPC_FC_POINTER : RPC_FC_LONG; - print_file(file, 2, "0x%x,\t/* %s */\n", fc, string_of_type(fc)); - *tfsoff += 1; - } - else if (!write_base_type(file, type, tfsoff)) - error("Unsupported member type %d\n", type_get_type(type)); -} - -static void write_array_element_type(FILE *file, const type_t *type, - int cont_is_complex, unsigned int *tfsoff) -{ - type_t *elem = type_array_get_element(type); - - if (!is_embedded_complex(elem) && is_ptr(elem)) - { - type_t *ref = type_pointer_get_ref(elem); - - if (processed(ref)) - { - write_nonsimple_pointer(file, NULL, elem, TYPE_CONTEXT_CONTAINER, - ref->typestring_offset, tfsoff); - return; - } - if (cont_is_complex && is_string_type(NULL, elem)) - { - write_string_tfs(file, NULL, elem, TYPE_CONTEXT_CONTAINER, NULL, tfsoff); - return; - } - if (!is_string_type(NULL, elem) && - (type_get_type(ref) == TYPE_BASIC || type_get_type(ref) == TYPE_ENUM)) - { - *tfsoff += write_simple_pointer(file, NULL, elem, TYPE_CONTEXT_CONTAINER); - return; - } - } - write_member_type(file, type, cont_is_complex, NULL, elem, NULL, tfsoff); - return; -} - -static void write_end(FILE *file, unsigned int *tfsoff) -{ - if (*tfsoff % 2 == 0) - { - print_file(file, 2, "0x%x,\t\t/* FC_PAD */\n", RPC_FC_PAD); - *tfsoff += 1; - } - print_file(file, 2, "0x%x,\t\t/* FC_END */\n", RPC_FC_END); - *tfsoff += 1; -} - -static void write_descriptors(FILE *file, type_t *type, unsigned int *tfsoff) -{ - unsigned int offset = 0; - var_list_t *fs = type_struct_get_fields(type); - var_t *f; - - if (fs) LIST_FOR_EACH_ENTRY(f, fs, var_t, entry) - { - type_t *ft = f->type; - unsigned int size = field_memsize( ft, &offset ); - if (type_get_type(ft) == TYPE_UNION && is_attr(f->attrs, ATTR_SWITCHIS)) - { - short reloff; - unsigned int absoff = ft->typestring_offset; - if (is_attr(ft->attrs, ATTR_SWITCHTYPE)) - absoff += 8; /* we already have a corr descr, skip it */ - reloff = absoff - (*tfsoff + 6); - print_file(file, 0, "/* %d */\n", *tfsoff); - print_file(file, 2, "0x%x,\t/* FC_NON_ENCAPSULATED_UNION */\n", RPC_FC_NON_ENCAPSULATED_UNION); - print_file(file, 2, "0x%x,\t/* FIXME: always FC_LONG */\n", RPC_FC_LONG); - write_conf_or_var_desc(file, current_structure, offset, ft, - get_attrp(f->attrs, ATTR_SWITCHIS)); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Offset= %hd (%u) */\n", - (unsigned short)reloff, reloff, absoff); - *tfsoff += 8; - } - offset += size; - } -} - -static int write_pointer_description_offsets( - FILE *file, const attr_list_t *attrs, type_t *type, - unsigned int *offset_in_memory, unsigned int *offset_in_buffer, - unsigned int *typestring_offset) -{ - int written = 0; - - if ((is_ptr(type) && type_get_type(type_pointer_get_ref(type)) != TYPE_INTERFACE) || - (is_array(type) && type_array_is_decl_as_ptr(type))) - { - if (offset_in_memory && offset_in_buffer) - { - unsigned int memsize; - - /* pointer instance - * - * note that MSDN states that for pointer layouts in structures, - * this is a negative offset from the end of the structure, but - * this statement is incorrect. all offsets are positive */ - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Memory offset = %d */\n", (unsigned short)*offset_in_memory, *offset_in_memory); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Buffer offset = %d */\n", (unsigned short)*offset_in_buffer, *offset_in_buffer); - - memsize = type_memsize(type); - *offset_in_memory += memsize; - /* increment these separately as in the case of conformant (varying) - * structures these start at different values */ - *offset_in_buffer += memsize; - } - *typestring_offset += 4; - - if (is_ptr(type)) - { - type_t *ref = type_pointer_get_ref(type); - - if (is_string_type(attrs, type)) - write_string_tfs(file, attrs, type, TYPE_CONTEXT_CONTAINER, NULL, typestring_offset); - else if (processed(ref)) - write_nonsimple_pointer(file, attrs, type, TYPE_CONTEXT_CONTAINER, - ref->typestring_offset, typestring_offset); - else if (type_get_type(ref) == TYPE_BASIC || type_get_type(ref) == TYPE_ENUM) - *typestring_offset += write_simple_pointer(file, attrs, type, TYPE_CONTEXT_CONTAINER); - else - error("write_pointer_description_offsets: type format string unknown\n"); - } - else - { - unsigned int offset = type->typestring_offset; - /* skip over the pointer that is written for strings, since a - * pointer has to be written in-place here */ - if (is_string_type(attrs, type)) - offset += 4; - write_nonsimple_pointer(file, attrs, type, TYPE_CONTEXT_CONTAINER, offset, typestring_offset); - } - - return 1; - } - - if (is_array(type)) - { - return write_pointer_description_offsets( - file, attrs, type_array_get_element(type), offset_in_memory, - offset_in_buffer, typestring_offset); - } - else if (is_non_complex_struct(type)) - { - /* otherwise search for interesting fields to parse */ - const var_t *v; - LIST_FOR_EACH_ENTRY( v, type_struct_get_fields(type), const var_t, entry ) - { - if (offset_in_memory && offset_in_buffer) - { - unsigned int padding; - unsigned int align = 0; - type_memsize_and_alignment(v->type, &align); - padding = ROUNDING(*offset_in_memory, align); - *offset_in_memory += padding; - *offset_in_buffer += padding; - } - written += write_pointer_description_offsets( - file, v->attrs, v->type, offset_in_memory, offset_in_buffer, - typestring_offset); - } - } - else - { - if (offset_in_memory && offset_in_buffer) - { - unsigned int memsize = type_memsize(type); - *offset_in_memory += memsize; - /* increment these separately as in the case of conformant (varying) - * structures these start at different values */ - *offset_in_buffer += memsize; - } - } - - return written; -} - -static int write_no_repeat_pointer_descriptions( - FILE *file, const attr_list_t *attrs, type_t *type, - unsigned int *offset_in_memory, unsigned int *offset_in_buffer, - unsigned int *typestring_offset) -{ - int written = 0; - - if (is_ptr(type) || - (is_conformant_array(type) && type_array_is_decl_as_ptr(type))) - { - print_file(file, 2, "0x%02x, /* FC_NO_REPEAT */\n", RPC_FC_NO_REPEAT); - print_file(file, 2, "0x%02x, /* FC_PAD */\n", RPC_FC_PAD); - *typestring_offset += 2; - - return write_pointer_description_offsets(file, attrs, type, - offset_in_memory, offset_in_buffer, typestring_offset); - } - - if (is_non_complex_struct(type)) - { - const var_t *v; - LIST_FOR_EACH_ENTRY( v, type_struct_get_fields(type), const var_t, entry ) - { - if (offset_in_memory && offset_in_buffer) - { - unsigned int padding; - unsigned int align = 0; - type_memsize_and_alignment(v->type, &align); - padding = ROUNDING(*offset_in_memory, align); - *offset_in_memory += padding; - *offset_in_buffer += padding; - } - written += write_no_repeat_pointer_descriptions( - file, v->attrs, v->type, - offset_in_memory, offset_in_buffer, typestring_offset); - } - } - else - { - unsigned int memsize = type_memsize(type); - *offset_in_memory += memsize; - /* increment these separately as in the case of conformant (varying) - * structures these start at different values */ - *offset_in_buffer += memsize; - } - - return written; -} - -/* Note: if file is NULL return value is number of pointers to write, else - * it is the number of type format characters written */ -static int write_fixed_array_pointer_descriptions( - FILE *file, const attr_list_t *attrs, type_t *type, - unsigned int *offset_in_memory, unsigned int *offset_in_buffer, - unsigned int *typestring_offset) -{ - int pointer_count = 0; - - if (type_get_type(type) == TYPE_ARRAY && - !type_array_has_conformance(type) && !type_array_has_variance(type)) - { - unsigned int temp = 0; - /* unfortunately, this needs to be done in two passes to avoid - * writing out redundant FC_FIXED_REPEAT descriptions */ - pointer_count = write_pointer_description_offsets( - NULL, attrs, type_array_get_element(type), NULL, NULL, &temp); - if (pointer_count > 0) - { - unsigned int increment_size; - unsigned int offset_of_array_pointer_mem = 0; - unsigned int offset_of_array_pointer_buf = 0; - - increment_size = type_memsize(type_array_get_element(type)); - - print_file(file, 2, "0x%02x, /* FC_FIXED_REPEAT */\n", RPC_FC_FIXED_REPEAT); - print_file(file, 2, "0x%02x, /* FC_PAD */\n", RPC_FC_PAD); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Iterations = %d */\n", (unsigned short)type_array_get_dim(type), type_array_get_dim(type)); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Increment = %d */\n", (unsigned short)increment_size, increment_size); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Offset to array = %d */\n", (unsigned short)*offset_in_memory, *offset_in_memory); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Number of pointers = %d */\n", (unsigned short)pointer_count, pointer_count); - *typestring_offset += 10; - - pointer_count = write_pointer_description_offsets( - file, attrs, type, &offset_of_array_pointer_mem, - &offset_of_array_pointer_buf, typestring_offset); - } - } - else if (type_get_type(type) == TYPE_STRUCT) - { - const var_t *v; - LIST_FOR_EACH_ENTRY( v, type_struct_get_fields(type), const var_t, entry ) - { - if (offset_in_memory && offset_in_buffer) - { - unsigned int padding; - unsigned int align = 0; - type_memsize_and_alignment(v->type, &align); - padding = ROUNDING(*offset_in_memory, align); - *offset_in_memory += padding; - *offset_in_buffer += padding; - } - pointer_count += write_fixed_array_pointer_descriptions( - file, v->attrs, v->type, offset_in_memory, offset_in_buffer, - typestring_offset); - } - } - else - { - if (offset_in_memory && offset_in_buffer) - { - unsigned int memsize; - memsize = type_memsize(type); - *offset_in_memory += memsize; - /* increment these separately as in the case of conformant (varying) - * structures these start at different values */ - *offset_in_buffer += memsize; - } - } - - return pointer_count; -} - -/* Note: if file is NULL return value is number of pointers to write, else - * it is the number of type format characters written */ -static int write_conformant_array_pointer_descriptions( - FILE *file, const attr_list_t *attrs, type_t *type, - unsigned int offset_in_memory, unsigned int *typestring_offset) -{ - int pointer_count = 0; - - if (is_conformant_array(type) && !type_array_has_variance(type)) - { - unsigned int temp = 0; - /* unfortunately, this needs to be done in two passes to avoid - * writing out redundant FC_VARIABLE_REPEAT descriptions */ - pointer_count = write_pointer_description_offsets( - NULL, attrs, type_array_get_element(type), NULL, NULL, &temp); - if (pointer_count > 0) - { - unsigned int increment_size; - unsigned int offset_of_array_pointer_mem = offset_in_memory; - unsigned int offset_of_array_pointer_buf = offset_in_memory; - - increment_size = type_memsize(type_array_get_element(type)); - - if (increment_size > USHRT_MAX) - error("array size of %u bytes is too large\n", increment_size); - - print_file(file, 2, "0x%02x, /* FC_VARIABLE_REPEAT */\n", RPC_FC_VARIABLE_REPEAT); - print_file(file, 2, "0x%02x, /* FC_FIXED_OFFSET */\n", RPC_FC_FIXED_OFFSET); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Increment = %d */\n", (unsigned short)increment_size, increment_size); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Offset to array = %d */\n", (unsigned short)offset_in_memory, offset_in_memory); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Number of pointers = %d */\n", (unsigned short)pointer_count, pointer_count); - *typestring_offset += 8; - - pointer_count = write_pointer_description_offsets( - file, attrs, type_array_get_element(type), - &offset_of_array_pointer_mem, &offset_of_array_pointer_buf, - typestring_offset); - } - } - - return pointer_count; -} - -/* Note: if file is NULL return value is number of pointers to write, else - * it is the number of type format characters written */ -static int write_varying_array_pointer_descriptions( - FILE *file, const attr_list_t *attrs, type_t *type, - unsigned int *offset_in_memory, unsigned int *offset_in_buffer, - unsigned int *typestring_offset) -{ - int pointer_count = 0; - - if (is_array(type) && type_array_has_variance(type)) - { - unsigned int temp = 0; - /* unfortunately, this needs to be done in two passes to avoid - * writing out redundant FC_VARIABLE_REPEAT descriptions */ - pointer_count = write_pointer_description_offsets( - NULL, attrs, type_array_get_element(type), NULL, NULL, &temp); - if (pointer_count > 0) - { - unsigned int increment_size; - - increment_size = type_memsize(type_array_get_element(type)); - - if (increment_size > USHRT_MAX) - error("array size of %u bytes is too large\n", increment_size); - - print_file(file, 2, "0x%02x, /* FC_VARIABLE_REPEAT */\n", RPC_FC_VARIABLE_REPEAT); - print_file(file, 2, "0x%02x, /* FC_VARIABLE_OFFSET */\n", RPC_FC_VARIABLE_OFFSET); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Increment = %d */\n", (unsigned short)increment_size, increment_size); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Offset to array = %d */\n", (unsigned short)*offset_in_memory, *offset_in_memory); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Number of pointers = %d */\n", (unsigned short)pointer_count, pointer_count); - *typestring_offset += 8; - - pointer_count = write_pointer_description_offsets( - file, attrs, type_array_get_element(type), offset_in_memory, - offset_in_buffer, typestring_offset); - } - } - else if (type_get_type(type) == TYPE_STRUCT) - { - const var_t *v; - LIST_FOR_EACH_ENTRY( v, type_struct_get_fields(type), const var_t, entry ) - { - if (offset_in_memory && offset_in_buffer) - { - unsigned int align = 0, padding; - - if (is_array(v->type) && type_array_has_variance(v->type)) - { - *offset_in_buffer = ROUND_SIZE(*offset_in_buffer, 4); - /* skip over variance and offset in buffer */ - *offset_in_buffer += 8; - } - - type_memsize_and_alignment(v->type, &align); - padding = ROUNDING(*offset_in_memory, align); - *offset_in_memory += padding; - *offset_in_buffer += padding; - } - pointer_count += write_varying_array_pointer_descriptions( - file, v->attrs, v->type, offset_in_memory, offset_in_buffer, - typestring_offset); - } - } - else - { - if (offset_in_memory && offset_in_buffer) - { - unsigned int memsize = type_memsize(type); - *offset_in_memory += memsize; - /* increment these separately as in the case of conformant (varying) - * structures these start at different values */ - *offset_in_buffer += memsize; - } - } - - return pointer_count; -} - -static void write_pointer_description(FILE *file, type_t *type, - unsigned int *typestring_offset) -{ - unsigned int offset_in_buffer; - unsigned int offset_in_memory; - - /* pass 1: search for single instance of a pointer (i.e. don't descend - * into arrays) */ - if (!is_array(type)) - { - offset_in_memory = 0; - offset_in_buffer = 0; - write_no_repeat_pointer_descriptions( - file, NULL, type, - &offset_in_memory, &offset_in_buffer, typestring_offset); - } - - /* pass 2: search for pointers in fixed arrays */ - offset_in_memory = 0; - offset_in_buffer = 0; - write_fixed_array_pointer_descriptions( - file, NULL, type, - &offset_in_memory, &offset_in_buffer, typestring_offset); - - /* pass 3: search for pointers in conformant only arrays (but don't descend - * into conformant varying or varying arrays) */ - if (is_conformant_array(type) && - (type_array_is_decl_as_ptr(type) || !current_structure)) - write_conformant_array_pointer_descriptions( - file, NULL, type, 0, typestring_offset); - else if (type_get_type(type) == TYPE_STRUCT && - get_struct_fc(type) == RPC_FC_CPSTRUCT) - { - type_t *carray = find_array_or_string_in_struct(type)->type; - write_conformant_array_pointer_descriptions( file, NULL, carray, - type_memsize(type), typestring_offset); - } - - /* pass 4: search for pointers in varying arrays */ - offset_in_memory = 0; - offset_in_buffer = 0; - write_varying_array_pointer_descriptions( - file, NULL, type, - &offset_in_memory, &offset_in_buffer, typestring_offset); -} - -int is_declptr(const type_t *t) -{ - return is_ptr(t) || (type_get_type(t) == TYPE_ARRAY && type_array_is_decl_as_ptr(t)); -} - -static unsigned int write_string_tfs(FILE *file, const attr_list_t *attrs, - type_t *type, enum type_context context, - const char *name, unsigned int *typestring_offset) -{ - unsigned int start_offset; - unsigned char rtype; - type_t *elem_type; - int is_processed = processed(type); - - start_offset = *typestring_offset; - - if (is_declptr(type)) - { - unsigned char flag = is_conformant_array(type) ? 0 : RPC_FC_P_SIMPLEPOINTER; - int pointer_type = get_pointer_fc_context(type, attrs, context); - if (!pointer_type) - pointer_type = RPC_FC_RP; - print_start_tfs_comment(file, type, *typestring_offset); - print_file(file, 2,"0x%x, 0x%x,\t/* %s%s */\n", - pointer_type, flag, string_of_type(pointer_type), - flag ? " [simple_pointer]" : ""); - *typestring_offset += 2; - if (!flag) - { - print_file(file, 2, "NdrFcShort(0x2),\n"); - *typestring_offset += 2; - } - is_processed = FALSE; - } - - if (is_array(type)) - elem_type = type_array_get_element(type); - else - elem_type = type_pointer_get_ref(type); - - if (type_get_type(elem_type) != TYPE_BASIC) - { - error("write_string_tfs: Unimplemented for non-basic type %s\n", name); - return start_offset; - } - - rtype = get_basic_fc(elem_type); - if ((rtype != RPC_FC_BYTE) && (rtype != RPC_FC_CHAR) && (rtype != RPC_FC_WCHAR)) - { - error("write_string_tfs: Unimplemented for type 0x%x of name: %s\n", rtype, name); - return start_offset; - } - - if (type_get_type(type) == TYPE_ARRAY && !type_array_has_conformance(type)) - { - unsigned int dim = type_array_get_dim(type); - - if (is_processed) return start_offset; - - /* FIXME: multi-dimensional array */ - if (0xffffu < dim) - error("array size for parameter %s exceeds %u bytes by %u bytes\n", - name, 0xffffu, dim - 0xffffu); - - if (rtype == RPC_FC_WCHAR) - WRITE_FCTYPE(file, FC_WSTRING, *typestring_offset); - else - WRITE_FCTYPE(file, FC_CSTRING, *typestring_offset); - print_file(file, 2, "0x%x, /* FC_PAD */\n", RPC_FC_PAD); - *typestring_offset += 2; - - print_file(file, 2, "NdrFcShort(0x%hx),\t/* %d */\n", (unsigned short)dim, dim); - *typestring_offset += 2; - - update_tfsoff(type, start_offset, file); - return start_offset; - } - else if (is_conformant_array(type)) - { - if (rtype == RPC_FC_WCHAR) - WRITE_FCTYPE(file, FC_C_WSTRING, *typestring_offset); - else - WRITE_FCTYPE(file, FC_C_CSTRING, *typestring_offset); - print_file(file, 2, "0x%x, /* FC_STRING_SIZED */\n", RPC_FC_STRING_SIZED); - *typestring_offset += 2; - - *typestring_offset += write_conf_or_var_desc( - file, current_structure, - (!type_array_is_decl_as_ptr(type) && current_structure - ? type_memsize(current_structure) - : 0), - type, type_array_get_conformance(type)); - - update_tfsoff(type, start_offset, file); - return start_offset; - } - else - { - if (is_processed) return start_offset; - - if (rtype == RPC_FC_WCHAR) - WRITE_FCTYPE(file, FC_C_WSTRING, *typestring_offset); - else - WRITE_FCTYPE(file, FC_C_CSTRING, *typestring_offset); - print_file(file, 2, "0x%x, /* FC_PAD */\n", RPC_FC_PAD); - *typestring_offset += 2; - - update_tfsoff(type, start_offset, file); - return start_offset; - } -} - -static unsigned int write_array_tfs(FILE *file, const attr_list_t *attrs, type_t *type, - const char *name, unsigned int *typestring_offset) -{ - const expr_t *length_is = type_array_get_variance(type); - const expr_t *size_is = type_array_get_conformance(type); - unsigned int align; - unsigned int size; - unsigned int start_offset; - unsigned char fc; - int pointer_type = get_attrv(attrs, ATTR_POINTERTYPE); - unsigned int baseoff - = !type_array_is_decl_as_ptr(type) && current_structure - ? type_memsize(current_structure) - : 0; - - if (!pointer_type) - pointer_type = RPC_FC_RP; - - write_embedded_types(file, attrs, type_array_get_element(type), name, FALSE, typestring_offset); - - size = type_memsize(is_conformant_array(type) ? type_array_get_element(type) : type); - align = type_buffer_alignment(is_conformant_array(type) ? type_array_get_element(type) : type); - fc = get_array_fc(type); - - start_offset = *typestring_offset; - update_tfsoff(type, start_offset, file); - print_start_tfs_comment(file, type, start_offset); - print_file(file, 2, "0x%02x,\t/* %s */\n", fc, string_of_type(fc)); - print_file(file, 2, "0x%x,\t/* %d */\n", align - 1, align - 1); - *typestring_offset += 2; - - align = 0; - if (fc != RPC_FC_BOGUS_ARRAY) - { - if (fc == RPC_FC_LGFARRAY || fc == RPC_FC_LGVARRAY) - { - print_file(file, 2, "NdrFcLong(0x%x),\t/* %u */\n", size, size); - *typestring_offset += 4; - } - else - { - print_file(file, 2, "NdrFcShort(0x%hx),\t/* %u */\n", (unsigned short)size, size); - *typestring_offset += 2; - } - - if (is_conformant_array(type)) - *typestring_offset - += write_conf_or_var_desc(file, current_structure, baseoff, - type, size_is); - - if (fc == RPC_FC_SMVARRAY || fc == RPC_FC_LGVARRAY) - { - unsigned int elsize = type_memsize(type_array_get_element(type)); - unsigned int dim = type_array_get_dim(type); - - if (fc == RPC_FC_LGVARRAY) - { - print_file(file, 2, "NdrFcLong(0x%x),\t/* %u */\n", dim, dim); - *typestring_offset += 4; - } - else - { - print_file(file, 2, "NdrFcShort(0x%hx),\t/* %u */\n", (unsigned short)dim, dim); - *typestring_offset += 2; - } - - print_file(file, 2, "NdrFcShort(0x%hx),\t/* %u */\n", (unsigned short)elsize, elsize); - *typestring_offset += 2; - } - - if (length_is) - *typestring_offset - += write_conf_or_var_desc(file, current_structure, baseoff, - type, length_is); - - if (type_has_pointers(type_array_get_element(type)) && - (type_array_is_decl_as_ptr(type) || !current_structure)) - { - print_file(file, 2, "0x%x, /* FC_PP */\n", RPC_FC_PP); - print_file(file, 2, "0x%x, /* FC_PAD */\n", RPC_FC_PAD); - *typestring_offset += 2; - write_pointer_description(file, type, typestring_offset); - print_file(file, 2, "0x%x, /* FC_END */\n", RPC_FC_END); - *typestring_offset += 1; - } - - write_array_element_type(file, type, FALSE, typestring_offset); - write_end(file, typestring_offset); - } - else - { - unsigned int dim = size_is ? 0 : type_array_get_dim(type); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* %u */\n", (unsigned short)dim, dim); - *typestring_offset += 2; - *typestring_offset - += write_conf_or_var_desc(file, current_structure, baseoff, - type, size_is); - *typestring_offset - += write_conf_or_var_desc(file, current_structure, baseoff, - type, length_is); - - write_array_element_type(file, type, TRUE, typestring_offset); - write_end(file, typestring_offset); - } - - return start_offset; -} - -static const var_t *find_array_or_string_in_struct(const type_t *type) -{ - const var_list_t *fields = type_struct_get_fields(type); - const var_t *last_field; - const type_t *ft; - - if (!fields || list_empty(fields)) - return NULL; - - last_field = LIST_ENTRY( list_tail(fields), const var_t, entry ); - ft = last_field->type; - - if (is_conformant_array(ft) && !type_array_is_decl_as_ptr(ft)) - return last_field; - - if (type_get_type(ft) == TYPE_STRUCT) - return find_array_or_string_in_struct(ft); - else - return NULL; -} - -static void write_struct_members(FILE *file, const type_t *type, - int is_complex, unsigned int *corroff, - unsigned int *typestring_offset) -{ - const var_t *field; - unsigned short offset = 0; - unsigned int salign = 1; - int padding; - var_list_t *fields = type_struct_get_fields(type); - - if (fields) LIST_FOR_EACH_ENTRY( field, fields, const var_t, entry ) - { - type_t *ft = field->type; - unsigned int align = 0; - unsigned int size = type_memsize_and_alignment(ft, &align); - align = clamp_align(align); - if (salign < align) salign = align; - - if (!is_conformant_array(ft) || type_array_is_decl_as_ptr(ft)) - { - if ((align - 1) & offset) - { - unsigned char fc = 0; - switch (align) - { - case 2: - fc = RPC_FC_ALIGNM2; - break; - case 4: - fc = RPC_FC_ALIGNM4; - break; - case 8: - fc = RPC_FC_ALIGNM8; - break; - default: - error("write_struct_members: cannot align type %d\n", type_get_type(ft)); - } - print_file(file, 2, "0x%x,\t/* %s */\n", fc, string_of_type(fc)); - offset = ROUND_SIZE(offset, align); - *typestring_offset += 1; - } - write_member_type(file, type, is_complex, field->attrs, field->type, corroff, - typestring_offset); - offset += size; - } - } - - padding = ROUNDING(offset, salign); - if (padding) - { - print_file(file, 2, "0x%x,\t/* FC_STRUCTPAD%d */\n", - RPC_FC_STRUCTPAD1 + padding - 1, - padding); - *typestring_offset += 1; - } - - write_end(file, typestring_offset); -} - -static unsigned int write_struct_tfs(FILE *file, type_t *type, - const char *name, unsigned int *tfsoff) -{ - const type_t *save_current_structure = current_structure; - unsigned int total_size; - const var_t *array; - unsigned int start_offset; - unsigned int align; - unsigned int corroff; - var_t *f; - unsigned char fc = get_struct_fc(type); - var_list_t *fields = type_struct_get_fields(type); - - if (processed(type)) return type->typestring_offset; - - guard_rec(type); - current_structure = type; - - total_size = type_memsize(type); - align = type_buffer_alignment(type); - if (total_size > USHRT_MAX) - error("structure size for %s exceeds %d bytes by %d bytes\n", - name, USHRT_MAX, total_size - USHRT_MAX); - - if (fields) LIST_FOR_EACH_ENTRY(f, fields, var_t, entry) - write_embedded_types(file, f->attrs, f->type, f->name, FALSE, tfsoff); - - array = find_array_or_string_in_struct(type); - if (array && !processed(array->type)) - { - if(is_string_type(array->attrs, array->type)) - write_string_tfs(file, array->attrs, array->type, TYPE_CONTEXT_CONTAINER, array->name, tfsoff); - else - write_array_tfs(file, array->attrs, array->type, array->name, tfsoff); - } - - corroff = *tfsoff; - write_descriptors(file, type, tfsoff); - - start_offset = *tfsoff; - update_tfsoff(type, start_offset, file); - print_start_tfs_comment(file, type, start_offset); - print_file(file, 2, "0x%x,\t/* %s */\n", fc, string_of_type(fc)); - print_file(file, 2, "0x%x,\t/* %d */\n", align - 1, align - 1); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* %d */\n", (unsigned short)total_size, total_size); - *tfsoff += 4; - - if (array) - { - unsigned int absoff = array->type->typestring_offset; - short reloff = absoff - *tfsoff; - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Offset= %hd (%u) */\n", - reloff, reloff, absoff); - *tfsoff += 2; - } - else if (fc == RPC_FC_BOGUS_STRUCT) - { - print_file(file, 2, "NdrFcShort(0x0),\n"); - *tfsoff += 2; - } - - if (fc == RPC_FC_BOGUS_STRUCT) - { - /* On the sizing pass, type->ptrdesc may be zero, but it's ok as - nothing is written to file yet. On the actual writing pass, - this will have been updated. */ - unsigned int absoff = type->ptrdesc ? type->ptrdesc : *tfsoff; - int reloff = absoff - *tfsoff; - assert( reloff >= 0 ); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Offset= %d (%u) */\n", - (unsigned short)reloff, reloff, absoff); - *tfsoff += 2; - } - else if ((fc == RPC_FC_PSTRUCT) || - (fc == RPC_FC_CPSTRUCT) || - (fc == RPC_FC_CVSTRUCT && type_has_pointers(type))) - { - print_file(file, 2, "0x%x, /* FC_PP */\n", RPC_FC_PP); - print_file(file, 2, "0x%x, /* FC_PAD */\n", RPC_FC_PAD); - *tfsoff += 2; - write_pointer_description(file, type, tfsoff); - print_file(file, 2, "0x%x, /* FC_END */\n", RPC_FC_END); - *tfsoff += 1; - } - - write_struct_members(file, type, fc == RPC_FC_BOGUS_STRUCT, &corroff, - tfsoff); - - if (fc == RPC_FC_BOGUS_STRUCT) - { - const var_t *f; - - type->ptrdesc = *tfsoff; - if (fields) LIST_FOR_EACH_ENTRY(f, fields, const var_t, entry) - { - type_t *ft = f->type; - switch (typegen_detect_type(ft, f->attrs, TDT_IGNORE_STRINGS)) - { - case TGT_POINTER: - if (is_string_type(f->attrs, ft)) - write_string_tfs(file, f->attrs, ft, TYPE_CONTEXT_CONTAINER, f->name, tfsoff); - else - write_pointer_tfs(file, f->attrs, ft, - type_pointer_get_ref(ft)->typestring_offset, - TYPE_CONTEXT_CONTAINER, tfsoff); - break; - case TGT_ARRAY: - if (type_array_is_decl_as_ptr(ft)) - { - unsigned int offset; - - print_file(file, 0, "/* %d */\n", *tfsoff); - - offset = ft->typestring_offset; - /* skip over the pointer that is written for strings, since a - * pointer has to be written in-place here */ - if (is_string_type(f->attrs, ft)) - offset += 4; - write_nonsimple_pointer(file, f->attrs, ft, TYPE_CONTEXT_CONTAINER, offset, tfsoff); - } - break; - default: - break; - } - } - if (type->ptrdesc == *tfsoff) - type->ptrdesc = 0; - } - - current_structure = save_current_structure; - return start_offset; -} - -static void write_branch_type(FILE *file, const type_t *t, unsigned int *tfsoff) -{ - if (t == NULL) - { - print_file(file, 2, "NdrFcShort(0x0),\t/* No type */\n"); - } - else - { - if (type_get_type(t) == TYPE_BASIC || type_get_type(t) == TYPE_ENUM) - { - unsigned char fc; - if (type_get_type(t) == TYPE_BASIC) - fc = get_basic_fc(t); - else - fc = get_enum_fc(t); - print_file(file, 2, "NdrFcShort(0x80%02x),\t/* Simple arm type: %s */\n", - fc, string_of_type(fc)); - } - else if (t->typestring_offset) - { - short reloff = t->typestring_offset - *tfsoff; - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Offset= %d (%d) */\n", - reloff, reloff, t->typestring_offset); - } - else - error("write_branch_type: type unimplemented %d\n", type_get_type(t)); - } - - *tfsoff += 2; -} - -static unsigned int write_union_tfs(FILE *file, const attr_list_t *attrs, - type_t *type, unsigned int *tfsoff) -{ - unsigned int start_offset; - unsigned int size; - var_list_t *fields; - unsigned int nbranch = 0; - type_t *deftype = NULL; - short nodeftype = 0xffff; - var_t *f; - - if (processed(type) && - (type_get_type(type) == TYPE_ENCAPSULATED_UNION || !is_attr(type->attrs, ATTR_SWITCHTYPE))) - return type->typestring_offset; - - guard_rec(type); - - size = type_memsize(type); - - fields = type_union_get_cases(type); - - if (fields) LIST_FOR_EACH_ENTRY(f, fields, var_t, entry) - { - expr_list_t *cases = get_attrp(f->attrs, ATTR_CASE); - if (cases) - nbranch += list_count(cases); - if (f->type) - write_embedded_types(file, f->attrs, f->type, f->name, TRUE, tfsoff); - } - - start_offset = *tfsoff; - update_tfsoff(type, start_offset, file); - print_start_tfs_comment(file, type, start_offset); - if (type_get_type(type) == TYPE_ENCAPSULATED_UNION) - { - const var_t *sv = type_union_get_switch_value(type); - const type_t *st = sv->type; - unsigned char fc; - - if (type_get_type(st) == TYPE_BASIC) - { - fc = get_basic_fc(st); - switch (fc) - { - case RPC_FC_CHAR: - case RPC_FC_SMALL: - case RPC_FC_BYTE: - case RPC_FC_USMALL: - case RPC_FC_WCHAR: - case RPC_FC_SHORT: - case RPC_FC_USHORT: - case RPC_FC_LONG: - case RPC_FC_ULONG: - break; - default: - fc = 0; - error("union switch type must be an integer, char, or enum\n"); - } - } - else if (type_get_type(st) == TYPE_ENUM) - fc = get_enum_fc(st); - else - error("union switch type must be an integer, char, or enum\n"); - - print_file(file, 2, "0x%x,\t/* FC_ENCAPSULATED_UNION */\n", RPC_FC_ENCAPSULATED_UNION); - print_file(file, 2, "0x%x,\t/* Switch type= %s */\n", - 0x40 | fc, string_of_type(fc)); - *tfsoff += 2; - } - else if (is_attr(type->attrs, ATTR_SWITCHTYPE)) - { - const expr_t *switch_is = get_attrp(attrs, ATTR_SWITCHIS); - const type_t *st = get_attrp(type->attrs, ATTR_SWITCHTYPE); - unsigned char fc; - - if (type_get_type(st) == TYPE_BASIC) - { - fc = get_basic_fc(st); - switch (fc) - { - case RPC_FC_CHAR: - case RPC_FC_SMALL: - case RPC_FC_USMALL: - case RPC_FC_SHORT: - case RPC_FC_USHORT: - case RPC_FC_LONG: - case RPC_FC_ULONG: - case RPC_FC_ENUM16: - case RPC_FC_ENUM32: - break; - default: - fc = 0; - error("union switch type must be an integer, char, or enum\n"); - } - } - else if (type_get_type(st) == TYPE_ENUM) - fc = get_enum_fc(st); - else - error("union switch type must be an integer, char, or enum\n"); - - print_file(file, 2, "0x%x,\t/* FC_NON_ENCAPSULATED_UNION */\n", RPC_FC_NON_ENCAPSULATED_UNION); - print_file(file, 2, "0x%x,\t/* Switch type= %s */\n", - fc, string_of_type(fc)); - *tfsoff += 2; - *tfsoff += write_conf_or_var_desc(file, current_structure, 0, st, switch_is ); - print_file(file, 2, "NdrFcShort(0x2),\t/* Offset= 2 (%u) */\n", *tfsoff + 2); - *tfsoff += 2; - print_file(file, 0, "/* %u */\n", *tfsoff); - } - - print_file(file, 2, "NdrFcShort(0x%hx),\t/* %d */\n", (unsigned short)size, size); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* %d */\n", (unsigned short)nbranch, nbranch); - *tfsoff += 4; - - if (fields) LIST_FOR_EACH_ENTRY(f, fields, var_t, entry) - { - type_t *ft = f->type; - expr_list_t *cases = get_attrp(f->attrs, ATTR_CASE); - int deflt = is_attr(f->attrs, ATTR_DEFAULT); - expr_t *c; - - if (cases == NULL && !deflt) - error("union field %s with neither case nor default attribute\n", f->name); - - if (cases) LIST_FOR_EACH_ENTRY(c, cases, expr_t, entry) - { - /* MIDL doesn't check for duplicate cases, even though that seems - like a reasonable thing to do, it just dumps them to the TFS - like we're going to do here. */ - print_file(file, 2, "NdrFcLong(0x%x),\t/* %d */\n", c->cval, c->cval); - *tfsoff += 4; - write_branch_type(file, ft, tfsoff); - } - - /* MIDL allows multiple default branches, even though that seems - illogical, it just chooses the last one, which is what we will - do. */ - if (deflt) - { - deftype = ft; - nodeftype = 0; - } - } - - if (deftype) - { - write_branch_type(file, deftype, tfsoff); - } - else - { - print_file(file, 2, "NdrFcShort(0x%hx),\n", nodeftype); - *tfsoff += 2; - } - - return start_offset; -} - -static unsigned int write_ip_tfs(FILE *file, const attr_list_t *attrs, type_t *type, - unsigned int *typeformat_offset) -{ - unsigned int i; - unsigned int start_offset = *typeformat_offset; - expr_t *iid = get_attrp(attrs, ATTR_IIDIS); - - if (!iid && processed(type)) return type->typestring_offset; - - print_start_tfs_comment(file, type, start_offset); - update_tfsoff(type, start_offset, file); - - if (iid) - { - print_file(file, 2, "0x2f, /* FC_IP */\n"); - print_file(file, 2, "0x5c, /* FC_PAD */\n"); - *typeformat_offset - += write_conf_or_var_desc(file, current_structure, 0, type, iid) + 2; - } - else - { - const type_t *base = is_ptr(type) ? type_pointer_get_ref(type) : type; - const UUID *uuid = get_attrp(base->attrs, ATTR_UUID); - - if (! uuid) - error("%s: interface %s missing UUID\n", __FUNCTION__, base->name); - - print_file(file, 2, "0x2f,\t/* FC_IP */\n"); - print_file(file, 2, "0x5a,\t/* FC_CONSTANT_IID */\n"); - print_file(file, 2, "NdrFcLong(0x%08x),\n", uuid->Data1); - print_file(file, 2, "NdrFcShort(0x%04x),\n", uuid->Data2); - print_file(file, 2, "NdrFcShort(0x%04x),\n", uuid->Data3); - for (i = 0; i < 8; ++i) - print_file(file, 2, "0x%02x,\n", uuid->Data4[i]); - - if (file) - fprintf(file, "\n"); - - *typeformat_offset += 18; - } - return start_offset; -} - -static unsigned int write_contexthandle_tfs(FILE *file, - const attr_list_t *attrs, - type_t *type, - int toplevel_param, - unsigned int *typeformat_offset) -{ - unsigned int start_offset = *typeformat_offset; - unsigned char flags = get_contexthandle_flags( current_iface, attrs, type ); - - print_start_tfs_comment(file, type, start_offset); - - if (flags & 0x80) /* via ptr */ - { - int pointer_type = get_pointer_fc( type, attrs, toplevel_param ); - if (!pointer_type) pointer_type = RPC_FC_RP; - *typeformat_offset += 4; - print_file(file, 2,"0x%x, 0x0,\t/* %s */\n", pointer_type, string_of_type(pointer_type) ); - print_file(file, 2, "NdrFcShort(0x2),\t /* Offset= 2 (%u) */\n", *typeformat_offset); - print_file(file, 0, "/* %2u */\n", *typeformat_offset); - } - - print_file(file, 2, "0x%02x,\t/* FC_BIND_CONTEXT */\n", RPC_FC_BIND_CONTEXT); - print_file(file, 2, "0x%x,\t/* Context flags: ", flags); - /* return and can't be null values overlap */ - if (((flags & 0x21) != 0x21) && (flags & NDR_CONTEXT_HANDLE_CANNOT_BE_NULL)) - print_file(file, 0, "can't be null, "); - if (flags & NDR_CONTEXT_HANDLE_SERIALIZE) - print_file(file, 0, "serialize, "); - if (flags & NDR_CONTEXT_HANDLE_NO_SERIALIZE) - print_file(file, 0, "no serialize, "); - if (flags & NDR_STRICT_CONTEXT_HANDLE) - print_file(file, 0, "strict, "); - if ((flags & 0x21) == 0x20) - print_file(file, 0, "out, "); - if ((flags & 0x21) == 0x21) - print_file(file, 0, "return, "); - if (flags & 0x40) - print_file(file, 0, "in, "); - if (flags & 0x80) - print_file(file, 0, "via ptr, "); - print_file(file, 0, "*/\n"); - print_file(file, 2, "0x%x,\t/* rundown routine */\n", get_context_handle_offset( type )); - print_file(file, 2, "0, /* FIXME: param num */\n"); - *typeformat_offset += 4; - - update_tfsoff( type, start_offset, file ); - return start_offset; -} - -static unsigned int write_range_tfs(FILE *file, const attr_list_t *attrs, - type_t *type, expr_list_t *range_list, - unsigned int *typeformat_offset) -{ - unsigned char fc; - unsigned int start_offset = *typeformat_offset; - const expr_t *range_min = LIST_ENTRY(list_head(range_list), const expr_t, entry); - const expr_t *range_max = LIST_ENTRY(list_next(range_list, list_head(range_list)), const expr_t, entry); - - if (type_get_type(type) == TYPE_BASIC) - fc = get_basic_fc(type); - else - fc = get_enum_fc(type); - - /* fc must fit in lower 4-bits of 8-bit field below */ - assert(fc <= 0xf); - - print_file(file, 0, "/* %u */\n", *typeformat_offset); - print_file(file, 2, "0x%x,\t/* FC_RANGE */\n", RPC_FC_RANGE); - print_file(file, 2, "0x%x,\t/* %s */\n", fc, string_of_type(fc)); - print_file(file, 2, "NdrFcLong(0x%x),\t/* %u */\n", range_min->cval, range_min->cval); - print_file(file, 2, "NdrFcLong(0x%x),\t/* %u */\n", range_max->cval, range_max->cval); - update_tfsoff( type, start_offset, file ); - *typeformat_offset += 10; - - return start_offset; -} - -static unsigned int write_type_tfs(FILE *file, int indent, - const attr_list_t *attrs, type_t *type, - const char *name, - enum type_context context, - unsigned int *typeformat_offset) -{ - unsigned int offset; - - switch (typegen_detect_type(type, attrs, TDT_ALL_TYPES)) - { - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - return write_contexthandle_tfs(file, attrs, type, - context == TYPE_CONTEXT_TOPLEVELPARAM, typeformat_offset); - case TGT_USER_TYPE: - return write_user_tfs(file, type, typeformat_offset); - case TGT_STRING: - return write_string_tfs(file, attrs, type, context, name, typeformat_offset); - case TGT_ARRAY: - { - unsigned int off; - /* conformant and pointer arrays are handled specially */ - if ((context != TYPE_CONTEXT_CONTAINER && - context != TYPE_CONTEXT_CONTAINER_NO_POINTERS) || - !is_conformant_array(type) || type_array_is_decl_as_ptr(type)) - off = write_array_tfs(file, attrs, type, name, typeformat_offset); - else - off = 0; - if (context != TYPE_CONTEXT_CONTAINER && - context != TYPE_CONTEXT_CONTAINER_NO_POINTERS) - { - int ptr_type; - ptr_type = get_pointer_fc(type, attrs, - context == TYPE_CONTEXT_TOPLEVELPARAM); - if (ptr_type != RPC_FC_RP || type_array_is_decl_as_ptr(type)) - { - unsigned int absoff = type->typestring_offset; - short reloff = absoff - (*typeformat_offset + 2); - off = *typeformat_offset; - print_file(file, 0, "/* %d */\n", off); - print_file(file, 2, "0x%x, 0x0,\t/* %s */\n", ptr_type, - string_of_type(ptr_type)); - print_file(file, 2, "NdrFcShort(0x%hx),\t/* Offset= %hd (%u) */\n", - reloff, reloff, absoff); - if (ptr_type != RPC_FC_RP) update_tfsoff( type, off, file ); - *typeformat_offset += 4; - } - type->details.array.ptr_tfsoff = off; - } - return off; - } - case TGT_STRUCT: - return write_struct_tfs(file, type, name, typeformat_offset); - case TGT_UNION: - return write_union_tfs(file, attrs, type, typeformat_offset); - case TGT_ENUM: - case TGT_BASIC: - /* nothing to do */ - return 0; - case TGT_RANGE: - { - expr_list_t *range_list = get_attrp(attrs, ATTR_RANGE); - if (!range_list) - range_list = get_aliaschain_attrp(type, ATTR_RANGE); - return write_range_tfs(file, attrs, type, range_list, typeformat_offset); - } - case TGT_IFACE_POINTER: - return write_ip_tfs(file, attrs, type, typeformat_offset); - case TGT_POINTER: - { - enum type_context ref_context; - if (context == TYPE_CONTEXT_TOPLEVELPARAM) - ref_context = TYPE_CONTEXT_PARAM; - else if (context == TYPE_CONTEXT_CONTAINER_NO_POINTERS) - ref_context = TYPE_CONTEXT_CONTAINER; - else - ref_context = context; - offset = write_type_tfs( file, indent, attrs, type_pointer_get_ref(type), name, - ref_context, typeformat_offset); - if (context == TYPE_CONTEXT_CONTAINER_NO_POINTERS) - return 0; - return write_pointer_tfs(file, attrs, type, offset, context, typeformat_offset); - } - case TGT_INVALID: - break; - } - error("invalid type %s for var %s\n", type->name, name); - return 0; -} - -static int write_embedded_types(FILE *file, const attr_list_t *attrs, type_t *type, - const char *name, int write_ptr, unsigned int *tfsoff) -{ - return write_type_tfs(file, 2, attrs, type, name, write_ptr ? TYPE_CONTEXT_CONTAINER : TYPE_CONTEXT_CONTAINER_NO_POINTERS, tfsoff); -} - -static unsigned int process_tfs_stmts(FILE *file, const statement_list_t *stmts, - type_pred_t pred, unsigned int *typeformat_offset) -{ - var_t *var; - const statement_t *stmt; - - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - const type_t *iface; - const statement_t *stmt_func; - - if (stmt->type != STMT_TYPE || type_get_type(stmt->u.type) != TYPE_INTERFACE) - continue; - - iface = stmt->u.type; - if (!pred(iface)) - continue; - - current_iface = iface; - STATEMENTS_FOR_EACH_FUNC( stmt_func, type_iface_get_stmts(iface) ) - { - const var_t *func = stmt_func->u.var; - current_func = func; - if (is_local(func->attrs)) continue; - - var = type_function_get_retval(func->type); - if (!is_void(var->type)) - var->typestring_offset = write_type_tfs( file, 2, func->attrs, var->type, func->name, - TYPE_CONTEXT_PARAM, typeformat_offset); - - if (type_get_function_args(func->type)) - LIST_FOR_EACH_ENTRY( var, type_get_function_args(func->type), var_t, entry ) - var->typestring_offset = write_type_tfs( file, 2, var->attrs, var->type, var->name, - TYPE_CONTEXT_TOPLEVELPARAM, - typeformat_offset ); - } - } - - return *typeformat_offset + 1; -} - -static unsigned int process_tfs(FILE *file, const statement_list_t *stmts, type_pred_t pred) -{ - unsigned int typeformat_offset = 2; - - return process_tfs_stmts(file, stmts, pred, &typeformat_offset); -} - - -void write_typeformatstring(FILE *file, const statement_list_t *stmts, type_pred_t pred) -{ - int indent = 0; - - print_file(file, indent, "static const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString =\n"); - print_file(file, indent, "{\n"); - indent++; - print_file(file, indent, "0,\n"); - print_file(file, indent, "{\n"); - indent++; - print_file(file, indent, "NdrFcShort(0x0),\n"); - - set_all_tfswrite(TRUE); - process_tfs(file, stmts, pred); - - print_file(file, indent, "0x0\n"); - indent--; - print_file(file, indent, "}\n"); - indent--; - print_file(file, indent, "};\n"); - print_file(file, indent, "\n"); -} - -static unsigned int get_required_buffer_size_type( - const type_t *type, const char *name, const attr_list_t *attrs, int toplevel_param, unsigned int *alignment) -{ - *alignment = 0; - switch (typegen_detect_type(type, NULL, TDT_IGNORE_RANGES)) - { - case TGT_USER_TYPE: - { - const char *uname; - const type_t *utype = get_user_type(type, &uname); - return get_required_buffer_size_type(utype, uname, NULL, FALSE, alignment); - } - case TGT_BASIC: - switch (get_basic_fc(type)) - { - case RPC_FC_BYTE: - case RPC_FC_CHAR: - case RPC_FC_USMALL: - case RPC_FC_SMALL: - *alignment = 4; - return 1; - - case RPC_FC_WCHAR: - case RPC_FC_USHORT: - case RPC_FC_SHORT: - *alignment = 4; - return 2; - - case RPC_FC_ULONG: - case RPC_FC_LONG: - case RPC_FC_FLOAT: - case RPC_FC_ERROR_STATUS_T: - *alignment = 4; - return 4; - - case RPC_FC_HYPER: - case RPC_FC_DOUBLE: - *alignment = 8; - return 8; - - case RPC_FC_INT3264: - case RPC_FC_UINT3264: - assert( pointer_size ); - *alignment = pointer_size; - return pointer_size; - - case RPC_FC_IGNORE: - case RPC_FC_BIND_PRIMITIVE: - return 0; - - default: - error("get_required_buffer_size: unknown basic type 0x%02x\n", - get_basic_fc(type)); - return 0; - } - break; - - case TGT_ENUM: - switch (get_enum_fc(type)) - { - case RPC_FC_ENUM32: - *alignment = 4; - return 4; - case RPC_FC_ENUM16: - *alignment = 4; - return 2; - } - break; - - case TGT_STRUCT: - if (get_struct_fc(type) == RPC_FC_STRUCT) - { - if (!type_struct_get_fields(type)) return 0; - return fields_memsize(type_struct_get_fields(type), alignment); - } - break; - - case TGT_POINTER: - { - unsigned int size, align; - const type_t *ref = type_pointer_get_ref(type); - if (is_string_type( attrs, ref )) break; - if (!(size = get_required_buffer_size_type( ref, name, NULL, FALSE, &align ))) break; - if (get_pointer_fc(type, attrs, toplevel_param) != RPC_FC_RP) - { - size += 4 + align; - align = 4; - } - *alignment = align; - return size; - } - - case TGT_ARRAY: - if (get_pointer_fc(type, attrs, toplevel_param) == RPC_FC_RP) - { - switch (get_array_fc(type)) - { - case RPC_FC_SMFARRAY: - case RPC_FC_LGFARRAY: - return type_array_get_dim(type) * - get_required_buffer_size_type(type_array_get_element(type), name, - NULL, FALSE, alignment); - } - } - break; - - default: - break; - } - return 0; -} - -static unsigned int get_required_buffer_size(const var_t *var, unsigned int *alignment, enum pass pass) -{ - int in_attr = is_attr(var->attrs, ATTR_IN); - int out_attr = is_attr(var->attrs, ATTR_OUT); - - if (!in_attr && !out_attr) - in_attr = 1; - - *alignment = 0; - - if ((pass == PASS_IN && in_attr) || (pass == PASS_OUT && out_attr) || - pass == PASS_RETURN) - { - if (is_ptrchain_attr(var, ATTR_CONTEXTHANDLE)) - { - *alignment = 4; - return 20; - } - - if (!is_string_type(var->attrs, var->type)) - return get_required_buffer_size_type(var->type, var->name, - var->attrs, TRUE, alignment); - } - return 0; -} - -static unsigned int get_function_buffer_size( const var_t *func, enum pass pass ) -{ - const var_t *var; - unsigned int total_size = 0, alignment; - - if (type_get_function_args(func->type)) - { - LIST_FOR_EACH_ENTRY( var, type_get_function_args(func->type), const var_t, entry ) - { - total_size += get_required_buffer_size(var, &alignment, pass); - total_size += alignment; - } - } - - if (pass == PASS_OUT && !is_void(type_function_get_rettype(func->type))) - { - var_t v = *func; - v.type = type_function_get_rettype(func->type); - total_size += get_required_buffer_size(&v, &alignment, PASS_RETURN); - total_size += alignment; - } - return total_size; -} - -static void print_phase_function(FILE *file, int indent, const char *type, - const char *local_var_prefix, enum remoting_phase phase, - const var_t *var, unsigned int type_offset) -{ - const char *function; - switch (phase) - { - case PHASE_BUFFERSIZE: - function = "BufferSize"; - break; - case PHASE_MARSHAL: - function = "Marshall"; - break; - case PHASE_UNMARSHAL: - function = "Unmarshall"; - break; - case PHASE_FREE: - function = "Free"; - break; - default: - assert(0); - return; - } - - print_file(file, indent, "Ndr%s%s(\n", type, function); - indent++; - print_file(file, indent, "&__frame->_StubMsg,\n"); - print_file(file, indent, "%s%s%s%s%s,\n", - (phase == PHASE_UNMARSHAL) ? "(unsigned char **)" : "(unsigned char *)", - (phase == PHASE_UNMARSHAL || decl_indirect(var->type)) ? "&" : "", - local_var_prefix, - (phase == PHASE_UNMARSHAL && decl_indirect(var->type)) ? "_p_" : "", - var->name); - print_file(file, indent, "(PFORMAT_STRING)&__MIDL_TypeFormatString.Format[%d]%s\n", - type_offset, (phase == PHASE_UNMARSHAL) ? "," : ");"); - if (phase == PHASE_UNMARSHAL) - print_file(file, indent, "0);\n"); - indent--; -} - -void print_phase_basetype(FILE *file, int indent, const char *local_var_prefix, - enum remoting_phase phase, enum pass pass, const var_t *var, - const char *varname) -{ - type_t *type = var->type; - unsigned int alignment = 0; - - /* no work to do for other phases, buffer sizing is done elsewhere */ - if (phase != PHASE_MARSHAL && phase != PHASE_UNMARSHAL) - return; - - if (type_get_type(type) == TYPE_ENUM || - (type_get_type(type) == TYPE_BASIC && - type_basic_get_type(type) == TYPE_BASIC_INT3264 && - pointer_size != 4)) - { - unsigned char fc; - - if (type_get_type(type) == TYPE_ENUM) - fc = get_enum_fc(type); - else - fc = get_basic_fc(type); - - if (phase == PHASE_MARSHAL) - print_file(file, indent, "NdrSimpleTypeMarshall(\n"); - else - print_file(file, indent, "NdrSimpleTypeUnmarshall(\n"); - print_file(file, indent+1, "&__frame->_StubMsg,\n"); - print_file(file, indent+1, "(unsigned char *)&%s%s,\n", - local_var_prefix, - var->name); - print_file(file, indent+1, "0x%02x /* %s */);\n", fc, string_of_type(fc)); - } - else - { - const type_t *ref = is_ptr(type) ? type_pointer_get_ref(type) : type; - switch (get_basic_fc(ref)) - { - case RPC_FC_BYTE: - case RPC_FC_CHAR: - case RPC_FC_SMALL: - case RPC_FC_USMALL: - alignment = 1; - break; - - case RPC_FC_WCHAR: - case RPC_FC_USHORT: - case RPC_FC_SHORT: - alignment = 2; - break; - - case RPC_FC_ULONG: - case RPC_FC_LONG: - case RPC_FC_FLOAT: - case RPC_FC_ERROR_STATUS_T: - /* pointer_size must be 4 if we got here in these two cases */ - case RPC_FC_INT3264: - case RPC_FC_UINT3264: - alignment = 4; - break; - - case RPC_FC_HYPER: - case RPC_FC_DOUBLE: - alignment = 8; - break; - - case RPC_FC_IGNORE: - case RPC_FC_BIND_PRIMITIVE: - /* no marshalling needed */ - return; - - default: - error("print_phase_basetype: Unsupported type: %s (0x%02x, ptr_level: 0)\n", - var->name, get_basic_fc(ref)); - } - - if (phase == PHASE_MARSHAL && alignment > 1) - print_file(file, indent, "MIDL_memset(__frame->_StubMsg.Buffer, 0, (0x%x - (ULONG_PTR)__frame->_StubMsg.Buffer) & 0x%x);\n", alignment, alignment - 1); - print_file(file, indent, "__frame->_StubMsg.Buffer = (unsigned char *)(((ULONG_PTR)__frame->_StubMsg.Buffer + %u) & ~0x%x);\n", - alignment - 1, alignment - 1); - - if (phase == PHASE_MARSHAL) - { - print_file(file, indent, "*("); - write_type_decl(file, is_ptr(type) ? type_pointer_get_ref(type) : type, NULL); - if (is_ptr(type)) - fprintf(file, " *)__frame->_StubMsg.Buffer = *"); - else - fprintf(file, " *)__frame->_StubMsg.Buffer = "); - fprintf(file, "%s%s", local_var_prefix, varname); - fprintf(file, ";\n"); - } - else if (phase == PHASE_UNMARSHAL) - { - print_file(file, indent, "if (__frame->_StubMsg.Buffer + sizeof("); - write_type_decl(file, is_ptr(type) ? type_pointer_get_ref(type) : type, NULL); - fprintf(file, ") > __frame->_StubMsg.BufferEnd)\n"); - print_file(file, indent, "{\n"); - print_file(file, indent + 1, "RpcRaiseException(RPC_X_BAD_STUB_DATA);\n"); - print_file(file, indent, "}\n"); - print_file(file, indent, "%s%s%s", - (pass == PASS_IN || pass == PASS_RETURN) ? "" : "*", - local_var_prefix, varname); - if (pass == PASS_IN && is_ptr(type)) - fprintf(file, " = ("); - else - fprintf(file, " = *("); - write_type_decl(file, is_ptr(type) ? type_pointer_get_ref(type) : type, NULL); - fprintf(file, " *)__frame->_StubMsg.Buffer;\n"); - } - - print_file(file, indent, "__frame->_StubMsg.Buffer += sizeof("); - write_type_decl(file, is_ptr(type) ? type_pointer_get_ref(type) : type, NULL); - fprintf(file, ");\n"); - } -} - -/* returns whether the MaxCount, Offset or ActualCount members need to be - * filled in for the specified phase */ -static inline int is_conformance_needed_for_phase(enum remoting_phase phase) -{ - return (phase != PHASE_UNMARSHAL); -} - -expr_t *get_size_is_expr(const type_t *t, const char *name) -{ - expr_t *x = NULL; - - for ( ; is_array(t); t = type_array_get_element(t)) - if (type_array_has_conformance(t) && - type_array_get_conformance(t)->type != EXPR_VOID) - { - if (!x) - x = type_array_get_conformance(t); - else - error("%s: multidimensional conformant" - " arrays not supported at the top level\n", - name); - } - - return x; -} - -void write_parameter_conf_or_var_exprs(FILE *file, int indent, const char *local_var_prefix, - enum remoting_phase phase, const var_t *var, int valid_variance) -{ - const type_t *type = var->type; - /* get fundamental type for the argument */ - for (;;) - { - switch (typegen_detect_type(type, var->attrs, TDT_IGNORE_STRINGS|TDT_IGNORE_RANGES)) - { - case TGT_ARRAY: - if (is_conformance_needed_for_phase(phase)) - { - if (type_array_has_conformance(type) && - type_array_get_conformance(type)->type != EXPR_VOID) - { - print_file(file, indent, "__frame->_StubMsg.MaxCount = (ULONG_PTR)"); - write_expr(file, type_array_get_conformance(type), 1, 1, NULL, NULL, local_var_prefix); - fprintf(file, ";\n\n"); - } - if (type_array_has_variance(type)) - { - print_file(file, indent, "__frame->_StubMsg.Offset = 0;\n"); /* FIXME */ - if (valid_variance) - { - print_file(file, indent, "__frame->_StubMsg.ActualCount = (ULONG_PTR)"); - write_expr(file, type_array_get_variance(type), 1, 1, NULL, NULL, local_var_prefix); - fprintf(file, ";\n\n"); - } - else - print_file(file, indent, "__frame->_StubMsg.ActualCount = __frame->_StubMsg.MaxCount;\n\n"); - } - } - break; - case TGT_UNION: - if (type_get_type(type) == TYPE_UNION && - is_conformance_needed_for_phase(phase)) - { - print_file(file, indent, "__frame->_StubMsg.MaxCount = (ULONG_PTR)"); - write_expr(file, get_attrp(var->attrs, ATTR_SWITCHIS), 1, 1, NULL, NULL, local_var_prefix); - fprintf(file, ";\n\n"); - } - break; - case TGT_IFACE_POINTER: - { - expr_t *iid; - - if (is_conformance_needed_for_phase(phase) && (iid = get_attrp( var->attrs, ATTR_IIDIS ))) - { - print_file( file, indent, "__frame->_StubMsg.MaxCount = (ULONG_PTR) " ); - write_expr( file, iid, 1, 1, NULL, NULL, local_var_prefix ); - fprintf( file, ";\n\n" ); - } - break; - } - case TGT_POINTER: - type = type_pointer_get_ref(type); - continue; - case TGT_INVALID: - case TGT_USER_TYPE: - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - case TGT_STRING: - case TGT_BASIC: - case TGT_ENUM: - case TGT_STRUCT: - case TGT_RANGE: - break; - } - break; - } -} - -static void write_remoting_arg(FILE *file, int indent, const var_t *func, const char *local_var_prefix, - enum pass pass, enum remoting_phase phase, const var_t *var) -{ - int in_attr, out_attr, pointer_type; - const char *type_str = NULL; - const type_t *type = var->type; - unsigned int alignment, start_offset = type->typestring_offset; - - if (is_ptr(type) || is_array(type)) - pointer_type = get_pointer_fc(type, var->attrs, pass != PASS_RETURN); - else - pointer_type = 0; - - in_attr = is_attr(var->attrs, ATTR_IN); - out_attr = is_attr(var->attrs, ATTR_OUT); - if (!in_attr && !out_attr) - in_attr = 1; - - if (phase != PHASE_FREE) - switch (pass) - { - case PASS_IN: - if (!in_attr) return; - break; - case PASS_OUT: - if (!out_attr) return; - break; - case PASS_RETURN: - break; - } - - if (phase == PHASE_BUFFERSIZE && get_required_buffer_size( var, &alignment, pass )) return; - - write_parameter_conf_or_var_exprs(file, indent, local_var_prefix, phase, var, TRUE); - - switch (typegen_detect_type(type, var->attrs, TDT_ALL_TYPES)) - { - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - if (phase == PHASE_MARSHAL) - { - if (pass == PASS_IN) - { - /* if the context_handle attribute appears in the chain of types - * without pointers being followed, then the context handle must - * be direct, otherwise it is a pointer */ - const char *ch_ptr = is_aliaschain_attr(type, ATTR_CONTEXTHANDLE) ? "" : "*"; - print_file(file, indent, "NdrClientContextMarshall(\n"); - print_file(file, indent + 1, "&__frame->_StubMsg,\n"); - print_file(file, indent + 1, "(NDR_CCONTEXT)%s%s%s,\n", ch_ptr, local_var_prefix, - var->name); - print_file(file, indent + 1, "%s);\n", in_attr && out_attr ? "1" : "0"); - } - else - { - print_file(file, indent, "NdrServerContextNewMarshall(\n"); - print_file(file, indent + 1, "&__frame->_StubMsg,\n"); - print_file(file, indent + 1, "(NDR_SCONTEXT)%s%s,\n", local_var_prefix, var->name); - print_file(file, indent + 1, "(NDR_RUNDOWN)%s_rundown,\n", get_context_handle_type_name(var->type)); - print_file(file, indent + 1, "(PFORMAT_STRING)&__MIDL_TypeFormatString.Format[%d]);\n", start_offset); - } - } - else if (phase == PHASE_UNMARSHAL) - { - if (pass == PASS_OUT) - { - if (!in_attr) - print_file(file, indent, "*%s%s = 0;\n", local_var_prefix, var->name); - print_file(file, indent, "NdrClientContextUnmarshall(\n"); - print_file(file, indent + 1, "&__frame->_StubMsg,\n"); - print_file(file, indent + 1, "(NDR_CCONTEXT *)%s%s,\n", local_var_prefix, var->name); - print_file(file, indent + 1, "__frame->_Handle);\n"); - } - else - { - print_file(file, indent, "%s%s = NdrServerContextNewUnmarshall(\n", local_var_prefix, var->name); - print_file(file, indent + 1, "&__frame->_StubMsg,\n"); - print_file(file, indent + 1, "(PFORMAT_STRING)&__MIDL_TypeFormatString.Format[%d]);\n", start_offset); - } - } - break; - case TGT_USER_TYPE: - print_phase_function(file, indent, "UserMarshal", local_var_prefix, phase, var, start_offset); - break; - case TGT_STRING: - if (phase == PHASE_FREE || pass == PASS_RETURN || - pointer_type != RPC_FC_RP) - { - /* strings returned are assumed to be global and hence don't - * need freeing */ - if (is_declptr(type) && !(phase == PHASE_FREE && pass == PASS_RETURN)) - print_phase_function(file, indent, "Pointer", local_var_prefix, - phase, var, start_offset); - else if (pointer_type == RPC_FC_RP && phase == PHASE_FREE && - !in_attr && is_conformant_array(type)) - { - print_file(file, indent, "if (%s%s)\n", local_var_prefix, var->name); - indent++; - print_file(file, indent, "__frame->_StubMsg.pfnFree(%s%s);\n", local_var_prefix, var->name); - } - } - else - { - unsigned int real_start_offset = start_offset; - /* skip over pointer description straight to string description */ - if (is_declptr(type)) - { - if (is_conformant_array(type)) - real_start_offset += 4; - else - real_start_offset += 2; - } - if (is_array(type) && !is_conformant_array(type)) - print_phase_function(file, indent, "NonConformantString", - local_var_prefix, phase, var, - real_start_offset); - else - print_phase_function(file, indent, "ConformantString", local_var_prefix, - phase, var, real_start_offset); - } - break; - case TGT_ARRAY: - { - unsigned char tc = get_array_fc(type); - const char *array_type = NULL; - - /* We already have the size_is expression since it's at the - top level, but do checks for multidimensional conformant - arrays. When we handle them, we'll need to extend this - function to return a list, and then we'll actually use - the return value. */ - get_size_is_expr(type, var->name); - - switch (tc) - { - case RPC_FC_SMFARRAY: - case RPC_FC_LGFARRAY: - array_type = "FixedArray"; - break; - case RPC_FC_SMVARRAY: - case RPC_FC_LGVARRAY: - array_type = "VaryingArray"; - break; - case RPC_FC_CARRAY: - array_type = "ConformantArray"; - break; - case RPC_FC_CVARRAY: - array_type = "ConformantVaryingArray"; - break; - case RPC_FC_BOGUS_ARRAY: - array_type = "ComplexArray"; - break; - } - - if (pointer_type != RPC_FC_RP) array_type = "Pointer"; - - if (phase == PHASE_FREE && pointer_type == RPC_FC_RP) - { - /* these are all unmarshalled by allocating memory */ - if (tc == RPC_FC_BOGUS_ARRAY || - tc == RPC_FC_CVARRAY || - ((tc == RPC_FC_SMVARRAY || tc == RPC_FC_LGVARRAY) && in_attr) || - (tc == RPC_FC_CARRAY && !in_attr)) - { - if (type_array_is_decl_as_ptr(type) && type->details.array.ptr_tfsoff) - { - print_phase_function(file, indent, "Pointer", local_var_prefix, phase, var, - type->details.array.ptr_tfsoff); - break; - } - print_phase_function(file, indent, array_type, local_var_prefix, phase, var, start_offset); - print_file(file, indent, "if (%s%s)\n", local_var_prefix, var->name); - indent++; - print_file(file, indent, "__frame->_StubMsg.pfnFree(%s%s);\n", local_var_prefix, var->name); - break; - } - } - print_phase_function(file, indent, array_type, local_var_prefix, phase, var, start_offset); - break; - } - case TGT_BASIC: - print_phase_basetype(file, indent, local_var_prefix, phase, pass, var, var->name); - break; - case TGT_ENUM: - print_phase_basetype(file, indent, local_var_prefix, phase, pass, var, var->name); - break; - case TGT_RANGE: - print_phase_basetype(file, indent, local_var_prefix, phase, pass, var, var->name); - /* Note: this goes beyond what MIDL does - it only supports arguments - * with the [range] attribute in Oicf mode */ - if (phase == PHASE_UNMARSHAL) - { - const expr_t *range_min; - const expr_t *range_max; - expr_list_t *range_list = get_attrp(var->attrs, ATTR_RANGE); - if (!range_list) - range_list = get_aliaschain_attrp(type, ATTR_RANGE); - range_min = LIST_ENTRY(list_head(range_list), const expr_t, entry); - range_max = LIST_ENTRY(list_next(range_list, list_head(range_list)), const expr_t, entry); - - print_file(file, indent, "if ((%s%s < (", local_var_prefix, var->name); - write_type_decl(file, var->type, NULL); - fprintf(file, ")0x%x) || (%s%s > (", range_min->cval, local_var_prefix, var->name); - write_type_decl(file, var->type, NULL); - fprintf(file, ")0x%x))\n", range_max->cval); - print_file(file, indent, "{\n"); - print_file(file, indent+1, "RpcRaiseException(RPC_S_INVALID_BOUND);\n"); - print_file(file, indent, "}\n"); - } - break; - case TGT_STRUCT: - switch (get_struct_fc(type)) - { - case RPC_FC_STRUCT: - if (phase == PHASE_MARSHAL || phase == PHASE_UNMARSHAL) - print_phase_function(file, indent, "SimpleStruct", local_var_prefix, phase, var, start_offset); - break; - case RPC_FC_PSTRUCT: - print_phase_function(file, indent, "SimpleStruct", local_var_prefix, phase, var, start_offset); - break; - case RPC_FC_CSTRUCT: - case RPC_FC_CPSTRUCT: - print_phase_function(file, indent, "ConformantStruct", local_var_prefix, phase, var, start_offset); - break; - case RPC_FC_CVSTRUCT: - print_phase_function(file, indent, "ConformantVaryingStruct", local_var_prefix, phase, var, start_offset); - break; - case RPC_FC_BOGUS_STRUCT: - print_phase_function(file, indent, "ComplexStruct", local_var_prefix, phase, var, start_offset); - break; - default: - error("write_remoting_arguments: Unsupported type: %s (0x%02x)\n", var->name, get_struct_fc(type)); - } - break; - case TGT_UNION: - { - const char *union_type = NULL; - - if (type_get_type(type) == TYPE_UNION) - union_type = "NonEncapsulatedUnion"; - else if (type_get_type(type) == TYPE_ENCAPSULATED_UNION) - union_type = "EncapsulatedUnion"; - - print_phase_function(file, indent, union_type, local_var_prefix, - phase, var, start_offset); - break; - } - case TGT_POINTER: - { - const type_t *ref = type_pointer_get_ref(type); - if (pointer_type == RPC_FC_RP) switch (typegen_detect_type(ref, NULL, TDT_ALL_TYPES)) - { - case TGT_BASIC: - print_phase_basetype(file, indent, local_var_prefix, phase, pass, var, var->name); - break; - case TGT_ENUM: - /* base types have known sizes, so don't need a sizing pass - * and don't have any memory to free and so don't need a - * freeing pass */ - if (phase == PHASE_MARSHAL || phase == PHASE_UNMARSHAL) - print_phase_function(file, indent, "Pointer", local_var_prefix, phase, var, start_offset); - break; - case TGT_STRUCT: - switch (get_struct_fc(ref)) - { - case RPC_FC_STRUCT: - /* simple structs have known sizes, so don't need a sizing - * pass and don't have any memory to free and so don't - * need a freeing pass */ - if (phase == PHASE_MARSHAL || phase == PHASE_UNMARSHAL) - type_str = "SimpleStruct"; - else if (phase == PHASE_FREE && pass == PASS_RETURN) - { - print_file(file, indent, "if (%s%s)\n", local_var_prefix, var->name); - indent++; - print_file(file, indent, "__frame->_StubMsg.pfnFree(%s%s);\n", local_var_prefix, var->name); - indent--; - } - break; - case RPC_FC_PSTRUCT: - type_str = "SimpleStruct"; - break; - case RPC_FC_CSTRUCT: - case RPC_FC_CPSTRUCT: - type_str = "ConformantStruct"; - break; - case RPC_FC_CVSTRUCT: - type_str = "ConformantVaryingStruct"; - break; - case RPC_FC_BOGUS_STRUCT: - type_str = "ComplexStruct"; - break; - default: - error("write_remoting_arguments: Unsupported type: %s (0x%02x)\n", var->name, get_struct_fc(ref)); - } - - if (type_str) - { - if (phase == PHASE_FREE) - type_str = "Pointer"; - else - start_offset = ref->typestring_offset; - print_phase_function(file, indent, type_str, local_var_prefix, phase, var, start_offset); - } - break; - case TGT_UNION: - if (phase == PHASE_FREE) - type_str = "Pointer"; - else - { - if (type_get_type(ref) == TYPE_UNION) - type_str = "NonEncapsulatedUnion"; - else if (type_get_type(ref) == TYPE_ENCAPSULATED_UNION) - type_str = "EncapsulatedUnion"; - - start_offset = ref->typestring_offset; - } - - print_phase_function(file, indent, type_str, local_var_prefix, - phase, var, start_offset); - break; - case TGT_USER_TYPE: - if (phase != PHASE_FREE) - { - type_str = "UserMarshal"; - start_offset = ref->typestring_offset; - } - else type_str = "Pointer"; - - print_phase_function(file, indent, type_str, local_var_prefix, phase, var, start_offset); - break; - case TGT_STRING: - case TGT_POINTER: - case TGT_ARRAY: - case TGT_RANGE: - case TGT_IFACE_POINTER: - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - print_phase_function(file, indent, "Pointer", local_var_prefix, phase, var, start_offset); - break; - case TGT_INVALID: - assert(0); - break; - } - else - print_phase_function(file, indent, "Pointer", local_var_prefix, phase, var, start_offset); - break; - } - case TGT_IFACE_POINTER: - print_phase_function(file, indent, "InterfacePointer", local_var_prefix, phase, var, start_offset); - break; - case TGT_INVALID: - assert(0); - break; - } - fprintf(file, "\n"); -} - -void write_remoting_arguments(FILE *file, int indent, const var_t *func, const char *local_var_prefix, - enum pass pass, enum remoting_phase phase) -{ - if (phase == PHASE_BUFFERSIZE && pass != PASS_RETURN) - { - unsigned int size = get_function_buffer_size( func, pass ); - print_file(file, indent, "__frame->_StubMsg.BufferLength = %u;\n", size); - } - - if (pass == PASS_RETURN) - { - write_remoting_arg( file, indent, func, local_var_prefix, pass, phase, - type_function_get_retval(func->type) ); - } - else - { - const var_t *var; - if (!type_get_function_args(func->type)) - return; - LIST_FOR_EACH_ENTRY( var, type_get_function_args(func->type), const var_t, entry ) - write_remoting_arg( file, indent, func, local_var_prefix, pass, phase, var ); - } -} - - -unsigned int get_size_procformatstring_func(const type_t *iface, const var_t *func) -{ - unsigned int offset = 0; - write_procformatstring_func( NULL, 0, iface, func, &offset, 0 ); - return offset; -} - -unsigned int get_size_procformatstring(const statement_list_t *stmts, type_pred_t pred) -{ - const statement_t *stmt; - unsigned int size = 1; - - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - const type_t *iface; - const statement_t *stmt_func; - - if (stmt->type != STMT_TYPE || type_get_type(stmt->u.type) != TYPE_INTERFACE) - continue; - - iface = stmt->u.type; - if (!pred(iface)) - continue; - - STATEMENTS_FOR_EACH_FUNC( stmt_func, type_iface_get_stmts(iface) ) - { - const var_t *func = stmt_func->u.var; - if (!is_local(func->attrs)) - size += get_size_procformatstring_func( iface, func ); - } - } - return size; -} - -unsigned int get_size_typeformatstring(const statement_list_t *stmts, type_pred_t pred) -{ - set_all_tfswrite(FALSE); - return process_tfs(NULL, stmts, pred); -} - -void declare_stub_args( FILE *file, int indent, const var_t *func ) -{ - int in_attr, out_attr; - int i = 0; - const var_t *var = type_function_get_retval(func->type); - - /* declare return value */ - if (!is_void(var->type)) - { - print_file(file, indent, "%s", ""); - write_type_decl(file, var->type, var->name); - fprintf(file, ";\n"); - } - - if (!type_get_function_args(func->type)) - return; - - LIST_FOR_EACH_ENTRY( var, type_get_function_args(func->type), const var_t, entry ) - { - in_attr = is_attr(var->attrs, ATTR_IN); - out_attr = is_attr(var->attrs, ATTR_OUT); - if (!out_attr && !in_attr) - in_attr = 1; - - if (is_context_handle(var->type)) - print_file(file, indent, "NDR_SCONTEXT %s;\n", var->name); - else - { - if (!in_attr && !is_conformant_array(var->type)) - { - type_t *type_to_print; - char name[16]; - print_file(file, indent, "%s", ""); - if (type_get_type(var->type) == TYPE_ARRAY && - !type_array_is_decl_as_ptr(var->type)) - type_to_print = var->type; - else - type_to_print = type_pointer_get_ref(var->type); - sprintf(name, "_W%u", i++); - write_type_decl(file, type_to_print, name); - fprintf(file, ";\n"); - } - - print_file(file, indent, "%s", ""); - write_type_decl_left(file, var->type); - fprintf(file, " "); - if (type_get_type(var->type) == TYPE_ARRAY && - !type_array_is_decl_as_ptr(var->type)) { - fprintf(file, "(*%s)", var->name); - } else - fprintf(file, "%s", var->name); - write_type_right(file, var->type, FALSE); - fprintf(file, ";\n"); - - if (decl_indirect(var->type)) - print_file(file, indent, "void *_p_%s;\n", var->name); - } - } -} - - -void assign_stub_out_args( FILE *file, int indent, const var_t *func, const char *local_var_prefix ) -{ - int in_attr, out_attr; - int i = 0, sep = 0; - const var_t *var; - type_t *ref; - - if (!type_get_function_args(func->type)) - return; - - LIST_FOR_EACH_ENTRY( var, type_get_function_args(func->type), const var_t, entry ) - { - in_attr = is_attr(var->attrs, ATTR_IN); - out_attr = is_attr(var->attrs, ATTR_OUT); - if (!out_attr && !in_attr) - in_attr = 1; - - if (!in_attr) - { - print_file(file, indent, "%s%s", local_var_prefix, var->name); - - switch (typegen_detect_type(var->type, var->attrs, TDT_IGNORE_STRINGS)) - { - case TGT_CTXT_HANDLE_POINTER: - fprintf(file, " = NdrContextHandleInitialize(\n"); - print_file(file, indent + 1, "&__frame->_StubMsg,\n"); - print_file(file, indent + 1, "(PFORMAT_STRING)&__MIDL_TypeFormatString.Format[%d]);\n", - var->typestring_offset); - break; - case TGT_ARRAY: - if (type_array_has_conformance(var->type)) - { - unsigned int size; - type_t *type; - - fprintf(file, " = NdrAllocate(&__frame->_StubMsg, "); - for (type = var->type; - is_array(type) && type_array_has_conformance(type); - type = type_array_get_element(type)) - { - write_expr(file, type_array_get_conformance(type), TRUE, - TRUE, NULL, NULL, local_var_prefix); - fprintf(file, " * "); - } - size = type_memsize(type); - fprintf(file, "%u);\n", size); - - print_file(file, indent, "memset(%s%s, 0, ", local_var_prefix, var->name); - for (type = var->type; - is_array(type) && type_array_has_conformance(type); - type = type_array_get_element(type)) - { - write_expr(file, type_array_get_conformance(type), TRUE, - TRUE, NULL, NULL, local_var_prefix); - fprintf(file, " * "); - } - size = type_memsize(type); - fprintf(file, "%u);\n", size); - } - else - fprintf(file, " = &%s_W%u;\n", local_var_prefix, i++); - break; - case TGT_POINTER: - fprintf(file, " = &%s_W%u;\n", local_var_prefix, i); - ref = type_pointer_get_ref(var->type); - switch (typegen_detect_type(ref, var->attrs, TDT_IGNORE_STRINGS)) - { - case TGT_BASIC: - case TGT_ENUM: - case TGT_POINTER: - case TGT_RANGE: - case TGT_IFACE_POINTER: - print_file(file, indent, "%s_W%u = 0;\n", local_var_prefix, i); - break; - case TGT_USER_TYPE: - print_file(file, indent, "memset(&%s_W%u, 0, sizeof(%s_W%u));\n", - local_var_prefix, i, local_var_prefix, i); - break; - case TGT_ARRAY: - if (type_array_is_decl_as_ptr(ref)) - { - print_file(file, indent, "%s_W%u = 0;\n", local_var_prefix, i); - break; - } - ref = type_array_get_element(ref); - /* fall through */ - case TGT_STRUCT: - case TGT_UNION: - if (type_has_pointers(ref)) - print_file(file, indent, "memset(&%s_W%u, 0, sizeof(%s_W%u));\n", - local_var_prefix, i, local_var_prefix, i); - break; - case TGT_CTXT_HANDLE: - case TGT_CTXT_HANDLE_POINTER: - case TGT_INVALID: - case TGT_STRING: - /* not initialised */ - break; - } - i++; - break; - default: - break; - } - - sep = 1; - } - } - if (sep) - fprintf(file, "\n"); -} - - -void write_func_param_struct( FILE *file, const type_t *iface, const type_t *func, - const char *var_decl, int add_retval ) -{ - var_t *retval = type_function_get_retval( func ); - const var_list_t *args = type_get_function_args( func ); - const var_t *arg; - int needs_packing; - unsigned int align = 0; - - if (args) - LIST_FOR_EACH_ENTRY( arg, args, const var_t, entry ) - if (!is_array( arg->type )) type_memsize_and_alignment( arg->type, &align ); - - needs_packing = (align > pointer_size); - - if (needs_packing) print_file( file, 0, "#include \n", pointer_size ); - print_file(file, 1, "struct _PARAM_STRUCT\n" ); - print_file(file, 1, "{\n" ); - if (is_object( iface )) print_file(file, 2, "%s *This;\n", iface->name ); - - if (args) LIST_FOR_EACH_ENTRY( arg, args, const var_t, entry ) - { - print_file(file, 2, "%s", ""); - write_type_left( file, (type_t *)arg->type, TRUE ); - if (needs_space_after( arg->type )) fputc( ' ', file ); - if (is_array( arg->type ) && !type_array_is_decl_as_ptr( arg->type )) fputc( '*', file ); - - /* FIXME: should check for large args being passed by pointer */ - align = 0; - if (is_array( arg->type ) || is_ptr( arg->type )) align = pointer_size; - else type_memsize_and_alignment( arg->type, &align ); - - if (align >= pointer_size) - fprintf( file, "%s;\n", arg->name ); - else - fprintf( file, "DECLSPEC_ALIGN(%u) %s;\n", pointer_size, arg->name ); - } - if (add_retval && !is_void( retval->type )) - { - print_file(file, 2, "%s", ""); - write_type_decl( file, retval->type, retval->name ); - if (is_array( retval->type ) || is_ptr( retval->type ) || - type_memsize( retval->type ) == pointer_size) - fprintf( file, ";\n" ); - else - fprintf( file, " DECLSPEC_ALIGN(%u);\n", pointer_size ); - } - print_file(file, 1, "} %s;\n", var_decl ); - if (needs_packing) print_file( file, 0, "#include \n" ); - print_file( file, 0, "\n" ); -} - -void write_pointer_checks( FILE *file, int indent, const var_t *func ) -{ - const var_list_t *args = type_get_function_args( func->type ); - const var_t *var; - - if (!args) return; - - LIST_FOR_EACH_ENTRY( var, args, const var_t, entry ) - if (cant_be_null( var )) - print_file( file, indent, "if (!%s) RpcRaiseException(RPC_X_NULL_REF_POINTER);\n", var->name ); -} - -int write_expr_eval_routines(FILE *file, const char *iface) -{ - static const char *var_name = "pS"; - static const char *var_name_expr = "pS->"; - int result = 0; - struct expr_eval_routine *eval; - unsigned short callback_offset = 0; - - LIST_FOR_EACH_ENTRY(eval, &expr_eval_routines, struct expr_eval_routine, entry) - { - const char *name = eval->name; - result = 1; - - print_file(file, 0, "static void __RPC_USER %s_%sExprEval_%04u(PMIDL_STUB_MESSAGE pStubMsg)\n", - eval->iface ? eval->iface->name : iface, name, callback_offset); - print_file(file, 0, "{\n"); - if (type_get_type( eval->cont_type ) == TYPE_FUNCTION) - { - write_func_param_struct( file, eval->iface, eval->cont_type, - "*pS = (struct _PARAM_STRUCT *)pStubMsg->StackTop", FALSE ); - } - else - { - print_file(file, 1, "%s", ""); - write_type_left(file, (type_t *)eval->cont_type, TRUE); - fprintf(file, " *%s = (", var_name); - write_type_left(file, (type_t *)eval->cont_type, TRUE); - fprintf(file, " *)(pStubMsg->StackTop - %u);\n", eval->baseoff); - } - print_file(file, 1, "pStubMsg->Offset = 0;\n"); /* FIXME */ - print_file(file, 1, "pStubMsg->MaxCount = (ULONG_PTR)"); - write_expr(file, eval->expr, 1, 1, var_name_expr, eval->cont_type, ""); - fprintf(file, ";\n"); - print_file(file, 0, "}\n\n"); - callback_offset++; - } - return result; -} - -void write_expr_eval_routine_list(FILE *file, const char *iface) -{ - struct expr_eval_routine *eval; - struct expr_eval_routine *cursor; - unsigned short callback_offset = 0; - - fprintf(file, "static const EXPR_EVAL ExprEvalRoutines[] =\n"); - fprintf(file, "{\n"); - - LIST_FOR_EACH_ENTRY_SAFE(eval, cursor, &expr_eval_routines, struct expr_eval_routine, entry) - { - print_file(file, 1, "%s_%sExprEval_%04u,\n", - eval->iface ? eval->iface->name : iface, eval->name, callback_offset); - callback_offset++; - list_remove(&eval->entry); - free(eval->name); - free(eval); - } - - fprintf(file, "};\n\n"); -} - -void write_user_quad_list(FILE *file) -{ - user_type_t *ut; - - if (list_empty(&user_type_list)) - return; - - fprintf(file, "static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[] =\n"); - fprintf(file, "{\n"); - LIST_FOR_EACH_ENTRY(ut, &user_type_list, user_type_t, entry) - { - const char *sep = &ut->entry == list_tail(&user_type_list) ? "" : ","; - print_file(file, 1, "{\n"); - print_file(file, 2, "(USER_MARSHAL_SIZING_ROUTINE)%s_UserSize,\n", ut->name); - print_file(file, 2, "(USER_MARSHAL_MARSHALLING_ROUTINE)%s_UserMarshal,\n", ut->name); - print_file(file, 2, "(USER_MARSHAL_UNMARSHALLING_ROUTINE)%s_UserUnmarshal,\n", ut->name); - print_file(file, 2, "(USER_MARSHAL_FREEING_ROUTINE)%s_UserFree\n", ut->name); - print_file(file, 1, "}%s\n", sep); - } - fprintf(file, "};\n\n"); -} - -void write_endpoints( FILE *f, const char *prefix, const str_list_t *list ) -{ - const struct str_list_entry_t *endpoint; - const char *p; - - /* this should be an array of RPC_PROTSEQ_ENDPOINT but we want const strings */ - print_file( f, 0, "static const unsigned char * const %s__RpcProtseqEndpoint[][2] =\n{\n", prefix ); - LIST_FOR_EACH_ENTRY( endpoint, list, const struct str_list_entry_t, entry ) - { - print_file( f, 1, "{ (const unsigned char *)\"" ); - for (p = endpoint->str; *p && *p != ':'; p++) - { - if (*p == '"' || *p == '\\') fputc( '\\', f ); - fputc( *p, f ); - } - if (!*p) goto error; - if (p[1] != '[') goto error; - - fprintf( f, "\", (const unsigned char *)\"" ); - for (p += 2; *p && *p != ']'; p++) - { - if (*p == '"' || *p == '\\') fputc( '\\', f ); - fputc( *p, f ); - } - if (*p != ']') goto error; - fprintf( f, "\" },\n" ); - } - print_file( f, 0, "};\n\n" ); - return; - -error: - error("Invalid endpoint syntax '%s'\n", endpoint->str); -} - -void write_client_call_routine( FILE *file, const type_t *iface, const var_t *func, - const char *prefix, unsigned int proc_offset ) -{ - type_t *rettype = type_function_get_rettype( func->type ); - int has_ret = !is_void( rettype ); - const var_list_t *args = type_get_function_args( func->type ); - const var_t *arg; - int len, needs_params = 0; - - /* we need a param structure if we have more than one arg */ - if (pointer_size == 4 && args) needs_params = is_object( iface ) || list_count( args ) > 1; - - print_file( file, 0, "{\n"); - if (needs_params) - { - if (has_ret) print_file( file, 1, "%s", "CLIENT_CALL_RETURN _RetVal;\n" ); - write_func_param_struct( file, iface, func->type, "__params", FALSE ); - if (is_object( iface )) print_file( file, 1, "__params.This = This;\n" ); - if (args) - LIST_FOR_EACH_ENTRY( arg, args, const var_t, entry ) - print_file( file, 1, "__params.%s = %s;\n", arg->name, arg->name ); - } - else if (has_ret) print_file( file, 1, "%s", "CLIENT_CALL_RETURN _RetVal;\n\n" ); - - len = fprintf( file, " %s%s( ", - has_ret ? "_RetVal = " : "", - get_stub_mode() == MODE_Oif ? "NdrClientCall2" : "NdrClientCall" ); - fprintf( file, "&%s_StubDesc,", prefix ); - fprintf( file, "\n%*s&__MIDL_ProcFormatString.Format[%u]", len, "", proc_offset ); - if (needs_params) - { - fprintf( file, ",\n%*s&__params", len, "" ); - } - else if (pointer_size == 8) - { - if (is_object( iface )) fprintf( file, ",\n%*sThis", len, "" ); - if (args) - LIST_FOR_EACH_ENTRY( arg, args, const var_t, entry ) - fprintf( file, ",\n%*s%s", len, "", arg->name ); - } - else - { - if (is_object( iface )) fprintf( file, ",\n%*s&This", len, "" ); - else if (args) - { - arg = LIST_ENTRY( list_head(args), const var_t, entry ); - fprintf( file, ",\n%*s&%s", len, "", arg->name ); - } - } - fprintf( file, " );\n" ); - if (has_ret) - { - print_file( file, 1, "return (" ); - write_type_decl_left(file, rettype); - fprintf( file, ")%s;\n", pointer_size == 8 ? "_RetVal.Simple" : "*(LONG_PTR *)&_RetVal" ); - } - print_file( file, 0, "}\n\n"); -} - -void write_exceptions( FILE *file ) -{ - fprintf( file, "#ifndef USE_COMPILER_EXCEPTIONS\n"); - fprintf( file, "\n"); - fprintf( file, "#include \"wine/exception.h\"\n"); - fprintf( file, "#undef RpcTryExcept\n"); - fprintf( file, "#undef RpcExcept\n"); - fprintf( file, "#undef RpcEndExcept\n"); - fprintf( file, "#undef RpcTryFinally\n"); - fprintf( file, "#undef RpcFinally\n"); - fprintf( file, "#undef RpcEndFinally\n"); - fprintf( file, "#undef RpcExceptionCode\n"); - fprintf( file, "#undef RpcAbnormalTermination\n"); - fprintf( file, "\n"); - fprintf( file, "struct __exception_frame;\n"); - fprintf( file, "typedef int (*__filter_func)(struct __exception_frame *);\n"); - fprintf( file, "typedef void (*__finally_func)(struct __exception_frame *);\n"); - fprintf( file, "\n"); - fprintf( file, "#define __DECL_EXCEPTION_FRAME \\\n"); - fprintf( file, " EXCEPTION_REGISTRATION_RECORD frame; \\\n"); - fprintf( file, " __filter_func filter; \\\n"); - fprintf( file, " __finally_func finally; \\\n"); - fprintf( file, " sigjmp_buf jmp; \\\n"); - fprintf( file, " DWORD code; \\\n"); - fprintf( file, " unsigned char abnormal_termination; \\\n"); - fprintf( file, " unsigned char filter_level; \\\n"); - fprintf( file, " unsigned char finally_level;\n"); - fprintf( file, "\n"); - fprintf( file, "struct __exception_frame\n{\n"); - fprintf( file, " __DECL_EXCEPTION_FRAME\n"); - fprintf( file, "};\n"); - fprintf( file, "\n"); - fprintf( file, "static inline void __widl_unwind_target(void)\n" ); - fprintf( file, "{\n"); - fprintf( file, " struct __exception_frame *exc_frame = (struct __exception_frame *)__wine_get_frame();\n" ); - fprintf( file, " if (exc_frame->finally_level > exc_frame->filter_level)\n" ); - fprintf( file, " {\n"); - fprintf( file, " exc_frame->abnormal_termination = 1;\n"); - fprintf( file, " exc_frame->finally( exc_frame );\n"); - fprintf( file, " __wine_pop_frame( &exc_frame->frame );\n"); - fprintf( file, " }\n"); - fprintf( file, " exc_frame->filter_level = 0;\n"); - fprintf( file, " siglongjmp( exc_frame->jmp, 1 );\n"); - fprintf( file, "}\n"); - fprintf( file, "\n"); - fprintf( file, "static DWORD __widl_exception_handler( EXCEPTION_RECORD *record,\n"); - fprintf( file, " EXCEPTION_REGISTRATION_RECORD *frame,\n"); - fprintf( file, " CONTEXT *context,\n"); - fprintf( file, " EXCEPTION_REGISTRATION_RECORD **pdispatcher )\n"); - fprintf( file, "{\n"); - fprintf( file, " struct __exception_frame *exc_frame = (struct __exception_frame *)frame;\n"); - fprintf( file, "\n"); - fprintf( file, " if (record->ExceptionFlags & (EH_UNWINDING | EH_EXIT_UNWIND | EH_NESTED_CALL))\n"); - fprintf( file, " {\n" ); - fprintf( file, " if (exc_frame->finally_level && (record->ExceptionFlags & (EH_UNWINDING | EH_EXIT_UNWIND)))\n"); - fprintf( file, " {\n" ); - fprintf( file, " exc_frame->abnormal_termination = 1;\n"); - fprintf( file, " exc_frame->finally( exc_frame );\n"); - fprintf( file, " }\n" ); - fprintf( file, " return ExceptionContinueSearch;\n"); - fprintf( file, " }\n" ); - fprintf( file, " exc_frame->code = record->ExceptionCode;\n"); - fprintf( file, " if (exc_frame->filter_level && exc_frame->filter( exc_frame ) == EXCEPTION_EXECUTE_HANDLER)\n" ); - fprintf( file, " __wine_rtl_unwind( frame, record, __widl_unwind_target );\n"); - fprintf( file, " return ExceptionContinueSearch;\n"); - fprintf( file, "}\n"); - fprintf( file, "\n"); - fprintf( file, "#define RpcTryExcept \\\n"); - fprintf( file, " if (!sigsetjmp( __frame->jmp, 0 )) \\\n"); - fprintf( file, " { \\\n"); - fprintf( file, " if (!__frame->finally_level) \\\n" ); - fprintf( file, " __wine_push_frame( &__frame->frame ); \\\n"); - fprintf( file, " __frame->filter_level = __frame->finally_level + 1;\n" ); - fprintf( file, "\n"); - fprintf( file, "#define RpcExcept(expr) \\\n"); - fprintf( file, " if (!__frame->finally_level) \\\n" ); - fprintf( file, " __wine_pop_frame( &__frame->frame ); \\\n"); - fprintf( file, " __frame->filter_level = 0; \\\n" ); - fprintf( file, " } \\\n"); - fprintf( file, " else \\\n"); - fprintf( file, "\n"); - fprintf( file, "#define RpcEndExcept\n"); - fprintf( file, "\n"); - fprintf( file, "#define RpcExceptionCode() (__frame->code)\n"); - fprintf( file, "\n"); - fprintf( file, "#define RpcTryFinally \\\n"); - fprintf( file, " if (!__frame->filter_level) \\\n"); - fprintf( file, " __wine_push_frame( &__frame->frame ); \\\n"); - fprintf( file, " __frame->finally_level = __frame->filter_level + 1;\n"); - fprintf( file, "\n"); - fprintf( file, "#define RpcFinally \\\n"); - fprintf( file, " if (!__frame->filter_level) \\\n"); - fprintf( file, " __wine_pop_frame( &__frame->frame ); \\\n"); - fprintf( file, " __frame->finally_level = 0;\n"); - fprintf( file, "\n"); - fprintf( file, "#define RpcEndFinally\n"); - fprintf( file, "\n"); - fprintf( file, "#define RpcAbnormalTermination() (__frame->abnormal_termination)\n"); - fprintf( file, "\n"); - fprintf( file, "#define RpcExceptionInit(filter_func,finally_func) \\\n"); - fprintf( file, " do { \\\n"); - fprintf( file, " __frame->frame.Handler = __widl_exception_handler; \\\n"); - fprintf( file, " __frame->filter = (__filter_func)(filter_func); \\\n" ); - fprintf( file, " __frame->finally = (__finally_func)(finally_func); \\\n"); - fprintf( file, " __frame->abnormal_termination = 0; \\\n"); - fprintf( file, " __frame->filter_level = 0; \\\n"); - fprintf( file, " __frame->finally_level = 0; \\\n"); - fprintf( file, " } while (0)\n"); - fprintf( file, "\n"); - fprintf( file, "#else /* USE_COMPILER_EXCEPTIONS */\n"); - fprintf( file, "\n"); - fprintf( file, "#define RpcExceptionInit(filter_func,finally_func) \\\n"); - fprintf( file, " do { (void)(filter_func); } while(0)\n"); - fprintf( file, "\n"); - fprintf( file, "#define __DECL_EXCEPTION_FRAME \\\n"); - fprintf( file, " DWORD code;\n"); - fprintf( file, "\n"); - fprintf( file, "#endif /* USE_COMPILER_EXCEPTIONS */\n"); -} diff --git a/reactos/tools/widl/typegen.h b/reactos/tools/widl/typegen.h deleted file mode 100644 index b6540e28c41..00000000000 --- a/reactos/tools/widl/typegen.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Format String Generator for IDL Compiler - * - * Copyright 2005-2006 Eric Kohl - * Copyright 2005 Robert Shearman - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - -enum pass -{ - PASS_IN, - PASS_OUT, - PASS_RETURN -}; - -enum remoting_phase -{ - PHASE_BUFFERSIZE, - PHASE_MARSHAL, - PHASE_UNMARSHAL, - PHASE_FREE -}; - -enum typegen_detect_flags -{ - TDT_ALL_TYPES = 1 << 0, - TDT_IGNORE_STRINGS = 1 << 1, - TDT_IGNORE_RANGES = 1 << 2, -}; - -enum typegen_type -{ - TGT_INVALID, - TGT_USER_TYPE, - TGT_CTXT_HANDLE, - TGT_CTXT_HANDLE_POINTER, - TGT_STRING, - TGT_POINTER, - TGT_ARRAY, - TGT_IFACE_POINTER, - TGT_BASIC, - TGT_ENUM, - TGT_STRUCT, - TGT_UNION, - TGT_RANGE, -}; - -typedef int (*type_pred_t)(const type_t *); - -void write_formatstringsdecl(FILE *f, int indent, const statement_list_t *stmts, type_pred_t pred); -void write_procformatstring(FILE *file, const statement_list_t *stmts, type_pred_t pred); -void write_typeformatstring(FILE *file, const statement_list_t *stmts, type_pred_t pred); -void write_procformatstring_offsets( FILE *file, const type_t *iface ); -void print_phase_basetype(FILE *file, int indent, const char *local_var_prefix, enum remoting_phase phase, - enum pass pass, const var_t *var, const char *varname); -void write_parameter_conf_or_var_exprs(FILE *file, int indent, const char *local_var_prefix, - enum remoting_phase phase, const var_t *var, int valid_variance); -void write_remoting_arguments(FILE *file, int indent, const var_t *func, const char *local_var_prefix, - enum pass pass, enum remoting_phase phase); -unsigned int get_size_procformatstring_func(const type_t *iface, const var_t *func); -unsigned int get_size_procformatstring(const statement_list_t *stmts, type_pred_t pred); -unsigned int get_size_typeformatstring(const statement_list_t *stmts, type_pred_t pred); -void assign_stub_out_args( FILE *file, int indent, const var_t *func, const char *local_var_prefix ); -void declare_stub_args( FILE *file, int indent, const var_t *func ); -void write_func_param_struct( FILE *file, const type_t *iface, const type_t *func, - const char *var_decl, int add_retval ); -void write_pointer_checks( FILE *file, int indent, const var_t *func ); -int write_expr_eval_routines(FILE *file, const char *iface); -void write_expr_eval_routine_list(FILE *file, const char *iface); -void write_user_quad_list(FILE *file); -void write_endpoints( FILE *f, const char *prefix, const str_list_t *list ); -void write_client_call_routine( FILE *file, const type_t *iface, const var_t *func, - const char *prefix, unsigned int proc_offset ); -void write_exceptions( FILE *file ); -unsigned int type_memsize(const type_t *t); -int decl_indirect(const type_t *t); -int is_interpreted_func(const type_t *iface, const var_t *func); -void write_parameters_init(FILE *file, int indent, const var_t *func, const char *local_var_prefix); -void print(FILE *file, int indent, const char *format, va_list ap); -expr_t *get_size_is_expr(const type_t *t, const char *name); -int is_full_pointer_function(const var_t *func); -void write_full_pointer_init(FILE *file, int indent, const var_t *func, int is_server); -void write_full_pointer_free(FILE *file, int indent, const var_t *func); -unsigned char get_basic_fc(const type_t *type); -unsigned char get_pointer_fc(const type_t *type, const attr_list_t *attrs, int toplevel_param); -unsigned char get_struct_fc(const type_t *type); -enum typegen_type typegen_detect_type(const type_t *type, const attr_list_t *attrs, unsigned int flags); diff --git a/reactos/tools/widl/typelib.c b/reactos/tools/widl/typelib.c deleted file mode 100644 index a63af091437..00000000000 --- a/reactos/tools/widl/typelib.c +++ /dev/null @@ -1,388 +0,0 @@ -/* - * IDL Compiler - * - * Copyright 2004 Ove Kaaven - * Copyright 2006 Jacek 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 - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" -#include "wine/port.h" -#include "wine/wpp.h" - -#include -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include - -#define NONAMELESSUNION -#define NONAMELESSSTRUCT - -#include -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "header.h" -#include "typelib.h" -#include "widltypes.h" -#include "typelib_struct.h" -#include "typetree.h" - -static typelib_t *typelib; - -int is_ptr(const type_t *t) -{ - return type_get_type(t) == TYPE_POINTER; -} - -int is_array(const type_t *t) -{ - return type_get_type(t) == TYPE_ARRAY; -} - -/* List of oleauto types that should be recognized by name. - * (most of) these seem to be intrinsic types in mktyplib. - * This table MUST be alphabetically sorted on the kw field. - */ -static const struct oatype { - const char *kw; - unsigned short vt; -} oatypes[] = { - {"BSTR", VT_BSTR}, - {"CURRENCY", VT_CY}, - {"DATE", VT_DATE}, - {"DECIMAL", VT_DECIMAL}, - {"HRESULT", VT_HRESULT}, - {"LPSTR", VT_LPSTR}, - {"LPWSTR", VT_LPWSTR}, - {"SCODE", VT_ERROR}, - {"VARIANT", VT_VARIANT}, - {"VARIANT_BOOL", VT_BOOL} -}; -#define NTYPES (sizeof(oatypes)/sizeof(oatypes[0])) -#define KWP(p) ((const struct oatype *)(p)) - -static int kw_cmp_func(const void *s1, const void *s2) -{ - return strcmp(KWP(s1)->kw, KWP(s2)->kw); -} - -static unsigned short builtin_vt(const type_t *t) -{ - const char *kw = t->name; - struct oatype key; - const struct oatype *kwp; - key.kw = kw; -#ifdef KW_BSEARCH - kwp = bsearch(&key, oatypes, NTYPES, sizeof(oatypes[0]), kw_cmp_func); -#else - { - unsigned int i; - for (kwp=NULL, i=0; i < NTYPES; i++) - if (!kw_cmp_func(&key, &oatypes[i])) { - kwp = &oatypes[i]; - break; - } - } -#endif - if (kwp) { - return kwp->vt; - } - if (is_string_type (t->attrs, t)) - { - const type_t *elem_type; - if (is_array(t)) - elem_type = type_array_get_element(t); - else - elem_type = type_pointer_get_ref(t); - if (type_get_type(elem_type) == TYPE_BASIC) - { - switch (type_basic_get_type(elem_type)) - { - case TYPE_BASIC_CHAR: return VT_LPSTR; - case TYPE_BASIC_WCHAR: return VT_LPWSTR; - default: break; - } - } - } - return 0; -} - -static int match(const char*n, const char*m) -{ - if (!n) return 0; - return !strcmp(n, m); -} - -unsigned short get_type_vt(type_t *t) -{ - unsigned short vt; - - chat("get_type_vt: %p type->name %s\n", t, t->name); - if (t->name) { - vt = builtin_vt(t); - if (vt) return vt; - } - - if (type_is_alias(t) && is_attr(t->attrs, ATTR_PUBLIC)) - return VT_USERDEFINED; - - switch (type_get_type(t)) { - case TYPE_BASIC: - switch (type_basic_get_type(t)) { - case TYPE_BASIC_BYTE: - return VT_UI1; - case TYPE_BASIC_CHAR: - case TYPE_BASIC_INT8: - if (type_basic_get_sign(t) > 0) - return VT_UI1; - else - return VT_I1; - case TYPE_BASIC_WCHAR: - return VT_I2; /* mktyplib seems to parse wchar_t as short */ - case TYPE_BASIC_INT16: - if (type_basic_get_sign(t) > 0) - return VT_UI2; - else - return VT_I2; - case TYPE_BASIC_INT: - if (type_basic_get_sign(t) > 0) - return VT_UINT; - else - return VT_INT; - case TYPE_BASIC_INT32: - case TYPE_BASIC_ERROR_STATUS_T: - if (type_basic_get_sign(t) > 0) - return VT_UI4; - else - return VT_I4; - case TYPE_BASIC_INT64: - case TYPE_BASIC_HYPER: - if (type_basic_get_sign(t) > 0) - return VT_UI8; - else - return VT_I8; - case TYPE_BASIC_INT3264: - if (typelib_kind == SYS_WIN64) - { - if (type_basic_get_sign(t) > 0) - return VT_UI8; - else - return VT_I8; - } - else - { - if (type_basic_get_sign(t) > 0) - return VT_UI4; - else - return VT_I4; - } - case TYPE_BASIC_FLOAT: - return VT_R4; - case TYPE_BASIC_DOUBLE: - return VT_R8; - case TYPE_BASIC_HANDLE: - error("handles can't be used in typelibs\n"); - } - break; - - case TYPE_POINTER: - return VT_PTR; - - case TYPE_ARRAY: - if (type_array_is_decl_as_ptr(t)) - { - if (match(type_array_get_element(t)->name, "SAFEARRAY")) - return VT_SAFEARRAY; - } - else - error("get_type_vt: array types not supported\n"); - return VT_PTR; - - case TYPE_INTERFACE: - if(match(t->name, "IUnknown")) - return VT_UNKNOWN; - if(match(t->name, "IDispatch")) - return VT_DISPATCH; - return VT_USERDEFINED; - - case TYPE_ENUM: - case TYPE_STRUCT: - case TYPE_COCLASS: - case TYPE_MODULE: - case TYPE_UNION: - case TYPE_ENCAPSULATED_UNION: - return VT_USERDEFINED; - - case TYPE_VOID: - return VT_VOID; - - case TYPE_ALIAS: - /* aliases should be filtered out by the type_get_type call above */ - assert(0); - break; - - case TYPE_FUNCTION: - error("get_type_vt: functions not supported\n"); - break; - - case TYPE_BITFIELD: - error("get_type_vt: bitfields not supported\n"); - break; - } - return 0; -} - -void start_typelib(typelib_t *typelib_type) -{ - if (!do_typelib) return; - typelib = typelib_type; -} - -void end_typelib(void) -{ - if (!typelib) return; - - create_msft_typelib(typelib); -} - -static void tlb_read(int fd, void *buf, int count) -{ - if(read(fd, buf, count) < count) - error("error while reading importlib.\n"); -} - -static void tlb_lseek(int fd, off_t offset) -{ - if(lseek(fd, offset, SEEK_SET) == -1) - error("lseek failed\n"); -} - -static void msft_read_guid(int fd, MSFT_SegDir *segdir, int offset, GUID *guid) -{ - tlb_lseek(fd, segdir->pGuidTab.offset+offset); - tlb_read(fd, guid, sizeof(GUID)); -} - -static void read_msft_importlib(importlib_t *importlib, int fd) -{ - MSFT_Header header; - MSFT_SegDir segdir; - int *typeinfo_offs; - int i; - - importlib->allocated = 0; - - tlb_lseek(fd, 0); - tlb_read(fd, &header, sizeof(header)); - - importlib->version = header.version; - - typeinfo_offs = xmalloc(header.nrtypeinfos*sizeof(INT)); - tlb_read(fd, typeinfo_offs, header.nrtypeinfos*sizeof(INT)); - tlb_read(fd, &segdir, sizeof(segdir)); - - msft_read_guid(fd, &segdir, header.posguid, &importlib->guid); - - importlib->ntypeinfos = header.nrtypeinfos; - importlib->importinfos = xmalloc(importlib->ntypeinfos*sizeof(importinfo_t)); - - for(i=0; i < importlib->ntypeinfos; i++) { - MSFT_TypeInfoBase base; - MSFT_NameIntro nameintro; - int len; - - tlb_lseek(fd, sizeof(MSFT_Header) + header.nrtypeinfos*sizeof(INT) + sizeof(MSFT_SegDir) - + typeinfo_offs[i]); - tlb_read(fd, &base, sizeof(base)); - - importlib->importinfos[i].importlib = importlib; - importlib->importinfos[i].flags = (base.typekind&0xf)<<24; - importlib->importinfos[i].offset = -1; - importlib->importinfos[i].id = i; - - if(base.posguid != -1) { - importlib->importinfos[i].flags |= MSFT_IMPINFO_OFFSET_IS_GUID; - msft_read_guid(fd, &segdir, base.posguid, &importlib->importinfos[i].guid); - } - else memset( &importlib->importinfos[i].guid, 0, sizeof(importlib->importinfos[i].guid)); - - tlb_lseek(fd, segdir.pNametab.offset + base.NameOffset); - tlb_read(fd, &nameintro, sizeof(nameintro)); - - len = nameintro.namelen & 0xff; - - importlib->importinfos[i].name = xmalloc(len+1); - tlb_read(fd, importlib->importinfos[i].name, len); - importlib->importinfos[i].name[len] = 0; - } - - free(typeinfo_offs); -} - -static void read_importlib(importlib_t *importlib) -{ - int fd; - INT magic; - char *file_name; - - file_name = wpp_find_include(importlib->name, NULL); - if(file_name) { - fd = open(file_name, O_RDONLY | O_BINARY ); - free(file_name); - }else { - fd = open(importlib->name, O_RDONLY | O_BINARY ); - } - - if(fd < 0) - error("Could not open importlib %s.\n", importlib->name); - - tlb_read(fd, &magic, sizeof(magic)); - - switch(magic) { - case MSFT_MAGIC: - read_msft_importlib(importlib, fd); - break; - default: - error("Wrong or unsupported typelib magic %x\n", magic); - }; - - close(fd); -} - -void add_importlib(const char *name) -{ - importlib_t *importlib; - - if(!typelib) return; - - LIST_FOR_EACH_ENTRY( importlib, &typelib->importlibs, importlib_t, entry ) - if(!strcmp(name, importlib->name)) - return; - - chat("add_importlib: %s\n", name); - - importlib = xmalloc(sizeof(*importlib)); - memset( importlib, 0, sizeof(*importlib) ); - importlib->name = xstrdup(name); - - read_importlib(importlib); - list_add_head( &typelib->importlibs, &importlib->entry ); -} diff --git a/reactos/tools/widl/typelib.h b/reactos/tools/widl/typelib.h deleted file mode 100644 index 18e6cdbcc56..00000000000 --- a/reactos/tools/widl/typelib.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * IDL Compiler - * - * Copyright 2004 Ove Kaaven - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef __WIDL_TYPELIB_H -#define __WIDL_TYPELIB_H - -extern void start_typelib(typelib_t *typelib_type); -extern void end_typelib(void); -extern void add_importlib(const char *name); - -/* Copied from wtypes.h. Not included directly because that would create a - * circular dependency (after all, wtypes.h is generated by widl...) */ - -enum VARENUM { - VT_EMPTY = 0, - VT_NULL = 1, - VT_I2 = 2, - VT_I4 = 3, - VT_R4 = 4, - VT_R8 = 5, - VT_CY = 6, - VT_DATE = 7, - VT_BSTR = 8, - VT_DISPATCH = 9, - VT_ERROR = 10, - VT_BOOL = 11, - VT_VARIANT = 12, - VT_UNKNOWN = 13, - VT_DECIMAL = 14, - VT_I1 = 16, - VT_UI1 = 17, - VT_UI2 = 18, - VT_UI4 = 19, - VT_I8 = 20, - VT_UI8 = 21, - VT_INT = 22, - VT_UINT = 23, - VT_VOID = 24, - VT_HRESULT = 25, - VT_PTR = 26, - VT_SAFEARRAY = 27, - VT_CARRAY = 28, - VT_USERDEFINED = 29, - VT_LPSTR = 30, - VT_LPWSTR = 31, - VT_RECORD = 36, - VT_INT_PTR = 37, - VT_UINT_PTR = 38, - VT_FILETIME = 64, - VT_BLOB = 65, - VT_STREAM = 66, - VT_STORAGE = 67, - VT_STREAMED_OBJECT = 68, - VT_STORED_OBJECT = 69, - VT_BLOB_OBJECT = 70, - VT_CF = 71, - VT_CLSID = 72, - VT_VERSIONED_STREAM = 73, - VT_BSTR_BLOB = 0xfff, - VT_VECTOR = 0x1000, - VT_ARRAY = 0x2000, - VT_BYREF = 0x4000, - VT_RESERVED = 0x8000, - VT_ILLEGAL = 0xffff, - VT_ILLEGALMASKED = 0xfff, - VT_TYPEMASK = 0xfff -}; -extern unsigned short get_type_vt(type_t *t); - -extern int create_msft_typelib(typelib_t *typelib); -#endif diff --git a/reactos/tools/widl/typelib_struct.h b/reactos/tools/widl/typelib_struct.h deleted file mode 100644 index 79b86b91216..00000000000 --- a/reactos/tools/widl/typelib_struct.h +++ /dev/null @@ -1,605 +0,0 @@ -/* - * typelib_struct.h internal wine data structures - * used to decode typelib's - * - * Copyright 1999 Rein KLazes - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ -#ifndef _WIDL_TYPELIB_STRUCT_H -#define _WIDL_TYPELIB_STRUCT_H - -#define HELPDLLFLAG (0x0100) -#define DO_NOT_SEEK (-1) - -#define MSFT_HREFTYPE_INTHISFILE(href) (!((href) & 3)) -#define MSFT_HREFTYPE_INDEX(href) ((href) /sizeof(MSFT_TypeInfoBase)) - -/*-------------------------FILE STRUCTURES-----------------------------------*/ - -/* There are two known file formats, those created with ICreateTypeLib - * have the signature "SLTG" as their first four bytes, while those created - * with ICreateTypeLib2 have "MSFT". - */ - -#define MSFT_MAGIC 0x5446534d - -/***************************************************** - * MSFT typelibs - * - * These are TypeLibs created with ICreateTypeLib2 - * - */ - -/* - * structure of the typelib type2 header - * it is at the beginning of a type lib file - * - */ -typedef struct tagMSFT_Header { -/*0x00*/INT magic1; /* 0x5446534D "MSFT" */ - INT magic2; /* 0x00010002 version nr? */ - INT posguid; /* position of libid in guid table */ - /* (should be, else -1) */ - INT lcid; /* locale id */ -/*0x10*/INT lcid2; - INT varflags; /* (largely) unknown flags */ - /* the lower nibble is syskind */ - /* 0x40 always seems to be set */ - /* 0x10 set with a helpfile defined */ - /* 0x100 set with a helpstringdll defined - in this - case the offset to the name in the stringtable - appears right after this struct, before the - typeinfo offsets */ - INT version; /* set with SetVersion() */ - INT flags; /* set with SetFlags() */ -/*0x20*/INT nrtypeinfos; /* number of typeinfo's (till so far) */ - INT helpstring; /* position of help string in stringtable */ - INT helpstringcontext; - INT helpcontext; -/*0x30*/INT nametablecount; /* number of names in name table */ - INT nametablechars; /* nr of characters in name table */ - INT NameOffset; /* offset of name in name table */ - INT helpfile; /* position of helpfile in stringtable */ -/*0x40*/INT CustomDataOffset; /* if -1 no custom data, else it is offset */ - /* in customer data/guid offset table */ - INT res44; /* unknown always: 0x20 (guid hash size?) */ - INT res48; /* unknown always: 0x80 (name hash size?) */ - INT dispatchpos; /* HREFTYPE to IDispatch, or -1 if no IDispatch */ -/*0x50*/INT nimpinfos; /* number of impinfos */ -} MSFT_Header; - -/* segments in the type lib file have a structure like this: */ -typedef struct tagMSFT_pSeg { - INT offset; /* absolute offset in file */ - INT length; /* length of segment */ - INT res08; /* unknown always -1 */ - INT res0c; /* unknown always 0x0f in the header */ - /* 0x03 in the typeinfo_data */ -} MSFT_pSeg; - -/* layout of the main segment directory */ -typedef struct tagMSFT_SegDir { -/*1*/MSFT_pSeg pTypeInfoTab; /* each typeinfo gets an entry of 0x64 bytes */ - /* (25 ints) */ -/*2*/MSFT_pSeg pImpInfo; /* table with info for imported types */ -/*3*/MSFT_pSeg pImpFiles; /* import libraries */ -/*4*/MSFT_pSeg pRefTab; /* References table */ -/*5*/MSFT_pSeg pLibtab; /* always exists, always same size (0x80) */ - /* hash table w offsets to guid????? */ -/*6*/MSFT_pSeg pGuidTab; /* all guids are stored here together with */ - /* offset in some table???? */ -/*7*/MSFT_pSeg res07; /* always created, always same size (0x200) */ - /* purpose largely unknown */ -/*8*/MSFT_pSeg pNametab; /* name tables */ -/*9*/MSFT_pSeg pStringtab; /* string table */ -/*A*/MSFT_pSeg pTypdescTab; /* table with type descriptors */ -/*B*/MSFT_pSeg pArrayDescriptions; -/*C*/MSFT_pSeg pCustData; /* data table, used for custom data and default */ - /* parameter values */ -/*D*/MSFT_pSeg pCDGuids; /* table with offsets for the guids and into */ - /* the customer data table */ -/*E*/MSFT_pSeg res0e; /* unknown */ -/*F*/MSFT_pSeg res0f; /* unknown */ -} MSFT_SegDir; - - -/* base type info data */ -typedef struct tagMSFT_TypeInfoBase { -/*000*/ INT typekind; /* it is the TKIND_xxx */ - /* some byte alignment stuff */ - INT memoffset; /* points past the file, if no elements */ - INT res2; /* zero if no element, N*0x40 */ - INT res3; /* -1 if no element, (N-1)*0x38 */ -/*010*/ INT res4; /* always? 3 */ - INT res5; /* always? zero */ - INT cElement; /* counts elements, HI=cVars, LO=cFuncs */ - INT res7; /* always? zero */ -/*020*/ INT res8; /* always? zero */ - INT res9; /* always? zero */ - INT resA; /* always? zero */ - INT posguid; /* position in guid table */ -/*030*/ INT flags; /* Typeflags */ - INT NameOffset; /* offset in name table */ - INT version; /* element version */ - INT docstringoffs; /* offset of docstring in string tab */ -/*040*/ INT helpstringcontext; /* */ - INT helpcontext; /* */ - INT oCustData; /* offset in customer data table */ -#ifdef WORDS_BIGENDIAN - INT16 cbSizeVft; /* virtual table size, including inherits */ - INT16 cImplTypes; /* nr of implemented interfaces */ -#else - INT16 cImplTypes; /* nr of implemented interfaces */ - INT16 cbSizeVft; /* virtual table size, including inherits */ -#endif -/*050*/ INT size; /* size in bytes, at least for structures */ - /* FIXME: name of this field */ - INT datatype1; /* position in type description table */ - /* or in base interfaces */ - /* if coclass: offset in reftable */ - /* if interface: reference to inherited if */ - INT datatype2; /* for interfaces: hiword is num of inherited funcs */ - /* loword is num of inherited interfaces */ - INT res18; /* always? 0 */ -/*060*/ INT res19; /* always? -1 */ -} MSFT_TypeInfoBase; - -/* layout of an entry with information on imported types */ -typedef struct tagMSFT_ImpInfo { - INT flags; /* bits 0 - 15: count */ - /* bit 16: if set oGuid is an offset to Guid */ - /* if clear oGuid is a typeinfo index in the specified typelib */ - /* bits 24 - 31: TKIND of reference */ - INT oImpFile; /* offset in the Import File table */ - INT oGuid; /* offset in Guid table or typeinfo index (see bit 16 of flags) */ -} MSFT_ImpInfo; - -#define MSFT_IMPINFO_OFFSET_IS_GUID 0x00010000 - -/* function description data */ -typedef struct { -/* INT recsize; record size including some extra stuff */ - INT DataType; /* data type of the member, eg return of function */ - INT Flags; /* something to do with attribute flags (LOWORD) */ -#ifdef WORDS_BIGENDIAN - INT16 funcdescsize; /* size of reconstituted FUNCDESC and related structs */ - INT16 VtableOffset; /* offset in vtable */ -#else - INT16 VtableOffset; /* offset in vtable */ - INT16 funcdescsize; /* size of reconstituted FUNCDESC and related structs */ -#endif - INT FKCCIC; /* bit string with the following */ - /* meaning (bit 0 is the lsb): */ - /* bits 0 - 2: FUNCKIND */ - /* bits 3 - 6: INVOKEKIND */ - /* bit 7: custom data present */ - /* bits 8 - 11: CALLCONV */ - /* bit 12: parameters have default values */ - /* bit 13: oEntry is numeric */ - /* bit 14: has retval param */ - /* bits 16 - 31: index of next function with same id */ -#ifdef WORDS_BIGENDIAN - INT16 nroargs; /* nr of optional arguments */ - INT16 nrargs; /* number of arguments (including optional ????) */ -#else - INT16 nrargs; /* number of arguments (including optional ????) */ - INT16 nroargs; /* nr of optional arguments */ -#endif - /* optional attribute fields, the number of them is variable */ - INT OptAttr[1]; -/* -0* INT helpcontext; -1* INT oHelpString; -2* INT oEntry; // either offset in string table or numeric as it is (see bit 13 of FKCCIC) // -3* INT res9; // unknown (-1) // -4* INT resA; // unknown (-1) // -5* INT HelpStringContext; - // these are controlled by a bit set in the FKCCIC field // -6* INT oCustData; // custom data for function // -7* INT oArgCustData[1]; // custom data per argument // -*/ -} MSFT_FuncRecord; - -/* after this may follow an array with default value pointers if the - * appropriate bit in the FKCCIC field has been set: - * INT oDefautlValue[nrargs]; - */ - - /* Parameter info one per argument*/ -typedef struct { - INT DataType; - INT oName; - INT Flags; - } MSFT_ParameterInfo; - -/* Variable description data */ -typedef struct { -/* INT recsize; // record size including some extra stuff */ - INT DataType; /* data type of the variable */ - INT Flags; /* VarFlags (LOWORD) */ -#ifdef WORDS_BIGENDIAN - INT16 vardescsize; /* size of reconstituted VARDESC and related structs */ - INT16 VarKind; /* VarKind */ -#else - INT16 VarKind; /* VarKind */ - INT16 vardescsize; /* size of reconstituted VARDESC and related structs */ -#endif - INT OffsValue; /* value of the variable or the offset */ - /* in the data structure */ - /* optional attribute fields, the number of them is variable */ - /* controlled by record length */ - INT HelpContext; - INT oHelpString; - INT res9; /* unknown (-1) */ - INT oCustData; /* custom data for variable */ - INT HelpStringContext; - -} MSFT_VarRecord; - -/* Structure of the reference data */ -typedef struct { - INT reftype; /* either offset in type info table, then it's */ - /* a multiple of 64 */ - /* or offset in the external reference table */ - /* with an offset of 1 */ - INT flags; - INT oCustData; /* custom data */ - INT onext; /* next offset, -1 if last */ -} MSFT_RefRecord; - -/* this is how a guid is stored */ -typedef struct { - GUID guid; - INT hreftype; /* -2 for the typelib guid, typeinfo offset - for typeinfo guid, low two bits are 01 if - this is an imported typeinfo, low two bits - are 10 if this is an imported typelib (used - by imported typeinfos) */ - INT next_hash; /* offset to next guid in the hash bucket */ -} MSFT_GuidEntry; -/* some data preceding entries in the name table */ -typedef struct { - INT hreftype; /* is -1 if name is for neither a typeinfo, - a variable, or a function (that is, name - is for a typelib or a function parameter). - otherwise is the offset of the first - typeinfo that this name refers to (either - to the typeinfo itself or to a member of - the typeinfo */ - INT next_hash; /* offset to next name in the hash bucket */ - INT namelen; /* only lower 8 bits are valid */ - /* 0x1000 if name is only used once as a variable name */ - /* 0x2000 if name is a variable in an enumeration */ - /* 0x3800 if name is typeinfo name */ - /* upper 16 bits are hash code */ -} MSFT_NameIntro; -/* the custom data table directory has entries like this */ -typedef struct { - INT GuidOffset; - INT DataOffset; - INT next; /* next offset in the table, -1 if it's the last */ -} MSFT_CDGuid; - - -/*********************************************************** - * - * SLTG typelibs. - * - * These are created with ICreateTypeLib - * - */ - -#include "pshpack1.h" - -typedef struct { -/*00*/ DWORD SLTG_magic; /* 0x47544c53 == "SLTG" */ -/*04*/ WORD nrOfFileBlks; /* no of SLTG_BlkEntry's + 1 */ -/*06*/ WORD res06; /* ?? always 9 */ -/*08*/ WORD res08; /* some kind of len/offset ?? */ -/*0a*/ WORD first_blk; /* 1 based index into blk entries that - corresponds to first block in file */ -/*0c*/ DWORD res0c; /* always 0x000204ff */ -/*10*/ DWORD res10; /* always 0x00000000 */ -/*14*/ DWORD res14; /* always 0x000000c0 */ -/*18*/ DWORD res18; /* always 0x46000000 */ -/*1c*/ DWORD res1c; /* always 0x00000044 */ -/*20*/ DWORD res20; /* always 0xffff0000 */ -} SLTG_Header; - -/* This gets followed by a list of block entries */ -typedef struct { -/*00*/ DWORD len; -/*04*/ WORD index_string; /* offs from start of SLTG_Magic to index string */ -/*06*/ WORD next; -} SLTG_BlkEntry; - -/* The order of the blocks in the file is given by starting at Block - entry firt_blk and stepping through using the next pointer */ - -/* These then get followed by this magic */ -typedef struct { -/*00*/ BYTE res00; /* always 0x01 */ -/*01*/ CHAR CompObj_magic[8]; /* always "CompObj" */ -/*09*/ CHAR dir_magic[4]; /* always "dir" */ -} SLTG_Magic; - -#define SLTG_COMPOBJ_MAGIC "CompObj" -#define SLTG_DIR_MAGIC "dir" - -/* Next we have SLTG_Header.nrOfFileBlks - 2 of Index strings. These -are presumably unique to within the file and look something like -"AAAAAAAAAA" with the first character incremented from 'A' to ensure -uniqueness. I guess successive chars increment when we need to wrap -the first one. */ - -typedef struct { -/*00*/ CHAR string[11]; -} SLTG_Index; - - -/* This is followed by SLTG_pad9 */ -typedef struct { -/*00*/ CHAR pad[9]; /* 9 '\0's */ -} SLTG_Pad9; - - -/* Now we have the noOfFileBlks - 1 worth of blocks. The length of -each block is given by its entry in SLTG_BlkEntry. */ - -/* type SLTG_NAME in rather like a BSTR except that the length in -bytes is given by the first WORD and the string contains 8bit chars */ - -typedef WORD SLTG_Name; - -/* The main library block looks like this. This one seems to come last */ - -typedef struct { -/*00*/ WORD magic; /* 0x51cc */ -/*02*/ WORD res02; /* 0x0003, 0x0004 */ -/*04*/ WORD name; /* offset to name in name table */ -/*06*/ SLTG_Name res06; /* maybe this is just WORD == 0xffff */ - SLTG_Name helpstring; - SLTG_Name helpfile; - DWORD helpcontext; - WORD syskind; /* == 1 for win32, 0 for win16 */ - WORD lcid; /* == 0x409, 0x809 etc */ - DWORD res12; /* == 0 */ - WORD libflags; /* LIBFLAG_* */ - WORD maj_vers; - WORD min_vers; - GUID uuid; -} SLTG_LibBlk; - -#define SLTG_LIBBLK_MAGIC 0x51cc - -/* we then get 0x40 bytes worth of 0xffff or small numbers followed by - nrOfFileBlks - 2 of these */ -typedef struct { - WORD small_no; - SLTG_Name index_name; /* This refers to a name in the directory */ - SLTG_Name other_name; /* Another one of these weird names */ - WORD res1a; /* 0xffff */ - WORD name_offs; /* offset to name in name table */ - WORD more_bytes; /* if this is non-zero we get this many - bytes before the next element, which seem - to reference the docstring of the type ? */ - WORD res20; /* 0xffff */ - DWORD helpcontext; - WORD res26; /* 0xffff */ - GUID uuid; -} SLTG_OtherTypeInfo; - -/* Next we get WORD 0x0003 followed by a DWORD which if we add to -0x216 gives the offset to the name table from the start of the LibBlk -struct */ - -typedef struct { -/*00*/ WORD magic; /* 0x0501 */ -/*02*/ DWORD href_table; /* if not 0xffffffff, then byte offset from - beginning of struct to href table */ -/*06*/ DWORD res06; /* 0xffffffff */ -/*0a*/ DWORD elem_table; /* offset to members */ -/*0e*/ DWORD res0e; /* 0xffffffff */ -/*12*/ WORD major_version; /* major version number */ -/*14*/ WORD minor_version; /* minor version number */ -/*16*/ DWORD res16; /* 0xfffe0000 */ -/*1a*/ BYTE typeflags1;/* 0x02 | top 5 bits hold l5sbs of TYPEFLAGS */ -/*1b*/ BYTE typeflags2;/* TYPEFLAGS >> 5 */ -/*1c*/ BYTE typeflags3;/* 0x02*/ -/*1d*/ BYTE typekind; /* 0x03 == TKIND_INTERFACE etc. */ -/*1e*/ DWORD res1e; /* 0x00000000 or 0xffffffff */ -} SLTG_TypeInfoHeader; - -#define SLTG_TIHEADER_MAGIC 0x0501 - -typedef struct { -/*00*/ WORD cFuncs; -/*02*/ WORD cVars; -/*04*/ WORD cImplTypes; -/*06*/ WORD res06; -/*08*/ WORD res08; -/*0a*/ WORD res0a; -/*0c*/ WORD res0c; -/*0e*/ WORD res0e; -/*10*/ WORD res10; -/*12*/ WORD res12; -/*14*/ WORD tdescalias_vt; /* for TKIND_ALIAS */ -/*16*/ WORD res16; -/*18*/ WORD res18; -/*1a*/ WORD res1a; -/*1c*/ WORD res1c; -/*1e*/ WORD res1e; -/*20*/ WORD cbSizeInstance; -/*22*/ WORD cbAlignment; -/*24*/ WORD res24; -/*26*/ WORD res26; -/*28*/ WORD cbSizeVft; -/*2a*/ WORD res2a; -/*2c*/ WORD res2c; -/*2e*/ WORD res2e; -/*30*/ WORD res30; -/*32*/ WORD res32; -/*34*/ WORD res34; -} SLTG_TypeInfoTail; - -typedef struct { -/*00*/ WORD res00; /* 0x0001 sometimes 0x0003 ?? */ -/*02*/ WORD res02; /* 0xffff */ -/*04*/ BYTE res04; /* 0x01 */ -/*05*/ DWORD cbExtra; /* No of bytes that follow */ -} SLTG_MemberHeader; - -typedef struct { -/*00*/ WORD magic; /* 0x120a */ -/*02*/ WORD next; /* offset in bytes to next block from start of block - group, 0xffff if last item */ -/*04*/ WORD name; /* offset to name within name table */ -/*06*/ WORD value; /* offset to value from start of block group */ -/*08*/ WORD res08; /* 0x56 */ -/*0a*/ DWORD memid; /* memid */ -/*0e*/ WORD helpcontext;/* 0xfffe == no context, 0x0001 == stored in EnumInfo struct, else offset - to value from start of block group */ -/*10*/ WORD helpstring;/* offset from start of block group to string offset */ -} SLTG_EnumItem; - -#define SLTG_ENUMITEM_MAGIC 0x120a - -typedef struct { -/*00*/ WORD vt; /* vartype, 0xffff marks end. */ -/*02*/ WORD res02; /* ?, 0xffff marks end */ -} SLTG_AliasItem; - -#define SLTG_ALIASITEM_MAGIC 0x001d - - -typedef struct { - BYTE magic; /* 0x4c or 0x6c */ - BYTE inv; /* high nibble is INVOKE_KIND, low nibble = 2 */ - WORD next; /* byte offset from beginning of group to next fn */ - WORD name; /* Offset within name table to name */ - DWORD dispid; /* dispid */ - WORD helpcontext; /* helpcontext (again 1 is special) */ - WORD helpstring;/* helpstring offset to offset */ - WORD arg_off; /* offset to args from start of block */ - BYTE nacc; /* lowest 3bits are CALLCONV, rest are no of args */ - BYTE retnextopt;/* if 0x80 bit set ret type follows else next WORD - is offset to ret type. No of optional args is - middle 6 bits */ - WORD rettype; /* return type VT_?? or offset to ret type */ - WORD vtblpos; /* position in vtbl? */ - WORD funcflags; /* present if magic == 0x6c */ -/* Param list starts, repeat next two as required */ -#if 0 - WORD name; /* offset to 2nd letter of name */ - WORD+ type; /* VT_ of param */ -#endif -} SLTG_Function; - -#define SLTG_FUNCTION_MAGIC 0x4c -#define SLTG_FUNCTION_WITH_FLAGS_MAGIC 0x6c - -typedef struct { -/*00*/ BYTE magic; /* 0xdf */ -/*01*/ BYTE res01; /* 0x00 */ -/*02*/ DWORD res02; /* 0xffffffff */ -/*06*/ DWORD res06; /* 0xffffffff */ -/*0a*/ DWORD res0a; /* 0xffffffff */ -/*0e*/ DWORD res0e; /* 0xffffffff */ -/*12*/ DWORD res12; /* 0xffffffff */ -/*16*/ DWORD res16; /* 0xffffffff */ -/*1a*/ DWORD res1a; /* 0xffffffff */ -/*1e*/ DWORD res1e; /* 0xffffffff */ -/*22*/ DWORD res22; /* 0xffffffff */ -/*26*/ DWORD res26; /* 0xffffffff */ -/*2a*/ DWORD res2a; /* 0xffffffff */ -/*2e*/ DWORD res2e; /* 0xffffffff */ -/*32*/ DWORD res32; /* 0xffffffff */ -/*36*/ DWORD res36; /* 0xffffffff */ -/*3a*/ DWORD res3a; /* 0xffffffff */ -/*3e*/ DWORD res3e; /* 0xffffffff */ -/*42*/ WORD res42; /* 0xffff */ -/*44*/ DWORD number; /* this is 8 times the number of refs */ -/*48*/ /* Now we have number bytes (8 for each ref) of SLTG_UnknownRefInfo */ - -/*50*/ WORD res50; /* 0xffff */ -/*52*/ BYTE res52; /* 0x01 */ -/*53*/ DWORD res53; /* 0x00000000 */ -/*57*/ SLTG_Name names[1]; - /* Now we have number/8 SLTG_Names (first WORD is no of bytes in the ascii - * string). Strings look like "*\Rxxxx*#n". If xxxx == ffff then the - * ref refers to the nth type listed in this library (0 based). Else - * the xxxx (which maybe fewer than 4 digits) is the offset into the name - * table to a string "*\G{}#1.0#0#C:\WINNT\System32\stdole32.tlb#" - * The guid is the typelib guid; the ref again refers to the nth type of - * the imported typelib. - */ - -/*xx*/ BYTE resxx; /* 0xdf */ - -} SLTG_RefInfo; - -#define SLTG_REF_MAGIC 0xdf - -typedef struct { - WORD res00; /* 0x0001 */ - BYTE res02; /* 0x02 */ - BYTE res03; /* 0x40 if internal ref, 0x00 if external ? */ - WORD res04; /* 0xffff */ - WORD res06; /* 0x0000, 0x0013 or 0xffff ?? */ -} SLTG_UnknownRefInfo; - -typedef struct { - WORD res00; /* 0x004a */ - WORD next; /* byte offs to next interface */ - WORD res04; /* 0xffff */ - BYTE impltypeflags; /* IMPLTYPEFLAG_* */ - BYTE res07; /* 0x80 */ - WORD res08; /* 0x0012, 0x0028 ?? */ - WORD ref; /* number in ref table ? */ - WORD res0c; /* 0x4000 */ - WORD res0e; /* 0xfffe */ - WORD res10; /* 0xffff */ - WORD res12; /* 0x001d */ - WORD pos_in_table; /* 0x0, 0x4, ? */ -} SLTG_ImplInfo; - -#define SLTG_IMPL_MAGIC 0x004a - -typedef struct { - BYTE magic; /* 0x0a */ - BYTE typepos; - WORD next; - WORD name; - WORD byte_offs; /* pos in struct */ - WORD type; /* if typepos == 0x02 this is the type, else offset to type */ - DWORD memid; - WORD helpcontext; /* ?? */ - WORD helpstring; /* ?? */ -} SLTG_RecordItem; - -#define SLTG_RECORD_MAGIC 0x0a - - -/* CARRAYs look like this -WORD type == VT_CARRAY -WORD offset from start of block to SAFEARRAY -WORD typeofarray -*/ - -#include "poppack.h" - -/*---------------------------END--------------------------------------------*/ -#endif diff --git a/reactos/tools/widl/typetree.c b/reactos/tools/widl/typetree.c deleted file mode 100644 index a9e71bef1db..00000000000 --- a/reactos/tools/widl/typetree.c +++ /dev/null @@ -1,435 +0,0 @@ -/* - * IDL Type Tree - * - * Copyright 2008 Robert Shearman - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" - -#include -#include -#include - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "typetree.h" -#include "header.h" - -type_t *duptype(type_t *t, int dupname) -{ - type_t *d = alloc_type(); - - *d = *t; - if (dupname && t->name) - d->name = xstrdup(t->name); - - return d; -} - -type_t *make_type(enum type_type type) -{ - type_t *t = alloc_type(); - t->name = NULL; - t->type_type = type; - t->attrs = NULL; - t->orig = NULL; - memset(&t->details, 0, sizeof(t->details)); - t->typestring_offset = 0; - t->ptrdesc = 0; - t->ignore = (parse_only != 0); - t->defined = FALSE; - t->written = FALSE; - t->user_types_registered = FALSE; - t->tfswrite = FALSE; - t->checked = FALSE; - t->is_alias = FALSE; - t->typelib_idx = -1; - init_loc_info(&t->loc_info); - return t; -} - -static const var_t *find_arg(const var_list_t *args, const char *name) -{ - const var_t *arg; - - if (args) LIST_FOR_EACH_ENTRY(arg, args, const var_t, entry) - { - if (arg->name && !strcmp(name, arg->name)) - return arg; - } - - return NULL; -} - -type_t *type_new_function(var_list_t *args) -{ - var_t *arg; - type_t *t; - unsigned int i = 0; - - if (args) - { - arg = LIST_ENTRY(list_head(args), var_t, entry); - if (list_count(args) == 1 && !arg->name && arg->type && type_get_type(arg->type) == TYPE_VOID) - { - list_remove(&arg->entry); - free(arg); - free(args); - args = NULL; - } - } - if (args) LIST_FOR_EACH_ENTRY(arg, args, var_t, entry) - { - if (arg->type && type_get_type(arg->type) == TYPE_VOID) - error_loc("argument '%s' has void type\n", arg->name); - if (!arg->name) - { - if (i > 26 * 26) - error_loc("too many unnamed arguments\n"); - else - { - int unique; - do - { - char name[3]; - name[0] = i > 26 ? 'a' + i / 26 : 'a' + i; - name[1] = i > 26 ? 'a' + i % 26 : 0; - name[2] = 0; - unique = !find_arg(args, name); - if (unique) - arg->name = xstrdup(name); - i++; - } while (!unique); - } - } - } - - t = make_type(TYPE_FUNCTION); - t->details.function = xmalloc(sizeof(*t->details.function)); - t->details.function->args = args; - t->details.function->idx = -1; - return t; -} - -type_t *type_new_pointer(unsigned char pointer_default, type_t *ref, attr_list_t *attrs) -{ - type_t *t = make_type(TYPE_POINTER); - t->details.pointer.def_fc = pointer_default; - t->details.pointer.ref = ref; - t->attrs = attrs; - return t; -} - -type_t *type_new_alias(type_t *t, const char *name) -{ - type_t *a = duptype(t, 0); - - a->name = xstrdup(name); - a->attrs = NULL; - a->orig = t; - a->is_alias = TRUE; - /* for pointer types */ - a->details = t->details; - init_loc_info(&a->loc_info); - - return a; -} - -type_t *type_new_module(char *name) -{ - type_t *type = get_type(TYPE_MODULE, name, 0); - if (type->type_type != TYPE_MODULE || type->defined) - error_loc("%s: redefinition error; original definition was at %s:%d\n", - type->name, type->loc_info.input_name, type->loc_info.line_number); - type->name = name; - return type; -} - -type_t *type_new_coclass(char *name) -{ - type_t *type = get_type(TYPE_COCLASS, name, 0); - if (type->type_type != TYPE_COCLASS || type->defined) - error_loc("%s: redefinition error; original definition was at %s:%d\n", - type->name, type->loc_info.input_name, type->loc_info.line_number); - type->name = name; - return type; -} - - -type_t *type_new_array(const char *name, type_t *element, int declptr, - unsigned int dim, expr_t *size_is, expr_t *length_is, - unsigned char ptr_default_fc) -{ - type_t *t = make_type(TYPE_ARRAY); - if (name) t->name = xstrdup(name); - t->details.array.declptr = declptr; - t->details.array.length_is = length_is; - if (size_is) - t->details.array.size_is = size_is; - else - t->details.array.dim = dim; - t->details.array.elem = element; - t->details.array.ptr_def_fc = ptr_default_fc; - return t; -} - -type_t *type_new_basic(enum type_basic_type basic_type) -{ - type_t *t = make_type(TYPE_BASIC); - t->details.basic.type = basic_type; - t->details.basic.sign = 0; - return t; -} - -type_t *type_new_int(enum type_basic_type basic_type, int sign) -{ - static type_t *int_types[TYPE_BASIC_INT_MAX+1][3]; - - assert(basic_type <= TYPE_BASIC_INT_MAX); - - /* map sign { -1, 0, 1 } -> { 0, 1, 2 } */ - if (!int_types[basic_type][sign + 1]) - { - int_types[basic_type][sign + 1] = type_new_basic(basic_type); - int_types[basic_type][sign + 1]->details.basic.sign = sign; - } - return int_types[basic_type][sign + 1]; -} - -type_t *type_new_void(void) -{ - static type_t *void_type = NULL; - if (!void_type) - void_type = make_type(TYPE_VOID); - return void_type; -} - -type_t *type_new_enum(const char *name, int defined, var_list_t *enums) -{ - type_t *tag_type = name ? find_type(name, tsENUM) : NULL; - type_t *t = make_type(TYPE_ENUM); - t->name = name; - - if (tag_type && tag_type->details.enumeration) - t->details.enumeration = tag_type->details.enumeration; - else if (defined) - { - t->details.enumeration = xmalloc(sizeof(*t->details.enumeration)); - t->details.enumeration->enums = enums; - t->defined = TRUE; - } - - if (name) - { - if (defined) - reg_type(t, name, tsENUM); - else - add_incomplete(t); - } - return t; -} - -type_t *type_new_struct(char *name, int defined, var_list_t *fields) -{ - type_t *tag_type = name ? find_type(name, tsSTRUCT) : NULL; - type_t *t = make_type(TYPE_STRUCT); - t->name = name; - if (tag_type && tag_type->details.structure) - t->details.structure = tag_type->details.structure; - else if (defined) - { - t->details.structure = xmalloc(sizeof(*t->details.structure)); - t->details.structure->fields = fields; - t->defined = TRUE; - } - if (name) - { - if (defined) - reg_type(t, name, tsSTRUCT); - else - add_incomplete(t); - } - return t; -} - -type_t *type_new_nonencapsulated_union(const char *name, int defined, var_list_t *fields) -{ - type_t *tag_type = name ? find_type(name, tsUNION) : NULL; - type_t *t = make_type(TYPE_UNION); - t->name = name; - if (tag_type && tag_type->details.structure) - t->details.structure = tag_type->details.structure; - else if (defined) - { - t->details.structure = xmalloc(sizeof(*t->details.structure)); - t->details.structure->fields = fields; - t->defined = TRUE; - } - if (name) - { - if (defined) - reg_type(t, name, tsUNION); - else - add_incomplete(t); - } - return t; -} - -type_t *type_new_encapsulated_union(char *name, var_t *switch_field, var_t *union_field, var_list_t *cases) -{ - type_t *t = get_type(TYPE_ENCAPSULATED_UNION, name, tsUNION); - if (!union_field) union_field = make_var( xstrdup("tagged_union") ); - union_field->type = type_new_nonencapsulated_union(NULL, TRUE, cases); - t->details.structure = xmalloc(sizeof(*t->details.structure)); - t->details.structure->fields = append_var( NULL, switch_field ); - t->details.structure->fields = append_var( t->details.structure->fields, union_field ); - t->defined = TRUE; - return t; -} - -static int is_valid_bitfield_type(const type_t *type) -{ - switch (type_get_type(type)) - { - case TYPE_ENUM: - return TRUE; - case TYPE_BASIC: - switch (type_basic_get_type(type)) - { - case TYPE_BASIC_INT8: - case TYPE_BASIC_INT16: - case TYPE_BASIC_INT32: - case TYPE_BASIC_INT64: - case TYPE_BASIC_INT: - case TYPE_BASIC_INT3264: - case TYPE_BASIC_CHAR: - case TYPE_BASIC_HYPER: - case TYPE_BASIC_BYTE: - case TYPE_BASIC_WCHAR: - case TYPE_BASIC_ERROR_STATUS_T: - return TRUE; - case TYPE_BASIC_FLOAT: - case TYPE_BASIC_DOUBLE: - case TYPE_BASIC_HANDLE: - return FALSE; - } - return FALSE; - default: - return FALSE; - } -} - -type_t *type_new_bitfield(type_t *field, const expr_t *bits) -{ - type_t *t; - - if (!is_valid_bitfield_type(field)) - error_loc("bit-field has invalid type\n"); - - if (bits->cval < 0) - error_loc("negative width for bit-field\n"); - - /* FIXME: validate bits->cval <= memsize(field) * 8 */ - - t = make_type(TYPE_BITFIELD); - t->details.bitfield.field = field; - t->details.bitfield.bits = bits; - return t; -} - -static int compute_method_indexes(type_t *iface) -{ - int idx; - statement_t *stmt; - - if (!iface->details.iface) - return 0; - - if (type_iface_get_inherit(iface)) - idx = compute_method_indexes(type_iface_get_inherit(iface)); - else - idx = 0; - - STATEMENTS_FOR_EACH_FUNC( stmt, type_iface_get_stmts(iface) ) - { - var_t *func = stmt->u.var; - if (!is_callas(func->attrs)) - func->type->details.function->idx = idx++; - } - - return idx; -} - -void type_interface_define(type_t *iface, type_t *inherit, statement_list_t *stmts) -{ - iface->details.iface = xmalloc(sizeof(*iface->details.iface)); - iface->details.iface->disp_props = NULL; - iface->details.iface->disp_methods = NULL; - iface->details.iface->stmts = stmts; - iface->details.iface->inherit = inherit; - iface->defined = TRUE; - compute_method_indexes(iface); -} - -void type_dispinterface_define(type_t *iface, var_list_t *props, var_list_t *methods) -{ - iface->details.iface = xmalloc(sizeof(*iface->details.iface)); - iface->details.iface->disp_props = props; - iface->details.iface->disp_methods = methods; - iface->details.iface->stmts = NULL; - iface->details.iface->inherit = find_type("IDispatch", 0); - if (!iface->details.iface->inherit) error_loc("IDispatch is undefined\n"); - iface->defined = TRUE; - compute_method_indexes(iface); -} - -void type_dispinterface_define_from_iface(type_t *dispiface, type_t *iface) -{ - type_dispinterface_define(dispiface, iface->details.iface->disp_props, - iface->details.iface->disp_methods); -} - -void type_module_define(type_t *module, statement_list_t *stmts) -{ - if (module->details.module) error_loc("multiple definition error\n"); - module->details.module = xmalloc(sizeof(*module->details.module)); - module->details.module->stmts = stmts; - module->defined = TRUE; -} - -type_t *type_coclass_define(type_t *coclass, ifref_list_t *ifaces) -{ - coclass->details.coclass.ifaces = ifaces; - coclass->defined = TRUE; - return coclass; -} - -int type_is_equal(const type_t *type1, const type_t *type2) -{ - if (type_get_type_detect_alias(type1) != type_get_type_detect_alias(type2)) - return FALSE; - - if (type1->name && type2->name) - return !strcmp(type1->name, type2->name); - else if ((!type1->name && type2->name) || (type1->name && !type2->name)) - return FALSE; - - /* FIXME: do deep inspection of types to determine if they are equal */ - - return FALSE; -} diff --git a/reactos/tools/widl/typetree.h b/reactos/tools/widl/typetree.h deleted file mode 100644 index 1e7ed88951a..00000000000 --- a/reactos/tools/widl/typetree.h +++ /dev/null @@ -1,307 +0,0 @@ -/* - * IDL Type Tree - * - * Copyright 2008 Robert Shearman - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "widltypes.h" -#include - -#ifndef WIDL_TYPE_TREE_H -#define WIDL_TYPE_TREE_H - -type_t *type_new_function(var_list_t *args); -type_t *type_new_pointer(unsigned char pointer_default, type_t *ref, attr_list_t *attrs); -type_t *type_new_alias(type_t *t, const char *name); -type_t *type_new_module(char *name); -type_t *type_new_array(const char *name, type_t *element, int declptr, - unsigned int dim, expr_t *size_is, expr_t *length_is, - unsigned char ptr_default_fc); -type_t *type_new_basic(enum type_basic_type basic_type); -type_t *type_new_int(enum type_basic_type basic_type, int sign); -type_t *type_new_void(void); -type_t *type_new_coclass(char *name); -type_t *type_new_enum(const char *name, int defined, var_list_t *enums); -type_t *type_new_struct(char *name, int defined, var_list_t *fields); -type_t *type_new_nonencapsulated_union(const char *name, int defined, var_list_t *fields); -type_t *type_new_encapsulated_union(char *name, var_t *switch_field, var_t *union_field, var_list_t *cases); -type_t *type_new_bitfield(type_t *field_type, const expr_t *bits); -void type_interface_define(type_t *iface, type_t *inherit, statement_list_t *stmts); -void type_dispinterface_define(type_t *iface, var_list_t *props, var_list_t *methods); -void type_dispinterface_define_from_iface(type_t *dispiface, type_t *iface); -void type_module_define(type_t *module, statement_list_t *stmts); -type_t *type_coclass_define(type_t *coclass, ifref_list_t *ifaces); -int type_is_equal(const type_t *type1, const type_t *type2); - -/* FIXME: shouldn't need to export this */ -type_t *duptype(type_t *t, int dupname); - -/* un-alias the type until finding the non-alias type */ -static inline type_t *type_get_real_type(const type_t *type) -{ - if (type->is_alias) - return type_get_real_type(type->orig); - else - return (type_t *)type; -} - -static inline enum type_type type_get_type(const type_t *type) -{ - return type_get_type_detect_alias(type_get_real_type(type)); -} - -static inline enum type_basic_type type_basic_get_type(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_BASIC); - return type->details.basic.type; -} - -static inline int type_basic_get_sign(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_BASIC); - return type->details.basic.sign; -} - -static inline var_list_t *type_struct_get_fields(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_STRUCT); - return type->details.structure->fields; -} - -static inline var_list_t *type_function_get_args(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_FUNCTION); - return type->details.function->args; -} - -static inline var_t *type_function_get_retval(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_FUNCTION); - return type->details.function->retval; -} - -static inline type_t *type_function_get_rettype(const type_t *type) -{ - return type_function_get_retval(type)->type; -} - -static inline var_list_t *type_enum_get_values(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_ENUM); - return type->details.enumeration->enums; -} - -static inline var_t *type_union_get_switch_value(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_ENCAPSULATED_UNION); - return LIST_ENTRY(list_head(type->details.structure->fields), var_t, entry); -} - -static inline var_list_t *type_encapsulated_union_get_fields(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_ENCAPSULATED_UNION); - return type->details.structure->fields; -} - -static inline var_list_t *type_union_get_cases(const type_t *type) -{ - enum type_type type_type; - - type = type_get_real_type(type); - type_type = type_get_type(type); - - assert(type_type == TYPE_UNION || type_type == TYPE_ENCAPSULATED_UNION); - if (type_type == TYPE_ENCAPSULATED_UNION) - { - const var_t *uv = LIST_ENTRY(list_tail(type->details.structure->fields), const var_t, entry); - return uv->type->details.structure->fields; - } - else - return type->details.structure->fields; -} - -static inline statement_list_t *type_iface_get_stmts(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_INTERFACE); - return type->details.iface->stmts; -} - -static inline type_t *type_iface_get_inherit(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_INTERFACE); - return type->details.iface->inherit; -} - -static inline var_list_t *type_dispiface_get_props(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_INTERFACE); - return type->details.iface->disp_props; -} - -static inline var_list_t *type_dispiface_get_methods(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_INTERFACE); - return type->details.iface->disp_methods; -} - -static inline int type_is_defined(const type_t *type) -{ - return type->defined; -} - -static inline int type_is_complete(const type_t *type) -{ - switch (type_get_type_detect_alias(type)) - { - case TYPE_FUNCTION: - return (type->details.function != NULL); - case TYPE_INTERFACE: - return (type->details.iface != NULL); - case TYPE_ENUM: - return (type->details.enumeration != NULL); - case TYPE_UNION: - case TYPE_ENCAPSULATED_UNION: - case TYPE_STRUCT: - return (type->details.structure != NULL); - case TYPE_VOID: - case TYPE_BASIC: - case TYPE_ALIAS: - case TYPE_MODULE: - case TYPE_COCLASS: - case TYPE_POINTER: - case TYPE_ARRAY: - case TYPE_BITFIELD: - return TRUE; - } - return FALSE; -} - -static inline int type_array_has_conformance(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_ARRAY); - return (type->details.array.size_is != NULL); -} - -static inline int type_array_has_variance(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_ARRAY); - return (type->details.array.length_is != NULL); -} - -static inline unsigned int type_array_get_dim(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_ARRAY); - return type->details.array.dim; -} - -static inline expr_t *type_array_get_conformance(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_ARRAY); - return type->details.array.size_is; -} - -static inline expr_t *type_array_get_variance(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_ARRAY); - return type->details.array.length_is; -} - -static inline type_t *type_array_get_element(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_ARRAY); - return type->details.array.elem; -} - -static inline int type_array_is_decl_as_ptr(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_ARRAY); - return type->details.array.declptr; -} - -static inline unsigned char type_array_get_ptr_default_fc(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_ARRAY); - return type->details.array.ptr_def_fc; -} - -static inline int type_is_alias(const type_t *type) -{ - return type->is_alias; -} - -static inline type_t *type_alias_get_aliasee(const type_t *type) -{ - assert(type_is_alias(type)); - return type->orig; -} - -static inline ifref_list_t *type_coclass_get_ifaces(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_COCLASS); - return type->details.coclass.ifaces; -} - -static inline type_t *type_pointer_get_ref(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_POINTER); - return type->details.pointer.ref; -} - -static inline unsigned char type_pointer_get_default_fc(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_POINTER); - return type->details.pointer.def_fc; -} - -static inline type_t *type_bitfield_get_field(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_BITFIELD); - return type->details.bitfield.field; -} - -static inline const expr_t *type_bitfield_get_bits(const type_t *type) -{ - type = type_get_real_type(type); - assert(type_get_type(type) == TYPE_BITFIELD); - return type->details.bitfield.bits; -} - -#endif /* WIDL_TYPE_TREE_H */ diff --git a/reactos/tools/widl/utils.c b/reactos/tools/widl/utils.c deleted file mode 100644 index dc77ae87438..00000000000 --- a/reactos/tools/widl/utils.c +++ /dev/null @@ -1,457 +0,0 @@ -/* - * Utility routines - * - * Copyright 1998 Bertho A. Stultiens - * Copyright 2002 Ove Kaaven - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" -#include "wine/port.h" - -#include -#include -#include -#include -#include -#include - -#include "widl.h" -#include "utils.h" -#include "parser.h" - -#define CURRENT_LOCATION { input_name ? input_name : "stdin", line_number, parser_text } - -static const int want_near_indication = 0; - -static void make_print(char *str) -{ - while(*str) - { - if(!isprint(*str)) - *str = ' '; - str++; - } -} - -static void generic_msg(const loc_info_t *loc_info, const char *s, const char *t, va_list ap) -{ - fprintf(stderr, "%s:%d: %s: ", loc_info->input_name, loc_info->line_number, t); - vfprintf(stderr, s, ap); - - if (want_near_indication) - { - char *cpy; - if(loc_info->near_text) - { - cpy = xstrdup(loc_info->near_text); - make_print(cpy); - fprintf(stderr, " near '%s'", cpy); - free(cpy); - } - } -} - - -void error_loc(const char *s, ...) -{ - loc_info_t cur_loc = CURRENT_LOCATION; - va_list ap; - va_start(ap, s); - generic_msg(&cur_loc, s, "error", ap); - va_end(ap); - exit(1); -} - -/* yyerror: yacc assumes this is not newline terminated. */ -void parser_error(const char *s) -{ - error_loc("%s\n", s); -} - -void error_loc_info(const loc_info_t *loc_info, const char *s, ...) -{ - va_list ap; - va_start(ap, s); - generic_msg(loc_info, s, "error", ap); - va_end(ap); - exit(1); -} - -int parser_warning(const char *s, ...) -{ - loc_info_t cur_loc = CURRENT_LOCATION; - va_list ap; - va_start(ap, s); - generic_msg(&cur_loc, s, "warning", ap); - va_end(ap); - return 0; -} - -void error(const char *s, ...) -{ - va_list ap; - va_start(ap, s); - fprintf(stderr, "error: "); - vfprintf(stderr, s, ap); - va_end(ap); - exit(2); -} - -void warning(const char *s, ...) -{ - va_list ap; - va_start(ap, s); - fprintf(stderr, "warning: "); - vfprintf(stderr, s, ap); - va_end(ap); -} - -void warning_loc_info(const loc_info_t *loc_info, const char *s, ...) -{ - va_list ap; - va_start(ap, s); - generic_msg(loc_info, s, "warning", ap); - va_end(ap); -} - -void chat(const char *s, ...) -{ - if(debuglevel & DEBUGLEVEL_CHAT) - { - va_list ap; - va_start(ap, s); - fprintf(stderr, "chat: "); - vfprintf(stderr, s, ap); - va_end(ap); - } -} - -char *dup_basename(const char *name, const char *ext) -{ - int namelen; - int extlen = strlen(ext); - char *base; - char *slash; - - if(!name) - name = "widl.tab"; - - slash = strrchr(name, '/'); - if (!slash) - slash = strrchr(name, '\\'); - - if (slash) - name = slash + 1; - - namelen = strlen(name); - - /* +4 for later extension and +1 for '\0' */ - base = xmalloc(namelen +4 +1); - strcpy(base, name); - if(!strcasecmp(name + namelen-extlen, ext)) - { - base[namelen - extlen] = '\0'; - } - return base; -} - -size_t widl_getline(char **linep, size_t *lenp, FILE *fp) -{ - char *line = *linep; - size_t len = *lenp; - size_t n = 0; - - if (!line) - { - len = 64; - line = xmalloc(len); - } - - while (fgets(&line[n], len - n, fp)) - { - n += strlen(&line[n]); - if (line[n - 1] == '\n') - break; - else if (n == len - 1) - { - len *= 2; - line = xrealloc(line, len); - } - } - - *linep = line; - *lenp = len; - return n; -} - -void *xmalloc(size_t size) -{ - void *res; - - assert(size > 0); - res = malloc(size); - if(res == NULL) - { - error("Virtual memory exhausted.\n"); - } - memset(res, 0x55, size); - return res; -} - - -void *xrealloc(void *p, size_t size) -{ - void *res; - - assert(size > 0); - res = realloc(p, size); - if(res == NULL) - { - error("Virtual memory exhausted.\n"); - } - return res; -} - -char *xstrdup(const char *str) -{ - char *s; - - assert(str != NULL); - s = xmalloc(strlen(str)+1); - return strcpy(s, str); -} - -int strendswith(const char* str, const char* end) -{ - int l = strlen(str); - int m = strlen(end); - return l >= m && strcmp(str + l - m, end) == 0; -} - -/******************************************************************* - * buffer management - * - * Function for writing to a memory buffer. - */ - -int byte_swapped = 0; -unsigned char *output_buffer; -size_t output_buffer_pos; -size_t output_buffer_size; - -static struct resource -{ - unsigned char *data; - size_t size; -} resources[16]; -static unsigned int nb_resources; - -static void check_output_buffer_space( size_t size ) -{ - if (output_buffer_pos + size >= output_buffer_size) - { - output_buffer_size = max( output_buffer_size * 2, output_buffer_pos + size ); - output_buffer = xrealloc( output_buffer, output_buffer_size ); - } -} - -void init_output_buffer(void) -{ - output_buffer_size = 1024; - output_buffer_pos = 0; - output_buffer = xmalloc( output_buffer_size ); -} - -void flush_output_buffer( const char *name ) -{ - int fd = open( name, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0666 ); - if (fd == -1) error( "Error creating %s\n", name ); - if (write( fd, output_buffer, output_buffer_pos ) != output_buffer_pos) - error( "Error writing to %s\n", name ); - close( fd ); - free( output_buffer ); -} - -static inline void put_resource_id( const char *str ) -{ - if (str[0] != '#') - { - while (*str) - { - unsigned char ch = *str++; - put_word( toupper(ch) ); - } - put_word( 0 ); - } - else - { - put_word( 0xffff ); - put_word( atoi( str + 1 )); - } -} - -void add_output_to_resources( const char *type, const char *name ) -{ - size_t data_size = output_buffer_pos; - size_t header_size = 5 * sizeof(unsigned int) + 2 * sizeof(unsigned short); - - assert( nb_resources < sizeof(resources)/sizeof(resources[0]) ); - - if (type[0] != '#') header_size += (strlen( type ) + 1) * sizeof(unsigned short); - else header_size += 2 * sizeof(unsigned short); - if (name[0] != '#') header_size += (strlen( name ) + 1) * sizeof(unsigned short); - else header_size += 2 * sizeof(unsigned short); - - header_size = (header_size + 3) & ~3; - align_output( 4 ); - check_output_buffer_space( header_size ); - resources[nb_resources].size = header_size + output_buffer_pos; - memmove( output_buffer + header_size, output_buffer, output_buffer_pos ); - - output_buffer_pos = 0; - put_dword( data_size ); /* ResSize */ - put_dword( header_size ); /* HeaderSize */ - put_resource_id( type ); /* ResType */ - put_resource_id( name ); /* ResName */ - align_output( 4 ); - put_dword( 0 ); /* DataVersion */ - put_word( 0 ); /* Memory options */ - put_word( 0 ); /* Language */ - put_dword( 0 ); /* Version */ - put_dword( 0 ); /* Characteristics */ - - resources[nb_resources++].data = output_buffer; - init_output_buffer(); -} - -void flush_output_resources( const char *name ) -{ - int fd; - unsigned int i; - - /* all output must have been saved with add_output_to_resources() first */ - assert( !output_buffer_pos ); - - put_dword( 0 ); /* ResSize */ - put_dword( 32 ); /* HeaderSize */ - put_word( 0xffff ); /* ResType */ - put_word( 0x0000 ); - put_word( 0xffff ); /* ResName */ - put_word( 0x0000 ); - put_dword( 0 ); /* DataVersion */ - put_word( 0 ); /* Memory options */ - put_word( 0 ); /* Language */ - put_dword( 0 ); /* Version */ - put_dword( 0 ); /* Characteristics */ - - fd = open( name, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0666 ); - if (fd == -1) error( "Error creating %s\n", name ); - if (write( fd, output_buffer, output_buffer_pos ) != output_buffer_pos) - error( "Error writing to %s\n", name ); - for (i = 0; i < nb_resources; i++) - { - if (write( fd, resources[i].data, resources[i].size ) != resources[i].size) - error( "Error writing to %s\n", name ); - free( resources[i].data ); - } - close( fd ); - nb_resources = 0; - free( output_buffer ); -} - -void put_data( const void *data, size_t size ) -{ - check_output_buffer_space( size ); - memcpy( output_buffer + output_buffer_pos, data, size ); - output_buffer_pos += size; -} - -void put_byte( unsigned char val ) -{ - check_output_buffer_space( 1 ); - output_buffer[output_buffer_pos++] = val; -} - -void put_word( unsigned short val ) -{ - if (byte_swapped) val = (val << 8) | (val >> 8); - put_data( &val, sizeof(val) ); -} - -void put_dword( unsigned int val ) -{ - if (byte_swapped) - val = ((val << 24) | ((val << 8) & 0x00ff0000) | ((val >> 8) & 0x0000ff00) | (val >> 24)); - put_data( &val, sizeof(val) ); -} - -void put_qword( unsigned int val ) -{ - if (byte_swapped) - { - put_dword( 0 ); - put_dword( val ); - } - else - { - put_dword( val ); - put_dword( 0 ); - } -} - -/* pointer-sized word */ -void put_pword( unsigned int val ) -{ - if (pointer_size == 8) put_qword( val ); - else put_dword( val ); -} - -void put_str( int indent, const char *format, ... ) -{ - int n; - va_list args; - - check_output_buffer_space( 4 * indent ); - memset( output_buffer + output_buffer_pos, ' ', 4 * indent ); - output_buffer_pos += 4 * indent; - - for (;;) - { - size_t size = output_buffer_size - output_buffer_pos; - va_start( args, format ); - n = vsnprintf( (char *)output_buffer + output_buffer_pos, size, format, args ); - va_end( args ); - if (n == -1) size *= 2; - else if ((size_t)n >= size) size = n + 1; - else - { - output_buffer_pos += n; - return; - } - check_output_buffer_space( size ); - } -} - -void align_output( unsigned int align ) -{ - size_t size = align - (output_buffer_pos % align); - - if (size == align) return; - check_output_buffer_space( size ); - memset( output_buffer + output_buffer_pos, 0, size ); - output_buffer_pos += size; -} diff --git a/reactos/tools/widl/utils.h b/reactos/tools/widl/utils.h deleted file mode 100644 index ec02fc7c372..00000000000 --- a/reactos/tools/widl/utils.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Utility routines' prototypes etc. - * - * Copyright 1998 Bertho A. Stultiens (BS) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef __WIDL_UTILS_H -#define __WIDL_UTILS_H - -#include "widltypes.h" - -#include /* size_t */ - -void *xmalloc(size_t); -void *xrealloc(void *, size_t); -char *xstrdup(const char *str); -int strendswith(const char* str, const char* end); - -#ifndef __GNUC__ -#define __attribute__(X) -#endif - -void parser_error(const char *s) __attribute__((noreturn)); -int parser_warning(const char *s, ...) __attribute__((format (printf, 1, 2))); -void error_loc(const char *s, ...) __attribute__((format (printf, 1, 2))) __attribute__((noreturn)); -void error(const char *s, ...) __attribute__((format (printf, 1, 2))) __attribute__((noreturn)); -void error_loc_info(const loc_info_t *, const char *s, ...) __attribute__((format (printf, 2, 3))) __attribute__((noreturn)); -void warning(const char *s, ...) __attribute__((format (printf, 1, 2))); -void warning_loc_info(const loc_info_t *, const char *s, ...) __attribute__((format (printf, 2, 3))); -void chat(const char *s, ...) __attribute__((format (printf, 1, 2))); - -char *dup_basename(const char *name, const char *ext); -size_t widl_getline(char **linep, size_t *lenp, FILE *fp); - -UUID *parse_uuid(const char *u); -int is_valid_uuid(const char *s); - -/* buffer management */ - -extern int byte_swapped; -extern unsigned char *output_buffer; -extern size_t output_buffer_pos; -extern size_t output_buffer_size; - -extern void init_output_buffer(void); -extern void flush_output_buffer( const char *name ); -extern void add_output_to_resources( const char *type, const char *name ); -extern void flush_output_resources( const char *name ); -extern void put_data( const void *data, size_t size ); -extern void put_byte( unsigned char val ); -extern void put_word( unsigned short val ); -extern void put_dword( unsigned int val ); -extern void put_qword( unsigned int val ); -extern void put_pword( unsigned int val ); -extern void put_str( int indent, const char *format, ... ) __attribute__((format (printf, 2, 3))); -extern void align_output( unsigned int align ); - -/* typelibs expect the minor version to be stored in the higher bits and - * major to be stored in the lower bits */ -#define MAKEVERSION(major, minor) ((((minor) & 0xffff) << 16) | ((major) & 0xffff)) -#define MAJORVERSION(version) ((version) & 0xffff) -#define MINORVERSION(version) (((version) >> 16) & 0xffff) - -#ifndef max -#define max(a,b) (((a) > (b)) ? (a) : (b)) -#endif -#ifndef min -#define min(a,b) (((a) < (b)) ? (a) : (b)) -#endif - -#endif diff --git a/reactos/tools/widl/widl.c b/reactos/tools/widl/widl.c deleted file mode 100644 index fc3d0d97862..00000000000 --- a/reactos/tools/widl/widl.c +++ /dev/null @@ -1,833 +0,0 @@ -/* - * IDL Compiler - * - * Copyright 2002 Ove Kaaven - * based on WRC code by Bertho Stultiens - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" -#include "wine/port.h" - -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include -#include -#include -#ifdef HAVE_GETOPT_H -# include -#endif - -#include "widl.h" -#include "utils.h" -#include "parser.h" -#include "wine/wpp.h" -#include "header.h" - -/* future options to reserve characters for: */ -/* A = ACF input filename */ -/* J = do not search standard include path */ -/* w = select win16/win32 output (?) */ - -static const char usage[] = -"Usage: widl [options...] infile.idl\n" -" or: widl [options...] --dlldata-only name1 [name2...]\n" -" -b arch Set the target architecture\n" -" -c Generate client stub\n" -" -d n Set debug level to 'n'\n" -" -D id[=val] Define preprocessor identifier id=val\n" -" -E Preprocess only\n" -" --help Display this help and exit\n" -" -h Generate headers\n" -" -H file Name of header file (default is infile.h)\n" -" -I path Set include search dir to path (multiple -I allowed)\n" -" --local-stubs=file Write empty stubs for call_as/local methods to file\n" -" -m32, -m64 Set the kind of typelib to build (Win32 or Win64)\n" -" -N Do not preprocess input\n" -" --oldnames Use old naming conventions\n" -" -o, --output=NAME Set the output file name\n" -" -Otype Type of stubs to generate (-Os, -Oi, -Oif)\n" -" -p Generate proxy\n" -" --prefix-all=p Prefix names of client stubs / server functions with 'p'\n" -" --prefix-client=p Prefix names of client stubs with 'p'\n" -" --prefix-server=p Prefix names of server functions with 'p'\n" -" -r Generate registration script\n" -" -s Generate server stub\n" -" -t Generate typelib\n" -" -u Generate interface identifiers file\n" -" -V Print version and exit\n" -" -W Enable pedantic warnings\n" -" --win32 Only generate 32-bit code\n" -" --win64 Only generate 64-bit code\n" -" --win32-align n Set win32 structure alignment to 'n'\n" -" --win64-align n Set win64 structure alignment to 'n'\n" -"Debug level 'n' is a bitmask with following meaning:\n" -" * 0x01 Tell which resource is parsed (verbose mode)\n" -" * 0x02 Dump internal structures\n" -" * 0x04 Create a parser trace (yydebug=1)\n" -" * 0x08 Preprocessor messages\n" -" * 0x10 Preprocessor lex messages\n" -" * 0x20 Preprocessor yacc trace\n" -; - -static const char version_string[] = "Wine IDL Compiler version " PACKAGE_VERSION "\n" - "Copyright 2002 Ove Kaaven\n"; - -int debuglevel = DEBUGLEVEL_NONE; -int parser_debug, yy_flex_debug; - -int pedantic = 0; -int do_everything = 1; -static int preprocess_only = 0; -int do_header = 0; -int do_typelib = 0; -int do_proxies = 0; -int do_client = 0; -int do_server = 0; -int do_regscript = 0; -int do_idfile = 0; -int do_dlldata = 0; -static int no_preprocess = 0; -int old_names = 0; -int do_win32 = 1; -int do_win64 = 1; -int win32_packing = 8; -int win64_packing = 8; -static enum stub_mode stub_mode = MODE_Os; - -char *input_name; -char *header_name; -char *local_stubs_name; -char *header_token; -char *typelib_name; -char *dlldata_name; -char *proxy_name; -char *proxy_token; -char *client_name; -char *client_token; -char *server_name; -char *server_token; -char *regscript_name; -char *regscript_token; -static char *idfile_name; -char *temp_name; -const char *prefix_client = ""; -const char *prefix_server = ""; - -int line_number = 1; - -static FILE *idfile; - -unsigned int pointer_size = 0; -syskind_t typelib_kind = sizeof(void*) == 8 ? SYS_WIN64 : SYS_WIN32; - -time_t now; - -enum { - OLDNAMES_OPTION = CHAR_MAX + 1, - DLLDATA_OPTION, - DLLDATA_ONLY_OPTION, - LOCAL_STUBS_OPTION, - PREFIX_ALL_OPTION, - PREFIX_CLIENT_OPTION, - PREFIX_SERVER_OPTION, - PRINT_HELP, - WIN32_OPTION, - WIN64_OPTION, - WIN32_ALIGN_OPTION, - WIN64_ALIGN_OPTION -}; - -static const char short_options[] = - "b:cC:d:D:EhH:I:m:No:O:pP:rsS:tT:uU:VW"; -static const struct option long_options[] = { - { "dlldata", 1, NULL, DLLDATA_OPTION }, - { "dlldata-only", 0, NULL, DLLDATA_ONLY_OPTION }, - { "help", 0, NULL, PRINT_HELP }, - { "local-stubs", 1, NULL, LOCAL_STUBS_OPTION }, - { "oldnames", 0, NULL, OLDNAMES_OPTION }, - { "output", 0, NULL, 'o' }, - { "prefix-all", 1, NULL, PREFIX_ALL_OPTION }, - { "prefix-client", 1, NULL, PREFIX_CLIENT_OPTION }, - { "prefix-server", 1, NULL, PREFIX_SERVER_OPTION }, - { "win32", 0, NULL, WIN32_OPTION }, - { "win64", 0, NULL, WIN64_OPTION }, - { "win32-align", 1, NULL, WIN32_ALIGN_OPTION }, - { "win64-align", 1, NULL, WIN64_ALIGN_OPTION }, - { NULL, 0, NULL, 0 } -}; - -static void rm_tempfile(void); - -enum stub_mode get_stub_mode(void) -{ - /* old-style interpreted stubs are not supported on 64-bit */ - if (stub_mode == MODE_Oi && pointer_size == 8) return MODE_Oif; - return stub_mode; -} - -static char *make_token(const char *name) -{ - char *token; - char *slash; - int i; - - slash = strrchr(name, '/'); - if(!slash) - slash = strrchr(name, '\\'); - - if (slash) name = slash + 1; - - token = xstrdup(name); - for (i=0; token[i]; i++) { - if (!isalnum(token[i])) token[i] = '_'; - else token[i] = tolower(token[i]); - } - return token; -} - -/* duplicate a basename into a valid C token */ -static char *dup_basename_token(const char *name, const char *ext) -{ - char *p, *ret = dup_basename( name, ext ); - /* map invalid characters to '_' */ - for (p = ret; *p; p++) if (!isalnum(*p)) *p = '_'; - return ret; -} - -static void add_widl_version_define(void) -{ - unsigned int version; - const char *p = PACKAGE_VERSION; - - /* major */ - version = atoi(p) * 0x10000; - p = strchr(p, '.'); - - /* minor */ - if (p) - { - version += atoi(p + 1) * 0x100; - p = strchr(p + 1, '.'); - } - - /* build */ - if (p) - version += atoi(p + 1); - - if (version != 0) - { - char version_str[11]; - snprintf(version_str, sizeof(version_str), "0x%x", version); - wpp_add_define("__WIDL__", version_str); - } - else - wpp_add_define("__WIDL__", NULL); -} - -/* set the target platform */ -static void set_target( const char *target ) -{ - static const struct - { - const char *name; - syskind_t kind; - } cpu_names[] = - { - { "i386", SYS_WIN32 }, - { "i486", SYS_WIN32 }, - { "i586", SYS_WIN32 }, - { "i686", SYS_WIN32 }, - { "i786", SYS_WIN32 }, - { "amd64", SYS_WIN64 }, - { "x86_64", SYS_WIN64 }, - { "sparc", SYS_WIN32 }, - { "alpha", SYS_WIN32 }, - { "powerpc", SYS_WIN32 }, - { "arm", SYS_WIN32 } - }; - - unsigned int i; - char *p, *spec = xstrdup( target ); - - /* target specification is in the form CPU-MANUFACTURER-OS or CPU-MANUFACTURER-KERNEL-OS */ - - if (!(p = strchr( spec, '-' ))) error( "Invalid target specification '%s'\n", target ); - *p++ = 0; - for (i = 0; i < sizeof(cpu_names)/sizeof(cpu_names[0]); i++) - { - if (!strcmp( cpu_names[i].name, spec )) - { - typelib_kind = cpu_names[i].kind; - free( spec ); - return; - } - } - error( "Unrecognized CPU '%s'\n", spec ); -} - -/* clean things up when aborting on a signal */ -static void exit_on_signal( int sig ) -{ - exit(1); /* this will call the atexit functions */ -} - -static void set_everything(int x) -{ - do_header = x; - do_typelib = x; - do_proxies = x; - do_client = x; - do_server = x; - do_regscript = x; - do_idfile = x; - do_dlldata = x; -} - -void start_cplusplus_guard(FILE *fp) -{ - fprintf(fp, "#ifdef __cplusplus\n"); - fprintf(fp, "extern \"C\" {\n"); - fprintf(fp, "#endif\n\n"); -} - -void end_cplusplus_guard(FILE *fp) -{ - fprintf(fp, "#ifdef __cplusplus\n"); - fprintf(fp, "}\n"); - fprintf(fp, "#endif\n\n"); -} - -typedef struct -{ - char *filename; - struct list link; -} filename_node_t; - -static void add_filename_node(struct list *list, const char *name) -{ - filename_node_t *node = xmalloc(sizeof *node); - node->filename = dup_basename( name, ".idl" ); - list_add_tail(list, &node->link); -} - -static void free_filename_nodes(struct list *list) -{ - filename_node_t *node, *next; - LIST_FOR_EACH_ENTRY_SAFE(node, next, list, filename_node_t, link) { - list_remove(&node->link); - free(node->filename); - free(node); - } -} - -static void write_dlldata_list(struct list *filenames) -{ - FILE *dlldata; - filename_node_t *node; - - dlldata = fopen(dlldata_name, "w"); - if (!dlldata) - error("couldn't open %s: %s\n", dlldata_name, strerror(errno)); - - fprintf(dlldata, "/*** Autogenerated by WIDL %s ", PACKAGE_VERSION); - fprintf(dlldata, "- Do not edit ***/\n\n"); - fprintf(dlldata, "#include \n"); - fprintf(dlldata, "#include \n\n"); - start_cplusplus_guard(dlldata); - - LIST_FOR_EACH_ENTRY(node, filenames, filename_node_t, link) - fprintf(dlldata, "EXTERN_PROXY_FILE(%s)\n", node->filename); - - fprintf(dlldata, "\nPROXYFILE_LIST_START\n"); - fprintf(dlldata, "/* Start of list */\n"); - LIST_FOR_EACH_ENTRY(node, filenames, filename_node_t, link) - fprintf(dlldata, " REFERENCE_PROXY_FILE(%s),\n", node->filename); - fprintf(dlldata, "/* End of list */\n"); - fprintf(dlldata, "PROXYFILE_LIST_END\n\n"); - - fprintf(dlldata, "DLLDATA_ROUTINES(aProxyFileList, GET_DLL_CLSID)\n\n"); - end_cplusplus_guard(dlldata); - fclose(dlldata); -} - -static char *eat_space(char *s) -{ - while (isspace((unsigned char) *s)) - ++s; - return s; -} - -void write_dlldata(const statement_list_t *stmts) -{ - struct list filenames = LIST_INIT(filenames); - filename_node_t *node; - FILE *dlldata; - - if (!do_dlldata || !need_proxy_file(stmts)) - return; - - dlldata = fopen(dlldata_name, "r"); - if (dlldata) { - static char marker[] = "REFERENCE_PROXY_FILE"; - char *line = NULL; - size_t len = 0; - - while (widl_getline(&line, &len, dlldata)) { - char *start, *end; - start = eat_space(line); - if (strncmp(start, marker, sizeof marker - 1) == 0) { - start = eat_space(start + sizeof marker - 1); - if (*start != '(') - continue; - end = start = eat_space(start + 1); - while (*end && *end != ')') - ++end; - if (*end != ')') - continue; - while (isspace((unsigned char) end[-1])) - --end; - *end = '\0'; - if (start < end) - add_filename_node(&filenames, start); - } - } - - if (ferror(dlldata)) - error("couldn't read from %s: %s\n", dlldata_name, strerror(errno)); - - free(line); - fclose(dlldata); - } - - LIST_FOR_EACH_ENTRY(node, &filenames, filename_node_t, link) - if (strcmp(proxy_token, node->filename) == 0) { - /* We're already in the list, no need to regenerate this file. */ - free_filename_nodes(&filenames); - return; - } - - add_filename_node(&filenames, proxy_token); - write_dlldata_list(&filenames); - free_filename_nodes(&filenames); -} - -static void write_id_data_stmts(const statement_list_t *stmts) -{ - const statement_t *stmt; - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry ) - { - if (stmt->type == STMT_TYPE) - { - const type_t *type = stmt->u.type; - if (type_get_type(type) == TYPE_INTERFACE) - { - const UUID *uuid; - if (!is_object(type) && !is_attr(type->attrs, ATTR_DISPINTERFACE)) - continue; - uuid = get_attrp(type->attrs, ATTR_UUID); - write_guid(idfile, is_attr(type->attrs, ATTR_DISPINTERFACE) ? "DIID" : "IID", - type->name, uuid); - } - else if (type_get_type(type) == TYPE_COCLASS) - { - const UUID *uuid = get_attrp(type->attrs, ATTR_UUID); - write_guid(idfile, "CLSID", type->name, uuid); - } - } - else if (stmt->type == STMT_LIBRARY) - { - const UUID *uuid = get_attrp(stmt->u.lib->attrs, ATTR_UUID); - write_guid(idfile, "LIBID", stmt->u.lib->name, uuid); - write_id_data_stmts(stmt->u.lib->stmts); - } - } -} - -void write_id_data(const statement_list_t *stmts) -{ - if (!do_idfile) return; - - idfile = fopen(idfile_name, "w"); - if (! idfile) { - error("Could not open %s for output\n", idfile_name); - return; - } - - fprintf(idfile, "/*** Autogenerated by WIDL %s ", PACKAGE_VERSION); - fprintf(idfile, "from %s - Do not edit ***/\n\n", input_name); - fprintf(idfile, "#include \n"); - fprintf(idfile, "#include \n\n"); - fprintf(idfile, "#include \n\n"); - start_cplusplus_guard(idfile); - - write_id_data_stmts(stmts); - - fprintf(idfile, "\n"); - end_cplusplus_guard(idfile); - - fclose(idfile); -} - -int main(int argc,char *argv[]) -{ - int optc; - int ret = 0; - int opti = 0; - char *output_name = NULL; - - signal( SIGTERM, exit_on_signal ); - signal( SIGINT, exit_on_signal ); -#ifdef SIGHUP - signal( SIGHUP, exit_on_signal ); -#endif - - now = time(NULL); - - while((optc = getopt_long(argc, argv, short_options, long_options, &opti)) != EOF) { - switch(optc) { - case DLLDATA_OPTION: - dlldata_name = xstrdup(optarg); - break; - case DLLDATA_ONLY_OPTION: - do_everything = 0; - do_dlldata = 1; - break; - case LOCAL_STUBS_OPTION: - do_everything = 0; - local_stubs_name = xstrdup(optarg); - break; - case OLDNAMES_OPTION: - old_names = 1; - break; - case PREFIX_ALL_OPTION: - prefix_client = xstrdup(optarg); - prefix_server = xstrdup(optarg); - break; - case PREFIX_CLIENT_OPTION: - prefix_client = xstrdup(optarg); - break; - case PREFIX_SERVER_OPTION: - prefix_server = xstrdup(optarg); - break; - case PRINT_HELP: - fprintf(stderr, "%s", usage); - return 0; - case WIN32_OPTION: - do_win32 = 1; - do_win64 = 0; - break; - case WIN64_OPTION: - do_win32 = 0; - do_win64 = 1; - break; - case WIN32_ALIGN_OPTION: - win32_packing = strtol(optarg, NULL, 0); - if(win32_packing != 2 && win32_packing != 4 && win32_packing != 8) - error("Packing must be one of 2, 4 or 8\n"); - break; - case WIN64_ALIGN_OPTION: - win64_packing = strtol(optarg, NULL, 0); - if(win64_packing != 2 && win64_packing != 4 && win64_packing != 8) - error("Packing must be one of 2, 4 or 8\n"); - break; - case 'b': - set_target( optarg ); - break; - case 'c': - do_everything = 0; - do_client = 1; - break; - case 'C': - client_name = xstrdup(optarg); - break; - case 'd': - debuglevel = strtol(optarg, NULL, 0); - break; - case 'D': - wpp_add_cmdline_define(optarg); - break; - case 'E': - do_everything = 0; - preprocess_only = 1; - break; - case 'h': - do_everything = 0; - do_header = 1; - break; - case 'H': - header_name = xstrdup(optarg); - break; - case 'I': - wpp_add_include_path(optarg); - break; - case 'm': - if (!strcmp( optarg, "32" )) typelib_kind = SYS_WIN32; - else if (!strcmp( optarg, "64" )) typelib_kind = SYS_WIN64; - else error( "Invalid -m argument '%s'\n", optarg ); - break; - case 'N': - no_preprocess = 1; - break; - case 'o': - output_name = xstrdup(optarg); - break; - case 'O': - if (!strcmp( optarg, "s" )) stub_mode = MODE_Os; - else if (!strcmp( optarg, "i" )) stub_mode = MODE_Oi; - else if (!strcmp( optarg, "ic" )) stub_mode = MODE_Oif; - else if (!strcmp( optarg, "if" )) stub_mode = MODE_Oif; - else if (!strcmp( optarg, "icf" )) stub_mode = MODE_Oif; - else error( "Invalid argument '-O%s'\n", optarg ); - break; - case 'p': - do_everything = 0; - do_proxies = 1; - break; - case 'P': - proxy_name = xstrdup(optarg); - break; - case 'r': - do_everything = 0; - do_regscript = 1; - break; - case 's': - do_everything = 0; - do_server = 1; - break; - case 'S': - server_name = xstrdup(optarg); - break; - case 't': - do_everything = 0; - do_typelib = 1; - break; - case 'T': - typelib_name = xstrdup(optarg); - break; - case 'u': - do_everything = 0; - do_idfile = 1; - break; - case 'U': - idfile_name = xstrdup(optarg); - break; - case 'V': - printf("%s", version_string); - return 0; - case 'W': - pedantic = 1; - break; - default: - fprintf(stderr, "%s", usage); - return 1; - } - } - -#ifdef DEFAULT_INCLUDE_DIR - wpp_add_include_path(DEFAULT_INCLUDE_DIR); -#endif - - if(do_everything) { - set_everything(TRUE); - } - - if (!output_name) output_name = dup_basename(input_name, ".idl"); - - if (!do_everything && - do_header + do_typelib + do_proxies + do_client + - do_server + do_regscript + do_idfile + do_dlldata == 1) - { - if (do_header) header_name = output_name; - else if (do_typelib) typelib_name = output_name; - else if (do_proxies) proxy_name = output_name; - else if (do_client) client_name = output_name; - else if (do_server) server_name = output_name; - else if (do_regscript) regscript_name = output_name; - else if (do_idfile) idfile_name = output_name; - else if (do_dlldata) dlldata_name = output_name; - } - - if (!dlldata_name && do_dlldata) - dlldata_name = xstrdup("dlldata.c"); - - if(optind < argc) { - if (do_dlldata && !do_everything) { - struct list filenames = LIST_INIT(filenames); - for ( ; optind < argc; ++optind) - add_filename_node(&filenames, argv[optind]); - - write_dlldata_list(&filenames); - free_filename_nodes(&filenames); - return 0; - } - else if (optind != argc - 1) { - fprintf(stderr, "%s", usage); - return 1; - } - else - input_name = xstrdup(argv[optind]); - } - else { - fprintf(stderr, "%s", usage); - return 1; - } - - if(debuglevel) - { - setbuf(stdout, NULL); - setbuf(stderr, NULL); - } - - parser_debug = debuglevel & DEBUGLEVEL_TRACE ? 1 : 0; - yy_flex_debug = debuglevel & DEBUGLEVEL_TRACE ? 1 : 0; - - wpp_set_debug( (debuglevel & DEBUGLEVEL_PPLEX) != 0, - (debuglevel & DEBUGLEVEL_PPTRACE) != 0, - (debuglevel & DEBUGLEVEL_PPMSG) != 0 ); - - if (!header_name) { - header_name = dup_basename(input_name, ".idl"); - strcat(header_name, ".h"); - } - - if (!typelib_name && do_typelib) { - typelib_name = dup_basename(input_name, ".idl"); - strcat(typelib_name, ".tlb"); - } - - if (!proxy_name && do_proxies) { - proxy_name = dup_basename(input_name, ".idl"); - strcat(proxy_name, "_p.c"); - } - - if (!client_name && do_client) { - client_name = dup_basename(input_name, ".idl"); - strcat(client_name, "_c.c"); - } - - if (!server_name && do_server) { - server_name = dup_basename(input_name, ".idl"); - strcat(server_name, "_s.c"); - } - - if (!regscript_name && do_regscript) { - regscript_name = dup_basename(input_name, ".idl"); - strcat(regscript_name, "_r.rgs"); - } - - if (!idfile_name && do_idfile) { - idfile_name = dup_basename(input_name, ".idl"); - strcat(idfile_name, "_i.c"); - } - - if (do_proxies) proxy_token = dup_basename_token(proxy_name,"_p.c"); - if (do_client) client_token = dup_basename_token(client_name,"_c.c"); - if (do_server) server_token = dup_basename_token(server_name,"_s.c"); - if (do_regscript) regscript_token = dup_basename_token(regscript_name,"_r.rgs"); - - add_widl_version_define(); - wpp_add_define("_WIN32", NULL); - - atexit(rm_tempfile); - if (!no_preprocess) - { - chat("Starting preprocess\n"); - - if (!preprocess_only) - { - FILE *output; - int fd; - char *name = xmalloc( strlen(header_name) + 8 ); - - strcpy( name, header_name ); - strcat( name, ".XXXXXX" ); - - if ((fd = mkstemps( name, 0 )) == -1) - error("Could not generate a temp name from %s\n", name); - - temp_name = name; - if (!(output = fdopen(fd, "wt"))) - error("Could not open fd %s for writing\n", name); - - ret = wpp_parse( input_name, output ); - fclose( output ); - } - else - { - ret = wpp_parse( input_name, stdout ); - } - - if(ret) exit(1); - if(preprocess_only) exit(0); - if(!(parser_in = fopen(temp_name, "r"))) { - fprintf(stderr, "Could not open %s for input\n", temp_name); - return 1; - } - } - else { - if(!(parser_in = fopen(input_name, "r"))) { - fprintf(stderr, "Could not open %s for input\n", input_name); - return 1; - } - } - - header_token = make_token(header_name); - - init_types(); - ret = parser_parse(); - - fclose(parser_in); - - if(ret) { - exit(1); - } - - /* Everything has been done successfully, don't delete any files. */ - set_everything(FALSE); - local_stubs_name = NULL; - - return 0; -} - -static void rm_tempfile(void) -{ - abort_import(); - if(temp_name) - unlink(temp_name); - if (do_header) - unlink(header_name); - if (local_stubs_name) - unlink(local_stubs_name); - if (do_client) - unlink(client_name); - if (do_server) - unlink(server_name); - if (do_regscript) - unlink(regscript_name); - if (do_idfile) - unlink(idfile_name); - if (do_proxies) - unlink(proxy_name); - if (do_typelib) - unlink(typelib_name); -} diff --git a/reactos/tools/widl/widl.h b/reactos/tools/widl/widl.h deleted file mode 100644 index 6551fa07fbe..00000000000 --- a/reactos/tools/widl/widl.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * IDL Compiler - * - * Copyright 2002 Ove Kaaven - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef __WIDL_WIDL_H -#define __WIDL_WIDL_H - -#include "widltypes.h" - -#include - -extern int debuglevel; -#define DEBUGLEVEL_NONE 0x0000 -#define DEBUGLEVEL_CHAT 0x0001 -#define DEBUGLEVEL_DUMP 0x0002 -#define DEBUGLEVEL_TRACE 0x0004 -#define DEBUGLEVEL_PPMSG 0x0008 -#define DEBUGLEVEL_PPLEX 0x0010 -#define DEBUGLEVEL_PPTRACE 0x0020 - -extern int pedantic; -extern int do_everything; -extern int do_header; -extern int do_typelib; -extern int do_proxies; -extern int do_client; -extern int do_server; -extern int do_regscript; -extern int do_idfile; -extern int do_dlldata; -extern int old_names; -extern int do_win32; -extern int do_win64; -extern int win32_packing; -extern int win64_packing; - -extern char *input_name; -extern char *header_name; -extern char *header_token; -extern char *local_stubs_name; -extern char *typelib_name; -extern char *dlldata_name; -extern char *proxy_name; -extern char *proxy_token; -extern char *client_name; -extern char *client_token; -extern char *server_name; -extern char *server_token; -extern char *regscript_name; -extern char *regscript_token; -extern const char *prefix_client; -extern const char *prefix_server; -extern unsigned int pointer_size; -extern time_t now; - -extern int line_number; -extern int char_number; - -enum stub_mode -{ - MODE_Os, /* inline stubs */ - MODE_Oi, /* old-style interpreted stubs */ - MODE_Oif /* new-style fully interpreted stubs */ -}; -extern enum stub_mode get_stub_mode(void); - -extern void write_header(const statement_list_t *stmts); -extern void write_id_data(const statement_list_t *stmts); -extern void write_proxies(const statement_list_t *stmts); -extern void write_client(const statement_list_t *stmts); -extern void write_server(const statement_list_t *stmts); -extern void write_regscript(const statement_list_t *stmts); -extern void output_typelib_regscript( const typelib_t *typelib ); -extern void write_local_stubs(const statement_list_t *stmts); -extern void write_dlldata(const statement_list_t *stmts); - -extern void start_cplusplus_guard(FILE *fp); -extern void end_cplusplus_guard(FILE *fp); - -#endif diff --git a/reactos/tools/widl/widl_ros.diff b/reactos/tools/widl/widl_ros.diff deleted file mode 100644 index 8c853a7cb8a..00000000000 --- a/reactos/tools/widl/widl_ros.diff +++ /dev/null @@ -1,153 +0,0 @@ -diff -u wine-1.3.4/tools/widl/hash.c tools/widl/hash.c ---- wine-1.3.4/tools/widl/hash.c 2010-09-19 17:48:47.640625000 +0200 -+++ tools/widl/hash.c 2010-09-19 19:17:19.000000000 +0200 -@@ -21,9 +21,7 @@ - #include - #include - --#include "windef.h" --#include "winbase.h" --#include "winnls.h" -+#include - - #include "widltypes.h" - #include "hash.h" -diff -u wine-1.3.4/tools/widl/header.c tools/widl/header.c ---- wine-1.3.4/tools/widl/header.c 2010-09-19 17:48:47.640625000 +0200 -+++ tools/widl/header.c 2010-10-26 18:30:19.000000000 +0200 -@@ -1081,15 +1081,7 @@ - { - unsigned int ver = get_attrv(iface->attrs, ATTR_VERSION); - const char *var = get_attrp(iface->attrs, ATTR_IMPLICIT_HANDLE); -- static int allocate_written = 0; - -- if (!allocate_written) -- { -- allocate_written = 1; -- fprintf(header, "void * __RPC_USER MIDL_user_allocate(SIZE_T);\n"); -- fprintf(header, "void __RPC_USER MIDL_user_free(void *);\n\n"); -- } -- - fprintf(header, "/*****************************************************************************\n"); - fprintf(header, " * %s interface (v%d.%d)\n", iface->name, MAJORVERSION(ver), MINORVERSION(ver)); - fprintf(header, " */\n"); -diff -u wine-1.3.4/tools/widl/parser.y tools/widl/parser.y ---- wine-1.3.4/tools/widl/parser.y 2010-09-19 17:49:40.578125000 +0200 -+++ tools/widl/parser.y 2010-10-03 16:44:18.781250000 +0200 -@@ -1816,6 +1816,12 @@ - else if (is_attr(attrs, ATTR_UUID) && !is_attr(attrs, ATTR_PUBLIC)) - attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) ); - -+ /* Append the SWITCHTYPE attribute to a union if it does not already have one. */ -+ if (type_get_type_detect_alias(type) == TYPE_UNION && -+ is_attr(attrs, ATTR_SWITCHTYPE) && -+ !is_attr(type->attrs, ATTR_SWITCHTYPE)) -+ type->attrs = append_attr(type->attrs, make_attrp(ATTR_SWITCHTYPE, get_attrp(attrs, ATTR_SWITCHTYPE))); -+ - LIST_FOR_EACH_ENTRY( decl, decls, const declarator_t, entry ) - { - -diff -u wine-1.3.4/tools/widl/typelib.c tools/widl/typelib.c ---- wine-1.3.4/tools/widl/typelib.c 2010-09-19 17:50:24.000000000 +0200 -+++ tools/widl/typelib.c 2010-09-26 20:23:47.000000000 +0200 -@@ -35,8 +35,7 @@ - #define NONAMELESSUNION - #define NONAMELESSSTRUCT - --#include "windef.h" --#include "winbase.h" -+#include - - #include "widl.h" - #include "utils.h" -diff -u wine-1.3.4/tools/widl/typelib_struct.h tools/widl/typelib_struct.h ---- wine-1.3.4/tools/widl/typelib_struct.h 2010-09-19 17:50:40.953125000 +0200 -+++ tools/widl/typelib_struct.h 2010-10-10 00:50:32.921875000 +0200 -@@ -302,7 +302,7 @@ - * - */ - --#include "pshpack1.h" -+#include - - typedef struct { - /*00*/ DWORD SLTG_magic; /* 0x47544c53 == "SLTG" */ -@@ -599,7 +599,7 @@ - WORD typeofarray - */ - --#include "poppack.h" -+#include - - /*---------------------------END--------------------------------------------*/ - #endif -diff -u wine-1.3.4/tools/widl/widltypes.h tools/widl/widltypes.h ---- wine-1.3.4/tools/widl/widltypes.h 2010-09-19 17:51:38.890625000 +0200 -+++ tools/widl/widltypes.h 2010-09-19 19:17:19.656250000 +0200 -@@ -21,6 +21,15 @@ - #ifndef __WIDL_WIDLTYPES_H - #define __WIDL_WIDLTYPES_H - -+#define S_OK 0 -+#define S_FALSE 1 -+#define E_OUTOFMEMORY ((HRESULT)0x8007000EL) -+#define TYPE_E_IOERROR ((HRESULT)0x80028CA2L) -+ -+#ifndef max -+#define max(a, b) ((a) > (b) ? a : b) -+#endif -+ - #include - #include - #include "guiddef.h" -@@ -32,7 +39,9 @@ - typedef GUID UUID; - #endif - -+#ifndef TRUE - #define TRUE 1 -+#endif - #define FALSE 0 - - typedef struct _loc_info_t loc_info_t; -diff -u wine-1.3.4/tools/widl/write_msft.c tools/widl/write_msft.c ---- wine-1.3.4/tools/widl/write_msft.c 2010-09-19 17:51:48.531250000 +0200 -+++ tools/widl/write_msft.c 2010-09-26 20:23:47.000000000 +0200 -@@ -40,10 +40,8 @@ - #define NONAMELESSUNION - #define NONAMELESSSTRUCT - --#include "winerror.h" --#include "windef.h" --#include "winbase.h" --#include "winnls.h" -+#include -+#include - - #include "widl.h" - #include "typelib.h" -@@ -2023,7 +2023,10 @@ - } - - if (is_attr(interface->attrs, ATTR_DISPINTERFACE)) -- return add_dispinterface_typeinfo(typelib, interface); -+ { -+ add_dispinterface_typeinfo(typelib, interface); -+ return; -+ } - - /* midl adds the parent interface first, unless the parent itself - has no parent (i.e. it stops before IUnknown). */ -diff -u wine-1.3.4/tools/widl/typegen.c tools/widl/typegen.c ---- wine-1.3.4/tools/widl/typegen.c 2010-09-19 17:51:48.531250000 +0200 -+++ tools/widl/typegen.c 2012-08-12 14:19:47.000000000 +0200 -@@ -2345,7 +2345,8 @@ - return; - } - } -- return write_member_type(file, type, cont_is_complex, NULL, elem, NULL, tfsoff); -+ write_member_type(file, type, cont_is_complex, NULL, elem, NULL, tfsoff); -+ return; - } - - static void write_end(FILE *file, unsigned int *tfsoff) diff --git a/reactos/tools/widl/widltypes.h b/reactos/tools/widl/widltypes.h deleted file mode 100644 index 8447a15ba7f..00000000000 --- a/reactos/tools/widl/widltypes.h +++ /dev/null @@ -1,602 +0,0 @@ -/* - * IDL Compiler - * - * Copyright 2002 Ove Kaaven - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef __WIDL_WIDLTYPES_H -#define __WIDL_WIDLTYPES_H - -#define S_OK 0 -#define S_FALSE 1 -#define E_OUTOFMEMORY ((HRESULT)0x8007000EL) -#define TYPE_E_IOERROR ((HRESULT)0x80028CA2L) - -#ifndef max -#define max(a, b) ((a) > (b) ? a : b) -#endif - -#include -#include -#include "guiddef.h" -#include "wine/rpcfc.h" -#include "wine/list.h" - -#ifndef UUID_DEFINED -#define UUID_DEFINED -typedef GUID UUID; -#endif - -#define TRUE 1 -#define FALSE 0 - -typedef struct _loc_info_t loc_info_t; -typedef struct _attr_t attr_t; -typedef struct _expr_t expr_t; -typedef struct _type_t type_t; -typedef struct _var_t var_t; -typedef struct _declarator_t declarator_t; -typedef struct _ifref_t ifref_t; -typedef struct _typelib_entry_t typelib_entry_t; -typedef struct _importlib_t importlib_t; -typedef struct _importinfo_t importinfo_t; -typedef struct _typelib_t typelib_t; -typedef struct _user_type_t user_type_t; -typedef struct _user_type_t context_handle_t; -typedef struct _user_type_t generic_handle_t; -typedef struct _type_list_t type_list_t; -typedef struct _statement_t statement_t; - -typedef struct list attr_list_t; -typedef struct list str_list_t; -typedef struct list expr_list_t; -typedef struct list var_list_t; -typedef struct list declarator_list_t; -typedef struct list ifref_list_t; -typedef struct list array_dims_t; -typedef struct list user_type_list_t; -typedef struct list context_handle_list_t; -typedef struct list generic_handle_list_t; -typedef struct list statement_list_t; - -enum attr_type -{ - ATTR_AGGREGATABLE, - ATTR_ANNOTATION, - ATTR_APPOBJECT, - ATTR_ASYNC, - ATTR_AUTO_HANDLE, - ATTR_BINDABLE, - ATTR_BROADCAST, - ATTR_CALLAS, - ATTR_CALLCONV, /* calling convention pseudo-attribute */ - ATTR_CASE, - ATTR_CODE, - ATTR_COMMSTATUS, - ATTR_CONST, /* const pseudo-attribute */ - ATTR_CONTEXTHANDLE, - ATTR_CONTROL, - ATTR_DECODE, - ATTR_DEFAULT, - ATTR_DEFAULTBIND, - ATTR_DEFAULTCOLLELEM, - ATTR_DEFAULTVALUE, - ATTR_DEFAULTVTABLE, - ATTR_DISABLECONSISTENCYCHECK, - ATTR_DISPINTERFACE, - ATTR_DISPLAYBIND, - ATTR_DLLNAME, - ATTR_DUAL, - ATTR_ENABLEALLOCATE, - ATTR_ENCODE, - ATTR_ENDPOINT, - ATTR_ENTRY, - ATTR_EXPLICIT_HANDLE, - ATTR_FAULTSTATUS, - ATTR_FORCEALLOCATE, - ATTR_HANDLE, - ATTR_HELPCONTEXT, - ATTR_HELPFILE, - ATTR_HELPSTRING, - ATTR_HELPSTRINGCONTEXT, - ATTR_HELPSTRINGDLL, - ATTR_HIDDEN, - ATTR_ID, - ATTR_IDEMPOTENT, - ATTR_IGNORE, - ATTR_IIDIS, - ATTR_IMMEDIATEBIND, - ATTR_IMPLICIT_HANDLE, - ATTR_IN, - ATTR_INLINE, - ATTR_INPUTSYNC, - ATTR_LENGTHIS, - ATTR_LIBLCID, - ATTR_LICENSED, - ATTR_LOCAL, - ATTR_MAYBE, - ATTR_MESSAGE, - ATTR_NOCODE, - ATTR_NONBROWSABLE, - ATTR_NONCREATABLE, - ATTR_NONEXTENSIBLE, - ATTR_NOTIFY, - ATTR_NOTIFYFLAG, - ATTR_OBJECT, - ATTR_ODL, - ATTR_OLEAUTOMATION, - ATTR_OPTIMIZE, - ATTR_OPTIONAL, - ATTR_OUT, - ATTR_PARAMLCID, - ATTR_PARTIALIGNORE, - ATTR_POINTERDEFAULT, - ATTR_POINTERTYPE, - ATTR_PROGID, - ATTR_PROPGET, - ATTR_PROPPUT, - ATTR_PROPPUTREF, - ATTR_PROXY, - ATTR_PUBLIC, - ATTR_RANGE, - ATTR_READONLY, - ATTR_REPRESENTAS, - ATTR_REQUESTEDIT, - ATTR_RESTRICTED, - ATTR_RETVAL, - ATTR_SIZEIS, - ATTR_SOURCE, - ATTR_STRICTCONTEXTHANDLE, - ATTR_STRING, - ATTR_SWITCHIS, - ATTR_SWITCHTYPE, - ATTR_THREADING, - ATTR_TRANSMITAS, - ATTR_UIDEFAULT, - ATTR_USERMARSHAL, - ATTR_USESGETLASTERROR, - ATTR_UUID, - ATTR_V1ENUM, - ATTR_VARARG, - ATTR_VERSION, - ATTR_VIPROGID, - ATTR_WIREMARSHAL -}; - -enum expr_type -{ - EXPR_VOID, - EXPR_NUM, - EXPR_HEXNUM, - EXPR_DOUBLE, - EXPR_IDENTIFIER, - EXPR_NEG, - EXPR_NOT, - EXPR_PPTR, - EXPR_CAST, - EXPR_SIZEOF, - EXPR_SHL, - EXPR_SHR, - EXPR_MUL, - EXPR_DIV, - EXPR_ADD, - EXPR_SUB, - EXPR_AND, - EXPR_OR, - EXPR_COND, - EXPR_TRUEFALSE, - EXPR_ADDRESSOF, - EXPR_MEMBER, - EXPR_ARRAY, - EXPR_MOD, - EXPR_LOGOR, - EXPR_LOGAND, - EXPR_XOR, - EXPR_EQUALITY, - EXPR_INEQUALITY, - EXPR_GTR, - EXPR_LESS, - EXPR_GTREQL, - EXPR_LESSEQL, - EXPR_LOGNOT, - EXPR_POS, - EXPR_STRLIT, - EXPR_WSTRLIT, - EXPR_CHARCONST, -}; - -enum type_kind -{ - TKIND_PRIMITIVE = -1, - TKIND_ENUM, - TKIND_RECORD, - TKIND_MODULE, - TKIND_INTERFACE, - TKIND_DISPATCH, - TKIND_COCLASS, - TKIND_ALIAS, - TKIND_UNION, - TKIND_MAX -}; - -enum storage_class -{ - STG_NONE, - STG_STATIC, - STG_EXTERN, - STG_REGISTER, -}; - -enum statement_type -{ - STMT_LIBRARY, - STMT_DECLARATION, - STMT_TYPE, - STMT_TYPEREF, - STMT_MODULE, - STMT_TYPEDEF, - STMT_IMPORT, - STMT_IMPORTLIB, - STMT_CPPQUOTE -}; - -enum threading_type -{ - THREADING_APARTMENT = 1, - THREADING_NEUTRAL, - THREADING_SINGLE, - THREADING_FREE, - THREADING_BOTH -}; - -enum type_basic_type -{ - TYPE_BASIC_INT8 = 1, - TYPE_BASIC_INT16, - TYPE_BASIC_INT32, - TYPE_BASIC_INT64, - TYPE_BASIC_INT, - TYPE_BASIC_INT3264, - TYPE_BASIC_CHAR, - TYPE_BASIC_HYPER, - TYPE_BASIC_BYTE, - TYPE_BASIC_WCHAR, - TYPE_BASIC_FLOAT, - TYPE_BASIC_DOUBLE, - TYPE_BASIC_ERROR_STATUS_T, - TYPE_BASIC_HANDLE, -}; - -#define TYPE_BASIC_MAX TYPE_BASIC_HANDLE -#define TYPE_BASIC_INT_MIN TYPE_BASIC_INT8 -#define TYPE_BASIC_INT_MAX TYPE_BASIC_HYPER - -struct _loc_info_t -{ - const char *input_name; - int line_number; - const char *near_text; -}; - -struct str_list_entry_t -{ - char *str; - struct list entry; -}; - -struct _attr_t { - enum attr_type type; - union { - unsigned int ival; - void *pval; - } u; - /* parser-internal */ - struct list entry; -}; - -struct _expr_t { - enum expr_type type; - const expr_t *ref; - union { - int lval; - double dval; - const char *sval; - const expr_t *ext; - type_t *tref; - } u; - const expr_t *ext2; - int is_const; - int cval; - /* parser-internal */ - struct list entry; -}; - -struct struct_details -{ - var_list_t *fields; -}; - -struct enumeration_details -{ - var_list_t *enums; -}; - -struct func_details -{ - var_list_t *args; - struct _var_t *retval; - int idx; -}; - -struct iface_details -{ - statement_list_t *stmts; - var_list_t *disp_methods; - var_list_t *disp_props; - struct _type_t *inherit; -}; - -struct module_details -{ - statement_list_t *stmts; -}; - -struct array_details -{ - expr_t *size_is; - expr_t *length_is; - struct _type_t *elem; - unsigned int dim; - unsigned char ptr_def_fc; - unsigned char declptr; /* if declared as a pointer */ - unsigned short ptr_tfsoff; /* offset of pointer definition for declptr */ -}; - -struct coclass_details -{ - ifref_list_t *ifaces; -}; - -struct basic_details -{ - enum type_basic_type type; - int sign; -}; - -struct pointer_details -{ - struct _type_t *ref; - unsigned char def_fc; -}; - -struct bitfield_details -{ - struct _type_t *field; - const expr_t *bits; -}; - -enum type_type -{ - TYPE_VOID, - TYPE_BASIC, /* ints, floats and handles */ - TYPE_ENUM, - TYPE_STRUCT, - TYPE_ENCAPSULATED_UNION, - TYPE_UNION, - TYPE_ALIAS, - TYPE_MODULE, - TYPE_COCLASS, - TYPE_FUNCTION, - TYPE_INTERFACE, - TYPE_POINTER, - TYPE_ARRAY, - TYPE_BITFIELD, -}; - -struct _type_t { - const char *name; - enum type_type type_type; - attr_list_t *attrs; - union - { - struct struct_details *structure; - struct enumeration_details *enumeration; - struct func_details *function; - struct iface_details *iface; - struct module_details *module; - struct array_details array; - struct coclass_details coclass; - struct basic_details basic; - struct pointer_details pointer; - struct bitfield_details bitfield; - } details; - type_t *orig; /* dup'd types */ - unsigned int typestring_offset; - unsigned int ptrdesc; /* used for complex structs */ - int typelib_idx; - loc_info_t loc_info; - unsigned int ignore : 1; - unsigned int defined : 1; - unsigned int written : 1; - unsigned int user_types_registered : 1; - unsigned int tfswrite : 1; /* if the type needs to be written to the TFS */ - unsigned int checked : 1; - unsigned int is_alias : 1; /* is the type an alias? */ -}; - -struct _var_t { - char *name; - type_t *type; - attr_list_t *attrs; - expr_t *eval; - enum storage_class stgclass; - unsigned int procstring_offset; - unsigned int typestring_offset; - - struct _loc_info_t loc_info; - - /* parser-internal */ - struct list entry; -}; - -struct _declarator_t { - var_t *var; - type_t *type; - type_t *func_type; - array_dims_t *array; - expr_t *bits; - - /* parser-internal */ - struct list entry; -}; - -struct _ifref_t { - type_t *iface; - attr_list_t *attrs; - - /* parser-internal */ - struct list entry; -}; - -struct _typelib_entry_t { - type_t *type; - struct list entry; -}; - -struct _importinfo_t { - int offset; - GUID guid; - int flags; - int id; - - char *name; - - importlib_t *importlib; -}; - -struct _importlib_t { - char *name; - - int version; - GUID guid; - - importinfo_t *importinfos; - int ntypeinfos; - - int allocated; - - struct list entry; -}; - -struct _typelib_t { - char *name; - const attr_list_t *attrs; - struct list importlibs; - statement_list_t *stmts; -}; - -struct _user_type_t { - struct list entry; - const char *name; -}; - -struct _type_list_t { - type_t *type; - struct _type_list_t *next; -}; - -struct _statement_t { - struct list entry; - enum statement_type type; - union - { - ifref_t iface; - type_t *type; - const char *str; - var_t *var; - typelib_t *lib; - type_list_t *type_list; - } u; -}; - -typedef enum { - SYS_WIN16, - SYS_WIN32, - SYS_MAC, - SYS_WIN64 -} syskind_t; - -extern syskind_t typelib_kind; -extern user_type_list_t user_type_list; -extern context_handle_list_t context_handle_list; -extern generic_handle_list_t generic_handle_list; -void check_for_additional_prototype_types(const var_list_t *list); - -void init_types(void); -type_t *alloc_type(void); -void set_all_tfswrite(int val); -void clear_all_offsets(void); - -int is_ptr(const type_t *t); -int is_array(const type_t *t); - -#define tsENUM 1 -#define tsSTRUCT 2 -#define tsUNION 3 - -var_t *find_const(const char *name, int f); -type_t *find_type(const char *name, int t); -type_t *make_type(enum type_type type); -type_t *get_type(enum type_type type, char *name, int t); -type_t *reg_type(type_t *type, const char *name, int t); -void add_incomplete(type_t *t); - -var_t *make_var(char *name); -var_list_t *append_var(var_list_t *list, var_t *var); - -void init_loc_info(loc_info_t *); - -static inline var_list_t *type_get_function_args(const type_t *func_type) -{ - return func_type->details.function->args; -} - -static inline enum type_type type_get_type_detect_alias(const type_t *type) -{ - if (type->is_alias) - return TYPE_ALIAS; - return type->type_type; -} - -#define STATEMENTS_FOR_EACH_FUNC(stmt, stmts) \ - if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, statement_t, entry ) \ - if (stmt->type == STMT_DECLARATION && stmt->u.var->stgclass == STG_NONE && \ - type_get_type_detect_alias(stmt->u.var->type) == TYPE_FUNCTION) - -static inline int statements_has_func(const statement_list_t *stmts) -{ - const statement_t *stmt; - int has_func = 0; - STATEMENTS_FOR_EACH_FUNC(stmt, stmts) - { - has_func = 1; - break; - } - return has_func; -} - -#endif diff --git a/reactos/tools/widl/write_msft.c b/reactos/tools/widl/write_msft.c deleted file mode 100644 index c5b9aa0d559..00000000000 --- a/reactos/tools/widl/write_msft.c +++ /dev/null @@ -1,2622 +0,0 @@ -/* - * Typelib v2 (MSFT) generation - * - * Copyright 2004 Alastair Bridgewater - * 2004, 2005 Huw Davies - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * -------------------------------------------------------------------------------------- - * Known problems: - * - * Badly incomplete. - * - * Only works on little-endian systems. - * - */ - -#include "config.h" -#include "wine/port.h" - -#include -#include -#include -#include -#include -#include - -#define NONAMELESSUNION -#define NONAMELESSSTRUCT - -#include -#include - -#include "widl.h" -#include "typelib.h" -#include "typelib_struct.h" -#include "utils.h" -#include "header.h" -#include "hash.h" -#include "typetree.h" - -enum MSFT_segment_index { - MSFT_SEG_TYPEINFO = 0, /* type information */ - MSFT_SEG_IMPORTINFO, /* import information */ - MSFT_SEG_IMPORTFILES, /* import filenames */ - MSFT_SEG_REFERENCES, /* references (?) */ - MSFT_SEG_GUIDHASH, /* hash table for guids? */ - MSFT_SEG_GUID, /* guid storage */ - MSFT_SEG_NAMEHASH, /* hash table for names */ - MSFT_SEG_NAME, /* name storage */ - MSFT_SEG_STRING, /* string storage */ - MSFT_SEG_TYPEDESC, /* type descriptions */ - MSFT_SEG_ARRAYDESC, /* array descriptions */ - MSFT_SEG_CUSTDATA, /* custom data */ - MSFT_SEG_CUSTDATAGUID, /* custom data guids */ - MSFT_SEG_UNKNOWN, /* ??? */ - MSFT_SEG_UNKNOWN2, /* ??? */ - MSFT_SEG_MAX /* total number of segments */ -}; - -typedef struct tagMSFT_ImpFile { - int guid; - LCID lcid; - int version; - char filename[0]; /* preceded by two bytes of encoded (length << 2) + flags in the low two bits. */ -} MSFT_ImpFile; - -typedef struct _msft_typelib_t -{ - typelib_t *typelib; - MSFT_Header typelib_header; - MSFT_pSeg typelib_segdir[MSFT_SEG_MAX]; - unsigned char *typelib_segment_data[MSFT_SEG_MAX]; - int typelib_segment_block_length[MSFT_SEG_MAX]; - - INT typelib_typeinfo_offsets[0x200]; /* Hope that's enough. */ - - INT *typelib_namehash_segment; - INT *typelib_guidhash_segment; - - INT help_string_dll_offset; - - struct _msft_typeinfo_t *typeinfos; - struct _msft_typeinfo_t *last_typeinfo; -} msft_typelib_t; - -typedef struct _msft_typeinfo_t -{ - msft_typelib_t *typelib; - MSFT_TypeInfoBase *typeinfo; - - int typekind; - - unsigned int var_data_allocated; - int *var_data; - - unsigned int func_data_allocated; - int *func_data; - - int vars_allocated; - int *var_indices; - int *var_names; - int *var_offsets; - - int funcs_allocated; - int *func_indices; - int *func_names; - int *func_offsets; - - int datawidth; - - struct _msft_typeinfo_t *next_typeinfo; -} msft_typeinfo_t; - - - -/*================== Internal functions ===================================*/ - -/**************************************************************************** - * ctl2_init_header - * - * Initializes the type library header of a new typelib. - */ -static void ctl2_init_header( - msft_typelib_t *typelib) /* [I] The typelib to initialize. */ -{ - typelib->typelib_header.magic1 = 0x5446534d; - typelib->typelib_header.magic2 = 0x00010002; - typelib->typelib_header.posguid = -1; - typelib->typelib_header.lcid = 0x0409; - typelib->typelib_header.lcid2 = 0x0; - typelib->typelib_header.varflags = 0x40; - typelib->typelib_header.version = 0; - typelib->typelib_header.flags = 0; - typelib->typelib_header.nrtypeinfos = 0; - typelib->typelib_header.helpstring = -1; - typelib->typelib_header.helpstringcontext = 0; - typelib->typelib_header.helpcontext = 0; - typelib->typelib_header.nametablecount = 0; - typelib->typelib_header.nametablechars = 0; - typelib->typelib_header.NameOffset = -1; - typelib->typelib_header.helpfile = -1; - typelib->typelib_header.CustomDataOffset = -1; - typelib->typelib_header.res44 = 0x20; - typelib->typelib_header.res48 = 0x80; - typelib->typelib_header.dispatchpos = -1; - typelib->typelib_header.nimpinfos = 0; -} - -/**************************************************************************** - * ctl2_init_segdir - * - * Initializes the segment directory of a new typelib. - */ -static void ctl2_init_segdir( - msft_typelib_t *typelib) /* [I] The typelib to initialize. */ -{ - int i; - MSFT_pSeg *segdir; - - segdir = &typelib->typelib_segdir[MSFT_SEG_TYPEINFO]; - - for (i = 0; i < 15; i++) { - segdir[i].offset = -1; - segdir[i].length = 0; - segdir[i].res08 = -1; - segdir[i].res0c = 0x0f; - } -} - -/**************************************************************************** - * ctl2_hash_guid - * - * Generates a hash key from a GUID. - * - * RETURNS - * - * The hash key for the GUID. - */ -static int ctl2_hash_guid( - REFGUID guid) /* [I] The guid to hash. */ -{ - int hash; - int i; - - hash = 0; - for (i = 0; i < 8; i ++) { - hash ^= ((const short *)guid)[i]; - } - - return hash & 0x1f; -} - -/**************************************************************************** - * ctl2_find_guid - * - * Locates a guid in a type library. - * - * RETURNS - * - * The offset into the GUID segment of the guid, or -1 if not found. - */ -static int ctl2_find_guid( - msft_typelib_t *typelib, /* [I] The typelib to operate against. */ - int hash_key, /* [I] The hash key for the guid. */ - REFGUID guid) /* [I] The guid to find. */ -{ - int offset; - MSFT_GuidEntry *guidentry; - - offset = typelib->typelib_guidhash_segment[hash_key]; - while (offset != -1) { - guidentry = (MSFT_GuidEntry *)&typelib->typelib_segment_data[MSFT_SEG_GUID][offset]; - - if (!memcmp(guidentry, guid, sizeof(GUID))) return offset; - - offset = guidentry->next_hash; - } - - return offset; -} - -/**************************************************************************** - * ctl2_find_name - * - * Locates a name in a type library. - * - * RETURNS - * - * The offset into the NAME segment of the name, or -1 if not found. - * - * NOTES - * - * The name must be encoded as with ctl2_encode_name(). - */ -static int ctl2_find_name( - msft_typelib_t *typelib, /* [I] The typelib to operate against. */ - char *name) /* [I] The encoded name to find. */ -{ - int offset; - int *namestruct; - - offset = typelib->typelib_namehash_segment[name[2] & 0x7f]; - while (offset != -1) { - namestruct = (int *)&typelib->typelib_segment_data[MSFT_SEG_NAME][offset]; - - if (!((namestruct[2] ^ *((int *)name)) & 0xffff00ff)) { - /* hash codes and lengths match, final test */ - if (!strncasecmp(name+4, (void *)(namestruct+3), name[0])) break; - } - - /* move to next item in hash bucket */ - offset = namestruct[1]; - } - - return offset; -} - -/**************************************************************************** - * ctl2_encode_name - * - * Encodes a name string to a form suitable for storing into a type library - * or comparing to a name stored in a type library. - * - * RETURNS - * - * The length of the encoded name, including padding and length+hash fields. - * - * NOTES - * - * Will throw an exception if name or result are NULL. Is not multithread - * safe in the slightest. - */ -static int ctl2_encode_name( - msft_typelib_t *typelib, /* [I] The typelib to operate against (used for LCID only). */ - const char *name, /* [I] The name string to encode. */ - char **result) /* [O] A pointer to a pointer to receive the encoded name. */ -{ - int length; - static char converted_name[0x104]; - int offset; - int value; - - length = strlen(name); - memcpy(converted_name + 4, name, length); - - converted_name[length + 4] = 0; - - - value = lhash_val_of_name_sys(typelib->typelib_header.varflags & 0x0f, typelib->typelib_header.lcid, converted_name + 4); - -#ifdef WORDS_BIGENDIAN - converted_name[3] = length & 0xff; - converted_name[2] = 0x00; - converted_name[1] = value; - converted_name[0] = value >> 8; -#else - converted_name[0] = length & 0xff; - converted_name[1] = 0x00; - converted_name[2] = value; - converted_name[3] = value >> 8; -#endif - - for (offset = (4 - length) & 3; offset; offset--) converted_name[length + offset + 3] = 0x57; - - *result = converted_name; - - return (length + 7) & ~3; -} - -/**************************************************************************** - * ctl2_encode_string - * - * Encodes a string to a form suitable for storing into a type library or - * comparing to a string stored in a type library. - * - * RETURNS - * - * The length of the encoded string, including padding and length fields. - * - * NOTES - * - * Will throw an exception if string or result are NULL. Is not multithread - * safe in the slightest. - */ -static int ctl2_encode_string( - const char *string, /* [I] The string to encode. */ - char **result) /* [O] A pointer to a pointer to receive the encoded string. */ -{ - int length; - static char converted_string[0x104]; - int offset; - - length = strlen(string); - memcpy(converted_string + 2, string, length); - -#ifdef WORDS_BIGENDIAN - converted_string[1] = length & 0xff; - converted_string[0] = (length >> 8) & 0xff; -#else - converted_string[0] = length & 0xff; - converted_string[1] = (length >> 8) & 0xff; -#endif - - if(length < 3) { /* strings of this length are padded with up to 8 bytes incl the 2 byte length */ - for(offset = 0; offset < 4; offset++) - converted_string[length + offset + 2] = 0x57; - length += 4; - } - for (offset = (4 - (length + 2)) & 3; offset; offset--) converted_string[length + offset + 1] = 0x57; - - *result = converted_string; - - return (length + 5) & ~3; -} - -/**************************************************************************** - * ctl2_alloc_segment - * - * Allocates memory from a segment in a type library. - * - * RETURNS - * - * Success: The offset within the segment of the new data area. - * - * BUGS - * - * Does not (yet) handle the case where the allocated segment memory needs to grow. - */ -static int ctl2_alloc_segment( - msft_typelib_t *typelib, /* [I] The type library in which to allocate. */ - enum MSFT_segment_index segment, /* [I] The segment in which to allocate. */ - int size, /* [I] The amount to allocate. */ - int block_size) /* [I] Initial allocation block size, or 0 for default. */ -{ - int offset; - - if(!typelib->typelib_segment_data[segment]) { - if (!block_size) block_size = 0x2000; - - typelib->typelib_segment_block_length[segment] = block_size; - typelib->typelib_segment_data[segment] = xmalloc(block_size); - if (!typelib->typelib_segment_data[segment]) return -1; - memset(typelib->typelib_segment_data[segment], 0x57, block_size); - } - - while ((typelib->typelib_segdir[segment].length + size) > typelib->typelib_segment_block_length[segment]) { - unsigned char *block; - - block_size = typelib->typelib_segment_block_length[segment]; - block = xrealloc(typelib->typelib_segment_data[segment], block_size << 1); - - if (segment == MSFT_SEG_TYPEINFO) { - /* TypeInfos have a direct pointer to their memory space, so we have to fix them up. */ - msft_typeinfo_t *typeinfo; - - for (typeinfo = typelib->typeinfos; typeinfo; typeinfo = typeinfo->next_typeinfo) { - typeinfo->typeinfo = (void *)&block[((unsigned char *)typeinfo->typeinfo) - typelib->typelib_segment_data[segment]]; - } - } - - memset(block + block_size, 0x57, block_size); - typelib->typelib_segment_block_length[segment] = block_size << 1; - typelib->typelib_segment_data[segment] = block; - } - - offset = typelib->typelib_segdir[segment].length; - typelib->typelib_segdir[segment].length += size; - - return offset; -} - -/**************************************************************************** - * ctl2_alloc_typeinfo - * - * Allocates and initializes a typeinfo structure in a type library. - * - * RETURNS - * - * Success: The offset of the new typeinfo. - * Failure: -1 (this is invariably an out of memory condition). - */ -static int ctl2_alloc_typeinfo( - msft_typelib_t *typelib, /* [I] The type library to allocate in. */ - int nameoffset) /* [I] The offset of the name for this typeinfo. */ -{ - int offset; - MSFT_TypeInfoBase *typeinfo; - - offset = ctl2_alloc_segment(typelib, MSFT_SEG_TYPEINFO, sizeof(MSFT_TypeInfoBase), 0); - - typelib->typelib_typeinfo_offsets[typelib->typelib_header.nrtypeinfos++] = offset; - - typeinfo = (void *)(typelib->typelib_segment_data[MSFT_SEG_TYPEINFO] + offset); - - typeinfo->typekind = (typelib->typelib_header.nrtypeinfos - 1) << 16; - typeinfo->memoffset = -1; /* should be EOF if no elements */ - typeinfo->res2 = 0; - typeinfo->res3 = -1; - typeinfo->res4 = 3; - typeinfo->res5 = 0; - typeinfo->cElement = 0; - typeinfo->res7 = 0; - typeinfo->res8 = 0; - typeinfo->res9 = 0; - typeinfo->resA = 0; - typeinfo->posguid = -1; - typeinfo->flags = 0; - typeinfo->NameOffset = nameoffset; - typeinfo->version = 0; - typeinfo->docstringoffs = -1; - typeinfo->helpstringcontext = 0; - typeinfo->helpcontext = 0; - typeinfo->oCustData = -1; - typeinfo->cbSizeVft = 0; - typeinfo->cImplTypes = 0; - typeinfo->size = 0; - typeinfo->datatype1 = -1; - typeinfo->datatype2 = 0; - typeinfo->res18 = 0; - typeinfo->res19 = -1; - - return offset; -} - -/**************************************************************************** - * ctl2_alloc_guid - * - * Allocates and initializes a GUID structure in a type library. Also updates - * the GUID hash table as needed. - * - * RETURNS - * - * Success: The offset of the new GUID. - */ -static int ctl2_alloc_guid( - msft_typelib_t *typelib, /* [I] The type library to allocate in. */ - MSFT_GuidEntry *guid) /* [I] The GUID to store. */ -{ - int offset; - MSFT_GuidEntry *guid_space; - int hash_key; - - hash_key = ctl2_hash_guid(&guid->guid); - - offset = ctl2_find_guid(typelib, hash_key, &guid->guid); - if (offset != -1) return offset; - - offset = ctl2_alloc_segment(typelib, MSFT_SEG_GUID, sizeof(MSFT_GuidEntry), 0); - - guid_space = (void *)(typelib->typelib_segment_data[MSFT_SEG_GUID] + offset); - *guid_space = *guid; - - guid_space->next_hash = typelib->typelib_guidhash_segment[hash_key]; - typelib->typelib_guidhash_segment[hash_key] = offset; - - return offset; -} - -/**************************************************************************** - * ctl2_alloc_name - * - * Allocates and initializes a name within a type library. Also updates the - * name hash table as needed. - * - * RETURNS - * - * Success: The offset within the segment of the new name. - * Failure: -1 (this is invariably an out of memory condition). - */ -static int ctl2_alloc_name( - msft_typelib_t *typelib, /* [I] The type library to allocate in. */ - const char *name) /* [I] The name to store. */ -{ - int length; - int offset; - MSFT_NameIntro *name_space; - char *encoded_name; - - length = ctl2_encode_name(typelib, name, &encoded_name); - - offset = ctl2_find_name(typelib, encoded_name); - if (offset != -1) return offset; - - offset = ctl2_alloc_segment(typelib, MSFT_SEG_NAME, length + 8, 0); - - name_space = (void *)(typelib->typelib_segment_data[MSFT_SEG_NAME] + offset); - name_space->hreftype = -1; - name_space->next_hash = -1; - memcpy(&name_space->namelen, encoded_name, length); - - if (typelib->typelib_namehash_segment[encoded_name[2] & 0x7f] != -1) - name_space->next_hash = typelib->typelib_namehash_segment[encoded_name[2] & 0x7f]; - - typelib->typelib_namehash_segment[encoded_name[2] & 0x7f] = offset; - - typelib->typelib_header.nametablecount += 1; - typelib->typelib_header.nametablechars += *encoded_name; - - return offset; -} - -/**************************************************************************** - * ctl2_alloc_string - * - * Allocates and initializes a string in a type library. - * - * RETURNS - * - * Success: The offset within the segment of the new string. - * Failure: -1 (this is invariably an out of memory condition). - */ -static int ctl2_alloc_string( - msft_typelib_t *typelib, /* [I] The type library to allocate in. */ - const char *string) /* [I] The string to store. */ -{ - int length; - int offset; - unsigned char *string_space; - char *encoded_string; - - length = ctl2_encode_string(string, &encoded_string); - - for (offset = 0; offset < typelib->typelib_segdir[MSFT_SEG_STRING].length; - offset += (((typelib->typelib_segment_data[MSFT_SEG_STRING][offset + 1] << 8) | - typelib->typelib_segment_data[MSFT_SEG_STRING][offset + 0]) + 5) & ~3) { - if (!memcmp(encoded_string, typelib->typelib_segment_data[MSFT_SEG_STRING] + offset, length)) return offset; - } - - offset = ctl2_alloc_segment(typelib, MSFT_SEG_STRING, length, 0); - - string_space = typelib->typelib_segment_data[MSFT_SEG_STRING] + offset; - memcpy(string_space, encoded_string, length); - - return offset; -} - -/**************************************************************************** - * alloc_msft_importinfo - * - * Allocates and initializes an import information structure in a type library. - * - * RETURNS - * - * Success: The offset of the new importinfo. - * Failure: -1 (this is invariably an out of memory condition). - */ -static int alloc_msft_importinfo( - msft_typelib_t *typelib, /* [I] The type library to allocate in. */ - MSFT_ImpInfo *impinfo) /* [I] The import information to store. */ -{ - int offset; - MSFT_ImpInfo *impinfo_space; - - for (offset = 0; - offset < typelib->typelib_segdir[MSFT_SEG_IMPORTINFO].length; - offset += sizeof(MSFT_ImpInfo)) { - if (!memcmp(&(typelib->typelib_segment_data[MSFT_SEG_IMPORTINFO][offset]), - impinfo, sizeof(MSFT_ImpInfo))) { - return offset; - } - } - - impinfo->flags |= typelib->typelib_header.nimpinfos++; - - offset = ctl2_alloc_segment(typelib, MSFT_SEG_IMPORTINFO, sizeof(MSFT_ImpInfo), 0); - - impinfo_space = (void *)(typelib->typelib_segment_data[MSFT_SEG_IMPORTINFO] + offset); - *impinfo_space = *impinfo; - - return offset; -} - -/**************************************************************************** - * alloc_importfile - * - * Allocates and initializes an import file definition in a type library. - * - * RETURNS - * - * Success: The offset of the new importinfo. - * Failure: -1 (this is invariably an out of memory condition). - */ -static int alloc_importfile( - msft_typelib_t *typelib, /* [I] The type library to allocate in. */ - int guidoffset, /* [I] The offset to the GUID for the imported library. */ - int major_version, /* [I] The major version number of the imported library. */ - int minor_version, /* [I] The minor version number of the imported library. */ - const char *filename) /* [I] The filename of the imported library. */ -{ - int length; - int offset; - MSFT_ImpFile *importfile; - char *encoded_string; - - length = ctl2_encode_string(filename, &encoded_string); - - encoded_string[0] <<= 2; - encoded_string[0] |= 1; - - for (offset = 0; offset < typelib->typelib_segdir[MSFT_SEG_IMPORTFILES].length; - offset += (((typelib->typelib_segment_data[MSFT_SEG_IMPORTFILES][offset + 0xd] << 8) | - typelib->typelib_segment_data[MSFT_SEG_IMPORTFILES][offset + 0xc]) >> 2) + 0xc) { - if (!memcmp(encoded_string, typelib->typelib_segment_data[MSFT_SEG_IMPORTFILES] + offset + 0xc, length)) return offset; - } - - offset = ctl2_alloc_segment(typelib, MSFT_SEG_IMPORTFILES, length + 0xc, 0); - - importfile = (MSFT_ImpFile *)&typelib->typelib_segment_data[MSFT_SEG_IMPORTFILES][offset]; - importfile->guid = guidoffset; - importfile->lcid = typelib->typelib_header.lcid2; - importfile->version = major_version | (minor_version << 16); - memcpy(&importfile->filename, encoded_string, length); - - return offset; -} - -static void alloc_importinfo(msft_typelib_t *typelib, importinfo_t *importinfo) -{ - importlib_t *importlib = importinfo->importlib; - - chat("alloc_importinfo: %s\n", importinfo->name); - - if(!importlib->allocated) { - MSFT_GuidEntry guid; - int guid_idx; - - chat("allocating importlib %s\n", importlib->name); - - importlib->allocated = -1; - - memcpy(&guid.guid, &importlib->guid, sizeof(GUID)); - guid.hreftype = 2; - - guid_idx = ctl2_alloc_guid(typelib, &guid); - - alloc_importfile(typelib, guid_idx, importlib->version&0xffff, - importlib->version>>16, importlib->name); - } - - if(importinfo->offset == -1 || !(importinfo->flags & MSFT_IMPINFO_OFFSET_IS_GUID)) { - MSFT_ImpInfo impinfo; - - impinfo.flags = importinfo->flags; - impinfo.oImpFile = 0; - - if(importinfo->flags & MSFT_IMPINFO_OFFSET_IS_GUID) { - MSFT_GuidEntry guid; - - guid.hreftype = 0; - memcpy(&guid.guid, &importinfo->guid, sizeof(GUID)); - - impinfo.oGuid = ctl2_alloc_guid(typelib, &guid); - - importinfo->offset = alloc_msft_importinfo(typelib, &impinfo); - - typelib->typelib_segment_data[MSFT_SEG_GUID][impinfo.oGuid+sizeof(GUID)] - = importinfo->offset+1; - - if(!strcmp(importinfo->name, "IDispatch")) - typelib->typelib_header.dispatchpos = importinfo->offset+1; - }else { - impinfo.oGuid = importinfo->id; - importinfo->offset = alloc_msft_importinfo(typelib, &impinfo); - } - } -} - -static importinfo_t *find_importinfo(msft_typelib_t *typelib, const char *name) -{ - importlib_t *importlib; - int i; - - chat("search importlib %s\n", name); - - if(!name) - return NULL; - - LIST_FOR_EACH_ENTRY( importlib, &typelib->typelib->importlibs, importlib_t, entry ) - { - for(i=0; i < importlib->ntypeinfos; i++) { - if(!strcmp(name, importlib->importinfos[i].name)) { - chat("Found %s in importlib.\n", name); - return importlib->importinfos+i; - } - } - } - - return NULL; -} - -static void add_structure_typeinfo(msft_typelib_t *typelib, type_t *structure); -static void add_interface_typeinfo(msft_typelib_t *typelib, type_t *interface); -static void add_enum_typeinfo(msft_typelib_t *typelib, type_t *enumeration); -static void add_coclass_typeinfo(msft_typelib_t *typelib, type_t *cls); -static void add_dispinterface_typeinfo(msft_typelib_t *typelib, type_t *dispinterface); - - -/**************************************************************************** - * encode_type - * - * Encodes a type, storing information in the TYPEDESC and ARRAYDESC - * segments as needed. - * - * RETURNS - * - * Success: 0. - * Failure: -1. - */ -static int encode_type( - msft_typelib_t *typelib, /* [I] The type library in which to encode the TYPEDESC. */ - int vt, /* [I] vt to encode */ - type_t *type, /* [I] type */ - int *encoded_type, /* [O] The encoded type description. */ - int *width, /* [O] The width of the type, or NULL. */ - int *alignment, /* [O] The alignment of the type, or NULL. */ - int *decoded_size) /* [O] The total size of the unencoded TYPEDESCs, including nested descs. */ -{ - int default_type; - int scratch; - int typeoffset; - int *typedata; - int target_type; - int child_size = 0; - - chat("encode_type vt %d type %p\n", vt, type); - - default_type = 0x80000000 | (vt << 16) | vt; - if (!width) width = &scratch; - if (!alignment) alignment = &scratch; - if (!decoded_size) decoded_size = &scratch; - - - switch (vt) { - case VT_I1: - case VT_UI1: - *encoded_type = default_type; - *width = 1; - *alignment = 1; - break; - - case VT_INT: - *encoded_type = 0x80000000 | (VT_I4 << 16) | VT_INT; - if ((typelib->typelib_header.varflags & 0x0f) == SYS_WIN16) { - *width = 2; - *alignment = 2; - } else { - *width = 4; - *alignment = 4; - } - break; - - case VT_UINT: - *encoded_type = 0x80000000 | (VT_UI4 << 16) | VT_UINT; - if ((typelib->typelib_header.varflags & 0x0f) == SYS_WIN16) { - *width = 2; - *alignment = 2; - } else { - *width = 4; - *alignment = 4; - } - break; - - case VT_UI2: - case VT_I2: - case VT_BOOL: - *encoded_type = default_type; - *width = 2; - *alignment = 2; - break; - - case VT_I4: - case VT_UI4: - case VT_R4: - case VT_ERROR: - case VT_BSTR: - case VT_HRESULT: - *encoded_type = default_type; - *width = 4; - *alignment = 4; - break; - - case VT_R8: - case VT_I8: - case VT_UI8: - *encoded_type = default_type; - *width = 8; - *alignment = 8; - break; - - case VT_CY: - case VT_DATE: - *encoded_type = default_type; - *width = 8; - *alignment = 8; - break; - - case VT_DECIMAL: - *encoded_type = default_type; - *width = 16; - *alignment = 8; - break; - - case VT_VOID: - *encoded_type = 0x80000000 | (VT_EMPTY << 16) | vt; - *width = 0; - *alignment = 1; - break; - - case VT_UNKNOWN: - case VT_DISPATCH: - *encoded_type = default_type; - *width = 4; - *alignment = 4; - break; - - case VT_VARIANT: - *encoded_type = default_type; - break; - - case VT_LPSTR: - case VT_LPWSTR: - *encoded_type = 0xfffe0000 | vt; - *width = 4; - *alignment = 4; - break; - - case VT_PTR: - { - int next_vt; - for(next_vt = 0; is_ptr(type); type = type_pointer_get_ref(type)) { - next_vt = get_type_vt(type_pointer_get_ref(type)); - if (next_vt != 0) - break; - } - /* if no type found then it must be void */ - if (next_vt == 0) - next_vt = VT_VOID; - - encode_type(typelib, next_vt, type_pointer_get_ref(type), - &target_type, NULL, NULL, &child_size); - /* these types already have an implicit pointer, so we don't need to - * add another */ - if(next_vt == VT_DISPATCH || next_vt == VT_UNKNOWN) { - chat("encode_type: skipping ptr\n"); - *encoded_type = target_type; - *width = 4; - *alignment = 4; - *decoded_size = child_size; - break; - } - - for (typeoffset = 0; typeoffset < typelib->typelib_segdir[MSFT_SEG_TYPEDESC].length; typeoffset += 8) { - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - if (((typedata[0] & 0xffff) == VT_PTR) && (typedata[1] == target_type)) break; - } - - if (typeoffset == typelib->typelib_segdir[MSFT_SEG_TYPEDESC].length) { - int mix_field; - - if (target_type & 0x80000000) { - mix_field = ((target_type >> 16) & 0x3fff) | VT_BYREF; - } else { - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][target_type]; - mix_field = ((typedata[0] >> 16) == 0x7fff)? 0x7fff: 0x7ffe; - } - - typeoffset = ctl2_alloc_segment(typelib, MSFT_SEG_TYPEDESC, 8, 0); - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - - typedata[0] = (mix_field << 16) | VT_PTR; - typedata[1] = target_type; - } - - *encoded_type = typeoffset; - - *width = 4; - *alignment = 4; - *decoded_size = 8 /*sizeof(TYPEDESC)*/ + child_size; - break; - } - - - case VT_SAFEARRAY: - { - type_t *element_type = type_alias_get_aliasee(type_array_get_element(type)); - int next_vt = get_type_vt(element_type); - - encode_type(typelib, next_vt, type_alias_get_aliasee(type_array_get_element(type)), &target_type, NULL, NULL, &child_size); - - for (typeoffset = 0; typeoffset < typelib->typelib_segdir[MSFT_SEG_TYPEDESC].length; typeoffset += 8) { - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - if (((typedata[0] & 0xffff) == VT_SAFEARRAY) && (typedata[1] == target_type)) break; - } - - if (typeoffset == typelib->typelib_segdir[MSFT_SEG_TYPEDESC].length) { - int mix_field; - - if (target_type & 0x80000000) { - mix_field = ((target_type >> 16) & VT_TYPEMASK) | VT_ARRAY; - } else { - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][target_type]; - mix_field = ((typedata[0] >> 16) == 0x7fff)? 0x7fff: 0x7ffe; - } - - typeoffset = ctl2_alloc_segment(typelib, MSFT_SEG_TYPEDESC, 8, 0); - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - - typedata[0] = (mix_field << 16) | VT_SAFEARRAY; - typedata[1] = target_type; - } - - *encoded_type = typeoffset; - - *width = 4; - *alignment = 4; - *decoded_size = 8 /*sizeof(TYPEDESC)*/ + child_size; - break; - } - - - case VT_USERDEFINED: - { - int typeinfo_offset; - - /* typedef'd types without public attribute aren't included in the typelib */ - while (type->typelib_idx < 0 && type_is_alias(type) && !is_attr(type->attrs, ATTR_PUBLIC)) - type = type_alias_get_aliasee(type); - - chat("encode_type: VT_USERDEFINED - type %p name = %s real type %d idx %d\n", type, - type->name, type_get_type(type), type->typelib_idx); - - if(type->typelib_idx == -1) { - chat("encode_type: trying to ref not added type\n"); - switch (type_get_type(type)) { - case TYPE_STRUCT: - add_structure_typeinfo(typelib, type); - break; - case TYPE_INTERFACE: - add_interface_typeinfo(typelib, type); - break; - case TYPE_ENUM: - add_enum_typeinfo(typelib, type); - break; - case TYPE_COCLASS: - add_coclass_typeinfo(typelib, type); - break; - default: - error("encode_type: VT_USERDEFINED - unhandled type %d\n", - type_get_type(type)); - } - } - - typeinfo_offset = typelib->typelib_typeinfo_offsets[type->typelib_idx]; - for (typeoffset = 0; typeoffset < typelib->typelib_segdir[MSFT_SEG_TYPEDESC].length; typeoffset += 8) { - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - if ((typedata[0] == ((0x7fff << 16) | VT_USERDEFINED)) && (typedata[1] == typeinfo_offset)) break; - } - - if (typeoffset == typelib->typelib_segdir[MSFT_SEG_TYPEDESC].length) { - typeoffset = ctl2_alloc_segment(typelib, MSFT_SEG_TYPEDESC, 8, 0); - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - - typedata[0] = (0x7fff << 16) | VT_USERDEFINED; - typedata[1] = typeinfo_offset; - } - - *encoded_type = typeoffset; - *width = 0; - *alignment = 1; - break; - } - - default: - error("encode_type: unrecognized type %d.\n", vt); - *encoded_type = default_type; - *width = 0; - *alignment = 1; - break; - } - - return 0; -} - -static void dump_type(type_t *t) -{ - chat("dump_type: %p name %s type %d attrs %p\n", t, t->name, type_get_type(t), t->attrs); -} - -static int encode_var( - msft_typelib_t *typelib, /* [I] The type library in which to encode the TYPEDESC. */ - type_t *type, /* [I] The type description to encode. */ - var_t *var, /* [I] The var to encode. */ - int *encoded_type, /* [O] The encoded type description. */ - int *width, /* [O] The width of the type, or NULL. */ - int *alignment, /* [O] The alignment of the type, or NULL. */ - int *decoded_size) /* [O] The total size of the unencoded TYPEDESCs, including nested descs. */ -{ - int typeoffset; - int *typedata; - int target_type; - int child_size; - int vt; - int scratch; - - if (!width) width = &scratch; - if (!alignment) alignment = &scratch; - if (!decoded_size) decoded_size = &scratch; - *decoded_size = 0; - - chat("encode_var: var %p type %p type->name %s\n", - var, type, type->name ? type->name : "NULL"); - - if (is_array(type) && !type_array_is_decl_as_ptr(type)) { - int num_dims, elements = 1, arrayoffset; - type_t *atype; - int *arraydata; - - num_dims = 0; - for (atype = type; - is_array(atype) && !type_array_is_decl_as_ptr(atype); - atype = type_array_get_element(atype)) - ++num_dims; - - chat("array with %d dimensions\n", num_dims); - encode_var(typelib, atype, var, &target_type, width, alignment, NULL); - arrayoffset = ctl2_alloc_segment(typelib, MSFT_SEG_ARRAYDESC, (2 + 2 * num_dims) * sizeof(int), 0); - arraydata = (void *)&typelib->typelib_segment_data[MSFT_SEG_ARRAYDESC][arrayoffset]; - - arraydata[0] = target_type; - arraydata[1] = num_dims; - arraydata[1] |= ((num_dims * 2 * sizeof(int)) << 16); - - arraydata += 2; - for (atype = type; - is_array(atype) && !type_array_is_decl_as_ptr(atype); - atype = type_array_get_element(atype)) - { - arraydata[0] = type_array_get_dim(atype); - arraydata[1] = 0; - arraydata += 2; - elements *= type_array_get_dim(atype); - } - - typeoffset = ctl2_alloc_segment(typelib, MSFT_SEG_TYPEDESC, 8, 0); - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - - typedata[0] = (0x7ffe << 16) | VT_CARRAY; - typedata[1] = arrayoffset; - - *encoded_type = typeoffset; - *width = *width * elements; - *decoded_size = 20 /*sizeof(ARRAYDESC)*/ + (num_dims - 1) * 8 /*sizeof(SAFEARRAYBOUND)*/; - return 0; - } - - vt = get_type_vt(type); - if (vt == VT_PTR) { - type_t *ref = is_ptr(type) ? - type_pointer_get_ref(type) : type_array_get_element(type); - int skip_ptr = encode_var(typelib, ref, var, - &target_type, NULL, NULL, &child_size); - - if(skip_ptr == 2) { - chat("encode_var: skipping ptr\n"); - *encoded_type = target_type; - *decoded_size = child_size; - *width = 4; - *alignment = 4; - return 0; - } - - for (typeoffset = 0; typeoffset < typelib->typelib_segdir[MSFT_SEG_TYPEDESC].length; typeoffset += 8) { - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - if (((typedata[0] & 0xffff) == VT_PTR) && (typedata[1] == target_type)) break; - } - - if (typeoffset == typelib->typelib_segdir[MSFT_SEG_TYPEDESC].length) { - int mix_field; - - if (target_type & 0x80000000) { - mix_field = ((target_type >> 16) & 0x3fff) | VT_BYREF; - } else { - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][target_type]; - mix_field = ((typedata[0] >> 16) == 0x7fff)? 0x7fff: 0x7ffe; - } - - typeoffset = ctl2_alloc_segment(typelib, MSFT_SEG_TYPEDESC, 8, 0); - typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - - typedata[0] = (mix_field << 16) | VT_PTR; - typedata[1] = target_type; - } - - *encoded_type = typeoffset; - - *width = 4; - *alignment = 4; - *decoded_size = 8 /*sizeof(TYPEDESC)*/ + child_size; - return 0; - } - - dump_type(type); - - encode_type(typelib, vt, type, encoded_type, width, alignment, decoded_size); - /* these types already have an implicit pointer, so we don't need to - * add another */ - if(vt == VT_DISPATCH || vt == VT_UNKNOWN) return 2; - return 0; -} - -static unsigned int get_ulong_val(unsigned int val, int vt) -{ - switch(vt) { - case VT_I2: - case VT_BOOL: - case VT_UI2: - return val & 0xffff; - case VT_I1: - case VT_UI1: - return val & 0xff; - } - - return val; -} - -static void write_value(msft_typelib_t* typelib, int *out, int vt, const void *value) -{ - switch(vt) { - case VT_I2: - case VT_I4: - case VT_R4: - case VT_BOOL: - case VT_I1: - case VT_UI1: - case VT_UI2: - case VT_UI4: - case VT_INT: - case VT_UINT: - case VT_HRESULT: - case VT_PTR: - { - const unsigned int lv = get_ulong_val(*(const unsigned int *)value, vt); - if((lv & 0x3ffffff) == lv) { - *out = 0x80000000; - *out |= vt << 26; - *out |= lv; - } else { - int offset = ctl2_alloc_segment(typelib, MSFT_SEG_CUSTDATA, 8, 0); - *((unsigned short *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset]) = vt; - memcpy(&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+2], value, 4); - *((unsigned short *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+6]) = 0x5757; - *out = offset; - } - return; - } - case VT_BSTR: - { - const char *s = (const char *) value; - int len = strlen(s), seg_len = (len + 6 + 3) & ~0x3; - int offset = ctl2_alloc_segment(typelib, MSFT_SEG_CUSTDATA, seg_len, 0); - *((unsigned short *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset]) = vt; - memcpy(&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+2], &len, sizeof(len)); - memcpy(&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+6], value, len); - len += 6; - while(len < seg_len) { - *((char *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+len]) = 0x57; - len++; - } - *out = offset; - return; - } - - default: - warning("can't write value of type %d yet\n", vt); - } - return; -} - -static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid, - int vt, int value, int *offset) -{ - MSFT_GuidEntry guidentry; - int guidoffset; - int custoffset; - int *custdata; - int data_out; - - guidentry.guid = *guid; - - guidentry.hreftype = -1; - guidentry.next_hash = -1; - - guidoffset = ctl2_alloc_guid(typelib, &guidentry); - write_value(typelib, &data_out, vt, &value); - - custoffset = ctl2_alloc_segment(typelib, MSFT_SEG_CUSTDATAGUID, 12, 0); - - custdata = (int *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATAGUID][custoffset]; - custdata[0] = guidoffset; - custdata[1] = data_out; - custdata[2] = *offset; - *offset = custoffset; - - return S_OK; -} - -static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) -{ - int offset, name_offset; - int *typedata, typedata_size; - int i, id, next_idx; - int decoded_size, extra_attr = 0; - int num_params = 0, num_optional = 0, num_defaults = 0; - var_t *arg; - unsigned char *namedata; - const attr_t *attr; - unsigned int funcflags = 0, callconv = 4 /* CC_STDCALL */; - unsigned int funckind, invokekind = 1 /* INVOKE_FUNC */; - int help_context = 0, help_string_context = 0, help_string_offset = -1; - int entry = -1, entry_is_ord = 0; - int lcid_retval_count = 0; - - chat("add_func_desc(%p,%d)\n", typeinfo, index); - - id = ((0x6000 | (typeinfo->typeinfo->datatype2 & 0xffff)) << 16) | index; - - switch(typeinfo->typekind) { - case TKIND_DISPATCH: - funckind = 0x4; /* FUNC_DISPATCH */ - break; - case TKIND_MODULE: - funckind = 0x3; /* FUNC_STATIC */ - break; - default: - funckind = 0x1; /* FUNC_PUREVIRTUAL */ - break; - } - - if (is_local( func->attrs )) { - chat("add_func_desc: skipping local function\n"); - return S_FALSE; - } - - if (type_get_function_args(func->type)) - LIST_FOR_EACH_ENTRY( arg, type_get_function_args(func->type), var_t, entry ) - { - num_params++; - if (arg->attrs) LIST_FOR_EACH_ENTRY( attr, arg->attrs, const attr_t, entry ) { - if(attr->type == ATTR_DEFAULTVALUE) - num_defaults++; - else if(attr->type == ATTR_OPTIONAL) - num_optional++; - } - } - - chat("add_func_desc: num of params %d\n", num_params); - - name_offset = ctl2_alloc_name(typeinfo->typelib, func->name); - - if (func->attrs) LIST_FOR_EACH_ENTRY( attr, func->attrs, const attr_t, entry ) { - expr_t *expr = attr->u.pval; - switch(attr->type) { - case ATTR_BINDABLE: - funcflags |= 0x4; /* FUNCFLAG_FBINDABLE */ - break; - case ATTR_DEFAULTBIND: - funcflags |= 0x20; /* FUNCFLAG_FDEFAULTBIND */ - break; - case ATTR_DEFAULTCOLLELEM: - funcflags |= 0x100; /* FUNCFLAG_FDEFAULTCOLLELEM */ - break; - case ATTR_DISPLAYBIND: - funcflags |= 0x10; /* FUNCFLAG_FDISPLAYBIND */ - break; - case ATTR_ENTRY: - extra_attr = max(extra_attr, 3); - if (expr->type == EXPR_STRLIT || expr->type == EXPR_WSTRLIT) - entry = ctl2_alloc_string(typeinfo->typelib, attr->u.pval); - else { - entry = expr->cval; - entry_is_ord = 1; - } - break; - case ATTR_HELPCONTEXT: - extra_attr = max(extra_attr, 1); - help_context = expr->u.lval; - break; - case ATTR_HELPSTRING: - extra_attr = max(extra_attr, 2); - help_string_offset = ctl2_alloc_string(typeinfo->typelib, attr->u.pval); - break; - case ATTR_HELPSTRINGCONTEXT: - extra_attr = max(extra_attr, 6); - help_string_context = expr->u.lval; - break; - case ATTR_HIDDEN: - funcflags |= 0x40; /* FUNCFLAG_FHIDDEN */ - break; - case ATTR_ID: - id = expr->cval; - break; - case ATTR_IMMEDIATEBIND: - funcflags |= 0x1000; /* FUNCFLAG_FIMMEDIATEBIND */ - break; - case ATTR_NONBROWSABLE: - funcflags |= 0x400; /* FUNCFLAG_FNONBROWSABLE */ - break; - case ATTR_OUT: - break; - case ATTR_PROPGET: - invokekind = 0x2; /* INVOKE_PROPERTYGET */ - break; - case ATTR_PROPPUT: - invokekind = 0x4; /* INVOKE_PROPERTYPUT */ - break; - case ATTR_PROPPUTREF: - invokekind = 0x8; /* INVOKE_PROPERTYPUTREF */ - break; - /* FIXME: FUNCFLAG_FREPLACEABLE */ - case ATTR_REQUESTEDIT: - funcflags |= 0x8; /* FUNCFLAG_FREQUESTEDIT */ - break; - case ATTR_RESTRICTED: - funcflags |= 0x1; /* FUNCFLAG_FRESTRICTED */ - break; - case ATTR_SOURCE: - funcflags |= 0x2; /* FUNCFLAG_FSOURCE */ - break; - case ATTR_UIDEFAULT: - funcflags |= 0x200; /* FUNCFLAG_FUIDEFAULT */ - break; - case ATTR_USESGETLASTERROR: - funcflags |= 0x80; /* FUNCFLAG_FUSESGETLASTERROR */ - break; - case ATTR_VARARG: - if (num_optional || num_defaults) - warning("add_func_desc: ignoring vararg in function with optional or defaultvalue params\n"); - else - num_optional = -1; - break; - default: - break; - } - } - - /* allocate type data space for us */ - typedata_size = 0x18 + extra_attr * sizeof(int) + (num_params * (num_defaults ? 16 : 12)); - - if (!typeinfo->func_data) { - typeinfo->func_data = xmalloc(0x100); - typeinfo->func_data_allocated = 0x100; - typeinfo->func_data[0] = 0; - } - - if(typeinfo->func_data[0] + typedata_size + sizeof(int) > typeinfo->func_data_allocated) { - typeinfo->func_data_allocated = max(typeinfo->func_data_allocated * 2, - typeinfo->func_data[0] + typedata_size + sizeof(int)); - typeinfo->func_data = xrealloc(typeinfo->func_data, typeinfo->func_data_allocated); - } - - offset = typeinfo->func_data[0]; - typeinfo->func_data[0] += typedata_size; - typedata = typeinfo->func_data + (offset >> 2) + 1; - - - /* find func with the same name - if it exists use its id */ - for(i = 0; i < (typeinfo->typeinfo->cElement & 0xffff); i++) { - if(name_offset == typeinfo->func_names[i]) { - id = typeinfo->func_indices[i]; - break; - } - } - - /* find the first func with the same id and link via the hiword of typedata[4] */ - next_idx = index; - for(i = 0; i < (typeinfo->typeinfo->cElement & 0xffff); i++) { - if(id == typeinfo->func_indices[i]) { - next_idx = typeinfo->func_data[(typeinfo->func_offsets[i] >> 2) + 1 + 4] >> 16; - typeinfo->func_data[(typeinfo->func_offsets[i] >> 2) + 1 + 4] &= 0xffff; - typeinfo->func_data[(typeinfo->func_offsets[i] >> 2) + 1 + 4] |= (index << 16); - break; - } - } - - /* fill out the basic type information */ - typedata[0] = typedata_size | (index << 16); - encode_var(typeinfo->typelib, type_function_get_rettype(func->type), func, &typedata[1], NULL, NULL, &decoded_size); - typedata[2] = funcflags; - typedata[3] = ((52 /*sizeof(FUNCDESC)*/ + decoded_size) << 16) | typeinfo->typeinfo->cbSizeVft; - typedata[4] = (next_idx << 16) | (callconv << 8) | (invokekind << 3) | funckind; - if(num_defaults) typedata[4] |= 0x1000; - if(entry_is_ord) typedata[4] |= 0x2000; - typedata[5] = (num_optional << 16) | num_params; - - /* NOTE: High word of typedata[3] is total size of FUNCDESC + size of all ELEMDESCs for params + TYPEDESCs for pointer params and return types. */ - /* That is, total memory allocation required to reconstitute the FUNCDESC in its entirety. */ - typedata[3] += (16 /*sizeof(ELEMDESC)*/ * num_params) << 16; - typedata[3] += (24 /*sizeof(PARAMDESCEX)*/ * num_defaults) << 16; - - switch(extra_attr) { - case 6: typedata[11] = help_string_context; - case 5: typedata[10] = -1; - case 4: typedata[9] = -1; - case 3: typedata[8] = entry; - case 2: typedata[7] = help_string_offset; - case 1: typedata[6] = help_context; - case 0: - break; - default: - warning("unknown number of optional attrs\n"); - } - - if (type_get_function_args(func->type)) - { - i = 0; - LIST_FOR_EACH_ENTRY( arg, type_get_function_args(func->type), var_t, entry ) - { - int paramflags = 0; - int *paramdata = typedata + 6 + extra_attr + (num_defaults ? num_params : 0) + i * 3; - int *defaultdata = num_defaults ? typedata + 6 + extra_attr + i : NULL; - - if(defaultdata) *defaultdata = -1; - - encode_var(typeinfo->typelib, arg->type, arg, paramdata, NULL, NULL, &decoded_size); - if (arg->attrs) LIST_FOR_EACH_ENTRY( attr, arg->attrs, const attr_t, entry ) { - switch(attr->type) { - case ATTR_DEFAULTVALUE: - { - int vt; - expr_t *expr = (expr_t *)attr->u.pval; - if (type_get_type(arg->type) == TYPE_ENUM) - vt = VT_INT; - else - vt = get_type_vt(arg->type); - paramflags |= 0x30; /* PARAMFLAG_FHASDEFAULT | PARAMFLAG_FOPT */ - if (expr->type == EXPR_STRLIT || expr->type == EXPR_WSTRLIT) - { - if (vt != VT_BSTR) error("string default value applied to non-string type\n"); - chat("default value '%s'\n", expr->u.sval); - write_value(typeinfo->typelib, defaultdata, vt, expr->u.sval); - } - else - { - chat("default value %d\n", expr->cval); - write_value(typeinfo->typelib, defaultdata, vt, &expr->cval); - } - break; - } - case ATTR_IN: - paramflags |= 0x01; /* PARAMFLAG_FIN */ - break; - case ATTR_OPTIONAL: - paramflags |= 0x10; /* PARAMFLAG_FOPT */ - break; - case ATTR_OUT: - paramflags |= 0x02; /* PARAMFLAG_FOUT */ - break; - case ATTR_PARAMLCID: - paramflags |= 0x04; /* PARAMFLAG_LCID */ - lcid_retval_count++; - break; - case ATTR_RETVAL: - paramflags |= 0x08; /* PARAMFLAG_FRETVAL */ - lcid_retval_count++; - break; - default: - chat("unhandled param attr %d\n", attr->type); - break; - } - } - paramdata[1] = -1; - paramdata[2] = paramflags; - typedata[3] += decoded_size << 16; - - i++; - } - } - - if(lcid_retval_count == 1) - typedata[4] |= 0x4000; - else if(lcid_retval_count == 2) - typedata[4] |= 0x8000; - - if(typeinfo->funcs_allocated == 0) { - typeinfo->funcs_allocated = 10; - typeinfo->func_indices = xmalloc(typeinfo->funcs_allocated * sizeof(int)); - typeinfo->func_names = xmalloc(typeinfo->funcs_allocated * sizeof(int)); - typeinfo->func_offsets = xmalloc(typeinfo->funcs_allocated * sizeof(int)); - } - if(typeinfo->funcs_allocated == (typeinfo->typeinfo->cElement & 0xffff)) { - typeinfo->funcs_allocated *= 2; - typeinfo->func_indices = xrealloc(typeinfo->func_indices, typeinfo->funcs_allocated * sizeof(int)); - typeinfo->func_names = xrealloc(typeinfo->func_names, typeinfo->funcs_allocated * sizeof(int)); - typeinfo->func_offsets = xrealloc(typeinfo->func_offsets, typeinfo->funcs_allocated * sizeof(int)); - } - - /* update the index data */ - typeinfo->func_indices[typeinfo->typeinfo->cElement & 0xffff] = id; - typeinfo->func_offsets[typeinfo->typeinfo->cElement & 0xffff] = offset; - typeinfo->func_names[typeinfo->typeinfo->cElement & 0xffff] = name_offset; - - /* ??? */ - if (!typeinfo->typeinfo->res2) typeinfo->typeinfo->res2 = 0x20; - typeinfo->typeinfo->res2 <<= 1; - /* ??? */ - if (index < 2) typeinfo->typeinfo->res2 += num_params << 4; - - if (typeinfo->typeinfo->res3 == -1) typeinfo->typeinfo->res3 = 0; - typeinfo->typeinfo->res3 += 0x38 + num_params * 0x10; - if(num_defaults) typeinfo->typeinfo->res3 += num_params * 0x4; - - /* adjust size of VTBL */ - if(funckind != 0x3 /* FUNC_STATIC */) - typeinfo->typeinfo->cbSizeVft += pointer_size; - - /* Increment the number of function elements */ - typeinfo->typeinfo->cElement += 1; - - namedata = typeinfo->typelib->typelib_segment_data[MSFT_SEG_NAME] + name_offset; - if (*((INT *)namedata) == -1) { - *((INT *)namedata) = typeinfo->typelib->typelib_typeinfo_offsets[typeinfo->typeinfo->typekind >> 16]; - if(typeinfo->typekind == TKIND_MODULE) - namedata[9] |= 0x10; - } else - namedata[9] &= ~0x10; - - if(typeinfo->typekind == TKIND_MODULE) - namedata[9] |= 0x20; - - if (type_get_function_args(func->type)) - { - i = 0; - LIST_FOR_EACH_ENTRY( arg, type_get_function_args(func->type), var_t, entry ) - { - /* don't give the last arg of a [propput*] func a name */ - if(i != num_params - 1 || (invokekind != 0x4 /* INVOKE_PROPERTYPUT */ && invokekind != 0x8 /* INVOKE_PROPERTYPUTREF */)) - { - int *paramdata = typedata + 6 + extra_attr + (num_defaults ? num_params : 0) + i * 3; - offset = ctl2_alloc_name(typeinfo->typelib, arg->name); - paramdata[1] = offset; - } - i++; - } - } - return S_OK; -} - -static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var) -{ - int offset, id; - unsigned int typedata_size; - INT *typedata; - int var_datawidth; - int var_alignment; - int var_type_size, var_kind = 0 /* VAR_PERINSTANCE */; - int alignment; - int varflags = 0; - const attr_t *attr; - unsigned char *namedata; - int var_num = (typeinfo->typeinfo->cElement >> 16) & 0xffff; - - chat("add_var_desc(%d, %s)\n", index, var->name); - - id = 0x40000000 + index; - - if (var->attrs) LIST_FOR_EACH_ENTRY( attr, var->attrs, const attr_t, entry ) { - expr_t *expr = attr->u.pval; - switch(attr->type) { - case ATTR_BINDABLE: - varflags |= 0x04; /* VARFLAG_FBINDABLE */ - break; - case ATTR_DEFAULTBIND: - varflags |= 0x20; /* VARFLAG_FDEFAULTBIND */ - break; - case ATTR_DEFAULTCOLLELEM: - varflags |= 0x100; /* VARFLAG_FDEFAULTCOLLELEM */ - break; - case ATTR_DISPLAYBIND: - varflags |= 0x10; /* VARFLAG_FDISPLAYBIND */ - break; - case ATTR_HIDDEN: - varflags |= 0x40; /* VARFLAG_FHIDDEN */ - break; - case ATTR_ID: - id = expr->cval; - break; - case ATTR_IMMEDIATEBIND: - varflags |= 0x1000; /* VARFLAG_FIMMEDIATEBIND */ - break; - case ATTR_NONBROWSABLE: - varflags |= 0x400; /* VARFLAG_FNONBROWSABLE */ - break; - case ATTR_READONLY: - varflags |= 0x01; /* VARFLAG_FREADONLY */ - break; - /* FIXME: VARFLAG_FREPLACEABLE */ - case ATTR_REQUESTEDIT: - varflags |= 0x08; /* VARFLAG_FREQUESTEDIT */ - break; - case ATTR_RESTRICTED: - varflags |= 0x80; /* VARFLAG_FRESTRICTED */ - break; - case ATTR_SOURCE: - varflags |= 0x02; /* VARFLAG_FSOURCE */ - break; - case ATTR_UIDEFAULT: - varflags |= 0x0200; /* VARFLAG_FUIDEFAULT */ - break; - default: - break; - } - } - - /* allocate type data space for us */ - typedata_size = 0x14; - - if (!typeinfo->var_data) { - typeinfo->var_data = xmalloc(0x100); - typeinfo->var_data_allocated = 0x100; - typeinfo->var_data[0] = 0; - } - - if(typeinfo->var_data[0] + typedata_size + sizeof(int) > typeinfo->var_data_allocated) { - typeinfo->var_data_allocated = max(typeinfo->var_data_allocated * 2, - typeinfo->var_data[0] + typedata_size + sizeof(int)); - typeinfo->var_data = xrealloc(typeinfo->var_data, typeinfo->var_data_allocated); - } - - offset = typeinfo->var_data[0]; - typeinfo->var_data[0] += typedata_size; - typedata = typeinfo->var_data + (offset >> 2) + 1; - - /* fill out the basic type information */ - typedata[0] = typedata_size | (index << 16); - typedata[2] = varflags; - typedata[3] = (36 /*sizeof(VARDESC)*/ << 16) | 0; - - if(typeinfo->vars_allocated == 0) { - typeinfo->vars_allocated = 10; - typeinfo->var_indices = xmalloc(typeinfo->vars_allocated * sizeof(int)); - typeinfo->var_names = xmalloc(typeinfo->vars_allocated * sizeof(int)); - typeinfo->var_offsets = xmalloc(typeinfo->vars_allocated * sizeof(int)); - } - if(typeinfo->vars_allocated == var_num) { - typeinfo->vars_allocated *= 2; - typeinfo->var_indices = xrealloc(typeinfo->var_indices, typeinfo->vars_allocated * sizeof(int)); - typeinfo->var_names = xrealloc(typeinfo->var_names, typeinfo->vars_allocated * sizeof(int)); - typeinfo->var_offsets = xrealloc(typeinfo->var_offsets, typeinfo->vars_allocated * sizeof(int)); - } - /* update the index data */ - typeinfo->var_indices[var_num] = id; - typeinfo->var_names[var_num] = -1; - typeinfo->var_offsets[var_num] = offset; - - /* figure out type widths and whatnot */ - encode_var(typeinfo->typelib, var->type, var, &typedata[1], &var_datawidth, - &var_alignment, &var_type_size); - - /* pad out starting position to data width */ - typeinfo->datawidth += var_alignment - 1; - typeinfo->datawidth &= ~(var_alignment - 1); - - switch(typeinfo->typekind) { - case TKIND_ENUM: - write_value(typeinfo->typelib, &typedata[4], VT_I4, &var->eval->cval); - var_kind = 2; /* VAR_CONST */ - var_type_size += 16; /* sizeof(VARIANT) */ - typeinfo->datawidth = var_datawidth; - break; - case TKIND_RECORD: - typedata[4] = typeinfo->datawidth; - typeinfo->datawidth += var_datawidth; - break; - case TKIND_DISPATCH: - var_kind = 3; /* VAR_DISPATCH */ - typeinfo->datawidth = 4; - var_alignment = 4; - break; - default: - error("add_var_desc: unhandled type kind %d\n", typeinfo->typekind); - break; - } - - /* add type description size to total required allocation */ - typedata[3] += var_type_size << 16 | var_kind; - - /* fix type alignment */ - alignment = (typeinfo->typeinfo->typekind >> 11) & 0x1f; - if (alignment < var_alignment) { - alignment = var_alignment; - typeinfo->typeinfo->typekind &= ~0xffc0; - typeinfo->typeinfo->typekind |= alignment << 11 | alignment << 6; - } - - /* ??? */ - if (!typeinfo->typeinfo->res2) typeinfo->typeinfo->res2 = 0x1a; - if ((index == 0) || (index == 1) || (index == 2) || (index == 4) || (index == 9)) { - typeinfo->typeinfo->res2 <<= 1; - } - - /* ??? */ - if (typeinfo->typeinfo->res3 == -1) typeinfo->typeinfo->res3 = 0; - typeinfo->typeinfo->res3 += 0x2c; - - /* increment the number of variable elements */ - typeinfo->typeinfo->cElement += 0x10000; - - /* pad data width to alignment */ - typeinfo->typeinfo->size = (typeinfo->datawidth + (alignment - 1)) & ~(alignment - 1); - - offset = ctl2_alloc_name(typeinfo->typelib, var->name); - if (offset == -1) return E_OUTOFMEMORY; - - namedata = typeinfo->typelib->typelib_segment_data[MSFT_SEG_NAME] + offset; - if (*((INT *)namedata) == -1) { - *((INT *)namedata) = typeinfo->typelib->typelib_typeinfo_offsets[typeinfo->typeinfo->typekind >> 16]; - if(typeinfo->typekind != TKIND_DISPATCH) - namedata[9] |= 0x10; - } else - namedata[9] &= ~0x10; - - if (typeinfo->typekind == TKIND_ENUM) { - namedata[9] |= 0x20; - } - typeinfo->var_names[var_num] = offset; - - return S_OK; -} - -static HRESULT add_impl_type(msft_typeinfo_t *typeinfo, type_t *ref, importinfo_t *importinfo) -{ - if(importinfo) { - alloc_importinfo(typeinfo->typelib, importinfo); - typeinfo->typeinfo->datatype1 = importinfo->offset+1; - }else { - if(ref->typelib_idx == -1) - add_interface_typeinfo(typeinfo->typelib, ref); - if(ref->typelib_idx == -1) - error("add_impl_type: unable to add inherited interface\n"); - - typeinfo->typeinfo->datatype1 = typeinfo->typelib->typelib_typeinfo_offsets[ref->typelib_idx]; - } - - typeinfo->typeinfo->cImplTypes++; - return S_OK; -} - -static msft_typeinfo_t *create_msft_typeinfo(msft_typelib_t *typelib, enum type_kind kind, - const char *name, const attr_list_t *attrs) -{ - const attr_t *attr; - msft_typeinfo_t *msft_typeinfo; - int nameoffset; - int typeinfo_offset; - MSFT_TypeInfoBase *typeinfo; - MSFT_GuidEntry guidentry; - - chat("create_msft_typeinfo: name %s kind %d\n", name, kind); - - msft_typeinfo = xmalloc(sizeof(*msft_typeinfo)); - memset( msft_typeinfo, 0, sizeof(*msft_typeinfo) ); - - msft_typeinfo->typelib = typelib; - - nameoffset = ctl2_alloc_name(typelib, name); - typeinfo_offset = ctl2_alloc_typeinfo(typelib, nameoffset); - typeinfo = (MSFT_TypeInfoBase *)&typelib->typelib_segment_data[MSFT_SEG_TYPEINFO][typeinfo_offset]; - - typelib->typelib_segment_data[MSFT_SEG_NAME][nameoffset + 9] = 0x38; - *((int *)&typelib->typelib_segment_data[MSFT_SEG_NAME][nameoffset]) = typeinfo_offset; - - msft_typeinfo->typekind = kind; - msft_typeinfo->typeinfo = typeinfo; - - typeinfo->typekind |= kind | 0x20; - - if(kind == TKIND_COCLASS) - typeinfo->flags |= 0x2; /* TYPEFLAG_FCANCREATE */ - - if (attrs) LIST_FOR_EACH_ENTRY( attr, attrs, const attr_t, entry ) { - switch(attr->type) { - case ATTR_AGGREGATABLE: - if (kind == TKIND_COCLASS) - typeinfo->flags |= 0x400; /* TYPEFLAG_FAGGREGATABLE */ - break; - - case ATTR_APPOBJECT: - if (kind == TKIND_COCLASS) - typeinfo->flags |= 0x1; /* TYPEFLAG_FAPPOBJECT */ - break; - - case ATTR_CONTROL: - if (kind == TKIND_COCLASS) - typeinfo->flags |= 0x20; /* TYPEFLAG_FCONTROL */ - break; - - case ATTR_DLLNAME: - { - int offset = ctl2_alloc_string(typelib, attr->u.pval); - typeinfo->datatype1 = offset; - break; - } - - case ATTR_DUAL: - /* FIXME: check interface is compatible */ - typeinfo->typekind = (typeinfo->typekind & ~0xff) | 0x34; - typeinfo->flags |= 0x140; /* TYPEFLAG_FDUAL | TYPEFLAG_FOLEAUTOMATION */ - break; - - case ATTR_HELPCONTEXT: - { - expr_t *expr = (expr_t*)attr->u.pval; - typeinfo->helpcontext = expr->cval; - break; - } - case ATTR_HELPSTRING: - { - int offset = ctl2_alloc_string(typelib, attr->u.pval); - if (offset == -1) break; - typeinfo->docstringoffs = offset; - break; - } - case ATTR_HELPSTRINGCONTEXT: - { - expr_t *expr = (expr_t*)attr->u.pval; - typeinfo->helpstringcontext = expr->cval; - break; - } - case ATTR_HIDDEN: - typeinfo->flags |= 0x10; /* TYPEFLAG_FHIDDEN */ - break; - - case ATTR_LICENSED: - typeinfo->flags |= 0x04; /* TYPEFLAG_FLICENSED */ - break; - - case ATTR_NONCREATABLE: - typeinfo->flags &= ~0x2; /* TYPEFLAG_FCANCREATE */ - break; - - case ATTR_NONEXTENSIBLE: - typeinfo->flags |= 0x80; /* TYPEFLAG_FNONEXTENSIBLE */ - break; - - case ATTR_OLEAUTOMATION: - typeinfo->flags |= 0x100; /* TYPEFLAG_FOLEAUTOMATION */ - break; - - /* FIXME: TYPEFLAG_FPREDCLID */ - - case ATTR_PROXY: - typeinfo->flags |= 0x4000; /* TYPEFLAG_FPROXY */ - break; - - /* FIXME: TYPEFLAG_FREPLACEABLE */ - - case ATTR_RESTRICTED: - typeinfo->flags |= 0x200; /* TYPEFLAG_FRESTRICTED */ - break; - - case ATTR_UUID: - guidentry.guid = *(GUID*)attr->u.pval; - guidentry.hreftype = typelib->typelib_typeinfo_offsets[typeinfo->typekind >> 16]; - guidentry.next_hash = -1; - typeinfo->posguid = ctl2_alloc_guid(typelib, &guidentry); -#if 0 - if (IsEqualIID(guid, &IID_IDispatch)) { - typelib->typelib_header.dispatchpos = typelib->typelib_typeinfo_offsets[typeinfo->typekind >> 16]; - } -#endif - break; - - case ATTR_VERSION: - typeinfo->version = attr->u.ival; - break; - - default: - break; - } - } - - if (typelib->last_typeinfo) typelib->last_typeinfo->next_typeinfo = msft_typeinfo; - typelib->last_typeinfo = msft_typeinfo; - if (!typelib->typeinfos) typelib->typeinfos = msft_typeinfo; - - - return msft_typeinfo; -} - -static void add_dispatch(msft_typelib_t *typelib) -{ - int guid_offset, impfile_offset; - MSFT_GuidEntry guidentry; - MSFT_ImpInfo impinfo; - GUID stdole = {0x00020430,0x0000,0x0000,{0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}}; - GUID iid_idispatch = {0x00020400,0x0000,0x0000,{0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}}; - - if(typelib->typelib_header.dispatchpos != -1) return; - - guidentry.guid = stdole; - guidentry.hreftype = 2; - guidentry.next_hash = -1; - guid_offset = ctl2_alloc_guid(typelib, &guidentry); - impfile_offset = alloc_importfile(typelib, guid_offset, 2, 0, "stdole2.tlb"); - - guidentry.guid = iid_idispatch; - guidentry.hreftype = 1; - guidentry.next_hash = -1; - impinfo.flags = TKIND_INTERFACE << 24 | MSFT_IMPINFO_OFFSET_IS_GUID; - impinfo.oImpFile = impfile_offset; - impinfo.oGuid = ctl2_alloc_guid(typelib, &guidentry); - typelib->typelib_header.dispatchpos = alloc_msft_importinfo(typelib, &impinfo) | 0x01; -} - -static void add_dispinterface_typeinfo(msft_typelib_t *typelib, type_t *dispinterface) -{ - int idx = 0; - var_t *func; - var_t *var; - msft_typeinfo_t *msft_typeinfo; - - if (-1 < dispinterface->typelib_idx) - return; - - dispinterface->typelib_idx = typelib->typelib_header.nrtypeinfos; - msft_typeinfo = create_msft_typeinfo(typelib, TKIND_DISPATCH, dispinterface->name, - dispinterface->attrs); - - msft_typeinfo->typeinfo->size = 4; - msft_typeinfo->typeinfo->typekind |= 0x2100; - - msft_typeinfo->typeinfo->flags |= 0x1000; /* TYPEFLAG_FDISPATCHABLE */ - add_dispatch(typelib); - msft_typeinfo->typeinfo->cImplTypes = 1; - - /* count the no of methods, as the variable indices come after the funcs */ - if (dispinterface->details.iface->disp_methods) - LIST_FOR_EACH_ENTRY( func, dispinterface->details.iface->disp_methods, var_t, entry ) - idx++; - - if (type_dispiface_get_props(dispinterface)) - LIST_FOR_EACH_ENTRY( var, type_dispiface_get_props(dispinterface), var_t, entry ) - add_var_desc(msft_typeinfo, idx++, var); - - if (type_dispiface_get_methods(dispinterface)) - { - idx = 0; - LIST_FOR_EACH_ENTRY( func, type_dispiface_get_methods(dispinterface), var_t, entry ) - if(add_func_desc(msft_typeinfo, func, idx) == S_OK) - idx++; - } -} - -static void add_interface_typeinfo(msft_typelib_t *typelib, type_t *interface) -{ - int idx = 0; - const statement_t *stmt_func; - type_t *ref; - msft_typeinfo_t *msft_typeinfo; - importinfo_t *ref_importinfo = NULL; - int num_parents = 0, num_funcs = 0; - type_t *inherit; - const type_t *derived; - - if (-1 < interface->typelib_idx) - return; - - if (!interface->details.iface) - { - error( "interface %s is referenced but not defined\n", interface->name ); - return; - } - - if (is_attr(interface->attrs, ATTR_DISPINTERFACE)) - { - add_dispinterface_typeinfo(typelib, interface); - return; - } - - /* midl adds the parent interface first, unless the parent itself - has no parent (i.e. it stops before IUnknown). */ - - inherit = type_iface_get_inherit(interface); - - if(inherit) { - ref_importinfo = find_importinfo(typelib, inherit->name); - - if(!ref_importinfo && type_iface_get_inherit(inherit) && - inherit->typelib_idx == -1) - add_interface_typeinfo(typelib, inherit); - } - - interface->typelib_idx = typelib->typelib_header.nrtypeinfos; - msft_typeinfo = create_msft_typeinfo(typelib, TKIND_INTERFACE, interface->name, interface->attrs); - msft_typeinfo->typeinfo->size = 4; - msft_typeinfo->typeinfo->typekind |= 0x2200; - - for (derived = inherit; derived; derived = type_iface_get_inherit(derived)) - if (derived->name && !strcmp(derived->name, "IDispatch")) - msft_typeinfo->typeinfo->flags |= 0x1000; /* TYPEFLAG_FDISPATCHABLE */ - - /* can't be dual if it doesn't derive from IDispatch */ - if (!(msft_typeinfo->typeinfo->flags & 0x1000)) /* TYPEFLAG_FDISPATCHABLE */ - msft_typeinfo->typeinfo->flags &= ~0x40; /* TYPEFLAG_FDUAL */ - - if(type_iface_get_inherit(interface)) - add_impl_type(msft_typeinfo, type_iface_get_inherit(interface), - ref_importinfo); - - /* count the number of inherited interfaces and non-local functions */ - for(ref = inherit; ref; ref = type_iface_get_inherit(ref)) { - num_parents++; - STATEMENTS_FOR_EACH_FUNC( stmt_func, type_iface_get_stmts(ref) ) { - var_t *func = stmt_func->u.var; - if (!is_local(func->attrs)) num_funcs++; - } - } - msft_typeinfo->typeinfo->datatype2 = num_funcs << 16 | num_parents; - msft_typeinfo->typeinfo->cbSizeVft = num_funcs * pointer_size; - - STATEMENTS_FOR_EACH_FUNC( stmt_func, type_iface_get_stmts(interface) ) { - var_t *func = stmt_func->u.var; - if(add_func_desc(msft_typeinfo, func, idx) == S_OK) - idx++; - } -} - -static void add_structure_typeinfo(msft_typelib_t *typelib, type_t *structure) -{ - int idx = 0; - var_t *cur; - msft_typeinfo_t *msft_typeinfo; - - if (-1 < structure->typelib_idx) - return; - - structure->typelib_idx = typelib->typelib_header.nrtypeinfos; - msft_typeinfo = create_msft_typeinfo(typelib, TKIND_RECORD, structure->name, structure->attrs); - msft_typeinfo->typeinfo->size = 0; - - if (type_struct_get_fields(structure)) - LIST_FOR_EACH_ENTRY( cur, type_struct_get_fields(structure), var_t, entry ) - add_var_desc(msft_typeinfo, idx++, cur); -} - -static void add_enum_typeinfo(msft_typelib_t *typelib, type_t *enumeration) -{ - int idx = 0; - var_t *cur; - msft_typeinfo_t *msft_typeinfo; - - enumeration->typelib_idx = typelib->typelib_header.nrtypeinfos; - msft_typeinfo = create_msft_typeinfo(typelib, TKIND_ENUM, enumeration->name, enumeration->attrs); - msft_typeinfo->typeinfo->size = 0; - - if (type_enum_get_values(enumeration)) - LIST_FOR_EACH_ENTRY( cur, type_enum_get_values(enumeration), var_t, entry ) - add_var_desc(msft_typeinfo, idx++, cur); -} - -static void add_typedef_typeinfo(msft_typelib_t *typelib, type_t *tdef) -{ - msft_typeinfo_t *msft_typeinfo; - int alignment; - - if (-1 < tdef->typelib_idx) - return; - - tdef->typelib_idx = typelib->typelib_header.nrtypeinfos; - msft_typeinfo = create_msft_typeinfo(typelib, TKIND_ALIAS, tdef->name, tdef->attrs); - encode_type(typelib, get_type_vt(type_alias_get_aliasee(tdef)), - type_alias_get_aliasee(tdef), - &msft_typeinfo->typeinfo->datatype1, - &msft_typeinfo->typeinfo->size, - &alignment, &msft_typeinfo->typeinfo->datatype2); - msft_typeinfo->typeinfo->typekind |= (alignment << 11 | alignment << 6); -} - -static void add_coclass_typeinfo(msft_typelib_t *typelib, type_t *cls) -{ - msft_typeinfo_t *msft_typeinfo; - ifref_t *iref; - int num_ifaces = 0, offset, i; - MSFT_RefRecord *ref, *first = NULL, *first_source = NULL; - int have_default = 0, have_default_source = 0; - const attr_t *attr; - ifref_list_t *ifaces; - - if (-1 < cls->typelib_idx) - return; - - cls->typelib_idx = typelib->typelib_header.nrtypeinfos; - msft_typeinfo = create_msft_typeinfo(typelib, TKIND_COCLASS, cls->name, cls->attrs); - - ifaces = type_coclass_get_ifaces(cls); - if (ifaces) LIST_FOR_EACH_ENTRY( iref, ifaces, ifref_t, entry ) num_ifaces++; - - offset = msft_typeinfo->typeinfo->datatype1 = ctl2_alloc_segment(typelib, MSFT_SEG_REFERENCES, - num_ifaces * sizeof(*ref), 0); - - i = 0; - if (ifaces) LIST_FOR_EACH_ENTRY( iref, ifaces, ifref_t, entry ) { - if(iref->iface->typelib_idx == -1) - add_interface_typeinfo(typelib, iref->iface); - ref = (MSFT_RefRecord*) (typelib->typelib_segment_data[MSFT_SEG_REFERENCES] + offset + i * sizeof(*ref)); - ref->reftype = typelib->typelib_typeinfo_offsets[iref->iface->typelib_idx]; - ref->flags = 0; - ref->oCustData = -1; - ref->onext = -1; - if(i < num_ifaces - 1) - ref->onext = offset + (i + 1) * sizeof(*ref); - - if (iref->attrs) LIST_FOR_EACH_ENTRY( attr, iref->attrs, const attr_t, entry ) { - switch(attr->type) { - case ATTR_DEFAULT: - ref->flags |= 0x1; /* IMPLTYPEFLAG_FDEFAULT */ - break; - case ATTR_DEFAULTVTABLE: - ref->flags |= 0x8; /* IMPLTYPEFLAG_FDEFAULTVTABLE */ - break; - case ATTR_RESTRICTED: - ref->flags |= 0x4; /* IMPLTYPEFLAG_FRESTRICTED */ - break; - case ATTR_SOURCE: - ref->flags |= 0x2; /* IMPLTYPEFLAG_FSOURCE */ - break; - default: - warning("add_coclass_typeinfo: unhandled attr %d\n", attr->type); - } - } - if(ref->flags & 0x1) { /* IMPLTYPEFLAG_FDEFAULT */ - if(ref->flags & 0x2) /* IMPLTYPEFLAG_SOURCE */ - have_default_source = 1; - else - have_default = 1; - } - - /* If the interface is non-restricted and we haven't already had one then - remember it so that we can use it as a default later */ - if((ref->flags & 0x4) == 0) { /* IMPLTYPEFLAG_FRESTRICTED */ - if(ref->flags & 0x2) { /* IMPLTYPEFLAG_FSOURCE */ - if(!first_source) - first_source = ref; - } - else if(!first) - first = ref; - } - i++; - } - - /* If we haven't had a default interface, then set the default flags on the - first ones */ - if(!have_default && first) - first->flags |= 0x1; - if(!have_default_source && first_source) - first_source->flags |= 0x1; - - msft_typeinfo->typeinfo->cImplTypes = num_ifaces; - msft_typeinfo->typeinfo->size = 4; - msft_typeinfo->typeinfo->typekind |= 0x2200; -} - -static void add_module_typeinfo(msft_typelib_t *typelib, type_t *module) -{ - int idx = 0; - const statement_t *stmt; - msft_typeinfo_t *msft_typeinfo; - - if (-1 < module->typelib_idx) - return; - - module->typelib_idx = typelib->typelib_header.nrtypeinfos; - msft_typeinfo = create_msft_typeinfo(typelib, TKIND_MODULE, module->name, module->attrs); - msft_typeinfo->typeinfo->typekind |= 0x0a00; - - STATEMENTS_FOR_EACH_FUNC( stmt, module->details.module->stmts ) { - var_t *func = stmt->u.var; - if(add_func_desc(msft_typeinfo, func, idx) == S_OK) - idx++; - } - - msft_typeinfo->typeinfo->size = idx; -} - -static void add_type_typeinfo(msft_typelib_t *typelib, type_t *type) -{ - switch (type_get_type(type)) { - case TYPE_INTERFACE: - add_interface_typeinfo(typelib, type); - break; - case TYPE_STRUCT: - add_structure_typeinfo(typelib, type); - break; - case TYPE_ENUM: - add_enum_typeinfo(typelib, type); - break; - case TYPE_COCLASS: - add_coclass_typeinfo(typelib, type); - break; - case TYPE_BASIC: - case TYPE_POINTER: - break; - default: - error("add_entry: unhandled type 0x%x for %s\n", - type_get_type(type), type->name); - break; - } -} - -static void add_entry(msft_typelib_t *typelib, const statement_t *stmt) -{ - switch(stmt->type) { - case STMT_LIBRARY: - case STMT_IMPORT: - case STMT_CPPQUOTE: - case STMT_DECLARATION: - /* not included in typelib */ - break; - case STMT_IMPORTLIB: - /* not processed here */ - break; - case STMT_TYPEDEF: - { - const type_list_t *type_entry = stmt->u.type_list; - for (; type_entry; type_entry = type_entry->next) { - /* if the type is public then add the typedef, otherwise attempt - * to add the aliased type */ - if (is_attr(type_entry->type->attrs, ATTR_PUBLIC)) - add_typedef_typeinfo(typelib, type_entry->type); - else - add_type_typeinfo(typelib, type_alias_get_aliasee(type_entry->type)); - } - break; - } - case STMT_MODULE: - add_module_typeinfo(typelib, stmt->u.type); - break; - case STMT_TYPE: - case STMT_TYPEREF: - { - type_t *type = stmt->u.type; - add_type_typeinfo(typelib, type); - break; - } - } -} - -static void set_name(msft_typelib_t *typelib) -{ - int offset; - - offset = ctl2_alloc_name(typelib, typelib->typelib->name); - if (offset == -1) return; - typelib->typelib_header.NameOffset = offset; - return; -} - -static void set_version(msft_typelib_t *typelib) -{ - typelib->typelib_header.version = get_attrv( typelib->typelib->attrs, ATTR_VERSION ); -} - -static void set_guid(msft_typelib_t *typelib) -{ - MSFT_GuidEntry guidentry; - int offset; - void *ptr; - GUID guid = {0,0,0,{0,0,0,0,0,0}}; - - guidentry.guid = guid; - guidentry.hreftype = -2; - guidentry.next_hash = -1; - - ptr = get_attrp( typelib->typelib->attrs, ATTR_UUID ); - if (ptr) guidentry.guid = *(GUID *)ptr; - - offset = ctl2_alloc_guid(typelib, &guidentry); - typelib->typelib_header.posguid = offset; - - return; -} - -static void set_doc_string(msft_typelib_t *typelib) -{ - char *str = get_attrp( typelib->typelib->attrs, ATTR_HELPSTRING ); - - if (str) - { - int offset = ctl2_alloc_string(typelib, str); - if (offset != -1) typelib->typelib_header.helpstring = offset; - } -} - -static void set_help_file_name(msft_typelib_t *typelib) -{ - char *str = get_attrp( typelib->typelib->attrs, ATTR_HELPFILE ); - - if (str) - { - int offset = ctl2_alloc_string(typelib, str); - if (offset != -1) - { - typelib->typelib_header.helpfile = offset; - typelib->typelib_header.varflags |= 0x10; - } - } -} - -static void set_help_context(msft_typelib_t *typelib) -{ - const expr_t *expr = get_attrp( typelib->typelib->attrs, ATTR_HELPCONTEXT ); - if (expr) typelib->typelib_header.helpcontext = expr->cval; -} - -static void set_help_string_dll(msft_typelib_t *typelib) -{ - char *str = get_attrp( typelib->typelib->attrs, ATTR_HELPSTRINGDLL ); - - if (str) - { - int offset = ctl2_alloc_string(typelib, str); - if (offset != -1) - { - typelib->help_string_dll_offset = offset; - typelib->typelib_header.varflags |= 0x100; - } - } -} - -static void set_help_string_context(msft_typelib_t *typelib) -{ - const expr_t *expr = get_attrp( typelib->typelib->attrs, ATTR_HELPSTRINGCONTEXT ); - if (expr) typelib->typelib_header.helpstringcontext = expr->cval; -} - -static void set_lcid(msft_typelib_t *typelib) -{ - const expr_t *lcid_expr = get_attrp( typelib->typelib->attrs, ATTR_LIBLCID ); - if(lcid_expr) - { - typelib->typelib_header.lcid = lcid_expr->cval; - typelib->typelib_header.lcid2 = lcid_expr->cval; - } -} - -static void set_lib_flags(msft_typelib_t *typelib) -{ - const attr_t *attr; - - typelib->typelib_header.flags = 0; - if (!typelib->typelib->attrs) return; - LIST_FOR_EACH_ENTRY( attr, typelib->typelib->attrs, const attr_t, entry ) - { - switch(attr->type) { - case ATTR_CONTROL: - typelib->typelib_header.flags |= 0x02; /* LIBFLAG_FCONTROL */ - break; - case ATTR_HIDDEN: - typelib->typelib_header.flags |= 0x04; /* LIBFLAG_FHIDDEN */ - break; - case ATTR_RESTRICTED: - typelib->typelib_header.flags |= 0x01; /* LIBFLAG_FRESTRICTED */ - break; - default: - break; - } - } - return; -} - -static void ctl2_write_segment(msft_typelib_t *typelib, int segment) -{ - put_data(typelib->typelib_segment_data[segment], typelib->typelib_segdir[segment].length); -} - -static void ctl2_finalize_typeinfos(msft_typelib_t *typelib, int filesize) -{ - msft_typeinfo_t *typeinfo; - - for (typeinfo = typelib->typeinfos; typeinfo; typeinfo = typeinfo->next_typeinfo) { - typeinfo->typeinfo->memoffset = filesize; - if (typeinfo->func_data) - filesize += typeinfo->func_data[0] + ((typeinfo->typeinfo->cElement & 0xffff) * 12); - if (typeinfo->var_data) - filesize += typeinfo->var_data[0] + (((typeinfo->typeinfo->cElement >> 16) & 0xffff) * 12); - if (typeinfo->func_data || typeinfo->var_data) - filesize += 4; - } -} - -static int ctl2_finalize_segment(msft_typelib_t *typelib, int filepos, int segment) -{ - if (typelib->typelib_segdir[segment].length) { - typelib->typelib_segdir[segment].offset = filepos; - } else { - typelib->typelib_segdir[segment].offset = -1; - } - - return typelib->typelib_segdir[segment].length; -} - - -static void ctl2_write_typeinfos(msft_typelib_t *typelib) -{ - msft_typeinfo_t *typeinfo; - int typedata_size; - - for (typeinfo = typelib->typeinfos; typeinfo; typeinfo = typeinfo->next_typeinfo) { - if (!typeinfo->func_data && !typeinfo->var_data) continue; - typedata_size = 0; - if (typeinfo->func_data) - typedata_size = typeinfo->func_data[0]; - if (typeinfo->var_data) - typedata_size += typeinfo->var_data[0]; - put_data(&typedata_size, sizeof(int)); - if (typeinfo->func_data) - put_data(typeinfo->func_data + 1, typeinfo->func_data[0]); - if (typeinfo->var_data) - put_data(typeinfo->var_data + 1, typeinfo->var_data[0]); - if (typeinfo->func_indices) - put_data(typeinfo->func_indices, (typeinfo->typeinfo->cElement & 0xffff) * 4); - if (typeinfo->var_indices) - put_data(typeinfo->var_indices, (typeinfo->typeinfo->cElement >> 16) * 4); - if (typeinfo->func_names) - put_data(typeinfo->func_names, (typeinfo->typeinfo->cElement & 0xffff) * 4); - if (typeinfo->var_names) - put_data(typeinfo->var_names, (typeinfo->typeinfo->cElement >> 16) * 4); - if (typeinfo->func_offsets) - put_data(typeinfo->func_offsets, (typeinfo->typeinfo->cElement & 0xffff) * 4); - if (typeinfo->var_offsets) { - int add = 0, i, offset; - if(typeinfo->func_data) - add = typeinfo->func_data[0]; - for(i = 0; i < (typeinfo->typeinfo->cElement >> 16); i++) { - offset = typeinfo->var_offsets[i]; - offset += add; - put_data(&offset, 4); - } - } - } -} - -static void save_all_changes(msft_typelib_t *typelib) -{ - int filepos; - - chat("save_all_changes(%p)\n", typelib); - - filepos = sizeof(MSFT_Header) + sizeof(MSFT_SegDir); - if(typelib->typelib_header.varflags & 0x100) filepos += 4; /* helpstringdll */ - filepos += typelib->typelib_header.nrtypeinfos * 4; - - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_TYPEINFO); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_GUIDHASH); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_GUID); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_REFERENCES); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_IMPORTINFO); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_IMPORTFILES); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_NAMEHASH); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_NAME); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_STRING); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_TYPEDESC); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_ARRAYDESC); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_CUSTDATA); - filepos += ctl2_finalize_segment(typelib, filepos, MSFT_SEG_CUSTDATAGUID); - - ctl2_finalize_typeinfos(typelib, filepos); - - byte_swapped = 0; - init_output_buffer(); - - put_data(&typelib->typelib_header, sizeof(typelib->typelib_header)); - if(typelib->typelib_header.varflags & 0x100) - put_data(&typelib->help_string_dll_offset, sizeof(typelib->help_string_dll_offset)); - - put_data(typelib->typelib_typeinfo_offsets, typelib->typelib_header.nrtypeinfos * 4); - put_data(&typelib->typelib_segdir, sizeof(typelib->typelib_segdir)); - ctl2_write_segment( typelib, MSFT_SEG_TYPEINFO ); - ctl2_write_segment( typelib, MSFT_SEG_GUIDHASH ); - ctl2_write_segment( typelib, MSFT_SEG_GUID ); - ctl2_write_segment( typelib, MSFT_SEG_REFERENCES ); - ctl2_write_segment( typelib, MSFT_SEG_IMPORTINFO ); - ctl2_write_segment( typelib, MSFT_SEG_IMPORTFILES ); - ctl2_write_segment( typelib, MSFT_SEG_NAMEHASH ); - ctl2_write_segment( typelib, MSFT_SEG_NAME ); - ctl2_write_segment( typelib, MSFT_SEG_STRING ); - ctl2_write_segment( typelib, MSFT_SEG_TYPEDESC ); - ctl2_write_segment( typelib, MSFT_SEG_ARRAYDESC ); - ctl2_write_segment( typelib, MSFT_SEG_CUSTDATA ); - ctl2_write_segment( typelib, MSFT_SEG_CUSTDATAGUID ); - - ctl2_write_typeinfos(typelib); - - if (strendswith( typelib_name, ".res" )) /* create a binary resource file */ - { - add_output_to_resources( "TYPELIB", "#1" ); - output_typelib_regscript( typelib->typelib ); - flush_output_resources( typelib_name ); - } - else flush_output_buffer( typelib_name ); -} - -int create_msft_typelib(typelib_t *typelib) -{ - msft_typelib_t *msft; - int failed = 0; - const statement_t *stmt; - time_t cur_time; - char *time_override; - unsigned int version = 5 << 24 | 1 << 16 | 164; /* 5.01.0164 */ - GUID midl_time_guid = {0xde77ba63,0x517c,0x11d1,{0xa2,0xda,0x00,0x00,0xf8,0x77,0x3c,0xe9}}; - GUID midl_version_guid = {0xde77ba64,0x517c,0x11d1,{0xa2,0xda,0x00,0x00,0xf8,0x77,0x3c,0xe9}}; - - pointer_size = (typelib_kind == SYS_WIN64) ? 8 : 4; - - msft = xmalloc(sizeof(*msft)); - memset(msft, 0, sizeof(*msft)); - msft->typelib = typelib; - - ctl2_init_header(msft); - ctl2_init_segdir(msft); - - msft->typelib_header.varflags |= typelib_kind; - - /* - * The following two calls return an offset or -1 if out of memory. We - * specifically need an offset of 0, however, so... - */ - if (ctl2_alloc_segment(msft, MSFT_SEG_GUIDHASH, 0x80, 0x80)) { failed = 1; } - if (ctl2_alloc_segment(msft, MSFT_SEG_NAMEHASH, 0x200, 0x200)) { failed = 1; } - - if(failed) - { - free(msft); - return 0; - } - - msft->typelib_guidhash_segment = (int *)msft->typelib_segment_data[MSFT_SEG_GUIDHASH]; - msft->typelib_namehash_segment = (int *)msft->typelib_segment_data[MSFT_SEG_NAMEHASH]; - - memset(msft->typelib_guidhash_segment, 0xff, 0x80); - memset(msft->typelib_namehash_segment, 0xff, 0x200); - - set_lib_flags(msft); - set_lcid(msft); - set_help_file_name(msft); - set_doc_string(msft); - set_guid(msft); - set_version(msft); - set_name(msft); - set_help_context(msft); - set_help_string_dll(msft); - set_help_string_context(msft); - - /* midl adds two sets of custom data to the library: the current unix time - and midl's version number */ - time_override = getenv( "WIDL_TIME_OVERRIDE"); - cur_time = time_override ? atol( time_override) : time(NULL); - set_custdata(msft, &midl_time_guid, VT_UI4, cur_time, &msft->typelib_header.CustomDataOffset); - set_custdata(msft, &midl_version_guid, VT_UI4, version, &msft->typelib_header.CustomDataOffset); - - if (typelib->stmts) - LIST_FOR_EACH_ENTRY( stmt, typelib->stmts, const statement_t, entry ) - add_entry(msft, stmt); - - save_all_changes(msft); - free(msft); - return 1; -} diff --git a/reactos/tools/wpp/CMakeLists.txt b/reactos/tools/wpp/CMakeLists.txt deleted file mode 100644 index 432e48bde81..00000000000 --- a/reactos/tools/wpp/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ - -if(MSVC) - add_definitions( - -Dsnprintf=_snprintf - -Dstrtoull=_strtoui64 - -Dstrtoll=_strtoi64) - - # Add this definition for WDK only, VS 9 doesn't like that - if (DEFINED ENV{DDKBUILDENV}) - add_definitions( - -Dvsnprintf=_vsnprintf) - endif() -endif() - -list(APPEND SOURCE - lex.yy.c - preproc.c - wpp.c - ppy.tab.c) - -add_library(wpp ${SOURCE}) - -add_dependencies(wpp build_header) diff --git a/reactos/tools/wpp/lex.yy.c b/reactos/tools/wpp/lex.yy.c deleted file mode 100644 index 7a93ad74415..00000000000 --- a/reactos/tools/wpp/lex.yy.c +++ /dev/null @@ -1,4587 +0,0 @@ -#line 2 "lex.yy.c" -#line 125 "ppl.l" -#include "config.h" -#include "wine/port.h" - - - -#line 9 "lex.yy.c" - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define yy_create_buffer ppy__create_buffer -#define yy_delete_buffer ppy__delete_buffer -#define yy_flex_debug ppy__flex_debug -#define yy_init_buffer ppy__init_buffer -#define yy_flush_buffer ppy__flush_buffer -#define yy_load_buffer_state ppy__load_buffer_state -#define yy_switch_to_buffer ppy__switch_to_buffer -#define yyin ppy_in -#define yyleng ppy_leng -#define yylex ppy_lex -#define yylineno ppy_lineno -#define yyout ppy_out -#define yyrestart ppy_restart -#define yytext ppy_text -#define yywrap ppy_wrap -#define yyalloc ppy_alloc -#define yyrealloc ppy_realloc -#define yyfree ppy_free - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* First, we deal with platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -#include -#include -#include -#include - -/* end standard C headers. */ - -/* flex integer type definitions */ - -#ifndef FLEXINT_H -#define FLEXINT_H - -/* C99 systems have . Non-C99 systems may or may not. */ - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. - */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - -#include -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -#else -typedef signed char flex_int8_t; -typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; -typedef unsigned short int flex_uint16_t; -typedef unsigned int flex_uint32_t; - -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#endif /* ! C99 */ - -#endif /* ! FLEXINT_H */ - -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST -#define yyconst const -#else -#define yyconst -#endif - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START - -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE ppy_restart(ppy_in ) - -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else -#define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -extern int ppy_leng; - -extern FILE *ppy_in, *ppy_out; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) - -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up ppy_text. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up ppy_text again */ \ - } \ - while ( 0 ) - -#define unput(c) yyunput( c, (yytext_ptr) ) - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { - FILE *yy_input_file; - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - int yy_bs_lineno; /**< The line count. */ - int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via ppy_restart()), so that the user can continue scanning by - * just pointing ppy_in at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - - }; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* Stack of input buffers. */ -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ - : NULL) - -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* yy_hold_char holds the character lost when ppy_text is formed. */ -static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int ppy_leng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; -static int yy_init = 0; /* whether we need to initialize */ -static int yy_start = 0; /* start state number */ - -/* Flag which is used to allow ppy_wrap()'s to do buffer switches - * instead of setting up a fresh ppy_in. A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void ppy_restart (FILE *input_file ); -void ppy__switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE ppy__create_buffer (FILE *file,int size ); -void ppy__delete_buffer (YY_BUFFER_STATE b ); -void ppy__flush_buffer (YY_BUFFER_STATE b ); -void ppy_push_buffer_state (YY_BUFFER_STATE new_buffer ); -void ppy_pop_buffer_state (void ); - -static void ppy_ensure_buffer_stack (void ); -static void ppy__load_buffer_state (void ); -static void ppy__init_buffer (YY_BUFFER_STATE b,FILE *file ); - -#define YY_FLUSH_BUFFER ppy__flush_buffer(YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE ppy__scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE ppy__scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE ppy__scan_bytes (yyconst char *bytes,int len ); - -void *ppy_alloc (yy_size_t ); -void *ppy_realloc (void *,yy_size_t ); -void ppy_free (void * ); - -#define yy_new_buffer ppy__create_buffer - -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! YY_CURRENT_BUFFER ){ \ - ppy_ensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - ppy__create_buffer(ppy_in,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ - } - -#define yy_set_bol(at_bol) \ - { \ - if ( ! YY_CURRENT_BUFFER ){\ - ppy_ensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - ppy__create_buffer(ppy_in,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ - } - -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -/* Begin user sect3 */ - -typedef unsigned char YY_CHAR; - -FILE *ppy_in = (FILE *) 0, *ppy_out = (FILE *) 0; - -typedef int yy_state_type; - -extern int ppy_lineno; - -int ppy_lineno = 1; - -extern char *ppy_text; -#define yytext_ptr ppy_text - -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up ppy_text. - */ -#define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ - ppy_leng = (size_t) (yy_cp - yy_bp); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ - (yy_c_buf_p) = yy_cp; - -#define YY_NUM_RULES 143 -#define YY_END_OF_BUFFER 144 -/* This struct is not used in this scanner, - but its presence is necessary. */ -struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[416] = - { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 117, 117, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 144, 133, 134, 135, 121, 142, - 122, 133, 132, 133, 134, 1, 21, 16, 18, 16, - 21, 20, 17, 17, 17, 17, 17, 17, 17, 17, - 68, 71, 69, 70, 28, 25, 26, 24, 28, 23, - 28, 28, 123, 131, 124, 142, 125, 126, 142, 127, - 128, 117, 118, 117, 77, 75, 77, 77, 74, 77, - - 78, 82, 84, 83, 142, 79, 90, 86, 90, 85, - 88, 90, 90, 87, 90, 92, 100, 102, 95, 101, - 97, 96, 93, 97, 92, 106, 106, 104, 103, 106, - 114, 113, 110, 111, 107, 108, 109, 114, 114, 133, - 134, 138, 121, 138, 122, 133, 132, 133, 53, 50, - 47, 53, 52, 53, 51, 53, 33, 35, 53, 53, - 53, 53, 49, 53, 53, 58, 55, 56, 58, 54, - 58, 62, 59, 60, 62, 62, 22, 67, 64, 67, - 65, 67, 63, 67, 29, 30, 32, 32, 32, 29, - 1, 140, 143, 141, 139, 139, 133, 134, 133, 116, - - 120, 132, 136, 137, 134, 1, 16, 17, 17, 17, - 17, 17, 17, 17, 17, 18, 19, 20, 17, 17, - 17, 17, 17, 11, 17, 17, 17, 17, 17, 68, - 69, 70, 72, 70, 25, 27, 28, 123, 130, 129, - 130, 125, 127, 117, 117, 117, 119, 75, 73, 74, - 76, 77, 78, 79, 81, 79, 86, 85, 90, 87, - 91, 90, 92, 94, 97, 96, 96, 93, 99, 97, - 92, 106, 104, 103, 106, 105, 106, 114, 114, 112, - 115, 114, 133, 138, 138, 50, 44, 41, 33, 34, - 33, 33, 37, 35, 35, 35, 39, 45, 43, 46, - - 40, 48, 49, 132, 42, 55, 54, 57, 58, 59, - 61, 0, 22, 64, 63, 67, 66, 67, 29, 31, - 32, 29, 140, 139, 120, 120, 17, 17, 17, 17, - 17, 17, 11, 17, 17, 17, 17, 17, 17, 17, - 69, 80, 89, 98, 34, 34, 33, 33, 33, 36, - 35, 35, 35, 132, 120, 17, 12, 13, 17, 17, - 17, 17, 17, 17, 15, 17, 17, 17, 34, 34, - 34, 33, 36, 36, 35, 132, 17, 12, 13, 14, - 4, 7, 9, 17, 17, 15, 17, 8, 17, 34, - 36, 36, 36, 132, 3, 14, 4, 7, 9, 10, - - 17, 6, 8, 17, 36, 132, 3, 10, 2, 6, - 5, 38, 2, 5, 0 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 5, 6, 7, 1, 1, 8, 9, 10, - 11, 12, 1, 13, 1, 14, 15, 16, 17, 17, - 17, 17, 17, 17, 17, 18, 18, 1, 1, 19, - 20, 21, 1, 1, 22, 22, 22, 22, 22, 22, - 23, 23, 23, 23, 23, 24, 23, 23, 23, 23, - 23, 23, 23, 23, 25, 23, 23, 26, 23, 23, - 1, 27, 1, 1, 28, 1, 29, 30, 31, 32, - - 33, 34, 35, 36, 37, 36, 36, 38, 39, 40, - 41, 42, 36, 43, 44, 45, 46, 36, 47, 48, - 36, 36, 1, 49, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int32_t yy_meta[50] = - { 0, - 1, 2, 3, 2, 1, 4, 5, 1, 6, 7, - 8, 9, 8, 10, 11, 12, 12, 12, 1, 1, - 13, 14, 15, 15, 15, 15, 16, 17, 14, 14, - 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 1 - } ; - -static yyconst flex_int16_t yy_base[460] = - { 0, - 0, 48, 55, 0, 102, 103, 130, 0, 177, 178, - 179, 182, 186, 187, 104, 107, 214, 0, 261, 262, - 289, 0, 338, 0, 386, 389, 414, 439, 466, 0, - 515, 0, 564, 0, 399, 403, 612, 638, 665, 0, - 428, 618, 714, 763, 1130, 0, 49, 1886, 1886, 1886, - 1886, 96, 0, 109, 118, 1886, 1886, 811, 1886, 1126, - 111, 111, 858, 1095, 154, 161, 1090, 1083, 1085, 1095, - 0, 1886, 184, 124, 1886, 196, 1886, 1886, 254, 1886, - 0, 199, 0, 1886, 1886, 269, 0, 1886, 1120, 0, - 1886, 0, 1886, 263, 1886, 208, 1886, 267, 1112, 277, - - 0, 1886, 1886, 1886, 271, 281, 1886, 393, 1886, 396, - 1886, 1107, 396, 0, 406, 0, 1886, 1886, 1113, 1886, - 400, 905, 0, 418, 954, 1886, 430, 1886, 1886, 433, - 0, 1886, 1886, 1886, 1886, 1886, 1886, 432, 435, 0, - 449, 1886, 1886, 1886, 1886, 444, 0, 1003, 1886, 456, - 1886, 1099, 1886, 1110, 1886, 449, 1037, 714, 443, 1097, - 603, 0, 623, 1083, 1066, 1886, 615, 1886, 619, 0, - 632, 1886, 644, 1886, 635, 634, 635, 1886, 655, 1886, - 1886, 646, 0, 659, 0, 1886, 1886, 725, 738, 741, - 1886, 742, 1886, 1886, 0, 735, 0, 747, 741, 1886, - - 0, 0, 1886, 1111, 755, 1886, 0, 0, 1079, 747, - 754, 1074, 1067, 1069, 1079, 1886, 1886, 1104, 1069, 717, - 1070, 1058, 1067, 777, 1063, 1052, 1062, 1056, 1041, 0, - 0, 1886, 1886, 1079, 787, 1886, 1078, 0, 1886, 1886, - 1077, 0, 0, 0, 743, 765, 1886, 791, 1886, 1069, - 1886, 1075, 0, 1886, 794, 1074, 795, 798, 1062, 0, - 1886, 1071, 0, 1886, 789, 0, 1085, 0, 801, 1070, - 0, 804, 1886, 1886, 807, 1886, 1069, 0, 804, 1886, - 1886, 1068, 806, 1886, 0, 818, 1886, 1886, 847, 843, - 874, 799, 0, 905, 903, 800, 1886, 1886, 1886, 1886, - - 1886, 1886, 1066, 1026, 1886, 823, 0, 1886, 1048, 824, - 1886, 1047, 816, 871, 0, 1886, 1886, 1027, 0, 1886, - 1006, 872, 876, 0, 1134, 0, 969, 971, 948, 943, - 906, 897, 880, 875, 871, 864, 844, 835, 833, 799, - 0, 884, 1886, 890, 907, 845, 618, 863, 873, 914, - 889, 910, 912, 799, 1183, 795, 938, 942, 796, 786, - 747, 702, 695, 614, 959, 610, 598, 428, 932, 945, - 946, 1886, 947, 952, 1886, 406, 395, 975, 984, 985, - 990, 993, 994, 385, 372, 997, 365, 998, 247, 1886, - 966, 991, 994, 241, 1023, 1024, 1029, 1032, 1033, 1036, - - 153, 1037, 1040, 74, 1886, 22, 1041, 1044, 1045, 1054, - 1055, 0, 1062, 1063, 1886, 1232, 1249, 1266, 1283, 1300, - 1317, 1334, 1351, 1368, 1385, 1402, 1419, 1436, 1449, 1451, - 1468, 1485, 1502, 1519, 1536, 1553, 1570, 1587, 1598, 1615, - 1632, 1638, 1655, 1672, 1689, 1695, 1712, 1729, 1746, 1752, - 1758, 1775, 1792, 1800, 1817, 1834, 1851, 1056, 1868 - } ; - -static yyconst flex_int16_t yy_def[460] = - { 0, - 415, 1, 415, 3, 416, 416, 415, 7, 417, 417, - 418, 418, 419, 419, 420, 420, 415, 17, 421, 421, - 415, 21, 415, 23, 422, 422, 423, 423, 415, 29, - 415, 31, 415, 33, 424, 424, 425, 425, 415, 39, - 426, 426, 427, 427, 415, 428, 415, 415, 415, 415, - 415, 429, 430, 429, 415, 415, 415, 415, 415, 58, - 415, 415, 58, 63, 63, 63, 63, 63, 63, 63, - 431, 415, 432, 415, 415, 415, 415, 415, 415, 415, - 430, 415, 433, 415, 415, 434, 435, 415, 434, 436, - 415, 437, 415, 438, 415, 415, 415, 415, 439, 415, - - 440, 415, 415, 415, 441, 415, 415, 415, 415, 415, - 415, 415, 415, 442, 415, 443, 415, 415, 415, 415, - 444, 445, 446, 415, 446, 415, 415, 415, 415, 415, - 447, 415, 415, 415, 415, 415, 415, 448, 415, 428, - 415, 415, 415, 415, 415, 429, 430, 449, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 430, 415, 430, 415, 415, 415, 415, 415, 450, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 451, 452, 453, 415, 415, 415, 415, 453, - 415, 415, 415, 415, 454, 454, 428, 415, 429, 415, - - 455, 430, 415, 415, 415, 415, 58, 63, 63, 63, - 63, 63, 63, 63, 63, 415, 415, 415, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 431, - 456, 415, 415, 415, 415, 415, 415, 433, 415, 415, - 415, 435, 436, 437, 438, 438, 415, 415, 415, 439, - 415, 415, 440, 415, 415, 415, 415, 415, 415, 442, - 415, 415, 443, 415, 444, 457, 445, 446, 415, 415, - 125, 415, 415, 415, 415, 415, 415, 447, 448, 415, - 415, 415, 429, 415, 449, 415, 415, 415, 415, 415, - 415, 415, 458, 415, 415, 415, 415, 415, 415, 415, - - 415, 415, 415, 430, 415, 415, 450, 415, 415, 415, - 415, 415, 415, 415, 451, 415, 415, 415, 453, 415, - 415, 453, 415, 454, 459, 455, 63, 63, 63, 63, - 63, 63, 415, 63, 63, 63, 63, 63, 63, 63, - 456, 415, 415, 415, 415, 415, 415, 415, 415, 458, - 415, 415, 415, 430, 459, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 415, 415, - 415, 415, 415, 415, 415, 430, 63, 415, 415, 63, - 63, 63, 63, 63, 63, 415, 63, 63, 63, 415, - 415, 415, 415, 430, 63, 415, 415, 415, 415, 63, - - 63, 63, 415, 63, 415, 430, 415, 415, 63, 415, - 63, 430, 415, 415, 0, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415 - } ; - -static yyconst flex_int16_t yy_nxt[1936] = - { 0, - 46, 47, 48, 47, 46, 49, 50, 46, 51, 46, - 46, 46, 46, 46, 52, 46, 46, 46, 46, 46, - 46, 53, 53, 53, 53, 53, 54, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 46, 55, - 198, 55, 198, 412, 56, 57, 58, 59, 60, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 61, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 62, 57, 63, 63, 63, 64, 65, 63, 63, - 63, 66, 67, 63, 63, 63, 68, 63, 63, 63, - - 69, 70, 63, 57, 72, 72, 93, 200, 411, 93, - 201, 203, 204, 217, 218, 94, 73, 73, 94, 205, - 415, 205, 200, 415, 206, 201, 233, 234, 74, 74, - 75, 76, 77, 76, 75, 78, 75, 75, 75, 75, - 75, 75, 75, 75, 79, 75, 75, 75, 80, 75, - 75, 81, 81, 81, 81, 81, 82, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 75, 84, - 84, 84, 85, 85, 84, 409, 232, 88, 84, 84, - 88, 220, 223, 221, 224, 200, 222, 235, 201, 235, - - 225, 236, 237, 86, 86, 89, 91, 91, 89, 248, - 232, 248, 89, 89, 95, 96, 97, 96, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, 98, 95, - 95, 95, 95, 95, 95, 99, 99, 99, 99, 99, - 100, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 95, 102, 102, 200, 103, 103, 201, 104, - 104, 240, 241, 406, 246, 105, 105, 247, 200, 251, - 252, 201, 200, 255, 256, 201, 404, 106, 106, 107, - 108, 109, 108, 107, 107, 107, 107, 107, 107, 110, - - 107, 111, 112, 113, 107, 107, 107, 107, 107, 107, - 114, 114, 114, 114, 114, 115, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 107, 116, 116, - 117, 116, 116, 118, 119, 116, 120, 116, 116, 116, - 116, 116, 121, 122, 122, 122, 116, 116, 116, 123, - 123, 123, 123, 123, 124, 125, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 116, 127, 128, 127, - 127, 128, 127, 402, 257, 129, 257, 258, 129, 258, - - 173, 174, 173, 401, 173, 174, 173, 200, 261, 262, - 201, 200, 130, 175, 201, 130, 132, 175, 400, 133, - 269, 270, 134, 135, 136, 176, 137, 395, 138, 176, - 186, 272, 273, 272, 187, 276, 277, 281, 282, 274, - 139, 132, 188, 280, 133, 394, 201, 134, 135, 136, - 198, 137, 198, 138, 189, 415, 275, 286, 415, 286, - 200, 297, 298, 201, 389, 139, 140, 141, 142, 141, - 140, 143, 144, 140, 145, 140, 140, 140, 140, 140, - 146, 140, 140, 140, 140, 140, 140, 147, 147, 147, - 147, 147, 148, 147, 147, 147, 147, 147, 147, 147, - - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 140, 149, 150, 151, 150, 152, - 153, 149, 154, 155, 149, 149, 149, 149, 149, 156, - 157, 158, 158, 159, 160, 161, 162, 162, 162, 162, - 162, 163, 162, 162, 162, 162, 164, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 165, 166, 167, 168, 167, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 169, 166, - 166, 166, 166, 166, 166, 170, 170, 170, 170, 170, - 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, - - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 166, 76, 77, 76, 306, 78, 306, 190, - 186, 190, 300, 301, 191, 302, 303, 177, 177, 177, - 200, 388, 188, 201, 308, 309, 311, 312, 82, 76, - 77, 76, 372, 78, 189, 310, 200, 310, 387, 201, - 313, 313, 313, 177, 177, 177, 314, 200, 314, 385, - 201, 317, 318, 372, 82, 178, 179, 180, 179, 178, - 178, 178, 178, 178, 181, 181, 178, 178, 178, 182, - 178, 178, 178, 178, 178, 178, 183, 183, 183, 183, - 183, 184, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 178, 50, 192, 193, 192, 50, 194, - 50, 50, 50, 50, 50, 50, 50, 384, 196, 294, - 294, 294, 50, 50, 50, 383, 200, 295, 296, 201, - 320, 321, 322, 323, 322, 323, 200, 206, 198, 325, - 198, 295, 415, 328, 415, 415, 205, 415, 205, 296, - 329, 206, 50, 50, 192, 193, 192, 50, 194, 50, - 50, 50, 50, 50, 50, 50, 246, 196, 333, 247, - 333, 50, 50, 50, 220, 223, 221, 224, 235, 222, - 235, 382, 248, 225, 248, 342, 257, 342, 257, 258, - - 415, 258, 344, 415, 344, 272, 273, 272, 334, 276, - 277, 50, 207, 274, 207, 415, 335, 415, 415, 286, - 415, 286, 349, 353, 306, 310, 306, 310, 381, 380, - 275, 313, 313, 313, 377, 376, 349, 353, 368, 208, - 208, 208, 209, 210, 208, 208, 208, 211, 212, 208, - 208, 208, 213, 208, 208, 208, 214, 215, 208, 415, - 290, 415, 289, 289, 290, 367, 345, 346, 371, 366, - 291, 292, 314, 322, 314, 322, 365, 323, 206, 323, - 345, 333, 371, 333, 291, 342, 372, 342, 346, 208, - 208, 344, 292, 344, 208, 208, 372, 347, 348, 208, - - 372, 364, 363, 208, 208, 266, 266, 362, 266, 266, - 372, 347, 266, 375, 266, 266, 266, 266, 266, 348, - 294, 294, 294, 266, 266, 266, 351, 352, 295, 296, - 369, 370, 266, 375, 375, 375, 361, 373, 374, 378, - 351, 378, 295, 379, 369, 379, 360, 375, 352, 375, - 296, 373, 370, 266, 263, 263, 390, 263, 263, 374, - 386, 263, 386, 263, 263, 263, 263, 263, 390, 390, - 391, 392, 263, 263, 263, 393, 378, 390, 378, 359, - 358, 271, 390, 390, 391, 379, 396, 379, 396, 393, - 405, 397, 392, 397, 398, 399, 398, 399, 386, 403, - - 386, 403, 263, 283, 357, 356, 285, 283, 320, 283, - 283, 405, 283, 283, 405, 283, 283, 405, 283, 283, - 283, 283, 283, 283, 407, 396, 407, 396, 405, 317, - 397, 405, 397, 398, 399, 398, 399, 408, 410, 408, - 410, 403, 407, 403, 407, 408, 413, 408, 413, 311, - 308, 283, 289, 289, 290, 410, 414, 410, 414, 354, - 291, 292, 293, 413, 414, 413, 414, 350, 302, 350, - 281, 276, 269, 261, 291, 343, 255, 251, 249, 240, - 236, 233, 292, 340, 293, 266, 266, 339, 266, 266, - 338, 337, 266, 336, 266, 266, 266, 266, 266, 332, - - 331, 330, 327, 266, 266, 266, 217, 229, 228, 227, - 226, 219, 266, 203, 305, 304, 299, 288, 287, 264, - 259, 249, 415, 229, 228, 227, 226, 219, 216, 415, - 415, 415, 415, 266, 326, 326, 415, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 415, 415, 415, - 415, 415, 326, 326, 326, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 326, 326, 326, 415, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 415, 415, 415, 415, - - 415, 326, 326, 326, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 326, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 101, 101, 101, - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 101, 101, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - - 75, 75, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 197, 415, 415, 415, - 415, 415, 197, 197, 197, 197, 415, 197, 197, 199, - 415, 415, 415, 199, 415, 199, 199, 199, 199, 199, - 199, 199, 202, 415, 202, 202, 415, 202, 230, 230, - 415, 230, 230, 230, 230, 230, 230, 230, 415, 230, - 230, 230, 230, 415, 230, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - - 231, 231, 238, 238, 415, 415, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 415, 238, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 242, 242, 415, 242, - 242, 415, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 415, 242, 243, 243, 415, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 415, 243, 243, 415, 243, - 244, 244, 415, 244, 244, 244, 244, 244, 415, 244, - 244, 244, 244, 244, 244, 244, 244, 245, 245, 415, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - - 245, 245, 245, 245, 250, 415, 415, 415, 415, 250, - 415, 250, 250, 415, 250, 253, 253, 415, 415, 253, - 415, 253, 253, 253, 253, 415, 253, 253, 253, 253, - 415, 253, 254, 254, 254, 254, 254, 254, 254, 254, - 254, 254, 254, 254, 254, 254, 254, 254, 254, 260, - 415, 260, 260, 415, 260, 263, 263, 415, 415, 415, - 415, 263, 263, 263, 263, 415, 415, 263, 415, 415, - 415, 263, 265, 265, 415, 415, 415, 415, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 415, 265, 267, - 267, 415, 415, 415, 415, 267, 267, 267, 267, 415, - - 267, 267, 267, 267, 415, 267, 268, 415, 268, 268, - 415, 268, 278, 278, 415, 415, 278, 415, 415, 415, - 278, 278, 415, 278, 278, 278, 278, 415, 278, 279, - 279, 415, 415, 279, 415, 415, 415, 279, 279, 279, - 279, 279, 279, 279, 415, 279, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 307, 415, 307, 307, 415, 307, 315, - 415, 315, 315, 415, 315, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 319, 319, 415, 319, 415, 319, 319, 319, - - 319, 319, 415, 319, 319, 319, 319, 415, 319, 324, - 324, 324, 415, 324, 324, 324, 324, 326, 326, 415, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 341, 341, 415, 341, 341, 341, - 341, 341, 415, 341, 415, 341, 341, 341, 341, 415, - 341, 266, 266, 415, 415, 415, 415, 266, 266, 266, - 266, 415, 415, 266, 415, 415, 415, 266, 355, 355, - 415, 355, 355, 355, 355, 355, 355, 355, 355, 355, - 355, 355, 355, 355, 355, 45, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415 - } ; - -static yyconst flex_int16_t yy_chk[1936] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 47, 2, 47, 406, 2, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - - 3, 3, 3, 3, 5, 6, 15, 52, 404, 16, - 52, 54, 54, 62, 62, 15, 5, 6, 16, 55, - 54, 55, 61, 54, 55, 61, 74, 74, 5, 6, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, - 10, 11, 9, 10, 12, 401, 73, 11, 13, 14, - 12, 65, 66, 65, 66, 73, 65, 76, 73, 76, - - 66, 82, 82, 9, 10, 11, 13, 14, 12, 96, - 73, 96, 13, 14, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 19, 20, 79, 19, 20, 79, 19, - 20, 86, 86, 394, 94, 19, 20, 94, 98, 100, - 100, 98, 105, 106, 106, 105, 389, 19, 20, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 25, 25, 25, - 26, 26, 26, 387, 108, 25, 108, 110, 26, 110, - - 35, 35, 35, 385, 36, 36, 36, 113, 115, 115, - 113, 121, 25, 35, 121, 26, 27, 36, 384, 27, - 124, 124, 27, 27, 27, 35, 27, 377, 27, 36, - 41, 127, 127, 127, 41, 130, 130, 139, 139, 127, - 27, 28, 41, 138, 28, 376, 138, 28, 28, 28, - 141, 28, 141, 28, 41, 146, 127, 150, 146, 150, - 156, 159, 159, 156, 368, 28, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 37, 37, 37, 167, 37, 167, 42, - 42, 42, 161, 161, 42, 163, 163, 37, 37, 37, - 169, 367, 42, 169, 171, 171, 176, 176, 37, 38, - 38, 38, 347, 38, 42, 173, 175, 173, 366, 175, - 177, 177, 177, 38, 38, 38, 179, 182, 179, 364, - 182, 184, 184, 347, 38, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 363, 43, 158, - 158, 158, 43, 43, 43, 362, 188, 158, 158, 188, - 189, 189, 190, 192, 190, 192, 196, 190, 198, 196, - 198, 158, 199, 220, 245, 199, 205, 245, 205, 158, - 220, 205, 43, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 246, 44, 224, 246, - 224, 44, 44, 44, 210, 211, 210, 211, 235, 210, - 235, 361, 248, 211, 248, 255, 257, 255, 257, 258, - - 265, 258, 269, 265, 269, 272, 272, 272, 224, 275, - 275, 44, 58, 272, 58, 279, 224, 283, 279, 286, - 283, 286, 292, 296, 306, 310, 306, 310, 360, 359, - 272, 313, 313, 313, 356, 354, 292, 296, 340, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 63, - 290, 63, 289, 289, 289, 339, 290, 290, 346, 338, - 289, 289, 314, 322, 314, 322, 337, 323, 322, 323, - 290, 333, 346, 333, 289, 342, 348, 342, 290, 63, - 63, 344, 289, 344, 63, 63, 349, 291, 291, 63, - - 348, 336, 335, 63, 63, 122, 122, 334, 122, 122, - 349, 291, 122, 351, 122, 122, 122, 122, 122, 291, - 294, 294, 294, 122, 122, 122, 295, 295, 294, 294, - 345, 345, 122, 352, 351, 353, 332, 350, 350, 357, - 295, 357, 294, 358, 345, 358, 331, 352, 295, 353, - 294, 350, 345, 122, 125, 125, 369, 125, 125, 350, - 365, 125, 365, 125, 125, 125, 125, 125, 370, 371, - 373, 373, 125, 125, 125, 374, 378, 369, 378, 330, - 329, 125, 370, 371, 373, 379, 380, 379, 380, 374, - 391, 381, 373, 381, 382, 383, 382, 383, 386, 388, - - 386, 388, 125, 148, 328, 327, 148, 148, 321, 148, - 148, 391, 148, 148, 392, 148, 148, 393, 148, 148, - 148, 148, 148, 148, 395, 396, 395, 396, 392, 318, - 397, 393, 397, 398, 399, 398, 399, 400, 402, 400, - 402, 403, 407, 403, 407, 408, 409, 408, 409, 312, - 309, 148, 157, 157, 157, 410, 411, 410, 411, 304, - 157, 157, 157, 413, 414, 413, 414, 458, 303, 458, - 282, 277, 270, 262, 157, 259, 256, 252, 250, 241, - 237, 234, 157, 229, 157, 267, 267, 228, 267, 267, - 227, 226, 267, 225, 267, 267, 267, 267, 267, 223, - - 222, 221, 219, 267, 267, 267, 218, 215, 214, 213, - 212, 209, 267, 204, 165, 164, 160, 154, 152, 119, - 112, 99, 89, 70, 69, 68, 67, 64, 60, 45, - 0, 0, 0, 267, 325, 325, 0, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 0, 0, 0, - 0, 0, 325, 325, 325, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 325, 355, 355, 0, 355, 355, 355, 355, - 355, 355, 355, 355, 355, 355, 0, 0, 0, 0, - - 0, 355, 355, 355, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 355, 416, 416, 416, 416, 416, 416, 416, 416, - 416, 416, 416, 416, 416, 416, 416, 416, 416, 417, - 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, - 417, 417, 417, 417, 417, 417, 418, 418, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, - 418, 418, 418, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - - 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, - 420, 420, 420, 420, 420, 420, 420, 421, 421, 421, - 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, - 421, 421, 421, 421, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 423, 423, 423, 423, 423, 423, 423, 423, 423, - 423, 423, 423, 423, 423, 423, 423, 423, 424, 424, - 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, - 424, 424, 424, 424, 424, 425, 425, 425, 425, 425, - 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, - - 425, 425, 426, 426, 426, 426, 426, 426, 426, 426, - 426, 426, 426, 426, 426, 426, 426, 426, 426, 427, - 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, - 427, 427, 427, 427, 427, 427, 428, 0, 0, 0, - 0, 0, 428, 428, 428, 428, 0, 428, 428, 429, - 0, 0, 0, 429, 0, 429, 429, 429, 429, 429, - 429, 429, 430, 0, 430, 430, 0, 430, 431, 431, - 0, 431, 431, 431, 431, 431, 431, 431, 0, 431, - 431, 431, 431, 0, 431, 432, 432, 432, 432, 432, - 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, - - 432, 432, 433, 433, 0, 0, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 0, 433, 434, - 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, - 434, 434, 434, 434, 434, 434, 435, 435, 0, 435, - 435, 0, 435, 435, 435, 435, 435, 435, 435, 435, - 435, 0, 435, 436, 436, 0, 436, 436, 436, 436, - 436, 436, 436, 436, 436, 0, 436, 436, 0, 436, - 437, 437, 0, 437, 437, 437, 437, 437, 0, 437, - 437, 437, 437, 437, 437, 437, 437, 438, 438, 0, - 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, - - 438, 438, 438, 438, 439, 0, 0, 0, 0, 439, - 0, 439, 439, 0, 439, 440, 440, 0, 0, 440, - 0, 440, 440, 440, 440, 0, 440, 440, 440, 440, - 0, 440, 441, 441, 441, 441, 441, 441, 441, 441, - 441, 441, 441, 441, 441, 441, 441, 441, 441, 442, - 0, 442, 442, 0, 442, 443, 443, 0, 0, 0, - 0, 443, 443, 443, 443, 0, 0, 443, 0, 0, - 0, 443, 444, 444, 0, 0, 0, 0, 444, 444, - 444, 444, 444, 444, 444, 444, 444, 0, 444, 445, - 445, 0, 0, 0, 0, 445, 445, 445, 445, 0, - - 445, 445, 445, 445, 0, 445, 446, 0, 446, 446, - 0, 446, 447, 447, 0, 0, 447, 0, 0, 0, - 447, 447, 0, 447, 447, 447, 447, 0, 447, 448, - 448, 0, 0, 448, 0, 0, 0, 448, 448, 448, - 448, 448, 448, 448, 0, 448, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 450, 0, 450, 450, 0, 450, 451, - 0, 451, 451, 0, 451, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 453, 453, 0, 453, 0, 453, 453, 453, - - 453, 453, 0, 453, 453, 453, 453, 0, 453, 454, - 454, 454, 0, 454, 454, 454, 454, 455, 455, 0, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 456, 456, 0, 456, 456, 456, - 456, 456, 0, 456, 0, 456, 456, 456, 456, 0, - 456, 457, 457, 0, 0, 0, 0, 457, 457, 457, - 457, 0, 0, 457, 0, 0, 0, 457, 459, 459, - 0, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415 - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -extern int ppy__flex_debug; -int ppy__flex_debug = 0; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -char *ppy_text; -#line 1 "ppl.l" -/* -*-C-*- - * Wrc preprocessor lexical analysis - * - * Copyright 1999-2000 Bertho A. Stultiens (BS) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * History: - * 24-Apr-2000 BS - Started from scratch to restructure everything - * and reintegrate the source into the wine-tree. - * 04-Jan-2000 BS - Added comments about the lexicographical - * grammar to give some insight in the complexity. - * 28-Dec-1999 BS - Eliminated backing-up of the flexer by running - * `flex -b' on the source. This results in some - * weirdo extra rules, but a much faster scanner. - * 23-Dec-1999 BS - Started this file - * - *------------------------------------------------------------------------- - * The preprocessor's lexographical grammar (approximately): - * - * pp := {ws} # {ws} if {ws} {expr} {ws} \n - * | {ws} # {ws} ifdef {ws} {id} {ws} \n - * | {ws} # {ws} ifndef {ws} {id} {ws} \n - * | {ws} # {ws} elif {ws} {expr} {ws} \n - * | {ws} # {ws} else {ws} \n - * | {ws} # {ws} endif {ws} \n - * | {ws} # {ws} include {ws} < {anytext} > \n - * | {ws} # {ws} include {ws} " {anytext} " \n - * | {ws} # {ws} define {ws} {anytext} \n - * | {ws} # {ws} define( {arglist} ) {ws} {expansion} \n - * | {ws} # {ws} pragma {ws} {anytext} \n - * | {ws} # {ws} ident {ws} {anytext} \n - * | {ws} # {ws} error {ws} {anytext} \n - * | {ws} # {ws} warning {ws} {anytext} \n - * | {ws} # {ws} line {ws} " {anytext} " {number} \n - * | {ws} # {ws} {number} " {anytext} " {number} [ {number} [{number}] ] \n - * | {ws} # {ws} \n - * - * ws := [ \t\r\f\v]* - * - * expr := {expr} [+-*%^/|&] {expr} - * | {expr} {logor|logand} {expr} - * | [!~+-] {expr} - * | {expr} ? {expr} : {expr} - * - * logor := || - * - * logand := && - * - * id := [a-zA-Z_][a-zA-Z0-9_]* - * - * anytext := [^\n]* (see note) - * - * arglist := - * | {id} - * | {arglist} , {id} - * | {arglist} , {id} ... - * - * expansion := {id} - * | # {id} - * | {anytext} - * | {anytext} ## {anytext} - * - * number := [0-9]+ - * - * Note: "anytext" is not always "[^\n]*". This is because the - * trailing context must be considered as well. - * - * The only certain assumption for the preprocessor to make is that - * directives start at the beginning of the line, followed by a '#' - * and end with a newline. - * Any directive may be suffixed with a line-continuation. Also - * classical comment / *...* / (note: no comments within comments, - * therefore spaces) is considered to be a line-continuation - * (according to gcc and egcs AFAIK, ANSI is a bit vague). - * Comments have not been added to the above grammar for simplicity - * reasons. However, it is allowed to enter comment anywhere within - * the directives as long as they do not interfere with the context. - * All comments are considered to be deletable whitespace (both - * classical form "/ *...* /" and C++ form "//...\n"). - * - * All recursive scans, except for macro-expansion, are done by the - * parser, whereas the simple state transitions of non-recursive - * directives are done in the scanner. This results in the many - * exclusive start-conditions of the scanner. - * - * Macro expansions are slightly more difficult because they have to - * prescan the arguments. Parameter substitution is literal if the - * substitution is # or ## (either side). This enables new identifiers - * to be created (see 'info cpp' node Macro|Pitfalls|Prescan for more - * information). - * - * FIXME: Variable macro parameters is recognized, but not yet - * expanded. I have to reread the ANSI standard on the subject (yes, - * ANSI defines it). - * - * The following special defines are supported: - * __FILE__ -> "thissource.c" - * __LINE__ -> 123 - * __DATE__ -> "May 1 2000" - * __TIME__ -> "23:59:59" - * These macros expand, as expected, into their ANSI defined values. - * - * The same include prevention is implemented as gcc and egcs does. - * This results in faster processing because we do not read the text - * at all. Some wine-sources attempt to include the same file 4 or 5 - * times. This strategy also saves a lot blank output-lines, which in - * its turn improves the real resource scanner/parser. - * - */ - -/* - * Special flex options and exclusive scanner start-conditions - */ -#define YY_NO_INPUT 1 - - - - - - - - - - - - - - - - - - - - - -#line 164 "ppl.l" -#include -#include -#include -#include -#include -#include -#include - -#ifndef LLONG_MAX -# define LLONG_MAX ((long long)0x7fffffff << 32 | 0xffffffff) -# define LLONG_MIN (-LLONG_MAX - 1) -#endif -#ifndef ULLONG_MAX -# define ULLONG_MAX ((long long)0xffffffff << 32 | 0xffffffff) -#endif - -#ifndef HAVE_UNISTD_H -#define YY_NO_UNISTD_H -#endif - -#include "wine/wpp.h" -#include "wpp_private.h" -#include "ppy.tab.h" - -/* - * Make sure that we are running an appropriate version of flex. - */ -#if !defined(YY_FLEX_MAJOR_VERSION) || (1000 * YY_FLEX_MAJOR_VERSION + YY_FLEX_MINOR_VERSION < 2005) -#error Must use flex version 2.5.1 or higher (yy_scan_* routines are required). -#endif - -#define YY_READ_BUF_SIZE 65536 /* So we read most of a file at once */ - -#define yy_current_state() YY_START -#define yy_pp_state(x) yy_pop_state(); yy_push_state(x) - -/* - * Always update the current character position within a line - */ -#define YY_USER_ACTION pp_status.char_number+=ppy_leng; - -/* - * Buffer management for includes and expansions - */ -#define MAXBUFFERSTACK 128 /* Nesting more than 128 includes or macro expansion textss is insane */ - -typedef struct bufferstackentry { - YY_BUFFER_STATE bufferstate; /* Buffer to switch back to */ - void *filehandle; /* Handle to be used with wpp_callbacks->read */ - pp_entry_t *define; /* Points to expanding define or NULL if handling includes */ - int line_number; /* Line that we were handling */ - int char_number; /* The current position on that line */ - const char *filename; /* Filename that we were handling */ - int if_depth; /* How many #if:s deep to check matching #endif:s */ - int ncontinuations; /* Remember the continuation state */ - int should_pop; /* Set if we must pop the start-state on EOF */ - /* Include management */ - include_state_t incl; - char *include_filename; -} bufferstackentry_t; - -#define ALLOCBLOCKSIZE (1 << 10) /* Allocate these chunks at a time for string-buffers */ - -/* - * Macro expansion nesting - * We need the stack to handle expansions while scanning - * a macro's arguments. The TOS must always be the macro - * that receives the current expansion from the scanner. - */ -#define MAXMACEXPSTACK 128 /* Nesting more than 128 macro expansions is insane */ - -typedef struct macexpstackentry { - pp_entry_t *ppp; /* This macro we are scanning */ - char **args; /* With these arguments */ - char **ppargs; /* Resulting in these preprocessed arguments */ - int *nnls; /* Number of newlines per argument */ - int nargs; /* And this many arguments scanned */ - int parentheses; /* Nesting level of () */ - int curargsize; /* Current scanning argument's size */ - int curargalloc; /* Current scanning argument's block allocated */ - char *curarg; /* Current scanning argument's content */ -} macexpstackentry_t; - -#define MACROPARENTHESES() (top_macro()->parentheses) - -/* - * Prototypes - */ -static void newline(int); -static int make_number(int radix, YYSTYPE *val, const char *str, int len); -static void put_buffer(const char *s, int len); -/* Buffer management */ -static void push_buffer(pp_entry_t *ppp, char *filename, char *incname, int pop); -static bufferstackentry_t *pop_buffer(void); -/* String functions */ -static void new_string(void); -static void add_string(const char *str, int len); -static char *get_string(void); -static void put_string(void); -static int string_start(void); -/* Macro functions */ -static void push_macro(pp_entry_t *ppp); -static macexpstackentry_t *top_macro(void); -static macexpstackentry_t *pop_macro(void); -static void free_macro(macexpstackentry_t *mep); -static void add_text_to_macro(const char *text, int len); -static void macro_add_arg(int last); -static void macro_add_expansion(void); -/* Expansion */ -static void expand_special(pp_entry_t *ppp); -static void expand_define(pp_entry_t *ppp); -static void expand_macro(macexpstackentry_t *mep); - -/* - * Local variables - */ -static int ncontinuations; - -static int strbuf_idx = 0; -static int strbuf_alloc = 0; -static char *strbuffer = NULL; -static int str_startline; - -static macexpstackentry_t *macexpstack[MAXMACEXPSTACK]; -static int macexpstackidx = 0; - -static bufferstackentry_t bufferstack[MAXBUFFERSTACK]; -static int bufferstackidx = 0; - -/* - * Global variables - */ -include_state_t pp_incl_state = -{ - -1, /* state */ - NULL, /* ppp */ - 0, /* ifdepth */ - 0 /* seen_junk */ -}; - -includelogicentry_t *pp_includelogiclist = NULL; - -#define YY_INPUT(buf,result,max_size) \ - { \ - result = wpp_callbacks->read(pp_status.file, buf, max_size); \ - } - -#define BUFFERINITIALCAPACITY 256 - -void pp_writestring(const char *format, ...) -{ - va_list valist; - int len; - static char *buffer; - static int buffercapacity; - char *new_buffer; - - if(buffercapacity == 0) - { - buffer = pp_xmalloc(BUFFERINITIALCAPACITY); - if(buffer == NULL) - return; - buffercapacity = BUFFERINITIALCAPACITY; - } - - va_start(valist, format); - len = vsnprintf(buffer, buffercapacity, - format, valist); - /* If the string is longer than buffersize, vsnprintf returns - * the string length with glibc >= 2.1, -1 with glibc < 2.1 */ - while(len > buffercapacity || len < 0) - { - do - { - buffercapacity *= 2; - } while(len > buffercapacity); - - new_buffer = pp_xrealloc(buffer, buffercapacity); - if(new_buffer == NULL) - { - va_end(valist); - return; - } - buffer = new_buffer; - len = vsnprintf(buffer, buffercapacity, - format, valist); - } - va_end(valist); - - wpp_callbacks->write(buffer, len); -} - -/* - ************************************************************************** - * The scanner starts here - ************************************************************************** - */ -#line 1400 "lex.yy.c" - -#define INITIAL 0 -#define pp_pp 1 -#define pp_eol 2 -#define pp_inc 3 -#define pp_dqs 4 -#define pp_sqs 5 -#define pp_iqs 6 -#define pp_comment 7 -#define pp_def 8 -#define pp_define 9 -#define pp_macro 10 -#define pp_mbody 11 -#define pp_macign 12 -#define pp_macscan 13 -#define pp_macexp 14 -#define pp_if 15 -#define pp_ifd 16 -#define pp_endif 17 -#define pp_line 18 -#define pp_defined 19 -#define pp_ignore 20 -#define RCINCL 21 - -#ifndef YY_NO_UNISTD_H -/* Special case for "unistd.h", since it is non-ANSI. We include it way - * down here because we want the user's section 1 to have been scanned first. - * The user has a chance to override it with an option. - */ -#include -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -static int yy_init_globals (void ); - -/* Accessor methods to globals. - These are made visible to non-reentrant scanners for convenience. */ - -int ppy_lex_destroy (void ); - -int ppy_get_debug (void ); - -void ppy_set_debug (int debug_flag ); - -YY_EXTRA_TYPE ppy_get_extra (void ); - -void ppy_set_extra (YY_EXTRA_TYPE user_defined ); - -FILE *ppy_get_in (void ); - -void ppy_set_in (FILE * in_str ); - -FILE *ppy_get_out (void ); - -void ppy_set_out (FILE * out_str ); - -int ppy_get_leng (void ); - -char *ppy_get_text (void ); - -int ppy_get_lineno (void ); - -void ppy_set_lineno (int line_number ); - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int ppy_wrap (void ); -#else -extern int ppy_wrap (void ); -#endif -#endif - -#ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); -#endif - -#ifndef YY_NO_INPUT - -#ifdef __cplusplus -static int yyinput (void ); -#else -static int input (void ); -#endif - -#endif - - static int yy_start_stack_ptr = 0; - static int yy_start_stack_depth = 0; - static int *yy_start_stack = NULL; - - static void yy_push_state (int new_state ); - - static void yy_pop_state (void ); - - static int yy_top_state (void ); - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else -#define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO do { if (fwrite( ppy_text, ppy_leng, 1, ppy_out )) {} } while (0) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ - if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ - { \ - int c = '*'; \ - size_t n; \ - for ( n = 0; n < max_size && \ - (c = getc( ppy_in )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( ppy_in ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, ppy_in))==0 && ferror(ppy_in)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(ppy_in); \ - } \ - }\ -\ - -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -#endif - -/* end tables serialization structures and prototypes */ - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL_IS_OURS 1 - -extern int ppy_lex (void); - -#define YY_DECL int ppy_lex (void) -#endif /* !YY_DECL */ - -/* Code executed at the beginning of each rule, after ppy_text and ppy_leng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK break; -#endif - -#define YY_RULE_SETUP \ - if ( ppy_leng > 0 ) \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ - (ppy_text[ppy_leng - 1] == '\n'); \ - YY_USER_ACTION - -/** The main scanner function which does all the work. - */ -YY_DECL -{ - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - -#line 364 "ppl.l" - - /* - * Catch line-continuations. - * Note: Gcc keeps the line-continuations in, for example, strings - * intact. However, I prefer to remove them all so that the next - * scanner will not need to reduce the continuation state. - * - * <*>\\\n newline(0); - */ - - /* - * Detect the leading # of a preprocessor directive. - */ -#line 1633 "lex.yy.c" - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! ppy_in ) - ppy_in = stdin; - - if ( ! ppy_out ) - ppy_out = stdout; - - if ( ! YY_CURRENT_BUFFER ) { - ppy_ensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - ppy__create_buffer(ppy_in,YY_BUF_SIZE ); - } - - ppy__load_buffer_state( ); - } - - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = (yy_c_buf_p); - - /* Support of ppy_text. */ - *yy_cp = (yy_hold_char); - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = (yy_start); - yy_current_state += YY_AT_BOL(); -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 416 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_current_state != 415 ); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - -case 1: -YY_RULE_SETUP -#line 377 "ppl.l" -pp_incl_state.seen_junk++; yy_push_state(pp_pp); - YY_BREAK -/* - * Scan for the preprocessor directives - */ -case 2: -YY_RULE_SETUP -#line 382 "ppl.l" -if(yy_top_state() != pp_ignore) {yy_pp_state(pp_inc); return tINCLUDE;} else {yy_pp_state(pp_eol);} - YY_BREAK -case 3: -YY_RULE_SETUP -#line 383 "ppl.l" -yy_pp_state(yy_current_state() != pp_ignore ? pp_def : pp_eol); - YY_BREAK -case 4: -YY_RULE_SETUP -#line 384 "ppl.l" -yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tERROR; - YY_BREAK -case 5: -YY_RULE_SETUP -#line 385 "ppl.l" -yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tWARNING; - YY_BREAK -case 6: -YY_RULE_SETUP -#line 386 "ppl.l" -yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tPRAGMA; - YY_BREAK -case 7: -YY_RULE_SETUP -#line 387 "ppl.l" -yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tPPIDENT; - YY_BREAK -case 8: -YY_RULE_SETUP -#line 388 "ppl.l" -if(yy_top_state() != pp_ignore) {yy_pp_state(pp_ifd); return tUNDEF;} else {yy_pp_state(pp_eol);} - YY_BREAK -case 9: -YY_RULE_SETUP -#line 389 "ppl.l" -yy_pp_state(pp_ifd); return tIFDEF; - YY_BREAK -case 10: -YY_RULE_SETUP -#line 390 "ppl.l" -pp_incl_state.seen_junk--; yy_pp_state(pp_ifd); return tIFNDEF; - YY_BREAK -case 11: -YY_RULE_SETUP -#line 391 "ppl.l" -yy_pp_state(pp_if); return tIF; - YY_BREAK -case 12: -YY_RULE_SETUP -#line 392 "ppl.l" -yy_pp_state(pp_if); return tELIF; - YY_BREAK -case 13: -YY_RULE_SETUP -#line 393 "ppl.l" -yy_pp_state(pp_endif); return tELSE; - YY_BREAK -case 14: -YY_RULE_SETUP -#line 394 "ppl.l" -yy_pp_state(pp_endif); return tENDIF; - YY_BREAK -case 15: -YY_RULE_SETUP -#line 395 "ppl.l" -if(yy_top_state() != pp_ignore) {yy_pp_state(pp_line); return tLINE;} else {yy_pp_state(pp_eol);} - YY_BREAK -case 16: -YY_RULE_SETUP -#line 396 "ppl.l" -if(yy_top_state() != pp_ignore) {yy_pp_state(pp_line); return tGCCLINE;} else {yy_pp_state(pp_eol);} - YY_BREAK -case 17: -YY_RULE_SETUP -#line 397 "ppl.l" -ppy_error("Invalid preprocessor token '%s'", ppy_text); - YY_BREAK -case 18: -/* rule 18 can match eol */ -YY_RULE_SETUP -#line 398 "ppl.l" -newline(1); yy_pop_state(); return tNL; /* This could be the null-token */ - YY_BREAK -case 19: -/* rule 19 can match eol */ -YY_RULE_SETUP -#line 399 "ppl.l" -newline(0); - YY_BREAK -case 20: -YY_RULE_SETUP -#line 400 "ppl.l" -ppy_error("Preprocessor junk '%s'", ppy_text); - YY_BREAK -case 21: -YY_RULE_SETUP -#line 401 "ppl.l" -return *ppy_text; - YY_BREAK -/* - * Handle #include and #line - */ -case 22: -YY_RULE_SETUP -#line 406 "ppl.l" -return make_number(10, &ppy_lval, ppy_text, ppy_leng); - YY_BREAK -case 23: -YY_RULE_SETUP -#line 407 "ppl.l" -new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_iqs); - YY_BREAK -case 24: -YY_RULE_SETUP -#line 408 "ppl.l" -new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); - YY_BREAK -case 25: -YY_RULE_SETUP -#line 409 "ppl.l" -; - YY_BREAK -case 26: -/* rule 26 can match eol */ -YY_RULE_SETUP -#line 410 "ppl.l" -newline(1); yy_pop_state(); return tNL; - YY_BREAK -case 27: -/* rule 27 can match eol */ -YY_RULE_SETUP -#line 411 "ppl.l" -newline(0); - YY_BREAK -case 28: -YY_RULE_SETUP -#line 412 "ppl.l" -ppy_error(yy_current_state() == pp_inc ? "Trailing junk in #include" : "Trailing junk in #line"); - YY_BREAK -/* - * Ignore all input when a false clause is parsed - */ -case 29: -YY_RULE_SETUP -#line 417 "ppl.l" -; - YY_BREAK -case 30: -/* rule 30 can match eol */ -YY_RULE_SETUP -#line 418 "ppl.l" -newline(1); - YY_BREAK -case 31: -/* rule 31 can match eol */ -YY_RULE_SETUP -#line 419 "ppl.l" -newline(0); - YY_BREAK -case 32: -YY_RULE_SETUP -#line 420 "ppl.l" -; - YY_BREAK -/* - * Handle #if and #elif. - * These require conditionals to be evaluated, but we do not - * want to jam the scanner normally when we see these tokens. - * Note: tIDENT is handled below. - */ -case 33: -YY_RULE_SETUP -#line 429 "ppl.l" -return make_number(8, &ppy_lval, ppy_text, ppy_leng); - YY_BREAK -case 34: -YY_RULE_SETUP -#line 430 "ppl.l" -ppy_error("Invalid octal digit"); - YY_BREAK -case 35: -YY_RULE_SETUP -#line 431 "ppl.l" -return make_number(10, &ppy_lval, ppy_text, ppy_leng); - YY_BREAK -case 36: -YY_RULE_SETUP -#line 432 "ppl.l" -return make_number(16, &ppy_lval, ppy_text, ppy_leng); - YY_BREAK -case 37: -YY_RULE_SETUP -#line 433 "ppl.l" -ppy_error("Invalid hex number"); - YY_BREAK -case 38: -YY_RULE_SETUP -#line 434 "ppl.l" -yy_push_state(pp_defined); return tDEFINED; - YY_BREAK -case 39: -YY_RULE_SETUP -#line 435 "ppl.l" -return tLSHIFT; - YY_BREAK -case 40: -YY_RULE_SETUP -#line 436 "ppl.l" -return tRSHIFT; - YY_BREAK -case 41: -YY_RULE_SETUP -#line 437 "ppl.l" -return tLOGAND; - YY_BREAK -case 42: -YY_RULE_SETUP -#line 438 "ppl.l" -return tLOGOR; - YY_BREAK -case 43: -YY_RULE_SETUP -#line 439 "ppl.l" -return tEQ; - YY_BREAK -case 44: -YY_RULE_SETUP -#line 440 "ppl.l" -return tNE; - YY_BREAK -case 45: -YY_RULE_SETUP -#line 441 "ppl.l" -return tLTE; - YY_BREAK -case 46: -YY_RULE_SETUP -#line 442 "ppl.l" -return tGTE; - YY_BREAK -case 47: -/* rule 47 can match eol */ -YY_RULE_SETUP -#line 443 "ppl.l" -newline(1); yy_pop_state(); return tNL; - YY_BREAK -case 48: -/* rule 48 can match eol */ -YY_RULE_SETUP -#line 444 "ppl.l" -newline(0); - YY_BREAK -case 49: -YY_RULE_SETUP -#line 445 "ppl.l" -ppy_error("Junk in conditional expression"); - YY_BREAK -case 50: -YY_RULE_SETUP -#line 446 "ppl.l" -; - YY_BREAK -case 51: -YY_RULE_SETUP -#line 447 "ppl.l" -new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); - YY_BREAK -case 52: -YY_RULE_SETUP -#line 448 "ppl.l" -ppy_error("String constants not allowed in conditionals"); - YY_BREAK -case 53: -YY_RULE_SETUP -#line 449 "ppl.l" -return *ppy_text; - YY_BREAK -/* - * Handle #ifdef, #ifndef and #undef - * to get only an untranslated/unexpanded identifier - */ -case 54: -YY_RULE_SETUP -#line 455 "ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; - YY_BREAK -case 55: -YY_RULE_SETUP -#line 456 "ppl.l" -; - YY_BREAK -case 56: -/* rule 56 can match eol */ -YY_RULE_SETUP -#line 457 "ppl.l" -newline(1); yy_pop_state(); return tNL; - YY_BREAK -case 57: -/* rule 57 can match eol */ -YY_RULE_SETUP -#line 458 "ppl.l" -newline(0); - YY_BREAK -case 58: -YY_RULE_SETUP -#line 459 "ppl.l" -ppy_error("Identifier expected"); - YY_BREAK -/* - * Handle #else and #endif. - */ -case 59: -YY_RULE_SETUP -#line 464 "ppl.l" -; - YY_BREAK -case 60: -/* rule 60 can match eol */ -YY_RULE_SETUP -#line 465 "ppl.l" -newline(1); yy_pop_state(); return tNL; - YY_BREAK -case 61: -/* rule 61 can match eol */ -YY_RULE_SETUP -#line 466 "ppl.l" -newline(0); - YY_BREAK -case 62: -YY_RULE_SETUP -#line 467 "ppl.l" -ppy_error("Garbage after #else or #endif."); - YY_BREAK -/* - * Handle the special 'defined' keyword. - * This is necessary to get the identifier prior to any - * substitutions. - */ -case 63: -YY_RULE_SETUP -#line 474 "ppl.l" -yy_pop_state(); ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; - YY_BREAK -case 64: -YY_RULE_SETUP -#line 475 "ppl.l" -; - YY_BREAK -case 65: -YY_RULE_SETUP -#line 476 "ppl.l" -return *ppy_text; - YY_BREAK -case 66: -/* rule 66 can match eol */ -YY_RULE_SETUP -#line 477 "ppl.l" -newline(0); - YY_BREAK -case 67: -/* rule 67 can match eol */ -YY_RULE_SETUP -#line 478 "ppl.l" -ppy_error("Identifier expected"); - YY_BREAK -/* - * Handle #error, #warning, #pragma and #ident. - * Pass everything literally to the parser, which - * will act appropriately. - * Comments are stripped from the literal text. - */ -case 68: -YY_RULE_SETUP -#line 486 "ppl.l" -if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } - YY_BREAK -case 69: -YY_RULE_SETUP -#line 487 "ppl.l" -if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } - YY_BREAK -case 70: -/* rule 70 can match eol */ -YY_RULE_SETUP -#line 488 "ppl.l" -if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } - YY_BREAK -case 71: -/* rule 71 can match eol */ -YY_RULE_SETUP -#line 489 "ppl.l" -newline(1); yy_pop_state(); if(yy_current_state() != pp_ignore) { return tNL; } - YY_BREAK -case 72: -/* rule 72 can match eol */ -YY_RULE_SETUP -#line 490 "ppl.l" -newline(0); - YY_BREAK -/* - * Handle left side of #define - */ -case 73: -YY_RULE_SETUP -#line 495 "ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); if(ppy_lval.cptr) ppy_lval.cptr[ppy_leng-1] = '\0'; yy_pp_state(pp_macro); return tMACRO; - YY_BREAK -case 74: -YY_RULE_SETUP -#line 496 "ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); yy_pp_state(pp_define); return tDEFINE; - YY_BREAK -case 75: -YY_RULE_SETUP -#line 497 "ppl.l" -; - YY_BREAK -case 76: -/* rule 76 can match eol */ -YY_RULE_SETUP -#line 498 "ppl.l" -newline(0); - YY_BREAK -case 77: -/* rule 77 can match eol */ -YY_RULE_SETUP -#line 499 "ppl.l" -perror("Identifier expected"); - YY_BREAK -/* - * Scan the substitution of a define - */ -case 78: -YY_RULE_SETUP -#line 504 "ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; - YY_BREAK -case 79: -/* rule 79 can match eol */ -YY_RULE_SETUP -#line 505 "ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; - YY_BREAK -case 80: -/* rule 80 can match eol */ -YY_RULE_SETUP -#line 506 "ppl.l" -newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL; - YY_BREAK -case 81: -/* rule 81 can match eol */ -YY_RULE_SETUP -#line 507 "ppl.l" -newline(0); - YY_BREAK -case 82: -/* rule 82 can match eol */ -YY_RULE_SETUP -#line 508 "ppl.l" -newline(1); yy_pop_state(); return tNL; - YY_BREAK -case 83: -YY_RULE_SETUP -#line 509 "ppl.l" -new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); - YY_BREAK -case 84: -YY_RULE_SETUP -#line 510 "ppl.l" -new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); - YY_BREAK -/* - * Scan the definition macro arguments - */ -case 85: -YY_RULE_SETUP -#line 515 "ppl.l" -yy_pp_state(pp_mbody); return tMACROEND; - YY_BREAK -case 86: -YY_RULE_SETUP -#line 516 "ppl.l" -; - YY_BREAK -case 87: -YY_RULE_SETUP -#line 517 "ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; - YY_BREAK -case 88: -YY_RULE_SETUP -#line 518 "ppl.l" -return ','; - YY_BREAK -case 89: -YY_RULE_SETUP -#line 519 "ppl.l" -return tELIPSIS; - YY_BREAK -case 90: -/* rule 90 can match eol */ -YY_RULE_SETUP -#line 520 "ppl.l" -ppy_error("Argument identifier expected"); - YY_BREAK -case 91: -/* rule 91 can match eol */ -YY_RULE_SETUP -#line 521 "ppl.l" -newline(0); - YY_BREAK -/* - * Scan the substitution of a macro - */ -case 92: -YY_RULE_SETUP -#line 526 "ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; - YY_BREAK -case 93: -YY_RULE_SETUP -#line 527 "ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; - YY_BREAK -case 94: -YY_RULE_SETUP -#line 528 "ppl.l" -return tCONCAT; - YY_BREAK -case 95: -YY_RULE_SETUP -#line 529 "ppl.l" -return tSTRINGIZE; - YY_BREAK -case 96: -YY_RULE_SETUP -#line 530 "ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; - YY_BREAK -case 97: -YY_RULE_SETUP -#line 531 "ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; - YY_BREAK -case 98: -/* rule 98 can match eol */ -YY_RULE_SETUP -#line 532 "ppl.l" -newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL; - YY_BREAK -case 99: -/* rule 99 can match eol */ -YY_RULE_SETUP -#line 533 "ppl.l" -newline(0); - YY_BREAK -case 100: -/* rule 100 can match eol */ -YY_RULE_SETUP -#line 534 "ppl.l" -newline(1); yy_pop_state(); return tNL; - YY_BREAK -case 101: -YY_RULE_SETUP -#line 535 "ppl.l" -new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); - YY_BREAK -case 102: -YY_RULE_SETUP -#line 536 "ppl.l" -new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); - YY_BREAK -/* - * Macro expansion text scanning. - * This state is active just after the identifier is scanned - * that triggers an expansion. We *must* delete the leading - * whitespace before we can start scanning for arguments. - * - * If we do not see a '(' as next trailing token, then we have - * a false alarm. We just continue with a nose-bleed... - */ -case 103: -*yy_cp = (yy_hold_char); /* undo effects of setting up ppy_text */ -(yy_c_buf_p) = yy_cp -= 1; -YY_DO_BEFORE_ACTION; /* set up ppy_text again */ -YY_RULE_SETUP -#line 547 "ppl.l" -yy_pp_state(pp_macscan); - YY_BREAK -case 104: -/* rule 104 can match eol */ -YY_RULE_SETUP -#line 548 "ppl.l" -{ - if(yy_top_state() != pp_macscan) - newline(0); - } - YY_BREAK -case 105: -/* rule 105 can match eol */ -YY_RULE_SETUP -#line 552 "ppl.l" -newline(0); - YY_BREAK -case 106: -YY_RULE_SETUP -#line 553 "ppl.l" -{ - macexpstackentry_t *mac = pop_macro(); - yy_pop_state(); - put_buffer(mac->ppp->ident, strlen(mac->ppp->ident)); - put_buffer(ppy_text, ppy_leng); - free_macro(mac); - } - YY_BREAK -/* - * Macro expansion argument text scanning. - * This state is active when a macro's arguments are being read for expansion. - */ -case 107: -YY_RULE_SETUP -#line 565 "ppl.l" -{ - if(++MACROPARENTHESES() > 1) - add_text_to_macro(ppy_text, ppy_leng); - } - YY_BREAK -case 108: -YY_RULE_SETUP -#line 569 "ppl.l" -{ - if(--MACROPARENTHESES() == 0) - { - yy_pop_state(); - macro_add_arg(1); - } - else - add_text_to_macro(ppy_text, ppy_leng); - } - YY_BREAK -case 109: -YY_RULE_SETUP -#line 578 "ppl.l" -{ - if(MACROPARENTHESES() > 1) - add_text_to_macro(ppy_text, ppy_leng); - else - macro_add_arg(0); - } - YY_BREAK -case 110: -YY_RULE_SETUP -#line 584 "ppl.l" -new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); - YY_BREAK -case 111: -YY_RULE_SETUP -#line 585 "ppl.l" -new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); - YY_BREAK -case 112: -YY_RULE_SETUP -#line 586 "ppl.l" -yy_push_state(pp_comment); add_text_to_macro(" ", 1); - YY_BREAK -case 113: -/* rule 113 can match eol */ -YY_RULE_SETUP -#line 587 "ppl.l" -pp_status.line_number++; pp_status.char_number = 1; add_text_to_macro(ppy_text, ppy_leng); - YY_BREAK -case 114: -YY_RULE_SETUP -#line 588 "ppl.l" -add_text_to_macro(ppy_text, ppy_leng); - YY_BREAK -case 115: -/* rule 115 can match eol */ -YY_RULE_SETUP -#line 589 "ppl.l" -newline(0); - YY_BREAK -/* - * Comment handling (almost all start-conditions) - */ -case 116: -YY_RULE_SETUP -#line 594 "ppl.l" -yy_push_state(pp_comment); - YY_BREAK -case 117: -YY_RULE_SETUP -#line 595 "ppl.l" -; - YY_BREAK -case 118: -/* rule 118 can match eol */ -YY_RULE_SETUP -#line 596 "ppl.l" -newline(0); - YY_BREAK -case 119: -YY_RULE_SETUP -#line 597 "ppl.l" -yy_pop_state(); - YY_BREAK -/* - * Remove C++ style comment (almost all start-conditions) - */ -case 120: -YY_RULE_SETUP -#line 602 "ppl.l" -{ - if(ppy_text[ppy_leng-1] == '\\') - ppy_warning("C++ style comment ends with an escaped newline (escape ignored)"); - } - YY_BREAK -/* - * Single, double and <> quoted constants - */ -case 121: -YY_RULE_SETUP -#line 610 "ppl.l" -pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); - YY_BREAK -case 122: -YY_RULE_SETUP -#line 611 "ppl.l" -pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); - YY_BREAK -case 123: -YY_RULE_SETUP -#line 612 "ppl.l" -add_string(ppy_text, ppy_leng); - YY_BREAK -case 124: -YY_RULE_SETUP -#line 613 "ppl.l" -{ - add_string(ppy_text, ppy_leng); - yy_pop_state(); - switch(yy_current_state()) - { - case pp_pp: - case pp_define: - case pp_mbody: - case pp_inc: - case RCINCL: - if (yy_current_state()==RCINCL) yy_pop_state(); - ppy_lval.cptr = get_string(); - return tDQSTRING; - case pp_line: - ppy_lval.cptr = get_string(); - return tDQSTRING; - default: - put_string(); - } - } - YY_BREAK -case 125: -YY_RULE_SETUP -#line 633 "ppl.l" -add_string(ppy_text, ppy_leng); - YY_BREAK -case 126: -YY_RULE_SETUP -#line 634 "ppl.l" -{ - add_string(ppy_text, ppy_leng); - yy_pop_state(); - switch(yy_current_state()) - { - case pp_if: - case pp_define: - case pp_mbody: - ppy_lval.cptr = get_string(); - return tSQSTRING; - default: - put_string(); - } - } - YY_BREAK -case 127: -YY_RULE_SETUP -#line 648 "ppl.l" -add_string(ppy_text, ppy_leng); - YY_BREAK -case 128: -YY_RULE_SETUP -#line 649 "ppl.l" -{ - add_string(ppy_text, ppy_leng); - yy_pop_state(); - ppy_lval.cptr = get_string(); - return tIQSTRING; - } - YY_BREAK -case 129: -/* rule 129 can match eol */ -YY_RULE_SETUP -#line 655 "ppl.l" -{ - /* - * This is tricky; we need to remove the line-continuation - * from preprocessor strings, but OTOH retain them in all - * other strings. This is because the resource grammar is - * even more braindead than initially analysed and line- - * continuations in strings introduce, sigh, newlines in - * the output. There goes the concept of non-breaking, non- - * spacing whitespace. - */ - switch(yy_top_state()) - { - case pp_pp: - case pp_define: - case pp_mbody: - case pp_inc: - case pp_line: - newline(0); - break; - default: - add_string(ppy_text, ppy_leng); - newline(-1); - } - } - YY_BREAK -case 130: -YY_RULE_SETUP -#line 679 "ppl.l" -add_string(ppy_text, ppy_leng); - YY_BREAK -case 131: -/* rule 131 can match eol */ -YY_RULE_SETUP -#line 680 "ppl.l" -{ - newline(1); - add_string(ppy_text, ppy_leng); - ppy_warning("Newline in string constant encounterd (started line %d)", string_start()); - } - YY_BREAK -/* - * Identifier scanning - */ -case 132: -YY_RULE_SETUP -#line 689 "ppl.l" -{ - pp_entry_t *ppp; - pp_incl_state.seen_junk++; - if(!(ppp = pplookup(ppy_text))) - { - if(yy_current_state() == pp_inc) - ppy_error("Expected include filename"); - - else if(yy_current_state() == pp_if) - { - ppy_lval.cptr = pp_xstrdup(ppy_text); - return tIDENT; - } - else { - if((yy_current_state()==INITIAL) && (strcasecmp(ppy_text,"RCINCLUDE")==0)){ - yy_push_state(RCINCL); - return tRCINCLUDE; - } - else put_buffer(ppy_text, ppy_leng); - } - } - else if(!ppp->expanding) - { - switch(ppp->type) - { - case def_special: - expand_special(ppp); - break; - case def_define: - expand_define(ppp); - break; - case def_macro: - yy_push_state(pp_macign); - push_macro(ppp); - break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid define type %d\n", ppp->type); - } - } - else put_buffer(ppy_text, ppy_leng); - } - YY_BREAK -/* - * Everything else that needs to be passed and - * newline and continuation handling - */ -case 133: -YY_RULE_SETUP -#line 735 "ppl.l" -pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng); - YY_BREAK -case 134: -YY_RULE_SETUP -#line 736 "ppl.l" -put_buffer(ppy_text, ppy_leng); - YY_BREAK -case 135: -/* rule 135 can match eol */ -YY_RULE_SETUP -#line 737 "ppl.l" -newline(1); - YY_BREAK -case 136: -/* rule 136 can match eol */ -YY_RULE_SETUP -#line 738 "ppl.l" -newline(0); - YY_BREAK -case 137: -YY_RULE_SETUP -#line 739 "ppl.l" -pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng); - YY_BREAK -/* - * Special catcher for macro argmument expansion to prevent - * newlines to propagate to the output or admin. - */ -case 138: -/* rule 138 can match eol */ -YY_RULE_SETUP -#line 745 "ppl.l" -put_buffer(ppy_text, ppy_leng); - YY_BREAK -case 139: -YY_RULE_SETUP -#line 747 "ppl.l" -{ - ppy_lval.cptr=pp_xstrdup(ppy_text); - yy_pop_state(); - return tRCINCLUDEPATH; - } - YY_BREAK -case 140: -YY_RULE_SETUP -#line 753 "ppl.l" -; - YY_BREAK -case 141: -YY_RULE_SETUP -#line 755 "ppl.l" -{ - new_string(); add_string(ppy_text,ppy_leng);yy_push_state(pp_dqs); - } - YY_BREAK -/* - * This is a 'catch-all' rule to discover errors in the scanner - * in an orderly manner. - */ -case 142: -YY_RULE_SETUP -#line 763 "ppl.l" -pp_incl_state.seen_junk++; ppy_warning("Unmatched text '%c' (0x%02x); please report\n", isprint(*ppy_text & 0xff) ? *ppy_text : ' ', *ppy_text); - YY_BREAK -case YY_STATE_EOF(INITIAL): -case YY_STATE_EOF(pp_pp): -case YY_STATE_EOF(pp_eol): -case YY_STATE_EOF(pp_inc): -case YY_STATE_EOF(pp_dqs): -case YY_STATE_EOF(pp_sqs): -case YY_STATE_EOF(pp_iqs): -case YY_STATE_EOF(pp_comment): -case YY_STATE_EOF(pp_def): -case YY_STATE_EOF(pp_define): -case YY_STATE_EOF(pp_macro): -case YY_STATE_EOF(pp_mbody): -case YY_STATE_EOF(pp_macign): -case YY_STATE_EOF(pp_macscan): -case YY_STATE_EOF(pp_macexp): -case YY_STATE_EOF(pp_if): -case YY_STATE_EOF(pp_ifd): -case YY_STATE_EOF(pp_endif): -case YY_STATE_EOF(pp_line): -case YY_STATE_EOF(pp_defined): -case YY_STATE_EOF(pp_ignore): -case YY_STATE_EOF(RCINCL): -#line 765 "ppl.l" -{ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - bufferstackentry_t *bep = pop_buffer(); - - if((!bep && pp_get_if_depth()) || (bep && pp_get_if_depth() != bep->if_depth)) - ppy_warning("Unmatched #if/#endif at end of file"); - - if(!bep) - { - if(YY_START != INITIAL) - ppy_error("Unexpected end of file during preprocessing"); - yyterminate(); - } - else if(bep->should_pop == 2) - { - macexpstackentry_t *mac; - mac = pop_macro(); - expand_macro(mac); - } - ppy__delete_buffer(b); - } - YY_BREAK -case 143: -YY_RULE_SETUP -#line 787 "ppl.l" -ECHO; - YY_BREAK -#line 2734 "lex.yy.c" - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = (yy_hold_char); - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed ppy_in at a new source and called - * ppy_lex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = ppy_in; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++(yy_c_buf_p); - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_END_OF_FILE: - { - (yy_did_buffer_switch_on_eof) = 0; - - if ( ppy_wrap( ) ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * ppy_text, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = - (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - (yy_c_buf_p) = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of ppy_lex */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ -static int yy_get_next_buffer (void) -{ - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - ppy_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; - - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), (size_t) num_to_read ); - - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - if ( (yy_n_chars) == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - ppy_restart(ppy_in ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ppy_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } - - (yy_n_chars) += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - - static yy_state_type yy_get_previous_state (void) -{ - register yy_state_type yy_current_state; - register char *yy_cp; - - yy_current_state = (yy_start); - yy_current_state += YY_AT_BOL(); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 416 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) -{ - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 416 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 415); - - return yy_is_jam ? 0 : yy_current_state; -} - -#ifndef YY_NO_INPUT -#ifdef __cplusplus - static int yyinput (void) -#else - static int input (void) -#endif - -{ - int c; - - *(yy_c_buf_p) = (yy_hold_char); - - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - /* This was really a NUL. */ - *(yy_c_buf_p) = '\0'; - - else - { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - ppy_restart(ppy_in ); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( ppy_wrap( ) ) - return EOF; - - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = (yytext_ptr) + offset; - break; - } - } - } - - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve ppy_text */ - (yy_hold_char) = *++(yy_c_buf_p); - - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); - - return c; -} -#endif /* ifndef YY_NO_INPUT */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - * - * @note This function does not reset the start condition to @c INITIAL . - */ - void ppy_restart (FILE * input_file ) -{ - - if ( ! YY_CURRENT_BUFFER ){ - ppy_ensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - ppy__create_buffer(ppy_in,YY_BUF_SIZE ); - } - - ppy__init_buffer(YY_CURRENT_BUFFER,input_file ); - ppy__load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ - void ppy__switch_to_buffer (YY_BUFFER_STATE new_buffer ) -{ - - /* TODO. We should be able to replace this entire function body - * with - * ppy_pop_buffer_state(); - * ppy_push_buffer_state(new_buffer); - */ - ppy_ensure_buffer_stack (); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - ppy__load_buffer_state( ); - - /* We don't actually know whether we did this switch during - * EOF (ppy_wrap()) processing, but the only time this flag - * is looked at is after ppy_wrap() is called, so it's safe - * to go ahead and always set it. - */ - (yy_did_buffer_switch_on_eof) = 1; -} - -static void ppy__load_buffer_state (void) -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - ppy_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - (yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * - * @return the allocated buffer state. - */ - YY_BUFFER_STATE ppy__create_buffer (FILE * file, int size ) -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) ppy_alloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in ppy__create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) ppy_alloc(b->yy_buf_size + 2 ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in ppy__create_buffer()" ); - - b->yy_is_our_buffer = 1; - - ppy__init_buffer(b,file ); - - return b; -} - -/** Destroy the buffer. - * @param b a buffer created with ppy__create_buffer() - * - */ - void ppy__delete_buffer (YY_BUFFER_STATE b ) -{ - - if ( ! b ) - return; - - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - ppy_free((void *) b->yy_ch_buf ); - - ppy_free((void *) b ); -} - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a ppy_restart() or at EOF. - */ - static void ppy__init_buffer (YY_BUFFER_STATE b, FILE * file ) - -{ - int oerrno = errno; - - ppy__flush_buffer(b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - - /* If b is the current buffer, then ppy__init_buffer was _probably_ - * called from ppy_restart() or through yy_get_next_buffer. - * In that case, we don't want to reset the lineno or column. - */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = 0; - - errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * - */ - void ppy__flush_buffer (YY_BUFFER_STATE b ) -{ - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == YY_CURRENT_BUFFER ) - ppy__load_buffer_state( ); -} - -/** Pushes the new state onto the stack. The new state becomes - * the current state. This function will allocate the stack - * if necessary. - * @param new_buffer The new state. - * - */ -void ppy_push_buffer_state (YY_BUFFER_STATE new_buffer ) -{ - if (new_buffer == NULL) - return; - - ppy_ensure_buffer_stack(); - - /* This block is copied from ppy__switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - (yy_buffer_stack_top)++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from ppy__switch_to_buffer. */ - ppy__load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; -} - -/** Removes and deletes the top of the stack, if present. - * The next element becomes the new top. - * - */ -void ppy_pop_buffer_state (void) -{ - if (!YY_CURRENT_BUFFER) - return; - - ppy__delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - if ((yy_buffer_stack_top) > 0) - --(yy_buffer_stack_top); - - if (YY_CURRENT_BUFFER) { - ppy__load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; - } -} - -/* Allocates the stack if it does not exist. - * Guarantees space for at least one push. - */ -static void ppy_ensure_buffer_stack (void) -{ - int num_to_alloc; - - if (!(yy_buffer_stack)) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)ppy_alloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in ppy_ensure_buffer_stack()" ); - - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - (yy_buffer_stack_max) = num_to_alloc; - (yy_buffer_stack_top) = 0; - return; - } - - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)ppy_realloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in ppy_ensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); - (yy_buffer_stack_max) = num_to_alloc; - } -} - -/** Setup the input buffer state to scan directly from a user-specified character buffer. - * @param base the character buffer - * @param size the size in bytes of the character buffer - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE ppy__scan_buffer (char * base, yy_size_t size ) -{ - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) ppy_alloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in ppy__scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - ppy__switch_to_buffer(b ); - - return b; -} - -/** Setup the input buffer state to scan a string. The next call to ppy_lex() will - * scan from a @e copy of @a str. - * @param yystr a NUL-terminated string to scan - * - * @return the newly allocated buffer state object. - * @note If you want to scan bytes that may contain NUL values, then use - * ppy__scan_bytes() instead. - */ -YY_BUFFER_STATE ppy__scan_string (yyconst char * yystr ) -{ - - return ppy__scan_bytes(yystr,strlen(yystr) ); -} - -/** Setup the input buffer state to scan the given bytes. The next call to ppy_lex() will - * scan from a @e copy of @a bytes. - * @param yybytes the byte buffer to scan - * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE ppy__scan_bytes (yyconst char * yybytes, int _yybytes_len ) -{ - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) ppy_alloc(n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in ppy__scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = ppy__scan_buffer(buf,n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in ppy__scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; -} - - static void yy_push_state (int new_state ) -{ - if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) - { - yy_size_t new_size; - - (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); - - if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) ppy_alloc(new_size ); - - else - (yy_start_stack) = (int *) ppy_realloc((void *) (yy_start_stack),new_size ); - - if ( ! (yy_start_stack) ) - YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); - } - - (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - - BEGIN(new_state); -} - - static void yy_pop_state (void) -{ - if ( --(yy_start_stack_ptr) < 0 ) - YY_FATAL_ERROR( "start-condition stack underflow" ); - - BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); -} - - static int yy_top_state (void) -{ - return (yy_start_stack)[(yy_start_stack_ptr) - 1]; -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -static void yy_fatal_error (yyconst char* msg ) -{ - (void) fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); -} - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up ppy_text. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - ppy_text[ppy_leng] = (yy_hold_char); \ - (yy_c_buf_p) = ppy_text + yyless_macro_arg; \ - (yy_hold_char) = *(yy_c_buf_p); \ - *(yy_c_buf_p) = '\0'; \ - ppy_leng = yyless_macro_arg; \ - } \ - while ( 0 ) - -/* Accessor methods (get/set functions) to struct members. */ - -/** Get the current line number. - * - */ -int ppy_get_lineno (void) -{ - - return ppy_lineno; -} - -/** Get the input stream. - * - */ -FILE *ppy_get_in (void) -{ - return ppy_in; -} - -/** Get the output stream. - * - */ -FILE *ppy_get_out (void) -{ - return ppy_out; -} - -/** Get the length of the current token. - * - */ -int ppy_get_leng (void) -{ - return ppy_leng; -} - -/** Get the current token. - * - */ - -char *ppy_get_text (void) -{ - return ppy_text; -} - -/** Set the current line number. - * @param line_number - * - */ -void ppy_set_lineno (int line_number ) -{ - - ppy_lineno = line_number; -} - -/** Set the input stream. This does not discard the current - * input buffer. - * @param in_str A readable stream. - * - * @see ppy__switch_to_buffer - */ -void ppy_set_in (FILE * in_str ) -{ - ppy_in = in_str ; -} - -void ppy_set_out (FILE * out_str ) -{ - ppy_out = out_str ; -} - -int ppy_get_debug (void) -{ - return ppy__flex_debug; -} - -void ppy_set_debug (int bdebug ) -{ - ppy__flex_debug = bdebug ; -} - -static int yy_init_globals (void) -{ - /* Initialization is the same as for the non-reentrant scanner. - * This function is called from ppy_lex_destroy(), so don't allocate here. - */ - - (yy_buffer_stack) = 0; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; - (yy_init) = 0; - (yy_start) = 0; - - (yy_start_stack_ptr) = 0; - (yy_start_stack_depth) = 0; - (yy_start_stack) = NULL; - -/* Defined in main.c */ -#ifdef YY_STDINIT - ppy_in = stdin; - ppy_out = stdout; -#else - ppy_in = (FILE *) 0; - ppy_out = (FILE *) 0; -#endif - - /* For future reference: Set errno on error, since we are called by - * ppy_lex_init() - */ - return 0; -} - -/* ppy_lex_destroy is for both reentrant and non-reentrant scanners. */ -int ppy_lex_destroy (void) -{ - - /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - ppy__delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - ppy_pop_buffer_state(); - } - - /* Destroy the stack itself. */ - ppy_free((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - - /* Destroy the start condition stack. */ - ppy_free((yy_start_stack) ); - (yy_start_stack) = NULL; - - /* Reset the globals. This is important in a non-reentrant scanner so the next time - * ppy_lex() is called, initialization will occur. */ - yy_init_globals( ); - - return 0; -} - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) -{ - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) -{ - register int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *ppy_alloc (yy_size_t size ) -{ - return (void *) malloc( size ); -} - -void *ppy_realloc (void * ptr, yy_size_t size ) -{ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); -} - -void ppy_free (void * ptr ) -{ - free( (char *) ptr ); /* see ppy_realloc() for (char *) cast */ -} - -#define YYTABLES_NAME "yytables" - -#line 787 "ppl.l" - - -/* - ************************************************************************** - * Support functions - ************************************************************************** - */ - -#ifndef ppy_wrap -int ppy_wrap(void) -{ - return 1; -} -#endif - - -/* - *------------------------------------------------------------------------- - * Output newlines or set them as continuations - * - * Input: -1 - Don't count this one, but update local position (see pp_dqs) - * 0 - Line-continuation seen and cache output - * 1 - Newline seen and flush output - *------------------------------------------------------------------------- - */ -static void newline(int dowrite) -{ - pp_status.line_number++; - pp_status.char_number = 1; - - if(dowrite == -1) - return; - - ncontinuations++; - if(dowrite) - { - for(;ncontinuations; ncontinuations--) - put_buffer("\n", 1); - } -} - - -/* - *------------------------------------------------------------------------- - * Make a number out of an any-base and suffixed string - * - * Possible number extensions: - * - "" int - * - "L" long int - * - "LL" long long int - * - "U" unsigned int - * - "UL" unsigned long int - * - "ULL" unsigned long long int - * - "LU" unsigned long int - * - "LLU" unsigned long long int - * - "LUL" invalid - * - * FIXME: - * The sizes of resulting 'int' and 'long' are compiler specific. - * I depend on sizeof(int) > 2 here (although a relatively safe - * assumption). - * Long longs are not yet implemented because this is very compiler - * specific and I don't want to think too much about the problems. - * - *------------------------------------------------------------------------- - */ -static int make_number(int radix, YYSTYPE *val, const char *str, int len) -{ - int is_l = 0; - int is_ll = 0; - int is_u = 0; - char ext[4]; - long l; - - ext[3] = '\0'; - ext[2] = toupper(str[len-1]); - ext[1] = len > 1 ? toupper(str[len-2]) : ' '; - ext[0] = len > 2 ? toupper(str[len-3]) : ' '; - - if(!strcmp(ext, "LUL")) - { - ppy_error("Invalid constant suffix"); - return 0; - } - else if(!strcmp(ext, "LLU") || !strcmp(ext, "ULL")) - { - is_ll++; - is_u++; - } - else if(!strcmp(ext+1, "LU") || !strcmp(ext+1, "UL")) - { - is_l++; - is_u++; - } - else if(!strcmp(ext+1, "LL")) - { - is_ll++; - } - else if(!strcmp(ext+2, "L")) - { - is_l++; - } - else if(!strcmp(ext+2, "U")) - { - is_u++; - } - - if(is_ll) - { -/* Assume as in the declaration of wrc_ull_t and wrc_sll_t */ -#ifdef HAVE_LONG_LONG - if (is_u) - { - errno = 0; - val->ull = strtoull(str, NULL, radix); - if (val->ull == ULLONG_MAX && errno == ERANGE) - ppy_error("integer constant %s is too large\n", str); - return tULONGLONG; - } - else - { - errno = 0; - val->sll = strtoll(str, NULL, radix); - if ((val->sll == LLONG_MIN || val->sll == LLONG_MAX) && errno == ERANGE) - ppy_error("integer constant %s is too large\n", str); - return tSLONGLONG; - } -#else - pp_internal_error(__FILE__, __LINE__, "long long constants not supported on this platform"); -#endif - } - else if(is_u && is_l) - { - errno = 0; - val->ulong = strtoul(str, NULL, radix); - if (val->ulong == ULONG_MAX && errno == ERANGE) - ppy_error("integer constant %s is too large\n", str); - return tULONG; - } - else if(!is_u && is_l) - { - errno = 0; - val->slong = strtol(str, NULL, radix); - if ((val->slong == LONG_MIN || val->slong == LONG_MAX) && errno == ERANGE) - ppy_error("integer constant %s is too large\n", str); - return tSLONG; - } - else if(is_u && !is_l) - { - unsigned long ul; - errno = 0; - ul = strtoul(str, NULL, radix); - if ((ul == ULONG_MAX && errno == ERANGE) || (ul > UINT_MAX)) - ppy_error("integer constant %s is too large\n", str); - val->uint = (unsigned int)ul; - return tUINT; - } - - /* Else it must be an int... */ - errno = 0; - l = strtol(str, NULL, radix); - if (((l == LONG_MIN || l == LONG_MAX) && errno == ERANGE) || - (l > INT_MAX) || (l < INT_MIN)) - ppy_error("integer constant %s is too large\n", str); - val->sint = (int)l; - return tSINT; -} - - -/* - *------------------------------------------------------------------------- - * Macro and define expansion support - * - * FIXME: Variable macro arguments. - *------------------------------------------------------------------------- - */ -static void expand_special(pp_entry_t *ppp) -{ - static char *buf = NULL; - char *new_buf; - - assert(ppp->type == def_special); - - if(!strcmp(ppp->ident, "__LINE__")) - { - new_buf = pp_xrealloc(buf, 32); - if(!new_buf) - return; - buf = new_buf; - sprintf(buf, "%d", pp_status.line_number); - } - else if(!strcmp(ppp->ident, "__FILE__")) - { - new_buf = pp_xrealloc(buf, strlen(pp_status.input) + 3); - if(!new_buf) - return; - buf = new_buf; - sprintf(buf, "\"%s\"", pp_status.input); - } - else - pp_internal_error(__FILE__, __LINE__, "Special macro '%s' not found...\n", ppp->ident); - - if(pp_flex_debug) - fprintf(stderr, "expand_special(%d): %s:%d: '%s' -> '%s'\n", - macexpstackidx, - pp_status.input, - pp_status.line_number, - ppp->ident, - buf ? buf : ""); - - if(buf && buf[0]) - { - push_buffer(ppp, NULL, NULL, 0); - ppy__scan_string(buf); - } -} - -static void expand_define(pp_entry_t *ppp) -{ - assert(ppp->type == def_define); - - if(pp_flex_debug) - fprintf(stderr, "expand_define(%d): %s:%d: '%s' -> '%s'\n", - macexpstackidx, - pp_status.input, - pp_status.line_number, - ppp->ident, - ppp->subst.text); - if(ppp->subst.text && ppp->subst.text[0]) - { - push_buffer(ppp, NULL, NULL, 0); - ppy__scan_string(ppp->subst.text); - } -} - -static int curdef_idx = 0; -static int curdef_alloc = 0; -static char *curdef_text = NULL; - -static void add_text(const char *str, int len) -{ - int new_alloc; - char *new_text; - - if(len == 0) - return; - if(curdef_idx >= curdef_alloc || curdef_alloc - curdef_idx < len) - { - new_alloc = curdef_alloc + ((len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1)); - new_text = pp_xrealloc(curdef_text, new_alloc * sizeof(curdef_text[0])); - if(!new_text) - return; - curdef_text = new_text; - curdef_alloc = new_alloc; - if(curdef_alloc > 65536) - ppy_warning("Reallocating macro-expansion buffer larger than 64kB"); - } - memcpy(&curdef_text[curdef_idx], str, len); - curdef_idx += len; -} - -static mtext_t *add_expand_text(mtext_t *mtp, macexpstackentry_t *mep, int *nnl) -{ - char *cptr; - char *exp; - int tag; - int n; - - if(mtp == NULL) - return NULL; - - switch(mtp->type) - { - case exp_text: - if(pp_flex_debug) - fprintf(stderr, "add_expand_text: exp_text: '%s'\n", mtp->subst.text); - add_text(mtp->subst.text, strlen(mtp->subst.text)); - break; - - case exp_stringize: - if(pp_flex_debug) - fprintf(stderr, "add_expand_text: exp_stringize(%d): '%s'\n", - mtp->subst.argidx, - mep->args[mtp->subst.argidx]); - cptr = mep->args[mtp->subst.argidx]; - add_text("\"", 1); - while(*cptr) - { - if(*cptr == '"' || *cptr == '\\') - add_text("\\", 1); - add_text(cptr, 1); - cptr++; - } - add_text("\"", 1); - break; - - case exp_concat: - if(pp_flex_debug) - fprintf(stderr, "add_expand_text: exp_concat\n"); - /* Remove trailing whitespace from current expansion text */ - while(curdef_idx) - { - if(isspace(curdef_text[curdef_idx-1] & 0xff)) - curdef_idx--; - else - break; - } - /* tag current position and recursively expand the next part */ - tag = curdef_idx; - mtp = add_expand_text(mtp->next, mep, nnl); - - /* Now get rid of the leading space of the expansion */ - cptr = &curdef_text[tag]; - n = curdef_idx - tag; - while(n) - { - if(isspace(*cptr & 0xff)) - { - cptr++; - n--; - } - else - break; - } - if(cptr != &curdef_text[tag]) - { - memmove(&curdef_text[tag], cptr, n); - curdef_idx -= (curdef_idx - tag) - n; - } - break; - - case exp_subst: - if((mtp->next && mtp->next->type == exp_concat) || (mtp->prev && mtp->prev->type == exp_concat)) - exp = mep->args[mtp->subst.argidx]; - else - exp = mep->ppargs[mtp->subst.argidx]; - if(exp) - { - add_text(exp, strlen(exp)); - *nnl -= mep->nnls[mtp->subst.argidx]; - cptr = strchr(exp, '\n'); - while(cptr) - { - *cptr = ' '; - cptr = strchr(cptr+1, '\n'); - } - mep->nnls[mtp->subst.argidx] = 0; - } - if(pp_flex_debug) - fprintf(stderr, "add_expand_text: exp_subst(%d): '%s'\n", mtp->subst.argidx, exp); - break; - - default: - pp_internal_error(__FILE__, __LINE__, "Invalid expansion type (%d) in macro expansion\n", mtp->type); - } - return mtp; -} - -static void expand_macro(macexpstackentry_t *mep) -{ - mtext_t *mtp; - int n, k; - char *cptr; - int nnl = 0; - pp_entry_t *ppp = mep->ppp; - int nargs = mep->nargs; - - assert(ppp->type == def_macro); - assert(ppp->expanding == 0); - - if((ppp->nargs >= 0 && nargs != ppp->nargs) || (ppp->nargs < 0 && nargs < -ppp->nargs)) - { - ppy_error("Too %s macro arguments (%d)", nargs < abs(ppp->nargs) ? "few" : "many", nargs); - return; - } - - for(n = 0; n < nargs; n++) - nnl += mep->nnls[n]; - - if(pp_flex_debug) - fprintf(stderr, "expand_macro(%d): %s:%d: '%s'(%d,%d) -> ...\n", - macexpstackidx, - pp_status.input, - pp_status.line_number, - ppp->ident, - mep->nargs, - nnl); - - curdef_idx = 0; - - for(mtp = ppp->subst.mtext; mtp; mtp = mtp->next) - { - if(!(mtp = add_expand_text(mtp, mep, &nnl))) - break; - } - - for(n = 0; n < nnl; n++) - add_text("\n", 1); - - /* To make sure there is room and termination (see below) */ - add_text(" \0", 2); - - /* Strip trailing whitespace from expansion */ - for(k = curdef_idx, cptr = &curdef_text[curdef_idx-1]; k > 0; k--, cptr--) - { - if(!isspace(*cptr & 0xff)) - break; - } - - /* - * We must add *one* whitespace to make sure that there - * is a token-separation after the expansion. - */ - *(++cptr) = ' '; - *(++cptr) = '\0'; - k++; - - /* Strip leading whitespace from expansion */ - for(n = 0, cptr = curdef_text; n < k; n++, cptr++) - { - if(!isspace(*cptr & 0xff)) - break; - } - - if(k - n > 0) - { - if(pp_flex_debug) - fprintf(stderr, "expand_text: '%s'\n", curdef_text + n); - push_buffer(ppp, NULL, NULL, 0); - /*ppy__scan_bytes(curdef_text + n,k - n);*/ - ppy__scan_string(curdef_text + n); - } -} - -/* - *------------------------------------------------------------------------- - * String collection routines - *------------------------------------------------------------------------- - */ -static void new_string(void) -{ -#ifdef DEBUG - if(strbuf_idx) - ppy_warning("new_string: strbuf_idx != 0"); -#endif - strbuf_idx = 0; - str_startline = pp_status.line_number; -} - -static void add_string(const char *str, int len) -{ - int new_alloc; - char *new_buffer; - - if(len == 0) - return; - if(strbuf_idx >= strbuf_alloc || strbuf_alloc - strbuf_idx < len) - { - new_alloc = strbuf_alloc + ((len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1)); - new_buffer = pp_xrealloc(strbuffer, new_alloc * sizeof(strbuffer[0])); - if(!new_buffer) - return; - strbuffer = new_buffer; - strbuf_alloc = new_alloc; - if(strbuf_alloc > 65536) - ppy_warning("Reallocating string buffer larger than 64kB"); - } - memcpy(&strbuffer[strbuf_idx], str, len); - strbuf_idx += len; -} - -static char *get_string(void) -{ - char *str = pp_xmalloc(strbuf_idx + 1); - if(!str) - return NULL; - memcpy(str, strbuffer, strbuf_idx); - str[strbuf_idx] = '\0'; -#ifdef DEBUG - strbuf_idx = 0; -#endif - return str; -} - -static void put_string(void) -{ - put_buffer(strbuffer, strbuf_idx); -#ifdef DEBUG - strbuf_idx = 0; -#endif -} - -static int string_start(void) -{ - return str_startline; -} - - -/* - *------------------------------------------------------------------------- - * Buffer management - *------------------------------------------------------------------------- - */ -static void push_buffer(pp_entry_t *ppp, char *filename, char *incname, int pop) -{ - if(ppy_debug) - printf("push_buffer(%d): %p %p %p %d\n", bufferstackidx, ppp, filename, incname, pop); - if(bufferstackidx >= MAXBUFFERSTACK) - pp_internal_error(__FILE__, __LINE__, "Buffer stack overflow"); - - memset(&bufferstack[bufferstackidx], 0, sizeof(bufferstack[0])); - bufferstack[bufferstackidx].bufferstate = YY_CURRENT_BUFFER; - bufferstack[bufferstackidx].filehandle = pp_status.file; - bufferstack[bufferstackidx].define = ppp; - bufferstack[bufferstackidx].line_number = pp_status.line_number; - bufferstack[bufferstackidx].char_number = pp_status.char_number; - bufferstack[bufferstackidx].if_depth = pp_get_if_depth(); - bufferstack[bufferstackidx].should_pop = pop; - bufferstack[bufferstackidx].filename = pp_status.input; - bufferstack[bufferstackidx].ncontinuations = ncontinuations; - bufferstack[bufferstackidx].incl = pp_incl_state; - bufferstack[bufferstackidx].include_filename = incname; - - if(ppp) - ppp->expanding = 1; - else if(filename) - { - /* These will track the ppy_error to the correct file and line */ - pp_status.line_number = 1; - pp_status.char_number = 1; - pp_status.input = filename; - ncontinuations = 0; - } - else if(!pop) - pp_internal_error(__FILE__, __LINE__, "Pushing buffer without knowing where to go to"); - bufferstackidx++; -} - -static bufferstackentry_t *pop_buffer(void) -{ - if(bufferstackidx < 0) - pp_internal_error(__FILE__, __LINE__, "Bufferstack underflow?"); - - if(bufferstackidx == 0) - return NULL; - - bufferstackidx--; - - if(bufferstack[bufferstackidx].define) - bufferstack[bufferstackidx].define->expanding = 0; - else - { - if(!bufferstack[bufferstackidx].should_pop) - { - wpp_callbacks->close(pp_status.file); - pp_writestring("# %d \"%s\" 2\n", bufferstack[bufferstackidx].line_number, bufferstack[bufferstackidx].filename); - - /* We have EOF, check the include logic */ - if(pp_incl_state.state == 2 && !pp_incl_state.seen_junk && pp_incl_state.ppp) - { - pp_entry_t *ppp = pplookup(pp_incl_state.ppp); - if(ppp) - { - includelogicentry_t *iep = pp_xmalloc(sizeof(includelogicentry_t)); - if(!iep) - return NULL; - - iep->ppp = ppp; - ppp->iep = iep; - iep->filename = bufferstack[bufferstackidx].include_filename; - iep->prev = NULL; - iep->next = pp_includelogiclist; - if(iep->next) - iep->next->prev = iep; - pp_includelogiclist = iep; - if(pp_status.debug) - fprintf(stderr, "pop_buffer: %s:%d: includelogic added, include_ppp='%s', file='%s'\n", bufferstack[bufferstackidx].filename, bufferstack[bufferstackidx].line_number, pp_incl_state.ppp, iep->filename); - } - else - free(bufferstack[bufferstackidx].include_filename); - } - free(pp_incl_state.ppp); - pp_incl_state = bufferstack[bufferstackidx].incl; - - } - pp_status.line_number = bufferstack[bufferstackidx].line_number; - pp_status.char_number = bufferstack[bufferstackidx].char_number; - pp_status.input = bufferstack[bufferstackidx].filename; - ncontinuations = bufferstack[bufferstackidx].ncontinuations; - } - - if(ppy_debug) - printf("pop_buffer(%d): %p %p (%d, %d, %d) %p %d\n", - bufferstackidx, - bufferstack[bufferstackidx].bufferstate, - bufferstack[bufferstackidx].define, - bufferstack[bufferstackidx].line_number, - bufferstack[bufferstackidx].char_number, - bufferstack[bufferstackidx].if_depth, - bufferstack[bufferstackidx].filename, - bufferstack[bufferstackidx].should_pop); - - pp_status.file = bufferstack[bufferstackidx].filehandle; - ppy__switch_to_buffer(bufferstack[bufferstackidx].bufferstate); - - if(bufferstack[bufferstackidx].should_pop) - { - if(yy_current_state() == pp_macexp) - macro_add_expansion(); - else - pp_internal_error(__FILE__, __LINE__, "Pop buffer and state without macro expansion state"); - yy_pop_state(); - } - - return &bufferstack[bufferstackidx]; -} - - -/* - *------------------------------------------------------------------------- - * Macro nestng support - *------------------------------------------------------------------------- - */ -static void push_macro(pp_entry_t *ppp) -{ - if(macexpstackidx >= MAXMACEXPSTACK) - { - ppy_error("Too many nested macros"); - return; - } - - macexpstack[macexpstackidx] = pp_xmalloc(sizeof(macexpstack[0][0])); - if(!macexpstack[macexpstackidx]) - return; - memset( macexpstack[macexpstackidx], 0, sizeof(macexpstack[0][0])); - macexpstack[macexpstackidx]->ppp = ppp; - macexpstackidx++; -} - -static macexpstackentry_t *top_macro(void) -{ - return macexpstackidx > 0 ? macexpstack[macexpstackidx-1] : NULL; -} - -static macexpstackentry_t *pop_macro(void) -{ - if(macexpstackidx <= 0) - pp_internal_error(__FILE__, __LINE__, "Macro expansion stack underflow\n"); - return macexpstack[--macexpstackidx]; -} - -static void free_macro(macexpstackentry_t *mep) -{ - int i; - - for(i = 0; i < mep->nargs; i++) - free(mep->args[i]); - free(mep->args); - free(mep->nnls); - free(mep->curarg); - free(mep); -} - -static void add_text_to_macro(const char *text, int len) -{ - macexpstackentry_t *mep = top_macro(); - - assert(mep->ppp->expanding == 0); - - if(mep->curargalloc - mep->curargsize <= len+1) /* +1 for '\0' */ - { - char *new_curarg; - int new_alloc = mep->curargalloc + ((ALLOCBLOCKSIZE > len+1) ? ALLOCBLOCKSIZE : len+1); - new_curarg = pp_xrealloc(mep->curarg, new_alloc * sizeof(mep->curarg[0])); - if(!new_curarg) - return; - mep->curarg = new_curarg; - mep->curargalloc = new_alloc; - } - memcpy(mep->curarg + mep->curargsize, text, len); - mep->curargsize += len; - mep->curarg[mep->curargsize] = '\0'; -} - -static void macro_add_arg(int last) -{ - int nnl = 0; - char *cptr; - char **new_args, **new_ppargs; - int *new_nnls; - macexpstackentry_t *mep = top_macro(); - - assert(mep->ppp->expanding == 0); - - new_args = pp_xrealloc(mep->args, (mep->nargs+1) * sizeof(mep->args[0])); - if(!new_args) - return; - mep->args = new_args; - - new_ppargs = pp_xrealloc(mep->ppargs, (mep->nargs+1) * sizeof(mep->ppargs[0])); - if(!new_ppargs) - return; - mep->ppargs = new_ppargs; - - new_nnls = pp_xrealloc(mep->nnls, (mep->nargs+1) * sizeof(mep->nnls[0])); - if(!new_nnls) - return; - mep->nnls = new_nnls; - - mep->args[mep->nargs] = pp_xstrdup(mep->curarg ? mep->curarg : ""); - if(!mep->args[mep->nargs]) - return; - cptr = mep->args[mep->nargs]-1; - while((cptr = strchr(cptr+1, '\n'))) - { - nnl++; - } - mep->nnls[mep->nargs] = nnl; - mep->nargs++; - free(mep->curarg); - mep->curargalloc = mep->curargsize = 0; - mep->curarg = NULL; - - if(pp_flex_debug) - fprintf(stderr, "macro_add_arg: %s:%d: %d -> '%s'\n", - pp_status.input, - pp_status.line_number, - mep->nargs-1, - mep->args[mep->nargs-1]); - - /* Each macro argument must be expanded to cope with stingize */ - if(last || mep->args[mep->nargs-1][0]) - { - yy_push_state(pp_macexp); - push_buffer(NULL, NULL, NULL, last ? 2 : 1); - ppy__scan_string(mep->args[mep->nargs-1]); - /*mep->bufferstackidx = bufferstackidx; But not nested! */ - } -} - -static void macro_add_expansion(void) -{ - macexpstackentry_t *mep = top_macro(); - - assert(mep->ppp->expanding == 0); - - mep->ppargs[mep->nargs-1] = pp_xstrdup(mep->curarg ? mep->curarg : ""); - free(mep->curarg); - mep->curargalloc = mep->curargsize = 0; - mep->curarg = NULL; - - if(pp_flex_debug) - fprintf(stderr, "macro_add_expansion: %s:%d: %d -> '%s'\n", - pp_status.input, - pp_status.line_number, - mep->nargs-1, - mep->ppargs[mep->nargs-1] ? mep->ppargs[mep->nargs-1] : ""); -} - - -/* - *------------------------------------------------------------------------- - * Output management - *------------------------------------------------------------------------- - */ -static void put_buffer(const char *s, int len) -{ - if(top_macro()) - add_text_to_macro(s, len); - else - wpp_callbacks->write(s, len); -} - - -/* - *------------------------------------------------------------------------- - * Include management - *------------------------------------------------------------------------- - */ -void pp_do_include(char *fname, int type) -{ - char *newpath; - int n; - includelogicentry_t *iep; - void *fp; - - if(!fname) - return; - - for(iep = pp_includelogiclist; iep; iep = iep->next) - { - if(!strcmp(iep->filename, fname)) - { - /* - * We are done. The file was included before. - * If the define was deleted, then this entry would have - * been deleted too. - */ - return; - } - } - - n = strlen(fname); - - if(n <= 2) - { - ppy_error("Empty include filename"); - return; - } - - /* Undo the effect of the quotation */ - fname[n-1] = '\0'; - - if((fp = pp_open_include(fname+1, type ? pp_status.input : NULL, &newpath)) == NULL) - { - ppy_error("Unable to open include file %s", fname+1); - return; - } - - fname[n-1] = *fname; /* Redo the quotes */ - push_buffer(NULL, newpath, fname, 0); - pp_incl_state.seen_junk = 0; - pp_incl_state.state = 0; - pp_incl_state.ppp = NULL; - - if(pp_status.debug) - fprintf(stderr, "pp_do_include: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d\n", - pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth); - pp_status.file = fp; - ppy__switch_to_buffer(ppy__create_buffer(NULL, YY_BUF_SIZE)); - - pp_writestring("# 1 \"%s\" 1%s\n", newpath, type ? "" : " 3"); -} - -/* - *------------------------------------------------------------------------- - * Push/pop preprocessor ignore state when processing conditionals - * which are false. - *------------------------------------------------------------------------- - */ -void pp_push_ignore_state(void) -{ - yy_push_state(pp_ignore); -} - -void pp_pop_ignore_state(void) -{ - yy_pop_state(); -} - diff --git a/reactos/tools/wpp/ppl.l b/reactos/tools/wpp/ppl.l deleted file mode 100644 index 98f3e1a3b2d..00000000000 --- a/reactos/tools/wpp/ppl.l +++ /dev/null @@ -1,1634 +0,0 @@ -/* -*-C-*- - * Wrc preprocessor lexical analysis - * - * Copyright 1999-2000 Bertho A. Stultiens (BS) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * History: - * 24-Apr-2000 BS - Started from scratch to restructure everything - * and reintegrate the source into the wine-tree. - * 04-Jan-2000 BS - Added comments about the lexicographical - * grammar to give some insight in the complexity. - * 28-Dec-1999 BS - Eliminated backing-up of the flexer by running - * `flex -b' on the source. This results in some - * weirdo extra rules, but a much faster scanner. - * 23-Dec-1999 BS - Started this file - * - *------------------------------------------------------------------------- - * The preprocessor's lexographical grammar (approximately): - * - * pp := {ws} # {ws} if {ws} {expr} {ws} \n - * | {ws} # {ws} ifdef {ws} {id} {ws} \n - * | {ws} # {ws} ifndef {ws} {id} {ws} \n - * | {ws} # {ws} elif {ws} {expr} {ws} \n - * | {ws} # {ws} else {ws} \n - * | {ws} # {ws} endif {ws} \n - * | {ws} # {ws} include {ws} < {anytext} > \n - * | {ws} # {ws} include {ws} " {anytext} " \n - * | {ws} # {ws} define {ws} {anytext} \n - * | {ws} # {ws} define( {arglist} ) {ws} {expansion} \n - * | {ws} # {ws} pragma {ws} {anytext} \n - * | {ws} # {ws} ident {ws} {anytext} \n - * | {ws} # {ws} error {ws} {anytext} \n - * | {ws} # {ws} warning {ws} {anytext} \n - * | {ws} # {ws} line {ws} " {anytext} " {number} \n - * | {ws} # {ws} {number} " {anytext} " {number} [ {number} [{number}] ] \n - * | {ws} # {ws} \n - * - * ws := [ \t\r\f\v]* - * - * expr := {expr} [+-*%^/|&] {expr} - * | {expr} {logor|logand} {expr} - * | [!~+-] {expr} - * | {expr} ? {expr} : {expr} - * - * logor := || - * - * logand := && - * - * id := [a-zA-Z_][a-zA-Z0-9_]* - * - * anytext := [^\n]* (see note) - * - * arglist := - * | {id} - * | {arglist} , {id} - * | {arglist} , {id} ... - * - * expansion := {id} - * | # {id} - * | {anytext} - * | {anytext} ## {anytext} - * - * number := [0-9]+ - * - * Note: "anytext" is not always "[^\n]*". This is because the - * trailing context must be considered as well. - * - * The only certain assumption for the preprocessor to make is that - * directives start at the beginning of the line, followed by a '#' - * and end with a newline. - * Any directive may be suffixed with a line-continuation. Also - * classical comment / *...* / (note: no comments within comments, - * therefore spaces) is considered to be a line-continuation - * (according to gcc and egcs AFAIK, ANSI is a bit vague). - * Comments have not been added to the above grammar for simplicity - * reasons. However, it is allowed to enter comment anywhere within - * the directives as long as they do not interfere with the context. - * All comments are considered to be deletable whitespace (both - * classical form "/ *...* /" and C++ form "//...\n"). - * - * All recursive scans, except for macro-expansion, are done by the - * parser, whereas the simple state transitions of non-recursive - * directives are done in the scanner. This results in the many - * exclusive start-conditions of the scanner. - * - * Macro expansions are slightly more difficult because they have to - * prescan the arguments. Parameter substitution is literal if the - * substitution is # or ## (either side). This enables new identifiers - * to be created (see 'info cpp' node Macro|Pitfalls|Prescan for more - * information). - * - * FIXME: Variable macro parameters is recognized, but not yet - * expanded. I have to reread the ANSI standard on the subject (yes, - * ANSI defines it). - * - * The following special defines are supported: - * __FILE__ -> "thissource.c" - * __LINE__ -> 123 - * __DATE__ -> "May 1 2000" - * __TIME__ -> "23:59:59" - * These macros expand, as expected, into their ANSI defined values. - * - * The same include prevention is implemented as gcc and egcs does. - * This results in faster processing because we do not read the text - * at all. Some wine-sources attempt to include the same file 4 or 5 - * times. This strategy also saves a lot blank output-lines, which in - * its turn improves the real resource scanner/parser. - * - */ - -%top{ -#include "config.h" -#include "wine/port.h" -} - -/* - * Special flex options and exclusive scanner start-conditions - */ -%option stack -%option 8bit never-interactive -%option noinput nounput -%option prefix="ppy_" - -%x pp_pp -%x pp_eol -%x pp_inc -%x pp_dqs -%x pp_sqs -%x pp_iqs -%x pp_comment -%x pp_def -%x pp_define -%x pp_macro -%x pp_mbody -%x pp_macign -%x pp_macscan -%x pp_macexp -%x pp_if -%x pp_ifd -%x pp_endif -%x pp_line -%x pp_defined -%x pp_ignore -%x RCINCL - -ws [ \v\f\t\r] -cident [a-zA-Z_][0-9a-zA-Z_]* -ul [uUlL]|[uUlL][lL]|[lL][uU]|[lL][lL][uU]|[uU][lL][lL]|[lL][uU][lL] - -%{ -#include -#include -#include -#include -#include -#include -#include - -#ifndef LLONG_MAX -# define LLONG_MAX ((long long)0x7fffffff << 32 | 0xffffffff) -# define LLONG_MIN (-LLONG_MAX - 1) -#endif -#ifndef ULLONG_MAX -# define ULLONG_MAX ((long long)0xffffffff << 32 | 0xffffffff) -#endif - -#ifndef HAVE_UNISTD_H -#define YY_NO_UNISTD_H -#endif - -#include "wine/wpp.h" -#include "wpp_private.h" -#include "ppy.tab.h" - -/* - * Make sure that we are running an appropriate version of flex. - */ -#if !defined(YY_FLEX_MAJOR_VERSION) || (1000 * YY_FLEX_MAJOR_VERSION + YY_FLEX_MINOR_VERSION < 2005) -#error Must use flex version 2.5.1 or higher (yy_scan_* routines are required). -#endif - -#define YY_READ_BUF_SIZE 65536 /* So we read most of a file at once */ - -#define yy_current_state() YY_START -#define yy_pp_state(x) yy_pop_state(); yy_push_state(x) - -/* - * Always update the current character position within a line - */ -#define YY_USER_ACTION pp_status.char_number+=ppy_leng; - -/* - * Buffer management for includes and expansions - */ -#define MAXBUFFERSTACK 128 /* Nesting more than 128 includes or macro expansion textss is insane */ - -typedef struct bufferstackentry { - YY_BUFFER_STATE bufferstate; /* Buffer to switch back to */ - void *filehandle; /* Handle to be used with wpp_callbacks->read */ - pp_entry_t *define; /* Points to expanding define or NULL if handling includes */ - int line_number; /* Line that we were handling */ - int char_number; /* The current position on that line */ - const char *filename; /* Filename that we were handling */ - int if_depth; /* How many #if:s deep to check matching #endif:s */ - int ncontinuations; /* Remember the continuation state */ - int should_pop; /* Set if we must pop the start-state on EOF */ - /* Include management */ - include_state_t incl; - char *include_filename; -} bufferstackentry_t; - -#define ALLOCBLOCKSIZE (1 << 10) /* Allocate these chunks at a time for string-buffers */ - -/* - * Macro expansion nesting - * We need the stack to handle expansions while scanning - * a macro's arguments. The TOS must always be the macro - * that receives the current expansion from the scanner. - */ -#define MAXMACEXPSTACK 128 /* Nesting more than 128 macro expansions is insane */ - -typedef struct macexpstackentry { - pp_entry_t *ppp; /* This macro we are scanning */ - char **args; /* With these arguments */ - char **ppargs; /* Resulting in these preprocessed arguments */ - int *nnls; /* Number of newlines per argument */ - int nargs; /* And this many arguments scanned */ - int parentheses; /* Nesting level of () */ - int curargsize; /* Current scanning argument's size */ - int curargalloc; /* Current scanning argument's block allocated */ - char *curarg; /* Current scanning argument's content */ -} macexpstackentry_t; - -#define MACROPARENTHESES() (top_macro()->parentheses) - -/* - * Prototypes - */ -static void newline(int); -static int make_number(int radix, YYSTYPE *val, const char *str, int len); -static void put_buffer(const char *s, int len); -/* Buffer management */ -static void push_buffer(pp_entry_t *ppp, char *filename, char *incname, int pop); -static bufferstackentry_t *pop_buffer(void); -/* String functions */ -static void new_string(void); -static void add_string(const char *str, int len); -static char *get_string(void); -static void put_string(void); -static int string_start(void); -/* Macro functions */ -static void push_macro(pp_entry_t *ppp); -static macexpstackentry_t *top_macro(void); -static macexpstackentry_t *pop_macro(void); -static void free_macro(macexpstackentry_t *mep); -static void add_text_to_macro(const char *text, int len); -static void macro_add_arg(int last); -static void macro_add_expansion(void); -/* Expansion */ -static void expand_special(pp_entry_t *ppp); -static void expand_define(pp_entry_t *ppp); -static void expand_macro(macexpstackentry_t *mep); - -/* - * Local variables - */ -static int ncontinuations; - -static int strbuf_idx = 0; -static int strbuf_alloc = 0; -static char *strbuffer = NULL; -static int str_startline; - -static macexpstackentry_t *macexpstack[MAXMACEXPSTACK]; -static int macexpstackidx = 0; - -static bufferstackentry_t bufferstack[MAXBUFFERSTACK]; -static int bufferstackidx = 0; - -/* - * Global variables - */ -include_state_t pp_incl_state = -{ - -1, /* state */ - NULL, /* ppp */ - 0, /* ifdepth */ - 0 /* seen_junk */ -}; - -includelogicentry_t *pp_includelogiclist = NULL; - -#define YY_INPUT(buf,result,max_size) \ - { \ - result = wpp_callbacks->read(pp_status.file, buf, max_size); \ - } - -#define BUFFERINITIALCAPACITY 256 - -void pp_writestring(const char *format, ...) -{ - va_list valist; - int len; - static char *buffer; - static int buffercapacity; - char *new_buffer; - - if(buffercapacity == 0) - { - buffer = pp_xmalloc(BUFFERINITIALCAPACITY); - if(buffer == NULL) - return; - buffercapacity = BUFFERINITIALCAPACITY; - } - - va_start(valist, format); - len = vsnprintf(buffer, buffercapacity, - format, valist); - /* If the string is longer than buffersize, vsnprintf returns - * the string length with glibc >= 2.1, -1 with glibc < 2.1 */ - while(len > buffercapacity || len < 0) - { - do - { - buffercapacity *= 2; - } while(len > buffercapacity); - - new_buffer = pp_xrealloc(buffer, buffercapacity); - if(new_buffer == NULL) - { - va_end(valist); - return; - } - buffer = new_buffer; - len = vsnprintf(buffer, buffercapacity, - format, valist); - } - va_end(valist); - - wpp_callbacks->write(buffer, len); -} - -%} - -/* - ************************************************************************** - * The scanner starts here - ************************************************************************** - */ - -%% - /* - * Catch line-continuations. - * Note: Gcc keeps the line-continuations in, for example, strings - * intact. However, I prefer to remove them all so that the next - * scanner will not need to reduce the continuation state. - * - * <*>\\\n newline(0); - */ - - /* - * Detect the leading # of a preprocessor directive. - */ -^{ws}*# pp_incl_state.seen_junk++; yy_push_state(pp_pp); - - /* - * Scan for the preprocessor directives - */ -{ws}*include{ws}* if(yy_top_state() != pp_ignore) {yy_pp_state(pp_inc); return tINCLUDE;} else {yy_pp_state(pp_eol);} -{ws}*define{ws}* yy_pp_state(yy_current_state() != pp_ignore ? pp_def : pp_eol); -{ws}*error{ws}* yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tERROR; -{ws}*warning{ws}* yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tWARNING; -{ws}*pragma{ws}* yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tPRAGMA; -{ws}*ident{ws}* yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tPPIDENT; -{ws}*undef{ws}* if(yy_top_state() != pp_ignore) {yy_pp_state(pp_ifd); return tUNDEF;} else {yy_pp_state(pp_eol);} -{ws}*ifdef{ws}* yy_pp_state(pp_ifd); return tIFDEF; -{ws}*ifndef{ws}* pp_incl_state.seen_junk--; yy_pp_state(pp_ifd); return tIFNDEF; -{ws}*if{ws}* yy_pp_state(pp_if); return tIF; -{ws}*elif{ws}* yy_pp_state(pp_if); return tELIF; -{ws}*else{ws}* yy_pp_state(pp_endif); return tELSE; -{ws}*endif{ws}* yy_pp_state(pp_endif); return tENDIF; -{ws}*line{ws}* if(yy_top_state() != pp_ignore) {yy_pp_state(pp_line); return tLINE;} else {yy_pp_state(pp_eol);} -{ws}+ if(yy_top_state() != pp_ignore) {yy_pp_state(pp_line); return tGCCLINE;} else {yy_pp_state(pp_eol);} -{ws}*[a-z]+ ppy_error("Invalid preprocessor token '%s'", ppy_text); -\r?\n newline(1); yy_pop_state(); return tNL; /* This could be the null-token */ -\\\r?\n newline(0); -\\\r? ppy_error("Preprocessor junk '%s'", ppy_text); -. return *ppy_text; - - /* - * Handle #include and #line - */ -[0-9]+ return make_number(10, &ppy_lval, ppy_text, ppy_leng); -\< new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_iqs); -\" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); -{ws}+ ; -\n newline(1); yy_pop_state(); return tNL; -\\\r?\n newline(0); -(\\\r?)|(.) ppy_error(yy_current_state() == pp_inc ? "Trailing junk in #include" : "Trailing junk in #line"); - - /* - * Ignore all input when a false clause is parsed - */ -[^#/\\\n]+ ; -\n newline(1); -\\\r?\n newline(0); -(\\\r?)|(.) ; - - /* - * Handle #if and #elif. - * These require conditionals to be evaluated, but we do not - * want to jam the scanner normally when we see these tokens. - * Note: tIDENT is handled below. - */ - -0[0-7]*{ul}? return make_number(8, &ppy_lval, ppy_text, ppy_leng); -0[0-7]*[8-9]+{ul}? ppy_error("Invalid octal digit"); -[1-9][0-9]*{ul}? return make_number(10, &ppy_lval, ppy_text, ppy_leng); -0[xX][0-9a-fA-F]+{ul}? return make_number(16, &ppy_lval, ppy_text, ppy_leng); -0[xX] ppy_error("Invalid hex number"); -defined yy_push_state(pp_defined); return tDEFINED; -"<<" return tLSHIFT; -">>" return tRSHIFT; -"&&" return tLOGAND; -"||" return tLOGOR; -"==" return tEQ; -"!=" return tNE; -"<=" return tLTE; -">=" return tGTE; -\n newline(1); yy_pop_state(); return tNL; -\\\r?\n newline(0); -\\\r? ppy_error("Junk in conditional expression"); -{ws}+ ; -\' new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); -\" ppy_error("String constants not allowed in conditionals"); -. return *ppy_text; - - /* - * Handle #ifdef, #ifndef and #undef - * to get only an untranslated/unexpanded identifier - */ -{cident} ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; -{ws}+ ; -\n newline(1); yy_pop_state(); return tNL; -\\\r?\n newline(0); -(\\\r?)|(.) ppy_error("Identifier expected"); - - /* - * Handle #else and #endif. - */ -{ws}+ ; -\n newline(1); yy_pop_state(); return tNL; -\\\r?\n newline(0); -. ppy_error("Garbage after #else or #endif."); - - /* - * Handle the special 'defined' keyword. - * This is necessary to get the identifier prior to any - * substitutions. - */ -{cident} yy_pop_state(); ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; -{ws}+ ; -(\()|(\)) return *ppy_text; -\\\r?\n newline(0); -(\\.)|(\n)|(.) ppy_error("Identifier expected"); - - /* - * Handle #error, #warning, #pragma and #ident. - * Pass everything literally to the parser, which - * will act appropriately. - * Comments are stripped from the literal text. - */ -[^/\\\n]+ if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } -\/[^/\\\n*]* if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } -(\\\r?)|(\/[^/*]) if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } -\n newline(1); yy_pop_state(); if(yy_current_state() != pp_ignore) { return tNL; } -\\\r?\n newline(0); - - /* - * Handle left side of #define - */ -{cident}\( ppy_lval.cptr = pp_xstrdup(ppy_text); if(ppy_lval.cptr) ppy_lval.cptr[ppy_leng-1] = '\0'; yy_pp_state(pp_macro); return tMACRO; -{cident} ppy_lval.cptr = pp_xstrdup(ppy_text); yy_pp_state(pp_define); return tDEFINE; -{ws}+ ; -\\\r?\n newline(0); -(\\\r?)|(\n)|(.) perror("Identifier expected"); - - /* - * Scan the substitution of a define - */ -[^'"/\\\n]+ ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; -(\\\r?)|(\/[^/*]) ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; -\\\r?\n{ws}+ newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL; -\\\r?\n newline(0); -\n newline(1); yy_pop_state(); return tNL; -\' new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); -\" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); - - /* - * Scan the definition macro arguments - */ -\){ws}* yy_pp_state(pp_mbody); return tMACROEND; -{ws}+ ; -{cident} ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; -, return ','; -"..." return tELIPSIS; -(\\\r?)|(\n)|(.)|(\.\.?) ppy_error("Argument identifier expected"); -\\\r?\n newline(0); - - /* - * Scan the substitution of a macro - */ -[^a-zA-Z0-9'"#/\\\n]+ ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; -{cident} ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; -\#\# return tCONCAT; -\# return tSTRINGIZE; -[0-9][a-zA-Z0-9]*[^a-zA-Z0-9'"#/\\\n]* ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; -(\\\r?)|(\/[^/*'"#\\\n]*) ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; -\\\r?\n{ws}+ newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL; -\\\r?\n newline(0); -\n newline(1); yy_pop_state(); return tNL; -\' new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); -\" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); - - /* - * Macro expansion text scanning. - * This state is active just after the identifier is scanned - * that triggers an expansion. We *must* delete the leading - * whitespace before we can start scanning for arguments. - * - * If we do not see a '(' as next trailing token, then we have - * a false alarm. We just continue with a nose-bleed... - */ -{ws}*/\( yy_pp_state(pp_macscan); -{ws}*\n { - if(yy_top_state() != pp_macscan) - newline(0); - } -{ws}*\\\r?\n newline(0); -{ws}+|{ws}*\\\r?|. { - macexpstackentry_t *mac = pop_macro(); - yy_pop_state(); - put_buffer(mac->ppp->ident, strlen(mac->ppp->ident)); - put_buffer(ppy_text, ppy_leng); - free_macro(mac); - } - - /* - * Macro expansion argument text scanning. - * This state is active when a macro's arguments are being read for expansion. - */ -\( { - if(++MACROPARENTHESES() > 1) - add_text_to_macro(ppy_text, ppy_leng); - } -\) { - if(--MACROPARENTHESES() == 0) - { - yy_pop_state(); - macro_add_arg(1); - } - else - add_text_to_macro(ppy_text, ppy_leng); - } -, { - if(MACROPARENTHESES() > 1) - add_text_to_macro(ppy_text, ppy_leng); - else - macro_add_arg(0); - } -\" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); -\' new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); -"/*" yy_push_state(pp_comment); add_text_to_macro(" ", 1); -\n pp_status.line_number++; pp_status.char_number = 1; add_text_to_macro(ppy_text, ppy_leng); -([^/(),\\\n"']+)|(\/[^/*(),\\\n'"]*)|(\\\r?)|(.) add_text_to_macro(ppy_text, ppy_leng); -\\\r?\n newline(0); - - /* - * Comment handling (almost all start-conditions) - */ -"/*" yy_push_state(pp_comment); -[^*\n]*|"*"+[^*/\n]* ; -\n newline(0); -"*"+"/" yy_pop_state(); - - /* - * Remove C++ style comment (almost all start-conditions) - */ -"//"[^\n]* { - if(ppy_text[ppy_leng-1] == '\\') - ppy_warning("C++ style comment ends with an escaped newline (escape ignored)"); - } - - /* - * Single, double and <> quoted constants - */ -\" pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); -\' pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); -[^"\\\n]+ add_string(ppy_text, ppy_leng); -\" { - add_string(ppy_text, ppy_leng); - yy_pop_state(); - switch(yy_current_state()) - { - case pp_pp: - case pp_define: - case pp_mbody: - case pp_inc: - case RCINCL: - if (yy_current_state()==RCINCL) yy_pop_state(); - ppy_lval.cptr = get_string(); - return tDQSTRING; - case pp_line: - ppy_lval.cptr = get_string(); - return tDQSTRING; - default: - put_string(); - } - } -[^'\\\n]+ add_string(ppy_text, ppy_leng); -\' { - add_string(ppy_text, ppy_leng); - yy_pop_state(); - switch(yy_current_state()) - { - case pp_if: - case pp_define: - case pp_mbody: - ppy_lval.cptr = get_string(); - return tSQSTRING; - default: - put_string(); - } - } -[^\>\\\n]+ add_string(ppy_text, ppy_leng); -\> { - add_string(ppy_text, ppy_leng); - yy_pop_state(); - ppy_lval.cptr = get_string(); - return tIQSTRING; - } -\\\r?\n { - /* - * This is tricky; we need to remove the line-continuation - * from preprocessor strings, but OTOH retain them in all - * other strings. This is because the resource grammar is - * even more braindead than initially analysed and line- - * continuations in strings introduce, sigh, newlines in - * the output. There goes the concept of non-breaking, non- - * spacing whitespace. - */ - switch(yy_top_state()) - { - case pp_pp: - case pp_define: - case pp_mbody: - case pp_inc: - case pp_line: - newline(0); - break; - default: - add_string(ppy_text, ppy_leng); - newline(-1); - } - } -\\. add_string(ppy_text, ppy_leng); -\n { - newline(1); - add_string(ppy_text, ppy_leng); - ppy_warning("Newline in string constant encountered (started line %d)", string_start()); - } - - /* - * Identifier scanning - */ -{cident} { - pp_entry_t *ppp; - pp_incl_state.seen_junk++; - if(!(ppp = pplookup(ppy_text))) - { - if(yy_current_state() == pp_inc) - ppy_error("Expected include filename"); - - else if(yy_current_state() == pp_if) - { - ppy_lval.cptr = pp_xstrdup(ppy_text); - return tIDENT; - } - else { - if((yy_current_state()==INITIAL) && (strcasecmp(ppy_text,"RCINCLUDE")==0)){ - yy_push_state(RCINCL); - return tRCINCLUDE; - } - else put_buffer(ppy_text, ppy_leng); - } - } - else if(!ppp->expanding) - { - switch(ppp->type) - { - case def_special: - expand_special(ppp); - break; - case def_define: - expand_define(ppp); - break; - case def_macro: - yy_push_state(pp_macign); - push_macro(ppp); - break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid define type %d\n", ppp->type); - } - } - else put_buffer(ppy_text, ppy_leng); - } - - /* - * Everything else that needs to be passed and - * newline and continuation handling - */ -[^a-zA-Z_#'"/\\\n \r\t\f\v]+|(\/|\\)[^a-zA-Z_/*'"\\\n \r\t\v\f]* pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng); -{ws}+ put_buffer(ppy_text, ppy_leng); -\n newline(1); -\\\r?\n newline(0); -\\\r? pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng); - - /* - * Special catcher for macro argmument expansion to prevent - * newlines to propagate to the output or admin. - */ -(\n)|(.)|(\\\r?(\n|.)) put_buffer(ppy_text, ppy_leng); - -[A-Za-z0-9_\.\\/]+ { - ppy_lval.cptr=pp_xstrdup(ppy_text); - yy_pop_state(); - return tRCINCLUDEPATH; - } - -{ws}+ ; - -\" { - new_string(); add_string(ppy_text,ppy_leng);yy_push_state(pp_dqs); - } - - /* - * This is a 'catch-all' rule to discover errors in the scanner - * in an orderly manner. - */ -<*>. pp_incl_state.seen_junk++; ppy_warning("Unmatched text '%c' (0x%02x); please report\n", isprint(*ppy_text & 0xff) ? *ppy_text : ' ', *ppy_text); - -<> { - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - bufferstackentry_t *bep = pop_buffer(); - - if((!bep && pp_get_if_depth()) || (bep && pp_get_if_depth() != bep->if_depth)) - ppy_warning("Unmatched #if/#endif at end of file"); - - if(!bep) - { - if(YY_START != INITIAL) - ppy_error("Unexpected end of file during preprocessing"); - yyterminate(); - } - else if(bep->should_pop == 2) - { - macexpstackentry_t *mac; - mac = pop_macro(); - expand_macro(mac); - } - ppy__delete_buffer(b); - } - -%% -/* - ************************************************************************** - * Support functions - ************************************************************************** - */ - -#ifndef ppy_wrap -int ppy_wrap(void) -{ - return 1; -} -#endif - - -/* - *------------------------------------------------------------------------- - * Output newlines or set them as continuations - * - * Input: -1 - Don't count this one, but update local position (see pp_dqs) - * 0 - Line-continuation seen and cache output - * 1 - Newline seen and flush output - *------------------------------------------------------------------------- - */ -static void newline(int dowrite) -{ - pp_status.line_number++; - pp_status.char_number = 1; - - if(dowrite == -1) - return; - - ncontinuations++; - if(dowrite) - { - for(;ncontinuations; ncontinuations--) - put_buffer("\n", 1); - } -} - - -/* - *------------------------------------------------------------------------- - * Make a number out of an any-base and suffixed string - * - * Possible number extensions: - * - "" int - * - "L" long int - * - "LL" long long int - * - "U" unsigned int - * - "UL" unsigned long int - * - "ULL" unsigned long long int - * - "LU" unsigned long int - * - "LLU" unsigned long long int - * - "LUL" invalid - * - * FIXME: - * The sizes of resulting 'int' and 'long' are compiler specific. - * I depend on sizeof(int) > 2 here (although a relatively safe - * assumption). - * Long longs are not yet implemented because this is very compiler - * specific and I don't want to think too much about the problems. - * - *------------------------------------------------------------------------- - */ -static int make_number(int radix, YYSTYPE *val, const char *str, int len) -{ - int is_l = 0; - int is_ll = 0; - int is_u = 0; - char ext[4]; - long l; - - ext[3] = '\0'; - ext[2] = toupper(str[len-1]); - ext[1] = len > 1 ? toupper(str[len-2]) : ' '; - ext[0] = len > 2 ? toupper(str[len-3]) : ' '; - - if(!strcmp(ext, "LUL")) - { - ppy_error("Invalid constant suffix"); - return 0; - } - else if(!strcmp(ext, "LLU") || !strcmp(ext, "ULL")) - { - is_ll++; - is_u++; - } - else if(!strcmp(ext+1, "LU") || !strcmp(ext+1, "UL")) - { - is_l++; - is_u++; - } - else if(!strcmp(ext+1, "LL")) - { - is_ll++; - } - else if(!strcmp(ext+2, "L")) - { - is_l++; - } - else if(!strcmp(ext+2, "U")) - { - is_u++; - } - - if(is_ll) - { -/* Assume as in the declaration of wrc_ull_t and wrc_sll_t */ -#ifdef HAVE_LONG_LONG - if (is_u) - { - errno = 0; - val->ull = strtoull(str, NULL, radix); - if (val->ull == ULLONG_MAX && errno == ERANGE) - ppy_error("integer constant %s is too large\n", str); - return tULONGLONG; - } - else - { - errno = 0; - val->sll = strtoll(str, NULL, radix); - if ((val->sll == LLONG_MIN || val->sll == LLONG_MAX) && errno == ERANGE) - ppy_error("integer constant %s is too large\n", str); - return tSLONGLONG; - } -#else - pp_internal_error(__FILE__, __LINE__, "long long constants not supported on this platform"); -#endif - } - else if(is_u && is_l) - { - errno = 0; - val->ulong = strtoul(str, NULL, radix); - if (val->ulong == ULONG_MAX && errno == ERANGE) - ppy_error("integer constant %s is too large\n", str); - return tULONG; - } - else if(!is_u && is_l) - { - errno = 0; - val->slong = strtol(str, NULL, radix); - if ((val->slong == LONG_MIN || val->slong == LONG_MAX) && errno == ERANGE) - ppy_error("integer constant %s is too large\n", str); - return tSLONG; - } - else if(is_u && !is_l) - { - unsigned long ul; - errno = 0; - ul = strtoul(str, NULL, radix); - if ((ul == ULONG_MAX && errno == ERANGE) || (ul > UINT_MAX)) - ppy_error("integer constant %s is too large\n", str); - val->uint = (unsigned int)ul; - return tUINT; - } - - /* Else it must be an int... */ - errno = 0; - l = strtol(str, NULL, radix); - if (((l == LONG_MIN || l == LONG_MAX) && errno == ERANGE) || - (l > INT_MAX) || (l < INT_MIN)) - ppy_error("integer constant %s is too large\n", str); - val->sint = (int)l; - return tSINT; -} - - -/* - *------------------------------------------------------------------------- - * Macro and define expansion support - * - * FIXME: Variable macro arguments. - *------------------------------------------------------------------------- - */ -static void expand_special(pp_entry_t *ppp) -{ - static char *buf = NULL; - char *new_buf; - - assert(ppp->type == def_special); - - if(!strcmp(ppp->ident, "__LINE__")) - { - new_buf = pp_xrealloc(buf, 32); - if(!new_buf) - return; - buf = new_buf; - sprintf(buf, "%d", pp_status.line_number); - } - else if(!strcmp(ppp->ident, "__FILE__")) - { - new_buf = pp_xrealloc(buf, strlen(pp_status.input) + 3); - if(!new_buf) - return; - buf = new_buf; - sprintf(buf, "\"%s\"", pp_status.input); - } - else - pp_internal_error(__FILE__, __LINE__, "Special macro '%s' not found...\n", ppp->ident); - - if(pp_flex_debug) - fprintf(stderr, "expand_special(%d): %s:%d: '%s' -> '%s'\n", - macexpstackidx, - pp_status.input, - pp_status.line_number, - ppp->ident, - buf ? buf : ""); - - if(buf && buf[0]) - { - push_buffer(ppp, NULL, NULL, 0); - yy_scan_string(buf); - } -} - -static void expand_define(pp_entry_t *ppp) -{ - assert(ppp->type == def_define); - - if(pp_flex_debug) - fprintf(stderr, "expand_define(%d): %s:%d: '%s' -> '%s'\n", - macexpstackidx, - pp_status.input, - pp_status.line_number, - ppp->ident, - ppp->subst.text); - if(ppp->subst.text && ppp->subst.text[0]) - { - push_buffer(ppp, NULL, NULL, 0); - yy_scan_string(ppp->subst.text); - } -} - -static int curdef_idx = 0; -static int curdef_alloc = 0; -static char *curdef_text = NULL; - -static void add_text(const char *str, int len) -{ - int new_alloc; - char *new_text; - - if(len == 0) - return; - if(curdef_idx >= curdef_alloc || curdef_alloc - curdef_idx < len) - { - new_alloc = curdef_alloc + ((len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1)); - new_text = pp_xrealloc(curdef_text, new_alloc * sizeof(curdef_text[0])); - if(!new_text) - return; - curdef_text = new_text; - curdef_alloc = new_alloc; - if(curdef_alloc > 65536) - ppy_warning("Reallocating macro-expansion buffer larger than 64kB"); - } - memcpy(&curdef_text[curdef_idx], str, len); - curdef_idx += len; -} - -static mtext_t *add_expand_text(mtext_t *mtp, macexpstackentry_t *mep, int *nnl) -{ - char *cptr; - char *exp; - int tag; - int n; - - if(mtp == NULL) - return NULL; - - switch(mtp->type) - { - case exp_text: - if(pp_flex_debug) - fprintf(stderr, "add_expand_text: exp_text: '%s'\n", mtp->subst.text); - add_text(mtp->subst.text, strlen(mtp->subst.text)); - break; - - case exp_stringize: - if(pp_flex_debug) - fprintf(stderr, "add_expand_text: exp_stringize(%d): '%s'\n", - mtp->subst.argidx, - mep->args[mtp->subst.argidx]); - cptr = mep->args[mtp->subst.argidx]; - add_text("\"", 1); - while(*cptr) - { - if(*cptr == '"' || *cptr == '\\') - add_text("\\", 1); - add_text(cptr, 1); - cptr++; - } - add_text("\"", 1); - break; - - case exp_concat: - if(pp_flex_debug) - fprintf(stderr, "add_expand_text: exp_concat\n"); - /* Remove trailing whitespace from current expansion text */ - while(curdef_idx) - { - if(isspace(curdef_text[curdef_idx-1] & 0xff)) - curdef_idx--; - else - break; - } - /* tag current position and recursively expand the next part */ - tag = curdef_idx; - mtp = add_expand_text(mtp->next, mep, nnl); - - /* Now get rid of the leading space of the expansion */ - cptr = &curdef_text[tag]; - n = curdef_idx - tag; - while(n) - { - if(isspace(*cptr & 0xff)) - { - cptr++; - n--; - } - else - break; - } - if(cptr != &curdef_text[tag]) - { - memmove(&curdef_text[tag], cptr, n); - curdef_idx -= (curdef_idx - tag) - n; - } - break; - - case exp_subst: - if((mtp->next && mtp->next->type == exp_concat) || (mtp->prev && mtp->prev->type == exp_concat)) - exp = mep->args[mtp->subst.argidx]; - else - exp = mep->ppargs[mtp->subst.argidx]; - if(exp) - { - add_text(exp, strlen(exp)); - *nnl -= mep->nnls[mtp->subst.argidx]; - cptr = strchr(exp, '\n'); - while(cptr) - { - *cptr = ' '; - cptr = strchr(cptr+1, '\n'); - } - mep->nnls[mtp->subst.argidx] = 0; - } - if(pp_flex_debug) - fprintf(stderr, "add_expand_text: exp_subst(%d): '%s'\n", mtp->subst.argidx, exp); - break; - - default: - pp_internal_error(__FILE__, __LINE__, "Invalid expansion type (%d) in macro expansion\n", mtp->type); - } - return mtp; -} - -static void expand_macro(macexpstackentry_t *mep) -{ - mtext_t *mtp; - int n, k; - char *cptr; - int nnl = 0; - pp_entry_t *ppp = mep->ppp; - int nargs = mep->nargs; - - assert(ppp->type == def_macro); - assert(ppp->expanding == 0); - - if((ppp->nargs >= 0 && nargs != ppp->nargs) || (ppp->nargs < 0 && nargs < -ppp->nargs)) - { - ppy_error("Too %s macro arguments (%d)", nargs < abs(ppp->nargs) ? "few" : "many", nargs); - return; - } - - for(n = 0; n < nargs; n++) - nnl += mep->nnls[n]; - - if(pp_flex_debug) - fprintf(stderr, "expand_macro(%d): %s:%d: '%s'(%d,%d) -> ...\n", - macexpstackidx, - pp_status.input, - pp_status.line_number, - ppp->ident, - mep->nargs, - nnl); - - curdef_idx = 0; - - for(mtp = ppp->subst.mtext; mtp; mtp = mtp->next) - { - if(!(mtp = add_expand_text(mtp, mep, &nnl))) - break; - } - - for(n = 0; n < nnl; n++) - add_text("\n", 1); - - /* To make sure there is room and termination (see below) */ - add_text(" \0", 2); - - /* Strip trailing whitespace from expansion */ - for(k = curdef_idx, cptr = &curdef_text[curdef_idx-1]; k > 0; k--, cptr--) - { - if(!isspace(*cptr & 0xff)) - break; - } - - /* - * We must add *one* whitespace to make sure that there - * is a token-separation after the expansion. - */ - *(++cptr) = ' '; - *(++cptr) = '\0'; - k++; - - /* Strip leading whitespace from expansion */ - for(n = 0, cptr = curdef_text; n < k; n++, cptr++) - { - if(!isspace(*cptr & 0xff)) - break; - } - - if(k - n > 0) - { - if(pp_flex_debug) - fprintf(stderr, "expand_text: '%s'\n", curdef_text + n); - push_buffer(ppp, NULL, NULL, 0); - /*yy_scan_bytes(curdef_text + n, k - n);*/ - yy_scan_string(curdef_text + n); - } -} - -/* - *------------------------------------------------------------------------- - * String collection routines - *------------------------------------------------------------------------- - */ -static void new_string(void) -{ -#ifdef DEBUG - if(strbuf_idx) - ppy_warning("new_string: strbuf_idx != 0"); -#endif - strbuf_idx = 0; - str_startline = pp_status.line_number; -} - -static void add_string(const char *str, int len) -{ - int new_alloc; - char *new_buffer; - - if(len == 0) - return; - if(strbuf_idx >= strbuf_alloc || strbuf_alloc - strbuf_idx < len) - { - new_alloc = strbuf_alloc + ((len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1)); - new_buffer = pp_xrealloc(strbuffer, new_alloc * sizeof(strbuffer[0])); - if(!new_buffer) - return; - strbuffer = new_buffer; - strbuf_alloc = new_alloc; - if(strbuf_alloc > 65536) - ppy_warning("Reallocating string buffer larger than 64kB"); - } - memcpy(&strbuffer[strbuf_idx], str, len); - strbuf_idx += len; -} - -static char *get_string(void) -{ - char *str = pp_xmalloc(strbuf_idx + 1); - if(!str) - return NULL; - memcpy(str, strbuffer, strbuf_idx); - str[strbuf_idx] = '\0'; -#ifdef DEBUG - strbuf_idx = 0; -#endif - return str; -} - -static void put_string(void) -{ - put_buffer(strbuffer, strbuf_idx); -#ifdef DEBUG - strbuf_idx = 0; -#endif -} - -static int string_start(void) -{ - return str_startline; -} - - -/* - *------------------------------------------------------------------------- - * Buffer management - *------------------------------------------------------------------------- - */ -static void push_buffer(pp_entry_t *ppp, char *filename, char *incname, int pop) -{ - if(ppy_debug) - printf("push_buffer(%d): %p %p %p %d\n", bufferstackidx, ppp, filename, incname, pop); - if(bufferstackidx >= MAXBUFFERSTACK) - pp_internal_error(__FILE__, __LINE__, "Buffer stack overflow"); - - memset(&bufferstack[bufferstackidx], 0, sizeof(bufferstack[0])); - bufferstack[bufferstackidx].bufferstate = YY_CURRENT_BUFFER; - bufferstack[bufferstackidx].filehandle = pp_status.file; - bufferstack[bufferstackidx].define = ppp; - bufferstack[bufferstackidx].line_number = pp_status.line_number; - bufferstack[bufferstackidx].char_number = pp_status.char_number; - bufferstack[bufferstackidx].if_depth = pp_get_if_depth(); - bufferstack[bufferstackidx].should_pop = pop; - bufferstack[bufferstackidx].filename = pp_status.input; - bufferstack[bufferstackidx].ncontinuations = ncontinuations; - bufferstack[bufferstackidx].incl = pp_incl_state; - bufferstack[bufferstackidx].include_filename = incname; - - if(ppp) - ppp->expanding = 1; - else if(filename) - { - /* These will track the ppy_error to the correct file and line */ - pp_status.line_number = 1; - pp_status.char_number = 1; - pp_status.input = filename; - ncontinuations = 0; - } - else if(!pop) - pp_internal_error(__FILE__, __LINE__, "Pushing buffer without knowing where to go to"); - bufferstackidx++; -} - -static bufferstackentry_t *pop_buffer(void) -{ - if(bufferstackidx < 0) - pp_internal_error(__FILE__, __LINE__, "Bufferstack underflow?"); - - if(bufferstackidx == 0) - return NULL; - - bufferstackidx--; - - if(bufferstack[bufferstackidx].define) - bufferstack[bufferstackidx].define->expanding = 0; - else - { - if(!bufferstack[bufferstackidx].should_pop) - { - wpp_callbacks->close(pp_status.file); - pp_writestring("# %d \"%s\" 2\n", bufferstack[bufferstackidx].line_number, bufferstack[bufferstackidx].filename); - - /* We have EOF, check the include logic */ - if(pp_incl_state.state == 2 && !pp_incl_state.seen_junk && pp_incl_state.ppp) - { - pp_entry_t *ppp = pplookup(pp_incl_state.ppp); - if(ppp) - { - includelogicentry_t *iep = pp_xmalloc(sizeof(includelogicentry_t)); - if(!iep) - return NULL; - - iep->ppp = ppp; - ppp->iep = iep; - iep->filename = bufferstack[bufferstackidx].include_filename; - iep->prev = NULL; - iep->next = pp_includelogiclist; - if(iep->next) - iep->next->prev = iep; - pp_includelogiclist = iep; - if(pp_status.debug) - fprintf(stderr, "pop_buffer: %s:%d: includelogic added, include_ppp='%s', file='%s'\n", bufferstack[bufferstackidx].filename, bufferstack[bufferstackidx].line_number, pp_incl_state.ppp, iep->filename); - } - else - free(bufferstack[bufferstackidx].include_filename); - } - free(pp_incl_state.ppp); - pp_incl_state = bufferstack[bufferstackidx].incl; - - } - pp_status.line_number = bufferstack[bufferstackidx].line_number; - pp_status.char_number = bufferstack[bufferstackidx].char_number; - pp_status.input = bufferstack[bufferstackidx].filename; - ncontinuations = bufferstack[bufferstackidx].ncontinuations; - } - - if(ppy_debug) - printf("pop_buffer(%d): %p %p (%d, %d, %d) %p %d\n", - bufferstackidx, - bufferstack[bufferstackidx].bufferstate, - bufferstack[bufferstackidx].define, - bufferstack[bufferstackidx].line_number, - bufferstack[bufferstackidx].char_number, - bufferstack[bufferstackidx].if_depth, - bufferstack[bufferstackidx].filename, - bufferstack[bufferstackidx].should_pop); - - pp_status.file = bufferstack[bufferstackidx].filehandle; - ppy__switch_to_buffer(bufferstack[bufferstackidx].bufferstate); - - if(bufferstack[bufferstackidx].should_pop) - { - if(yy_current_state() == pp_macexp) - macro_add_expansion(); - else - pp_internal_error(__FILE__, __LINE__, "Pop buffer and state without macro expansion state"); - yy_pop_state(); - } - - return &bufferstack[bufferstackidx]; -} - - -/* - *------------------------------------------------------------------------- - * Macro nestng support - *------------------------------------------------------------------------- - */ -static void push_macro(pp_entry_t *ppp) -{ - if(macexpstackidx >= MAXMACEXPSTACK) - { - ppy_error("Too many nested macros"); - return; - } - - macexpstack[macexpstackidx] = pp_xmalloc(sizeof(macexpstack[0][0])); - if(!macexpstack[macexpstackidx]) - return; - memset( macexpstack[macexpstackidx], 0, sizeof(macexpstack[0][0])); - macexpstack[macexpstackidx]->ppp = ppp; - macexpstackidx++; -} - -static macexpstackentry_t *top_macro(void) -{ - return macexpstackidx > 0 ? macexpstack[macexpstackidx-1] : NULL; -} - -static macexpstackentry_t *pop_macro(void) -{ - if(macexpstackidx <= 0) - pp_internal_error(__FILE__, __LINE__, "Macro expansion stack underflow\n"); - return macexpstack[--macexpstackidx]; -} - -static void free_macro(macexpstackentry_t *mep) -{ - int i; - - for(i = 0; i < mep->nargs; i++) - free(mep->args[i]); - free(mep->args); - free(mep->nnls); - free(mep->curarg); - free(mep); -} - -static void add_text_to_macro(const char *text, int len) -{ - macexpstackentry_t *mep = top_macro(); - - assert(mep->ppp->expanding == 0); - - if(mep->curargalloc - mep->curargsize <= len+1) /* +1 for '\0' */ - { - char *new_curarg; - int new_alloc = mep->curargalloc + ((ALLOCBLOCKSIZE > len+1) ? ALLOCBLOCKSIZE : len+1); - new_curarg = pp_xrealloc(mep->curarg, new_alloc * sizeof(mep->curarg[0])); - if(!new_curarg) - return; - mep->curarg = new_curarg; - mep->curargalloc = new_alloc; - } - memcpy(mep->curarg + mep->curargsize, text, len); - mep->curargsize += len; - mep->curarg[mep->curargsize] = '\0'; -} - -static void macro_add_arg(int last) -{ - int nnl = 0; - char *cptr; - char **new_args, **new_ppargs; - int *new_nnls; - macexpstackentry_t *mep = top_macro(); - - assert(mep->ppp->expanding == 0); - - new_args = pp_xrealloc(mep->args, (mep->nargs+1) * sizeof(mep->args[0])); - if(!new_args) - return; - mep->args = new_args; - - new_ppargs = pp_xrealloc(mep->ppargs, (mep->nargs+1) * sizeof(mep->ppargs[0])); - if(!new_ppargs) - return; - mep->ppargs = new_ppargs; - - new_nnls = pp_xrealloc(mep->nnls, (mep->nargs+1) * sizeof(mep->nnls[0])); - if(!new_nnls) - return; - mep->nnls = new_nnls; - - mep->args[mep->nargs] = pp_xstrdup(mep->curarg ? mep->curarg : ""); - if(!mep->args[mep->nargs]) - return; - cptr = mep->args[mep->nargs]-1; - while((cptr = strchr(cptr+1, '\n'))) - { - nnl++; - } - mep->nnls[mep->nargs] = nnl; - mep->nargs++; - free(mep->curarg); - mep->curargalloc = mep->curargsize = 0; - mep->curarg = NULL; - - if(pp_flex_debug) - fprintf(stderr, "macro_add_arg: %s:%d: %d -> '%s'\n", - pp_status.input, - pp_status.line_number, - mep->nargs-1, - mep->args[mep->nargs-1]); - - /* Each macro argument must be expanded to cope with stingize */ - if(last || mep->args[mep->nargs-1][0]) - { - yy_push_state(pp_macexp); - push_buffer(NULL, NULL, NULL, last ? 2 : 1); - yy_scan_string(mep->args[mep->nargs-1]); - /*mep->bufferstackidx = bufferstackidx; But not nested! */ - } -} - -static void macro_add_expansion(void) -{ - macexpstackentry_t *mep = top_macro(); - - assert(mep->ppp->expanding == 0); - - mep->ppargs[mep->nargs-1] = pp_xstrdup(mep->curarg ? mep->curarg : ""); - free(mep->curarg); - mep->curargalloc = mep->curargsize = 0; - mep->curarg = NULL; - - if(pp_flex_debug) - fprintf(stderr, "macro_add_expansion: %s:%d: %d -> '%s'\n", - pp_status.input, - pp_status.line_number, - mep->nargs-1, - mep->ppargs[mep->nargs-1] ? mep->ppargs[mep->nargs-1] : ""); -} - - -/* - *------------------------------------------------------------------------- - * Output management - *------------------------------------------------------------------------- - */ -static void put_buffer(const char *s, int len) -{ - if(top_macro()) - add_text_to_macro(s, len); - else - wpp_callbacks->write(s, len); -} - - -/* - *------------------------------------------------------------------------- - * Include management - *------------------------------------------------------------------------- - */ -void pp_do_include(char *fname, int type) -{ - char *newpath; - int n; - includelogicentry_t *iep; - void *fp; - - if(!fname) - return; - - for(iep = pp_includelogiclist; iep; iep = iep->next) - { - if(!strcmp(iep->filename, fname)) - { - /* - * We are done. The file was included before. - * If the define was deleted, then this entry would have - * been deleted too. - */ - return; - } - } - - n = strlen(fname); - - if(n <= 2) - { - ppy_error("Empty include filename"); - return; - } - - /* Undo the effect of the quotation */ - fname[n-1] = '\0'; - - if((fp = pp_open_include(fname+1, type ? pp_status.input : NULL, &newpath)) == NULL) - { - ppy_error("Unable to open include file %s", fname+1); - return; - } - - fname[n-1] = *fname; /* Redo the quotes */ - push_buffer(NULL, newpath, fname, 0); - pp_incl_state.seen_junk = 0; - pp_incl_state.state = 0; - pp_incl_state.ppp = NULL; - - if(pp_status.debug) - fprintf(stderr, "pp_do_include: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d\n", - pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth); - pp_status.file = fp; - ppy__switch_to_buffer(ppy__create_buffer(NULL, YY_BUF_SIZE)); - - pp_writestring("# 1 \"%s\" 1%s\n", newpath, type ? "" : " 3"); -} - -/* - *------------------------------------------------------------------------- - * Push/pop preprocessor ignore state when processing conditionals - * which are false. - *------------------------------------------------------------------------- - */ -void pp_push_ignore_state(void) -{ - yy_push_state(pp_ignore); -} - -void pp_pop_ignore_state(void) -{ - yy_pop_state(); -} diff --git a/reactos/tools/wpp/ppy.tab.c b/reactos/tools/wpp/ppy.tab.c deleted file mode 100644 index 53dc231772c..00000000000 --- a/reactos/tools/wpp/ppy.tab.c +++ /dev/null @@ -1,2842 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.4.2. */ - -/* Skeleton implementation for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software - Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -/* Identify Bison output. */ -#define YYBISON 1 - -/* Bison version. */ -#define YYBISON_VERSION "2.4.2" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 0 - -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - -/* Using locations. */ -#define YYLSP_NEEDED 0 - -/* Substitute the variable and function names. */ -#define yyparse ppy_parse -#define yylex ppy_lex -#define yyerror ppy_error -#define yylval ppy_lval -#define yychar ppy_char -#define yydebug ppy_debug -#define yynerrs ppy_nerrs - - -/* Copy the first part of user declarations. */ - -/* Line 189 of yacc.c */ -#line 30 "ppy.y" - -#include "config.h" -#include "wine/port.h" - -#include -#include -#include -#include -#include -#include - -#include "wpp_private.h" - - -#define UNARY_OP(r, v, OP) \ - switch(v.type) \ - { \ - case cv_sint: r.val.si = OP v.val.si; break; \ - case cv_uint: r.val.ui = OP v.val.ui; break; \ - case cv_slong: r.val.sl = OP v.val.sl; break; \ - case cv_ulong: r.val.ul = OP v.val.ul; break; \ - case cv_sll: r.val.sll = OP v.val.sll; break; \ - case cv_ull: r.val.ull = OP v.val.ull; break; \ - } - -#define cv_signed(v) ((v.type & FLAG_SIGNED) != 0) - -#define BIN_OP_INT(r, v1, v2, OP) \ - r.type = v1.type; \ - if(cv_signed(v1) && cv_signed(v2)) \ - r.val.si = v1.val.si OP v2.val.si; \ - else if(cv_signed(v1) && !cv_signed(v2)) \ - r.val.si = v1.val.si OP (signed) v2.val.ui; \ - else if(!cv_signed(v1) && cv_signed(v2)) \ - r.val.si = (signed) v1.val.ui OP v2.val.si; \ - else \ - r.val.ui = v1.val.ui OP v2.val.ui; - -#define BIN_OP_LONG(r, v1, v2, OP) \ - r.type = v1.type; \ - if(cv_signed(v1) && cv_signed(v2)) \ - r.val.sl = v1.val.sl OP v2.val.sl; \ - else if(cv_signed(v1) && !cv_signed(v2)) \ - r.val.sl = v1.val.sl OP (signed long) v2.val.ul; \ - else if(!cv_signed(v1) && cv_signed(v2)) \ - r.val.sl = (signed long) v1.val.ul OP v2.val.sl; \ - else \ - r.val.ul = v1.val.ul OP v2.val.ul; - -#define BIN_OP_LONGLONG(r, v1, v2, OP) \ - r.type = v1.type; \ - if(cv_signed(v1) && cv_signed(v2)) \ - r.val.sll = v1.val.sll OP v2.val.sll; \ - else if(cv_signed(v1) && !cv_signed(v2)) \ - r.val.sll = v1.val.sll OP (wrc_sll_t) v2.val.ull; \ - else if(!cv_signed(v1) && cv_signed(v2)) \ - r.val.sll = (wrc_sll_t) v1.val.ull OP v2.val.sll; \ - else \ - r.val.ull = v1.val.ull OP v2.val.ull; - -#define BIN_OP(r, v1, v2, OP) \ - switch(v1.type & SIZE_MASK) \ - { \ - case SIZE_INT: BIN_OP_INT(r, v1, v2, OP); break; \ - case SIZE_LONG: BIN_OP_LONG(r, v1, v2, OP); break; \ - case SIZE_LONGLONG: BIN_OP_LONGLONG(r, v1, v2, OP); break; \ - default: pp_internal_error(__FILE__, __LINE__, "Invalid type indicator (0x%04x)", v1.type); \ - } - - -/* - * Prototypes - */ -static int boolean(cval_t *v); -static void promote_equal_size(cval_t *v1, cval_t *v2); -static void cast_to_sint(cval_t *v); -static void cast_to_uint(cval_t *v); -static void cast_to_slong(cval_t *v); -static void cast_to_ulong(cval_t *v); -static void cast_to_sll(cval_t *v); -static void cast_to_ull(cval_t *v); -static marg_t *new_marg(char *str, def_arg_t type); -static marg_t *add_new_marg(char *str, def_arg_t type); -static int marg_index(char *id); -static mtext_t *new_mtext(char *str, int idx, def_exp_t type); -static mtext_t *combine_mtext(mtext_t *tail, mtext_t *mtp); -static char *merge_text(char *s1, char *s2); - -/* - * Local variables - */ -static marg_t **macro_args; /* Macro parameters array while parsing */ -static int nmacro_args; - - - -/* Line 189 of yacc.c */ -#line 177 "ppy.tab.c" - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - tRCINCLUDE = 258, - tIF = 259, - tIFDEF = 260, - tIFNDEF = 261, - tELSE = 262, - tELIF = 263, - tENDIF = 264, - tDEFINED = 265, - tNL = 266, - tINCLUDE = 267, - tLINE = 268, - tGCCLINE = 269, - tERROR = 270, - tWARNING = 271, - tPRAGMA = 272, - tPPIDENT = 273, - tUNDEF = 274, - tMACROEND = 275, - tCONCAT = 276, - tELIPSIS = 277, - tSTRINGIZE = 278, - tIDENT = 279, - tLITERAL = 280, - tMACRO = 281, - tDEFINE = 282, - tDQSTRING = 283, - tSQSTRING = 284, - tIQSTRING = 285, - tUINT = 286, - tSINT = 287, - tULONG = 288, - tSLONG = 289, - tULONGLONG = 290, - tSLONGLONG = 291, - tRCINCLUDEPATH = 292, - tLOGOR = 293, - tLOGAND = 294, - tNE = 295, - tEQ = 296, - tGTE = 297, - tLTE = 298, - tRSHIFT = 299, - tLSHIFT = 300 - }; -#endif - - - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -{ - -/* Line 214 of yacc.c */ -#line 126 "ppy.y" - - int sint; - unsigned int uint; - long slong; - unsigned long ulong; - wrc_sll_t sll; - wrc_ull_t ull; - int *iptr; - char *cptr; - cval_t cval; - marg_t *marg; - mtext_t *mtext; - - - -/* Line 214 of yacc.c */ -#line 274 "ppy.tab.c" -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - - -/* Copy the second part of user declarations. */ - - -/* Line 264 of yacc.c */ -#line 286 "ppy.tab.c" - -#ifdef short -# undef short -#endif - -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; -#endif - -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; -#else -typedef short int yytype_int8; -#endif - -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; -#else -typedef unsigned short int yytype_uint16; -#endif - -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; -#else -typedef short int yytype_int16; -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned int -# endif -#endif - -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) - -#ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS -# if ENABLE_NLS -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) -# endif -# endif -# ifndef YY_ -# define YY_(msgid) msgid -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) -#else -# define YYUSE(e) /* empty */ -#endif - -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) -#else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int yyi) -#else -static int -YYID (yyi) - int yyi; -#endif -{ - return yyi; -} -#endif - -#if ! defined yyoverflow || YYERROR_VERBOSE - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# elif defined __BUILTIN_VA_ARG_INCR -# include /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 -# endif -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -# endif -# else -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -# endif -# if (defined __cplusplus && ! defined _STDLIB_H \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - - -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - yytype_int16 yyss_alloc; - YYSTYPE yyvs_alloc; -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) - -#endif - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 2 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 303 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 62 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 13 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 84 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 153 - -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 -#define YYMAXUTOK 300 - -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const yytype_uint8 yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 58, 2, 2, 2, 2, 44, 2, - 60, 61, 55, 53, 59, 54, 2, 56, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 39, 2, - 47, 2, 48, 38, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 43, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 42, 2, 57, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 40, 41, 45, 46, 49, 50, 51, - 52 -}; - -#if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 4, 7, 11, 15, 19, 23, 27, - 31, 34, 37, 41, 45, 52, 57, 62, 68, 75, - 83, 92, 95, 99, 103, 107, 111, 114, 117, 118, - 120, 122, 124, 126, 129, 132, 135, 136, 137, 139, - 141, 145, 149, 151, 152, 154, 156, 159, 161, 163, - 165, 167, 170, 172, 174, 176, 178, 180, 182, 184, - 187, 192, 194, 198, 202, 206, 210, 214, 218, 222, - 226, 230, 234, 238, 242, 246, 250, 254, 258, 262, - 265, 268, 271, 274, 278 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int8 yyrhs[] = -{ - 63, 0, -1, -1, 63, 64, -1, 12, 28, 11, - -1, 12, 30, 11, -1, 4, 74, 11, -1, 5, - 24, 11, -1, 6, 24, 11, -1, 8, 74, 11, - -1, 7, 11, -1, 9, 11, -1, 19, 24, 11, - -1, 27, 65, 11, -1, 26, 67, 68, 20, 71, - 11, -1, 13, 32, 28, 11, -1, 14, 32, 28, - 11, -1, 14, 32, 28, 32, 11, -1, 14, 32, - 28, 32, 32, 11, -1, 14, 32, 28, 32, 32, - 32, 11, -1, 14, 32, 28, 32, 32, 32, 32, - 11, -1, 14, 11, -1, 15, 65, 11, -1, 16, - 65, 11, -1, 17, 65, 11, -1, 18, 65, 11, - -1, 3, 37, -1, 3, 28, -1, -1, 66, -1, - 25, -1, 28, -1, 29, -1, 66, 25, -1, 66, - 28, -1, 66, 29, -1, -1, -1, 69, -1, 70, - -1, 70, 59, 22, -1, 70, 59, 24, -1, 24, - -1, -1, 72, -1, 73, -1, 72, 73, -1, 25, - -1, 28, -1, 29, -1, 21, -1, 23, 24, -1, - 24, -1, 32, -1, 31, -1, 34, -1, 33, -1, - 36, -1, 35, -1, 10, 24, -1, 10, 60, 24, - 61, -1, 24, -1, 74, 40, 74, -1, 74, 41, - 74, -1, 74, 46, 74, -1, 74, 45, 74, -1, - 74, 47, 74, -1, 74, 48, 74, -1, 74, 50, - 74, -1, 74, 49, 74, -1, 74, 53, 74, -1, - 74, 54, 74, -1, 74, 43, 74, -1, 74, 44, - 74, -1, 74, 42, 74, -1, 74, 55, 74, -1, - 74, 56, 74, -1, 74, 52, 74, -1, 74, 51, - 74, -1, 53, 74, -1, 54, 74, -1, 57, 74, - -1, 58, 74, -1, 60, 74, 61, -1, 74, 38, - 74, 39, 74, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = -{ - 0, 181, 181, 182, 186, 187, 188, 189, 190, 210, - 234, 260, 277, 278, 279, 282, 283, 284, 286, 288, - 290, 292, 293, 294, 295, 296, 297, 310, 316, 317, - 320, 321, 322, 323, 324, 325, 328, 331, 332, 335, - 336, 339, 340, 344, 345, 351, 352, 355, 356, 357, - 358, 359, 366, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406 -}; -#endif - -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "$end", "error", "$undefined", "tRCINCLUDE", "tIF", "tIFDEF", "tIFNDEF", - "tELSE", "tELIF", "tENDIF", "tDEFINED", "tNL", "tINCLUDE", "tLINE", - "tGCCLINE", "tERROR", "tWARNING", "tPRAGMA", "tPPIDENT", "tUNDEF", - "tMACROEND", "tCONCAT", "tELIPSIS", "tSTRINGIZE", "tIDENT", "tLITERAL", - "tMACRO", "tDEFINE", "tDQSTRING", "tSQSTRING", "tIQSTRING", "tUINT", - "tSINT", "tULONG", "tSLONG", "tULONGLONG", "tSLONGLONG", - "tRCINCLUDEPATH", "'?'", "':'", "tLOGOR", "tLOGAND", "'|'", "'^'", "'&'", - "tNE", "tEQ", "'<'", "'>'", "tGTE", "tLTE", "tRSHIFT", "tLSHIFT", "'+'", - "'-'", "'*'", "'/'", "'~'", "'!'", "','", "'('", "')'", "$accept", - "pp_file", "preprocessor", "opt_text", "text", "res_arg", "allmargs", - "emargs", "margs", "opt_mtexts", "mtexts", "mtext", "pp_expr", 0 -}; -#endif - -# ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const yytype_uint16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 63, 58, - 293, 294, 124, 94, 38, 295, 296, 60, 62, 297, - 298, 299, 300, 43, 45, 42, 47, 126, 33, 44, - 40, 41 -}; -# endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = -{ - 0, 62, 63, 63, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 65, 65, - 66, 66, 66, 66, 66, 66, 67, 68, 68, 69, - 69, 70, 70, 71, 71, 72, 72, 73, 73, 73, - 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 0, 2, 3, 3, 3, 3, 3, 3, - 2, 2, 3, 3, 6, 4, 4, 5, 6, 7, - 8, 2, 3, 3, 3, 3, 2, 2, 0, 1, - 1, 1, 1, 2, 2, 2, 0, 0, 1, 1, - 3, 3, 1, 0, 1, 1, 2, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, - 4, 1, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 2, 3, 5 -}; - -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint8 yydefact[] = -{ - 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 28, 28, 28, 28, 0, 36, 28, - 3, 27, 26, 0, 61, 54, 53, 56, 55, 58, - 57, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 11, 0, 0, 0, 21, 0, 30, 31, 32, - 0, 29, 0, 0, 0, 0, 37, 0, 59, 0, - 79, 80, 81, 82, 0, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 8, 9, 4, 5, 0, - 0, 22, 33, 34, 35, 23, 24, 25, 12, 42, - 0, 38, 39, 13, 0, 83, 0, 62, 63, 74, - 72, 73, 65, 64, 66, 67, 69, 68, 78, 77, - 70, 71, 75, 76, 15, 16, 0, 43, 0, 60, - 0, 17, 0, 50, 0, 52, 47, 48, 49, 0, - 44, 45, 40, 41, 84, 18, 0, 51, 14, 46, - 19, 0, 20 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 1, 20, 50, 51, 56, 100, 101, 102, 139, - 140, 141, 36 -}; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -27 -static const yytype_int16 yypact[] = -{ - -27, 142, -27, -26, -3, -12, -2, 30, -3, 41, - 91, 21, 2, -19, -19, -19, -19, 32, -27, -19, - -27, -27, -27, -23, -27, -27, -27, -27, -27, -27, - -27, -3, -3, -3, -3, -3, 38, 66, 109, -27, - 85, -27, 113, 133, 115, -27, 124, -27, -27, -27, - 179, -9, 278, 280, 281, 282, 129, 283, -27, 271, - -10, -10, -27, -27, 57, -27, -3, -3, -3, -3, - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -27, -27, -27, -27, -27, 285, - 3, -27, -27, -27, -27, -27, -27, -27, -27, -27, - 277, -27, 239, -27, 238, -27, 132, 167, 182, 196, - 209, 221, 231, 231, 111, 111, 111, 111, 61, 61, - -10, -10, -27, -27, -27, -27, 4, 19, 266, -27, - -3, -27, 6, -27, 276, -27, -27, -27, -27, 290, - 19, -27, -27, -27, 151, -27, 7, -27, -27, -27, - -27, 291, -27 -}; - -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -27, -27, -27, -11, -27, -27, -27, -27, -27, -27, - -27, 163, -8 -}; - -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -1 -static const yytype_uint8 yytable[] = -{ - 40, 58, 21, 52, 53, 54, 47, 23, 57, 48, - 49, 22, 37, 45, 125, 131, 92, 145, 150, 93, - 94, 24, 38, 60, 61, 62, 63, 64, 25, 26, - 27, 28, 29, 30, 46, 126, 132, 59, 146, 151, - 133, 39, 134, 135, 136, 82, 83, 137, 138, 65, - 31, 32, 41, 44, 33, 34, 55, 35, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 66, 84, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 66, 86, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 80, 81, 82, 83, 105, 42, - 85, 43, 144, 66, 87, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 2, 89, 88, 3, 4, 5, 6, 7, - 8, 9, 90, 99, 10, 11, 12, 13, 14, 15, - 16, 17, 78, 79, 80, 81, 82, 83, 18, 19, - 66, 130, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 66, - 91, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 142, 95, - 143, 96, 97, 98, 103, 104, 124, 127, 128, 129, - 147, 148, 152, 149 -}; - -static const yytype_uint8 yycheck[] = -{ - 8, 24, 28, 14, 15, 16, 25, 10, 19, 28, - 29, 37, 24, 11, 11, 11, 25, 11, 11, 28, - 29, 24, 24, 31, 32, 33, 34, 35, 31, 32, - 33, 34, 35, 36, 32, 32, 32, 60, 32, 32, - 21, 11, 23, 24, 25, 55, 56, 28, 29, 11, - 53, 54, 11, 32, 57, 58, 24, 60, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 38, 11, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 38, 11, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 53, 54, 55, 56, 61, 28, - 11, 30, 130, 38, 11, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 0, 28, 11, 3, 4, 5, 6, 7, - 8, 9, 28, 24, 12, 13, 14, 15, 16, 17, - 18, 19, 51, 52, 53, 54, 55, 56, 26, 27, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 38, - 11, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 22, 11, - 24, 11, 11, 11, 11, 24, 11, 20, 59, 61, - 24, 11, 11, 140 -}; - -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = -{ - 0, 63, 0, 3, 4, 5, 6, 7, 8, 9, - 12, 13, 14, 15, 16, 17, 18, 19, 26, 27, - 64, 28, 37, 10, 24, 31, 32, 33, 34, 35, - 36, 53, 54, 57, 58, 60, 74, 24, 24, 11, - 74, 11, 28, 30, 32, 11, 32, 25, 28, 29, - 65, 66, 65, 65, 65, 24, 67, 65, 24, 60, - 74, 74, 74, 74, 74, 11, 38, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 11, 11, 11, 11, 11, 28, - 28, 11, 25, 28, 29, 11, 11, 11, 11, 24, - 68, 69, 70, 11, 24, 61, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 11, 11, 32, 20, 59, 61, - 39, 11, 32, 21, 23, 24, 25, 28, 29, 71, - 72, 73, 22, 24, 74, 11, 32, 24, 11, 73, - 11, 32, 11 -}; - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ - -#define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif - -#define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) - - -#define YYTERROR 1 -#define YYERRCODE 256 - - -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif - - -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ - -#ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) -#else -# define YYLEX yylex () -#endif - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif -{ - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); -# endif - switch (yytype) - { - default: - break; - } -} - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif -{ - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); - - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -#else -static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; -#endif -{ - YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } - YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif -{ - int yynrhs = yyr2[yyrule]; - int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - YYFPRINTF (stderr, "\n"); - } -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ - - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - - - -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static YYSIZE_T -yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static char * -yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; - - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - - if (yysize_overflow) - return YYSIZE_MAXIMUM; - - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; - } -} -#endif /* YYERROR_VERBOSE */ - - -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; -#endif -{ - YYUSE (yyvaluep); - - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - - switch (yytype) - { - - default: - break; - } -} - -/* Prevent warnings from -Wmissing-prototypes. */ -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - - -/* The lookahead symbol. */ -int yychar; - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval; - -/* Number of syntax errors so far. */ -int yynerrs; - - - -/*-------------------------. -| yyparse or yypush_parse. | -`-------------------------*/ - -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void) -#else -int -yyparse () - -#endif -#endif -{ - - - int yystate; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; - - YYSIZE_T yystacksize; - - int yyn; - int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - - yytoken = 0; - yyss = yyssa; - yyvs = yyvsa; - yystacksize = YYINITDEPTH; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - yyssp = yyss; - yyvsp = yyvs; - - goto yysetstate; - -/*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | -`------------------------------------------------------------*/ - yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. So pushing a state here evens the stacks. */ - yyssp++; - - yysetstate: - *yyssp = yystate; - - if (yyss + yystacksize - 1 <= yyssp) - { - /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; - -#ifdef yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; - - { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; - } - - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - - if (yystate == YYFINAL) - YYACCEPT; - - goto yybackup; - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - - /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to lookahead token. */ - yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - if (yychar <= YYEOF) - { - yychar = yytoken = YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) - goto yydefault; - yyn = yytable[yyn]; - if (yyn <= 0) - { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the lookahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - - yystate = yyn; - *++yyvsp = yylval; - - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- Do a reduction. | -`-----------------------------*/ -yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 4: - -/* Line 1464 of yacc.c */ -#line 186 "ppy.y" - { pp_do_include((yyvsp[(2) - (3)].cptr), 1); ;} - break; - - case 5: - -/* Line 1464 of yacc.c */ -#line 187 "ppy.y" - { pp_do_include((yyvsp[(2) - (3)].cptr), 0); ;} - break; - - case 6: - -/* Line 1464 of yacc.c */ -#line 188 "ppy.y" - { pp_next_if_state(boolean(&(yyvsp[(2) - (3)].cval))); ;} - break; - - case 7: - -/* Line 1464 of yacc.c */ -#line 189 "ppy.y" - { pp_next_if_state(pplookup((yyvsp[(2) - (3)].cptr)) != NULL); free((yyvsp[(2) - (3)].cptr)); ;} - break; - - case 8: - -/* Line 1464 of yacc.c */ -#line 190 "ppy.y" - { - int t = pplookup((yyvsp[(2) - (3)].cptr)) == NULL; - if(pp_incl_state.state == 0 && t && !pp_incl_state.seen_junk) - { - pp_incl_state.state = 1; - pp_incl_state.ppp = (yyvsp[(2) - (3)].cptr); - pp_incl_state.ifdepth = pp_get_if_depth(); - } - else if(pp_incl_state.state != 1) - { - pp_incl_state.state = -1; - free((yyvsp[(2) - (3)].cptr)); - } - else - free((yyvsp[(2) - (3)].cptr)); - pp_next_if_state(t); - if(pp_status.debug) - fprintf(stderr, "tIFNDEF: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d\n", - pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth); - ;} - break; - - case 9: - -/* Line 1464 of yacc.c */ -#line 210 "ppy.y" - { - pp_if_state_t s = pp_pop_if(); - switch(s) - { - case if_true: - case if_elif: - pp_push_if(if_elif); - break; - case if_false: - pp_push_if(boolean(&(yyvsp[(2) - (3)].cval)) ? if_true : if_false); - break; - case if_ignore: - pp_push_if(if_ignore); - break; - case if_elsetrue: - case if_elsefalse: - ppy_error("#elif cannot follow #else"); - break; - case if_error: - break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d) in #elif directive", s); - } - ;} - break; - - case 10: - -/* Line 1464 of yacc.c */ -#line 234 "ppy.y" - { - pp_if_state_t s = pp_pop_if(); - switch(s) - { - case if_true: - pp_push_if(if_elsefalse); - break; - case if_elif: - pp_push_if(if_elif); - break; - case if_false: - pp_push_if(if_elsetrue); - break; - case if_ignore: - pp_push_if(if_ignore); - break; - case if_elsetrue: - case if_elsefalse: - ppy_error("#else clause already defined"); - break; - case if_error: - break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d) in #else directive", s); - } - ;} - break; - - case 11: - -/* Line 1464 of yacc.c */ -#line 260 "ppy.y" - { - if(pp_pop_if() != if_error) - { - if(pp_incl_state.ifdepth == pp_get_if_depth() && pp_incl_state.state == 1) - { - pp_incl_state.state = 2; - pp_incl_state.seen_junk = 0; - } - else if(pp_incl_state.state != 1) - { - pp_incl_state.state = -1; - } - if(pp_status.debug) - fprintf(stderr, "tENDIF: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d\n", - pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth); - } - ;} - break; - - case 12: - -/* Line 1464 of yacc.c */ -#line 277 "ppy.y" - { pp_del_define((yyvsp[(2) - (3)].cptr)); free((yyvsp[(2) - (3)].cptr)); ;} - break; - - case 13: - -/* Line 1464 of yacc.c */ -#line 278 "ppy.y" - { pp_add_define((yyvsp[(1) - (3)].cptr), (yyvsp[(2) - (3)].cptr)); free((yyvsp[(1) - (3)].cptr)); free((yyvsp[(2) - (3)].cptr)); ;} - break; - - case 14: - -/* Line 1464 of yacc.c */ -#line 279 "ppy.y" - { - pp_add_macro((yyvsp[(1) - (6)].cptr), macro_args, nmacro_args, (yyvsp[(5) - (6)].mtext)); - ;} - break; - - case 15: - -/* Line 1464 of yacc.c */ -#line 282 "ppy.y" - { if((yyvsp[(3) - (4)].cptr)) pp_writestring("# %d %s\n", (yyvsp[(2) - (4)].sint) , (yyvsp[(3) - (4)].cptr)); free((yyvsp[(3) - (4)].cptr)); ;} - break; - - case 16: - -/* Line 1464 of yacc.c */ -#line 283 "ppy.y" - { if((yyvsp[(3) - (4)].cptr)) pp_writestring("# %d %s\n", (yyvsp[(2) - (4)].sint) , (yyvsp[(3) - (4)].cptr)); free((yyvsp[(3) - (4)].cptr)); ;} - break; - - case 17: - -/* Line 1464 of yacc.c */ -#line 285 "ppy.y" - { if((yyvsp[(3) - (5)].cptr)) pp_writestring("# %d %s %d\n", (yyvsp[(2) - (5)].sint), (yyvsp[(3) - (5)].cptr), (yyvsp[(4) - (5)].sint)); free((yyvsp[(3) - (5)].cptr)); ;} - break; - - case 18: - -/* Line 1464 of yacc.c */ -#line 287 "ppy.y" - { if((yyvsp[(3) - (6)].cptr)) pp_writestring("# %d %s %d %d\n", (yyvsp[(2) - (6)].sint) ,(yyvsp[(3) - (6)].cptr), (yyvsp[(4) - (6)].sint), (yyvsp[(5) - (6)].sint)); free((yyvsp[(3) - (6)].cptr)); ;} - break; - - case 19: - -/* Line 1464 of yacc.c */ -#line 289 "ppy.y" - { if((yyvsp[(3) - (7)].cptr)) pp_writestring("# %d %s %d %d %d\n", (yyvsp[(2) - (7)].sint) ,(yyvsp[(3) - (7)].cptr) ,(yyvsp[(4) - (7)].sint) ,(yyvsp[(5) - (7)].sint), (yyvsp[(6) - (7)].sint)); free((yyvsp[(3) - (7)].cptr)); ;} - break; - - case 20: - -/* Line 1464 of yacc.c */ -#line 291 "ppy.y" - { if((yyvsp[(3) - (8)].cptr)) pp_writestring("# %d %s %d %d %d %d\n", (yyvsp[(2) - (8)].sint) ,(yyvsp[(3) - (8)].cptr) ,(yyvsp[(4) - (8)].sint) ,(yyvsp[(5) - (8)].sint), (yyvsp[(6) - (8)].sint), (yyvsp[(7) - (8)].sint)); free((yyvsp[(3) - (8)].cptr)); ;} - break; - - case 22: - -/* Line 1464 of yacc.c */ -#line 293 "ppy.y" - { ppy_error("#error directive: '%s'", (yyvsp[(2) - (3)].cptr)); free((yyvsp[(2) - (3)].cptr)); ;} - break; - - case 23: - -/* Line 1464 of yacc.c */ -#line 294 "ppy.y" - { ppy_warning("#warning directive: '%s'", (yyvsp[(2) - (3)].cptr)); free((yyvsp[(2) - (3)].cptr)); ;} - break; - - case 24: - -/* Line 1464 of yacc.c */ -#line 295 "ppy.y" - { pp_writestring("#pragma %s\n", (yyvsp[(2) - (3)].cptr) ? (yyvsp[(2) - (3)].cptr) : ""); free((yyvsp[(2) - (3)].cptr)); ;} - break; - - case 25: - -/* Line 1464 of yacc.c */ -#line 296 "ppy.y" - { if(pp_status.pedantic) ppy_warning("#ident ignored (arg: '%s')", (yyvsp[(2) - (3)].cptr)); free((yyvsp[(2) - (3)].cptr)); ;} - break; - - case 26: - -/* Line 1464 of yacc.c */ -#line 297 "ppy.y" - { - if((yyvsp[(2) - (2)].cptr)) - { - int nl=strlen((yyvsp[(2) - (2)].cptr)) +3; - char *fn=pp_xmalloc(nl); - if(fn) - { - sprintf(fn,"\"%s\"",(yyvsp[(2) - (2)].cptr)); - pp_do_include(fn,1); - } - free((yyvsp[(2) - (2)].cptr)); - } - ;} - break; - - case 27: - -/* Line 1464 of yacc.c */ -#line 310 "ppy.y" - { - pp_do_include((yyvsp[(2) - (2)].cptr),1); - ;} - break; - - case 28: - -/* Line 1464 of yacc.c */ -#line 316 "ppy.y" - { (yyval.cptr) = NULL; ;} - break; - - case 29: - -/* Line 1464 of yacc.c */ -#line 317 "ppy.y" - { (yyval.cptr) = (yyvsp[(1) - (1)].cptr); ;} - break; - - case 30: - -/* Line 1464 of yacc.c */ -#line 320 "ppy.y" - { (yyval.cptr) = (yyvsp[(1) - (1)].cptr); ;} - break; - - case 31: - -/* Line 1464 of yacc.c */ -#line 321 "ppy.y" - { (yyval.cptr) = (yyvsp[(1) - (1)].cptr); ;} - break; - - case 32: - -/* Line 1464 of yacc.c */ -#line 322 "ppy.y" - { (yyval.cptr) = (yyvsp[(1) - (1)].cptr); ;} - break; - - case 33: - -/* Line 1464 of yacc.c */ -#line 323 "ppy.y" - { (yyval.cptr) = merge_text((yyvsp[(1) - (2)].cptr), (yyvsp[(2) - (2)].cptr)); ;} - break; - - case 34: - -/* Line 1464 of yacc.c */ -#line 324 "ppy.y" - { (yyval.cptr) = merge_text((yyvsp[(1) - (2)].cptr), (yyvsp[(2) - (2)].cptr)); ;} - break; - - case 35: - -/* Line 1464 of yacc.c */ -#line 325 "ppy.y" - { (yyval.cptr) = merge_text((yyvsp[(1) - (2)].cptr), (yyvsp[(2) - (2)].cptr)); ;} - break; - - case 36: - -/* Line 1464 of yacc.c */ -#line 328 "ppy.y" - { macro_args = NULL; nmacro_args = 0; ;} - break; - - case 37: - -/* Line 1464 of yacc.c */ -#line 331 "ppy.y" - { (yyval.sint) = 0; macro_args = NULL; nmacro_args = 0; ;} - break; - - case 38: - -/* Line 1464 of yacc.c */ -#line 332 "ppy.y" - { (yyval.sint) = nmacro_args; ;} - break; - - case 39: - -/* Line 1464 of yacc.c */ -#line 335 "ppy.y" - { (yyval.marg) = (yyvsp[(1) - (1)].marg); ;} - break; - - case 40: - -/* Line 1464 of yacc.c */ -#line 336 "ppy.y" - { (yyval.marg) = add_new_marg(NULL, arg_list); nmacro_args *= -1; ;} - break; - - case 41: - -/* Line 1464 of yacc.c */ -#line 339 "ppy.y" - { (yyval.marg) = add_new_marg((yyvsp[(3) - (3)].cptr), arg_single); ;} - break; - - case 42: - -/* Line 1464 of yacc.c */ -#line 340 "ppy.y" - { (yyval.marg) = add_new_marg((yyvsp[(1) - (1)].cptr), arg_single); ;} - break; - - case 43: - -/* Line 1464 of yacc.c */ -#line 344 "ppy.y" - { (yyval.mtext) = NULL; ;} - break; - - case 44: - -/* Line 1464 of yacc.c */ -#line 345 "ppy.y" - { - for((yyval.mtext) = (yyvsp[(1) - (1)].mtext); (yyval.mtext) && (yyval.mtext)->prev; (yyval.mtext) = (yyval.mtext)->prev) - ; - ;} - break; - - case 45: - -/* Line 1464 of yacc.c */ -#line 351 "ppy.y" - { (yyval.mtext) = (yyvsp[(1) - (1)].mtext); ;} - break; - - case 46: - -/* Line 1464 of yacc.c */ -#line 352 "ppy.y" - { (yyval.mtext) = combine_mtext((yyvsp[(1) - (2)].mtext), (yyvsp[(2) - (2)].mtext)); ;} - break; - - case 47: - -/* Line 1464 of yacc.c */ -#line 355 "ppy.y" - { (yyval.mtext) = new_mtext((yyvsp[(1) - (1)].cptr), 0, exp_text); ;} - break; - - case 48: - -/* Line 1464 of yacc.c */ -#line 356 "ppy.y" - { (yyval.mtext) = new_mtext((yyvsp[(1) - (1)].cptr), 0, exp_text); ;} - break; - - case 49: - -/* Line 1464 of yacc.c */ -#line 357 "ppy.y" - { (yyval.mtext) = new_mtext((yyvsp[(1) - (1)].cptr), 0, exp_text); ;} - break; - - case 50: - -/* Line 1464 of yacc.c */ -#line 358 "ppy.y" - { (yyval.mtext) = new_mtext(NULL, 0, exp_concat); ;} - break; - - case 51: - -/* Line 1464 of yacc.c */ -#line 359 "ppy.y" - { - int mat = marg_index((yyvsp[(2) - (2)].cptr)); - if(mat < 0) - ppy_error("Stringification identifier must be an argument parameter"); - else - (yyval.mtext) = new_mtext(NULL, mat, exp_stringize); - ;} - break; - - case 52: - -/* Line 1464 of yacc.c */ -#line 366 "ppy.y" - { - int mat = marg_index((yyvsp[(1) - (1)].cptr)); - if(mat >= 0) - (yyval.mtext) = new_mtext(NULL, mat, exp_subst); - else if((yyvsp[(1) - (1)].cptr)) - (yyval.mtext) = new_mtext((yyvsp[(1) - (1)].cptr), 0, exp_text); - ;} - break; - - case 53: - -/* Line 1464 of yacc.c */ -#line 375 "ppy.y" - { (yyval.cval).type = cv_sint; (yyval.cval).val.si = (yyvsp[(1) - (1)].sint); ;} - break; - - case 54: - -/* Line 1464 of yacc.c */ -#line 376 "ppy.y" - { (yyval.cval).type = cv_uint; (yyval.cval).val.ui = (yyvsp[(1) - (1)].uint); ;} - break; - - case 55: - -/* Line 1464 of yacc.c */ -#line 377 "ppy.y" - { (yyval.cval).type = cv_slong; (yyval.cval).val.sl = (yyvsp[(1) - (1)].slong); ;} - break; - - case 56: - -/* Line 1464 of yacc.c */ -#line 378 "ppy.y" - { (yyval.cval).type = cv_ulong; (yyval.cval).val.ul = (yyvsp[(1) - (1)].ulong); ;} - break; - - case 57: - -/* Line 1464 of yacc.c */ -#line 379 "ppy.y" - { (yyval.cval).type = cv_sll; (yyval.cval).val.sll = (yyvsp[(1) - (1)].sll); ;} - break; - - case 58: - -/* Line 1464 of yacc.c */ -#line 380 "ppy.y" - { (yyval.cval).type = cv_ull; (yyval.cval).val.ull = (yyvsp[(1) - (1)].ull); ;} - break; - - case 59: - -/* Line 1464 of yacc.c */ -#line 381 "ppy.y" - { (yyval.cval).type = cv_sint; (yyval.cval).val.si = pplookup((yyvsp[(2) - (2)].cptr)) != NULL; ;} - break; - - case 60: - -/* Line 1464 of yacc.c */ -#line 382 "ppy.y" - { (yyval.cval).type = cv_sint; (yyval.cval).val.si = pplookup((yyvsp[(3) - (4)].cptr)) != NULL; ;} - break; - - case 61: - -/* Line 1464 of yacc.c */ -#line 383 "ppy.y" - { (yyval.cval).type = cv_sint; (yyval.cval).val.si = 0; ;} - break; - - case 62: - -/* Line 1464 of yacc.c */ -#line 384 "ppy.y" - { (yyval.cval).type = cv_sint; (yyval.cval).val.si = boolean(&(yyvsp[(1) - (3)].cval)) || boolean(&(yyvsp[(3) - (3)].cval)); ;} - break; - - case 63: - -/* Line 1464 of yacc.c */ -#line 385 "ppy.y" - { (yyval.cval).type = cv_sint; (yyval.cval).val.si = boolean(&(yyvsp[(1) - (3)].cval)) && boolean(&(yyvsp[(3) - (3)].cval)); ;} - break; - - case 64: - -/* Line 1464 of yacc.c */ -#line 386 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), ==) ;} - break; - - case 65: - -/* Line 1464 of yacc.c */ -#line 387 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), !=) ;} - break; - - case 66: - -/* Line 1464 of yacc.c */ -#line 388 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), <) ;} - break; - - case 67: - -/* Line 1464 of yacc.c */ -#line 389 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), >) ;} - break; - - case 68: - -/* Line 1464 of yacc.c */ -#line 390 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), <=) ;} - break; - - case 69: - -/* Line 1464 of yacc.c */ -#line 391 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), >=) ;} - break; - - case 70: - -/* Line 1464 of yacc.c */ -#line 392 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), +) ;} - break; - - case 71: - -/* Line 1464 of yacc.c */ -#line 393 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), -) ;} - break; - - case 72: - -/* Line 1464 of yacc.c */ -#line 394 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), ^) ;} - break; - - case 73: - -/* Line 1464 of yacc.c */ -#line 395 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), &) ;} - break; - - case 74: - -/* Line 1464 of yacc.c */ -#line 396 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), |) ;} - break; - - case 75: - -/* Line 1464 of yacc.c */ -#line 397 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), *) ;} - break; - - case 76: - -/* Line 1464 of yacc.c */ -#line 398 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), /) ;} - break; - - case 77: - -/* Line 1464 of yacc.c */ -#line 399 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), <<) ;} - break; - - case 78: - -/* Line 1464 of yacc.c */ -#line 400 "ppy.y" - { promote_equal_size(&(yyvsp[(1) - (3)].cval), &(yyvsp[(3) - (3)].cval)); BIN_OP((yyval.cval), (yyvsp[(1) - (3)].cval), (yyvsp[(3) - (3)].cval), >>) ;} - break; - - case 79: - -/* Line 1464 of yacc.c */ -#line 401 "ppy.y" - { (yyval.cval) = (yyvsp[(2) - (2)].cval); ;} - break; - - case 80: - -/* Line 1464 of yacc.c */ -#line 402 "ppy.y" - { UNARY_OP((yyval.cval), (yyvsp[(2) - (2)].cval), -) ;} - break; - - case 81: - -/* Line 1464 of yacc.c */ -#line 403 "ppy.y" - { UNARY_OP((yyval.cval), (yyvsp[(2) - (2)].cval), ~) ;} - break; - - case 82: - -/* Line 1464 of yacc.c */ -#line 404 "ppy.y" - { (yyval.cval).type = cv_sint; (yyval.cval).val.si = !boolean(&(yyvsp[(2) - (2)].cval)); ;} - break; - - case 83: - -/* Line 1464 of yacc.c */ -#line 405 "ppy.y" - { (yyval.cval) = (yyvsp[(2) - (3)].cval); ;} - break; - - case 84: - -/* Line 1464 of yacc.c */ -#line 406 "ppy.y" - { (yyval.cval) = boolean(&(yyvsp[(1) - (5)].cval)) ? (yyvsp[(3) - (5)].cval) : (yyvsp[(5) - (5)].cval); ;} - break; - - - -/* Line 1464 of yacc.c */ -#line 2333 "ppy.tab.c" - default: break; - } - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - - *++yyvsp = yyval; - - /* Now `shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; -#if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); -#else - { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } - } -#endif - } - - - - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ - - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - goto yyerrlab1; - - -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR. | -`---------------------------------------------------*/ -yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - /* Do not reclaim the symbols of the rule which action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - yystate = *yyssp; - goto yyerrlab1; - - -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR. | -`-------------------------------------------------------------*/ -yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ - - for (;;) - { - yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; - - - yydestruct ("Error: popping", - yystos[yystate], yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); - } - - *++yyvsp = yylval; - - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -#if !defined(yyoverflow) || YYERROR_VERBOSE -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - /* Fall through. */ -#endif - -yyreturn: - if (yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - /* Do not reclaim the symbols of the rule which action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); - YYPOPSTACK (1); - } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - /* Make sure YYID is used. */ - return YYID (yyresult); -} - - - -/* Line 1684 of yacc.c */ -#line 409 "ppy.y" - - -/* - ************************************************************************** - * Support functions - ************************************************************************** - */ - -static void cast_to_sint(cval_t *v) -{ - switch(v->type) - { - case cv_sint: break; - case cv_uint: break; - case cv_slong: v->val.si = v->val.sl; break; - case cv_ulong: v->val.si = v->val.ul; break; - case cv_sll: v->val.si = v->val.sll; break; - case cv_ull: v->val.si = v->val.ull; break; - } - v->type = cv_sint; -} - -static void cast_to_uint(cval_t *v) -{ - switch(v->type) - { - case cv_sint: break; - case cv_uint: break; - case cv_slong: v->val.ui = v->val.sl; break; - case cv_ulong: v->val.ui = v->val.ul; break; - case cv_sll: v->val.ui = v->val.sll; break; - case cv_ull: v->val.ui = v->val.ull; break; - } - v->type = cv_uint; -} - -static void cast_to_slong(cval_t *v) -{ - switch(v->type) - { - case cv_sint: v->val.sl = v->val.si; break; - case cv_uint: v->val.sl = v->val.ui; break; - case cv_slong: break; - case cv_ulong: break; - case cv_sll: v->val.sl = v->val.sll; break; - case cv_ull: v->val.sl = v->val.ull; break; - } - v->type = cv_slong; -} - -static void cast_to_ulong(cval_t *v) -{ - switch(v->type) - { - case cv_sint: v->val.ul = v->val.si; break; - case cv_uint: v->val.ul = v->val.ui; break; - case cv_slong: break; - case cv_ulong: break; - case cv_sll: v->val.ul = v->val.sll; break; - case cv_ull: v->val.ul = v->val.ull; break; - } - v->type = cv_ulong; -} - -static void cast_to_sll(cval_t *v) -{ - switch(v->type) - { - case cv_sint: v->val.sll = v->val.si; break; - case cv_uint: v->val.sll = v->val.ui; break; - case cv_slong: v->val.sll = v->val.sl; break; - case cv_ulong: v->val.sll = v->val.ul; break; - case cv_sll: break; - case cv_ull: break; - } - v->type = cv_sll; -} - -static void cast_to_ull(cval_t *v) -{ - switch(v->type) - { - case cv_sint: v->val.ull = v->val.si; break; - case cv_uint: v->val.ull = v->val.ui; break; - case cv_slong: v->val.ull = v->val.sl; break; - case cv_ulong: v->val.ull = v->val.ul; break; - case cv_sll: break; - case cv_ull: break; - } - v->type = cv_ull; -} - - -static void promote_equal_size(cval_t *v1, cval_t *v2) -{ -#define cv_sizeof(v) ((int)(v->type & SIZE_MASK)) - int s1 = cv_sizeof(v1); - int s2 = cv_sizeof(v2); -#undef cv_sizeof - - if(s1 == s2) - return; - else if(s1 > s2) - { - switch(v1->type) - { - case cv_sint: cast_to_sint(v2); break; - case cv_uint: cast_to_uint(v2); break; - case cv_slong: cast_to_slong(v2); break; - case cv_ulong: cast_to_ulong(v2); break; - case cv_sll: cast_to_sll(v2); break; - case cv_ull: cast_to_ull(v2); break; - } - } - else - { - switch(v2->type) - { - case cv_sint: cast_to_sint(v1); break; - case cv_uint: cast_to_uint(v1); break; - case cv_slong: cast_to_slong(v1); break; - case cv_ulong: cast_to_ulong(v1); break; - case cv_sll: cast_to_sll(v1); break; - case cv_ull: cast_to_ull(v1); break; - } - } -} - - -static int boolean(cval_t *v) -{ - switch(v->type) - { - case cv_sint: return v->val.si != (int)0; - case cv_uint: return v->val.ui != (unsigned int)0; - case cv_slong: return v->val.sl != (long)0; - case cv_ulong: return v->val.ul != (unsigned long)0; - case cv_sll: return v->val.sll != (wrc_sll_t)0; - case cv_ull: return v->val.ull != (wrc_ull_t)0; - } - return 0; -} - -static marg_t *new_marg(char *str, def_arg_t type) -{ - marg_t *ma = pp_xmalloc(sizeof(marg_t)); - if(!ma) - return NULL; - ma->arg = str; - ma->type = type; - ma->nnl = 0; - return ma; -} - -static marg_t *add_new_marg(char *str, def_arg_t type) -{ - marg_t **new_macro_args; - marg_t *ma; - if(!str) - return NULL; - new_macro_args = pp_xrealloc(macro_args, (nmacro_args+1) * sizeof(macro_args[0])); - if(!new_macro_args) - return NULL; - macro_args = new_macro_args; - ma = new_marg(str, type); - if(!ma) - return NULL; - macro_args[nmacro_args] = ma; - nmacro_args++; - return ma; -} - -static int marg_index(char *id) -{ - int t; - if(!id) - return -1; - for(t = 0; t < nmacro_args; t++) - { - if(!strcmp(id, macro_args[t]->arg)) - break; - } - return t < nmacro_args ? t : -1; -} - -static mtext_t *new_mtext(char *str, int idx, def_exp_t type) -{ - mtext_t *mt = pp_xmalloc(sizeof(mtext_t)); - if(!mt) - return NULL; - if(str == NULL) - mt->subst.argidx = idx; - else - mt->subst.text = str; - mt->type = type; - mt->next = mt->prev = NULL; - return mt; -} - -static mtext_t *combine_mtext(mtext_t *tail, mtext_t *mtp) -{ - if(!tail) - return mtp; - - if(!mtp) - return tail; - - if(tail->type == exp_text && mtp->type == exp_text) - { - char *new_text; - new_text = pp_xrealloc(tail->subst.text, strlen(tail->subst.text)+strlen(mtp->subst.text)+1); - if(!new_text) - return mtp; - tail->subst.text = new_text; - strcat(tail->subst.text, mtp->subst.text); - free(mtp->subst.text); - free(mtp); - return tail; - } - - if(tail->type == exp_concat && mtp->type == exp_concat) - { - free(mtp); - return tail; - } - - if(tail->type == exp_concat && mtp->type == exp_text) - { - int len = strlen(mtp->subst.text); - while(len) - { -/* FIXME: should delete space from head of string */ - if(isspace(mtp->subst.text[len-1] & 0xff)) - mtp->subst.text[--len] = '\0'; - else - break; - } - - if(!len) - { - free(mtp->subst.text); - free(mtp); - return tail; - } - } - - if(tail->type == exp_text && mtp->type == exp_concat) - { - int len = strlen(tail->subst.text); - while(len) - { - if(isspace(tail->subst.text[len-1] & 0xff)) - tail->subst.text[--len] = '\0'; - else - break; - } - - if(!len) - { - mtp->prev = tail->prev; - mtp->next = tail->next; - if(tail->prev) - tail->prev->next = mtp; - free(tail->subst.text); - free(tail); - return mtp; - } - } - - tail->next = mtp; - mtp->prev = tail; - - return mtp; -} - -static char *merge_text(char *s1, char *s2) -{ - int l1; - int l2; - char *snew; - if(!s1) - return s2; - if(!s2) - return s1; - l1 = strlen(s1); - l2 = strlen(s2); - snew = pp_xrealloc(s1, l1+l2+1); - if(!snew) - { - free(s2); - return s1; - } - s1 = snew; - memcpy(s1+l1, s2, l2+1); - free(s2); - return s1; -} - diff --git a/reactos/tools/wpp/ppy.tab.h b/reactos/tools/wpp/ppy.tab.h deleted file mode 100644 index 5225bed741d..00000000000 --- a/reactos/tools/wpp/ppy.tab.h +++ /dev/null @@ -1,120 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.4.2. */ - -/* Skeleton interface for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software - Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - tRCINCLUDE = 258, - tIF = 259, - tIFDEF = 260, - tIFNDEF = 261, - tELSE = 262, - tELIF = 263, - tENDIF = 264, - tDEFINED = 265, - tNL = 266, - tINCLUDE = 267, - tLINE = 268, - tGCCLINE = 269, - tERROR = 270, - tWARNING = 271, - tPRAGMA = 272, - tPPIDENT = 273, - tUNDEF = 274, - tMACROEND = 275, - tCONCAT = 276, - tELIPSIS = 277, - tSTRINGIZE = 278, - tIDENT = 279, - tLITERAL = 280, - tMACRO = 281, - tDEFINE = 282, - tDQSTRING = 283, - tSQSTRING = 284, - tIQSTRING = 285, - tUINT = 286, - tSINT = 287, - tULONG = 288, - tSLONG = 289, - tULONGLONG = 290, - tSLONGLONG = 291, - tRCINCLUDEPATH = 292, - tLOGOR = 293, - tLOGAND = 294, - tNE = 295, - tEQ = 296, - tGTE = 297, - tLTE = 298, - tRSHIFT = 299, - tLSHIFT = 300 - }; -#endif - - - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -{ - -/* Line 1685 of yacc.c */ -#line 126 "ppy.y" - - int sint; - unsigned int uint; - long slong; - unsigned long ulong; - wrc_sll_t sll; - wrc_ull_t ull; - int *iptr; - char *cptr; - cval_t cval; - marg_t *marg; - mtext_t *mtext; - - - -/* Line 1685 of yacc.c */ -#line 112 "ppy.tab.h" -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - -extern YYSTYPE ppy_lval; - - diff --git a/reactos/tools/wpp/ppy.y b/reactos/tools/wpp/ppy.y deleted file mode 100644 index f2805e1247a..00000000000 --- a/reactos/tools/wpp/ppy.y +++ /dev/null @@ -1,705 +0,0 @@ -/* - * Wrc preprocessor syntax analysis - * - * Copyright 1999-2000 Bertho A. Stultiens (BS) - * - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * History: - * 24-Apr-2000 BS Restructured the lot to fit the new scanner - * and reintegrate into the wine-tree. - * 01-Jan-2000 BS FIXME: win16 preprocessor calculates with - * 16 bit ints and overflows...? - * 26-Dec-1999 BS Started this file - * - */ - -%{ -#include "config.h" -#include "wine/port.h" - -#include -#include -#include -#include -#include -#include - -#include "wpp_private.h" - - -#define UNARY_OP(r, v, OP) \ - switch(v.type) \ - { \ - case cv_sint: r.val.si = OP v.val.si; break; \ - case cv_uint: r.val.ui = OP v.val.ui; break; \ - case cv_slong: r.val.sl = OP v.val.sl; break; \ - case cv_ulong: r.val.ul = OP v.val.ul; break; \ - case cv_sll: r.val.sll = OP v.val.sll; break; \ - case cv_ull: r.val.ull = OP v.val.ull; break; \ - } - -#define cv_signed(v) ((v.type & FLAG_SIGNED) != 0) - -#define BIN_OP_INT(r, v1, v2, OP) \ - r.type = v1.type; \ - if(cv_signed(v1) && cv_signed(v2)) \ - r.val.si = v1.val.si OP v2.val.si; \ - else if(cv_signed(v1) && !cv_signed(v2)) \ - r.val.si = v1.val.si OP (signed) v2.val.ui; \ - else if(!cv_signed(v1) && cv_signed(v2)) \ - r.val.si = (signed) v1.val.ui OP v2.val.si; \ - else \ - r.val.ui = v1.val.ui OP v2.val.ui; - -#define BIN_OP_LONG(r, v1, v2, OP) \ - r.type = v1.type; \ - if(cv_signed(v1) && cv_signed(v2)) \ - r.val.sl = v1.val.sl OP v2.val.sl; \ - else if(cv_signed(v1) && !cv_signed(v2)) \ - r.val.sl = v1.val.sl OP (signed long) v2.val.ul; \ - else if(!cv_signed(v1) && cv_signed(v2)) \ - r.val.sl = (signed long) v1.val.ul OP v2.val.sl; \ - else \ - r.val.ul = v1.val.ul OP v2.val.ul; - -#define BIN_OP_LONGLONG(r, v1, v2, OP) \ - r.type = v1.type; \ - if(cv_signed(v1) && cv_signed(v2)) \ - r.val.sll = v1.val.sll OP v2.val.sll; \ - else if(cv_signed(v1) && !cv_signed(v2)) \ - r.val.sll = v1.val.sll OP (wrc_sll_t) v2.val.ull; \ - else if(!cv_signed(v1) && cv_signed(v2)) \ - r.val.sll = (wrc_sll_t) v1.val.ull OP v2.val.sll; \ - else \ - r.val.ull = v1.val.ull OP v2.val.ull; - -#define BIN_OP(r, v1, v2, OP) \ - switch(v1.type & SIZE_MASK) \ - { \ - case SIZE_INT: BIN_OP_INT(r, v1, v2, OP); break; \ - case SIZE_LONG: BIN_OP_LONG(r, v1, v2, OP); break; \ - case SIZE_LONGLONG: BIN_OP_LONGLONG(r, v1, v2, OP); break; \ - default: pp_internal_error(__FILE__, __LINE__, "Invalid type indicator (0x%04x)", v1.type); \ - } - - -/* - * Prototypes - */ -static int boolean(cval_t *v); -static void promote_equal_size(cval_t *v1, cval_t *v2); -static void cast_to_sint(cval_t *v); -static void cast_to_uint(cval_t *v); -static void cast_to_slong(cval_t *v); -static void cast_to_ulong(cval_t *v); -static void cast_to_sll(cval_t *v); -static void cast_to_ull(cval_t *v); -static marg_t *new_marg(char *str, def_arg_t type); -static marg_t *add_new_marg(char *str, def_arg_t type); -static int marg_index(char *id); -static mtext_t *new_mtext(char *str, int idx, def_exp_t type); -static mtext_t *combine_mtext(mtext_t *tail, mtext_t *mtp); -static char *merge_text(char *s1, char *s2); - -/* - * Local variables - */ -static marg_t **macro_args; /* Macro parameters array while parsing */ -static int nmacro_args; - -%} - -%union{ - int sint; - unsigned int uint; - long slong; - unsigned long ulong; - wrc_sll_t sll; - wrc_ull_t ull; - int *iptr; - char *cptr; - cval_t cval; - marg_t *marg; - mtext_t *mtext; -} - -%token tRCINCLUDE -%token tIF tIFDEF tIFNDEF tELSE tELIF tENDIF tDEFINED tNL -%token tINCLUDE tLINE tGCCLINE tERROR tWARNING tPRAGMA tPPIDENT -%token tUNDEF tMACROEND tCONCAT tELIPSIS tSTRINGIZE -%token tIDENT tLITERAL tMACRO tDEFINE -%token tDQSTRING tSQSTRING tIQSTRING -%token tUINT -%token tSINT -%token tULONG -%token tSLONG -%token tULONGLONG -%token tSLONGLONG -%token tRCINCLUDEPATH - -%right '?' ':' -%left tLOGOR -%left tLOGAND -%left '|' -%left '^' -%left '&' -%left tEQ tNE -%left '<' tLTE '>' tGTE -%left tLSHIFT tRSHIFT -%left '+' '-' -%left '*' '/' -%right '~' '!' - -%type pp_expr -%type emargs margs -%type opt_mtexts mtexts mtext -%type allmargs -%type opt_text text - -/* - ************************************************************************** - * The parser starts here - ************************************************************************** - */ - -%% - -pp_file : /* Empty */ - | pp_file preprocessor - ; - -preprocessor - : tINCLUDE tDQSTRING tNL { pp_do_include($2, 1); } - | tINCLUDE tIQSTRING tNL { pp_do_include($2, 0); } - | tIF pp_expr tNL { pp_next_if_state(boolean(&$2)); } - | tIFDEF tIDENT tNL { pp_next_if_state(pplookup($2) != NULL); free($2); } - | tIFNDEF tIDENT tNL { - int t = pplookup($2) == NULL; - if(pp_incl_state.state == 0 && t && !pp_incl_state.seen_junk) - { - pp_incl_state.state = 1; - pp_incl_state.ppp = $2; - pp_incl_state.ifdepth = pp_get_if_depth(); - } - else if(pp_incl_state.state != 1) - { - pp_incl_state.state = -1; - free($2); - } - else - free($2); - pp_next_if_state(t); - if(pp_status.debug) - fprintf(stderr, "tIFNDEF: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d\n", - pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth); - } - | tELIF pp_expr tNL { - pp_if_state_t s = pp_pop_if(); - switch(s) - { - case if_true: - case if_elif: - pp_push_if(if_elif); - break; - case if_false: - pp_push_if(boolean(&$2) ? if_true : if_false); - break; - case if_ignore: - pp_push_if(if_ignore); - break; - case if_elsetrue: - case if_elsefalse: - ppy_error("#elif cannot follow #else"); - break; - case if_error: - break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d) in #elif directive", s); - } - } - | tELSE tNL { - pp_if_state_t s = pp_pop_if(); - switch(s) - { - case if_true: - pp_push_if(if_elsefalse); - break; - case if_elif: - pp_push_if(if_elif); - break; - case if_false: - pp_push_if(if_elsetrue); - break; - case if_ignore: - pp_push_if(if_ignore); - break; - case if_elsetrue: - case if_elsefalse: - ppy_error("#else clause already defined"); - break; - case if_error: - break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d) in #else directive", s); - } - } - | tENDIF tNL { - if(pp_pop_if() != if_error) - { - if(pp_incl_state.ifdepth == pp_get_if_depth() && pp_incl_state.state == 1) - { - pp_incl_state.state = 2; - pp_incl_state.seen_junk = 0; - } - else if(pp_incl_state.state != 1) - { - pp_incl_state.state = -1; - } - if(pp_status.debug) - fprintf(stderr, "tENDIF: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d\n", - pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth); - } - } - | tUNDEF tIDENT tNL { pp_del_define($2); free($2); } - | tDEFINE opt_text tNL { pp_add_define($1, $2); free($1); free($2); } - | tMACRO res_arg allmargs tMACROEND opt_mtexts tNL { - pp_add_macro($1, macro_args, nmacro_args, $5); - } - | tLINE tSINT tDQSTRING tNL { if($3) pp_writestring("# %d %s\n", $2 , $3); free($3); } - | tGCCLINE tSINT tDQSTRING tNL { if($3) pp_writestring("# %d %s\n", $2 , $3); free($3); } - | tGCCLINE tSINT tDQSTRING tSINT tNL - { if($3) pp_writestring("# %d %s %d\n", $2, $3, $4); free($3); } - | tGCCLINE tSINT tDQSTRING tSINT tSINT tNL - { if($3) pp_writestring("# %d %s %d %d\n", $2 ,$3, $4, $5); free($3); } - | tGCCLINE tSINT tDQSTRING tSINT tSINT tSINT tNL - { if($3) pp_writestring("# %d %s %d %d %d\n", $2 ,$3 ,$4 ,$5, $6); free($3); } - | tGCCLINE tSINT tDQSTRING tSINT tSINT tSINT tSINT tNL - { if($3) pp_writestring("# %d %s %d %d %d %d\n", $2 ,$3 ,$4 ,$5, $6, $7); free($3); } - | tGCCLINE tNL /* The null-token */ - | tERROR opt_text tNL { ppy_error("#error directive: '%s'", $2); free($2); } - | tWARNING opt_text tNL { ppy_warning("#warning directive: '%s'", $2); free($2); } - | tPRAGMA opt_text tNL { pp_writestring("#pragma %s\n", $2 ? $2 : ""); free($2); } - | tPPIDENT opt_text tNL { if(pp_status.pedantic) ppy_warning("#ident ignored (arg: '%s')", $2); free($2); } - | tRCINCLUDE tRCINCLUDEPATH { - if($2) - { - int nl=strlen($2) +3; - char *fn=pp_xmalloc(nl); - if(fn) - { - sprintf(fn,"\"%s\"",$2); - pp_do_include(fn,1); - } - free($2); - } - } - | tRCINCLUDE tDQSTRING { - pp_do_include($2,1); - } - /*| tNL*/ - ; - -opt_text: /* Empty */ { $$ = NULL; } - | text { $$ = $1; } - ; - -text : tLITERAL { $$ = $1; } - | tDQSTRING { $$ = $1; } - | tSQSTRING { $$ = $1; } - | text tLITERAL { $$ = merge_text($1, $2); } - | text tDQSTRING { $$ = merge_text($1, $2); } - | text tSQSTRING { $$ = merge_text($1, $2); } - ; - -res_arg : /* Empty */ { macro_args = NULL; nmacro_args = 0; } - ; - -allmargs: /* Empty */ { $$ = 0; macro_args = NULL; nmacro_args = 0; } - | emargs { $$ = nmacro_args; } - ; - -emargs : margs { $$ = $1; } - | margs ',' tELIPSIS { $$ = add_new_marg(NULL, arg_list); nmacro_args *= -1; } - ; - -margs : margs ',' tIDENT { $$ = add_new_marg($3, arg_single); } - | tIDENT { $$ = add_new_marg($1, arg_single); } - ; - -opt_mtexts - : /* Empty */ { $$ = NULL; } - | mtexts { - for($$ = $1; $$ && $$->prev; $$ = $$->prev) - ; - } - ; - -mtexts : mtext { $$ = $1; } - | mtexts mtext { $$ = combine_mtext($1, $2); } - ; - -mtext : tLITERAL { $$ = new_mtext($1, 0, exp_text); } - | tDQSTRING { $$ = new_mtext($1, 0, exp_text); } - | tSQSTRING { $$ = new_mtext($1, 0, exp_text); } - | tCONCAT { $$ = new_mtext(NULL, 0, exp_concat); } - | tSTRINGIZE tIDENT { - int mat = marg_index($2); - if(mat < 0) - ppy_error("Stringification identifier must be an argument parameter"); - else - $$ = new_mtext(NULL, mat, exp_stringize); - } - | tIDENT { - int mat = marg_index($1); - if(mat >= 0) - $$ = new_mtext(NULL, mat, exp_subst); - else if($1) - $$ = new_mtext($1, 0, exp_text); - } - ; - -pp_expr : tSINT { $$.type = cv_sint; $$.val.si = $1; } - | tUINT { $$.type = cv_uint; $$.val.ui = $1; } - | tSLONG { $$.type = cv_slong; $$.val.sl = $1; } - | tULONG { $$.type = cv_ulong; $$.val.ul = $1; } - | tSLONGLONG { $$.type = cv_sll; $$.val.sll = $1; } - | tULONGLONG { $$.type = cv_ull; $$.val.ull = $1; } - | tDEFINED tIDENT { $$.type = cv_sint; $$.val.si = pplookup($2) != NULL; } - | tDEFINED '(' tIDENT ')' { $$.type = cv_sint; $$.val.si = pplookup($3) != NULL; } - | tIDENT { $$.type = cv_sint; $$.val.si = 0; } - | pp_expr tLOGOR pp_expr { $$.type = cv_sint; $$.val.si = boolean(&$1) || boolean(&$3); } - | pp_expr tLOGAND pp_expr { $$.type = cv_sint; $$.val.si = boolean(&$1) && boolean(&$3); } - | pp_expr tEQ pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, ==) } - | pp_expr tNE pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, !=) } - | pp_expr '<' pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, <) } - | pp_expr '>' pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, >) } - | pp_expr tLTE pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, <=) } - | pp_expr tGTE pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, >=) } - | pp_expr '+' pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, +) } - | pp_expr '-' pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, -) } - | pp_expr '^' pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, ^) } - | pp_expr '&' pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, &) } - | pp_expr '|' pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, |) } - | pp_expr '*' pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, *) } - | pp_expr '/' pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, /) } - | pp_expr tLSHIFT pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, <<) } - | pp_expr tRSHIFT pp_expr { promote_equal_size(&$1, &$3); BIN_OP($$, $1, $3, >>) } - | '+' pp_expr { $$ = $2; } - | '-' pp_expr { UNARY_OP($$, $2, -) } - | '~' pp_expr { UNARY_OP($$, $2, ~) } - | '!' pp_expr { $$.type = cv_sint; $$.val.si = !boolean(&$2); } - | '(' pp_expr ')' { $$ = $2; } - | pp_expr '?' pp_expr ':' pp_expr { $$ = boolean(&$1) ? $3 : $5; } - ; - -%% - -/* - ************************************************************************** - * Support functions - ************************************************************************** - */ - -static void cast_to_sint(cval_t *v) -{ - switch(v->type) - { - case cv_sint: break; - case cv_uint: break; - case cv_slong: v->val.si = v->val.sl; break; - case cv_ulong: v->val.si = v->val.ul; break; - case cv_sll: v->val.si = v->val.sll; break; - case cv_ull: v->val.si = v->val.ull; break; - } - v->type = cv_sint; -} - -static void cast_to_uint(cval_t *v) -{ - switch(v->type) - { - case cv_sint: break; - case cv_uint: break; - case cv_slong: v->val.ui = v->val.sl; break; - case cv_ulong: v->val.ui = v->val.ul; break; - case cv_sll: v->val.ui = v->val.sll; break; - case cv_ull: v->val.ui = v->val.ull; break; - } - v->type = cv_uint; -} - -static void cast_to_slong(cval_t *v) -{ - switch(v->type) - { - case cv_sint: v->val.sl = v->val.si; break; - case cv_uint: v->val.sl = v->val.ui; break; - case cv_slong: break; - case cv_ulong: break; - case cv_sll: v->val.sl = v->val.sll; break; - case cv_ull: v->val.sl = v->val.ull; break; - } - v->type = cv_slong; -} - -static void cast_to_ulong(cval_t *v) -{ - switch(v->type) - { - case cv_sint: v->val.ul = v->val.si; break; - case cv_uint: v->val.ul = v->val.ui; break; - case cv_slong: break; - case cv_ulong: break; - case cv_sll: v->val.ul = v->val.sll; break; - case cv_ull: v->val.ul = v->val.ull; break; - } - v->type = cv_ulong; -} - -static void cast_to_sll(cval_t *v) -{ - switch(v->type) - { - case cv_sint: v->val.sll = v->val.si; break; - case cv_uint: v->val.sll = v->val.ui; break; - case cv_slong: v->val.sll = v->val.sl; break; - case cv_ulong: v->val.sll = v->val.ul; break; - case cv_sll: break; - case cv_ull: break; - } - v->type = cv_sll; -} - -static void cast_to_ull(cval_t *v) -{ - switch(v->type) - { - case cv_sint: v->val.ull = v->val.si; break; - case cv_uint: v->val.ull = v->val.ui; break; - case cv_slong: v->val.ull = v->val.sl; break; - case cv_ulong: v->val.ull = v->val.ul; break; - case cv_sll: break; - case cv_ull: break; - } - v->type = cv_ull; -} - - -static void promote_equal_size(cval_t *v1, cval_t *v2) -{ -#define cv_sizeof(v) ((int)(v->type & SIZE_MASK)) - int s1 = cv_sizeof(v1); - int s2 = cv_sizeof(v2); -#undef cv_sizeof - - if(s1 == s2) - return; - else if(s1 > s2) - { - switch(v1->type) - { - case cv_sint: cast_to_sint(v2); break; - case cv_uint: cast_to_uint(v2); break; - case cv_slong: cast_to_slong(v2); break; - case cv_ulong: cast_to_ulong(v2); break; - case cv_sll: cast_to_sll(v2); break; - case cv_ull: cast_to_ull(v2); break; - } - } - else - { - switch(v2->type) - { - case cv_sint: cast_to_sint(v1); break; - case cv_uint: cast_to_uint(v1); break; - case cv_slong: cast_to_slong(v1); break; - case cv_ulong: cast_to_ulong(v1); break; - case cv_sll: cast_to_sll(v1); break; - case cv_ull: cast_to_ull(v1); break; - } - } -} - - -static int boolean(cval_t *v) -{ - switch(v->type) - { - case cv_sint: return v->val.si != (int)0; - case cv_uint: return v->val.ui != (unsigned int)0; - case cv_slong: return v->val.sl != (long)0; - case cv_ulong: return v->val.ul != (unsigned long)0; - case cv_sll: return v->val.sll != (wrc_sll_t)0; - case cv_ull: return v->val.ull != (wrc_ull_t)0; - } - return 0; -} - -static marg_t *new_marg(char *str, def_arg_t type) -{ - marg_t *ma = pp_xmalloc(sizeof(marg_t)); - if(!ma) - return NULL; - ma->arg = str; - ma->type = type; - ma->nnl = 0; - return ma; -} - -static marg_t *add_new_marg(char *str, def_arg_t type) -{ - marg_t **new_macro_args; - marg_t *ma; - if(!str) - return NULL; - new_macro_args = pp_xrealloc(macro_args, (nmacro_args+1) * sizeof(macro_args[0])); - if(!new_macro_args) - return NULL; - macro_args = new_macro_args; - ma = new_marg(str, type); - if(!ma) - return NULL; - macro_args[nmacro_args] = ma; - nmacro_args++; - return ma; -} - -static int marg_index(char *id) -{ - int t; - if(!id) - return -1; - for(t = 0; t < nmacro_args; t++) - { - if(!strcmp(id, macro_args[t]->arg)) - break; - } - return t < nmacro_args ? t : -1; -} - -static mtext_t *new_mtext(char *str, int idx, def_exp_t type) -{ - mtext_t *mt = pp_xmalloc(sizeof(mtext_t)); - if(!mt) - return NULL; - if(str == NULL) - mt->subst.argidx = idx; - else - mt->subst.text = str; - mt->type = type; - mt->next = mt->prev = NULL; - return mt; -} - -static mtext_t *combine_mtext(mtext_t *tail, mtext_t *mtp) -{ - if(!tail) - return mtp; - - if(!mtp) - return tail; - - if(tail->type == exp_text && mtp->type == exp_text) - { - char *new_text; - new_text = pp_xrealloc(tail->subst.text, strlen(tail->subst.text)+strlen(mtp->subst.text)+1); - if(!new_text) - return mtp; - tail->subst.text = new_text; - strcat(tail->subst.text, mtp->subst.text); - free(mtp->subst.text); - free(mtp); - return tail; - } - - if(tail->type == exp_concat && mtp->type == exp_concat) - { - free(mtp); - return tail; - } - - if(tail->type == exp_concat && mtp->type == exp_text) - { - int len = strlen(mtp->subst.text); - while(len) - { -/* FIXME: should delete space from head of string */ - if(isspace(mtp->subst.text[len-1] & 0xff)) - mtp->subst.text[--len] = '\0'; - else - break; - } - - if(!len) - { - free(mtp->subst.text); - free(mtp); - return tail; - } - } - - if(tail->type == exp_text && mtp->type == exp_concat) - { - int len = strlen(tail->subst.text); - while(len) - { - if(isspace(tail->subst.text[len-1] & 0xff)) - tail->subst.text[--len] = '\0'; - else - break; - } - - if(!len) - { - mtp->prev = tail->prev; - mtp->next = tail->next; - if(tail->prev) - tail->prev->next = mtp; - free(tail->subst.text); - free(tail); - return mtp; - } - } - - tail->next = mtp; - mtp->prev = tail; - - return mtp; -} - -static char *merge_text(char *s1, char *s2) -{ - int l1; - int l2; - char *snew; - if(!s1) - return s2; - if(!s2) - return s1; - l1 = strlen(s1); - l2 = strlen(s2); - snew = pp_xrealloc(s1, l1+l2+1); - if(!snew) - { - free(s2); - return s1; - } - s1 = snew; - memcpy(s1+l1, s2, l2+1); - free(s2); - return s1; -} diff --git a/reactos/tools/wpp/preproc.c b/reactos/tools/wpp/preproc.c deleted file mode 100644 index 99934d69944..00000000000 --- a/reactos/tools/wpp/preproc.c +++ /dev/null @@ -1,762 +0,0 @@ -/* - * Copyright 1998 Bertho A. Stultiens (BS) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" -#include "wine/port.h" - -#include -#include -#include -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H -# include -#endif -#ifdef HAVE_IO_H -# include -#endif - -#include "wine/wpp.h" -#include "wpp_private.h" - -struct pp_status pp_status; - -#define HASHKEY 2039 - -typedef struct pp_def_state -{ - struct pp_def_state *next; - pp_entry_t *defines[HASHKEY]; -} pp_def_state_t; - -static pp_def_state_t *pp_def_state; - -#define MAXIFSTACK 64 -static pp_if_state_t if_stack[MAXIFSTACK]; -static int if_stack_idx = 0; - -#if 0 -void pp_print_status(void) __attribute__((destructor)); -void pp_print_status(void) -{ - int i; - int sum; - int total = 0; - pp_entry_t *ppp; - - fprintf(stderr, "Defines statistics:\n"); - for(i = 0; i < HASHKEY; i++) - { - sum = 0; - for(ppp = pp_def_state->defines[i]; ppp; ppp = ppp->next) - sum++; - total += sum; - if (sum) fprintf(stderr, "%4d, %3d\n", i, sum); - } - fprintf(stderr, "Total defines: %d\n", total); -} -#endif - -void *pp_xmalloc(size_t size) -{ - void *res; - - assert(size > 0); - res = malloc(size); - if(res == NULL) - { - /* Set the error flag */ - pp_status.state = 1; - } - return res; -} - -void *pp_xrealloc(void *p, size_t size) -{ - void *res; - - assert(size > 0); - res = realloc(p, size); - if(res == NULL) - { - /* Set the error flag */ - pp_status.state = 1; - } - return res; -} - -char *pp_xstrdup(const char *str) -{ - char *s; - int len; - - assert(str != NULL); - len = strlen(str)+1; - s = pp_xmalloc(len); - if(!s) - return NULL; - return memcpy(s, str, len); -} - -static char *wpp_default_lookup(const char *name, const char *parent_name, - char **include_path, int include_path_count) -{ - char *cpy; - char *cptr; - char *path; - const char *ccptr; - int i, fd; - - cpy = pp_xmalloc(strlen(name)+1); - if(!cpy) - return NULL; - cptr = cpy; - - for(ccptr = name; *ccptr; ccptr++) - { - /* Convert to forward slash */ - if(*ccptr == '\\') { - /* kill double backslash */ - if(ccptr[1] == '\\') - ccptr++; - *cptr = '/'; - }else { - *cptr = *ccptr; - } - cptr++; - } - *cptr = '\0'; - - if(parent_name) - { - /* Search directory of parent include and then -I path */ - const char *p; - - if ((p = strrchr( parent_name, '/' ))) p++; - else p = parent_name; - path = pp_xmalloc( (p - parent_name) + strlen(cpy) + 1 ); - if(!path) - { - free(cpy); - return NULL; - } - memcpy( path, parent_name, p - parent_name ); - strcpy( path + (p - parent_name), cpy ); - fd = open( path, O_RDONLY ); - if (fd != -1) - { - close( fd ); - free( cpy ); - return path; - } - free( path ); - } - /* Search -I path */ - for(i = 0; i < include_path_count; i++) - { - path = pp_xmalloc(strlen(include_path[i]) + strlen(cpy) + 2); - if(!path) - { - free(cpy); - return NULL; - } - strcpy(path, include_path[i]); - strcat(path, "/"); - strcat(path, cpy); - fd = open( path, O_RDONLY ); - if (fd != -1) - { - close( fd ); - free( cpy ); - return path; - } - free( path ); - } - free( cpy ); - return NULL; -} - -static void *wpp_default_open(const char *filename, int type) { - return fopen(filename,"rt"); -} - -static void wpp_default_close(void *file) { - fclose(file); -} - -static int wpp_default_read(void *file, char *buffer, unsigned int len){ - return fread(buffer, 1, len, file); -} - -static void wpp_default_write( const char *buffer, unsigned int len ) { - fwrite(buffer, 1, len, ppy_out); -} - -/* Don't comment on the hash, its primitive but functional... */ -static int pphash(const char *str) -{ - int sum = 0; - while(*str) - sum += *str++; - return sum % HASHKEY; -} - -pp_entry_t *pplookup(const char *ident) -{ - int idx; - pp_entry_t *ppp; - - if(!ident) - return NULL; - idx = pphash(ident); - for(ppp = pp_def_state->defines[idx]; ppp; ppp = ppp->next) - { - if(!strcmp(ident, ppp->ident)) - return ppp; - } - return NULL; -} - -static void free_pp_entry( pp_entry_t *ppp, int idx ) -{ - if(ppp->iep) - { - if(ppp->iep == pp_includelogiclist) - { - pp_includelogiclist = ppp->iep->next; - if(pp_includelogiclist) - pp_includelogiclist->prev = NULL; - } - else - { - ppp->iep->prev->next = ppp->iep->next; - if(ppp->iep->next) - ppp->iep->next->prev = ppp->iep->prev; - } - free(ppp->iep->filename); - free(ppp->iep); - } - - if(pp_def_state->defines[idx] == ppp) - { - pp_def_state->defines[idx] = ppp->next; - if(pp_def_state->defines[idx]) - pp_def_state->defines[idx]->prev = NULL; - } - else - { - ppp->prev->next = ppp->next; - if(ppp->next) - ppp->next->prev = ppp->prev; - } - - free(ppp); -} - -/* push a new (empty) define state */ -int pp_push_define_state(void) -{ - pp_def_state_t *state = pp_xmalloc( sizeof(*state) ); - if(!state) - return 1; - - memset( state->defines, 0, sizeof(state->defines) ); - state->next = pp_def_state; - pp_def_state = state; - return 0; -} - -/* pop the current define state */ -void pp_pop_define_state(void) -{ - int i; - pp_entry_t *ppp; - pp_def_state_t *state; - - for (i = 0; i < HASHKEY; i++) - { - while ((ppp = pp_def_state->defines[i]) != NULL) free_pp_entry( ppp, i ); - } - state = pp_def_state; - pp_def_state = state->next; - free( state ); -} - -void pp_del_define(const char *name) -{ - pp_entry_t *ppp; - - if((ppp = pplookup(name)) == NULL) - { - if(pp_status.pedantic) - ppy_warning("%s was not defined", name); - return; - } - - free( ppp->ident ); - free( ppp->subst.text ); - free( ppp->filename ); - free_pp_entry( ppp, pphash(name) ); - - if(pp_status.debug) - printf("Deleted (%s, %d) <%s>\n", pp_status.input, pp_status.line_number, name); -} - -pp_entry_t *pp_add_define(const char *def, const char *text) -{ - int len; - char *cptr; - int idx; - pp_entry_t *ppp; - - if(!def) - return NULL; - idx = pphash(def); - if((ppp = pplookup(def)) != NULL) - { - if(pp_status.pedantic) - ppy_warning("Redefinition of %s\n\tPrevious definition: %s:%d", def, ppp->filename, ppp->linenumber); - pp_del_define(def); - } - ppp = pp_xmalloc(sizeof(pp_entry_t)); - if(!ppp) - return NULL; - memset( ppp, 0, sizeof(*ppp) ); - ppp->ident = pp_xstrdup(def); - if(!ppp->ident) - goto error; - ppp->type = def_define; - ppp->subst.text = text ? pp_xstrdup(text) : NULL; - if(text && !ppp->subst.text) - goto error; - ppp->filename = pp_xstrdup(pp_status.input ? pp_status.input : ""); - if(!ppp->filename) - goto error; - ppp->linenumber = pp_status.input ? pp_status.line_number : 0; - ppp->next = pp_def_state->defines[idx]; - pp_def_state->defines[idx] = ppp; - if(ppp->next) - ppp->next->prev = ppp; - if(ppp->subst.text) - { - /* Strip trailing white space from subst text */ - len = strlen(ppp->subst.text); - while(len && strchr(" \t\r\n", ppp->subst.text[len-1])) - { - ppp->subst.text[--len] = '\0'; - } - /* Strip leading white space from subst text */ - for(cptr = ppp->subst.text; *cptr && strchr(" \t\r", *cptr); cptr++) - ; - if(ppp->subst.text != cptr) - memmove(ppp->subst.text, cptr, strlen(cptr)+1); - } - if(pp_status.debug) - printf("Added define (%s, %d) <%s> to <%s>\n", pp_status.input, pp_status.line_number, ppp->ident, ppp->subst.text ? ppp->subst.text : "(null)"); - - return ppp; - -error: - free(ppp->ident); - free(ppp->subst.text); - free(ppp); - return NULL; -} - -pp_entry_t *pp_add_macro(char *id, marg_t *args[], int nargs, mtext_t *exp) -{ - int idx; - pp_entry_t *ppp; - - if(!id) - return NULL; - idx = pphash(id); - if((ppp = pplookup(id)) != NULL) - { - if(pp_status.pedantic) - ppy_warning("Redefinition of %s\n\tPrevious definition: %s:%d", id, ppp->filename, ppp->linenumber); - pp_del_define(id); - } - ppp = pp_xmalloc(sizeof(pp_entry_t)); - if(!ppp) - return NULL; - memset( ppp, 0, sizeof(*ppp) ); - ppp->ident = id; - ppp->type = def_macro; - ppp->margs = args; - ppp->nargs = nargs; - ppp->subst.mtext= exp; - ppp->filename = pp_xstrdup(pp_status.input ? pp_status.input : ""); - if(!ppp->filename) - { - free(ppp); - return NULL; - } - ppp->linenumber = pp_status.input ? pp_status.line_number : 0; - ppp->next = pp_def_state->defines[idx]; - pp_def_state->defines[idx] = ppp; - if(ppp->next) - ppp->next->prev = ppp; - - if(pp_status.debug) - { - fprintf(stderr, "Added macro (%s, %d) <%s(%d)> to <", pp_status.input, pp_status.line_number, ppp->ident, nargs); - for(; exp; exp = exp->next) - { - switch(exp->type) - { - case exp_text: - fprintf(stderr, " \"%s\" ", exp->subst.text); - break; - case exp_stringize: - fprintf(stderr, " #(%d) ", exp->subst.argidx); - break; - case exp_concat: - fprintf(stderr, "##"); - break; - case exp_subst: - fprintf(stderr, " <%d> ", exp->subst.argidx); - break; - } - } - fprintf(stderr, ">\n"); - } - return ppp; -} - - -/* - *------------------------------------------------------------------------- - * Include management - *------------------------------------------------------------------------- - */ -#if defined(_Windows) || defined(__MSDOS__) -#define INCLUDESEPARATOR ";" -#else -#define INCLUDESEPARATOR ":" -#endif - -static char **includepath; -static int nincludepath = 0; - -int wpp_add_include_path(const char *path) -{ - char *tok; - char *cpy = pp_xstrdup(path); - if(!cpy) - return 1; - - tok = strtok(cpy, INCLUDESEPARATOR); - while(tok) - { - if(*tok) { - char *dir; - char *cptr; - char **new_path; - - dir = pp_xstrdup(tok); - if(!dir) - { - free(cpy); - return 1; - } - for(cptr = dir; *cptr; cptr++) - { - /* Convert to forward slash */ - if(*cptr == '\\') - *cptr = '/'; - } - /* Kill eventual trailing '/' */ - if(*(cptr = dir + strlen(dir)-1) == '/') - *cptr = '\0'; - - /* Add to list */ - new_path = pp_xrealloc(includepath, (nincludepath+1) * sizeof(*includepath)); - if(!new_path) - { - free(dir); - free(cpy); - return 1; - } - includepath = new_path; - includepath[nincludepath] = dir; - nincludepath++; - } - tok = strtok(NULL, INCLUDESEPARATOR); - } - free(cpy); - return 0; -} - -char *wpp_find_include(const char *name, const char *parent_name) -{ - return wpp_default_lookup(name, parent_name, includepath, nincludepath); -} - -void *pp_open_include(const char *name, const char *parent_name, char **newpath) -{ - char *path; - void *fp; - - if (!(path = wpp_callbacks->lookup(name, parent_name, includepath, - nincludepath))) return NULL; - fp = wpp_callbacks->open(path, parent_name == NULL ? 1 : 0); - - if (fp) - { - if (pp_status.debug) - printf("Going to include <%s>\n", path); - if (newpath) *newpath = path; - else free( path ); - return fp; - } - free( path ); - return NULL; -} - -/* - *------------------------------------------------------------------------- - * #if, #ifdef, #ifndef, #else, #elif and #endif state management - * - * #if state transitions are made on basis of the current TOS and the next - * required state. The state transitions are required to housekeep because - * #if:s can be nested. The ignore case is activated to prevent output from - * within a false clause. - * Some special cases come from the fact that the #elif cases are not - * binary, but three-state. The problem is that all other elif-cases must - * be false when one true one has been found. A second problem is that the - * #else clause is a final clause. No extra #else:s may follow. - * - * The states mean: - * if_true Process input to output - * if_false Process input but no output - * if_ignore Process input but no output - * if_elif Process input but no output - * if_elsefalse Process input but no output - * if_elsettrue Process input to output - * - * The possible state-sequences are [state(stack depth)] (rest can be deduced): - * TOS #if 1 #else #endif - * if_true(n) if_true(n+1) if_elsefalse(n+1) - * if_false(n) if_ignore(n+1) if_ignore(n+1) - * if_elsetrue(n) if_true(n+1) if_elsefalse(n+1) - * if_elsefalse(n) if_ignore(n+1) if_ignore(n+1) - * if_elif(n) if_ignore(n+1) if_ignore(n+1) - * if_ignore(n) if_ignore(n+1) if_ignore(n+1) - * - * TOS #if 1 #elif 0 #else #endif - * if_true(n) if_true(n+1) if_elif(n+1) if_elif(n+1) - * if_false(n) if_ignore(n+1) if_ignore(n+1) if_ignore(n+1) - * if_elsetrue(n) if_true(n+1) if_elif(n+1) if_elif(n+1) - * if_elsefalse(n) if_ignore(n+1) if_ignore(n+1) if_ignore(n+1) - * if_elif(n) if_ignore(n+1) if_ignore(n+1) if_ignore(n+1) - * if_ignore(n) if_ignore(n+1) if_ignore(n+1) if_ignore(n+1) - * - * TOS #if 0 #elif 1 #else #endif - * if_true(n) if_false(n+1) if_true(n+1) if_elsefalse(n+1) - * if_false(n) if_ignore(n+1) if_ignore(n+1) if_ignore(n+1) - * if_elsetrue(n) if_false(n+1) if_true(n+1) if_elsefalse(n+1) - * if_elsefalse(n) if_ignore(n+1) if_ignore(n+1) if_ignore(n+1) - * if_elif(n) if_ignore(n+1) if_ignore(n+1) if_ignore(n+1) - * if_ignore(n) if_ignore(n+1) if_ignore(n+1) if_ignore(n+1) - * - *------------------------------------------------------------------------- - */ -static const char * const pp_if_state_str[] = { - "if_false", - "if_true", - "if_elif", - "if_elsefalse", - "if_elsetrue", - "if_ignore" -}; - -void pp_push_if(pp_if_state_t s) -{ - if(if_stack_idx >= MAXIFSTACK) - pp_internal_error(__FILE__, __LINE__, "#if-stack overflow; #{if,ifdef,ifndef} nested too deeply (> %d)", MAXIFSTACK); - - if(pp_flex_debug) - fprintf(stderr, "Push if %s:%d: %s(%d) -> %s(%d)\n", pp_status.input, pp_status.line_number, pp_if_state_str[pp_if_state()], if_stack_idx, pp_if_state_str[s], if_stack_idx+1); - - if_stack[if_stack_idx++] = s; - - switch(s) - { - case if_true: - case if_elsetrue: - break; - case if_false: - case if_elsefalse: - case if_elif: - case if_ignore: - pp_push_ignore_state(); - break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d)", (int)pp_if_state()); - } -} - -pp_if_state_t pp_pop_if(void) -{ - if(if_stack_idx <= 0) - { - ppy_error("#{endif,else,elif} without #{if,ifdef,ifndef} (#if-stack underflow)"); - return if_error; - } - - switch(pp_if_state()) - { - case if_true: - case if_elsetrue: - break; - case if_false: - case if_elsefalse: - case if_elif: - case if_ignore: - pp_pop_ignore_state(); - break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d)", (int)pp_if_state()); - } - - if(pp_flex_debug) - fprintf(stderr, "Pop if %s:%d: %s(%d) -> %s(%d)\n", - pp_status.input, - pp_status.line_number, - pp_if_state_str[pp_if_state()], - if_stack_idx, - pp_if_state_str[if_stack[if_stack_idx <= 1 ? if_true : if_stack_idx-2]], - if_stack_idx-1); - - return if_stack[--if_stack_idx]; -} - -pp_if_state_t pp_if_state(void) -{ - if(!if_stack_idx) - return if_true; - else - return if_stack[if_stack_idx-1]; -} - - -void pp_next_if_state(int i) -{ - switch(pp_if_state()) - { - case if_true: - case if_elsetrue: - pp_push_if(i ? if_true : if_false); - break; - case if_false: - case if_elsefalse: - case if_elif: - case if_ignore: - pp_push_if(if_ignore); - break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d) in #{if,ifdef,ifndef} directive", (int)pp_if_state()); - } -} - -int pp_get_if_depth(void) -{ - return if_stack_idx; -} - -/* #define WANT_NEAR_INDICATION */ - -static void generic_msg(const char *s, const char *t, const char *n, va_list ap) -{ - fprintf(stderr, "%s:%d:%d: %s: ", pp_status.input ? pp_status.input : "stdin", - pp_status.line_number, pp_status.char_number, t); - vfprintf(stderr, s, ap); -#ifdef WANT_NEAR_INDICATION - { - char *cpy, *p; - if(n) - { - cpy = pp_xstrdup(n); - if(!cpy) - goto end; - for (p = cpy; *p; p++) if(!isprint(*p)) *p = ' '; - fprintf(stderr, " near '%s'", cpy); - free(cpy); - } - } -end: -#endif - fprintf(stderr, "\n"); -} - -static void wpp_default_error(const char *file, int line, int col, const char *near, const char *msg, va_list ap) -{ - generic_msg(msg, "Error", near, ap); - exit(1); -} - -static void wpp_default_warning(const char *file, int line, int col, const char *near, const char *msg, va_list ap) -{ - generic_msg(msg, "Warning", near, ap); -} - -static const struct wpp_callbacks default_callbacks = -{ - wpp_default_lookup, - wpp_default_open, - wpp_default_close, - wpp_default_read, - wpp_default_write, - wpp_default_error, - wpp_default_warning, -}; - -const struct wpp_callbacks *wpp_callbacks = &default_callbacks; - -int ppy_error(const char *s, ...) -{ - va_list ap; - va_start(ap, s); - wpp_callbacks->error(pp_status.input, pp_status.line_number, pp_status.char_number, ppy_text, s, ap); - va_end(ap); - pp_status.state = 1; - return 1; -} - -int ppy_warning(const char *s, ...) -{ - va_list ap; - va_start(ap, s); - wpp_callbacks->warning(pp_status.input, pp_status.line_number, pp_status.char_number, ppy_text, s, ap); - va_end(ap); - return 0; -} - -void pp_internal_error(const char *file, int line, const char *s, ...) -{ - va_list ap; - va_start(ap, s); - fprintf(stderr, "Internal error (please report) %s %d: ", file, line); - vfprintf(stderr, s, ap); - fprintf(stderr, "\n"); - va_end(ap); - exit(3); -} diff --git a/reactos/tools/wpp/wpp.c b/reactos/tools/wpp/wpp.c deleted file mode 100644 index 0c9c80852ea..00000000000 --- a/reactos/tools/wpp/wpp.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Exported functions of the Wine preprocessor - * - * Copyright 1998 Bertho A. Stultiens - * Copyright 2002 Alexandre Julliard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" -#include "wine/port.h" - -#include -#include - -#include "wpp_private.h" -#include "wine/wpp.h" - -int ppy_debug, pp_flex_debug; - -struct define -{ - struct define *next; - char *name; - char *value; -}; - -static struct define *cmdline_defines; - -static void add_cmdline_defines(void) -{ - struct define *def; - - for (def = cmdline_defines; def; def = def->next) - { - if (def->value) pp_add_define( def->name, def->value ); - } -} - -static void add_special_defines(void) -{ - time_t now = time(NULL); - pp_entry_t *ppp; - char buf[32]; - - strftime(buf, sizeof(buf), "\"%b %d %Y\"", localtime(&now)); - pp_add_define( "__DATE__", buf ); - - strftime(buf, sizeof(buf), "\"%H:%M:%S\"", localtime(&now)); - pp_add_define( "__TIME__", buf ); - - ppp = pp_add_define( "__FILE__", "" ); - if(ppp) - ppp->type = def_special; - - ppp = pp_add_define( "__LINE__", "" ); - if(ppp) - ppp->type = def_special; -} - - -/* add a define to the preprocessor list */ -int wpp_add_define( const char *name, const char *value ) -{ - struct define *def; - - if (!value) value = ""; - - for (def = cmdline_defines; def; def = def->next) - { - if (!strcmp( def->name, name )) - { - char *new_value = pp_xstrdup(value); - if(!new_value) - return 1; - free( def->value ); - def->value = new_value; - - return 0; - } - } - - def = pp_xmalloc( sizeof(*def) ); - if(!def) - return 1; - def->next = cmdline_defines; - def->name = pp_xstrdup(name); - if(!def->name) - { - free(def); - return 1; - } - def->value = pp_xstrdup(value); - if(!def->value) - { - free(def->name); - free(def); - return 1; - } - cmdline_defines = def; - return 0; -} - - -/* undefine a previously added definition */ -void wpp_del_define( const char *name ) -{ - struct define *def; - - for (def = cmdline_defines; def; def = def->next) - { - if (!strcmp( def->name, name )) - { - free( def->value ); - def->value = NULL; - return; - } - } -} - - -/* add a command-line define of the form NAME=VALUE */ -int wpp_add_cmdline_define( const char *value ) -{ - char *p; - char *str = pp_xstrdup(value); - if(!str) - return 1; - p = strchr( str, '=' ); - if (p) *p++ = 0; - wpp_add_define( str, p ); - free( str ); - return 0; -} - - -/* set the various debug flags */ -void wpp_set_debug( int lex_debug, int parser_debug, int msg_debug ) -{ - pp_flex_debug = lex_debug; - ppy_debug = parser_debug; - pp_status.debug = msg_debug; -} - - -/* set the pedantic mode */ -void wpp_set_pedantic( int on ) -{ - pp_status.pedantic = on; -} - - -/* the main preprocessor parsing loop */ -int wpp_parse( const char *input, FILE *output ) -{ - int ret; - - pp_status.input = NULL; - pp_status.line_number = 1; - pp_status.char_number = 1; - pp_status.state = 0; - - ret = pp_push_define_state(); - if(ret) - return ret; - add_cmdline_defines(); - add_special_defines(); - - if (!input) pp_status.file = stdin; - else if (!(pp_status.file = wpp_callbacks->open(input, 1))) - { - ppy_error("Could not open %s\n", input); - pp_pop_define_state(); - return 2; - } - - pp_status.input = input; - - ppy_out = output; - pp_writestring("# 1 \"%s\" 1\n", input ? input : ""); - - ret = ppy_parse(); - /* If there were errors during processing, return an error code */ - if (!ret && pp_status.state) ret = pp_status.state; - - if (input) wpp_callbacks->close(pp_status.file); - /* Clean if_stack, it could remain dirty on errors */ - while (pp_get_if_depth()) pp_pop_if(); - pp_pop_define_state(); - return ret; -} - - -void wpp_set_callbacks( const struct wpp_callbacks *callbacks ) -{ - wpp_callbacks = callbacks; -} diff --git a/reactos/tools/wpp/wpp_private.h b/reactos/tools/wpp/wpp_private.h deleted file mode 100644 index 288d709be36..00000000000 --- a/reactos/tools/wpp/wpp_private.h +++ /dev/null @@ -1,265 +0,0 @@ -/* - * Copyright 1998 Bertho A. Stultiens (BS) - * Copyright 2002 Alexandre Julliard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef __WINE_WPP_PRIVATE_H -#define __WINE_WPP_PRIVATE_H - -#ifndef __WINE_CONFIG_H -# error You must include config.h to use this header -#endif - -#include -#include - -struct pp_entry; /* forward */ -/* - * Include logic - * A stack of files which are already included and - * are protected in the #ifndef/#endif way. - */ -typedef struct includelogicentry { - struct includelogicentry *next; - struct includelogicentry *prev; - struct pp_entry *ppp; /* The define which protects the file */ - char *filename; /* The filename of the include */ -} includelogicentry_t; - -/* - * The arguments of a macrodefinition - */ -typedef enum { - arg_single, - arg_list -} def_arg_t; - -typedef struct marg { - def_arg_t type; /* Normal or ... argument */ - char *arg; /* The textual argument */ - int nnl; /* Number of newlines in the text to subst */ -} marg_t; - -/* - * The expansiontext of a macro - */ -typedef enum { - exp_text, /* Simple text substitution */ - exp_concat, /* Concat (##) operator requested */ - exp_stringize, /* Stringize (#) operator requested */ - exp_subst /* Substitute argument */ -} def_exp_t; - -typedef struct mtext { - struct mtext *next; - struct mtext *prev; - def_exp_t type; - union { - char *text; - int argidx; /* For exp_subst and exp_stringize reference */ - } subst; -} mtext_t; - -/* - * The define descriptor - */ -typedef enum { - def_none, /* Not-a-define; used as return value */ - def_define, /* Simple defines */ - def_macro, /* Macro defines */ - def_special /* Special expansions like __LINE__ and __FILE__ */ -} def_type_t; - -typedef struct pp_entry { - struct pp_entry *next; - struct pp_entry *prev; - def_type_t type; /* Define or macro */ - char *ident; /* The key */ - marg_t **margs; /* Macro arguments array or NULL if none */ - int nargs; - union { - mtext_t *mtext; /* The substitution sequence or NULL if none */ - char *text; - } subst; - int expanding; /* Set when feeding substitution into the input */ - char *filename; /* Filename where it was defined */ - int linenumber; /* Linenumber where it was defined */ - includelogicentry_t *iep; /* Points to the include it protects */ -} pp_entry_t; - - -/* - * If logic - */ -#define MAXIFSTACK 64 /* If this isn't enough you should alter the source... */ - -typedef enum { - if_false, - if_true, - if_elif, - if_elsefalse, - if_elsetrue, - if_ignore, - if_error -} pp_if_state_t; - - -/* - * Trace the include files to prevent double reading. - * This save 20..30% of processing time for most stuff - * that uses complex includes. - * States: - * -1 Don't track or seen junk - * 0 New include, waiting for "#ifndef __xxx_h" - * 1 Seen #ifndef, waiting for "#define __xxx_h ..." - * 2 Seen #endif, waiting for EOF - */ -typedef struct -{ - int state; - char *ppp; /* The define to be set from the #ifndef */ - int ifdepth; /* The level of ifs at the #ifdef */ - int seen_junk; /* Set when junk is seen */ -} include_state_t; - - -/* - * If the configure says we have long long then we can use it. Presumably - * if we have long long then we have strtoull and strtoll too. If that is - * not the case we will need to add to the configure tests. - * If we do not have long long , then we revert to a simple 'long' for now. - * This should prevent most unexpected things with other compilers than - * gcc and egcs for now. - * In the future it should be possible to use another way, like a - * structure, so that we can emulate the MS compiler. - */ -#ifdef HAVE_LONG_LONG -typedef long long wrc_sll_t; -typedef unsigned long long wrc_ull_t; -#else -typedef long wrc_sll_t; -typedef unsigned long wrc_ull_t; -#endif - -#define SIZE_CHAR 1 -#define SIZE_SHORT 2 -#define SIZE_INT 3 -#define SIZE_LONG 4 -#define SIZE_LONGLONG 5 -#define SIZE_MASK 0x00ff -#define FLAG_SIGNED 0x0100 - -typedef enum { -#if 0 - cv_schar = SIZE_CHAR + FLAG_SIGNED, - cv_uchar = SIZE_CHAR, - cv_sshort = SIZE_SHORT + FLAG_SIGNED, - cv_ushort = SIZE_SHORT, -#endif - cv_sint = SIZE_INT + FLAG_SIGNED, - cv_uint = SIZE_INT, - cv_slong = SIZE_LONG + FLAG_SIGNED, - cv_ulong = SIZE_LONG, - cv_sll = SIZE_LONGLONG + FLAG_SIGNED, - cv_ull = SIZE_LONGLONG -} ctype_t; - -typedef struct cval { - ctype_t type; - union { -#if 0 - signed char sc; /* Explicitly signed because compilers are stupid */ - unsigned char uc; - short ss; - unsigned short us; -#endif - int si; - unsigned int ui; - long sl; - unsigned long ul; - wrc_sll_t sll; - wrc_ull_t ull; - } val; -} cval_t; - - - -void *pp_xmalloc(size_t); -void *pp_xrealloc(void *, size_t); -char *pp_xstrdup(const char *str); -pp_entry_t *pplookup(const char *ident); -int pp_push_define_state(void); -void pp_pop_define_state(void); -pp_entry_t *pp_add_define(const char *def, const char *text); -pp_entry_t *pp_add_macro(char *ident, marg_t *args[], int nargs, mtext_t *exp); -void pp_del_define(const char *name); -void *pp_open_include(const char *name, const char *parent_name, char **newpath); -void pp_push_if(pp_if_state_t s); -void pp_next_if_state(int); -pp_if_state_t pp_pop_if(void); -pp_if_state_t pp_if_state(void); -int pp_get_if_depth(void); - -#ifndef __GNUC__ -#define __attribute__(x) /*nothing*/ -#endif - -extern const struct wpp_callbacks *wpp_callbacks; - -int ppy_error(const char *s, ...) __attribute__((format (printf, 1, 2))); -int ppy_warning(const char *s, ...) __attribute__((format (printf, 1, 2))); -void pp_internal_error(const char *file, int line, const char *s, ...) __attribute__((format (printf, 3, 4))); - -/* current preprocessor state */ -/* everything is in this structure to avoid polluting the global symbol space */ -struct pp_status -{ - const char *input; /* current input file name */ - void *file; /* current input file descriptor */ - int line_number; /* current line number */ - int char_number; /* current char number in line */ - int state; /* current error state */ - int pedantic; /* pedantic option */ - int debug; /* debug messages flag */ -}; - -extern struct pp_status pp_status; -extern include_state_t pp_incl_state; -extern includelogicentry_t *pp_includelogiclist; - -/* - * From ppl.l - */ -extern FILE *ppy_in; -extern FILE *ppy_out; -extern char *ppy_text; -extern int pp_flex_debug; -int ppy_lex(void); - -void pp_do_include(char *fname, int type); -void pp_push_ignore_state(void); -void pp_pop_ignore_state(void); - -void pp_writestring(const char *format, ...) __attribute__((format (printf, 1, 2))); - -/* - * From ppy.y - */ -int ppy_parse(void); -extern int ppy_debug; - -#endif /* __WINE_WPP_PRIVATE_H */ diff --git a/reactos/tools/wpp/wpp_ros.diff b/reactos/tools/wpp/wpp_ros.diff deleted file mode 100644 index 44cc0b9d513..00000000000 --- a/reactos/tools/wpp/wpp_ros.diff +++ /dev/null @@ -1,20 +0,0 @@ -Index: preproc.c -=================================================================== ---- preproc.c (revision 28293) -+++ preproc.c (revision 28294) -@@ -328,6 +328,15 @@ - char *tok; - char *cpy = pp_xstrdup(path); - -+ /* check for absolute windows paths */ -+ if (strchr(cpy, ':') != NULL) -+ { -+ nincludepath++; -+ includepath = pp_xrealloc(includepath, nincludepath * sizeof(*includepath)); -+ includepath[nincludepath-1] = cpy; -+ return; -+ } -+ - tok = strtok(cpy, INCLUDESEPARATOR); - while(tok) - { diff --git a/rosapps/CMakeLists.txt b/rosapps/CMakeLists.txt deleted file mode 100644 index ea063efff4c..00000000000 --- a/rosapps/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -add_subdirectory(applications) -add_subdirectory(demos) -add_subdirectory(drivers) \ No newline at end of file diff --git a/rosapps/Doxyfile b/rosapps/Doxyfile deleted file mode 100644 index 4f5c9967ae2..00000000000 --- a/rosapps/Doxyfile +++ /dev/null @@ -1,206 +0,0 @@ -# Doxyfile 1.3.5 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = "ROSApps" -PROJECT_NUMBER = -OUTPUT_DIRECTORY = doxy-doc -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = YES -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = D:\osexperts\ -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = YES -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = NO -INHERIT_DOCS = NO -DISTRIBUTE_GROUP_DOC = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = NO -EXTRACT_STATIC = NO -EXTRACT_LOCAL_CLASSES = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = YES -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -HAVE_DOT = YES -WARN_IF_UNDOCUMENTED = NO -WARN_IF_DOC_ERROR = YES -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = . -FILE_PATTERNS = *.c \ - *.h -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = -EXAMPLE_RECURSIVE = YES -IMAGE_PATH = -INPUT_FILTER = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = NO -INLINE_SOURCES = YES -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -VERBATIM_HEADERS = NO -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = YES -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = YES -TREEVIEW_WIDTH = 200 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = YES -RTF_HYPERLINKS = YES -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = NO -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = ../reactos/include -INCLUDE_FILE_PATTERNS = *.h -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::addtions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = NO -HAVE_DOT = YES -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = YES -GRAPHICAL_HIERARCHY = YES -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 1024 -MAX_DOT_GRAPH_HEIGHT = 1024 -MAX_DOT_GRAPH_DEPTH = 0 -GENERATE_LEGEND = YES -DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::addtions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = YES diff --git a/rosapps/applications/CMakeLists.txt b/rosapps/applications/CMakeLists.txt deleted file mode 100644 index 07ce693d155..00000000000 --- a/rosapps/applications/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -add_subdirectory(cmdutils) -add_subdirectory(devutils) -#add_subdirectory(fraginator) -add_subdirectory(imagesoft) -#add_subdirectory(net) -add_subdirectory(notevil) -add_subdirectory(screensavers) -add_subdirectory(sysutils) -#add_subdirectory(winfile) diff --git a/rosapps/applications/applications.rbuild b/rosapps/applications/applications.rbuild deleted file mode 100644 index b4c9161d1d9..00000000000 --- a/rosapps/applications/applications.rbuild +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rosapps/applications/cmdutils/CMakeLists.txt b/rosapps/applications/cmdutils/CMakeLists.txt deleted file mode 100644 index 414ae3e69d2..00000000000 --- a/rosapps/applications/cmdutils/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -add_subdirectory(appwiz) -add_subdirectory(comp) -add_subdirectory(mode) -add_subdirectory(sort) -add_subdirectory(tee) -add_subdirectory(touch) -add_subdirectory(uptime) -add_subdirectory(y) diff --git a/rosapps/applications/cmdutils/appwiz/CMakeLists.txt b/rosapps/applications/cmdutils/appwiz/CMakeLists.txt deleted file mode 100644 index 0f3aac816d8..00000000000 --- a/rosapps/applications/cmdutils/appwiz/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -add_executable(appwiz.exe appwiz.c appwiz.rc) -set_module_type(appwiz.exe win32cui) -set_target_properties(appwiz.exe PROPERTIES SUFFIX "") -add_importlibs(appwiz.exe advapi32 user32 shell32 msvcrt kernel32) -add_cd_file(TARGET appwiz.exe DESTINATION reactos/system32 FOR all) diff --git a/rosapps/applications/cmdutils/appwiz/appwiz.c b/rosapps/applications/cmdutils/appwiz/appwiz.c deleted file mode 100644 index 58ba20a4a88..00000000000 --- a/rosapps/applications/cmdutils/appwiz/appwiz.c +++ /dev/null @@ -1,261 +0,0 @@ -/* - * - * PROJECT: Add or Remove Programs (Console Version) - * FILE: rosapps/applications/cmdutils/appwiz/appwiz.c - * PURPOSE: ReactOS Software Control Panel - * PROGRAMMERS: Dmitry Chapyshev (dmitry@reactos.org) - * UPDATE HISTORY: - * 07-28-2008 Created - */ - -#define SHOW_ALL 1 -#define APP_ONLY 2 -#define UPD_ONLY 3 - -#include -#include -#include -#include - - -void PrintHelp() -{ - printf(_T("Add or Remove Programs\n\ -APPWIZ [/? /l] [/all /app /upd]\n\ - /?\t Help\n\ - /l\t Show list\n\ - /all\t Show programs and updates\n\ - /app\t Show programs only\n\ - /upd\t Show updates only\n")); - _getch(); -} - - -void RunGUIAppWiz() -{ - SHELLEXECUTEINFO shInputDll; - - memset(&shInputDll, 0x0, sizeof(SHELLEXECUTEINFO)); - shInputDll.cbSize = sizeof(shInputDll); - shInputDll.hwnd = NULL; - shInputDll.lpVerb = _T("open"); - shInputDll.lpFile = _T("RunDll32.exe"); - shInputDll.lpParameters = _T("shell32.dll,Control_RunDLL appwiz.cpl"); - - if (ShellExecuteEx(&shInputDll) == 0) - { - MessageBox(NULL, _T("Can not start appwiz.cpl"), NULL, MB_OK | MB_ICONERROR); - } -} - -void CallUninstall(LPTSTR szUninstallString) -{ - STARTUPINFO si; - PROCESS_INFORMATION pi; - DWORD dwRet; - MSG msg; - - ZeroMemory(&si, sizeof(si)); - si.cb = sizeof(si); - si.wShowWindow = SW_SHOW; - - if (CreateProcess(NULL, szUninstallString, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) - { - CloseHandle(pi.hThread); - - for (;;) - { - dwRet = MsgWaitForMultipleObjects(1, &pi.hProcess, FALSE, INFINITE, QS_ALLEVENTS); - if (dwRet == WAIT_OBJECT_0 + 1) - { - while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - else if (dwRet == WAIT_OBJECT_0 || dwRet == WAIT_FAILED) - break; - } - CloseHandle(pi.hProcess); - } -} - - -/* - dwMode: - SHOW_ALL - Applications & Updates - APP_ONLY - Applications only - UPD_ONLY - Updates only -*/ -int ShowAppList(DWORD dwMode, INT iItem) -{ - HKEY hKey, hSubKey; - DWORD dwSize, dwType, dwValue; - TCHAR szName[MAX_PATH]; - TCHAR szParentKeyName[MAX_PATH]; - TCHAR szDisplayName[MAX_PATH]; - TCHAR szOutBuf[MAX_PATH]; - FILETIME FileTime; - BOOL bIsUpdate = FALSE; - BOOL bIsSystemComponent = FALSE; - INT iIndex = 0, iColor = 0, iCount = 1; - HANDLE hOutput; - - if (RegOpenKey(HKEY_LOCAL_MACHINE, - _T("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall"), - &hKey) != ERROR_SUCCESS) - { - printf(_T("ERROR: Can not open Uninstall key. Press any key for continue...\n")); - _getch(); - return 0; - } - - hOutput = GetStdHandle(STD_OUTPUT_HANDLE); - SetConsoleTextAttribute(hOutput, FOREGROUND_GREEN | FOREGROUND_INTENSITY); - - dwSize = MAX_PATH; - while (RegEnumKeyEx(hKey, iIndex, szName, &dwSize, NULL, NULL, NULL, &FileTime) == ERROR_SUCCESS) - { - if (RegOpenKey(hKey, szName, &hSubKey) == ERROR_SUCCESS) - { - dwType = REG_DWORD; - dwSize = sizeof(DWORD); - - if (RegQueryValueEx(hSubKey, _T("SystemComponent"), - NULL, &dwType, - (LPBYTE)&dwValue, &dwSize) == ERROR_SUCCESS) - { - bIsSystemComponent = (dwValue == 0x1); - } - else - { - bIsSystemComponent = FALSE; - } - - dwType = REG_SZ; - dwSize = MAX_PATH; - - bIsUpdate = (RegQueryValueEx(hSubKey, _T("ParentKeyName"), - NULL, &dwType, - (LPBYTE) szParentKeyName, - &dwSize) == ERROR_SUCCESS); - dwSize = MAX_PATH; - if (RegQueryValueEx(hSubKey, _T("DisplayName"), - NULL, &dwType, - (LPBYTE) szDisplayName, - &dwSize) == ERROR_SUCCESS) - { - if (!bIsSystemComponent) - { - if ((dwMode == SHOW_ALL) || ((dwMode == APP_ONLY) && (!bIsUpdate)) || ((dwMode == UPD_ONLY) && (bIsUpdate))) - { - if (iItem == -1) - { - wsprintf(szOutBuf, _T(" %d \t %s\n"), iCount, szDisplayName); - CharToOem(szOutBuf, szOutBuf); - printf("%s", szOutBuf); - } - else - { - dwType = REG_SZ; - dwSize = MAX_PATH; - - if ((RegQueryValueEx(hSubKey, _T("UninstallString"), NULL, &dwType, - (LPBYTE) szOutBuf, &dwSize) == ERROR_SUCCESS) && (iItem == iCount)) - { - CallUninstall(szOutBuf); - } - } - iCount++; - iColor++; - } - } - } - } - - if (iColor <= 5) - { - SetConsoleTextAttribute(hOutput, FOREGROUND_GREEN | FOREGROUND_INTENSITY); - } - else - { - SetConsoleTextAttribute(hOutput, FOREGROUND_GREEN | FOREGROUND_INTENSITY | FOREGROUND_RED); - if (iColor >= 10) iColor = 0; - } - - dwSize = MAX_PATH; - iIndex++; - } - - RegCloseKey(hSubKey); - RegCloseKey(hKey); - - SetConsoleTextAttribute(hOutput, FOREGROUND_GREEN | FOREGROUND_INTENSITY); - printf("\n\nPlease enter application/update number and press ENTER for uninstall\nor press any key for Exit...\n"); - - return 1; -} - - -int _tmain(int argc, _TCHAR* argv[]) -{ - INT iNumber; - TCHAR Char[4 + 1]; - - SetConsoleTitle(_T("Application Wizard")); - - if (argc < 2) - { - RunGUIAppWiz(); - return 0; - } - - if (_tcsncmp(argv[1], _T("/?"), 2) == 0) - { - PrintHelp(); - return 0; - } - - if (_tcsncmp(argv[1], _T("/l"), 2) == 0) - { - if (argc < 3) goto ShowAll; - if (_tcsncmp(argv[2], _T("/all"), 4) == 0) - { -ShowAll: - if (ShowAppList(SHOW_ALL, -1) == 0) return 0; - scanf(_T("%s"), Char); - - iNumber = atoi(Char); - - if (iNumber == 0) return 0; - ShowAppList(SHOW_ALL, iNumber); - } - else if (_tcsncmp(argv[2], _T("/app"), 4) == 0) - { - if (ShowAppList(APP_ONLY, -1) == 0) return 0; - - scanf(_T("%s"), Char); - - iNumber = atoi(Char); - - if (iNumber == 0) return 0; - ShowAppList(APP_ONLY, iNumber); - } - else if (_tcsncmp(argv[2], _T("/upd"), 4) == 0) - { - if (ShowAppList(UPD_ONLY, -1) == 0) return 0; - - scanf(_T("%s"), Char); - - iNumber = atoi(Char); - - if (iNumber == 0) return 0; - ShowAppList(UPD_ONLY, iNumber); - } - - return 0; - } - - return 0; -} diff --git a/rosapps/applications/cmdutils/appwiz/appwiz.rbuild b/rosapps/applications/cmdutils/appwiz/appwiz.rbuild deleted file mode 100644 index 1c84412cf6e..00000000000 --- a/rosapps/applications/cmdutils/appwiz/appwiz.rbuild +++ /dev/null @@ -1,7 +0,0 @@ - - advapi32 - user32 - shell32 - appwiz.c - appwiz.rc - diff --git a/rosapps/applications/cmdutils/appwiz/appwiz.rc b/rosapps/applications/cmdutils/appwiz/appwiz.rc deleted file mode 100644 index 6f0156c7a83..00000000000 --- a/rosapps/applications/cmdutils/appwiz/appwiz.rc +++ /dev/null @@ -1,4 +0,0 @@ -#define REACTOS_STR_FILE_DESCRIPTION "Add or Remove Programs (Console Version)\0" -#define REACTOS_STR_INTERNAL_NAME "appwiz\0" -#define REACTOS_STR_ORIGINAL_FILENAME "appwiz.exe\0" -#include diff --git a/rosapps/applications/cmdutils/cmdutils.rbuild b/rosapps/applications/cmdutils/cmdutils.rbuild deleted file mode 100644 index 0d977f7ac18..00000000000 --- a/rosapps/applications/cmdutils/cmdutils.rbuild +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rosapps/applications/cmdutils/comp/CMakeLists.txt b/rosapps/applications/cmdutils/comp/CMakeLists.txt deleted file mode 100644 index 4401ba8ef58..00000000000 --- a/rosapps/applications/cmdutils/comp/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ - -add_executable(comp comp.c comp.rc) -set_module_type(comp win32cui) -add_importlibs(comp msvcrt kernel32) -add_cd_file(TARGET comp DESTINATION reactos/system32 FOR all) diff --git a/rosapps/applications/cmdutils/comp/comp.c b/rosapps/applications/cmdutils/comp/comp.c deleted file mode 100644 index 2446ddab5ae..00000000000 --- a/rosapps/applications/cmdutils/comp/comp.c +++ /dev/null @@ -1,182 +0,0 @@ -/* - * ReactOS Win32 Applications - * Copyright (C) 2005 ReactOS Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS comp utility - * FILE: comp.c - * PURPOSE: Compares the contents of two files - * PROGRAMMERS: Ged Murphy (gedmurphy@gmail.com) - * REVISIONS: - * GM 25/09/05 Created - * - */ - - -#include -#include -#include -#include -#include - -#define STRBUF 1024 - -/* getline: read a line, return length */ -INT GetLine(char *line, FILE *in) -{ - if (fgets(line, STRBUF, in) == NULL) - return 0; - else - return strlen(line); -} - -/* print program usage */ -VOID Usage(VOID) -{ - _tprintf(_T("\nCompares the contents of two files or sets of files.\n\n" - "COMP [data1] [data2]\n\n" - " data1 Specifies location and name of first file to compare.\n" - " data2 Specifies location and name of second file to compare.\n")); -} - - -int _tmain (int argc, TCHAR *argv[]) -{ - INT i; - INT LineLen1, LineLen2; - FILE *fp1, *fp2; // file pointers - PTCHAR Line1 = (TCHAR *)malloc(STRBUF * sizeof(TCHAR)); - PTCHAR Line2 = (TCHAR *)malloc(STRBUF * sizeof(TCHAR)); - TCHAR File1[_MAX_PATH], // file paths - File2[_MAX_PATH]; - BOOL bMatch = TRUE, // files match - bAscii = FALSE, // /A switch - bLineNos = FALSE; // /L switch - - /* parse command line for options */ - for (i = 1; i < argc; i++) - { - if (argv[i][0] == '/') - { - --argc; - switch (argv[i][1]) { - case 'A': bAscii = TRUE; - _tprintf(_T("/a not Supported\n")); /*FIXME: needs adding */ - break; - case 'L': bLineNos = TRUE; - _tprintf(_T("/l not supported\n")); /*FIXME: needs adding */ - break; - case '?': Usage(); - return EXIT_SUCCESS; - default: - _tprintf(_T("Invalid switch - /%c\n"), argv[i][1]); - Usage(); - return EXIT_FAILURE; - } - } - } - - switch (argc) - { - case 1 : - _tprintf(_T("Name of first file to compare: ")); - fgets(File1, _MAX_PATH, stdin); - for (i=0; i<_MAX_PATH; i++) - { - if (File1[i] == '\n') - { - File1[i] = '\0'; - break; - } - } - - _tprintf(_T("Name of second file to compare: ")); - fgets(File2, _MAX_PATH, stdin); - for (i=0; i<_MAX_PATH; i++) - { - if (File2[i] == '\n') - { - File2[i] = '\0'; - break; - } - } - break; - case 2 : - _tcsncpy(File1, argv[1], _MAX_PATH); - _tprintf(_T("Name of second file to compare: ")); - fgets(File2, _MAX_PATH, stdin); - for (i=0; i<_MAX_PATH; i++) - { - if (File2[i] == '\n') - { - File2[i] = '\0'; - break; - } - } - break; - case 3 : - _tcsncpy(File1, argv[1], _MAX_PATH); - _tcsncpy(File2, argv[2], _MAX_PATH); - break; - default : - _tprintf(_T("Bad command line syntax\n")); - return EXIT_FAILURE; - break; - } - - - - if ((fp1 = fopen(File1, "r")) == NULL) - { - _tprintf(_T("Can't find/open file: %s\n"), File1); - return EXIT_FAILURE; - } - if ((fp2 = fopen(File2, "r")) == NULL) - { - _tprintf(_T("Can't find/open file: %s\n"), File2); - fclose(fp1); - return EXIT_FAILURE; - } - - - _tprintf(_T("Comparing %s and %s...\n"), File1, File2); - - while ((LineLen1 = GetLine(Line1, fp1) != 0) && - (LineLen2 = GetLine(Line2, fp2) != 0)) - { - // LineCount++; - while ((*Line1 != '\0') && (*Line2 != '\0')) - { - if (*Line1 != *Line2) - { - bMatch = FALSE; - break; - } - Line1++, Line2++; - } - } - - bMatch ? _tprintf(_T("Files compare OK\n")) : _tprintf(_T("Files are different sizes.\n")); - - fclose(fp1); - fclose(fp2); - - - return EXIT_SUCCESS; -} -/* EOF */ diff --git a/rosapps/applications/cmdutils/comp/comp.rbuild b/rosapps/applications/cmdutils/comp/comp.rbuild deleted file mode 100644 index 13d249a3aca..00000000000 --- a/rosapps/applications/cmdutils/comp/comp.rbuild +++ /dev/null @@ -1,4 +0,0 @@ - - comp.c - comp.rc - diff --git a/rosapps/applications/cmdutils/comp/comp.rc b/rosapps/applications/cmdutils/comp/comp.rc deleted file mode 100644 index 9a00c52a8ca..00000000000 --- a/rosapps/applications/cmdutils/comp/comp.rc +++ /dev/null @@ -1,4 +0,0 @@ -#define REACTOS_STR_FILE_DESCRIPTION "File Compare Utility\0" -#define REACTOS_STR_INTERNAL_NAME "comp\0" -#define REACTOS_STR_ORIGINAL_FILENAME "comp.exe\0" -#include diff --git a/rosapps/applications/cmdutils/mode/CMakeLists.txt b/rosapps/applications/cmdutils/mode/CMakeLists.txt deleted file mode 100644 index 578fc4b345c..00000000000 --- a/rosapps/applications/cmdutils/mode/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ - -add_executable(mode mode.c mode.rc) -set_module_type(mode win32cui) -add_importlibs(mode shell32 user32 msvcrt kernel32) -add_cd_file(TARGET mode DESTINATION reactos/system32 FOR all) diff --git a/rosapps/applications/cmdutils/mode/mode.c b/rosapps/applications/cmdutils/mode/mode.c deleted file mode 100644 index bdd73414b30..00000000000 --- a/rosapps/applications/cmdutils/mode/mode.c +++ /dev/null @@ -1,458 +0,0 @@ -/* - * ReactOS mode console command - * - * mode.c - * - * Copyright (C) 2002 Robert Dickenson - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include -#include -#include -#include - -#define MAX_PORTNAME_LEN 20 -#define MAX_COMPORT_NUM 10 -#define MAX_COMPARAM_LEN 20 - -#define NUM_ELEMENTS(a) (sizeof(a)/sizeof(a[0])) -#define ASSERT(a) - -const TCHAR* const usage_strings[] = { - _T("Device Status: MODE [device] [/STATUS]"), - _T("Select code page: MODE CON[:] CP SELECT=yyy"), - _T("Code page status: MODE CON[:] CP [/STATUS]"), - _T("Display mode: MODE CON[:] [COLS=c] [LINES=n]"), - _T("Typematic rate: MODE CON[:] [RATE=r DELAY=d]"), - _T("Redirect printing: MODE LPTn[:]=COMm[:]"), - _T("Serial port: MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]\n") \ - _T(" [to=on|off] [xon=on|off] [odsr=on|off]\n") \ - _T(" [octs=on|off] [dtr=on|off|hs]\n") \ - _T(" [rts=on|off|hs|tg] [idsr=on|off]"), -}; - -const TCHAR* const parity_strings[] = { - _T("None"), // default - _T("Odd"), // only symbol in this set to have a 'd' in it - _T("Even"), // ... 'v' in it - _T("Mark"), // ... 'm' in it - _T("Space") // ... 's' and/or a 'c' in it -}; - -const TCHAR* const control_strings[] = { _T("OFF"), _T("ON"), _T("HANDSHAKE"), _T("TOGGLE") }; - -const TCHAR* const stopbit_strings[] = { _T("1"), _T("1.5"), _T("2") }; - - -int Usage() -{ - int i; - - _tprintf(_T("\nConfigures system devices.\n\n")); - for (i = 0; i < NUM_ELEMENTS(usage_strings); i++) { - _tprintf(_T("%s\n"), usage_strings[i]); - } - _tprintf(_T("\n")); - return 0; -} - -int QueryDevices() -{ - TCHAR buffer[20240]; - int len; - TCHAR* ptr = buffer; - - *ptr = '\0'; - if (QueryDosDevice(NULL, buffer, NUM_ELEMENTS(buffer))) { - while (*ptr != '\0') { - len = _tcslen(ptr); - if (_tcsstr(ptr, _T("COM"))) { - _tprintf(_T(" Found serial device - %s\n"), ptr); - } else if (_tcsstr(ptr, _T("PRN"))) { - _tprintf(_T(" Found printer device - %s\n"), ptr); - } else if (_tcsstr(ptr, _T("LPT"))) { - _tprintf(_T(" Found parallel device - %s\n"), ptr); - } else { - //_tprintf(_T(" Found other device - %s\n"), ptr); - } - ptr += (len+1); - } - } else { - _tprintf(_T(" ERROR: QueryDosDevice(...) failed.%ld\n"), GetLastError()); - } - return 1; -} - -int ShowParallelStatus(int nPortNum) -{ - TCHAR buffer[250]; - TCHAR szPortName[MAX_PORTNAME_LEN]; - - _stprintf(szPortName, _T("LPT%d"), nPortNum); - _tprintf(_T("\nStatus for device LPT%d:\n"), nPortNum); - _tprintf(_T("-----------------------\n")); - if (QueryDosDevice(szPortName, buffer, NUM_ELEMENTS(buffer))) { - TCHAR* ptr = _tcsrchr(buffer, '\\'); - if (ptr != NULL) { - if (0 == _tcscmp(szPortName, ++ptr)) { - _tprintf(_T(" Printer output is not being rerouted.\n")); - } else { - _tprintf(_T(" Printer output is being rerouted to serial port %s\n"), ptr); - } - return 0; - } else { - _tprintf(_T(" QueryDosDevice(%s) returned unrecogised form %s.\n"), szPortName, buffer); - } - } else { - _tprintf(_T(" ERROR: QueryDosDevice(%s) failed.\n"), szPortName); - } - return 1; -} - -int ShowConsoleStatus() -{ - DWORD dwKbdDelay; - DWORD dwKbdSpeed; - CONSOLE_SCREEN_BUFFER_INFO ConsoleScreenBufferInfo; - HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); - - _tprintf(_T("\nStatus for device CON:\n")); - _tprintf(_T("-----------------------\n")); - if (GetConsoleScreenBufferInfo(hConsoleOutput, &ConsoleScreenBufferInfo)) { - _tprintf(_T(" Lines: %d\n"), ConsoleScreenBufferInfo.dwSize.Y); - _tprintf(_T(" Columns: %d\n"), ConsoleScreenBufferInfo.dwSize.X); - } - if (SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, &dwKbdDelay, 0)) { - _tprintf(_T(" Keyboard delay: %ld\n"), dwKbdDelay); - } - if (SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, &dwKbdSpeed, 0)) { - _tprintf(_T(" Keyboard rate: %ld\n"), dwKbdSpeed); - } - _tprintf(_T(" Code page: %d\n"), GetConsoleOutputCP()); - return 0; -} - -static -BOOL SerialPortQuery(int nPortNum, LPDCB pDCB, LPCOMMTIMEOUTS pCommTimeouts, BOOL bWrite) -{ - BOOL result; - HANDLE hPort; - TCHAR szPortName[MAX_PORTNAME_LEN]; - - ASSERT(pDCB); - ASSERT(pCommTimeouts); - - _stprintf(szPortName, _T("COM%d"), nPortNum); - hPort = CreateFile(szPortName, - GENERIC_READ|GENERIC_WRITE, - 0, // exclusive - NULL, // sec attr - OPEN_EXISTING, - 0, // no attributes - NULL); // no template - - if (hPort == INVALID_HANDLE_VALUE) { - _tprintf(_T("Illegal device name - %s\n"), szPortName); - _tprintf(_T("Last error = 0x%lx\n"), GetLastError()); - return FALSE; - } - if (bWrite) { - result = SetCommState(hPort, pDCB); - } else { - result = GetCommState(hPort, pDCB); - } - if (!result) { - _tprintf(_T("Failed to %s the status for device COM%d:\n"), bWrite ? _T("set") : _T("get"), nPortNum); - CloseHandle(hPort); - return FALSE; - } - if (bWrite) { - result = SetCommTimeouts(hPort, pCommTimeouts); - } else { - result = GetCommTimeouts(hPort, pCommTimeouts); - } - if (!result) { - _tprintf(_T("Failed to %s Timeout status for device COM%d:\n"), bWrite ? _T("set") : _T("get"), nPortNum); - CloseHandle(hPort); - return FALSE; - - } - CloseHandle(hPort); - return TRUE; -} - -int ShowSerialStatus(int nPortNum) -{ - DCB dcb; - COMMTIMEOUTS CommTimeouts; - - if (!SerialPortQuery(nPortNum, &dcb, &CommTimeouts, FALSE)) { - return 1; - } - if (dcb.Parity > NUM_ELEMENTS(parity_strings)) { - _tprintf(_T("ERROR: Invalid value for Parity Bits %d:\n"), dcb.Parity); - dcb.Parity = 0; - } - if (dcb.StopBits > NUM_ELEMENTS(stopbit_strings)) { - _tprintf(_T("ERROR: Invalid value for Stop Bits %d:\n"), dcb.StopBits); - dcb.StopBits = 0; - } - _tprintf(_T("\nStatus for device COM%d:\n"), nPortNum); - _tprintf(_T("-----------------------\n")); - _tprintf(_T(" Baud: %ld\n"), dcb.BaudRate); - _tprintf(_T(" Parity: %s\n"), parity_strings[dcb.Parity]); - _tprintf(_T(" Data Bits: %d\n"), dcb.ByteSize); - _tprintf(_T(" Stop Bits: %s\n"), stopbit_strings[dcb.StopBits]); - _tprintf(_T(" Timeout: %s\n"), CommTimeouts.ReadIntervalTimeout ? _T("ON") : _T("OFF")); - _tprintf(_T(" XON/XOFF: %s\n"), dcb.fOutX ? _T("ON") : _T("OFF")); - _tprintf(_T(" CTS handshaking: %s\n"), dcb.fOutxCtsFlow ? _T("ON") : _T("OFF")); - _tprintf(_T(" DSR handshaking: %s\n"), dcb.fOutxDsrFlow ? _T("ON") : _T("OFF")); - _tprintf(_T(" DSR sensitivity: %s\n"), dcb.fDsrSensitivity ? _T("ON") : _T("OFF")); - _tprintf(_T(" DTR circuit: %s\n"), control_strings[dcb.fDtrControl]); - _tprintf(_T(" RTS circuit: %s\n"), control_strings[dcb.fRtsControl]); - return 0; -} - -int SetParallelState(int nPortNum) -{ - TCHAR szPortName[MAX_PORTNAME_LEN]; - TCHAR szTargetPath[MAX_PORTNAME_LEN]; - - _stprintf(szPortName, _T("LPT%d"), nPortNum); - _stprintf(szTargetPath, _T("COM%d"), nPortNum); - if (!DefineDosDevice(DDD_REMOVE_DEFINITION, szPortName, szTargetPath)) { - DWORD error = GetLastError(); - - _tprintf(_T("SetParallelState(%d) - DefineDosDevice(%s) failed: 0x%lx\n"), nPortNum, szPortName, error); - } - return 0; -} - -/* - \??\COM1 - \Device\NamedPipe\Spooler\LPT1 -BOOL DefineDosDevice( - DWORD dwFlags, // options - LPCTSTR lpDeviceName, // device name - LPCTSTR lpTargetPath // path string -); -DWORD QueryDosDevice( - LPCTSTR lpDeviceName, // MS-DOS device name string - LPTSTR lpTargetPath, // query results buffer - DWORD ucchMax // maximum size of buffer -); - */ - -int SetConsoleState() -{ -/* - "Select code page: MODE CON[:] CP SELECT=yyy", - "Code page status: MODE CON[:] CP [/STATUS]", - "Display mode: MODE CON[:] [COLS=c] [LINES=n]", - "Typematic rate: MODE CON[:] [RATE=r DELAY=d]", - */ - return 0; -} - -static -int ExtractModeSerialParams(const TCHAR* param) -{ - if ( _tcsstr(param, _T("OFF"))) { - return 0; - } else if (_tcsstr(param, _T("ON"))) { - return 1; - } else if (_tcsstr(param, _T("HS"))) { - return 2; - } else if (_tcsstr(param, _T("TG"))) { - return 3; - } - return -1; -} - -int SetSerialState(int nPortNum, int args, TCHAR *argv[]) -{ - int arg; - int value; - DCB dcb; - COMMTIMEOUTS CommTimeouts; - TCHAR buf[MAX_COMPARAM_LEN+1]; - - if (SerialPortQuery(nPortNum, &dcb, &CommTimeouts, FALSE)) { - for (arg = 2; arg < args; arg++) { - if (_tcslen(argv[arg]) > MAX_COMPARAM_LEN) { - _tprintf(_T("Invalid parameter (too long) - %s\n"), argv[arg]); - return 1; - } - _tcscpy(buf, argv[arg]); - _tcslwr(buf); - if (_tcsstr(buf, _T("baud="))) { - _tscanf(buf+5, "%lu", &dcb.BaudRate); - } else if (_tcsstr(buf, _T("parity="))) { - if (_tcschr(buf, 'D')) { - dcb.Parity = 1; - } else if (_tcschr(buf, 'V')) { - dcb.Parity = 2; - } else if (_tcschr(buf, 'M')) { - dcb.Parity = 3; - } else if (_tcschr(buf, 'S')) { - dcb.Parity = 4; - } else { - dcb.Parity = 0; - } - } else if (_tcsstr(buf, _T("data="))) { - _tscanf(buf+5, "%lu", &dcb.ByteSize); - } else if (_tcsstr(buf, _T("stop="))) { - if (_tcschr(buf, '5')) { - dcb.StopBits = 1; - } else if (_tcschr(buf, '2')) { - dcb.StopBits = 2; - } else { - dcb.StopBits = 0; - } - } else if (_tcsstr(buf, _T("to="))) { // to=on|off - value = ExtractModeSerialParams(buf); - if (value != -1) { - } else { - goto invalid_serial_parameter; - } - } else if (_tcsstr(buf, _T("xon="))) { // xon=on|off - value = ExtractModeSerialParams(buf); - if (value != -1) { - dcb.fOutX = value; - dcb.fInX = value; - } else { - goto invalid_serial_parameter; - } - } else if (_tcsstr(buf, _T("odsr="))) { // odsr=on|off - value = ExtractModeSerialParams(buf); - if (value != -1) { - dcb.fOutxDsrFlow = value; - } else { - goto invalid_serial_parameter; - } - } else if (_tcsstr(buf, _T("octs="))) { // octs=on|off - value = ExtractModeSerialParams(buf); - if (value != -1) { - dcb.fOutxCtsFlow = value; - } else { - goto invalid_serial_parameter; - } - } else if (_tcsstr(buf, _T("dtr="))) { // dtr=on|off|hs - value = ExtractModeSerialParams(buf); - if (value != -1) { - dcb.fDtrControl = value; - } else { - goto invalid_serial_parameter; - } - } else if (_tcsstr(buf, _T("rts="))) { // rts=on|off|hs|tg - value = ExtractModeSerialParams(buf); - if (value != -1) { - dcb.fRtsControl = value; - } else { - goto invalid_serial_parameter; - } - } else if (_tcsstr(buf, _T("idsr="))) { // idsr=on|off - value = ExtractModeSerialParams(buf); - if (value != -1) { - dcb.fDsrSensitivity = value; - } else { - goto invalid_serial_parameter; - } - } else { -invalid_serial_parameter:; - _tprintf(_T("Invalid parameter - %s\n"), buf); - return 1; - } - } - SerialPortQuery(nPortNum, &dcb, &CommTimeouts, TRUE); - } - return 0; -} - -int find_portnum(const TCHAR* cmdverb) -{ - int portnum = -1; - - if (cmdverb[3] >= '0' && cmdverb[3] <= '9') { - portnum = cmdverb[3] - '0'; - if (cmdverb[4] >= '0' && cmdverb[4] <= '9') { - portnum *= 10; - portnum += cmdverb[4] - '0'; - } - } - return portnum; -} - -int main(int argc, TCHAR *argv[]) -{ - int nPortNum; - TCHAR param1[MAX_COMPARAM_LEN+1]; - TCHAR param2[MAX_COMPARAM_LEN+1]; - - if (argc > 1) { - if (_tcslen(argv[1]) > MAX_COMPARAM_LEN) { - _tprintf(_T("Invalid parameter (too long) - %s\n"), argv[1]); - return 1; - } - _tcscpy(param1, argv[1]); - _tcslwr(param1); - if (argc > 2) { - if (_tcslen(argv[2]) > MAX_COMPARAM_LEN) { - _tprintf(_T("Invalid parameter (too long) - %s\n"), argv[2]); - return 1; - } - _tcscpy(param2, argv[2]); - _tcslwr(param2); - } else { - param2[0] = '\0'; - } - if (_tcsstr(param1, _T("/?")) || _tcsstr(param1, _T("-?"))) { - return Usage(); - } else if (_tcsstr(param1, _T("/status"))) { - goto show_status; - } else if (_tcsstr(param1, _T("lpt"))) { - nPortNum = find_portnum(param1); - if (nPortNum != -1) - return ShowParallelStatus(nPortNum); - } else if (_tcsstr(param1, _T("con"))) { - return ShowConsoleStatus(); - } else if (_tcsstr(param1, _T("com"))) { - nPortNum = find_portnum(param1); - if (nPortNum != -1) { - if (param2[0] == '\0' || _tcsstr(param2, _T("/status"))) { - return ShowSerialStatus(nPortNum); - } else { - return SetSerialState(nPortNum, argc, argv); - } - } - } - _tprintf(_T("Invalid parameter - %s\n"), param1); - return 1; - } else { -show_status:; - - QueryDevices(); -/* - ShowParallelStatus(1); - for (nPortNum = 0; nPortNum < MAX_COMPORT_NUM; nPortNum++) { - ShowSerialStatus(nPortNum + 1); - } - ShowConsoleStatus(); - */ - } - return 0; -} diff --git a/rosapps/applications/cmdutils/mode/mode.rbuild b/rosapps/applications/cmdutils/mode/mode.rbuild deleted file mode 100644 index 11eb3065335..00000000000 --- a/rosapps/applications/cmdutils/mode/mode.rbuild +++ /dev/null @@ -1,6 +0,0 @@ - - . - shell32 - user32 - mode.c - mode.rc diff --git a/rosapps/applications/cmdutils/mode/mode.rc b/rosapps/applications/cmdutils/mode/mode.rc deleted file mode 100644 index 76b8c0598b9..00000000000 --- a/rosapps/applications/cmdutils/mode/mode.rc +++ /dev/null @@ -1,6 +0,0 @@ -/* $Id$ */ - -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS mode utility\0" -#define REACTOS_STR_INTERNAL_NAME "mode\0" -#define REACTOS_STR_ORIGINAL_FILENAME "mode.exe\0" -#include diff --git a/rosapps/applications/cmdutils/sort/CMakeLists.txt b/rosapps/applications/cmdutils/sort/CMakeLists.txt deleted file mode 100644 index 1429da4fed9..00000000000 --- a/rosapps/applications/cmdutils/sort/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ - -add_executable(sort sort.c sort.rc) -set_module_type(sort win32cui) -add_importlibs(sort msvcrt kernel32) -add_cd_file(TARGET sort DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/rosapps/applications/cmdutils/sort/sort.c b/rosapps/applications/cmdutils/sort/sort.c deleted file mode 100644 index 0d6cc56cb4e..00000000000 --- a/rosapps/applications/cmdutils/sort/sort.c +++ /dev/null @@ -1,141 +0,0 @@ -/* -* SORT - reads line of a file and sorts them in order -* Copyright 1995 Jim Lynch -* -* Adapted for ReactOS -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include -#include -#include -#include - -#define MAXRECORDS 65536 /* maximum number of records that can be - * sorted */ -#define MAXLEN 4095 /* maximum record length */ - -int rev; /* reverse flag */ -int help; /* help flag */ -int sortcol; /* sort column */ -int err = 0; /* error counter */ - -int -cmpr(const void *a, const void *b) -{ - char *A, *B; - - A = *(char **) a; - B = *(char **) b; - - if (sortcol > 0) { - if (strlen(A) > sortcol) - A += sortcol; - else - A = ""; - if (strlen(B) > sortcol) - B += sortcol; - else - B = ""; - } - if (!rev) - return strcmp(A, B); - else - return strcmp(B, A); -} - -void -usage(void) -{ - fputs("SORT\n", stderr); - fputs("Sorts input and writes output to a file, console or a device.\n", stderr); - if (err) - fputs("Invalid parameter\n", stderr); - fputs(" SORT [options] < [drive:1][path1]file1 > [drive2:][path2]file2\n", stderr); - fputs(" Command | SORT [options] > [drive:][path]file\n", stderr); - fputs(" Options:\n", stderr); - fputs(" /R Reverse order\n", stderr); - fputs(" /+n Start sorting with column n\n", stderr); - fputs(" /? Help\n", stderr); -} - -int main(int argc, char **argv) -{ - char temp[MAXLEN + 1]; - char **list; - char *cp; /* option character pointer */ - int nr; - int i; - - - sortcol = 0; - rev = 0; - while (--argc) { - if (*(cp = *++argv) == '/') { - switch (cp[1]) { - case 'R': - case 'r': - rev = 1; - break; - case '?': - case 'h': - case 'H': - help = 1; - break; - case '+': - sortcol = atoi(cp + 1); - if (sortcol) - sortcol--; - break; - default: - err++; - } - } - } - if (err || help) { - usage(); - exit(1); - } - list = (char **) malloc(MAXRECORDS * sizeof(char *)); - if (list == NULL) { - fputs("SORT: Insufficient memory\n", stderr); - exit(3); - } - for (nr = 0; nr < MAXRECORDS; nr++) { - if (fgets(temp, MAXLEN, stdin) == NULL) - break; - if(strlen(temp)) - temp[strlen(temp)-1]='\0'; - list[nr] = (char *) malloc(strlen(temp) + 1); - if (list[nr] == NULL) { - fputs("SORT: Insufficient memory\n", stderr); - exit(3); - } - strcpy(list[nr], temp); - } - if (nr == MAXRECORDS) { - fputs("SORT: number of records exceeds maximum\n", stderr); - exit(4); - } - qsort((void *) list, nr, sizeof(char *), cmpr); - for (i = 0; i < nr; i++) { - fputs(list[i], stdout); - fputs("\n",stdout); - } - return 0; -} - -/* EOF */ diff --git a/rosapps/applications/cmdutils/sort/sort.rbuild b/rosapps/applications/cmdutils/sort/sort.rbuild deleted file mode 100644 index 188fd1eb282..00000000000 --- a/rosapps/applications/cmdutils/sort/sort.rbuild +++ /dev/null @@ -1,4 +0,0 @@ - - sort.c - sort.rc - diff --git a/rosapps/applications/cmdutils/sort/sort.rc b/rosapps/applications/cmdutils/sort/sort.rc deleted file mode 100644 index bf386abc250..00000000000 --- a/rosapps/applications/cmdutils/sort/sort.rc +++ /dev/null @@ -1,6 +0,0 @@ -/* $Id$ */ - -#define REACTOS_STR_FILE_DESCRIPTION "W32 sort command\0" -#define REACTOS_STR_INTERNAL_NAME "sort\0" -#define REACTOS_STR_ORIGINAL_FILENAME "sort.exe\0" -#include diff --git a/rosapps/applications/cmdutils/tee/CMakeLists.txt b/rosapps/applications/cmdutils/tee/CMakeLists.txt deleted file mode 100644 index 189648ef5e7..00000000000 --- a/rosapps/applications/cmdutils/tee/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ - -add_executable(tee tee.c tee.rc) -set_module_type(tee win32cui) -add_importlibs(tee msvcrt kernel32) -add_cd_file(TARGET tee DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/rosapps/applications/cmdutils/tee/tee.c b/rosapps/applications/cmdutils/tee/tee.c deleted file mode 100644 index 149f8486d0c..00000000000 --- a/rosapps/applications/cmdutils/tee/tee.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - * TEE.C - external command. - * - * clone from 4nt tee command - * - * 01 Sep 1999 - Paolo Pantaleo - * started - * - * - */ - - -#include -#include -#include -#include - - - -#define TEE_BUFFER_SIZE 8192 - -/*these are function that emulate the ones used in cmd*/ - -/*many of them are just copied in this file from their -original location*/ - -VOID ConOutPuts (LPTSTR szText) -{ - DWORD dwWritten; - - WriteFile (GetStdHandle (STD_OUTPUT_HANDLE), szText, _tcslen(szText), &dwWritten, NULL); - WriteFile (GetStdHandle (STD_OUTPUT_HANDLE), _T("\n"), 1, &dwWritten, NULL); -} - - -VOID ConErrPrintf (LPTSTR szFormat, ...) -{ - DWORD dwWritten; - TCHAR szOut[4096]; - va_list arg_ptr; - - va_start (arg_ptr, szFormat); - _vstprintf (szOut, szFormat, arg_ptr); - va_end (arg_ptr); - - WriteFile (GetStdHandle (STD_ERROR_HANDLE), szOut, _tcslen(szOut), &dwWritten, NULL); -} - - - -VOID error_sfile_not_found (LPTSTR f) -{ - ConErrPrintf (_T("Error opening file") _T(" - %s\n"), f); -} - - - - -VOID ConErrPuts (LPTSTR szText) -{ - ConErrPrintf(_T("%s\n"),szText ); -} - - -INT main (int argc,char **p) -{ - /*reading/writing buffer*/ - TCHAR buff[TEE_BUFFER_SIZE]; - - /*handle for file and console*/ - HANDLE hConsoleIn,hConsoleOut; - - /*bytes written by WriteFile and ReadFile*/ - DWORD dwRead,dwWritten; - - - BOOL bRet,bAppend=FALSE; - - - /*command line parsing stuff*/ - LPTSTR tmp; - INT i; - BOOL bQuote; - - /*file list implementation*/ - LPTSTR *files; - INT iFileCounter=0; - HANDLE *hFile; - - /*used to remove '"' (if any)*/ - INT add; - - DWORD dw; - - - if (argc < 2) - return 1; - - if (_tcsncmp (p[1], _T("/?"), 2) == 0) - { - ConOutPuts (_T("Copy standard input to both standard output and a file.\n" - "\n" - "TEE [/A] file...\n" - "\n" - " file One or more files that will receive output.\n" - " /A Append output to files.\n")); - return 0; - } - - files = malloc(sizeof(LPTSTR)*argc); - hFile = malloc(sizeof(HANDLE)*argc); - - hConsoleIn=GetStdHandle(STD_INPUT_HANDLE); - hConsoleOut=GetStdHandle(STD_OUTPUT_HANDLE); - - /*parse command line for /a and file name(s)*/ - for(i=1;i = sizeof(files) / sizeof(*files) ) - { - ConErrPrintf("too many files, maximum is %d\n",sizeof(files) / sizeof(*files)); - return 1; - } - */ - - files[iFileCounter++]= p[i]+add; - } - - /*open file(s)*/ - for(i=0;i0 && bRet) - { - for(i=0;i0 && bRet); - - for(i=0;i - tee.c - tee.rc - diff --git a/rosapps/applications/cmdutils/tee/tee.rc b/rosapps/applications/cmdutils/tee/tee.rc deleted file mode 100644 index b4eb63f407e..00000000000 --- a/rosapps/applications/cmdutils/tee/tee.rc +++ /dev/null @@ -1,6 +0,0 @@ -/* $Id$ */ - -#define REACTOS_STR_FILE_DESCRIPTION "W32 tee command\0" -#define REACTOS_STR_INTERNAL_NAME "tee\0" -#define REACTOS_STR_ORIGINAL_FILENAME "tee.exe\0" -#include diff --git a/rosapps/applications/cmdutils/touch/CMakeLists.txt b/rosapps/applications/cmdutils/touch/CMakeLists.txt deleted file mode 100644 index fd5cd2ae231..00000000000 --- a/rosapps/applications/cmdutils/touch/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ - -add_executable(touch err.c touch.c touch.rc) -target_link_libraries(touch getopt) -set_module_type(touch win32cui) -add_importlibs(touch msvcrt kernel32) -if(MSVC) - target_link_libraries(touch oldnames) -endif() - -add_cd_file(TARGET touch DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/rosapps/applications/cmdutils/touch/err.c b/rosapps/applications/cmdutils/touch/err.c deleted file mode 100644 index 5f966687eca..00000000000 --- a/rosapps/applications/cmdutils/touch/err.c +++ /dev/null @@ -1,180 +0,0 @@ -/*- - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)err.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ - -#include "err.h" -#include -#include -#include -#include - -#ifdef __STDC__ -#include -#else -#include -#endif - -extern char *__progname; /* Program name, from crt0. */ - -void -#ifdef __STDC__ -err(int eval, const char *fmt, ...) -#else -err(eval, fmt, va_alist) - int eval; - const char *fmt; - va_dcl -#endif -{ - va_list ap; -#if __STDC__ - va_start(ap, fmt); -#else - va_start(ap); -#endif - verr(eval, fmt, ap); - va_end(ap); -} - -void -verr(int eval, const char *fmt, va_list ap) -{ - int sverrno; - - sverrno = errno; - (void)fprintf(stderr, "%s: ", __progname); - if (fmt != NULL) { - (void)vfprintf(stderr, fmt, ap); - (void)fprintf(stderr, ": "); - } - (void)fprintf(stderr, "%s\n", strerror(sverrno)); - exit(eval); -} - -void -#if __STDC__ -errx(int eval, const char *fmt, ...) -#else -errx(eval, fmt, va_alist) - int eval; - const char *fmt; - va_dcl -#endif -{ - va_list ap; -#if __STDC__ - va_start(ap, fmt); -#else - va_start(ap); -#endif - verrx(eval, fmt, ap); - va_end(ap); -} - -void -verrx(int eval, const char *fmt, va_list ap) -{ - (void)fprintf(stderr, "%s: ", __progname); - if (fmt != NULL) - (void)vfprintf(stderr, fmt, ap); - (void)fprintf(stderr, "\n"); - exit(eval); -} - -void -#if __STDC__ -warn(const char *fmt, ...) -#else -warn(fmt, va_alist) - const char *fmt; - va_dcl -#endif -{ - va_list ap; -#if __STDC__ - va_start(ap, fmt); -#else - va_start(ap); -#endif - vwarn(fmt, ap); - va_end(ap); -} - -void -vwarn(fmt, ap) - const char *fmt; - va_list ap; -{ - int sverrno; - - sverrno = errno; - (void)fprintf(stderr, "%s: ", __progname); - if (fmt != NULL) { - (void)vfprintf(stderr, fmt, ap); - (void)fprintf(stderr, ": "); - } - (void)fprintf(stderr, "%s\n", strerror(sverrno)); -} - -void -#ifdef __STDC__ -warnx(const char *fmt, ...) -#else -warnx(fmt, va_alist) - const char *fmt; - va_dcl -#endif -{ - va_list ap; -#ifdef __STDC__ - va_start(ap, fmt); -#else - va_start(ap); -#endif - vwarnx(fmt, ap); - va_end(ap); -} - -void -vwarnx(fmt, ap) - const char *fmt; - va_list ap; -{ - (void)fprintf(stderr, "%s: ", __progname); - if (fmt != NULL) - (void)vfprintf(stderr, fmt, ap); - (void)fprintf(stderr, "\n"); -} diff --git a/rosapps/applications/cmdutils/touch/err.h b/rosapps/applications/cmdutils/touch/err.h deleted file mode 100644 index bbc7397f852..00000000000 --- a/rosapps/applications/cmdutils/touch/err.h +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)err.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _ERR_H_ -#define _ERR_H_ - -/* - * Don't use va_list in the err/warn prototypes. Va_list is typedef'd in two - * places ( and ), so if we include one - * of them here we may collide with the utility's includes. It's unreasonable - * for utilities to have to include one of them to include err.h, so we get - * _BSD_VA_LIST_ from and use it. - */ -/*#include */ -/*#include */ -#include "various.h" -#include - -void err __P((int, const char *, ...)); -void verr __P((int, const char *, va_list)); -void errx __P((int, const char *, ...)); -void verrx __P((int, const char *, va_list)); -void warn __P((const char *, ...)); -void vwarn __P((const char *, va_list)); -void warnx __P((const char *, ...)); -void vwarnx __P((const char *, va_list)); - -#endif /* !_ERR_H_ */ diff --git a/rosapps/applications/cmdutils/touch/touch.c b/rosapps/applications/cmdutils/touch/touch.c deleted file mode 100644 index 257eaeac176..00000000000 --- a/rosapps/applications/cmdutils/touch/touch.c +++ /dev/null @@ -1,347 +0,0 @@ -/* - * Copyright (c) 1993 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * 7/20/97 - Ted Felix - * Ported to Win32 from bsd4.3-reno at wuarchive. - * Biggest problems were err() routines, utines, and - * gettimeofday(). All easily fixed. - */ - -#ifndef lint -char copyright[] = -"@(#) Copyright (c) 1993 Regents of the University of California.\n\ - All rights reserved.\n"; -#endif /* not lint */ - -#include -#include -#include - -//#ifdef __STDC__ -//#error "__STDC__ defined" -//#endif - -#include -#include -#include -#include -#include -#define DEFFILEMODE S_IWRITE - -#include -#include -#include -#include -#include -#include -#include - -char *__progname; /* Program name, from crt0. */ - -/* Prototypes */ -int rw __P((char *, struct stat *, int)); -void stime_arg1 __P((char *, time_t *)); -void stime_arg2 __P((char *, int, time_t *)); -void stime_file __P((char *, time_t *)); -void usage __P((void)); - -int -main(int argc, char *argv[]) -{ - struct stat sb; - time_t tv[2]; - int aflag, cflag, fflag, mflag, ch, fd, len, rval, timeset; - char *p; - struct utimbuf utb; - - __progname = argv[0]; - - aflag = cflag = fflag = mflag = timeset = 0; - time(&tv[0]); - - while ((ch = getopt(argc, argv, "acfmr:t:")) != EOF) - switch(ch) { - case 'a': - aflag = 1; - break; - case 'c': - cflag = 1; - break; - case 'f': - fflag = 1; - break; - case 'm': - mflag = 1; - break; - case 'r': - timeset = 1; - stime_file(optarg, tv); - break; - case 't': - timeset = 1; - stime_arg1(optarg, tv); - break; - case '?': - default: - usage(); - } - argc -= optind; - argv += optind; - - /* Default is both -a and -m. */ - if (aflag == 0 && mflag == 0) - aflag = mflag = 1; - - /* - * If no -r or -t flag, at least two operands, the first of which - * is an 8 or 10 digit number, use the obsolete time specification. - */ - if (!timeset && argc > 1) { - (void)strtol(argv[0], &p, 10); - len = p - argv[0]; - if (*p == '\0' && (len == 8 || len == 10)) { - timeset = 1; - stime_arg2(argv[0], len == 10, tv); - } - } - - /* Otherwise use the current time of day. */ - if (!timeset) - tv[1] = tv[0]; - - if (*argv == NULL) - usage(); - - for (rval = 0; *argv; ++argv) { - /* See if the file exists. */ - if (stat(*argv, &sb)) { - if (!cflag) { - /* Create the file. */ - fd = _open(*argv, - O_WRONLY | O_CREAT, DEFFILEMODE); - if (fd == -1 || fstat(fd, &sb) || _close(fd)) { - rval = 1; - warn("%s", *argv); - continue; - } - - /* If using the current time, we're done. */ - if (!timeset) - continue; - } else - continue; - } - - if (!aflag) - tv[0] = sb.st_atime; - if (!mflag) - tv[1] = sb.st_mtime; - - /* Try utime. */ - utb.actime = tv[0]; - utb.modtime = tv[1]; - if (!utime(*argv, &utb)) - continue; - - /* If the user specified a time, nothing else we can do. */ - if (timeset) { - rval = 1; - warn("%s", *argv); - } - - /* - * System V and POSIX 1003.1 require that a NULL argument - * set the access/modification times to the current time. - * The permission checks are different, too, in that the - * ability to write the file is sufficient. Take a shot. - */ - if (!utime(*argv, NULL)) - continue; - - /* Try reading/writing. */ - if (rw(*argv, &sb, fflag)) - rval = 1; - } - return rval; -} - -#define ATOI2(ar) ((ar)[0] - '0') * 10 + ((ar)[1] - '0'); (ar) += 2; - -void -stime_arg1(char *arg, time_t *tvp) -{ - struct tm *t; - int yearset; - char *p; - /* Start with the current time. */ - if ((t = localtime(&tvp[0])) == NULL) - err(1, "localtime"); - /* [[CC]YY]MMDDhhmm[.SS] */ - if ((p = strchr(arg, '.')) == NULL) - t->tm_sec = 0; /* Seconds defaults to 0. */ - else { - if (strlen(p + 1) != 2) - goto terr; - *p++ = '\0'; - t->tm_sec = ATOI2(p); - } - - yearset = 0; - switch(strlen(arg)) { - case 12: /* CCYYMMDDhhmm */ - t->tm_year = ATOI2(arg); - t->tm_year *= 1000; - yearset = 1; - /* FALLTHOUGH */ - case 10: /* YYMMDDhhmm */ - if (yearset) { - yearset = ATOI2(arg); - t->tm_year += yearset; - } else { - yearset = ATOI2(arg); - if (yearset < 69) - t->tm_year = yearset + 2000; - else - t->tm_year = yearset + 1900; - } - t->tm_year -= 1900; /* Convert to UNIX time. */ - /* FALLTHROUGH */ - case 8: /* MMDDhhmm */ - t->tm_mon = ATOI2(arg); - --t->tm_mon; /* Convert from 01-12 to 00-11 */ - t->tm_mday = ATOI2(arg); - t->tm_hour = ATOI2(arg); - t->tm_min = ATOI2(arg); - break; - default: - goto terr; - } - - t->tm_isdst = -1; /* Figure out DST. */ - tvp[0] = tvp[1] = mktime(t); - if (tvp[0] == -1) -terr: errx(1, - "out of range or illegal time specification: [[CC]YY]MMDDhhmm[.SS]"); -} - -void -stime_arg2(char *arg, int year, time_t *tvp) -{ - struct tm *t; - /* Start with the current time. */ - if ((t = localtime(&tvp[0])) == NULL) - err(1, "localtime"); - - t->tm_mon = ATOI2(arg); /* MMDDhhmm[yy] */ - --t->tm_mon; /* Convert from 01-12 to 00-11 */ - t->tm_mday = ATOI2(arg); - t->tm_hour = ATOI2(arg); - t->tm_min = ATOI2(arg); - if (year) - t->tm_year = ATOI2(arg); - - t->tm_isdst = -1; /* Figure out DST. */ - tvp[0] = tvp[1] = mktime(t); - if (tvp[0] == -1) - errx(1, - "out of range or illegal time specification: MMDDhhmm[yy]"); -} - -void -stime_file(char *fname, time_t *tvp) -{ - struct stat sb; - - if (stat(fname, &sb)) - err(1, "%s", fname); - tvp[0] = sb.st_atime; - tvp[1] = sb.st_mtime; -} - -int -rw(char *fname, struct stat *sbp, int force) -{ - int fd, needed_chmod, rval; - u_char byte; - - /* Try regular files and directories. */ - if (!S_ISREG(sbp->st_mode) && !S_ISDIR(sbp->st_mode)) { - warnx("%s: %s", fname, strerror(0)); - return (1); - } - - needed_chmod = rval = 0; - if ((fd = _open(fname, O_RDWR, 0)) == -1) { - if (!force || _chmod(fname, DEFFILEMODE)) - goto err; - if ((fd = _open(fname, O_RDWR, 0)) == -1) - goto err; - needed_chmod = 1; - } - - if (sbp->st_size != 0) { - if (_read(fd, &byte, sizeof(byte)) != sizeof(byte)) - goto err; - if (_lseek(fd, (off_t)0, SEEK_SET) == -1) - goto err; - if (_write(fd, &byte, sizeof(byte)) != sizeof(byte)) - goto err; - } else { - if (_write(fd, &byte, sizeof(byte)) != sizeof(byte)) { -err: rval = 1; - warn("%s", fname); -/* } else if (ftruncate(fd, (off_t)0)) {*/ - } else if (_chsize(fd, (off_t)0)) { - rval = 1; - warn("%s: file modified", fname); - } - } - - if (_close(fd) && rval != 1) { - rval = 1; - warn("%s", fname); - } - if (needed_chmod && _chmod(fname, sbp->st_mode) && rval != 1) { - rval = 1; - warn("%s: permissions modified", fname); - } - return (rval); -} - -/*__dead void*/ -void -usage() -{ - (void)fprintf(stderr, - "usage: touch [-acfm] [-r file] [-t time] file ...\n"); - exit(1); -} diff --git a/rosapps/applications/cmdutils/touch/touch.rbuild b/rosapps/applications/cmdutils/touch/touch.rbuild deleted file mode 100644 index 954acbff9fd..00000000000 --- a/rosapps/applications/cmdutils/touch/touch.rbuild +++ /dev/null @@ -1,6 +0,0 @@ - - . - getopt - err.c - touch.c - touch.rc diff --git a/rosapps/applications/cmdutils/touch/touch.rc b/rosapps/applications/cmdutils/touch/touch.rc deleted file mode 100644 index 572a38aa007..00000000000 --- a/rosapps/applications/cmdutils/touch/touch.rc +++ /dev/null @@ -1,6 +0,0 @@ -/* $Id$ */ - -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Touch utility\0" -#define REACTOS_STR_INTERNAL_NAME "touch\0" -#define REACTOS_STR_ORIGINAL_FILENAME "touch.exe\0" -#include diff --git a/rosapps/applications/cmdutils/touch/various.h b/rosapps/applications/cmdutils/touch/various.h deleted file mode 100644 index 8ad37bd84a1..00000000000 --- a/rosapps/applications/cmdutils/touch/various.h +++ /dev/null @@ -1,55 +0,0 @@ -// Various things you need when porting BSD and GNU utilities to -// Win32. - -#ifndef VARIOUS_H -#define VARIOUS_H - -/* types.h */ -typedef unsigned char u_char; -typedef unsigned int u_int; -typedef float f4byte_t; -typedef double f8byte_t; -//typedef __int16 s2byte_t; -//typedef __int32 s4byte_t; -//typedef __int64 s8byte_t; -//typedef unsigned __int16 u2byte_t; -//typedef unsigned __int32 u4byte_t; -//typedef unsigned __int64 u8byte_t; -//typedef __int32 quad_t; -//typedef unsigned __int32 u_quad_t; -//typedef unsigned __int16 u_int16_t; -//typedef unsigned __int32 u_int32_t; - -typedef long uid_t; // SunOS 5.5 - -#define __P(x) x -//#define __STDC__ 1 - -/* utmp.h */ -#define UT_LINESIZE 8 -#define UT_HOSTSIZE 16 - -/* stat.h */ -//#define S_ISREG(mode) (((mode)&0xF000) == 0x8000) -//#define S_ISDIR(mode) (((mode)&0xF000) == 0x4000) - -#undef MIN //take care of windows default -#undef MAX //take care of windows default -#define MIN(a, b) ((a) <= (b) ? (a) : (b)) -#define MAX(a, b) ((a) > (b) ? (a) : (b)) - -#define bcopy(s1, s2, n) memmove(s2, s1, n) -#define bcmp(s1, s2, n) (memcmp(s1, s2, n) != 0) -#define bzero(s, n) memset(s, 0, n) - -#define index(s, c) strchr(s, c) -#define rindex(s, c) strrchr(s, c) - -//#ifndef _WINSOCKAPI_ -//struct timeval { -// long tv_sec; /* seconds */ -// long tv_usec; /* and microseconds */ -//}; -//#endif - -#endif diff --git a/rosapps/applications/cmdutils/uptime/CMakeLists.txt b/rosapps/applications/cmdutils/uptime/CMakeLists.txt deleted file mode 100644 index b8e5f831a87..00000000000 --- a/rosapps/applications/cmdutils/uptime/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -#add_definitions(-DLINUX_OUTPUT) - -add_executable(uptime uptime.c uptime.rc) -set_module_type(uptime win32cui) -add_importlibs(uptime msvcrt kernel32) -if(MSVC) - add_importlibs(uptime ntdll) -endif() -add_cd_file(TARGET uptime DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/rosapps/applications/cmdutils/uptime/uptime.c b/rosapps/applications/cmdutils/uptime/uptime.c deleted file mode 100644 index 2ad49b13c35..00000000000 --- a/rosapps/applications/cmdutils/uptime/uptime.c +++ /dev/null @@ -1,34 +0,0 @@ -#define WIN32_LEAN_AND_MEAN -#include -#include -#include - -int main(int argc, char* argv[]) -{ - SYSTEMTIME SystemTime; - LARGE_INTEGER liCount, liFreq; - - GetLocalTime(&SystemTime); - - if (QueryPerformanceCounter(&liCount) && - QueryPerformanceFrequency(&liFreq)) - { - LONGLONG TotalSecs = liCount.QuadPart / liFreq.QuadPart; - LONGLONG Days = (TotalSecs / 86400); - LONGLONG Hours = ((TotalSecs % 86400) / 3600); - LONGLONG Mins = ((TotalSecs % 86400) % 3600) / 60; - LONGLONG Secs = ((TotalSecs % 86400) % 3600) % 60; - -#ifdef LINUX_OUTPUT - UNREFERENCED_PARAMETER(Secs); - _tprintf(_T(" %.2u:%.2u "), SystemTime.wHour, SystemTime.wMinute); - _tprintf(_T("up %I64u days, %I64u:%I64u\n"), Days, Hours, Mins); /*%.2I64u secs*/ -#else - _tprintf(_T("System Up Time:\t\t%I64u days, %I64u Hours, %I64u Minutes, %.2I64u Seconds\n"), - Days, Hours, Mins, Secs); -#endif - return 0; - } - - return -1; -} diff --git a/rosapps/applications/cmdutils/uptime/uptime.rbuild b/rosapps/applications/cmdutils/uptime/uptime.rbuild deleted file mode 100644 index 008799bd623..00000000000 --- a/rosapps/applications/cmdutils/uptime/uptime.rbuild +++ /dev/null @@ -1,5 +0,0 @@ - - - uptime.c - uptime.rc - diff --git a/rosapps/applications/cmdutils/uptime/uptime.rc b/rosapps/applications/cmdutils/uptime/uptime.rc deleted file mode 100644 index 203bdb234b5..00000000000 --- a/rosapps/applications/cmdutils/uptime/uptime.rc +++ /dev/null @@ -1,4 +0,0 @@ -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS uptime\0" -#define REACTOS_STR_INTERNAL_NAME "uptime\0" -#define REACTOS_STR_ORIGINAL_FILENAME "uptime.exe\0" -#include diff --git a/rosapps/applications/cmdutils/y/CMakeLists.txt b/rosapps/applications/cmdutils/y/CMakeLists.txt deleted file mode 100644 index 926bd055ec0..00000000000 --- a/rosapps/applications/cmdutils/y/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ - -add_executable(y y.c y.rc) -set_module_type(y win32cui) -add_importlibs(y msvcrt kernel32) -add_cd_file(TARGET y DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/rosapps/applications/cmdutils/y/y.c b/rosapps/applications/cmdutils/y/y.c deleted file mode 100644 index 1e052bdbb51..00000000000 --- a/rosapps/applications/cmdutils/y/y.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Y.C - Y external command. - * - * clone from 4nt y command - * - * 02 Oct 1999 (Paolo Pantaleo) - * started - * - * - */ - -#define BUFF_SIZE 4096 - -#include -#include -#include - -static -VOID ConErrPrintf (LPTSTR szFormat, ...) -{ - DWORD dwWritten; - TCHAR szOut[BUFF_SIZE]; - va_list arg_ptr; - - va_start (arg_ptr, szFormat); - _vstprintf (szOut, szFormat, arg_ptr); - va_end (arg_ptr); - - WriteFile (GetStdHandle (STD_ERROR_HANDLE), szOut, _tcslen(szOut), &dwWritten, NULL); -} - - -static -VOID ConOutPuts (LPTSTR szText) -{ - DWORD dwWritten; - - WriteFile (GetStdHandle (STD_OUTPUT_HANDLE), szText, _tcslen(szText), &dwWritten, NULL); - WriteFile (GetStdHandle (STD_OUTPUT_HANDLE), "\n", 1, &dwWritten, NULL); -} - - -int main (int argc, char **argv) -{ - INT i; - HANDLE hFind; - HANDLE hConsoleIn, hConsoleOut, hFile; - char buff[BUFF_SIZE]; - DWORD dwRead,dwWritten; - BOOL bRet; - WIN32_FIND_DATA FindData; - - hConsoleIn = GetStdHandle(STD_INPUT_HANDLE); - hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE); - - if (argc == 2 && _tcsncmp (argv[1], _T("/?"), 2) == 0) - { - ConOutPuts(_T("copy stdin to stdout and then files to stdout\n" - "\n" - "Y [files]\n" - "\n" - "files files to copy to stdout")); - return 0; - } - - /*stdin to stdout*/ - do - { - bRet = ReadFile(hConsoleIn,buff,sizeof(buff),&dwRead,NULL); - - if (dwRead>0 && bRet) - WriteFile(hConsoleOut,buff,dwRead,&dwWritten,NULL); - - } while(dwRead>0 && bRet); - - - /*files to stdout*/ - Sleep(0); - - for (i = 1; i < argc; i++) - { - hFind=FindFirstFile(argv[i],&FindData); - - if (hFind==INVALID_HANDLE_VALUE) - { - ConErrPrintf("File not found - %s\n",argv[i]); - continue; - } - - do - { - hFile = CreateFile(FindData.cFileName, - GENERIC_READ, - FILE_SHARE_READ,NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL,NULL); - - if(hFile == INVALID_HANDLE_VALUE) - { - ConErrPrintf("File not found - %s\n",FindData.cFileName); - continue; - } - - do - { - bRet = ReadFile(hFile,buff,sizeof(buff),&dwRead,NULL); - - if (dwRead>0 && bRet) - WriteFile(hConsoleOut,buff,dwRead,&dwWritten,NULL); - - } while(dwRead>0 && bRet); - - CloseHandle(hFile); - - } - while(FindNextFile(hFind,&FindData)); - - FindClose(hFind); - } - - return 0; -} diff --git a/rosapps/applications/cmdutils/y/y.rbuild b/rosapps/applications/cmdutils/y/y.rbuild deleted file mode 100644 index 8c2fae60107..00000000000 --- a/rosapps/applications/cmdutils/y/y.rbuild +++ /dev/null @@ -1,4 +0,0 @@ - - y.c - y.rc - diff --git a/rosapps/applications/cmdutils/y/y.rc b/rosapps/applications/cmdutils/y/y.rc deleted file mode 100644 index 157a2177aad..00000000000 --- a/rosapps/applications/cmdutils/y/y.rc +++ /dev/null @@ -1,6 +0,0 @@ -/* $Id$ */ - -#define REACTOS_STR_FILE_DESCRIPTION "W32 y command\0" -#define REACTOS_STR_INTERNAL_NAME "y\0" -#define REACTOS_STR_ORIGINAL_FILENAME "y.exe\0" -#include diff --git a/rosapps/applications/devutils/CMakeLists.txt b/rosapps/applications/devutils/CMakeLists.txt deleted file mode 100644 index a782d525147..00000000000 --- a/rosapps/applications/devutils/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -#add_subdirectory(gdb2) -#add_subdirectory(gdihv) -#add_subdirectory(genguid) -#add_subdirectory(symdump) -#add_subdirectory(syscalldump) -add_subdirectory(vgafontedit) diff --git a/rosapps/applications/devutils/directory.rbuild b/rosapps/applications/devutils/directory.rbuild deleted file mode 100644 index 4d2722309da..00000000000 --- a/rosapps/applications/devutils/directory.rbuild +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rosapps/applications/devutils/gdb2/README b/rosapps/applications/devutils/gdb2/README deleted file mode 100644 index f5df7714beb..00000000000 --- a/rosapps/applications/devutils/gdb2/README +++ /dev/null @@ -1 +0,0 @@ -dbg2 is a tool that splits the console output of gdb and the debugged program. it runs gdb into new console and redirects its output to the original, so the debugged program outputs to the second console. \ No newline at end of file diff --git a/rosapps/applications/devutils/gdb2/gdb2.cpp b/rosapps/applications/devutils/gdb2/gdb2.cpp deleted file mode 100644 index a70ad4b828a..00000000000 --- a/rosapps/applications/devutils/gdb2/gdb2.cpp +++ /dev/null @@ -1,299 +0,0 @@ -/* $Id$ - * - * gdb2 - gdb output splitter - * - * Copyright (C) 2000,2001 Nedko Arnaoudov - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "ph.h" - -#define GDB_INITIAL_COMMAND "gdb.exe" -#define PARAMS_SEPARATOR " " -#define PARAMS_SEPARATOR_LEN strlen(PARAMS_SEPARATOR); - -void DisplayError(const char *pszAPI); -void ReadAndHandleOutput(HANDLE hPipeRead); -void PrepAndLaunchRedirectedChild(HANDLE hChildStdOut, - HANDLE hChildStdIn, - HANDLE hChildStdErr, - char *pchCommandLine); - -DWORD WINAPI GetAndSendInputThread(LPVOID lpvThreadParam); -HANDLE hChildProcess = NULL; -HANDLE hStdIn = NULL; // Handle to parents std input. -BOOL bRunThread = TRUE; - -int main(int argc, char* argv[]) -{ - HANDLE hOutputReadTmp,hOutputRead,hOutputWrite; - HANDLE hInputWriteTmp,hInputRead,hInputWrite; - HANDLE hErrorWrite; - HANDLE hThread; - DWORD ThreadId; - SECURITY_ATTRIBUTES sa; - - // Set up the security attributes struct. - sa.nLength= sizeof(SECURITY_ATTRIBUTES); - sa.lpSecurityDescriptor = NULL; - sa.bInheritHandle = TRUE; - - - // Create the child output pipe. - if (!CreatePipe(&hOutputReadTmp,&hOutputWrite,&sa,0)) - DisplayError("CreatePipe"); - - - // Create a duplicate of the output write handle for the std error - // write handle. This is necessary in case the child application - // closes one of its std output handles. - if (!DuplicateHandle(GetCurrentProcess(),hOutputWrite, - GetCurrentProcess(),&hErrorWrite,0, - TRUE,DUPLICATE_SAME_ACCESS)) - DisplayError("DuplicateHandle"); - - - // Create the child input pipe. - if (!CreatePipe(&hInputRead,&hInputWriteTmp,&sa,0)) - DisplayError("CreatePipe"); - - - // Create new output read handle and the input write handles. Set - // the Properties to FALSE. Otherwise, the child inherits the - // properties and, as a result, non-closeable handles to the pipes - // are created. - if (!DuplicateHandle(GetCurrentProcess(),hOutputReadTmp, - GetCurrentProcess(), - &hOutputRead, // Address of new handle. - 0,FALSE, // Make it uninheritable. - DUPLICATE_SAME_ACCESS)) - DisplayError("DupliateHandle"); - - if (!DuplicateHandle(GetCurrentProcess(),hInputWriteTmp, - GetCurrentProcess(), - &hInputWrite, // Address of new handle. - 0,FALSE, // Make it uninheritable. - DUPLICATE_SAME_ACCESS)) - DisplayError("DupliateHandle"); - - - // Close inheritable copies of the handles you do not want to be - // inherited. - if (!CloseHandle(hOutputReadTmp)) DisplayError("CloseHandle"); - if (!CloseHandle(hInputWriteTmp)) DisplayError("CloseHandle"); - - - // Get std input handle so you can close it and force the ReadFile to - // fail when you want the input thread to exit. - if ( (hStdIn = GetStdHandle(STD_INPUT_HANDLE)) == - INVALID_HANDLE_VALUE ) - DisplayError("GetStdHandle"); - - SetConsoleTitle("gdb control console"); - - size_t size = strlen(GDB_INITIAL_COMMAND)+PARAMS_SEPARATOR_LEN; - - // get parameters length - for (int i = 1 ; i < argc ; i++) - size += strlen(argv[i])+PARAMS_SEPARATOR_LEN; - - size++; // terminating null - - char *pszCommandLine = new char [size]; - if (!pszCommandLine) - { - printf("out of memory.\n"); - return -1; - } - - strcpy(pszCommandLine,GDB_INITIAL_COMMAND); - for (int i = 1 ; i < argc ; i++) - { - strcat(pszCommandLine,PARAMS_SEPARATOR); - strcat(pszCommandLine,argv[i]); - } - - PrepAndLaunchRedirectedChild(hOutputWrite,hInputRead,hErrorWrite,pszCommandLine); - - - // Close pipe handles (do not continue to modify the parent). - // You need to make sure that no handles to the write end of the - // output pipe are maintained in this process or else the pipe will - // not close when the child process exits and the ReadFile will hang. - if (!CloseHandle(hOutputWrite)) DisplayError("CloseHandle"); - if (!CloseHandle(hInputRead )) DisplayError("CloseHandle"); - if (!CloseHandle(hErrorWrite)) DisplayError("CloseHandle"); - - - // Launch the thread that gets the input and sends it to the child. - hThread = CreateThread(NULL,0,GetAndSendInputThread, - (LPVOID)hInputWrite,0,&ThreadId); - if (hThread == NULL) DisplayError("CreateThread"); - - - // Read the child's output. - ReadAndHandleOutput(hOutputRead); - // Redirection is complete - - - // Force the read on the input to return by closing the stdin handle. - if (!CloseHandle(hStdIn)) DisplayError("CloseHandle"); - - - // Tell the thread to exit and wait for thread to die. - bRunThread = FALSE; - - if (WaitForSingleObject(hThread,INFINITE) == WAIT_FAILED) - DisplayError("WaitForSingleObject"); - - if (!CloseHandle(hOutputRead)) DisplayError("CloseHandle"); - if (!CloseHandle(hInputWrite)) DisplayError("CloseHandle"); - - return 0; -} - -/////////////////////////////////////////////////////////////////////// -// PrepAndLaunchRedirectedChild -// Sets up STARTUPINFO structure, and launches redirected child. -/////////////////////////////////////////////////////////////////////// -void PrepAndLaunchRedirectedChild(HANDLE hChildStdOut, - HANDLE hChildStdIn, - HANDLE hChildStdErr, - char *pchCommandLine) -{ - PROCESS_INFORMATION pi; - STARTUPINFO si; - static CHAR Title[] = "debugged program console"; - - // Set up the start up info struct. - ZeroMemory(&si,sizeof(STARTUPINFO)); - si.cb = sizeof(STARTUPINFO); - si.dwFlags = STARTF_USESTDHANDLES; - si.hStdOutput = hChildStdOut; - si.hStdInput = hChildStdIn; - si.hStdError = hChildStdErr; - si.lpTitle = Title; - // Use this if you want to hide the child: - // si.wShowWindow = SW_HIDE; - // Note that dwFlags must include STARTF_USESHOWWINDOW if you want to - // use the wShowWindow flags. - - - // Launch the process that you want to redirect (in this case, - // Child.exe). Make sure Child.exe is in the same directory as - // redirect.c launch redirect from a command line to prevent location - // confusion. - if (!CreateProcess(NULL,pchCommandLine,NULL,NULL,TRUE, - CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi)) - DisplayError("CreateProcess"); - - - // Set global child process handle to cause threads to exit. - hChildProcess = pi.hProcess; - - - // Close any unnecessary handles. - if (!CloseHandle(pi.hThread)) DisplayError("CloseHandle"); -} - -/////////////////////////////////////////////////////////////////////// -// ReadAndHandleOutput -// Monitors handle for input. Exits when child exits or pipe breaks. -/////////////////////////////////////////////////////////////////////// -void ReadAndHandleOutput(HANDLE hPipeRead) -{ - CHAR lpBuffer[256]; - DWORD nBytesRead; - DWORD nCharsWritten; - - while(TRUE) - { - if (!ReadFile(hPipeRead,lpBuffer,sizeof(lpBuffer), - &nBytesRead,NULL) || !nBytesRead) - { - if (GetLastError() == ERROR_BROKEN_PIPE) - break; // pipe done - normal exit path. - else - DisplayError("ReadFile"); // Something bad happened. - } - - // Display the character read on the screen. - if (!WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE),lpBuffer, - nBytesRead,&nCharsWritten,NULL)) - DisplayError("WriteConsole"); - } -} - - -/////////////////////////////////////////////////////////////////////// -// GetAndSendInputThread -// Thread procedure that monitors the console for input and sends input -// to the child process through the input pipe. -// This thread ends when the child application exits. -/////////////////////////////////////////////////////////////////////// -DWORD WINAPI GetAndSendInputThread(LPVOID lpvThreadParam) -{ - CHAR read_buff[256]; - DWORD nBytesRead,nBytesWrote; - HANDLE hPipeWrite = (HANDLE)lpvThreadParam; - - // Get input from our console and send it to child through the pipe. - while (bRunThread) - { - if(!ReadConsole(hStdIn,read_buff,1,&nBytesRead,NULL)) - DisplayError("ReadConsole"); - - read_buff[nBytesRead] = '\0'; // Follow input with a NULL. - - if (!WriteFile(hPipeWrite,read_buff,nBytesRead,&nBytesWrote,NULL)) - { - if (GetLastError() == ERROR_NO_DATA) - break; // Pipe was closed (normal exit path). - else - DisplayError("WriteFile"); - } - } - - return 1; -} - -/////////////////////////////////////////////////////////////////////// -// DisplayError -// Displays the error number and corresponding message. -/////////////////////////////////////////////////////////////////////// -void DisplayError(const char *pszAPI) -{ - LPVOID lpvMessageBuffer; - CHAR szPrintBuffer[512]; - DWORD nCharsWritten; - - FormatMessage( - FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, - NULL, GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR)&lpvMessageBuffer, 0, NULL); - - wsprintf(szPrintBuffer, - "ERROR: API = %s.\n error code = %d.\n message = %s.\n", - pszAPI, GetLastError(), (char *)lpvMessageBuffer); - - WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE),szPrintBuffer, - lstrlen(szPrintBuffer),&nCharsWritten,NULL); - - LocalFree(lpvMessageBuffer); - ExitProcess(GetLastError()); -} diff --git a/rosapps/applications/devutils/gdb2/gdb2.rbuild b/rosapps/applications/devutils/gdb2/gdb2.rbuild deleted file mode 100644 index c427711f6ef..00000000000 --- a/rosapps/applications/devutils/gdb2/gdb2.rbuild +++ /dev/null @@ -1,5 +0,0 @@ - - . - user32 - gdb2.cpp - diff --git a/rosapps/applications/devutils/gdb2/ph.h b/rosapps/applications/devutils/gdb2/ph.h deleted file mode 100644 index 54c6bee392e..00000000000 --- a/rosapps/applications/devutils/gdb2/ph.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PH_H___b210ed20_5d0f_4038_abd3_d42ff283c9d0__INCLUDED -#define PH_H___b210ed20_5d0f_4038_abd3_d42ff283c9d0__INCLUDED - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers - -#include - -#include - -#endif // #ifndef PH_H___b210ed20_5d0f_4038_abd3_d42ff283c9d0__INCLUDED diff --git a/rosapps/applications/devutils/gdihv/gdi.h b/rosapps/applications/devutils/gdihv/gdi.h deleted file mode 100644 index d54b39852ad..00000000000 --- a/rosapps/applications/devutils/gdihv/gdi.h +++ /dev/null @@ -1,66 +0,0 @@ -typedef struct _GDI_TABLE_ENTRY -{ - PVOID KernelData; /* Points to the kernel mode structure */ - HANDLE ProcessId; /* process id that created the object, 0 for stock objects */ - LONG Type; /* the first 16 bit is the object type including the stock obj flag, the last 16 bits is just the object type */ - PVOID UserData; /* Points to the user mode structure, usually NULL though */ -} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY; - -typedef PGDI_TABLE_ENTRY (CALLBACK * GDIQUERYPROC) (void); - -/* GDI handle table can hold 0x4000 handles */ -#define GDI_HANDLE_COUNT 0x10000 -#define GDI_GLOBAL_PROCESS (0x0) - -/* Handle Masks and shifts */ -#define GDI_HANDLE_INDEX_MASK (GDI_HANDLE_COUNT - 1) -#define GDI_HANDLE_TYPE_MASK 0x007f0000 -#define GDI_HANDLE_BASETYPE_MASK 0x001f0000 -#define GDI_HANDLE_STOCK_MASK 0x00800000 -#define GDI_HANDLE_REUSE_MASK 0xff000000 -#define GDI_HANDLE_REUSECNT_SHIFT 24 -#define GDI_HANDLE_UPPER_MASK 0x0000ffff - -/* Handle macros */ -#define GDI_HANDLE_CREATE(i, t) \ - ((HANDLE)(((i) & GDI_HANDLE_INDEX_MASK) | ((t) << 16))) - -#define GDI_HANDLE_GET_INDEX(h) \ - (((ULONG_PTR)(h)) & GDI_HANDLE_INDEX_MASK) - -#define GDI_HANDLE_GET_TYPE(h) \ - (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK) - -#define GDI_HANDLE_IS_TYPE(h, t) \ - ((t) == (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK)) - -#define GDI_HANDLE_IS_STOCKOBJ(h) \ - (0 != (((ULONG_PTR)(h)) & GDI_HANDLE_STOCK_MASK)) - -#define GDI_HANDLE_SET_STOCKOBJ(h) \ - ((h) = (HANDLE)(((ULONG_PTR)(h)) | GDI_HANDLE_STOCK_MASK)) - -#define GDI_HANDLE_GET_UPPER(h) \ - (((ULONG_PTR)(h)) & GDI_HANDLE_UPPER_MASK) - -#define GDI_OBJECT_TYPE_DC 0x00010000 -#define GDI_OBJECT_TYPE_REGION 0x00040000 -#define GDI_OBJECT_TYPE_BITMAP 0x00050000 -#define GDI_OBJECT_TYPE_PALETTE 0x00080000 -#define GDI_OBJECT_TYPE_FONT 0x000a0000 -#define GDI_OBJECT_TYPE_PFE 0x000c0000 -#define GDI_OBJECT_TYPE_BRUSH 0x00100000 -#define GDI_OBJECT_TYPE_EMF 0x00210000 -#define GDI_OBJECT_TYPE_PEN 0x00300000 -#define GDI_OBJECT_TYPE_EXTPEN 0x00500000 -#define GDI_OBJECT_TYPE_COLORSPACE 0x00090000 -#define GDI_OBJECT_TYPE_METADC 0x00660000 -#define GDI_OBJECT_TYPE_METAFILE 0x00260000 -#define GDI_OBJECT_TYPE_ENHMETAFILE 0x00460000 -/* Following object types made up for ROS */ -#define GDI_OBJECT_TYPE_ENHMETADC 0x00740000 -#define GDI_OBJECT_TYPE_MEMDC 0x00750000 -#define GDI_OBJECT_TYPE_DCE 0x00770000 -#define GDI_OBJECT_TYPE_DONTCARE 0x007f0000 -/** Not really an object type. Forces GDI_FreeObj to be silent. */ -#define GDI_OBJECT_TYPE_SILENT 0x80000000 diff --git a/rosapps/applications/devutils/gdihv/gdihv.c b/rosapps/applications/devutils/gdihv/gdihv.c deleted file mode 100644 index 23b2f65baf2..00000000000 --- a/rosapps/applications/devutils/gdihv/gdihv.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Gdi handle viewer - * - * gdihv.c - * - * Copyright (C) 2007 Timo Kreuzer kreuzer reactos org> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include "gdihv.h" - -HINSTANCE g_hInstance; -PGDI_TABLE_ENTRY GdiHandleTable = 0; - -static -PGDI_TABLE_ENTRY -MyGdiQueryTable() -{ - PTEB pTeb = NtCurrentTeb(); - PPEB pPeb = pTeb->ProcessEnvironmentBlock; - return pPeb->GdiSharedHandleTable; -} - -int WINAPI WinMain (HINSTANCE hThisInstance, - HINSTANCE hPrevInstance, - LPSTR lpszArgument, - int nStyle) - -{ - g_hInstance = hThisInstance; - - InitCommonControls(); - - GdiHandleTable = MyGdiQueryTable(); - - DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_MAINWND), HWND_DESKTOP, MainWindow_WndProc, 0); - - /* The program return value is 0 */ - return 0; -} diff --git a/rosapps/applications/devutils/gdihv/gdihv.h b/rosapps/applications/devutils/gdihv/gdihv.h deleted file mode 100644 index fda16778560..00000000000 --- a/rosapps/applications/devutils/gdihv/gdihv.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef _GDIHV_H -#define _GDIHV_H - -#define UNICODE - -#define WIN32_NO_STATUS -#include -#include -#include -#include - -#include "gdi.h" -#include "mainwnd.h" -#include "proclist.h" -#include "handlelist.h" - -#include "resource.h" - -extern PGDI_TABLE_ENTRY GdiHandleTable; -extern HINSTANCE g_hInstance; - -#endif //_GDIHV_H diff --git a/rosapps/applications/devutils/gdihv/gdihv.rbuild b/rosapps/applications/devutils/gdihv/gdihv.rbuild deleted file mode 100644 index afab636ab0d..00000000000 --- a/rosapps/applications/devutils/gdihv/gdihv.rbuild +++ /dev/null @@ -1,11 +0,0 @@ - - . - user32 - comctl32 - psapi - gdihv.c - gdihv.rc - mainwnd.c - handlelist.c - proclist.c - diff --git a/rosapps/applications/devutils/gdihv/gdihv.rc b/rosapps/applications/devutils/gdihv/gdihv.rc deleted file mode 100644 index 9152a65c26b..00000000000 --- a/rosapps/applications/devutils/gdihv/gdihv.rc +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include "resource.h" - -IDI_MAIN ICON "system.ico" - -IDD_MAINWND DIALOGEX 0, 0, 260, 250 -STYLE DS_SHELLFONT | WS_CAPTION | WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_THICKFRAME | WS_SYSMENU | WS_MAXIMIZEBOX | WS_MINIMIZEBOX -CAPTION "HandleView" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Tasks", IDC_PROCESSLIST, "SysListView32", WS_BORDER | WS_TABSTOP | 0x00000001 | LVS_REPORT, 5, 5, 100, 200 - CONTROL "Tasks", IDC_HANDLELIST, "SysListView32", WS_BORDER | WS_TABSTOP | 0x00000001 | LVS_REPORT, 110, 5, 150, 200 - PUSHBUTTON "Refresh handles", IDC_REFRESHHANDLE, 200, 230, 80, 14, WS_CLIPSIBLINGS | WS_TABSTOP - PUSHBUTTON "Refresh processes", IDC_REFRESHPROCESS, 50, 230, 80, 14, WS_CLIPSIBLINGS | WS_TABSTOP - -END diff --git a/rosapps/applications/devutils/gdihv/handlelist.c b/rosapps/applications/devutils/gdihv/handlelist.c deleted file mode 100644 index a1a3a8f03ac..00000000000 --- a/rosapps/applications/devutils/gdihv/handlelist.c +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Gdi handle viewer - * - * handlelist.c - * - * Copyright (C) 2007 Timo Kreuzer kreuzer reactos org> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include "gdihv.h" - -VOID -HandleList_Create(HWND hListCtrl) -{ - LVCOLUMN column; - - column.mask = LVCF_TEXT|LVCF_FMT|LVCF_WIDTH; - column.fmt = LVCFMT_LEFT; - - column.pszText = L"Number"; - column.cx = 50; - (void)ListView_InsertColumn(hListCtrl, 0, &column); - - column.pszText = L"Index"; - column.cx = 45; - (void)ListView_InsertColumn(hListCtrl, 1, &column); - - column.pszText = L"Handle"; - column.cx = 90; - (void)ListView_InsertColumn(hListCtrl, 2, &column); - - column.pszText = L"Type"; - column.cx = 80; - (void)ListView_InsertColumn(hListCtrl, 3, &column); - - column.pszText = L"Process"; - column.cx = 80; - (void)ListView_InsertColumn(hListCtrl, 4, &column); - - column.pszText = L"KernelData"; - column.cx = 80; - (void)ListView_InsertColumn(hListCtrl, 5, &column); - - column.pszText = L"UserData"; - column.cx = 80; - (void)ListView_InsertColumn(hListCtrl, 6, &column); - - column.pszText = L"Type"; - column.cx = 80; - (void)ListView_InsertColumn(hListCtrl, 7, &column); - - HandleList_Update(hListCtrl, 0); -} - -VOID -HandleList_Update(HWND hHandleListCtrl, HANDLE ProcessId) -{ - INT i, index; - HANDLE handle; - PGDI_TABLE_ENTRY pEntry; - LVITEM item; - TCHAR strText[80]; - TCHAR* str2; - - (void)ListView_DeleteAllItems(hHandleListCtrl); - item.mask = LVIF_TEXT|LVIF_PARAM; - item.pszText = strText; - item.cchTextMax = 80; - for (i = 0; i<= GDI_HANDLE_COUNT; i++) - { - pEntry = &GdiHandleTable[i]; - if ( ((ProcessId != (HANDLE)1) && ((pEntry->Type & GDI_HANDLE_BASETYPE_MASK) != 0)) || - ((ProcessId == (HANDLE)1) && ((pEntry->Type & GDI_HANDLE_BASETYPE_MASK) == 0)) || - (ProcessId == (HANDLE)2) ) - { - if (ProcessId == (HANDLE)1 || ProcessId == (HANDLE)2 || - ((LONG)ProcessId & 0xfffc) == ((ULONG)pEntry->ProcessId & 0xfffc)) - { - handle = GDI_HANDLE_CREATE(i, pEntry->Type); - index = ListView_GetItemCount(hHandleListCtrl); - item.iItem = index; - item.iSubItem = 0; - item.lParam = (LPARAM)handle; - - wsprintf(strText, L"%d", index); - (void)ListView_InsertItem(hHandleListCtrl, &item); - - wsprintf(strText, L"%d", i); - ListView_SetItemText(hHandleListCtrl, index, 1, strText); - - wsprintf(strText, L"%#08x", handle); - ListView_SetItemText(hHandleListCtrl, index, 2, strText); - - str2 = GetTypeName(handle); - ListView_SetItemText(hHandleListCtrl, index, 3, str2); - - wsprintf(strText, L"%#08x", (UINT)pEntry->ProcessId); - ListView_SetItemText(hHandleListCtrl, index, 4, strText); - - wsprintf(strText, L"%#08x", (UINT)pEntry->KernelData); - ListView_SetItemText(hHandleListCtrl, index, 5, strText); - - wsprintf(strText, L"%#08x", (UINT)pEntry->UserData); - ListView_SetItemText(hHandleListCtrl, index, 6, strText); - - wsprintf(strText, L"%#08x", (UINT)pEntry->Type); - ListView_SetItemText(hHandleListCtrl, index, 7, strText); - } - } - } -} - -TCHAR* -GetTypeName(HANDLE handle) -{ - TCHAR* strText; - UINT Type = GDI_HANDLE_GET_TYPE(handle); - - switch (Type) - { - case GDI_OBJECT_TYPE_DC: - strText = L"DC"; - break; - case GDI_OBJECT_TYPE_REGION: - strText = L"Region"; - break; - case GDI_OBJECT_TYPE_BITMAP: - strText = L"Bitmap"; - break; - case GDI_OBJECT_TYPE_PALETTE: - strText = L"Palette"; - break; - case GDI_OBJECT_TYPE_FONT: - strText = L"Font"; - break; - case GDI_OBJECT_TYPE_BRUSH: - strText = L"Brush"; - break; - case GDI_OBJECT_TYPE_EMF: - strText = L"EMF"; - break; - case GDI_OBJECT_TYPE_PEN: - strText = L"Pen"; - break; - case GDI_OBJECT_TYPE_EXTPEN: - strText = L"ExtPen"; - break; - case GDI_OBJECT_TYPE_COLORSPACE: - strText = L"ColSpace"; - break; - case GDI_OBJECT_TYPE_METADC: - strText = L"MetaDC"; - break; - case GDI_OBJECT_TYPE_METAFILE: - strText = L"Metafile"; - break; - case GDI_OBJECT_TYPE_ENHMETAFILE: - strText = L"EMF"; - break; - case GDI_OBJECT_TYPE_ENHMETADC: - strText = L"EMDC"; - break; - case GDI_OBJECT_TYPE_MEMDC: - strText = L"MemDC"; - break; - case GDI_OBJECT_TYPE_DCE: - strText = L"DCE"; - break; - case GDI_OBJECT_TYPE_PFE: - strText = L"PFE"; - break; - case GDI_OBJECT_TYPE_DONTCARE: - strText = L"anything"; - break; - case GDI_OBJECT_TYPE_SILENT: - default: - strText = L"unknown"; - break; - } - return strText; -} diff --git a/rosapps/applications/devutils/gdihv/handlelist.h b/rosapps/applications/devutils/gdihv/handlelist.h deleted file mode 100644 index 9b40878fe25..00000000000 --- a/rosapps/applications/devutils/gdihv/handlelist.h +++ /dev/null @@ -1,4 +0,0 @@ - -VOID HandleList_Create(HWND hListCtrl); -VOID HandleList_Update(HWND hHandleListCtrl, HANDLE ProcessID); -TCHAR* GetTypeName(HANDLE handle); diff --git a/rosapps/applications/devutils/gdihv/mainwnd.c b/rosapps/applications/devutils/gdihv/mainwnd.c deleted file mode 100644 index ba0f4a990ca..00000000000 --- a/rosapps/applications/devutils/gdihv/mainwnd.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Gdi handle viewer - * - * mainwnd.c - * - * Copyright (C) 2007 Timo Kreuzer kreuzer reactos org> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include "gdihv.h" - -INT g_Separator; - - -static LRESULT -MainWindow_OnSize(HWND hMainWnd) -{ - HWND hProcessListctrl, hHandleListCtrl, hProcessRefresh, hHandleRefresh; - RECT rect; - - hProcessListctrl = GetDlgItem(hMainWnd, IDC_PROCESSLIST); - hHandleListCtrl = GetDlgItem(hMainWnd, IDC_HANDLELIST); - hProcessRefresh = GetDlgItem(hMainWnd, IDC_REFRESHPROCESS); - hHandleRefresh = GetDlgItem(hMainWnd, IDC_REFRESHHANDLE); - - GetClientRect(hMainWnd, &rect); - -//g_Separator = (rect.right / 2); - MoveWindow(hProcessListctrl, 5, 5, g_Separator - 5, rect.bottom - 40, TRUE); - MoveWindow(hHandleListCtrl, g_Separator + 5, 5, rect.right - g_Separator - 5, rect.bottom - 40, TRUE); - MoveWindow(hProcessRefresh, g_Separator - 90, rect.bottom - 30, 90, 25, TRUE); - MoveWindow(hHandleRefresh, rect.right - 90, rect.bottom - 30, 90, 25, TRUE); - - return 0; -} - - -static LRESULT -MainWnd_OnNotify(HWND hWnd, WPARAM wParam, LPARAM lParam) -{ - LPNMHDR pnmh = (LPNMHDR)lParam; - - switch(pnmh->code) - { - case LVN_ITEMCHANGED: - { - LPNMLISTVIEW pnmlv = (LPNMLISTVIEW)pnmh; - if ((wParam == IDC_PROCESSLIST) - && (pnmlv->uNewState & LVIS_SELECTED) - && !(pnmlv->uOldState & LVIS_SELECTED)) - { - LV_ITEM item; - memset(&item, 0, sizeof(LV_ITEM)); - item.mask = LVIF_PARAM; - item.iItem = pnmlv->iItem; - (void)ListView_GetItem(GetDlgItem(hWnd, IDC_PROCESSLIST), &item); - HandleList_Update(GetDlgItem(hWnd, IDC_HANDLELIST), (HANDLE)item.lParam); - return TRUE; - } - break; - } - } - - return 0; -} - -INT_PTR CALLBACK -MainWindow_WndProc(HWND hMainWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - switch (message) - { - case WM_INITDIALOG: - { - RECT rect; - - SendMessage(hMainWnd, WM_SETICON, ICON_BIG, (LPARAM)LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_MAIN))); - (void)ListView_SetExtendedListViewStyle(GetDlgItem(hMainWnd, IDC_PROCESSLIST), LVS_EX_FULLROWSELECT); - (void)ListView_SetExtendedListViewStyle(GetDlgItem(hMainWnd, IDC_HANDLELIST), LVS_EX_FULLROWSELECT); - GetClientRect(hMainWnd, &rect); - g_Separator = (rect.right / 2); - HandleList_Create(GetDlgItem(hMainWnd, IDC_HANDLELIST)); - ProcessList_Create(GetDlgItem(hMainWnd, IDC_PROCESSLIST)); - MainWindow_OnSize(hMainWnd); - - break; - } - case WM_SIZE: - return MainWindow_OnSize(hMainWnd); - - case WM_COMMAND: - { - switch (LOWORD(wParam)) - { - case IDOK: - case IDCANCEL: - { - EndDialog(hMainWnd, IDOK); - break; - } - case IDC_REFRESHHANDLE: - { - LV_ITEM item; - HWND hProcessListCtrl = GetDlgItem(hMainWnd, IDC_PROCESSLIST); - memset(&item, 0, sizeof(LV_ITEM)); - item.mask = LVIF_PARAM; - item.iItem = ListView_GetSelectionMark(hProcessListCtrl); - (void)ListView_GetItem(hProcessListCtrl, &item); - HandleList_Update(GetDlgItem(hMainWnd, IDC_HANDLELIST), (HANDLE)item.lParam); - break; - } - case IDC_REFRESHPROCESS: - { - ProcessList_Update(GetDlgItem(hMainWnd, IDC_PROCESSLIST)); - break; - } - default: - { - return FALSE; - } - } - break; - } - - case WM_NOTIFY: - return MainWnd_OnNotify(hMainWnd, wParam, lParam); - - default: - { - return FALSE; - } - } - return TRUE; -} - diff --git a/rosapps/applications/devutils/gdihv/mainwnd.h b/rosapps/applications/devutils/gdihv/mainwnd.h deleted file mode 100644 index ccd541fa4fd..00000000000 --- a/rosapps/applications/devutils/gdihv/mainwnd.h +++ /dev/null @@ -1,2 +0,0 @@ - -INT_PTR CALLBACK MainWindow_WndProc(HWND, UINT, WPARAM, LPARAM); diff --git a/rosapps/applications/devutils/gdihv/proclist.c b/rosapps/applications/devutils/gdihv/proclist.c deleted file mode 100644 index 9cc31c42747..00000000000 --- a/rosapps/applications/devutils/gdihv/proclist.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Gdi handle viewer - * - * proclist.c - * - * Copyright (C) 2007 Timo Kreuzer kreuzer reactos org> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include "gdihv.h" - -VOID -ProcessList_Create(HWND hListCtrl) -{ - LVCOLUMN column; - - column.mask = LVCF_TEXT|LVCF_FMT|LVCF_WIDTH; - column.fmt = LVCFMT_LEFT; - - column.pszText = L"Process"; - column.cx = 90; - (void)ListView_InsertColumn(hListCtrl, 0, &column); - - column.pszText = L"ProcessID"; - column.cx = 90; - (void)ListView_InsertColumn(hListCtrl, 1, &column); - ProcessList_Update(hListCtrl); -} - -VOID -ProcessList_Update(HWND hListCtrl) -{ - LV_ITEM item; - DWORD ProcessIds[1024], BytesReturned; - UINT cProcesses; - HANDLE hProcess; - WCHAR strText[MAX_PATH] = L""; - INT i; - - (void)ListView_DeleteAllItems(hListCtrl); - memset(&item, 0, sizeof(LV_ITEM)); - item.mask = LVIF_TEXT|LVIF_PARAM; - item.pszText = strText; - - /* Insert "kernel" */ - item.iItem = 0; - item.lParam = 0; - item.pszText = L""; - (void)ListView_InsertItem(hListCtrl, &item); - item.pszText = strText; - wsprintf(strText, L"%#08x", 0); - ListView_SetItemText(hListCtrl, 0, 1, strText); - - /* Insert "deleted" */ - item.iItem = 1; - item.lParam = 1; - item.pszText = L""; - (void)ListView_InsertItem(hListCtrl, &item); - item.pszText = strText; - wsprintf(strText, L"%#08x", 1); - ListView_SetItemText(hListCtrl, 1, 1, strText); - - /* Insert "all" */ - item.iItem = 2; - item.lParam = 2; - item.pszText = L""; - (void)ListView_InsertItem(hListCtrl, &item); - item.pszText = strText; - wsprintf(strText, L"%#08x", 2); - ListView_SetItemText(hListCtrl, 1, 1, strText); - - if (!EnumProcesses(ProcessIds, sizeof(ProcessIds), &BytesReturned )) - { - return; - } - cProcesses = BytesReturned / sizeof(DWORD); - if (cProcesses <= 1) - { - return; - } - for (i = 1; i < cProcesses; i++) - { - wsprintf(strText, L""); - item.lParam = ProcessIds[i]; - item.iItem = ListView_GetItemCount(hListCtrl); - - hProcess = 0; - /* FIXME: HACK: ROS crashes when using OpenProcess with PROCESS_VM_READ */ - hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, ProcessIds[i]); - if (hProcess) - { - GetModuleBaseName(hProcess, NULL, (LPWSTR)strText, MAX_PATH ); - CloseHandle(hProcess); - } - (void)ListView_InsertItem(hListCtrl, &item); - - wsprintf(strText, L"%#08x", ProcessIds[i]); - ListView_SetItemText(hListCtrl, item.iItem, 1, strText); - } -} diff --git a/rosapps/applications/devutils/gdihv/proclist.h b/rosapps/applications/devutils/gdihv/proclist.h deleted file mode 100644 index c14dbda694d..00000000000 --- a/rosapps/applications/devutils/gdihv/proclist.h +++ /dev/null @@ -1,3 +0,0 @@ - -VOID ProcessList_Create(HWND hListCtrl); -VOID ProcessList_Update(HWND hListCtrl); diff --git a/rosapps/applications/devutils/gdihv/resource.h b/rosapps/applications/devutils/gdihv/resource.h deleted file mode 100644 index 3baa3b20f76..00000000000 --- a/rosapps/applications/devutils/gdihv/resource.h +++ /dev/null @@ -1,8 +0,0 @@ - -#define IDD_MAINWND 1000 -#define IDC_PROCESSLIST 1001 -#define IDC_HANDLELIST 1002 -#define IDC_REFRESHHANDLE 1010 -#define IDC_REFRESHPROCESS 1011 -#define IDI_MAIN 2000 -#define IDI_ARROW 2001 diff --git a/rosapps/applications/devutils/gdihv/system.ico b/rosapps/applications/devutils/gdihv/system.ico deleted file mode 100644 index 2d8f3223187..00000000000 Binary files a/rosapps/applications/devutils/gdihv/system.ico and /dev/null differ diff --git a/rosapps/applications/devutils/genguid/genguid.c b/rosapps/applications/devutils/genguid/genguid.c deleted file mode 100644 index 1190243e103..00000000000 --- a/rosapps/applications/devutils/genguid/genguid.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * genguid utility for WINE and ReactOS - * - * Copyright 2003 Jonathan Wilson - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include -#include - -int main(int argc, char *argv[]) -{ - GUID m_guid = GUID_NULL; - int arg; - HRESULT result; - char *strfmt = ""; - if (argc < 2) { - printf("usage: %s n\n",argv[0]); - printf("n = format of output\n"); - printf("values are:\n"); - printf("1 = IMPLEMENT_OLECREATE defintion\n"); - printf("2 = DEFINE_GUID definition\n"); - printf("3 = static const GUID definition\n"); - printf("4 = registry format\n"); - printf("5 = uuidgen.exe format\n"); - return 1; - } - arg = atoi(argv[1]); - if ((arg > 5) || (arg <= 0)) { - printf("invalid argument\n"); - return 1; - } - if (CoInitialize(NULL) != S_OK) - { - printf("Unable to initalize OLE libraries\n"); - return 1; - } - result = CoCreateGuid(&m_guid); - if (result != S_OK) { - printf("Unable to create GUID\n"); - CoUninitialize(); - return 1; - } - switch (arg) { - case 1: - strfmt = "// {%08lX-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}\r\nIMPLEMENT_OLECREATE(<>, <>, \r\n0x%lx, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x);\r\n"; - break; - case 2: - strfmt = "// {%08lX-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}\r\nDEFINE_GUID(<>, \r\n0x%lx, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x);\r\n"; - break; - case 3: - strfmt = "// {%08lX-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}\r\nstatic const GUID <> = \r\n{ 0x%lx, 0x%x, 0x%x, { 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x } };\r\n"; - break; - case 4: - strfmt = "{%08lX-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}\r\n"; - break; - case 5: - strfmt = "%08lX-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X\r\n"; - break; - } - printf(strfmt,m_guid.Data1,m_guid.Data2,m_guid.Data3,m_guid.Data4[0], - m_guid.Data4[1],m_guid.Data4[2],m_guid.Data4[3],m_guid.Data4[4],m_guid.Data4[5], - m_guid.Data4[6],m_guid.Data4[7],m_guid.Data1,m_guid.Data2,m_guid.Data3,m_guid.Data4[0], - m_guid.Data4[1],m_guid.Data4[2],m_guid.Data4[3],m_guid.Data4[4],m_guid.Data4[5], - m_guid.Data4[6],m_guid.Data4[7]); - CoUninitialize(); - return 0; -} - - diff --git a/rosapps/applications/devutils/genguid/genguid.rbuild b/rosapps/applications/devutils/genguid/genguid.rbuild deleted file mode 100644 index 83b87a00cbd..00000000000 --- a/rosapps/applications/devutils/genguid/genguid.rbuild +++ /dev/null @@ -1,4 +0,0 @@ - - ole32 - uuid - genguid.c diff --git a/rosapps/applications/devutils/genguid/genguid.rc b/rosapps/applications/devutils/genguid/genguid.rc deleted file mode 100644 index 22c85183ec4..00000000000 --- a/rosapps/applications/devutils/genguid/genguid.rc +++ /dev/null @@ -1,6 +0,0 @@ -/* $Id$ */ - -#define REACTOS_STR_FILE_DESCRIPTION "GUID Generator\0" -#define REACTOS_STR_INTERNAL_NAME "genguid\0" -#define REACTOS_STR_ORIGINAL_FILENAME "genguid.exe\0" -#include diff --git a/rosapps/applications/devutils/symdump/symdump.c b/rosapps/applications/devutils/symdump/symdump.c deleted file mode 100644 index bd56edd6aaa..00000000000 --- a/rosapps/applications/devutils/symdump/symdump.c +++ /dev/null @@ -1,991 +0,0 @@ -/* - * PE symbol dumper - * - * symdump.c - * - * Copyright (c) 2008 Timo Kreuzer kreuzer reactos org> - * - * This program is released under the terms of the GNU GPL. - * - * TODO: - * - fix GDILoObjType - * - fix UDTKind1 - * - include the correct headers for some stuff - * - fix unions like LARGE_INTEGER - */ - -#include -#define _WINVER 0x501 -#include -#include -#include - -HANDLE hCurrentProcess; -BOOL g_bShowPos = 0; - -#define MAX_SYMBOL_NAME 1024 - -#define CV_CALL_NEAR_C 0x00 -#define CV_CALL_FAR_C 0x01 -#define CV_CALL_NEAR_PASCAL 0x02 -#define CV_CALL_FAR_PASCAL 0x03 -#define CV_CALL_NEAR_FAST 0x04 -#define CV_CALL_FAR_FAST 0x05 -#define CV_CALL_SKIPPED 0x06 -#define CV_CALL_NEAR_STD 0x07 -#define CV_CALL_FAR_STD 0x08 -#define CV_CALL_NEAR_SYS 0x09 -#define CV_CALL_FAR_SYS 0x0a -#define CV_CALL_THISCALL 0x0b -#define CV_CALL_MIPSCALL 0x0c -#define CV_CALL_GENERIC 0x0d -#define CV_CALL_ALPHACALL 0x0e -#define CV_CALL_PPCCALL 0x0f -#define CV_CALL_SHCALL 0x10 -#define CV_CALL_ARMCALL 0x11 -#define CV_CALL_AM33CALL 0x12 -#define CV_CALL_TRICALL 0x13 -#define CV_CALL_SH5CALL 0x14 -#define CV_CALL_M32RCALL 0x15 - -enum SymTagEnum -{ - SymTagNull, - SymTagExe, - SymTagCompiland, - SymTagCompilandDetails, - SymTagCompilandEnv, - SymTagFunction, - SymTagBlock, - SymTagData, - SymTagAnnotation, - SymTagLabel, - SymTagPublicSymbol, - SymTagUDT, - SymTagEnum, - SymTagFunctionType, - SymTagPointerType, - SymTagArrayType, - SymTagBaseType, - SymTagTypedef, - SymTagBaseClass, - SymTagFriend, - SymTagFunctionArgType, - SymTagFuncDebugStart, - SymTagFuncDebugEnd, - SymTagUsingNamespace, - SymTagVTableShape, - SymTagVTable, - SymTagCustom, - SymTagThunk, - SymTagCustomType, - SymTagManagedType, - SymTagDimension, - SymTagMax -}; - -enum -{ - UDTKind_Struct = 0, - UDTKind_Class = 1, /* ? */ - UDTKind_Union = 2, -}; - -enum BasicType -{ - btNoType = 0, - btVoid = 1, - btChar = 2, - btWChar = 3, - btInt = 6, - btUInt = 7, - btFloat = 8, - btBCD = 9, - btBool = 10, - btLong = 13, - btULong = 14, - btCurrency = 25, - btDate = 26, - btVariant = 27, - btComplex = 28, - btBit = 29, - btBSTR = 30, - btHresult = 31 -}; - -typedef struct -{ - HANDLE hProcess; - DWORD64 dwModuleBase; - LPSTR pszSymbolName; - BOOL bType; -} ENUMINFO, *PENUMINFO; - -VOID DumpType(DWORD dwTypeIndex, PENUMINFO pei, INT indent, BOOL bMembers); - -CHAR *SymTagString[] = -{ - "SymTagNull", - "SymTagExe", - "SymTagCompiland", - "SymTagCompilandDetails", - "SymTagCompilandEnv", - "SymTagFunction", - "SymTagBlock", - "SymTagData", - "SymTagAnnotation", - "SymTagLabel", - "SymTagPublicSymbol", - "SymTagUDT", - "SymTagEnum", - "SymTagFunctionType", - "SymTagPointerType", - "SymTagArrayType", - "SymTagBaseType", - "SymTagTypedef", - "SymTagBaseClass", - "SymTagFriend", - "SymTagFunctionArgType", - "SymTagFuncDebugStart", - "SymTagFuncDebugEnd", - "SymTagUsingNamespace", - "SymTagVTableShape", - "SymTagVTable", - "SymTagCustom", - "SymTagThunk", - "SymTagCustomType", - "SymTagManagedType", - "SymTagDimension", - "SymTagMax" -}; - -void -IndentPrint(INT ind) -{ - INT i; - for (i = 0; i < ind; i++) - { - printf(" "); - } -} - -#define printfi \ - IndentPrint(indent); printf - -VOID -PrintUsage() -{ - printf("Syntax:\n\n"); - printf("dumpsym [-sp=] [-p] []\n\n"); - printf(" The PE file you want to dump the symbols of\n"); - printf("-sp= Path to your symbol files.\n"); - printf(" Default is MS symbol server.\n"); - printf("-p Enable struct positions.\n"); - printf(" A name of a Symbol, you want to dump\n"); - printf(" Default is all symbols.\n"); - printf("\n"); -} - -BOOL InitDbgHelp(HANDLE hProcess, LPSTR pszSymbolPath) -{ - if (!SymInitialize(hProcess, 0, FALSE)) - return FALSE; - - SymSetOptions(SymGetOptions() | SYMOPT_ALLOW_ABSOLUTE_SYMBOLS); - SymSetOptions(SymGetOptions() & (~SYMOPT_DEFERRED_LOADS)); - SymSetSearchPath(hProcess, pszSymbolPath); - return TRUE; -} - -VOID -DumpBaseType(DWORD dwTypeIndex, PENUMINFO pei, INT indent) -{ - ULONG64 ulSize; - DWORD dwBaseType; - - SymGetTypeInfo(pei->hProcess, pei->dwModuleBase, dwTypeIndex, TI_GET_LENGTH, &ulSize); - SymGetTypeInfo(pei->hProcess, pei->dwModuleBase, dwTypeIndex, TI_GET_BASETYPE, &dwBaseType); - - switch (dwBaseType) - { - case btVoid: - printfi("VOID"); - return; - case btChar: - printfi("CHAR"); - return; - case btWChar: - printfi("WCHAR"); - return; - case btInt: - switch (ulSize) - { - case 1: - printfi("CHAR"); - return; - case 2: - printfi("SHORT"); - return; - case 4: - printfi("INT"); - return; - case 8: - printfi("INT64"); - return; - default: - printfi("INT%ld", (ULONG)ulSize * 8); - return; - } - case btUInt: - switch (ulSize) - { - case 1: - printfi("UCHAR"); - return; - case 2: - printfi("USHORT"); - return; - case 4: - printfi("UINT"); - return; - case 8: - printfi("UINT64"); - return; - default: - printfi("UINT%ld", (ULONG)ulSize * 8); - return; - } - case btFloat: - switch (ulSize) - { - case 4: - printfi("FLOAT"); - return; - case 8: - printfi("DOUBLE"); - return; - default: - printfi("FLOAT%ld", (ULONG)ulSize * 8); - return; - } - case btBCD: - printfi("BCD%ld", (ULONG)ulSize * 8); - return; - case btBool: - switch (ulSize) - { - case 1: - printfi("BOOLEAN"); - return; - case 4: - printfi("BOOL"); - return; - default: - printfi("BOOL%ld", (ULONG)ulSize * 8); - return; - } - case btLong: - switch (ulSize) - { - case 1: - printfi("CHAR"); - return; - case 2: - printfi("SHORT"); - return; - case 4: - printfi("LONG"); - return; - case 8: - printfi("LONGLONG"); - return; - default: - printfi("LONG%ld", (ULONG)ulSize * 8); - return; - } - case btULong: - switch (ulSize) - { - case 1: - printfi("UCHAR"); - return; - case 2: - printfi("USHORT"); - return; - case 4: - printfi("ULONG"); - return; - case 8: - printfi("ULONGLONG"); - return; - default: - printfi("ULONG%ld", (ULONG)ulSize * 8); - return; - } - case btCurrency: - case btDate: - case btVariant: - case btComplex: - case btBit: - case btBSTR: - printfi("UNSUP_%ld_%ld", dwBaseType, (ULONG)ulSize); - return; - case btHresult: - if (ulSize == 4) - { - printfi("HRESULT"); - return; - } - printfi("HRESULT%ld", (ULONG)ulSize); - return; - } - - printfi("UNKNBASETYPE"); -} - -VOID -DumpArray(DWORD dwTypeIndex, PENUMINFO pei, INT indent) -{ - DWORD dwTypeId; - - SymGetTypeInfo(pei->hProcess, pei->dwModuleBase, dwTypeIndex, TI_GET_TYPE, &dwTypeId); - DumpType(dwTypeId, pei, indent, FALSE); -} - -VOID -DumpPointer(DWORD dwTypeIndex, PENUMINFO pei, INT indent) -{ - DWORD dwRefTypeId; - DWORD dwTag = 0; - ULONG64 ulSize; - DWORD dwBaseType; - - SymGetTypeInfo(pei->hProcess, pei->dwModuleBase, dwTypeIndex, TI_GET_TYPE, &dwRefTypeId); - SymGetTypeInfo(pei->hProcess, pei->dwModuleBase, dwRefTypeId, TI_GET_BASETYPE, &dwBaseType); - SymGetTypeInfo(pei->hProcess, pei->dwModuleBase, dwRefTypeId, TI_GET_LENGTH, &ulSize); - SymGetTypeInfo(pei->hProcess, pei->dwModuleBase, dwRefTypeId, TI_GET_SYMTAG, &dwTag); - - if (dwTag == SymTagFunctionType) - { - printfi("PPROC"); - return; - } - - switch (dwBaseType) - { - case btVoid: - switch (ulSize) - { - case 0: - printfi("PVOID"); - return; - } - break; - - case btChar: - switch (ulSize) - { - case 1: - printfi("PCHAR"); - return; - } - break; - case btWChar: - switch (ulSize) - { - case 2: - printfi("PWCHAR"); - return; - } - break; - case btInt: - switch (ulSize) - { - case 4: - printfi("PINT"); - return; - } - break; - case btUInt: - switch (ulSize) - { - case 4: - printfi("PUINT"); - return; - } - break; - case btFloat: - switch (ulSize) - { - case 4: - printfi("PFLOAT"); - return; - case 8: - printfi("PDOUBLE"); - return; - } - break; - case btBCD: - break; - case btBool: - switch (ulSize) - { - case 1: - printfi("PBOOLEAN"); - return; - case 4: - printfi("PBOOL"); - return; - } - break; - case btLong: - switch (ulSize) - { - case 4: - printfi("PLONG"); - return; - case 8: - printfi("PLONGLONG"); - return; - } - break; - case btULong: - switch (ulSize) - { - case 4: - printfi("PULONG"); - return; - case 8: - printfi("PULONGLONG"); - return; - } - break; - case btCurrency: - case btDate: - case btVariant: - case btComplex: - case btBit: - case btBSTR: - case btHresult: - break; - } - - DumpType(dwRefTypeId, pei, indent, FALSE); - printf("*"); -} - -VOID -PrintVariant(VARIANT *v) -{ -// printf("", v->n1.n2.vt); - switch (v->n1.n2.vt) - { - case VT_I1: - printf("%d", (INT)v->n1.n2.n3.cVal); - break; - case VT_UI1: - printf("0x%x", (UINT)v->n1.n2.n3.cVal); - break; - case VT_I2: - printf("%d", (UINT)v->n1.n2.n3.iVal); - break; - case VT_UI2: - printf("0x%x", (UINT)v->n1.n2.n3.iVal); - break; - case VT_INT: - case VT_I4: - printf("%d", (UINT)v->n1.n2.n3.lVal); - break; - case VT_UINT: - case VT_UI4: - printf("0x%x", (UINT)v->n1.n2.n3.lVal); - break; - } -} - -BOOL -IsUnnamed(WCHAR *pszName) -{ - if ((StrStrW(pszName, L"__unnamed") != NULL) || - (StrStrW(pszName, L"") != NULL)) - { - return TRUE; - } - return FALSE; -} - -VOID -DumpEnum(DWORD dwTypeIndex, PENUMINFO pei, INT indent, BOOL bMembers) -{ - DWORD64 dwModuleBase = pei->dwModuleBase; - HANDLE hProcess = pei->hProcess; - INT i; - DWORD dwUDTKind; - WCHAR *pszName, *pszNameX; - struct - { - TI_FINDCHILDREN_PARAMS tfp; - ULONG TypeIds[200]; - } tfpex; - VARIANT v; - - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeIndex, TI_GET_SYMNAME, &pszNameX); - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeIndex, TI_GET_UDTKIND, &dwUDTKind); - pszName = pszNameX; - if (IsUnnamed(pszName)) - { - if (bMembers) - { - LocalFree(pszNameX); - return; - } - bMembers = TRUE; - pszName = L""; - } - printfi("enum %ls", pszName); - LocalFree(pszNameX); - - if (bMembers) - { - printf(" /* %03x */", 0); - printfi("\n{\n"); - - /* Get the children */ - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeIndex, TI_GET_CHILDRENCOUNT, &tfpex.tfp.Count); - - tfpex.tfp.Start = 0; - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeIndex, TI_FINDCHILDREN, &tfpex.tfp); - - for (i = 0; i < tfpex.tfp.Count; i++) - { - pszName = L""; - - SymGetTypeInfo(hProcess, dwModuleBase, tfpex.tfp.ChildId[i], TI_GET_SYMNAME, &pszName); - SymGetTypeInfo(hProcess, dwModuleBase, tfpex.tfp.ChildId[i], TI_GET_VALUE, &v); - - indent++; - printfi("%ls = ", pszName); - PrintVariant(&v); - printf(",\n"); - indent--; - - LocalFree(pszName); - } - printfi("}"); - } -} - -VOID -DumpUDT(DWORD dwTypeIndex, PENUMINFO pei, INT indent, BOOL bMembers) -{ - DWORD64 dwModuleBase = pei->dwModuleBase; - HANDLE hProcess = pei->hProcess; - INT i; - DWORD dwUDTKind; - WCHAR *pszName, *pszNameX; - struct - { - TI_FINDCHILDREN_PARAMS tfp; - ULONG TypeIds[200]; - } tfpex; - - DWORD dwDataKind; - DWORD dwTypeId; - DWORD dwCount; - WCHAR *pszTypeName; - - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeIndex, TI_GET_SYMNAME, &pszNameX); - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeIndex, TI_GET_UDTKIND, &dwUDTKind); - - pszName = pszNameX; - if (IsUnnamed(pszName)) - { - if (bMembers) - { - LocalFree(pszNameX); - return; - } - bMembers = TRUE; - pszName = L""; - } - if (dwUDTKind == UDTKind_Struct) - { - printfi("struct %ls", pszName); - } - else if (dwUDTKind == UDTKind_Union) - { - printfi("union %ls", pszName); - } - else - { - printfi("UTDKind%ld %ls", dwUDTKind, pszName); - } - LocalFree(pszNameX); - - if (bMembers) - { - ULONG64 ulLength; - - printf("\n"); - printfi("{\n"); - - /* Get the children */ - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeIndex, TI_GET_CHILDRENCOUNT, &tfpex.tfp.Count); - - tfpex.tfp.Start = 0; - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeIndex, TI_FINDCHILDREN, &tfpex.tfp); - - for (i = 0; i < tfpex.tfp.Count; i++) - { - DWORD dwChildTag; - DWORD dwOffset; - - pszName = L""; - pszTypeName = L""; - - SymGetTypeInfo(hProcess, dwModuleBase, tfpex.tfp.ChildId[i], TI_GET_SYMNAME, &pszName); - SymGetTypeInfo(hProcess, dwModuleBase, tfpex.tfp.ChildId[i], TI_GET_DATAKIND, &dwDataKind); - SymGetTypeInfo(hProcess, dwModuleBase, tfpex.tfp.ChildId[i], TI_GET_TYPE, &dwTypeId); - SymGetTypeInfo(hProcess, dwModuleBase, tfpex.tfp.ChildId[i], TI_GET_OFFSET, &dwOffset); - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeId, TI_GET_SYMTAG, &dwChildTag); - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeId, TI_GET_LENGTH, &ulLength); - - printf(" /* %03lx */", dwOffset); - DumpType(dwTypeId, pei, indent + 1, FALSE); - printf(" %ls", pszName); - if (dwChildTag == SymTagArrayType) - { - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeId, TI_GET_COUNT, &dwCount); - printf("[%ld]", dwCount); - } - else - { - DWORD dwCurrentBitPos; - DWORD dwNextBitPos; - - SymGetTypeInfo(hProcess, dwModuleBase, tfpex.tfp.ChildId[i], TI_GET_BITPOSITION, &dwCurrentBitPos); - if (i < tfpex.tfp.Count - 1) - { - SymGetTypeInfo(hProcess, dwModuleBase, tfpex.tfp.ChildId[i+1], TI_GET_BITPOSITION, &dwNextBitPos); - } - else - { - dwNextBitPos = 0; - } - - if (dwNextBitPos == 0 && dwCurrentBitPos != 0) - { - dwNextBitPos = ulLength * 8; - } - - if (dwNextBitPos != dwCurrentBitPos) - { - printf(":%ld", dwNextBitPos - dwCurrentBitPos); - } - } - printf(";\n"); - LocalFree(pszName); - } - printfi("}"); - } -} - -VOID -DumpType(DWORD dwTypeIndex, PENUMINFO pei, INT indent, BOOL bMembers) -{ - HANDLE hProcess = pei->hProcess; - DWORD64 dwModuleBase = pei->dwModuleBase; - DWORD dwTag = 0; - - SymGetTypeInfo(hProcess, dwModuleBase, dwTypeIndex, TI_GET_SYMTAG, &dwTag); - - switch (dwTag) - { - case SymTagEnum: - DumpEnum(dwTypeIndex, pei, indent, bMembers); - break; - - case SymTagUDT: - DumpUDT(dwTypeIndex, pei, indent, bMembers); - break; - - case SymTagPointerType: - DumpPointer(dwTypeIndex, pei, indent); - break; - - case SymTagBaseType: - DumpBaseType(dwTypeIndex, pei, indent); - break; - - case SymTagArrayType: - DumpArray(dwTypeIndex, pei, indent); - break; - - case SymTagFunctionType: - printfi("function"); - break; - - default: - printfi("typeTag%ld", dwTag); - break; - } - -} - - -VOID -DumpCV(DWORD dwTypeIndex, PENUMINFO pei) -{ - DWORD cv = 0x20; - - SymGetTypeInfo(pei->hProcess, pei->dwModuleBase, dwTypeIndex, TI_GET_CALLING_CONVENTION, &cv); - switch (cv) - { - case CV_CALL_NEAR_C: - printf("CDECL"); - return; - case CV_CALL_FAR_C: - printf("FAR CDECL"); - return; - case CV_CALL_NEAR_PASCAL: - printf("PASCAL"); - return; - case CV_CALL_FAR_PASCAL: - printf("FAR PASCAL"); - return; - case CV_CALL_NEAR_FAST: - printf("FASTCALL"); - return; - case CV_CALL_FAR_FAST: - printf("FAR FASTCALL"); - return; - case CV_CALL_SKIPPED: - printf("SKIPPED"); - return; - case CV_CALL_NEAR_STD: - printf("STDCALL"); - return; - case CV_CALL_FAR_STD: - printf("FAR STDCALL"); - return; - case CV_CALL_NEAR_SYS: - case CV_CALL_FAR_SYS: - case CV_CALL_THISCALL: - printf("THISCALL"); - return; - case CV_CALL_MIPSCALL: - printf("MIPSCALL"); - return; - case CV_CALL_GENERIC: - case CV_CALL_ALPHACALL: - case CV_CALL_PPCCALL: - case CV_CALL_SHCALL: - case CV_CALL_ARMCALL: - case CV_CALL_AM33CALL: - case CV_CALL_TRICALL: - case CV_CALL_SH5CALL: - case CV_CALL_M32RCALL: - default: - printf("UNKNOWNCV"); - } - -} - -BOOL CALLBACK -EnumParamsProc( - PSYMBOL_INFO pSymInfo, - ULONG SymbolSize, - PVOID UserContext) -{ - printf("x, "); - (*(INT*)UserContext)++; - return TRUE; -} - -VOID -DumpParams(PSYMBOL_INFO pSymInfo, PENUMINFO pei) -{ - IMAGEHLP_STACK_FRAME sf; - BOOL bRet; - INT NumLocals = 0; // the number of local variables found - - sf.InstructionOffset = pSymInfo->Address; - - printf("("); - bRet = SymSetContext(pei->hProcess, &sf, 0); - - if (!bRet) - { - printf("\nError: SymSetContext() failed. Error code: %lu \n", GetLastError()); - return; - } - printf("Address == 0x%x, ReturnOffset = 0x%x", (UINT)pSymInfo->Address, (UINT)sf.ReturnOffset); - - // Enumerate local variables - - bRet = SymEnumSymbols(pei->hProcess, 0, 0, EnumParamsProc, &NumLocals); - - if (!bRet) - { -// printf("Error: SymEnumSymbols() failed. Error code: %lu \n", GetLastError()); - printf("?)"); - return; - } - - if (NumLocals == 0) - { -// printf("The function does not have parameters and local variables.\n"); - printf("void)"); - } - - printf(")"); -} - -VOID -DumpFunction(PSYMBOL_INFO pSymInfo, PENUMINFO pei) -{ - DWORD dwTypeId; - -//printf("Name=%s, Size=%ld, TypeId=0x%ld\n", pSymInfo->Name, pSymInfo->Size, pSymInfo->TypeIndex); - - SymGetTypeInfo(pei->hProcess, pei->dwModuleBase, pSymInfo->TypeIndex, TI_GET_TYPEID, &dwTypeId); - -// DumpCV(pSymInfo->TypeIndex, pei); -// printf("\n"); -// DumpType(pSymInfo->TypeIndex, pei, 0, FALSE); - printf("%s", pSymInfo->Name); - DumpParams(pSymInfo, pei); -} - -BOOL CALLBACK -EnumSymbolsProc( - PSYMBOL_INFO pSymInfo, - ULONG SymbolSize, - PVOID UserContext) -{ - PENUMINFO pei = (PENUMINFO)UserContext; - - if ((pei->pszSymbolName == NULL) || - (strstr(pSymInfo->Name, pei->pszSymbolName) != 0)) - { - if (pei->bType) - { - DumpType(pSymInfo->TypeIndex, pei, 0, TRUE); - printf("\n\n"); - } - else - { -#if defined(__GNUC__) && \ - (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ < 40400) - printf("Symbol: %s, TypeIndex=%ld, Flags=%lx, Value=0x%llx\n", -#else - printf("Symbol: %s, TypeIndex=%ld, Flags=%lx, Value=0x%I64x\n", -#endif - pSymInfo->Name, pSymInfo->TypeIndex, pSymInfo->Flags, pSymInfo->Value); - //if (pSymInfo->Flags & SYMFLAG_FUNCTION) - { -// DumpFunction(pSymInfo, pei); -// printf("\n\n"); - } - } - } - return TRUE; -} - -int main(int argc, char* argv[]) -{ - HANDLE hProcess; - CHAR szFullFileName[MAX_PATH+1]; - DWORD64 dwModuleBase; - BOOL bRet; - LPSTR pszSymbolPath, pszSymbolName; - INT i; - ENUMINFO enuminfo; - - printf("PE symbol dumper\n"); - printf("Copyright (c) Timo Kreuzer 2008\n\n"); - - if (argc < 2) - { - PrintUsage(); - return 0; - } - - /* Get the full path name of the PE file from first argument */ - GetFullPathName(argv[1], MAX_PATH, szFullFileName, NULL); - - /* Default Symbol Name (all) */ - pszSymbolName = NULL; - - /* Default to ms symbol server */ - pszSymbolPath = "srv**symbols*http://msdl.microsoft.com/download/symbols"; - - /* Check other command line arguments */ - for (i = 2; i < argc; i++) - { - if (*argv[i] == '-') - { - if (strncmp(argv[i], "-sp=", 4) == 0) - { - pszSymbolPath = argv[i] + 4; - } - else if (strcmp(argv[i], "-p") == 0) - { - g_bShowPos = 1; - } - else - { - printf("Invalid argument: %s\n", argv[i]); - PrintUsage(); - return 0; - } - } - else - { - pszSymbolName = argv[i]; - } - } - - hProcess = GetCurrentProcess(); - - printf("Trying to get symbols from: %s\n", pszSymbolPath); - - if (!InitDbgHelp(hProcess, pszSymbolPath)) - { - printf("SymInitialize() failed\n"); - goto cleanup; - } - - printf("Loading symbols for %s, please wait...\n", szFullFileName); - dwModuleBase = SymLoadModule64(hProcess, 0, szFullFileName, 0, 0, 0); - if (dwModuleBase == 0) - { - printf("SymLoadModule64() failed: %ld\n", GetLastError()); - goto cleanup; - } - - printf("\nSymbols:\n"); - enuminfo.hProcess = hProcess; - enuminfo.pszSymbolName = pszSymbolName; - enuminfo.bType = FALSE; - SetLastError(ERROR_SUCCESS); - bRet = SymEnumSymbols(hProcess, dwModuleBase, NULL, EnumSymbolsProc, &enuminfo); - if (!bRet) - { - printf("SymEnumSymbols failed: %ld\n", GetLastError()); - } - - printf("\nTypes:\n"); - enuminfo.bType = TRUE; - enuminfo.dwModuleBase = dwModuleBase; - SetLastError(ERROR_SUCCESS); - bRet = SymEnumTypes(hProcess, dwModuleBase, EnumSymbolsProc, &enuminfo); - if (!bRet) - { - printf("SymEnumTypes failed: %ld\n", GetLastError()); - } - -cleanup: - - return 0; -} diff --git a/rosapps/applications/devutils/symdump/symdump.rbuild b/rosapps/applications/devutils/symdump/symdump.rbuild deleted file mode 100644 index 3d5184aae50..00000000000 --- a/rosapps/applications/devutils/symdump/symdump.rbuild +++ /dev/null @@ -1,6 +0,0 @@ - - . - dbghelp - shlwapi - symdump.c - diff --git a/rosapps/applications/devutils/syscalldump/syscalldump.c b/rosapps/applications/devutils/syscalldump/syscalldump.c deleted file mode 100644 index 0407e685cbe..00000000000 --- a/rosapps/applications/devutils/syscalldump/syscalldump.c +++ /dev/null @@ -1,234 +0,0 @@ -#include -#include -#include -#define _WINVER 0x501 -#include -#include -#include - -HANDLE hCurrentProcess; -BOOL bX64; - -#define MAX_SYMBOL_NAME 1024 - -BOOL InitDbgHelp(HANDLE hProcess) -{ - if (!SymInitialize(hProcess, 0, FALSE)) - return FALSE; - - SymSetOptions(SymGetOptions() | SYMOPT_ALLOW_ABSOLUTE_SYMBOLS); - SymSetOptions(SymGetOptions() & (~SYMOPT_DEFERRED_LOADS)); - SymSetSearchPath(hProcess, "srv**symbols*http://msdl.microsoft.com/download/symbols"); - return TRUE; -} - -PVOID -ImageSymToVa(HANDLE hProcess, PSYMBOL_INFO pSym, PBYTE pModule, PCSTR Name) -{ - PIMAGE_NT_HEADERS NtHeaders; - PVOID p; - - pSym->SizeOfStruct = sizeof(SYMBOL_INFO); - pSym->MaxNameLen = MAX_SYMBOL_NAME-1; - - if (!SymFromName(hProcess, Name, pSym)) - { - printf("SymGetSymFromName64() failed: %ld\n", GetLastError()); - return 0; - } -#if defined(__GNUC__) && \ - (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ < 40400) - printf("looking up adress for %s: 0x%llx\n", Name, pSym->Address); -#else - printf("looking up adress for %s: 0x%I64x\n", Name, pSym->Address); -#endif - - NtHeaders = ImageNtHeader(pModule); - p = ImageRvaToVa(NtHeaders, pModule, pSym->Address - pSym->ModBase, NULL); - - return p; -} - -BOOL CALLBACK EnumSymbolsProc( - PSYMBOL_INFO pSymInfo, - ULONG SymbolSize, - PVOID UserContext) -{ - if ((UINT)UserContext == -1) - { - printf("%s ", pSymInfo->Name); - } - else - { - if (!bX64) - { - printf("%s@%d ", pSymInfo->Name, (UINT)UserContext); - } - else - { - printf("%s <+ %d> ", pSymInfo->Name, (UINT)UserContext); - } - } - return TRUE; -} - -int main(int argc, char* argv[]) -{ - HANDLE hProcess; - CHAR szModuleFileName[MAX_PATH+1]; - DWORD64 dwModuleBase; - HANDLE hFile = 0, hMap = 0; - PBYTE pModule = NULL; - UINT i; - PVOID pW32pServiceTable, pW32pServiceLimit; - PBYTE pW32pArgumentTable; - PVOID pfnSimpleCall; - DWORD dwServiceLimit; - - struct - { - SYMBOL_INFO Symbol; - CHAR Name[MAX_SYMBOL_NAME]; - } Sym; - - printf("Win32k Syscall dumper\n"); - printf("Copyright (c) Timo Kreuzer 2007-08\n"); - - hProcess = GetCurrentProcess(); - - // try current dir - GetCurrentDirectory(MAX_PATH, szModuleFileName); - strcat(szModuleFileName, "\\win32k.sys"); - hFile = CreateFile(szModuleFileName, FILE_READ_DATA, FILE_SHARE_READ, NULL, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (hFile != INVALID_HANDLE_VALUE) - { - goto cont; - } - - // try system dir - GetSystemDirectory(szModuleFileName, MAX_PATH); - strcat(szModuleFileName, "\\win32k.sys"); - hFile = CreateFile(szModuleFileName, FILE_READ_DATA, FILE_SHARE_READ, NULL, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (hFile == INVALID_HANDLE_VALUE) - { - printf("CreateFile() failed: %ld!\n", GetLastError()); - goto cleanup; - } - -cont: - printf("Trying to get syscalls from: %s\n", szModuleFileName); - - if (!InitDbgHelp(hProcess)) - { - printf("SymInitialize() failed\n"); - goto cleanup; - } - - printf("Loading symbols for %s, please wait...\n", szModuleFileName); - dwModuleBase = SymLoadModule64(hProcess, 0, szModuleFileName, 0, 0, 0); - if (dwModuleBase == 0) - { - printf("SymLoadModule64() failed: %ld\n", GetLastError()); - goto cleanup; - } - - hMap = CreateFileMappingA(hFile, NULL, PAGE_READONLY, 0, 0, NULL); - if (!hMap) - { - printf("CreateFileMapping() failed: %ld\n", GetLastError()); - goto cleanup; - } - - pModule = MapViewOfFile(hMap, FILE_MAP_READ, 0, 0, 0); - if(!pModule) - { - printf("MapViewOfFile() failed: %ld\n", GetLastError()); - goto cleanup; - } - - bX64 = (ImageNtHeader(pModule)->FileHeader.Machine != IMAGE_FILE_MACHINE_I386); - - pW32pServiceTable = ImageSymToVa(hProcess, &Sym.Symbol, pModule, "W32pServiceTable"); - pW32pServiceLimit = ImageSymToVa(hProcess, &Sym.Symbol, pModule, "W32pServiceLimit"); - pW32pArgumentTable = ImageSymToVa(hProcess, &Sym.Symbol, pModule, "W32pArgumentTable"); -// printf("pW32pServiceTable = %p\n", pW32pServiceTable); -// printf("pW32pServiceLimit = %p\n", pW32pServiceLimit); -// printf("pW32pArgumentTable = %p\n", pW32pArgumentTable); - - if (!pW32pServiceTable || !pW32pServiceLimit || !pW32pArgumentTable) - { - printf("Couldn't find adress!\n"); - goto cleanup; - } - - dwServiceLimit = *((DWORD*)pW32pServiceLimit); - - if (!bX64) - { - DWORD *pdwEntries32 = (DWORD*)pW32pServiceTable; - - for (i = 0; i < dwServiceLimit; i++) - { - printf("0x%x:", i+0x1000); - SymEnumSymbolsForAddr(hProcess, (DWORD64)pdwEntries32[i], EnumSymbolsProc, (PVOID)(DWORD)pW32pArgumentTable[i]); - printf("\n"); - } - } - else - { - DWORD64 *pdwEntries64 = (DWORD64*)pW32pServiceTable; - - for (i = 0; i < dwServiceLimit; i++) - { - printf("0x%x:", i+0x1000); - SymEnumSymbolsForAddr(hProcess, (DWORD64)pdwEntries64[i], EnumSymbolsProc, (PVOID)(DWORD)pW32pArgumentTable[i]); - printf("\n"); - } - } - - /* Dump apfnSimpleCall */ - printf("\nDumping apfnSimpleCall:\n"); - pfnSimpleCall = (PVOID*)ImageSymToVa(hProcess, &Sym.Symbol, pModule, "apfnSimpleCall"); - i = 0; - - if (bX64) - { - DWORD64 *pfnSC64 = (DWORD64*)pfnSimpleCall; - while (pfnSC64[i] != 0) - { - printf("0x%x:", i); - SymEnumSymbolsForAddr(hProcess, (DWORD64)pfnSC64[i], EnumSymbolsProc, (PVOID)-1); - printf("\n"); - i++; - } - } - else - { - DWORD *pfnSC32 = (DWORD*)pfnSimpleCall; - while (pfnSC32[i] != 0) - { - printf("0x%x:", i); - SymEnumSymbolsForAddr(hProcess, (DWORD64)pfnSC32[i], EnumSymbolsProc, (PVOID)-1); - printf("\n"); - i++; - } - } - -cleanup: - if (pModule) - { - UnmapViewOfFile(pModule); - } - if (hMap) - { - CloseHandle(hMap); - } - if (hFile) - { - CloseHandle(hFile); - } - - return 0; -} diff --git a/rosapps/applications/devutils/syscalldump/syscalldump.rbuild b/rosapps/applications/devutils/syscalldump/syscalldump.rbuild deleted file mode 100644 index ee2a2600527..00000000000 --- a/rosapps/applications/devutils/syscalldump/syscalldump.rbuild +++ /dev/null @@ -1,5 +0,0 @@ - - . - dbghelp - syscalldump.c - diff --git a/rosapps/applications/devutils/vgafontedit/CMakeLists.txt b/rosapps/applications/devutils/vgafontedit/CMakeLists.txt deleted file mode 100644 index 6786635d327..00000000000 --- a/rosapps/applications/devutils/vgafontedit/CMakeLists.txt +++ /dev/null @@ -1,20 +0,0 @@ - -set_rc_compiler() - -list(APPEND SOURCE - aboutdlg.c - editglyphdlg.c - fontboxeswnd.c - fontwnd.c - main.c - mainwnd.c - misc.c - opensave.c - vgafontedit.rc) - -add_pch(vgafontedit precomp.h) -add_executable(vgafontedit ${SOURCE}) -set_module_type(vgafontedit win32gui UNICODE) -add_importlibs(vgafontedit user32 gdi32 comdlg32 msvcrt kernel32) - -add_cd_file(TARGET vgafontedit DESTINATION reactos/system32 FOR all) diff --git a/rosapps/applications/devutils/vgafontedit/aboutdlg.c b/rosapps/applications/devutils/vgafontedit/aboutdlg.c deleted file mode 100644 index a1247a5c68f..00000000000 --- a/rosapps/applications/devutils/vgafontedit/aboutdlg.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/aboutdlg.c - * PURPOSE: About dialog - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#include "precomp.h" - -INT_PTR CALLBACK -AboutDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - UNREFERENCED_PARAMETER(lParam); - - switch(uMsg) - { - case WM_COMMAND: - if( LOWORD(wParam) == IDCANCEL ) - { - EndDialog(hwnd, 0); - return TRUE; - } - break; - - case WM_INITDIALOG: - return TRUE; - } - - return FALSE; -} diff --git a/rosapps/applications/devutils/vgafontedit/customwndclasses.h b/rosapps/applications/devutils/vgafontedit/customwndclasses.h deleted file mode 100644 index 01f1dc75be9..00000000000 --- a/rosapps/applications/devutils/vgafontedit/customwndclasses.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/customwndclasses.h - * PURPOSE: Header for custom defined window classes (needed by "precomp.h" and the resource files) - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#ifndef __CUSTOMWNDCLASSES_H -#define __CUSTOMWNDCLASSES_H - -#define EDIT_GLYPH_EDIT_CLASSW L"VGAFontEditEditGlyphEditClass" -#define EDIT_GLYPH_PREVIEW_CLASSW L"VGAFontEditEditGlyphPreviewClass" - -#endif diff --git a/rosapps/applications/devutils/vgafontedit/editglyphdlg.c b/rosapps/applications/devutils/vgafontedit/editglyphdlg.c deleted file mode 100644 index acf50455516..00000000000 --- a/rosapps/applications/devutils/vgafontedit/editglyphdlg.c +++ /dev/null @@ -1,307 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/editglyphdlg.c - * PURPOSE: Dialog for editing a glyph - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#include "precomp.h" - -static VOID -AddToolboxButton(IN HWND hToolbar, IN INT iBitmap, IN INT idCommand, IN BYTE fsState) -{ - TBBUTTON tbb = {0,}; - - tbb.fsState = fsState; - tbb.fsStyle = BTNS_CHECKGROUP; - tbb.iBitmap = iBitmap; - tbb.idCommand = idCommand; - - SendMessageW( hToolbar, TB_ADDBUTTONSW, 1, (LPARAM)&tbb ); -} - -static VOID -InitToolbox(IN PEDIT_GLYPH_INFO Info) -{ - HWND hToolbar; - INT iBitmap; - TBADDBITMAP tbab; - - hToolbar = GetDlgItem(Info->hSelf, IDC_EDIT_GLYPH_TOOLBOX); - - // Identify the used Common Controls version - SendMessageW(hToolbar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0); - - // Set the button size to 24x24 - SendMessageW( hToolbar, TB_SETBUTTONSIZE, 0, MAKELONG(24, 24) ); - SendMessageW( hToolbar, TB_SETBITMAPSIZE, 0, MAKELONG(24, 24) ); - - // Add the Toolbox bitmaps - tbab.hInst = hInstance; - tbab.nID = IDB_EDIT_GLYPH_TOOLBOX; - iBitmap = (INT)SendMessageW(hToolbar, TB_ADDBITMAP, 0, (LPARAM)&tbab); - - AddToolboxButton(hToolbar, iBitmap + TOOLBOX_PEN, ID_TOOLBOX_PEN, TBSTATE_ENABLED | TBSTATE_CHECKED); -} - -static VOID -GetBitRect(IN PEDIT_GLYPH_INFO Info, IN UINT uRow, IN UINT uColumn, OUT LPRECT BitRect) -{ - BitRect->left = uColumn * Info->lEditSpacing + 1; - BitRect->top = uRow * Info->lEditSpacing + 1; - BitRect->right = BitRect->left + Info->lEditSpacing - 1; - BitRect->bottom = BitRect->top + Info->lEditSpacing - 1; -} - -static VOID -SetPixelBit(IN PEDIT_GLYPH_INFO Info, IN UINT uRow, IN UINT uColumn, IN BOOL uBit) -{ - // Set the bit in the bitfield - if(uBit) - Info->CharacterBits[uRow] |= 1 << (7 - uColumn); - else - Info->CharacterBits[uRow] &= ~( 1 << (7 - uColumn) ); - - // Redraw everything - InvalidateRect(Info->hEdit, NULL, FALSE); - InvalidateRect(Info->hPreview, NULL, FALSE); -} - -static BOOL -EditGlyphCommand(IN INT idCommand, IN PEDIT_GLYPH_INFO Info) -{ - switch(idCommand) - { - case IDOK: - { - RECT rect; - UINT uColumn; - UINT uRow; - - RtlCopyMemory( Info->FontWndInfo->Font->Bits + Info->uCharacter * 8, Info->CharacterBits, sizeof(Info->CharacterBits) ); - - GetCharacterPosition(Info->uCharacter, &uRow, &uColumn); - GetCharacterRect(uRow, uColumn, &rect); - InvalidateRect(Info->FontWndInfo->hFontBoxesWnd, &rect, FALSE); - - Info->FontWndInfo->OpenInfo->bModified = TRUE; - - // Fall through - } - - // This is the equivalent of WM_DESTROY for dialogs - case IDCANCEL: - EndDialog(Info->hSelf, 0); - - // Remove the window from the linked list - if(Info->PrevEditGlyphWnd) - Info->PrevEditGlyphWnd->NextEditGlyphWnd = Info->NextEditGlyphWnd; - else - Info->FontWndInfo->FirstEditGlyphWnd = Info->NextEditGlyphWnd; - - if(Info->NextEditGlyphWnd) - Info->NextEditGlyphWnd->PrevEditGlyphWnd = Info->PrevEditGlyphWnd; - else - Info->FontWndInfo->LastEditGlyphWnd = Info->PrevEditGlyphWnd; - - SetWindowLongW(Info->hSelf, GWLP_USERDATA, 0); - SetWindowLongW(Info->hEdit, GWLP_USERDATA, 0); - SetWindowLongW(Info->hPreview, GWLP_USERDATA, 0 ); - - HeapFree(hProcessHeap, 0, Info); - return TRUE; - } - - return FALSE; -} - -INT_PTR CALLBACK -EditGlyphDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - PEDIT_GLYPH_INFO Info; - - Info = (PEDIT_GLYPH_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); - - if(Info || uMsg == WM_INITDIALOG) - { - switch(uMsg) - { - case WM_COMMAND: - return EditGlyphCommand( LOWORD(wParam), Info ); - - case WM_INITDIALOG: - Info = (PEDIT_GLYPH_INFO) lParam; - Info->hSelf = hwnd; - Info->hEdit = GetDlgItem(hwnd, IDC_EDIT_GLYPH_EDIT); - Info->hPreview = GetDlgItem(hwnd, IDC_EDIT_GLYPH_PREVIEW); - - SetWindowLongW(hwnd, GWLP_USERDATA, (LONG)Info); - SetWindowLongW(Info->hEdit, GWLP_USERDATA, (LONG)Info); - SetWindowLongW(Info->hPreview, GWLP_USERDATA, (LONG)Info); - - InitToolbox(Info); - - return TRUE; - } - } - - return FALSE; -} - -static LRESULT CALLBACK -EditGlyphEditWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - PEDIT_GLYPH_INFO Info; - - Info = (PEDIT_GLYPH_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); - - if(Info) - { - switch(uMsg) - { - case WM_CREATE: - return 0; - - case WM_LBUTTONDOWN: - SetPixelBit(Info, GET_Y_LPARAM(lParam) / Info->lEditSpacing, GET_X_LPARAM(lParam) / Info->lEditSpacing, 1); - return 0; - - case WM_RBUTTONDOWN: - SetPixelBit(Info, GET_Y_LPARAM(lParam) / Info->lEditSpacing, GET_X_LPARAM(lParam) / Info->lEditSpacing, 0); - return 0; - - case WM_PAINT: - { - BOOL bBit; - HPEN hOldPen; - HPEN hPen; - PAINTSTRUCT ps; - RECT rect; - UINT i; - UINT j; - - BeginPaint(hwnd, &ps); - - // Draw the grid - GetClientRect(hwnd, &rect); - Info->lEditSpacing = rect.right / 8; - - hPen = CreatePen( PS_SOLID, 1, RGB(128, 128, 128) ); - hOldPen = SelectObject(ps.hdc, hPen); - - for(i = 1; i < 8; i++) - { - MoveToEx(ps.hdc, i * Info->lEditSpacing, 0, NULL); - LineTo (ps.hdc, i * Info->lEditSpacing, rect.right); - - MoveToEx(ps.hdc, 0, i * Info->lEditSpacing, NULL); - LineTo (ps.hdc, rect.right, i * Info->lEditSpacing); - } - - SelectObject(ps.hdc, hOldPen); - DeleteObject(hPen); - - // Draw all bits - for(i = 0; i < 8; i++) - { - for(j = 0; j < 8; j++) - { - bBit = (BOOL) (Info->CharacterBits[i] << j & 0x80); - - GetBitRect(Info, i, j, &rect); - FillRect( ps.hdc, &rect, (HBRUSH) GetStockObject(bBit ? BLACK_BRUSH : WHITE_BRUSH) ); - } - } - - // Draw the bounding rectangle - SelectObject( ps.hdc, GetStockObject(NULL_BRUSH) ); - Rectangle(ps.hdc, 0, 0, rect.right, rect.right); - - EndPaint(hwnd, &ps); - return 0; - } - } - } - - return DefWindowProcW(hwnd, uMsg, wParam, lParam); -} - -static LRESULT CALLBACK -EditGlyphPreviewWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - PEDIT_GLYPH_INFO Info; - - Info = (PEDIT_GLYPH_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); - - if(Info) - { - switch(uMsg) - { - case WM_CREATE: - return 0; - - case WM_PAINT: - { - BOOL bBit; - INT iLeft; - INT iTop; - PAINTSTRUCT ps; - RECT rect; - UINT i; - UINT j; - - BeginPaint(hwnd, &ps); - - // Draw the bounding rectangle - GetClientRect(hwnd, &rect); - Rectangle(ps.hdc, 0, 0, rect.right, rect.bottom); - - // Draw all bits - iLeft = rect.right / 2 - 8 / 2; - iTop = rect.bottom / 2 - 8 / 2; - - for(i = 0; i < 8; i++) - { - for(j = 0; j < 8; j++) - { - bBit = (BOOL) (Info->CharacterBits[i] << j & 0x80); - SetPixel( ps.hdc, j + iLeft, i + iTop, (bBit ? 0 : 0xFFFFFF) ); - } - } - - EndPaint(hwnd, &ps); - - return 0; - } - } - } - - return DefWindowProcW(hwnd, uMsg, wParam, lParam); -} - -BOOL -InitEditGlyphWndClasses(VOID) -{ - WNDCLASSW wc = {0,}; - - wc.lpfnWndProc = EditGlyphEditWndProc; - wc.hInstance = hInstance; - wc.hCursor = LoadCursor( NULL, IDC_ARROW ); - wc.lpszClassName = EDIT_GLYPH_EDIT_CLASSW; - - if( !RegisterClassW(&wc) ) - return FALSE; - - wc.lpfnWndProc = EditGlyphPreviewWndProc; - wc.lpszClassName = EDIT_GLYPH_PREVIEW_CLASSW; - - return RegisterClassW(&wc) != 0; -} - -VOID -UnInitEditGlyphWndClasses(VOID) -{ - UnregisterClassW(EDIT_GLYPH_EDIT_CLASSW, hInstance); - UnregisterClassW(EDIT_GLYPH_PREVIEW_CLASSW, hInstance); -} diff --git a/rosapps/applications/devutils/vgafontedit/fileformats.txt b/rosapps/applications/devutils/vgafontedit/fileformats.txt deleted file mode 100644 index 5294982699d..00000000000 --- a/rosapps/applications/devutils/vgafontedit/fileformats.txt +++ /dev/null @@ -1,55 +0,0 @@ -VGA Font File Formats -===================== - -We only deal with 8x8 fonts with 256 characters, so different formats aren't described here. - -1. The binary format (*.bin) ----------------------------- -A binary font file is always 2048 bytes in size. -These bytes are divided into 256 characters, so every character is 8 bytes large. -Each byte represents a character row. Consequently, each column is represented by one bit. The most-significant bit contains the pixel of the first column from the left. - -Example: - We want to get the pixel in the third column of the second row of the seventh character. - We assume you loaded the binary font file completely into a byte array called FontBits. - - // All indexes need to be zero-based - UINT uCharacter = 6; - UINT uRow = 1; - UINT uColumn = 2; - - UCHAR uBit; - - // uBit will either contain 0 (0-bit is set) or 128 dec, 0x80 hex (1-bit is set) now - uBit = FontBits[uCharacter * 8 + uRow] << uColumn & 0x80; - -2. The PC Screen Font Version 1 format (*.psf) ----------------------------------------------- -A PC Screen Font Version 1 file is always 2052 bytes in size. - -It has the following structure: - -struct PSF1_FILE -{ - UCHAR uMagic[2]; - UCHAR uMode; - UCHAR uCharSize; - - UCHAR FontBits[2048]; -}; - -* uMagic contains two magic bytes, which identify a PSFv1 file. These are: - uMagic[0] = 0x36 - uMagic[1] = 0x04 - -* uMode specifies special modes of the font. - We only deal with fonts here, which don't have any special modes, so this value should be 0. - -* uCharSize specifies the size of a character. - In our case, this needs to be 8. - -* Finally the FontBits array contains the font bits in the same format as described above. - This way, it is very easy to convert a PSFv1 file to a binary *.bin file. - - -- Colin Finck, 2008/02/01 \ No newline at end of file diff --git a/rosapps/applications/devutils/vgafontedit/fontboxeswnd.c b/rosapps/applications/devutils/vgafontedit/fontboxeswnd.c deleted file mode 100644 index 1dcfeee68f4..00000000000 --- a/rosapps/applications/devutils/vgafontedit/fontboxeswnd.c +++ /dev/null @@ -1,356 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/fontboxeswnd.c - * PURPOSE: Implements the window showing the character boxes for a font - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#include "precomp.h" - -static const WCHAR szFontBoxesWndClass[] = L"VGAFontEditFontBoxesWndClass"; - -static VOID -DrawCharacterPixel(IN PAINTSTRUCT *ps, IN UINT uCharacter, IN UCHAR uRow, IN UCHAR uColumn, IN UCHAR uBit, IN COLORREF clBackground) -{ - INT x; - INT y; - - x = (uCharacter % 16) * (CHARACTER_BOX_WIDTH + CHARACTER_BOX_PADDING) + 24 + uColumn; - y = (uCharacter / 16) * (CHARACTER_BOX_HEIGHT + CHARACTER_BOX_PADDING)+ 1 + CHARACTER_INFO_BOX_HEIGHT + 2 + uRow; - - SetPixel( ps->hdc, x, y, (uBit ? 0 : clBackground) ); -} - -VOID -GetCharacterRect(IN UINT uFontRow, IN UINT uFontColumn, OUT LPRECT CharacterRect) -{ - CharacterRect->left = uFontColumn * (CHARACTER_BOX_WIDTH + CHARACTER_BOX_PADDING); - CharacterRect->top = uFontRow * (CHARACTER_BOX_HEIGHT + CHARACTER_BOX_PADDING); - CharacterRect->right = CharacterRect->left + CHARACTER_BOX_WIDTH; - CharacterRect->bottom = CharacterRect->top + CHARACTER_BOX_HEIGHT; -} - -__inline VOID -GetCharacterPosition(IN UINT uCharacter, OUT PUINT uFontRow, OUT PUINT uFontColumn) -{ - *uFontRow = uCharacter / 16; - *uFontColumn = uCharacter % 16; -} - -static INT -FontBoxesHitTest(IN UINT xPos, IN UINT yPos, OUT LPRECT CharacterRect) -{ - UINT uFontColumn; - UINT uFontRow; - - uFontColumn = xPos / (CHARACTER_BOX_WIDTH + CHARACTER_BOX_PADDING); - uFontRow = yPos / (CHARACTER_BOX_HEIGHT + CHARACTER_BOX_PADDING); - GetCharacterRect(uFontRow, uFontColumn, CharacterRect); - - if(xPos > (UINT)CharacterRect->right || yPos > (UINT)CharacterRect->bottom) - // The user clicked on separator space, so return HITTEST_SEPARATOR - return HITTEST_SEPARATOR; - else - // Return the character number - return (uFontRow * 16 + uFontColumn); -} - -static VOID -SetSelectedCharacter(IN PFONT_WND_INFO Info, IN UINT uNewCharacter, OPTIONAL IN LPRECT NewCharacterRect) -{ - LPRECT pCharacterRect; - RECT OldCharacterRect; - UINT uFontColumn; - UINT uFontRow; - - // Remove the selection of the old character - GetCharacterPosition(Info->uSelectedCharacter, &uFontRow, &uFontColumn); - GetCharacterRect(uFontRow, uFontColumn, &OldCharacterRect); - InvalidateRect(Info->hFontBoxesWnd, &OldCharacterRect, FALSE); - - // You may pass the RECT of the new character, otherwise we'll allocate memory for one and get it ourselves - if(NewCharacterRect) - pCharacterRect = NewCharacterRect; - else - { - GetCharacterPosition(uNewCharacter, &uFontRow, &uFontColumn); - pCharacterRect = (LPRECT) HeapAlloc( hProcessHeap, 0, sizeof(RECT) ); - GetCharacterRect(uFontRow, uFontColumn, pCharacterRect); - } - - // Select the new character - Info->uSelectedCharacter = uNewCharacter; - InvalidateRect(Info->hFontBoxesWnd, pCharacterRect, FALSE); - - if(!NewCharacterRect) - HeapFree(hProcessHeap, 0, pCharacterRect); -} - -static VOID -DrawProc(IN PFONT_WND_INFO Info, IN PAINTSTRUCT* ps) -{ - COLORREF clBackground; - HBRUSH hBrush = 0; - HBRUSH hOldBrush = 0; - HDC hBoxDC; - HFONT hFont; - HFONT hOldFont; - RECT CharacterRect; - UINT uFontColumn; - UINT uStartColumn; - UINT uEndColumn; - UINT uFontRow; - UINT uStartRow; - UINT uEndRow; - UINT uCharacter; - UCHAR uCharacterColumn; - UCHAR uCharacterRow; - UCHAR uBit; - WCHAR szInfoText[9]; - HBITMAP hBitmapOld; - - // Preparations - hBoxDC = CreateCompatibleDC(NULL); - hBitmapOld = SelectObject(hBoxDC, Info->MainWndInfo->hBoxBmp); - - hFont = CreateFontW(13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, L"Tahoma"); - hOldFont = SelectObject(ps->hdc, hFont); - - SetBkMode( ps->hdc, TRANSPARENT ); - - // What ranges do we have to draw? - uStartRow = ps->rcPaint.top / (CHARACTER_BOX_HEIGHT + CHARACTER_BOX_PADDING); - uEndRow = ps->rcPaint.bottom / (CHARACTER_BOX_HEIGHT + CHARACTER_BOX_PADDING); - uStartColumn = ps->rcPaint.left / (CHARACTER_BOX_WIDTH + CHARACTER_BOX_PADDING); - uEndColumn = ps->rcPaint.right / (CHARACTER_BOX_WIDTH + CHARACTER_BOX_PADDING); - - for(uFontRow = uStartRow; uFontRow <= uEndRow; uFontRow++) - { - for(uFontColumn = uStartColumn; uFontColumn <= uEndColumn; uFontColumn++) - { - GetCharacterRect(uFontRow, uFontColumn, &CharacterRect); - uCharacter = uFontRow * 16 + uFontColumn; - - // Draw the Character Info Box (header) - BitBlt(ps->hdc, - CharacterRect.left, - CharacterRect.top, - CHARACTER_BOX_WIDTH, - CHARACTER_INFO_BOX_HEIGHT, - hBoxDC, - 0, - 0, - SRCCOPY); - - // Draw the header text - wsprintfW(szInfoText, L"%02u = %02X", uCharacter, uCharacter); - DrawTextW( ps->hdc, szInfoText, -1, &CharacterRect, DT_CENTER ); - - // Draw the Character Bitmap Box (rectangle with the actual character) - if(Info->uSelectedCharacter == uCharacter) - { - clBackground = RGB(255, 255, 0); - hBrush = CreateSolidBrush(clBackground); - hOldBrush = SelectObject(ps->hdc, hBrush); - } - else - { - clBackground = RGB(255, 255, 255); - SelectObject( ps->hdc, GetStockObject(WHITE_BRUSH) ); - } - - Rectangle(ps->hdc, - CharacterRect.left, - CharacterRect.top + CHARACTER_INFO_BOX_HEIGHT, - CharacterRect.right, - CharacterRect.bottom); - - // Draw the actual character into the box - for(uCharacterRow = 0; uCharacterRow < 8; uCharacterRow++) - { - for(uCharacterColumn = 0; uCharacterColumn < 8; uCharacterColumn++) - { - uBit = Info->Font->Bits[uCharacter * 8 + uCharacterRow] << uCharacterColumn & 0x80; - DrawCharacterPixel(ps, uCharacter, uCharacterRow, uCharacterColumn, uBit, clBackground); - } - } - } - } - - SelectObject(hBoxDC, hBitmapOld); - SelectObject(ps->hdc, hOldFont); - DeleteObject(hFont); - SelectObject(ps->hdc, hOldBrush); - DeleteObject(hBrush); - DeleteDC(hBoxDC); -} - -VOID -EditCurrentGlyph(PFONT_WND_INFO FontWndInfo) -{ - PEDIT_GLYPH_INFO EditGlyphInfo; - - // Has the window for this character already been opened? - EditGlyphInfo = FontWndInfo->FirstEditGlyphWnd; - - while(EditGlyphInfo) - { - if(EditGlyphInfo->uCharacter == FontWndInfo->uSelectedCharacter) - { - // Yes, it has. Bring it to the front. - SetFocus(EditGlyphInfo->hSelf); - return; - } - - EditGlyphInfo = EditGlyphInfo->NextEditGlyphWnd; - } - - // No. Then create a new one - EditGlyphInfo = (PEDIT_GLYPH_INFO) HeapAlloc( hProcessHeap, 0, sizeof(EDIT_GLYPH_INFO) ); - EditGlyphInfo->FontWndInfo = FontWndInfo; - EditGlyphInfo->uCharacter = FontWndInfo->uSelectedCharacter; - RtlCopyMemory( EditGlyphInfo->CharacterBits, FontWndInfo->Font->Bits + FontWndInfo->uSelectedCharacter * 8, sizeof(EditGlyphInfo->CharacterBits) ); - - // Add the new window to the linked list - EditGlyphInfo->PrevEditGlyphWnd = FontWndInfo->LastEditGlyphWnd; - EditGlyphInfo->NextEditGlyphWnd = NULL; - - if(FontWndInfo->LastEditGlyphWnd) - FontWndInfo->LastEditGlyphWnd->NextEditGlyphWnd = EditGlyphInfo; - else - FontWndInfo->FirstEditGlyphWnd = EditGlyphInfo; - - FontWndInfo->LastEditGlyphWnd = EditGlyphInfo; - - // Open the window as a modeless dialog, so people can edit several characters at the same time. - EditGlyphInfo->hSelf = CreateDialogParamW(hInstance, MAKEINTRESOURCEW(IDD_EDITGLYPH), FontWndInfo->hSelf, EditGlyphDlgProc, (LPARAM)EditGlyphInfo); - ShowWindow(EditGlyphInfo->hSelf, SW_SHOW); -} - -VOID -CreateFontBoxesWindow(IN PFONT_WND_INFO FontWndInfo) -{ - FontWndInfo->hFontBoxesWnd = CreateWindowExW(0, - szFontBoxesWndClass, - 0, - WS_CHILD | WS_VISIBLE, - 0, - 0, - 0, - 0, - FontWndInfo->hSelf, - NULL, - hInstance, - FontWndInfo); -} - -static LRESULT CALLBACK -FontBoxesWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - PFONT_WND_INFO Info; - - Info = (PFONT_WND_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); - - if(Info || uMsg == WM_CREATE) - { - switch(uMsg) - { - case WM_CREATE: - Info = (PFONT_WND_INFO)( ( (LPCREATESTRUCT)lParam )->lpCreateParams ); - SetWindowLongW(hwnd, GWLP_USERDATA, (LONG)Info); - - // Set a fixed window size - SetWindowPos(hwnd, NULL, 0, 0, FONT_BOXES_WND_WIDTH, FONT_BOXES_WND_HEIGHT, SWP_NOZORDER | SWP_NOMOVE); - - return 0; - - case WM_DESTROY: - SetWindowLongW(hwnd, GWLP_USERDATA, 0); - return 0; - - case WM_KEYDOWN: - switch(wParam) - { - case VK_DOWN: - if(Info->uSelectedCharacter < 239) - SetSelectedCharacter(Info, Info->uSelectedCharacter + 16, NULL); - return 0; - - case VK_LEFT: - if(Info->uSelectedCharacter) - SetSelectedCharacter(Info, Info->uSelectedCharacter - 1, NULL); - return 0; - - case VK_RETURN: - EditCurrentGlyph(Info); - return 0; - - case VK_RIGHT: - if(Info->uSelectedCharacter < 255) - SetSelectedCharacter(Info, Info->uSelectedCharacter + 1, NULL); - return 0; - - case VK_UP: - if(Info->uSelectedCharacter > 15) - SetSelectedCharacter(Info, Info->uSelectedCharacter - 16, NULL); - return 0; - } - - break; - - case WM_LBUTTONDBLCLK: - { - EditCurrentGlyph(Info); - return 0; - } - - case WM_LBUTTONDOWN: - { - RECT CharacterRect; - INT iRet; - - iRet = FontBoxesHitTest( GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), &CharacterRect ); - - if(iRet >= 0) - SetSelectedCharacter( Info, (UINT)iRet, &CharacterRect ); - - return 0; - } - - case WM_PAINT: - { - PAINTSTRUCT ps; - - BeginPaint(hwnd, &ps); - DrawProc(Info, &ps); - EndPaint(hwnd, &ps); - - return 0; - } - } - } - - return DefWindowProcW(hwnd, uMsg, wParam, lParam); -} - -BOOL -InitFontBoxesWndClass(VOID) -{ - WNDCLASSW wc = {0,}; - - wc.lpfnWndProc = FontBoxesWndProc; - wc.hInstance = hInstance; - wc.hCursor = LoadCursor( NULL, IDC_ARROW ); - wc.hbrBackground = (HBRUSH)( COLOR_BTNFACE + 1 ); - wc.lpszClassName = szFontBoxesWndClass; - wc.style = CS_DBLCLKS; - - return RegisterClassW(&wc) != 0; -} - -VOID -UnInitFontBoxesWndClass(VOID) -{ - UnregisterClassW(szFontBoxesWndClass, hInstance); -} diff --git a/rosapps/applications/devutils/vgafontedit/fontwnd.c b/rosapps/applications/devutils/vgafontedit/fontwnd.c deleted file mode 100644 index edd6dd53dfe..00000000000 --- a/rosapps/applications/devutils/vgafontedit/fontwnd.c +++ /dev/null @@ -1,440 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/fontwnd.c - * PURPOSE: Implements the MDI child window for a font - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#include "precomp.h" - -static const WCHAR szFontWndClass[] = L"VGAFontEditFontWndClass"; - -static BOOL -InitFont(IN PFONT_WND_INFO Info) -{ - Info->Font = (PBITMAP_FONT) HeapAlloc( hProcessHeap, 0, sizeof(BITMAP_FONT) ); - - if(Info->OpenInfo->bCreateNew) - { - ZeroMemory( Info->Font, sizeof(BITMAP_FONT) ); - return TRUE; - } - else - { - // Load a font - BOOL bRet = FALSE; - DWORD dwTemp; - HANDLE hFile; - - hFile = CreateFileW(Info->OpenInfo->pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); - - if(hFile == INVALID_HANDLE_VALUE) - { - LocalizedError( IDS_OPENERROR, GetLastError() ); - return FALSE; - } - - // Let's first check the file size to determine the file type - dwTemp = GetFileSize(hFile, NULL); - - switch(dwTemp) - { - case 2048: - // It should be a binary font file - Info->OpenInfo->bBinaryFileOpened = TRUE; - - if( ReadFile(hFile, Info->Font, sizeof(BITMAP_FONT), &dwTemp, NULL) ) - bRet = TRUE; - else - LocalizedError( IDS_READERROR, GetLastError() ); - - break; - - case 2052: - { - PSF1_HEADER Header; - - // Probably it's a PSFv1 file, check the header to make sure - if( !ReadFile(hFile, &Header, sizeof(PSF1_HEADER) , &dwTemp, NULL) ) - { - LocalizedError( IDS_READERROR, GetLastError() ); - break; - } - else - { - if(Header.uMagic[0] == PSF1_MAGIC0 && Header.uMagic[1] == PSF1_MAGIC1) - { - // Yes, it is a PSFv1 file. - // Check the mode and character size. We only support 8x8 fonts with no special mode. - if(Header.uCharSize == 8 && Header.uMode == 0) - { - // Perfect! The file pointer is already set correctly, so we can just read the font bitmap now. - if( ReadFile(hFile, Info->Font, sizeof(BITMAP_FONT), &dwTemp, NULL) ) - bRet = TRUE; - else - LocalizedError( IDS_READERROR, GetLastError() ); - } - else - LocalizedError(IDS_UNSUPPORTEDPSF); - - break; - } - - // Fall through if the magic numbers aren't there - } - } - - default: - LocalizedError(IDS_UNSUPPORTEDFORMAT); - } - - CloseHandle(hFile); - return bRet; - } -} - -static LRESULT CALLBACK -FontWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - PFONT_WND_INFO Info; - - Info = (PFONT_WND_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); - - if(Info || uMsg == WM_CREATE) - { - switch(uMsg) - { - case WM_CHILDACTIVATE: - Info->MainWndInfo->CurrentFontWnd = Info; - SetToolbarFileButtonState(Info->MainWndInfo, TRUE); - SetPasteButtonState(Info->MainWndInfo); - break; - - case WM_CREATE: - Info = (PFONT_WND_INFO)( ( (LPMDICREATESTRUCT) ( (LPCREATESTRUCT)lParam )->lpCreateParams )->lParam ); - Info->hSelf = hwnd; - - SetWindowLongW(hwnd, GWLP_USERDATA, (LONG)Info); - - CreateFontBoxesWindow(Info); - - return 0; - - case WM_USER_APPCLOSE: - case WM_CLOSE: - // The user has to close all open edit dialogs first - if(Info->FirstEditGlyphWnd) - { - PWSTR pszMessage; - - AllocAndLoadString(&pszMessage, IDS_CLOSEEDIT); - MessageBoxW(hwnd, pszMessage, szAppName, MB_OK | MB_ICONEXCLAMATION); - HeapFree(hProcessHeap, 0, pszMessage); - - return 0; - } - - // Prompt if the current file has been modified - if(Info->OpenInfo->bModified) - { - INT nMsgBoxResult; - PWSTR pszPrompt; - WCHAR szFile[MAX_PATH]; - - GetWindowTextW(hwnd, szFile, MAX_PATH); - LoadAndFormatString(IDS_SAVEPROMPT, &pszPrompt, szFile); - - nMsgBoxResult = MessageBoxW(hwnd, pszPrompt, szAppName, MB_YESNOCANCEL | MB_ICONQUESTION); - LocalFree(pszPrompt); - - switch(nMsgBoxResult) - { - case IDYES: - DoFileSave(Info->MainWndInfo, FALSE); - break; - - case IDCANCEL: - // 0 = Stop the process of closing the windows (same value for both WM_CLOSE and WM_USER_APPCLOSE) - return 0; - - // IDNO is handled automatically - } - } - - // If there is another child, it will undo the following actions through its WM_CHILDACTIVATE handler. - // Otherwise CurrentFontWnd will stay NULL, so the main window knows that no more childs are opened. - Info->MainWndInfo->CurrentFontWnd = NULL; - SetToolbarFileButtonState(Info->MainWndInfo, FALSE); - SetPasteButtonState(Info->MainWndInfo); - - if(uMsg == WM_USER_APPCLOSE) - { - // First do the tasks we would do for a normal WM_CLOSE message, then return the value for WM_USER_APPCLOSE - // Anything other than 0 indicates that the application shall continue closing the windows - DefMDIChildProcW(hwnd, WM_CLOSE, 0, 0); - return 1; - } - break; - - case WM_DESTROY: - // Remove the window from the linked list - if(Info->PrevFontWnd) - Info->PrevFontWnd->NextFontWnd = Info->NextFontWnd; - else - Info->MainWndInfo->FirstFontWnd = Info->NextFontWnd; - - if(Info->NextFontWnd) - Info->NextFontWnd->PrevFontWnd = Info->PrevFontWnd; - else - Info->MainWndInfo->LastFontWnd = Info->PrevFontWnd; - - // Free memory - if(Info->Font) - HeapFree(hProcessHeap, 0, Info->Font); - - if(Info->OpenInfo->pszFileName) - HeapFree(hProcessHeap, 0, Info->OpenInfo->pszFileName); - - HeapFree(hProcessHeap, 0, Info->OpenInfo); - HeapFree(hProcessHeap, 0, Info); - - SetWindowLongW(hwnd, GWLP_USERDATA, 0); - return 0; - - case WM_SETFOCUS: - // Set the keyboard focus to the FontBoxes window every time the Font window gets the focus - SetFocus(Info->hFontBoxesWnd); - break; - - case WM_SIZE: - { - INT nHeight = HIWORD(lParam); - INT nWidth = LOWORD(lParam); - POINT pt; - RECT WndRect; - - // This ugly workaround is necessary for not setting either the Height or the Width of the window with SetWindowPos - GetWindowRect(Info->hFontBoxesWnd, &WndRect); - pt.x = WndRect.left; - pt.y = WndRect.top; - ScreenToClient(hwnd, &pt); - - if(nHeight < FONT_BOXES_WND_HEIGHT) - { - SCROLLINFO si; - - // Set the vertical scroll bar - si.cbSize = sizeof(si); - si.fMask = SIF_RANGE | SIF_PAGE; - si.nMin = 0; - si.nMax = FONT_BOXES_WND_HEIGHT; - si.nPage = nHeight; - SetScrollInfo(hwnd, SB_VERT, &si, TRUE); - } - else - { - ShowScrollBar(hwnd, SB_VERT, FALSE); - - // Store the new y coordinate in pt.y as well (needed for the SetWindowPos call for setting a new x coordinate) - pt.y = nHeight / 2 - FONT_BOXES_WND_HEIGHT / 2; - SetWindowPos(Info->hFontBoxesWnd, - NULL, - pt.x, - pt.y, - 0, - 0, - SWP_NOSIZE | SWP_NOZORDER); - } - - if(nWidth < FONT_BOXES_WND_WIDTH) - { - SCROLLINFO si; - - // Set the horizontal scroll bar - si.cbSize = sizeof(si); - si.fMask = SIF_RANGE | SIF_PAGE; - si.nMin = 0; - si.nMax = FONT_BOXES_WND_WIDTH; - si.nPage = nWidth; - SetScrollInfo(hwnd, SB_HORZ, &si, TRUE); - } - else - { - ShowScrollBar(hwnd, SB_HORZ, FALSE); - - SetWindowPos(Info->hFontBoxesWnd, - NULL, - nWidth / 2 - FONT_BOXES_WND_WIDTH / 2, - pt.y, - 0, - 0, - SWP_NOSIZE | SWP_NOZORDER); - } - - // We have to call DefMDIChildProcW here as well, otherwise we won't get the Minimize/Maximize/Close buttons for a maximized MDI child. - break; - } - - case WM_HSCROLL: - case WM_VSCROLL: - { - INT nBar; - INT nOrgPos; - SCROLLINFO si; - - if(uMsg == WM_HSCROLL) - nBar = SB_HORZ; - else - nBar = SB_VERT; - - si.cbSize = sizeof(si); - si.fMask = SIF_ALL; - GetScrollInfo(hwnd, nBar, &si); - - nOrgPos = si.nPos; - - switch( LOWORD(wParam) ) - { - // Constant is the same as SB_LEFT for WM_HSCROLL - case SB_TOP: - si.nPos = si.nMin; - break; - - // Constant is the same as SB_RIGHT for WM_HSCROLL - case SB_BOTTOM: - si.nPos = si.nMax; - break; - - // Constant is the same as SB_LINELEFT for WM_HSCROLL - case SB_LINEUP: - si.nPos -= 20; - break; - - // Constant is the same as SB_LINERIGHT for WM_HSCROLL - case SB_LINEDOWN: - si.nPos += 20; - break; - - // Constant is the same as SB_PAGELEFT for WM_HSCROLL - case SB_PAGEUP: - si.nPos -= si.nPage; - break; - - // Constant is the same as SB_PAGERIGHT for WM_HSCROLL - case SB_PAGEDOWN: - si.nPos += si.nPage; - break; - - case SB_THUMBTRACK: - si.nPos = si.nTrackPos; - break; - } - - si.fMask = SIF_POS; - SetScrollInfo(hwnd, nBar, &si, TRUE); - GetScrollInfo(hwnd, nBar, &si); - - if(si.nPos != nOrgPos) - { - // This ugly workaround is necessary for not setting the x coordinate - POINT pt; - RECT WndRect; - - GetWindowRect(Info->hFontBoxesWnd, &WndRect); - pt.x = WndRect.left; - pt.y = WndRect.top; - ScreenToClient(hwnd, &pt); - - if(uMsg == WM_HSCROLL) - SetWindowPos(Info->hFontBoxesWnd, NULL, -si.nPos, pt.y, 0, 0, SWP_NOZORDER | SWP_NOSIZE); - else - SetWindowPos(Info->hFontBoxesWnd, NULL, pt.x, -si.nPos, 0, 0, SWP_NOZORDER | SWP_NOSIZE); - } - - return 0; - } - } - } - - return DefMDIChildProcW(hwnd, uMsg, wParam, lParam); -} - -BOOL -CreateFontWindow(IN PMAIN_WND_INFO MainWndInfo, IN PFONT_OPEN_INFO OpenInfo) -{ - HWND hFontWnd; - PFONT_WND_INFO Info; - - Info = (PFONT_WND_INFO) HeapAlloc( hProcessHeap, HEAP_ZERO_MEMORY, sizeof(FONT_WND_INFO) ); - - if(Info) - { - Info->MainWndInfo = MainWndInfo; - Info->OpenInfo = OpenInfo; - - if( InitFont(Info) ) - { - PWSTR pszWindowTitle; - - if(OpenInfo->pszFileName) - pszWindowTitle = wcsrchr(OpenInfo->pszFileName, '\\') + 1; - else - LoadAndFormatString(IDS_DOCNAME, &pszWindowTitle, ++MainWndInfo->uDocumentCounter); - - hFontWnd = CreateMDIWindowW( szFontWndClass, - pszWindowTitle, - 0, - CW_USEDEFAULT, - CW_USEDEFAULT, - FONT_WND_MIN_WIDTH, - FONT_WND_MIN_HEIGHT, - MainWndInfo->hMdiClient, - hInstance, - (LPARAM)Info ); - - if(!OpenInfo->pszFileName) - LocalFree(pszWindowTitle); - - if(hFontWnd) - { - // Add the new window to the linked list - Info->PrevFontWnd = Info->MainWndInfo->LastFontWnd; - - if(Info->MainWndInfo->LastFontWnd) - Info->MainWndInfo->LastFontWnd->NextFontWnd = Info; - else - Info->MainWndInfo->FirstFontWnd = Info; - - Info->MainWndInfo->LastFontWnd = Info; - - return TRUE; - } - } - - HeapFree(hProcessHeap, 0, Info); - } - - return FALSE; -} - -BOOL -InitFontWndClass(VOID) -{ - WNDCLASSW wc = {0,}; - - wc.lpfnWndProc = FontWndProc; - wc.hInstance = hInstance; - wc.hCursor = LoadCursor( NULL, IDC_ARROW ); - wc.hIcon = LoadIconW( hInstance, MAKEINTRESOURCEW(IDI_DOC) ); - wc.hbrBackground = (HBRUSH)( COLOR_BTNFACE + 1 ); - wc.lpszClassName = szFontWndClass; - - return RegisterClassW(&wc) != 0; -} - -VOID -UnInitFontWndClass(VOID) -{ - UnregisterClassW(szFontWndClass, hInstance); -} diff --git a/rosapps/applications/devutils/vgafontedit/lang/bg-BG.rc b/rosapps/applications/devutils/vgafontedit/lang/bg-BG.rc deleted file mode 100644 index c02919efdb6..00000000000 --- a/rosapps/applications/devutils/vgafontedit/lang/bg-BG.rc +++ /dev/null @@ -1,94 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/lang/en-US.rc - * PURPOSE: Bulgarian resource file - * COPYRIGHT: Copyright 2008 Colin Finck - * TRANSLATOR: CCTAHEB - */ - -LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT - -IDD_ABOUT DIALOGEX 10, 10, 185, 62 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "За" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 20, 20 - LTEXT "Ð¨Ñ€Ð¸Ñ„Ñ‚Ð¾Ð²Ð¸Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸Ðº на РеактОС", IDC_STATIC, 37, 10, 145, 10 - LTEXT "ВъзпроизводÑтвено право 2008 Colin Finck", IDC_STATIC, 37, 20, 145, 10 - DEFPUSHBUTTON "Добре", IDCANCEL, 70, 44, 55, 15 -END - -IDD_EDITGLYPH DIALOGEX 32768, 32768, 246, 197 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Обработка на знак" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "", IDC_EDIT_GLYPH_TOOLBOX, TOOLBARCLASSNAMEA, CCS_NODIVIDER | CCS_NORESIZE, 5, 5, 24, 82 - CONTROL "", IDC_EDIT_GLYPH_EDIT, EDIT_GLYPH_EDIT_CLASSW, 0, 39, 5, 160, 160 - CONTROL "", IDC_EDIT_GLYPH_PREVIEW, EDIT_GLYPH_PREVIEW_CLASSW, 0, 209, 5, 32, 32 - - DEFPUSHBUTTON "Добре", IDOK, 48, 177, 70, 14 - PUSHBUTTON "Отказ", IDCANCEL, 125, 177, 70, 14 -END - -IDM_MAINMENU MENU -BEGIN - POPUP "&Файл" - BEGIN - MENUITEM "&Ðов\tCtrl+N", ID_FILE_NEW - MENUITEM "&ОтварÑне...\tCtrl+O", ID_FILE_OPEN - MENUITEM "ЗатварÑне", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "ЗапиÑ\tCtrl+S", ID_FILE_SAVE - MENUITEM "Ð—Ð°Ð¿Ð¸Ñ ÐºÐ°Ñ‚Ð¾...", ID_FILE_SAVE_AS - MENUITEM SEPARATOR - MENUITEM "Изход като\tAlt+F4", ID_FILE_EXIT - END - - POPUP "&Обработка" - BEGIN - MENUITEM "&ЗапомнÑне\tCtrl+C", ID_EDIT_COPY - MENUITEM "&ПоÑтавÑне\tCtrl+V", ID_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "Обработка на знак...", ID_EDIT_GLYPH - END - - POPUP "&Прозорец" - BEGIN - MENUITEM "&ÐадиплÑне", ID_WINDOW_CASCADE - MENUITEM "&Водоравно наÑтелване", ID_WINDOW_TILE_HORZ - MENUITEM "&ОтвеÑно наÑтелване", ID_WINDOW_TILE_VERT - MENUITEM "Под&реждане на значетата", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "&Следващ\tCtrl+F6", ID_WINDOW_NEXT - END - - POPUP "Помо&щ" - BEGIN - MENUITEM "&За...", ID_HELP_ABOUT - END -END - -STRINGTABLE -BEGIN - IDS_OPENFILTER, "Ð’Ñички поддържани формати (*.bin,*.psf)|*.bin;*.psf|Двоичен шрифтов файл (*.bin)|*.bin|Екранен шрифт за ЛС, верÑÐ¸Ñ 1 (*.psf)|*.psf|" - IDS_SAVEFILTER, "Двоични шрифтови файлове (*.bin)|*.bin|" - IDS_OPENERROR, "Грешка при отварÑне на файла! (Грешка %1!u!)" - IDS_READERROR, "Грешка при четене на файла! (Грешка %1!u!)" - IDS_WRITEERROR, "Грешка при запиÑване на файла! (Грешка %1!u!)" - IDS_UNSUPPORTEDFORMAT, "Ðеподдържан файлов формат!" - IDS_UNSUPPORTEDPSF, "Ðеподдържан формат шрифт PSF! Обработчикът поддържа Ñамо шрифтове 8x8, без раширени режими." - IDS_DOCNAME, "Шрифт %1!u!" - IDS_SAVEPROMPT, "Файлът ""%1"" е променен, но не е Ñъхранен.\n\nиÑкате ли да го Ñъхрнаите?" - IDS_APPTITLE, "Обработчикът на РеактОС за VGA шрифтове" - IDS_CLOSEEDIT, "Първо затворете вÑички прозорци за обработка!" - - IDS_TOOLTIP_NEW, "Ðов" - IDS_TOOLTIP_OPEN, "ОтварÑне" - IDS_TOOLTIP_SAVE, "ЗапиÑ" - IDS_TOOLTIP_EDIT_GLYPH, "Обработка на знак" - IDS_TOOLTIP_COPY, "ЗапомнÑне" - IDS_TOOLTIP_PASTE, "ПоÑтавÑне" -END diff --git a/rosapps/applications/devutils/vgafontedit/lang/de-DE.rc b/rosapps/applications/devutils/vgafontedit/lang/de-DE.rc deleted file mode 100644 index 3ad6a357311..00000000000 --- a/rosapps/applications/devutils/vgafontedit/lang/de-DE.rc +++ /dev/null @@ -1,94 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/lang/de-DE.rc - * PURPOSE: German resource file - * COPYRIGHT: Copyright 2008 Colin Finck - * TRANSLATOR: Dark_Shadow@gmx.at - */ - -LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL - -IDD_ABOUT DIALOGEX 10, 10, 130, 62 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Info" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 20, 20 - LTEXT "ReactOS VGA Font Editor", IDC_STATIC, 37, 10, 93, 10 - LTEXT "Copyright 2008 Colin Finck", IDC_STATIC, 37, 20, 93, 10 - DEFPUSHBUTTON "OK", IDCANCEL, 40, 44, 55, 15 -END - -IDD_EDITGLYPH DIALOGEX 32768, 32768, 246, 197 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Schriftzeichen bearbeiten" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "", IDC_EDIT_GLYPH_TOOLBOX, TOOLBARCLASSNAMEA, CCS_NODIVIDER | CCS_NORESIZE, 5, 5, 24, 82 - CONTROL "", IDC_EDIT_GLYPH_EDIT, EDIT_GLYPH_EDIT_CLASSW, 0, 39, 5, 160, 160 - CONTROL "", IDC_EDIT_GLYPH_PREVIEW, EDIT_GLYPH_PREVIEW_CLASSW, 0, 209, 5, 32, 32 - - DEFPUSHBUTTON "OK", IDOK, 48, 177, 70, 14 - PUSHBUTTON "Abbrechen", IDCANCEL, 125, 177, 70, 14 -END - -IDM_MAINMENU MENU -BEGIN - POPUP "&Datei" - BEGIN - MENUITEM "&Neu\tStrg+N", ID_FILE_NEW - MENUITEM "&Öffnen...\tStrg+O", ID_FILE_OPEN - MENUITEM "Schließen", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "Speichern\tStrg+S", ID_FILE_SAVE - MENUITEM "Speichern unter...", ID_FILE_SAVE_AS - MENUITEM SEPARATOR - MENUITEM "Beenden\tAlt+F4", ID_FILE_EXIT - END - - POPUP "&Bearbeiten" - BEGIN - MENUITEM "Kopieren\tStrg+C", ID_EDIT_COPY - MENUITEM "Einfügen\tStrg+V", ID_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "Schriftzeichen bearbeiten...", ID_EDIT_GLYPH - END - - POPUP "&Fenster" - BEGIN - MENUITEM "&Überlappend", ID_WINDOW_CASCADE - MENUITEM "&Horizontal teilen", ID_WINDOW_TILE_HORZ - MENUITEM "&Vertikal teilen", ID_WINDOW_TILE_VERT - MENUITEM "&Symbole anordnen", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Nächs&tes\tStrg+F6", ID_WINDOW_NEXT - END - - POPUP "&Hilfe" - BEGIN - MENUITEM "&Info...", ID_HELP_ABOUT - END -END - -STRINGTABLE -BEGIN - IDS_OPENFILTER, "Alle unterstützten Formate (*.bin,*.psf)|*.bin;*.psf|Binäre Schriftdateien (*.bin)|*.bin|PC Screen Fonts Version 1 (*.psf)|*.psf|" - IDS_SAVEFILTER, "Binäre Schriftdateien (*.bin)|*.bin|" - IDS_OPENERROR, "Fehler beim Öffnen der Datei! (Fehlernummer %1!u!)" - IDS_READERROR, "Fehler beim Lesen der Datei! (Fehlernummer %1!u!)" - IDS_WRITEERROR, "Fehler beim Schreiben der Datei! (Fehlernummer %1!u!)" - IDS_UNSUPPORTEDFORMAT, "Nicht unterstütztes Dateiformat!" - IDS_UNSUPPORTEDPSF, "Nicht unterstütztes PSF-Format! Der Editor unterstützt nur Fonts im Format 8x8 ohne spezielle Modi." - IDS_DOCNAME, "Font %1!u!" - IDS_SAVEPROMPT, "Die Datei ""%1"" wurde geändert.\n\nMöchten Sie die Änderungen speichern?" - IDS_APPTITLE, "ReactOS VGA Font Editor" - IDS_CLOSEEDIT, "Bitte schließen Sie zuerst alle offenen Bearbeitungs-Fenster!" - - IDS_TOOLTIP_NEW, "Neu" - IDS_TOOLTIP_OPEN, "Öffnen" - IDS_TOOLTIP_SAVE, "Speichern" - IDS_TOOLTIP_EDIT_GLYPH, "Schriftzeichen bearbeiten" - IDS_TOOLTIP_COPY, "Kopieren" - IDS_TOOLTIP_PASTE, "Einfügen" -END diff --git a/rosapps/applications/devutils/vgafontedit/lang/en-US.rc b/rosapps/applications/devutils/vgafontedit/lang/en-US.rc deleted file mode 100644 index 4fd7057763c..00000000000 --- a/rosapps/applications/devutils/vgafontedit/lang/en-US.rc +++ /dev/null @@ -1,94 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/lang/en-US.rc - * PURPOSE: English resource file - * COPYRIGHT: Copyright 2008 Colin Finck - * TRANSLATOR: Colin Finck - */ - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -IDD_ABOUT DIALOGEX 10, 10, 130, 62 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "About" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 20, 20 - LTEXT "ReactOS VGA Font Editor", IDC_STATIC, 37, 10, 93, 10 - LTEXT "Copyright 2008 Colin Finck", IDC_STATIC, 37, 20, 93, 10 - DEFPUSHBUTTON "OK", IDCANCEL, 40, 44, 55, 15 -END - -IDD_EDITGLYPH DIALOGEX 32768, 32768, 246, 197 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Edit Glyph" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "", IDC_EDIT_GLYPH_TOOLBOX, TOOLBARCLASSNAMEA, CCS_NODIVIDER | CCS_NORESIZE, 5, 5, 24, 82 - CONTROL "", IDC_EDIT_GLYPH_EDIT, EDIT_GLYPH_EDIT_CLASSW, 0, 39, 5, 160, 160 - CONTROL "", IDC_EDIT_GLYPH_PREVIEW, EDIT_GLYPH_PREVIEW_CLASSW, 0, 209, 5, 32, 32 - - DEFPUSHBUTTON "OK", IDOK, 48, 177, 70, 14 - PUSHBUTTON "Cancel", IDCANCEL, 125, 177, 70, 14 -END - -IDM_MAINMENU MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&New\tCtrl+N", ID_FILE_NEW - MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN - MENUITEM "Close", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "Save\tCtrl+S", ID_FILE_SAVE - MENUITEM "Save As...", ID_FILE_SAVE_AS - MENUITEM SEPARATOR - MENUITEM "Exit\tAlt+F4", ID_FILE_EXIT - END - - POPUP "&Edit" - BEGIN - MENUITEM "Copy\tCtrl+C", ID_EDIT_COPY - MENUITEM "Paste\tCtrl+V", ID_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "Edit Glyph...", ID_EDIT_GLYPH - END - - POPUP "&Window" - BEGIN - MENUITEM "&Cascade", ID_WINDOW_CASCADE - MENUITEM "Tile &Horizontally", ID_WINDOW_TILE_HORZ - MENUITEM "Tile &Vertically", ID_WINDOW_TILE_VERT - MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Nex&t\tCtrl+F6", ID_WINDOW_NEXT - END - - POPUP "&Help" - BEGIN - MENUITEM "&About...", ID_HELP_ABOUT - END -END - -STRINGTABLE -BEGIN - IDS_OPENFILTER, "All supported formats (*.bin,*.psf)|*.bin;*.psf|Binary Font Files (*.bin)|*.bin|PC Screen Fonts Version 1 (*.psf)|*.psf|" - IDS_SAVEFILTER, "Binary Font Files (*.bin)|*.bin|" - IDS_OPENERROR, "Error while opening the file! (Error number %1!u!)" - IDS_READERROR, "Error while reading the file! (Error number %1!u!)" - IDS_WRITEERROR, "Error while writing the file! (Error number %1!u!)" - IDS_UNSUPPORTEDFORMAT, "Unsupported file format!" - IDS_UNSUPPORTEDPSF, "Unsupported PSF font format! The editor only supports 8x8 fonts with no special modes." - IDS_DOCNAME, "Font %1!u!" - IDS_SAVEPROMPT, "The file ""%1"" was modified, but not saved.\n\nDo you want to save it?" - IDS_APPTITLE, "ReactOS VGA Font Editor" - IDS_CLOSEEDIT, "Please close all open Edit windows first!" - - IDS_TOOLTIP_NEW, "New" - IDS_TOOLTIP_OPEN, "Open" - IDS_TOOLTIP_SAVE, "Save" - IDS_TOOLTIP_EDIT_GLYPH, "Edit Glyph" - IDS_TOOLTIP_COPY, "Copy" - IDS_TOOLTIP_PASTE, "Paste" -END diff --git a/rosapps/applications/devutils/vgafontedit/lang/es-ES.rc b/rosapps/applications/devutils/vgafontedit/lang/es-ES.rc deleted file mode 100644 index 00a6e38f97e..00000000000 --- a/rosapps/applications/devutils/vgafontedit/lang/es-ES.rc +++ /dev/null @@ -1,94 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/lang/en-US.rc - * PURPOSE: English resource file - * COPYRIGHT: Copyright 2008 Colin Finck - * Traducido por: Javier Remacha 2008 - */ - -LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL - -IDD_ABOUT DIALOGEX 10, 10, 130, 62 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Acerca de" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 20, 20 - LTEXT "ReactOS VGA Font Editor", IDC_STATIC, 37, 10, 93, 10 - LTEXT "Copyright 2008 Colin Finck", IDC_STATIC, 37, 20, 93, 10 - DEFPUSHBUTTON "Aceptar", IDCANCEL, 40, 44, 55, 15 -END - -IDD_EDITGLYPH DIALOGEX 32768, 32768, 246, 197 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Editar Glifo" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "", IDC_EDIT_GLYPH_TOOLBOX, TOOLBARCLASSNAMEA, CCS_NODIVIDER | CCS_NORESIZE, 5, 5, 24, 82 - CONTROL "", IDC_EDIT_GLYPH_EDIT, EDIT_GLYPH_EDIT_CLASSW, 0, 39, 5, 160, 160 - CONTROL "", IDC_EDIT_GLYPH_PREVIEW, EDIT_GLYPH_PREVIEW_CLASSW, 0, 209, 5, 32, 32 - - DEFPUSHBUTTON "Aceptar", IDOK, 48, 177, 70, 14 - PUSHBUTTON "Cancelar", IDCANCEL, 125, 177, 70, 14 -END - -IDM_MAINMENU MENU -BEGIN - POPUP "&Archivo" - BEGIN - MENUITEM "&Nuevo\tCtrl+N", ID_FILE_NEW - MENUITEM "&Abrir...\tCtrl+O", ID_FILE_OPEN - MENUITEM "Cerrar", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "Guardar\tCtrl+S", ID_FILE_SAVE - MENUITEM "Guardar como...", ID_FILE_SAVE_AS - MENUITEM SEPARATOR - MENUITEM "Salir\tAlt+F4", ID_FILE_EXIT - END - - POPUP "&Edición" - BEGIN - MENUITEM "Copiar\tCtrl+C", ID_EDIT_COPY - MENUITEM "Pegar\tCtrl+V", ID_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "Editar Glifo...", ID_EDIT_GLYPH - END - - POPUP "&Ventana" - BEGIN - MENUITEM "&Cascada", ID_WINDOW_CASCADE - MENUITEM "Dividir &Horizontalmente", ID_WINDOW_TILE_HORZ - MENUITEM "Dividir &Verticalmente", ID_WINDOW_TILE_VERT - MENUITEM "&Organizar Iconos", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Siguien&te\tCtrl+F6", ID_WINDOW_NEXT - END - - POPUP "Ay&uda" - BEGIN - MENUITEM "&Acerca de...", ID_HELP_ABOUT - END -END - -STRINGTABLE -BEGIN - IDS_OPENFILTER, "Todos los formatos soportados (*.bin,*.psf)|*.bin;*.psf|Archivos binarios de Fuentes (*.bin)|*.bin|Fuente de pantalla de PC Versión 1 (*.psf)|*.psf|" - IDS_SAVEFILTER, "Archivos binarios de Fuentes (*.bin)|*.bin|" - IDS_OPENERROR, "¡Error al abrir el archivo! (Error número %1!u!)" - IDS_READERROR, "¡Error al leer el archivo! (Error número %1!u!)" - IDS_WRITEERROR, "¡Error al escribir el archivo! (Error número %1!u!)" - IDS_UNSUPPORTEDFORMAT, "¡Formato de archivo no soportado!" - IDS_UNSUPPORTEDPSF, "¡Formato de fuente PSF no soportado! El editor sólo soporta fuentes 8x8 fonts sin modos especiales." - IDS_DOCNAME, "Fuente %1!u!" - IDS_SAVEPROMPT, "El archivo ""%1"" ha sido modificado, pero no guardado.\n\n¿Quiere guardarlo ahora?" - IDS_APPTITLE, "ReactOS VGA Font Editor" - IDS_CLOSEEDIT, "¡Por favor, cierre todas las ventanas de Edición abiertas primero!" - - IDS_TOOLTIP_NEW, "Nuevo" - IDS_TOOLTIP_OPEN, "Abrir" - IDS_TOOLTIP_SAVE, "Guardar" - IDS_TOOLTIP_EDIT_GLYPH, "Editar Glifo" - IDS_TOOLTIP_COPY, "Copiar" - IDS_TOOLTIP_PASTE, "Pegar" -END diff --git a/rosapps/applications/devutils/vgafontedit/lang/fr-FR.rc b/rosapps/applications/devutils/vgafontedit/lang/fr-FR.rc deleted file mode 100644 index bd948f30a77..00000000000 --- a/rosapps/applications/devutils/vgafontedit/lang/fr-FR.rc +++ /dev/null @@ -1,94 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/lang/fr-FR.rc - * PURPOSE: French resource file - * COPYRIGHT: Copyright 2008 Colin Finck - * TRANSLATOR: Pierre Schweitzer - */ - -LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL - -IDD_ABOUT DIALOGEX 10, 10, 130, 62 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "À propos de" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 20, 20 - LTEXT "Éditeur de police VGA ReactOS", IDC_STATIC, 37, 10, 93, 10 - LTEXT "Copyright 2008 Colin Finck", IDC_STATIC, 37, 20, 93, 10 - DEFPUSHBUTTON "OK", IDCANCEL, 40, 44, 55, 15 -END - -IDD_EDITGLYPH DIALOGEX 32768, 32768, 246, 197 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Éditer le glyphe" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "", IDC_EDIT_GLYPH_TOOLBOX, TOOLBARCLASSNAMEA, CCS_NODIVIDER | CCS_NORESIZE, 5, 5, 24, 82 - CONTROL "", IDC_EDIT_GLYPH_EDIT, EDIT_GLYPH_EDIT_CLASSW, 0, 39, 5, 160, 160 - CONTROL "", IDC_EDIT_GLYPH_PREVIEW, EDIT_GLYPH_PREVIEW_CLASSW, 0, 209, 5, 32, 32 - - DEFPUSHBUTTON "OK", IDOK, 48, 177, 70, 14 - PUSHBUTTON "Annuler", IDCANCEL, 125, 177, 70, 14 -END - -IDM_MAINMENU MENU -BEGIN - POPUP "&Fichier" - BEGIN - MENUITEM "&Nouveau\tCtrl+N", ID_FILE_NEW - MENUITEM "&Ouvrir...\tCtrl+O", ID_FILE_OPEN - MENUITEM "Fermer", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "Enregistrer\tCtrl+S", ID_FILE_SAVE - MENUITEM "Enregistrer sous...", ID_FILE_SAVE_AS - MENUITEM SEPARATOR - MENUITEM "Quitter\tAlt+F4", ID_FILE_EXIT - END - - POPUP "&Édition" - BEGIN - MENUITEM "Copier\tCtrl+C", ID_EDIT_COPY - MENUITEM "Coller\tCtrl+V", ID_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "Éditer le glyphe...", ID_EDIT_GLYPH - END - - POPUP "Fenêtres" - BEGIN - MENUITEM "En &cascade", ID_WINDOW_CASCADE - MENUITEM "Mosaïque &horizontale", ID_WINDOW_TILE_HORZ - MENUITEM "Mosaïque &verticale", ID_WINDOW_TILE_VERT - MENUITEM "&Arranger les icônes", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Suivan&te\tCtrl+F6", ID_WINDOW_NEXT - END - - POPUP "Aide" - BEGIN - MENUITEM "&À propos de...", ID_HELP_ABOUT - END -END - -STRINGTABLE -BEGIN - IDS_OPENFILTER, "Tous les formats supportés (*.bin,*.psf)|*.bin;*.psf|Fichiers police binaires (*.bin)|*.bin|PC Screen Fonts Version 1 (*.psf)|*.psf|" - IDS_SAVEFILTER, "Fichiers police binaires (*.bin)|*.bin|" - IDS_OPENERROR, "Erreur lors de l'ouverture du fichier ! (Erreur numéro %1!u!)" - IDS_READERROR, "Erreur lors de la lecture du fichier ! (Erreur numéro %1!u!)" - IDS_WRITEERROR, "Erreur lors de l'écriture du fichier ! (Erreur numéro %1!u!)" - IDS_UNSUPPORTEDFORMAT, "Format de fichier non supporté!" - IDS_UNSUPPORTEDPSF, "Format de police PSF non supporté ! L'éditeur supporte seulement les polices 8x8 sans aucun mode spécial." - IDS_DOCNAME, "Police %1!u!" - IDS_SAVEPROMPT, "Le fichier ""%1"" a été modifié mais pas enregistré.\n\nVoulez-vous l'enregistrer ?" - IDS_APPTITLE, "Éditeur de police VGA ReactOS" - IDS_CLOSEEDIT, "Veuillez d'abord fermer toutes les fenêtres d'édition !" - - IDS_TOOLTIP_NEW, "Nouveau" - IDS_TOOLTIP_OPEN, "Ouvrir" - IDS_TOOLTIP_SAVE, "Enregistrer" - IDS_TOOLTIP_EDIT_GLYPH, "Éditer le glyphe" - IDS_TOOLTIP_COPY, "Copier" - IDS_TOOLTIP_PASTE, "Coller" -END diff --git a/rosapps/applications/devutils/vgafontedit/lang/it-IT.rc b/rosapps/applications/devutils/vgafontedit/lang/it-IT.rc deleted file mode 100644 index d540d0dfaed..00000000000 --- a/rosapps/applications/devutils/vgafontedit/lang/it-IT.rc +++ /dev/null @@ -1,94 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/lang/en-US.rc - * PURPOSE: English resource file - * COPYRIGHT: Copyright 2008 Colin Finck - * TRANSLATOR: Paolo Devoti - */ - -LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL - -IDD_ABOUT DIALOGEX 10, 10, 130, 62 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Informazioni su" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 20, 20 - LTEXT "ReactOS VGA Font Editor", IDC_STATIC, 37, 10, 93, 10 - LTEXT "Copyright 2008 Colin Finck", IDC_STATIC, 37, 20, 93, 10 - DEFPUSHBUTTON "OK", IDCANCEL, 40, 44, 55, 15 -END - -IDD_EDITGLYPH DIALOGEX 32768, 32768, 246, 197 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Edit Glyph" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "", IDC_EDIT_GLYPH_TOOLBOX, TOOLBARCLASSNAMEA, CCS_NODIVIDER | CCS_NORESIZE, 5, 5, 24, 82 - CONTROL "", IDC_EDIT_GLYPH_EDIT, EDIT_GLYPH_EDIT_CLASSW, 0, 39, 5, 160, 160 - CONTROL "", IDC_EDIT_GLYPH_PREVIEW, EDIT_GLYPH_PREVIEW_CLASSW, 0, 209, 5, 32, 32 - - DEFPUSHBUTTON "OK", IDOK, 48, 177, 70, 14 - PUSHBUTTON "Annulla", IDCANCEL, 125, 177, 70, 14 -END - -IDM_MAINMENU MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Nuovo\tCtrl+N", ID_FILE_NEW - MENUITEM "&Apri...\tCtrl+O", ID_FILE_OPEN - MENUITEM "Chiudi", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "Salva\tCtrl+S", ID_FILE_SAVE - MENUITEM "Salva come...", ID_FILE_SAVE_AS - MENUITEM SEPARATOR - MENUITEM "Esci\tAlt+F4", ID_FILE_EXIT - END - - POPUP "&Modifica" - BEGIN - MENUITEM "Copia\tCtrl+C", ID_EDIT_COPY - MENUITEM "Incolla\tCtrl+V", ID_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "Edit Glyph...", ID_EDIT_GLYPH - END - - POPUP "&Finestre" - BEGIN - MENUITEM "&Sovrapponi", ID_WINDOW_CASCADE - MENUITEM "Affianca &Orizzontalmente", ID_WINDOW_TILE_HORZ - MENUITEM "Affianca &Verticalmente", ID_WINDOW_TILE_VERT - MENUITEM "&Disponi Icone", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Succ&essiva\tCtrl+F6", ID_WINDOW_NEXT - END - - POPUP "&Aiuto" - BEGIN - MENUITEM "&Informazioni su...", ID_HELP_ABOUT - END -END - -STRINGTABLE -BEGIN - IDS_OPENFILTER, "Tutti i formati supportati (*.bin,*.psf)|*.bin;*.psf|Font binari (*.bin)|*.bin|Font per schermo PC Versione 1 (*.psf)|*.psf|" - IDS_SAVEFILTER, "Font binari (*.bin)|*.bin|" - IDS_OPENERROR, "Errore durante l'apertura del file! (Errore numero %1!u!)" - IDS_READERROR, "Errore durante la lettura del file! (Errore numero %1!u!)" - IDS_WRITEERROR, "Errore durante la scrittura del file! (Errore numero %1!u!)" - IDS_UNSUPPORTEDFORMAT, "Formato non supportato!" - IDS_UNSUPPORTEDPSF, "Formato font PSF non supportato! L'editor supporta esclusivamente i font 8x8 senza modi speciali." - IDS_DOCNAME, "Font %1!u!" - IDS_SAVEPROMPT, "Il file ""%1"" è stato modificato, ma non salvato.\n\nVolete salvarlo ora?" - IDS_APPTITLE, "ReactOS VGA Font Editor" - IDS_CLOSEEDIT, "Prima chiudere tutte le finestre di Edit!" - - IDS_TOOLTIP_NEW, "Nuovo" - IDS_TOOLTIP_OPEN, "Apri" - IDS_TOOLTIP_SAVE, "Salva" - IDS_TOOLTIP_EDIT_GLYPH, "Edit Glyph" - IDS_TOOLTIP_COPY, "Copia" - IDS_TOOLTIP_PASTE, "Incolla" -END diff --git a/rosapps/applications/devutils/vgafontedit/lang/no-NO.rc b/rosapps/applications/devutils/vgafontedit/lang/no-NO.rc deleted file mode 100644 index 55fe10d354f..00000000000 --- a/rosapps/applications/devutils/vgafontedit/lang/no-NO.rc +++ /dev/null @@ -1,94 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/lang/en-US.rc - * PURPOSE: English resource file - * COPYRIGHT: Copyright 2008 Colin Finck - * TRANSLATOR: Colin Finck - */ - -LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL - -IDD_ABOUT DIALOGEX 10, 10, 130, 62 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Om" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 20, 20 - LTEXT "ReactOS VGA skriftredigering", IDC_STATIC, 37, 10, 93, 10 - LTEXT "Enerett 2008 Colin Finck", IDC_STATIC, 37, 20, 93, 10 - DEFPUSHBUTTON "OK", IDCANCEL, 40, 44, 55, 15 -END - -IDD_EDITGLYPH DIALOGEX 32768, 32768, 246, 197 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Rediger Glyph" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "", IDC_EDIT_GLYPH_TOOLBOX, TOOLBARCLASSNAMEA, CCS_NODIVIDER | CCS_NORESIZE, 5, 5, 24, 82 - CONTROL "", IDC_EDIT_GLYPH_EDIT, EDIT_GLYPH_EDIT_CLASSW, 0, 39, 5, 160, 160 - CONTROL "", IDC_EDIT_GLYPH_PREVIEW, EDIT_GLYPH_PREVIEW_CLASSW, 0, 209, 5, 32, 32 - - DEFPUSHBUTTON "OK", IDOK, 48, 177, 70, 14 - PUSHBUTTON "Avbryt", IDCANCEL, 125, 177, 70, 14 -END - -IDM_MAINMENU MENU -BEGIN - POPUP "&Fil" - BEGIN - MENUITEM "&Ny\tCtrl+N", ID_FILE_NEW - MENUITEM "&Ã…pne...\tCtrl+O", ID_FILE_OPEN - MENUITEM "Lukk", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "Lagre\tCtrl+S", ID_FILE_SAVE - MENUITEM "Lagre som...", ID_FILE_SAVE_AS - MENUITEM SEPARATOR - MENUITEM "Avslutt\tAlt+F4", ID_FILE_EXIT - END - - POPUP "&Rediger" - BEGIN - MENUITEM "Kopier\tCtrl+C", ID_EDIT_COPY - MENUITEM "Lim inn\tCtrl+V", ID_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "Rediger Glyph...", ID_EDIT_GLYPH - END - - POPUP "&Vindu" - BEGIN - MENUITEM "&Overlappet", ID_WINDOW_CASCADE - MENUITEM "Hele &Horisontalt", ID_WINDOW_TILE_HORZ - MENUITEM "Hele &Vertikalt", ID_WINDOW_TILE_VERT - MENUITEM "&Ordne ikoner", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Nes&te\tCtrl+F6", ID_WINDOW_NEXT - END - - POPUP "&Hjelp" - BEGIN - MENUITEM "&Om...", ID_HELP_ABOUT - END -END - -STRINGTABLE -BEGIN - IDS_OPENFILTER, "Alle støttet formater (*.bin,*.psf)|*.bin;*.psf|Binære skrifttype filer (*.bin)|*.bin|PC skjerm skrifttype versjon 1 (*.psf)|*.psf|" - IDS_SAVEFILTER, "Binære skrifttype filer (*.bin)|*.bin|" - IDS_OPENERROR, "Feil med Ã¥ Ã¥pne filen! (Feil nummer %1!u!)" - IDS_READERROR, "Feil med Ã¥ lese filen! (Feil nummer %1!u!)" - IDS_WRITEERROR, "Feil med Ã¥ lagre filen! (Feil nummer %1!u!)" - IDS_UNSUPPORTEDFORMAT, "Filformatet er ikke støttet!" - IDS_UNSUPPORTEDPSF, "Ikke støttet PSF filformat/skriftformat! Programmet støtter bare 8x8 skrift med ingen spesielle modus." - IDS_DOCNAME, "Skrifttype %1!u!" - IDS_SAVEPROMPT, "Filen ""%1"" har blitt endret, men har ikke blitt lagret.\n\nVil du lagre denne?" - IDS_APPTITLE, "ReactOS VGA Skriftredigering" - IDS_CLOSEEDIT, "Vennligst lukk alle Ã¥pne vinduer først!" - - IDS_TOOLTIP_NEW, "Ny" - IDS_TOOLTIP_OPEN, "Ã…pne" - IDS_TOOLTIP_SAVE, "Lagre" - IDS_TOOLTIP_EDIT_GLYPH, "Rediger Glyph" - IDS_TOOLTIP_COPY, "Kopier" - IDS_TOOLTIP_PASTE, "Lim inn" -END diff --git a/rosapps/applications/devutils/vgafontedit/lang/pl-PL.rc b/rosapps/applications/devutils/vgafontedit/lang/pl-PL.rc deleted file mode 100644 index 5f8f6ba85ce..00000000000 --- a/rosapps/applications/devutils/vgafontedit/lang/pl-PL.rc +++ /dev/null @@ -1,94 +0,0 @@ -/* - * PROJECT: Edytor czczionek VGA dla ReactOS - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/lang/pl-PL.rc - * PURPOSE: Polish resource file - * COPYRIGHT: Copyright 2008 Colin Finck - * TRANSLATOR: Olaf Siejka (Feb, 2008) - */ - -LANGUAGE LANG_POLISH, SUBLANG_DEFAULT - -IDD_ABOUT DIALOGEX 10, 10, 130, 62 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "O programie" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 20, 20 - LTEXT "Edytor czcionek VGA dla ReactOS", IDC_STATIC, 37, 10, 93, 10 - LTEXT "Copyright 2008 Colin Finck", IDC_STATIC, 37, 20, 93, 10 - DEFPUSHBUTTON "OK", IDCANCEL, 40, 44, 55, 15 -END - -IDD_EDITGLYPH DIALOGEX 32768, 32768, 246, 197 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Edycja Glifów" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "", IDC_EDIT_GLYPH_TOOLBOX, TOOLBARCLASSNAMEA, CCS_NODIVIDER | CCS_NORESIZE, 5, 5, 24, 82 - CONTROL "", IDC_EDIT_GLYPH_EDIT, EDIT_GLYPH_EDIT_CLASSW, 0, 39, 5, 160, 160 - CONTROL "", IDC_EDIT_GLYPH_PREVIEW, EDIT_GLYPH_PREVIEW_CLASSW, 0, 209, 5, 32, 32 - - DEFPUSHBUTTON "OK", IDOK, 48, 177, 70, 14 - PUSHBUTTON "Anuluj", IDCANCEL, 125, 177, 70, 14 -END - -IDM_MAINMENU MENU -BEGIN - POPUP "&Plik" - BEGIN - MENUITEM "&Nowy\tCtrl+N", ID_FILE_NEW - MENUITEM "&Otwórz.\tCtrl+O", ID_FILE_OPEN - MENUITEM "Zamknij", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "Zapisz\tCtrl+S", ID_FILE_SAVE - MENUITEM "Zapisz jako", ID_FILE_SAVE_AS - MENUITEM SEPARATOR - MENUITEM "Wyjdź\tAlt+F4", ID_FILE_EXIT - END - - POPUP "&Edit" - BEGIN - MENUITEM "Copy\tCtrl+C", ID_EDIT_COPY - MENUITEM "Paste\tCtrl+V", ID_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "Edit Glyph...", ID_EDIT_GLYPH - END - - POPUP "&Okna" - BEGIN - MENUITEM "&Kaskadowo", ID_WINDOW_CASCADE - MENUITEM "Ustaw &poziomo", ID_WINDOW_TILE_HORZ - MENUITEM "Ustaw pio&nowo", ID_WINDOW_TILE_VERT - MENUITEM "&UporzÄ…dkuj ikony", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Nas&tÄ™pne\tCtrl+F6", ID_WINDOW_NEXT - END - - POPUP "&Pomoc" - BEGIN - MENUITEM "O p&rogramie", ID_HELP_ABOUT - END -END - -STRINGTABLE -BEGIN - IDS_OPENFILTER, "Wszystkie obsÅ‚ugiwane (*.bin,*.psf)|*.bin;*.psf|Czcionki binarne (*.bin)|*.bin|Czcionki PSF V1 (*.psf)|*.psf|" - IDS_SAVEFILTER, "Czcionki binarne (*.bin)|*.bin|" - IDS_OPENERROR, "Błąd poczas otwierania pliku! (Błąd nr. %1!u!)" - IDS_READERROR, "Błąd poczas wczytywania pliku! (Błąd nr. %1!u!)" - IDS_WRITEERROR, "Błąd podczas zapisu do pliku! (Błąd nr. %1!u!)" - IDS_UNSUPPORTEDFORMAT, "NieobsÅ‚ugiwany format czcionki!" - IDS_UNSUPPORTEDPSF, "NieobsÅ‚ugiwana wersja PSF! Edytor obsÅ‚uguje wyłącznie czcionki rozmiaru 8x8, bez dodatków." - IDS_DOCNAME, "Czcionka %1!u!" - IDS_SAVEPROMPT, "Plik ""%1"" zostaÅ‚ zmieniony, ale nie zapisany.\n\nCzy chcesz zapisać zmiany?" - IDS_APPTITLE, "Edytor czcionek VGA dla ReactOS" - IDS_CLOSEEDIT, "ProszÄ™ najpierw zamknąć wszystkie okna Edycji!" - - IDS_TOOLTIP_NEW, "Nowy" - IDS_TOOLTIP_OPEN, "Otwórz" - IDS_TOOLTIP_SAVE, "Zapisz" - IDS_TOOLTIP_EDIT_GLYPH, "Edytuj Glify" - IDS_TOOLTIP_COPY, "Copy" - IDS_TOOLTIP_PASTE, "Paste" -END diff --git a/rosapps/applications/devutils/vgafontedit/lang/ru-RU.rc b/rosapps/applications/devutils/vgafontedit/lang/ru-RU.rc deleted file mode 100644 index 5dcb7c902e0..00000000000 --- a/rosapps/applications/devutils/vgafontedit/lang/ru-RU.rc +++ /dev/null @@ -1,94 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/lang/ru-RU.rc - * PURPOSE: Russian resource file - * COPYRIGHT: Copyright 2008 Colin Finck - * TRANSLATOR: Dmitry Chapyshev - */ - -LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT - -IDD_ABOUT DIALOGEX 10, 10, 130, 62 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "О программе" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 20, 20 - LTEXT "Редактор VGA-шрифтов ReactOS", IDC_STATIC, 37, 10, 93, 10 - LTEXT "ÐвторÑкие права 2008 Колин Финк", IDC_STATIC, 37, 20, 93, 17 - DEFPUSHBUTTON "OK", IDCANCEL, 40, 44, 55, 15 -END - -IDD_EDITGLYPH DIALOGEX 32768, 32768, 246, 197 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Редактирование Ñимвола" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "", IDC_EDIT_GLYPH_TOOLBOX, TOOLBARCLASSNAMEA, CCS_NODIVIDER | CCS_NORESIZE, 5, 5, 24, 82 - CONTROL "", IDC_EDIT_GLYPH_EDIT, EDIT_GLYPH_EDIT_CLASSW, 0, 39, 5, 160, 160 - CONTROL "", IDC_EDIT_GLYPH_PREVIEW, EDIT_GLYPH_PREVIEW_CLASSW, 0, 209, 5, 32, 32 - - DEFPUSHBUTTON "OK", IDOK, 48, 177, 70, 14 - PUSHBUTTON "Отмена", IDCANCEL, 125, 177, 70, 14 -END - -IDM_MAINMENU MENU -BEGIN - POPUP "&Файл" - BEGIN - MENUITEM "&Ðовый\tCtrl+N", ID_FILE_NEW - MENUITEM "&Открыть...\tCtrl+O", ID_FILE_OPEN - MENUITEM "Закрыть", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "Сохранить\tCtrl+S", ID_FILE_SAVE - MENUITEM "Сохранить как...", ID_FILE_SAVE_AS - MENUITEM SEPARATOR - MENUITEM "Выход\tAlt+F4", ID_FILE_EXIT - END - - POPUP "&Правка" - BEGIN - MENUITEM "Копировать\tCtrl+C", ID_EDIT_COPY - MENUITEM "Ð’Ñтавить\tCtrl+V", ID_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "Изменить Ñимвол...", ID_EDIT_GLYPH - END - - POPUP "&Окна" - BEGIN - MENUITEM "&КаÑкадом", ID_WINDOW_CASCADE - MENUITEM "&По горизонтали", ID_WINDOW_TILE_HORZ - MENUITEM "П&о вертикали", ID_WINDOW_TILE_VERT - MENUITEM "&УпорÑдочить значки", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "&Следующее\tCtrl+F6", ID_WINDOW_NEXT - END - - POPUP "&Справка" - BEGIN - MENUITEM "&О программе...", ID_HELP_ABOUT - END -END - -STRINGTABLE -BEGIN - IDS_OPENFILTER, "Ð’Ñе поддерживаемые форматы (*.bin,*.psf)|*.bin;*.psf|Двоичные файлы шрифтов (*.bin)|*.bin|Экранные шрифты PC верÑии 1 (*.psf)|*.psf|" - IDS_SAVEFILTER, "Двоичные файлы шрифтов (*.bin)|*.bin|" - IDS_OPENERROR, "Ошибка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°! (Ошибка номер %1!u!)" - IDS_READERROR, "Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°! (Ошибка номер %1!u!)" - IDS_WRITEERROR, "Ошибка запиÑи файла! (Ошибка номер %1!u!)" - IDS_UNSUPPORTEDFORMAT, "Ðеподдерживаемый формат файла!" - IDS_UNSUPPORTEDPSF, "Ðеподдерживаемый PSF-формат шрифта! Редактор поддерживает только шрифты размером 8x8 без Ñпециальных режимов." - IDS_DOCNAME, "Шрифт %1!u!" - IDS_SAVEPROMPT, "Файл ""%1"" был изменен и Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ были Ñохранены.\n\nСохранить?" - IDS_APPTITLE, "Редактор VGA-шрифтов ReactOS" - IDS_CLOSEEDIT, "ПожалуйÑта, закройте Ñначала вÑе открытые окна редактированиÑ!" - - IDS_TOOLTIP_NEW, "Ðовый" - IDS_TOOLTIP_OPEN, "Открыть" - IDS_TOOLTIP_SAVE, "Сохранить" - IDS_TOOLTIP_EDIT_GLYPH, "Редактировать Ñимвол" - IDS_TOOLTIP_COPY, "Копировать" - IDS_TOOLTIP_PASTE, "Ð’Ñтавить" -END diff --git a/rosapps/applications/devutils/vgafontedit/lang/uk-UA.rc b/rosapps/applications/devutils/vgafontedit/lang/uk-UA.rc deleted file mode 100644 index 5aa136dfa62..00000000000 --- a/rosapps/applications/devutils/vgafontedit/lang/uk-UA.rc +++ /dev/null @@ -1,94 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/lang/uk-UA.rc - * PURPOSE: Ukraianian resource file - * COPYRIGHT: Copyright 2008 Colin Finck - * TRANSLATOR: Artem Reznikov - */ - -LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT - -IDD_ABOUT DIALOGEX 10, 10, 130, 62 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Про програму" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 20, 20 - LTEXT "Редактор VGA-шрифтів ReactOS", IDC_STATIC, 37, 10, 93, 10 - LTEXT "Copyright 2008 Colin Finck", IDC_STATIC, 37, 20, 93, 10 - DEFPUSHBUTTON "OK", IDCANCEL, 40, 44, 55, 15 -END - -IDD_EDITGLYPH DIALOGEX 32768, 32768, 246, 197 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñимвола" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "", IDC_EDIT_GLYPH_TOOLBOX, TOOLBARCLASSNAMEA, CCS_NODIVIDER | CCS_NORESIZE, 5, 5, 24, 82 - CONTROL "", IDC_EDIT_GLYPH_EDIT, EDIT_GLYPH_EDIT_CLASSW, 0, 39, 5, 160, 160 - CONTROL "", IDC_EDIT_GLYPH_PREVIEW, EDIT_GLYPH_PREVIEW_CLASSW, 0, 209, 5, 32, 32 - - DEFPUSHBUTTON "OK", IDOK, 48, 177, 70, 14 - PUSHBUTTON "СкаÑувати", IDCANCEL, 125, 177, 70, 14 -END - -IDM_MAINMENU MENU -BEGIN - POPUP "&Файл" - BEGIN - MENUITEM "&Створити\tCtrl+N", ID_FILE_NEW - MENUITEM "&Відкрити...\tCtrl+O", ID_FILE_OPEN - MENUITEM "&Закрити", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "З&берегти\tCtrl+S", ID_FILE_SAVE - MENUITEM "Зберегти &Ñк...", ID_FILE_SAVE_AS - MENUITEM SEPARATOR - MENUITEM "Ð’&ихід\tAlt+F4", ID_FILE_EXIT - END - - POPUP "&Правка" - BEGIN - MENUITEM "Копіювати\tCtrl+C", ID_EDIT_COPY - MENUITEM "Ð’Ñтавити\tCtrl+V", ID_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "Редагувати Ñимвол...", ID_EDIT_GLYPH - END - - POPUP "&Вікно" - BEGIN - MENUITEM "&КаÑкадом", ID_WINDOW_CASCADE - MENUITEM "&Горизонтально", ID_WINDOW_TILE_HORZ - MENUITEM "&Вертикально", ID_WINDOW_TILE_VERT - MENUITEM "УпорÑдкувати &значки", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "&ÐаÑтупне\tCtrl+F6", ID_WINDOW_NEXT - END - - POPUP "&Довідка" - BEGIN - MENUITEM "&Про програму...", ID_HELP_ABOUT - END -END - -STRINGTABLE -BEGIN - IDS_OPENFILTER, "Ð’ÑÑ– підтримувані формати (*.bin,*.psf)|*.bin;*.psf|Двійкові файли шрифтів (*.bin)|*.bin|Екранні шрифти ПК верÑÑ–Ñ— 1 (*.psf)|*.psf|" - IDS_SAVEFILTER, "Двійкові файли шрифтів (*.bin)|*.bin|" - IDS_OPENERROR, "Помилка при відкритті файлу! (Ðомер помилки %1!u!)" - IDS_READERROR, "Помилка при читанні файлу! (Ðомер помилки %1!u!)" - IDS_WRITEERROR, "Помилка при запиÑу файлу! (Ðомер помилки %1!u!)" - IDS_UNSUPPORTEDFORMAT, "Ðепідтримуваний формат файлу!" - IDS_UNSUPPORTEDPSF, "Ðепідтримуваний формат PSF шрифта! Редактор підтримує тільки шрифти 8x8 без Ñпеціальних режимів." - IDS_DOCNAME, "Шрифт %1!u!" - IDS_SAVEPROMPT, "Файл ""%1"" був змінений, але не збережений.\n\nЗберегти його?" - IDS_APPTITLE, "Редактор VGA-шрифтів ReactOS" - IDS_CLOSEEDIT, "Будь лаÑка закрийте вÑÑ– відкриті вікна Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñпочатку!" - - IDS_TOOLTIP_NEW, "Створити" - IDS_TOOLTIP_OPEN, "Відкрити" - IDS_TOOLTIP_SAVE, "Зберегти" - IDS_TOOLTIP_EDIT_GLYPH, "Редагувати Ñимвол" - IDS_TOOLTIP_COPY, "Копіювати" - IDS_TOOLTIP_PASTE, "Ð’Ñтавити" -END diff --git a/rosapps/applications/devutils/vgafontedit/main.c b/rosapps/applications/devutils/vgafontedit/main.c deleted file mode 100644 index 742cfc4bfa7..00000000000 --- a/rosapps/applications/devutils/vgafontedit/main.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/main.c - * PURPOSE: Main entry point of the application - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#include "precomp.h" - -static const WCHAR szCharacterClipboardFormat[] = L"RosVgaFontChar"; - -HINSTANCE hInstance; -HANDLE hProcessHeap; -PWSTR szAppName; -UINT uCharacterClipboardFormat; - -INT WINAPI -wWinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) -{ - HACCEL hAccel; - INT nRet = 1; - MSG msg; - PMAIN_WND_INFO Info = 0; - - UNREFERENCED_PARAMETER(hPrevInstance); - UNREFERENCED_PARAMETER(lpCmdLine); - - hInstance = hInst; - hProcessHeap = GetProcessHeap(); - - AllocAndLoadString(&szAppName, IDS_APPTITLE); - - hAccel = LoadAcceleratorsW( hInstance, MAKEINTRESOURCEW(IDA_MAINACCELERATORS) ); - - uCharacterClipboardFormat = RegisterClipboardFormatW(szCharacterClipboardFormat); - if(!uCharacterClipboardFormat) - return 1; - - if( InitMainWndClass() && InitFontWndClass() && InitFontBoxesWndClass() && InitEditGlyphWndClasses() ) - { - if( CreateMainWindow(nCmdShow, &Info) ) - { - while( GetMessageW(&msg, NULL, 0, 0) ) - { - if( !TranslateMDISysAccel(Info->hMdiClient, &msg) && - !TranslateAccelerator(Info->hMainWnd, hAccel, &msg) ) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - - nRet = 0; - } - } - - HeapFree(hProcessHeap, 0, szAppName); - - // Just unregister our window classes, don't care whether they were created or not - UnInitEditGlyphWndClasses(); - UnInitFontBoxesWndClass(); - UnInitFontWndClass(); - UnInitMainWndClass(); - - return nRet; -} diff --git a/rosapps/applications/devutils/vgafontedit/mainwnd.c b/rosapps/applications/devutils/vgafontedit/mainwnd.c deleted file mode 100644 index 26fe54cbd67..00000000000 --- a/rosapps/applications/devutils/vgafontedit/mainwnd.c +++ /dev/null @@ -1,586 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/mainwnd.c - * PURPOSE: Implements the main window of the application - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#include "precomp.h" - -static const WCHAR szMainWndClass[] = L"VGAFontEditMainWndClass"; - -static VOID -InitResources(IN PMAIN_WND_INFO Info) -{ - HDC hMemDC; - HDC hMainDC; - HPEN hPen, hPenOld; - RECT rect; - HBITMAP hBitmapOld; - - hMemDC = CreateCompatibleDC(NULL); - hMainDC = GetDC(Info->hMainWnd); - - // Create the "Box" bitmap - Info->hBoxBmp = CreateCompatibleBitmap(hMainDC, CHARACTER_BOX_WIDTH, CHARACTER_BOX_HEIGHT); - hBitmapOld = SelectObject(hMemDC, Info->hBoxBmp); - - rect.left = 0; - rect.top = 0; - rect.right = CHARACTER_INFO_BOX_WIDTH; - rect.bottom = CHARACTER_INFO_BOX_HEIGHT; - FillRect( hMemDC, &rect, (HBRUSH)(COLOR_BTNFACE + 1) ); - - hPenOld = SelectObject( hMemDC, GetStockObject(WHITE_PEN) ); - Rectangle(hMemDC, 0, 0, CHARACTER_INFO_BOX_WIDTH - 1, 2); - Rectangle(hMemDC, 0, 2, 2, CHARACTER_INFO_BOX_HEIGHT - 1); - hPen = SelectObject(hMemDC, hPenOld); - - hPen = CreatePen( PS_SOLID, 1, RGB(128, 128, 128) ); - hPenOld = SelectObject(hMemDC, hPen); - Rectangle(hMemDC, 1, CHARACTER_INFO_BOX_HEIGHT - 2, CHARACTER_INFO_BOX_WIDTH, CHARACTER_INFO_BOX_HEIGHT); - Rectangle(hMemDC, CHARACTER_INFO_BOX_WIDTH - 2, 1, CHARACTER_INFO_BOX_WIDTH, CHARACTER_INFO_BOX_HEIGHT - 2); - - SetPixel( hMemDC, CHARACTER_INFO_BOX_WIDTH - 1, 0, RGB(128, 128, 128) ); - SetPixel( hMemDC, 0, CHARACTER_INFO_BOX_HEIGHT - 1, RGB(128, 128, 128) ); - SelectObject(hMemDC, hBitmapOld); - - hPen = SelectObject(hMemDC, hPenOld); - DeleteObject(hPen); - DeleteDC(hMemDC); - ReleaseDC(Info->hMainWnd, hMainDC); -} - -static VOID -UnInitResources(IN PMAIN_WND_INFO Info) -{ - DeleteObject(Info->hBoxBmp); -} - -static VOID -AddToolbarButton(IN PMAIN_WND_INFO Info, IN INT iBitmap, IN INT idCommand, IN UINT uID) -{ - PWSTR pszTooltip; - TBBUTTON tbb = {0,}; - - if( AllocAndLoadString(&pszTooltip, uID) ) - { - tbb.fsState = TBSTATE_ENABLED; - tbb.iBitmap = iBitmap; - tbb.idCommand = idCommand; - tbb.iString = (INT_PTR)pszTooltip; - - SendMessageW( Info->hToolbar, TB_ADDBUTTONSW, 1, (LPARAM)&tbb ); - HeapFree(hProcessHeap, 0, pszTooltip); - } -} - -static VOID -SetToolbarButtonState(IN PMAIN_WND_INFO Info, INT idCommand, BOOL bEnabled) -{ - TBBUTTONINFOW tbbi = {0,}; - - tbbi.cbSize = sizeof(tbbi); - tbbi.dwMask = TBIF_STATE; - tbbi.fsState = (bEnabled ? TBSTATE_ENABLED : 0); - - SendMessageW(Info->hToolbar, TB_SETBUTTONINFOW, idCommand, (LPARAM)&tbbi); -} - -VOID -SetToolbarFileButtonState(IN PMAIN_WND_INFO Info, BOOL bEnabled) -{ - SetToolbarButtonState(Info, ID_FILE_SAVE, bEnabled); - SetToolbarButtonState(Info, ID_EDIT_GLYPH, bEnabled); - SetToolbarButtonState(Info, ID_EDIT_COPY, bEnabled); -} - -static VOID -AddToolbarSeparator(IN PMAIN_WND_INFO Info) -{ - TBBUTTON tbb = {0,}; - - tbb.fsStyle = BTNS_SEP; - - SendMessageW( Info->hToolbar, TB_ADDBUTTONSW, 1, (LPARAM)&tbb ); -} - -static VOID -InitMainWnd(IN PMAIN_WND_INFO Info) -{ - CLIENTCREATESTRUCT ccs; - INT iCustomBitmaps; - INT iStandardBitmaps; - TBADDBITMAP tbab; - - // Add the toolbar - Info->hToolbar = CreateWindowExW(0, - TOOLBARCLASSNAMEW, - NULL, - WS_VISIBLE | WS_CHILD | TBSTYLE_TOOLTIPS, - 0, - 0, - 0, - 0, - Info->hMainWnd, - NULL, - hInstance, - NULL); - - // Identify the used Common Controls version - SendMessageW(Info->hToolbar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0); - - // Enable Tooltips - SendMessageW(Info->hToolbar, TB_SETMAXTEXTROWS, 0, 0); - - // Add the toolbar bitmaps - tbab.hInst = HINST_COMMCTRL; - tbab.nID = IDB_STD_SMALL_COLOR; - iStandardBitmaps = (INT)SendMessageW(Info->hToolbar, TB_ADDBITMAP, 0, (LPARAM)&tbab); - - tbab.hInst = hInstance; - tbab.nID = IDB_MAIN_TOOLBAR; - iCustomBitmaps = (INT)SendMessageW(Info->hToolbar, TB_ADDBITMAP, 0, (LPARAM)&tbab); - - // Add the toolbar buttons - AddToolbarButton(Info, iStandardBitmaps + STD_FILENEW, ID_FILE_NEW, IDS_TOOLTIP_NEW); - AddToolbarButton(Info, iStandardBitmaps + STD_FILEOPEN, ID_FILE_OPEN, IDS_TOOLTIP_OPEN); - AddToolbarButton(Info, iStandardBitmaps + STD_FILESAVE, ID_FILE_SAVE, IDS_TOOLTIP_SAVE); - AddToolbarSeparator(Info); - AddToolbarButton(Info, iCustomBitmaps + TOOLBAR_EDIT_GLYPH, ID_EDIT_GLYPH, IDS_TOOLTIP_EDIT_GLYPH); - AddToolbarSeparator(Info); - AddToolbarButton(Info, iStandardBitmaps + STD_COPY, ID_EDIT_COPY, IDS_TOOLTIP_COPY); - AddToolbarButton(Info, iStandardBitmaps + STD_PASTE, ID_EDIT_PASTE, IDS_TOOLTIP_PASTE); - - SetToolbarFileButtonState(Info, FALSE); - SetPasteButtonState(Info); - - // Add the MDI client area - ccs.hWindowMenu = GetSubMenu(Info->hMenu, 2); - ccs.idFirstChild = ID_MDI_FIRSTCHILD; - - Info->hMdiClient = CreateWindowExW(WS_EX_CLIENTEDGE, - L"MDICLIENT", - NULL, - WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VSCROLL | WS_HSCROLL, - 0, - 0, - 0, - 0, - Info->hMainWnd, - NULL, - hInstance, - &ccs); - - // Initialize the file handling - FileInitialize(Info->hMainWnd); -} - -static VOID -InitMenuPopup(IN PMAIN_WND_INFO Info) -{ - UINT uState; - - uState = MF_BYCOMMAND | !(Info->CurrentFontWnd); - - EnableMenuItem(Info->hMenu, ID_FILE_CLOSE, uState); - EnableMenuItem(Info->hMenu, ID_FILE_SAVE, uState); - EnableMenuItem(Info->hMenu, ID_FILE_SAVE_AS, uState); - - EnableMenuItem(Info->hMenu, ID_EDIT_COPY, uState); - EnableMenuItem(Info->hMenu, ID_EDIT_GLYPH, uState); - - uState = MF_BYCOMMAND | !(Info->CurrentFontWnd && IsClipboardFormatAvailable(uCharacterClipboardFormat)); - EnableMenuItem(Info->hMenu, ID_EDIT_PASTE, uState); -} - -static VOID -DoFileNew(IN PMAIN_WND_INFO Info) -{ - PFONT_OPEN_INFO OpenInfo; - - OpenInfo = (PFONT_OPEN_INFO) HeapAlloc( hProcessHeap, HEAP_ZERO_MEMORY, sizeof(FONT_OPEN_INFO) ); - OpenInfo->bCreateNew = TRUE; - - CreateFontWindow(Info, OpenInfo); -} - -static VOID -DoFileOpen(IN PMAIN_WND_INFO Info) -{ - PFONT_OPEN_INFO OpenInfo; - - OpenInfo = (PFONT_OPEN_INFO) HeapAlloc( hProcessHeap, HEAP_ZERO_MEMORY, sizeof(FONT_OPEN_INFO) ); - OpenInfo->pszFileName = HeapAlloc(hProcessHeap, 0, MAX_PATH); - OpenInfo->pszFileName[0] = 0; - - if( DoOpenFile(OpenInfo->pszFileName) ) - { - OpenInfo->bCreateNew = FALSE; - CreateFontWindow(Info, OpenInfo); - } -} - -VOID -DoFileSave(IN PMAIN_WND_INFO Info, IN BOOL bSaveAs) -{ - DWORD dwBytesWritten; - HANDLE hFile; - - // Show the "Save" dialog - // - if "Save As" was clicked - // - if the file was not yet saved - // - if another format than the binary format was opened - if(bSaveAs || !Info->CurrentFontWnd->OpenInfo->bBinaryFileOpened) - { - if(!Info->CurrentFontWnd->OpenInfo->pszFileName) - { - Info->CurrentFontWnd->OpenInfo->pszFileName = (PWSTR) HeapAlloc(hProcessHeap, 0, MAX_PATH); - Info->CurrentFontWnd->OpenInfo->pszFileName[0] = 0; - } - else if(!Info->CurrentFontWnd->OpenInfo->bBinaryFileOpened) - { - // For a file in another format, the user has to enter a new file name as well - Info->CurrentFontWnd->OpenInfo->pszFileName[0] = 0; - } - - if( !DoSaveFile(Info->CurrentFontWnd->OpenInfo->pszFileName) ) - return; - } - - // Save the binary font - hFile = CreateFileW(Info->CurrentFontWnd->OpenInfo->pszFileName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - - if(hFile == INVALID_HANDLE_VALUE) - { - LocalizedError( IDS_OPENERROR, GetLastError() ); - return; - } - - if( !WriteFile(hFile, Info->CurrentFontWnd->Font, sizeof(BITMAP_FONT), &dwBytesWritten, NULL) ) - LocalizedError( IDS_WRITEERROR, GetLastError() ); - - CloseHandle(hFile); -} - -static VOID -CopyCurrentGlyph(IN PFONT_WND_INFO FontWndInfo) -{ - HGLOBAL hMem; - PUCHAR pCharacterBits; - - if(!OpenClipboard(NULL)) - return; - - EmptyClipboard(); - - hMem = GlobalAlloc(GMEM_MOVEABLE, 8); - pCharacterBits = GlobalLock(hMem); - RtlCopyMemory(pCharacterBits, FontWndInfo->Font->Bits + FontWndInfo->uSelectedCharacter * 8, 8); - GlobalUnlock(hMem); - - SetClipboardData(uCharacterClipboardFormat, hMem); - - CloseClipboard(); -} - -static VOID -PasteIntoCurrentGlyph(IN PFONT_WND_INFO FontWndInfo) -{ - HGLOBAL hMem; - - if(!IsClipboardFormatAvailable(uCharacterClipboardFormat)) - return; - - if(!OpenClipboard(NULL)) - return; - - hMem = GetClipboardData(uCharacterClipboardFormat); - if(hMem) - { - PUCHAR pCharacterBits; - - pCharacterBits = GlobalLock(hMem); - if(pCharacterBits) - { - RECT CharacterRect; - UINT uFontRow; - UINT uFontColumn; - - RtlCopyMemory(FontWndInfo->Font->Bits + FontWndInfo->uSelectedCharacter * 8, pCharacterBits, 8); - GlobalUnlock(hMem); - - FontWndInfo->OpenInfo->bModified = TRUE; - - GetCharacterPosition(FontWndInfo->uSelectedCharacter, &uFontRow, &uFontColumn); - GetCharacterRect(uFontRow, uFontColumn, &CharacterRect); - InvalidateRect(FontWndInfo->hFontBoxesWnd, &CharacterRect, FALSE); - } - } - - CloseClipboard(); -} - -VOID -SetPasteButtonState(IN PMAIN_WND_INFO Info) -{ - SetToolbarButtonState(Info, - ID_EDIT_PASTE, - (Info->CurrentFontWnd && IsClipboardFormatAvailable(uCharacterClipboardFormat))); -} - -static BOOL -MenuCommand(IN INT nMenuItemID, IN PMAIN_WND_INFO Info) -{ - switch(nMenuItemID) - { - // File Menu - case ID_FILE_NEW: - DoFileNew(Info); - return TRUE; - - case ID_FILE_OPEN: - DoFileOpen(Info); - return TRUE; - - case ID_FILE_CLOSE: - SendMessageW(Info->CurrentFontWnd->hSelf, WM_CLOSE, 0, 0); - return TRUE; - - case ID_FILE_SAVE: - DoFileSave(Info, FALSE); - return TRUE; - - case ID_FILE_SAVE_AS: - DoFileSave(Info, TRUE); - return TRUE; - - case ID_FILE_EXIT: - PostMessage(Info->hMainWnd, WM_CLOSE, 0, 0); - return TRUE; - - // Edit Menu - case ID_EDIT_GLYPH: - EditCurrentGlyph(Info->CurrentFontWnd); - return TRUE; - - case ID_EDIT_COPY: - CopyCurrentGlyph(Info->CurrentFontWnd); - return TRUE; - - case ID_EDIT_PASTE: - PasteIntoCurrentGlyph(Info->CurrentFontWnd); - return TRUE; - - // Window Menu - case ID_WINDOW_TILE_HORZ: - SendMessageW(Info->hMdiClient, WM_MDITILE, MDITILE_HORIZONTAL, 0); - return TRUE; - - case ID_WINDOW_TILE_VERT: - SendMessageW(Info->hMdiClient, WM_MDITILE, MDITILE_VERTICAL, 0); - return TRUE; - - case ID_WINDOW_CASCADE: - SendMessageW(Info->hMdiClient, WM_MDICASCADE, 0, 0); - return TRUE; - - case ID_WINDOW_ARRANGE: - SendMessageW(Info->hMdiClient, WM_MDIICONARRANGE, 0, 0); - return TRUE; - - case ID_WINDOW_NEXT: - SendMessageW(Info->hMdiClient, WM_MDINEXT, 0, 0); - return TRUE; - - // Help Menu - case ID_HELP_ABOUT: - DialogBoxW( hInstance, MAKEINTRESOURCEW(IDD_ABOUT), Info->hMainWnd, AboutDlgProc ); - return TRUE; - } - - return FALSE; -} - -static VOID -MainWndSize(PMAIN_WND_INFO Info, INT cx, INT cy) -{ - HDWP dwp; - INT iMdiTop; - RECT ToolbarRect; - - iMdiTop = 0; - - dwp = BeginDeferWindowPos(2); - if(!dwp) - return; - - if(Info->hToolbar) - { - GetWindowRect(Info->hToolbar, &ToolbarRect); - iMdiTop += ToolbarRect.bottom - ToolbarRect.top; - - dwp = DeferWindowPos(dwp, Info->hToolbar, NULL, 0, 0, cx, ToolbarRect.bottom - ToolbarRect.top, SWP_NOZORDER); - if(!dwp) - return; - } - - if(Info->hMdiClient) - { - dwp = DeferWindowPos(dwp, Info->hMdiClient, NULL, 0, iMdiTop, cx, cy - iMdiTop, SWP_NOZORDER); - if(!dwp) - return; - } - - EndDeferWindowPos(dwp); -} - -static LRESULT CALLBACK -MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - static HWND hNextClipboardViewer; - - PMAIN_WND_INFO Info; - - Info = (PMAIN_WND_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); - - if(Info || uMsg == WM_CREATE) - { - switch(uMsg) - { - case WM_COMMAND: - if( MenuCommand( LOWORD(wParam), Info ) ) - return 0; - - break; - - case WM_CHANGECBCHAIN: - if((HWND)wParam == hNextClipboardViewer) - hNextClipboardViewer = (HWND)lParam; - else - SendMessage(hNextClipboardViewer, uMsg, wParam, lParam); - - return 0; - - case WM_CLOSE: - if(Info->FirstFontWnd) - { - // Send WM_CLOSE to all subwindows, so they can prompt for saving unsaved files - PFONT_WND_INFO pNextWnd; - PFONT_WND_INFO pWnd; - - pWnd = Info->FirstFontWnd; - - do - { - // The pWnd structure might already be destroyed after the WM_CLOSE, so we have to preserve the address of the next window here - pNextWnd = pWnd->NextFontWnd; - - // Send WM_USER_APPCLOSE, so we can check for a custom return value - // In this case, we check if the user clicked the "Cancel" button in one of the prompts and if so, we don't close the app - if( !SendMessage(pWnd->hSelf, WM_USER_APPCLOSE, 0, 0) ) - return 0; - } - while( (pWnd = pNextWnd) ); - } - break; - - case WM_CREATE: - Info = (PMAIN_WND_INFO)( ( (LPCREATESTRUCT)lParam )->lpCreateParams ); - Info->hMainWnd = hwnd; - Info->hMenu = GetMenu(hwnd); - SetWindowLongW(hwnd, GWLP_USERDATA, (LONG)Info); - - hNextClipboardViewer = SetClipboardViewer(hwnd); - - InitMainWnd(Info); - InitResources(Info); - - ShowWindow(hwnd, Info->nCmdShow); - return 0; - - case WM_DESTROY: - UnInitResources(Info); - - HeapFree(hProcessHeap, 0, Info); - SetWindowLongW(hwnd, GWLP_USERDATA, 0); - PostQuitMessage(0); - return 0; - - case WM_DRAWCLIPBOARD: - SetPasteButtonState(Info); - - // Pass the message to the next clipboard window in the chain - SendMessage(hNextClipboardViewer, uMsg, wParam, lParam); - return 0; - - case WM_INITMENUPOPUP: - InitMenuPopup(Info); - break; - - case WM_SIZE: - MainWndSize( Info, LOWORD(lParam), HIWORD(lParam) ); - return 0; - } - } - - if(Info && Info->hMdiClient) - return DefFrameProcW(hwnd, Info->hMdiClient, uMsg, wParam, lParam); - else - return DefWindowProcW(hwnd, uMsg, wParam, lParam); -} - -BOOL -CreateMainWindow(IN INT nCmdShow, OUT PMAIN_WND_INFO* Info) -{ - HWND hMainWnd; - - *Info = (PMAIN_WND_INFO) HeapAlloc( hProcessHeap, HEAP_ZERO_MEMORY, sizeof(MAIN_WND_INFO) ); - - if(*Info) - { - (*Info)->nCmdShow = nCmdShow; - - hMainWnd = CreateWindowExW(0, - szMainWndClass, - szAppName, - WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - NULL, - LoadMenuW(hInstance, MAKEINTRESOURCEW(IDM_MAINMENU)), - hInstance, - *Info); - - if(hMainWnd) - return TRUE; - else - HeapFree(hProcessHeap, 0, *Info); - } - - return FALSE; -} - -BOOL -InitMainWndClass(VOID) -{ - WNDCLASSW wc = {0,}; - - wc.lpfnWndProc = MainWndProc; - wc.hInstance = hInstance; - wc.hCursor = LoadCursor( NULL, IDC_ARROW ); - wc.hIcon = LoadIconW( hInstance, MAKEINTRESOURCEW(IDI_MAIN) ); - wc.hbrBackground = (HBRUSH)( COLOR_BTNFACE + 1 ); - wc.lpszClassName = szMainWndClass; - - return RegisterClassW(&wc) != 0; -} - -VOID -UnInitMainWndClass(VOID) -{ - UnregisterClassW(szMainWndClass, hInstance); -} diff --git a/rosapps/applications/devutils/vgafontedit/misc.c b/rosapps/applications/devutils/vgafontedit/misc.c deleted file mode 100644 index 1d256b75a4b..00000000000 --- a/rosapps/applications/devutils/vgafontedit/misc.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 only - * FILE: devutils/vgafontedit/misc.c - * PURPOSE: Some miscellaneous resource functions (copied from "devmgmt") and modified - * COPYRIGHT: Copyright 2006 Ged Murphy - * Copyright 2008 Colin Finck - */ - -#include "precomp.h" - -static INT -LengthOfStrResource(IN UINT uID) -{ - HRSRC hrSrc; - HGLOBAL hRes; - PWSTR lpName, lpStr; - - /* There are always blocks of 16 strings */ - lpName = (PWSTR) MAKEINTRESOURCEW((uID >> 4) + 1); - - /* Find the string table block */ - if ((hrSrc = FindResourceW(hInstance, lpName, (PWSTR)RT_STRING)) != 0 && - (hRes = LoadResource(hInstance, hrSrc)) != 0 && - (lpStr = (PWSTR)LockResource(hRes)) != 0) - { - UINT x; - - /* Find the string we're looking for */ - uID &= 0xF; /* position in the block, same as % 16 */ - - for (x = 0; x < uID; x++) - lpStr += (*lpStr) + 1; - - /* Found the string */ - return (int)(*lpStr); - } - - return -1; -} - -INT -AllocAndLoadString(OUT PWSTR *lpTarget, IN UINT uID) -{ - INT ln; - - ln = LengthOfStrResource(uID); - - if (ln++ > 0) - { - (*lpTarget) = (PWSTR) HeapAlloc( hProcessHeap, 0, ln * sizeof(WCHAR) ); - - if (*lpTarget) - { - INT nRet; - - nRet = LoadStringW(hInstance, uID, *lpTarget, ln); - - if (!nRet) - HeapFree(hProcessHeap, 0, *lpTarget); - - return nRet; - } - } - - return 0; -} - -static DWORD -VarListLoadAndFormatString(IN UINT uID, OUT PWSTR *lpTarget, IN va_list* Args) -{ - DWORD Ret = 0; - PWSTR lpFormat; - - if (AllocAndLoadString(&lpFormat, uID) > 0) - { - /* let's use FormatMessage to format it because it has the ability to allocate - memory automatically */ - Ret = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, - lpFormat, - 0, - 0, - (LPWSTR)lpTarget, - 0, - Args); - - HeapFree(hProcessHeap, 0, lpFormat); - } - - return Ret; -} - -DWORD -LoadAndFormatString(IN UINT uID, OUT PWSTR *lpTarget, ...) -{ - DWORD Ret; - va_list Args; - - va_start(Args, lpTarget); - Ret = VarListLoadAndFormatString(uID, lpTarget, &Args); - va_end(Args); - - return Ret; -} - -VOID -LocalizedError(IN UINT uID, ...) -{ - PWSTR pszError; - va_list Args; - - va_start(Args, uID); - VarListLoadAndFormatString(uID, &pszError, &Args); - va_end(Args); - - MessageBoxW(NULL, pszError, szAppName, MB_ICONERROR); - HeapFree(hProcessHeap, 0, pszError); -} diff --git a/rosapps/applications/devutils/vgafontedit/opensave.c b/rosapps/applications/devutils/vgafontedit/opensave.c deleted file mode 100644 index a5c54f71453..00000000000 --- a/rosapps/applications/devutils/vgafontedit/opensave.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/opensave.c - * PURPOSE: Functions for opening and saving files - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#include "precomp.h" - -static OPENFILENAMEW ofn; - -VOID -FileInitialize(IN HWND hwnd) -{ - ZeroMemory( &ofn, sizeof(ofn) ); - ofn.lStructSize = sizeof(ofn); - ofn.hwndOwner = hwnd; - ofn.nMaxFile = MAX_PATH; - ofn.lpstrDefExt = L"bin"; -} - -static __inline VOID -PrepareFilter(IN PWSTR pszFilter) -{ - // RC strings can't be double-null terminated, so we use | instead to separate the entries. - // Convert them back to null characters here. - do - { - if(*pszFilter == '|') - *pszFilter = 0; - } - while(*++pszFilter); -} - -BOOL -DoOpenFile(OUT PWSTR pszFileName) -{ - BOOL bRet; - PWSTR pszFilter; - - if( AllocAndLoadString(&pszFilter, IDS_OPENFILTER) ) - { - PrepareFilter(pszFilter); - ofn.lpstrFilter = pszFilter; - ofn.lpstrFile = pszFileName; - ofn.Flags = OFN_FILEMUSTEXIST; - - bRet = GetOpenFileNameW(&ofn); - HeapFree(hProcessHeap, 0, pszFilter); - - return bRet; - } - - return FALSE; -} - -BOOL -DoSaveFile(IN OUT PWSTR pszFileName) -{ - BOOL bRet; - PWSTR pszFilter; - - if( AllocAndLoadString(&pszFilter, IDS_SAVEFILTER) ) - { - PrepareFilter(pszFilter); - ofn.lpstrFilter = pszFilter; - ofn.lpstrFile = pszFileName; - - bRet = GetSaveFileNameW(&ofn); - HeapFree(hProcessHeap, 0, pszFilter); - - return bRet; - } - - return FALSE; -} diff --git a/rosapps/applications/devutils/vgafontedit/precomp.h b/rosapps/applications/devutils/vgafontedit/precomp.h deleted file mode 100644 index c86441e2142..00000000000 --- a/rosapps/applications/devutils/vgafontedit/precomp.h +++ /dev/null @@ -1,170 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/precomp.h - * PURPOSE: Main header - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#ifndef __PRECOMP_H -#define __PRECOMP_H - -#include -#include -#include -#include "resource.h" -#include "customwndclasses.h" - -// Forward declarations -typedef struct _FONT_WND_INFO FONT_WND_INFO, *PFONT_WND_INFO; -typedef struct _EDIT_GLYPH_INFO EDIT_GLYPH_INFO, *PEDIT_GLYPH_INFO; - -// Structure declarations -typedef struct _BITMAP_FONT -{ - UCHAR Bits[2048]; -} BITMAP_FONT, *PBITMAP_FONT; - -typedef struct _MAIN_WND_INFO -{ - HWND hMainWnd; - HWND hMdiClient; - HMENU hMenu; - HWND hToolbar; - INT nCmdShow; - - HBITMAP hBoxBmp; - PFONT_WND_INFO CurrentFontWnd; - ULONG uDocumentCounter; - - PFONT_WND_INFO FirstFontWnd; - PFONT_WND_INFO LastFontWnd; -} MAIN_WND_INFO, *PMAIN_WND_INFO; - -typedef struct _FONT_OPEN_INFO -{ - BOOL bCreateNew; - BOOL bBinaryFileOpened; - BOOL bModified; - PWSTR pszFileName; -} FONT_OPEN_INFO, *PFONT_OPEN_INFO; - -struct _FONT_WND_INFO -{ - PMAIN_WND_INFO MainWndInfo; - PFONT_OPEN_INFO OpenInfo; - PBITMAP_FONT Font; - - HWND hSelf; - HWND hFontBoxesWnd; - UINT uSelectedCharacter; - - PFONT_WND_INFO PrevFontWnd; - PFONT_WND_INFO NextFontWnd; - - PEDIT_GLYPH_INFO FirstEditGlyphWnd; - PEDIT_GLYPH_INFO LastEditGlyphWnd; -}; - -struct _EDIT_GLYPH_INFO -{ - PFONT_WND_INFO FontWndInfo; - - UINT uCharacter; - UCHAR CharacterBits[8]; - - HWND hSelf; - HWND hEdit; - HWND hPreview; - LONG lEditSpacing; - - PEDIT_GLYPH_INFO PrevEditGlyphWnd; - PEDIT_GLYPH_INFO NextEditGlyphWnd; -}; - -#define ID_MDI_FIRSTCHILD 50000 - -// Dimensions of the visual elements -#define CHARACTER_INFO_BOX_WIDTH 55 -#define CHARACTER_INFO_BOX_HEIGHT 16 -#define CHARACTER_BITMAP_BOX_HEIGHT 14 -#define CHARACTER_BOX_WIDTH (CHARACTER_INFO_BOX_WIDTH) -#define CHARACTER_BOX_HEIGHT (CHARACTER_INFO_BOX_HEIGHT + CHARACTER_BITMAP_BOX_HEIGHT) -#define CHARACTER_BOX_PADDING 5 -#define FONT_BOXES_WND_WIDTH (CHARACTER_BOX_WIDTH * 16 + CHARACTER_BOX_PADDING * 15) -#define FONT_BOXES_WND_HEIGHT (CHARACTER_BOX_HEIGHT * 16 + CHARACTER_BOX_PADDING * 15) -#define FONT_WND_MIN_WIDTH (FONT_BOXES_WND_WIDTH + 25) -#define FONT_WND_MIN_HEIGHT (FONT_BOXES_WND_HEIGHT + GetSystemMetrics(SM_CYCAPTION) + 25) - -// Custom return values -#define HITTEST_SEPARATOR -1 - -// Custom window messages -#define WM_USER_APPCLOSE (WM_USER + 1) - -// Bitmap numbers -#define TOOLBAR_EDIT_GLYPH 0 -#define TOOLBOX_PEN 0 - -// PSFv1 file handling -#define PSF1_MAGIC0 0x36 -#define PSF1_MAGIC1 0x04 - -typedef struct _PSF1_HEADER -{ - UCHAR uMagic[2]; - UCHAR uMode; - UCHAR uCharSize; -} PSF1_HEADER, *PPSF1_HEADER; - - -// -// Function prototypes -// - -// aboutdlg.c -INT_PTR CALLBACK AboutDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); - -// editglyphdlg.c -INT_PTR CALLBACK EditGlyphDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); -BOOL InitEditGlyphWndClasses(VOID); -VOID UnInitEditGlyphWndClasses(VOID); - -// fontboxeswnd.c -VOID CreateFontBoxesWindow(PFONT_WND_INFO FontWndInfo); -BOOL InitFontBoxesWndClass(VOID); -VOID UnInitFontBoxesWndClass(VOID); -VOID GetCharacterRect(IN UINT uFontRow, IN UINT uFontColumn, OUT LPRECT CharacterRect); -__inline VOID GetCharacterPosition(IN UINT uCharacter, OUT PUINT uFontRow, OUT PUINT uFontColumn); -VOID EditCurrentGlyph(PFONT_WND_INFO FontWndInfo); - -// fontwnd.c -BOOL CreateFontWindow(PMAIN_WND_INFO MainWndInfo, PFONT_OPEN_INFO OpenInfo); -BOOL InitFontWndClass(VOID); -VOID UnInitFontWndClass(VOID); - -// main.c -extern PWSTR szAppName; -extern HINSTANCE hInstance; -extern HANDLE hProcessHeap; -extern UINT uCharacterClipboardFormat; - -// mainwnd.c -BOOL CreateMainWindow(IN INT nCmdShow, OUT PMAIN_WND_INFO* Info); -BOOL InitMainWndClass(VOID); -VOID UnInitMainWndClass(VOID); -VOID DoFileSave(IN PMAIN_WND_INFO Info, IN BOOL bSaveAs); -VOID SetToolbarFileButtonState(IN PMAIN_WND_INFO Info, BOOL bEnabled); -VOID SetPasteButtonState(IN PMAIN_WND_INFO Info); - -// misc.c -INT AllocAndLoadString(OUT PWSTR *lpTarget, IN UINT uID); -DWORD LoadAndFormatString(IN UINT uID, OUT PWSTR *lpTarget, ...); -VOID LocalizedError(IN UINT uID, ...); - -// opensave.c -VOID FileInitialize(HWND hwnd); -BOOL DoOpenFile(OUT PWSTR pszFileName); -BOOL DoSaveFile(IN PWSTR pszFileName); - -#endif diff --git a/rosapps/applications/devutils/vgafontedit/res/doc.ico b/rosapps/applications/devutils/vgafontedit/res/doc.ico deleted file mode 100644 index 3c4eaf6e6ac..00000000000 Binary files a/rosapps/applications/devutils/vgafontedit/res/doc.ico and /dev/null differ diff --git a/rosapps/applications/devutils/vgafontedit/res/main.ico b/rosapps/applications/devutils/vgafontedit/res/main.ico deleted file mode 100644 index bb7ca2bc8b2..00000000000 Binary files a/rosapps/applications/devutils/vgafontedit/res/main.ico and /dev/null differ diff --git a/rosapps/applications/devutils/vgafontedit/res/toolbar.bmp b/rosapps/applications/devutils/vgafontedit/res/toolbar.bmp deleted file mode 100644 index df58307b34b..00000000000 Binary files a/rosapps/applications/devutils/vgafontedit/res/toolbar.bmp and /dev/null differ diff --git a/rosapps/applications/devutils/vgafontedit/res/toolbox.bmp b/rosapps/applications/devutils/vgafontedit/res/toolbox.bmp deleted file mode 100644 index 481b5e19f54..00000000000 Binary files a/rosapps/applications/devutils/vgafontedit/res/toolbox.bmp and /dev/null differ diff --git a/rosapps/applications/devutils/vgafontedit/resource.h b/rosapps/applications/devutils/vgafontedit/resource.h deleted file mode 100644 index a4e1f347574..00000000000 --- a/rosapps/applications/devutils/vgafontedit/resource.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/resource.h - * PURPOSE: Header containing resource IDs - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#ifndef __RESOURCE_H -#define __RESOURCE_H - -#define IDC_STATIC -1 - -// Icons -#define IDI_MAIN 100 -#define IDI_DOC 101 - -// Accelerator Tables -#define IDA_MAINACCELERATORS 201 - -// Menus -#define IDM_MAINMENU 301 - -// Bitmaps -#define IDB_MAIN_TOOLBAR 401 -#define IDB_EDIT_GLYPH_TOOLBOX 402 - -// Dialogs -#define IDD_ABOUT 501 -#define IDD_EDITGLYPH 502 - -// Dialog Controls -#define IDC_EDIT_GLYPH_TOOLBOX 601 -#define IDC_EDIT_GLYPH_EDIT 602 -#define IDC_EDIT_GLYPH_PREVIEW 603 - -// Command IDs -#define ID_FILE_NEW 1001 -#define ID_FILE_OPEN 1002 -#define ID_FILE_CLOSE 1003 -#define ID_FILE_SAVE 1004 -#define ID_FILE_SAVE_AS 1005 -#define ID_FILE_EXIT 1006 - -#define ID_EDIT_GLYPH 2001 -#define ID_EDIT_COPY 2002 -#define ID_EDIT_PASTE 2003 - -#define ID_WINDOW_TILE_HORZ 3001 -#define ID_WINDOW_TILE_VERT 3002 -#define ID_WINDOW_CASCADE 3003 -#define ID_WINDOW_NEXT 3004 -#define ID_WINDOW_ARRANGE 3005 - -#define ID_HELP_ABOUT 4001 - -#define ID_TOOLBOX_PEN 5001 - -// Strings -#define IDS_OPENFILTER 10001 -#define IDS_SAVEFILTER 10002 -#define IDS_OPENERROR 10003 -#define IDS_READERROR 10004 -#define IDS_WRITEERROR 10005 -#define IDS_UNSUPPORTEDFORMAT 10006 -#define IDS_UNSUPPORTEDPSF 10007 -#define IDS_DOCNAME 10008 -#define IDS_SAVEPROMPT 10009 -#define IDS_APPTITLE 10010 -#define IDS_CLOSEEDIT 10011 - -#define IDS_TOOLTIP_NEW 11001 -#define IDS_TOOLTIP_OPEN 11002 -#define IDS_TOOLTIP_SAVE 11003 -#define IDS_TOOLTIP_EDIT_GLYPH 11004 -#define IDS_TOOLTIP_COPY 11005 -#define IDS_TOOLTIP_PASTE 11006 - -#endif diff --git a/rosapps/applications/devutils/vgafontedit/rsrc.rc b/rosapps/applications/devutils/vgafontedit/rsrc.rc deleted file mode 100644 index 826608bddb9..00000000000 --- a/rosapps/applications/devutils/vgafontedit/rsrc.rc +++ /dev/null @@ -1,45 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/rsrc.rc - * PURPOSE: Localized resource file - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#include -#include "resource.h" -#include "customwndclasses.h" - -/* include localised resources */ -// UTF-8 -#pragma code_page(65001) -#ifdef LANGUAGE_BG_BG - #include "lang/bg-BG.rc" -#endif -#ifdef LANGUAGE_DE_DE - #include "lang/de-DE.rc" -#endif -#ifdef LANGUAGE_EN_US - #include "lang/en-US.rc" -#endif -#ifdef LANGUAGE_ES_ES - #include "lang/es-ES.rc" -#endif -#ifdef LANGUAGE_FR_FR - #include "lang/fr-FR.rc" -#endif -#ifdef LANGUAGE_IT_IT - #include "lang/it-IT.rc" -#endif -#ifdef LANGUAGE_NO_NO - #include "lang/no-NO.rc" -#endif -#ifdef LANGUAGE_PL_PL - #include "lang/pl-PL.rc" -#endif -#ifdef LANGUAGE_RU_RU - #include "lang/ru-RU.rc" -#endif -#ifdef LANGUAGE_UK_UA - #include "lang/uk-UA.rc" -#endif diff --git a/rosapps/applications/devutils/vgafontedit/vgafontedit.rbuild b/rosapps/applications/devutils/vgafontedit/vgafontedit.rbuild deleted file mode 100644 index 801d2a6157a..00000000000 --- a/rosapps/applications/devutils/vgafontedit/vgafontedit.rbuild +++ /dev/null @@ -1,18 +0,0 @@ - - . - - user32 - gdi32 - comdlg32 - - aboutdlg.c - editglyphdlg.c - fontboxeswnd.c - fontwnd.c - main.c - vgafontedit.rc - mainwnd.c - misc.c - opensave.c - precomp.h - diff --git a/rosapps/applications/devutils/vgafontedit/vgafontedit.rc b/rosapps/applications/devutils/vgafontedit/vgafontedit.rc deleted file mode 100644 index 154ae24fe82..00000000000 --- a/rosapps/applications/devutils/vgafontedit/vgafontedit.rc +++ /dev/null @@ -1,35 +0,0 @@ -/* - * PROJECT: ReactOS VGA Font Editor - * LICENSE: GNU General Public License Version 2.0 or any later version - * FILE: devutils/vgafontedit/vgafontedit.rc - * PURPOSE: Main resource file - * COPYRIGHT: Copyright 2008 Colin Finck - */ - -#include -#include -#include "resource.h" - -/* define language neutral resources */ -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL - -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS VGA Font Editor" -#define REACTOS_STR_INTERNAL_NAME "vgafontedit" -#define REACTOS_STR_ORIGINAL_FILENAME "vgafontedit.exe" -#include - -IDA_MAINACCELERATORS ACCELERATORS -BEGIN - "N", ID_FILE_NEW, VIRTKEY, CONTROL - "O", ID_FILE_OPEN, VIRTKEY, CONTROL - "S", ID_FILE_SAVE, VIRTKEY, CONTROL - "C", ID_EDIT_COPY, VIRTKEY, CONTROL - "V", ID_EDIT_PASTE, VIRTKEY, CONTROL -END - -IDB_MAIN_TOOLBAR BITMAP "res/toolbar.bmp" -IDB_EDIT_GLYPH_TOOLBOX BITMAP "res/toolbox.bmp" -IDI_MAIN ICON "res/main.ico" -IDI_DOC ICON "res/doc.ico" - -#include "rsrc.rc" diff --git a/rosapps/applications/fraginator/DefragDialog.cpp b/rosapps/applications/fraginator/DefragDialog.cpp deleted file mode 100644 index fd103f2a519..00000000000 --- a/rosapps/applications/fraginator/DefragDialog.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include "DefragDialog.h" -#include "Defragment.h" -#include "resource.h" - - -void UpdateDefragInfo (HWND Dlg) -{ - Defragment *Defrag; - HWND PercentItem; - char PercentText[100]; - - Defrag = (Defragment *) GetWindowLongPtr (Dlg, GWLP_USERDATA); - - sprintf (PercentText, "%6.2f%%", Defrag->GetStatusPercent()); - PercentItem = GetDlgItem (Dlg, IDC_PERCENT); - SendMessage (GetDlgItem (Dlg, IDC_PERCENT), WM_SETTEXT, 0, (LPARAM) PercentText); - SendMessage (GetDlgItem (Dlg, IDC_STATUS_TEXT), WM_SETTEXT, 0, (LPARAM) Defrag->GetStatusString().c_str()); - - return; -} - - -INT_PTR CALLBACK DefragDialogProc (HWND Dlg, UINT Msg, WPARAM WParam, LPARAM LParam) -{ - switch (Msg) - { - case WM_INITDIALOG: - SetWindowLongPtr (Dlg, GWLP_USERDATA, (LONG_PTR)LParam); - UpdateDefragInfo (Dlg); - return (1); - - case WM_UPDATEINFO: - UpdateDefragInfo (Dlg); - return (1); - } - - return (0); -} diff --git a/rosapps/applications/fraginator/Defragment.cpp b/rosapps/applications/fraginator/Defragment.cpp deleted file mode 100644 index 19984489a76..00000000000 --- a/rosapps/applications/fraginator/Defragment.cpp +++ /dev/null @@ -1,458 +0,0 @@ -#include "Defragment.h" - - -// Ahh yes I ripped this from my old Findupes project :) -// Fits a path name, composed of a path (i.e. "c:\blah\blah\cha\cha") and a filename ("stuff.txt") -// and fits it to a given length. If it has to truncate it will first truncate from the path, -// substituting in periods. So you might end up with something like: -// C:\Program Files\Micro...\Register.exe -int FitName (wchar_t *destination, const wchar_t *path, const wchar_t *filename, uint32 totalWidth) -{ - uint32 pathLen=0; - uint32 fnLen=0; - uint32 halfTotLen=0; - uint32 len4fn=0; /* number of chars remaining for filename after path is applied */ - uint32 len4path=0; /* number of chars for path before filename is applied */ - wchar_t fmtStrPath[20]=L""; - wchar_t fmtStrFile[20]=L""; - wchar_t fmtString[40]=L""; - - /* - assert (destination != NULL); - assert (path != NULL); - assert (filename != NULL); - assert (totalWidth != 0); - */ - - pathLen = wcslen(path); - fnLen = wcslen(filename); - if (!(totalWidth % 2)) - halfTotLen=totalWidth / 2; - else - halfTotLen=(totalWidth-1) / 2; /* -1 because otherwise (halfTotLen*2) == -(totalWidth+1) which wouldn't be good */ - - /* determine how much width the path and filename each get */ - if ( (pathLen >= halfTotLen) && (fnLen < halfTotLen) ) - { - len4fn = fnLen; - len4path = (totalWidth - len4fn); - } - - if ( (pathLen < halfTotLen) && (fnLen < halfTotLen) ) - { - len4fn = fnLen; - len4path = pathLen; - } - - if ( (pathLen >= halfTotLen) && (fnLen >= halfTotLen) ) - { - len4fn = halfTotLen; - len4path = halfTotLen; - } - - if ( (pathLen < halfTotLen) && (fnLen >= halfTotLen) ) - { - len4path = pathLen; - len4fn = (totalWidth - len4path); - } - /* - if halfTotLen was adjusted above to avoid a rounding error, give the - extra wchar_t to the filename - */ - if (halfTotLen < (totalWidth/2)) len4path++; - - if (pathLen > len4path) swprintf (fmtStrPath, L"%%.%ds...\\", len4path-4); - else - swprintf (fmtStrPath, L"%%s"); - - if (fnLen > len4fn) swprintf (fmtStrFile, L"%%.%ds...", len4fn-3); - else - swprintf (fmtStrFile, L"%%s"); - - wcscpy (fmtString, fmtStrPath); - wcscat (fmtString, fmtStrFile); - /*swprintf (fmtString, L"%s%s", fmtStrPath, fmtStrFile);*/ - swprintf (destination, fmtString, path,filename); - - return (1); -} - -Defragment::Defragment (wstring Name, DefragType DefragMethod) -{ - Method = DefragMethod; - DoLimitLength = true; - Error = false; - Done = false; - PleaseStop = false; - PleasePause = false; - DriveName = Name; - StatusPercent = 0.0f; - LastBMPUpdate = GetTickCount (); - - SetStatusString (L"Opening volume " + Name); - if (!Volume.Open (Name)) - { - SetStatusString (L"Error opening volume " + Name); - Error = true; - Done = true; - StatusPercent = 100.0f; - } - - return; -} - - -Defragment::~Defragment () -{ - if (!IsDoneYet ()) - { - Stop (); - while (!IsDoneYet() && !HasError()) - { - SetStatusString (L"Waiting for thread to stop ..."); - Sleep (150); - } - } - - Volume.Close (); - return; -} - - -void Defragment::SetStatusString (wstring NewStatus) -{ - Lock (); - StatusString = NewStatus; - Unlock (); - - return; -} - - -wstring Defragment::GetStatusString (void) -{ - wstring ReturnVal; - - Lock (); - ReturnVal = StatusString; - Unlock (); - - return (ReturnVal); -} - - -double Defragment::GetStatusPercent (void) -{ - return (StatusPercent); -} - - -bool Defragment::IsDoneYet (void) -{ - return (Done); -} - - -void Defragment::Start (void) -{ - uint32 i; - uint64 FirstFreeLCN; - uint64 TotalClusters; - uint64 ClustersProgress; - wchar_t PrintName[80]; - int Width = 70; - - if (Error) - goto DoneDefrag; - - // First thing: build a file list. - SetStatusString (L"Getting volume bitmap"); - if (!Volume.GetBitmap()) - { - SetStatusString (L"Could not get volume " + DriveName + L" bitmap"); - Error = true; - goto DoneDefrag; - } - - LastBMPUpdate = GetTickCount (); - - if (PleaseStop) - goto DoneDefrag; - - SetStatusString (L"Obtaining volume geometry"); - if (!Volume.ObtainInfo ()) - { - SetStatusString (L"Could not obtain volume " + DriveName + L" geometry"); - Error = true; - goto DoneDefrag; - } - - if (PleaseStop) - goto DoneDefrag; - - SetStatusString (L"Building file database for volume " + DriveName); - if (!Volume.BuildFileList (PleaseStop, StatusPercent)) - { - SetStatusString (L"Could not build file database for volume " + DriveName); - Error = true; - goto DoneDefrag; - } - - if (PleaseStop) - goto DoneDefrag; - - SetStatusString (L"Analyzing database for " + DriveName); - TotalClusters = 0; - for (i = 0; i < Volume.GetDBFileCount(); i++) - { - TotalClusters += Volume.GetDBFile(i).Clusters; - } - - // Defragment! - ClustersProgress = 0; - - // Find first free LCN for speedier searches ... - Volume.FindFreeRange (0, 1, FirstFreeLCN); - - if (PleaseStop) - goto DoneDefrag; - - // Analyze? - if (Method == DefragAnalyze) - { - uint32 j; - - Report.RootPath = Volume.GetRootPath (); - - Report.FraggedFiles.clear (); - Report.UnfraggedFiles.clear (); - Report.UnmovableFiles.clear (); - - Report.FilesCount = Volume.GetDBFileCount () - Volume.GetDBDirCount (); - Report.DirsCount = Volume.GetDBDirCount (); - Report.DiskSizeBytes = Volume.GetVolumeInfo().TotalBytes; - - Report.FilesSizeClusters = 0; - Report.FilesSlackBytes = 0; - Report.FilesSizeBytes = 0; - Report.FilesFragments = 0; - - for (j = 0; j < Volume.GetDBFileCount(); j++) - { - FileInfo Info; - - Info = Volume.GetDBFile (j); - - Report.FilesFragments += max ((size_t)1, Info.Fragments.size()); // add 1 fragment even for 0 bytes/0 cluster files - - if (Info.Attributes.Process == 0) - continue; - - SetStatusString (Volume.GetDBDir (Info.DirIndice) + Info.Name); - - Report.FilesSizeClusters += Info.Clusters; - Report.FilesSizeBytes += Info.Size; - - if (Info.Attributes.Unmovable == 1) - Report.UnmovableFiles.push_back (j); - - if (Info.Fragments.size() > 1) - Report.FraggedFiles.push_back (j); - else - Report.UnfraggedFiles.push_back (j); - - StatusPercent = ((double)j / (double)Report.FilesCount) * 100.0f; - } - - Report.FilesSizeOnDisk = Report.FilesSizeClusters * (uint64)Volume.GetVolumeInfo().ClusterSize; - Report.FilesSlackBytes = Report.FilesSizeOnDisk - Report.FilesSizeBytes; - Report.AverageFragments = (double)Report.FilesFragments / (double)Report.FilesCount; - Report.PercentFragged = 100.0f * ((double)(signed)Report.FraggedFiles.size() / (double)(signed)Report.FilesCount); - - uint64 Percent; - Percent = (10000 * Report.FilesSlackBytes) / Report.FilesSizeOnDisk; - Report.PercentSlack = (double)(signed)Percent / 100.0f; - } - else - // Go through all the files and ... defragment them! - for (i = 0; i < Volume.GetDBFileCount(); i++) - { - FileInfo Info; - bool Result; - uint64 TargetLCN; - uint64 PreviousClusters; - - // What? They want us to pause? Oh ok. - if (PleasePause) - { - SetStatusString (L"Paused"); - PleasePause = false; - - while (PleasePause == false) - { - Sleep (50); - } - - PleasePause = false; - } - - if (PleaseStop) - { - SetStatusString (L"Stopping"); - break; - } - - // - Info = Volume.GetDBFile (i); - - PreviousClusters = ClustersProgress; - ClustersProgress += Info.Clusters; - - if (Info.Attributes.Process == 0) - continue; - - if (!DoLimitLength) - SetStatusString (Volume.GetDBDir (Info.DirIndice) + Info.Name); - else - { - FitName (PrintName, Volume.GetDBDir (Info.DirIndice).c_str(), Info.Name.c_str(), Width); - SetStatusString (PrintName); - } - - // Calculate percentage complete - StatusPercent = 100.0f * double((double)PreviousClusters / (double)TotalClusters); - - // Can't defrag directories yet - if (Info.Attributes.Directory == 1) - continue; - - // Can't defrag 0 byte files :) - if (Info.Fragments.empty()) - continue; - - // If doing fast defrag, skip non-fragmented files - // Note: This assumes that the extents stored in Info.Fragments - // are consolidated. I.e. we assume it is NOT the case that - // two extents account for a sequential range of (non- - // fragmented) clusters. - if (Info.Fragments.size() == 1 && Method == DefragFast) - continue; - - // Otherwise, defrag0rize it! - int Retry = 3; // retry a few times - while (Retry > 0) - { - // Find a place that can fit the file - Result = Volume.FindFreeRange (FirstFreeLCN, Info.Clusters, TargetLCN); - - // If yes, try moving it - if (Result) - { - // If we're doing an extensive defrag and the file is already defragmented - // and if its new location would be after its current location, don't - // move it. - if (Method == DefragExtensive && Info.Fragments.size() == 1 && - TargetLCN > Info.Fragments[0].StartLCN) - { - Retry = 1; - } - else - { - if (Volume.MoveFileDumb (i, TargetLCN)) - { - Retry = 1; // yay, all done with this file. - Volume.FindFreeRange (0, 1, FirstFreeLCN); - } - } - } - - // New: Only update bitmap if it's older than 15 seconds - if ((GetTickCount() - LastBMPUpdate) < 15000) - Retry = 1; - else - if (!Result || Retry != 1) - { // hmm. Wait for a moment, then update the drive bitmap - //SetStatusString (L"(Reobtaining volume " + DriveName + L" bitmap)"); - - if (!DoLimitLength) - { - SetStatusString (GetStatusString() + wstring (L" .")); - } - - if (Volume.GetBitmap ()) - { - LastBMPUpdate = GetTickCount (); - - if (!DoLimitLength) - SetStatusString (Volume.GetDBDir (Info.DirIndice) + Info.Name); - else - SetStatusString (PrintName); - - Volume.FindFreeRange (0, 1, FirstFreeLCN); - } - else - { - SetStatusString (L"Could not re-obtain volume " + DriveName + L" bitmap"); - Error = true; - } - } - - Retry--; - } - - if (Error == true) - break; - } - -DoneDefrag: - wstring OldStatus; - - OldStatus = GetStatusString (); - StatusPercent = 99.999999f; - SetStatusString (L"Closing volume " + DriveName); - Volume.Close (); - StatusPercent = 100.0f; - - // If there was an error then the wstring has already been set - if (Error) - SetStatusString (OldStatus); - else - if (PleaseStop) - SetStatusString (L"Volume " + DriveName + L" defragmentation was stopped"); - else - SetStatusString (L"Finished defragmenting " + DriveName); - - Done = true; - - return; -} - - -void Defragment::TogglePause (void) -{ - Lock (); - SetStatusString (L"Pausing ..."); - PleasePause = true; - Unlock (); - - return; -} - - -void Defragment::Stop (void) -{ - Lock (); - SetStatusString (L"Stopping ..."); - PleaseStop = true; - Unlock (); - - return; -} - - -bool Defragment::HasError (void) -{ - return (Error); -} - diff --git a/rosapps/applications/fraginator/Defragment.h b/rosapps/applications/fraginator/Defragment.h deleted file mode 100644 index 4706f2856f5..00000000000 --- a/rosapps/applications/fraginator/Defragment.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************** - - Defragment - -*****************************************************************************/ - - -#ifndef DEFRAGMENT_H -#define DEFRAGMENT_H - - -#include "Unfrag.h" -#include "DriveVolume.h" -#include "Mutex.h" - - -extern int FitName (wchar_t *destination, const wchar_t *path, const wchar_t *filename, uint32 totalWidth); - - -typedef struct DefragReport -{ - wstring RootPath; - uint64 DiskSizeBytes; - uint64 DirsCount; - uint64 FilesCount; - uint64 FilesSizeBytes; - uint64 FilesSizeOnDisk; - uint64 FilesSizeClusters; - uint64 FilesSlackBytes; - uint32 FilesFragments; - double AverageFragments; // = FilesFragments / FilesCount - double PercentFragged; - double PercentSlack; - - vector FraggedFiles; - vector UnfraggedFiles; - vector UnmovableFiles; -} DefragReport; - - -class Defragment -{ -public: - Defragment (wstring Name, DefragType DefragMethod); - ~Defragment (); - - // Commands - void Start (void); - void TogglePause (void); - void Stop (void); - - // Info - bool IsDoneYet (void); - bool HasError (void); - wstring GetStatusString (void); - double GetStatusPercent (void); - DefragType GetDefragType (void) { return (Method); } - DefragReport &GetDefragReport (void) { return (Report); } - DriveVolume &GetVolume (void) { return (Volume); } - - // Mutex - void Lock (void) { DefragMutex.Lock (); } - void Unlock (void) { DefragMutex.Unlock (); } - - // Limit length of status string to 70 chars? - bool GetDoLimitLength (void) { return (DoLimitLength); } - void SetDoLimitLength (bool L) { DoLimitLength = L; } - -private: - void FastDefrag (void); - void ExtensiveDefrag (void); - void SetStatusString (wstring NewStatus); - - DWORD LastBMPUpdate; // Last time volume bitmap was updated - DefragReport Report; - bool DoLimitLength; - DefragType Method; - wstring DriveName; - DriveVolume Volume; - wstring StatusString; - wstring ErrorString; - double StatusPercent; - Mutex DefragMutex; - bool Error; - bool Done; - bool PleaseStop; - bool PleasePause; - DefragType DefragMethod; -}; - - -#endif // DEFRAGMENT_H diff --git a/rosapps/applications/fraginator/DriveVolume.cpp b/rosapps/applications/fraginator/DriveVolume.cpp deleted file mode 100644 index df9406e54cb..00000000000 --- a/rosapps/applications/fraginator/DriveVolume.cpp +++ /dev/null @@ -1,806 +0,0 @@ -#include "DriveVolume.h" - - -DriveVolume::DriveVolume () -{ - Handle = INVALID_HANDLE_VALUE; - BitmapDetail = NULL; - return; -} - - -DriveVolume::~DriveVolume () -{ - Close (); - Directories.clear (); - Files.clear (); - return; -} - - -void DriveVolume::Close (void) -{ - if (Handle != INVALID_HANDLE_VALUE) - { - CloseHandle (Handle); - Handle = INVALID_HANDLE_VALUE; - } - - if (BitmapDetail != NULL) - { - free (BitmapDetail); - BitmapDetail = NULL; - } - - return; -} - - -// "Name" should be the drive letter followed by a colon. ie, "c:" -// It's a string to allow for further expansion (ie, defragging over the network?) -// or some other baloney reason -bool DriveVolume::Open (wstring Name) -{ - wchar_t FileName[100]; - bool ReturnVal; - - swprintf (FileName, L"\\\\.\\%s", Name.c_str()); - RootPath = Name.c_str(); - RootPath += L"\\"; - - Handle = CreateFileW - ( - FileName, - MAXIMUM_ALLOWED, // access - FILE_SHARE_READ | FILE_SHARE_WRITE, // share type - NULL, // security descriptor - OPEN_EXISTING, // open type - 0, // attributes (none) - NULL // template - ); - - if (Handle == INVALID_HANDLE_VALUE) - ReturnVal = false; - else - { - wchar_t VolName[64]; - DWORD VolSN; - DWORD VolMaxFileLen; - DWORD FSFlags; - wchar_t FSName[64]; - BOOL Result; - - ReturnVal = true; - Result = GetVolumeInformationW - ( - RootPath.c_str(), - VolName, - sizeof (VolName), - &VolSN, - &VolMaxFileLen, - &FSFlags, - FSName, - sizeof (FSName) - ); - - if (Result) - { - wchar_t SerialText[10]; - - VolInfo.FileSystem = FSName; - VolInfo.MaxNameLen = VolMaxFileLen; - VolInfo.Name = VolName; - - swprintf (SerialText, L"%x-%x", (VolSN & 0xffff0000) >> 16, - VolSN & 0x0000ffff); - - wcsupr (SerialText); - VolInfo.Serial = SerialText; - } - else - { - VolInfo.FileSystem = L"(Unknown)"; - VolInfo.MaxNameLen = 255; - VolInfo.Name = L"(Unknown)"; - VolInfo.Serial = L"(Unknown)"; - } - } - - return (ReturnVal); -} - - -bool DriveVolume::ObtainInfo (void) -{ - BOOL Result; - DWORD BytesGot; - uint64 nan; - - BytesGot = 0; - ZeroMemory (&Geometry, sizeof (Geometry)); - Result = DeviceIoControl - ( - Handle, - IOCTL_DISK_GET_DRIVE_GEOMETRY, - NULL, - 0, - &Geometry, - sizeof (Geometry), - &BytesGot, - NULL - ); - - // Call failed? Aww :( - if (!Result) - return (false); - - // Get cluster size - DWORD SectorsPerCluster; - DWORD BytesPerSector; - DWORD FreeClusters; - DWORD TotalClusters; - - Result = GetDiskFreeSpaceW - ( - RootPath.c_str(), - &SectorsPerCluster, - &BytesPerSector, - &FreeClusters, - &TotalClusters - ); - - // Failed? Weird. - if (!Result) - return (false); - - VolInfo.ClusterSize = SectorsPerCluster * BytesPerSector; - - Result = GetDiskFreeSpaceExW - ( - RootPath.c_str(), - (PULARGE_INTEGER)&nan, - (PULARGE_INTEGER)&VolInfo.TotalBytes, - (PULARGE_INTEGER)&VolInfo.FreeBytes - ); - - return (true); -} - - -// Get bitmap, several clusters at a time ... -#define CLUSTERS 4096 -bool DriveVolume::GetBitmap (void) -{ - STARTING_LCN_INPUT_BUFFER StartingLCN; - VOLUME_BITMAP_BUFFER *Bitmap = NULL; - uint32 BitmapSize; - DWORD BytesReturned; - BOOL Result; - - StartingLCN.StartingLcn.QuadPart = 0; - - // Allocate buffer - // Call FSCTL_GET_VOLUME_BITMAP once with a very small buffer - // This will leave the total number of clusters in Bitmap->BitmapSize and we can - // then correctly allocate based off that - // I suppose this won't work if your drive has only 40 clusters on it or so :) - BitmapSize = sizeof (VOLUME_BITMAP_BUFFER) + 4; - Bitmap = (VOLUME_BITMAP_BUFFER *) malloc (BitmapSize); - - Result = DeviceIoControl - ( - Handle, - FSCTL_GET_VOLUME_BITMAP, - &StartingLCN, - sizeof (StartingLCN), - Bitmap, - BitmapSize, - &BytesReturned, - NULL - ); - - // Bad result? - if (Result == FALSE && GetLastError () != ERROR_MORE_DATA) - { - //wprintf ("\nDeviceIoControl returned false, GetLastError() was not ERROR_MORE_DATA\n"); - free (Bitmap); - return (false); - } - - // Otherwise, we're good - BitmapSize = sizeof (VOLUME_BITMAP_BUFFER) + (Bitmap->BitmapSize.QuadPart / 8) + 1; - Bitmap = (VOLUME_BITMAP_BUFFER *) realloc (Bitmap, BitmapSize); - Result = DeviceIoControl - ( - Handle, - FSCTL_GET_VOLUME_BITMAP, - &StartingLCN, - sizeof (StartingLCN), - Bitmap, - BitmapSize, - &BytesReturned, - NULL - ); - - //DWORD LastError = GetLastError (); - - if (Result == FALSE) - { - wprintf (L"\nCouldn't properly read volume bitmap\n"); - free (Bitmap); - return (false); - } - - // Convert to a L'quick use' bitmap - //const int BitShift[] = { 1, 2, 4, 8, 16, 32, 64, 128 }; - - VolInfo.ClusterCount = Bitmap->BitmapSize.QuadPart; - - if (BitmapDetail != NULL) - free (BitmapDetail); - - BitmapDetail = (uint32 *) malloc (sizeof(uint32) * (1 + (VolInfo.ClusterCount / 32))); - memcpy (BitmapDetail, Bitmap->Buffer, sizeof(uint32) * (1 + (VolInfo.ClusterCount / 32))); - - /* - BitmapDetail = (Cluster *) malloc (VolInfo.ClusterCount * sizeof (Cluster)); - for (uint64 i = 0; i < VolInfo.ClusterCount; i++) - { - if (Bitmap->Buffer[i / 8] & BitShift[i % 8]) - BitmapDetail[i].Allocated = true; - else - BitmapDetail[i].Allocated = false; - } - */ - - free (Bitmap); - return (true); -} - - -bool DriveVolume::IsClusterUsed (uint64 Cluster) -{ - return ((BitmapDetail[Cluster / 32] & (1 << (Cluster % 32))) ? true : false); - //return (BitmapDetail[Cluster].Allocated); -} - - -void DriveVolume::SetClusterUsed (uint64 Cluster, bool Used) -{ - if (Used) - BitmapDetail[Cluster / 32] |= (1 << (Cluster % 32)); - else - BitmapDetail[Cluster / 32] &= ~(1 << (Cluster % 32)); - - return; -} - - -typedef struct -{ - DriveVolume *Volume; - double *Percent; - bool *QuitMonitor; - uint64 ClusterCount; - uint64 ClusterProgress; -} BuildDBInfo; - - -bool DriveVolume::BuildFileList (bool &QuitMonitor, double &Percent) -{ - BuildDBInfo Info; - - Files.clear (); - Directories.clear (); - Directories.push_back (RootPath); - - Info.Volume = this; - Info.QuitMonitor = &QuitMonitor; - Info.ClusterCount = (GetVolumeInfo().TotalBytes - GetVolumeInfo().FreeBytes) / (uint64)GetVolumeInfo().ClusterSize; - Info.ClusterProgress = 0; - Info.Percent = &Percent; - - ScanDirectory (RootPath, BuildDBCallback, &Info); - - if (QuitMonitor == true) - { - Directories.resize (0); - Files.resize (0); - } - - return (true); -} - - -// UserData = pointer to BuildDBInfo instance -bool BuildDBCallback (FileInfo &Info, HANDLE &FileHandle, void *UserData) -{ - BuildDBInfo *DBInfo = (BuildDBInfo *) UserData; - DriveVolume *Vol = DBInfo->Volume; - - Vol->Files.push_back (Info); - - if (*(DBInfo->QuitMonitor) == true) - return (false); - - DBInfo->ClusterProgress += (uint64)Info.Clusters; - *(DBInfo->Percent) = - ((double)DBInfo->ClusterProgress / (double)DBInfo->ClusterCount) * 100.0f; - - return (true); -} - - -wstring &DriveVolume::GetDBDir (uint32 Indice) -{ - return (Directories[Indice]); -} - - -uint32 DriveVolume::GetDBDirCount (void) -{ - return (Directories.size()); -} - - -FileInfo &DriveVolume::GetDBFile (uint32 Indice) -{ - return (Files[Indice]); -} - - -uint32 DriveVolume::GetDBFileCount (void) -{ - return (Files.size()); -} - - -uint32 DriveVolume::RemoveDBFile (uint32 Indice) -{ - vector::iterator it; - - it = Files.begin() + Indice; - Files.erase (it); - return (GetDBFileCount()); -} - - -bool DriveVolume::ScanDirectory (wstring DirPrefix, ScanCallback Callback, void *UserData) -{ - WIN32_FIND_DATAW FindData; - HANDLE FindHandle; - wstring SearchString; - uint32 DirIndice; - - DirIndice = Directories.size() - 1; - - SearchString = DirPrefix; - SearchString += L"*.*"; - ZeroMemory (&FindData, sizeof (FindData)); - FindHandle = FindFirstFileW (SearchString.c_str(), &FindData); - - if (FindHandle == INVALID_HANDLE_VALUE) - return (false); - - do - { - FileInfo Info; - HANDLE Handle; - bool CallbackResult; - - Handle = INVALID_HANDLE_VALUE; - - // First copy over the easy stuff. - Info.Name = FindData.cFileName; - - // DonLL't ever include '.L' and '..' - if (Info.Name == L"." || Info.Name == L"..") - continue; - - //Info.FullName = DirPrefix + Info.Name; - Info.Size = (uint64)FindData.nFileSizeLow + ((uint64)FindData.nFileSizeHigh << (uint64)32); - Info.DirIndice = DirIndice; - - Info.Attributes.Archive = (FindData.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) ? 1 : 0; - Info.Attributes.Compressed = (FindData.dwFileAttributes & FILE_ATTRIBUTE_COMPRESSED) ? 1 : 0; - Info.Attributes.Directory = (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? 1 : 0; - Info.Attributes.Encrypted = (FindData.dwFileAttributes & FILE_ATTRIBUTE_ENCRYPTED) ? 1 : 0; - Info.Attributes.Hidden = (FindData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) ? 1 : 0; - Info.Attributes.Normal = (FindData.dwFileAttributes & FILE_ATTRIBUTE_NORMAL) ? 1 : 0; - Info.Attributes.Offline = (FindData.dwFileAttributes & FILE_ATTRIBUTE_OFFLINE) ? 1 : 0; - Info.Attributes.ReadOnly = (FindData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 1 : 0; - Info.Attributes.Reparse = (FindData.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) ? 1 : 0; - Info.Attributes.Sparse = (FindData.dwFileAttributes & FILE_ATTRIBUTE_SPARSE_FILE) ? 1 : 0; - Info.Attributes.System = (FindData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) ? 1 : 0; - Info.Attributes.Temporary = (FindData.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY) ? 1 : 0; - Info.Attributes.AccessDenied = 0; - Info.Attributes.Unmovable = 0; - Info.Attributes.Process = 1; - - Info.Clusters = 0; - if (GetClusterInfo (Info, Handle)) - { - uint64 TotalClusters = 0; - - for (size_t i = 0; i < Info.Fragments.size(); i++) - { - TotalClusters += Info.Fragments[i].Length; - } - - Info.Clusters = TotalClusters; - } - else - { - Info.Attributes.Unmovable = 1; - Info.Attributes.Process = 0; - } - - if (Info.Attributes.Process == 1) - Info.Attributes.Process = ShouldProcess (Info.Attributes) ? 1 : 0; - - // Run the user-defined callback function - CallbackResult = Callback (Info, Handle, UserData); - - if (Handle != INVALID_HANDLE_VALUE) - CloseHandle (Handle); - - if (!CallbackResult) - break; - - // If directory, perform recursion - if (Info.Attributes.Directory == 1) - { - wstring Dir; - - Dir = GetDBDir (Info.DirIndice); - Dir += Info.Name; - Dir += L"\\"; - - Directories.push_back (Dir); - ScanDirectory (Dir, Callback, UserData); - } - - } while (FindNextFileW (FindHandle, &FindData) == TRUE); - - FindClose (FindHandle); - return (false); -} - - -bool DriveVolume::ShouldProcess (FileAttr Attr) -{ - if (Attr.Offline == 1 || Attr.Reparse == 1 || Attr.Temporary == 1) - { - return (false); - } - - return (true); -} - - -// Gets info on a file and returns a valid handle for read/write access -// Name, FullName, Clusters, Attributes, and Size should already be filled out. -// This function fills in the Fragments vector -bool DriveVolume::GetClusterInfo (FileInfo &Info, HANDLE &HandleResult) -{ - BOOL Result; - HANDLE Handle; - wstring FullName; - BY_HANDLE_FILE_INFORMATION FileInfo; - - Info.Fragments.resize (0); - - /* - if (Info.Attributes.Directory == 1) - return (false); - */ - - FullName = GetDBDir (Info.DirIndice) + Info.Name; - - Handle = CreateFileW - ( - FullName.c_str(), - 0, //GENERIC_READ, - FILE_SHARE_READ, - NULL, - OPEN_EXISTING, - (Info.Attributes.Directory == 1) ? FILE_FLAG_BACKUP_SEMANTICS : 0, - NULL - ); - - if (Handle == INVALID_HANDLE_VALUE) - { - LPVOID lpMsgBuf; - - FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, - NULL, GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &lpMsgBuf, 0, NULL ); - - - Info.Attributes.AccessDenied = 1; - LocalFree( lpMsgBuf ); - return (false); - } - - ZeroMemory (&FileInfo, sizeof (FileInfo)); - Result = GetFileInformationByHandle (Handle, &FileInfo); - - if (Result == FALSE) - { - Info.Attributes.AccessDenied = 1; - wprintf (L"GetFileInformationByHandle ('%s%s') failed\n", GetDBDir (Info.DirIndice).c_str(), - Info.Name.c_str()); - - CloseHandle (Handle); - return (false); - } - - // Get cluster allocation information - STARTING_VCN_INPUT_BUFFER StartingVCN; - RETRIEVAL_POINTERS_BUFFER *Retrieval; - uint64 RetSize; - uint64 Extents; - DWORD BytesReturned; - - // Grab info one extent at a time, until it's done grabbing all the extent data - // Yeah, well it doesn't give us a way to ask L"how many extents?" that I know of ... - // btw, the Extents variable tends to only reflect memory usage, so when we have - // all the extents we look at the structure Win32 gives us for the REAL count! - Extents = 10; - Retrieval = NULL; - RetSize = 0; - StartingVCN.StartingVcn.QuadPart = 0; - - do - { - Extents *= 2; - RetSize = sizeof (RETRIEVAL_POINTERS_BUFFER) + ((Extents - 1) * sizeof (LARGE_INTEGER) * 2); - - if (Retrieval != NULL) - Retrieval = (RETRIEVAL_POINTERS_BUFFER *) realloc (Retrieval, RetSize); - else - Retrieval = (RETRIEVAL_POINTERS_BUFFER *) malloc (RetSize); - - Result = DeviceIoControl - ( - Handle, - FSCTL_GET_RETRIEVAL_POINTERS, - &StartingVCN, - sizeof (StartingVCN), - Retrieval, - RetSize, - &BytesReturned, - NULL - ); - - if (Result == FALSE) - { - if (GetLastError() != ERROR_MORE_DATA) - { - Info.Clusters = 0; - Info.Attributes.AccessDenied = 1; - Info.Attributes.Process = 0; - Info.Fragments.clear (); - CloseHandle (Handle); - free (Retrieval); - - return (false); - } - - Extents++; - } - } while (Result == FALSE); - - // Readjust extents, as it only reflects how much memory was allocated and may not - // be accurate - Extents = Retrieval->ExtentCount; - - // Ok, we have the info. Now translate it. hrmrmr - - Info.Fragments.clear (); - for (uint64 i = 0; i < Extents; i++) - { - Extent Add; - - Add.StartLCN = Retrieval->Extents[i].Lcn.QuadPart; - if (i != 0) - Add.Length = Retrieval->Extents[i].NextVcn.QuadPart - Retrieval->Extents[i - 1].NextVcn.QuadPart; - else - Add.Length = Retrieval->Extents[i].NextVcn.QuadPart - Retrieval->StartingVcn.QuadPart; - - Info.Fragments.push_back (Add); - } - - free (Retrieval); - HandleResult = Handle; - return (true); -} - - -bool DriveVolume::FindFreeRange (uint64 StartLCN, uint64 ReqLength, uint64 &LCNResult) -{ - uint64 Max; - uint64 i; - uint64 j; - - // Make sure we don't spill over our array - Max = VolInfo.ClusterCount - ReqLength; - - for (i = StartLCN; i < Max; i++) - { - bool Found = true; - - // First check the first cluster - if (IsClusterUsed (i)) - Found = false; - else - // THen check the last cluster - if (IsClusterUsed (i + ReqLength - 1)) - Found = false; - else - // Check the whole darn range. - for (j = (i + 1); j < (i + ReqLength - 2); j++) - { - if (IsClusterUsed (j) == true) - { - Found = false; - break; - } - } - - if (!Found) - continue; - else - { - LCNResult = i; - return (true); - } - } - - return (false); -} - - -// btw we have to move each fragment of the file, as per the Win32 API -bool DriveVolume::MoveFileDumb (uint32 FileIndice, uint64 NewLCN) -{ - bool ReturnVal = false; - FileInfo Info; - HANDLE FileHandle; - wstring FullName; - MOVE_FILE_DATA MoveData; - uint64 CurrentLCN; - uint64 CurrentVCN; - - // Set up variables - Info = GetDBFile (FileIndice); - FullName = GetDBDir (Info.DirIndice); - FullName += Info.Name; - CurrentLCN = NewLCN; - CurrentVCN = 0; - - /* - if (Info.Attributes.Directory == 1) - { - // - } - */ - - // Open file - FileHandle = CreateFileW - ( - FullName.c_str (), - GENERIC_READ, - FILE_SHARE_READ, - NULL, - OPEN_EXISTING, - (Info.Attributes.Directory == 1) ? FILE_FLAG_BACKUP_SEMANTICS : 0, - NULL - ); - - if (FileHandle == INVALID_HANDLE_VALUE) - { - // - LPVOID lpMsgBuf; - - FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, - NULL, GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &lpMsgBuf, 0, NULL ); - - - LocalFree (lpMsgBuf); - // - - ReturnVal = false; - } - else - { - ReturnVal = true; // innocent until proven guilty ... - - for (uint32 i = 0; i < Info.Fragments.size(); i++) - { - BOOL Result; - DWORD BytesReturned; - - //wprintf (L"%3u", i); - - MoveData.ClusterCount = Info.Fragments[i].Length; - MoveData.StartingLcn.QuadPart = CurrentLCN; - MoveData.StartingVcn.QuadPart = CurrentVCN; - - MoveData.FileHandle = FileHandle; - - /* - wprintf (L"\n"); - wprintf (L"StartLCN: %I64u\n", MoveData.StartingLcn.QuadPart); - wprintf (L"StartVCN: %I64u\n", MoveData.StartingVcn.QuadPart); - wprintf (L"Clusters: %u (%I64u-%I64u --> %I64u-%I64u)\n", MoveData.ClusterCount, - Info.Fragments[i].StartLCN, - Info.Fragments[i].StartLCN + MoveData.ClusterCount, - MoveData.StartingLcn.QuadPart, - MoveData.StartingLcn.QuadPart + MoveData.ClusterCount - 1); - wprintf (L"\n"); - */ - - Result = DeviceIoControl - ( - Handle, - FSCTL_MOVE_FILE, - &MoveData, - sizeof (MoveData), - NULL, - 0, - &BytesReturned, - NULL - ); - - //wprintf (L"\b\b\b"); - - if (Result == FALSE) - { - // - LPVOID lpMsgBuf; - - FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, - NULL, GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &lpMsgBuf, 0, NULL ); - - - LocalFree( lpMsgBuf ); - // - - ReturnVal = false; - goto FinishUp; // yeah, bite me - } - - // Ok good. Now update our drive bitmap and file infos. - uint64 j; - for (j = 0; - j < Info.Fragments[i].Length; - j++) - { - SetClusterUsed (Info.Fragments[i].StartLCN + j, false); - SetClusterUsed (CurrentLCN + j, true); - //BitmapDetail[Info.Fragments[i].StartLCN + j].Allocated = false; - //BitmapDetail[CurrentLCN + j].Allocated = true; - } - - CurrentLCN += Info.Fragments[i].Length; - CurrentVCN += Info.Fragments[i].Length; - } - - // Update file info either way - FinishUp: - CloseHandle (FileHandle); - FileHandle = INVALID_HANDLE_VALUE; - GetClusterInfo (Files[FileIndice], FileHandle); - CloseHandle (FileHandle); - } - - return (ReturnVal); -} - - diff --git a/rosapps/applications/fraginator/DriveVolume.h b/rosapps/applications/fraginator/DriveVolume.h deleted file mode 100644 index e7f69bf0b8f..00000000000 --- a/rosapps/applications/fraginator/DriveVolume.h +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** - - DriveVolume - - Class for opening a volume and getting information on it and defragging it - and stuff. - -*****************************************************************************/ - - -#ifndef DRIVEVOLUME_H -#define DRIVEVOLUME_H - - -#include "Unfrag.h" -#include -#include - - -using namespace std; - -#pragma pack (push, 1) -typedef struct -{ - unsigned int Archive : 1; - unsigned int Compressed : 1; - unsigned int Directory : 1; - unsigned int Encrypted : 1; - unsigned int Hidden : 1; - unsigned int Normal : 1; - unsigned int Offline : 1; - unsigned int ReadOnly : 1; - unsigned int Reparse : 1; - unsigned int Sparse : 1; - unsigned int System : 1; - unsigned int Temporary : 1; - - // For defragmenting purposes and other information - unsigned int Unmovable : 1; // can we even touch it? - unsigned int Process : 1; // should we process it? - unsigned int AccessDenied : 1; // could we not open it? -} FileAttr; - - -typedef struct -{ - uint64 StartLCN; - uint64 Length; -} Extent; - - -typedef struct -{ - wstring Name; - uint32 DirIndice; // indice into directory list - uint64 Size; - uint64 Clusters; - FileAttr Attributes; - vector Fragments; -} FileInfo; - - -typedef vector FileList; - - -typedef struct -{ - wstring Name; - wstring Serial; - DWORD MaxNameLen; - wstring FileSystem; - uint64 ClusterCount; - uint32 ClusterSize; - uint64 TotalBytes; - uint64 FreeBytes; -} VolumeInfo; -#pragma pack (pop) - - -// Callback function for Scan() -// NOTE: Do *NOT* close the HANDLE given to you. It is provided for convenience, -// and is closed automatically by the function that calls you! -typedef bool (*ScanCallback) (FileInfo &Info, HANDLE &FileHandle, void *UserData); - - -extern bool BuildDBCallback (FileInfo &Info, HANDLE &FileHandle, void *UserData); - - -class DriveVolume -{ -public: - DriveVolume (); - ~DriveVolume (); - - bool Open (wstring Name); // opens the volume - void Close (void); - bool ObtainInfo (void); // retrieves drive geometry - bool GetBitmap (void); // gets drive bitmap - - // builds list of files on drive - // if QuitMonitor ever becomes true (ie from a separate thread) it will clean up and return - bool BuildFileList (bool &QuitMonitor, double &Progress); - - // Functions for accessing the volume bitmap - bool IsClusterUsed (uint64 Cluster); - void SetClusterUsed (uint64 Cluster, bool Used); - - DISK_GEOMETRY GetGeometry (void) { return (Geometry); } - VolumeInfo GetVolumeInfo (void) { return (VolInfo); } - - wstring GetRootPath (void) { return (RootPath); } - - // Scans drive starting from the root dir and calls a user defined function - // for each file/directory encountered. void* UserData is passed to this - // function so you can give it some good ol' fashioned context. - bool Scan (ScanCallback Callback, void *UserData); - - // Retrieve a directory string from the file database - wstring &GetDBDir (uint32 Indice); - uint32 GetDBDirCount (void); - // Retrieve file strings/info from the file database - FileInfo &GetDBFile (uint32 Indice); - uint32 GetDBFileCount (void); - // Kill it! - uint32 RemoveDBFile (uint32 Indice); - - // This is for actual defragmenting! It will automatically update the drive bitmap. - // Will not move any other files out of the way. - // Failure (return value of false) means that something is in the way. - bool MoveFileDumb (uint32 FileIndice, uint64 NewLCN); - - // Look for a range of sequential free clusters - // Returns true if one could be found, false if not - bool FindFreeRange (uint64 StartLCN, uint64 ReqLength, uint64 &LCNResult); - -private: - friend bool BuildDBCallback (FileInfo &Info, HANDLE &FileHandle, void *UserData); - - // DirPrefix should be in the form "drive:\\path\\" ie, C:\CRAP\ . - bool ScanDirectory (wstring DirPrefix, ScanCallback Callback, void *UserData); - - // given a file's attributes, should it be processed or not? - bool ShouldProcess (FileAttr Attr); - - bool GetClusterInfo (FileInfo &Info, HANDLE &HandleResult); - - VolumeInfo VolInfo; - FileList Files; - vector Directories; // Directories[Files[x].DirIndice] - wstring RootPath; // ie, C:\ . - HANDLE Handle; - DISK_GEOMETRY Geometry; - uint32 *BitmapDetail; -}; - - -#endif // DRIVEVOLUME_H diff --git a/rosapps/applications/fraginator/Fraginator Motif Icon.bmp b/rosapps/applications/fraginator/Fraginator Motif Icon.bmp deleted file mode 100644 index b8d412e8227..00000000000 Binary files a/rosapps/applications/fraginator/Fraginator Motif Icon.bmp and /dev/null differ diff --git a/rosapps/applications/fraginator/Fraginator.cpp b/rosapps/applications/fraginator/Fraginator.cpp deleted file mode 100644 index 43722e1ef51..00000000000 --- a/rosapps/applications/fraginator/Fraginator.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** - - Fraginator - -*****************************************************************************/ - -#define NDEBUG - -#include "Fraginator.h" -#include "Mutex.h" -#include "DriveVolume.h" -#include "Defragment.h" -#include "MainDialog.h" -#include "resource.h" -#ifdef _MSC_VER -#include -#endif - -HINSTANCE GlobalHInstance = NULL; -Defragment *Defrag = NULL; - -INT WINAPI -wWinMain(HINSTANCE HInstance, - HINSTANCE hPrev, - LPWSTR Cmd, - int iCmd) -{ - INITCOMMONCONTROLSEX InitControls; - - // debugging crap -#ifndef NDEBUG - _CrtSetDbgFlag (_CRTDBG_LEAK_CHECK_DF | _CrtSetDbgFlag (_CRTDBG_REPORT_FLAG)); - _CrtSetReportMode (_CRT_WARN, _CRTDBG_MODE_FILE); - _CrtSetReportFile (_CRT_WARN, _CRTDBG_FILE_STDOUT); - _CrtSetReportMode (_CRT_ERROR, _CRTDBG_MODE_FILE); - _CrtSetReportFile (_CRT_ERROR, _CRTDBG_FILE_STDOUT); - _CrtSetReportMode (_CRT_ASSERT, _CRTDBG_MODE_FILE); - _CrtSetReportFile (_CRT_ASSERT, _CRTDBG_FILE_STDOUT); -#endif - - GlobalHInstance = HInstance; - - // We want our progress bar! NOW! - InitControls.dwSize = sizeof (InitControls); - InitControls.dwICC = ICC_WIN95_CLASSES; - InitCommonControlsEx (&InitControls); - - if (!CheckWinVer()) - { - MessageBox (GetDesktopWindow(), L"Sorry, this program requires Windows 2000.", L"Error", MB_OK); - return (0); - } - - DialogBox (HInstance, MAKEINTRESOURCE (IDD_MAIN), GetDesktopWindow(), MainDialogProc); - -#if 0 - AllocConsole (); - if (_CrtDumpMemoryLeaks ()) - MessageBox (NULL, L"Click OK to quit", L"Leaks", MB_OK); -#endif - - return (0); -} - diff --git a/rosapps/applications/fraginator/Fraginator.h b/rosapps/applications/fraginator/Fraginator.h deleted file mode 100644 index ea2684b48ff..00000000000 --- a/rosapps/applications/fraginator/Fraginator.h +++ /dev/null @@ -1,25 +0,0 @@ -/***************************************************************************** - - Fraginator !!! - -*****************************************************************************/ - - -#ifndef FRAGINATOR_H -#define FRAGINATOR_H - - -#include "Unfrag.h" -#include - - -//int WINAPI WinMain (HINSTANCE HInstance, HINSTANCE HPrevInstance, LPSTR CmdLine, int ShowCmd); -Defragment *StartDefragBox (wstring Drive, DefragType Method); - - -extern HINSTANCE GlobalHInstance; -extern Defragment *Defrag; - -//extern INT PASCAL wWinMain (HINSTANCE HInstance, HINSTANCE HPrevInstance, LPCWSTR CmdLine, INT ShowCmd); - -#endif // FRAGINATOR_H diff --git a/rosapps/applications/fraginator/Fraginator.rc b/rosapps/applications/fraginator/Fraginator.rc deleted file mode 100644 index 463454098d9..00000000000 --- a/rosapps/applications/fraginator/Fraginator.rc +++ /dev/null @@ -1,21 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "windows.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - - -#include "lang/en-US.rc" -#include "lang/es-ES.rc" -#include "lang/fr-FR.rc" -#include "lang/no-NO.rc" -#include "lang/sk-SK.rc" -#include "lang/uk-UA.rc" diff --git a/rosapps/applications/fraginator/MainDialog.cpp b/rosapps/applications/fraginator/MainDialog.cpp deleted file mode 100644 index 15d53e88067..00000000000 --- a/rosapps/applications/fraginator/MainDialog.cpp +++ /dev/null @@ -1,574 +0,0 @@ -#include "Unfrag.h" -#include "MainDialog.h" -#include "resource.h" -#include "Fraginator.h" -#include "Defragment.h" -#include "ReportDialog.h" - - -vector DrivesList; -LRESULT AnalyzeID; -LRESULT FastID; -LRESULT ExtensiveID; -bool QuitWhenDone; -bool Stopping; - - -LRESULT PriHighID; -LRESULT PriAboveNormID; -LRESULT PriNormalID; -LRESULT PriBelowNormID; -LRESULT PriIdleID; - - -static void InitDialog (HWND Dlg); -void UpdateDefragInfo (HWND Dlg); -void UpdatePriority (HWND Dlg); -wstring GetDefaultTitle (void); -wstring GetDefragTitle (void); -void SetDisables (HWND Dlg); -INT_PTR CALLBACK MainDialogProc (HWND Dlg, UINT Msg, WPARAM WParam, LPARAM LParam); - - -static void InitDialog (HWND Dlg) -{ - // Make internal list - DWORD DriveMask; - HWND DlgItem; - size_t d; - - // Clear out wisecracks line for now - SetDlgItemText (Dlg, IDC_WISECRACKS, L"\"Defrag, baby!\""); - - // Make list of logical drives - DrivesList.resize (0); - DriveMask = GetLogicalDrives (); - - for (d = 0; d < 26; d++) - { - if (DriveMask & (1 << d)) - { - wstring Name; - - Name = (wchar_t)(L'A' + d); - Name += L':'; - DrivesList.push_back (Name); - } - } - - // Give list to dropdown list - DlgItem = GetDlgItem (Dlg, IDC_DRIVES_LIST); - SendMessage (DlgItem, CB_RESETCONTENT, 0, 0); - for (d = 0; d < DrivesList.size(); d++) - { - SendMessage (DlgItem, CB_ADDSTRING, 0, (LPARAM) DrivesList[d].c_str()); - } - - // Put in defrag methods - DlgItem = GetDlgItem (Dlg, IDC_METHODS_LIST); - SendMessage (DlgItem, CB_RESETCONTENT, 0, 0); - AnalyzeID = SendMessage (DlgItem, CB_ADDSTRING, 0, (LPARAM) L"Analyze Only"); - FastID = SendMessage (DlgItem, CB_ADDSTRING, 0, (LPARAM) L"Fast Defrag"); - ExtensiveID = SendMessage (DlgItem, CB_ADDSTRING, 0, (LPARAM) L"Extensive Defrag"); - - // Set up process priorities - DlgItem = GetDlgItem (Dlg, IDC_PRIORITY_LIST); - SendMessage (Dlg, CB_RESETCONTENT, 0, 0); - PriHighID = SendMessage (DlgItem, CB_ADDSTRING, 0, (LPARAM) L"High"); - PriAboveNormID = SendMessage (DlgItem, CB_ADDSTRING, 0, (LPARAM) L"Above Normal"); - PriNormalID = SendMessage (DlgItem, CB_ADDSTRING, 0, (LPARAM) L"Normal"); - PriBelowNormID = SendMessage (DlgItem, CB_ADDSTRING, 0, (LPARAM) L"Below Normal"); - PriIdleID = SendMessage (DlgItem, CB_ADDSTRING, 0, (LPARAM) L"Idle"); - UpdatePriority (Dlg); - - // Reset texts and progress meters - SendDlgItemMessage (Dlg, IDC_STATUS, WM_SETTEXT, 0, (LPARAM) L""); - SendDlgItemMessage (Dlg, IDC_PERCENT, WM_SETTEXT, 0, (LPARAM) L""); - SendDlgItemMessage (Dlg, IDC_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM (0, 10000)); - SendDlgItemMessage (Dlg, IDC_PROGRESS, PBM_SETPOS, 0, 0); - - return; -} - - -void UpdateDefragInfo (HWND Dlg) -{ - wchar_t PercentText[100]; - static double OldPercent = 200.0f; - static wstring OldStatus = L"Non"; - wstring NewStatus; - double NewPercent; - - if (Defrag == NULL) - return; - - NewPercent = Defrag->GetStatusPercent (); - if (NewPercent > 100.0f) - NewPercent = 100.0f; - if (NewPercent < 0.0f) - NewPercent = 0.0f; - if (NewPercent != OldPercent) - { - swprintf (PercentText, L"%6.2f%%", NewPercent); - SendDlgItemMessage (Dlg, IDC_PERCENT, WM_SETTEXT, 0, (LPARAM) PercentText); - SendDlgItemMessage (Dlg, IDC_PROGRESS, PBM_SETPOS, - (WPARAM) (int)(NewPercent * 100.0f), 0); - OldPercent = NewPercent; - } - - NewStatus = Defrag->GetStatusString (); - if (NewStatus != OldStatus) - { // Change & characters to && to avoid underlining - wstring Status; - wstring::iterator it; - - Status = NewStatus; - it = Status.begin (); - while (it < Status.end()) - { - if (*it == L'&') - { - Status.insert (it, 1, L'&'); - it++; - } - - it++; - } - - SendDlgItemMessage (Dlg, IDC_STATUS, WM_SETTEXT, 0, - (LPARAM) Status.c_str()); - - OldStatus = NewStatus; - } - - return; -} - - -wstring GetDefaultTitle (void) -{ - wstring DefaultText; - - DefaultText = wstring(wstring(APPNAME_GUI) + wstring(L" v") + wstring(APPVER_STR) + - wstring(L" (C) 2000 by Rick Brewster")); - - return (DefaultText); -} - - -wstring GetDefragTitle (void) -{ - wstring DefragText; - wchar_t Percent[10]; - - swprintf (Percent, L"%.2f%%", Defrag->GetStatusPercent()); - - DefragText = GetDefaultTitle (); - if (Defrag != NULL) - { - DefragText = wstring(Percent) + wstring (L" - ") + Defrag->GetVolume().GetRootPath() + - wstring (L" - ") + DefragText; - } - - return (DefragText); -} - - -void SetDisables (HWND Dlg) -{ - // If a defrag is in process, set L'Start' button to say L'Stop' and disable - // the Select Drive and Select Action controls - if (Defrag != NULL && !Defrag->IsDoneYet() && !Defrag->HasError()) - { - SendMessage (GetDlgItem (Dlg, IDC_STARTSTOP), WM_SETTEXT, 0, (LPARAM) L"Stop"); - EnableWindow (GetDlgItem (Dlg, IDC_DRIVES_LIST), FALSE); - EnableWindow (GetDlgItem (Dlg, IDC_METHODS_LIST), FALSE); - } - else - { - SendMessage (GetDlgItem (Dlg, IDC_STARTSTOP), WM_SETTEXT, 0, (LPARAM) L"Start"); - EnableWindow (GetDlgItem (Dlg, IDC_STARTSTOP), TRUE); - EnableWindow (GetDlgItem (Dlg, IDC_QUIT), TRUE); - EnableWindow (GetDlgItem (Dlg, IDC_DRIVES_LIST), TRUE); - EnableWindow (GetDlgItem (Dlg, IDC_METHODS_LIST), TRUE); - } - - return; -} - - -void UpdatePriority (HWND Dlg) -{ - LRESULT Id; - DWORD Priority; - - Id = SendDlgItemMessage (Dlg, IDC_PRIORITY_LIST, CB_GETCURSEL, 0, 0); - - if (Id == PriHighID) - Priority = HIGH_PRIORITY_CLASS; - else - if (Id == PriAboveNormID) - Priority = ABOVE_NORMAL_PRIORITY_CLASS; - else - if (Id == PriNormalID) - Priority = NORMAL_PRIORITY_CLASS; - else - if (Id == PriBelowNormID) - Priority = BELOW_NORMAL_PRIORITY_CLASS; - else - if (Id == PriIdleID) - Priority = IDLE_PRIORITY_CLASS; - else - return; - - SetPriorityClass (GetCurrentProcess(), Priority); - return; -} - - -// Save settings (ie, process priority and defrag type options) -bool GetRegKeys (HKEY *RegKeyResult) -{ - HKEY RegKey; - LONG Error; - - Error = RegCreateKeyEx - ( - HKEY_CURRENT_USER, - L"Software\\Fraginator", - 0, - NULL, - REG_OPTION_NON_VOLATILE, - KEY_ALL_ACCESS, - NULL, - &RegKey, - NULL - ); - - if (Error != ERROR_SUCCESS) - return (false); - - *RegKeyResult = RegKey; - return (true); -} - - -bool DoneRegKey (HKEY RegKey) -{ - RegCloseKey (RegKey); - return (true); -} - - -void SaveSettings (HWND Dlg) -{ - LRESULT DefragID; - DWORD DefragVal; - LRESULT PriID; - DWORD PriVal; - HKEY RegKey; - - DefragID = SendDlgItemMessage (Dlg, IDC_METHODS_LIST, CB_GETCURSEL, 0, 0); - PriID = SendDlgItemMessage (Dlg, IDC_PRIORITY_LIST, CB_GETCURSEL, 0, 0); - - // Action - if (DefragID == AnalyzeID) - DefragVal = (DWORD) DefragAnalyze; - else - if (DefragID == FastID) - DefragVal = (DWORD) DefragFast; - else - if (DefragID == ExtensiveID) - DefragVal = (DWORD) DefragExtensive; - - // Process Priority - if (PriID == PriHighID) - PriVal = HIGH_PRIORITY_CLASS; - else - if (PriID == PriAboveNormID) - PriVal = ABOVE_NORMAL_PRIORITY_CLASS; - else - if (PriID == PriNormalID) - PriVal = NORMAL_PRIORITY_CLASS; - else - if (PriID == PriBelowNormID) - PriVal = BELOW_NORMAL_PRIORITY_CLASS; - else - if (PriID == PriIdleID) - PriVal = IDLE_PRIORITY_CLASS; - - if (!GetRegKeys (&RegKey)) - return; - - RegSetValueEx - ( - RegKey, - L"Default Action", - 0, - REG_DWORD, - (CONST BYTE *)&DefragVal, - sizeof (DefragVal) - ); - - RegSetValueEx - ( - RegKey, - L"Process Priority", - 0, - REG_DWORD, - (CONST BYTE *)&PriVal, - sizeof (PriVal) - ); - - DoneRegKey (RegKey); - return; -} - - -void LoadSettings (HWND Dlg) -{ - DefragType DType; - DWORD DTypeVal; - LRESULT DefragID; - DWORD PriVal; - LRESULT PriID; - HKEY RegKey; - DWORD RegType; - DWORD RegSize; - LONG Error; - - if (!GetRegKeys (&RegKey)) - return; - - RegSize = sizeof (DTypeVal); - RegType = REG_DWORD; - - Error = RegQueryValueEx - ( - RegKey, - L"Default Action", - 0, - &RegType, - (BYTE *)&DTypeVal, - &RegSize - ); - - if (Error != ERROR_SUCCESS) - DTypeVal = DefragAnalyze; - - Error = RegQueryValueEx - ( - RegKey, - L"Process Priority", - 0, - &RegType, - (BYTE *)&PriVal, - &RegSize - ); - - DoneRegKey (RegKey); - - if (Error != ERROR_SUCCESS) - PriVal = NORMAL_PRIORITY_CLASS; - - DType = (DefragType) DTypeVal; - switch (DType) - { - default: - case DefragAnalyze: - DefragID = AnalyzeID; - break; - - case DefragFast: - DefragID = FastID; - break; - - case DefragExtensive: - DefragID = ExtensiveID; - break; - } - - switch (PriVal) - { - case HIGH_PRIORITY_CLASS: - PriID = PriHighID; - break; - - case ABOVE_NORMAL_PRIORITY_CLASS: - PriID = PriAboveNormID; - break; - - default: - case NORMAL_PRIORITY_CLASS: - PriID = PriNormalID; - break; - - case BELOW_NORMAL_PRIORITY_CLASS: - PriID = PriBelowNormID; - break; - - case IDLE_PRIORITY_CLASS: - PriID = PriIdleID; - break; - } - - SendDlgItemMessage (Dlg, IDC_PRIORITY_LIST, CB_SETCURSEL, PriID, 0); - SendDlgItemMessage (Dlg, IDC_METHODS_LIST, CB_SETCURSEL, DefragID, 0); - return; -} - - -#define IDLETIME 25 -wstring OldWindowText = L""; - -INT_PTR CALLBACK MainDialogProc (HWND Dlg, UINT Msg, WPARAM WParam, LPARAM LParam) -{ - static bool ReEntrance = false; - - switch (Msg) - { - case WM_INITDIALOG: - Stopping = false; - SetWindowText (Dlg, GetDefaultTitle().c_str()); - SetDisables (Dlg); - InitDialog (Dlg); - SetTimer (Dlg, 1, IDLETIME, NULL); - SetClassLong (Dlg, GCL_HICON, (LONG) LoadIcon (GlobalHInstance, MAKEINTRESOURCE(IDI_ICON))); - QuitWhenDone = false; - LoadSettings (Dlg); - UpdatePriority (Dlg); - return (1); - - - case WM_TIMER: - if (Defrag != NULL && !ReEntrance) - { - wstring NewTitle; - - SendMessage (Dlg, WM_UPDATEINFO, 0, 0); - - NewTitle = GetDefragTitle (); - if (NewTitle != OldWindowText) - { - OldWindowText = NewTitle; - SetWindowText (Dlg, NewTitle.c_str()); - } - - if (Defrag->IsDoneYet() || Defrag->HasError()) - { // This is the code executed when defragging is finished (or stopped :) - if (Defrag->GetDefragType() == DefragAnalyze && - !Defrag->HasError() && - !Stopping) - { // Show report - ReEntrance = true; - - DialogBoxParam (GlobalHInstance, MAKEINTRESOURCE (IDD_REPORT), - Dlg, ReportDialogProc, (LPARAM) Defrag); - - ReEntrance = false; - } - - delete Defrag; - Defrag = NULL; - SetDisables (Dlg); - SetWindowText (Dlg, GetDefaultTitle().c_str()); - - Stopping = false; - - if (QuitWhenDone) - SendMessage (GetDlgItem (Dlg, IDC_QUIT), BM_CLICK, 0, 0); - } - } - - SetTimer (Dlg, 1, IDLETIME, NULL); - return (0); - - - case WM_UPDATEINFO: - UpdateDefragInfo (Dlg); - return (1); - - - case WM_CLOSE: - SendMessage (GetDlgItem (Dlg, IDC_QUIT), BM_CLICK, 0, 0); - return (1); - - - case WM_COMMAND: - switch (LOWORD(WParam)) - { - case IDC_PRIORITY_LIST: - UpdatePriority (Dlg); - return (1); - - - case ID_MAIN_HELP: - ShellExecute (Dlg, L"open", L"Fraginator.chm", L"", L".", SW_SHOW); - return (1); - - - case IDC_QUIT: - if (Defrag == NULL) - { // This is the code executing when quitting - SaveSettings (Dlg); - EndDialog (Dlg, 0); - } - else - { // Tell defragging to finish and disable our button - QuitWhenDone = true; - SendMessage (GetDlgItem (Dlg, IDC_STARTSTOP), BM_CLICK, 0, 0); - EnableWindow (GetDlgItem (Dlg, IDC_QUIT), FALSE); - } - return (1); - - - case IDC_STARTSTOP: - if (Defrag == NULL) - { // L"Start" - wchar_t Drive[10]; - LRESULT ID; - DefragType Method; - HANDLE H; - - if (Defrag != NULL) - return (1); - - SendMessage (GetDlgItem (Dlg, IDC_DRIVES_LIST), WM_GETTEXT, - sizeof (Drive) - 1, (LPARAM) Drive); - - if (wcslen(Drive) != 2 || Drive[1] != L':') - return (1); - - ID = SendMessage (GetDlgItem (Dlg, IDC_METHODS_LIST), CB_GETCURSEL, 0, 0); - Method = DefragInvalid; - if (ID == AnalyzeID) - Method = DefragAnalyze; - else - if (ID == FastID) - Method = DefragFast; - else - if (ID == ExtensiveID) - Method = DefragExtensive; - - if (Method != DefragInvalid) - { - Defrag = StartDefragThread (Drive, Method, H); - Defrag->SetDoLimitLength (false); - SetWindowText (Dlg, GetDefragTitle().c_str()); - SetDisables (Dlg); - } - } - else - { // L"Stop" - Stopping = true; - Defrag->Stop (); - EnableWindow (GetDlgItem (Dlg, IDC_STARTSTOP), FALSE); - EnableWindow (GetDlgItem (Dlg, IDC_QUIT), FALSE); - } - return (1); - } - } - - // Otherwise, return 0 to say we did not process the message. - return (0); -} diff --git a/rosapps/applications/fraginator/MainDialog.h b/rosapps/applications/fraginator/MainDialog.h deleted file mode 100644 index e7efc1048e6..00000000000 --- a/rosapps/applications/fraginator/MainDialog.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef MAINDIALOG_H -#define MAINDIALOG_H - - -#include - - -#define WM_UPDATEINFO (WM_USER + 1) - - -INT_PTR CALLBACK MainDialogProc (HWND Dlg, UINT Msg, WPARAM WParam, LPARAM LParam); - - -#endif // MAINDIALOG_H diff --git a/rosapps/applications/fraginator/Mutex.h b/rosapps/applications/fraginator/Mutex.h deleted file mode 100644 index 5a36c9f4ff1..00000000000 --- a/rosapps/applications/fraginator/Mutex.h +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** - - Mutex - -*****************************************************************************/ - - -#ifndef MUTEX_H -#define MUTEX_H - - -#include "Unfrag.h" - - -class Mutex -{ -public: - Mutex () - { - // NT only code begin ... Win9x disregards this part - SECURITY_ATTRIBUTES MutexAttribs; - - memset (&MutexAttribs, 0, sizeof (SECURITY_ATTRIBUTES)); - - MutexAttribs.bInheritHandle = false; - MutexAttribs.nLength = sizeof (SECURITY_ATTRIBUTES); - MutexAttribs.lpSecurityDescriptor = NULL; - // NT only code end - - Locked = false; - LockCount = 0; - MutexHandle = CreateMutex (&MutexAttribs, Locked, NULL); - - return; - } - - ~Mutex () - { - Lock (); - CloseHandle (MutexHandle); - } - - void Lock (void) - { - Locked = true; - WaitForSingleObject (MutexHandle, INFINITE); - LockCount += 1; - return; - } - - - void Unlock (void) - { - LockCount -= 1; - if (LockCount <= 0) - { - LockCount = 0; - Locked = false; - } - - ReleaseMutex (MutexHandle); - return; - } - - - bool IsLocked (void) - { - return (Locked); - } - -protected: - uint32 LockCount; - HANDLE MutexHandle; - bool Locked; -}; - - -#endif // MUTEX_H diff --git a/rosapps/applications/fraginator/ReportDialog.cpp b/rosapps/applications/fraginator/ReportDialog.cpp deleted file mode 100644 index 6d2caaad32b..00000000000 --- a/rosapps/applications/fraginator/ReportDialog.cpp +++ /dev/null @@ -1,231 +0,0 @@ -#include "ReportDialog.h" -#include "Unfrag.h" -#include "Fraginator.h" -#include "DriveVolume.h" -#include "Defragment.h" -#include "resource.h" - - -void SetReportInfo (HWND Dlg, DefragReport &Report, uint32 BytesDivisor, wchar_t *BytesUnits, bool Fractional) -{ - wchar_t Text[1000]; - wchar_t Text2[1000]; - wchar_t Text3[1000]; - - memset (Text, 0, sizeof (Text)); - - // Volume name - SetDlgItemText (Dlg, IDC_DRIVELETTER, Report.RootPath.c_str()); - - // Volume label - SetDlgItemText (Dlg, IDC_VOLUMELABEL, Defrag->GetVolume().GetVolumeInfo().Name.c_str()); - - // Volume Serial - SetDlgItemText (Dlg, IDC_VOLUMESERIAL, Defrag->GetVolume().GetVolumeInfo().Serial.c_str()); - - // File System - SetDlgItemText (Dlg, IDC_FILESYSTEM, Defrag->GetVolume().GetVolumeInfo().FileSystem.c_str()); - - // DiskSizeBytes - if (Fractional) - { - swprintf (Text, L"%.2f %s", (double)(signed)(Report.DiskSizeBytes / - (BytesDivisor / 1024)) / 1024.0, BytesUnits); - } - else - { - AddCommas (Text, Report.DiskSizeBytes / BytesDivisor); - wcscat (Text, L" "); - wcscat (Text, BytesUnits); - } - - SetDlgItemText (Dlg, IDC_DISKSIZEBYTES, Text); - - // DiskFreeBytes - if (Fractional) - { - swprintf (Text, L"%.2f %s", (double)(signed)(Defrag->GetVolume().GetVolumeInfo().FreeBytes / - (BytesDivisor / 1024)) / 1024.0, BytesUnits); - } - else - { - AddCommas (Text, Defrag->GetVolume().GetVolumeInfo().FreeBytes / BytesDivisor); - wcscat (Text, L" "); - wcscat (Text, BytesUnits); - } - SetDlgItemText (Dlg, IDC_DISKFREEBYTES, Text); - - // DiskSizeClusters - AddCommas (Text, Defrag->GetVolume().GetVolumeInfo().ClusterCount); - wcscat (Text, L" clusters"); - SetDlgItemText (Dlg, IDC_DISKSIZECLUSTERS, Text); - - // DiskClusterSize - swprintf (Text, L"%u bytes", Defrag->GetVolume().GetVolumeInfo().ClusterSize); - SetDlgItemText (Dlg, IDC_DISKCLUSTERSIZE, Text); - - // DirsCount - AddCommas (Text, Report.DirsCount); - SetDlgItemText (Dlg, IDC_DIRSCOUNT, Text); - - // FilesCount - AddCommas (Text, Report.FilesCount); - SetDlgItemText (Dlg, IDC_FILESCOUNT, Text); - - // FilesFragged - swprintf (Text, L"(%.2f%%)", Report.PercentFragged); - AddCommas (Text2, Report.FraggedFiles.size()); - swprintf (Text3, L"%s %s", Text, Text2); - SetDlgItemText (Dlg, IDC_FILESFRAGGED, Text3); - - // Average Frags - swprintf (Text, L"%.2f", Report.AverageFragments); - SetDlgItemText (Dlg, IDC_AVERAGEFRAGS, Text); - - // FilesSizeBytes - if (Fractional) - { - swprintf (Text, L"%.2f %s", (double)(signed)(Report.FilesSizeBytes / - (BytesDivisor / 1024)) / 1024.0, BytesUnits); - } - else - { - AddCommas (Text, Report.FilesSizeBytes / (uint64)BytesDivisor); - wcscat (Text, L" "); - wcscat (Text, BytesUnits); - } - SetDlgItemText (Dlg, IDC_FILESSIZEBYTES, Text); - - // Files SizeOnDisk - if (Fractional) - { - swprintf (Text, L"%.2f %s", (double)(signed)((Report.FilesSizeBytes + Report.FilesSlackBytes) / - (BytesDivisor / 1024)) / 1024.0, BytesUnits); - } - else - { - AddCommas (Text, (Report.FilesSizeBytes + Report.FilesSlackBytes) / (uint64)BytesDivisor); - wcscat (Text, L" "); - wcscat (Text, BytesUnits); - - } - SetDlgItemText (Dlg, IDC_FILESSIZEONDISK, Text); - - // FilesSlackBytes - if (Fractional) - { - swprintf (Text, L"%.2f %s", (double)(signed)(Report.FilesSlackBytes / - (BytesDivisor / 1024)) / 1024.0, BytesUnits); - } - else - { - AddCommas (Text, Report.FilesSlackBytes / BytesDivisor); - wcscat (Text, L" "); - wcscat (Text, BytesUnits); - } - swprintf (Text2, L"(%.2f%%)", Report.PercentSlack); - swprintf (Text3, L"%s %s", Text2, Text); - SetDlgItemText (Dlg, IDC_FILESSLACKBYTES, Text3); - - // Recommendation - bool PFRec = false; // Recommend based off percent fragged files? - bool AFRec = false; // Recommend based off average fragments per file? - - if (Report.PercentFragged >= 5.0f) - PFRec = true; - - if (Report.AverageFragments >= 1.1f) - AFRec = true; - - wcscpy (Text, L"* "); - - if (PFRec) - { - swprintf - ( - Text2, - L"%.2f%% of the files on this volume are fragmented. ", - Report.PercentFragged - ); - - wcscat (Text, Text2); - } - - if (AFRec) - { - swprintf - ( - Text2, - L"The average fragments per file (%.2f) indicates a high degree of fragmentation. ", - Report.AverageFragments - ); - - wcscat (Text, Text2); - } - - if (Report.PercentFragged < 5.0f && Report.AverageFragments < 1.1f) - swprintf (Text, L"* No defragmentation is necessary at this point."); - else - if (Report.PercentFragged < 15.0f && Report.AverageFragments < 1.3f) - wcscat (Text, L"It is recommended that you perform a Fast Defrag."); - else - wcscat (Text, L"It is recommended that you perform an Extensive Defrag."); - - // Should we recommend a smaller cluster size? - if (Report.PercentSlack >= 10.0f) - { - swprintf - ( - Text2, - L"\n* A large amount of disk space (%.2f%%) is being lost " - L"due to a large (%u bytes) cluster size. It is recommended " - L"that you use a disk utility such as Partition Magic to " - L"reduce the cluster size of this volume.", - Report.PercentSlack, - Defrag->GetVolume().GetVolumeInfo().ClusterSize - ); - - wcscat (Text, Text2); - } - - SetDlgItemText (Dlg, IDC_RECOMMEND, Text); - - return; -} - - -INT_PTR CALLBACK ReportDialogProc (HWND Dlg, UINT Msg, WPARAM WParam, LPARAM LParam) -{ - switch (Msg) - { - case WM_INITDIALOG: - SetReportInfo (Dlg, Defrag->GetDefragReport (), 1, L"bytes", false); - return (1); - - case WM_COMMAND: - switch (LOWORD(WParam)) - { - case IDC_REPORTOK: - EndDialog (Dlg, 0); - return (1); - - case IDC_GIGABYTES: - SetReportInfo (Dlg, Defrag->GetDefragReport (), 1024*1024*1024, L"GB", true); - return (1); - - case IDC_MEGABYTES: - SetReportInfo (Dlg, Defrag->GetDefragReport (), 1024*1024, L"MB", false); - return (1); - - case IDC_KILOBYTES: - SetReportInfo (Dlg, Defrag->GetDefragReport (), 1024, L"KB", false); - return (1); - - case IDC_BYTES: - SetReportInfo (Dlg, Defrag->GetDefragReport (), 1, L"bytes", false); - return (1); - } - } - - return (0); -} diff --git a/rosapps/applications/fraginator/ReportDialog.h b/rosapps/applications/fraginator/ReportDialog.h deleted file mode 100644 index 84f7778b02e..00000000000 --- a/rosapps/applications/fraginator/ReportDialog.h +++ /dev/null @@ -1,18 +0,0 @@ -/***************************************************************************** - - ReportDialog - -*****************************************************************************/ - - -#ifndef REPORTDIALOG_H -#define REPORTDIALOG_H - - -#include - - -INT_PTR CALLBACK ReportDialogProc (HWND Dlg, UINT Msg, WPARAM WParam, LPARAM LParam); - - -#endif // REPORTDIALOG_H diff --git a/rosapps/applications/fraginator/Unfrag.cpp b/rosapps/applications/fraginator/Unfrag.cpp deleted file mode 100644 index 77802563632..00000000000 --- a/rosapps/applications/fraginator/Unfrag.cpp +++ /dev/null @@ -1,463 +0,0 @@ -/***************************************************************************** - - Unfrag - -*****************************************************************************/ - - -#include "Unfrag.h" -#include "DriveVolume.h" -#include "Defragment.h" -#include - - -bool QuietMode = false; -bool VerboseMode = false; - - -// Makes sure we're in Windows 2000 -bool CheckWinVer (void) -{ - OSVERSIONINFO OSVersion; - - ZeroMemory (&OSVersion, sizeof (OSVersion)); - OSVersion.dwOSVersionInfoSize = sizeof (OSVersion); - GetVersionEx (&OSVersion); - - // Need Windows 2000! - - // Check for NT first - // Actually what we do is check that weLL're not on Win31+Win32s and that we're - // not in Windows 9x. It's possible that there could be more Windows "platforms" - // in the future and there's no sense in claiming incompatibility. - if (OSVersion.dwPlatformId == VER_PLATFORM_WIN32s || - OSVersion.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) - { - return (false); - } - - // Ok weLL're in Windows NT, now make sure we're in 2000 - if (OSVersion.dwMajorVersion < 5) - return (false); - - // Kew, we're in at least Windows 2000 ("NT 5.0") - return (true); -} - - -wchar_t *AddCommas (wchar_t *Result, uint64 Number) -{ - wchar_t Temp[128]; - int TempLen; - //wchar_t *p = NULL; - int AddCommas = 0; - wchar_t *StrPosResult = NULL; - wchar_t *StrPosOrig = NULL; - - // we get the string form of the number, then we count down w/ AddCommas - // while copying the string from Temp1 to Result. when AddCommas % 3 == 1, - // slap in a commas as well, before the #. - swprintf (Temp, L"%I64u", Number); - AddCommas = TempLen = wcslen (Temp); - StrPosOrig = Temp; - StrPosResult = Result; - while (AddCommas) - { - if ((AddCommas % 3) == 0 && AddCommas != TempLen) // avoid stuff like ",345" - { - *StrPosResult = L','; - StrPosResult++; - } - - *StrPosResult = *StrPosOrig; - StrPosResult++; - StrPosOrig++; - - *StrPosResult = 0; - - AddCommas--; - } - - return (Result); -} - - -void PrintBanner (void) -{ - wprintf (L"%s v%s\n", APPNAME_CLI, APPVER_STR); - wprintf (L"%s\n", APPCOPYRIGHT); - wprintf (L"\n"); - - return; -} - - -void FraggerHelp (void) -{ - wprintf (L"Usage: unfrag drive: [...] <-f | -e>\n"); - wprintf (L"\n"); - wprintf (L"drive: : The drive to defrag. Should be two characters long, ie 'c:' or 'd:'.\n"); - wprintf (L" Multiple drives may be given, and all will be simultaneously\n"); - wprintf (L" defragmented using the same options.\n"); - wprintf (L"-f : Do a fast defragmentation. Files that are not fragmented will not be\n"); - wprintf (L" moved. Only one pass is made over the file list. Using this option\n"); - wprintf (L" may result in not all files being defragmented, depending on\n"); - wprintf (L" available disk space.\n"); - wprintf (L"-e : Do an extensive defragmention. Files will be moved in an attempt to\n"); - wprintf (L" defragment both files and free space.\n"); - - if (!CheckWinVer()) - { - wprintf (L"\n"); - wprintf (L"NOTE: This program requires Windows 2000, which is not presently running on\n"); - wprintf (L"this system.\n"); - } - - return; -} - - -void __cdecl DefragThread (LPVOID parm) -{ - Defragment *Defrag; - - Defrag = (Defragment *) parm; - Defrag->Start (); - - _endthread (); - return; -} - - -Defragment *StartDefragThread (wstring Drive, DefragType Method, HANDLE &Handle) -{ - Defragment *Defragger; - unsigned long Thread; - - Defragger = new Defragment (Drive, Method); - //Thread = /*CreateThread*/ _beginthreadex (NULL, 0, DefragThread, Defragger, 0, &ThreadID); - Thread = _beginthread (DefragThread, 0, Defragger); - Handle = *((HANDLE *)&Thread); - return (Defragger); -} - - -// Main Initialization -int wmain (int argc, wchar_t **argv) -{ - vector Drives; - vector Defrags; - DefragType DefragMode = DefragInvalid; - - PrintBanner (); - - // Parse command line arguments - bool ValidCmdLine = false; - for (int c = 0; c < argc; c++) - { - if (wcslen(argv[c]) == 2 && argv[c][1] == L':') - { - Drives.push_back (wcsupr(argv[c])); - } - else - if (argv[c][0] == L'-' || argv[c][0] == L'/' && wcslen(argv[c]) == 2) - { - switch (tolower(argv[c][1])) - { - case L'?' : - case L'h' : - FraggerHelp (); - return (0); - - case L'f' : - if (DefragMode != DefragInvalid) - { - ValidCmdLine = false; - break; - } - DefragMode = DefragFast; - ValidCmdLine = true; - break; - - case L'e' : - if (DefragMode != DefragInvalid) - { - ValidCmdLine = false; - break; - } - DefragMode = DefragExtensive; - ValidCmdLine = true; - break; - - } - } - } - - if (DefragMode == DefragInvalid) - ValidCmdLine = false; - - if (!ValidCmdLine) - { - wprintf (L"Invalid command-line options. Use '%s -?' for help.\n", argv[0]); - return (0); - } - - // Check OS requirements - if (!CheckWinVer()) - { - wprintf (L"Fatal Error: This program requires Windows 2000.\n"); - return (0); - } - - for (size_t d = 0; d < Drives.size (); d++) - { - HANDLE TossMe; - Defrags.push_back (StartDefragThread (Drives[d], DefragMode, TossMe)); - } - - for (size_t d = 0; d < Drives.size () - 1; d++) - wprintf (L"\n "); - - bool Continue = true; - HANDLE Screen; - - Screen = GetStdHandle (STD_OUTPUT_HANDLE); - while (Continue) - { - Sleep (25); - - // Get current screen coords - CONSOLE_SCREEN_BUFFER_INFO ScreenInfo; - - GetConsoleScreenBufferInfo (Screen, &ScreenInfo); - - // Now set back to the beginning - ScreenInfo.dwCursorPosition.X = 0; - ScreenInfo.dwCursorPosition.Y -= Drives.size(); - SetConsoleCursorPosition (Screen, ScreenInfo.dwCursorPosition); - - for (size_t d = 0; d < Drives.size (); d++) - { - wprintf (L"\n%6.2f%% %-70s", Defrags[d]->GetStatusPercent(), Defrags[d]->GetStatusString().c_str()); - } - - // Determine if we should keep going - Continue = false; - for (size_t d = 0; d < Drives.size (); d++) - { - if (!Defrags[d]->IsDoneYet() && !Defrags[d]->HasError()) - Continue = true; - } - } - -#if 0 - // Loop through the drives list - for (int d = 0; d < Drives.size(); d++) - { - DriveVolume *Drive; - - Drive = new DriveVolume; - - // First thing: build a file list. - wprintf (L"Opening volume %s ...", Drives[d].c_str()); - if (!Drive->Open (Drives[d])) - { - wprintf (L"FAILED\n\n"); - delete Drive; - continue; - } - wprintf (L"\n"); - - wprintf (L" Getting drive bitmap ..."); - if (!Drive->GetBitmap ()) - { - wprintf (L"FAILED\n\n"); - delete Drive; - continue; - } - wprintf (L"\n"); - - wprintf (L" Obtaining drive geometry ..."); - if (!Drive->ObtainInfo ()) - { - wprintf (L"FAILED\n\n"); - delete Drive; - continue; - } - wprintf (L"\n"); - - wprintf (L" Building file database for drive %s ...", Drives[d].c_str()); - if (!Drive->BuildFileList ()) - { - wprintf (L"FAILED\n\n"); - delete Drive; - continue; - } - wprintf (L"\n"); - - wprintf (L" %u files\n", Drive->GetDBFileCount ()); - - // Analyze only? - if (DefragMode == DefragAnalyze) - { - uint64 UsedBytes = 0; // total bytes used, with cluster size considerations - uint64 TotalBytes = 0; // total bytes used - uint64 SlackBytes = 0; // wasted space due to slack - uint32 Fragged = 0; // fragmented files - - wprintf (L" Analyzing ..."); - if (VerboseMode) - wprintf (L"\n"); - - for (int i = 0; i < Drive->GetDBFileCount(); i++) - { - uint64 Used; - uint64 Slack; - FileInfo Info; - - Info = Drive->GetDBFile (i); - - // Compute total used disk space - Used = ((Info.Size + Drive->GetClusterSize() - 1) / Drive->GetClusterSize()) * Drive->GetClusterSize(); - Slack = Used - Info.Size; - - UsedBytes += Used; - SlackBytes += Slack; - TotalBytes += Info.Size; - - if (VerboseMode) - { - wprintf (L" %s%s, ", Drive->GetDBDir (Info.DirIndice).c_str(), Info.Name.c_str()); - - if (Info.Attributes.AccessDenied) - wprintf (L"access was denied\n"); - else - { - if (Info.Attributes.Unmovable == 1) - wprintf (L"unmovable, "); - - wprintf (L"%I64u bytes, %I64u bytes on disk, %I64u bytes slack, %u fragments\n", - Info.Size, Used, Slack, Info.Fragments.size()); - } - } - - if (Info.Fragments.size() > 1) - Fragged++; - } - - if (!VerboseMode) - wprintf (L"\n"); - - // TODO: Make it not look like ass - wprintf (L"\n"); - wprintf (L" Overall Analysis\n"); - wprintf (L" ----------------\n"); - wprintf (L" %u clusters\n", Drive->GetClusterCount ()); - wprintf (L" %u bytes per cluster\n", Drive->GetClusterSize()); - wprintf (L" %I64u total bytes on drive\n", (uint64)Drive->GetClusterCount() * (uint64)Drive->GetClusterSize()); - wprintf (L"\n"); - wprintf (L" %u files\n", Drive->GetDBFileCount ()); - wprintf (L" %u contiguous files\n", Drive->GetDBFileCount () - Fragged); - wprintf (L" %u fragmented files\n", Fragged); - wprintf (L"\n"); - wprintf (L" %I64u bytes\n", TotalBytes); - wprintf (L" %I64u bytes on disk\n", UsedBytes); - wprintf (L" %I64u bytes slack\n", SlackBytes); - } - - // Fast defragment! - if (DefragMode == DefragFast || DefragMode == DefragExtensive) - { - uint32 i; - uint64 FirstFreeLCN; - wchar_t PrintName[80]; - int Width = 66; - - if (DefragMode == DefragFast) - wprintf (L" Performing fast file defragmentation ...\n"); - else - if (DefragMode == DefragExtensive) - wprintf (L" Performing extensive file defragmentation\n"); - - // Find first free LCN for speedier searches ... - Drive->FindFreeRange (0, 1, FirstFreeLCN); - - for (i = 0; i < Drive->GetDBFileCount(); i++) - { - FileInfo Info; - bool Result; - uint64 TargetLCN; - - wprintf (L"\r"); - - Info = Drive->GetDBFile (i); - - FitName (PrintName, Drive->GetDBDir (Info.DirIndice).c_str(), Info.Name.c_str(), Width); - wprintf (L" %6.2f%% %-66s", (float)i / (float)Drive->GetDBFileCount() * 100.0f, PrintName); - - // Can't defrag 0 byte files :) - if (Info.Fragments.size() == 0) - continue; - - // If doing fast defrag, skip non-fragmented files - if (Info.Fragments.size() == 1 && DefragMode == DefragFast) - continue; - - // Find a place that can fit the file - Result = Drive->FindFreeRange (FirstFreeLCN, Info.Clusters, TargetLCN); - - // If we're doing an extensive defrag and the file is already defragmented - // and if its new location would be after its current location, don't - // move it. - if (DefragMode == DefragExtensive && Info.Fragments.size() == 1) - { - if (TargetLCN > Info.Fragments[0].StartLCN) - continue; - } - - // Otherwise, defrag0rize it! - if (Result) - { - bool Success = false; - - if (Drive->MoveFileDumb (i, TargetLCN)) - Success = true; - else - { // hmm, look for another area to move it to - Result = Drive->FindFreeRange (TargetLCN + 1, Info.Clusters, TargetLCN); - if (Result) - { - if (Drive->MoveFileDumb (i, TargetLCN)) - Success = true; - else - { // Try updating the drive bitmap - if (Drive->GetBitmap ()) - { - Result = Drive->FindFreeRange (0, Info.Clusters, TargetLCN); - if (Result) - { - if (Drive->MoveFileDumb (i, TargetLCN)) - Success = true; - } - } - } - } - } - - if (!Success) - wprintf (L"\n -> failed\n"); - - Drive->FindFreeRange (0, 1, FirstFreeLCN); - } - } - - wprintf (L"\n"); - } - wprintf (L"Closing volume %s ...", Drives[d].c_str()); - delete Drive; - wprintf (L"\n"); - } -#endif - - return (0); -} diff --git a/rosapps/applications/fraginator/Unfrag.h b/rosapps/applications/fraginator/Unfrag.h deleted file mode 100644 index 894f622c6d2..00000000000 --- a/rosapps/applications/fraginator/Unfrag.h +++ /dev/null @@ -1,86 +0,0 @@ -/***************************************************************************** - - Unfrag - -*****************************************************************************/ - - -#ifndef UNFRAG_H -#define UNFRAG_H - - -// Blah blah blah your template name is too long ... SO WHAT -#ifdef _MSC_VER -#pragma warning (disable: 4786) -#endif - -// I forget what this disables -#ifdef __ICL -#pragma warning (disable: 268) -#endif - - -// Hello Mr. Platform SDK, please let us use Windows 2000 only features -#if 0 -#ifndef WINVER -#define WINVER 0x0500 -#define _WIN32_WINNT 0x0500 -#endif -#endif - -#include -#include -#include -#include -//#include -#include - -#define APPNAME_CLI L"Unfrag" -#define APPNAME_GUI L"Fraginator" -#define APPVER_STR L"1.03" -#define APPVER_NUM 1.03f -#define APPAUTHOR L"Rick Brewster" -#define APPCOPYRIGHT L"Copyright 2000-2002 Rick Brewster" - - -#include -#include -using namespace std; - - -typedef unsigned __int8 uint8; -typedef signed __int8 sint8; -typedef unsigned __int16 uint16; -typedef signed __int16 sint16; -typedef unsigned __int32 uint32; -typedef signed __int32 sint32; -typedef unsigned __int64 uint64; -typedef signed __int64 sint64; -typedef unsigned char uchar; - - -extern bool QuietMode; -extern bool VerboseMode; - - -typedef enum -{ - DefragInvalid, - DefragFast, - DefragExtensive, - DefragAnalyze -} DefragType; - - -extern bool CheckWinVer (void); - - -class Defragment; -extern Defragment *StartDefragThread (wstring Drive, DefragType Method, HANDLE &Handle); - - -extern wchar_t *AddCommas (wchar_t *Result, uint64 Number); - - -#endif // UNFRAG_H - diff --git a/rosapps/applications/fraginator/fraginator.rbuild b/rosapps/applications/fraginator/fraginator.rbuild deleted file mode 100644 index bba34e4c537..00000000000 --- a/rosapps/applications/fraginator/fraginator.rbuild +++ /dev/null @@ -1,26 +0,0 @@ - - - - - . - advapi32 - ntdll - comctl32 - msvcrt - Fraginator.cpp - MainDialog.cpp - Defragment.cpp - DriveVolume.cpp - ReportDialog.cpp - Unfrag.cpp - - - - . - advapi32 - ntdll - Unfrag.cpp - Defragment.cpp - DriveVolume.cpp - - diff --git a/rosapps/applications/fraginator/icon1.ico b/rosapps/applications/fraginator/icon1.ico deleted file mode 100644 index 4acbd2ca4a6..00000000000 Binary files a/rosapps/applications/fraginator/icon1.ico and /dev/null differ diff --git a/rosapps/applications/fraginator/lang/en-US.rc b/rosapps/applications/fraginator/lang/en-US.rc deleted file mode 100644 index 2e9e0cfb279..00000000000 --- a/rosapps/applications/fraginator/lang/en-US.rc +++ /dev/null @@ -1,230 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_MAIN DIALOGEX 0, 0, 346, 103 -STYLE DS_SHELLFONT | DS_CENTERMOUSE | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | - WS_CAPTION | WS_SYSMENU -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - COMBOBOX IDC_DRIVES_LIST,78,52,29,111,CBS_DROPDOWNLIST | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_METHODS_LIST,135,52,77,79,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_PRIORITY_LIST,223,52,59,91,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Start",IDC_STARTSTOP,294,7,45,15 - PUSHBUTTON "Help",ID_MAIN_HELP,294,28,45,15 - PUSHBUTTON "Exit",IDC_QUIT,294,49,45,15 - CONTROL 110,-1,"Static",SS_BITMAP | SS_SUNKEN | - WS_BORDER,7,7,63,58 - LTEXT "Choose a drive:",-1,78,40,50,8 - LTEXT "Choose an action:",-1,135,40,58,8 - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER | - 0x1,7,71,299,10 - CONTROL "Static",IDC_STATUS,"Static",SS_LEFTNOWORDWRAP | - SS_SUNKEN | WS_GROUP,7,86,332,10 - LTEXT "I am a monkey, hear me eeK",IDC_WISECRACKS,78,15,91,8 - LTEXT "100.00%",IDC_PERCENT,311,71,28,8,0,WS_EX_RIGHT - LTEXT "Process Priority:",-1,223,40,51,8 -END - -IDD_REPORT DIALOGEX 0, 0, 391, 169 -STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION -CAPTION "Report" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "Bytes",IDC_BYTES,7,148,50,14 - DEFPUSHBUTTON "Kilobytes",IDC_KILOBYTES,61,148,50,14 - DEFPUSHBUTTON "Megabytes",IDC_MEGABYTES,115,148,50,14 - DEFPUSHBUTTON "Gigabytes",IDC_GIGABYTES,169,148,50,14 - DEFPUSHBUTTON "OK",IDC_REPORTOK,334,148,50,14 - RTEXT "Volume",-1,7,7,24,8 - LTEXT "Capacity",-1,7,51,28,8 - RTEXT "(Drive Letter)",IDC_DRIVELETTER,63,7,117,10,SS_SUNKEN - RTEXT "(Disk Size, Bytes)",IDC_DISKSIZEBYTES,63,51,117,10, - SS_SUNKEN - RTEXT "(Disk Size, Clusters)",IDC_DISKSIZECLUSTERS,63,73,117, - 10,SS_SUNKEN - LTEXT "Total clusters",-1,7,73,43,8 - RTEXT "(Cluster size)",IDC_DISKCLUSTERSIZE,63,84,117,10, - SS_SUNKEN - LTEXT "Cluster size",-1,7,84,36,8 - RTEXT "(Files count)",IDC_FILESCOUNT,267,18,117,10,SS_SUNKEN - RTEXT "(Files size, bytes)",IDC_FILESSIZEBYTES,267,29,117,10, - SS_SUNKEN - LTEXT "# of files",-1,194,18,28,8 - LTEXT "Total size",-1,194,29,31,8 - LTEXT "Size on disk",-1,194,40,39,8 - RTEXT "(Total size, bytes)",IDC_FILESSIZEONDISK,267,40,117,10, - SS_SUNKEN - RTEXT "(Files slack bytes)",IDC_FILESSLACKBYTES,267,51,117,10, - SS_SUNKEN - LTEXT "Wasted slack",-1,194,51,44,8 - RTEXT "(Disk Free, Bytes)",IDC_DISKFREEBYTES,63,62,117,10, - SS_SUNKEN - LTEXT "Free space",-1,7,62,36,8 - RTEXT "(Files fragmented, count)",IDC_FILESFRAGGED,267,62,117, - 10,SS_SUNKEN - LTEXT "Fragmented files",-1,194,62,52,8 - RTEXT "(Dirs count)",IDC_DIRSCOUNT,267,7,117,10,SS_SUNKEN - LTEXT "# of directories",-1,194,7,48,8 - RTEXT "File System",-1,7,40,36,8 - RTEXT "(File System Name)",IDC_FILESYSTEM,63,40,117,10, - SS_SUNKEN - RTEXT "Volume Label",-1,7,18,44,8 - RTEXT "(Volume Name)",IDC_VOLUMELABEL,63,18,117,10,SS_SUNKEN - RTEXT "Serial",-1,7,29,18,8 - RTEXT "(Volume Serial)",IDC_VOLUMESERIAL,63,29,117,10, - SS_SUNKEN - RTEXT "(Average Frags Per File)",IDC_AVERAGEFRAGS,267,73,117, - 10,SS_SUNKEN - LTEXT "Average fragments per file",-1,194,73,60,20 - LTEXT "XX.X% of the files on this drive are fragmented. It is recommended that you perform a SSSSSSS defragmentation.", - IDC_RECOMMEND,7,106,377,38,SS_SUNKEN - LTEXT "Recommendations:",-1,7,96,62,8 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_MAIN, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 339 - TOPMARGIN, 7 - BOTTOMMARGIN, 96 - END - - IDD_REPORT, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 384 - TOPMARGIN, 7 - BOTTOMMARGIN, 162 - END -END -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""windows.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,0,0 - PRODUCTVERSION 1,3,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", " " - VALUE "FileDescription", "Fraginator" - VALUE "FileVersion", "1.03" - VALUE "InternalName", "Fraginator" - VALUE "LegalCopyright", "Copyright © 2000-2002 Rick Brewster" - VALUE "OriginalFilename", "Fraginator.exe" - VALUE "ProductName", "Fraginator" - VALUE "ProductVersion", "1.03" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_LOGO BITMAP "Fraginator Motif Icon.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON ICON "icon1.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// RT_MANIFEST -// - -1 RT_MANIFEST "default1.bin" -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/rosapps/applications/fraginator/lang/es-ES.rc b/rosapps/applications/fraginator/lang/es-ES.rc deleted file mode 100644 index 2c37d3371c8..00000000000 --- a/rosapps/applications/fraginator/lang/es-ES.rc +++ /dev/null @@ -1,229 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// - -///////////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_MAIN DIALOGEX 0, 0, 346, 103 -STYLE DS_SHELLFONT | DS_CENTERMOUSE | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | - WS_CAPTION | WS_SYSMENU -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - COMBOBOX IDC_DRIVES_LIST,78,52,29,111,CBS_DROPDOWNLIST | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_METHODS_LIST,135,52,77,79,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_PRIORITY_LIST,223,52,59,91,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Comenzar",IDC_STARTSTOP,294,7,45,15 - PUSHBUTTON "Ayuda",ID_MAIN_HELP,294,28,45,15 - PUSHBUTTON "Salir",IDC_QUIT,294,49,45,15 - CONTROL 110,-1,"Static",SS_BITMAP | SS_SUNKEN | - WS_BORDER,7,7,63,58 - LTEXT "Seleccione una unidad:",-1,78,40,50,8 - LTEXT "Seleccione una acción:",-1,135,40,58,8 - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER | - 0x1,7,71,299,10 - CONTROL "Static",IDC_STATUS,"Static",SS_LEFTNOWORDWRAP | - SS_SUNKEN | WS_GROUP,7,86,332,10 - LTEXT "I am a monkey, hear me eeK",IDC_WISECRACKS,78,15,91,8 - LTEXT "100.00%",IDC_PERCENT,311,71,28,8,0,WS_EX_RIGHT - LTEXT "Prioridad del proceso:",-1,223,40,51,8 -END - -IDD_REPORT DIALOGEX 0, 0, 391, 169 -STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION -CAPTION "Informe" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "Bytes",IDC_BYTES,7,148,50,14 - DEFPUSHBUTTON "Kilobytes",IDC_KILOBYTES,61,148,50,14 - DEFPUSHBUTTON "Megabytes",IDC_MEGABYTES,115,148,50,14 - DEFPUSHBUTTON "Gigabytes",IDC_GIGABYTES,169,148,50,14 - DEFPUSHBUTTON "Aceptar",IDC_REPORTOK,334,148,50,14 - RTEXT "Volumen",-1,7,7,24,8 - LTEXT "Capacidad",-1,7,51,28,8 - RTEXT "(Letra de la unidad)",IDC_DRIVELETTER,63,7,117,10,SS_SUNKEN - RTEXT "(Tamaño del disco, Bytes)",IDC_DISKSIZEBYTES,63,51,117,10, - SS_SUNKEN - RTEXT "(Tamaño del disco, Clusters)",IDC_DISKSIZECLUSTERS,63,73,117, - 10,SS_SUNKEN - LTEXT "Clusters totales",-1,7,73,43,8 - RTEXT "(Tamaño del Cluster)",IDC_DISKCLUSTERSIZE,63,84,117,10, - SS_SUNKEN - LTEXT "Tamaño del Cluster",-1,7,84,36,8 - RTEXT "(Cantidad de archivos)",IDC_FILESCOUNT,267,18,117,10,SS_SUNKEN - RTEXT "(Tamaño de archivos, bytes)",IDC_FILESSIZEBYTES,267,29,117,10, - SS_SUNKEN - LTEXT "# de archivos",-1,194,18,28,8 - LTEXT "Tamaño total",-1,194,29,31,8 - LTEXT "Tamaño en disco",-1,194,40,39,8 - RTEXT "(Tamaño total, bytes)",IDC_FILESSIZEONDISK,267,40,117,10, - SS_SUNKEN - RTEXT "(Files slack bytes)",IDC_FILESSLACKBYTES,267,51,117,10, - SS_SUNKEN - LTEXT "Wasted slack",-1,194,51,44,8 - RTEXT "(Espacio libre, Bytes)",IDC_DISKFREEBYTES,63,62,117,10, - SS_SUNKEN - LTEXT "Espacio libre",-1,7,62,36,8 - RTEXT "(Archivos fragmentados, cantidad)",IDC_FILESFRAGGED,267,62,117, - 10,SS_SUNKEN - LTEXT "Archivos fragmentados",-1,194,62,52,8 - RTEXT "(Cantidad de directorios)",IDC_DIRSCOUNT,267,7,117,10,SS_SUNKEN - LTEXT "# de directorios",-1,194,7,48,8 - RTEXT "Sistema de archivos",-1,7,40,36,8 - RTEXT "(Nombre del sistema de archivos)",IDC_FILESYSTEM,63,40,117,10, - SS_SUNKEN - RTEXT "Etiqueta del volumen",-1,7,18,44,8 - RTEXT "(Etiqueta del volumen)",IDC_VOLUMELABEL,63,18,117,10,SS_SUNKEN - RTEXT "Serie",-1,7,29,18,8 - RTEXT "(Serie del volumen)",IDC_VOLUMESERIAL,63,29,117,10, - SS_SUNKEN - RTEXT "(Media de fragmentos por archivo)",IDC_AVERAGEFRAGS,267,73,117, - 10,SS_SUNKEN - LTEXT "Media de fragmentos por archivo",-1,194,73,60,20 - LTEXT "XX.X% de los archivos de esta unidad están fragmentados. Es recomendable que realice una SSSSSSS defragmentación.", - IDC_RECOMMEND,7,106,377,38,SS_SUNKEN - LTEXT "Recomendaciones:",-1,7,96,62,8 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_MAIN, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 339 - TOPMARGIN, 7 - BOTTOMMARGIN, 96 - END - - IDD_REPORT, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 384 - TOPMARGIN, 7 - BOTTOMMARGIN, 162 - END -END -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""windows.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,0,0 - PRODUCTVERSION 1,3,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Organización", " " - VALUE "FileDescription", "Fraginator" - VALUE "Versión del archivo", "1.03" - VALUE "Nombre interno", "Fraginator" - VALUE "Copyright", "Copyright © 2000-2002 Rick Brewster" - VALUE "Nombre original del archivo", "Fraginator.exe" - VALUE "Nombre del producto", "Fraginator" - VALUE "Versión del producto", "1.03" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_LOGO BITMAP "Fraginator Motif Icon.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON ICON "icon1.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// RT_MANIFEST -// - -1 RT_MANIFEST "default1.bin" -#endif // Spanish resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/rosapps/applications/fraginator/lang/fr-FR.rc b/rosapps/applications/fraginator/lang/fr-FR.rc deleted file mode 100644 index be1f3795566..00000000000 --- a/rosapps/applications/fraginator/lang/fr-FR.rc +++ /dev/null @@ -1,230 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// - -///////////////////////////////////////////////////////////////////////////// -// French resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_MAIN DIALOGEX 0, 0, 346, 103 -STYLE DS_SHELLFONT | DS_CENTERMOUSE | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | - WS_CAPTION | WS_SYSMENU -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - COMBOBOX IDC_DRIVES_LIST,78,52,29,111,CBS_DROPDOWNLIST | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_METHODS_LIST,135,52,77,79,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_PRIORITY_LIST,223,52,59,91,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Démarrer",IDC_STARTSTOP,294,7,45,15 - PUSHBUTTON "Aide",ID_MAIN_HELP,294,28,45,15 - PUSHBUTTON "Quitter",IDC_QUIT,294,49,45,15 - CONTROL 110,-1,"Static",SS_BITMAP | SS_SUNKEN | - WS_BORDER,7,7,63,58 - LTEXT "Choisissez un lecteur :",-1,78,40,50,8 - LTEXT "Choisissez une action :",-1,135,40,58,8 - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER | - 0x1,7,71,299,10 - CONTROL "Static",IDC_STATUS,"Static",SS_LEFTNOWORDWRAP | - SS_SUNKEN | WS_GROUP,7,86,332,10 - LTEXT "Je suis un singe, ententez-moi eeK",IDC_WISECRACKS,78,15,91,8 - LTEXT "100.00%",IDC_PERCENT,311,71,28,8,0,WS_EX_RIGHT - LTEXT "Priorité du processus :",-1,223,40,51,8 -END - -IDD_REPORT DIALOGEX 0, 0, 391, 169 -STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION -CAPTION "Rapport" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "Octets",IDC_BYTES,7,148,50,14 - DEFPUSHBUTTON "Kilooctets",IDC_KILOBYTES,61,148,50,14 - DEFPUSHBUTTON "Mégaoctets",IDC_MEGABYTES,115,148,50,14 - DEFPUSHBUTTON "Gigaoctets",IDC_GIGABYTES,169,148,50,14 - DEFPUSHBUTTON "OK",IDC_REPORTOK,334,148,50,14 - RTEXT "Volume",-1,7,7,24,8 - LTEXT "Capacité",-1,7,51,28,8 - RTEXT "(Lettre du lecteur)",IDC_DRIVELETTER,63,7,117,10,SS_SUNKEN - RTEXT "(Taille du disque, Octets)",IDC_DISKSIZEBYTES,63,51,117,10, - SS_SUNKEN - RTEXT "(Taille du disque, Clusters)",IDC_DISKSIZECLUSTERS,63,73,117, - 10,SS_SUNKEN - LTEXT "Nombre de clusters",-1,7,73,43,8 - RTEXT "(Taille d'un Cluster)",IDC_DISKCLUSTERSIZE,63,84,117,10, - SS_SUNKEN - LTEXT "Taille d'un cluster",-1,7,84,36,8 - RTEXT "(Nombre de fichiers)",IDC_FILESCOUNT,267,18,117,10,SS_SUNKEN - RTEXT "(Taille des fichiers, octets)",IDC_FILESSIZEBYTES,267,29,117,10, - SS_SUNKEN - LTEXT "# des fichiers",-1,194,18,28,8 - LTEXT "Taille totale",-1,194,29,31,8 - LTEXT "Taille sur le disque",-1,194,40,39,8 - RTEXT "(Taille totale, octets)",IDC_FILESSIZEONDISK,267,40,117,10, - SS_SUNKEN - RTEXT "(Octets perdus par les fichiers)",IDC_FILESSLACKBYTES,267,51,117,10, - SS_SUNKEN - LTEXT "Espace perdu",-1,194,51,44,8 - RTEXT "(Espace libre, octets)",IDC_DISKFREEBYTES,63,62,117,10, - SS_SUNKEN - LTEXT "Espace libre",-1,7,62,36,8 - RTEXT "(Fichiers fragmentés, nombre)",IDC_FILESFRAGGED,267,62,117, - 10,SS_SUNKEN - LTEXT "Fichiers fragmentés",-1,194,62,52,8 - RTEXT "(Nombre de répertoires)",IDC_DIRSCOUNT,267,7,117,10,SS_SUNKEN - LTEXT "# répertoires",-1,194,7,48,8 - RTEXT "Système de fichiers",-1,7,40,36,8 - RTEXT "(Nom du système de fichiers)",IDC_FILESYSTEM,63,40,117,10, - SS_SUNKEN - RTEXT "Nom du volume",-1,7,18,44,8 - RTEXT "(Nom du volume)",IDC_VOLUMELABEL,63,18,117,10,SS_SUNKEN - RTEXT "Numéro de série",-1,7,29,18,8 - RTEXT "(Numéro de série du volume)",IDC_VOLUMESERIAL,63,29,117,10, - SS_SUNKEN - RTEXT "(Fragements par fichier en moyenne)",IDC_AVERAGEFRAGS,267,73,117, - 10,SS_SUNKEN - LTEXT "Fragements par fichier en moyenne",-1,194,73,60,20 - LTEXT "XX.X% des fichiers sur ce lecteur sont fragmentés. Il est recommandé que vous effectuiez une défragmentation.", - IDC_RECOMMEND,7,106,377,38,SS_SUNKEN - LTEXT "Recommandations :",-1,7,96,62,8 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_MAIN, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 339 - TOPMARGIN, 7 - BOTTOMMARGIN, 96 - END - - IDD_REPORT, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 384 - TOPMARGIN, 7 - BOTTOMMARGIN, 162 - END -END -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""windows.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,0,0 - PRODUCTVERSION 1,3,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", " " - VALUE "FileDescription", "Fraginator" - VALUE "FileVersion", "1.03" - VALUE "InternalName", "Fraginator" - VALUE "LegalCopyright", "Copyright © 2000-2002 Rick Brewster" - VALUE "OriginalFilename", "Fraginator.exe" - VALUE "ProductName", "Fraginator" - VALUE "ProductVersion", "1.03" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_LOGO BITMAP "Fraginator Motif Icon.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON ICON "icon1.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// RT_MANIFEST -// - -1 RT_MANIFEST "default1.bin" -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/rosapps/applications/fraginator/lang/no-NO.rc b/rosapps/applications/fraginator/lang/no-NO.rc deleted file mode 100644 index 86a12cd7377..00000000000 --- a/rosapps/applications/fraginator/lang/no-NO.rc +++ /dev/null @@ -1,230 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// - -///////////////////////////////////////////////////////////////////////////// -// Norwegian (N.O.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_MAIN DIALOGEX 0, 0, 346, 103 -STYLE DS_SHELLFONT | DS_CENTERMOUSE | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | - WS_CAPTION | WS_SYSMENU -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - COMBOBOX IDC_DRIVES_LIST,78,52,29,111,CBS_DROPDOWNLIST | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_METHODS_LIST,135,52,77,79,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_PRIORITY_LIST,223,52,59,91,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Start",IDC_STARTSTOP,294,7,45,15 - PUSHBUTTON "Hjelp",ID_MAIN_HELP,294,28,45,15 - PUSHBUTTON "Avslutt",IDC_QUIT,294,49,45,15 - CONTROL 110,-1,"Static",SS_BITMAP | SS_SUNKEN | - WS_BORDER,7,7,63,58 - LTEXT "Velg en stasjon:",-1,78,40,50,8 - LTEXT "Velg en handling:",-1,135,40,58,8 - CONTROL "Prosess1",IDC_PROGRESS,"msctls_progress32",WS_BORDER | - 0x1,7,71,299,10 - CONTROL "Statisk",IDC_STATUS,"Statisk",SS_LEFTNOWORDWRAP | - SS_SUNKEN | WS_GROUP,7,86,332,10 - LTEXT "Jeg er en ape, hør meg eeK",IDC_WISECRACKS,78,15,91,8 - LTEXT "100.00%",IDC_PERCENT,311,71,28,8,0,WS_EX_RIGHT - LTEXT "Prosess proritet:",-1,223,40,51,8 -END - -IDD_REPORT DIALOGEX 0, 0, 391, 169 -STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION -CAPTION "Rapport" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "Byte",IDC_BYTES,7,148,50,14 - DEFPUSHBUTTON "KB",IDC_KILOBYTES,61,148,50,14 - DEFPUSHBUTTON "MB",IDC_MEGABYTES,115,148,50,14 - DEFPUSHBUTTON "GB",IDC_GIGABYTES,169,148,50,14 - DEFPUSHBUTTON "OK",IDC_REPORTOK,334,148,50,14 - RTEXT "Stasjon",-1,7,7,24,8 - LTEXT "Kapasitet",-1,7,51,28,8 - RTEXT "(Stasjon bokstav)",IDC_DRIVELETTER,63,7,117,10,SS_SUNKEN - RTEXT "(Disk størrelse, Byte)",IDC_DISKSIZEBYTES,63,51,117,10, - SS_SUNKEN - RTEXT "(Disk størrelse, Cluster)",IDC_DISKSIZECLUSTERS,63,73,117, - 10,SS_SUNKEN - LTEXT "Total clusters",-1,7,73,43,8 - RTEXT "(Cluster størrelse)",IDC_DISKCLUSTERSIZE,63,84,117,10, - SS_SUNKEN - LTEXT "Cluster størrelse",-1,7,84,36,8 - RTEXT "(Files count)",IDC_FILESCOUNT,267,18,117,10,SS_SUNKEN - RTEXT "(Fil størrelse, byte)",IDC_FILESSIZEBYTES,267,29,117,10, - SS_SUNKEN - LTEXT "# filer",-1,194,18,28,8 - LTEXT "Total størrelse",-1,194,29,31,8 - LTEXT "diskstørrelse",-1,194,40,39,8 - RTEXT "(Total størrelse, byte)",IDC_FILESSIZEONDISK,267,40,117,10, - SS_SUNKEN - RTEXT "(Fil slack byte)",IDC_FILESSLACKBYTES,267,51,117,10, - SS_SUNKEN - LTEXT "Wasted slack",-1,194,51,44,8 - RTEXT "(Ledig plass, Byte)",IDC_DISKFREEBYTES,63,62,117,10, - SS_SUNKEN - LTEXT "Ledig plass",-1,7,62,36,8 - RTEXT "(Filer fragmentert, count)",IDC_FILESFRAGGED,267,62,117, - 10,SS_SUNKEN - LTEXT "Fragmenterte filer",-1,194,62,52,8 - RTEXT "(Dirs count)",IDC_DIRSCOUNT,267,7,117,10,SS_SUNKEN - LTEXT "# mapper",-1,194,7,48,8 - RTEXT "Filsystem",-1,7,40,36,8 - RTEXT "(Filsystem navn)",IDC_FILESYSTEM,63,40,117,10, - SS_SUNKEN - RTEXT "Volume Label",-1,7,18,44,8 - RTEXT "(Stasjon navn)",IDC_VOLUMELABEL,63,18,117,10,SS_SUNKEN - RTEXT "Serial",-1,7,29,18,8 - RTEXT "(Volume Serial)",IDC_VOLUMESERIAL,63,29,117,10, - SS_SUNKEN - RTEXT "(Average Frags Per File)",IDC_AVERAGEFRAGS,267,73,117, - 10,SS_SUNKEN - LTEXT "Average fragments per file",-1,194,73,60,20 - LTEXT "XX.X% av disse filene på denne stasjonen er fragmentert. Det er anbefalt at du utfører en SSSSSSS defragmentasjon.", - IDC_RECOMMEND,7,106,377,38,SS_SUNKEN - LTEXT "Anbefalinger:",-1,7,96,62,8 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_MAIN, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 339 - TOPMARGIN, 7 - BOTTOMMARGIN, 96 - END - - IDD_REPORT, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 384 - TOPMARGIN, 7 - BOTTOMMARGIN, 162 - END -END -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""windows.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,0,0 - PRODUCTVERSION 1,3,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Bedriftnavn", " " - VALUE "Filbeskrivelse", "Fraginator" - VALUE "Filversjon", "1.03" - VALUE "Internasjonaltnavn", "Fraginator" - VALUE "LegalCopyright", "enerett © 2000-2002 Rick Brewster" - VALUE "Originalfilnavn", "Fraginator.exe" - VALUE "Produktnavn", "Fraginator" - VALUE "ProduktVersjon", "1.03" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_LOGO BITMAP "Fraginator Motif Icon.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON ICON "icon1.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// RT_MANIFEST -// - -1 RT_MANIFEST "default1.bin" -#endif // Norwegian (N.O.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/rosapps/applications/fraginator/lang/sk-SK.rc b/rosapps/applications/fraginator/lang/sk-SK.rc deleted file mode 100644 index ad07d82382f..00000000000 --- a/rosapps/applications/fraginator/lang/sk-SK.rc +++ /dev/null @@ -1,234 +0,0 @@ -/* TRANSLATOR : Mário Kaèmár /Mario Kacmar/ aka Kario (kario@szm.sk) - * DATE OF TR.: 04-09-2008 - */ - -// Microsoft Visual C++ generated resource script. -// - -///////////////////////////////////////////////////////////////////////////// -// Slovak resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT -#pragma code_page(1250) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_MAIN DIALOGEX 0, 0, 346, 103 -STYLE DS_SHELLFONT | DS_CENTERMOUSE | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | - WS_CAPTION | WS_SYSMENU -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - COMBOBOX IDC_DRIVES_LIST,78,52,29,111,CBS_DROPDOWNLIST | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_METHODS_LIST,135,52,77,79,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_PRIORITY_LIST,223,52,59,91,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Zaèa",IDC_STARTSTOP,294,7,45,15 - PUSHBUTTON "Pomocník",ID_MAIN_HELP,294,28,45,15 - PUSHBUTTON "Ukonèi",IDC_QUIT,294,49,45,15 - CONTROL 110,-1,"Static",SS_BITMAP | SS_SUNKEN | - WS_BORDER,7,7,63,58 - LTEXT "Vyberte jednotku:",-1,78,40,50,8 - LTEXT "Vyberte akciu:",-1,135,40,58,8 - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER | - 0x1,7,71,299,10 - CONTROL "Static",IDC_STATUS,"Static",SS_LEFTNOWORDWRAP | - SS_SUNKEN | WS_GROUP,7,86,332,10 - LTEXT "I am a monkey, hear me eeK",IDC_WISECRACKS,78,15,91,8 - LTEXT "100.00%",IDC_PERCENT,311,71,28,8,0,WS_EX_RIGHT - LTEXT "Priorita procesu:",-1,223,40,51,8 -END - -IDD_REPORT DIALOGEX 0, 0, 391, 169 -STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION -CAPTION "Hlásenie" //Report -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "Bajty",IDC_BYTES,7,148,50,14 - DEFPUSHBUTTON "Kilobajty",IDC_KILOBYTES,61,148,50,14 - DEFPUSHBUTTON "Megabajty",IDC_MEGABYTES,115,148,50,14 - DEFPUSHBUTTON "Gigabajty",IDC_GIGABYTES,169,148,50,14 - DEFPUSHBUTTON "OK",IDC_REPORTOK,334,148,50,14 - RTEXT "Médium",-1,7,7,24,8 //Volume - LTEXT "Kapacita",-1,7,51,28,8 - RTEXT "(Písmeno jednotky)",IDC_DRIVELETTER,63,7,117,10,SS_SUNKEN - RTEXT "(Ve¾kos disku, bajty)",IDC_DISKSIZEBYTES,63,51,117,10, - SS_SUNKEN - RTEXT "(Ve¾kos disku, klastre)",IDC_DISKSIZECLUSTERS,63,73,117, - 10,SS_SUNKEN - LTEXT "Klastrov spolu",-1,7,73,43,8 //Total clusters, Súèet klastrov, Klastrov celkom - RTEXT "(Ve¾kos klastra)",IDC_DISKCLUSTERSIZE,63,84,117,10, - SS_SUNKEN - LTEXT "Ve¾kos klastra",-1,7,84,36,8 - RTEXT "(Poèe súborov)",IDC_FILESCOUNT,267,18,117,10,SS_SUNKEN - RTEXT "(Poèe súborov, bajty)",IDC_FILESSIZEBYTES,267,29,117,10, - SS_SUNKEN - LTEXT "# súborov",-1,194,18,28,8 - LTEXT "Celková ve¾kos",-1,194,29,31,8 - LTEXT "Ve¾kos disku",-1,194,40,39,8 - RTEXT "(Celková ve¾kos, bajty)",IDC_FILESSIZEONDISK,267,40,117,10, - SS_SUNKEN - RTEXT "(Files slack bytes)",IDC_FILESSLACKBYTES,267,51,117,10, - SS_SUNKEN - LTEXT "Wasted slack",-1,194,51,44,8 - RTEXT "(Disk Free, Bytes)",IDC_DISKFREEBYTES,63,62,117,10, - SS_SUNKEN - LTEXT "Vo¾né miesto",-1,7,62,36,8 - RTEXT "(Fragmentované súbory, poèet)",IDC_FILESFRAGGED,267,62,117, - 10,SS_SUNKEN - LTEXT "Fragmentované súbory",-1,194,62,52,8 - RTEXT "(Poèet adresárov)",IDC_DIRSCOUNT,267,7,117,10,SS_SUNKEN - LTEXT "# adresárov",-1,194,7,48,8 - RTEXT "Systém súborov",-1,7,40,36,8 - RTEXT "(Názov systému súborov)",IDC_FILESYSTEM,63,40,117,10, - SS_SUNKEN - RTEXT "Volume Label",-1,7,18,44,8 - RTEXT "(Volume Name)",IDC_VOLUMELABEL,63,18,117,10,SS_SUNKEN - RTEXT "Serial",-1,7,29,18,8 - RTEXT "(Volume Serial)",IDC_VOLUMESERIAL,63,29,117,10, - SS_SUNKEN - RTEXT "(Priemerne fragmentov na súbor)",IDC_AVERAGEFRAGS,267,73,117, - 10,SS_SUNKEN - LTEXT "Priemerne fragmentov na súbor",-1,194,73,60,20 - LTEXT "XX.X% súborov na tejto jednotke je fragmentovaných. Odporúèa sa, aby ste vykonali SSSSSSS defragmentáciu.", - IDC_RECOMMEND,7,106,377,38,SS_SUNKEN - LTEXT "Odporúèania:",-1,7,96,62,8 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_MAIN, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 339 - TOPMARGIN, 7 - BOTTOMMARGIN, 96 - END - - IDD_REPORT, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 384 - TOPMARGIN, 7 - BOTTOMMARGIN, 162 - END -END -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""windows.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,0,0 - PRODUCTVERSION 1,3,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Názov spoloènosti", " " - VALUE "Popis súboru", "Fraginator" - VALUE "Verzia súboru", "1.03" - VALUE "Vnútorný názov", "Fraginator" - VALUE "Autorské práva", "Copyright © 2000-2002 Rick Brewster" - VALUE "Pôvodný názov súboru", "Fraginator.exe" - VALUE "Názov produktu", "Fraginator" - VALUE "Verzia produktu", "1.03" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_LOGO BITMAP "Fraginator Motif Icon.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON ICON "icon1.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// RT_MANIFEST -// - -1 RT_MANIFEST "default1.bin" -#endif // Slovak resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/rosapps/applications/fraginator/lang/uk-UA.rc b/rosapps/applications/fraginator/lang/uk-UA.rc deleted file mode 100644 index d078206c092..00000000000 --- a/rosapps/applications/fraginator/lang/uk-UA.rc +++ /dev/null @@ -1,230 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_MAIN DIALOGEX 0, 0, 346, 103 -STYLE DS_SHELLFONT | DS_CENTERMOUSE | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | - WS_CAPTION | WS_SYSMENU -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - COMBOBOX IDC_DRIVES_LIST,78,52,29,111,CBS_DROPDOWNLIST | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_METHODS_LIST,135,52,77,79,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_PRIORITY_LIST,223,52,59,91,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Ñòàðò",IDC_STARTSTOP,294,7,45,15 - PUSHBUTTON "Äîïîìîãà",ID_MAIN_HELP,294,28,45,15 - PUSHBUTTON "Âèõ³ä",IDC_QUIT,294,49,45,15 - CONTROL 110,-1,"Static",SS_BITMAP | SS_SUNKEN | - WS_BORDER,7,7,63,58 - LTEXT "Âèáåð³òü äèñê:",-1,78,40,50,8 - LTEXT "Âèáåð³òü ä³þ:",-1,135,40,58,8 - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER | - 0x1,7,71,299,10 - CONTROL "Static",IDC_STATUS,"Static",SS_LEFTNOWORDWRAP | - SS_SUNKEN | WS_GROUP,7,86,332,10 - LTEXT "I am a monkey, hear me eeK",IDC_WISECRACKS,78,15,91,8 - LTEXT "100.00%",IDC_PERCENT,311,71,28,8,0,WS_EX_RIGHT - LTEXT "Ïð³îðèòåò Ïðîöåñó:",-1,223,40,51,8 -END - -IDD_REPORT DIALOGEX 0, 0, 391, 169 -STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION -CAPTION "Ðàïîðò" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "Áàéò",IDC_BYTES,7,148,50,14 - DEFPUSHBUTTON "ʳëîáàéò",IDC_KILOBYTES,61,148,50,14 - DEFPUSHBUTTON "Ìåãàáàéò",IDC_MEGABYTES,115,148,50,14 - DEFPUSHBUTTON "óãàáàéò",IDC_GIGABYTES,169,148,50,14 - DEFPUSHBUTTON "Òàê",IDC_REPORTOK,334,148,50,14 - RTEXT "Òîì",-1,7,7,24,8 - LTEXT "Îá'ºì",-1,7,51,28,8 - RTEXT "(Áóêâà Äèñêó)",IDC_DRIVELETTER,63,7,117,10,SS_SUNKEN - RTEXT "(Ðîçì³ð Äèñêó, Áàéò³â)",IDC_DISKSIZEBYTES,63,51,117,10, - SS_SUNKEN - RTEXT "(Ðîçì³ð äèñêó, Êëàñòåð³â)",IDC_DISKSIZECLUSTERS,63,73,117, - 10,SS_SUNKEN - LTEXT "Âñüîãî êëàñòåð³â",-1,7,73,43,8 - RTEXT "(Ðîçì³ð êëàñòåðà)",IDC_DISKCLUSTERSIZE,63,84,117,10, - SS_SUNKEN - LTEXT "Ðîçì³ð êëàñòåðà",-1,7,84,36,8 - RTEXT "(ʳëü-ñòü ôàéë³â)",IDC_FILESCOUNT,267,18,117,10,SS_SUNKEN - RTEXT "(Ðîçì³ð ôàéë³â, áàéò³â)",IDC_FILESSIZEBYTES,267,29,117,10, - SS_SUNKEN - LTEXT "# ôàéë³â",-1,194,18,28,8 - LTEXT "Çàãàëüíèé ðîçì³ð",-1,194,29,31,8 - LTEXT "Ðîçì³ð íà äèñêó",-1,194,40,39,8 - RTEXT "(Çàãàëüíèé ðîçì³ð, áàéò³â)",IDC_FILESSIZEONDISK,267,40,117,10, - SS_SUNKEN - RTEXT "(Files slack bytes)",IDC_FILESSLACKBYTES,267,51,117,10, - SS_SUNKEN - LTEXT "Wasted slack",-1,194,51,44,8 - RTEXT "(Disk Free, Áàéò³â)",IDC_DISKFREEBYTES,63,62,117,10, - SS_SUNKEN - LTEXT "³ëüíå ì³ñöå",-1,7,62,36,8 - RTEXT "(Ôðàãìåíòîâàí³ ôàéëè, ê³ëüê³ñòü)",IDC_FILESFRAGGED,267,62,117, - 10,SS_SUNKEN - LTEXT "Ôðàãìåíòîâàí³ ôàéëè",-1,194,62,52,8 - RTEXT "(ʳëü-ñòü äèðåêòîð³é)",IDC_DIRSCOUNT,267,7,117,10,SS_SUNKEN - LTEXT "# äèðåêòîð³é",-1,194,7,48,8 - RTEXT "Ôàéëîâà Ñèñòåìà",-1,7,40,36,8 - RTEXT "(Íàçâà Ôàéëîâî¿ Ñèñòåìè)",IDC_FILESYSTEM,63,40,117,10, - SS_SUNKEN - RTEXT "̳òêà Òîìó",-1,7,18,44,8 - RTEXT "(Íàçâà Òîìó)",IDC_VOLUMELABEL,63,18,117,10,SS_SUNKEN - RTEXT "Serial",-1,7,29,18,8 - RTEXT "(Volume Serial)",IDC_VOLUMESERIAL,63,29,117,10, - SS_SUNKEN - RTEXT "(Average Frags Per File)",IDC_AVERAGEFRAGS,267,73,117, - 10,SS_SUNKEN - LTEXT "Ôðàãìåòí³â â ôàéë³ â ñåðåäíüîìó",-1,194,73,60,20 - LTEXT "XX.X% ôàéë³â íà öüîìó äèñêó ôðàãìåíòîâàí³. Áàæàíî ïðîâåñòè SSSSSSS äåôðàãìåíòàö³þ.", - IDC_RECOMMEND,7,106,377,38,SS_SUNKEN - LTEXT "Ðåêîìåíäàö³¿:",-1,7,96,62,8 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_MAIN, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 339 - TOPMARGIN, 7 - BOTTOMMARGIN, 96 - END - - IDD_REPORT, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 384 - TOPMARGIN, 7 - BOTTOMMARGIN, 162 - END -END -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""windows.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,0,0 - PRODUCTVERSION 1,3,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", " " - VALUE "FileDescription", "Fraginator" - VALUE "FileVersion", "1.03" - VALUE "InternalName", "Fraginator" - VALUE "LegalCopyright", "Copyright © 2000-2002 Rick Brewster" - VALUE "OriginalFilename", "Fraginator.exe" - VALUE "ProductName", "Fraginator" - VALUE "ProductVersion", "1.03" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_LOGO BITMAP "Fraginator Motif Icon.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON ICON "icon1.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// RT_MANIFEST -// - -1 RT_MANIFEST "default1.bin" -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/rosapps/applications/fraginator/resource.h b/rosapps/applications/fraginator/resource.h deleted file mode 100644 index 673c369d856..00000000000 --- a/rosapps/applications/fraginator/resource.h +++ /dev/null @@ -1,51 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by Fraginator.rc -// -#define IDD_DIALOG1 101 -#define IDD_MAIN 101 -#define IDD_REPORT 106 -#define IDB_LOGO 110 -#define IDI_ICON 114 -#define IDC_QUIT 1010 -#define IDC_STARTSTOP 1014 -#define IDC_METHODS_LIST 1016 -#define IDC_DRIVES_LIST 1019 -#define IDC_PROGRESS 1021 -#define IDC_PERCENT 1022 -#define IDC_STATUS 1023 -#define IDC_DISKSIZEBYTES 1027 -#define IDC_DRIVELETTER 1028 -#define IDC_REPORTOK 1029 -#define IDC_DISKSIZECLUSTERS 1030 -#define IDC_DISKCLUSTERSIZE 1031 -#define IDC_FILESYSTEM 1032 -#define IDC_WISECRACKS 1033 -#define IDC_VOLUMELABEL 1033 -#define IDC_VOLUMESERIAL 1034 -#define IDC_BYTES 1035 -#define IDC_KILOBYTES 1036 -#define IDC_RECOMMEND 1037 -#define IDC_FILESCOUNT 1038 -#define IDC_FILESSIZEBYTES 1039 -#define IDC_FILESSIZEONDISK 1040 -#define IDC_FILESSLACKBYTES 1041 -#define IDC_GIGABYTES 1043 -#define IDC_DISKFREEBYTES 1044 -#define IDC_MEGABYTES 1045 -#define IDC_FILESFRAGGED 1047 -#define IDC_DIRSCOUNT 1048 -#define IDC_AVERAGEFRAGS 1049 -#define ID_MAIN_HELP 1054 -#define IDC_PRIORITY_LIST 1057 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 118 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1058 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/rosapps/applications/imagesoft/CMakeLists.txt b/rosapps/applications/imagesoft/CMakeLists.txt deleted file mode 100644 index 27e1ae8ff3d..00000000000 --- a/rosapps/applications/imagesoft/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ - -set_rc_compiler() - -list(APPEND SOURCE - about.c - adjust.c - brightness.c - contrast.c - custcombo.c - floatwindow.c - font.c - imagesoft.c - imgedwnd.c - mainwnd.c - misc.c - opensave.c - tooldock.c - imagesoft.rc) - -add_pch(imagesoft precomp.h) -add_executable(imagesoft ${SOURCE}) -set_module_type(imagesoft win32gui UNICODE) -add_importlibs(imagesoft gdi32 user32 advapi32 version comctl32 shell32 comdlg32 msvcrt kernel32) - -add_cd_file(TARGET imagesoft DESTINATION reactos/system32 FOR all) diff --git a/rosapps/applications/imagesoft/about.c b/rosapps/applications/imagesoft/about.c deleted file mode 100644 index a53af44d64e..00000000000 --- a/rosapps/applications/imagesoft/about.c +++ /dev/null @@ -1,54 +0,0 @@ -#include - -INT_PTR CALLBACK -AboutDialogProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam) -{ - HWND hLicenseEditWnd; - HICON hIcon = NULL; - TCHAR strLicense[700]; - - switch (message) - { - case WM_INITDIALOG: - - hIcon = (HICON) LoadImage(hInstance, - MAKEINTRESOURCE(IDI_IMAGESOFTICON), - IMAGE_ICON, - 16, - 16, - 0); - - SendMessage(hDlg, - WM_SETICON, - ICON_SMALL, - (LPARAM)hIcon); - - hLicenseEditWnd = GetDlgItem(hDlg, - IDC_LICENSE_EDIT); - - LoadString(hInstance, - IDS_LICENSE, - strLicense, - sizeof(strLicense) / sizeof(TCHAR)); - - SetWindowText(hLicenseEditWnd, - strLicense); - return TRUE; - - case WM_COMMAND: - if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL)) - { - DestroyIcon(hIcon); - EndDialog(hDlg, - LOWORD(wParam)); - return TRUE; - } - - break; - } - - return FALSE; -} diff --git a/rosapps/applications/imagesoft/adjust.c b/rosapps/applications/imagesoft/adjust.c deleted file mode 100644 index 9154692443d..00000000000 --- a/rosapps/applications/imagesoft/adjust.c +++ /dev/null @@ -1,525 +0,0 @@ -#include - - -BOOL -DisplayBlackAndWhite(HWND hwnd, - HDC hdcMem, - HBITMAP hBitmap) -{ - BITMAPINFO bi; - BITMAP bitmap; - BOOL bRes; - DWORD Count = 0; - INT i, j; - PBYTE pBits; - RECT rc; - - GetObject(hBitmap, - sizeof(BITMAP), - &bitmap); - - /* Bitmap header */ - bi.bmiHeader.biSize = sizeof(bi.bmiHeader); - bi.bmiHeader.biWidth = bitmap.bmWidth; - bi.bmiHeader.biHeight = bitmap.bmHeight; - bi.bmiHeader.biPlanes = 1; - bi.bmiHeader.biBitCount = 32; - bi.bmiHeader.biCompression = BI_RGB; - bi.bmiHeader.biSizeImage = bitmap.bmWidth * bitmap.bmHeight * 4; - bi.bmiHeader.biClrUsed = 0; - bi.bmiHeader.biClrImportant = 0; - - /* Buffer */ - pBits = (PBYTE)HeapAlloc(ProcessHeap, - 0, - bitmap.bmWidth * bitmap.bmHeight * 4); - if (!pBits) - return FALSE; - - /* get the bits from the original bitmap */ - bRes = GetDIBits(hdcMem, - hBitmap, - 0, - bitmap.bmHeight, - pBits, - &bi, - DIB_RGB_COLORS); - - for (i = 0; i < bitmap.bmHeight; i++) - { - for (j = 0; j < bitmap.bmWidth; j++) - { - DWORD Val = 0; - INT b, g, r; - - CopyMemory(&Val, - &pBits[Count], - 4); - - /* Get pixels in reverse order */ - b = GetRValue(Val); - g = GetGValue(Val); - r = GetBValue(Val); - - /* get the average color value */ - Val = (r + g + b) / 3; - - /* assign to RGB color */ - Val = RGB(Val, Val, Val); - CopyMemory(&pBits[Count], - &Val, - 4); - - Count+=4; - } - } - - /* Set the new pixel bits */ - SetDIBits(hdcMem, - hBitmap, - 0, - bRes, - pBits, - &bi, - DIB_RGB_COLORS); - - HeapFree(ProcessHeap, - 0, - pBits); - - GetClientRect(hwnd, - &rc); - - InvalidateRect(hwnd, - &rc, - FALSE); - - return TRUE; -} - - -BOOL -DisplayInvertedColors(HWND hwnd, - HDC hdcMem, - HBITMAP hBitmap) -{ - BITMAPINFO bi; - BITMAP bitmap; - BOOL bRes; - DWORD Count = 0; - INT i, j; - PBYTE pBits; - RECT rc; - - GetObject(hBitmap, - sizeof(BITMAP), - &bitmap); - - /* Bitmap header */ - bi.bmiHeader.biSize = sizeof(bi.bmiHeader); - bi.bmiHeader.biWidth = bitmap.bmWidth; - bi.bmiHeader.biHeight = bitmap.bmHeight; - bi.bmiHeader.biPlanes = 1; - bi.bmiHeader.biBitCount = 32; - bi.bmiHeader.biCompression = BI_RGB; - bi.bmiHeader.biSizeImage = bitmap.bmWidth * bitmap.bmHeight * 4; - bi.bmiHeader.biClrUsed = 0; - bi.bmiHeader.biClrImportant = 0; - - /* Buffer */ - pBits = (PBYTE)HeapAlloc(ProcessHeap, - 0, - bitmap.bmWidth * bitmap.bmHeight * 4); - if (!pBits) - return FALSE; - - /* get the bits from the original bitmap */ - bRes = GetDIBits(hdcMem, - hBitmap, - 0, - bitmap.bmHeight, - pBits, - &bi, - DIB_RGB_COLORS); - - for (i = 0; i < bitmap.bmHeight; i++) - { - for (j = 0; j < bitmap.bmWidth; j++) - { - DWORD Val = 0; - INT b, g, r; - - CopyMemory(&Val, - &pBits[Count], - 4); - - b = 255 - GetRValue(Val); - g = 255 - GetGValue(Val); - r = 255 - GetBValue(Val); - - Val = RGB(b, g, r); - - CopyMemory(&pBits[Count], - &Val, - 4); - - Count+=4; - } - } - - /* Set the new pixel bits */ - SetDIBits(hdcMem, - hBitmap, - 0, - bRes, - pBits, - &bi, - DIB_RGB_COLORS); - - HeapFree(ProcessHeap, - 0, - pBits); - - GetClientRect(hwnd, - &rc); - - InvalidateRect(hwnd, - &rc, - FALSE); - - return TRUE; -} - - - -BOOL -DisplayBlur(HWND hwnd, - HDC hdcMem, - HBITMAP hBitmap) -{ - BITMAPINFO bi; - BITMAP bitmap; - BOOL bRes; - DWORD Count = 0; - INT i, j; - PBYTE pBits, pBitsTemp; - RECT rc; - - GetObject(hBitmap, - sizeof(BITMAP), - &bitmap); - - /* Bitmap header */ - bi.bmiHeader.biSize = sizeof(bi.bmiHeader); - bi.bmiHeader.biWidth = bitmap.bmWidth; - bi.bmiHeader.biHeight = bitmap.bmHeight; - bi.bmiHeader.biPlanes = 1; - bi.bmiHeader.biBitCount = 32; - bi.bmiHeader.biCompression = BI_RGB; - bi.bmiHeader.biSizeImage = bitmap.bmWidth * bitmap.bmHeight * 4; - bi.bmiHeader.biClrUsed = 0; - bi.bmiHeader.biClrImportant = 0; - - /* Buffer */ - pBits = (PBYTE)HeapAlloc(ProcessHeap, - 0, - bitmap.bmWidth * bitmap.bmHeight * 4); - pBitsTemp = (PBYTE)HeapAlloc(ProcessHeap, - 0, - bitmap.bmWidth * bitmap.bmHeight * 4); - if (!pBits || !pBitsTemp) - return FALSE; - - /* get the bits from the original bitmap */ - bRes = GetDIBits(hdcMem, - hBitmap, - 0, - bitmap.bmHeight, - pBits, - &bi, - DIB_RGB_COLORS); - - for (i = 0; i < bitmap.bmHeight; i++) - { - for (j = 0; j < bitmap.bmWidth; j++) - { - LONG Val = 0; - INT b, g, r; - INT c1, c2, c3, c4, c5; - - CopyMemory(&Val, - &pBits[Count], - 4); - - b = GetRValue(Val); - g = GetGValue(Val); - r = GetBValue(Val); - - c1 = r; - /* Red */ - if ((Count < ((bitmap.bmHeight - 1) * bitmap.bmWidth * 4lu)) && - (Count > (bitmap.bmWidth * 4lu))) - { - CopyMemory(&Val, &pBits[Count - (bitmap.bmWidth * 4)], 4); - c2 = GetBValue(Val); - - CopyMemory(&Val, &pBits[Count + 4], 4); - c3 = GetBValue(Val); - - CopyMemory(&Val, &pBits[(Count + (bitmap.bmWidth * 4))], 4); - c4 = GetBValue(Val); - - CopyMemory(&Val, &pBits[Count - 4], 4); - c5 = GetBValue(Val); - - r = (c1 + c2 + c3 + c4 + c5) / 5; - } - - /* Green */ - c1 = g; - if ((Count < ((bitmap.bmHeight - 1) * bitmap.bmWidth * 4lu)) && - (Count > (bitmap.bmWidth * 4lu))) - { - CopyMemory(&Val, &pBits[(Count - (bitmap.bmWidth * 4lu))], 4); - c2 = GetGValue(Val); - - CopyMemory(&Val, &pBits[Count + 4], 4); - c3 = GetGValue(Val); - - CopyMemory(&Val, &pBits[(Count + (bitmap.bmWidth * 4lu))], 4); - c4 = GetGValue(Val); - - CopyMemory(&Val, &pBits[Count-4], 4); - c5 = GetGValue(Val); - - g = (c1 + c2 + c3 + c4 + c5) / 5; - } - - /* Blue */ - c1 = b; - if ((Count < ((bitmap.bmHeight - 1) * bitmap.bmWidth * 4lu)) && - (Count > (bitmap.bmWidth * 4lu))) - { - CopyMemory(&Val, &pBits[(Count - (bitmap.bmWidth * 4l))], 4); - c2 = GetRValue(Val); - - CopyMemory(&Val, &pBits[Count + 4], 4); - c3 = GetRValue(Val); - - CopyMemory(&Val, &pBits[(Count + (bitmap.bmWidth * 4l))], 4); - c4 = GetRValue(Val); - - CopyMemory(&Val, &pBits[Count-4], 4); - c5 = GetRValue(Val); - - b = (c1 + c2 + c3 + c4 + c5) / 5; - } - - Val = RGB(b, g, r); - - CopyMemory(&pBitsTemp[Count], - &Val, - 4); - - Count+=4; - } - } - - /* Set the new pixel bits */ - SetDIBits(hdcMem, - hBitmap, - 0, - bRes, - pBitsTemp, - &bi, - DIB_RGB_COLORS); - - HeapFree(ProcessHeap, - 0, - pBits); - HeapFree(ProcessHeap, - 0, - pBitsTemp); - - GetClientRect(hwnd, - &rc); - - InvalidateRect(hwnd, - &rc, - FALSE); - - return TRUE; -} - - - -BOOL -DisplaySharpness(HWND hwnd, - HDC hdcMem, - HBITMAP hBitmap) -{ - BITMAPINFO bi; - BITMAP bitmap; - BOOL bRes; - DWORD Count = 0; - INT i, j; - PBYTE pBits, pBitsTemp; - RECT rc; - - GetObject(hBitmap, - sizeof(BITMAP), - &bitmap); - - /* Bitmap header */ - bi.bmiHeader.biSize = sizeof(bi.bmiHeader); - bi.bmiHeader.biWidth = bitmap.bmWidth; - bi.bmiHeader.biHeight = bitmap.bmHeight; - bi.bmiHeader.biPlanes = 1; - bi.bmiHeader.biBitCount = 32; - bi.bmiHeader.biCompression = BI_RGB; - bi.bmiHeader.biSizeImage = bitmap.bmWidth * bitmap.bmHeight * 4; - bi.bmiHeader.biClrUsed = 0; - bi.bmiHeader.biClrImportant = 0; - - /* Buffer */ - pBits = (PBYTE)HeapAlloc(ProcessHeap, - 0, - bitmap.bmWidth * bitmap.bmHeight * 4); - pBitsTemp = (PBYTE)HeapAlloc(ProcessHeap, - 0, - bitmap.bmWidth * bitmap.bmHeight * 4); - if (!pBits || !pBitsTemp) - return FALSE; - - /* get the bits from the original bitmap */ - bRes = GetDIBits(hdcMem, - hBitmap, - 0, - bitmap.bmHeight, - pBits, - &bi, - DIB_RGB_COLORS); - - for (i = 0; i < bitmap.bmHeight; i++) - { - for (j = 0; j < bitmap.bmWidth; j++) - { - LONG Val = 0; - INT b, g, r; - INT c1, c2, c3, c4, c5; - - CopyMemory(&Val, - &pBits[Count], - 4); - - b = GetRValue(Val); - g = GetGValue(Val); - r = GetBValue(Val); - - c1 = r; - /* Red */ - if ((Count < ((bitmap.bmHeight - 1) * bitmap.bmWidth * 4lu)) && - (Count > (bitmap.bmWidth * 4lu))) - { - CopyMemory(&Val, &pBits[Count - (bitmap.bmWidth * 4l)], 4); - c2 = GetBValue(Val); - - CopyMemory(&Val, &pBits[Count + 4], 4); - c3 = GetBValue(Val); - - CopyMemory(&Val, &pBits[(Count + (bitmap.bmWidth * 4l))], 4); - c4 = GetBValue(Val); - - CopyMemory(&Val, &pBits[Count - 4], 4); - c5 = GetBValue(Val); - - r = (c1 * 5) - (c2 + c3 + c4 + c5); - } - - /* Green */ - c1 = g; - if ((Count < ((bitmap.bmHeight - 1)* bitmap.bmWidth * 4lu)) && - (Count > (bitmap.bmWidth * 4lu))) - { - CopyMemory(&Val, &pBits[(Count - (bitmap.bmWidth * 4l))], 4); - c2 = GetGValue(Val); - - CopyMemory(&Val, &pBits[Count + 4], 4); - c3 = GetGValue(Val); - - CopyMemory(&Val, &pBits[(Count + (bitmap.bmWidth * 4l))], 4); - c4 = GetGValue(Val); - - CopyMemory(&Val, &pBits[Count - 4], 4); - c5 = GetGValue(Val); - - g = (c1 * 5) - (c2 + c3 + c4 + c5); - } - - /* Blue */ - c1 = b; - if ((Count < ((bitmap.bmHeight - 1) * bitmap.bmWidth * 4lu)) && - (Count > (bitmap.bmWidth * 4lu))) - { - CopyMemory(&Val, &pBits[(Count - (bitmap.bmWidth * 4l))], 4); - c2 = GetRValue(Val); - - CopyMemory(&Val, &pBits[Count + 4], 4); - c3 = GetRValue(Val); - - CopyMemory(&Val, &pBits[(Count+(bitmap.bmWidth * 4l))], 4); - c4 = GetRValue(Val); - - CopyMemory(&Val, &pBits[Count - 4], 4); - c5 = GetRValue(Val); - - b = (c1 * 5) - (c2 + c3 + c4 + c5); - } - - /* Red */ - if (r > 255) r = 255; - if (r < 0) r = 0; - - /* Green */ - if (g > 255) g = 255; - if (g < 0)g = 0; - - /* Blue */ - if (b > 255) b = 255; - if (b < 0) b = 0; - - Val = RGB(b, g, r); - - CopyMemory(&pBitsTemp[Count], - &Val, - 4); - - Count+=4; - } - } - - /* Set the new pixel bits */ - SetDIBits(hdcMem, - hBitmap, - 0, - bRes, - pBitsTemp, - &bi, - DIB_RGB_COLORS); - - HeapFree(ProcessHeap, - 0, - pBits); - HeapFree(ProcessHeap, - 0, - pBitsTemp); - - GetClientRect(hwnd, - &rc); - - InvalidateRect(hwnd, - &rc, - FALSE); - - return TRUE; -} diff --git a/rosapps/applications/imagesoft/brightness.c b/rosapps/applications/imagesoft/brightness.c deleted file mode 100644 index 59b2398f33c..00000000000 --- a/rosapps/applications/imagesoft/brightness.c +++ /dev/null @@ -1,379 +0,0 @@ -#include "precomp.h" - -#define BASECOLOUR 100 - - -VOID -AdjustBrightness(HBITMAP hOrigBitmap, - HBITMAP hNewBitmap, - HWND hwnd, - HDC hdcMem, - INT RedVal, - INT GreenVal, - INT BlueVal) -{ - BITMAPINFO bi; - BITMAP bitmap; - BOOL bRes; - DWORD Count = 0; - INT i, j; - PBYTE pBits; - RECT rc; - - GetObject(hNewBitmap, - sizeof(BITMAP), - &bitmap); - - /* Bitmap header */ - bi.bmiHeader.biSize = sizeof(bi.bmiHeader); - bi.bmiHeader.biWidth = bitmap.bmWidth; - bi.bmiHeader.biHeight = bitmap.bmHeight; - bi.bmiHeader.biPlanes = 1; - bi.bmiHeader.biBitCount = 32; - bi.bmiHeader.biCompression = BI_RGB; - bi.bmiHeader.biSizeImage = bitmap.bmWidth * bitmap.bmHeight * 4; - bi.bmiHeader.biClrUsed = 0; - bi.bmiHeader.biClrImportant = 0; - - /* Buffer */ - pBits = (PBYTE)HeapAlloc(ProcessHeap, - 0, - bitmap.bmWidth * bitmap.bmHeight * 4); - if (!pBits) - return; - - /* get the bits from the original bitmap */ - bRes = GetDIBits(hdcMem, - hOrigBitmap, - 0, - bitmap.bmHeight, - pBits, - &bi, - DIB_RGB_COLORS); - - for (i = 0; i < bitmap.bmHeight; i++) - { - for (j = 0; j < bitmap.bmWidth; j++) - { - DWORD Val = 0; - INT b, g, r; - - CopyMemory(&Val, - &pBits[Count], - 4); - - /* Get pixels in reverse order */ - b = GetRValue(Val); - g = GetGValue(Val); - r = GetBValue(Val); - - /* Red */ - r += RedVal; - if (r > 255) r = 255; - else if (r < 0) r = 0; - - /* Green */ - g += GreenVal; - if (g > 255) g = 255; - else if (g < 0) g = 0; - - /* Blue */ - b += BlueVal; - if (b > 255) b = 255; - else if (b < 0) b = 0; - - /* Store in reverse order */ - Val = RGB(b, g, r); - CopyMemory(&pBits[Count], - &Val, - 4); - - /* RGB color take 4 bytes.The high-order byte must be zero */ - Count += 4; - } - } - - /* Set the new pixel bits */ - SetDIBits(hdcMem, - hNewBitmap, - 0, - bRes, - pBits, - &bi, - DIB_RGB_COLORS); - - HeapFree(ProcessHeap, - 0, - pBits); - - GetClientRect(hwnd, - &rc); - - InvalidateRect(hwnd, - &rc, - FALSE); -} - - -static PIMAGEADJUST -Bri_OnInitDialog(PIMAGEADJUST pImgAdj, - HWND hDlg, - LPARAM lParam) -{ - pImgAdj = (IMAGEADJUST*) HeapAlloc(ProcessHeap, - 0, - sizeof(IMAGEADJUST)); - if (!pImgAdj) - return NULL; - - - pImgAdj->Info = (PMAIN_WND_INFO)lParam; - if (!pImgAdj->Info->ImageEditors) - goto fail; - - - pImgAdj->hPicPrev = GetDlgItem(hDlg, IDC_PICPREVIEW); - GetClientRect(pImgAdj->hPicPrev, - &pImgAdj->ImageRect); - - /* Make a static copy of the main image */ - pImgAdj->hBitmap = (HBITMAP) CopyImage(pImgAdj->Info->ImageEditors->hBitmap, - IMAGE_BITMAP, - pImgAdj->ImageRect.right, - pImgAdj->ImageRect.bottom, - LR_CREATEDIBSECTION); - if (!pImgAdj->hBitmap) - goto fail; - - /* Make a copy which will be updated */ - pImgAdj->hPreviewBitmap = (HBITMAP) CopyImage(pImgAdj->Info->ImageEditors->hBitmap, - IMAGE_BITMAP, - pImgAdj->ImageRect.right, - pImgAdj->ImageRect.bottom, - LR_CREATEDIBSECTION); - if (!pImgAdj->hPreviewBitmap) - goto fail; - - - pImgAdj->RedVal = pImgAdj->BlueVal = pImgAdj->GreenVal = 0; - - /* setup dialog */ - SendDlgItemMessage(hDlg, - IDC_BRI_FULL, - BM_SETCHECK, - BST_CHECKED, - 0); - SendDlgItemMessage(hDlg, - IDC_BRI_TRACKBAR, - TBM_SETRANGE, - TRUE, - (LPARAM)MAKELONG(0, 200)); - SendDlgItemMessage(hDlg, - IDC_BRI_TRACKBAR, - TBM_SETPOS, - TRUE, - (LPARAM)BASECOLOUR); - SetDlgItemText(hDlg, - IDC_BRI_EDIT, - _T("100")); - - return pImgAdj; - -fail: - HeapFree(ProcessHeap, - 0, - pImgAdj); - return NULL; -} - - -static VOID -Bri_OnDrawItem(PIMAGEADJUST pImgAdj, - LPARAM lParam) -{ - LPDRAWITEMSTRUCT lpDrawItem; - HDC hdcMem; - - lpDrawItem = (LPDRAWITEMSTRUCT)lParam; - - hdcMem = CreateCompatibleDC(lpDrawItem->hDC); - - if(lpDrawItem->CtlID == IDC_PICPREVIEW) - { - SelectObject(hdcMem, - pImgAdj->hPreviewBitmap); - - BitBlt(lpDrawItem->hDC, - pImgAdj->ImageRect.left, - pImgAdj->ImageRect.top, - pImgAdj->ImageRect.right, - pImgAdj->ImageRect.bottom, - hdcMem, - 0, - 0, - SRCCOPY); - - DeleteDC(hdcMem); - } -} - - -static VOID -Bri_OnTrackBar(PIMAGEADJUST pImgAdj, - HWND hDlg) -{ - HDC hdcMem; - DWORD TrackPos; - - TrackPos = (DWORD)SendDlgItemMessage(hDlg, - IDC_BRI_TRACKBAR, - TBM_GETPOS, - 0, - 0); - - SetDlgItemInt(hDlg, - IDC_BRI_EDIT, - TrackPos, - FALSE); - - if (IsDlgButtonChecked(hDlg, IDC_BRI_FULL) == BST_CHECKED) - { - pImgAdj->RedVal = pImgAdj->GreenVal = pImgAdj->BlueVal = TrackPos - BASECOLOUR; - } - else if (IsDlgButtonChecked(hDlg, IDC_BRI_RED) == BST_CHECKED) - { - pImgAdj->RedVal = TrackPos - BASECOLOUR; - } - else if (IsDlgButtonChecked(hDlg, IDC_BRI_GREEN) == BST_CHECKED) - { - pImgAdj->GreenVal = TrackPos - BASECOLOUR; - } - else if (IsDlgButtonChecked(hDlg, IDC_BRI_BLUE) == BST_CHECKED) - { - pImgAdj->BlueVal = TrackPos - BASECOLOUR; - } - - hdcMem = GetDC(pImgAdj->hPicPrev); - - AdjustBrightness(pImgAdj->hBitmap, - pImgAdj->hPreviewBitmap, - pImgAdj->hPicPrev, - hdcMem, - pImgAdj->RedVal, - pImgAdj->GreenVal, - pImgAdj->BlueVal); - - ReleaseDC(pImgAdj->hPicPrev, hdcMem); -} - - -static BOOL -Bri_OnCommand(PIMAGEADJUST pImgAdj, - HWND hDlg, - UINT uID) -{ - switch (uID) - { - case IDOK: - { - HDC hdcMem; - - hdcMem = GetDC(pImgAdj->Info->ImageEditors->hSelf); - - AdjustBrightness(pImgAdj->Info->ImageEditors->hBitmap, - pImgAdj->Info->ImageEditors->hBitmap, - pImgAdj->Info->ImageEditors->hSelf, - hdcMem, - pImgAdj->RedVal, - pImgAdj->GreenVal, - pImgAdj->BlueVal); - - ReleaseDC(pImgAdj->Info->ImageEditors->hSelf, - hdcMem); - - EndDialog(hDlg, - uID); - - return TRUE; - } - - case IDCANCEL: - { - EndDialog(hDlg, - uID); - return TRUE; - } - } - - return FALSE; -} - - -INT_PTR CALLBACK -BrightnessProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam) -{ - static PIMAGEADJUST pImgAdj = NULL; - - switch (message) - { - case WM_INITDIALOG: - { - pImgAdj = Bri_OnInitDialog(pImgAdj, - hDlg, - lParam); - if (!pImgAdj) - { - EndDialog(hDlg, -1); - return FALSE; - } - - return TRUE; - } - - case WM_DRAWITEM: - { - Bri_OnDrawItem(pImgAdj, - lParam); - return TRUE; - } - - case WM_HSCROLL: - { - if (LOWORD(wParam) == TB_THUMBTRACK || - LOWORD(wParam) == TB_ENDTRACK) - { - Bri_OnTrackBar(pImgAdj, - hDlg); - } - - return TRUE; - } - - case WM_COMMAND: - { - return Bri_OnCommand(pImgAdj, - hDlg, - LOWORD(wParam)); - } - - case WM_DESTROY: - { - if (pImgAdj) - { - if (pImgAdj->hBitmap) - DeleteObject(pImgAdj->hBitmap); - if (pImgAdj->hPreviewBitmap) - DeleteObject(pImgAdj->hPreviewBitmap); - - HeapFree(ProcessHeap, - 0, - pImgAdj); - } - } - } - - return FALSE; -} diff --git a/rosapps/applications/imagesoft/contrast.c b/rosapps/applications/imagesoft/contrast.c deleted file mode 100644 index aaa1933ff49..00000000000 --- a/rosapps/applications/imagesoft/contrast.c +++ /dev/null @@ -1,380 +0,0 @@ -#include "precomp.h" - -#define BASECOLOUR 100 - - -VOID -AdjustContrast(HBITMAP hOrigBitmap, - HBITMAP hNewBitmap, - HWND hwnd, - HDC hdcMem, - INT RedVal, - INT GreenVal, - INT BlueVal) -{ - BITMAPINFO bi; - BITMAP bitmap; - BOOL bRes; - DWORD Count = 0; - INT i, j; - PBYTE pBits; - RECT rc; - - GetObject(hNewBitmap, - sizeof(BITMAP), - &bitmap); - - /* Bitmap header */ - bi.bmiHeader.biSize = sizeof(bi.bmiHeader); - bi.bmiHeader.biWidth = bitmap.bmWidth; - bi.bmiHeader.biHeight = bitmap.bmHeight; - bi.bmiHeader.biPlanes = 1; - bi.bmiHeader.biBitCount = 32; - bi.bmiHeader.biCompression = BI_RGB; - bi.bmiHeader.biSizeImage = bitmap.bmWidth * bitmap.bmHeight * 4; - bi.bmiHeader.biClrUsed = 0; - bi.bmiHeader.biClrImportant = 0; - - /* Buffer */ - pBits = (PBYTE)HeapAlloc(ProcessHeap, - 0, - bitmap.bmWidth * bitmap.bmHeight * 4); - if (!pBits) - return; - - /* get the bits from the original bitmap */ - bRes = GetDIBits(hdcMem, - hOrigBitmap, - 0, - bitmap.bmHeight, - pBits, - &bi, - DIB_RGB_COLORS); - - for (i = 0; i < bitmap.bmHeight; i++) - { - for (j = 0; j < bitmap.bmWidth; j++) - { - DWORD Val = 0; - INT b, g, r; - - CopyMemory(&Val, - &pBits[Count], - 4); - - /* Get pixels in reverse order */ - b = GetRValue(Val); - g = GetGValue(Val); - r = GetBValue(Val); - - r = ((r - 128) * RedVal) / 100 + 128; - g = ((g - 128) * GreenVal) / 100 + 128; - b = ((b - 128) * BlueVal) / 100 + 128; - - /* Red */ - if (r > 255) r = 255; - else if (r < 0) r = 0; - - /* Green */ - if (g > 255) g = 255; - else if (g < 0) g = 0; - - /* Blue */ - if (b > 255) b = 255; - else if (b < 0) b = 0; - - /* Store in reverse order */ - Val = RGB(b, g, r); - CopyMemory(&pBits[Count], - &Val, - 4); - - /* RGB color take 4 bytes.The high-order byte must be zero */ - Count += 4; - } - } - - /* Set the new pixel bits */ - SetDIBits(hdcMem, - hNewBitmap, - 0, - bRes, - pBits, - &bi, - DIB_RGB_COLORS); - - HeapFree(ProcessHeap, - 0, - pBits); - - GetClientRect(hwnd, - &rc); - - InvalidateRect(hwnd, - &rc, - FALSE); -} - - -static PIMAGEADJUST -Cont_OnInitDialog(PIMAGEADJUST pImgAdj, - HWND hDlg, - LPARAM lParam) -{ - pImgAdj = (IMAGEADJUST*) HeapAlloc(ProcessHeap, - 0, - sizeof(IMAGEADJUST)); - if (!pImgAdj) - return NULL; - - - pImgAdj->Info = (PMAIN_WND_INFO)lParam; - if (!pImgAdj->Info->ImageEditors) - goto fail; - - - pImgAdj->hPicPrev = GetDlgItem(hDlg, IDC_PICPREVIEW); - GetClientRect(pImgAdj->hPicPrev, - &pImgAdj->ImageRect); - - /* Make a static copy of the main image */ - pImgAdj->hBitmap = (HBITMAP) CopyImage(pImgAdj->Info->ImageEditors->hBitmap, - IMAGE_BITMAP, - pImgAdj->ImageRect.right, - pImgAdj->ImageRect.bottom, - LR_CREATEDIBSECTION); - if (!pImgAdj->hBitmap) - goto fail; - - /* Make a copy which will be updated */ - pImgAdj->hPreviewBitmap = (HBITMAP) CopyImage(pImgAdj->Info->ImageEditors->hBitmap, - IMAGE_BITMAP, - pImgAdj->ImageRect.right, - pImgAdj->ImageRect.bottom, - LR_CREATEDIBSECTION); - if (!pImgAdj->hPreviewBitmap) - goto fail; - - - pImgAdj->RedVal = pImgAdj->BlueVal = pImgAdj->GreenVal = 100; - - /* setup dialog */ - SendDlgItemMessage(hDlg, - IDC_BRI_FULL, - BM_SETCHECK, - BST_CHECKED, - 0); - SendDlgItemMessage(hDlg, - IDC_BRI_TRACKBAR, - TBM_SETRANGE, - TRUE, - (LPARAM)MAKELONG(0, 200)); - SendDlgItemMessage(hDlg, - IDC_BRI_TRACKBAR, - TBM_SETPOS, - TRUE, - (LPARAM)BASECOLOUR); - SetDlgItemText(hDlg, - IDC_BRI_EDIT, - _T("100")); - - return pImgAdj; - -fail: - HeapFree(ProcessHeap, - 0, - pImgAdj); - return NULL; -} - - -static VOID -Cont_OnDrawItem(PIMAGEADJUST pImgAdj, - LPARAM lParam) -{ - LPDRAWITEMSTRUCT lpDrawItem; - HDC hdcMem; - - lpDrawItem = (LPDRAWITEMSTRUCT)lParam; - - hdcMem = CreateCompatibleDC(lpDrawItem->hDC); - - if(lpDrawItem->CtlID == IDC_PICPREVIEW) - { - SelectObject(hdcMem, - pImgAdj->hPreviewBitmap); - - BitBlt(lpDrawItem->hDC, - pImgAdj->ImageRect.left, - pImgAdj->ImageRect.top, - pImgAdj->ImageRect.right, - pImgAdj->ImageRect.bottom, - hdcMem, - 0, - 0, - SRCCOPY); - - DeleteDC(hdcMem); - } -} - - -static VOID -Cont_OnTrackBar(PIMAGEADJUST pImgAdj, - HWND hDlg) -{ - HDC hdcMem; - DWORD TrackPos; - - TrackPos = (DWORD)SendDlgItemMessage(hDlg, - IDC_BRI_TRACKBAR, - TBM_GETPOS, - 0, - 0); - - SetDlgItemInt(hDlg, - IDC_BRI_EDIT, - TrackPos, - FALSE); - - if (IsDlgButtonChecked(hDlg, IDC_BRI_FULL) == BST_CHECKED) - { - pImgAdj->RedVal = pImgAdj->GreenVal = pImgAdj->BlueVal = TrackPos - BASECOLOUR + 100; - } - else if (IsDlgButtonChecked(hDlg, IDC_BRI_RED) == BST_CHECKED) - { - pImgAdj->RedVal = TrackPos - BASECOLOUR + 100; - } - else if (IsDlgButtonChecked(hDlg, IDC_BRI_GREEN) == BST_CHECKED) - { - pImgAdj->GreenVal = TrackPos - BASECOLOUR + 100; - } - else if (IsDlgButtonChecked(hDlg, IDC_BRI_BLUE) == BST_CHECKED) - { - pImgAdj->BlueVal = TrackPos - BASECOLOUR + 100; - } - - hdcMem = GetDC(pImgAdj->hPicPrev); - - AdjustContrast(pImgAdj->hBitmap, - pImgAdj->hPreviewBitmap, - pImgAdj->hPicPrev, - hdcMem, - pImgAdj->RedVal, - pImgAdj->GreenVal, - pImgAdj->BlueVal); - - ReleaseDC(pImgAdj->hPicPrev, hdcMem); -} - - -static BOOL -Cont_OnCommand(PIMAGEADJUST pImgAdj, - HWND hDlg, - UINT uID) -{ - switch (uID) - { - case IDOK: - { - HDC hdcMem; - - hdcMem = GetDC(pImgAdj->Info->ImageEditors->hSelf); - - AdjustContrast(pImgAdj->Info->ImageEditors->hBitmap, - pImgAdj->Info->ImageEditors->hBitmap, - pImgAdj->Info->ImageEditors->hSelf, - hdcMem, - pImgAdj->RedVal, - pImgAdj->GreenVal, - pImgAdj->BlueVal); - - ReleaseDC(pImgAdj->Info->ImageEditors->hSelf, - hdcMem); - - EndDialog(hDlg, - uID); - - return TRUE; - } - - case IDCANCEL: - { - EndDialog(hDlg, - uID); - return TRUE; - } - } - - return FALSE; -} - - -INT_PTR CALLBACK -ContrastProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam) -{ - static PIMAGEADJUST pImgAdj = NULL; - - switch (message) - { - case WM_INITDIALOG: - { - pImgAdj = Cont_OnInitDialog(pImgAdj, - hDlg, - lParam); - if (!pImgAdj) - { - EndDialog(hDlg, -1); - return FALSE; - } - - return TRUE; - } - - case WM_DRAWITEM: - { - Cont_OnDrawItem(pImgAdj, - lParam); - return TRUE; - } - - case WM_HSCROLL: - { - if (LOWORD(wParam) == TB_THUMBTRACK || - LOWORD(wParam) == TB_ENDTRACK) - { - Cont_OnTrackBar(pImgAdj, - hDlg); - } - - return TRUE; - } - - case WM_COMMAND: - { - return Cont_OnCommand(pImgAdj, - hDlg, - LOWORD(wParam)); - } - - case WM_DESTROY: - { - if (pImgAdj) - { - if (pImgAdj->hBitmap) - DeleteObject(pImgAdj->hBitmap); - if (pImgAdj->hPreviewBitmap) - DeleteObject(pImgAdj->hPreviewBitmap); - - HeapFree(ProcessHeap, - 0, - pImgAdj); - } - } - } - - return FALSE; -} diff --git a/rosapps/applications/imagesoft/custcombo.c b/rosapps/applications/imagesoft/custcombo.c deleted file mode 100644 index 89fb375d4fb..00000000000 --- a/rosapps/applications/imagesoft/custcombo.c +++ /dev/null @@ -1,213 +0,0 @@ -#include - - -LRESULT WINAPI -FlatComboProc(HWND hwnd, - UINT msg, - WPARAM wParam, - LPARAM lParam) -{ - HDC hdc; - PAINTSTRUCT ps; - RECT rect, rect2; - POINT pt; - - WNDPROC OldComboProc = (WNDPROC)GetWindowLongPtr(hwnd, GWLP_USERDATA); - - static BOOL fMouseDown = FALSE; - static BOOL fButtonDown = FALSE; - - switch(msg) - { - case WM_PAINT: - { - if(wParam == 0) hdc = BeginPaint(hwnd, &ps); - else hdc = (HDC)wParam; - - /* mask off the borders and draw ComboBox normally */ - GetClientRect(hwnd, &rect); - - InflateRect(&rect, - -GetSystemMetrics(SM_CXEDGE)*2, - -GetSystemMetrics(SM_CYEDGE)*2); - - rect.right -= GetSystemMetrics(SM_CXVSCROLL); - - IntersectClipRect(hdc, - rect.left, - rect.top, - rect.right, - rect.bottom); - - /* Draw the ComboBox */ - CallWindowProc(OldComboProc, - hwnd, - msg, - (WPARAM)hdc, - lParam); - - /* Now mask off inside and draw the borders */ - SelectClipRgn(hdc, - NULL); - rect.right += GetSystemMetrics(SM_CXVSCROLL); - - ExcludeClipRect(hdc, - rect.left, - rect.top, - rect.right, - rect.bottom); - - /* draw borders */ - GetClientRect(hwnd, - &rect2); - FillRect(hdc, - &rect2, - //CreateSolidBrush(RGB(0,0,0))); - GetSysColorBrush(COLOR_3DFACE)); - - /* now draw the button */ - SelectClipRgn(hdc, - NULL); - rect.left = rect.right - GetSystemMetrics(SM_CXVSCROLL); - - if(fButtonDown) - { - HBRUSH oldBrush; - HPEN oldPen; - POINT pt[3]; - - FillRect(hdc, &rect, CreateSolidBrush(RGB(182,189,210))); - rect.top -= 1; - rect.bottom += 1; - FrameRect(hdc, &rect, GetStockBrush(WHITE_BRUSH)); - - pt[0].x = rect.right - ((GetSystemMetrics(SM_CXVSCROLL) / 2) + 2); - pt[0].y = rect.bottom / 2; - pt[1].x = pt[0].x + 4; - pt[1].y = pt[0].y; - pt[2].x = pt[1].x - 2; - pt[2].y = pt[1].y + 2; - - oldPen = (HPEN) SelectObject(hdc, GetStockPen(WHITE_PEN)); - oldBrush = (HBRUSH) SelectObject(hdc, GetStockBrush(WHITE_BRUSH)); - Polygon(hdc, pt, 3); - - SelectObject(hdc, oldPen); - SelectObject(hdc, oldBrush); - } - else - { - HBRUSH oldBrush; - POINT pt[3]; - - FillRect(hdc, &rect, GetSysColorBrush(COLOR_3DFACE)); - rect.top -= 1; - rect.bottom += 1; - FrameRect(hdc, &rect, GetStockBrush(WHITE_BRUSH)); - - pt[0].x = rect.right - ((GetSystemMetrics(SM_CXVSCROLL) / 2) + 2); - pt[0].y = rect.bottom / 2; - pt[1].x = pt[0].x + 4; - pt[1].y = pt[0].y; - pt[2].x = pt[1].x - 2; - pt[2].y = pt[1].y + 2; - - oldBrush = (HBRUSH) SelectObject(hdc, GetStockBrush(BLACK_BRUSH)); - Polygon(hdc, pt, 3); - - SelectObject(hdc, oldBrush); - } - - - if(wParam == 0) - EndPaint(hwnd, &ps); - - return 0; - } - - /* check if mouse is within drop-arrow area, toggle - * a flag to say if the mouse is up/down. Then invalidate - * the window so it redraws to show the changes. */ - case WM_LBUTTONDBLCLK: - case WM_LBUTTONDOWN: - { - - pt.x = (short)LOWORD(lParam); - pt.y = (short)HIWORD(lParam); - - GetClientRect(hwnd, &rect); - - InflateRect(&rect, - -GetSystemMetrics(SM_CXEDGE), - -GetSystemMetrics(SM_CYEDGE)); - rect.left = rect.right - GetSystemMetrics(SM_CXVSCROLL); - - if(PtInRect(&rect, pt)) - { - /* we *should* call SetCapture, but the ComboBox does it for us */ - fMouseDown = TRUE; - fButtonDown = TRUE; - InvalidateRect(hwnd, 0, 0); - } - } - break; - - /* mouse has moved. Check to see if it is in/out of the drop-arrow */ - case WM_MOUSEMOVE: - { - - pt.x = (short)LOWORD(lParam); - pt.y = (short)HIWORD(lParam); - - if(fMouseDown && (wParam & MK_LBUTTON)) - { - GetClientRect(hwnd, &rect); - - InflateRect(&rect, -GetSystemMetrics(SM_CXEDGE), -GetSystemMetrics(SM_CYEDGE)); - rect.left = rect.right - GetSystemMetrics(SM_CXVSCROLL); - - if(fButtonDown != PtInRect(&rect, pt)) - { - fButtonDown = PtInRect(&rect, pt); - InvalidateRect(hwnd, 0, 0); - } - } - } - break; - - case WM_LBUTTONUP: - { - - if(fMouseDown) - { - /* No need to call ReleaseCapture, the ComboBox does it for us */ - fMouseDown = FALSE; - fButtonDown = FALSE; - InvalidateRect(hwnd, 0, 0); - } - } - break; - } - - return CallWindowProc(OldComboProc, - hwnd, - msg, - wParam, - lParam); -} - -VOID MakeFlatCombo(HWND hwndCombo) -{ - LONG_PTR OldComboProc; - - /* Remember old window procedure */ - OldComboProc = GetWindowLongPtr(hwndCombo, GWLP_WNDPROC); - SetWindowLongPtr(hwndCombo, - GWLP_USERDATA, - OldComboProc); - - /* Perform the subclass */ - SetWindowLongPtr(hwndCombo, - GWLP_WNDPROC, - (LONG_PTR)FlatComboProc); -} diff --git a/rosapps/applications/imagesoft/floatwindow.c b/rosapps/applications/imagesoft/floatwindow.c deleted file mode 100644 index 28b393747c1..00000000000 --- a/rosapps/applications/imagesoft/floatwindow.c +++ /dev/null @@ -1,629 +0,0 @@ -#include "precomp.h" - -static const TCHAR szFloatWndClass[] = TEXT("ImageSoftFloatWndClass"); - -#define ID_TIMER1 1 -#define ID_TIMER2 2 -#define ID_TIMER3 3 - -TBBUTTON ToolsButtons[] = { -/* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */ - {TBICON_RECTSEL, ID_RECTSEL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* rectangle select */ - {TBICON_MOVESEL, ID_MOVESEL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* move selected pixels */ - {TBICON_LASOO, ID_LASOO, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* lasso select */ - {TBICON_MOVE, ID_MOVE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* move selection */ - {TBICON_ECLIPSESEL, ID_ECLIPSESEL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* elipse select */ - {TBICON_ZOOM, ID_ZOOM, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* zoom */ - {TBICON_MAGICWAND, ID_MAGICWAND, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* magic wand */ - {TBICON_TEXT, ID_TEXT, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* text */ - {TBICON_PAINTBRUSH, ID_PAINTBRUSH, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* paintbrush */ - {TBICON_ERASER, ID_ERASER, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* eraser */ - {TBICON_PENCIL, ID_PENCIL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* pencil */ - {TBICON_COLORPICKER, ID_COLORPICKER, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* color picker */ - {TBICON_CLONESTAMP, ID_CLONESTAMP, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* clone stamp */ - {TBICON_RECOLORING, ID_RECOLORING, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* recolor */ - {TBICON_PAINTBUCKET, ID_PAINTBUCKET, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* paint bucket */ - {TBICON_LINE, ID_LINE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* line */ - {TBICON_RECTANGLE, ID_RECTANGLE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* rectangle */ - {TBICON_ROUNDRECT, ID_ROUNDRECT, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* round rectangle */ - {TBICON_ECLIPSE, ID_ECLIPSE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* elipse */ - {TBICON_FREEFORM, ID_FREEFORM, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* free form */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, -}; - -TBBUTTON HistoryButtons[] = { - {TBICON_BACKSM, ID_BACK, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* back */ - {TBICON_UNDOSM, ID_UNDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* undo */ - {TBICON_REDOSM, ID_REDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* redo */ - {TBICON_FORWARDSM, ID_FORWARD, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* forward */ - {TBICON_DELETESM, ID_DELETE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* delete */ -}; - - -BOOL -ShowHideWindow(HWND hwnd) -{ - if (IsWindowVisible(hwnd)) - return ShowWindow(hwnd, SW_HIDE); - else - return ShowWindow(hwnd, SW_SHOW); -} - - -BOOL -FloatToolbarCreateToolsGui(PMAIN_WND_INFO Info) -{ - HWND hTb; - HIMAGELIST hImageList; - INT NumButtons; - - NumButtons = sizeof(ToolsButtons) / sizeof(ToolsButtons[0]); - - hTb = CreateWindowEx(0, - TOOLBARCLASSNAME, - NULL, - WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | TBSTYLE_WRAPABLE | CCS_NODIVIDER, - 0, 0, 32, 200, - Info->fltTools->hSelf, - NULL, - hInstance, - NULL); - if (hTb != NULL) - { - SendMessage(hTb, - TB_SETEXTENDEDSTYLE, - 0, - TBSTYLE_EX_HIDECLIPPEDBUTTONS); - - SendMessage(hTb, - TB_BUTTONSTRUCTSIZE, - sizeof(ToolsButtons[0]), - 0); - - SendMessage(hTb, - TB_SETBITMAPSIZE, - 0, - (LPARAM)MAKELONG(16, 16)); - - hImageList = InitImageList(NumButtons, - IDB_TOOLSRECTSEL); - - ImageList_Destroy((HIMAGELIST)SendMessage(hTb, - TB_SETIMAGELIST, - 0, - (LPARAM)hImageList)); - - SendMessage(hTb, - TB_ADDBUTTONS, - NumButtons, - (LPARAM)ToolsButtons); - - SendMessage(hTb, - TB_AUTOSIZE, - 0, - 0); - - return TRUE; - } - - return FALSE; -} - - -VOID -FloatWindowPaintColorPicker(HWND hColorPicker) -{ - HDC hdc; - RECT rect; - - InvalidateRect(hColorPicker, - NULL, - TRUE); - UpdateWindow(hColorPicker); - - hdc = GetDC(hColorPicker); - - GetClientRect(hColorPicker, - &rect); - - Ellipse(hdc, - rect.left, - rect.top, - rect.right, - rect.bottom); - - ReleaseDC(hColorPicker, - hdc); - -} - -VOID -FloatWindowPaintHueSlider(HWND hHueSlider) -{ - HDC hdc; - RECT rect; - - InvalidateRect(hHueSlider, - NULL, - TRUE); - UpdateWindow(hHueSlider); - - hdc = GetDC(hHueSlider); - - GetClientRect(hHueSlider, - &rect); - - Rectangle(hdc, - rect.left, - rect.top, - rect.right, - rect.bottom); - - ReleaseDC(hHueSlider, - hdc); - -} - - -BOOL -FloatToolbarCreateColorsGui(PMAIN_WND_INFO Info) -{ - HWND hColorPicker; - HWND hHueSlider; - HWND hMouseButton; - HWND hMore; - RECT rect; - HBITMAP hMoreBitmap; - - GetClientRect(Info->fltColors->hSelf, - &rect); - - hColorPicker = CreateWindowEx(0, - WC_STATIC, - NULL, - WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, - 2, - 2, - (int) (rect.right * 0.65), - rect.bottom - 2, - Info->fltColors->hSelf, - NULL, - hInstance, - NULL); - if (hColorPicker == NULL) - return FALSE; - - hHueSlider = CreateWindowEx(0, - WC_STATIC, - NULL, - WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, - 145, - 35, - 25, - 135, - Info->fltColors->hSelf, - NULL, - hInstance, - NULL); - if (hHueSlider == NULL) - return FALSE; - - hMouseButton = CreateWindowEx(0, - WC_COMBOBOX, - NULL, - WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, - 118, 5, 75, 25, - Info->fltColors->hSelf, - NULL, - hInstance, - NULL); - if (hMouseButton == NULL) - return FALSE; - - MakeFlatCombo(hMouseButton); - - /* temp, just testing */ - SendMessage(hMouseButton, CB_ADDSTRING, 0, (LPARAM)_T("Primary")); - SendMessage(hMouseButton, CB_ADDSTRING, 0, (LPARAM)_T("Secondary")); - SendMessage(hMouseButton, CB_SETCURSEL, 0, 0); - - - hMore = CreateWindowEx(WS_EX_STATICEDGE, - WC_BUTTON, - NULL, - WS_CHILD | WS_VISIBLE | BS_BITMAP, - rect.right - 15, - rect.bottom - 15, - 15, 15, - Info->fltColors->hSelf, - NULL, - hInstance, - NULL); - if (hMore == NULL) - return FALSE; - - hMoreBitmap = (HBITMAP)LoadImage(hInstance, - MAKEINTRESOURCE(IDB_COLORSMORE), - IMAGE_BITMAP, - 12, - 11, - LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS); - if (hMoreBitmap != NULL) - { - SendMessage(hMore, - BM_SETIMAGE, - IMAGE_BITMAP, - (LPARAM)hMoreBitmap); - } - - - /* temp functions for playing about with possible layouts */ - FloatWindowPaintHueSlider(hHueSlider); - FloatWindowPaintColorPicker(hColorPicker); - - if (hColorPicker != NULL) - { - HDC hDc = GetDC(hColorPicker); - TextOut(hDc, 8, 75, _T("Possible layout?"), 16); - ReleaseDC(hColorPicker, hDc); - } - - return TRUE; - -} - - -BOOL -FloatToolbarCreateHistoryGui(PMAIN_WND_INFO Info) -{ - HWND hList; - HWND hButtons; - HIMAGELIST hImageList; - INT NumButtons; - - hList = CreateWindowEx(0, - WC_LISTBOX, - NULL, - WS_CHILD | WS_VISIBLE | LBS_EXTENDEDSEL, - 0, 0, 143, 100, - Info->fltHistory->hSelf, - NULL, - hInstance, - NULL); - if (hList == NULL) - return FALSE; - - NumButtons = sizeof(HistoryButtons) / sizeof(HistoryButtons[0]); - hButtons = CreateWindowEx(0, - TOOLBARCLASSNAME, - NULL, - WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | CCS_BOTTOM | CCS_NODIVIDER, - 0, 0, 0, 0, - Info->fltHistory->hSelf, - NULL, - hInstance, - NULL); - if (hButtons != NULL) - { - SendMessage(hButtons, - TB_BUTTONSTRUCTSIZE, - sizeof(ToolsButtons[0]), - 0); - - SendMessage(hButtons, - TB_SETBITMAPSIZE, - 0, - (LPARAM)MAKELONG(10, 10)); - - hImageList = InitImageList(NumButtons, - IDB_HISTBACK); - - ImageList_Destroy((HIMAGELIST)SendMessage(hButtons, - TB_SETIMAGELIST, - 0, - (LPARAM)hImageList)); - - SendMessage(hButtons, - TB_SETBUTTONSIZE, - 0, - MAKELONG(18, 16)); - - SendMessage(hButtons, - TB_ADDBUTTONS, - NumButtons, - (LPARAM)HistoryButtons); - - return TRUE; - } - - return FALSE; -} - - -static VOID -DoTimer(PFLT_WND FltInfo, - UINT_PTR idTimer) -{ - switch (idTimer) - { - /* timer to check if cursor is in toolbar coords */ - case ID_TIMER1: - { - POINT pt; - - /* kill timer if toobar is not opaque */ - if (FltInfo->bOpaque != TRUE) - { - KillTimer(FltInfo->hSelf, - ID_TIMER1); - break; - } - - if (GetCursorPos(&pt)) - { - RECT rect; - - if (GetWindowRect(FltInfo->hSelf, - &rect)) - { - if (!PtInRect(&rect, - pt)) - { - KillTimer(FltInfo->hSelf, - ID_TIMER1); - KillTimer(FltInfo->hSelf, - ID_TIMER2); - - /* timer to fade out toolbar */ - SetTimer(FltInfo->hSelf, - ID_TIMER3, - 50, - NULL); - } - } - } - } - break; - - /* timer to fade in toolbar */ - case ID_TIMER2: - { - SetLayeredWindowAttributes(FltInfo->hSelf, - 0, - (255 * FltInfo->Transparancy) / 100, - LWA_ALPHA); - - /* increment transparancy until it is opaque (100) */ - FltInfo->Transparancy += 5; - - if (FltInfo->Transparancy == 100) - { - SetWindowLongPtr(FltInfo->hSelf, - GWL_EXSTYLE, - GetWindowLongPtr(FltInfo->hSelf, - GWL_EXSTYLE) & ~WS_EX_LAYERED); - - FltInfo->bOpaque = TRUE; - - KillTimer(FltInfo->hSelf, - ID_TIMER2); - } - } - break; - - case ID_TIMER3: - { - LONG_PTR Style; - - Style = GetWindowLongPtr(FltInfo->hSelf, - GWL_EXSTYLE); - - if (Style & ~WS_EX_LAYERED) - { - SetWindowLongPtr(FltInfo->hSelf, - GWL_EXSTYLE, - Style | WS_EX_LAYERED); - } - - FltInfo->Transparancy -= 5; - - if (FltInfo->Transparancy >= 60) - { - /* set the tranclucency to 60% */ - SetLayeredWindowAttributes(FltInfo->hSelf, - 0, - (255 * FltInfo->Transparancy) / 100, - LWA_ALPHA); - - if (FltInfo->Transparancy == 60) - { - FltInfo->bOpaque = FALSE; - - KillTimer(FltInfo->hSelf, - ID_TIMER3); - } - - } - } - break; - } -} - -LRESULT CALLBACK -FloatToolbarWndProc(HWND hwnd, - UINT Message, - WPARAM wParam, - LPARAM lParam) -{ - PFLT_WND FltInfo; - - /* Get the window context */ - FltInfo = (PFLT_WND)GetWindowLongPtr(hwnd, - GWLP_USERDATA); - if (FltInfo == NULL && Message != WM_CREATE) - { - goto HandleDefaultMessage; - } - - switch(Message) - { - case WM_CREATE: - { - FltInfo = (PFLT_WND)(((LPCREATESTRUCT)lParam)->lpCreateParams); - - /*FIXME: read this from registry */ -// FltInfo->bShow = TRUE; - - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - (LONG_PTR)FltInfo); - - FltInfo->bOpaque = FALSE; - - SetWindowLongPtr(hwnd, - GWL_EXSTYLE, - GetWindowLongPtr(hwnd, - GWL_EXSTYLE) | WS_EX_LAYERED); - - /* set the tranclucency to 60% */ - FltInfo->Transparancy = 60; - SetLayeredWindowAttributes(hwnd, - 0, - (255 * FltInfo->Transparancy) / 100, - LWA_ALPHA); - } - break; - - case WM_TIMER: - { - DoTimer(FltInfo, - wParam); - } - break; - - case WM_NCMOUSEMOVE: - case WM_MOUSEMOVE: - { - if (FltInfo->bOpaque == FALSE) - { - - RedrawWindow(hwnd, - NULL, - NULL, - RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN); - - FltInfo->bOpaque = TRUE; - //MessageBox(NULL, _T("in"), _T("Hit test"), MB_OK | MB_ICONEXCLAMATION); - - /* timer to check if cursor is in toolbar coords */ - SetTimer(hwnd, - ID_TIMER1, - 200, - NULL); - - /* timer to fade in the toolbars */ - SetTimer(hwnd, - ID_TIMER2, - 50, - NULL); - } - } - break; - - case WM_CLOSE: - ShowHideWindow(FltInfo->hSelf); - break; - - case WM_COMMAND: - { - if (LOWORD(wParam) == IDCANCEL) - ShowHideWindow(FltInfo->hSelf); - - switch(LOWORD(wParam)) - { - case ID_NEW: - MessageBox(hwnd, _T("Kapow!"), _T("Hit test"), MB_OK | MB_ICONEXCLAMATION); - break; - - case ID_CLONESTAMP: - case ID_COLORPICKER: - case ID_ECLIPSE: - case ID_ECLIPSESEL: - case ID_ERASER: - case ID_FREEFORM: - case ID_LASOO: - case ID_LINE: - case ID_MAGICWAND: - case ID_MOVE: - case ID_MOVESEL: - case ID_PAINTBRUSH: - case ID_PAINTBUCKET: - case ID_PENCIL: - case ID_RECOLORING: - case ID_RECTANGLE: - case ID_ROUNDRECT: - case ID_TEXT: - case ID_ZOOM: - /*SendMessage(Info->hSelf, - LOWORD(wParam), - wParam, - lParam);*/ - break; - } - } - break; - - case WM_NCACTIVATE: - /* FIXME: needs fully implementing */ - return DefWindowProc(hwnd, - Message, - TRUE, - lParam); - break; - - case WM_DESTROY: - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - 0); - break; - - default: -HandleDefaultMessage: - return DefWindowProc(hwnd, - Message, - wParam, - lParam); - } - - return 0; -} - - -BOOL -InitFloatWndClass(VOID) -{ - WNDCLASSEX wc = {0}; - - wc.cbSize = sizeof(WNDCLASSEX); - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = FloatToolbarWndProc; - wc.hInstance = hInstance; - wc.hIcon = NULL; - wc.hCursor = LoadCursor(NULL, - IDC_ARROW); - wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); - wc.lpszClassName = szFloatWndClass; - wc.hIconSm = NULL; - - return RegisterClassEx(&wc) != (ATOM)0; -} - -VOID -UninitFloatWndImpl(VOID) -{ - UnregisterClass(szFloatWndClass, - hInstance); -} - - diff --git a/rosapps/applications/imagesoft/font.c b/rosapps/applications/imagesoft/font.c deleted file mode 100644 index 93e1a7cf9dc..00000000000 --- a/rosapps/applications/imagesoft/font.c +++ /dev/null @@ -1,179 +0,0 @@ -#include - -int CALLBACK -EnumFontSizes(ENUMLOGFONTEX *lpelfe, - NEWTEXTMETRICEX *lpntme, - DWORD FontType, - LPARAM lParam) -{ - static int ttsizes[] = { 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72 }; - TCHAR ach[100]; - - BOOL fTrueType = (lpelfe->elfLogFont.lfOutPrecision == OUT_STROKE_PRECIS) ? TRUE : FALSE; - - HWND hwndCombo = (HWND)lParam; - INT i, idx; - - if (fTrueType) - { - for (i = 0; i < (sizeof(ttsizes) / sizeof(ttsizes[0])); i++) - { - wsprintf(ach, _T("%d"), ttsizes[i]); - - idx = (INT)SendMessage(hwndCombo, - CB_ADDSTRING, - 0, - (LPARAM)ach); - - SendMessage(hwndCombo, - CB_SETITEMDATA, - idx, - ttsizes[i]); - } - - return 0; - } - - return 1; -} - - -/* Font-enumeration callback */ -int CALLBACK -EnumFontNames(ENUMLOGFONTEX *lpelfe, - NEWTEXTMETRICEX *lpntme, - DWORD FontType, - LPARAM lParam) -{ - HWND hwndCombo = (HWND)lParam; - TCHAR *pszName = lpelfe->elfLogFont.lfFaceName; - - /* make sure font doesn't already exist in our list */ - if(SendMessage(hwndCombo, - CB_FINDSTRING, - 0, - (LPARAM)pszName) == CB_ERR) - { - INT idx; - BOOL fFixed; - BOOL fTrueType; - - /* add the font */ - idx = (INT)SendMessage(hwndCombo, - CB_ADDSTRING, - 0, - (LPARAM)pszName); - - /* record the font's attributes (Fixedwidth and Truetype) */ - fFixed = (lpelfe->elfLogFont.lfPitchAndFamily & FIXED_PITCH) ? TRUE : FALSE; - fTrueType = (lpelfe->elfLogFont.lfOutPrecision == OUT_STROKE_PRECIS) ? TRUE : FALSE; - - /* store this information in the list-item's userdata area */ - SendMessage(hwndCombo, - CB_SETITEMDATA, - idx, - MAKEWPARAM(fFixed, fTrueType)); - } - - return 1; -} - - -VOID -FillFontSizeComboList(HWND hwndCombo) -{ - LOGFONT lf = { 0 }; - HDC hdc = GetDC(hwndCombo); - - /* default size */ - INT cursize = 12; - INT i, count, nearest = 0; - - HFONT hFont = (HFONT) GetStockObject(DEFAULT_GUI_FONT); - - SendMessage(hwndCombo, - WM_SETFONT, - (WPARAM)hFont, - 0); - - lf.lfCharSet = DEFAULT_CHARSET; - lf.lfPitchAndFamily = 0; - - /* empty the list */ - SendMessage(hwndCombo, - CB_RESETCONTENT, - 0, - 0); - - /* enumerate font sizes */ - EnumFontFamiliesEx(hdc, - &lf, - (FONTENUMPROC)EnumFontSizes, - (LPARAM)hwndCombo, - 0); - - /* set selection to first item */ - count = (INT)SendMessage(hwndCombo, - CB_GETCOUNT, - 0, - 0); - - for(i = 0; i < count; i++) - { - INT n = (INT)SendMessage(hwndCombo, - CB_GETITEMDATA, - i, - 0); - - if (n <= cursize) - nearest = i; - } - - SendMessage(hwndCombo, - CB_SETCURSEL, - nearest, - 0); - - ReleaseDC(hwndCombo, - hdc); -} - - -/* Initialize the font-list by enumeration all system fonts */ -VOID -FillFontStyleComboList(HWND hwndCombo) -{ - HDC hdc = GetDC(hwndCombo); - LOGFONT lf; - - /* FIXME: draw each font in its own style */ - HFONT hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT); - SendMessage(hwndCombo, - WM_SETFONT, - (WPARAM)hFont, - 0); - - /* FIXME: set this in relation to the widest string */ - SendMessage(hwndCombo, CB_SETDROPPEDWIDTH, 150, 0); - - lf.lfCharSet = ANSI_CHARSET; // DEFAULT_CHARSET; - lf.lfFaceName[0] = _T('\0'); // all fonts - lf.lfPitchAndFamily = 0; - - /* store the list of fonts in the combo */ - EnumFontFamiliesEx(hdc, - &lf, - (FONTENUMPROC)EnumFontNames, - (LPARAM)hwndCombo, 0); - - ReleaseDC(hwndCombo, - hdc); - - /* set default to Arial */ - SendMessage(hwndCombo, - CB_SELECTSTRING, - -1, - (LPARAM)_T("Arial")); - - -} diff --git a/rosapps/applications/imagesoft/imageprop.h b/rosapps/applications/imagesoft/imageprop.h deleted file mode 100644 index 2baafb75344..00000000000 --- a/rosapps/applications/imagesoft/imageprop.h +++ /dev/null @@ -1,49 +0,0 @@ - -typedef struct _IMAGEADJUST -{ - PMAIN_WND_INFO Info; - HWND hPicPrev; - HBITMAP hBitmap; - HBITMAP hPreviewBitmap; - RECT ImageRect; - INT RedVal; - INT GreenVal; - INT BlueVal; -} IMAGEADJUST, *PIMAGEADJUST; - - -INT_PTR CALLBACK ImagePropDialogProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam); - -INT_PTR CALLBACK BrightnessProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam); - -INT_PTR CALLBACK ContrastProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam); - -VOID AdjustBrightness(HBITMAP hOrigBitmap, - HBITMAP hNewBitmap, - HWND hwnd, - HDC hdcMem, - INT RedVal, - INT GreenVal, - INT BlueVal); - -BOOL DisplayBlackAndWhite(HWND hwnd, - HDC hdcMem, - HBITMAP hBitmap); -BOOL DisplayInvertedColors(HWND hwnd, - HDC hdcMem, - HBITMAP hBitmap); -BOOL DisplayBlur(HWND hwnd, - HDC hdcMem, - HBITMAP hBitmap); -BOOL DisplaySharpness(HWND hwnd, - HDC hdcMem, - HBITMAP hBitmap); diff --git a/rosapps/applications/imagesoft/imagesoft.c b/rosapps/applications/imagesoft/imagesoft.c deleted file mode 100644 index e673a3405d2..00000000000 --- a/rosapps/applications/imagesoft/imagesoft.c +++ /dev/null @@ -1,101 +0,0 @@ -#include - -HINSTANCE hInstance; -HANDLE ProcessHeap; - -int WINAPI -_tWinMain(HINSTANCE hThisInstance, - HINSTANCE hPrevInstance, - LPTSTR lpCmdLine, - int nCmdShow) -{ - LPTSTR lpAppName, lpVersion, lpTitle; - HWND hMainWnd; - MSG Msg; - BOOL bRet; - int Ret = 1; - size_t len; - INITCOMMONCONTROLSEX icex; - - hInstance = hThisInstance; - ProcessHeap = GetProcessHeap(); - - icex.dwSize = sizeof(INITCOMMONCONTROLSEX); - icex.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES; - InitCommonControlsEx(&icex); - - if ( !AllocAndLoadString(&lpAppName, hInstance, IDS_APPNAME) || - !AllocAndLoadString(&lpVersion, hInstance, IDS_VERSION) ) - { - return Ret; - } - - len = _tcslen(lpAppName) + _tcslen(lpVersion); - lpTitle = HeapAlloc(ProcessHeap, - 0, - (len + 2) * sizeof(TCHAR)); - if (lpTitle == NULL) - { - LocalFree((HLOCAL)lpAppName); - LocalFree((HLOCAL)lpVersion); - return Ret; - } - - wsprintf(lpTitle, - _T("%s %s"), - lpAppName, - lpVersion); - - LocalFree((HLOCAL)lpAppName); - LocalFree((HLOCAL)lpVersion); - - if (TbdInitImpl()) - { - if (InitMainWindowImpl()) - { - if (InitImageEditWindowImpl()) - { - if (InitFloatWndClass()) - { - hMainWnd = CreateMainWindow(lpTitle, - nCmdShow); - if (hMainWnd != NULL) - { - /* pump the message queue */ - while ((bRet = GetMessage(&Msg, - NULL, - 0, - 0) != 0)) - { - if (bRet != (BOOL)-1) - { - if (!MainWndTranslateMDISysAccel(hMainWnd, - &Msg)) - { - TranslateMessage(&Msg); - DispatchMessage(&Msg); - } - } - } - - Ret = 0; - } - - UninitImageEditWindowImpl(); - } - - UninitFloatWndImpl(); - } - - UninitMainWindowImpl(); - } - - TbdUninitImpl(); - } - - HeapFree(GetProcessHeap(), - 0, - lpTitle); - - return Ret; -} diff --git a/rosapps/applications/imagesoft/imagesoft.rbuild b/rosapps/applications/imagesoft/imagesoft.rbuild deleted file mode 100644 index 479c5a542ab..00000000000 --- a/rosapps/applications/imagesoft/imagesoft.rbuild +++ /dev/null @@ -1,30 +0,0 @@ - - - - . - gdi32 - user32 - advapi32 - version - comctl32 - shell32 - comdlg32 - - about.c - adjust.c - brightness.c - contrast.c - custcombo.c - floatwindow.c - font.c - imagesoft.c - imgedwnd.c - mainwnd.c - misc.c - opensave.c - tooldock.c - - imagesoft.rc - precomp.h - - diff --git a/rosapps/applications/imagesoft/imagesoft.rc b/rosapps/applications/imagesoft/imagesoft.rc deleted file mode 100644 index c1b7c8d9ef0..00000000000 --- a/rosapps/applications/imagesoft/imagesoft.rc +++ /dev/null @@ -1,72 +0,0 @@ -#include -#include -#include "resource.h" - -/* define language neutral resources */ -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL - -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Image Editor" -#define REACTOS_STR_INTERNAL_NAME "imagesoft" -#define REACTOS_STR_ORIGINAL_FILENAME "imagesoft.exe" -#include - -IDI_IMAGESOFTICON ICON "res/imagesoft.ico" - -/* main toolbar icons */ -IDB_MAINCOPYICON BITMAP DISCARDABLE "res/icons/std/MainCopyIcon.bmp" -IDB_MAINCUTICON BITMAP DISCARDABLE "res/icons/std/MainCutIcon.bmp" -IDB_MAINPASTEICON BITMAP DISCARDABLE "res/icons/std/MainPasteIcon.bmp" -IDB_MAINREDOICON BITMAP DISCARDABLE "res/icons/std/MainRedoIcon.bmp" -IDB_MAINUNDOICON BITMAP DISCARDABLE "res/icons/std/MainUndoIcon.bmp" -IDB_MAINNEWICON BITMAP DISCARDABLE "res/icons/std/MainNewIcon.bmp" -IDB_MAINOPENICON BITMAP DISCARDABLE "res/icons/std/MainOpenIcon.bmp" -IDB_MAINPRINTICON BITMAP DISCARDABLE "res/icons/std/MainPrintIcon.bmp" -IDB_MAINPRINTPREICON BITMAP DISCARDABLE "res/icons/std/MainPrintPreIcon.bmp" -IDB_MAINSAVEICON BITMAP DISCARDABLE "res/icons/std/MainSaveIcon.bmp" - -/* text toolbar icons */ -IDB_TEXTBOLD BITMAP DISCARDABLE "res/icons/text/TextBoldIcon.bmp" -IDB_TEXTITALIC BITMAP DISCARDABLE "res/icons/text/TextItalicIcon.bmp" -IDB_TEXTULINE BITMAP DISCARDABLE "res/icons/text/TextUnderlineIcon.bmp" -IDB_TEXTLEFT BITMAP DISCARDABLE "res/icons/text/TextAlignLeftIcon.bmp" -IDB_TEXTCENTER BITMAP DISCARDABLE "res/icons/text/TextAlignCenterIcon.bmp" -IDB_TEXTRIGHT BITMAP DISCARDABLE "res/icons/text/TextAlignRightIcon.bmp" - -/* tools window icons */ -IDB_TOOLSCLONESTAMP BITMAP DISCARDABLE "res/icons/tools/ToolsCloneStamp.bmp" -IDB_TOOLSCOLORPICKER BITMAP DISCARDABLE "res/icons/tools/ToolsColorPicker.bmp" -IDB_TOOLSECLIPSE BITMAP DISCARDABLE "res/icons/tools/ToolsEllipse.bmp" -IDB_TOOLSECLIPSESEL BITMAP DISCARDABLE "res/icons/tools/ToolsEllipseSelect.bmp" -IDB_TOOLSERASER BITMAP DISCARDABLE "res/icons/tools/ToolsEraser.bmp" -IDB_TOOLSFREEFORM BITMAP DISCARDABLE "res/icons/tools/ToolsFreeformShape.bmp" -IDB_TOOLSLASOO BITMAP DISCARDABLE "res/icons/tools/ToolsLassoSelect.bmp" -IDB_TOOLSLINE BITMAP DISCARDABLE "res/icons/tools/ToolsLine.bmp" -IDB_TOOLSMAGICWAND BITMAP DISCARDABLE "res/icons/tools/ToolsMagicWand.bmp" -IDB_TOOLSMOVE BITMAP DISCARDABLE "res/icons/tools/ToolsMove.bmp" -IDB_TOOLSMOVESEL BITMAP DISCARDABLE "res/icons/tools/ToolsMoveSelection.bmp" -IDB_TOOLSPAINTBRUSH BITMAP DISCARDABLE "res/icons/tools/ToolsPaintBrush.bmp" -IDB_TOOLSPAINTBUCKET BITMAP DISCARDABLE "res/icons/tools/ToolsPaintBucket.bmp" -IDB_TOOLSPENCIL BITMAP DISCARDABLE "res/icons/tools/ToolsPencil.bmp" -IDB_TOOLSRECOLORING BITMAP DISCARDABLE "res/icons/tools/ToolsRecoloring.bmp" -IDB_TOOLSRECTANGLE BITMAP DISCARDABLE "res/icons/tools/ToolsRectangle.bmp" -IDB_TOOLSRECTSEL BITMAP DISCARDABLE "res/icons/tools/ToolsRectangleSelect.bmp" -IDB_TOOLSROUNDRECT BITMAP DISCARDABLE "res/icons/tools/ToolsRoundedRectangle.bmp" -IDB_TOOLSTEXT BITMAP DISCARDABLE "res/icons/tools/ToolsText.bmp" -IDB_TOOLSZOOM BITMAP DISCARDABLE "res/icons/tools/ToolsZoom.bmp" - -/* history window icons */ -IDB_HISTBACK BITMAP DISCARDABLE "res/icons/hist/HistBack.bmp" -IDB_HISTUNDO BITMAP DISCARDABLE "res/icons/hist/HistUndo.bmp" -IDB_HISTREDO BITMAP DISCARDABLE "res/icons/hist/HistRedo.bmp" -IDB_HISTFORWARD BITMAP DISCARDABLE "res/icons/hist/HistForward.bmp" -IDB_HISTDELETE BITMAP DISCARDABLE "res/icons/hist/HistDelete.bmp" - -/* colors window icons */ -IDB_COLORSMORE BITMAP DISCARDABLE "res/icons/color/ColorMore.bmp" -IDB_COLORSLESS BITMAP DISCARDABLE "res/icons/color/ColorLess.bmp" - -/* cursors */ -IDC_PAINTBRUSHCURSOR CURSOR DISCARDABLE "res/cursors/PaintBrushToolCursor.cur" -IDC_PAINTBRUSHCURSORMOUSEDOWN CURSOR DISCARDABLE "res/cursors/PaintBrushToolCursorMouseDown.cur" - -#include "rsrc.rc" diff --git a/rosapps/applications/imagesoft/imgedwnd.c b/rosapps/applications/imagesoft/imgedwnd.c deleted file mode 100644 index c9342080461..00000000000 --- a/rosapps/applications/imagesoft/imgedwnd.c +++ /dev/null @@ -1,542 +0,0 @@ -#include "precomp.h" - -static const TCHAR szImageEditWndClass[] = TEXT("ImageSoftEditWndClass"); - -#define IMAGE_FRAME_SIZE 1 - -static VOID -EditWndUpdateScrollInfo(PEDIT_WND_INFO Info) -{ - SCROLLINFO si; - RECT rcClient; - - GetClientRect(Info->hSelf, - &rcClient); - - si.cbSize = sizeof(si); - si.fMask = SIF_PAGE | SIF_RANGE; - si.nPage = rcClient.right - (2 * IMAGE_FRAME_SIZE); - si.nMin = 0; - si.nMax = Info->Width; - - SetScrollInfo(Info->hSelf, - SB_HORZ, - &si, - TRUE); - - si.nPage = rcClient.bottom - (2 * IMAGE_FRAME_SIZE); - si.nMax = Info->Height; - SetScrollInfo(Info->hSelf, - SB_VERT, - &si, - TRUE); -} - - -static BOOL -LoadBlankCanvas(PEDIT_WND_INFO Info) -{ - /* FIXME: convert this to a DIB Section */ - /* set bitmap dimensions */ - Info->Width = Info->OpenInfo->New.Width; - Info->Height = Info->OpenInfo->New.Height; - - return TRUE; -} - -static BOOL -LoadDIBImage(PEDIT_WND_INFO Info) -{ - BITMAPFILEHEADER bmfh; - HANDLE hFile; - BITMAP bitmap; - DWORD BytesRead; - BOOL bSuccess, bRet = FALSE; - - hFile = CreateFile(Info->OpenInfo->Open.lpImagePath, - GENERIC_READ, - FILE_SHARE_READ, - NULL, - OPEN_EXISTING, - FILE_FLAG_SEQUENTIAL_SCAN, - NULL); - if (hFile == INVALID_HANDLE_VALUE) - return bRet; - - bSuccess = ReadFile(hFile, - &bmfh, - sizeof(BITMAPFILEHEADER), - &BytesRead, - NULL); - - if (bSuccess && (BytesRead == sizeof(BITMAPFILEHEADER)) - && (bmfh.bfType == *(WORD *)"BM")) - { - DWORD InfoSize = bmfh.bfOffBits - sizeof(BITMAPFILEHEADER); - - Info->pbmi = HeapAlloc(ProcessHeap, - 0, - InfoSize); - if (Info->pbmi) - { - bSuccess = ReadFile(hFile, - Info->pbmi, - InfoSize, - &BytesRead, - NULL); - - if (bSuccess && (BytesRead == InfoSize)) - { - Info->hBitmap = CreateDIBSection(NULL, - Info->pbmi, - DIB_RGB_COLORS, - (VOID *)&Info->pBits, - NULL, - 0); - if (Info->hBitmap != NULL) - { - ReadFile(hFile, - Info->pBits, - bmfh.bfSize - bmfh.bfOffBits, - &BytesRead, - NULL); - - GetObject(Info->hBitmap, - sizeof(BITMAP), - &bitmap); - - Info->Width = bitmap.bmWidth; - Info->Height = bitmap.bmHeight; - - bRet = TRUE; - } - } - } - } - else if (!bSuccess) - { - GetError(0); - } - - CloseHandle(hFile); - - return bRet; -} - - -static BOOL -InitEditWnd(PEDIT_WND_INFO Info) -{ - //BOOL bRet = FALSE; - - Info->Zoom = 100; - - if (Info->OpenInfo != NULL) - { - HDC hDC; - - if (Info->hDCMem) - { - DeleteObject(Info->hDCMem); - Info->hDCMem = NULL; - } - - hDC = GetDC(Info->hSelf); - Info->hDCMem = CreateCompatibleDC(hDC); - ReleaseDC(Info->hSelf, hDC); - - if (Info->OpenInfo->CreateNew) - { - LoadBlankCanvas(Info); - } - else - { - LoadDIBImage(Info); - } - - Info->OpenInfo = NULL; - } - - EditWndUpdateScrollInfo(Info); - - /* Add image editor to the list */ - Info->Next = Info->MainWnd->ImageEditors; - Info->MainWnd->ImageEditors = Info; - - InvalidateRect(Info->hSelf, - NULL, - TRUE); - - /* FIXME - if returning FALSE, remove the image editor from the list! */ - return TRUE; -} - -static VOID -DestroyEditWnd(PEDIT_WND_INFO Info) -{ - PEDIT_WND_INFO *PrevEditor; - PEDIT_WND_INFO Editor; - - DeleteDC(Info->hDCMem); - - /* FIXME - free resources and run down editor */ - HeapFree(ProcessHeap, - 0, - Info->pbmi); - HeapFree(ProcessHeap, - 0, - Info->pBits); - - /* Remove the image editor from the list */ - PrevEditor = &Info->MainWnd->ImageEditors; - Editor = Info->MainWnd->ImageEditors; - do - { - if (Editor == Info) - { - *PrevEditor = Info->Next; - break; - } - PrevEditor = &Editor->Next; - Editor = Editor->Next; - } while (Editor != NULL); -} - -static VOID -ImageEditWndRepaint(PEDIT_WND_INFO Info, - HDC hDC, - LPPAINTSTRUCT lpps) -{ - HBITMAP hOldBitmap; - - if (Info->hBitmap) - { - hOldBitmap = (HBITMAP) SelectObject(Info->hDCMem, - Info->hBitmap); - - BitBlt(hDC, - lpps->rcPaint.left, - lpps->rcPaint.top, - lpps->rcPaint.right - lpps->rcPaint.left, - lpps->rcPaint.bottom - lpps->rcPaint.top, - Info->hDCMem, - lpps->rcPaint.left, - lpps->rcPaint.top, - SRCCOPY); - - Info->hBitmap = SelectObject(Info->hDCMem, hOldBitmap); - } -} - -static LRESULT CALLBACK -ImageEditWndProc(HWND hwnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - PEDIT_WND_INFO Info; - LRESULT Ret = 0; - HDC hDC; - static INT xMouse, yMouse; - static BOOL bLeftButtonDown, bRightButtonDown; - - /* Get the window context */ - Info = (PEDIT_WND_INFO)GetWindowLongPtr(hwnd, - GWLP_USERDATA); - if (Info == NULL && uMsg != WM_CREATE) - { - goto HandleDefaultMessage; - } - - switch (uMsg) - { - case WM_CREATE: - { - Info = (PEDIT_WND_INFO)(((LPMDICREATESTRUCT)((LPCREATESTRUCT)lParam)->lpCreateParams)->lParam); - Info->hSelf = hwnd; - - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - (LONG_PTR)Info); - - if (!InitEditWnd(Info)) - { - Ret = (LRESULT)-1; - break; - } - break; - } -/* - case WM_ERASEBKGND: - if (Info->Width != 0 && Info->Height != 0) - { - Ret = TRUE; - } - break; -*/ - case WM_LBUTTONDOWN: - if (! bRightButtonDown) - SetCapture(Info->hSelf); - - bLeftButtonDown = TRUE; - xMouse = LOWORD(lParam); - yMouse = HIWORD(lParam); - - SetCursor(LoadCursor(hInstance, - MAKEINTRESOURCE(IDC_PAINTBRUSHCURSORMOUSEDOWN))); - break; - - case WM_LBUTTONUP: - if (bLeftButtonDown) - SetCapture(NULL); - - bLeftButtonDown = FALSE; - - break; - - case WM_RBUTTONDOWN: - if (! bLeftButtonDown) - SetCapture(Info->hSelf); - - bRightButtonDown = TRUE; - xMouse = LOWORD(lParam); - yMouse = HIWORD(lParam); - - SetCursor(LoadCursor(hInstance, - MAKEINTRESOURCE(IDC_PAINTBRUSHCURSORMOUSEDOWN))); - break; - - case WM_RBUTTONUP: - if (bRightButtonDown) - SetCapture(NULL); - - bRightButtonDown = FALSE; - - break; - - case WM_MOUSEMOVE: - { - HPEN hPen, hPenOld; - - if (!bLeftButtonDown && !bRightButtonDown) - break; - - hDC = GetDC(Info->hSelf); - - SelectObject(Info->hDCMem, - Info->hBitmap); - - if (bLeftButtonDown) - hPen = CreatePen(PS_SOLID, - 3, - RGB(0, 0, 0)); - else - hPen = CreatePen(PS_SOLID, - 3, - RGB(255, 255, 255)); - - hPenOld = SelectObject(hDC, - hPen); - SelectObject(Info->hDCMem, - hPen); - - MoveToEx(hDC, - xMouse, - yMouse, - NULL); - - MoveToEx(Info->hDCMem, - xMouse, - yMouse, - NULL); - - xMouse = LOWORD(lParam); - yMouse = HIWORD(lParam); - - LineTo(hDC, - xMouse, - yMouse); - - LineTo(Info->hDCMem, - xMouse, - yMouse); - - SelectObject(hDC, - hPenOld); - DeleteObject(SelectObject(Info->hDCMem, - hPenOld)); - - ReleaseDC(Info->hSelf, - hDC); - } - break; - - case WM_PAINT: - { - if (Info->Width != 0 && Info->Height != 0) - { - PAINTSTRUCT ps; - HDC hDC; - - hDC = BeginPaint(hwnd, - &ps); - if (hDC != NULL) - { - ImageEditWndRepaint(Info, - hDC, - &ps); - - EndPaint(hwnd, - &ps); - } - } - break; - } - - case WM_SIZE: - { - EditWndUpdateScrollInfo(Info); - goto HandleDefaultMessage; - } - - case WM_MENUSELECT: - case WM_ENTERMENULOOP: - case WM_EXITMENULOOP: - /* forward these messages to the main window procedure */ - Ret = SendMessage(Info->MainWnd->hSelf, - uMsg, - wParam, - lParam); - break; - - case WM_MDIACTIVATE: - /* Switch the main window context if neccessary */ - MainWndSwitchEditorContext(Info->MainWnd, - (HWND)wParam, - (HWND)lParam); - break; - - case WM_DESTROY: - { - DestroyEditWnd(Info); - - HeapFree(ProcessHeap, - 0, - Info); - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - 0); - break; - } - - default: -HandleDefaultMessage: - Ret = DefMDIChildProc(hwnd, - uMsg, - wParam, - lParam); - break; - } - - return Ret; -} - -VOID -SetImageEditorEnvironment(PEDIT_WND_INFO Info, - BOOL Setup) -{ - if (Setup) - { - /* FIXME - setup editor environment (e.g. show toolbars, enable menus etc) */ - } - else - { - /* FIXME - cleanup editor environment (e.g. hide toolbars, disable menus etc) */ - } -} - -BOOL -CreateImageEditWindow(PMAIN_WND_INFO MainWnd, - POPEN_IMAGE_EDIT_INFO OpenInfo) -{ - PEDIT_WND_INFO Info; - HWND hWndEditor; - LONG Width, Height; - - Info = HeapAlloc(ProcessHeap, - 0, - sizeof(EDIT_WND_INFO)); - if (Info != NULL) - { - ZeroMemory(Info, - sizeof(EDIT_WND_INFO)); - Info->MainWnd = MainWnd; - Info->MdiEditorType = metImageEditor; - Info->OpenInfo = OpenInfo; - - if (OpenInfo->CreateNew) - { - Width = OpenInfo->New.Width; - Height = OpenInfo->New.Height; - } - else - { - Width = CW_USEDEFAULT; - Height = CW_USEDEFAULT; - } - - hWndEditor = CreateMDIWindow(szImageEditWndClass, - OpenInfo->lpImageName, - WS_HSCROLL | WS_VSCROLL | WS_MAXIMIZE, - 200, - 200, - Width, - Height, - MainWnd->hMdiClient, - hInstance, - (LPARAM)Info); - - if (hWndEditor != NULL) - { - return TRUE; - } - - HeapFree(ProcessHeap, - 0, - Info); - } - - return FALSE; -} - -BOOL -InitImageEditWindowImpl(VOID) -{ - WNDCLASSEX wc = {0}; - - wc.cbSize = sizeof(WNDCLASSEX); - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = ImageEditWndProc; - wc.hInstance = hInstance; - wc.hIcon = LoadIcon(hInstance, - MAKEINTRESOURCE(IDI_IMAGESOFTICON)); - wc.hCursor = LoadCursor(hInstance, - MAKEINTRESOURCE(IDC_PAINTBRUSHCURSOR)); - wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); - wc.lpszClassName = szImageEditWndClass; - wc.hIconSm = (HICON)LoadImage(hInstance, - MAKEINTRESOURCE(IDI_IMAGESOFTICON), - IMAGE_ICON, - 16, - 16, - LR_SHARED); - - return RegisterClassEx(&wc) != (ATOM)0; -} - -VOID -UninitImageEditWindowImpl(VOID) -{ - UnregisterClass(szImageEditWndClass, - hInstance); -} diff --git a/rosapps/applications/imagesoft/imgedwnd.h b/rosapps/applications/imagesoft/imgedwnd.h deleted file mode 100644 index 1e8b322b893..00000000000 --- a/rosapps/applications/imagesoft/imgedwnd.h +++ /dev/null @@ -1,94 +0,0 @@ -#define MONOCHROMEBITS 1 -#define GREYSCALEBITS 8 -#define PALLETEBITS 8 -#define TRUECOLORBITS 24 - -#define PIXELS 0 -#define CENTIMETERS 1 -#define INCHES 2 - - -/* generic definitions and forward declarations */ -struct _MAIN_WND_INFO; -struct _EDIT_WND_INFO; - - -typedef enum _MDI_EDITOR_TYPE { - metUnknown = 0, - metImageEditor, -} MDI_EDITOR_TYPE, *PMDI_EDITOR_TYPE; - -typedef enum -{ - tSelect = 0, - tMove, - tLasso, - tZoom, - tMagicWand, - tBrush, - tEraser, - tPencil, - tColorPick, - tStamp, - tFill, - tLine, - tPolyline, - tRectangle, - tRoundRectangle, - tPolygon, - tElipse, -} TOOL; - -typedef struct _OPEN_IMAGE_EDIT_INFO -{ - BOOL CreateNew; - union - { - struct - { - LONG Width; - LONG Height; - } New; - struct - { - LPTSTR lpImagePath; - } Open; - }; - LPTSTR lpImageName; - USHORT Type; - LONG Resolution; -} OPEN_IMAGE_EDIT_INFO, *POPEN_IMAGE_EDIT_INFO; - -typedef struct _EDIT_WND_INFO -{ - MDI_EDITOR_TYPE MdiEditorType; /* Must be first member! */ - - HWND hSelf; - HBITMAP hBitmap; - HDC hDCMem; - PBITMAPINFO pbmi; - PBYTE pBits; - struct _MAIN_WND_INFO *MainWnd; - struct _EDIT_WND_INFO *Next; - POINT ScrollPos; - USHORT Zoom; - DWORD Tool; - - POPEN_IMAGE_EDIT_INFO OpenInfo; /* Only valid during initialization */ - - /* Canvas properties */ - USHORT Type; - LONG Resolution; - /* size of drawing area */ - LONG Width; - LONG Height; - -} EDIT_WND_INFO, *PEDIT_WND_INFO; - - -BOOL CreateImageEditWindow(struct _MAIN_WND_INFO *MainWnd, - POPEN_IMAGE_EDIT_INFO OpenInfo); -VOID SetImageEditorEnvironment(PEDIT_WND_INFO Info, - BOOL Setup); -BOOL InitImageEditWindowImpl(VOID); -VOID UninitImageEditWindowImpl(VOID); diff --git a/rosapps/applications/imagesoft/lang/bg-BG.rc b/rosapps/applications/imagesoft/lang/bg-BG.rc deleted file mode 100644 index 2ab3f5faf92..00000000000 --- a/rosapps/applications/imagesoft/lang/bg-BG.rc +++ /dev/null @@ -1,237 +0,0 @@ -LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "в0,1" -END - -IDR_MAINMENU MENU - -BEGIN - POPUP "&Файл" - BEGIN - MENUITEM "&Ðов...", ID_NEW - MENUITEM "&ОтварÑне...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&ЗатварÑне\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "ЗатварÑне на вÑички", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "&ЗапиÑ", ID_SAVE, GRAYED - MENUITEM "Ð—Ð°Ð¿Ð¸Ñ &като...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Печатен изглед", ID_PRINTPRE,GRAYED - MENUITEM "&Разпечатване...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "&СвойÑтва", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "Из&ход\tAlt+F4", ID_EXIT - END - - POPUP "&Обработка" - BEGIN - MENUITEM "&ОтмÑна", ID_UNDO, GRAYED - MENUITEM "&Връщане", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "От&Ñ€Ñзване", ID_CUT, GRAYED - MENUITEM "За&помнÑне", ID_COPY, GRAYED - MENUITEM "&ПоÑтавÑне", ID_PASTE, GRAYED - MENUITEM "ПоÑтавÑне като ново из&ображение", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Избор на вÑи&чки", ID_SELALL, GRAYED - END - - POPUP "Из&глед" - BEGIN - MENUITEM "&СредÑтва", ID_TOOLS - MENUITEM "&Цветове", ID_COLOR - MENUITEM "&Дневник", ID_HISTORY - MENUITEM "Лента ÑÑŠÑтоÑние", ID_STATUSBAR - END - - POPUP "&ÐаÑтройка" - BEGIN - MENUITEM "ЯркоÑÑ‚...", ID_BRIGHTNESS - MENUITEM "КонтраÑÑ‚...", ID_CONTRAST - MENUITEM "Оттенък/ÐаÑищане", -1, GRAYED - POPUP "ЦвÑÑ‚" - BEGIN - MENUITEM "Черно- бÑло", ID_BLACKANDWHITE - MENUITEM "Обръщане на цветовете", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "Размиване", ID_BLUR - MENUITEM "ИзоÑтрÑне", ID_SHARPEN - MENUITEM "ЗаоблÑне на ръбовете", -1, GRAYED - MENUITEM "ДобавÑне на ÑÑнка", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Размер на изображението", -1, GRAYED - MENUITEM "Обръщане", -1, GRAYED - MENUITEM "Огледало", -1, GRAYED - MENUITEM "Завъртане", -1, GRAYED - - END - - POPUP "&Цветове" - BEGIN - MENUITEM "&Обработка на цветовете...", ID_EDITCOLOURS - END - POPUP "&Прозорец" - BEGIN - MENUITEM "Ðа&диплÑне", ID_WINDOW_CASCADE - MENUITEM "Водоравно наÑтелване", ID_WINDOW_TILE_HORZ - MENUITEM "&ОтвеÑно наÑтелване", ID_WINDOW_TILE_VERT - MENUITEM "Под&реждане на значетата", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "&Следващ\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "Помо&щ" - BEGIN - MENUITEM "&За...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 220, 120 -CAPTION "ЯркоÑÑ‚" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "Цветова форма:", IDC_STATIC, 135, 5, 60, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 77, 48 - CONTROL "Пълноцветно (ЧЗС)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 80, 9 - CONTROL "Червено", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 55, 9 - CONTROL "Зелено", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 55, 9 - CONTROL "Синьо", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 55, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "Добре", IDOK, 142, 88, 48, 13 - PUSHBUTTON "Отказ", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "За ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "ЗатварÑне", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 170, 163 -CAPTION "СвойÑтва на изображението" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Име:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 68, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "СвойÑтва на платното", IDC_STATIC, 4, 22, 162, 98 - LTEXT "Вид:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Ширина:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 68, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "ВиÑочина:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 68, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Разделителна ÑпоÑобноÑÑ‚:", IDC_STATIC, 12, 82, 46, 18 - EDITTEXT IDC_RES_EDIT, 68, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Единици:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "Размери:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 68, 125, 54, 9 - PUSHBUTTON "Добре", IDOK, 50, 144, 48, 13 - PUSHBUTTON "Отказ", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY " Готово." - IDS_TOOLBAR_STANDARD "Стандартно" - IDS_TOOLBAR_TEST "Проба" - IDS_IMAGE_NAME "Изображение %1!u!" - IDS_FLT_TOOLS "СредÑтва" - IDS_FLT_COLORS "Цветове" - IDS_FLT_HISTORY "ИÑÑ‚Ð¾Ñ€Ð¸Ñ (дневник)" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Едноцветно (1 разрÑд)" - IDS_IMAGE_GREYSCALE "Сиво- бÑло (8 разрÑда)" - IDS_IMAGE_PALETTE "Палитра от 256 цвÑта" - IDS_IMAGE_TRUECOLOR "ИÑтинÑка цветноÑÑ‚ (24 разрÑда)" - - IDS_UNIT_PIXELS "Точки" - IDS_UNIT_CM "Ñм" - IDS_UNIT_INCHES "Цола" - IDS_UNIT_DOTSCM "Точки/ Ñм" - IDS_UNIT_DPI "Т/Ц" - IDS_UNIT_KB "%d КБ" - IDS_UNIT_MB "%d МБ" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "Ðов" - IDS_TOOLTIP_OPEN "ОтварÑне" - IDS_TOOLTIP_SAVE "ЗапиÑ" - IDS_TOOLTIP_PRINTPRE "Печатен изглед" - IDS_TOOLTIP_PRINT "Разпечатване" - IDS_TOOLTIP_CUT "ОтрÑзване" - IDS_TOOLTIP_COPY "ЗапомнÑне" - IDS_TOOLTIP_PASTE "ПоÑтавÑне" - IDS_TOOLTIP_UNDO "ОтмÑна" - IDS_TOOLTIP_REDO "Връщане" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Създава нов документ." - IDS_HINT_OPEN " ÐžÑ‚Ð²Ð°Ñ€Ñ ÑъщеÑтвуващ документ." - IDS_HINT_CLOSE " Ð—Ð°Ñ‚Ð²Ð°Ñ€Ñ Ñ‚Ð¾Ð·Ð¸ прозорец." - IDS_HINT_CLOSEALL " Ð—Ð°Ñ‚Ð²Ð°Ñ€Ñ Ð²Ñички прозорци." - IDS_HINT_SAVE " Ð—Ð°Ñ‚Ð²Ð°Ñ€Ñ Ð´ÐµÐ¹Ð½Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚." - IDS_HINT_SAVEAS " Ð—Ð°Ñ‚Ð²Ð°Ñ€Ñ Ð´ÐµÐ¹Ð½Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚ под ново име." - IDS_HINT_PRINTPRE " Показва печатен изглед на документа." - IDS_HINT_PRINT " Разпечатва Ð´ÐµÐ¹Ð½Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚." - IDS_HINT_PROP " Показва ÑвойÑтвата на дейното изображение." - IDS_HINT_EXIT " Излиза от приложението" - - IDS_HINT_TOOLS " Показва или Ñкрива Ð¿Ð»Ð°Ð²Ð°Ñ‰Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† на ÑредÑтвата." - IDS_HINT_COLORS " Показва ли Ñкрива Ð¿Ð»Ð°Ð²Ð°Ñ‰Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† на цветовете." - IDS_HINT_HISTORY " Показва или Ñкрива Ð¿Ð»Ð°Ð²Ð°Ñ‰Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† на иÑториÑта." - IDS_HINT_STATUS " Показва или Ñкрива лентата на ÑÑŠÑтоÑнието." - - IDS_HINT_CASCADE " Подрежда прозорците така, че да Ñе заÑтъпват." - IDS_HINT_TILE_HORZ " Подрежда прозорците като незаÑтъпващи Ñе плочки." - IDS_HINT_TILE_VERT " Подрежда прозорците като незаÑтъпващи Ñе плочки." - IDS_HINT_ARRANGE " Подрежда значетата на дъното на прозореца." - IDS_HINT_NEXT " ЗадейÑтва ÑÐ»ÐµÐ´Ð²Ð°Ñ‰Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†." - - IDS_HINT_SYS_RESTORE " ВъзÑтановÑва прозореца до обичайните му размери." - IDS_HINT_SYS_MOVE " МеÑти прозореца." - IDS_HINT_SYS_SIZE " ПреоразмерÑва прозореца." - IDS_HINT_SYS_MINIMIZE " СмалÑва прозореца в значе." - IDS_HINT_SYS_MAXIMIZE " Разгръща прозореца на цÑл екран." -END diff --git a/rosapps/applications/imagesoft/lang/en-GB.rc b/rosapps/applications/imagesoft/lang/en-GB.rc deleted file mode 100644 index 7f665a1ab0e..00000000000 --- a/rosapps/applications/imagesoft/lang/en-GB.rc +++ /dev/null @@ -1,232 +0,0 @@ -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&New...", ID_NEW - MENUITEM "&Open...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&Close\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "C&lose all", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "&Save", ID_SAVE, GRAYED - MENUITEM "Save &As...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "Print Pre&view", ID_PRINTPRE,GRAYED - MENUITEM "&Print...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "Pr&operties...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "E&xit\tAlt+F4", ID_EXIT - END - POPUP "&Edit" - BEGIN - MENUITEM "&Undo", ID_UNDO, GRAYED - MENUITEM "&Redo", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "Cu&t", ID_CUT, GRAYED - MENUITEM "&Copy", ID_COPY, GRAYED - MENUITEM "&Paste", ID_PASTE, GRAYED - MENUITEM "Paste as new &image", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Select &All", ID_SELALL, GRAYED - END - POPUP "&View" - BEGIN - MENUITEM "&Tools", ID_TOOLS - MENUITEM "&Colours", ID_COLOR - MENUITEM "&History", ID_HISTORY - MENUITEM "&Status Bar", ID_STATUSBAR - END - POPUP "&Adjust" - BEGIN - MENUITEM "Brightness...", ID_BRIGHTNESS - MENUITEM "Contrast...", ID_CONTRAST - MENUITEM "Hue/Saturation...", -1, GRAYED - POPUP "Colour" - BEGIN - MENUITEM "Black and White", ID_BLACKANDWHITE - MENUITEM "Invert Colours", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "Blur", ID_BLUR - MENUITEM "Sharpen", ID_SHARPEN - MENUITEM "Smooth Edges", -1, GRAYED - MENUITEM "Add Shadow", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Image Size...", -1, GRAYED - MENUITEM "Flip", -1, GRAYED - MENUITEM "Mirror", -1, GRAYED - MENUITEM "Rotate", -1, GRAYED - - END - POPUP "&Colours" - BEGIN - MENUITEM "&Edit Colours...", ID_EDITCOLOURS - END - POPUP "&Window" - BEGIN - MENUITEM "&Cascade", ID_WINDOW_CASCADE - MENUITEM "Tile &Horizontally", ID_WINDOW_TILE_HORZ - MENUITEM "Tile &Vertically", ID_WINDOW_TILE_VERT - MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Nex&t\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "&Help" - BEGIN - MENUITEM "&About...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "Brightness" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "Colour form:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "Full (RGB)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "Red", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "Green", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "Blue", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "OK", IDOK, 142, 88, 48, 13 - PUSHBUTTON "Cancel", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "About ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "Close", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "Image Properties" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Name:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "Canvas properties", IDC_STATIC, 4, 22, 148, 98 - LTEXT "Image type:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Width:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "Height:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Resolution:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Unit:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "Image size:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 - PUSHBUTTON "Cancel", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY " Ready." - IDS_TOOLBAR_STANDARD "Standard" - IDS_TOOLBAR_TEST "Test" - IDS_IMAGE_NAME "Image %1!u!" - IDS_FLT_TOOLS "Tools" - IDS_FLT_COLORS "Colours" - IDS_FLT_HISTORY "History" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Monochrome (1 bit)" - IDS_IMAGE_GREYSCALE "Greyscale (8 bit)" - IDS_IMAGE_PALETTE "Palette or 256 colour (8 bit)" - IDS_IMAGE_TRUECOLOR "True colour (24 bit)" - - IDS_UNIT_PIXELS "Pixels" - IDS_UNIT_CM "Cm" - IDS_UNIT_INCHES "Inches" - IDS_UNIT_DOTSCM "Dots / Cm" - IDS_UNIT_DPI "DPI" - IDS_UNIT_KB "%d KB" - IDS_UNIT_MB "%d MB" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "New" - IDS_TOOLTIP_OPEN "Open" - IDS_TOOLTIP_SAVE "Save" - IDS_TOOLTIP_PRINTPRE "Print preview" - IDS_TOOLTIP_PRINT "Print" - IDS_TOOLTIP_CUT "Cut" - IDS_TOOLTIP_COPY "Copy" - IDS_TOOLTIP_PASTE "Paste" - IDS_TOOLTIP_UNDO "Undo" - IDS_TOOLTIP_REDO "Redo" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Creates a new document." - IDS_HINT_OPEN " Opens an existing document." - IDS_HINT_CLOSE " Closes this window." - IDS_HINT_CLOSEALL " Closes all windows." - IDS_HINT_SAVE " Saves the active document." - IDS_HINT_SAVEAS " Saves the active document with a new name." - IDS_HINT_PRINTPRE " Previews the printed document." - IDS_HINT_PRINT " Prints the active document." - IDS_HINT_PROP " Shows the properties of the active image." - IDS_HINT_EXIT " Exits this application." - - IDS_HINT_TOOLS " Shows or hides the tools floating window." - IDS_HINT_COLORS " Shows or hides the colours floating window." - IDS_HINT_HISTORY " Shows or hides the history floating window." - IDS_HINT_STATUS " Shows or hides the status bar." - - IDS_HINT_CASCADE " Arrange windows so they overlap." - IDS_HINT_TILE_HORZ " Arrange windows as non-overlapping tiles." - IDS_HINT_TILE_VERT " Arrange windows as non-overlapping tiles." - IDS_HINT_ARRANGE " Arrange icons at the bottom of the window." - IDS_HINT_NEXT " Activates the next window." - - IDS_HINT_SYS_RESTORE " Restores this window to normal size." - IDS_HINT_SYS_MOVE " Moves this window." - IDS_HINT_SYS_SIZE " Resizes this window." - IDS_HINT_SYS_MINIMIZE " Collapses this window to an icon." - IDS_HINT_SYS_MAXIMIZE " Expands this window to fill this screen." -END diff --git a/rosapps/applications/imagesoft/lang/en-US.rc b/rosapps/applications/imagesoft/lang/en-US.rc deleted file mode 100644 index c3b9a3ced28..00000000000 --- a/rosapps/applications/imagesoft/lang/en-US.rc +++ /dev/null @@ -1,232 +0,0 @@ -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&New...", ID_NEW - MENUITEM "&Open...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&Close\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "C&lose all", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "&Save", ID_SAVE, GRAYED - MENUITEM "Save &As...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "Print Pre&view", ID_PRINTPRE,GRAYED - MENUITEM "&Print...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "Pr&operties...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "E&xit\tAlt+F4", ID_EXIT - END - POPUP "&Edit" - BEGIN - MENUITEM "&Undo", ID_UNDO, GRAYED - MENUITEM "&Redo", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "Cu&t", ID_CUT, GRAYED - MENUITEM "&Copy", ID_COPY, GRAYED - MENUITEM "&Paste", ID_PASTE, GRAYED - MENUITEM "Paste as new &image", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Select &All", ID_SELALL, GRAYED - END - POPUP "&View" - BEGIN - MENUITEM "&Tools", ID_TOOLS - MENUITEM "&Colors", ID_COLOR - MENUITEM "&History", ID_HISTORY - MENUITEM "&Status Bar", ID_STATUSBAR - END - POPUP "&Adjust" - BEGIN - MENUITEM "Brightness...", ID_BRIGHTNESS - MENUITEM "Contrast...", ID_CONTRAST - MENUITEM "Hue/Saturation...", -1, GRAYED - POPUP "Color" - BEGIN - MENUITEM "Black and White", ID_BLACKANDWHITE - MENUITEM "Invert Colors", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "Blur", ID_BLUR - MENUITEM "Sharpen", ID_SHARPEN - MENUITEM "Smooth Edges", -1, GRAYED - MENUITEM "Add Shadow", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Image Size...", -1, GRAYED - MENUITEM "Flip", -1, GRAYED - MENUITEM "Mirror", -1, GRAYED - MENUITEM "Rotate", -1, GRAYED - - END - POPUP "&Colors" - BEGIN - MENUITEM "&Edit Colors...", ID_EDITCOLOURS - END - POPUP "&Window" - BEGIN - MENUITEM "&Cascade", ID_WINDOW_CASCADE - MENUITEM "Tile &Horizontally", ID_WINDOW_TILE_HORZ - MENUITEM "Tile &Vertically", ID_WINDOW_TILE_VERT - MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Nex&t\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "&Help" - BEGIN - MENUITEM "&About...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "Brightness" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "Color form:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "Full (RGB)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "Red", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "Green", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "Blue", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "OK", IDOK, 142, 88, 48, 13 - PUSHBUTTON "Cancel", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "About ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "Close", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "Image Properties" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Name:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "Canvas properties", IDC_STATIC, 4, 22, 148, 98 - LTEXT "Image type:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Width:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "Height:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Resolution:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Unit:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "Image size:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 - PUSHBUTTON "Cancel", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY " Ready." - IDS_TOOLBAR_STANDARD "Standard" - IDS_TOOLBAR_TEST "Test" - IDS_IMAGE_NAME "Image %1!u!" - IDS_FLT_TOOLS "Tools" - IDS_FLT_COLORS "Colors" - IDS_FLT_HISTORY "History" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Monochrome (1 bit)" - IDS_IMAGE_GREYSCALE "Grayscale (8 bit)" - IDS_IMAGE_PALETTE "Palette or 256 color (8 bit)" - IDS_IMAGE_TRUECOLOR "True color (24 bit)" - - IDS_UNIT_PIXELS "Pixels" - IDS_UNIT_CM "Cm" - IDS_UNIT_INCHES "Inches" - IDS_UNIT_DOTSCM "Dots / Cm" - IDS_UNIT_DPI "DPI" - IDS_UNIT_KB "%d KB" - IDS_UNIT_MB "%d MB" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "New" - IDS_TOOLTIP_OPEN "Open" - IDS_TOOLTIP_SAVE "Save" - IDS_TOOLTIP_PRINTPRE "Print preview" - IDS_TOOLTIP_PRINT "Print" - IDS_TOOLTIP_CUT "Cut" - IDS_TOOLTIP_COPY "Copy" - IDS_TOOLTIP_PASTE "Paste" - IDS_TOOLTIP_UNDO "Undo" - IDS_TOOLTIP_REDO "Redo" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Creates a new document." - IDS_HINT_OPEN " Opens an existing document." - IDS_HINT_CLOSE " Closes this window." - IDS_HINT_CLOSEALL " Closes all windows." - IDS_HINT_SAVE " Saves the active document." - IDS_HINT_SAVEAS " Saves the active document with a new name." - IDS_HINT_PRINTPRE " Previews the printed document." - IDS_HINT_PRINT " Prints the active document." - IDS_HINT_PROP " Shows the properties of the active image." - IDS_HINT_EXIT " Exits this application." - - IDS_HINT_TOOLS " Shows or hides the tools floating window." - IDS_HINT_COLORS " Shows or hides the colors floating window." - IDS_HINT_HISTORY " Shows or hides the history floating window." - IDS_HINT_STATUS " Shows or hides the status bar." - - IDS_HINT_CASCADE " Arrange windows so they overlap." - IDS_HINT_TILE_HORZ " Arrange windows as non-overlapping tiles." - IDS_HINT_TILE_VERT " Arrange windows as non-overlapping tiles." - IDS_HINT_ARRANGE " Arrange icons at the bottom of the window." - IDS_HINT_NEXT " Activates the next window." - - IDS_HINT_SYS_RESTORE " Restores this window to normal size." - IDS_HINT_SYS_MOVE " Moves this window." - IDS_HINT_SYS_SIZE " Resizes this window." - IDS_HINT_SYS_MINIMIZE " Collapses this window to an icon." - IDS_HINT_SYS_MAXIMIZE " Expands this window to fill this screen." -END diff --git a/rosapps/applications/imagesoft/lang/es-ES.rc b/rosapps/applications/imagesoft/lang/es-ES.rc deleted file mode 100644 index 244f621b8e2..00000000000 --- a/rosapps/applications/imagesoft/lang/es-ES.rc +++ /dev/null @@ -1,232 +0,0 @@ -LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&Archivo" - BEGIN - MENUITEM "&Nuevo...", ID_NEW - MENUITEM "&Abrir...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&Cerrar\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "C&errar todo", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "&Guardar", ID_SAVE, GRAYED - MENUITEM "G&uardar Como...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Vista Preliminar", ID_PRINTPRE,GRAYED - MENUITEM "&Imprimir...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "Pr&opiedades...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Salir\tAlt+F4", ID_EXIT - END - POPUP "&Editar" - BEGIN - MENUITEM "&Deshacer", ID_UNDO, GRAYED - MENUITEM "&Rehacer", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "Cor&tar", ID_CUT, GRAYED - MENUITEM "&Copiar", ID_COPY, GRAYED - MENUITEM "&Pegar", ID_PASTE, GRAYED - MENUITEM "Pegar como nueva &imagen", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Seleccionar t&odo", ID_SELALL, GRAYED - END - POPUP "&Ver" - BEGIN - MENUITEM "H&erramientas", ID_TOOLS - MENUITEM "&Colores", ID_COLOR - MENUITEM "&Historia", ID_HISTORY - MENUITEM "&Barra de estado", ID_STATUSBAR - END - POPUP "&Ajuste" - BEGIN - MENUITEM "Brillo...", ID_BRIGHTNESS - MENUITEM "Contraste...", ID_CONTRAST - MENUITEM "Matiz/Saturación...", -1, GRAYED - POPUP "Color" - BEGIN - MENUITEM "Blanco y negro", ID_BLACKANDWHITE - MENUITEM "Invertir Colores", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "Contorno", ID_BLUR - MENUITEM "Afilar", ID_SHARPEN - MENUITEM "Suavizar bordes", -1, GRAYED - MENUITEM "Añadir Sombra", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Tamaño de la Imagen...", -1, GRAYED - MENUITEM "Voltear", -1, GRAYED - MENUITEM "Espejo", -1, GRAYED - MENUITEM "Rotar", -1, GRAYED - - END - POPUP "&Colores" - BEGIN - MENUITEM "&Editar Colores...", ID_EDITCOLOURS - END - POPUP "&Ventana" - BEGIN - MENUITEM "&Cascada", ID_WINDOW_CASCADE - MENUITEM "Dividir &Horizontalmente", ID_WINDOW_TILE_HORZ - MENUITEM "Dividir &Verticalmente", ID_WINDOW_TILE_VERT - MENUITEM "&Organizar Iconos", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Siguien&te\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "Ay&uda" - BEGIN - MENUITEM "&Acerca de...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "Brillo" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "Color de:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "Completo (RGB)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "Rojo", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "Verde", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "Azul", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "Aceptar", IDOK, 142, 88, 48, 13 - PUSHBUTTON "Cancelar", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "Acerca de ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "Cerrar", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "Propiedades de la Imagen" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Nombre:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "Propiedades de la imagen ", IDC_STATIC, 4, 22, 148, 98 - LTEXT "Tipo de Imagen:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Anchura:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "Altura:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Resolución:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Unidades:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "Tamaño de la imagen:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "Aceptar", IDOK, 50, 144, 48, 13 - PUSHBUTTON "Cancelar", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY " Preparado." - IDS_TOOLBAR_STANDARD "Estándar" - IDS_TOOLBAR_TEST "Prueba" - IDS_IMAGE_NAME "Imagen %1!u!" - IDS_FLT_TOOLS "Herramientas" - IDS_FLT_COLORS "Colores" - IDS_FLT_HISTORY "Historial" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Monocromo (1 bit)" - IDS_IMAGE_GREYSCALE "Escala de Grises (8 bit)" - IDS_IMAGE_PALETTE "Paleta o 256 colores (8 bit)" - IDS_IMAGE_TRUECOLOR "Color verdadero (24 bit)" - - IDS_UNIT_PIXELS "Pixels" - IDS_UNIT_CM "Cm" - IDS_UNIT_INCHES "Pulgadas" - IDS_UNIT_DOTSCM "Puntos / Cm" - IDS_UNIT_DPI "DPI" - IDS_UNIT_KB "%d KB" - IDS_UNIT_MB "%d MB" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "Nuevo" - IDS_TOOLTIP_OPEN "Abrir" - IDS_TOOLTIP_SAVE "Guardar" - IDS_TOOLTIP_PRINTPRE "Vista preliminar" - IDS_TOOLTIP_PRINT "Imprimir" - IDS_TOOLTIP_CUT "Cortar" - IDS_TOOLTIP_COPY "Copiar" - IDS_TOOLTIP_PASTE "Pegar" - IDS_TOOLTIP_UNDO "Deshacer" - IDS_TOOLTIP_REDO "Rehacer" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Crear un documento nuevo." - IDS_HINT_OPEN " Abrir un documento existente." - IDS_HINT_CLOSE " Cerrar esta ventana." - IDS_HINT_CLOSEALL " Cerrar todas las ventanas." - IDS_HINT_SAVE " Guardar el documento activo." - IDS_HINT_SAVEAS " Guardar el documento activo con un nuevo nombre." - IDS_HINT_PRINTPRE " Previsualizar impresión." - IDS_HINT_PRINT " Imprimir el documento activo." - IDS_HINT_PROP " Mostrar las propiedades de la imagen activa." - IDS_HINT_EXIT " Cerrar esta aplicación." - - IDS_HINT_TOOLS " Mostrar u ocultar la ventana flotante de herramientas." - IDS_HINT_COLORS " Mostrar u ocultar la ventana flotante de colores." - IDS_HINT_HISTORY " Mostrar u ocultar la ventana flotande de historial." - IDS_HINT_STATUS " Mostrar u ocultar la barra de estado." - - IDS_HINT_CASCADE " Colocar las ventanas superpuestas." - IDS_HINT_TILE_HORZ " Colocar las ventanas sin superponer los títulos." - IDS_HINT_TILE_VERT " Colocar las ventanas sin superponer los títulos." - IDS_HINT_ARRANGE " Colocar los iconos en la parte baja de la ventana." - IDS_HINT_NEXT " Activar la siguiente ventana." - - IDS_HINT_SYS_RESTORE " Restaurar esta ventana al tamaño normal." - IDS_HINT_SYS_MOVE " Mover esta ventana." - IDS_HINT_SYS_SIZE " Redimensionar esta ventana." - IDS_HINT_SYS_MINIMIZE " Minimizar esta ventana a un icono." - IDS_HINT_SYS_MAXIMIZE " Expandir esta ventana para llenar la pantalla." -END diff --git a/rosapps/applications/imagesoft/lang/fr-FR.rc b/rosapps/applications/imagesoft/lang/fr-FR.rc deleted file mode 100644 index 1d31b417d91..00000000000 --- a/rosapps/applications/imagesoft/lang/fr-FR.rc +++ /dev/null @@ -1,232 +0,0 @@ -LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&Fichier" - BEGIN - MENUITEM "&Nouveau...", ID_NEW - MENUITEM "&Ouvrir...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "Fermer\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "Fermer tout", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "Enregistrer", ID_SAVE, GRAYED - MENUITEM "Enregistrer sous...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "Aperçu a&vant impression", ID_PRINTPRE,GRAYED - MENUITEM "Im&primer...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "Pr&opriétés...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "Quitter\tAlt+F4", ID_EXIT - END - POPUP "&Édition" - BEGIN - MENUITEM "Annuler", ID_UNDO, GRAYED - MENUITEM "&Rétablir", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "Couper", ID_CUT, GRAYED - MENUITEM "&Copier", ID_COPY, GRAYED - MENUITEM "Coller", ID_PASTE, GRAYED - MENUITEM "Coller en tant qu'&image", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Tout sélectionner", ID_SELALL, GRAYED - END - POPUP "Affichage" - BEGIN - MENUITEM "Ou&tils", ID_TOOLS - MENUITEM "&Couleurs", ID_COLOR - MENUITEM "&Historique", ID_HISTORY - MENUITEM "Barre de &status", ID_STATUSBAR - END - POPUP "Régl&age" - BEGIN - MENUITEM "Luminosité...", ID_BRIGHTNESS - MENUITEM "Contraste...", ID_CONTRAST - MENUITEM "Teinte/Saturation...", -1, GRAYED - POPUP "Couleur" - BEGIN - MENUITEM "Noir et blanc", ID_BLACKANDWHITE - MENUITEM "Inverser les couleurs", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "Rendre flou", ID_BLUR - MENUITEM "Accentuer", ID_SHARPEN - MENUITEM "Lisser les bords", -1, GRAYED - MENUITEM "Ajouter une ombre", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Taille de l'image...", -1, GRAYED - MENUITEM "Retourner", -1, GRAYED - MENUITEM "Inverser", -1, GRAYED // FIXME : Pourrait-être amélioré pour mieux dégager le sens de "mirror" - MENUITEM "Tourner", -1, GRAYED - - END - POPUP "&Couleurs" - BEGIN - MENUITEM "&Éditer les couleurs...", ID_EDITCOLOURS - END - POPUP "Fenêtre" - BEGIN - MENUITEM "&Cascade", ID_WINDOW_CASCADE - MENUITEM "Mosaïque &horizontale", ID_WINDOW_TILE_HORZ - MENUITEM "Mosaïque &verticale", ID_WINDOW_TILE_VERT - MENUITEM "&Arranger les icônes", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Suivan&te\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "Aide" - BEGIN - MENUITEM "&À propos...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "Luminosité" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "Composante de la couleur:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "Complète (RGB)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "Rouge", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "Vert", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "Bleu", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "OK", IDOK, 142, 88, 48, 13 - PUSHBUTTON "Annuler", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "À propos d'ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "Fermer", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "Propriétés de l'image" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Nom:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "Propriétés du support", IDC_STATIC, 4, 22, 148, 98 - LTEXT "Type de l'image:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Largeur:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "Hauteur:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Résolution:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Unité:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "Taille de l'image:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 - PUSHBUTTON "Annuler", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY " Prêt." - IDS_TOOLBAR_STANDARD "Standard" - IDS_TOOLBAR_TEST "Test" - IDS_IMAGE_NAME "Image %1!u!" - IDS_FLT_TOOLS "Outils" - IDS_FLT_COLORS "Couleurs" - IDS_FLT_HISTORY "Historique" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Monochrome (1 bit)" - IDS_IMAGE_GREYSCALE "Variantes de gris (8 bit)" - IDS_IMAGE_PALETTE "Palette ou 256 couleurs (8 bit)" - IDS_IMAGE_TRUECOLOR "Couleurs vraies (24 bit)" - - IDS_UNIT_PIXELS "Pixels" - IDS_UNIT_CM "Cm" - IDS_UNIT_INCHES "Pouces" - IDS_UNIT_DOTSCM "Points / Cm" - IDS_UNIT_DPI "DPI" - IDS_UNIT_KB "%d Ko" - IDS_UNIT_MB "%d Mo" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "Nouveau" - IDS_TOOLTIP_OPEN "Ouvrir" - IDS_TOOLTIP_SAVE "Enregistrer" - IDS_TOOLTIP_PRINTPRE "Aperçu avant impression" - IDS_TOOLTIP_PRINT "Imprimer" - IDS_TOOLTIP_CUT "Couper" - IDS_TOOLTIP_COPY "Copier" - IDS_TOOLTIP_PASTE "Coller" - IDS_TOOLTIP_UNDO "Annuler" - IDS_TOOLTIP_REDO "Rétablir" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Créé un nouveau document." - IDS_HINT_OPEN " Ouvre un document existant." - IDS_HINT_CLOSE " Ferme cette fenêtre." - IDS_HINT_CLOSEALL " Ferme toutes les fenêtres." - IDS_HINT_SAVE " Enregistre le document courant." - IDS_HINT_SAVEAS " Enregistre le document courant sous un nouveau nom." - IDS_HINT_PRINTPRE " Aperçu avant impression." - IDS_HINT_PRINT " Imprime le document courant." - IDS_HINT_PROP " Montre les propriétés de l'image courante." - IDS_HINT_EXIT " Quitte cette application." - - IDS_HINT_TOOLS " Montre ou cache la fenêtre flottante des outils." - IDS_HINT_COLORS " Montre ou cache la fenêtre flottante des couleurs." - IDS_HINT_HISTORY " Montre ou cache la fenêtre flottante de l'historique." - IDS_HINT_STATUS " Montre ou cache la barre de status." - - IDS_HINT_CASCADE " Arrange les fenêtres en cascade." - IDS_HINT_TILE_HORZ " Arrange les fenêtres en mosaïque horizontale." - IDS_HINT_TILE_VERT " Arrange les fenêtres en mosaïque verticale." - IDS_HINT_ARRANGE " Arrange les icônes en bas de la fenêtre." - IDS_HINT_NEXT " Active la prochaine fenêtre." - - IDS_HINT_SYS_RESTORE " Restaure la taille normale de la fenêtre." - IDS_HINT_SYS_MOVE " Bouge la fenêtre." - IDS_HINT_SYS_SIZE " Retaille la fenêtre." - IDS_HINT_SYS_MINIMIZE " Réduit la fenêtre." - IDS_HINT_SYS_MAXIMIZE " Affiche la fenêtre en plein écran." -END diff --git a/rosapps/applications/imagesoft/lang/id-ID.rc b/rosapps/applications/imagesoft/lang/id-ID.rc deleted file mode 100644 index 09713985ae2..00000000000 --- a/rosapps/applications/imagesoft/lang/id-ID.rc +++ /dev/null @@ -1,232 +0,0 @@ -LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Baru...", ID_NEW - MENUITEM "B&uka...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&Tutup\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "Tutup s&emua", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "&Simpan", ID_SAVE, GRAYED - MENUITEM "Simpan Seb&agai...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "Tin&jau Cetakan", ID_PRINTPRE,GRAYED - MENUITEM "&Cetak...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "Pr&operti...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Keluar\tAlt+F4", ID_EXIT - END - POPUP "&Edit" - BEGIN - MENUITEM "&Undo", ID_UNDO, GRAYED - MENUITEM "&Redo", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "Cu&t", ID_CUT, GRAYED - MENUITEM "&Copy", ID_COPY, GRAYED - MENUITEM "&Paste", ID_PASTE, GRAYED - MENUITEM "Paste sebagai gambar &baru", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Pilih &Semua", ID_SELALL, GRAYED - END - POPUP "&Lihat" - BEGIN - MENUITEM "&Piranti", ID_TOOLS - MENUITEM "&Warna", ID_COLOR - MENUITEM "&Histori", ID_HISTORY - MENUITEM "Bar &Status", ID_STATUSBAR - END - POPUP "Sesu&aikan" - BEGIN - MENUITEM "Kecerahan...", ID_BRIGHTNESS - MENUITEM "Kontras...", ID_CONTRAST - MENUITEM "Hue/Saturasi...", -1, GRAYED - POPUP "Warna" - BEGIN - MENUITEM "Hitam dan Putih", ID_BLACKANDWHITE - MENUITEM "Balikkan Warna", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "Blur", ID_BLUR - MENUITEM "Sharpen", ID_SHARPEN - MENUITEM "Lembutkan Sisi", -1, GRAYED - MENUITEM "Tambah Bayangan", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Ukuran Gambar...", -1, GRAYED - MENUITEM "Flip", -1, GRAYED - MENUITEM "Cermin", -1, GRAYED - MENUITEM "Rotasi", -1, GRAYED - - END - POPUP "&Warna" - BEGIN - MENUITEM "&Edit Warna...", ID_EDITCOLOURS - END - POPUP "&Jendela" - BEGIN - MENUITEM "&Cascade", ID_WINDOW_CASCADE - MENUITEM "Tile &Horisontal", ID_WINDOW_TILE_HORZ - MENUITEM "Tile &Vertikal", ID_WINDOW_TILE_VERT - MENUITEM "&Atur Ikon", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Beriku&t\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "&Bantuan" - BEGIN - MENUITEM "&Tentang...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "Kecerahan" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "Form warna:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "Penuh (RGB)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "Merah", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "Hijau", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "Biru", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "OK", IDOK, 142, 88, 48, 13 - PUSHBUTTON "Batal", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "Tentang ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nHak Cipta (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "Tutup", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "Properti Gambar" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Nama:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "Properti Kanvas", IDC_STATIC, 4, 22, 148, 98 - LTEXT "Tipe gambar:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Panjang:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "Tinggi:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Resolusi:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Unit:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "Besar gambar:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 - PUSHBUTTON "Batal", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "Program ini adalah software bebas; anda dapat mendistribusikan dan/atau mengubahnya di bawah term GNU General Public License seperti dipublikasikan oleh Free Software Foundation; baik Lisensi versi 2, atau (menurut opini anda) setiap versi berikutnya.\r\n\r\nProgram ini didistribusikan dengan harapan ia akan berguna, tetapi TANPA JAMINAN APAPUN; bahkan tanpa jaminan berarti dari MERCANTABILITAS atau KECUKUPAN UNTUK KEPERLUAN TERTENTU. Lihat GNU General Public License untuk lebih jelasnya.\r\n\r\nAnda seharusnya menerima duplikat GNU General Public License bersamaan dengan program ini; jika tidak, tulis ke Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY " Siap." - IDS_TOOLBAR_STANDARD "Standar" - IDS_TOOLBAR_TEST "Uji" - IDS_IMAGE_NAME "Gambar %1!u!" - IDS_FLT_TOOLS "Piranti" - IDS_FLT_COLORS "Warna" - IDS_FLT_HISTORY "Histori" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Monokrom (1 bit)" - IDS_IMAGE_GREYSCALE "Abu-abu (8 bit)" - IDS_IMAGE_PALETTE "Palet atau 256 warna (8 bit)" - IDS_IMAGE_TRUECOLOR "Warna asli (24 bit)" - - IDS_UNIT_PIXELS "Pixel" - IDS_UNIT_CM "Cm" - IDS_UNIT_INCHES "Inci" - IDS_UNIT_DOTSCM "Dot / Cm" - IDS_UNIT_DPI "DPI" - IDS_UNIT_KB "%d KB" - IDS_UNIT_MB "%d MB" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "Baru" - IDS_TOOLTIP_OPEN "Buka" - IDS_TOOLTIP_SAVE "Simpan" - IDS_TOOLTIP_PRINTPRE "Tinjau cetakan" - IDS_TOOLTIP_PRINT "Cetak" - IDS_TOOLTIP_CUT "Cut" - IDS_TOOLTIP_COPY "Copy" - IDS_TOOLTIP_PASTE "Paste" - IDS_TOOLTIP_UNDO "Undo" - IDS_TOOLTIP_REDO "Redo" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Membuat dokumen baru." - IDS_HINT_OPEN " Membuka dokumen yang sudah ada." - IDS_HINT_CLOSE " Menutup jendela ini." - IDS_HINT_CLOSEALL " Menutup semua jendela." - IDS_HINT_SAVE " Menyimpan dokumen aktif." - IDS_HINT_SAVEAS " Menyimpan dokumen aktif dengan nama baru." - IDS_HINT_PRINTPRE " Meninjau dulu dokumen yang dicetak." - IDS_HINT_PRINT " Mencetak dokumen aktif." - IDS_HINT_PROP " Menampilkan properti gambar yang aktif." - IDS_HINT_EXIT " Keluar aplikasi ini." - - IDS_HINT_TOOLS " Menampilkan atau menyembunyikan jendela layang piranti." - IDS_HINT_COLORS " Menampilkan atau menyembunyikan jendela layang warna." - IDS_HINT_HISTORY " Menampilkan atau menyembunyikan jendela layang histori." - IDS_HINT_STATUS " Menampilkan atau menyembunyikan bar status." - - IDS_HINT_CASCADE " Mengatur jendela agar saling tindih." - IDS_HINT_TILE_HORZ " Mengatur jendela seperti ubin tidak saling tindih." - IDS_HINT_TILE_VERT " Mengatur jendela seperti ubin tidak saling tindih." - IDS_HINT_ARRANGE " Mengatur ikon di bawah jendela." - IDS_HINT_NEXT " Mengaktifkan jendela berikutnya." - - IDS_HINT_SYS_RESTORE " Mengembalikan jendela ini ke ukuran normal." - IDS_HINT_SYS_MOVE " Memindahkan jendela ini." - IDS_HINT_SYS_SIZE " Mengukur ulang jendela ini." - IDS_HINT_SYS_MINIMIZE " Menyempitkan jendela ini menjadi ikon." - IDS_HINT_SYS_MAXIMIZE " Melebarkan jendela ini memenuhi layar ini." -END diff --git a/rosapps/applications/imagesoft/lang/it-IT.rc b/rosapps/applications/imagesoft/lang/it-IT.rc deleted file mode 100644 index 984149bf1a8..00000000000 --- a/rosapps/applications/imagesoft/lang/it-IT.rc +++ /dev/null @@ -1,232 +0,0 @@ -LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Nuovo...", ID_NEW - MENUITEM "&Apri...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&Chiudi\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "C&hiudi tutto", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "&Salva", ID_SAVE, GRAYED - MENUITEM "Salva co&n nome...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "Ant&eprima di stampa", ID_PRINTPRE,GRAYED - MENUITEM "S&tampa...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "Pr&oprietà...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Esci\tAlt+F4", ID_EXIT - END - POPUP "&Modifica" - BEGIN - MENUITEM "&Annulla", ID_UNDO, GRAYED - MENUITEM "&Ripeti", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Taglia", ID_CUT, GRAYED - MENUITEM "&Copia", ID_COPY, GRAYED - MENUITEM "&Incolla", ID_PASTE, GRAYED - MENUITEM "Incolla come &nuova immagine", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Seleziona tutto", ID_SELALL, GRAYED - END - POPUP "&Visualizza" - BEGIN - MENUITEM "&Strumenti", ID_TOOLS - MENUITEM "&Colori", ID_COLOR - MENUITEM "&Azioni", ID_HISTORY - MENUITEM "&Barra di stato", ID_STATUSBAR - END - POPUP "Co&rreggi" - BEGIN - MENUITEM "Luminosità...", ID_BRIGHTNESS - MENUITEM "Contrasto...", ID_CONTRAST - MENUITEM "Tonalità/Saturazione...", -1, GRAYED - POPUP "Colore" - BEGIN - MENUITEM "Bianco e nero", ID_BLACKANDWHITE - MENUITEM "Inverti i colori", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "Soffuso", ID_BLUR - MENUITEM "Nitido", ID_SHARPEN - MENUITEM "Bordi arrotondati", -1, GRAYED - MENUITEM "Ombra", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Dimensione immagine...", -1, GRAYED - MENUITEM "Ribalta", -1, GRAYED - MENUITEM "Specchio", -1, GRAYED - MENUITEM "Ruota", -1, GRAYED - - END - POPUP "&Colori" - BEGIN - MENUITEM "&Modifica i colori...", ID_EDITCOLOURS - END - POPUP "&Finestre" - BEGIN - MENUITEM "&Sovrapponi", ID_WINDOW_CASCADE - MENUITEM "Affianca &Orizzontalmente", ID_WINDOW_TILE_HORZ - MENUITEM "Affianca &Verticalmente", ID_WINDOW_TILE_VERT - MENUITEM "&Disponi Icone", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Succ&essiva\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "&Aiuto" - BEGIN - MENUITEM "&Informazioni...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "Luminosità" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "Tipo colore:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "Full (RGB)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "Rosso", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "Verde", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "Blu", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "OK", IDOK, 142, 88, 48, 13 - PUSHBUTTON "Annulla", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "Informazioni su ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "Chiudi", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "Proprietà dell'immagine" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Nome:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "Proprietà Canvas", IDC_STATIC, 4, 22, 148, 98 - LTEXT "Tipo immagine:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Larghezza:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "Altezza:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Risoluzione:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Unità:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "Dimensione:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 - PUSHBUTTON "Annulla", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "Questo programma è software libero; puoi distribuirlo e/o modificarlo nei termini di licenza di 'GNU General Public License' come pubblicata dalla 'Free Software Foundation'; entrambe le versioni 2 della Licenza, o (a vostra scelta) qualunque versione successiva.\r\n\r\nQuesto programma è distribuito con l'augurio che sia utile, ma PRIVO DI OGNI GARANZIA; privo anche della garanzia implicita di VENDIBILITA' o ADEGUATEZZA PER UNO SPECIFICO USO. Vedi la 'GNU General Public License' per ulteriori dettagli.\r\n\r\nVoi dovreste aver ricevuto una copia della 'GNU General Public License' assieme a questo programma; se non è cosi' scrivete a 'Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA'." - IDS_READY "Pronto." - IDS_TOOLBAR_STANDARD "Standard" - IDS_TOOLBAR_TEST "Test" - IDS_IMAGE_NAME "Immagine %1!u!" - IDS_FLT_TOOLS "Strumenti" - IDS_FLT_COLORS "Colori" - IDS_FLT_HISTORY "Azioni" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Monocromatico (1 bit)" - IDS_IMAGE_GREYSCALE "Toni di grigio (8 bit)" - IDS_IMAGE_PALETTE "Palette o 256 colori (8 bit)" - IDS_IMAGE_TRUECOLOR "True color (24 bit)" - - IDS_UNIT_PIXELS "Pixel" - IDS_UNIT_CM "Cm" - IDS_UNIT_INCHES "Inches" - IDS_UNIT_DOTSCM "Dots / Cm" - IDS_UNIT_DPI "DPI" - IDS_UNIT_KB "%d KB" - IDS_UNIT_MB "%d MB" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "Nuova" - IDS_TOOLTIP_OPEN "Apri" - IDS_TOOLTIP_SAVE "Salva" - IDS_TOOLTIP_PRINTPRE "Anteprima di stampa" - IDS_TOOLTIP_PRINT "stampa" - IDS_TOOLTIP_CUT "Taglia" - IDS_TOOLTIP_COPY "Copia" - IDS_TOOLTIP_PASTE "Incolla" - IDS_TOOLTIP_UNDO "Annulla" - IDS_TOOLTIP_REDO "Ripeti" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Crea un nuovo documento." - IDS_HINT_OPEN " Apre un documento esistente." - IDS_HINT_CLOSE " Chiude questa finestra." - IDS_HINT_CLOSEALL " Chiude tutte le finestre." - IDS_HINT_SAVE " Salva il documento attivo." - IDS_HINT_SAVEAS " Salva il documento attivo con un nuovo nome." - IDS_HINT_PRINTPRE " Anteprima del documento stampato." - IDS_HINT_PRINT " Stampa il documento attivo." - IDS_HINT_PROP " Mostra le proprieta' dell'immagine attiva." - IDS_HINT_EXIT " Chiude il programma." - - IDS_HINT_TOOLS " Mostra o nasconde la finestra mobile degli strumenti." - IDS_HINT_COLORS " Mostra o nasconde la finestra mobile dei colori." - IDS_HINT_HISTORY " Mostra o nasconde la finestra mobile delle azioni." - IDS_HINT_STATUS " Mostra o nasconde la barra di stato." - - IDS_HINT_CASCADE " Dispone le finestre in modo che siano sovrapposte." - IDS_HINT_TILE_HORZ " Dispone le finestre in modo che non siano sovrapposte." - IDS_HINT_TILE_VERT " Dispone le finestre in modo che non siano sovrapposte." - IDS_HINT_ARRANGE " Dispone le icone in basso nella finestra." - IDS_HINT_NEXT " Attiva la finestra successiva." - - IDS_HINT_SYS_RESTORE " Ripristina la dimensione normale della finestra." - IDS_HINT_SYS_MOVE " Sposta la finestra." - IDS_HINT_SYS_SIZE " Modifica la dimensione della finestra." - IDS_HINT_SYS_MINIMIZE " Riduce la finestra ad una icona." - IDS_HINT_SYS_MAXIMIZE " Espande la finestra fino a riempire lo schermo." -END diff --git a/rosapps/applications/imagesoft/lang/no-NO.rc b/rosapps/applications/imagesoft/lang/no-NO.rc deleted file mode 100644 index 570fd57853d..00000000000 --- a/rosapps/applications/imagesoft/lang/no-NO.rc +++ /dev/null @@ -1,231 +0,0 @@ -LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&Fil" - BEGIN - MENUITEM "&Ny...", ID_NEW - MENUITEM "&Ã…pne...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&Lukk\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "L&ukk alt", ID_CLOSEALL, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Lagre", ID_SAVE, GRAYED - MENUITEM "Lagre &som...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "Utskrift &ForhÃ¥ndsvisning", ID_PRINTPRE, GRAYED - MENUITEM "&Utskrift...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "E&genskaper...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "A&vslutt\tAlt+F4", ID_EXIT - END - POPUP "&Rediger" - BEGIN - MENUITEM "&Angre", ID_UNDO, GRAYED - MENUITEM "&Gjenta", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "Klipp &ut", ID_CUT, GRAYED - MENUITEM "&Kopier", ID_COPY, GRAYED - MENUITEM "&Lim inn", ID_PASTE, GRAYED - MENUITEM "lim inn som ny &bilde", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Velg Alt", ID_SELALL, GRAYED - END - POPUP "&Vis" - BEGIN - MENUITEM "&Vertøy", ID_TOOLS, CHECKED - MENUITEM "&Farger", ID_COLOR, CHECKED - MENUITEM "&Historie", ID_HISTORY, CHECKED - MENUITEM "&Statuslinje", ID_STATUSBAR, CHECKED - END - POPUP "&Still" - BEGIN - MENUITEM "Lysstyrke...", ID_BRIGHTNESS - MENUITEM "Kontrast...", ID_CONTRAST - MENUITEM "Fargetone/metning...", -1, GRAYED - POPUP "Farger" - BEGIN - MENUITEM "Svart og hvit", ID_BLACKANDWHITE - MENUITEM "Inverter farger", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "Uskarphet", ID_BLUR - MENUITEM "Sharpen", ID_SHARPEN - MENUITEM "Jevne kantlinje", -1, GRAYED - MENUITEM "Legg til skygger", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Bilde størrelse...", -1, GRAYED - MENUITEM "Flip", -1, GRAYED - MENUITEM "Speil", -1, GRAYED - MENUITEM "Rotere", -1, GRAYED - - END - POPUP "&Farger" - BEGIN - MENUITEM "&Rediger farger...", ID_EDITCOLOURS - END - POPUP "&vindu" - BEGIN - MENUITEM "&Cascade", ID_WINDOW_CASCADE - MENUITEM "Sorter &horisontalt", ID_WINDOW_TILE_HORZ - MENUITEM "Sorter &vertikalt", ID_WINDOW_TILE_VERT - MENUITEM "&Ordne Ikoner", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Nes&te\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "&Hjelp" - BEGIN - MENUITEM "&Om...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "Lysstyrke" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "Farge form:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "Full (RGB)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "Rød", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "Grønn", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "BlÃ¥", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "OK", IDOK, 142, 88, 48, 13 - PUSHBUTTON "Avbryt", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "Om ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nEnerett (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "Lukk", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "Bilde egenskaper" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Navn:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "maleri egenskaper", IDC_STATIC, 4, 22, 148, 98 - LTEXT "bilde type:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Lengde:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "Høyde:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Oppløsning:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Enhet:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "bilde størrelse:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 - PUSHBUTTON "Avbryt", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "Dette programmet er gratis programvare; du kan distribuere det og/eller endre det under betingelsene av GNU General Public License som er utgitt av Free Software Foundation; version 2 av lisensen, eller (etter din mening) alle senere versjoner.\r\n\r\nDette programmet er utgitt i hÃ¥p for at det skal kunne brukes, men DET ER INGEN GARANTIER; uten heller forutsatt garantier av SALGBARHET eller SIKKETHET FOR EN ENKELTHET FORMÃ…L. Se pÃ¥ GNU General Public Lisensen for mere detaljer.\r\n\r\nDu skal ha motatt en kopi av GNU General Public Lisensen sammen med denne programmet; hvis du ikke har motatt det, skriv til Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY " Klart." - IDS_TOOLBAR_STANDARD "Standard" - IDS_TOOLBAR_TEST "Test" - IDS_IMAGE_NAME "Bilde %1!u!" - IDS_FLT_TOOLS "Verktøy" - IDS_FLT_COLORS "Farger" - IDS_FLT_HISTORY "Historie" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Monokromt (1 bit)" - IDS_IMAGE_GREYSCALE "GrÃ¥verdiskala (8 bit)" - IDS_IMAGE_PALETTE "Palett eller 256 farger (8 bit)" - IDS_IMAGE_TRUECOLOR "Nøyaktig farger (24 bit)" - - IDS_UNIT_PIXELS "pikseler" - IDS_UNIT_CM "Cm" - IDS_UNIT_INCHES "tommer" - IDS_UNIT_DOTSCM "Tommer / Cm" - IDS_UNIT_DPI "DPI" - IDS_UNIT_KB "%d KB" - IDS_UNIT_MB "%d MB" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "Ny" - IDS_TOOLTIP_OPEN "Ã…pne" - IDS_TOOLTIP_SAVE "Lagre" - IDS_TOOLTIP_PRINTPRE "Utskrift &ForhÃ¥ndsvisning" - IDS_TOOLTIP_PRINT "Utskrift" - IDS_TOOLTIP_CUT "Klipp ut" - IDS_TOOLTIP_COPY "Kopier" - IDS_TOOLTIP_PASTE "Lim inn" - IDS_TOOLTIP_UNDO "Angre" - IDS_TOOLTIP_REDO "Gjenta" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Ã…pne et nytt dokument." - IDS_HINT_OPEN " Ã…pene en eksisterende dokument." - IDS_HINT_CLOSE " Lukk dette vinduet." - IDS_HINT_CLOSEALL " Lukk alle vinduer." - IDS_HINT_SAVE " Lagre aktive dokument." - IDS_HINT_SAVEAS " Lagre aktive dokument med nytt navn." - IDS_HINT_PRINTPRE " ForhÃ¥ndsvis utskrift." - IDS_HINT_PRINT " Skriv ut aktive dokument." - IDS_HINT_PROP " Vis egenskaper for aktive bilde." - IDS_HINT_EXIT " Avslutt denne applikasjonen." - - IDS_HINT_TOOLS " Vis eller skjul verktøy floating vindu." - IDS_HINT_COLORS " Vis eller skjul fargene floating vindu." - IDS_HINT_HISTORY " Vis eller skjul historie floating vindu." - IDS_HINT_STATUS " Vis eller skjul statuslinje." - - IDS_HINT_CASCADE " Ordne vinduer sÃ¥ de overlapper." - IDS_HINT_TILE_HORZ " Ordne vinduer sÃ¥ ingen-overlapper tittelen." - IDS_HINT_TILE_VERT " Ordne vinduer sÃ¥ ingen-overlapper tittelen." - IDS_HINT_ARRANGE " Ordne ikoner ved knappen av vinduet." - IDS_HINT_NEXT " Aktivere neste vinduet." - - IDS_HINT_SYS_RESTORE " Endre vinduet til normal størrelse." - IDS_HINT_SYS_MOVE " Flytt vinduet." - IDS_HINT_SYS_SIZE " Endre størrelse pÃ¥ dette vinduet." - IDS_HINT_SYS_MINIMIZE " Minimer vinduet til en ikon." - IDS_HINT_SYS_MAXIMIZE " Expands dette vindu for Ã¥ fylle skjermen." -END diff --git a/rosapps/applications/imagesoft/lang/pl-PL.rc b/rosapps/applications/imagesoft/lang/pl-PL.rc deleted file mode 100644 index 08fce06541b..00000000000 --- a/rosapps/applications/imagesoft/lang/pl-PL.rc +++ /dev/null @@ -1,239 +0,0 @@ -/* - * translated by Caemyr - Olaf Siejka (Feb, 2008) - * Use ReactOS forum PM or IRC to contact me - * http://www.reactos.org - * IRC: irc.freenode.net #reactos-pl; - */ - -LANGUAGE LANG_POLISH, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&Plik" - BEGIN - MENUITEM "&Nowy...", ID_NEW - MENUITEM "&Otwórz...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&Zamknij\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "Za&knij wszystko", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "Za&pisz", ID_SAVE, GRAYED - MENUITEM "Zapisz &jako...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "Pod&glÄ…d drukowania", ID_PRINTPRE,GRAYED - MENUITEM "&Drukuj...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "&WÅ‚aÅ›ciwoÅ›ci", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "W&yjÅ›cie\tAlt+F4", ID_EXIT - END - POPUP "&Edycja" - BEGIN - MENUITEM "&Cofnij", ID_UNDO, GRAYED - MENUITEM "&Ponów", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "Wy&tnij", ID_CUT, GRAYED - MENUITEM "&Kopiuj", ID_COPY, GRAYED - MENUITEM "Wk&lej", ID_PASTE, GRAYED - MENUITEM "Wklej jako nowy &obraz", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Wybierz w&szystko", ID_SELALL, GRAYED - END - POPUP "&PodglÄ…d" - BEGIN - MENUITEM "&NarzÄ™dzia", ID_TOOLS - MENUITEM "&Kolory", ID_COLOR - MENUITEM "&Historia", ID_HISTORY - MENUITEM "&Pasek stanu", ID_STATUSBAR - END - POPUP "&ZmieÅ„" - BEGIN - MENUITEM "Jasność...", ID_BRIGHTNESS - MENUITEM "Kontrast...", ID_CONTRAST - MENUITEM "Barwa/Nasycenie...", -1, GRAYED - POPUP "Kolor" - BEGIN - MENUITEM "CzarnobiaÅ‚y", ID_BLACKANDWHITE - MENUITEM "Odwróć kolory", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "ZmiÄ™kczenie", ID_BLUR - MENUITEM "Wyostrzenie", ID_SHARPEN - MENUITEM "ZmiÄ™kcz kontury", -1, GRAYED - MENUITEM "Dodaj cieÅ„", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Rozmiar obrazu...", -1, GRAYED - MENUITEM "Odwróć", -1, GRAYED - MENUITEM "Lustrzane odbicie", -1, GRAYED - MENUITEM "Obrót", -1, GRAYED - - END - POPUP "&Kolory" - BEGIN - MENUITEM "&Edytuj kolory...", ID_EDITCOLOURS - END - POPUP "&Okna" - BEGIN - MENUITEM "&Kaskadowo", ID_WINDOW_CASCADE - MENUITEM "Ustaw &poziomo", ID_WINDOW_TILE_HORZ - MENUITEM "Ustaw pio&nowo", ID_WINDOW_TILE_VERT - MENUITEM "&UporzÄ…dkuj ikony", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Nas&tÄ™pne\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "&Pomoc" - BEGIN - MENUITEM "&O programie...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "Jasność" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "UkÅ‚ad kolorów:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "PeÅ‚ny (RGB)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "Czerwony", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "Zielony", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "Niebieski", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "OK", IDOK, 142, 88, 48, 13 - PUSHBUTTON "Anuluj", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "O ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "Zamknij", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "WÅ‚aÅ›ciwoÅ›ci obrazu" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Nazwa:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "WÅ‚aÅ›ciwoÅ›ci", IDC_STATIC, 4, 22, 148, 98 - LTEXT "Typ obrazu:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Szerokość:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "Wysokość:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Rozdzielczość:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Jednostka:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "Rozmiar obrazu:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 - PUSHBUTTON "Anuluj", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "Ten program jest darmowy; możesz go redystrybuować i/lub modyfikować zgodnie z warunkami licencji GNU General Public, publikowanymi przez Free Software Foundation; albo wersjÄ™ 2, albo dowolnÄ… późniejszÄ….\r\n\r\nMamy nadziejÄ™, że ten program bÄ™dzie użyteczny, ale nie dajemy na niego Å»ADNEJ GWARANCJI; nawet bez gwarancji jego KOMERCYJNOÅšCI czy też PRZYDATNOÅšCI DO OKREÅšLONEGO CELU. Szczegóły w tekÅ›cie Licencji GNU General Public.\r\n\r\nKopie licencji GNU GP powinieneÅ› otrzymać z niniejszym programem; jeÅ›li nie, skontaktuj siÄ™ z Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY " Gotów." - IDS_TOOLBAR_STANDARD "Standardowy" - IDS_TOOLBAR_TEST "Test" - IDS_IMAGE_NAME "Obraz %1!u!" - IDS_FLT_TOOLS "NarzÄ™dzia" - IDS_FLT_COLORS "Kolory" - IDS_FLT_HISTORY "Historia" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Monochromatyczny (1 bit)" - IDS_IMAGE_GREYSCALE "256 odcieni szaroÅ›ci (8 bitów)" - IDS_IMAGE_PALETTE "256 kolorów (8 bitów)" - IDS_IMAGE_TRUECOLOR "True color (24 bity)" - - IDS_UNIT_PIXELS "Pikseli" - IDS_UNIT_CM "Cm" - IDS_UNIT_INCHES "Cali" - IDS_UNIT_DOTSCM "Punktów / Cm" - IDS_UNIT_DPI "DPI" - IDS_UNIT_KB "%d KB" - IDS_UNIT_MB "%d MB" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "Nowy" - IDS_TOOLTIP_OPEN "Otwórz" - IDS_TOOLTIP_SAVE "Zapisz" - IDS_TOOLTIP_PRINTPRE "PodglÄ…d drukowania" - IDS_TOOLTIP_PRINT "Drukuj" - IDS_TOOLTIP_CUT "Wytnij" - IDS_TOOLTIP_COPY "Kopiuj" - IDS_TOOLTIP_PASTE "Wklej" - IDS_TOOLTIP_UNDO "Cofnij" - IDS_TOOLTIP_REDO "Ponów" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Tworzy nowy dokument." - IDS_HINT_OPEN " Otwiera istniejÄ…cy dokument." - IDS_HINT_CLOSE " Zamyka bierzÄ…ce okno." - IDS_HINT_CLOSEALL " Zamyka wszystkie okno." - IDS_HINT_SAVE " Zapisuje bierzÄ…cy dokument." - IDS_HINT_SAVEAS " Zapisuje bierzÄ…cy dokument z nowÄ… nazwÄ…." - IDS_HINT_PRINTPRE " PodglÄ…d dokumentu do wydrukowania." - IDS_HINT_PRINT " Drukuje bierzÄ…cy dokument." - IDS_HINT_PROP " Pokazuje wÅ‚aÅ›ciwoÅ›ci danego obrazu." - IDS_HINT_EXIT " WyjÅ›cie z programu." - - IDS_HINT_TOOLS " Pokazuje lub chowa pasek narzÄ™dzi." - IDS_HINT_COLORS " Pokazuje lub chowa pasek kolorów." - IDS_HINT_HISTORY " Pokazuje lub chowa okno historii ." - IDS_HINT_STATUS " Pokazuje lub chowa pasek stanu." - - IDS_HINT_CASCADE " Ustawia okna tak by wszystkie byÅ‚y widoczne." - IDS_HINT_TILE_HORZ " Ustawia okna jeden obok drugiego." - IDS_HINT_TILE_VERT " Ustawia okna jeden pod drugim." - IDS_HINT_ARRANGE " Ustawia ikony w kolejnoÅ›ci, na spodzie okna." - IDS_HINT_NEXT " Uaktywnia nastÄ™pne okno." - - IDS_HINT_SYS_RESTORE " Przywraca okno do normalnego rozmiaru." - IDS_HINT_SYS_MOVE " Przesuwa okno." - IDS_HINT_SYS_SIZE " Zmienia wielkość okna." - IDS_HINT_SYS_MINIMIZE " Zamyka okno do ikony." - IDS_HINT_SYS_MAXIMIZE " Rozszerza okno na peÅ‚en ekran." -END diff --git a/rosapps/applications/imagesoft/lang/ru-RU.rc b/rosapps/applications/imagesoft/lang/ru-RU.rc deleted file mode 100644 index 50bbe0debab..00000000000 --- a/rosapps/applications/imagesoft/lang/ru-RU.rc +++ /dev/null @@ -1,234 +0,0 @@ -// Russian language resource file (Dmitry Chapyshev, 2007-07-05) - -LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&Файл" - BEGIN - MENUITEM "&Ðовый...", ID_NEW - MENUITEM "&Открыть...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&Закрыть\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "З&акрыть вÑе", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "&Сохранить", ID_SAVE, GRAYED - MENUITEM "Сохранить &как...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "Предварительный &проÑмотр", ID_PRINTPRE,GRAYED - MENUITEM "П&ечать...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "Сво&йÑтва...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Выход\tAlt+F4", ID_EXIT - END - POPUP "&Правка" - BEGIN - MENUITEM "&Отменить", ID_UNDO, GRAYED - MENUITEM "&Вернуть", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "Ð’&ырезать", ID_CUT, GRAYED - MENUITEM "&Копировать", ID_COPY, GRAYED - MENUITEM "Ð’&Ñтавить", ID_PASTE, GRAYED - MENUITEM "Ð’Ñтавить как новое &изображение", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Ð’Ñ‹&делить вÑе", ID_SELALL, GRAYED - END - POPUP "&Вид" - BEGIN - MENUITEM "&ИнÑтрументы", ID_TOOLS - MENUITEM "&Цвета", ID_COLOR - MENUITEM "И&ÑториÑ", ID_HISTORY - MENUITEM "С&трока ÑоÑтоÑниÑ", ID_STATUSBAR - END - POPUP "&КоррекциÑ" - BEGIN - MENUITEM "ЯркоÑть...", ID_BRIGHTNESS - MENUITEM "КонтраÑтноÑть...", ID_CONTRAST - MENUITEM "Hue/Saturation...", -1, GRAYED - POPUP "Цвет" - BEGIN - MENUITEM "Черный и белый", ID_BLACKANDWHITE - MENUITEM "Инвертировать цвета", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "Blur", ID_BLUR - MENUITEM "Sharpen", ID_SHARPEN - MENUITEM "Smooth Edges", -1, GRAYED - MENUITEM "Add Shadow", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Размер изображениÑ...", -1, GRAYED - MENUITEM "Flip", -1, GRAYED - MENUITEM "Зеркало", -1, GRAYED - MENUITEM "Повернуть", -1, GRAYED - - END - POPUP "&Цвета" - BEGIN - MENUITEM "&Изменить цвет...", ID_EDITCOLOURS - END - POPUP "&Окно" - BEGIN - MENUITEM "&КаÑкадом", ID_WINDOW_CASCADE - MENUITEM "&По горизонтали", ID_WINDOW_TILE_HORZ - MENUITEM "П&о вертикали", ID_WINDOW_TILE_VERT - MENUITEM "&УпорÑдочить значки", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "С&ледущее\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "&Справка" - BEGIN - MENUITEM "&О программе...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "ЯркоÑть" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "Форма цвета:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "Полный (RGB)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "КраÑный", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "Зеленый", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "Голубой", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "OK", IDOK, 142, 88, 48, 13 - PUSHBUTTON "Отмена", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "О программе ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "Закрыть", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "СвойÑтва изображениÑ" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "ИмÑ:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "СвойÑтва холÑта", IDC_STATIC, 4, 22, 148, 98 - LTEXT "Тип изображениÑ:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Ширина:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "Ð’Ñ‹Ñота:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Разрешние:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Unit:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "Размер изображениÑ:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 - PUSHBUTTON "Отмена", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY " Готов." - IDS_TOOLBAR_STANDARD "СтандартнаÑ" - IDS_TOOLBAR_TEST "ТеÑÑ‚" - IDS_IMAGE_NAME "Изображение %1!u!" - IDS_FLT_TOOLS "ИнÑтрументы" - IDS_FLT_COLORS "Цвета" - IDS_FLT_HISTORY "ИÑториÑ" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Монохромный (1 бит)" - IDS_IMAGE_GREYSCALE "Чернобелый (8 бит)" - IDS_IMAGE_PALETTE "Palette or 256 color (8 бит)" - IDS_IMAGE_TRUECOLOR "True color (24 бит)" - - IDS_UNIT_PIXELS "ПекÑелов" - IDS_UNIT_CM "См" - IDS_UNIT_INCHES "Дюймов" - IDS_UNIT_DOTSCM "Точек / См" - IDS_UNIT_DPI "DPI" - IDS_UNIT_KB "%d Кб" - IDS_UNIT_MB "%d Мб" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "Ðовый" - IDS_TOOLTIP_OPEN "Открыть" - IDS_TOOLTIP_SAVE "Сохранить" - IDS_TOOLTIP_PRINTPRE "Предварительный проÑмотр" - IDS_TOOLTIP_PRINT "Печать" - IDS_TOOLTIP_CUT "Вырезать" - IDS_TOOLTIP_COPY "Копировать" - IDS_TOOLTIP_PASTE "Ð’Ñтавить" - IDS_TOOLTIP_UNDO "Отменить" - IDS_TOOLTIP_REDO "Вернуть" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Создать новый документ." - IDS_HINT_OPEN " Opens an existing document." - IDS_HINT_CLOSE " Закрыть Ñто окно." - IDS_HINT_CLOSEALL " Закрыть вÑе окна." - IDS_HINT_SAVE " Сохранить текущий документ." - IDS_HINT_SAVEAS " Сохранить текущий документ Ñ Ð½Ð¾Ð²Ñ‹Ð¼ именем." - IDS_HINT_PRINTPRE " Предварительный проÑмотр печатаемого документа." - IDS_HINT_PRINT " Ðапечатать текущий документ." - IDS_HINT_PROP " ПроÑмотр ÑвойÑтв текущего изображениÑ." - IDS_HINT_EXIT " Выйти из Ñтого приложениÑ." - - IDS_HINT_TOOLS " Shows or hides the tools floating window." - IDS_HINT_COLORS " Shows or hides the colors floating window." - IDS_HINT_HISTORY " Shows or hides the history floating window." - IDS_HINT_STATUS " Показать или Ñкрыть Ñтроку ÑоÑтоÑниÑ." - - IDS_HINT_CASCADE " Arrange windows so they overlap." - IDS_HINT_TILE_HORZ " Arrange windows as non-overlapping tiles." - IDS_HINT_TILE_VERT " Arrange windows as non-overlapping tiles." - IDS_HINT_ARRANGE " Arrange icons at the bottom of the window." - IDS_HINT_NEXT " Сделать активным Ñледущее окно." - - IDS_HINT_SYS_RESTORE " ВоÑтановить нормальный размер Ñтого окна." - IDS_HINT_SYS_MOVE " ПеремеÑтить Ñто окно." - IDS_HINT_SYS_SIZE " Изменить размер Ñтого окна." - IDS_HINT_SYS_MINIMIZE " Collapses this window to an icon." - IDS_HINT_SYS_MAXIMIZE " Развернуть Ñто окно на веÑÑŒ Ñкран." -END diff --git a/rosapps/applications/imagesoft/lang/sk-SK.rc b/rosapps/applications/imagesoft/lang/sk-SK.rc deleted file mode 100644 index f53fd7252ba..00000000000 --- a/rosapps/applications/imagesoft/lang/sk-SK.rc +++ /dev/null @@ -1,239 +0,0 @@ -/* TRANSLATOR : Mário KaÄmár /Mario Kacmar/ aka Kario (kario@szm.sk) - * DATE OF TR.: 02-02-2008 - * LAST CHANGE: 29-08-2008 - * ______________________________________________ - * NOTE: this file is not fully translated - */ - -LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&Súbor" - BEGIN - MENUITEM "&Nový...", ID_NEW - MENUITEM "&OtvoriÅ¥...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&ZatvoriÅ¥\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "ZatvoriÅ¥ &vÅ¡etky", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "&UložiÅ¥", ID_SAVE, GRAYED - MENUITEM "UložiÅ¥ &ako...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "Náhľa&d pred tlaÄou", ID_PRINTPRE,GRAYED - MENUITEM "&TlaÄiÅ¥...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "V&lastnosti...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "&SkonÄiÅ¥\tAlt+F4", ID_EXIT - END - POPUP "&Úpravy" - BEGIN - MENUITEM "&Späť", ID_UNDO, GRAYED - MENUITEM "&Znova", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Vystrihnúť", ID_CUT, GRAYED - MENUITEM "&KopírovaÅ¥", ID_COPY, GRAYED - MENUITEM "&Paste", ID_PASTE, GRAYED - MENUITEM "Paste as new &image", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Vy&braÅ¥ vÅ¡etko", ID_SELALL, GRAYED - END - POPUP "&ZobraziÅ¥" - BEGIN - MENUITEM "&Nástroje", ID_TOOLS - MENUITEM "&Farby", ID_COLOR - MENUITEM "&História", ID_HISTORY - MENUITEM "Stavový &riadok", ID_STATUSBAR - END - POPUP "&Adjust" - BEGIN - MENUITEM "Jas...", ID_BRIGHTNESS - MENUITEM "Kontrast...", ID_CONTRAST - MENUITEM "Odtieň/Nasýtenie...", -1, GRAYED - POPUP "Color" - BEGIN - MENUITEM "ÄŒierna a biela", ID_BLACKANDWHITE - MENUITEM "InvertovaÅ¥ farby", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "RozmazaÅ¥", ID_BLUR - MENUITEM "ZaostriÅ¥", ID_SHARPEN - MENUITEM "VyhladiÅ¥ hrany", -1, GRAYED - MENUITEM "PridaÅ¥ tieň", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Image Size...", -1, GRAYED - MENUITEM "PreklopiÅ¥", -1, GRAYED - MENUITEM "ZrkadliÅ¥", -1, GRAYED - MENUITEM "OtoÄiÅ¥", -1, GRAYED - - END - POPUP "&Farby" - BEGIN - MENUITEM "&UpraviÅ¥ farby...", ID_EDITCOLOURS - END - POPUP "&Okná" - BEGIN - MENUITEM "&Cascade", ID_WINDOW_CASCADE - MENUITEM "Tile &Horizontally", ID_WINDOW_TILE_HORZ - MENUITEM "Tile &Vertically", ID_WINDOW_TILE_VERT - MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Nex&t\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "&Pomocník" - BEGIN - MENUITEM "ÄŒ&o je...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "Jas" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "Color form:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "Plné (RGB)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "ÄŒervená", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "Zelená", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "Modrá", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "OK", IDOK, 142, 88, 48, 13 - PUSHBUTTON "ZruÅ¡iÅ¥", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "ÄŒo je ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "ZavrieÅ¥", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "Vlastnosti obrázka" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Názov:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "Canvas properties", IDC_STATIC, 4, 22, 148, 98 - LTEXT "Typ obrázka:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Šírka:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "Výška:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Rozlíšenie:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Unit:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "VeľkosÅ¥ obrázka:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 - PUSHBUTTON "ZruÅ¡iÅ¥", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "Tento program je voľný softvér; môžete ho šíriÅ¥ a/alebo modifikovaÅ¥ podľa podmienok GNU VÅ¡eobecnej verejnej licencie (GNU General Public License) ako bola zverejnená nadáciou Free Software Foundation; buÄ verzie 2 tejto licencie, alebo (podľa Vášho uváženia) niektorej neskorÅ¡ej verzie.\r\n\r\nTento program je distribuovaný v nádeji, že bude užitoÄný, avÅ¡ak BEZ AKEJKOĽVEK ZÃRUKY; rovnako bez záruky PREDAJNOSTI alebo VHODNOSTI PRE URÄŒITà ÚČEL. Pre viac detailov si pozrite GNU VÅ¡eobecnú verejnú licenciu (GNU General Public License).\r\n\r\nKópiu VÅ¡eobecnej verejnej licencie GNU ste mali dostaÅ¥ spolu s týmto programom; ak nie, napíšte si o ňu na Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY " Hotovo." - IDS_TOOLBAR_STANDARD "Standard" - IDS_TOOLBAR_TEST "Test" - IDS_IMAGE_NAME "Obrázok %1!u!" - IDS_FLT_TOOLS "Nástroje" - IDS_FLT_COLORS "Farby" - IDS_FLT_HISTORY "História" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "ÄŒierno-bielo (1 bit)" - IDS_IMAGE_GREYSCALE "Odtiene Å¡edej (8 bitov)" - IDS_IMAGE_PALETTE "Paleta alebo 256 farieb (8 bitov)" - IDS_IMAGE_TRUECOLOR "Pravé farby (24 bitov)" - - IDS_UNIT_PIXELS "Pixely" - IDS_UNIT_CM "Centimetre" - IDS_UNIT_INCHES "Palce" - IDS_UNIT_DOTSCM "Body na cm" - IDS_UNIT_DPI "DPI" - IDS_UNIT_KB "%d KB" - IDS_UNIT_MB "%d MB" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "Nový" - IDS_TOOLTIP_OPEN "OtvoriÅ¥" - IDS_TOOLTIP_SAVE "UložiÅ¥" - IDS_TOOLTIP_PRINTPRE "Náhľad pred tlaÄou" - IDS_TOOLTIP_PRINT "TlaÄiÅ¥" - IDS_TOOLTIP_CUT "Vystrihnúť" - IDS_TOOLTIP_COPY "KopírovaÅ¥" - IDS_TOOLTIP_PASTE "VložiÅ¥" - IDS_TOOLTIP_UNDO "Späť" - IDS_TOOLTIP_REDO "Znova" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Vytvorí nový dokument." - IDS_HINT_OPEN " Otvorí existujúci dokument." - IDS_HINT_CLOSE " Zatvorí toto okno." - IDS_HINT_CLOSEALL " Zatvorí vÅ¡etke okná." - IDS_HINT_SAVE " Uloží aktívny dokument." - IDS_HINT_SAVEAS " Uloží aktívny dokument pod novým názvom." - IDS_HINT_PRINTPRE " Zobrazí náhľad dokumentu pred tlaÄou." - IDS_HINT_PRINT " VytlaÄí aktívny dokument." - IDS_HINT_PROP " Zobrazí vlastnosti aktívneho obrázka." - IDS_HINT_EXIT " UkonÄí program." - - IDS_HINT_TOOLS " Zobrazí alebo skryje plávajúce okno nástrojov." - IDS_HINT_COLORS " Zobrazí alebo skryje plávajúce okno farieb." - IDS_HINT_HISTORY " Zobrazí alebo skryje plávajúce okno histórie." - IDS_HINT_STATUS " Zobrazí alebo skryje stavový riadok." - - IDS_HINT_CASCADE " Arrange windows so they overlap." - IDS_HINT_TILE_HORZ " Arrange windows as non-overlapping tiles." - IDS_HINT_TILE_VERT " Arrange windows as non-overlapping tiles." - IDS_HINT_ARRANGE " Arrange icons at the bottom of the window." - IDS_HINT_NEXT " Aktivuje ÄalÅ¡ie okno v poradí." - - IDS_HINT_SYS_RESTORE " Obnoví okno na normálnu veľkosÅ¥." - IDS_HINT_SYS_MOVE " Premiestni okno." - IDS_HINT_SYS_SIZE " Zmení veľkosÅ¥ okna." - IDS_HINT_SYS_MINIMIZE " Zbalí okno do veľkosti ikony." - IDS_HINT_SYS_MAXIMIZE " ZväÄsí okno tak, aby zaplnilo obrazovku." -END diff --git a/rosapps/applications/imagesoft/lang/th-TH.rc b/rosapps/applications/imagesoft/lang/th-TH.rc deleted file mode 100644 index a9054d35073..00000000000 --- a/rosapps/applications/imagesoft/lang/th-TH.rc +++ /dev/null @@ -1,232 +0,0 @@ -LANGUAGE LANG_THAI, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "à¹&ฟ้ม" - BEGIN - MENUITEM "ใ&หม่...", ID_NEW - MENUITEM "เ&ปิด...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "ปิ&ด\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "ปิด&ทั้งหมด", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "&บันทึà¸", ID_SAVE, GRAYED - MENUITEM "บัน&ทึภเป็น...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "&ภาพà¸à¹ˆà¸­à¸™à¸žà¸´à¸¡à¸žà¹Œ", ID_PRINTPRE,GRAYED - MENUITEM "&พิมพ์...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "&คุณสมบัติ...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "&ออà¸à¸ˆà¸²à¸à¹‚ปรà¹à¸à¸£à¸¡\tAlt+F4", ID_EXIT - END - POPUP "à¹&à¸à¹‰à¹„ข" - BEGIN - MENUITEM "เ&ลิà¸à¸—ำ", ID_UNDO, GRAYED - MENUITEM "&ย้อนà¸à¸¥à¸±à¸š", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "&ตัด", ID_CUT, GRAYED - MENUITEM "&คัดลอà¸", ID_COPY, GRAYED - MENUITEM "&วาง", ID_PASTE, GRAYED - MENUITEM "วา&งเป็นภาพใหม่", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "เลือà¸à¸—ั้งหม&ด", ID_SELALL, GRAYED - END - POPUP "&มุมมอง" - BEGIN - MENUITEM "เครื่องมื&อ", ID_TOOLS - MENUITEM "&สี", ID_COLOR - MENUITEM "&ประวัติ", ID_HISTORY - MENUITEM "à¹&ถบสถานะ", ID_STATUSBAR - END - POPUP "&ปรับà¹à¸•่ง" - BEGIN - MENUITEM "ความสว่าง...", ID_BRIGHTNESS - MENUITEM "ความชัด...", ID_CONTRAST - MENUITEM "ความเข้มà¹à¸ªà¸‡/ความอิ่มตัว...", -1, GRAYED - POPUP "สี" - BEGIN - MENUITEM "ภาพขาวดำ", ID_BLACKANDWHITE - MENUITEM "à¹à¸›à¸¥à¸‡à¸ªà¸µ", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "ทำให้มัว", ID_BLUR - MENUITEM "ทำให้คมชัด", ID_SHARPEN - MENUITEM "ทำให้ขอบนุ่ม", -1, GRAYED - MENUITEM "เพิ่มเงา", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "ขนาดภาพ...", -1, GRAYED - MENUITEM "à¸à¸¥à¸±à¸šà¸—ิศทาง", -1, GRAYED - MENUITEM "à¸à¸¥à¸±à¸šà¸”้าน", -1, GRAYED - MENUITEM "หมุน", -1, GRAYED - - END - POPUP "&สี" - BEGIN - MENUITEM "à¹à¸à¹‰à¹„&ขสี...", ID_EDITCOLOURS - END - POPUP "&หน้าต่าง" - BEGIN - MENUITEM "&ซ้อนà¸à¸±à¸™", ID_WINDOW_CASCADE - MENUITEM "วางเรียงà¹à¸™à¸§&นอน", ID_WINDOW_TILE_HORZ - MENUITEM "วางเรียงà¹à¸™à¸§&ตั้ง", ID_WINDOW_TILE_VERT - MENUITEM "จัดเรียงสัà¸&รูป", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "&ถัดไป\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "&ช่วยเหลือ" - BEGIN - MENUITEM "&เà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸š...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "เปิดหน้าต่างใหม่" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "ความสว่าง" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "รูปà¹à¸šà¸šà¸ªà¸µ:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "ทุà¸à¸ªà¸µ (RGB)", IDC_BRI_FULL, "ปุ่มà¸à¸”", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "à¹à¸”ง", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "เขียว", IDC_BRI_GREEN, "ปุ่มà¸à¸”", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "น้ำเงิน", IDC_BRI_BLUE, "ปุ่มà¸à¸”", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "ตà¸à¸¥à¸‡", IDOK, 142, 88, 48, 13 - PUSHBUTTON "ยà¸à¹€à¸¥à¸´à¸", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "เà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹‚ปรà¹à¸à¸£à¸¡ ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "ปิด", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "คุณสมบัติของภาพ" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "ชื่อ:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "คุณสมบัติของขนาดพื้นที่ภาพ", IDC_STATIC, 4, 22, 148, 98 - LTEXT "ประเภทรูปภาพ:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "à¸à¸¥à¹ˆà¸­à¸‡à¹€à¸„รื่องมือ", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "ความà¸à¸§à¹‰à¸²à¸‡:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "ความสูง:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "ความละเอียดของภาพ:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "หน่วย:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "à¸à¸¥à¹ˆà¸­à¸‡à¹€à¸„รื่องมือ", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "ขนาดภาพ:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "ตà¸à¸¥à¸‡", IDOK, 50, 144, 48, 13 - PUSHBUTTON "ยà¸à¹€à¸¥à¸´à¸", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY " เสร็จà¹à¸¥à¹‰à¸§." - IDS_TOOLBAR_STANDARD "มาตรà¸à¸²à¸™" - IDS_TOOLBAR_TEST "ทดสอบ" - IDS_IMAGE_NAME "ภาพ %1!u!" - IDS_FLT_TOOLS "เครื่องมือ" - IDS_FLT_COLORS "สี" - IDS_FLT_HISTORY "ประวัติ" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "สีเดียว (1 bit)" - IDS_IMAGE_GREYSCALE "ภาพขาวดำ (8 bit)" - IDS_IMAGE_PALETTE "à¹à¸–บสี 256 สี (8 bit)" - IDS_IMAGE_TRUECOLOR "สีจริง (24 bit)" - - IDS_UNIT_PIXELS "เม็ดสี" - IDS_UNIT_CM "เซนติเมตร" - IDS_UNIT_INCHES "นิ้ว" - IDS_UNIT_DOTSCM "จุด / เซนติเมตร" - IDS_UNIT_DPI "จุดต่อนิ้ว" - IDS_UNIT_KB "%d à¸à¸´à¹‚ลไบต์" - IDS_UNIT_MB "%d เมà¸à¸à¸°à¹„บต์" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "ใหม่" - IDS_TOOLTIP_OPEN "เปิด" - IDS_TOOLTIP_SAVE "บันทึà¸" - IDS_TOOLTIP_PRINTPRE "ภาพà¸à¹ˆà¸­à¸™à¸žà¸´à¸¡à¸žà¹Œ" - IDS_TOOLTIP_PRINT "พิมพ์" - IDS_TOOLTIP_CUT "ตัด" - IDS_TOOLTIP_COPY "คัดลอà¸" - IDS_TOOLTIP_PASTE "วาง" - IDS_TOOLTIP_UNDO "เลิà¸à¸—ำ" - IDS_TOOLTIP_REDO "ย้อนà¸à¸¥à¸±à¸š" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " สร้างเอà¸à¸ªà¸²à¸£à¹ƒà¸«à¸¡à¹ˆ." - IDS_HINT_OPEN " เปิดเอà¸à¸ªà¸²à¸£à¸—ี่มีอยู่." - IDS_HINT_CLOSE " ปิดหน้าต่างนี้." - IDS_HINT_CLOSEALL " ปิดหน้าต่างทั้งหมด." - IDS_HINT_SAVE " บันทึà¸à¹€à¸­à¸à¸ªà¸²à¸£à¸—ี่เà¸à¹‡à¸šà¹„ว้." - IDS_HINT_SAVEAS " บันทึà¸à¹€à¸­à¸à¸ªà¸²à¸£à¸—ี่à¸à¸³à¸¥à¸±à¸‡à¸—ำอยู่ด้วยชื่อใหม่." - IDS_HINT_PRINTPRE " มองภาพà¸à¹ˆà¸­à¸™à¸žà¸´à¸¡à¸žà¹Œà¸‚องเอà¸à¸ªà¸²à¸£." - IDS_HINT_PRINT " พิมพ์เอà¸à¸ªà¸²à¸£à¸—ี่à¸à¸³à¸¥à¸±à¸‡à¸—ำอยู่นี้." - IDS_HINT_PROP " à¹à¸ªà¸”งคุณสมบัติของภาพที่à¸à¸³à¸¥à¸±à¸‡à¸—ำอยู่นี้." - IDS_HINT_EXIT " ออà¸à¸ˆà¸²à¸à¸à¸²à¸£à¸—ำงาน." - - IDS_HINT_TOOLS " à¹à¸ªà¸”งหน้าซ่อนหน้าต่างของà¹à¸–บเครื่องมือ." - IDS_HINT_COLORS " à¹à¸ªà¸”งหน้าซ่อนหน้าต่างของà¹à¸–บสี." - IDS_HINT_HISTORY " à¹à¸ªà¸”งหน้าซ่อนหน้าต่างของà¹à¸–บประวัติ." - IDS_HINT_STATUS " à¹à¸ªà¸”งหน้าซ่อนหน้าต่างของà¹à¸–บสถานะ." - - IDS_HINT_CASCADE " เรียงหน้าต่างวางซ้อนà¸à¸±à¸™." - IDS_HINT_TILE_HORZ " เรียงหน้าต่างตามà¹à¸™à¸§à¸™à¸­à¸™." - IDS_HINT_TILE_VERT " เรียงหน้าต่างตามà¹à¸™à¸§à¸•ั้ง." - IDS_HINT_ARRANGE " จัดเรียงสัà¸à¸£à¸¹à¸›à¸—ี่ด้านล่างของหน้าต่าง." - IDS_HINT_NEXT " เริ่มทำงานหน้าต่างถัดไป." - - IDS_HINT_SYS_RESTORE " คืนสภาพหน้าต่างสู่ขนาดปà¸à¸•ิ." - IDS_HINT_SYS_MOVE " เคลื่อนย้ายหน้าต่างนี้." - IDS_HINT_SYS_SIZE " เปลี่ยนขนาดหน้าต่างนี้." - IDS_HINT_SYS_MINIMIZE " ย่อหน้าต่างนี้ให้เป็นสัà¸à¸£à¸¹à¸›." - IDS_HINT_SYS_MAXIMIZE " ขยายหน้าต่างนี้จนเต็มหน้าจอ." -END diff --git a/rosapps/applications/imagesoft/lang/uk-UA.rc b/rosapps/applications/imagesoft/lang/uk-UA.rc deleted file mode 100644 index a006cbfcab7..00000000000 --- a/rosapps/applications/imagesoft/lang/uk-UA.rc +++ /dev/null @@ -1,240 +0,0 @@ -/* - * PROJECT: ReactOS ImageSoft - * LICENSE: GPL - See COPYING in the top level directory - * FILE: rosapps/imagesoft/lang/uk-UA.rc - * PURPOSE: Ukraianian Language File for ImageSoft - * TRANSLATOR: Rostislav Zabolotny, Artem Reznikov - */ - -LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&Файл" - BEGIN - MENUITEM "&Створити...", ID_NEW - MENUITEM "&Відкрити...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&Закрити\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "З&акрити вÑе", ID_CLOSEALL,GRAYED - MENUITEM SEPARATOR - MENUITEM "Зб&ерегти", ID_SAVE, GRAYED - MENUITEM "Зберегти &Ñк...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "Попе&редній ПереглÑд",ID_PRINTPRE,GRAYED - MENUITEM "&Друкувати...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "Ð’&лаÑтивоÑті...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "Ви&ід\tAlt+F4", ID_EXIT - END - POPUP "&Правка" - BEGIN - MENUITEM "Повер&нути", ID_UNDO, GRAYED - MENUITEM "По&вторити", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "Вирі&зати", ID_CUT, GRAYED - MENUITEM "Ко&піювати", ID_COPY, GRAYED - MENUITEM "Ð’Ñ&тавити", ID_PASTE, GRAYED - MENUITEM "Ð’Ñтавити новим &малюнком", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Виділити &Ð’Ñе", ID_SELALL, GRAYED - END - POPUP "&ВиглÑд" - BEGIN - MENUITEM "&ІнÑтрументи", ID_TOOLS - MENUITEM "&Кольори", ID_COLOR - MENUITEM "ІÑ&торіÑ", ID_HISTORY - MENUITEM "&РÑдок Ñтану", ID_STATUSBAR - END - POPUP "&РедагуваннÑ" - BEGIN - MENUITEM "ЯÑкравіÑть...", ID_BRIGHTNESS - MENUITEM "КонтраÑÑ‚...", ID_CONTRAST - MENUITEM "Відтінки/ÐаÑиченнÑ...", -1, GRAYED - POPUP "Колір" - BEGIN - MENUITEM "Чорно-білий", ID_BLACKANDWHITE - MENUITEM "Обернути Кольори", ID_INVERTCOLORS - END - MENUITEM SEPARATOR - MENUITEM "Затемнити", ID_BLUR - MENUITEM "Зробити Різкіше", ID_SHARPEN - MENUITEM "Згладити краї", -1, GRAYED - MENUITEM "Додати тінь", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Розмір малюнка...", -1, GRAYED - MENUITEM "Рухати", -1, GRAYED - MENUITEM "Відобразити", -1, GRAYED - MENUITEM "Обернути", -1, GRAYED - - END - POPUP "&Кольори" - BEGIN - MENUITEM "&Редагувати кольори...", ID_EDITCOLOURS - END - POPUP "&Вікно" - BEGIN - MENUITEM "&КаÑкадом", ID_WINDOW_CASCADE - MENUITEM "ВиклаÑти &Горизонтально", ID_WINDOW_TILE_HORZ - MENUITEM "ВиклаÑти &Вертикально", ID_WINDOW_TILE_VERT - MENUITEM "ВпарÑдкувати &Іконки", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Ðа&Ñтупний\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "&Довідка" - BEGIN - MENUITEM "&Про редактор...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM SEPARATOR - END -END - - -IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 -CAPTION "ЯÑкравіÑть" -FONT 8,"MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN - LTEXT "Кольори:", IDC_STATIC, 135, 5, 36, 9 - GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 - CONTROL "Ð’ÑÑ– (RGB)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 - CONTROL "Червоний", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 - CONTROL "Зелений", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 - CONTROL "Блакитний", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 - EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 - CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 - PUSHBUTTON "OK", IDOK, 142, 88, 48, 13 - PUSHBUTTON "СкаÑувати", IDCANCEL, 142, 105, 48, 13 -END - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "Про ImageSoft" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "Закрити", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "ВлаÑтивоÑті зображеннÑ" -FONT 8,"MS Shell Dlg",0,0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Ðазва:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "ВлаÑтивоÑті полотна", IDC_STATIC, 4, 22, 148, 98 - LTEXT "Тип малюнка:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Ширина:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "ВиÑота:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Роздільна здатніÑть:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Одиниці:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "Розмір малюнка:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 - PUSHBUTTON "СкаÑувати", IDCANCEL, 102, 144, 48, 13 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LICENSE "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° належить до безкоштовного програмного забезпеченнÑ; Ви можете поширювати чи(Ñ–) змінювати Ñ—Ñ— на правах GNU Загальною публічною ліцензією (GPL) опублікованими Фундацією Безкоштовного програмного Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ (Free Software Foundation); або другою верÑією Ліцензії, чи (на Ваш вибір) будь-Ñкою іншою верÑією.\r\n\r\nÐ¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° була Ñтворена з надією що буде кориÑна, але БЕЗ БУДЬ-ЯКИХ ГÐРÐÐТІЙ; навіть без включених гарантій ліквідноÑті чи можливоÑті приÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ конкретних вимог. За детальнішою інформацією дивітьÑÑ GNU Загальну публічну ліцензію.\r\n\r\nКопію GNU Загальної Публічної Ліцензії Ви мали б отримати разом з цією програмою; Ñкщо так не ÑталоÑÑ, пишіть Фундації Безкоштовного Програмного ЗабезпеченнÑ: Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." - IDS_READY "Готово" - IDS_TOOLBAR_STANDARD "Стандартно" - IDS_TOOLBAR_TEST "ТеÑÑ‚" - IDS_IMAGE_NAME "Малюнок %1!u!" - IDS_FLT_TOOLS "ІнÑтрументи" - IDS_FLT_COLORS "Кольори" - IDS_FLT_HISTORY "ІÑторіÑ" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Монохромний (1 біт)" - IDS_IMAGE_GREYSCALE "Відтінки Ñірого (8 біт)" - IDS_IMAGE_PALETTE "256 кольорів (8 біт)" - IDS_IMAGE_TRUECOLOR "Справжні кольори (24 біт)" - - IDS_UNIT_PIXELS "ПікÑелі" - IDS_UNIT_CM "См" - IDS_UNIT_INCHES "Дюйми" - IDS_UNIT_DOTSCM "Точок на См" - IDS_UNIT_DPI "Точок на Дюйм" - IDS_UNIT_KB "%d КБ" - IDS_UNIT_MB "%d МБ" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "Ðовий" - IDS_TOOLTIP_OPEN "Відкрити" - IDS_TOOLTIP_SAVE "Зберегти" - IDS_TOOLTIP_PRINTPRE "Попередній переглÑд" - IDS_TOOLTIP_PRINT "Друк" - IDS_TOOLTIP_CUT "Вирізати" - IDS_TOOLTIP_COPY "Копіювати" - IDS_TOOLTIP_PASTE "Ð’Ñтавити" - IDS_TOOLTIP_UNDO "СкаÑувати" - IDS_TOOLTIP_REDO "Повторити" -END - - -/* Підказки */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Створює новий документ." - IDS_HINT_OPEN " Відкриває Ñ–Ñнуючий документ." - IDS_HINT_CLOSE " Закриває поточне вікно." - IDS_HINT_CLOSEALL " Закриває вÑÑ– вікна." - IDS_HINT_SAVE " Зберігає активний документ." - IDS_HINT_SAVEAS " Зберігає поточний документ під іншим іменем." - IDS_HINT_PRINTPRE " ПереглÑд документа перед друком." - IDS_HINT_PRINT " Друкує поточний документ." - IDS_HINT_PROP " Показує влаÑтивоÑті поточного малюнка." - IDS_HINT_EXIT " Виходить з цієї програми." - - IDS_HINT_TOOLS " Показує чи ховає рухоме віконце інÑтрументів." - IDS_HINT_COLORS " Показує чи ховає рухоме віконце кольорів." - IDS_HINT_HISTORY " Показує чи ховає рухоме віконце ІÑторії." - IDS_HINT_STATUS " Показує чи ховає Ñ€Ñдок Ñтану." - - IDS_HINT_CASCADE " ВпорÑдковує вікна так, щоб вони поÑлідовно накладалиÑÑ." - IDS_HINT_TILE_HORZ " ВпорÑдковує вікна горизонтально так, щоб заголовки не накладалиÑÑ." - IDS_HINT_TILE_VERT " ВпорÑдковує вікна вертикально так, щоб заголовки не накладалиÑÑ." - IDS_HINT_ARRANGE " ВпорÑдковує іконки знизу вікна." - IDS_HINT_NEXT " Ðктивізує наÑтупне вікно." - - IDS_HINT_SYS_RESTORE " Відновлює вихідні розміри вікна." - IDS_HINT_SYS_MOVE " Змінює Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–ÐºÐ½Ð°" - IDS_HINT_SYS_SIZE " Змінює розміри вікна." - IDS_HINT_SYS_MINIMIZE " Згортає вікно до значка." - IDS_HINT_SYS_MAXIMIZE " Розгортає вікно до розмірів екрана." -END diff --git a/rosapps/applications/imagesoft/mainwnd.c b/rosapps/applications/imagesoft/mainwnd.c deleted file mode 100644 index 07597022998..00000000000 --- a/rosapps/applications/imagesoft/mainwnd.c +++ /dev/null @@ -1,1454 +0,0 @@ -#include - -static const TCHAR szMainWndClass[] = TEXT("ImageSoftWndClass"); - -#define ID_MDI_FIRSTCHILD 50000 -#define ID_MDI_WINDOWMENU 5 -#define NUM_FLT_WND 3 - -/* toolbar buttons */ -TBBUTTON StdButtons[] = { -/* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */ - {TBICON_NEW, ID_NEW, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* new */ - {TBICON_OPEN, ID_OPEN, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* open */ - {TBICON_SAVE, ID_SAVE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* save */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_PRINT, ID_PRINTPRE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* print */ - {TBICON_PRINTPRE, ID_PRINT, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* print preview */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_CUT, ID_CUT, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* cut */ - {TBICON_COPY, ID_COPY, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* copy */ - {TBICON_PASTE, ID_PASTE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* paste */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_UNDO, ID_UNDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* undo */ - {TBICON_REDO, ID_REDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* redo */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, -}; - -TBBUTTON TextButtons[] = { - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_BOLD, ID_BOLD, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_CHECK, {0}, 0, 0}, /* bold */ - {TBICON_ITALIC, ID_ITALIC, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_CHECK, {0}, 0, 0}, /* italic */ - {TBICON_ULINE, ID_ULINE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_CHECK, {0}, 0, 0}, /* underline */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_TXTLEFT, ID_TXTLEFT, TBSTATE_ENABLED | TBSTATE_CHECKED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0 }, /* left justified */ - {TBICON_TXTCENTER,ID_TXTCENTER,TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0 }, /* centered */ - {TBICON_TXTRIGHT, ID_TXTRIGHT, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0 }, /* right justified */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ -}; - - - -/* menu hints */ -static const MENU_HINT MainMenuHintTable[] = { - /* File Menu */ - {ID_BLANK, IDS_HINT_BLANK}, - {ID_NEW, IDS_HINT_NEW}, - {ID_OPEN, IDS_HINT_OPEN}, - {ID_CLOSE, IDS_HINT_CLOSE}, - {ID_CLOSEALL, IDS_HINT_CLOSEALL}, - {ID_SAVE, IDS_HINT_SAVE}, - {ID_SAVEAS, IDS_HINT_SAVEAS}, - {ID_PRINTPRE, IDS_HINT_PRINTPRE}, - {ID_PRINT, IDS_HINT_PRINT}, - {ID_PROP, IDS_HINT_PROP}, - {ID_EXIT, IDS_HINT_EXIT}, - - /* view menu */ - {ID_TOOLS, IDS_HINT_TOOLS}, - {ID_COLOR, IDS_HINT_COLORS}, - {ID_HISTORY, IDS_HINT_HISTORY}, - {ID_STATUSBAR, IDS_HINT_STATUS}, - - /* Window Menu */ - {ID_WINDOW_NEXT, IDS_HINT_NEXT}, - {ID_WINDOW_CASCADE, IDS_HINT_CASCADE}, - {ID_WINDOW_TILE_HORZ, IDS_HINT_TILE_HORZ}, - {ID_WINDOW_TILE_VERT, IDS_HINT_TILE_VERT}, - {ID_WINDOW_ARRANGE, IDS_HINT_ARRANGE} -}; - -static const MENU_HINT SystemMenuHintTable[] = { - {SC_RESTORE, IDS_HINT_SYS_RESTORE}, - {SC_MOVE, IDS_HINT_SYS_MOVE}, - {SC_SIZE, IDS_HINT_SYS_SIZE}, - {SC_MINIMIZE, IDS_HINT_SYS_MINIMIZE}, - {SC_MAXIMIZE, IDS_HINT_SYS_MAXIMIZE}, - {SC_CLOSE, IDS_HINT_CLOSE}, - {SC_NEXTWINDOW, IDS_HINT_NEXT}, -}; - - -/* Toolbars */ -#define ID_TOOLBAR_STANDARD 0 -#define ID_TOOLBAR_TEXT 1 -static const TCHAR szToolbarStandard[] = TEXT("STANDARD"); -static const TCHAR szToolbarText[] = TEXT("TEXT"); - - -/* Test Toolbar */ -#define ID_TOOLBAR_TEST 5 -static const TCHAR szToolbarTest[] = TEXT("TEST"); - -/* Toolbars table */ -static const DOCKBAR MainDockBars[] = { - {ID_TOOLBAR_STANDARD, szToolbarStandard, IDS_TOOLBAR_STANDARD, TOP_DOCK}, - {ID_TOOLBAR_TEST, szToolbarTest, IDS_TOOLBAR_TEST, TOP_DOCK}, - {ID_TOOLBAR_TEXT, szToolbarText, IDS_TOOLBAR_TEXT, TOP_DOCK}, -}; - - -static BOOL CALLBACK -MainWndCreateToolbarClient(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hParent, - HWND *hwnd) -{ - const TBBUTTON *Buttons = NULL; - UINT NumButtons = 0; - UINT StartImageRes = 0; - HWND hWndClient = NULL; - - UNREFERENCED_PARAMETER(Context); - - switch (Dockbar->BarId) - { - case ID_TOOLBAR_STANDARD: - { - Buttons = StdButtons; - NumButtons = sizeof(StdButtons) / sizeof(StdButtons[0]); - StartImageRes = IDB_MAINNEWICON; - break; - } - - case ID_TOOLBAR_TEXT: - { - Buttons = TextButtons; - NumButtons = sizeof(TextButtons) / sizeof(TextButtons[0]); - StartImageRes = IDB_TEXTBOLD; - break; - } - - case ID_TOOLBAR_TEST: - {/* - hWndClient = CreateWindowEx(WS_EX_TOOLWINDOW, - TEXT("BUTTON"), - TEXT("Test Button"), - WS_CHILD | WS_VISIBLE, - 0, - 0, - 150, - 25, - hParent, - NULL, - hInstance, - NULL);*/ - break; - } - } - - if (Buttons != NULL) - { - hWndClient = CreateWindowEx(0, - TOOLBARCLASSNAME, - NULL, - WS_CHILD | WS_CLIPSIBLINGS | - CCS_NOPARENTALIGN | CCS_NOMOVEY | CCS_NORESIZE | CCS_NODIVIDER | - TBSTYLE_FLAT | TBSTYLE_TOOLTIPS, - 0, - 0, - 0, - 0, - hParent, - NULL, - hInstance, - NULL); - if (hWndClient != NULL) - { - HIMAGELIST hImageList; - - SendMessage(hWndClient, - TB_SETEXTENDEDSTYLE, - 0, - TBSTYLE_EX_HIDECLIPPEDBUTTONS); - - SendMessage(hWndClient, - TB_BUTTONSTRUCTSIZE, - sizeof(Buttons[0]), - 0); - - SendMessage(hWndClient, - TB_SETBITMAPSIZE, - 0, - (LPARAM)MAKELONG(TB_BMP_WIDTH, TB_BMP_HEIGHT)); - - hImageList = InitImageList(NumButtons, - StartImageRes); - - ImageList_Destroy((HIMAGELIST)SendMessage(hWndClient, - TB_SETIMAGELIST, - 0, - (LPARAM)hImageList)); - - SendMessage(hWndClient, - TB_ADDBUTTONS, - NumButtons, - (LPARAM)Buttons); - - } - } - - switch (Dockbar->BarId) - { - case ID_TOOLBAR_TEXT: - { - HWND hFontType; - HWND hFontSize; - - /* font selection combo */ - hFontType = CreateWindowEx(0, - WC_COMBOBOX, - NULL, - WS_CHILD | WS_VISIBLE | WS_VSCROLL | - CBS_DROPDOWN | CBS_SORT | CBS_HASSTRINGS, //| CBS_OWNERDRAWFIXED, - 0, 0, 120, 0, - hParent, - NULL, - hInstance, - NULL); - - if (hFontType != NULL) - { - MakeFlatCombo(hFontType); - - SetParent(hFontType, - hWndClient); - - if (!ToolbarInsertSpaceForControl(hWndClient, - hFontType, - 0, - ID_TXTFONTNAME, - TRUE)) - { - DestroyWindow(hFontType); - } - - /* Create the list of fonts */ - FillFontStyleComboList(hFontType); - } - - /* font size combo */ - hFontSize = CreateWindowEx(0, - WC_COMBOBOX, - NULL, - WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, - 0, 0, 50, 0, - hParent, - NULL, - hInstance, - NULL); - if (hFontSize != NULL) - { - MakeFlatCombo(hFontSize); - - SetParent(hFontSize, - hWndClient); - - if (!ToolbarInsertSpaceForControl(hWndClient, - hFontSize, - 1, - ID_TXTFONTSIZE, - TRUE)) - { - DestroyWindow(hFontSize); - } - - /* Update the font-size-list */ - FillFontSizeComboList(hFontSize); - } - break; - } - } - - if (hWndClient != NULL) - { - *hwnd = hWndClient; - return TRUE; - } - - return FALSE; -} - -static BOOL CALLBACK -MainWndDestroyToolbarClient(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hwnd) -{ - UNREFERENCED_PARAMETER(TbDocks); - UNREFERENCED_PARAMETER(Dockbar); - UNREFERENCED_PARAMETER(Context); - - DestroyWindow(hwnd); - return TRUE; -} - -static BOOL CALLBACK -MainWndToolbarInsertBand(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - UINT *Index, - LPREBARBANDINFO rbi) -{ - switch (rbi->wID) - { - case ID_TOOLBAR_TEXT: - case ID_TOOLBAR_STANDARD: - { - SIZE Size; - - if (SendMessage(rbi->hwndChild, - TB_GETMAXSIZE, - 0, - (LPARAM)&Size)) - { - rbi->fStyle |= RBBS_USECHEVRON | RBBS_HIDETITLE; - rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_IDEALSIZE; - rbi->cx = rbi->cxIdeal = Size.cx; - rbi->cxMinChild = 0; - rbi->cyMinChild = Size.cy; - } - break; - } - - case ID_TOOLBAR_TEST: - { - RECT rcBtn; - - if (GetWindowRect(rbi->hwndChild, - &rcBtn)) - { - rbi->fStyle |= RBBS_HIDETITLE; - rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE; - rbi->cx = rcBtn.right - rcBtn.left; - rbi->cxMinChild = 0; - rbi->cyMinChild = rcBtn.bottom - rcBtn.top; - } - break; - } - } - return TRUE; -} - -static VOID -TbCustomControlChange(HWND hWndToolbar, - HWND hWndControl, - BOOL Vert) -{ - /* the toolbar changed from horizontal to vertical or vice versa... */ - return; -} - -static VOID CALLBACK -MainWndToolbarDockBand(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - DOCK_POSITION DockFrom, - DOCK_POSITION DockTo, - LPREBARBANDINFO rbi) -{ - if (rbi->fMask & RBBIM_CHILD && rbi->hwndChild != NULL) - { - switch (rbi->wID) - { - case ID_TOOLBAR_TEXT: - case ID_TOOLBAR_STANDARD: - { - SIZE Size; - BOOL Vert; - DWORD dwStyle = (DWORD)SendMessage(rbi->hwndChild, - TB_GETSTYLE, - 0, - 0); - switch (DockTo) - { - case LEFT_DOCK: - case RIGHT_DOCK: - dwStyle |= CCS_VERT | TBSTYLE_WRAPABLE; - Vert = TRUE; - break; - - default: - dwStyle &= ~(CCS_VERT | TBSTYLE_WRAPABLE); - Vert = FALSE; - break; - } - - SendMessage(rbi->hwndChild, - TB_SETSTYLE, - 0, - (LPARAM)dwStyle); - - ToolbarUpdateControlSpaces(rbi->hwndChild, - TbCustomControlChange); - - if (SendMessage(rbi->hwndChild, - TB_GETMAXSIZE, - 0, - (LPARAM)&Size)) - { - rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_IDEALSIZE; - rbi->cx = rbi->cxIdeal = (Vert ? Size.cy : Size.cx); - rbi->cxMinChild = 0; - rbi->cyMinChild = (Vert ? Size.cx : Size.cy); - } - break; - } - - case ID_TOOLBAR_TEST: - { - if (DockTo == NO_DOCK) - { - rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_IDEALSIZE; - rbi->cx = rbi->cxIdeal = 150; - rbi->cxMinChild = 0; - rbi->cyMinChild = 40; - } - break; - } - } - } -} - -static VOID CALLBACK -MainWndToolbarChevronPushed(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hwndChild, - LPNMREBARCHEVRON lpnm) -{ - switch (lpnm->wID) - { - case ID_TOOLBAR_STANDARD: - { - MapWindowPoints(lpnm->hdr.hwndFrom, - HWND_DESKTOP, - (LPPOINT)&lpnm->rc, - 2); - /* Create a popup menu for all toolbar icons hidden */ - break; - } - } -} - -static VOID -MainWndMoveFloatingWindows(PMAIN_WND_INFO Info, - PRECT wndOldPos) -{ - RECT wndNewPos, TbRect; - INT i, xMoved, yMoved; - PFLT_WND WndArr[NUM_FLT_WND]; - - if (GetWindowRect(Info->hSelf, - &wndNewPos)) - { - - xMoved = wndNewPos.left - wndOldPos->left; - yMoved = wndNewPos.top - wndOldPos->top; - - /* store the pointers in an array */ - WndArr[0] = Info->fltTools; - WndArr[1] = Info->fltColors; - WndArr[2] = Info->fltHistory; - - for (i = 0; i < NUM_FLT_WND; i++) - { - GetWindowRect(WndArr[i]->hSelf, - &TbRect); - - WndArr[i]->x = TbRect.left + xMoved; - WndArr[i]->y = TbRect.top + yMoved; - - MoveWindow(WndArr[i]->hSelf, - WndArr[i]->x, - WndArr[i]->y, - WndArr[i]->Width, - WndArr[i]->Height, - TRUE); - } - - CopyMemory(wndOldPos, - &wndNewPos, - sizeof(RECT)); - } -} - - -static VOID -MainWndResetFloatingWindows(PMAIN_WND_INFO Info) -{ - RECT rect; - - if (GetWindowRect(Info->hMdiClient, - &rect)) - { - - /* tools datum */ - MoveWindow(Info->fltTools->hSelf, - rect.left + 5, - rect.top + 5, - Info->fltTools->Width, - Info->fltTools->Height, - TRUE); - - /* colors datum */ - MoveWindow(Info->fltColors->hSelf, - rect.left + 5, - rect.bottom - Info->fltColors->Height - 5, - Info->fltColors->Width, - Info->fltColors->Height, - TRUE); - - /* history datum */ - MoveWindow(Info->fltHistory->hSelf, - rect.right - Info->fltHistory->Width - 5, - rect.top + 5, - Info->fltHistory->Width, - Info->fltHistory->Height, - TRUE); - } -} - -static VOID -MainWndCreateFloatWindows(PMAIN_WND_INFO Info) -{ - RECT rect; - HMENU hMenu; - UINT Res; - PFLT_WND WndArr[NUM_FLT_WND]; /* temp array for looping */ - INT i; - - Info->fltTools = HeapAlloc(ProcessHeap, - HEAP_ZERO_MEMORY, - sizeof(FLT_WND)); - Info->fltColors = HeapAlloc(ProcessHeap, - HEAP_ZERO_MEMORY, - sizeof(FLT_WND)); - Info->fltHistory = HeapAlloc(ProcessHeap, - HEAP_ZERO_MEMORY, - sizeof(FLT_WND)); - - /* set window dimensions */ - Info->fltTools->Width = 53; - Info->fltTools->Height = 300; - Info->fltColors->Width = 200; - Info->fltColors->Height = 200; - Info->fltHistory->Width = 150; - Info->fltHistory->Height = 150; - - if (! GetWindowRect(Info->hMdiClient, - &rect)) - { - return; - } - - /* Set window datums */ - Info->fltTools->x = rect.left + 5; - Info->fltTools->y = rect.top + 5; - - Info->fltColors->x = rect.left + 5; - Info->fltColors->y = rect.bottom - Info->fltColors->Height - 5; - - Info->fltHistory->x = rect.right - Info->fltHistory->Width - 5; - Info->fltHistory->y = rect.top + 5; - - /* save pointers into array incrementing within the loop*/ - WndArr[0] = Info->fltTools; - WndArr[1] = Info->fltColors; - WndArr[2] = Info->fltHistory; - - for (i = 0, Res = IDS_FLT_TOOLS; Res < IDS_FLT_TOOLS + NUM_FLT_WND; Res++, i++) - { - if (! AllocAndLoadString(&WndArr[i]->lpName, - hInstance, - Res)) - { - WndArr[i]->lpName = NULL; - } - - WndArr[i]->hSelf = CreateWindowEx(WS_EX_TOOLWINDOW, - TEXT("ImageSoftFloatWndClass"), - WndArr[i]->lpName, - WS_POPUPWINDOW | WS_DLGFRAME | WS_VISIBLE, - WndArr[i]->x, - WndArr[i]->y, - WndArr[i]->Width, - WndArr[i]->Height, - Info->hSelf, - NULL, - hInstance, - WndArr[i]); - ShowWindow(WndArr[i]->hSelf, SW_HIDE); - } - - hMenu = GetMenu(Info->hSelf); - - if (Info->fltTools->hSelf != NULL) - { - if (FloatToolbarCreateToolsGui(Info)) - { - CheckMenuItem(hMenu, - ID_TOOLS, - MF_CHECKED); - - ShowHideWindow(Info->fltTools->hSelf); - } - } - - if (Info->fltColors->hSelf != NULL) - { - if (FloatToolbarCreateColorsGui(Info)) - { - - } - } - - if (Info->fltHistory->hSelf != NULL) - { - if (FloatToolbarCreateHistoryGui(Info)) - { - - } - } - -} - -static VOID -MainWndDestroyFloatWindows(PMAIN_WND_INFO Info) -{ - if (Info->fltTools != NULL) - HeapFree(ProcessHeap, 0, Info->fltTools); - - if (Info->fltColors != NULL) - HeapFree(ProcessHeap, 0, Info->fltColors); - - if (Info->fltHistory != NULL) - HeapFree(ProcessHeap, 0, Info->fltHistory); -} - - - -static const DOCKBAR_ITEM_CALLBACKS MainWndDockBarCallbacks = { - MainWndCreateToolbarClient, - MainWndDestroyToolbarClient, - MainWndToolbarInsertBand, - MainWndToolbarDockBand, - MainWndToolbarChevronPushed, -}; - -static VOID -CreateToolbars(PMAIN_WND_INFO Info) -{ - UINT i; - - for (i = 0; i < sizeof(MainDockBars) / sizeof(MainDockBars[0]); i++) - { - /* FIXME - lookup whether to display the toolbar */ - TbdAddToolbar(&Info->ToolDocks, - &MainDockBars[i], - Info, - &MainWndDockBarCallbacks); - } - - MainWndCreateFloatWindows(Info); -} - -static VOID CALLBACK -MainWndResize(PVOID Context, - LONG cx, - LONG cy) -{ - RECT rcClient = {0}; - RECT rcStatus = {0}; - HDWP dwp; - INT DocksVisible; - PMAIN_WND_INFO Info = (PMAIN_WND_INFO)Context; - - /* Calculate the MDI client rectangle */ - rcClient.right = cx; - rcClient.bottom = cy; - - if (Info->hStatus != NULL) - { - GetWindowRect(Info->hStatus, - &rcStatus); - rcClient.bottom -= (rcStatus.bottom - rcStatus.top); - } - - /* Adjust the client rect if docked toolbars are visible */ - DocksVisible = TbdAdjustUpdateClientRect(&Info->ToolDocks, - &rcClient); - - dwp = BeginDeferWindowPos(2 + DocksVisible); - if (dwp != NULL) - { - /* Update the toolbar docks */ - if (DocksVisible != 0) - { - dwp = TbdDeferDocks(dwp, - &Info->ToolDocks); - if (dwp == NULL) - return; - } - - /* Update the MDI client */ - if (Info->hMdiClient != NULL) - { - dwp = DeferWindowPos(dwp, - Info->hMdiClient, - NULL, - rcClient.left, - rcClient.top, - rcClient.right - rcClient.left, - rcClient.bottom - rcClient.top, - SWP_NOZORDER); - if (dwp == NULL) - return; - } - - /* Update the status bar */ - if (Info->hStatus != NULL) - { - dwp = DeferWindowPos(dwp, - Info->hStatus, - NULL, - 0, - cy - (rcStatus.bottom - rcStatus.top), - cx, - rcStatus.bottom - rcStatus.top, - SWP_NOZORDER); - if (dwp == NULL) - return; - } - - EndDeferWindowPos(dwp); - } -} - -static VOID -InitMainWnd(PMAIN_WND_INFO Info) -{ - CLIENTCREATESTRUCT ccs; - INT statwidths[] = {110, -1}; - - /* FIXME - create controls and initialize the application */ - - /* create the status bar */ - Info->hStatus = CreateWindowEx(0, - STATUSCLASSNAME, - NULL, - WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | CCS_NOPARENTALIGN | SBARS_SIZEGRIP, - 0, - 0, - 0, - 0, - Info->hSelf, - (HMENU)IDC_STATUSBAR, - hInstance, - NULL); - - if (Info->hStatus != NULL) - SendMessage(Info->hStatus, - SB_SETPARTS, - sizeof(statwidths)/sizeof(int), - (LPARAM)statwidths); - - /* create the MDI client window */ - ccs.hWindowMenu = GetSubMenu(GetMenu(Info->hSelf), - ID_MDI_WINDOWMENU); - ccs.idFirstChild = ID_MDI_FIRSTCHILD; - Info->hMdiClient = CreateWindowEx(WS_EX_ACCEPTFILES | WS_EX_CLIENTEDGE, - TEXT("MDICLIENT"), - NULL, - WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VSCROLL | WS_HSCROLL, - 0, - 0, - 0, - 0, - Info->hSelf, - NULL, - hInstance, - &ccs); - - TbdInitializeDocks(&Info->ToolDocks, - Info->hSelf, - Info, - MainWndResize); - - CreateToolbars(Info); - - /* initialize file open/save structure */ - FileInitialize(Info->hSelf); -} - -static VOID -MainWndCommand(PMAIN_WND_INFO Info, - WORD CmdId, - HWND hControl) -{ - static TCHAR szFileName[MAX_PATH]; - static TCHAR szImageName[MAX_PATH]; - - UNREFERENCED_PARAMETER(hControl); - - switch (CmdId) - { - case ID_NEW: - { - MessageBox(NULL, _T("Not yet implemented"), NULL, 0); - } - break; - - case ID_OPEN: - { - OPEN_IMAGE_EDIT_INFO OpenInfo; - - if (DoOpenFile(Info->hSelf, - szFileName, /* full file path */ - szImageName)) /* file name */ - { - OpenInfo.CreateNew = FALSE; - - OpenInfo.Open.lpImagePath = szFileName; - OpenInfo.lpImageName = szImageName; - - CreateImageEditWindow(Info, - &OpenInfo); - - /* FIXME: move flt wnd's if scroll bars show - MainWndResetFloatingWindows(Info->hMdiClient); */ - } - - } - break; - - case ID_TOOLS: - { - HMENU hMenu = GetMenu(Info->hSelf); - - if (hMenu != NULL) - { - UINT uCheck = MF_CHECKED; - - if (ShowHideWindow(Info->fltTools->hSelf)) - uCheck = MF_UNCHECKED; - - CheckMenuItem(hMenu, - ID_TOOLS, - uCheck); - } - } - break; - - case ID_COLOR: - { - HMENU hMenu = GetMenu(Info->hSelf); - - if (hMenu != NULL) - { - UINT uCheck = MF_CHECKED; - - if (ShowHideWindow(Info->fltColors->hSelf)) - uCheck = MF_UNCHECKED; - - CheckMenuItem(hMenu, - ID_COLOR, - uCheck); - } - } - break; - - case ID_HISTORY: - { - HMENU hMenu = GetMenu(Info->hSelf); - - if (hMenu != NULL) - { - UINT uCheck = MF_CHECKED; - - if (ShowHideWindow(Info->fltHistory->hSelf)) - uCheck = MF_UNCHECKED; - - CheckMenuItem(hMenu, - ID_HISTORY, - uCheck); - } - } - break; - - case ID_BRIGHTNESS: - DialogBoxParam(hInstance, - MAKEINTRESOURCE(IDD_BRIGHTNESS), - Info->hSelf, - BrightnessProc, - (LPARAM)Info); - break; - - case ID_CONTRAST: - /* FIXME : Create a window for contrast */ - break; - - case ID_BLACKANDWHITE: - { - if (Info->ImageEditors) - { - DisplayBlackAndWhite(Info->ImageEditors->hSelf, - Info->ImageEditors->hDCMem, - Info->ImageEditors->hBitmap); - } - } - break; - - case ID_INVERTCOLORS: - { - if (Info->ImageEditors) - { - DisplayInvertedColors(Info->ImageEditors->hSelf, - Info->ImageEditors->hDCMem, - Info->ImageEditors->hBitmap); - } - } - break; - - case ID_BLUR: - { - if (Info->ImageEditors) - { - DisplayBlur(Info->ImageEditors->hSelf, - Info->ImageEditors->hDCMem, - Info->ImageEditors->hBitmap); - } - } - break; - - case ID_SHARPEN: - { - if (Info->ImageEditors) - { - DisplaySharpness(Info->ImageEditors->hSelf, - Info->ImageEditors->hDCMem, - Info->ImageEditors->hBitmap); - } - } - break; - - case ID_EXIT: - SendMessage(Info->hSelf, - WM_CLOSE, - 0, - 0); - break; - - /* Window Menu */ - case ID_WINDOW_TILE_HORZ: - SendMessage(Info->hMdiClient, - WM_MDITILE, - MDITILE_HORIZONTAL, - 0); - break; - - case ID_WINDOW_TILE_VERT: - SendMessage(Info->hMdiClient, - WM_MDITILE, - MDITILE_VERTICAL, - 0); - break; - - case ID_WINDOW_CASCADE: - SendMessage(Info->hMdiClient, - WM_MDICASCADE, - 0, - 0); - break; - - case ID_WINDOW_ARRANGE: - SendMessage(Info->hMdiClient, - WM_MDIICONARRANGE, - 0, - 0); - break; - - case ID_WINDOW_NEXT: - SendMessage(Info->hMdiClient, - WM_MDINEXT, - 0, - 0); - break; - - /* Help Menu */ - case ID_ABOUT: - DialogBox(hInstance, - MAKEINTRESOURCE(IDD_ABOUTBOX), - Info->hSelf, - AboutDialogProc); - break; - } -} - -static VOID -DestroyMainWnd(PMAIN_WND_INFO Info) -{ - /* FIXME - cleanup allocated resources */ - - MainWndDestroyFloatWindows(Info); -} - - -static VOID -UpdateMainStatusBar(PMAIN_WND_INFO Info) -{ - if (Info->hStatus != NULL) - { - SendMessage(Info->hStatus, - SB_SIMPLE, - (WPARAM)Info->InMenuLoop, - 0); - } -} - -static BOOL -MainWndMenuHint(PMAIN_WND_INFO Info, - WORD CmdId, - const MENU_HINT *HintArray, - DWORD HintsCount, - UINT DefHintId) -{ - BOOL Found = FALSE; - const MENU_HINT *LastHint; - UINT HintId = DefHintId; - - LastHint = HintArray + HintsCount; - while (HintArray != LastHint) - { - if (HintArray->CmdId == CmdId) - { - HintId = HintArray->HintId; - Found = TRUE; - break; - } - HintArray++; - } - - StatusBarLoadString(Info->hStatus, - SB_SIMPLEID, - hInstance, - HintId); - - return Found; -} - -static LRESULT CALLBACK -MainWndProc(HWND hwnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - PMAIN_WND_INFO Info; - LRESULT Ret = 0; - static BOOL bLBMouseDown = FALSE; - static RECT wndOldPos; - - /* Get the window context */ - Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwnd, - GWLP_USERDATA); - if (Info == NULL && uMsg != WM_CREATE) - { - goto HandleDefaultMessage; - } - - switch (uMsg) - { - case WM_SIZE: - { - MainWndResize(Info, - LOWORD(lParam), - HIWORD(lParam)); - /* NOTE - do *not* forward this message to DefFrameProc! Otherwise the MDI client - will attempt to resize itself */ - - /* reposition the floating toolbars */ - if ((wParam == SIZE_MAXIMIZED) || (wParam == SIZE_RESTORED)) - MainWndResetFloatingWindows(Info); - - break; - } - - case WM_NCLBUTTONDOWN: - bLBMouseDown = TRUE; - DefWindowProc(hwnd, - uMsg, - wParam, - lParam); - break; - - case WM_NCLBUTTONUP: - - bLBMouseDown = FALSE; - DefWindowProc(hwnd, - uMsg, - wParam, - lParam); - break; - - case WM_MOVE: - { - /* if the main window is moved, move the toolbars too */ - if (bLBMouseDown) - MainWndMoveFloatingWindows(Info, &wndOldPos); - } - break; - - case WM_NOTIFY: - { - UINT BarId; - LPNMHDR pnmhdr = (LPNMHDR)lParam; - if (!TbdHandleNotifications(&Info->ToolDocks, - pnmhdr, - &Ret)) - { - if (TbdDockBarIdFromClientWindow(&Info->ToolDocks, - pnmhdr->hwndFrom, - &BarId)) - { - switch (BarId) - { - case ID_TOOLBAR_TEXT: - switch (pnmhdr->code) - { - case TBN_DELETINGBUTTON: - { - LPNMTOOLBAR lpnmtb = (LPNMTOOLBAR)lParam; - - ToolbarDeleteControlSpace(pnmhdr->hwndFrom, - &lpnmtb->tbButton); - break; - } - } - break; - } - } - } - break; - } - - case WM_COMMAND: - { - MainWndCommand(Info, - LOWORD(wParam), - (HWND)lParam); - goto HandleDefaultMessage; - } - - case WM_MENUSELECT: - { - if (Info->hStatus != NULL) - { - if (!MainWndMenuHint(Info, - LOWORD(wParam), - MainMenuHintTable, - sizeof(MainMenuHintTable) / sizeof(MainMenuHintTable[0]), - IDS_HINT_BLANK)) - { - MainWndMenuHint(Info, - LOWORD(wParam), - SystemMenuHintTable, - sizeof(SystemMenuHintTable) / sizeof(SystemMenuHintTable[0]), - IDS_HINT_BLANK); - } - } - break; - } - - case WM_ENTERMENULOOP: - { - Info->InMenuLoop = TRUE; - UpdateMainStatusBar(Info); - break; - } - - case WM_EXITMENULOOP: - { - Info->InMenuLoop = FALSE; - UpdateMainStatusBar(Info); - break; - } - - case WM_CLOSE: - { - DestroyWindow(hwnd); - break; - } - - case WM_ENABLE: - { - TbdHandleEnabling(&Info->ToolDocks, - hwnd, - (BOOL)wParam); - goto HandleDefaultMessage; - } - - case WM_NCACTIVATE: - { - TbdHandleActivation(&Info->ToolDocks, - hwnd, - &wParam, - &lParam); - goto HandleDefaultMessage; - } - - case WM_ACTIVATEAPP: - { - //TbdShowFloatingToolbars(&Info->ToolDocks, - // (BOOL)wParam); - goto HandleDefaultMessage; - } - - case WM_CREATE: - { - Info = (PMAIN_WND_INFO)(((LPCREATESTRUCT)lParam)->lpCreateParams); - - /* Initialize the main window context */ - Info->hSelf = hwnd; - - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - (LONG_PTR)Info); - - InitMainWnd(Info); - - /* Show the window */ - ShowWindow(hwnd, - Info->nCmdShow); - /* get the windows position */ - GetWindowRect(hwnd, - &wndOldPos); - - break; - } - - case WM_DESTROY: - { - DestroyMainWnd(Info); - - HeapFree(ProcessHeap, - 0, - Info); - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - 0); - - /* Break the message queue loop */ - PostQuitMessage(0); - break; - } - - default: - { -HandleDefaultMessage: - if (Info != NULL && Info->hMdiClient != NULL) - { - Ret = DefFrameProc(hwnd, - Info->hMdiClient, - uMsg, - wParam, - lParam); - } - else - { - Ret = DefWindowProc(hwnd, - uMsg, - wParam, - lParam); - } - break; - } - } - - return Ret; -} - -MDI_EDITOR_TYPE -MainWndGetCurrentEditor(PMAIN_WND_INFO MainWnd, - PVOID *Info) -{ - MDI_EDITOR_TYPE EditorType; - - if (MainWnd->ActiveEditor != NULL) - { - EditorType = *((PMDI_EDITOR_TYPE)MainWnd->ActiveEditor); - *Info = MainWnd->ActiveEditor; - } - else - { - EditorType = metUnknown; - *Info = NULL; - } - - return EditorType; -} - -VOID -MainWndSwitchEditorContext(PMAIN_WND_INFO Info, - HWND hDeactivate, - HWND hActivate) -{ - PMDI_EDITOR_TYPE EditorType; - - /* FIXME - optimize light weight switching - when switching from and to an editor of same type */ - - if (hDeactivate != NULL) - { - EditorType = (PMDI_EDITOR_TYPE)GetWindowLongPtr(hDeactivate, - GWLP_USERDATA); - if (EditorType != NULL) - { - switch (*EditorType) - { - case metImageEditor: - SetImageEditorEnvironment((PEDIT_WND_INFO)EditorType, - FALSE); - break; - - default: - break; - } - - Info->ActiveEditor = NULL; - } - } - - if (hActivate != NULL) - { - EditorType = (PMDI_EDITOR_TYPE)GetWindowLongPtr(hActivate, - GWLP_USERDATA); - if (EditorType != NULL) - { - Info->ActiveEditor = EditorType; - - switch (*EditorType) - { - case metImageEditor: - SetImageEditorEnvironment((PEDIT_WND_INFO)EditorType, - TRUE); - break; - - default: - break; - } - } - } -} - -HWND -CreateMainWindow(LPCTSTR lpCaption, - int nCmdShow) -{ - PMAIN_WND_INFO Info; - HWND hMainWnd = NULL; - - Info = HeapAlloc(ProcessHeap, - 0, - sizeof(MAIN_WND_INFO)); - if (Info != NULL) - { - ZeroMemory(Info, - sizeof(MAIN_WND_INFO)); - Info->nCmdShow = nCmdShow; - - /* FIXME - load the window position from the registry */ - - hMainWnd = CreateWindowEx(WS_EX_WINDOWEDGE, - szMainWndClass, - lpCaption, - WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - NULL, - NULL, - hInstance, - Info); - if (hMainWnd == NULL) - { - HeapFree(ProcessHeap, - 0, - Info); - } - } - - return hMainWnd; -} - -BOOL -MainWndTranslateMDISysAccel(HWND hwnd, - LPMSG lpMsg) -{ - PMAIN_WND_INFO Info; - - /* Get the window context */ - Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwnd, - GWLP_USERDATA); - if (Info != NULL && Info->hMdiClient != NULL) - { - return TranslateMDISysAccel(Info->hMdiClient, - lpMsg); - } - - return FALSE; -} - -BOOL -InitMainWindowImpl(VOID) -{ - WNDCLASSEX wc = {0}; - - wc.cbSize = sizeof(WNDCLASSEX); - wc.lpfnWndProc = MainWndProc; - wc.hInstance = hInstance; - wc.hIcon = LoadIcon(hInstance, - MAKEINTRESOURCE(IDI_IMAGESOFTICON)); - wc.hCursor = LoadCursor(NULL, - IDC_ARROW); - wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); - wc.lpszMenuName = MAKEINTRESOURCE(IDR_MAINMENU); - wc.lpszClassName = szMainWndClass; - wc.hIconSm = (HICON)LoadImage(hInstance, - MAKEINTRESOURCE(IDI_IMAGESOFTICON), - IMAGE_ICON, - 16, - 16, - LR_SHARED); - - return RegisterClassEx(&wc) != (ATOM)0; -} - -VOID -UninitMainWindowImpl(VOID) -{ - UnregisterClass(szMainWndClass, - hInstance); -} diff --git a/rosapps/applications/imagesoft/mainwnd.h b/rosapps/applications/imagesoft/mainwnd.h deleted file mode 100644 index e19656456fb..00000000000 --- a/rosapps/applications/imagesoft/mainwnd.h +++ /dev/null @@ -1,41 +0,0 @@ - -typedef struct _MENU_HINT -{ - WORD CmdId; - UINT HintId; -} MENU_HINT, *PMENU_HINT; - -typedef struct _MAIN_WND_INFO -{ - HWND hSelf; - HWND hMdiClient; - HWND hStatus; - int nCmdShow; - - struct _FLT_WND *fltTools; - struct _FLT_WND *fltColors; - struct _FLT_WND *fltHistory; - - struct _TOOLBAR_DOCKS ToolDocks; - - /* Editors */ - PEDIT_WND_INFO ImageEditors; - UINT ImagesCreated; - - PVOID ActiveEditor; - - /* status flags */ - BOOL InMenuLoop : 1; -} MAIN_WND_INFO, *PMAIN_WND_INFO; - -BOOL InitMainWindowImpl(VOID); -VOID UninitMainWindowImpl(VOID); -HWND CreateMainWindow(LPCTSTR lpCaption, - int nCmdShow); -BOOL MainWndTranslateMDISysAccel(HWND hwnd, - LPMSG lpMsg); -VOID MainWndSwitchEditorContext(PMAIN_WND_INFO Info, - HWND hDeactivate, - HWND hActivate); -MDI_EDITOR_TYPE MainWndGetCurrentEditor(PMAIN_WND_INFO MainWnd, - PVOID *Info); diff --git a/rosapps/applications/imagesoft/misc.c b/rosapps/applications/imagesoft/misc.c deleted file mode 100644 index 709042b6e65..00000000000 --- a/rosapps/applications/imagesoft/misc.c +++ /dev/null @@ -1,422 +0,0 @@ -#include - -static INT -LengthOfStrResource(IN HINSTANCE hInst, - IN UINT uID) -{ - HRSRC hrSrc; - HGLOBAL hRes; - LPWSTR lpName, lpStr; - - if (hInst == NULL) - { - return -1; - } - - /* There are always blocks of 16 strings */ - lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1); - - /* Find the string table block */ - if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) && - (hRes = LoadResource(hInst, hrSrc)) && - (lpStr = LockResource(hRes))) - { - UINT x; - - /* Find the string we're looking for */ - uID &= 0xF; /* position in the block, same as % 16 */ - for (x = 0; x < uID; x++) - { - lpStr += (*lpStr) + 1; - } - - /* Found the string */ - return (int)(*lpStr); - } - return -1; -} - -INT -AllocAndLoadString(OUT LPTSTR *lpTarget, - IN HINSTANCE hInst, - IN UINT uID) -{ - INT ln; - - ln = LengthOfStrResource(hInst, - uID); - if (ln++ > 0) - { - (*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED, - ln * sizeof(TCHAR)); - if ((*lpTarget) != NULL) - { - INT Ret; - if (!(Ret = LoadString(hInst, uID, *lpTarget, ln))) - { - LocalFree((HLOCAL)(*lpTarget)); - } - return Ret; - } - } - return 0; -} - -DWORD -LoadAndFormatString(IN HINSTANCE hInstance, - IN UINT uID, - OUT LPTSTR *lpTarget, - ...) -{ - DWORD Ret = 0; - LPTSTR lpFormat; - va_list lArgs; - - if (AllocAndLoadString(&lpFormat, - hInstance, - uID) > 0) - { - va_start(lArgs, lpTarget); - /* let's use FormatMessage to format it because it has the ability to allocate - memory automatically */ - Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, - lpFormat, - 0, - 0, - (LPTSTR)lpTarget, - 0, - &lArgs); - va_end(lArgs); - - LocalFree((HLOCAL)lpFormat); - } - - return Ret; -} - -BOOL -StatusBarLoadAndFormatString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID, - ...) -{ - BOOL Ret = FALSE; - LPTSTR lpFormat, lpStr; - va_list lArgs; - - if (AllocAndLoadString(&lpFormat, - hInstance, - uID) > 0) - { - va_start(lArgs, uID); - /* let's use FormatMessage to format it because it has the ability to allocate - memory automatically */ - Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, - lpFormat, - 0, - 0, - (LPTSTR)&lpStr, - 0, - &lArgs); - va_end(lArgs); - - if (lpStr != NULL) - { - Ret = (BOOL)SendMessage(hStatusBar, - SB_SETTEXT, - (WPARAM)PartId, - (LPARAM)lpStr); - LocalFree((HLOCAL)lpStr); - } - - LocalFree((HLOCAL)lpFormat); - } - - return Ret; -} - -BOOL -StatusBarLoadString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID) -{ - BOOL Ret = FALSE; - LPTSTR lpStr; - - if (AllocAndLoadString(&lpStr, - hInstance, - uID) > 0) - { - Ret = (BOOL)SendMessage(hStatusBar, - SB_SETTEXT, - (WPARAM)PartId, - (LPARAM)lpStr); - LocalFree((HLOCAL)lpStr); - } - - return Ret; -} - - -INT -GetTextFromEdit(OUT LPTSTR lpString, - IN HWND hDlg, - IN UINT Res) -{ - INT len = GetWindowTextLength(GetDlgItem(hDlg, Res)); - if(len > 0) - { - GetDlgItemText(hDlg, - Res, - lpString, - len + 1); - } - else - lpString = NULL; - - return len; -} - - -VOID GetError(DWORD err) -{ - LPVOID lpMsgBuf; - - if (err == 0) - err = GetLastError(); - - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - err, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &lpMsgBuf, - 0, - NULL ); - - MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR); - - LocalFree(lpMsgBuf); -} - - - -/* - * Toolbar custom control routines - */ - -typedef struct _TBCUSTCTL -{ - HWND hWndControl; - INT iCommand; - BOOL HideVertical : 1; - BOOL IsVertical : 1; -} TBCUSTCTL, *PTBCUSTCTL; - -BOOL -ToolbarDeleteControlSpace(HWND hWndToolbar, - const TBBUTTON *ptbButton) -{ - if ((ptbButton->fsStyle & TBSTYLE_SEP) && - ptbButton->dwData != 0) - { - PTBCUSTCTL cctl = (PTBCUSTCTL)ptbButton->dwData; - - DestroyWindow(cctl->hWndControl); - - HeapFree(ProcessHeap, - 0, - cctl); - return TRUE; - } - - return FALSE; -} - -VOID -ToolbarUpdateControlSpaces(HWND hWndToolbar, - ToolbarChangeControlCallback ChangeCallback) -{ - BOOL Vert; - DWORD nButtons, i; - TBBUTTON tbtn; - - Vert = ((SendMessage(hWndToolbar, - TB_GETSTYLE, - 0, - 0) & CCS_VERT) != 0); - - nButtons = (DWORD)SendMessage(hWndToolbar, - TB_BUTTONCOUNT, - 0, - 0); - - for (i = 0; - i != nButtons; - i++) - { - if (SendMessage(hWndToolbar, - TB_GETBUTTON, - (WPARAM)i, - (LPARAM)&tbtn)) - { - if ((tbtn.fsStyle & TBSTYLE_SEP) && tbtn.dwData != 0) - { - PTBCUSTCTL cctl = (PTBCUSTCTL)tbtn.dwData; - - cctl->IsVertical = Vert; - - if (cctl->HideVertical) - { - ShowWindow(cctl->hWndControl, - (Vert ? SW_HIDE : SW_SHOW)); - goto ShowHideSep; - } - else if (cctl->IsVertical != Vert) - { - ChangeCallback(hWndToolbar, - cctl->hWndControl, - Vert); - -ShowHideSep: - /* show/hide the separator */ - SendMessage(hWndToolbar, - TB_HIDEBUTTON, - (WPARAM)cctl->iCommand, - (LPARAM)Vert && cctl->HideVertical); - } - } - } - } -} - -BOOL -ToolbarInsertSpaceForControl(HWND hWndToolbar, - HWND hWndControl, - INT Index, - INT iCmd, - BOOL HideVertical) -{ - PTBCUSTCTL cctl; - RECT rcControl, rcItem; - - cctl = HeapAlloc(ProcessHeap, - 0, - sizeof(TBCUSTCTL)); - if (cctl == NULL) - return FALSE; - - cctl->HideVertical = HideVertical; - cctl->hWndControl = hWndControl; - cctl->iCommand = iCmd; - - if (GetWindowRect(hWndControl, - &rcControl)) - { - TBBUTTON tbtn = {0}; - - tbtn.iBitmap = rcControl.right - rcControl.left; - tbtn.idCommand = iCmd; - tbtn.fsStyle = TBSTYLE_SEP; - tbtn.dwData = (DWORD_PTR)cctl; - - if (SendMessage(hWndToolbar, - TB_GETSTYLE, - 0, - 0) & CCS_VERT) - { - if (HideVertical) - tbtn.fsState |= TBSTATE_HIDDEN; - - cctl->IsVertical = TRUE; - } - else - cctl->IsVertical = FALSE; - - if (SendMessage(hWndToolbar, - TB_INSERTBUTTON, - (WPARAM)Index, - (LPARAM)&tbtn)) - { - if (SendMessage(hWndToolbar, - TB_GETITEMRECT, - (WPARAM)Index, - (LPARAM)&rcItem)) - { - SetWindowPos(hWndControl, - NULL, - rcItem.left, - rcItem.top, - rcItem.right - rcItem.left, - rcItem.bottom - rcItem.top, - SWP_NOZORDER); - - ShowWindow(hWndControl, - SW_SHOW); - - return TRUE; - } - else if (tbtn.fsState & TBSTATE_HIDDEN) - { - ShowWindow(hWndControl, - SW_HIDE); - } - } - } - - return FALSE; -} - - -HIMAGELIST -InitImageList(UINT NumImages, UINT StartResource) -{ - HBITMAP hBitmap; - HIMAGELIST hImageList; - UINT i, k; - INT Ret; - - - /* Create the toolbar icon image list */ - hImageList = ImageList_Create(TB_BMP_WIDTH, - TB_BMP_HEIGHT, - ILC_MASK | ILC_COLOR24, - NumImages, - 0); - if (! hImageList) - return NULL; - - /* Add all icons to the image list */ - for (i = StartResource, k = 0; k < NumImages; i++, k++) - { - hBitmap = LoadImage(hInstance, - MAKEINTRESOURCE(i), - IMAGE_BITMAP, - TB_BMP_WIDTH, - TB_BMP_HEIGHT, - LR_LOADTRANSPARENT); - - Ret = ImageList_AddMasked(hImageList, - hBitmap, - RGB(255, 255, 254)); - - DeleteObject(hBitmap); - } - - return hImageList; - -} - -/* -static BOOL -DestroyImageList(HIMAGELIST hImageList) -{ - if (! ImageList_Destroy(hImageList)) - return FALSE; - else - return TRUE; -} -*/ diff --git a/rosapps/applications/imagesoft/misc.h b/rosapps/applications/imagesoft/misc.h deleted file mode 100644 index ab0c4ae7e08..00000000000 --- a/rosapps/applications/imagesoft/misc.h +++ /dev/null @@ -1,44 +0,0 @@ - -INT AllocAndLoadString(OUT LPTSTR *lpTarget, - IN HINSTANCE hInst, - IN UINT uID); - -DWORD LoadAndFormatString(IN HINSTANCE hInstance, - IN UINT uID, - OUT LPTSTR *lpTarget, - ...); - -BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID, - ...); - -BOOL StatusBarLoadString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID); - -INT GetTextFromEdit(OUT LPTSTR lpString, - IN HWND hDlg, - IN UINT Res); - -VOID GetError(DWORD err); - -BOOL ToolbarDeleteControlSpace(HWND hWndToolbar, - const TBBUTTON *ptbButton); - -typedef VOID (*ToolbarChangeControlCallback)(HWND hWndToolbar, - HWND hWndControl, - BOOL Vert); -VOID ToolbarUpdateControlSpaces(HWND hWndToolbar, - ToolbarChangeControlCallback ChangeCallback); - -BOOL ToolbarInsertSpaceForControl(HWND hWndToolbar, - HWND hWndControl, - INT Index, - INT iCmd, - BOOL HideVertical); - -HIMAGELIST InitImageList(UINT NumButtons, - UINT StartResource); diff --git a/rosapps/applications/imagesoft/opensave.c b/rosapps/applications/imagesoft/opensave.c deleted file mode 100644 index 9fccbb8b64b..00000000000 --- a/rosapps/applications/imagesoft/opensave.c +++ /dev/null @@ -1,87 +0,0 @@ -#include - -static OPENFILENAME ofn; - -/* - * Initialize file open / save structure - */ -VOID FileInitialize(HWND hwnd) -{ - ZeroMemory(&ofn, sizeof(ofn)); - ofn.lStructSize = sizeof(OPENFILENAME); - ofn.hwndOwner = hwnd; - ofn.nMaxFile = MAX_PATH; - ofn.nMaxFileTitle = MAX_PATH; - ofn.lpstrDefExt = _T("bmp"); -} - - -static BOOL -DoWriteFile(LPCTSTR pszFileName) -{ - return TRUE; -} - - -BOOL -DoOpenFile(HWND hwnd, - LPTSTR szFileName, - LPTSTR szTitleName) -{ - DWORD err; - /*static TCHAR Filter[] = _T("All image files (*.gif,*.bmp,*.jpg,*.jpeg,*.tif,*.png)\0*.gif,*.bmp,*.jpg,*.jpeg,*.tif,*.png\0") \ - _T("All files (*.*)\0*.*\0") \ - _T("Graphics Interchange format (*gif)\0*.gif\0") \ - _T("Windows Bitmap (*bmp)\0*.bmp\0") \ - _T("JPEG File Interchange Format (*jpg,*.jpeg)\0*.jpg,*.jpeg\0") \ - _T("TAG Image File Format (*tif)\0*.tif\0") \ - _T("Portable Network Graphics (*png)\0*.png\0\0");*/ - - static TCHAR Filter[] = _T("Windows Bitmap (*.bmp)\0*.bmp\0"); - - ofn.lpstrFilter = Filter; - ofn.lpstrFile = szFileName; - ofn.lpstrFileTitle = szTitleName; - ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; - - if (GetOpenFileName(&ofn)) - { - return TRUE; - } - - err = CommDlgExtendedError(); - - if (err != CDERR_GENERALCODES) - MessageBox(NULL, _T("Open file failed"), NULL, 0); - - return FALSE; -} - - - -BOOL -DoSaveFile(HWND hwnd) -{ - TCHAR szFileName[MAX_PATH] = _T(""); - static TCHAR Filter[] = _T("Graphics Interchange format (*gif)\0*.gif\0") \ - _T("Windows Bitmap (*bmp)\0*.bmp\0") \ - _T("JPEG File Interchange Format (*jpg,*.jpeg)\0*.jpg,*.jpeg\0") \ - _T("TAG Image File Format (*tif)\0*.tif\0") \ - _T("Portable Network Graphics (*png)\0*.png\0\0"); - - ofn.lpstrFilter = Filter; - ofn.lpstrFile = szFileName; - ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; - - if (GetSaveFileName(&ofn)) - { - if (DoWriteFile(szFileName)) - return TRUE; - } - - if (CommDlgExtendedError() != CDERR_GENERALCODES) - MessageBox(NULL, _T("Save to file failed"), NULL, 0); - - return FALSE; -} - diff --git a/rosapps/applications/imagesoft/precomp.h b/rosapps/applications/imagesoft/precomp.h deleted file mode 100644 index bada1909ec2..00000000000 --- a/rosapps/applications/imagesoft/precomp.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef __IMAGESOFT_PRECOMP_H -#define __IMAGESOFT_PRECOMP_H - -//#define WIN32_LEAN_AND_MEAN -#include -#include -#include -#include -#include -#include "resource.h" - -#include "tooldock.h" -#include "imgedwnd.h" -#include "mainwnd.h" -#include "imageprop.h" -#include "misc.h" - -#define MAX_KEY_LENGTH 256 -#define NUM_MAINTB_IMAGES 10 -#define TB_BMP_WIDTH 16 -#define TB_BMP_HEIGHT 16 - -#define TOOLS 0 -#define COLORS 1 -#define HISTORY 2 - -extern HINSTANCE hInstance; -extern HANDLE ProcessHeap; - -/* about.c */ -INT_PTR CALLBACK AboutDialogProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam); - -/* opensave.c */ -VOID FileInitialize(HWND hwnd); -BOOL DoOpenFile(HWND hwnd, - LPTSTR lpFileName, - LPTSTR lpName); -BOOL DoSaveFile(HWND hwnd); - -/* floattoolbar.c */ -typedef struct _FLT_WND -{ - HWND hSelf; - LPTSTR lpName; - INT x; - INT y; - INT Width; - INT Height; - INT Transparancy; - BOOL bOpaque; -} FLT_WND, *PFLT_WND; - -BOOL FloatToolbarCreateToolsGui(PMAIN_WND_INFO Info); -BOOL FloatToolbarCreateColorsGui(PMAIN_WND_INFO Info); -BOOL FloatToolbarCreateHistoryGui(PMAIN_WND_INFO Info); -BOOL InitFloatWndClass(VOID); -VOID UninitFloatWndImpl(VOID); -BOOL ShowHideWindow(HWND hwnd); - -/* font.c */ -VOID FillFontStyleComboList(HWND hwndCombo); -VOID FillFontSizeComboList(HWND hwndCombo); - -/* custcombo.c */ -VOID MakeFlatCombo(HWND hwndCombo); - -#endif /* __IMAGESOFT_PRECOMP_H */ diff --git a/rosapps/applications/imagesoft/res/cursors/PaintBrushToolCursor.cur b/rosapps/applications/imagesoft/res/cursors/PaintBrushToolCursor.cur deleted file mode 100644 index d4fec205f38..00000000000 Binary files a/rosapps/applications/imagesoft/res/cursors/PaintBrushToolCursor.cur and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/cursors/PaintBrushToolCursorMouseDown.cur b/rosapps/applications/imagesoft/res/cursors/PaintBrushToolCursorMouseDown.cur deleted file mode 100644 index c338fec11be..00000000000 Binary files a/rosapps/applications/imagesoft/res/cursors/PaintBrushToolCursorMouseDown.cur and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/color/ColorLess.bmp b/rosapps/applications/imagesoft/res/icons/color/ColorLess.bmp deleted file mode 100644 index df9d9f32e38..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/color/ColorLess.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/color/ColorMore.bmp b/rosapps/applications/imagesoft/res/icons/color/ColorMore.bmp deleted file mode 100644 index 9020fd895df..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/color/ColorMore.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/hist/HistBack.bmp b/rosapps/applications/imagesoft/res/icons/hist/HistBack.bmp deleted file mode 100644 index 4faa2262710..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/hist/HistBack.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/hist/HistDelete.bmp b/rosapps/applications/imagesoft/res/icons/hist/HistDelete.bmp deleted file mode 100644 index 117ed95d2e9..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/hist/HistDelete.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/hist/HistForward.bmp b/rosapps/applications/imagesoft/res/icons/hist/HistForward.bmp deleted file mode 100644 index 3cc7666c049..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/hist/HistForward.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/hist/HistRedo.bmp b/rosapps/applications/imagesoft/res/icons/hist/HistRedo.bmp deleted file mode 100644 index b7c7db787df..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/hist/HistRedo.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/hist/HistUndo.bmp b/rosapps/applications/imagesoft/res/icons/hist/HistUndo.bmp deleted file mode 100644 index da8326e8cf3..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/hist/HistUndo.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/std/MainCopyIcon.bmp b/rosapps/applications/imagesoft/res/icons/std/MainCopyIcon.bmp deleted file mode 100644 index 8ac3547d6e7..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/std/MainCopyIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/std/MainCutIcon.bmp b/rosapps/applications/imagesoft/res/icons/std/MainCutIcon.bmp deleted file mode 100644 index 6ffe6fde2d8..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/std/MainCutIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/std/MainNewIcon.bmp b/rosapps/applications/imagesoft/res/icons/std/MainNewIcon.bmp deleted file mode 100644 index e3d27bebd19..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/std/MainNewIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/std/MainOpenIcon.bmp b/rosapps/applications/imagesoft/res/icons/std/MainOpenIcon.bmp deleted file mode 100644 index 2114f19176c..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/std/MainOpenIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/std/MainPasteIcon.bmp b/rosapps/applications/imagesoft/res/icons/std/MainPasteIcon.bmp deleted file mode 100644 index 1936b3bd0e0..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/std/MainPasteIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/std/MainPrintIcon.bmp b/rosapps/applications/imagesoft/res/icons/std/MainPrintIcon.bmp deleted file mode 100644 index 1e50040a4cd..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/std/MainPrintIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/std/MainPrintPreIcon.bmp b/rosapps/applications/imagesoft/res/icons/std/MainPrintPreIcon.bmp deleted file mode 100644 index 6ffeafad197..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/std/MainPrintPreIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/std/MainRedoIcon.bmp b/rosapps/applications/imagesoft/res/icons/std/MainRedoIcon.bmp deleted file mode 100644 index b7c7db787df..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/std/MainRedoIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/std/MainSaveIcon.bmp b/rosapps/applications/imagesoft/res/icons/std/MainSaveIcon.bmp deleted file mode 100644 index b9d93cbad2e..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/std/MainSaveIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/std/MainUndoIcon.bmp b/rosapps/applications/imagesoft/res/icons/std/MainUndoIcon.bmp deleted file mode 100644 index da8326e8cf3..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/std/MainUndoIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/text/TextAlignCenterIcon.bmp b/rosapps/applications/imagesoft/res/icons/text/TextAlignCenterIcon.bmp deleted file mode 100644 index 6392a820d8c..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/text/TextAlignCenterIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/text/TextAlignLeftIcon.bmp b/rosapps/applications/imagesoft/res/icons/text/TextAlignLeftIcon.bmp deleted file mode 100644 index dffc785b9d9..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/text/TextAlignLeftIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/text/TextAlignRightIcon.bmp b/rosapps/applications/imagesoft/res/icons/text/TextAlignRightIcon.bmp deleted file mode 100644 index 064f09b5270..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/text/TextAlignRightIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/text/TextBoldIcon.bmp b/rosapps/applications/imagesoft/res/icons/text/TextBoldIcon.bmp deleted file mode 100644 index ffb0b3ab290..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/text/TextBoldIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/text/TextItalicIcon.bmp b/rosapps/applications/imagesoft/res/icons/text/TextItalicIcon.bmp deleted file mode 100644 index 604273dd132..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/text/TextItalicIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/text/TextUnderlineIcon.bmp b/rosapps/applications/imagesoft/res/icons/text/TextUnderlineIcon.bmp deleted file mode 100644 index 25de8272d0c..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/text/TextUnderlineIcon.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsCloneStamp.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsCloneStamp.bmp deleted file mode 100644 index 2dceb3b5335..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsCloneStamp.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsColorPicker.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsColorPicker.bmp deleted file mode 100644 index b7b4f29e47a..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsColorPicker.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsEllipse.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsEllipse.bmp deleted file mode 100644 index 740288ce0bf..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsEllipse.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsEllipseSelect.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsEllipseSelect.bmp deleted file mode 100644 index 76c8d9437df..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsEllipseSelect.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsEraser.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsEraser.bmp deleted file mode 100644 index 05ec19f9889..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsEraser.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsFreeformShape.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsFreeformShape.bmp deleted file mode 100644 index c6e671b2988..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsFreeformShape.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsLassoSelect.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsLassoSelect.bmp deleted file mode 100644 index 4375d50b7ad..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsLassoSelect.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsLine.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsLine.bmp deleted file mode 100644 index 949615def46..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsLine.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsMagicWand.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsMagicWand.bmp deleted file mode 100644 index f41bc862879..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsMagicWand.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsMove.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsMove.bmp deleted file mode 100644 index 356149296ad..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsMove.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsMoveSelection.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsMoveSelection.bmp deleted file mode 100644 index 6dbcbe37a61..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsMoveSelection.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsPaintBrush.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsPaintBrush.bmp deleted file mode 100644 index e5a99eeed82..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsPaintBrush.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsPaintBucket.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsPaintBucket.bmp deleted file mode 100644 index 7359751e428..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsPaintBucket.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsPencil.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsPencil.bmp deleted file mode 100644 index 8f1a4c9171e..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsPencil.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsRecoloring.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsRecoloring.bmp deleted file mode 100644 index 63b817470af..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsRecoloring.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsRectangle.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsRectangle.bmp deleted file mode 100644 index 8fa788b6a49..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsRectangle.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsRectangleSelect.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsRectangleSelect.bmp deleted file mode 100644 index 1d4975beedb..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsRectangleSelect.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsRoundedRectangle.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsRoundedRectangle.bmp deleted file mode 100644 index 1c360f0be4f..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsRoundedRectangle.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsText.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsText.bmp deleted file mode 100644 index 03943f4fdde..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsText.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/icons/tools/ToolsZoom.bmp b/rosapps/applications/imagesoft/res/icons/tools/ToolsZoom.bmp deleted file mode 100644 index 2662eafa281..00000000000 Binary files a/rosapps/applications/imagesoft/res/icons/tools/ToolsZoom.bmp and /dev/null differ diff --git a/rosapps/applications/imagesoft/res/imagesoft.ico b/rosapps/applications/imagesoft/res/imagesoft.ico deleted file mode 100644 index 7f0af5194c2..00000000000 Binary files a/rosapps/applications/imagesoft/res/imagesoft.ico and /dev/null differ diff --git a/rosapps/applications/imagesoft/resource.h b/rosapps/applications/imagesoft/resource.h deleted file mode 100644 index 43baef251f9..00000000000 --- a/rosapps/applications/imagesoft/resource.h +++ /dev/null @@ -1,297 +0,0 @@ -#define IDC_STATIC -1 - -/* Main Windows */ -#define IDC_TOOLBAR 10 -#define IDC_STATUSBAR 11 -#define IDC_MAIN_MDI 12 -/* these need to be kept consecutive */ -#define IDS_FLT_TOOLS 20 -#define IDS_FLT_COLORS 21 -#define IDS_FLT_HISTORY 22 - -/* Program icon */ -#define IDI_IMAGESOFTICON 50 - -/* Menus */ -#define IDR_MAINMENU 102 -#define IDR_POPUP 103 - -/* COMMANDS */ -/* main */ -#define ID_NEW 2000 -#define ID_OPEN 2001 -#define ID_CLOSE 2002 -#define ID_CLOSEALL 2003 -#define ID_SAVE 2004 -#define ID_SAVEAS 2005 -#define ID_PRINTPRE 2006 -#define ID_PRINT 2007 -#define ID_PROP 2008 -#define ID_CUT 2009 -#define ID_COPY 2010 -#define ID_PASTE 2011 -#define ID_PASTENEWIMAGE 2012 -#define ID_UNDO 2013 -#define ID_REDO 2014 -#define ID_SELALL 2015 -#define ID_EXIT 2016 -#define ID_EDITCOLOURS 2017 -#define ID_TOOLS 2018 -#define ID_COLOR 2019 -#define ID_HISTORY 2020 -#define ID_STATUSBAR 2021 -#define ID_BLANK 2022 - -#define ID_BACK 2025 -#define ID_FORWARD 2026 -#define ID_DELETE 2027 - -/* text */ -#define ID_BOLD 2030 -#define ID_ITALIC 2031 -#define ID_ULINE 2032 -#define ID_TXTLEFT 2033 -#define ID_TXTCENTER 2034 -#define ID_TXTRIGHT 2035 -#define ID_TXTFONTNAME 2036 -#define ID_TXTFONTSIZE 2037 - -/* tools */ -#define ID_CLONESTAMP 2050 -#define ID_COLORPICKER 2051 -#define ID_ECLIPSE 2052 -#define ID_ECLIPSESEL 2053 -#define ID_ERASER 2054 -#define ID_FREEFORM 2055 -#define ID_LASOO 2056 -#define ID_LINE 2057 -#define ID_MAGICWAND 2058 -#define ID_MOVE 2059 -#define ID_MOVESEL 2060 -#define ID_PAINTBRUSH 2061 -#define ID_PAINTBUCKET 2062 -#define ID_PENCIL 2063 -#define ID_RECOLORING 2064 -#define ID_RECTANGLE 2065 -#define ID_RECTSEL 2066 -#define ID_ROUNDRECT 2067 -#define ID_TEXT 2068 -#define ID_ZOOM 2069 - -/* Adjust */ -#define ID_BRIGHTNESS 2100 -#define ID_CONTRAST 2101 -#define ID_BLACKANDWHITE 2102 -#define ID_INVERTCOLORS 2103 -#define ID_BLUR 2104 -#define ID_SHARPEN 2105 - -#define ID_ABOUT 2400 - -#define ID_REFRESH 3000 -#define ID_HELP 3001 -#define ID_WINDOW_TILE_HORZ 3002 -#define ID_WINDOW_TILE_VERT 3003 -#define ID_WINDOW_CASCADE 3004 -#define ID_WINDOW_NEXT 3005 -#define ID_WINDOW_ARRANGE 3006 - -/* menu hints */ -#define IDS_HINT_BLANK 20000 -#define IDS_HINT_NEW 20001 -#define IDS_HINT_OPEN 20002 -#define IDS_HINT_CLOSE 21006 -#define IDS_HINT_CLOSEALL 21007 -#define IDS_HINT_SAVE 20003 -#define IDS_HINT_SAVEAS 20004 -#define IDS_HINT_PRINT 20005 -#define IDS_HINT_PRINTPRE 20006 -#define IDS_HINT_PROP 20007 -#define IDS_HINT_EXIT 20008 - -#define IDS_HINT_TOOLS 20020 -#define IDS_HINT_COLORS 20021 -#define IDS_HINT_HISTORY 20022 -#define IDS_HINT_STATUS 20023 - -#define IDS_HINT_CASCADE 21009 -#define IDS_HINT_TILE_HORZ 21010 -#define IDS_HINT_TILE_VERT 21011 -#define IDS_HINT_ARRANGE 21012 -#define IDS_HINT_NEXT 21013 - -/* system menu hints */ -#define IDS_HINT_SYS_RESTORE 21001 -#define IDS_HINT_SYS_MOVE 21002 -#define IDS_HINT_SYS_SIZE 21003 -#define IDS_HINT_SYS_MINIMIZE 21004 -#define IDS_HINT_SYS_MAXIMIZE 21005 -#define IDS_HINT_SYS_CLOSE 21006 - - -/* Toolbar button bitmaps. - * These must be numbered consecutively - * See loop in InitImageList (misc.c) - */ -#define IDB_MAINNEWICON 10000 -#define IDB_MAINOPENICON 10001 -#define IDB_MAINSAVEICON 10002 -#define IDB_MAINPRINTICON 10003 -#define IDB_MAINPRINTPREICON 10004 -#define IDB_MAINCUTICON 10005 -#define IDB_MAINCOPYICON 10006 -#define IDB_MAINPASTEICON 10007 -#define IDB_MAINUNDOICON 10008 -#define IDB_MAINREDOICON 10009 - -#define IDB_TEXTBOLD 10020 -#define IDB_TEXTITALIC 10021 -#define IDB_TEXTULINE 10022 -#define IDB_TEXTLEFT 10023 -#define IDB_TEXTCENTER 10024 -#define IDB_TEXTRIGHT 10025 - -#define IDB_TOOLSRECTSEL 10030 -#define IDB_TOOLSMOVESEL 10031 -#define IDB_TOOLSLASOO 10032 -#define IDB_TOOLSMOVE 10033 -#define IDB_TOOLSECLIPSESEL 10034 -#define IDB_TOOLSZOOM 10035 -#define IDB_TOOLSMAGICWAND 10036 -#define IDB_TOOLSTEXT 10037 -#define IDB_TOOLSPAINTBRUSH 10038 -#define IDB_TOOLSERASER 10039 -#define IDB_TOOLSPENCIL 10040 -#define IDB_TOOLSCOLORPICKER 10041 -#define IDB_TOOLSCLONESTAMP 10042 -#define IDB_TOOLSRECOLORING 10043 -#define IDB_TOOLSPAINTBUCKET 10044 -#define IDB_TOOLSLINE 10045 -#define IDB_TOOLSRECTANGLE 10046 -#define IDB_TOOLSROUNDRECT 10047 -#define IDB_TOOLSECLIPSE 10048 -#define IDB_TOOLSFREEFORM 10049 - -#define IDB_HISTBACK 10060 -#define IDB_HISTUNDO 10061 -#define IDB_HISTREDO 10062 -#define IDB_HISTFORWARD 10063 -#define IDB_HISTDELETE 10064 - -#define IDB_COLORSMORE 10080 -#define IDB_COLORSLESS 10081 - -/* TOOLBAR BITMAPS */ - -/* standard */ -#define TBICON_NEW 0 -#define TBICON_OPEN 1 -#define TBICON_SAVE 2 -#define TBICON_PRINT 3 -#define TBICON_PRINTPRE 4 -#define TBICON_CUT 5 -#define TBICON_COPY 6 -#define TBICON_PASTE 7 -#define TBICON_UNDO 8 -#define TBICON_REDO 9 -/* text */ -#define TBICON_BOLD 0 -#define TBICON_ITALIC 1 -#define TBICON_ULINE 2 -#define TBICON_TXTLEFT 3 -#define TBICON_TXTCENTER 4 -#define TBICON_TXTRIGHT 5 -/* tools */ -#define TBICON_RECTSEL 0 -#define TBICON_MOVESEL 1 -#define TBICON_LASOO 2 -#define TBICON_MOVE 3 -#define TBICON_ECLIPSESEL 4 -#define TBICON_ZOOM 5 -#define TBICON_MAGICWAND 6 -#define TBICON_TEXT 7 -#define TBICON_PAINTBRUSH 8 -#define TBICON_ERASER 9 -#define TBICON_PENCIL 10 -#define TBICON_COLORPICKER 11 -#define TBICON_CLONESTAMP 12 -#define TBICON_RECOLORING 13 -#define TBICON_PAINTBUCKET 14 -#define TBICON_LINE 15 -#define TBICON_RECTANGLE 16 -#define TBICON_ROUNDRECT 17 -#define TBICON_ECLIPSE 18 -#define TBICON_FREEFORM 19 -/* history */ -#define TBICON_BACKSM 0 -#define TBICON_UNDOSM 1 -#define TBICON_REDOSM 2 -#define TBICON_FORWARDSM 3 -#define TBICON_DELETESM 4 - - -/* tooltips */ -#define IDS_TOOLTIP_NEW 6000 -#define IDS_TOOLTIP_OPEN 6001 -#define IDS_TOOLTIP_SAVE 6002 -#define IDS_TOOLTIP_PRINTPRE 6003 -#define IDS_TOOLTIP_PRINT 6004 -#define IDS_TOOLTIP_CUT 6005 -#define IDS_TOOLTIP_COPY 6006 -#define IDS_TOOLTIP_PASTE 6007 -#define IDS_TOOLTIP_UNDO 6008 -#define IDS_TOOLTIP_REDO 6009 - -/* cursors */ -#define IDC_PAINTBRUSHCURSOR 20001 -#define IDC_PAINTBRUSHCURSORMOUSEDOWN 20002 - - -/* DIALOGS */ -#define IDC_PICPREVIEW 2999 - -/* brightness dialog */ -#define IDD_BRIGHTNESS 3000 -#define IDC_BRI_GROUP 3001 -#define IDC_BRI_FULL 3002 -#define IDC_BRI_RED 3003 -#define IDC_BRI_GREEN 3004 -#define IDC_BRI_BLUE 3005 -#define IDC_BRI_EDIT 3006 -#define IDC_BRI_TRACKBAR 3007 - -/* image property dialog */ -#define IDD_IMAGE_PROP 4000 -#define IDC_IMAGE_NAME_EDIT 4001 -#define IDC_IMAGETYPE 4003 -#define IDC_WIDTH_EDIT 4004 -#define IDC_WIDTH_STAT 4005 -#define IDC_HEIGHT_EDIT 4006 -#define IDC_HEIGHT_STAT 4007 -#define IDC_RES_EDIT 4008 -#define IDC_RES_STAT 4009 -#define IDC_UNIT 4010 -#define IDC_IMAGE_SIZE 4011 -#define IDS_IMAGE_MONOCHROME 4100 -#define IDS_IMAGE_GREYSCALE 4101 -#define IDS_IMAGE_PALETTE 4102 -#define IDS_IMAGE_TRUECOLOR 4103 -#define IDS_UNIT_CM 4104 -#define IDS_UNIT_INCHES 4105 -#define IDS_UNIT_PIXELS 4106 -#define IDS_UNIT_DOTSCM 4107 -#define IDS_UNIT_DPI 4108 -#define IDS_UNIT_MB 4109 -#define IDS_UNIT_KB 4110 - -/* about box info */ -#define IDD_ABOUTBOX 4200 -#define IDC_LICENSE_EDIT 4201 -#define IDS_APPNAME 4202 -#define IDS_VERSION 4203 -#define IDS_LICENSE 4204 -#define IDS_READY 42050 -#define IDS_TOOLBAR_STANDARD 4206 -#define IDS_TOOLBAR_TEST 4207 -#define IDS_TOOLBAR_TEXT 4205 -#define IDS_IMAGE_NAME 4209 diff --git a/rosapps/applications/imagesoft/rsrc.rc b/rosapps/applications/imagesoft/rsrc.rc deleted file mode 100644 index e7b3a382145..00000000000 --- a/rosapps/applications/imagesoft/rsrc.rc +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include "resource.h" - -/* include localised resources */ -// UTF-8 -#pragma code_page(65001) -#ifdef LANGUAGE_BG_BG - #include "lang/bg-BG.rc" -#endif -#ifdef LANGUAGE_EN_GB - #include "lang/en-GB.rc" -#endif -#ifdef LANGUAGE_EN_US - #include "lang/en-US.rc" -#endif -#ifdef LANGUAGE_ES_ES - #include "lang/es-ES.rc" -#endif -#ifdef LANGUAGE_FR_FR - #include "lang/fr-FR.rc" -#endif -#ifdef LANGUAGE_ID_ID - #include "lang/id-ID.rc" -#endif -#ifdef LANGUAGE_IT_IT - #include "lang/it-IT.rc" -#endif -#ifdef LANGUAGE_NO_NO - #include "lang/no-NO.rc" -#endif -#ifdef LANGUAGE_PL_PL - #include "lang/pl-PL.rc" -#endif -#ifdef LANGUAGE_RU_RU - #include "lang/ru-RU.rc" -#endif -#ifdef LANGUAGE_SK_SK - #include "lang/sk-SK.rc" -#endif -#ifdef LANGUAGE_TH_TH - #include "lang/th-TH.rc" -#endif -#ifdef LANGUAGE_UK_UA - #include "lang/uk-UA.rc" -#endif diff --git a/rosapps/applications/imagesoft/tooldock.c b/rosapps/applications/imagesoft/tooldock.c deleted file mode 100644 index 84c513b27a4..00000000000 --- a/rosapps/applications/imagesoft/tooldock.c +++ /dev/null @@ -1,1138 +0,0 @@ -#include - -static const TCHAR szToolDockWndClass[] = TEXT("ImageSoftToolDockWndClass"); - -typedef struct _TOOLDOCKWND_INIT -{ - PTOOLBAR_DOCKS TbDocks; - PDOCKBAR_ITEM Item; -} TOOLDOCKWND_INIT, *PTOOLDOCKWND_INIT; - -static UINT -TbdCalculateInsertIndex(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position, - POINT pt) -{ - RECT rcRebar; - UINT Ret = 0; - - GetWindowRect(TbDocks->hRebar[Position], - &rcRebar); - - switch (Position) - { - case TOP_DOCK: - case BOTTOM_DOCK: - if (pt.y > rcRebar.top + ((rcRebar.bottom - rcRebar.top) / 2)) - Ret = (UINT)-1; - break; - - case LEFT_DOCK: - case RIGHT_DOCK: - if (pt.x > rcRebar.left + ((rcRebar.right - rcRebar.left) / 2)) - Ret = (UINT)-1; - break; - - default: - break; - } - - return Ret; -} - -INT -TbdAdjustUpdateClientRect(PTOOLBAR_DOCKS TbDocks, - PRECT rcClient) -{ - INT i, DocksVisible = 0; - - for (i = 0; i < DOCKS_COUNT; i++) - { - if (TbDocks->hRebar[i] != NULL) - { - DocksVisible++; - } - } - - if (DocksVisible != 0) - { - rcClient->top += TbDocks->rcRebar[TOP_DOCK].bottom; - rcClient->left += TbDocks->rcRebar[LEFT_DOCK].right; - rcClient->right -= TbDocks->rcRebar[RIGHT_DOCK].right; - rcClient->bottom -= TbDocks->rcRebar[BOTTOM_DOCK].bottom; - } - - TbDocks->rcClient = *rcClient; - - return DocksVisible; -} - -HDWP -TbdDeferDocks(HDWP hWinPosInfo, - PTOOLBAR_DOCKS TbDocks) -{ - LONG cx, cy; - HDWP hRet = hWinPosInfo; - - cx = TbDocks->rcClient.right - TbDocks->rcClient.left; - cy = TbDocks->rcClient.bottom - TbDocks->rcClient.top; - - /* Top dock */ - if (TbDocks->hRebar[TOP_DOCK] != NULL) - { - hRet = DeferWindowPos(hRet, - TbDocks->hRebar[TOP_DOCK], - NULL, - TbDocks->rcClient.left - TbDocks->rcRebar[LEFT_DOCK].right, - TbDocks->rcClient.top - TbDocks->rcRebar[TOP_DOCK].bottom, - cx + TbDocks->rcRebar[LEFT_DOCK].right + TbDocks->rcRebar[RIGHT_DOCK].right, - TbDocks->rcRebar[TOP_DOCK].bottom, - SWP_NOZORDER); - if (hRet == NULL) - return NULL; - } - - /* Left dock */ - if (TbDocks->hRebar[LEFT_DOCK] != NULL) - { - hRet = DeferWindowPos(hRet, - TbDocks->hRebar[LEFT_DOCK], - NULL, - TbDocks->rcClient.left - TbDocks->rcRebar[LEFT_DOCK].right, - TbDocks->rcClient.top, - TbDocks->rcRebar[LEFT_DOCK].right, - cy, - SWP_NOZORDER); - if (hRet == NULL) - return NULL; - } - - /* Right dock */ - if (TbDocks->hRebar[RIGHT_DOCK] != NULL) - { - hRet = DeferWindowPos(hRet, - TbDocks->hRebar[RIGHT_DOCK], - NULL, - TbDocks->rcClient.right, - TbDocks->rcClient.top, - TbDocks->rcRebar[RIGHT_DOCK].right, - cy, - SWP_NOZORDER); - if (hRet == NULL) - return NULL; - } - - /* Bottom dock */ - if (TbDocks->hRebar[BOTTOM_DOCK] != NULL) - { - hRet = DeferWindowPos(hRet, - TbDocks->hRebar[BOTTOM_DOCK], - NULL, - TbDocks->rcClient.left - TbDocks->rcRebar[LEFT_DOCK].right, - TbDocks->rcClient.bottom, - cx + TbDocks->rcRebar[LEFT_DOCK].right + TbDocks->rcRebar[RIGHT_DOCK].right, - TbDocks->rcRebar[BOTTOM_DOCK].bottom, - SWP_NOZORDER); - if (hRet == NULL) - return NULL; - } - - return hRet; -} - -static PDOCKBAR_ITEM -TbnDockbarItemFromBandId(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position, - UINT uBand) -{ - REBARBANDINFO rbi = {0}; - - rbi.cbSize = sizeof(rbi); - rbi.fMask = RBBIM_LPARAM; - - if (SendMessage(TbDocks->hRebar[Position], - RB_GETBANDINFO, - (WPARAM)uBand, - (LPARAM)&rbi)) - { - return (PDOCKBAR_ITEM)rbi.lParam; - } - - return NULL; -} - -static VOID -TbnRebarChangeSize(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position) -{ - LONG cRebar; - - TbDocks->rcRebar[Position].left = 0; - TbDocks->rcRebar[Position].top = 0; - - cRebar = (LONG)SendMessage(TbDocks->hRebar[Position], - RB_GETBARHEIGHT, - 0, - 0); - - switch (Position) - { - case TOP_DOCK: - case BOTTOM_DOCK: - TbDocks->rcRebar[Position].bottom = cRebar; - break; - - case LEFT_DOCK: - case RIGHT_DOCK: - TbDocks->rcRebar[Position].right = cRebar; - break; - - default: - break; - } - - if (TbDocks->ParentResize != NULL) - { - RECT rcClient = {0}; - - GetClientRect(TbDocks->hParent, - &rcClient); - - TbDocks->ParentResize(TbDocks->Context, - rcClient.right - rcClient.left, - rcClient.bottom - rcClient.top); - } -} - -static VOID -TbnRebarChevronPushed(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position, - LPNMREBARCHEVRON lpnm) -{ - PDOCKBAR_ITEM Item; - - Item = TbnDockbarItemFromBandId(TbDocks, - Position, - lpnm->uBand); - - if (Item != NULL && Item->Callbacks->ChevronPushed) - { - Item->Callbacks->ChevronPushed(TbDocks, - &Item->DockBar, - Item->Context, - Item->hWndClient, - lpnm); - } -} - -static LRESULT -TbnRebarBeginDrag(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position, - LPNMREBAR lpnmrb) -{ - PDOCKBAR_ITEM Item; - - Item = TbnDockbarItemFromBandId(TbDocks, - Position, - lpnmrb->uBand); - - if (Item != NULL) - { - TbDocks->Dragging = Item; - TbDocks->DraggingBandId = lpnmrb->wID; - return FALSE; - } - - return TRUE; -} - -static VOID -TbnRebarEndDrag(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position, - LPNMREBAR lpnmrb) -{ - PDOCKBAR_ITEM Item; - - Item = TbnDockbarItemFromBandId(TbDocks, - Position, - lpnmrb->uBand); - - if (Item != NULL) - { - /* Nothing to do */ - } -} - -BOOL -TbdDockBarIdFromClientWindow(PTOOLBAR_DOCKS TbDocks, - HWND hWndClient, - UINT *Id) -{ - PDOCKBAR_ITEM Item; - BOOL Ret = FALSE; - - Item = TbDocks->Items; - while (Item != NULL) - { - if (Item->hWndClient == hWndClient) - { - *Id = Item->DockBar.BarId; - Ret = TRUE; - break; - } - - Item = Item->Next; - } - - return Ret; -} - -BOOL -TbdHandleNotifications(PTOOLBAR_DOCKS TbDocks, - LPNMHDR pnmh, - LRESULT *Result) -{ - BOOL Handled = FALSE; - - if (pnmh->hwndFrom != NULL) - { - DOCK_POSITION Position; - - for (Position = TOP_DOCK; Position < NO_DOCK; Position++) - { - if (pnmh->hwndFrom == TbDocks->hRebar[Position]) - { - switch (pnmh->code) - { - case RBN_HEIGHTCHANGE: - { - TbnRebarChangeSize(TbDocks, - Position); - break; - } - - case RBN_BEGINDRAG: - { - *Result = TbnRebarBeginDrag(TbDocks, - Position, - (LPNMREBAR)pnmh); - break; - } - - case RBN_ENDDRAG: - { - TbnRebarEndDrag(TbDocks, - Position, - (LPNMREBAR)pnmh); - break; - } - - case RBN_CHEVRONPUSHED: - { - TbnRebarChevronPushed(TbDocks, - Position, - (LPNMREBARCHEVRON)pnmh); - break; - } - } - - Handled = TRUE; - break; - } - } - } - - return Handled; -} - -static BOOL -TbdCreateToolbarWnd(PTOOLBAR_DOCKS TbDocks, - PDOCKBAR_ITEM Item, - DOCK_POSITION PrevPosition, - UINT PrevBandIndex, - LPREBARBANDINFO rbi, - POINT pt, - HWND hRebar, - UINT uBand, - BOOL Drag) -{ - LPCTSTR lpCaption = NULL; - TOOLDOCKWND_INIT Init; - HWND hToolbar; - - Init.TbDocks = TbDocks; - Init.Item = Item; - - if (rbi->fMask & RBBIM_TEXT) - { - lpCaption = rbi->lpText; - } - - Item->Callbacks->DockBand(TbDocks, - &Item->DockBar, - Item->Context, - PrevPosition, - NO_DOCK, - rbi); - - if (rbi->fMask & RBBIM_CHILD) - Item->hWndClient = rbi->hwndChild; - else - Item->hWndClient = NULL; - - - if ((rbi->fMask & (RBBIM_CHILDSIZE | RBBIM_SIZE)) == (RBBIM_CHILDSIZE | RBBIM_SIZE)) - { - RECT rcWnd; - static const DWORD dwStyle = WS_POPUPWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_DLGFRAME; - static const DWORD dwExStyle = WS_EX_TOOLWINDOW; - - rcWnd.left = pt.x - GetSystemMetrics(SM_CXFIXEDFRAME) - (GetSystemMetrics(SM_CYSMCAPTION) / 2); - rcWnd.top = pt.y + GetSystemMetrics(SM_CYFIXEDFRAME) + (GetSystemMetrics(SM_CYSMCAPTION) / 2); - rcWnd.right = rcWnd.left + rbi->cx; - rcWnd.bottom = rcWnd.top + rbi->cyMinChild; - - if (AdjustWindowRectEx(&rcWnd, - dwStyle, - FALSE, - dwExStyle)) - { - hToolbar = CreateWindowEx(dwExStyle, - szToolDockWndClass, - lpCaption, - dwStyle, - rcWnd.left, - rcWnd.top, - rcWnd.right - rcWnd.left, - rcWnd.bottom - rcWnd.top, - TbDocks->hParent, - NULL, - hInstance, - &Init); - if (hToolbar != NULL) - { - RECT rcClient; - - if (uBand != (UINT)-1) - { - /* delete the band before showing the client window, - otherwise deleting the band will cause the client - window to be hidden, regardless of whether the band - was hidden before being deleted or not */ - SendMessage(hRebar, - RB_DELETEBAND, - (WPARAM)uBand, - 0); - } - - if (Item->hWndClient != NULL) - { - GetClientRect(hToolbar, - &rcClient); - - SetParent(Item->hWndClient, - hToolbar); - - SetWindowPos(Item->hWndClient, - NULL, - 0, - 0, - rcClient.right, - rcClient.bottom, - SWP_NOZORDER); - - SetWindowPos(Item->hWndClient, - HWND_TOP, - 0, - 0, - 0, - 0, - SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); - } - - SetWindowPos(hToolbar, - HWND_TOP, - 0, - 0, - 0, - 0, - SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); - - if (Drag) - { - SetCursor(LoadCursor(NULL, IDC_ARROW)); - SendMessage(hToolbar, - WM_NCLBUTTONDOWN, - HTCAPTION, - MAKELPARAM(pt.x, - pt.y)); - } - - return TRUE; - } - } - } - - return FALSE; -} - -static BOOL -TdbInsertToolbar(PTOOLBAR_DOCKS TbDocks, - PDOCKBAR_ITEM Item, - DOCK_POSITION Position) -{ - LPTSTR lpCaption = NULL; - REBARBANDINFO rbi = {0}; - BOOL Ret = FALSE; - - rbi.cbSize = sizeof(rbi); - rbi.fMask = RBBIM_ID | RBBIM_STYLE | RBBIM_LPARAM; - rbi.wID = Item->DockBar.BarId; - rbi.fStyle = RBBS_GRIPPERALWAYS; - rbi.lParam = (LPARAM)Item; - - if (Item->DockBar.DisplayTextId != 0) - { - if (AllocAndLoadString(&lpCaption, - hInstance, - Item->DockBar.DisplayTextId)) - { - rbi.fMask |= RBBIM_TEXT; - rbi.lpText = lpCaption; - } - } - - if (Item->hWndClient != NULL) - { - rbi.fMask |= RBBIM_CHILD; - rbi.hwndChild = Item->hWndClient; - } - - switch (Item->DockBar.Position) - { - case NO_DOCK: - { - POINT pt = {0}; - - /* FIXME - calculate size */ - Ret = TbdCreateToolbarWnd(TbDocks, - Item, - Item->DockBar.Position, - (UINT)-1, - &rbi, - pt, - NULL, - (UINT)-1, - FALSE); - break; - } - - default: - { - UINT Index = -1; - BOOL AddBand = TRUE; - - if (Item->Callbacks->InsertBand != NULL) - { - AddBand = Item->Callbacks->InsertBand(TbDocks, - &Item->DockBar, - Item->Context, - &Index, - &rbi); - } - - if (AddBand) - { - Item->Callbacks->DockBand(TbDocks, - &Item->DockBar, - Item->Context, - NO_DOCK, - Item->DockBar.Position, - &rbi); - - if (rbi.fMask & RBBIM_CHILD) - Item->hWndClient = rbi.hwndChild; - else - Item->hWndClient = NULL; - - Ret = SendMessage(TbDocks->hRebar[Position], - RB_INSERTBAND, - (WPARAM)Index, - (LPARAM)&rbi) != 0; - if (Ret) - { - Item->PrevDock = Position; - Item->PrevBandIndex = (UINT)SendMessage(TbDocks->hRebar[Position], - RB_IDTOINDEX, - (WPARAM)Item->DockBar.BarId, - 0); - } - } - - break; - } - } - - if (lpCaption != NULL) - { - LocalFree((HLOCAL)lpCaption); - } - - return Ret; -} - -BOOL -TbdAddToolbar(PTOOLBAR_DOCKS TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - const DOCKBAR_ITEM_CALLBACKS *Callbacks) -{ - PDOCKBAR_ITEM Item; - HWND hRebar; - - hRebar = TbDocks->hRebar[Dockbar->Position]; - if (hRebar != NULL) - { - Item = HeapAlloc(ProcessHeap, - 0, - sizeof(DOCKBAR_ITEM)); - if (Item != NULL) - { - /* Initialize the item */ - Item->DockBar = *Dockbar; - Item->Context = Context; - Item->hWndTool = NULL; - Item->PrevDock = Dockbar->Position; - - Item->Callbacks = Callbacks; - - /* Create the client control */ - if (Callbacks->CreateClient != NULL && - !Callbacks->CreateClient(TbDocks, - &Item->DockBar, - Context, - hRebar, - &Item->hWndClient)) - { - HeapFree(ProcessHeap, - 0, - Item); - - return FALSE; - } - - /* Insert the item into the list */ - Item->Next = TbDocks->Items; - TbDocks->Items = Item; - - return TdbInsertToolbar(TbDocks, - Item, - Dockbar->Position); - } - } - - return FALSE; -} - -#define GWLP_TBDOCKS 0 -#define GWLP_DOCKITEM (GWLP_TBDOCKS + sizeof(PTOOLBAR_DOCKS)) -#define TD_EXTRA_BYTES (GWLP_DOCKITEM + sizeof(PDOCKBAR_ITEM)) - -static LRESULT CALLBACK -ToolDockWndProc(HWND hwnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - PTOOLBAR_DOCKS TbDocks; - PDOCKBAR_ITEM Item; - LRESULT Ret = 0; - - /* Get the window context */ - TbDocks = (PTOOLBAR_DOCKS)GetWindowLongPtr(hwnd, - GWLP_TBDOCKS); - Item = (PDOCKBAR_ITEM)GetWindowLongPtr(hwnd, - GWLP_DOCKITEM); - - if ((TbDocks == NULL || Item == NULL) && uMsg != WM_CREATE) - { - goto HandleDefaultMessage; - } - - switch (uMsg) - { - case WM_NCACTIVATE: - { - TbdHandleActivation(TbDocks, - hwnd, - &wParam, - &lParam); - goto HandleDefaultMessage; - } - - case WM_CREATE: - { - TbDocks = ((PTOOLDOCKWND_INIT)(((LPCREATESTRUCT)lParam)->lpCreateParams))->TbDocks; - Item = ((PTOOLDOCKWND_INIT)(((LPCREATESTRUCT)lParam)->lpCreateParams))->Item; - Item->hWndTool = hwnd; - - SetWindowLongPtr(hwnd, - GWLP_TBDOCKS, - (LONG_PTR)TbDocks); - SetWindowLongPtr(hwnd, - GWLP_DOCKITEM, - (LONG_PTR)Item); - - Ret = TRUE; - break; - } - - case WM_DESTROY: - { - Item->hWndTool = NULL; - - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - 0); - SetWindowLongPtr(hwnd, - GWLP_DOCKITEM, - 0); - break; - } - - default: - { -HandleDefaultMessage: - Ret = DefWindowProc(hwnd, - uMsg, - wParam, - lParam); - break; - } - } - - return Ret; -} - -static LRESULT CALLBACK -RebarSubclassProc(HWND hWnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam, - UINT_PTR uIdSubclass, - DWORD_PTR dwRefData) -{ - LRESULT Ret; - - Ret = DefSubclassProc(hWnd, - uMsg, - wParam, - lParam); - - if (uMsg == WM_MOUSEMOVE && (wParam & MK_LBUTTON)) - { - DOCK_POSITION Position, DragTo = NO_DOCK; - RECT rcClient; - POINT pt; - PTOOLBAR_DOCKS TbDocks = (PTOOLBAR_DOCKS)dwRefData; - SIZE szTearOff; - - szTearOff.cx = GetSystemMetrics(SM_CXCURSOR); - szTearOff.cy = GetSystemMetrics(SM_CYCURSOR); - - /* - * Check if we're dragging and if it's time to remove the band - */ - if (TbDocks->Dragging != NULL && GetCapture() == hWnd) - { - GetClientRect(hWnd, - &rcClient); - InflateRect(&rcClient, - szTearOff.cx, - szTearOff.cy); - - pt.x = GET_X_LPARAM(lParam); - pt.y = GET_Y_LPARAM(lParam); - - if (!PtInRect(&rcClient, - pt)) - { - REBARBANDINFO rbi; - UINT uBand; - RECT rc; - - /* Save all rebar band information, don't query RBBIM_HEADERSIZE because it - seems to cause problems with toolbars*/ - rbi.cbSize = sizeof(rbi); - rbi.fMask = RBBIM_BACKGROUND | RBBIM_CHILD | RBBIM_CHILDSIZE | RBBIM_COLORS | - RBBIM_IDEALSIZE | RBBIM_ID | RBBIM_IMAGE | RBBIM_LPARAM | RBBIM_SIZE | - RBBIM_STYLE | RBBIM_TEXT; - rbi.lpText = TbDocks->szTempText; - rbi.cch = sizeof(TbDocks->szTempText); - - uBand = (UINT)SendMessage(hWnd, - RB_IDTOINDEX, - (WPARAM)TbDocks->DraggingBandId, - 0); - - if (uBand != (UINT)-1 && - SendMessage(hWnd, - RB_GETBANDINFO, - (WPARAM)uBand, - (LPARAM)&rbi)) - { - MapWindowPoints(hWnd, - HWND_DESKTOP, - &pt, - 1); - - /* Check if the user is trying to drag it into another dock */ - for (Position = TOP_DOCK; Position < NO_DOCK; Position++) - { - if (TbDocks->hRebar[Position] != NULL && - TbDocks->hRebar[Position] != hWnd && - GetWindowRect(TbDocks->hRebar[Position], - &rc)) - { - InflateRect(&rc, - szTearOff.cx, - szTearOff.cy); - - if (PtInRect(&rc, - pt)) - { - DragTo = Position; - break; - } - } - } - - /* Get the current dock */ - for (Position = TOP_DOCK; Position < NO_DOCK; Position++) - { - if (TbDocks->hRebar[Position] == hWnd) - { - break; - } - } - - ReleaseCapture(); - - if (SendMessage(hWnd, - RB_SHOWBAND, - (WPARAM)uBand, - FALSE)) - { - /* Change the parent to the new rebar control */ - if (TbDocks->Dragging->hWndClient != NULL) - { - SetWindowPos(TbDocks->Dragging->hWndClient, - NULL, - 0, - 0, - 0, - 0, - SWP_HIDEWINDOW | SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER); - - SetParent(TbDocks->Dragging->hWndClient, - TbDocks->hRebar[DragTo]); - - SetWindowPos(TbDocks->Dragging->hWndClient, - NULL, - 0, - 0, - 0, - 0, - SWP_NOSIZE | SWP_NOZORDER); - } - - if (DragTo == NO_DOCK) - { - if (!TbdCreateToolbarWnd(TbDocks, - TbDocks->Dragging, - Position, - uBand, - &rbi, - pt, - hWnd, - uBand, - TRUE)) - { - goto MoveFailed; - } - } - else - { - BOOL Moved = FALSE; - - /* Remove the band from the current rebar control */ - if (SendMessage(hWnd, - RB_DELETEBAND, - (WPARAM)uBand, - 0)) - { - UINT uIndex; - - /* Calculate where to insert the new bar */ - uIndex = TbdCalculateInsertIndex(TbDocks, - DragTo, - pt); - - SetActiveWindow(TbDocks->hRebar[DragTo]); - - TbDocks->Dragging->Callbacks->DockBand(TbDocks, - &TbDocks->Dragging->DockBar, - TbDocks->Dragging->Context, - Position, - DragTo, - &rbi); - - if (rbi.fMask & RBBIM_CHILD) - TbDocks->Dragging->hWndClient = rbi.hwndChild; - else - TbDocks->Dragging->hWndClient = NULL; - - /* Insert the toolbar into the new rebar */ - rbi.fMask |= RBBIM_STYLE; - rbi.fStyle |= RBBS_HIDDEN; - if (SendMessage(TbDocks->hRebar[DragTo], - RB_INSERTBAND, - (WPARAM)uIndex, - (LPARAM)&rbi)) - { - uBand = (UINT)SendMessage(TbDocks->hRebar[DragTo], - RB_IDTOINDEX, - (WPARAM)TbDocks->DraggingBandId, - 0); - - SendMessage(TbDocks->hRebar[DragTo], - RB_SHOWBAND, - (WPARAM)uBand, - TRUE); - - /* Simulate a mouse click to continue dragging */ - if (uBand != (UINT)-1 && - TbDocks->Dragging->hWndClient != NULL && - GetWindowRect(TbDocks->Dragging->hWndClient, - &rc)) - { - switch (DragTo) - { - case LEFT_DOCK: - case RIGHT_DOCK: - pt.x = rc.left + ((rc.right - rc.left) / 2); - pt.y = rc.top - 1; - break; - - default: - pt.x = rc.left - 1; - pt.y = rc.top + ((rc.bottom - rc.top) / 2); - break; - } - - MapWindowPoints(HWND_DESKTOP, - TbDocks->hRebar[DragTo], - &pt, - 1); - - SetCursor(LoadCursor(NULL, IDC_SIZEALL)); - - SendMessage(TbDocks->hRebar[DragTo], - WM_LBUTTONDOWN, - wParam, - MAKELPARAM(pt.x, - pt.y)); - - Moved = TRUE; - } - } - } - - if (!Moved) - { -MoveFailed: - TbDocks->Dragging = NULL; - - SendMessage(hWnd, - RB_SHOWBAND, - (WPARAM)uBand, - TRUE); - } - } - } - } - } - } - } - - return Ret; -} - -VOID -TbdHandleEnabling(PTOOLBAR_DOCKS TbDocks, - HWND hWnd, - BOOL Enable) -{ - PDOCKBAR_ITEM Item; - - Item = TbDocks->Items; - while (Item != NULL) - { - if (Item->hWndTool != NULL && - Item->hWndTool != hWnd) - { - EnableWindow(Item->hWndTool, - Enable); - } - Item = Item->Next; - } -} - -VOID -TbdHandleActivation(PTOOLBAR_DOCKS TbDocks, - HWND hWnd, - WPARAM *wParam, - LPARAM *lParam) -{ - BOOL SynchronizeSiblings = TRUE; - BOOL KeepActive = *(BOOL*)wParam; - HWND hWndActivate = *(HWND*)lParam; - PDOCKBAR_ITEM Item; - - Item = TbDocks->Items; - while (Item != NULL) - { - if (Item->hWndTool != NULL && - Item->hWndTool == hWndActivate) - { - KeepActive = TRUE; - SynchronizeSiblings = FALSE; - break; - } - Item = Item->Next; - } - - if (hWndActivate != (HWND)-1) - { - if (SynchronizeSiblings) - { - Item = TbDocks->Items; - while (Item != NULL) - { - if (Item->hWndTool != NULL && - Item->hWndTool != hWnd && - Item->hWndTool != hWndActivate) - { - SendMessage(Item->hWndTool, - WM_NCACTIVATE, - (WPARAM)KeepActive, - (LPARAM)-1); - } - Item = Item->Next; - } - } - } - else - *lParam = 0; - - *wParam = (WPARAM)KeepActive; -} - -VOID -TbdShowFloatingToolbars(PTOOLBAR_DOCKS TbDocks, - BOOL Show) -{ - PDOCKBAR_ITEM Item; - - Item = TbDocks->Items; - while (Item != NULL) - { - if (Item->hWndTool != NULL) - { - if ((Show && !IsWindowVisible(Item->hWndTool)) || - (!Show && IsWindowVisible(Item->hWndTool))) - { - ShowWindow(Item->hWndTool, - (Show ? SW_SHOW : SW_HIDE)); - } - } - Item = Item->Next; - } -} - -VOID -TbdInitializeDocks(PTOOLBAR_DOCKS TbDocks, - HWND hWndParent, - PVOID Context, - PDOCKBAR_PARENTRESIZE ParentResizeProc) -{ - DWORD rbStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | - CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY | CCS_NOMOVEX | - RBS_VARHEIGHT | RBS_AUTOSIZE; - - DOCK_POSITION Position; - - TbDocks->hParent = hWndParent; - TbDocks->Context = Context; - TbDocks->ParentResize = ParentResizeProc; - - for (Position = TOP_DOCK; Position < NO_DOCK; Position++) - { - switch (Position) - { - case LEFT_DOCK: - case RIGHT_DOCK: - rbStyle |= CCS_VERT; - break; - default: - rbStyle &= ~CCS_VERT; - break; - } - - TbDocks->hRebar[Position] = CreateWindowEx(WS_EX_TOOLWINDOW, - REBARCLASSNAME, - NULL, - rbStyle, - 0, - 0, - 0, - 0, - TbDocks->hParent, - NULL, - hInstance, - NULL); - - if (TbDocks->hRebar[Position] != NULL) - { - SetWindowSubclass(TbDocks->hRebar[Position], - RebarSubclassProc, - 1, - (DWORD_PTR)TbDocks); - } - } -} - -BOOL -TbdInitImpl(VOID) -{ - WNDCLASSEX wc = {0}; - - wc.cbSize = sizeof(WNDCLASSEX); - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = ToolDockWndProc; - wc.cbWndExtra = TD_EXTRA_BYTES; - wc.hInstance = hInstance; - wc.hCursor = LoadCursor(NULL, - IDC_ARROW); - wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); - wc.lpszClassName = szToolDockWndClass; - - return RegisterClassEx(&wc) != (ATOM)0; -} - -VOID -TbdUninitImpl(VOID) -{ - UnregisterClass(szToolDockWndClass, - hInstance); -} diff --git a/rosapps/applications/imagesoft/tooldock.h b/rosapps/applications/imagesoft/tooldock.h deleted file mode 100644 index 9cf4221f22f..00000000000 --- a/rosapps/applications/imagesoft/tooldock.h +++ /dev/null @@ -1,115 +0,0 @@ - -typedef enum -{ - TOP_DOCK = 0, - LEFT_DOCK, - RIGHT_DOCK, - BOTTOM_DOCK, - NO_DOCK -} DOCK_POSITION; - -typedef struct _DOCKBAR -{ - UINT BarId; - LPCTSTR lpName; - UINT DisplayTextId; - DOCK_POSITION Position; -} DOCKBAR, *PDOCKBAR; - -struct _TOOLBAR_DOCKS; - -typedef BOOL (CALLBACK *PDOCKBAR_CREATECLIENT)(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hParent, - HWND *hwnd); -typedef BOOL (CALLBACK *PDOCKBAR_DESTROYCLIENT)(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hwnd); -typedef BOOL (CALLBACK *PDOCKBAR_INSERTBAND)(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - UINT *Index, - LPREBARBANDINFO rbi); -typedef VOID (CALLBACK *PDOCKBAR_DOCKBAND)(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - DOCK_POSITION DockFrom, - DOCK_POSITION DockTo, - LPREBARBANDINFO rbi); -typedef VOID (CALLBACK *PDOCKBAR_CHEVRONPUSHED)(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hwndChild, - LPNMREBARCHEVRON lpnm); - -typedef struct _DOCKBAR_ITEM_CALLBACKS -{ - PDOCKBAR_CREATECLIENT CreateClient; - PDOCKBAR_DESTROYCLIENT DestroyClient; - PDOCKBAR_INSERTBAND InsertBand; - PDOCKBAR_DOCKBAND DockBand; - PDOCKBAR_CHEVRONPUSHED ChevronPushed; -} DOCKBAR_ITEM_CALLBACKS, *PDOCKBAR_ITEM_CALLBACKS; - -typedef struct _DOCKBAR_ITEM -{ - struct _DOCKBAR_ITEM *Next; - DOCKBAR DockBar; - PVOID Context; - HWND hWndTool; - HWND hWndClient; - DOCK_POSITION PrevDock; - UINT PrevBandIndex; - const DOCKBAR_ITEM_CALLBACKS *Callbacks; -} DOCKBAR_ITEM, *PDOCKBAR_ITEM; - -typedef VOID (CALLBACK *PDOCKBAR_PARENTRESIZE)(PVOID Context, - LONG cx, - LONG cy); - -#define DOCKS_COUNT 4 -typedef struct _TOOLBAR_DOCKS -{ - HWND hParent; - PVOID Context; - HWND hRebar[DOCKS_COUNT]; - RECT rcRebar[DOCKS_COUNT]; - RECT rcClient; - PDOCKBAR_ITEM Items; - PDOCKBAR_PARENTRESIZE ParentResize; - PDOCKBAR_ITEM Dragging; - UINT DraggingBandId; - TCHAR szTempText[255]; -} TOOLBAR_DOCKS, *PTOOLBAR_DOCKS; - -VOID TbdInitializeDocks(PTOOLBAR_DOCKS TbDocks, - HWND hWndParent, - PVOID Context, - PDOCKBAR_PARENTRESIZE ParentResizeProc); -INT TbdAdjustUpdateClientRect(PTOOLBAR_DOCKS TbDocks, - PRECT rcClient); -HDWP TbdDeferDocks(HDWP hWinPosInfo, - PTOOLBAR_DOCKS TbDocks); -BOOL TbdAddToolbar(PTOOLBAR_DOCKS TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - const DOCKBAR_ITEM_CALLBACKS *DockbarCallbacks); -BOOL TbdDockBarIdFromClientWindow(PTOOLBAR_DOCKS TbDocks, - HWND hWndClient, - UINT *Id); -BOOL TbdHandleNotifications(PTOOLBAR_DOCKS TbDocks, - LPNMHDR pnmh, - LRESULT *Result); -VOID TbdHandleEnabling(PTOOLBAR_DOCKS TbDocks, - HWND hWnd, - BOOL Enable); -VOID TbdHandleActivation(PTOOLBAR_DOCKS TbDocks, - HWND hWnd, - WPARAM *wParam, - LPARAM *lParam); -VOID TbdShowFloatingToolbars(PTOOLBAR_DOCKS TbDocks, - BOOL Show); -BOOL TbdInitImpl(VOID); -VOID TbdUninitImpl(VOID); diff --git a/rosapps/applications/net/dhcpd/AUTHORS b/rosapps/applications/net/dhcpd/AUTHORS deleted file mode 100644 index 6102d1615e6..00000000000 --- a/rosapps/applications/net/dhcpd/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -Carlos Duclos Vergara, -Pablo Bleyer Kocik, -Manuel Jander, diff --git a/rosapps/applications/net/dhcpd/COPYING b/rosapps/applications/net/dhcpd/COPYING deleted file mode 100644 index 3f061137320..00000000000 --- a/rosapps/applications/net/dhcpd/COPYING +++ /dev/null @@ -1,222 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS diff --git a/rosapps/applications/net/dhcpd/ChangeLog b/rosapps/applications/net/dhcpd/ChangeLog deleted file mode 100644 index 5c1dd5ed88d..00000000000 --- a/rosapps/applications/net/dhcpd/ChangeLog +++ /dev/null @@ -1,18 +0,0 @@ -2002020701: -- I rewrite completely the code to get an ip. -- I delete threads beacuse of some deadlocks. -- I add _finally_ support for static ip host. - -2002013002: -- After some web surf and some hack there is (i hope so!) a windows port, please BE CAREFULL because i have no way to test it. - -2002013001: -- After a lot of work, this is finally working and now is being ported to auto GNU tools. -- I will add the routines to compile it under MSW boxes with winsock. - -20020121: -- Well, we have a working version with configuration file and with reduced functionality. If you find bugs, please report them. This version is the last and i'm accepting patches for this version. -20020117: -- Finally there is an alpha release. From now i will start logging what i'm doing. -This alpha release was compiled in a SuSE Linux 7.2 box, i've tested it with my embedded device -and it works. I've tested with one MS Windows 98 workstations and it doesn't work. diff --git a/rosapps/applications/net/dhcpd/INSTALL b/rosapps/applications/net/dhcpd/INSTALL deleted file mode 100644 index f12c2e64949..00000000000 --- a/rosapps/applications/net/dhcpd/INSTALL +++ /dev/null @@ -1,188 +0,0 @@ -NOTE: -->*nix Systems: use the configure script and everything should work without problems. -->MSW: FIRST you need the mingw compiler (i think cygwin must work too, but you will have to modify the configure.in and change MINGW32 for CYGWIN) -Then, run configure and pray. If it finds everything it needs (the only thing missed may be the pthreads library) is ready to compile. - - -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. diff --git a/rosapps/applications/net/dhcpd/Makefile.am b/rosapps/applications/net/dhcpd/Makefile.am deleted file mode 100644 index af437a64d6d..00000000000 --- a/rosapps/applications/net/dhcpd/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = src diff --git a/rosapps/applications/net/dhcpd/Makefile.in b/rosapps/applications/net/dhcpd/Makefile.in deleted file mode 100644 index b3d2e5465b5..00000000000 --- a/rosapps/applications/net/dhcpd/Makefile.in +++ /dev/null @@ -1,352 +0,0 @@ -# Makefile.in generated automatically by automake 1.4 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = . - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -CC = @CC@ -MAKEINFO = @MAKEINFO@ -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SUBDIRS = src -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -DIST_COMMON = README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \ -Makefile.am Makefile.in NEWS TODO aclocal.m4 config.h.in config.h.top \ -configure configure.in install-sh missing mkinstalldirs - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) - cd $(top_builddir) \ - && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status - -$(ACLOCAL_M4): configure.in - cd $(srcdir) && $(ACLOCAL) - -config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck -$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) - cd $(srcdir) && $(AUTOCONF) - -config.h: stamp-h - @if test ! -f $@; then \ - rm -f stamp-h; \ - $(MAKE) stamp-h; \ - else :; fi -stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES= CONFIG_HEADERS=config.h \ - $(SHELL) ./config.status - @echo timestamp > stamp-h 2> /dev/null -$(srcdir)/config.h.in: $(srcdir)/stamp-h.in - @if test ! -f $@; then \ - rm -f $(srcdir)/stamp-h.in; \ - $(MAKE) $(srcdir)/stamp-h.in; \ - else :; fi -$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) config.h.top - cd $(top_srcdir) && $(AUTOHEADER) - @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null - -mostlyclean-hdr: - -clean-hdr: - -distclean-hdr: - -rm -f config.h - -maintainer-clean-hdr: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" = "." && dot_seen=yes; \ - done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - -rm -rf $(distdir) - GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz - mkdir $(distdir)/=build - mkdir $(distdir)/=inst - dc_install_base=`cd $(distdir)/=inst && pwd`; \ - cd $(distdir)/=build \ - && ../configure --srcdir=.. --prefix=$$dc_install_base \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) dist - -rm -rf $(distdir) - @banner="$(distdir).tar.gz is ready for distribution"; \ - dashes=`echo "$$banner" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - echo "$$dashes" -dist: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -dist-all: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -distdir: $(DISTFILES) - -rm -rf $(distdir) - mkdir $(distdir) - -chmod 777 $(distdir) - here=`cd $(top_builddir) && pwd`; \ - top_distdir=`cd $(distdir) && pwd`; \ - distdir=`cd $(distdir) && pwd`; \ - cd $(top_srcdir) \ - && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ - || exit 1; \ - fi; \ - done -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive -check-am: all-am -check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -all-recursive-am: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -install-exec-am: -install-exec: install-exec-recursive - -install-data-am: -install-data: install-data-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: -uninstall: uninstall-recursive -all-am: Makefile config.h -all-redirect: all-recursive-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic - -mostlyclean: mostlyclean-recursive - -clean-am: clean-hdr clean-tags clean-generic mostlyclean-am - -clean: clean-recursive - -distclean-am: distclean-hdr distclean-tags distclean-generic clean-am - -distclean: distclean-recursive - -rm -f config.status - -maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ - maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-recursive - -rm -f config.status - -.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ -install-data-recursive uninstall-data-recursive install-exec-recursive \ -uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ -all-recursive check-recursive installcheck-recursive info-recursive \ -dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ -install-exec-am install-exec install-data-am install-data install-am \ -install uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/rosapps/applications/net/dhcpd/NEWS b/rosapps/applications/net/dhcpd/NEWS deleted file mode 100644 index fb68d6ca6f2..00000000000 --- a/rosapps/applications/net/dhcpd/NEWS +++ /dev/null @@ -1,2 +0,0 @@ -20020130: -Finally autoconf and company are working. Now i will work on windows port. diff --git a/rosapps/applications/net/dhcpd/README b/rosapps/applications/net/dhcpd/README deleted file mode 100644 index 5ecb78ff7ed..00000000000 --- a/rosapps/applications/net/dhcpd/README +++ /dev/null @@ -1,19 +0,0 @@ -Disclaimer: -This project is released under GPL, see COPYING to get an idea of what this means. - -Building: -To build this you need a C compiler (i used gcc 2.95-3), and some luck. -Just type make, i'm working on autoconf and automake but is not finished yet. - -Running: -For some reason in some circumstances you have to add the following to your route table: -route add -host 255.255.255.255 dev eth0 -That is needed to allow the distribution of packets to the address 255.255.255.255 (as said in RFC 1531). - -NOTE FOR WINDOWS USERS: -I don't know how to add that route in MSW systems, looku yourself for help on that. - - -Comments: -Well, comments are always welcome. It doesn't matter if you want to tell me that i suck. If you find some bug and want to report it please do it to my email at: -carlos@embedded.cl with subject [ecl-dhcp]. If the circumstances allow that i will create a mail list. diff --git a/rosapps/applications/net/dhcpd/README.ROS b/rosapps/applications/net/dhcpd/README.ROS deleted file mode 100644 index 779f20e988d..00000000000 --- a/rosapps/applications/net/dhcpd/README.ROS +++ /dev/null @@ -1,6 +0,0 @@ -Embedded DHCP Server for ReactOS - Carlos Manuel Duclos Vergara - -TODO: -Make it a real Windows Service -Use the registry rather than a config file -Fix a few races and check to see how it can scale. \ No newline at end of file diff --git a/rosapps/applications/net/dhcpd/TODO b/rosapps/applications/net/dhcpd/TODO deleted file mode 100644 index b29327ffdac..00000000000 --- a/rosapps/applications/net/dhcpd/TODO +++ /dev/null @@ -1,8 +0,0 @@ -There are two kind of things, the essentials and the optionals. - -Optionals: -- Implement a way to bypass the IP stack and send packets directly. -- Sort and beauty the code, maybe rewritting in C++. - -Essentials: -- Compile it and test it in MS Windows platforms(work in progress). diff --git a/rosapps/applications/net/dhcpd/aclocal.m4 b/rosapps/applications/net/dhcpd/aclocal.m4 deleted file mode 100644 index 9f8add8f0d9..00000000000 --- a/rosapps/applications/net/dhcpd/aclocal.m4 +++ /dev/null @@ -1,104 +0,0 @@ -dnl aclocal.m4 generated automatically by aclocal 1.4 - -dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without -dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A -dnl PARTICULAR PURPOSE. - -# Do all the work for Automake. This macro actually does too much -- -# some checks are only needed if your package does certain things. -# But this isn't really a big deal. - -# serial 1 - -dnl Usage: -dnl AM_INIT_AUTOMAKE(package,version, [no-define]) - -AC_DEFUN(AM_INIT_AUTOMAKE, -[AC_REQUIRE([AC_PROG_INSTALL]) -PACKAGE=[$1] -AC_SUBST(PACKAGE) -VERSION=[$2] -AC_SUBST(VERSION) -dnl test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi -ifelse([$3],, -AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) -AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) -AC_REQUIRE([AM_SANITY_CHECK]) -AC_REQUIRE([AC_ARG_PROGRAM]) -dnl FIXME This is truly gross. -missing_dir=`cd $ac_aux_dir && pwd` -AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) -AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) -AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) -AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) -AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) -AC_REQUIRE([AC_PROG_MAKE_SET])]) - -# -# Check to make sure that the build environment is sane. -# - -AC_DEFUN(AM_SANITY_CHECK, -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftestfile -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "[$]*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "[$]*" != "X $srcdir/configure conftestfile" \ - && test "[$]*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "[$]2" = conftestfile - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -rm -f conftest* -AC_MSG_RESULT(yes)]) - -dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) -dnl The program must properly implement --version. -AC_DEFUN(AM_MISSING_PROG, -[AC_MSG_CHECKING(for working $2) -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if ($2 --version) < /dev/null > /dev/null 2>&1; then - $1=$2 - AC_MSG_RESULT(found) -else - $1="$3/missing $2" - AC_MSG_RESULT(missing) -fi -AC_SUBST($1)]) - diff --git a/rosapps/applications/net/dhcpd/config.cache b/rosapps/applications/net/dhcpd/config.cache deleted file mode 100644 index 665b5b63b1e..00000000000 --- a/rosapps/applications/net/dhcpd/config.cache +++ /dev/null @@ -1,26 +0,0 @@ -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -ac_cv_func_socket=${ac_cv_func_socket=yes} -ac_cv_header_stdc=${ac_cv_header_stdc=yes} -ac_cv_header_unistd_h=${ac_cv_header_unistd_h=yes} -ac_cv_mingw32=${ac_cv_mingw32=no} -ac_cv_path_install=${ac_cv_path_install='$/usr/bin/install -c'} -ac_cv_prog_CC=${ac_cv_prog_CC=gcc} -ac_cv_prog_CPP=${ac_cv_prog_CPP='$gcc -E'} -ac_cv_prog_cc_cross=${ac_cv_prog_cc_cross=no} -ac_cv_prog_cc_g=${ac_cv_prog_cc_g=yes} -ac_cv_prog_cc_works=${ac_cv_prog_cc_works=yes} -ac_cv_prog_gcc=${ac_cv_prog_gcc=yes} -ac_cv_prog_make_make_set=${ac_cv_prog_make_make_set=yes} diff --git a/rosapps/applications/net/dhcpd/config.h b/rosapps/applications/net/dhcpd/config.h deleted file mode 100644 index a78c0d4614b..00000000000 --- a/rosapps/applications/net/dhcpd/config.h +++ /dev/null @@ -1,25 +0,0 @@ -/* config.h. Generated automatically by configure. */ -/* config.h.in. Generated automatically from configure.in by autoheader. */ -/* #undef MINGW32 */ - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define if you have the socket function. */ -#define HAVE_SOCKET 1 - -/* Define if you have the header file. */ -/* #undef HAVE_PTHREAD_H */ - -/* Define if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define if you have the pthread library (-lpthread). */ -/* #undef HAVE_LIBPTHREAD */ - -/* Name of package */ -#define PACKAGE "dhcptool" - -/* Version number of package */ -#define VERSION "0.0.1-alpha" - diff --git a/rosapps/applications/net/dhcpd/config.h.in b/rosapps/applications/net/dhcpd/config.h.in deleted file mode 100644 index 3dd9ff0f414..00000000000 --- a/rosapps/applications/net/dhcpd/config.h.in +++ /dev/null @@ -1,24 +0,0 @@ -/* config.h.in. Generated automatically from configure.in by autoheader. */ -#undef MINGW32 - -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define if you have the socket function. */ -#undef HAVE_SOCKET - -/* Define if you have the header file. */ -#undef HAVE_PTHREAD_H - -/* Define if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define if you have the pthread library (-lpthread). */ -#undef HAVE_LIBPTHREAD - -/* Name of package */ -#undef PACKAGE - -/* Version number of package */ -#undef VERSION - diff --git a/rosapps/applications/net/dhcpd/config.h.top b/rosapps/applications/net/dhcpd/config.h.top deleted file mode 100644 index a5c8595f4db..00000000000 --- a/rosapps/applications/net/dhcpd/config.h.top +++ /dev/null @@ -1 +0,0 @@ -#undef MINGW32 diff --git a/rosapps/applications/net/dhcpd/config.log b/rosapps/applications/net/dhcpd/config.log deleted file mode 100644 index 7f48064b6eb..00000000000 --- a/rosapps/applications/net/dhcpd/config.log +++ /dev/null @@ -1,22 +0,0 @@ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -configure:557: checking for a BSD compatible install -configure:610: checking whether build environment is sane -configure:667: checking whether make sets ${MAKE} -configure:713: checking for working aclocal -configure:726: checking for working autoconf -configure:739: checking for working automake -configure:752: checking for working autoheader -configure:765: checking for working makeinfo -configure:783: checking for gcc -configure:896: checking whether the C compiler (gcc ) works -configure:912: gcc -o conftest conftest.c 1>&5 -configure:938: checking whether the C compiler (gcc ) is a cross-compiler -configure:943: checking whether we are using GNU C -configure:971: checking whether gcc accepts -g -configure:1005: checking how to run the C preprocessor -configure:1085: checking for ANSI C header files -configure:1192: checking for unistd.h -configure:1230: checking for mingw32 environment -configure:1262: checking for socket diff --git a/rosapps/applications/net/dhcpd/config.status b/rosapps/applications/net/dhcpd/config.status deleted file mode 100644 index 2592d8efae5..00000000000 --- a/rosapps/applications/net/dhcpd/config.status +++ /dev/null @@ -1,251 +0,0 @@ -#! /bin/sh -# Generated automatically by configure. -# Run this file to recreate the current configuration. -# This directory was configured as follows, -# on host steven: -# -# ./configure -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: ./config.status [--recheck] [--version] [--help]" -for ac_option -do - case "$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion" - exec ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "./config.status generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "$ac_cs_usage"; exit 0 ;; - *) echo "$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=. -ac_given_INSTALL="$/usr/bin/install -c" - -trap 'rm -fr Makefile src/Makefile config.h conftest*; exit 1' 1 2 15 - -# Protect against being on the right side of a sed subst in config.status. -sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\&%]/\\&/g; - s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF -/^[ ]*VPATH[ ]*=[^:]*$/d - -s%@SHELL@%/bin/sh%g -s%@CFLAGS@%-g -O2%g -s%@CPPFLAGS@%%g -s%@CXXFLAGS@%%g -s%@FFLAGS@%%g -s%@DEFS@%-DHAVE_CONFIG_H%g -s%@LDFLAGS@%%g -s%@LIBS@%%g -s%@exec_prefix@%${prefix}%g -s%@prefix@%/usr/local%g -s%@program_transform_name@%s,x,x,%g -s%@bindir@%${exec_prefix}/bin%g -s%@sbindir@%${exec_prefix}/sbin%g -s%@libexecdir@%${exec_prefix}/libexec%g -s%@datadir@%${prefix}/share%g -s%@sysconfdir@%${prefix}/etc%g -s%@sharedstatedir@%${prefix}/com%g -s%@localstatedir@%${prefix}/var%g -s%@libdir@%${exec_prefix}/lib%g -s%@includedir@%${prefix}/include%g -s%@oldincludedir@%/usr/include%g -s%@infodir@%${prefix}/info%g -s%@mandir@%${prefix}/man%g -s%@INSTALL_PROGRAM@%${INSTALL}%g -s%@INSTALL_SCRIPT@%${INSTALL_PROGRAM}%g -s%@INSTALL_DATA@%${INSTALL} -m 644%g -s%@PACKAGE@%dhcptool%g -s%@VERSION@%0.0.1-alpha%g -s%@ACLOCAL@%aclocal%g -s%@AUTOCONF@%autoconf%g -s%@AUTOMAKE@%automake%g -s%@AUTOHEADER@%autoheader%g -s%@MAKEINFO@%makeinfo%g -s%@SET_MAKE@%%g -s%@CC@%gcc%g -s%@CPP@%$gcc -E%g - -CEOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi - -CONFIG_FILES=${CONFIG_FILES-"Makefile src/Makefile"} -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' -ac_dC='\3' -ac_dD='%g' -# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". -ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='\([ ]\)%\1#\2define\3' -ac_uC=' ' -ac_uD='\4%g' -# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_eB='$%\1#\2define\3' -ac_eC=' ' -ac_eD='%g' - -if test "${CONFIG_HEADERS+set}" != set; then - CONFIG_HEADERS="config.h" -fi -for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - echo creating $ac_file - - rm -f conftest.frag conftest.in conftest.out - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - cat $ac_file_inputs > conftest.in - - cat > conftest.frag < conftest.out - rm -f conftest.in - mv conftest.out conftest.in - - cat > conftest.frag < conftest.out - rm -f conftest.in - mv conftest.out conftest.in - - rm -f conftest.frag conftest.h - echo "/* $ac_file. Generated automatically by configure. */" > conftest.h - cat conftest.in >> conftest.h - rm -f conftest.in - if cmp -s $ac_file conftest.h 2>/dev/null; then - echo "$ac_file is unchanged" - rm -f conftest.h - else - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - fi - rm -f $ac_file - mv conftest.h $ac_file - fi -fi; done - - - -exit 0 diff --git a/rosapps/applications/net/dhcpd/configure b/rosapps/applications/net/dhcpd/configure deleted file mode 100644 index e2f1eca4a6d..00000000000 --- a/rosapps/applications/net/dhcpd/configure +++ /dev/null @@ -1,1678 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=src/main.c - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:557: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:610: checking whether build environment is sane" >&5 -# Just in case -sleep 1 -echo timestamp > conftestfile -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "$*" != "X $srcdir/configure conftestfile" \ - && test "$*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { echo "configure: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" 1>&2; exit 1; } - fi - - test "$2" = conftestfile - ) -then - # Ok. - : -else - { echo "configure: error: newly created file is older than distributed files! -Check your system clock" 1>&2; exit 1; } -fi -rm -f conftest* -echo "$ac_t""yes" 1>&6 -if test "$program_transform_name" = s,x,x,; then - program_transform_name= -else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF_SED > conftestsed -s,\\,\\\\,g; s,\$,$$,g -EOF_SED - program_transform_name="`echo $program_transform_name|sed -f conftestsed`" - rm -f conftestsed -fi -test "$program_prefix" != NONE && - program_transform_name="s,^,${program_prefix},; $program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" - -# sed with no file args requires a program. -test "$program_transform_name" = "" && program_transform_name="s,x,x," - -echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:667: checking whether ${MAKE-make} sets \${MAKE}" >&5 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftestmake <<\EOF -all: - @echo 'ac_maketemp="${MAKE}"' -EOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftestmake -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$ac_t""yes" 1>&6 - SET_MAKE= -else - echo "$ac_t""no" 1>&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - - -PACKAGE=dhcptool - -VERSION=0.0.1-alpha - -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } -fi -cat >> confdefs.h <> confdefs.h <&6 -echo "configure:713: checking for working aclocal" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (aclocal --version) < /dev/null > /dev/null 2>&1; then - ACLOCAL=aclocal - echo "$ac_t""found" 1>&6 -else - ACLOCAL="$missing_dir/missing aclocal" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:726: checking for working autoconf" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (autoconf --version) < /dev/null > /dev/null 2>&1; then - AUTOCONF=autoconf - echo "$ac_t""found" 1>&6 -else - AUTOCONF="$missing_dir/missing autoconf" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:739: checking for working automake" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (automake --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake - echo "$ac_t""found" 1>&6 -else - AUTOMAKE="$missing_dir/missing automake" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:752: checking for working autoheader" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (autoheader --version) < /dev/null > /dev/null 2>&1; then - AUTOHEADER=autoheader - echo "$ac_t""found" 1>&6 -else - AUTOHEADER="$missing_dir/missing autoheader" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:765: checking for working makeinfo" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (makeinfo --version) < /dev/null > /dev/null 2>&1; then - MAKEINFO=makeinfo - echo "$ac_t""found" 1>&6 -else - MAKEINFO="$missing_dir/missing makeinfo" - echo "$ac_t""missing" 1>&6 -fi - - - - -# Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:783: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:813: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - if test -z "$CC"; then - case "`uname -s`" in - *win32* | *WIN32*) - # Extract the first word of "cl", so it can be a program name with args. -set dummy cl; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:864: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="cl" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - ;; - esac - fi - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:896: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -cat > conftest.$ac_ext << EOF - -#line 907 "configure" -#include "confdefs.h" - -main(){return(0);} -EOF -if { (eval echo configure:912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - ac_cv_prog_cc_works=yes - # If we can't run a trivial program, we are probably using a cross compiler. - if (./conftest; exit) 2>/dev/null; then - ac_cv_prog_cc_cross=no - else - ac_cv_prog_cc_cross=yes - fi -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_prog_cc_works=no -fi -rm -fr conftest* -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 -if test $ac_cv_prog_cc_works = no; then - { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } -fi -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:938: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 -echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 -cross_compiling=$ac_cv_prog_cc_cross - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:943: checking whether we are using GNU C" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -else - GCC= -fi - -ac_test_CFLAGS="${CFLAGS+set}" -ac_save_CFLAGS="$CFLAGS" -CFLAGS= -echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:971: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi - - - -echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1005: checking how to run the C preprocessor" >&5 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then -if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - # This must be in double quotes, not single quotes, because CPP may get - # substituted into the Makefile and "${CC-cc}" will confuse make. - CPP="${CC-cc} -E" - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1026: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -E -traditional-cpp" - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1043: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -nologo -E" - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1060: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP=/lib/cpp -fi -rm -f conftest* -fi -rm -f conftest* -fi -rm -f conftest* - ac_cv_prog_CPP="$CPP" -fi - CPP="$ac_cv_prog_CPP" -else - ac_cv_prog_CPP="$CPP" -fi -echo "$ac_t""$CPP" 1>&6 - -echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1085: checking for ANSI C header files" >&5 -if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -#include -#include -#include -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1098: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - rm -rf conftest* - ac_cv_header_stdc=yes -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -if test "$cross_compiling" = yes; then - : -else - cat > conftest.$ac_ext < -#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int main () { int i; for (i = 0; i < 256; i++) -if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); -exit (0); } - -EOF -if { (eval echo configure:1165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null -then - : -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - ac_cv_header_stdc=no -fi -rm -fr conftest* -fi - -fi -fi - -echo "$ac_t""$ac_cv_header_stdc" 1>&6 -if test $ac_cv_header_stdc = yes; then - cat >> confdefs.h <<\EOF -#define STDC_HEADERS 1 -EOF - -fi - -for ac_hdr in unistd.h -do -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1192: checking for $ac_hdr" >&5 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1202: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` - cat >> confdefs.h <&6 -fi -done - - -echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:1230: checking for mingw32 environment" >&5 -if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_mingw32=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_mingw32=no -fi -rm -f conftest* -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_mingw32" 1>&6 -MINGW32= -test "$ac_cv_mingw32" = yes && MINGW32=yes - -for ac_func in socket -do -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1262: checking for $ac_func" >&5 -if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -$ac_func(); -#endif - -; return 0; } -EOF -if { (eval echo configure:1290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_$ac_func=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_$ac_func=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi -done - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -DEFS=-DHAVE_CONFIG_H - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile src/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@PACKAGE@%$PACKAGE%g -s%@VERSION@%$VERSION%g -s%@ACLOCAL@%$ACLOCAL%g -s%@AUTOCONF@%$AUTOCONF%g -s%@AUTOMAKE@%$AUTOMAKE%g -s%@AUTOHEADER@%$AUTOHEADER%g -s%@MAKEINFO@%$MAKEINFO%g -s%@SET_MAKE@%$SET_MAKE%g -s%@CC@%$CC%g -s%@CPP@%$CPP%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' -ac_dC='\3' -ac_dD='%g' -# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". -ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='\([ ]\)%\1#\2define\3' -ac_uC=' ' -ac_uD='\4%g' -# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_eB='$%\1#\2define\3' -ac_eC=' ' -ac_eD='%g' - -if test "${CONFIG_HEADERS+set}" != set; then -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -fi -for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - echo creating $ac_file - - rm -f conftest.frag conftest.in conftest.out - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - cat $ac_file_inputs > conftest.in - -EOF - -# Transform confdefs.h into a sed script conftest.vals that substitutes -# the proper values into config.h.in to produce config.h. And first: -# Protect against being on the right side of a sed subst in config.status. -# Protect against being in an unquoted here document in config.status. -rm -f conftest.vals -cat > conftest.hdr <<\EOF -s/[\\&%]/\\&/g -s%[\\$`]%\\&%g -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp -s%ac_d%ac_u%gp -s%ac_u%ac_e%gp -EOF -sed -n -f conftest.hdr confdefs.h > conftest.vals -rm -f conftest.hdr - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >> conftest.vals <<\EOF -s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% -EOF - -# Break up conftest.vals because some shells have a limit on -# the size of here documents, and old seds have small limits too. - -rm -f conftest.tail -while : -do - ac_lines=`grep -c . conftest.vals` - # grep -c gives empty output for an empty file on some AIX systems. - if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi - # Write a limited-size here document to conftest.frag. - echo ' cat > conftest.frag <> $CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS - echo 'CEOF - sed -f conftest.frag conftest.in > conftest.out - rm -f conftest.in - mv conftest.out conftest.in -' >> $CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail - rm -f conftest.vals - mv conftest.tail conftest.vals -done -rm -f conftest.vals - -cat >> $CONFIG_STATUS <<\EOF - rm -f conftest.frag conftest.h - echo "/* $ac_file. Generated automatically by configure. */" > conftest.h - cat conftest.in >> conftest.h - rm -f conftest.in - if cmp -s $ac_file conftest.h 2>/dev/null; then - echo "$ac_file is unchanged" - rm -f conftest.h - else - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - fi - rm -f $ac_file - mv conftest.h $ac_file - fi -fi; done - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/rosapps/applications/net/dhcpd/configure.in b/rosapps/applications/net/dhcpd/configure.in deleted file mode 100644 index 3effb635278..00000000000 --- a/rosapps/applications/net/dhcpd/configure.in +++ /dev/null @@ -1,24 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(src/main.c) - -AM_INIT_AUTOMAKE( dhcptool, 0.0.1-alpha) - -AC_CONFIG_HEADER(config.h) -dnl Checks for programs. -AC_PROG_CC - -dnl Checks for libraries. -dnl AC_CHECK_LIB(pthread, pthread_create, ,exit) - -dnl Checks for header files. -AC_HEADER_STDC -AC_CHECK_HEADERS(unistd.h) -dnl AC_CHECK_HEADERS(pthread.h) - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_MINGW32 - -dnl Checks for library functions. -AC_CHECK_FUNCS(socket) - -AC_OUTPUT(Makefile src/Makefile) diff --git a/rosapps/applications/net/dhcpd/dhcpd.rc b/rosapps/applications/net/dhcpd/dhcpd.rc deleted file mode 100644 index 69b439b3884..00000000000 --- a/rosapps/applications/net/dhcpd/dhcpd.rc +++ /dev/null @@ -1,6 +0,0 @@ -/* $Id$ */ - -#define REACTOS_STR_FILE_DESCRIPTION "DHCP server service\0" -#define REACTOS_STR_INTERNAL_NAME "dhcpd\0" -#define REACTOS_STR_ORIGINAL_FILENAME "dhcpd.exe\0" -#include diff --git a/rosapps/applications/net/dhcpd/install-sh b/rosapps/applications/net/dhcpd/install-sh deleted file mode 100644 index e9de23842dc..00000000000 --- a/rosapps/applications/net/dhcpd/install-sh +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/rosapps/applications/net/dhcpd/missing b/rosapps/applications/net/dhcpd/missing deleted file mode 100644 index 7789652e877..00000000000 --- a/rosapps/applications/net/dhcpd/missing +++ /dev/null @@ -1,190 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997 Free Software Foundation, Inc. -# Franc,ois Pinard , 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing - GNU libit 0.0" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`configure.in'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`configure.in'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`configure.in'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - makeinfo) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff --git a/rosapps/applications/net/dhcpd/mkinstalldirs b/rosapps/applications/net/dhcpd/mkinstalldirs deleted file mode 100644 index 6b3b5fc5d4d..00000000000 --- a/rosapps/applications/net/dhcpd/mkinstalldirs +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -# $Id$ - -errstatus=0 - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# mkinstalldirs ends here diff --git a/rosapps/applications/net/dhcpd/samples/dhcp.conf b/rosapps/applications/net/dhcpd/samples/dhcp.conf deleted file mode 100644 index 9e7a6aec4e2..00000000000 --- a/rosapps/applications/net/dhcpd/samples/dhcp.conf +++ /dev/null @@ -1,8 +0,0 @@ -# DHCP CONFIGURATION, DO NOT ERASE OR MOVE THIS LINE! -subnet 192.168.2.0 -lease 30 -range 2 5 -mask 255.255.255.0 -router 192.168.2.1 -server 192.168.2.1 -# DHCP CONFIGURATION, DO NOT ERASE OR MOVE THIS LINE! diff --git a/rosapps/applications/net/dhcpd/src/Makefile.am b/rosapps/applications/net/dhcpd/src/Makefile.am deleted file mode 100644 index 25d3fbe1e25..00000000000 --- a/rosapps/applications/net/dhcpd/src/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -SUBDIRS = display leases parsing utils -INCLUDES = -Iinclude -CFLAGS = display.o leases.o parser.o utils.o -Wall -bin_PROGRAMS = dhcp -dhcp_SOURCES = main.c -dhcp_OBJS = display.o leases.o parser.o utils.o diff --git a/rosapps/applications/net/dhcpd/src/Makefile.in b/rosapps/applications/net/dhcpd/src/Makefile.in deleted file mode 100644 index e46b8499152..00000000000 --- a/rosapps/applications/net/dhcpd/src/Makefile.in +++ /dev/null @@ -1,388 +0,0 @@ -# Makefile.in generated automatically by automake 1.4 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -CC = @CC@ -MAKEINFO = @MAKEINFO@ -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SUBDIRS = display leases parsing utils -INCLUDES = -Iinclude -CFLAGS = display.o leases.o parser.o utils.o -Wall -bin_PROGRAMS = dhcp -dhcp_SOURCES = main.c -dhcp_OBJS = display.o leases.o parser.o utils.o -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../config.h -CONFIG_CLEAN_FILES = -PROGRAMS = $(bin_PROGRAMS) - - -DEFS = @DEFS@ -I. -I$(srcdir) -I.. -CPPFLAGS = @CPPFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ -dhcp_OBJECTS = main.o -dhcp_LDADD = $(LDADD) -dhcp_DEPENDENCIES = -dhcp_LDFLAGS = -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -DEP_FILES = .deps/main.P -SOURCES = $(dhcp_SOURCES) -OBJECTS = $(dhcp_OBJECTS) - -all: all-redirect -.SUFFIXES: -.SUFFIXES: .S .c .o .s -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -mostlyclean-binPROGRAMS: - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) - -distclean-binPROGRAMS: - -maintainer-clean-binPROGRAMS: - -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(bindir) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - if test -f $$p; then \ - echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ - $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ - else :; fi; \ - done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - list='$(bin_PROGRAMS)'; for p in $$list; do \ - rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ - done - -.s.o: - $(COMPILE) -c $< - -.S.o: - $(COMPILE) -c $< - -mostlyclean-compile: - -rm -f *.o core *.core - -clean-compile: - -distclean-compile: - -rm -f *.tab.c - -maintainer-clean-compile: - -dhcp: $(dhcp_OBJECTS) $(dhcp_DEPENDENCIES) - @rm -f dhcp - $(LINK) $(dhcp_LDFLAGS) $(dhcp_OBJECTS) $(dhcp_LDADD) $(LIBS) - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" = "." && dot_seen=yes; \ - done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = src - -distdir: $(DISTFILES) - here=`cd $(top_builddir) && pwd`; \ - top_distdir=`cd $(top_distdir) && pwd`; \ - distdir=`cd $(distdir) && pwd`; \ - cd $(top_srcdir) \ - && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/Makefile - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ - || exit 1; \ - fi; \ - done - -DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) - --include $(DEP_FILES) - -mostlyclean-depend: - -clean-depend: - -distclean-depend: - -rm -rf .deps - -maintainer-clean-depend: - -%.o: %.c - @echo '$(COMPILE) -c $<'; \ - $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< - @-cp .deps/$(*F).pp .deps/$(*F).P; \ - tr ' ' '\012' < .deps/$(*F).pp \ - | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ - >> .deps/$(*F).P; \ - rm .deps/$(*F).pp - -%.lo: %.c - @echo '$(LTCOMPILE) -c $<'; \ - $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< - @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ - < .deps/$(*F).pp > .deps/$(*F).P; \ - tr ' ' '\012' < .deps/$(*F).pp \ - | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ - >> .deps/$(*F).P; \ - rm -f .deps/$(*F).pp -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive -check-am: all-am -check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -install-exec-am: install-binPROGRAMS -install-exec: install-exec-recursive - -install-data-am: -install-data: install-data-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: uninstall-binPROGRAMS -uninstall: uninstall-recursive -all-am: Makefile $(PROGRAMS) -all-redirect: all-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - $(mkinstalldirs) $(DESTDIR)$(bindir) - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ - mostlyclean-tags mostlyclean-depend mostlyclean-generic - -mostlyclean: mostlyclean-recursive - -clean-am: clean-binPROGRAMS clean-compile clean-tags clean-depend \ - clean-generic mostlyclean-am - -clean: clean-recursive - -distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \ - distclean-depend distclean-generic clean-am - -distclean: distclean-recursive - -maintainer-clean-am: maintainer-clean-binPROGRAMS \ - maintainer-clean-compile maintainer-clean-tags \ - maintainer-clean-depend maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-recursive - -.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ -maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ -mostlyclean-compile distclean-compile clean-compile \ -maintainer-clean-compile install-data-recursive \ -uninstall-data-recursive install-exec-recursive \ -uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ -all-recursive check-recursive installcheck-recursive info-recursive \ -dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir \ -mostlyclean-depend distclean-depend clean-depend \ -maintainer-clean-depend info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/rosapps/applications/net/dhcpd/src/dhcp.conf b/rosapps/applications/net/dhcpd/src/dhcp.conf deleted file mode 100644 index e2e3803721f..00000000000 --- a/rosapps/applications/net/dhcpd/src/dhcp.conf +++ /dev/null @@ -1,9 +0,0 @@ -# DHCP CONFIGURATION, DO NOT ERASE OR MOVE THIS LINE! -subnet 192.168.2.0 -lease 30 -range 2 5 -mask 255.255.255.0 -router 192.168.2.1 -server 192.168.2.1 -host 52:54:40:22:65:BD 192.168.2.200 -# DHCP CONFIGURATION, DO NOT ERASE OR MOVE THIS LINE! diff --git a/rosapps/applications/net/dhcpd/src/display/display.c b/rosapps/applications/net/dhcpd/src/display/display.c deleted file mode 100644 index d2de8a5aa1d..00000000000 --- a/rosapps/applications/net/dhcpd/src/display/display.c +++ /dev/null @@ -1,61 +0,0 @@ -#include -#include -#include -#include - -int display_dhcp_packet( DHCPMESSAGE *dhcpm, DHCPOPTIONS *dhcpo ) -{ - char *mtype; - if( dhcpm == NULL ) - return -1; - - fprintf( stdout, "op: %s\t|htype: %s\t|hlen: %u\t|hops: %u\n", (dhcpm->op == 1)?"BOOTREQUEST":"BOOTREPLY", (dhcpm->htype==1)?"Ethernet 10Mb":"unknown", dhcpm->hlen, dhcpm->hops); - fprintf( stdout, "xid: %u \n", dhcpm->xid ); - fprintf( stdout, "secs: %u\t\t|flags: %u\n", dhcpm->secs, dhcpm->flags ); - fprintf( stdout, "ciaddr: %u.%u.%u.%u \n", (dhcpm->ciaddr >> 24), ((dhcpm->ciaddr>>16)&0xFF), ((dhcpm->ciaddr>>8)&0xFF), ((dhcpm->ciaddr)&0xFF)); - fprintf( stdout, "yiaddr: %u.%u.%u.%u \n", (dhcpm->yiaddr >> 24), ((dhcpm->yiaddr>>16)&0xFF), ((dhcpm->yiaddr>>8)&0xFF), ((dhcpm->yiaddr)&0xFF)); - fprintf( stdout, "siaddr: %u.%u.%u.%u \n", (dhcpm->siaddr >> 24), ((dhcpm->siaddr>>16)&0xFF), ((dhcpm->siaddr>>8)&0xFF), ((dhcpm->siaddr)&0xFF)); - fprintf( stdout, "giaddr: %u.%u.%u.%u \n", (dhcpm->giaddr >> 24), ((dhcpm->giaddr>>16)&0xFF), ((dhcpm->giaddr>>8)&0xFF), ((dhcpm->giaddr)&0xFF)); - fprintf( stdout, "chaddr: %X::%X::%X::%X::%X::%X \n", dhcpm->chaddr[0], dhcpm->chaddr[1], dhcpm->chaddr[2], dhcpm->chaddr[3], dhcpm->chaddr[4], dhcpm->chaddr[5] ); - fprintf( stdout, "sname: %s \n", dhcpm->sname ); - fprintf( stdout, "file: %s \n", dhcpm->file ); - /* options come here */ - switch( dhcpo->type ) - { - case DHCPDISCOVER: - mtype = (char *)malloc( strlen( "DHCPDISCOVER" ) +1); - strcpy( mtype, "DHCPDISCOVER" ); - break; - case DHCPREQUEST: - mtype = (char *)malloc( strlen( "DHCPREQUEST" ) +1); - strcpy( mtype, "DHCPREQUEST" ); - break; - case DHCPACK: - mtype = (char *)malloc( strlen( "DHCPACK" ) +1); - strcpy( mtype, "DHCPACK" ); - break; - case DHCPNAK: - mtype = (char *)malloc( strlen( "DHCPNAK" ) +1); - strcpy( mtype, "DHCPNAK" ); - break; - case DHCPRELEASE: - mtype = (char *)malloc( strlen( "DHCPRELEASE" ) +1); - strcpy( mtype, "DHCPRELEASE" ); - break; - case DHCPDECLINE: - mtype = (char *)malloc( strlen( "DHCPDECLINE" ) +1); - strcpy( mtype, "DHCPDECLINE" ); - break; - case DHCPOFFER: - mtype = (char *)malloc( strlen( "DHCPOFFER" ) +1); - strcpy( mtype, "DHCPOFFER" ); - break; - default: - mtype = (char *)malloc( strlen("Unknown Type") +1); - strcpy( mtype, "Unknown Type" ); - break; - } - fprintf( stdout, "Message Type: %s \n", mtype ); - return 0; -} - diff --git a/rosapps/applications/net/dhcpd/src/include/datatypes.h b/rosapps/applications/net/dhcpd/src/include/datatypes.h deleted file mode 100644 index a99a10d1261..00000000000 --- a/rosapps/applications/net/dhcpd/src/include/datatypes.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef DATATYPES_H -#define DATATYPES_H - -typedef unsigned char u8b; -typedef unsigned short u16b; -typedef unsigned int u32b; - -typedef struct{ - u8b op; - u8b htype; - u8b hlen; - u8b hops; - u32b xid; - u16b secs; - u16b flags; - u32b ciaddr; - u32b yiaddr; - u32b siaddr; - u32b giaddr; - u8b chaddr[16]; - u8b sname[64]; - u8b file[128]; - u8b options[312]; -} DHCPMESSAGE; - -typedef struct{ - u8b type; - u32b r_ip; - u32b r_mask; - u32b r_router; - u32b r_lease; - char *hostname; -} DHCPOPTIONS; - -typedef struct{ - u32b ip; - u32b router; - u32b mask; - u32b lease; - u32b siaddr; -} DHCPLEASE; - -struct _DHCPLIST{ - u8b available; - u32b xid; - u8b chaddr[16]; - u8b type; - u32b ltime; - DHCPLEASE data; - struct _DHCPLIST *next; - struct _DHCPLIST *back; -}; - -typedef struct _DHCPLIST DHCPLIST; - -#endif diff --git a/rosapps/applications/net/dhcpd/src/include/display.h b/rosapps/applications/net/dhcpd/src/include/display.h deleted file mode 100644 index 833ab988ae6..00000000000 --- a/rosapps/applications/net/dhcpd/src/include/display.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef DISPLAY_H -#define DISPLAY_H - -int display_dhcp_packet( DHCPMESSAGE *, DHCPOPTIONS *); - -#endif diff --git a/rosapps/applications/net/dhcpd/src/include/headers.h b/rosapps/applications/net/dhcpd/src/include/headers.h deleted file mode 100644 index e4ca9e7aa68..00000000000 --- a/rosapps/applications/net/dhcpd/src/include/headers.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef HEADERS_H -#define HEADERS_H - -#ifdef __MINGW32__ - -#include -#include -#include - -#else - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif - -#endif diff --git a/rosapps/applications/net/dhcpd/src/include/iputils.h b/rosapps/applications/net/dhcpd/src/include/iputils.h deleted file mode 100644 index 6ab028540a2..00000000000 --- a/rosapps/applications/net/dhcpd/src/include/iputils.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef IPUTILS_H -#define IPUTILS_H - -int split_ip( char *, u8b *, int ); -int get_ip( char *, u32b * ); - -#endif diff --git a/rosapps/applications/net/dhcpd/src/include/leases.h b/rosapps/applications/net/dhcpd/src/include/leases.h deleted file mode 100644 index 577be67b84d..00000000000 --- a/rosapps/applications/net/dhcpd/src/include/leases.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef LEASES_H -#define LEASES_H - -extern DHCPLIST *list; -int find_lease( DHCPLEASE *, u32b, u8b * ); -int init_leases_list(); -int confirm_lease( DHCPLEASE *, u32b ); -int release_lease( DHCPLEASE *, u32b, u8b * ); - -#endif diff --git a/rosapps/applications/net/dhcpd/src/include/lock.h b/rosapps/applications/net/dhcpd/src/include/lock.h deleted file mode 100644 index 6d1e36e2905..00000000000 --- a/rosapps/applications/net/dhcpd/src/include/lock.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef LOCK_H -#define LOCK_H - -extern DHCPLIST *leased_list; - -int check_leased_list(); -static int test_and_set(); -int lock_list(); -int unlock_list(); - -#endif diff --git a/rosapps/applications/net/dhcpd/src/include/macutils.h b/rosapps/applications/net/dhcpd/src/include/macutils.h deleted file mode 100644 index 471c52e9e76..00000000000 --- a/rosapps/applications/net/dhcpd/src/include/macutils.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef MACUTILS_H -#define MACUTILS_H - -int maccmp( u8b *, u8b *); -int maccpy( u8b *, u8b *); - -#endif diff --git a/rosapps/applications/net/dhcpd/src/include/options.h b/rosapps/applications/net/dhcpd/src/include/options.h deleted file mode 100644 index d89176c4f5c..00000000000 --- a/rosapps/applications/net/dhcpd/src/include/options.h +++ /dev/null @@ -1,118 +0,0 @@ -/* This software is GPL, see http://www.gnu.org to see exactly what it means */ - -/* This file contains some useful constant declarations */ - -#ifndef OPTIONS_H -#define OPTIONS_H - -#define VERSION "ecl-dhcp-0.0.2-snoopy" - -#define MAX_PROCESS_TIME 15 - -#define FALSE 0 -#define TRUE 1 - -#define BOOTREQUEST 0x1 -#define BOOTREPLY 0x2 - - /* Message types */ - -#define DHCPDISCOVER 0x1 -#define DHCPOFFER 0x2 -#define DHCPREQUEST 0x3 -#define DHCPDECLINE 0x4 -#define DHCPACK 0x5 -#define DHCPNAK 0x6 -#define DHCPRELEASE 0x7 -#define DHCPINFORM 0x8 - - -#define PAD 0x00 -#define MASK 0x01 -#define TOFFSET 0x02 -#define ROUTER 0x03 -#define TIMESERVER 0x04 -#define NS 0x05 -#define DNS 0x06 -#define LOGSERVER 0x07 -#define COOKIESERVER 0x08 -#define LPRSERVER 0x09 -#define IMPSERVER 0x0A -#define RESLOCSERVER 0x0B -#define HOSTNAME 0x0C -#define BOOTFILESIZE 0x0D -#define MERITDUMPFILE 0x0E -#define DOMAINNAME 0x0F -#define SWAPSERVER 0x10 -#define ROOTPATH 0x11 -#define EXTENSIONPATH 0x12 -#define IPFORWARD 0x13 -#define NONLOCAL 0x14 -#define POLICYFILTER 0x15 -#define MAXIMUMDATAG 0x16 -#define DEFAULTTTL 0x17 -#define PATHMTUATO 0x18 -#define PATHMTUPTO 0x19 -#define IMTU 0x1A -#define ALLSUBLOCAL 0x1B -#define BROADCAST 0x1C -#define PMASKDISCOVERY 0x1D -#define MASKSUPPLIER 0x1E -#define PROUTERDISCOVE 0x1F -#define RSOLICIADDRESS 0x20 -#define STATICROUTE 0x21 -#define TENCAPSULATION 0x22 -#define ARPCACHE 0x23 -#define ETHENCAPSUL 0x24 -#define TCPDEFTTL 0x25 -#define TCPKAI 0x26 -#define TCPKAG 0x27 -#define NISDOMAIN 0x28 -#define NISSERVER 0x29 -#define NTPSERVER 0x2A -#define VENDORSP 0x2B -#define NBTCPIPNS 0x2C -#define NBTCPIPDDS 0x2D -#define NBTCPIPNT 0x2E -#define NBTCPIPSC 0x2F -#define XWINFONTSERVER 0x30 -#define XWINDISPLAY 0x31 -#define IP 0x32 -#define LEASE 0x33 -#define OVERLOAD 0x34 -#define MESSAGETYPE 0x35 -#define SERVER 0x36 -#define PREQUEST 0x37 -#define MESSAGE 0x38 -#define MAXIMUMDHCP 0x39 -#define RENEWALTIME 0x3A -#define REBINDING 0x3B -#define VENDORCLASS 0x3C -#define CLIENT 0x3D -#define NISPLUSDOMAIN 0x40 -#define NISPLUSSERVER 0x41 -#define TFTPSERVER 0x42 -#define BOOTFILE 0x43 -#define MOBILEIP 0x44 -#define SMTPSERVER 0x45 -#define POP3SERVER 0x46 -#define NNTPSERVER 0x47 -#define HTTPSERVER 0x48 -#define FINGERSERVER 0x49 -#define IRCSERVER 0x4A -#define STREETTALKSE 0x4B -#define STREETTALKDA 0x4C -#define END 0xFF - - /* Constants */ -#define FREE 0x01 -#define PROCESSING 0x02 -#define BUSY 0x00 - -#define DYNAMIC 0x00 -#ifdef STATIC -#undef STATIC -#endif -#define STATIC 0x01 - -#endif diff --git a/rosapps/applications/net/dhcpd/src/include/parser.h b/rosapps/applications/net/dhcpd/src/include/parser.h deleted file mode 100644 index 6ecc47d3b47..00000000000 --- a/rosapps/applications/net/dhcpd/src/include/parser.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef PARSER_H -#define PARSER_H - -int parse_dhcp_options( DHCPMESSAGE *, DHCPOPTIONS *); -int process_dhcp_packet( DHCPMESSAGE *, DHCPOPTIONS *); -int write_packet( DHCPMESSAGE *, char *); - -#endif diff --git a/rosapps/applications/net/dhcpd/src/include/utils.h b/rosapps/applications/net/dhcpd/src/include/utils.h deleted file mode 100644 index 2c00a9d1ac5..00000000000 --- a/rosapps/applications/net/dhcpd/src/include/utils.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef UTILS_H -#define UTILS_H - -#include -#include - -#endif diff --git a/rosapps/applications/net/dhcpd/src/include/wutils.h b/rosapps/applications/net/dhcpd/src/include/wutils.h deleted file mode 100644 index b9f150fbadb..00000000000 --- a/rosapps/applications/net/dhcpd/src/include/wutils.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef WUTILS_H -#define WUTILS_H - -u8b try_lock( u8b * ); - -#endif diff --git a/rosapps/applications/net/dhcpd/src/leases/leases.c b/rosapps/applications/net/dhcpd/src/leases/leases.c deleted file mode 100644 index de56f3f0d69..00000000000 --- a/rosapps/applications/net/dhcpd/src/leases/leases.c +++ /dev/null @@ -1,231 +0,0 @@ -#include -#include -#include -#include -#include -#include - -int init_leases_list() -{ - DHCPLIST *temp; - int i, j; - u8b chaddr[16]; - FILE *config; - char line[80]; - char textsubnet[16]; - char textlease[5]; - char textrouter[16]; - char textmask[16]; - char textlowrange[4], texthighrange[4]; - char textserver[16]; - u8b ip0, ip1, ip2, ip3; - u8b lowrange, highrange; - u8b textmac[17], textip[16]; - u32b lease; - - /* Be nice variables and behave yourselves */ - - for( j = 0; j < 16; j++ ) - { - chaddr[j] = 0; - textsubnet[j] = 0; - textrouter[j] = 0; - textmask[j] = 0; - textip[j] = 0; - textmac[j] = 0; - } - - textlease[0] = 0; - textlowrange[0] = 0; - texthighrange[0] = 0; - - /* Now we can read our configuration file */ - - config = fopen( "dhcp.conf", "r" ); - if( !config ) - { - perror("Reading config files"); - exit( 0 ); - } - - /* We _DO_ need a better parser */ - list = (DHCPLIST *)malloc( sizeof( DHCPLIST )); - temp = list; - temp->back = NULL; - - while( (!feof( config )) && ( line )) - { - fscanf( config, "%s", line); - if( !strcmp( line, "subnet" )) - /* Read subnet parameters */ - fscanf( config, "%s", textsubnet ); - - if( !strcmp( line, "lease" )) - /* read lease parameters */ - fscanf( config, "%s", textlease ); - - if( !strcmp( line, "router" )) - fscanf( config, "%s", textrouter ); - - if( !strcmp( line, "mask" )) - fscanf( config, "%s", textmask ); - - if( !strcmp( line, "range" )) - fscanf( config, "%s %s", textlowrange, texthighrange ); - if( !strcmp( line, "server" )) - fscanf( config, "%s", textserver ); - if( !strcmp( line, "host" )) - { - /* Host Specific Configuration */ - fscanf( config, "%s %s", textmac, textip ); - str2mac( textmac, temp->chaddr ); - temp->type = STATIC; - temp->data.ip = inet_addr( textip ); - temp->next = (DHCPLIST *)malloc( sizeof( DHCPLIST )); - temp->next->back = temp; - temp = temp->next; - temp->next =NULL; - } - } - fclose( config ); - - lowrange = (u8b)atoi( textlowrange ); - highrange = (u8b)atoi( texthighrange ); - lease = (u32b)atoi( textlease ); - - /* Creating Static IP */ - - for( temp = list; temp->next; temp = temp->next ) - { - temp->available = FREE; - temp->xid = 0; - temp->data.router = inet_addr( textrouter ); - temp->data.mask = inet_addr( textmask ); - temp->data.lease = lease; - temp->data.siaddr = inet_addr( textserver ); - } - - /* Creating Dynamic IP */ - - for( i = lowrange; i < (highrange + 1); i++ ) - { - temp->available = FREE; - temp->xid = 0; - temp->type = DYNAMIC; - maccpy( temp->chaddr, chaddr ); - split_ip( textsubnet, &ip0, 0 ); - split_ip( textsubnet, &ip1, 1 ); - split_ip( textsubnet, &ip2, 2 ); - temp->data.ip = i; - temp->data.ip = temp->data.ip << 8; - temp->data.ip += ip2; - temp->data.ip = temp->data.ip << 8; - temp->data.ip += ip1; - temp->data.ip = temp->data.ip << 8; - temp->data.ip += ip0; - temp->data.router = inet_addr( textrouter ); - temp->data.mask = inet_addr( textmask ); - temp->data.lease = lease; - temp->data.siaddr = inet_addr( textserver ); - temp->next = (DHCPLIST *)malloc( sizeof( DHCPLIST )); - temp->next->back = temp; - temp = temp->next; - } - return 0; -} - -int find_lease( DHCPLEASE *dhcpl, u32b xid, u8b chaddr[] ) -{ - int result = -2; - DHCPLIST *temp; - - if( !dhcpl ) - return -1; - - for( temp = list; temp; temp=temp->next ) - if( !maccmp( temp->chaddr, chaddr ) ) - release_lease( dhcpl, xid, chaddr); - - for( temp = list; temp; temp=temp->next ) - if( ( !maccmp( temp->chaddr, chaddr )) && ( temp->type == STATIC )) - { - dhcpl->ip = temp->data.ip; - dhcpl->router = temp->data.router; - dhcpl->mask = temp->data.mask; - dhcpl->lease = temp->data.lease; - dhcpl->siaddr = temp->data.siaddr; - fprintf( stdout, "Assigning Static IP! \n"); - temp->available = PROCESSING; - temp->xid = xid; - temp->ltime = MAX_PROCESS_TIME; - maccpy( temp->chaddr, chaddr); - result = 0; - return result; - } - else if( ( temp->available & FREE ) && ( temp->type == DYNAMIC )) - { - dhcpl->ip = temp->data.ip; - dhcpl->router = temp->data.router; - dhcpl->mask = temp->data.mask; - dhcpl->lease = temp->data.lease; - dhcpl->siaddr = temp->data.siaddr; - fprintf( stdout, "Assigning Dynamic IP! \n"); - temp->available = PROCESSING; - temp->xid = xid; - temp->ltime = MAX_PROCESS_TIME; - maccpy( temp->chaddr, chaddr); - result = 0; - return result; - } - return result; -} - -int confirm_lease( DHCPLEASE *dhcpl, u32b xid ) -{ - int result = -1; - DHCPLIST *temp; - - for( temp = list; temp; temp=temp->next ) - if( temp->xid == xid ) - { - dhcpl->ip = temp->data.ip; - dhcpl->router = temp->data.router; - dhcpl->mask = temp->data.mask; - dhcpl->lease = temp->data.lease; - dhcpl->siaddr = temp->data.siaddr; - temp->available = BUSY; - temp->ltime = temp->data.lease; - result = 0; - return result; - } - return result; -} - -int release_lease( DHCPLEASE *dhcpl, u32b xid, u8b chaddr[16] ) -{ - int result = -1, i; - DHCPLIST *temp; - u8b nchaddr[16]; - - for( i = 0; i < 16; i++ ) - nchaddr[i] = 0; - - if( !dhcpl ) - return -1; - - for( temp = list; temp; temp=temp->next ) - if( !maccmp( temp->chaddr, chaddr ) ) - { - /* We found the address */ - result = 0; - fprintf( stdout, "Deleting %X::%X::%X::%X::%X::%X \n", temp->chaddr[0], temp->chaddr[1], temp->chaddr[2], temp->chaddr[3], temp->chaddr[4], temp->chaddr[5] ); - temp->available = FREE; - temp->xid = 0; - /* maccpy( temp->chaddr, nchaddr ); */ - } else { - /* No such address */ - result = -1; - } - - return result; -} diff --git a/rosapps/applications/net/dhcpd/src/lock/locker.c b/rosapps/applications/net/dhcpd/src/lock/locker.c deleted file mode 100644 index 3998a82437d..00000000000 --- a/rosapps/applications/net/dhcpd/src/lock/locker.c +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include -#include -#include -#include - -int check_leased_list() -{ - DHCPLIST *temp, *ntemp; - int count = 1, i; - - /* fprintf( stdout, "checking list! \n" ); */ - - return 0; -} - -static int test_and_set() -{ - /* Test lock, if it's locked return FALSE */ - - return TRUE; -} - -int lock_list() -{ - int count = 1; - - while( !test_and_set() ) - { - sleep( 1 ); - count++; - } - - return count; -} - -int unlock_list() -{ - return TRUE; -} diff --git a/rosapps/applications/net/dhcpd/src/main.c b/rosapps/applications/net/dhcpd/src/main.c deleted file mode 100644 index da7d52fa190..00000000000 --- a/rosapps/applications/net/dhcpd/src/main.c +++ /dev/null @@ -1,72 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#define MYPORT 67 -DHCPLIST *list; -/*DHCPLIST *leased_list;*/ - -int main( int argc, char *argv[] ) -{ -#ifdef __MINGW32__ - WSADATA wsaData; - int nCode; -#endif - int sockfd; - struct sockaddr_in my_addr; - struct sockaddr_in their_addr; - int addr_len, numbytes; - DHCPMESSAGE dhcpm; - DHCPOPTIONS dhcpo; - -#ifdef __MINGW32__ - if ((nCode = WSAStartup(MAKEWORD(1, 1), &wsaData)) != 0) - { - perror("WSAStartup"); - return 0; - } -#endif - - if ((sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) { - perror("socket"); - exit(1); - } - - init_leases_list(); - - my_addr.sin_family = AF_INET; - my_addr.sin_port = htons(MYPORT); - my_addr.sin_addr.s_addr = INADDR_ANY; - memset(&(my_addr.sin_zero), '\0', 8); - - if (bind(sockfd, (struct sockaddr *)&my_addr, - sizeof(struct sockaddr)) == -1) { - perror("bind"); - exit(1); - } - - addr_len = sizeof(struct sockaddr); - while((numbytes=recvfrom(sockfd,&dhcpm, sizeof( DHCPMESSAGE ), 0, - (struct sockaddr *)&their_addr, &addr_len)) != -1) { - /* Parse DHCP */ - display_dhcp_packet( &dhcpm, &dhcpo ); - if( parse_dhcp_options( &dhcpm, &dhcpo ) < 0 ) - continue; - if( display_dhcp_packet( &dhcpm, &dhcpo ) < 0 ) - continue; - if( process_dhcp_packet( &dhcpm, &dhcpo ) < 0 ) - continue; - } - - close(sockfd); - -#ifdef __MINGW32__ - WSACleanup(); -#endif - - return 0; - -} diff --git a/rosapps/applications/net/dhcpd/src/parsing/parser.c b/rosapps/applications/net/dhcpd/src/parsing/parser.c deleted file mode 100644 index 80adda1ad97..00000000000 --- a/rosapps/applications/net/dhcpd/src/parsing/parser.c +++ /dev/null @@ -1,402 +0,0 @@ -#include -#include -#include -#include -#include -#include - -int parse_dhcp_options( DHCPMESSAGE *dhcpm, DHCPOPTIONS *dhcpo ) -{ - int pointer, opointer; - int olength; - - pointer = 0; - - fprintf( stdout, "parse_dhcp_options [begin]!\n"); - - /* Options Initialization */ - /* No message type */ - dhcpo->type = 0; - /* No ip address, 0.0.0.0 */ - dhcpo->r_ip = 0; - /* No mask address, 0.0.0.0 */ - dhcpo->r_mask = 0; - /* No router, 0.0.0.0 */ - dhcpo->r_router = 0; - /* No lease 0 */ - dhcpo->r_lease = 0; - /* No name '\n' */ - dhcpo->hostname = NULL; - - while( pointer< 312 ) - { - if(( dhcpm->options[0] != 99 ) && (dhcpm->options[1]!=130) && (dhcpm->options[2]!=83) && (dhcpm->options[3]!= 99)) - { - fprintf( stdout, "No magic cookie! Aborting! \n" ); - return -1; - } - switch( dhcpm->options[pointer] ){ - case PAD: - pointer++; - break; - case MESSAGETYPE: - /* Try to figure out the kind of message and start the configuring process */ - pointer += 2; - dhcpo->type = dhcpm->options[pointer++]; - break; - case PREQUEST: - /* Take note of the requested parameters */ - opointer = pointer + 2; - olength = pointer + dhcpm->options[pointer + 1]; - while( opointer < olength ) - { - switch( dhcpm->options[opointer] ){ - case IP: - /* Take note of the requested ip */ - opointer += 2; - dhcpo->r_ip += dhcpm->options[opointer++]; - dhcpo->r_ip = dhcpo->r_ip << 8; - dhcpo->r_ip += dhcpm->options[opointer++]; - dhcpo->r_ip = dhcpo->r_ip << 8; - dhcpo->r_ip += dhcpm->options[opointer++]; - dhcpo->r_ip = dhcpo->r_ip << 8; - dhcpo->r_ip += dhcpm->options[opointer++]; - break; - case MASK: - /* Take note of the requested mask */ - opointer += 2; - dhcpo->r_mask += dhcpm->options[opointer++]; - dhcpo->r_mask = dhcpo->r_ip << 8; - dhcpo->r_mask += dhcpm->options[opointer++]; - dhcpo->r_mask = dhcpo->r_ip << 8; - dhcpo->r_mask += dhcpm->options[opointer++]; - dhcpo->r_mask = dhcpo->r_ip << 8; - dhcpo->r_mask += dhcpm->options[opointer++]; - break; - case ROUTER: - /* Take note of the requested router */ - opointer += 2; - dhcpo->r_router += dhcpm->options[opointer++]; - dhcpo->r_router = dhcpo->r_ip << 8; - dhcpo->r_router += dhcpm->options[opointer++]; - dhcpo->r_router = dhcpo->r_ip << 8; - dhcpo->r_router += dhcpm->options[opointer++]; - dhcpo->r_router = dhcpo->r_ip << 8; - dhcpo->r_router += dhcpm->options[opointer++]; - break; - case LEASE: - opointer += 2; - dhcpo->r_lease += dhcpm->options[opointer++]; - dhcpo->r_lease = dhcpo->r_ip << 8; - dhcpo->r_lease += dhcpm->options[opointer++]; - dhcpo->r_lease = dhcpo->r_ip << 8; - dhcpo->r_lease += dhcpm->options[opointer++]; - dhcpo->r_lease = dhcpo->r_ip << 8; - dhcpo->r_lease += dhcpm->options[opointer++]; - break; - case HOSTNAME: - opointer += 1; - dhcpo->hostname = (char *)malloc( dhcpm->options[opointer] + 1); - strncpy( dhcpo->hostname, &dhcpm->options[opointer+1], dhcpm->options[opointer] ); - opointer += dhcpm->options[opointer] + 1; - default: - /* Ignore option */ - opointer++; - break; - } - } - pointer = opointer; - break; - case TOFFSET: - case TIMESERVER: - case NS: - case DNS: - case LOGSERVER: - case COOKIESERVER: - case LPRSERVER: - case IMPSERVER: - case RESLOCSERVER: - case BOOTFILESIZE: - case MERITDUMPFILE: - case DOMAINNAME: - case SWAPSERVER: - case ROOTPATH: - case EXTENSIONPATH: - case IPFORWARD: - case NONLOCAL: - case POLICYFILTER: - case MAXIMUMDATAG: - case DEFAULTTTL: - case PATHMTUATO: - case PATHMTUPTO: - case IMTU: - case ALLSUBLOCAL: - case BROADCAST: - case PMASKDISCOVERY: - case MASKSUPPLIER: - case PROUTERDISCOVE: - case RSOLICIADDRESS: - case STATICROUTE: - case TENCAPSULATION: - case ARPCACHE: - case ETHENCAPSUL: - case TCPDEFTTL: - case TCPKAI: - case TCPKAG: - case NISDOMAIN: - case NISSERVER: - case NTPSERVER: - case VENDORSP: - case NBTCPIPNS: - case NBTCPIPDDS: - case NBTCPIPNT: - case NBTCPIPSC: - case XWINFONTSERVER: - case XWINDISPLAY: - case OVERLOAD: - case SERVER: - case MESSAGE: - case MAXIMUMDHCP: - case RENEWALTIME: - case REBINDING: - case VENDORCLASS: - case NISPLUSDOMAIN: - case NISPLUSSERVER: - case TFTPSERVER: - case BOOTFILE: - case MOBILEIP: - case SMTPSERVER: - case POP3SERVER: - case NNTPSERVER: - case HTTPSERVER: - case FINGERSERVER: - case IRCSERVER: - case STREETTALKSE: - case STREETTALKDA: - case CLIENT: - pointer++; - pointer += dhcpm->options[pointer]; - case END: - /* return to the calling functions because this is over */ - fprintf( stdout, "parse_dhcp_options: END option found! [end]!\n"); - return 0; - default: - /* ignored */ - pointer++; - break; - } - } - fprintf( stdout, "parse_dhcp_options [end]!\n"); - return 0; -} - -int process_dhcp_packet( DHCPMESSAGE *dhcpm, DHCPOPTIONS *dhcpo ) -{ - int pointer = 4; - DHCPLEASE dhcpl; - char *name; - - fprintf( stdout, "process_dhcp_packet [begin]!\n"); - - if( (!dhcpm) || (!dhcpo) ) - return -1; - - name = (char *)malloc( 16 ); - switch( dhcpo->type ){ - - case DHCPDISCOVER: - /* We need to send a DHCPOFFER */ - if( find_lease( &dhcpl, dhcpm->xid, dhcpm->chaddr ) < 0 ) - { - fprintf( stdout, "No free leases! \n" ); - return -1; - } - dhcpm->op = BOOTREPLY; - dhcpm->yiaddr = dhcpl.ip; - dhcpm->siaddr = dhcpl.siaddr; - strcpy(dhcpm->sname, VERSION); - dhcpm->options[pointer++] = MESSAGETYPE; - dhcpm->options[pointer++] = 1; - dhcpm->options[pointer++] = DHCPOFFER; - dhcpm->options[pointer++] = ROUTER; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = (dhcpl.router & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.router >> 8) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.router >> 16) &0xFF); - dhcpm->options[pointer++] = (dhcpl.router >> 24); - dhcpm->options[pointer++] = MASK; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = (dhcpl.mask & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.mask >> 8) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.mask >> 16) & 0xFF); - dhcpm->options[pointer++] = (dhcpl.mask >> 24); - dhcpm->options[pointer++] = SERVER; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = (dhcpl.siaddr & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.siaddr >> 8) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.siaddr >> 16) & 0xFF); - dhcpm->options[pointer++] = (dhcpl.siaddr >> 24); - dhcpm->options[pointer++] = LEASE; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = (dhcpl.lease >> 24); - dhcpm->options[pointer++] = ((dhcpl.lease >> 16) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.lease >> 8) & 0xFF); - dhcpm->options[pointer++] = (dhcpl.lease & 0xFF); - dhcpm->options[pointer++] = REBINDING; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = (dhcpl.lease >> 24); - dhcpm->options[pointer++] = ((dhcpl.lease >> 16) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.lease >> 8) & 0xFF); - dhcpm->options[pointer++] = (dhcpl.lease & 0xFF) - 5; - dhcpm->options[pointer++] = RENEWALTIME; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = (dhcpl.lease >> 24); - dhcpm->options[pointer++] = ((dhcpl.lease >> 16) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.lease >> 8) & 0xFF); - dhcpm->options[pointer++] = (dhcpl.lease & 0xFF) - 5; - dhcpm->options[pointer++] = PAD; - dhcpm->options[pointer++] = PAD; - dhcpm->options[pointer++] = PAD; - dhcpm->options[pointer++] = END; - for( ; pointer < 312; pointer++ ) - dhcpm->options[pointer] = PAD; - dhcpo->type = DHCPOFFER; - strcpy( name, "255.255.255.255" ); - break; - - case DHCPREQUEST: - /* We need to send an DHCPACK */ - dhcpm->op = BOOTREPLY; - dhcpm->yiaddr = dhcpm->ciaddr; - strcpy(dhcpm->sname, VERSION); - if( confirm_lease( &dhcpl, dhcpm->xid ) < 0) - { - dhcpm->options[pointer++] = MESSAGETYPE; - dhcpm->options[pointer++] = 1; - dhcpm->options[pointer++] = DHCPNAK; - dhcpm->options[pointer++] = PAD; - dhcpm->options[pointer++] = END; - for( ; pointer < 312; pointer++ ) - dhcpm->options[pointer] = PAD; - sprintf( name, "%u.%u.%u.%u", (dhcpm->ciaddr &0xFF), ((dhcpm->ciaddr>>8)&0xFF), ((dhcpm->ciaddr>>16)&0xFF), ((dhcpm->ciaddr>>24)&0xFF)); - display_dhcp_packet( dhcpm, dhcpo ); - write_packet( dhcpm, name ); - return -1; - } - dhcpm->siaddr = dhcpl.siaddr; - dhcpm->options[pointer++] = MESSAGETYPE; - dhcpm->options[pointer++] = 1; - dhcpm->options[pointer++] = DHCPACK; - dhcpm->options[pointer++] = ROUTER; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = (dhcpl.router >> 24); - dhcpm->options[pointer++] = ((dhcpl.router >> 16) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.router >> 8) &0xFF); - dhcpm->options[pointer++] = (dhcpl.router & 0xFF); - dhcpm->options[pointer++] = MASK; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = (dhcpl.mask >> 24); - dhcpm->options[pointer++] = ((dhcpl.mask >> 16) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.mask >> 8) & 0xFF); - dhcpm->options[pointer++] = (dhcpl.mask & 0xFF); - dhcpm->options[pointer++] = SERVER; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = dhcpl.siaddr >> 24; - dhcpm->options[pointer++] = ((dhcpl.siaddr >> 16) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.siaddr >> 8) & 0xFF); - dhcpm->options[pointer++] = (dhcpl.siaddr & 0xFF); - dhcpm->options[pointer++] = LEASE; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = (dhcpl.lease >> 24); - dhcpm->options[pointer++] = ((dhcpl.lease >> 16) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.lease >> 8) & 0xFF); - dhcpm->options[pointer++] = (dhcpl.lease & 0xFF); - dhcpm->options[pointer++] = REBINDING; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = (dhcpl.lease >> 24); - dhcpm->options[pointer++] = ((dhcpl.lease >> 16) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.lease >> 8) & 0xFF); - dhcpm->options[pointer++] = (dhcpl.lease & 0xFF); - dhcpm->options[pointer++] = RENEWALTIME; - dhcpm->options[pointer++] = 4; - dhcpm->options[pointer++] = (dhcpl.lease >> 24); - dhcpm->options[pointer++] = ((dhcpl.lease >> 16) & 0xFF); - dhcpm->options[pointer++] = ((dhcpl.lease >> 8) & 0xFF); - dhcpm->options[pointer++] = (dhcpl.lease & 0xFF); - dhcpm->options[pointer++] = PAD; - dhcpm->options[pointer++] = PAD; - dhcpm->options[pointer++] = PAD; - dhcpm->options[pointer++] = END; - for( ; pointer < 312; pointer++ ) - dhcpm->options[pointer] = PAD; - dhcpo->type = DHCPACK; - sprintf( name, "%u.%u.%u.%u", (dhcpl.ip & 0xFF), ((dhcpl.ip>>8) & 0xFF), ((dhcpl.ip>>16)&0xFF), (dhcpl.ip>>24)); - break; - - default: - break; - } - display_dhcp_packet( dhcpm, dhcpo ); - write_packet( dhcpm, name ); - fprintf( stdout, "process_dhcp_packet [end]!\n"); - return 0; -} - -int write_packet( DHCPMESSAGE *dhcpm, char *name ) -{ - int sockfd; - struct sockaddr_in their_addr; // connector's address information - struct hostent *he; - int numbytes; - int enable = 1; - - fprintf( stdout, "write_packet [begin]\n" ); - - if( !dhcpm ) - return -1; - - if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { - perror("socket"); - exit(1); - } - - if( setsockopt( sockfd, SOL_SOCKET, SO_BROADCAST, &enable, sizeof( enable )) == -1 ) - { - perror("setsockopt"); - exit(1); - } - - if( strcmp( "255.255.255.255", name ) ) - { - if ((he=gethostbyname(name)) == NULL) { // get the host info - perror("gethostbyname"); - fprintf( stdout, "Unknown host %s \n", name ); - return -1; - } - their_addr.sin_family = AF_INET; // host byte order - their_addr.sin_port = htons(68); // short, network byte order - their_addr.sin_addr = *((struct in_addr *)he->h_addr); - } else { - their_addr.sin_family = AF_INET; // host byte order - their_addr.sin_port = htons(68); // short, network byte order - their_addr.sin_addr.s_addr = 0xFFFFFFFF; - } - - fprintf( stdout, "IP a buscar: %s \n", name ); - memset(&(their_addr.sin_zero), '\0', 8); // zero the rest of the struct - - if ((numbytes=sendto(sockfd, dhcpm, sizeof(DHCPMESSAGE), 0, - (struct sockaddr *)&their_addr, sizeof(struct sockaddr))) == -1) { - perror("sendto"); - exit(1); - } - - printf("sent %d bytes to %s\n", numbytes, - inet_ntoa(their_addr.sin_addr)); - - close(sockfd); - - fprintf( stdout, "write_packet [end]\n" ); - - return 0; -} diff --git a/rosapps/applications/net/dhcpd/src/utils/iputils.c b/rosapps/applications/net/dhcpd/src/utils/iputils.c deleted file mode 100644 index 1b605c3bc60..00000000000 --- a/rosapps/applications/net/dhcpd/src/utils/iputils.c +++ /dev/null @@ -1,59 +0,0 @@ -#include -#include -#include -#include - -int split_ip( char *text, u8b *dest, int place ) -{ - int dotcount; - - /* Don't touch this, unless you like pointer aritmethic */ - - *dest = 0; - - if( !text ) - return -1; - - for( dotcount = 0; (dotcount < place) && ( text ); text++ ) - if( *text == '.' ) - dotcount++; - - if( !text ) - return -2; - - while(( *text != '.' ) && ( *text != '\0' )) - { - *dest *= 10; - *dest += (u8b)(*text-48); - /* 48 is not a hack, is just the code of 0 */ - text++; - } - - return 0; -} - -int get_ip( char *text, u32b *dest ) -{ - /* Don't touch this, unless you like pointer aritmethic */ - - *dest = 0; - - if( !text ) - return -1; - - while( *text != '\0' ) - { - if( *text == '.' ) - { - *dest = *dest << 8; - text++; - continue; - } - *dest *= 10; - *dest += (u8b)(*text-48); - /* 48 is not a hack, is just the code of 0 */ - text++; - } - - return 0; -} diff --git a/rosapps/applications/net/dhcpd/src/utils/macutils.c b/rosapps/applications/net/dhcpd/src/utils/macutils.c deleted file mode 100644 index e4601348c9e..00000000000 --- a/rosapps/applications/net/dhcpd/src/utils/macutils.c +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include - -int maccpy( u8b dest[16], u8b source[16] ) -{ - int i; - for( i = 0; i < 16; i++ ) - dest[i] = source[i]; - return 0; -} - -int maccmp( u8b dest[16], u8b source[16] ) -{ - int i; - char equal = 0; - - for( i = 0; i < 16; i++ ) - if( dest[i] != source[i] ) - equal = -1; - - return equal; -} - -int str2mac( u8b from[17], u8b to[16] ) -{ - int i, j, length; - u8b buffer; - u8b dif; - - length = (int)strlen( from ); - - for( i = 0, j = 0; i < length; ) - { - buffer = 0; - while( (from[i] != ':' ) && (from[i]!= '\0' )) - { - buffer = buffer << 4; - (from[i]>57)?(dif=55):(dif=48); - buffer += (from[i] - dif); - i++; - } - to[j++] = buffer; - i++; - } - return 0; -} diff --git a/rosapps/applications/net/dhcpd/src/utils/macutils.h b/rosapps/applications/net/dhcpd/src/utils/macutils.h deleted file mode 100644 index 2c80dc6ad5b..00000000000 --- a/rosapps/applications/net/dhcpd/src/utils/macutils.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef MACUTILS_H -#define MACUTILS_H - -int maccmp( u8b *, u8b *); -int maccpy( u8b *, u8b *); -int str2mac( u8b *, u8b * ); - -#endif diff --git a/rosapps/applications/net/dhcpd/src/utils/utils.h b/rosapps/applications/net/dhcpd/src/utils/utils.h deleted file mode 100644 index 74200279361..00000000000 --- a/rosapps/applications/net/dhcpd/src/utils/utils.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef UTILS_H -#define UTILS_H - -#include - -#endif diff --git a/rosapps/applications/net/dhcpd/src/utils/wutils.c b/rosapps/applications/net/dhcpd/src/utils/wutils.c deleted file mode 100644 index f684544f836..00000000000 --- a/rosapps/applications/net/dhcpd/src/utils/wutils.c +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -u8b try_lock( u8b *key ) -{ - if( *key == TRUE ) - return FALSE; - return TRUE; -} diff --git a/rosapps/applications/net/dhcpd/stamp-h b/rosapps/applications/net/dhcpd/stamp-h deleted file mode 100644 index 9788f70238c..00000000000 --- a/rosapps/applications/net/dhcpd/stamp-h +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/rosapps/applications/net/dhcpd/stamp-h.in b/rosapps/applications/net/dhcpd/stamp-h.in deleted file mode 100644 index 9788f70238c..00000000000 --- a/rosapps/applications/net/dhcpd/stamp-h.in +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/rosapps/applications/net/directory.rbuild b/rosapps/applications/net/directory.rbuild deleted file mode 100644 index e9035a459e9..00000000000 --- a/rosapps/applications/net/directory.rbuild +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rosapps/applications/net/ncftp/LICENSE.txt b/rosapps/applications/net/ncftp/LICENSE.txt deleted file mode 100644 index 04a3311f536..00000000000 --- a/rosapps/applications/net/ncftp/LICENSE.txt +++ /dev/null @@ -1,137 +0,0 @@ - The Clarified Artistic License - - Preamble - -The intent of this document is to state the conditions under which a -Package may be copied, such that the Copyright Holder maintains some -semblance of artistic control over the development of the package, -while giving the users of the package the right to use and distribute -the Package in a more-or-less customary fashion, plus the right to make -reasonable modifications. - -Definitions: - - "Package" refers to the collection of files distributed by the - Copyright Holder, and derivatives of that collection of files - created through textual modification. - - "Standard Version" refers to such a Package if it has not been - modified, or has been modified in accordance with the wishes - of the Copyright Holder as specified below. - - "Copyright Holder" is whoever is named in the copyright or - copyrights for the package. - - "You" is you, if you're thinking about copying or distributing - this Package. - - "Distribution fee" is a fee you charge for providing a copy - of this Package to another party. - - "Freely Available" means that no fee is charged for the right to - use the item, though there may be fees involved in handling the - item. It also means that recipients of the item may redistribute - it under the same conditions they received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications -derived from the Public Domain, or those made Freely Available, or from -the Copyright Holder. A Package modified in such a way shall still be -considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided -that you insert a prominent notice in each changed file stating how and -when you changed that file, and provided that you do at least ONE of the -following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major network - archive site allowing unrestricted access to them, or by allowing the - Copyright Holder to include your modifications in the Standard Version - of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict - with standard executables, which must also be provided, and provide - a separate manual page for each non-standard executable that clearly - documents how it differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - - e) permit and encourge anyone who receives a copy of the modified Package - permission to make your modifications Freely Available - in some specific way. - - -4. You may distribute the programs of this Package in object code or -executable form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where - to get the Standard Version. - - b) accompany the distribution with the machine-readable source of - the Package with your modifications. - - c) give non-standard executables non-standard names, and clearly - document the differences in manual pages (or equivalent), together - with instructions on where to get the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - - e) offer the machine-readable source of the Package, with your - modifications, by mail order. - -5. You may charge a distribution fee for any distribution of this Package. -If you offer support for this Package, you may charge any fee you choose -for that support. You may not charge a license fee for the right to use -this Package itself. You may distribute this Package in aggregate with -other (possibly commercial and possibly nonfree) programs as part of a -larger (possibly commercial and possibly nonfree) software distribution, -and charge license fees for other parts of that software distribution, -provided that you do not advertise this Package as a product of your own. -If the Package includes an interpreter, You may embed this Package's -interpreter within an executable of yours (by linking); this shall be -construed as a mere form of aggregation, provided that the complete -Standard Version of the interpreter is so embedded. - -6. The scripts and library files supplied as input to or produced as -output from the programs of this Package do not automatically fall -under the copyright of this Package, but belong to whoever generated -them, and may be sold commercially, and may be aggregated with this -Package. If such scripts or library files are aggregated with this -Package via the so-called "undump" or "unexec" methods of producing a -binary executable image, then distribution of such an image shall -neither be construed as a distribution of this Package nor shall it -fall under the restrictions of Paragraphs 3 and 4, provided that you do -not represent such an executable image as a Standard Version of this -Package. - -7. C subroutines (or comparably compiled subroutines in other -languages) supplied by you and linked into this Package in order to -emulate subroutines and variables of the language defined by this -Package shall not be considered part of this Package, but are the -equivalent of input as in Paragraph 6, provided these subroutines do -not change the language in any way that would cause it to fail the -regression tests for the language. - -8. Aggregation of the Standard Version of the Package with a commercial -distribution is always permitted provided that the use of this Package -is embedded; that is, when no overt attempt is made to make this Package's -interfaces visible to the end user of the commercial distribution. -Such use shall not be construed as a distribution of this Package. - -9. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - - The End - diff --git a/rosapps/applications/net/ncftp/Strn/Dynscat.c b/rosapps/applications/net/ncftp/Strn/Dynscat.c deleted file mode 100644 index a34137995f8..00000000000 --- a/rosapps/applications/net/ncftp/Strn/Dynscat.c +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include -#include -#include "Strn.h" - -/*VARARGS*/ -char * -Dynscat(char **dst, ...) -{ - va_list ap; - const char *src; - char *newdst, *dcp; - size_t curLen, catLen, srcLen; - - if (dst == (char **) 0) - return NULL; - - catLen = 0; - va_start(ap, dst); - src = va_arg(ap, char *); - while (src != NULL) { - catLen += strlen(src); - src = va_arg(ap, char *); - } - va_end(ap); - - if ((*dst == NULL) || (**dst == '\0')) - curLen = 0; - else - curLen = strlen(*dst); - - if (*dst == NULL) - newdst = malloc(curLen + catLen + 2); - else - newdst = realloc(*dst, curLen + catLen + 2); - if (newdst == NULL) - return NULL; - - dcp = newdst + curLen; - va_start(ap, dst); - src = va_arg(ap, char *); - while (src != NULL) { - srcLen = strlen(src); - memcpy(dcp, src, srcLen); - dcp += srcLen; - src = va_arg(ap, char *); - } - va_end(ap); - *dcp = '\0'; - - *dst = newdst; - return (newdst); -} /* Dynscat */ diff --git a/rosapps/applications/net/ncftp/Strn/Makefile.in b/rosapps/applications/net/ncftp/Strn/Makefile.in deleted file mode 100644 index e7135490ff2..00000000000 --- a/rosapps/applications/net/ncftp/Strn/Makefile.in +++ /dev/null @@ -1,115 +0,0 @@ -# -# Strn makefile -# -VER=2.2.0 -PREFIX=@prefix@ -MAN=@prefix@/man -SHELL=/bin/sh -.SUFFIXES: .c .o .so -LIB=libStrn.a -LIBSO=libStrn.so.1 -LIBSOS=libStrn.so -CC=@CC@ -CPPFLAGS= -#CFLAGS=-O2 -CFLAGS=@CFLAGS@ -DEFS=-DSTRNP_ZERO_PAD=0 -DSTRN_ZERO_PAD=1 - -OBJS=Dynscat.o Strncpy.o Strncat.o Strntok.o Strnpcpy.o Strnpcat.o strtokc.o version.o -SOBJS=Dynscat.so Strncpy.so Strncat.so Strntok.so Strnpcpy.so Strnpcat.so strtokc.so version.so - -all: static - -@echo "Done making Strn." - -static: $(LIB) - -$(LIB): $(OBJS) - ar rv $(LIB) $(OBJS) - chmod 644 "$(LIB)" - -ranlib "$(LIB)" - echo "$(VER)" > Strn.version - -@/bin/ls -l "$(LIB)" - -.c.o: - $(CC) $(CFLAGS) $(DEFS) $(CPPFLAGS) $< -c - -.c.so: - $(CC) -fpic $(CFLAGS) $(CPPFLAGS) $(DEFS) $*.c -c -o $*.so - -dynamic: $(LIBSO) - -shared: $(LIBSO) - -so: $(LIBSO) - -$(LIBSO): $(SOBJS) - /bin/rm -f "$(LIBSO)" - gcc -shared "-Wl,-soname,$(LIBSO)" -o "$(LIBSO)" $(SOBJS) - /bin/ln -s "$(LIBSO)" "$(LIBSOS)" - -@/bin/ls -l "$(LIBSOS)" "$(LIBSO)" - -soinstall: $(LIBSO) - cp "$(LIBSO)" "$(PREFIX)/lib/$(LIBSO)" - ( cd "$(PREFIX)/lib" ; /bin/ln -s "$(LIBSO)" "$(LIBSOS)" ) - cp Strn.h "$(PREFIX)/include/Strn.h" - -chmod a+r "$(PREFIX)/lib/$(LIBSO)" "$(PREFIX)/include/Strn.h" - -tester: $(LIB) tester.c - $(CC) $(CFLAGS) tester.c -o tester -I. -L. -lStrn - -clean: - /bin/rm -f "$(LIB)" "$(LIBSO)" $(OBJS) $(SOBJS) - -install: - if test ! -d $(PREFIX)/include ; then mkdir -p "$(PREFIX)/include" ; fi - if test ! -d $(PREFIX)/lib ; then mkdir -p "$(PREFIX)/lib" ; fi - cp "$(LIB)" Strn.version "$(PREFIX)/lib" - cp Strn.h "$(PREFIX)/include/Strn.h" - -chmod 664 "$(PREFIX)/include/Strn.h" "$(PREFIX)/lib/Strn.version" "$(PREFIX)/lib/$(LIB)" - -cp Strn.3 "$(MAN)/man3/Strn.3" - -chmod 664 "$(MAN)/man3/Strn.3" - -ln "$(MAN)/man3/Strn.3" "$(MAN)/man3/Strncpy.3" - -ln "$(MAN)/man3/Strn.3" "$(MAN)/man3/Strncat.3" - -uninstall: - /bin/rm -f "$(PREFIX)/lib/$(LIB)" "$(PREFIX)/include/Strn.h" - -PACKAGE=configure Makefile.in configure.in Strn.dsp Strn.dsw Dynscat.c Strncpy.c Strncat.c Strnpcpy.c Strnpcat.c Strntok.c strtokc.c Strn.h Strn.3 tester.c version.c Strn.version - -TMPDIR=/tmp -TARDIR=Strn -TARFILE=$(TARDIR).tar -TGZFILE=$(TARDIR).tgz - -tarcp: - -@mkdir -p $(TMPDIR)/TAR/$(TARDIR) - -@chmod ga+r $(PACKAGE) - -@chmod 755 $(TMPDIR)/TAR/$(TARDIR) - cp -pr $(PACKAGE) $(TMPDIR)/TAR/$(TARDIR) - -tar: $(PACKAGE) - -@mkdir $(TMPDIR)/TAR - -@mkdir $(TMPDIR)/TAR/$(TARDIR) - -@chmod ga+r $(PACKAGE) - -@chmod 755 $(TMPDIR)/TAR/$(TARDIR) - cp -pr $(PACKAGE) $(TMPDIR)/TAR/$(TARDIR) - ( cd $(TMPDIR)/TAR ; tar cf $(TARFILE) ./$(TARDIR) ) - cp $(TMPDIR)/TAR/$(TARFILE) . - -@chmod 644 $(TARFILE) - -@rm -rf $(TMPDIR)/TAR - -@ls -l $(TARFILE) - -gz: tar - gzip -c $(TARFILE) > $(TGZFILE) - -@rm $(TARFILE) - -@chmod 644 $(TGZFILE) - -@ls -l $(TGZFILE) - -Dynscat.o: Dynscat.c Strn.h -Strncat.o: Strncat.c Strn.h -Strncpy.o: Strncpy.c Strn.h -Strnpcat.o: Strnpcat.c Strn.h -Strnpcpy.o: Strnpcpy.c Strn.h -Strntok.o: Strntok.c Strn.h -strtokc.o: strtokc.c Strn.h -version.o: version.c diff --git a/rosapps/applications/net/ncftp/Strn/Strn.h b/rosapps/applications/net/ncftp/Strn/Strn.h deleted file mode 100644 index 3f8be368340..00000000000 --- a/rosapps/applications/net/ncftp/Strn/Strn.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Strn.h */ - -#ifndef _Strn_h_ -#define _Strn_h_ 1 - -/* You should define this from the Makefile. */ -#ifndef STRN_ZERO_PAD -# define STRN_ZERO_PAD 1 -#endif - -/* You should define this from the Makefile. */ -#ifndef STRNP_ZERO_PAD -# define STRNP_ZERO_PAD 0 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Strncat.c */ -char *Strncat(char *const, const char *const, const size_t); - -/* Strncpy.c */ -char *Strncpy(char *const, const char *const, const size_t); - -/* Strnpcat.c */ -char *Strnpcat(char *const, const char *const, size_t); - -/* Strnpcpy.c */ -char *Strnpcpy(char *const, const char *const, size_t); - -/* Strntok.c */ -char *Strtok(char *, const char *); -int Strntok(char *, size_t, char *, const char *); - -/* strtokc.c */ -char *strtokc(char *, const char *, char **); -int strntokc(char *, size_t, char *, const char *, char **); - -/* Dynscat.c */ -char * Dynscat(char **dst, ...); - -#ifdef __cplusplus -} -#endif - -#define STRNCPY(d,s) Strncpy((d), (s), (size_t) sizeof(d)) -#define STRNCAT(d,s) Strncat((d), (s), (size_t) sizeof(d)) - -#endif /* _Strn_h_ */ - -/* eof Strn.h */ diff --git a/rosapps/applications/net/ncftp/Strn/Strncat.c b/rosapps/applications/net/ncftp/Strn/Strncat.c deleted file mode 100644 index 051555588f6..00000000000 --- a/rosapps/applications/net/ncftp/Strn/Strncat.c +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include -#include "Strn.h" - -/* - * Concatenate src on the end of dst. The resulting string will have at most - * n-1 characters, not counting the NUL terminator which is always appended - * unlike strncat. The other big difference is that strncpy uses n as the - * max number of characters _appended_, while this routine uses n to limit - * the overall length of dst. - */ -char * -Strncat(char *const dst, const char *const src, const size_t n) -{ - register size_t i; - register char *d; - register const char *s; - - if (n != 0 && ((i = strlen(dst)) < (n - 1))) { - d = dst + i; - s = src; - /* If they specified a maximum of n characters, use n - 1 chars to - * hold the copy, and the last character in the array as a NUL. - * This is the difference between the regular strncpy routine. - * strncpy doesn't guarantee that your new string will have a - * NUL terminator, but this routine does. - */ - for (++i; i -#include -#include "Strn.h" - - -/* - * Copy src to dst, truncating or null-padding to always copy n-1 bytes. - * Return dst. - */ -char * -Strncpy(char *const dst, const char *const src, const size_t n) -{ - register char *d; - register const char *s; - register size_t i; - - d = dst; - *d = 0; - if (n != 0) { - s = src; - /* If they specified a maximum of n characters, use n - 1 chars to - * hold the copy, and the last character in the array as a NUL. - * This is the difference between the regular strncpy routine. - * strncpy doesn't guarantee that your new string will have a - * NUL terminator, but this routine does. - */ - for (i=1; i -#include -#include "Strn.h" - -/* - * Concatenate src on the end of dst. The resulting string will have at most - * n-1 characters, not counting the NUL terminator which is always appended - * unlike strncat. The other big difference is that strncpy uses n as the - * max number of characters _appended_, while this routine uses n to limit - * the overall length of dst. - * - * This routine also differs in that it returns a pointer to the end - * of the buffer, instead of strncat which returns a pointer to the start. - */ -char * -Strnpcat(char *const dst, const char *const src, size_t n) -{ - register size_t i; - register char *d; - register const char *s; - register char c; - char *ret; - - if (n != 0 && ((i = strlen(dst)) < (n - 1))) { - d = dst + i; - s = src; - /* If they specified a maximum of n characters, use n - 1 chars to - * hold the copy, and the last character in the array as a NUL. - * This is the difference between the regular strncpy routine. - * strncpy doesn't guarantee that your new string will have a - * NUL terminator, but this routine does. - */ - for (++i; i -#include -#include "Strn.h" - -/* - * Copy src to dst, truncating or null-padding to always copy n-1 bytes. - * - * This routine differs from strncpy in that it returns a pointer to the end - * of the buffer, instead of strncat which returns a pointer to the start. - */ -char * -Strnpcpy(char *const dst, const char *const src, size_t n) -{ - register char *d; - register const char *s; - register char c; - char *ret; - register size_t i; - - d = dst; - if (n != 0) { - s = src; - /* If they specified a maximum of n characters, use n - 1 chars to - * hold the copy, and the last character in the array as a NUL. - * This is the difference between the regular strncpy routine. - * strncpy doesn't guarantee that your new string will have a - * NUL terminator, but this routine does. - */ - for (i=1; i -#include "Strn.h" - -/* This version of Strtok differs from the regular ANSI strtok in that - * an empty token can be returned, and consecutive delimiters are not - * ignored like ANSI does. Example: - * - * Parse String = ",,mike,gleason,-West Interactive,402-573-1000" - * Delimiters = ",-" - * - * (ANSI strtok:) - * strtok 1=[mike] length=4 - * strtok 2=[gleason] length=7 - * strtok 3=[West Interactive] length=16 - * strtok 4=[402] length=3 - * strtok 5=[573] length=3 - * strtok 6=[1000] length=4 - * - * (Strtok:) - * Strtok 1=[] length=0 - * Strtok 2=[] length=0 - * Strtok 3=[mike] length=4 - * Strtok 4=[gleason] length=7 - * Strtok 5=[] length=0 - * Strtok 6=[West Interactive] length=16 - * Strtok 7=[402] length=3 - * Strtok 8=[573] length=3 - * Strtok 9=[1000] length=4 - * - */ - -char * -Strtok(char *buf, const char *delims) -{ - static char *p = NULL; - char *start, *end; - - if (buf != NULL) { - p = buf; - } else { - if (p == NULL) - return (NULL); /* No more tokens. */ - } - for (start = p, end = p; ; end++) { - if (*end == '\0') { - p = NULL; /* This is the last token. */ - break; - } - if (strchr(delims, (int) *end) != NULL) { - *end++ = '\0'; - p = end; - break; - } - } - return (start); -} /* Strtok */ - - - - -/* This is a bounds-safe version of Strtok, where you also pass a pointer - * to the token to write into, and its size. Using the example above, - * with a char token[8], you get the following. Notice that the token - * is not overrun, and is always nul-terminated: - * - * Strntok 1=[] length=0 - * Strntok 2=[] length=0 - * Strntok 3=[mike] length=4 - * Strntok 4=[gleason] length=7 - * Strntok 5=[] length=0 - * Strntok 6=[West In] length=7 - * Strntok 7=[402] length=3 - * Strntok 8=[573] length=3 - * Strntok 9=[1000] length=4 - */ - -int -Strntok(char *dstTokenStart, size_t tokenSize, char *buf, const char *delims) -{ - static char *p = NULL; - char *end; - char *lim; - char *dst; - int len; - - dst = dstTokenStart; - lim = dst + tokenSize - 1; /* Leave room for nul byte. */ - - if (buf != NULL) { - p = buf; - } else { - if (p == NULL) { - *dst = '\0'; - return (-1); /* No more tokens. */ - } - } - - for (end = p; ; end++) { - if (*end == '\0') { - p = NULL; /* This is the last token. */ - break; - } - if (strchr(delims, (int) *end) != NULL) { - ++end; - p = end; - break; - } - if (dst < lim) /* Don't overrun token size. */ - *dst++ = *end; - } - *dst = '\0'; - len = (int) (dst - dstTokenStart); /* Return length of token. */ - -#if (STRN_ZERO_PAD == 1) - /* Pad with zeros. */ - for (++dst; dst <= lim; ) - *dst++ = 0; -#endif /* STRN_ZERO_PAD */ - - return (len); -} /* Strntok */ - - - -#ifdef TESTING_STRTOK -#include - -void -main(int argc, char **argv) -{ - char buf[256]; - int i; - char *t; - char token[8]; - int tokenLen; - - if (argc < 3) { - fprintf(stderr, "Usage: test \"buffer,with,delims\" \n"); - exit(1); - } - strcpy(buf, argv[1]); - i = 1; - t = strtok(buf, argv[2]); - if (t == NULL) - exit(0); - do { - printf("strtok %d=[%s] length=%d\n", i, t, (int) strlen(t)); - t = strtok(NULL, argv[2]); - ++i; - } while (t != NULL); - - printf("------------------------------------------------\n"); - strcpy(buf, argv[1]); - i = 1; - t = Strtok(buf, argv[2]); - if (t == NULL) - exit(0); - do { - printf("Strtok %d=[%s] length=%d\n", i, t, (int) strlen(t)); - t = Strtok(NULL, argv[2]); - ++i; - } while (t != NULL); - - printf("------------------------------------------------\n"); - strcpy(buf, argv[1]); - i = 1; - tokenLen = Strntok(token, sizeof(token), buf, argv[2]); - if (tokenLen < 0) - exit(0); - do { - printf("Strntok %d=[%s] length=%d\n", i, token, tokenLen); - tokenLen = Strntok(token, sizeof(token), NULL, argv[2]); - ++i; - } while (tokenLen >= 0); - exit(0); -} -#endif diff --git a/rosapps/applications/net/ncftp/Strn/config.h.in b/rosapps/applications/net/ncftp/Strn/config.h.in deleted file mode 100644 index 2122b45102e..00000000000 --- a/rosapps/applications/net/ncftp/Strn/config.h.in +++ /dev/null @@ -1,10 +0,0 @@ -/* config.h.in. Generated automatically from configure.in by autoheader. */ - -/* Define to empty if the keyword does not work. */ -#undef const - -/* Define to `unsigned' if doesn't define. */ -#undef size_t - -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS diff --git a/rosapps/applications/net/ncftp/Strn/configure.in b/rosapps/applications/net/ncftp/Strn/configure.in deleted file mode 100644 index be5b9460009..00000000000 --- a/rosapps/applications/net/ncftp/Strn/configure.in +++ /dev/null @@ -1,19 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(Strn.h) -wi_ARG_ENABLE_DEBUG - -dnl Checks for programs. -AC_PROG_CC -AC_PROG_LN_S -AC_PROG_RANLIB - -dnl Checks for header files. -AC_HEADER_STDC - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_TYPE_SIZE_T - -dnl Checks for library functions. - -AC_OUTPUT(Makefile) diff --git a/rosapps/applications/net/ncftp/Strn/strtokc.c b/rosapps/applications/net/ncftp/Strn/strtokc.c deleted file mode 100644 index ee1841d2869..00000000000 --- a/rosapps/applications/net/ncftp/Strn/strtokc.c +++ /dev/null @@ -1,240 +0,0 @@ -/* strtokc.c */ - -#include -#include "Strn.h" - -char * -strtokc(char *parsestr, const char *delims, char **context) -{ - char *cp; - const char *cp2; - char c, c2; - char *start; - - if (parsestr == NULL) - start = *context; - else - start = parsestr; - - if ((start == NULL) || (delims == NULL)) { - *context = NULL; - return NULL; - } - - /* Eat leading delimiters. */ - for (cp = start; ; ) { -next1: - c = *cp++; - if (c == '\0') { - /* No more tokens. */ - *context = NULL; - return (NULL); - } - for (cp2 = delims; ; ) { - c2 = (char) *cp2++; - if (c2 == '\0') { - /* This character was not a delimiter. - * The token starts here. - */ - start = cp - 1; - goto starttok; - } - if (c2 == c) { - /* This char was a delimiter. */ - /* Skip it, look at next character. */ - goto next1; - } - } - /*NOTREACHED*/ - } - -starttok: - for ( ; ; cp++) { - c = *cp; - if (c == '\0') { - /* Token is finished. */ - *context = cp; - break; - } - for (cp2 = delims; ; ) { - c2 = (char) *cp2++; - if (c2 == '\0') { - /* This character was not a delimiter. - * Keep it as part of current token. - */ - break; - } - if (c2 == c) { - /* This char was a delimiter. */ - /* End of token. */ - *cp++ = '\0'; - *context = cp; - return (start); - } - } - } - return (start); -} /* strtokc */ - - - - -/* Same as strtokc, only you specify the destination buffer to write - * the token in along with its size. strntokc will write to the dst - * buffer, always nul-terminating it. - * - * It also returns the length of the token, or zero if there was no - * token. This differs from strtokc, which returns a pointer to the - * token or NULL for no token. - */ - -int -strntokc(char *dstTokenStart, size_t tokenSize, char *parsestr, const char *delims, char **context) -{ - char *cp; - const char *cp2; - char c, c2; - char *start; - int len; - char *dst, *lim; - - dst = dstTokenStart; - lim = dst + tokenSize - 1; /* Leave room for nul byte. */ - - if (parsestr == NULL) - start = *context; - else - start = parsestr; - - if ((start == NULL) || (delims == NULL)) { - *context = NULL; - goto done; - } - - /* Eat leading delimiters. */ - for (cp = start; ; ) { -next1: - c = *cp++; - if (c == '\0') { - /* No more tokens. */ - *context = NULL; - goto done; - } - for (cp2 = delims; ; ) { - c2 = (char) *cp2++; - if (c2 == '\0') { - /* This character was not a delimiter. - * The token starts here. - */ - start = cp - 1; - if (dst < lim) - *dst++ = c; - goto starttok; - } - if (c2 == c) { - /* This char was a delimiter. */ - /* Skip it, look at next character. */ - goto next1; - } - } - /*NOTREACHED*/ - } - -starttok: - for ( ; ; cp++) { - c = *cp; - if (c == '\0') { - /* Token is finished. */ - *context = cp; - break; - } - for (cp2 = delims; ; ) { - c2 = (char) *cp2++; - if (c2 == '\0') { - /* This character was not a delimiter. - * Keep it as part of current token. - */ - break; - } - if (c2 == c) { - /* This char was a delimiter. */ - /* End of token. */ - *cp++ = '\0'; - *context = cp; - goto done; - } - } - if (dst < lim) /* Don't overrun token size. */ - *dst++ = c; - } - -done: - *dst = '\0'; - len = (int) (dst - dstTokenStart); /* Return length of token. */ - -#if (STRN_ZERO_PAD == 1) - /* Pad with zeros. */ - for (++dst; dst <= lim; ) - *dst++ = 0; -#endif /* STRN_ZERO_PAD */ - - return (len); -} /* strntokc */ - - - - -#ifdef TESTING_STRTOK -#include - -void -main(int argc, char **argv) -{ - char buf[256]; - int i; - char *t; - char token[8]; - int tokenLen; - char *context; - - if (argc < 3) { - fprintf(stderr, "Usage: test \"buffer,with,delims\" \n"); - exit(1); - } - strcpy(buf, argv[1]); - i = 1; - t = strtok(buf, argv[2]); - if (t == NULL) - exit(0); - do { - printf("strtok %d=[%s] length=%d\n", i, t, (int) strlen(t)); - t = strtok(NULL, argv[2]); - ++i; - } while (t != NULL); - - printf("------------------------------------------------\n"); - strcpy(buf, argv[1]); - i = 1; - t = strtokc(buf, argv[2], &context); - if (t == NULL) - exit(0); - do { - printf("strtokc %d=[%s] length=%d\n", i, t, (int) strlen(t)); - t = strtokc(NULL, argv[2], &context); - ++i; - } while (t != NULL); - - printf("------------------------------------------------\n"); - strcpy(buf, argv[1]); - i = 1; - tokenLen = strntokc(token, sizeof(token), buf, argv[2], &context); - if (tokenLen <= 0) - exit(0); - do { - printf("strntokc %d=[%s] length=%d\n", i, token, tokenLen); - tokenLen = strntokc(token, sizeof(token), NULL, argv[2], &context); - ++i; - } while (tokenLen > 0); - exit(0); -} -#endif diff --git a/rosapps/applications/net/ncftp/Strn/tester.c b/rosapps/applications/net/ncftp/Strn/tester.c deleted file mode 100644 index 66e3034f53d..00000000000 --- a/rosapps/applications/net/ncftp/Strn/tester.c +++ /dev/null @@ -1,135 +0,0 @@ -#include -#include -#include -#include - -int main(int argc, char **argv) -{ - char a[8]; - char pad1[32]; - char *b; - char c[37]; - char pad2[23]; - int i; - int len1, len2; - - b = Strncpy(a, "hello", sizeof(a)); - b = Strncat(b, "world", sizeof(a)); - printf("1: result=[%s] should be=[%s]\n", - b, - "hellowo" - ); - - for (i=0; i. */ -#undef DGUX - -/* Define if you have . */ -#undef DIRENT - -/* Define to the type of elements in the array set by `getgroups'. - Usually this is either `int' or `gid_t'. */ -#undef GETGROUPS_T - -/* Define if the `getloadavg' function needs to be run setuid or setgid. */ -#undef GETLOADAVG_PRIVILEGED - -/* Define if the `getpgrp' function takes no argument. */ -#undef GETPGRP_VOID - -/* Define to `int' if doesn't define. */ -#undef gid_t - -/* Define if you have alloca, as a function or macro. */ -#undef HAVE_ALLOCA - -/* Define if you have and it should be used (not on Ultrix). */ -#undef HAVE_ALLOCA_H - -/* Define if your curses library has this functionality. */ -#undef HAVE_BEEP - -#undef HAVE_CURSES_H - -/* Define if you don't have vprintf but do have _doprnt. */ -#undef HAVE_DOPRNT - -/* Define if your system has a working fnmatch function. */ -#undef HAVE_FNMATCH - -/* Define if your curses library has this functionality. */ -#undef HAVE_GETBEGX - -/* Define if your system has its own `getloadavg' function. */ -#undef HAVE_GETLOADAVG - -/* Define if your curses library has this functionality. */ -#undef HAVE_GETMAXX - -/* Define if your curses library has this functionality. */ -#undef HAVE_GETMAXYX - -/* Define if you have the getmntent function. */ -#undef HAVE_GETMNTENT - -/* Define if you have . */ -#undef HAVE_HPSECURITY_H - -/* Define if you have the curses library. */ -#undef HAVE_LIBCURSES - -/* Define if you want to use the Hpwd library, and you also have it's corresponding database library (such as *dbm). */ -#undef HAVE_LIBHPWD - -/* Define if you have the ncurses library. */ -#undef HAVE_LIBNCURSES - -/* Define if you have the readline library, version 2.0 or higher. */ -#undef HAVE_LIBREADLINE - -/* Define if the `long double' type works. */ -#undef HAVE_LONG_DOUBLE - -/* Define if you support file names longer than 14 characters. */ -#undef HAVE_LONG_FILE_NAMES - -/* Define if your compiler supports the "long long" integral type. */ -#undef HAVE_LONG_LONG - -/* Most system's curses library uses a _maxx field instead of maxx. */ -#undef HAVE__MAXX - -/* Define if you have a working `mmap' system call. */ -#undef HAVE_MMAP - -#undef HAVE_MSGHDR_ACCRIGHTS - -#undef HAVE_MSGHDR_CONTROL - -#undef HAVE_PR_PASSWD_FG_OLDCRYPT - -/* Define if you have a _res global variable used by resolve routines. */ -#undef HAVE__RES_DEFDNAME - -/* Define if system calls automatically restart after interruption - by a signal. */ -#undef HAVE_RESTARTABLE_SYSCALLS - -/* Define if you have sigsetjmp and siglongjmp. */ -#undef HAVE_SIGSETJMP - -#undef HAVE_SOCKADDR_UN_SUN_LEN - -#undef HAVE_STATFS_F_BAVAIL - -/* Define if your struct stat has st_blksize. */ -#undef HAVE_ST_BLKSIZE - -/* Define if your struct stat has st_blocks. */ -#undef HAVE_ST_BLOCKS - -/* Define if you have the strcoll function and it is properly defined. */ -#undef HAVE_STRCOLL - -/* Define if your struct stat has st_rdev. */ -#undef HAVE_ST_RDEV - -/* Define if you have the strftime function. */ -#undef HAVE_STRFTIME - -/* Define if you have the ANSI # stringizing operator in cpp. */ -#undef HAVE_STRINGIZE - -#undef HAVE_STRUCT_CMSGDHR - -#undef HAVE_STRUCT_STAT64 - -/* Define if you have that is POSIX.1 compatible. */ -#undef HAVE_SYS_WAIT_H - -/* Define if your curses library has this functionality. */ -#undef HAVE_TOUCHWIN - -/* Define if your struct tm has tm_zone. */ -#undef HAVE_TM_ZONE - -/* Define if you don't have tm_zone but do have the external array - tzname. */ -#undef HAVE_TZNAME - -/* Define if you have . */ -#undef HAVE_UNISTD_H - -/* Define if utime(file, NULL) sets file's timestamp to the present. */ -#undef HAVE_UTIME_NULL - -/* Define if you have a ut_host field in your struct utmp. */ -#undef HAVE_UTMP_UT_HOST - -#undef HAVE_UTMP_UT_NAME - -#undef HAVE_UTMP_UT_USER - -#undef HAVE_UTMP_UT_PID - -#undef HAVE_UTMP_UT_TIME - -#undef HAVE_UTMPX_UT_SYSLEN - -/* Define if you have . */ -#undef HAVE_VFORK_H - -/* Define if you have the vprintf function. */ -#undef HAVE_VPRINTF - -/* Define if you have the wait3 system call. */ -#undef HAVE_WAIT3 - -/* Define as __inline if that's what the C compiler calls it. */ -#undef inline - -/* Define if chown is promiscuous (regular user can give away ownership) */ -#undef INSECURE_CHOWN - -/* Define if int is 16 bits instead of 32. */ -#undef INT_16_BITS - -/* Define if long int is 64 bits. */ -#undef LONG_64_BITS - -/* Define if major, minor, and makedev are declared in . */ -#undef MAJOR_IN_MKDEV - -/* Define if major, minor, and makedev are declared in . */ -#undef MAJOR_IN_SYSMACROS - -/* Define if on MINIX. */ -#undef _MINIX - -/* Define to `int' if doesn't define. */ -#undef mode_t - -/* Define if you don't have , but have . */ -#undef NDIR - -/* Define if you have , and doesn't declare the - mem* functions. */ -#undef NEED_MEMORY_H - -/* Define if your struct nlist has an n_un member. */ -#undef NLIST_NAME_UNION - -/* Define if you have . */ -#undef NLIST_STRUCT - -/* Define if your C compiler doesn't accept -c and -o together. */ -#undef NO_MINUS_C_MINUS_O - -/* Define if your Fortran 77 compiler doesn't accept -c and -o together. */ -#undef F77_NO_MINUS_C_MINUS_O - -/* Define to `long' if doesn't define. */ -#undef off_t - -#undef OS - -/* Define to `int' if doesn't define. */ -#undef pid_t - -/* Define if the system does not provide POSIX.1 features except - with this defined. */ -#undef _POSIX_1_SOURCE - -/* Define if you need to in order for stat and other things to work. */ -#undef _POSIX_SOURCE - -/* Format string for the printf() family for 64 bit integers. */ -#undef PRINTF_LONG_LONG - -/* Define if printing a "long long" with "%lld" works . */ -#undef PRINTF_LONG_LONG_LLD - -/* Define if printing a "long long" with "%qd" works . */ -#undef PRINTF_LONG_LONG_QD - -/* Define if your C compiler supports ANSI C function prototyping. */ -#undef PROTOTYPES - -/* Define as the return type of signal handlers (int or void). */ -#undef RETSIGTYPE - -/* Format string for the scanf() family for 64 bit integers. */ -#undef SCANF_LONG_LONG - -/* Define if scanning a "long long" with "%lld" works. */ -#undef SCANF_LONG_LONG_LLD - -/* Define if scanning a "long long" with "%qd" works. */ -#undef SCANF_LONG_LONG_QD - -/* Define to the type of arg1 for select(). */ -#undef SELECT_TYPE_ARG1 - -/* Define to the type of args 2, 3 and 4 for select(). */ -#undef SELECT_TYPE_ARG234 - -/* Define to the type of arg5 for select(). */ -#undef SELECT_TYPE_ARG5 - -/* Define if the `setpgrp' function takes no argument. */ -#undef SETPGRP_VOID - -/* Define if the setvbuf function takes the buffering type as its second - argument and the buffer pointer as the third, as on System V - before release 3. */ -#undef SETVBUF_REVERSED - -/* Define to `int' if doesn't define. */ -#undef sig_atomic_t - -/* Define to `unsigned' if doesn't define. */ -#undef size_t - -#undef SNPRINTF_TERMINATES - -#undef SPRINTF_RETURNS_PTR - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown - */ -#undef STACK_DIRECTION - -/* Define if the `S_IS*' macros in do not work properly. */ -#undef STAT_MACROS_BROKEN - -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define on System V Release 4. */ -#undef SVR4 - -/* Define if you don't have , but have . */ -#undef SYSDIR - -/* Define if you don't have , but have . */ -#undef SYSNDIR - -/* Define if `sys_siglist' is declared by . */ -#undef SYS_SIGLIST_DECLARED - -/* Define to the full path of the Tar program, if you have it. */ -#undef TAR - -/* Define if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME - -/* Define if your declares struct tm. */ -#undef TM_IN_SYS_TIME - -/* Define to `int' if doesn't define. */ -#undef uid_t - -/* Define for Encore UMAX. */ -#undef UMAX - -/* Result of "uname -a" */ -#undef UNAME - -/* Define for Encore UMAX 4.3 that has - instead of . */ -#undef UMAX4_3 - -/* Define if you do not have , index, bzero, etc.. */ -#undef USG - -/* Define vfork as fork if vfork does not work. */ -#undef vfork - -/* Define if the closedir function returns void instead of int. */ -#undef VOID_CLOSEDIR - -/* Define if your processor stores words with the most significant - byte first (like Motorola and SPARC, unlike Intel and VAX). */ -#undef WORDS_BIGENDIAN - -/* Define if the X Window System is missing or not being used. */ -#undef X_DISPLAY_MISSING - -/* Define if lex declares yytext as a char * by default, not a char[]. */ -#undef YYTEXT_POINTER - - -/* Leave that blank line there!! Autoheader needs it. - If you're adding to this file, keep in mind: - The entries are in sort -df order: alphabetical, case insensitive, - ignoring punctuation (such as underscores). */ diff --git a/rosapps/applications/net/ncftp/autoconf/aclocal.m4 b/rosapps/applications/net/ncftp/autoconf/aclocal.m4 deleted file mode 100644 index 1c5a95ee2d5..00000000000 --- a/rosapps/applications/net/ncftp/autoconf/aclocal.m4 +++ /dev/null @@ -1,2391 +0,0 @@ -AC_DEFUN(wi_ARG_ENABLE_DEBUG, [ -# if DEBUGBUILD is yes, other macros try to set up a compilation environment -# with debugging symbols enabled. Example macros which are affected are -# wi_CFLAGS and wi_SFLAG. -# -DEBUGBUILD=no -DEBUGCONFIGUREFLAG="" -AC_ARG_ENABLE(debug, -[ --enable-debug enable debugging symbols], -[ - DEBUGBUILD=yes - DEBUGCONFIGUREFLAG="--enable-debug" -],[ - DEBUGBUILD=no - DEBUGCONFIGUREFLAG="" -]) -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_EXTRA_IDIR, [ -incdir="$1" -if test -r $incdir ; then - case "$CPPFLAGS" in - *${incdir}*) - # echo " + already had $incdir" 1>&6 - ;; - *) - if test "$CPPFLAGS" = "" ; then - CPPFLAGS="-I$incdir" - else - CPPFLAGS="$CPPFLAGS -I$incdir" - fi - echo " + found $incdir" 1>&6 - ;; - esac -fi -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_PROG_TAR, [ -TAR="" -AC_PATH_PROG(TAR, "tar") -if test -x "$TAR" ; then - AC_DEFINE_UNQUOTED(TAR, "$TAR") -fi -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_EXTRA_LDIR, [ -libdir="$1" -if test -r $libdir ; then - case "$LDFLAGS" in - *${libdir}*) - # echo " + already had $libdir" 1>&6 - ;; - *) - if test "$LDFLAGS" = "" ; then - LDFLAGS="-L$libdir" - else - LDFLAGS="$LDFLAGS -L$libdir" - fi - echo " + found $libdir" 1>&6 - ;; - esac -fi -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_GNU_LD, [ -AC_MSG_CHECKING([for GNU ld]) -wi_cv_prog_ld="ld" -result="no" -x=`ld --version 2>/dev/null | fgrep GNU` -if test "$x" != "" ; then - wi_cv_prog_ld="gld" - result="yes" -fi -AC_MSG_RESULT($result) -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_LD_READONLY_TEXT, [ -if test "$SYS$wi_cv_prog_ld" = "linuxgld" ; then - LDFLAGS="$LDFLAGS -Xlinker -n" -fi -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_EXTRA_SYSV_SUNOS_DIRS, [ -AC_MSG_CHECKING([for System V compatibility directories]) -AC_MSG_RESULT([]) -wi_EXTRA_IDIR("/usr/5include") -wi_EXTRA_LDIR("/usr/5lib") -]) -dnl -dnl -dnl If you want to also look for include and lib subdirectories in the -dnl $HOME tree, you supply "yes" as the first argument to this macro. -dnl -dnl If you want to look for subdirectories in include/lib directories, -dnl you pass the names in argument 3, otherwise pass a dash. -dnl -AC_DEFUN(wi_EXTRA_DIRS, [ -AC_MSG_CHECKING([for extra include and lib directories]) -AC_MSG_RESULT([]) -ifelse([$1], yes, [dnl -b1=`cd .. ; pwd` -b2=`cd ../.. ; pwd` -exdirs="$HOME $j $b1 $b2 $prefix $2" -if test -x "$HOME/bin/OS" ; then - b3=`$HOME/bin/OS` - b3="$HOME/$b3" - if test -d "$b3" ; then - exdirs="$b3 $exdirs" - fi -fi -],[dnl -exdirs="$prefix $2" -]) -subexdirs="$3" -if test "$subexdirs" = "" ; then - subexdirs="-" -fi -for subexdir in $subexdirs ; do -if test "$subexdir" = "-" ; then - subexdir="" -else - subexdir="/$subexdir" -fi -for exdir in $exdirs ; do - case "$exdir" in - "/usr"|"/"|"//") - if test "$exdir" = "//" ; then exdir="/" ; fi - if test "$subexdir" != ""; then - incdir="${exdir}/include${subexdir}" - wi_EXTRA_IDIR($incdir) - - libdir="${exdir}/lib${subexdir}" - wi_EXTRA_LDIR($libdir) - fi - ;; - *) - if test "$subexdir" = ""; then - incdir="${exdir}/include${subexdir}" - wi_EXTRA_IDIR($incdir) - - libdir="${exdir}/lib${subexdir}" - wi_EXTRA_LDIR($libdir) - fi - ;; - esac -done -done -]) -dnl -dnl -dnl -AC_DEFUN(wi_HPUX_CFLAGS, -[AC_MSG_CHECKING(if HP-UX ansi C compiler flags are needed) -AC_REQUIRE([AC_PROG_CC]) -AC_REQUIRE([wi_OS_VAR]) -ac_cv_hpux_flags=no -if test "$os" = hp-ux ; then - if test "$ac_cv_prog_gcc" = yes ; then - if test "$CFLAGS" != "" ; then - # Shouldn't be in there. -changequote(<<, >>)dnl - CFLAGS=`echo "$CFLAGS" | sed 's/-A[ae]//g'` -changequote([, ])dnl - case "$CFLAGS" in - *_HPUX_SOURCE*) - ;; - *) - # This is required for the extended - # namespace. - # - CFLAGS="-D_HPUX_SOURCE $CFLAGS" - ;; - esac - fi - else - # If you're not using gcc, then you better have a cc/c89 - # that is usable. If you have the barebones compiler, it - # won't work. The good compiler uses -Aa for the ANSI - # compatible stuff. -changequote(<<, >>)dnl - x=`echo "$CFLAGS" | grep 'A[ae]' 2>/dev/null` -changequote([, ])dnl - if test "$x" = "" ; then - CFLAGS="$CFLAGS -Ae" - fi - fi - ac_cv_hpux_flags=yes -fi -AC_MSG_RESULT($ac_cv_hpux_flags) -]) -dnl -dnl -dnl -AC_DEFUN(wi_SFLAG, [AC_REQUIRE([AC_PROG_CC]) -STRIP="strip" -if test "$SFLAG" = "" ; then - SFLAG="-s" - case "$OS" in - macosx*) - SFLAG='-Wl,-x' - ;; - esac -fi -# -# Was it ./configure --enable-debug ? -# -if test "$DEBUGBUILD" = yes ; then - SFLAG="" - STRIP=":" -fi -case "$CFLAGS" in - "-g"|"-g "*|*" -g"|*" -g "*|*"-g"[0-9]*) - # SFLAG="# $SFLAG" - SFLAG="" - STRIP=":" - ;; -esac -STRIPFLAG="$SFLAG" -]) -dnl -dnl -dnl -AC_DEFUN(wi_REQUEST_NO_Y2K_WARNINGS, [ - wi_cv_request_no_y2k=yes -]) -dnl -dnl -dnl -AC_DEFUN(wi_CFLAGS_NO_Y2K_WARNINGS, [AC_REQUIRE([AC_PROG_CC]) -if test "$ac_cv_prog_gcc" = yes ; then - case "$CFLAGS" in - *-Wno-format-y2k*) - ;; - *) - oldCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Wno-format-y2k" - # - # Now check if this version of GCC - # accepts this flag... - # -AC_TRY_COMPILE([],[int junk;],[],[CFLAGS="$oldCFLAGS"]) - unset oldCFLAGS - ;; - esac -fi -]) -dnl -dnl -dnl -AC_DEFUN(wi_CFLAGS, [AC_REQUIRE([AC_PROG_CC]) -AC_REQUIRE_CPP() -wi_HPUX_CFLAGS - if test "$CFLAGS" = "" ; then - AC_MSG_WARN([Your CFLAGS environment variable was not set. A default of \"-g\" will be used.]) - CFLAGS="-g" - fi - if test "x$wi_cv_request_no_y2k" = xyes ; then - wi_CFLAGS_NO_Y2K_WARNINGS - fi - if test "$NOOPTCFLAGS" = "" ; then -changequote(<<, >>)dnl - NOOPTCFLAGS=`echo "$CFLAGS" | sed 's/[-+]O[0-9A-Za-z]*//g;s/-xO[0-9]//g;s/-Wc,-O3//g;s/-IPA//g;s/\ \ */ /g;s/^\ *//;s/\ *$//;'` -changequote([, ])dnl - fi - if test "$DEBUGCFLAGS" = "" ; then - DEBUGCFLAGS="-g $NOOPTCFLAGS" - fi - # - # Was it ./configure --enable-debug ? - # - AC_MSG_CHECKING([if this is a debug build]) - if test "$DEBUGBUILD" = yes ; then - AC_MSG_RESULT(yes) - CFLAGS="$DEBUGCFLAGS" - SFLAG="" - STRIPFLAG="" - STRIP=":" - else - AC_MSG_RESULT(no) - fi - AC_MSG_CHECKING([NOOPTCFLAGS]) - AC_MSG_RESULT($NOOPTCFLAGS) - AC_MSG_CHECKING([DEBUGCFLAGS]) - AC_MSG_RESULT($DEBUGCFLAGS) - AC_MSG_CHECKING([CFLAGS]) - AC_MSG_RESULT($CFLAGS) -]) -dnl -dnl -dnl -AC_DEFUN(wi_CFLAGS_LFS64, [AC_REQUIRE([AC_PROG_CC]) -AC_REQUIRE([wi_OS_VAR]) -wi_CFLAGS -if test "os_${os}_gcc_${ac_cv_prog_gcc}" = os_hp-ux_gcc_yes ; then - case "$CFLAGS" in - *__STDC_EXT__*) - ;; - *) - # This is required for the extended - # namespace symbols for Large Files. - # - CFLAGS="-D__STDC_EXT__ $CFLAGS" - ;; - esac -fi -case "$CFLAGS" in - *-D_LARGEFILE64_SOURCE*) - ;; - *) - CFLAGS="-D_LARGEFILE64_SOURCE $CFLAGS" - ;; -esac -AC_MSG_CHECKING([additional CFLAGS for LFS64 support]) -AC_MSG_RESULT($CFLAGS) -]) -dnl -dnl -dnl -AC_DEFUN(wi_PROTOTYPES, [ -AC_MSG_CHECKING(if the compiler supports function prototypes) -AC_TRY_COMPILE(,[extern void exit(int status);],[wi_cv_prototypes=yes -AC_DEFINE(PROTOTYPES)],wi_cv_prototypes=no) -AC_MSG_RESULT($wi_cv_prototypes) -]) -dnl -dnl -dnl -AC_DEFUN(wi_INSECURE_CHOWN, [ -AC_MSG_CHECKING(if chown can be used to subvert security) -AC_TRY_RUN([ -#include -#include -#include - -main() -{ - int result; - char fn[64]; - FILE *fp; - struct stat st; - - setuid(1); /* if you're root, try set to someone else. */ - sprintf(fn, "/tmp/fu%06ld", (long) getpid()); - unlink(fn); - fp = fopen(fn, "w"); - if (fp == NULL) - exit(1); /* assume the worst */ - fprintf(fp, "%s\n", "hello world"); - fclose(fp); - - result = chown(fn, 0, 0); - if (stat(fn, &st) < 0) { - unlink(fn); - exit((result == 0) ? 0 : 1); - } - unlink(fn); - - /* exit(0) if the insecure chown to uid 0 succeeded. */ - exit((st.st_uid == 0) ? 0 : 1); -}],[ - # action if true - wi_cv_insecure_chown=yes - AC_DEFINE(INSECURE_CHOWN) -],[ - # action if false - wi_cv_insecure_chown=no -],[ - # action if cross-compiling, guess - wi_cv_insecure_chown=no -]) - -AC_MSG_RESULT($wi_cv_insecure_chown) -]) -dnl -dnl -dnl -AC_DEFUN(wi_LIB_SNPRINTF, [ -if test "$ac_cv_func_snprintf" = "no" ; then - AC_CHECK_LIB(snprintf,snprintf) - if test "$ac_cv_lib_snprintf_snprintf" = yes ; then - unset ac_cv_func_snprintf - AC_CHECK_FUNCS(snprintf) - fi -fi -]) -dnl -dnl -dnl -AC_DEFUN(wi_SNPRINTF_TERMINATES, [ -if test "$ac_cv_func_snprintf" != "no" ; then -AC_MSG_CHECKING(if snprintf always NUL terminates) - if test "$ac_cv_func_snprintf" = "no" ; then - AC_CHECK_LIB(snprintf,snprintf) - fi -AC_TRY_RUN([ - /* program */ -#include -#include - -main() -{ - char s[10]; - int i, result; - - for (i=0; i<(int)(sizeof(s)/sizeof(char)); i++) - s[i] = 'x'; - result = (int) snprintf(s, sizeof(s), "%s %s!", "hello", "world"); - if (s[sizeof(s) - 1] == '\0') - exit(0); - exit(1); - -} -],[ - # action if true - wi_cv_snprintf_terminates=no - AC_DEFINE(SNPRINTF_TERMINATES) - x="yes"; -],[ - # action if false - wi_cv_snprintf_terminates=yes - x="no"; -],[ - # action if cross compiling - wi_cv_snprintf_terminates=no - x="unknown"; -]) -AC_MSG_RESULT($x) -fi -]) -dnl -dnl -dnl -AC_DEFUN(wi_SNPRINTF, [ -wi_SPRINTF_RETVAL -dnl Uncache these -- config.cache doesn't cache it right for this case. -unset ac_cv_func_snprintf -unset ac_cv_func_vsnprintf - -AC_CHECK_FUNCS(snprintf vsnprintf) -wi_SNPRINTF_TERMINATES - -AC_CHECK_HEADERS(snprintf.h) -wi_LIB_SNPRINTF -]) -dnl -dnl -dnl -AC_DEFUN(wi_HEADER_HPSECURITY_H, [ -AC_MSG_CHECKING(for hpsecurity.h) -wi_cv_header_hpsecurity_h=no -if test -f /usr/include/hpsecurity.h ; then - wi_cv_header_hpsecurity_h=yes - AC_DEFINE(HAVE_HPSECURITY_H) -fi -AC_MSG_RESULT($wi_cv_header_hpsecurity_h) -]) -dnl -dnl -dnl -AC_DEFUN(wi_HEADER_SYS_SELECT_H, [ -# See if is includable after -if test "$ac_cv_header_sys_time_h" = no ; then -AC_CHECK_HEADERS(sys/time.h sys/select.h) -else -AC_CHECK_HEADERS(sys/select.h) -fi -if test "$ac_cv_header_sys_select_h" = yes ; then - AC_MSG_CHECKING([if is compatible with ]) - selecth=yes - if test "$ac_cv_header_sys_time_h" = yes ; then - AC_TRY_COMPILE([ -#if defined(_AIX) || defined(__aix) || defined(__AIX) -# define _ALL_SOURCE 1 -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include -#include ],[ - fd_set a; - struct timeval tmval; - - tmval.tv_sec = 0;],selecth=yes,selecth=no) - fi - if test "$selecth" = yes ; then - AC_DEFINE(CAN_USE_SYS_SELECT_H) - fi - AC_MSG_RESULT($selecth) -fi -]) -dnl -dnl -dnl -AC_DEFUN(wi_LIB_44BSD, [ -AC_CHECK_FUNC(strerror,[a=yes],[a=no]) -if test "$a" = no ; then - # Not in libc, try lib44bsd. - AC_CHECK_LIB(44bsd,strerror) -fi -]) -dnl -dnl -dnl -AC_DEFUN(wi_LIB_NSL, [ -dnl Note: Check for socket lib first, then nsl. - -case "$OS" in - hpux1[123456789]*) - # HP-UX 11 uses NSL for YP services - AC_CHECK_LIB(nsl,getpwent) - ;; - - *) - AC_CHECK_FUNC(gethostbyname,[a=yes],[a=no]) - if test "$a" = no ; then - # Not in libc, try libnsl. - AC_CHECK_LIB(nsl,gethostbyname) - fi - ;; -esac - -]) -dnl -dnl -dnl -AC_DEFUN(wi_LIB_SOCKET, [ -AC_CHECK_FUNC(socket,[a=yes],[a=no]) -if test "$a" = no ; then - # Not in libc, try libsocket. - AC_CHECK_LIB(socket,socket) -fi -]) -dnl -dnl -dnl -AC_DEFUN(wi_LIB_RESOLV, [ -# See if we could access two well-known sites without help of any special -# libraries, like resolv. -dnl -AC_MSG_WARN([the following check may take several minutes if networking is not up. You may want to bring it up now and restart configure, otherwise please be patient.]) -dnl -AC_MSG_CHECKING([if we need to look for -lresolv]) -AC_TRY_RUN([ -#include -#include -#include -#include - -main() -{ - struct hostent *hp1, *hp2; - int result; - - hp1 = gethostbyname("gatekeeper.dec.com"); - hp2 = gethostbyname("ftp.ncsa.uiuc.edu"); - result = ((hp1 != (struct hostent *) 0) && (hp2 != (struct hostent *) 0)); - exit(! result); -}],look_for_resolv=no,look_for_resolv=yes,look_for_resolv=yes) - -AC_MSG_RESULT($look_for_resolv) -if test "$look_for_resolv" = yes ; then -AC_CHECK_LIB(resolv,main) -else - ac_cv_lib_resolv=no -fi -]) -dnl -dnl -dnl -AC_DEFUN(wi_LIB_TCP_WRAPPERS, [ -AC_MSG_CHECKING([for tcp wrappers library (libwrap)]) - -AC_TRY_LINK([ - /* includes */ -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include - -/* These are needed if libwrap.a was compiled with - * PROCESS_OPTIONS defined. - */ -int allow_severity = 1; /* arbitrary for this test */ -int deny_severity = 2; /* arbitrary for this test */ - -],[ - /* function-body */ - exit((allow_severity == deny_severity) ? 1 : 0); -],[ -dnl ...Don't bother defining this symbol... -dnl ...Check for tcpd.h instead... -dnl AC_DEFINE(HAVE_LIBWRAP) -dnl -dnl ...Don't modify LIBS, instead set WRAPLIB... -dnl LIBS="-lwrap $LIBS" -dnl - WRAPLIB="-lwrap" - wi_cv_lib_wrap_hosts_access=yes -],[ - WRAPLIB="" - wi_cv_lib_wrap_hosts_access=no -]) -AC_MSG_RESULT($wi_cv_lib_wrap_hosts_access) -]) -dnl -dnl -dnl -AC_DEFUN(wi_NET_LIBS, [ -# Mostly for SunOS 4 -- needs to come first because other libs depend on it -wi_LIB_44BSD - -wi_LIB_SOCKET - -if test "$SYS" = unixware ; then - # So far, only UnixWare needs this. - AC_CHECK_LIB(gen,syslog) - - case "$OS" in - unixware2*) - if test -f /usr/ucblib/libucb.a ; then - LDFLAGS="$LDFLAGS -L/usr/ucblib" - LIBS="$LIBS -lucb" - fi - if test -f /usr/include/unistd.h ; then - ac_cv_header_unistd_h=yes - fi - - # UnixWare 2 needs both lsocket and lnsl, and configure - # script won't detect this condition properly because - # the libraries are interdependent. - # - LIBS="$LIBS -lsocket -lnsl" - - # Now look for socket() - # - # AC_CHECK_FUNC(socket,[a=yes],[a=no]) - # - AC_CHECK_FUNC(socket,[a=yes],[a=no]) - ;; - *) - ;; - esac -fi - -dnl AC_CHECK_LIB(inet,main) - -wi_LIB_NSL -wi_LIB_RESOLV - -if test "$SYS" = dynixptx ; then - LIBS="$LIBS -lsocket -lnsl" -fi - -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_DEFINE_UNAME, [ -# Get first 127 chars of all uname information. Some folks have -# way too much stuff there, so grab only the first 127. -unam=`uname -a 2>/dev/null | cut -c1-127` -if test "$unam" != "" ; then - AC_DEFINE_UNQUOTED(UNAME, "$unam") -fi -]) -dnl -dnl -dnl -AC_DEFUN(wi_FUNC_SIGSETJMP, [ -AC_MSG_CHECKING([for sigsetjmp and siglongjmp]) - -AC_TRY_LINK([ - /* includes */ -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include -#include -#include -],[ - /* function-body */ - sigjmp_buf sjb; - - if (sigsetjmp(sjb, 1) != 0) - siglongjmp(sjb, 1); /* bogus code, of course. */ - exit(0); -],[ - AC_DEFINE(HAVE_SIGSETJMP) - wi_cv_func_sigsetjmp=yes -],[ - wi_cv_func_sigsetjmp=no -]) -AC_MSG_RESULT($wi_cv_func_sigsetjmp) -]) -dnl -dnl -dnl -AC_DEFUN(wi_UTMP_UT_NAME, [ -AC_MSG_CHECKING([for ut_name field in struct utmp]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -],[ -struct utmp u; - -u.ut_name[0] = '\0'; -exit(((int) &u.ut_name) & 0xff); /* bogus code, of course. */ -],[ - wi_cv_utmp_ut_name=yes - AC_DEFINE(HAVE_UTMP_UT_NAME) -],[ - wi_cv_utmp_ut_name=no -]) -AC_MSG_RESULT($wi_cv_utmp_ut_name) -]) -dnl -dnl -dnl -AC_DEFUN(wi_UTMPX_UT_SYSLEN, [ -AC_MSG_CHECKING([for ut_syslen field in struct utmpx]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -],[ -struct utmpx u; - -u.ut_syslen = 0; -exit(((int) &u.ut_syslen) & 0xff); /* bogus code, of course. */ -],[ - wi_cv_utmpx_ut_syslen=yes - AC_DEFINE(HAVE_UTMPX_UT_SYSLEN) -],[ - wi_cv_utmpx_ut_syslen=no -]) -AC_MSG_RESULT($wi_cv_utmpx_ut_syslen) -]) -dnl -dnl -dnl -AC_DEFUN(wi_UTMP_UT_USER, [ -AC_MSG_CHECKING([for ut_user field in struct utmp]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -],[ -struct utmp u; - -u.ut_user[0] = '\0'; -exit(((int) &u.ut_user) & 0xff); /* bogus code, of course. */ -],[ - wi_cv_utmp_ut_user=yes - AC_DEFINE(HAVE_UTMP_UT_USER) -],[ - wi_cv_utmp_ut_user=no -]) -AC_MSG_RESULT($wi_cv_utmp_ut_user) -]) -dnl -dnl -dnl -AC_DEFUN(wi_UTMP_UT_PID, [ -AC_MSG_CHECKING([for ut_pid field in struct utmp]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -],[ -struct utmp u; - -u.ut_pid = 1; -exit(((int) &u.ut_pid) & 0xff); /* bogus code, of course. */ -],[ - wi_cv_utmp_ut_pid=yes - AC_DEFINE(HAVE_UTMP_UT_PID) -],[ - wi_cv_utmp_ut_pid=no -]) -AC_MSG_RESULT($wi_cv_utmp_ut_pid) -]) - -dnl -dnl -dnl -AC_DEFUN(wi_UTMP_UT_TIME, [ -AC_MSG_CHECKING([for ut_time field in struct utmp]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -],[ -struct utmp u; - -u.ut_time = 1; -exit(((int) &u.ut_time) & 0xff); /* bogus code, of course. */ -],[ - wi_cv_utmp_ut_time=yes - AC_DEFINE(HAVE_UTMP_UT_TIME) -],[ - wi_cv_utmp_ut_time=no -]) -AC_MSG_RESULT($wi_cv_utmp_ut_time) -]) -dnl -dnl -dnl -AC_DEFUN(wi_UTMP_UT_HOST, [ -AC_MSG_CHECKING([for ut_host field in struct utmp]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -],[ -struct utmp u; - -u.ut_host[0] = '\0'; -exit(((int) &u.ut_host) & 0xff); /* bogus code, of course. */ -],[ - wi_cv_utmp_ut_host=yes - AC_DEFINE(HAVE_UTMP_UT_HOST) -],[ - wi_cv_utmp_ut_host=no -]) -AC_MSG_RESULT($wi_cv_utmp_ut_host) -]) -dnl -dnl -dnl -AC_DEFUN(wi_STRUCT_STAT64, [ -AC_MSG_CHECKING([for struct stat64]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -],[ -struct stat64 st; - -st.st_size = 0; -exit(((int) &st.st_size) & 0xff); /* bogus code, of course. */ -],[ - wi_cv_struct_stat64=yes - AC_DEFINE(HAVE_STRUCT_STAT64) -],[ - wi_cv_struct_stat64=no -]) -AC_MSG_RESULT($wi_cv_struct_stat64) -]) -dnl -dnl -dnl -AC_DEFUN(wi_STRUCT_CMSGHDR, [ -AC_MSG_CHECKING([for struct cmsghdr]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -#include -#include -],[ -struct cmsghdr cm; - -cm.cmsg_len = 0; -cm.cmsg_level = 0; -cm.cmsg_type = 0; -exit(((int) &cm.cmsg_type) & 0xff); /* bogus code, of course. */ -],[ - wi_cv_struct_cmsghdr=yes - AC_DEFINE(HAVE_STRUCT_CMSGDHR) -],[ - wi_cv_struct_cmsghdr=no -]) -AC_MSG_RESULT($wi_cv_struct_cmsghdr) -]) -dnl -dnl -dnl -AC_DEFUN(wi_MSGHDR_CONTROL, [ -AC_MSG_CHECKING([for msg_control field in struct msghdr]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -#include -#include -],[ -struct msghdr m; - -m.msg_control = &m; -m.msg_controllen = sizeof(m); -exit(((int) &m.msg_control) & 0xff); /* bogus code, of course. */ -],[ - wi_cv_msghdr_control=yes - AC_DEFINE(HAVE_MSGHDR_CONTROL) -],[ - wi_cv_msghdr_control=no -]) -AC_MSG_RESULT($wi_cv_msghdr_control) -]) -dnl -dnl -dnl -AC_DEFUN(wi_MSGHDR_ACCRIGHTS, [ -AC_MSG_CHECKING([for msg_accrights field in struct msghdr]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -#include -#include -],[ -struct msghdr m; - -m.msg_accrights = &m; -m.msg_accrightslen = sizeof(m); -exit(((int) &m.msg_accrights) & 0xff); /* bogus code, of course. */ -],[ - wi_cv_msghdr_accrights=yes - AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS) -],[ - wi_cv_msghdr_accrights=no -]) -AC_MSG_RESULT($wi_cv_msghdr_accrights) -]) -dnl -dnl -dnl -AC_DEFUN(wi_PR_PASSWD_FG_OLDCRYPT, [ -AC_MSG_CHECKING([for fg_oldcrypt field in struct pr_passwd]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(HAVE_USERPW_H) && defined(HAVE_GETUSERPW) /* AIX */ -# include -#elif defined(HAVE_PWDADJ_H) && defined(HAVE_GETPWANAM) /* SunOS */ -# include -# ifdef HAVE_SYS_AUDIT_H -# include -# endif -# include -#elif defined(HAVE_GETESPWNAM) /* Digital UNIX 4 */ -# ifdef HAVE_SYS_SECDEFINES_H -# include -# endif -# ifdef HAVE_SYS_SECURITY_H -# include -# endif -# ifdef HAVE_SYS_AUDIT_H -# include -# endif -# ifdef HAVE_KRB_H -# include -# endif -# ifdef HAVE_PROT_H -# include -# endif -#elif defined(HAVE_GETPRPWNAM) /* SCO Open Server V, Digital UNIX 3, HP-UX 10 */ -# ifdef HAVE_SYS_SECDEFINES_H -# include -# endif -# ifdef HAVE_SYS_SECURITY_H -# include -# endif -# ifdef HAVE_SYS_AUDIT_H -# include -# endif -# ifdef HAVE_HPSECURITY_H -# include -# endif -# ifdef HAVE_KRB_H -# include -# endif -# ifdef HAVE_PROT_H -# include -# endif -#endif -],[ - struct pr_passwd xu; - memset(&xu, 0, sizeof(xu)); - if (xu.uflg.fg_oldcrypt != 0) - xu.uflg.fg_oldcrypt++; /* bogus code, of course */ - exit(0); -],[ - wi_cv_pr_passwd_fg_oldcrypt=yes - AC_DEFINE(HAVE_PR_PASSWD_FG_OLDCRYPT) -],[ - wi_cv_pr_passwd_fg_oldcrypt=no -]) -AC_MSG_RESULT($wi_cv_pr_passwd_fg_oldcrypt) -]) -dnl -dnl -dnl -AC_DEFUN(wi_SOCKADDR_UN_SUN_LEN, [ -AC_MSG_CHECKING([for sun_len field in struct sockaddr_un]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -#include -#include -],[ -struct sockaddr_un uaddr; - -uaddr.sun_len = strlen("/tmp/test.sock"); -exit(((int) uaddr.sun_len); /* bogus code, of course. */ -],[ - wi_cv_sockaddr_un_sun_len=yes - AC_DEFINE(HAVE_SOCKADDR_UN_SUN_LEN) -],[ - wi_cv_sockaddr_un_sun_len=no -]) -AC_MSG_RESULT($wi_cv_sockaddr_un_sun_len) -]) -dnl -dnl -dnl -AC_DEFUN(wi_STATFS_F_BAVAIL, [ -AC_MSG_CHECKING([for f_bavail field in struct statfs]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#ifdef HAVE_SYS_STATFS_H -# include -#elif defined(HAVE_SYS_VFS_H) -# include -#endif -],[ -struct statfs st; - -st.f_bavail = 1; -exit((int) st.f_bavail); /* bogus code, of course. */ -],[ - wi_cv_statfs_f_bavail=yes - AC_DEFINE(HAVE_STATFS_F_BAVAIL) -],[ - wi_cv_statfs_f_bavail=no -]) -AC_MSG_RESULT($wi_cv_statfs_f_bavail) -]) -dnl -dnl -dnl -AC_DEFUN(wi_SPRINTF_RETVAL, [ -AC_MSG_CHECKING([what sprintf() returns]) -AC_TRY_RUN([ - /* program */ -#include -#include - -main() -{ - int result; - char s[8]; - - result = (int) sprintf(s, "%d", 22); - if (result == 2) - exit(0); - exit(1); - -} -],[ - # action if true - wi_cv_sprintf_returns_ptr=no - x="length of data written"; -],[ - # action if false - wi_cv_sprintf_returns_ptr=yes - AC_DEFINE(SPRINTF_RETURNS_PTR) - x="pointer to data"; -],[ - # action if cross compiling - wi_cv_sprintf_returns_ptr=no - x="unknown"; -]) -AC_MSG_RESULT($x) -]) -dnl -dnl -dnl -AC_DEFUN(wi_LIB_CRYPT, [ -AC_MSG_CHECKING([which library has usable crypt() function]) -ac_save_LIBS="$LIBS" -crypt_lib=NONE - -for lib in "c" "crypt" "descrypt" "des" -do - -if test "$lib" = "c" ; then - LIBS="$ac_save_LIBS" -else - LIBS="$ac_save_LIBS -l${lib}" -fi - -AC_TRY_RUN([ - /* program */ -#include -#include - -extern char *crypt(const char *key, const char *salt); - -main() -{ - char cleartext[256]; - char *cp; - - memset(cleartext, 0, sizeof(cleartext)); - strcpy(cleartext, "password"); - - cp = crypt(cleartext, "xx"); - if ((cp != NULL) && (strcmp(cp, "xxj31ZMTZzkVA") == 0)) { - /* printf("PASS\n"); */ - exit(0); - } - /* printf("FAIL\n"); */ - exit(1); -} -],[ - # action if true - crypt_lib="$lib" -],[ - # action if false - : -],[ - # action if cross compiling - : -]) - - -if test "$crypt_lib" != NONE ; then - break -fi - -done - - -LIBS="$ac_save_LIBS" - -if test "$crypt_lib" = NONE ; then - crypt_lib=c - AC_MSG_RESULT([none?]) -else - AC_MSG_RESULT([lib${crypt_lib}]) -fi -if test "$crypt_lib" != c ; then - AC_CHECK_LIB(${lib},crypt) -fi -]) -dnl -dnl -dnl -AC_DEFUN(wi_TEST, [ -changequote(<^, ^>)dnl -changequote([, ])dnl -]) -dnl -dnl -dnl -AC_DEFUN(wi__RES_DEFDNAME, [ -AC_MSG_CHECKING([for useable _res global variable]) -AC_TRY_LINK([ - /* includes */ -#include -#include -#include -#include -#include -#include -#ifdef HAVE_ARPA_NAMESER_H -# include -#endif -#ifdef HAVE_RESOLV_H -# include -#endif -],[ - /* function-body */ - int len; - - res_init(); - len = (int) strlen(_res.defdname); -],[ - wi_cv__res_defdname=yes - AC_DEFINE(HAVE__RES_DEFDNAME) -],[ - wi_cv__res_defdname=no -]) -AC_MSG_RESULT($wi_cv__res_defdname) -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_TYPE_SIG_ATOMIC_T, [ -AC_MSG_CHECKING([for sig_atomic_t]) -AC_TRY_LINK([ - /* includes */ -#ifdef HAVE_UNISTD_H -#include -#endif -#include -#include -#include /* MG: for IRIX */ -#if STDC_HEADERS -#include -#include -#endif -],[ - /* function-body */ - sig_atomic_t sample; - - sample = (sig_atomic_t) getpid(); /* bogus code, of course */ - exit((sample > 0) ? 0 : 1); -],[ - ac_cv_type_sig_atomic_t=yes -],[ - ac_cv_type_sig_atomic_t=no -]) -AC_MSG_RESULT($ac_cv_type_sig_atomic_t) -if test $ac_cv_type_sig_atomic_t = no ; then - AC_DEFINE(sig_atomic_t, int) -fi -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_LIB_READLINE, [ -AC_MSG_CHECKING([for GNU Readline library, version 2.0 or newer]) - -wi_cv_lib_readline=no -wi_cv_lib_readline_result=no -ac_save_LIBS="$LIBS" -# Note: $LIBCURSES is permitted to be empty. -for LIBREADLINE in "-lreadline" "-lreadline $LIBCURSES" "-lreadline -ltermcap" "-lreadline -lncurses" "-lreadline -lcurses" -do - LIBS="$ac_save_LIBS $LIBREADLINE" - AC_TRY_RUN([ - /* program */ -#include -#include - -main(int argc, char **argv) -{ - /* Note: don't actually call readline, since it may block; - * We just want to see if it (dynamic) linked in okay. - */ - if (argc == 0) /* never true */ - readline(0); - exit(0); -} -],[ - # action if true - wi_cv_lib_readline=yes -],[ - # action if false - wi_cv_lib_readline=no -],[ - # action if cross compiling - wi_cv_lib_readline=no -]) - - if test "$wi_cv_lib_readline" = yes ; then break ; fi -done - -# Now try it again, to be sure it is recent enough. -# rl_function_of_keyseq appeared in version 2.0 -# -dnl AC_CHECK_FUNC(rl_function_of_keyseq, [wi_cv_lib_readline=yes],[ -dnl wi_cv_lib_readline=no;wi_cv_lib_readline_result="no (it is present but too old to use)" -dnl ]) - AC_TRY_LINK([ - /* includes */ - ],[ - /* function-body */ - readline(0); - rl_function_of_keyseq(0); - ],[ - wi_cv_lib_readline=yes - ],[ - wi_cv_lib_readline=no - wi_cv_lib_readline_result="no (it is present but too old to use)" - ]) - -if test "$wi_cv_lib_readline" = no ; then - LIBREADLINE="" - # restore LIBS - LIBS="$ac_save_LIBS" -else - /bin/rm -f readline.ver - touch readline.ver - - AC_TRY_RUN([ - /* program */ -#include -#include -#include - -extern char *rl_library_version; - -main() -{ - FILE *fp; - double d; - - sscanf(rl_library_version, "%lf", &d); - fp = fopen("readline.ver", "w"); - if (fp == NULL) exit(1); - if (fprintf(fp, "%s\n", rl_library_version) < 0) exit(1); - if (fprintf(fp, "%03d\n", (int) (d * 100.0)) < 0) exit(1); - if (fclose(fp) < 0) exit(1); - exit(0); -} - ],[ - # action if true - rl_library_version=`sed -n 1,1p readline.ver 2>/dev/null` - rlver=`sed -n 2,2p readline.ver 2>/dev/null` - /bin/rm -f readline.ver - ],[ - # action if false - rl_library_version='' - rlver='' - /bin/rm -f readline.ver - ],[ - # action if cross compiling - rl_library_version='' - rlver='' - /bin/rm -f readline.ver - ]) - - case "$rlver" in - ???) - wi_cv_lib_readline_result="yes, installed version is $rl_library_version" - ;; - *) - # Test using current LIBS. - AC_TRY_LINK([ - /* includes */ - extern int rl_completion_append_character; - ],[ - /* function-body */ - readline(0); - rl_completion_append_character = 0; - ],[ - rlver="210" - ],[ - rlver="200" - ]) - - if test "$rlver" = "210" ; then - wi_cv_lib_readline_result="yes, version 2.1 or higher" - else - wi_cv_lib_readline_result="yes, version 2.0" - fi - ;; - esac - - wi_cv_lib_readline=yes - # restore LIBS - LIBS="$ac_save_LIBS" -fi -AC_MSG_RESULT($wi_cv_lib_readline_result) -AC_SUBST(LIBREADLINE) - -if test "$wi_cv_lib_readline" = yes ; then - # Now verify that all the headers are installed. - # - AC_REQUIRE_CPP() - unset ac_cv_header_readline_chardefs_h - unset ac_cv_header_readline_history_h - unset ac_cv_header_readline_keymaps_h - unset ac_cv_header_readline_readline_h - unset ac_cv_header_readline_tilde_h - AC_CHECK_HEADERS([readline/chardefs.h readline/history.h readline/keymaps.h readline/readline.h readline/tilde.h]) - - for xxwi in \ - "$ac_cv_header_readline_chardefs_h" \ - "$ac_cv_header_readline_history_h" \ - "$ac_cv_header_readline_keymaps_h" \ - "$ac_cv_header_readline_readline_h" \ - "$ac_cv_header_readline_tilde_h" - do - if test "$xxwi" = no ; then - break - fi - done - - if test "$xxwi" = no ; then - AC_MSG_WARN([GNU Readline headers are not installed or could not be found -- GNU Readline will not be used.]) - wi_cv_lib_readline=no - wi_cv_lib_readline_result="no (headers not installed)" - else - AC_DEFINE_UNQUOTED(HAVE_LIBREADLINE, $rlver) - fi -fi -]) -dnl -dnl -dnl -AC_DEFUN(wi_USE_LONG_LONG, [ -AC_MSG_CHECKING([for 64-bit integral type: long long]) -LONGEST_INT="long" -AC_TRY_RUN([ - /* program */ -#include -#include -#include - -long long hugeNumvar = 1; - -main() -{ - long long hugeNumtoo = 2; - - if (hugeNumtoo > hugeNumvar) - hugeNumvar++; - if (sizeof(hugeNumvar) < 8) - exit(1); - exit(0); -} - -],[ - # action if true - wi_cv_type_long_long=yes - LONGEST_INT="long long" -],[ - # action if false - wi_cv_type_long_long=no -],[ - # action if cross compiling - wi_cv_type_long_long=no -]) -AC_MSG_RESULT($wi_cv_type_long_long) - -if test "$wi_cv_type_long_long" = yes ; then - -AC_MSG_CHECKING([how to print a 64-bit integral type]) -wi_cv_printf_long_long=fail - -AC_TRY_RUN([ - /* program */ -#include -#include -#include -#include -#include - -main() -{ - char s[80]; - long long hugeNum; - - hugeNum = (long long) 1000000000; - hugeNum = hugeNum * (long long) 99; - hugeNum = hugeNum + (long long) 1; - - (void) sprintf(s, "%lld", hugeNum); - exit((strcmp(s, "99000000001") == 0) ? 0 : 1); -} -],[ - # action if true - wi_cv_printf_long_long="%lld" -],[ - # action if false - : -],[ - # action if cross compiling - : -]) - - -if test "$wi_cv_printf_long_long" = fail ; then - -AC_TRY_RUN([ - /* program */ -#include -#include -#include -#include -#include - -main() -{ - char s[80]; - long long hugeNum; - - hugeNum = (long long) 1000000000; - hugeNum = hugeNum * (long long) 99; - hugeNum = hugeNum + (long long) 1; - - (void) sprintf(s, "%qd", hugeNum); - exit((strcmp(s, "99000000001") == 0) ? 0 : 1); -} -],[ - # action if true - wi_cv_printf_long_long="%qd" -],[ - # action if false - : -],[ - # action if cross compiling - : -]) -fi - -if test "$wi_cv_printf_long_long" = fail ; then - wi_cv_printf_long_long_msg_result='cannot print' -else - wi_cv_printf_long_long_msg_result="$wi_cv_printf_long_long" -fi - -AC_MSG_RESULT($wi_cv_printf_long_long_msg_result) - - -AC_MSG_CHECKING([how to scan a 64-bit integral type]) -wi_cv_scanf_long_long=fail - -AC_TRY_RUN([ - /* program */ -#include -#include -#include -#include -#include - -main() -{ - long long hugeNum, justAsHugeNum; - - hugeNum = (long long) 1000000000; - hugeNum = hugeNum * (long long) 99; - hugeNum = hugeNum + (long long) 1; - - justAsHugeNum = (long long) 0; - --justAsHugeNum; - sscanf("99000000001", "%lld", &justAsHugeNum); - if (memcmp(&hugeNum, &justAsHugeNum, sizeof(hugeNum)) == 0) - exit(0); - exit(1); -} -],[ - # action if true - wi_cv_scanf_long_long="%lld" -],[ - # action if false - : -],[ - # action if cross compiling - : -]) - - -if test "$wi_cv_scanf_long_long" = fail ; then - -AC_TRY_RUN([ - /* program */ -#include -#include -#include -#include -#include - -main() -{ - long long hugeNum, justAsHugeNum; - - hugeNum = (long long) 1000000000; - hugeNum = hugeNum * (long long) 99; - hugeNum = hugeNum + (long long) 1; - - justAsHugeNum = (long long) 0; - --justAsHugeNum; - sscanf("99000000001", "%qd", &justAsHugeNum); - if (memcmp(&hugeNum, &justAsHugeNum, sizeof(hugeNum)) == 0) - exit(0); - exit(1); -} -],[ - # action if true - wi_cv_scanf_long_long="%qd" -],[ - # action if false - : -],[ - # action if cross compiling - : -]) -fi - -if test "$wi_cv_scanf_long_long" = fail ; then - wi_cv_scanf_long_long_msg_result='cannot scan' -else - wi_cv_scanf_long_long_msg_result="$wi_cv_scanf_long_long" -fi - -AC_MSG_RESULT($wi_cv_scanf_long_long_msg_result) - -fi - -AC_MSG_CHECKING([if everything was available to use the 64-bit integral type]) - -if test "$wi_cv_type_long_long" = no ; then - wi_cv_use_long_long_msg_result="no (long long type not available)" - wi_cv_use_long_long="no" - wi_cv_scanf_long_long="fail" - wi_cv_prihtf_long_long="fail" - LONGEST_INT="long" -elif test "$wi_cv_printf_long_long" = fail ; then - wi_cv_use_long_long_msg_result="no (libc printf() does not support them)" - wi_cv_use_long_long="no" - wi_cv_scanf_long_long="fail" - wi_cv_prihtf_long_long="fail" - LONGEST_INT="long" -elif test "$wi_cv_scanf_long_long" = fail ; then - wi_cv_use_long_long_msg_result="no (libc scanf() does not support them)" - wi_cv_use_long_long="no" - wi_cv_scanf_long_long="fail" - wi_cv_prihtf_long_long="fail" - LONGEST_INT="long" -else - AC_DEFINE(HAVE_LONG_LONG) - if test "$wi_cv_printf_long_long$wi_cv_scanf_long_long" = "%lld%qd" ; then - # FreeBSD 3.2 has %lld and %qd, but we want to - # run on 3.1 and 3.0. - # - wi_cv_printf_long_long="%qd" - fi - AC_DEFINE_UNQUOTED(PRINTF_LONG_LONG, "$wi_cv_printf_long_long") - AC_DEFINE_UNQUOTED(SCANF_LONG_LONG , "$wi_cv_scanf_long_long") - if test "$wi_cv_printf_long_long" = "%qd" ; then - AC_DEFINE(PRINTF_LONG_LONG_QD) - else - AC_DEFINE(PRINTF_LONG_LONG_LLD) - fi - if test "$wi_cv_scanf_long_long" = "%qd" ; then - AC_DEFINE(SCANF_LONG_LONG_QD) - else - AC_DEFINE(SCANF_LONG_LONG_LLD) - fi - wi_cv_use_long_long="yes" - wi_cv_use_long_long_msg_result="yes" -fi -AC_MSG_RESULT($wi_cv_use_long_long_msg_result) -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_CREATE_TAR_FILES, [ -AC_MSG_CHECKING([how to create TAR files]) -changequote(<<, >>)dnl -TAR=/usr/bin/tar -if [ ! -f /usr/bin/tar ] && [ -f /bin/tar ] ; then - TAR=/bin/tar -fi -x="" -if [ -x /usr/bin/what ] ; then - x=`/usr/bin/what "$TAR" 2>&1 | sed -n 's/.*pax.*/pax/g;/pax/p'` -elif [ -x /bin/what ] ; then - x=`/bin/what "$TAR" 2>&1 | sed -n 's/.*pax.*/pax/g;/pax/p'` -fi -if [ "x$x" != "xpax" ] ; then - # The junk above is because Mac OS X Server's tar freaks out - # and does not exit if you do "tar --help". - # - x=`$TAR --help 2>&1 | sed -n 's/.*owner=NAME.*/owner=NAME/g;/owner=NAME/p'` -fi -case "$x" in - *owner=NAME*) - TARFLAGS="-c --owner=root --group=bin --verbose -f" - ;; - *) - TARFLAGS="cvf" - x2=`gtar --help 2>&1 | sed -n 's/.*owner=NAME.*/owner=NAME/g;/owner=NAME/p'` - case "$x2" in - *owner=NAME*) - TARFLAGS="-c --owner=root --group=bin --verbose -f" - TAR=gtar - ;; - esac - ;; -esac -changequote([, ])dnl -AC_SUBST(TARFLAGS) -AC_SUBST(TAR) -AC_MSG_RESULT([$TAR $TARFLAGS]) -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_HEADER_CURSES, [ -AC_MSG_CHECKING([for curses library headers]) -if test "$nc_cv_ncurses" != "no" ; then - AC_CHECK_HEADERS(ncurses.h curses.h) -else - AC_CHECK_HEADERS(curses.h) -fi -dnl needed for Solaris 7 -if test "$ac_cv_header_curses_h" = no ; then - if test -f /usr/include/curses.h ; then - AC_DEFINE(HAVE_CURSES_H) - ac_cv_header_curses_h=yes - fi -fi -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_LIB_CURSES, [ -wi_HEADER_CURSES -AC_MSG_CHECKING([for curses library]) - -wi_cv_lib_curses=no -wi_cv_lib_curses_result=no -ac_save_LIBS="$LIBS" -for LIBCURSES in "-lncurses" "-lcurses" "-lcurses -ltermcap" "-ltermcap -lcurses" -do - if test "x$LIBCURSES-$nc_cv_ncurses" = "x-lncurses-no" ; then - # This should never work - LIBCURSES="-lkdfjkdjfs" - fi - LIBS="$ac_save_LIBS $LIBCURSES" - AC_TRY_RUN([ - /* program */ -#include -#include - -#ifdef HAVE_NCURSES_H -# include -#else -# include -#endif - - -main(int argc, char **argv) -{ - /* Note: don't actually call curses, since it may block; - * We just want to see if it (dynamic) linked in okay. - */ - if (argc == 4) - initscr(); - exit(0); -} -],[ - # action if true - wi_cv_lib_curses=yes - wi_cv_lib_curses_result="yes" -],[ - # action if false - wi_cv_lib_curses=no -],[ - # action if cross compiling - wi_cv_lib_curses=no -]) - - if test "$wi_cv_lib_curses" = yes ; then break ; fi -done - -# restore LIBS -LIBS="$ac_save_LIBS" - -if test "$wi_cv_lib_curses_result" != "no" ; then - case "$LIBCURSES" in - "-lncurses") - AC_DEFINE(HAVE_LIBNCURSES) - ;; - "-lcurses") - AC_DEFINE(HAVE_LIBCURSES) - ;; - "-lcurses -ltermcap") - AC_DEFINE(HAVE_LIBCURSES) - ;; - "-ltermcap -lcurses") - AC_DEFINE(HAVE_LIBCURSES) - ;; - esac -else - LIBCURSES='' -fi - -AC_SUBST(LIBCURSES) -AC_MSG_RESULT([$wi_cv_lib_curses_result]) -]) -dnl -dnl -dnl -dnl -AC_DEFUN(wi_CURSES_FEATURES, [ -if test "$wi_cv_lib_curses" = "yes" ; then - # Then $LIBCURSES is a list of curses and support libraries. - ac_save_LIBS="$LIBS"; - LIBS="$LIBS $LIBCURSES"; - - - # maxx or _maxx - AC_MSG_CHECKING([whether curses structure has maxx or _maxx field]) - AC_TRY_COMPILE([ - /* includes */ -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include -#include -#include - -#ifdef HAVE_NCURSES_H -# include -#else -# include -#endif -],[ - WINDOW *w; - - w = newwin(10, 10, 1, 1); - w->maxx = 0; -],[ -AC_MSG_RESULT([maxx]) -],[ -AC_DEFINE(HAVE__MAXX) -AC_MSG_RESULT([_maxx]) -]) - - AC_CHECK_FUNCS(__getmaxx __getmaxy __getbegx __getbegy) - - # getbegx - AC_MSG_CHECKING([for getbegx() functionality in curses library]) - AC_TRY_LINK([ - /* includes */ -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include -#include -#include - -#ifdef HAVE_NCURSES_H -# include -#else -# include -#endif - -],[ - /* function-body */ - WINDOW *junk = 0; - int mx = 0; - - mx = getbegx(junk); - exit(0); -],[ - AC_DEFINE(HAVE_GETBEGX) - AC_MSG_RESULT([yes]) -],[ - AC_MSG_RESULT([no]) -]) - - - # getmaxx - AC_MSG_CHECKING([for getmaxx() functionality in curses library]) - AC_TRY_LINK([ - /* includes */ -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include -#include -#include - -#ifdef HAVE_NCURSES_H -# include -#else -# include -#endif -],[ - /* function-body */ - WINDOW *junk = 0; - int mx = 0; - - mx = getmaxx(junk); - exit(0); -],[ - AC_DEFINE(HAVE_GETMAXX) - AC_MSG_RESULT([yes]) -],[ - AC_MSG_RESULT([no]) -]) - - # getmaxyx - AC_MSG_CHECKING([for getmaxyx() functionality in curses library]) - AC_TRY_LINK([ - /* includes */ -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include -#include -#include - -#ifdef HAVE_NCURSES_H -# include -#else -# include -#endif -],[ - /* function-body */ - WINDOW *junk = 0; - int mx = 0, my = 0; - - getmaxyx(junk, my, mx); - exit(my < 0 ? my : 0); -],[ - AC_DEFINE(HAVE_GETMAXYX) - AC_MSG_RESULT([yes]) -],[ - AC_MSG_RESULT([no]) -]) - - # touchwin - AC_MSG_CHECKING([for touchwin() functionality in curses library]) - AC_TRY_LINK([ - /* includes */ -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include -#include -#include - -#ifdef HAVE_NCURSES_H -# include -#else -# include -#endif -],[ - /* function-body */ - WINDOW *junk = 0; - touchwin(junk); - exit(0); -],[ - AC_DEFINE(HAVE_TOUCHWIN) - AC_MSG_RESULT([yes]) -],[ - AC_MSG_RESULT([no]) -]) - - # beep - AC_MSG_CHECKING([for beep() functionality in curses library]) - AC_TRY_LINK([ - /* includes */ -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include -#include -#include - -#ifdef HAVE_NCURSES_H -# include -#else -# include -#endif -],[ - /* function-body */ - beep(); - exit(getpid() & 1); -],[ - AC_DEFINE(HAVE_BEEP) - AC_MSG_RESULT([yes]) -],[ - AC_MSG_RESULT([no]) -]) - - AC_CHECK_FUNCS(keypad nodelay curs_set doupdate wnoutrefresh) - - LIBS="$ac_save_LIBS"; -fi -]) -dnl -dnl -dnl -AC_DEFUN(wi_SHADOW_FUNCS, [ -AC_CHECK_FUNCS(md5_crypt md5crypt bcrypt getspnam) - -# UnixWare 7 -if test "$ac_cv_func_getspnam" = no ; then - unset ac_cv_func_getspnam - AC_CHECK_LIB(gen,getspnam) - if test "$ac_cv_lib_gen_getspnam" = yes ; then - AC_CHECK_FUNCS(getspnam) - fi -fi - -# AIX -# -case "$SYS" in - "aix"|"") - AC_CHECK_FUNCS(getuserpw) - ;; - *) - ;; -esac - -# C2: SCO Open Server 5; Digital UNIX -AC_CHECK_FUNCS(set_auth_parameters bigcrypt) - -# C2: Digital UNIX 3.2, 4.0; SCO Open Server 5; HP-UX 11 -AC_CHECK_FUNCS(getprpwnam) - -# Digital UNIX 4.0 -AC_CHECK_FUNCS(getespwnam get_num_crypts get_crypt_name) - -# Digital Unix 4.0 -AC_CHECK_FUNCS(dispcrypt) - -# SunOS -AC_CHECK_FUNCS(getpwanam) -]) -dnl -dnl -dnl -AC_DEFUN(wi_SHADOW_HEADERS, [ -AC_CHECK_HEADERS(shadow.h crypt.h) - -# AIX -AC_CHECK_HEADERS(userpw.h) - -# SunOS -AC_CHECK_HEADERS(pwdadj.h) - -# HP-UX -# -# Bug in header on these version 10 which cause is it not -# to get detected. -# -wi_HEADER_HPSECURITY_H - -# SCO Open Server, Digital UNIX -AC_CHECK_HEADERS(sys/security.h sys/audit.h krb.h prot.h) - -# Digital UNIX -AC_CHECK_HEADERS(sys/secdefines.h) - -# Digital UNIX -wi_PR_PASSWD_FG_OLDCRYPT -]) -dnl -dnl -dnl -AC_DEFUN(wi_SHADOW_LIBS, [ -check_for_libcrypt=yes - -# AIX security library is libs.a -AC_CHECK_LIB(s,getuserpw) -if test "$ac_cv_lib_s" = yes ; then - check_for_libcrypt=no -elif test "$ac_cv_lib_s_getuserpw" = yes ; then - check_for_libcrypt=no -fi - -# SCO OpenServer 5 stuff for shadow password -AC_CHECK_LIB(x,nap) -AC_CHECK_LIB(prot,getprpwnam) - -# Digital UNIX -AC_CHECK_LIB(security,endprpwent) - -# HP-UX -AC_CHECK_LIB(sec,getprpwnam) - -if test "$ac_cv_lib_sec_getprpwnam" = no ; then - # DYNIX/ptx - AC_CHECK_LIB(sec,getspnam) -fi - -if test "$check_for_libcrypt" = yes ; then - wi_LIB_CRYPT -fi -AC_CHECK_FUNCS(crypt) -]) -dnl -dnl -dnl -AC_DEFUN(wi_OS_VAR, [ -changequote(!@, @!)dnl -if [ -x "$HOME/bin/OS" ] ; then - HOME_OS=`$HOME/bin/OS` - HOME_OS="$HOME/$HOME_OS" -fi -host=`uname -n 2>/dev/null | tr '[A-Z]' '[a-z]'` -os=`uname -s 2>/dev/null | tr '[A-Z]' '[a-z]'` -dnl work around inability to use $1 -os_v=`uname -v 2>/dev/null | sed 's/^[^0-9.]*//;s/[^0-9.]*$//;s/pre.*//;s/test.*//' | awk '-F[-/: ]' '{n = 1; print $n; }'` -os_r=`uname -r 2>/dev/null | sed 's/^[^0-9.]*//;s/[^0-9.]*$//;s/pre.*//;s/test.*//' | awk '-F[-/: ]' '{n = 1; print $n; }'` -os_r1=`echo "${os_r}" | cut -c1` -arch=`uname -m 2>/dev/null | tr '[A-Z]' '[a-z]'` -archp=`uname -p 2>/dev/null | tr '[A-Z]' '[a-z]'` -OS='' -SYS='' -NDEFS='' - -# Special case a few systems where if your CFLAGS appear -# to want to generate for 32 bit, use that mode rather -# than 64 bit. -# -case "$os,$CFLAGS" in - irix64,*-n32*) - os=irix - # then go to regular "irix" instead of "irix64" below. - ;; -esac - -case "$os" in - osf1) - case "$os_r" in - 3*|4*) - OS="digitalunix${os_r}-$arch" - SYS=digitalunix - ;; - *) - OS="tru64unix${os_r}-$arch" - SYS=tru64unix - ;; - esac - NDEFS="$NDEFS -DDIGITAL_UNIX=$os_r1" - ;; - aix) - OS="aix${os_v}.${os_r}" - SYS=aix - NDEFS="$NDEFS -DAIX=${os_v}" - ;; - irix) - OS="irix${os_r}" - SYS=irix - NDEFS="$NDEFS -DIRIX=$os_r1" - ;; - irix64) - OS="irix64_${os_r}" - SYS=irix64 - NDEFS="$NDEFS -DIRIX=$os_r1 -DIRIX64=$os_r1" - ;; - hp-ux) - os_r=`echo "${os_r}" | cut -d. -f2-` - os_r1=`echo "$os_r" | cut -d. -f1` - os_r2=`echo "${os_r}" | cut -d. -f2` - os_int=`expr "$os_r1" '*' 100 + "$os_r2"` - OS="hpux${os_r}" - SYS=hpux - NDEFS="$NDEFS -DHPUX=$os_int" - ;; - freebsd) - OS="freebsd${os_r}-$arch" - os_r1=`echo "$os_r" | cut -d. -f1` - os_r2=`echo "$os_r" | cut -d. -f2` - os_r3=`echo "$os_r" | cut -d. -f3` - if [ "$os_r3" = "" ] ; then os_r3=0 ; fi - os_int=`expr "$os_r1" '*' 100 + "$os_r2" '*' 10 + "$os_r3"` - SYS=freebsd - NDEFS="$NDEFS -DFREEBSD=$os_int" - ;; - netbsd) - OS="netbsd${os_r}-$arch" - NDEFS="$NDEFS -DNETBSD=$os_r1" - SYS=netbsd - ;; - openbsd) - OS="openbsd${os_r}-$arch" - SYS=openbsd - NDEFS="$NDEFS -DOPENBSD=$os_r1" - ;; - sco*) - OS=scosv - SYS=sco - NDEFS="$NDEFS -DSCO=$os_r1" - ;; - dynix*) - OS="dynixptx${os_v}" - SYS=dynixptx - os_v1=`echo "$os_v" | cut -d. -f1` - os_v2=`echo "$os_v" | cut -d. -f2` - os_v3=`echo "$os_v" | cut -d. -f3` - if [ "$os_v3" = "" ] ; then os_v3=0 ; fi - os_int=`expr "$os_v1" '*' 100 + "$os_v2" '*' 10 + "$os_v3"` - NDEFS="$NDEFS -DDYNIX=$os_int" - ;; - linux) - case "$arch" in - *86) - arch=x86 - ;; - esac - - libc="" - os_r1=`echo "$os_r" | cut -d. -f1` - os_r2=`echo "$os_r" | cut -d. -f2` - os_r3=`echo "$os_r" | cut -d- -f1 | cut -d. -f3` - os_int=`expr "$os_r1" '*' 10000 + "$os_r2" '*' 1000 + "$os_r3"` - NDEFS="$NDEFS -DLINUX=$os_int" - - vertest="./vertest.$$" - /bin/rm -f "$vertest" "$vertest.c" - cat < "$vertest.c" -#include -#include - -main() -{ - const char *ver = gnu_get_libc_version(); - const char *rel = gnu_get_libc_release(); - - fprintf(stdout, "glibc%s\n", ver); - exit(0); -} -EOF - echo $ac_n "checking version of C library""... $ac_c" 1>&6 - echo "configure:: checking version of C library" >&5 - ${CC-cc} $DEFS $CPPFLAGS $CFLAGS "$vertest.c" -o "$vertest" >/dev/null 2>&1 - if [ -x "$vertest" ] ; then libc=`$vertest` ; fi - /bin/rm -f "$vertest" "$vertest.c" - - case "$libc" in - glibc*) - echo "$libc" 1>&6 - glibc_r=`echo "$libc" | sed 's/glibc//'` - glibc_r1=`echo "$glibc_r" | cut -d. -f1` - glibc_r2=`echo "$glibc_r" | cut -d. -f2` - glibc_r3=`echo "$glibc_r" | cut -d- -f1 | cut -d. -f3` - glibc_int=`expr "$glibc_r1" '*' 10000 + "$glibc_r2" '*' 1000 + "$glibc_r3"` - NDEFS="$NDEFS -DLINUX_GLIBC=$glibc_int" - libc="glibc${glibc_r1}.${glibc_r2}" - OS="linux-$arch" - ;; - *) - if test -f /lib/libc-2.2.2.so ; then - NDEFS="$NDEFS -DLINUX_GLIBC=22002" - libc="glibc2.2" - OS="linux-$arch" - elif test -f /lib/libc-2.2.1.so ; then - NDEFS="$NDEFS -DLINUX_GLIBC=22001" - libc="glibc2.2" - OS="linux-$arch" - elif test -f /lib/libc-2.2.0.so ; then - NDEFS="$NDEFS -DLINUX_GLIBC=22000" - libc="glibc2.1" - OS="linux-$arch" - elif test -f /lib/libc-2.1.3.so ; then - NDEFS="$NDEFS -DLINUX_GLIBC=21003" - libc="glibc2.1" - OS="linux-$arch" - elif test -f /lib/libc-2.1.2.so ; then - NDEFS="$NDEFS -DLINUX_GLIBC=21002" - libc="glibc2.1" - OS="linux-$arch" - elif test -f /lib/libc-2.1.1.so ; then - NDEFS="$NDEFS -DLINUX_GLIBC=21001" - libc="glibc2.1" - OS="linux-$arch" - elif test -f /lib/libc.so.6 ; then - NDEFS="$NDEFS -DLINUX_GLIBC=20000" - libc="glibc2.0" - OS="linux-$arch" - elif test -f /lib/libc.so.6.1 ; then - NDEFS="$NDEFS -DLINUX_GLIBC=20001" - libc="glibc2.0" - OS="linux-$arch" - else - NDEFS="$NDEFS -DLINUX_LIBC=5" - libc="libc5" - OS="linux-$arch" - fi - echo "$libc" 1>&6 - ;; - esac - SYS=linux - ;; - bsd/os) - OS="bsdos${os_r}" - SYS=bsdos - NDEFS="$NDEFS -DBSDOS=$os_r1" - ;; - ultrix) - OS="ultrix-$arch" - SYS=ultrix - ;; - unixware|eeyore) - OS="unixware${os_v}" - SYS=unixware - ;; - macos*|darwin|rhapsody) - OS="macosx" - SYS="macosx" - ;; - sunos) - if [ "$arch" = "" ] ; then arch="sparc" ; fi - if [ "$archp" = "" ] ; then archp="$arch" ; fi - case "$os_r" in - 5.[789]*) - os_r=`echo "$os_r" | cut -c3-` - OS="solaris${os_r}-$archp" - NDEFS="$NDEFS -DSOLARIS=\\\"$os_r\\\"" - SYS=solaris - ;; - 5.[0123456]*) - maj=`echo "$os_r" | cut -c1-1` - maj=`expr "$maj" - 3` - os_r=`echo "$os_r" | cut -c2-` - os_r="${maj}${os_r}" - OS="solaris${os_r}-$archp" - NDEFS="$NDEFS -DSOLARIS=\\\"$os_r\\\"" - SYS=solaris - ;; - 4.*) - OS="sunos${os_r}-sparc" - NDEFS="$NDEFS -DSUNOS=\\\"$os_r\\\"" - SYS=sunos - ;; - *) - OS="solaris${os_r}-$archp" - NDEFS="$NDEFS -DSOLARIS=\\\"$os_r\\\"" - SYS=solaris - ;; - esac - ;; - *) - OS="$os" - SYS="$os" - - if grep Novell /usr/include/sys/types.h ; then - OS="unixware${os_v}" - SYS="unixware" - fi - ;; -esac - -changequote([, ]) - -AC_SUBST(NDEFS) -AC_SUBST(OS) -AC_SUBST(host) -AC_SUBST(SYS) -AC_SUBST(HOME_OS) -]) diff --git a/rosapps/applications/net/ncftp/libncftp/Makefile.in b/rosapps/applications/net/ncftp/libncftp/Makefile.in deleted file mode 100644 index 4810f0abd2e..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/Makefile.in +++ /dev/null @@ -1,144 +0,0 @@ -#----------------------------------------------------------------------------- -# -# LibNcFTP makefile for the platform @OS@, on the host @host@. -# -#----------------------------------------------------------------------------- -PKGNAME=libncftp -VERSION=3.0.1 -PREFIX=@prefix@ - -CC=@CC@ -CFLAGS=@CFLAGS@ -#CC=gcc -#CFLAGS=-g -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wbad-function-cast -Wwrite-strings -Wconversion -VPATH=@srcdir@ -CPPFLAGS=-I. -I../Strn -I../sio @CPPFLAGS@ - -LIB=libncftp.a -LIBSO=libncftp.so.2 -LIBSOS=libncftp.so - -# Any -D definitions: -DEFS=@DEFS@@NDEFS@ - -CFILES=open.c cmds.c util.c rcmd.c ftp.c io.c errno.c linelist.c glob.c -OBJS=open.o cmds.o util.o rcmd.o ftp.o io.o errno.o linelist.o glob.o -SOBJS=open.so cmds.so util.so rcmd.so ftp.so io.so errno.so linelist.so glob.so - -# LIBSET=@LIBSET@ -LIBSET=$(LIB) - -SHELL=/bin/sh -.SUFFIXES: .c .o .so - -all: $(LIBSET) - ( cd ../sio ; $(MAKE) ) - ( cd ../Strn ; $(MAKE) ) - -[ -d ./samples/minincftp ] && cd ./samples/minincftp && $(MAKE) - -[ -d ./samples/misc ] && cd ./samples/misc && $(MAKE) - -[ -d ./samples/monkey ] && cd ./samples/monkey && $(MAKE) - -[ -d ./samples/ncftpget ] && cd ./samples/ncftpget && $(MAKE) - -[ -d ./samples/ncftpls ] && cd ./samples/ncftpls && $(MAKE) - -[ -d ./samples/ncftpput ] && cd ./samples/ncftpput && $(MAKE) - -[ -d ./samples/ncftpsyncput ] && cd ./samples/ncftpsyncput && $(MAKE) - @echo 'Done.' - -$(LIB): $(OBJS) - -@/bin/rm -f $(LIB) - ar rv $(LIB) $(OBJS) - -@chmod 644 $(LIB) - -@@RANLIB@ $(LIB) - @/bin/ls -l $(LIB) - -shared: $(LIBSO) - -so: $(LIBSO) - -$(LIBSO): $(SOBJS) - /bin/rm -f $(LIBSO) $(LIBSOS) - gcc -shared -Wl,-soname,$(LIBSO) -o $(LIBSO) $(SOBJS) - /bin/ln -s $(LIBSO) $(LIBSOS) - -@/bin/ls -l $(LIBSOS) $(LIBSO) - -soinstall: $(LIBSO) - [ -d "$(PREFIX)/lib" ] || mkdir -m 755 "$(PREFIX)/lib" - [ -d "$(PREFIX)/include" ] || mkdir -m 755 "$(PREFIX)/include" - cp $(LIBSO) $(PREFIX)/lib/$(LIBSO) - ( cd $(PREFIX)/lib ; /bin/rm -f $(LIBSOS) ; /bin/ln -s $(LIBSO) $(LIBSOS) ) - cp ncftp.h ncftp_errno.h $(PREFIX)/include - -chmod a+r $(PREFIX)/lib/$(LIBSO) $(PREFIX)/include/ncftp.h $(PREFIX)/include/ncftp_errno.h - -install: $(LIB) - [ -d "$(PREFIX)/lib" ] || mkdir -m 755 "$(PREFIX)/lib" - [ -d "$(PREFIX)/include" ] || mkdir -m 755 "$(PREFIX)/include" - cp $(LIB) $(PREFIX)/lib/$(LIB) - cp ncftp.h ncftp_errno.h $(PREFIX)/include - -chmod a+r $(LIB) $(PREFIX)/lib/$(LIB) $(PREFIX)/include/ncftp.h $(PREFIX)/include/ncftp_errno.h - ( cd ../sio ; $(MAKE) "PREFIX=$(PREFIX)" install ) - ( cd ../Strn ; $(MAKE) "PREFIX=$(PREFIX)" install ) - -install_samples: - ( cd ./samples ; $(MAKE) install ) - -.c.o: - $(CC) $(CFLAGS) $(DEFS) $(CPPFLAGS) $< -c - -.c.so: - $(CC) -fpic $(CFLAGS) $(CPPFLAGS) $(DEFS) $*.c -c -o $*.so - -test: test.c $(OBJS) - $(CC) $(CFLAGS) $(DEFS) $(CPPFLAGS) test.c $(OBJS) -o test $(LDFLAGS) $(LIBS) - -### Archiving ################################################################# - -TARDIR=libncftp-$(VERSION) -TMPDIR=/tmp -STGZFILE=libncftp-$(VERSION)-src.tar.gz - -gz sgz: $(PACKAGE) - ./mksrctar.sh $(TARDIR) $(STGZFILE) - -### Cleaning supplies ######################################################## - -clean: - -/bin/rm -f $(OBJS) $(SOBJS) core $(LIB) $(LIBSO) $(LIBSOS) - -[ -d ./samples/minincftp ] && cd ./samples/minincftp && $(MAKE) clean - -[ -d ./samples/monkey ] && cd ./samples/monkey && $(MAKE) clean - -[ -d ./samples/ncftpget ] && cd ./samples/ncftpget && $(MAKE) clean - -[ -d ./samples/ncftpls ] && cd ./samples/ncftpls && $(MAKE) clean - -[ -d ./samples/ncftpput ] && cd ./samples/ncftpput && $(MAKE) clean - -[ -d ./samples/ncftpsyncput ] && cd ./samples/ncftpsyncput && $(MAKE) clean - ( sleep 2 ; cd ../sio ; $(MAKE) clean ) - ( sleep 2 ; cd ../Strn ; $(MAKE) clean ) - -### Dependencies ############################################################# - -dep: - gcc -MM $(CPPFLAGS) $(CFILES) - -open.o: open.c syshdrs.h ncftp.h ncftp_errno.h util.h ftp.h -open.so: open.c syshdrs.h ncftp.h ncftp_errno.h util.h ftp.h - -cmds.o: cmds.c syshdrs.h ncftp.h ncftp_errno.h util.h ftp.h -cmds.so: cmds.c syshdrs.h ncftp.h ncftp_errno.h util.h ftp.h - -util.o: util.c syshdrs.h ncftp.h ncftp_errno.h util.h -util.so: util.c syshdrs.h ncftp.h ncftp_errno.h util.h - -rcmd.o: rcmd.c syshdrs.h ncftp.h ncftp_errno.h util.h ftp.h -rcmd.so: rcmd.c syshdrs.h ncftp.h ncftp_errno.h util.h ftp.h - -ftp.o: ftp.c syshdrs.h ncftp.h ncftp_errno.h ftp.h util.h -ftp.so: ftp.c syshdrs.h ncftp.h ncftp_errno.h ftp.h util.h - -io.o: io.c syshdrs.h ncftp.h ncftp_errno.h util.h ftp.h -io.so: io.c syshdrs.h ncftp.h ncftp_errno.h util.h ftp.h - -errno.o: errno.c syshdrs.h ncftp.h ncftp_errno.h -errno.so: errno.c syshdrs.h ncftp.h ncftp_errno.h - -linelist.o: linelist.c syshdrs.h ncftp.h ncftp_errno.h util.h -linelist.so: linelist.c syshdrs.h ncftp.h ncftp_errno.h util.h - -glob.o: glob.c syshdrs.h ncftp.h ncftp_errno.h util.h -glob.so: glob.c syshdrs.h ncftp.h ncftp_errno.h util.h diff --git a/rosapps/applications/net/ncftp/libncftp/Readme.txt b/rosapps/applications/net/ncftp/libncftp/Readme.txt deleted file mode 100644 index 265ea888f26..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/Readme.txt +++ /dev/null @@ -1,73 +0,0 @@ -Since you have the source distribution, you will need to compile the -libraries before you can install them. - -UNIX INSTRUCTIONS: ------------------- - -Go to the source directory you extracted (here). There is a script you -must run which will checks your system for certain features, so that the -library can be compiled on a variety of UNIX systems. Run this script -by typing "./configure" in that directory. After that, you can look at -the Makefile it made if you like, and then you run "make" to create the -"libncftp.a" and "libStrn.a" library files. - -Finally, install the libraries and headers, by doing "make install". - -View the libncftp.html file for the rest of the documentation. An easy -way to do that is use a URL of file://Localhost/path/to/libncftp.html -with your favorite browser. - - -WINDOWS INSTRUCTIONS: ---------------------- - -You will need Visual C++ 6.0 or greater to build the library and sample -programs. This version includes two supplementary libraries which you -must build and link with your applications: a string utility library -(Strn) and a Winsock utility library (sio). Unlike the UNIX version of -LibNcFTP, where the library can be built with or without the sio library, -the sio library is required for the Windows version. - -Keep the source hierarchy intact, so that the samples and libraries -build without problems. Build the Strn library first, then the sio -library, and then the LibNcFTP library. To do that, open the appropriate -.dsw file within Visual Studio, and then select "Rebuild All" from the -"Build" menu. Be sure to build both the Debug and the Release versions -for each library. - -When that is complete you should be able to build the sample programs, -which are in the libncftp\samples directory. - -View the libncftp.html file for the rest of the documentation. An easy -way to do that is use a URL of file://Localhost/path/to/libncftp.html -with your favorite browser. Note that there may be UNIX-specific -instructions which you should ignore. - -To build your own applications using LibNcFTP, you'll need to make sure -you configure your project to find the header files and library files. - -Your application may not use the sio or Strn libraries directly, but -you still need to link with them. For example, the "simpleget" sample -uses "..\..\Debug,..\..\..\Strn\Debug,..\..\..\sio\Debug" in the -project option for additional library paths for the linker, and -"kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib - ws2_32.lib Strn.lib sio.lib libncftp.lib" for the list of libraries -to link with. Note that LibNcFTP uses advapi32 and shell32, in -addition to the usual "kernel32.lib user32.lib gdi32.lib". Of course, -it also needs to link with Winsock (ws2_32.lib). - -Similarly, you'll need to make sure one of your additional include -directories points to the LibNcFTP directory containing ncftp.h. The -"simpleget" sample uses "..\.." since it is in a subdirectory of the -library itself. If you actually use functions from Strn or sio (as -some of the samples do), you'll need to have your project look in -their directories for their headers as well. - -About Winsock2: This version of the library was designed for use with -Winsock version 2. Note that older versions of Windows 95 do not include -Winsock version 2, but can be upgraded by getting the updater from -Microsoft: http://www.microsoft.com/windows95/downloads/contents/wuadmintools/s_wunetworkingtools/w95sockets2/default.asp - -However, the library should also work with Winsock 1.1. That is left as -an exercise to the coder to change the Winsock initialization to use 1.1 -and to link with the 1.1 library (wsock32.lib). \ No newline at end of file diff --git a/rosapps/applications/net/ncftp/libncftp/cmds.c b/rosapps/applications/net/ncftp/libncftp/cmds.c deleted file mode 100644 index 1430736af9e..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/cmds.c +++ /dev/null @@ -1,1700 +0,0 @@ -/* cmds.c - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#include "syshdrs.h" - -int -FTPChdir(const FTPCIPtr cip, const char *const cdCwd) -{ - int result; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (cdCwd == NULL) { - result = kErrInvalidDirParam; - cip->errNo = kErrInvalidDirParam; - } else { - if (cdCwd[0] == '\0') /* But allow FTPChdir(cip, ".") to go through. */ - result = 2; - else if (strcmp(cdCwd, "..") == 0) - result = FTPCmd(cip, "CDUP"); - else - result = FTPCmd(cip, "CWD %s", cdCwd); - if (result >= 0) { - if (result == 2) { - result = kNoErr; - } else { - result = kErrCWDFailed; - cip->errNo = kErrCWDFailed; - } - } - } - return (result); -} /* FTPChdir */ - - - - -int -FTPChmod(const FTPCIPtr cip, const char *const pattern, const char *const mode, const int doGlob) -{ - LineList fileList; - LinePtr filePtr; - char *file; - int onceResult, batchResult; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - batchResult = FTPRemoteGlob(cip, &fileList, pattern, doGlob); - if (batchResult != kNoErr) - return (batchResult); - - for (batchResult = kNoErr, filePtr = fileList.first; - filePtr != NULL; - filePtr = filePtr->next) - { - file = filePtr->line; - if (file == NULL) { - batchResult = kErrBadLineList; - cip->errNo = kErrBadLineList; - break; - } - onceResult = FTPCmd(cip, "SITE CHMOD %s %s", mode, file); - if (onceResult < 0) { - batchResult = onceResult; - break; - } - if (onceResult != 2) { - batchResult = kErrChmodFailed; - cip->errNo = kErrChmodFailed; - } - } - DisposeLineListContents(&fileList); - return (batchResult); -} /* FTPChmod */ - - - - -static int -FTPRmdirRecursiveL2(const FTPCIPtr cip) -{ - LineList fileList; - LinePtr filePtr; - char *file; - int result; - - result = FTPRemoteGlob(cip, &fileList, "**", kGlobYes); - if (result != kNoErr) { - return (result); - } - - for (filePtr = fileList.first; - filePtr != NULL; - filePtr = filePtr->next) - { - file = filePtr->line; - if (file == NULL) { - cip->errNo = kErrBadLineList; - break; - } - - if ((file[0] == '.') && ((file[1] == '\0') || ((file[1] == '.') && (file[2] == '\0')))) - continue; /* Skip . and .. */ - - if (FTPChdir(cip, file) == kNoErr) { - /* It was a directory. - * Go in and wax it. - */ - result = FTPRmdirRecursiveL2(cip); - - if (FTPChdir(cip, "..") != kNoErr) { - /* Panic -- we can no longer - * cd back to the directory - * we were in before. - */ - result = kErrCannotGoToPrevDir; - cip->errNo = kErrCannotGoToPrevDir; - return (result); - } - - if ((result < 0) && (result != kErrGlobNoMatch)) - return (result); - - result = FTPRmdir(cip, file, kRecursiveNo, kGlobNo); - if (result != kNoErr) { - /* Well, we couldn't remove the empty - * directory. Perhaps we screwed up - * and the directory wasn't empty. - */ - return (result); - } - } else { - /* Assume it was a file -- remove it. */ - result = FTPDelete(cip, file, kRecursiveNo, kGlobNo); - /* Try continuing to remove the rest, - * even if this failed. - */ - } - } - DisposeLineListContents(&fileList); - - return (result); -} /* FTPRmdirRecursiveL2 */ - - - -static int -FTPRmdirRecursive(const FTPCIPtr cip, const char *const dir) -{ - int result, result2; - - /* Preserve old working directory. */ - (void) FTPGetCWD(cip, cip->buf, cip->bufSize); - - result = FTPChdir(cip, dir); - if (result != kNoErr) { - return (result); - } - - result = FTPRmdirRecursiveL2(cip); - - if (FTPChdir(cip, cip->buf) != kNoErr) { - /* Could not cd back to the original user directory -- bad. */ - if (result != kNoErr) { - result = kErrCannotGoToPrevDir; - cip->errNo = kErrCannotGoToPrevDir; - } - return (result); - } - - /* Now rmdir the last node, the root of the tree - * we just went through. - */ - result2 = FTPRmdir(cip, dir, kRecursiveNo, kGlobNo); - if ((result2 != kNoErr) && (result == kNoErr)) - result = result2; - - return (result); -} /* FTPRmdirRecursive */ - - - - -int -FTPDelete(const FTPCIPtr cip, const char *const pattern, const int recurse, const int doGlob) -{ - LineList fileList; - LinePtr filePtr; - char *file; - int onceResult, batchResult; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - batchResult = FTPRemoteGlob(cip, &fileList, pattern, doGlob); - if (batchResult != kNoErr) - return (batchResult); - - for (batchResult = kNoErr, filePtr = fileList.first; - filePtr != NULL; - filePtr = filePtr->next) - { - file = filePtr->line; - if (file == NULL) { - batchResult = kErrBadLineList; - cip->errNo = kErrBadLineList; - break; - } - onceResult = FTPCmd(cip, "DELE %s", file); - if (onceResult < 0) { - batchResult = onceResult; - break; - } - if (onceResult != 2) { - if (recurse != kRecursiveYes) { - batchResult = kErrDELEFailed; - cip->errNo = kErrDELEFailed; - } else { - onceResult = FTPCmd(cip, "RMD %s", file); - if (onceResult < 0) { - batchResult = onceResult; - break; - } - if (onceResult != 2) { - onceResult = FTPRmdirRecursive(cip, file); - if (onceResult < 0) { - batchResult = kErrRMDFailed; - cip->errNo = kErrRMDFailed; - } - } - } - } - } - DisposeLineListContents(&fileList); - return (batchResult); -} /* FTPDelete */ - - - - -int -FTPGetCWD(const FTPCIPtr cip, char *const newCwd, const size_t newCwdSize) -{ - ResponsePtr rp; - char *l, *r; - int result; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((newCwd == NULL) || (newCwdSize == 0)) { - result = kErrInvalidDirParam; - cip->errNo = kErrInvalidDirParam; - } else { - rp = InitResponse(); - if (rp == NULL) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - } else { - result = RCmd(cip, rp, "PWD"); - if (result == 2) { - if ((r = strrchr(rp->msg.first->line, '"')) != NULL) { - /* "xxxx" is current directory. - * Strip out just the xxxx to copy into the remote cwd. - */ - l = strchr(rp->msg.first->line, '"'); - if ((l != NULL) && (l != r)) { - *r = '\0'; - ++l; - (void) Strncpy(newCwd, l, newCwdSize); - *r = '"'; /* Restore, so response prints correctly. */ - } - } else { - /* xxxx is current directory. - * Mostly for VMS. - */ - if ((r = strchr(rp->msg.first->line, ' ')) != NULL) { - *r = '\0'; - (void) Strncpy(newCwd, (rp->msg.first->line), newCwdSize); - *r = ' '; /* Restore, so response prints correctly. */ - } - } - result = kNoErr; - } else if (result > 0) { - result = kErrPWDFailed; - cip->errNo = kErrPWDFailed; - } - DoneWithResponse(cip, rp); - } - } - return (result); -} /* FTPGetCWD */ - - - - -int -FTPChdirAndGetCWD(const FTPCIPtr cip, const char *const cdCwd, char *const newCwd, const size_t newCwdSize) -{ - ResponsePtr rp; - char *l, *r; - int result; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((newCwd == NULL) || (cdCwd == NULL)) { - result = kErrInvalidDirParam; - cip->errNo = kErrInvalidDirParam; - } else { - if (cdCwd[0] == '\0') { /* But allow FTPChdir(cip, ".") to go through. */ - result = FTPGetCWD(cip, newCwd, newCwdSize); - return (result); - } - rp = InitResponse(); - if (rp == NULL) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - } else { - if (strcmp(cdCwd, "..") == 0) - result = RCmd(cip, rp, "CDUP"); - else - result = RCmd(cip, rp, "CWD %s", cdCwd); - if (result == 2) { - l = strchr(rp->msg.first->line, '"'); - if ((l == rp->msg.first->line) && ((r = strrchr(rp->msg.first->line, '"')) != NULL) && (l != r)) { - /* "xxxx" is current directory. - * Strip out just the xxxx to copy into the remote cwd. - * - * This is nice because we didn't have to do a PWD. - */ - *r = '\0'; - ++l; - (void) Strncpy(newCwd, l, newCwdSize); - *r = '"'; /* Restore, so response prints correctly. */ - DoneWithResponse(cip, rp); - result = kNoErr; - } else { - DoneWithResponse(cip, rp); - result = FTPGetCWD(cip, newCwd, newCwdSize); - } - } else if (result > 0) { - result = kErrCWDFailed; - cip->errNo = kErrCWDFailed; - DoneWithResponse(cip, rp); - } else { - DoneWithResponse(cip, rp); - } - } - } - return (result); -} /* FTPChdirAndGetCWD */ - - - - -int -FTPChdir3(FTPCIPtr cip, const char *const cdCwd, char *const newCwd, const size_t newCwdSize, int flags) -{ - char *cp, *startcp; - int result; - int lastSubDir; - int mkd, pwd; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (cdCwd == NULL) { - result = kErrInvalidDirParam; - cip->errNo = kErrInvalidDirParam; - return result; - } - - if (flags == kChdirOnly) - return (FTPChdir(cip, cdCwd)); - if (flags == kChdirAndGetCWD) { - return (FTPChdirAndGetCWD(cip, cdCwd, newCwd, newCwdSize)); - } else if (flags == kChdirAndMkdir) { - result = FTPMkdir(cip, cdCwd, kRecursiveYes); - if (result == kNoErr) - result = FTPChdir(cip, cdCwd); - return result; - } else if (flags == (kChdirAndMkdir|kChdirAndGetCWD)) { - result = FTPMkdir(cip, cdCwd, kRecursiveYes); - if (result == kNoErr) - result = FTPChdirAndGetCWD(cip, cdCwd, newCwd, newCwdSize); - return result; - } - - /* else: (flags | kChdirOneSubdirAtATime) == true */ - - cp = cip->buf; - cp[cip->bufSize - 1] = '\0'; - (void) Strncpy(cip->buf, cdCwd, cip->bufSize); - if (cp[cip->bufSize - 1] != '\0') - return (kErrBadParameter); - - mkd = (flags & kChdirAndMkdir); - pwd = (flags & kChdirAndGetCWD); - - if ((cdCwd[0] == '\0') || (strcmp(cdCwd, ".") == 0)) { - result = 0; - if (flags == kChdirAndGetCWD) - result = FTPGetCWD(cip, newCwd, newCwdSize); - return (result); - } - - lastSubDir = 0; - do { - startcp = cp; - cp = StrFindLocalPathDelim(cp); - if (cp != NULL) { - /* If this is the first slash in an absolute - * path, then startcp will be empty. We will - * use this below to treat this as the root - * directory. - */ - *cp++ = '\0'; - } else { - lastSubDir = 1; - } - if (strcmp(startcp, ".") == 0) { - result = 0; - if ((lastSubDir != 0) && (pwd != 0)) - result = FTPGetCWD(cip, newCwd, newCwdSize); - } else if ((lastSubDir != 0) && (pwd != 0)) { - result = FTPChdirAndGetCWD(cip, (*startcp != '\0') ? startcp : "/", newCwd, newCwdSize); - } else { - result = FTPChdir(cip, (*startcp != '\0') ? startcp : "/"); - } - if (result < 0) { - if ((mkd != 0) && (*startcp != '\0')) { - if (FTPCmd(cip, "MKD %s", startcp) == 2) { - result = FTPChdir(cip, startcp); - } else { - /* couldn't change nor create */ - cip->errNo = result; - } - } else { - cip->errNo = result; - } - } - } while ((!lastSubDir) && (result == 0)); - - return (result); -} /* FTPChdir3 */ - - - - -int -FTPMkdir2(const FTPCIPtr cip, const char *const newDir, const int recurse, const char *const curDir) -{ - int result, result2; - char *cp, *newTreeStart, *cp2; - char dir[512]; - char dir2[512]; - char c; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((newDir == NULL) || (newDir[0] == '\0')) { - cip->errNo = kErrInvalidDirParam; - return (kErrInvalidDirParam); - } - - /* Preserve old working directory. */ - if ((curDir == NULL) || (curDir[0] == '\0')) { - /* This hack is nice so you can eliminate an - * unnecessary "PWD" command on the server, - * since if you already knew what directory - * you're in. We want to minimize the number - * of client-server exchanges when feasible. - */ - (void) FTPGetCWD(cip, cip->buf, cip->bufSize); - } - - result = FTPChdir(cip, newDir); - if (result == kNoErr) { - /* Directory already exists -- but we - * must now change back to where we were. - */ - result2 = FTPChdir(cip, ((curDir == NULL) || (curDir[0] == '\0')) ? cip->buf : curDir); - if (result2 < 0) { - result = kErrCannotGoToPrevDir; - cip->errNo = kErrCannotGoToPrevDir; - return (result); - } - - /* Don't need to create it. */ - return (kNoErr); - } - - if (recurse == kRecursiveNo) { - result = FTPCmd(cip, "MKD %s", newDir); - if (result > 0) { - if (result != 2) { - Error(cip, kDontPerror, "MKD %s failed; [%s]\n", newDir, cip->lastFTPCmdResultStr); - result = kErrMKDFailed; - cip->errNo = kErrMKDFailed; - return (result); - } else { - result = kNoErr; - } - } - } else { - (void) STRNCPY(dir, newDir); - - /* Strip trailing slashes. */ - cp = dir + strlen(dir) - 1; - for (;;) { - if (cp <= dir) { - if ((newDir == NULL) || (newDir[0] == '\0')) { - cip->errNo = kErrInvalidDirParam; - result = kErrInvalidDirParam; - return (result); - } - } - if ((*cp != '/') && (*cp != '\\')) { - cp[1] = '\0'; - break; - } - --cp; - } - (void) STRNCPY(dir2, dir); - - if ((strrchr(dir, '/') == dir) || (strrchr(dir, '\\') == dir)) { - /* Special case "mkdir /subdir" */ - result = FTPCmd(cip, "MKD %s", dir); - if (result < 0) { - return (result); - } - if (result != 2) { - Error(cip, kDontPerror, "MKD %s failed; [%s]\n", dir, cip->lastFTPCmdResultStr); - result = kErrMKDFailed; - cip->errNo = kErrMKDFailed; - return (result); - } - /* Haven't chdir'ed, don't need to goto goback. */ - return (kNoErr); - } - - for (;;) { - cp = strrchr(dir, '/'); - if (cp == NULL) - cp = strrchr(dir, '\\'); - if (cp == NULL) { - cp = dir + strlen(dir) - 1; - if (dir[0] == '\0') { - result = kErrMKDFailed; - cip->errNo = kErrMKDFailed; - return (result); - } - /* Note: below we will refer to cp + 1 - * which is why we set cp to point to - * the byte before the array begins! - */ - cp = dir - 1; - break; - } - if (cp == dir) { - result = kErrMKDFailed; - cip->errNo = kErrMKDFailed; - return (result); - } - *cp = '\0'; - result = FTPChdir(cip, dir); - if (result == 0) { - break; /* Found a valid parent dir. */ - /* from this point, we need to preserve old dir. */ - } - } - - newTreeStart = dir2 + ((cp + 1) - dir); - for (cp = newTreeStart; ; ) { - cp2 = cp; - cp = strchr(cp2, '/'); - c = '/'; - if (cp == NULL) - cp = strchr(cp2, '\\'); - if (cp != NULL) { - c = *cp; - *cp = '\0'; - if (cp[1] == '\0') { - /* Done, if they did "mkdir /tmp/dir/" */ - break; - } - } - result = FTPCmd(cip, "MKD %s", newTreeStart); - if (result < 0) { - return (result); - } - if (result != 2) { - Error(cip, kDontPerror, "Cwd=%s; MKD %s failed; [%s]\n", cip->buf, newTreeStart, cip->lastFTPCmdResultStr); - result = kErrMKDFailed; - cip->errNo = kErrMKDFailed; - goto goback; - } - if (cp == NULL) - break; /* No more to make, done. */ - *cp++ = c; - } - result = kNoErr; - -goback: - result2 = FTPChdir(cip, ((curDir == NULL) || (curDir[0] == '\0')) ? cip->buf : curDir); - if ((result == 0) && (result2 < 0)) { - result = kErrCannotGoToPrevDir; - cip->errNo = kErrCannotGoToPrevDir; - } - } - return (result); -} /* FTPMkdir2 */ - - - -int -FTPMkdir(const FTPCIPtr cip, const char *const newDir, const int recurse) -{ - return (FTPMkdir2(cip, newDir, recurse, NULL)); -} /* FTPMkdir */ - - - -int -FTPFileModificationTime(const FTPCIPtr cip, const char *const file, time_t *const mdtm) -{ - int result; - ResponsePtr rp; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((mdtm == NULL) || (file == NULL)) - return (kErrBadParameter); - *mdtm = kModTimeUnknown; - - if (cip->hasMDTM == kCommandNotAvailable) { - cip->errNo = kErrMDTMNotAvailable; - result = kErrMDTMNotAvailable; - } else { - rp = InitResponse(); - if (rp == NULL) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - } else { - result = RCmd(cip, rp, "MDTM %s", file); - if (result < 0) { - DoneWithResponse(cip, rp); - return (result); - } else if (strncmp(rp->msg.first->line, "19100", 5) == 0) { - Error(cip, kDontPerror, "Warning: Server has Y2K Bug in \"MDTM\" command.\n"); - cip->errNo = kErrMDTMFailed; - result = kErrMDTMFailed; - } else if (result == 2) { - *mdtm = UnMDTMDate(rp->msg.first->line); - cip->hasMDTM = kCommandAvailable; - result = kNoErr; - } else if (UNIMPLEMENTED_CMD(rp->code)) { - cip->hasMDTM = kCommandNotAvailable; - cip->errNo = kErrMDTMNotAvailable; - result = kErrMDTMNotAvailable; - } else { - cip->errNo = kErrMDTMFailed; - result = kErrMDTMFailed; - } - DoneWithResponse(cip, rp); - } - } - return (result); -} /* FTPFileModificationTime */ - - - - -int -FTPRename(const FTPCIPtr cip, const char *const oldname, const char *const newname) -{ - int result; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - if ((oldname == NULL) || (oldname[0] == '\0')) - return (kErrBadParameter); - if ((newname == NULL) || (oldname[0] == '\0')) - return (kErrBadParameter); - - - result = FTPCmd(cip, "RNFR %s", oldname); - if (result < 0) - return (result); - if (result != 3) { - cip->errNo = kErrRenameFailed; - return (cip->errNo); - } - - result = FTPCmd(cip, "RNTO %s", newname); - if (result < 0) - return (result); - if (result != 2) { - cip->errNo = kErrRenameFailed; - return (cip->errNo); - } - return (kNoErr); -} /* FTPRename */ - - - - -int -FTPRemoteHelp(const FTPCIPtr cip, const char *const pattern, const LineListPtr llp) -{ - int result; - ResponsePtr rp; - - if ((cip == NULL) || (llp == NULL)) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - InitLineList(llp); - rp = InitResponse(); - if (rp == NULL) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - } else { - if ((pattern == NULL) || (*pattern == '\0')) - result = RCmd(cip, rp, "HELP"); - else - result = RCmd(cip, rp, "HELP %s", pattern); - if (result < 0) { - DoneWithResponse(cip, rp); - return (result); - } else if (result == 2) { - if (CopyLineList(llp, &rp->msg) < 0) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - } else { - result = kNoErr; - } - } else { - cip->errNo = kErrHELPFailed; - result = kErrHELPFailed; - } - DoneWithResponse(cip, rp); - } - return (result); -} /* FTPRemoteHelp */ - - - - -int -FTPRmdir(const FTPCIPtr cip, const char *const pattern, const int recurse, const int doGlob) -{ - LineList fileList; - LinePtr filePtr; - char *file; - int onceResult, batchResult; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - batchResult = FTPRemoteGlob(cip, &fileList, pattern, doGlob); - if (batchResult != kNoErr) - return (batchResult); - - for (batchResult = kNoErr, filePtr = fileList.first; - filePtr != NULL; - filePtr = filePtr->next) - { - file = filePtr->line; - if (file == NULL) { - batchResult = kErrBadLineList; - cip->errNo = kErrBadLineList; - break; - } - onceResult = FTPCmd(cip, "RMD %s", file); - if (onceResult < 0) { - batchResult = onceResult; - break; - } - if (onceResult != 2) { - if (recurse == kRecursiveYes) { - onceResult = FTPRmdirRecursive(cip, file); - if (onceResult < 0) { - batchResult = kErrRMDFailed; - cip->errNo = kErrRMDFailed; - } - } else { - batchResult = kErrRMDFailed; - cip->errNo = kErrRMDFailed; - } - } - } - DisposeLineListContents(&fileList); - return (batchResult); -} /* FTPRmdir */ - - - - -int -FTPSetTransferType(const FTPCIPtr cip, int type) -{ - int result; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (cip->curTransferType != type) { - switch (type) { - case kTypeAscii: - case kTypeBinary: - case kTypeEbcdic: - break; - case 'i': - case 'b': - case 'B': - type = kTypeBinary; - break; - case 'e': - type = kTypeEbcdic; - break; - case 'a': - type = kTypeAscii; - break; - default: - /* Yeah, we don't support Tenex. Who cares? */ - Error(cip, kDontPerror, "Bad transfer type [%c].\n", type); - cip->errNo = kErrBadTransferType; - return (kErrBadTransferType); - } - result = FTPCmd(cip, "TYPE %c", type); - if (result != 2) { - result = kErrTYPEFailed; - cip->errNo = kErrTYPEFailed; - return (result); - } - cip->curTransferType = type; - } - return (kNoErr); -} /* FTPSetTransferType */ - - - - -/* If the remote host supports the SIZE command, we can find out the exact - * size of a remote file, depending on the transfer type in use. SIZE - * returns different values for ascii and binary modes! - */ -int -FTPFileSize(const FTPCIPtr cip, const char *const file, longest_int *const size, const int type) -{ - int result; - ResponsePtr rp; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((size == NULL) || (file == NULL)) - return (kErrBadParameter); - *size = kSizeUnknown; - - result = FTPSetTransferType(cip, type); - if (result < 0) - return (result); - - if (cip->hasSIZE == kCommandNotAvailable) { - cip->errNo = kErrSIZENotAvailable; - result = kErrSIZENotAvailable; - } else { - rp = InitResponse(); - if (rp == NULL) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - } else { - result = RCmd(cip, rp, "SIZE %s", file); - if (result < 0) { - DoneWithResponse(cip, rp); - return (result); - } else if (result == 2) { -#if defined(HAVE_LONG_LONG) && defined(SCANF_LONG_LONG) - (void) sscanf(rp->msg.first->line, SCANF_LONG_LONG, size); -#elif defined(HAVE_LONG_LONG) && defined(HAVE_STRTOQ) - *size = (longest_int) strtoq(rp->msg.first->line, NULL, 0); -#else - (void) sscanf(rp->msg.first->line, "%ld", size); -#endif - cip->hasSIZE = kCommandAvailable; - result = kNoErr; - } else if (UNIMPLEMENTED_CMD(rp->code)) { - cip->hasSIZE = kCommandNotAvailable; - cip->errNo = kErrSIZENotAvailable; - result = kErrSIZENotAvailable; - } else { - cip->errNo = kErrSIZEFailed; - result = kErrSIZEFailed; - } - DoneWithResponse(cip, rp); - } - } - return (result); -} /* FTPFileSize */ - - - - -int -FTPMListOneFile(const FTPCIPtr cip, const char *const file, const MLstItemPtr mlip) -{ - int result; - ResponsePtr rp; - - /* We do a special check for older versions of NcFTPd which - * are based off of an incompatible previous version of IETF - * extensions. - * - * Roxen also seems to be way outdated, where MLST was on the - * data connection among other things. - * - */ - if ( - (cip->hasMLST == kCommandNotAvailable) || - ((cip->serverType == kServerTypeNcFTPd) && (cip->ietfCompatLevel < 19981201)) || - (cip->serverType == kServerTypeRoxen) - ) { - cip->errNo = kErrMLSTNotAvailable; - return (cip->errNo); - } - - rp = InitResponse(); - if (rp == NULL) { - result = cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - } else { - result = RCmd(cip, rp, "MLST %s", file); - if ( - (result == 2) && - (rp->msg.first->line != NULL) && - (rp->msg.first->next != NULL) && - (rp->msg.first->next->line != NULL) - ) { - result = UnMlsT(rp->msg.first->next->line, mlip); - if (result < 0) { - cip->errNo = result = kErrInvalidMLSTResponse; - } - } else if (UNIMPLEMENTED_CMD(rp->code)) { - cip->hasMLST = kCommandNotAvailable; - cip->errNo = kErrMLSTNotAvailable; - result = kErrMLSTNotAvailable; - } else { - cip->errNo = kErrMLSTFailed; - result = kErrMLSTFailed; - } - DoneWithResponse(cip, rp); - } - - return (result); -} /* FTPMListOneFile */ - - - - -/* We only use STAT to see if files or directories exist. - * But since it is so rarely used in the wild, we need to - * make sure the server supports the use where we pass - * a pathname as a parameter. - */ -int -FTPFileExistsStat(const FTPCIPtr cip, const char *const file) -{ - int result; - ResponsePtr rp; - LineList fileList; - char savedCwd[512]; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (file == NULL) - return (kErrBadParameter); - - if (cip->STATfileParamWorks == kCommandNotAvailable) { - cip->errNo = result = kErrSTATwithFileNotAvailable; - return (result); - } - - if (cip->STATfileParamWorks == kCommandAvailabilityUnknown) { - rp = InitResponse(); - if (rp == NULL) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - return (result); - - } - - /* First, make sure that when we STAT a pathname - * that does not exist, that we get an error back. - * - * We also assume that a valid STAT response has - * at least 3 lines of response text, typically - * a "start" line, intermediate data, and then - * a trailing line. - * - * We also can see a one-line case. - */ - result = RCmd(cip, rp, "STAT %s", "NoSuchFile"); - if ((result == 2) && ((rp->msg.nLines >= 3) || (rp->msg.nLines == 1))) { - /* Hmmm.... it gave back a positive - * response. So STAT does not - * work correctly. - */ - if ( - (rp->msg.first->next != NULL) && - (rp->msg.first->next->line != NULL) && - ( - (strstr(rp->msg.first->next->line, "o such file") != NULL) || - (strstr(rp->msg.first->next->line, "ot found") != NULL) - ) - ) { - /* OK, while we didn't want a 200 - * level response, some servers, - * like wu-ftpd print an error - * message "No such file or - * directory" which we can special - * case. - */ - result = kNoErr; - } else { - cip->STATfileParamWorks = kCommandNotAvailable; - cip->errNo = result = kErrSTATwithFileNotAvailable; - DoneWithResponse(cip, rp); - return (result); - } - } - DoneWithResponse(cip, rp); - - /* We can't assume that we can simply say STAT rootdir/firstfile, - * since the remote host may not be using / as a directory - * delimiter. So we have to change to the root directory - * and then do the STAT on that file. - */ - if ( - (FTPGetCWD(cip, savedCwd, sizeof(savedCwd)) != kNoErr) || - (FTPChdir(cip, cip->startingWorkingDirectory) != kNoErr) - ) { - return (cip->errNo); - } - - /* OK, we get an error when we stat - * a non-existant file, but now we need to - * see if we get a positive reply when - * we stat a file that does exist. - * - * To do this, we list the root directory, - * which we assume has one or more items. - * If it doesn't, the user can't do anything - * anyway. Then we stat the first item - * we found to see if STAT says it exists. - */ - if ( - ((result = FTPListToMemory2(cip, "", &fileList, "", 0, (int *) 0)) < 0) || - (fileList.last == NULL) || - (fileList.last->line == NULL) - ) { - /* Hmmm... well, in any case we can't use STAT. */ - cip->STATfileParamWorks = kCommandNotAvailable; - cip->errNo = result = kErrSTATwithFileNotAvailable; - DisposeLineListContents(&fileList); - (void) FTPChdir(cip, savedCwd); - return (result); - } - - rp = InitResponse(); - if (rp == NULL) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - DisposeLineListContents(&fileList); - (void) FTPChdir(cip, savedCwd); - return (result); - - } - - result = RCmd(cip, rp, "STAT %s", fileList.last->line); - DisposeLineListContents(&fileList); - - if ((result != 2) || (rp->msg.nLines == 2)) { - /* Hmmm.... it gave back a negative - * response. So STAT does not - * work correctly. - */ - cip->STATfileParamWorks = kCommandNotAvailable; - cip->errNo = result = kErrSTATwithFileNotAvailable; - DoneWithResponse(cip, rp); - (void) FTPChdir(cip, savedCwd); - return (result); - } else if ( - (rp->msg.first->next != NULL) && - (rp->msg.first->next->line != NULL) && - ( - (strstr(rp->msg.first->next->line, "o such file") != NULL) || - (strstr(rp->msg.first->next->line, "ot found") != NULL) - ) - ) { - /* Same special-case of the second line of STAT response. */ - cip->STATfileParamWorks = kCommandNotAvailable; - cip->errNo = result = kErrSTATwithFileNotAvailable; - DoneWithResponse(cip, rp); - (void) FTPChdir(cip, savedCwd); - return (result); - } - DoneWithResponse(cip, rp); - cip->STATfileParamWorks = kCommandAvailable; - - /* Don't forget to change back to the original directory. */ - (void) FTPChdir(cip, savedCwd); - } - - rp = InitResponse(); - if (rp == NULL) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - return (result); - } - - result = RCmd(cip, rp, "STAT %s", file); - if (result == 2) { - result = kNoErr; - if (((rp->msg.nLines >= 3) || (rp->msg.nLines == 1))) { - if ( - (rp->msg.first->next != NULL) && - (rp->msg.first->next->line != NULL) && - ( - (strstr(rp->msg.first->next->line, "o such file") != NULL) || - (strstr(rp->msg.first->next->line, "ot found") != NULL) - ) - ) { - cip->errNo = kErrSTATFailed; - result = kErrSTATFailed; - } else { - result = kNoErr; - } - } else if (rp->msg.nLines == 2) { - cip->errNo = kErrSTATFailed; - result = kErrSTATFailed; - } else { - result = kNoErr; - } - } else { - cip->errNo = kErrSTATFailed; - result = kErrSTATFailed; - } - DoneWithResponse(cip, rp); - return (result); -} /* FTPFileExistsStat */ - - - - -/* We only use STAT to see if files or directories exist. - * But since it is so rarely used in the wild, we need to - * make sure the server supports the use where we pass - * a pathname as a parameter. - */ -int -FTPFileExistsNlst(const FTPCIPtr cip, const char *const file) -{ - int result; - LineList fileList, rootFileList; - char savedCwd[512]; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (file == NULL) - return (kErrBadParameter); - - if (cip->NLSTfileParamWorks == kCommandNotAvailable) { - cip->errNo = result = kErrNLSTwithFileNotAvailable; - return (result); - } - - if (cip->NLSTfileParamWorks == kCommandAvailabilityUnknown) { - /* First, make sure that when we NLST a pathname - * that does not exist, that we get an error back. - * - * We also assume that a valid NLST response has - * at least 3 lines of response text, typically - * a "start" line, intermediate data, and then - * a trailing line. - * - * We also can see a one-line case. - */ - if ( - ((FTPListToMemory2(cip, "NoSuchFile", &fileList, "", 0, (int *) 0)) == kNoErr) && - (fileList.nLines >= 1) && - (strstr(fileList.last->line, "o such file") == NULL) && - (strstr(fileList.last->line, "ot found") == NULL) && - (strstr(fileList.last->line, "o Such File") == NULL) && - (strstr(fileList.last->line, "ot Found") == NULL) - - ) { - cip->NLSTfileParamWorks = kCommandNotAvailable; - cip->errNo = result = kErrNLSTwithFileNotAvailable; - DisposeLineListContents(&fileList); - return (result); - } - DisposeLineListContents(&fileList); - - /* We can't assume that we can simply say NLST rootdir/firstfile, - * since the remote host may not be using / as a directory - * delimiter. So we have to change to the root directory - * and then do the NLST on that file. - */ - if ( - (FTPGetCWD(cip, savedCwd, sizeof(savedCwd)) != kNoErr) || - (FTPChdir(cip, cip->startingWorkingDirectory) != kNoErr) - ) { - return (cip->errNo); - } - - /* OK, we get an error when we list - * a non-existant file, but now we need to - * see if we get a positive reply when - * we stat a file that does exist. - * - * To do this, we list the root directory, - * which we assume has one or more items. - * If it doesn't, the user can't do anything - * anyway. Then we do the first item - * we found to see if NLST says it exists. - */ - if ( - ((result = FTPListToMemory2(cip, "", &rootFileList, "", 0, (int *) 0)) < 0) || - (rootFileList.last == NULL) || - (rootFileList.last->line == NULL) - ) { - /* Hmmm... well, in any case we can't use NLST. */ - cip->NLSTfileParamWorks = kCommandNotAvailable; - cip->errNo = result = kErrNLSTwithFileNotAvailable; - DisposeLineListContents(&rootFileList); - (void) FTPChdir(cip, savedCwd); - return (result); - } - - if ( - ((FTPListToMemory2(cip, rootFileList.last->line, &fileList, "", 0, (int *) 0)) == kNoErr) && - (fileList.nLines >= 1) && - (strstr(fileList.last->line, "o such file") == NULL) && - (strstr(fileList.last->line, "ot found") == NULL) && - (strstr(fileList.last->line, "o Such File") == NULL) && - (strstr(fileList.last->line, "ot Found") == NULL) - - ) { - /* Good. We listed the item. */ - DisposeLineListContents(&fileList); - DisposeLineListContents(&rootFileList); - cip->NLSTfileParamWorks = kCommandAvailable; - - /* Don't forget to change back to the original directory. */ - (void) FTPChdir(cip, savedCwd); - } else { - cip->NLSTfileParamWorks = kCommandNotAvailable; - cip->errNo = result = kErrNLSTwithFileNotAvailable; - DisposeLineListContents(&fileList); - DisposeLineListContents(&rootFileList); - (void) FTPChdir(cip, savedCwd); - return (result); - } - } - - /* Check the requested item. */ - InitLineList(&fileList); - if ( - ((FTPListToMemory2(cip, file, &fileList, "", 0, (int *) 0)) == kNoErr) && - (fileList.nLines >= 1) && - (strstr(fileList.last->line, "o such file") == NULL) && - (strstr(fileList.last->line, "ot found") == NULL) && - (strstr(fileList.last->line, "o Such File") == NULL) && - (strstr(fileList.last->line, "ot Found") == NULL) - - ) { - /* The item existed. */ - result = kNoErr; - } else { - cip->errNo = kErrNLSTFailed; - result = kErrNLSTFailed; - } - - DisposeLineListContents(&fileList); - return (result); -} /* FTPFileExistsNlst*/ - - - - -/* This functions goes to a great deal of trouble to try and determine if the - * remote file specified exists. Newer servers support commands that make - * it relatively inexpensive to find the answer, but older servers do not - * provide a standard way. This means we may try a whole bunch of things, - * but the good news is that the library saves information about which things - * worked so if you do this again it uses the methods that work. - */ -int -FTPFileExists2(const FTPCIPtr cip, const char *const file, const int tryMDTM, const int trySIZE, const int tryMLST, const int trySTAT, const int tryNLST) -{ - int result; - time_t mdtm; - longest_int size; - MLstItem mlsInfo; - - if (tryMDTM != 0) { - result = FTPFileModificationTime(cip, file, &mdtm); - if (result == kNoErr) - return (kNoErr); - if (result == kErrMDTMFailed) { - cip->errNo = kErrNoSuchFileOrDirectory; - return (kErrNoSuchFileOrDirectory); - } - /* else keep going */ - } - - if (trySIZE != 0) { - result = FTPFileSize(cip, file, &size, kTypeBinary); - if (result == kNoErr) - return (kNoErr); - /* SIZE could fail if the server does - * not support it for directories. - * - * if (result == kErrSIZEFailed) - * return (kErrNoSuchFileOrDirectory); - */ - /* else keep going */ - } - - - if (tryMLST != 0) { - result = FTPMListOneFile(cip, file, &mlsInfo); - if (result == kNoErr) - return (kNoErr); - if (result == kErrMLSTFailed) { - cip->errNo = kErrNoSuchFileOrDirectory; - return (kErrNoSuchFileOrDirectory); - } - /* else keep going */ - } - - if (trySTAT != 0) { - result = FTPFileExistsStat(cip, file); - if (result == kNoErr) - return (kNoErr); - if (result == kErrSTATFailed) { - cip->errNo = kErrNoSuchFileOrDirectory; - return (kErrNoSuchFileOrDirectory); - } - /* else keep going */ - } - - if (tryNLST != 0) { - result = FTPFileExistsNlst(cip, file); - if (result == kNoErr) - return (kNoErr); - if (result == kErrNLSTFailed) { - cip->errNo = kErrNoSuchFileOrDirectory; - return (kErrNoSuchFileOrDirectory); - } - /* else keep going */ - } - - cip->errNo = kErrCantTellIfFileExists; - return (kErrCantTellIfFileExists); -} /* FTPFileExists2 */ - - - - -int -FTPFileExists(const FTPCIPtr cip, const char *const file) -{ - return (FTPFileExists2(cip, file, 1, 1, 1, 1, 1)); -} /* FTPFileExists */ - - - - - -int -FTPFileSizeAndModificationTime(const FTPCIPtr cip, const char *const file, longest_int *const size, const int type, time_t *const mdtm) -{ - MLstItem mlsInfo; - int result; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((mdtm == NULL) || (size == NULL) || (file == NULL)) - return (kErrBadParameter); - - *mdtm = kModTimeUnknown; - *size = kSizeUnknown; - - result = FTPSetTransferType(cip, type); - if (result < 0) - return (result); - - result = FTPMListOneFile(cip, file, &mlsInfo); - if (result < 0) { - /* Do it the regular way, where - * we do a SIZE and then a MDTM. - */ - result = FTPFileSize(cip, file, size, type); - if (result < 0) - return (result); - result = FTPFileModificationTime(cip, file, mdtm); - return (result); - } else { - *mdtm = mlsInfo.ftime; - *size = mlsInfo.fsize; - } - - return (result); -} /* FTPFileSizeAndModificationTime */ - - - - -int -FTPFileType(const FTPCIPtr cip, const char *const file, int *const ftype) -{ - int result; - MLstItem mlsInfo; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((file == NULL) || (file[0] == '\0')) { - cip->errNo = kErrBadParameter; - return (kErrBadParameter); - } - - if (ftype == NULL) { - cip->errNo = kErrBadParameter; - return (kErrBadParameter); - } - - *ftype = 0; - result = FTPMListOneFile(cip, file, &mlsInfo); - if (result == kNoErr) { - *ftype = mlsInfo.ftype; - return (kNoErr); - } - - /* Preserve old working directory. */ - (void) FTPGetCWD(cip, cip->buf, cip->bufSize); - - result = FTPChdir(cip, file); - if (result == kNoErr) { - *ftype = 'd'; - /* Yes it was a directory, now go back to - * where we were. - */ - (void) FTPChdir(cip, cip->buf); - - /* Note: This improperly assumes that we - * will be able to chdir back, which is - * not guaranteed. - */ - return (kNoErr); - } - - result = FTPFileExists2(cip, file, 1, 1, 0, 1, 1); - if (result != kErrNoSuchFileOrDirectory) - result = kErrFileExistsButCannotDetermineType; - - return (result); -} /* FTPFileType */ - - - - -int -FTPIsDir(const FTPCIPtr cip, const char *const dir) -{ - int result, ftype; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((dir == NULL) || (dir[0] == '\0')) { - cip->errNo = kErrInvalidDirParam; - return (kErrInvalidDirParam); - } - - result = FTPFileType(cip, dir, &ftype); - if ((result == kNoErr) || (result == kErrFileExistsButCannotDetermineType)) { - result = 0; - if (ftype == 'd') - result = 1; - } - return (result); -} /* FTPIsDir */ - - - - -int -FTPIsRegularFile(const FTPCIPtr cip, const char *const file) -{ - int result, ftype; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((file == NULL) || (file[0] == '\0')) { - cip->errNo = kErrBadParameter; - return (kErrBadParameter); - } - - result = FTPFileType(cip, file, &ftype); - if ((result == kNoErr) || (result == kErrFileExistsButCannotDetermineType)) { - result = 1; - if (ftype == 'd') - result = 0; - } - return (result); -} /* FTPIsRegularFile */ - - - - -int -FTPSymlink(const FTPCIPtr cip, const char *const lfrom, const char *const lto) -{ - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - if ((cip == NULL) || (lfrom == NULL) || (lto == NULL)) - return (kErrBadParameter); - if ((lfrom[0] == '\0') || (lto[0] == '\0')) - return (kErrBadParameter); - if (FTPCmd(cip, "SITE SYMLINK %s %s", lfrom, lto) == 2) - return (kNoErr); - return (kErrSYMLINKFailed); -} /* FTPSymlink */ - - - - -int -FTPUmask(const FTPCIPtr cip, const char *const umsk) -{ - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - if ((umsk == NULL) || (umsk[0] == '\0')) - return (kErrBadParameter); - if (FTPCmd(cip, "SITE UMASK %s", umsk) == 2) - return (kNoErr); - return (kErrUmaskFailed); -} /* FTPUmask */ - - - - -static void -GmTimeStr(char *const dst, const size_t dstsize, time_t t) -{ - char buf[64]; - struct tm *gtp; - - gtp = gmtime(&t); - if (gtp == NULL) { - dst[0] = '\0'; - } else { -#ifdef HAVE_SNPRINTF - buf[sizeof(buf) - 1] = '\0'; - (void) snprintf(buf, sizeof(buf) - 1, "%04d%02d%02d%02d%02d%02d", -#else - (void) sprintf(buf, "%04d%02d%02d%02d%02d%02d", -#endif - gtp->tm_year + 1900, - gtp->tm_mon + 1, - gtp->tm_mday, - gtp->tm_hour, - gtp->tm_min, - gtp->tm_sec - ); - (void) Strncpy(dst, buf, dstsize); - } -} /* GmTimeStr */ - - - - -int -FTPUtime(const FTPCIPtr cip, const char *const file, time_t actime, time_t modtime, time_t crtime) -{ - char mstr[64], astr[64], cstr[64]; - int result; - ResponsePtr rp; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (cip->hasUTIME == kCommandNotAvailable) { - cip->errNo = kErrUTIMENotAvailable; - result = kErrUTIMENotAvailable; - } else { - if ((actime == (time_t) 0) || (actime == (time_t) -1)) - (void) time(&actime); - if ((modtime == (time_t) 0) || (modtime == (time_t) -1)) - (void) time(&modtime); - if ((crtime == (time_t) 0) || (crtime == (time_t) -1)) - crtime = modtime; - - (void) GmTimeStr(astr, sizeof(astr), actime); - (void) GmTimeStr(mstr, sizeof(mstr), modtime); - (void) GmTimeStr(cstr, sizeof(cstr), crtime); - - rp = InitResponse(); - if (rp == NULL) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - } else { - result = RCmd(cip, rp, "SITE UTIME %s %s %s %s UTC", file, astr, mstr, cstr); - if (result < 0) { - DoneWithResponse(cip, rp); - return (result); - } else if (result == 2) { - cip->hasUTIME = kCommandAvailable; - result = kNoErr; - } else if (UNIMPLEMENTED_CMD(rp->code)) { - cip->hasUTIME = kCommandNotAvailable; - cip->errNo = kErrUTIMENotAvailable; - result = kErrUTIMENotAvailable; - } else { - cip->errNo = kErrUTIMEFailed; - result = kErrUTIMEFailed; - } - DoneWithResponse(cip, rp); - } - } - return (result); -} /* FTPUtime */ diff --git a/rosapps/applications/net/ncftp/libncftp/config.h.in b/rosapps/applications/net/ncftp/libncftp/config.h.in deleted file mode 100644 index 33351917a5c..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/config.h.in +++ /dev/null @@ -1,207 +0,0 @@ -/* config.h.in. Generated automatically from configure.in by autoheader. */ - -#undef CAN_USE_SYS_SELECT_H - -/* Define to empty if the keyword does not work. */ -#undef const - -/* Define to `int' if doesn't define. */ -#undef gid_t - -/* Define if your compiler supports the "long long" integral type. */ -#undef HAVE_LONG_LONG - -/* Define if you have a _res global variable used by resolve routines. */ -#undef HAVE__RES_DEFDNAME - -/* Define if you have sigsetjmp and siglongjmp. */ -#undef HAVE_SIGSETJMP - -/* Define to `int' if doesn't define. */ -#undef mode_t - -/* Define to `long' if doesn't define. */ -#undef off_t - -/* Define to `int' if doesn't define. */ -#undef pid_t - -/* Format string for the printf() family for 64 bit integers. */ -#undef PRINTF_LONG_LONG - -/* Define if printing a "long long" with "%lld" works . */ -#undef PRINTF_LONG_LONG_LLD - -/* Define if printing a "long long" with "%qd" works . */ -#undef PRINTF_LONG_LONG_QD - -/* Format string for the scanf() family for 64 bit integers. */ -#undef SCANF_LONG_LONG - -/* Define if scanning a "long long" with "%lld" works. */ -#undef SCANF_LONG_LONG_LLD - -/* Define if scanning a "long long" with "%qd" works. */ -#undef SCANF_LONG_LONG_QD - - -/* Define to the type of arg1 for select(). */ -#undef SELECT_TYPE_ARG1 - -/* Define to the type of args 2, 3 and 4 for select(). */ -#undef SELECT_TYPE_ARG234 - -/* Define to the type of arg5 for select(). */ -#undef SELECT_TYPE_ARG5 - -/* Define if the setvbuf function takes the buffering type as its second - argument and the buffer pointer as the third, as on System V - before release 3. */ -#undef SETVBUF_REVERSED - -/* Define to `unsigned' if doesn't define. */ -#undef size_t - -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define to the full path of the Tar program, if you have it. */ -#undef TAR - -/* Define if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME - -/* Define to `int' if doesn't define. */ -#undef uid_t - -/* Result of "uname -a" */ -#undef UNAME - -/* Define if you have the fstat64 function. */ -#undef HAVE_FSTAT64 - -/* Define if you have the getcwd function. */ -#undef HAVE_GETCWD - -/* Define if you have the getdomainname function. */ -#undef HAVE_GETDOMAINNAME - -/* Define if you have the gethostname function. */ -#undef HAVE_GETHOSTNAME - -/* Define if you have the getpass function. */ -#undef HAVE_GETPASS - -/* Define if you have the getwd function. */ -#undef HAVE_GETWD - -/* Define if you have the inet_ntop function. */ -#undef HAVE_INET_NTOP - -/* Define if you have the llseek function. */ -#undef HAVE_LLSEEK - -/* Define if you have the lseek64 function. */ -#undef HAVE_LSEEK64 - -/* Define if you have the lstat64 function. */ -#undef HAVE_LSTAT64 - -/* Define if you have the mktime function. */ -#undef HAVE_MKTIME - -/* Define if you have the open64 function. */ -#undef HAVE_OPEN64 - -/* Define if you have the res_init function. */ -#undef HAVE_RES_INIT - -/* Define if you have the sigaction function. */ -#undef HAVE_SIGACTION - -/* Define if you have the snprintf function. */ -#undef HAVE_SNPRINTF - -/* Define if you have the socket function. */ -#undef HAVE_SOCKET - -/* Define if you have the stat64 function. */ -#undef HAVE_STAT64 - -/* Define if you have the strcasecmp function. */ -#undef HAVE_STRCASECMP - -/* Define if you have the strerror function. */ -#undef HAVE_STRERROR - -/* Define if you have the strstr function. */ -#undef HAVE_STRSTR - -/* Define if you have the strtoq function. */ -#undef HAVE_STRTOQ - -/* Define if you have the symlink function. */ -#undef HAVE_SYMLINK - -/* Define if you have the vsnprintf function. */ -#undef HAVE_VSNPRINTF - -/* Define if you have the waitpid function. */ -#undef HAVE_WAITPID - -/* Define if you have the header file. */ -#undef HAVE_ARPA_NAMESER_H - -/* Define if you have the header file. */ -#undef HAVE_NSERVE_H - -/* Define if you have the header file. */ -#undef HAVE_RESOLV_H - -/* Define if you have the header file. */ -#undef HAVE_SYS_SELECT_H - -/* Define if you have the header file. */ -#undef HAVE_SYS_TIME_H - -/* Define if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define if you have the header file. */ -#undef HAVE_UTIME_H - -/* Define if you have the 44bsd library (-l44bsd). */ -#undef HAVE_LIB44BSD - -/* Define if you have the com_err library (-lcom_err). */ -#undef HAVE_LIBCOM_ERR - -/* Define if you have the crypto library (-lcrypto). */ -#undef HAVE_LIBCRYPTO - -/* Define if you have the db library (-ldb). */ -#undef HAVE_LIBDB - -/* Define if you have the gen library (-lgen). */ -#undef HAVE_LIBGEN - -/* Define if you have the gssapi_krb5 library (-lgssapi_krb5). */ -#undef HAVE_LIBGSSAPI_KRB5 - -/* Define if you have the isode library (-lisode). */ -#undef HAVE_LIBISODE - -/* Define if you have the krb5 library (-lkrb5). */ -#undef HAVE_LIBKRB5 - -/* Define if you have the nsl library (-lnsl). */ -#undef HAVE_LIBNSL - -/* Define if you have the resolv library (-lresolv). */ -#undef HAVE_LIBRESOLV - -/* Define if you have the socket library (-lsocket). */ -#undef HAVE_LIBSOCKET - -/* Define if you have the socks5 library (-lsocks5). */ -#undef HAVE_LIBSOCKS5 diff --git a/rosapps/applications/net/ncftp/libncftp/configure.in b/rosapps/applications/net/ncftp/libncftp/configure.in deleted file mode 100644 index 778db859833..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/configure.in +++ /dev/null @@ -1,292 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(rcmd.c) -AC_PREREQ(2.4) -AC_CONFIG_HEADER(config.h) - -nc_cv_socks5=no -no_signals=yes - -AC_ARG_ENABLE(socks5,[ --enable-socks5 try to find and use the socks5 library],nc_cv_socks5=yes,nc_cv_socks5=no) -AC_ARG_ENABLE(signals,[ --enable-signals allow use of signal handling],[no_signals=no]) - - -wi_OS_VAR - -changequote(<<, >>)dnl -MAINDIR=`pwd` -if test -f "$MAINDIR/dos2unix.sh" ; then - chmod u+rwx $MAINDIR/dos2unix.sh - for dir in . ../sio ../Strn ; do - if [ -d "$dir" ] ; then - dir=`cd "$dir" ; pwd` - find "$dir" -name '*.in' -exec "$MAINDIR/dos2unix.sh" {} \; - find "$dir" -name '*.h' -exec "$MAINDIR/dos2unix.sh" {} \; - find "$dir" -name '*.c' -exec "$MAINDIR/dos2unix.sh" {} \; - fi - done -fi -MAKE=make -STATIC="" -BDYNAMIC="# -Wl,-Bdynamic" -BSTATIC="# -Wl,-Bstatic" -LIBSET='$(LIB)' -Z31='' -Z32='' -Z33='' -Z34='' -REDWING='no' -SFLAG='-s' - -case "$host" in - redwing*) CC=cc - LDFLAGS='' - STATIC='' - Z31=' -@mv $(STGZFILE) newbin/' - Z32=' -@mv $(DTGZFILE) newbin/' - Z33=' -@mv $(MTGZFILE) newbin/' - Z34=' -@mv $(PTGZFILE) newbin/' - REDWING='yes' - ;; -esac - -case "$os" in - linux) - BDYNAMIC="-Wl,-Bdynamic" - BSTATIC="-Wl,-Bstatic" - if [ "$MAKEWORLD_SH" = "" ] ; then - LIBSET='$(LIBSO) $(LIB)' - fi - ;; - freebsd) - BDYNAMIC="-Wl,-Bdynamic" - BSTATIC="-Wl,-Bstatic" - ;; - macosx*|rhapsody) - SFLAG='-Wl,-x' - ;; -esac - -changequote([, ])dnl - -AC_SUBST(CC) -AC_SUBST(CFLAGS) -AC_SUBST(CPPFLAGS) -AC_SUBST(LDFLAGS) -AC_SUBST(STATIC) -AC_SUBST(SFLAG) -AC_SUBST(LIBS) -AC_SUBST(DEFS) -AC_SUBST(MAKE) -AC_SUBST(Z31) -AC_SUBST(Z32) -AC_SUBST(Z33) -AC_SUBST(Z34) -AC_SUBST(LIBSET) -AC_SUBST(BDYNAMIC) -AC_SUBST(BSTATIC) -AC_SUBST(MAINDIR) - -if test -f ./samples/ncftpput2probe.c ; then - PROBE="ncftpget2probe ncftpput2probe" -else - PROBE="" -fi -AC_SUBST(PROBE) - -AC_PROG_CC -wi_REQUEST_NO_Y2K_WARNINGS -wi_CFLAGS_LFS64 -wi_DEFINE_UNAME - -if test -f /usr/src/include/eos.h ; then - if test "$REDWING" = no ; then - prefix=/usr/src - fi -fi - -if test "$wi_cv_prototypes" = no ; then - AC_WARN([Your compiler is probably won't be able to compile the package.]) - AC_WARN([Get gcc, or any compiler that supports function prototypes.]) -fi - -dnl # See if we should add -I/usr/local/include -L/usr/local/lib, etc. -dnl wi_EXTRA_DIRS(yes, /usr/local /usr/ccs, -) - -dnl For the sample programs. -wi_NET_LIBS - -if test "$nc_cv_socks5" = yes ; then -# Look for the "SOCKS" library for use with Firewalls/Gateways. -savelibs="$LIBS" -AC_CHECK_LIB(db, main) -AC_CHECK_LIB(isode, main) -AC_CHECK_LIB(com_err, main) -AC_CHECK_LIB(crypto, main) -AC_CHECK_LIB(krb5, main) -AC_CHECK_LIB(gssapi_krb5, main) -AC_CHECK_LIB(socks5,SOCKSinit) - if test "$ac_cv_lib_socks5" = yes ; then - nc_cv_socks=no - else - LIBS="$savelibs" - fi -else -ac_cv_lib_socks5=no -fi - - -dnl Checks for header files. -AC_HEADER_STDC -AC_CHECK_HEADERS(sys/time.h unistd.h utime.h nserve.h resolv.h arpa/nameser.h) -AC_TIME_WITH_SYS_TIME - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_TYPE_SIZE_T -AC_TYPE_OFF_T -AC_TYPE_MODE_T -AC_TYPE_PID_T -AC_TYPE_UID_T -wi__RES_DEFDNAME -wi_USE_LONG_LONG - -dnl Checks for library functions. -if test "$SYS" != sunos ; then - # Use getwd on SunOS -- getcwd does a "popen("/bin/pwd")" -- aaaccck. - # - AC_CHECK_FUNCS(getcwd) -fi -AC_CHECK_FUNCS(getwd gethostname socket strerror strstr) -AC_CHECK_FUNCS(getpass strcasecmp getdomainname mktime symlink inet_ntop) -AC_CHECK_FUNCS(res_init snprintf vsnprintf strtoq sigaction waitpid) -AC_CHECK_FUNCS(open64 stat64 fstat64 lstat64 lseek64 llseek) -wi_FUNC_SIGSETJMP -AC_FUNC_SETVBUF_REVERSED - -wi_HEADER_SYS_SELECT_H -AC_FUNC_SELECT_ARGTYPES - -if test -f ../sio/sio.h ; then - ldir=`cd ../sio ; pwd` - LDFLAGS="$LDFLAGS -L${ldir}" - CPPFLAGS="$CPPFLAGS -I${ldir}" - LIBS="$LIBS -lsio" -fi - -if test -f ../Strn/Strn.h ; then - ldir=`cd ../Strn ; pwd` - LDFLAGS="$LDFLAGS -L${ldir}" - CPPFLAGS="$CPPFLAGS -I${ldir}" - LIBS="$LIBS -lStrn" -fi - -if test $ac_cv_func_getcwd = no && test $ac_cv_func_getwd = no ; then -AC_WARN(This system does not have either getwd or getcwd?) -AC_WARN(I find that a little hard to believe.) -AC_WARN(You may want to try -DHAVE_GETWD anyway.) -AC_WARN([ -This could also mean that your compiler isn't working]) -AC_WARN(with this configure script. Check the ./config.log) -AC_WARN(and look for anomalies.) -fi - -wi_PROG_TAR -AC_PROG_RANLIB - -if test "$LONGEST_INT" = "long long" ; then - if sed 's/^#define longest_int.*/#define longest_int long long/; -s/^#define longest_uint.*/#define longest_uint unsigned long long/' ncftp.h > temp.h ; then - mv temp.h ncftp.h - chmod a+r ncftp.h - fi -else - if sed 's/^#define longest_int.*/#define longest_int long/; -s/^#define longest_uint.*/#define longest_uint unsigned long/' ncftp.h > temp.h ; then - mv temp.h ncftp.h - chmod a+r ncftp.h - fi -fi - -CPPFLAGS="-I$MAINDIR $CPPFLAGS" - -if test "$no_signals" = no ; then - dv1='# if 0' - dv2='#if 0' -else - dv1='# if 1' - dv2='#if 1' -fi - -if sed "s!^.*/. %config1!${dv1} /* %config1!;s!^.*/. %config2!${dv2} /* %config2!" ncftp.h > temp.h ; then - mv temp.h ncftp.h - chmod a+r ncftp.h -fi - -if sed "s!^.*/. %config1!${dv1} /* %config1!;s!^.*/. %config2!${dv2} /* %config2!" syshdrs.h > temp.h ; then - mv temp.h syshdrs.h - chmod a+r syshdrs.h -fi - -changequote(<<, >>)dnl -# -# Configure sio specially, like it would do. -# -if [ -d ../sio ] ; then - if sed "s!^.*/. %config1!${dv1} /* %config1!;s!^.*/. %config2!${dv2} /* %config2!" ../sio/sio.h > temp.h ; then - mv temp.h ../sio/sio.h - chmod a+r ../sio/sio.h - fi - if sed "s!^.*/. %config1!${dv1} /* %config1!;s!^.*/. %config2!${dv2} /* %config2!" ../sio/usio.h > temp.h ; then - mv temp.h ../sio/usio.h - chmod a+r ../sio/usio.h - fi - - patterns1="" - patterns2="" - if [ "$SYS" = solaris ] ; then - patterns1='s!/. %configure%.*!#define SAccept SAcceptS!' - patterns2='s!/. %configure%.*!#define UAccept UAcceptS!' - fi - - if [ "$patterns1" != "" ] ; then - sed "$patterns1" < ../sio/sio.h > tmpfile - if [ $? -eq 0 ] ; then - mv tmpfile ../sio/sio.h - chmod 644 ../sio/sio.h - else - /bin/rm tmpfile - fi - fi - - if [ "$patterns2" != "" ] ; then - sed "$patterns2" < ../sio/usio.h > tmpfile - if [ $? -eq 0 ] ; then - mv tmpfile ../sio/usio.h - chmod 644 ../sio/usio.h - else - /bin/rm tmpfile - fi - fi -fi -changequote([, ])dnl - -if test -d bin.only ; then - binonly="bin.only/Makefile bin.only/samples/Makefile" -else - binonly="" -fi - -LIBS=`echo "$LIBS" | sed 's/^ *//;s/ *$//;s/ */ /g'` -LDFLAGS=`echo "$LDFLAGS" | sed 's/^ *//;s/ *$//;s/ */ /g'` -CPPFLAGS=`echo "$CPPFLAGS" | sed 's/^ *//;s/ *$//;s/ */ /g'` -CFLAGS=`echo "$CFLAGS" | sed 's/^ *//;s/ *$//;s/ */ /g'` -DEFS=`echo "$DEFS" | sed 's/^ *//;s/ *$//;s/ */ /g'` - -samples='' -for sample in minincftp monkey ncftpget ncftpput ncftpls simpleget ncftpsyncput misc ; do - if test -f samples/$sample/Makefile.in ; then - samples="$samples samples/$sample/Makefile" - fi -done - -AC_OUTPUT([Makefile ../Strn/Makefile ../sio/Makefile $samples $binonly]) diff --git a/rosapps/applications/net/ncftp/libncftp/dos2unix.sh b/rosapps/applications/net/ncftp/libncftp/dos2unix.sh deleted file mode 100644 index 0959d5e4f2d..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/dos2unix.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -es=1 -if [ $# -eq 0 ] ; then - exec tr -d '\015\032' -elif [ ! -f "$1" ] ; then - echo "Not found: $1" 1>&2 -else - for f in "$@" ; do - if tr -d '\015\032' < "$f" > "$f.tmp" ; then - if cmp "$f" "$f.tmp" > /dev/null ; then - rm -f "$f.tmp" - else - touch -r "$f" "$f.tmp" - if mv "$f" "$f.bak" ; then - if mv "$f.tmp" "$f" ; then - rm -f "$f.bak" - es=$? - echo " converted $f" - else - rm -f "$f.tmp" - fi - else - rm -f "$f.tmp" - fi - fi - else - rm -f "$f.tmp" - fi - done -fi - -exit $es diff --git a/rosapps/applications/net/ncftp/libncftp/errno.c b/rosapps/applications/net/ncftp/libncftp/errno.c deleted file mode 100644 index e5b6ee5c46f..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/errno.c +++ /dev/null @@ -1,163 +0,0 @@ -/* errno.c - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#define _libncftp_errno_c_ 1 -#include "syshdrs.h" - -static const char *gErrList[kErrLast - kErrFirst + 2] = { - "gethostname() failed", /* -100 */ - "hostname does not include domain name", /* -101 */ - "could not set linger mode", /* -102 */ - "could not set type of service", /* -103 */ - "could not enable out-of-band data inline", /* -104 */ - "unknown host", /* -105 */ - "could not get a new stream socket", /* -106 */ - "could not duplicate a socket", /* -107 */ - "fdopen for reading failed", /* -108 */ - "fdopen for writing failed", /* -109 */ - "getsockname failed", /* -110 */ - "could not bind the data socket", /* -111 */ - "could not listen on the data socket", /* -112 */ - "passive mode failed", /* -113 */ - "server sent bogus port number", /* -114 */ - "could not connect data socket", /* -115 */ - "could not accept data socket", /* -116 */ - "could not set restart point", /* -117 */ - "could not connect to remote host", /* -118 */ - "could not connect to remote host, but can try again", /* -119 */ - "remote host refused connection", /* -120 */ - "bad transfer type", /* -121 */ - "invalid directory parameter", /* -122 */ - "malloc failed", /* -123 */ - "PWD failed", /* -124 */ - "remote chdir failed", /* -125 */ - "remote rmdir failed", /* -126 */ - "bad line list", /* -127 */ - "unimplemented option", /* -128 */ - "unimplemented function", /* -129 */ - "remote directory listing failed", /* -130 */ - "could not retrieve remote file", /* -131 */ - "could not send file to remote host", /* -132 */ - "file write error", /* -133 */ - "file read error", /* -134 */ - "socket write error", /* -135 */ - "socket read error", /* -136 */ - "could not open file", /* -137 */ - "bad magic number in FTP library structure", /* -138 */ - "bad parameter given to library", /* -139 */ - "remote mkdir failed", /* -140 */ - "remote cd .. failed", /* -141 */ - "remote chmod failed", /* -142 */ - "remote umask failed", /* -143 */ - "remote delete failed", /* -144 */ - "remote file size inquiry failed", /* -145 */ - "remote file timestamp inquiry failed", /* -146 */ - "remote transfer type change failed", /* -147 */ - "file size inquiries not understood by remote server", /* -148 */ - "file timestamp inquiries not understood by remote server", /* -149 */ - "could not rename remote file", /* -150 */ - "could not do remote wildcard expansion", /* -151 */ - "could not set keepalive option", /* -152 */ - "remote host disconnected during login", /* -153 */ - "username was not accepted for login", /* -154 */ - "username and/or password was not accepted for login", /* -155 */ - "login failed", /* -156 */ - "invalid reply from server", /* -157 */ - "remote host closed control connection", /* -158 */ - "not connected", /* -159 */ - "could not start data transfer", /* -160 */ - "data transfer failed", /* -161 */ - "PORT failed", /* -162 */ - "PASV failed", /* -163 */ - "UTIME failed", /* -164 */ - "utime requests not understood by remote server", /* -165 */ - "HELP failed", /* -166 */ - "file deletion on local host failed", /* -167 */ - "lseek failed", /* -168 */ - "data transfer aborted by local user", /* -169 */ - "SYMLINK failed", /* -170 */ - "symlink requests not understood by remote server", /* -171 */ - "no match", /* -172 */ - "server features request failed", /* -173 */ - "no valid files were specified", /* -174 */ - "file transfer buffer has not been allocated", /* -175 */ - "will not overwrite local file with older remote file", /* -176 */ - "will not overwrite remote file with older local file", /* -177 */ - "local file appears to be the same as the remote file, no transfer necessary", /* -178 */ - "could not get extended directory information (MLSD)", /* -179 */ - "could not get extended file or directory information (MLST)", /* -180 */ - "could not parse extended file or directory information", /* -181 */ - "server does not support extended file or directory information", /* -182 */ - "server does not support extended directory information", /* -183 */ - "could not get information about specified file", /* -184 */ - "server does not support file or directory information", /* -185 */ - "could not get directory information about specified file", /* -186 */ - "server does not support directory information", /* -187 */ - "no such file or directory", /* -188 */ - "server provides no way to determine file existence", /* -189 */ - "item exists, but cannot tell if it is a file or directory", /* -190 */ - "not a directory", /* -191 */ - "directory recursion limit reached", /* -192 */ - "timed out while waiting for server response", /* -193 */ - "data transfer timed out", /* -194 */ - "canceled by user", /* -195 */ - NULL, -}; - -int gLibNcFTP_Uses_Me_To_Quiet_Variable_Unused_Warnings = 0; - -const char * -FTPStrError(int e) -{ - if (e == kErrGeneric) { - return ("miscellaneous error"); - } else if (e == kNoErr) { - return ("no error"); - } else { - if (e < 0) - e = -e; - if ((e >= kErrFirst) && (e <= kErrLast)) { - return (gErrList[e - kErrFirst]); - } - } - return ("unrecognized error number"); -} /* FTPStrError */ - - - - -void -FTPPerror(const FTPCIPtr cip, const int err, const int eerr, const char *const s1, const char *const s2) -{ - if (err != kNoErr) { - if (err == eerr) { - if ((s2 == NULL) || (s2[0] == '\0')) { - if ((s1 == NULL) || (s1[0] == '\0')) { - (void) fprintf(stderr, "server said: %s\n", cip->lastFTPCmdResultStr); - } else { - (void) fprintf(stderr, "%s: server said: %s\n", s1, cip->lastFTPCmdResultStr); - } - } else if ((s1 == NULL) || (s1[0] == '\0')) { - (void) fprintf(stderr, "%s: server said: %s\n", s2, cip->lastFTPCmdResultStr); - } else { - (void) fprintf(stderr, "%s %s: server said: %s\n", s1, s2, cip->lastFTPCmdResultStr); - } - } else { - if ((s2 == NULL) || (s2[0] == '\0')) { - if ((s1 == NULL) || (s1[0] == '\0')) { - (void) fprintf(stderr, "%s.\n", FTPStrError(cip->errNo)); - } else { - (void) fprintf(stderr, "%s: %s.\n", s1, FTPStrError(cip->errNo)); - } - } else if ((s1 == NULL) || (s1[0] == '\0')) { - (void) fprintf(stderr, "%s: %s.\n", s2, FTPStrError(cip->errNo)); - } else { - (void) fprintf(stderr, "%s %s: %s.\n", s1, s2, FTPStrError(cip->errNo)); - } - } - } -} /* FTPPerror */ diff --git a/rosapps/applications/net/ncftp/libncftp/ftp.c b/rosapps/applications/net/ncftp/libncftp/ftp.c deleted file mode 100644 index 43f415689ff..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/ftp.c +++ /dev/null @@ -1,1362 +0,0 @@ -/* ftp.c - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#define _libncftp_ftp_c_ -#include "syshdrs.h" - -char gLibNcFTPVersion[64] = kLibraryVersion; - -#ifdef NO_SIGNALS -static char gNoSignalsMarker[] = "@(#) LibNcFTP - NO_SIGNALS"; -#else - -static int gGotSig = 0; -#ifdef HAVE_SIGSETJMP -static sigjmp_buf gCancelConnectJmp; -#else -static jmp_buf gCancelConnectJmp; -#endif /* HAVE_SIGSETJMP */ - -#endif /* NO_SIGNALS */ - - -#ifndef lint -static char gCopyright[] = "@(#) LibNcFTP Copyright 1995-2000, by Mike Gleason. All rights reserved."; -#endif - -#ifdef HAVE_LIBSOCKS5 -# define SOCKS 5 -# include -#else -# ifdef HAVE_LIBSOCKS -# define accept Raccept -# define connect Rconnect -# define getsockname Rgetsockname -# define listen Rlisten -# endif -#endif - - - - -/* On entry, you should have 'host' be set to a symbolic name (like - * cse.unl.edu), or set to a numeric address (like 129.93.3.1). - * If the function fails, it will return NULL, but if the host was - * a numeric style address, you'll have the ip_address to fall back on. - */ - -static struct hostent * -GetHostEntry(char *host, struct in_addr *ip_address) -{ - struct in_addr ip; - struct hostent *hp; - - /* See if the host was given in the dotted IP format, like "36.44.0.2." - * If it was, inet_addr will convert that to a 32-bit binary value; - * it not, inet_addr will return (-1L). - */ - ip.s_addr = inet_addr(host); - if (ip.s_addr != INADDR_NONE) { - hp = NULL; - } else { - /* No IP address, so it must be a hostname, like ftp.wustl.edu. */ - hp = gethostbyname(host); - if (hp != NULL) - (void) memcpy(&ip.s_addr, hp->h_addr_list[0], (size_t) hp->h_length); - } - if (ip_address != NULL) - *ip_address = ip; - return (hp); -} /* GetHostEntry */ - - - - -/* Makes every effort to return a fully qualified domain name. */ -int -GetOurHostName(char *host, size_t siz) -{ -#ifdef HOSTNAME - /* You can hardcode in the name if this routine doesn't work - * the way you want it to. - */ - Strncpy(host, HOSTNAME, siz); - return (1); /* Success */ -#else - struct hostent *hp; - int result; - char **curAlias; - char domain[64]; - char *cp; - int rc; - - host[0] = '\0'; - result = gethostname(host, (int) siz); - if ((result < 0) || (host[0] == '\0')) { - return (-1); - } - - if (strchr(host, '.') != NULL) { - /* gethostname returned full name (like "cse.unl.edu"), instead - * of just the node name (like "cse"). - */ - return (2); /* Success */ - } - - hp = gethostbyname(host); - if (hp != NULL) { - /* Maybe the host entry has the full name. */ - cp = strchr((char *) hp->h_name, '.'); - if ((cp != NULL) && (cp[1] != '\0')) { - /* The 'name' field for the host entry had full name. */ - (void) Strncpy(host, (char *) hp->h_name, siz); - return (3); /* Success */ - } - - /* Now try the list of aliases, to see if any of those look real. */ - for (curAlias = hp->h_aliases; *curAlias != NULL; curAlias++) { - cp = strchr(*curAlias, '.'); - if ((cp != NULL) && (cp[1] != '\0')) { - (void) Strncpy(host, *curAlias, siz); - return (4); /* Success */ - } - } - } - - /* Otherwise, we just have the node name. See if we can get the - * domain name ourselves. - */ -#ifdef DOMAINNAME - (void) STRNCPY(domain, DOMAINNAME); - rc = 5; -#else - rc = -1; - domain[0] = '\0'; -# if defined(HAVE_RES_INIT) && defined(HAVE__RES_DEFDNAME) - if (domain[0] == '\0') { - (void) res_init(); - if ((_res.defdname != NULL) && (_res.defdname[0] != '\0')) { - (void) STRNCPY(domain, _res.defdname); - rc = 6; - } - } -# endif /* HAVE_RES_INIT && HAVE__RES_DEFDNAME */ - - if (domain[0] == '\0') { - FILE *fp; - char line[256]; - char *tok; - - fp = fopen("/etc/resolv.conf", "r"); - if (fp != NULL) { - (void) memset(line, 0, sizeof(line)); - while (fgets(line, sizeof(line) - 1, fp) != NULL) { - if (!isalpha((int) line[0])) - continue; /* Skip comment lines. */ - tok = strtok(line, " \t\n\r"); - if (tok == NULL) - continue; /* Impossible */ - if (strcmp(tok, "domain") == 0) { - tok = strtok(NULL, " \t\n\r"); - if (tok == NULL) - continue; /* syntax error */ - (void) STRNCPY(domain, tok); - rc = 7; - break; /* Done. */ - } - } - (void) fclose(fp); - } - } -#endif /* DOMAINNAME */ - - if (domain[0] != '\0') { - /* Supposedly, it's legal for a domain name with - * a period at the end. - */ - cp = domain + strlen(domain) - 1; - if (*cp == '.') - *cp = '\0'; - if (domain[0] != '.') - (void) Strncat(host, ".", siz); - (void) Strncat(host, domain, siz); - } - if (rc < 0) - host[0] = '\0'; - return(rc); /* Success */ -#endif /* !HOSTNAME */ -} /* GetOurHostName */ - - - -void -CloseControlConnection(const FTPCIPtr cip) -{ - /* This will close each file, if it was open. */ -#ifdef NO_SIGNALS - SClose(cip->ctrlSocketR, 3); - cip->ctrlSocketR = kClosedFileDescriptor; - cip->ctrlSocketW = kClosedFileDescriptor; - DisposeSReadlineInfo(&cip->ctrlSrl); -#else /* NO_SIGNALS */ - if (cip->ctrlTimeout > 0) - (void) alarm(cip->ctrlTimeout); - CloseFile(&cip->cin); - CloseFile(&cip->cout); - cip->ctrlSocketR = kClosedFileDescriptor; - cip->ctrlSocketW = kClosedFileDescriptor; - if (cip->ctrlTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - cip->connected = 0; - cip->loggedIn = 0; -} /* CloseControlConnection */ - - - -static int -GetSocketAddress(const FTPCIPtr cip, int sockfd, struct sockaddr_in *saddr) -{ - int len = (int) sizeof (struct sockaddr_in); - int result = 0; - - if (getsockname(sockfd, (struct sockaddr *)saddr, &len) < 0) { - Error(cip, kDoPerror, "Could not get socket name.\n"); - cip->errNo = kErrGetSockName; - result = kErrGetSockName; - } - return (result); -} /* GetSocketAddress */ - - - - -int -SetKeepAlive(const FTPCIPtr cip, int sockfd) -{ -#ifndef SO_KEEPALIVE - cip->errNo = kErrSetKeepAlive; - return (kErrSetKeepAlive); -#else - int opt; - - opt = 1; - - if (setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, (char *) &opt, (int) sizeof(opt)) < 0) { - /* Error(cip, kDoPerror, "Could not set keep-alive mode.\n"); */ - cip->errNo = kErrSetKeepAlive; - return (kErrSetKeepAlive); - } - return (kNoErr); -#endif /* SO_KEEPALIVE */ -} /* SetKeepAlive */ - - - - -int -SetLinger(const FTPCIPtr cip, int sockfd, int onoff) -{ -#ifndef SO_LINGER - cip->errNo = kErrSetLinger; - return (kErrSetLinger); -#else - struct linger li; - - if (onoff != 0) { - li.l_onoff = 1; - li.l_linger = 120; /* 2 minutes, but system ignores field. */ - } else { - li.l_onoff = 0; - li.l_linger = 0; - } - /* Have the system make an effort to deliver any unsent data, - * even after we close the connection. - */ - if (setsockopt(sockfd, SOL_SOCKET, SO_LINGER, (char *) &li, (int) sizeof(li)) < 0) { - /* Error(cip, kDoPerror, "Could not set linger mode.\n"); */ - cip->errNo = kErrSetLinger; - return (kErrSetLinger); - } - return (kNoErr); -#endif /* SO_LINGER */ -} /* SetLinger */ - - - - -#ifdef IP_TOS -int -SetTypeOfService(const FTPCIPtr cip, int sockfd, int tosType) -{ - /* Specify to the router what type of connection this is, so it - * can prioritize packets. - */ - if (setsockopt(sockfd, IPPROTO_IP, IP_TOS, (char *) &tosType, (int) sizeof(tosType)) < 0) { - /* Error(cip, kDoPerror, "Could not set type of service.\n"); */ - cip->errNo = kErrSetTypeOfService; - return (kErrSetTypeOfService); - } - return (kNoErr); -} /* SetTypeOfService */ -#endif /* IP_TOS */ - - - - -#ifdef SO_OOBINLINE -int -SetInlineOutOfBandData(const FTPCIPtr cip, int sockfd) -{ - int on = 1; - - if (setsockopt(sockfd, SOL_SOCKET, SO_OOBINLINE, (char *) &on, (int) sizeof(on)) < 0) { - Error(cip, kDoPerror, "Could not set out of band inline mode.\n"); - cip->errNo = kErrSetOutOfBandInline; - return (kErrSetOutOfBandInline); - } - return (kNoErr); -} /* SetInlineOutOfBandData */ -#endif /* SO_OOBINLINE */ - - - - -#ifndef NO_SIGNALS - -static void -CancelConnect(int signum) -{ - gGotSig = signum; -#ifdef HAVE_SIGSETJMP - siglongjmp(gCancelConnectJmp, 1); -#else - longjmp(gCancelConnectJmp, 1); -#endif /* HAVE_SIGSETJMP */ -} /* CancelConnect */ - -#endif /* NO_SIGNALS */ - - - -int -OpenControlConnection(const FTPCIPtr cip, char *host, unsigned int port) -{ - struct in_addr ip_address; - int err = 0; - int result; - int oerrno; - volatile int sockfd = -1; - volatile int sock2fd = -1; - ResponsePtr rp; - char **volatile curaddr; - struct hostent *hp; - char *volatile fhost; - unsigned int fport; -#ifndef NO_SIGNALS - volatile FTPSigProc osigint; - volatile FTPSigProc osigalrm; - volatile FTPCIPtr vcip; - int sj; -#endif /* NO_SIGNALS */ - const char *firstLine, *secondLine, *srvr; - - LIBNCFTP_USE_VAR(gLibNcFTPVersion); - LIBNCFTP_USE_VAR(gCopyright); -#ifdef NO_SIGNALS - LIBNCFTP_USE_VAR(gNoSignalsMarker); -#endif /* NO_SIGNALS */ - - if (cip->firewallType == kFirewallNotInUse) { - fhost = host; - fport = port; - } else { - fhost = cip->firewallHost; - fport = cip->firewallPort; - } - if (fport == 0) - fport = cip->lip->defaultPort; - - /* Since we're the client, we just have to get a socket() and - * connect() it. - */ - (void) ZERO(cip->servCtlAddr); - cip->cin = NULL; - cip->cout = NULL; - - /* Make sure we use network byte-order. */ - fport = (unsigned int) htons((unsigned short) fport); - - cip->servCtlAddr.sin_port = (unsigned short) fport; - - hp = GetHostEntry(fhost, &ip_address); - - if (hp == NULL) { - /* Okay, no Host entry, but maybe we have a numeric address - * in ip_address we can try. - */ - if (ip_address.s_addr == INADDR_NONE) { - Error(cip, kDontPerror, "%s: unknown host.\n", fhost); - cip->errNo = kErrHostUnknown; - return (kErrHostUnknown); - } - cip->servCtlAddr.sin_family = AF_INET; - cip->servCtlAddr.sin_addr.s_addr = ip_address.s_addr; - } else { - cip->servCtlAddr.sin_family = hp->h_addrtype; - /* We'll fill in the rest of the structure below. */ - } - - /* After obtaining a socket, try to connect it to a remote - * address. If we didn't get a host entry, we will only have - * one thing to try (ip_address); if we do have one, we can try - * every address in the list from the host entry. - */ - - if (hp == NULL) { - /* Since we're given a single raw address, and not a host entry, - * we can only try this one address and not any other addresses - * that could be present for a site with a host entry. - */ - - if ((sockfd = socket(cip->servCtlAddr.sin_family, SOCK_STREAM, 0)) < 0) { - Error(cip, kDoPerror, "Could not get a socket.\n"); - cip->errNo = kErrNewStreamSocket; - return (kErrNewStreamSocket); - } - - /* This doesn't do anything if you left these - * at their defaults (zero). Otherwise it - * tries to set the buffer size to the - * size specified. - */ - (void) SetSockBufSize(sockfd, cip->ctrlSocketRBufSize, cip->ctrlSocketSBufSize); - -#ifdef NO_SIGNALS - err = SConnect(sockfd, &cip->servCtlAddr, (int) cip->connTimeout); - - if (err < 0) { - oerrno = errno; - (void) SClose(sockfd, 3); - errno = oerrno; - sockfd = -1; - } -#else /* NO_SIGNALS */ - osigint = (volatile FTPSigProc) signal(SIGINT, CancelConnect); - if (cip->connTimeout > 0) { - osigalrm = (volatile FTPSigProc) signal(SIGALRM, CancelConnect); - (void) alarm(cip->connTimeout); - } - - vcip = cip; - -#ifdef HAVE_SIGSETJMP - sj = sigsetjmp(gCancelConnectJmp, 1); -#else - sj = setjmp(gCancelConnectJmp); -#endif /* HAVE_SIGSETJMP */ - - if (sj != 0) { - /* Interrupted by a signal. */ - (void) closesocket(sockfd); - (void) signal(SIGINT, (FTPSigProc) osigint); - if (vcip->connTimeout > 0) { - (void) alarm(0); - (void) signal(SIGALRM, (FTPSigProc) osigalrm); - } - if (gGotSig == SIGINT) { - result = vcip->errNo = kErrConnectMiscErr; - Error(vcip, kDontPerror, "Connection attempt canceled.\n"); - (void) kill(getpid(), SIGINT); - } else if (gGotSig == SIGALRM) { - result = vcip->errNo = kErrConnectRetryableErr; - Error(vcip, kDontPerror, "Connection attempt timed-out.\n"); - (void) kill(getpid(), SIGALRM); - } else { - result = vcip->errNo = kErrConnectMiscErr; - Error(vcip, kDontPerror, "Connection attempt failed due to an unexpected signal (%d).\n", gGotSig); - } - return (result); - } else { - err = connect(sockfd, (struct sockaddr *) &cip->servCtlAddr, - (int) sizeof (cip->servCtlAddr)); - if (cip->connTimeout > 0) { - (void) alarm(0); - (void) signal(SIGALRM, (FTPSigProc) osigalrm); - } - (void) signal(SIGINT, (FTPSigProc) osigint); - } - - if (err < 0) { - oerrno = errno; - (void) closesocket(sockfd); - errno = oerrno; - sockfd = -1; - } -#endif /* NO_SIGNALS */ - } else { - /* We can try each address in the list. We'll quit when we - * run out of addresses to try or get a successful connection. - */ - for (curaddr = hp->h_addr_list; *curaddr != NULL; curaddr++) { - if ((sockfd = socket(cip->servCtlAddr.sin_family, SOCK_STREAM, 0)) < 0) { - Error(cip, kDoPerror, "Could not get a socket.\n"); - cip->errNo = kErrNewStreamSocket; - return (kErrNewStreamSocket); - } - /* This could overwrite the address field in the structure, - * but this is okay because the structure has a junk field - * just for this purpose. - */ - (void) memcpy(&cip->servCtlAddr.sin_addr, *curaddr, (size_t) hp->h_length); - - /* This doesn't do anything if you left these - * at their defaults (zero). Otherwise it - * tries to set the buffer size to the - * size specified. - */ - (void) SetSockBufSize(sockfd, cip->ctrlSocketRBufSize, cip->ctrlSocketSBufSize); - -#ifdef NO_SIGNALS - err = SConnect(sockfd, &cip->servCtlAddr, (int) cip->connTimeout); - - if (err == 0) - break; - oerrno = errno; - (void) SClose(sockfd, 3); - errno = oerrno; - sockfd = -1; -#else /* NO_SIGNALS */ - - osigint = (volatile FTPSigProc) signal(SIGINT, CancelConnect); - if (cip->connTimeout > 0) { - osigalrm = (volatile FTPSigProc) signal(SIGALRM, CancelConnect); - (void) alarm(cip->connTimeout); - } - - vcip = cip; -#ifdef HAVE_SIGSETJMP - sj = sigsetjmp(gCancelConnectJmp, 1); -#else - sj = setjmp(gCancelConnectJmp); -#endif /* HAVE_SIGSETJMP */ - - if (sj != 0) { - /* Interrupted by a signal. */ - (void) closesocket(sockfd); - (void) signal(SIGINT, (FTPSigProc) osigint); - if (vcip->connTimeout > 0) { - (void) alarm(0); - (void) signal(SIGALRM, (FTPSigProc) osigalrm); - } - if (gGotSig == SIGINT) { - result = vcip->errNo = kErrConnectMiscErr; - Error(vcip, kDontPerror, "Connection attempt canceled.\n"); - (void) kill(getpid(), SIGINT); - } else if (gGotSig == SIGALRM) { - result = vcip->errNo = kErrConnectRetryableErr; - Error(vcip, kDontPerror, "Connection attempt timed-out.\n"); - (void) kill(getpid(), SIGALRM); - } else { - result = vcip->errNo = kErrConnectMiscErr; - Error(vcip, kDontPerror, "Connection attempt failed due to an unexpected signal (%d).\n", gGotSig); - } - return (result); - } else { - err = connect(sockfd, (struct sockaddr *) &cip->servCtlAddr, - (int) sizeof (cip->servCtlAddr)); - if (cip->connTimeout > 0) { - (void) alarm(0); - (void) signal(SIGALRM, (FTPSigProc) osigalrm); - } - (void) signal(SIGINT, (FTPSigProc) osigint); - } - - if (err == 0) - break; - oerrno = errno; - (void) closesocket(sockfd); - errno = oerrno; - sockfd = -1; -#endif /* NO_SIGNALS */ - } - } - - if (err < 0) { - /* Could not connect. Close up shop and go home. */ - - /* If possible, tell the caller if they should bother - * calling back later. - */ - switch (errno) { -#ifdef ENETDOWN - case ENETDOWN: -#elif defined(WSAENETDOWN) - case WSAENETDOWN: -#endif -#ifdef ENETUNREACH - case ENETUNREACH: -#elif defined(WSAENETUNREACH) - case WSAENETUNREACH: -#endif -#ifdef ECONNABORTED - case ECONNABORTED: -#elif defined(WSAECONNABORTED) - case WSAECONNABORTED: -#endif -#ifdef ETIMEDOUT - case ETIMEDOUT: -#elif defined(WSAETIMEDOUT) - case WSAETIMEDOUT: -#endif -#ifdef EHOSTDOWN - case EHOSTDOWN: -#elif defined(WSAEHOSTDOWN) - case WSAEHOSTDOWN: -#endif -#ifdef ECONNRESET - case ECONNRESET: -#elif defined(WSAECONNRESET) - case WSAECONNRESET: -#endif - Error(cip, kDoPerror, "Could not connect to %s -- try again later.\n", fhost); - result = cip->errNo = kErrConnectRetryableErr; - break; -#ifdef ECONNREFUSED - case ECONNREFUSED: -#elif defined(WSAECONNREFUSED) - case WSAECONNREFUSED: -#endif - Error(cip, kDoPerror, "Could not connect to %s.\n", fhost); - result = cip->errNo = kErrConnectRefused; - break; - default: - Error(cip, kDoPerror, "Could not connect to %s.\n", fhost); - result = cip->errNo = kErrConnectMiscErr; - } - goto fatal; - } - - /* Get our end of the socket address for later use. */ - if ((result = GetSocketAddress(cip, sockfd, &cip->ourCtlAddr)) < 0) - goto fatal; - -#ifdef SO_OOBINLINE - /* We want Out-of-band data to appear in the regular stream, - * since we can handle TELNET. - */ - (void) SetInlineOutOfBandData(cip, sockfd); -#endif - (void) SetKeepAlive(cip, sockfd); - (void) SetLinger(cip, sockfd, 0); /* Don't need it for ctrl. */ - -#if defined(IP_TOS) && defined(IPTOS_LOWDELAY) - /* Control connection is somewhat interactive, so quick response - * is desired. - */ - (void) SetTypeOfService(cip, sockfd, IPTOS_LOWDELAY); -#endif - -#ifdef NO_SIGNALS - cip->ctrlSocketR = sockfd; - cip->ctrlSocketW = sockfd; - cip->cout = NULL; - cip->cin = NULL; - sock2fd = kClosedFileDescriptor; - - if (InitSReadlineInfo(&cip->ctrlSrl, sockfd, cip->srlBuf, sizeof(cip->srlBuf), (int) cip->ctrlTimeout, 1) < 0) { - result = kErrFdopenW; - cip->errNo = kErrFdopenW; - Error(cip, kDoPerror, "Could not fdopen.\n"); - goto fatal; - } -#else /* NO_SIGNALS */ - if ((sock2fd = dup(sockfd)) < 0) { - result = kErrDupSocket; - cip->errNo = kErrDupSocket; - Error(cip, kDoPerror, "Could not duplicate a file descriptor.\n"); - goto fatal; - } - - /* Now setup the FILE pointers for use with the Std I/O library - * routines. - */ - if ((cip->cin = fdopen(sockfd, "r")) == NULL) { - result = kErrFdopenR; - cip->errNo = kErrFdopenR; - Error(cip, kDoPerror, "Could not fdopen.\n"); - goto fatal; - } - - if ((cip->cout = fdopen(sock2fd, "w")) == NULL) { - result = kErrFdopenW; - cip->errNo = kErrFdopenW; - Error(cip, kDoPerror, "Could not fdopen.\n"); - CloseFile(&cip->cin); - sockfd = kClosedFileDescriptor; - goto fatal; - } - - cip->ctrlSocketR = sockfd; - cip->ctrlSocketW = sockfd; - - /* We'll be reading and writing lines, so use line buffering. This - * is necessary since the stdio library will use full buffering - * for all streams not associated with the tty. - */ -#ifdef HAVE_SETLINEBUF - setlinebuf(cip->cin); - setlinebuf(cip->cout); -#else - (void) SETVBUF(cip->cin, NULL, _IOLBF, (size_t) BUFSIZ); - (void) SETVBUF(cip->cout, NULL, _IOLBF, (size_t) BUFSIZ); -#endif -#endif /* NO_SIGNALS */ - -#ifdef HAVE_INET_NTOP /* Mostly to workaround bug in IRIX 6.5's inet_ntoa */ - (void) memset(cip->ip, 0, sizeof(cip->ip)); - (void) inet_ntop(AF_INET, &cip->servCtlAddr.sin_addr, cip->ip, sizeof(cip->ip) - 1); -#else - (void) STRNCPY(cip->ip, inet_ntoa(cip->servCtlAddr.sin_addr)); -#endif - if ((hp == NULL) || (hp->h_name == NULL)) - (void) STRNCPY(cip->actualHost, fhost); - else - (void) STRNCPY(cip->actualHost, (char *) hp->h_name); - - /* Read the startup message from the server. */ - rp = InitResponse(); - if (rp == NULL) { - Error(cip, kDontPerror, "Malloc failed.\n"); - cip->errNo = kErrMallocFailed; - result = cip->errNo; - goto fatal; - } - - result = GetResponse(cip, rp); - if ((result < 0) && (rp->msg.first == NULL)) { - goto fatal; - } - if (rp->msg.first != NULL) { - cip->serverType = kServerTypeUnknown; - srvr = NULL; - firstLine = rp->msg.first->line; - secondLine = NULL; - if (rp->msg.first->next != NULL) - secondLine = rp->msg.first->next->line; - - if (strstr(firstLine, "Version wu-") != NULL) { - cip->serverType = kServerTypeWuFTPd; - srvr = "wu-ftpd"; - } else if (strstr(firstLine, "NcFTPd") != NULL) { - cip->serverType = kServerTypeNcFTPd; - srvr = "NcFTPd Server"; - } else if (STRNEQ("ProFTPD", firstLine, 7)) { - cip->serverType = kServerTypeProFTPD; - srvr = "ProFTPD"; - } else if (strstr(firstLine, "Microsoft FTP Service") != NULL) { - cip->serverType = kServerTypeMicrosoftFTP; - srvr = "Microsoft FTP Service"; - } else if (strstr(firstLine, "(NetWare ") != NULL) { - cip->serverType = kServerTypeNetWareFTP; - srvr = "NetWare FTP Service"; - } else if (STRNEQ("WFTPD", firstLine, 5)) { - cip->serverType = kServerTypeWFTPD; - srvr = "WFTPD"; - } else if (STRNEQ("Serv-U FTP", firstLine, 10)) { - cip->serverType = kServerTypeServ_U; - srvr = "Serv-U FTP-Server"; - } else if (strstr(firstLine, "VFTPD") != NULL) { - cip->serverType = kServerTypeVFTPD; - srvr = "VFTPD"; - } else if (STRNEQ("FTP-Max", firstLine, 7)) { - cip->serverType = kServerTypeFTP_Max; - srvr = "FTP-Max"; - } else if (strstr(firstLine, "Roxen") != NULL) { - cip->serverType = kServerTypeRoxen; - srvr = "Roxen"; - } else if (strstr(firstLine, "WS_FTP") != NULL) { - cip->serverType = kServerTypeWS_FTP; - srvr = "WS_FTP Server"; - } else if ((secondLine != NULL) && (strstr(secondLine, "WarFTP") != NULL)) { - cip->serverType = kServerTypeWarFTPd; - srvr = "WarFTPd"; - } - - if (srvr != NULL) - PrintF(cip, "Remote server is running %s.\n", srvr); - - /* Do the application's connect message callback, if present. */ - if ((cip->onConnectMsgProc != 0) && (rp->codeType < 4)) - (*cip->onConnectMsgProc)(cip, rp); - } - - if (rp->codeType >= 4) { - /* They probably hung up on us right away. That's too bad, - * but we can tell the caller that they can call back later - * and try again. - */ - DoneWithResponse(cip, rp); - result = kErrConnectRetryableErr; - Error(cip, kDontPerror, "Server hungup immediately after connect.\n"); - cip->errNo = kErrConnectRetryableErr; - goto fatal; - } - if (result < 0) /* Some other error occurred during connect message */ - goto fatal; - cip->connected = 1; - DoneWithResponse(cip, rp); - return (kNoErr); - -fatal: - if (sockfd > 0) - (void) closesocket(sockfd); - if (sock2fd > 0) - (void) closesocket(sock2fd); - CloseFile(&cip->cin); - CloseFile(&cip->cout); - cip->ctrlSocketR = kClosedFileDescriptor; - cip->ctrlSocketW = kClosedFileDescriptor; - return (result); -} /* OpenControlConnection */ - - - - -void -CloseDataConnection(const FTPCIPtr cip) -{ - if (cip->dataSocket != kClosedFileDescriptor) { -#ifdef NO_SIGNALS - SClose(cip->dataSocket, 3); -#else /* NO_SIGNALS */ - if (cip->xferTimeout > 0) - (void) alarm(cip->xferTimeout); - (void) closesocket(cip->dataSocket); - if (cip->xferTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - cip->dataSocket = kClosedFileDescriptor; - } - memset(&cip->ourDataAddr, 0, sizeof(cip->ourDataAddr)); - memset(&cip->servDataAddr, 0, sizeof(cip->servDataAddr)); -} /* CloseDataConnection */ - - - - -int -SetStartOffset(const FTPCIPtr cip, longest_int restartPt) -{ - ResponsePtr rp; - int result; - - if (restartPt != (longest_int) 0) { - rp = InitResponse(); - if (rp == NULL) { - Error(cip, kDontPerror, "Malloc failed.\n"); - cip->errNo = kErrMallocFailed; - return (cip->errNo); - } - - /* Force reset to offset zero. */ - if (restartPt == (longest_int) -1) - restartPt = (longest_int) 0; -#ifdef PRINTF_LONG_LONG - result = RCmd(cip, rp, - "REST " PRINTF_LONG_LONG, - restartPt); -#else - result = RCmd(cip, rp, "REST %ld", (long) restartPt); -#endif - - if (result < 0) { - return (result); - } else if (result == 3) { - cip->hasREST = kCommandAvailable; - DoneWithResponse(cip, rp); - } else if (UNIMPLEMENTED_CMD(rp->code)) { - cip->hasREST = kCommandNotAvailable; - DoneWithResponse(cip, rp); - cip->errNo = kErrSetStartPoint; - return (kErrSetStartPoint); - } else { - DoneWithResponse(cip, rp); - cip->errNo = kErrSetStartPoint; - return (kErrSetStartPoint); - } - } - return (0); -} /* SetStartOffset */ - - - -static int -SendPort(const FTPCIPtr cip, struct sockaddr_in *saddr) -{ - char *a, *p; - int result; - ResponsePtr rp; - - rp = InitResponse(); - if (rp == NULL) { - Error(cip, kDontPerror, "Malloc failed.\n"); - cip->errNo = kErrMallocFailed; - return (cip->errNo); - } - - /* These will point to data in network byte order. */ - a = (char *) &saddr->sin_addr; - p = (char *) &saddr->sin_port; -#define UC(x) (int) (((int) x) & 0xff) - - /* Need to tell the other side which host (the address) and - * which process (port) on that host to send data to. - */ - result = RCmd(cip, rp, "PORT %d,%d,%d,%d,%d,%d", - UC(a[0]), UC(a[1]), UC(a[2]), UC(a[3]), UC(p[0]), UC(p[1])); - - if (result < 0) { - return (result); - } else if (result != 2) { - /* A 500'ish response code means the PORT command failed. */ - DoneWithResponse(cip, rp); - cip->errNo = kErrPORTFailed; - return (cip->errNo); - } - DoneWithResponse(cip, rp); - return (kNoErr); -} /* SendPort */ - - - - -static int -Passive(const FTPCIPtr cip, struct sockaddr_in *saddr, int *weird) -{ - ResponsePtr rp; - int i[6], j; - unsigned char n[6]; - char *cp; - int result; - - rp = InitResponse(); - if (rp == NULL) { - Error(cip, kDontPerror, "Malloc failed.\n"); - cip->errNo = kErrMallocFailed; - return (cip->errNo); - } - - result = RCmd(cip, rp, "PASV"); - if (result < 0) - goto done; - - if (rp->codeType != 2) { - /* Didn't understand or didn't want passive port selection. */ - cip->errNo = result = kErrPASVFailed; - goto done; - } - - /* The other side returns a specification in the form of - * an internet address as the first four integers (each - * integer stands for 8-bits of the real 32-bit address), - * and two more integers for the port (16-bit port). - * - * It should give us something like: - * "Entering Passive Mode (129,93,33,1,10,187)", so look for - * digits with sscanf() starting 24 characters down the string. - */ - for (cp = rp->msg.first->line; ; cp++) { - if (*cp == '\0') { - Error(cip, kDontPerror, "Cannot parse PASV response: %s\n", rp->msg.first->line); - goto done; - } - if (isdigit((int) *cp)) - break; - } - - if (sscanf(cp, "%d,%d,%d,%d,%d,%d", - &i[0], &i[1], &i[2], &i[3], &i[4], &i[5]) != 6) { - Error(cip, kDontPerror, "Cannot parse PASV response: %s\n", rp->msg.first->line); - goto done; - } - - for (j=0, *weird = 0; j<6; j++) { - /* Some ftp servers return bogus port octets, such as - * boombox.micro.umn.edu. Let the caller know if we got a - * weird looking octet. - */ - if ((i[j] < 0) || (i[j] > 255)) - *weird = *weird + 1; - n[j] = (unsigned char) (i[j] & 0xff); - } - - (void) memcpy(&saddr->sin_addr, &n[0], (size_t) 4); - (void) memcpy(&saddr->sin_port, &n[4], (size_t) 2); - - result = kNoErr; -done: - DoneWithResponse(cip, rp); - return (result); -} /* Passive */ - - - - -static int -BindToEphemeralPortNumber(int sockfd, struct sockaddr_in *addrp, int ephemLo, int ephemHi) -{ - int i; - int result; - int rangesize; - unsigned short port; - - addrp->sin_family = AF_INET; - if (((int) ephemLo == 0) || ((int) ephemLo >= (int) ephemHi)) { - /* Do it the normal way. System will - * pick one, typically in the range - * of 1024-4999. - */ - addrp->sin_port = 0; /* Let system pick one. */ - - result = bind(sockfd, (struct sockaddr *) addrp, sizeof(struct sockaddr_in)); - } else { - rangesize = (int) ((int) ephemHi - (int) ephemLo); - result = 0; - for (i=0; i<10; i++) { - port = (unsigned short) (((int) rand() % rangesize) + (int) ephemLo); - addrp->sin_port = port; - - result = bind(sockfd, (struct sockaddr *) addrp, sizeof(struct sockaddr_in)); - if (result == 0) - break; - if ((errno != 999) - /* This next line is just fodder to - * shut the compiler up about variable - * not being used. - */ - && (gCopyright[0] != '\0')) - break; - } - } - return (result); -} /* BindToEphemeralPortNumber */ - - - - -int -OpenDataConnection(const FTPCIPtr cip, int mode) -{ - int dataSocket; - int weirdPort; - int result; - - /* Before we can transfer any data, and before we even ask the - * remote server to start transferring via RETR/NLST/etc, we have - * to setup the connection. - */ - -tryPort2: - weirdPort = 0; - result = 0; - CloseDataConnection(cip); /* In case we didn't before... */ - - dataSocket = socket(AF_INET, SOCK_STREAM, 0); - if (dataSocket < 0) { - Error(cip, kDoPerror, "Could not get a data socket.\n"); - result = kErrNewStreamSocket; - cip->errNo = kErrNewStreamSocket; - return result; - } - - /* This doesn't do anything if you left these - * at their defaults (zero). Otherwise it - * tries to set the buffer size to the - * size specified. - */ - (void) SetSockBufSize(dataSocket, cip->dataSocketRBufSize, cip->dataSocketSBufSize); - - if ((cip->hasPASV == kCommandNotAvailable) || (mode == kSendPortMode)) { -tryPort: - cip->ourDataAddr = cip->ourCtlAddr; - cip->ourDataAddr.sin_family = AF_INET; - -#ifdef HAVE_LIBSOCKS - cip->ourDataAddr.sin_port = 0; - if (Rbind(dataSocket, (struct sockaddr *) &cip->ourDataAddr, - (int) sizeof (cip->ourDataAddr), - cip->servCtlAddr.sin_addr.s_addr) < 0) -#else - if (BindToEphemeralPortNumber(dataSocket, &cip->ourDataAddr, (int) cip->ephemLo, (int) cip->ephemHi) < 0) -#endif - { - Error(cip, kDoPerror, "Could not bind the data socket"); - result = kErrBindDataSocket; - cip->errNo = kErrBindDataSocket; - goto bad; - } - - /* Need to do this so we can figure out which port the system - * gave to us. - */ - if ((result = GetSocketAddress(cip, dataSocket, &cip->ourDataAddr)) < 0) - goto bad; - - if (listen(dataSocket, 1) < 0) { - Error(cip, kDoPerror, "listen failed"); - result = kErrListenDataSocket; - cip->errNo = kErrListenDataSocket; - goto bad; - } - - if ((result = SendPort(cip, &cip->ourDataAddr)) < 0) - goto bad; - - cip->dataPortMode = kSendPortMode; - } else { - /* Passive mode. Let the other side decide where to send. */ - - cip->servDataAddr = cip->servCtlAddr; - cip->servDataAddr.sin_family = AF_INET; - cip->ourDataAddr = cip->ourCtlAddr; - cip->ourDataAddr.sin_family = AF_INET; - - if (Passive(cip, &cip->servDataAddr, &weirdPort) < 0) { - Error(cip, kDontPerror, "Passive mode refused.\n"); - cip->hasPASV = kCommandNotAvailable; - - /* We can try using regular PORT commands, which are required - * by all FTP protocol compliant programs, if you said so. - * - * We don't do this automatically, because if your host - * is running a firewall you (probably) do not want SendPort - * FTP for security reasons. - */ - if (mode == kFallBackToSendPortMode) - goto tryPort; - result = kErrPassiveModeFailed; - cip->errNo = kErrPassiveModeFailed; - goto bad; - } - -#ifdef HAVE_LIBSOCKS - cip->ourDataAddr.sin_port = 0; - if (Rbind(dataSocket, (struct sockaddr *) &cip->ourDataAddr, - (int) sizeof (cip->ourDataAddr), - cip->servCtlAddr.sin_addr.s_addr) < 0) -#else - if (BindToEphemeralPortNumber(dataSocket, &cip->ourDataAddr, (int) cip->ephemLo, (int) cip->ephemHi) < 0) -#endif - { - Error(cip, kDoPerror, "Could not bind the data socket"); - result = kErrBindDataSocket; - cip->errNo = kErrBindDataSocket; - goto bad; - } - -#ifdef NO_SIGNALS - result = SConnect(dataSocket, &cip->servDataAddr, (int) cip->connTimeout); -#else /* NO_SIGNALS */ - if (cip->connTimeout > 0) - (void) alarm(cip->connTimeout); - - result = connect(dataSocket, (struct sockaddr *) &cip->servDataAddr, (int) sizeof(cip->servDataAddr)); - if (cip->connTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - -#ifdef NO_SIGNALS - if (result == kTimeoutErr) { - if (mode == kFallBackToSendPortMode) { - Error(cip, kDontPerror, "Data connection timed out.\n"); - Error(cip, kDontPerror, "Falling back to PORT instead of PASV mode.\n"); - (void) closesocket(dataSocket); - cip->hasPASV = kCommandNotAvailable; - goto tryPort2; - } - Error(cip, kDontPerror, "Data connection timed out.\n"); - result = kErrConnectDataSocket; - cip->errNo = kErrConnectDataSocket; - } else -#endif /* NO_SIGNALS */ - - if (result < 0) { -#ifdef ECONNREFUSED - if ((weirdPort > 0) && (errno == ECONNREFUSED)) { -#elif defined(WSAECONNREFUSED) - if ((weirdPort > 0) && (errno == WSAECONNREFUSED)) { -#endif - Error(cip, kDontPerror, "Server sent back a bogus port number.\nI will fall back to PORT instead of PASV mode.\n"); - if (mode == kFallBackToSendPortMode) { - (void) closesocket(dataSocket); - cip->hasPASV = kCommandNotAvailable; - goto tryPort2; - } - result = kErrServerSentBogusPortNumber; - cip->errNo = kErrServerSentBogusPortNumber; - goto bad; - } - if (mode == kFallBackToSendPortMode) { - Error(cip, kDoPerror, "connect failed.\n"); - Error(cip, kDontPerror, "Falling back to PORT instead of PASV mode.\n"); - (void) closesocket(dataSocket); - cip->hasPASV = kCommandNotAvailable; - goto tryPort2; - } - Error(cip, kDoPerror, "connect failed.\n"); - result = kErrConnectDataSocket; - cip->errNo = kErrConnectDataSocket; - goto bad; - } - - /* Need to do this so we can figure out which port the system - * gave to us. - */ - if ((result = GetSocketAddress(cip, dataSocket, &cip->ourDataAddr)) < 0) - goto bad; - - cip->dataPortMode = kPassiveMode; - cip->hasPASV = kCommandAvailable; - } - - (void) SetLinger(cip, dataSocket, 1); - (void) SetKeepAlive(cip, dataSocket); - -#if defined(IP_TOS) && defined(IPTOS_THROUGHPUT) - /* Data connection is a non-interactive data stream, so - * high throughput is desired, at the expense of low - * response time. - */ - (void) SetTypeOfService(cip, dataSocket, IPTOS_THROUGHPUT); -#endif - - cip->dataSocket = dataSocket; - return (0); -bad: - (void) closesocket(dataSocket); - return (result); -} /* OpenDataConnection */ - - - - -int -AcceptDataConnection(const FTPCIPtr cip) -{ - int newSocket; -#ifndef NO_SIGNALS - int len; -#endif - unsigned short remoteDataPort; - unsigned short remoteCtrlPort; - - /* If we did a PORT, we have some things to finish up. - * If we did a PASV, we're ready to go. - */ - if (cip->dataPortMode == kSendPortMode) { - /* Accept will give us back the server's data address; at the - * moment we don't do anything with it though. - */ - memset(&cip->servDataAddr, 0, sizeof(cip->servDataAddr)); - -#ifdef NO_SIGNALS - newSocket = SAccept(cip->dataSocket, &cip->servDataAddr, (int) cip->connTimeout); -#else /* NO_SIGNALS */ - len = (int) sizeof(cip->servDataAddr); - if (cip->connTimeout > 0) - (void) alarm(cip->connTimeout); - newSocket = accept(cip->dataSocket, (struct sockaddr *) &cip->servDataAddr, &len); - if (cip->connTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - - (void) closesocket(cip->dataSocket); - if (newSocket < 0) { - Error(cip, kDoPerror, "Could not accept a data connection.\n"); - cip->dataSocket = kClosedFileDescriptor; - cip->errNo = kErrAcceptDataSocket; - return (kErrAcceptDataSocket); - } - - if (cip->require20 != 0) { - remoteDataPort = ntohs(cip->servDataAddr.sin_port); - remoteCtrlPort = ntohs(cip->servCtlAddr.sin_port); - if ((int) remoteDataPort != ((int) remoteCtrlPort - 1)) { - Error(cip, kDontPerror, "Data connection did not originate on correct port!\n"); - (void) closesocket(newSocket); - cip->dataSocket = kClosedFileDescriptor; - cip->errNo = kErrAcceptDataSocket; - return (kErrAcceptDataSocket); - } else if (memcmp(&cip->servDataAddr.sin_addr.s_addr, &cip->servCtlAddr.sin_addr.s_addr, sizeof(cip->servDataAddr.sin_addr.s_addr)) != 0) { - Error(cip, kDontPerror, "Data connection did not originate from remote server!\n"); - (void) closesocket(newSocket); - cip->dataSocket = kClosedFileDescriptor; - cip->errNo = kErrAcceptDataSocket; - return (kErrAcceptDataSocket); - } - } - - cip->dataSocket = newSocket; - } - - return (0); -} /* AcceptDataConnection */ - - - - -void -HangupOnServer(const FTPCIPtr cip) -{ - /* Since we want to close both sides of the connection for each - * socket, we can just have them closed with close() instead of - * using shutdown(). - */ - CloseControlConnection(cip); - CloseDataConnection(cip); -} /* HangupOnServer */ - - - - -void -SendTelnetInterrupt(const FTPCIPtr cip) -{ - char msg[4]; - - /* 1. User system inserts the Telnet "Interrupt Process" (IP) signal - * in the Telnet stream. - */ - - if (cip->cout != NULL) - (void) fflush(cip->cout); - - msg[0] = (char) (unsigned char) IAC; - msg[1] = (char) (unsigned char) IP; - (void) send(cip->ctrlSocketW, msg, 2, 0); - - /* 2. User system sends the Telnet "Sync" signal. */ -#if 1 - msg[0] = (char) (unsigned char) IAC; - msg[1] = (char) (unsigned char) DM; - if (send(cip->ctrlSocketW, msg, 2, MSG_OOB) != 2) - Error(cip, kDoPerror, "Could not send an urgent message.\n"); -#else - /* "Send IAC in urgent mode instead of DM because UNIX places oob mark - * after urgent byte rather than before as now is protocol," says - * the BSD ftp code. - */ - msg[0] = (char) (unsigned char) IAC; - if (send(cip->ctrlSocketW, msg, 1, MSG_OOB) != 1) - Error(cip, kDoPerror, "Could not send an urgent message.\n"); - (void) fprintf(cip->cout, "%c", DM); - (void) fflush(cip->cout); -#endif -} /* SendTelnetInterrupt */ - -/* eof FTP.c */ diff --git a/rosapps/applications/net/ncftp/libncftp/ftp.h b/rosapps/applications/net/ncftp/libncftp/ftp.h deleted file mode 100644 index f91d9503bf3..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/ftp.h +++ /dev/null @@ -1,22 +0,0 @@ -/* FTP.h - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -/* FTP.c */ -void MyInetAddr(char *, size_t, char **, int); -int GetOurHostName(char *, size_t); -void CloseControlConnection(const FTPCIPtr); -int SetKeepAlive(const FTPCIPtr, int); -int SetLinger(const FTPCIPtr, int, int); -int SetTypeOfService(const FTPCIPtr, int, int); -int SetInlineOutOfBandData(const FTPCIPtr, int); -int OpenControlConnection(const FTPCIPtr, char *, unsigned int); -void CloseDataConnection(const FTPCIPtr); -int SetStartOffset(const FTPCIPtr, longest_int); -int OpenDataConnection(const FTPCIPtr, int); -int AcceptDataConnection(const FTPCIPtr); -void HangupOnServer(const FTPCIPtr); -void SendTelnetInterrupt(const FTPCIPtr); diff --git a/rosapps/applications/net/ncftp/libncftp/glob.c b/rosapps/applications/net/ncftp/libncftp/glob.c deleted file mode 100644 index 152d3c42ec9..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/glob.c +++ /dev/null @@ -1,1760 +0,0 @@ -/* glob.c - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#include "syshdrs.h" - -static const char *rwx[9] = { "---", "--x", "-w-", "-wx", "r--", "r-x", "rw-", "rwx", NULL }; - - - -/* We need to use this because using NLST gives us more stuff than - * we want back sometimes. For example, say we have: - * - * /a (directory) - * /a/b (directory) - * /a/b/b1 - * /a/b/b2 - * /a/b/b3 - * /a/c (directory) - * /a/c/c1 - * /a/c/c2 - * /a/c/c3 - * /a/file - * - * If you did an "echo /a/" in a normal unix shell, you would expect - * to get back /a/b /a/c /a/file. But NLST gives back: - * - * /a/b/b1 - * /a/b/b2 - * /a/b/b3 - * /a/c/c1 - * /a/c/c2 - * /a/c/c3 - * /a/file - * - * So we use the following routine to convert into the format I expect. - */ - -static void -RemoteGlobCollapse(const char *pattern, LineListPtr fileList) -{ - LinePtr lp, nextLine; - string patPrefix; - string cur, prev; - char *endp, *cp, *dp; - const char *pp; - int wasGlobChar; - size_t plen; - - /* Copy all characters before the first glob-char. */ - dp = patPrefix; - endp = dp + sizeof(patPrefix) - 1; - wasGlobChar = 0; - for (cp = (char *) pattern; dp < endp; ) { - for (pp=kGlobChars; *pp != '\0'; pp++) { - if (*pp == *cp) { - wasGlobChar = 1; - break; - } - } - if (wasGlobChar) - break; - *dp++ = *cp++; - } - *dp = '\0'; - plen = (size_t) (dp - patPrefix); - - *prev = '\0'; - for (lp=fileList->first; lp != NULL; lp = nextLine) { - nextLine = lp->next; - if (strncmp(lp->line, patPrefix, plen) == 0) { - (void) STRNCPY(cur, lp->line + plen); - cp = strchr(cur, '/'); - if (cp == NULL) - cp = strchr(cur, '\\'); - if (cp != NULL) - *cp = '\0'; - if ((*prev != '\0') && (STREQ(cur, prev))) { - nextLine = RemoveLine(fileList, lp); - } else { - (void) STRNCPY(prev, cur); - /* We are playing with a dynamically - * allocated string, but since the - * following expression is guaranteed - * to be the same or shorter, we won't - * overwrite the bounds. - */ - (void) sprintf(lp->line, "%s%s", patPrefix, cur); - } - } - } -} /* RemoteGlobCollapse */ - - - - -#if 0 -/* May need this later. */ -static void -CheckForLS_d(FTPCIPtr cip) -{ - LineList lines; - char *cp; - - if (cip->hasNLST_d == kCommandAvailabilityUnknown) { - if (FTPListToMemory2(cip, ".", &lines, "-d ", 0, (int *) 0) == kNoErr) { - if ((lines.first != NULL) && (lines.first == lines.last)) { - /* If we have only one item in the list, see if it really was - * an error message we would recognize. - */ - cp = strchr(lines.first->line, ':'); - if ((cp != NULL) && STREQ(cp, ": No such file or directory")) { - cip->hasNLST_d = kCommandNotAvailable; - } else { - cip->hasNLST_d = kCommandAvailable; - } - } else { - cip->hasNLST_d = kCommandNotAvailable; - } - } else { - cip->hasNLST_d = kCommandNotAvailable; - } - DisposeLineListContents(&lines); - } -} /* CheckForLS_d */ -#endif - - - - -static int -LsMonthNameToNum(char *cp) -{ - int mon; /* 0..11 */ - - switch (*cp++) { - case 'A': - mon = (*cp == 'u') ? 7 : 3; - break; - case 'D': - mon = 11; - break; - case 'F': - mon = 1; - break; - default: - case 'J': - if (*cp++ == 'u') - mon = (*cp == 'l') ? 6 : 5; - else - mon = 0; - break; - case 'M': - mon = (*++cp == 'r') ? 2 : 4; - break; - case 'N': - mon = 10; - break; - case 'O': - mon = 9; - break; - case 'S': - mon = 8; - } - return (mon); -} /* LsMonthNameToNum */ - - - - -static int -UnDosLine( char *const line, - const char *const curdir, - size_t curdirlen, - char *fname, - size_t fnamesize, - int *ftype, - longest_int *fsize, - time_t *ftime) -{ - char *cp; - int hour, year; - char *filestart; - char *sizestart; - struct tm ftm; - - /* - * -0123456789012345678901234567890123456789012345678901234567890123456789 -04-27-99 10:32PM 270158 Game booklet.pdf -03-11-99 10:03PM Get A3d Banner - -We also try to parse the format from CMD.EXE, which is similar: - -03/22/2001 06:23p 62,325 cls.pdf - - * - */ - cp = line; - if ( - isdigit((int) cp[0]) - && isdigit((int) cp[1]) - && ispunct((int) cp[2]) - && isdigit((int) cp[3]) - && isdigit((int) cp[4]) - && ispunct((int) cp[5]) - && isdigit((int) cp[6]) - && isdigit((int) cp[7]) - ) { - (void) memset(&ftm, 0, sizeof(struct tm)); - ftm.tm_isdst = -1; - cp[2] = '\0'; - ftm.tm_mon = atoi(cp + 0); - if (ftm.tm_mon > 0) - ftm.tm_mon -= 1; - cp[5] = '\0'; - ftm.tm_mday = atoi(cp + 3); - if ((isdigit((int) cp[8])) && (isdigit((int) cp[9]))) { - /* Four-digit year */ - cp[10] = '\0'; - year = atoi(cp + 6); - if (year > 1900) - year -= 1900; - ftm.tm_year = year; /* years since 1900 */ - cp += 11; - } else { - /* Two-digit year */ - cp[8] = '\0'; - year = atoi(cp + 6); - if (year < 98) - year += 100; - ftm.tm_year = year; /* years since 1900 */ - cp += 9; - } - - for (;;) { - if (*cp == '\0') - return (-1); - if (isdigit(*cp)) - break; - cp++; - } - - cp[2] = '\0'; - hour = atoi(cp); - if (((cp[5] == 'P') || (cp[5] == 'p')) && (hour < 12)) - hour += 12; - else if (((cp[5] == 'A') || (cp[5] == 'a')) && (hour == 12)) - hour -= 12; - ftm.tm_hour = hour; - cp[5] = '\0'; - ftm.tm_min = atoi(cp + 3); - *ftime = mktime(&ftm); - if (*ftype == (time_t) -1) - return (-1); - - cp += 6; - *ftype = '-'; - for (;;) { - if (*cp == '\0') - return (-1); - if ((*cp == '<') && (cp[1] == 'D')) { - /* found */ - *ftype = 'd'; - cp += 5; - break; /* size field will end up being empty string */ - } else if ((*cp == '<') && (cp[1] == 'J')) { - /* found - * - * Will we ever really see this? - * IIS from Win2000sp1 sends - * for FTP, but CMD.EXE prints - * . - */ - *ftype = 'd'; - cp += 10; - break; - } else if (isdigit(*cp)) { - break; - } else { - cp++; - } - } - - sizestart = cp; - for (;;) { - if (*cp == '\0') - return (-1); -#ifdef HAVE_MEMMOVE - if (*cp == ',') { - /* Yuck -- US Locale dependency */ - memmove(cp, cp + 1, strlen(cp + 1) + 1); - } -#endif - if (!isdigit(*cp)) { - *cp++ = '\0'; - break; - } - cp++; - } - - if (fsize != NULL) { -#if defined(HAVE_LONG_LONG) && defined(SCANF_LONG_LONG) - if (*ftype == 'd') - *fsize = 0; - else - (void) sscanf(sizestart, SCANF_LONG_LONG, fsize); -#elif defined(HAVE_LONG_LONG) && defined(HAVE_STRTOQ) - if (*ftype == 'd') - *fsize = 0; - else - *fsize = (longest_int) strtoq(sizestart, NULL, 0); -#else - *fsize = (longest_int) 0; - if (*ftype != 'd') { - long fsize2 = 0L; - - (void) sscanf(sizestart, "%ld", &fsize2); - *fsize = (longest_int) fsize2; - } -#endif - } - - for (;;) { - if (*cp == '\0') - return (-1); - if (!isspace(*cp)) { - break; - } - cp++; - } - - filestart = cp; - if (curdirlen == 0) { - (void) Strncpy(fname, filestart, fnamesize); - } else { - (void) Strncpy(fname, curdir, fnamesize); - (void) Strncat(fname, filestart, fnamesize); - } - - return (0); - } - return (-1); -} /* UnDosLine */ - - - - -static int -UnLslRLine( char *const line, - const char *const curdir, - size_t curdirlen, - char *fname, - size_t fnamesize, - char *linkto, - size_t linktosize, - int *ftype, - longest_int *fsize, - time_t *ftime, - time_t now, - int thisyear, - int *plugend) -{ - char *cp; - int mon = 0, dd = 0, hr = 0, min = 0, year = 0; - char *monstart, *ddstart, *hrstart, *minstart, *yearstart; - char *linktostart, *filestart = NULL; - char *sizestart; - char *pe; - struct tm ftm; - - /* - * Look for the digit just before the space - * before the month name. - * --rw-rw---- 1 gleason sysdev 33404 Mar 24 01:29 RCmd.o --rw-rw-r-- 1 gleason sysdevzz 1829 Jul 7 1996 README --rw-rw-r-- 1 gleason sysdevzz 1829 Jul 7 1996 README --rw-rw-r-- 1 gleason sysdevzz 1829 Jul 7 1996 README --rw-rw-r-- 1 gleason sysdevzz 1829 Jul 7 1996 README - * - *------------------------------^ - * 0123456789012345 - *------plugend--------^ - * 9876543210 - * - */ - for (cp = line; *cp != '\0'; cp++) { - if ( (isdigit((int) *cp)) - && (isspace((int) cp[1])) - && (isupper((int) cp[2])) - && (islower((int) cp[3])) - /* && (islower((int) cp[4])) */ - && (isspace((int) cp[5])) - && ( -((isdigit((int) cp[6])) && (isdigit((int) cp[7]))) -|| ((isdigit((int) cp[6])) && (isspace((int) cp[7]))) -|| ((isspace((int) cp[6])) && (isdigit((int) cp[7]))) - ) - && (isspace((int) cp[8])) - ) { - monstart = cp + 2; - ddstart = cp + 6; - if ( ((isspace((int) cp[9])) || (isdigit((int) cp[9]))) - && (isdigit((int) cp[10])) - && (isdigit((int) cp[11])) - && (isdigit((int) cp[12])) - && ((isdigit((int) cp[13])) || (isspace((int) cp[13]))) - ) { - /* "Mon DD YYYY" form */ - yearstart = cp + 9; - if (isspace((int) *yearstart)) - yearstart++; - hrstart = NULL; - minstart = NULL; - filestart = cp + 15; - cp[1] = '\0'; /* end size */ - cp[5] = '\0'; /* end mon */ - cp[8] = '\0'; /* end dd */ - cp[14] = '\0'; /* end year */ - mon = LsMonthNameToNum(monstart); - dd = atoi(ddstart); - hr = 23; - min = 59; - year = atoi(yearstart); - - pe = cp; - while (isdigit((int) *pe)) - pe--; - while (isspace((int) *pe)) - pe--; - *plugend = (int) (pe - line) + 1; - break; - } else if ( /* - * Windows NT does not 0 pad. - (isdigit((int) cp[9])) && - */ - (isdigit((int) cp[10])) - && (cp[11] == ':') - && (isdigit((int) cp[12])) - && (isdigit((int) cp[13])) - ) { - /* "Mon DD HH:MM" form */ - yearstart = NULL; - hrstart = cp + 9; - minstart = cp + 12; - filestart = cp + 15; - cp[1] = '\0'; /* end size */ - cp[5] = '\0'; /* end mon */ - cp[8] = '\0'; /* end dd */ - cp[11] = '\0'; /* end hr */ - cp[14] = '\0'; /* end min */ - mon = LsMonthNameToNum(monstart); - dd = atoi(ddstart); - hr = atoi(hrstart); - min = atoi(minstart); - year = 0; - - pe = cp; - while (isdigit((int) *pe)) - pe--; - while (isspace((int) *pe)) - pe--; - *plugend = (int) (pe - line) + 1; - break; - } - } - } - - if (*cp == '\0') - return (-1); - - linktostart = strstr(filestart, " -> "); - if (linktostart != NULL) { - *linktostart = '\0'; - linktostart += 4; - (void) Strncpy(linkto, linktostart, linktosize); - } else { - *linkto = '\0'; - } - - if (curdirlen == 0) { - (void) Strncpy(fname, filestart, fnamesize); - } else { - (void) Strncpy(fname, curdir, fnamesize); - (void) Strncat(fname, filestart, fnamesize); - } - - if (ftime != NULL) { - (void) memset(&ftm, 0, sizeof(struct tm)); - ftm.tm_mon = mon; - ftm.tm_mday = dd; - ftm.tm_hour = hr; - ftm.tm_min = min; - ftm.tm_isdst = -1; - if (year == 0) { - /* We guess the year, based on what the - * current year is. We know the file - * on the remote server is either less - * than six months old or less than - * one hour into the future. - */ - ftm.tm_year = thisyear - 1900; - *ftime = mktime(&ftm); - if (*ftime == (time_t) -1) { - /* panic */ - } else if (*ftime > (now + (15552000L + 86400L))) { - --ftm.tm_year; - *ftime = mktime(&ftm); - } else if (*ftime < (now - (15552000L + 86400L))) { - ++ftm.tm_year; - *ftime = mktime(&ftm); - } - } else { - ftm.tm_year = year - 1900; - *ftime = mktime(&ftm); - } - } - - if (fsize != NULL) { - while ((cp > line) && (isdigit((int) *cp))) - --cp; - sizestart = cp + 1; -#if defined(HAVE_LONG_LONG) && defined(SCANF_LONG_LONG) - (void) sscanf(sizestart, SCANF_LONG_LONG, fsize); -#elif defined(HAVE_LONG_LONG) && defined(HAVE_STRTOQ) - *fsize = (longest_int) strtoq(sizestart, NULL, 0); -#else - { - long fsize2 = 0L; - - (void) sscanf(sizestart, "%ld", &fsize2); - *fsize = (longest_int) fsize2; - } -#endif - } - - switch (line[0]) { - case 'd': - case 'l': - *ftype = (int) line[0]; - break; - case 'b': - case 'c': - case 's': - *ftype = (int) line[0]; - return (-1); - default: - *ftype = '-'; - } - - return (0); -} /* UnLslRLine */ - - - -int -UnLslR(FileInfoListPtr filp, LineListPtr llp, int serverType) -{ - char curdir[256]; - char line[256]; - int hadblankline = 0; - int len; - size_t curdirlen = 0; - char fname[256]; - char linkto[256]; - char *cp; - longest_int fsize; - int ftype; - time_t ftime, now; - int thisyear; - struct tm *nowtm; - int rc; - LinePtr lp; - FileInfo fi; - int linesread = 0; - int linesconverted = 0; - size_t maxFileLen = 0; - size_t maxPlugLen = 0; - size_t fileLen; - int plugend; - - (void) time(&now); - nowtm = localtime(&now); - if (nowtm == NULL) - thisyear = 1970; /* should never happen */ - else - thisyear = nowtm->tm_year + 1900; - - curdir[0] = '\0'; - - InitFileInfoList(filp); - for (lp = llp->first; lp != NULL; lp = lp->next) { - len = (int) strlen(STRNCPY(line, lp->line)); - if ((line[0] == 't') && (strncmp(line, "total", 5) == 0)) { - /* total XX line? */ - if (line[len - 1] != ':') { - hadblankline = 0; - continue; - } - /* else it was a subdir named total */ - } else { - for (cp = line; ; cp++) { - if ((*cp == '\0') || (!isspace((int) *cp))) - break; - } - if (*cp == '\0') { - /* Entire line was blank. */ - /* separator line between dirs */ - hadblankline = 1; - continue; - } - } - - if ((hadblankline != 0) && (line[len - 1] == ':')) { - /* newdir */ - hadblankline = 0; - if ((line[0] == '.') && (line[1] == '/')) { - line[len - 1] = '/'; - (void) memcpy(curdir, line + 2, (size_t) len + 1 - 2); - curdirlen = (size_t) (len - 2); - } else if ((line[0] == '.') && (line[1] == '\\')) { - line[len - 1] = '\\'; - (void) memcpy(curdir, line + 2, (size_t) len + 1 - 2); - curdirlen = (size_t) (len - 2); - } else { - line[len - 1] = '/'; - (void) memcpy(curdir, line, (size_t) len + 1); - curdirlen = (size_t) len; - } - continue; - } - - linesread++; - rc = UnLslRLine(line, curdir, curdirlen, fname, sizeof(fname), linkto, sizeof(linkto), &ftype, &fsize, &ftime, now, thisyear, &plugend); - if ((rc < 0) && (serverType == kServerTypeMicrosoftFTP)) { - rc = UnDosLine(line, curdir, curdirlen, fname, sizeof(fname), &ftype, &fsize, &ftime); - if (rc == 0) { - *linkto = '\0'; - plugend = 0; - } - } - if (rc == 0) { - linesconverted++; - fileLen = strlen(fname); - if (fileLen > maxFileLen) - maxFileLen = fileLen; - fi.relnameLen = fileLen; - fi.relname = StrDup(fname); - fi.rname = NULL; - fi.lname = NULL; - fi.rlinkto = (linkto[0] == '\0') ? NULL : StrDup(linkto); - fi.mdtm = ftime; - fi.size = (longest_int) fsize; - fi.type = ftype; - if (plugend > 0) { - fi.plug = (char *) malloc((size_t) plugend + 1); - if (fi.plug != NULL) { - (void) memcpy(fi.plug, line, (size_t) plugend); - fi.plug[plugend] = '\0'; - if ((size_t) plugend > maxPlugLen) - maxPlugLen = (size_t) plugend; - } - } else { - fi.plug = (char *) malloc(32); - if (fi.plug != NULL) { - strcpy(fi.plug, "---------- 1 ftpuser ftpusers"); - fi.plug[0] = (char) ftype; - if (30 > maxPlugLen) - maxPlugLen = (size_t) 30; - } - } - (void) AddFileInfo(filp, &fi); - } - - hadblankline = 0; - } - - filp->maxFileLen = maxFileLen; - filp->maxPlugLen = maxPlugLen; - if (linesread == 0) - return (0); - return ((linesconverted > 0) ? linesconverted : (-1)); -} /* UnLslR */ - - - - -int -UnMlsT(const char *const line0, const MLstItemPtr mlip) -{ - char *cp, *val, *fact; - int ec; - size_t len; - char line[1024]; - - memset(mlip, 0, sizeof(MLstItem)); - mlip->mode = -1; - mlip->fsize = kSizeUnknown; - mlip->ftype = '-'; - mlip->ftime = kModTimeUnknown; - - len = strlen(line0); - if (len > (sizeof(line) - 1)) - return (-1); /* Line too long, sorry. */ - /* This should be re-coded so does not need to make a - * copy of the buffer; it could be done in place. - */ - memcpy(line, line0, len + 1); - - /* Skip leading whitespace. */ - for (cp = line; *cp != '\0'; cp++) { - if (! isspace(*cp)) - break; - } - - while (*cp != '\0') { - for (fact = cp; ; cp++) { - if ((*cp == '\0') || (*cp == ' ')) { - /* protocol violation */ - return (-1); - } - if (*cp == '=') { - /* End of fact name. */ - *cp++ = '\0'; - break; - } - } - for (val = cp; ; cp++) { - if (*cp == '\0') { - /* protocol violation */ - return (-1); - } - if (*cp == ' ') { - ec = ' '; - *cp++ = '\0'; - break; - } else if (*cp == ';') { - if (cp[1] == ' ') { - ec = ' '; - *cp++ = '\0'; - *cp++ = '\0'; - } else { - ec = ';'; - *cp++ = '\0'; - } - break; - } - } - if (ISTRNEQ(fact, "OS.", 3)) - fact += 3; - if (ISTREQ(fact, "type")) { - if (ISTREQ(val, "file")) { - mlip->ftype = '-'; - } else if (ISTREQ(val, "dir")) { - mlip->ftype = 'd'; - } else if (ISTREQ(val, "cdir")) { - /* not supported: current directory */ - return (-2); - } else if (ISTREQ(val, "pdir")) { - /* not supported: parent directory */ - return (-2); - } else { - /* ? */ - return (-1); - } - } else if (ISTREQ(fact, "UNIX.mode")) { - if (val[0] == '0') - sscanf(val, "%o", &mlip->mode); - else - sscanf(val, "%i", &mlip->mode); - if (mlip->mode != (-1)) - mlip->mode &= 00777; - } else if (ISTREQ(fact, "perm")) { - STRNCPY(mlip->perm, val); - } else if (ISTREQ(fact, "size")) { -#if defined(HAVE_LONG_LONG) && defined(SCANF_LONG_LONG) - (void) sscanf(val, SCANF_LONG_LONG, &mlip->fsize); -#elif defined(HAVE_LONG_LONG) && defined(HAVE_STRTOQ) - mlip->fsize = (longest_int) strtoq(val, NULL, 0); -#else - { - long fsize2 = 0L; - - (void) sscanf(val, "%ld", &fsize2); - mlip->fsize = (longest_int) fsize2; - } -#endif - } else if (ISTREQ(fact, "modify")) { - mlip->ftime = UnMDTMDate(val); - } else if (ISTREQ(fact, "UNIX.owner")) { - STRNCPY(mlip->owner, val); - } else if (ISTREQ(fact, "UNIX.group")) { - STRNCPY(mlip->group, val); - } else if (ISTREQ(fact, "UNIX.uid")) { - mlip->uid = atoi(val); - } else if (ISTREQ(fact, "UNIX.gid")) { - mlip->gid = atoi(val); - } else if (ISTREQ(fact, "perm")) { - STRNCPY(mlip->perm, val); - } - - /* End of facts? */ - if (ec == ' ') - break; - } - - len = strlen(cp); - if (len > (sizeof(mlip->fname) - 1)) { - /* Filename too long */ - return (-1); - } - memcpy(mlip->fname, cp, len); - - /* also set linkto here if used */ - - return (0); -} /* UnMlsT */ - - - - -int -UnMlsD(FileInfoListPtr filp, LineListPtr llp) -{ - MLstItem mli; - char plug[64]; - char og[32]; - int rc; - LinePtr lp; - FileInfo fi; - int linesread = 0; - int linesconverted = 0; - int linesignored = 0; - size_t maxFileLen = 0; - size_t maxPlugLen = 0; - size_t fileLen, plugLen; - int m1, m2, m3; - const char *cm1, *cm2, *cm3; - - InitFileInfoList(filp); - for (lp = llp->first; lp != NULL; lp = lp->next) { - linesread++; - rc = UnMlsT(lp->line, &mli); - if (rc == 0) { - linesconverted++; - fileLen = strlen(mli.fname); - if (fileLen > maxFileLen) - maxFileLen = fileLen; - fi.relnameLen = fileLen; - fi.relname = StrDup(mli.fname); - fi.rname = NULL; - fi.lname = NULL; - fi.rlinkto = (mli.linkto[0] == '\0') ? NULL : StrDup(mli.linkto); - fi.mdtm = mli.ftime; - fi.size = (longest_int) mli.fsize; - fi.type = mli.ftype; - plug[0] = (char) mli.ftype; - plug[1] = '\0'; - m1 = 0; - m2 = 0; - m3 = -1; - if (mli.mode != (-1)) { - m1 = (mli.mode & 00700) >> 6; - m2 = (mli.mode & 00070) >> 3; - m3 = (mli.mode & 00007); - } - if (mli.perm[0] != '\0') { - m3 = 0; - if (fi.type == 'd') { - if (strchr(mli.perm, 'e') != NULL) { - /* execute -> execute */ - m3 |= 00001; - } - if (strchr(mli.perm, 'c') != NULL) { - /* create -> write */ - m3 |= 00002; - } - if (strchr(mli.perm, 'l') != NULL) { - /* list -> read */ - m3 |= 00004; - } - } else { - if (strchr(mli.perm, 'w') != NULL) { - /* write -> write */ - m3 |= 00002; - } - if (strchr(mli.perm, 'r') != NULL) { - /* read -> read */ - m3 |= 00004; - } - } - } - if (m3 != (-1)) { - cm1 = rwx[m1]; - cm2 = rwx[m2]; - cm3 = rwx[m3]; - sprintf(plug + 1, "%s%s%s", cm1, cm2, cm3); - } - if (mli.owner[0] != '\0') { - if (mli.group[0] != '\0') { -#ifdef HAVE_SNPRINTF - snprintf(og, sizeof(og) - 1, -#else - sprintf(og, -#endif /* HAVE_SNPRINTF */ - " %-8.8s %s", - mli.owner, mli.group - ); - STRNCAT(plug, og); - } else { - STRNCAT(plug, " "); - STRNCAT(plug, mli.owner); - } - } - fi.plug = StrDup(plug); - if (fi.plug != NULL) { - plugLen = strlen(plug); - if (plugLen > maxPlugLen) - maxPlugLen = plugLen; - } - (void) AddFileInfo(filp, &fi); - } else if (rc == (-2)) { - linesignored++; - } - } - - filp->maxFileLen = maxFileLen; - filp->maxPlugLen = maxPlugLen; - if (linesread == 0) - return (0); - linesconverted += linesignored; - return ((linesconverted > 0) ? linesconverted : (-1)); -} /* UnMlsD */ - - - -#if 0 -static void -print1(FileInfoListPtr list) -{ - FileInfoPtr fip; - int i; - - for (i = 1, fip = list->first; fip != NULL; fip = fip->next, i++) - printf("%d: %s\n", i, fip->relname == NULL ? "NULL" : fip->relname); -} - - - -static void -print2(FileInfoListPtr list) -{ - FileInfoPtr fip; - int i, n; - - n = list->nFileInfos; - for (i=0; ivec[i]; - printf("%d: %s\n", i + 1, fip->relname == NULL ? "NULL" : fip->relname); - } -} - - - - -static void -SortRecursiveFileList(FileInfoListPtr files) -{ - VectorizeFileInfoList(files); - SortFileInfoList(files, 'b', '?'); - UnvectorizeFileInfoList(files); -} /* SortRecursiveFileList */ -#endif - - - - -int -FTPRemoteRecursiveFileList1(FTPCIPtr cip, char *const rdir, FileInfoListPtr files) -{ - LineList dirContents; - FileInfoList fil; - char cwd[512]; - int result; - - if ((result = FTPGetCWD(cip, cwd, sizeof(cwd))) < 0) - return (result); - - InitFileInfoList(files); - - if (rdir == NULL) - return (-1); - - if (FTPChdir(cip, rdir) < 0) { - /* Probably not a directory. - * Just add it as a plain file - * to the list. - */ - (void) ConcatFileToFileInfoList(files, rdir); - return (kNoErr); - } - - /* Paths collected must be relative. */ - if ((result = FTPListToMemory2(cip, "", &dirContents, "-lRa", 1, (int *) 0)) < 0) { - if ((result = FTPChdir(cip, cwd)) < 0) { - return (result); - } - } - - (void) UnLslR(&fil, &dirContents, cip->serverType); - DisposeLineListContents(&dirContents); - /* Could sort it to breadth-first here. */ - /* (void) SortRecursiveFileList(&fil); */ - (void) ComputeRNames(&fil, rdir, 1, 1); - (void) ConcatFileInfoList(files, &fil); - DisposeFileInfoListContents(&fil); - - if ((result = FTPChdir(cip, cwd)) < 0) { - return (result); - } - return (kNoErr); -} /* FTPRemoteRecursiveFileList1 */ - - - - -int -FTPRemoteRecursiveFileList(FTPCIPtr cip, LineListPtr fileList, FileInfoListPtr files) -{ - LinePtr filePtr, nextFilePtr; - LineList dirContents; - FileInfoList fil; - char cwd[512]; - int result; - char *rdir; - - if ((result = FTPGetCWD(cip, cwd, sizeof(cwd))) < 0) - return (result); - - InitFileInfoList(files); - - for (filePtr = fileList->first; - filePtr != NULL; - filePtr = nextFilePtr) - { - nextFilePtr = filePtr->next; - - rdir = filePtr->line; - if (rdir == NULL) - continue; - - if (FTPChdir(cip, rdir) < 0) { - /* Probably not a directory. - * Just add it as a plain file - * to the list. - */ - (void) ConcatFileToFileInfoList(files, rdir); - continue; - } - - /* Paths collected must be relative. */ - if ((result = FTPListToMemory2(cip, "", &dirContents, "-lRa", 1, (int *) 0)) < 0) { - goto goback; - } - - (void) UnLslR(&fil, &dirContents, cip->serverType); - DisposeLineListContents(&dirContents); - (void) ComputeRNames(&fil, rdir, 1, 1); - (void) ConcatFileInfoList(files, &fil); - DisposeFileInfoListContents(&fil); - -goback: - if ((result = FTPChdir(cip, cwd)) < 0) { - return (result); - } - } - return (kNoErr); -} /* FTPRemoteRecursiveFileList */ - - - -#if defined(WIN32) || defined(_WINDOWS) - -static void -Traverse(FTPCIPtr cip, char *fullpath, struct Stat *st, char *relpath, FileInfoListPtr filp) -{ - WIN32_FIND_DATA ffd; - HANDLE searchHandle; - DWORD dwErr; - char *cp, *c2; - const char *file; - FileInfo fi; - - /* Handle directory entry first. */ - if (relpath[0] != '\0') { - fi.relname = StrDup(relpath); - fi.rname = NULL; - fi.lname = StrDup(fullpath); - fi.rlinkto = NULL; - fi.plug = NULL; - fi.mdtm = st->st_mtime; - fi.size = (longest_int) st->st_size; - fi.type = 'd'; - (void) AddFileInfo(filp, &fi); - } - - cp = fullpath + strlen(fullpath); - *cp++ = LOCAL_PATH_DELIM; - strcpy(cp, "*.*"); - - c2 = relpath + strlen(relpath); - *c2++ = LOCAL_PATH_DELIM; - *c2 = '\0'; - - memset(&ffd, 0, sizeof(ffd)); - - /* "Open" the directory. */ - searchHandle = FindFirstFile(fullpath, &ffd); - if (searchHandle == INVALID_HANDLE_VALUE) { - return; - } - - for (;;) { - - file = ffd.cFileName; - if ((*file == '.') && ((file[1] == '\0') || ((file[1] == '.') && (file[2] == '\0')))) { - /* It was "." or "..", so skip it. */ - goto next; - } - - (void) strcpy(cp, file); /* append name after slash */ - (void) strcpy(c2, file); - - if (Lstat(fullpath, st) < 0) { - Error(cip, kDoPerror, "could not stat %s.\n", fullpath); - goto next; - } - - fi.relname = StrDup(relpath + (((relpath[0] == '/') || (relpath[0] == '\\')) ? 1 : 0)); - fi.rname = NULL; - fi.lname = StrDup(fullpath); - fi.mdtm = st->st_mtime; - fi.size = (longest_int) st->st_size; - fi.rlinkto = NULL; - fi.plug = NULL; - - if ((ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0) { - Traverse(cip, fullpath, st, relpath, filp); - } else { - /* file */ - fi.type = '-'; - (void) AddFileInfo(filp, &fi); - } - -next: -#if _DEBUG - memset(&ffd, 0, sizeof(ffd)); -#endif - if (!FindNextFile(searchHandle, &ffd)) { - dwErr = GetLastError(); - if (dwErr != ERROR_NO_MORE_FILES) { - FindClose(searchHandle); - return; - } - break; - } - } - FindClose(searchHandle); -} // Traverse - -#else - -static void -Traverse(FTPCIPtr cip, char *fullpath, struct Stat *st, char *relpath, FileInfoListPtr filp) -{ - char *dname; - struct dirent *dirp; - mode_t m; - DIR *dp; - char *cp; - char *c2; - FileInfo fi; - - if (relpath[0] != '\0') { - fi.relname = StrDup(relpath); - fi.rname = NULL; - fi.lname = StrDup(fullpath); - fi.rlinkto = NULL; - fi.plug = NULL; - fi.mdtm = st->st_mtime; - fi.size = (longest_int) st->st_size; - fi.type = 'd'; - (void) AddFileInfo(filp, &fi); - } - - /* Handle directory entry first. */ - cp = fullpath + strlen(fullpath); - *cp++ = '/'; - *cp = '\0'; - - c2 = relpath + strlen(relpath); - *c2++ = '/'; - *c2 = '\0'; - - if ((dp = opendir(fullpath)) == NULL) { - cp[-1] = '\0'; - c2[-1] = '\0'; - Error(cip, kDoPerror, "could not opendir %s.\n", fullpath); - return; - } - - while ((dirp = readdir(dp)) != NULL) { - dname = dirp->d_name; - if ((dname[0] == '.') && ((dname[1] == '\0') || ((dname[1] == '.') && (dname[2] == '\0')))) - continue; /* skip "." and ".." directories. */ - - (void) strcpy(cp, dirp->d_name); /* append name after slash */ - (void) strcpy(c2, dirp->d_name); - if (Lstat(fullpath, st) < 0) { - Error(cip, kDoPerror, "could not stat %s.\n", fullpath); - continue; - } - - fi.relname = StrDup(relpath + (((relpath[0] == '/') || (relpath[0] == '\\')) ? 1 : 0)); - fi.rname = NULL; - fi.lname = StrDup(fullpath); - fi.mdtm = st->st_mtime; - fi.size = (longest_int) st->st_size; - fi.rlinkto = NULL; - fi.plug = NULL; - - m = st->st_mode; - if (S_ISREG(m) != 0) { - /* file */ - fi.type = '-'; - (void) AddFileInfo(filp, &fi); - } else if (S_ISDIR(m)) { - Traverse(cip, fullpath, st, relpath, filp); -#ifdef S_ISLNK - } else if (S_ISLNK(m)) { - fi.type = 'l'; - fi.rlinkto = calloc(128, 1); - if (fi.rlinkto != NULL) { - if (readlink(fullpath, fi.rlinkto, 127) < 0) { - free(fi.rlinkto); - } else { - (void) AddFileInfo(filp, &fi); - } - } -#endif /* S_ISLNK */ - } - } - cp[-1] = '\0'; - c2[-1] = '\0'; - - (void) closedir(dp); -} /* Traverse */ - -#endif - - - - - -int -FTPLocalRecursiveFileList2(FTPCIPtr cip, LineListPtr fileList, FileInfoListPtr files, int erelative) -{ - LinePtr filePtr, nextFilePtr; -#if defined(WIN32) || defined(_WINDOWS) - char fullpath[_MAX_PATH + 1]; - char relpath[_MAX_PATH + 1]; -#else - char fullpath[512]; - char relpath[512]; -#endif - struct Stat st; - FileInfo fi; - char *cp; - - InitFileInfoList(files); - - for (filePtr = fileList->first; - filePtr != NULL; - filePtr = nextFilePtr) - { - nextFilePtr = filePtr->next; - - (void) STRNCPY(fullpath, filePtr->line); /* initialize fullpath */ - if ((erelative != 0) || (strcmp(filePtr->line, ".") == 0) || (filePtr->line[0] == '\0')) - (void) STRNCPY(relpath, ""); - else if ((cp = StrRFindLocalPathDelim(filePtr->line)) == NULL) - (void) STRNCPY(relpath, filePtr->line); - else - (void) STRNCPY(relpath, cp + 1); - if (Lstat(fullpath, &st) < 0) { - Error(cip, kDoPerror, "could not stat %s.\n", fullpath); - continue; - } - - if (S_ISDIR(st.st_mode) == 0) { - fi.relname = StrDup(relpath); - fi.rname = NULL; - fi.lname = StrDup(fullpath); - fi.mdtm = st.st_mtime; - fi.size = (longest_int) st.st_size; - fi.rlinkto = NULL; - fi.plug = NULL; - fi.type = '-'; - (void) AddFileInfo(files, &fi); - continue; /* wasn't a directory */ - } - - /* Paths collected must be relative. */ - Traverse(cip, fullpath, &st, relpath, files); - } - return (kNoErr); -} /* FTPLocalRecursiveFileList */ - - - - -int -FTPLocalRecursiveFileList(FTPCIPtr cip, LineListPtr fileList, FileInfoListPtr files) -{ - return (FTPLocalRecursiveFileList2(cip, fileList, files, 0)); -} /* FTPLocalRecursiveFileList */ - - - -int -FTPRemoteGlob(FTPCIPtr cip, LineListPtr fileList, const char *pattern, int doGlob) -{ - char *cp; - const char *lsflags; - LinePtr lp; - int result; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (fileList == NULL) - return (kErrBadParameter); - InitLineList(fileList); - - if ((pattern == NULL) || (pattern[0] == '\0')) - return (kErrBadParameter); - - /* Note that we do attempt to use glob characters even if the remote - * host isn't UNIX. Most non-UNIX remote FTP servers look for UNIX - * style wildcards. - */ - if ((doGlob == 1) && (GLOBCHARSINSTR(pattern))) { - /* Use NLST, which lists files one per line. */ - lsflags = ""; - - /* Optimize for "NLST *" case which is same as "NLST". */ - if (strcmp(pattern, "*") == 0) { - pattern = ""; - } else if (strcmp(pattern, "**") == 0) { - /* Hack; Lets you try "NLST -a" if you're daring. */ - pattern = ""; - lsflags = "-a"; - } - - if ((result = FTPListToMemory2(cip, pattern, fileList, lsflags, 0, (int *) 0)) < 0) { - if (*lsflags == '\0') - return (result); - /* Try again, without "-a" */ - lsflags = ""; - if ((result = FTPListToMemory2(cip, pattern, fileList, lsflags, 0, (int *) 0)) < 0) { - return (result); - } - } - if (fileList->first == NULL) { - cip->errNo = kErrGlobNoMatch; - return (kErrGlobNoMatch); - } - if (fileList->first == fileList->last) { -#define glberr(a) (ISTRNEQ(cp, a, strlen(a))) - /* If we have only one item in the list, see if it really was - * an error message we would recognize. - */ - cp = strchr(fileList->first->line, ':'); - if (cp != NULL) { - if (glberr(": No such file or directory")) { - (void) RemoveLine(fileList, fileList->first); - cip->errNo = kErrGlobFailed; - return (kErrGlobFailed); - } else if (glberr(": No match")) { - cip->errNo = kErrGlobNoMatch; - return (kErrGlobNoMatch); - } - } - } - RemoteGlobCollapse(pattern, fileList); - for (lp=fileList->first; lp != NULL; lp = lp->next) - PrintF(cip, " Rglob [%s]\n", lp->line); - } else { - /* Or, if there were no globbing characters in 'pattern', then the - * pattern is really just a filename. So for this case the - * file list is really just a single file. - */ - fileList->first = fileList->last = NULL; - (void) AddLine(fileList, pattern); - } - return (kNoErr); -} /* FTPRemoteGlob */ - - - - -/* This does "tilde-expansion." Examples: - * ~/pub --> /usr/gleason/pub - * ~pdietz/junk --> /usr/pdietz/junk - */ -static void -ExpandTilde(char *pattern, size_t siz) -{ - string pat; - char *cp, *rest, *firstent; -#if defined(WIN32) || defined(_WINDOWS) -#else - struct passwd *pw; -#endif - string hdir; - - if ((pattern[0] == '~') && - (isalnum((int) pattern[1]) || IsLocalPathDelim(pattern[1]) || (pattern[1] == '\0'))) { - (void) STRNCPY(pat, pattern); - if ((cp = StrFindLocalPathDelim(pat)) != NULL) { - *cp = 0; - rest = cp + 1; /* Remember stuff after the ~/ part. */ - } else { - rest = NULL; /* Was just a ~ or ~username. */ - } - if (pat[1] == '\0') { - /* Was just a ~ or ~/rest type. */ - GetHomeDir(hdir, sizeof(hdir)); - firstent = hdir; - } else { -#if defined(WIN32) || defined(_WINDOWS) - return; -#else - /* Was just a ~username or ~username/rest type. */ - pw = getpwnam(pat + 1); - if (pw != NULL) - firstent = pw->pw_dir; - else - return; /* Bad user -- leave it alone. */ -#endif - } - - (void) Strncpy(pattern, firstent, siz); - if (rest != NULL) { - (void) Strncat(pattern, LOCAL_PATH_DELIM_STR, siz); - (void) Strncat(pattern, rest, siz); - } - } -} /* ExpandTilde */ - - - - - -#if defined(WIN32) || defined(_WINDOWS) - -static int -WinLocalGlob(FTPCIPtr cip, LineListPtr fileList, const char *const srcpat) -{ - char pattern[_MAX_PATH]; - WIN32_FIND_DATA ffd; - HANDLE searchHandle; - DWORD dwErr; - char *cp; - const char *file; - int result; - - STRNCPY(pattern, srcpat); - - /* Get rid of trailing slashes. */ - cp = pattern + strlen(pattern) - 1; - while ((cp >= pattern) && IsLocalPathDelim(*cp)) - *cp-- = '\0'; - - memset(&ffd, 0, sizeof(ffd)); - - /* "Open" the directory. */ - searchHandle = FindFirstFile(pattern, &ffd); - if (searchHandle == INVALID_HANDLE_VALUE) { - dwErr = GetLastError(); - return ((dwErr == 0) ? 0 : -1); - } - - /* Get rid of basename. */ - cp = StrRFindLocalPathDelim(pattern); - if (cp == NULL) - cp = pattern; - else - cp++; - *cp = '\0'; - - for (result = 0;;) { - file = ffd.cFileName; - if ((file[0] == '.') && ((file[1] == '\0') || ((file[1] == '.') && (file[2] == '\0')))) { - /* skip */ - } else { - Strncpy(cp, ffd.cFileName, sizeof(pattern) - (cp - pattern)); - PrintF(cip, " Lglob [%s]\n", pattern); - (void) AddLine(fileList, pattern); - } - - if (!FindNextFile(searchHandle, &ffd)) { - dwErr = GetLastError(); - if (dwErr != ERROR_NO_MORE_FILES) { - result = ((dwErr == 0) ? 0 : -1); - } - break; - } - } - - return (result); -} // WinLocalGlob - -#else - -static int -LazyUnixLocalGlob(FTPCIPtr cip, LineListPtr fileList, const char *const pattern) -{ - string cmd; - longstring gfile; - FILE *fp; - FTPSigProc sp; - - /* Do it the easy way and have the shell do the dirty - * work for us. - */ -#ifdef HAVE_SNPRINTF - (void) snprintf(cmd, sizeof(cmd) - 1, "%s -c \"%s %s %s\"", "/bin/sh", "/bin/ls", - "-d", pattern); - cmd[sizeof(cmd) - 1] = '\0'; -#else - (void) sprintf(cmd, "%s -c \"%s %s %s\"", "/bin/sh", "/bin/ls", - "-d", pattern); -#endif - - fp = (FILE *) popen(cmd, "r"); - if (fp == NULL) { - Error(cip, kDoPerror, "Could not Lglob: [%s]\n", cmd); - cip->errNo = kErrGlobFailed; - return (kErrGlobFailed); - } - sp = NcSignal(SIGPIPE, (FTPSigProc) SIG_IGN); - while (FGets(gfile, sizeof(gfile), (FILE *) fp) != NULL) { - PrintF(cip, " Lglob [%s]\n", gfile); - (void) AddLine(fileList, gfile); - } - (void) pclose(fp); - (void) NcSignal(SIGPIPE, sp); - return (kNoErr); -} /* LazyUnixLocalGlob */ - -#endif - - - - -int -FTPLocalGlob(FTPCIPtr cip, LineListPtr fileList, const char *pattern, int doGlob) -{ - string pattern2; - int result; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (fileList == NULL) - return (kErrBadParameter); - InitLineList(fileList); - - if ((pattern == NULL) || (pattern[0] == '\0')) - return (kErrBadParameter); - - (void) STRNCPY(pattern2, pattern); /* Don't nuke the original. */ - - /* Pre-process for ~'s. */ - ExpandTilde(pattern2, sizeof(pattern2)); - InitLineList(fileList); - result = kNoErr; - - if ((doGlob == 1) && (GLOBCHARSINSTR(pattern2))) { -#if defined(WIN32) || defined(_WINDOWS) - result = WinLocalGlob(cip, fileList, pattern2); -#else - result = LazyUnixLocalGlob(cip, fileList, pattern2); -#endif - } else { - /* Or, if there were no globbing characters in 'pattern', then - * the pattern is really just a single pathname. - */ - (void) AddLine(fileList, pattern2); - } - - return (result); -} /* FTPLocalGlob */ - - - - -static int -FTPFtwL2(const FTPCIPtr cip, char *dir, char *end, size_t dirsize, FTPFtwProc proc, int maxdepth) -{ - LineList fileList; - LinePtr filePtr; - char *file, *cp; - int result; - - if (maxdepth <= 0) { - result = cip->errNo = kErrRecursionLimitReached; - return (result); - } - - result = FTPRemoteGlob(cip, &fileList, "**", kGlobYes); - if (result != kNoErr) { - if (result == kErrGlobNoMatch) - result = kNoErr; /* empty directory is okay. */ - return (result); - } - - for (filePtr = fileList.first; - filePtr != NULL; - filePtr = filePtr->next) - { - file = filePtr->line; - if (file == NULL) { - cip->errNo = kErrBadLineList; - break; - } - - if ((file[0] == '.') && ((file[1] == '\0') || ((file[1] == '.') && (file[2] == '\0')))) - continue; /* Skip . and .. */ - - result = FTPIsDir(cip, file); - if (result < 0) { - /* error */ - /* could be just a stat error, so continue */ - continue; - } else if (result == 1) { - /* directory */ - cp = Strnpcat(dir, file, dirsize); - result = (*proc)(cip, dir, kFtwDir); - if (result != kNoErr) - break; - - if ((strchr(dir, '/') == NULL) && (strrchr(dir, '\\') != NULL)) - *cp++ = '\\'; - else - *cp++ = '/'; - *cp = '\0'; - - result = FTPChdir(cip, file); - if (result == kNoErr) { - result = FTPFtwL2(cip, dir, cp, dirsize, proc, maxdepth - 1); - if (result != kNoErr) - break; - if (FTPChdir(cip, "..") < 0) { - result = kErrCannotGoToPrevDir; - cip->errNo = kErrCannotGoToPrevDir; - break; - } - } - - *end = '\0'; - if (result != 0) - break; - } else { - /* file */ - cp = Strnpcat(dir, file, dirsize); - result = (*proc)(cip, dir, kFtwFile); - *end = '\0'; - if (result != 0) - break; - } - } - DisposeLineListContents(&fileList); - - return (result); -} /* FTPFtwL2 */ - - - -int -FTPFtw(const FTPCIPtr cip, const char *const dir, FTPFtwProc proc, int maxdepth) -{ - int result, result2; - char *cp; - char savedcwd[1024]; - char curcwd[2048]; - - result = FTPIsDir(cip, dir); - if (result < 0) { - /* error */ - return result; - } else if (result == 0) { - result = cip->errNo = kErrNotADirectory; - return (result); - } - - /* Preserve old working directory. */ - (void) FTPGetCWD(cip, savedcwd, sizeof(savedcwd)); - - result = FTPChdir(cip, dir); - if (result != kNoErr) { - return (result); - } - - /* Get full working directory we just changed to. */ - result = FTPGetCWD(cip, curcwd, sizeof(curcwd) - 3); - if (result != kNoErr) { - if (FTPChdir(cip, savedcwd) != kNoErr) { - result = kErrCannotGoToPrevDir; - cip->errNo = kErrCannotGoToPrevDir; - } - return (result); - } - - result2 = (*proc)(cip, curcwd, kFtwDir); - if (result2 == kNoErr) { - cp = curcwd + strlen(curcwd); - - if ((strchr(curcwd, '/') == NULL) && (strrchr(curcwd, '\\') != NULL)) - *cp++ = '\\'; - else - *cp++ = '/'; - *cp = '\0'; - result = FTPFtwL2(cip, curcwd, cp, sizeof(curcwd), proc, maxdepth - 1); - } - - - if (FTPChdir(cip, savedcwd) != kNoErr) { - /* Could not cd back to the original user directory -- bad. */ - result = kErrCannotGoToPrevDir; - cip->errNo = kErrCannotGoToPrevDir; - return (result); - } - - if ((result2 != kNoErr) && (result == kNoErr)) - result = result2; - - return (result); -} /* FTPFtw */ - -/* eof */ diff --git a/rosapps/applications/net/ncftp/libncftp/io.c b/rosapps/applications/net/ncftp/libncftp/io.c deleted file mode 100644 index b92dd04cc98..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/io.c +++ /dev/null @@ -1,2824 +0,0 @@ -/* io.c - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#include "syshdrs.h" - -static int gGotBrokenData = 0; - -#if defined(WIN32) || defined(_WINDOWS) -# define ASCII_TRANSLATION 0 -#endif - -#ifndef ASCII_TRANSLATION -# define ASCII_TRANSLATION 1 -#endif - -#if !defined(NO_SIGNALS) && (USE_SIO || !defined(SIGALRM) || !defined(SIGPIPE) || !defined(SIGINT)) -# define NO_SIGNALS 1 -#endif - -#ifndef NO_SIGNALS - -#ifdef HAVE_SIGSETJMP -static sigjmp_buf gBrokenDataJmp; -#else -static jmp_buf gBrokenDataJmp; -#endif /* HAVE_SIGSETJMP */ -static int gCanBrokenDataJmp = 0; - -#endif /* NO_SIGNALS */ - - -#ifndef O_BINARY - /* Needed for platforms using different EOLN sequence (i.e. DOS) */ -# ifdef _O_BINARY -# define O_BINARY _O_BINARY -# else -# define O_BINARY 0 -# endif -#endif - -static int WaitForRemoteInput(const FTPCIPtr cip); -static int WaitForRemoteOutput(const FTPCIPtr cip); - - -#ifndef NO_SIGNALS - -static void -BrokenData(int signum) -{ - gGotBrokenData = signum; - if (gCanBrokenDataJmp != 0) { - gCanBrokenDataJmp = 0; -#ifdef HAVE_SIGSETJMP - siglongjmp(gBrokenDataJmp, 1); -#else - longjmp(gBrokenDataJmp, 1); -#endif /* HAVE_SIGSETJMP */ - } -} /* BrokenData */ - -#endif /* NO_SIGNALS */ - - - - -void -FTPInitIOTimer(const FTPCIPtr cip) -{ - cip->bytesTransferred = (longest_int) 0; - cip->expectedSize = kSizeUnknown; - cip->mdtm = kModTimeUnknown; - cip->rname = NULL; - cip->lname = NULL; - cip->kBytesPerSec = -1.0; - cip->percentCompleted = -1.0; - cip->sec = -1.0; - cip->secLeft = -1.0; - cip->nextProgressUpdate = 0; - cip->stalled = 0; - cip->dataTimedOut = 0; - cip->useProgressMeter = 1; - (void) gettimeofday(&cip->t0, NULL); -} /* FTPInitIOTimer */ - - - - -void -FTPStartIOTimer(const FTPCIPtr cip) -{ - (void) gettimeofday(&cip->t0, NULL); - if (cip->progress != (FTPProgressMeterProc) 0) - (*cip->progress)(cip, kPrInitMsg); -} /* FTPStartIOTimer */ - - - - -void -FTPUpdateIOTimer(const FTPCIPtr cip) -{ - double sec; - struct timeval *t0, t1; - time_t now; - - (void) time(&now); - if (now < cip->nextProgressUpdate) - return; - now += 1; - cip->nextProgressUpdate = now; - - (void) gettimeofday(&t1, NULL); - t0 = &cip->t0; - - if (t0->tv_usec > t1.tv_usec) { - t1.tv_usec += 1000000; - t1.tv_sec--; - } - sec = ((double) (t1.tv_usec - t0->tv_usec) * 0.000001) - + (t1.tv_sec - t0->tv_sec); - if (sec > 0.0) { - cip->kBytesPerSec = ((double) cip->bytesTransferred) / (1024.0 * sec); - } else { - cip->kBytesPerSec = -1.0; - } - if (cip->expectedSize == kSizeUnknown) { - cip->percentCompleted = -1.0; - cip->secLeft = -1.0; - } else if (cip->expectedSize <= 0) { - cip->percentCompleted = 100.0; - cip->secLeft = 0.0; - } else { - cip->percentCompleted = ((double) (100.0 * (cip->bytesTransferred + cip->startPoint))) / ((double) cip->expectedSize); - if (cip->percentCompleted >= 100.0) { - cip->percentCompleted = 100.0; - cip->secLeft = 0.0; - } else if (cip->percentCompleted <= 0.0) { - cip->secLeft = 999.0; - } - if (cip->kBytesPerSec > 0.0) { - cip->secLeft = ((cip->expectedSize - cip->bytesTransferred - cip->startPoint) / 1024.0) / cip->kBytesPerSec; - if (cip->secLeft < 0.0) - cip->secLeft = 0.0; - } - } - cip->sec = sec; - if ((cip->progress != (FTPProgressMeterProc) 0) && (cip->useProgressMeter != 0)) - (*cip->progress)(cip, kPrUpdateMsg); -} /* FTPUpdateIOTimer */ - - - - -void -FTPStopIOTimer(const FTPCIPtr cip) -{ - cip->nextProgressUpdate = 0; /* force last update */ - FTPUpdateIOTimer(cip); - if (cip->progress != (FTPProgressMeterProc) 0) - (*cip->progress)(cip, kPrEndMsg); -} /* FTPStopIOTimer */ - - - - -/* This isn't too useful -- it mostly serves as an example so you can write - * your own function to do what you need to do with the listing. - */ -int -FTPList(const FTPCIPtr cip, const int outfd, const int longMode, const char *const lsflag) -{ - const char *cmd; - char line[512]; - char secondaryBuf[768]; -#ifndef NO_SIGNALS - char *secBufPtr, *secBufLimit; - int nread; - volatile int result; -#else /* NO_SIGNALS */ - SReadlineInfo lsSrl; - int result; -#endif /* NO_SIGNALS */ - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - cmd = (longMode != 0) ? "LIST" : "NLST"; - if ((lsflag == NULL) || (lsflag[0] == '\0')) { - result = FTPStartDataCmd(cip, kNetReading, kTypeAscii, (longest_int) 0, "%s", cmd); - } else { - result = FTPStartDataCmd(cip, kNetReading, kTypeAscii, (longest_int) 0, "%s %s", cmd, lsflag); - } - - -#ifdef NO_SIGNALS - - if (result == 0) { - if (InitSReadlineInfo(&lsSrl, cip->dataSocket, secondaryBuf, sizeof(secondaryBuf), (int) cip->xferTimeout, 1) < 0) { - /* Not really fdopen, but close in what we're trying to do. */ - result = kErrFdopenR; - cip->errNo = kErrFdopenR; - Error(cip, kDoPerror, "Could not fdopen.\n"); - return (result); - } - - for (;;) { - result = SReadline(&lsSrl, line, sizeof(line) - 2); - if (result == kTimeoutErr) { - /* timeout */ - Error(cip, kDontPerror, "Could not directory listing data -- timed out.\n"); - cip->errNo = kErrDataTimedOut; - return (cip->errNo); - } else if (result == 0) { - /* end of listing -- done */ - cip->numListings++; - break; - } else if (result < 0) { - /* error */ - Error(cip, kDoPerror, "Could not read directory listing data"); - result = kErrLISTFailed; - cip->errNo = kErrLISTFailed; - break; - } - - (void) write(outfd, line, strlen(line)); - } - - DisposeSReadlineInfo(&lsSrl); - if (FTPEndDataCmd(cip, 1) < 0) { - result = kErrLISTFailed; - cip->errNo = kErrLISTFailed; - } - } else if (result == kErrGeneric) { - result = kErrLISTFailed; - cip->errNo = kErrLISTFailed; - } - - -#else /* NO_SIGNALS */ - - if (result == 0) { - /* This line sets the buffer pointer so that the first thing - * BufferGets will do is reset and fill the buffer using - * real I/O. - */ - secBufPtr = secondaryBuf + sizeof(secondaryBuf); - secBufLimit = (char *) 0; - - for (;;) { - if (cip->xferTimeout > 0) - (void) alarm(cip->xferTimeout); - nread = BufferGets(line, sizeof(line), cip->dataSocket, secondaryBuf, &secBufPtr, &secBufLimit, sizeof(secondaryBuf)); - if (nread <= 0) { - if (nread < 0) - break; - } else { - cip->bytesTransferred += (longest_int) nread; - (void) STRNCAT(line, "\n"); - (void) write(outfd, line, strlen(line)); - } - } - if (cip->xferTimeout > 0) - (void) alarm(0); - result = FTPEndDataCmd(cip, 1); - if (result < 0) { - result = kErrLISTFailed; - cip->errNo = kErrLISTFailed; - } - result = kNoErr; - cip->numListings++; - } else if (result == kErrGeneric) { - result = kErrLISTFailed; - cip->errNo = kErrLISTFailed; - } -#endif /* NO_SIGNALS */ - return (result); -} /* FTPList */ - - - - -static void -FTPRequestMlsOptions(const FTPCIPtr cip) -{ - int f; - char optstr[128]; - size_t optstrlen; - - if (cip->usedMLS == 0) { - /* First MLSD/MLST ? */ - cip->usedMLS = 1; - - f = cip->mlsFeatures & kPreferredMlsOpts; - optstr[0] = '\0'; - - /* TYPE */ - if ((f & kMlsOptType) != 0) { - STRNCAT(optstr, "type;"); - } - - /* SIZE */ - if ((f & kMlsOptSize) != 0) { - STRNCAT(optstr, "size;"); - } - - /* MODTIME */ - if ((f & kMlsOptModify) != 0) { - STRNCAT(optstr, "modify;"); - } - - /* MODE */ - if ((f & kMlsOptUNIXmode) != 0) { - STRNCAT(optstr, "UNIX.mode;"); - } - - /* PERM */ - if ((f & kMlsOptPerm) != 0) { - STRNCAT(optstr, "perm;"); - } - - /* OWNER */ - if ((f & kMlsOptUNIXowner) != 0) { - STRNCAT(optstr, "UNIX.owner;"); - } - - /* UID */ - if ((f & kMlsOptUNIXuid) != 0) { - STRNCAT(optstr, "UNIX.uid;"); - } - - /* GROUP */ - if ((f & kMlsOptUNIXgroup) != 0) { - STRNCAT(optstr, "UNIX.group;"); - } - - /* GID */ - if ((f & kMlsOptUNIXgid) != 0) { - STRNCAT(optstr, "UNIX.gid;"); - } - - /* UNIQUE */ - if ((f & kMlsOptUnique) != 0) { - STRNCAT(optstr, "unique;"); - } - - /* Tell the server what we prefer. */ - optstrlen = strlen(optstr); - if (optstrlen > 0) { - if (optstr[optstrlen - 1] == ';') - optstr[optstrlen - 1] = '\0'; - (void) FTPCmd(cip, "OPTS MLST %s", optstr); - } - } -} /* FTPRequestMlsOptions */ - - - - -int -FTPListToMemory2(const FTPCIPtr cip, const char *const pattern, const LineListPtr llines, const char *const lsflags, const int blankLines, int *const tryMLSD) -{ - char secondaryBuf[768]; - char line[512]; - char lsflags1[128]; - const char *command = "NLST"; - const char *scp; - char *dcp, *lim; -#ifndef NO_SIGNALS - char *secBufPtr, *secBufLimit; - volatile FTPSigProc osigpipe; - volatile FTPCIPtr vcip; - int sj; - int nread; - volatile int result; -#else /* NO_SIGNALS */ - SReadlineInfo lsSrl; - int result; -#endif /* NO_SIGNALS */ - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((llines == NULL) || (pattern == NULL) || (lsflags == NULL)) - return (kErrBadParameter); - - if ((tryMLSD != (int *) 0) && (*tryMLSD != 0) && (cip->hasMLSD == kCommandAvailable)) { - command = "MLSD"; - if ((lsflags[0] == '-') && (strchr(lsflags, 'd') != NULL) && (cip->hasMLST == kCommandAvailable)) - command = "MLST"; - lsflags1[0] = '\0'; - FTPRequestMlsOptions(cip); - } else { - /* Not using MLSD. */ - if (tryMLSD != (int *) 0) - *tryMLSD = 0; - if (lsflags[0] == '-') { - /* See if we should use LIST instead. */ - scp = lsflags + 1; - dcp = lsflags1; - lim = lsflags1 + sizeof(lsflags1) - 2; - for (; *scp != '\0'; scp++) { - if (*scp == 'l') { - /* do not add the 'l' */ - command = "LIST"; - } else if (dcp < lim) { - if (dcp == lsflags1) - *dcp++ = '-'; - *dcp++ = *scp; - } - } - *dcp = '\0'; - } else { - (void) STRNCPY(lsflags1, lsflags); - } - } - - InitLineList(llines); - - result = FTPStartDataCmd( - cip, - kNetReading, - kTypeAscii, - (longest_int) 0, - "%s%s%s%s%s", - command, - (lsflags1[0] == '\0') ? "" : " ", - lsflags1, - (pattern[0] == '\0') ? "" : " ", - pattern - ); - -#ifdef NO_SIGNALS - - if (result == 0) { - if (InitSReadlineInfo(&lsSrl, cip->dataSocket, secondaryBuf, sizeof(secondaryBuf), (int) cip->xferTimeout, 1) < 0) { - /* Not really fdopen, but close in what we're trying to do. */ - result = kErrFdopenR; - cip->errNo = kErrFdopenR; - Error(cip, kDoPerror, "Could not fdopen.\n"); - return (result); - } - - for (;;) { - result = SReadline(&lsSrl, line, sizeof(line) - 1); - if (result == kTimeoutErr) { - /* timeout */ - Error(cip, kDontPerror, "Could not directory listing data -- timed out.\n"); - cip->errNo = kErrDataTimedOut; - return (cip->errNo); - } else if (result == 0) { - /* end of listing -- done */ - cip->numListings++; - break; - } else if (result < 0) { - /* error */ - Error(cip, kDoPerror, "Could not read directory listing data"); - result = kErrLISTFailed; - cip->errNo = kErrLISTFailed; - break; - } - - if (line[result - 1] == '\n') - line[result - 1] = '\0'; - - if ((blankLines == 0) && (result <= 1)) - continue; - - /* Valid directory listing line of output */ - if ((line[0] == '.') && ((line[1] == '\0') || ((line[1] == '.') && ((line[2] == '\0') || (iscntrl(line[2])))))) - continue; /* Skip . and .. */ - - (void) AddLine(llines, line); - } - - DisposeSReadlineInfo(&lsSrl); - if (FTPEndDataCmd(cip, 1) < 0) { - result = kErrLISTFailed; - cip->errNo = kErrLISTFailed; - } - } else if (result == kErrGeneric) { - result = kErrLISTFailed; - cip->errNo = kErrLISTFailed; - } - - -#else /* NO_SIGNALS */ - vcip = cip; - osigpipe = (volatile FTPSigProc) signal(SIGPIPE, BrokenData); - - gGotBrokenData = 0; - gCanBrokenDataJmp = 0; - -#ifdef HAVE_SIGSETJMP - sj = sigsetjmp(gBrokenDataJmp, 1); -#else - sj = setjmp(gBrokenDataJmp); -#endif /* HAVE_SIGSETJMP */ - - if (sj != 0) { - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); - FTPShutdownHost(vcip); - vcip->errNo = kErrRemoteHostClosedConnection; - return(vcip->errNo); - } - gCanBrokenDataJmp = 1; - - if (result == 0) { - /* This line sets the buffer pointer so that the first thing - * BufferGets will do is reset and fill the buffer using - * real I/O. - */ - secBufPtr = secondaryBuf + sizeof(secondaryBuf); - secBufLimit = (char *) 0; - memset(secondaryBuf, 0, sizeof(secondaryBuf)); - - for (;;) { - memset(line, 0, sizeof(line)); - if (cip->xferTimeout > 0) - (void) alarm(cip->xferTimeout); - nread = BufferGets(line, sizeof(line), cip->dataSocket, secondaryBuf, &secBufPtr, &secBufLimit, sizeof(secondaryBuf)); - if (nread <= 0) { - if (nread < 0) - break; - if (blankLines != 0) - (void) AddLine(llines, line); - } else { - cip->bytesTransferred += (longest_int) nread; - - if ((line[0] == '.') && ((line[1] == '\0') || ((line[1] == '.') && ((line[2] == '\0') || (iscntrl(line[2])))))) - continue; /* Skip . and .. */ - - (void) AddLine(llines, line); - } - } - if (cip->xferTimeout > 0) - (void) alarm(0); - result = FTPEndDataCmd(cip, 1); - if (result < 0) { - result = kErrLISTFailed; - cip->errNo = kErrLISTFailed; - } - result = kNoErr; - cip->numListings++; - } else if (result == kErrGeneric) { - result = kErrLISTFailed; - cip->errNo = kErrLISTFailed; - } - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); -#endif /* NO_SIGNALS */ - return (result); -} /* FTPListToMemory2 */ - - - - -static void -AutomaticallyUseASCIIModeDependingOnExtension(const FTPCIPtr cip, const char *const pathName, int *const xtype) -{ - if ((*xtype == kTypeBinary) && (cip->asciiFilenameExtensions != NULL)) { - if (FilenameExtensionIndicatesASCII(pathName, cip->asciiFilenameExtensions)) { - /* Matched -- send this file in ASCII mode - * instead of binary since it's extension - * appears to be that of a text file. - */ - *xtype = kTypeAscii; - } - } -} /* AutomaticallyUseASCIIModeDependingOnExtension */ - - - - -/* The purpose of this is to provide updates for the progress meters - * during lags. Return zero if the operation timed-out. - */ -static int -WaitForRemoteOutput(const FTPCIPtr cip) -{ - fd_set ss, ss2; - struct timeval tv; - int result; - int fd; - int wsecs; - int xferTimeout; - int ocancelXfer; - - xferTimeout = cip->xferTimeout; - if (xferTimeout < 1) - return (1); - - fd = cip->dataSocket; - if (fd < 0) - return (1); - - ocancelXfer = cip->cancelXfer; - wsecs = 0; - cip->stalled = 0; - - while ((xferTimeout <= 0) || (wsecs < xferTimeout)) { - if ((cip->cancelXfer != 0) && (ocancelXfer == 0)) { - /* leave cip->stalled -- could have been stalled and then canceled. */ - return (1); - } - FD_ZERO(&ss); - FD_SET(fd, &ss); - ss2 = ss; - tv.tv_sec = 1; - tv.tv_usec = 0; - result = select(fd + 1, NULL, SELECT_TYPE_ARG234 &ss, SELECT_TYPE_ARG234 &ss2, &tv); - if (result == 1) { - /* ready */ - cip->stalled = 0; - return (1); - } else if (result < 0) { - if (errno != EINTR) { - perror("select"); - cip->stalled = 0; - return (1); - } - } else { - wsecs++; - cip->stalled = wsecs; - } - FTPUpdateIOTimer(cip); - } - -#if !defined(NO_SIGNALS) - /* Shouldn't get here -- alarm() should have - * went off by now. - */ - (void) kill(getpid(), SIGALRM); -#endif /* NO_SIGNALS */ - - cip->dataTimedOut = 1; - return (0); /* timed-out */ -} /* WaitForRemoteOutput */ - - - - -static int -FTPPutOneF( - const FTPCIPtr cip, - const char *const file, - const char *volatile dstfile, - int xtype, - const int fdtouse, - const int appendflag, - const char *volatile tmppfx, - const char *volatile tmpsfx, - const int resumeflag, - const int deleteflag, - const ConfirmResumeUploadProc resumeProc) -{ - char *buf, *cp; - const char *cmd; - const char *odstfile; - size_t bufSize; - size_t l; - int tmpResult, result; - int nread, nwrote; - volatile int fd; - char dstfile2[512]; -#if ASCII_TRANSLATION - char *src, *srclim, *dst; - int ntowrite; - char inbuf[256]; -#endif - int fstatrc, statrc; - longest_int startPoint = 0; - struct Stat st; - time_t mdtm; -#if !defined(NO_SIGNALS) - int sj; - volatile FTPSigProc osigpipe; - volatile FTPCIPtr vcip; - volatile int vfd, vfdtouse; -#endif /* NO_SIGNALS */ - volatile int vzaction; - int zaction = kConfirmResumeProcSaidBestGuess; - - if (cip->buf == NULL) { - Error(cip, kDoPerror, "Transfer buffer not allocated.\n"); - cip->errNo = kErrNoBuf; - return (cip->errNo); - } - - cip->usingTAR = 0; - if (fdtouse < 0) { - fd = Open(file, O_RDONLY|O_BINARY, 0); - if (fd < 0) { - Error(cip, kDoPerror, "Cannot open local file %s for reading.\n", file); - cip->errNo = kErrOpenFailed; - return (cip->errNo); - } - } else { - fd = fdtouse; - } - - fstatrc = Fstat(fd, &st); - if ((fstatrc == 0) && (S_ISDIR(st.st_mode))) { - if (fdtouse < 0) { - (void) close(fd); - } - Error(cip, kDontPerror, "%s is a directory.\n", (file != NULL) ? file : "that"); - cip->errNo = kErrOpenFailed; - return (cip->errNo); - } - - /* For Put, we can't recover very well if it turns out restart - * didn't work, so check beforehand. - */ - if (cip->hasREST == kCommandAvailabilityUnknown) { - (void) FTPSetTransferType(cip, kTypeBinary); - if (SetStartOffset(cip, (longest_int) 1) == kNoErr) { - /* Now revert -- we still may not end up - * doing it. - */ - SetStartOffset(cip, (longest_int) -1); - } - } - - if (fdtouse < 0) { - AutomaticallyUseASCIIModeDependingOnExtension(cip, dstfile, &xtype); - (void) FTPFileSizeAndModificationTime(cip, dstfile, &startPoint, xtype, &mdtm); - - if (appendflag == kAppendYes) { - zaction = kConfirmResumeProcSaidAppend; - } else if ( - (cip->hasREST == kCommandNotAvailable) || - (xtype != kTypeBinary) || - (fstatrc < 0) - ) { - zaction = kConfirmResumeProcSaidOverwrite; - } else if (resumeflag == kResumeYes) { - zaction = kConfirmResumeProcSaidBestGuess; - } else { - zaction = kConfirmResumeProcSaidOverwrite; - } - - statrc = -1; - if ((mdtm != kModTimeUnknown) || (startPoint != kSizeUnknown)) { - /* Then we know the file exists. We will - * ask the user what to do, if possible, below. - */ - statrc = 0; - } else if ((resumeProc != NoConfirmResumeUploadProc) && (cip->hasMDTM != kCommandAvailable) && (cip->hasSIZE != kCommandAvailable)) { - /* We already checked if the file had a filesize - * or timestamp above, but if the server indicated - * it did not support querying those directly, - * we now need to try to determine if the file - * exists in a few other ways. - */ - statrc = FTPFileExists2(cip, dstfile, 0, 0, 0, 1, 1); - } - - if ( - (resumeProc != NoConfirmResumeUploadProc) && - (statrc == 0) - ) { - zaction = (*resumeProc)(file, (longest_int) st.st_size, st.st_mtime, &dstfile, startPoint, mdtm, &startPoint); - } - - if (zaction == kConfirmResumeProcSaidCancel) { - /* User wants to cancel this file and any - * remaining in batch. - */ - cip->errNo = kErrUserCanceled; - return (cip->errNo); - } - - if (zaction == kConfirmResumeProcSaidBestGuess) { - if ((mdtm != kModTimeUnknown) && (st.st_mtime > (mdtm + 1))) { - /* Local file is newer than remote, - * overwrite the remote file instead - * of trying to resume it. - * - * Note: Add one second fudge factor - * for Windows' file timestamps being - * imprecise to one second. - */ - zaction = kConfirmResumeProcSaidOverwrite; - } else if ((longest_int) st.st_size == startPoint) { - /* Already sent file, done. */ - zaction = kConfirmResumeProcSaidSkip; - } else if ((startPoint != kSizeUnknown) && ((longest_int) st.st_size > startPoint)) { - zaction = kConfirmResumeProcSaidResume; - } else { - zaction = kConfirmResumeProcSaidOverwrite; - } - } - - if (zaction == kConfirmResumeProcSaidSkip) { - /* Nothing done, but not an error. */ - if (fdtouse < 0) { - (void) close(fd); - } - if (deleteflag == kDeleteYes) { - if (unlink(file) < 0) { - cip->errNo = kErrLocalDeleteFailed; - return (cip->errNo); - } - } - return (kNoErr); - } else if (zaction == kConfirmResumeProcSaidResume) { - /* Resume; proc set the startPoint. */ - if ((longest_int) st.st_size == startPoint) { - /* Already sent file, done. */ - if (fdtouse < 0) { - (void) close(fd); - } - - if (deleteflag == kDeleteYes) { - if (unlink(file) < 0) { - cip->errNo = kErrLocalDeleteFailed; - return (cip->errNo); - } - } - return (kNoErr); - } else if (Lseek(fd, (off_t) startPoint, SEEK_SET) != (off_t) -1) { - cip->startPoint = startPoint; - } - } else if (zaction == kConfirmResumeProcSaidAppend) { - /* append: leave startPoint at zero, we will append everything. */ - cip->startPoint = startPoint = 0; - } else /* if (zaction == kConfirmResumeProcSaidOverwrite) */ { - /* overwrite: leave startPoint at zero */ - cip->startPoint = startPoint = 0; - } - } - - if ((cip->numUploads == 0) && (cip->dataSocketSBufSize > 0)) { - /* If dataSocketSBufSize is non-zero, it means you - * want to explicitly try to set the size of the - * socket's I/O buffer. - * - * If it is zero, it means you want to just use the - * TCP stack's default value, which is typically - * between 8 and 64 kB. - * - * If you try to set the buffer larger than 64 kB, - * the TCP stack should try to use RFC 1323 to - * negotiate "TCP Large Windows" which may yield - * significant performance gains. - */ - if (cip->hasSTORBUFSIZE == kCommandAvailable) - (void) FTPCmd(cip, "SITE STORBUFSIZE %lu", (unsigned long) cip->dataSocketSBufSize); - else if (cip->hasSBUFSIZ == kCommandAvailable) - (void) FTPCmd(cip, "SITE SBUFSIZ %lu", (unsigned long) cip->dataSocketSBufSize); - else if (cip->hasSBUFSZ == kCommandAvailable) - (void) FTPCmd(cip, "SITE SBUFSZ %lu", (unsigned long) cip->dataSocketSBufSize); - /* At least one server implemenation has RBUFSZ but not - * SBUFSZ and instead uses RBUFSZ for both. - */ - else if ((cip->hasSBUFSZ != kCommandAvailable) && (cip->hasRBUFSZ == kCommandAvailable)) - (void) FTPCmd(cip, "SITE RBUFSZ %lu", (unsigned long) cip->dataSocketSBufSize); - else if (cip->hasBUFSIZE == kCommandAvailable) - (void) FTPCmd(cip, "SITE BUFSIZE %lu", (unsigned long) cip->dataSocketSBufSize); - } - -#ifdef NO_SIGNALS - vzaction = zaction; -#else /* NO_SIGNALS */ - vcip = cip; - vfdtouse = fdtouse; - vfd = fd; - vzaction = zaction; - osigpipe = (volatile FTPSigProc) signal(SIGPIPE, BrokenData); - - gGotBrokenData = 0; - gCanBrokenDataJmp = 0; - -#ifdef HAVE_SIGSETJMP - sj = sigsetjmp(gBrokenDataJmp, 1); -#else - sj = setjmp(gBrokenDataJmp); -#endif /* HAVE_SIGSETJMP */ - - if (sj != 0) { - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); - if (vfdtouse < 0) { - (void) close(vfd); - } - FTPShutdownHost(vcip); - vcip->errNo = kErrRemoteHostClosedConnection; - return(vcip->errNo); - } - gCanBrokenDataJmp = 1; -#endif /* NO_SIGNALS */ - - if (vzaction == kConfirmResumeProcSaidAppend) { - cmd = "APPE"; - tmppfx = ""; /* Can't use that here. */ - tmpsfx = ""; - } else { - cmd = "STOR"; - if (tmppfx == NULL) - tmppfx = ""; - if (tmpsfx == NULL) - tmpsfx = ""; - } - - odstfile = dstfile; - if ((tmppfx[0] != '\0') || (tmpsfx[0] != '\0')) { - cp = strrchr(dstfile, '/'); - if (cp == NULL) - cp = strrchr(dstfile, '\\'); - if (cp == NULL) { - (void) STRNCPY(dstfile2, tmppfx); - (void) STRNCAT(dstfile2, dstfile); - (void) STRNCAT(dstfile2, tmpsfx); - } else { - cp++; - l = (size_t) (cp - dstfile); - (void) STRNCPY(dstfile2, dstfile); - dstfile2[l] = '\0'; /* Nuke stuff after / */ - (void) STRNCAT(dstfile2, tmppfx); - (void) STRNCAT(dstfile2, cp); - (void) STRNCAT(dstfile2, tmpsfx); - } - dstfile = dstfile2; - } - - tmpResult = FTPStartDataCmd( - cip, - kNetWriting, - xtype, - startPoint, - "%s %s", - cmd, - dstfile - ); - - if (tmpResult < 0) { - cip->errNo = tmpResult; - if (fdtouse < 0) { - (void) close(fd); - } -#if !defined(NO_SIGNALS) - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); -#endif /* NO_SIGNALS */ - return (cip->errNo); - } - - if ((startPoint != 0) && (cip->startPoint == 0)) { - /* Remote could not or would not set the start offset - * to what we wanted. - * - * So now we have to undo our seek. - */ - if (Lseek(fd, (off_t) 0, SEEK_SET) != (off_t) 0) { - cip->errNo = kErrLseekFailed; - if (fdtouse < 0) { - (void) close(fd); - } -#if !defined(NO_SIGNALS) - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); -#endif /* NO_SIGNALS */ - return (cip->errNo); - } - startPoint = 0; - } - - result = kNoErr; - buf = cip->buf; - bufSize = cip->bufSize; - - FTPInitIOTimer(cip); - if ((fstatrc == 0) && (S_ISREG(st.st_mode) != 0)) { - cip->expectedSize = (longest_int) st.st_size; - cip->mdtm = st.st_mtime; - } - cip->lname = file; /* could be NULL */ - cip->rname = odstfile; - if (fdtouse >= 0) - cip->useProgressMeter = 0; - FTPStartIOTimer(cip); - - /* Note: On Windows, we don't have to do anything special - * for ASCII mode, since Net ASCII's end-of-line sequence - * corresponds to the same thing used for DOS/Windows. - */ - -#if ASCII_TRANSLATION - if (xtype == kTypeAscii) { - /* ascii */ - for (;;) { -#if !defined(NO_SIGNALS) - gCanBrokenDataJmp = 0; -#endif /* NO_SIGNALS */ - nread = read(fd, inbuf, sizeof(inbuf)); - if (nread < 0) { - if (errno == EINTR) { - continue; - } else { - result = kErrReadFailed; - cip->errNo = kErrReadFailed; - Error(cip, kDoPerror, "Local read failed.\n"); - } - break; - } else if (nread == 0) { - break; - } - cip->bytesTransferred += (longest_int) nread; - -#if !defined(NO_SIGNALS) - gCanBrokenDataJmp = 1; -#endif /* NO_SIGNALS */ - src = inbuf; - srclim = src + nread; - dst = cip->buf; /* must be 2x sizeof inbuf or more. */ - while (src < srclim) { - if (*src == '\n') - *dst++ = '\r'; - *dst++ = *src++; - } - ntowrite = (size_t) (dst - cip->buf); - cp = cip->buf; - -#if !defined(NO_SIGNALS) - if (cip->xferTimeout > 0) - (void) alarm(cip->xferTimeout); -#endif /* NO_SIGNALS */ - do { - if (! WaitForRemoteOutput(cip)) { /* could set cancelXfer */ - cip->errNo = result = kErrDataTimedOut; - Error(cip, kDontPerror, "Remote write timed out.\n"); - goto brk; - } - if (cip->cancelXfer > 0) { - FTPAbortDataTransfer(cip); - result = cip->errNo = kErrDataTransferAborted; - goto brk; - } - -#ifdef NO_SIGNALS - nwrote = SWrite(cip->dataSocket, cp, (size_t) ntowrite, (int) cip->xferTimeout, kNoFirstSelect); - if (nwrote < 0) { - if (nwrote == kTimeoutErr) { - cip->errNo = result = kErrDataTimedOut; - Error(cip, kDontPerror, "Remote write timed out.\n"); - } else if ((gGotBrokenData != 0) || (errno == EPIPE)) { - cip->errNo = result = kErrSocketWriteFailed; - errno = EPIPE; - Error(cip, kDoPerror, "Lost data connection to remote host.\n"); - } else if (errno == EINTR) { - continue; - } else { - cip->errNo = result = kErrSocketWriteFailed; - Error(cip, kDoPerror, "Remote write failed.\n"); - } - (void) shutdown(cip->dataSocket, 2); - goto brk; - } -#else /* NO_SIGNALS */ - nwrote = write(cip->dataSocket, cp, ntowrite); - if (nwrote < 0) { - if ((gGotBrokenData != 0) || (errno == EPIPE)) { - cip->errNo = result = kErrSocketWriteFailed; - errno = EPIPE; - Error(cip, kDoPerror, "Lost data connection to remote host.\n"); - } else if (errno == EINTR) { - continue; - } else { - cip->errNo = result = kErrSocketWriteFailed; - Error(cip, kDoPerror, "Remote write failed.\n"); - } - (void) shutdown(cip->dataSocket, 2); - goto brk; - } -#endif /* NO_SIGNALS */ - cp += nwrote; - ntowrite -= nwrote; - } while (ntowrite > 0); - FTPUpdateIOTimer(cip); - } - } else -#endif /* ASCII_TRANSLATION */ - { - /* binary */ - for (;;) { -#if !defined(NO_SIGNALS) - gCanBrokenDataJmp = 0; -#endif /* NO_SIGNALS */ - cp = buf; - nread = read(fd, cp, bufSize); - if (nread < 0) { - if (errno == EINTR) { - continue; - } else { - result = kErrReadFailed; - cip->errNo = kErrReadFailed; - Error(cip, kDoPerror, "Local read failed.\n"); - } - break; - } else if (nread == 0) { - break; - } - cip->bytesTransferred += (longest_int) nread; - -#if !defined(NO_SIGNALS) - gCanBrokenDataJmp = 1; - if (cip->xferTimeout > 0) - (void) alarm(cip->xferTimeout); -#endif /* NO_SIGNALS */ - do { - if (! WaitForRemoteOutput(cip)) { /* could set cancelXfer */ - cip->errNo = result = kErrDataTimedOut; - Error(cip, kDontPerror, "Remote write timed out.\n"); - goto brk; - } - if (cip->cancelXfer > 0) { - FTPAbortDataTransfer(cip); - result = cip->errNo = kErrDataTransferAborted; - goto brk; - } - -#ifdef NO_SIGNALS - nwrote = SWrite(cip->dataSocket, cp, (size_t) nread, (int) cip->xferTimeout, kNoFirstSelect); - if (nwrote < 0) { - if (nwrote == kTimeoutErr) { - cip->errNo = result = kErrDataTimedOut; - Error(cip, kDontPerror, "Remote write timed out.\n"); - } else if ((gGotBrokenData != 0) || (errno == EPIPE)) { - cip->errNo = result = kErrSocketWriteFailed; - errno = EPIPE; - Error(cip, kDoPerror, "Lost data connection to remote host.\n"); - } else if (errno == EINTR) { - continue; - } else { - cip->errNo = result = kErrSocketWriteFailed; - Error(cip, kDoPerror, "Remote write failed.\n"); - } - (void) shutdown(cip->dataSocket, 2); - cip->dataSocket = -1; - goto brk; - } -#else /* NO_SIGNALS */ - nwrote = write(cip->dataSocket, cp, nread); - if (nwrote < 0) { - if ((gGotBrokenData != 0) || (errno == EPIPE)) { - cip->errNo = result = kErrSocketWriteFailed; - errno = EPIPE; - Error(cip, kDoPerror, "Lost data connection to remote host.\n"); - } else if (errno == EINTR) { - continue; - } else { - cip->errNo = result = kErrSocketWriteFailed; - Error(cip, kDoPerror, "Remote write failed.\n"); - } - (void) shutdown(cip->dataSocket, 2); - cip->dataSocket = -1; - goto brk; - } -#endif /* NO_SIGNALS */ - cp += nwrote; - nread -= nwrote; - } while (nread > 0); - FTPUpdateIOTimer(cip); - } - } -brk: - - if (fdtouse < 0) { - (void) Fstat(fd, &st); - } - - if (fdtouse < 0) { - if (shutdown(fd, 1) == 0) { - /* This looks very bizarre, since - * we will be checking the socket - * for readability here! - * - * The reason for this is that we - * want to be able to timeout a - * small put. So, we close the - * write end of the socket first, - * which tells the server we're - * done writing. We then wait - * for the server to close down - * the whole socket, which tells - * us that the file was completed. - */ - (void) WaitForRemoteInput(cip); /* Close could block. */ - } - } - -#if !defined(NO_SIGNALS) - gCanBrokenDataJmp = 0; - if (cip->xferTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - tmpResult = FTPEndDataCmd(cip, 1); - if ((tmpResult < 0) && (result == kNoErr)) { - cip->errNo = result = kErrSTORFailed; - } - FTPStopIOTimer(cip); - - if (fdtouse < 0) { - /* If they gave us a descriptor (fdtouse >= 0), - * leave it open, otherwise we opened it, so - * we need to dispose of it. - */ - (void) close(fd); - fd = -1; - } - - if (result == kNoErr) { - /* The store succeeded; If we were - * uploading to a temporary file, - * move the new file to the new name. - */ - cip->numUploads++; - - if ((tmppfx[0] != '\0') || (tmpsfx[0] != '\0')) { - if ((result = FTPRename(cip, dstfile, odstfile)) < 0) { - /* May fail if file was already there, - * so delete the old one so we can move - * over it. - */ - if (FTPDelete(cip, odstfile, kRecursiveNo, kGlobNo) == kNoErr) { - result = FTPRename(cip, dstfile, odstfile); - if (result < 0) { - Error(cip, kDontPerror, "Could not rename %s to %s: %s.\n", dstfile, odstfile, FTPStrError(cip->errNo)); - } - } else { - Error(cip, kDontPerror, "Could not delete old %s, so could not rename %s to that: %s\n", odstfile, dstfile, FTPStrError(cip->errNo)); - } - } - } - - if (FTPUtime(cip, odstfile, st.st_atime, st.st_mtime, st.st_ctime) != kNoErr) { - if (cip->errNo != kErrUTIMENotAvailable) - Error(cip, kDontPerror, "Could not preserve times for %s: %s.\n", odstfile, FTPStrError(cip->errNo)); - } - - if (deleteflag == kDeleteYes) { - if (unlink(file) < 0) { - result = cip->errNo = kErrLocalDeleteFailed; - } - } - } - -#if !defined(NO_SIGNALS) - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); -#endif /* NO_SIGNALS */ - return (result); -} /* FTPPutOneF */ - - - - -int -FTPPutOneFile3( - const FTPCIPtr cip, - const char *const file, - const char *const dstfile, - const int xtype, - const int fdtouse, - const int appendflag, - const char *const tmppfx, - const char *const tmpsfx, - const int resumeflag, - const int deleteflag, - const ConfirmResumeUploadProc resumeProc, - int UNUSED(reserved)) -{ - int result; - - LIBNCFTP_USE_VAR(reserved); - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((dstfile == NULL) || (dstfile[0] == '\0')) - return (kErrBadParameter); - if (fdtouse < 0) { - if ((file == NULL) || (file[0] == '\0')) - return (kErrBadParameter); - } - result = FTPPutOneF(cip, file, dstfile, xtype, fdtouse, appendflag, tmppfx, tmpsfx, resumeflag, deleteflag, resumeProc); - return (result); -} /* FTPPutOneFile3 */ - - - - -int -FTPPutFiles3( - const FTPCIPtr cip, - const char *const pattern, - const char *const dstdir1, - const int recurse, - const int doGlob, - const int xtype, - int appendflag, - const char *const tmppfx, - const char *const tmpsfx, - const int resumeflag, - const int deleteflag, - const ConfirmResumeUploadProc resumeProc, - int UNUSED(reserved)) -{ - LineList globList; - FileInfoList files; - FileInfoPtr filePtr; - int batchResult; - int result; - const char *dstdir; - char dstdir2[512]; - - LIBNCFTP_USE_VAR(reserved); - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (dstdir1 == NULL) { - dstdir = NULL; - } else { - dstdir = STRNCPY(dstdir2, dstdir1); - StrRemoveTrailingLocalPathDelim(dstdir2); - } - - (void) FTPLocalGlob(cip, &globList, pattern, doGlob); - if (recurse == kRecursiveYes) { - appendflag = kAppendNo; - (void) FTPLocalRecursiveFileList(cip, &globList, &files); - if (files.first == NULL) { - cip->errNo = kErrNoValidFilesSpecified; - return (kErrNoValidFilesSpecified); - } - (void) ComputeRNames(&files, dstdir, 0, 1); - } else { - (void) LineListToFileInfoList(&globList, &files); - (void) ComputeLNames(&files, NULL, NULL, 1); - (void) ComputeRNames(&files, dstdir, 0, 0); - } - DisposeLineListContents(&globList); - -#if 0 - for (filePtr = files.first; filePtr != NULL; filePtr = filePtr->next) { - PrintF(cip, " R=%s, L=%s, 2=%s, size=%d, mdtm=%u, type=%c\n", - filePtr->rname, - filePtr->lname, - filePtr->rlinkto ? filePtr->rlinkto : "", - filePtr->size, - (unsigned int) filePtr->mdtm, - filePtr->type - ); - } -#endif - - batchResult = kNoErr; - for (filePtr = files.first; filePtr != NULL; filePtr = filePtr->next) { - if (cip->connected == 0) { - if (batchResult == kNoErr) - batchResult = kErrRemoteHostClosedConnection; - break; - } - if (filePtr->type == 'd') { - /* mkdir */ - StrRemoveTrailingLocalPathDelim(filePtr->rname); - result = FTPMkdir(cip, filePtr->rname, kRecursiveNo); - if (result != kNoErr) - batchResult = result; -#ifdef HAVE_SYMLINK - } else if (filePtr->type == 'l') { - /* symlink */ - /* no RFC way to create the link, though. */ - if ((filePtr->rlinkto != NULL) && (filePtr->rlinkto[0] != '\0')) - (void) FTPSymlink(cip, filePtr->rname, filePtr->rlinkto); -#endif - } else if (recurse != kRecursiveYes) { - result = FTPPutOneF(cip, filePtr->lname, filePtr->rname, xtype, -1, appendflag, tmppfx, tmpsfx, resumeflag, deleteflag, resumeProc); - if (files.nFileInfos == 1) { - if (result != kNoErr) - batchResult = result; - } else { - if ((result != kNoErr) && (result != kErrLocalFileNewer) && (result != kErrRemoteFileNewer) && (result != kErrLocalSameAsRemote)) - batchResult = result; - } - if (result == kErrUserCanceled) - cip->cancelXfer = 1; - if (cip->cancelXfer > 0) - break; - } else { - result = FTPPutOneF(cip, filePtr->lname, filePtr->rname, xtype, -1, appendflag, tmppfx, tmpsfx, resumeflag, deleteflag, resumeProc); - if (files.nFileInfos == 1) { - if (result != kNoErr) - batchResult = result; - } else { - if ((result != kNoErr) && (result != kErrLocalFileNewer) && (result != kErrRemoteFileNewer) && (result != kErrLocalSameAsRemote)) - batchResult = result; - } - if (result == kErrUserCanceled) - cip->cancelXfer = 1; - if (cip->cancelXfer > 0) - break; - } - } - DisposeFileInfoListContents(&files); - if (batchResult < 0) - cip->errNo = batchResult; - return (batchResult); -} /* FTPPutFiles3 */ - - - - -/* The purpose of this is to provide updates for the progress meters - * during lags. Return zero if the operation timed-out. - */ -static int -WaitForRemoteInput(const FTPCIPtr cip) -{ - fd_set ss, ss2; - struct timeval tv; - int result; - int fd; - int wsecs; - int xferTimeout; - int ocancelXfer; - - xferTimeout = cip->xferTimeout; - if (xferTimeout < 1) - return (1); - - fd = cip->dataSocket; - if (fd < 0) - return (1); - - ocancelXfer = cip->cancelXfer; - wsecs = 0; - cip->stalled = 0; - - while ((xferTimeout <= 0) || (wsecs < xferTimeout)) { - if ((cip->cancelXfer != 0) && (ocancelXfer == 0)) { - /* leave cip->stalled -- could have been stalled and then canceled. */ - return (1); - } - FD_ZERO(&ss); - FD_SET(fd, &ss); - ss2 = ss; - tv.tv_sec = 1; - tv.tv_usec = 0; - result = select(fd + 1, SELECT_TYPE_ARG234 &ss, NULL, SELECT_TYPE_ARG234 &ss2, &tv); - if (result == 1) { - /* ready */ - cip->stalled = 0; - return (1); - } else if (result < 0) { - if (result != EINTR) { - perror("select"); - cip->stalled = 0; - return (1); - } - } else { - wsecs++; - cip->stalled = wsecs; - } - FTPUpdateIOTimer(cip); - } - -#if !defined(NO_SIGNALS) - /* Shouldn't get here -- alarm() should have - * went off by now. - */ - (void) kill(getpid(), SIGALRM); -#endif /* NO_SIGNALS */ - - cip->dataTimedOut = 1; - return (0); /* timed-out */ -} /* WaitForRemoteInput */ - - - - -/* Nice for UNIX, but not necessary otherwise. */ -#ifdef TAR - -static int -OpenTar(const FTPCIPtr cip, const char *const dstdir, int *const pid) -{ - int pipe1[2]; - int pid1; - int i; - char *argv[8]; - - *pid = -1; - - if (access(TAR, X_OK) < 0) { - /* Path to TAR is invalid. */ - return (-1); - } - - if (pipe(pipe1) < 0) { - Error(cip, kDoPerror, "pipe to Tar failed"); - return (-1); - } - - pid1 = (int) fork(); - if (pid1 < 0) { - (void) close(pipe1[0]); - (void) close(pipe1[1]); - return (-1); - } else if (pid1 == 0) { - /* Child */ - if ((dstdir != NULL) && (dstdir[0] != '\0') && (chdir(dstdir) < 0)) { - Error(cip, kDoPerror, "tar chdir to %s failed", dstdir); - exit(1); - } - (void) close(pipe1[1]); /* close write end */ - (void) dup2(pipe1[0], 0); /* use read end on stdin */ - (void) close(pipe1[0]); - - for (i=3; i<256; i++) - (void) close(i); - - argv[0] = (char *) "tar"; - argv[1] = (char *) "xpf"; - argv[2] = (char *) "-"; - argv[3] = NULL; - - (void) execv(TAR, argv); - exit(1); - } - - /* Parent */ - *pid = pid1; - - (void) close(pipe1[0]); /* close read end */ - return (pipe1[1]); /* use write end */ -} /* OpenTar */ - - - - -static int -FTPGetOneTarF(const FTPCIPtr cip, const char *file, const char *const dstdir) -{ - char *buf; - size_t bufSize; - int tmpResult; - volatile int result; - int nread, nwrote; - volatile int fd; - volatile int vfd; - const char *volatile vfile; -#ifndef NO_SIGNALS - int sj; - volatile FTPSigProc osigpipe; - volatile FTPCIPtr vcip; -#endif - int pid, status; - char savedCwd[512]; - char *volatile basecp; - - result = kNoErr; - cip->usingTAR = 0; - - if ((file[0] == '\0') || ((file[0] == '/') && (file[1] == '\0'))) { - /* It was "/" - * We can't do that, because "get /.tar" - * or "get .tar" does not work. - */ - result = kErrOpenFailed; - cip->errNo = kErrOpenFailed; - return (result); - } - - if (FTPCmd(cip, "MDTM %s.tar", file) == 2) { - /* Better not use this method since there is - * no way to tell if the server would use the - * existing .tar or do a new one on the fly. - */ - result = kErrOpenFailed; - cip->errNo = kErrOpenFailed; - return (result); - } - - basecp = strrchr(file, '/'); - if (basecp != NULL) - basecp = strrchr(file, '\\'); - if (basecp != NULL) { - /* Need to cd to the parent directory and get it - * from there. - */ - if (FTPGetCWD(cip, savedCwd, sizeof(savedCwd)) != 0) { - result = kErrOpenFailed; - cip->errNo = kErrOpenFailed; - return (result); - } - result = FTPChdir(cip, file); - if (result != kNoErr) { - return (result); - } - result = FTPChdir(cip, ".."); - if (result != kNoErr) { - (void) FTPChdir(cip, savedCwd); - return (result); - } - file = basecp + 1; - } - - fd = OpenTar(cip, dstdir, &pid); - if (fd < 0) { - result = kErrOpenFailed; - cip->errNo = kErrOpenFailed; - if (basecp != NULL) - (void) FTPChdir(cip, savedCwd); - return (result); - } - - vfd = fd; - vfile = file; - -#ifndef NO_SIGNALS - vcip = cip; - osigpipe = (volatile FTPSigProc) signal(SIGPIPE, BrokenData); - - gGotBrokenData = 0; - gCanBrokenDataJmp = 0; - -#ifdef HAVE_SIGSETJMP - sj = sigsetjmp(gBrokenDataJmp, 1); -#else - sj = setjmp(gBrokenDataJmp); -#endif /* HAVE_SIGSETJMP */ - - if (sj != 0) { - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); - FTPShutdownHost(vcip); - - (void) signal(SIGPIPE, SIG_IGN); - (void) close(vfd); - for (;;) { -#ifdef HAVE_WAITPID - if ((waitpid(pid, &status, 0) < 0) && (errno != EINTR)) - break; -#else - if ((wait(&status) < 0) && (errno != EINTR)) - break; -#endif - if (WIFEXITED(status) || WIFSIGNALED(status)) - break; /* done */ - } - if (basecp != NULL) - (void) FTPChdir(cip, savedCwd); - vcip->errNo = kErrRemoteHostClosedConnection; - return(vcip->errNo); - } - gCanBrokenDataJmp = 1; - -#endif /* NO_SIGNALS */ - - tmpResult = FTPStartDataCmd(cip, kNetReading, kTypeBinary, (longest_int) 0, "RETR %s.tar", vfile); - - if (tmpResult < 0) { - result = tmpResult; - if (result == kErrGeneric) - result = kErrRETRFailed; - cip->errNo = result; - -#ifndef NO_SIGNALS - (void) signal(SIGPIPE, SIG_IGN); -#endif - (void) close(vfd); - for (;;) { -#ifdef HAVE_WAITPID - if ((waitpid(pid, &status, 0) < 0) && (errno != EINTR)) - break; -#else - if ((wait(&status) < 0) && (errno != EINTR)) - break; -#endif - if (WIFEXITED(status) || WIFSIGNALED(status)) - break; /* done */ - } - -#ifndef NO_SIGNALS - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); -#endif - if (basecp != NULL) - (void) FTPChdir(cip, savedCwd); - return (result); - } - - cip->usingTAR = 1; - buf = cip->buf; - bufSize = cip->bufSize; - - FTPInitIOTimer(cip); - cip->lname = vfile; /* could be NULL */ - cip->rname = vfile; - FTPStartIOTimer(cip); - - /* Binary */ - for (;;) { - if (! WaitForRemoteInput(cip)) { /* could set cancelXfer */ - cip->errNo = result = kErrDataTimedOut; - Error(cip, kDontPerror, "Remote read timed out.\n"); - break; - } - if (cip->cancelXfer > 0) { - FTPAbortDataTransfer(cip); - result = cip->errNo = kErrDataTransferAborted; - break; - } -#if !defined(NO_SIGNALS) - gCanBrokenDataJmp = 1; - if (cip->xferTimeout > 0) - (void) alarm(cip->xferTimeout); -#endif /* NO_SIGNALS */ -#ifdef NO_SIGNALS - nread = SRead(cip->dataSocket, buf, bufSize, (int) cip->xferTimeout, kFullBufferNotRequired|kNoFirstSelect); - if (nread == kTimeoutErr) { - cip->errNo = result = kErrDataTimedOut; - Error(cip, kDontPerror, "Remote read timed out.\n"); - break; - } else if (nread < 0) { - if (errno == EINTR) - continue; - Error(cip, kDoPerror, "Remote read failed.\n"); - result = kErrSocketReadFailed; - cip->errNo = kErrSocketReadFailed; - break; - } else if (nread == 0) { - break; - } -#else - nread = read(cip->dataSocket, buf, bufSize); - if (nread < 0) { - if (errno == EINTR) - continue; - Error(cip, kDoPerror, "Remote read failed.\n"); - result = kErrSocketReadFailed; - cip->errNo = kErrSocketReadFailed; - break; - } else if (nread == 0) { - break; - } - gCanBrokenDataJmp = 0; -#endif - - nwrote = write(fd, buf, nread); - if (nwrote != nread) { - if ((gGotBrokenData != 0) || (errno == EPIPE)) { - result = kErrWriteFailed; - cip->errNo = kErrWriteFailed; - errno = EPIPE; - } else { - Error(cip, kDoPerror, "Local write failed.\n"); - result = kErrWriteFailed; - cip->errNo = kErrWriteFailed; - } - break; - } - cip->bytesTransferred += (longest_int) nread; - FTPUpdateIOTimer(cip); - } - -#if !defined(NO_SIGNALS) - if (cip->xferTimeout > 0) - (void) alarm(0); - gCanBrokenDataJmp = 0; -#endif /* NO_SIGNALS */ - - (void) close(fd); - for (;;) { -#ifdef HAVE_WAITPID - if ((waitpid(pid, &status, 0) < 0) && (errno != EINTR)) - break; -#else - if ((wait(&status) < 0) && (errno != EINTR)) - break; -#endif - if (WIFEXITED(status) || WIFSIGNALED(status)) - break; /* done */ - } - - tmpResult = FTPEndDataCmd(cip, 1); - if ((tmpResult < 0) && (result == 0)) { - result = kErrRETRFailed; - cip->errNo = kErrRETRFailed; - } - FTPStopIOTimer(cip); -#if !defined(NO_SIGNALS) - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); -#endif - - if ((result == 0) && (cip->bytesTransferred == 0)) { - result = kErrOpenFailed; - cip->errNo = kErrOpenFailed; - } - if (basecp != NULL) - (void) FTPChdir(cip, savedCwd); - return (result); -} /* FTPGetOneTarF */ - -#endif /* TAR */ - - - - - -static int -FTPGetOneF( - const FTPCIPtr cip, - const char *const file, - const char *dstfile, - int xtype, - const int fdtouse, - longest_int expectedSize, - time_t mdtm, - const int resumeflag, - const int appendflag, - const int deleteflag, - const ConfirmResumeDownloadProc resumeProc) -{ - char *buf; - size_t bufSize; - int tmpResult; - volatile int result; - int nread, nwrote; - volatile int fd; -#if ASCII_TRANSLATION - char *src, *srclim; - char *dst, *dstlim; - char outbuf[512]; -#endif - volatile longest_int startPoint = 0; - struct utimbuf ut; - struct Stat st; -#if !defined(NO_SIGNALS) - volatile FTPSigProc osigpipe; - volatile FTPCIPtr vcip; - volatile int vfd, vfdtouse; - int sj; -#endif /* NO_SIGNALS */ - volatile int created = 0; - int zaction = kConfirmResumeProcSaidBestGuess; - int statrc; - int noMdtmCheck; - time_t now; - - if (cip->buf == NULL) { - Error(cip, kDoPerror, "Transfer buffer not allocated.\n"); - cip->errNo = kErrNoBuf; - return (cip->errNo); - } - - result = kNoErr; - cip->usingTAR = 0; - - if (fdtouse < 0) { - /* Only ask for extended information - * if we have the name of the file - * and we didn't already have the - * info. - * - * Always ask for the modification time, - * because even if it was passed in it - * may not be accurate. This is often - * the case when it came from an ls - * listing, in which the local time - * zone could be a factor. - * - */ - - AutomaticallyUseASCIIModeDependingOnExtension(cip, file, &xtype); - if (expectedSize == kSizeUnknown) { - (void) FTPFileSizeAndModificationTime(cip, file, &expectedSize, xtype, &mdtm); - } else { - (void) FTPFileModificationTime(cip, file, &mdtm); - } - - /* For Get, we can't recover very well if it turns out restart - * didn't work, so check beforehand. - */ - if ((resumeflag == kResumeYes) || (resumeProc != NoConfirmResumeDownloadProc)) { - if (cip->hasREST == kCommandAvailabilityUnknown) { - (void) FTPSetTransferType(cip, kTypeBinary); - if (SetStartOffset(cip, (longest_int) 1) == kNoErr) { - /* Now revert -- we still may not end up - * doing it. - */ - SetStartOffset(cip, (longest_int) -1); - } - } - } - - if (appendflag == kAppendYes) { - zaction = kConfirmResumeProcSaidAppend; - } else if (cip->hasREST == kCommandNotAvailable) { - zaction = kConfirmResumeProcSaidOverwrite; - } else if (resumeflag == kResumeYes) { - zaction = kConfirmResumeProcSaidBestGuess; - } else { - zaction = kConfirmResumeProcSaidOverwrite; - } - - statrc = Stat(dstfile, &st); - if (statrc == 0) { - if (resumeProc != NULL) { - zaction = (*resumeProc)( - &dstfile, - (longest_int) st.st_size, - st.st_mtime, - file, - expectedSize, - mdtm, - &startPoint - ); - } - - if (zaction == kConfirmResumeProcSaidBestGuess) { - if (expectedSize != kSizeUnknown) { - /* We know the size of the remote file, - * and we have a local file too. - * - * Try and decide if we need to get - * the entire file, or just part of it. - */ - - startPoint = (longest_int) st.st_size; - zaction = kConfirmResumeProcSaidResume; - - /* If the local file exists and has a recent - * modification time (< 12 hours) and - * the remote file's modtime is not recent, - * then heuristically conclude that the - * local modtime should not be trusted - * (i.e. user killed the process before - * the local modtime could be preserved). - */ - noMdtmCheck = 0; - if (mdtm != kModTimeUnknown) { - time(&now); - if ((st.st_mtime > now) || (((now - st.st_mtime) < 46200) && ((now - mdtm) >= 46200))) - noMdtmCheck = 1; - } - - if ((mdtm == kModTimeUnknown) || (noMdtmCheck != 0)) { - /* Can't use the timestamps as an aid. */ - if (startPoint == expectedSize) { - /* Don't go to all the trouble of downloading nothing. */ - cip->errNo = kErrLocalSameAsRemote; - if (deleteflag == kDeleteYes) - (void) FTPDelete(cip, file, kRecursiveNo, kGlobNo); - return (cip->errNo); - } else if (startPoint > expectedSize) { - /* Panic; odds are the file we have - * was a different file altogether, - * since it is larger than the - * remote copy. Re-do it all. - */ - zaction = kConfirmResumeProcSaidOverwrite; - } /* else resume at startPoint */ - } else if ((mdtm == st.st_mtime) || (mdtm == (st.st_mtime - 1)) || (mdtm == (st.st_mtime + 1))) { - /* File has the same time. - * Note: Windows' file timestamps can be off by one second! - */ - if (startPoint == expectedSize) { - /* Don't go to all the trouble of downloading nothing. */ - cip->errNo = kErrLocalSameAsRemote; - if (deleteflag == kDeleteYes) - (void) FTPDelete(cip, file, kRecursiveNo, kGlobNo); - return (cip->errNo); - } else if (startPoint > expectedSize) { - /* Panic; odds are the file we have - * was a different file altogether, - * since it is larger than the - * remote copy. Re-do it all. - */ - zaction = kConfirmResumeProcSaidOverwrite; - } else { - /* We have a file by the same time, - * but smaller start point. Leave - * the startpoint as is since it - * is most likely valid. - */ - } - } else if (mdtm < st.st_mtime) { - /* Remote file is older than - * local file. Don't overwrite - * our file. - */ - cip->errNo = kErrLocalFileNewer; - return (cip->errNo); - } else /* if (mdtm > st.st_mtime) */ { - /* File has a newer timestamp - * altogether, assume the remote - * file is an entirely new file - * and replace ours with it. - */ - zaction = kConfirmResumeProcSaidOverwrite; - } - } else { - zaction = kConfirmResumeProcSaidOverwrite; - } - } - } else { - zaction = kConfirmResumeProcSaidOverwrite; - } - - if (zaction == kConfirmResumeProcSaidCancel) { - /* User wants to cancel this file and any - * remaining in batch. - */ - cip->errNo = kErrUserCanceled; - return (cip->errNo); - } else if (zaction == kConfirmResumeProcSaidSkip) { - /* Nothing done, but not an error. */ - if (deleteflag == kDeleteYes) - (void) FTPDelete(cip, file, kRecursiveNo, kGlobNo); - return (kNoErr); - } else if (zaction == kConfirmResumeProcSaidResume) { - /* Resume; proc set the startPoint. */ - if (startPoint == expectedSize) { - /* Don't go to all the trouble of downloading nothing. */ - /* Nothing done, but not an error. */ - if (deleteflag == kDeleteYes) - (void) FTPDelete(cip, file, kRecursiveNo, kGlobNo); - return (kNoErr); - } else if (startPoint > expectedSize) { - /* Cannot set start point past end of remote file */ - cip->errNo = result = kErrSetStartPoint; - return (result); - } - fd = Open(dstfile, O_WRONLY|O_APPEND|O_BINARY, 00666); - } else if (zaction == kConfirmResumeProcSaidAppend) { - /* leave startPoint at zero, we will append everything. */ - startPoint = (longest_int) 0; - fd = Open(dstfile, O_WRONLY|O_CREAT|O_APPEND|O_BINARY, 00666); - } else /* if (zaction == kConfirmResumeProcSaidOverwrite) */ { - created = 1; - startPoint = (longest_int) 0; - fd = Open(dstfile, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 00666); - } - - if (fd < 0) { - Error(cip, kDoPerror, "Cannot open local file %s for writing.\n", dstfile); - result = kErrOpenFailed; - cip->errNo = kErrOpenFailed; - return (result); - } - - if ((expectedSize == (longest_int) 0) && (startPoint <= (longest_int) 0) && (zaction != kConfirmResumeProcSaidOverwrite)) { - /* Don't go to all the trouble of downloading nothing. */ -#if defined(WIN32) || defined(_WINDOWS) - /* Note: Windows doesn't allow zero-size files. */ - (void) write(fd, "\r\n", 2); -#endif - (void) close(fd); - if (mdtm != kModTimeUnknown) { - cip->mdtm = mdtm; - (void) time(&ut.actime); - ut.modtime = mdtm; - (void) utime(dstfile, &ut); - } - if (deleteflag == kDeleteYes) - (void) FTPDelete(cip, file, kRecursiveNo, kGlobNo); - return (kNoErr); - } - } else { - fd = fdtouse; - } - - if ((cip->numDownloads == 0) && (cip->dataSocketRBufSize > 0)) { - /* If dataSocketSBufSize is non-zero, it means you - * want to explicitly try to set the size of the - * socket's I/O buffer. - * - * If it is zero, it means you want to just use the - * TCP stack's default value, which is typically - * between 8 and 64 kB. - * - * If you try to set the buffer larger than 64 kB, - * the TCP stack should try to use RFC 1323 to - * negotiate "TCP Large Windows" which may yield - * significant performance gains. - */ - if (cip->hasRETRBUFSIZE == kCommandAvailable) - (void) FTPCmd(cip, "SITE RETRBUFSIZE %lu", (unsigned long) cip->dataSocketRBufSize); - else if (cip->hasRBUFSIZ == kCommandAvailable) - (void) FTPCmd(cip, "SITE RBUFSIZ %lu", (unsigned long) cip->dataSocketRBufSize); - else if (cip->hasRBUFSZ == kCommandAvailable) - (void) FTPCmd(cip, "SITE RBUFSZ %lu", (unsigned long) cip->dataSocketRBufSize); - else if (cip->hasBUFSIZE == kCommandAvailable) - (void) FTPCmd(cip, "SITE BUFSIZE %lu", (unsigned long) cip->dataSocketSBufSize); - } - -#ifdef NO_SIGNALS -#else /* NO_SIGNALS */ - vcip = cip; - vfdtouse = fdtouse; - vfd = fd; - osigpipe = (volatile FTPSigProc) signal(SIGPIPE, BrokenData); - - gGotBrokenData = 0; - gCanBrokenDataJmp = 0; - -#ifdef HAVE_SIGSETJMP - sj = sigsetjmp(gBrokenDataJmp, 1); -#else - sj = setjmp(gBrokenDataJmp); -#endif /* HAVE_SIGSETJMP */ - - if (sj != 0) { - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); - if (vfdtouse < 0) { - (void) close(vfd); - } - FTPShutdownHost(vcip); - vcip->errNo = kErrRemoteHostClosedConnection; - return(vcip->errNo); - } - gCanBrokenDataJmp = 1; -#endif /* NO_SIGNALS */ - - tmpResult = FTPStartDataCmd(cip, kNetReading, xtype, startPoint, "RETR %s", file); - - if (tmpResult < 0) { - result = tmpResult; - if (result == kErrGeneric) - result = kErrRETRFailed; - cip->errNo = result; - if (fdtouse < 0) { - (void) close(fd); - if ((created != 0) && (appendflag == kAppendNo) && (cip->startPoint == 0)) - (void) unlink(dstfile); - } -#if !defined(NO_SIGNALS) - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); -#endif /* NO_SIGNALS */ - return (result); - } - - if ((startPoint != 0) && (cip->startPoint == 0)) { - /* Remote could not or would not set the start offset - * to what we wanted. - * - * So now we have to undo our seek. - */ - if (Lseek(fd, (off_t) 0, SEEK_SET) != (off_t) 0) { - cip->errNo = kErrLseekFailed; - if (fdtouse < 0) { - (void) close(fd); - } -#if !defined(NO_SIGNALS) - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); -#endif /* NO_SIGNALS */ - return (cip->errNo); - } - startPoint = 0; - } - - buf = cip->buf; - bufSize = cip->bufSize; - - FTPInitIOTimer(cip); - cip->mdtm = mdtm; - (void) time(&ut.actime); - ut.modtime = mdtm; - cip->expectedSize = expectedSize; - cip->lname = dstfile; /* could be NULL */ - cip->rname = file; - if (fdtouse >= 0) - cip->useProgressMeter = 0; - FTPStartIOTimer(cip); - -#if ASCII_TRANSLATION - if (xtype == kTypeAscii) { - /* Ascii */ - for (;;) { - if (! WaitForRemoteInput(cip)) { /* could set cancelXfer */ - cip->errNo = result = kErrDataTimedOut; - Error(cip, kDontPerror, "Remote read timed out.\n"); - break; - } - if (cip->cancelXfer > 0) { - FTPAbortDataTransfer(cip); - result = cip->errNo = kErrDataTransferAborted; - break; - } -#ifdef TESTING_ABOR - if (cip->bytesTransferred > 0) { - cip->cancelXfer = 1; - FTPAbortDataTransfer(cip); - result = cip->errNo = kErrDataTransferAborted; - break; - } -#endif /* TESTING_ABOR */ -#ifdef NO_SIGNALS - nread = SRead(cip->dataSocket, buf, bufSize, (int) cip->xferTimeout, kFullBufferNotRequired|kNoFirstSelect); - if (nread == kTimeoutErr) { - cip->errNo = result = kErrDataTimedOut; - Error(cip, kDontPerror, "Remote read timed out.\n"); - break; - } else if (nread < 0) { - if ((gGotBrokenData != 0) || (errno == EPIPE)) { - result = cip->errNo = kErrSocketReadFailed; - errno = EPIPE; - Error(cip, kDoPerror, "Lost data connection to remote host.\n"); - } else if (errno == EINTR) { - continue; - } else { - Error(cip, kDoPerror, "Remote read failed.\n"); - result = kErrSocketReadFailed; - cip->errNo = kErrSocketReadFailed; - } - break; - } else if (nread == 0) { - break; - } -#else - gCanBrokenDataJmp = 1; - if (cip->xferTimeout > 0) - (void) alarm(cip->xferTimeout); - nread = read(cip->dataSocket, buf, bufSize); - if (nread < 0) { - if ((gGotBrokenData != 0) || (errno == EPIPE)) { - result = cip->errNo = kErrSocketReadFailed; - errno = EPIPE; - Error(cip, kDoPerror, "Lost data connection to remote host.\n"); - (void) shutdown(cip->dataSocket, 2); - } else if (errno == EINTR) { - continue; - } else { - result = cip->errNo = kErrSocketReadFailed; - Error(cip, kDoPerror, "Remote read failed.\n"); - (void) shutdown(cip->dataSocket, 2); - } - break; - } else if (nread == 0) { - break; - } - - gCanBrokenDataJmp = 0; -#endif /* NO_SIGNALS */ - - src = buf; - srclim = src + nread; - dst = outbuf; - dstlim = dst + sizeof(outbuf); - while (src < srclim) { - if (*src == '\r') { - src++; - continue; - } - if (dst >= dstlim) { - nwrote = write(fd, outbuf, (size_t) (dst - outbuf)); - if (nwrote == (int) (dst - outbuf)) { - /* Success. */ - dst = outbuf; - } else if ((gGotBrokenData != 0) || (errno == EPIPE)) { - result = kErrWriteFailed; - cip->errNo = kErrWriteFailed; - errno = EPIPE; - (void) shutdown(cip->dataSocket, 2); - goto brk; - } else { - Error(cip, kDoPerror, "Local write failed.\n"); - result = kErrWriteFailed; - cip->errNo = kErrWriteFailed; - (void) shutdown(cip->dataSocket, 2); - goto brk; - } - } - *dst++ = *src++; - } - if (dst > outbuf) { - nwrote = write(fd, outbuf, (size_t) (dst - outbuf)); - if (nwrote != (int) (dst - outbuf)) { - if ((gGotBrokenData != 0) || (errno == EPIPE)) { - result = kErrWriteFailed; - cip->errNo = kErrWriteFailed; - errno = EPIPE; - (void) shutdown(cip->dataSocket, 2); - goto brk; - } else { - Error(cip, kDoPerror, "Local write failed.\n"); - result = kErrWriteFailed; - cip->errNo = kErrWriteFailed; - (void) shutdown(cip->dataSocket, 2); - goto brk; - } - } - } - - if (mdtm != kModTimeUnknown) { - (void) utime(dstfile, &ut); - } - cip->bytesTransferred += (longest_int) nread; - FTPUpdateIOTimer(cip); - } - } else -#endif /* ASCII_TRANSLATION */ - { - /* Binary */ - for (;;) { - if (! WaitForRemoteInput(cip)) { /* could set cancelXfer */ - cip->errNo = result = kErrDataTimedOut; - Error(cip, kDontPerror, "Remote read timed out.\n"); - break; - } - if (cip->cancelXfer > 0) { - FTPAbortDataTransfer(cip); - result = cip->errNo = kErrDataTransferAborted; - break; - } -#ifdef TESTING_ABOR - if (cip->bytesTransferred > 0) { - cip->cancelXfer = 1; - FTPAbortDataTransfer(cip); - result = cip->errNo = kErrDataTransferAborted; - break; - } -#endif /* TESTING_ABOR */ -#ifdef NO_SIGNALS - nread = SRead(cip->dataSocket, buf, bufSize, (int) cip->xferTimeout, kFullBufferNotRequired|kNoFirstSelect); - if (nread == kTimeoutErr) { - cip->errNo = result = kErrDataTimedOut; - Error(cip, kDontPerror, "Remote read timed out.\n"); - break; - } else if (nread < 0) { - if ((gGotBrokenData != 0) || (errno == EPIPE)) { - result = cip->errNo = kErrSocketReadFailed; - errno = EPIPE; - Error(cip, kDoPerror, "Lost data connection to remote host.\n"); - } else if (errno == EINTR) { - continue; - } else { - Error(cip, kDoPerror, "Remote read failed.\n"); - result = kErrSocketReadFailed; - cip->errNo = kErrSocketReadFailed; - } - break; - } else if (nread == 0) { - break; - } -#else - gCanBrokenDataJmp = 1; - if (cip->xferTimeout > 0) - (void) alarm(cip->xferTimeout); - nread = read(cip->dataSocket, buf, bufSize); - if (nread < 0) { - if ((gGotBrokenData != 0) || (errno == EPIPE)) { - result = cip->errNo = kErrSocketReadFailed; - errno = EPIPE; - Error(cip, kDoPerror, "Lost data connection to remote host.\n"); - } else if (errno == EINTR) { - continue; - } else { - result = cip->errNo = kErrSocketReadFailed; - Error(cip, kDoPerror, "Remote read failed.\n"); - } - (void) shutdown(cip->dataSocket, 2); - break; - } else if (nread == 0) { - break; - } - gCanBrokenDataJmp = 0; -#endif /* NO_SIGNALS */ - - nwrote = write(fd, buf, nread); - if (nwrote != nread) { - if ((gGotBrokenData != 0) || (errno == EPIPE)) { - result = kErrWriteFailed; - cip->errNo = kErrWriteFailed; - errno = EPIPE; - } else { - Error(cip, kDoPerror, "Local write failed.\n"); - result = kErrWriteFailed; - cip->errNo = kErrWriteFailed; - } - (void) shutdown(cip->dataSocket, 2); - break; - } - - /* Ugggh... do this after each write operation - * so it minimizes the chance of a user killing - * the process before we reset the timestamps. - */ - if (mdtm != kModTimeUnknown) { - (void) utime(dstfile, &ut); - } - cip->bytesTransferred += (longest_int) nread; - FTPUpdateIOTimer(cip); - } - } - -#if ASCII_TRANSLATION -brk: -#endif - -#if !defined(NO_SIGNALS) - if (cip->xferTimeout > 0) - (void) alarm(0); - gCanBrokenDataJmp = 0; -#endif /* NO_SIGNALS */ - - if (fdtouse < 0) { - /* If they gave us a descriptor (fdtouse >= 0), - * leave it open, otherwise we opened it, so - * we need to close it. - */ - (void) close(fd); - fd = -1; - } - - tmpResult = FTPEndDataCmd(cip, 1); - if ((tmpResult < 0) && (result == 0)) { - result = kErrRETRFailed; - cip->errNo = kErrRETRFailed; - } - FTPStopIOTimer(cip); -#if !defined(NO_SIGNALS) - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); -#endif /* NO_SIGNALS */ - - if ((mdtm != kModTimeUnknown) && (cip->bytesTransferred > 0)) { - (void) utime(dstfile, &ut); - } - - if (result == kNoErr) { - cip->numDownloads++; - - if (deleteflag == kDeleteYes) { - result = FTPDelete(cip, file, kRecursiveNo, kGlobNo); - } - } - - return (result); -} /* FTPGetOneF */ - - - - -int -FTPGetOneFile3( - const FTPCIPtr cip, - const char *const file, - const char *const dstfile, - const int xtype, - const int fdtouse, - const int resumeflag, - const int appendflag, - const int deleteflag, - const ConfirmResumeDownloadProc resumeProc, - int UNUSED(reserved)) -{ - int result; - - LIBNCFTP_USE_VAR(reserved); - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if ((file == NULL) || (file[0] == '\0')) - return (kErrBadParameter); - if (fdtouse < 0) { - if ((dstfile == NULL) || (dstfile[0] == '\0')) - return (kErrBadParameter); - } - - result = FTPGetOneF(cip, file, dstfile, xtype, fdtouse, kSizeUnknown, kModTimeUnknown, resumeflag, appendflag, deleteflag, resumeProc); - return (result); -} /* FTPGetOneFile3 */ - - - - -int -FTPGetFiles3( - const FTPCIPtr cip, - const char *pattern1, - const char *const dstdir1, - const int recurse, - int doGlob, - const int xtype, - const int resumeflag, - int appendflag, - const int deleteflag, - const int tarflag, - const ConfirmResumeDownloadProc resumeProc, - int UNUSED(reserved)) -{ - LineList globList; - LinePtr itemPtr; - FileInfoList files; - FileInfoPtr filePtr; - int batchResult; - int result; - char *ldir; - char *cp; - const char *dstdir; - const char *pattern; - char *pattern2, *dstdir2; - char c; - int recurse1; - int errRc; - - LIBNCFTP_USE_VAR(reserved); - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - if (pattern1 == NULL) - return (kErrBadParameter); - - dstdir2 = NULL; - pattern2 = NULL; - - if (dstdir1 == NULL) { - dstdir = NULL; - } else { - dstdir2 = StrDup(dstdir1); - if (dstdir2 == NULL) { - errRc = kErrMallocFailed; - goto return_err; - } - StrRemoveTrailingLocalPathDelim(dstdir2); - dstdir = dstdir2; - } - - pattern2 = StrDup(pattern1); - if (pattern2 == NULL) { - errRc = kErrMallocFailed; - goto return_err; - } - StrRemoveTrailingSlashes(pattern2); - pattern = pattern2; - - if (pattern[0] == '\0') { - if (recurse == kRecursiveNo) { - errRc = kErrBadParameter; - goto return_err; - } - pattern = "."; - doGlob = kGlobNo; - } else if (strcmp(pattern, ".") == 0) { - if (recurse == kRecursiveNo) { - errRc = kErrBadParameter; - goto return_err; - } - doGlob = kGlobNo; - } - if (recurse == kRecursiveYes) - appendflag = kAppendNo; - - batchResult = FTPRemoteGlob(cip, &globList, pattern, doGlob); - if (batchResult != kNoErr) { - errRc = batchResult; - goto return_err; - } - - cip->cancelXfer = 0; /* should already be zero */ - - for (itemPtr = globList.first; itemPtr != NULL; itemPtr = itemPtr->next) { - if ((recurse == kRecursiveYes) && (FTPIsDir(cip, itemPtr->line) > 0)) { -#ifdef TAR - if ((tarflag == kTarYes) && (xtype == kTypeBinary) && (appendflag == kAppendNo) && (deleteflag == kDeleteNo) && (FTPGetOneTarF(cip, itemPtr->line, dstdir) == kNoErr)) { - /* Great! */ - continue; - } -#endif /* TAR */ - (void) FTPRemoteRecursiveFileList1(cip, itemPtr->line, &files); - (void) ComputeLNames(&files, itemPtr->line, dstdir, 1); - recurse1 = recurse; - } else { - recurse1 = kRecursiveNo; - (void) LineToFileInfoList(itemPtr, &files); - (void) ComputeRNames(&files, ".", 0, 1); - (void) ComputeLNames(&files, NULL, dstdir, 0); - } - if (cip->cancelXfer > 0) { - DisposeFileInfoListContents(&files); - break; - } - -#if 0 - for (filePtr = files.first; filePtr != NULL; filePtr = filePtr->next) { - PrintF(cip, " R=%s, L=%s, 2=%s, size=%d, mdtm=%u, type=%c\n", - filePtr->rname, - filePtr->lname, - filePtr->rlinkto ? filePtr->rlinkto : "", - filePtr->size, - (unsigned int) filePtr->mdtm, - filePtr->type - ); - } -#endif - - - for (filePtr = files.first; filePtr != NULL; filePtr = filePtr->next) { - if (cip->connected == 0) { - if (batchResult == kNoErr) - batchResult = kErrRemoteHostClosedConnection; - break; - } - if (filePtr->type == 'd') { -#if defined(WIN32) || defined(_WINDOWS) - (void) MkDirs(filePtr->lname, 00777); -#else - (void) mkdir(filePtr->lname, 00777); -#endif - } else if (filePtr->type == 'l') { - /* skip it -- we do that next pass. */ - } else if (recurse1 != kRecursiveYes) { - result = FTPGetOneF(cip, filePtr->rname, filePtr->lname, xtype, -1, filePtr->size, filePtr->mdtm, resumeflag, appendflag, deleteflag, resumeProc); - if (files.nFileInfos == 1) { - if (result != kNoErr) - batchResult = result; - } else { - if ((result != kNoErr) && (result != kErrLocalFileNewer) && (result != kErrRemoteFileNewer) && (result != kErrLocalSameAsRemote)) - batchResult = result; - } - if (result == kErrUserCanceled) - cip->cancelXfer = 1; - if (cip->cancelXfer > 0) - break; - } else { - ldir = filePtr->lname; - cp = StrRFindLocalPathDelim(ldir); - if (cp != NULL) { - while (cp > ldir) { - if (! IsLocalPathDelim(*cp)) { - ++cp; - break; - } - --cp; - } - if (cp > ldir) { - c = *cp; - *cp = '\0'; - if (MkDirs(ldir, 00777) < 0) { - Error(cip, kDoPerror, "Could not create local directory \"%s\"\n", ldir); - batchResult = kErrGeneric; - *cp = c; - continue; - } - *cp = c; - } - } - result = FTPGetOneF(cip, filePtr->rname, filePtr->lname, xtype, -1, filePtr->size, filePtr->mdtm, resumeflag, appendflag, deleteflag, resumeProc); - - if (files.nFileInfos == 1) { - if (result != kNoErr) - batchResult = result; - } else { - if ((result != kNoErr) && (result != kErrLocalFileNewer) && (result != kErrRemoteFileNewer) && (result != kErrLocalSameAsRemote)) - batchResult = result; - } - if (result == kErrUserCanceled) - cip->cancelXfer = 1; - if (cip->cancelXfer > 0) - break; - } - } - if (cip->cancelXfer > 0) { - DisposeFileInfoListContents(&files); - break; - } - -#ifdef HAVE_SYMLINK - for (filePtr = files.first; filePtr != NULL; filePtr = filePtr->next) { - if (filePtr->type == 'l') { - (void) unlink(filePtr->lname); - if (symlink(filePtr->rlinkto, filePtr->lname) < 0) { - Error(cip, kDoPerror, "Could not symlink %s to %s\n", filePtr->rlinkto, filePtr->lname); - /* Note: not worth setting batchResult */ - } - } - } -#endif /* HAVE_SYMLINK */ - - - DisposeFileInfoListContents(&files); - } - - DisposeLineListContents(&globList); - if (batchResult < 0) - cip->errNo = batchResult; - errRc = batchResult; - -return_err: - if (dstdir2 != NULL) - free(dstdir2); - if (pattern2 != NULL) - free(pattern2); - return (errRc); -} /* FTPGetFiles3 */ - - - - -/*------------------------- wrappers for old routines ----------------------*/ - -int -FTPGetOneFile(const FTPCIPtr cip, const char *const file, const char *const dstfile) -{ - return (FTPGetOneFile3(cip, file, dstfile, kTypeBinary, -1, kResumeNo, kAppendNo, kDeleteNo, (ConfirmResumeDownloadProc) 0, 0)); -} /* FTPGetOneFile */ - - - - -int -FTPGetOneFile2(const FTPCIPtr cip, const char *const file, const char *const dstfile, const int xtype, const int fdtouse, const int resumeflag, const int appendflag) -{ - return (FTPGetOneFile3(cip, file, dstfile, xtype, fdtouse, resumeflag, appendflag, kDeleteNo, (ConfirmResumeDownloadProc) 0, 0)); -} /* FTPGetOneFile2 */ - - - - -int -FTPGetFiles(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob) -{ - return (FTPGetFiles3(cip, pattern, dstdir, recurse, doGlob, kTypeBinary, kResumeNo, kAppendNo, kDeleteNo, kTarYes, (ConfirmResumeDownloadProc) 0, 0)); -} /* FTPGetFiles */ - - - - -int -FTPGetFiles2(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob, const int xtype, const int resumeflag, const int appendflag) -{ - return (FTPGetFiles3(cip, pattern, dstdir, recurse, doGlob, xtype, resumeflag, appendflag, kDeleteNo, kTarYes, (ConfirmResumeDownloadProc) 0, 0)); -} /* FTPGetFiles2 */ - - - - -int -FTPGetOneFileAscii(const FTPCIPtr cip, const char *const file, const char *const dstfile) -{ - return (FTPGetOneFile3(cip, file, dstfile, kTypeAscii, -1, kResumeNo, kAppendNo, kDeleteNo, (ConfirmResumeDownloadProc) 0, 0)); -} /* FTPGetOneFileAscii */ - - - - -int -FTPGetFilesAscii(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob) -{ - return (FTPGetFiles3(cip, pattern, dstdir, recurse, doGlob, kTypeAscii, kResumeNo, kAppendNo, kDeleteNo, kTarNo, (ConfirmResumeDownloadProc) 0, 0)); -} /* FTPGetFilesAscii */ - - - - -int -FTPPutOneFile(const FTPCIPtr cip, const char *const file, const char *const dstfile) -{ - return (FTPPutOneFile3(cip, file, dstfile, kTypeBinary, -1, 0, NULL, NULL, kResumeNo, kDeleteNo, NoConfirmResumeUploadProc, 0)); -} /* FTPPutOneFile */ - - - - -int -FTPPutOneFile2(const FTPCIPtr cip, const char *const file, const char *const dstfile, const int xtype, const int fdtouse, const int appendflag, const char *const tmppfx, const char *const tmpsfx) -{ - return (FTPPutOneFile3(cip, file, dstfile, xtype, fdtouse, appendflag, tmppfx, tmpsfx, kResumeNo, kDeleteNo, NoConfirmResumeUploadProc, 0)); -} /* FTPPutOneFile2 */ - - - - -int -FTPPutFiles(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob) -{ - return (FTPPutFiles3(cip, pattern, dstdir, recurse, doGlob, kTypeBinary, 0, NULL, NULL, kResumeNo, kDeleteNo, NoConfirmResumeUploadProc, 0)); -} /* FTPPutFiles */ - - - - -int -FTPPutFiles2(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob, const int xtype, const int appendflag, const char *const tmppfx, const char *const tmpsfx) -{ - return (FTPPutFiles3(cip, pattern, dstdir, recurse, doGlob, xtype, appendflag, tmppfx, tmpsfx, kResumeNo, kDeleteNo, NoConfirmResumeUploadProc, 0)); -} /* FTPPutFiles2 */ - - - - -int -FTPPutOneFileAscii(const FTPCIPtr cip, const char *const file, const char *const dstfile) -{ - return (FTPPutOneFile3(cip, file, dstfile, kTypeAscii, -1, 0, NULL, NULL, kResumeNo, kDeleteNo, NoConfirmResumeUploadProc, 0)); -} /* FTPPutOneFileAscii */ - - - - -int -FTPPutFilesAscii(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob) -{ - return (FTPPutFiles3(cip, pattern, dstdir, recurse, doGlob, kTypeAscii, 0, NULL, NULL, kResumeNo, kDeleteNo, NoConfirmResumeUploadProc, 0)); -} /* FTPPutFilesAscii */ - - - -int -FTPListToMemory(const FTPCIPtr cip, const char *const pattern, const LineListPtr llines, const char *const lsflags) -{ - return (FTPListToMemory2(cip, pattern, llines, lsflags, 1, (int *) 0)); -} /* FTPListToMemory */ - -/* eof IO.c */ diff --git a/rosapps/applications/net/ncftp/libncftp/libncftp.dsp b/rosapps/applications/net/ncftp/libncftp/libncftp.dsp deleted file mode 100644 index c42666c7e43..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/libncftp.dsp +++ /dev/null @@ -1,160 +0,0 @@ -# Microsoft Developer Studio Project File - Name="libncftp" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=libncftp - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "libncftp.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "libncftp.mak" CFG="libncftp - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "libncftp - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "libncftp - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "libncftp - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W4 /GX /O2 /Ob1 /I "..\Strn" /I "..\sio" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "libncftp - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\Strn" /I "..\sio" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "libncftp - Win32 Release" -# Name "libncftp - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\cmds.c -# End Source File -# Begin Source File - -SOURCE=.\errno.c -# End Source File -# Begin Source File - -SOURCE=.\ftp.c -# End Source File -# Begin Source File - -SOURCE=.\glob.c -# End Source File -# Begin Source File - -SOURCE=.\io.c -# End Source File -# Begin Source File - -SOURCE=.\linelist.c -# End Source File -# Begin Source File - -SOURCE=.\mksrczip.bat -# End Source File -# Begin Source File - -SOURCE=.\open.c -# End Source File -# Begin Source File - -SOURCE=.\rcmd.c -# End Source File -# Begin Source File - -SOURCE=.\util.c -# End Source File -# Begin Source File - -SOURCE=.\util2.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\ftp.h -# End Source File -# Begin Source File - -SOURCE=.\ncftp.h -# End Source File -# Begin Source File - -SOURCE=.\ncftp_errno.h -# End Source File -# Begin Source File - -SOURCE=.\syshdrs.h -# End Source File -# Begin Source File - -SOURCE=.\util.h -# End Source File -# Begin Source File - -SOURCE=.\wincfg.h -# End Source File -# End Group -# End Target -# End Project diff --git a/rosapps/applications/net/ncftp/libncftp/libncftp.dsw b/rosapps/applications/net/ncftp/libncftp/libncftp.dsw deleted file mode 100644 index 73dea0c41cf..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/libncftp.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "libncftp"=.\libncftp.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/rosapps/applications/net/ncftp/libncftp/linelist.c b/rosapps/applications/net/ncftp/libncftp/linelist.c deleted file mode 100644 index a6e109208e8..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/linelist.c +++ /dev/null @@ -1,783 +0,0 @@ -/* linelist.c - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#include "syshdrs.h" - -/* Dynamically make a copy of a string. */ -char * -StrDup(const char *buf) -{ - char *cp; - size_t len; - - if (buf == NULL) - return (NULL); - - len = strlen(buf) + 1; - cp = (char *) malloc(len); - if (cp != NULL) - (void) memcpy(cp, buf, len); - return (cp); -} /* StrDup */ - - - -/* Disposes each node of a LineList. Does a few extra things - * so the disposed memory won't be very useful after it is freed. - */ -void -DisposeLineListContents(LineListPtr list) -{ - LinePtr lp, lp2; - - for (lp = list->first; lp != NULL; ) { - lp2 = lp; - lp = lp->next; - if (lp2->line != NULL) { - lp2->line[0] = '\0'; - free(lp2->line); - } - free(lp2); - } - /* Same as InitLineList. */ - (void) memset(list, 0, sizeof(LineList)); -} /* DisposeLineListContents */ - - - - -void -InitLineList(LineListPtr list) -{ - (void) memset(list, 0, sizeof(LineList)); -} /* InitLineList */ - - - - -LinePtr -RemoveLine(LineListPtr list, LinePtr killMe) -{ - LinePtr nextLine, prevLine; - - nextLine = killMe->next; - prevLine = killMe->prev; - if (killMe->line != NULL) { - killMe->line[0] = '\0'; /* Make it useless just in case. */ - free(killMe->line); - } - - if (list->first == killMe) - list->first = nextLine; - if (list->last == killMe) - list->last = prevLine; - - if (nextLine != NULL) - nextLine->prev = prevLine; - if (prevLine != NULL) - prevLine->next = nextLine; - - free(killMe); - list->nLines--; - return (nextLine); -} /* RemoveLine */ - - - - -/* Adds a string to the LineList specified. */ -LinePtr -AddLine(LineListPtr list, const char *buf1) -{ - LinePtr lp; - char *buf; - - lp = (LinePtr) malloc(sizeof(Line)); - if (lp != NULL) { - buf = StrDup(buf1); - if (buf == NULL) { - free(lp); - lp = NULL; - } else { - lp->line = buf; - lp->next = NULL; - if (list->first == NULL) { - list->first = list->last = lp; - lp->prev = NULL; - list->nLines = 1; - } else { - lp->prev = list->last; - list->last->next = lp; - list->last = lp; - list->nLines++; - } - } - } - return lp; -} /* AddLine */ - - - - -int -CopyLineList(LineListPtr dst, LineListPtr src) -{ - LinePtr lp, lp2; - - InitLineList(dst); - for (lp = src->first; lp != NULL; ) { - lp2 = lp; - lp = lp->next; - if (lp2->line != NULL) { - if (AddLine(dst, lp2->line) == NULL) { - DisposeLineListContents(dst); - return (-1); - } - } - } - return (0); -} /* CopyLineList */ - - - - -/* Disposes each node of a FileInfoList. Does a few extra things - * so the disposed memory won't be very useful after it is freed. - */ -void -DisposeFileInfoListContents(FileInfoListPtr list) -{ - FileInfoPtr lp, lp2; - - for (lp = list->first; lp != NULL; ) { - lp2 = lp; - lp = lp->next; - if (lp2->relname != NULL) { - lp2->relname[0] = '\0'; - free(lp2->relname); - } - if (lp2->lname != NULL) { - lp2->lname[0] = '\0'; - free(lp2->lname); - } - if (lp2->rname != NULL) { - lp2->rname[0] = '\0'; - free(lp2->rname); - } - if (lp2->rlinkto != NULL) { - lp2->rlinkto[0] = '\0'; - free(lp2->rlinkto); - } - if (lp2->plug != NULL) { - lp2->plug[0] = '\0'; - free(lp2->plug); - } - free(lp2); - } - - if (list->vec != NULL) - free(list->vec); - - /* Same as InitFileInfoList. */ - (void) memset(list, 0, sizeof(FileInfoList)); -} /* DisposeFileInfoListContents */ - - - - -void -InitFileInfoList(FileInfoListPtr list) -{ - (void) memset(list, 0, sizeof(FileInfoList)); -} /* InitFileInfoList */ - - - - -static int -TimeCmp(const void *a, const void *b) -{ - FileInfoPtr *fipa, *fipb; - - fipa = (FileInfoPtr *) a; - fipb = (FileInfoPtr *) b; - if ((**fipb).mdtm == (**fipa).mdtm) - return (0); - else if ((**fipb).mdtm < (**fipa).mdtm) - return (-1); - return (1); -} /* TimeCmp */ - - - - -static int -ReverseTimeCmp(const void *a, const void *b) -{ - FileInfoPtr *fipa, *fipb; - - fipa = (FileInfoPtr *) a; - fipb = (FileInfoPtr *) b; - if ((**fipa).mdtm == (**fipb).mdtm) - return (0); - else if ((**fipa).mdtm < (**fipb).mdtm) - return (-1); - return (1); -} /* ReverseTimeCmp */ - - - - -static int -SizeCmp(const void *a, const void *b) -{ - FileInfoPtr *fipa, *fipb; - - fipa = (FileInfoPtr *) a; - fipb = (FileInfoPtr *) b; - if ((**fipb).size == (**fipa).size) - return (0); - else if ((**fipb).size < (**fipa).size) - return (-1); - return (1); -} /* SizeCmp */ - - - - -static int -ReverseSizeCmp(const void *a, const void *b) -{ - FileInfoPtr *fipa, *fipb; - - fipa = (FileInfoPtr *) a; - fipb = (FileInfoPtr *) b; - if ((**fipa).size == (**fipb).size) - return (0); - else if ((**fipa).size < (**fipb).size) - return (-1); - return (1); -} /* ReverseSizeCmp */ - - - - -static int -ReverseNameCmp(const void *a, const void *b) -{ - FileInfoPtr *fipa, *fipb; - - fipa = (FileInfoPtr *) a; - fipb = (FileInfoPtr *) b; -#ifdef HAVE_SETLOCALE - return (strcoll((**fipb).relname, (**fipa).relname)); -#else - return (strcmp((**fipb).relname, (**fipa).relname)); -#endif -} /* ReverseNameCmp */ - - - - -static int -NameCmp(const void *a, const void *b) -{ - FileInfoPtr *fipa, *fipb; - - fipa = (FileInfoPtr *) a; - fipb = (FileInfoPtr *) b; -#ifdef HAVE_SETLOCALE - return (strcoll((**fipa).relname, (**fipb).relname)); -#else - return (strcmp((**fipa).relname, (**fipb).relname)); -#endif -} /* NameCmp */ - - - - -static int -BreadthFirstCmp(const void *a, const void *b) -{ - FileInfoPtr *fipa, *fipb; - char *cp, *cpa, *cpb; - int depth, deptha, depthb; - int c; - - fipa = (FileInfoPtr *) a; - fipb = (FileInfoPtr *) b; - - cpa = (**fipa).relname; - cpb = (**fipb).relname; - - for (cp = cpa, depth = 0;;) { - c = *cp++; - if (c == '\0') - break; - if ((c == '/') || (c == '\\')) { - depth++; - } - } - deptha = depth; - - for (cp = cpb, depth = 0;;) { - c = *cp++; - if (c == '\0') - break; - if ((c == '/') || (c == '\\')) { - depth++; - } - } - depthb = depth; - - if (deptha < depthb) - return (-1); - else if (deptha > depthb) - return (1); - -#ifdef HAVE_SETLOCALE - return (strcoll(cpa, cpb)); -#else - return (strcmp(cpa, cpb)); -#endif -} /* BreadthFirstCmp */ - - - - -void -SortFileInfoList(FileInfoListPtr list, int sortKey, int sortOrder) -{ - FileInfoVec fiv; - FileInfoPtr fip; - int i, j, n, n2; - - fiv = list->vec; - if (fiv == NULL) - return; - - if (list->sortKey == sortKey) { - if (list->sortOrder == sortOrder) - return; /* Already sorted they you want. */ - - /* Reverse the sort. */ - n = list->nFileInfos; - if (n > 1) { - n2 = n / 2; - for (i=0; isortOrder = sortOrder; - } else if ((sortKey == 'n') && (sortOrder == 'a')) { - qsort(fiv, (size_t) list->nFileInfos, sizeof(FileInfoPtr), - NameCmp); - list->sortKey = sortKey; - list->sortOrder = sortOrder; - } else if ((sortKey == 'n') && (sortOrder == 'd')) { - qsort(fiv, (size_t) list->nFileInfos, sizeof(FileInfoPtr), - ReverseNameCmp); - list->sortKey = sortKey; - list->sortOrder = sortOrder; - } else if ((sortKey == 't') && (sortOrder == 'a')) { - qsort(fiv, (size_t) list->nFileInfos, sizeof(FileInfoPtr), - TimeCmp); - list->sortKey = sortKey; - list->sortOrder = sortOrder; - } else if ((sortKey == 't') && (sortOrder == 'd')) { - qsort(fiv, (size_t) list->nFileInfos, sizeof(FileInfoPtr), - ReverseTimeCmp); - list->sortKey = sortKey; - list->sortOrder = sortOrder; - } else if ((sortKey == 's') && (sortOrder == 'a')) { - qsort(fiv, (size_t) list->nFileInfos, sizeof(FileInfoPtr), - SizeCmp); - list->sortKey = sortKey; - list->sortOrder = sortOrder; - } else if ((sortKey == 's') && (sortOrder == 'd')) { - qsort(fiv, (size_t) list->nFileInfos, sizeof(FileInfoPtr), - ReverseSizeCmp); - list->sortKey = sortKey; - list->sortOrder = sortOrder; - } else if (sortKey == 'b') { - /* This is different from the rest. */ - list->sortKey = sortKey; - list->sortOrder = sortOrder; - qsort(fiv, (size_t) list->nFileInfos, sizeof(FileInfoPtr), - BreadthFirstCmp); - } -} /* SortFileInfoList */ - - - - -void -VectorizeFileInfoList(FileInfoListPtr list) -{ - FileInfoVec fiv; - FileInfoPtr fip; - int i; - - fiv = (FileInfoVec) calloc((size_t) (list->nFileInfos + 1), sizeof(FileInfoPtr)); - if (fiv != (FileInfoVec) 0) { - for (i = 0, fip = list->first; fip != NULL; fip = fip->next, i++) - fiv[i] = fip; - list->vec = fiv; - } -} /* VectorizeFileInfoList */ - - - - -void -UnvectorizeFileInfoList(FileInfoListPtr list) -{ - FileInfoVec fiv; - FileInfoPtr fip; - int i, n; - - fiv = list->vec; - if (fiv != (FileInfoVec) 0) { - list->first = fiv[0]; - n = list->nFileInfos; - if (n > 0) { - list->last = fiv[n - 1]; - fip = fiv[0]; - fip->prev = NULL; - fip->next = fiv[1]; - for (i = 1; i < n; i++) { - fip = fiv[i]; - fip->prev = fiv[i - 1]; - fip->next = fiv[i + 1]; - } - } - free(fiv); - list->vec = (FileInfoVec) 0; - } -} /* UnvectorizeFileInfoList */ - - - - -void -InitFileInfo(FileInfoPtr fip) -{ - (void) memset(fip, 0, sizeof(FileInfo)); - fip->type = '-'; - fip->size = kSizeUnknown; - fip->mdtm = kModTimeUnknown; -} /* InitFileInfoList */ - - - - -FileInfoPtr -RemoveFileInfo(FileInfoListPtr list, FileInfoPtr killMe) -{ - FileInfoPtr nextFileInfo, prevFileInfo; - - nextFileInfo = killMe->next; - prevFileInfo = killMe->prev; - if (killMe->lname != NULL) { - killMe->lname[0] = '\0'; /* Make it useless just in case. */ - free(killMe->lname); - } - if (killMe->relname != NULL) { - killMe->relname[0] = '\0'; - free(killMe->relname); - } - if (killMe->rname != NULL) { - killMe->rname[0] = '\0'; - free(killMe->rname); - } - if (killMe->rlinkto != NULL) { - killMe->rlinkto[0] = '\0'; - free(killMe->rlinkto); - } - if (killMe->plug != NULL) { - killMe->plug[0] = '\0'; - free(killMe->plug); - } - - if (list->first == killMe) - list->first = nextFileInfo; - if (list->last == killMe) - list->last = prevFileInfo; - - if (nextFileInfo != NULL) - nextFileInfo->prev = prevFileInfo; - if (prevFileInfo != NULL) - prevFileInfo->next = nextFileInfo; - - free(killMe); - list->nFileInfos--; - return (nextFileInfo); -} /* RemoveFileInfo */ - - - - -/* Adds a string to the FileInfoList specified. */ -FileInfoPtr -AddFileInfo(FileInfoListPtr list, FileInfoPtr src) -{ - FileInfoPtr lp; - - lp = (FileInfoPtr) malloc(sizeof(FileInfo)); - if (lp != NULL) { - (void) memcpy(lp, src, sizeof(FileInfo)); - lp->next = NULL; - if (list->first == NULL) { - list->first = list->last = lp; - lp->prev = NULL; - list->nFileInfos = 1; - } else { - lp->prev = list->last; - list->last->next = lp; - list->last = lp; - list->nFileInfos++; - } - } - return lp; -} /* AddFileInfo */ - - - - -int -ConcatFileInfoList(FileInfoListPtr dst, FileInfoListPtr src) -{ - FileInfoPtr lp, lp2; - FileInfo newfi; - - for (lp = src->first; lp != NULL; lp = lp2) { - lp2 = lp->next; - newfi = *lp; - newfi.relname = StrDup(lp->relname); - newfi.lname = StrDup(lp->lname); - newfi.rname = StrDup(lp->rname); - newfi.rlinkto = StrDup(lp->rlinkto); - newfi.plug = StrDup(lp->plug); - if (AddFileInfo(dst, &newfi) == NULL) - return (-1); - } - return (0); -} /* ConcatFileInfoList */ - - - - -int -ComputeRNames(FileInfoListPtr dst, const char *dstdir, int pflag, int nochop) -{ - FileInfoPtr lp, lp2; - char *buf; - char *cp; - - if (dstdir == NULL) - dstdir = "."; - - for (lp = dst->first; lp != NULL; lp = lp2) { - lp2 = lp->next; - - buf = NULL; - if (nochop != 0) { - if ((dstdir[0] != '\0') && (strcmp(dstdir, "."))) { - if (Dynscat(&buf, dstdir, "/", lp->relname, 0) == NULL) - goto memerr; - - if (pflag != 0) { - /* Init lname to parent dir name of remote dir */ - cp = strrchr(dstdir, '/'); - if (cp == NULL) - cp = strrchr(dstdir, '\\'); - if (cp != NULL) { - if (Dynscat(&lp->lname, cp + 1, 0) == NULL) - goto memerr; - TVFSPathToLocalPath(lp->lname); - } - } - } else { - if (Dynscat(&buf, lp->relname, 0) == NULL) - goto memerr; - } - } else { - if ((dstdir[0] != '\0') && (strcmp(dstdir, "."))) { - cp = strrchr(lp->relname, '/'); - if (cp == NULL) - cp = strrchr(lp->relname, '\\'); - if (cp != NULL) { - cp++; - } else { - cp = lp->relname; - } - if (Dynscat(&buf, dstdir, "/", cp, 0) == NULL) - goto memerr; - - if (pflag != 0) { - /* Init lname to parent dir name of remote dir */ - cp = strrchr(dstdir, '/'); - if (cp == NULL) - cp = strrchr(dstdir, '\\'); - if (cp != NULL) { - if (Dynscat(&lp->lname, cp + 1, 0) == NULL) - goto memerr; - TVFSPathToLocalPath(lp->lname); - } - } - } else { - cp = strrchr(lp->relname, '/'); - if (cp == NULL) - cp = strrchr(lp->relname, '\\'); - if (cp != NULL) { - cp++; - } else { - cp = lp->relname; - } - if (Dynscat(&buf, cp, 0) == NULL) - goto memerr; - } - } - lp->rname = buf; - if (lp->rname == NULL) { -memerr: - return (-1); - } - LocalPathToTVFSPath(lp->rname); - } - return (0); -} /* ComputeRNames */ - - - - -int -ComputeLNames(FileInfoListPtr dst, const char *srcdir, const char *dstdir, int nochop) -{ - FileInfoPtr lp, lp2; - char *buf; - char *cp; - - if (srcdir != NULL) { - cp = strrchr(srcdir, '/'); - if (cp == NULL) - cp = strrchr(srcdir, '\\'); - if (cp != NULL) - srcdir = cp + 1; - } - if (dstdir == NULL) - dstdir = "."; - - for (lp = dst->first; lp != NULL; lp = lp2) { - lp2 = lp->next; - - buf = NULL; - if (nochop != 0) { - if ((dstdir[0] != '\0') && (strcmp(dstdir, "."))) { - if (Dynscat(&buf, dstdir, "/", 0) == NULL) - goto memerr; - } - if (lp->lname != NULL) { - if (Dynscat(&buf, lp->lname, "/", 0) == NULL) - goto memerr; - } else if (srcdir != NULL) { - if (Dynscat(&buf, srcdir, "/", 0) == NULL) - goto memerr; - } - if (Dynscat(&buf, lp->relname, 0) == NULL) - goto memerr; - } else { - if ((dstdir[0] != '\0') && (strcmp(dstdir, "."))) { - cp = strrchr(lp->relname, '/'); - if (cp == NULL) - cp = strrchr(lp->relname, '\\'); - if (cp == NULL) { - cp = lp->relname; - } else { - cp++; - } - if (Dynscat(&buf, dstdir, "/", cp, 0) == NULL) - goto memerr; - } else { - cp = strrchr(lp->relname, '/'); - if (cp == NULL) - cp = strrchr(lp->relname, '\\'); - if (cp == NULL) { - cp = lp->relname; - } else { - cp++; - } - if (Dynscat(&buf, cp, 0) == NULL) - goto memerr; - } - } - if (buf == NULL) { -memerr: - return (-1); - } - if (lp->lname != NULL) { - free(lp->lname); - lp->lname = NULL; - } - lp->lname = buf; - TVFSPathToLocalPath(lp->lname); - } - return (0); -} /* ComputeLNames */ - - - - -int -ConcatFileToFileInfoList(FileInfoListPtr dst, char *rfile) -{ - FileInfo newfi; - - InitFileInfo(&newfi); /* Use defaults. */ - newfi.relname = StrDup(rfile); - newfi.rname = NULL; - newfi.lname = NULL; - - if (AddFileInfo(dst, &newfi) == NULL) - return (-1); - return (0); -} /* ConcatFileToFileInfoList */ - - - - -int -LineListToFileInfoList(LineListPtr src, FileInfoListPtr dst) -{ - LinePtr lp, lp2; - - InitFileInfoList(dst); - for (lp = src->first; lp != NULL; lp = lp2) { - lp2 = lp->next; - if (ConcatFileToFileInfoList(dst, lp->line) < 0) - return (-1); - } - return (0); -} /* LineListToFileList */ - - - - -int -LineToFileInfoList(LinePtr lp, FileInfoListPtr dst) -{ - InitFileInfoList(dst); - if (ConcatFileToFileInfoList(dst, lp->line) < 0) - return (-1); - return (0); -} /* LineToFileInfoList */ - -/* eof */ diff --git a/rosapps/applications/net/ncftp/libncftp/mksrctar.sh b/rosapps/applications/net/ncftp/libncftp/mksrctar.sh deleted file mode 100644 index 4d3f36db151..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/mksrctar.sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/sh - -if [ -f rcmd.c ] ; then - cd .. -fi -wd=`pwd` -for f in libncftp sio Strn doc ; do - if [ ! -f "$f" ] && [ ! -d "$f" ] ; then - echo "Missing directory $f ?" 1>&2 - exit 1 - fi -done - -( cd libncftp ; make clean ) - -TMPDIR=/tmp -if [ "$#" -lt 2 ] ; then - TARDIR="libncftp" - STGZFILE="$TARDIR.tar.gz" -else - TARDIR="$1" - STGZFILE="$2" -fi - -rm -rf $TMPDIR/TAR -mkdir -p -m755 $TMPDIR/TAR/$TARDIR 2>/dev/null - -chmod 755 configure sh/* install-sh 2>/dev/null - -find . -depth -follow -type f | sed ' -/sio\/configure$/d -/Strn\/configure$/d -/\.o$/d -/\.so$/d -/\.a$/d -/\.lib$/d -/\.ncb$/d -/\.pdb$/d -/\.idb$/d -/\.pch$/d -/\.ilk$/d -/\.res$/d -/\.aps$/d -/\.opt$/d -/\.plg$/d -/\.obj$/d -/\.exe$/d -/\.zip$/d -/\.gz$/d -/\.tgz$/d -/\.tar$/d -/\.swp$/d -/\.orig$/d -/\.rej$/d -/\/Makefile\.bin$/p -/\.bin$/d -/\/bin/d -/\/core$/d -/\/^[Rr]elease$/d -/\/^[Dd]ebug$/d -/\/sio\/.*\//d -/shit/d -/\/upload/d -/\/config\.h\.in$/p -/\/config\./d -/\/Makefile$/d -/\/OLD/d -/\/old/d' | cut -c3- | tee "$wd/doc/manifest.txt" | cpio -Lpdm $TMPDIR/TAR/$TARDIR - -( cd "$TMPDIR/TAR/$TARDIR" ; ln -s doc/README.txt README ) - -x=`tar --help 2>&1 | sed -n 's/.*owner=NAME.*/owner=NAME/g;/owner=NAME/p'` -case "$x" in - *owner=NAME*) - TARFLAGS="-c --owner=bin --group=bin --verbose -f" - TAR=tar - ;; - *) - TARFLAGS="cvf" - TAR=tar - x2=`gtar --help 2>&1 | sed -n 's/.*owner=NAME.*/owner=NAME/g;/owner=NAME/p'` - case "$x2" in - *owner=NAME*) - TARFLAGS="-c --owner=bin --group=bin --verbose -f" - TAR=gtar - ;; - esac - ;; -esac - -( cd $TMPDIR/TAR ; $TAR $TARFLAGS - $TARDIR | gzip -c > $STGZFILE ) -cp $TMPDIR/TAR/$STGZFILE . -chmod 644 $STGZFILE -rm -rf $TMPDIR/TAR -ls -l $STGZFILE 2>/dev/null -mv $TGZFILE newbin/ 2>/dev/null -exit 0 diff --git a/rosapps/applications/net/ncftp/libncftp/mksrczip.bat b/rosapps/applications/net/ncftp/libncftp/mksrczip.bat deleted file mode 100644 index 2d73d39d6c0..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/mksrczip.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off - -IF NOT EXIST ncftp.h GOTO ERR: - -cd .. -erase \temp\libncftp.zip >NUL -pkzip25.exe -add -204 -dir=current -excl=*.lib -excl=*.exe -excl=*.zip -excl=*.gz -excl=*.tar -excl=*.o -excl=*.obj -excl=*.pch -excl=*.ilk -excl=*.ncb -excl=*.opt -excl=*.pdb -excl=*.idb -excl=*.plg -excl=config.* -excl=*.so -excl=*.a -excl=Makefile -excl=core \temp\libncftp.zip libncftp\*.* -pkzip25.exe -add -204 -dir=current -excl=*.lib -excl=*.exe -excl=*.zip -excl=*.gz -excl=*.tar -excl=*.o -excl=*.obj -excl=*.pch -excl=*.ilk -excl=*.ncb -excl=*.opt -excl=*.pdb -excl=*.idb -excl=*.plg -excl=config.* -excl=*.so -excl=*.a -excl=Makefile -excl=core \temp\libncftp.zip sio\*.* -pkzip25.exe -add -204 -dir=current -excl=*.lib -excl=*.exe -excl=*.zip -excl=*.gz -excl=*.tar -excl=*.o -excl=*.obj -excl=*.pch -excl=*.ilk -excl=*.ncb -excl=*.opt -excl=*.pdb -excl=*.idb -excl=*.plg -excl=config.* -excl=*.so -excl=*.a -excl=Makefile -excl=core \temp\libncftp.zip Strn\*.* - -cd libncftp -dir \temp\libncftp.zip - -GOTO DONE: - -:ERR -echo Please cd to the source directory and then run this script. - -:DONE \ No newline at end of file diff --git a/rosapps/applications/net/ncftp/libncftp/ncftp.h b/rosapps/applications/net/ncftp/libncftp/ncftp.h deleted file mode 100644 index 28b2e208720..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/ncftp.h +++ /dev/null @@ -1,691 +0,0 @@ -/* ncftp.h - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#ifndef _ncftp_h_ -#define _ncftp_h_ 1 - -#define kLibraryVersion "@(#) LibNcFTP 3.0.6 (April 14, 2001)" - -#if defined(WIN32) || defined(_WINDOWS) -# define longest_int LONGLONG -# define longest_uint ULONGLONG -# ifndef HAVE_LONG_LONG -# define HAVE_LONG_LONG 1 -# endif -# ifndef SCANF_LONG_LONG -# define SCANF_LONG_LONG "%I64d" -# endif -# ifndef PRINTF_LONG_LONG -# define PRINTF_LONG_LONG "%I64d" -# endif -# ifndef PRINTF_LONG_LONG_I64D -# define PRINTF_LONG_LONG_I64D 1 -# endif -# ifndef SCANF_LONG_LONG_I64D -# define SCANF_LONG_LONG_I64D 1 -# endif -# ifndef USE_SIO -# define USE_SIO 1 -# endif -# ifndef NO_SIGNALS -# define NO_SIGNALS 1 -# endif -#else -# include -# include -# if !defined(__ultrix) || !defined(XTI) -# include -# endif -# include -# if 1 /* %config1% -- set by configure script -- do not modify */ -# ifndef USE_SIO -# define USE_SIO 1 -# endif -# ifndef NO_SIGNALS -# define NO_SIGNALS 1 -# endif -# else -# ifndef USE_SIO -# define USE_SIO 0 -# endif - /* #undef NO_SIGNALS */ -# endif -#endif - -#include "ncftp_errno.h" - -/* This is used to verify validty of the data passed in. - * It also specifies the minimum version that is binary-compatibile with - * this version. (So this may not necessarily be kLibraryVersion.) - */ -#define kLibraryMagic "LibNcFTP 3.0.6" - -#ifndef longest_int -#define longest_int long long -#define longest_uint unsigned long long -#endif - -#ifndef forever -# define forever for ( ; ; ) -#endif - -typedef void (*FTPSigProc)(int); - -typedef struct Line *LinePtr; -typedef struct Line { - LinePtr prev, next; - char *line; -} Line; - -typedef struct LineList { - LinePtr first, last; - int nLines; -} LineList, *LineListPtr; - -typedef struct Response { - LineList msg; - int codeType; - int code; - int printMode; - int eofOkay; - int hadEof; -} Response, *ResponsePtr; - -#if USE_SIO && !defined(_SReadlineInfo_) -#define _SReadlineInfo_ 1 -typedef struct SReadlineInfo { - char *buf; /* Pointer to beginning of buffer. */ - char *bufPtr; /* Pointer to current position in buffer. */ - char *bufLim; /* Pointer to end of buffer. */ - size_t bufSize; /* Current size of buffer block. */ - size_t bufSizeMax; /* Maximum size available for buffer. */ - int malloc; /* If non-zero, malloc() was used for buf. */ - int fd; /* File descriptor to use for I/O. */ - int timeoutLen; /* Timeout to use, in seconds. */ - int requireEOLN; /* When buffer is full, continue reading and discarding until \n? */ -} SReadlineInfo; -#endif - -typedef struct FTPLibraryInfo { - char magic[16]; /* Don't modify this field. */ - int init; /* Don't modify this field. */ - int socksInit; /* Don't modify this field. */ - unsigned int defaultPort; /* Don't modify this field. */ - char ourHostName[64]; /* Don't modify this field. */ - int hresult; /* Don't modify this field. */ - int htried; /* Don't modify this field. */ - char defaultAnonPassword[80]; /* You may set this after init. */ -} FTPLibraryInfo, *FTPLIPtr; - -typedef struct FTPConnectionInfo *FTPCIPtr; -typedef void (*FTPProgressMeterProc)(const FTPCIPtr, int); -typedef void (*FTPLogProc)(const FTPCIPtr, char *); -typedef void (*FTPConnectMessageProc)(const FTPCIPtr, ResponsePtr); -typedef void (*FTPLoginMessageProc)(const FTPCIPtr, ResponsePtr); -typedef void (*FTPRedialStatusProc)(const FTPCIPtr, int, int); -typedef void (*FTPPrintResponseProc)(const FTPCIPtr, ResponsePtr); -typedef int (*FTPFtwProc)(const FTPCIPtr cip, const char *fn, int flag); -typedef void (*FTPGetPassphraseProc)(const FTPCIPtr, LineListPtr pwPrompt, char *pass, size_t dsize); - -typedef struct FTPConnectionInfo { - char magic[16]; /* Don't modify this field. */ - char host[64]; /* REQUIRED input parameter. */ - char user[64]; /* OPTIONAL input parameter. */ - char pass[64]; /* OPTIONAL input parameter. */ - char acct[64]; /* OPTIONAL input parameter. */ - unsigned int port; /* OPTIONAL input parameter. */ - unsigned int xferTimeout; /* OPTIONAL input parameter. */ - unsigned int connTimeout; /* OPTIONAL input parameter. */ - unsigned int ctrlTimeout; /* OPTIONAL input parameter. */ - unsigned int abortTimeout; /* OPTIONAL input parameter. */ - FILE *debugLog; /* OPTIONAL input parameter. */ - FILE *errLog; /* OPTIONAL input parameter. */ - FTPLogProc debugLogProc; /* OPTIONAL input parameter. */ - FTPLogProc errLogProc; /* OPTIONAL input parameter. */ - FTPLIPtr lip; /* Do not modify this field. */ - int maxDials; /* OPTIONAL input parameter. */ - int redialDelay; /* OPTIONAL input parameter. */ - int dataPortMode; /* OPTIONAL input parameter. */ - char actualHost[64]; /* Do not modify this field. */ - char ip[32]; /* Do not modify this field. */ - int connected; /* Do not modify this field. */ - int loggedIn; /* Do not modify this field. */ - int curTransferType; /* Do not modify this field. */ - char *startingWorkingDirectory; /* Use, but do not modify. */ - longest_int startPoint; /* Do not modify this field. */ - int hasPASV; /* Do not modify this field. */ - int hasSIZE; /* Do not modify this field. */ - int hasMDTM; /* Do not modify this field. */ - int hasREST; /* Do not modify this field. */ - int hasNLST_d; /* Do not modify this field. */ - int hasUTIME; /* Do not modify this field. */ - int hasFEAT; /* Do not modify this field. */ - int hasMLSD; /* Do not modify this field. */ - int hasMLST; /* Do not modify this field. */ - int usedMLS; /* Do not modify this field. */ - int hasCLNT; /* Do not modify this field. */ - int hasRETRBUFSIZE; /* Do not modify this field. */ - int hasRBUFSIZ; /* Do not modify this field. */ - int hasRBUFSZ; /* Do not modify this field. */ - int hasSTORBUFSIZE; /* Do not modify this field. */ - int hasSBUFSIZ; /* Do not modify this field. */ - int hasSBUFSZ; /* Do not modify this field. */ - int hasBUFSIZE; /* Do not modify this field. */ - int mlsFeatures; /* Do not modify this field. */ - int STATfileParamWorks; /* Do not modify this field. */ - int NLSTfileParamWorks; /* Do not modify this field. */ - struct sockaddr_in servCtlAddr; /* Do not modify this field. */ - struct sockaddr_in servDataAddr; /* Do not modify this field. */ - struct sockaddr_in ourCtlAddr; /* Do not modify this field. */ - struct sockaddr_in ourDataAddr; /* Do not modify this field. */ - int netMode; /* Do not use or modify. */ - char *buf; /* Do not modify this field. */ - size_t bufSize; /* Do not modify this field. */ - FILE *cin; /* Do not use or modify. */ - FILE *cout; /* Do not use or modify. */ - int ctrlSocketR; /* You may use but not modify/close. */ - int ctrlSocketW; /* You may use but not modify/close. */ - int dataSocket; /* You may use but not modify/close. */ - int errNo; /* You may modify this if you want. */ - unsigned short ephemLo; /* You may modify this if you want. */ - unsigned short ephemHi; /* You may modify this if you want. */ - int cancelXfer; /* You may modify this. */ - longest_int bytesTransferred; /* Do not modify this field. */ - FTPProgressMeterProc progress; /* You may modify this if you want. */ - int useProgressMeter; /* Used internally. */ - int leavePass; /* You may modify this. */ - double sec; /* Do not modify this field. */ - double secLeft; /* Do not modify this field. */ - double kBytesPerSec; /* Do not modify this field. */ - double percentCompleted; /* Do not modify this field. */ - longest_int expectedSize; /* Do not modify this field. */ - time_t mdtm; /* Do not modify this field. */ - time_t nextProgressUpdate; /* Do not modify this field. */ - const char *rname; /* Do not modify this field. */ - const char *lname; /* Do not modify this field. */ - struct timeval t0; /* Do not modify this field. */ - int stalled; /* Do not modify this field. */ - int dataTimedOut; /* Do not modify this field. */ - int eofOkay; /* Do not use or modify. */ - char lastFTPCmdResultStr[128]; /* You may modify this if you want. */ - LineList lastFTPCmdResultLL; /* Use, but do not modify. */ - int lastFTPCmdResultNum; /* You may modify this if you want. */ - char firewallHost[64]; /* You may modify this. */ - char firewallUser[64]; /* You may modify this. */ - char firewallPass[64]; /* You may modify this. */ - unsigned int firewallPort; /* You may modify this. */ - int firewallType; /* You may modify this. */ - int require20; /* You may modify this. */ - int usingTAR; /* Use, but do not modify. */ - FTPConnectMessageProc onConnectMsgProc; /* You may modify this. */ - FTPRedialStatusProc redialStatusProc; /* You may modify this. */ - FTPPrintResponseProc printResponseProc; /* You may modify this. */ - FTPLoginMessageProc onLoginMsgProc; /* You may modify this. */ - size_t ctrlSocketRBufSize; /* You may modify this. */ - size_t ctrlSocketSBufSize; /* You may modify this. */ - size_t dataSocketRBufSize; /* You may modify this. */ - size_t dataSocketSBufSize; /* You may modify this. */ - int serverType; /* Do not use or modify. */ - int ietfCompatLevel; /* Do not use or modify. */ - int numDownloads; /* Do not use or modify. */ - int numUploads; /* Do not use or modify. */ - int numListings; /* Do not use or modify. */ - int doNotGetStartingWorkingDirectory; /* You may modify this. */ -#if USE_SIO - char srlBuf[768]; - SReadlineInfo ctrlSrl; /* Do not use or modify. */ -#endif - FTPGetPassphraseProc passphraseProc; /* You may modify this. */ - int iUser; /* Scratch integer field you can use. */ - void *pUser; /* Scratch pointer field you can use. */ - longest_int llUser; /* Scratch long long field you can use. */ - const char *asciiFilenameExtensions; /* You may assign this. */ - int reserved[32]; /* Do not use or modify. */ -} FTPConnectionInfo; - -typedef struct FileInfo *FileInfoPtr, **FileInfoVec; -typedef struct FileInfo { - FileInfoPtr prev, next; - char *relname; - char *rname; - char *rlinkto; - char *lname; - char *plug; /* permissions, links, user, group */ - int type; - time_t mdtm; - longest_int size; - size_t relnameLen; -} FileInfo; - -typedef struct FileInfoList { - FileInfoPtr first, last; - FileInfoVec vec; - size_t maxFileLen; - size_t maxPlugLen; - int nFileInfos; - int sortKey; - int sortOrder; -} FileInfoList, *FileInfoListPtr; - -/* Used with UnMlsT() */ -typedef struct MLstItem{ - char fname[512]; - char linkto[512]; - int ftype; - longest_int fsize; - time_t ftime; - int mode; /* "UNIX.mode" fact */ - int uid; /* "UNIX.uid" fact */ - int gid; /* "UNIX.gid" fact */ - char perm[16]; /* "perm" fact */ - char owner[16]; /* "UNIX.owner" fact */ - char group[16]; /* "UNIX.group" fact */ -} MLstItem, *MLstItemPtr; - -/* Messages we pass to the current progress meter function. */ -#define kPrInitMsg 1 -#define kPrUpdateMsg 2 -#define kPrEndMsg 3 - -/* Parameter for OpenDataConnection() */ -#define kSendPortMode 0 -#define kPassiveMode 1 -#define kFallBackToSendPortMode 2 - -/* Parameter for AcceptDataConnection() */ -#define kAcceptForWriting 00100 -#define kAcceptForReading 00101 -#define kNetWriting kAcceptForWriting -#define kNetReading kAcceptForReading - -/* Value for printMode field of Response structure. - * Generally, don't worry about this. - */ -#define kResponseNoPrint 00001 -#define kResponseNoSave 00002 -#define kResponseNoProc 00002 - -#define kDefaultFTPPort 21 - -#define kDefaultFTPBufSize 32768 - -#ifdef USE_SIO -/* This version of the library can handle timeouts without - * a user-installed signal handler. - */ -#define kDefaultXferTimeout 600 -#define kDefaultConnTimeout 30 -#define kDefaultCtrlTimeout 135 -#define kDefaultAbortTimeout 10 -#else -/* The library doesn't use timeouts by default because it would - * break apps that don't have a SIGALRM handler. - */ -#define kDefaultXferTimeout (0) /* No timeout. */ -#define kDefaultConnTimeout (0) /* No timeout. */ -#define kDefaultCtrlTimeout (0) /* No timeout. */ -#define kDefaultAbortTimeout 10 -#endif - - -/* Suggested timeout values, in seconds, if you use timeouts. */ -#define kSuggestedDefaultXferTimeout (0) /* No timeout on data blocks. */ -#define kSuggestedDefaultConnTimeout 30 -#define kSuggestedDefaultCtrlTimeout 135 /* 2*MSL, + slop */ -#define kSuggestedAbortTimeout 10 - -#define kDefaultMaxDials 3 -#define kDefaultRedialDelay 20 /* seconds */ - -#define kDefaultDataPortMode kSendPortMode - -#define kRedialStatusDialing 0 -#define kRedialStatusSleeping 1 - -#ifndef INADDR_NONE -# define INADDR_NONE (0xffffffff) /* should have it. */ -#endif - -#define kTypeAscii 'A' -#define kTypeBinary 'I' -#define kTypeEbcdic 'E' - -#define kGlobChars "[*?" -#define GLOBCHARSINSTR(a) (strpbrk(a, kGlobChars) != NULL) - -#define kGlobYes 1 -#define kGlobNo 0 -#define kRecursiveYes 1 -#define kRecursiveNo 0 -#define kAppendYes 1 -#define kAppendNo 0 -#define kResumeYes 1 -#define kResumeNo 0 -#define kDeleteYes 1 -#define kDeleteNo 0 -#define kTarYes 1 -#define kTarNo 0 - -#define UNIMPLEMENTED_CMD(a) ((a == 500) || (a == 502) || (a == 504)) - -/* Possible values returned by GetDateAndTime. */ -#define kSizeUnknown ((longest_int) (-1)) -#define kModTimeUnknown ((time_t) (-1)) - -#define kCommandAvailabilityUnknown (-1) -#define kCommandAvailable 1 -#define kCommandNotAvailable 0 - -/* Values returned by FTPDecodeURL. */ -#define kNotURL (-1) -#define kMalformedURL (-2) - -/* Values for the firewall/proxy open. */ -#define kFirewallNotInUse 0 -#define kFirewallUserAtSite 1 -#define kFirewallLoginThenUserAtSite 2 -#define kFirewallSiteSite 3 -#define kFirewallOpenSite 4 -#define kFirewallUserAtUserPassAtPass 5 -#define kFirewallFwuAtSiteFwpUserPass 6 -#define kFirewallUserAtSiteFwuPassFwp 7 -#define kFirewallLastType kFirewallUserAtSiteFwuPassFwp - -/* For MLSD, MLST, and STAT. */ -#define kPreferredMlsOpts (kMlsOptType | kMlsOptSize | kMlsOptModify | kMlsOptUNIXmode | kMlsOptUNIXowner | kMlsOptUNIXgroup | kMlsOptUNIXuid | kMlsOptUNIXgid | kMlsOptPerm) - -#define kMlsOptType 00001 -#define kMlsOptSize 00002 -#define kMlsOptModify 00004 -#define kMlsOptUNIXmode 00010 -#define kMlsOptUNIXowner 00020 -#define kMlsOptUNIXgroup 00040 -#define kMlsOptPerm 00100 -#define kMlsOptUNIXuid 00200 -#define kMlsOptUNIXgid 00400 -#define kMlsOptUnique 01000 - -/* For FTPFtw(). */ -#define kFtwFile 0 -#define kFtwDir 1 - -/* For FTPChdir3(). */ -#define kChdirOnly 00000 -#define kChdirAndMkdir 00001 -#define kChdirAndGetCWD 00002 -#define kChdirOneSubdirAtATime 00004 - -/* Return codes for custom ConfirmResumeDownloadProcs. */ -#define kConfirmResumeProcNotUsed 0 -#define kConfirmResumeProcSaidSkip 1 -#define kConfirmResumeProcSaidResume 2 -#define kConfirmResumeProcSaidOverwrite 3 -#define kConfirmResumeProcSaidAppend 4 -#define kConfirmResumeProcSaidBestGuess 5 -#define kConfirmResumeProcSaidCancel 6 - -typedef int (*ConfirmResumeDownloadProc)( - const char *volatile *localpath, - volatile longest_int localsize, - volatile time_t localmtime, - const char *volatile remotepath, - volatile longest_int remotesize, - volatile time_t remotetime, - volatile longest_int *volatile startPoint -); - -typedef int (*ConfirmResumeUploadProc)( - const char *volatile localpath, - volatile longest_int localsize, - volatile time_t localmtime, - const char *volatile *remotepath, - volatile longest_int remotesize, - volatile time_t remotetime, - volatile longest_int *volatile startPoint -); - -#define NoConfirmResumeDownloadProc ((ConfirmResumeDownloadProc) 0) -#define NoConfirmResumeUploadProc ((ConfirmResumeUploadProc) 0) -#define NoGetPassphraseProc ((FTPGetPassphraseProc) 0) - -/* Types of FTP server software. - * - * We try to recognize a few of these, for information - * only, and occasional uses to determine some additional - * or broken functionality. - */ -#define kServerTypeUnknown 0 -#define kServerTypeWuFTPd 1 -#define kServerTypeNcFTPd 2 -#define kServerTypeProFTPD 3 -#define kServerTypeMicrosoftFTP 4 -#define kServerTypeWarFTPd 5 -#define kServerTypeServ_U 6 -#define kServerTypeWFTPD 7 -#define kServerTypeVFTPD 8 -#define kServerTypeFTP_Max 9 -#define kServerTypeRoxen 10 -#define kServerTypeNetWareFTP 11 -#define kServerTypeWS_FTP 12 - - -#if !defined(WIN32) && !defined(_WINDOWS) && !defined(closesocket) -# define closesocket close -#endif - -#if !defined(WIN32) && !defined(_WINDOWS) && !defined(ioctlsocket) -# define ioctlsocket ioctl -#endif - -#if defined(WIN32) || defined(_WINDOWS) -# define LOCAL_PATH_DELIM '\\' -# define LOCAL_PATH_DELIM_STR "\\" -# define LOCAL_PATH_ALTDELIM '/' -# define IsLocalPathDelim(c) ((c == LOCAL_PATH_DELIM) || (c == LOCAL_PATH_ALTDELIM)) -# define UNC_PATH_PREFIX "\\\\" -# define IsUNCPrefixed(s) (IsLocalPathDelim(s[0]) && IsLocalPathDelim(s[1])) -#else -# define LOCAL_PATH_DELIM '/' -# define LOCAL_PATH_DELIM_STR "/" -# define StrFindLocalPathDelim(a) strchr(a, LOCAL_PATH_DELIM) -# define StrRFindLocalPathDelim(a) strrchr(a, LOCAL_PATH_DELIM) -# define StrRemoveTrailingLocalPathDelim StrRemoveTrailingSlashes -# define IsLocalPathDelim(c) (c == LOCAL_PATH_DELIM) -# define TVFSPathToLocalPath(s) -# define LocalPathToTVFSPath(s) -#endif - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#ifndef _libncftp_ftp_c_ -extern char gLibNcFTPVersion[64]; -#endif - -#ifndef _libncftp_errno_c_ -extern int gLibNcFTP_Uses_Me_To_Quiet_Variable_Unused_Warnings; -#endif - -#if (defined(__GNUC__)) && (__GNUC__ >= 2) -# ifndef UNUSED -# define UNUSED(a) a __attribute__ ((unused)) -# endif -# define LIBNCFTP_USE_VAR(a) -#else -# define LIBNCFTP_USE_VAR(a) gLibNcFTP_Uses_Me_To_Quiet_Variable_Unused_Warnings = (a == 0) -# ifndef UNUSED -# define UNUSED(a) a -# endif -#endif - -/* Public routines */ -void FTPAbortDataTransfer(const FTPCIPtr cip); -int FTPChdir(const FTPCIPtr cip, const char *const cdCwd); -int FTPChdirAndGetCWD(const FTPCIPtr cip, const char *const cdCwd, char *const newCwd, const size_t newCwdSize); -int FTPChdir3(FTPCIPtr cip, const char *const cdCwd, char *const newCwd, const size_t newCwdSize, int flags); -int FTPChmod(const FTPCIPtr cip, const char *const pattern, const char *const mode, const int doGlob); -int FTPCloseHost(const FTPCIPtr cip); -int FTPCmd(const FTPCIPtr cip, const char *const cmdspec, ...) -#if (defined(__GNUC__)) && (__GNUC__ >= 2) -__attribute__ ((format (printf, 2, 3))) -#endif -; -int FTPDecodeURL(const FTPCIPtr cip, char *const url, LineListPtr cdlist, char *const fn, const size_t fnsize, int *const xtype, int *const wantnlst); -int FTPDelete(const FTPCIPtr cip, const char *const pattern, const int recurse, const int doGlob); -int FTPFileExists(const FTPCIPtr cip, const char *const file); -int FTPFileModificationTime(const FTPCIPtr cip, const char *const file, time_t *const mdtm); -int FTPFileSize(const FTPCIPtr cip, const char *const file, longest_int *const size, const int type); -int FTPFileSizeAndModificationTime(const FTPCIPtr cip, const char *const file, longest_int *const size, const int type, time_t *const mdtm); -int FTPFileType(const FTPCIPtr cip, const char *const file, int *const ftype); -int FTPGetCWD(const FTPCIPtr cip, char *const newCwd, const size_t newCwdSize); -int FTPGetFiles3(const FTPCIPtr cip, const char *pattern, const char *const dstdir, const int recurse, int doGlob, const int xtype, const int resumeflag, int appendflag, const int deleteflag, const int tarflag, const ConfirmResumeDownloadProc resumeProc, int reserved); -int FTPGetOneFile3(const FTPCIPtr cip, const char *const file, const char *const dstfile, const int xtype, const int fdtouse, const int resumeflag, const int appendflag, const int deleteflag, const ConfirmResumeDownloadProc resumeProc, int reserved); -int FTPInitConnectionInfo(const FTPLIPtr lip, const FTPCIPtr cip, size_t bufsize); -int FTPInitLibrary(const FTPLIPtr lip); -int FTPIsDir(const FTPCIPtr cip, const char *const dir); -int FTPIsRegularFile(const FTPCIPtr cip, const char *const file); -int FTPList(const FTPCIPtr cip, const int outfd, const int longMode, const char *const lsflag); -int FTPListToMemory(const FTPCIPtr cip, const char *const pattern, const LineListPtr llines, const char *const lsflags); -int FTPLocalGlob(FTPCIPtr cip, LineListPtr fileList, const char *pattern, int doGlob); -int FTPLoginHost(const FTPCIPtr cip); -int FTPMkdir(const FTPCIPtr cip, const char *const newDir, const int recurse); -int FTPMkdir2(const FTPCIPtr cip, const char *const newDir, const int recurse, const char *const curDir); -int FTPOpenHost(const FTPCIPtr cip); -int FTPOpenHostNoLogin(const FTPCIPtr cip); -void FTPPerror(const FTPCIPtr cip, const int err, const int eerr, const char *const s1, const char *const s2); -int FTPPutOneFile3(const FTPCIPtr cip, const char *const file, const char *const dstfile, const int xtype, const int fdtouse, const int appendflag, const char *const tmppfx, const char *const tmpsfx, const int resumeflag, const int deleteflag, const ConfirmResumeUploadProc resumeProc, int reserved); -int FTPPutFiles3(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob, const int xtype, int appendflag, const char *const tmppfx, const char *const tmpsfx, const int resumeflag, const int deleteflag, const ConfirmResumeUploadProc resumeProc, int reserved); -int FTPRemoteGlob(FTPCIPtr cip, LineListPtr fileList, const char *pattern, int doGlob); -int FTPRename(const FTPCIPtr cip, const char *const oldname, const char *const newname); -int FTPRmdir(const FTPCIPtr cip, const char *const pattern, const int recurse, const int doGlob); -void FTPShutdownHost(const FTPCIPtr cip); -const char *FTPStrError(int e); -int FTPSymlink(const FTPCIPtr cip, const char *const lfrom, const char *const lto); -int FTPUmask(const FTPCIPtr cip, const char *const umsk); -int FTPUtime(const FTPCIPtr cip, const char *const file, time_t actime, time_t modtime, time_t crtime); - -/* LineList routines */ -int CopyLineList(LineListPtr, LineListPtr); -void DisposeLineListContents(LineListPtr); -void InitLineList(LineListPtr); -LinePtr RemoveLine(LineListPtr, LinePtr); -LinePtr AddLine(LineListPtr, const char *); - -/* Other routines that might be useful. */ -char *StrDup(const char *); -char *FGets(char *, size_t, FILE *); -void GetHomeDir(char *, size_t); -void GetUsrName(char *, size_t); -void Scramble(unsigned char *dst, size_t dsize, unsigned char *src, char *key); -time_t UnMDTMDate(char *); -int MkDirs(const char *const, int mode1); -char *GetPass(const char *const prompt); -int FilenameExtensionIndicatesASCII(const char *const pathName, const char *const extnList); -void StrRemoveTrailingSlashes(char *dst); -#if defined(WIN32) || defined(_WINDOWS) -char *StrFindLocalPathDelim(const char *src); -char *StrRFindLocalPathDelim(const char *src); -void StrRemoveTrailingLocalPathDelim(char *dst); -void TVFSPathToLocalPath(char *dst); -void LocalPathToTVFSPath(char *dst); -int gettimeofday(struct timeval *const tp, void *junk); -void WinSleep(unsigned int seconds); -#endif - -#ifdef HAVE_SIGACTION -void (*NcSignal(int signum, void (*handler)(int)))(int); -#elif !defined(NcSignal) -# define NcSignal signal -#endif - -/* Obselete routines. */ -int FTPGetOneFile(const FTPCIPtr cip, const char *const file, const char *const dstfile); -int FTPGetOneFile2(const FTPCIPtr cip, const char *const file, const char *const dstfile, const int xtype, const int fdtouse, const int resumeflag, const int appendflag); -int FTPGetFiles(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob); -int FTPGetFiles2(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob, const int xtype, const int resumeflag, const int appendflag); -int FTPGetOneFileAscii(const FTPCIPtr cip, const char *const file, const char *const dstfile); -int FTPGetFilesAscii(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob); -int FTPPutOneFile(const FTPCIPtr cip, const char *const file, const char *const dstfile); -int FTPPutOneFile2(const FTPCIPtr cip, const char *const file, const char *const dstfile, const int xtype, const int fdtouse, const int appendflag, const char *const tmppfx, const char *const tmpsfx); -int FTPPutFiles(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob); -int FTPPutFiles2(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob, const int xtype, const int appendflag, const char *const tmppfx, const char *const tmpsfx); -int FTPPutOneFileAscii(const FTPCIPtr cip, const char *const file, const char *const dstfile); -int FTPPutFilesAscii(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob); - -/* Private routines, or stuff for testing */ -char *FTPGetLocalCWD(char *buf, size_t size); -int FTPQueryFeatures(const FTPCIPtr); -int FTPMListOneFile(const FTPCIPtr cip, const char *const file, const MLstItemPtr mlip); -void FTPInitializeOurHostName(const FTPLIPtr); -void FTPInitializeAnonPassword(const FTPLIPtr); -int FTPListToMemory2(const FTPCIPtr cip, const char *const pattern, const LineListPtr llines, const char *const lsflags, const int blanklines, int *const tryMLSD); -void FTPInitIOTimer(const FTPCIPtr); -int FTPStartDataCmd(const FTPCIPtr, int, int, longest_int, const char *,...) -#if (defined(__GNUC__)) && (__GNUC__ >= 2) -__attribute__ ((format (printf, 5, 6))) -#endif -; -void FTPStartIOTimer(const FTPCIPtr); -void FTPStopIOTimer(const FTPCIPtr); -void FTPUpdateIOTimer(const FTPCIPtr); -int FTPSetTransferType(const FTPCIPtr, int); -int FTPEndDataCmd(const FTPCIPtr, int); -int FTPRemoteHelp(const FTPCIPtr, const char *const, const LineListPtr); -int FTPCmdNoResponse(const FTPCIPtr, const char *const cmdspec,...) -#if (defined(__GNUC__)) && (__GNUC__ >= 2) -__attribute__ ((format (printf, 2, 3))) -#endif -; -int WaitResponse(const FTPCIPtr, unsigned int); -int FTPLocalRecursiveFileList(FTPCIPtr, LineListPtr, FileInfoListPtr); -int FTPLocalRecursiveFileList2(FTPCIPtr cip, LineListPtr fileList, FileInfoListPtr files, int erelative); -int FTPRemoteRecursiveFileList(FTPCIPtr, LineListPtr, FileInfoListPtr); -int FTPRemoteRecursiveFileList1(FTPCIPtr, char *const, FileInfoListPtr); -int FTPRebuildConnectionInfo(const FTPLIPtr lip, const FTPCIPtr cip); -int FTPFileExistsStat(const FTPCIPtr cip, const char *const file); -int FTPFileExistsNlst(const FTPCIPtr cip, const char *const file); -int FTPFileExists2(const FTPCIPtr cip, const char *const file, const int tryMDTM, const int trySIZE, const int tryMLST, const int trySTAT, const int tryNLST); -int FTPFtw(const FTPCIPtr cip, const char *const dir, FTPFtwProc proc, int maxdepth); -int BufferGets(char *, size_t, int, char *, char **, char **, size_t); -void DisposeFileInfoListContents(FileInfoListPtr); -void InitFileInfoList(FileInfoListPtr); -void InitFileInfo(FileInfoPtr); -FileInfoPtr RemoveFileInfo(FileInfoListPtr, FileInfoPtr); -FileInfoPtr AddFileInfo(FileInfoListPtr, FileInfoPtr); -void SortFileInfoList(FileInfoListPtr, int, int); -void VectorizeFileInfoList(FileInfoListPtr); -void UnvectorizeFileInfoList(FileInfoListPtr); -int ComputeRNames(FileInfoListPtr, const char *, int, int); -int ComputeLNames(FileInfoListPtr, const char *, const char *, int); -int ConcatFileInfoList(FileInfoListPtr, FileInfoListPtr); -int ConcatFileToFileInfoList(FileInfoListPtr, char *); -int LineListToFileInfoList(LineListPtr, FileInfoListPtr); -int LineToFileInfoList(LinePtr, FileInfoListPtr); -void URLCopyToken(char *, size_t, const char *, size_t); -int UnMlsT(const char *const, const MLstItemPtr); -int UnMlsD(FileInfoListPtr, LineListPtr); -int UnLslR(FileInfoListPtr, LineListPtr, int); -void TraceResponse(const FTPCIPtr, ResponsePtr); -void PrintResponse(const FTPCIPtr, LineListPtr); -void DoneWithResponse(const FTPCIPtr, ResponsePtr); -ResponsePtr InitResponse(void); -void ReInitResponse(const FTPCIPtr, ResponsePtr); -int GetTelnetString(const FTPCIPtr, char *, size_t, FILE *, FILE *); -int GetResponse(const FTPCIPtr, ResponsePtr); -int RCmd(const FTPCIPtr, ResponsePtr, const char *, ...) -#if (defined(__GNUC__)) && (__GNUC__ >= 2) -__attribute__ ((format (printf, 3, 4))) -#endif -; - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _ncftp_h_ */ diff --git a/rosapps/applications/net/ncftp/libncftp/ncftp_errno.h b/rosapps/applications/net/ncftp/libncftp/ncftp_errno.h deleted file mode 100644 index 21ab09d1111..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/ncftp_errno.h +++ /dev/null @@ -1,113 +0,0 @@ -/* ncftp_errno.h - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#ifndef kNoErr -# define kNoErr 0 -#endif - -#ifndef kErrGeneric -# define kErrGeneric (-1) -#endif - -#define kErrFirst (100) -#define kErrGetHostNameFailed (-100) -#define kErrHostWithoutDomain (-101) -#define kErrSetLinger (-102) -#define kErrSetTypeOfService (-103) -#define kErrSetOutOfBandInline (-104) -#define kErrHostUnknown (-105) -#define kErrNewStreamSocket (-106) -#define kErrDupSocket (-107) -#define kErrFdopenR (-108) -#define kErrFdopenW (-109) -#define kErrGetSockName (-110) -#define kErrBindDataSocket (-111) -#define kErrListenDataSocket (-112) -#define kErrPassiveModeFailed (-113) -#define kErrServerSentBogusPortNumber (-114) -#define kErrConnectDataSocket (-115) -#define kErrAcceptDataSocket (-116) -#define kErrSetStartPoint (-117) -#define kErrConnectMiscErr (-118) -#define kErrConnectRetryableErr (-119) -#define kErrConnectRefused (-120) -#define kErrBadTransferType (-121) -#define kErrInvalidDirParam (-122) -#define kErrMallocFailed (-123) -#define kErrPWDFailed (-124) -#define kErrCWDFailed (-125) -#define kErrRMDFailed (-126) -#define kErrBadLineList (-127) -#define kErrUnimplementedOption (-128) -#define kErrUnimplementedFunction (-129) -#define kErrLISTFailed (-130) -#define kErrRETRFailed (-131) -#define kErrSTORFailed (-132) -#define kErrWriteFailed (-133) -#define kErrReadFailed (-134) -#define kErrSocketWriteFailed (-135) -#define kErrSocketReadFailed (-136) -#define kErrOpenFailed (-137) -#define kErrBadMagic (-138) -#define kErrBadParameter (-139) -#define kErrMKDFailed (-140) -#define kErrCannotGoToPrevDir (-141) -#define kErrChmodFailed (-142) -#define kErrUmaskFailed (-143) -#define kErrDELEFailed (-144) -#define kErrSIZEFailed (-145) -#define kErrMDTMFailed (-146) -#define kErrTYPEFailed (-147) -#define kErrSIZENotAvailable (-148) -#define kErrMDTMNotAvailable (-149) -#define kErrRenameFailed (-150) -#define kErrGlobFailed (-151) -#define kErrSetKeepAlive (-152) -#define kErrHostDisconnectedDuringLogin (-153) -#define kErrBadRemoteUser (-154) -#define kErrBadRemoteUserOrPassword (-155) -#define kErrLoginFailed (-156) -#define kErrInvalidReplyFromServer (-157) -#define kErrRemoteHostClosedConnection (-158) -#define kErrNotConnected (-159) -#define kErrCouldNotStartDataTransfer (-160) -#define kErrDataTransferFailed (-161) -#define kErrPORTFailed (-162) -#define kErrPASVFailed (-163) -#define kErrUTIMEFailed (-164) -#define kErrUTIMENotAvailable (-165) -#define kErrHELPFailed (-166) -#define kErrLocalDeleteFailed (-167) -#define kErrLseekFailed (-168) -#define kErrDataTransferAborted (-169) -#define kErrSYMLINKFailed (-170) -#define kErrSYMLINKNotAvailable (-171) -#define kErrGlobNoMatch (-172) -#define kErrFEATNotAvailable (-173) -#define kErrNoValidFilesSpecified (-174) -#define kErrNoBuf (-175) -#define kErrLocalFileNewer (-176) -#define kErrRemoteFileNewer (-177) -#define kErrLocalSameAsRemote (-178) -#define kErrMLSDFailed (-179) -#define kErrMLSTFailed (-180) -#define kErrInvalidMLSTResponse (-181) -#define kErrMLSTNotAvailable (-182) -#define kErrMLSDNotAvailable (-183) -#define kErrSTATFailed (-184) -#define kErrSTATwithFileNotAvailable (-185) -#define kErrNLSTFailed (-186) -#define kErrNLSTwithFileNotAvailable (-187) -#define kErrNoSuchFileOrDirectory (-188) -#define kErrCantTellIfFileExists (-189) -#define kErrFileExistsButCannotDetermineType (-190) -#define kErrNotADirectory (-191) -#define kErrRecursionLimitReached (-192) -#define kErrControlTimedOut (-193) -#define kErrDataTimedOut (-194) -#define kErrUserCanceled (-195) -#define kErrLast (195) diff --git a/rosapps/applications/net/ncftp/libncftp/open.c b/rosapps/applications/net/ncftp/libncftp/open.c deleted file mode 100644 index f3854edd5fc..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/open.c +++ /dev/null @@ -1,1137 +0,0 @@ -/* open.c - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#include "syshdrs.h" - -static void -FTPDeallocateHost(const FTPCIPtr cip) -{ - /* Requires the cip->bufSize field set, - * and the cip->buf set if the - * buffer is allocated. - */ - if (cip->buf != NULL) { - (void) memset(cip->buf, 0, cip->bufSize); - free(cip->buf); - cip->buf = NULL; - } - - if (cip->startingWorkingDirectory != NULL) { - free(cip->startingWorkingDirectory); - cip->startingWorkingDirectory = NULL; - } - -#if USE_SIO - DisposeSReadlineInfo(&cip->ctrlSrl); -#endif - DisposeLineListContents(&cip->lastFTPCmdResultLL); -} /* FTPDeallocateHost */ - - - - - -static int -FTPAllocateHost(const FTPCIPtr cip) -{ - char *buf; - - /* Requires the cip->bufSize field set, - * and the cip->buf cleared if the - * buffer is not allocated. - */ - if (cip->buf == NULL) { - buf = (char *) calloc((size_t) 1, cip->bufSize); - if (buf == NULL) { - Error(cip, kDontPerror, "Malloc failed.\n"); - cip->errNo = kErrMallocFailed; - return (kErrMallocFailed); - } - cip->buf = buf; - } - return (kNoErr); -} /* FTPAllocateHost */ - - - - -void -FTPInitializeOurHostName(const FTPLIPtr lip) -{ - if (lip == NULL) - return; - if (strcmp(lip->magic, kLibraryMagic)) - return; - - if (lip->htried == 0) { - (void) memset(lip->ourHostName, 0, sizeof(lip->ourHostName)); - lip->hresult = GetOurHostName(lip->ourHostName, sizeof(lip->ourHostName)); - } - lip->htried++; -} /* FTPInitializeOurHostName */ - - - - -void -FTPInitializeAnonPassword(const FTPLIPtr lip) -{ - if (lip == NULL) - return; - if (strcmp(lip->magic, kLibraryMagic)) - return; - - FTPInitializeOurHostName(lip); - - if (lip->defaultAnonPassword[0] == '\0') { -#ifdef SPAM_PROBLEM_HAS_BEEN_SOLVED_FOREVER - GetUsrName(lip->defaultAnonPassword, sizeof(lip->defaultAnonPassword)); - (void) STRNCAT(lip->defaultAnonPassword, "@"); - - /* Default to the "user@" notation - * supported by NcFTPd and wu-ftpd. - */ - if (lip->htried > 0) - (void) STRNCAT(lip->defaultAnonPassword, lip->ourHostName); -#else - (void) STRNCPY(lip->defaultAnonPassword, "NcFTP@"); -#endif - } -} /* FTPInitializeAnonPassword */ - - - - -int -FTPLoginHost(const FTPCIPtr cip) -{ - ResponsePtr rp; - int result = kErrLoginFailed; - int anonLogin; - int sentpass = 0; - int fwloggedin; - int firstTime; - char cwd[512]; - - if (cip == NULL) - return (kErrBadParameter); - if ((cip->firewallType < kFirewallNotInUse) || (cip->firewallType > kFirewallLastType)) - return (kErrBadParameter); - - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - anonLogin = 0; - if (cip->user[0] == '\0') - (void) STRNCPY(cip->user, "anonymous"); - if ((strcmp(cip->user, "anonymous") == 0) || (strcmp(cip->user, "ftp") == 0)) { - anonLogin = 1; - /* Try to get the email address if you didn't specify - * a password when the user is anonymous. - */ - if (cip->pass[0] == '\0') { - FTPInitializeAnonPassword(cip->lip); - (void) STRNCPY(cip->pass, cip->lip->defaultAnonPassword); - } - } - - rp = InitResponse(); - if (rp == NULL) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - goto done2; - } - - for (firstTime = 1, fwloggedin = 0; ; ) { - /* Here's a mini finite-automaton for the login process. - * - * Originally, the FTP protocol was designed to be entirely - * implementable from a FA. It could be done, but I don't think - * it's something an interactive process could be the most - * effective with. - */ - - if (firstTime != 0) { - rp->code = 220; - firstTime = 0; - } else if (result < 0) { - goto done; - } - - switch (rp->code) { - case 220: /* Welcome, ready for new user. */ - if ((cip->firewallType == kFirewallNotInUse) || (fwloggedin != 0)) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "USER %s", cip->user); - } else if (cip->firewallType == kFirewallUserAtSite) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "USER %s@%s", cip->user, cip->host); - } else if (cip->firewallType == kFirewallUserAtUserPassAtPass) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "USER %s@%s@%s", cip->user, cip->firewallUser, cip->host); - } else if (cip->firewallType == kFirewallUserAtSiteFwuPassFwp) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "USER %s@%s %s", cip->user, cip->host, cip->firewallUser); - } else if (cip->firewallType == kFirewallFwuAtSiteFwpUserPass) { - /* only reached when !fwloggedin */ - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "USER %s@%s", cip->firewallUser, cip->host); - } else if (cip->firewallType > kFirewallNotInUse) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "USER %s", cip->firewallUser); - } else { - goto unknown; - } - break; - - case 230: /* 230 User logged in, proceed. */ - case 231: /* User name accepted. */ - case 202: /* Command not implemented, superfluous at this site. */ - if ((cip->firewallType == kFirewallNotInUse) || (fwloggedin != 0)) - goto okay; - - /* Now logged in to the firewall. */ - fwloggedin++; - - if (cip->firewallType == kFirewallLoginThenUserAtSite) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "USER %s@%s", cip->user, cip->host); - } else if (cip->firewallType == kFirewallUserAtUserPassAtPass) { - goto okay; - } else if (cip->firewallType == kFirewallOpenSite) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "OPEN %s", cip->host); - } else if (cip->firewallType == kFirewallSiteSite) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "SITE %s", cip->host); - } else if (cip->firewallType == kFirewallFwuAtSiteFwpUserPass) { - /* only reached when !fwloggedin */ - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "USER %s", cip->user); - } else /* kFirewallUserAtSite */ { - goto okay; - } - break; - - case 421: /* 421 Service not available, closing control connection. */ - result = kErrHostDisconnectedDuringLogin; - goto done; - - case 331: /* 331 User name okay, need password. */ - if ((cip->firewallType == kFirewallNotInUse) || (fwloggedin != 0)) { - if ((cip->pass[0] == '\0') && (cip->passphraseProc != NoGetPassphraseProc)) - (*cip->passphraseProc)(cip, &rp->msg, cip->pass, sizeof(cip->pass)); - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "PASS %s", cip->pass); - } else if (cip->firewallType == kFirewallUserAtSite) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "PASS %s", cip->pass); - } else if (cip->firewallType == kFirewallUserAtUserPassAtPass) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "PASS %s@%s", cip->pass, cip->firewallPass); - } else if (cip->firewallType == kFirewallUserAtSiteFwuPassFwp) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "PASS %s", cip->pass); - } else if (cip->firewallType == kFirewallFwuAtSiteFwpUserPass) { - /* only reached when !fwloggedin */ - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "PASS %s", cip->firewallPass); - } else if (cip->firewallType > kFirewallNotInUse) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "PASS %s", cip->firewallPass); - } else { - goto unknown; - } - sentpass++; - break; - - case 332: /* 332 Need account for login. */ - case 532: /* 532 Need account for storing files. */ - if ((cip->firewallType == kFirewallNotInUse) || (fwloggedin != 0)) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "ACCT %s", cip->acct); - } else if (cip->firewallType == kFirewallUserAtSiteFwuPassFwp) { - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "ACCT %s", cip->firewallPass); - } else { - /* ACCT not supported on firewall. */ - goto unknown; - } - break; - - case 530: /* Not logged in. */ - result = (sentpass != 0) ? kErrBadRemoteUserOrPassword : kErrBadRemoteUser; - goto done; - - case 501: /* Syntax error in parameters or arguments. */ - case 503: /* Bad sequence of commands. */ - case 550: /* Can't set guest privileges. */ - goto done; - - default: - unknown: - if (rp->msg.first == NULL) { - Error(cip, kDontPerror, "Lost connection during login.\n"); - } else { - Error(cip, kDontPerror, "Unexpected response: %s\n", - rp->msg.first->line - ); - } - goto done; - } - } - -okay: - /* Do the application's connect message callback, if present. */ - if (cip->onLoginMsgProc != 0) - (*cip->onLoginMsgProc)(cip, rp); - DoneWithResponse(cip, rp); - result = 0; - cip->loggedIn = 1; - - /* Make a note of what our root directory is. - * This is often different from "/" when not - * logged in anonymously. - */ - if (cip->startingWorkingDirectory != NULL) { - free(cip->startingWorkingDirectory); - cip->startingWorkingDirectory = NULL; - } - if ((cip->doNotGetStartingWorkingDirectory == 0) && - (FTPGetCWD(cip, cwd, sizeof(cwd)) == kNoErr)) - { - cip->startingWorkingDirectory = StrDup(cwd); - } - - /* When a new site is opened, ASCII mode is assumed (by protocol). */ - cip->curTransferType = 'A'; - PrintF(cip, "Logged in to %s as %s.\n", cip->host, cip->user); - - /* Don't leave cleartext password in memory. */ - if ((anonLogin == 0) && (cip->leavePass == 0)) - (void) memset(cip->pass, '*', strlen(cip->pass)); - - if (result < 0) - cip->errNo = result; - return result; - -done: - DoneWithResponse(cip, rp); - -done2: - /* Don't leave cleartext password in memory. */ - if ((anonLogin == 0) && (cip->leavePass == 0)) - (void) memset(cip->pass, '*', strlen(cip->pass)); - if (result < 0) - cip->errNo = result; - return result; -} /* FTPLoginHost */ - - - - -static void -FTPExamineMlstFeatures(const FTPCIPtr cip, const char *features) -{ - char buf[256], *feat; - int flags; - - flags = 0; - STRNCPY(buf, features); - feat = strtok(buf, ";*"); - while (feat != NULL) { - if (ISTRNEQ(feat, "OS.", 3)) - feat += 3; - if (ISTREQ(feat, "type")) { - flags |= kMlsOptType; - } else if (ISTREQ(feat, "size")) { - flags |= kMlsOptSize; - } else if (ISTREQ(feat, "modify")) { - flags |= kMlsOptModify; - } else if (ISTREQ(feat, "UNIX.mode")) { - flags |= kMlsOptUNIXmode; - } else if (ISTREQ(feat, "UNIX.owner")) { - flags |= kMlsOptUNIXowner; - } else if (ISTREQ(feat, "UNIX.group")) { - flags |= kMlsOptUNIXgroup; - } else if (ISTREQ(feat, "perm")) { - flags |= kMlsOptPerm; - } else if (ISTREQ(feat, "UNIX.uid")) { - flags |= kMlsOptUNIXuid; - } else if (ISTREQ(feat, "UNIX.gid")) { - flags |= kMlsOptUNIXgid; - } else if (ISTREQ(feat, "UNIX.gid")) { - flags |= kMlsOptUnique; - } - feat = strtok(NULL, ";*"); - } - - cip->mlsFeatures = flags; -} /* FTPExamineMlstFeatures */ - - - - -int -FTPQueryFeatures(const FTPCIPtr cip) -{ - ResponsePtr rp; - int result; - LinePtr lp; - char *cp, *p; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (cip->serverType == kServerTypeNetWareFTP) { - /* NetWare 5.00 server freaks out when - * you give it a command it doesn't - * recognize, so cheat here and return. - */ - cip->hasPASV = kCommandAvailable; - cip->hasSIZE = kCommandNotAvailable; - cip->hasMDTM = kCommandNotAvailable; - cip->hasREST = kCommandNotAvailable; - cip->NLSTfileParamWorks = kCommandAvailable; - cip->hasUTIME = kCommandNotAvailable; - cip->hasCLNT = kCommandNotAvailable; - cip->hasMLST = kCommandNotAvailable; - cip->hasMLSD = kCommandNotAvailable; - return (kNoErr); - } - - rp = InitResponse(); - if (rp == NULL) { - cip->errNo = kErrMallocFailed; - result = cip->errNo; - } else { - rp->printMode = (kResponseNoPrint|kResponseNoSave); - result = RCmd(cip, rp, "FEAT"); - if (result < kNoErr) { - DoneWithResponse(cip, rp); - return (result); - } else if (result != 2) { - /* We cheat here and pre-populate some - * fields when the server is wu-ftpd. - * This server is very common and we - * know it has always had these. - */ - if (cip->serverType == kServerTypeWuFTPd) { - cip->hasPASV = kCommandAvailable; - cip->hasSIZE = kCommandAvailable; - cip->hasMDTM = kCommandAvailable; - cip->hasREST = kCommandAvailable; - cip->NLSTfileParamWorks = kCommandAvailable; - } else if (cip->serverType == kServerTypeNcFTPd) { - cip->hasPASV = kCommandAvailable; - cip->hasSIZE = kCommandAvailable; - cip->hasMDTM = kCommandAvailable; - cip->hasREST = kCommandAvailable; - cip->NLSTfileParamWorks = kCommandAvailable; - } - - /* Newer commands are only shown in FEAT, - * so we don't have to do the "try it, - * then save that it didn't work" thing. - */ - cip->hasMLST = kCommandNotAvailable; - cip->hasMLSD = kCommandNotAvailable; - } else { - cip->hasFEAT = kCommandAvailable; - - for (lp = rp->msg.first; lp != NULL; lp = lp->next) { - /* If first character was not a space it is - * either: - * - * (a) The header line in the response; - * (b) The trailer line in the response; - * (c) A protocol violation. - */ - cp = lp->line; - if (*cp++ != ' ') - continue; - if (ISTRNCMP(cp, "PASV", 4) == 0) { - cip->hasPASV = kCommandAvailable; - } else if (ISTRNCMP(cp, "SIZE", 4) == 0) { - cip->hasSIZE = kCommandAvailable; - } else if (ISTRNCMP(cp, "MDTM", 4) == 0) { - cip->hasMDTM = kCommandAvailable; - } else if (ISTRNCMP(cp, "REST", 4) == 0) { - cip->hasREST = kCommandAvailable; - } else if (ISTRNCMP(cp, "UTIME", 5) == 0) { - cip->hasUTIME = kCommandAvailable; - } else if (ISTRNCMP(cp, "MLST", 4) == 0) { - cip->hasMLST = kCommandAvailable; - cip->hasMLSD = kCommandAvailable; - FTPExamineMlstFeatures(cip, cp + 5); - } else if (ISTRNCMP(cp, "CLNT", 4) == 0) { - cip->hasCLNT = kCommandAvailable; - } else if (ISTRNCMP(cp, "Compliance Level: ", 18) == 0) { - /* Probably only NcFTPd will ever implement this. - * But we use it internally to differentiate - * between different NcFTPd implementations of - * IETF extensions. - */ - cip->ietfCompatLevel = atoi(cp + 18); - } - } - } - - ReInitResponse(cip, rp); - result = RCmd(cip, rp, "HELP SITE"); - if (result == 2) { - for (lp = rp->msg.first; lp != NULL; lp = lp->next) { - cp = lp->line; - if (strstr(cp, "RETRBUFSIZE") != NULL) - cip->hasRETRBUFSIZE = kCommandAvailable; - if (strstr(cp, "RBUFSZ") != NULL) - cip->hasRBUFSZ = kCommandAvailable; - /* See if RBUFSIZ matches (but not STORBUFSIZE) */ - if ( - ((p = strstr(cp, "RBUFSIZ")) != NULL) && - ( - (p == cp) || - ((p > cp) && (!isupper(p[-1]))) - ) - ) - cip->hasRBUFSIZ = kCommandAvailable; - if (strstr(cp, "STORBUFSIZE") != NULL) - cip->hasSTORBUFSIZE = kCommandAvailable; - if (strstr(cp, "SBUFSIZ") != NULL) - cip->hasSBUFSIZ = kCommandAvailable; - if (strstr(cp, "SBUFSZ") != NULL) - cip->hasSBUFSZ = kCommandAvailable; - if (strstr(cp, "BUFSIZE") != NULL) - cip->hasBUFSIZE = kCommandAvailable; - } - } - DoneWithResponse(cip, rp); - } - - return (kNoErr); -} /* FTPQueryFeatures */ - - - -int -FTPCloseHost(const FTPCIPtr cip) -{ - ResponsePtr rp; - int result; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - /* Data connection shouldn't be open normally. */ - if (cip->dataSocket != kClosedFileDescriptor) - FTPAbortDataTransfer(cip); - - result = kNoErr; - if (cip->connected != 0) { - rp = InitResponse(); - if (rp == NULL) { - cip->errNo = kErrMallocFailed; - result = cip->errNo; - } else { - rp->eofOkay = 1; /* We are expecting EOF after this cmd. */ - cip->eofOkay = 1; - (void) RCmd(cip, rp, "QUIT"); - DoneWithResponse(cip, rp); - } - } - - CloseControlConnection(cip); - - /* Dispose dynamic data structures, so you won't leak - * if you OpenHost with this again. - */ - FTPDeallocateHost(cip); - return (result); -} /* FTPCloseHost */ - - - - -void -FTPShutdownHost(const FTPCIPtr cip) -{ -#ifdef SIGPIPE - FTPSigProc osigpipe; -#endif - - if (cip == NULL) - return; - if (strcmp(cip->magic, kLibraryMagic)) - return; - -#ifdef SIGPIPE - osigpipe = signal(SIGPIPE, (FTPSigProc) SIG_IGN); -#endif - - /* Linger could cause close to block, so unset it. */ - if (cip->dataSocket != kClosedFileDescriptor) - (void) SetLinger(cip, cip->dataSocket, 0); - CloseDataConnection(cip); /* Shouldn't be open normally. */ - - /* Linger should already be turned off for this. */ - CloseControlConnection(cip); - - FTPDeallocateHost(cip); - -#ifdef SIGPIPE - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); -#endif -} /* FTPShutdownHost */ - - - - -void -URLCopyToken(char *dst, size_t dsize, const char *src, size_t howmuch) -{ - char *dlim; - const char *slim; - unsigned int hc; - int c; - char h[4]; - - dlim = dst + dsize - 1; /* leave room for \0 */ - slim = src + howmuch; - while (src < slim) { - c = *src++; - if (c == '\0') - break; - if (c == '%') { - /* hex representation */ - if (src < slim + 2) { - h[0] = *src++; - h[1] = *src++; - h[2] = '\0'; - hc = 0xeeff; - if ((sscanf(h, "%x", &hc) >= 0) && (hc != 0xeeff)) { - if (dst < dlim) { - *(unsigned char *)dst = (unsigned char) hc; - dst++; - } - } - } else { - break; - } - } else { - *dst++ = (char) c; - } - } - *dst = '\0'; -} /* URLCopyToken */ - - - - -int -FTPDecodeURL( - const FTPCIPtr cip, /* area pointed to may be modified */ - char *const url, /* always modified */ - LineListPtr cdlist, /* always modified */ - char *const fn, /* always modified */ - const size_t fnsize, - int *const xtype, /* optional; may be modified */ - int *const wantnlst /* optional; always modified */ -) -{ - char *cp; - char *hstart, *hend; - char *h2start; - char *at1; - char portstr[32]; - int port; - int sc; - char *lastslash; - char *parsestr; - char *tok; - char subdir[128]; - char *semi; - - InitLineList(cdlist); - *fn = '\0'; - if (wantnlst != NULL) - *wantnlst = 0; - if (xtype != NULL) - *xtype = kTypeBinary; - - cp = NULL; /* shut up warnings */ -#ifdef HAVE_STRCASECMP - if (strncasecmp(url, " */ - *cp = '\0'; - cp = url + 11; - } else if (strncasecmp(url, "ftp://", 6) == 0) { - cp = url + 6; - } else { - return (-1); /* not a RFC 1738 URL */ - } -#else /* HAVE_STRCASECMP */ - if (strncmp(url, " */ - *cp = '\0'; - cp = url + 11; - } else if (strncmp(url, "ftp://", 6) == 0) { - cp = url + 6; - } else { - return (-1); /* not a RFC 1738 URL */ - } -#endif /* HAVE_STRCASECMP */ - - /* //:@:/ */ - - at1 = NULL; - for (hstart = cp; ; cp++) { - if (*cp == '@') { - if (at1 == NULL) - at1 = cp; - else - return (kMalformedURL); - } else if ((*cp == '\0') || (*cp == '/')) { - hend = cp; - break; - } - } - - sc = *hend; - *hend = '\0'; - if (at1 == NULL) { - /* no user or password */ - h2start = hstart; - } else { - *at1 = '\0'; - cp = strchr(hstart, ':'); - if (cp == NULL) { - /* whole thing is the user name then */ - URLCopyToken(cip->user, sizeof(cip->user), hstart, (size_t) (at1 - hstart)); - } else if (strchr(cp + 1, ':') != NULL) { - /* Too many colons */ - return (kMalformedURL); - } else { - URLCopyToken(cip->user, sizeof(cip->user), hstart, (size_t) (cp - hstart)); - URLCopyToken(cip->pass, sizeof(cip->pass), cp + 1, (size_t) (at1 - (cp + 1))); - } - *at1 = '@'; - h2start = at1 + 1; - } - - cp = strchr(h2start, ':'); - if (cp == NULL) { - /* whole thing is the host then */ - URLCopyToken(cip->host, sizeof(cip->host), h2start, (size_t) (hend - h2start)); - } else if (strchr(cp + 1, ':') != NULL) { - /* Too many colons */ - return (kMalformedURL); - } else { - URLCopyToken(cip->host, sizeof(cip->host), h2start, (size_t) (cp - h2start)); - URLCopyToken(portstr, sizeof(portstr), cp + 1, (size_t) (hend - (cp + 1))); - port = atoi(portstr); - if (port > 0) - cip->port = port; - } - - *hend = (char) sc; - if ((*hend == '\0') || ((*hend == '/') && (hend[1] == '\0'))) { - /* no path, okay */ - return (0); - } - - lastslash = strrchr(hend, '/'); - if (lastslash == NULL) { - /* no path, okay */ - return (0); - } - *lastslash = '\0'; - - if ((semi = strchr(lastslash + 1, ';')) != NULL) { - *semi++ = '\0'; -#ifdef HAVE_STRCASECMP - if (strcasecmp(semi, "type=i") == 0) { - if (xtype != NULL) - *xtype = kTypeBinary; - } else if (strcasecmp(semi, "type=a") == 0) { - if (xtype != NULL) - *xtype = kTypeAscii; - } else if (strcasecmp(semi, "type=b") == 0) { - if (xtype != NULL) - *xtype = kTypeBinary; - } else if (strcasecmp(semi, "type=d") == 0) { - if (wantnlst != NULL) { - *wantnlst = 1; - if (xtype != NULL) - *xtype = kTypeAscii; - } else { - /* You didn't want these. */ - return (kMalformedURL); - } - } -#else /* HAVE_STRCASECMP */ - if (strcmp(semi, "type=i") == 0) { - if (xtype != NULL) - *xtype = kTypeBinary; - } else if (strcmp(semi, "type=a") == 0) { - if (xtype != NULL) - *xtype = kTypeAscii; - } else if (strcmp(semi, "type=b") == 0) { - if (xtype != NULL) - *xtype = kTypeBinary; - } else if (strcmp(semi, "type=d") == 0) { - if (wantnlst != NULL) { - *wantnlst = 1; - if (xtype != NULL) - *xtype = kTypeAscii; - } else { - /* You didn't want these. */ - return (kMalformedURL); - } - } -#endif /* HAVE_STRCASECMP */ - } - URLCopyToken(fn, fnsize, lastslash + 1, strlen(lastslash + 1)); - for (parsestr = hend; (tok = strtok(parsestr, "/")) != NULL; parsestr = NULL) { - URLCopyToken(subdir, sizeof(subdir), tok, strlen(tok)); - (void) AddLine(cdlist, subdir); - } - *lastslash = '/'; - return (kNoErr); -} /* FTPDecodeURL */ - - - - -int -FTPOpenHost(const FTPCIPtr cip) -{ - int result; - time_t t0, t1; - int elapsed; - int dials; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (cip->host[0] == '\0') { - cip->errNo = kErrBadParameter; - return (kErrBadParameter); - } - - for ( result = kErrConnectMiscErr, dials = 0; - cip->maxDials < 0 || dials < cip->maxDials; - dials++) - { - /* Allocate (or if the host was closed, reallocate) - * the transfer data buffer. - */ - result = FTPAllocateHost(cip); - if (result < 0) - return (result); - - if (dials > 0) - PrintF(cip, "Retry Number: %d\n", dials); - if (cip->redialStatusProc != 0) - (*cip->redialStatusProc)(cip, kRedialStatusDialing, dials); - (void) time(&t0); - result = OpenControlConnection(cip, cip->host, cip->port); - (void) time(&t1); - if (result == kNoErr) { - /* We were hooked up successfully. */ - PrintF(cip, "Connected to %s.\n", cip->host); - - result = FTPLoginHost(cip); - if (result == kNoErr) { - (void) FTPQueryFeatures(cip); - break; - } - - /* Close and try again. */ - (void) FTPCloseHost(cip); - - /* Originally we also stopped retyring if - * we got kErrBadRemoteUser and non-anonymous, - * but some FTP servers apparently do their - * max user check after the username is sent. - */ - if (result == kErrBadRemoteUserOrPassword /* || (result == kErrBadRemoteUser) */) { - if (strcmp(cip->user, "anonymous") != 0) { - /* Non-anonymous login was denied, and - * retrying is not going to help. - */ - break; - } - } - } else if ((result != kErrConnectRetryableErr) && (result != kErrConnectRefused) && (result != kErrRemoteHostClosedConnection)) { - /* Irrecoverable error, so don't bother redialing. - * The error message should have already been printed - * from OpenControlConnection(). - */ - PrintF(cip, "Cannot recover from miscellaneous open error %d.\n", result); - return result; - } - - /* Retryable error, wait and then redial. */ - if (cip->redialDelay > 0) { - /* But don't sleep if this is the last loop. */ - if ((cip->maxDials < 0) || (dials < (cip->maxDials - 1))) { - elapsed = (int) (t1 - t0); - if (elapsed < cip->redialDelay) { - PrintF(cip, "Sleeping %u seconds.\n", - (unsigned) cip->redialDelay - elapsed); - if (cip->redialStatusProc != 0) - (*cip->redialStatusProc)(cip, kRedialStatusSleeping, cip->redialDelay - elapsed); - (void) sleep((unsigned) cip->redialDelay - elapsed); - } - } - } - } - return (result); -} /* FTPOpenHost */ - - - - -int -FTPOpenHostNoLogin(const FTPCIPtr cip) -{ - int result; - time_t t0, t1; - int elapsed; - int dials; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - if (cip->host[0] == '\0') { - cip->errNo = kErrBadParameter; - return (kErrBadParameter); - } - - for ( result = kErrConnectMiscErr, dials = 0; - cip->maxDials < 0 || dials < cip->maxDials; - dials++) - { - - /* Allocate (or if the host was closed, reallocate) - * the transfer data buffer. - */ - result = FTPAllocateHost(cip); - if (result < 0) - return (result); - - if (dials > 0) - PrintF(cip, "Retry Number: %d\n", dials); - if (cip->redialStatusProc != 0) - (*cip->redialStatusProc)(cip, kRedialStatusDialing, dials); - (void) time(&t0); - result = OpenControlConnection(cip, cip->host, cip->port); - (void) time(&t1); - if (result == kNoErr) { - /* We were hooked up successfully. */ - PrintF(cip, "Connected to %s.\n", cip->host); - - /* Not logging in... */ - if (result == kNoErr) - break; - } else if ((result != kErrConnectRetryableErr) && (result != kErrConnectRefused) && (result != kErrRemoteHostClosedConnection)) { - /* Irrecoverable error, so don't bother redialing. - * The error message should have already been printed - * from OpenControlConnection(). - */ - PrintF(cip, "Cannot recover from miscellaneous open error %d.\n", result); - return result; - } - - /* Retryable error, wait and then redial. */ - if (cip->redialDelay > 0) { - /* But don't sleep if this is the last loop. */ - if ((cip->maxDials < 0) || (dials < (cip->maxDials - 1))) { - elapsed = (int) (t1 - t0); - if (elapsed < cip->redialDelay) { - PrintF(cip, "Sleeping %u seconds.\n", - (unsigned) cip->redialDelay - elapsed); - if (cip->redialStatusProc != 0) - (*cip->redialStatusProc)(cip, kRedialStatusSleeping, cip->redialDelay - elapsed); - (void) sleep((unsigned) cip->redialDelay - elapsed); - } - } - } - } - return (result); -} /* FTPOpenHostNoLogin */ - - - - -int -FTPInitConnectionInfo(const FTPLIPtr lip, const FTPCIPtr cip, size_t bufSize) -{ - size_t siz; - - if ((lip == NULL) || (cip == NULL) || (bufSize == 0)) - return (kErrBadParameter); - - siz = sizeof(FTPConnectionInfo); - (void) memset(cip, 0, siz); - - if (strcmp(lip->magic, kLibraryMagic)) - return (kErrBadMagic); - - cip->buf = NULL; /* denote that it needs to be allocated. */ - cip->bufSize = bufSize; - cip->port = lip->defaultPort; - cip->firewallPort = lip->defaultPort; - cip->maxDials = kDefaultMaxDials; - cip->redialDelay = kDefaultRedialDelay; - cip->xferTimeout = kDefaultXferTimeout; - cip->connTimeout = kDefaultConnTimeout; - cip->ctrlTimeout = kDefaultCtrlTimeout; - cip->abortTimeout = kDefaultAbortTimeout; - cip->ctrlSocketR = kClosedFileDescriptor; - cip->ctrlSocketW = kClosedFileDescriptor; - cip->dataPortMode = kSendPortMode; - cip->dataSocket = kClosedFileDescriptor; - cip->lip = lip; - cip->hasPASV = kCommandAvailabilityUnknown; - cip->hasSIZE = kCommandAvailabilityUnknown; - cip->hasMDTM = kCommandAvailabilityUnknown; - cip->hasREST = kCommandAvailabilityUnknown; - cip->hasNLST_d = kCommandAvailabilityUnknown; - cip->hasUTIME = kCommandAvailabilityUnknown; - cip->hasFEAT = kCommandAvailabilityUnknown; - cip->hasMLSD = kCommandAvailabilityUnknown; - cip->hasMLST = kCommandAvailabilityUnknown; - cip->hasCLNT = kCommandAvailabilityUnknown; - cip->hasRETRBUFSIZE = kCommandAvailabilityUnknown; - cip->hasRBUFSIZ = kCommandAvailabilityUnknown; - cip->hasRBUFSZ = kCommandAvailabilityUnknown; - cip->hasSTORBUFSIZE = kCommandAvailabilityUnknown; - cip->hasSBUFSIZ = kCommandAvailabilityUnknown; - cip->hasSBUFSZ = kCommandAvailabilityUnknown; - cip->STATfileParamWorks = kCommandAvailabilityUnknown; - cip->NLSTfileParamWorks = kCommandAvailabilityUnknown; - cip->firewallType = kFirewallNotInUse; - cip->startingWorkingDirectory = NULL; - (void) STRNCPY(cip->magic, kLibraryMagic); - (void) STRNCPY(cip->user, "anonymous"); - return (kNoErr); -} /* FTPInitConnectionInfo */ - - - - -int -FTPRebuildConnectionInfo(const FTPLIPtr lip, const FTPCIPtr cip) -{ - char *buf; - - cip->lip = lip; - cip->debugLog = NULL; - cip->errLog = NULL; - cip->debugLogProc = NULL; - cip->errLogProc = NULL; - cip->buf = NULL; - cip->cin = NULL; - cip->cout = NULL; - cip->errNo = 0; - cip->progress = NULL; - cip->rname = NULL; - cip->lname = NULL; - cip->onConnectMsgProc = NULL; - cip->redialStatusProc = NULL; - cip->printResponseProc = NULL; - cip->onLoginMsgProc = NULL; - cip->passphraseProc = NULL; - cip->startingWorkingDirectory = NULL; - cip->asciiFilenameExtensions = NULL; - - (void) memset(&cip->lastFTPCmdResultLL, 0, sizeof(LineList)); - - /* Allocate a new buffer. */ - buf = (char *) calloc((size_t) 1, cip->bufSize); - if (buf == NULL) { - cip->errNo = kErrMallocFailed; - return (kErrMallocFailed); - } - cip->buf = buf; - - /* Reattach the FILE pointers for use with the Std I/O library - * routines. - */ - if ((cip->cin = _fdopen(cip->ctrlSocketR, "r")) == NULL) { - cip->errNo = kErrFdopenR; - cip->ctrlSocketR = kClosedFileDescriptor; - cip->ctrlSocketW = kClosedFileDescriptor; - return (kErrFdopenR); - } - - if ((cip->cout = _fdopen(cip->ctrlSocketW, "w")) == NULL) { - CloseFile(&cip->cin); - cip->errNo = kErrFdopenW; - cip->ctrlSocketR = kClosedFileDescriptor; - cip->ctrlSocketW = kClosedFileDescriptor; - return (kErrFdopenW); - } - -#if USE_SIO - if (InitSReadlineInfo(&cip->ctrlSrl, cip->ctrlSocketR, cip->srlBuf, sizeof(cip->srlBuf), (int) cip->ctrlTimeout, 1) < 0) { - cip->errNo = kErrFdopenW; - CloseFile(&cip->cin); - cip->errNo = kErrFdopenW; - cip->ctrlSocketR = kClosedFileDescriptor; - cip->ctrlSocketW = kClosedFileDescriptor; - return (kErrFdopenW); - } -#endif - return (kNoErr); -} /* FTPRebuildConnectionInfo */ - - - - -int -FTPInitLibrary(const FTPLIPtr lip) -{ - struct servent *ftp; - - if (lip == NULL) - return (kErrBadParameter); - - (void) memset(lip, 0, sizeof(FTPLibraryInfo)); - if ((ftp = getservbyname("ftp", "tcp")) == NULL) - lip->defaultPort = (unsigned int) kDefaultFTPPort; - else - lip->defaultPort = (unsigned int) ntohs(ftp->s_port); - - lip->init = 1; - (void) STRNCPY(lip->magic, kLibraryMagic); - - /* We'll initialize the defaultAnonPassword field - * later when we try the first anon ftp connection. - */ - -#ifdef HAVE_LIBSOCKS - SOCKSinit("libncftp"); - lip->socksInit = 1; -#endif - return (kNoErr); -} /* FTPInitLibrary */ - -/* Open.c */ diff --git a/rosapps/applications/net/ncftp/libncftp/rcmd.c b/rosapps/applications/net/ncftp/libncftp/rcmd.c deleted file mode 100644 index d26864064e2..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/rcmd.c +++ /dev/null @@ -1,1038 +0,0 @@ -/* rcmd.c - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#include "syshdrs.h" - -#if !defined(NO_SIGNALS) && (USE_SIO || !defined(SIGALRM) || !defined(SIGPIPE) || !defined(SIGINT)) -# define NO_SIGNALS 1 -#endif - -#ifndef NO_SIGNALS - -#ifdef HAVE_SIGSETJMP -static sigjmp_buf gBrokenCtrlJmp; -#else -static jmp_buf gBrokenCtrlJmp; -#endif /* HAVE_SIGSETJMP */ - -static void -BrokenCtrl(int UNUSED(signumIgnored)) -{ - LIBNCFTP_USE_VAR(signumIgnored); /* Shut up gcc */ -#ifdef HAVE_SIGSETJMP - siglongjmp(gBrokenCtrlJmp, 1); -#else - longjmp(gBrokenCtrlJmp, 1); -#endif /* HAVE_SIGSETJMP */ -} /* BrokenCtrl */ - -#endif /* NO_SIGNALS */ - - -/* A 'Response' parameter block is simply zeroed to be considered init'ed. */ -ResponsePtr -InitResponse(void) -{ - ResponsePtr rp; - - rp = (ResponsePtr) calloc(SZ(1), sizeof(Response)); - if (rp != NULL) - InitLineList(&rp->msg); - return (rp); -} /* InitResponse */ - - - - -/* If we don't print it to the screen, we may want to save it to our - * trace log. - */ -void -TraceResponse(const FTPCIPtr cip, ResponsePtr rp) -{ - LinePtr lp; - - if (rp != NULL) { - lp = rp->msg.first; - if (lp != NULL) { - PrintF(cip, "%3d: %s\n", rp->code, lp->line); - for (lp = lp->next; lp != NULL; lp = lp->next) - PrintF(cip, " %s\n", lp->line); - } - } -} /* TraceResponse */ - - - - - -void -PrintResponse(const FTPCIPtr cip, LineListPtr llp) -{ - LinePtr lp; - - if (llp != NULL) { - for (lp = llp->first; lp != NULL; lp = lp->next) - PrintF(cip, "%s\n", lp->line); - } -} /* PrintResponse */ - - - - - -static void -SaveLastResponse(const FTPCIPtr cip, ResponsePtr rp) -{ - if (rp == NULL) { - cip->lastFTPCmdResultStr[0] = '\0'; - cip->lastFTPCmdResultNum = -1; - DisposeLineListContents(&cip->lastFTPCmdResultLL); - } else if ((rp->msg.first == NULL) || (rp->msg.first->line == NULL)) { - cip->lastFTPCmdResultStr[0] = '\0'; - cip->lastFTPCmdResultNum = rp->code; - DisposeLineListContents(&cip->lastFTPCmdResultLL); - } else { - (void) STRNCPY(cip->lastFTPCmdResultStr, rp->msg.first->line); - cip->lastFTPCmdResultNum = rp->code; - - /* Dispose previous command's line list. */ - DisposeLineListContents(&cip->lastFTPCmdResultLL); - - /* Save this command's line list. */ - cip->lastFTPCmdResultLL = rp->msg; - } -} /* SaveLastResponse */ - - - -void -DoneWithResponse(const FTPCIPtr cip, ResponsePtr rp) -{ - /* Dispose space taken up by the Response, and clear it out - * again. For some reason, I like to return memory to zeroed - * when not in use. - */ - if (rp != NULL) { - TraceResponse(cip, rp); - if (cip->printResponseProc != 0) { - if ((rp->printMode & kResponseNoProc) == 0) - (*cip->printResponseProc)(cip, rp); - } - if ((rp->printMode & kResponseNoSave) == 0) - SaveLastResponse(cip, rp); - else - DisposeLineListContents(&rp->msg); - (void) memset(rp, 0, sizeof(Response)); - free(rp); - } -} /* DoneWithResponse */ - - - - -/* This takes an existing Response and recycles it, by clearing out - * the current contents. - */ -void -ReInitResponse(const FTPCIPtr cip, ResponsePtr rp) -{ - if (rp != NULL) { - TraceResponse(cip, rp); - if (cip->printResponseProc != 0) { - if ((rp->printMode & kResponseNoProc) == 0) - (*cip->printResponseProc)(cip, rp); - } - if ((rp->printMode & kResponseNoSave) == 0) - SaveLastResponse(cip, rp); - else - DisposeLineListContents(&rp->msg); - (void) memset(rp, 0, sizeof(Response)); - } -} /* ReInitResponse */ - - - - -#ifndef NO_SIGNALS - -/* Since the control stream is defined by the Telnet protocol (RFC 854), - * we follow Telnet rules when reading the control stream. We use this - * routine when we want to read a response from the host. - */ -int -GetTelnetString(const FTPCIPtr cip, char *str, size_t siz, FILE *cin, FILE *cout) -{ - int c; - size_t n; - int eofError; - char *cp; - - cp = str; - --siz; /* We'll need room for the \0. */ - - if ((cin == NULL) || (cout == NULL)) { - eofError = -1; - goto done; - } - - for (n = (size_t)0, eofError = 0; ; ) { - c = fgetc(cin); -checkChar: - if (c == EOF) { -eof: - eofError = -1; - break; - } else if (c == '\r') { - /* A telnet string can have a CR by itself. But to denote that, - * the protocol uses \r\0; an end of line is denoted \r\n. - */ - c = fgetc(cin); - if (c == '\n') { - /* Had \r\n, so done. */ - goto done; - } else if (c == EOF) { - goto eof; - } else if (c == '\0') { - c = '\r'; - goto addChar; - } else { - /* Telnet protocol violation! */ - goto checkChar; - } - } else if (c == '\n') { - /* Really shouldn't get here. If we do, the other side - * violated the TELNET protocol, since eoln's are CR/LF, - * and not just LF. - */ - PrintF(cip, "TELNET protocol violation: raw LF.\n"); - goto done; - } else if (c == IAC) { - /* Since the control connection uses the TELNET protocol, - * we have to handle some of its commands ourselves. - * IAC is the protocol's escape character, meaning that - * the next character after the IAC (Interpret as Command) - * character is a telnet command. But, if there just - * happened to be a character in the text stream with the - * same numerical value of IAC, 255, the sender denotes - * that by having an IAC followed by another IAC. - */ - - /* Get the telnet command. */ - c = fgetc(cin); - - switch (c) { - case WILL: - case WONT: - /* Get the option code. */ - c = fgetc(cin); - - /* Tell the other side that we don't want - * to do what they're offering to do. - */ - (void) fprintf(cout, "%c%c%c",IAC,DONT,c); - (void) fflush(cout); - break; - case DO: - case DONT: - /* Get the option code. */ - c = fgetc(cin); - - /* The other side said they are DOing (or not) - * something, which would happen if our side - * asked them to. Since we didn't do that, - * ask them to not do this option. - */ - (void) fprintf(cout, "%c%c%c",IAC,WONT,c); - (void) fflush(cout); - break; - - case EOF: - goto eof; - - default: - /* Just add this character, since it was most likely - * just an escaped IAC character. - */ - goto addChar; - } - } else { -addChar: - /* If the buffer supplied has room, add this character to it. */ - if (n < siz) { - *cp++ = c; - ++n; - } - } - } - -done: - *cp = '\0'; - return (eofError); -} /* GetTelnetString */ - -#endif /* NO_SIGNALS */ - - - -/* Returns 0 if a response was read, or (-1) if an error occurs. - * This reads the entire response text into a LineList, which is kept - * in the 'Response' structure. - */ -int -GetResponse(const FTPCIPtr cip, ResponsePtr rp) -{ - longstring str; - int eofError; - str16 code; - char *cp; - int continuation; - volatile FTPCIPtr vcip; -#ifdef NO_SIGNALS - int result; -#else /* NO_SIGNALS */ - volatile FTPSigProc osigpipe; - int sj; -#endif /* NO_SIGNALS */ - - /* RFC 959 states that a reply may span multiple lines. A single - * line message would have the 3-digit code then the msg. - * A multi-line message would have the code and the first - * line of the msg, then additional lines, until the last line, - * which has the code and last line of the msg. - * - * For example: - * 123-First line - * Second line - * 234 A line beginning with numbers - * 123 The last line - */ - -#ifdef NO_SIGNALS - vcip = cip; -#else /* NO_SIGNALS */ - osigpipe = (volatile FTPSigProc) signal(SIGPIPE, BrokenCtrl); - vcip = cip; - -#ifdef HAVE_SIGSETJMP - sj = sigsetjmp(gBrokenCtrlJmp, 1); -#else - sj = setjmp(gBrokenCtrlJmp); -#endif /* HAVE_SIGSETJMP */ - - if (sj != 0) { - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); - FTPShutdownHost(vcip); - vcip->errNo = kErrRemoteHostClosedConnection; - return(vcip->errNo); - } -#endif /* NO_SIGNALS */ - -#ifdef NO_SIGNALS - cp = str; - eofError = 0; - if (cip->dataTimedOut > 0) { - /* Give up immediately unless the server had already - * sent a message. Odds are since the data is timed - * out, so is the control. - */ - if (SWaitUntilReadyForReading(cip->ctrlSocketR, 0) == 0) { - /* timeout */ - Error(cip, kDontPerror, "Could not read reply from control connection -- timed out.\n"); - FTPShutdownHost(vcip); - cip->errNo = kErrControlTimedOut; - return (cip->errNo); - } - } - result = SReadline(&cip->ctrlSrl, str, sizeof(str) - 1); - if (result == kTimeoutErr) { - /* timeout */ - Error(cip, kDontPerror, "Could not read reply from control connection -- timed out.\n"); - FTPShutdownHost(vcip); - cip->errNo = kErrControlTimedOut; - return (cip->errNo); - } else if (result == 0) { - /* eof */ - eofError = 1; - rp->hadEof = 1; - if (rp->eofOkay == 0) - Error(cip, kDontPerror, "Remote host has closed the connection.\n"); - FTPShutdownHost(vcip); - cip->errNo = kErrRemoteHostClosedConnection; - return (cip->errNo); - } else if (result < 0) { - /* error */ - Error(cip, kDoPerror, "Could not read reply from control connection"); - FTPShutdownHost(vcip); - cip->errNo = kErrInvalidReplyFromServer; - return (cip->errNo); - } - - if (str[result - 1] == '\n') - str[result - 1] = '\0'; - -#else /* NO_SIGNALS */ - /* Get the first line of the response. */ - eofError = GetTelnetString(cip, str, sizeof(str), cip->cin, cip->cout); - - cp = str; - if (*cp == '\0') { - if (eofError < 0) { - /* No bytes read for reply, and EOF detected. */ - rp->hadEof = 1; - if (rp->eofOkay == 0) - Error(cip, kDontPerror, "Remote host has closed the connection.\n"); - FTPShutdownHost(vcip); - cip->errNo = kErrRemoteHostClosedConnection; - (void) signal(SIGPIPE, osigpipe); - return(cip->errNo); - } - } -#endif /* NO_SIGNALS */ - - if (!isdigit((int) *cp)) { - Error(cip, kDontPerror, "Invalid reply: \"%s\"\n", cp); - cip->errNo = kErrInvalidReplyFromServer; -#ifndef NO_SIGNALS - (void) signal(SIGPIPE, osigpipe); -#endif - return (cip->errNo); - } - - rp->codeType = *cp - '0'; - cp += 3; - continuation = (*cp == '-'); - *cp++ = '\0'; - (void) STRNCPY(code, str); - rp->code = atoi(code); - (void) AddLine(&rp->msg, cp); - if (eofError < 0) { - /* Read reply, but EOF was there also. */ - rp->hadEof = 1; - } - - while (continuation) { - -#ifdef NO_SIGNALS - result = SReadline(&cip->ctrlSrl, str, sizeof(str) - 1); - if (result == kTimeoutErr) { - /* timeout */ - Error(cip, kDontPerror, "Could not read reply from control connection -- timed out.\n"); - FTPShutdownHost(vcip); - cip->errNo = kErrControlTimedOut; - return (cip->errNo); - } else if (result == 0) { - /* eof */ - eofError = 1; - rp->hadEof = 1; - if (rp->eofOkay == 0) - Error(cip, kDontPerror, "Remote host has closed the connection.\n"); - FTPShutdownHost(vcip); - cip->errNo = kErrRemoteHostClosedConnection; - return (cip->errNo); - } else if (result < 0) { - /* error */ - Error(cip, kDoPerror, "Could not read reply from control connection"); - FTPShutdownHost(vcip); - cip->errNo = kErrInvalidReplyFromServer; - return (cip->errNo); - } - - if (str[result - 1] == '\n') - str[result - 1] = '\0'; -#else /* NO_SIGNALS */ - eofError = GetTelnetString(cip, str, sizeof(str), cip->cin, cip->cout); - if (eofError < 0) { - /* Read reply, but EOF was there also. */ - rp->hadEof = 1; - continuation = 0; - } -#endif /* NO_SIGNALS */ - cp = str; - if (strncmp(code, cp, SZ(3)) == 0) { - cp += 3; - if (*cp == ' ') - continuation = 0; - ++cp; - } - (void) AddLine(&rp->msg, cp); - } - - if (rp->code == 421) { - /* - * 421 Service not available, closing control connection. - * This may be a reply to any command if the service knows it - * must shut down. - */ - if (rp->eofOkay == 0) - Error(cip, kDontPerror, "Remote host has closed the connection.\n"); - FTPShutdownHost(vcip); - cip->errNo = kErrRemoteHostClosedConnection; -#ifndef NO_SIGNALS - (void) signal(SIGPIPE, osigpipe); -#endif - return(cip->errNo); - } - -#ifndef NO_SIGNALS - (void) signal(SIGPIPE, osigpipe); -#endif - return (kNoErr); -} /* GetResponse */ - - - - -/* This creates the complete command text to send, and writes it - * on the stream. - */ -#ifdef NO_SIGNALS - -static int -SendCommand(const FTPCIPtr cip, const char *cmdspec, va_list ap) -{ - longstring command; - int result; - - if (cip->ctrlSocketW != kClosedFileDescriptor) { -#ifdef HAVE_VSNPRINTF - (void) vsnprintf(command, sizeof(command) - 1, cmdspec, ap); - command[sizeof(command) - 1] = '\0'; -#else - (void) vsprintf(command, cmdspec, ap); -#endif - if ((strncmp(command, "PASS", SZ(4)) != 0) || ((strcmp(cip->user, "anonymous") == 0) && (cip->firewallType == kFirewallNotInUse))) - PrintF(cip, "Cmd: %s\n", command); - else - PrintF(cip, "Cmd: %s\n", "PASS xxxxxxxx"); - (void) STRNCAT(command, "\r\n"); /* Use TELNET end-of-line. */ - cip->lastFTPCmdResultStr[0] = '\0'; - cip->lastFTPCmdResultNum = -1; - - result = SWrite(cip->ctrlSocketW, command, strlen(command), (int) cip->ctrlTimeout, 0); - - if (result < 0) { - cip->errNo = kErrSocketWriteFailed; - Error(cip, kDoPerror, "Could not write to control stream.\n"); - return (cip->errNo); - } - return (kNoErr); - } - return (kErrNotConnected); -} /* SendCommand */ - -#else /* NO_SIGNALS */ - -static int -SendCommand(const FTPCIPtr cip, const char *cmdspec, va_list ap) -{ - longstring command; - int result; - volatile FTPCIPtr vcip; - volatile FTPSigProc osigpipe; - int sj; - - if (cip->cout != NULL) { -#ifdef HAVE_VSNPRINTF - (void) vsnprintf(command, sizeof(command) - 1, cmdspec, ap); - command[sizeof(command) - 1] = '\0'; -#else - (void) vsprintf(command, cmdspec, ap); -#endif - if ((strncmp(command, "PASS", SZ(4)) != 0) || ((strcmp(cip->user, "anonymous") == 0) && (cip->firewallType == kFirewallNotInUse))) - PrintF(cip, "Cmd: %s\n", command); - else - PrintF(cip, "Cmd: %s\n", "PASS xxxxxxxx"); - (void) STRNCAT(command, "\r\n"); /* Use TELNET end-of-line. */ - cip->lastFTPCmdResultStr[0] = '\0'; - cip->lastFTPCmdResultNum = -1; - - osigpipe = (volatile FTPSigProc) signal(SIGPIPE, BrokenCtrl); - vcip = cip; - -#ifdef HAVE_SIGSETJMP - sj = sigsetjmp(gBrokenCtrlJmp, 1); -#else - sj = setjmp(gBrokenCtrlJmp); -#endif /* HAVE_SIGSETJMP */ - - if (sj != 0) { - (void) signal(SIGPIPE, (FTPSigProc) osigpipe); - FTPShutdownHost(vcip); - if (vcip->eofOkay == 0) { - Error(cip, kDontPerror, "Remote host has closed the connection.\n"); - vcip->errNo = kErrRemoteHostClosedConnection; - return(vcip->errNo); - } - return (kNoErr); - } - - result = fputs(command, cip->cout); - if (result < 0) { - (void) signal(SIGPIPE, osigpipe); - cip->errNo = kErrSocketWriteFailed; - Error(cip, kDoPerror, "Could not write to control stream.\n"); - return (cip->errNo); - } - result = fflush(cip->cout); - if (result < 0) { - (void) signal(SIGPIPE, osigpipe); - cip->errNo = kErrSocketWriteFailed; - Error(cip, kDoPerror, "Could not write to control stream.\n"); - return (cip->errNo); - } - (void) signal(SIGPIPE, osigpipe); - return (kNoErr); - } - return (kErrNotConnected); -} /* SendCommand */ -#endif /* NO_SIGNALS */ - - - -/* For "simple" (i.e. not data transfer) commands, this routine is used - * to send the command and receive one response. It returns the codeType - * field of the 'Response' as the result, or a negative number upon error. - */ -/*VARARGS*/ -int -FTPCmd(const FTPCIPtr cip, const char *const cmdspec, ...) -{ - va_list ap; - int result; - ResponsePtr rp; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - rp = InitResponse(); - if (rp == NULL) { - result = kErrMallocFailed; - cip->errNo = kErrMallocFailed; - Error(cip, kDontPerror, "Malloc failed.\n"); - return (cip->errNo); - } - - va_start(ap, cmdspec); -#ifndef NO_SIGNALS - if (cip->ctrlTimeout > 0) - (void) alarm(cip->ctrlTimeout); -#endif /* NO_SIGNALS */ - result = SendCommand(cip, cmdspec, ap); - va_end(ap); - if (result < 0) { -#ifndef NO_SIGNALS - if (cip->ctrlTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - return (result); - } - - /* Get the response to the command we sent. */ - result = GetResponse(cip, rp); -#ifndef NO_SIGNALS - if (cip->ctrlTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - - if (result == kNoErr) - result = rp->codeType; - DoneWithResponse(cip, rp); - return (result); -} /* FTPCmd */ - - - - -/* This is for debugging the library -- don't use. */ -/*VARARGS*/ -int -FTPCmdNoResponse(const FTPCIPtr cip, const char *const cmdspec, ...) -{ - va_list ap; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - va_start(ap, cmdspec); -#ifndef NO_SIGNALS - if (cip->ctrlTimeout > 0) - (void) alarm(cip->ctrlTimeout); -#endif /* NO_SIGNALS */ - (void) SendCommand(cip, cmdspec, ap); -#ifndef NO_SIGNALS - if (cip->ctrlTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - va_end(ap); - - return (kNoErr); -} /* FTPCmdNoResponse */ - - - - -int -WaitResponse(const FTPCIPtr cip, unsigned int sec) -{ - int result; - fd_set ss; - struct timeval tv; - int fd; - -#ifdef NO_SIGNALS - fd = cip->ctrlSocketR; -#else /* NO_SIGNALS */ - if (cip->cin == NULL) - return (-1); - fd = fileno(cip->cin); -#endif /* NO_SIGNALS */ - if (fd < 0) - return (-1); - FD_ZERO(&ss); - FD_SET(fd, &ss); - tv.tv_sec = (unsigned long) sec; - tv.tv_usec = 0; - result = select(fd + 1, SELECT_TYPE_ARG234 &ss, NULL, NULL, &tv); - return (result); -} /* WaitResponse */ - - - - -/* For "simple" (i.e. not data transfer) commands, this routine is used - * to send the command and receive one response. It returns the codeType - * field of the 'Response' as the result, or a negative number upon error. - */ - -/*VARARGS*/ -int -RCmd(const FTPCIPtr cip, ResponsePtr rp, const char *cmdspec, ...) -{ - va_list ap; - int result; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - va_start(ap, cmdspec); -#ifndef NO_SIGNALS - if (cip->ctrlTimeout > 0) - (void) alarm(cip->ctrlTimeout); -#endif /* NO_SIGNALS */ - result = SendCommand(cip, cmdspec, ap); - va_end(ap); - if (result < 0) { -#ifndef NO_SIGNALS - if (cip->ctrlTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - return (result); - } - - /* Get the response to the command we sent. */ - result = GetResponse(cip, rp); -#ifndef NO_SIGNALS - if (cip->ctrlTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - - if (result == kNoErr) - result = rp->codeType; - return (result); -} /* RCmd */ - - - -/* Returns -1 if an error occurred, or 0 if not. - * This differs from RCmd, which returns the code class of a response. - */ - -/*VARARGS*/ -int -FTPStartDataCmd(const FTPCIPtr cip, int netMode, int type, longest_int startPoint, const char *cmdspec, ...) -{ - va_list ap; - int result; - int respCode; - ResponsePtr rp; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - result = FTPSetTransferType(cip, type); - if (result < 0) - return (result); - - /* Re-set the cancellation flag. */ - cip->cancelXfer = 0; - - /* To transfer data, we do these things in order as specifed by - * the RFC. - * - * First, we tell the other side to set up a data line. This - * is done below by calling OpenDataConnection(), which sets up - * the socket. When we do that, the other side detects a connection - * attempt, so it knows we're there. Then tell the other side - * (by using listen()) that we're willing to receive a connection - * going to our side. - */ - - if ((result = OpenDataConnection(cip, cip->dataPortMode)) < 0) - goto done; - - /* If asked, attempt to start at a later position in the remote file. */ - if (startPoint != (longest_int) 0) { - if ((startPoint == kSizeUnknown) || ((result = SetStartOffset(cip, startPoint)) != 0)) - startPoint = (longest_int) 0; - } - cip->startPoint = startPoint; - - /* Now we tell the server what we want to do. This sends the - * the type of transfer we want (RETR, STOR, LIST, etc) and the - * parameters for that (files to send, directories to list, etc). - */ - va_start(ap, cmdspec); -#ifndef NO_SIGNALS - if (cip->ctrlTimeout > 0) - (void) alarm(cip->ctrlTimeout); -#endif /* NO_SIGNALS */ - result = SendCommand(cip, cmdspec, ap); - va_end(ap); - if (result < 0) { -#ifndef NO_SIGNALS - if (cip->ctrlTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - goto done; - } - - /* Get the response to the transfer command we sent, to see if - * they can accomodate the request. If everything went okay, - * we will get a preliminary response saying that the transfer - * initiation was successful and that the data is there for - * reading (for retrieves; for sends, they will be waiting for - * us to send them something). - */ - rp = InitResponse(); - if (rp == NULL) { - Error(cip, kDontPerror, "Malloc failed.\n"); - cip->errNo = kErrMallocFailed; - result = cip->errNo; - goto done; - } - result = GetResponse(cip, rp); -#ifndef NO_SIGNALS - if (cip->ctrlTimeout > 0) - (void) alarm(0); -#endif /* NO_SIGNALS */ - - if (result < 0) - goto done; - respCode = rp->codeType; - DoneWithResponse(cip, rp); - - if (respCode > 2) { - cip->errNo = kErrCouldNotStartDataTransfer; - result = cip->errNo; - goto done; - } - - /* Now we accept the data connection that the other side is offering - * to us. Then we can do the actual I/O on the data we want. - */ - cip->netMode = netMode; - if ((result = AcceptDataConnection(cip)) < 0) - goto done; - return (kNoErr); - -done: - (void) FTPEndDataCmd(cip, 0); - return (result); -} /* FTPStartDataCmd */ - - - - -void -FTPAbortDataTransfer(const FTPCIPtr cip) -{ - ResponsePtr rp; - int result; - - if (cip->dataSocket != kClosedFileDescriptor) { - PrintF(cip, "Starting abort sequence.\n"); - SendTelnetInterrupt(cip); /* Probably could get by w/o doing this. */ - - result = FTPCmdNoResponse(cip, "ABOR"); - if (result != kNoErr) { - /* Linger could cause close to block, so unset it. */ - (void) SetLinger(cip, cip->dataSocket, 0); - CloseDataConnection(cip); - PrintF(cip, "Could not send abort command.\n"); - return; - } - - if (cip->abortTimeout > 0) { - result = WaitResponse(cip, (unsigned int) cip->abortTimeout); - if (result <= 0) { - /* Error or no response received to ABOR in time. */ - (void) SetLinger(cip, cip->dataSocket, 0); - CloseDataConnection(cip); - PrintF(cip, "No response received to abort request.\n"); - return; - } - } - - rp = InitResponse(); - if (rp == NULL) { - Error(cip, kDontPerror, "Malloc failed.\n"); - cip->errNo = kErrMallocFailed; - result = cip->errNo; - return; - } - - result = GetResponse(cip, rp); - if (result < 0) { - /* Shouldn't happen, and doesn't matter if it does. */ - (void) SetLinger(cip, cip->dataSocket, 0); - CloseDataConnection(cip); - PrintF(cip, "Invalid response to abort request.\n"); - DoneWithResponse(cip, rp); - return; - } - DoneWithResponse(cip, rp); - - /* A response to the abort request has been received. - * Now the only thing left to do is close the data - * connection, making sure to turn off linger mode - * since we don't care about straggling data bits. - */ - (void) SetLinger(cip, cip->dataSocket, 0); - CloseDataConnection(cip); /* Must close (by protocol). */ - PrintF(cip, "End abort.\n"); - } -} /* FTPAbortDataTransfer */ - - - - -int -FTPEndDataCmd(const FTPCIPtr cip, int didXfer) -{ - int result; - int respCode; - ResponsePtr rp; - - if (cip == NULL) - return (kErrBadParameter); - if (strcmp(cip->magic, kLibraryMagic)) - return (kErrBadMagic); - - CloseDataConnection(cip); - result = kNoErr; - if (didXfer) { - /* Get the response to the data transferred. Most likely a message - * saying that the transfer completed succesfully. However, if - * we tried to abort the transfer using ABOR, we will have a response - * to that command instead. - */ - rp = InitResponse(); - if (rp == NULL) { - Error(cip, kDontPerror, "Malloc failed.\n"); - cip->errNo = kErrMallocFailed; - result = cip->errNo; - return (result); - } - result = GetResponse(cip, rp); - if (result < 0) - return (result); - respCode = rp->codeType; - DoneWithResponse(cip, rp); - if (respCode != 2) { - cip->errNo = kErrDataTransferFailed; - result = cip->errNo; - } else { - result = kNoErr; - } - } - return (result); -} /* FTPEndDataCmd */ - - - - -int -BufferGets(char *buf, size_t bufsize, int inStream, char *secondaryBuf, char **secBufPtr, char **secBufLimit, size_t secBufSize) -{ - int err; - char *src; - char *dst; - char *dstlim; - int len; - int nr; - int haveEof = 0; - - err = 0; - dst = buf; - dstlim = dst + bufsize - 1; /* Leave room for NUL. */ - src = (*secBufPtr); - for ( ; dst < dstlim; ) { - if (src >= (*secBufLimit)) { - /* Fill the buffer. */ - -/* Don't need to poll it here. The routines that use BufferGets don't - * need any special processing during timeouts (i.e. progress reports), - * so go ahead and just let it block until there is data to read. - */ - nr = (int) read(inStream, secondaryBuf, secBufSize); - if (nr == 0) { - /* EOF. */ - haveEof = 1; - goto done; - } else if (nr < 0) { - /* Error. */ - err = -1; - goto done; - } - (*secBufPtr) = secondaryBuf; - (*secBufLimit) = secondaryBuf + nr; - src = (*secBufPtr); - if (nr < (int) secBufSize) - src[nr] = '\0'; - } - if (*src == '\r') { - ++src; - } else { - if (*src == '\n') { - /* *dst++ = *src++; */ ++src; - goto done; - } - *dst++ = *src++; - } - } - -done: - (*secBufPtr) = src; - *dst = '\0'; - len = (int) (dst - buf); - if (err < 0) - return (err); - if ((len == 0) && (haveEof == 1)) - return (-1); - return (len); /* May be zero, if a blank line. */ -} /* BufferGets */ - -/* eof */ diff --git a/rosapps/applications/net/ncftp/libncftp/syshdrs.h b/rosapps/applications/net/ncftp/libncftp/syshdrs.h deleted file mode 100644 index 344db2ec41c..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/syshdrs.h +++ /dev/null @@ -1,239 +0,0 @@ -/* syshdrs.h - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#if defined(HAVE_CONFIG_H) -# include -#endif - -#if defined(WIN32) || defined(_WINDOWS) -# include "wincfg.h" -# include /* Includes */ -//# include -# ifdef HAVE_UNISTD_H -# include -# endif -# include -# include -# include -# ifdef HAVE_STRINGS_H -# include -# endif -# include -# include -# include -# include -# include -# include -# include -# include -# include -# undef strcasecmp -# define strcasecmp stricmp -# undef strncasecmp -# define strncasecmp strnicmp -# define sleep WinSleep -# ifndef S_ISREG -# define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG) -# define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR) -# endif -# ifndef open -# define open _open -# define write _write -# define read _read -# define close _close -# define lseek _lseek -# define stat _stat -# define lstat _stat -# define fstat _fstat -# define dup _dup -# define utime _utime -# define utimbuf _utimbuf -# endif -# ifndef unlink -# define unlink remove -# endif -# define NO_SIGNALS 1 -# define USE_SIO 1 -#else /* UNIX */ - -#if defined(AIX) || defined(_AIX) -# define _ALL_SOURCE 1 -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -#include -#include -#include -#include -#include -#include -#if !defined(HAVE_GETCWD) && defined(HAVE_GETWD) -# include -#endif - -#include -#include -#include -#include -#include -#include -#include -#ifdef HAVE_STRINGS_H -# include -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef HAVE_NET_ERRNO_H -# include -#endif -#ifdef HAVE_ARPA_NAMESER_H -# include -#endif -#ifdef HAVE_NSERVE_H -# include -#endif -#ifdef HAVE_RESOLV_H -# include -#endif -#ifdef CAN_USE_SYS_SELECT_H -# include -#endif - -#ifdef HAVE_GETCWD -# ifndef HAVE_UNISTD_H - extern char *getcwd(); -# endif -#else -# ifdef HAVE_GETWD -# include -# ifndef MAXPATHLEN -# define MAXPATHLEN 1024 -# endif - extern char *getwd(char *); -# endif -#endif - -#endif /* UNIX */ - - -#if defined(HAVE_LONG_LONG) && defined(HAVE_OPEN64) -# define Open open64 -#else -# define Open open -#endif - -#if defined(HAVE_LONG_LONG) && defined(HAVE_STAT64) && defined(HAVE_STRUCT_STAT64) -# define Stat stat64 -# ifdef HAVE_FSTAT64 -# define Fstat fstat64 -# else -# define Fstat fstat -# endif -# ifdef HAVE_LSTAT64 -# define Lstat lstat64 -# else -# define Lstat lstat -# endif -#else -# define Stat stat -# define Fstat fstat -# define Lstat lstat -#endif - -#if defined(HAVE_LONG_LONG) && defined(HAVE_LSEEK64) -# define Lseek(a,b,c) lseek64(a, (longest_int) b, c) -#elif defined(HAVE_LONG_LONG) && defined(HAVE_LLSEEK) -# if 1 -# if defined(LINUX) && (LINUX <= 23000) -# define Lseek(a,b,c) lseek(a, (off_t) b, c) -# else -# define Lseek(a,b,c) llseek(a, (longest_int) b, c) -# endif -# else -# define Lseek(a,b,c) lseek(a, (off_t) b, c) -# endif -#else -# define Lseek(a,b,c) lseek(a, (off_t) b, c) -#endif - - -#ifndef IAC - -/* - * Definitions for the TELNET protocol. - */ -#define IAC 255 /* interpret as command: */ -#define DONT 254 /* you are not to use option */ -#define DO 253 /* please, you use option */ -#define WONT 252 /* I won't use option */ -#define WILL 251 /* I will use option */ -#define SB 250 /* interpret as subnegotiation */ -#define GA 249 /* you may reverse the line */ -#define EL 248 /* erase the current line */ -#define EC 247 /* erase the current character */ -#define AYT 246 /* are you there */ -#define AO 245 /* abort output--but let prog finish */ -#define IP 244 /* interrupt process--permanently */ -#define BREAK 243 /* break */ -#define DM 242 /* data mark--for connect. cleaning */ -#define NOP 241 /* nop */ -#define SE 240 /* end sub negotiation */ -#define EOR 239 /* end of record (transparent mode) */ -#define ABORT 238 /* Abort process */ -#define SUSP 237 /* Suspend process */ -#define xEOF 236 /* End of file: EOF is already used... */ - -#define SYNCH 242 /* for telfunc calls */ -#endif - -#ifdef HAVE_UTIME_H -# include -#else - struct utimbuf { time_t actime, modtime; }; -#endif - - -#ifdef HAVE_LIBSOCKS5 -# define SOCKS 5 -# include -#endif - -#if 1 /* %config2% -- set by configure script -- do not modify */ -# ifndef USE_SIO -# define USE_SIO 1 -# endif -# ifndef NO_SIGNALS -# define NO_SIGNALS 1 -# endif -#else -# ifndef USE_SIO -# define USE_SIO 0 -# endif - /* #undef NO_SIGNALS */ -#endif - -#if USE_SIO -# include "sio/sio.h" /* Library header. */ -#endif - -#include "Strn/Strn.h" /* Library header. */ -#include "ncftp.h" /* Library header. */ - -#include "util.h" -#include "ftp.h" - -/* eof */ diff --git a/rosapps/applications/net/ncftp/libncftp/util.c b/rosapps/applications/net/ncftp/libncftp/util.c deleted file mode 100644 index 914fe56a4b5..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/util.c +++ /dev/null @@ -1,1048 +0,0 @@ -/* util.c - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#include "syshdrs.h" - -#if defined(WIN32) || defined(_WINDOWS) -#include -extern void GetSpecialDir(char *dst, size_t size, int whichDir); -#endif - - -static void * -Realloc(void *ptr, size_t siz) -{ - if (ptr == NULL) - return (void *) malloc(siz); - return ((void *) realloc(ptr, siz)); -} /* Realloc */ - - -/* Use getcwd/getwd to get the full path of the current local - * working directory. - */ -char * -FTPGetLocalCWD(char *buf, size_t size) -{ -#ifdef HAVE_GETCWD - static char *cwdBuf = NULL; - static size_t cwdBufSize = 0; - - if (cwdBufSize == 0) { - cwdBufSize = (size_t) 128; - cwdBuf = (char *) malloc(cwdBufSize); - } - - for (errno = 0; ; ) { - if (cwdBuf == NULL) { - return NULL; - } - - if (getcwd(cwdBuf, cwdBufSize) != NULL) - break; - if (errno != ERANGE) { - (void) Strncpy(buf, ".", size); - return NULL; - } - cwdBufSize *= 2; - cwdBuf = (char *) Realloc(cwdBuf, cwdBufSize); - } - - return (Strncpy(buf, cwdBuf, size)); -#else -#ifdef HAVE_GETWD - static char *cwdBuf = NULL; - char *dp; - - /* Due to the way getwd is usually implemented, it's - * important to have a buffer large enough to hold the - * whole thing. getwd usually starts at the end of the - * buffer, and works backwards, returning you a pointer - * to the beginning of it when it finishes. - */ - if (size < MAXPATHLEN) { - /* Buffer not big enough, so use a temporary one, - * and then copy the first 'size' bytes of the - * temporary buffer to your 'buf.' - */ - if (cwdBuf == NULL) { - cwdBuf = (char *) malloc((size_t) MAXPATHLEN); - if (cwdBuf == NULL) { - return NULL; - } - } - dp = cwdBuf; - } else { - /* Buffer is big enough already. */ - dp = buf; - } - *dp = '\0'; - if (getwd(dp) == NULL) { - /* getwd() should write the reason why in the buffer then, - * according to the man pages. - */ - (void) Strncpy(buf, ".", size); - return (NULL); - } - return (Strncpy(buf, dp, size)); - -#elif defined(WIN32) || defined(_WINDOWS) - if (GetCurrentDirectory((DWORD) size - 1, buf) < 1) - return NULL; - buf[size - 1] = '\0'; - return buf; -#else - /* Not a solution, but does anybody not have either of - * getcwd or getwd? - */ - --Error--; -#endif -#endif -} /* GetCWD */ - - - -/* Read a line, and axe the end-of-line. */ -char * -FGets(char *str, size_t size, FILE *fp) -{ - char *cp, *nlptr; - - cp = fgets(str, ((int) size) - 1, fp); - if (cp != NULL) { - cp[((int) size) - 1] = '\0'; /* ensure terminator */ - nlptr = cp + strlen(cp) - 1; - if (*nlptr == '\n') - *nlptr = '\0'; - } else { - memset(str, 0, size); - } - return cp; -} /* FGets */ - - - - -#if defined(WIN32) || defined(_WINDOWS) - -int gettimeofday(struct timeval *const tp, void *junk) -{ - SYSTEMTIME systemTime; - - GetSystemTime(&systemTime); - - /* Create an arbitrary second counter; - * Note that this particular one creates - * a problem at the end of the month. - */ - tp->tv_sec = - systemTime.wSecond + - systemTime.wMinute * 60 + - systemTime.wHour * 3600 + - systemTime.wDay * 86400; - - tp->tv_usec = systemTime.wMilliseconds * 1000; - - return 0; -} /* gettimeofday */ - -#endif - - - - -#if defined(WIN32) || defined(_WINDOWS) -#else -/* This looks up the user's password entry, trying to look by the username. - * We have a couple of extra hacks in place to increase the probability - * that we can get the username. - */ -struct passwd * -GetPwByName(void) -{ - char *cp; - struct passwd *pw; - - cp = getlogin(); - if (cp == NULL) { - cp = (char *) getenv("LOGNAME"); - if (cp == NULL) - cp = (char *) getenv("USER"); - } - pw = NULL; - if (cp != NULL) - pw = getpwnam(cp); - return (pw); -} /* GetPwByName */ -#endif - - - -char * -GetPass(const char *const prompt) -{ -#ifdef HAVE_GETPASS - return getpass(prompt); -#elif defined(_CONSOLE) && (defined(WIN32) || defined(_WINDOWS)) - static char pwbuf[128]; - char *dst, *dlim; - int c; - - (void) memset(pwbuf, 0, sizeof(pwbuf)); - if (! _isatty(_fileno(stdout))) - return (pwbuf); - (void) fputs(prompt, stdout); - (void) fflush(stdout); - - for (dst = pwbuf, dlim = dst + sizeof(pwbuf) - 1;;) { - c = _getch(); - if ((c == 0) || (c == 0xe0)) { - /* The key is a function or arrow key; read and discard. */ - (void) _getch(); - } - if ((c == '\r') || (c == '\n')) - break; - if (dst < dlim) - *dst++ = c; - } - *dst = '\0'; - - (void) fflush(stdout); - (void) fflush(stdin); - return (pwbuf); -#else - static char pwbuf[128]; - - (void) memset(pwbuf, 0, sizeof(pwbuf)); -#if defined(WIN32) || defined(_WINDOWS) - if (! _isatty(_fileno(stdout))) -#else - if (! isatty(1)) -#endif - return (pwbuf); - (void) fputs(prompt, stdout); - (void) fflush(stdout); - (void) FGets(pwbuf, sizeof(pwbuf), stdin); - (void) fflush(stdout); - (void) fflush(stdin); - return (pwbuf); -#endif -} /* GetPass */ - - - - -void -GetHomeDir(char *dst, size_t size) -{ -#if defined(WIN32) || defined(_WINDOWS) - const char *homedrive, *homepath; - - homedrive = getenv("HOMEDRIVE"); - homepath = getenv("HOMEPATH"); - if ((homedrive != NULL) && (homepath != NULL)) { - (void) Strncpy(dst, homedrive, size); - (void) Strncat(dst, homepath, size); - return; - } - -// GetSpecialDir(dst, size, CSIDL_PERSONAL /* "My Documents" */); -// if (dst[0] != '\0') -// return; -// -// dst[0] = '\0'; -// if (GetWindowsDirectory(dst, size - 1) < 1) -// (void) Strncpy(dst, ".", size); -// else if (dst[1] == ':') { -// dst[2] = '\\'; -// dst[3] = '\0'; -// } -#else - const char *cp; - struct passwd *pw; - - pw = NULL; -#if defined(USE_GETPWUID) - /* Try to use getpwuid(), but if we have to, fall back to getpwnam(). */ - if ((pw = getpwuid(getuid())) == NULL) - pw = GetPwByName(); /* Oh well, try getpwnam() then. */ -#else - /* Try to use getpwnam(), but if we have to, fall back to getpwuid(). */ - if ((pw = GetPwByName()) == NULL) - pw = getpwuid(getuid()); /* Try getpwnam() then. */ -#endif - if (pw != NULL) - cp = pw->pw_dir; - else if ((cp = (const char *) getenv("LOGNAME")) == NULL) - cp = "."; - (void) Strncpy(dst, cp, size); -#endif -} /* GetHomeDir */ - - - - -void -GetUsrName(char *dst, size_t size) -{ -#if defined(WIN32) || defined(_WINDOWS) - DWORD size1; - - size1 = size - 1; - if (! GetUserName(dst, &size1)) - (void) strncpy(dst, "unknown", size); - dst[size - 1] = '\0'; -#else - const char *cp; - struct passwd *pw; - - pw = NULL; -#ifdef USE_GETPWUID - /* Try to use getpwuid(), but if we have to, fall back to getpwnam(). */ - if ((pw = getpwuid(getuid())) == NULL) - pw = GetPwByName(); /* Oh well, try getpwnam() then. */ -#else - /* Try to use getpwnam(), but if we have to, fall back to getpwuid(). */ - if ((pw = GetPwByName()) == NULL) - pw = getpwuid(getuid()); /* Try getpwnam() then. */ -#endif - if (pw != NULL) - cp = pw->pw_name; - else if ((cp = (const char *) getenv("LOGNAME")) == NULL) - cp = "UNKNOWN"; - (void) Strncpy(dst, cp, size); -#endif -} /* GetUserName */ - - - - - -/* Closes the file supplied, if it isn't a std stream. */ -void -CloseFile(FILE **f) -{ - if (*f != NULL) { - if ((*f != stdout) && (*f != stdin) && (*f != stderr)) - (void) fclose(*f); - *f = NULL; - } -} /* CloseFile */ - - - -/*VARARGS*/ -void -PrintF(const FTPCIPtr cip, const char *const fmt, ...) -{ - va_list ap; - char buf[256]; - - va_start(ap, fmt); - if (cip->debugLog != NULL) { - (void) vfprintf(cip->debugLog, fmt, ap); - (void) fflush(cip->debugLog); - } - if (cip->debugLogProc != NULL) { -#ifdef HAVE_VSNPRINTF - (void) vsnprintf(buf, sizeof(buf) - 1, fmt, ap); - buf[sizeof(buf) - 1] = '\0'; -#else - (void) vsprintf(buf, fmt, ap); -#endif - (*cip->debugLogProc)(cip, buf); - } - va_end(ap); -} /* PrintF */ - - - - - -/*VARARGS*/ -void -Error(const FTPCIPtr cip, const int pError, const char *const fmt, ...) -{ - va_list ap; - int errnum; - size_t len; - char buf[256]; - int endsinperiod; - int endsinnewline; -#ifndef HAVE_STRERROR - char errnostr[16]; -#endif - - errnum = errno; - va_start(ap, fmt); -#ifdef HAVE_VSNPRINTF - vsnprintf(buf, sizeof(buf) - 1, fmt, ap); - buf[sizeof(buf) - 1] = '\0'; -#else - (void) vsprintf(buf, fmt, ap); -#endif - va_end(ap); - - if (pError != 0) { - len = strlen(buf); - endsinperiod = 0; - endsinnewline = 0; - if (len > 2) { - if (buf[len - 1] == '\n') { - endsinnewline = 1; - buf[len - 1] = '\0'; - if (buf[len - 2] == '.') { - endsinperiod = 1; - buf[len - 2] = '\0'; - } - } else if (buf[len - 1] == '.') { - endsinperiod = 1; - buf[len - 1] = '\0'; - } - } -#ifdef HAVE_STRERROR - (void) STRNCAT(buf, ": "); - (void) STRNCAT(buf, strerror(errnum)); -#else -# ifdef HAVE_SNPRINTF - sprintf(errnostr, sizeof(errnostr) - 1, " (errno = %d)", errnum); - errnostr[sizeof(errnostr) - 1] = '\0'; -# else - sprintf(errnostr, " (errno = %d)", errnum); -# endif - STRNCAT(buf, errnostr); -#endif - if (endsinperiod != 0) - (void) STRNCAT(buf, "."); - if (endsinnewline != 0) - (void) STRNCAT(buf, "\n"); - } - - if (cip->errLog != NULL) { - (void) fprintf(cip->errLog, "%s", buf); - (void) fflush(cip->errLog); - } - if ((cip->debugLog != NULL) && (cip->debugLog != cip->errLog)) { - if ((cip->errLog != stderr) || (cip->debugLog != stdout)) { - (void) fprintf(cip->debugLog, "%s", buf); - (void) fflush(cip->debugLog); - } - } - if (cip->errLogProc != NULL) { - (*cip->errLogProc)(cip, buf); - } - if ((cip->debugLogProc != NULL) && (cip->debugLogProc != cip->errLogProc)) { - (*cip->debugLogProc)(cip, buf); - } -} /* Error */ - - - - -/* Cheezy, but somewhat portable way to get GMT offset. */ -#ifdef HAVE_MKTIME -static -time_t GetUTCOffset(int mon, int mday) -{ - struct tm local_tm, utc_tm, *utc_tmptr; - time_t local_t, utc_t, utcOffset; - - ZERO(local_tm); - ZERO(utc_tm); - utcOffset = 0; - - local_tm.tm_year = 94; /* Doesn't really matter. */ - local_tm.tm_mon = mon; - local_tm.tm_mday = mday; - local_tm.tm_hour = 12; - local_tm.tm_isdst = -1; - local_t = mktime(&local_tm); - - if (local_t != (time_t) -1) { - utc_tmptr = gmtime(&local_t); - utc_tm.tm_year = utc_tmptr->tm_year; - utc_tm.tm_mon = utc_tmptr->tm_mon; - utc_tm.tm_mday = utc_tmptr->tm_mday; - utc_tm.tm_hour = utc_tmptr->tm_hour; - utc_tm.tm_isdst = -1; - utc_t = mktime(&utc_tm); - - if (utc_t != (time_t) -1) - utcOffset = (local_t - utc_t); - } - return (utcOffset); -} /* GetUTCOffset */ -#endif /* HAVE_MKTIME */ - - - -/* Converts a MDTM date, like "19930602204445" - * format to a time_t. - */ -time_t UnMDTMDate(char *dstr) -{ -#ifndef HAVE_MKTIME - return (kModTimeUnknown); -#else - struct tm ut, *t; - time_t mt, now; - time_t result = kModTimeUnknown; - - if (strncmp(dstr, "19100", 5) == 0) { - /* Server Y2K bug! */ - return (result); - } - - (void) time(&now); - t = localtime(&now); - - /* Copy the whole structure of the 'tm' pointed to by t, so it will - * also set all fields we don't specify explicitly to be the same as - * they were in t. That way we copy non-standard fields such as - * tm_gmtoff, if it exists or not. - */ - ut = *t; - - /* The time we get back from the server is (should be) in UTC. */ - if (sscanf(dstr, "%04d%02d%02d%02d%02d%02d", - &ut.tm_year, - &ut.tm_mon, - &ut.tm_mday, - &ut.tm_hour, - &ut.tm_min, - &ut.tm_sec) == 6) - { - --ut.tm_mon; - ut.tm_year -= 1900; - mt = mktime(&ut); - if (mt != (time_t) -1) { - mt += GetUTCOffset(ut.tm_mon, ut.tm_mday); - result = (time_t) mt; - } - } - return result; -#endif /* HAVE_MKTIME */ -} /* UnMDTMDate */ - - - -int -GetSockBufSize(int sockfd, size_t *rsize, size_t *ssize) -{ -#ifdef SO_SNDBUF - int rc = -1; - int opt; - int optsize; - - if (ssize != NULL) { - opt = 0; - optsize = sizeof(opt); - rc = getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *) &opt, &optsize); - if (rc == 0) - *ssize = (size_t) opt; - else - *ssize = 0; - } - if (rsize != NULL) { - opt = 0; - optsize = sizeof(opt); - rc = getsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, (char *) &opt, &optsize); - if (rc == 0) - *rsize = (size_t) opt; - else - *rsize = 0; - } - return (rc); -#else - if (ssize != NULL) - *ssize = 0; - if (rsize != NULL) - *rsize = 0; - return (-1); -#endif -} /* GetSockBufSize */ - - - -int -SetSockBufSize(int sockfd, size_t rsize, size_t ssize) -{ -#ifdef SO_SNDBUF - int rc = -1; - int opt; - int optsize; - -#ifdef TCP_RFC1323 - /* This is an AIX-specific socket option to do RFC1323 large windows */ - if (ssize > 0 || rsize > 0) { - opt = 1; - optsize = sizeof(opt); - rc = setsockopt(sockfd, IPPROTO_TCP, TCP_RFC1323, &opt, optsize); - } -#endif - - if (ssize > 0) { - opt = (int) ssize; - optsize = sizeof(opt); - rc = setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *) &opt, optsize); - } - if (rsize > 0) { - opt = (int) rsize; - optsize = sizeof(opt); - rc = setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, (char *) &opt, optsize); - } - return (rc); -#else - return (-1); -#endif -} /* SetSockBufSize */ - - - -void -Scramble(unsigned char *dst, size_t dsize, unsigned char *src, char *key) -{ - int i; - unsigned int ch; - unsigned char *k2; - size_t keyLen; - - keyLen = strlen(key); - k2 = (unsigned char *) key; - for (i=0; i < (int) dsize - 1; i++) { - ch = src[i]; - if (ch == 0) - break; - dst[i] = (unsigned char) (ch ^ (int) (k2[i % (int) keyLen])); - } - dst[i] = '\0'; -} /* Scramble */ - - - - - -#if defined(WIN32) || defined(_WINDOWS) -void WinSleep(unsigned int seconds) -{ - DWORD now, deadline; - DWORD milliseconds = seconds * 1000; - - if (milliseconds > 0) { - now = GetTickCount(); - deadline = now + milliseconds; - if (now < deadline) { - /* Typical case */ - do { - milliseconds = deadline - now; - Sleep(milliseconds); - now = GetTickCount(); - } while (now < deadline); - } else { - /* Overflow case */ - deadline = now - 1; - milliseconds -= (0xFFFFFFFF - now); - do { - Sleep(0xFFFFFFFF - now); - now = GetTickCount(); - } while (now > deadline); - /* Counter has now wrapped around */ - deadline = now + milliseconds; - do { - milliseconds = deadline - now; - Sleep(milliseconds); - now = GetTickCount(); - } while (now < deadline); - } - } -} /* WinSleep */ - - - - -char * -StrFindLocalPathDelim(const char *src) /* TODO: optimize */ -{ - const char *first; - int c; - - first = NULL; - for (;;) { - c = *src++; - if (c == '\0') - break; - if (IsLocalPathDelim(c)) { - first = src - 1; - break; - } - } - - return ((char *) first); -} /* StrFindLocalPathDelim */ - - - -char * -StrRFindLocalPathDelim(const char *src) /* TODO: optimize */ -{ - const char *last; - int c; - - last = NULL; - for (;;) { - c = *src++; - if (c == '\0') - break; - if (IsLocalPathDelim(c)) - last = src - 1; - } - - return ((char *) last); -} /* StrRFindLocalPathDelim */ - - - - -void -StrRemoveTrailingLocalPathDelim(char *dst) -{ - char *cp; - - cp = StrRFindLocalPathDelim(dst); - if ((cp == NULL) || (cp[1] != '\0')) - return; - - /* Note: Do not destroy a path of "/" */ - while ((cp > dst) && (IsLocalPathDelim(*cp))) - *cp-- = '\0'; -} /* StrRemoveTrailingLocalPathDelim */ - - - -void -TVFSPathToLocalPath(char *dst) -{ - int c; - - /* Note: Technically we don't need to do this, - * since Win32 accepts a / as equivalent to a \ - * in a pathname. - */ - if (dst != NULL) { - for (;;) { - c = *dst++; - if (c == '\0') - break; - if (c == '/') - dst[-1] = LOCAL_PATH_DELIM; - } - } -} /* TVFSPathToLocalPath */ - - -void -LocalPathToTVFSPath(char *dst) -{ - int c; - - if (dst != NULL) { - for (;;) { - c = *dst++; - if (c == '\0') - break; - if (c == LOCAL_PATH_DELIM) - dst[-1] = '/'; - } - } -} /* LocalPathToTVFSPath */ -#endif /* WINDOWS */ - - - - -void -StrRemoveTrailingSlashes(char *dst) -{ - char *cp; - - cp = strrchr(dst, '/'); - if ((cp == NULL) || (cp[1] != '\0')) - return; - - /* Note: Do not destroy a path of "/" */ - while ((cp > dst) && (*cp == '/')) - *cp-- = '\0'; -} /* StrRemoveTrailingSlashes */ - - - - -int -MkDirs(const char *const newdir, int mode1) -{ - char s[512]; - int rc; - char *cp, *sl; -#if defined(WIN32) || defined(_WINDOWS) - struct _stat st; - char *share; -#else - struct Stat st; - mode_t mode = (mode_t) mode1; -#endif - -#if defined(WIN32) || defined(_WINDOWS) - if ((isalpha(newdir[0])) && (newdir[1] == ':')) { - if (! IsLocalPathDelim(newdir[2])) { - /* Special case "c:blah", and errout. - * "c:\blah" must be used or _access GPFs. - */ - errno = EINVAL; - return (-1); - } else if (newdir[3] == '\0') { - /* Special case root directory, which cannot be made. */ - return (0); - } - } else if (IsUNCPrefixed(newdir)) { - share = StrFindLocalPathDelim(newdir + 2); - if ((share == NULL) || (StrFindLocalPathDelim(share + 1) == NULL)) - return (-1); - } - - if (_access(newdir, 00) == 0) { - if (_stat(newdir, &st) < 0) - return (-1); - if (! S_ISDIR(st.st_mode)) { - errno = ENOTDIR; - return (-1); - } - return 0; - } -#else - if (access(newdir, F_OK) == 0) { - if (Stat(newdir, &st) < 0) - return (-1); - if (! S_ISDIR(st.st_mode)) { - errno = ENOTDIR; - return (-1); - } - return 0; - } -#endif - - (void) strncpy(s, newdir, sizeof(s)); - if (s[sizeof(s) - 1] != '\0') { -#ifdef ENAMETOOLONG - errno = ENAMETOOLONG; -#else - errno = EINVAL; - return (-1); -#endif - } - - cp = StrRFindLocalPathDelim(s); - if (cp == NULL) { -#if defined(WIN32) || defined(_WINDOWS) - if (! CreateDirectory(newdir, (LPSECURITY_ATTRIBUTES) 0)) - return (-1); - return (0); -#else - rc = mkdir(newdir, mode); - return (rc); -#endif - } else if (cp[1] == '\0') { - /* Remove trailing slashes from path. */ - --cp; - while (cp > s) { - if (! IsLocalPathDelim(*cp)) - break; - --cp; - } - cp[1] = '\0'; - cp = StrRFindLocalPathDelim(s); - if (cp == NULL) { -#if defined(WIN32) || defined(_WINDOWS) - if (! CreateDirectory(s, (LPSECURITY_ATTRIBUTES) 0)) - return (-1); -#else - rc = mkdir(s, mode); - return (rc); -#endif - } - } - - /* Find the deepest directory in this - * path that already exists. When - * we do, we want to have the 's' - * string as it was originally, but - * with 'cp' pointing to the first - * slash in the path that starts the - * part that does not exist. - */ - sl = NULL; - for (;;) { - *cp = '\0'; -#if defined(WIN32) || defined(_WINDOWS) - rc = _access(s, 00); -#else - rc = access(s, F_OK); -#endif - if (sl != NULL) - *sl = LOCAL_PATH_DELIM; - if (rc == 0) { - *cp = LOCAL_PATH_DELIM; - break; - } - sl = cp; - cp = StrRFindLocalPathDelim(s); - if (cp == NULL) { - /* We do not have any more - * slashes, so none of the - * new directory's components - * existed before, so we will - * have to make everything - * starting at the first node. - */ - if (sl != NULL) - *sl = LOCAL_PATH_DELIM; - - /* We refer to cp + 1 below, - * so this is why we can - * set "cp" to point to the - * byte before the array starts. - */ - cp = s - 1; - break; - } - } - - for (;;) { - /* Extend the path we have to - * include the next component - * to make. - */ - sl = StrFindLocalPathDelim(cp + 1); - if (sl == s) { - /* If the next slash is pointing - * to the start of the string, then - * the path is an absolute path and - * we don't need to make the root node, - * and besides the next mkdir would - * try an empty string. - */ - ++cp; - sl = StrFindLocalPathDelim(cp + 1); - } - if (sl != NULL) { - *sl = '\0'; - } -#if defined(WIN32) || defined(_WINDOWS) - if (! CreateDirectory(s, (LPSECURITY_ATTRIBUTES) 0)) - return (-1); -#else - rc = mkdir(s, mode); - if (rc < 0) - return rc; -#endif - if (sl == NULL) - break; - *sl = LOCAL_PATH_DELIM; - cp = sl; - } - return (0); -} /* MkDirs */ - - - - -int -FilenameExtensionIndicatesASCII(const char *const pathName, const char *const extnList) -{ - const char *extn; - char *cp; - int c; - char extnPattern[16]; - - extn = pathName + strlen(pathName) - 1; - forever { - if (extn <= pathName) - return (0); /* End of pathname, no extension. */ - c = (int) *--extn; - if (IsLocalPathDelim(c)) - return (0); /* End of filename, no extension. */ - if (c == '.') { - extn += 1; - break; - } - } - if (strlen(extn) > (sizeof(extnPattern) - 2 - 1 - 1)) { - return (0); - } -#ifdef HAVE_SNPRINTF - snprintf(extnPattern, sizeof(extnPattern), -#else - sprintf(extnPattern, -#endif - "|.%s|", - extn - ); - - cp = extnPattern; - forever { - c = *cp; - if (c == '\0') - break; - if (isupper(c)) { - c = tolower(c); - *cp++ = (char) c; - } else { - cp++; - } - } - - /* Extension list is specially formatted, like this: - * - * |ext1|ext2|ext3|...|extN| - * - * I.e, each filename extension is delimited with - * a pipe, and we always begin and end the string - * with a pipe. - */ - if (strstr(extnList, extnPattern) != NULL) { - return (1); - } - return (0); -} /* FilenameExtensionIndicatesASCII */ - - - - - -#ifdef HAVE_SIGACTION -void (*NcSignal(int signum, void (*handler)(int)))(int) -{ - struct sigaction sa, osa; - - (void) sigemptyset(&sa.sa_mask); - sa.sa_flags = 0; - sa.sa_handler = handler; - if (signum == SIGALRM) { -#ifdef SA_INTERRUPT - sa.sa_flags |= SA_INTERRUPT; -#endif - } else { -#ifdef SA_RESTART - sa.sa_flags |= SA_RESTART; -#endif - } - if (sigaction(signum, &sa, &osa) < 0) - return ((FTPSigProc) SIG_ERR); - return (osa.sa_handler); -} -#endif /* HAVE_SIGACTION */ - -/* eof */ diff --git a/rosapps/applications/net/ncftp/libncftp/util.h b/rosapps/applications/net/ncftp/libncftp/util.h deleted file mode 100644 index 061a6ecef0a..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/util.h +++ /dev/null @@ -1,108 +0,0 @@ -/* Util.h - * - * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. - * All rights reserved. - * - */ - -#ifndef _util_h_ -#define _util_h_ 1 - -typedef char string[160], str16[16], str32[32], str64[64]; -typedef char longstring[512]; -typedef char pathname[512]; - -#ifndef PTRZERO -# define PTRZERO(p,siz) (void) memset(p, 0, (size_t) (siz)) -#endif - -#define ZERO(a) PTRZERO(&(a), sizeof(a)) -#define STREQ(a,b) (strcmp(a,b) == 0) -#define STRNEQ(a,b,s) (strncmp(a,b,(size_t)(s)) == 0) - -#ifndef ISTRCMP -# ifdef HAVE_STRCASECMP -# define ISTRCMP strcasecmp -# define ISTRNCMP strncasecmp -# else -# define ISTRCMP strcmp -# define ISTRNCMP strncmp -# endif -#endif - -#define ISTREQ(a,b) (ISTRCMP(a,b) == 0) -#define ISTRNEQ(a,b,s) (ISTRNCMP(a,b,(size_t)(s)) == 0) - -typedef int (*cmp_t)(const void *, const void *); -#define QSORT(base,n,s,cmp) \ - qsort(base, (size_t)(n), (size_t)(s), (cmp_t)(cmp)) - -#define BSEARCH(key,base,n,s,cmp) \ - bsearch(key, base, (size_t)(n), (size_t)(s), (cmp_t)(cmp)) - -/* For Error(): */ -#define kDoPerror 1 -#define kDontPerror 0 - -#define kClosedFileDescriptor (-1) - -#define SZ(a) ((size_t) (a)) - -#ifndef F_OK -# define F_OK 0 -#endif - -#ifdef HAVE_REMOVE -# define UNLINK remove -#else -# define UNLINK unlink -#endif - -#ifndef SEEK_SET -# define SEEK_SET 0 -# define SEEK_CUR 1 -# define SEEK_END 2 -#endif /* SEEK_SET */ - -#ifdef SETVBUF_REVERSED -# define SETVBUF(a,b,c,d) setvbuf(a,c,b,d) -#else -# define SETVBUF setvbuf -#endif - - -/* Util.c */ -char *FGets(char *, size_t, FILE *); -struct passwd *GetPwByName(void); -void GetHomeDir(char *, size_t); -void GetUsrName(char *, size_t); -void CloseFile(FILE **); -void PrintF(const FTPCIPtr cip, const char *const fmt, ...) -#if (defined(__GNUC__)) && (__GNUC__ >= 2) -__attribute__ ((format (printf, 2, 3))) -#endif -; -void Error(const FTPCIPtr cip, const int pError, const char *const fmt, ...) -#if (defined(__GNUC__)) && (__GNUC__ >= 2) -__attribute__ ((format (printf, 3, 4))) -#endif -; -int GetSockBufSize(int sockfd, size_t *rsize, size_t *ssize); -int SetSockBufSize(int sockfd, size_t rsize, size_t ssize); -time_t UnMDTMDate(char *); -void Scramble(unsigned char *dst, size_t dsize, unsigned char *src, char *key); -#if defined(WIN32) || defined(_WINDOWS) -char *StrFindLocalPathDelim(const char *src); -char *StrRFindLocalPathDelim(const char *src); -void TVFSPathToLocalPath(char *dst); -void LocalPathToTVFSPath(char *dst); -int gettimeofday(struct timeval *const tp, void *junk); -#endif - -#ifdef HAVE_SIGACTION -void (*NcSignal(int signum, void (*handler)(int)))(int); -#elif !defined(NcSignal) -# define NcSignal signal -#endif - -#endif /* _util_h_ */ diff --git a/rosapps/applications/net/ncftp/libncftp/util2.cpp b/rosapps/applications/net/ncftp/libncftp/util2.cpp deleted file mode 100644 index 499fcf7aa9b..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/util2.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include "syshdrs.h" - -#if defined(WIN32) || defined(_WINDOWS) - -extern "C" void -GetSpecialDir(char *dst, size_t size, int whichDir) -{ - LPITEMIDLIST idl; - LPMALLOC shl; - char path[MAX_PATH + 1]; - HRESULT hResult; - - memset(dst, 0, size); - hResult = SHGetMalloc(&shl); - if (SUCCEEDED(hResult)) { - hResult = SHGetSpecialFolderLocation( - NULL, - CSIDL_PERSONAL, - &idl - ); - - if (SUCCEEDED(hResult)) { - if(SHGetPathFromIDList(idl, path)) { - (void) strncpy(dst, path, size - 1); - dst[size - 1] = '\0'; - } - shl->Free(idl); - } - shl->Release(); - } -} // GetSpecialDir - - -#endif diff --git a/rosapps/applications/net/ncftp/libncftp/wincfg.h b/rosapps/applications/net/ncftp/libncftp/wincfg.h deleted file mode 100644 index c6afc4ddfcb..00000000000 --- a/rosapps/applications/net/ncftp/libncftp/wincfg.h +++ /dev/null @@ -1,33 +0,0 @@ -#define SELECT_TYPE_ARG1 int - -/* Define to the type of args 2, 3 and 4 for select(). */ -#define SELECT_TYPE_ARG234 (fd_set *) - -/* Define to the type of arg5 for select(). */ -#define SELECT_TYPE_ARG5 (struct timeval *) - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define if you have the gethostname function. */ -#define HAVE_GETHOSTNAME 1 - -/* Define if you have the mktime function. */ -#define HAVE_MKTIME 1 - -/* Define if you have the socket function. */ -#define HAVE_SOCKET 1 - -/* #define HAVE_STRCASECMP 1 */ - -/* Define if you have the strstr function. */ -#define HAVE_STRSTR 1 - -/* Define if you have the header file. */ -/* #define HAVE_UNISTD_H 1 */ - -#define HAVE_LONG_LONG 1 -#define SCANF_LONG_LONG "%I64d" -#define PRINTF_LONG_LONG "%I64d" -#define PRINTF_LONG_LONG_I64D 1 -#define SCANF_LONG_LONG_I64D 1 diff --git a/rosapps/applications/net/ncftp/ncftp.rbuild b/rosapps/applications/net/ncftp/ncftp.rbuild deleted file mode 100644 index b2b35a8c764..00000000000 --- a/rosapps/applications/net/ncftp/ncftp.rbuild +++ /dev/null @@ -1,91 +0,0 @@ - - . - sio - Strn - libncftp - ncftp - - - user32 - advapi32 - ws2_32 - - - PRead.c - PWrite.c - SAcceptA.c - SAcceptS.c - SBind.c - SClose.c - SConnect.c - SConnectByName.c - SNew.c - SRead.c - SReadline.c - SRecv.c - SRecvfrom.c - SRecvmsg.c - SSelect.c - SSend.c - SSendto.c - SSendtoByName.c - SWrite.c - SocketUtil.c - StrAddr.c - UAcceptA.c - UAcceptS.c - UBind.c - UConnect.c - UConnectByName.c - UNew.c - URecvfrom.c - USendto.c - USendtoByName.c - SError.c - SWait.c - main.c - - - - Dynscat.c - Strncpy.c - Strncat.c - Strntok.c - Strnpcpy.c - Strnpcat.c - strtokc.c - version.c - - - - open.c - cmds.c - util.c - rcmd.c - ftp.c - io.c - errno.c - linelist.c - glob.c - - - - cmds.c - cmdlist.c - getopt.c - ls.c - main.c - version.c - shell.c - util.c - readln.c - progress.c - bookmark.c - pref.c - preffw.c - trace.c - spool.c - log.c - getline.c - - diff --git a/rosapps/applications/net/ncftp/ncftp.rc b/rosapps/applications/net/ncftp/ncftp.rc deleted file mode 100644 index 08a94307838..00000000000 --- a/rosapps/applications/net/ncftp/ncftp.rc +++ /dev/null @@ -1,7 +0,0 @@ -/* $Id$ */ - -#define REACTOS_STR_FILE_DESCRIPTION "Ncftp for Win32\0" -#define REACTOS_STR_INTERNAL_NAME "ncftp\0" -#define REACTOS_STR_ORIGINAL_FILENAME "ncftp.exe\0" -#define REACTOS_STR_ORIGINAL_COPYRIGHT "Anonymous sources found at http://www.ncftp.org/\0" -#include diff --git a/rosapps/applications/net/ncftp/ncftp/Makefile.in b/rosapps/applications/net/ncftp/ncftp/Makefile.in deleted file mode 100644 index 2a603c27f68..00000000000 --- a/rosapps/applications/net/ncftp/ncftp/Makefile.in +++ /dev/null @@ -1,89 +0,0 @@ -#----------------------------------------------------------------------------- -# -# NcFTP makefile for the platform @OS@, on the host @host@. -# -#----------------------------------------------------------------------------- - -CC=@CC@ -CFLAGS=@CFLAGS@ -#CC=gcc -#CFLAGS=-O2 -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wbad-function-cast -Wwrite-strings -Wconversion -VPATH=@srcdir@ -CPPFLAGS=@CPPFLAGS@ -I. -I../libncftp -I../Strn -I../sio -prefix=@prefix@ -exec_prefix=@exec_prefix@ -BINDIR=@bindir@ - -LIBS=@LIBS@ -STRIP=strip -LDFLAGS=-L../libncftp -L../Strn -L../sio @LDFLAGS@ - -# Any -D definitions: -BETA=# -DBETA=20 -DEFS=-Dncftp $(BETA) -DBINDIR=\"$(BINDIR)\" @DEFS@ - -OBJS=cmds.@OBJEXT@ cmdlist.@OBJEXT@ getopt.@OBJEXT@ ls.@OBJEXT@ main.@OBJEXT@ version.@OBJEXT@ shell.@OBJEXT@ util.@OBJEXT@ readln.@OBJEXT@ progress.@OBJEXT@ bookmark.@OBJEXT@ pref.@OBJEXT@ preffw.@OBJEXT@ trace.@OBJEXT@ spool.@OBJEXT@ log.@OBJEXT@ getline.@OBJEXT@ - -DPROGS=../bin/ncftp@EXEEXT@ - -all: $(DPROGS) - -@echo 'Done making NcFTP.' - -../bin/ncftp@EXEEXT@: $(OBJS) ../libncftp/libncftp.a -@Z30@ - $(CC) $(CFLAGS) $(DEFS) $(CPPFLAGS) $(OBJS) -o ../bin/ncftp@EXEEXT@ $(LDFLAGS) -lncftp -lStrn -lsio $(LIBS) - -@$(STRIP) ../bin/ncftp@EXEEXT@ - -clean: - /bin/rm -f $(DPROGS) $(OBJS) - -SHELL=/bin/sh -.SUFFIXES: .c .@OBJEXT@ - -.c.@OBJEXT@: - $(CC) $(CFLAGS) $(DEFS) $(CPPFLAGS) $< -c - -PACKAGE=Makefile.in bookmark.c bookmark.h cmdlist.c \ - cmds.c cmds.h getopt.c getopt.h \ - ls.c ls.h main.c main.h \ - pref.c pref.h progress.c progress.h \ - readln.c readln.h shell.c shell.h \ - spool.c spool.h syshdrs.h trace.c \ - trace.h util.c util.h version.c \ - preffw.c log.c log.h getline.c \ - getline.h - -TMPDIR=/tmp -TARDIR=ncftp - -tarcp: - -@mkdir -p $(TMPDIR)/TAR/$(TARDIR) - -@chmod ga+r $(PACKAGE) - -@chmod 755 $(TMPDIR)/TAR/$(TARDIR) - cp -pr $(PACKAGE) $(TMPDIR)/TAR/$(TARDIR) - -### Dependencies ############################################################# - -version.@OBJEXT@: version.c - $(CC) $(CFLAGS) -DOS=\"@OS@\" $< -c - -bookmark.@OBJEXT@: bookmark.c syshdrs.h bookmark.h util.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -cmdlist.@OBJEXT@: cmdlist.c syshdrs.h shell.h bookmark.h cmds.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -cmds.@OBJEXT@: cmds.c syshdrs.h shell.h util.h ls.h bookmark.h cmds.h main.h \ - trace.h pref.h spool.h getopt.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -getopt.@OBJEXT@: getopt.c getopt.h -ls.@OBJEXT@: ls.c syshdrs.h util.h ls.h trace.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -main.@OBJEXT@: main.c syshdrs.h ls.h bookmark.h cmds.h main.h shell.h \ - getopt.h progress.h pref.h readln.h trace.h spool.h util.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -pref.@OBJEXT@: pref.c syshdrs.h pref.h util.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -preffw.@OBJEXT@: preffw.c syshdrs.h pref.h util.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -progress.@OBJEXT@: progress.c syshdrs.h util.h progress.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -readln.@OBJEXT@: readln.c syshdrs.h shell.h util.h bookmark.h cmds.h ls.h \ - readln.h getline.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -shell.@OBJEXT@: shell.c syshdrs.h shell.h util.h bookmark.h cmds.h readln.h \ - trace.h main.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -spool.@OBJEXT@: spool.c syshdrs.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -trace.@OBJEXT@: trace.c syshdrs.h trace.h util.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -util.@OBJEXT@: util.c syshdrs.h shell.h trace.h util.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -log.@OBJEXT@: log.c syshdrs.h log.h util.h ../libncftp/ncftp.h ../libncftp/ncftp_errno.h -getline.@OBJEXT@: getline.c syshdrs.h getline.h diff --git a/rosapps/applications/net/ncftp/ncftp/bookmark.c b/rosapps/applications/net/ncftp/ncftp/bookmark.c deleted file mode 100644 index e42eaee52e2..00000000000 --- a/rosapps/applications/net/ncftp/ncftp/bookmark.c +++ /dev/null @@ -1,845 +0,0 @@ -/* bookmark.c - * - * Copyright (c) 1992-2001 by Mike Gleason. - * All rights reserved. - * - */ - -#include "syshdrs.h" - -#include "bookmark.h" -#include "util.h" - -/* - * The ~/.ncftp/bookmarks file contains a list of sites - * the user wants to remember. - * - * Unlike previous versions of the program, we now open/close - * the file every time we need it; That way we can have - * multiple ncftp processes changing the file. There is still - * a possibility that two different processes could be modifying - * the file at the same time. - */ - -Bookmark gBm; -int gLoadedBm = 0; -int gBookmarkMatchMode = 0; -int gNumBookmarks = 0; -BookmarkPtr gBookmarkTable = NULL; - -extern char gOurDirectoryPath[]; - -/* Converts a pre-loaded Bookmark structure into a RFC 1738 - * Uniform Resource Locator. - */ -void -BookmarkToURL(BookmarkPtr bmp, char *url, size_t urlsize) -{ - char pbuf[32]; - - /* //:@:/ */ - /* Note that if an absolute path is given, - * you need to escape the first entry, i.e. /pub -> %2Fpub - */ - (void) Strncpy(url, "ftp://", urlsize); - if (bmp->user[0] != '\0') { - (void) Strncat(url, bmp->user, urlsize); - if (bmp->pass[0] != '\0') { - (void) Strncat(url, ":", urlsize); - (void) Strncat(url, "PASSWORD", urlsize); - } - (void) Strncat(url, "@", urlsize); - } - (void) Strncat(url, bmp->name, urlsize); - if (bmp->port != 21) { - (void) sprintf(pbuf, ":%u", (unsigned int) bmp->port); - (void) Strncat(url, pbuf, urlsize); - } - if (bmp->dir[0] == '/') { - /* Absolute URL path, must escape first slash. */ - (void) Strncat(url, "/%2F", urlsize); - (void) Strncat(url, bmp->dir + 1, urlsize); - (void) Strncat(url, "/", urlsize); - } else if (bmp->dir[0] != '\0') { - (void) Strncat(url, "/", urlsize); - (void) Strncat(url, bmp->dir, urlsize); - (void) Strncat(url, "/", urlsize); - } -} /* BookmarkToURL */ - - - - -void -SetBookmarkDefaults(BookmarkPtr bmp) -{ - (void) memset(bmp, 0, sizeof(Bookmark)); - - bmp->xferType = 'I'; - bmp->xferMode = 'S'; /* Use FTP protocol default as ours too. */ - bmp->hasSIZE = kCommandAvailabilityUnknown; - bmp->hasMDTM = kCommandAvailabilityUnknown; - bmp->hasUTIME = kCommandAvailabilityUnknown; - bmp->hasPASV = kCommandAvailabilityUnknown; - bmp->isUnix = 1; - bmp->lastCall = (time_t) 0; - bmp->deleted = 0; -} /* SetBookmarkDefaults */ - - - - -/* Used when converting hex strings to integral types. */ -static int -HexCharToNibble(int c) -{ - switch (c) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - return (c - '0'); - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - return (c - 'a' + 10); - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - return (c - 'A' + 10); - - } - return (-1); /* Error. */ -} /* HexCharToNibble */ - - - - - -/* Fills in a Bookmark structure based off of a line from the NcFTP - * "bookmarks" file. - */ -int -ParseHostLine(char *line, BookmarkPtr bmp) -{ - char token[128]; - char pass[128]; - char *s, *d; - char *tokenend; - long L; - int i; - int result; - int n, n1, n2; - - SetBookmarkDefaults(bmp); - s = line; - tokenend = token + sizeof(token) - 1; - result = -1; - for (i=1; ; i++) { - if (*s == '\0') - break; - /* Some tokens may need to have a comma in them. Since this is a - * field delimiter, these fields use \, to represent a comma, and - * \\ for a backslash. This chunk gets the next token, paying - * attention to the escaped stuff. - */ - for (d = token; *s != '\0'; ) { - if ((*s == '\\') && (s[1] != '\0')) { - if (d < tokenend) - *d++ = s[1]; - s += 2; - } else if (*s == ',') { - ++s; - break; - } else if ((*s == '$') && (s[1] != '\0') && (s[2] != '\0')) { - n1 = HexCharToNibble(s[1]); - n2 = HexCharToNibble(s[2]); - if ((n1 >= 0) && (n2 >= 0)) { - n = (n1 << 4) | n2; - if (d < tokenend) - *(unsigned char *)d++ = (unsigned int) n; - } - s += 3; - } else { - if (d < tokenend) - *d++ = *s; - ++s; - } - } - *d = '\0'; - switch(i) { - case 1: (void) STRNCPY(bmp->bookmarkName, token); break; - case 2: (void) STRNCPY(bmp->name, token); break; - case 3: (void) STRNCPY(bmp->user, token); break; - case 4: (void) STRNCPY(bmp->pass, token); break; - case 5: (void) STRNCPY(bmp->acct, token); break; - case 6: (void) STRNCPY(bmp->dir, token); - result = 0; /* Good enough to have these fields. */ - break; - case 7: - if (token[0] != '\0') - bmp->xferType = (int) token[0]; - break; - case 8: - /* Most of the time, we won't have a port. */ - if (token[0] == '\0') - bmp->port = (unsigned int) kDefaultFTPPort; - else - bmp->port = (unsigned int) atoi(token); - break; - case 9: - (void) sscanf(token, "%lx", &L); - bmp->lastCall = (time_t) L; - break; - case 10: bmp->hasSIZE = atoi(token); break; - case 11: bmp->hasMDTM = atoi(token); break; - case 12: bmp->hasPASV = atoi(token); break; - case 13: bmp->isUnix = atoi(token); - result = 3; /* Version 3 had all fields to here. */ - break; - case 14: (void) STRNCPY(bmp->lastIP, token); break; - case 15: (void) STRNCPY(bmp->comment, token); break; - case 16: - case 17: - case 18: - case 19: - break; - case 20: bmp->xferMode = token[0]; - result = 7; /* Version 7 has all fields to here. */ - break; - case 21: bmp->hasUTIME = atoi(token); - break; - case 22: (void) STRNCPY(bmp->ldir, token); - result = 8; /* Version 8 has all fields to here. */ - break; - default: - result = 99; /* Version >8 ? */ - goto done; - } - } -done: - - /* Decode password, if it was base-64 encoded. */ - if (strncmp(bmp->pass, kPasswordMagic, kPasswordMagicLen) == 0) { - FromBase64(pass, bmp->pass + kPasswordMagicLen, strlen(bmp->pass + kPasswordMagicLen), 1); - (void) STRNCPY(bmp->pass, pass); - } - return (result); -} /* ParseHostLine */ - - - - -void -CloseBookmarkFile(FILE *fp) -{ - if (fp != NULL) - (void) fclose(fp); -} /* CloseBookmarkFile */ - - - - - -int -GetNextBookmark(FILE *fp, Bookmark *bmp) -{ - char line[512]; - - while (FGets(line, sizeof(line), fp) != NULL) { - if (ParseHostLine(line, bmp) >= 0) - return (0); - } - return (-1); -} /* GetNextBookmark */ - - - - -/* Opens a NcFTP 2.x or 3.x style bookmarks file, and sets the file pointer - * so that it is ready to read the first data line. - */ -FILE * -OpenBookmarkFile(int *numBookmarks0) -{ - char pathName[256], path2[256]; - char line[256]; - FILE *fp; - int version; - int numBookmarks; - Bookmark junkbm; - - if (gOurDirectoryPath[0] == '\0') - return NULL; /* Don't create in root directory. */ - (void) OurDirectoryPath(pathName, sizeof(pathName), kBookmarkFileName); - fp = fopen(pathName, FOPEN_READ_TEXT); - if (fp == NULL) { - /* See if it exists under the old name. */ - (void) OurDirectoryPath(path2, sizeof(path2), kOldBookmarkFileName); - if (rename(path2, pathName) == 0) { - /* Rename succeeded, now open it. */ - fp = fopen(pathName, FOPEN_READ_TEXT); - if (fp == NULL) - return NULL; - } - return NULL; /* Okay to not have one yet. */ - } - - (void) _chmod(pathName, 00600); - if (FGets(line, sizeof(line), fp) == NULL) { - (void) fprintf(stderr, "%s: invalid format.\n", pathName); - (void) fclose(fp); - return NULL; - } - - /* Sample line we're looking for: - * "NcFTP bookmark-file version: 8" - */ - version = -1; - (void) sscanf(line, "%*s %*s %*s %d", &version); - if (version < kBookmarkMinVersion) { - if (version < 0) { - (void) fprintf(stderr, "%s: invalid format, or bad version.\n", pathName); - (void) fclose(fp); - return NULL; - } - (void) STRNCPY(path2, pathName); - (void) sprintf(line, ".v%d", version); - (void) STRNCAT(path2, line); - (void) rename(pathName, path2); - (void) fprintf(stderr, "%s: old version.\n", pathName); - (void) fclose(fp); - return NULL; - } - - /* Sample line we're looking for: - * "Number of entries: 28" or "# # # 1" - */ - numBookmarks = -1; - - /* At the moment, we can't trust the number stored in the - * file. It's there for future use. - */ - if (FGets(line, sizeof(line), fp) == NULL) { - (void) fprintf(stderr, "%s: invalid format.\n", pathName); - (void) fclose(fp); - return NULL; - } - - if (numBookmarks0 == (int *) 0) { - /* If the caller doesn't care how many bookmarks are *really* - * in the file, then we can return now. - */ - return(fp); - } - - /* Otherwise, we have to read through the whole file because - * unfortunately the header line can't be trusted. - */ - for (numBookmarks = 0; ; numBookmarks++) { - if (GetNextBookmark(fp, &junkbm) < 0) - break; - } - - /* Now we have to re-open and re-position the file. - * We don't use rewind() because it doesn't always work. - * This introduces a race condition, but the bookmark - * functionality wasn't designed to be air-tight. - */ - CloseBookmarkFile(fp); - fp = fopen(pathName, FOPEN_READ_TEXT); - if (fp == NULL) - return (NULL); - if (FGets(line, sizeof(line), fp) == NULL) { - (void) fprintf(stderr, "%s: invalid format.\n", pathName); - (void) fclose(fp); - return NULL; - } - - if (FGets(line, sizeof(line), fp) == NULL) { - (void) fprintf(stderr, "%s: invalid format.\n", pathName); - (void) fclose(fp); - return NULL; - } - - /* NOW we're done. */ - *numBookmarks0 = numBookmarks; - return (fp); -} /* OpenBookmarkFile */ - - - - -/* Looks for a saved bookmark by the abbreviation given. */ -int -GetBookmark(const char *const bmabbr, Bookmark *bmp) -{ - FILE *fp; - char line[512]; - Bookmark byHostName; - Bookmark byHostAbbr; - Bookmark byBmAbbr; - size_t byBmNameFlag = 0; - size_t byBmAbbrFlag = 0; - size_t byHostNameFlag = 0; - size_t byHostAbbrFlag = 0; - int result = -1; - int exactMatch = 0; - size_t bmabbrLen; - char *cp; - - fp = OpenBookmarkFile(NULL); - if (fp == NULL) - return (-1); - - bmabbrLen = strlen(bmabbr); - while (FGets(line, sizeof(line), fp) != NULL) { - if (ParseHostLine(line, bmp) < 0) - continue; - if (ISTREQ(bmp->bookmarkName, bmabbr)) { - /* Exact match, done. */ - byBmNameFlag = bmabbrLen; - exactMatch = 1; - break; - } else if (ISTRNEQ(bmp->bookmarkName, bmabbr, bmabbrLen)) { - /* Remember this one, it matched an abbreviated - * bookmark name. - */ - byBmAbbr = *bmp; - byBmAbbrFlag = bmabbrLen; - } else if (ISTREQ(bmp->name, bmabbr)) { - /* Remember this one, it matched a full - * host name. - */ - byHostName = *bmp; - byHostNameFlag = bmabbrLen; - } else if ((cp = strchr(bmp->name, '.')) != NULL) { - /* See if it matched part of the hostname. */ - if (ISTRNEQ(bmp->name, "ftp", 3)) { - cp = cp + 1; - } else if (ISTRNEQ(bmp->name, "www", 3)) { - cp = cp + 1; - } else { - cp = bmp->name; - } - if (ISTRNEQ(cp, bmabbr, bmabbrLen)) { - /* Remember this one, it matched a full - * host name. - */ - byHostAbbr = *bmp; - byHostAbbrFlag = bmabbrLen; - } - } - } - - if (gBookmarkMatchMode == 0) { - /* Only use a bookmark when the exact - * bookmark name was used. - */ - if (exactMatch != 0) { - result = 0; - } - } else { - /* Pick the best match, if any. */ - if (byBmNameFlag != 0) { - /* *bmp is already set. */ - result = 0; - } else if (byBmAbbrFlag != 0) { - result = 0; - *bmp = byBmAbbr; - } else if (byHostNameFlag != 0) { - result = 0; - *bmp = byHostName; - } else if (byHostAbbrFlag != 0) { - result = 0; - *bmp = byHostAbbr; - } - } - - if (result != 0) - memset(bmp, 0, sizeof(Bookmark)); - - CloseBookmarkFile(fp); - return (result); -} /* GetBookmark */ - - - - -static int -BookmarkSortProc(const void *a, const void *b) -{ - return (ISTRCMP((*(Bookmark *)a).bookmarkName, (*(Bookmark *)b).bookmarkName)); -} /* BookmarkSortProc */ - - - -static int -BookmarkSearchProc(const void *key, const void *b) -{ - return (ISTRCMP((char *) key, (*(Bookmark *)b).bookmarkName)); -} /* BookmarkSearchProc */ - - - -BookmarkPtr -SearchBookmarkTable(const char *key) -{ - return ((BookmarkPtr) bsearch(key, gBookmarkTable, (size_t) gNumBookmarks, sizeof(Bookmark), BookmarkSearchProc)); -} /* SearchBookmarkTable */ - - - - -void -SortBookmarks(void) -{ - if ((gBookmarkTable == NULL) || (gNumBookmarks < 2)) - return; - - /* Sorting involves swapping entire Bookmark structures. - * Normally the proper thing to do is to use an array - * of pointers to Bookmarks and sort them, but even - * these days a large bookmark list can be sorted in - * the blink of an eye. - */ - qsort(gBookmarkTable, (size_t) gNumBookmarks, sizeof(Bookmark), BookmarkSortProc); -} /* SortBookmarks */ - - - -int -LoadBookmarkTable(void) -{ - int i, nb; - FILE *infp; - - infp = OpenBookmarkFile(&nb); - if (infp == NULL) { - nb = 0; - } - if ((nb != gNumBookmarks) && (gBookmarkTable != NULL)) { - /* Re-loading the table from disk. */ - gBookmarkTable = (Bookmark *) realloc(gBookmarkTable, (size_t) (nb + 1) * sizeof(Bookmark)); - memset(gBookmarkTable, 0, (nb + 1) * sizeof(Bookmark)); - } else { - gBookmarkTable = calloc((size_t) (nb + 1), (size_t) sizeof(Bookmark)); - } - - if (gBookmarkTable == NULL) { - CloseBookmarkFile(infp); - return (-1); - } - - for (i=0; ibookmarkName) < 0) return (-1) ;/*1*/ - if (fprintf(outfp, ",%s", BmEscapeTok(tok, sizeof(tok), bmp->name)) < 0) return (-1) ;/*2*/ - if (fprintf(outfp, ",%s", BmEscapeTok(tok, sizeof(tok), bmp->user)) < 0) return (-1) ;/*3*/ - if ((bmp->pass[0] != '\0') && (savePassword == 1)) { - (void) memcpy(pass, kPasswordMagic, kPasswordMagicLen); - ToBase64(pass + kPasswordMagicLen, bmp->pass, strlen(bmp->pass), 1); - if (fprintf(outfp, ",%s", pass) < 0) return (-1) ;/*4*/ - } else { - if (fprintf(outfp, ",%s", "") < 0) return (-1) ;/*4*/ - } - if (fprintf(outfp, ",%s", BmEscapeTok(tok, sizeof(tok), bmp->acct)) < 0) return (-1) ;/*5*/ - if (fprintf(outfp, ",%s", BmEscapeTok(tok, sizeof(tok), bmp->dir)) < 0) return (-1) ;/*6*/ - if (fprintf(outfp, ",%c", bmp->xferType) < 0) return (-1) ;/*7*/ - if (fprintf(outfp, ",%u", (unsigned int) bmp->port) < 0) return (-1) ;/*8*/ - if (fprintf(outfp, ",%lu", (unsigned long) bmp->lastCall) < 0) return (-1) ;/*9*/ - if (fprintf(outfp, ",%d", bmp->hasSIZE) < 0) return (-1) ;/*10*/ - if (fprintf(outfp, ",%d", bmp->hasMDTM) < 0) return (-1) ;/*11*/ - if (fprintf(outfp, ",%d", bmp->hasPASV) < 0) return (-1) ;/*12*/ - if (fprintf(outfp, ",%d", bmp->isUnix) < 0) return (-1) ;/*13*/ - if (fprintf(outfp, ",%s", bmp->lastIP) < 0) return (-1) ;/*14*/ - if (fprintf(outfp, ",%s", BmEscapeTok(tok, sizeof(tok), bmp->comment)) < 0) return (-1) ;/*15*/ - if (fprintf(outfp, ",%s", "") < 0) return (-1) ;/*16*/ - if (fprintf(outfp, ",%s", "") < 0) return (-1) ;/*17*/ - if (fprintf(outfp, ",%s", "") < 0) return (-1) ;/*18*/ - if (fprintf(outfp, ",%s", "") < 0) return (-1) ;/*19*/ - if (fprintf(outfp, ",%c", bmp->xferMode) < 0) return (-1) ;/*20*/ - if (fprintf(outfp, ",%d", bmp->hasUTIME) < 0) return (-1) ;/*21*/ - if (fprintf(outfp, ",%s", BmEscapeTok(tok, sizeof(tok), bmp->ldir)) < 0) return (-1) ;/*22*/ - if (fprintf(outfp, "\n") < 0) return (-1) ; - if (fflush(outfp) < 0) return (-1); - return (0); -} /* WriteBmLine */ - - - -static int -SwapBookmarkFiles(void) -{ - char pidStr[32]; - char pathName[256], path2[256]; - - (void) OurDirectoryPath(path2, sizeof(path2), kBookmarkFileName); - (void) OurDirectoryPath(pathName, sizeof(pathName), kTmpBookmarkFileName); - (void) sprintf(pidStr, "-%u.txt", (unsigned int) getpid()); - (void) STRNCAT(pathName, pidStr); - - (void) remove(path2); - if (rename(pathName, path2) < 0) { - return (-1); - } - return (0); -} /* SwapBookmarkFiles */ - - - - - - -/* Saves a Bookmark structure into the bookmarks file. */ -FILE * -OpenTmpBookmarkFile(int nb) -{ - FILE *outfp; - char pidStr[32]; - char pathName[256], path2[256]; - - if (gOurDirectoryPath[0] == '\0') - return (NULL); /* Don't create in root directory. */ - - (void) OurDirectoryPath(path2, sizeof(path2), kBookmarkFileName); - (void) OurDirectoryPath(pathName, sizeof(pathName), kTmpBookmarkFileName); - (void) sprintf(pidStr, "-%u.txt", (unsigned int) getpid()); - (void) STRNCAT(pathName, pidStr); - - outfp = fopen(pathName, FOPEN_WRITE_TEXT); - if (outfp == NULL) { - (void) fprintf(stderr, "Could not save bookmark.\n"); - perror(pathName); - return (NULL); - } - (void) _chmod(pathName, 00600); - if (nb > 0) { - if (fprintf(outfp, "NcFTP bookmark-file version: %d\nNumber of bookmarks: %d\n", kBookmarkVersion, nb) < 0) { - (void) fprintf(stderr, "Could not save bookmark.\n"); - perror(pathName); - (void) fclose(outfp); - return (NULL); - } - } else { - if (fprintf(outfp, "NcFTP bookmark-file version: %d\nNumber of bookmarks: ??\n", kBookmarkVersion) < 0) { - (void) fprintf(stderr, "Could not save bookmark.\n"); - perror(pathName); - (void) fclose(outfp); - return (NULL); - } - } - - return (outfp); -} /* OpenTmpBookmarkFile */ - - - - -int -SaveBookmarkTable(void) -{ - int i; - FILE *outfp; - int nb; - - if ((gNumBookmarks < 1) || (gBookmarkTable == NULL)) - return (0); /* Nothing to save. */ - - /* Get a count of live bookmarks. */ - for (i=0, nb=0; ibookmarkName); - (void) STRNCAT(bmAbbr, ","); - len = strlen(bmAbbr); - - /* This may fail the first time we ever save a bookmark. */ - infp = OpenBookmarkFile(NULL); - if (infp != NULL) { - while (FGets(line, sizeof(line), infp) != NULL) { - if (strncmp(line, bmAbbr, len) == 0) { - /* Replace previous entry. */ - if (WriteBmLine(bmp, outfp, savePassword) < 0) { - (void) fprintf(stderr, "Could not save bookmark.\n"); - perror("reason"); - (void) fclose(outfp); - } - replaced = 1; - } else { - if (fprintf(outfp, "%s\n", line) < 0) { - (void) fprintf(stderr, "Could not save bookmark.\n"); - perror("reason"); - (void) fclose(outfp); - return (-1); - } - } - } - CloseBookmarkFile(infp); - } - - if (replaced == 0) { - /* Add it as a new bookmark. */ - if (WriteBmLine(bmp, outfp, savePassword) < 0) { - (void) fprintf(stderr, "Could not save bookmark.\n"); - perror("reason"); - (void) fclose(outfp); - return (-1); - } - } - - if (fclose(outfp) < 0) { - (void) fprintf(stderr, "Could not save bookmark.\n"); - perror("reason"); - return (-1); - } - - if (SwapBookmarkFiles() < 0) { - (void) fprintf(stderr, "Could not rename bookmark file.\n"); - perror("reason"); - return (-1); - } - return (0); -} /* PutBookmark */ - - - - -/* Tries to generate a bookmark abbreviation based off of the hostname. */ -void -DefaultBookmarkName(char *dst, size_t siz, char *src) -{ - char str[128]; - const char *token; - const char *cp; - - (void) STRNCPY(str, src); - - /* Pick the first "significant" part of the hostname. Usually - * this is the first word in the name, but if it's something like - * ftp.unl.edu, we would want to choose "unl" and not "ftp." - */ - token = str; - if ((token = strtok(str, ".")) == NULL) - token = str; - else if ((ISTRNEQ(token, "ftp", 3)) || (ISTRNEQ(token, "www", 3))) { - if ((token = strtok(NULL, ".")) == NULL) - token = ""; - } - for (cp = token; ; cp++) { - if (*cp == '\0') { - /* Token was all digits, like an IP address perhaps. */ - token = ""; - } - if (!isdigit((int) *cp)) - break; - } - (void) Strncpy(dst, token, siz); -} /* DefaultBookmarkName */ diff --git a/rosapps/applications/net/ncftp/ncftp/bookmark.h b/rosapps/applications/net/ncftp/ncftp/bookmark.h deleted file mode 100644 index 35dd9ae2a91..00000000000 --- a/rosapps/applications/net/ncftp/ncftp/bookmark.h +++ /dev/null @@ -1,59 +0,0 @@ -/* bookmark.h - * - * Copyright (c) 1992-2001 by Mike Gleason. - * All rights reserved. - * - */ - -typedef struct Bookmark *BookmarkPtr; -typedef struct Bookmark { - char bookmarkName[16]; - char name[64]; - char user[64]; - char pass[64]; - char acct[64]; - char dir[160]; - char ldir[160]; - int xferType; - unsigned int port; - time_t lastCall; - int hasSIZE; - int hasMDTM; - int hasPASV; - int isUnix; - char lastIP[32]; - char comment[128]; - int xferMode; - int hasUTIME; - - int deleted; -} Bookmark; - -#define kBookmarkVersion 8 -#define kBookmarkMinVersion 3 -#if defined(WIN32) || defined(_WINDOWS) -# define kBookmarkFileName "bookmarks.txt" -#else -# define kBookmarkFileName "bookmarks" -#endif -#define kTmpBookmarkFileName "bookmarks-tmp" -#define kOldBookmarkFileName "hosts" -#define kBookmarkBupFileName "bookmarks.old" - -#define BMTINDEX(p) ((int) ((char *) p - (char *) gBookmarkTable) / (int) sizeof(Bookmark)) - -/* bookmark.c */ -void BookmarkToURL(BookmarkPtr, char *, size_t); -void SetBookmarkDefaults(BookmarkPtr); -int ParseHostLine(char *, BookmarkPtr); -void CloseBookmarkFile(FILE *); -FILE *OpenBookmarkFile(int *); -FILE *OpenTmpBookmarkFile(int); -int SaveBookmarkTable(void); -int GetNextBookmark(FILE *, Bookmark *); -int GetBookmark(const char *const, Bookmark *); -int PutBookmark(Bookmark *, int); -int LoadBookmarkTable(void); -BookmarkPtr SearchBookmarkTable(const char *); -void SortBookmarks(void); -void DefaultBookmarkName(char *, size_t, char *); diff --git a/rosapps/applications/net/ncftp/ncftp/cmdlist.c b/rosapps/applications/net/ncftp/ncftp/cmdlist.c deleted file mode 100644 index 52f3dc9f76e..00000000000 --- a/rosapps/applications/net/ncftp/ncftp/cmdlist.c +++ /dev/null @@ -1,527 +0,0 @@ -/* cmdlist.c - * - * Copyright (c) 1992-2001 by Mike Gleason. - * All rights reserved. - * - */ - -#include "syshdrs.h" -#include "shell.h" -#include "bookmark.h" -#include "cmds.h" - -/* These will be sorted lexiographically when the program is run, but - * they should already be listed that way. - */ -Command gCommands[] = { -#if defined(WIN32) || defined(_WINDOWS) -#else - { "!", - ShellCmd, - "[arguments]", - "Runs a subshell", - kCmdHidden, - kNoMin, kNoMax, - }, -#endif - { "?", - HelpCmd, - "[optional commands]", - "shows commands, or detailed help on specified commands", - kCmdHidden, - kNoMin, kNoMax, - }, - { "ascii", - TypeCmd, - "", - "sets the file transfer type to ASCII text", - kCmdMustBeConnected, - 0, 0, - }, - { "bgget", - SpoolGetCmd, -"[-flags] file1 [file2...]\n\ -Flags:\n\ - -R : Recursive. Useful for fetching whole directories.\n\ - -z : Get the remote file X, and name it to Y.\n\ - -@